XQilla-2.3.0/0000755000151400015140000000000011653572443007715 500000000000000XQilla-2.3.0/ChangeLog0000644000151400015140000002700011636377670011414 00000000000000XQilla: an XQuery and XPath 2.0 library and command line interpreter. version 2.3.0 (2011.09.09): * Added support for XQuery 3.0 version declarations. * Updated to support XQuery 3.0 higher order functions, including partial function application, function coercion, and function item SequenceType checking. * Implemented XQuery 3.0 FLWOR clause ordering. * Implemented XQuery 3.0 FLWOR count clause. * Implemented XQuery 3.0 extended typeswitch syntax. * Implemented XQuery 3.0 namespace test and constructor. * Implemented XQuery 3.0 private functions. * Updated to the latest W3C XQuery Full Text syntax. * Implemented Unicode word bounding and sentence bounding for XQuery Full Text tokenization. * Implemented XQuery Full Text case options. * Implemented XQuery 1.0 second edition semantics for module import. * Added the xqilla:explain() function to return the query plan of an expression. * Added xqilla:words() and xqilla:sentences() to perform Unicode word and sentance boundary detection. * Added xqilla:drop(). * Rewrote a number of the built-in XQuery functions in XQuery itself. * Implemented constant time indexing into materialized sequences. * Improved the efficiency of the tail call optimization code. * Optimized boolean operators. * Optimized DOMDocument::evaluate() calls. * Fixed various bugs in static typing. * Fixed various memory leaks in the DOM 3 API, and regular expressions. * Fixed a bug that caused a crash when using huge integers. * Modified to build against Xerces-C 3.1.1 * Added Visual Studio 2010 support. * Build fix for AIX 5.3. * Build fix for the clang++ compiler. * Build fix for GCC 4.6. version 2.2.4 (2010.03.01): * Modified to build against Xerces-C 3.1.0 * Modified the DOM 3 API to only orphan grammars if PSVI is enabled. * Fixed computed attribute constructors not to use the default element namespace for names. * Modified node serialization to generate prefixes for attributes with no prefix but in a namespace. * Modified node serialization to use existing prefixes if possible. * Fixed an unknown exception during certain update operations. * Build fix for Sun Workshop 6 compiler. * Build fix for older GCC. * Added maintainer mode (--enable-maintainer-mode) to rebuild build related files. version 2.2.3 (2009.11.12): * Work around for a Xerces-C bug in DOMDocument::importNode() that resulted in badly copied prefixes using XQuery Update. * Fixed a segfault in the DOM 3 API by orphaning Xerces-C Grammar correctly. * Fixed optimization of count(), exists(), and empty() based on static type if the argument uses doc() or collection(). * Fixed a bug that caused a crash when using "order by" in some circumstances. * Fixed query/module static-typing to also (re-)static type the modules it imports. * Fixed a bug in fn:codepoint-equal(). version 2.2.2 (2009.07.02): * Fixed XQillaDocumentImpl::cloneNode() to return an instance of XQillaDocumentImpl. * Fixed XPath 2.0 so that it doesn't recognize entities in string literals. * Fixed a bug in the constant folding identity transforms for arithmetic expressions. * Fixed a bug in the undefined context item check. * Fixed the transform expression to copy document nodes rather than dissolving them. * Fixed a bug in the static typing of external functions. * Fixed a bug in fn:matches()with a zero-length string as the first argument. * Fixed a couple of bugs in the debug API, and made it report exit() and end() events correctly. * Fixed variable inlining so that variables aren't inlined into loops. * Fixed a segfault when parsing a document from a memory buffer. * Fixed a bug in XQC_Implementation->parse_document_file() that caused parsing to always fail. * Workaround a bug in Xerces-C that can cause corrupted memory when deleting a mutex. * Fixed a bug related to unsigned int/XMLSize_t type difference between Xerces-C 2.8 and 3.0. * Fixed alignment on sparc architectures that could cause a SIGBUS crash. * Fixed a Windows memory bug involving the URI used in resolving a document or collection. * Fixed Windows compile warnings related to Xerces-C types. * Updated libtool version to 2.2.6. * Fixed some compiler issues related to the xlC compiler. version 2.2.0 (2009.01.05): * Added a debugging API, and a command line debugger invoked by passing a "-d" flag to the command line tool. * Added a partial implementation of XSLT 2.0. This should currently be considered alpha quality. * Added an implementation of the current draft of XQC, a standard C API for accessing XQuery implementations. * Added a prototype implementation of higher order functions for XQuery. * Added the ExternalFunctionResolver API to resolve implementations for external functions that are unknown before compile time. * Added the xqilla:analyze-string() extension function for performing complex regular expression analysis. * Added query options for controlling schema validation, document projection and lint warnings. * Added a --disable-rpath configure option for maintainers. * Implemented function and variable inlining, and other partial evaluation optimizations. * Implemented tail recursion optimization. * Modified XQilla to compile against Xerces-C 3.0. A source installation of Xerces-C is no longer necessary for compilation. * Improved static typing with cardinality information. * Fixed a bug in schema validation of a document in no namespace. * Fixed schema validation to check ID/IDREF constraints correctly. * Fixed a bug in validation of SequenceTypes like document-node(schema-element(XX)). * Fixed a bug in re-writing documents to disk after updating them, when they have a space in their document URIs. version 2.1.4 (2008.07.31): * Fixed a bug in XQTreatAs that removed type checking under circumstances where it was still needed. version 2.1.3 (2008.07.29): * Modified the StaticAnalysis class in order to reduce the memory footprint of a prepared query by at least 50%. * Changed the code so that compilation against a patched version of Xerces-C 2.8 is no longer required. XQilla will build with reduced functionality without the patches. * Workaround a Windows optimizer issue that caused instance of queries to fail in a release build on Windows. * Fixed another Solaris compilation bug. version 2.1.2 (2008.04.28): * Fixed a bug in static resolution of replace expressions * Fixed the Xerces-C data model layer to work correctly with DOM Level 1 elements and attributes. * Worked around a Xerces-C bug that resulted in exceptions when using the DOM 3 API with certain schemas. * Fixed a 64 bit compilation problem. * Fixed a Solaris compilation problem. version 2.1.1 (2008.04.08): * Added the xqilla:parse-json() and xqilla:serialize-json() extension functions to parse and serialize JSON. * Added the xqilla:parse-html() function which uses HTML Tidy to parse HTML into XML. The function will not be compiled if TidyLib is not found. * Added fn:unparsed-text(), a function from XSLT 2.0 which can fetch a URL and return it as a string. * Added an xqilla:time() function which outputs the time taken to evaluate it's argument. * Added src/xercesc_content_type.patch which should be applied against Xerces-C 2.8 to fix an HTTP connection bug. * Added src/xercesc_regex.patch which should be applied against Xerces-C 2.8 to fix a regular expression bug in fn:replace(). * Added project files for Visual C++ 8, including 64 bit build targets. * Changed the default XQuery Update revalidation mode to LAX. * Fixed a bug in the lexing of element and attribute content in queries that incorrectly rejected certain Unicode characters. * Fixed a bug in external functions when used with modules. * Fixed a memory leak in the FastXDMURIResolver. * Fixed a segfault in XPath2ResultImpl if the results were only partially navigated. * Fixed a bug in XPath2ResultImpl where XQExceptions weren't being turned into XQillaExceptions. * Fixed XQilla to compile using Visual C++ 6. * Fixed compilation flags to work under HPUX. version 2.0.0 (2007.12.12): * Changed the license for XQilla to the Apache License v2, a more permissive open-source licence. * Implemented document projection, an optimisation technique that prunes sub-trees of documents not needed for the query at parse time. This is enabled by default. * Added a new extension function xqilla:parse-xml() which takes a string and parses it as an XML document. * Added optional support for using the FAXPP XML parser instead of the Xerces-C parser. * Added a command line option to the "xqilla" utility for binding external variables from the command line. * Implemented better error messages for type errors. * Modified the embedded MAPM library so we are now using it under the terms of the MIT licence. * Fixed miscellaneous bugs in the XQuery Update implementation. * Fixed a bug with the algorithm to add and subtract an xs:dayTimeDuration to or from an xs:date. * Fixed a bug in XercesNodeImpl which caused a segfault if the node was created as a value of a global variable in another module. version 1.1.0 (2007.08.31): * Added support for XQuery Update (Last Call Working Draft, 28 August 2007). * Added XQillaConfiguration, which encapsulates everything needed to create or use a new data model. * Implemented a new data model called FastXDM. It places nodes in a sequential array, and is much faster and more memory efficient than the DOM based data model. This is now the default data model. * Implemented XercesConfiguration, to enable use of the Xerces-C DOM based data model. * Implemented EventHandler, an event based execution interface. This is used primarily for efficient evaluation of constructed nodes. This can be invoked using XQQuery::execute(EventHandler*,DynamicContext*). * Added the ExternalFunction class, to allow users to easily implement XQuery external functions. * Added the MessageListener interface, to allow users to easily receive warning and trace messages. * Implemented closures, to enable the efficient and lazy execution of "let" expressions. * Implemented more lazy execution code for "order by" expressions * Added better error messages for sequence type checking errors. * Removed the XQDebugCallback API. * Rewrote the lexer and parser to be more memory efficient. * Rewrote "validate" expressions to be more memory efficient. * Modified the XQuery Test Suite runner to run the forthcoming XQuery Update test suite. * Made minor changes to allow compilation against the Xerces-C 2.8 release candidate. * Fixed a bug in the limit checking of the seconds field in the time when parsing. * Fixed modules so that the correct language is used to parse the module. * Fixed a bug in the code to create a new dynamic context for a module. * Fixed possible segmentation faults and memory leaks when using the DOM3 API * A number of other miscellaneous minor bug fixes. version 1.0.1 (2007.02.12): * Fixed fn:concat() to accept more than 51 arguments. * Fixed module parsing, to use the correct language enumeration when parsing. Output modules in the query plan. * Fixed a race condition in the parsing of function signatures. * Fixed parse errors in the DOM3 API, which were being thrown as XQException instead of XQillaException. [1626534] * Fixed the building of shared libraries under Cygwin, by adding -no-undefined to the libtool line in the Makefile. [1639669] * Fixed a bug in the static typing of user defined functions, that could result in incorrect errors. XQilla-2.3.0/include/0000755000151400015140000000000011653572444011341 500000000000000XQilla-2.3.0/include/xqilla/0000755000151400015140000000000011653572443012632 500000000000000XQilla-2.3.0/include/xqilla/schema/0000755000151400015140000000000011653572444014073 500000000000000XQilla-2.3.0/include/xqilla/schema/DocumentCacheImpl.hpp0000644000151400015140000002235011653565523020052 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _DOCUMENTCACHEIMPL_HPP #define _DOCUMENTCACHEIMPL_HPP #include #include #include #include #include #include class DynamicContext; class QualifiedName; XERCES_CPP_NAMESPACE_BEGIN class XMLGrammarPool; class GrammarResolver; class XMLScanner; XERCES_CPP_NAMESPACE_END #if _XERCES_VERSION < 30000 typedef XMLSSize_t XMLFileLoc; #endif /// The class that performs the parsing of input documents class XQILLA_API DocumentCacheImpl : public DocumentCache, private XERCES_CPP_NAMESPACE_QUALIFIER XMLDocumentHandler, private XERCES_CPP_NAMESPACE_QUALIFIER PSVIHandler, private XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityHandler, private XERCES_CPP_NAMESPACE_QUALIFIER XMLErrorReporter { public: DocumentCacheImpl(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr, XERCES_CPP_NAMESPACE_QUALIFIER XMLGrammarPool* xmlgr = 0); DocumentCacheImpl(const DocumentCacheImpl *parent, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr); ~DocumentCacheImpl(); /** * Sets the XMLEntityResolver that is used by Xerces when it is used * to parse documents. This affects the behaviour of XQilla whenever * it retrieves an XML, DTD or XML Schema grammar. */ virtual void setXMLEntityResolver(XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityResolver* const handler); virtual XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityResolver* getXMLEntityResolver() const; virtual bool getDoPSVI() const { return doPSVI_; } virtual void setDoPSVI(bool value) { doPSVI_ = value; } virtual Node::Ptr loadDocument(const XMLCh* uri, DynamicContext *context, const QueryPathNode *projection = 0); virtual Node::Ptr parseDocument(XERCES_CPP_NAMESPACE_QUALIFIER InputSource &srcToUse, DynamicContext *context, const QueryPathNode *projection = 0); virtual void parseDocument(XERCES_CPP_NAMESPACE_QUALIFIER InputSource &srcToUse, EventHandler *handler, DynamicContext *context); /* * returns true if the type represented by uri:typename is an instance of uriToCheck:typeNameToCheck * * ie: to check * xs:integer instance of xs:decimal, * call * isTypeOrDerivedFromType("xs", "integer", "xs", "decimal") * (except of course, call with URIs, not prefixes!) */ virtual bool isTypeOrDerivedFromType(const XMLCh* const uri, const XMLCh* const typeName, const XMLCh* const uriToCheck, const XMLCh* const typeNameToCheck) const; virtual bool isTypeDefined(const XMLCh* const uri, const XMLCh* const typeName) const; virtual void addSchemaLocation(const XMLCh* uri, VectorOfStrings* locations, StaticContext *context, const LocationInfo *location); /** helper functions used to map namespace ids found in the SchemaGrammar **/ virtual unsigned int getSchemaUriId(const XMLCh* uri) const; virtual const XMLCh* getSchemaUri(unsigned int id) const; virtual XERCES_CPP_NAMESPACE_QUALIFIER GrammarResolver *getGrammarResolver() const; virtual XERCES_CPP_NAMESPACE_QUALIFIER DatatypeValidator* getDatatypeValidator(const XMLCh* uri, const XMLCh* typeName) const; virtual XERCES_CPP_NAMESPACE_QUALIFIER ComplexTypeInfo* getComplexTypeInfo(const XMLCh* uri, const XMLCh* typeName) const; virtual XERCES_CPP_NAMESPACE_QUALIFIER SchemaElementDecl* getElementDecl(const XMLCh* elementUri, const XMLCh* elementName) const; virtual XERCES_CPP_NAMESPACE_QUALIFIER SchemaAttDef* getAttributeDecl(const XMLCh* attributeUri, const XMLCh* attributeName) const; virtual DocumentCache *createDerivedCache(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr) const; static XERCES_CPP_NAMESPACE_QUALIFIER InputSource *resolveURI(const XMLCh *uri, const XMLCh *baseUri); protected: void init(XERCES_CPP_NAMESPACE_QUALIFIER XMLGrammarPool *gramPool = 0); void loadSchema(const XMLCh* const uri, const XMLCh* location, StaticContext *context, const LocationInfo *info); // XMLEntityHandler virtual void endInputSource(const XERCES_CPP_NAMESPACE_QUALIFIER InputSource& inputSource); virtual bool expandSystemId(const XMLCh* const systemId, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &toFill); virtual void resetEntities(); virtual XERCES_CPP_NAMESPACE_QUALIFIER InputSource* resolveEntity(const XMLCh* const publicId, const XMLCh* const systemId, const XMLCh* const baseURI = 0); virtual XERCES_CPP_NAMESPACE_QUALIFIER InputSource* resolveEntity(XERCES_CPP_NAMESPACE_QUALIFIER XMLResourceIdentifier* resourceIdentifier); virtual void startInputSource(const XERCES_CPP_NAMESPACE_QUALIFIER InputSource& inputSource); // XMLErrorReporter virtual void resetErrors(); virtual void error(const unsigned int errCode, const XMLCh* const errDomain, const XMLErrorReporter::ErrTypes type, const XMLCh* const errorText, const XMLCh* const systemId, const XMLCh* const publicId, const XMLFileLoc lineNum, const XMLFileLoc colNum); // XMLDocumentHandler virtual void startDocument(); virtual void endDocument(); virtual void resetDocument(); #if _XERCES_VERSION >= 30000 virtual void startElement(const XERCES_CPP_NAMESPACE_QUALIFIER XMLElementDecl& elemDecl, const unsigned int urlId, const XMLCh* const elemPrefix, const XERCES_CPP_NAMESPACE_QUALIFIER RefVectorOf& attrList, const XMLSize_t attrCount, const bool isEmpty, const bool isRoot); virtual void docCharacters(const XMLCh* const chars, const XMLSize_t length, const bool cdataSection); virtual void ignorableWhitespace(const XMLCh* const chars, const XMLSize_t length, const bool cdataSection); #else virtual void startElement(const XERCES_CPP_NAMESPACE_QUALIFIER XMLElementDecl& elemDecl, const unsigned int urlId, const XMLCh* const elemPrefix, const XERCES_CPP_NAMESPACE_QUALIFIER RefVectorOf& attrList, const unsigned int attrCount, const bool isEmpty, const bool isRoot); virtual void docCharacters(const XMLCh* const chars, const unsigned int length, const bool cdataSection); virtual void ignorableWhitespace(const XMLCh* const chars, const unsigned int length, const bool cdataSection); #endif virtual void endElement(const XERCES_CPP_NAMESPACE_QUALIFIER XMLElementDecl& elemDecl, const unsigned int urlId, const bool isRoot, const XMLCh* const elemPrefix=0); virtual void docComment(const XMLCh* const comment); virtual void docPI(const XMLCh* const target, const XMLCh* const data); virtual void startEntityReference(const XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityDecl& entDecl); virtual void endEntityReference(const XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityDecl& entDecl); virtual void XMLDecl(const XMLCh* const versionStr, const XMLCh* const encodingStr, const XMLCh* const standaloneStr, const XMLCh* const actualEncodingStr); // PSVIHandler virtual void handleElementPSVI(const XMLCh* const localName, const XMLCh* const uri, XERCES_CPP_NAMESPACE_QUALIFIER PSVIElement *elementInfo); virtual void handlePartialElementPSVI(const XMLCh* const localName, const XMLCh* const uri, XERCES_CPP_NAMESPACE_QUALIFIER PSVIElement *elementInfo); virtual void handleAttributesPSVI(const XMLCh* const localName, const XMLCh* const uri, XERCES_CPP_NAMESPACE_QUALIFIER PSVIAttributeList *psviAttributes); protected: XERCES_CPP_NAMESPACE_QUALIFIER XMLScanner *getScanner(); XERCES_CPP_NAMESPACE_QUALIFIER GrammarResolver *grammarResolver_; XERCES_CPP_NAMESPACE_QUALIFIER XMLScanner *scanner_; XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityResolver *entityResolver_; bool doPSVI_; LocationInfo location_; EventHandler *events_; const XERCES_CPP_NAMESPACE_QUALIFIER RefVectorOf *attrList_; unsigned int attrCount_; XERCES_CPP_NAMESPACE_QUALIFIER PSVIElement *elementInfo_; bool strictValidation_; XERCES_CPP_NAMESPACE_QUALIFIER XMLStringPool* loadedSchemas_; XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer schemaLocations_; XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer noNamespaceSchemaLocation_; XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr_; }; #endif XQilla-2.3.0/include/xqilla/schema/AnyAtomicTypeDatatypeValidator.hpp0000644000151400015140000000361711653565523022623 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include class KVStringPair; class XQILLA_API AnyAtomicTypeDatatypeValidator : public XERCES_CPP_NAMESPACE_QUALIFIER AnySimpleTypeDatatypeValidator { public: // constructor AnyAtomicTypeDatatypeValidator(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* const manager = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager); // destructor virtual ~AnyAtomicTypeDatatypeValidator(); virtual XERCES_CPP_NAMESPACE_QUALIFIER DatatypeValidator* newInstance( XERCES_CPP_NAMESPACE_QUALIFIER RefHashTableOf* const facets, XERCES_CPP_NAMESPACE_QUALIFIER RefArrayVectorOf* const enums, const int finalSet, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* const manager); virtual bool isAtomic() const { return true; } }; XQilla-2.3.0/include/xqilla/schema/SchemaValidatorFilter.hpp0000644000151400015140000002102511653565523020740 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _SCHEMAVALIDATORFILTER_HPP #define _SCHEMAVALIDATORFILTER_HPP #include #include #include #include #include #include #include #include class DynamicContext; class LocationInfo; #if _XERCES_VERSION < 30000 typedef XMLSSize_t XMLFileLoc; #endif /** * The SchemaValidatorFilter class will modify the incoming event stream by * validating it against the schema definitions found in the DynamicContext's * DocumentCache. It will add typing information, as well as default values * and attributes, and will normalize values according to the schema normalization * rules. */ class XQILLA_API SchemaValidatorFilter : public EventFilter, public XERCES_CPP_NAMESPACE_QUALIFIER XMLScanner, private XERCES_CPP_NAMESPACE_QUALIFIER XMLDocumentHandler, private XERCES_CPP_NAMESPACE_QUALIFIER XMLErrorReporter { public: SchemaValidatorFilter(bool strictValidation, EventHandler *next, XERCES_CPP_NAMESPACE_QUALIFIER GrammarResolver *grammarResolver, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm, const LocationInfo *info); virtual ~SchemaValidatorFilter(); void reset(); virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding); virtual void endDocumentEvent(); virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname); virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName); virtual void piEvent(const XMLCh *target, const XMLCh *value); virtual void textEvent(const XMLCh *value); virtual void textEvent(const XMLCh *chars, unsigned int length); virtual void commentEvent(const XMLCh *value); virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName); virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri); private: // XMLScanner virtual const XMLCh *getName() const { return 0; } virtual XERCES_CPP_NAMESPACE_QUALIFIER NameIdPool *getEntityDeclPool() { return 0; } virtual const XERCES_CPP_NAMESPACE_QUALIFIER NameIdPool *getEntityDeclPool() const { return 0; } #if _XERCES_VERSION < 30100 virtual unsigned int resolveQName(const XMLCh *const qName, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &prefixBufToFill, const short mode, int &prefixColonPos); #endif virtual void scanDocument(const XERCES_CPP_NAMESPACE_QUALIFIER InputSource &src) {} virtual bool scanNext(XERCES_CPP_NAMESPACE_QUALIFIER XMLPScanToken &toFill) { return false; } virtual XERCES_CPP_NAMESPACE_QUALIFIER Grammar *loadGrammar(const XERCES_CPP_NAMESPACE_QUALIFIER InputSource &src, const short grammarType, const bool toCache) { return 0; } virtual void scanCDSection() {} virtual void scanCharData(XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &toToUse) {} virtual EntityExpRes scanEntityRef(const bool inAttVal, XMLCh &firstCh, XMLCh &secondCh, bool &escaped) { return EntityExp_Returned; } virtual void scanDocTypeDecl() {} virtual void scanReset(const XERCES_CPP_NAMESPACE_QUALIFIER InputSource &src) {} virtual void sendCharData(XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &toSend) {} // XMLDocumentHandler virtual void startDocument() {} virtual void endDocument() {} virtual void resetDocument() {} #if _XERCES_VERSION >= 30000 virtual void startElement(const XERCES_CPP_NAMESPACE_QUALIFIER XMLElementDecl& elemDecl, const unsigned int urlId, const XMLCh* const elemPrefix, const XERCES_CPP_NAMESPACE_QUALIFIER RefVectorOf& attrList, const XMLSize_t attrCount, const bool isEmpty, const bool isRoot) {} virtual void docCharacters(const XMLCh* const chars, const XMLSize_t length, const bool cdataSection); virtual void ignorableWhitespace(const XMLCh* const chars, const XMLSize_t length, const bool cdataSection) {} #else virtual void startElement(const XERCES_CPP_NAMESPACE_QUALIFIER XMLElementDecl& elemDecl, const unsigned int urlId, const XMLCh* const elemPrefix, const XERCES_CPP_NAMESPACE_QUALIFIER RefVectorOf& attrList, const unsigned int attrCount, const bool isEmpty, const bool isRoot) {} virtual void docCharacters(const XMLCh* const chars, const unsigned int length, const bool cdataSection); virtual void ignorableWhitespace(const XMLCh* const chars, const unsigned int length, const bool cdataSection) {} #endif virtual void endElement(const XERCES_CPP_NAMESPACE_QUALIFIER XMLElementDecl& elemDecl, const unsigned int urlId, const bool isRoot, const XMLCh* const elemPrefix=0) {} virtual void docComment(const XMLCh* const comment) {} virtual void docPI(const XMLCh* const target, const XMLCh* const data) {} virtual void startEntityReference(const XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityDecl& entDecl) {} virtual void endEntityReference(const XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityDecl& entDecl) {} virtual void XMLDecl(const XMLCh* const versionStr, const XMLCh* const encodingStr, const XMLCh* const standaloneStr, const XMLCh* const actualEncodingStr) {} // XMLErrorReporter virtual void resetErrors() {} virtual void error(const unsigned int errCode, const XMLCh* const errDomain, const XMLErrorReporter::ErrTypes type, const XMLCh* const errorText, const XMLCh* const systemId, const XMLCh* const publicId, const XMLFileLoc lineNum, const XMLFileLoc colNum); private: void processStartElement(); void processAttrs(XERCES_CPP_NAMESPACE_QUALIFIER XMLElementDecl *elemDecl); bool switchGrammar(const XMLCh *uri); bool laxElementValidation(XERCES_CPP_NAMESPACE_QUALIFIER QName* element, XERCES_CPP_NAMESPACE_QUALIFIER ContentLeafNameTypeVector* cv, const XERCES_CPP_NAMESPACE_QUALIFIER XMLContentModel *cm, unsigned int parentElemDepth); bool anyAttributeValidation(XERCES_CPP_NAMESPACE_QUALIFIER SchemaAttDef* attWildCard, unsigned int uriId, bool& skipThisOne, bool& laxThisOne); XERCES_CPP_NAMESPACE_QUALIFIER XMLElementDecl *createElementDecl(unsigned int uriId, unsigned int currentScope, bool laxThisOne); const LocationInfo *info_; XERCES_CPP_NAMESPACE_QUALIFIER SchemaValidator *fSchemaValidator; XERCES_CPP_NAMESPACE_QUALIFIER SchemaGrammar *fSchemaGrammar; XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer fContent; XERCES_CPP_NAMESPACE_QUALIFIER IdentityConstraintHandler *fICHandler; XERCES_CPP_NAMESPACE_QUALIFIER RefHash3KeysIdPool *fElemNonDeclPool; bool strictValidation_; bool errorOccurred_; XERCES_CPP_NAMESPACE_QUALIFIER ElemStack::StackElem *parentStack_; unsigned int elemDepth_; XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer prefix_; XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer uri_; XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer localname_; bool elementToProcess_; const XMLCh *xsiType_; unsigned int attrCount_; }; #endif XQilla-2.3.0/include/xqilla/schema/SequenceType.hpp0000644000151400015140000001740611653565523017146 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _SEQUENCETYPE_HPP #define _SEQUENCETYPE_HPP #include #include #include #include #include #include class Item; class XPath2MemoryManager; class SequenceType; class FunctionSignature; typedef std::vector > VectorOfSequenceTypes; class XQILLA_API SequenceType : public LocationInfo { public: class XQILLA_API ItemType { public: /** * The type of item that this sequence can hold. */ typedef enum { TEST_ELEMENT, ///< element node TEST_ATTRIBUTE, ///< attribute node TEST_SCHEMA_ELEMENT, ///< element node TEST_SCHEMA_ATTRIBUTE, ///< attribute node TEST_SCHEMA_DOCUMENT, ///< document node TEST_NODE, ///< node TEST_PI, ///< processing instruction node TEST_COMMENT, ///< comment node TEST_TEXT, ///< text node TEST_DOCUMENT, ///< document node TEST_NAMESPACE, ///< namespace node TEST_ANYTHING, ///< any item TEST_ATOMIC_TYPE, ///< the named atomic type TEST_FUNCTION ///< function } ItemTestType; // Normal constructor ItemType(ItemTestType test, QualifiedName* name=NULL, QualifiedName* type=NULL); // Constructor for an atomic type ItemType(const XMLCh *typeURI,const XMLCh *typeName, XPath2MemoryManager *mm); // Constructor for a function ItemType(VectorOfSequenceTypes *argTypes, SequenceType *returnType); /** * Destructor. */ ~ItemType(); /** * Getter for m_nTestType */ ItemTestType getItemTestType() const; void setItemTestType(ItemTestType t); void setAllowNilled(bool value); bool getAllowNilled() const; QualifiedName *getName() const; QualifiedName *getType() const; void setName(QualifiedName * name); void setType(QualifiedName * type); const XMLCh* getTypeURI() const; const XMLCh* getNameURI() const; VectorOfSequenceTypes *getArgumentTypes() const { return argTypes_; } SequenceType *getReturnType() const { return returnType_; } void getStaticType(StaticType &st, const StaticContext *context, bool &isExact, const LocationInfo *location) const; bool matches(const Item::Ptr &toBeTested, DynamicContext* context) const; bool matches(const Node::Ptr &toBeTested, DynamicContext* context) const; bool matches(const FunctionRef::Ptr &toBeTested, DynamicContext* context) const; bool matches(const FunctionSignature *sig, DynamicContext* context) const; bool matchesNameType(const Item::Ptr &toBeTested, const DynamicContext* context) const; bool matchesSchemaElement(const Node::Ptr &toBeTested, const DynamicContext* context) const; bool isSubtypeOf(const ItemType *toBeTested, const StaticContext* context) const; void staticResolution(StaticContext *context, const LocationInfo *location); void toBuffer(XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &buffer, bool addBrackets = false) const; protected: bool isSubtypeOfNameType(const ItemType *toBeTested, const StaticContext* context) const; // The ItemTestType of this ItemType ItemTestType m_nTestType; // The name and type to match QualifiedName *m_pName, *m_pType; // The forced URIs for name and type const XMLCh *m_NameURI, *m_TypeURI; // allow elements having the xsi:nil="true" attribute bool m_bAllowNil; // The number of arguments the function should take VectorOfSequenceTypes *argTypes_; // The return type of the function SequenceType *returnType_; bool staticallyResolved_; }; /** * Number of occurrences of the ItemType. * STAR specifies zero or more occurrences. * PLUS specifies one or more occurrences. * QUESTION_MARK specifies zero or one occurrence. */ typedef enum { EXACTLY_ONE=0, STAR=1, PLUS=2, QUESTION_MARK=3 } OccurrenceIndicator; /** * Constructor for atomic types */ SequenceType(const XMLCh* typeURI,const XMLCh* typeName, OccurrenceIndicator occur, XPath2MemoryManager *mm); /** * Generic constructor. */ SequenceType(ItemType* test, OccurrenceIndicator occur = EXACTLY_ONE); /** * Default constructor. */ SequenceType(); /** * Destructor. */ virtual ~SequenceType(); /** * Setter for m_pItemType. */ void setItemType(ItemType* itemType); /** * Setter for m_nOccurrencer. */ void setOccurrence(OccurrenceIndicator nOccurrence); //Return a URI, firstly the overriding URI string, if not, the URI bond to the QName prefix const XMLCh *getTypeURI() const; const XMLCh *getNameURI() const; /** * Returns a Result that will throw an XPath2TypeMatchException if * the toBeTested Result doesn't match this SequenceType. */ Result matches(const Result &toBeTested, const LocationInfo *location, const XMLCh *errorCode) const; Result occurrenceMatches(const Result &toBeTested, const LocationInfo *location, const XMLCh *errorCode) const; Result typeMatches(const Result &toBeTested, const LocationInfo *location, const XMLCh *errorCode) const; Result convertFunctionArg(const Result &input, DynamicContext *context, bool xpath1Compat, const LocationInfo *location, const XMLCh *errorCode); ASTNode *convertFunctionArg(ASTNode *arg, StaticContext *context, bool numericFunction, const LocationInfo *location); QualifiedName *getConstrainingType() const; QualifiedName *getConstrainingName() const; /** * Getter for m_pItemType. */ ItemType::ItemTestType getItemTestType() const; /** * Getter for m_nOccurrence. */ OccurrenceIndicator getOccurrenceIndicator() const; const ItemType *getItemType() const; bool isSubtypeOf(const SequenceType *toBeTested, const StaticContext* context) const; void staticResolution(StaticContext* context); void getStaticType(StaticType &st, const StaticContext *context, bool &isExact, const LocationInfo *location) const; void toBuffer(XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &buffer) const; protected: // The ItemType of this SequenceType ItemType* m_pItemType; // The OccurrenceIndicator of this SequenceType OccurrenceIndicator m_nOccurrence; class OccurrenceMatchesResult : public ResultImpl { public: OccurrenceMatchesResult(const Result &parent, const SequenceType *seqType, const LocationInfo *location, const XMLCh *errorCode); Item::Ptr next(DynamicContext *context); private: const SequenceType *_seqType; Result _parent; const XMLCh *_errorCode; bool _toDo; }; class TypeMatchesResult : public ResultImpl { public: TypeMatchesResult(const Result &parent, const SequenceType *seqType, const LocationInfo *location, const XMLCh *errorCode); Item::Ptr next(DynamicContext *context); private: const SequenceType *_seqType; Result _parent; const XMLCh *_errorCode; }; }; #endif XQilla-2.3.0/include/xqilla/schema/DocumentCache.hpp0000644000151400015140000001071611653565523017233 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _DOCUMENTCACHE_HPP #define _DOCUMENTCACHE_HPP #include #include #include #include #include class DynamicContext; class StaticContext; class QualifiedName; class LocationInfo; class QueryPathNode; typedef std::vector > VectorOfStrings; XERCES_CPP_NAMESPACE_BEGIN class DOMDocument; class DOMNode; class DatatypeValidator; class XMLEntityResolver; class ComplexTypeInfo; class SchemaElementDecl; class SchemaAttDef; class InputSource; class GrammarResolver; XERCES_CPP_NAMESPACE_END ///Expression Context is a storage for contexts. class XQILLA_API DocumentCache : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory { public: /// untyped static const XMLCh g_szUntyped[]; enum ValidationMode { VALIDATION_STRICT = 0, VALIDATION_LAX = 1, VALIDATION_SKIP = 2 }; /** virtual destructor */ virtual ~DocumentCache() {} /** load the document from the requested URI */ virtual Node::Ptr loadDocument(const XMLCh* uri, DynamicContext *context, const QueryPathNode *projection = 0) = 0; /** parse the document from the InputSource provided */ virtual Node::Ptr parseDocument(XERCES_CPP_NAMESPACE_QUALIFIER InputSource &srcToUse, DynamicContext *context, const QueryPathNode *projection = 0) = 0; /** parse the document from the InputSource provided, outputing it to the EventHandler provided */ virtual void parseDocument(XERCES_CPP_NAMESPACE_QUALIFIER InputSource &srcToUse, EventHandler *handler, DynamicContext *context) = 0; /** * Sets the XMLEntityResolver that is used by Xerces when it is used * to parse documents. This affects the behaviour of XQilla whenever * it retrieves an XML, DTD or XML Schema grammar. */ virtual void setXMLEntityResolver(XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityResolver* const handler) = 0; virtual XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityResolver* getXMLEntityResolver() const = 0; virtual bool getDoPSVI() const = 0; virtual void setDoPSVI(bool value) = 0; /* * returns true if the type represented by uri:typename is an instance of uriToCheck:typeNameToCheck * * ie: to check * xs:integer instance of xs:decimal, * call * isTypeOrDerivedFromType("xs", "integer", "xs", "decimal") * (except of course, call with URIs, not prefixes!) */ virtual bool isTypeOrDerivedFromType(const XMLCh* const uri, const XMLCh* const typeName, const XMLCh* const uriToCheck, const XMLCh* const typeNameToCheck) const = 0; virtual bool isTypeDefined(const XMLCh* const uri, const XMLCh* const typeName) const = 0; virtual void addSchemaLocation(const XMLCh* uri, VectorOfStrings* locations, StaticContext *context, const LocationInfo *location) = 0; /** helper functions used to map namespace ids found in the SchemaGrammar **/ virtual unsigned int getSchemaUriId(const XMLCh* uri) const = 0; virtual const XMLCh* getSchemaUri(unsigned int id) const = 0; virtual XERCES_CPP_NAMESPACE_QUALIFIER GrammarResolver *getGrammarResolver() const = 0; virtual XERCES_CPP_NAMESPACE_QUALIFIER DatatypeValidator* getDatatypeValidator(const XMLCh* uri, const XMLCh* typeName) const = 0; virtual XERCES_CPP_NAMESPACE_QUALIFIER ComplexTypeInfo* getComplexTypeInfo(const XMLCh* uri, const XMLCh* typeName) const = 0; virtual XERCES_CPP_NAMESPACE_QUALIFIER SchemaElementDecl* getElementDecl(const XMLCh* elementUri, const XMLCh* elementName) const = 0; virtual XERCES_CPP_NAMESPACE_QUALIFIER SchemaAttDef* getAttributeDecl(const XMLCh* attributeUri, const XMLCh* attributeName) const = 0; virtual DocumentCache *createDerivedCache(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr) const = 0; }; #endif XQilla-2.3.0/include/xqilla/operators/0000755000151400015140000000000011653572444014651 500000000000000XQilla-2.3.0/include/xqilla/operators/Equals.hpp0000644000151400015140000000271011653565523016534 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _EQUALS_HPP #define _EQUALS_HPP #include #include class Collation; class XQILLA_API Equals : public ComparisonOperator { public: static const XMLCh name[]; Equals(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); static bool equals(const Item::Ptr &arg1, const Item::Ptr &arg2, Collation* collation, DynamicContext* context, const LocationInfo *info); static bool equals(const AnyAtomicType::Ptr &arg1, const AnyAtomicType::Ptr &arg2, Collation* collation, DynamicContext* context, const LocationInfo *info); bool execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const; }; #endif XQilla-2.3.0/include/xqilla/operators/Divide.hpp0000644000151400015140000000237611653565523016516 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* Divide operator function */ #ifndef _DIVIDE_HPP #define _DIVIDE_HPP #include #include /** OpDivide operator function*/ class XQILLA_API Divide : public ArithmeticOperator { public: static const XMLCh name[]; Divide(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); void calculateStaticType(); Item::Ptr execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const; }; #endif // _DIVIDE_HPP XQilla-2.3.0/include/xqilla/operators/Plus.hpp0000644000151400015140000000246211653565523016231 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _PLUS_HPP #define _PLUS_HPP #include #include class XQILLA_API Plus : public ArithmeticOperator { public: static const XMLCh name[]; Plus(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); void calculateStaticType(); Item::Ptr execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const; static Item::Ptr plus(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context, const LocationInfo *info); }; #endif XQilla-2.3.0/include/xqilla/operators/NodeComparison.hpp0000644000151400015140000000243311653565523020224 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _NODECOMPARISON_HPP #define _NODECOMPARISON_HPP #include #include class XQILLA_API NodeComparison : public XQOperator { public: static const XMLCh name[]; NodeComparison(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual BoolResult boolResult(DynamicContext* context) const; virtual Result createResult(DynamicContext* context, int flags) const; }; #endif XQilla-2.3.0/include/xqilla/operators/Union.hpp0000644000151400015140000000316411653565523016376 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* Union function -- takes two sequences, and merge them */ #ifndef _UNION_HPP #define _UNION_HPP #include #include #include #include /** Union operator function*/ class XQILLA_API Union : public XQOperator { public: static const XMLCh name[]; Union(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); Result createResult(DynamicContext* context, int flags=0) const; private: class UnionResult : public ResultImpl { public: UnionResult(const Union *op, int flags); Item::Ptr next(DynamicContext *context); private: const Union *_op; unsigned int _flags; unsigned int _index; Result _result; }; bool sortAdded_; }; #endif XQilla-2.3.0/include/xqilla/operators/GreaterThanEqual.hpp0000644000151400015140000000273711653565523020507 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* GreaterThanEqual operator function */ #ifndef _GREATERTHANEQUAL_HPP #define _GREATERTHANEQUAL_HPP #include #include class Collation; /** OpGreaterThanEqual operator function*/ class XQILLA_API GreaterThanEqual : public ComparisonOperator { public: static const XMLCh name[]; GreaterThanEqual(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); static bool greater_than_equal(const AnyAtomicType::Ptr &arg1, const AnyAtomicType::Ptr &arg2, Collation* collation, DynamicContext* context, const LocationInfo *info); bool execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const; }; #endif // _GREATERTHANEQUAL_HPP XQilla-2.3.0/include/xqilla/operators/ComparisonOperator.hpp0000644000151400015140000000260411653565523021132 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _COMPARISONOPERATOR_HPP #define _COMPARISONOPERATOR_HPP #include class AnyAtomicType; class XQILLA_API ComparisonOperator : public XQOperator { public: ComparisonOperator(const XMLCh* opName, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual BoolResult boolResult(DynamicContext* context) const; virtual Result createResult(DynamicContext* context, int flags) const; virtual bool execute(const AnyAtomicType::Ptr &arg1, const AnyAtomicType::Ptr &arg2, DynamicContext *context) const = 0; }; #endif XQilla-2.3.0/include/xqilla/operators/UnaryMinus.hpp0000644000151400015140000000262411653565523017420 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _UNARYMINUS_HPP #define _UNARYMINUS_HPP #include #include class XQILLA_API UnaryMinus : public ArithmeticOperator { public: static const XMLCh name[]; UnaryMinus(bool positive, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); void calculateStaticType(); Item::Ptr execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const; bool getIsPositive() const { return positive_; } private: bool positive_; }; #endif XQilla-2.3.0/include/xqilla/operators/LessThan.hpp0000644000151400015140000000263611653565523017032 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* LessThan operator function */ #ifndef _LESSTHAN_HPP #define _LESSTHAN_HPP #include #include class Collation; /** OpLessThan operator function*/ class XQILLA_API LessThan : public ComparisonOperator { public: static const XMLCh name[]; LessThan(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); static bool less_than(const AnyAtomicType::Ptr &arg1, const AnyAtomicType::Ptr &arg2, Collation* collation, DynamicContext* context, const LocationInfo *info); bool execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const; }; #endif // _LESSTHAN_HPP XQilla-2.3.0/include/xqilla/operators/Minus.hpp0000644000151400015140000000224711653565523016402 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _MINUS_HPP #define _MINUS_HPP #include #include class XQILLA_API Minus : public ArithmeticOperator { public: static const XMLCh name[]; Minus(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); void calculateStaticType(); Item::Ptr execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const; }; #endif XQilla-2.3.0/include/xqilla/operators/IntegerDivide.hpp0000644000151400015140000000246211653565523020030 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* Integer divide operator function */ #ifndef _INTEGER_DIVIDE_HPP #define _INTEGER_DIVIDE_HPP #include #include /** OpIntegerDivide operator function*/ class XQILLA_API IntegerDivide : public ArithmeticOperator { public: static const XMLCh name[]; IntegerDivide(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); void calculateStaticType(); Item::Ptr execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const; }; #endif // _INTEGER_DIVIDE_HPP XQilla-2.3.0/include/xqilla/operators/GreaterThan.hpp0000644000151400015140000000264011653565523017510 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* GreaterThan operator function */ #ifndef _GREATERTHAN_HPP #define _GREATERTHAN_HPP #include #include class Collation; /** OpGreaterThan operator function*/ class XQILLA_API GreaterThan : public ComparisonOperator { public: static const XMLCh name[]; GreaterThan(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); static bool greater_than(const AnyAtomicType::Ptr &arg1, const AnyAtomicType::Ptr &arg2, Collation* collation, DynamicContext* context, const LocationInfo *info); bool execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const; }; #endif XQilla-2.3.0/include/xqilla/operators/NotEquals.hpp0000644000151400015140000000264511653565523017224 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* NotEquals operator function */ #ifndef _NOTEQUALS_HPP #define _NOTEQUALS_HPP #include #include class Collation; /** OpNotEquals operator function*/ class XQILLA_API NotEquals : public ComparisonOperator { public: static const XMLCh name[]; NotEquals(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); static bool not_equals(const AnyAtomicType::Ptr &arg1, const AnyAtomicType::Ptr &arg2, Collation* collation, DynamicContext* context, const LocationInfo *info); bool execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const; }; #endif // _NOTEQUALS_HPP XQilla-2.3.0/include/xqilla/operators/ArithmeticOperator.hpp0000644000151400015140000000273011653565523021111 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ARITHMETICOPERATOR_HPP #define _ARITHMETICOPERATOR_HPP #include class AnyAtomicType; class XQILLA_API ArithmeticOperator : public XQOperator { public: ArithmeticOperator(const XMLCh* opName, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); Result createResult(DynamicContext* context, int flags=0) const; virtual void calculateStaticType() = 0; virtual Item::Ptr execute(const AnyAtomicType::Ptr &arg1, const AnyAtomicType::Ptr &arg2, DynamicContext *context) const = 0; protected: void calculateStaticTypeForNumerics(const StaticType &arg0, const StaticType &arg1); }; #endif XQilla-2.3.0/include/xqilla/operators/Or.hpp0000644000151400015140000000236311653565523015666 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _OR_HPP #define _OR_HPP #include #include class XQILLA_API Or : public XQOperator { public: static const XMLCh name[]; Or(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual BoolResult boolResult(DynamicContext* context) const; virtual Result createResult(DynamicContext* context, int flags) const; }; #endif XQilla-2.3.0/include/xqilla/operators/Except.hpp0000644000151400015140000000273311653565523016537 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* Op Except The except operator takes two node sequences as operands and returns a sequence containing all the nodes that occur in the first operand but not in the second operand */ #ifndef _EXCEPT_HPP #define _EXCEPT_HPP #include #include #include #include class XQILLA_API Except : public XQOperator { public: static const XMLCh name[]; Except(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); Result createResult(DynamicContext* context, int flags=0) const; private: bool sortAdded_; }; #endif XQilla-2.3.0/include/xqilla/operators/GeneralComp.hpp0000644000151400015140000000433211653565523017500 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* General Comparison operator function */ #ifndef _GENERALCOMP_HPP #define _GENERALCOMP_HPP #include #include /** GeneralComp operator function*/ class XQILLA_API GeneralComp : public XQOperator { public: typedef enum { EQUAL, NOT_EQUAL, LESS_THAN, LESS_THAN_EQUAL, GREATER_THAN, GREATER_THAN_EQUAL } ComparisonOperation; static const XMLCh name[]; GeneralComp(ComparisonOperation operation, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); GeneralComp(ComparisonOperation operation, const VectorOfASTNodes &args, Collation *collation, bool xpath1Compat, XPath2MemoryManager* memMgr); ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual BoolResult boolResult(DynamicContext* context) const; virtual Result createResult(DynamicContext* context, int flags) const; ComparisonOperation getOperation() const { return operation_; } Collation *getCollation() const { return collation_; } bool getXPath1CompatibilityMode() const { return xpath1compat_; } static bool compare(GeneralComp::ComparisonOperation operation, AnyAtomicType::Ptr first, AnyAtomicType::Ptr second, Collation* collation, DynamicContext *context, bool xpath1compat, const LocationInfo *info); protected: ComparisonOperation operation_; Collation* collation_; bool xpath1compat_; }; #endif XQilla-2.3.0/include/xqilla/operators/Intersect.hpp0000644000151400015140000000234711653565523017250 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _INTERSECT_HPP #define _INTERSECT_HPP #include #include class XQILLA_API Intersect : public XQOperator { public: static const XMLCh name[]; Intersect(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; private: bool sortAdded_; }; #endif XQilla-2.3.0/include/xqilla/operators/Mod.hpp0000644000151400015140000000236211653565523016024 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* Mod operator function */ #ifndef _MOD_HPP #define _MOD_HPP #include #include /** OpMod operator function*/ class XQILLA_API Mod : public ArithmeticOperator { public: static const XMLCh name[]; Mod(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); void calculateStaticType(); Item::Ptr execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const; }; #endif // _FUNCTIONOPMOD_HPP XQilla-2.3.0/include/xqilla/operators/Multiply.hpp0000644000151400015140000000242011653565523017117 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* Multiply operator function */ #ifndef _MULTIPLY_HPP #define _MULTIPLY_HPP #include #include /** OpTimes operator function*/ class XQILLA_API Multiply : public ArithmeticOperator { public: static const XMLCh name[]; Multiply(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); void calculateStaticType(); Item::Ptr execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const; }; #endif // _FUNCTIONOPTIMES_HPP XQilla-2.3.0/include/xqilla/operators/And.hpp0000644000151400015140000000236711653565523016014 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _AND_HPP #define _AND_HPP #include #include class XQILLA_API And : public XQOperator { public: static const XMLCh name[]; And(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual BoolResult boolResult(DynamicContext* context) const; virtual Result createResult(DynamicContext* context, int flags) const; }; #endif XQilla-2.3.0/include/xqilla/operators/OrderComparison.hpp0000644000151400015140000000272411653565523020415 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ORDERCOMPARISON_HPP #define _ORDERCOMPARISON_HPP #include #include class XQILLA_API OrderComparison : public XQOperator { public: static const XMLCh name[]; ///testBefore should be set to true if you want to test that the first parameter is before the second. OrderComparison(const VectorOfASTNodes &args, bool testBefore, XPath2MemoryManager* memMgr); ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual BoolResult boolResult(DynamicContext* context) const; virtual Result createResult(DynamicContext* context, int flags) const; bool getTestBefore() const; private: bool _testBefore; }; #endif XQilla-2.3.0/include/xqilla/operators/LessThanEqual.hpp0000644000151400015140000000270711653565523020021 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* LessThanEqual operator function */ #ifndef _LESSTHANEQUAL_HPP #define _LESSTHANEQUAL_HPP #include #include class Collation; /** OpLessThanEqual operator function*/ class XQILLA_API LessThanEqual : public ComparisonOperator { public: static const XMLCh name[]; LessThanEqual(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); static bool less_than_equal(const AnyAtomicType::Ptr &arg1, const AnyAtomicType::Ptr &arg2, Collation* collation, DynamicContext* context, const LocationInfo *info); bool execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const; }; #endif // _LESSTHANEQUAL_HPP XQilla-2.3.0/include/xqilla/xqts/0000755000151400015140000000000011653572444013632 500000000000000XQilla-2.3.0/include/xqilla/xqts/TestSuiteResultListener.hpp0000644000151400015140000001707011653565523021126 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _TESTSUITERESULTLISTENER_HPP #define _TESTSUITERESULTLISTENER_HPP #include #include #include #include #include #include class TestCase; class XQILLA_API TestSuiteResultListener { public: virtual ~TestSuiteResultListener() {} virtual void reportVersion(const std::string &version, bool update) {} virtual void startTestGroup(const std::string &name) = 0; virtual void endTestGroup() = 0; virtual void reportPass(const TestCase &testCase, const std::string &comment) = 0; virtual void reportInspect(const TestCase &testCase, const std::string &actualResult, const std::list &expectedResult, const std::string &comment) = 0; virtual void reportSkip(const TestCase &testCase, const std::string &comment) = 0; virtual void reportFail(const TestCase &testCase, const std::string &actualResult, const std::list &expectedResult, const std::string &comment) = 0; virtual void reportFailNoError(const TestCase &testCase, const std::string &actualResult, const std::string &comment) = 0; virtual void reportFailUnexpectedError(const TestCase &testCase, const std::string &unexpectedError, const std::string &comment) = 0; virtual bool isSkippedTest(const std::string &testName) const { return false;} protected: TestSuiteResultListener() {} }; class XQILLA_API KnownErrorChecker : public TestSuiteResultListener { public: KnownErrorChecker(TestSuiteResultListener *results); virtual void reportVersion(const std::string &version, bool update); virtual void startTestGroup(const std::string &name); virtual void endTestGroup(); virtual void reportPass(const TestCase &testCase, const std::string &comment); virtual void reportInspect(const TestCase &testCase, const std::string &actualResult, const std::list &expectedResult, const std::string &comment); virtual void reportSkip(const TestCase &testCase, const std::string &comment); virtual void reportFail(const TestCase &testCase, const std::string &actualResult, const std::list &expectedResult, const std::string &comment); virtual void reportFailNoError(const TestCase &testCase, const std::string &actualResult, const std::string &comment); virtual void reportFailUnexpectedError(const TestCase &testCase, const std::string &unexpectedError, const std::string &comment); bool printReport() const; bool loadErrors(const std::string &errorFile); bool saveErrors(const std::string &errorFile) const; bool isSkippedTest(const std::string &testName) const; class Error { public: std::string reason; std::string comment; std::string action; }; private: TestSuiteResultListener *results_; // testName -> (reason, comment, action) std::map errors_; std::map nowPass_; std::vector nowFail_; }; class XQILLA_API ConsoleResultListener : public TestSuiteResultListener { public: ConsoleResultListener(); virtual void startTestGroup(const std::string &name); virtual void endTestGroup(); virtual void reportPass(const TestCase &testCase, const std::string &comment); virtual void reportInspect(const TestCase &testCase, const std::string &actualResult, const std::list &expectedResult, const std::string &comment); virtual void reportSkip(const TestCase &testCase, const std::string &comment); virtual void reportFail(const TestCase &testCase, const std::string &actualResult, const std::list &expectedResult, const std::string &comment); virtual void reportFailNoError(const TestCase &testCase, const std::string &actualResult, const std::string &comment); virtual void reportFailUnexpectedError(const TestCase &testCase, const std::string &unexpectedError, const std::string &comment); bool printReport() const; private: void testCaseToErrorStream(const TestCase &testCase); private: std::string m_szFullTestName; // testname -> "p|s|i|f" std::map testsRecorded_; unsigned int m_nTotalTests, m_nPassedTests, m_nSkippedTests, m_nInspectTests; int testDepth_; bool needNewline_; std::ostringstream errorStream_; }; class XQILLA_API XMLReportResultListener : public TestSuiteResultListener { public: XMLReportResultListener(); virtual void reportVersion(const std::string &version, bool update); virtual void startTestGroup(const std::string &name); virtual void endTestGroup(); virtual void reportPass(const TestCase &testCase, const std::string &comment); virtual void reportInspect(const TestCase &testCase, const std::string &actualResult, const std::list &expectedResult, const std::string &comment); virtual void reportSkip(const TestCase &testCase, const std::string &comment); virtual void reportFail(const TestCase &testCase, const std::string &actualResult, const std::list &expectedResult, const std::string &comment); virtual void reportFailNoError(const TestCase &testCase, const std::string &actualResult, const std::string &comment); virtual void reportFailUnexpectedError(const TestCase &testCase, const std::string &unexpectedError, const std::string &comment); void setImplementation(const std::string &name, const std::string &version = "", const std::string &description = ""); void setOrganization(const std::string &name, const std::string &website = ""); void setSubmittor(const std::string &name, const std::string &email = ""); void setTestRun(const std::string &transformation, const std::string &comments = ""); void setAnonymous(bool anon); void addImplementationDefinedItem(const std::string &name, const std::string &value); void addFeature(const std::string &name, bool supported); void addContextProperty(const std::string &name, const std::string &contextType, const std::string &value); void printReport() const; private: bool update_; std::string version_; std::string implName_, implVersion_, implDescription_; std::string orgName_, orgWebsite_; std::string submittorName_, submittorEmail_; std::string testTransformation_, testComments_; bool anonymous_; std::map implDefinedItems_; std::map features_; std::map > contextProperties_; std::string previousTestName_; std::ostringstream tmpStream_; std::ostringstream outputStream_; }; #endif XQilla-2.3.0/include/xqilla/xqts/TestSuiteRunner.hpp0000644000151400015140000000417011653565523017410 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _TESTSUITERUNNER_HPP #define _TESTSUITERUNNER_HPP #include #include #include #include class TestSuiteResultListener; class TestCase; class XQILLA_API TestSuiteRunner { public: virtual ~TestSuiteRunner() {} TestSuiteResultListener *getResultListener() { return m_results; } virtual void unknownElement(const std::string &name, std::map &attrs) {} virtual void addSource(const std::string &id, const std::string &filename, const std::string &schema) = 0; virtual void addSchema(const std::string &id, const std::string &filename, const std::string &uri) = 0; virtual void addModule(const std::string &id, const std::string &filename) = 0; virtual void addCollection(const std::string &id) {} virtual void addCollectionDoc(const std::string &id, const std::string &filename) = 0; virtual void startTestGroup(const std::string &name) = 0; virtual void endTestGroup() = 0; virtual void runTestCase(const TestCase &testCase) = 0; virtual void detectParserLang(const std::string &testSuiteNamespace) = 0; protected: TestSuiteRunner(TestSuiteResultListener *results) : m_results(results) {} void testResults(const TestCase &testCase, const std::string &results) const; void testErrors(const TestCase &testCase, const std::string &actualError) const; protected: TestSuiteResultListener *m_results; }; #endif XQilla-2.3.0/include/xqilla/xqts/TestSuiteParser.hpp0000644000151400015140000000573711653565523017405 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _TESTSUITEPARSERHANDLER_HPP #define _TESTSUITEPARSERHANDLER_HPP #include #include #include #include #include #include #include class TestSuiteRunner; class XQILLA_API TestCase { public: std::string name; std::string description; bool updateTest; bool xsltTest; int stateTime; std::string queryURL; std::string query; std::string contextItem; std::string defaultCollection; std::string templateName; std::map inputURIVars; std::map inputVars; std::map extraVars; std::map inputParams; std::map outputFiles; std::list > moduleFiles; std::list expectedErrors; }; class XQILLA_API TestSuiteParser : private XERCES_CPP_NAMESPACE_QUALIFIER DefaultHandler { public: TestSuiteParser(const std::string &pathToTestSuite, TestSuiteRunner *runner); void run(); void handleUnknownElement(const std::string &elementName); private: virtual void startElement(const XMLCh* const uri, const XMLCh* const localname, const XMLCh* const qname, const XERCES_CPP_NAMESPACE_QUALIFIER Attributes& attributes); virtual void endElement(const XMLCh* const uri, const XMLCh* const localname, const XMLCh* const qname); #if _XERCES_VERSION >= 30000 virtual void characters(const XMLCh* const chars, const XMLSize_t length); #else virtual void characters(const XMLCh* const chars, const unsigned int length); #endif virtual void error(const XERCES_CPP_NAMESPACE_QUALIFIER SAXParseException& exc); virtual void fatalError(const XERCES_CPP_NAMESPACE_QUALIFIER SAXParseException& exc); private: TestSuiteRunner *runner_; bool xslt_; std::string xsltGroupName_; XERCES_CPP_NAMESPACE_QUALIFIER XMLURL urlXQTSCatalog_, urlXQTSQueriesDirectory_, urlXQTSResultsDirectory_, urlBasePath_, urlBasePathReferenceFiles_, urlQuery_; std::set unknownElements_; bool readingChars_; std::string chars_; std::string variableBoundToInput_, compareMethod_, namespace_, collectionID_; TestCase testCase_; }; #endif XQilla-2.3.0/include/xqilla/fulltext/0000755000151400015140000000000011653572443014501 500000000000000XQilla-2.3.0/include/xqilla/fulltext/FTMildnot.hpp0000644000151400015140000000357611653565523017006 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FTMILDNOT_HPP #define _FTMILDNOT_HPP #include #include class XQILLA_API FTMildnot : public FTSelection { public: FTMildnot(FTSelection *left, FTSelection *right, XPath2MemoryManager *memMgr); virtual FTSelection *staticResolution(StaticContext *context); virtual FTSelection *staticTypingImpl(StaticContext *context); virtual FTSelection *optimize(FTContext *context) const; virtual AllMatches *execute(FTContext *ftcontext) const; FTSelection *getLeft() const { return left_; } void setLeft(FTSelection *expr) { left_ = expr; } FTSelection *getRight() const { return right_; } void setRight(FTSelection *expr) { right_ = expr; } private: FTSelection *left_, *right_; }; class FTMildnotMatches : public AllMatches { public: FTMildnotMatches(const LocationInfo *info, AllMatches *left, AllMatches *right) : AllMatches(info), left_(left), right_(right) {} ~FTMildnotMatches(); bool next(DynamicContext *context); const StringMatches &getStringIncludes(); const StringMatches &getStringExcludes(); private: AllMatches *left_; AllMatches *right_; std::set badTokens_; }; #endif XQilla-2.3.0/include/xqilla/fulltext/FTOrder.hpp0000644000151400015140000000347311653565523016447 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FTORDER_HPP #define _FTORDER_HPP #include class XQILLA_API FTOrder : public FTOption { public: FTOrder(XPath2MemoryManager *memMgr) : FTOption(FTSelection::ORDER, memMgr), arg_(0) {} FTOrder(FTSelection *arg, XPath2MemoryManager *memMgr) : FTOption(FTSelection::ORDER, memMgr), arg_(arg) {} virtual FTSelection *staticResolution(StaticContext *context); virtual FTSelection *staticTypingImpl(StaticContext *context); virtual FTSelection *optimize(FTContext *context) const; virtual AllMatches *execute(FTContext *ftcontext) const; virtual void setArgument(FTSelection *arg) { arg_ = arg; } FTSelection *getArgument() const { return arg_; } private: FTSelection *arg_; }; class FTOrderMatches : public AllMatches { public: FTOrderMatches(const LocationInfo *info, AllMatches *arg) : AllMatches(info), arg_(arg), excludes_() {} ~FTOrderMatches(); bool next(DynamicContext *context); const StringMatches &getStringIncludes(); const StringMatches &getStringExcludes(); private: AllMatches *arg_; StringMatches excludes_; }; #endif XQilla-2.3.0/include/xqilla/fulltext/Tokenizer.hpp0000644000151400015140000000233111653565523017104 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _TOKENIZER_HPP #define _TOKENIZER_HPP #include #include #include class XPath2MemoryManager; class DynamicContext; class XQILLA_API Tokenizer { public: virtual ~Tokenizer() {} virtual TokenStream::Ptr tokenize(const Node::Ptr &node, DynamicContext *context) const = 0; virtual TokenStream::Ptr tokenize(const XMLCh *string, XPath2MemoryManager *mm) const = 0; protected: Tokenizer() {} }; #endif XQilla-2.3.0/include/xqilla/fulltext/FTWindow.hpp0000644000151400015140000000624111653565523016637 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FTWINDOW_HPP #define _FTWINDOW_HPP #include #include class ASTNode; class XQILLA_API FTWindow : public FTOption { public: FTWindow(ASTNode *expr, FTUnit unit, XPath2MemoryManager *memMgr) : FTOption(FTSelection::WINDOW, memMgr), expr_(expr), unit_(unit), arg_(0) {} FTWindow(FTSelection *arg, ASTNode *expr, FTUnit unit, XPath2MemoryManager *memMgr) : FTOption(FTSelection::WINDOW, memMgr), expr_(expr), unit_(unit), arg_(arg) {} virtual FTSelection *staticResolution(StaticContext *context); virtual FTSelection *staticTypingImpl(StaticContext *context); virtual FTSelection *optimize(FTContext *context) const; virtual AllMatches *execute(FTContext *ftcontext) const; virtual void setArgument(FTSelection *arg) { arg_ = arg; } FTSelection *getArgument() const { return arg_; } ASTNode *getExpr() const { return expr_; } void setExpr(ASTNode *expr) { expr_ = expr; } FTUnit getUnit() const { return unit_; } private: ASTNode *expr_; FTUnit unit_; FTSelection *arg_; }; class XQILLA_API FTWindowLiteral : public FTOption { public: FTWindowLiteral(FTSelection *arg, unsigned int distance, FTUnit unit, XPath2MemoryManager *memMgr) : FTOption(WINDOW_LITERAL, memMgr), arg_(arg), distance_(distance), unit_(unit) {} virtual FTSelection *staticResolution(StaticContext *context); virtual FTSelection *staticTypingImpl(StaticContext *context); virtual FTSelection *optimize(FTContext *context) const; virtual AllMatches *execute(FTContext *ftcontext) const; virtual void setArgument(FTSelection *arg) { arg_ = arg; } FTSelection *getArgument() const { return arg_; } unsigned int getDistance() const { return distance_; } FTUnit getUnit() const { return unit_; } private: FTSelection *arg_; unsigned int distance_; FTUnit unit_; }; class FTWindowMatches : public AllMatches { public: FTWindowMatches(const LocationInfo *info, unsigned int distance, FTOption::FTUnit unit, AllMatches *arg) : AllMatches(info), distance_(distance), unit_(unit), arg_(arg), found_(true), excludes_() {} ~FTWindowMatches(); bool next(DynamicContext *context); const StringMatches &getStringIncludes(); const StringMatches &getStringExcludes(); private: unsigned int distance_; FTOption::FTUnit unit_; AllMatches *arg_; bool found_; std::set excludeValues_; std::set::iterator excludeIt_; StringMatches excludes_; }; #endif XQilla-2.3.0/include/xqilla/fulltext/FTContains.hpp0000644000151400015140000000330311653565523017142 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FTCONTAINS_HPP #define _FTCONTAINS_HPP #include #include class FTSelection; class XQILLA_API FTContains : public ASTNodeImpl { public: FTContains(ASTNode *argument, FTSelection *selection, ASTNode *ignore, XPath2MemoryManager *memMgr); ~FTContains(); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual BoolResult boolResult(DynamicContext* context) const; virtual Result createResult(DynamicContext* context, int flags) const; ASTNode *getArgument() const { return argument_; } FTSelection *getSelection() const { return selection_; } ASTNode *getIgnore() const { return ignore_; } void setArgument(ASTNode *a) { argument_ = a; } void setSelection(FTSelection *s) { selection_ = s; } void setIgnore(ASTNode *a) { ignore_ = a; } private: ASTNode *argument_; FTSelection *selection_; ASTNode *ignore_; }; #endif XQilla-2.3.0/include/xqilla/fulltext/FTDistance.hpp0000644000151400015140000001150511653565523017121 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FTDISTANCE_HPP #define _FTDISTANCE_HPP #include #include class XQILLA_API FTDistance : public FTOption { public: FTDistance(const FTRange &range, FTUnit unit, XPath2MemoryManager *memMgr) : FTOption(FTSelection::DISTANCE, memMgr), arg_(0), range_(range), unit_(unit) {} FTDistance(const FTRange &range, FTUnit unit, FTSelection *arg, XPath2MemoryManager *memMgr) : FTOption(FTSelection::DISTANCE, memMgr), arg_(arg), range_(range), unit_(unit) {} virtual FTSelection *staticResolution(StaticContext *context); virtual FTSelection *staticTypingImpl(StaticContext *context); virtual FTSelection *optimize(FTContext *context) const; virtual AllMatches *execute(FTContext *ftcontext) const; virtual void setArgument(FTSelection *arg) { arg_ = arg; } FTSelection *getArgument() const { return arg_; } const FTRange &getRange() const { return range_; } FTUnit getUnit() const { return unit_; } private: FTSelection *arg_; FTRange range_; FTUnit unit_; }; class XQILLA_API FTDistanceLiteral : public FTOption { public: FTDistanceLiteral(FTRange::Type type, unsigned int distance, unsigned int distance2, FTUnit unit, XPath2MemoryManager *memMgr) : FTOption(DISTANCE_LITERAL, memMgr), arg_(0), type_(type), distance_(distance), distance2_(distance2), unit_(unit) {} FTDistanceLiteral(FTSelection *arg, FTRange::Type type, unsigned int distance, unsigned int distance2, FTUnit unit, XPath2MemoryManager *memMgr) : FTOption(DISTANCE_LITERAL, memMgr), arg_(arg), type_(type), distance_(distance), distance2_(distance2), unit_(unit) {} virtual FTSelection *staticResolution(StaticContext *context); virtual FTSelection *staticTypingImpl(StaticContext *context); virtual FTSelection *optimize(FTContext *context) const; virtual AllMatches *execute(FTContext *ftcontext) const; virtual void setArgument(FTSelection *arg) { arg_ = arg; } FTSelection *getArgument() const { return arg_; } const FTRange::Type getType() const { return type_; } unsigned int getDistance() const { return distance_; } unsigned int getDistance2() const { return distance2_; } FTUnit getUnit() const { return unit_; } private: FTSelection *arg_; FTRange::Type type_; unsigned int distance_, distance2_; FTUnit unit_; }; class FTDistanceMatches : public AllMatches { public: FTDistanceMatches(const LocationInfo *info, unsigned int distance, FTOption::FTUnit unit, AllMatches *arg) : AllMatches(info), distance_(distance), unit_(unit), arg_(arg), excludes_() {} ~FTDistanceMatches(); bool next(DynamicContext *context); const StringMatches &getStringIncludes(); const StringMatches &getStringExcludes(); virtual bool distanceMatches(unsigned int actual) const = 0; protected: unsigned int distance_; FTOption::FTUnit unit_; AllMatches *arg_; StringMatches excludes_; }; class FTDistanceExactlyMatches : public FTDistanceMatches { public: FTDistanceExactlyMatches(const LocationInfo *info, unsigned int distance, FTOption::FTUnit unit, AllMatches *arg) : FTDistanceMatches(info, distance, unit, arg) {} bool distanceMatches(unsigned int actual) const; }; class FTDistanceAtLeastMatches : public FTDistanceMatches { public: FTDistanceAtLeastMatches(const LocationInfo *info, unsigned int distance, FTOption::FTUnit unit, AllMatches *arg) : FTDistanceMatches(info, distance, unit, arg) {} bool distanceMatches(unsigned int actual) const; }; class FTDistanceAtMostMatches : public FTDistanceMatches { public: FTDistanceAtMostMatches(const LocationInfo *info, unsigned int distance, FTOption::FTUnit unit, AllMatches *arg) : FTDistanceMatches(info, distance, unit, arg) {} bool distanceMatches(unsigned int actual) const; }; class FTDistanceFromToMatches : public FTDistanceMatches { public: FTDistanceFromToMatches(const LocationInfo *info, unsigned int from, unsigned int to, FTOption::FTUnit unit, AllMatches *arg) : FTDistanceMatches(info, from, unit, arg), distance2_(to) {} bool distanceMatches(unsigned int actual) const; private: unsigned int distance2_; }; #endif XQilla-2.3.0/include/xqilla/fulltext/TokenStore.hpp0000644000151400015140000000243511653565523017234 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _TOKENSTORE_HPP #define _TOKENSTORE_HPP #include #include #include class Tokenizer; class XQILLA_API TokenStore : public ReferenceCounted { public: typedef RefCountPointer Ptr; virtual ~TokenStore() {} virtual TokenStream::Ptr findTokens(const XMLCh *searchString) const = 0; virtual unsigned int getStartTokenPosition() const = 0; virtual unsigned int getEndTokenPosition() const = 0; protected: TokenStore() {} }; #endif XQilla-2.3.0/include/xqilla/fulltext/Match.hpp0000644000151400015140000000513711653565523016175 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _MATCH_HPP #define _MATCH_HPP #include #include #include #include class XQILLA_API StringMatch { public: StringMatch() : queryPos(0), tokenInfo(0), startToken(false), endToken(false) {} StringMatch(unsigned int qPos, const TokenInfo::Ptr &tInfo) : queryPos(qPos), tokenInfo(tInfo), startToken(false), endToken(false) {} unsigned int queryPos; TokenInfo::Ptr tokenInfo; bool startToken, endToken; }; typedef std::vector StringMatches; class XQILLA_API Match : public ReferenceCounted { public: typedef RefCountPointer Ptr; Match() {} const StringMatches &getStringIncludes() const { return includes_; } const StringMatches &getStringExcludes() const { return excludes_; } void addStringInclude(unsigned int queryPos, const TokenInfo::Ptr &tokenInfo) { includes_.push_back(StringMatch(queryPos, tokenInfo)); } void addStringExclude(unsigned int queryPos, const TokenInfo::Ptr &tokenInfo) { excludes_.push_back(StringMatch(queryPos, tokenInfo)); } void addStringInclude(const StringMatch &match) { includes_.push_back(match); } void addStringExclude(const StringMatch &match) { excludes_.push_back(match); } void addStringIncludes(const StringMatches &sMatches) { for(StringMatches::const_iterator j = sMatches.begin(); j != sMatches.end(); ++j) { includes_.push_back(*j); } } void addStringExcludes(const StringMatches &sMatches) { for(StringMatches::const_iterator j = sMatches.begin(); j != sMatches.end(); ++j) { excludes_.push_back(*j); } } void add(const Match::Ptr &match) { addStringIncludes(match->getStringIncludes()); addStringExcludes(match->getStringExcludes()); } private: StringMatches includes_; StringMatches excludes_; }; #endif XQilla-2.3.0/include/xqilla/fulltext/FTAnd.hpp0000644000151400015140000000503311653565523016070 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FTAND_HPP #define _FTAND_HPP #include #include class XQILLA_API FTAnd : public FTSelection { public: FTAnd(XPath2MemoryManager *memMgr); FTAnd(FTSelection *left, FTSelection *right, XPath2MemoryManager *memMgr); virtual FTSelection *staticResolution(StaticContext *context); virtual FTSelection *staticTypingImpl(StaticContext *context); virtual FTSelection *optimize(FTContext *context) const; virtual AllMatches *execute(FTContext *ftcontext) const; const VectorOfFTSelections &getArguments() const { return args_; } void addArg(FTSelection *sel) { args_.push_back(sel); } private: VectorOfFTSelections args_; }; class BufferedMatches : public AllMatches { public: BufferedMatches(const LocationInfo *info, AllMatches *matches); bool next(DynamicContext *context); void reset(); AllMatches *getAllMatches(); const StringMatches &getStringIncludes() { return *includeIt_; } const StringMatches &getStringExcludes() { return *excludeIt_; } private: AllMatches *matches_; bool reset_; std::vector includeBuffer_; std::vector excludeBuffer_; std::vector::iterator includeIt_; std::vector::iterator excludeIt_; }; class FTConjunctionMatches : public AllMatches { public: FTConjunctionMatches(const LocationInfo *info); ~FTConjunctionMatches(); void addMatches(AllMatches *m); bool next(DynamicContext *context); const StringMatches &getStringIncludes(); const StringMatches &getStringExcludes(); private: void deleteMatches(); private: void addStringIncludes(const StringMatches &sMatches); void addStringExcludes(const StringMatches &sMatches); private: bool toDo_; std::vector args_; StringMatches includes_; StringMatches excludes_; }; #endif XQilla-2.3.0/include/xqilla/fulltext/FTOption.hpp0000644000151400015140000000415311653565523016640 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FTOPTION_HPP #define _FTOPTION_HPP #include #include class XQILLA_API FTOption : public FTSelection { public: enum FTUnit { WORDS, SENTENCES, PARAGRAPHS }; virtual void setArgument(FTSelection *arg) = 0; static unsigned int tokenUnit(const TokenInfo &t, FTUnit unit) { switch(unit) { case WORDS: return t.position_; case SENTENCES: return t.sentence_; case PARAGRAPHS: return t.paragraph_; } return 0; } static unsigned int tokenDistance(const TokenInfo &a, const TokenInfo &b, FTUnit unit) { switch(unit) { case WORDS: return (unsigned int)labs((long)a.position_ - (long)b.position_) - 1; case SENTENCES: return (unsigned int)labs((long)a.sentence_ - (long)b.sentence_); case PARAGRAPHS: return (unsigned int)labs((long)a.paragraph_ - (long)b.paragraph_); } return 0; } static bool lessThanFunc(const TokenInfo &a, const TokenInfo &b) { if (a.paragraph_ != b.paragraph_) return a.paragraph_ < b.paragraph_; if (a.sentence_ != b.sentence_) return a.sentence_ < b.sentence_; return a.position_ < b.position_; } protected: FTOption(Type type, XPath2MemoryManager *memMgr) : FTSelection(type, memMgr) {} }; typedef std::vector > VectorOfFTOptions; #endif XQilla-2.3.0/include/xqilla/fulltext/FTScope.hpp0000644000151400015140000000530711653565523016443 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FTSCOPE_HPP #define _FTSCOPE_HPP #include #include class XQILLA_API FTScope : public FTOption { public: enum Type { SAME, DIFFERENT }; FTScope(Type type, FTUnit unit, XPath2MemoryManager *memMgr) : FTOption(FTSelection::SCOPE, memMgr), type_(type), unit_(unit), arg_(0) {} FTScope(FTSelection *arg, Type type, FTUnit unit, XPath2MemoryManager *memMgr) : FTOption(FTSelection::SCOPE, memMgr), type_(type), unit_(unit), arg_(arg) {} virtual FTSelection *staticResolution(StaticContext *context); virtual FTSelection *staticTypingImpl(StaticContext *context); virtual FTSelection *optimize(FTContext *context) const; virtual AllMatches *execute(FTContext *ftcontext) const; virtual void setArgument(FTSelection *arg) { arg_ = arg; } FTSelection *getArgument() const { return arg_; } Type getType() const { return type_; } FTUnit getUnit() const { return unit_; } private: Type type_; FTUnit unit_; FTSelection *arg_; }; class FTScopeSameMatches : public AllMatches { public: FTScopeSameMatches(const LocationInfo *info, FTOption::FTUnit unit, AllMatches *arg) : AllMatches(info), unit_(unit), arg_(arg), excludes_(), unitValue_(0) {} ~FTScopeSameMatches(); bool next(DynamicContext *context); const StringMatches &getStringIncludes(); const StringMatches &getStringExcludes(); private: FTOption::FTUnit unit_; AllMatches *arg_; StringMatches excludes_; unsigned int unitValue_; }; class FTScopeDifferentMatches : public AllMatches { public: FTScopeDifferentMatches(const LocationInfo *info, FTOption::FTUnit unit, AllMatches *arg) : AllMatches(info), unit_(unit), arg_(arg), excludes_(), unitValuesSeen_() {} ~FTScopeDifferentMatches(); bool next(DynamicContext *context); const StringMatches &getStringIncludes(); const StringMatches &getStringExcludes(); private: FTOption::FTUnit unit_; AllMatches *arg_; StringMatches excludes_; std::set unitValuesSeen_; }; #endif XQilla-2.3.0/include/xqilla/fulltext/FTSelection.hpp0000644000151400015140000000471311653565523017317 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FTSELECTION_HPP #define _FTSELECTION_HPP #include #include #include #include #include #include #include class DynamicContext; class StaticContext; class StaticTyper; class XQILLA_API FTContext { public: FTContext(const Tokenizer *tok, const TokenStore::Ptr &tStore, DynamicContext *cont) : queryPos(0), tokenizer(tok), tokenStore(tStore), context(cont) {} unsigned int queryPos; const Tokenizer *tokenizer; TokenStore::Ptr tokenStore; DynamicContext *context; }; class XQILLA_API FTSelection : public LocationInfo { public: /// The type of the FTSelection node enum Type { OR, AND, MILD_NOT, UNARY_NOT, WORDS, WORD, ORDER, DISTANCE, DISTANCE_LITERAL, SCOPE, CONTENT, WINDOW, WINDOW_LITERAL }; virtual ~FTSelection() {} Type getType() const { return type_; } virtual const StaticAnalysis &getStaticAnalysis() const { return src_; } virtual FTSelection *staticResolution(StaticContext *context) = 0; virtual FTSelection *staticTypingImpl(StaticContext *context) = 0; virtual FTSelection *optimize(FTContext *context) const = 0; virtual AllMatches *execute(FTContext *ftcontext) const = 0; XPath2MemoryManager *getMemoryManager() const { return memMgr_; } protected: FTSelection(Type type, XPath2MemoryManager *memMgr) : src_(memMgr), type_(type), memMgr_(memMgr) {} StaticAnalysis src_; private: Type type_; XPath2MemoryManager *memMgr_; }; typedef std::vector > VectorOfFTSelections; #endif XQilla-2.3.0/include/xqilla/fulltext/FTWords.hpp0000644000151400015140000000625511653565523016473 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FTWORDS_HPP #define _FTWORDS_HPP #include #include class ASTNode; class XQILLA_API FTWords : public FTSelection { public: /// Enumeration representing the way to match words and phrases enum FTAnyallOption { ANY, ANY_WORD, ALL, ALL_WORDS, PHRASE }; FTWords(ASTNode *expr, FTAnyallOption option, XPath2MemoryManager *memMgr); virtual FTSelection *staticResolution(StaticContext *context); virtual FTSelection *staticTypingImpl(StaticContext *context); virtual FTSelection *optimize(FTContext *context) const; virtual AllMatches *execute(FTContext *ftcontext) const; ASTNode *getExpr() const { return expr_; } void setExpr(ASTNode *expr) { expr_ = expr; } FTAnyallOption getOption() const { return option_; } private: FTSelection *optimizeAnyWord(Result strings, FTContext *ftcontext) const; FTSelection *optimizeAllWords(Result strings, FTContext *ftcontext) const; FTSelection *optimizePhrase(Result strings, FTContext *ftcontext) const; FTSelection *optimizeAny(Result strings, FTContext *ftcontext) const; FTSelection *optimizeAll(Result strings, FTContext *ftcontext) const; AllMatches *executeAnyWord(Result strings, FTContext *ftcontext) const; AllMatches *executeAllWords(Result strings, FTContext *ftcontext) const; AllMatches *executePhrase(Result strings, FTContext *ftcontext) const; AllMatches *executeAny(Result strings, FTContext *ftcontext) const; AllMatches *executeAll(Result strings, FTContext *ftcontext) const; ASTNode *expr_; FTAnyallOption option_; }; class XQILLA_API FTWord : public FTSelection { public: FTWord(const XMLCh *queryString, XPath2MemoryManager *memMgr); virtual FTSelection *staticResolution(StaticContext *context); virtual FTSelection *staticTypingImpl(StaticContext *context); virtual FTSelection *optimize(FTContext *context) const; virtual AllMatches *execute(FTContext *ftcontext) const; const XMLCh *getQueryString() const { return queryString_; } private: const XMLCh *queryString_; }; class FTStringSearchMatches : public AllMatches { public: FTStringSearchMatches(const LocationInfo *info, const XMLCh *queryString, FTContext *ftcontext); bool next(DynamicContext *context); const StringMatches &getStringIncludes(); const StringMatches &getStringExcludes(); private: unsigned int queryPos_; TokenStream::Ptr tokenStream_; StringMatches includes_; StringMatches excludes_; }; #endif XQilla-2.3.0/include/xqilla/fulltext/FTContent.hpp0000644000151400015140000000462211653565523017003 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FTCONTENT_HPP #define _FTCONTENT_HPP #include class XQILLA_API FTContent : public FTOption { public: enum Type { AT_START, AT_END, ENTIRE_CONTENT }; FTContent(Type type, XPath2MemoryManager *memMgr) : FTOption(FTSelection::CONTENT, memMgr), type_(type), arg_(0) {} FTContent(FTSelection *arg, Type type, XPath2MemoryManager *memMgr) : FTOption(FTSelection::CONTENT, memMgr), type_(type), arg_(arg) {} virtual FTSelection *staticResolution(StaticContext *context); virtual FTSelection *staticTypingImpl(StaticContext *context); virtual FTSelection *optimize(FTContext *context) const; virtual AllMatches *execute(FTContext *ftcontext) const; virtual void setArgument(FTSelection *arg) { arg_ = arg; } FTSelection *getArgument() const { return arg_; } Type getType() const { return type_; } private: Type type_; FTSelection *arg_; }; class FTContentAtStartMatches : public AllMatches { public: FTContentAtStartMatches(const LocationInfo *info, AllMatches *arg) : AllMatches(info), arg_(arg), includes_() {} ~FTContentAtStartMatches(); bool next(DynamicContext *context); const StringMatches &getStringIncludes(); const StringMatches &getStringExcludes(); private: AllMatches *arg_; StringMatches includes_; }; class FTContentAtEndMatches : public AllMatches { public: FTContentAtEndMatches(const LocationInfo *info, AllMatches *arg) : AllMatches(info), arg_(arg), includes_() {} ~FTContentAtEndMatches(); bool next(DynamicContext *context); const StringMatches &getStringIncludes(); const StringMatches &getStringExcludes(); private: AllMatches *arg_; StringMatches includes_; }; #endif XQilla-2.3.0/include/xqilla/fulltext/FTOr.hpp0000644000151400015140000000350111653565523015744 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FTOR_HPP #define _FTOR_HPP #include #include class XQILLA_API FTOr : public FTSelection { public: FTOr(XPath2MemoryManager *memMgr); FTOr(FTSelection *left, FTSelection *right, XPath2MemoryManager *memMgr); virtual FTSelection *staticResolution(StaticContext *context); virtual FTSelection *staticTypingImpl(StaticContext *context); virtual FTSelection *optimize(FTContext *context) const; virtual AllMatches *execute(FTContext *ftcontext) const; const VectorOfFTSelections &getArguments() const { return args_; } void addArg(FTSelection *sel) { args_.push_back(sel); } private: VectorOfFTSelections args_; }; class FTDisjunctionMatches : public AllMatches { public: FTDisjunctionMatches(const LocationInfo *info); ~FTDisjunctionMatches(); void addMatches(AllMatches *m) { args_.push_back(m); } bool next(DynamicContext *context); const StringMatches &getStringIncludes(); const StringMatches &getStringExcludes(); private: bool toDo_; std::vector args_; std::vector::iterator it_; }; #endif XQilla-2.3.0/include/xqilla/fulltext/DefaultTokenizer.hpp0000644000151400015140000000306511653565523020416 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _DEFAULTTOKENIZER_HPP #define _DEFAULTTOKENIZER_HPP #include #include class XQILLA_API DefaultTokenizer : public Tokenizer { public: DefaultTokenizer() {} virtual TokenStream::Ptr tokenize(const Node::Ptr &node, DynamicContext *context) const; virtual TokenStream::Ptr tokenize(const XMLCh *str, XPath2MemoryManager *mm) const; private: class DefaultTokenStream : public TokenStream { public: DefaultTokenStream(const XMLCh *str, XPath2MemoryManager *mm); virtual ~DefaultTokenStream(); virtual TokenInfo next(); private: XMLCh *string_; XMLCh *current_; XMLCh *tokenStart_; unsigned int position_; unsigned int sentence_; unsigned int paragraph_; bool seenEndOfSentence_; XPath2MemoryManager *mm_; }; }; #endif XQilla-2.3.0/include/xqilla/fulltext/AllMatches.hpp0000644000151400015140000000405211653565523017151 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ALLMATCHES_HPP #define _ALLMATCHES_HPP #include #include #include class DynamicContext; class XQILLA_API StringMatch { public: StringMatch() : tokenInfo(), queryPos(0), startToken(false), endToken(false) {} StringMatch(unsigned int qPos, const TokenInfo &tInfo) : tokenInfo(tInfo.word_, tInfo.position_, tInfo.sentence_, tInfo.paragraph_), queryPos(qPos), startToken(false), endToken(false) {} StringMatch(const StringMatch &other) : tokenInfo(other.tokenInfo.word_, other.tokenInfo.position_, other.tokenInfo.sentence_, other.tokenInfo.paragraph_), queryPos(other.queryPos), startToken(other.startToken), endToken(other.endToken) {} TokenInfo tokenInfo; unsigned int queryPos; bool startToken, endToken; }; typedef std::vector StringMatches; class XQILLA_API AllMatches : public LocationInfo { public: virtual ~AllMatches() {} /// Get the next Match from the iterator. Returns false if there is no next value. virtual bool next(DynamicContext *context) = 0; virtual const StringMatches &getStringIncludes() = 0; virtual const StringMatches &getStringExcludes() = 0; protected: AllMatches(const LocationInfo *o) { setLocationInfo(o); } }; #endif XQilla-2.3.0/include/xqilla/fulltext/DefaultTokenStore.hpp0000644000151400015140000000455311653565523020544 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _DEFAULTTOKENSTORE_HPP #define _DEFAULTTOKENSTORE_HPP #include #include #include #include #include #include class XPath2MemoryManager; class DynamicContext; class XQILLA_API DefaultTokenStore : public TokenStore { public: typedef std::vector Tokens; class TokenEntryStream : public TokenStream { public: TokenEntryStream(const Tokens &tokens) : it_(tokens.begin()), end_(tokens.end()) {} virtual TokenInfo next() { if(it_ != end_) return *it_++; TokenInfo token; memset(&token, 0, sizeof(TokenInfo)); return token; } private: Tokens::const_iterator it_; Tokens::const_iterator end_; }; DefaultTokenStore(const Node::Ptr &node, const Tokenizer *tokenizer, DynamicContext *context); DefaultTokenStore(XPath2MemoryManager *mm); virtual TokenStream::Ptr findTokens(const XMLCh *searchString) const; virtual unsigned int getStartTokenPosition() const { return 0; } virtual unsigned int getEndTokenPosition() const { return numTokens_ - 1; } private: class TokenEntry { public: void addToken(const TokenInfo &token) { tokens_.push_back(token); } TokenStream::Ptr getTokenStream() const { return new TokenEntryStream(tokens_); } private: Tokens tokens_; }; private: XERCES_CPP_NAMESPACE_QUALIFIER RefHashTableOf tokens_; unsigned int numTokens_; XPath2MemoryManager *mm_; DynamicContext *context_; }; #endif XQilla-2.3.0/include/xqilla/fulltext/FTRange.hpp0000644000151400015140000000166211653565523016426 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FTRANGE_HPP #define _FTRANGE_HPP class ASTNode; class XQILLA_API FTRange { public: enum Type { EXACTLY, AT_LEAST, AT_MOST, FROM_TO }; Type type; ASTNode *arg1, *arg2; }; #endif XQilla-2.3.0/include/xqilla/fulltext/TokenInfo.hpp0000644000151400015140000000305011653565523017025 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _TOKENINFO_HPP #define _TOKENINFO_HPP #include #include #include struct XQILLA_API TokenInfo { const XMLCh *word_; unsigned int position_; unsigned int sentence_; unsigned int paragraph_; TokenInfo() { word_ = 0; position_ = 0; sentence_ = 0; paragraph_ = 0; } TokenInfo(const XMLCh *word, unsigned int position, unsigned int sentence, unsigned int paragraph) { word_ = word; position_ = position; sentence_ = sentence; paragraph_ = paragraph; } }; class XQILLA_API TokenStream : public ReferenceCounted { public: typedef RefCountPointer Ptr; virtual ~TokenStream() {} virtual TokenInfo next() = 0; protected: TokenStream() {} }; #endif XQilla-2.3.0/include/xqilla/fulltext/FTUnaryNot.hpp0000644000151400015140000000357111653565523017152 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FTUNARYNOT_HPP #define _FTUNARYNOT_HPP #include class XQILLA_API FTUnaryNot : public FTSelection { public: FTUnaryNot(FTSelection *arg, XPath2MemoryManager *memMgr); virtual FTSelection *staticResolution(StaticContext *context); virtual FTSelection *staticTypingImpl(StaticContext *context); virtual FTSelection *optimize(FTContext *context) const; virtual AllMatches *execute(FTContext *ftcontext) const; FTSelection *getArgument() const { return arg_; } void setArgument(FTSelection *expr) { arg_ = expr; } private: FTSelection *arg_; }; class FTUnaryNotMatches : public AllMatches { public: FTUnaryNotMatches(const LocationInfo *info, AllMatches *arg) : AllMatches(info), toDo_(true), arg_(arg), includes_(), excludes_() {} ~FTUnaryNotMatches(); bool next(DynamicContext *context); const StringMatches &getStringIncludes(); const StringMatches &getStringExcludes(); private: void addStringIncludes(const StringMatches &sMatches); void addStringExcludes(const StringMatches &sMatches); private: bool toDo_; AllMatches *arg_; StringMatches includes_; StringMatches excludes_; }; #endif XQilla-2.3.0/include/xqilla/runtime/0000755000151400015140000000000011653572444014316 500000000000000XQilla-2.3.0/include/xqilla/runtime/ResultBuffer.hpp0000644000151400015140000000271011653565523017357 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _RESULTBUFFER_HPP #define _RESULTBUFFER_HPP #include #include /** A reference counting wrapper for the result buffer */ class XQILLA_API ResultBuffer { public: ResultBuffer(const Result &result, unsigned int readCount = ResultBufferImpl::UNLIMITED_COUNT); ResultBuffer(const Item::Ptr &item, unsigned int readCount = ResultBufferImpl::UNLIMITED_COUNT); ResultBuffer(ResultBufferImpl *impl, unsigned start = 0); /// Creates a result that returns the same items as the one used to construct this buffer Result createResult(); bool isNull() const { return _impl.isNull(); } private: ResultBufferImpl::Ptr _impl; unsigned _start; }; #endif XQilla-2.3.0/include/xqilla/runtime/ResultBufferImpl.hpp0000644000151400015140000000416511653565523020207 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _RESULTBUFFERIMPL_HPP #define _RESULTBUFFERIMPL_HPP #include #include #include #include /** A buffer for lazily evaluated query results. This object is not thread safe */ class XQILLA_API ResultBufferImpl : public ReferenceCounted { public: typedef RefCountPointer Ptr; static const unsigned int UNLIMITED_COUNT; /** * Do not allocate this object from a memory manager! * It must be created using the heap. */ ResultBufferImpl(const Result &result, unsigned int readCount = UNLIMITED_COUNT); ResultBufferImpl(const Item::Ptr &item, unsigned int readCount = UNLIMITED_COUNT); ~ResultBufferImpl(); /// Creates a result that returns the same items as the one used to construct this buffer Result createResult(unsigned index); unsigned int getMaxReadCount() const { return _maxReadCount; } void increaseMaxReadCount(unsigned int readCount); unsigned int incrementReadCount() { return ++_readCount; } private: ResultBufferImpl(const ResultBufferImpl &); ResultBufferImpl &operator=(const ResultBufferImpl &); Item::Ptr item(unsigned int index, DynamicContext *context); friend class BufferedResult; typedef std::vector ItemList; Result _result; ItemList _items; unsigned int _readCount; unsigned int _maxReadCount; }; #endif XQilla-2.3.0/include/xqilla/runtime/ClosureResult.hpp0000644000151400015140000000355611653565523017573 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _CLOSURERESULT_HPP #define _CLOSURERESULT_HPP #include #include #include class VariableStore; class ASTNode; class DocumentCache; class XQILLA_API ClosureResult : public ResultImpl { public: virtual Item::Ptr nextOrTail(Result &tail, DynamicContext *context); static Result create(const ASTNode *ast, DynamicContext *context); static Result create(const StaticAnalysis &src, DynamicContext *context, ResultImpl *result); private: ClosureResult(const StaticAnalysis &src, DynamicContext *context, ResultImpl *result); Item::Ptr contextItem_; size_t contextPosition_; size_t contextSize_; VarStoreImpl varStore_; Result result_; }; class XQILLA_API ClosureEventGenerator : public ASTNodeEventGenerator { public: ClosureEventGenerator(const ASTNode *ast, DynamicContext *context, bool preserveNS, bool preserveType); virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context); protected: Item::Ptr contextItem_; size_t contextPosition_; size_t contextSize_; VarStoreImpl varStore_; }; #endif XQilla-2.3.0/include/xqilla/runtime/Result.hpp0000644000151400015140000000425411653565523016232 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _RESULT_HPP #define _RESULT_HPP #include #include #include #include #include #include class Sequence; class SequenceType; class DynamicContext; class StaticType; /** A scoped pointer wrapper for the lazily evaluated query result */ class XQILLA_API Result { public: Result(const Item::Ptr &item); Result(const Sequence &seq); Result(ResultImpl *impl); Result(const Result &o); Result &operator=(const Result &o); ~Result(); /// Returns the underlying ResultImpl object ResultImpl *operator->(); /// Returns the underlying ResultImpl object const ResultImpl *operator->() const; /// Returns the underlying ResultImpl object ResultImpl *get(); /// Returns the underlying ResultImpl object const ResultImpl *get() const; /// Returns true if the underlying pointer is null bool isNull() const; EmptyResult* getEmpty() const; private: ResultImpl *_impl; static EmptyResult _empty; }; inline bool Result::isNull() const { return _impl == 0; } inline ResultImpl *Result::get() { if(_impl) return _impl; return getEmpty(); } inline const ResultImpl *Result::get() const { if(_impl) return _impl; return getEmpty(); } inline ResultImpl *Result::operator->() { return get(); } inline const ResultImpl *Result::operator->() const { return get(); } #endif XQilla-2.3.0/include/xqilla/runtime/SequenceResult.hpp0000644000151400015140000000244611653565523017724 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _SEQUENCERESULT_HPP #define _SEQUENCERESULT_HPP #include #include class XQILLA_API SequenceResult : public ResultImpl { public: SequenceResult(const LocationInfo *o, const Sequence &seq); /// Get the next item from the iterator virtual Item::Ptr nextOrTail(Result &tail, DynamicContext *context); /// Cast operator to a Sequence virtual Sequence toSequence(DynamicContext *context = 0); virtual void skip(unsigned count, DynamicContext *context); private: Sequence seq_; size_t i_; }; #endif XQilla-2.3.0/include/xqilla/runtime/TupleResult.hpp0000644000151400015140000000237311653565523017244 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef TUPLERESULT_HPP #define TUPLERESULT_HPP #include #include #include class DynamicContext; class XQILLA_API TupleResult : public VariableStore, public LocationInfo, public ReferenceCounted { public: typedef RefCountPointer Ptr; virtual ~TupleResult() {} virtual bool next(DynamicContext *context) = 0; protected: TupleResult(const LocationInfo *location) { setLocationInfo(location); } }; #endif XQilla-2.3.0/include/xqilla/runtime/Sequence.hpp0000644000151400015140000000766111653565523016531 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _SEQUENCE_HPP #define _SEQUENCE_HPP #include #include #include #include #include #include class DynamicContext; typedef std::vector > VectorOfItems; /** * An eagerly evaluated result of a query execution. */ class XQILLA_API Sequence : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory { public: typedef VectorOfItems::iterator iterator; typedef VectorOfItems::const_iterator const_iterator; typedef VectorOfItems::reverse_iterator reverse_iterator; typedef VectorOfItems::const_reverse_iterator const_reverse_iterator; // constructor that takes one Item Sequence(const Item::Ptr &item, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager); // constructor that creates a empty sequence Sequence(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager); /// construct and reserve space for n elements Sequence(size_t n, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager); Sequence(const Sequence&, size_t start, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager); // copy constructor Sequence(const Sequence&, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr); // copy constructor Sequence(const Sequence&); Sequence &operator=(const Sequence &); ~Sequence(); void clear(); const Item::Ptr &first() const; const Item::Ptr &second() const; ///Begin an iterator Sequence::iterator begin(void); Sequence::const_iterator begin(void) const; ///Find the end of the iterator Sequence::iterator end(void); Sequence::const_iterator end(void) const; ///Reverse iterator methods Sequence::reverse_iterator rbegin(void); Sequence::const_reverse_iterator rbegin(void) const; Sequence::reverse_iterator rend(void); Sequence::const_reverse_iterator rend(void) const; ///Returns the number of nodes in the list size_t getLength(void) const; ///Return the indexth item in the collection const Item::Ptr &item(size_t index) const; ///Return the indexth item in the collection - takes ATDecimalOrDerived const Item::Ptr &item(const ATDecimalOrDerived::Ptr &index) const; /// add an item to this sequence void addItem(const Item::Ptr &item); /// add an item to this sequence void addItemFront(const Item::Ptr &item); /// combine another sequence onto this sequence void joinSequence(const Sequence & s); ///Returns true if the list is empty bool isEmpty() const; /// sort into document order (only works for Sequences containing only Nodes) void sortIntoDocumentOrder(const DynamicContext *context); /// sort as strings, using the given collation void sortWithCollation(const Collation *collation, const DynamicContext *context); private: VectorOfItems _itemList; friend class SequenceResult; }; #endif XQilla-2.3.0/include/xqilla/runtime/EmptyResult.hpp0000644000151400015140000000222511653565523017245 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _EMPTYRESULT_HPP #define _EMPTYRESULT_HPP #include class XQILLA_API EmptyResult : public ResultImpl { public: EmptyResult(const LocationInfo *o); Item::Ptr next(DynamicContext *context); virtual Sequence toSequence(DynamicContext *context); virtual void toResultBuffer(unsigned int readCount, ResultBuffer &buffer); virtual void skip(unsigned count, DynamicContext *context); }; #endif XQilla-2.3.0/include/xqilla/runtime/ResultImpl.hpp0000644000151400015140000000371411653565523017054 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _RESULTIMPL_HPP #define _RESULTIMPL_HPP #include #include #include class DynamicContext; class Sequence; class Result; class ResultBuffer; /** A lazily evaluated query result */ class XQILLA_API ResultImpl : public LocationInfo { public: virtual ~ResultImpl() {} Result *getResultPointer() { return resultPointer_; } void setResultPointer(Result *p) { resultPointer_ = p; } /// Get the next item from the iterator. Returns null if the is no next value. virtual Item::Ptr next(DynamicContext *context); /// Gets the next item, or returns a tail call Result which will give the next item. virtual Item::Ptr nextOrTail(Result &tail, DynamicContext *context); /// Cast operator to a Sequence virtual Sequence toSequence(DynamicContext *context); /// Returns a result buffer of the result virtual void toResultBuffer(unsigned int readCount, ResultBuffer &buffer); /// Skip ahead virtual void skip(unsigned count, DynamicContext *context); protected: ResultImpl(const LocationInfo *o); Result *resultPointer_; private: ResultImpl(const ResultImpl &) {}; ResultImpl &operator=(const ResultImpl &) { return *this; }; }; #endif XQilla-2.3.0/include/xqilla/ast/0000755000151400015140000000000011653572443013421 500000000000000XQilla-2.3.0/include/xqilla/ast/XQInlineFunction.hpp0000644000151400015140000000417011653565523017252 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQINLINEFUNCTION_HPP #define XQINLINEFUNCTION_HPP #include class XQUserFunction; class FunctionSignature; class XQILLA_API XQInlineFunction : public ASTNodeImpl { public: XQInlineFunction(XQUserFunction *func, XPath2MemoryManager *mm); XQInlineFunction(XQUserFunction *func, const XMLCh *prefix, const XMLCh *uri, const XMLCh *name, unsigned int numArgs, FunctionSignature *signature, ASTNode *instance, XPath2MemoryManager *mm); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; const XMLCh *getPrefix() const { return prefix_; } const XMLCh *getURI() const { return uri_; } const XMLCh *getName() const { return name_; } unsigned int getNumArgs() const { return numArgs_; } XQUserFunction *getUserFunction() const { return func_; } void setUserFunction(XQUserFunction *func) { func_ = func; } FunctionSignature *getSignature() const { return signature_; } void setSignature(FunctionSignature *s) { signature_ = s; } ASTNode *getInstance() const { return instance_; } void setInstance(ASTNode *i) { instance_ = i; } private: XQUserFunction *func_; const XMLCh *prefix_, *uri_, *name_; unsigned int numArgs_; FunctionSignature *signature_; ASTNode *instance_; }; #endif XQilla-2.3.0/include/xqilla/ast/XQDocumentConstructor.hpp0000644000151400015140000000424311653565523020353 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQDOCUMENTCONSTRUCTOR_HPP #define XQDOCUMENTCONSTRUCTOR_HPP #include #include class XQILLA_API XQDocumentConstructor : public XQDOMConstructor { public: XQDocumentConstructor(ASTNode *value, XPath2MemoryManager* expr); virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual const XMLCh* getNodeType() const; virtual ASTNode *getValue() const; virtual void setValue(ASTNode *value); protected: ASTNode *m_value; }; class DocConstructFilter : public EventFilter { public: DocConstructFilter(EventHandler *next, const LocationInfo *location); virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname); virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName); virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName); virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri); private: const LocationInfo *location_; unsigned int level_; }; #endif XQilla-2.3.0/include/xqilla/ast/XQFunctionCall.hpp0000644000151400015140000000313611653565523016710 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQFUNCTIONCALL_HPP #define XQFUNCTIONCALL_HPP #include class XQILLA_API XQFunctionCall : public ASTNodeImpl { public: XQFunctionCall(const XMLCh *qname, VectorOfASTNodes *args, XPath2MemoryManager *mm); XQFunctionCall(const XMLCh *prefix, const XMLCh *uri, const XMLCh *name, VectorOfASTNodes *args, XPath2MemoryManager *mm); virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; const XMLCh *getPrefix() const { return prefix_; } const XMLCh *getURI() const { return uri_; } const XMLCh *getName() const { return name_; } const VectorOfASTNodes *getArguments() const { return args_; } private: const XMLCh *prefix_; const XMLCh *uri_; const XMLCh *name_; VectorOfASTNodes *args_; }; #endif XQilla-2.3.0/include/xqilla/ast/ContextTuple.hpp0000644000151400015140000000235311653565523016514 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef CONTEXTTUPLE_HPP #define CONTEXTTUPLE_HPP #include class XQILLA_API ContextTuple : public TupleNode { public: ContextTuple(XPath2MemoryManager *mm) : TupleNode(CONTEXT_TUPLE, 0, mm) {} virtual TupleNode *staticResolution(StaticContext *context); virtual TupleNode *staticTypingImpl(StaticContext *context); virtual TupleNode *staticTypingTeardown(StaticContext *context, StaticAnalysis &usedSrc); virtual TupleResult::Ptr createResult(DynamicContext* context) const; }; #endif XQilla-2.3.0/include/xqilla/ast/XQFunctionDeref.hpp0000644000151400015140000000257411653565523017067 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQFUNCTIONDEREF_HPP #define XQFUNCTIONDEREF_HPP #include class XQILLA_API XQFunctionDeref : public ASTNodeImpl { public: XQFunctionDeref(ASTNode *expr, VectorOfASTNodes *args, XPath2MemoryManager *mm); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext *context, int flags=0) const; ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } VectorOfASTNodes *getArguments() const { return args_; } private: ASTNode *expr_; VectorOfASTNodes *args_; }; #endif XQilla-2.3.0/include/xqilla/ast/XQReturn.hpp0000644000151400015140000000321611653565523015605 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQRETURN_HPP #define XQRETURN_HPP #include class TupleNode; class XQILLA_API XQReturn : public ASTNodeImpl { public: XQReturn(TupleNode *parent, ASTNode *expr, XPath2MemoryManager *mm); TupleNode *getParent() const { return parent_; } void setParent(TupleNode *parent) { parent_ = parent; } ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; virtual PendingUpdateList createUpdateList(DynamicContext *context) const; private: TupleNode *parent_; ASTNode *expr_; }; #endif XQilla-2.3.0/include/xqilla/ast/XQVariable.hpp0000644000151400015140000000333511653565523016055 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQVARIABLE_HPP #define _XQVARIABLE_HPP #include #include #include class XQGlobalVariable; class XQILLA_API XQVariable : public ASTNodeImpl { public: XQVariable(const XMLCh *qualifiedName, XPath2MemoryManager* memMgr); XQVariable(const XMLCh *uri, const XMLCh *name, XPath2MemoryManager* memMgr); XQVariable(const XMLCh *prefix, const XMLCh *uri, const XMLCh *name, XQGlobalVariable *global, XPath2MemoryManager* memMgr); ~XQVariable(); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); const XMLCh *getPrefix() const; const XMLCh *getURI() const; const XMLCh *getName() const; XQGlobalVariable *getGlobal() const { return _global; } private: const XMLCh* _prefix; const XMLCh* _uri; const XMLCh* _name; XQGlobalVariable *_global; }; #endif XQilla-2.3.0/include/xqilla/ast/XQCopy.hpp0000644000151400015140000000433211653565523015240 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQCOPY_HPP #define XQCOPY_HPP #include class XQILLA_API XQCopy : public ASTNodeImpl { public: XQCopy(XPath2MemoryManager* memMgr); XQCopy(ASTNode *expr, const VectorOfASTNodes &children, bool copyNamespaces, bool inheritNamespaces, XPath2MemoryManager* memMgr); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; EventGenerator::Ptr generateEventsImpl(const Item::Ptr &toBeCopied, EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *item) { expr_ = item; } virtual const VectorOfASTNodes &getChildren() const { return children_; } virtual void setChildren(const VectorOfASTNodes &ch) { children_ = ch; } bool getCopyNamespaces() const { return copyNamespaces_; } void setCopyNamespaces(bool value) { copyNamespaces_ = value; } bool getInheritNamespaces() const { return inheritNamespaces_; } void setInheritNamespaces(bool value) { inheritNamespaces_ = value; } protected: ASTNode *expr_; VectorOfASTNodes children_; bool copyNamespaces_; bool inheritNamespaces_; }; #endif XQilla-2.3.0/include/xqilla/ast/XQTextConstructor.hpp0000644000151400015140000000264411653565523017524 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQTEXTCONSTRUCTOR_HPP #define XQTEXTCONSTRUCTOR_HPP #include class EventHandler; class XQILLA_API XQTextConstructor : public XQDOMConstructor { public: XQTextConstructor(ASTNode *value, XPath2MemoryManager* mm); virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual const XMLCh* getNodeType() const; virtual ASTNode *getValue() const; virtual void setValue(ASTNode *value); private: ASTNode *m_value; }; #endif XQilla-2.3.0/include/xqilla/ast/XQStep.hpp0000644000151400015140000000360711653565523015245 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQSTEP_HPP #define _XQSTEP_HPP #include #include class NodeTest; ///this class calculates a node list based on a context class XQILLA_API XQStep : public ASTNodeImpl { public: enum Axis { ANCESTOR, ANCESTOR_OR_SELF, ATTRIBUTE, CHILD, DESCENDANT, DESCENDANT_OR_SELF, FOLLOWING, FOLLOWING_SIBLING, NAMESPACE, PARENT, PRECEDING, PRECEDING_SIBLING, SELF }; //constuctor that takes the step this XQ is refuring to XQStep(Axis axis, NodeTest* nodeTest, XPath2MemoryManager* memMgr); ~XQStep(); virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual Result iterateResult(const Result &contextItems, DynamicContext* context) const; NodeTest *getNodeTest() const; void setNodeTest(NodeTest *nodeTest); Axis getAxis() const; void setAxis(Axis axis); static bool isForwardAxis(Axis axis); static unsigned int getAxisProperties(Axis axis); private: NodeTest* nodeTest_; Axis axis_; }; #endif XQilla-2.3.0/include/xqilla/ast/XQEffectiveBooleanValue.hpp0000644000151400015140000000316511653565523020526 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQEFFECTIVEBOOLEANVALUE_HPP #define _XQEFFECTIVEBOOLEANVALUE_HPP #include #include class XQILLA_API XQEffectiveBooleanValue : public ASTNodeImpl { public: XQEffectiveBooleanValue(ASTNode* expr, XPath2MemoryManager* memMgr); virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual BoolResult boolResult(DynamicContext* context) const; virtual Result createResult(DynamicContext* context, int flags) const; ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } /// Returns the effective boolean value of the sequence starting with the two items given static bool get(const Item::Ptr &first, const Item::Ptr &second, DynamicContext* context, const LocationInfo *info); protected: ASTNode* expr_; }; #endif XQilla-2.3.0/include/xqilla/ast/XQAtomize.hpp0000644000151400015140000000330111653565523015731 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQATOMIZE_HPP #define _XQATOMIZE_HPP #include #include class XQILLA_API XQAtomize : public ASTNodeImpl { public: XQAtomize(ASTNode* expr, XPath2MemoryManager* memMgr); XQAtomize(ASTNode* expr, bool doPSVI, XPath2MemoryManager* memMgr); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } bool getDoPSVI() const { return doPSVI_; } protected: ASTNode* expr_; bool doPSVI_; }; class XQILLA_API AtomizeResult : public ResultImpl { public: AtomizeResult(const LocationInfo *location, const Result &parent) : ResultImpl(location), _parent(parent), _sub(0) {} Item::Ptr next(DynamicContext *context); private: Result _parent; Result _sub; }; #endif XQilla-2.3.0/include/xqilla/ast/LocationInfo.hpp0000644000151400015140000000400611653565523016437 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _LOCATIONINFO_HPP #define _LOCATIONINFO_HPP #include #include /** A class that gives records a location in the query */ class XQILLA_API LocationInfo { public: /** Constructor that sets the information to 0 */ LocationInfo() : file_(0), line_(0), column_(0) {} /** Constructor that takes the initial information */ LocationInfo(const XMLCh *file, unsigned int line, unsigned int column) : file_(file), line_(line), column_(column) {} /** The file that the query was parsed from. This could be null. */ const XMLCh *getFile() const { return file_; } /** The line in the query */ unsigned int getLine() const { return line_; } /** The column in the query */ unsigned int getColumn() const { return column_; } /** Sets the location to the given information */ void setLocationInfo(const XMLCh *file, unsigned int line, unsigned int column) { file_ = file; line_ = line; column_ = column; } /** Sets the location with the information in the given LocationInfo object */ void setLocationInfo(const LocationInfo *o) { if(o != 0) { file_ = o->file_; line_ = o->line_; column_ = o->column_; } } private: const XMLCh *file_; unsigned int line_, column_; }; #endif XQilla-2.3.0/include/xqilla/ast/XQNav.hpp0000644000151400015140000000605611653565523015057 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQNav_HPP #define _XQNav_HPP #include #include #include #include ///this class calculates a node list based on a context class XQILLA_API XQNav : public ASTNodeImpl { public: class XQILLA_API StepInfo { public: StepInfo() : step(0) {} StepInfo(ASTNode *s) : step(s) {} ASTNode *step; }; typedef std::vector > Steps; XQNav(XPath2MemoryManager* memMgr); XQNav(ASTNode *step, XPath2MemoryManager* memMgr); XQNav(const Steps &steps, bool sortAdded, XPath2MemoryManager* memMgr); virtual ~XQNav(); /** Add a new NavigationStep to the sequence of navigation steps to be performed. This operation is used by parse tree classes to turn themselves into an optimised, reusable navigation. **/ void addStep(const StepInfo &step); /** Add a new NavigationStep to the start of the sequence of navigation steps to be performed.**/ void addStepFront(ASTNode* step); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); const Steps &getSteps() const; bool getSortAdded() const { return _sortAdded; } void setSortAdded(bool value) { _sortAdded = value; } static unsigned int combineProperties(unsigned int prev_props, unsigned int step_props); protected: //list of steps to be performed. Steps _steps; bool _sortAdded; }; class XQILLA_API NavStepResult : public ResultImpl { public: NavStepResult(const Result &parent, const ASTNode *step, size_t contextSize); Item::Ptr next(DynamicContext *context); private: Result parent_; const ASTNode *step_; Result stepResult_; size_t contextPos_; size_t contextSize_; Item::Ptr contextItem_; }; class XQILLA_API IntermediateStepCheckResult : public ResultImpl { public: IntermediateStepCheckResult(const LocationInfo *o, const Result &parent); Item::Ptr next(DynamicContext *context); private: Result parent_; }; class XQILLA_API LastStepCheckResult : public ResultImpl { public: LastStepCheckResult(const LocationInfo *o, const Result &parent); Item::Ptr next(DynamicContext *context); private: Result parent_; int _nTypeOfItemsInLastStep; }; #endif XQilla-2.3.0/include/xqilla/ast/XQApplyTemplates.hpp0000644000151400015140000000441011653565523017267 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQAPPLYTEMPLATES_HPP #define XQAPPLYTEMPLATES_HPP #include #include #include class VariableStore; class XQILLA_API XQApplyTemplates : public ASTNodeImpl { public: XQApplyTemplates(ASTNode *expr, TemplateArguments *args, XQUserFunction::Mode *mode, XPath2MemoryManager *mm); XQApplyTemplates(ASTNode *expr, TemplateArguments *args, XQUserFunction::Mode *mode, const UserFunctions &templates, XPath2MemoryManager *mm); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext *context, int flags=0) const; ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } TemplateArguments *getArguments() const { return args_; } void setArguments(TemplateArguments *args) { args_ = args; } XQUserFunction::Mode *getMode() const { return mode_; } void setMode(XQUserFunction::Mode *mode) { mode_ = mode; } const UserFunctions &getTemplates() const { return templates_; } void evaluateArguments(VarStoreImpl &scope, DynamicContext *context) const; static Result executeTemplate(const XQUserFunction *tplt, const TemplateArguments *args, const VariableStore *scope, DynamicContext *context, const LocationInfo *location); private: ASTNode *expr_; TemplateArguments *args_; XQUserFunction::Mode *mode_; UserFunctions templates_; }; #endif XQilla-2.3.0/include/xqilla/ast/LetTuple.hpp0000644000151400015140000000400611653565523015611 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef LETTUPLE_HPP #define LETTUPLE_HPP #include #include class ASTNode; class SequenceType; class XQILLA_API LetTuple : public TupleNode { public: LetTuple(TupleNode *parent, const XMLCh *varQName, ASTNode *expr, XPath2MemoryManager *mm); LetTuple(TupleNode *parent, const XMLCh *varURI, const XMLCh *varName, ASTNode *expr, XPath2MemoryManager *mm); const XMLCh *getVarQName() const { return varQName_; } const XMLCh *getVarURI() const { return varURI_; } void setVarURI(const XMLCh *uri) { varURI_ = uri; } const XMLCh *getVarName() const { return varName_; } void setVarName(const XMLCh *name) { varName_ = name; } ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } const StaticAnalysis &getVarSRC() const { return varSrc_; } virtual TupleNode *staticResolution(StaticContext *context); virtual TupleNode *staticTypingImpl(StaticContext *context); virtual TupleNode *staticTypingTeardown(StaticContext *context, StaticAnalysis &usedSrc); virtual TupleResult::Ptr createResult(DynamicContext* context) const; // Used during parsing SequenceType *seqType; private: const XMLCh *varQName_, *varURI_, *varName_; StaticAnalysis varSrc_; ASTNode *expr_; }; #endif XQilla-2.3.0/include/xqilla/ast/XQCastAs.hpp0000644000151400015140000000356611653565523015514 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQCASTAS_HPP #define _XQCASTAS_HPP #include #include class SequenceType; class XQILLA_API XQCastAs : public ASTNodeImpl { public: XQCastAs(ASTNode* expr, SequenceType* exprType, XPath2MemoryManager* memMgr); XQCastAs(ASTNode* expr, SequenceType* exprType, bool isPrimitive, AnyAtomicType::AtomicObjectType typeIndex, XPath2MemoryManager* memMgr); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); ASTNode *getExpression() const; SequenceType *getSequenceType() const; bool getIsPrimitive() const { return _isPrimitive; } AnyAtomicType::AtomicObjectType getTypeIndex() const { return _typeIndex; } void setExpression(ASTNode *item); AnyAtomicType::Ptr cast(const AnyAtomicType::Ptr &in, DynamicContext *context) const; AnyAtomicType::Ptr cast(const XMLCh *value, DynamicContext *context) const; protected: ASTNode* _expr; SequenceType* _exprType; bool _isPrimitive; AnyAtomicType::AtomicObjectType _typeIndex; }; #endif XQilla-2.3.0/include/xqilla/ast/XQPredicate.hpp0000644000151400015140000000672011653565523016231 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQPREDICATE_HPP #define _XQPREDICATE_HPP #include class XQPredicate; // NOTE: the use of "::" in front of XQillaAllocator here is // to work around an issue in the HP-UX aCC compiler and STL // implementation. Do not remove it. class VectorOfPredicates : public std::vector > { public: VectorOfPredicates(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm) : std::vector >(::XQillaAllocator(mm)) {} }; class XQILLA_API XQPredicate : public ASTNodeImpl { public: XQPredicate(ASTNode *predicate, XPath2MemoryManager* memMgr); XQPredicate(ASTNode *expr, ASTNode *predicate, XPath2MemoryManager* memMgr); XQPredicate(ASTNode *expr, ASTNode *predicate, bool reverse, XPath2MemoryManager* memMgr); virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual Result iterateResult(const Result &contextItems, DynamicContext* context) const; ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } ASTNode *getPredicate() const { return predicate_; } void setPredicate(ASTNode *pred) { predicate_ = pred; } bool getReverse() const { return reverse_; } void setReverse(bool reverse) { reverse_ = reverse; } static ASTNode *addPredicates(ASTNode *expr, VectorOfPredicates *preds); static ASTNode *addReversePredicates(ASTNode *expr, VectorOfPredicates *preds); protected: ASTNode *expr_; ASTNode *predicate_; bool reverse_; }; class XQILLA_API PredicateFilterResult : public ResultImpl { public: PredicateFilterResult(const Result &parent, const ASTNode *pred, size_t contextSize); Item::Ptr next(DynamicContext *context); std::string asString(DynamicContext *context, int indent) const; private: bool todo_; Result parent_; const ASTNode *pred_; size_t contextPos_; size_t contextSize_; Item::Ptr first_; Item::Ptr second_; }; class NonNumericPredicateFilterResult : public ResultImpl { public: NonNumericPredicateFilterResult(const Result &parent, const ASTNode *pred, size_t contextSize); Item::Ptr next(DynamicContext *context); std::string asString(DynamicContext *context, int indent) const; private: bool todo_; Result parent_; const ASTNode *pred_; size_t contextPos_; size_t contextSize_; }; class NumericPredicateFilterResult : public ResultImpl { public: NumericPredicateFilterResult(const Result &parent, const ASTNode *pred, size_t contextSize); virtual Item::Ptr nextOrTail(Result &tail, DynamicContext *context); private: Result parent_; const ASTNode *pred_; size_t contextSize_; }; #endif XQilla-2.3.0/include/xqilla/ast/XQFunctionCoercion.hpp0000644000151400015140000000356311653565523017602 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQFUNCTIONCOERCION_HPP #define _XQFUNCTIONCOERCION_HPP #include #include class SequenceType; class XQILLA_API XQFunctionCoercion : public ASTNodeImpl { public: XQFunctionCoercion(ASTNode *expr, SequenceType *exprType, XPath2MemoryManager *memMgr); XQFunctionCoercion(ASTNode *expr, SequenceType *exprType, ASTNode *funcConvert, const StaticType &treatType, XPath2MemoryManager *memMgr); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); ASTNode *getExpression() const { return _expr; } void setExpression(ASTNode *item) { _expr = item; } ASTNode *getFuncConvert() const { return _funcConvert; } void setFuncConvert(ASTNode *item) { _funcConvert = item; } SequenceType *getSequenceType() const { return _exprType; } const StaticType &getTreatType() const { return _treatType; } static const XMLCh funcVarName[]; protected: ASTNode* _expr; SequenceType *_exprType; ASTNode *_funcConvert; StaticType _treatType; }; #endif XQilla-2.3.0/include/xqilla/ast/XQQuantified.hpp0000644000151400015140000000314111653565523016414 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQQUANTIFIED_HPP #define XQQUANTIFIED_HPP #include class TupleNode; class XQILLA_API XQQuantified : public ASTNodeImpl { public: enum Type { SOME, EVERY }; XQQuantified(Type qtype, TupleNode *parent, ASTNode *expr, XPath2MemoryManager *mm); Type getQuantifierType() const { return qtype_; } TupleNode *getParent() const { return parent_; } void setParent(TupleNode *parent) { parent_ = parent; } ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual BoolResult boolResult(DynamicContext* context) const; virtual Result createResult(DynamicContext* context, int flags) const; private: Type qtype_; TupleNode *parent_; ASTNode *expr_; }; #endif XQilla-2.3.0/include/xqilla/ast/XQContextItem.hpp0000644000151400015140000000274611653565523016600 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQCONTEXTITEM_HPP #define _XQCONTEXTITEM_HPP #include #include /** Returns the context item. Raises [err:XP0002] if the context item is null. */ class XQILLA_API XQContextItem : public ASTNodeImpl { public: XQContextItem(XPath2MemoryManager* memMgr); ~XQContextItem(); /** * Called during static analysis of expression to determine is statically * correct. If not an appropriate error is thrown. */ virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; static Result result(DynamicContext *context, const LocationInfo *info); }; #endif XQilla-2.3.0/include/xqilla/ast/ConvertFunctionArg.hpp0000644000151400015140000001172311653565523017637 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _CONVERTFUNCTIONARG_HPP #define _CONVERTFUNCTIONARG_HPP #include #include class XQILLA_API XQPromoteUntyped : public ASTNodeImpl { public: XQPromoteUntyped(ASTNode* expr, const XMLCh *uri, const XMLCh *name, XPath2MemoryManager* memMgr); XQPromoteUntyped(ASTNode* expr, const XMLCh *uri, const XMLCh *name, bool isPrimitive, AnyAtomicType::AtomicObjectType typeIndex, XPath2MemoryManager* memMgr); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } const XMLCh *getTypeURI() const { return uri_; } const XMLCh *getTypeName() const { return name_; } bool getIsPrimitive() const { return isPrimitive_; } AnyAtomicType::AtomicObjectType getTypeIndex() const { return typeIndex_; } protected: ASTNode* expr_; const XMLCh *uri_, *name_; bool isPrimitive_; AnyAtomicType::AtomicObjectType typeIndex_; }; class PromoteUntypedResult : public ResultImpl { public: PromoteUntypedResult(const XQPromoteUntyped *di, const Result &parent); PromoteUntypedResult(const LocationInfo *location, const Result &parent, bool isPrimitive, AnyAtomicType::AtomicObjectType typeIndex, const XMLCh *uri, const XMLCh *name); Item::Ptr next(DynamicContext *context); std::string asString(DynamicContext *context, int indent) const { return "promoteuntypedresult"; } private: Result parent_; bool isPrimitive_; AnyAtomicType::AtomicObjectType typeIndex_; const XMLCh *uri_, *name_; }; //////////////////////////////////////////////////////////////////////////////////////////////////// class XQILLA_API XQPromoteNumeric : public ASTNodeImpl { public: XQPromoteNumeric(ASTNode* expr, const XMLCh *uri, const XMLCh *name, XPath2MemoryManager* memMgr); XQPromoteNumeric(ASTNode* expr, const XMLCh *uri, const XMLCh *name, AnyAtomicType::AtomicObjectType typeIndex, XPath2MemoryManager* memMgr); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } const XMLCh *getTypeURI() const { return uri_; } const XMLCh *getTypeName() const { return name_; } AnyAtomicType::AtomicObjectType getTypeIndex() const { return typeIndex_; } protected: ASTNode* expr_; const XMLCh *uri_, *name_; AnyAtomicType::AtomicObjectType typeIndex_; }; class PromoteNumericResult : public ResultImpl { public: PromoteNumericResult(const LocationInfo *location, const Result &parent, AnyAtomicType::AtomicObjectType typeIndex) : ResultImpl(location), parent_(parent), typeIndex_(typeIndex) {} Item::Ptr next(DynamicContext *context); std::string asString(DynamicContext *context, int indent) const { return "promotenumericresult"; } private: Result parent_; AnyAtomicType::AtomicObjectType typeIndex_; }; //////////////////////////////////////////////////////////////////////////////////////////////////// class XQILLA_API XQPromoteAnyURI : public ASTNodeImpl { public: XQPromoteAnyURI(ASTNode* expr, const XMLCh *uri, const XMLCh *name, XPath2MemoryManager* memMgr); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } const XMLCh *getTypeURI() const { return uri_; } const XMLCh *getTypeName() const { return name_; } protected: ASTNode* expr_; const XMLCh *uri_, *name_; }; class PromoteAnyURIResult : public ResultImpl { public: PromoteAnyURIResult(const LocationInfo *location, const Result &parent) : ResultImpl(location), parent_(parent) {} Item::Ptr next(DynamicContext *context); std::string asString(DynamicContext *context, int indent) const { return "promoteanyuriresult"; } private: Result parent_; }; #endif XQilla-2.3.0/include/xqilla/ast/OrderByTuple.hpp0000644000151400015140000000434511653565523016441 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef ORDERBYTUPLE_HPP #define ORDERBYTUPLE_HPP #include #include class ASTNode; class Collation; class XQILLA_API OrderByTuple : public TupleNode { public: enum Modifiers { ASCENDING = 0x0, DESCENDING = 0x1, EMPTY_GREATEST = 0x0, EMPTY_LEAST = 0x2, STABLE = 0x0, UNSTABLE = 0x4, DESCENDING_EMPTY_LEAST = DESCENDING | EMPTY_LEAST, DESCENDING_UNSTABLE = DESCENDING | UNSTABLE, EMPTY_LEAST_UNSTABLE = EMPTY_LEAST | UNSTABLE, DESCENDING_EMPTY_LEAST_UNSTABLE = DESCENDING | EMPTY_LEAST | UNSTABLE }; OrderByTuple(TupleNode *parent, ASTNode *expr, int modifiers, Collation *collation, XPath2MemoryManager *mm); ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } Modifiers getModifiers() const { return modifiers_; } Collation *getCollation() const { return collation_; } void setUnstable() { modifiers_ = (Modifiers)(modifiers_ | UNSTABLE); } const StaticAnalysis &getUsedSRC() const { return usedSrc_; } virtual TupleNode *staticResolution(StaticContext *context); virtual TupleNode *staticTypingImpl(StaticContext *context); virtual TupleNode *staticTypingTeardown(StaticContext *context, StaticAnalysis &usedSrc); virtual TupleResult::Ptr createResult(DynamicContext* context) const; private: ASTNode *expr_; Modifiers modifiers_; Collation *collation_; StaticAnalysis usedSrc_; }; #endif XQilla-2.3.0/include/xqilla/ast/XQOrderingChange.hpp0000644000151400015140000000265311653565523017211 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQORDERINGCHANGE_HPP #define XQORDERINGCHANGE_HPP #include #include class XQILLA_API XQOrderingChange : public ASTNodeImpl { public: XQOrderingChange(StaticContext::NodeSetOrdering ordering, ASTNode* astNode, XPath2MemoryManager* expr); virtual Result createResult(DynamicContext *context, int flags=0) const; virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); StaticContext::NodeSetOrdering getOrderingValue() const; ASTNode* getExpr() const; void setExpr(ASTNode *expr); protected: StaticContext::NodeSetOrdering m_nOrdering; ASTNode* m_pExpr; }; #endif XQilla-2.3.0/include/xqilla/ast/XQFunction.hpp0000644000151400015140000000461711653565523016121 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQFUNCTION_HPP #define _XQFUNCTION_HPP #include #include #include #include #include #include // because every implementation will use these to define the function name #include class SequenceType; class FunctionSignature; class XQILLA_API XQFunction : public ASTNodeImpl { public: static const XMLCh XMLChFunctionURI[]; XQFunction(const XMLCh *name, const char *signature, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); const XMLCh* getFunctionURI()const { return uri_; } const XMLCh* getFunctionName()const { return name_; } FunctionSignature *getSignature() const { return signature_; } void setSignature(FunctionSignature *s) { signature_ = s; } const VectorOfASTNodes &getArguments() const { return _args; } size_t getNumArgs() const; virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual Sequence createSequence(DynamicContext* context, int flags=0) const; virtual Result getParamNumber(size_t number, DynamicContext* context, int flags=0) const; void parseSignature(StaticContext *context); protected: void resolveArguments(StaticContext *context, bool numericFunction = false); void calculateSRCForArguments(StaticContext *context, bool checkTimezone = false); const XMLCh *name_, *uri_; const char *sigString_; FunctionSignature *signature_; VectorOfASTNodes _args; }; #endif XQilla-2.3.0/include/xqilla/ast/XQCallTemplate.hpp0000644000151400015140000000506311653565523016677 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQCALLTEMPLATE_HPP #define XQCALLTEMPLATE_HPP #include #include class SequenceType; class XQILLA_API XQTemplateArgument : public LocationInfo { public: XQTemplateArgument(const XMLCh *qname, ASTNode *value, XPath2MemoryManager *memMgr); const XMLCh *qname, *uri, *name; ASTNode *value; SequenceType *seqType; StaticAnalysis varSrc; }; typedef std::vector > TemplateArguments; class XQILLA_API XQCallTemplate : public ASTNodeImpl { public: XQCallTemplate(const XMLCh *qname, TemplateArguments *args, XPath2MemoryManager *mm); XQCallTemplate(ASTNode *qname, TemplateArguments *args, XPath2MemoryManager *mm); XQCallTemplate(const XMLCh *qname, const XMLCh *uri, const XMLCh *name, ASTNode *astName, TemplateArguments *args, const UserFunctions &templates, XPath2MemoryManager *mm); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; const XMLCh *getQName() const { return qname_; } void setQName(const XMLCh *qname) { qname_ = qname; } const XMLCh *getURI() const { return uri_; } void setURI(const XMLCh *uri) { uri_ = uri; } const XMLCh *getName() const { return name_; } void setName(const XMLCh *name) { name_ = name; } ASTNode *getASTName() const { return astName_; } void setASTName(ASTNode *name) { astName_ = name; } TemplateArguments *getArguments() const { return args_; } void setArguments(TemplateArguments *args) { args_ = args; } const UserFunctions &getTemplates() const { return templates_; } private: const XMLCh *qname_, *uri_, *name_; ASTNode *astName_; TemplateArguments *args_; UserFunctions templates_; }; #endif XQilla-2.3.0/include/xqilla/ast/XQMap.hpp0000644000151400015140000000446711653565523015054 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQMAP_HPP #define _XQMAP_HPP #include #include #include class XQILLA_API XQMap : public ASTNodeImpl { public: XQMap(ASTNode *arg1, ASTNode *arg2, XPath2MemoryManager* memMgr); XQMap(ASTNode *arg1, ASTNode *arg2, const XMLCh *uri, const XMLCh *name, XPath2MemoryManager* memMgr); ASTNode *getArg1() const { return arg1_; } void setArg1(ASTNode *a) { arg1_ = a; } ASTNode *getArg2() const { return arg2_; } void setArg2(ASTNode *a) { arg2_ = a; } const XMLCh *getURI() const { return uri_; } const XMLCh *getName() const { return name_; } const StaticAnalysis &getVarSRC() const { return varSrc_; } virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; private: ASTNode *arg1_; ASTNode *arg2_; const XMLCh *uri_; const XMLCh *name_; StaticAnalysis varSrc_; }; class XQILLA_API MapResult : public ResultImpl, public VariableStore { public: MapResult(const Result &parent, const ASTNode *step, const XMLCh *uri, const XMLCh *name); virtual Result getVar(const XMLCh *namespaceURI, const XMLCh *name) const; virtual void getInScopeVariables(std::vector > &variables) const; Item::Ptr next(DynamicContext *context); private: Result parent_; const ASTNode *step_; const XMLCh *uri_; const XMLCh *name_; Result stepResult_; Item::Ptr item_; const VariableStore *scope_; }; #endif XQilla-2.3.0/include/xqilla/ast/TupleNode.hpp0000644000151400015140000000425211653565523015755 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef TUPLENODE_HPP #define TUPLENODE_HPP #include class StaticContext; class StaticAnalysis; class XPath2MemoryManager; class XQILLA_API TupleNode : public LocationInfo { public: enum Type { CONTEXT_TUPLE, FOR, LET, WHERE, ORDER_BY, COUNT, DEBUG_HOOK }; virtual ~TupleNode() {} virtual void release(); virtual Type getType() const { return type_; } virtual XPath2MemoryManager *getMemoryManager() const { return mm_; } unsigned int getMin() const { return min_; } unsigned int getMax() const { return max_; } void setMin(unsigned int v) { min_ = v; } void setMax(unsigned int v) { max_ = v; } TupleNode *getParent() const { return parent_; } void setParent(TupleNode *parent) { parent_ = parent; } void *getUserData() const { return userData_; } void setUserData(void *data) { userData_ = data; } virtual TupleNode *staticResolution(StaticContext *context) = 0; virtual TupleNode *staticTypingImpl(StaticContext *context) = 0; virtual TupleNode *staticTypingTeardown(StaticContext *context, StaticAnalysis &usedSrc) = 0; virtual TupleResult::Ptr createResult(DynamicContext* context) const = 0; protected: TupleNode(Type type, TupleNode *parent, XPath2MemoryManager *mm) : type_(type), parent_(parent), min_(0), max_(0), userData_(0), mm_(mm) {} Type type_; TupleNode *parent_; unsigned int min_, max_; void *userData_; XPath2MemoryManager *mm_; }; #endif XQilla-2.3.0/include/xqilla/ast/XQNamespaceBinding.hpp0000644000151400015140000000361511653565523017520 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQNAMESPACEBINDING_HPP #define XQNAMESPACEBINDING_HPP #include #include class XQILLA_API XQNamespaceBinding : public ASTNodeImpl { public: XQNamespaceBinding(XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver *namespaces, ASTNode *expr, XPath2MemoryManager *mm); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext *context, int flags=0) const; virtual Result iterateResult(const Result &contextItems, DynamicContext *context) const; virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; virtual PendingUpdateList createUpdateList(DynamicContext *context) const; ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver *getNamespaces() const { return namespaces_; } protected: ASTNode *expr_; XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver *namespaces_; }; #endif XQilla-2.3.0/include/xqilla/ast/XQCastableAs.hpp0000644000151400015140000000344111653565523016330 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQCASTABLEAS_HPP #define _XQCASTABLEAS_HPP #include #include class SequenceType; class XQILLA_API XQCastableAs : public ASTNodeImpl { public: XQCastableAs(ASTNode* expr, SequenceType* exprType, XPath2MemoryManager* memMgr); XQCastableAs(ASTNode* expr, SequenceType* exprType, bool isPrimitive, AnyAtomicType::AtomicObjectType typeIndex, XPath2MemoryManager* memMgr); virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual BoolResult boolResult(DynamicContext* context) const; virtual Result createResult(DynamicContext* context, int flags) const; ASTNode *getExpression() const; SequenceType *getSequenceType() const; bool getIsPrimitive() const { return _isPrimitive; } AnyAtomicType::AtomicObjectType getTypeIndex() const { return _typeIndex; } void setExpression(ASTNode *item); protected: ASTNode* _expr; SequenceType* _exprType; bool _isPrimitive; AnyAtomicType::AtomicObjectType _typeIndex; }; #endif XQilla-2.3.0/include/xqilla/ast/XQTreatAs.hpp0000644000151400015140000000411211653565523015665 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQTREATAS_HPP #define _XQTREATAS_HPP #include #include class SequenceType; class XQILLA_API XQTreatAs : public ASTNodeImpl { public: XQTreatAs(ASTNode* expr, SequenceType *exprType, XPath2MemoryManager* memMgr, const XMLCh *errorCode = 0); XQTreatAs(ASTNode* expr, SequenceType *exprType, const XMLCh *errorCode, bool doTypeCheck, bool doCardinalityCheck, const StaticType &treatType, bool isExact, XPath2MemoryManager* memMgr); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); ASTNode *getExpression() const; SequenceType *getSequenceType() const; bool getDoTypeCheck() const { return _doTypeCheck; } bool getDoCardinalityCheck() const { return _doCardinalityCheck; } const XMLCh *getErrorCode() const { return _errorCode; } const StaticType &getTreatType() const { return _treatType; } bool getIsExact() const { return _isExact; } void setExpression(ASTNode *item); static const XMLCh err_XPDY0050[]; static const XMLCh err_XPTY0004[]; protected: ASTNode* _expr; SequenceType *_exprType; const XMLCh *_errorCode; bool _doTypeCheck; bool _doCardinalityCheck; StaticType _treatType; bool _isExact; }; #endif XQilla-2.3.0/include/xqilla/ast/XQGlobalVariable.hpp0000644000151400015140000000441011653565523017171 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQGLOBALVARIABLE_HPP #define XQGLOBALVARIABLE_HPP #include class SequenceType; class XQILLA_API XQGlobalVariable : public LocationInfo { public: XQGlobalVariable(const XMLCh* varQName, SequenceType* seqType, ASTNode* value, XPath2MemoryManager *mm, bool isParam = false); void execute(DynamicContext* context) const; void resolveName(StaticContext *context); void staticResolution(StaticContext *context); void staticTypingOnce(StaticContext *context, StaticTyper *styper); void resetStaticTypingOnce(); void staticTyping(StaticContext *context, StaticTyper *styper); const XMLCh* getVariableName() const; bool isExternal() const; bool isParam() const { return isParam_; } bool isRequired() const { return required_; } void setRequired(bool r) { required_ = r; } const XMLCh *getVariableURI() const; void setVariableURI(const XMLCh *uri) { m_szURI = uri; } const XMLCh *getVariableLocalName() const; void setVariableLocalName(const XMLCh *name) { m_szLocalName = name; } const SequenceType *getSequenceType() const; void setSequenceType(SequenceType *type) { m_Type = type; } const ASTNode *getVariableExpr() const; void setVariableExpr(ASTNode* value); const StaticAnalysis &getStaticAnalysis() const { return _src; } protected: bool isParam_; bool required_; bool xpath1Compat_; const XMLCh* m_szQName; const XMLCh* m_szURI; const XMLCh* m_szLocalName; SequenceType* m_Type; ASTNode* m_Value; StaticAnalysis _src; enum { BEFORE, DURING, AFTER } staticTyped_; }; #endif XQilla-2.3.0/include/xqilla/ast/XQDOMConstructor.hpp0000644000151400015140000001020511653565523017207 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQDOMCONSTRUCTOR_HPP #define XQDOMCONSTRUCTOR_HPP #include #include class EventHandler; class QueryPathNode; class XQILLA_API XQDOMConstructor : public ASTNodeImpl { public: XQDOMConstructor(XPath2MemoryManager* mm); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const = 0; virtual const XMLCh* getNodeType() const = 0; virtual ASTNode *getName() const { return 0; } virtual const VectorOfASTNodes *getAttributes() const { return 0; } virtual const VectorOfASTNodes *getChildren() const { return 0; } virtual ASTNode *getValue() const { return 0; } virtual void setName(ASTNode *name) {} virtual void setValue(ASTNode *value) {} static bool getStringValue(const VectorOfASTNodes* m_children, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &value, DynamicContext *context); static bool getStringValue(const ASTNode *child, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &value, DynamicContext *context); QueryPathNode *getQueryPathTree() const { return queryPathTree_; } void setQueryPathTree(QueryPathNode *q) { queryPathTree_ = q; } private: QueryPathNode *queryPathTree_; }; class XQILLA_API XQContentSequence : public ASTNodeImpl { public: XQContentSequence(ASTNode *expr, XPath2MemoryManager* mm); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } private: ASTNode *expr_; }; class XQILLA_API XQDirectName : public ASTNodeImpl { public: XQDirectName(const XMLCh *qname, bool useDefaultNamespace, XPath2MemoryManager* mm); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; const XMLCh *getQName() const { return qname_; } bool getUseDefaultNamespace() const { return useDefaultNamespace_; } private: const XMLCh *qname_; bool useDefaultNamespace_; }; class XQILLA_API XQNameExpression : public ASTNodeImpl { public: XQNameExpression(ASTNode *expr, XPath2MemoryManager* mm); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } private: ASTNode *expr_; }; class XQILLA_API XQSimpleContent : public ASTNodeImpl { public: XQSimpleContent(VectorOfASTNodes *children, XPath2MemoryManager* mm); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; const VectorOfASTNodes *getChildren() const { return children_; } private: VectorOfASTNodes *children_; }; #endif XQilla-2.3.0/include/xqilla/ast/XQPIConstructor.hpp0000644000151400015140000000311011653565523017075 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQPICONSTRUCTOR_HPP #define XQPICONSTRUCTOR_HPP #include class EventHandler; class XQILLA_API XQPIConstructor : public XQDOMConstructor { public: XQPIConstructor(ASTNode* name, ASTNode* value, XPath2MemoryManager* mm, bool xslt = false); virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual const XMLCh* getNodeType() const; virtual ASTNode *getName() const; virtual ASTNode *getValue() const; bool isXSLT() const { return xslt_; } virtual void setName(ASTNode *name); virtual void setValue(ASTNode *value); private: ASTNode* m_name, *m_value; bool xslt_; }; #endif XQilla-2.3.0/include/xqilla/ast/StaticAnalysis.hpp0000644000151400015140000001117311653565523017011 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _STATICANALYSIS_HPP #define _STATICANALYSIS_HPP #include #include #include #include class XPath2MemoryManager; /** * Records access to various parts of the context during static resolution. */ class XQILLA_API StaticAnalysis { public: static const int HASH_SIZE = 13; class XQILLA_API VarEntry { public: VarEntry() : uri(0), name(0), hash(0), prev(0) {} void set(const XMLCh *u, const XMLCh *n); void set(const XMLCh *u, const XMLCh *n, size_t h); const XMLCh *uri, *name; size_t hash; VarEntry *prev; }; StaticAnalysis(XPath2MemoryManager* memMgr); StaticAnalysis(const StaticAnalysis &o, XPath2MemoryManager* memMgr); void copy(const StaticAnalysis &o); void release(); /// Clears all the information in this StaticAnalysis void clear(); void clearExceptType(); /** Overrides all the other flags, and never allows this sub-expression to be constant folded. */ void forceNoFolding(bool value); bool isNoFoldingForced() const; void contextItemUsed(bool value); void contextPositionUsed(bool value); void contextSizeUsed(bool value); bool isContextItemUsed() const; bool isContextPositionUsed() const; bool isContextSizeUsed() const; /** Returns true if any of the context item flags have been used */ bool areContextFlagsUsed() const; void currentTimeUsed(bool value); void implicitTimezoneUsed(bool value); void availableDocumentsUsed(bool value); void availableCollectionsUsed(bool value); bool areDocsOrCollectionsUsed() const; void variableUsed(const XMLCh *namespaceURI, const XMLCh *name); bool removeVariable(const XMLCh *namespaceURI, const XMLCh *name); bool isVariableUsed(const XMLCh *namespaceURI, const XMLCh *name) const; bool isVariableUsed() const; VarEntry **variablesUsed() const; /** Sets the members of this StaticAnalysis from the given StaticAnalysis */ void add(const StaticAnalysis &o); void addExceptContextFlags(const StaticAnalysis &o); void addExceptVariable(const XMLCh *namespaceURI, const XMLCh *name, const StaticAnalysis &o); /** Returns true if flags are set, or variables have been used */ bool isUsed() const; bool isUsedExceptContextFlags() const; void creative(bool value); bool isCreative() const; void updating(bool value); bool isUpdating() const; void possiblyUpdating(bool value); bool isPossiblyUpdating() const; /** * Properties that allow optimisation regarding sorting or not. * The values are OR'd as flags, so they must be distinct bits */ enum Properties { DOCORDER = 0x001, ///< Results are returned in document order PEER = 0x002, ///< Results do not appear in the descendants of other results SUBTREE = 0x004, ///< Results are members of the set of descendants of the context node GROUPED = 0x008, ///< Results are grouped by the document they come from SAMEDOC = 0x010, ///< Results are from the same document as the context node ONENODE = 0x020, ///< Only ever returns one node SELF = 0x040, ///< Only ever returns the context node UNDEFINEDVAR = 0x080 ///< This is a variable that has been undefined }; unsigned int getProperties() const; void setProperties(unsigned int props); const StaticType &getStaticType() const; StaticType &getStaticType(); std::string toString() const; private: StaticAnalysis(const StaticAnalysis &o); StaticAnalysis &operator=(const StaticAnalysis &o); bool _contextItem; bool _contextPosition; bool _contextSize; bool _currentTime; bool _implicitTimezone; bool _availableDocuments; bool _availableCollections; bool _forceNoFolding; bool _creative; bool _updating; bool _possiblyUpdating; unsigned int _properties; StaticType _staticType; VarEntry *_dynamicVariables[HASH_SIZE]; VarEntry *_recycle; XPath2MemoryManager *_memMgr; }; #endif XQilla-2.3.0/include/xqilla/ast/XQCommentConstructor.hpp0000644000151400015140000000277111653565523020203 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQCOMMENTCONSTRUCTOR_HPP #define XQCOMMENTCONSTRUCTOR_HPP #include class EventHandler; class XQILLA_API XQCommentConstructor : public XQDOMConstructor { public: XQCommentConstructor(ASTNode *value, XPath2MemoryManager* mm, bool xslt = false); virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual const XMLCh* getNodeType() const; virtual ASTNode *getValue() const; bool isXSLT() const { return xslt_; } virtual void setValue(ASTNode *value); private: ASTNode *m_value; bool xslt_; }; #endif XQilla-2.3.0/include/xqilla/ast/NumericFunction.hpp0000644000151400015140000000255311653565523017170 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _NUMERICFUNCTION_HPP #define _NUMERICFUNCTION_HPP #include /** Virtual interface class for functions */ class XQILLA_API NumericFunction : public XQFunction { public: /// constructor, checks for the correct number of arguments. NumericFunction(const XMLCh* name, const char *signature, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); protected: Numeric::Ptr getNumericParam(unsigned int number, DynamicContext *context, int flags=0) const; }; #endif // _NUMERICFUNCTION_HPP XQilla-2.3.0/include/xqilla/ast/XQPartialApply.hpp0000644000151400015140000000257011653565523016732 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQPARTIALAPPLY_HPP #define XQPARTIALAPPLY_HPP #include class XQILLA_API XQPartialApply : public ASTNodeImpl { public: XQPartialApply(ASTNode *expr, VectorOfASTNodes *args, XPath2MemoryManager *mm); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext *context, int flags=0) const; ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } VectorOfASTNodes *getArguments() const { return args_; } private: ASTNode *expr_; VectorOfASTNodes *args_; }; #endif XQilla-2.3.0/include/xqilla/ast/XQFunctionConversion.hpp0000644000151400015140000000254111653565523020161 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQFUNCTIONCONVERSION_HPP #define XQFUNCTIONCONVERSION_HPP #include class XQILLA_API XQFunctionConversion : public ASTNodeImpl { public: XQFunctionConversion(ASTNode* expr, SequenceType *seqType, XPath2MemoryManager* memMgr); virtual Result createResult(DynamicContext *context, int flags=0) const; virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); ASTNode *getExpression() const; SequenceType *getSequenceType() const; void setExpression(ASTNode *item); protected: ASTNode* expr_; SequenceType *seqType_; }; #endif XQilla-2.3.0/include/xqilla/ast/XQValidate.hpp0000644000151400015140000000611011653565523016053 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQVALIDATE_HPP #define XQVALIDATE_HPP #include #include #include class XQILLA_API XQValidate : public ASTNodeImpl { public: XQValidate(ASTNode *expr, DocumentCache::ValidationMode mode, XPath2MemoryManager *mm); virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; ASTNode *getExpression() const { return expr_; } DocumentCache::ValidationMode getMode() const { return mode_; } void setExpression(ASTNode *expr) { expr_ = expr; } private: ASTNode *expr_; DocumentCache::ValidationMode mode_; }; class XQILLA_API ValidateArgumentCheckFilter : public EventFilter { public: ValidateArgumentCheckFilter(EventHandler *next, DocumentCache::ValidationMode mode, DynamicContext *context, const LocationInfo *loc); virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding); virtual void endDocumentEvent(); virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname); virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName); virtual void textEvent(const XMLCh *value); virtual void textEvent(const XMLCh *chars, unsigned int length); virtual void piEvent(const XMLCh *target, const XMLCh *value); virtual void commentEvent(const XMLCh *value); virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName); virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri); virtual void atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName); private: DocumentCache::ValidationMode mode_; const LocationInfo *info_; DynamicContext *context_; bool inDocumentNode_; bool seenDocElem_; unsigned int level_; bool seenOne_; }; #endif XQilla-2.3.0/include/xqilla/ast/XQNamespaceConstructor.hpp0000644000151400015140000000311711653565523020470 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQNAMESPACECONSTRUCTOR_HPP #define XQNAMESPACECONSTRUCTOR_HPP #include class XQILLA_API XQNamespaceConstructor : public XQDOMConstructor { public: XQNamespaceConstructor(ASTNode* name, VectorOfASTNodes* children, XPath2MemoryManager* mm); virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual const XMLCh* getNodeType() const; virtual ASTNode *getName() const; virtual const VectorOfASTNodes *getChildren() const; void setChildren(VectorOfASTNodes *c) { m_children = c; } virtual void setName(ASTNode *name); protected: ASTNode* m_name; VectorOfASTNodes* m_children; }; #endif XQilla-2.3.0/include/xqilla/ast/XQAttributeConstructor.hpp0000644000151400015140000000320511653565523020535 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQATTRIBUTECONSTRUCTOR_HPP #define XQATTRIBUTECONSTRUCTOR_HPP #include class XQILLA_API XQAttributeConstructor : public XQDOMConstructor { public: XQAttributeConstructor(ASTNode* name, VectorOfASTNodes* children, XPath2MemoryManager* mm); virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual const XMLCh* getNodeType() const; virtual ASTNode *getName() const; virtual const VectorOfASTNodes *getChildren() const; void setChildren(VectorOfASTNodes *c) { m_children = c; } virtual void setName(ASTNode *name); // Used for parsing only ASTNode *namespaceExpr; protected: ASTNode* m_name; VectorOfASTNodes* m_children; }; #endif XQilla-2.3.0/include/xqilla/ast/ASTNode.hpp0000644000151400015140000001206011653565523015307 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ASTNODE_HPP #define _ASTNODE_HPP #include #include #include #include #include class DynamicContext; class StaticContext; class Result; class StaticAnalysis; class PendingUpdateList; class EventHandler; class StaticTyper; struct BoolResult; class XQILLA_API ASTNode : public LocationInfo { public: ///enum for data types typedef enum { LITERAL, NUMERIC_LITERAL, QNAME_LITERAL, SEQUENCE, FUNCTION, NAVIGATION, VARIABLE, STEP, IF, CASTABLE_AS, CAST_AS, TREAT_AS, OPERATOR, CONTEXT_ITEM, DOM_CONSTRUCTOR, QUANTIFIED, TYPESWITCH, VALIDATE, FUNCTION_CALL, USER_FUNCTION, ORDERING_CHANGE, FUNCTION_COERCION, PROMOTE_UNTYPED, PROMOTE_NUMERIC, PROMOTE_ANY_URI, DOCUMENT_ORDER, PREDICATE, ATOMIZE, EBV, FTCONTAINS, UDELETE, URENAME, UREPLACE, UREPLACE_VALUE_OF, UTRANSFORM, UINSERT_AS_FIRST, UINSERT_AS_LAST, UINSERT_INTO, UINSERT_AFTER, UINSERT_BEFORE, UAPPLY_UPDATES, NAME_EXPRESSION, CONTENT_SEQUENCE, DIRECT_NAME, RETURN, NAMESPACE_BINDING, FUNCTION_CONVERSION, SIMPLE_CONTENT, ANALYZE_STRING, CALL_TEMPLATE, APPLY_TEMPLATES, INLINE_FUNCTION, FUNCTION_REF, FUNCTION_DEREF, PARTIAL_APPLY, COPY_OF, COPY, MAP, DEBUG_HOOK } whichType; ASTNode() : userData_(0) {} virtual ~ASTNode() {} virtual void release() = 0; virtual ASTNode *copy(DynamicContext *context) const = 0; virtual bool isSubsetOf(const ASTNode *other) const = 0; virtual bool isEqualTo(const ASTNode *other) const = 0; virtual whichType getType() const = 0; virtual XPath2MemoryManager *getMemoryManager() const = 0; virtual ASTNode *staticResolution(StaticContext *context) = 0; virtual ASTNode *staticTyping(StaticContext *context, StaticTyper *styper) = 0; virtual ASTNode *staticTypingImpl(StaticContext *context) = 0; /// Returns the StaticAnalysis for this ASTNode virtual const StaticAnalysis &getStaticAnalysis() const = 0; /** Returns true if this ASTNode has no predicates, and is an instance of XQSequence or XQLiteral */ virtual bool isConstant() const = 0; /** Returns true if this ASTNode has no predicates, and is an instance of XQSequence or XQLiteral. If the literal value of this ASTNode is a single DateOrTimeType, then !hasTimezone() on it must return true, otherwise this method will return false. */ virtual bool isDateOrTimeAndHasNoTimezone(StaticContext* context) const = 0; /** Returns a Result iterator for the results of this expression. The flags parameter is currently unused */ virtual Result createResult(DynamicContext* context, int flags=0) const = 0; /** Returns a result iterator with the result of applying this expression to each of the given context items in turn. */ virtual Result iterateResult(const Result &contextItems, DynamicContext* context) const = 0; /** Returns the result of this expression as a boolean */ virtual BoolResult boolResult(DynamicContext* context) const = 0; /** Returns the result of this expression via the EventHandler provided. An EventGenerator may be returned to be called as a tail call optimization */ virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const = 0; void generateAndTailCall(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; /// Executes an update expression virtual PendingUpdateList createUpdateList(DynamicContext *context) const = 0; void *getUserData() const { return userData_; } void setUserData(void *data) { userData_ = data; } private: void *userData_; }; inline void ASTNode::generateAndTailCall(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { EventGenerator::generateAndTailCall(generateEvents(events, context, preserveNS, preserveType), events, context); } typedef std::vector > VectorOfASTNodes; #endif XQilla-2.3.0/include/xqilla/ast/XQTypeswitch.hpp0000644000151400015140000000625111653565523016473 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQTYPESWITCH_HPP #define XQTYPESWITCH_HPP #include #include class SequenceType; class ResultBuffer; template class Scope; class XQILLA_API XQTypeswitch : public ASTNodeImpl { public: class Case : public LocationInfo { public: Case(const XMLCh *qname, SequenceType *seqType, ASTNode *expr); Case(const XMLCh *qname, const XMLCh *uri, const XMLCh *name, SequenceType *seqType, const StaticType &treatType, bool isExact, ASTNode *expr); void staticResolution(StaticContext* context); void staticTyping(const StaticAnalysis &var_src, StaticContext* context, StaticAnalysis &src, bool &possiblyUpdating, bool first); const XMLCh *getQName() const { return qname_; } const XMLCh *getURI() const { return uri_; } const XMLCh *getName() const { return name_; } bool isVariableUsed() const { return qname_ != 0; } void setVariableNotUsed() { qname_ = 0; } SequenceType *getSequenceType() const { return seqType_; } void setSequenceType(SequenceType *s) { seqType_ = s; } const StaticType &getTreatType() const { return treatType_; } bool getIsExact() const { return isExact_; } ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } private: const XMLCh *qname_; const XMLCh *uri_; const XMLCh *name_; SequenceType *seqType_; StaticType treatType_; bool isExact_; ASTNode *expr_; }; typedef std::vector > Cases; XQTypeswitch(ASTNode *expr, Cases *cases, Case *defaultCase, XPath2MemoryManager *mm); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; virtual PendingUpdateList createUpdateList(DynamicContext *context) const; const Case *chooseCase(DynamicContext *context, Sequence &resultSeq) const; ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } const Case *getDefaultCase() const { return default_; } const Cases *getCases() const { return cases_; } private: ASTNode *expr_; Cases *cases_; Case *default_; }; #endif XQilla-2.3.0/include/xqilla/ast/XQElementConstructor.hpp0000644000151400015140000000675711653565523020202 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQELEMENTCONSTRUCTOR_HPP #define XQELEMENTCONSTRUCTOR_HPP #include #include #include #include class XQILLA_API XQElementConstructor : public XQDOMConstructor { public: XQElementConstructor(ASTNode* name, VectorOfASTNodes* attrList, VectorOfASTNodes* children, XPath2MemoryManager *mm); XQElementConstructor(ASTNode* name, VectorOfASTNodes* attrList, VectorOfASTNodes* children, XERCES_CPP_NAMESPACE_QUALIFIER RefHashTableOf< XMLCh > *namespaces, XPath2MemoryManager *mm); virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual const XMLCh* getNodeType() const; virtual ASTNode *getName() const; virtual const VectorOfASTNodes *getAttributes() const; void setAttributes(VectorOfASTNodes *a) { m_attrList = a; } virtual const VectorOfASTNodes *getChildren() const; void setChildren(VectorOfASTNodes *c) { m_children = c; } XERCES_CPP_NAMESPACE_QUALIFIER RefHashTableOf< XMLCh > *getNamespaces() const { return m_namespaces; } virtual void setName(ASTNode *name); // Used for parsing only ASTNode *namespaceExpr; protected: ASTNode* m_name; VectorOfASTNodes* m_attrList, *m_children; XERCES_CPP_NAMESPACE_QUALIFIER RefHashTableOf< XMLCh >* m_namespaces; }; class ElemConstructFilter : public EventFilter { public: ElemConstructFilter(EventHandler *next, const LocationInfo *location, XPath2MemoryManager *mm); virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname); virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName); virtual void piEvent(const XMLCh *target, const XMLCh *value); virtual void textEvent(const XMLCh *value); virtual void textEvent(const XMLCh *chars, unsigned int length); virtual void commentEvent(const XMLCh *value); virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName); virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri); private: struct AttrRecord { AttrRecord(const XMLCh *u, const XMLCh *n, XPath2MemoryManager *mm); bool operator<(const AttrRecord &o) const; const XMLCh *uri; const XMLCh *name; }; XPath2MemoryManager *mm_; const LocationInfo *location_; unsigned int level_; bool seenContent_; std::set attrs_; }; #endif XQilla-2.3.0/include/xqilla/ast/XQOperator.hpp0000644000151400015140000000342511653565523016123 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQOPERATOR_HPP #define _XQOPERATOR_HPP #include #include #include #include // because every implementation will use these to define the function name class Node; /** Virtual interface class for operator */ class XQILLA_API XQOperator : public ASTNodeImpl { public: /// constructor, checks for the correct number of arguments. XQOperator(const XMLCh* opName, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); /** used to manipulate arguments */ void addArgument(ASTNode* arg); void removeArgument(unsigned int index); ASTNode* getArgument(unsigned int index) const; void setArgument(unsigned int index, ASTNode *arg); /** returns the number of parameters passed into the operator */ unsigned int getNumArgs() const; virtual const XMLCh* getOperatorName() const; const VectorOfASTNodes &getArguments() const; protected: VectorOfASTNodes _args; // The real store for arguments const XMLCh* _opName; }; #endif XQilla-2.3.0/include/xqilla/ast/ForTuple.hpp0000644000151400015140000000427311653565523015621 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef FORTUPLE_HPP #define FORTUPLE_HPP #include #include class ASTNode; class XQILLA_API ForTuple : public TupleNode { public: ForTuple(TupleNode *parent, const XMLCh *varQName, const XMLCh *posQName, ASTNode *expr, XPath2MemoryManager *mm); ForTuple(TupleNode *parent, const XMLCh *varURI, const XMLCh *varName, const XMLCh *posURI, const XMLCh *posName, ASTNode *expr, XPath2MemoryManager *mm); const XMLCh *getVarQName() const { return varQName_; } const XMLCh *getVarURI() const { return varURI_; } const XMLCh *getVarName() const { return varName_; } const XMLCh *getPosQName() const { return posQName_; } const XMLCh *getPosURI() const { return posURI_; } const XMLCh *getPosName() const { return posName_; } ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } const StaticAnalysis &getVarSRC() const { return varSrc_; } const StaticAnalysis &getPosSRC() const { return posSrc_; } virtual TupleNode *staticResolution(StaticContext *context); virtual TupleNode *staticTypingImpl(StaticContext *context); virtual TupleNode *staticTypingTeardown(StaticContext *context, StaticAnalysis &usedSrc); virtual TupleResult::Ptr createResult(DynamicContext* context) const; private: const XMLCh *varQName_, *varURI_, *varName_; const XMLCh *posQName_, *posURI_, *posName_; StaticAnalysis varSrc_, posSrc_; ASTNode *expr_; }; #endif XQilla-2.3.0/include/xqilla/ast/XQFunctionRef.hpp0000644000151400015140000000250011653565523016543 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQFUNCTIONREF_HPP #define XQFUNCTIONREF_HPP #include class XQILLA_API XQFunctionRef : public ASTNodeImpl { public: XQFunctionRef(const XMLCh *qname, unsigned int numArgs, XPath2MemoryManager *mm); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; const XMLCh *getQName() const { return qname_; } unsigned int getNumArgs() const { return numArgs_; } private: const XMLCh *qname_; unsigned int numArgs_; }; #endif XQilla-2.3.0/include/xqilla/ast/ASTNodeImpl.hpp0000644000151400015140000000603711653565523016140 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ASTNODEIMPL_HPP #define _ASTNODEIMPL_HPP class DynamicContext; class Numeric; #include #include #include /** class which is used as base for all the different data types */ class XQILLA_API ASTNodeImpl : public ASTNode { public: ASTNodeImpl(whichType type, XPath2MemoryManager* memMgr); virtual ~ASTNodeImpl(); virtual whichType getType() const; virtual void release(); virtual ASTNode *copy(DynamicContext *context) const; virtual bool isSubsetOf(const ASTNode *other) const; virtual bool isEqualTo(const ASTNode *other) const; virtual ASTNode *staticTyping(StaticContext *context, StaticTyper *styper); /** Returns true if this ASTNode is an instance of XQSequence or XQLiteral */ virtual bool isConstant() const; /** Returns true if this ASTNode has no predicates, and is an instance of XQSequence or XQLiteral. If the literal value of this ASTNode is a single DateOrTimeType, then !hasTimezone() on it must return true, otherwise this method will return false. */ virtual bool isDateOrTimeAndHasNoTimezone(StaticContext* context) const; /// Default - returns an empty update list virtual PendingUpdateList createUpdateList(DynamicContext *context) const; /// Default implementation calls ATBooleanOrDerived::isTrue() virtual BoolResult boolResult(DynamicContext* context) const; /** * Can be overridden by derived classes. Default implementation returns a * NavStepResult constructed using contextItems and this expression. */ virtual Result iterateResult(const Result &contextItems, DynamicContext* context) const; /** Returns the result of this expression via the EventHandler provided. Default implementation uses result returned from createResult(). */ virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; /** Returns the given ASTNode* after setting the referenced var to 0 and releasing this */ ASTNode *substitute(ASTNode *&result); virtual XPath2MemoryManager *getMemoryManager() const; virtual const StaticAnalysis &getStaticAnalysis() const; protected: StaticAnalysis _src; whichType _type; XPath2MemoryManager* _memMgr; }; #endif XQilla-2.3.0/include/xqilla/ast/XQLiteral.hpp0000644000151400015140000001052211653565523015720 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQLITERAL_HPP #define _XQLITERAL_HPP #include #include class XQILLA_API XQLiteral : public ASTNodeImpl { public: XQLiteral(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, AnyAtomicType::AtomicObjectType primitiveType, XPath2MemoryManager* memMgr); virtual bool isDateOrTimeAndHasNoTimezone(StaticContext* context) const; virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual BoolResult boolResult(DynamicContext* context) const; virtual Result createResult(DynamicContext* context, int flags=0) const; virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; AnyAtomicType::AtomicObjectType getPrimitiveType() const { return primitiveType_; } const XMLCh *getTypeURI() const { return typeURI_; } const XMLCh *getTypeName() const { return typeName_; } const XMLCh *getValue() const { return value_; } static ASTNode *create(const Item::Ptr &item, DynamicContext *context, XPath2MemoryManager* memMgr, const LocationInfo *location); static ASTNode *create(bool value, XPath2MemoryManager* memMgr, const LocationInfo *location); private: const XMLCh *typeURI_; const XMLCh *typeName_; AnyAtomicType::AtomicObjectType primitiveType_; const XMLCh *value_; }; class XQILLA_API XQQNameLiteral : public ASTNodeImpl { public: XQQNameLiteral(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* uri, const XMLCh* prefix, const XMLCh* localname, XPath2MemoryManager* memMgr); virtual bool isDateOrTimeAndHasNoTimezone(StaticContext* context) const; virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; const XMLCh *getTypeURI() const { return typeURI_; } const XMLCh *getTypeName() const { return typeName_; } const XMLCh *getURI() const { return uri_; } const XMLCh *getLocalname() const { return localname_; } const XMLCh *getPrefix() const { return prefix_; } private: const XMLCh *typeURI_; const XMLCh *typeName_; const XMLCh *uri_, *prefix_, *localname_; }; class XQILLA_API XQNumericLiteral : public ASTNodeImpl { public: XQNumericLiteral(const XMLCh* typeURI, const XMLCh* typeName, const MAPM& value, AnyAtomicType::AtomicObjectType primitiveType, XPath2MemoryManager* memMgr); virtual bool isDateOrTimeAndHasNoTimezone(StaticContext* context) const; virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; AnyAtomicType::AtomicObjectType getPrimitiveType() const { return primitiveType_; } const XMLCh *getTypeURI() const { return typeURI_; } const XMLCh *getTypeName() const { return typeName_; } MAPM getValue() const; const M_APM_struct &getRawValue() const { return value_; } private: const XMLCh *typeURI_; const XMLCh *typeName_; AnyAtomicType::AtomicObjectType primitiveType_; M_APM_struct value_; }; #endif XQilla-2.3.0/include/xqilla/ast/XQIf.hpp0000644000151400015140000000331611653565523014665 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQIF_HPP #define _XQIF_HPP #include #include /** If function. */ class XQILLA_API XQIf : public ASTNodeImpl { public: XQIf(ASTNode* test, ASTNode* whenTrue, ASTNode* whenFalse, XPath2MemoryManager* memMgr); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual PendingUpdateList createUpdateList(DynamicContext *context) const; ASTNode *getTest() const; ASTNode *getWhenTrue() const; ASTNode *getWhenFalse() const; void setTest(ASTNode *item); void setWhenTrue(ASTNode *item); void setWhenFalse(ASTNode *item); protected: ASTNode* _test,* _whenTrue,* _whenFalse; }; #endif XQilla-2.3.0/include/xqilla/ast/StaticType.hpp0000644000151400015140000001426511653565523016154 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _STATICTYPE_HPP #define _STATICTYPE_HPP #include #include #include #include #include /** * Class that represents the static type of an expression */ class XQILLA_API StaticType : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory { public: /** * Flags that determine what item types are returned from an expression */ enum StaticTypeFlags { DOCUMENT_TYPE = 0x00000001, ELEMENT_TYPE = 0x00000002, ATTRIBUTE_TYPE = 0x00000004, TEXT_TYPE = 0x00000008, PI_TYPE = 0x00000010, COMMENT_TYPE = 0x00000020, NAMESPACE_TYPE = 0x00000040, ANY_SIMPLE_TYPE = 0x00000080, ANY_URI_TYPE = 0x00000100, BASE_64_BINARY_TYPE = 0x00000200, BOOLEAN_TYPE = 0x00000400, DATE_TYPE = 0x00000800, DATE_TIME_TYPE = 0x00001000, DAY_TIME_DURATION_TYPE = 0x00002000, DECIMAL_TYPE = 0x00004000, DOUBLE_TYPE = 0x00008000, DURATION_TYPE = 0x00010000, FLOAT_TYPE = 0x00020000, G_DAY_TYPE = 0x00040000, G_MONTH_TYPE = 0x00080000, G_MONTH_DAY_TYPE = 0x00100000, G_YEAR_TYPE = 0x00200000, G_YEAR_MONTH_TYPE = 0x00400000, HEX_BINARY_TYPE = 0x00800000, NOTATION_TYPE = 0x01000000, QNAME_TYPE = 0x02000000, STRING_TYPE = 0x04000000, TIME_TYPE = 0x08000000, UNTYPED_ATOMIC_TYPE = 0x10000000, YEAR_MONTH_DURATION_TYPE = 0x20000000, FUNCTION_TYPE = 0x40000000, NODE_TYPE = (DOCUMENT_TYPE | ELEMENT_TYPE | ATTRIBUTE_TYPE | TEXT_TYPE | PI_TYPE | COMMENT_TYPE | NAMESPACE_TYPE), NUMERIC_TYPE = (DECIMAL_TYPE | FLOAT_TYPE | DOUBLE_TYPE), TIMEZONE_TYPE = (DATE_TYPE | DATE_TIME_TYPE | G_DAY_TYPE | G_MONTH_TYPE | G_MONTH_DAY_TYPE | G_YEAR_TYPE | G_YEAR_MONTH_TYPE | TIME_TYPE), TYPED_ATOMIC_TYPE = (NUMERIC_TYPE | TIMEZONE_TYPE | ANY_SIMPLE_TYPE | ANY_URI_TYPE | BASE_64_BINARY_TYPE | BOOLEAN_TYPE | DAY_TIME_DURATION_TYPE | DURATION_TYPE | HEX_BINARY_TYPE | NOTATION_TYPE | QNAME_TYPE | STRING_TYPE | YEAR_MONTH_DURATION_TYPE), ANY_ATOMIC_TYPE = (TYPED_ATOMIC_TYPE | UNTYPED_ATOMIC_TYPE), ITEM_TYPE = (NODE_TYPE | ANY_ATOMIC_TYPE | FUNCTION_TYPE), EMPTY_TYPE = 0 }; static const unsigned int UNLIMITED; /// Constructor for an empty type StaticType(); // Constructor for normal types StaticType(StaticTypeFlags f, unsigned int min = 1, unsigned int max = 1); /// Constructor for a function type StaticType(XPath2MemoryManager *mm, unsigned int numArgs, const StaticType &returnType, unsigned int min = 1, unsigned int max = 1); /// Constructor for a function type StaticType(XPath2MemoryManager *mm, unsigned int minArgs, unsigned int maxArgs, const StaticType &returnType, unsigned int min = 1, unsigned int max = 1); StaticType(const StaticType &o); StaticType &operator=(const StaticType &o); ~StaticType(); static StaticType create(const XMLCh *uri, const XMLCh *name, const StaticContext *context, bool &isExact); static StaticType create(AnyAtomicType::AtomicObjectType primitiveType); void typeUnion(const StaticType &st); void typeIntersect(const StaticType &st); void typeExcept(const StaticType &st); void typeConcat(const StaticType &st); void typeNodeIntersect(const StaticType &st); StaticType operator|(const StaticType &st) const; StaticType &operator|=(const StaticType &st); StaticType operator&(const StaticType &st) const; StaticType &operator&=(const StaticType &st); StaticType &substitute(const StaticType &from, const StaticType &to); StaticType &multiply(unsigned int min, unsigned int max); void setCardinality(unsigned int min, unsigned int max); bool containsType(const StaticType &type) const; bool containsType(StaticType::StaticTypeFlags flags) const; bool isType(const StaticType &type) const; enum TypeMatchEnum { NEVER = 0, PROBABLY_NOT = 1, MAYBE = 2, ALWAYS = 3 }; struct TypeMatch { TypeMatchEnum type, cardinality; }; TypeMatch matches(const StaticType &actual) const; unsigned int getMin() const { return min_; } unsigned int getMax() const { return max_; } unsigned int getMinArgs() const { return minArgs_; } unsigned int getMaxArgs() const { return maxArgs_; } const StaticType *getReturnType() const { return returnType_; } void typeToBuf(XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &buf) const; private: TypeMatchEnum matchesFunctionType(const StaticType &type) const; TypeMatchEnum matchesType(const StaticType &type) const; unsigned int flags_; unsigned int min_; unsigned int max_; XPath2MemoryManager *mm_; unsigned int minArgs_; unsigned int maxArgs_; StaticType *returnType_; }; XQILLA_API StaticType::StaticTypeFlags operator|(StaticType::StaticTypeFlags a, StaticType::StaticTypeFlags b); XQILLA_API StaticType::StaticTypeFlags operator&(StaticType::StaticTypeFlags a, StaticType::StaticTypeFlags b); #endif XQilla-2.3.0/include/xqilla/ast/CountTuple.hpp0000644000151400015140000000343711653565523016164 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef COUNTTUPLE_HPP #define COUNTTUPLE_HPP #include #include class XQILLA_API CountTuple : public TupleNode { public: CountTuple(TupleNode *parent, const XMLCh *varQName, XPath2MemoryManager *mm); CountTuple(TupleNode *parent, const XMLCh *varURI, const XMLCh *varName, XPath2MemoryManager *mm); const XMLCh *getVarQName() const { return varQName_; } const XMLCh *getVarURI() const { return varURI_; } void setVarURI(const XMLCh *uri) { varURI_ = uri; } const XMLCh *getVarName() const { return varName_; } void setVarName(const XMLCh *name) { varName_ = name; } const StaticAnalysis &getVarSRC() const { return varSrc_; } virtual TupleNode *staticResolution(StaticContext *context); virtual TupleNode *staticTypingImpl(StaticContext *context); virtual TupleNode *staticTypingTeardown(StaticContext *context, StaticAnalysis &usedSrc); virtual TupleResult::Ptr createResult(DynamicContext* context) const; private: const XMLCh *varQName_, *varURI_, *varName_; StaticAnalysis varSrc_; }; #endif XQilla-2.3.0/include/xqilla/ast/XQDocumentOrder.hpp0000644000151400015140000000512511653565523017101 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQDOCUMENTORDER_HPP #define _XQDOCUMENTORDER_HPP #include #include #include #include class XQILLA_API XQDocumentOrder : public ASTNodeImpl { public: XQDocumentOrder(ASTNode* expr, XPath2MemoryManager* memMgr); XQDocumentOrder(ASTNode* expr, bool unordered, XPath2MemoryManager* memMgr); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } bool getUnordered() const { return unordered_; } protected: ASTNode* expr_; bool unordered_; }; class XQILLA_API DocumentOrderResult : public ResultImpl { public: DocumentOrderResult(const LocationInfo *location, const Result &parent) : ResultImpl(location), parent_(parent) {} virtual Item::Ptr nextOrTail(Result &tail, DynamicContext *context); private: Result parent_; }; class XQILLA_API UniqueNodesResult : public ResultImpl { public: UniqueNodesResult(const XQDocumentOrder *doc, const Result &parent, const DynamicContext *context) : ResultImpl(doc), parent_(parent), nTypeOfItemsInLastStep_(0), noDups_(uniqueLessThanCompareFn(context)) {} Item::Ptr next(DynamicContext *context); private: class uniqueLessThanCompareFn { public: uniqueLessThanCompareFn(const DynamicContext *context) : context_(context) {} bool operator()(const Node::Ptr &first, const Node::Ptr &second) { return first->uniqueLessThan(second, context_); } private: const DynamicContext *context_; }; typedef std::set NoDuplicatesSet; Result parent_; int nTypeOfItemsInLastStep_; NoDuplicatesSet noDups_; }; #endif XQilla-2.3.0/include/xqilla/ast/XQAnalyzeString.hpp0000644000151400015140000000563211653565523017124 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQANALYZESTRING_HPP #define XQANALYZESTRING_HPP #include #include #include #include class XQILLA_API XQAnalyzeString : public ASTNodeImpl { public: XQAnalyzeString(XPath2MemoryManager* memMgr); XQAnalyzeString(ASTNode *expr, ASTNode *regex, ASTNode *flags, ASTNode *match, ASTNode *nonMatch, XPath2MemoryManager* memMgr); virtual Result createResult(DynamicContext *context, int flags=0) const; virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *item) { expr_ = item; } ASTNode *getRegex() const { return regex_; } void setRegex(ASTNode *item) { regex_ = item; } ASTNode *getFlags() const { return flags_; } void setFlags(ASTNode *item) { flags_ = item; } ASTNode *getMatch() const { return match_; } void setMatch(ASTNode *item) { match_ = item; } ASTNode *getNonMatch() const { return nonMatch_; } void setNonMatch(ASTNode *item) { nonMatch_ = item; } protected: ASTNode *expr_; ASTNode *regex_; ASTNode *flags_; ASTNode *match_; ASTNode *nonMatch_; }; class XQILLA_API AnalyzeStringResult : public ResultImpl, private RegexGroupStore { public: AnalyzeStringResult(const LocationInfo *info); virtual const XMLCh *getInput(DynamicContext *context) = 0; virtual const XMLCh *getPattern(DynamicContext *context) = 0; virtual const XMLCh *getFlags(DynamicContext *context) = 0; virtual Result getMatchResult(const XMLCh *matchString, size_t matchPos, size_t numberOfMatches, bool match, DynamicContext *context) = 0; virtual Item::Ptr next(DynamicContext *context); private: virtual const XMLCh *getGroup(int index) const; const XMLCh *input_; XERCES_CPP_NAMESPACE_QUALIFIER RefVectorOf matches_; std::vector > strings_; size_t contextPos_; XERCES_CPP_NAMESPACE_QUALIFIER Match *currentMatch_; XPath2MemoryManager *mm_; Result result_; }; #endif XQilla-2.3.0/include/xqilla/ast/WhereTuple.hpp0000644000151400015140000000256711653565523016151 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef WHERETUPLE_HPP #define WHERETUPLE_HPP #include class ASTNode; class XQILLA_API WhereTuple : public TupleNode { public: WhereTuple(TupleNode *parent, ASTNode *expr, XPath2MemoryManager *mm); ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } virtual TupleNode *staticResolution(StaticContext *context); virtual TupleNode *staticTypingImpl(StaticContext *context); virtual TupleNode *staticTypingTeardown(StaticContext *context, StaticAnalysis &usedSrc); virtual TupleResult::Ptr createResult(DynamicContext* context) const; private: ASTNode *expr_; }; #endif XQilla-2.3.0/include/xqilla/ast/XQCopyOf.hpp0000644000151400015140000000317611653565523015532 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQCOPYOF_HPP #define XQCOPYOF_HPP #include class XQILLA_API XQCopyOf : public ASTNodeImpl { public: XQCopyOf(XPath2MemoryManager* memMgr); XQCopyOf(ASTNode *expr, bool copyNamespaces, XPath2MemoryManager* memMgr); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *item) { expr_ = item; } bool getCopyNamespaces() const { return copyNamespaces_; } void setCopyNamespaces(bool value) { copyNamespaces_ = value; } protected: ASTNode *expr_; bool copyNamespaces_; }; #endif XQilla-2.3.0/include/xqilla/ast/XQSequence.hpp0000644000151400015140000000351111653565523016074 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQSEQUENCE_HPP #define _XQSEQUENCE_HPP #include class XQILLA_API XQSequence : public ASTNodeImpl { public: XQSequence(XPath2MemoryManager* memMgr); XQSequence(const VectorOfASTNodes &children, XPath2MemoryManager* memMgr); ///adds a ASTNode to this XQSequence void addItem(ASTNode* di); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual BoolResult boolResult(DynamicContext* context) const; virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; virtual PendingUpdateList createUpdateList(DynamicContext *context) const; const VectorOfASTNodes &getChildren() const { return _astNodes; } static XQSequence *constantFold(Result &result, DynamicContext *context, XPath2MemoryManager* memMgr, const LocationInfo *location); private: VectorOfASTNodes _astNodes; }; #endif XQilla-2.3.0/include/xqilla/framework/0000755000151400015140000000000011653572444014630 500000000000000XQilla-2.3.0/include/xqilla/framework/XQillaExport.hpp0000644000151400015140000000406711653565523017664 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __XQILLAEXPORT_HPP #define __XQILLAEXPORT_HPP /* * This define tells VS8 not to give a warning when we use strcpy() * instead of the MS secure function strcpy_s(). */ #ifdef _MSC_VER #define WIN32 1 #ifndef _CRT_SECURE_NO_DEPRECATE #define _CRT_SECURE_NO_DEPRECATE 1 #endif #endif /* * Building statically on Windows: * * 1) Compile Xerces-C with XERCES_STATIC_LIBRARY defined to get a static library * 2) Compile XQilla with XQILLA_API defined to nothing, to compile without * the DLL import/exports */ /* * The following ifdef block is the standard way of creating macros which * make exporting from a DLL simpler. All files within this DLL are * compiled with the XQILLA_APIS symbol defined on the command line. * this symbol should not be defined on any project that uses this DLL. * This way any other project whose source files include this file see * XQILLA_API functions as being imported from a DLL, wheras this DLL * sees symbols defined with this macro as being exported. */ #if defined(WIN32) && !defined(__CYGWIN__) # if !defined(XQILLA_API) # if defined(XQILLA_APIS) # define XQILLA_API __declspec(dllexport) # else # define XQILLA_API __declspec(dllimport) # endif # endif # if !defined(__MINGW32__) # pragma warning(disable: 4251 4786 4101 4290) # endif #else # define XQILLA_API #endif #endif XQilla-2.3.0/include/xqilla/framework/XPath2MemoryManager.hpp0000644000151400015140000002031611653565523021055 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __XPATH2MEMORYMANAGER_HPP #define __XPATH2MEMORYMANAGER_HPP #include #include #include #include #include XERCES_CPP_NAMESPACE_BEGIN class DOMNode; class XMLGrammarPool; XERCES_CPP_NAMESPACE_END class VariableStore; class VariableTypeStore; class DynamicContext; class Collation; class CollationHelper; class XQillaNSResolver; class ATDecimalOrDerived; class StringPool; class XQILLA_API XPath2MemoryManager : public XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager { public: virtual ~XPath2MemoryManager() {} /** Use with extreme caution! */ virtual void reset() = 0; /** Returns a copy of the given string */ virtual const XMLCh* getPooledString(const XMLCh *src) = 0; virtual const XMLCh* getPooledString(const XMLCh *src, unsigned int length) = 0; virtual const XMLCh* getPooledString(const char *src) = 0; // from MemoryManager #if _XERCES_VERSION >= 30000 virtual void* allocate(XMLSize_t numElements) = 0; #else virtual void* allocate(size_t numElements) = 0; #endif virtual void deallocate(void* p) = 0; /** create a collation */ virtual Collation* createCollation(CollationHelper* helper) = 0; /** create a resolver */ virtual XQillaNSResolver* createNSResolver(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *resolverNode) = 0; /** create a store for variables */ virtual VariableTypeStore* createVariableTypeStore() = 0; /** create a ATDecimalOrDerived for the given integer */ virtual ATDecimalOrDerived* createInteger(int value) = 0; virtual void dumpStatistics() const = 0; virtual size_t getAllocatedObjectCount() const = 0; virtual size_t getTotalAllocatedMemory() const = 0; virtual const StringPool *getStringPool() const = 0; };//XPath2MemoryManager template class XQillaAllocator { public: typedef size_t size_type; typedef ptrdiff_t difference_type; typedef _Tp* pointer; typedef const _Tp* const_pointer; typedef _Tp& reference; typedef const _Tp& const_reference; typedef _Tp value_type; template struct rebind { typedef XQillaAllocator<_Tp1> other; }; // Should never be used - for compiling on AIX only XQillaAllocator() { assert(false); } XQillaAllocator(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr) { _memMgr=memMgr; } // define a copy constructor, because we don't want to copy the singleton object XQillaAllocator(const XQillaAllocator<_Tp>& o) { _memMgr=o._memMgr; } #if _MSC_VER >= 1500 // Needed for Visual Studio 2008 template XQillaAllocator(const XQillaAllocator<_Tp1>& o) { _memMgr = o._memMgr; } #endif pointer allocate(size_t _n, const void* = 0) { if(_n==1) return (pointer)_singleton; //std::cout << "XQillaAllocator::allocate(" << _n << ")" << std::endl; if(_memMgr) return _n != 0 ? static_cast(_memMgr->allocate(_n*sizeof(_Tp))) : 0; else return _n != 0 ? static_cast(malloc(_n*sizeof(_Tp))) : 0; } void deallocate(void* _p, size_t _n) { //std::cout << "XQillaAllocator::deallocate(" << _n << ")" << std::endl; if(_p) { if(_p!=_singleton) { if(_memMgr) _memMgr->deallocate(_p); else free(_p); } } } void construct(pointer _p, const_reference _v) { new ((void *)_p) _Tp(_v); } void destroy(pointer _p) { _p->~_Tp(); } size_type max_size() const { return 0xFFFFFFFF; } size_type max_size(size_type) const { return 0xFFFFFFFF; } bool operator==(const XQillaAllocator<_Tp>& o) const { return &o == this; } bool operator!=(const XQillaAllocator<_Tp>& o) const { return &o != this; } bool operator!=(XQillaAllocator<_Tp>& o) { return _memMgr != o._memMgr; } char _singleton[sizeof(_Tp)]; XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* _memMgr; }; // --------------------------------------------------------------------------- // // Operator new. Global overloaded version, lets any object be allocated on // the heap owned by a MemoryManager. // // --------------------------------------------------------------------------- inline void * operator new(size_t amt, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr) { void *p = memMgr->allocate(amt); return p; } inline void operator delete(void* ptr, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr) { memMgr->deallocate(ptr); } template class AutoRelease { public: AutoRelease(TYPE *p) : p_(p) {} ~AutoRelease() { if(p_ != 0) p_->release(); } TYPE &operator*() const { return *p_; } TYPE *operator->() const { return p_; } operator TYPE*() const { return p_; } TYPE *get() const { return p_; } TYPE *adopt() { TYPE *tmp = p_; p_ = 0; return tmp; } TYPE *swap(TYPE *p) { TYPE *tmp = p_; p_ = p; return tmp; } void set(TYPE *p) { if(p_ != 0) p_->release(); p_ = p; } private: AutoRelease(const AutoRelease &); AutoRelease &operator=(const AutoRelease &); TYPE *p_; }; template class AutoDelete { public: AutoDelete(TYPE *p) : p_(p) {} ~AutoDelete() { delete p_; } TYPE &operator*() const { return *p_; } TYPE *operator->() const { return p_; } operator TYPE*() const { return p_; } TYPE *get() const { return p_; } TYPE *adopt() { TYPE *tmp = p_; p_ = 0; return tmp; } TYPE *swap(TYPE *p) { TYPE *tmp = p_; p_ = p; return tmp; } void set(TYPE *p) { delete p_; p_ = p; } private: AutoDelete(const AutoDelete &); AutoDelete &operator=(const AutoDelete &); TYPE *p_; }; template class AutoDeleteArray { public: AutoDeleteArray(TYPE *p) : p_(p) {} ~AutoDeleteArray() { delete [] p_; } TYPE &operator*() const { return *p_; } TYPE *operator->() const { return p_; } operator TYPE*() const { return p_; } TYPE *get() const { return p_; } TYPE *adopt() { TYPE *tmp = p_; p_ = 0; return tmp; } TYPE *swap(TYPE *p) { TYPE *tmp = p_; p_ = p; return tmp; } void set(TYPE *p) { delete [] p_; p_ = p; } private: AutoDeleteArray(const AutoDeleteArray &); AutoDeleteArray &operator=(const AutoDeleteArray &); TYPE *p_; }; template class AutoDeallocate { public: AutoDeallocate(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mmgr, size_t size = sizeof(TYPE)) : p_(0), mmgr_(mmgr) { p_ = (TYPE*)mmgr_->allocate(size); } AutoDeallocate(TYPE *p, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mmgr) : p_(p), mmgr_(mmgr) {} ~AutoDeallocate() { if(p_ != 0) mmgr_->deallocate((void*)p_); } TYPE &operator*() const { return *p_; } TYPE *operator->() const { return p_; } operator TYPE*() const { return p_; } TYPE *get() const { return p_; } TYPE *adopt() { TYPE *tmp = p_; p_ = 0; return tmp; } TYPE *swap(TYPE *p) { TYPE *tmp = p_; p_ = p; return tmp; } void set(TYPE *p) { if(p_ != 0) mmgr_->deallocate((void*)p_); p_ = p; } private: AutoDeallocate(const AutoDeallocate &); AutoDeallocate &operator=(const AutoDeallocate &); TYPE *p_; XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mmgr_; }; #endif //__XPATH2MEMORYMANAGER_HPP XQilla-2.3.0/include/xqilla/framework/BaseMemoryManager.hpp0000644000151400015140000000727111653565523020626 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __BASEMEMORYMANAGER_HPP #define __BASEMEMORYMANAGER_HPP #include #include #include // Define ALLOCATE_IN_CHUNKS to 1 to allocate // CHUNK_SIZE blocks of memory at a time, and // carve the requested memory from them. The // DB XML benchmark suggests this behaves badly // with larger data sets. - jpcs #define ALLOCATE_IN_CHUNKS 0 #define DEBUG_MEMORY_ALLOCD 0x88884444 #define DEBUG_MEMORY_FREED 0x44442222 XERCES_CPP_NAMESPACE_BEGIN class DOMNode; XERCES_CPP_NAMESPACE_END class VariableStore; class Collation; class CollationHelper; class XQillaNSResolver; class StringPool; class XQILLA_API BaseMemoryManager : public XPath2MemoryManager { public: virtual ~BaseMemoryManager(); // from MemoryManager #if _XERCES_VERSION >= 30000 virtual void* allocate(XMLSize_t numElements); #else virtual void* allocate(size_t numElements); #endif virtual void deallocate(void* p); virtual XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *getExceptionMemoryManager(); /** Returns a copy of the given string */ virtual const XMLCh* getPooledString(const XMLCh *src); virtual const XMLCh* getPooledString(const XMLCh *src, unsigned int length); /** Returns a copy of the transcoding of the given string */ virtual const XMLCh* getPooledString(const char *src); /** Use with extreme caution! */ virtual void reset(); virtual void dumpStatistics() const; virtual size_t getAllocatedObjectCount() const { return objectsAllocated_; } virtual size_t getTotalAllocatedMemory() const { return totalMemoryAllocated_; } virtual const StringPool *getStringPool() const { return fStringPool; } /** create a collation */ virtual Collation* createCollation(CollationHelper* helper); /** create a resolver */ virtual XQillaNSResolver* createNSResolver(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *resolverNode); /** create a store for variables */ virtual VariableTypeStore* createVariableTypeStore(); /** create a ATDecimalOrDerived for the given integer */ virtual ATDecimalOrDerived* createInteger(int value); protected: virtual void initialise(); virtual void releaseAll(); virtual void *internal_allocate(size_t size) = 0; virtual void internal_deallocate(void *p) = 0; struct XQILLA_API MemList { MemList *prev; MemList *next; size_t size; #if ALLOCATE_IN_CHUNKS size_t remaining; unsigned int allocCount; #endif #if DEBUG_MEMORY unsigned long magic; #endif }; #if ALLOCATE_IN_CHUNKS struct XQILLA_API MemAlloc { MemList *list; }; #endif MemList *fCurrentBlock; size_t objectsAllocated_; size_t totalMemoryAllocated_; StringPool *fStringPool; #if _XERCES_VERSION >= 30000 XERCES_CPP_NAMESPACE_QUALIFIER RefHashTableOf* fIntegerPool; #else XERCES_CPP_NAMESPACE_QUALIFIER RefHashTableOf* fIntegerPool; #endif }; #endif XQilla-2.3.0/include/xqilla/framework/StringPool.hpp0000644000151400015140000000561011653565523017363 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __STRINGPOOL_HPP #define __STRINGPOOL_HPP #include #include #include #include //Added so xqilla will compile under CC on Solaris #include // Added so xqilla will compile on SunOS 10 using STLPort #include class XQILLA_API StringPool { public: StringPool(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm); ~StringPool(); /** Returns a copy of the given string */ const XMLCh* getPooledString(const XMLCh *src); /** Returns a copy of the given string, with given length */ const XMLCh* getPooledString(const XMLCh *src, unsigned int length); /** Returns a copy of the transcoding of the given string */ const XMLCh* getPooledString(const char *src); unsigned int getCount() const { return _count; } unsigned int getHits() const { return _hits; } unsigned int getMisses() const { return _misses; } unsigned int getTooBig() const { return _toobig; } void dumpStatistics() const; private: StringPool(const StringPool&); StringPool &operator=(const StringPool&); static unsigned int hash(const XMLCh *v, unsigned int length); const XMLCh *replicate(const XMLCh *v, unsigned int length) const; void resize(); class Bucket { public: Bucket(const XMLCh *v, unsigned int l, unsigned int h, Bucket *n) : value(v), length(l), hashValue(h), next(n) {} const XMLCh *value; unsigned int length; unsigned int hashValue; Bucket *next; }; XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *_mm; Bucket **_bucketList; unsigned int _modulus; unsigned int _count; unsigned int _hits; unsigned int _misses; unsigned int _toobig; }; inline unsigned int StringPool::hash(const XMLCh *v, unsigned int length) { unsigned int hashVal = 0; while(length) { hashVal += (hashVal * 37) + (hashVal >> 24) + (unsigned int)(*v); ++v; --length; } return hashVal; } inline const XMLCh *StringPool::replicate(const XMLCh *v, unsigned int length) const { unsigned int size = length * sizeof(XMLCh); XMLCh *ret = (XMLCh*)_mm->allocate(size + sizeof(XMLCh)); memcpy(ret, v, size); ret[length] = 0; return ret; } #endif XQilla-2.3.0/include/xqilla/framework/ProxyMemoryManager.hpp0000644000151400015140000000241011653565523021063 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __PROXYMEMORYMANAGER_HPP #define __PROXYMEMORYMANAGER_HPP #include #include class XQILLA_API ProxyMemoryManager : public BaseMemoryManager { public: ProxyMemoryManager(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *parent); virtual ~ProxyMemoryManager(); protected: virtual void *internal_allocate(size_t size); virtual void internal_deallocate(void *p); private: XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *parent_; }; #endif //__PROXYMEMORYMANAGER_HPP XQilla-2.3.0/include/xqilla/framework/XPath2MemoryManagerImpl.hpp0000644000151400015140000000352211653565523021677 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __XPATH2MEMORYMANAGERIMPL_HPP #define __XPATH2MEMORYMANAGERIMPL_HPP #include #include #if 0 // Turn OFF use of windows heap by default. // There is a fragmentation problem resulting // in less available memory #if defined(WIN32) && !defined(__CYGWIN__) #define WIN_USE_HEAP #endif #endif class XQILLA_API XPath2MemoryManagerImpl : public BaseMemoryManager { public: XPath2MemoryManagerImpl(); virtual ~XPath2MemoryManagerImpl(); #if defined(WIN_USE_HEAP) #if _XERCES_VERSION >= 30000 virtual void *allocate(XMLSize_t numElements); #else virtual void *allocate(size_t numElements); #endif virtual void deallocate(void* p); #endif protected: #if defined(WIN_USE_HEAP) virtual void initialise(); virtual void releaseAll(); virtual void *internal_allocate(size_t size) { return 0; } virtual void internal_deallocate(void *p) {} #else virtual void *internal_allocate(size_t size); virtual void internal_deallocate(void *p); #endif private: #if defined(WIN_USE_HEAP) HANDLE fHeap; #endif }; #endif //__XPATH2MEMORYMANAGERIMPL_HPP XQilla-2.3.0/include/xqilla/framework/ReferenceCounted.hpp0000644000151400015140000000603411653565523020504 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _REFERENCECOUNTED_HPP #define _REFERENCECOUNTED_HPP #include #include // for null RefCountPointer instances #define NULLRCP ((void *)0) /** Super class for reference counted classes */ class XQILLA_API ReferenceCounted { public: ReferenceCounted() : _ref_count(0) {} virtual ~ReferenceCounted() {} /// Increment the reference count void incrementRefCount() const { ++const_cast(_ref_count); } /// Decrement the reference count, deleting if it becomes zero virtual void decrementRefCount() const { if(--const_cast(_ref_count) == 0) { delete this; } } unsigned int getRefCount() const { return _ref_count; } protected: unsigned int _ref_count; // mutable }; /** Super class of all the reference counted wrappers for Items */ template class RefCountPointer { public: RefCountPointer(T *p = 0) : _p(p) { if(_p != 0) _p->incrementRefCount(); } template RefCountPointer(const RefCountPointer &o) : _p((T*)(T2*)o) { if(_p != 0) _p->incrementRefCount(); } RefCountPointer(const RefCountPointer &o) : _p(o._p) { if(_p != 0) _p->incrementRefCount(); } RefCountPointer &operator=(const RefCountPointer &o) { if(_p != o._p) { if(_p != 0) _p->decrementRefCount(); _p = o._p; if(_p != 0) _p->incrementRefCount(); } return *this; } ~RefCountPointer() { if(_p != 0) _p->decrementRefCount(); } T *operator->() const { return _p; } operator T*() const { return _p; } T *get() const { return _p; } bool isNull() const { return (_p == 0); } bool notNull() const { return (_p != 0); } protected: T *_p; }; template inline bool operator==(const RefCountPointer &a, const RefCountPointer &b) { return (void*)(T1*)a == (void*)(T2*)b; } template inline bool operator!=(const RefCountPointer &a, const RefCountPointer &b) { return (void*)(T1*)a != (void*)(T2*)b; } template inline bool operator==(const RefCountPointer &a, void *b) { return (T*)a == (T*)b; } template inline bool operator!=(const RefCountPointer &a, void *b) { return (T*)a != (T*)b; } #endif XQilla-2.3.0/include/xqilla/simple-api/0000755000151400015140000000000011653572444014673 500000000000000XQilla-2.3.0/include/xqilla/simple-api/XQQuery.hpp0000644000151400015140000003110311653565523016700 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQQUERY_HPP #define XQQUERY_HPP #include #include #include #include #include #include #include #include class DynamicContext; class XQUserFunction; class XQGlobalVariable; class XQQuery; class DelayedModule; class DelayedFuncFactory; class StaticTyper; typedef std::vector > GlobalVariables; typedef std::vector > ImportedModules; typedef std::vector > DelayedFunctions; typedef XERCES_CPP_NAMESPACE_QUALIFIER RefHashTableOf ModuleMap; class XQILLA_API ModuleCache : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory { public: ModuleCache(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm); void put(XQQuery *module); XQQuery *getByURI(const XMLCh *uri) const; XQQuery *getByNamespace(const XMLCh *ns) const; ModuleMap byURI_; ModuleMap byNamespace_; ImportedModules ordered_; }; /** * Encapsulates a query expression. XQQuery objects are thread safe, and can be * executed from multiple threads at the same time - provided a DynamicContext is * used per thread. * * Instances of this class can be created by using the parsing methods on the XQilla * object. * * This class is dependant on the DynamicContext that was used to create it. This * context must not be deleted before the XQQuery object. Normally this is acheived * by the XQQuery adopting the DynamicContext and deleting it when it is deleted. * However, this behaviour can be disabled by using the XQilla::NO_ADOPT_CONTEXT * flag when creating the XQQuery. */ class XQILLA_API XQQuery : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory { public: /// Destructor. ~XQQuery(); /** @name Runtime Methods */ // @{ /** * Creates a DynamicContext based on the static context used to parse this query. * This DynamicContext will be suitable for using to call execute(). * * @param memMgr The memory manager used to create the DynamicContext. * * @return An implementation of DynamicContext */ DynamicContext *createDynamicContext(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager) const; /** * Executes the query using the given DynamicContext, returning * a lazy iterator over the results. * * @param context The DynamicContext to use to execute the * query. This contains runtime values for variables, the value * of the context item, and other relevent information. * * @return The Result object - a lazy iterator over the query * results. * * @exception XQException If a runtime error occurs */ Result execute(DynamicContext* context) const; /** * Executes the query or stylesheet using the given context item and DynamicContext, returning * a lazy iterator over the results. * * @param contextItem The context item to use to execute the query. * @param context The DynamicContext to use to execute the * query. This contains runtime values for variables, the value * of the context item, and other relevent information. * * @return The Result object - a lazy iterator over the query * results. * * @exception XQException If a runtime error occurs */ Result execute(const Item::Ptr &contextItem, DynamicContext *context) const; /** * Executes the stylesheet starting at the named template using the given DynamicContext, returning * a lazy iterator over the results. * * @param templateQName The name of the template to start executing. If the QName * includes a prefix, it is resolved using the in-scope namespaces for the stylesheet. * @param context The DynamicContext to use to execute the * query. This contains runtime values for variables, the value * of the context item, and other relevent information. * * @return The Result object - a lazy iterator over the query * results. * * @exception XQException If a runtime error occurs */ Result execute(const XMLCh *templateQName, DynamicContext *context) const; /** * Executes the query using the given DynamicContext, sending * the output of the query to the given EventHandler. * * @param context The DynamicContext to use to execute the * query. This contains runtime values for variables, the value * of the context item, and other relevent information. * * @exception XQException If a runtime error occurs */ void execute(EventHandler *events, DynamicContext* context) const; /** * Executes the query or stylesheet using the given context item and DynamicContext, sending * the output of the query to the given EventHandler. * * @param contextItem The context item to use to execute the query. * @param context The DynamicContext to use to execute the * query. This contains runtime values for variables, the value * of the context item, and other relevent information. * * @exception XQException If a runtime error occurs */ void execute(EventHandler *events, const Item::Ptr &contextItem, DynamicContext *context) const; /** * Executes the stylesheet starting at the named template using the given DynamicContext, sending * the output of the query to the given EventHandler. * * @param templateQName The name of the template to start executing. If the QName * includes a prefix, it is resolved using the in-scope namespaces for the stylesheet. * @param context The DynamicContext to use to execute the * query. This contains runtime values for variables, the value * of the context item, and other relevent information. * * @exception XQException If a runtime error occurs */ void execute(EventHandler *events, const XMLCh *templateQName, DynamicContext *context) const; /** * Perform static resolution on the query. This operation is not * thread safe, and should only be performed once. * * Static resolution resolves prefixes to namespace URIs, variable * names to variables, function names to functions, and performs * some basic query optimisation. * * Normally this is done as part of parsing the query expression. * However, if the XQilla::NO_STATIC_RESOLUTION flag was specified * when the query was parsed, this method will have to be called to * perform this step manually. * * @param context If specified, the StaticContext to use to statically * resolve this object. By default, the context used to parse the query * is used. This should not need to be changed under normal usage. * * @exception XQException If a static resolution time error occurs */ void staticResolution(); /** * Perform type calculation and related optimizations. This operation * is safe to call multiple times. * * Normally this step is done as part of static resolution. * * @param context If specified, the StaticContext to use to statically * resolve this object. By default, the context used to parse the query * is used. This should not need to be changed under normal usage. * * @exception XQException If a static resolution time error occurs */ void staticTyping(StaticTyper *styper = 0); bool staticTypingOnce(StaticTyper *styper = 0); //@} /** @name Query Information */ // @{ /// Returns the expression that was parsed to create this XQQuery object. const XMLCh* getQueryText() const { return m_szQueryText; } void setQueryText(const XMLCh *v); /// Returns the query plan as XML. This is designed for debug and informative purposes only. std::string getQueryPlan() const; //@} /** @name Getters and Setters */ // @{ /// Get the query body as an ASTNode ASTNode* getQueryBody() const; /// Set the query body to an ASTNode void setQueryBody(ASTNode* query); /// Adds an XQUserFunction to the query (also adds it as a template if necessary) void addFunction(XQUserFunction* fnDef); /// Returns a vector of all XQUserFunction objects from the query const UserFunctions &getFunctions() const { return m_userDefFns; } /// Adds a function defined in XQuery syntax. Parsing is delayed until the function /// is actually needed. void addDelayedFunction(const XMLCh *uri, const XMLCh *name, size_t numArgs, const XMLCh *functionDeclaration, bool isPrivate = false, int line = 1, int column = 1); void addDelayedFunction(const XMLCh *uri, const XMLCh *name, size_t numArgs, const char *functionDeclaration, bool isPrivate = false, int line = 1, int column = 1); /// Returns a vector of all XQUserFunction objects from the query const DelayedFunctions &getDelayedFunctions() const { return m_delayedFunctions; } /// Adds a XQGlobalVariable to the query void addVariable(XQGlobalVariable* varDef); /// Returns a vector of all XQGlobalVariable objects from the query const GlobalVariables &getVariables() const { return m_userDefVars; } /// Returns a vector of all XQGlobalVariable objects from the query const ImportedModules &getImportedModules() const { return m_importedModules; } ModuleCache *getModuleCache() const { return m_moduleCache; } bool isModuleCacheOwned() const { return m_moduleCacheOwned; } /// Returns the name of the file that this query was parsed from. const XMLCh* getFile() const { return m_szCurrentFile; } /// Sets the name of the file that this query was parsed from. void setFile(const XMLCh* file); bool getVersion3() const { return m_version3; } void setVersion3(bool v) { m_version3 = v; } const DynamicContext *getStaticContext() const { return m_context; } XQQuery *getNext() const { return m_next; } void setNext(XQQuery *n) { m_next = n; } //@} /** @name Module Methods */ // @{ /// Sets whether this query is a module or not void setIsLibraryModule(bool bIsModule=true); /// Returns whether this query is a module or not bool getIsLibraryModule() const; /// Sets the module target namespace for this query void setModuleTargetNamespace(const XMLCh* uri); /// Gets the module taget namespace for this query const XMLCh* getModuleTargetNamespace() const; /// Performs a module import from the given target namespace and locations void importModule(const XMLCh* szUri, VectorOfStrings* locations, const LocationInfo *location); void importModule(XQQuery *module); XQQuery *findModuleForVariable(const XMLCh *uri, const XMLCh *name); XQQuery *findModuleForFunction(const XMLCh *uri, const XMLCh *name, int numArgs); //@} private: /// Private constructor - Can be accessed by an XQilla object, as it is a friend. XQQuery(DynamicContext *context, bool contextOwned, ModuleCache *moduleCache, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr); XQQuery(const XQQuery &); XQQuery &operator=(const XQQuery &); XQQuery *parseModule(const XMLCh *ns, const XMLCh *at, const LocationInfo *location) const; void executeProlog(DynamicContext *context) const; private: /// The memory manager used to create this object XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* m_memMgr; /// The context used to create this query DynamicContext *m_context; bool m_contextOwned; ASTNode* m_query; bool m_bIsLibraryModule; const XMLCh* m_szTargetNamespace; const XMLCh* m_szQueryText; const XMLCh* m_szCurrentFile; UserFunctions m_userDefFns; DelayedFunctions m_delayedFunctions; GlobalVariables m_userDefVars; ImportedModules m_importedModules; ModuleCache *m_moduleCache; bool m_moduleCacheOwned; bool m_version3; enum { BEFORE, DURING, AFTER } m_staticTyped; // The next module with the same target namespace XQQuery *m_next; friend class QueryResult; friend class XQilla; friend class DelayedModule; }; #endif XQilla-2.3.0/include/xqilla/simple-api/XQillaConfiguration.hpp0000644000151400015140000000377611653565523021263 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQILLACONFIGURATION_H #define XQILLACONFIGURATION_H #include #include #include #include class DocumentCache; class SequenceBuilder; class ItemFactory; class UpdateFactory; class URIResolver; class ASTToXML; class StaticContext; class DynamicContext; class XQILLA_API XQillaConfiguration : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory { public: virtual ~XQillaConfiguration() {} virtual DocumentCache *createDocumentCache(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr) = 0; virtual SequenceBuilder *createSequenceBuilder(const DynamicContext *context) = 0; virtual ItemFactory *createItemFactory(DocumentCache *cache, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr) = 0; virtual UpdateFactory *createUpdateFactory(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr) = 0; virtual URIResolver *createDefaultURIResolver(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr) = 0; virtual ASTToXML *createASTToXML() = 0; virtual void populateStaticContext(StaticContext *context) {} virtual void populateDynamicContext(DynamicContext *context) {} virtual void testInterrupt() {} }; #endif XQilla-2.3.0/include/xqilla/simple-api/XQilla.hpp0000644000151400015140000002046611653565523016526 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQILLA_07637_HPP #define _XQILLA_07637_HPP #include #include #include #include class DynamicContext; class XPath2MemoryManager; class XQillaConfiguration; class Optimizer; class DelayedFuncFactory; class XQQuery; XERCES_CPP_NAMESPACE_BEGIN class InputSource; class XMLBuffer; XERCES_CPP_NAMESPACE_END namespace CompileDelayedModule { void compile(const XMLCh *queryFile); } /** * Provides factory methods for creating XQQuery and DynamicContext objects. * * This class calls XQillaPlatformUtils::initialize() when it is constructed, and * XQillaPlatformUtils::terminate() when it destructs, so there is no need to seperately * initialize or terminate either Xerces or XQilla. */ class XQILLA_API XQilla : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory { public: /// Flags used by the XQilla methods. These are used by bitwise OR-ing (|) their values together. enum Flags { NO_STATIC_RESOLUTION = 0x1, ///< Don't perform static resolution or any optimization NO_ADOPT_CONTEXT = 0x2, ///< Don't adopt the context and delete it when the XQQuery is deleted DEBUG_QUERY = 0x4, ///< Build debugging hooks into the query to enable the use of DebugListener NO_OPTIMIZATION = 0x8, ///< Don't perform optimization NO_DEFAULT_MODULES = 0x10 ///< Don't automatically import the default modules }; /// Enumeration used to select a language to parse enum Language { XQUERY = 0x00, XPATH2 = 0x01, FULLTEXT = 0x02, UPDATE = 0x04, EXTENSIONS = 0x08, XSLT2 = 0x10, VERSION3 = 0x20, XQUERY_FULLTEXT = (XQUERY | FULLTEXT), XQUERY_UPDATE = (XQUERY | UPDATE), XQUERY_FULLTEXT_UPDATE = (XQUERY | FULLTEXT | UPDATE), XPATH2_FULLTEXT = (XPATH2 | FULLTEXT), XSLT2_FULLTEXT = (XSLT2 | FULLTEXT), XQUERY3 = (XQUERY | VERSION3), XQUERY3_FULLTEXT = (XQUERY | VERSION3 | FULLTEXT), XQUERY3_UPDATE = (XQUERY | VERSION3 | UPDATE), XQUERY3_FULLTEXT_UPDATE = (XQUERY | VERSION3 | FULLTEXT | UPDATE), XPATH3 = (XPATH2 | VERSION3), XPATH3_FULLTEXT = (XPATH2 | VERSION3 | FULLTEXT), XSLT3 = (XSLT2 | VERSION3), XSLT3_FULLTEXT = (XSLT2 | VERSION3 | FULLTEXT), }; /** * Constructs the object. In the process, XQillaPlatformUtils::initialize() is * called to initialize XQilla and Xerces. * * @param memMgr If provided, this is the MemoryManager used to initialize Xerces. */ XQilla(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr = 0); /** * Destructs the object. In the process, XQillaPlatformUtils::terminate() is * called to terminate XQilla and Xerces. */ ~XQilla(); /** @name Parsing Methods */ // @{ /** * Parse the expression contained in the given query string. * * @param query A string containing the expression to parse. * @param context If specified, the context to use for parsing this expression. A * default context is used if this parameter is 0. * @param queryFile The name of the file that query originates in. This is passed * back to the user in an XQException if an error occurs. * @param flags A bitwise OR of the Flags constants, that control aspects of how * the XQQuery object is created. * @param memMgr If specified, the memory manager used to create the XQQuery object. * * @return The object that represents the parsed expression. * * @exception XQException If a parse error occurs. */ static XQQuery* parse(const XMLCh* query, DynamicContext* context = 0, const XMLCh* queryFile = NULL, unsigned int flags = 0, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager, XQQuery *result = 0); /** * Parse the expression from the given InputSource. * * @param querySrc An InputSource which the expression will be parsed from. * @param context If specified, the context to use for parsing this expression. A * default context is used if this parameter is 0. * @param flags A bitwise OR of the Flags constants, that control aspects of how * the XQQuery object is created. * @param memMgr If specified, the memory manager used to create the XQQuery object. * * @return The object that represents the parsed expression. * * @exception XQException If a parse error occurs. */ static XQQuery* parse(const XERCES_CPP_NAMESPACE_QUALIFIER InputSource& querySrc, DynamicContext* context = 0, unsigned int flags = 0, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager, XQQuery *result = 0); /** * Parse the expression residing at the given URL. * * @param queryFile The URL of the expression to parse. * @param context If specified, the context to use for parsing this expression. A * default context is used if this parameter is 0. * @param flags A bitwise OR of the Flags constants, that control aspects of how * the XQQuery object is created. * @param memMgr If specified, the memory manager used to create the XQQuery object. * * @return The object that represents the parsed expression. * * @exception XQException If a parse error occurs. */ static XQQuery* parseFromURI(const XMLCh* queryFile, DynamicContext* context = 0, unsigned int flags = 0, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager, XQQuery *result = 0); //@} /** @name Factory Methods */ // @{ /** * Creates a context suitable for parsing an expression with. * @param memMgr The memory manager used to create the DynamicContext. * @return An implementation of DynamicContext */ static DynamicContext *createContext(Language language = XQUERY, XQillaConfiguration *conf = 0, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager); //@} private: static bool readQuery(const XMLCh* queryFile, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer& queryText); static bool readQuery(const XERCES_CPP_NAMESPACE_QUALIFIER InputSource& querySrc, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer& queryText); static Optimizer *createOptimizer(DynamicContext *context, unsigned int flags); static void compileDelayedModule(const XMLCh* queryFile, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager); friend void CompileDelayedModule::compile(const XMLCh *queryFile); friend class DelayedFuncFactory; }; #endif XQilla-2.3.0/include/xqilla/fastxdm/0000755000151400015140000000000011653572443014300 500000000000000XQilla-2.3.0/include/xqilla/fastxdm/FastXDMConfiguration.hpp0000644000151400015140000000304011653565523020725 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef FASTXDMCONFIGURATION_H #define FASTXDMCONFIGURATION_H #include #include class XQILLA_API FastXDMConfiguration : public XQillaConfiguration { public: virtual DocumentCache *createDocumentCache(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr); virtual SequenceBuilder *createSequenceBuilder(const DynamicContext *context); virtual ItemFactory *createItemFactory(DocumentCache *cache, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr); virtual UpdateFactory *createUpdateFactory(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr); virtual URIResolver *createDefaultURIResolver(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr); virtual ASTToXML *createASTToXML(); }; #endif XQilla-2.3.0/include/xqilla/context/0000755000151400015140000000000011653572443014316 500000000000000XQilla-2.3.0/include/xqilla/context/ContextHelpers.hpp0000644000151400015140000001431611653565523017724 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef CONTEXTHELPERS_HPP #define CONTEXTHELPERS_HPP #include #include class XQILLA_API AutoNodeSetOrderingReset { public: AutoNodeSetOrderingReset(StaticContext* context, StaticContext::NodeSetOrdering ordering = StaticContext::ORDERING_UNORDERED) { context_ = context; if(context_) { ordering_ = context->getNodeSetOrdering(); context->setNodeSetOrdering(ordering); } } ~AutoNodeSetOrderingReset() { if(context_) { context_->setNodeSetOrdering(ordering_); } } protected: StaticContext* context_; StaticContext::NodeSetOrdering ordering_; }; class XQILLA_API AutoContextItemTypeReset { public: AutoContextItemTypeReset(StaticContext* context) { context_ = context; if(context_) { sType_ = context->getContextItemType(); } } AutoContextItemTypeReset(StaticContext* context, const StaticType &sType) { context_ = context; if(context_) { sType_ = context->getContextItemType(); context->setContextItemType(sType); } } ~AutoContextItemTypeReset() { if(context_) { context_->setContextItemType(sType_); } } protected: StaticContext* context_; StaticType sType_; }; class XQILLA_API AutoNsScopeReset { public: AutoNsScopeReset(StaticContext* context, XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver* newResolver) { context_=context; if(context_) { _oldNSResolver=context_->getNSResolver(); _defaultElementAndTypeNS=context->getDefaultElementAndTypeNS(); context_->setNSResolver(newResolver); } } ~AutoNsScopeReset() { if(context_) { context_->setNSResolver(_oldNSResolver); context_->setDefaultElementAndTypeNS(_defaultElementAndTypeNS); } } protected: StaticContext* context_; const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver* _oldNSResolver; const XMLCh *_defaultElementAndTypeNS; }; class XQILLA_API AutoContextInfoReset { public: AutoContextInfoReset(DynamicContext *context) : oldContextItem(context->getContextItem()), oldContextPosition(context->getContextPosition()), oldContextSize(context->getContextSize()), context_(context) { } AutoContextInfoReset(DynamicContext *context, const Item::Ptr &contextItem, size_t contextPosition = 0, size_t contextSize = 0) : oldContextItem(context->getContextItem()), oldContextPosition(context->getContextPosition()), oldContextSize(context->getContextSize()), context_(context) { context->setContextItem(contextItem); context->setContextPosition(contextPosition); context->setContextSize(contextSize); } ~AutoContextInfoReset() { resetContextInfo(); } void resetContextInfo() { context_->setContextItem(oldContextItem); context_->setContextPosition(oldContextPosition); context_->setContextSize(oldContextSize); } Item::Ptr oldContextItem; size_t oldContextPosition; size_t oldContextSize; private: DynamicContext* context_; }; class XQILLA_API AutoDocumentCacheReset { public: AutoDocumentCacheReset(DynamicContext* context) : oldDC(const_cast(context->getDocumentCache())), context_ (context) { } ~AutoDocumentCacheReset() { context_->setDocumentCache(oldDC); } DocumentCache *oldDC; protected: DynamicContext* context_; }; class XQILLA_API AutoVariableStoreReset { public: AutoVariableStoreReset(DynamicContext *context, const VariableStore *store = 0) { context_ = context; _oldVarStore = context_->getVariableStore(); if(store) context_->setVariableStore(store); } ~AutoVariableStoreReset() { context_->setVariableStore(_oldVarStore); } void reset() { context_->setVariableStore(_oldVarStore); } protected: DynamicContext *context_; const VariableStore *_oldVarStore; }; class XQILLA_API AutoRegexGroupStoreReset { public: AutoRegexGroupStoreReset(DynamicContext *context, const RegexGroupStore *store = 0) { context_ = context; _oldRegexStore = context_->getRegexGroupStore(); if(store) context_->setRegexGroupStore(store); } ~AutoRegexGroupStoreReset() { context_->setRegexGroupStore(_oldRegexStore); } void reset() { context_->setRegexGroupStore(_oldRegexStore); } protected: DynamicContext *context_; const RegexGroupStore *_oldRegexStore; }; class XQILLA_API AutoMessageListenerReset { public: AutoMessageListenerReset(StaticContext* context, MessageListener *listener = 0) { context_ = context; if(context_) { listener_ = context->getMessageListener(); context->setMessageListener(listener); } } ~AutoMessageListenerReset() { if(context_) { context_->setMessageListener(listener_); } } protected: StaticContext* context_; MessageListener *listener_; }; class XQILLA_API AutoStackFrameReset { public: AutoStackFrameReset(DynamicContext *context, const StackFrame *frame) { context_ = context; _oldFrame = context_->getStackFrame(); context_->setStackFrame(frame); } ~AutoStackFrameReset() { context_->setStackFrame(_oldFrame); } void reset() { context_->setStackFrame(_oldFrame); } protected: DynamicContext *context_; const StackFrame *_oldFrame; }; template class XQILLA_API AutoReset { public: AutoReset(T &orig) : orig_(orig) { old_ = orig; } ~AutoReset() { reset(); } void reset() { orig_ = old_; } protected: T &orig_; T old_; }; #endif XQilla-2.3.0/include/xqilla/context/StaticContext.hpp0000644000151400015140000003256311653565523017555 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _STATICCONTEXT_HPP #define _STATICCONTEXT_HPP #include #include #include #include #include #include class DynamicContext; class XPath2MemoryManager; class FuncFactory; class DatatypeFactory; class Collation; class VariableTypeStore; class ItemFactory; class StaticType; class ModuleResolver; class ExternalFunctionResolver; class MessageListener; class ExternalFunction; class XQillaConfiguration; class XQUserFunction; class XQillaNSResolver; // Copied from ASTNode.hpp typedef std::vector > VectorOfASTNodes; typedef std::vector > UserFunctions; XERCES_CPP_NAMESPACE_BEGIN class DOMDocument; class DOMXPathNSResolver; class XMLEntityResolver; XERCES_CPP_NAMESPACE_END /// The parse time static context interface class XQILLA_API StaticContext : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory { public: typedef enum { ORDERING_ORDERED, ORDERING_UNORDERED } NodeSetOrdering; typedef enum { CONSTRUCTION_MODE_PRESERVE, CONSTRUCTION_MODE_STRIP } ConstructionMode; typedef enum { FLWOR_ORDER_EMPTY_GREATEST, FLWOR_ORDER_EMPTY_LEAST } FLWOROrderingMode; typedef enum { NONE, CASE_INSENSITIVE, CASE_SENSITIVE, UPPERCASE, LOWERCASE } FTCaseOption; virtual ~StaticContext() {}; virtual DynamicContext *createModuleContext(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager) const = 0; virtual DynamicContext *createDynamicContext(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager) const = 0; virtual DynamicContext *createDebugQueryContext(const Item::Ptr &contextItem, size_t contextPosition, size_t contextSize, const VariableStore *variables, const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver *nsResolver, const XMLCh *defaultElementNS, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager) const = 0; /** Returns the configuration object for this context */ virtual XQillaConfiguration *getConfiguration() const = 0; /** Returns the lanuage that this context is for. This value cannot be set, since it is used to correctly construct the StaticContext */ virtual XQilla::Language getLanguage() const = 0; /** Returns the ItemFactory for this context, which is used to create XQilla items and other objects. */ virtual ItemFactory *getItemFactory() const = 0; /** Sets the ItemFactory for this context */ virtual void setItemFactory(ItemFactory *factory) = 0; /** Get the static type of the context item */ virtual const StaticType &getContextItemType() const = 0; /** Set the static type of the context item */ virtual void setContextItemType(const StaticType &st) = 0; /** Get the current XPath 1.0 compatibility mode */ virtual bool getXPath1CompatibilityMode() const = 0; /** Set the current XPath 1.0 compatibility mode */ virtual void setXPath1CompatibilityMode(bool newMode) = 0; /** Get the NS resolver */ virtual const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver* getNSResolver() const = 0; /** returns the URI that is bound in prefix in the current scope or zero length string otherwise */ virtual const XMLCh* getUriBoundToPrefix(const XMLCh* prefix, const LocationInfo *location = 0) const = 0; /** returns the prefix that is bound in uri in the current scope or zero length string otherwise */ virtual const XMLCh* getPrefixBoundToUri(const XMLCh* uri) const = 0; /** Set the NS resolver */ virtual void setNSResolver(const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver* resolver) = 0; /** Binds a prefix to a namespace URI */ virtual void setNamespaceBinding(const XMLCh* prefix, const XMLCh* uri) = 0; /** get the value of the default namespace for elements and types */ virtual const XMLCh* getDefaultElementAndTypeNS() const = 0; /** set the value of the default namespace for elements and types */ virtual void setDefaultElementAndTypeNS(const XMLCh* newNS) = 0; /** Return the default namespace for functions */ virtual const XMLCh* getDefaultFuncNS() const = 0; /** Set the default namespace for functions */ virtual void setDefaultFuncNS(const XMLCh* newNS) = 0; /** retrieve the repository for the grammars **/ virtual DocumentCache* getDocumentCache() const = 0; /** sets the repository for the grammars **/ virtual void setDocumentCache(DocumentCache* docCache) = 0; /** returns true if the type represented by uri:typename is an instance of uriToCheck:typeNameToCheck * * ie: to check * xs:integer instance of xs:decimal, * call * isTypeOrDerivedFromType("xs", "integer", "xs", "decimal") * (except of course, call with URIs, not prefixes!) */ virtual bool isTypeOrDerivedFromType(const XMLCh* const uri, const XMLCh* const typeName, const XMLCh* const uriToCheck, const XMLCh* const typeNameToCheck) const = 0; /** * Sets the XMLEntityResolver that is used by Xerces when it is used * to parse documents. This affects the behaviour of XQilla whenever * it retrieves a DTD or XML Schema grammar. */ virtual void setXMLEntityResolver(XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityResolver* const handler) = 0; /** Returns the entity resolver currently set */ virtual XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityResolver* getXMLEntityResolver() const = 0; /** Register a callback object for resolving module URIs */ virtual void setModuleResolver(ModuleResolver *resolver) = 0; /** Returns the module resolver currently set */ virtual ModuleResolver *getModuleResolver() const = 0; /* Retrieve a list of locations for the given module URI */ virtual VectorOfStrings* resolveModuleURI(const XMLCh* uri) const = 0; /** add the location for the grammar of a specific namespace **/ virtual void addSchemaLocation(const XMLCh* uri, VectorOfStrings* locations, const LocationInfo *location = 0) = 0; /** get the variable type store */ virtual VariableTypeStore* getVariableTypeStore() = 0; /** adds a template definition to the template tables */ virtual void addTemplate(XQUserFunction *tp) = 0; /** look up a template definition by name */ virtual const XQUserFunction *lookUpNamedTemplate(const XMLCh *uri, const XMLCh *name) const = 0; /** Return a vector of all the templates with patterns */ virtual const UserFunctions &getTemplateRules() const = 0; /** adds a custom function to the function table */ virtual void addCustomFunction(FuncFactory *func) = 0; /** removes a custom function to the function table */ virtual void removeCustomFunction(FuncFactory *func) = 0; /** returns a function object with the given uri, localname and number of arguments triple */ virtual ASTNode *lookUpFunction(const XMLCh *uri, const XMLCh *name, const VectorOfASTNodes &v, const LocationInfo *location = 0) const = 0; /** Register a callback object for resolving external function implementations */ virtual void setExternalFunctionResolver(ExternalFunctionResolver *resolver) = 0; /** Returns the external function resolver currently set */ virtual ExternalFunctionResolver *getExternalFunctionResolver() const = 0; /** adds an external function implementation to the function table */ virtual void addExternalFunction(const ExternalFunction *func) = 0; /** returns an external function implementation for the given uri and localname */ virtual const ExternalFunction *lookUpExternalFunction(const XMLCh *uri, const XMLCh *name, size_t numArgs) const = 0; /** Get the implementation for the specified collation */ virtual Collation* getCollation(const XMLCh* const URI, const LocationInfo *location = 0) const = 0; /** Add a collation */ virtual void addCollation(Collation* collation) = 0; /** Get the default collation */ virtual Collation* getDefaultCollation(const LocationInfo *location = 0) const = 0; /** Specify which collation is the default one */ virtual void setDefaultCollation(const XMLCh* const URI) = 0; /** Return the base URI */ virtual const XMLCh* getBaseURI() const = 0; /** Set the base URI */ virtual void setBaseURI(const XMLCh* newURI) = 0; /** Return the ordering method for node sets */ virtual NodeSetOrdering getNodeSetOrdering() const = 0; /** Set the ordering method for node sets */ virtual void setNodeSetOrdering(NodeSetOrdering newOrder) = 0; /** Return the construction mode */ virtual ConstructionMode getConstructionMode() const = 0; /** Set the construction mode */ virtual void setConstructionMode(ConstructionMode newMode) = 0; /** Set the policy for boundary space */ virtual void setPreserveBoundarySpace(bool value) = 0; /** Get the policy for boundary space */ virtual bool getPreserveBoundarySpace() const = 0; /** Return the default ordering mode for FLWOR blocks */ virtual FLWOROrderingMode getDefaultFLWOROrderingMode() const = 0; /** Set the default ordering mode for FLWOR blocks */ virtual void setDefaultFLWOROrderingMode(FLWOROrderingMode newMode) = 0; /** Set the policy for namespace inheritance */ virtual void setInheritNamespaces(bool value) = 0; /** Get the policy for namespace inheritance */ virtual bool getInheritNamespaces() const = 0; /** Set the policy for namespace copy */ virtual void setPreserveNamespaces(bool value) = 0; /** Get the policy for namespace copy */ virtual bool getPreserveNamespaces() const = 0; /** Set the revalidation mode */ virtual void setRevalidationMode(DocumentCache::ValidationMode mode) = 0; /** Get the revalidation mode */ virtual DocumentCache::ValidationMode getRevalidationMode() const = 0; /** Set the listener for warning and trace messages */ virtual void setMessageListener(MessageListener *listener) = 0; /** Gets the listener for warning and trace messages */ virtual MessageListener *getMessageListener() const = 0; /** Set the module */ virtual void setModule(XQQuery *module) = 0; /** Get the module */ virtual XQQuery *getModule() const = 0; ///////////////////////////////////////// // XQilla context specific accessors // ///////////////////////////////////////// /** * Gets whether document projection is enabled. * * Document projection is an optimisation that uses query analysis * to remove sub-trees from documents that aren't needed by the * query. This results in substantially smaller memory usage and * faster query times, but means that any subsequent querying on the * results of an initial query can be wrong. * * If you are hoping to perform further queries on the results of a * query, you should turn document projection off to avoid incorrect * results. */ virtual bool getProjection() const = 0; /** * Sets whether document projection is enabled. Document projection * can be enabled or disabled at compile time, as well as overridden * at runtime. By default document projection is enabled unless query * complilation is unable to guarentee its correctness. * * Document projection is an optimisation that uses query analysis * to remove sub-trees from documents that aren't needed by the * query. This results in substantially smaller memory usage and * faster query times, but means that any subsequent querying on the * results of an initial query can be wrong. * * If you are hoping to perform further queries on the results of a * query, you should turn document projection off to avoid incorrect * results. */ virtual void setProjection(bool enabled) = 0; virtual bool getDoLintWarnings() const = 0; virtual void setDoLintWarnings(bool enabled) = 0; /** Return a unique name that can be used for a temporary variable */ virtual const XMLCh *allocateTempVarName(const XMLCh *prefix = 0) = 0; /** Get the memory manager */ virtual XPath2MemoryManager* getMemoryManager() const = 0; /** Set the memory manager to the one given */ virtual void setMemoryManager(XPath2MemoryManager* memMgr) = 0; /** Set default full text query case option. */ virtual void setFTCase(FTCaseOption option) = 0; virtual FTCaseOption getFTCase() = 0; }; #endif XQilla-2.3.0/include/xqilla/context/ExternalFunctionResolver.hpp0000644000151400015140000000245411653565523021767 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _EXTERNALFUNCTIONRESOLVER_HPP #define _EXTERNALFUNCTIONRESOLVER_HPP #include class StaticContext; class ExternalFunction; class XQILLA_API ExternalFunctionResolver { public: virtual ~ExternalFunctionResolver() {}; /** Returns an new ExternalFunction object for the given uri, name and number of arguments. The caller is reponsible for deleting the ExternalFunction returned. */ virtual ExternalFunction *resolveExternalFunction(const XMLCh *uri, const XMLCh *name, size_t numArgs, const StaticContext* context) = 0; }; #endif XQilla-2.3.0/include/xqilla/context/VariableStore.hpp0000644000151400015140000000265011653565523017515 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _VARIABLESTORE_HPP #define _VARIABLESTORE_HPP #include #include #include class Result; /** The pure virtual base class for accessing variables at runtime. */ class XQILLA_API VariableStore { public: /** default destructor */ virtual ~VariableStore() {}; /** Looks up the value of a variable by namespace URI and localname pair. */ virtual Result getVar(const XMLCh *namespaceURI, const XMLCh *name) const = 0; /** Fills the vector provided with the uri and localname of the variables in scope */ virtual void getInScopeVariables(std::vector > &variables) const = 0; }; #endif XQilla-2.3.0/include/xqilla/context/DynamicContext.hpp0000644000151400015140000001501711653565523017705 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _DYNAMICCONTEXT_HPP #define _DYNAMICCONTEXT_HPP #include #include class Sequence; class Result; class Item; class URIResolver; class VariableStore; class SequenceBuilder; class UpdateFactory; class RegexGroupStore; class DebugListener; class StackFrame; /// The execution time dynamic context interface class XQILLA_API DynamicContext : public StaticContext { public: virtual ~DynamicContext() {}; virtual DynamicContext *createModuleDynamicContext(const DynamicContext* moduleCtx, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager) const = 0; /** Resets the dynamic context, as if it had never been used */ virtual void clearDynamicContext() = 0; /** Get the context Item */ virtual Item::Ptr getContextItem() const = 0; /** Set the context item to item */ virtual void setContextItem(const Item::Ptr &item) = 0; /** Get the context position */ virtual size_t getContextPosition() const = 0; /** Set the context position */ virtual void setContextPosition(size_t pos) = 0; /** Get the context size */ virtual size_t getContextSize() const = 0; /** Set the context size */ virtual void setContextSize(size_t size) = 0; /** get the variable store */ virtual const VariableStore* getVariableStore() const = 0; /** set the variable store */ virtual void setVariableStore(const VariableStore *store) = 0; /** get the variable store for globally scoped variables */ virtual const VariableStore* getGlobalVariableStore() const = 0; /** set the variable store for globally scoped variables */ virtual void setGlobalVariableStore(const VariableStore *store) = 0; /** set the value of an external global variable with the given uri/localname pair */ virtual void setExternalVariable(const XMLCh *namespaceURI, const XMLCh *name, const Result &value) = 0; /** set the value of an external global variable with the given QName */ virtual void setExternalVariable(const XMLCh *qname, const Result &value) = 0; /** get the regex group store */ virtual const RegexGroupStore* getRegexGroupStore() const = 0; /** set the regex group store */ virtual void setRegexGroupStore(const RegexGroupStore *store) = 0; /** Return the current time */ virtual time_t getCurrentTime() const = 0; /** Set the current time */ virtual void setCurrentTime(time_t newTime) = 0; /** Return the implicit timezone for this system.*/ virtual ATDurationOrDerived::Ptr getImplicitTimezone() const = 0; /** Set the implicit timezone */ virtual void setImplicitTimezone(const ATDurationOrDerived::Ptr &timezoneAsDuration) = 0; ///////////////////////////////////////// // XQilla context specific accessors // ///////////////////////////////////////// /** Register a callback object for resolving URIs. Multiple URIResolver objects can be registered with the DynamicContext at the same time. The most recently added URIResolver will be called first, and if it returns false, subsequent ones will be called - ending in a call to the fallback routines. If "adopt" is false, the DynamicContext will not adopt this object, making the user responsible for making sure that the URIResolver object's lifespan matches or exceeds the life of the DynamicContext. */ virtual void registerURIResolver(URIResolver *resolver, bool adopt) = 0; /** Returns the default URIResolver */ virtual URIResolver *getDefaultURIResolver() const = 0; /** Sets the default URIResolver */ virtual void setDefaultURIResolver(URIResolver *resolver, bool adopt) = 0; /** Set the listener for debug messages */ virtual void setDebugListener(DebugListener *listener) = 0; /** Gets the listener for debug messages */ virtual DebugListener *getDebugListener() const = 0; /** Sets the current stack frame whilst debugging */ virtual void setStackFrame(const StackFrame *frame) = 0; /** Gets the listener for debug messages */ virtual const StackFrame *getStackFrame() const = 0; /** Parse an XML document from the provided InputSource */ virtual Node::Ptr parseDocument(XERCES_CPP_NAMESPACE_QUALIFIER InputSource &srcToUse, const LocationInfo *location = 0, const QueryPathNode *projection = 0) = 0; /** Resolve the given uri (and baseUri) to an XML document. If the uri is relative, the base uri is obtained from the context. */ virtual Sequence resolveDocument(const XMLCh* uri, const LocationInfo *location = 0, const QueryPathNode *projection = 0) = 0; /** Resolve the given uri (and baseUri) to a sequence of Node objects. If the uri is relative, the base uri is obtained from the context. */ virtual Sequence resolveCollection(const XMLCh* uri, const LocationInfo *location = 0, const QueryPathNode *projection = 0) = 0; /** Resolve the default collection to a sequence of Node objects. */ virtual Sequence resolveDefaultCollection(const QueryPathNode *projection = 0) = 0; /** Attempts to put the document specified to the given URI by calling the registered URIResolver objects. Returns whether the operation was successful. */ virtual bool putDocument(const Node::Ptr &document, const XMLCh *uri) = 0; /** Create a new SequenceBuilder, which is used to turn a stream of events into a Sequence. */ virtual SequenceBuilder *createSequenceBuilder() const = 0; /** Creates a new UpdateFactory, used for performing updates. Caller owns the returned object, and should delete it */ virtual UpdateFactory *createUpdateFactory() const = 0; /** Test if the query should be interrupted, and throw if so. */ virtual void testInterrupt() const = 0; }; #endif XQilla-2.3.0/include/xqilla/context/ItemFactory.hpp0000644000151400015140000002026711653565523017205 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* Factory base class */ #ifndef _ITEMFACTORY_HPP #define _ITEMFACTORY_HPP #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include class XQILLA_API ItemFactory : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory { public: virtual ~ItemFactory() {}; /* @name Atomic type factory methods */ virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex(const XMLCh* typeURI, const XMLCh* typeName, bool &isPrimitive) const = 0; virtual void getPrimitiveTypeName(AnyAtomicType::AtomicObjectType type, const XMLCh *&typeURI, const XMLCh *&typeName) const = 0; virtual AnyAtomicType::Ptr createDerivedFromAtomicType(AnyAtomicType::AtomicObjectType typeIndex, const XMLCh* value, const DynamicContext* context) = 0; virtual AnyAtomicType::Ptr createDerivedFromAtomicType(AnyAtomicType::AtomicObjectType typeIndex, const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0; virtual AnyAtomicType::Ptr createDerivedFromAtomicType(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0; /* @name Number factory methods */ virtual ATDoubleOrDerived::Ptr createDouble(const MAPM value, const DynamicContext* context) = 0; virtual ATDoubleOrDerived::Ptr createDouble(const XMLCh* value, const DynamicContext* context) = 0; virtual ATDoubleOrDerived::Ptr createDoubleOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const MAPM value, const DynamicContext* context) = 0; virtual ATDoubleOrDerived::Ptr createDoubleOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0; virtual ATFloatOrDerived::Ptr createFloat(const MAPM value, const DynamicContext* context) = 0; virtual ATFloatOrDerived::Ptr createFloat(const XMLCh* value, const DynamicContext* context) = 0; virtual ATFloatOrDerived::Ptr createFloatOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const MAPM value, const DynamicContext* context) = 0; virtual ATFloatOrDerived::Ptr createFloatOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0; virtual ATDecimalOrDerived::Ptr createInteger(const int value, const DynamicContext* context) = 0; virtual ATDecimalOrDerived::Ptr createInteger(const MAPM value, const DynamicContext* context) = 0; virtual ATDecimalOrDerived::Ptr createInteger(const XMLCh* value, const DynamicContext* context) = 0; virtual ATDecimalOrDerived::Ptr createNonNegativeInteger(const MAPM value, const DynamicContext* context) = 0; virtual ATDecimalOrDerived::Ptr createDecimal(const MAPM value, const DynamicContext* context) = 0; virtual ATDecimalOrDerived::Ptr createDecimal(const XMLCh* value, const DynamicContext* context) = 0; virtual ATDecimalOrDerived::Ptr createDecimalOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const MAPM value, const DynamicContext* context) = 0; virtual ATDecimalOrDerived::Ptr createDecimalOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0; /* @name Date / time factory methods */ virtual ATDateOrDerived::Ptr createDate(const XMLCh* value, const DynamicContext* context) = 0; virtual ATDateOrDerived::Ptr createDateOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0; virtual ATDateTimeOrDerived::Ptr createDateTime(const XMLCh* value, const DynamicContext* context) = 0; virtual ATDateTimeOrDerived::Ptr createDateTimeOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0; virtual ATTimeOrDerived::Ptr createTime(const XMLCh* value, const DynamicContext* context) = 0; virtual ATTimeOrDerived::Ptr createTimeOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0; virtual ATGDayOrDerived::Ptr createGDayOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0; virtual ATGMonthDayOrDerived::Ptr createGMonthDayOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0; virtual ATGMonthOrDerived::Ptr createGMonthOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0; virtual ATGYearMonthOrDerived::Ptr createGYearMonthOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0; virtual ATGYearOrDerived::Ptr createGYearOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0; virtual ATDurationOrDerived::Ptr createDayTimeDuration(const XMLCh* value, const DynamicContext* context) = 0; virtual ATDurationOrDerived::Ptr createDayTimeDuration(const MAPM &seconds, const DynamicContext* context) = 0; virtual ATDurationOrDerived::Ptr createYearMonthDuration(const XMLCh* value, const DynamicContext* context) = 0; virtual ATDurationOrDerived::Ptr createYearMonthDuration(const MAPM &months, const DynamicContext* context) = 0; /* @name Other factory methods */ virtual ATStringOrDerived::Ptr createString(const XMLCh* value, const DynamicContext* context) = 0; virtual ATStringOrDerived::Ptr createStringOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0; virtual ATUntypedAtomic::Ptr createUntypedAtomic(const XMLCh* value, const DynamicContext* context) = 0; virtual ATBooleanOrDerived::Ptr createBoolean(bool value, const DynamicContext* context) = 0; virtual ATBooleanOrDerived::Ptr createBoolean(BoolResult value, const DynamicContext* context) = 0; virtual ATBooleanOrDerived::Ptr createBoolean(const XMLCh* value, const DynamicContext* context) = 0; virtual ATBooleanOrDerived::Ptr createBooleanOrDerived(const XMLCh* typeURI, const XMLCh* typeName, bool value, const DynamicContext* context) = 0; virtual ATBooleanOrDerived::Ptr createBooleanOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0; virtual ATAnyURIOrDerived::Ptr createAnyURI(const XMLCh* value, const DynamicContext* context) = 0; virtual ATQNameOrDerived::Ptr createQName(const XMLCh* uri, const XMLCh* prefix, const XMLCh* name, const DynamicContext* context) = 0; virtual ATQNameOrDerived::Ptr createQNameOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* uri, const XMLCh *prefix, const XMLCh* name, const DynamicContext* context) = 0; }; #endif XQilla-2.3.0/include/xqilla/context/impl/0000755000151400015140000000000011653572443015257 500000000000000XQilla-2.3.0/include/xqilla/context/impl/VariableStoreTemplate.hpp0000644000151400015140000002061111653565523022147 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _VARIABLESTORETEMPLATE_HPP #define _VARIABLESTORETEMPLATE_HPP #include #include #include #include #include #include #include #include template class VarHashEntry; class XPath2MemoryManager; /** This is the wrapper class for the variable store, which implements the lookup and scoping of simple variables. */ template class VariableStoreTemplate { public: typedef Scope MyScope; VariableStoreTemplate(XPath2MemoryManager *memMgr); /** default destructor */ ~VariableStoreTemplate(); void clear(); void addScope(typename MyScope::Type type); void addScope(MyScope *scope); /** Removes the top level scope from the store. To be called at the end of methods to implement scoping. */ void removeScope(); /** Removes the top level scope from the store, and returns it. The scope must have release called on it, otherwise it will leak memory. */ MyScope *popScope(); void setCurrentScope(MyScope *scope); /** Declares and/or sets a variable in the global scope. */ void setGlobalVar(const XMLCh* namespaceURI, const XMLCh* name, const TYPE &value); /** Deletes a variable from the global scope. */ void delGlobalVar(const XMLCh* namespaceURI, const XMLCh* name); /** Gets a variable from the global scope */ VarHashEntry* getGlobalVar(const XMLCh* namespaceURI, const XMLCh* name) const; /** Declare a var in the top level scope (A full set of these namespaceURI/name pair methods should be made) */ void declareVar(const XMLCh* namespaceURI, const XMLCh* name, const TYPE &value); /** Declares and/or sets a variable in the top level scope. */ void setVar(const XMLCh* namespaceURI, const XMLCh* name, const TYPE &value); /** Looks up the value of a variable in the current scope, using ident as an qname. Returns the VarHashEntry for the variable, or null if it doesn't exist*/ VarHashEntry* getVar(const XMLCh* namespaceURI, const XMLCh* name) const; /** Deletes a variable from the current scope. */ void delVar(const XMLCh* namespaceURI, const XMLCh* name); const MyScope *getCurrentScope() const { return _current; } MyScope *getCurrentScope() { return _current; } const MyScope *getGlobalScope() const { return _global; } const XMLCh *lookUpNamespace(unsigned int nsID) const { return _uriPool.getValueForId(nsID); } private: /** find routine which returns the scope in the hash table which contains the identifiers, or the current/global one if it can't be found. */ MyScope* find(unsigned int nsID, const XMLCh* name) const; XERCES_CPP_NAMESPACE_QUALIFIER XMLStringPool _uriPool; XPath2MemoryManager* _memMgr; MyScope *_global, *_current; }; template VariableStoreTemplate::VariableStoreTemplate(XPath2MemoryManager* memMgr) : _uriPool(17, memMgr) { _memMgr=memMgr; _global=new (_memMgr) MyScope(_memMgr, MyScope::GLOBAL_SCOPE); _current=NULL; } template VariableStoreTemplate::~VariableStoreTemplate() { clear(); delete _global; } template void VariableStoreTemplate::clear() { // Remove all the scopes while(_current) { removeScope(); } // Clear the global scope _global->clear(); } template void VariableStoreTemplate::addScope(typename MyScope::Type type) { addScope(new (_memMgr) MyScope(_memMgr, type)); } template void VariableStoreTemplate::addScope(MyScope *scope) { scope->setNext(_current); setCurrentScope(scope); } template void VariableStoreTemplate::setCurrentScope(MyScope *scope) { _current = scope; } template void VariableStoreTemplate::removeScope() { delete popScope(); } template typename VariableStoreTemplate::MyScope *VariableStoreTemplate::popScope() { assert( _current!=NULL ); MyScope *result = _current; _current = _current->getNext(); return result; } template void VariableStoreTemplate::setGlobalVar(const XMLCh* namespaceURI, const XMLCh* name, const TYPE &value) { if(!_uriPool.exists(namespaceURI)) namespaceURI=_memMgr->getPooledString(namespaceURI); unsigned int nsID=_uriPool.addOrFind(namespaceURI); VarHashEntry* result=_global->get(nsID, name); if(result) result->setValue(value); else _global->put(nsID, name, new (_memMgr) VarHashEntryImpl(value)); } template void VariableStoreTemplate::setVar(const XMLCh* namespaceURI, const XMLCh* name, const TYPE &value) { if(!_uriPool.exists(namespaceURI)) namespaceURI=_memMgr->getPooledString(namespaceURI); unsigned int nsID=_uriPool.addOrFind(namespaceURI); MyScope* scope=find(nsID, name); VarHashEntry* result = scope->get(nsID, name); if(result) result->setValue(value); else scope->put(nsID, name, new (_memMgr) VarHashEntryImpl(value)); } template void VariableStoreTemplate::declareVar(const XMLCh* namespaceURI, const XMLCh* name, const TYPE &value) { if(!_uriPool.exists(namespaceURI)) namespaceURI=_memMgr->getPooledString(namespaceURI); unsigned int nsID=_uriPool.addOrFind(namespaceURI); _current->put(nsID, name, new (_memMgr) VarHashEntryImpl(value)); } /** Returns a null VarHashEntry if unsuccessful */ template VarHashEntry* VariableStoreTemplate::getVar(const XMLCh* namespaceURI, const XMLCh* name) const { unsigned int nsID=_uriPool.getId(namespaceURI); // if the namespace is not in the map, the variable is not there neither if(nsID!=0) return find(nsID, name)->get(nsID, name); return NULL; } template VarHashEntry* VariableStoreTemplate::getGlobalVar(const XMLCh* namespaceURI, const XMLCh* name) const { unsigned int nsID=_uriPool.getId(namespaceURI); // if the namespace is not in the map, the variable is not there neither if(nsID!=0) return _global->get(nsID, name); return 0; } template void VariableStoreTemplate::delVar( const XMLCh* namespaceURI, const XMLCh* name) { unsigned int nsID=_uriPool.getId(namespaceURI); // if the namespace is not in the map, the variable is not there neither if(nsID!=0) find(nsID, name)->remove(nsID, name); } template void VariableStoreTemplate::delGlobalVar( const XMLCh* namespaceURI, const XMLCh* name) { unsigned int nsID=_uriPool.getId(namespaceURI); // if the namespace is not in the map, the variable is not there neither if(nsID!=0) _global->remove(nsID, name); } template typename VariableStoreTemplate::MyScope* VariableStoreTemplate::find(unsigned int nsID, const XMLCh* name) const { // Check the local scopes MyScope* index=_current; while(index) { if(index->get(nsID, name)!=NULL) return index; if(index->getType() == MyScope::LOCAL_SCOPE) break; index=index->getNext(); } // Check the global scope if(_global->get(nsID, name)!=NULL) return _global; // If we can't find it anywhere, then return the top level scope. // This lets us set it in the correct place. // For gets, we could return any scope. return _current==NULL?_global:_current; } #endif XQilla-2.3.0/include/xqilla/context/impl/VarHashEntryImpl.hpp0000644000151400015140000000333011653565523021110 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _VARHASHENTRYIMPL_HPP #define _VARHASHENTRYIMPL_HPP #include #include #include /** The class that stores the values of the variables. */ template class VarHashEntryImpl : public VarHashEntry { public: /// Meaningfull constructor VarHashEntryImpl(const TYPE &value); /** Gets the value of the variable (overload in derived classes for special behaviour) */ virtual const TYPE &getValue() const; /** Sets the value of the variable (overload in derived classes for special behaviour) */ virtual void setValue(const TYPE &value); protected: TYPE _value; }; template VarHashEntryImpl::VarHashEntryImpl(const TYPE &value) : _value(value) { } template const TYPE &VarHashEntryImpl::getValue() const { return _value; } template void VarHashEntryImpl::setValue(const TYPE &value) { _value = value; } #endif XQilla-2.3.0/include/xqilla/context/impl/XQDynamicContextImpl.hpp0000644000151400015140000006137711653565523021753 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQDYNAMICCONTEXTIMPL_H #define XQDYNAMICCONTEXTIMPL_H #include #include #include #include #include #include class XQILLA_API XQDynamicContextImpl : public DynamicContext { public: XQDynamicContextImpl(XQillaConfiguration *conf, const StaticContext *staticContext, VarStoreImpl *defaultVarStore, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr); ~XQDynamicContextImpl(); virtual DynamicContext *createModuleContext(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager) const; virtual DynamicContext *createModuleDynamicContext(const DynamicContext* moduleCtx, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager) const; virtual DynamicContext *createDynamicContext(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager) const; virtual DynamicContext *createDebugQueryContext(const Item::Ptr &contextItem, size_t contextPosition, size_t contextSize, const VariableStore *variables, const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver *nsResolver, const XMLCh *defaultElementNS, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager) const; virtual XQillaConfiguration *getConfiguration() const; virtual XQilla::Language getLanguage() const; ////////////////////////////////////// // XQuery Static Context Accessors // ////////////////////////////////////// /** * Overrides the inherited method, and disowns any output * document that was created with the previous memory manager. */ virtual void setMemoryManager(XPath2MemoryManager *memMgr); /** Binds a prefix to a namespace URI */ virtual void setNamespaceBinding(const XMLCh* prefix, const XMLCh* uri); /** Set the policy for boundary space */ virtual void setPreserveBoundarySpace(bool value); /** Get the policy for boundary space */ virtual bool getPreserveBoundarySpace() const; ////////////////////////////////////// // XQuery Dynamic Context Accessors // ////////////////////////////////////// virtual void testInterrupt() const; ////////////////////////////////// // Dynamic Context Accessors // ////////////////////////////////// /** Resets the dynamic context, as if it had never been used */ virtual void clearDynamicContext(); virtual SequenceBuilder *createSequenceBuilder() const; /** Returns the ItemFactory for this context, which is used to create XQilla items and other objects. */ virtual ItemFactory *getItemFactory() const; /** Sets the ItemFactory for this context */ virtual void setItemFactory(ItemFactory *factory); /** Get the context Item */ virtual Item::Ptr getContextItem() const; /** Set the context item to item */ virtual void setContextItem(const Item::Ptr &item); /** Get the context position */ virtual size_t getContextPosition() const; /** Set the context position */ virtual void setContextPosition(size_t pos); /** Get the context size */ virtual size_t getContextSize() const; /** Set the context size */ virtual void setContextSize(size_t size); virtual const VariableStore* getVariableStore() const; virtual void setVariableStore(const VariableStore *store); virtual const VariableStore* getGlobalVariableStore() const; virtual void setGlobalVariableStore(const VariableStore *store); virtual void setExternalVariable(const XMLCh *namespaceURI, const XMLCh *name, const Result &value); virtual void setExternalVariable(const XMLCh *qname, const Result &value); virtual const RegexGroupStore* getRegexGroupStore() const; virtual void setRegexGroupStore(const RegexGroupStore *store); /** Return the current time */ virtual time_t getCurrentTime() const; /** Set the current time */ virtual void setCurrentTime(time_t newTime); /** Return the implicit timezone for this system.*/ virtual ATDurationOrDerived::Ptr getImplicitTimezone() const; /** Set the implicit timezone */ virtual void setImplicitTimezone(const ATDurationOrDerived::Ptr &timezoneAsDuration); virtual void registerURIResolver(URIResolver *resolver, bool adopt); virtual URIResolver *getDefaultURIResolver() const; virtual void setDefaultURIResolver(URIResolver *resolver, bool adopt); virtual void setDebugListener(DebugListener *listener); virtual DebugListener *getDebugListener() const; virtual void setStackFrame(const StackFrame *frame); virtual const StackFrame *getStackFrame() const; virtual Node::Ptr parseDocument(XERCES_CPP_NAMESPACE_QUALIFIER InputSource &srcToUse, const LocationInfo *location, const QueryPathNode *projection); virtual Sequence resolveDocument(const XMLCh* uri, const LocationInfo *location, const QueryPathNode *projection); virtual Sequence resolveCollection(const XMLCh* uri, const LocationInfo *location, const QueryPathNode *projection); virtual Sequence resolveDefaultCollection(const QueryPathNode *projection); virtual bool putDocument(const Node::Ptr &document, const XMLCh *uri); virtual UpdateFactory *createUpdateFactory() const; ////////////////////////////////// // Static Context Accessors // ////////////////////////////////// virtual const StaticType &getContextItemType() const; virtual void setContextItemType(const StaticType &st); virtual bool getXPath1CompatibilityMode() const; virtual void setXPath1CompatibilityMode(bool newMode); virtual const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver* getNSResolver() const; virtual const XMLCh* getUriBoundToPrefix(const XMLCh* prefix, const LocationInfo *location) const; virtual const XMLCh* getPrefixBoundToUri(const XMLCh* uri) const; virtual void setNSResolver(const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver* resolver); virtual const XMLCh* getDefaultElementAndTypeNS() const; virtual void setDefaultElementAndTypeNS(const XMLCh* newNS); virtual const XMLCh* getDefaultFuncNS() const; virtual void setDefaultFuncNS(const XMLCh* newNS); virtual DocumentCache* getDocumentCache() const; virtual void setDocumentCache(DocumentCache* docCache); virtual bool isTypeOrDerivedFromType(const XMLCh* const uri, const XMLCh* const typeName, const XMLCh* const uriToCheck, const XMLCh* const typeNameToCheck) const; virtual void setXMLEntityResolver(XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityResolver* const handler); virtual XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityResolver* getXMLEntityResolver() const; virtual void setModuleResolver(ModuleResolver *resolver); virtual ModuleResolver *getModuleResolver() const; virtual VectorOfStrings* resolveModuleURI(const XMLCh* uri) const; virtual void addSchemaLocation(const XMLCh* uri, VectorOfStrings* locations, const LocationInfo *location); virtual void setExternalFunctionResolver(ExternalFunctionResolver *resolver); virtual ExternalFunctionResolver *getExternalFunctionResolver() const; virtual VariableTypeStore* getVariableTypeStore(); virtual void addTemplate(XQUserFunction *tp); virtual const XQUserFunction *lookUpNamedTemplate(const XMLCh *uri, const XMLCh *name) const; virtual const UserFunctions &getTemplateRules() const; virtual void addCustomFunction(FuncFactory *func); virtual void removeCustomFunction(FuncFactory *func); virtual ASTNode *lookUpFunction(const XMLCh *uri, const XMLCh* name, const VectorOfASTNodes &v, const LocationInfo *location) const; virtual void addExternalFunction(const ExternalFunction *func); virtual const ExternalFunction *lookUpExternalFunction(const XMLCh *uri, const XMLCh *name, size_t numArgs) const; /** Get the implementation for the specified collation */ virtual Collation* getCollation(const XMLCh* const URI, const LocationInfo *location) const; /** Add a collation */ virtual void addCollation(Collation* collation); /** Get the default collation */ virtual Collation* getDefaultCollation(const LocationInfo *location) const; /** Specify which collation is the default one */ virtual void setDefaultCollation(const XMLCh* const URI); /** Return the construction mode */ virtual ConstructionMode getConstructionMode() const; /** Set the construction mode */ virtual void setConstructionMode(ConstructionMode newMode); /** Return the ordering method for node sets */ virtual NodeSetOrdering getNodeSetOrdering() const; /** Set the ordering method for node sets */ virtual void setNodeSetOrdering(NodeSetOrdering newOrder); /** Return the base URI */ virtual const XMLCh* getBaseURI() const; /** Set the base URI */ virtual void setBaseURI(const XMLCh* newURI); /** Return the default ordering mode for FLWOR blocks */ virtual FLWOROrderingMode getDefaultFLWOROrderingMode() const; /** Set the default ordering mode for FLWOR blocks */ virtual void setDefaultFLWOROrderingMode(FLWOROrderingMode newMode); /** Set the policy for namespace inheritance */ virtual void setInheritNamespaces(bool value); /** Get the policy for namespace inheritance */ virtual bool getInheritNamespaces() const; /** Set the policy for namespace copy */ virtual void setPreserveNamespaces(bool value); /** Get the policy for namespace copy */ virtual bool getPreserveNamespaces() const; /** Set the revalidation mode */ virtual void setRevalidationMode(DocumentCache::ValidationMode mode); /** Get the revalidation mode */ virtual DocumentCache::ValidationMode getRevalidationMode() const; /** Set the listener for warning and trace messages */ virtual void setMessageListener(MessageListener *listener); /** Gets the listener for warning and trace messages */ virtual MessageListener *getMessageListener() const; virtual void setModule(XQQuery *module); virtual XQQuery *getModule() const; virtual void setFTCase(FTCaseOption option); virtual FTCaseOption getFTCase(); ///////////////////////////////////////// // XQilla context specific accessors // ///////////////////////////////////////// virtual bool getProjection() const { return _projection; } virtual void setProjection(bool enabled) { _projection = enabled; } virtual bool getDoLintWarnings() const; virtual void setDoLintWarnings(bool enabled); virtual const XMLCh *allocateTempVarName(const XMLCh *prefix = 0); /** Get the memory manager */ virtual XPath2MemoryManager* getMemoryManager() const; protected: XQillaConfiguration *_conf; const StaticContext *_staticContext; // The memory manager used to create this context XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* _createdWith; // used for managing the memory of objects inside this context ProxyMemoryManager _internalMM; /** In-scope namespaces. This is a set of (prefix, URI) pairs. * The in-scope namespaces are used for resolving prefixes used * in QNames within the expression * THIS OUGHT TO BE IN THE STATIC CONTEXT - jpcs */ const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver* _nsResolver; /** Default collation. This is a collation. This collation is used by * string comparison functions when no explicit collation is specified. * THIS OUGHT TO BE IN THE STATIC CONTEXT - jpcs */ const XMLCh* _defaultCollation; /** Default element/type namespace. This is a namespace URI or "none". This * namespace is used for any unprefixed QName appearing in a * position where an element or type name is expected. * THIS OUGHT TO BE IN THE STATIC CONTEXT - jpcs */ const XMLCh* _defaultElementNS; /** The context item is the item currently being processed. */ Item::Ptr _contextItem; /** The context position is the position of the context item within * the sequence of items currently being processed. */ size_t _contextPosition; /** The context size is the number of items in the sequence of * items currently being processed. */ size_t _contextSize; /** In-scope variable values. This is a set of (QName, Sequence) pairs. * It defines the set of variables that have been declared and are * available for reference within the expression. The QName * represents the name of the variable, and the Sequence represents its * value */ VarStoreImpl *_defaultVarStore; bool _defaultVarStoreOwned; const VariableStore *_varStore; const VariableStore *_globalVarStore; const RegexGroupStore *_regexStore; /** Current date and time. This information represents an * implementation-dependent point in time during processing of a query * or transformation */ time_t _currentTime; /** Implicit timezone. This is the timezone to be used when a date, * time, or dateTime value that does not have a timezone is used in a * comparison or in any other operation. This value is an instance of * xdt:dayTimeDuration */ ATDurationOrDerived::Ptr _implicitTimezone; /** For each atomic type in the in-scope type definitions, there is * a constructor function in the in-scope functions. Constructor * functions are discussed in 3.10.4 Constructor Functions */ ItemFactory* _itemFactory; bool _itemFactoryOwned; struct ResolverEntry { ResolverEntry() : resolver(0), adopt(false) {} ResolverEntry(URIResolver *r, bool a) : resolver(r), adopt(a) {} URIResolver *resolver; bool adopt; }; /// A stack of URIResolver pointers std::vector > _resolvers; ResolverEntry _defaultResolver; DebugListener *_debugListener; const StackFrame *_stackFrame; /** Contains the XMLGrammarPool of the StaticContext, and is used to * load xml documents for resolveCollection and resolveDocument */ DocumentCache* _docCache; /** The message listener, for warnings and trace messages */ MessageListener *_messageListener; bool _projection; // used for memory management XPath2MemoryManager* _memMgr; }; inline void XQDynamicContextImpl::setContextItemType(const StaticType &) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline void XQDynamicContextImpl::setXPath1CompatibilityMode(bool newMode) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline void XQDynamicContextImpl::setDefaultFuncNS(const XMLCh* newNS) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline void XQDynamicContextImpl::setBaseURI(const XMLCh* newURI) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline void XQDynamicContextImpl::addTemplate(XQUserFunction *tp) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline void XQDynamicContextImpl::addCustomFunction(FuncFactory *func) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline void XQDynamicContextImpl::removeCustomFunction(FuncFactory *func) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline void XQDynamicContextImpl::addExternalFunction(const ExternalFunction *func) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline void XQDynamicContextImpl::addCollation(Collation* collation) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline void XQDynamicContextImpl::addSchemaLocation(const XMLCh* uri, VectorOfStrings* locations, const LocationInfo *location) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline VariableTypeStore* XQDynamicContextImpl::getVariableTypeStore() { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); return 0; } inline void XQDynamicContextImpl::setConstructionMode(StaticContext::ConstructionMode newMode) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline void XQDynamicContextImpl::setPreserveBoundarySpace(bool value) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline void XQDynamicContextImpl::setDefaultFLWOROrderingMode(StaticContext::FLWOROrderingMode newMode) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline void XQDynamicContextImpl::setInheritNamespaces(bool value) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline void XQDynamicContextImpl::setPreserveNamespaces(bool value) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline void XQDynamicContextImpl::setNodeSetOrdering(NodeSetOrdering newOrder) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline void XQDynamicContextImpl::setModuleResolver(ModuleResolver *resolver) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline void XQDynamicContextImpl::setExternalFunctionResolver(ExternalFunctionResolver *resolver) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline void XQDynamicContextImpl::setRevalidationMode(DocumentCache::ValidationMode mode) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline const XMLCh *XQDynamicContextImpl::allocateTempVarName(const XMLCh *prefix) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); return 0; } inline void XQDynamicContextImpl::setNamespaceBinding(const XMLCh* prefix, const XMLCh* uri) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline void XQDynamicContextImpl::setDoLintWarnings(bool enabled) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline void XQDynamicContextImpl::setModule(XQQuery *module) { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("You cannot change the static context when using a proxying dynamic context")); } inline const StaticType &XQDynamicContextImpl::getContextItemType() const { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("The static context is not available from a proxying dynamic context")); } inline const XMLCh* XQDynamicContextImpl::getDefaultFuncNS() const { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("The static context is not available from a proxying dynamic context")); } inline StaticContext::NodeSetOrdering XQDynamicContextImpl::getNodeSetOrdering() const { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("The static context is not available from a proxying dynamic context")); } inline ModuleResolver * XQDynamicContextImpl::getModuleResolver() const { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("The static context is not available from a proxying dynamic context")); } inline ExternalFunctionResolver * XQDynamicContextImpl::getExternalFunctionResolver() const { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("The static context is not available from a proxying dynamic context")); } inline ASTNode* XQDynamicContextImpl::lookUpFunction(const XMLCh* uri, const XMLCh* name, const VectorOfASTNodes& v, const LocationInfo *location) const { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("The static context is not available from a proxying dynamic context")); } inline const ExternalFunction *XQDynamicContextImpl::lookUpExternalFunction(const XMLCh *uri, const XMLCh *name, size_t numArgs) const { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("The static context is not available from a proxying dynamic context")); } inline StaticContext::FLWOROrderingMode XQDynamicContextImpl::getDefaultFLWOROrderingMode() const { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("The static context is not available from a proxying dynamic context")); } inline bool XQDynamicContextImpl::getXPath1CompatibilityMode() const { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("The static context is not available from a proxying dynamic context")); } inline bool XQDynamicContextImpl::getPreserveBoundarySpace() const { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("The static context is not available from a proxying dynamic context")); } inline DocumentCache::ValidationMode XQDynamicContextImpl::getRevalidationMode() const { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("The static context is not available from a proxying dynamic context")); } inline bool XQDynamicContextImpl::getDoLintWarnings() const { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("The static context is not available from a proxying dynamic context")); } inline XQQuery *XQDynamicContextImpl::getModule() const { XQThrow2(ContextException,X("XQDynamicContextImpl"), X("The static context is not available from a proxying dynamic context")); } inline void XQDynamicContextImpl::setFTCase(FTCaseOption option){ XQThrow2(ContextException,X("XQDynamicContextImpl"), X("The static context is not available from a proxying dynamic context")); } inline XQDynamicContextImpl::FTCaseOption XQDynamicContextImpl::getFTCase(){ XQThrow2(ContextException,X("XQDynamicContextImpl"), X("The static context is not available from a proxying dynamic context")); } inline XQilla::Language XQDynamicContextImpl::getLanguage() const { return _staticContext->getLanguage(); } inline const XMLCh* XQDynamicContextImpl::getBaseURI() const { return _staticContext->getBaseURI(); } inline Collation* XQDynamicContextImpl::getCollation(const XMLCh* URI, const LocationInfo *location) const { return _staticContext->getCollation(URI, location); } inline bool XQDynamicContextImpl::isTypeOrDerivedFromType(const XMLCh* uri, const XMLCh* typeName, const XMLCh* uriToCheck, const XMLCh* typeNameToCheck) const { return _staticContext->isTypeOrDerivedFromType(uri, typeName, uriToCheck, typeNameToCheck); } inline bool XQDynamicContextImpl::getInheritNamespaces() const { return _staticContext->getInheritNamespaces(); } inline bool XQDynamicContextImpl::getPreserveNamespaces() const { return _staticContext->getPreserveNamespaces(); } inline StaticContext::ConstructionMode XQDynamicContextImpl::getConstructionMode() const { return _staticContext->getConstructionMode(); } inline const UserFunctions &XQDynamicContextImpl::getTemplateRules() const { return _staticContext->getTemplateRules(); } inline const XQUserFunction *XQDynamicContextImpl::lookUpNamedTemplate(const XMLCh *uri, const XMLCh *name) const { return _staticContext->lookUpNamedTemplate(uri, name); } #endif XQilla-2.3.0/include/xqilla/context/impl/ItemFactoryImpl.hpp0000644000151400015140000001656511653565523020776 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef ITEMFACTORYIMPL_HPP #define ITEMFACTORYIMPL_HPP #include #include class DatatypeLookup; class DocumentCache; class XQILLA_API ItemFactoryImpl : public ItemFactory { public: ItemFactoryImpl(const DocumentCache* dc, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr); ItemFactoryImpl(DatatypeLookup *datatypeLookup); virtual ~ItemFactoryImpl(); /* @name Atomic type factory methods */ virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex(const XMLCh* typeURI, const XMLCh* typeName, bool &isPrimitive) const; virtual void getPrimitiveTypeName(AnyAtomicType::AtomicObjectType type, const XMLCh *&typeURI, const XMLCh *&typeName) const; virtual AnyAtomicType::Ptr createDerivedFromAtomicType(AnyAtomicType::AtomicObjectType typeIndex, const XMLCh* value, const DynamicContext* context); virtual AnyAtomicType::Ptr createDerivedFromAtomicType(AnyAtomicType::AtomicObjectType typeIndex, const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context); virtual AnyAtomicType::Ptr createDerivedFromAtomicType(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context); /* @name Number factory methods */ virtual ATDoubleOrDerived::Ptr createDouble(const MAPM value, const DynamicContext* context); virtual ATDoubleOrDerived::Ptr createDouble(const XMLCh* value, const DynamicContext* context); virtual ATDoubleOrDerived::Ptr createDoubleOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const MAPM value, const DynamicContext* context); virtual ATDoubleOrDerived::Ptr createDoubleOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context); virtual ATFloatOrDerived::Ptr createFloat(const MAPM value, const DynamicContext* context); virtual ATFloatOrDerived::Ptr createFloat(const XMLCh* value, const DynamicContext* context); virtual ATFloatOrDerived::Ptr createFloatOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const MAPM value, const DynamicContext* context); virtual ATFloatOrDerived::Ptr createFloatOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context); virtual ATDecimalOrDerived::Ptr createInteger(const int value, const DynamicContext* context); virtual ATDecimalOrDerived::Ptr createInteger(const MAPM value, const DynamicContext* context); virtual ATDecimalOrDerived::Ptr createInteger(const XMLCh* value, const DynamicContext* context); virtual ATDecimalOrDerived::Ptr createNonNegativeInteger(const MAPM value, const DynamicContext* context); virtual ATDecimalOrDerived::Ptr createDecimal(const MAPM value, const DynamicContext* context); virtual ATDecimalOrDerived::Ptr createDecimal(const XMLCh* value, const DynamicContext* context); virtual ATDecimalOrDerived::Ptr createDecimalOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const MAPM value, const DynamicContext* context); virtual ATDecimalOrDerived::Ptr createDecimalOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context); /* @name Date / time factory methods */ virtual ATDateOrDerived::Ptr createDate(const XMLCh* value, const DynamicContext* context); virtual ATDateOrDerived::Ptr createDateOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context); virtual ATDateTimeOrDerived::Ptr createDateTime(const XMLCh* value, const DynamicContext* context); virtual ATDateTimeOrDerived::Ptr createDateTimeOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context); virtual ATTimeOrDerived::Ptr createTime(const XMLCh* value, const DynamicContext* context); virtual ATTimeOrDerived::Ptr createTimeOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context); virtual ATGDayOrDerived::Ptr createGDayOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context); virtual ATGMonthDayOrDerived::Ptr createGMonthDayOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context); virtual ATGMonthOrDerived::Ptr createGMonthOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context); virtual ATGYearMonthOrDerived::Ptr createGYearMonthOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context); virtual ATGYearOrDerived::Ptr createGYearOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context); virtual ATDurationOrDerived::Ptr createDayTimeDuration(const XMLCh* value, const DynamicContext* context); virtual ATDurationOrDerived::Ptr createDayTimeDuration(const MAPM &seconds, const DynamicContext* context); virtual ATDurationOrDerived::Ptr createYearMonthDuration(const XMLCh* value, const DynamicContext* context); virtual ATDurationOrDerived::Ptr createYearMonthDuration(const MAPM &months, const DynamicContext* context); /* @name Other factory methods */ virtual ATStringOrDerived::Ptr createString(const XMLCh* value, const DynamicContext* context); virtual ATStringOrDerived::Ptr createStringOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context); virtual ATUntypedAtomic::Ptr createUntypedAtomic(const XMLCh* value, const DynamicContext* context); virtual ATBooleanOrDerived::Ptr createBoolean(bool value, const DynamicContext* context); virtual ATBooleanOrDerived::Ptr createBoolean(BoolResult value, const DynamicContext* context); virtual ATBooleanOrDerived::Ptr createBoolean(const XMLCh* value, const DynamicContext* context); virtual ATBooleanOrDerived::Ptr createBooleanOrDerived(const XMLCh* typeURI, const XMLCh* typeName, bool value, const DynamicContext* context); virtual ATBooleanOrDerived::Ptr createBooleanOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context); virtual ATAnyURIOrDerived::Ptr createAnyURI(const XMLCh* value, const DynamicContext* context); virtual ATQNameOrDerived::Ptr createQName(const XMLCh* uri, const XMLCh* prefix, const XMLCh* name, const DynamicContext* context); virtual ATQNameOrDerived::Ptr createQNameOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *uri, const XMLCh *prefix, const XMLCh *name, const DynamicContext* context); protected: DatatypeLookup *datatypeLookup_; }; #endif XQilla-2.3.0/include/xqilla/context/impl/VarStoreImpl.hpp0000644000151400015140000000537511653565523020312 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _VARSTOREIMPL_HPP #define _VARSTOREIMPL_HPP #include #include #include #include #include class DynamicContext; class StaticAnalysis; /** Default implementation of VariableStore that stores variable values in a hash map, and proxies calls to a parent VariableStore if the value is not found in it's map. */ class XQILLA_API VarStoreImpl : public VariableStore { public: VarStoreImpl(XPath2MemoryManager *mm, const VariableStore *parent = 0); VarStoreImpl(const VarStoreImpl &other, XPath2MemoryManager *mm); ~VarStoreImpl(); virtual Result getVar(const XMLCh *namespaceURI, const XMLCh *name) const; virtual void getInScopeVariables(std::vector > &variables) const; void setVar(const XMLCh *namespaceURI, const XMLCh *name, const Result &value, unsigned int readCount = ResultBufferImpl::UNLIMITED_COUNT); void clear(); void cacheVariableStore(const StaticAnalysis &src, const VariableStore *toCache); private: class VarEntry { public: VarEntry(const XMLCh *uri, const XMLCh *name, const Result &result, unsigned int readCount, VarEntry *prev); VarEntry(const XMLCh *uri, const XMLCh *name, const ResultBuffer &buffer, VarEntry *prev); const XMLCh *uri, *name; ResultBuffer buffer; VarEntry *prev; }; VarEntry *store_; const VariableStore *parent_; XPath2MemoryManager *mm_; }; class XQILLA_API SingleVarStore : public VariableStore { public: SingleVarStore(); virtual Result getVar(const XMLCh *namespaceURI, const XMLCh *name) const; virtual void getInScopeVariables(std::vector > &variables) const; void setAsVariableStore(const XMLCh *namespaceURI, const XMLCh *name, DynamicContext *context); void unsetAsVariableStore(DynamicContext *context); Sequence value; private: const XMLCh *uri_, *name_; const VariableStore *parent_; }; #endif XQilla-2.3.0/include/xqilla/context/impl/XQContextImpl.hpp0000644000151400015140000005036211653565523020436 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQCONTEXTIMPL_H #define XQCONTEXTIMPL_H #include #include #include #include #include #include #include #include #include class XQillaConfiguration; class FunctionLookup; class XQILLA_API XQContextImpl : public DynamicContext { public: XQContextImpl(XQillaConfiguration *conf, XQilla::Language language, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager); ~XQContextImpl(); virtual DynamicContext *createModuleContext(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager) const; virtual DynamicContext *createModuleDynamicContext(const DynamicContext* moduleCtx, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager) const; virtual DynamicContext *createDynamicContext(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager) const; virtual DynamicContext *createDebugQueryContext(const Item::Ptr &contextItem, size_t contextPosition, size_t contextSize, const VariableStore *variables, const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver *nsResolver, const XMLCh *defaultElementNS, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager) const; virtual XQillaConfiguration *getConfiguration() const { return _conf; } virtual XQilla::Language getLanguage() const; ////////////////////////////////////// // XQuery Static Context Accessors // ////////////////////////////////////// /** * Overrides the inherited method, and disowns any output * document that was created with the previous memory manager. */ virtual void setMemoryManager(XPath2MemoryManager *memMgr); /** Binds a prefix to a namespace URI */ virtual void setNamespaceBinding(const XMLCh* prefix, const XMLCh* uri); /** Set the policy for boundary space */ virtual void setPreserveBoundarySpace(bool value); /** Get the policy for boundary space */ virtual bool getPreserveBoundarySpace() const; ////////////////////////////////////// // XQuery Dynamic Context Accessors // ////////////////////////////////////// virtual void testInterrupt() const; ////////////////////////////////// // Dynamic Context Accessors // ////////////////////////////////// /** Resets the dynamic context, as if it had never been used */ virtual void clearDynamicContext(); virtual SequenceBuilder *createSequenceBuilder() const; /** Returns the ItemFactory for this context, which is used to create XQilla items and other objects. */ virtual ItemFactory *getItemFactory() const; /** Sets the ItemFactory for this context */ virtual void setItemFactory(ItemFactory *factory); /** Get the context Item */ virtual Item::Ptr getContextItem() const; /** Set the context item to item */ virtual void setContextItem(const Item::Ptr &item); /** Get the context position */ virtual size_t getContextPosition() const; /** Set the context position */ virtual void setContextPosition(size_t pos); /** Get the context size */ virtual size_t getContextSize() const; /** Set the context size */ virtual void setContextSize(size_t size); virtual const VariableStore* getVariableStore() const; virtual void setVariableStore(const VariableStore *store); virtual const VariableStore* getGlobalVariableStore() const; virtual void setGlobalVariableStore(const VariableStore *store); virtual void setExternalVariable(const XMLCh *namespaceURI, const XMLCh *name, const Result &value); virtual void setExternalVariable(const XMLCh *qname, const Result &value); virtual const RegexGroupStore* getRegexGroupStore() const; virtual void setRegexGroupStore(const RegexGroupStore *store); /** Return the current time */ virtual time_t getCurrentTime() const; /** Set the current time */ virtual void setCurrentTime(time_t newTime); /** Return the implicit timezone for this system.*/ virtual ATDurationOrDerived::Ptr getImplicitTimezone() const; /** Set the implicit timezone */ virtual void setImplicitTimezone(const ATDurationOrDerived::Ptr &timezoneAsDuration); virtual void registerURIResolver(URIResolver *resolver, bool adopt); virtual URIResolver *getDefaultURIResolver() const; virtual void setDefaultURIResolver(URIResolver *resolver, bool adopt); virtual void setDebugListener(DebugListener *listener); virtual DebugListener *getDebugListener() const; virtual void setStackFrame(const StackFrame *frame); virtual const StackFrame *getStackFrame() const; virtual Node::Ptr parseDocument(XERCES_CPP_NAMESPACE_QUALIFIER InputSource &srcToUse, const LocationInfo *location, const QueryPathNode *projection); virtual Sequence resolveDocument(const XMLCh* uri, const LocationInfo *location, const QueryPathNode *projection); virtual Sequence resolveCollection(const XMLCh* uri, const LocationInfo *location, const QueryPathNode *projection); virtual Sequence resolveDefaultCollection(const QueryPathNode *projection); virtual bool putDocument(const Node::Ptr &document, const XMLCh *uri); virtual UpdateFactory *createUpdateFactory() const; ////////////////////////////////// // Static Context Accessors // ////////////////////////////////// virtual const StaticType &getContextItemType() const; virtual void setContextItemType(const StaticType &st); virtual bool getXPath1CompatibilityMode() const; virtual void setXPath1CompatibilityMode(bool newMode); virtual const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver* getNSResolver() const; virtual const XMLCh* getUriBoundToPrefix(const XMLCh* prefix, const LocationInfo *location) const; virtual const XMLCh* getPrefixBoundToUri(const XMLCh* uri) const; virtual void setNSResolver(const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver* resolver); virtual const XMLCh* getDefaultElementAndTypeNS() const; virtual void setDefaultElementAndTypeNS(const XMLCh* newNS); virtual const XMLCh* getDefaultFuncNS() const; virtual void setDefaultFuncNS(const XMLCh* newNS); virtual DocumentCache* getDocumentCache() const; virtual void setDocumentCache(DocumentCache* docCache); virtual bool isTypeOrDerivedFromType(const XMLCh* const uri, const XMLCh* const typeName, const XMLCh* const uriToCheck, const XMLCh* const typeNameToCheck) const; virtual void setXMLEntityResolver(XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityResolver* const handler); virtual XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityResolver* getXMLEntityResolver() const; virtual void setModuleResolver(ModuleResolver *resolver); virtual ModuleResolver *getModuleResolver() const; virtual VectorOfStrings* resolveModuleURI(const XMLCh* uri) const; virtual void addSchemaLocation(const XMLCh* uri, VectorOfStrings* locations, const LocationInfo *location); virtual void setExternalFunctionResolver(ExternalFunctionResolver *resolver); virtual ExternalFunctionResolver *getExternalFunctionResolver() const; virtual VariableTypeStore* getVariableTypeStore(); virtual void addTemplate(XQUserFunction *tp); virtual const XQUserFunction *lookUpNamedTemplate(const XMLCh *uri, const XMLCh *name) const; virtual const UserFunctions &getTemplateRules() const; virtual void addCustomFunction(FuncFactory *func); virtual void removeCustomFunction(FuncFactory *func); virtual ASTNode *lookUpFunction(const XMLCh *uri, const XMLCh* name, const VectorOfASTNodes &v, const LocationInfo *location) const; virtual void addExternalFunction(const ExternalFunction *func); virtual const ExternalFunction *lookUpExternalFunction(const XMLCh *uri, const XMLCh *name, size_t numArgs) const; /** Get the implementation for the specified collation */ virtual Collation* getCollation(const XMLCh* const URI, const LocationInfo *location) const; /** Add a collation */ virtual void addCollation(Collation* collation); /** Get the default collation */ virtual Collation* getDefaultCollation(const LocationInfo *location) const; /** Specify which collation is the default one */ virtual void setDefaultCollation(const XMLCh* const URI); /** Return the construction mode */ virtual ConstructionMode getConstructionMode() const; /** Set the construction mode */ virtual void setConstructionMode(ConstructionMode newMode); /** Return the ordering method for node sets */ virtual NodeSetOrdering getNodeSetOrdering() const; /** Set the ordering method for node sets */ virtual void setNodeSetOrdering(NodeSetOrdering newOrder); /** Return the base URI */ virtual const XMLCh* getBaseURI() const; /** Set the base URI */ virtual void setBaseURI(const XMLCh* newURI); /** Return the default ordering mode for FLWOR blocks */ virtual FLWOROrderingMode getDefaultFLWOROrderingMode() const; /** Set the default ordering mode for FLWOR blocks */ virtual void setDefaultFLWOROrderingMode(FLWOROrderingMode newMode); /** Set the policy for namespace inheritance */ virtual void setInheritNamespaces(bool value); /** Get the policy for namespace inheritance */ virtual bool getInheritNamespaces() const; /** Set the policy for namespace copy */ virtual void setPreserveNamespaces(bool value); /** Get the policy for namespace copy */ virtual bool getPreserveNamespaces() const; /** Set the revalidation mode */ virtual void setRevalidationMode(DocumentCache::ValidationMode mode); /** Get the revalidation mode */ virtual DocumentCache::ValidationMode getRevalidationMode() const; /** Set the listener for warning and trace messages */ virtual void setMessageListener(MessageListener *listener); /** Gets the listener for warning and trace messages */ virtual MessageListener *getMessageListener() const; virtual void setFTCase(FTCaseOption option) { _ftCaseOption = option; } virtual FTCaseOption getFTCase() { return _ftCaseOption; } virtual void setModule(XQQuery *module) { _module = module; } virtual XQQuery *getModule() const { return _module; } ///////////////////////////////////////// // XQilla context specific accessors // ///////////////////////////////////////// virtual bool getProjection() const { return _projection; } virtual void setProjection(bool enabled) { _projection = enabled; } virtual bool getDoLintWarnings() const { return _lint; } virtual void setDoLintWarnings(bool enabled) { _lint = enabled; } virtual const XMLCh *allocateTempVarName(const XMLCh *prefix = 0); /** Get the memory manager */ virtual XPath2MemoryManager* getMemoryManager() const; protected: XQillaConfiguration *_conf; XQilla::Language _language; // The memory manager used to create this context XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* _createdWith; // used for managing the memory of objects inside this context ProxyMemoryManager _internalMM; //////////////////////////////// // Static Context variables // //////////////////////////////// /** Static type of the context item */ StaticType _contextItemType; /** XPath 1.0 compatibility mode. This value is true if rules for * backward compatibility with XPath Version 1.0 are in effect; * otherwise it is false */ bool _xpath1Compatibility; /** In-scope namespaces. This is a set of (prefix, URI) pairs. * The in-scope namespaces are used for resolving prefixes used * in QNames within the expression */ const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver* _nsResolver; /** The original (global scope) DOMXPathNSResolver */ XQillaNSResolver* _globalNSResolver; /** Default element/type namespace. This is a namespace URI or "none". This * namespace is used for any unprefixed QName appearing in a * position where an element or type name is expected. */ const XMLCh* _defaultElementNS; /** Default function namespace. This is a namespace URI. * This namespace URI is used for any unprefixed QName appearing * as the function name in a function call. */ const XMLCh* _functionNS; /** In-scope schema definitions. This is a generic term for all * the element, attribute, and type definitions that are in scope * during processing of an expression. */ DocumentCache* _docCache; bool _docCacheOwned; /** In-scope variable types. This is a set of (QName, type) pairs. * It defines the set of variables that have been declared and are * available for reference within the expression. The QName * represents the name of the variable, and the type represents its * static data type */ VariableTypeStore* _varTypeStore; /** Stores the available named templates */ XERCES_CPP_NAMESPACE_QUALIFIER RefHashTableOf _templateNameMap; /** Stores the available templates with a pattern */ UserFunctions _templates; /** In-scope functions. This part of the static context defines the * set of functions that are available to be called from within an * expression. Each function is uniquely identified by its QName and * its arity (number of parameters). The static context maps the QName * and arity into a function signature and a function definition. The * function signature specifies the static types of the function * parameters and the function result. */ FunctionLookup* _functionTable; /** In-scope collations. This is a set of (URI, collation) pairs. It * defines the names of the collations that are available for use in * function calls that take a collation name as an argument. A collation * may be regarded as an object that supports two functions: a function * that given a set of strings, returns a sequence containing those strings * in sorted order; and a function that given two strings, returns true if * they are considered equal, and false if not. */ std::vector > _collations; /** Default collation. This is a collation. This collation is used by * string comparison functions when no explicit collation is specified. */ const XMLCh* _defaultCollation; /** Construction mode. The construction mode governs the behavior of * element constructors. If construction mode is preserve, the type * of a constructed element node is xs:anyType, and the attributes * and descendants of the constructed element retain their original * types. If construction mode is strip, the type of the constructed * element node and all its descendants is xdt:untyped, and attributes * of the constructed element have type xdt:untypedAtomic */ ConstructionMode _constructionMode; /** Ordering mode, which has the value ordered or unordered, affects * the ordering of the result sequence returned by path expressions, * union, intersect, and except expressions, and FLWOR expressions * that have no order by clause. */ NodeSetOrdering _ordering; /** Default ordering for empty sequences. This component controls whether an * empty sequence is interpreted as the greatest value or as the least value * during processing of an order by clause in a FLWOR expression, as described * in 3.8.3 Order By and Return Clauses.] Its value may be greatest or least. */ FLWOROrderingMode _flworOrderingMode; /** Boundary-space policy. This component controls the processing of boundary * whitespace by element constructors, as described in 3.7.1.4 Whitespace * in Element Content.] Its value may be preserve or strip. */ bool _bPreserveBoundarySpace; /** Copy-namespaces mode. This component controls the namespace bindings * that are assigned when an existing element node is copied by an element * constructor, as described in 3.7.1 Direct Element Constructors. Its value * consists of two parts: preserve or no-preserve, and inherit or no-inherit. */ bool _bPreserveNamespaces, _bInheritNamespaces; /** The revalidation mode for XQuery Update */ DocumentCache::ValidationMode _revalidationMode; /** The message listener, for warnings and trace messages */ MessageListener *_messageListener; /** The module */ XQQuery *_module; /** Base URI. This is an absolute URI, used when necessary in the * resolution of relative URIs (for example, by the fn:resolve- uri * function.) The base URI is always provided by the external environment. */ const XMLCh* _baseURI; ///////////////////////////////// // Dynamic Context Variables // ///////////////////////////////// /** The context item is the item currently being processed. */ Item::Ptr _contextItem; /** The context position is the position of the context item within * the sequence of items currently being processed. */ size_t _contextPosition; /** The context size is the number of items in the sequence of * items currently being processed. */ size_t _contextSize; /** In-scope variable values. This is a set of (QName, Sequence) pairs. * It defines the set of variables that have been declared and are * available for reference within the expression. The QName * represents the name of the variable, and the Sequence represents its * value */ const VariableStore *_varStore; const VariableStore *_globalVarStore; VarStoreImpl _defaultVarStore; const RegexGroupStore *_regexStore; /** Current date and time. This information represents an * implementation-dependent point in time during processing of a query * or transformation */ time_t _currentTime; /** Implicit timezone. This is the timezone to be used when a date, * time, or dateTime value that does not have a timezone is used in a * comparison or in any other operation. This value is an instance of * xdt:dayTimeDuration */ ATDurationOrDerived::Ptr _implicitTimezone; /** For each atomic type in the in-scope type definitions, there is * a constructor function in the in-scope functions. Constructor * functions are discussed in 3.10.4 Constructor Functions */ ItemFactory* _itemFactory; //////////////////////////////////////// // XQilla Context specific variables // //////////////////////////////////////// struct ResolverEntry { ResolverEntry() : resolver(0), adopt(false) {} ResolverEntry(URIResolver *r, bool a) : resolver(r), adopt(a) {} URIResolver *resolver; bool adopt; }; /// A stack of URIResolver pointers std::vector > _resolvers; ResolverEntry _defaultResolver; ModuleResolver *_moduleResolver; ExternalFunctionResolver *_exFuncResolver; std::vector > _exFuncs; DebugListener *_debugListener; const StackFrame *_stackFrame; bool _projection; bool _lint; unsigned int _tmpVarCounter; // used for memory management in expression evaluation XPath2MemoryManager* _memMgr; //Full text related FTCaseOption _ftCaseOption; }; #endif XQilla-2.3.0/include/xqilla/context/impl/CollationImpl.hpp0000644000151400015140000000312111653565523020454 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef COLLATIONIMPL_HPP #define COLLATIONIMPL_HPP #include #include #include class Item; class XPath2MemoryManager; class DynamicContext; class XQILLA_API CollationHelper { public: virtual ~CollationHelper() {}; virtual const XMLCh* getCollationName() const = 0; virtual int compare(const XMLCh* string1, const XMLCh* string2) const = 0; }; class XQILLA_API CollationImpl : public Collation { public: CollationImpl(XPath2MemoryManager* memMgr, CollationHelper* helper); virtual const XMLCh* getCollationName() const; virtual Sequence sort(Sequence data, const DynamicContext* context) const; virtual int compare(const XMLCh* const string1, const XMLCh* const string2) const; protected: XPath2MemoryManager* _memMgr; CollationHelper* _helper; }; #endif XQilla-2.3.0/include/xqilla/context/impl/CodepointCollation.hpp0000644000151400015140000000225311653565523021504 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef CODEPOINTCOLLATION_HPP #define CODEPOINTCOLLATION_HPP #include #include class XPath2MemoryManager; class XQILLA_API CodepointCollation : public CollationHelper { public: CodepointCollation(); static const XMLCh* getCodepointCollationName(); virtual const XMLCh* getCollationName() const; virtual int compare(const XMLCh* string1, const XMLCh* string2) const; }; #endif XQilla-2.3.0/include/xqilla/context/Collation.hpp0000644000151400015140000000231511653565523016675 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef COLLATION_HPP #define COLLATION_HPP #include #include class Sequence; class DynamicContext; class XQILLA_API Collation { public: virtual ~Collation() {}; virtual const XMLCh* getCollationName() const = 0; virtual Sequence sort(Sequence data, const DynamicContext* context) const = 0; virtual int compare(const XMLCh* const string1, const XMLCh* const string2) const = 0; protected: Collation() {} }; #endif XQilla-2.3.0/include/xqilla/context/URIResolver.hpp0000644000151400015140000000570011653565523017133 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _URIRESOLVER_HPP #define _URIRESOLVER_HPP #include #include #include class DynamicContext; class Sequence; class QueryPathNode; /** * This is an abstract class used to resolve URIs in different ways. The user should * derive a concrete class from URIResolver, and use the DynamicContext::registerURIResolver() * method to add this resolver to the list used by XQilla. */ class XQILLA_API URIResolver : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory { public: /** virtual destructor, does nothing */ virtual ~URIResolver() {}; /** * Resolve the given uri (and baseUri) to a Sequence (reference parameter). If the uri * is relative, the base uri can be obtained from the context. If the uri is not handled * by this URIResolver, returns false, otherwise returns true. */ virtual bool resolveDocument(Sequence &result, const XMLCh* uri, DynamicContext *context, const QueryPathNode *projection) = 0; /** * Resolve the given uri (and baseUri) to a Sequence (reference parameter). If the uri * is relative, the base uri can be obtained from the context. If the uri is not handled * by this URIResolver, returns false, otherwise returns true. */ virtual bool resolveCollection(Sequence &result, const XMLCh* uri, DynamicContext *context, const QueryPathNode *projection) = 0; /** * Resolve the default collection. If it is not defined, returns false, otherwise returns true. */ virtual bool resolveDefaultCollection(Sequence &result, DynamicContext *context, const QueryPathNode *projection) = 0; /** * Called with any document that has been updated, to allow the user to save the document in any manner applicable. * The uri parameter will be the argument to the fn:put() function if that was called with the document - otherwise it * will be the document URI of the document. If this URIResolver successfully handled the putDocument() request, the method * should return true, otherwise it should return false and subsequent URIResolver objects will be called to handle the * document. */ virtual bool putDocument(const Node::Ptr &document, const XMLCh *uri, DynamicContext *context) = 0; }; #endif XQilla-2.3.0/include/xqilla/context/Scope.hpp0000644000151400015140000000663111653565523016027 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* Scope */ #ifndef _SCOPE_HPP #define _SCOPE_HPP #include #include #include #include #include template class VarHashEntry; /** used inside VariableStore to implement variable scoping */ template class Scope : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory { public: /** enum for classifying type of scope */ typedef enum { GLOBAL_SCOPE, LOCAL_SCOPE, LOGICAL_BLOCK_SCOPE } Type; typedef XERCES_CPP_NAMESPACE_QUALIFIER RefHash2KeysTableOf< VarHashEntry > VarHash; /** constructor. */ Scope(XPath2MemoryManager* memMgr, Type type); ~Scope(); void clear(); Type getType() const; VarHashEntry* get(unsigned int nsID, const XMLCh* name); void put(unsigned int nsID, const XMLCh* name, VarHashEntry* value); void remove(unsigned int nsID, const XMLCh* name); std::vector< std::pair > getVars() const; Scope* getNext(); void setNext(Scope* next); private: typename Scope::Type _type; VarHash _map; XPath2MemoryManager* _memMgr; Scope* _next; }; template Scope::Scope(XPath2MemoryManager* memMgr, Type type) : _map(17, true, memMgr) { _memMgr=memMgr; _type = type; _next = NULL; } template void Scope::clear() { _map.removeAll(); } template typename Scope::Type Scope::getType() const { return _type; } template VarHashEntry* Scope::get(unsigned int nsID, const XMLCh* name) { return _map.get(name,nsID); } template void Scope::put(unsigned int nsID, const XMLCh* name, VarHashEntry* value) { _map.put((void*)_memMgr->getPooledString(name),nsID,value); } template void Scope::remove(unsigned int nsID, const XMLCh* name) { _map.removeKey(name,nsID); } template std::vector< std::pair > Scope::getVars() const { std::vector< std::pair > result; XERCES_CPP_NAMESPACE_QUALIFIER RefHash2KeysTableOfEnumerator< VarHashEntry > iterator(const_cast(&_map)); while(iterator.hasMoreElements()) { XMLCh* name; int nsID; iterator.nextElementKey((void*&)name, nsID); result.push_back(std::pair(nsID,name)); } return result; } template Scope::~Scope() { _map.removeAll(); } template Scope* Scope::getNext() { return _next; } template void Scope::setNext(Scope* next) { _next=next; } #endif // _SCOPE_HPP XQilla-2.3.0/include/xqilla/context/UpdateFactory.hpp0000644000151400015140000000515411653565523017527 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _UPDATEFACTORY_HPP #define _UPDATEFACTORY_HPP #include #include #include class PendingUpdateList; class PendingUpdate; class DynamicContext; class XQILLA_API UpdateFactory : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory { public: virtual ~UpdateFactory() {} virtual void applyUpdates(const PendingUpdateList &pul, DynamicContext *context, DocumentCache::ValidationMode valMode); virtual void checkUpdates(const PendingUpdateList &pul, DynamicContext *context, DocumentCache::ValidationMode valMode) {} virtual void applyPut(const PendingUpdate &update, DynamicContext *context) = 0; virtual void applyInsertInto(const PendingUpdate &update, DynamicContext *context) = 0; virtual void applyInsertAttributes(const PendingUpdate &update, DynamicContext *context) = 0; virtual void applyReplaceValue(const PendingUpdate &update, DynamicContext *context) = 0; virtual void applyRename(const PendingUpdate &update, DynamicContext *context) = 0; virtual void applyDelete(const PendingUpdate &update, DynamicContext *context) = 0; virtual void applyInsertBefore(const PendingUpdate &update, DynamicContext *context) = 0; virtual void applyInsertAfter(const PendingUpdate &update, DynamicContext *context) = 0; virtual void applyInsertAsFirst(const PendingUpdate &update, DynamicContext *context) = 0; virtual void applyInsertAsLast(const PendingUpdate &update, DynamicContext *context) = 0; virtual void applyReplaceNode(const PendingUpdate &update, DynamicContext *context) = 0; virtual void applyReplaceAttribute(const PendingUpdate &update, DynamicContext *context) = 0; virtual void applyReplaceElementContent(const PendingUpdate &update, DynamicContext *context) = 0; virtual void completeUpdate(DynamicContext *context) = 0; protected: DocumentCache::ValidationMode valMode_; }; #endif XQilla-2.3.0/include/xqilla/context/ModuleResolver.hpp0000644000151400015140000000242311653565523017720 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _MODULERESOLVER_HPP #define _MODULERESOLVER_HPP #include class StaticContext; class XQILLA_API ModuleResolver { public: /** virtual destructor, does nothing */ virtual ~ModuleResolver() {}; /** Fills the string vector with a list of locations tht, once assembled, build the module referenced by the given URI. If the URI is unknown, returns false, otherwise returns true. */ virtual bool resolveModuleLocation(VectorOfStrings* result, const XMLCh* nsUri, const StaticContext* context) = 0; }; #endif XQilla-2.3.0/include/xqilla/context/VarHashEntry.hpp0000644000151400015140000000251211653565523017326 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _VARHASHENTRY_HPP #define _VARHASHENTRY_HPP #include #include /** The class that stores the values of the variables. */ template class VarHashEntry : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory { public: virtual ~VarHashEntry() {} /** Gets the value of the variable (overload in derived classes for special behaviour) */ virtual const TYPE &getValue() const = 0; /** Sets the value of the variable (overload in derived classes for special behaviour) */ virtual void setValue(const TYPE &value) = 0; }; #endif XQilla-2.3.0/include/xqilla/context/MessageListener.hpp0000644000151400015140000000265111653565523020046 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _MESSAGELISTENER_HPP #define _MESSAGELISTENER_HPP #include #include class LocationInfo; class DynamicContext; class Sequence; /** * A class used to listen for warnings or trace information */ class XQILLA_API MessageListener { public: /* virtual destructor, does nothing */ virtual ~MessageListener() {}; /** * Called to report a warning message */ virtual void warning(const XMLCh *message, const LocationInfo *location) = 0; /** * Called to report a trace message */ virtual void trace(const XMLCh *label, const Sequence &sequence, const LocationInfo *location, const DynamicContext *context) = 0; }; #endif XQilla-2.3.0/include/xqilla/context/RegexGroupStore.hpp0000644000151400015140000000232211653565523020053 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _REGEXGROUPSTORE_HPP #define _REGEXGROUPSTORE_HPP #include #include class Result; /** The pure virtual base class for accessing regular expression group values at runtime. */ class XQILLA_API RegexGroupStore { public: /** default destructor */ virtual ~RegexGroupStore() {}; /** Looks up the value of a variable by namespace URI and localname pair. */ virtual const XMLCh *getGroup(int index) const = 0; }; #endif XQilla-2.3.0/include/xqilla/context/VariableTypeStore.hpp0000644000151400015140000000534111653565523020357 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _VARIABLETYPESTORE_HPP #define _VARIABLETYPESTORE_HPP #include #include #include class SequenceType; class XPath2MemoryManager; class StaticAnalysis; class XQGlobalVariable; /** This is the wrapper class for the variable store, which implements the lookup and scoping of simple variables. */ class XQILLA_API VariableTypeStore : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory { public: /** default destructor */ virtual ~VariableTypeStore() {}; /** Clears all variable values and added scopes from the store */ virtual void clear() = 0; /** Adds a new local scope to the store. */ virtual void addLocalScope() = 0; /** Adds a new logical block scope to the store. */ virtual void addLogicalBlockScope() = 0; /** Removes the top level scope from the store. To be called at the end of methods to implement scoping. */ virtual void removeScope() = 0; /** Declares and/or sets a variable in the global scope. */ virtual void declareGlobalVar(const XMLCh* namespaceURI, const XMLCh* name, const StaticAnalysis &src, XQGlobalVariable *global) = 0; /** Gets a variable from the global scope */ virtual const StaticAnalysis* getGlobalVar(const XMLCh* namespaceURI, const XMLCh* name, XQGlobalVariable **global = 0) const = 0; /** Declare a var in the top level scope (A full set of these namespaceURI/name pair methods should be made) */ virtual void declareVar(const XMLCh* namespaceURI, const XMLCh* name, const StaticAnalysis &src) = 0; /** Looks up the value of a variable in the current scope, using ident as an qname. Returns a boolean (true if successful), and the SequenceType value of the variable*/ virtual const StaticAnalysis *getVar(const XMLCh* namespaceURI, const XMLCh* name, XQGlobalVariable **global = 0) const = 0; }; #endif XQilla-2.3.0/include/xqilla/xqilla-xqc.h0000644000151400015140000000250611653565523015012 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQILLA_XQC_H #define _XQILLA_XQC_H #include #ifdef __cplusplus extern "C" { #endif /** * Creates an XQC_Implementation object that uses XQilla. */ XQC_Implementation *createXQillaXQCImplementation(int version); /** * \example xqc-basic.c * * This example executes a simple XQuery expression ("1 to 100"), which returns the numbers from 1 to 100 inclusive. */ /** * \example xqc-context-item.c * * This example parses a document and sets it as the context item. It then executes an XQuery expression that navigates relative to the context item. */ #ifdef __cplusplus } #endif #endif XQilla-2.3.0/include/xqilla/xerces/0000755000151400015140000000000011653572444014124 500000000000000XQilla-2.3.0/include/xqilla/xerces/XercesConfiguration.hpp0000644000151400015140000000405011653565523020535 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XERCESCONFIGURATION_H #define XERCESCONFIGURATION_H #include #include #include XERCES_CPP_NAMESPACE_BEGIN class DOMNode; XERCES_CPP_NAMESPACE_END class XQILLA_API XercesConfiguration : public XQillaConfiguration { public: /** * The "Xerces" DOMNode node interface. * Use this as the parameter when you call Item::getInterface() * to have a xerces DOMNode returned, if the Node is of the * correct type. If it is not of the correct type, the method * will return 0. */ static const XMLCh gXerces[]; virtual DocumentCache *createDocumentCache(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr); virtual SequenceBuilder *createSequenceBuilder(const DynamicContext *context); virtual ItemFactory *createItemFactory(DocumentCache *cache, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr); virtual UpdateFactory *createUpdateFactory(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr); virtual URIResolver *createDefaultURIResolver(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr); virtual ASTToXML *createASTToXML(); virtual Node::Ptr createNode(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node, const DynamicContext *context) const; }; #endif XQilla-2.3.0/include/xqilla/xqilla-dom3.hpp0000644000151400015140000000306611653565523015423 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include /** * \example dom-basic.cpp * * This example executes a simple XQuery expression ("1 to 100"), which returns the numbers from 1 to 100 inclusive. */ /** * \example dom-context-item.cpp * * This example parses a document and sets it as the context item. It then executes an XQuery expression that navigates relative to the context item. */ /** * \example dom-resolver.cpp * * This example shows an example of running multiple queries, using a DOMXPathNSResolver to resolve namespaces. */ XQilla-2.3.0/include/xqilla/optimizer/0000755000151400015140000000000011653572444014655 500000000000000XQilla-2.3.0/include/xqilla/optimizer/QueryPathTreeGenerator.hpp0000644000151400015140000000737511653565523021733 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _QUERYPATHTREEGENERATOR_HPP #define _QUERYPATHTREEGENERATOR_HPP #include #include #include #include #include class NodeTest; typedef std::map QPNMap; /** * Generates QueryPathNode trees of the paths * in the documents that will be navigated. */ class XQILLA_API QueryPathTreeGenerator : public ASTVisitor { public: QueryPathTreeGenerator(DynamicContext *context, Optimizer *parent = 0); virtual ~QueryPathTreeGenerator() { varStore_.clear(); } class XQILLA_API PathResult { public: void join(const QueryPathNode::MVector &o); void join(const PathResult &o); void join(QueryPathNode *o); void markSubtreeValue() const; void markSubtreeResult() const; void markRoot() const; QueryPathNode::Vector returnPaths; }; protected: virtual QueryPathNode *createQueryPathNode(const NodeTest *nodeTest, QueryPathNode::Type type); virtual NodeTest *createNodeTest(const XMLCh *nodeType, const XMLCh *uri = 0, const XMLCh *name = 0); virtual void resetInternal(); virtual void optimize(XQQuery *query); virtual ASTNode *optimize(ASTNode *item); ALL_ASTVISITOR_METHODS(); void push(PathResult result); PathResult pop(); PathResult generate(ASTNode *item); void generateBuiltInStep(QueryPathNode *target, QueryPathNode &node, PathResult &result); void generateParentStep(QueryPathNode *target, QueryPathNode &node, PathResult &result); void generateSelfStep(QueryPathNode *target, QueryPathNode &node, PathResult &result); void generateAncestorStep(QueryPathNode *target, QueryPathNode &node, PathResult &result); void generateAncestorOrSelfStep(QueryPathNode *target, QueryPathNode &node, PathResult &result); void generateFollowingStep(QueryPathNode *target, QueryPathNode &node, PathResult &result); void generatePrecedingStep(QueryPathNode *target, QueryPathNode &node, PathResult &result); void generateSiblingStep(QueryPathNode *target, QueryPathNode &node, PathResult &result); void createAnyNodeResult(PathResult &result); const PathResult &getCurrentContext() const; void setCurrentContext(const PathResult &value); void setVariable(const XMLCh *uri, const XMLCh *name, const PathResult &value); PathResult copyNodes(const PathResult &r); XPath2MemoryManager *mm_; DynamicContext *context_; std::set userFunctionStack_; typedef VarHashEntry VarStoreRef; typedef VariableStoreTemplate VarStore; XPath2MemoryManagerImpl varStoreMemMgr_; VarStore varStore_; ///< Memory owned by varStoreMemMgr_ std::vector results_; QPNMap projectionMap_; }; #endif XQilla-2.3.0/include/xqilla/optimizer/QueryPathNode.hpp0000644000151400015140000000543411653565523020044 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _QUERYPATHNODE_HPP #define _QUERYPATHNODE_HPP #include #include #include #include class NodeTest; class XQILLA_API QueryPathNode : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory { public: typedef enum { ATTRIBUTE, CHILD, DESCENDANT, DESCENDANT_ATTR, ROOT } Type; typedef std::vector Vector; typedef std::vector > MVector; QueryPathNode(const NodeTest *nodeTest, Type type, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm); virtual ~QueryPathNode(); Type getType() const { return type_; } void setType(Type t) { type_ = t; } bool isWildcardURI() const; bool isWildcardName() const; bool isWildcardNodeType() const; virtual bool isWildcard() const; const XMLCh *getURI() const; const XMLCh *getName() const; const NodeTest *getNodeTest() const { return nodeTest_; } QueryPathNode *getParent() const { return parent_; } QueryPathNode *getNextSibling() const { return nextSibling_; } QueryPathNode *getPreviousSibling() const { return prevSibling_; } QueryPathNode *getFirstChild() const { return firstChild_; } QueryPathNode *getLastChild() const { return lastChild_; } QueryPathNode *getRoot() const; QueryPathNode *appendChild(QueryPathNode *childToAdopt); void removeChild(QueryPathNode *child, bool deleteChild = true); void stealChildren(QueryPathNode *victim); virtual void markSubtreeValue(); virtual void markSubtreeResult(); virtual std::string toString(int level = 0) const; virtual bool equals(const QueryPathNode *o) const; virtual bool isSubsetOf(const QueryPathNode *node) const; protected: QueryPathNode(const QueryPathNode &); QueryPathNode &operator=(const QueryPathNode &); Type type_; const NodeTest *nodeTest_; QueryPathNode *parent_; QueryPathNode *nextSibling_; QueryPathNode *prevSibling_; QueryPathNode *firstChild_; QueryPathNode *lastChild_; XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr_; }; #endif XQilla-2.3.0/include/xqilla/optimizer/Optimizer.hpp0000644000151400015140000000346411653565523017277 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _OPTIMIZER_HPP #define _OPTIMIZER_HPP #include class ASTNode; class DynamicContext; class XQQuery; class XQUserFunction; class XQILLA_API Optimizer { public: Optimizer(Optimizer *parent = 0); virtual ~Optimizer(); void startOptimize(XQQuery *query); ASTNode *startOptimize(ASTNode *item); XQUserFunction *startOptimize(XQUserFunction *item); void reset(); protected: virtual void optimize(XQQuery *query) = 0; virtual ASTNode *optimize(ASTNode *item) = 0; virtual XQUserFunction *optimizeFunctionDef(XQUserFunction *item) = 0; virtual void resetInternal(); private: Optimizer(const Optimizer &o); Optimizer &operator=(const Optimizer &o); Optimizer *parent_; }; class XQILLA_API StaticResolver : public Optimizer { public: StaticResolver(DynamicContext *xpc, Optimizer *parent = 0) : Optimizer(parent), xpc_(xpc) {} protected: virtual void optimize(XQQuery *query); virtual ASTNode *optimize(ASTNode *item); virtual XQUserFunction *optimizeFunctionDef(XQUserFunction *item); private: DynamicContext *xpc_; }; #endif XQilla-2.3.0/include/xqilla/optimizer/StaticTyper.hpp0000644000151400015140000000653511653565523017572 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _STATICTYPER_HPP #define _STATICTYPER_HPP #include class XQILLA_API StaticTyper : public ASTVisitor { public: struct PrologItem { PrologItem(XQGlobalVariable *g, PrologItem *p) : global(g), function(0), prev(p) {} PrologItem(XQUserFunction *f, PrologItem *p) : global(0), function(f), prev(p) {} XQGlobalVariable *global; XQUserFunction *function; PrologItem *prev; }; StaticTyper() : ASTVisitor(), context_(0), globalsUsed_(0), globalsOrder_(0), trail_(0), tupleSetup_(false) {} StaticTyper(StaticContext *context, Optimizer *parent = 0) : ASTVisitor(parent), context_(context), globalsUsed_(0), globalsOrder_(0), trail_(0), tupleSetup_(false) {} GlobalVariables *&getGlobalsUsed() { return globalsUsed_; } GlobalVariables *&getGlobalsOrder() { return globalsOrder_; } PrologItem *&getTrail() { return trail_; } ASTNode *run(ASTNode *item, StaticContext *context); protected: virtual void optimize(XQQuery *query); virtual XQUserFunction *optimizeFunctionDef(XQUserFunction *item); virtual ASTNode *optimize(ASTNode *item); virtual ASTNode *optimizePredicate(XQPredicate *item); virtual ASTNode *optimizeAnalyzeString(XQAnalyzeString *item); virtual ASTNode *optimizeNav(XQNav *item); virtual ASTNode *optimizeQuantified(XQQuantified *item); virtual ASTNode *optimizeMap(XQMap *item); virtual ASTNode *optimizeReturn(XQReturn *item); virtual ASTNode *optimizeTypeswitch(XQTypeswitch *item); virtual ASTNode *optimizeFunctionCoercion(XQFunctionCoercion *item); virtual ASTNode *optimizeNamespaceBinding(XQNamespaceBinding *item); virtual ASTNode *optimizeInlineFunction(XQInlineFunction *item); virtual ASTNode *optimizeEffectiveBooleanValue(XQEffectiveBooleanValue *item); virtual ASTNode *optimizeUTransform(UTransform *item); virtual ASTNode *optimizeVariable(XQVariable *item); virtual ASTNode *optimizeUserFunction(XQUserFunctionInstance *item); virtual ASTNode *optimizeFTContains(FTContains *item); virtual FTSelection *optimizeFTSelection(FTSelection *selection); virtual TupleNode *optimizeTupleNode(TupleNode *item); virtual TupleNode *optimizeForTuple(ForTuple *item); virtual TupleNode *optimizeLetTuple(LetTuple *item); virtual TupleNode *optimizeWhereTuple(WhereTuple *item); virtual TupleNode *optimizeCountTuple(CountTuple *item); virtual TupleNode *optimizeOrderByTuple(OrderByTuple *item); void optimizeCase(const StaticAnalysis &var_src, XQTypeswitch::Case *item); StaticContext *context_; GlobalVariables *globalsUsed_; GlobalVariables *globalsOrder_; PrologItem *trail_; bool tupleSetup_; }; #endif XQilla-2.3.0/include/xqilla/optimizer/ASTReleaser.hpp0000644000151400015140000000231211653565523017416 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ASTRELEASER_HPP #define _ASTRELEASER_HPP #include class XQILLA_API ASTReleaser : public ASTVisitor { public: ASTReleaser(); void release(ASTNode *item); void release(TupleNode *item); void release(XQUserFunction *item); protected: virtual ASTNode *optimize(ASTNode *item); virtual TupleNode *optimizeTupleNode(TupleNode *item); virtual FTSelection *optimizeFTSelection(FTSelection *selection); ALL_ASTVISITOR_METHODS() }; #endif XQilla-2.3.0/include/xqilla/optimizer/ASTCopier.hpp0000644000151400015140000000215611653565523017103 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ASTCOPIER_HPP #define _ASTCOPIER_HPP #include class XQILLA_API ASTCopier : public ASTVisitor { public: ASTCopier(); ASTNode *copy(const ASTNode *item, DynamicContext *context); TupleNode *copy(const TupleNode *item, DynamicContext *context); protected: ALL_ASTVISITOR_METHODS(); DynamicContext *context_; XPath2MemoryManager *mm_; }; #endif XQilla-2.3.0/include/xqilla/optimizer/ASTVisitor.hpp0000644000151400015140000002233711653565523017324 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ASTVISITOR_HPP #define _ASTVISITOR_HPP #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define ALL_ASTVISITOR_METHODS() \ virtual XQGlobalVariable *optimizeGlobalVar(XQGlobalVariable *item); \ virtual XQUserFunction *optimizeFunctionDef(XQUserFunction *item); \ \ virtual ASTNode *optimizeUnknown(ASTNode *item); \ virtual ASTNode *optimizeFunction(XQFunction *item); \ virtual ASTNode *optimizeLiteral(XQLiteral *item); \ virtual ASTNode *optimizeQNameLiteral(XQQNameLiteral *item); \ virtual ASTNode *optimizeNumericLiteral(XQNumericLiteral *item); \ virtual ASTNode *optimizeNav(XQNav *item); \ virtual ASTNode *optimizeSequence(XQSequence *item); \ virtual ASTNode *optimizeStep(XQStep *item); \ virtual ASTNode *optimizeVariable(XQVariable *item); \ virtual ASTNode *optimizeIf(XQIf *item); \ virtual ASTNode *optimizeCastableAs(XQCastableAs *item); \ virtual ASTNode *optimizeCastAs(XQCastAs *item); \ virtual ASTNode *optimizeTreatAs(XQTreatAs *item); \ virtual ASTNode *optimizeFunctionCoercion(XQFunctionCoercion *item); \ virtual ASTNode *optimizeOperator(XQOperator *item); \ virtual ASTNode *optimizeContextItem(XQContextItem *item); \ virtual ASTNode *optimizeReturn(XQReturn *item); \ virtual ASTNode *optimizeQuantified(XQQuantified *item); \ virtual ASTNode *optimizeTypeswitch(XQTypeswitch *item); \ virtual ASTNode *optimizeValidate(XQValidate *item); \ virtual ASTNode *optimizeFunctionCall(XQFunctionCall *item); \ virtual ASTNode *optimizeDOMConstructor(XQDOMConstructor *item); \ virtual ASTNode *optimizeSimpleContent(XQSimpleContent *item); \ virtual ASTNode *optimizeOrderingChange(XQOrderingChange *item); \ virtual ASTNode *optimizeAtomize(XQAtomize *item); \ virtual ASTNode *optimizeEffectiveBooleanValue(XQEffectiveBooleanValue *item); \ virtual ASTNode *optimizePromoteUntyped(XQPromoteUntyped *item); \ virtual ASTNode *optimizePromoteNumeric(XQPromoteNumeric *item); \ virtual ASTNode *optimizePromoteAnyURI(XQPromoteAnyURI *item); \ virtual ASTNode *optimizeDocumentOrder(XQDocumentOrder *item); \ virtual ASTNode *optimizePredicate(XQPredicate *item); \ virtual ASTNode *optimizeUserFunction(XQUserFunctionInstance *item); \ virtual ASTNode *optimizeNameExpression(XQNameExpression *item); \ virtual ASTNode *optimizeContentSequence(XQContentSequence *item); \ virtual ASTNode *optimizeDirectName(XQDirectName *item); \ virtual ASTNode *optimizeNamespaceBinding(XQNamespaceBinding *item); \ virtual ASTNode *optimizeFunctionConversion(XQFunctionConversion *item); \ virtual ASTNode *optimizeAnalyzeString(XQAnalyzeString *item); \ virtual ASTNode *optimizeCopyOf(XQCopyOf *item); \ virtual ASTNode *optimizeCopy(XQCopy *item); \ virtual ASTNode *optimizeASTDebugHook(ASTDebugHook *item); \ virtual ASTNode *optimizeCallTemplate(XQCallTemplate *item); \ virtual ASTNode *optimizeApplyTemplates(XQApplyTemplates *item); \ virtual ASTNode *optimizeInlineFunction(XQInlineFunction *item); \ virtual ASTNode *optimizeFunctionRef(XQFunctionRef *item); \ virtual ASTNode *optimizeFunctionDeref(XQFunctionDeref *item); \ virtual ASTNode *optimizePartialApply(XQPartialApply *item); \ virtual ASTNode *optimizeMap(XQMap *item); \ \ virtual ASTNode *optimizeUDelete(UDelete *item); \ virtual ASTNode *optimizeURename(URename *item); \ virtual ASTNode *optimizeUReplace(UReplace *item); \ virtual ASTNode *optimizeUReplaceValueOf(UReplaceValueOf *item); \ virtual ASTNode *optimizeUInsertAsFirst(UInsertAsFirst *item); \ virtual ASTNode *optimizeUInsertAsLast(UInsertAsLast *item); \ virtual ASTNode *optimizeUInsertInto(UInsertInto *item); \ virtual ASTNode *optimizeUInsertAfter(UInsertAfter *item); \ virtual ASTNode *optimizeUInsertBefore(UInsertBefore *item); \ virtual ASTNode *optimizeUTransform(UTransform *item); \ virtual ASTNode *optimizeUApplyUpdates(UApplyUpdates *item); \ \ virtual ASTNode *optimizeFTContains(FTContains *item); \ virtual FTSelection *optimizeUnknownFTSelection(FTSelection *item); \ virtual FTSelection *optimizeFTWords(FTWords *selection); \ virtual FTSelection *optimizeFTWord(FTWord *selection); \ virtual FTSelection *optimizeFTOr(FTOr *selection); \ virtual FTSelection *optimizeFTAnd(FTAnd *selection); \ virtual FTSelection *optimizeFTMildnot(FTMildnot *selection); \ virtual FTSelection *optimizeFTUnaryNot(FTUnaryNot *selection); \ virtual FTSelection *optimizeFTOrder(FTOrder *selection); \ virtual FTSelection *optimizeFTDistance(FTDistance *selection); \ virtual FTSelection *optimizeFTDistanceLiteral(FTDistanceLiteral *selection); \ virtual FTSelection *optimizeFTScope(FTScope *selection); \ virtual FTSelection *optimizeFTContent(FTContent *selection); \ virtual FTSelection *optimizeFTWindow(FTWindow *selection); \ virtual FTSelection *optimizeFTWindowLiteral(FTWindowLiteral *selection); \ \ virtual TupleNode *optimizeUnknownTupleNode(TupleNode *item); \ virtual TupleNode *optimizeContextTuple(ContextTuple *item); \ virtual TupleNode *optimizeForTuple(ForTuple *item); \ virtual TupleNode *optimizeLetTuple(LetTuple *item); \ virtual TupleNode *optimizeWhereTuple(WhereTuple *item); \ virtual TupleNode *optimizeOrderByTuple(OrderByTuple *item); \ virtual TupleNode *optimizeCountTuple(CountTuple *item); \ virtual TupleNode *optimizeTupleDebugHook(TupleDebugHook *item); class XQILLA_API ASTVisitor : public Optimizer { public: ASTVisitor(Optimizer *parent = 0) : Optimizer(parent) {} protected: virtual void optimize(XQQuery *query); virtual ASTNode *optimize(ASTNode *item); virtual TupleNode *optimizeTupleNode(TupleNode *item); virtual FTSelection *optimizeFTSelection(FTSelection *selection); ALL_ASTVISITOR_METHODS() }; #endif XQilla-2.3.0/include/xqilla/optimizer/ASTToXML.hpp0000644000151400015140000001501011653565523016616 00000000000000/* * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ASTTOXML_HPP #define _ASTTOXML_HPP #include #include #include #include class XQILLA_API ASTToXML : public ASTVisitor { public: ASTToXML(); std::string print(const XQQuery *query, const DynamicContext *context); std::string print(const ASTNode *item, const DynamicContext *context); std::string print(const TupleNode *item, const DynamicContext *context); std::string print(const XQUserFunction *item, const DynamicContext *context); void run(const XQQuery *query, EventHandler *events, const DynamicContext *context); void run(const ASTNode *item, EventHandler *events, const DynamicContext *context); void run(const TupleNode *item, EventHandler *events, const DynamicContext *context); void run(const XQUserFunction *item, EventHandler *events, const DynamicContext *context); protected: virtual void resetInternal() {} virtual void optimize(XQQuery *query); virtual ASTNode *optimize(ASTNode *item); virtual XQGlobalVariable *optimizeGlobalVar(XQGlobalVariable *item); virtual XQUserFunction *optimizeFunctionDef(XQUserFunction *item); virtual ASTNode *optimizeFunction(XQFunction *item); virtual ASTNode *optimizeOperator(XQOperator *item); virtual ASTNode *optimizeLiteral(XQLiteral *item); virtual ASTNode *optimizeQNameLiteral(XQQNameLiteral *item); virtual ASTNode *optimizeNumericLiteral(XQNumericLiteral *item); virtual ASTNode *optimizeStep(XQStep *item); virtual ASTNode *optimizeInlineFunction(XQInlineFunction *item); virtual ASTNode *optimizePromoteUntyped(XQPromoteUntyped *item); virtual ASTNode *optimizeVariable(XQVariable *item); virtual ASTNode *optimizeTreatAs(XQTreatAs *item); virtual ASTNode *optimizePromoteNumeric(XQPromoteNumeric *item); virtual ASTNode *optimizePromoteAnyURI(XQPromoteAnyURI *item); virtual ASTNode *optimizeUserFunction(XQUserFunctionInstance *item); virtual ASTNode *optimizeCastableAs(XQCastableAs *item); virtual ASTNode *optimizeCastAs(XQCastAs *item); virtual ASTNode *optimizeFunctionCoercion(XQFunctionCoercion *item); virtual ASTNode *optimizeTypeswitch(XQTypeswitch *item); virtual ASTNode *optimizePartialApply(XQPartialApply *item); virtual ASTNode *optimizeFunctionRef(XQFunctionRef *item); virtual ASTNode *optimizeFunctionConversion(XQFunctionConversion *item); virtual ASTNode *optimizeValidate(XQValidate *item); virtual ASTNode *optimizeFunctionCall(XQFunctionCall *item); virtual ASTNode *optimizeDOMConstructor(XQDOMConstructor *item); virtual ASTNode *optimizeMap(XQMap *item); virtual ASTNode *optimizeDirectName(XQDirectName *item); virtual ASTNode *optimizeUTransform(UTransform *item); virtual ASTNode *optimizeCopyOf(XQCopyOf *item); virtual ASTNode *optimizeASTDebugHook(ASTDebugHook *item); virtual ASTNode *optimizeCallTemplate(XQCallTemplate *item); virtual ASTNode *optimizeApplyTemplates(XQApplyTemplates *item); virtual TupleNode *optimizeTupleNode(TupleNode *item); virtual TupleNode *optimizeForTuple(ForTuple *item); virtual TupleNode *optimizeLetTuple(LetTuple *item); virtual TupleNode *optimizeCountTuple(CountTuple *item); virtual TupleNode *optimizeOrderByTuple(OrderByTuple *item); virtual TupleNode *optimizeTupleDebugHook(TupleDebugHook *item); virtual FTSelection *optimizeFTSelection(FTSelection *selection); virtual FTSelection *optimizeFTWords(FTWords *selection); virtual FTSelection *optimizeFTWord(FTWord *selection); virtual FTSelection *optimizeFTDistance(FTDistance *selection); virtual FTSelection *optimizeFTDistanceLiteral(FTDistanceLiteral *selection); virtual FTSelection *optimizeFTWindow(FTWindow *selection); virtual FTSelection *optimizeFTWindowLiteral(FTWindowLiteral *selection); virtual FTSelection *optimizeFTScope(FTScope *selection); virtual FTSelection *optimizeFTContent(FTContent *selection); void optimizeSequenceType(const SequenceType *type); void optimizeFunctionSignature(const FunctionSignature *signature); void optimizeCase(const XQTypeswitch::Case *cse); void optimizeLocation(const LocationInfo *location); void optimizeTemplateArgument(XQTemplateArgument *item); void optimizeNodeTest(const NodeTest *step); virtual void getElementName(ASTNode *item, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &buf); virtual void getElementName(TupleNode *item, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &buf); virtual void getElementName(FTSelection *item, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &buf); static const XMLCh *getComparisonOperationName(GeneralComp::ComparisonOperation co); static const XMLCh *getAxisName(XQStep::Axis axis); static const XMLCh *getFTRangeTypeName(FTRange::Type type); static const XMLCh *getFTUnitName(FTOption::FTUnit unit); void indent(); void newline(); void qname(const XMLCh *qname, const XMLCh *prefix, const XMLCh *uri, const XMLCh *name, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &buf); EventHandler *events_; const DynamicContext *context_; unsigned int indent_; XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer indentBuffer_; bool hasChildren_; }; class PrintASTOptimizer : public Optimizer { public: PrintASTOptimizer(std::string label, const DynamicContext *context, Optimizer *parent = 0) : Optimizer(parent), label_(label), context_(context) {} protected: virtual void optimize(XQQuery *query) { std::cerr << label_ << ":" << std::endl; std::cerr << ASTToXML().print(query, context_) << std::endl; } virtual ASTNode *optimize(ASTNode *item) { std::cerr << label_ << ":" << std::endl; std::cerr << ASTToXML().print(item, context_) << std::endl; return item; } virtual XQUserFunction *optimizeFunctionDef(XQUserFunction *item) { std::cerr << label_ << ":" << std::endl; std::cerr << ASTToXML().print(item, context_) << std::endl; return item; } private: std::string label_; const DynamicContext *context_; }; #endif XQilla-2.3.0/include/xqilla/optimizer/PartialEvaluator.hpp0000644000151400015140000000512311653565523020566 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _PARTIALEVALUATOR_HPP #define _PARTIALEVALUATOR_HPP #include class Plus; class Minus; class Multiply; class Divide; class And; class Or; class XQILLA_API PartialEvaluator : public ASTVisitor { public: PartialEvaluator(DynamicContext *context, Optimizer *parent = 0); static ASTNode *inlineFunction(const XQUserFunctionInstance *item, DynamicContext *context); protected: virtual void optimize(XQQuery *query); virtual ASTNode *optimize(ASTNode *item); virtual XQUserFunction *optimizeFunctionDef(XQUserFunction *item); virtual ASTNode *optimizeUserFunction(XQUserFunctionInstance *item); virtual ASTNode *optimizeFunctionDeref(XQFunctionDeref *item); virtual ASTNode *optimizePartialApply(XQPartialApply *item); virtual ASTNode *optimizeFunctionCoercion(XQFunctionCoercion *item); virtual ASTNode *optimizeReturn(XQReturn *item); virtual ASTNode *optimizeIf(XQIf *item); virtual ASTNode *optimizeQuantified(XQQuantified *item); virtual ASTNode *optimizePredicate(XQPredicate *item); virtual ASTNode *optimizeEffectiveBooleanValue(XQEffectiveBooleanValue *item); virtual ASTNode *optimizeOperator(XQOperator *item); virtual ASTNode *optimizeNamespaceBinding(XQNamespaceBinding *item); virtual ASTNode *optimizeInlineFunction(XQInlineFunction *item); virtual ASTNode *optimizeFunction(XQFunction *item); virtual ASTNode *optimizeTypeswitch(XQTypeswitch *item); virtual ASTNode *optimizeTreatAs(XQTreatAs *item); ASTNode *optimizePlus(Plus *item); ASTNode *optimizeMinus(Minus *item); ASTNode *optimizeMultiply(Multiply *item); ASTNode *optimizeDivide(Divide *item); ASTNode *optimizeAnd(And *item); ASTNode *optimizeOr(Or *item); bool checkSizeLimit(const ASTNode *oldAST, const ASTNode *newAST); DynamicContext *context_; size_t functionInlineLimit_; size_t sizeLimit_; bool redoTyping_; }; #endif XQilla-2.3.0/include/xqilla/dom-api/0000755000151400015140000000000011653572443014160 500000000000000XQilla-2.3.0/include/xqilla/dom-api/XQillaExpression.hpp0000644000151400015140000000352011653565523020064 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __XQILLAEXPRESSION_HPP #define __XQILLAEXPRESSION_HPP #include #include #include #include #include #include #include class DynamicContext; /** * The XQillaExpression interface extends the DOMXPathExpression interface, * providing the ability to release the object. The evaluate method will always return an object of type * XPath2Result * @since DOM Level 3 */ class XQILLA_API XQillaExpression: public XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathExpression { public: //@} /** @name Non-standard Extension */ //@{ /** * Called to indicate that this object (and its associated children) is no longer in use * and that the implementation may relinquish any resources associated with it and * its associated children. * * Access to a released object will lead to unexpected result. */ virtual void release() = 0; //@} }; #endif XQilla-2.3.0/include/xqilla/dom-api/XQillaNSResolver.hpp0000644000151400015140000000666011653565523017777 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __XQILLANSRESOLVER_HPP #define __XQILLANSRESOLVER_HPP #include #include XERCES_CPP_NAMESPACE_BEGIN class XercesDefs; class DOMNode; XERCES_CPP_NAMESPACE_END class XPath2MemoryManager; /** * The XQillaNSResolver interface extends the DOMXPathNSResolver * providing the ability to add additional namespace bindings. * @since DOM Level 3 */ class XQILLA_API XQillaNSResolver : public XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver { public: // ----------------------------------------------------------------------- // Non-standard extension // ----------------------------------------------------------------------- /** @name Non-standard extension */ //@{ /** * Non-standard extension * * XQilla requires additional bindings of namespaces. This method will bind * the given prefix to the associated namespace. * @param prefix of type XMLCh - The prefix to bind. * @param URI of type XMLCh - The associated namespace. */ virtual void addNamespaceBinding(const XMLCh* prefix, const XMLCh* uri) = 0; /** Look up the namespace URI associated to the given namespace prefix. * The XPath evaluator must never call this with a null or empty argument, * because the result of doing this is undefined. * @param prefix of type XMLCh - The prefix to look for. * @return the associated namespace URI or null if none is found. */ virtual const XMLCh* lookupNamespaceURI(const XMLCh* prefix) const = 0; /** * Non-standard extension * * XPath2 implementations require a reverse lookup in the static context. * Look up the prefix associated with the namespace URI * The XPath evaluator must never call this with a null or empty argument, * because the result of doing this is undefined. * @param URI of type XMLCh - The namespace to look for. * @return the associated prefix or null if none is found. */ virtual const XMLCh* lookupPrefix(const XMLCh* uri) const = 0; //@} /** @name Non-standard Extension */ //@{ /** * Called to indicate that this object (and its associated children) is no longer in use * and that the implementation may relinquish any resources associated with it and * its associated children. * * Access to a released object will lead to unexpected result. */ virtual void release() = 0; //@} protected: // ----------------------------------------------------------------------- // Hidden constructors // ----------------------------------------------------------------------- /** @name Hidden constructors */ //@{ XQillaNSResolver() {}; //@} };//XQillaNSResolver #endif //__XQILLANSRESOLVER_HPP XQilla-2.3.0/include/xqilla/dom-api/XPath2Result.hpp0000644000151400015140000001720011653565523017117 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __XPATH2RESULT_HPP #define __XPATH2RESULT_HPP #include #include #include #include #include /** * The XPathResult2 interface represents the result of the evaluation of an XPath * 2.0 expression within the context of a particular node. Since evaluation of an * XPath 2.0 expression can result in various result types, this object makes it * possible to discover and manipulate the type and value of the result. * @since DOM Level 3 */ class XQILLA_API XPath2Result { public: /** @name Destructor */ //@{ /** * Destructor */ virtual ~XPath2Result() {}; //@} /** @name Public Constants */ //@{ /** *

FIRST_RESULT *
The result is a sequence as defined by XPath 2.0 and will be accessed * as a single current value or there will be no current value if the sequence * is empty. Document modification does not invalidate the value, but may mean * that the result no longer corresponds to the current document. This is a * convenience that permits optimization since the implementation can stop once * the first item in the resulting sequence has been found. If there is more * than one item in the actual result, the single item returned might not be * the first in document order. *

ITERATOR_RESULT *
The result is a sequence as defined by XPath 2.0 that will be accessed * iteratively. Document modification invalidates the iteration. *

SNAPSHOT_RESULT *
The result is a sequence as defined by XPath 2.0 that will be accessed * as a snapshot list of values. Document modification does not invalidate the * snapshot but may mean that reevaluation would not yield the same snapshot * and any items in the snapshot may have been altered, moved, or removed from * the document. */ enum ResultType { FIRST_RESULT = 100, ITERATOR_RESULT = 101, SNAPSHOT_RESULT = 102 }; //@} /** @name Functions introduced in DOM Level 3 */ //@{ /** * Returns the result type of this result * @return ResultType * A code representing the type of this result, as defined by the type constants. */ virtual ResultType getResultType() const = 0; /** * Returns true if the result has a current result and the value is a node. * @return isNode of type boolean, readonly */ virtual bool isNode() const = 0; /** * Returns the DOM type info of the current result node or value. * @return typeInfo of type TypeInfo, readonly */ virtual const XERCES_CPP_NAMESPACE_QUALIFIER DOMTypeInfo *getTypeInfo() const = 0; /** * Conversion of the current result to double. If the native double type of the * DOM binding does not directly support the exact IEEE 754 result of the XPath * expression, then it is up to the definition of the binding to specify how the * XPath number is converted to the native binding number. * @return asDouble of type double, readonly * @exception XPathException * TYPE_ERR: raised if current result cannot be properly converted to double. * @exception DOMException * INVALID_STATE_ERR: There is no current result in the result. */ virtual double getNumberValue() const = 0; /** * Conversion of the current result to int. * @return asInt of type int, readonly * @exception XPathException * TYPE_ERR: raised if current result cannot be properly converted to int. * @exception DOMException * INVALID_STATE_ERR: There is no current result in the result. */ virtual int getIntegerValue() const = 0; /** * Conversion of the current result to string. * @return asString of type DOMString, readonly * @exception XPathException * TYPE_ERR: raised if current result cannot be properly converted to string. * @exception DOMException * INVALID_STATE_ERR: There is no current result in the result. */ virtual const XMLCh* getStringValue() const = 0; /** * Conversion of the current result to boolean. * @return asBoolean of type boolean, readonly * @exception XPathException * TYPE_ERR: raised if cannot be properly converted to boolean. * @exception DOMException * INVALID_STATE_ERR: There is no current result in the result. */ virtual bool getBooleanValue() const = 0; /** * Retrieve the current node value. * @return asNode of type Node, readonly * @exception XPathException * TYPE_ERR: raised if current result is not a node. * @exception DOMException * INVALID_STATE_ERR: There is no current result in the result. */ virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* getNodeValue() const = 0; /** * Signifies that the iterator has become invalid. * @return invalidIteratorState of type boolean, readonly */ virtual bool getInvalidIteratorState() const = 0; /** * The number of items in the result snapshot. Valid values for snapshotItem * indices are 0 to snapshotLength-1 inclusive. * @return snapshotLength of type size_t, readonly * @exception XPathException * TYPE_ERR: raised if resultType is not SNAPSHOT_RESULT. */ virtual size_t getSnapshotLength() const = 0; /** * Iterates and returns true if the current result is the next item from the * sequence or false if there are no more items. * @return boolean True if the current result is the next item from the sequence * or false if there are no more items. * @exception XPathException * TYPE_ERR: raised if resultType is not ITERATOR_RESULT. * @exception DOMException * INVALID_STATE_ERR: The document has been mutated since the result was returned. */ virtual bool iterateNext() = 0; /** * Sets the current result to the indexth item in the snapshot collection. If * index is greater than or equal to the number of items in the list, this method * returns false. Unlike the iterator result, the snapshot does not become * invalid, but may not correspond to the current document if it is mutated. * @param index of type size_t - Index into the snapshot collection. * @return boolean True if the current result is the next item from the sequence * or false if there are no more items. * @exception XPathException * TYPE_ERR: raised if resultType is not SNAPSHOT_RESULT. */ virtual bool snapshotItem(size_t) = 0; //@} /** @name Non-standard Extension */ //@{ /** * Called to indicate that this object (and its associated children) is no longer in use * and that the implementation may relinquish any resources associated with it and * its associated children. * * Access to a released object will lead to unexpected result. */ virtual void release() = 0; //@} protected: /** @name Hidden constructors */ //@{ XPath2Result() {}; //@} private: /** @name Unimplemented constructors and operators */ //@{ XPath2Result(const XPath2Result &); XPath2Result &operator=(const XPath2Result &); //@} }; #endif XQilla-2.3.0/include/xqilla/dom-api/impl/0000755000151400015140000000000011653572443015121 500000000000000XQilla-2.3.0/include/xqilla/dom-api/impl/XQillaNSResolverImpl.hpp0000644000151400015140000000434111653565523021554 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __XQILLANSRESOLVERIMPL_HPP #define __XQILLANSRESOLVERIMPL_HPP #include #include #include #include #include class XPath2MemoryManager; class LocationInfo; class XQILLA_API XQillaNSResolverImpl : public XQillaNSResolver { public: XQillaNSResolverImpl(XPath2MemoryManager* memMgr); XQillaNSResolverImpl(XPath2MemoryManager* memMgr, const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver *prevScope); XQillaNSResolverImpl(XPath2MemoryManager* memMgr, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *resolverNode, const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver *prevScope = 0); ~XQillaNSResolverImpl(); virtual const XMLCh* lookupNamespaceURI(const XMLCh* prefix) const; virtual const XMLCh* lookupPrefix(const XMLCh* uri) const; virtual void addNamespaceBinding(const XMLCh* prefix, const XMLCh* uri); void setPreviousScope(const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver *prevScope) { _prevScope = prevScope; } virtual void release(); static void forbiddenBindingCheck(const XMLCh* prefix, const XMLCh* uri, const LocationInfo *info); protected: XERCES_CPP_NAMESPACE_QUALIFIER RefHashTableOf< XMLCh > _namespaceBindings; const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *_resolverNode; const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver* _prevScope; XPath2MemoryManager* _memMgr; }; #endif XQilla-2.3.0/include/xqilla/functions/0000755000151400015140000000000011653572444014643 500000000000000XQilla-2.3.0/include/xqilla/functions/FunctionDocAvailable.hpp0000644000151400015140000000243211653565523021311 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONDOCAVAILABLE_HPP #define _FUNCTIONDOCAVAILABLE_HPP #include class XQILLA_API FunctionDocAvailable : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionDocAvailable(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual BoolResult boolResult(DynamicContext* context) const; virtual Result createResult(DynamicContext* context, int flags) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionDayFromDateTime.hpp0000644000151400015140000000243211653565523021761 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONGETDAYFROMDATETIME_HPP #define _FUNCTIONGETDAYFROMDATETIME_HPP #include #include class XQILLA_API FunctionDayFromDateTime : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionDayFromDateTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionLocalname.hpp0000644000151400015140000000244211653565523020677 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONLOCALNAME_HPP #define _FUNCTIONLOCALNAME_HPP #include #include #include class XQILLA_API FunctionLocalname : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionLocalname(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode* staticResolution(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionTimezoneFromDate.hpp0000644000151400015140000000276511653565523022230 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONGETTIMEZONEFROMDATE_HPP #define _FUNCTIONGETTIMEZONEFROMDATE_HPP #include #include /** * Getter function for timezone component of date. * * xf:timezone-from-date(date? $srcval) => xdt:dayTimeDuration? */ class XQILLA_API FunctionTimezoneFromDate : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; /** * Constructor */ FunctionTimezoneFromDate(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); /** * Returns the string representing the timezone in the value of $srcval */ Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONGETTIMEZONEFROMDATE_HPP XQilla-2.3.0/include/xqilla/functions/FunctionRoot.hpp0000644000151400015140000000305711653565523017732 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* Root function */ #ifndef _FUNCTIONROOT_HPP #define _FUNCTIONROOT_HPP #include #include class XPath2MemoryManager; /** For function. */ class XQILLA_API FunctionRoot : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionRoot(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); /** * Called during static analysis to determine if statically correct. * Performs constant folding if the function has an argument, and it * is constant. */ virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONROOT_HPP XQilla-2.3.0/include/xqilla/functions/FunctionStaticBaseURI.hpp0000644000151400015140000000255311653565523021411 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* static-base-uri function */ #ifndef _FUNCTIONSTATICBASEURI_HPP #define _FUNCTIONSTATICBASEURI_HPP #include #include class XQILLA_API FunctionStaticBaseURI : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionStaticBaseURI(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionSqrt.hpp0000644000151400015140000000216011653565523017732 00000000000000/* * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONSQRT_HPP #define _FUNCTIONSQRT_HPP #include #include class XQILLA_API FunctionSqrt : public EXSLTMathFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionSqrt(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual Result createResult(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionCos.hpp0000644000151400015140000000215411653565523017530 00000000000000/* * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONCOS_HPP #define _FUNCTIONCOS_HPP #include #include class XQILLA_API FunctionCos : public EXSLTMathFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionCos(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual Result createResult(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionDateTime.hpp0000644000151400015140000000237311653565523020503 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTION_DATETIME_HPP #define _FUNCTION_DATETIME_HPP #include #include class XQILLA_API FunctionDateTime : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionDateTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionSin.hpp0000644000151400015140000000215411653565523017535 00000000000000/* * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONSIN_HPP #define _FUNCTIONSIN_HPP #include #include class XQILLA_API FunctionSin : public EXSLTMathFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionSin(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual Result createResult(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/BuiltInModules.hpp0000644000151400015140000000167311653565523020202 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _BUILTINMODULES_HPP #define _BUILTINMODULES_HPP #include class XQILLA_API BuiltInModules { public: static const DelayedModule &core; static const DelayedModule &fn; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionParseXML.hpp0000644000151400015140000000261711653565523020443 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONPARSEXML_HPP #define _FUNCTIONPARSEXML_HPP #include "XQillaFunction.hpp" class QueryPathNode; class XQILLA_API FunctionParseXML : public XQillaFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionParseXML(const VectorOfASTNodes &args, XPath2MemoryManager *memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; QueryPathNode *getQueryPathTree() const { return queryPathTree_; } void setQueryPathTree(QueryPathNode *q) { queryPathTree_ = q; } private: QueryPathNode *queryPathTree_; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionRoundHalfToEven.hpp0000644000151400015140000000245711653565523022015 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* xf:round(numeric? $srcval) => numeric? */ #ifndef _FUNCTIONROUNDHALFTOEVEN_HPP #define _FUNCTIONROUNDHALFTOEVEN_HPP #include #include class XQILLA_API FunctionRoundHalfToEven : public NumericFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionRoundHalfToEven(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONROUNDHALFTOEVEN_HPP XQilla-2.3.0/include/xqilla/functions/FunctionCurrentDate.hpp0000644000151400015140000000240611653565523021224 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONCURRENTDATE_HPP #define _FUNCTIONCURRENTDATE_HPP #include #include class XQILLA_API FunctionCurrentDate : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionCurrentDate(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionTrace.hpp0000644000151400015140000000235411653565523020044 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONTRACE_HPP #define _FUNCTIONTRACE_HPP #include #include class XQILLA_API FunctionTrace : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionTrace(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionYearFromDate.hpp0000644000151400015140000000241611653565523021327 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONGETYEARFROMDATE_HPP #define _FUNCTIONGETYEARFROMDATE_HPP #include #include class XQILLA_API FunctionYearFromDate : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionYearFromDate(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionDocument.hpp0000644000151400015140000000270011653565523020557 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONDOCUMENT_HPP #define _FUNCTIONDOCUMENT_HPP #include #include class QueryPathNode; class XQILLA_API FunctionDocument : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionDocument(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; QueryPathNode *getQueryPathTree() const { return queryPathTree_; } void setQueryPathTree(QueryPathNode *q) { queryPathTree_ = q; } private: QueryPathNode *queryPathTree_; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionSecondsFromDuration.hpp0000644000151400015140000000256611653565523022743 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* seconds-from-dayTimeDuration(dayTimeDuration? $srcval) => decimal? */ #ifndef _FUNCTIONGETSECONDSFROMDAYTIMEDURATION_HPP #define _FUNCTIONGETSECONDSFROMDAYTIMEDURATION_HPP #include #include class XQILLA_API FunctionSecondsFromDuration : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionSecondsFromDuration(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONGETSECONDSFROMDAYTIMEDURATION_HPP XQilla-2.3.0/include/xqilla/functions/XQUserFunction.hpp0000644000151400015140000001576011653565523020202 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQUSERFUNCTION_HPP #define XQUSERFUNCTION_HPP #include #include #include #include #include class XQUserFunction; class XQQuery; class FunctionSignature; class DocumentCache; class VarStoreImpl; class XQILLA_API XQUserFunctionInstance : public XQFunction, public ExternalFunction::Arguments { public: XQUserFunctionInstance(const XQUserFunction *funcDef, const VectorOfASTNodes& args, XPath2MemoryManager *mm); XQUserFunctionInstance(const XQUserFunction *funcDef, const VectorOfASTNodes& args, bool addReturnCheck, XPath2MemoryManager *mm); virtual Result getArgument(size_t index, DynamicContext *context) const; Result createResult(DynamicContext* context, int flags=0) const; virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; ASTNode* staticResolution(StaticContext* context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual PendingUpdateList createUpdateList(DynamicContext *context) const; void evaluateArguments(VarStoreImpl &scope, DynamicContext *context) const; const XQUserFunction *getFunctionDefinition() const { return funcDef_; } void setFunctionDefinition(const XQUserFunction *f) { funcDef_ = f; } bool getAddReturnCheck() const { return addReturnCheck_; } protected: bool addReturnCheck_; const XQUserFunction *funcDef_; }; class XQILLA_API XQUserFunction : public FuncFactory, public LocationInfo { public: class XQILLA_API Mode : public LocationInfo { public: enum State { QNAME, DEFAULT, ALL, CURRENT }; Mode(const XMLCh *qname) : state_(QNAME), qname_(qname), uri_(0), name_(0) {} Mode(const XMLCh *uri, const XMLCh *name) : state_(QNAME), qname_(0), uri_(uri), name_(name) {} Mode(State state) : state_(state), qname_(0), uri_(0), name_(0) {} Mode(const Mode *o) : state_(o->state_), qname_(o->qname_), uri_(o->uri_), name_(o->name_) {} State getState() const { return state_; } const XMLCh *getURI() const { return uri_; } void setURI(const XMLCh *uri) { uri_ = uri; } const XMLCh *getName() const { return name_; } void setName(const XMLCh *name) { name_ = name; } const XMLCh *getQName() const { return qname_; } bool equals(const Mode *o) const; void staticResolution(StaticContext* context); private: State state_; const XMLCh *qname_, *uri_, *name_; }; typedef std::vector > ModeList; // Constructor for an XQuery function XQUserFunction(const XMLCh *qname, FunctionSignature *signature, ASTNode *body, bool isGlobal, XPath2MemoryManager *mm); // Constructor for an XQuery template XQUserFunction(const XMLCh *qname, VectorOfASTNodes *pattern, FunctionSignature *signature, ASTNode *body, XPath2MemoryManager *mm); // from FuncFactory virtual ASTNode *createInstance(const VectorOfASTNodes &args, XPath2MemoryManager* expr) const; virtual const XMLCh *getQName() const { return qname_; } void setName(const XMLCh *name) { name_ = name; } void setURI(const XMLCh *uri) { uri_ = uri; } VectorOfASTNodes *getPattern() const { return pattern_; } void setPattern(VectorOfASTNodes *pattern) { pattern_ = pattern; } ModeList *getModeList() const { return modes_; } void setModeList(ModeList *modes) { modes_ = modes; } FunctionSignature *getSignature() const { return signature_; } ASTNode *getTemplateInstance() const { return templateInstance_; } void setTemplateInstance(ASTNode *ast) { templateInstance_ = ast; } bool isGlobal() const { return isGlobal_; } bool isTemplate() const { return isTemplate_; } bool isRecursive() const { return recursive_; } bool isDelayed() const { return delayed_; } void setDelayed(bool v) { delayed_ = v; } void resolveName(StaticContext *context); /// Resolve URIs, give the function a default static type void staticResolutionStage1(StaticContext* context); /// Resolve the function body, work out a more static return type void staticResolutionStage2(StaticContext* context); void staticTypingOnce(StaticContext *context, StaticTyper *styper); void resetStaticTypingOnce(); void staticTyping(StaticContext *context, StaticTyper *styper); void setFunctionBody(ASTNode* value) { body_ = value; } void setModuleDocumentCache(DocumentCache* docCache) { moduleDocCache_ = docCache; } const ASTNode *getFunctionBody() const { return body_; } const ExternalFunction *getExternalFunction() const { return exFunc_; } DocumentCache *getModuleDocumentCache() const { return moduleDocCache_; } const StaticAnalysis &getBodyStaticAnalysis() const { return src_; } XPath2MemoryManager *getMemoryManager() const { return memMgr_; } static void staticTypeFunctionCalls(ASTNode *item, StaticContext *context, StaticTyper *styper); static const XMLCh XMLChXQueryLocalFunctionsURI[]; protected: // Constructor for copying XQUserFunction(const XQUserFunction *o, XPath2MemoryManager *mm); // Implementation for releasing void releaseImpl(); ASTNode *body_; const ExternalFunction *exFunc_; const XMLCh *qname_; VectorOfASTNodes *pattern_; ASTNode *templateInstance_; ModeList *modes_; FunctionSignature *signature_; bool isGlobal_; bool isTemplate_; XPath2MemoryManager *memMgr_; StaticAnalysis src_; enum StaticTypingStatus { BEFORE, DURING, AFTER } staticTyped_; bool recursive_; bool delayed_; DocumentCache *moduleDocCache_; friend class XQUserFunctionInstance; friend class ASTCopier; friend class ASTReleaser; }; class XQILLA_API DelayedFuncFactory : public FuncFactory { public: DelayedFuncFactory(const XMLCh *uri, const XMLCh *name, size_t numArgs, const XMLCh *body, int line, int column, XQQuery *query); DelayedFuncFactory(const XMLCh *uri, const XMLCh *name, size_t numArgs, const char *body, int line, int column, XQQuery *query); virtual ASTNode *createInstance(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) const; bool isParsed() const { return function_ != 0; } private: const XMLCh *body_; const char *body8_; int line_, column_; XQQuery *query_; XQUserFunction *function_; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionCeiling.hpp0000644000151400015140000000241311653565523020354 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* xf:ceiling(numeric? $srcval) => numeric? */ #ifndef _FUNCTIONCEILING_HPP #define _FUNCTIONCEILING_HPP #include #include class XQILLA_API FunctionCeiling : public NumericFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionCeiling(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONCEILING_HPP XQilla-2.3.0/include/xqilla/functions/FunctionFunctionArity.hpp0000644000151400015140000000242211653565523021600 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONFUNCTIONARITY_HPP #define _FUNCTIONFUNCTIONARITY_HPP #include #include class XQILLA_API FunctionFunctionArity : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionFunctionArity(const VectorOfASTNodes &args, XPath2MemoryManager *memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionContains.hpp0000644000151400015140000000234411653565523020563 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONCONTAINS_HPP #define _FUNCTIONCONTAINS_HPP #include /** Contains function. */ class XQILLA_API FunctionContains : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionContains(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual BoolResult boolResult(DynamicContext* context) const; virtual Result createResult(DynamicContext* context, int flags) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionCurrentTime.hpp0000644000151400015140000000241111653565523021241 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONCURRENTTIME_HPP #define _FUNCTIONCURRENTTIME_HPP #include #include class XQILLA_API FunctionCurrentTime : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionCurrentTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionHoursFromTime.hpp0000644000151400015140000000242211653565523021545 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONGETHOURSFROMTIME_HPP #define _FUNCTIONGETHOURSFROMTIME_HPP #include #include class XQILLA_API FunctionHoursFromTime : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionHoursFromTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionSubstring.hpp0000644000151400015140000000256311653565523020770 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* Substring function */ #ifndef _FUNCTIONSUBSTRING_HPP #define _FUNCTIONSUBSTRING_HPP #include #include /** Substring function. */ class XQILLA_API FunctionSubstring : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionSubstring(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); /** Returns the substring to the right of parm2 until optional parm3 from string parm1 **/ Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONSUBSTRING_HPP XQilla-2.3.0/include/xqilla/functions/FunctionTimezoneFromDateTime.hpp0000644000151400015140000000304411653565523023036 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONGETTIMEZONEFROMDATETIME_HPP #define _FUNCTIONGETTIMEZONEFROMDATETIME_HPP #include #include /** * Getter function for the timezone component of dateTime * * timezone-from-dateTime(dateTime $srcval) => xdt:dayTimeDuration? */ class XQILLA_API FunctionTimezoneFromDateTime : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; /** * Constructor. */ FunctionTimezoneFromDateTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); /** * Returns a string representing the timezone component in the value of * $srcval. */ Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONGETTIMEZONEFROMDATETIME_HPP XQilla-2.3.0/include/xqilla/functions/FunctionAbs.hpp0000644000151400015140000000226211653565523017511 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONABS_HPP #define _FUNCTIONABS_HPP #include #include class XQILLA_API FunctionAbs : public NumericFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionAbs(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual Result createResult(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionDistinctValues.hpp0000644000151400015140000000242211653565523021743 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONDISTINCTVALUES_HPP #define _FUNCTIONDISTINCTVALUES_HPP #include #include class XQILLA_API FunctionDistinctValues : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionDistinctValues(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionHead.hpp0000644000151400015140000000221311653565523017641 00000000000000/* * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONHEAD_HPP #define _FUNCTIONHEAD_HPP #include #include class XQILLA_API FunctionHead : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionHead(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); ASTNode *staticTypingImpl(StaticContext *context); Result createResult(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionPosition.hpp0000644000151400015140000000231711653565523020611 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONPOSITION_HPP #define _FUNCTIONPOSITION_HPP #include class XQILLA_API FunctionPosition : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionPosition(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionFunctionName.hpp0000644000151400015140000000231111653565523021365 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONFUNCTIONNAME_HPP #define _FUNCTIONFUNCTIONNAME_HPP #include #include class XQILLA_API FunctionFunctionName : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionFunctionName(const VectorOfASTNodes &args, XPath2MemoryManager *memMgr); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionUnordered.hpp0000644000151400015140000000244011653565523020731 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONUNORDERED_HPP #define _FUNCTIONUNORDERED_HPP #include class XQILLA_API FunctionUnordered : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionUnordered(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); Result createResult(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONUNORDERED_HPP XQilla-2.3.0/include/xqilla/functions/FunctionEmpty.hpp0000644000151400015140000000246111653565523020103 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONEMPTY_HPP #define _FUNCTIONEMPTY_HPP #include class XQILLA_API FunctionEmpty : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionEmpty(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual BoolResult boolResult(DynamicContext* context) const; virtual Result createResult(DynamicContext* context, int flags) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionCodepointsToString.hpp0000644000151400015140000000270311653565523022605 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* codepoints-to-string function */ #ifndef _FUNCTIONCODEPOINTSTOSTRING_HPP #define _FUNCTIONCODEPOINTSTOSTRING_HPP #include #include /** codepoints-to-string function */ class XQILLA_API FunctionCodepointsToString : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; ///Constructor. FunctionCodepointsToString(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); protected: /** takes a series of integers (codepoints) and turns them into a unicode string */ Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONCODEPOINTSTOSTRING_HPP XQilla-2.3.0/include/xqilla/functions/FunctionRegexGroup.hpp0000644000151400015140000000237711653565523021102 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONREGEXGROUP_HPP #define _FUNCTIONREGEXGROUP_HPP #include #include class XQILLA_API FunctionRegexGroup : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionRegexGroup(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionTimezoneFromTime.hpp0000644000151400015140000000276511653565523022251 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONGETTIMEZONEFROMTIME_HPP #define _FUNCTIONGETTIMEZONEFROMTIME_HPP #include #include /** * Getter function for timezone component of time. * * xf:timezone-from-time(time? $srcval) => xdt:dayTimeDuration? */ class XQILLA_API FunctionTimezoneFromTime : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; /** * Constructor */ FunctionTimezoneFromTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); /** * Returns the string representing the timezone in the value of $srcval */ Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONGETTIMEZONEFROMTIME_HPP XQilla-2.3.0/include/xqilla/functions/FunctionName.hpp0000644000151400015140000000242011653565523017660 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONNAME_HPP #define _FUNCTIONNAME_HPP #include #include #include class XQILLA_API FunctionName : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionName(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode* staticResolution(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionNilled.hpp0000644000151400015140000000226011653565523020211 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONNILLED_HPP #define _FUNCTIONNILLED_HPP #include #include class XQILLA_API FunctionNilled : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionNilled(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionYearsFromDuration.hpp0000644000151400015140000000306011653565523022416 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONGETYEARSFROMYEARMONTHDURATION_HPP #define _FUNCTIONGETYEARSFROMYEARMONTHDURATION_HPP #include #include /** * Getter function for the years component of yearMonthDuration * * years-from-duration(yearMonthDuration? $srcval) => integer? */ class XQILLA_API FunctionYearsFromDuration : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; /** * Constructor. */ FunctionYearsFromDuration(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); /** * Returns an integer representing the years component in the value of * $srcval */ Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONGETYEARSFROMYEARMONTHDURATION_HPP XQilla-2.3.0/include/xqilla/functions/FunctionMinutesFromDateTime.hpp0000644000151400015140000000245211653565523022672 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONGETMINUTESFROMDATETIME_HPP #define _FUNCTIONGETMINUTESFROMDATETIME_HPP #include #include class XQILLA_API FunctionMinutesFromDateTime : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionMinutesFromDateTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionMatches.hpp0000644000151400015140000000330511653565523020367 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONMATCHES_HPP #define _FUNCTIONMATCHES_HPP #include XERCES_CPP_NAMESPACE_BEGIN class XMLException; class RegularExpression; class ParseException; XERCES_CPP_NAMESPACE_END class XQILLA_API FunctionMatches : public RegExpFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionMatches(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual BoolResult boolResult(DynamicContext* context) const; virtual Result createResult(DynamicContext* context, int flags) const; static bool matches(const XMLCh *input, const XMLCh *pattern, const XMLCh *options = 0); static bool matches(const XMLCh *input, const XERCES_CPP_NAMESPACE_QUALIFIER RegularExpression* regExp); private: void processXMLException(XERCES_CPP_NAMESPACE_QUALIFIER XMLException &e, const char* sourceMsg) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionDaysFromDuration.hpp0000644000151400015140000000302611653565523022235 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONGETDAYSFROMDAYTIMEDURATION_HPP #define _FUNCTIONGETDAYSFROMDAYTIMEDURATION_HPP #include #include /** * Getter for the days component of dayTimeDuration. * * days-from-Duration(dayTimeDuration? $srcval) => integer? */ class XQILLA_API FunctionDaysFromDuration : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; /** * Constructor. */ FunctionDaysFromDuration(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); /** * Returns an integer representing the days component of the value of * $srcval. */ Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONGETDAYSFROMDAYTIMEDURATION_HPP XQilla-2.3.0/include/xqilla/functions/FunctionFloor.hpp0000644000151400015140000000237411653565523020071 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* xf:floor(numeric? $srcval) => numeric? */ #ifndef _FUNCTIONFLOOR_HPP #define _FUNCTIONFLOOR_HPP #include #include class XQILLA_API FunctionFloor : public NumericFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionFloor(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONFLOOR_HPP XQilla-2.3.0/include/xqilla/functions/FunctionTail.hpp0000644000151400015140000000305411653565523017675 00000000000000/* * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONTAIL_HPP #define _FUNCTIONTAIL_HPP #include #include #include class XQILLA_API FunctionTail : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionTail(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); ASTNode *staticTypingImpl(StaticContext *context); Result createResult(DynamicContext* context, int flags=0) const; }; class XQILLA_API FunctionDrop : public XQillaFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionDrop(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); ASTNode *staticTypingImpl(StaticContext *context); Result createResult(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionDefaultCollation.hpp0000644000151400015140000000236011653565523022234 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONDEFAULTCOLLATION_HPP #define _FUNCTIONDEFAULTCOLLATION_HPP #include class XQILLA_API FunctionDefaultCollation : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionDefaultCollation(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticResolution(StaticContext *context); virtual Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionPower.hpp0000644000151400015140000000216411653565523020101 00000000000000/* * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONPOWER_HPP #define _FUNCTIONPOWER_HPP #include #include class XQILLA_API FunctionPower : public EXSLTMathFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionPower(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual Result createResult(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionMinutesFromTime.hpp0000644000151400015140000000242711653565523022076 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONGETMINUTESFROMTIME_HPP #define _FUNCTIONGETMINUTESFROMTIME_HPP #include #include class XQILLA_API FunctionMinutesFromTime : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionMinutesFromTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionSecondsFromDateTime.hpp0000644000151400015140000000245211653565523022644 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONGETSECONDSFROMDATETIME_HPP #define _FUNCTIONGETSECONDSFROMDATETIME_HPP #include #include class XQILLA_API FunctionSecondsFromDateTime : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionSecondsFromDateTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionCount.hpp0000644000151400015140000000273111653565523020075 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* xf:count(item* $srcval) => unsignedInt */ #ifndef _FUNCTIONCOUNT_HPP #define _FUNCTIONCOUNT_HPP #include #include class XQILLA_API FunctionCount : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; ///Constructor. Sets arg def to NOT_OPTIONAL. FunctionCount(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); ASTNode* staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); /** Returns the number of nodes in the nodelist argument. **/ Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONCOUNT_HPP XQilla-2.3.0/include/xqilla/functions/FunctionError.hpp0000644000151400015140000000254611653565523020102 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONError_HPP #define _FUNCTIONError_HPP #include #include class XQILLA_API FunctionError : public XQFunction { public: static const XMLCh XMLChXQueryErrorURI[]; static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionError(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; virtual PendingUpdateList createUpdateList(DynamicContext *context) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionCurrentDateTime.hpp0000644000151400015140000000247311653565523022047 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* current-dateTime function */ #ifndef _FUNCTIONCURRENT_DATETIME_HPP #define _FUNCTIONCURRENT_DATETIME_HPP #include #include class XQILLA_API FunctionCurrentDateTime : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionCurrentDateTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionString.hpp0000644000151400015140000000261611653565523020255 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONSTRING_HPP #define _FUNCTIONSTRING_HPP #include #include class XQILLA_API FunctionString : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionString(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode* staticResolution(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; static const XMLCh *string(const Item::Ptr &item, DynamicContext *context); static Item::Ptr string_item(const Item::Ptr &item, DynamicContext *context); }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionResolveURI.hpp0000644000151400015140000000241411653565523021002 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONRESOLVEURI_HPP #define _FUNCTIONRESOLVEURI_HPP #include #include class XQILLA_API FunctionResolveURI : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionResolveURI(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticResolution(StaticContext *context); virtual Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionNormalizeUnicode.hpp0000644000151400015140000000250411653565523022252 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* normalize-unicode function */ #ifndef _FUNCTIONNORMALIZEUNICODE_HPP #define _FUNCTIONNORMALIZEUNICODE_HPP #include #include /** normalize-unicode function. */ class XQILLA_API FunctionNormalizeUnicode : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionNormalizeUnicode(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONNORMALIZEUNICODE_HPP XQilla-2.3.0/include/xqilla/functions/FunctionStringToCodepoints.hpp0000644000151400015140000000250611653565523022606 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* StringToCodepoints function */ #ifndef _FUNCTIONSTRINGTOCODEPOINTS_HPP #define _FUNCTIONSTRINGTOCODEPOINTS_HPP #include #include /** StringToCodepoints function */ class XQILLA_API FunctionStringToCodepoints : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionStringToCodepoints(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONCONTAINS_HPP XQilla-2.3.0/include/xqilla/functions/FunctionPrefixFromQName.hpp0000644000151400015140000000262011653565523022005 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * fn:prefix-from-QName function */ #ifndef _FUNCTIONPREFIXFROMQNAME_HPP #define _FUNCTIONPREFIXFROMQNAME_HPP #include #include #include class XQILLA_API FunctionPrefixFromQName : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionPrefixFromQName(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); /** Returns the prefix part of a QName, eg for foo:bar it returns foo */ Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONPREFIXFROMQNAME_HPP XQilla-2.3.0/include/xqilla/functions/FunctionMonthFromDateTime.hpp0000644000151400015140000000244211653565523022332 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONGETMONTHFROMDATETIME_HPP #define _FUNCTIONGETMONTHFROMDATETIME_HPP #include #include class XQILLA_API FunctionMonthFromDateTime : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionMonthFromDateTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionLang.hpp0000644000151400015140000000235011653565523017663 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONLANG_HPP #define _FUNCTIONLANG_HPP #include #include class XQILLA_API FunctionLang : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionLang(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode* staticResolution(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionAdjustTimeToTimezone.hpp0000644000151400015140000000244611653565523023077 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONADJUSTTIMETOTIMEZONE_HPP #define _FUNCTIONADJUSTTIMETOTIMEZONE_HPP #include #include class XQILLA_API FunctionAdjustTimeToTimezone : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionAdjustTimeToTimezone(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionNumber.hpp0000644000151400015140000000265611653565523020243 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONNUMBER_HPP #define _FUNCTIONNUMBER_HPP #include #include class XQILLA_API FunctionNumber : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionNumber(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode* staticResolution(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; static Numeric::Ptr number(const Item::Ptr &item, DynamicContext *context, const LocationInfo *location); static Numeric::Ptr number(const AnyAtomicType *item, DynamicContext *context); }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionLocalNameFromQName.hpp0000644000151400015140000000270511653565523022407 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * fn:local-name-from-QName function */ #ifndef _FUNCTIONGETLOCALNAMEFROMQNAME_HPP #define _FUNCTIONGETLOCALNAMEFROMQNAME_HPP #include #include #include /** Name function */ class XQILLA_API FunctionLocalNameFromQName : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionLocalNameFromQName(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); /** Returns the local-name part of a QName, eg for foo:bar it returns bar */ Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONGETLOCALNAMEFROMQNAME_HPP XQilla-2.3.0/include/xqilla/functions/FunctionAnalyzeString.hpp0000644000151400015140000000233511653565523021577 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONANALYZESTRING_HPP #define _FUNCTIONANALYZESTRING_HPP #include "XQillaFunction.hpp" class XQILLA_API FunctionAnalyzeString : public XQillaFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionAnalyzeString(const VectorOfASTNodes &args, XPath2MemoryManager *memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/EXSLTMathFunction.hpp0000644000151400015140000000175311653565523020521 00000000000000/* * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _EXSLTMATHFUNCTION_HPP #define _EXSLTMATHFUNCTION_HPP #include class XQILLA_API EXSLTMathFunction : public NumericFunction { public: static const XMLCh XMLChFunctionURI[]; EXSLTMathFunction(const XMLCh* name, const char *signature, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionMonthFromDate.hpp0000644000151400015140000000242211653565523021511 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONGETMONTHFROMDATE_HPP #define _FUNCTIONGETMONTHFROMDATE_HPP #include #include class XQILLA_API FunctionMonthFromDate : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionMonthFromDate(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionBaseURI.hpp0000644000151400015140000000243211653565523020235 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONBASEURI_HPP #define _FUNCTIONBASEURI_HPP #include #include #include class XQILLA_API FunctionBaseURI : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionBaseURI(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode* staticResolution(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionUnparsedText.hpp0000644000151400015140000000240711653565523021433 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONUNPARSEDTEXT_HPP #define _FUNCTIONUNPARSEDTEXT_HPP #include #include class XQILLA_API FunctionUnparsedText : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionUnparsedText(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionUpperCase.hpp0000644000151400015140000000271311653565523020674 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONUPPERCASE_HPP #define _FUNCTIONUPPERCASE_HPP #include #include /** * Returns the given value after translating every lower-case letter to its * upper-case correspondent. * * xf:upper-case(string? $srcval) => string? * */ class XQILLA_API FunctionUpperCase : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; /** * Constructor */ FunctionUpperCase(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); /** * Returns the upper-case string. */ Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONUPPERCASE_HPP XQilla-2.3.0/include/xqilla/functions/FunctionDocumentURI.hpp0000644000151400015140000000251311653565523021141 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* document-uri function */ #ifndef _FUNCTIONDOCUMENTURI_HPP #define _FUNCTIONDOCUMENTURI_HPP #include #include class Sequence; /* document-uri function */ class XQILLA_API FunctionDocumentURI : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionDocumentURI(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); /* returns the document-URI property of the node */ Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionNodeName.hpp0000644000151400015140000000235711653565523020477 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONNODENAME_HPP #define _FUNCTIONNODENAME_HPP #include #include class XQILLA_API FunctionNodeName : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionNodeName(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionCompare.hpp0000644000151400015140000000234711653565523020376 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* Compare function */ #ifndef _FUNCTIONCOMPARE_HPP #define _FUNCTIONCOMPARE_HPP #include #include class XQILLA_API FunctionCompare : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionCompare(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONCOMPARE_HPP XQilla-2.3.0/include/xqilla/functions/FunctionStringLength.hpp0000644000151400015140000000233111653565523021411 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONSTRINGLENGTH_HPP #define _FUNCTIONSTRINGLENGTH_HPP #include class XQILLA_API FunctionStringLength : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionStringLength(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticResolution(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionNamespaceURIFromQName.hpp0000644000151400015140000000257411653565523023034 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * xf:namespace-uri-from-QName function */ #ifndef _FUNCTIONGETNAMESPACEURIFROMQNAME_HPP #define _FUNCTIONGETNAMESPACEURIFROMQNAME_HPP #include #include class XQILLA_API FunctionNamespaceURIFromQName : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionNamespaceURIFromQName(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); /** Returns the namespace part of a QName*/ Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONGETNAMESPACEURIFROMQNAME_HPP XQilla-2.3.0/include/xqilla/functions/FunctionSerializeJSON.hpp0000644000151400015140000000223411653565523021424 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONSERIALIZEJSON_HPP #define _FUNCTIONSERIALIZEJSON_HPP #include "XQillaFunction.hpp" class XQILLA_API FunctionSerializeJSON : public XQillaFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionSerializeJSON(const VectorOfASTNodes &args, XPath2MemoryManager *memMgr); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionCollection.hpp0000644000151400015140000000277211653565523021105 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONCOLLECTION_HPP #define _FUNCTIONCOLLECTION_HPP #include #include class QueryPathNode; class XQILLA_API FunctionCollection : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionCollection(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); /** resolve the uri and return the DOM tree **/ Sequence createSequence(DynamicContext* context, int flags=0) const; QueryPathNode *getQueryPathTree() const { return queryPathTree_; } void setQueryPathTree(QueryPathNode *q) { queryPathTree_ = q; } private: QueryPathNode *queryPathTree_; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionSignature.hpp0000644000151400015140000000515511653565523020751 00000000000000/* * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef FUNCTIONSIGNATURE_HPP #define FUNCTIONSIGNATURE_HPP #include #include #include class SequenceType; class XQILLA_API ArgumentSpec : public LocationInfo { public: ArgumentSpec(const XMLCh *qname, SequenceType *type, XPath2MemoryManager *memMgr); ArgumentSpec(const ArgumentSpec *o, XPath2MemoryManager *memMgr); void release(XPath2MemoryManager *mm); const XMLCh *getURI() const { return uri_; } void setURI(const XMLCh *uri) { uri_ = uri; } const XMLCh *getName() const { return name_; } void setName(const XMLCh *name) { name_ = name; } const XMLCh *getQName() const { return qname_; } void setQName(const XMLCh *qname) { qname_ = qname; } SequenceType *getType() const { return seqType_; } void setType(SequenceType *type) { seqType_ = type; } bool isUsed() const { return used_; } void setNotUsed() { used_ = false; } const StaticAnalysis &getStaticAnalysis() const { return src_; } void staticResolution(StaticContext* context); private: const XMLCh *qname_, *uri_, *name_; bool used_; SequenceType *seqType_; StaticAnalysis src_; }; typedef std::vector > ArgumentSpecs; class XQILLA_API FunctionSignature { public: FunctionSignature(XPath2MemoryManager *mm); FunctionSignature(ArgumentSpecs *a, SequenceType *r, XPath2MemoryManager *mm); FunctionSignature(const FunctionSignature *o, XPath2MemoryManager *mm); FunctionSignature(const FunctionSignature *o, unsigned int skipArg, XPath2MemoryManager *mm); void release(); void staticResolution(StaticContext *context); void toBuffer(XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &buffer, bool typeSyntax) const; enum OptionValue { OP_DEFAULT, OP_TRUE, OP_FALSE }; OptionValue updating; OptionValue nondeterministic; OptionValue privateOption; ArgumentSpecs *argSpecs; SequenceType *returnType; XPath2MemoryManager *memMgr; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionWords.hpp0000644000151400015140000000261311653565523020102 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ #ifndef _FUNCTIONWORDS_HPP #define _FUNCTIONWORDS_HPP #include "XQillaFunction.hpp" /** * Breaks the $input string into a sequence of words, * words(string? $input) => string* */ class XQILLA_API FunctionWords : public XQillaFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; /** * Constructor. */ FunctionWords(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); /** * Returns $input broken into a sequence of strings * using matches to $pattern as a separator. */ Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONWORDS_HPP XQilla-2.3.0/include/xqilla/functions/FuncFactoryTemplate.hpp0000644000151400015140000000271711653565523021222 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCFACTORYTEMPLATE_HPP #define _FUNCFACTORYTEMPLATE_HPP #include template class FuncFactoryTemplate : public FuncFactory { public: FuncFactoryTemplate(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr) : FuncFactory(TYPE::XMLChFunctionURI, TYPE::name, TYPE::minArgs, TYPE::maxArgs, memMgr) { } FuncFactoryTemplate(const XMLCh *uri, const XMLCh *name, size_t minArgs, size_t maxArgs, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm) : FuncFactory(uri, name, minArgs, maxArgs, mm) { } virtual ASTNode *createInstance(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) const { return new (memMgr) TYPE(args, memMgr); } }; #endif XQilla-2.3.0/include/xqilla/functions/XQillaFunction.hpp0000644000151400015140000000212311653565523020172 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQILLAFUNCTION_HPP #define XQILLAFUNCTION_HPP #include class XQILLA_API XQillaFunction : public XQFunction { public: static const XMLCh XQillaPrefix[]; static const XMLCh XMLChFunctionURI[]; protected: XQillaFunction(const XMLCh *name, const char *signature, const VectorOfASTNodes &args, XPath2MemoryManager *memMgr); }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionMonthsFromDuration.hpp0000644000151400015140000000307011653565523022604 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONGETMONTHSFROMYEARMONTHDURATION_HPP #define _FUNCTIONGETMONTHSFROMYEARMONTHDURATION_HPP #include #include /** * Getter function for the months component of yearMonthDuration. * * months-from-duration(yearMonthDuration? $srcval) => integer? */ class XQILLA_API FunctionMonthsFromDuration : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; /** * Constructor. */ FunctionMonthsFromDuration(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); /** * Returns an integer representing the months component in the value of * $srcval. */ Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONGETMONTHSFROMYEARMONTHDURATION_HPP XQilla-2.3.0/include/xqilla/functions/ExternalFunction.hpp0000644000151400015140000000372211653565523020570 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _EXTERNALFUNCTION_HPP #define _EXTERNALFUNCTION_HPP #include #include class Result; class PendingUpdateList; class DynamicContext; class XPath2MemoryManager; class XQILLA_API ExternalFunction { public: class XQILLA_API Arguments { public: virtual ~Arguments() {} /// Return the result for the argument index specified. Arguments indexes are zero based. virtual Result getArgument(size_t index, DynamicContext *context) const = 0; }; virtual ~ExternalFunction() {} const XMLCh *getURI() const { return uri_; } const XMLCh *getName() const { return name_; } const XMLCh *getURINameHash() const { return uriName_; } unsigned int getNumberOfArguments() const { return numArgs_; } /// Execute the (non-updating) function virtual Result execute(const Arguments *args, DynamicContext *context) const; /// Execute the updating function virtual PendingUpdateList executeUpdate(const Arguments *args, DynamicContext *context) const; protected: ExternalFunction(const XMLCh *uri, const XMLCh *name, unsigned int numberOfArgs, XPath2MemoryManager *mm); const XMLCh *uri_; const XMLCh *name_; const XMLCh *uriName_; unsigned int numArgs_; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionCaseFold.hpp0000644000151400015140000000243111653565523020462 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ #ifndef _FUNCTIONCASEFOLD_HPP #define _FUNCTIONCASEFOLD_HPP #include "XQillaFunction.hpp" /** * Returns case-fold value. * */ class XQILLA_API FunctionCaseFold : public XQillaFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; /** * Constructor */ FunctionCaseFold(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); /** * Returns the upper-case string. */ Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONCASEFOLD_HPP XQilla-2.3.0/include/xqilla/functions/RegExpFunction.hpp0000644000151400015140000000415711653565523020203 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _REGEXPFUNCTION_HPP #define _REGEXPFUNCTION_HPP #include XERCES_CPP_NAMESPACE_BEGIN class RegularExpression; class ParseException; XERCES_CPP_NAMESPACE_END class XQILLA_API RegExpFunction: public XQFunction { public: RegExpFunction(const XMLCh* name, const char *signature, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); //getting a pre-compiled regular expression const XERCES_CPP_NAMESPACE_QUALIFIER RegularExpression* getRegExp() const { return regExp_; }; //this method is needed for copying a pre-compiled regular expression, //it copies @pattern_ and @options_ and then compiles a new regular expression //@source is the regexp function which we copy a regexp from virtual void copyRegExp(RegExpFunction *source, XPath2MemoryManager* memMgr); protected: //if a regular expession is a constant, then we will store a compiled regexp here, //and also pattern, and options if presented. We need those values when copying this function const XERCES_CPP_NAMESPACE_QUALIFIER RegularExpression *regExp_; const XMLCh *pattern_; const XMLCh *options_; //helper functions virtual void checkRegexpOpts(const XMLCh* opts, const char* sourceMsg) const; virtual void processParseException(XERCES_CPP_NAMESPACE_QUALIFIER ParseException &e, const char* sourceMsg, XPath2MemoryManager* memMgr) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionStartsWith.hpp0000644000151400015140000000232211653565523021115 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONSTARTSWITH_HPP #define _FUNCTIONSTARTSWITH_HPP #include class XQILLA_API FunctionStartsWith : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionStartsWith(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual BoolResult boolResult(DynamicContext* context) const; virtual Result createResult(DynamicContext* context, int flags) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionExplain.hpp0000644000151400015140000000263411653565523020407 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONEXPLAIN_HPP #define _FUNCTIONEXPLAIN_HPP #include class QueryPathNode; class XQILLA_API FunctionExplain : public XQillaFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionExplain(const VectorOfASTNodes &args, XPath2MemoryManager *memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; QueryPathNode *getQueryPathTree() const { return queryPathTree_; } void setQueryPathTree(QueryPathNode *q) { queryPathTree_ = q; } private: QueryPathNode *queryPathTree_; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionReplace.hpp0000644000151400015140000000515511653565523020363 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONREPLACE_HPP #define _FUNCTIONREPLACE_HPP #include XERCES_CPP_NAMESPACE_BEGIN class RuntimeException; class RegularExpression; class ParseException; XERCES_CPP_NAMESPACE_END /** * Returns the string that is obtained by replacing all non-overlapping substrings of $input * that match the given $pattern with an occurrence of the $replacement string. * * xf:replace(string? $input, string $pattern, string $replacement) => string? * xf:replace(string? $input, string $pattern, string $replacement, * string $flags) => string? */ class XQILLA_API FunctionReplace : public RegExpFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; /** * Constructor. */ FunctionReplace(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); /** * Returns $input with non-overlapping matches to $pattern * replaced by $replacement */ Sequence createSequence(DynamicContext* context, int flags=0) const; static const XMLCh *replace(const XMLCh *input, const XMLCh *pattern, const XMLCh *replacement, const XMLCh *options = 0, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager); static const XMLCh *replace(const XMLCh *input, const XERCES_CPP_NAMESPACE_QUALIFIER RegularExpression *regExp, const XMLCh *replacement, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager); private: //helper functions void processRuntimeException(XERCES_CPP_NAMESPACE_QUALIFIER RuntimeException &e, const char* sourceMsg) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionNormalizeSpace.hpp0000644000151400015140000000234111653565523021716 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONNORMALIZESPACE_HPP #define _FUNCTIONNORMALIZESPACE_HPP #include class XQILLA_API FunctionNormalizeSpace : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionNormalizeSpace(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticResolution(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionParseJSON.hpp0000644000151400015140000000307511653565523020553 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONPARSEJSON_HPP #define _FUNCTIONPARSEJSON_HPP #include class QueryPathNode; class XQILLA_API FunctionParseJSON : public XQillaFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionParseJSON(const VectorOfASTNodes &args, XPath2MemoryManager *memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; QueryPathNode *getQueryPathTree() const { return queryPathTree_; } void setQueryPathTree(QueryPathNode *q) { queryPathTree_ = q; } static void parseJSON(const XMLCh *jsonString, EventHandler *handler, DynamicContext *context, const LocationInfo *location); private: QueryPathNode *queryPathTree_; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionIdref.hpp0000644000151400015140000000244511653565523020040 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONIDREF_HPP #define _FUNCTIONIDREF_HPP #include #include #include #include class XQILLA_API FunctionIdref : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionIdref(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode* staticResolution(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionAcos.hpp0000644000151400015140000000216011653565523017666 00000000000000/* * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONACOS_HPP #define _FUNCTIONACOS_HPP #include #include class XQILLA_API FunctionAcos : public EXSLTMathFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionAcos(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual Result createResult(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionHoursFromDateTime.hpp0000644000151400015140000000244211653565523022345 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONGETHOURSFROMDATETIME_HPP #define _FUNCTIONGETHOURSFROMDATETIME_HPP #include #include class XQILLA_API FunctionHoursFromDateTime : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionHoursFromDateTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionParseHTML.hpp0000644000151400015140000000306711653565523020547 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONPARSEHTML_HPP #define _FUNCTIONPARSEHTML_HPP #include class QueryPathNode; class XQILLA_API FunctionParseHTML : public XQillaFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionParseHTML(const VectorOfASTNodes &args, XPath2MemoryManager *memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; QueryPathNode *getQueryPathTree() const { return queryPathTree_; } void setQueryPathTree(QueryPathNode *q) { queryPathTree_ = q; } static void parseHTML(const XMLCh *html, EventHandler *handler, DynamicContext *context, const LocationInfo *location); private: QueryPathNode *queryPathTree_; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionMinutesFromDuration.hpp0000644000151400015140000000307011653565523022760 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONGETMINUTESFROMDAYTIMEDURATION_HPP #define _FUNCTIONGETMINUTESFROMDAYTIMEDURATION_HPP #include #include /** * Getter function for the minutes component of dayTimeDuration. * * minutes-from-duration(dayTimeDuration? $srcval) => integer? */ class XQILLA_API FunctionMinutesFromDuration : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; /** * Constructor. */ FunctionMinutesFromDuration(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); /** * Returns an integer representing the minutes component in the value * of $srcval. */ Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONGETMINUTESFROMDAYTIMEDURATION_HPP XQilla-2.3.0/include/xqilla/functions/FunctionTokenize.hpp0000644000151400015140000000366011653565523020577 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONTOKENIZE_HPP #define _FUNCTIONTOKENIZE_HPP #include XERCES_CPP_NAMESPACE_BEGIN class RuntimeException; class RegularExpression; class ParseException; XERCES_CPP_NAMESPACE_END /** * Breaks the $input string into a sequence of strings, * treating any substring that matches $pattern as a separator. * The separators themselves are not returned. * * tokenize(string? $input, string $pattern) => string* * tokenize(string? $input, string $pattern, string $flags) => string* */ class XQILLA_API FunctionTokenize : public RegExpFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; /** * Constructor. */ FunctionTokenize(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); /** * Returns $input broken into a sequence of strings * using matches to $pattern as a separator. */ Sequence createSequence(DynamicContext* context, int flags=0) const; private: void processRuntimeException(XERCES_CPP_NAMESPACE_QUALIFIER RuntimeException &e, const char* sourceMsg) const; }; #endif // _FUNCTIONTOKENIZE_HPP XQilla-2.3.0/include/xqilla/functions/FunctionHoursFromDuration.hpp0000644000151400015140000000303511653565523022435 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONGETHOURSFROMDAYTIMEDURATION_HPP #define _FUNCTIONGETHOURSFROMDAYTIMEDURATION_HPP #include #include /** * Getter for the hours component of dayTimeDuration. * * hours-from-duration(dayTimeDuration? $srcval) => integer? */ class XQILLA_API FunctionHoursFromDuration : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; /** * Constructor. */ FunctionHoursFromDuration(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); /** * Returns an integer representing the hours component in the value of * $srcval. */ Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONGETHOURSFROMDAYTIMEDURATION_HPP XQilla-2.3.0/include/xqilla/functions/FunctionYearFromDateTime.hpp0000644000151400015140000000243611653565523022150 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONGETYEARFROMDATETIME_HPP #define _FUNCTIONGETYEARFROMDATETIME_HPP #include #include class XQILLA_API FunctionYearFromDateTime : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionYearFromDateTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionConcat.hpp0000644000151400015140000000255711653565523020222 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* Concat operator function */ #ifndef _FUNCTIONCONCAT_HPP #define _FUNCTIONCONCAT_HPP #include #include /** Concat operator function*/ class XQILLA_API FunctionConcat : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; ///Constructor. FunctionConcat(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); protected: /** concatenates two strings. Takes two strings, and gives a string */ Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONCONCAT_HPP XQilla-2.3.0/include/xqilla/functions/FunctionSecondsFromTime.hpp0000644000151400015140000000243211653565523022044 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONGETSECONDSFROMTIME_HPP #define _FUNCTIONGETSECONDSFROMTIME_HPP #include #include class XQILLA_API FunctionSecondsFromTime : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionSecondsFromTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionLast.hpp0000644000151400015140000000235211653565523017707 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONLAST_HPP #define _FUNCTIONLAST_HPP #include #include class XQILLA_API FunctionLast : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionLast(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionQName.hpp0000644000151400015140000000250211653565523020002 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* QName function */ #ifndef _FUNCTIONQNAME_HPP #define _FUNCTIONQNAME_HPP #include #include /** QName constructor function. */ class XQILLA_API FunctionQName : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionQName(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); /** Given a uri and a name, it returns an expanded QName **/ Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONQNAME_HPP XQilla-2.3.0/include/xqilla/functions/FuncFactory.hpp0000644000151400015140000000347411653565523017527 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCFACTORY_HPP #define _FUNCFACTORY_HPP #include #include #include class XQILLA_API FuncFactory { public: FuncFactory(const XMLCh *uri, const XMLCh *name, size_t minArgs, size_t maxArgs, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm); FuncFactory(size_t numArgs, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm); virtual ~FuncFactory() {} ///Create instance of a function, using FuncFactoryTemplate to determine type virtual ASTNode *createInstance(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) const = 0; const XMLCh *getURI() const { return uri_; } const XMLCh *getName() const { return name_; } const XMLCh *getURINameHash() const { return uriname_.getRawBuffer(); } void setURINameHash(const XMLCh *uri, const XMLCh *name); size_t getMinArgs() const { return minArgs_; } size_t getMaxArgs() const { return maxArgs_; } protected: const XMLCh *uri_, *name_; size_t minArgs_, maxArgs_; XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer uriname_; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionNamespaceUri.hpp0000644000151400015140000000241111653565523021354 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONNAMESPACEURI_HPP #define _FUNCTIONNAMESPACEURI_HPP #include #include class XQILLA_API FunctionNamespaceUri : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionNamespaceUri(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode* staticResolution(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionAtan.hpp0000644000151400015140000000216011653565523017664 00000000000000/* * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONATAN_HPP #define _FUNCTIONATAN_HPP #include #include class XQILLA_API FunctionAtan : public EXSLTMathFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionAtan(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual Result createResult(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionId.hpp0000644000151400015140000000243111653565523017336 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONID_HPP #define _FUNCTIONID_HPP #include #include #include #include class XQILLA_API FunctionId : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionId(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode* staticResolution(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionDoc.hpp0000644000151400015140000000265411653565523017516 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONDOC_HPP #define _FUNCTIONDOC_HPP #include #include class QueryPathNode; class XQILLA_API FunctionDoc : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionDoc(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; QueryPathNode *getQueryPathTree() const { return queryPathTree_; } void setQueryPathTree(QueryPathNode *q) { queryPathTree_ = q; } private: QueryPathNode *queryPathTree_; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionAdjustDateToTimezone.hpp0000644000151400015140000000245111653565523023052 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONADJUSTDATETOTIMEZONE_HPP #define _FUNCTIONADJUSTDATETOTIMEZONE_HPP #include #include class XQILLA_API FunctionAdjustDateToTimezone : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionAdjustDateToTimezone(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionLog.hpp0000644000151400015140000000215411653565523017525 00000000000000/* * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONLOG_HPP #define _FUNCTIONLOG_HPP #include #include class XQILLA_API FunctionLog : public EXSLTMathFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionLog(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual Result createResult(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionRound.hpp0000644000151400015140000000237511653565523020100 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* xf:round(numeric? $srcval) => numeric? */ #ifndef _FUNCTIONROUND_HPP #define _FUNCTIONROUND_HPP #include #include class XQILLA_API FunctionRound : public NumericFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionRound(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONROUND_HPP XQilla-2.3.0/include/xqilla/functions/FunctionLowerCase.hpp0000644000151400015140000000236611653565523020675 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* LowerCase function */ #ifndef _FUNCTIONLOWERCASE_HPP #define _FUNCTIONLOWERCASE_HPP #include #include class XQILLA_API FunctionLowerCase : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionLowerCase(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONLOWERCASE_HPP XQilla-2.3.0/include/xqilla/functions/FunctionLookup.hpp0000644000151400015140000000616411653565523020262 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FLOOKUP_HPP #define _FLOOKUP_HPP #include #include #include #include #include class FuncFactory; class XPath2MemoryManager; class ExternalFunction; class DynamicContext; class XQILLA_API FunctionLookup { public: FunctionLookup(XPath2MemoryManager* memMgr); ~FunctionLookup(); ///adds a function to the custom function table void insertFunction(FuncFactory *func); /// Remove a function void removeFunction(FuncFactory *func); ///returns the approriate Function object ASTNode* lookUpFunction(const XMLCh* URI, const XMLCh* fname, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) const; ///adds a function to the external function table void insertExternalFunction(const ExternalFunction *func); ///returns the approriate ExternalFunction object const ExternalFunction *lookUpExternalFunction(const XMLCh* URI, const XMLCh* fname, size_t numArgs) const; void copyExternalFunctionsTo(DynamicContext *context) const; void insertUpdateFunctions(XPath2MemoryManager *memMgr); private: XERCES_CPP_NAMESPACE_QUALIFIER RefHash2KeysTableOf< FuncFactory > _funcTable; XERCES_CPP_NAMESPACE_QUALIFIER RefHash2KeysTableOf< const ExternalFunction > _exFuncTable; public: // static (global table interfaces) static void insertGlobalFunction(FuncFactory *func); static void insertGlobalExternalFunction(const ExternalFunction *func); // next two look in global table first, then the contextTable static ASTNode* lookUpGlobalFunction(const XMLCh* URI, const XMLCh* fname, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr, const FunctionLookup *contextTable); static const ExternalFunction *lookUpGlobalExternalFunction(const XMLCh* URI, const XMLCh* fname, size_t numArgs, const FunctionLookup *contextTable); static XPath2MemoryManager *getMemoryManager(); static void initialize(); static void terminate(); private: static FunctionLookup *g_globalFunctionTable; static XPath2MemoryManager *g_memMgr; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionSentences.hpp0000644000151400015140000000270711653565523020737 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ #ifndef _FUNCTIONSENTENCES_HPP #define _FUNCTIONSENTENCES_HPP #include "XQillaFunction.hpp" /** * Breaks the $input string into a sequence of strings by Unicode Sentence * Bounding * * sentences(string? $input) => string* */ class XQILLA_API FunctionSentences : public XQillaFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; /** * Constructor. */ FunctionSentences(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); /** * Returns $input broken into a sequence of strings * using matches to $pattern as a separator. */ Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif // _FUNCTIONSENTENCES_HPP XQilla-2.3.0/include/xqilla/functions/FunctionAdjustDateTimeToTimezone.hpp0000644000151400015140000000247111653565523023673 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONADJUSTDATETIMETOTIMEZONE_HPP #define _FUNCTIONADJUSTDATETIMETOTIMEZONE_HPP #include #include class XQILLA_API FunctionAdjustDateTimeToTimezone : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionAdjustDateTimeToTimezone(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionDayFromDate.hpp0000644000151400015140000000240711653565523021144 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONGETDAYFROMDATE_HPP #define _FUNCTIONGETDAYFROMDATE_HPP #include #include class XQILLA_API FunctionDayFromDate : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionDayFromDate(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionEndsWith.hpp0000644000151400015140000000231211653565523020525 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONENDSWITH_HPP #define _FUNCTIONENDSWITH_HPP #include class XQILLA_API FunctionEndsWith : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionEndsWith(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual BoolResult boolResult(DynamicContext* context) const; virtual Result createResult(DynamicContext* context, int flags) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionTime.hpp0000644000151400015140000000270211653565523017701 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONTIME_HPP #define _FUNCTIONTIME_HPP #include "XQillaFunction.hpp" class QueryPathNode; class XQILLA_API FunctionTime : public XQillaFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionTime(const VectorOfASTNodes &args, XPath2MemoryManager *memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; virtual PendingUpdateList createUpdateList(DynamicContext *context) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionNot.hpp0000644000151400015140000000243511653565523017546 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONNOT_HPP #define _FUNCTIONNOT_HPP #include #include class XQILLA_API FunctionNot : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionNot(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); ASTNode* staticResolution(StaticContext *context); virtual BoolResult boolResult(DynamicContext* context) const; virtual Result createResult(DynamicContext* context, int flags) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionAsin.hpp0000644000151400015140000000216011653565523017673 00000000000000/* * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONASIN_HPP #define _FUNCTIONASIN_HPP #include #include class XQILLA_API FunctionAsin : public EXSLTMathFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionAsin(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual Result createResult(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionTan.hpp0000644000151400015140000000215411653565523017526 00000000000000/* * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONTAN_HPP #define _FUNCTIONTAN_HPP #include #include class XQILLA_API FunctionTan : public EXSLTMathFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionTan(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual Result createResult(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionExp.hpp0000644000151400015140000000215411653565523017540 00000000000000/* * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONEXP_HPP #define _FUNCTIONEXP_HPP #include #include class XQILLA_API FunctionExp : public EXSLTMathFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionExp(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual Result createResult(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/functions/FunctionImplicitTimezone.hpp0000644000151400015140000000235111653565523022270 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONIMPLICITTIMEZONE_HPP #define _FUNCTIONIMPLICITTIMEZONE_HPP #include class XQILLA_API FunctionImplicitTimezone : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionImplicitTimezone(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticTypingImpl(StaticContext *context); Sequence createSequence(DynamicContext* context, int flags=0) const; }; #endif XQilla-2.3.0/include/xqilla/debug/0000755000151400015140000000000011653572443013720 500000000000000XQilla-2.3.0/include/xqilla/debug/DebugListener.hpp0000644000151400015140000000321511653565523017107 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _DEBUGLISTENER_HPP #define _DEBUGLISTENER_HPP #include #include #include class StackFrame; class DynamicContext; class XQException; /** * A class used to listen for debugging information */ class XQILLA_API DebugListener { public: virtual ~DebugListener() {} virtual void start(const StackFrame *stack, const DynamicContext *context) {} virtual void end(const StackFrame *stack, const DynamicContext *context) {} virtual void enter(const StackFrame *stack, const DynamicContext *context) {} virtual void exit(const StackFrame *stack, const DynamicContext *context) {} virtual void error(const XQException &error, const StackFrame *stack, const DynamicContext *context) { throw error; } virtual bool doLazyEvaluation() const { return true; } virtual bool doFocusOptimizations() const { return true; } }; #endif XQilla-2.3.0/include/xqilla/debug/TupleDebugHook.hpp0000644000151400015140000000234211653565523017234 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef TUPLEDEBUGHOOK_HPP #define TUPLEDEBUGHOOK_HPP #include class XQILLA_API TupleDebugHook : public TupleNode { public: TupleDebugHook(TupleNode *parent, XPath2MemoryManager *mm); virtual TupleNode *staticResolution(StaticContext *context); virtual TupleNode *staticTypingImpl(StaticContext *context); virtual TupleNode *staticTypingTeardown(StaticContext *context, StaticAnalysis &usedSrc); virtual TupleResult::Ptr createResult(DynamicContext* context) const; }; #endif XQilla-2.3.0/include/xqilla/debug/InteractiveDebugger.hpp0000644000151400015140000001333311653565523020277 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _INTERACTIVEDEBUGGER_HPP #define _INTERACTIVEDEBUGGER_HPP #include #include #include #include #include #include class XQQuery; class DynamicContext; class DebugCommand; class InteractiveDebugger; class XQILLA_API BaseInteractiveDebugger { public: struct XQILLA_API Run {}; struct XQILLA_API Continue {}; struct XQILLA_API Quit {}; static void outputLocation(const XMLCh *file, unsigned int line, unsigned int column, unsigned int context = 0); static void outputLocationFromString(const XMLCh *query, unsigned int line, unsigned int column, unsigned int context = 0); static std::string regexFind(const char *regex, const std::string &str, int groupNo = 1); virtual ~BaseInteractiveDebugger(); unsigned int setBreakPoint(const std::string &file, unsigned int line, unsigned int column, bool temporary); bool disableBreakPoint(unsigned int number); bool enableBreakPoint(unsigned int number); void listBreakPoints() const; void setStep(); void setNext(); bool queryStarted() const { return queryStarted_; } virtual void run() = 0; virtual bool changeFrame(unsigned int number) = 0; virtual unsigned int getStackSize() const = 0; virtual void stackTrace() const = 0; virtual bool outputCurrentFrame(unsigned int context = 0) const = 0; virtual void outputCurrentFrameQueryPlan() const = 0; virtual bool queryCurrentFrame(const char *queryString) const = 0; virtual bool currentFrameLocation(std::string &file, unsigned int &line, unsigned int &column) const = 0; virtual void setDoLazyEvaluation(bool lazy) = 0; virtual void setDoFocusOptimizationsn(bool opt) = 0; virtual void setDoProjection(bool opt) = 0; protected: BaseInteractiveDebugger(); DebugCommand *findCommand(std::string &command) const; void checkBreak(bool entering); void breakForError(const char *message); void interrupted(); void readCommand(); std::vector commands_; DebugCommand *prevcmd_; bool queryStarted_; struct BreakPoint { BreakPoint(const std::string &f, unsigned int l, unsigned int c, bool t) : file(f), line(l), column(c), temporary(t), disabled(false) {} std::string file; unsigned int line, column; bool temporary; bool disabled; }; std::vector breaks_; bool step_; unsigned int next_; }; class XQILLA_API DebugCommand { public: virtual ~DebugCommand() {}; virtual const char *getCommandName() const { return name_; } virtual const char *getCommandNameCompat() const { return compatName_; } virtual const char *getBriefHelp() const { return briefHelp_; } virtual const char *getMoreHelp() const { return moreHelp_; } static bool matches(const std::string &command, const std::string &toMatch); virtual bool matches(const std::string &command) const; virtual void execute(InputParser::Args &args, BaseInteractiveDebugger &env) = 0; protected: DebugCommand(const char *name, const char *compatName, const char *briefHelp, const char *moreHelp) : name_(name), compatName_(compatName), briefHelp_(briefHelp), moreHelp_(moreHelp) {} const char *name_; const char *compatName_; const char *briefHelp_; const char *moreHelp_; }; class XQILLA_API InteractiveDebugger : private BaseInteractiveDebugger, private DebugListener { public: static void debugQuery(const XQQuery *query, DynamicContext *context); static void outputLocation(const LocationInfo *info, unsigned int context = 0); private: InteractiveDebugger(const XQQuery *query, DynamicContext *context); virtual void enter(const StackFrame *stack, const DynamicContext *context); virtual void exit(const StackFrame *stack, const DynamicContext *context); virtual void error(const XQException &error, const StackFrame *stack, const DynamicContext *context); virtual bool doLazyEvaluation() const { return lazy_; } virtual bool doFocusOptimizations() const { return focusOptimzations_; } virtual void run(); virtual bool changeFrame(unsigned int number); virtual unsigned int getStackSize() const; virtual void stackTrace() const; virtual bool outputCurrentFrame(unsigned int context) const; virtual void outputCurrentFrameQueryPlan() const; virtual bool queryCurrentFrame(const char *queryString) const; virtual bool currentFrameLocation(std::string &file, unsigned int &line, unsigned int &column) const; virtual void setDoLazyEvaluation(bool lazy) { lazy_ = lazy; } virtual void setDoFocusOptimizationsn(bool opt) { focusOptimzations_ = opt; } virtual void setDoProjection(bool opt); unsigned int getCurrentFrameNumber() const; void output(const StackFrame *frame) const; void report(const StackFrame *frame) const; const StackFrame *stack_; const StackFrame *currentFrame_; const XQQuery *query_; DynamicContext *context_; bool lazy_; bool focusOptimzations_; }; #endif XQilla-2.3.0/include/xqilla/debug/InputParser.hpp0000644000151400015140000000300011653565523016617 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __INPUTPARSER_HPP #define __INPUTPARSER_HPP #include #include #include #include class XQILLA_API InputParser { public: typedef std::vector Args; int parse(std::istream &input, Args &args); private: void reset(); void whitespace(Args &args); void character(); void escapedCharacter(); bool inQuotes(); void quote(Args &args, char c); void openCurly(); void closeCurly(); void endOfArg(Args &args); void addArgument(Args &args, std::string::size_type start, std::string::size_type end); void nextLine(std::istream &input, Args &args); std::string line_; std::string::size_type start_, pos_; char quoteChar_; int curlyBraceDepth_; bool seenNonWS_; bool stripQuotes_; }; #endif XQilla-2.3.0/include/xqilla/debug/StackFrame.hpp0000644000151400015140000000415311653565523016375 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _STACKFRAME_HPP #define _STACKFRAME_HPP #include #include #include #include class ASTNode; class TupleNode; class LocationInfo; class DynamicContext; class EventHandler; class Sequence; class VariableStore; XERCES_CPP_NAMESPACE_BEGIN class DOMXPathNSResolver; XERCES_CPP_NAMESPACE_END /** * A class that represents an item in a query call stack */ class XQILLA_API StackFrame { public: virtual ~StackFrame() {} const LocationInfo *getLocationInfo() const { return location_; } const StackFrame *getPreviousFrame() const { return prev_; } virtual Sequence query(const XMLCh *query) const; virtual void query(const XMLCh *query, EventHandler *events) const; virtual const ASTNode *getASTNode() const = 0; virtual const TupleNode *getTupleNode() const = 0; virtual std::string getQueryPlan() const = 0; protected: StackFrame(const LocationInfo *location, DynamicContext *context); const LocationInfo *location_; DynamicContext *context_; Item::Ptr contextItem_; size_t contextPosition_; size_t contextSize_; const VariableStore *variables_; const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver *nsResolver_; const XMLCh *defaultElementNS_; const StackFrame *prev_; private: StackFrame(const StackFrame &); StackFrame &operator=(const StackFrame&); }; #endif XQilla-2.3.0/include/xqilla/debug/ASTDebugHook.hpp0000644000151400015140000000331511653565523016573 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQDEBUGAST_HPP #define XQDEBUGAST_HPP #include class XQILLA_API ASTDebugHook : public ASTNodeImpl { public: ASTDebugHook(ASTNode *astNode, XPath2MemoryManager *mm); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext *context, int flags) const; virtual Result iterateResult(const Result &contextItems, DynamicContext *context) const; virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const; virtual PendingUpdateList createUpdateList(DynamicContext *context) const; virtual bool isConstant() const; virtual bool isDateOrTimeAndHasNoTimezone(StaticContext* context) const; ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } protected: ASTNode *expr_; }; #endif XQilla-2.3.0/include/xqilla/debug/DebugHookDecorator.hpp0000644000151400015140000000215211653565523020064 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _DEBUGHOOKDECORATOR_HPP #define _DEBUGHOOKDECORATOR_HPP #include class XQILLA_API DebugHookDecorator : public ASTVisitor { public: DebugHookDecorator(DynamicContext *context, Optimizer *parent = 0); protected: virtual ASTNode *optimize(ASTNode *item); virtual TupleNode *optimizeTupleNode(TupleNode *item); XPath2MemoryManager *mm_; }; #endif XQilla-2.3.0/include/xqilla/xqilla-simple.hpp0000644000151400015140000000343411653565523016051 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /** * \example simple-basic.cpp * * This example executes a simple XQuery expression ("1 to 100"), which returns the numbers from 1 to 100 inclusive. */ /** * \example simple-context-item.cpp * * This example parses a document and sets it as the context item. It then executes an XQuery expression that navigates relative to the context item. */ XQilla-2.3.0/include/xqilla/parser/0000755000151400015140000000000011653572444014127 500000000000000XQilla-2.3.0/include/xqilla/parser/QName.hpp0000644000151400015140000000273711653565523015572 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _QNAME_HPP #define _QNAME_HPP #include #include #include #include /* Represents a Qualified name. Built in the parser. */ class XQILLA_API QualifiedName { public: QualifiedName(const XMLCh* qualifiedName, XPath2MemoryManager* memMgr); // This constructor should be used on persistent strings (no memory manager involved) QualifiedName(const XMLCh* prefix, const XMLCh* name); QualifiedName(const XMLCh* fullName); ~QualifiedName(); const XMLCh* getPrefix() const; const XMLCh* getName() const; const XMLCh* getFullName(XPath2MemoryManager* memMgr) const; private: const XMLCh* _prefix,*_name; bool _bDeleteStrings; }; #endif XQilla-2.3.0/include/xqilla/events/0000755000151400015140000000000011653572443014136 500000000000000XQilla-2.3.0/include/xqilla/events/SequenceBuilder.hpp0000644000151400015140000000220311653565523017644 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _SEQUENCEBUILDER_HPP #define _SEQUENCEBUILDER_HPP #include #include #include class DynamicContext; class Sequence; class XQILLA_API SequenceBuilder : public EventHandler, public XERCES_CPP_NAMESPACE_QUALIFIER XMemory { public: virtual ~SequenceBuilder() {} virtual Sequence getSequence() const = 0; }; #endif XQilla-2.3.0/include/xqilla/events/ContentSequenceFilter.hpp0000644000151400015140000000355511653565523021051 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _CONTENTSEQUENCEFILTER_HPP #define _CONTENTSEQUENCEFILTER_HPP #include class XQILLA_API ContentSequenceFilter : public EventFilter { public: ContentSequenceFilter(EventHandler *next); virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding); virtual void endDocumentEvent(); virtual void endEvent(); virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname); virtual void piEvent(const XMLCh *target, const XMLCh *value); virtual void textEvent(const XMLCh *value); virtual void textEvent(const XMLCh *chars, unsigned int length); virtual void commentEvent(const XMLCh *value); virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName); virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri); virtual void atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName); private: bool lastWasAtomic_; }; #endif XQilla-2.3.0/include/xqilla/events/NSFixupFilter.hpp0000644000151400015140000000444311653565523017277 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _NSFIXUPFILTER_HPP #define _NSFIXUPFILTER_HPP #include class XPath2MemoryManager; class XQILLA_API NSFixupFilter : public EventFilter { public: NSFixupFilter(EventHandler *next, XPath2MemoryManager *mm); ~NSFixupFilter(); virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding); virtual void endDocumentEvent(); virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname); virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName); virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName); virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri); private: struct ElemEntry { void set(const XMLCh *p, ElemEntry *pr) { prefix = p; prev = pr; } const XMLCh *prefix; ElemEntry *prev; }; struct NSEntry { void set(const XMLCh *p, const XMLCh *u, unsigned int l, NSEntry *pr) { prefix = p; uri = u; level = l; prev = pr; } const XMLCh *prefix; const XMLCh *uri; unsigned int level; NSEntry *prev; }; NSEntry *findPrefix(const XMLCh *prefix); /// Returns the prefix to use bool definePrefix(const XMLCh *&prefix, const XMLCh *uri, bool attr = false, bool redefine = true); XPath2MemoryManager *mm_; unsigned int level_; ElemEntry *elements_; NSEntry *namespaces_; }; #endif XQilla-2.3.0/include/xqilla/events/QueryPathTreeFilter.hpp0000644000151400015140000000523511653565523020505 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _QUERYPATHTREEFILTER_HPP #define _QUERYPATHTREEFILTER_HPP #include #include #include class QueryPathNode; typedef std::vector QPNVector; class XQILLA_API QueryPathTreeFilter : public EventFilter { public: QueryPathTreeFilter(const QueryPathNode *qpn, EventHandler *next); QueryPathTreeFilter(const QPNVector &qpns, EventHandler *next); virtual ~QueryPathTreeFilter(); virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding); virtual void endDocumentEvent(); virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname); virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName); virtual void piEvent(const XMLCh *target, const XMLCh *value); virtual void textEvent(const XMLCh *value); virtual void textEvent(const XMLCh *chars, unsigned int length); virtual void commentEvent(const XMLCh *value); virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName); virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri); protected: struct StackEntry { StackEntry() : matched(false), nonElementChildren(false), attrChildren(false), children() {} void addNode(const QueryPathNode *isn); void addChildren(const QueryPathNode *isn); XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer prefix; XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer uri; XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer localname; bool matched; bool nonElementChildren; bool attrChildren; QPNVector children; }; typedef std::vector FilterStack; void checkAncestors(FilterStack::reverse_iterator s); FilterStack stack_; }; #endif XQilla-2.3.0/include/xqilla/events/EventGenerator.hpp0000644000151400015140000000413411653565523017522 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _EVENTGENERATOR_HPP #define _EVENTGENERATOR_HPP #include #include #include class DynamicContext; class EventHandler; class ASTNode; class QueryPathNode; class XQILLA_API EventGenerator : public ReferenceCounted { public: typedef RefCountPointer Ptr; virtual ~EventGenerator() {} /** Returns the result of this expression via the EventHandler provided. An EventGenerator may be returned to be called as a tail call optimization */ virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context) = 0; static void generateAndTailCall(const EventGenerator::Ptr &generator, EventHandler *events, DynamicContext *context) { EventGenerator::Ptr gen = generator; while(gen.notNull()) { gen = gen->generateEvents(events, context); } } static Result createResult(const ASTNode *ast, const QueryPathNode *projection, DynamicContext *context); }; class XQILLA_API ASTNodeEventGenerator : public EventGenerator { public: ASTNodeEventGenerator(const ASTNode *ast, bool preserveNS, bool preserveType); virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context); protected: const ASTNode *ast_; bool preserveNS_, preserveType_; }; #endif XQilla-2.3.0/include/xqilla/events/EventHandler.hpp0000644000151400015140000001176111653565523017155 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _EVENTHANDLER_HPP #define _EVENTHANDLER_HPP #include #include #include #include class XQILLA_API EventHandler { public: virtual ~EventHandler() {}; /** Recieves a LocationInfo object that is owned by the caller, and will be updated with the current location information as the parse progresses. */ virtual void setLocationInfo(const LocationInfo *location) {} /** Handles a document node as an event */ virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding) = 0; /** Handles a document node as an event */ virtual void endDocumentEvent() = 0; /** Handles the start of an element node as an event */ virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname) = 0; /** Handles the end of an element node as an event */ virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName) = 0; /** Handles a processing instruction node as an event */ virtual void piEvent(const XMLCh *target, const XMLCh *value) = 0; /** Handles a text node as an event */ virtual void textEvent(const XMLCh *value) = 0; /** Handles a text node as an event */ virtual void textEvent(const XMLCh *chars, unsigned int length) = 0; /** Handles a comment node as an event */ virtual void commentEvent(const XMLCh *value) = 0; /** Handles an attribute node as an event */ virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) = 0; /** Handles a namespace binding as an event */ virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri) = 0; /** Handles an atomic item as an event */ virtual void atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) {} /** Called when all events have been reported */ virtual void endEvent() = 0; }; class XQILLA_API EventFilter : public EventHandler { public: EventFilter(EventHandler *next) : next_(next) { } void setNextEventHandler(EventHandler *next) { next_ = next; } virtual void setLocationInfo(const LocationInfo *location) { next_->setLocationInfo(location); } virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding) { next_->startDocumentEvent(documentURI, encoding); } virtual void endDocumentEvent() { next_->endDocumentEvent(); } virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname) { next_->startElementEvent(prefix, uri, localname); } virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName) { next_->endElementEvent(prefix, uri, localname, typeURI, typeName); } virtual void piEvent(const XMLCh *target, const XMLCh *value) { next_->piEvent(target, value); } virtual void textEvent(const XMLCh *value) { next_->textEvent(value); } virtual void textEvent(const XMLCh *chars, unsigned int length) { next_->textEvent(chars, length); } virtual void commentEvent(const XMLCh *value) { next_->commentEvent(value); } virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { next_->attributeEvent(prefix, uri, localname, value, typeURI, typeName); } virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri) { next_->namespaceEvent(prefix, uri); } virtual void atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { next_->atomicItemEvent(type, value, typeURI, typeName); } virtual void endEvent() { next_->endEvent(); } protected: EventHandler *next_; }; static inline const XMLCh *emptyToNull(const XMLCh * const in) { return (in == 0 || *in == 0) ? 0 : in; } #endif XQilla-2.3.0/include/xqilla/events/EventSerializer.hpp0000644000151400015140000000574011653565523017711 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _EVENTSERIALIZER_HPP #define _EVENTSERIALIZER_HPP #include #include class XQILLA_API EventSerializer : public EventHandler { public: EventSerializer(const char *encoding, const char *xmlVersion, XERCES_CPP_NAMESPACE_QUALIFIER XMLFormatTarget *target, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager); EventSerializer(XERCES_CPP_NAMESPACE_QUALIFIER XMLFormatTarget *target, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager); ~EventSerializer(); virtual void setLocationInfo(const LocationInfo *location) {} virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding); virtual void endDocumentEvent(); virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname); virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName); virtual void piEvent(const XMLCh *target, const XMLCh *value); virtual void textEvent(const XMLCh *value); virtual void textEvent(const XMLCh *chars, unsigned int length); virtual void commentEvent(const XMLCh *value); virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName); virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri); virtual void atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName); virtual void endEvent(); void addNewlines(bool add) { addNewlines_ = add; } void useSelfClosingElement(bool value) { selfClosing_ = value; } void addXMLDeclarations(bool value) { xmlDecls_ = value; } private: XERCES_CPP_NAMESPACE_QUALIFIER XMLFormatter formatter_; bool elementStarted_; unsigned int level_; XMLCh *version_, *encoding_; bool addNewlines_, selfClosing_, xmlDecls_; XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm_; }; #endif XQilla-2.3.0/include/xqilla/utils/0000755000151400015140000000000011653572444013773 500000000000000XQilla-2.3.0/include/xqilla/utils/XMLChCompare.hpp0000644000151400015140000000217411653565523016652 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XMLCHCOMPARE_HPP #define _XMLCHCOMPARE_HPP #include #include #include class XQILLA_API QNameSort { public: bool operator() (const std::pair lhs, const std::pair rhs) const; }; class XQILLA_API XMLChSort { public: bool operator() (const XMLCh* lhs, const XMLCh* rhs) const; }; #endif XQilla-2.3.0/include/xqilla/utils/XQillaPlatformUtils.hpp0000644000151400015140000000333211653565523020345 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQILLAPLATFORMUTILS_HPP #define _XQILLAPLATFORMUTILS_HPP #include #include XERCES_CPP_NAMESPACE_BEGIN class MemoryManager; XERCES_CPP_NAMESPACE_END /** * Static utility methods for initializing and terminating the XQilla * and Xerces environments. */ class XQILLA_API XQillaPlatformUtils { public: /** * Perform XQilla initialization * * Initialization should be called first in any user code. * * Initializes Xerces and adds its own DOMImplementation to the registry */ static void initialize(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr = 0); /** * Perform XQilla termination * * Terminates Xerces */ static void terminate(); /** * Enable/disable extended precision in numeric items * * When disabled, xs:decimal values will hold only 18 digits, xs:float 7 digits and xs:double 15 digits * as mandated */ static void enableExtendedPrecision(bool bEnable); }; #endif XQilla-2.3.0/include/xqilla/utils/UTF8Str.hpp0000644000151400015140000000250711653565523015647 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _UTF8STR_HPP #define _UTF8STR_HPP #include #include #include class XQILLA_API UTF8Str { public : UTF8Str(const XMLCh* const toTranscode, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm = 0); ~UTF8Str(); const char *str() const { return (char*)str_; } char *adopt() { char *result = (char*)str_; str_ = 0; return result; } private : XMLByte *str_; XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm_; }; #define UTF8(strg) UTF8Str((const XMLCh*)(strg)).str() #endif XQilla-2.3.0/include/xqilla/utils/XPath2Utils.hpp0000644000151400015140000001442311653565523016557 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XPATH2UTILS_HPP #define _XPATH2UTILS_HPP #include #include class XPath2MemoryManager; #include #include #include #include XERCES_CPP_NAMESPACE_BEGIN class InputSource; class BinInputStream; XERCES_CPP_NAMESPACE_END /**class with methods that are used by v2 that are DOM related*/ class XQILLA_API XPath2Utils { public: /** * Escape a URI. Boolean says escape reserved chars. * * NOTE: The returned buffer is dynamically allocated and is the * responsibility of the caller to delete it when not longer needed. */ static const XMLCh* escapeURI(const XMLCh* const str, bool escapeRes, XPath2MemoryManager* memMgr); static bool isValidURI(const XMLCh* const str, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr); static const XMLCh* concatStrings(const XMLCh* src1, const XMLCh srcChar, XPath2MemoryManager* memMgr); static const XMLCh* concatStrings(const XMLCh* src1, const XMLCh* src2, XPath2MemoryManager* memMgr); static const XMLCh* concatStrings(const XMLCh* src1 ,const XMLCh* src2, const XMLCh* src3, XPath2MemoryManager* memMgr); static const XMLCh* asStr(const XMLCh src, XPath2MemoryManager* memMgr); static void numToBuf(unsigned int n, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &buf); static void numToBuf(int n, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &buf); static bool equals(const XMLCh *const str1, const XMLCh *const str2); static int compare(const XMLCh *str1, const XMLCh *str2); static int intStrlen(const XMLCh *src); static unsigned int uintStrlen(const XMLCh *src); /** * Return the specified substring. */ static const XMLCh* subString( const XMLCh* srcStr, unsigned int offset, unsigned int count, XPath2MemoryManager* memMgr); static const XMLCh* deleteData( const XMLCh* const target, unsigned int offset, unsigned int count, XPath2MemoryManager* memMgr ); static const XMLCh* toLower(const XMLCh* const target, XPath2MemoryManager* memMgr); static const XMLCh* toUpper(const XMLCh* const target, XPath2MemoryManager* memMgr); static const XMLCh* toCollapsedWS(const XMLCh* const target, XPath2MemoryManager* memMgr); static const XMLCh* normalizeEOL(const XMLCh* const src, XPath2MemoryManager* memMgr); /*** * Extract the individual values from a list of whitespace separated * values (values) and puts them into valList. */ static std::vector getVal(const XMLCh* values, XPath2MemoryManager* memMgr); /* Determine whether or not an XMLCh* is contained within a vector of XMLCh's */ static bool containsString(std::vector values, const XMLCh* val); /** Gets the owner document for the given node */ static const XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *getOwnerDoc(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node); static bool readSource(const XERCES_CPP_NAMESPACE_QUALIFIER InputSource &src, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &result, bool sniffEncoding = false); static void readSource(XERCES_CPP_NAMESPACE_QUALIFIER BinInputStream *stream, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &result, const XMLCh *encoding = 0, bool sniffEncoding = false); }; inline bool XPath2Utils::equals(const XMLCh *const str1, const XMLCh *const str2) { if(str1 == str2) return true; if(str1 == 0) return *str2 == 0; // str2 == 0 is handled by the first line if(str2 == 0) return *str1 == 0; // str1 == 0 is handled by the first line register const XMLCh* psz1 = str1; register const XMLCh* psz2 = str2; while(*psz1 == *psz2) { // If either has ended, then they both ended, so equal if(*psz1 == 0) return true; // Move upwards for the next round ++psz1; ++psz2; } return false; } inline int XPath2Utils::compare(const XMLCh *str1, const XMLCh *str2) { if(str1 == str2) return 0; if(str1 == 0) return -*str2; // str2 == 0 is handled by the first line if(str2 == 0) return *str1; // str1 == 0 is handled by the first line register int cmp; while((cmp = *str1 - *str2) == 0) { // If either has ended, then they both ended, so equal if(*str1 == 0) break; // Move upwards for the next round ++str1; ++str2; } return cmp; } inline const XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *XPath2Utils::getOwnerDoc(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node) { if(node->getNodeType() == XERCES_CPP_NAMESPACE_QUALIFIER DOMNode::DOCUMENT_NODE) { return (XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument*)node; } else { return node->getOwnerDocument(); } } inline void XPath2Utils::numToBuf(unsigned int n, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &buf) { if(n >= 10) numToBuf(n / 10, buf); buf.append('0' + (n % 10)); } inline void XPath2Utils::numToBuf(int n, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &buf) { if(n < 0) { buf.append('-'); numToBuf((unsigned int)-n, buf); } else { numToBuf((unsigned int)n, buf); } } inline int XPath2Utils::intStrlen(const XMLCh *src) { return (int) XERCES_CPP_NAMESPACE_QUALIFIER XMLString::stringLen(src); } inline unsigned int XPath2Utils::uintStrlen(const XMLCh *src) { return (unsigned int) XERCES_CPP_NAMESPACE_QUALIFIER XMLString::stringLen(src); } #endif XQilla-2.3.0/include/xqilla/utils/XStr.hpp0000644000151400015140000000112411571227106015311 00000000000000#ifndef _XSTR_HPP #define _XSTR_HPP #include #include #include // From Xerces 2.0 class XQILLA_API XStr { public : XStr(const char* const toTranscode, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm = 0); ~XStr(); const XMLCh *str() const { return str_; } XMLCh *adopt() { XMLCh *result = (XMLCh*)str_; str_ = 0; return result; } private : XMLCh *str_; XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm_; }; #define X(strg) XStr(strg).str() #endif XQilla-2.3.0/include/xqilla/utils/NumUtils.hpp0000644000151400015140000000217711653565523016213 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _NUMUTILS_HPP #define _NUMUTILS_HPP #include #include class XPath2MemoryManager; /** class with static methods for dealing with floating point numbers */ class XQILLA_API NumUtils { public: /** return MAPM to int */ static int MAPMtoInt(MAPM m); /** return MAPM to double */ static double MAPMtoDouble(MAPM m); }; #endif // _NUMUTILS_HPP XQilla-2.3.0/include/xqilla/utils/DelayedModule.hpp0000644000151400015140000000243111636377670017146 00000000000000/* * Copyright (c) 2001-2008 * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004-2009 * Oracle. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _DELAYEDMODULE_HPP #define _DELAYEDMODULE_HPP #include #include #include class XQQuery; class DynamicContext; class ModuleCache; class XQILLA_API DelayedModule { public: class XQILLA_API FuncDef { public: const char *name; unsigned int args; bool isPrivate; int line, column; const char *body; }; const XMLCh *file; const XMLCh *prefix; const XMLCh *uri; const FuncDef *functions; void importModuleInto(XQQuery *importer) const; }; #endif XQilla-2.3.0/include/xqilla/utils/ContextUtils.hpp0000644000151400015140000000164611653565523017100 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __CONTEXTUTILS_HPP #define __CONTEXTUTILS_HPP #include class XQILLA_API ContextUtils { public: static int getTimezone(); }; #endif //__CONTEXTUTILS_HPP XQilla-2.3.0/include/xqilla/utils/utf8proc.h0000644000151400015140000005063411653565523015646 00000000000000/* * Copyright (c) 2006-2007 Jan Behrens, FlexiGuided GmbH, Berlin * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * * * *** A ADDITIONAL DIFFERENT LICENCE FOR UTF8PROC *** * * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * Enhancement by Oracle: * 1. Support UTF16. * 2. Support Uppercase and Lowercase mapping. * 3. Support WordBounding and SentenceBounding. * 4. Support diacritic chars differentiating. * * For upon enhancement, there are some modifications: * 1. Extend the "int lastbounding" as "struct bound_attr_t last_bound_attr" * 2. Rename the "utf8proc_data.c" as "utf8_proc_data.h" * 3. Extend the data tables in utf8proc_data.h * 4. Optimize the sequences arithmetic: * positive number : sequences with single element * zero : no sequences mapping * negative number : (-x) is the offset to sequences table * */ /* * File name: utf8proc.h * Version: 1.1.1 * Last changed: 2007-07-22 * * Description: * Header files for libutf8proc, which is a mapping tool for UTF-8 strings * with following features: * - decomposing and composing of strings * - replacing compatibility characters with their equivalents * - stripping of "default ignorable characters" * like SOFT-HYPHEN or ZERO-WIDTH-SPACE * - folding of certain characters for string comparison * (e.g. HYPHEN U+2010 and MINUS U+2212 to ASCII "-") * (see "LUMP" option) * - optional rejection of strings containing non-assigned code points * - stripping of control characters * - stripping of character marks (accents, etc.) * - transformation of LF, CRLF, CR and NEL to line-feed (LF) * or to the unicode chararacters for paragraph separation (PS) * or line separation (LS). * - unicode case folding (for case insensitive string comparisons) * - rejection of illegal UTF-8 data * (i.e. UTF-8 encoded UTF-16 surrogates) * - support for korean hangul characters * Unicode Version 5.0.0 is supported. * */ #ifndef UTF8PROC_H #define UTF8PROC_H #include #include #include #include #include #define UTF8PROC_NULLTERM (1<<0) #define UTF8PROC_STABLE (1<<1) #define UTF8PROC_COMPAT (1<<2) #define UTF8PROC_COMPOSE (1<<3) #define UTF8PROC_DECOMPOSE (1<<4) #define UTF8PROC_IGNORE (1<<5) #define UTF8PROC_REJECTNA (1<<6) #define UTF8PROC_NLF2LS (1<<7) #define UTF8PROC_NLF2PS (1<<8) #define UTF8PROC_NLF2LF (UTF8PROC_NLF2LS | UTF8PROC_NLF2PS) #define UTF8PROC_STRIPCC (1<<9) #define UTF8PROC_CASEFOLD (1<<10) #define UTF8PROC_CHARBOUND (1<<11) #define UTF8PROC_WORDBOUND (1<<12) #define UTF8PROC_SENTENCEBOUND (1<<13) #define UTF8PROC_LUMP (1<<14) #define UTF8PROC_STRIPMARK (1<<15) #define UTF8PROC_UPPERCASE (1<<16) #define UTF8PROC_LOWERCASE (1<<17) #define UTF8PROC_REMOVE_DIACRITIC (1<<18) #define UTF8PROC_UTF16 (1<<19) #define UTF8PROC_WB_MARK 0xFFFF // Mark for Word Bounding #define UTF8PROC_SB_MARK 0xFFFE // Mark for Sentence Bounding /* * Note: Most of the structs and functions has both version: utf8* and utf16*. * For the structs and functions which only named utf8*, they can be applied * on both utf8 and utf16. * * * Flags being regarded by several functions in the library: * NULLTERM: The given UTF-8 input is NULL terminated. * STABLE: Unicode Versioning Stability has to be respected. * COMPAT: Compatiblity decomposition * (i.e. formatting information is lost) * COMPOSE: Return a result with composed characters. * DECOMPOSE: Return a result with decomposed characters. * IGNORE: Strip "default ignorable characters" * REJECTNA: Return an error, if the input contains unassigned * code points. * NLF2LS: Indicating that NLF-sequences (LF, CRLF, CR, NEL) are * representing a line break, and should be converted to the * unicode character for line separation (LS). * NLF2PS: Indicating that NLF-sequences are representing a paragraph * break, and should be converted to the unicode character for * paragraph separation (PS). * NLF2LF: Indicating that the meaning of NLF-sequences is unknown. * STRIPCC: Strips and/or convers control characters. * NLF-sequences are transformed into space, except if one of * the NLF2LS/PS/LF options is given. * HorizontalTab (HT) and FormFeed (FF) are treated as a * NLF-sequence in this case. * All other control characters are simply removed. * CASEFOLD: Performs unicode case folding, to be able to do a * case-insensitive string comparison. * CHARBOUND: Inserts 0xFF bytes at the beginning of each sequence which * is representing a single grapheme cluster (see UAX#29). * NOTE: You also can't use UTF8PROC_CHARBOUND with either * UTF8PROC_WORDBOUND or UTF8PROC_SENTENCEBOUND * LUMP: Lumps certain characters together * (e.g. HYPHEN U+2010 and MINUS U+2212 to ASCII "-"). * (See lump.txt for details.) * If NLF2LF is set, this includes a transformation of * paragraph and line separators to ASCII line-feed (LF). * STRIPMARK: Strips all character markings * (non-spacing, spacing and enclosing) (i.e. accents) * NOTE: this option works only with COMPOSE or DECOMPOSE * * UPPERCASE: Performs unicode upper case * LOWERCASE: Performs unicode lower case * WORDBOUND: Insert Word Bounding Marks(UTF8PROC_WB_MARK) between words in the * given unicode string. (see UAX#29) * For instance: |a|$|-|34,567.14|%|b| * NOTE: You can't use WORDBOUND with CHARBOUND. * SENTENCEBOUND: Insert sentences Bounding Marks(UTF8PROC_SB_MARK) between * sentences in the given unicode string. (see UAX#29) * For instance: |("Go.")|(He did.)| * NOTE: You can't use SENTENCEBOUND with CHARBOUND. * UTF8PROC_UTF16: This is mostly for internal use. Please use utf16_* methods * if you want UTF16 support. * UTF8PROC_REMOVE_DIACRITIC: Remove the "Diacritic" code points * */ #define UTF8PROC_ERROR_NOMEM -1 #define UTF8PROC_ERROR_OVERFLOW -2 #define UTF8PROC_ERROR_INVALIDUTF8 -3 #define UTF8PROC_ERROR_NOTASSIGNED -4 #define UTF8PROC_ERROR_INVALIDOPTS -5 #ifdef _MSC_VER #include typedef unsigned __int8 uint8_t; typedef unsigned __int16 uint16_t; typedef signed __int8 int8_t; typedef signed __int16 int16_t; typedef signed __int32 int32_t; #define ssize_t SSIZE_T #else #include #endif #ifndef SSIZE_MAX #define SSIZE_MAX 0x7FFFFFFF #endif /* * Error codes being returned by almost all functions: * ERROR_NOMEM: Memory could not be allocated. * ERROR_OVERFLOW: The given string is too long to be processed. * ERROR_INVALIDUTF8: The given string is not a legal UTF-8 string. * ERROR_NOTASSIGNED: The REJECTNA flag was set, * and an unassigned code point was found. * ERROR_INVALIDOPTS: Invalid options have been used. */ typedef int16_t utf8proc_propval_t; typedef struct utf8proc_property_struct { utf8proc_propval_t category; utf8proc_propval_t combining_class; utf8proc_propval_t bidi_class; utf8proc_propval_t decomp_type; const int32_t decomp_mapping; int32_t uppercase_mapping; int32_t lowercase_mapping; int32_t titlecase_mapping; int32_t comb1st_index; int32_t comb2nd_index; const int32_t casefold_mapping; unsigned word_bound_attr:4; unsigned sentence_bound_attr:4; unsigned comp_exclusion:1; unsigned ignorable:1; unsigned control_boundary:1; unsigned extend:1; unsigned bidi_mirrored:1; unsigned excl_compression:1; unsigned is_diacritic:1; } utf8proc_property_t; typedef struct { uint8_t cluster; // Store last cluster bounding property uint8_t word; // Store last word bounding property int32_t TBD_stack[512]; // Stack for storing TBD chars int32_t *TBD_heap; // Use heap if upon stack does not enough. int32_t TBD_buf_size; uint8_t sb_attr_queue[2]; // Store history property for sentence bounding. // The queue length must be two -- it rest with // the sentence breaking algorithm. int (*filter_callback)(int32_t codepoint); // A pointer to user-defined filters }bound_attr_t; #define UTF8PROC_CATEGORY_LU 1 #define UTF8PROC_CATEGORY_LL 2 #define UTF8PROC_CATEGORY_LT 3 #define UTF8PROC_CATEGORY_LM 4 #define UTF8PROC_CATEGORY_LO 5 #define UTF8PROC_CATEGORY_MN 6 #define UTF8PROC_CATEGORY_MC 7 #define UTF8PROC_CATEGORY_ME 8 #define UTF8PROC_CATEGORY_ND 9 #define UTF8PROC_CATEGORY_NL 10 #define UTF8PROC_CATEGORY_NO 11 #define UTF8PROC_CATEGORY_PC 12 #define UTF8PROC_CATEGORY_PD 13 #define UTF8PROC_CATEGORY_PS 14 #define UTF8PROC_CATEGORY_PE 15 #define UTF8PROC_CATEGORY_PI 16 #define UTF8PROC_CATEGORY_PF 17 #define UTF8PROC_CATEGORY_PO 18 #define UTF8PROC_CATEGORY_SM 19 #define UTF8PROC_CATEGORY_SC 20 #define UTF8PROC_CATEGORY_SK 21 #define UTF8PROC_CATEGORY_SO 22 #define UTF8PROC_CATEGORY_ZS 23 #define UTF8PROC_CATEGORY_ZL 24 #define UTF8PROC_CATEGORY_ZP 25 #define UTF8PROC_CATEGORY_CC 26 #define UTF8PROC_CATEGORY_CF 27 #define UTF8PROC_CATEGORY_CS 28 #define UTF8PROC_CATEGORY_CO 29 #define UTF8PROC_CATEGORY_CN 30 #define UTF8PROC_BIDI_CLASS_L 1 #define UTF8PROC_BIDI_CLASS_LRE 2 #define UTF8PROC_BIDI_CLASS_LRO 3 #define UTF8PROC_BIDI_CLASS_R 4 #define UTF8PROC_BIDI_CLASS_AL 5 #define UTF8PROC_BIDI_CLASS_RLE 6 #define UTF8PROC_BIDI_CLASS_RLO 7 #define UTF8PROC_BIDI_CLASS_PDF 8 #define UTF8PROC_BIDI_CLASS_EN 9 #define UTF8PROC_BIDI_CLASS_ES 10 #define UTF8PROC_BIDI_CLASS_ET 11 #define UTF8PROC_BIDI_CLASS_AN 12 #define UTF8PROC_BIDI_CLASS_CS 13 #define UTF8PROC_BIDI_CLASS_NSM 14 #define UTF8PROC_BIDI_CLASS_BN 15 #define UTF8PROC_BIDI_CLASS_B 16 #define UTF8PROC_BIDI_CLASS_S 17 #define UTF8PROC_BIDI_CLASS_WS 18 #define UTF8PROC_BIDI_CLASS_ON 19 #define UTF8PROC_DECOMP_TYPE_FONT 1 #define UTF8PROC_DECOMP_TYPE_NOBREAK 2 #define UTF8PROC_DECOMP_TYPE_INITIAL 3 #define UTF8PROC_DECOMP_TYPE_MEDIAL 4 #define UTF8PROC_DECOMP_TYPE_FINAL 5 #define UTF8PROC_DECOMP_TYPE_ISOLATED 6 #define UTF8PROC_DECOMP_TYPE_CIRCLE 7 #define UTF8PROC_DECOMP_TYPE_SUPER 8 #define UTF8PROC_DECOMP_TYPE_SUB 9 #define UTF8PROC_DECOMP_TYPE_VERTICAL 10 #define UTF8PROC_DECOMP_TYPE_WIDE 11 #define UTF8PROC_DECOMP_TYPE_NARROW 12 #define UTF8PROC_DECOMP_TYPE_SMALL 13 #define UTF8PROC_DECOMP_TYPE_SQUARE 14 #define UTF8PROC_DECOMP_TYPE_FRACTION 15 #define UTF8PROC_DECOMP_TYPE_COMPAT 16 XQILLA_API const char* utf8proc_version(void); XQILLA_API const char* utf8proc_errmsg(ssize_t errcode); /* * Returns a static error string for the given error code. */ ssize_t utf8proc_iterate(const uint8_t *str, ssize_t strlen, int32_t *dst); ssize_t utf16proc_iterate(const uint16_t *str, ssize_t strlen, int32_t *dst); /* * Reads a single char from the UTF-8 sequence being pointed to by 'str'. * The maximum number of bytes read is 'strlen', unless 'strlen' is * negative. * If a valid unicode char could be read, it is stored in the variable * being pointed to by 'dst', otherwise that variable will be set to -1. * In case of success the number of bytes read is returned, otherwise a * negative error code is returned. */ XQILLA_API int utf8proc_codepoint_valid(int32_t uc); /* * Returns 1, if the given unicode code-point is valid, otherwise 0. */ XQILLA_API ssize_t utf8proc_encode_char(int32_t uc, uint8_t *dst); XQILLA_API ssize_t utf16proc_encode_char(int32_t uc, uint16_t *dst); /* * Encodes the unicode char with the code point 'uc' as an UTF-8 string in * the byte array being pointed to by 'dst'. This array has to be at least * 4 bytes long. * In case of success the number of bytes written is returned, * otherwise 0. * This function does not check if 'uc' is a valid unicode code point. */ XQILLA_API const utf8proc_property_t *utf8proc_get_property(int32_t uc); /* * Returns a pointer to a (constant) struct containing information about * the unicode char with the given code point 'uc'. * If the character is not existent a pointer to a special struct is * returned, where 'category' is a NULL pointer. * WARNING: The parameter 'uc' has to be in the range of 0x0000 to * 0x10FFFF, otherwise the program might crash! */ XQILLA_API ssize_t utf8proc_flush(int32_t *dst, ssize_t bufsize, int options, bound_attr_t *last_bound_attr ); /* * Flush all the "TBD" chars and return them. You only need it when you call * utf8proc_decompose_char() with option WORDBOUND or SENTENCEBOUND in a loop * - call it in the end of the loop, otherwish may cause memory leak! */ XQILLA_API void utf8proc_init_bound_attr(bound_attr_t* attr); /* * Init the special bound_attr_t object. */ XQILLA_API ssize_t utf8proc_decompose_char( int32_t uc, int32_t *dst, ssize_t bufsize, int options, bound_attr_t *last_bound_attr ); XQILLA_API ssize_t utf16proc_decompose_char( int32_t uc, int32_t *dst, ssize_t bufsize, int options, bound_attr_t *last_bound_attr ); /* * Writes a decomposition of the unicode char 'uc' into the array being * pointed to by 'dst'. Note that the argument last_bound_attr has to be * initialized by utf8proc_init_bound_attr() before being used. * * Following flags in the 'options' field are regarded: * REJECTNA: an unassigned unicode code point leads to an error * IGNORE: "default ignorable" chars are stripped * CASEFOLD: unicode casefolding is applied * COMPAT: replace certain characters with their * compatibility decomposition * CHARBOUND: Inserts 0xFF bytes before each grapheme cluster * LUMP: lumps certain different characters together * STRIPMARK: removes all character marks * The pointer 'last_bound_attr' has to point to an integer variable which * is storing the last character boundary class, if the CHARBOUND option * is used. * In case of success the number of chars written is returned, * in case of an error, a negative error code is returned. * If the number of written chars would be bigger than 'bufsize', * the buffer (up to 'bufsize') has inpredictable data, and the needed * buffer size is returned. * WARNING: The parameter 'uc' has to be in the range of 0x0000 to * 0x10FFFF, otherwise the program might crash! * * You can defined a filter function and let utf8proc_decompose_with_filter() * to filter codepoints for you. Here is a example: * int filter_callback(int32_t ch) { * if(isalnum(ch)) * return 1; // non-zero means legal * return 0; // zero means illegal * } * */ XQILLA_API ssize_t utf8proc_decompose( const uint8_t *str, ssize_t strlen, int32_t *buffer, ssize_t bufsize, int options ); XQILLA_API ssize_t utf8proc_decompose_with_filter( const uint8_t *str, ssize_t strlen, int32_t *buffer, ssize_t bufsize, int options, int (*filter_callback)(int32_t codepoint) ); XQILLA_API ssize_t utf16proc_decompose( const uint16_t *str, ssize_t strlen, int32_t *buffer, ssize_t bufsize, int options ); /* * Does the same as 'utf8proc_decompose_char', but acts on a whole UTF-8 * string, and orders the decomposed sequences correctly. * If the NULLTERM flag in 'options' is set, processing will be stopped, * when a NULL byte is encounted, otherwise 'strlen' bytes are processed. * The result in form of unicode code points is written into the buffer * being pointed to by 'buffer', having the length of 'bufsize' entries. * In case of success the number of chars written is returned, * in case of an error, a negative error code is returned. * If the number of written chars would be bigger than 'bufsize', * the buffer (up to 'bufsize') has inpredictable data, and the needed * buffer size is returned. */ XQILLA_API ssize_t utf8proc_reencode(int32_t *buffer, ssize_t length, int options); XQILLA_API ssize_t utf16proc_reencode(int32_t *buffer, ssize_t length, int options); /* * Reencodes the sequence of unicode characters given by the pointer * 'buffer' and 'length' as UTF-8. * The result is stored in the same memory area where the data is read. * Following flags in the 'options' field are regarded: * NLF2LS: converts LF, CRLF, CR and NEL into LS * NLF2PS: converts LF, CRLF, CR and NEL into PS * NLF2LF: converts LF, CRLF, CR and NEL into LF * STRIPCC: strips or converts all non-affected control characters * COMPOSE: tries to combine decomposed characters into composite * characters * STABLE: prohibits combining characters which would violate * the unicode versioning stability * In case of success the length of the resulting UTF-8 string is * returned, otherwise a negative error code is returned. * WARNING: The amount of free space being pointed to by 'buffer', has to * exceed the amount of the input data by one byte, and the * entries of the array pointed to by 'str' have to be in the * range of 0x0000 to 0x10FFFF, otherwise the program might * crash! */ XQILLA_API ssize_t utf8proc_map( const uint8_t *str, ssize_t strlen, uint8_t **dstptr, int options ); XQILLA_API ssize_t utf16proc_map( const uint16_t *str, ssize_t strlen, uint16_t **dstptr, int options ); /* * Maps the given UTF-8 string being pointed to by 'str' to a new UTF-8 * string, which is allocated dynamically, and afterwards pointed to by * the pointer being pointed to by 'dstptr'. * If the NULLTERM flag in the 'options' field is set, the length is * determined by a NULL terminator, otherwise the parameter 'strlen' is * evaluated to determine the string length, but in any case the result * will be NULL terminated (though it might contain NULL characters * before). Other flags in the 'options' field are passed to the functions * defined above, and regarded as described. * In case of success the length of the new string is returned, * otherwise a negative error code is returned. * NOTICE: The memory of the new UTF-8 string will have been allocated with * 'malloc', and has theirfore to be freed with 'free'. */ XQILLA_API uint8_t *utf8proc_NFD(const uint8_t *str); XQILLA_API uint8_t *utf8proc_NFC(const uint8_t *str); XQILLA_API uint8_t *utf8proc_NFKD(const uint8_t *str); XQILLA_API uint8_t *utf8proc_NFKC(const uint8_t *str); XQILLA_API uint16_t *utf16proc_NFD(const uint16_t *str); XQILLA_API uint16_t *utf16proc_NFC(const uint16_t *str); XQILLA_API uint16_t *utf16proc_NFKD(const uint16_t *str); XQILLA_API uint16_t *utf16proc_NFKC(const uint16_t *str); /* * Returns a pointer to newly allocated memory of a NFD, NFC, NFKD or NFKC * normalized version of the null-terminated string 'str'. */ #endif XQilla-2.3.0/include/xqilla/utils/UnicodeTransformer.hpp0000644000151400015140000000415111653565523020236 00000000000000/* * Copyright (c) 2001-2008 * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004-2008 * Oracle. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * $Id$ */ #ifndef UNICODETRANSFORMER_HPP #define UNICODETRANSFORMER_HPP #include #include class XPath2MemoryManager; /// class XQILLA_API UnicodeTransformer { public: static XMLCh* normalizeC(const XMLCh* source, XPath2MemoryManager* mm); static XMLCh* normalizeD(const XMLCh* source, XPath2MemoryManager* mm); static XMLCh* normalizeKC(const XMLCh* source, XPath2MemoryManager* mm); static XMLCh* normalizeKD(const XMLCh* source, XPath2MemoryManager* mm); static XMLCh* removeDiacritics(const XMLCh* source, XPath2MemoryManager* mm); static XMLCh* caseFold(const XMLCh* source, XPath2MemoryManager* mm); static XMLCh* caseFoldAndRemoveDiacritics(const XMLCh* source, XPath2MemoryManager* mm); static XMLCh* lowerCase(const XMLCh* source, XPath2MemoryManager* mm); static XMLCh* upperCase(const XMLCh* source, XPath2MemoryManager* mm); static XMLCh* words(const XMLCh* source, XPath2MemoryManager* mm); static XMLCh* sentences(const XMLCh* source, XPath2MemoryManager* mm); static XMLCh* wordsAndSentences(const XMLCh* source, XPath2MemoryManager* mm); static XMLCh* transform(const XMLCh* source, int options, XPath2MemoryManager* mm); static bool isPunctuation(const XMLCh* source, int &codeSize); static bool isSpaceSeparator(const XMLCh* source); static bool isSpacesOrPunctuations(const XMLCh* start, const XMLCh* end); }; #endif XQilla-2.3.0/include/xqilla/utils/XPath2NSUtils.hpp0000644000151400015140000000306611653565523017021 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _V2NSUTILS_HPP #define _V2NSUTILS_HPP #include #include class XPath2MemoryManager; class XQILLA_API XPath2NSUtils { public: /// Get the proper local name (not null if the node is DOM level 1...) static const XMLCh* getLocalName(const XMLCh* name); ///returns the prefix part of a xs:foo string or a zero length string if no prefix static const XMLCh* getPrefix(const XMLCh* name, XPath2MemoryManager* memMgr); ///form a qualified name from a namespace and a name static const XMLCh* qualifyName(const XMLCh* prefix, const XMLCh* name, XPath2MemoryManager* memMgr); ///gets the owner element of an attribute, and the parent of any other node static XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *getParent(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node); }; #endif XQilla-2.3.0/include/xqilla/axis/0000755000151400015140000000000011653572443013576 500000000000000XQilla-2.3.0/include/xqilla/axis/NodeTest.hpp0000644000151400015140000001103311653565523015753 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _NODETEST_HPP #define _NODETEST_HPP #include #include #include #include class StaticContext; class DynamicContext; /** * This class represents a NodeTest production from the grammar, * and provides methods for filtering a Result containing Node items, * and determining if a single Item matches. */ class XQILLA_API NodeTest { public: NodeTest(); NodeTest(const XMLCh *nodeType, const XMLCh *uri = 0, const XMLCh *name = 0); NodeTest(const NodeTest *other); virtual ~NodeTest(); /** Method for returning arbitrary interfaces from the implementations */ virtual void *getInterface(const XMLCh *name) const; /// Filters the given Result, returning only Items that match the NodeTest Result filterResult(const Result &toFilter, const LocationInfo *info) const; ///check if a node has to be placed in the result set bool filterNode(Node::Ptr node, DynamicContext* context) const; void staticResolution(StaticContext *context, const LocationInfo *location); ///gets the sequence type used to match the nodes SequenceType::ItemType* getItemType() const; ///set function for private member void setItemType(SequenceType::ItemType* type); ///gets the name of the node we are selecting const XMLCh* getNodeName() const; ///set function for private member void setNodeName(const XMLCh* name); ///gets the uri of the node we are selecting const XMLCh* getNodeUri() const; ///set function for private member void setNodeUri(const XMLCh* uri); ///gets the prefix of the node we are selecting const XMLCh* getNodePrefix() const; ///set function for private member void setNodePrefix(const XMLCh* prefix); ///returns whether the prefix has been set (instead of the uri) bool isNodePrefixSet() const; ///gets the node type we are selecting const XMLCh *getNodeType() const; ///set node type looked for void setNodeType(const XMLCh *type); ///retuns whether the type has been set in this NavStep bool isNodeTypeSet() const; ///returns true if the Node Name ia a wildcard bool getNameWildcard() const; ///sets the wildcard nodeName bool void setNameWildcard(bool value = true); ///returns true if the Node prefix ia a wildcard bool getNamespaceWildcard() const; ///sets the prefix wildcard bool void setNamespaceWildcard(bool value = true); ///returns true if the type is a wildcard bool getTypeWildcard() const; ///sets the type wildcard bool void setTypeWildcard(bool value = true); /// returns true if the following step is a child axis (for optimisation reasons) bool getHasChildren() const; /// sets whether the following step is a child axis void setHasChildren(bool value = true); void getStaticType(StaticType &st, const StaticContext *context, bool &isExact, const LocationInfo *location) const; bool isSubsetOf(const NodeTest *o) const; static bool isSubsetOf(const NodeTest *a, const NodeTest *b); protected: ///check a node's type against _type, considers wildcard bool checkNodeType(Node::Ptr node) const; ///check a node's name against _name, considers wildcard bool checkNodeName(Node::Ptr node, const DynamicContext *context) const; /** * Performs filtering based on type or name. */ class XQILLA_API FilterResult : public ResultImpl { public: FilterResult(const LocationInfo *info, const Result &toFilter, const NodeTest *nodeTest); virtual ~FilterResult() {} Item::Ptr next(DynamicContext *context); protected: Result toFilter_; const NodeTest *nodeTest_; }; protected: const XMLCh* _name,*_uri,*_prefix; const XMLCh* _type; bool _wildcardName, _wildcardNamespace, _wildcardType, _usePrefix, _hasChildren; SequenceType::ItemType* _itemType; }; #endif XQilla-2.3.0/include/xqilla/mapm/0000755000151400015140000000000011653572444013565 500000000000000XQilla-2.3.0/include/xqilla/mapm/m_apm.h0000644000151400015140000003666011636377670014767 00000000000000 /* * M_APM - m_apm.h * * Copyright (C) 1999 - 2002 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/01, 2005/11/03, 2006/08/09, 2006/08/21, * 2007/09/20. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #ifndef M__APM__INCLUDED #define M__APM__INCLUDED #include #ifdef __cplusplus /* Comment this line out if you've compiled the library as C++. */ #define APM_CONVERT_FROM_C #endif #ifdef APM_CONVERT_FROM_C extern "C" { #endif typedef unsigned char UCHAR; typedef struct { UCHAR *m_apm_data; long m_apm_id; int m_apm_refcount; /* <- used only by C++ MAPM class */ int m_apm_malloclength; int m_apm_datalength; int m_apm_exponent; int m_apm_sign; } M_APM_struct; typedef M_APM_struct *M_APM; /* * convienient predefined constants * (Not thread safe in C++ API) */ extern M_APM MM_Zero; extern M_APM MM_One; extern M_APM MM_Two; extern M_APM MM_Three; extern M_APM MM_Four; extern M_APM MM_Five; extern M_APM MM_Ten; extern M_APM MM_PI; extern M_APM MM_HALF_PI; extern M_APM MM_2_PI; extern M_APM MM_E; extern M_APM MM_LOG_E_BASE_10; extern M_APM MM_LOG_10_BASE_E; extern M_APM MM_LOG_2_BASE_E; extern M_APM MM_LOG_3_BASE_E; /* * function prototypes */ extern void m_apm_library_initialize(void); extern void m_apm_library_terminate(void); extern void m_apm_mt_initialize(void); extern void m_apm_mt_terminate(void); extern void m_apm_enter(void); extern void m_apm_leave(void); extern XQILLA_API M_APM m_apm_init(void); extern void m_apm_free(M_APM); extern void m_apm_free_all_mem(void); extern void m_apm_trim_mem_usage(void); extern void m_apm_set_string(M_APM, char *); extern void m_apm_set_double(M_APM, double); extern void m_apm_set_long(M_APM, long); extern double m_apm_get_double(M_APM atmp); extern void m_apm_to_string(char *, int, M_APM); extern void m_apm_to_fixpt_string(char *, int, M_APM); extern void m_apm_to_fixpt_stringex(char *, int, M_APM, char, char, int); extern char *m_apm_to_fixpt_stringexp(int, M_APM, char, char, int); extern void m_apm_to_integer_string(char *, M_APM); extern void m_apm_absolute_value(M_APM, M_APM); extern void m_apm_negate(M_APM, M_APM); extern XQILLA_API void m_apm_copy(M_APM, M_APM); extern void m_apm_round(M_APM, int, M_APM); extern XQILLA_API int m_apm_compare(M_APM, M_APM); extern int m_apm_sign(M_APM); extern int m_apm_exponent(M_APM); extern int m_apm_significant_digits(M_APM); extern int m_apm_is_integer(M_APM); extern int m_apm_is_even(M_APM); extern int m_apm_is_odd(M_APM); extern void m_apm_gcd(M_APM, M_APM, M_APM); extern void m_apm_lcm(M_APM, M_APM, M_APM); extern void m_apm_add(M_APM, M_APM, M_APM); extern void m_apm_subtract(M_APM, M_APM, M_APM); extern void m_apm_multiply(M_APM, M_APM, M_APM); extern void m_apm_divide(M_APM, int, M_APM, M_APM); extern void m_apm_integer_divide(M_APM, M_APM, M_APM); extern void m_apm_integer_div_rem(M_APM, M_APM, M_APM, M_APM); extern void m_apm_reciprocal(M_APM, int, M_APM); extern void m_apm_factorial(M_APM, M_APM); extern void m_apm_floor(M_APM, M_APM); extern void m_apm_ceil(M_APM, M_APM); extern void m_apm_get_random(M_APM); extern void m_apm_set_random_seed(char *); extern void m_apm_sqrt(M_APM, int, M_APM); extern void m_apm_cbrt(M_APM, int, M_APM); extern void m_apm_log(M_APM, int, M_APM); extern void m_apm_log10(M_APM, int, M_APM); extern void m_apm_exp(M_APM, int, M_APM); extern void m_apm_pow(M_APM, int, M_APM, M_APM); extern void m_apm_integer_pow(M_APM, int, M_APM, int); extern void m_apm_integer_pow_nr(M_APM, M_APM, int); extern void m_apm_sin_cos(M_APM, M_APM, int, M_APM); extern void m_apm_sin(M_APM, int, M_APM); extern void m_apm_cos(M_APM, int, M_APM); extern void m_apm_tan(M_APM, int, M_APM); extern void m_apm_arcsin(M_APM, int, M_APM); extern void m_apm_arccos(M_APM, int, M_APM); extern void m_apm_arctan(M_APM, int, M_APM); extern void m_apm_arctan2(M_APM, int, M_APM, M_APM); extern void m_apm_sinh(M_APM, int, M_APM); extern void m_apm_cosh(M_APM, int, M_APM); extern void m_apm_tanh(M_APM, int, M_APM); extern void m_apm_arcsinh(M_APM, int, M_APM); extern void m_apm_arccosh(M_APM, int, M_APM); extern void m_apm_arctanh(M_APM, int, M_APM); extern void m_apm_cpp_precision(int); /* only for C++ wrapper */ extern M_APM m_apm_init_mt(void); extern void m_apm_free_mt(M_APM); extern void m_apm_free_all_mem_mt(void); extern void m_apm_trim_mem_usage_mt(void); extern void m_apm_set_string_mt(M_APM, char *); extern void m_apm_set_double_mt(M_APM, double); extern void m_apm_set_long_mt(M_APM, long); extern void m_apm_to_string_mt(char *, int, M_APM); extern void m_apm_to_fixpt_string_mt(char *, int, M_APM); extern void m_apm_to_fixpt_stringex_mt(char *, int, M_APM, char, char, int); extern char *m_apm_to_fixpt_stringexp_mt(int, M_APM, char, char, int); extern void m_apm_to_integer_string_mt(char *, M_APM); extern void m_apm_absolute_value_mt(M_APM, M_APM); extern void m_apm_negate_mt(M_APM, M_APM); extern void m_apm_copy_mt(M_APM, M_APM); extern void m_apm_round_mt(M_APM, int, M_APM); extern int m_apm_compare_mt(M_APM, M_APM); extern int m_apm_sign_mt(M_APM); extern int m_apm_exponent_mt(M_APM); extern int m_apm_significant_digits_mt(M_APM); extern int m_apm_is_integer_mt(M_APM); extern int m_apm_is_even_mt(M_APM); extern int m_apm_is_odd_mt(M_APM); extern void m_apm_gcd_mt(M_APM, M_APM, M_APM); extern void m_apm_lcm_mt(M_APM, M_APM, M_APM); extern void m_apm_add_mt(M_APM, M_APM, M_APM); extern void m_apm_subtract_mt(M_APM, M_APM, M_APM); extern void m_apm_multiply_mt(M_APM, M_APM, M_APM); extern void m_apm_divide_mt(M_APM, int, M_APM, M_APM); extern void m_apm_integer_divide_mt(M_APM, M_APM, M_APM); extern void m_apm_integer_div_rem_mt(M_APM, M_APM, M_APM, M_APM); extern void m_apm_reciprocal_mt(M_APM, int, M_APM); extern void m_apm_factorial_mt(M_APM, M_APM); extern void m_apm_floor_mt(M_APM, M_APM); extern void m_apm_ceil_mt(M_APM, M_APM); extern void m_apm_get_random_mt(M_APM); extern void m_apm_set_random_seed_mt(char *); extern void m_apm_sqrt_mt(M_APM, int, M_APM); extern void m_apm_cbrt_mt(M_APM, int, M_APM); extern void m_apm_log_mt(M_APM, int, M_APM); extern void m_apm_log10_mt(M_APM, int, M_APM); extern void m_apm_exp_mt(M_APM, int, M_APM); extern void m_apm_pow_mt(M_APM, int, M_APM, M_APM); extern void m_apm_integer_pow_mt(M_APM, int, M_APM, int); extern void m_apm_integer_pow_nr_mt(M_APM, M_APM, int); extern void m_apm_sin_cos_mt(M_APM, M_APM, int, M_APM); extern void m_apm_sin_mt(M_APM, int, M_APM); extern void m_apm_cos_mt(M_APM, int, M_APM); extern void m_apm_tan_mt(M_APM, int, M_APM); extern void m_apm_arcsin_mt(M_APM, int, M_APM); extern void m_apm_arccos_mt(M_APM, int, M_APM); extern void m_apm_arctan_mt(M_APM, int, M_APM); extern void m_apm_arctan2_mt(M_APM, int, M_APM, M_APM); extern void m_apm_sinh_mt(M_APM, int, M_APM); extern void m_apm_cosh_mt(M_APM, int, M_APM); extern void m_apm_tanh_mt(M_APM, int, M_APM); extern void m_apm_arcsinh_mt(M_APM, int, M_APM); extern void m_apm_arccosh_mt(M_APM, int, M_APM); extern void m_apm_arctanh_mt(M_APM, int, M_APM); extern void m_apm_cpp_precision_mt(int); /* only for C++ wrapper */ /* more intuitive alternate names for the ARC functions ... */ #define m_apm_asin m_apm_arcsin #define m_apm_acos m_apm_arccos #define m_apm_atan m_apm_arctan #define m_apm_atan2 m_apm_arctan2 #define m_apm_asinh m_apm_arcsinh #define m_apm_acosh m_apm_arccosh #define m_apm_atanh m_apm_arctanh #define m_apm_asin_mt m_apm_arcsin_mt #define m_apm_acos_mt m_apm_arccos_mt #define m_apm_atan_mt m_apm_arctan_mt #define m_apm_atan2_mt m_apm_arctan2_mt #define m_apm_asinh_mt m_apm_arcsinh_mt #define m_apm_acosh_mt m_apm_arccosh_mt #define m_apm_atanh_mt m_apm_arctanh_mt #ifdef APM_CONVERT_FROM_C } /* End extern "C" bracket */ #endif #ifdef __cplusplus /*<- Hides the class below from C compilers */ /* This class lets you use M_APM's a bit more intuitively with C++'s operator and function overloading, constructors, etc. Added 3/24/2000 by Orion Sky Lawlor, olawlor@acm.org */ extern #ifdef APM_CONVERT_FROM_C "C" #endif int MM_cpp_min_precision; class XQILLA_API MAPM { protected: /* The M_APM structure here is implemented as a reference- counted, copy-on-write data structure-- this makes copies very fast, but that's why it's so ugly. A MAPM object is basically just a wrapper around a (possibly shared) M_APM_struct myVal. */ M_APM myVal; /* My M_APM structure */ void create(void); void destroy(void); void copyFrom(M_APM Nval); static M_APM makeNew(void); static void ref(M_APM val); static void unref(M_APM val); /* This routine is called to get a private (mutable) copy of our current value. */ M_APM val(void); /*BAD: C M_APM routines doesn't use "const" where they should-- hence we have to cast to a non-const type here (FIX THIS!). (in due time.... MCR) */ M_APM cval(void) const; /* This is the default number of digits to use for 1-ary functions like sin, cos, tan, etc. It's the larger of my digits and cpp_min_precision. */ int myDigits(void) const; /* This is the default number of digits to use for 2-ary functions like divide, atan2, etc. It's the larger of my digits, his digits, and cpp_min_precision. */ int digits(const MAPM &otherVal) const; public: /* Constructors: */ MAPM(void); /* Default constructor (takes no value) */ MAPM(const MAPM &m); /* Copy constructor */ MAPM(M_APM m, bool copy=true); /* M_APM constructor (refcount starts at one) */ MAPM(const char *s); /* Constructor from string */ MAPM(double d); /* Constructor from double-precision float */ MAPM(int l); /* Constructor from int */ MAPM(long l); /* Constructor from long int */ /* Destructor */ ~MAPM(); M_APM c_struct() const { return myVal; } /* Extracting string descriptions: */ void toString(char *dest,int decimalPlaces) const; void toFixPtString(char *dest,int decimalPlaces) const; void toFixPtStringEx(char *dest,int dp,char a,char b,int c) const; char *toFixPtStringExp(int dp,char a,char b,int c) const; void toIntegerString(char *dest) const; double toDouble() const; /* Basic operators: */ MAPM &operator=(const MAPM &m); /* Assigment operator */ MAPM &operator=(const char *s); /* Assigment operator */ MAPM &operator=(double d); /* Assigment operator */ MAPM &operator=(int l); /* Assigment operator */ MAPM &operator=(long l); /* Assigment operator */ MAPM operator++(); /* Prefix increment operator */ MAPM operator--(); /* Prefix decrement operator */ const MAPM operator++(int); /* Postfix increment operator */ const MAPM operator--(int); /* Postfix decrement operator */ /* Comparison operators */ bool operator==(const MAPM &m) const; /* Equality operator */ bool operator!=(const MAPM &m) const; /* Inequality operator */ bool operator<(const MAPM &m) const; bool operator<=(const MAPM &m) const; bool operator>(const MAPM &m) const; bool operator>=(const MAPM &m) const; int compare(const MAPM &m) const; /* Basic arithmetic operators */ friend MAPM operator+(const MAPM &a,const MAPM &b); friend MAPM operator-(const MAPM &a,const MAPM &b); friend MAPM operator*(const MAPM &a,const MAPM &b); /* Default division keeps larger of cpp_min_precision, numerator digits of precision, or denominator digits of precision. */ friend MAPM operator/(const MAPM &a,const MAPM &b); MAPM divide(const MAPM &m,int toDigits) const; MAPM divide(const MAPM &m) const; /* Assignment arithmetic operators */ MAPM &operator+=(const MAPM &m); MAPM &operator-=(const MAPM &m); MAPM &operator*=(const MAPM &m); MAPM &operator/=(const MAPM &m); /* Extracting/setting simple information: */ int sign(void) const; int exponent(void) const ; int significant_digits(void) const; int is_integer(void) const; int is_even(void) const; int is_odd(void) const; /* Functions: */ MAPM abs(void) const; MAPM neg(void) const; MAPM round(int toDigits) const; /* I got tired of typing the various declarations for a simple 1-ary real-to-real function on MAPM's; hence this define: The digits-free versions return my digits of precision or cpp_min_precision, whichever is bigger. */ #define MAPM_1aryFunc(func) \ MAPM func(int toDigits) const;\ MAPM func(void) const; MAPM_1aryFunc(sqrt) MAPM_1aryFunc(cbrt) MAPM_1aryFunc(log) MAPM_1aryFunc(exp) MAPM_1aryFunc(log10) MAPM_1aryFunc(sin) MAPM_1aryFunc(asin) MAPM_1aryFunc(cos) MAPM_1aryFunc(acos) MAPM_1aryFunc(tan) MAPM_1aryFunc(atan) MAPM_1aryFunc(sinh) MAPM_1aryFunc(asinh) MAPM_1aryFunc(cosh) MAPM_1aryFunc(acosh) MAPM_1aryFunc(tanh) MAPM_1aryFunc(atanh) #undef MAPM_1aryFunc void sincos(MAPM &sinR,MAPM &cosR,int toDigits); void sincos(MAPM &sinR,MAPM &cosR); MAPM pow(const MAPM &m,int toDigits) const; MAPM pow(const MAPM &m) const; MAPM atan2(const MAPM &x,int toDigits) const; MAPM atan2(const MAPM &x) const; MAPM gcd(const MAPM &m) const; MAPM lcm(const MAPM &m) const; static MAPM random(void); MAPM floor(void) const; MAPM ceil(void) const; /* Functions defined only on integers: */ MAPM factorial(void) const; MAPM ipow_nr(int p) const; MAPM ipow(int p,int toDigits) const; MAPM ipow(int p) const; MAPM integer_divide(const MAPM &denom) const; void integer_div_rem(const MAPM &denom,MAPM ",MAPM &rem) const; MAPM div(const MAPM &denom) const; MAPM rem(const MAPM &denom) const; }; /* math.h-style functions: */ inline MAPM fabs(const MAPM &m) {return m.abs();} inline MAPM factorial(const MAPM &m) {return m.factorial();} inline MAPM floor(const MAPM &m) {return m.floor();} inline MAPM ceil(const MAPM &m) {return m.ceil();} inline MAPM get_random(void) {return MAPM::random();} /* I got tired of typing the various declarations for a simple 1-ary real-to-real function on MAPM's; hence this define: */ #define MAPM_1aryFunc(func) \ inline MAPM func(const MAPM &m) {return m.func();} \ inline MAPM func(const MAPM &m,int toDigits) {return m.func(toDigits);} /* Define a big block of simple functions: */ MAPM_1aryFunc(sqrt) MAPM_1aryFunc(cbrt) MAPM_1aryFunc(log) MAPM_1aryFunc(exp) MAPM_1aryFunc(log10) MAPM_1aryFunc(sin) MAPM_1aryFunc(asin) MAPM_1aryFunc(cos) MAPM_1aryFunc(acos) MAPM_1aryFunc(tan) MAPM_1aryFunc(atan) MAPM_1aryFunc(sinh) MAPM_1aryFunc(asinh) MAPM_1aryFunc(cosh) MAPM_1aryFunc(acosh) MAPM_1aryFunc(tanh) MAPM_1aryFunc(atanh) #undef MAPM_1aryFunc /* Computes x to the power y */ inline MAPM pow(const MAPM &x,const MAPM &y,int toDigits) {return x.pow(y,toDigits);} inline MAPM pow(const MAPM &x,const MAPM &y) {return x.pow(y);} inline MAPM atan2(const MAPM &y,const MAPM &x,int toDigits) {return y.atan2(x,toDigits);} inline MAPM atan2(const MAPM &y,const MAPM &x) {return y.atan2(x);} inline MAPM gcd(const MAPM &u,const MAPM &v) {return u.gcd(v);} inline MAPM lcm(const MAPM &u,const MAPM &v) {return u.lcm(v);} #endif #endif XQilla-2.3.0/include/xqilla/exceptions/0000755000151400015140000000000011653572444015014 500000000000000XQilla-2.3.0/include/xqilla/exceptions/TypeErrorException.hpp0000644000151400015140000000245711653565523021267 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _TYPEERROREXCEPTION_HPP #define _TYPEERROREXCEPTION_HPP #include #include #include /** * This means that an error was found while manipulating typed data */ class XQILLA_API TypeErrorException : public XQException { public: TypeErrorException(const XMLCh* const functionName, const XMLCh* const reason, const LocationInfo *info, const char *file, int line) : XQException(X("TypeErrorException"), functionName, reason, info, file, line) {}; }; #endif // _TYPEERROREXCEPTION_HPP XQilla-2.3.0/include/xqilla/exceptions/ItemException.hpp0000644000151400015140000000255311653565523020227 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* Item Exception. Should be thrown only from Item hierarchy */ #ifndef _ITEMEXCEPTION_HPP #define _ITEMEXCEPTION_HPP #include #include #include /** exception class for tests. Inherit from this if you need to throw an exception in the test suite.*/ class XQILLA_API ItemException : public XQException { public: ItemException(const XMLCh *functionName, const XMLCh *reason, const LocationInfo *info, const char *file, int line) : XQException(X("ItemException"), functionName, reason, info, file, line) {}; }; #endif // _ITEMEXCEPTION_HPP XQilla-2.3.0/include/xqilla/exceptions/QueryInterruptedException.hpp0000644000151400015140000000252611653565523022664 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* QueryInterruptedException */ #ifndef _QUERYINTERRUPTEDEXCEPTION_HPP #define _QUERYINTERRUPTEDEXCEPTION_HPP #include #include #include /** exception class for interrupted queries */ class XQILLA_API QueryInterruptedException : public XQException { public: QueryInterruptedException(const XMLCh *functionName, const XMLCh *reason, const LocationInfo *info, const char *file, int line) : XQException(X("QueryInterruptedException"), functionName, reason, info, file, line) {}; }; #endif // _QUERYINTERRUPTEDEXCEPTION_HPP XQilla-2.3.0/include/xqilla/exceptions/QueryTimeoutException.hpp0000644000151400015140000000246511653565523022007 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* QueryTimeoutException */ #ifndef _QUERYTIMEOUTEXCEPTION_HPP #define _QUERYTIMEOUTEXCEPTION_HPP #include #include #include /** exception class for query timeouts */ class XQILLA_API QueryTimeoutException : public XQException { public: QueryTimeoutException(const XMLCh *functionName, const XMLCh *reason, const LocationInfo *info, const char *file, int line) : XQException(X("QueryTimeoutException"), functionName, reason, info, file, line) {}; }; #endif // _QUERYTIMEOUTEXCEPTION_HPP XQilla-2.3.0/include/xqilla/exceptions/XPath2ErrorException.hpp0000644000151400015140000000257411653565523021454 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* XPath2ErrorException - handles cases in the specification where the `error value' is returned */ #ifndef _XPATH2ERROREXCEPTON_HPP #define _XPATH2ERROREXCEPTON_HPP #include #include #include /** exception class for data items */ class XQILLA_API XPath2ErrorException : public XQException { public: XPath2ErrorException(const XMLCh* const functionName, const XMLCh* const reason, const LocationInfo *info, const char *file, int line) : XQException(X("XPath2ErrorException"), functionName, reason, info, file, line) {}; }; #endif // _XPATH2ERROREXCEPTON_HPP XQilla-2.3.0/include/xqilla/exceptions/NamespaceLookupException.hpp0000644000151400015140000000251111653565523022411 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* NamespaceLookupException - exception class for DSLPath parser */ #ifndef _NAMESPACELOOKUPEXCPETION_HPP #define _NAMESPACELOOKUPEXCPETION_HPP #include #include /** exception class for DSLPath parser */ class XQILLA_API NamespaceLookupException : public XQException { public: NamespaceLookupException(const XMLCh *functionName, const XMLCh *reason, const LocationInfo *info, const char *file, int line) : XQException(X("NamespaceLookupException"), functionName, reason, info, file, line) {}; }; #endif // _XPATHPARSEEXCEPTION_HPP XQilla-2.3.0/include/xqilla/exceptions/XQillaException.hpp0000644000151400015140000000733311653565523020524 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __XQILLAEXCEPTION_HPP #define __XQILLAEXCEPTION_HPP #include #include #include class XQException; /** * The XQillaException interface extends the DOMXPathException * allowing an additional exception of type RUNTIME_ERR to be thrown. * @since DOM Level 3 */ class XQILLA_API XQillaException: public XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathException { public: // ----------------------------------------------------------------------- // Constructors // ----------------------------------------------------------------------- /** @name Constructors */ //@{ /** * Constructor which takes an error code and a message. * * @param code The error code which indicates the exception * @param message The string containing the error message */ XQillaException(short code, const XMLCh* message); /** * Constructor which takes an error code and a message. * * @param code The error code which indicates the exception * @param message The string containing the error message */ XQillaException(const XQException &ex); /** * Copy constructor. * * @param other The object to be copied. */ XQillaException(const XQillaException &other); //@} // ----------------------------------------------------------------------- // Destructors // ----------------------------------------------------------------------- /** @name Destructor */ //@{ /** * Destructor for XQillaException. * */ virtual ~XQillaException(); //@} //@{ /** * ExceptionCode * RUNTIME_ERR If XQilla encounters a runtime exception */ enum valExtension { RUNTIME_ERR = 54 }; //@} // ----------------------------------------------------------------------- // Getter methods // ----------------------------------------------------------------------- /** @name Getter methods */ //@{ /** * Returns the code associated with this exception. * * @return the exception code */ virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathException::ExceptionCode getCode(void) const; /** * Returns the string representing the exception's error message. * * @return the error message */ virtual const XMLCh* getString(void) const; //@} /** @name Getter methods */ //@{ /** * Statically returns whether or not XQillaExceptions have debug on * * @return debug */ static bool getDebug(void); //@} // ----------------------------------------------------------------------- // Setter methods // ----------------------------------------------------------------------- /** @name Setter methods */ //@{ /** Set the 'debug' flag * * This method allows users to enable or disable debug on XQillaExceptions. * * @param debug The value specifying whether or not debug is enabled */ static void setDebug(bool flag); //@} private: static bool _debug; }; #endif XQilla-2.3.0/include/xqilla/exceptions/StaticErrorException.hpp0000644000151400015140000000253311653565523021570 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _STATICERROREXCEPTION_HPP #define _STATICERROREXCEPTION_HPP #include #include #include /** * This means that an error was found while parsing or when doing static analysis of the expression */ class XQILLA_API StaticErrorException : public XQException { public: StaticErrorException(const XMLCh* const functionName, const XMLCh* const reason, const LocationInfo *info, const char *file, int line) : XQException(X("StaticErrorException"), functionName, reason, info, file, line) {}; }; #endif // _STATICERROREXCEPTION_HPP XQilla-2.3.0/include/xqilla/exceptions/XQException.hpp0000644000151400015140000000507011653565523017656 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQEXCEPTION_HPP #define XQEXCEPTION_HPP #include #include #define XQThrow(type, function, reason) throw type(function, reason, this, __FILE__, __LINE__) #define XQThrow2(type, function, reason) throw type(function, reason, 0, __FILE__, __LINE__) #define XQThrow3(type, function, reason, location) throw type(function, reason, location, __FILE__, __LINE__) #define XQSimpleThrow(reason, xqfile, xqline, xqcolumn) throw XQException(reason, xqfile, xqline, (unsigned int)xqcolumn, __FILE__, __LINE__) class LocationInfo; class XQILLA_API XQException { public: XQException(const XMLCh *reason, const XMLCh* file, unsigned int line, unsigned int column, const char *cppFile, unsigned int cppLine); XQException(const XQException &); virtual ~XQException(); const XMLCh *getType() const { return type_; } const XMLCh *getError() const { return error_; } const XMLCh *getXQueryFile() const { return xqFile_; } unsigned int getXQueryLine() const { return xqLine_; } unsigned int getXQueryColumn() const { return xqColumn_; } void setXQueryPosition(const XMLCh *file, unsigned int line, unsigned int column); void setXQueryPosition(const LocationInfo *info); const XMLCh *getCppFunction() const { return cppFunction_; } const char *getCppFile() const { return cppFile_; } unsigned int getCppLine() const { return cppLine_; } void printDebug(const XMLCh* const context) const; protected: XQException(const XMLCh* const type, const XMLCh* const functionName, const XMLCh* const reason, const LocationInfo *info, const char *cppFile, unsigned int cppLine); private: XQException &operator=(const XQException &); XMLCh* type_; XMLCh* error_; XMLCh* cppFunction_; const char *cppFile_; unsigned int cppLine_; unsigned int xqLine_, xqColumn_; XMLCh* xqFile_; }; #endif XQilla-2.3.0/include/xqilla/exceptions/XMLParseException.hpp0000644000151400015140000000250311653565523020757 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* XMLParseException - exception class for parsing XML */ #ifndef _XMLPARSEEXCEPTION_HPP #define _XMLPARSEEXCEPTION_HPP #include #include #include /** exception class for parsing XML */ class XQILLA_API XMLParseException : public XQException { public: XMLParseException(const XMLCh* const functionName, const XMLCh* const reason, const LocationInfo *info, const char *file, int line) : XQException(X("XMLParseException"), functionName, reason, info, file, line) {}; }; #endif // _XMLPARSEEXCEPTION_HPP XQilla-2.3.0/include/xqilla/exceptions/DynamicErrorException.hpp0000644000151400015140000000250311653565523021722 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _DYNAMICERROREXCEPTION_HPP #define _DYNAMICERROREXCEPTION_HPP #include #include #include /** * This means that an error was found while evaluating the expression */ class XQILLA_API DynamicErrorException : public XQException { public: DynamicErrorException(const XMLCh* const functionName, const XMLCh* const reason, const LocationInfo *info, const char *file, int line) : XQException(X("DynamicErrorException"), functionName, reason, info, file, line) {}; }; #endif // _DYNAMICERROREXCEPTION_HPP XQilla-2.3.0/include/xqilla/exceptions/TypeNotFoundException.hpp0000644000151400015140000000231111653565523021717 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _TYPENOTFOUNDEXCEPTION_HPP #define _TYPENOTFOUNDEXCEPTION_HPP #include #include class XQILLA_API TypeNotFoundException : public XQException { public: TypeNotFoundException(const XMLCh *functionName, const XMLCh *reason, const LocationInfo *info, const char *file, int line) : XQException(X("TypeNotFoundException"), functionName, reason, info, file, line) {}; }; #endif // _TYPENOTFOUNDEXCEPTION_HPP XQilla-2.3.0/include/xqilla/exceptions/ContextException.hpp0000644000151400015140000000242211653565523020750 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* ContextException */ #ifndef _CONTEXTEXCEPTION_HPP #define _CONTEXTEXCEPTION_HPP #include #include #include /** exception class for DSLPath parser */ class XQILLA_API ContextException : public XQException { public: ContextException(const XMLCh *functionName, const XMLCh *reason, const LocationInfo *info, const char *file, int line) : XQException(X("ContextException"), functionName, reason, info, file, line) {}; }; #endif // _CONTEXTEXCEPTION_HPP XQilla-2.3.0/include/xqilla/exceptions/XPath2TypeCastException.hpp0000644000151400015140000000254211653565523022112 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* XPath2TypeCastException - exception class for casting errors */ #ifndef _XPATH2TYPECASTEXCEPTION_HPP #define _XPATH2TYPECASTEXCEPTION_HPP #include #include #include /** exception class for data items */ class XQILLA_API XPath2TypeCastException : public XQException { public: XPath2TypeCastException(const XMLCh *functionName, const XMLCh *reason, const LocationInfo *info, const char *file, int line) : XQException(X("XPath2TypeCastException"), functionName, reason, info, file, line) {}; }; #endif // _XPATH2TYPECASTEXCEPTION_HPP XQilla-2.3.0/include/xqilla/exceptions/ASTException.hpp0000644000151400015140000000237311653565523017760 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* ASTException - exception class for ASTNodes */ #ifndef _ASTEXCEPTION_HPP #define _ASTEXCEPTION_HPP #include #include #include /** exception class for data items */ class XQILLA_API ASTException : public XQException { public: ASTException(const XMLCh *functionName, const XMLCh *reason, const LocationInfo *info, const char *file, int line) : XQException(X("ASTException"), functionName, reason, info, file, line) {}; }; #endif XQilla-2.3.0/include/xqilla/exceptions/FunctionException.hpp0000644000151400015140000000260311653565523021112 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* FunctionException - exception class for functions */ #ifndef _FUNCTIONEXCEPTION_HPP #define _FUNCTIONEXCEPTION_HPP #include #include #include /** exception class for tests. Inherit from this if you need to throw an exception in the test suite.*/ class XQILLA_API FunctionException : public XQException { public: FunctionException(const XMLCh* const functionName, const XMLCh* const reason, const LocationInfo *info, const char *file, int line) : XQException(X("FunctionException"), functionName, reason, info, file, line) {}; }; #endif // _FUNCTIONEXCEPTION_HPP XQilla-2.3.0/include/xqilla/exceptions/IllegalArgumentException.hpp0000644000151400015140000000271111653565523022401 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* Illegal Argument exception. Should be thrown when arguments given are not as expected */ #ifndef _ILLEGALARGUMENTEXCEPTION_HPP #define _ILLEGALARGUMENTEXCEPTION_HPP #include #include #include /** exception class for tests. Inherit from this if you need to throw an exception in the test suite.*/ class XQILLA_API IllegalArgumentException : public XQException { public: IllegalArgumentException(const XMLCh *functionName, const XMLCh *reason, const LocationInfo *info, const char *file, int line) : XQException(X("IllegalArgumentException"), functionName, reason, info, file, line) {}; }; #endif // _ILLEGALARGUMENTEXCEPTION_HPP XQilla-2.3.0/include/xqilla/exceptions/XPath2TypeMatchException.hpp0000644000151400015140000000256111653565523022255 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* XPath2TypeCastException - exception class for casting errors */ #ifndef _XPATH2TYPEMATCHEXCEPTION_HPP #define _XPATH2TYPEMATCHEXCEPTION_HPP #include #include /** Exception to be thrown if an attempt to match a non-existent type is made */ class XQILLA_API XPath2TypeMatchException : public XQException { public: XPath2TypeMatchException(const XMLCh *functionName, const XMLCh *reason, const LocationInfo *info, const char *file, int line) : XQException(X("XPath2TypeCastException"), functionName, reason, info, file, line) {}; }; #endif // _XPATH2TYPEMATCHEXCEPTION_HPP XQilla-2.3.0/include/xqilla/update/0000755000151400015140000000000011653572444014115 500000000000000XQilla-2.3.0/include/xqilla/update/UReplace.hpp0000644000151400015140000000300311653565523016242 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _UREPLACE_HPP #define _UREPLACE_HPP #include #include class XQILLA_API UReplace : public ASTNodeImpl { public: UReplace(ASTNode *target, ASTNode *expr, XPath2MemoryManager* memMgr); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual PendingUpdateList createUpdateList(DynamicContext *context) const; ASTNode *getTarget() const { return target_; } void setTarget(ASTNode *target) { target_ = target; } ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } protected: ASTNode *target_; ASTNode *expr_; }; #endif XQilla-2.3.0/include/xqilla/update/UReplaceValueOf.hpp0000644000151400015140000000303711653565523017533 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _UREPLACEVALUEOF_HPP #define _UREPLACEVALUEOF_HPP #include #include class XQILLA_API UReplaceValueOf : public ASTNodeImpl { public: UReplaceValueOf(ASTNode *target, ASTNode *expr, XPath2MemoryManager* memMgr); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual PendingUpdateList createUpdateList(DynamicContext *context) const; ASTNode *getTarget() const { return target_; } void setTarget(ASTNode *target) { target_ = target; } ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } protected: ASTNode *target_; ASTNode *expr_; }; #endif XQilla-2.3.0/include/xqilla/update/URename.hpp0000644000151400015140000000276311653565523016112 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _URENAME_HPP #define _URENAME_HPP #include #include class XQILLA_API URename : public ASTNodeImpl { public: URename(ASTNode *target, ASTNode *name, XPath2MemoryManager* memMgr); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual PendingUpdateList createUpdateList(DynamicContext *context) const; ASTNode *getTarget() const { return target_; } void setTarget(ASTNode *target) { target_ = target; } ASTNode *getName() const { return name_; } void setName(ASTNode *name) { name_ = name; } protected: ASTNode *target_; ASTNode *name_; }; #endif XQilla-2.3.0/include/xqilla/update/PendingUpdateList.hpp0000644000151400015140000000545111653565523020136 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _PENDINGUPDATELIST_HPP #define _PENDINGUPDATELIST_HPP #include #include #include #include class XQILLA_API PendingUpdate : public LocationInfo { public: /** * This enumeration is ordered according to the order * that the pending updates should be applied. */ enum Type { INSERT_INTO, INSERT_ATTRIBUTES, REPLACE_VALUE, RENAME, PUDELETE, INSERT_BEFORE, INSERT_AFTER, INSERT_INTO_AS_FIRST, INSERT_INTO_AS_LAST, REPLACE_ATTRIBUTE, REPLACE_NODE, REPLACE_ELEMENT_CONTENT, PUT }; PendingUpdate(Type type, const Node::Ptr &target, const LocationInfo *info) : type_(type), target_(target), value_() { setLocationInfo(info); } PendingUpdate(Type type, const Node::Ptr &target, const Item::Ptr &value, const LocationInfo *info) : type_(type), target_(target), value_(value) { setLocationInfo(info); } PendingUpdate(Type type, const Node::Ptr &target, const Sequence &value, const LocationInfo *info) : type_(type), target_(target), value_(value) { setLocationInfo(info); } Type getType() const { return type_; } const Node::Ptr &getTarget() const { return target_; } const Sequence &getValue() const { return value_; } private: Type type_; Node::Ptr target_; Sequence value_; }; typedef std::vector PendingUpdates; /** * The result of an updating expression */ class XQILLA_API PendingUpdateList { public: typedef PendingUpdates::iterator iterator; typedef PendingUpdates::const_iterator const_iterator; PendingUpdateList() {} PendingUpdateList(const PendingUpdate &update) { addUpdate(update); } iterator begin() { return updates_.begin(); } const_iterator begin() const { return updates_.begin(); } iterator end() { return updates_.end(); } const_iterator end() const { return updates_.end(); } void addUpdate(const PendingUpdate &update); void mergeUpdates(const PendingUpdateList &pul); private: PendingUpdates updates_; }; #endif XQilla-2.3.0/include/xqilla/update/UInsertAsFirst.hpp0000644000151400015140000000303711653565523017436 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _UINSERTASFIRST_HPP #define _UINSERTASFIRST_HPP #include #include class XQILLA_API UInsertAsFirst : public ASTNodeImpl { public: UInsertAsFirst(ASTNode *source, ASTNode *target, XPath2MemoryManager* memMgr); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual PendingUpdateList createUpdateList(DynamicContext *context) const; ASTNode *getSource() const { return source_; } void setSource(ASTNode *source) { source_ = source; } ASTNode *getTarget() const { return target_; } void setTarget(ASTNode *target) { target_ = target; } protected: ASTNode *source_; ASTNode *target_; }; #endif XQilla-2.3.0/include/xqilla/update/FunctionPut.hpp0000644000151400015140000000274011653565523017027 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FUNCTIONPUT_HPP #define _FUNCTIONPUT_HPP #include #include class XQILLA_API FunctionPut : public XQFunction { public: static const XMLCh name[]; static const unsigned int minArgs; static const unsigned int maxArgs; FunctionPut(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); FunctionPut(const XMLCh *baseURI, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual PendingUpdateList createUpdateList(DynamicContext *context) const; const XMLCh *getBaseURI() const { return baseURI_; } private: const XMLCh *baseURI_; }; #endif XQilla-2.3.0/include/xqilla/update/UInsertAsLast.hpp0000644000151400015140000000344511653565523017255 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _UINSERTASLAST_HPP #define _UINSERTASLAST_HPP #include #include #include #include class XQILLA_API UInsertAsLast : public ASTNodeImpl { public: UInsertAsLast(ASTNode *source, ASTNode *target, XPath2MemoryManager* memMgr); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual PendingUpdateList createUpdateList(DynamicContext *context) const; ASTNode *getSource() const { return source_; } void setSource(ASTNode *source) { source_ = source; } ASTNode *getTarget() const { return target_; } void setTarget(ASTNode *target) { target_ = target; } static bool checkNamespaceBinding(const ATQNameOrDerived::Ptr &qname, const Node::Ptr &node, DynamicContext *context, const LocationInfo *location); protected: ASTNode *source_; ASTNode *target_; }; #endif XQilla-2.3.0/include/xqilla/update/UApplyUpdates.hpp0000644000151400015140000000310411653565523017304 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _UAPPLYUPDATE_HPP #define _UAPPLYUPDATE_HPP #include #include #include class XQILLA_API UApplyUpdates : public ASTNodeImpl { public: UApplyUpdates(ASTNode *expr, XPath2MemoryManager* memMgr); UApplyUpdates(ASTNode *expr, DocumentCache::ValidationMode valMode, XPath2MemoryManager* memMgr); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } DocumentCache::ValidationMode getRevalidationMode() const { return valMode_; } protected: ASTNode *expr_; DocumentCache::ValidationMode valMode_; }; #endif XQilla-2.3.0/include/xqilla/update/UDelete.hpp0000644000151400015140000000256011653565523016100 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _UDELETE_HPP #define _UDELETE_HPP #include #include class XQILLA_API UDelete : public ASTNodeImpl { public: UDelete(ASTNode *expr, XPath2MemoryManager* memMgr); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual PendingUpdateList createUpdateList(DynamicContext *context) const; ASTNode *getExpression() const { return expr_; } void setExpression(ASTNode *expr) { expr_ = expr; } protected: ASTNode *expr_; }; #endif XQilla-2.3.0/include/xqilla/update/UTransform.hpp0000644000151400015140000000451711653565523016655 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _UTRANSFORM_HPP #define _UTRANSFORM_HPP #include #include #include class XQILLA_API CopyBinding : public LocationInfo { public: CopyBinding(XPath2MemoryManager* memMgr, const XMLCh* variable, ASTNode* allValues); CopyBinding(XPath2MemoryManager* memMgr, const CopyBinding &o); const XMLCh *qname_, *uri_, *name_; StaticAnalysis src_; ASTNode *expr_; private: CopyBinding(const CopyBinding &o); }; typedef std::vector > VectorOfCopyBinding; class XQILLA_API UTransform : public ASTNodeImpl { public: UTransform(VectorOfCopyBinding* bindings, ASTNode *modifyExpr, ASTNode* returnExpr, XPath2MemoryManager *expr); UTransform(VectorOfCopyBinding* bindings, ASTNode *modifyExpr, ASTNode* returnExpr, DocumentCache::ValidationMode valMode, XPath2MemoryManager *expr); virtual ASTNode *staticResolution(StaticContext* context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags) const; const VectorOfCopyBinding *getBindings() const { return bindings_; } ASTNode *getModifyExpr() const { return modify_; } void setModifyExpr(ASTNode *modify) { modify_ = modify; } ASTNode *getReturnExpr() const { return return_; } void setReturnExpr(ASTNode *ret) { return_ = ret; } DocumentCache::ValidationMode getRevalidationMode() const { return valMode_; } protected: VectorOfCopyBinding* bindings_; ASTNode *modify_; ASTNode *return_; DocumentCache::ValidationMode valMode_; }; #endif XQilla-2.3.0/include/xqilla/update/UInsertAfter.hpp0000644000151400015140000000302711653565523017123 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _UINSERTAFTER_HPP #define _UINSERTAFTER_HPP #include #include class XQILLA_API UInsertAfter : public ASTNodeImpl { public: UInsertAfter(ASTNode *source, ASTNode *target, XPath2MemoryManager* memMgr); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual PendingUpdateList createUpdateList(DynamicContext *context) const; ASTNode *getSource() const { return source_; } void setSource(ASTNode *source) { source_ = source; } ASTNode *getTarget() const { return target_; } void setTarget(ASTNode *target) { target_ = target; } protected: ASTNode *source_; ASTNode *target_; }; #endif XQilla-2.3.0/include/xqilla/update/UInsertInto.hpp0000644000151400015140000000302311653565523016767 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _UINSERTINTO_HPP #define _UINSERTINTO_HPP #include #include class XQILLA_API UInsertInto : public ASTNodeImpl { public: UInsertInto(ASTNode *source, ASTNode *target, XPath2MemoryManager* memMgr); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual PendingUpdateList createUpdateList(DynamicContext *context) const; ASTNode *getSource() const { return source_; } void setSource(ASTNode *source) { source_ = source; } ASTNode *getTarget() const { return target_; } void setTarget(ASTNode *target) { target_ = target; } protected: ASTNode *source_; ASTNode *target_; }; #endif XQilla-2.3.0/include/xqilla/update/UInsertBefore.hpp0000644000151400015140000000303311653565523017261 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _UINSERTBEFORE_HPP #define _UINSERTBEFORE_HPP #include #include class XQILLA_API UInsertBefore : public ASTNodeImpl { public: UInsertBefore(ASTNode *source, ASTNode *target, XPath2MemoryManager* memMgr); virtual ASTNode *staticResolution(StaticContext *context); virtual ASTNode *staticTypingImpl(StaticContext *context); virtual Result createResult(DynamicContext* context, int flags=0) const; virtual PendingUpdateList createUpdateList(DynamicContext *context) const; ASTNode *getSource() const { return source_; } void setSource(ASTNode *source) { source_ = source; } ASTNode *getTarget() const { return target_; } void setTarget(ASTNode *target) { target_ = target; } protected: ASTNode *source_; ASTNode *target_; }; #endif XQilla-2.3.0/include/xqilla/items/0000755000151400015140000000000011653572444013754 500000000000000XQilla-2.3.0/include/xqilla/items/ATDurationOrDerived.hpp0000644000151400015140000001167511653565523020235 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATDURATIONORDERIVED_HPP #define _ATDURATIONORDERIVED_HPP #include #include #include #include class XPath2MemoryManager; class DynamicContext; class XQILLA_API ATDurationOrDerived : public AnyAtomicType { public: typedef RefCountPointer Ptr; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* returns true if this duration is an instance of a xdt:dayTimeDuration */ virtual bool isDayTimeDuration() const = 0; /* returns true if this duration is an instance of a xdt:yearMonthDuration */ virtual bool isYearMonthDuration() const = 0; /* returns true if the two objects have the same duration * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATDurationOrDerived::Ptr &other, const DynamicContext *context) const = 0; /** Divide this duration by a number -- only available for xdt:dayTimeDuration * and xdt:yearMonthDuration */ virtual ATDurationOrDerived::Ptr divide(const Numeric::Ptr &divisor, const DynamicContext* context) const = 0; /** Divide this duration by a duration -- only available for xdt:dayTimeDuration * and xdt:yearMonthDuration */ virtual ATDecimalOrDerived::Ptr divide(const ATDurationOrDerived::Ptr &divisor, const DynamicContext* context) const = 0; /** Multiply this duration by a number -- only available for xdt:dayTimeDuration * and xdt:yearMonthDuration */ virtual ATDurationOrDerived::Ptr multiply(const Numeric::Ptr &divisor, const DynamicContext* context) const = 0; /** Add a duration to this duration -- only available for xdt:dayTimeDuration * and xdt:yearMonthDuration */ virtual ATDurationOrDerived::Ptr add(const ATDurationOrDerived::Ptr &other, const DynamicContext* context) const = 0; /** Subtract a duration from this duration -- only available for xdt:dayTimeDuration * and xdt:yearMonthDuration */ virtual ATDurationOrDerived::Ptr subtract(const ATDurationOrDerived::Ptr &other, const DynamicContext* context) const = 0; /** Returns the year portion of this duration */ virtual ATDecimalOrDerived::Ptr getYears(const DynamicContext* context) const = 0; /** Returns the month portion of this duration */ virtual ATDecimalOrDerived::Ptr getMonths(const DynamicContext* context) const = 0; /** Returns the days portion of this duration */ virtual ATDecimalOrDerived::Ptr getDays(const DynamicContext* context) const = 0; /** Returns the hours portion of this duration */ virtual ATDecimalOrDerived::Ptr getHours(const DynamicContext* context) const = 0; /** Returns the minutes portion of this duration */ virtual ATDecimalOrDerived::Ptr getMinutes(const DynamicContext* context) const = 0; /** Returns the seconds portion of this duration */ virtual ATDecimalOrDerived::Ptr getSeconds(const DynamicContext* context) const = 0; /* return this duration in forms of seconds */ virtual ATDecimalOrDerived::Ptr asSeconds(const DynamicContext* context) const = 0; /* return this duration in forms of months */ virtual ATDecimalOrDerived::Ptr asMonths(const DynamicContext* context) const = 0; /** Returns true if this Duration is negative, false otherwise */ virtual bool isNegative() const = 0; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; static const XMLCh fgDT_DAYTIMEDURATION[]; static const XMLCh pattern_DT_DAYTIMEDURATION[]; static const XMLCh fgDT_YEARMONTHDURATION[]; static const XMLCh pattern_DT_YEARMONTHDURATION[]; }; #endif // _ATDURATIONORDERIVED_HPP XQilla-2.3.0/include/xqilla/items/ATAnyURIOrDerived.hpp0000644000151400015140000000345111653565523017550 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATANYURIORDERIVED_HPP #define _ATANYURIORDERIVED_HPP #include #include #include class DynamicContext; class XQILLA_API ATAnyURIOrDerived : public AnyAtomicType { public: /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* returns true if the two objects' URI are equal (string comparison) * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; }; #endif // _ATANYURIORDERIVED_HPP XQilla-2.3.0/include/xqilla/items/ATTimeOrDerived.hpp0000644000151400015140000001024511653565523017336 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATTIMEORDERIVED_HPP #define _ATTIMEORDERIVED_HPP #include #include #include #include #include #include class XQILLA_API ATTimeOrDerived : public DateOrTimeType { public: typedef RefCountPointer Ptr; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the XMLCh* (lexical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* returns true if the two objects represent the same time, * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATTimeOrDerived::Ptr &other, const DynamicContext *context) const = 0; /** * Returns an integer representing the hour component of this object */ virtual ATDecimalOrDerived::Ptr getHours(const DynamicContext *context) const = 0; /** * Returns an integer representing the minute component of this object */ virtual ATDecimalOrDerived::Ptr getMinutes(const DynamicContext *context) const = 0; /** * Returns an decimal representing the second component of this object */ virtual ATDecimalOrDerived::Ptr getSeconds(const DynamicContext *context) const = 0; /** * Returns a timezone object representing the timezone component of this object */ virtual const Timezone::Ptr &getTimezone() const = 0; /** * Returns true if the timezone is defined for this object, false otherwise. */ virtual bool hasTimezone() const = 0; /** * Setter for timezone. Overrides the current timezone. (Not to be * confused with addTimezone(). */ virtual ATTimeOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const = 0; /** * Returns an ATTimeOrDerived with a timezone added to it */ virtual ATTimeOrDerived::Ptr addTimezone(const ATDurationOrDerived::Ptr &timezone, const DynamicContext* context) const = 0; /** * Returns a time with the given dayTimeDuration added to it */ virtual ATTimeOrDerived::Ptr addDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext* context) const = 0; /** * Returns a time with the given dayTimeDuration subtracted from it */ virtual ATTimeOrDerived::Ptr subtractDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext* context) const = 0; /** * Returns a dayTimeDuration corresponding to the difference between this * and the given ATTimeOrDerived* */ virtual ATDurationOrDerived::Ptr subtractTime(const ATTimeOrDerived::Ptr &time, const DynamicContext* context) const = 0; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; }; #endif // _ATTIMEORDERIVED_HPP XQilla-2.3.0/include/xqilla/items/ATDateOrDerived.hpp0000644000151400015140000001122611653565523017315 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATDATEORDERIVED_HPP #define _ATDATEORDERIVED_HPP #include #include #include #include #include #include class XQILLA_API ATDateOrDerived : public DateOrTimeType { public: typedef RefCountPointer Ptr; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the XMLCh* (lexical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* returns true if the two objects represent the same date, * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATDateOrDerived::Ptr &other, const DynamicContext *context) const = 0; /** * Returns an integer representing the year component of this object */ virtual ATDecimalOrDerived::Ptr getYears(const DynamicContext *context) const = 0; /** * Returns an integer representing the month component of this object */ virtual ATDecimalOrDerived::Ptr getMonths(const DynamicContext *context) const = 0; /** * Returns an integer representing the day component of this object */ virtual ATDecimalOrDerived::Ptr getDays(const DynamicContext *context) const = 0; /** * Returns a timezone object representing the timezone component of this object */ virtual const Timezone::Ptr &getTimezone() const = 0; /** * Returns true if the timezone is defined for this object, false otherwise. */ virtual bool hasTimezone() const = 0; /** * Setter for timezone. Overrides the current timezone. (Not to be * confused with addTimezone(). */ virtual ATDateOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const = 0; /** * Returns an ATDateOrDerived with a timezone added to it */ virtual ATDateOrDerived::Ptr addTimezone(const ATDurationOrDerived::Ptr &timezone, const DynamicContext* context) const = 0; /** * Returns a date with the given yearMonthDuration added to it */ virtual ATDateOrDerived::Ptr addYearMonthDuration(const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext* context) const = 0; /** * Returns a date with the given dayTimeDuration added to it */ virtual ATDateOrDerived::Ptr addDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext* context) const = 0; /** * Returns a date with the given yearMonthDuration subtracted from it */ virtual ATDateOrDerived::Ptr subtractYearMonthDuration(const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext* context) const = 0; /** * Returns a date with the given dayTimeDuration subtracted from it */ virtual ATDateOrDerived::Ptr subtractDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext* context) const = 0; /** * Returns a dayTimeDuration corresponding to the difference between this * and the given ATDateOrDerived* */ virtual ATDurationOrDerived::Ptr subtractDate(const ATDateOrDerived::Ptr &date, const DynamicContext* context) const = 0; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; }; #endif // _ATDATEORDERIVED_HPP XQilla-2.3.0/include/xqilla/items/ATNotationOrDerived.hpp0000644000151400015140000000401611653565523020232 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATNOTATIONORDERIVED_HPP #define _ATNOTATIONORDERIVED_HPP #include #include #include class DynamicContext; class XQILLA_API ATNotationOrDerived : public AnyAtomicType { public: /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* returns true if the two objects' URI are equal (string comparison) * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATNotationOrDerived::Ptr &other, const DynamicContext *context) const = 0; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; }; #endif // _ATNOTATIONORDERIVED_HPP XQilla-2.3.0/include/xqilla/items/ATGYearMonthOrDerived.hpp0000644000151400015140000000460311653565523020456 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATGYEARMONTHORDERIVED_HPP #define _ATGYEARMONTHORDERIVED_HPP #include #include #include #include class DynamicContext; class XQILLA_API ATGYearMonthOrDerived : public DateOrTimeType { public: typedef RefCountPointer Ptr; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* returns true if the two objects are equal * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATGYearMonthOrDerived::Ptr &other, const DynamicContext *context) const = 0; /** Returns true if a timezone is defined for this. False otherwise.*/ virtual bool hasTimezone() const = 0; /** Sets the timezone to the given timezone.*/ virtual ATGYearMonthOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const = 0; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; }; #endif // _ATGYEARMONTHORDERIVED_HPP XQilla-2.3.0/include/xqilla/items/ATUntypedAtomic.hpp0000644000151400015140000000351511653565523017423 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATUNTYPEDATOMIC_HPP #define _ATUNTYPEDATOMIC_HPP #include #include #include class DynamicContext; class XQILLA_API ATUntypedAtomic : public AnyAtomicType { public: /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* returns true if the two objects' URI are equal (string comparison) * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; static const XMLCh fgDT_UNTYPEDATOMIC[]; }; #endif // _ATUNTYPEDATOMIC_HPP XQilla-2.3.0/include/xqilla/items/ATGDayOrDerived.hpp0000644000151400015140000000453111653565523017265 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATGDAYORDERIVED_HPP #define _ATGDAYORDERIVED_HPP #include #include #include #include class DynamicContext; class XQILLA_API ATGDayOrDerived : public DateOrTimeType { public: typedef RefCountPointer Ptr; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* returns true if the two objects are equal * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATGDayOrDerived::Ptr &other, const DynamicContext *context) const = 0; /** Returns true if a timezone is defined for this. False otherwise.*/ virtual bool hasTimezone() const = 0; /** Sets the timezone to the given timezone.*/ virtual ATGDayOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const = 0; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; }; #endif // _ATGDAYORDERIVED_HPP XQilla-2.3.0/include/xqilla/items/ATHexBinaryOrDerived.hpp0000644000151400015140000000402311653565523020326 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATHEXBINARYORDERIVED_HPP #define _ATHEXBINARYORDERIVED_HPP #include #include #include class DynamicContext; class XQILLA_API ATHexBinaryOrDerived : public AnyAtomicType { public: /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* returns true if the two objects' URI are equal (string comparison) * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATHexBinaryOrDerived::Ptr &other, const DynamicContext *context) const = 0; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; }; #endif // _ATHEXBINARYORDERIVED_HPP XQilla-2.3.0/include/xqilla/items/Item.hpp0000644000151400015140000000435011653565523015305 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ITEM_HPP #define _ITEM_HPP #include #include #include XERCES_CPP_NAMESPACE_BEGIN class XMLBuffer; XERCES_CPP_NAMESPACE_END // forward declare when we can class XPath2MemoryManager; class DynamicContext; class EventHandler; class XQILLA_API Item : public ReferenceCounted { public: typedef RefCountPointer Ptr; /** The "XQilla" item interface */ static const XMLCh gXQilla[]; virtual bool isNode() const = 0; virtual bool isAtomicValue() const = 0; virtual bool isFunction() const = 0; virtual const XMLCh* asString(const DynamicContext* context) const = 0; virtual const XMLCh* getTypeURI() const = 0; virtual const XMLCh* getTypeName() const = 0; /** Generate events for this Item to the given EventHandler */ virtual void generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS = true, bool preserveType = true) const = 0; /** Method for returning arbitrary interfaces from the implementations */ virtual void *getInterface(const XMLCh *name) const = 0; /** Debug method to output the type of the item in SequenceType notation */ virtual void typeToBuffer(DynamicContext *context, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &buffer) const = 0; protected: Item() {} private: // copy constructor Item (const Item & other); // assignment operation Item & operator=(const Item & item) ; }; #endif XQilla-2.3.0/include/xqilla/items/ATBase64BinaryOrDerived.hpp0000644000151400015140000000410511653565523020627 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATBASE64BINARYORDERIVED_HPP #define _ATBASE64BINARYORDERIVED_HPP #include #include #include class DynamicContext; class XQILLA_API ATBase64BinaryOrDerived : public AnyAtomicType { public: /* Get the name of the primitive type (basic type) of this type (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* returns true if the two objects' base 64 binary representation * are equal (string comparison) false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATBase64BinaryOrDerived::Ptr &other, const DynamicContext *context) const = 0; protected: virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; }; #endif // _ATBASE64BINARYORDERIVED_HPP XQilla-2.3.0/include/xqilla/items/DatatypeFactory.hpp0000644000151400015140000000745711653565523017525 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* Factory base class */ #ifndef _DATATYPEFACTORY_HPP #define _DATATYPEFACTORY_HPP #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include class StaticContext; class XPath2MemoryManager; class DocumentCache; class XQILLA_API DatatypeFactory { public: DatatypeFactory(const DocumentCache* dc, XERCES_CPP_NAMESPACE_QUALIFIER DatatypeValidator *baseValidator); virtual ~DatatypeFactory(); ///Create instance of the base datatype virtual AnyAtomicType::Ptr createInstance(const XMLCh* value, const DynamicContext* context) const; ///Create instance of a datatype, using DatatypeFactoryTemplate to determine type virtual AnyAtomicType::Ptr createInstance(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) const; virtual bool checkInstance(const XMLCh* value, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm) const; virtual bool checkInstance(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm) const; ///Create instance of a datatype, using DatatypeFactoryTemplate to determine type virtual AnyAtomicType::Ptr createInstanceNoCheck(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) const = 0; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; virtual const XMLCh* getPrimitiveTypeURI() const = 0; virtual const XMLCh* getPrimitiveTypeName() const = 0; protected: XERCES_CPP_NAMESPACE_QUALIFIER DatatypeValidator *fBaseValidator; const DocumentCache *fDocumentCache; }; #endif // DATATYPEFACTORY XQilla-2.3.0/include/xqilla/items/ATGMonthOrDerived.hpp0000644000151400015140000000454711653565523017644 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATGMONTHORDERIVED_HPP #define _ATGMONTHORDERIVED_HPP #include #include #include #include class DynamicContext; class XQILLA_API ATGMonthOrDerived : public DateOrTimeType { public: typedef RefCountPointer Ptr; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* returns true if the two objects are equal * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATGMonthOrDerived::Ptr &other, const DynamicContext *context) const = 0; /** Returns true if a timezone is defined for this. False otherwise.*/ virtual bool hasTimezone() const = 0; /** Sets the timezone to the given timezone.*/ virtual ATGMonthOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const = 0; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; }; #endif // _ATGMONTHORDERIVED_HPP XQilla-2.3.0/include/xqilla/items/DatatypeLookup.hpp0000644000151400015140000000724311653565523017360 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _DATATYPELOOKUP_HPP #define _DATATYPELOOKUP_HPP #include #include #include #include #include class DatatypeFactory; class DocumentCache; class XQILLA_API DatatypeLookup : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory { public: DatatypeLookup(const DocumentCache* dc, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr); virtual ~DatatypeLookup(); ///returns the appropriate Datatype object const DatatypeFactory* lookupDatatype(AnyAtomicType::AtomicObjectType typeIndex) const; ///returns the appropriate Datatype object const DatatypeFactory* lookupDatatype(const XMLCh* typeURI, const XMLCh* typeName, bool &isPrimitive) const; DatatypeFactory *getAnySimpleTypeFactory() const; DatatypeFactory *getAnyURIFactory() const; DatatypeFactory *getBase64BinaryFactory() const; DatatypeFactory *getBooleanFactory() const; DatatypeFactory *getDateFactory() const; DatatypeFactory *getDateTimeFactory() const; DatatypeFactory *getDayTimeDurationFactory() const; DatatypeFactory *getDecimalFactory() const; DatatypeFactory *getDoubleFactory() const; DatatypeFactory *getDurationFactory() const; DatatypeFactory *getFloatFactory() const; DatatypeFactory *getGDayFactory() const; DatatypeFactory *getGMonthFactory() const; DatatypeFactory *getGMonthDayFactory() const; DatatypeFactory *getGYearFactory() const; DatatypeFactory *getGYearMonthFactory() const; DatatypeFactory *getHexBinaryFactory() const; DatatypeFactory *getNotationFactory() const; DatatypeFactory *getQNameFactory() const; DatatypeFactory *getStringFactory() const; DatatypeFactory *getTimeFactory() const; DatatypeFactory *getYearMonthDurationFactory() const; DatatypeFactory *getUntypedAtomicFactory() const; private: DatatypeLookup & operator= (const DatatypeLookup& r); DatatypeLookup(const DatatypeLookup &other); // add a primitive datatype to the table void insertDatatype(DatatypeFactory *datatype); private: DatatypeFactory *anySimpleType_; DatatypeFactory *anyURI_; DatatypeFactory *base64Binary_; DatatypeFactory *boolean_; DatatypeFactory *date_; DatatypeFactory *dateTime_; DatatypeFactory *dayTimeDuration_; DatatypeFactory *decimal_; DatatypeFactory *double_; DatatypeFactory *duration_; DatatypeFactory *float_; DatatypeFactory *gDay_; DatatypeFactory *gMonth_; DatatypeFactory *gMonthDay_; DatatypeFactory *gYear_; DatatypeFactory *gYearMonth_; DatatypeFactory *hexBinary_; DatatypeFactory *notation_; DatatypeFactory *qname_; DatatypeFactory *string_; DatatypeFactory *time_; DatatypeFactory *yearMonthDuration_; DatatypeFactory *untypedAtomic_; XERCES_CPP_NAMESPACE_QUALIFIER RefHashTableOf< DatatypeFactory > fDatatypeTable; const DocumentCache *fDocumentCache; XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* fMemMgr; }; #endif XQilla-2.3.0/include/xqilla/items/ATStringOrDerived.hpp0000644000151400015140000000544311653565523017712 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATSTRINGORDERIVED_HPP #define _ATSTRINGORDERIVED_HPP #include #include #include #include class Collation; class Result; class DynamicContext; class XQILLA_API ATStringOrDerived : public AnyAtomicType { public: typedef RefCountPointer Ptr; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* returns this string as a set of codepoints */ virtual Result asCodepoints(const DynamicContext* context) const = 0; /* returns the length of this string */ virtual unsigned int getLength() const = 0; /* returns the substring starting at startingLoc of given length */ virtual ATStringOrDerived::Ptr substring(const Numeric::Ptr &startingLoc, const Numeric::Ptr &length, const DynamicContext* context) const = 0; /* returns the substring that occurs after the first occurence of pattern */ virtual ATStringOrDerived::Ptr substringAfter(const ATStringOrDerived::Ptr &pattern, Collation* collation, const DynamicContext* context) const = 0; /* returns the substring that occurs before the first occurence of pattern */ virtual ATStringOrDerived::Ptr substringBefore(const ATStringOrDerived::Ptr &pattern, Collation* collation, const DynamicContext* context) const = 0; /* returns true if the two objects' URI are equal (string comparison) * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; }; #endif // _ATSTRINGORDERIVED_HPP XQilla-2.3.0/include/xqilla/items/DateOrTimeType.hpp0000644000151400015140000000253511653565523017251 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _DATEORTIMETYPE_HPP #define _DATEORTIMETYPE_HPP #include #include #include class ATDecimalOrDerived; class ATDurationOrDerived; class XQILLA_API DateOrTimeType : public AnyAtomicType { public: typedef RefCountPointer Ptr; /* is this type date or time based? Return true by default */ virtual bool isDateOrTimeTypeValue() const; /** * Returns true if the timezone is defined for this object, false otherwise. */ virtual bool hasTimezone() const = 0; }; #endif // _ATDATETIMEORDERIVED_HPP XQilla-2.3.0/include/xqilla/items/Numeric.hpp0000644000151400015140000001614311653565523016014 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __NUMERIC_HPP #define __NUMERIC_HPP #include #include #include class DynamicContext; class StaticContext; class MAPM; class XQILLA_API Numeric : public AnyAtomicType { public: typedef RefCountPointer Ptr; /* is this type numeric? Return true */ virtual bool isNumericValue() const { return true; }; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* Promote this to the given type, if possible */ virtual Numeric::Ptr promoteTypeIfApplicable(AnyAtomicType::AtomicObjectType typeIndex, const DynamicContext* context) const = 0; /* returns true if the two Numeric values are equal * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const; /** Returns true if this is less than other, false otherwise */ virtual bool lessThan(const Numeric::Ptr &other, const DynamicContext* context) const; /** Returns true if this is greater than other, false otherwise */ virtual bool greaterThan(const Numeric::Ptr &other, const DynamicContext* context) const; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const Numeric::Ptr &other, const DynamicContext *context) const; /** Returns a Numeric object which is the sum of this and other */ virtual Numeric::Ptr add(const Numeric::Ptr &other, const DynamicContext* context) const = 0; /** Returns a Numeric object which is the difference of this and * other */ virtual Numeric::Ptr subtract(const Numeric::Ptr &other, const DynamicContext* context) const = 0; /** Returns a Numeric object which is the product of this and other */ virtual Numeric::Ptr multiply(const Numeric::Ptr &other, const DynamicContext* context) const = 0; /** Returns a Numeric object which is the quotient of this and other */ virtual Numeric::Ptr divide(const Numeric::Ptr &other, const DynamicContext* context) const = 0; /** Returns the arithmetic product of its operands as a Numeric */ virtual Numeric::Ptr mod(const Numeric::Ptr &other, const DynamicContext* context) const = 0; /** Returns the floor of this Numeric */ virtual Numeric::Ptr floor(const DynamicContext* context) const = 0; /** Returns the ceiling of this Numeric */ virtual Numeric::Ptr ceiling(const DynamicContext* context) const = 0; /** Rounds this Numeric */ virtual Numeric::Ptr round(const DynamicContext* context) const = 0; /** Rounds this Numeric to the given precision, and rounds a half to even */ virtual Numeric::Ptr roundHalfToEven(const Numeric::Ptr &precision, const DynamicContext* context) const = 0; /** Returns the Additive inverse of this Numeric */ virtual Numeric::Ptr invert(const DynamicContext* context) const = 0; /** Returns the absolute value of this Numeric */ virtual Numeric::Ptr abs(const DynamicContext* context) const = 0; /** Returns the squart root of this Numeric */ virtual Numeric::Ptr sqrt(const DynamicContext* context) const = 0; /** Returns the sin of this Numeric */ virtual Numeric::Ptr sin(const DynamicContext* context) const = 0; /** Returns the cos root of this Numeric */ virtual Numeric::Ptr cos(const DynamicContext* context) const = 0; /** Returns the tan of this Numeric */ virtual Numeric::Ptr tan(const DynamicContext* context) const = 0; /** Returns the asin of this Numeric */ virtual Numeric::Ptr asin(const DynamicContext* context) const = 0; /** Returns the acos of this Numeric */ virtual Numeric::Ptr acos(const DynamicContext* context) const = 0; /** Returns the atan of this Numeric */ virtual Numeric::Ptr atan(const DynamicContext* context) const = 0; /** Returns the ln of this Numeric */ virtual Numeric::Ptr log(const DynamicContext* context) const = 0; /** Returns the exp of this Numeric */ virtual Numeric::Ptr exp(const DynamicContext* context) const = 0; /** Returns a Numeric object which is this raised to the power of other */ virtual Numeric::Ptr power(const Numeric::Ptr &other, const DynamicContext* context) const = 0; /** Does this Numeric have value 0? */ virtual bool isZero() const = 0; /** Is this Numeric positive? */ virtual bool isPositive() const = 0; /** Is this Numeric negative? */ virtual bool isNegative() const = 0; /* Is this floating point value not a number? */ virtual bool isNaN() const = 0; /* Is this floating point value infinite? */ virtual bool isInfinite() const = 0; /* Is this floating point value infinite? */ virtual bool isInteger() const; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; virtual const MAPM &asMAPM() const = 0; virtual double asDouble() const; virtual int asInt() const; enum State { NEG_INF = 0, NEG_NUM = 1, NUM = 2, INF = 3, NaN = 4 }; virtual State getState() const = 0; static const XMLCh NaN_string[]; static const XMLCh NAN_string[]; static const XMLCh INF_string[]; static const XMLCh NegINF_string[]; static const XMLCh NegZero_string[]; static const XMLCh PosZero_string[]; static void checkFloatLimits(Numeric::State &state, MAPM &value); static void checkDoubleLimits(Numeric::State &state, MAPM &value); static const XMLCh *asDecimalString(const MAPM &value, int significantDigits, const StaticContext* context); static const XMLCh *asDoubleString(State state, const MAPM &value, int significantDigits, const StaticContext* context); protected: virtual AnyAtomicType::Ptr castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const; const XMLCh *asDecimalString(int significantDigits, const StaticContext* context) const; const XMLCh *asDoubleString(int significantDigits, const StaticContext* context) const; }; #endif // __NUMERIC_HPP XQilla-2.3.0/include/xqilla/items/ATGMonthDayOrDerived.hpp0000644000151400015140000000457411653565523020302 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATGMONTHDAYORDERIVED_HPP #define _ATGMONTHDAYORDERIVED_HPP #include #include #include #include class DynamicContext; class XQILLA_API ATGMonthDayOrDerived : public DateOrTimeType { public: typedef RefCountPointer Ptr; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* returns true if the two objects are equal * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATGMonthDayOrDerived::Ptr &other, const DynamicContext *context) const = 0; /** Returns true if a timezone is defined for this. False otherwise.*/ virtual bool hasTimezone() const = 0; /** Sets the timezone to the given timezone.*/ virtual ATGMonthDayOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const = 0; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; }; #endif // _ATGMONTHDAYORDERIVED_HPP XQilla-2.3.0/include/xqilla/items/ATBooleanOrDerived.hpp0000644000151400015140000000543411653565523020023 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATBOOLEANORDERIVED_HPP #define _ATBOOLEANORDERIVED_HPP #include #include #include class XPath2MemoryManager; struct XQILLA_API BoolResult { static const BoolResult True; static const BoolResult False; static const BoolResult Null; inline BoolResult(bool b) : value(b ? BOOL_TRUE : BOOL_FALSE) {} inline operator bool() const { return value == BOOL_TRUE; } inline bool operator==(BoolResult o) const { return value == o.value; } inline bool operator!=(BoolResult o) const { return value != o.value; } private: inline BoolResult() : value(BOOL_NULL) {} enum { BOOL_NULL, BOOL_FALSE, BOOL_TRUE } value; }; class XQILLA_API ATBooleanOrDerived : public AnyAtomicType { public: typedef RefCountPointer Ptr; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* returns true if the two objects have the same boolean value * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATBooleanOrDerived::Ptr &other, const DynamicContext *context) const = 0; /* returns true if boolean value evaluates to true * false otherwise */ virtual bool isTrue() const = 0; /* returns false if boolean value evaluates to true * true otherwise */ virtual bool isFalse() const = 0; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; }; #endif XQilla-2.3.0/include/xqilla/items/impl/0000755000151400015140000000000011653572444014715 500000000000000XQilla-2.3.0/include/xqilla/items/impl/ATGYearMonthOrDerivedImpl.hpp0000644000151400015140000000661411653565523022245 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATGYEARMONTHORDERIVEDIMPL_HPP #define _ATGYEARMONTHORDERIVEDIMPL_HPP #include #include #include #include #include class DynamicContext; class XQILLA_API ATGYearMonthOrDerivedImpl : public ATGYearMonthOrDerived { public: /* constructor */ ATGYearMonthOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context = 0); virtual void *getInterface(const XMLCh *name) const; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const; /* returns true if the two objects are equal * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATGYearMonthOrDerived::Ptr &other, const DynamicContext *context) const; /** Returns true if a timezone is defined for this. False otherwise.*/ virtual bool hasTimezone() const; /** Sets the timezone to the given timezone.*/ virtual ATGYearMonthOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const; /* Get the primitive index associated with this type */ static AnyAtomicType::AtomicObjectType getTypeIndex(); /* Get the primitive type name */ static const XMLCh* getPrimitiveName(); /* Get the primitive index associated with this type */ virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const; static MAPM parseGYearMonth(const XMLCh* const value, const MAPM &implicitTimezone); private: /* parse the gYearMonth */ void setGYearMonth(const XMLCh* const value); MAPM buildReferenceDateTime(const DynamicContext *context) const; /*The values of this gYearMonth*/ MAPM _MM; // as nonNegativeInteger MAPM _YY; // as integer /* whether this gYearMonth has a timezone value*/ bool _hasTimezone; /* the timezone value, if it exist */ Timezone::Ptr timezone_; /* the name of this type */ const XMLCh* _typeName; /* the uri of this type */ const XMLCh* _typeURI; }; #endif // _ATGYEARMONTHORDERIVEDIMPL_HPP XQilla-2.3.0/include/xqilla/items/impl/ATGMonthOrDerivedImpl.hpp0000644000151400015140000000644111653565523021422 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATGMONTHORDERIVEDIMPL_HPP #define _ATGMONTHORDERIVEDIMPL_HPP #include #include #include #include #include class XQILLA_API ATGMonthOrDerivedImpl : public ATGMonthOrDerived { public: /* constructor */ ATGMonthOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context = 0); virtual void *getInterface(const XMLCh *name) const; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const; /* returns true if the two objects are equal * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATGMonthOrDerived::Ptr &other, const DynamicContext *context) const; /** Returns true if a timezone is defined for this. False otherwise.*/ virtual bool hasTimezone() const; /** Sets the timezone to the given timezone.*/ virtual ATGMonthOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const; /* Get the primitive index associated with this type */ static AnyAtomicType::AtomicObjectType getTypeIndex(); /* Get the primitive type name */ static const XMLCh* getPrimitiveName(); /* Get the primitive index associated with this type */ virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const; static MAPM parseGMonth(const XMLCh* const value, const MAPM &implicitTimezone); private: /* parse the gDay */ void setGMonth(const XMLCh* const value); MAPM buildReferenceDateTime(const DynamicContext *context) const; /*The value of this gDay*/ MAPM _gMonth; // as nonNegativeInteger /* whether this gDay has a timezone value*/ bool _hasTimezone; /* the timezone value, if it exist */ Timezone::Ptr timezone_; /* the name of this type */ const XMLCh* _typeName; /* the uri of this type */ const XMLCh* _typeURI; }; #endif // _ATGMONTHORDERIVEDIMPL_HPP XQilla-2.3.0/include/xqilla/items/impl/ATDurationOrDerivedImpl.hpp0000644000151400015140000001355411653565523022016 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATDURATIONORDERIVEDIMPL_HPP #define _ATDURATIONORDERIVEDIMPL_HPP #include #include #include #include class AnyAtomicType; class ATDecimalOrDerived; class XPath2MemoryManager; class MAPM; class XQILLA_API ATDurationOrDerivedImpl : public ATDurationOrDerived { public: /* constructor */ ATDurationOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context); /* constructor */ ATDurationOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const MAPM &months, const MAPM &seconds, const DynamicContext* context); virtual void *getInterface(const XMLCh *name) const; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const; /* returns true if this duration is an instance of a xdt:dayTimeDuration */ virtual bool isDayTimeDuration() const; /* returns true if this duration is an instance of a xdt:yearMonthDuration */ virtual bool isYearMonthDuration() const; /* returns true if the two objects have the same duration * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATDurationOrDerived::Ptr &other, const DynamicContext *context) const; /** Divide this duration by a number -- only available for xdt:dayTimeDuration * and xdt:yearMonthDuration */ virtual ATDurationOrDerived::Ptr divide(const Numeric::Ptr &divisor, const DynamicContext* context) const; /** Divide this duration by a duration -- only available for xdt:dayTimeDuration * and xdt:yearMonthDuration */ virtual ATDecimalOrDerived::Ptr divide(const ATDurationOrDerived::Ptr &divisor, const DynamicContext* context) const; /** Multiply this duration by a number -- only available for xdt:dayTimeDuration * and xdt:yearMonthDuration */ virtual ATDurationOrDerived::Ptr multiply(const Numeric::Ptr &multiplier, const DynamicContext* context) const; /** Add a duration to this duration -- only available for xdt:dayTimeDuration * and xdt:yearMonthDuration */ virtual ATDurationOrDerived::Ptr add(const ATDurationOrDerived::Ptr &other, const DynamicContext* context) const; /** Subtract a duration from this duration -- only available for xdt:dayTimeDuration * and xdt:yearMonthDuration */ virtual ATDurationOrDerived::Ptr subtract(const ATDurationOrDerived::Ptr &other, const DynamicContext* context) const; /** Returns the year portion of this duration */ virtual ATDecimalOrDerived::Ptr getYears(const DynamicContext* context) const; /** Returns the month portion of this duration */ virtual ATDecimalOrDerived::Ptr getMonths(const DynamicContext* context) const; /** Returns the days portion of this duration */ virtual ATDecimalOrDerived::Ptr getDays(const DynamicContext* context) const; /** Returns the hours portion of this duration */ virtual ATDecimalOrDerived::Ptr getHours(const DynamicContext* context) const; /** Returns the minutes portion of this duration */ virtual ATDecimalOrDerived::Ptr getMinutes(const DynamicContext* context) const; /** Returns the seconds portion of this duration */ virtual ATDecimalOrDerived::Ptr getSeconds(const DynamicContext* context) const; /* return this duration in forms of seconds */ virtual ATDecimalOrDerived::Ptr asSeconds(const DynamicContext* context) const; /* return this duration in forms of months */ virtual ATDecimalOrDerived::Ptr asMonths(const DynamicContext* context) const; /** Returns true if this Duration is negative, false otherwise */ virtual bool isNegative() const; /* Get the primitive index associated with this type */ static AnyAtomicType::AtomicObjectType getTypeIndex(); /* Get the primitive type name */ static const XMLCh* getPrimitiveName(); virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const; static void parseDuration(const XMLCh *const s, MAPM &months, MAPM &seconds); protected: /* If possible, cast this type to the target type */ virtual AnyAtomicType::Ptr castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const; private: /*The values that make up this duration */ bool _isPositive; MAPM _months; MAPM _seconds; AtomicObjectType _durationType; /* the name of this type */ const XMLCh* _typeName; /* the uri of this type */ const XMLCh* _typeURI; void init(const DynamicContext* context); void setDuration(const XMLCh* const value); }; #endif // _ATDURATIONORDERIVEDIMPL_HPP XQilla-2.3.0/include/xqilla/items/impl/ATDoubleOrDerivedImpl.hpp0000644000151400015140000001525511653565523021443 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATDOUBLEORDERIVEDIMPL_HPP #define _ATDOUBLEORDERIVEDIMPL_HPP #include #include #include #include class XQILLA_API ATDoubleOrDerivedImpl : public ATDoubleOrDerived { public: /* constructor */ ATDoubleOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const StaticContext* context); /* constructor */ ATDoubleOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const MAPM value, const StaticContext* context); /** destructor -- do nothing*/ virtual ~ATDoubleOrDerivedImpl() { }; virtual void *getInterface(const XMLCh *name) const; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const; /* Promote this to the given type, if possible */ virtual Numeric::Ptr promoteTypeIfApplicable(AnyAtomicType::AtomicObjectType typeIndex, const DynamicContext* context) const; /** Returns a Numeric object which is the sum of this and other */ virtual Numeric::Ptr add(const Numeric::Ptr &other, const DynamicContext* context) const; /** Returns a Numeric object which is the difference of this and * other */ virtual Numeric::Ptr subtract(const Numeric::Ptr &other, const DynamicContext* context) const; /** Returns a Numeric object which is the product of this and other */ virtual Numeric::Ptr multiply(const Numeric::Ptr &other, const DynamicContext* context) const; /** Returns a Numeric object which is the quotient of this and other */ virtual Numeric::Ptr divide(const Numeric::Ptr &other, const DynamicContext* context) const; /** Returns the arithmetic product of its operands as a Numeric */ virtual Numeric::Ptr mod(const Numeric::Ptr &other, const DynamicContext* context) const; /** Returns the floor of this Numeric */ virtual Numeric::Ptr floor(const DynamicContext* context) const; /** Returns the ceiling of this Numeric */ virtual Numeric::Ptr ceiling(const DynamicContext* context) const; /** Rounds this Numeric */ virtual Numeric::Ptr round(const DynamicContext* context) const; /** Rounds this Numeric to the given precision, and rounds a half to even */ virtual Numeric::Ptr roundHalfToEven(const Numeric::Ptr &precision, const DynamicContext* context) const; /** Returns the Additive inverse of this Numeric */ virtual Numeric::Ptr invert(const DynamicContext* context) const; /** Returns the absolute value of this Numeric */ virtual Numeric::Ptr abs(const DynamicContext* context) const; /** Returns the square root of this Numeric */ virtual Numeric::Ptr sqrt(const DynamicContext* context) const; /** Returns the sinus of this Numeric */ virtual Numeric::Ptr sin(const DynamicContext* context) const; /** Returns the cosinus of this Numeric */ virtual Numeric::Ptr cos(const DynamicContext* context) const; /** Returns the tangens of this Numeric */ virtual Numeric::Ptr tan(const DynamicContext* context) const; /** Returns the arcsinus of this Numeric */ virtual Numeric::Ptr asin(const DynamicContext* context) const; /** Returns the arccosinux of this Numeric */ virtual Numeric::Ptr acos(const DynamicContext* context) const; /** Returns the arctangens of this Numeric */ virtual Numeric::Ptr atan(const DynamicContext* context) const; /** Returns the ln of this Numeric */ virtual Numeric::Ptr log(const DynamicContext* context) const; /** Returns the exp of this Numeric */ virtual Numeric::Ptr exp(const DynamicContext* context) const; virtual Numeric::Ptr power(const Numeric::Ptr &other, const DynamicContext* context) const; /** Does this Numeric have value 0? */ virtual bool isZero() const; /** Is this Numeric negative? */ virtual bool isNegative() const; /** Is this Numeric positive? */ virtual bool isPositive() const; /* Is this xs:double not a number */ virtual bool isNaN() const; /* Is this xs:double infinite? */ virtual bool isInfinite() const; /* Get the primitive index associated with this type */ virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const; /* Get the primitive index associated with this type */ static AnyAtomicType::AtomicObjectType getTypeIndex(); /* Get the primitive type name */ static const XMLCh* getPrimitiveName(); virtual const MAPM &asMAPM() const { return _double; } virtual State getState() const { return _state; } /* The significant digits */ static int g_nSignificantDigits; static bool g_bEnforceIEEE; static MAPM parseDouble(const XMLCh* const value, State &state); private: /* set the value of this decimal */ void setDouble(const XMLCh* const value); /* returns a new infinity ATDoubleOrDerived*/ ATDoubleOrDerived::Ptr infinity(const DynamicContext* context) const; /* returns a new negative infinity ATDoubleOrDerived*/ ATDoubleOrDerived::Ptr negInfinity(const DynamicContext* context) const; /* returns a NaN ATDoubleOrDerived*/ ATDoubleOrDerived::Ptr notANumber(const DynamicContext* context) const; /* returns a -0 ATDoubleOrDerived*/ ATDoubleOrDerived::Ptr negZero(const DynamicContext* context) const; /*returns a ATDoubleOrDerived of value value*/ ATDoubleOrDerived::Ptr newDouble(MAPM value, const DynamicContext* context) const; /*The value of this double*/ MAPM _double; /* is it NaN, INF, NegINF, or just a double (NUM) */ State _state; /* the name of this type */ const XMLCh* _typeName; /* the uri of this type */ const XMLCh* _typeURI; }; #endif // _ATDOUBLEORDERIVEDIMPL_HPP XQilla-2.3.0/include/xqilla/items/impl/ATGMonthDayOrDerivedImpl.hpp0000644000151400015140000000650311653565523022057 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATGMONTHDAYORDERIVEDIMPL_HPP #define _ATGMONTHDAYORDERIVEDIMPL_HPP #include #include #include #include #include class XQILLA_API ATGMonthDayOrDerivedImpl : public ATGMonthDayOrDerived { public: /* constructor */ ATGMonthDayOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context = 0); virtual void *getInterface(const XMLCh *name) const; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const; /* returns true if the two objects are equal * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATGMonthDayOrDerived::Ptr &other, const DynamicContext *context) const; /** Returns true if a timezone is defined for this. False otherwise.*/ virtual bool hasTimezone() const; /** Sets the timezone to the given timezone.*/ virtual ATGMonthDayOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const; /* Get the primitive index associated with this type */ static AnyAtomicType::AtomicObjectType getTypeIndex(); /* Get the primitive type name */ static const XMLCh* getPrimitiveName(); /* Get the primitive index associated with this type */ virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const; static MAPM parseGMonthDay(const XMLCh* const value, const MAPM &implicitTimezone); private: /* parse the gMonthDay */ void setGMonthDay(const XMLCh* const value); MAPM buildReferenceDateTime(const DynamicContext *context) const; /*The values of this gMonthDay*/ MAPM _DD; MAPM _MM; /* whether this gMonthDay has a timezone value*/ bool _hasTimezone; /* the timezone value, if it exist */ Timezone::Ptr timezone_; /* the name of this type */ const XMLCh* _typeName; /* the uri of this type */ const XMLCh* _typeURI; }; #endif // _ATGMONTHDAYORDERIVEDIMPL_HPP XQilla-2.3.0/include/xqilla/items/impl/ATQNameOrDerivedImpl.hpp0000644000151400015140000000670111653565523021226 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATQNAMEORDERIVEDIMPL_HPP #define _ATQNAMEORDERIVEDIMPL_HPP #include #include #include class XQILLA_API ATQNameOrDerivedImpl : public ATQNameOrDerived { public: /* constructor */ ATQNameOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const StaticContext* context); ATQNameOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* uri, const XMLCh* prefix, const XMLCh* name, const StaticContext* context); virtual void *getInterface(const XMLCh *name) const; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const; /* returns the URI */ virtual const XMLCh* getURI() const; /* returns the prefix */ virtual const XMLCh* getPrefix() const; /* returns the name */ virtual const XMLCh* getName() const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const; /* returns the XMLCh* (lexical := prefix:localname) representation of this type */ const XMLCh* asLexicalString(const DynamicContext* context) const; /* returns true if the two objects' URI are equal (string comparison) * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATQNameOrDerived::Ptr &other, const DynamicContext *context) const; /* Get the primitive index associated with this type */ static AnyAtomicType::AtomicObjectType getTypeIndex(); /* Get the primitive type name */ static const XMLCh* getPrimitiveName(); /* Get the primitive index associated with this type */ virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const; protected: /* If possible, cast this type to the target type */ virtual AnyAtomicType::Ptr castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const; private: /*The uri value of this QName*/ const XMLCh* _uri; /*The prefix of this QName */ const XMLCh* _prefix; /*The local name value of this QName */ const XMLCh* _name; /* the name of this type */ const XMLCh* _typeName; /* the uri of this type */ const XMLCh* _typeURI; }; #endif // _ATQNAMEORDERIVEDIMPL_HPP XQilla-2.3.0/include/xqilla/items/impl/ATGDayOrDerivedImpl.hpp0000644000151400015140000000644011653565523021051 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATGDAYORDERIVEDIMPL_HPP #define _ATGDAYORDERIVEDIMPL_HPP #include #include #include #include #include #include class XQILLA_API ATGDayOrDerivedImpl : public ATGDayOrDerived { public: /* constructor */ ATGDayOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context = 0); virtual void *getInterface(const XMLCh *name) const; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const; /* returns true if the two objects are equal * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATGDayOrDerived::Ptr &other, const DynamicContext *context) const; /** Returns true if a timezone is defined for this. False otherwise.*/ virtual bool hasTimezone() const; /** Sets the timezone to the given timezone.*/ virtual ATGDayOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const; /* Get the primitive index associated with this type */ static AnyAtomicType::AtomicObjectType getTypeIndex(); /* Get the primitive type name */ static const XMLCh* getPrimitiveName(); /* Get the primitive index associated with this type */ virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const; static MAPM parseGDay(const XMLCh* const value, const MAPM &implicitTimezone); private: /* parse the gDay */ void setGDay(const XMLCh* const value); MAPM buildReferenceDateTime(const DynamicContext *context) const; /*The value of this gDay*/ MAPM _gDay; /* whether this gDay has a timezone value*/ bool _hasTimezone; /* the timezone value, if it exist */ Timezone::Ptr timezone_; /* the name of this type */ const XMLCh* _typeName; /* the uri of this type */ const XMLCh* _typeURI; }; #endif // _ATGDAYORDERIVEDIMPL_HPP XQilla-2.3.0/include/xqilla/items/impl/ATDateTimeOrDerivedImpl.hpp0000644000151400015140000001572111653565523021723 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATDATETIMEORDERIVEDIMPL_HPP #define _ATDATETIMEORDERIVEDIMPL_HPP #include #include #include #include class Timezone; class ATDecimalOrDerived; class ATDurationOrDerived; class XPath2MemoryManager; class DynamicContext; class StaticContext; class XQILLA_API ATDateTimeOrDerivedImpl : public ATDateTimeOrDerived { public: /* constructor */ ATDateTimeOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context = 0); virtual void *getInterface(const XMLCh *name) const; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const; /* returns true if the two objects represent the same date, * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATDateTimeOrDerived::Ptr &other, const DynamicContext *context) const; /** * Returns an integer representing the year component of this object */ virtual ATDecimalOrDerived::Ptr getYears(const DynamicContext *context) const; /** * Returns an integer representing the month component of this object */ virtual ATDecimalOrDerived::Ptr getMonths(const DynamicContext *context) const; /** * Returns an integer representing the day component of this object */ virtual ATDecimalOrDerived::Ptr getDays(const DynamicContext *context) const; /** * Returns an integer representing the hour component of this object */ virtual ATDecimalOrDerived::Ptr getHours(const DynamicContext *context) const; /** * Returns an integer representing the minute component of this object */ virtual ATDecimalOrDerived::Ptr getMinutes(const DynamicContext *context) const; /** * Returns an decimal representing the second component of this object */ virtual ATDecimalOrDerived::Ptr getSeconds(const DynamicContext *context) const; /** * Returns the timezone associated with this object, or * null, if the timezone is not set */ virtual const Timezone::Ptr &getTimezone() const; /** * Returns true if the timezone is defined for this object, false otherwise. */ virtual bool hasTimezone() const; /** * Setter for timezone. Overrides the current timezone. (Not to be * confused with addTimezone(). */ virtual ATDateTimeOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const; /** * Returns an ATDateTimeOrDerived with a timezone added to it */ virtual ATDateTimeOrDerived::Ptr addTimezone(const ATDurationOrDerived::Ptr &timezone, const DynamicContext* context) const; /** * Returns a date with the given yearMonthDuration added to it */ virtual ATDateTimeOrDerived::Ptr addYearMonthDuration(const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext* context) const; /** * Returns a date with the given dayTimeDuration added to it */ virtual ATDateTimeOrDerived::Ptr addDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext* context) const; /** * Returns a date with the given yearMonthDuration subtracted from it */ virtual ATDateTimeOrDerived::Ptr subtractYearMonthDuration(const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext* context) const; /** * Returns a date with the given dayTimeDuration subtracted from it */ virtual ATDateTimeOrDerived::Ptr subtractDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext* context) const; /** * Returns a dayTimeDuration corresponding to the difference between this * and the given ATDateTimeOrDerived* */ virtual ATDurationOrDerived::Ptr subtractDateTimeAsDayTimeDuration(const ATDateTimeOrDerived::Ptr &date, const DynamicContext* context) const; /** * Returns a dayTimeDuration corresponding to the difference between this * and the given ATDateTimeOrDerived* */ virtual ATDurationOrDerived::Ptr subtractDateTimeAsYearMonthDuration(const ATDateTimeOrDerived::Ptr &date, const DynamicContext* context) const; /* Get the primitive index associated with this type */ static AnyAtomicType::AtomicObjectType getTypeIndex(); /* Get the primitive type name */ static const XMLCh* getPrimitiveName(); /* Get the primitive index associated with this type */ virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const; static MAPM addYearMonthDuration(const MAPM &seconds, const MAPM &monthsToAdd); static MAPM parseDateTime(const XMLCh* const dateTime, const MAPM &implicitTimezone); protected: /* If possible, cast this type to the target type */ virtual AnyAtomicType::Ptr castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const; private: // private constructor for use with clone() ATDateTimeOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const MAPM &seconds, const Timezone::Ptr &timezone, bool hasTimezone); void setDateTime(const XMLCh* const date); ATDateTimeOrDerived::Ptr addDayTimeDuration(const MAPM &seconds, const DynamicContext* context) const; ATDateTimeOrDerived::Ptr addYearMonthDuration(const MAPM &months, const DynamicContext* context) const; /*The value of this dateTime, in seconds since 0001-01-01T00:00:00, always normalized if a timezone is present*/ MAPM seconds_; /* the timezone associated with this ATDateTimeOrDerived */ Timezone::Ptr timezone_; /* true if the timezone is defined */ bool _hasTimezone; /* the name of this type */ const XMLCh* _typeName; /* the uri of this type */ const XMLCh* _typeURI; }; #endif // _ATDATETIMEORDERIVEDIMPL_HPP XQilla-2.3.0/include/xqilla/items/impl/ATFloatOrDerivedImpl.hpp0000644000151400015140000001516111653565523021272 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATFLOATORDERIVEDIMPL_HPP #define _ATFLOATORDERIVEDIMPL_HPP #include #include #include #include class XQILLA_API ATFloatOrDerivedImpl : public ATFloatOrDerived { public: /* constructor */ ATFloatOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const StaticContext* context); /* constructor */ ATFloatOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const MAPM value, const StaticContext* context); /** destructor -- do nothing*/ virtual ~ATFloatOrDerivedImpl() { }; virtual void *getInterface(const XMLCh *name) const; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const; /* Promote this to the given type, if possible */ virtual Numeric::Ptr promoteTypeIfApplicable(AnyAtomicType::AtomicObjectType typeIndex, const DynamicContext* context) const; /** Returns a Numeric object which is the sum of this and other */ virtual Numeric::Ptr add(const Numeric::Ptr &other, const DynamicContext* context) const; /** Returns a Numeric object which is the difference of this and * other */ virtual Numeric::Ptr subtract(const Numeric::Ptr &other, const DynamicContext* context) const; /** Returns a Numeric object which is the product of this and other */ virtual Numeric::Ptr multiply(const Numeric::Ptr &other, const DynamicContext* context) const; /** Returns a Numeric object which is the quotient of this and other */ virtual Numeric::Ptr divide(const Numeric::Ptr &other, const DynamicContext* context) const; /** Returns the arithmetic product of its operands as a Numeric */ virtual Numeric::Ptr mod(const Numeric::Ptr &other, const DynamicContext* context) const; /** Returns the floor of this Numeric */ virtual Numeric::Ptr floor(const DynamicContext* context) const; /** Returns the ceiling of this Numeric */ virtual Numeric::Ptr ceiling(const DynamicContext* context) const; /** Rounds this Numeric */ virtual Numeric::Ptr round(const DynamicContext* context) const; /** Rounds this Numeric to the given precision, and rounds a half to even */ virtual Numeric::Ptr roundHalfToEven(const Numeric::Ptr &precision, const DynamicContext* context) const; /** Returns the Additive inverse of this Numeric */ virtual Numeric::Ptr invert(const DynamicContext* context) const; /** Returns the absolute value of this Numeric */ virtual Numeric::Ptr abs(const DynamicContext* context) const; /** Returns the square root of this Numeric */ virtual Numeric::Ptr sqrt(const DynamicContext* context) const; /** Returns the sinus of this Numeric */ virtual Numeric::Ptr sin(const DynamicContext* context) const; /** Returns the cosinus of this Numeric */ virtual Numeric::Ptr cos(const DynamicContext* context) const; /** Returns the tangens of this Numeric */ virtual Numeric::Ptr tan(const DynamicContext* context) const; /** Returns the arcsinus of this Numeric */ virtual Numeric::Ptr asin(const DynamicContext* context) const; /** Returns the arccosinux of this Numeric */ virtual Numeric::Ptr acos(const DynamicContext* context) const; /** Returns the arctangens of this Numeric */ virtual Numeric::Ptr atan(const DynamicContext* context) const; /** Returns the ln of this Numeric */ virtual Numeric::Ptr log(const DynamicContext* context) const; /** Returns the exp of this Numeric */ virtual Numeric::Ptr exp(const DynamicContext* context) const; virtual Numeric::Ptr power(const Numeric::Ptr &other, const DynamicContext* context) const; /** Does this Numeric have value 0? */ virtual bool isZero() const; /** Is this Numeric negative? */ virtual bool isNegative() const; /** Is this Numeric positive? */ virtual bool isPositive() const; /* Is this xs:float not a number */ virtual bool isNaN() const; /* Is this xs:float infinite? */ virtual bool isInfinite() const; /* Get the primitive index associated with this type */ virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const; /* Get the primitive index associated with this type */ static AnyAtomicType::AtomicObjectType getTypeIndex(); /* Get the primitive type name */ static const XMLCh* getPrimitiveName(); virtual const MAPM &asMAPM() const { return _float; } virtual State getState() const { return _state; } /* The significant digits */ static int g_nSignificantDigits; static MAPM parseFloat(const XMLCh* const value, State &state); private: /* set the value of this decimal */ void setFloat(const XMLCh* const value); /* returns a new infinity ATFloatOrDerived*/ ATFloatOrDerived::Ptr infinity(const DynamicContext* context) const; /* returns a new negative infinity ATFloatOrDerived*/ ATFloatOrDerived::Ptr negInfinity(const DynamicContext* context) const; /* returns a NaN ATFloatOrDerived*/ ATFloatOrDerived::Ptr notANumber(const DynamicContext* context) const; /* returns a -0 ATFloatOrDerived*/ ATFloatOrDerived::Ptr negZero(const DynamicContext* context) const; /*returns a ATFloatOrDerived of value value*/ ATFloatOrDerived::Ptr newFloat(MAPM value, const DynamicContext* context) const; /*The value of this float*/ MAPM _float; /* is it NaN, INF, NegINF, or just a float (NUM) */ State _state; /* the name of this type */ const XMLCh* _typeName; /* the uri of this type */ const XMLCh* _typeURI; }; #endif // _ATFLOATORDERIVEDIMPL_HPP XQilla-2.3.0/include/xqilla/items/impl/ATGYearOrDerivedImpl.hpp0000644000151400015140000000641611653565523021237 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATGYEARORDERIVEDIMPL_HPP #define _ATGYEARORDERIVEDIMPL_HPP #include #include #include #include #include class DynamicContext; class XQILLA_API ATGYearOrDerivedImpl : public ATGYearOrDerived { public: /* constructor */ ATGYearOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context = 0); virtual void *getInterface(const XMLCh *name) const; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const; /* returns true if the two objects are equal * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATGYearOrDerived::Ptr &other, const DynamicContext *context) const; /** Returns true if a timezone is defined for this. False otherwise.*/ virtual bool hasTimezone() const; /** Sets the timezone to the given timezone.*/ virtual ATGYearOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const; /* Get the primitive index associated with this type */ static AnyAtomicType::AtomicObjectType getTypeIndex(); /* Get the primitive type name */ static const XMLCh* getPrimitiveName(); /* Get the primitive index associated with this type */ virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const; static MAPM parseGYear(const XMLCh* const value, const MAPM &implicitTimezone); private: /* parse the gDay */ void setGYear(const XMLCh* const value); MAPM buildReferenceDateTime(const DynamicContext *context) const; /*The value of this gDay*/ MAPM _YY; /* whether this gDay has a timezone value*/ bool _hasTimezone; /* the timezone value, if it exist */ Timezone::Ptr timezone_; /* the name of this type */ const XMLCh* _typeName; /* the uri of this type */ const XMLCh* _typeURI; }; #endif // _ATGYEARORDERIVEDIMPL_HPP XQilla-2.3.0/include/xqilla/items/impl/ATBooleanOrDerivedImpl.hpp0000644000151400015140000000630311653565523021602 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATBOOLEANORDERIVEDIMPL_HPP #define _ATBOOLEANORDERIVEDIMPL_HPP #include #include #include class DynamicContext; class StaticContext; class XQILLA_API ATBooleanOrDerivedImpl : public ATBooleanOrDerived { public: /* constructor */ ATBooleanOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const StaticContext* context); /* constructor */ ATBooleanOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, bool value, const StaticContext* context); virtual void *getInterface(const XMLCh *name) const; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const; virtual const XMLCh* asString() const; /* returns true if the two objects have the same boolean value * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATBooleanOrDerived::Ptr &other, const DynamicContext *context) const; /* returns true if boolean value evaluates to true * false otherwise */ virtual bool isTrue() const; /* returns false if boolean value evaluates to true * true otherwise */ virtual bool isFalse() const; /* Get the primitive index associated with this type */ static AnyAtomicType::AtomicObjectType getTypeIndex(); /* Get the primitive type name */ static const XMLCh* getPrimitiveName(); virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const; protected: /* If possible, cast this type to the target type */ virtual AnyAtomicType::Ptr castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const; private: /*The value of this boolean */ bool _value; /* the name of this type */ const XMLCh* _typeName; /* the uri of this type */ const XMLCh* _typeURI; }; #endif // _ATBOOLEANORDERIVEDIMPL_HPP XQilla-2.3.0/include/xqilla/items/impl/ATDateOrDerivedImpl.hpp0000644000151400015140000001377511653565523021113 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATDATEORDERIVEDIMPL_HPP #define _ATDATEORDERIVEDIMPL_HPP #include #include #include #include class Timezone; class ATDecimalOrDerived; class ATDurationOrDerived; class XPath2MemoryManager; class DynamicContext; class StaticContext; class XQILLA_API ATDateOrDerivedImpl : public ATDateOrDerived { public: /* constructor */ ATDateOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context = 0); virtual void *getInterface(const XMLCh *name) const; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const; /* returns true if the two objects represent the same date, * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATDateOrDerived::Ptr &other, const DynamicContext *context) const; /** * Returns an integer representing the year component of this object */ virtual ATDecimalOrDerived::Ptr getYears(const DynamicContext *context) const; /** * Returns an integer representing the month component of this object */ virtual ATDecimalOrDerived::Ptr getMonths(const DynamicContext *context) const; /** * Returns an integer representing the day component of this object */ virtual ATDecimalOrDerived::Ptr getDays(const DynamicContext *context) const; /** * Returns the timezone associated with this object, or * null, if the timezone is not set */ virtual const Timezone::Ptr &getTimezone() const; /** * Returns true if the timezone is defined for this object, false otherwise. */ virtual bool hasTimezone() const; /** * Setter for timezone. Overrides the current timezone. (Not to be * confused with addTimezone(). */ virtual ATDateOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const; /** * Returns an ATDateOrDerived with a timezone added to it */ virtual ATDateOrDerived::Ptr addTimezone(const ATDurationOrDerived::Ptr &timezone, const DynamicContext* context) const; /** * Returns a date with the given yearMonthDuration added to it */ virtual ATDateOrDerived::Ptr addYearMonthDuration(const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext* context) const; /** * Returns a date with the given dayTimeDuration added to it */ virtual ATDateOrDerived::Ptr addDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext* context) const; /** * Returns a date with the given yearMonthDuration subtracted from it */ virtual ATDateOrDerived::Ptr subtractYearMonthDuration(const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext* context) const; /** * Returns a date with the given dayTimeDuration subtracted from it */ virtual ATDateOrDerived::Ptr subtractDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext* context) const; /** * Returns a dayTimeDuration corresponding to the difference between this * and the given ATDateOrDerived* */ virtual ATDurationOrDerived::Ptr subtractDate(const ATDateOrDerived::Ptr &date, const DynamicContext* context) const; /* Get the primitive index associated with this type */ static AnyAtomicType::AtomicObjectType getTypeIndex(); /* Get the primitive type name */ static const XMLCh* getPrimitiveName(); /* Get the primitive index associated with this type */ virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const; static MAPM parseDate(const XMLCh* const date, const MAPM &implicitTimezone); protected: /* If possible, cast this type to the target type */ virtual AnyAtomicType::Ptr castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const; private: // private constructor for use with clone() ATDateOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const MAPM &seconds, const Timezone::Ptr &timezone, bool hasTimezone); void setDate(const XMLCh* const date); /*The value of this date, in seconds since 0001-01-01T00:00:00, always normalized if a timezone is present*/ MAPM seconds_; /* the timezone associated with this ATDateOrDerived */ Timezone::Ptr timezone_; /* true if the timezone is defined */ bool _hasTimezone; /* the name of this type */ const XMLCh* _typeName; /* the uri of this type */ const XMLCh* _typeURI; }; #endif // _ATDATEORDERIVEDIMPL_HPP XQilla-2.3.0/include/xqilla/items/impl/ATDecimalOrDerivedImpl.hpp0000644000151400015140000001425511653565523021566 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATDECIMALORDERIVEDIMPL_HPP #define _ATDECIMALORDERIVEDIMPL_HPP #include #include #include #include class StaticContext; class XQILLA_API ATDecimalOrDerivedImpl : public ATDecimalOrDerived { public: /* constructor */ ATDecimalOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const StaticContext* context); /* constructor */ ATDecimalOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const MAPM value, const StaticContext* context); /* constructor */ ATDecimalOrDerivedImpl(int value); /** destructor -- do nothing*/ virtual ~ATDecimalOrDerivedImpl() { }; virtual void *getInterface(const XMLCh *name) const; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const; /* Promote this to the given type, if possible */ virtual Numeric::Ptr promoteTypeIfApplicable(AnyAtomicType::AtomicObjectType typeIndex, const DynamicContext* context) const; /** Returns a Numeric object which is the sum of this and other */ virtual Numeric::Ptr add(const Numeric::Ptr &other, const DynamicContext* context) const; /** Returns a Numeric object which is the difference of this and * other */ virtual Numeric::Ptr subtract(const Numeric::Ptr &other, const DynamicContext* context) const; /** Returns a Numeric object which is the product of this and other */ virtual Numeric::Ptr multiply(const Numeric::Ptr &other, const DynamicContext* context) const; /** Returns a Numeric object which is the quotient of this and other */ virtual Numeric::Ptr divide(const Numeric::Ptr &other, const DynamicContext* context) const; /** Returns the arithmetic product of its operands as a Numeric */ virtual Numeric::Ptr mod(const Numeric::Ptr &other, const DynamicContext* context) const; /** Returns the floor of this Numeric */ virtual Numeric::Ptr floor(const DynamicContext* context) const; /** Returns the ceiling of this Numeric */ virtual Numeric::Ptr ceiling(const DynamicContext* context) const; /** Rounds this Numeric */ virtual Numeric::Ptr round(const DynamicContext* context) const; /** Rounds this Numeric to the given precision, and rounds a half to even */ virtual Numeric::Ptr roundHalfToEven(const Numeric::Ptr &precision, const DynamicContext* context) const; /** Returns the Additive inverse of this Numeric */ virtual Numeric::Ptr invert(const DynamicContext* context) const; /** Returns the absolute value of this Numeric */ virtual Numeric::Ptr abs(const DynamicContext* context) const; /** Returns the square root of this Numeric */ virtual Numeric::Ptr sqrt(const DynamicContext* context) const; /** Returns the square root of this Numeric */ virtual Numeric::Ptr sin(const DynamicContext* context) const; /** Returns the cosinus of this Numeric */ virtual Numeric::Ptr cos(const DynamicContext* context) const; /** Returns the tangens of this Numeric */ virtual Numeric::Ptr tan(const DynamicContext* context) const; /** Returns the arcsinus of this Numeric */ virtual Numeric::Ptr asin(const DynamicContext* context) const; /** Returns the arccosinux of this Numeric */ virtual Numeric::Ptr acos(const DynamicContext* context) const; /** Returns the arctangens of this Numeric */ virtual Numeric::Ptr atan(const DynamicContext* context) const; /** Returns the ln of this Numeric */ virtual Numeric::Ptr log(const DynamicContext* context) const; /** Returns the exp of this Numeric */ virtual Numeric::Ptr exp(const DynamicContext* context) const; virtual Numeric::Ptr power(const Numeric::Ptr &other, const DynamicContext* context) const; /** Does this Numeric have value 0? */ virtual bool isZero() const; /** Is this Numeric negative? */ virtual bool isNegative() const; /** Is this Numeric positive? */ virtual bool isPositive() const; /** Treat this decimal (must be integer) as a codepoint **/ virtual XMLInt32 treatAsCodepoint(const DynamicContext* context) const; /* Get the primitive index associated with this type */ virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const; /* Get the primitive index associated with this type */ static AnyAtomicType::AtomicObjectType getTypeIndex(); /* Get the primitive type name */ static const XMLCh* getPrimitiveName(); virtual const MAPM &asMAPM() const { return _decimal; } virtual State getState() const { return isNegative()? NEG_NUM : NUM; } /* The significant digits */ static unsigned int g_nSignificantDigits; static MAPM parseDecimal(const XMLCh* const value); private: /* set the value of this decimal */ void setDecimal(const XMLCh* const value); /* flag to note that we are an Integer -- to avoid many calls to * isInstanceOfType */ bool _isInteger; /*The value of this decimal*/ MAPM _decimal; /* the name of this type */ const XMLCh* _typeName; /* the uri of this type */ const XMLCh* _typeURI; }; #endif // _ATDECIMALORDERIVEDIMPL_HPP XQilla-2.3.0/include/xqilla/items/impl/ATTimeOrDerivedImpl.hpp0000644000151400015140000001277711653565523021135 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATTIMEORDERIVEDIMPL_HPP #define _ATTIMEORDERIVEDIMPL_HPP #include #include #include #include #include class Timezone; class ATDecimalOrDerived; class ATDurationOrDerived; class XPath2MemoryManager; class DynamicContext; class XQILLA_API ATTimeOrDerivedImpl : public ATTimeOrDerived { public: /* constructor */ ATTimeOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context = 0); virtual void *getInterface(const XMLCh *name) const; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const; /* returns true if the two objects represent the same time, * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATTimeOrDerived::Ptr &other, const DynamicContext *context) const; /** * Returns an integer representing the hour component of this object */ virtual ATDecimalOrDerived::Ptr getHours(const DynamicContext *context) const; /** * Returns an integer representing the minute component of this object */ virtual ATDecimalOrDerived::Ptr getMinutes(const DynamicContext *context) const; /** * Returns an decimal representing the second component of this object */ virtual ATDecimalOrDerived::Ptr getSeconds(const DynamicContext *context) const; /** * Returns the timezone associated with this object, or * null, if the timezone is not set */ virtual const Timezone::Ptr &getTimezone() const; /** * Returns true if the timezone is defined for this object, false otherwise. */ virtual bool hasTimezone() const; /** * Setter for timezone. Overrides the current timezone. (Not to be * confused with addTimezone(). */ virtual ATTimeOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const; /** * Returns an ATTimeOrDerived with a timezone added to it */ virtual ATTimeOrDerived::Ptr addTimezone(const ATDurationOrDerived::Ptr &timezone, const DynamicContext* context) const; /** * Returns a time with the given dayTimeDuration added to it */ virtual ATTimeOrDerived::Ptr addDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext* context) const; /** * Returns a time with the given dayTimeDuration subtracted from it */ virtual ATTimeOrDerived::Ptr subtractDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext* context) const; /** * Returns a dayTimeDuration corresponding to the difference between this * and the given ATTimeOrDerived* */ virtual ATDurationOrDerived::Ptr subtractTime(const ATTimeOrDerived::Ptr &time, const DynamicContext* context) const; /* Get the primitive index associated with this type */ static AnyAtomicType::AtomicObjectType getTypeIndex(); /* Get the primitive type name */ static const XMLCh* getPrimitiveName(); /* Get the primitive index associated with this type */ virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const; static MAPM parseTime(const XMLCh* const time, const MAPM &implicitTimezone); protected: /* If possible, cast this type to the target type */ virtual AnyAtomicType::Ptr castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const; private: // private constructor for use with clone() ATTimeOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const MAPM &seconds, const Timezone::Ptr &timezone, bool hasTimezone); void setTime(const XMLCh* const time); ATTimeOrDerived::Ptr addDayTimeDuration(const MAPM &seconds, const DynamicContext* context) const; MAPM buildReferenceDateTime(const DynamicContext* context) const; /*The value of this date, in seconds since 00:00:00*/ MAPM seconds_; /* the timezone associated with this ATTimeOrDerived */ Timezone::Ptr timezone_; /* true if the timezone is defined */ bool _hasTimezone; /* the name of this type */ const XMLCh* _typeName; /* the uri of this type */ const XMLCh* _typeURI; }; #endif // _ATTIMEORDERIVEDIMPL_HPP XQilla-2.3.0/include/xqilla/items/Node.hpp0000644000151400015140000001243111653565523015273 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQILLANODE_HPP #define _XQILLANODE_HPP #include #include #include class DynamicContext; class XPath2MemoryManager; class Sequence; class Result; class NodeTest; class XQILLA_API Node : public Item { public: typedef RefCountPointer Ptr; /** Returns true, since this Item is a Node */ virtual bool isNode() const; /** Returns false, since this Item is a Node */ virtual bool isAtomicValue() const; virtual bool isFunction() const; virtual void typeToBuffer(DynamicContext *context, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &buffer) const; /** Serialize this node */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /** check if the underlying type of this node is instance of a certain type */ virtual bool hasInstanceOfType(const XMLCh* typeURI, const XMLCh* typeName, const DynamicContext* context) const = 0; /** Accessor: returns the base-uri of this node as a * xs:anyURI, if one exists */ virtual Sequence dmBaseURI(const DynamicContext* context) const = 0; /** Accessor: returns the kind of node as a string */ virtual const XMLCh* dmNodeKind() const = 0; /** Accessor: returns the name of this node */ virtual ATQNameOrDerived::Ptr dmNodeName(const DynamicContext* context) const = 0; /** Accessor: returns the string value of this node */ virtual const XMLCh* dmStringValue(const DynamicContext* context) const = 0; /** Accessor: returns the typed value of this node, which is a sequence of zero or * more atomic values derived from the string-value of the node and its type in such * a way as to be consistent with validation */ virtual Sequence dmTypedValue(DynamicContext* context) const = 0; /** Accessor: returns the absolute URI of the resource from which the document node * was constructed, if the absolute URI is available*/ virtual Sequence dmDocumentURI(const DynamicContext* context) const = 0; /** Accessor: returns the name of the type of a node */ virtual ATQNameOrDerived::Ptr dmTypeName(const DynamicContext* context) const = 0; /** Accessor: returns the setting of the nilled property of an element node */ virtual ATBooleanOrDerived::Ptr dmNilled(const DynamicContext* context) const = 0; /** Returns true if 'this' is before 'other' in document order, * false otherwise */ virtual bool lessThan(const Node::Ptr &other, const DynamicContext *context) const = 0; /** Returns true if 'other' is equal (identity equal) to 'this'*/ virtual bool equals(const Node::Ptr &other) const = 0; /** Specifies a sorting order for uniqueness removal. This may or may not return the same as lessThan. */ virtual bool uniqueLessThan(const Node::Ptr &other, const DynamicContext *context) const = 0; /** Returns the root of this node */ virtual Node::Ptr root(const DynamicContext* context) const = 0; /** Returns the parent of this node */ virtual Node::Ptr dmParent(const DynamicContext* context) const = 0; /** Returns the attributes of this node */ virtual Result dmAttributes(const DynamicContext* context, const LocationInfo *info) const = 0; /** Returns the namespace nodes of this node */ virtual Result dmNamespaceNodes(const DynamicContext* context, const LocationInfo *info) const = 0; /** Returns the children of this node */ virtual Result dmChildren(const DynamicContext *context, const LocationInfo *info) const = 0; /** * Returns a Result containing the nodes in the axis given, relative to this node. * Forward axis results should be in document order. * Reverse axis results should be in reverse document order. */ virtual Result getAxisResult(XQStep::Axis axis, const NodeTest *nodeTest, const DynamicContext *context, const LocationInfo *info) const = 0; /** Returns if the node is an id node or not */ virtual ATBooleanOrDerived::Ptr dmIsId(const DynamicContext* context) const = 0; /** Returns if the node is an idref node or not */ virtual ATBooleanOrDerived::Ptr dmIsIdRefs(const DynamicContext* context) const = 0; /* Get the namespace URI for the DOM type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of the DOM type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; static const XMLCh document_string[]; static const XMLCh element_string[]; static const XMLCh attribute_string[]; static const XMLCh text_string[]; static const XMLCh processing_instruction_string[]; static const XMLCh comment_string[]; static const XMLCh namespace_string[]; }; #endif XQilla-2.3.0/include/xqilla/items/ATFloatOrDerived.hpp0000644000151400015140000001162311653565523017506 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATFLOATORDERIVED_HPP #define _ATFLOATORDERIVED_HPP #include #include #include class XQILLA_API ATFloatOrDerived : public Numeric { public: typedef RefCountPointer Ptr; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* Promote this to the given type, if possible */ virtual Numeric::Ptr promoteTypeIfApplicable(AnyAtomicType::AtomicObjectType typeIndex, const DynamicContext* context) const = 0; /** Returns a Numeric object which is the sum of this and other */ virtual Numeric::Ptr add(const Numeric::Ptr &other, const DynamicContext* context) const = 0; /** Returns a Numeric object which is the difference of this and * other */ virtual Numeric::Ptr subtract(const Numeric::Ptr &other, const DynamicContext* context) const = 0; /** Returns a Numeric object which is the product of this and other */ virtual Numeric::Ptr multiply(const Numeric::Ptr &other, const DynamicContext* context) const = 0; /** Returns a Numeric object which is the quotient of this and other */ virtual Numeric::Ptr divide(const Numeric::Ptr &other, const DynamicContext* context) const = 0; /** Returns the arithmetic product of its operands as a Numeric */ virtual Numeric::Ptr mod(const Numeric::Ptr &other, const DynamicContext* context) const = 0; /** Returns the floor of this Numeric */ virtual Numeric::Ptr floor(const DynamicContext* context) const = 0; /** Returns the ceiling of this Numeric */ virtual Numeric::Ptr ceiling(const DynamicContext* context) const = 0; /** Rounds this Numeric */ virtual Numeric::Ptr round(const DynamicContext* context) const = 0; /** Rounds this Numeric to the given precision, and rounds a half to even */ virtual Numeric::Ptr roundHalfToEven(const Numeric::Ptr &precision, const DynamicContext* context) const = 0; /** Returns the Additive inverse of this Numeric */ virtual Numeric::Ptr invert(const DynamicContext* context) const = 0; /** Returns the absolute value of this Numeric */ virtual Numeric::Ptr abs(const DynamicContext* context) const = 0; /** Returns the square root of this Numeric */ virtual Numeric::Ptr sqrt(const DynamicContext* context) const = 0; /** Returns the sinus of this Numeric */ virtual Numeric::Ptr sin(const DynamicContext* context) const = 0; /** Returns the cosinus of this Numeric */ virtual Numeric::Ptr cos(const DynamicContext* context) const = 0; /** Returns the tan of this Numeric */ virtual Numeric::Ptr tan(const DynamicContext* context) const = 0; /** Returns the asin of this Numeric */ virtual Numeric::Ptr asin(const DynamicContext* context) const = 0; /** Returns the acos of this Numeric */ virtual Numeric::Ptr acos(const DynamicContext* context) const = 0; /** Returns the atan of this Numeric */ virtual Numeric::Ptr atan(const DynamicContext* context) const = 0; /** Returns the atan of this Numeric */ virtual Numeric::Ptr log(const DynamicContext* context) const = 0; /** Returns the exp of this Numeric */ virtual Numeric::Ptr exp(const DynamicContext* context) const = 0; /* Is this xs:double not a number */ virtual bool isNaN() const = 0; /* Is this xs:double infinite? */ virtual bool isInfinite() const = 0; /** Does this Numeric have value 0? */ virtual bool isZero() const = 0; /** Is this Numeric positive? */ virtual bool isPositive() const = 0; /** Is this Numeric negative? */ virtual bool isNegative() const = 0; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; virtual const MAPM &asMAPM() const = 0; virtual State getState() const = 0; }; #endif // _ATFLOATORDERIVED_HPP XQilla-2.3.0/include/xqilla/items/Timezone.hpp0000644000151400015140000000406311653565523016202 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _TZONE_HPP #define _TZONE_HPP #include #include #include #include #include class DynamicContext; class XQILLA_API Timezone : public ReferenceCounted { public : typedef RefCountPointer Ptr; /** * Constructor. Creates a Timezone representing the given number of seconds. */ Timezone(const MAPM &seconds); /** * Constructor. Creates a Timezone representing the given duration. */ Timezone(const ATDurationOrDerived::Ptr &duration, const DynamicContext* context); /** Returns true if other is equal to this, * false otherwise */ bool equals(const Timezone::Ptr &other) const; ATDurationOrDerived::Ptr asDayTimeDuration(const DynamicContext* context) const; /** * Returns a string representation of this Timezone. If positive, does * print leading '+' sign, and if UTC returns "Z". */ const XMLCh* asString(const DynamicContext* context) const; /** * Returns the whole timezone expressed in seconds */ const MAPM &asSeconds() const { return seconds_; } static MAPM convert(bool positive, int hour, int minute); static void validate(const MAPM &tz); private: MAPM seconds_; }; #endif // _TZONE_HPP XQilla-2.3.0/include/xqilla/items/ATAnySimpleType.hpp0000644000151400015140000000367111653565523017404 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATANYSIMPLETYPE_HPP #define _ATANYSIMPLETYPE_HPP #include #include #include class DynamicContext; /** * This class represents the atomic types (ie, the simple types * which are not list or union types) with type annotation * xs:anySimpleType */ class XQILLA_API ATAnySimpleType : public AnyAtomicType { public: /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* returns true if the two objects' URI are equal (string comparison) * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; }; #endif // _ATANYSIMPLETYPE_HPP XQilla-2.3.0/include/xqilla/items/ATQNameOrDerived.hpp0000644000151400015140000000441311653565523017441 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATQNAMEORDERIVED_HPP #define _ATQNAMEORDERIVED_HPP #include #include #include class DynamicContext; class XQILLA_API ATQNameOrDerived : public AnyAtomicType { public: typedef RefCountPointer Ptr; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the URI */ virtual const XMLCh* getURI() const = 0; /* returns the prefix */ virtual const XMLCh* getPrefix() const = 0; /* returns the name */ virtual const XMLCh* getName() const = 0; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* returns true if the two objects' URI are equal (string comparison) * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATQNameOrDerived::Ptr &other, const DynamicContext *context) const = 0; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; }; #endif // _ATQNAMEORDERIVED_HPP XQilla-2.3.0/include/xqilla/items/ATGYearOrDerived.hpp0000644000151400015140000000454011653565523017450 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATGYEARORDERIVED_HPP #define _ATGYEARORDERIVED_HPP #include #include #include #include class DynamicContext; class XQILLA_API ATGYearOrDerived : public DateOrTimeType { public: typedef RefCountPointer Ptr; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* returns true if the two objects are equal * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATGYearOrDerived::Ptr &other, const DynamicContext *context) const = 0; /** Returns true if a timezone is defined for this. False otherwise.*/ virtual bool hasTimezone() const = 0; /** Sets the timezone to the given timezone.*/ virtual ATGYearOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const = 0; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; }; #endif // _ATGYEARORDERIVED_HPP XQilla-2.3.0/include/xqilla/items/ATDecimalOrDerived.hpp0000644000151400015140000001216711653565523020003 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATDECIMALORDERIVED_HPP #define _ATDECIMALORDERIVED_HPP #include #include #include class DynamicContext; class MAPM; class XQILLA_API ATDecimalOrDerived : public Numeric { public: typedef RefCountPointer Ptr; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* Promote this to the given type, if possible */ virtual Numeric::Ptr promoteTypeIfApplicable(AnyAtomicType::AtomicObjectType typeIndex, const DynamicContext* context) const = 0; /** Returns a Numeric object which is the sum of this and other */ virtual Numeric::Ptr add(const Numeric::Ptr &other, const DynamicContext* context) const = 0; /** Returns a Numeric object which is the difference of this and * other */ virtual Numeric::Ptr subtract(const Numeric::Ptr &other, const DynamicContext* context) const = 0; /** Returns a Numeric object which is the product of this and other */ virtual Numeric::Ptr multiply(const Numeric::Ptr &other, const DynamicContext* context) const = 0; /** Returns a Numeric object which is the quotient of this and other */ virtual Numeric::Ptr divide(const Numeric::Ptr &other, const DynamicContext* context) const = 0; /** Returns the arithmetic product of its operands as a Numeric */ virtual Numeric::Ptr mod(const Numeric::Ptr &other, const DynamicContext* context) const = 0; /** Returns the floor of this Numeric */ virtual Numeric::Ptr floor(const DynamicContext* context) const = 0; /** Returns the ceiling of this Numeric */ virtual Numeric::Ptr ceiling(const DynamicContext* context) const = 0; /** Rounds this Numeric */ virtual Numeric::Ptr round(const DynamicContext* context) const = 0; /** Rounds this Numeric to the given precision, and rounds a half to even */ virtual Numeric::Ptr roundHalfToEven(const Numeric::Ptr &precision, const DynamicContext* context) const = 0; /** Returns the Additive inverse of this Numeric */ virtual Numeric::Ptr invert(const DynamicContext* context) const = 0; /** Returns the absolute value of this Numeric */ virtual Numeric::Ptr abs(const DynamicContext* context) const = 0; /** Returns the square root of this Numeric */ virtual Numeric::Ptr sqrt(const DynamicContext* context) const = 0; /** Returns the sinus of this Numeric */ virtual Numeric::Ptr sin(const DynamicContext* context) const = 0; /** Returns the cosinus of this Numeric */ virtual Numeric::Ptr cos(const DynamicContext* context) const = 0; /** Returns the tan of this Numeric */ virtual Numeric::Ptr tan(const DynamicContext* context) const = 0; /** Returns the asin of this Numeric */ virtual Numeric::Ptr asin(const DynamicContext* context) const = 0; /** Returns the acos of this Numeric */ virtual Numeric::Ptr acos(const DynamicContext* context) const = 0; /** Returns the atan of this Numeric */ virtual Numeric::Ptr atan(const DynamicContext* context) const = 0; /** Returns the ln of this Numeric */ virtual Numeric::Ptr log(const DynamicContext* context) const = 0; /** Returns the exp of this Numeric */ virtual Numeric::Ptr exp(const DynamicContext* context) const = 0; /** Does this Numeric have value 0? */ virtual bool isZero() const = 0; /** Is this Numeric negative? */ virtual bool isNegative() const = 0; /** Is this Numeric positive? */ virtual bool isPositive() const = 0; /* Is this floating point value not a number? */ virtual bool isNaN() const { return false; } /* Is this floating point value infinite? */ virtual bool isInfinite() const { return false; } /** Treat this decimal (must be integer) as a codepoint **/ virtual XMLInt32 treatAsCodepoint(const DynamicContext* context) const = 0; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; virtual const MAPM &asMAPM() const = 0; virtual State getState() const = 0; }; #endif // _ATDECIMALORDERIVED_HPP XQilla-2.3.0/include/xqilla/items/ATDateTimeOrDerived.hpp0000644000151400015140000001247411653565523020142 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATDATETIMEORDERIVED_HPP #define _ATDATETIMEORDERIVED_HPP #include #include #include #include #include #include class XQILLA_API ATDateTimeOrDerived : public DateOrTimeType { public: typedef RefCountPointer Ptr; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the XMLCh* (lexical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* returns true if the two objects represent the same date, * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATDateTimeOrDerived::Ptr &other, const DynamicContext *context) const = 0; /** * Returns an integer representing the year component of this object */ virtual ATDecimalOrDerived::Ptr getYears(const DynamicContext *context) const = 0; /** * Returns an integer representing the month component of this object */ virtual ATDecimalOrDerived::Ptr getMonths(const DynamicContext *context) const = 0; /** * Returns an integer representing the day component of this object */ virtual ATDecimalOrDerived::Ptr getDays(const DynamicContext *context) const = 0; /** * Returns an integer representing the hour component of this object */ virtual ATDecimalOrDerived::Ptr getHours(const DynamicContext *context) const = 0; /** * Returns an integer representing the minute component of this object */ virtual ATDecimalOrDerived::Ptr getMinutes(const DynamicContext *context) const = 0; /** * Returns a decimal representing the second component of this object */ virtual ATDecimalOrDerived::Ptr getSeconds(const DynamicContext *context) const = 0; /** * Returns a timezone object representing the timezone component of this object */ virtual const Timezone::Ptr &getTimezone() const = 0; /** * Returns true if the timezone is defined for this object, false otherwise. */ virtual bool hasTimezone() const = 0; /** * Setter for timezone. Overrides the current timezone. (Not to be * confused with addTimezone(). */ virtual ATDateTimeOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const = 0; /** * Returns an ATDateTimeOrDerived with a timezone added to it */ virtual ATDateTimeOrDerived::Ptr addTimezone(const ATDurationOrDerived::Ptr &timezone, const DynamicContext* context) const = 0; /** * Returns a date with the given yearMonthDuration added to it */ virtual ATDateTimeOrDerived::Ptr addYearMonthDuration(const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext* context) const = 0; /** * Returns a date with the given dayTimeDuration added to it */ virtual ATDateTimeOrDerived::Ptr addDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext* context) const = 0; /** * Returns a date with the given yearMonthDuration subtracted from it */ virtual ATDateTimeOrDerived::Ptr subtractYearMonthDuration(const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext* context) const = 0; /** * Returns a date with the given dayTimeDuration subtracted from it */ virtual ATDateTimeOrDerived::Ptr subtractDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext* context) const = 0; /** * Returns a dayTimeDuration corresponding to the difference between this * and the given ATDateTimeOrDerived* */ virtual ATDurationOrDerived::Ptr subtractDateTimeAsDayTimeDuration(const ATDateTimeOrDerived::Ptr &date, const DynamicContext* context) const = 0; /** * Returns a dayTimeDuration corresponding to the difference between this * and the given ATDateTimeOrDerived* */ virtual ATDurationOrDerived::Ptr subtractDateTimeAsYearMonthDuration(const ATDateTimeOrDerived::Ptr &date, const DynamicContext* context) const = 0; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; }; #endif // _ATDATETIMEORDERIVED_HPP XQilla-2.3.0/include/xqilla/items/ATDoubleOrDerived.hpp0000644000151400015140000001151711653565523017655 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATDOUBLEORDERIVED_HPP #define _ATDOUBLEORDERIVED_HPP #include #include #include class XQILLA_API ATDoubleOrDerived : public Numeric { public: typedef RefCountPointer Ptr; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* Promote this to the given type, if possible */ virtual Numeric::Ptr promoteTypeIfApplicable(AnyAtomicType::AtomicObjectType typeIndex, const DynamicContext* context) const = 0; /** Returns a Numeric object which is the sum of this and other */ virtual Numeric::Ptr add(const Numeric::Ptr &other, const DynamicContext* context) const = 0; /** Returns a Numeric object which is the difference of this and * other */ virtual Numeric::Ptr subtract(const Numeric::Ptr &other, const DynamicContext* context) const = 0; /** Returns a Numeric object which is the product of this and other */ virtual Numeric::Ptr multiply(const Numeric::Ptr &other, const DynamicContext* context) const = 0; /** Returns a Numeric object which is the quotient of this and other */ virtual Numeric::Ptr divide(const Numeric::Ptr &other, const DynamicContext* context) const = 0; /** Returns the arithmetic product of its operands as a Numeric */ virtual Numeric::Ptr mod(const Numeric::Ptr &other, const DynamicContext* context) const = 0; /** Returns the floor of this Numeric */ virtual Numeric::Ptr floor(const DynamicContext* context) const = 0; /** Returns the ceiling of this Numeric */ virtual Numeric::Ptr ceiling(const DynamicContext* context) const = 0; /** Rounds this Numeric */ virtual Numeric::Ptr round(const DynamicContext* context) const = 0; /** Rounds this Numeric to the given precision, and rounds a half to even */ virtual Numeric::Ptr roundHalfToEven(const Numeric::Ptr &precision, const DynamicContext* context) const = 0; /** Returns the Additive inverse of this Numeric */ virtual Numeric::Ptr invert(const DynamicContext* context) const = 0; /** Returns the absolute value of this Numeric */ virtual Numeric::Ptr abs(const DynamicContext* context) const = 0; /** Returns the square root of this Numeric */ virtual Numeric::Ptr sqrt(const DynamicContext* context) const = 0; /** Returns the sinus of this Numeric */ virtual Numeric::Ptr sin(const DynamicContext* context) const = 0; /** Returns the cosinus of this Numeric */ virtual Numeric::Ptr cos(const DynamicContext* context) const = 0; /** Returns the tan of this Numeric */ virtual Numeric::Ptr tan(const DynamicContext* context) const = 0; /** Returns the asin of this Numeric */ virtual Numeric::Ptr asin(const DynamicContext* context) const = 0; /** Returns the acos of this Numeric */ virtual Numeric::Ptr acos(const DynamicContext* context) const = 0; /** Returns the atan of this Numeric */ virtual Numeric::Ptr atan(const DynamicContext* context) const = 0; /** Returns the atan of this Numeric */ virtual Numeric::Ptr log(const DynamicContext* context) const = 0; /** Returns the exp of this Numeric */ virtual Numeric::Ptr exp(const DynamicContext* context) const = 0; /* Is this xs:double not a number */ virtual bool isNaN() const = 0; /* Is this xs:double infinite? */ virtual bool isInfinite() const = 0; /** Does this Numeric have value 0? */ virtual bool isZero() const = 0; /** Is this Numeric positive? */ virtual bool isPositive() const = 0; virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0; virtual const MAPM &asMAPM() const = 0; virtual State getState() const = 0; }; #endif // _ATDOUBLEORDERIVED_HPP XQilla-2.3.0/include/xqilla/items/FunctionRef.hpp0000644000151400015140000000356411653565523016637 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQILLAFUNCTIONREF_HPP #define _XQILLAFUNCTIONREF_HPP #include #include #include #include class DynamicContext; class LocationInfo; class FunctionSignature; typedef std::vector VectorOfResults; class XQILLA_API FunctionRef : public Item { public: typedef RefCountPointer Ptr; virtual bool isNode() const { return false; } virtual bool isAtomicValue() const { return false; } virtual bool isFunction() const { return true; } virtual const XMLCh *getTypeURI() const { return 0; } virtual const XMLCh *getTypeName() const { return 0; } virtual ATQNameOrDerived::Ptr getName(const DynamicContext *context) const = 0; virtual size_t getNumArgs() const = 0; virtual const FunctionSignature *getSignature() const = 0; virtual Result execute(const VectorOfResults &args, DynamicContext *context, const LocationInfo *location) const = 0; virtual FunctionRef::Ptr partialApply(const Result &arg, unsigned int argNum, DynamicContext *context, const LocationInfo *location) const = 0; protected: FunctionRef() {} }; #endif XQilla-2.3.0/include/xqilla/items/AnyAtomicType.hpp0000644000151400015140000001427411653565523017143 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ANYATOMICTYPE_HPP #define _ANYATOMICTYPE_HPP #include #include #include class DynamicContext; class StaticContext; class XQILLA_API AnyAtomicType: public Item { public: enum AtomicObjectType { ANY_SIMPLE_TYPE = 0, ANY_URI = 1, BASE_64_BINARY = 2, BOOLEAN = 3, DATE = 4, DATE_TIME = 5, DAY_TIME_DURATION = 6, DECIMAL = 7, DOUBLE = 8, DURATION = 9, FLOAT = 10, G_DAY = 11, G_MONTH = 12, G_MONTH_DAY = 13, G_YEAR = 14, G_YEAR_MONTH = 15, HEX_BINARY = 16, NOTATION = 17, QNAME = 18, STRING = 19, TIME = 20, UNTYPED_ATOMIC = 21, YEAR_MONTH_DURATION= 22, NumAtomicObjectTypes= 23 }; typedef RefCountPointer Ptr; /* isAtomicValue from Item */ virtual bool isAtomicValue() const; /* isNode from Item */ virtual bool isNode() const; virtual bool isFunction() const; /* is this type numeric? Return false by default */ virtual bool isNumericValue() const; /* is this type date or time based? Return false by default */ virtual bool isDateOrTimeTypeValue() const; /* Get the namespace uri of the primitive type (basic type) of this type */ virtual const XMLCh* getPrimitiveTypeURI() const; /* Get the name of the primitive type (basic type) of this type (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const = 0; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const = 0; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const = 0; virtual void generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS = true, bool preserveType = true) const; /* If possible, cast this type to the target type -- no casting table lookup made */ AnyAtomicType::Ptr castAs(AtomicObjectType targetIndex, const DynamicContext* context) const; /* If possible, cast this type to the target type -- no casting table lookup made */ AnyAtomicType::Ptr castAsNoCheck(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const; /* If possible, cast this type to the target type -- not virtual, this is the single entry point for casting */ AnyAtomicType::Ptr castAs(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const; /* Test if this type can be cast to the target type */ virtual bool castable(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const = 0; /* returns true if the two objects are equal (whatever that means * in the context of the datatype), false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0; /* Returns true if this typeName and uri match the given typeName and uri */ virtual bool isOfType(const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const; /* Returns true if this typeName and uri match the given typeName and uri, * or if any of this type's parents match the given typeName and uri */ virtual bool isInstanceOfType(const XMLCh* targetURI, const XMLCh* targetType, const StaticContext* context) const; virtual void typeToBuffer(DynamicContext *context, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &buffer) const; /** * Returns true if * (a) both the input type and the target type are built-in schema types and * cast is supported for the combination. * (b) the input type is a derived atomic type and the * target type is a supertype of the input type * (c) the target type is a derived atomic type and the * input type is xs:string, xs:anySimpleType, or a supertype of the * target type. * (d) If a primitive type P1 can be cast into a primitive type P2, then any * subtype of P1 can be cast into any subtype of P2 **/ bool castIsSupported(AtomicObjectType targetIndex, const DynamicContext* context) const; virtual AtomicObjectType getPrimitiveTypeIndex() const = 0; static const XMLCh fgDT_ANYATOMICTYPE[]; protected: /* internal castAs method. This one is virtual and does the real work */ virtual AnyAtomicType::Ptr castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const; private: //friend class CastTable; //template friend class DatatypeFactoryTemplate; // class that implements the Casting Table class CastTable { public: CastTable(); bool getCell(AtomicObjectType source, AtomicObjectType target) const; private: bool staticCastTable[NumAtomicObjectTypes][NumAtomicObjectTypes]; }; // reproduction of the XPath2 casting table: http://www.w3.org/TR/xquery-operators/#casting static const CastTable staticCastTable; }; #endif XQilla-2.3.0/include/Makefile.am0000644000151400015140000004166011636377670013331 00000000000000nobase_include_HEADERS = \ xqc.h \ xqilla/xqilla-dom3.hpp \ xqilla/xqilla-simple.hpp \ xqilla/xqilla-xqc.h \ xqilla/ast/LocationInfo.hpp \ xqilla/ast/XQCastableAs.hpp \ xqilla/ast/XQMap.hpp \ xqilla/ast/XQCastAs.hpp \ xqilla/ast/XQContextItem.hpp \ xqilla/ast/XQCopy.hpp \ xqilla/ast/XQCopyOf.hpp \ xqilla/ast/XQFunction.hpp \ xqilla/ast/ASTNode.hpp \ xqilla/ast/XQIf.hpp \ xqilla/ast/ASTNodeImpl.hpp \ xqilla/ast/XQInlineFunction.hpp \ xqilla/ast/XQLiteral.hpp \ xqilla/ast/XQNav.hpp \ xqilla/ast/XQOperator.hpp \ xqilla/ast/XQSequence.hpp \ xqilla/ast/XQStep.hpp \ xqilla/ast/XQTreatAs.hpp \ xqilla/ast/XQFunctionCoercion.hpp \ xqilla/ast/XQVariable.hpp \ xqilla/ast/StaticAnalysis.hpp \ xqilla/ast/StaticType.hpp \ xqilla/ast/NumericFunction.hpp \ xqilla/ast/XQDOMConstructor.hpp \ xqilla/ast/XQDocumentConstructor.hpp \ xqilla/ast/XQElementConstructor.hpp \ xqilla/ast/XQAttributeConstructor.hpp \ xqilla/ast/XQNamespaceConstructor.hpp \ xqilla/ast/XQPIConstructor.hpp \ xqilla/ast/XQCommentConstructor.hpp \ xqilla/ast/XQTextConstructor.hpp \ xqilla/ast/XQFunctionCall.hpp \ xqilla/ast/XQFunctionConversion.hpp \ xqilla/ast/XQFunctionDeref.hpp \ xqilla/ast/XQPartialApply.hpp \ xqilla/ast/XQFunctionRef.hpp \ xqilla/ast/XQGlobalVariable.hpp \ xqilla/ast/XQOrderingChange.hpp \ xqilla/ast/XQQuantified.hpp \ xqilla/ast/XQTypeswitch.hpp \ xqilla/ast/XQValidate.hpp \ xqilla/ast/XQAtomize.hpp \ xqilla/ast/XQEffectiveBooleanValue.hpp \ xqilla/ast/XQAnalyzeString.hpp \ xqilla/ast/ConvertFunctionArg.hpp \ xqilla/ast/XQDocumentOrder.hpp \ xqilla/ast/XQPredicate.hpp \ xqilla/ast/XQReturn.hpp \ xqilla/ast/TupleNode.hpp \ xqilla/ast/ContextTuple.hpp \ xqilla/ast/ForTuple.hpp \ xqilla/ast/LetTuple.hpp \ xqilla/ast/OrderByTuple.hpp \ xqilla/ast/WhereTuple.hpp \ xqilla/ast/CountTuple.hpp \ xqilla/ast/XQNamespaceBinding.hpp \ xqilla/ast/XQCallTemplate.hpp \ xqilla/ast/XQApplyTemplates.hpp \ xqilla/debug/InteractiveDebugger.hpp \ xqilla/debug/InputParser.hpp \ xqilla/debug/DebugListener.hpp \ xqilla/debug/DebugHookDecorator.hpp \ xqilla/debug/ASTDebugHook.hpp \ xqilla/debug/TupleDebugHook.hpp \ xqilla/debug/StackFrame.hpp \ xqilla/events/ContentSequenceFilter.hpp \ xqilla/events/EventGenerator.hpp \ xqilla/events/EventHandler.hpp \ xqilla/events/EventSerializer.hpp \ xqilla/events/NSFixupFilter.hpp \ xqilla/events/QueryPathTreeFilter.hpp \ xqilla/events/SequenceBuilder.hpp \ xqilla/fastxdm/FastXDMConfiguration.hpp \ xqilla/fulltext/FTContains.hpp \ xqilla/fulltext/FTSelection.hpp \ xqilla/fulltext/FTWords.hpp \ xqilla/fulltext/FTOr.hpp \ xqilla/fulltext/FTAnd.hpp \ xqilla/fulltext/FTMildnot.hpp \ xqilla/fulltext/FTUnaryNot.hpp \ xqilla/fulltext/AllMatches.hpp \ xqilla/fulltext/Match.hpp \ xqilla/fulltext/TokenInfo.hpp \ xqilla/fulltext/Tokenizer.hpp \ xqilla/fulltext/DefaultTokenizer.hpp \ xqilla/fulltext/TokenStore.hpp \ xqilla/fulltext/DefaultTokenStore.hpp \ xqilla/fulltext/FTOption.hpp \ xqilla/fulltext/FTOrder.hpp \ xqilla/fulltext/FTRange.hpp \ xqilla/fulltext/FTDistance.hpp \ xqilla/fulltext/FTScope.hpp \ xqilla/fulltext/FTContent.hpp \ xqilla/fulltext/FTWindow.hpp \ xqilla/axis/NodeTest.hpp \ xqilla/context/ContextHelpers.hpp \ xqilla/context/DynamicContext.hpp \ xqilla/context/StaticContext.hpp \ xqilla/context/ItemFactory.hpp \ xqilla/context/MessageListener.hpp \ xqilla/context/ModuleResolver.hpp \ xqilla/context/URIResolver.hpp \ xqilla/context/VariableStore.hpp \ xqilla/context/Scope.hpp \ xqilla/context/VarHashEntry.hpp \ xqilla/context/VariableTypeStore.hpp \ xqilla/context/Collation.hpp \ xqilla/context/ExternalFunctionResolver.hpp \ xqilla/context/UpdateFactory.hpp \ xqilla/context/RegexGroupStore.hpp \ xqilla/context/impl/CollationImpl.hpp \ xqilla/context/impl/VarHashEntryImpl.hpp \ xqilla/context/impl/VarStoreImpl.hpp \ xqilla/context/impl/VariableStoreTemplate.hpp \ xqilla/context/impl/CodepointCollation.hpp \ xqilla/context/impl/XQContextImpl.hpp \ xqilla/context/impl/XQDynamicContextImpl.hpp \ xqilla/context/impl/ItemFactoryImpl.hpp \ xqilla/dom-api/impl/XQillaNSResolverImpl.hpp \ xqilla/dom-api/XPath2Result.hpp \ xqilla/dom-api/XQillaExpression.hpp \ xqilla/dom-api/XQillaNSResolver.hpp \ xqilla/exceptions/XQillaException.hpp \ xqilla/exceptions/ContextException.hpp \ xqilla/exceptions/ASTException.hpp \ xqilla/exceptions/DynamicErrorException.hpp \ xqilla/exceptions/FunctionException.hpp \ xqilla/exceptions/IllegalArgumentException.hpp \ xqilla/exceptions/ItemException.hpp \ xqilla/exceptions/NamespaceLookupException.hpp \ xqilla/exceptions/StaticErrorException.hpp \ xqilla/exceptions/TypeErrorException.hpp \ xqilla/exceptions/TypeNotFoundException.hpp \ xqilla/exceptions/XMLParseException.hpp \ xqilla/exceptions/XPath2ErrorException.hpp \ xqilla/exceptions/XPath2TypeCastException.hpp \ xqilla/exceptions/XPath2TypeMatchException.hpp \ xqilla/exceptions/XQException.hpp \ xqilla/exceptions/QueryInterruptedException.hpp \ xqilla/exceptions/QueryTimeoutException.hpp \ xqilla/functions/EXSLTMathFunction.hpp \ xqilla/functions/ExternalFunction.hpp \ xqilla/functions/FunctionLookup.hpp \ xqilla/functions/FunctionAnalyzeString.hpp \ xqilla/functions/FunctionAbs.hpp \ xqilla/functions/FunctionAcos.hpp \ xqilla/functions/FunctionAsin.hpp \ xqilla/functions/FunctionAtan.hpp \ xqilla/functions/FunctionAdjustDateTimeToTimezone.hpp \ xqilla/functions/FunctionAdjustDateToTimezone.hpp \ xqilla/functions/FunctionAdjustTimeToTimezone.hpp \ xqilla/functions/FunctionBaseURI.hpp \ xqilla/functions/FunctionCaseFold.hpp \ xqilla/functions/FunctionCeiling.hpp \ xqilla/functions/FunctionCodepointsToString.hpp \ xqilla/functions/FunctionCollection.hpp \ xqilla/functions/FunctionCompare.hpp \ xqilla/functions/FunctionConcat.hpp \ xqilla/functions/FunctionContains.hpp \ xqilla/functions/FunctionCos.hpp \ xqilla/functions/FunctionCount.hpp \ xqilla/functions/FunctionCurrentDate.hpp \ xqilla/functions/FunctionCurrentDateTime.hpp \ xqilla/functions/FunctionCurrentTime.hpp \ xqilla/functions/FunctionDateTime.hpp \ xqilla/functions/FunctionDayFromDate.hpp \ xqilla/functions/FunctionDayFromDateTime.hpp \ xqilla/functions/FunctionDaysFromDuration.hpp \ xqilla/functions/FunctionDefaultCollation.hpp \ xqilla/functions/FunctionDistinctValues.hpp \ xqilla/functions/FunctionDocAvailable.hpp \ xqilla/functions/FunctionDoc.hpp \ xqilla/functions/FunctionDocument.hpp \ xqilla/functions/FunctionDocumentURI.hpp \ xqilla/functions/FunctionEmpty.hpp \ xqilla/functions/FunctionEndsWith.hpp \ xqilla/functions/FunctionExp.hpp \ xqilla/functions/FunctionError.hpp \ xqilla/functions/FunctionFloor.hpp \ xqilla/functions/FunctionFunctionArity.hpp \ xqilla/functions/FunctionFunctionName.hpp \ xqilla/functions/FunctionHoursFromDateTime.hpp \ xqilla/functions/FunctionHoursFromDuration.hpp \ xqilla/functions/FunctionHoursFromTime.hpp \ xqilla/functions/FunctionId.hpp \ xqilla/functions/FunctionIdref.hpp \ xqilla/functions/FunctionImplicitTimezone.hpp \ xqilla/functions/FunctionLang.hpp \ xqilla/functions/FunctionLast.hpp \ xqilla/functions/FunctionLocalNameFromQName.hpp \ xqilla/functions/FunctionLocalname.hpp \ xqilla/functions/FunctionLog.hpp \ xqilla/functions/FunctionLowerCase.hpp \ xqilla/functions/FunctionMatches.hpp \ xqilla/functions/FunctionMinutesFromDateTime.hpp \ xqilla/functions/FunctionMinutesFromDuration.hpp \ xqilla/functions/FunctionMinutesFromTime.hpp \ xqilla/functions/FunctionMonthFromDate.hpp \ xqilla/functions/FunctionMonthFromDateTime.hpp \ xqilla/functions/FunctionMonthsFromDuration.hpp \ xqilla/functions/FunctionName.hpp \ xqilla/functions/FunctionNamespaceURIFromQName.hpp \ xqilla/functions/FunctionNamespaceUri.hpp \ xqilla/functions/FunctionNilled.hpp \ xqilla/functions/FunctionNodeName.hpp \ xqilla/functions/FunctionNormalizeSpace.hpp \ xqilla/functions/FunctionNormalizeUnicode.hpp \ xqilla/functions/FunctionNot.hpp \ xqilla/functions/FunctionNumber.hpp \ xqilla/functions/FunctionParseHTML.hpp \ xqilla/functions/FunctionParseJSON.hpp \ xqilla/functions/FunctionExplain.hpp \ xqilla/functions/FunctionSentences.hpp \ xqilla/functions/FunctionSerializeJSON.hpp \ xqilla/functions/FunctionParseXML.hpp \ xqilla/functions/FunctionPosition.hpp \ xqilla/functions/FunctionPower.hpp \ xqilla/functions/FunctionPrefixFromQName.hpp \ xqilla/functions/FunctionQName.hpp \ xqilla/functions/FunctionRegexGroup.hpp \ xqilla/functions/FunctionReplace.hpp \ xqilla/functions/FunctionResolveURI.hpp \ xqilla/functions/FunctionRoot.hpp \ xqilla/functions/FunctionRoundHalfToEven.hpp \ xqilla/functions/FunctionRound.hpp \ xqilla/functions/FunctionSecondsFromDateTime.hpp \ xqilla/functions/FunctionSecondsFromDuration.hpp \ xqilla/functions/FunctionSecondsFromTime.hpp \ xqilla/functions/FunctionSin.hpp \ xqilla/functions/FunctionSqrt.hpp \ xqilla/functions/FunctionStartsWith.hpp \ xqilla/functions/FunctionStaticBaseURI.hpp \ xqilla/functions/FunctionString.hpp \ xqilla/functions/FunctionStringLength.hpp \ xqilla/functions/FunctionStringToCodepoints.hpp \ xqilla/functions/FunctionSubstring.hpp \ xqilla/functions/FunctionTan.hpp \ xqilla/functions/FunctionTime.hpp \ xqilla/functions/FunctionTimezoneFromDate.hpp \ xqilla/functions/FunctionTimezoneFromDateTime.hpp \ xqilla/functions/FunctionTimezoneFromTime.hpp \ xqilla/functions/FunctionTokenize.hpp \ xqilla/functions/FunctionTrace.hpp \ xqilla/functions/FunctionHead.hpp \ xqilla/functions/FunctionTail.hpp \ xqilla/functions/FunctionUnordered.hpp \ xqilla/functions/FunctionUnparsedText.hpp \ xqilla/functions/FunctionUpperCase.hpp \ xqilla/functions/FunctionWords.hpp \ xqilla/functions/FunctionYearFromDate.hpp \ xqilla/functions/FunctionYearFromDateTime.hpp \ xqilla/functions/FunctionYearsFromDuration.hpp \ xqilla/functions/FuncFactory.hpp \ xqilla/functions/FuncFactoryTemplate.hpp \ xqilla/functions/RegExpFunction.hpp \ xqilla/functions/XQUserFunction.hpp \ xqilla/functions/FunctionSignature.hpp \ xqilla/functions/XQillaFunction.hpp \ xqilla/functions/BuiltInModules.hpp \ xqilla/items/ATAnySimpleType.hpp \ xqilla/items/ATAnyURIOrDerived.hpp \ xqilla/items/ATBase64BinaryOrDerived.hpp \ xqilla/items/ATBooleanOrDerived.hpp \ xqilla/items/ATDateOrDerived.hpp \ xqilla/items/ATDateTimeOrDerived.hpp \ xqilla/items/ATDecimalOrDerived.hpp \ xqilla/items/ATDoubleOrDerived.hpp \ xqilla/items/ATDurationOrDerived.hpp \ xqilla/items/ATFloatOrDerived.hpp \ xqilla/items/ATGDayOrDerived.hpp \ xqilla/items/ATGMonthDayOrDerived.hpp \ xqilla/items/ATGMonthOrDerived.hpp \ xqilla/items/ATGYearMonthOrDerived.hpp \ xqilla/items/ATGYearOrDerived.hpp \ xqilla/items/ATHexBinaryOrDerived.hpp \ xqilla/items/ATNotationOrDerived.hpp \ xqilla/items/ATQNameOrDerived.hpp \ xqilla/items/ATStringOrDerived.hpp \ xqilla/items/ATTimeOrDerived.hpp \ xqilla/items/ATUntypedAtomic.hpp \ xqilla/items/AnyAtomicType.hpp \ xqilla/items/DateOrTimeType.hpp \ xqilla/items/FunctionRef.hpp \ xqilla/items/Item.hpp \ xqilla/items/Node.hpp \ xqilla/items/Numeric.hpp \ xqilla/items/Timezone.hpp \ xqilla/items/DatatypeLookup.hpp \ xqilla/items/DatatypeFactory.hpp \ xqilla/items/impl/ATBooleanOrDerivedImpl.hpp \ xqilla/items/impl/ATDecimalOrDerivedImpl.hpp \ xqilla/items/impl/ATDoubleOrDerivedImpl.hpp \ xqilla/items/impl/ATFloatOrDerivedImpl.hpp \ xqilla/items/impl/ATQNameOrDerivedImpl.hpp \ xqilla/items/impl/ATDurationOrDerivedImpl.hpp \ xqilla/items/impl/ATDateTimeOrDerivedImpl.hpp \ xqilla/items/impl/ATDateOrDerivedImpl.hpp \ xqilla/items/impl/ATTimeOrDerivedImpl.hpp \ xqilla/items/impl/ATGDayOrDerivedImpl.hpp \ xqilla/items/impl/ATGMonthDayOrDerivedImpl.hpp \ xqilla/items/impl/ATGMonthOrDerivedImpl.hpp \ xqilla/items/impl/ATGYearMonthOrDerivedImpl.hpp \ xqilla/items/impl/ATGYearOrDerivedImpl.hpp \ xqilla/mapm/m_apm.h \ xqilla/operators/And.hpp \ xqilla/operators/ArithmeticOperator.hpp \ xqilla/operators/ComparisonOperator.hpp \ xqilla/operators/Divide.hpp \ xqilla/operators/Equals.hpp \ xqilla/operators/Except.hpp \ xqilla/operators/GeneralComp.hpp \ xqilla/operators/GreaterThanEqual.hpp \ xqilla/operators/GreaterThan.hpp \ xqilla/operators/IntegerDivide.hpp \ xqilla/operators/Intersect.hpp \ xqilla/operators/LessThanEqual.hpp \ xqilla/operators/LessThan.hpp \ xqilla/operators/Minus.hpp \ xqilla/operators/Mod.hpp \ xqilla/operators/Multiply.hpp \ xqilla/operators/NodeComparison.hpp \ xqilla/operators/NotEquals.hpp \ xqilla/operators/OrderComparison.hpp \ xqilla/operators/Or.hpp \ xqilla/operators/Plus.hpp \ xqilla/operators/UnaryMinus.hpp \ xqilla/operators/Union.hpp \ xqilla/optimizer/Optimizer.hpp \ xqilla/optimizer/ASTCopier.hpp \ xqilla/optimizer/ASTReleaser.hpp \ xqilla/optimizer/ASTVisitor.hpp \ xqilla/optimizer/PartialEvaluator.hpp \ xqilla/optimizer/StaticTyper.hpp \ xqilla/optimizer/QueryPathNode.hpp \ xqilla/optimizer/QueryPathTreeGenerator.hpp \ xqilla/optimizer/ASTToXML.hpp \ xqilla/parser/QName.hpp \ xqilla/runtime/ClosureResult.hpp \ xqilla/runtime/TupleResult.hpp \ xqilla/runtime/Sequence.hpp \ xqilla/runtime/ResultBuffer.hpp \ xqilla/runtime/ResultBufferImpl.hpp \ xqilla/runtime/Result.hpp \ xqilla/runtime/ResultImpl.hpp \ xqilla/runtime/SequenceResult.hpp \ xqilla/runtime/EmptyResult.hpp \ xqilla/schema/DocumentCache.hpp \ xqilla/schema/SequenceType.hpp \ xqilla/schema/AnyAtomicTypeDatatypeValidator.hpp \ xqilla/schema/DocumentCacheImpl.hpp \ xqilla/schema/SchemaValidatorFilter.hpp \ xqilla/simple-api/XQilla.hpp \ xqilla/simple-api/XQillaConfiguration.hpp \ xqilla/simple-api/XQQuery.hpp \ xqilla/update/FunctionPut.hpp \ xqilla/update/PendingUpdateList.hpp \ xqilla/update/UApplyUpdates.hpp \ xqilla/update/UDelete.hpp \ xqilla/update/URename.hpp \ xqilla/update/UReplace.hpp \ xqilla/update/UReplaceValueOf.hpp \ xqilla/update/UInsertAsFirst.hpp \ xqilla/update/UInsertAsLast.hpp \ xqilla/update/UInsertInto.hpp \ xqilla/update/UInsertAfter.hpp \ xqilla/update/UInsertBefore.hpp \ xqilla/update/UTransform.hpp \ xqilla/utils/NumUtils.hpp \ xqilla/utils/XPath2NSUtils.hpp \ xqilla/utils/XPath2Utils.hpp \ xqilla/utils/XMLChCompare.hpp \ xqilla/utils/XStr.hpp \ xqilla/utils/ContextUtils.hpp \ xqilla/utils/UTF8Str.hpp \ xqilla/utils/XQillaPlatformUtils.hpp \ xqilla/utils/UnicodeTransformer.hpp \ xqilla/utils/utf8proc.h \ xqilla/utils/DelayedModule.hpp \ xqilla/framework/ReferenceCounted.hpp \ xqilla/framework/XPath2MemoryManager.hpp \ xqilla/framework/BaseMemoryManager.hpp \ xqilla/framework/ProxyMemoryManager.hpp \ xqilla/framework/StringPool.hpp \ xqilla/framework/XPath2MemoryManagerImpl.hpp \ xqilla/framework/XQillaExport.hpp \ xqilla/xerces/XercesConfiguration.hpp \ xqilla/xqts/TestSuiteParser.hpp \ xqilla/xqts/TestSuiteResultListener.hpp \ xqilla/xqts/TestSuiteRunner.hpp docs: $(top_srcdir)/docs/.simple-api-timestamp $(top_srcdir)/docs/.dom3-api-timestamp $(top_srcdir)/docs/.xqc-api-timestamp docsclean: rm -rf $(top_srcdir)/docs/simple-api $(top_srcdir)/docs/dom3-api $(top_srcdir)/docs/xqc-api && \ rm $(top_srcdir)/docs/.simple-api-timestamp $(top_srcdir)/docs/.dom3-api-timestamp $(top_srcdir)/docs/.xqc-api-timestamp && \ rm $(top_srcdir)/docs/Doxyfile.simpleapi $(top_srcdir)/docs/Doxyfile.dom3api $(top_srcdir)/docs/Doxyfile.xqc $(top_srcdir)/docs/.simple-api-timestamp: $(nobase_include_HEADERS) $(top_srcdir)/docs/Doxyfile.simpleapi $(top_srcdir)/docs/simple_header.html cd $(top_srcdir)/docs && \ doxygen Doxyfile.simpleapi && \ touch .simple-api-timestamp $(top_srcdir)/docs/Doxyfile.simpleapi: $(top_srcdir)/docs/Doxyfile.simpleapi.in sed -e "s,%xerces_include%,$(xerces_include_dir)," -e "s,%version%,$(VERSION)," $(top_srcdir)/docs/Doxyfile.simpleapi.in >$(top_srcdir)/docs/Doxyfile.simpleapi $(top_srcdir)/docs/.dom3-api-timestamp: $(nobase_include_HEADERS) $(top_srcdir)/docs/Doxyfile.dom3api cd $(top_srcdir)/docs && \ doxygen Doxyfile.dom3api && \ touch .dom3-api-timestamp $(top_srcdir)/docs/Doxyfile.dom3api: $(top_srcdir)/docs/Doxyfile.dom3api.in $(top_srcdir)/docs/dom3_header.html sed -e "s,%xerces_include%,$(xerces_include_dir)," -e "s,%version%,$(VERSION)," $(top_srcdir)/docs/Doxyfile.dom3api.in >$(top_srcdir)/docs/Doxyfile.dom3api $(top_srcdir)/docs/.xqc-api-timestamp: $(nobase_include_HEADERS) $(top_srcdir)/docs/Doxyfile.xqc $(top_srcdir)/docs/xqc_header.html cd $(top_srcdir)/docs && \ doxygen Doxyfile.xqc && \ touch .xqc-api-timestamp $(top_srcdir)/docs/Doxyfile.xqc: $(top_srcdir)/docs/Doxyfile.xqc.in sed -e "s,%xerces_include%,$(xerces_include_dir)," -e "s,%version%,$(VERSION)," $(top_srcdir)/docs/Doxyfile.xqc.in >$(top_srcdir)/docs/Doxyfile.xqc devdocs: $(top_srcdir)/docs/.dev-api-timestamp devdocsclean: rm -rf $(top_srcdir)/docs/dev-api && \ rm $(top_srcdir)/docs/.dev-api-timestamp && \ rm $(top_srcdir)/docs/Doxyfile.devapi $(top_srcdir)/docs/.dev-api-timestamp: $(nobase_include_HEADERS) $(top_srcdir)/docs/Doxyfile.devapi cd $(top_srcdir)/docs && \ doxygen Doxyfile.devapi && \ touch .dev-api-timestamp $(top_srcdir)/docs/Doxyfile.devapi: $(top_srcdir)/docs/Doxyfile.devapi.in sed -e "s,%xerces_include%,$(xerces_include_dir)," $(top_srcdir)/docs/Doxyfile.devapi.in >$(top_srcdir)/docs/Doxyfile.devapi # Target to help keep the windows projects up-to-date winprojects: @echo " " >winprojects_files.xml @list='$(nobase_include_HEADERS)'; for f in $$list; do \ echo " " >>winprojects_files.xml; \ done @echo " " >>winprojects_files.xml XQilla-2.3.0/include/Makefile.in0000644000151400015140000007574511653565550013350 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = include DIST_COMMON = $(nobase_include_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/libtool.m4 \ $(top_srcdir)/autotools/m4/ltoptions.m4 \ $(top_srcdir)/autotools/m4/ltsugar.m4 \ $(top_srcdir)/autotools/m4/ltversion.m4 \ $(top_srcdir)/autotools/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/autotools/mkinstalldirs CONFIG_HEADER = $(top_builddir)/src/config/xqilla_config_unix.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(includedir)" HEADERS = $(nobase_include_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ YACC = @YACC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ faxpp_include = @faxpp_include@ faxpp_lib = @faxpp_lib@ faxpp_library = @faxpp_library@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ tidy_include = @tidy_include@ tidy_lib = @tidy_lib@ tidy_library = @tidy_library@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ xerces_include = @xerces_include@ xerces_include_dir = @xerces_include_dir@ xerces_lib = @xerces_lib@ nobase_include_HEADERS = \ xqc.h \ xqilla/xqilla-dom3.hpp \ xqilla/xqilla-simple.hpp \ xqilla/xqilla-xqc.h \ xqilla/ast/LocationInfo.hpp \ xqilla/ast/XQCastableAs.hpp \ xqilla/ast/XQMap.hpp \ xqilla/ast/XQCastAs.hpp \ xqilla/ast/XQContextItem.hpp \ xqilla/ast/XQCopy.hpp \ xqilla/ast/XQCopyOf.hpp \ xqilla/ast/XQFunction.hpp \ xqilla/ast/ASTNode.hpp \ xqilla/ast/XQIf.hpp \ xqilla/ast/ASTNodeImpl.hpp \ xqilla/ast/XQInlineFunction.hpp \ xqilla/ast/XQLiteral.hpp \ xqilla/ast/XQNav.hpp \ xqilla/ast/XQOperator.hpp \ xqilla/ast/XQSequence.hpp \ xqilla/ast/XQStep.hpp \ xqilla/ast/XQTreatAs.hpp \ xqilla/ast/XQFunctionCoercion.hpp \ xqilla/ast/XQVariable.hpp \ xqilla/ast/StaticAnalysis.hpp \ xqilla/ast/StaticType.hpp \ xqilla/ast/NumericFunction.hpp \ xqilla/ast/XQDOMConstructor.hpp \ xqilla/ast/XQDocumentConstructor.hpp \ xqilla/ast/XQElementConstructor.hpp \ xqilla/ast/XQAttributeConstructor.hpp \ xqilla/ast/XQNamespaceConstructor.hpp \ xqilla/ast/XQPIConstructor.hpp \ xqilla/ast/XQCommentConstructor.hpp \ xqilla/ast/XQTextConstructor.hpp \ xqilla/ast/XQFunctionCall.hpp \ xqilla/ast/XQFunctionConversion.hpp \ xqilla/ast/XQFunctionDeref.hpp \ xqilla/ast/XQPartialApply.hpp \ xqilla/ast/XQFunctionRef.hpp \ xqilla/ast/XQGlobalVariable.hpp \ xqilla/ast/XQOrderingChange.hpp \ xqilla/ast/XQQuantified.hpp \ xqilla/ast/XQTypeswitch.hpp \ xqilla/ast/XQValidate.hpp \ xqilla/ast/XQAtomize.hpp \ xqilla/ast/XQEffectiveBooleanValue.hpp \ xqilla/ast/XQAnalyzeString.hpp \ xqilla/ast/ConvertFunctionArg.hpp \ xqilla/ast/XQDocumentOrder.hpp \ xqilla/ast/XQPredicate.hpp \ xqilla/ast/XQReturn.hpp \ xqilla/ast/TupleNode.hpp \ xqilla/ast/ContextTuple.hpp \ xqilla/ast/ForTuple.hpp \ xqilla/ast/LetTuple.hpp \ xqilla/ast/OrderByTuple.hpp \ xqilla/ast/WhereTuple.hpp \ xqilla/ast/CountTuple.hpp \ xqilla/ast/XQNamespaceBinding.hpp \ xqilla/ast/XQCallTemplate.hpp \ xqilla/ast/XQApplyTemplates.hpp \ xqilla/debug/InteractiveDebugger.hpp \ xqilla/debug/InputParser.hpp \ xqilla/debug/DebugListener.hpp \ xqilla/debug/DebugHookDecorator.hpp \ xqilla/debug/ASTDebugHook.hpp \ xqilla/debug/TupleDebugHook.hpp \ xqilla/debug/StackFrame.hpp \ xqilla/events/ContentSequenceFilter.hpp \ xqilla/events/EventGenerator.hpp \ xqilla/events/EventHandler.hpp \ xqilla/events/EventSerializer.hpp \ xqilla/events/NSFixupFilter.hpp \ xqilla/events/QueryPathTreeFilter.hpp \ xqilla/events/SequenceBuilder.hpp \ xqilla/fastxdm/FastXDMConfiguration.hpp \ xqilla/fulltext/FTContains.hpp \ xqilla/fulltext/FTSelection.hpp \ xqilla/fulltext/FTWords.hpp \ xqilla/fulltext/FTOr.hpp \ xqilla/fulltext/FTAnd.hpp \ xqilla/fulltext/FTMildnot.hpp \ xqilla/fulltext/FTUnaryNot.hpp \ xqilla/fulltext/AllMatches.hpp \ xqilla/fulltext/Match.hpp \ xqilla/fulltext/TokenInfo.hpp \ xqilla/fulltext/Tokenizer.hpp \ xqilla/fulltext/DefaultTokenizer.hpp \ xqilla/fulltext/TokenStore.hpp \ xqilla/fulltext/DefaultTokenStore.hpp \ xqilla/fulltext/FTOption.hpp \ xqilla/fulltext/FTOrder.hpp \ xqilla/fulltext/FTRange.hpp \ xqilla/fulltext/FTDistance.hpp \ xqilla/fulltext/FTScope.hpp \ xqilla/fulltext/FTContent.hpp \ xqilla/fulltext/FTWindow.hpp \ xqilla/axis/NodeTest.hpp \ xqilla/context/ContextHelpers.hpp \ xqilla/context/DynamicContext.hpp \ xqilla/context/StaticContext.hpp \ xqilla/context/ItemFactory.hpp \ xqilla/context/MessageListener.hpp \ xqilla/context/ModuleResolver.hpp \ xqilla/context/URIResolver.hpp \ xqilla/context/VariableStore.hpp \ xqilla/context/Scope.hpp \ xqilla/context/VarHashEntry.hpp \ xqilla/context/VariableTypeStore.hpp \ xqilla/context/Collation.hpp \ xqilla/context/ExternalFunctionResolver.hpp \ xqilla/context/UpdateFactory.hpp \ xqilla/context/RegexGroupStore.hpp \ xqilla/context/impl/CollationImpl.hpp \ xqilla/context/impl/VarHashEntryImpl.hpp \ xqilla/context/impl/VarStoreImpl.hpp \ xqilla/context/impl/VariableStoreTemplate.hpp \ xqilla/context/impl/CodepointCollation.hpp \ xqilla/context/impl/XQContextImpl.hpp \ xqilla/context/impl/XQDynamicContextImpl.hpp \ xqilla/context/impl/ItemFactoryImpl.hpp \ xqilla/dom-api/impl/XQillaNSResolverImpl.hpp \ xqilla/dom-api/XPath2Result.hpp \ xqilla/dom-api/XQillaExpression.hpp \ xqilla/dom-api/XQillaNSResolver.hpp \ xqilla/exceptions/XQillaException.hpp \ xqilla/exceptions/ContextException.hpp \ xqilla/exceptions/ASTException.hpp \ xqilla/exceptions/DynamicErrorException.hpp \ xqilla/exceptions/FunctionException.hpp \ xqilla/exceptions/IllegalArgumentException.hpp \ xqilla/exceptions/ItemException.hpp \ xqilla/exceptions/NamespaceLookupException.hpp \ xqilla/exceptions/StaticErrorException.hpp \ xqilla/exceptions/TypeErrorException.hpp \ xqilla/exceptions/TypeNotFoundException.hpp \ xqilla/exceptions/XMLParseException.hpp \ xqilla/exceptions/XPath2ErrorException.hpp \ xqilla/exceptions/XPath2TypeCastException.hpp \ xqilla/exceptions/XPath2TypeMatchException.hpp \ xqilla/exceptions/XQException.hpp \ xqilla/exceptions/QueryInterruptedException.hpp \ xqilla/exceptions/QueryTimeoutException.hpp \ xqilla/functions/EXSLTMathFunction.hpp \ xqilla/functions/ExternalFunction.hpp \ xqilla/functions/FunctionLookup.hpp \ xqilla/functions/FunctionAnalyzeString.hpp \ xqilla/functions/FunctionAbs.hpp \ xqilla/functions/FunctionAcos.hpp \ xqilla/functions/FunctionAsin.hpp \ xqilla/functions/FunctionAtan.hpp \ xqilla/functions/FunctionAdjustDateTimeToTimezone.hpp \ xqilla/functions/FunctionAdjustDateToTimezone.hpp \ xqilla/functions/FunctionAdjustTimeToTimezone.hpp \ xqilla/functions/FunctionBaseURI.hpp \ xqilla/functions/FunctionCaseFold.hpp \ xqilla/functions/FunctionCeiling.hpp \ xqilla/functions/FunctionCodepointsToString.hpp \ xqilla/functions/FunctionCollection.hpp \ xqilla/functions/FunctionCompare.hpp \ xqilla/functions/FunctionConcat.hpp \ xqilla/functions/FunctionContains.hpp \ xqilla/functions/FunctionCos.hpp \ xqilla/functions/FunctionCount.hpp \ xqilla/functions/FunctionCurrentDate.hpp \ xqilla/functions/FunctionCurrentDateTime.hpp \ xqilla/functions/FunctionCurrentTime.hpp \ xqilla/functions/FunctionDateTime.hpp \ xqilla/functions/FunctionDayFromDate.hpp \ xqilla/functions/FunctionDayFromDateTime.hpp \ xqilla/functions/FunctionDaysFromDuration.hpp \ xqilla/functions/FunctionDefaultCollation.hpp \ xqilla/functions/FunctionDistinctValues.hpp \ xqilla/functions/FunctionDocAvailable.hpp \ xqilla/functions/FunctionDoc.hpp \ xqilla/functions/FunctionDocument.hpp \ xqilla/functions/FunctionDocumentURI.hpp \ xqilla/functions/FunctionEmpty.hpp \ xqilla/functions/FunctionEndsWith.hpp \ xqilla/functions/FunctionExp.hpp \ xqilla/functions/FunctionError.hpp \ xqilla/functions/FunctionFloor.hpp \ xqilla/functions/FunctionFunctionArity.hpp \ xqilla/functions/FunctionFunctionName.hpp \ xqilla/functions/FunctionHoursFromDateTime.hpp \ xqilla/functions/FunctionHoursFromDuration.hpp \ xqilla/functions/FunctionHoursFromTime.hpp \ xqilla/functions/FunctionId.hpp \ xqilla/functions/FunctionIdref.hpp \ xqilla/functions/FunctionImplicitTimezone.hpp \ xqilla/functions/FunctionLang.hpp \ xqilla/functions/FunctionLast.hpp \ xqilla/functions/FunctionLocalNameFromQName.hpp \ xqilla/functions/FunctionLocalname.hpp \ xqilla/functions/FunctionLog.hpp \ xqilla/functions/FunctionLowerCase.hpp \ xqilla/functions/FunctionMatches.hpp \ xqilla/functions/FunctionMinutesFromDateTime.hpp \ xqilla/functions/FunctionMinutesFromDuration.hpp \ xqilla/functions/FunctionMinutesFromTime.hpp \ xqilla/functions/FunctionMonthFromDate.hpp \ xqilla/functions/FunctionMonthFromDateTime.hpp \ xqilla/functions/FunctionMonthsFromDuration.hpp \ xqilla/functions/FunctionName.hpp \ xqilla/functions/FunctionNamespaceURIFromQName.hpp \ xqilla/functions/FunctionNamespaceUri.hpp \ xqilla/functions/FunctionNilled.hpp \ xqilla/functions/FunctionNodeName.hpp \ xqilla/functions/FunctionNormalizeSpace.hpp \ xqilla/functions/FunctionNormalizeUnicode.hpp \ xqilla/functions/FunctionNot.hpp \ xqilla/functions/FunctionNumber.hpp \ xqilla/functions/FunctionParseHTML.hpp \ xqilla/functions/FunctionParseJSON.hpp \ xqilla/functions/FunctionExplain.hpp \ xqilla/functions/FunctionSentences.hpp \ xqilla/functions/FunctionSerializeJSON.hpp \ xqilla/functions/FunctionParseXML.hpp \ xqilla/functions/FunctionPosition.hpp \ xqilla/functions/FunctionPower.hpp \ xqilla/functions/FunctionPrefixFromQName.hpp \ xqilla/functions/FunctionQName.hpp \ xqilla/functions/FunctionRegexGroup.hpp \ xqilla/functions/FunctionReplace.hpp \ xqilla/functions/FunctionResolveURI.hpp \ xqilla/functions/FunctionRoot.hpp \ xqilla/functions/FunctionRoundHalfToEven.hpp \ xqilla/functions/FunctionRound.hpp \ xqilla/functions/FunctionSecondsFromDateTime.hpp \ xqilla/functions/FunctionSecondsFromDuration.hpp \ xqilla/functions/FunctionSecondsFromTime.hpp \ xqilla/functions/FunctionSin.hpp \ xqilla/functions/FunctionSqrt.hpp \ xqilla/functions/FunctionStartsWith.hpp \ xqilla/functions/FunctionStaticBaseURI.hpp \ xqilla/functions/FunctionString.hpp \ xqilla/functions/FunctionStringLength.hpp \ xqilla/functions/FunctionStringToCodepoints.hpp \ xqilla/functions/FunctionSubstring.hpp \ xqilla/functions/FunctionTan.hpp \ xqilla/functions/FunctionTime.hpp \ xqilla/functions/FunctionTimezoneFromDate.hpp \ xqilla/functions/FunctionTimezoneFromDateTime.hpp \ xqilla/functions/FunctionTimezoneFromTime.hpp \ xqilla/functions/FunctionTokenize.hpp \ xqilla/functions/FunctionTrace.hpp \ xqilla/functions/FunctionHead.hpp \ xqilla/functions/FunctionTail.hpp \ xqilla/functions/FunctionUnordered.hpp \ xqilla/functions/FunctionUnparsedText.hpp \ xqilla/functions/FunctionUpperCase.hpp \ xqilla/functions/FunctionWords.hpp \ xqilla/functions/FunctionYearFromDate.hpp \ xqilla/functions/FunctionYearFromDateTime.hpp \ xqilla/functions/FunctionYearsFromDuration.hpp \ xqilla/functions/FuncFactory.hpp \ xqilla/functions/FuncFactoryTemplate.hpp \ xqilla/functions/RegExpFunction.hpp \ xqilla/functions/XQUserFunction.hpp \ xqilla/functions/FunctionSignature.hpp \ xqilla/functions/XQillaFunction.hpp \ xqilla/functions/BuiltInModules.hpp \ xqilla/items/ATAnySimpleType.hpp \ xqilla/items/ATAnyURIOrDerived.hpp \ xqilla/items/ATBase64BinaryOrDerived.hpp \ xqilla/items/ATBooleanOrDerived.hpp \ xqilla/items/ATDateOrDerived.hpp \ xqilla/items/ATDateTimeOrDerived.hpp \ xqilla/items/ATDecimalOrDerived.hpp \ xqilla/items/ATDoubleOrDerived.hpp \ xqilla/items/ATDurationOrDerived.hpp \ xqilla/items/ATFloatOrDerived.hpp \ xqilla/items/ATGDayOrDerived.hpp \ xqilla/items/ATGMonthDayOrDerived.hpp \ xqilla/items/ATGMonthOrDerived.hpp \ xqilla/items/ATGYearMonthOrDerived.hpp \ xqilla/items/ATGYearOrDerived.hpp \ xqilla/items/ATHexBinaryOrDerived.hpp \ xqilla/items/ATNotationOrDerived.hpp \ xqilla/items/ATQNameOrDerived.hpp \ xqilla/items/ATStringOrDerived.hpp \ xqilla/items/ATTimeOrDerived.hpp \ xqilla/items/ATUntypedAtomic.hpp \ xqilla/items/AnyAtomicType.hpp \ xqilla/items/DateOrTimeType.hpp \ xqilla/items/FunctionRef.hpp \ xqilla/items/Item.hpp \ xqilla/items/Node.hpp \ xqilla/items/Numeric.hpp \ xqilla/items/Timezone.hpp \ xqilla/items/DatatypeLookup.hpp \ xqilla/items/DatatypeFactory.hpp \ xqilla/items/impl/ATBooleanOrDerivedImpl.hpp \ xqilla/items/impl/ATDecimalOrDerivedImpl.hpp \ xqilla/items/impl/ATDoubleOrDerivedImpl.hpp \ xqilla/items/impl/ATFloatOrDerivedImpl.hpp \ xqilla/items/impl/ATQNameOrDerivedImpl.hpp \ xqilla/items/impl/ATDurationOrDerivedImpl.hpp \ xqilla/items/impl/ATDateTimeOrDerivedImpl.hpp \ xqilla/items/impl/ATDateOrDerivedImpl.hpp \ xqilla/items/impl/ATTimeOrDerivedImpl.hpp \ xqilla/items/impl/ATGDayOrDerivedImpl.hpp \ xqilla/items/impl/ATGMonthDayOrDerivedImpl.hpp \ xqilla/items/impl/ATGMonthOrDerivedImpl.hpp \ xqilla/items/impl/ATGYearMonthOrDerivedImpl.hpp \ xqilla/items/impl/ATGYearOrDerivedImpl.hpp \ xqilla/mapm/m_apm.h \ xqilla/operators/And.hpp \ xqilla/operators/ArithmeticOperator.hpp \ xqilla/operators/ComparisonOperator.hpp \ xqilla/operators/Divide.hpp \ xqilla/operators/Equals.hpp \ xqilla/operators/Except.hpp \ xqilla/operators/GeneralComp.hpp \ xqilla/operators/GreaterThanEqual.hpp \ xqilla/operators/GreaterThan.hpp \ xqilla/operators/IntegerDivide.hpp \ xqilla/operators/Intersect.hpp \ xqilla/operators/LessThanEqual.hpp \ xqilla/operators/LessThan.hpp \ xqilla/operators/Minus.hpp \ xqilla/operators/Mod.hpp \ xqilla/operators/Multiply.hpp \ xqilla/operators/NodeComparison.hpp \ xqilla/operators/NotEquals.hpp \ xqilla/operators/OrderComparison.hpp \ xqilla/operators/Or.hpp \ xqilla/operators/Plus.hpp \ xqilla/operators/UnaryMinus.hpp \ xqilla/operators/Union.hpp \ xqilla/optimizer/Optimizer.hpp \ xqilla/optimizer/ASTCopier.hpp \ xqilla/optimizer/ASTReleaser.hpp \ xqilla/optimizer/ASTVisitor.hpp \ xqilla/optimizer/PartialEvaluator.hpp \ xqilla/optimizer/StaticTyper.hpp \ xqilla/optimizer/QueryPathNode.hpp \ xqilla/optimizer/QueryPathTreeGenerator.hpp \ xqilla/optimizer/ASTToXML.hpp \ xqilla/parser/QName.hpp \ xqilla/runtime/ClosureResult.hpp \ xqilla/runtime/TupleResult.hpp \ xqilla/runtime/Sequence.hpp \ xqilla/runtime/ResultBuffer.hpp \ xqilla/runtime/ResultBufferImpl.hpp \ xqilla/runtime/Result.hpp \ xqilla/runtime/ResultImpl.hpp \ xqilla/runtime/SequenceResult.hpp \ xqilla/runtime/EmptyResult.hpp \ xqilla/schema/DocumentCache.hpp \ xqilla/schema/SequenceType.hpp \ xqilla/schema/AnyAtomicTypeDatatypeValidator.hpp \ xqilla/schema/DocumentCacheImpl.hpp \ xqilla/schema/SchemaValidatorFilter.hpp \ xqilla/simple-api/XQilla.hpp \ xqilla/simple-api/XQillaConfiguration.hpp \ xqilla/simple-api/XQQuery.hpp \ xqilla/update/FunctionPut.hpp \ xqilla/update/PendingUpdateList.hpp \ xqilla/update/UApplyUpdates.hpp \ xqilla/update/UDelete.hpp \ xqilla/update/URename.hpp \ xqilla/update/UReplace.hpp \ xqilla/update/UReplaceValueOf.hpp \ xqilla/update/UInsertAsFirst.hpp \ xqilla/update/UInsertAsLast.hpp \ xqilla/update/UInsertInto.hpp \ xqilla/update/UInsertAfter.hpp \ xqilla/update/UInsertBefore.hpp \ xqilla/update/UTransform.hpp \ xqilla/utils/NumUtils.hpp \ xqilla/utils/XPath2NSUtils.hpp \ xqilla/utils/XPath2Utils.hpp \ xqilla/utils/XMLChCompare.hpp \ xqilla/utils/XStr.hpp \ xqilla/utils/ContextUtils.hpp \ xqilla/utils/UTF8Str.hpp \ xqilla/utils/XQillaPlatformUtils.hpp \ xqilla/utils/UnicodeTransformer.hpp \ xqilla/utils/utf8proc.h \ xqilla/utils/DelayedModule.hpp \ xqilla/framework/ReferenceCounted.hpp \ xqilla/framework/XPath2MemoryManager.hpp \ xqilla/framework/BaseMemoryManager.hpp \ xqilla/framework/ProxyMemoryManager.hpp \ xqilla/framework/StringPool.hpp \ xqilla/framework/XPath2MemoryManagerImpl.hpp \ xqilla/framework/XQillaExport.hpp \ xqilla/xerces/XercesConfiguration.hpp \ xqilla/xqts/TestSuiteParser.hpp \ xqilla/xqts/TestSuiteResultListener.hpp \ xqilla/xqts/TestSuiteRunner.hpp all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign include/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign include/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-nobase_includeHEADERS: $(nobase_include_HEADERS) @$(NORMAL_INSTALL) test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)" @list='$(nobase_include_HEADERS)'; test -n "$(includedir)" || list=; \ $(am__nobase_list) | while read dir files; do \ xfiles=; for file in $$files; do \ if test -f "$$file"; then xfiles="$$xfiles $$file"; \ else xfiles="$$xfiles $(srcdir)/$$file"; fi; done; \ test -z "$$xfiles" || { \ test "x$$dir" = x. || { \ echo "$(MKDIR_P) '$(DESTDIR)$(includedir)/$$dir'"; \ $(MKDIR_P) "$(DESTDIR)$(includedir)/$$dir"; }; \ echo " $(INSTALL_HEADER) $$xfiles '$(DESTDIR)$(includedir)/$$dir'"; \ $(INSTALL_HEADER) $$xfiles "$(DESTDIR)$(includedir)/$$dir" || exit $$?; }; \ done uninstall-nobase_includeHEADERS: @$(NORMAL_UNINSTALL) @list='$(nobase_include_HEADERS)'; test -n "$(includedir)" || list=; \ $(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(includedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(includedir)" && rm -f $$files ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: for dir in "$(DESTDIR)$(includedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-nobase_includeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-nobase_includeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool ctags distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-nobase_includeHEADERS \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-nobase_includeHEADERS docs: $(top_srcdir)/docs/.simple-api-timestamp $(top_srcdir)/docs/.dom3-api-timestamp $(top_srcdir)/docs/.xqc-api-timestamp docsclean: rm -rf $(top_srcdir)/docs/simple-api $(top_srcdir)/docs/dom3-api $(top_srcdir)/docs/xqc-api && \ rm $(top_srcdir)/docs/.simple-api-timestamp $(top_srcdir)/docs/.dom3-api-timestamp $(top_srcdir)/docs/.xqc-api-timestamp && \ rm $(top_srcdir)/docs/Doxyfile.simpleapi $(top_srcdir)/docs/Doxyfile.dom3api $(top_srcdir)/docs/Doxyfile.xqc $(top_srcdir)/docs/.simple-api-timestamp: $(nobase_include_HEADERS) $(top_srcdir)/docs/Doxyfile.simpleapi $(top_srcdir)/docs/simple_header.html cd $(top_srcdir)/docs && \ doxygen Doxyfile.simpleapi && \ touch .simple-api-timestamp $(top_srcdir)/docs/Doxyfile.simpleapi: $(top_srcdir)/docs/Doxyfile.simpleapi.in sed -e "s,%xerces_include%,$(xerces_include_dir)," -e "s,%version%,$(VERSION)," $(top_srcdir)/docs/Doxyfile.simpleapi.in >$(top_srcdir)/docs/Doxyfile.simpleapi $(top_srcdir)/docs/.dom3-api-timestamp: $(nobase_include_HEADERS) $(top_srcdir)/docs/Doxyfile.dom3api cd $(top_srcdir)/docs && \ doxygen Doxyfile.dom3api && \ touch .dom3-api-timestamp $(top_srcdir)/docs/Doxyfile.dom3api: $(top_srcdir)/docs/Doxyfile.dom3api.in $(top_srcdir)/docs/dom3_header.html sed -e "s,%xerces_include%,$(xerces_include_dir)," -e "s,%version%,$(VERSION)," $(top_srcdir)/docs/Doxyfile.dom3api.in >$(top_srcdir)/docs/Doxyfile.dom3api $(top_srcdir)/docs/.xqc-api-timestamp: $(nobase_include_HEADERS) $(top_srcdir)/docs/Doxyfile.xqc $(top_srcdir)/docs/xqc_header.html cd $(top_srcdir)/docs && \ doxygen Doxyfile.xqc && \ touch .xqc-api-timestamp $(top_srcdir)/docs/Doxyfile.xqc: $(top_srcdir)/docs/Doxyfile.xqc.in sed -e "s,%xerces_include%,$(xerces_include_dir)," -e "s,%version%,$(VERSION)," $(top_srcdir)/docs/Doxyfile.xqc.in >$(top_srcdir)/docs/Doxyfile.xqc devdocs: $(top_srcdir)/docs/.dev-api-timestamp devdocsclean: rm -rf $(top_srcdir)/docs/dev-api && \ rm $(top_srcdir)/docs/.dev-api-timestamp && \ rm $(top_srcdir)/docs/Doxyfile.devapi $(top_srcdir)/docs/.dev-api-timestamp: $(nobase_include_HEADERS) $(top_srcdir)/docs/Doxyfile.devapi cd $(top_srcdir)/docs && \ doxygen Doxyfile.devapi && \ touch .dev-api-timestamp $(top_srcdir)/docs/Doxyfile.devapi: $(top_srcdir)/docs/Doxyfile.devapi.in sed -e "s,%xerces_include%,$(xerces_include_dir)," $(top_srcdir)/docs/Doxyfile.devapi.in >$(top_srcdir)/docs/Doxyfile.devapi # Target to help keep the windows projects up-to-date winprojects: @echo " " >winprojects_files.xml @list='$(nobase_include_HEADERS)'; for f in $$list; do \ echo " " >>winprojects_files.xml; \ done @echo " " >>winprojects_files.xml # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: XQilla-2.3.0/include/xqc.h0000644000151400015140000011102311571227106012212 00000000000000/* * Copyright (c) 2008, Matthias Brantner, John Snelson * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of the developers nor the names of contributors may be * used to endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #ifndef _XQUERY_C_API_H #define _XQUERY_C_API_H /* Include stdio for FILE */ #include #ifdef __cplusplus extern "C" { #endif /** The version of the XQC API in this header file */ #define XQC_VERSION_NUMBER 1 typedef struct XQC_Implementation_s XQC_Implementation; typedef struct XQC_StaticContext_s XQC_StaticContext; typedef struct XQC_Expression_s XQC_Expression; typedef struct XQC_DynamicContext_s XQC_DynamicContext; typedef struct XQC_Sequence_s XQC_Sequence; typedef struct XQC_InputStream_s XQC_InputStream; typedef struct XQC_ErrorHandler_s XQC_ErrorHandler; /** * The error enumeration used by all XQC functions to designate error condition. * All XQC functions return a value of type ::XQC_Error. */ typedef enum { XQC_NO_ERROR = 0, ///< No error. XQC_END_OF_SEQUENCE, ///< The end of the XQC_Sequence has been reached. XQC_NO_CURRENT_ITEM, XQC_PARSE_ERROR, XQC_INVALID_ARGUMENT, XQC_NOT_NODE, XQC_INTERNAL_ERROR, ///< An implementation specific error has occurred. XQC_NOT_IMPLEMENTED, ///< The implementation does not implement that function. /** * The encoding of the query has not been recognized, or is not supported by the * implementation. All implementations must support queries in UTF-8. */ XQC_UNRECOGNIZED_ENCODING, XQC_STATIC_ERROR, ///< A static error has occured while preparing the query XQC_TYPE_ERROR, ///< A type error has occured while preparing or executing the query XQC_DYNAMIC_ERROR, ///< A dynamic error has occured while preparing or executing the query XQC_SERIALIZATION_ERROR ///< A serialization error has occured while serializing the output of a query } XQC_Error; /** * The ::XQC_InputStream struct is designed to be populated by users for the purpose * of streaming data into an XQC implementation. */ struct XQC_InputStream_s { /** * The text encoding of the input data as a UTF-8 string, or 0 if unknown. The value of the string * should conform to the EncName grammar production as specified in XML 1.0: * * http://www.w3.org/TR/REC-xml/#NT-EncName */ const char *encoding; /** * Can be used for user specific purposes. */ void *user_data; /** * The function called to read more of the input query. The function should read * the next chunk of input into the buffer provided, returning the length of the * data read. * * \param stream The XQC_InputStream that this function pointer is a member of * \param[out] buffer The buffer to read the data into * \param length The length of the buffer * * \return The number of bytes read - this will be less than length if the end of the input is reached * * \todo Does this function need to be able to return an error condition? */ unsigned int (*read)(XQC_InputStream *stream, void *buffer, unsigned int length); /** * Called to free the resources associated with the XQC_InputStream. * * \param stream The XQC_InputStream that this function pointer is a member of * */ void (*free)(XQC_InputStream *stream); }; /** * The ::XQC_ErrorHandler struct is designed to be populated by users for the purpose * of collecting more detailed error messages from an XQC implementation. An XQC_ErrorHandler * can be set for a query execution using the XQC_StaticContext::set_error_handler() and * XQC_DynamicContext::set_error_handler() functions. * * The XQC_ErrorHandler * struct has no free() function pointer because the user remains responsible for freeing * the resources associated with this struct. * * \todo file/line/column information? */ struct XQC_ErrorHandler_s { /** * Can be used for user specific purposes. */ void *user_data; /** * The function called when an error occurs. The function receives the components of the * error as arguments. When this function returns, the implementation will exit query preparation or * execution with the error enumeration value passed as an argument. * * \param handler The XQC_ErrorHandler that this function pointer is a member of * \param error An enumeration value representing the type of error. One of either XQC_STATIC_ERROR, * XQC_TYPE_ERROR, XQC_DYNAMIC_ERROR, or XQC_SERIALIZATION_ERROR. * \param error_uri The namespace URI of the error code QName as a UTF-8 string, or 0 if there * is no namespace URI. * \param error_localname The local name of the error code QName as a UTF-8 string. * \param description The description of the error message as a UTF-8 string. The description may be * absent, in which case this parameter will be 0. * \param error_object The error object, potentially passed to the fn:error() function. * The user owns this object, and is responsible for freeing it. The error_object may be absent, in * which case this parameter will be 0. Some implementations may not provide this functionality, * meaning that this parameter will always be 0. */ void (*error)(XQC_ErrorHandler *handler, XQC_Error error, const char *error_uri, const char *error_localname, const char *description, XQC_Sequence *error_object); }; typedef enum { XQC_EMPTY_TYPE = 0, XQC_DOCUMENT_TYPE, XQC_ELEMENT_TYPE, XQC_ATTRIBUTE_TYPE, XQC_TEXT_TYPE, XQC_PROCESSING_INSTRUCTION_TYPE, XQC_COMMENT_TYPE, XQC_NAMESPACE_TYPE, XQC_ANY_SIMPLE_TYPE, XQC_ANY_URI_TYPE, XQC_BASE_64_BINARY_TYPE, XQC_BOOLEAN_TYPE, XQC_DATE_TYPE, XQC_DATE_TIME_TYPE, XQC_DAY_TIME_DURATION_TYPE, XQC_DECIMAL_TYPE, XQC_DOUBLE_TYPE, XQC_DURATION_TYPE, XQC_FLOAT_TYPE, XQC_G_DAY_TYPE, XQC_G_MONTH_TYPE, XQC_G_MONTH_DAY_TYPE, XQC_G_YEAR_TYPE, XQC_G_YEAR_MONTH_TYPE, XQC_HEX_BINARY_TYPE, XQC_NOTATION_TYPE, XQC_QNAME_TYPE, XQC_STRING_TYPE, XQC_TIME_TYPE, XQC_UNTYPED_ATOMIC_TYPE, XQC_YEAR_MONTH_DURATION_TYPE } XQC_ItemType; /** * The ::XQC_Implementation struct provides factory functions for preparing queries. An XQC_Implementation object * is thread-safe and can be used by multiple threads of execution at the same time. * * The method of creating an * XQC_Implementation object is beyond the scope of this API, and will typically involve calling an * implementation defined function. Once created, the user is responsible for freeing the object by calling * the free() function. The XQC_Implementation object should not be freed before all objects created using it's * functions have been freed - doing so may cause undefined behaviour. */ struct XQC_Implementation_s { /** * \name Functions for preparing queries * @{ */ /** * Creates a static context suitable for use in the prepare(), prepare_file() and prepare_stream() * functions. The user is responsible for freeing the ::XQC_StaticContext object returned by calling * XQC_StaticContext::free(). * * \param implementation The XQC_Implementation that this function pointer is a member of * \param[out] context The newly created XQC_StaticContext object. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*create_context)(XQC_Implementation *implementation, XQC_StaticContext **context); /** * Prepares a query from a UTF-8 string, returning an ::XQC_Expression object. The user remains responsible * for closing the file after preparation. The user is responsible for freeing the ::XQC_Expression object * returned by calling XQC_Expression::free(). * * \param implementation The XQC_Implementation that this function pointer is a member of. * \param string The query to prepare as a UTF-8 string. * \param context The initial static context for this query, or 0 to use the implementation defined * default static context. * \param[out] expression The resulting prepared expression. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR * \retval ::XQC_STATIC_ERROR * \retval ::XQC_TYPE_ERROR * \retval ::XQC_DYNAMIC_ERROR */ XQC_Error (*prepare)(XQC_Implementation *implementation, const char *string, const XQC_StaticContext *context, XQC_Expression **expression); /** * Prepares a query from a FILE pointer, returning an ::XQC_Expression object. The encoding of the * query in the file is determined by the implementation. The user remains responsible for closing * the file after preparation. The user is responsible for freeing the ::XQC_Expression object returned by * calling XQC_Expression::free(). * * \param implementation The XQC_Implementation that this function pointer is a member of. * \param file The file containing the query to prepare. * \param context The initial static context for this query, or 0 to use the implementation defined * default static context. * \param[out] expression The resulting prepared expression. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR * \retval ::XQC_UNRECOGNIZED_ENCODING * \retval ::XQC_STATIC_ERROR * \retval ::XQC_TYPE_ERROR * \retval ::XQC_DYNAMIC_ERROR */ XQC_Error (*prepare_file)(XQC_Implementation *implementation, FILE *file, const XQC_StaticContext *context, XQC_Expression **expression); /** * Prepares a query from an ::XQC_InputStream, returning an ::XQC_Expression object. The encoding of the stream * is determined by looking at XQC_InputStream::encoding, or by the implementation if * XQC_InputStream::encoding is 0. * The implementation is responsible for freeing the ::XQC_InputStream using the XQC_InputStream::free() * function after it has finished with using it. The user is responsible for freeing the ::XQC_Expression * object returned by calling XQC_Expression::free(). * * \param implementation The XQC_Implementation that this function pointer is a member of * \param stream The stream returning the query to prepare. * \param context The initial static context for this query, or 0 to use the implementation defined * default static context. * \param[out] expression The resulting prepared expression * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR * \retval ::XQC_UNRECOGNIZED_ENCODING * \retval ::XQC_STATIC_ERROR * \retval ::XQC_TYPE_ERROR * \retval ::XQC_DYNAMIC_ERROR */ XQC_Error (*prepare_stream)(XQC_Implementation *implementation, XQC_InputStream *stream, const XQC_StaticContext *context, XQC_Expression **expression); /// @} /** * \name Functions for parsing documents * @{ */ /// XQC_PARSE_ERROR XQC_Error (*parse_document)(XQC_Implementation *implementation, const char *string, XQC_Sequence **sequence); /// XQC_PARSE_ERROR XQC_Error (*parse_document_file)(XQC_Implementation *implementation, FILE *file, XQC_Sequence **sequence); /// XQC_PARSE_ERROR XQC_Error (*parse_document_stream)(XQC_Implementation *implementation, XQC_InputStream *stream, XQC_Sequence **sequence); /// @} /** * \name Functions for creating sequences * @{ */ XQC_Error (*create_empty_sequence)(XQC_Implementation *implementation, XQC_Sequence **sequence); XQC_Error (*create_singleton_sequence)(XQC_Implementation *implementation, XQC_ItemType type, const char *value, XQC_Sequence **sequence); XQC_Error (*create_string_sequence)(XQC_Implementation *implementation, const char *values[], unsigned int count, XQC_Sequence **sequence); XQC_Error (*create_integer_sequence)(XQC_Implementation *implementation, int values[], unsigned int count, XQC_Sequence **sequence); XQC_Error (*create_double_sequence)(XQC_Implementation *implementation, double values[], unsigned int count, XQC_Sequence **sequence); /// @} /** * Called to retrieve an implementation specific interface. * * \param implementation The XQC_Implementation that this function pointer is a member of * \param name The name that identifies the interface to return * * \return A pointer to the interface, or 0 if the name is not recognized by this * implementation of XQC. */ void *(*get_interface)(const XQC_Implementation *implementation, const char *name); /** * Called to free the resources associated with the XQC_Implementation. * * \param implementation The XQC_Implementation that this function pointer is a member of * */ void (*free)(XQC_Implementation *implementation); }; /** * XPath 1.0 compatibility mode as defined in * http://www.w3.org/TR/xquery/#static_context * \todo Are there better enumeration names? */ typedef enum { XQC_XPATH2_0, XQC_XPATH1_0 } XQC_XPath1Mode; /** * Ordering mode as defined in http://www.w3.org/TR/xquery/#static_context. */ typedef enum { XQC_ORDERED, XQC_UNORDERED } XQC_OrderingMode; /** * Default order for empty sequences as defined in * http://www.w3.org/TR/xquery/#static_context. */ typedef enum { XQC_EMPTY_GREATEST, XQC_EMPTY_LEAST } XQC_OrderEmptyMode; /** * Inherit part of the Copy-namespace mode as defined in * http://www.w3.org/TR/xquery/#static_context. */ typedef enum { XQC_INHERIT_NS, XQC_NO_INHERIT_NS } XQC_InheritMode; /** * Preserve part of the Copy-namespace mode as defined in * http://www.w3.org/TR/xquery/#static_context. */ typedef enum { XQC_PRESERVE_NS, XQC_NO_PRESERVE_NS } XQC_PreserveMode; /** * Boundary-space policy as defined in http://www.w3.org/TR/xquery/#static_context. */ typedef enum { XQC_PRESERVE_SPACE, XQC_STRIP_SPACE } XQC_BoundarySpaceMode; /** * Construction mode as defined in http://www.w3.org/TR/xquery/#static_context. */ typedef enum { XQC_PRESERVE_CONS, XQC_STRIP_CONS } XQC_ConstructionMode; /** * The ::XQC_StaticContext struct provides a way to specify values for the static context of the query to be * prepared. An ::XQC_StaticContext object is not thread-safe - threads should each use their own instance of a * ::XQC_StaticContext object. * * ::XQC_StaticContext objects are created by calling the XQC_Implementation::create_context() function. Once * created, the user is responsible for freeing the object by calling * the free() function. The ::XQC_StaticContext object should be freed before the ::XQC_Implementation object that * created it. */ struct XQC_StaticContext_s { /** * Creates a child context of the given static context. * A child context contains the same information as it's parent context but * it allows the user to override and add information. * The user is responsible for freeing the ::XQC_StaticContext object returned by calling * XQC_StaticContext::free(). * * \param context The XQC_StaticContext that this function pointer is a member of * \param[out] child_context The newly created XQC_StaticContext object which is * a child of the given context. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*create_child_context)(XQC_StaticContext *context, XQC_StaticContext **child_context); /** * Adds a (prefix, uri) pair to the set of statically known namespaces of * the given context. * * \param context The XQC_StaticContext that this function pointer is a member of * \param prefix The prefix of the namespace to add to the given XQC_StaticContext. * \param uri The uri of the namespace to add to the given XQC_StaticContext. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*declare_ns)(XQC_StaticContext *context, const char *prefix, const char *uri); /** * Returns the namespace uri that belongs to the given prefix. * * \param context The XQC_StaticContext that this function pointer is a member of * \param prefix The prefix of the namespace to add to the given XQC_StaticContext. * \param[out] result_ns The namespace uri of the namespace registered with the given prefix, * or 0 if none can be found. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*get_ns_by_prefix)(XQC_StaticContext *context, const char *prefix, const char **result_ns); /** * Sets the value of the default namespace for elements and types. * * \param context The XQC_StaticContext that this function pointer is a member of * \param uri The uri of the default element and type namespace to set in the given context. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*set_default_element_and_type_ns)(XQC_StaticContext *context, const char *uri); /** * * \param context The XQC_StaticContext that this function pointer is a member of * \param[out] uri The uri of the default element and type namespace that is set in the given context. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*get_default_element_and_type_ns)(XQC_StaticContext *context, const char **uri); /** * Sets the default namespace for functions. * * \param context The XQC_StaticContext that this function pointer is a member of * \param uri The uri of the default function namespace to set in the given context. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*set_default_function_ns)(XQC_StaticContext *context, const char *uri); /** * Returnsthe default namespace for functions set in this static context. * * \param context The XQC_StaticContext that this function pointer is a member of * \param[out] uri The uri of the default function namespace that is set in the given context. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*get_default_function_ns)(XQC_StaticContext *context, const char **uri); /** * Sets the XPath 1.0 compatibility mode to either XQC_XPATH1_0 or XQC_XPATH2_0. * * \param context The XQC_StaticContext that this function pointer is a member of * \param mode The XQC_XPath1Mode to set in the given context. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*set_xpath_compatib_mode)(XQC_StaticContext *context, XQC_XPath1Mode mode); /** * Returns the XPath 1.0 compatibility that is set in the given static context. * * \param context The XQC_StaticContext that this function pointer is a member of * \param[out] mode The XQC_XPath1Mode that is set in the given context. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*get_xpath_compatib_mode)(XQC_StaticContext *context, XQC_XPath1Mode* mode); /** * Sets the construction mode to either XQC_PRESERVE_CONS or XQC_StaticContext. * * \param context The XQC_StaticContext that this function pointer is a member of * \param mode The XQC_ConstructionMode to set in the given context. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*set_construction_mode)(XQC_StaticContext *context, XQC_ConstructionMode mode); /** * Returns the construction mode that is set in the given static context. * * \param context The XQC_StaticContext that this function pointer is a member of * \param[out] mode The XQC_ConstructionMode that is set in the given context. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*get_construction_mode)(XQC_StaticContext *context, XQC_ConstructionMode* mode); /** * Sets the ordering mode to either XQC_ORDERED or XQC_UNORDERED. * * \param context The XQC_StaticContext that this function pointer is a member of * \param mode The XQC_OrderingMode to set in the given context. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*set_ordering_mode)(XQC_StaticContext *context, XQC_OrderingMode mode); /** * Returns the ordering mode that is set in the given static context. * * \param context The XQC_StaticContext that this function pointer is a member of * \param[out] mode The XQC_OrderingMode that is set in the given context. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*get_ordering_mode)(XQC_StaticContext *context, XQC_OrderingMode* mode); /** * Sets the default order mode for empty sequences to either XQC_EMTPY_LEAST or * XQC_EMPTY_GREATEST * * \param context The XQC_StaticContext that this function pointer is a member of * \param mode The XQC_OrderEmptyMode to set in the given context. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*set_default_order_empty_sequences)(XQC_StaticContext *context, XQC_OrderEmptyMode mode); /** * Returns the default order mode for empty sequences that is set in the given * static context. * * \param context The XQC_StaticContext that this function pointer is a member of * \param[out] mode The XQC_OrderEmptyMode that is set in the given context. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*get_default_order_empty_sequences)(XQC_StaticContext *context, XQC_OrderEmptyMode* mode); /** * Sets the boundary space policy to either XQC_PRESERVE_SPACE or XQC_STRIP_SPACE. * * \param context The XQC_StaticContext that this function pointer is a member of * \param mode The XQC_BoundarySpaceMode to set in the given context. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*set_boundary_space_policy)(XQC_StaticContext *context, XQC_BoundarySpaceMode mode); /** * Returns the boundary space policy that is set in the given static context. * * \param context The XQC_StaticContext that this function pointer is a member of * \param[out] mode The XQC_BoundarySpaceMode that is set in the given context. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*get_boundary_space_policy)(XQC_StaticContext *context, XQC_BoundarySpaceMode* mode); /** * Sets the copy namespace mode which consists of the preserve and the inherit mode. * * \param context The XQC_StaticContext that this function pointer is a member of * \param preserve The XQC_PreserveMode to set in the given context. * \param inherit The XQC_InheritMode to set in the given context. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*set_copy_ns_mode)(XQC_StaticContext *context, XQC_PreserveMode preserve, XQC_InheritMode inherit); /** * Returns the copy namespace mode as a pair consisting of the preserve and the inherit * mode. * * \param context The XQC_StaticContext that this function pointer is a member of * \param[out] preserve The XQC_PreserveMode that is set in the given context. * \param[out] inherit The XQC_InheritMode that is set in the given context. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*get_copy_ns_mode)(XQC_StaticContext *context, XQC_PreserveMode* preserve, XQC_InheritMode* inherit); /** * Sets the base uri in the given static context. * * \param context The XQC_StaticContext that this function pointer is a member of * \param base_uri The base uri to set in the given context. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*set_base_uri)(XQC_StaticContext *context, const char *base_uri); /** * Returns the base uri that is set in the given static context. * * \param context The XQC_StaticContext that this function pointer is a member of * \param[out] base_uri The base uri that is set in the given context. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*get_base_uri)(XQC_StaticContext *context, const char **base_uri); XQC_Error (*set_error_handler)(XQC_StaticContext *context, XQC_ErrorHandler *handler); XQC_Error (*get_error_handler)(const XQC_StaticContext *context, XQC_ErrorHandler **handler); /** * Called to retrieve an implementation specific interface. * * \param context The XQC_StaticContext that this function pointer is a member of * \param name The name that identifies the interface to return * * \return A pointer to the interface, or 0 if the name is not recognized by this * implementation of XQC. */ void *(*get_interface)(const XQC_StaticContext *context, const char *name); /** * Called to free the resources associated with the XQC_StaticContext. * * \param context The XQC_StaticContext that this function pointer is a member of * */ void (*free)(XQC_StaticContext *context); }; /** * The ::XQC_Expression struct represents a prepared query, and allows the user to execute that query any * number of times. An ::XQC_Expression object is thread-safe and can be used by multiple threads of execution * at the same time. * * ::XQC_Expression objects are created by calling the XQC_Implementation::prepare(), XQC_Implementation::prepare_file() * and XQC_Implementation::prepare_stream() functions. Once created, the user is responsible for freeing the object * by calling the free() function. The ::XQC_Expression object should be freed before the ::XQC_Implementation object * that created it. * * \todo A way to serialize the query result * \todo event api? */ struct XQC_Expression_s { /** * Creates a dynamic context suitable for use in the execute() function. * The user is responsible for freeing the ::XQC_DynamicContext object returned by calling * XQC_DynamicContext::free(). * * \param expression The XQC_Expression that this function pointer is a member of. * \param[out] context The newly created XQC_DynamicContext object. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR */ XQC_Error (*create_context)(const XQC_Expression *expression, XQC_DynamicContext **context); /** * Executes the query represented by the XQC_Expression object using the values in the * ::XQC_DynamicContext if provided. An ::XQC_Sequence object is returned which can be used to * examine the results of the query execution. The user is responsible for freeing the * ::XQC_Sequence object returned by calling XQC_Sequence::free(). * * \param expression The XQC_Expression that this function pointer is a member of. * \param context The dynamic context information to use when executing the query, or 0 to * use the implementation defined default dynamic context. * \param[out] sequence The newly created XQC_Sequence object. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR * \retval ::XQC_TYPE_ERROR * \retval ::XQC_DYNAMIC_ERROR */ XQC_Error (*execute)(const XQC_Expression *expression, const XQC_DynamicContext *context, XQC_Sequence **sequence); /** * Called to retrieve an implementation specific interface. * * \param expression The XQC_Expression that this function pointer is a member of. * \param name The name that identifies the interface to return * * \return A pointer to the interface, or 0 if the name is not recognized by this * implementation of XQC. */ void *(*get_interface)(const XQC_Expression *expression, const char *name); /** * Called to free the resources associated with the XQC_Expression. * * \param expression The XQC_Expression that this function pointer is a member of * */ void (*free)(XQC_Expression *expression); }; struct XQC_DynamicContext_s { /** * Sets the external variable to the value given. The implementation takes ownership * of the XQC_Sequence passed in, and is responsible for freeing it. * * \param context The XQC_DynamicContext that this function pointer is a member of * \param uri The namespace URI of the external variable to set. * \param name The name of the external variable to set - this should be a valid lexical xs:QName. * If uri is 0 and name has a prefix, that prefix is resolved using the in-scope * namespace prefixes for the expression. * \param value The XQC_Sequence value for the variable, or 0 to remove the existing * binding for the variable. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR * * \todo What happens if the variable value is the wrong type? * \todo Do we allow the value to come from another implementation? */ XQC_Error (*set_variable)(XQC_DynamicContext *context, const char *uri, const char *name, XQC_Sequence *value); XQC_Error (*get_variable)(const XQC_DynamicContext *context, const char *uri, const char *name, XQC_Sequence **value); /** * Sets the context item to the current item of the XQC_Sequence given. The user remains * responsible for freeing the XQC_Sequence passed as the value - the XQC_Sequence must * not be freed until the XQC_DynamicContext has been freed or it's context item set to * a different value. * * \param context The XQC_DynamicContext that this function pointer is a member of * \param value The XQC_Sequence value for the context item, or 0 to remove the existing * context item value. * * \retval ::XQC_NO_ERROR * \retval ::XQC_INTERNAL_ERROR * \retval ::XQC_NO_CURRENT_ITEM if there is no current item in the value. * * \todo What happens if the context item value is the wrong type? * \todo Do we allow the value to come from another implementation? */ XQC_Error (*set_context_item)(XQC_DynamicContext *context, XQC_Sequence *value); XQC_Error (*get_context_item)(const XQC_DynamicContext *context, XQC_Sequence **value); /** * The timezone given must be between -840 and +840 minutes (-14 and +14 hours). * * \param timezone The implicit timezone to set, as an offset in minutes from GMT */ XQC_Error (*set_implicit_timezone)(XQC_DynamicContext *context, int timezone); XQC_Error (*get_implicit_timezone)(const XQC_DynamicContext *context, int *timezone); XQC_Error (*set_error_handler)(XQC_DynamicContext *context, XQC_ErrorHandler *handler); XQC_Error (*get_error_handler)(const XQC_DynamicContext *context, XQC_ErrorHandler **handler); /** * Called to retrieve an implementation specific interface. * * \param context The XQC_DynamicContext that this function pointer is a member of * \param name The name that identifies the interface to return * * \return A pointer to the interface, or 0 if the name is not recognized by this * implementation of XQC. */ void *(*get_interface)(const XQC_DynamicContext *context, const char *name); /** * Called to free the resources associated with the XQC_DynamicContext. * * \param context The XQC_DynamicContext that this function pointer is a member of * */ void (*free)(XQC_DynamicContext *context); }; /** * \todo other data model node accessors (typed value, parent, attributes, children)? * \todo accessor for the parts of an xs:QName ? * \todo serialize a node * \todo a way to concatenate two sequences? */ struct XQC_Sequence_s { /** * Moves the XQC_Sequence so that the current item is positioned at the next item in the sequence. * * \param sequence The XQC_Sequence that this function pointer is a member of * * \retval ::XQC_NO_ERROR when the call is successful * \retval ::XQC_END_OF_SEQUENCE when the end of the sequence is reached * \retval ::XQC_TYPE_ERROR * \retval ::XQC_DYNAMIC_ERROR */ XQC_Error (*next)(XQC_Sequence *sequence); /** * \name Functions on the current item * @{ */ /** * Returns an item type enumeration for the type of the current item. * * \param sequence The XQC_Sequence that this function pointer is a member of * \param[out] type the XQC_ItemType of the current item * * \retval ::XQC_NO_ERROR * \retval ::XQC_NO_CURRENT_ITEM if there is no current item, either because next() * has not been called yet, or because the end of the sequence has been reached. */ XQC_Error (*item_type)(const XQC_Sequence *sequence, XQC_ItemType *type); /** * Returns the type name for the current item as a (URI, localname) pair. * * \param sequence The XQC_Sequence that this function pointer is a member of * \param[out] uri The URI of the type of the current item. The memory for the string will be valid * until a subsequent call to XQC_Sequence::next(). * \param[out] name The localname of the type of the current item. The memory for the string will be valid * until a subsequent call to XQC_Sequence::next(). * * \retval ::XQC_NO_ERROR * \retval ::XQC_NO_CURRENT_ITEM if there is no current item, either because next() * has not been called yet, or because the end of the sequence has been reached. */ XQC_Error (*type_name)(const XQC_Sequence *sequence, const char **uri, const char **name); /** * Returns the string value of the current item in the sequence - this is equivalent to calling * fn:string() (http://www.w3.org/TR/xpath-functions/#func-string) on the current item. * This is available for all item types. * * \param sequence The XQC_Sequence that this function pointer is a member of * \param[out] value The string value of the current item. The memory for the string will be valid * until a subsequent call to XQC_Sequence::next(). * * \retval ::XQC_NO_ERROR * \retval ::XQC_NO_CURRENT_ITEM if there is no current item, either because next() * has not been called yet, or because the end of the sequence has been reached. */ XQC_Error (*string_value)(const XQC_Sequence *sequence, const char **value); /** * Returns the value of the current item in the sequence as an integer - this is equivalent to calling * fn:number() (http://www.w3.org/TR/xpath-functions/#func-number) on the current item, and * casting the result to an int. This is available for all item types. * * \param sequence The XQC_Sequence that this function pointer is a member of * \param[out] value The value of the current item as an int. * * \retval ::XQC_NO_ERROR * \retval ::XQC_NO_CURRENT_ITEM if there is no current item, either because next() * has not been called yet, or because the end of the sequence has been reached. */ XQC_Error (*integer_value)(const XQC_Sequence *sequence, int *value); /** * Returns the value of the current item in the sequence as a double - this is equivalent to calling * fn:number() (http://www.w3.org/TR/xpath-functions/#func-number) on the current item. * This is available for all item types. * * \param sequence The XQC_Sequence that this function pointer is a member of * \param[out] value The value of the current item as a double. * * \retval ::XQC_NO_ERROR * \retval ::XQC_NO_CURRENT_ITEM if there is no current item, either because next() * has not been called yet, or because the end of the sequence has been reached. */ XQC_Error (*double_value)(const XQC_Sequence *sequence, double *value); /** * Returns the name for the current node as a (URI, localname) pair. * * \param sequence The XQC_Sequence that this function pointer is a member of * \param[out] uri The URI of the name of the current node. The memory for the string will be valid * until a subsequent call to XQC_Sequence::next(). * \param[out] name The localname of the name of the current node. The memory for the string will be valid * until a subsequent call to XQC_Sequence::next(). * * \retval ::XQC_NO_ERROR * \retval ::XQC_NO_CURRENT_ITEM if there is no current item, either because next() * has not been called yet, or because the end of the sequence has been reached. * \retval ::XQC_NOT_NODE if the current item is not a node. */ XQC_Error (*node_name)(const XQC_Sequence *sequence, const char **uri, const char **name); /** @} */ /** * Called to retrieve an implementation specific interface. * * \param sequence The XQC_Sequence that this function pointer is a member of * \param name The name that identifies the interface to return * * \return A pointer to the interface, or 0 if the name is not recognized by this * implementation of XQC. */ void *(*get_interface)(const XQC_Sequence *sequence, const char *name); /** * Called to free the resources associated with the XQC_Sequence. * * \param sequence The XQC_Sequence that this function pointer is a member of * */ void (*free)(XQC_Sequence *sequence); }; #ifdef __cplusplus } #endif #endif XQilla-2.3.0/wintools/0000755000151400015140000000000011653572443011573 500000000000000XQilla-2.3.0/wintools/lib_paths.sed0000644000151400015140000000226011636377671014164 00000000000000# $Id$ # Default path for XQilla library, and paths to # Xerces # # # XQilla libraries are named: # xqilla{d}.{lib,dll,pdb} # e.g. # xqilla22.dll (release) or xqilla22d.dll (debug) # # Assume dependent libraries are in ../../../XXX_HOME, e.g. # ../../../xerces-c-src s!@XQILLA_STATIC_LIB@!@XQILLA_LIB@s!g s!@XQILLA_LIB@!@XQILLA_LIB_BASE@@XQILLA_VERSION_MAJOR@@XQILLA_VERSION_MINOR@!g s!@XQILLA_LIB_BASE@!xqilla!g s!@XQILLA_VERSION_MAJOR@!2!g s!@XQILLA_VERSION_MINOR@!3!g s!@XQILLA_VERSION_PATCH@!0!g # Xerces is assumed to be source (vs installation) s!@XERCES_LIBHOME@!@XERCES_WINHOME@/Build/Win32/VC6!g s!@XERCES_LIBHOME7@!@XERCES_WINHOME@/Build!g s!@XERCES_LIBHOME8@!@XERCES_WINHOME@/Build!g s!@XERCES_LIBHOME10@!@XERCES_WINHOME@/Build!g # Xerces-c is in ../../../xerces-c-src s!@XERCES_WINHOME@!../../../@XERCES_NAME@!g s!@XERCES_NAME@!xerces-c-src!g s!@XERCES_STATIC_LIB@!xerces-c_static_@XERCES_VERSION_MAJOR@!g s!@XERCES_LIB@!xerces-c_@XERCES_VERSION_MAJOR@!g s!@XERCES_DLL@!xerces-c_@XERCES_VERSION_MAJOR@_@XERCES_VERSION_MINOR@!g # Current Xerces version is 3.1.1 s!@XERCES_VERSION_MAJOR@!3!g s!@XERCES_VERSION_MINOR@!1!g s!@XERCES_VERSION_PATCH@!1!g XQilla-2.3.0/wintools/xqilla.template.xml0000644000151400015140000017373411636377671015367 00000000000000 7.10 8.00 10.0 ../../ ../../build/windows/VC7.1/ ../../build/windows/VC8/ ../../build/windows/VC10/ WIN32;_WINDOWS _DEBUG NDEBUG _USRDLL _CONSOLE _CRT_SECURE_NO_WARNINGS _LIB;XQILLA_API=;XERCES_STATIC_LIBRARY XQILLA_API=;XERCES_STATIC_LIBRARY= ../../include,../../src/lexer,@XERCES_WINHOME@/include,@XERCES_WINHOME@/src> @XQILLA_LIB@d @XQILLA_LIB@ @XQILLA_STATIC_LIB@d @XQILLA_STATIC_LIB@ $(OutDir) $(OutDir) $(OutDir) $(OutDir) @XERCES_LIB@d @XERCES_LIB@ @XERCES_STATIC_LIB@d @XERCES_STATIC_LIB@ @XERCES_LIBHOME7@/Win32/VC7.1/$(ConfigurationName) @XERCES_LIBHOME7@/Win32/VC7.1/$(ConfigurationName) @XERCES_LIBHOME7@/Win32/VC7.1/$(ConfigurationName) @XERCES_LIBHOME7@/Win32/VC7.1/$(ConfigurationName) @XERCES_LIBHOME8@/Win32/VC8/$(ConfigurationName) @XERCES_LIBHOME8@/Win32/VC8/$(ConfigurationName) @XERCES_LIBHOME8@/Win32/VC8/$(ConfigurationName) @XERCES_LIBHOME8@/Win32/VC8/$(ConfigurationName) @XERCES_LIBHOME10@/Win32/VC10/$(ConfigurationName) @XERCES_LIBHOME10@/Win32/VC10/$(ConfigurationName) @XERCES_LIBHOME10@/Win32/VC10/$(ConfigurationName) @XERCES_LIBHOME10@/Win32/VC10/$(ConfigurationName) @XERCES_LIBHOME8@/Win64/VC8/$(ConfigurationName) @XERCES_LIBHOME8@/Win64/VC8/$(ConfigurationName) @XERCES_LIBHOME8@/Win64/VC8/$(ConfigurationName) @XERCES_LIBHOME8@/Win64/VC8/$(ConfigurationName) @XERCES_LIBHOME10@/Win64/VC10/$(ConfigurationName) @XERCES_LIBHOME10@/Win64/VC10/$(ConfigurationName) @XERCES_LIBHOME10@/Win64/VC10/$(ConfigurationName) @XERCES_LIBHOME10@/Win64/VC10/$(ConfigurationName) library Static xerces all XQILLA_APIS XQILLA_APIS app Static xqilla xerces all app xqilla xerces all app xqilla xerces all app xqilla xerces all app xqilla xerces all app xqilla xerces all app xqilla xerces all app xqilla xerces all app xqilla xerces all app xqilla xerces all XQilla-2.3.0/wintools/s_projects0000755000151400015140000000400211636377671013617 00000000000000# # This script drives construction of Visual Studio (version 7.1) projects # files, using an xquery script (genproject.template),an input XML # document, and a file containing a list of project names. # # xml document input template CONFIG_INPUT=xqilla.template.xml # temporary xml document, post-sed-replacement CONFIG_OUTPUT=xqilla.xml # substitute some variables in the XML document template sed -f lib_paths.sed < $CONFIG_INPUT > $CONFIG_OUTPUT # find the xqilla command line tool XQILLA=`which xqilla` if [ ! -x "$XQILLA" ]; then XQILLA="../xqilla" fi if [ ! -x "$XQILLA" ]; then XQILLA="../build/xqilla" fi if [ ! -x "$XQILLA" ]; then echo "XQilla executable not found. Maybe you need to add it to the path?" exit 1 fi echo XQILLA = $XQILLA # generate the VC7.1 and VC8 project files # generate VC10 filter information for xqilla project $XQILLA -u genproject.xq -v projectFile "$CONFIG_OUTPUT" -v outputPath "../Win32Projects" $XQILLA -u xqilla.vs2010.xq -v projectFile "$CONFIG_OUTPUT" -v outputPath "../Win32Projects" $XQILLA -u xqilla.vs2010_filter.xq -v projectFile "$CONFIG_OUTPUT" -v outputPath "../Win32Projects" # Post process the VC7.1 files to put the "Name" attribute first, # since VC7.1 doesn't use a proper XML parser :-( for file in `ls ../Win32Projects/VC7.1/*.vcproj ../Win32Projects/VC8/*.vcproj` do # This only works if the start elements are always on a single line. # # attrs before "Name" attrs after "Name" # |-------| |-------| sed -i -e 's/<\([^/>][^> ]*\)\([^>]*\) Name="\([^"]*\)"\([^>]*\)>/<\1 Name="\3"\2\4>/' $file # |-------------| |-------| # element name value of "Name" attr done for file in `ls ../Win32Projects/VC10/*.vcxproj ../Win32Projects/VC10/*.vcxproj.filters` do sed '2,$s/xmlns="http:\/\/schemas.microsoft.com\/developer\/msbuild\/2003"//' $file > temp sed '1 i\ ' temp > temp2 rm -f temp mv temp2 $file done XQilla-2.3.0/wintools/s_win320000755000151400015140000000016311607013762012716 00000000000000#!/bin/sh # $Id$ # # s_projects requires that xqilla (the command line program) be in # your PATH sh ./s_projects XQilla-2.3.0/wintools/xqilla.vs2010_filter.xq0000644000151400015140000001102311636377671015662 00000000000000declare variable $projectFile external; declare variable $outputPath external; declare variable $msbversion := "4.0"; declare variable $vsversion := "VC10.0"; declare variable $sourcePath := doc($projectFile)/projects/variable[@name="sourcePath"]; declare function local:indent($n) { concat(" ",string-join(for $i in (1 to $n) return " ", "")) }; declare function local:windowsPath($path) as xs:string { translate($path,"/","\\") }; declare function local:getFilteredProjects() { doc($projectFile)/projects/project[@name="xqilla"] }; declare function local:getPlatforms($version) { if ($version eq "7.10") then ("Win32") else ("Win32", "x64", "IA64") }; declare function local:getOutputName($project, $vsversion) { let $vsname := if($vsversion = "VC7.10") then "VC7.1" else if($vsversion = "VC8.00") then "VC8" else "VC10" let $postfix := if($vsversion = "VC10.0") then ".vcxproj.filters" else ".vcproj.filters" return concat($outputPath, "/", $vsname, "/", $project/@name, $postfix) }; declare function local:genFilters($project){ for $filter in $project/files/filter let $name := $filter/@name let $guid := $filter/@guid return (local:indent(4), {local:indent(6)}{concat("{",$guid,"}")} {local:indent(4)}) }; declare function local:getFilterName($file){ data($file/../@name) }; declare function local:generateIncFiles($project) { for $file in $project/files//file return if (ends-with($file/@name,".h") or ends-with($file/@name,".hpp")) then (local:indent(4), {local:indent(6)}{local:getFilterName($file)} {local:indent(4)}) else () }; declare function local:getConfiguration($project) { for $compType in ("Debug", "Release") return for $config in $project/configuration return concat($config, $compType) }; declare function local:generateSrcFiles($project) { for $file in $project/files//file return if (ends-with($file/@name,".rc") or ends-with($file/@name,".def") or ends-with($file/@name,".h") or ends-with($file/@name,".hpp")) then () else (local:indent(4), {local:indent(6)}{local:getFilterName($file)} {local:indent(4)} ) }; declare function local:generateRCFiles($project) { for $file in $project/files//file return if (ends-with($file/@name,".rc")) then (local:indent(2), {local:indent(4)} {local:indent(6)}{local:getFilterName($file)} {for $platform in local:getPlatforms($vsversion) return for $config in local:getConfiguration($project) return( local:indent(6), {concat(if ($config="Debug") then "_DEBUG" else "NDEBUG",";","$(NoInherit))",";%(PreprocessorDefinitions)")}) } {local:indent(4)} {local:indent(2)} ) else () }; declare function local:genFiles($project){ local:indent(2), {local:generateIncFiles($project)} {local:indent(2)}, local:indent(2), {local:generateSrcFiles($project)} {local:indent(2)}, local:generateRCFiles($project) }; for $project in local:getFilteredProjects() return put( {local:indent(2)} {local:genFilters($project)} {local:indent(2)} {local:genFiles($project)} {local:indent(0)}, local:getOutputName($project,$vsversion) ) XQilla-2.3.0/wintools/README0000644000151400015140000000270011607013762012363 00000000000000This directory and the tools here are used to generate Windows project files for the main XQilla library and related projects. Both VC7.1 and VC8 files are generated. The latter can be opened using Visual Studio 2005 (8) and later releases as well. The process: 1. Source (including header) files are added to xqilla.template.xml. Be sure to update that file when files are added or removed from the project. 2. Run the script, s_win32, which calls the script s_projects to generate project files. These files land in ../Win32Projects/{VC7.1,VC8}. s_projects requires that the xqilla command line utility be in your PATH, because it uses XQuery and the input XML document (xqilla.template.xml) to generate the project files. The scripts must be run on a Unix-style machine, most likely, as they use bash and commands that are typically available on Unix. They *may* run under cygwin. DO NOT EVER manually edit the output project files (*.vcproj). If changes are required, edit the templates and scripts and generate the changed projects. Details: The s_projects script uses lib_paths.sed to substitute variables in xqilla.template.xml, substitutes the project name in the XQuery script, genproject.template, then calls the xqilla command passing the resulting script, which uses the XML document input to generate a specific project file. Todo: 1. Maybe generate Makefile.am from xqilla.template.xml as well (or vice versa). XQilla-2.3.0/wintools/genproject.xq0000644000151400015140000004141011636377671014234 00000000000000(: * IMPORTANT: this file is shared (identical) between the BDB XML and XQilla * projects. It should not be changed independently or in any way that makes * it project-dependent. * * TBD: * 1. Could drive the remaining variables, including Visual Studio * variables, off of the xml file and provide the XML input * file as an external variable to the query. E.g. some projects * may want to parameterize the optimization and warnings levels * 2. Generate AdditionalIncludeDirectories based on the elements for * projects rather than just including "all" :) declare variable $projectFile external; declare variable $outputPath external; declare variable $projectDoc := doc($projectFile); declare variable $sourcePath := $projectDoc/projects/variable[@name="sourcePath"]; (: Visual Studio Variables --relatively static :) declare variable $debugOptLevel := "0"; (: VS -- no optimization :) declare variable $releaseOptLevel := "2"; (: VS -- level 2 opt :) declare variable $warnLevel := "3"; (: VS warning level :) declare variable $appType := "1"; (: VS type 1 is a program :) declare variable $dllType := "2"; (: VS type 2 is a DLL :) declare variable $staticType := "4"; (: VS type 4 is a static lib :) declare variable $debugInfo := "3"; (: VS debug information format :) declare variable $libExtension := ".lib"; (: formatting :) declare function local:indent($n) { concat(" ",string-join(for $i in (1 to $n) return " ", "")) }; (: is it a DLL, Application, or static library? :) declare function local:configurationType($project, $config) { if ($project/type eq "library") then if (contains($config,"Static")) then $staticType else $dllType else if ($project/type eq "app") then $appType else error(QName("", "xqilla"),"configurationType: unknown project type") }; (: "normalize" Windows file paths :) declare function local:windowsPath($path) as xs:string { translate($path,"/","\\") }; (: debug vs release :) declare function local:isDebug($config) as xs:boolean { contains($config,"Debug") }; declare function local:isRelease($config) as xs:boolean { contains($config,"Release") }; (: machine-target-dependent link options :) declare function local:addLinkOptions($project, $platform, $config) { let $machine := if (contains($platform,"Win32")) then "/machine:x86" else concat("/machine:",$platform) let $opt := string-join(($machine,$project/options/link[contains(@config,$config)])," ") return if (not($opt eq "")) then attribute{"AdditionalOptions"}{$opt} else () }; declare function local:addDebugInformation($config) { attribute{"DebugInformationFormat"}{$debugInfo}, if (local:isDebug($config)) then attribute{"BasicRuntimeChecks"}{"3"} else () }; (: return "dll", "app", "static_lib", or "static_app" :) declare function local:getProjectType($project, $config) { if ($project/type eq "library") then if (contains($config,"Static")) then "static_lib" else "dll" else if ($project/type eq "app") then if (contains($config,"Static")) then "static_app" else "app" else error(QName("", "dbxml"),"getProjectType: unknown project type") }; declare function local:generateCompilerPreprocessorDefs($project, $config) { let $ptype := local:getProjectType($project,$config) let $generic := $projectDoc/projects/preprocessor[@config="all" or contains($config,@config)] let $genericType := $projectDoc/projects/preprocessor[@config=$ptype] let $proj := $project/preprocessor[@config="all" or contains(@config,$config)] let $projType := $project/preprocessor[@config=$ptype] return string-join(($generic,$genericType,$proj,$projType),";") }; (: declare function local:generateResourcePreprocessorDefs($config) { let $dbg := if (local:isDebug($config)) then "_DEBUG" else "NDEBUG" return concat($dbg,";_CRT_SECURE_NO_DEPRECATE=1") }; :) (: Optimization level :) declare function local:optLevel($config) { if (local:isDebug($config)) then $debugOptLevel else $releaseOptLevel }; (: MDd is 3, MD is 2, MTd is 1, MT is 0 :) declare function local:runtimeLibrary($config,$static as xs:boolean) { if (local:isDebug($config)) then if ($static) then "1" else"3" else if ($static) then "0" else"2" }; declare function local:getLibName($name, $config) { $projectDoc/projects/library[@name=$name]/libname[@config=$config] }; declare function local:makeStaticOutputFile($project, $config) { attribute{"OutputFile"} {concat("$(OutDir)/", local:getLibName($project/@name, $config),".lib") } }; declare function local:makeImportLibrary($project, $config) { if ($project/type eq "library" and not(contains($config,"Static"))) then attribute{"ImportLibrary"}{concat("$(OutDir)/", local:getLibName($project/@name, $config),".lib")} else () }; declare function local:makeModuleDefinition($project, $config) { if (not(empty($project/moddef))) then attribute{"ModuleDefinitionFile"}{local:windowsPath(concat($sourcePath,$project/moddef/@file))} else () }; declare function local:makeOutputPDBFile($project, $config) { attribute{"ProgramDatabaseFile"} { if ($project/type eq "library") then concat("$(OutDir)/", local:getLibName($project/@name, $config),".pdb") else concat("$(OutDir)/",if (not(empty($project/@outputpdb))) then $project/@outputpdb else $project/@name,".pdb") } }; declare function local:makeOutputFile($project, $config) { attribute{"OutputFile"} { if ($project/type eq "library") then concat("$(OutDir)/", local:getLibName($project/@name, $config), ".dll") else concat("$(OutDir)/",if (not(empty($project/@output))) then $project/@output else $project/@name,".exe") } }; (: The simple thing is to add all libraries for all projects :) declare function local:addLibraryDependencies($project,$config) { attribute{"AdditionalDependencies"}{string-join(for $dep in $project/depends return concat(local:getLibName($dep, $config),".lib")," ")} }; declare function local:makeLibraryDirectory($lib,$platform,$config,$vsversion) { for $dir in $lib/platform[contains(@name,$platform) and contains(@vsver,$vsversion)]/config[$config=./@type]/libdir return if (not(empty($lib/libbase[@vsver=$vsversion]))) then concat($lib/libbase[@vsver=$vsversion],"/", $dir) else $dir }; (: The simple thing is to add all libraries for all projects :) declare function local:addLibraryDirectories($project,$platform,$config,$vsversion) { attribute{"AdditionalLibraryDirectories"}{string-join(for $dep in $project/depends return local:makeLibraryDirectory($projectDoc/projects/library[@name=$dep],$platform,$config,$vsversion),";")} }; (: The simple thing is to add all libraries for all projects :) declare function local:addIncludeDirectories($project,$config) { let $incref := for $inc in $project/include[@type="ref"] return $projectDoc/projects/include[@name=$inc] let $increl := $project/include[@type="rel"] return attribute{"AdditionalIncludeDirectories"}{string-join(($incref,$increl),",")} }; (: look for project-specific tool, then a type-specific event :) declare function local:generatePostBuildEvent($project, $config) { local:indent(6), {attribute{"Name"}{"VCPostBuildEventTool"}} {if (not(empty($project/event[@name="postbuild"]))) then (attribute{"CommandLine"}{$project/event[@name="postbuild"]/command[@config=$config]}, attribute{"Description"}{$project/event[@name="postbuild"]/description}) else let $ev := $projectDoc/projects/event[@name="postbuild" and @type=$project/type] return if (not(empty($ev))) then (attribute{"CommandLine"}{replace($ev/command[@config=$config],"@pname@",if (not(empty($project/@output))) then $project/@output else $project/@name)}, attribute{"Description"}{$ev/description}) else () } }; declare function local:generateCustomBuildTool($project, $config) { local:indent(6), {attribute{"Name"}{"VCCustomBuildTool"}} {if (not(empty($project/event[@name="custom"]))) then (attribute{"CommandLine"}{$project/event[@name="custom"]/command[contains(@config,$config)]}, attribute{"Outputs"}{$project/event[@name="custom"]/output}) else ()} }; (: static build of libraries; at this time it does *not* add additional dependent libraries. This means that applications need to include them for the time being. :) declare function local:generateConfigLibrarian($project, $platform, $config) { local:indent(6), {attribute{"Name"}{"VCLibrarianTool"}} {local:addLinkOptions($project,$platform,$config)} {local:makeStaticOutputFile($project,$config)} }; declare function local:generateConfigLinkerAndMidl($project, $platform, $config, $vsversion) { local:indent(6), {attribute{"Name"}{"VCLinkerTool"}} {local:addLinkOptions($project, $platform, $config)} {local:addLibraryDependencies($project,$config)} {local:addLibraryDirectories($project,$platform,$config,$vsversion)} {local:makeOutputFile($project, $config)} {local:makeOutputPDBFile($project, $config)} {if (local:isDebug($config)) then attribute{"LinkIncremental"}{"2"} else attribute{"LinkIncremental"}{"1"}} {attribute{"GenerateDebugInformation"}{"TRUE"}} {attribute{"SuppressStartupBanner"}{"TRUE"}} {if (local:isDebug($config)) then attribute{"OptimizeReferences"}{"1"} else attribute{"OptimizeReferences"}{"2"}} {local:makeImportLibrary($project,$config)} {local:makeModuleDefinition($project,$config)} {attribute{"TargetMachine"}{"0"}} }; declare function local:generateConfigCompiler($project, $platform, $config, $static as xs:boolean, $vsversion) { local:indent(6), {attribute{"Name"}{"VCCLCompilerTool"}} {attribute{"Optimization"}{local:optLevel($config)}} {attribute{"MinimalRebuild"}{"TRUE"}} {if (local:isRelease($config)) then attribute{"InlineFunctionExpansion"}{"1"} else ()} {local:addIncludeDirectories($project,$config)} {attribute{"PreprocessorDefinitions"}{local:generateCompilerPreprocessorDefs($project, $config)}} {attribute{"StringPooling"}{"TRUE"}} {if (not(empty($project/options/rtti))) then attribute{"RuntimeTypeInfo"}{"TRUE"} else ()} {attribute{"RuntimeLibrary"}{local:runtimeLibrary($config,$static)}} {if (local:isRelease($config)) then attribute{"EnableFunctionLevelLinking"}{"TRUE"} else ()} {attribute{"UsePrecompiledHeader"}{"0"}} {if ($project/@name eq "dbxml") then attribute{"PrecompiledHeaderThrough"}{"DbXmlInternal.hpp"} else ()} {attribute{"PrecompiledHeaderFile"}{concat("./$(IntDir)/",$project/@name,".pch")}} {attribute{"AssemblerListingLocation"}{"./$(IntDir)/"}} {attribute{"ObjectFile"}{"./$(IntDir)/"}} {attribute{"WarningLevel"}{$warnLevel}} {if (not($vsversion eq "8.00") and not($project/options/nowp64)) then attribute{"Detect64BitPortabilityProblems"}{"TRUE"} else ()} {attribute{"SuppressStartupBanner"}{"TRUE"}} {local:addDebugInformation($config)} {attribute{"CompileAs"}{"0"}} }; declare function local:generateConfigBoilerplate($config) { local:indent(6),, local:indent(6),, local:indent(6),, local:indent(6),, local:indent(6),, local:indent(6), }; (: use "platform/configuration" :) declare function local:generateOutputDirectory($platform,$config,$vsversion) { let $outputBase := $projectDoc/projects/variable[@name=concat("outputBase.", $vsversion)] return attribute{"OutputDirectory"}{local:windowsPath(concat($outputBase,"$(PlatformName)","/",$config))} }; declare function local:generateConfig($project, $platform, $config, $vsversion) { local:indent(4), {attribute{"Name"}{concat($config,"|",$platform)}} {local:generateOutputDirectory($platform,$config,$vsversion)} {attribute{"IntermediateDirectory"}{concat("./$(OutDir)/",$project/@name)}} {attribute{"ConfigurationType"}{local:configurationType($project,$config)}} {attribute{"UseOfMFC"}{"0"}} {attribute{"ATLMinimizesCRunTimeLibraryUsage"}{"FALSE"}} {attribute{"CharacterSet"}{"2"}} {local:generateConfigBoilerplate($config)} {local:generateConfigCompiler($project, $platform, $config,false(),$vsversion)} {local:generateConfigLinkerAndMidl($project, $platform, $config, $vsversion)} {local:generatePostBuildEvent($project,if (local:isDebug($config)) then "Debug" else "Release")} {local:generateCustomBuildTool($project,if (local:isDebug($config)) then "Debug" else "Release")} }; declare function local:generateStaticConfig($project, $platform, $config, $vsversion) { local:indent(4), {attribute{"Name"}{concat($config,"|",$platform)}} {local:generateOutputDirectory($platform,$config,$vsversion)} {attribute{"IntermediateDirectory"}{concat("./$(OutDir)/",$project/@name)}} {attribute{"ConfigurationType"}{local:configurationType($project,$config)}} {attribute{"UseOfMFC"}{"0"}} {attribute{"ATLMinimizesCRunTimeLibraryUsage"}{"FALSE"}} {attribute{"CharacterSet"}{"2"}} {local:generateConfigBoilerplate($config)} {local:generateConfigCompiler($project, $platform, $config,true(),$vsversion)} {if (contains($project/type,"lib")) then local:generateConfigLibrarian($project, $platform, $config) else local:generateConfigLinkerAndMidl($project, $platform, $config, $vsversion) } }; declare function local:generateRcFile($file, $vsversion) { local:indent(4), { for $platform in local:getPlatforms($vsversion) return for $config in ("Debug","Release") return (local:indent(6), {local:indent(6)}) } {local:indent(4)} }; declare function local:generateFilesNoFilter($project, $vsversion) { for $file in $project/files/file return if (ends-with($file/@name,".rc")) then local:generateRcFile($file, $vsversion) else (local:indent(4),) }; declare function local:generateFilesWithFilter($project,$filter,$vsversion) { for $file in $project/files/filter[@name=$filter]/file return if (ends-with($file/@name,".rc")) then local:generateRcFile($file, $vsversion) else (local:indent(6),) }; declare function local:generateFiles($project, $vsversion) { let $filters := $project/files/filter/@name return if (empty($filters)) then local:generateFilesNoFilter($project, $vsversion) else for $filter in $filters return (local:indent(4), {local:generateFilesWithFilter($project,$filter,$vsversion)} {local:indent(4)}) }; declare function local:getGuid($project) { concat("{",$project/@guid,"}") }; declare function local:getPlatforms($version) { if ($version eq "7.10") then ("Win32") else ("Win32", "x64", "IA64") }; declare function local:getOutputName($project, $vsversion) { let $vsname := if($vsversion = "7.10") then "VC7.1" else "VC8" return concat($outputPath, "/", $vsname, "/", $project/@name, ".vcproj") }; declare function local:getConfigurations($project) { for $compType in ("Debug","Release") return for $config in $project/configuration return concat($config,$compType) }; for $vsversion in distinct-values($projectDoc//visualstudioversion) for $project in $projectDoc/projects/project let $static := contains($project/@name,"static") let $proj := $project return if ($vsversion = "10.0") then () else ( put( {local:indent(2)} {local:indent(4)} {local:indent(4)} {local:indent(4)} {local:indent(2)} {local:indent(2)} { for $platform in local:getPlatforms($vsversion) return for $config in local:getConfigurations($proj) return if (contains($config, "Static")) then local:generateStaticConfig($project, $platform, $config, $vsversion) else local:generateConfig($project, $platform, $config, $vsversion) } {local:indent(2)} {local:indent(2)} {local:indent(2)} {local:generateFiles($proj, $vsversion)} {local:indent(2)} {local:indent(2)} {" "}, local:getOutputName($project, $vsversion)) ) XQilla-2.3.0/wintools/xqilla.vs2010.xq0000644000151400015140000005675711636377671014344 00000000000000(:declare default element namespace "http://schemas.microsoft.com/developer/msbuild/2003";:) declare variable $projectFile external; declare variable $outputPath external; declare variable $xmlversion := "1.0"; declare variable $xmlencoding := "utf-8"; declare variable $msbversion := "4.0"; declare variable $msbnamespace := "http://schemas.microsoft.com/developer/msbuild/2003"; declare variable $msbdefprops := '$(VCTargetsPath)\Microsoft.Cpp.Default.props'; declare variable $msbprops := '$(VCTargetsPath)\Microsoft.Cpp.props'; declare variable $msbtargets := "$(VCTargetsPath)\Microsoft.Cpp.targets"; declare variable $mobile := xs:boolean(doc($projectFile)/projects/variable[@name="mobile"]); declare variable $debugOptLevel := "Disabled"; declare variable $releaseOptLevel := "MaxSpeed"; declare variable $warnLevel := "Level3"; declare variable $debugInfo := "ProgramDatabase"; declare variable $sourcePath := doc($projectFile)/projects/variable[@name="sourcePath"]; declare variable $outputBase := doc($projectFile)/projects/variable[@name="outputBase.10.0"]; declare variable $dllType := "dll"; declare variable $appType := "Application"; declare variable $libprop := "library.props"; declare function local:genImportProperty($libprop) { local:indent(2), {local:indent(4)} local:indent(2) }; declare function local:indent($n) { concat(" ",string-join(for $i in (1 to $n) return " ", "")) }; declare function local:getPlatforms($version) { if ($version eq "7.10") then ("Win32") else ("Win32", "x64", "IA64") }; declare function local:getGuid($project) { concat("{",$project/@guid,"}") }; declare function local:generateProjectConfigurations($project, $vsversion) { local:indent(2), {for $config in local:getConfiguration($project) return for $platform in local:getPlatforms($vsversion) return (local:indent(4), {local:indent(6)}{$config} {local:indent(6)}{$platform} {local:indent(4)}) } {local:indent(2)} }; declare function local:generateGlobalProperty($project) { local:indent(2), {local:indent(2)}{local:getGuid($project)} {local:indent(2)} }; declare function local:configurationType($project, $config) { if ($project/type eq "library") then if (contains($config,"Static")) then "StaticLibrary" else "DynamicLibrary" else if ($project/type eq "app") then "Application" else error(QName("","xqilla"),"configurationType:unkown project type") }; declare function local:generateConfigurations($project, $vsversion) { for $platform in local:getPlatforms($vsversion) return for $config in local:getConfiguration($project) let $configType := local:configurationType($project,$config) return (local:indent(2), {local:indent(4)}{$configType} {local:indent(4)}false {local:indent(4)}MultiByte {local:indent(2)} ) }; declare function local:genExtensionSettings() { local:indent(2), {local:indent(2)} }; declare function local:genExtensionTargets() { local:indent(2), {local:indent(2)} }; declare variable $msbuserprops := "$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"; declare variable $msbuserpropsexit := "exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"; declare function local:genPropertySheets($project, $vsversion) { for $platform in local:getPlatforms($vsversion) return for $config in local:getConfiguration($project) return (local:indent(2), {local:indent(4)} {local:indent(4)} ) }; declare function local:windowsPath($path) as xs:string { translate($path,"/","\\") }; declare function local:generateOutDir($config) { local:windowsPath(concat($outputBase, "$(Platform)", "/", $config, "/")) }; (:becaues zlib has different 32 and 64 bits platform libraries, so use another getLibName:) declare function local:getLibName($name, $config) { doc($projectFile)/projects/library[@name=$name]/libname[@config=$config and not(@platform eq "x64")]/text() }; declare function local:getLibNameWithPlatform($name, $config, $platform) { let $libnamePlatform := doc($projectFile)/projects/library[@name=$name]/libname[@config=$config and @platform=$platform]/text() let $libname := doc($projectFile)/projects/library[@name=$name]/libname[@config=$config and not(@platform)]/text() return if ($libnamePlatform) then ($libnamePlatform) else ($libname) }; declare function local:genMacros($project, $vsversion) { local:genDynamicMacros($project, $vsversion) }; declare function local:genTargetName($project,$config) { if ($project/type eq "library") then local:getLibName($project/@name, $config) else if (not(empty($project/@output))) then data($project/@output) else data($project/@name) }; declare function local:genTargetExt($project, $config) { if ($project/type eq "library") then if (contains($config, "Static")) then ".lib" else ".dll" else ".exe" }; (: no static variable usage now :) declare function local:genDynamicMacros($project, $vsversion) { local:indent(2), {local:indent(4)}<_ProjectFileVersion>10.0.30319.1 {for $platform in local:getPlatforms($vsversion) return for $config in local:getConfiguration($project) return (local:indent(4), {local:generateOutDir($config)}, local:indent(4), {concat("./$(OutDir)",$project/@name,"\")}, local:indent(4),false, local:indent(4),{local:genTargetName($project,$config)}, local:indent(4),{local:genTargetExt($project, $config)} ) } {local:indent(2)} }; declare function local:isDebug($config) as xs:boolean { contains($config,"Debug") }; declare function local:isRelease($config) as xs:boolean { contains($config,"Release") }; declare function local:optLevel($config) { if (local:isDebug($config)) then $debugOptLevel else $releaseOptLevel }; declare function local:addIncludeDirectories($project,$config) { let $incref := for $inc in $project/include[@type="ref"] return doc($projectFile)/projects/include[@name=$inc] let $increl := $project/include[@type="rel"] return translate(concat(string-join($incref,";"), if (not(empty($increl)) and not(empty($incref))) then ";" else "", string-join($increl,";"),";","%(AdditionalIncludeDirectories)"),",",";") }; declare function local:getProjectType($project, $config) { if ($project/type eq "library") then if (contains($config,"Static")) then "static_lib" else "dll" else if ($project/type eq "app") then if (contains($config,"Static")) then "static_app" else "app" else error(QName("","dbxml"),"getProjectType:unkown project type") }; declare function local:generateCompilerPreprocessorDefs($project,$config) { let $ptype := local:getProjectType($project, $config) let $generic := doc($projectFile)/projects/preprocessor[@config="all" or contains($config,@config)] let $type := doc($projectFile)/projects/preprocessor[@config=$ptype] let $proj := $project/preprocessor[@config="all" or @config=$config] let $projType := $project/preprocessor[@config=$ptype] return concat(string-join(($generic,$type,$proj,$projType),";"),";","%(PreprocessorDefinitions)") }; declare function local:runtimeLibrary($config) { if (local:isDebug($config)) then if (contains($config,"Static")) then "MultiThreadedDebug" else "MultiThreadedDebugDLL" else if (contains($config,"Static")) then "MultiThreaded" else "MultiThreadedDLL" }; declare function local:makeObjectFile($project,$config) { concat("$(OutDir)", if (not(empty($project/@output))) then $project/@output else $project/@name,"/") }; declare function local:addDebugInformation($config) { local:indent(6),{$debugInfo}, if (local:isDebug($config)) then (local:indent(6),EnableFastChecks) else () }; declare function local:addLinkOptions($project, $platform, $config) { let $machine := if (contains($platform,"Win32")) then "/machine:x86" else concat("/machine:",$platform) let $opt := string-join(($machine,$project/options/link[contains(@config,$config)])," ") return if (not($opt eq " ")) then (local:indent(6),{string-join(($opt,"%(AdditionalOptions)")," ")} ) else () }; declare function local:addLibraryDependencies($project,$config,$platform) { string-join(for $dep in $project/depends return concat(local:getLibNameWithPlatform($dep,$config,$platform),".lib"), ";") }; declare function local:addProjectDependencies($project) { for $mydep in $project/references let $mytemp := ( if ($mydep eq "XercesLib") then '{152CE948-F659-4206-A50A-1D2B9658EF96}' else if ($mydep eq "xqilla") then '{63E85107-41E0-4FC7-8083-40E85861B426}' else lower-case(concat("{",doc($projectFile)/projects/project[@name=$mydep]/@guid,"}")) ) return (local:indent(4), {local:indent(6)}{$mytemp} {local:indent(6)}false {local:indent(4)}) }; declare function local:makeLibraryDirectory($lib,$platform,$config, $vsversion) { for $dir in $lib/platform[contains(@name,$platform)]/config[$config=./@type]/libdir return if (not(empty($lib/libbase[@vsver=$vsversion]))) then concat($lib/libbase[@vsver=$vsversion],"/",$dir) else $dir }; declare function local:addLibraryDirectories($project, $platform, $config, $vsversion) { string-join((for $dep in $project/depends return local:makeLibraryDirectory(doc($projectFile)/projects/library[@name=$dep],$platform,$config, $vsversion),"../lib"),";") }; declare function local:makeOutputPDBFile($project,$config) { if ($project/type eq "library") then concat("$(OutDir)",local:getLibName($project/@name,$config),".pdb") else concat("$(OutDir)",if (not(empty($project/@output))) then $project/@output else $project/@name,".pdb") }; declare function local:makeImportLibrary($project,$config) { if ($project/type eq "library" and not(contains($config,"Static"))) then (local:indent(6),{concat("$(OutDir)",local:getLibName($project/@name,$config),".lib")}) else () }; declare function local:makeModuleDefinition($project,$config) { if (not(empty($project/moddef))) then let $temp := concat($sourcePath,$project/moddef/@file) return (local:indent(6),{local:windowsPath($temp)}) else () }; declare function local:generateCustomBuildTool($project,$config) { if (not(empty($project/event[@name="custom"]))) then let $commandtext := $project/event[@name="custom"]/command[contains(@config,$config)]/text() let $outputs := concat($project/event[@name="custom"]/output,";%(Outputs)") return ( local:indent(4), {local:indent(6)}{$commandtext} {local:indent(6)}{$outputs} {local:indent(4)}) else if (not(empty($project/event[@name="postbuild"]))) then let $commandtext := $project/event[@name="postbuild"]/command[contains(@config,$config)]/text() let $message := $project/event[@name="postbuild"]/description return ( local:indent(4), {local:indent(6)}{$commandtext} {local:indent(6)}{$message} {local:indent(4)}) else () }; declare function local:genDefinition($project,$vsversion) { local:genDynamicDefinition($project,$vsversion) }; declare function local:generateConfigCompiler($project,$platform,$config) { local:indent(4), {local:indent(6)}{local:optLevel($config)} {local:indent(6)}true {if (local:isRelease($config)) then (local:indent(6),OnlyExplicitInline) else ()} {local:indent(6)}{local:addIncludeDirectories($project,$config)} {local:indent(6)}{local:generateCompilerPreprocessorDefs($project,$config)} {local:indent(6)}true {local:indent(6)}{local:runtimeLibrary($config)} {if (local:isRelease($config)) then (local:indent(6),true) else ()} {local:indent(6)} {local:indent(6)} {local:indent(6)}{concat("./$(OutDir)", $project/@name, ".pch")} {local:indent(6)}{local:makeObjectFile($project,$config)} {local:indent(6)}{local:makeObjectFile($project,$config)} {local:indent(6)}{$warnLevel} {local:indent(6)}true {local:addDebugInformation($config)} {local:indent(6)}Default {local:indent(4)} }; declare function local:generateDynamicLink($project, $platform, $config, $vsversion) { local:indent(4), {local:addLinkOptions($project,$platform,$config)} {local:indent(6)}{local:addLibraryDependencies($project,$config,$platform)};%(AdditionalDependencies) {local:indent(6)}{local:addLibraryDirectories($project,$platform,$config,$vsversion)};%(AdditionalLibraryDirectories) {local:indent(6)}$(OutDir)$(TargetName)$(TargetExt) {local:indent(6)}{local:makeOutputPDBFile($project,$config)} {local:indent(6)}true {local:indent(6)}true {local:makeImportLibrary($project,$config)} {local:indent(6)}true {local:makeModuleDefinition($project,$config)} {local:indent(6)}{if (contains($platform,"(ARMV4)")) then "MachineARM" else "NotSet"} {local:indent(4)} }; declare function local:generateConfigLibrarian($project,$platform,$config) { local:indent(4), {local:indent(6)}$(OutDir)$(TargetName)$(TargetExt) {local:addLinkOptions($project,$platform,$config)} {local:indent(4)} }; declare function local:generateStaticLink($project,$platform,$config,$vsversion) { if (contains($project/type,"lib")) then local:generateConfigLibrarian($project,$platform,$config) else local:generateDynamicLink($project,$platform,$config, $vsversion) }; declare function local:genDynamicDefinition($project,$vsversion) { for $platform in local:getPlatforms($vsversion) return for $config in local:getConfiguration($project) let $static := contains($config, "Static") return ( local:indent(2), {local:generateConfigCompiler($project,$platform,$config)} {if ($static) then local:generateStaticLink($project,$platform,$config, $vsversion) else local:generateDynamicLink($project,$platform,$config,$vsversion)} {local:generateCustomBuildTool($project,$config)} {local:indent(2)} ) }; declare function local:genStaticDefinition($project, $vsversion) { for $platform in local:getPlatforms($vsversion) return for $config in local:getConfiguration($project) return ( local:indent(2), {local:generateConfigCompiler($project,$platform,$config)} {local:generateStaticLink($project,$platform,$config,$vsversion)} {local:generateCustomBuildTool($project,$config)} {local:indent(2)} ) }; declare function local:generateIncFilesNoFilter($project) { for $file in $project/files//file return if (ends-with($file/@name,".h") or ends-with($file/@name,".hpp")) then (local:indent(4),) else () }; declare function local:generateSrcFilesNoFilter($project) { for $file in $project/files//file return if (ends-with($file/@name,".rc") or ends-with($file/@name,".def") or ends-with($file/@name,".h") or ends-with($file/@name,".hpp")) then () else (local:indent(4),) }; declare function local:generateRcFilesNoFilter($project, $vsversion) { for $file in $project/files//file return if (ends-with($file/@name,".rc")) then (local:indent(2), {local:indent(4)} {for $platform in local:getPlatforms($vsversion) return for $config in local:getConfiguration($project) return( local:indent(6), {concat(if ($config="Debug") then "_DEBUG" else "NDEBUG",";","$(NoInherit))",";%(PreprocessorDefinitions)")}) } {local:indent(4)} {local:indent(2)} ) else () }; declare function local:generateDefFilesNoFilter($project) { for $file in $project/files//file return if (ends-with($file/@name,".def")) then ( local:indent(2), {local:indent(4)} {local:indent(2)} ) else () }; declare function local:generateFilesWithFilter($project,$filter) { }; declare function local:genFiles($project,$vsversion) { local:indent(2), {local:generateIncFilesNoFilter($project)} {local:indent(2)}, local:indent(2), {local:generateSrcFilesNoFilter($project)} {local:indent(2)}, local:generateDefFilesNoFilter($project), local:generateRcFilesNoFilter($project,$vsversion) }; declare function local:getConfiguration($project) { for $compType in ("Debug", "Release") return for $config in $project/configuration return concat($config, $compType) }; declare function local:getOutputName($project, $vsversion) { let $vsname := if($vsversion = "7.10") then "VC7.1" else if($vsversion = "8.00") then "VC8" else "VC10" let $postfix := if($vsversion = "10.0") then ".vcxproj" else ".vcproj" return concat($outputPath, "/", $vsname, "/", $project/@name, $postfix) }; declare function local:getVsversion() { (: Only be suitable when version >= 10.0 :) distinct-values(doc($projectFile)//visualstudioversion[fn:number(.) >= 10.0]) }; declare function local:getProjects() { doc($projectFile)/projects/project }; for $vsversion in local:getVsversion() for $project in local:getProjects() return put( {local:generateProjectConfigurations($project, $vsversion)} {local:generateGlobalProperty($project)} {local:indent(2)} {local:generateConfigurations($project, $vsversion)} {local:indent(2)} {local:genExtensionSettings()} {local:genPropertySheets($project, $vsversion)} {local:indent(2)} {local:genMacros($project, $vsversion)} {local:genDefinition($project,$vsversion)} {local:genFiles($project,$vsversion)} {local:indent(2)} {local:genExtensionTargets()} {local:indent(2)} {local:addProjectDependencies($project)} {local:indent(2)} {local:indent(0)}, local:getOutputName($project, $vsversion)) XQilla-2.3.0/docs/0000755000151400015140000000000011653572443010645 500000000000000XQilla-2.3.0/docs/dom3_header.html0000644000151400015140000000100411571227106013610 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo XQilla-2.3.0/docs/Doxyfile.devapi.in0000644000151400015140000011700711571227106014145 00000000000000# Doxyfile 1.2.18 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project # # All text after a hash (#) is considered a comment and will be ignored # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" ") #--------------------------------------------------------------------------- # General configuration options #--------------------------------------------------------------------------- # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = "XQilla Development API" # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = 1.0 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = . # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch, # Finnish, French, German, Greek, Hungarian, Italian, Japanese, Japanese-en # (Japanese with english messages), Korean, Norwegian, Polish, Portuguese, # Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish and Ukrainian. OUTPUT_LANGUAGE = English # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = YES # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = YES # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = YES # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = YES # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these class will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all # friend (class|struct|union) declarations. # If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = YES # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited # members of a class in the documentation of that class as if those members were # ordinary class members. Constructors, destructors and assignment operators of # the base classes will not be shown. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = NO # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. It is allowed to use relative paths in the argument list. STRIP_FROM_PATH = # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = YES # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower case letters. If set to YES upper case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # users are adviced to set this option to NO. CASE_SENSE_NAMES = YES # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful is your file systems # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = YES # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like the Qt-style comments (thus requiring an # explict @brief command for a brief description. JAVADOC_AUTOBRIEF = YES # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. # The new default is to treat a multi-line C++ comment block as a detailed # description. Set this tag to YES if you prefer the old behaviour instead. MULTILINE_CPP_IS_BRIEF = NO # If the DETAILS_AT_TOP tag is set to YES then Doxygen # will output the detailed description near the top, like JavaDoc. # If set to NO, the detailed description appears after the member # documentation. DETAILS_AT_TOP = NO # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # reimplements. INHERIT_DOCS = YES # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 8 # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or # disable (NO) the deprecated list. This list is created by putting \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST= YES # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or define consist of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and defines in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources # only. Doxygen will then generate output that is more tailored for C. # For instance some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = NO # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources # only. Doxygen will then generate output that is more tailored for Java. # For instance namespaces will be presented as packages, qualified scopes # will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = YES # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = \ ../include/xqilla/ \ %xerces_include%/xercesc/framework/MemoryManager.hpp \ %xerces_include%/xercesc/util/XMemory.hpp \ %xerces_include%/xercesc/dom/DOMNode.hpp \ %xerces_include%/xercesc/dom/DOMDocument.hpp \ %xerces_include%/xercesc/dom/DOMXPathNSResolver.hpp \ %xerces_include%/xercesc/util/XMLEntityResolver.hpp \ %xerces_include%/xercesc/util/PlatformUtils.hpp \ %xerces_include%/xercesc/sax/InputSource.hpp \ %xerces_include%/xercesc/framework/LocalFileInputSource.hpp \ %xerces_include%/xercesc/framework/MemBufInputSource.hpp \ %xerces_include%/xercesc/framework/StdInInputSource.hpp \ %xerces_include%/xercesc/framework/URLInputSource.hpp \ %xerces_include%/xercesc/framework/LocalFileFormatTarget.hpp \ %xerces_include%/xercesc/framework/MemBufFormatTarget.hpp \ %xerces_include%/xercesc/framework/StdOutFormatTarget.hpp \ %xerces_include%/xercesc/framework/XMLFormatter.hpp # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp # *.h++ *.idl *.odl FILE_PATTERNS = # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = YES # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories # that are symbolic links (a Unix filesystem feature) are excluded from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. EXCLUDE_PATTERNS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command , where # is the value of the INPUT_FILTER tag, and is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. INPUT_FILTER = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. SOURCE_BROWSER = NO # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # If the REFERENCED_BY_RELATION tag is set to YES (the default) # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = YES # If the REFERENCES_RELATION tag is set to YES (the default) # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = YES # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 3 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = dev-api # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet HTML_STYLESHEET = # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = YES # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compressed HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output dir. CHM_FILE = # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can # be used to specify the location (absolute path including file name) of # the HTML help compiler (hhc.exe). If non empty doxygen will try to run # the html help compiler on the generated index.hhp. HHC_LOCATION = # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the Html help documentation and to the tree view. TOC_EXPAND = NO # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. ENUM_VALUES_PER_LINE = 4 # If the GENERATE_TREEVIEW tag is set to YES, a side panel will be # generated containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript and frames is required (for instance Mozilla, Netscape 4.0+, # or Internet explorer 4.0+). Note that for large projects the tree generation # can take a very long time. In such cases it is better to disable this feature. # Windows users are probably better off using the HTML help feature. GENERATE_TREEVIEW = NO # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = NO # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be invoked. If left blank `latex' will be used as the default command name. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4wide # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = NO # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = NO # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimised for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = NO # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = rtf # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assigments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_XML = NO # The XML_SCHEMA tag can be used to specify an XML schema, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_DTD = #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will # generate an AutoGen Definitions (see autogen.sf.net) file # that captures the structure of the code including all # documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = YES # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_PREDEFINED tags. EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = ../include # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. PREDEFINED = \ XERCES_CPP_NAMESPACE_QUALIFIER=xercesc:: \ XERCES_CPP_NAMESPACE_BEGIN="namespace xercesc {" \ XERCES_CPP_NAMESPACE_END="};" # If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all function-like macros that are alone # on a line, have an all uppercase name, and do not end with a semicolon. Such # function macros are typically used for boiler-plate code, and will confuse the # parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::addtions related to external references #--------------------------------------------------------------------------- # The TAGFILES tag can be used to specify one or more tagfiles. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in Html, RTF and LaTeX) for classes with base or # super classes. Setting the tag to NO turns the diagrams off. Note that this # option is superceded by the HAVE_DOT option below. This is only a fallback. It is # recommended to install and use dot, since it yield more powerful graphs. CLASS_DIAGRAMS = YES # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = YES # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = YES # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, jpg, or gif # If left blank png will be used. DOT_IMAGE_FORMAT = png # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found on the path. DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). DOTFILE_DIRS = # The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width # (in pixels) of the graphs generated by dot. If a graph becomes larger than # this value, doxygen will try to truncate the graph, so that it fits within # the specified constraint. Beware that most browsers cannot cope with very # large images. MAX_DOT_GRAPH_WIDTH = 1024 # The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height # (in pixels) of the graphs generated by dot. If a graph becomes larger than # this value, doxygen will try to truncate the graph, so that it fits within # the specified constraint. Beware that most browsers cannot cope with very # large images. MAX_DOT_GRAPH_HEIGHT = 1024 # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermedate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES #--------------------------------------------------------------------------- # Configuration::addtions related to the search engine #--------------------------------------------------------------------------- # The SEARCHENGINE tag specifies whether or not a search engine should be # used. If set to NO the values of all tags below this one will be ignored. SEARCHENGINE = NO # The CGI_NAME tag should be the name of the CGI script that # starts the search engine (doxysearch) with the correct parameters. # A script with this name will be generated by doxygen. CGI_NAME = search.cgi # The CGI_URL tag should be the absolute URL to the directory where the # cgi binaries are located. See the documentation of your http daemon for # details. CGI_URL = # The DOC_URL tag should be the absolute URL to the directory where the # documentation is located. If left blank the absolute path to the # documentation, with file:// prepended to it, will be used. DOC_URL = # The DOC_ABSPATH tag should be the absolute path to the directory where the # documentation is located. If left blank the directory on the local machine # will be used. DOC_ABSPATH = # The BIN_ABSPATH tag must point to the directory where the doxysearch binary # is installed. BIN_ABSPATH = /usr/local/bin/ # The EXT_DOC_PATHS tag can be used to specify one or more paths to # documentation generated for other projects. This allows doxysearch to search # the documentation for these projects as well. EXT_DOC_PATHS = XQilla-2.3.0/docs/Doxyfile.simpleapi.in0000644000151400015140000012154611571227106014663 00000000000000# Doxyfile 1.2.18 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project # # All text after a hash (#) is considered a comment and will be ignored # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" ") #--------------------------------------------------------------------------- # General configuration options #--------------------------------------------------------------------------- # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = "XQilla Simple API" # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = %version% # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = . # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch, # Finnish, French, German, Greek, Hungarian, Italian, Japanese, Japanese-en # (Japanese with english messages), Korean, Norwegian, Polish, Portuguese, # Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish and Ukrainian. OUTPUT_LANGUAGE = English # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = YES # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = NO # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = YES # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = YES # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these class will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all # friend (class|struct|union) declarations. # If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = YES # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited # members of a class in the documentation of that class as if those members were # ordinary class members. Constructors, destructors and assignment operators of # the base classes will not be shown. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = NO # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. It is allowed to use relative paths in the argument list. STRIP_FROM_PATH = # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = YES # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower case letters. If set to YES upper case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # users are adviced to set this option to NO. CASE_SENSE_NAMES = YES # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful is your file systems # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = YES # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like the Qt-style comments (thus requiring an # explict @brief command for a brief description. JAVADOC_AUTOBRIEF = YES # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. # The new default is to treat a multi-line C++ comment block as a detailed # description. Set this tag to YES if you prefer the old behaviour instead. MULTILINE_CPP_IS_BRIEF = NO # If the DETAILS_AT_TOP tag is set to YES then Doxygen # will output the detailed description near the top, like JavaDoc. # If set to NO, the detailed description appears after the member # documentation. DETAILS_AT_TOP = NO # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # reimplements. INHERIT_DOCS = YES # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 8 # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or # disable (NO) the deprecated list. This list is created by putting \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST= YES # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or define consist of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and defines in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources # only. Doxygen will then generate output that is more tailored for C. # For instance some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = NO # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources # only. Doxygen will then generate output that is more tailored for Java. # For instance namespaces will be presented as packages, qualified scopes # will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = YES # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = \ ../include/xqilla/xqilla-simple.hpp \ ../include/xqilla/simple-api \ ../include/xqilla/context \ ../include/xqilla/context \ ../include/xqilla/events \ ../include/xqilla/fastxdm \ ../include/xqilla/xerces \ ../include/xqilla/items \ ../include/xqilla/debug/DebugListener.hpp \ ../include/xqilla/debug/InputParser.hpp \ ../include/xqilla/debug/InteractiveDebugger.hpp \ ../include/xqilla/debug/StackFrame.hpp \ ../include/xqilla/framework/ReferenceCounted.hpp \ ../include/xqilla/framework/XPath2MemoryManager.hpp \ ../include/xqilla/framework/StringPool.hpp \ ../include/xqilla/runtime/Sequence.hpp \ ../include/xqilla/runtime/Result.hpp \ ../include/xqilla/runtime/ResultImpl.hpp \ ../include/xqilla/ast/StaticAnalysis.hpp \ ../include/xqilla/ast/StaticType.hpp \ ../include/xqilla/ast/LocationInfo.hpp \ ../include/xqilla/exceptions/XQException.hpp \ ../include/xqilla/functions/ExternalFunction.hpp \ ../include/xqilla/schema/DocumentCache.hpp \ ../include/xqilla/context/MessageListener.hpp \ ../include/xqilla/schema/SchemaValidatorFilter.hpp \ %xerces_include%/xercesc/framework/MemoryManager.hpp \ %xerces_include%/xercesc/util/XMemory.hpp \ %xerces_include%/xercesc/dom/DOMNode.hpp \ %xerces_include%/xercesc/dom/DOMDocument.hpp \ %xerces_include%/xercesc/dom/DOMXPathNSResolver.hpp \ %xerces_include%/xercesc/util/XMLEntityResolver.hpp \ %xerces_include%/xercesc/util/XMLResourceIdentifier.hpp \ %xerces_include%/xercesc/util/PlatformUtils.hpp \ %xerces_include%/xercesc/sax/InputSource.hpp \ %xerces_include%/xercesc/framework/LocalFileInputSource.hpp \ %xerces_include%/xercesc/framework/MemBufInputSource.hpp \ %xerces_include%/xercesc/framework/StdInInputSource.hpp \ %xerces_include%/xercesc/framework/URLInputSource.hpp \ %xerces_include%/xercesc/framework/LocalFileFormatTarget.hpp \ %xerces_include%/xercesc/framework/MemBufFormatTarget.hpp \ %xerces_include%/xercesc/framework/StdOutFormatTarget.hpp \ %xerces_include%/xercesc/framework/XMLFormatter.hpp # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp # *.h++ *.idl *.odl FILE_PATTERNS = # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = NO # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = \ ../include/xqilla/items/ItemConstructor.hpp \ ../include/xqilla/items/AnyAtomicTypeConstructor.hpp \ ../include/xqilla/items/ATQNameConstructor.hpp \ ../include/xqilla/items/DatatypeLookup.hpp \ ../include/xqilla/items/DatatypeFactory.hpp # The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories # that are symbolic links (a Unix filesystem feature) are excluded from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. EXCLUDE_PATTERNS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = ../src/samples/simple-api/ # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command , where # is the value of the INPUT_FILTER tag, and is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. INPUT_FILTER = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. SOURCE_BROWSER = NO # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # If the REFERENCED_BY_RELATION tag is set to YES (the default) # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = YES # If the REFERENCES_RELATION tag is set to YES (the default) # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = YES # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 3 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = simple-api # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. HTML_HEADER = simple_header.html # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet HTML_STYLESHEET = # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = YES # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compressed HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output dir. CHM_FILE = # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can # be used to specify the location (absolute path including file name) of # the HTML help compiler (hhc.exe). If non empty doxygen will try to run # the html help compiler on the generated index.hhp. HHC_LOCATION = # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the Html help documentation and to the tree view. TOC_EXPAND = NO # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. ENUM_VALUES_PER_LINE = 4 # If the GENERATE_TREEVIEW tag is set to YES, a side panel will be # generated containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript and frames is required (for instance Mozilla, Netscape 4.0+, # or Internet explorer 4.0+). Note that for large projects the tree generation # can take a very long time. In such cases it is better to disable this feature. # Windows users are probably better off using the HTML help feature. GENERATE_TREEVIEW = NO # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = NO # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be invoked. If left blank `latex' will be used as the default command name. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4wide # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = NO # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = NO # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimised for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = NO # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = rtf # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assigments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_XML = NO # The XML_SCHEMA tag can be used to specify an XML schema, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_DTD = #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will # generate an AutoGen Definitions (see autogen.sf.net) file # that captures the structure of the code including all # documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = YES # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_PREDEFINED tags. EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = ../include # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. PREDEFINED = \ XERCES_CPP_NAMESPACE_QUALIFIER=xercesc:: \ XERCES_CPP_NAMESPACE_BEGIN="namespace xercesc {" \ XERCES_CPP_NAMESPACE_END="};" # If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all function-like macros that are alone # on a line, have an all uppercase name, and do not end with a semicolon. Such # function macros are typically used for boiler-plate code, and will confuse the # parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::addtions related to external references #--------------------------------------------------------------------------- # The TAGFILES tag can be used to specify one or more tagfiles. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in Html, RTF and LaTeX) for classes with base or # super classes. Setting the tag to NO turns the diagrams off. Note that this # option is superceded by the HAVE_DOT option below. This is only a fallback. It is # recommended to install and use dot, since it yield more powerful graphs. CLASS_DIAGRAMS = YES # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = YES # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = YES # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, jpg, or gif # If left blank png will be used. DOT_IMAGE_FORMAT = png # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found on the path. DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). DOTFILE_DIRS = # The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width # (in pixels) of the graphs generated by dot. If a graph becomes larger than # this value, doxygen will try to truncate the graph, so that it fits within # the specified constraint. Beware that most browsers cannot cope with very # large images. MAX_DOT_GRAPH_WIDTH = 1024 # The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height # (in pixels) of the graphs generated by dot. If a graph becomes larger than # this value, doxygen will try to truncate the graph, so that it fits within # the specified constraint. Beware that most browsers cannot cope with very # large images. MAX_DOT_GRAPH_HEIGHT = 1024 # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermedate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES #--------------------------------------------------------------------------- # Configuration::addtions related to the search engine #--------------------------------------------------------------------------- # The SEARCHENGINE tag specifies whether or not a search engine should be # used. If set to NO the values of all tags below this one will be ignored. SEARCHENGINE = NO # The CGI_NAME tag should be the name of the CGI script that # starts the search engine (doxysearch) with the correct parameters. # A script with this name will be generated by doxygen. CGI_NAME = search.cgi # The CGI_URL tag should be the absolute URL to the directory where the # cgi binaries are located. See the documentation of your http daemon for # details. CGI_URL = # The DOC_URL tag should be the absolute URL to the directory where the # documentation is located. If left blank the absolute path to the # documentation, with file:// prepended to it, will be used. DOC_URL = # The DOC_ABSPATH tag should be the absolute path to the directory where the # documentation is located. If left blank the directory on the local machine # will be used. DOC_ABSPATH = # The BIN_ABSPATH tag must point to the directory where the doxysearch binary # is installed. BIN_ABSPATH = /usr/local/bin/ # The EXT_DOC_PATHS tag can be used to specify one or more paths to # documentation generated for other projects. This allows doxysearch to search # the documentation for these projects as well. EXT_DOC_PATHS = XQilla-2.3.0/docs/simple_header.html0000644000151400015140000000100611571227106014241 00000000000000 XQilla Simple API Documentation SourceForge.net Logo XQilla-2.3.0/docs/simple-api/0000755000151400015140000000000011653571065012704 500000000000000XQilla-2.3.0/docs/simple-api/ResultImpl_8hpp__dep__incl.map0000644000151400015140000000040511653571064020513 00000000000000 XQilla-2.3.0/docs/simple-api/ATBooleanOrDerived_8hpp__dep__incl.map0000644000151400015140000000114011653571064022020 00000000000000 XQilla-2.3.0/docs/simple-api/functions_0x75.html0000644000151400015140000001642111653571063016307 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

Here is a list of all class members with links to the classes they belong to:

- u -

XQilla-2.3.0/docs/simple-api/URIResolver_8hpp__incl.md50000644000151400015140000000004011653571063017507 00000000000000c8a22de3871fa83b4ca295f860b5c62bXQilla-2.3.0/docs/simple-api/inherit_graph_27.map0000644000151400015140000000027411653571064016460 00000000000000 XQilla-2.3.0/docs/simple-api/classFunctionRef__inherit__graph.png0000644000151400015140000000774111653571064022013 00000000000000‰PNG  IHDRÃ0nîbKGDÿÿÿ ½§“–IDATxœí{PׇOH‚<’†GH( ¢õÕVRu°N©Zi{kE¡UÆ"ŒÓÖ:%­{-:—ª€–¡S*`kqZðêeª(Ôb¸å‘Tœ …@c„G ¯½l›®y &Û„³=ßøÇ9»gÏþv?s6Ù„=4 ÃbÆãä與y‚ä '8`+ßÿ}zzº£¢ ˆ¬]»vÿþý†ê}ž«««cbbìž qõõõžžžÄ% ÓF%%%öʃ0Oll¬Ñt}‚ä '8@žày‚k<Ѹºº†……µ¶¶NÓð„„‹emHrèïïß¶m[pp0‹Å -//wHŒÎÎNö¨[YùzúñÇ¥R©T*‰DóçÏߺuë4÷ÝûûûÏž=ÛÞÞnݾHA.—/_¾ÜÍÍ­¸¸¸±±ñõ×_‹‹ûî»ïlïY"‘p¹\Ûû™3ŸŸ___€¯¯off&ŸÏ—Éd<Ïlc•J ´:¥í¤¥¥…‡‡çççãÕÅ‹ =ztãÆ6ö¬×ëår¹Í ×'&“éììÌápðªF£|>ŸÇã F³jÕ*îÕl|(¸råJ```]]iF;{öì¢E‹¼¼¼233Z­6---00ÐÇÇçÍ7ß¶Ô?àܹs{öì!ÆNKK+((ÀËÃÃÃ;vìàr¹©©©“““ÄщX6ñÀ£ÓétYYY ,`³Ùaaa ÖœeŒ@qq±Ñ³Z[[GGGGGGûúúvïÞ˜˜hX›‘‘ÕÛÛ+‰V¬X±oß¾ŽŽb·–¼ôÒKW¯^3m€ï4::Z¡Pœ:u —˳²²–,Y"‰ÄbñÊ•+SSS-õ¯P(CCC–Ž(>>~ݺu·o߉DK—.=pà13±lãG÷é§Ÿòx<¡PØßßñâE??¿žä˜˜˜˜˜˜ûÎ9±ò𞈰X¬öövÃÚ… J¥R¼|ùòåeË–‰¥"‘ÈR|§555†©Õj@GGÇOð$“?îa¦Óé{ì±®®.¼ªT*===½½½wíÚ5>>n¤ÁŠfOÐäädjjªŸŸ‡Ã‰‹‹3\~ÌnŽaXwwwtt´ŸŸ›Í~öÙgÏŸ?oØãÐÐÐo¼áíí={öì½{÷âc`zzº‡‡Ç¼yó*++§ñ¤ÑhÖ¬YÃb±,í]«Õfee…„„¸»»¯^½}O†M=Ñ0ÂPPRR2ý'V„}À¿"~ˆîïÁòÈ Op€<ÁòÈ Op@AO GG 3ßçnذÁþ9HD"™pÇÙYíè Ö#‹×®]K\rŸ§Çö—«T •ÊU­öåóGÅzÖ®]‹Ml€F±»yYYUÙÙ—‚‚¼ëëÿåè,dBµëSii §G~ëV¿£³ ¥<µ´ôÞ½«0™ôsç~rt2¡”§ŠŠfƒÐht¥¥Mz=u†têxÒéôeeMZ­¯Êd£ÔyƒNOõõ Å„¡ÊdÒËË›˜‡\¨ãI(lf0þ<FWYÙ¬Ñè‰D(âI­Öž?ߪÕê‰ •Ê©k×~uT$r¡ˆ§«Wo©TSF  šPH‘w}ñ$þdú³:­Vÿßÿ¶ML@|ÉìÝ» â ·zuú¿ÿ½eýúņ%¾¾œY³¬ü‹¼Üéq<–øø°ƒ‚¼æ/‚ ãÞßä '8@žày‚ä '8@žày‚ä '8@žày‚ä '8@žày‚ä '8@žày‚ä '8@žày‚ä '8@žày‚ä '8@žà`ýÚ_|AVWÕÕÕ¶÷³~ýz|ÚÇ3ý„ö„¬#b2yNN³H骸¸ØÑgåwfÖ¸GÊyQ«uºIÛûqôɸ™å a ä '8@žày‚ä  óD£Ñ:;;Â@æÉ€D"ár¹ŽNa?`õ¤×ëår¹£SØX=áÓOøúúâUF#ø|>Ç@£Ñ -ZäããsäÈ‘¯¿þzΜ9gÿþýŽŒn¶ß_! ð÷ÀÓ Mœ‘‘ÕÛÛ+‰V¬X±oß>¼q\\œR©ÌÏÏÄÆÆ*•ʼ¼<À½{÷HÉc7(âiáÂ…R©/_¾|yÙ²exãææf ÃÔjµQ™8Ÿ¶-yìÆ ú^ú»»gÏžm¨r8¼Àf³L&Ó¨ °^ŸŒàr¹†—ˆB¡ÀçP§p{à [¶lùè£zzzD"QDDÄñãÇŒt`õ¼fÍÃX—žžÎf³—/_þ /<ýôÓŽG:]Ÿ°?¾¾c0?üðƒa9›Í.,,,,,4Ûxš2,Àúzú»<ÁòÈ Op€<ÁòôtïÞ˜£#ÏÌúœ{åÊ•ááa;)-í{õU_:)‘f3Ë“í àä4‹ÇÛuýz©Ju‹”H3„4î‘ò=Í™354ý•WÞ&¥·ØØXGŸ•ß™AžHáܹŸ Ý¸Ñ)—Sê*E)O# 0h••-ŽŽC&”òTYÙB§Óz=VRÒäè8dB)O¥¥M:À0L,¾ÛÛKŽQÇ“D"koïÇþøn‰N§ÔÐGOååÍ ÆŸŸ™t:¬´”:Cu<•–6iµ:CðÎÎßnÝ’:0‰Pē٫ƒAŸf d¸ ˆ§ŠŠf&ÓøF‘V«+)iÄ ü5„)Tð¤×ceeÿÓht¦«•ÍÍ=öD:TðÔÐ ‘ÉFÍ®b0èååTú¨àé?ÿi8;3LÿéõØùó-ÄÙß!efÝ/·Ž¥KþùϪǎ}÷ê«O/XàkX22¢òòrwD4Ò Qã2KÄÏoonîöM›–9:™PaÜû;€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ O@Êsêbbb}Âf¯a2gÐÔ…¤œaÒþ>wñâÅ3ÉÖ:G€öööÒÒRRº"ÍÇ{þùçÉê aº>ÁòÈ Op€<Á]Ÿ›nº°¦¦†¬þûúúµCb*ggçùóç¿÷Þ{!!!–ÚcvèСºººªª*ë³>"ö~¾ÑçŸNœèÖv¤RiJJJee%€ÅbÅÅÅÙ’jbb¢¨¨èàÁƒgΜ¡ÑhfËåòêêêââb[b?*ööäáááååEb‡z½^©Tâe‡³k×.[Ryyy¥¤¤DFFŽŒŒxxx˜m<55àñxÖF¶Ç_Ÿúúú #±^]]½}ûöM›6}ûí·Nwúôé­[·nÞ¼ùðáÃøä¹»wïlÙ²Åhó±±±#G޼öÚk111'OžÄ§ 7íÓ:Î`0Üݾ˜V«ÍÍÍŒŒŒŒŒÌÍÍÕjµÄ=Ú {{šœœTÐéÌ<„Ò@]]ÝñãÇ“““óòòFGGËÊÊ®]»vøðáììì;wîNœ8 …FÛæääÈd²ÜÜÜŒŒŒ¦¦¦o¾ùÆlŸF©äryAAÁ†  Ó‹—••I¥Ò¼¼¼cÇŽ577Ÿ>}ÚÒÿRì=î½õÖ[Äê¡C‡-5Þ¼y3‹ÅÚ¸qãÑ£G•JåÅ‹“’’æÎ øðÃ{{{-m¨Õj¯^½ZPP€_uóòò¶oßnÚ'>é;1•««ëÉ“' Õªªªììl///—œœœ››ûòË/[üÖboOEEEþþþÄ%}}}†2vÿù\.€Áø=äàà`@@^ ²´…B¡×ëýüü𪿿¿L&3Û§Qª©©©ÂÂÂÌÌLÃÌãQQQ†–†ñÐÎÌ”çYêt::~ïÞ=âB£w\ÞÞÞsæÌtvvÞ¸q#!!ÁložžžNNNR©wÙßßë1íÓˆY³fEDD\¸pÃ0¼%‡ÃÉÎÎÆ-Ž Y6àø÷, péÒ¥‰‰‰éý_|1??¿«««««+''gppаJ¥R[2ŒðððÏ>ûL*•vuu¬_¿þ!󸻻OLL:|î¹çN:588(‘H>øàƒŠŠŠG;<’p¼'‡³sçÎ'N$%%EDDLÓ2>>>44T ¼óÎ;|>?99àëëûä“O‡&œ={öp¹Ü””@ÿy|||ÜÜÜ ïõwîÜéææ–””´wïÞyóæá;µ?ä<666V&“¥¥¥ÙÞ•¨­­=xð )gØñ¯'ÄÀ<ÁòÈ Op€<ÁòÈ Op@Ú}ØÚÚÚÚÚZ²zCAÎ}£úúú»wïÚÞ%!åg÷œÿ‰’ ë Op€<Áòÿ-¹ò …ƒ÷›IEND®B`‚XQilla-2.3.0/docs/simple-api/FastXDMConfiguration_8hpp__incl.png0000644000151400015140000002050711653571064021436 00000000000000‰PNG  IHDRýuË:¯ÞbKGDÿÿÿ ½§“ IDATxœíÝi@×Úà«‘EöEE¶BÑê½nP\P\P¬€ ¸•âzÛ‚HeUµn·Å W¬hµŠX7•E)‚PÙ„°B’ù~L¿¹1 2¼Ï¯É0sæ=gμ™œ ' É!EvD ò>HÈû Y ï€d¡’èK÷ï߈ˆ ; ¾RRRÈòþ R]]}ûöm;;;²b§¦¦æùóçdGÄäýA(44”ì€Ø¹wïÞ¶mÛÈŽˆßÉy$ ä},÷@²@ÞÉy_Ù Ò»¢ŠŠŠîÝ»G¬yôèÑŒ3JJJxäææ¶cÇŽ††î0<==yfܲe‹½½}EEþ²®®.""ÂÍÍmöìÙ>>><øÔ1 ‹ŒŒœ={6B¨¢¢¢×5í‰Ï/Ÿ»îôxŽSB8p@GG§wûVUUùøø$%%!„LLL<==£££ÇG£ÑZ[[÷ïßïååehhÈ} ‡SVV–àíí}òäI†ÿõýû÷ÅÅÅÆÆÆøËæææ¼¼<â@MMMkÖ¬ù÷¿ÿª¨¨˜••9~üøžG[WWwûöí . „h4š»»{ïjÝîÖèòèsp¿/¡TTT†}¬çûr8œ¦¦&âå²eË”••cbbBGUSSsssã9ºººMxx¸ŽŽÎÅ‹‰¿ÚÚÚrVHOO·¶¶&^ž:uÊÆÆfóæÍæææ#GŽ\²dÉ¢E‹ð Þs!MMM„²²²··÷'íÞ-îÖèòès÷Áÿddd|ûí·ŽŽŽ...çÎÃW¦§§¯^½zæÌ™K—.½uëBhݺu¡E‹áP©Ô€€€ëׯŸ={öúõëTªàÏ‘ eþüù™™™Ä;;»{÷îC=÷ïߟ6mñ×´´4î¼¼¼üýýñå–––;w.X°à›o¾9|ø0“ÉDÙÛÛß¾}ÛËËkþüùçϟ牖‡Á0ìÊ•++V¬prrúñÇ322ðb”†XÆrrr\]]óóóù›H`ù=_vv¶‡‡Ç¼yóΞ=K”ùèÑ£eË–-\¸0::º³³SàÊnÎ.ÿò¾„joogpa³Ùmmm!!!&&&qqqk×®=vìXCCC{{{XX˜³³óùóç—-[öóÏ?···:t!”˜˜H”fjjêêêzüøñåË—5JÈqõõõ+++‰—––– £¸¸!ÔÚÚš““3iÒ$üO---õõõ#FŒàÞ]AA¿sGýòË/µµµGŽÙµkד'O~ÿýw|ýÇ<øÝwßÅÄÄ477óG‹ºvíÚ™3gÖ¯_îÜ9ƒ o®?þø# @OO¿‰–ßóðø•••uìØ1ÿãÇŸ$._¾¼cÇŽ¨¨¨¬¬,â-YàJºy_B­Y³f—ÇËÊÊž8qbÓ¦MjjjxnmmmíììÄ0ŒÁ`ÈÊÊ:::&''ËÉÉñ—†aØÛ·o¥¤¤Þ½{÷IaHIIM:êÉÈȰ²²RRR"ÊDQ(;²X¬ÔÔÔ7êèè®\¹’˜qÌÙÙ™F£Íš5 !Ä=Å-!!ÁÇÇgüøñÊÊʶ¶¶+W®§···’’õyx®®®ŠŠŠ“'OFo k×®Õ××777_³f Q”À•t ¾×•Pqqqzzz<+ËËË÷ìÙÃ`0LLLð5C‡Ý¿||ü©S§LMM—.]:aÂþÒnß¾››»ÿþÍ›7O›6¸gçW^^®««Ë½ÆÎÎn÷îÝ«W¯æä:t¨ªªêÛ·o-,,ˆ•/_¾üïÿûË/¿455q8¢(==½ÚÚZ|Y]]!ÔÕX®²²’ûs‰ÏøGGGGXX˜››ÛÑ£G¿ÿþ{b%‡Ã KNNž3gÎÖ­[ù‡&êêꢣ£}||FíååµwïÞ®î²ñQõ‰'r¯´²²jkkËÏÏÏÎÎÆor “&Mºpáw NIIa±XrrrªªªRRRUUUøúÊÊJ<Ÿ¢®?"pÓÒÒ*--%^¾}û–Xf³Ù¡>po§iM$Ðç„'pƒòòr|¡¬¬ cèj%Ý‚¼þÑÙÙÉb±¨T*“ÉäååWUU-Y²„û¸øPϾ}ûÌÍÍUTT¸ÿ´zõê¼¼¼¨¨¨‚‚‚’’’Ó§O'&&®Y³!D¥RíííýõתªªÒÒÒ'NLŸ>½ç•uvvމ‰ÉÎÎnjjzúôill,…BÁŸ.½uëV[[ÿx}WMÄÝ„O ïÏ?ÿìj¼ˆpàÀŠŠŠ—/_?~|ÆŒBVÐ-çÿ Ñhk×®ˆˆPPPXºt©ƒƒƒ¿¿ÿ¥K—~ú駘˜˜šš]]ÝÐÐPYYYmmm+++—k׮ݺu+;;ûäÉ“ø]*•Jݼyóºuë¦N:uêT„І ðò555G}ôèÑ!C†ðÚÞÞ>))iáÂ…<ëUTTŽ=zøðáÐÐPƒ1bĈÈÈHâãÂþóŸøøøÈÈÈ|ýõ×=¯¬³³3›ÍÞ¿cc£………ÏîÝ»•••W¯^}èС¸¸¸õë×óÿ˜À&Š'Zƒ{㞇·gÏkkkþfá6}út__ßööv|T‡geÏ«$…g hüñ‡««ëÝ»wÉDÜeddhjjá/ÓÒÒΜ9sìØ1r£¨¢¢ÂÓÓ“çœ \)>ÿ>\ïÁ8L%%%‘‘‘EEEÏŸ??yò$>N€$€q ‰ÜÜÜÚÛÛƒ‚‚tttfÏž=oÞ<²ƒlÈ!ü± \ @Á8Ï ã< +0Î0Î’ò>HÈû Y ï€d¼’ò>Hx~òóó#;„ÏÂáÈQ(, …Mv ÿÃbÉKKwP(ø!H:Nv@\@ÞT†þÍ7ßEïa¥¢bHY™’¾~óðá~“„,OŸjbÅаAE¥ƒìXzÏÖÖ–ì€X€ÿÛâââÅ';w^kmm÷ó›½bÅd*UŒ!««›"#“þš4É$"b¡©©6ÙÐ{÷ù^½zœ˜žþzéÒ‰~~³55‡’‘`YY% EEÕË—OÚ²e&à§Ç÷™š›Ûþùúo¿=²²ÒŒt3f8ÙuƒÃÁ²·mK’‘¡nÝê´xñ¸žüÌ bò> †aññÙQQWY,NHÈ|—qRR&64´íÝ{36öáøñ£"#™›ëv¿bò> ÁÓ§ïòóËW¬˜ìç7KYY‘ìˆz#?¿<0017÷­›Û„€§aÄýp âò>©ºº–mÛ’ÿ7nTdä" ÞßvXðO-É융rådii1ú: ïa³9§N=Ü»÷æ!²¡¡ æÎ3hFÆ›šÑÑw޽gf¦¹hܸQdG€0÷(<~\”XXX½q£ÃÚµ_+*Ê’Qß+.® ¾tÿþ+ÛààùbúT÷Aÿª¬lض-éêÕ<;»/ÂÃjQÿJI) Lhjj߸ÑÁÛÛNFFšìˆàyô&“}ûðá»jj´ˆˆE3fX‘ˆ0ÌC‡R¸£¯?,<|¡ÙðÈû _¤¦¾ ¹TQAß°Áaýzyy²#µ7o>„†^NI)˜1Ã"2ÒE__•ìˆøä}ÐÇÞ½« ¾”’R°xñ¸€']]²#"Óƒ…  ëÖÙoØ0]NfÄ䃼úL{{çÁƒwL1B-"báäɦdG$:;Ù§O?ڵ뚆ÆÐmÛœ%g¼ ˆ-Èû o೪573üýçxyM‚ï3y¼ßu5>>{ÊÓˆˆE&&ZdG$ä}ð¹ðYÕ=zíâb8WKK™ìˆÄWzúë  Äââ˜Ù ò>è=bV5cc­ÈÈE'‘ÑÀbqbcîÙs]AAfv¤€¼zƒ˜U­³“àäæ6A¬¦Ë55Í{ö\?w.sÂȘ٠ˆä}ðɸgUóõ¥¢2 gUyye Ïž•ÁÌn@” ïƒO@̪fc322rÑèÑâ>]¾øÃ'ôß¾ý ›Í™Ý€h@Þ=B̪&##<F¥ûVccÛž=7cc~ù¥nT”‹­­ÙÁ ò>èÞ“'¥ /_VyyMÞ¼ÙQII숧‚‚ŠÀÀÄ'OJaf7Я ïajjš#"®$$ü…?unl¬IvDƒ†aW¯æmÛ–ÔÒÒ3»~yÖÙÉþõהÇ着‰Šrÿ2¥¶6æáéÑÑw†±hÚ´/ÈŽ *÷wï¾ N,/§oÜè°nÝ× ƒpº|ñWRRr)5õÌìúä}𑲲ú  Ä””óððEêdG$éRR ‚‚?|h™Ý@_¼þÑÑÁ:pàöÁƒ©ZZJÛ·/„ñOxwàÀ˜Ù |>Èû!„.^|²k×µÆFÆ÷ßÏX½zªN—/þ*+vîüfvŸò¾¤+,|téáÃÂÅ‹Çýô““ŽŽDO—/þ>, ºTZZ 3»^ƒ¼/¹ˆYÕ 5""\&M2&;"Ð#ø„þ?ÿ|mÈy˜Ù ôä}ID̪Öܼ֯y6L—?UW7FF^MHøkâDÈss²#ä}‰óüye``ÂãÇ¥..¶ó´´”ÈŽô^ffq``bQÑ{7· ?ý䤪 3»îAÞ— õõ­aa—ÿ3fxd¤‹µõ²#}€Åâœ?Ÿµs矆~øaæªUS¤¤`Øy_"೪íÛwSZZ*$d¾‹Ë8H ƒLCCÛÞ½7ccZXèEF.‚™Ý€÷?|Vµ/ª`ºüAïÙ³²ÀÀÄœœ·..¶!! ÔÕidGÄäýÁŒ˜UmÜ8ƒÈHKK=²#ýÿÒ><ü “Éöós\±b2üàyp"fU£ÑäçÁ£~’¦©‰±{÷Ó§¨‡‡ÃÌnà#÷ª+WžÎk-p˜ŸU­¬¬~Ó¦ék×~­¨³ªI¨×¯k‚‚ÓÒ^ ™Ù­¤¤¶µµÃÊJ_ôá²ÀÀ)99wíÚ3.dñ¬/+«÷ò:îá3b„Zjª¿¯¯#$}Ifl¬yþ¼ÏéÓkž?¯œ6mçÞ½7˜LÏ6=<ŽVW7’! Üï<¹¹ï,øµ³“­¤¤•¤¬¬ˆ¸fUÓб¦îÜ æ¡C©ÑÑwtu?šÙíúõüÕ«OIKSLMµ¯^ýL¸-! ï0oÞ|˜5k_kk;‡ƒQ©Ò®®_íÞ½ŸU­®®eØ.téÍ›ÁÁ‰w2Å42ÒEGGù_ÿЬ«kÆ0D¥JOšdç ¿ê. ï$MM GÇ}ååt‹¯¡P(S§~qÿþËÉ“M#"ššj“!IIO·o¿ÒØØ6i’Ijê 6›ƒ¯—––úöÛ©!! È ˆäýƒÅâ,]“™ùšÅâ+©T)uõ¡Û¶9Ï›gMbl``ikc†…]>w.“Ãùèò§PÐŽß,_þo²¢ŸéŒÐÐË%}„‹Å©®njkc’ˆeKJ>ð? †a(00ááÃBR¢"y`ˆ}û€øHþ1lÛ¶ËMM QǬ›7ÿNO/⹇Àa¶jÕÉ’’ZÑGDòþ‘QœØÕ€†¡ææöýûo‰6(0P1™¬ààK]ý‡ƒ1Ë–mnnq`@d ï‹»7o>¬Xq¼«¯a¤¤(òò2:yòAi)Ü£î?žV^^/-M‘“ükšl6§¬Œ¾fÍ)À ßëŠµÆÆ¶Y³öVTÐÙìN“´´”ŒŒtGG'†!55šÍˆ1cFŒ3ÜÊJOKK™ÜhÁ€ÀbqJKkŸ=+ËË+ËÉyûüye{{§´´”¬¬t{{'‘¤¤(Ë—OŠŠr!5XÐ/>Êû ƒN§“ àÆbqÖ­»“S.--ÅfcaÊÊ Ú:ææZ_~©- ³-*((¨ª ˜]à“Ðét¾ÿŒÍæ”–Ö½|Yóüùû‚‚ªÂšÎN6þ•/‡ƒmÙ2ã›oàQ±ç:ú(ï×ÔÔ<þœŒ¨€11OsrÞ(©Ž¥bh¨¢¦¦@vP¢¦¡¡aañ¹ÿ{\PPP[ ƒ`=Âfc••Í%% %%ô¢"úû÷­7޳±Ñ";.ðYx®#*ÿvvv¢ tÉd™›•ðA,((è«¢úäýC±Ùœêê&]]²½ÇÁ÷ºbJV–*áIˆii)Húƒä},÷@²@ÞÉy$ ä},ý˜÷_¿~Ï¿ Ä»wïV®\‰a˜§§'&¾ÿ—$¤.xž>}J¥R/^¼H¬OJJ’••ÍÏÏÇ_¶¶¶úûû3†F£}õÕW;vì`±X¨WíF¤¯jÚ- …òúõk‘ŽtŸÓ±…ø™ñô!ž2EߥB•••K—.500 ÑhãÇ¿téÒ§Ö‚;ôG+qûüòEyõcÞWQQÙ²e˧îuùòeggçÊÊʳgÏÐ"ë`cc³uëÖM›6544 „×­[jee…jnn7n\VVÖÎ;srrâââfΜÉf³{×néééUëÛJ•””¨««÷m™Ôçtì>,°_ñ„$ú.]WWgcc£¨¨xáÂ…Ç»¹¹¹»»ß¼yó“ áN#ýÑÈÜ…žDa0.ÕÕÕwïÞÅúZQQ~ bA''§¶¶¶žlI.!âUÀ0¬££ÃÒÒÒÛÛÃ0[[[&“‰oãçç7eÊ‹EìÕÒÒb``päÈþCtÛ¡¢¢¢Ï®“0Bbè¿£ÿý÷ßÿý·ø”ã»ÏcèáÑ?“è»ôúõë]]]¹×øùùMŸ>ý“Âîï–éÛòEy}rÞOJJÒÕÕ­¯¯Ç0ìܹs&&&---l6;::ÚÌÌŒF£Mœ8155¯Ï9æn¦äädkkkmmí;và+kkk—,Y‚a˜ššBHKK‹ØëöíÛÇðàÀB'Nœ033SWWß±cÇo¿ýf`` ¤¤„oÀd2ýüü455544üüü˜LæÄ‰÷íÛ‡aX]]…BñõõÅ0ŒÅb©¨¨\½zÃ0:îå奦¦¦§§çëëË`0¸#9uê^‡ãëë;f̘ÚÚZî*ಳ³©TjTT”œœ\~~>±^[[;%%…§m:4eÊ”^´[W=FàÉÂK»|ù²©©©††ÆÆÛÛÛ»­/~—€Ÿ¡ƒ©¨¨DEEó¢«ã !ʼ/šŽaØ•+W¬¬¬äääFõÛo¿ñì.¼' iX|wþ~ÎSMþðº-“”.­­­žžÎ]TssóÛ·oñeþ¾Š7]\\œ™™™ªªê®]»0AiÃ0‡søðassó¡C‡ÚÛÛ'''sŸSþ …då÷<<¢¼Žzs¿¿|ùr//¯÷ïßkiieeea£©©™˜˜XYYùçŸêëë ¿<šššdeeW­ZU^^‡ª©©Á0ìäÉ“gΜáiD|yöìÙ©©©UUUwD¹»»755?~!´dÉ’¦¦¦˜˜„Ї0 Ûµk—‹‹Ë»wïž={6vìØ€€€íÛ·;99a–””¤¤¤4vìX ò³³ååå[[[1 óððppp(..~ö왥¥eXXw$¹¹¹!‡ãççgmm…» „€€„PDD±ŸüŸà–‘‘1lذ^´B(77·ùc],¼´™3gfff‡……õ°¾ûBhîܹMMM xƒ -üòèèèxñâ~?uÿþ}âvÕÅÅ?Ùü úìÙ3!;"„rrr0 c2™<ËøfffUUUx)))ÖÖÖÙÙÙ4Édþøã[·n•‘‘¡Óé»wïž3g¾¯´´4ÑX‰‰‰ÆÆÆÜ‘àËþþþ¡W¯^u'ª€ãp8 ,––öôôän@â ‰[zzºººz/Ú ÒÕÉ⮆a.\066îa}ö„н{÷0 c³ÙxH!p¥À "Îû"èØõõõ222{öì¡Óé§¹¹™Ífóä}!=YHÃâkøû9w†×m™¢ïÒõõõ!:.ð4 ì«xÓáé‹§¹ð͈eKK˳gÏ¥;wNxÞ’yîÕóðxê%Êë¨7ß모¨x{{¬]»_SRRbmý¿ÉZG-¼YYÙÂÂBGGG[[ÛØØX|eKKKgggW“îš™™uµ#nèС!žeÜ›7otttð]f̘QZZjcc3dÈ'Ož¤¥¥ÍŸ?߯Æ&--íîÝ»NNN¡êêj6›mdd„ïnll\^^Î îÉ“'vvvQQQ]UáìÙ³÷îÝKMMOJJ"P[[¿ƒæ–››Ë]xÛ '°!A' gbbBT§¼¼¼‡õ튮®.BHJê£îÄs!+Å„:¶ªªêÝ»w333õõõ§M›öàÁžFCÝõd$´ ùû9âzÜKHÿéªLRº´ªªª––ÏcOž<?~|[[›¾Š÷CžæâQ\\liiI¼üòË/y6À>¾‘ê6óðøœðDvõ&ï—••8p`úôé¾¾¾ø==½¼¼>>¾¶¶öèÑ£òòòÄ÷çøÂ{²†Å7ØÏ Ã^&Y]º¦¦FMMÍÃÃãÑ£Gyyyaaa!ü LP_Ò\øb9::Z__ÿæÍ›>|¸sçÎ_|A¡PðŸg8qâDccãÂ… y‚ÞtøEÁ½qÃÃÈ»Ž>9ïGGG3NàÒ¥K:::õõõL&sûöí£F¢Ñhÿú׿x†Ìø0 Û·oß°aÆ~èÐ!wwwUUU|`ç$a|#Ë<;jjjvÕ¦ÜËMMM+W®TUUUSSóööÆ¿¹mhh R©ø×S­­­²²²þþþÄêëë—-[¦¦¦¦££óÃ?ð\ŸÜË ÃÔÔtëÖ­ÜUˆ•““ãúüø±””T||<þ²¥¥Å×××ÒÒR^^ÞÈÈ(00pÚ´i®®®ŸÔnDõ¾£ HÈû Y ï€d¼’åÿû*E³¡?IEND®B`‚XQilla-2.3.0/docs/simple-api/inherit_graph_43.map0000644000151400015140000001261311653571064016456 00000000000000 XQilla-2.3.0/docs/simple-api/classATBase64BinaryOrDerived__inherit__graph.png0000644000151400015140000001645311653571064024013 00000000000000‰PNG  IHDR½j@âãbKGDÿÿÿ ½§“àIDATxœíÝyTçúð7$ˆR„@¤TŠ×­Zµ(ê­µ-­U\°nU x¸öVÁj[ô\—Ó«¶ ÖåÊ"ˆÖ^Û²Û¢ˆÊ’¨\ P  @-!Ûüþ˜Ÿ1&!àË2žÏñ™Éû¾óÌäëÌ$A€—dDuà•¹8 7äà` Ä W®\‰ŽŽˆ‘ÁËòòò ï÷a$7 999~~~18è½k×®3f FÜÒÒÒnpÐ+V¬ ‘áúà€Ü€rp@n*sCS3jÔ(OOÏÒÒR=í ‚øôÓOÍÌÌ­BêêêüýýÇgff6cÆŒóçÏSRFEEF£dÕˆòãÍÕ«W…B¡P(är¹...+W®Ôs¾®®îÌ™3wïÞÌ 5455M:ÕÔÔ455µ¨¨hÕªU«W¯þí·ßú>²@ `2™}gp àû7½accckk‹²µµ‰‰a³ÙOžŽ¬T*›ššú\à 1 ëccã#FXXX³2™,,,ŒÍf³X¬°°0™L6kÖ,„™3 ÈCwnn®ƒƒÃ_ý¥Ý!D£ÑΜ9ãîîneeƒ’Ëå‘‘‘666ëÖ­kiién|„PFFÆ_|¡^vddäñãÇÉé––– 60™L{{ûÐÐP‰D¢~6QŸÖ.£Ç­S(±±±®®®æææžžž×¯_˜ç¡wˆššÚ›‘B¥¥¥mmmmmmµµµ[¶lÙ¸q£êÑ}ûö-[¶ìáÇ\.wÚ´i;wîäóùêÃv×à½÷ÞËËËkoo×n@®tùòå"‘(!!!ÔÔÔëááÁåry<ÞÌ™3CCC»_$!„š››»Û¢5kÖx{{?xð€ËåNœ81**J½fõií2zܺƒ²X¬ÌÌ̺ºº_~ù…Ãáô¸“ýüüüüüz|"0PœufffwïÞU=êææ& Ééììì)S¦hìÙîp¹Üî+ÍÏÏ'B*•"„ø|þ„ 233ÉfwïÞUMkwonnF‰D"›#•JétúíÛ·ÉÙÌÌLggg=¹Ñ(£Ç­suu=qKÁO?ý4|sÃçóÉ鎎ŽíÛ·Ïš5KõèÈ‘#ÕSeaa¡±g»k •J»k@®ôÞ½{êŒ9’Çãi—§³;›Í.((PoVTT4}úôŽŽŽG!„Äb1¹œËåŽ9R½æû÷ï«çF£Œ·nÔ¨Q¥¥¥ª%%%æÆP®oLMM7lØpçÎâÙqˆÉdªR%‰ 5ºt×ÀØØX#£¶šÃáTUU‘Ó¥¥¥ß}÷žî¾¾¾ Ô–§OŸ–Éd¦¦¦l6›N§ rùƒÆŽKNËår„Pmm­úz5ÊèqëÆWVV¦jpçÎ=ÝÜ@„ãxCDuu5B¨µµ•œÝºuëòåË«ªªÊÊÊfΜ¢ñ?£ÆJÉéÈÈÈI“&ñx<çéé §ûãÇ­­­×¬YSPPPVV…ºtéÙÅßßßÛÛ[ ðx<ˆˆˆ'Ož „Ž?þôéÓ¥K—"µãFdñmmmÝ­ýûï¿g±XYYYB¡ðòåËNNN=î䡞"B¡PŒ=º²²’œmmmݸqã˜1c¬­­;::4bÑ€Ðõ„I$’ÐÐP‡caa±zõjÕå‹ÎîATUU-_¾œÃᘛ›¿ýöÛ/^T­±¹¹yíÚµÖÖÖvvv_~ù%yÎŠŽŽ¶´´?~ü… ôäF&“Í™3ÇÌ̬»µËåòØØXggç×^{möìÙäñOÿ¸ÜЈø;˜´´4ýïàÁA~þf >e(×7àÕ¹8 7äà€Ü€rp@nÈM·®_P]‚áÀÏû-\¸pàÁx{ûG#FH©.Çóòòˆ‘$7¯¿þú«þÇáb1C,%•Ú²ÙmTׂÏËË‹üa¿ûSC@lìåC‡~ã ëk×¾¥ºC×7º¥§ß@UW7•—×Q]‹!‚ÜèPRò°¦F„26¦gdÜ¢ºC¹Ñ!+«˜Á #„d2Ezú ¥Nåš 7š å¹s7är9ûäI[Q¼ ×¹ÑtíZ…HÔ©š56¦Ÿ?_La=† r£)3³˜Áx¾[d2Å… Å2™‚Â’ äæR©üâÅR¹\©¾°µµë?îSU’a‚ܼ /¯\,îÒXÈ`Ð23áUÕ 7/È̼¥ýgMr¹ò¿ÿ-ëì|…o8ô;ÈÍsíí]¿ÿ~G¡Pj?$“)rr(ý;7¹y.;ûŽT*ïîQxU¥ró\VV·ÉP*‰üüòÖVñ`ÖcÈà¾æs55"õ“ÔìÙÑ{ö|âãó¦j‰­­…‰ Åß4e `/>>NNN}Çp Áïi£Ñhý2ޱ1K¡xªTj~1†ÔÔÔ+Vô}Ã14ÏS©©©DŸI¥ …¤ïãP½3ÄÐÌ h€rp@nÈ À¹8†inh4ZEEÕU¼Â†inT“ɤºŠWÏpÏR©ljj¢ºŠWÏpÏͬY³B¶¶¶ä¬L& c³Ù,+,,L&“!„h4ZRR’»»»ÍÞ½{O:åèèhaaNeé”î¹),,DÕ×ד³‡ª¬¬¼yófnnn^^^DD¹<''§¨¨hïÞ½»víºté—ËŽŽ¾Çª¾ß14¨÷§B|>Ÿ >Ÿ¯¾ÜÜÜ„B!9=eʲqqq1AR©Tcš¤ïõ¼r†àç(ú¢ªªÊÎÎN5kaaAN˜››#„Œ5¦‡­á~žÒÀd2U‡‘HDžÅ€6È Bµ··“Ÿ|òÉ®]»ª««¹\îâÅ‹=Jmak¸çfܸqsæÌQ›¢££ÍÍͧNú÷¿ÿ}òäÉûöí£¶<ƒ5L¯oˆg§b0þù§j¹¹¹yRRRRR’ÎÆz¦‡›á~¼x 7äà€Ü€rp@nÈM·Û©.Áp Í÷ýrss[ZZú8Hzzí‡ÚŽIï—’†˜¡™›¾µ€‘‘ ‹XP.—÷KICÌù¿‚Édòù|ò¶H$*,,ì}Uƒd0n½9OåççÓéô††Õ’›7o¢g' „j‡ª¦år9‹Åb³ÙÉÉÉ=B>Immmärooo@Àãñ<<<"""º[‹jZuŠŒŒœ4iÇãñxžžžê¢ýzJ»N²Í‚ ø|~QQ‘‹‹ YÀÖ­[—/_^UUUVV6sæÌý; ®oˆ   E‹©/Q*•ãÇÿꫯˆîŸÑÏ?ÿ|Ô¨Q­­­="“ÉæÌ™cffF.onn^»v­µµµÝ—_~)‹õ¬E#7‰$44”ÃáXXX¬^½Z$©¯Qçëp:É6‰‰‰o¼ñ“ÉüÇ?þAÐÚÚºqãÆ1cÆX[[vttèßiL_ýµ¿¿ÿ@ŒÜ¿4êì¯÷xàºø¥I$’ººº¤¤¤³gÏR]‹>¯J½dp×Å/ëúõëÓ§Oÿì³ÏæÏŸOu-úè¬sôèÑAAAÔ…ï•?ÞÌ›7¯¹¹™ê*z¦³N‹GI=}ôÊo% 7äà€Ü›n)•Dφ+ÈM·ÎQ(”TWa (x®çù†„ÆfoÞ±ã3©´†êJzeÿ –Fƒw4~ôè‘!ÞÚÕåþý§GÞyçöʕ㩮¥WìíígÏž=h«ÔܼBþùϳiiEææ#oߎ66¦S]ŽÁë$ÙÏ?— „ÚÛ%yyåT—cˆ 7:ääÜ•Hä!##£ŒŒ[T—cˆ 7:ddܤÓi!…Bùûï·;:º¨®Èà@n4µ¶ŠóòÊåòÿ.—+~ý•GmIr£éòežúÛ64-#ã&…õ&ȦôôR¢P(ÿü“ßÜÜAU=† ró‚ÇÛ +´ï0\ºTFI= ró‚Ÿ.Ñ~;› ˆsçnPRÁ‚ܼ =ý†öÁF©$nݪ®©QR’a‚Üý‹/¾°´´Ä^;† 謡¶¶öÓO?ÍÏÏï÷5J$’'NܸqC(:88Ì;wÕªUtºæ¯J«Æf³'OžÜËÓ÷âñFÀÌ Ayyy,+??_•OOÏŒŒ „P( !§B£GF9rÄÎÎŽ ˆÆÆÆÃ‡ÿûßÿŽˆˆÀ[»F%©©©¿üòKss³§§çöíÛMLLȇêêêŽ;6vìXr‰ÎÌÌÌV¯^Ý÷J4tvv3&((ˆÃáTVV?~üæÍ›02Ò<Ì“…)•ÊGedd&%%™™™õ¸–*¾G˜ç©ÊÊʇîØ±£¢¢¢¦¦†\hbbbeeeeeEþ_±z†Á` „,--­¬¬¬­­'L˜XTTÔ/‘‘‘qøðáêêê'NËe2ÙîÝ»;;;Õë¬ÁÂÂ"00°_ŠQwòäIKK˃¾ýöÛööösç΋‹«¯¯¿|ù²vc²0&“9uêÔ={öØÙÙ¥§§÷f-T|0s“——7yòä·ÞzËÁÁ!//ïe»ÓétÕû×®] X¼xñ²eËþóŸÿ ¯^½ºiÓ¦E‹ùûûÿþûïäB¹\·téÒ¥K—ÆÅÅÉår„PfffHHˆ‹‹‹““Óž={æÎK6ŽwwwïM µµµª3Å‚ rrrÖ¯_ïëë›’’Ò]…d—âââ•+WÆÄÄ-ÅbñâÅ‹ù|>B(;;{ݺuꇖ‘#G®Zµ*;;[½;§ùcÁ4Í××·°°°»­Vïþ믿’Åûí·?üðÙE&“}øá‡äÚÝ•JeJJÊÚµk—,YR^^þÏÜ38¹!ORÞÞÞ!//¯^ž%‰X,îìì|ôèQbbâÂ… B...§OŸNHHhii‘H$QQQü1¹y111‰!tîÜ9¡PàÀâââäää®®.¡P(Ö¬Yãëë›””äàà€*((()) îM þú믣GÅÇÇ·µµé¬l™––¶sçÎM›6( r½vvvÎÎÎíííÍÍÍÎÎ΃;;;?|øP½»‹‹‹v öööuuuä´öVëìîíí}åÊònã7LLLf̘¡³{FFFjjj``à©S§Ö®]×›§OÎõÍÿþ÷¿Ç{yy!„¼¼¼NŸ>]YYéèè¨¿×æÍ›UÓ¦¦¦¡¡¡¡#F?~œÅb™˜˜°X,„PGGN'B,1bñâÅóçÏ'/Y._¾|èÐ!+++‹÷ÑG!„JJJbbb”Jåþýû=ºaÆï¿ÿ>66Vu¡£¿ ü±™™Ù»ï¾»ÿþÖÖV6›­]!Ù200ÐÉÉI©T2 .—;uêÔœœœE‹iÿB§ FS*•êÝõï4[½dÉU÷ÚÚZ²Ù;ï¼sïÞ=77·ÜÜÜÅ‹“àÚÝ%ÉçŸN˜­­­ÿõ¯õX†œÜäåå) ò9#åçç÷˜›Ó§O“×§]]]çÎÛ¶m[JJ ƒÁ¨©©Ù¿¿X,Vý×177?tèйsç’““]]]ýýýgΜ‰ª¯¯_¶l™jÀ×^{¼rܶm›••BhóæÍß|óÍ£GV­ZÅb±Äb1BH"‘Èd2ccãîjШ“Éd"„Èk2rB»Byl322š;wîüáäätëÖ­íÛ·#„ÌÌ̬¬¬***Þzë-õ.®®®êÝuª©©áp8ä´öVëìnbbâééyåÊ•qãÆ]½z5!!¡»îr¹\ý@Ø›ìj{éÜ(•Êüüü-[¶|ðÁä’äääüüü7êù¦ÎÄÄäý÷ßOLLlii155ŠŠŠŠŠš={¶L&#¯»ºº”JeTT”\.ÏÍÍýú믳²²ÌÍÍ-,,:D>ñä‰`Ô¨Q–––òg÷¬•J¥‰‰Iyyù;w>L.ܼyóŠ+4ÎYê5h”§±]]]Ú’TÙš?~ttô¸qãþö·¿ÙØØ }||Nž<9uêTÕ%ŽD"9{ö¬êYTu×@ÄÅ‹gÍšEÎjouwݽ½½>ììììêêjooß]÷ˆˆˆŒ?žlPUU¥³ ý^úú†ËåŠD¢… ŽzÆÇǧ¦¦¦¢¢BÇ–––ææææææÇŸ={–ÅbYZZÊd2¹\Î`0¤R)yæîìì¤ÑhaaaüñGGG‡L&c0ägîܹ `ÇŽYYY4íƒ>Ø¿MMMeee\\œOnnnþ3!òºDO úËÖY¡F›I“&)ŠŸ~úiÑ¢Eª…ëׯ‰DÛ¶m+**ª©©ùóÏ?ƒƒƒ™L¦úqZcç466–••…‡‡ …Â+Viouw¥Î˜1£½½ýĉ䉬»î¾¾¾?þøcAAAsssQQQRR’þ= ÓKoòòò¦M›¦¾»]\\8N~~¾ÎK<•r‚F£9::FEEÑh433³àààèèèQ£Fùûû{{{ïØ±ãüùó»víŠüø1‡Ã‰ŒŒ1bBhÓ¦MGŽ  Ñh^^^AAA¡õë×ÿðÃ[·n522òööÞ¸qãËÖ {uVxäÈõ6FFF^^^¿ýöyÍG255=vìXrrr\\\]]···ŸŸyÆì®0‹5iÒ¤cÇŽ©ÎGÚ[ÝØØ¨³Tƒ1oÞ¼ÜÜÜyóæ©jw766–Éd?þøcSSÓøñãÃÃ÷lÙ¢'h{áó~iii+W®ˆwN‡¼ÄÄÄúúúo¿ý–êBÄîÝ»mllÒÒÒTKàþT_I¥R¡PxùòeÕßp¹é«òòò   ÷Þ{oÊ”aôË¿ðûá}5yòä‹/R]Å`ƒã À¹8 7äà€Ü€CÇëpŸ.Ù@ ðññQ_òBn^ýu??¿Á- ¼œœœT÷çI/ÜŸ —àúà€Ü€rpü7y±»@Õ~æIEND®B`‚XQilla-2.3.0/docs/simple-api/classATGMonthOrDerived__inherit__graph.md50000644000151400015140000000004011653571063022677 000000000000003a4fc7c1b5dac5d758bfb63870a83ca2XQilla-2.3.0/docs/simple-api/FastXDMConfiguration_8hpp__incl.map0000644000151400015140000000003511653571064021421 00000000000000 XQilla-2.3.0/docs/simple-api/classTimezone-members.html0000644000151400015140000001260711653571063017766 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

Timezone Member List

This is the complete list of members for Timezone, including all inherited members.
_ref_countReferenceCounted [protected]
asDayTimeDuration(const DynamicContext *context) const Timezone
asSeconds() const Timezone [inline]
asString(const DynamicContext *context) const Timezone
convert(bool positive, int hour, int minute)Timezone [static]
decrementRefCount() const ReferenceCounted [inline, virtual]
equals(const Timezone::Ptr &other) const Timezone
getRefCount() const ReferenceCounted [inline]
incrementRefCount() const ReferenceCounted [inline]
Ptr typedefTimezone
ReferenceCounted()ReferenceCounted [inline]
Timezone(const MAPM &seconds)Timezone
Timezone(const ATDurationOrDerived::Ptr &duration, const DynamicContext *context)Timezone
validate(const MAPM &tz)Timezone [static]
~ReferenceCounted()ReferenceCounted [inline, virtual]
XQilla-2.3.0/docs/simple-api/LocalFileFormatTarget_8hpp__incl.md50000644000151400015140000000004011653571063021500 00000000000000e0250658c71bf083a8eb69f1088160adXQilla-2.3.0/docs/simple-api/classLocationInfo__inherit__graph.map0000644000151400015140000000023711653571064022137 00000000000000 XQilla-2.3.0/docs/simple-api/classScope__inherit__graph.md50000644000151400015140000000004011653571063020523 00000000000000d556bcfcfcc1f32afabe84ea4c0f918eXQilla-2.3.0/docs/simple-api/VariableTypeStore_8hpp__incl.md50000644000151400015140000000004011653571063020732 000000000000003368b1b7cfdad232329e43e090d3e859XQilla-2.3.0/docs/simple-api/UpdateFactory_8hpp__incl.md50000644000151400015140000000004011653571063020100 00000000000000507e0912c66705e9c98f9a5671c75de7XQilla-2.3.0/docs/simple-api/classNSFixupFilter-members.html0000644000151400015140000001564311653571063020701 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

NSFixupFilter Member List

This is the complete list of members for NSFixupFilter, including all inherited members.
atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)EventFilter [inline, virtual]
attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)NSFixupFilter [virtual]
commentEvent(const XMLCh *value)EventFilter [inline, virtual]
endDocumentEvent()NSFixupFilter [virtual]
endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName)NSFixupFilter [virtual]
endEvent()EventFilter [inline, virtual]
EventFilter(EventHandler *next)EventFilter [inline]
namespaceEvent(const XMLCh *prefix, const XMLCh *uri)NSFixupFilter [virtual]
next_EventFilter [protected]
NSFixupFilter(EventHandler *next, XPath2MemoryManager *mm)NSFixupFilter
piEvent(const XMLCh *target, const XMLCh *value)EventFilter [inline, virtual]
setLocationInfo(const LocationInfo *location)EventFilter [inline, virtual]
setNextEventHandler(EventHandler *next)EventFilter [inline]
startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding)NSFixupFilter [virtual]
startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname)NSFixupFilter [virtual]
textEvent(const XMLCh *value)EventFilter [inline, virtual]
textEvent(const XMLCh *chars, unsigned int length)EventFilter [inline, virtual]
~EventHandler()EventHandler [inline, virtual]
~NSFixupFilter()NSFixupFilter
XQilla-2.3.0/docs/simple-api/ATDateTimeOrDerived_8hpp__incl.md50000644000151400015140000000004011653571063021053 000000000000009f2ce35bd46dc0c6d694595afcd96464XQilla-2.3.0/docs/simple-api/StaticType_8hpp_source.html0000644000151400015140000007175411653571063020136 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

StaticType.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _STATICTYPE_HPP
00021 #define _STATICTYPE_HPP
00022 
00023 #include <xqilla/framework/XQillaExport.hpp>
00024 #include <xqilla/items/AnyAtomicType.hpp>
00025 #include <xqilla/framework/XPath2MemoryManager.hpp>
00026 
00027 #include <xercesc/framework/XMLBuffer.hpp>
00028 #include <xercesc/util/XMemory.hpp>
00029 
00033 class XQILLA_API StaticType : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory {
00034 public:
00038   enum StaticTypeFlags {
00039     DOCUMENT_TYPE            = 0x00000001,
00040     ELEMENT_TYPE             = 0x00000002,
00041     ATTRIBUTE_TYPE           = 0x00000004,
00042     TEXT_TYPE                = 0x00000008,
00043     PI_TYPE                  = 0x00000010,
00044     COMMENT_TYPE             = 0x00000020,
00045     NAMESPACE_TYPE           = 0x00000040,
00046 
00047     ANY_SIMPLE_TYPE          = 0x00000080,
00048     ANY_URI_TYPE             = 0x00000100,
00049     BASE_64_BINARY_TYPE      = 0x00000200,
00050     BOOLEAN_TYPE             = 0x00000400,
00051     DATE_TYPE                = 0x00000800,
00052     DATE_TIME_TYPE           = 0x00001000,
00053     DAY_TIME_DURATION_TYPE   = 0x00002000,
00054     DECIMAL_TYPE             = 0x00004000,
00055     DOUBLE_TYPE              = 0x00008000,
00056     DURATION_TYPE            = 0x00010000,
00057     FLOAT_TYPE               = 0x00020000,
00058     G_DAY_TYPE               = 0x00040000,
00059     G_MONTH_TYPE             = 0x00080000,
00060     G_MONTH_DAY_TYPE         = 0x00100000,
00061     G_YEAR_TYPE              = 0x00200000,
00062     G_YEAR_MONTH_TYPE        = 0x00400000,
00063     HEX_BINARY_TYPE          = 0x00800000,
00064     NOTATION_TYPE            = 0x01000000,
00065     QNAME_TYPE               = 0x02000000,
00066     STRING_TYPE              = 0x04000000,
00067     TIME_TYPE                = 0x08000000,
00068     UNTYPED_ATOMIC_TYPE      = 0x10000000,
00069     YEAR_MONTH_DURATION_TYPE = 0x20000000,
00070 
00071     FUNCTION_TYPE            = 0x40000000,
00072 
00073     NODE_TYPE                = (DOCUMENT_TYPE | ELEMENT_TYPE | ATTRIBUTE_TYPE | TEXT_TYPE | PI_TYPE | COMMENT_TYPE |
00074                                 NAMESPACE_TYPE),
00075 
00076     NUMERIC_TYPE             = (DECIMAL_TYPE | FLOAT_TYPE | DOUBLE_TYPE),
00077 
00078     TIMEZONE_TYPE            = (DATE_TYPE | DATE_TIME_TYPE | G_DAY_TYPE | G_MONTH_TYPE | G_MONTH_DAY_TYPE |
00079                                 G_YEAR_TYPE | G_YEAR_MONTH_TYPE | TIME_TYPE),
00080 
00081     TYPED_ATOMIC_TYPE        = (NUMERIC_TYPE | TIMEZONE_TYPE | ANY_SIMPLE_TYPE | ANY_URI_TYPE | BASE_64_BINARY_TYPE |
00082                                 BOOLEAN_TYPE | DAY_TIME_DURATION_TYPE | DURATION_TYPE | HEX_BINARY_TYPE |
00083                                 NOTATION_TYPE | QNAME_TYPE | STRING_TYPE | YEAR_MONTH_DURATION_TYPE),
00084 
00085     ANY_ATOMIC_TYPE          = (TYPED_ATOMIC_TYPE | UNTYPED_ATOMIC_TYPE),
00086 
00087     ITEM_TYPE                = (NODE_TYPE | ANY_ATOMIC_TYPE | FUNCTION_TYPE),
00088 
00089     EMPTY_TYPE               = 0
00090   };
00091 
00092   static const unsigned int UNLIMITED;
00093 
00095   StaticType();
00096   // Constructor for normal types
00097   StaticType(StaticTypeFlags f, unsigned int min = 1, unsigned int max = 1);
00099   StaticType(XPath2MemoryManager *mm, unsigned int numArgs, const StaticType &returnType, unsigned int min = 1, unsigned int max = 1);
00101   StaticType(XPath2MemoryManager *mm, unsigned int minArgs, unsigned int maxArgs, const StaticType &returnType,
00102              unsigned int min = 1, unsigned int max = 1);
00103 
00104   StaticType(const StaticType &o);
00105   StaticType &operator=(const StaticType &o);
00106   ~StaticType();
00107 
00108   static StaticType create(const XMLCh *uri, const XMLCh *name, const StaticContext *context,
00109                                   bool &isExact);
00110   static StaticType create(AnyAtomicType::AtomicObjectType primitiveType);
00111 
00112   void typeUnion(const StaticType &st);
00113   void typeIntersect(const StaticType &st);
00114   void typeExcept(const StaticType &st);
00115 
00116   void typeConcat(const StaticType &st);
00117   void typeNodeIntersect(const StaticType &st);
00118 
00119   StaticType operator|(const StaticType &st) const;
00120   StaticType &operator|=(const StaticType &st);
00121 
00122   StaticType operator&(const StaticType &st) const;
00123   StaticType &operator&=(const StaticType &st);
00124 
00125   StaticType &substitute(const StaticType &from, const StaticType &to);
00126   StaticType &multiply(unsigned int min, unsigned int max);
00127   void setCardinality(unsigned int min, unsigned int max);
00128 
00129   bool containsType(const StaticType &type) const;
00130   bool containsType(StaticType::StaticTypeFlags flags) const;
00131   bool isType(const StaticType &type) const;
00132 
00133   enum TypeMatchEnum {
00134     NEVER = 0,
00135     PROBABLY_NOT = 1,
00136     MAYBE = 2,
00137     ALWAYS = 3
00138   };
00139 
00140   struct TypeMatch
00141   {
00142     TypeMatchEnum type, cardinality;
00143   };
00144 
00145   TypeMatch matches(const StaticType &actual) const;
00146 
00147   unsigned int getMin() const { return min_; }
00148   unsigned int getMax() const { return max_; }
00149 
00150   unsigned int getMinArgs() const { return minArgs_; }
00151   unsigned int getMaxArgs() const { return maxArgs_; }
00152   const StaticType *getReturnType() const { return returnType_; }
00153 
00154   void typeToBuf(XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &buf) const;
00155 
00156 private:
00157   TypeMatchEnum matchesFunctionType(const StaticType &type) const;
00158   TypeMatchEnum matchesType(const StaticType &type) const;
00159 
00160   unsigned int flags_;
00161   unsigned int min_;
00162   unsigned int max_;
00163 
00164   XPath2MemoryManager *mm_;
00165   unsigned int minArgs_;
00166   unsigned int maxArgs_;
00167   StaticType *returnType_;
00168 };
00169 
00170 XQILLA_API StaticType::StaticTypeFlags operator|(StaticType::StaticTypeFlags a, StaticType::StaticTypeFlags b);
00171 XQILLA_API StaticType::StaticTypeFlags operator&(StaticType::StaticTypeFlags a, StaticType::StaticTypeFlags b);
00172 
00173 #endif
XQilla-2.3.0/docs/simple-api/inherit_graph_8.md50000644000151400015140000000004011653571063016275 00000000000000c8bad01bbd0d1e4c9d5c164f4b03966aXQilla-2.3.0/docs/simple-api/NSFixupFilter_8hpp__incl.md50000644000151400015140000000004011653571063020030 000000000000006699ee240c10f172d432eaa35b11f817XQilla-2.3.0/docs/simple-api/classModuleCache__inherit__graph.map0000644000151400015140000000035611653571064021726 00000000000000 XQilla-2.3.0/docs/simple-api/classATNotationOrDerived__inherit__graph.png0000644000151400015140000001516311653571064023412 00000000000000‰PNG  IHDR%á3bKGDÿÿÿ ½§“(IDATxœí{TWâÇoH¢Hƒáˆ•—P\[‹…"´uÝŠ«¬Ú Šk”Ý¡GzHµÛUW×ÇÊCP¨[ÛòÈ¡VEP„Dq5‘€<‚óšßSÓ4IHàr?‡?îÌÜ{ç;óaî$“d†€a@@‡‰± ÆäNW8A^ᄤM¥ŠŠŠäääñŽ‚ÐŸ„„„Q«iåµ£££´´”Åbéœ ¡7nܰ´´Ô¦¦V^qòòòÆš¡6lØ eMt~…äNW8A^áy…}z%(1cÆ ooïÚÚZ õ1 ûè£(Š3Œ¶¶¶ÐÐÐ9sæP(”%K–\¼xÑ(1‚¾zÓóñzýúu@ 8Ž‹‹ËÆ5|^ÔÖÖvîܹúúzýfx%º»»===ÍÌÌrss«ªª6mÚòã?êÞ3ŸÏ§Ñhº÷36^áý«6ØØØØÚÚlmm8À`0:;;étú°•úÍðJ$&&úùù8qŸ|ã7ÚÛÛ¿þúë>ø@Çžåryww·ÎÇÈ8ž_Édò´iÓ¨T*>)‘Hâââ N‹‹“H$K—.àÿÃVÀ‡¦²²2‡_~ùE½€@ œ;wÎÝÝÝÊÊêÀ©Tš˜˜èàà`cc³uëÖÞÞÞ‘úìÚµK9vbbâÉ“'ñrooïöíÛi4š½½}llìÐÐòh©\V1êÖÉd²´´4WWWsssooï›7oêsïcZ››«MM@mmm_____ß“'OvîܦXšššÔÒÒÂáp/^Ïãñ”»©ÂÿøÇòòòþþ~õ øJƒƒƒ…Baff& »»;--ÍÃÃÃáp¹\//¯ØØØ‘ú …€žžž‘¶hóæÍþþþgþüùIIIÊ™•Ëê1FݺC‡Ñéô¶¶¶ÿþ÷¿L&sÔÌb±X,Ö¨"0 Ó³We(J}}½b©›››@ ÀË%%%‹-RÙò‘*p8œ‘*à+e³Ù†‰ÅbÇ›7o^aa!^­¾¾^QVoÞÓÓ …ÃnŽX,&‰wïÞÅ' 5xU‰1êÖ¹ººž:uJQáßÿþ÷ÄõÊãñðòÀÀÀ_ÿú×¥K—*–ššš*[§R©*[>R±XŸÃᘚš*g~øð¡²W•£nÝŒ3jkkîܹ£G¯ãu~533Û¾}û½{÷°—Ç1FSX …•••*MFª@&“5W01ùÝV0™Ì¦¦&¼\[[ûÕW_ihxðàALi°9{ö¬D"133c0D"‘ÏçãógÍš…—¥R)àÉ“'ÊëU‰1êÖÍ™3§®®NQáÞ½{š¿2ÚÈÃñŠaXss3@$á“111ÁÁÁMMMuuu^^^ÑÑÑ*ÿÑc¨ ²R¼œ˜˜¸`Á.—Ëår½½½ÃÃÃ54úô©µµõæÍ›¯]»VWW—””¸|ù2Þ$44ÔßߟÏçs¹\}ûöuvvNž<ùìÙ³uëÖ¥ãU%¾¯¯o¤µûí·t:ýÒ¥KàÊ•+ŽŽŽ£îdãÆÉd²™3g>zôŸ‰Daaa–––ÖÖÖ*ÚÆPn‡ ÅÆÆ2™L*•¢8}Û𦦦àà`&“innþöÛo+ÖØÓÓ³eËkkk;;»Ý»wãcrrr²………““SQQ‘¯‰dùòå e¤µK¥Ò´´4ggç×^{mÙ²eøø¡ykï•€iñ=Ó¼¼<ÍW†ÿüU›ÂÑõa8A^áy…äNW8A^áy…äN¦×›7ùÆŽ`8^áûï½÷Þøå0|¾“½ýãiÓÄÆ2v¸\®65µòúúë¯Oöç ’gˆÅ¶ FŸ±³Œük£¢ÕõaHK»òÍ7?Ížm}ãÆÆÎb¦Êù5?¿ÐÜÜ}ÿ~›±³‚)áõΖÖV!€L&Ü6vC0%¼^ºTC"‰,?¿Z.‡ÿÔ¿W™L~áBµT*Ã';;ûªªàÿ×7„ÂçŠI2™xñbóø½ÖH¿m¦D"+*ª‘HdFŒd ÷*K‹‹k¥R¹òL‘èÅÏ??4V$ù×òòûƒƒ/Tf’H„ÂBÈ_Cîµ°ð¶ú×z¥Rù÷ß×=>‰/(Ž Ì^ûû_üôÓ=™L®¾H"‘•–êõ{Ø ˜½–”Ü‹¥#-…ûU1Ì^/]Ñœ\ޱÙ÷E¢ACæ1$0_÷om*ÂË–%ïß¿> à Å[[êôézþe÷έ±·W½åœùìÙÖF c``‡§2È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼ÂÉ$ø]óñãÇõÕUiii{{•îýà œ°L‚û(žu­#d2]&{&—«ÞÎi äææâŠ›°LŽq877W›‡(jF,îɆtïÇØ;C+&‡WÄ«‚¼Â ò 'È+œ ¯p‚¼Â $^ BCCƒ±SL ñª€ÏçÓh4c§0>°y•ËåÝÝÝÆNa|`óŠ?¾ÍÖÖŸ”H$qqq ƒN§ÇÅÅI$@ÈÊÊrww·±±III9sæÌܹs©TjBB‚1£ëݯ«7@‹ëˆ‡aÇSÞ¨ÔÔÔ   ––‡³xñâøøx¼rHHˆH$:qâ`Æ "‘(##ÐÕÕ¥—Í&ˆúS´^z›à?º“«^((¸ ¡²²¡»{Jœe§„×öög7oòÀ Ý1vC0%¼Ý! ¹ËË«6vC0%¼æçWËdÃ0.·µ¥þ/¢Âï•ÏאָoÃ^~¶J$N‰¡~¯/ÖH¿½g•ɰü|ø‡bø½æçWK¥2Å$†a Oïß1’€Üë°gS‰xéRQò Ƚ^ºTC&«^8”JeyyUDßfRf¯r9váÂ-‰D¦¾¨£CTSÓløHf¯7oò;;û†]D"/^„y(†ÙëwßÝL›FRÿ“˱ââ;2™ÜØÇ‹ÉñyÎØ˜?ßþóÏ?TL<øãš5 ]]msž=´²zÍÑÆIp=}ÁdîNOß¸ÈØA ÌãðTy…äNW8A^áy…äNW8A^áy…äNW8A^áy…äNW8A^áy…äNW8A^áy…äNW8A^áy…äNW8A^áy…äNW8A^!E—Ûðæææ;þ+`n¾œLž4^g±Xº¨ÑÃý%òòòtï¡Ì¡C‡tìA^Y,–î ”ÉÏÏ×±t~…äNW8A^áy…ÃyÝ¿?@HII1z'*444„‘–æä䆣¶¶Vô޼b–““ãàà Ë¥Œa;áóù4šNW,,,öîÝ;ÒÒµk× @pýúu€à%º¬tÜÑýz“65ëêêBII àÁƒc[ݰðx<·BK ¶" ÃX,–Ž×› t¼æääøúú¸¹¹)máܹsîîîVVVÄÄÄ|òÉ'øÒþþ~33³;wîhèdéÒ¥[Û_ïRÚÛÛ»}ûvfoo;44„¯%++ËÝÝÝÆÆ&%%åÌ™3sçÎ¥R© @i–J¥‰‰‰666[·nÕü¤Ãasâ]Í›7N§ÇÄļxñ ‘Hâââ N‹‹“H$úÚ±#¢Ë?…–Ç«\.Ÿ;wnFF†aŸþ¹‡‡‡b 88X(fffº»»+**¬­­% †agÏžõððËå:Q9Œ6oÞìïïߨØÈápæÏŸŸ””„¯%$$D$8q°aÑH”‘‘èêêRô––æááÁáp¸\®——Wll¬òV¨¬hØœx÷ßÿáÇ•••ÎÎÎx€ÔÔÔ   ––‡³xñâøøxÍ{L÷ãÕ^+++I$RWW†a·oßp¹Ü_W›ÍÆ0L,x<žT*µµµ-++Ã0lõêÕ)))š;QÞÝb±˜H$Þ½{Ÿ,,,tvvÆ×RSS£X‹r™Çã)z˜7o^aa!Þ¶¾¾^QÆQñ:lN¼‡ÃQì<€›››@ Àg–””,Z´HóÓÝ«!î+““#•J•_ÝäææÎŸ?/3™L™LÆ'‰Dâúõë ,XPZZŠU£v‚ÓÑÑ!“ÉœœœðIggçÖÖV¼lnn®X‹rY™ææf¼ìîîîîî®a£FÊ Ptâææ†hjj²³³ST R©zÖ ã~~•Éd¹¹¹‡ê{ÉgŸ}–››‹½¼Ÿµ‰‰j‹uñâż¼¼åË—ÛÛÛkÓ ƒÁ ‰|>Ÿlllœ5k–öQ™LfSS^®­­ýꫯ4×Wωƒµ€‡âÿµ4ÇãáG’P(¬¬¬Ô>ÕÑå`×ff³ÙD"±££C1çÖ­[àå`ˆï|¾¢,•Jét:ƒÁÈÎε|'öõõáóCCCýýýù|>—ËõððØ·oßHkQ”lbbâ‚ ¸\.—ËõööWÞõ×Ãê9ñ:~~~<¯ªªÊÅÅÜÔÔTWWçåå=Êch'Áù522òý÷ßWž#—ËœœöîÝ‹¼ÇwìØ1cÆ ‘H4j'‰dùòå ŸßÓÓ³eËkkk;;»Ý»wjX‹Š×¡¡¡ØØX&“I¥RCBB„B¡ò‡}Ÿ£’¯sâĉٳgÓh´O?ý ‰ÂÂÂ,--­­­#""4ï´Iàulüýï žõ‹JN}½Ç¯›^‰¡¡¡¶¶¶¬¬¬óçÏ;‹&&xÎ wÝÿæÍ›o½õÖÇüî»ï;‹&†Í9sæÌÈÈHã…ú w¼úúúöôô;Åè ›“N§§§§% îxEèäNW8A^ád y•˧ʓøÀ”òzøp)ÄUAïs4|9h"A`0þoÏžÅâVc'Ñ E¡ÓsB?~lˆ&ôÁÇώ½÷Î;ŒŒE+ìíí—-[6ææSåù¯ùËù¼¼*ssÓ»w“Éd¢±ãŒ;Sâü:4$ÁŸÉÝß?T^~ߨq Á”ðZZZ?4$˜˜˜Ü6vC0%¼Ü" ™LþÓOw^;Ѹ¿W‘h°¼ü¾Túë;©TöÃ\ãF2ð{½r…«ü¶•@ Ü2bÿ×üüßY”ÉäW¯òzzŒ•Ç0@îõéÓ¾ÊÊõ+ˆ—/×%Á€ÜëwßÝQ¿†aØ… ÕFÉc0 ÷šŸ_­~°ÊåØíÛÍ­­B£D2 0{mnîærŸ {AH$ß1|$ƒ³×Ë—kGºJ*•bp¿*žpß[Ó#<^‡›Ûo¿ŠiofaafjúÛ:;ûllÌ”n|™*×ýLæîôôm‹ŒÄÀ<OeW8A^áy…äNW8A^áy…äNW8A^áy…äNW8A^áy…äNW8A^áy…äNW8A^áy…äNW8A^áy…äNW8A^áy…äN~÷{õŠŠŠääd#¦Wx>>øã§q~w‰ŽŽŽÒÒÒ þ ©13wn=@*5vŽqàÞ½{–––Ês†¹oHbb¢¡ò ô×_~©2_áy…äNW8A^ádì÷Ñ;}útvvvxxxhh(>§¼¼|ÿþýê5333ÃÃÃ}}}w}òäÉG}Äf³Ç@Á˜»:uêTuuµ@ pppX±bŦM›ˆDÕ§°øùù)Ê cáÂ…QQQãšMÇÆèðòòr:Îf³^½½½  ::/fΜ ¨¨¨`³Ù+W®Ô¦@°cÇŽ¢¢"m*P(”WÝ„çÏŸGEEYZZFFF2™ÌGÝÊÊÊÊÊ ÿ_¶z ‰D¬Y³æÿø‡–Ïb–Ëå"‘HË T*5""âU7áôéÓ‡zûí·íííW¬X‘žžÞÞÞ~åÊõÊVVV4ÍÓÓsÿþývvvùùùÚ¬elÙtgŒ^ËËË.\øæ›o:88”——kÓ„Åb988—³gÏFEEeffööö*WÐÜ>ÿ—_~9zôhdddFFF___OO³³³Jsggç––¼œ——ïâ⢾-ööömmmxùÂ…  ##ãàÁƒ555ÙÙÙÃ6÷÷÷¯¨¨Àÿ§«««§OŸ¾dÉ’a›äææFDDœ9sfË–-c{`ûX¼þïÿ{úô©ÀÇǧ©©éÑ£GÚ4´··ˆˆ8|øðÓ§O3¥Riyyù§Ÿ~jggçèèVRR¢ÜjÚ´i'OžŒ‰‰±¶¶¦Óé€áŸ¦¡¡«?ÿùÏ åƒ>há ‚\þëCY"""<==MMM5oÔ•+WvíÚE§Ó###«ªª†mþÎ;ïˆD¢ÊÊÊV­Z…¿@So^\\¼cÇŽ+VX[[{yymËë¦òòr™L¶víZÅ6›=wî\mÚ®[·îçŸNKKÛµk>G(Êår&“‰OΚ5«³³ówI¤ÖÖÖ¯¿þzpppØ£G†®h4Þ>I¡P¬¬¬Þ|óMå\]]ñ²ƒƒÃH+jmmU¬¥½½=((H±èµ×^¶ùôéÓ½½½+**æÌ™sýúõÌÌÌ‘šK¥RåÄÑÑQÃ&Ä+{•Ëål6{çÎ~ø!>';;›Íf‡……ió X°wïÞ?þøòåËøKKK@0{öl@[[î@Á‹/’’’’’’–-[&‘H†}]3jWêÙNŸ>íéé©8Å ?^±—ÿ*`V\\¼téR|’J¥~óÍ7³fÍàÃûHÍýýý>ììììêêjoo?Ró}ûö566:9ýú<Ó¦¦¦‘¶W¯<s8¡PøÞ{ïÍxI@@@kkkCCƒ–=ØÙÙEEEåååá“$ÉÏÏïŸÿü§@ Àßlà‹‰D*•’H$±XŒŸ½ž?®\A†®ÔÙ¶m›P(üì³ÏªªªZ[[¯^½E£Ñ”Ç!½½½===]]]uuu `Æ ø¢+Vdffvttðùü={ö\ºti¤5.Y²¤¿¿ÿÔ©S«W¯VÌToxìØ±k×®õôôTUUeeei±SUyåãµ¼¼|ñâÅÊïÊ]\\˜L&›ÍÖBø|¾Ê•ðßy}ýõ×Y,–a#!ô€£££âó%œ)ôü×):¿Â ò 'È+œ ¯pòÿú£âˆà¸IEND®B`‚XQilla-2.3.0/docs/simple-api/XPath2MemoryManager_8hpp__incl.map0000644000151400015140000000003511653571064021215 00000000000000 XQilla-2.3.0/docs/simple-api/inherit_graph_38.map0000644000151400015140000000020711653571064016456 00000000000000 XQilla-2.3.0/docs/simple-api/Sequence_8hpp__dep__incl.map0000644000151400015140000000023011653571064020157 00000000000000 XQilla-2.3.0/docs/simple-api/classxercesc_1_1DOMNode.html0000644000151400015140000030154611653571065020013 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

xercesc::DOMNode Class Reference

The DOMNode interface is the primary datatype for the entire Document Object Model. More...

#include <DOMNode.hpp>

Inheritance diagram for xercesc::DOMNode:

List of all members.

Public Types

Public Contants
enum  NodeType {
  ELEMENT_NODE = 1, ATTRIBUTE_NODE = 2, TEXT_NODE = 3, CDATA_SECTION_NODE = 4,
  ENTITY_REFERENCE_NODE = 5, ENTITY_NODE = 6, PROCESSING_INSTRUCTION_NODE = 7, COMMENT_NODE = 8,
  DOCUMENT_NODE = 9, DOCUMENT_TYPE_NODE = 10, DOCUMENT_FRAGMENT_NODE = 11, NOTATION_NODE = 12
}
 

NodeType.

More...
enum  DocumentPosition {
  DOCUMENT_POSITION_DISCONNECTED = 0x01, DOCUMENT_POSITION_PRECEDING = 0x02, DOCUMENT_POSITION_FOLLOWING = 0x04, DOCUMENT_POSITION_CONTAINS = 0x08,
  DOCUMENT_POSITION_CONTAINED_BY = 0x10, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20
}
 

DocumentPosition:

More...

Public Member Functions

Destructor
virtual ~DOMNode ()
 Destructor.
Functions introduced in DOM Level 1
virtual const XMLCh * getNodeName () const =0
 The name of this node, depending on its type; see the table above.
virtual const XMLCh * getNodeValue () const =0
 Gets the value of this node, depending on its type.
virtual NodeType getNodeType () const =0
 An enum value representing the type of the underlying object.
virtual DOMNodegetParentNode () const =0
 Gets the parent of this node.
virtual DOMNodeList * getChildNodes () const =0
 Gets a DOMNodeList that contains all children of this node.
virtual DOMNodegetFirstChild () const =0
 Gets the first child of this node.
virtual DOMNodegetLastChild () const =0
 Gets the last child of this node.
virtual DOMNodegetPreviousSibling () const =0
 Gets the node immediately preceding this node.
virtual DOMNodegetNextSibling () const =0
 Gets the node immediately following this node.
virtual DOMNamedNodeMap * getAttributes () const =0
 Gets a DOMNamedNodeMap containing the attributes of this node (if it is an DOMElement) or null otherwise.
virtual DOMDocumentgetOwnerDocument () const =0
 Gets the DOMDocument object associated with this node.
virtual DOMNodecloneNode (bool deep) const =0
 Returns a duplicate of this node.
virtual DOMNodeinsertBefore (DOMNode *newChild, DOMNode *refChild)=0
 Inserts the node newChild before the existing child node refChild.
virtual DOMNodereplaceChild (DOMNode *newChild, DOMNode *oldChild)=0
 Replaces the child node oldChild with newChild in the list of children, and returns the oldChild node.
virtual DOMNoderemoveChild (DOMNode *oldChild)=0
 Removes the child node indicated by oldChild from the list of children, and returns it.
virtual DOMNodeappendChild (DOMNode *newChild)=0
 Adds the node newChild to the end of the list of children of this node.
virtual bool hasChildNodes () const =0
 This is a convenience method to allow easy determination of whether a node has any children.
virtual void setNodeValue (const XMLCh *nodeValue)=0
 Sets the value of the node.
Functions introduced in DOM Level 2.
virtual void normalize ()=0
 Puts all DOMText nodes in the full depth of the sub-tree underneath this DOMNode, including attribute nodes, into a "normal" form where only markup (e.g., tags, comments, processing instructions, CDATA sections, and entity references) separates DOMText nodes, i.e., there are neither adjacent DOMText nodes nor empty DOMText nodes.
virtual bool isSupported (const XMLCh *feature, const XMLCh *version) const =0
 Tests whether the DOM implementation implements a specific feature and that feature is supported by this node.
virtual const XMLCh * getNamespaceURI () const =0
 Get the namespace URI of this node, or null if it is unspecified.
virtual const XMLCh * getPrefix () const =0
 Get the namespace prefix of this node, or null if it is unspecified.
virtual const XMLCh * getLocalName () const =0
 Returns the local part of the qualified name of this node.
virtual void setPrefix (const XMLCh *prefix)=0
 Set the namespace prefix of this node.
virtual bool hasAttributes () const =0
 Returns whether this node (if it is an element) has any attributes.
Functions introduced in DOM Level 3.
virtual bool isSameNode (const DOMNode *other) const =0
 Returns whether this node is the same node as the given one.
virtual bool isEqualNode (const DOMNode *arg) const =0
 Tests whether two nodes are equal.
virtual void * setUserData (const XMLCh *key, void *data, DOMUserDataHandler *handler)=0
 Associate an object to a key on this node.
virtual void * getUserData (const XMLCh *key) const =0
 Retrieves the object associated to a key on a this node.
virtual const XMLCh * getBaseURI () const =0
 The absolute base URI of this node or null if undefined.
virtual short compareDocumentPosition (const DOMNode *other) const =0
 Compares the reference node, i.e.
virtual const XMLCh * getTextContent () const =0
 This attribute returns the text content of this node and its descendants.
virtual void setTextContent (const XMLCh *textContent)=0
 This attribute removes any possible children this node may have and, if the new string is not empty or null, replaced by a single DOMText node containing the string this attribute is set to.
virtual const XMLCh * lookupPrefix (const XMLCh *namespaceURI) const =0
 Look up the prefix associated to the given namespace URI, starting from this node.
virtual bool isDefaultNamespace (const XMLCh *namespaceURI) const =0
 This method checks if the specified namespaceURI is the default namespace or not.
virtual const XMLCh * lookupNamespaceURI (const XMLCh *prefix) const =0
 Look up the namespace URI associated to the given prefix, starting from this node.
virtual void * getFeature (const XMLCh *feature, const XMLCh *version) const =0
 This method makes available a DOMNode's specialized interface.
Non-standard Extension
virtual void release ()=0
 Called to indicate that this Node (and its associated children) is no longer in use and that the implementation may relinquish any resources associated with it and its associated children.

Protected Member Functions

Hidden constructors
 DOMNode ()
 DOMNode (const DOMNode &)

Detailed Description

The DOMNode interface is the primary datatype for the entire Document Object Model.

It represents a single node in the document tree. While all objects implementing the DOMNode interface expose methods for dealing with children, not all objects implementing the DOMNode interface may have children. For example, DOMText nodes may not have children, and adding children to such nodes results in a DOMException being raised.

The attributes nodeName, nodeValue and attributes are included as a mechanism to get at node information without casting down to the specific derived interface. In cases where there is no obvious mapping of these attributes for a specific nodeType (e.g., nodeValue for an DOMElement or attributes for a DOMComment ), this returns null. Note that the specialized interfaces may contain additional and more convenient mechanisms to get and set the relevant information.

The values of nodeName, nodeValue, and attributes vary according to the node type as follows:

Interface nodeName nodeValue attributes
DOMAttr name of attribute value of attribute null
DOMCDATASection "#cdata-section" content of the CDATA Section null
DOMComment "#comment" content of the comment null
DOMDocument "#document" null null
DOMDocumentFragment "#document-fragment" null null
DOMDocumentType document type name null null
DOMElement tag name null NamedNodeMap
DOMEntity entity name null null
DOMEntityReference name of entity referenced null null
DOMNotation notation name null null
DOMProcessingInstruction target entire content excluding the target null
DOMText "#text" content of the text node null

See also the Document Object Model (DOM) Level 2 Core Specification.

Since:
DOM Level 1

Member Enumeration Documentation

DocumentPosition:

DOCUMENT_POSITION_CONTAINED_BY: The node is contained by the reference node. A node which is contained is always following, too.

DOCUMENT_POSITION_CONTAINS: The node contains the reference node. A node which contains is always preceding, too.

DOCUMENT_POSITION_DISCONNECTED: The two nodes are disconnected. Order between disconnected nodes is always implementation-specific.

DOCUMENT_POSITION_FOLLOWING: The node follows the reference node.

DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: The determination of preceding versus following is implementation-specific.

DOCUMENT_POSITION_PRECEDING: The second node precedes the reference node.

Since:
DOM Level 3
Enumerator:
DOCUMENT_POSITION_DISCONNECTED 
DOCUMENT_POSITION_PRECEDING 
DOCUMENT_POSITION_FOLLOWING 
DOCUMENT_POSITION_CONTAINS 
DOCUMENT_POSITION_CONTAINED_BY 
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC 

NodeType.

Since:
DOM Level 1
Enumerator:
ELEMENT_NODE 
ATTRIBUTE_NODE 
TEXT_NODE 
CDATA_SECTION_NODE 
ENTITY_REFERENCE_NODE 
ENTITY_NODE 
PROCESSING_INSTRUCTION_NODE 
COMMENT_NODE 
DOCUMENT_NODE 
DOCUMENT_TYPE_NODE 
DOCUMENT_FRAGMENT_NODE 
NOTATION_NODE 

Constructor & Destructor Documentation

xercesc::DOMNode::DOMNode ( ) [inline, protected]
xercesc::DOMNode::DOMNode ( const DOMNode ) [inline, protected]
virtual xercesc::DOMNode::~DOMNode ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual DOMNode* xercesc::DOMNode::appendChild ( DOMNode newChild) [pure virtual]

Adds the node newChild to the end of the list of children of this node.

If the newChild is already in the tree, it is first removed.

Parameters:
newChildThe node to add.If it is a DOMDocumentFragment object, the entire contents of the document fragment are moved into the child list of this node
Returns:
The node added.
Exceptions:
DOMExceptionHIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not allow children of the type of the newChild node, or if the node to append is one of this node's ancestors.
WRONG_DOCUMENT_ERR: Raised if newChild was created from a different document than the one that created this node.
NO_MODIFICATION_ALLOWED_ERR: Raised if this node or the node being appended is readonly.
Since:
DOM Level 1
virtual DOMNode* xercesc::DOMNode::cloneNode ( bool  deep) const [pure virtual]

Returns a duplicate of this node.

This function serves as a generic copy constructor for nodes.

The duplicate node has no parent ( parentNode returns null.).
Cloning an DOMElement copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any text it contains unless it is a deep clone, since the text is contained in a child DOMText node. Cloning any other type of node simply returns a copy of this node.

Parameters:
deepIf true, recursively clone the subtree under the specified node; if false, clone only the node itself (and its attributes, if it is an DOMElement).
Returns:
The duplicate node.
Since:
DOM Level 1
virtual short xercesc::DOMNode::compareDocumentPosition ( const DOMNode other) const [pure virtual]

Compares the reference node, i.e.

the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.

Parameters:
otherThe node to compare against this node.
Returns:
Returns how the given node is positioned relatively to this node.
Since:
DOM Level 3
virtual DOMNamedNodeMap* xercesc::DOMNode::getAttributes ( ) const [pure virtual]

Gets a DOMNamedNodeMap containing the attributes of this node (if it is an DOMElement) or null otherwise.

Since:
DOM Level 1
virtual const XMLCh* xercesc::DOMNode::getBaseURI ( ) const [pure virtual]

The absolute base URI of this node or null if undefined.

This value is computed according to . However, when the DOMDocument supports the feature "HTML" , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the documentURI attribute from the DOMDocument interface otherwise.


When the node is an DOMElement, a DOMDocument or a a DOMProcessingInstruction, this attribute represents the properties [base URI] defined in . When the node is a DOMNotation, an DOMEntity, or an DOMEntityReference, this attribute represents the properties [declaration base URI].

Since:
DOM Level 3
virtual DOMNodeList* xercesc::DOMNode::getChildNodes ( ) const [pure virtual]

Gets a DOMNodeList that contains all children of this node.

If there are no children, this is a DOMNodeList containing no nodes. The content of the returned DOMNodeList is "live" in the sense that, for instance, changes to the children of the node object that it was created from are immediately reflected in the nodes returned by the DOMNodeList accessors; it is not a static snapshot of the content of the node. This is true for every DOMNodeList, including the ones returned by the getElementsByTagName method.

Since:
DOM Level 1
virtual void* xercesc::DOMNode::getFeature ( const XMLCh *  feature,
const XMLCh *  version 
) const [pure virtual]

This method makes available a DOMNode's specialized interface.

Parameters:
featureThe name of the feature requested (case-insensitive).
versionThe version of the feature requested.
Returns:
Returns an alternate DOMNode which implements the specialized APIs of the specified feature, if any, or null if there is no alternate DOMNode which implements interfaces associated with that feature. Any alternate DOMNode returned by this method must delegate to the primary core DOMNode and not return results inconsistent with the primary core DOMNode such as key, attributes, childNodes, etc.
Since:
DOM Level 3
virtual DOMNode* xercesc::DOMNode::getFirstChild ( ) const [pure virtual]

Gets the first child of this node.

If there is no such node, this returns null.

Since:
DOM Level 1
virtual DOMNode* xercesc::DOMNode::getLastChild ( ) const [pure virtual]

Gets the last child of this node.

If there is no such node, this returns null.

Since:
DOM Level 1
virtual const XMLCh* xercesc::DOMNode::getLocalName ( ) const [pure virtual]

Returns the local part of the qualified name of this node.

For nodes created with a DOM Level 1 method, such as createElement from the DOMDocument interface, it is null.

Since:
DOM Level 2
virtual const XMLCh* xercesc::DOMNode::getNamespaceURI ( ) const [pure virtual]

Get the namespace URI of this node, or null if it is unspecified.

This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time.

For nodes of any type other than ELEMENT_NODE and ATTRIBUTE_NODE and nodes created with a DOM Level 1 method, such as createElement from the DOMDocument interface, this is always null.

Since:
DOM Level 2
virtual DOMNode* xercesc::DOMNode::getNextSibling ( ) const [pure virtual]

Gets the node immediately following this node.

If there is no such node, this returns null.

Since:
DOM Level 1
virtual const XMLCh* xercesc::DOMNode::getNodeName ( ) const [pure virtual]

The name of this node, depending on its type; see the table above.

Since:
DOM Level 1
virtual NodeType xercesc::DOMNode::getNodeType ( ) const [pure virtual]

An enum value representing the type of the underlying object.

Since:
DOM Level 1
virtual const XMLCh* xercesc::DOMNode::getNodeValue ( ) const [pure virtual]

Gets the value of this node, depending on its type.

Exceptions:
DOMExceptionNO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
Since:
DOM Level 1
virtual DOMDocument* xercesc::DOMNode::getOwnerDocument ( ) const [pure virtual]

Gets the DOMDocument object associated with this node.

This is also the DOMDocument object used to create new nodes. When this node is a DOMDocument or a DOMDocumentType which is not used with any DOMDocument yet, this is null.

Since:
DOM Level 1
virtual DOMNode* xercesc::DOMNode::getParentNode ( ) const [pure virtual]

Gets the parent of this node.

All nodes, except DOMDocument, DOMDocumentFragment, and DOMAttr may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, a null DOMNode is returned.

Since:
DOM Level 1
virtual const XMLCh* xercesc::DOMNode::getPrefix ( ) const [pure virtual]

Get the namespace prefix of this node, or null if it is unspecified.

Since:
DOM Level 2
virtual DOMNode* xercesc::DOMNode::getPreviousSibling ( ) const [pure virtual]

Gets the node immediately preceding this node.

If there is no such node, this returns null.

Since:
DOM Level 1
virtual const XMLCh* xercesc::DOMNode::getTextContent ( ) const [pure virtual]

This attribute returns the text content of this node and its descendants.

No serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content.


The string returned is made of the text content of this node depending on its type, as defined below:

Node type Content
ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE concatenation of the textContent attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes
ATTRIBUTE_NODE, TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE nodeValue
DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE null
Exceptions:
DOMExceptionDOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a DOMString variable on the implementation platform.
See also:
setTextContent
Since:
DOM Level 3
virtual void* xercesc::DOMNode::getUserData ( const XMLCh *  key) const [pure virtual]

Retrieves the object associated to a key on a this node.

The object must first have been set to this node by calling setUserData with the same key.

Parameters:
keyThe key the object is associated to.
Returns:
Returns the void* associated to the given key on this node, or null if there was none.
See also:
setUserData
Since:
DOM Level 3
virtual bool xercesc::DOMNode::hasAttributes ( ) const [pure virtual]

Returns whether this node (if it is an element) has any attributes.

Returns:
true if this node has any attributes, false otherwise.
Since:
DOM Level 2
virtual bool xercesc::DOMNode::hasChildNodes ( ) const [pure virtual]

This is a convenience method to allow easy determination of whether a node has any children.

Returns:
true if the node has any children, false if the node has no children.
Since:
DOM Level 1
virtual DOMNode* xercesc::DOMNode::insertBefore ( DOMNode newChild,
DOMNode refChild 
) [pure virtual]

Inserts the node newChild before the existing child node refChild.

If refChild is null, insert newChild at the end of the list of children.
If newChild is a DOMDocumentFragment object, all of its children are inserted, in the same order, before refChild. If the newChild is already in the tree, it is first removed. Note that a DOMNode that has never been assigned to refer to an actual node is == null.

Parameters:
newChildThe node to insert.
refChildThe reference node, i.e., the node before which the new node must be inserted.
Returns:
The node being inserted.
Exceptions:
DOMExceptionHIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not allow children of the type of the newChild node, or if the node to insert is one of this node's ancestors.
WRONG_DOCUMENT_ERR: Raised if newChild was created from a different document than the one that created this node.
NO_MODIFICATION_ALLOWED_ERR: Raised if this node or the node being inserted is readonly.
NOT_FOUND_ERR: Raised if refChild is not a child of this node.
Since:
DOM Level 1
virtual bool xercesc::DOMNode::isDefaultNamespace ( const XMLCh *  namespaceURI) const [pure virtual]

This method checks if the specified namespaceURI is the default namespace or not.

Parameters:
namespaceURIThe namespace URI to look for.
Returns:
true if the specified namespaceURI is the default namespace, false otherwise.
Since:
DOM Level 3
virtual bool xercesc::DOMNode::isEqualNode ( const DOMNode arg) const [pure virtual]

Tests whether two nodes are equal.


This method tests for equality of nodes, not sameness (i.e., whether the two nodes are pointers to the same object) which can be tested with DOMNode::isSameNode. All nodes that are the same will also be equal, though the reverse may not be true.
Two nodes are equal if and only if the following conditions are satisfied: The two nodes are of the same type.The following string attributes are equal: nodeName, localName, namespaceURI, prefix, nodeValue , baseURI. This is: they are both null, or they have the same length and are character for character identical. The attributes DOMNamedNodeMaps are equal. This is: they are both null, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index.The childNodes DOMNodeLists are equal. This is: they are both null, or they have the same length and contain equal nodes at the same index. This is true for DOMAttr nodes as for any other type of node. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared.
For two DOMDocumentType nodes to be equal, the following conditions must also be satisfied: The following string attributes are equal: publicId, systemId, internalSubset.The entities DOMNamedNodeMaps are equal.The notations DOMNamedNodeMaps are equal.
On the other hand, the following do not affect equality: the ownerDocument attribute, the specified attribute for DOMAttr nodes, the isWhitespaceInElementContent attribute for DOMText nodes, as well as any user data or event listeners registered on the nodes.

Parameters:
argThe node to compare equality with.
Returns:
If the nodes, and possibly subtrees are equal, true otherwise false.
Since:
DOM Level 3
virtual bool xercesc::DOMNode::isSameNode ( const DOMNode other) const [pure virtual]

Returns whether this node is the same node as the given one.


This method provides a way to determine whether two DOMNode references returned by the implementation reference the same object. When two DOMNode references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.

Parameters:
otherThe node to test against.
Returns:
Returns true if the nodes are the same, false otherwise.
Since:
DOM Level 3
virtual bool xercesc::DOMNode::isSupported ( const XMLCh *  feature,
const XMLCh *  version 
) const [pure virtual]

Tests whether the DOM implementation implements a specific feature and that feature is supported by this node.

Parameters:
featureThe string of the feature to test. This is the same name as what can be passed to the method hasFeature on DOMImplementation.
versionThis is the version number of the feature to test. In Level 2, version 1, this is the string "2.0". If the version is not specified, supporting any version of the feature will cause the method to return true.
Returns:
Returns true if the specified feature is supported on this node, false otherwise.
Since:
DOM Level 2
virtual const XMLCh* xercesc::DOMNode::lookupNamespaceURI ( const XMLCh *  prefix) const [pure virtual]

Look up the namespace URI associated to the given prefix, starting from this node.

Parameters:
prefixThe prefix to look for. If this parameter is null, the method will return the default namespace URI if any.
Returns:
Returns the associated namespace URI or null if none is found.
Since:
DOM Level 3
virtual const XMLCh* xercesc::DOMNode::lookupPrefix ( const XMLCh *  namespaceURI) const [pure virtual]

Look up the prefix associated to the given namespace URI, starting from this node.

The default namespace declarations are ignored by this method.

Parameters:
namespaceURIThe namespace URI to look for.
Returns:
Returns an associated namespace prefix if found, null if none is found. If more than one prefix are associated to the namespace prefix, the returned namespace prefix is implementation dependent.
Since:
DOM Level 3
virtual void xercesc::DOMNode::normalize ( ) [pure virtual]

Puts all DOMText nodes in the full depth of the sub-tree underneath this DOMNode, including attribute nodes, into a "normal" form where only markup (e.g., tags, comments, processing instructions, CDATA sections, and entity references) separates DOMText nodes, i.e., there are neither adjacent DOMText nodes nor empty DOMText nodes.

This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer lookups) that depend on a particular document tree structure are to be used.

Note: In cases where the document contains DOMCDATASections, the normalize operation alone may not be sufficient, since XPointers do not differentiate between DOMText nodes and DOMCDATASection nodes.

Since:
DOM Level 2
virtual void xercesc::DOMNode::release ( ) [pure virtual]

Called to indicate that this Node (and its associated children) is no longer in use and that the implementation may relinquish any resources associated with it and its associated children.

If this is a document, any nodes it owns (created by DOMDocument::createXXXX()) are also released.

Access to a released object will lead to unexpected result.

Exceptions:
DOMExceptionINVALID_ACCESS_ERR: Raised if this Node has a parent and thus should not be released yet.
virtual DOMNode* xercesc::DOMNode::removeChild ( DOMNode oldChild) [pure virtual]

Removes the child node indicated by oldChild from the list of children, and returns it.

Parameters:
oldChildThe node being removed.
Returns:
The node removed.
Exceptions:
DOMExceptionNO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
NOT_FOUND_ERR: Raised if oldChild is not a child of this node.
Since:
DOM Level 1
virtual DOMNode* xercesc::DOMNode::replaceChild ( DOMNode newChild,
DOMNode oldChild 
) [pure virtual]

Replaces the child node oldChild with newChild in the list of children, and returns the oldChild node.

If newChild is a DOMDocumentFragment object, oldChild is replaced by all of the DOMDocumentFragment children, which are inserted in the same order.

If the newChild is already in the tree, it is first removed.

Parameters:
newChildThe new node to put in the child list.
oldChildThe node being replaced in the list.
Returns:
The node replaced.
Exceptions:
DOMExceptionHIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not allow children of the type of the newChild node, or it the node to put in is one of this node's ancestors.
WRONG_DOCUMENT_ERR: Raised if newChild was created from a different document than the one that created this node.
NO_MODIFICATION_ALLOWED_ERR: Raised if this node or the new node is readonly.
NOT_FOUND_ERR: Raised if oldChild is not a child of this node.
Since:
DOM Level 1
virtual void xercesc::DOMNode::setNodeValue ( const XMLCh *  nodeValue) [pure virtual]

Sets the value of the node.

Any node which can have a nodeValue will also accept requests to set it to a string. The exact response to this varies from node to node -- Attribute, for example, stores its values in its children and has to replace them with a new Text holding the replacement value.

For most types of Node, value is null and attempting to set it will throw DOMException(NO_MODIFICATION_ALLOWED_ERR). This will also be thrown if the node is read-only.

See also:
getNodeValue
Since:
DOM Level 1
virtual void xercesc::DOMNode::setPrefix ( const XMLCh *  prefix) [pure virtual]

Set the namespace prefix of this node.

Note that setting this attribute, when permitted, changes the nodeName attribute, which holds the qualified name, as well as the tagName and name attributes of the DOMElement and DOMAttr interfaces, when applicable.

Note also that changing the prefix of an attribute, that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the namespaceURI and localName do not change.

Parameters:
prefixThe prefix of this node.
Exceptions:
DOMExceptionINVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character.
NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
NAMESPACE_ERR: Raised if the specified prefix is malformed, if the namespaceURI of this node is null, if the specified prefix is "xml" and the namespaceURI of this node is different from "http://www.w3.org/XML/1998/namespace", if this node is an attribute and the specified prefix is "xmlns" and the namespaceURI of this node is different from "http://www.w3.org/2000/xmlns/", or if this node is an attribute and the qualifiedName of this node is "xmlns".
Since:
DOM Level 2
virtual void xercesc::DOMNode::setTextContent ( const XMLCh *  textContent) [pure virtual]

This attribute removes any possible children this node may have and, if the new string is not empty or null, replaced by a single DOMText node containing the string this attribute is set to.

No parsing is performed, the input string is taken as pure textual content.

Exceptions:
DOMExceptionNO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
See also:
getTextContent
Since:
DOM Level 3
virtual void* xercesc::DOMNode::setUserData ( const XMLCh *  key,
void *  data,
DOMUserDataHandler *  handler 
) [pure virtual]

Associate an object to a key on this node.

The object can later be retrieved from this node by calling getUserData with the same key.

Deletion of the user data remains the responsibility of the application program; it will not be automatically deleted when the nodes themselves are reclaimed.

Both the parameter data and the returned object are void pointer, it is applications' responsibility to keep track of their original type. Casting them to the wrong type may result unexpected behavior.

Parameters:
keyThe key to associate the object to.
dataThe object to associate to the given key, or null to remove any existing association to that key.
handlerThe handler to associate to that key, or null.
Returns:
Returns the void* object previously associated to the given key on this node, or null if there was none.
See also:
getUserData
Since:
DOM Level 3

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/PlatformUtils_8hpp__incl.map0000644000151400015140000000003511653571064020230 00000000000000 XQilla-2.3.0/docs/simple-api/Numeric_8hpp__incl.png0000644000151400015140000002076011653571064017043 00000000000000‰PNG  IHDR£uõ$bKGDÿÿÿ ½§“ IDATxœíÝyX×Úð“0@”UAQAVmëSQQÀ"®õC즷 ·­ýjqyìWõV+ôZkպöwD1PT­+"‹`DT˜`B’ùþ8÷›“IˆHVÞß_aÈœyçÌ›y“™äA&Š®ï EPéS•0ePéSf¦ï0VW®\Ù²e‹¾£0tyyyú€þ*=½Äår/^¼8eÊ}b š››+++õ*=ogãÆúÁ@üãÿÐw¸O˜4¨ô€)ƒJ˜2¨ô€)ƒJ˜2¨ôhWxxø¦M›ä§’jhh×Þߨýððð††íÐ;¨ôhÝ•+Wòóóu¶9‹§³Í Tz´ŽÍfÿòË/<O7›³±±IHHÐͶ†*=Z·páBíÛ·Ë_ÃG¯_f—žýñÇÏ™3çØ±c¹¹¹qqqÑÑÑÄOH${öì™;wîܹs÷ìÙ#‘HðêÅÅÅ‹-ÊÉÉÁMI¥ÒC‡-Z´hΜ9ÉÉÉB¡2¼¢¢¢øøx6›}ôèQ2’?ÿüóÃ?œ;wîÎ;»»»)j©»} *=ZG§Ó×­[w÷îÝ .h¸ÊÝ»wýõׄ„„}ûöݸqãÀ+V¬8räˆ@ @¥¥¥555íÝ»wûöíÅÅŇÂk:ujݺu£F¦¥¥&''ïØ±ãÙ³g©©©”ÛºuëÖ¾}ûÖ¬Y³ÿ~Ü>BèܹsÉÉÉ[·n½uëÖ±cÇÔ,8¨ôè‚»»{BBÂÎ;›››5yþ¢E‹¬¬¬¢¢¢B‹/¶²²š1cB¨½½!”ýÕW_9991"11ñöíÛx­„„„àà`&“‰ÿÌÊÊZºtéˆ#<==×®]ëçç§f['N$ÛG­X±ÂÝÝÝ××÷oû9K åB€ƒqïБ¹sçnÛ¶í«¯¾Rþ¯Â…}+++„™™™ÂcìùóçóçÏ'ÿ´¶¶Æ<<<äár¹îîîøñ°aÆ F˜ƒƒBˆF£É/$WôððhiiQ³`à Ò #4míÚµK—.ÍÌÌ”_.•J Fkk«æMÙØØìرÃÍÍ !$ ÉïúÉ¿@988<þÜÓÓ!TSSsóæÍ%K–P¦¼°¾¾~Ĉ¡gÏžá·ª \½@w\]]W¬XqêÔ)ü'‹ÅBåææ¾zõ*==]óvÂÂÂöíÛÇårkkk׬YsîÜ9ʧEEEíß¿ÿñãÇ?þ׿þÅårñò¬¬¬ŽŽõ›ØµkWCCÃ_ýµÿþÈÈH5 >Ó Sl6ûêÕ«EEE!›eË–íÞ½;55õóÏ?¿zõª†,[¶l×®]Ÿ}öF›4iRbb"å%øøøÎÎÎÕ«Wwvv¾÷Þ{‰‰‰xùO?ýD^ó§ñÍ7ßtvvN›6->>_«WXøf{КÂÝA€†N:µhÑ"]‰£ K–,QØ/Ê…êáùéá €ÞÁÕ{À”A¥¼ÆÚÚšÍfk²` Ò^ckk»jÕ*MŒTzÀ”A¥LTzÀ”A¥LTzÀ”A¥LŒ† À[IJJ"ËdD"G&³…Áë1$=‹Y ‹É|A§wóù|}‡@*=½6tèÐ… "„Äbú‹V­­–ƒ!ss³±·ïÔ}<<³¶ÖfÜ8®î7Mjl´®«³yùr”M—««hìØñz €Á¸÷ô—û’Ã)MK+*+{æàÀš3'„Í Î`èç¦Øùó%Ë—ÿÞØ¸C/['‰Å’[·jss+Ο¿×ÒÒîííÂf²ÙAÞÞ.ú €~ *=o¦¥¥=#ã‡Sr÷nµõ€éÓýÙì É“G[Xèù ™Tz’T*»{·ŽÃ)ÍÌ,árÆ9DDø±ÙãÇ{Òh4}G@?•¼x!<{¶˜Ã)).~ÂdšÏœ9–Íš4iô€†r ÌÐ*=I&#ŠŠçåUfe•ÖÕµjå%J€:íí99åiiEׯ×XX˜EG°ÙAaaÞL¦¹¾CSd°•^ÞÇÏ33Kλ÷èQó!¶S§úFFú…‡ûš™Áï€Ð¨ôPèèèúã²ÌÌÒ‡21eŠOLLàôéc bê;4•Œ¢Ò“pÉÏË«,+{fgg=mš/›4eй9Cß¡`j Òð¯^‰³²J33K¯^­’Je¸ÀGEùÙØXé;´žW¥'=yò"/¯‚Ã))*ª4È22rŒ|ï“•ÔÝ--(ø+-­èâÅJ±X2uªoLL`DÄ;;k}‡öŒ´Ò“êëù99å¸ä3™æ'ŽŠ‰ œ93€Å ïÐ0nPéAÿ… <‡S’—W)ˆÆÎfÅĺ¸Øè;´Þ0öJOjjj»téA^^E~þ33FX˜·áß:ÀA¥ýŽD"ËÏÀá”\¼Xùòå¿ ü¬YC†Øê;´·b2•žÄçw\¼X™™YZPðF{÷Ý‘‘~±±ÁƒÔwh¨ô ¿ âÎÇNiVVéóç/Ç÷d³ƒ¦O÷:Ô^ß¡õ Ó«ô¤—/_åæV\¼XyéReW—$$d›Äf:;åÕt *=0qdÏÎ.kll9Ò)66Ø$‡l3áJO‰Ä×®Us8%99å¯^‰CC‡GEùEGî¨ïÐ0\Péɺ}»–Ã)½p¡¼¾žïé9xÞ¼˜˜ Ñ£M­À“úC¥'uuI r8%¹¹÷‚N<æîœ9!^^Nú ƒ•˜šššæŒŒb§´ªêù°a Œ3íOêW•žD޹+?Ì~d¤_@ÀP}‡€¡€JLÄãÇ-ééwqwvÄfŽçI§÷—ñVûg¥'É ³_Ê径aö A¥Æ­®®õÌ™"\à8{vp+ð¤~^éI2qÿ~}^^Å™3wëêZÝÝí¦O %ôgPéQârN ž1ÖÞÞzîÜPýÎk Ò+ÃcîfdÜ«©ivuµ6 †ÙýTz`L vÆXC•^ fôgPé0üc TzM<}ú"7÷µaö##ý¦Mcee¡ïÐШôÀpÑŒ±†*ýihàgg—ãëCÀ0ûÀ”A¥ÇgŒ5Pé{çÅ áåËð˜»t:mÒ¤ÑoÀÄ@¥†B$gfþ{ÆX‰DîkD3ƨôo©­íU^^.ù2ÇÜ…aö €JôŒœP.7÷¾PØõþû£,gt3ƨô}E ]¹ò0/¯";»¼³³†ÙÆ*=Л1Ö@¥ïsÝW¯Vq8%.Üïèèò÷wŒ3o^¨§ç`}‡À€JtŠœ1öÒ¥mm¯pŸ9s¬››¾C3zPéµ³?å¿x!ÄcîÆÆ†Œ Ãì#•è‚ÂŒ±C,gJ3ƨô:@޹ËáÜkn†aöq€J´HaÆX//§9s‚ûÉ|3º•^—d2¢¨è?o^=<"#a˜}`  Ò­À3ÆææÞöŒ×fŒ5Péõ‚f?=½øñã77»3ÆöÛÉ€a‚JúR¿1Ö@¥×;<æîùó%ÕÕ\{{ë©SaÌ]` Òƒ>3ƨô†ãáÃç/VäæVܹóØÖÖ*"b ”| GPéAï=yò"-í.ðŽŽ¬ØØ(ðz•Þ={Æ»pá>fà@æäÉ£#"ÆÌš`m cîÝJÞž1nkk3ƨô†¬±±í?Êòò*nܨ13c„…yÇÄΘ1và@shTz )ùc­¬,fÌ 3ƨôFÇë¸t©R~˜ýÈH¿™3Ç:8°ô0YPéAx¼Žôô»0c¬áƒJo\Èaö¯\y(•Ê𘻳g;9Á0û A¥ÔðŒ±ø4„š>ÝÁ‚q0c¬!ƒJo¤D"ñµkÕNIvv¹H$ …‘¡AƒJ^£bÆXÿAƒ,õPÔØØöÉ'$)þS$êæñ:ÜÜlÉ'Œ3d×®%zм1fh Tz€Ìk´&MJ®©i¦ü†’’f~ýu”ŽCof?'§¼µõßÃìÏžS&#þü³úôé;—.=àó;Æ÷„cM›ý˽{Oe²×^ÈffôM›æ,]¦¯¨€öà1wÏž-®­m2ÄvæÌ€¨(¿ Fš™i: —ûÒÙ¾î×@¥7nÅÅO>ýô`LLÀ?ÌWõ…cÇŽu_¸p<Ìk2~ÿýÏï¾KW¸€Ï`ÐJJ¾‡Ÿh›6\òñ •š³_]ÍÝù¿ÿ»$<ÜGg¡ý‚JoÄŽ¹þí·g¤R™Uyùf…!êÈŸ“SÞÐÀ‡cM׸A*ýO¥g0èï½çuúôßõÐ¥'O^äåUà1wml,ñ0ûªFµúå—ÜmÛ²B_~¹zõ Ú²?€Jo”^½ýõñÌÌÒÿ?|´ãÇ'Oÿ[Vöìôé"0ôa¿ýö‰³ó }D´ >ö‡¶¶Wññ{wï¾Lå›333zMM3”ù~kÞ¼P™L†²´4ˆðÓw8Àà8;š:ÕG  (ó!©TV\üdÊ” ê<4 uPé@IÉÓðð¯]«QsF"‘æä܉ĺ Žðp_KK  Íœ9¦”rr©'•ÊÚÛE‹ïݾ=Gax`ì^;#ˆD">Ÿ¯¯P¥K—ª6lÈêê’"ÔÃk¯³³ûÌ™ëS§zë&0ÌÒÒÒÎîmÞáóù"‘¨OâéÏ""|Ο/ ÑØØ¨ïXŒž¥åÛÎêdhâÌ™ÛR©ºÓ.ðÛ·_¸}»fóæhk€š'C6dÈù?_«ôíííUUUº¨DDVÖ£³gvuI4\%=½ÈÝ]«A)‰§?óócåç°±é‚WñÛ3fÌÛWzƒ:mm]M~1ëúõÚO>ùýóÏCÝÜj;0  ê*=6eÊÅzþÓOË¥R™PØ©¼œN§ëò·U}ÕÔàÁƒýüàîò[™4‰ Ñì§M ×w F¯   ¯š3fŒ““S_µö6x¼ŽãÇ=ñcKKs<¨‹ÅÄ#çØØXÒhˆF£?Î4nÍÍÍ••• á~žQb0è0Ÿ,P@§Ó§è; ` ìí­ÃÂtzkøF¦~|P•0ePéS•0ePéSfô•þéÓ§Ÿ~Úód555x"òüê÷îÝ333;}ú4¹<##â¼¼\1+ É>|øG}¤þÇåA,Y²„ÅbiÞ~MMM_Dj”µÂA§„3áMûV÷Ô싆ÉÜÑѱfÍšÀÀ@‹õÎ;ï$''K$Ô«~£Qé«=íQ¿Jì·ÉjMžùöNÅ›7o¦Ñh)))oÓfŸ4¢@}oœ8q‚2«KJJú0ݧ®ÑWúsçÎÍ™3‡ò_µµµŽŽŽø±­­íÚµkU­¼~ýú•+W¶µµ!„^¾|ù÷¿ÿ}ãÆcÇŽÕ^äò®_¿ÞÔÔT__èÐ!@‚#¡ÔØØxôèQå_LLÕ±Vg‚Q÷­&ÉÜÞÞ>nܸ[·n¥¤¤¯[·.555**J*•ö®ßpêÊëÛ’÷go“ÕäºZíLùS1A'Nœððð8yòd¯¤läíwA}OÆÆÆâ4¾~ý:BˆÌj£íƒÃåróóó £ýêÕ+ÊUWW+ì òBrõ®®.ÿ„„‚ –/_*‹µõkBÕÕÕäŸ2™lÒ¤I6lPõ|ÊýÒ¼ý>tÿþýû÷ïN; ÈŽÒ¤Çp&¼ißêžš5I椤¤°°0‰DB®% ‡¾gÏåMôØÚK-å`t¹õüü|.—k8íÈëEV+¯« òÛ*--¥Ñhyyy¡‡ö®AÊFtö Õꆴú¡¬ãoü™þüùónnnxxüãÇ{{{wtt „º»»W¯^íìììää´zõêîîn|‘äÒ¥K7nôððtèÐáÇÍÍÍUÙ‡»¦ŒF£-_¾<++KU;òû¥a›¹¹¹#GŽ´³³KNN&{###côèÑNNN+W®ìêê¢\¨iZheâÉd²]»vùúú8p„ ùùùø²˜š«s™™™ÁÁÁVVV®®®äUA2”såk×®Q®H£Ñ<èëë;xðà”””#GŽxzzÚØØ|÷Ýwø ʇo„ ;vì@ñx<:ž””„’J¥vvvø ·µµ}òÉ'ŽŽŽîîîIII ‘à– ‚HJJ jmmE'sjjê† ŒÿüìÞÚÚzÍš5GíE¿½ÑÁR•`ê÷wÔ¨QH.Û{bë&«)O‰HÅ9ªÇ”¦<áȧBèĉ“'OŽˆˆðññ‘ÿDN£ÑŽ=êëëkooÿÏþ!´råÊeË–áÿ …B++«{÷î©iDa”“§Ç] {CUY¡D§ªÔ¢ìXºNÝß (ûè£>þøãçÏŸ;;;ߺu /üñÇçÏŸÿôéÓ²²²uëÖá÷D3gμ|ùò¦M›üüüÊÊÊÊËËß}÷ݤ¤$Uk …ÂìÙ³§©©éÀfffB¡pÛ¶m”«55!ÔÜÜL¨M$|”›šš(WDÅÅÅ ‚ýû÷#„>øà@°wï^ÜÏÕáûþû£ ‚ÈÈÈ4hPHHAEEEL&³££ƒ ˆøøøiÓ¦=zô¨¬¬Ìßߟ<48|¿P&“‘eG«I2ãŠÒÒҢб7nܰ··ïE¿!„JJJÚ_§ê`©J0Mö—2´—غüL¯Ë¬VøœªœœDO)­ê„#Ÿ~2™ÌÓÓsïÞ½A|ûí·~~~äB ,àóùûöíC½xñâÊ•+ÝÝÝA¤¦¦úùùÉd25(ì‚ròô¸ d ªÊ å†(ãT•Z”+O{©K¨¨ã½©ô|>ßÝÝ= @~«>>>MMMøq^^^PP޲¬¬Œ ˆÑ£G§§§ãÿVVV’•×âñxæææ?ýôŸÏ—ÉdíííR©TÕêóçÏçñxDo+=¹:&“Ébcc Æ’%Kä÷W«»FôTéUm/QÕ¦<„PAAAR©oK>~‚ Nž<9räHÊ…„Z:®ôʉçççwøðaò ¿ÿþ»úsbWW׃„B¡T*½rå Ùój wˆªBÅÅÅAˆÅb…Çø ʇ¯¨¨ˆÅb‰ÅâU«V­_¿ÞÜÜœÏçoÛ¶mÖ¬Yx]ƒAöFzzºÂ¡Á׬Yƒ^¿.ªI2ãJO¾9 ]¿~ÝÑѱý¦æÃƒòÁ¢L0 ÷—2´—غ¬ôºÌj…ÎTNN¢§”Vu‘O¿›7oš™™á4»{÷.B¨¼¼ÿ !„K Ù D"qqq¹téA³fÍJIIQ߈ü.P&O»@¶ êÔ)ôeœªR‹²cåi/u‰¾ºz²µµMHH¨¨¨X±b¹°®®ÎÕÕM122òñãÇx¹BèÉ“'ø*BÈ××wîܹªÖ²³³ËÏÏ¿y󦻻ûäÉ“¯^½J§Ó)W …ÝÝÝÊ©šMÖ¤¼úÑ£G ._¾œ–––‘‘¡›]£Œ­ººÚËËKýÖ1 ÛÄó)ü‹ ÛÇǧ¾¾^ÍB¡œxµµµAAAäÔ·`aaQUU5cÆŒÐÐÐÇã…ª ÃG™rElàÀ!|y\þ1¦|ø‚ƒƒ­­­ïܹSXX8{öìàààÂÂÂüüüèèh„—Ë•J¥äÑ9r$yp$Ø;w¦L™²uëVU»@™Ì¶¶¶...Êß".))‘o\Ã~Ôo7’ÛR>K ¥ÓpU1ÄÖKVcªÎ-jRšò„£°­'NH$GGGŠ’¿€Ù ƒÁ˜7o^zzzkkëÅ‹ããã5iS“<ê_•˜ªS7%Uq"ªÔRÒ–ï¥no*ý³gÏvíÚñÍ7ß ñgüRçóù7oÞÄËqÿ2¤®®/)))ùá‡T­%‰d2ÙéÓ§y<Þ²eËØl6Ç£\=''gÆŒòá 544h² «766®\¹rÛ¶m“&MÚ¸qcbbâ‹/t°kÊñ믿â󾚭c¶Iy‡¿aDUUU‘SR.4Ê‰çææVZZJ>¡Ç¹õD"Ñ|°zõêâââÝ»wã…ʉ$eÊ5¡|øètú¬Y³222ªªªBBB¦Nš——WXXˆ¸³³3ƒÁ¨­­Å«?zôÈÍÍM>ŒÃáìÙ³çĉùùùÊ» &™ããã7oÞŒ?I „âââŽ?ž’’÷¦ý¦åY)%˜†û«Š $¶^²SnQµ-åŽü¶¤RéÉ“'þùgònΪU«Nž²$÷Á É]) ¯®®¾}ûö¨Q£6lØ@¹P}2èòê=eâmݺÕÉÉéܹsMMMÙÙÙ=ÞÑäóù4-;;ÿ¦!T\\,Ÿ ”w|T­HPõ­ÂcåÃGÄéÓ§Y,Vdd$Ayyy,Kþ^æâÅ‹§M›V[[[^^îççGå¨6nÜèíí-‰4Oæ—/_Ž=:<<<''çáÇëׯG999uuu½i¿r©+OÕÁR•`šì/yû_7‰­³«÷:Îj…ΤLNõ)My‘ßV~~>ƒÁß뢢"õ¯‰Dâäääìì|èСQØåäéqÈÞPuêVè4’rœªR‹²cu“ºD_ݧ߹sg`` þÑÎÙ³g]]]ñí@ðé§ŸÚÙÙ988$$$tttÈ÷TgggRRÒ!Clllâââø|>^®¼A'Ožôòò²°°ðññÉÈÈ \],ãûš¤-[¶ØÚÚzyyák•AtwwOœ8‘ÅbJ¹®°úáÇ  ×óöíÛt:=--MÛ»F¼þ.uèСñññò)®~ëjÚì1×÷ïß?lØ0GGÇ/¿üR$Q.TŸ º¬ô”‰'‹¿ÿþ{OOO‹5a„cÇŽ©?'ñóÏ?ÛÛÛ:t÷îÝqqqvvvò™ ª¦*¯èääDhPé)Ó ­­ÍÌÌ W®££ÃÂÂbÍš5ä†x<Þ‡~èàààêêúõ×_“‡F9*‘Häíí½~ýzÍ“™ ¡PøÍ7ßøûû3™L//¯o¿ývòäÉ‹-z£~#wŸòÃåÁR•`ê÷WþUÜc‡÷Ubë¬Òë8«:“29{Li…Ž* *j™IDAT¹4111**J~e2™——×ÚµkÕ4¾|ùrKKK@Ðc# » œ<=îÙªNÝ &O!NU©Õ‹Ží«Ô%úðyÀØQ&1åBõ í÷ô½Ø@DWW×7´½¾Jlƒú=}Èêõë×/^¼XßQôL!Î><4}•º„Š:nFù®ÐXXXàŸ) c<~ü¸¾cQÇXâTÅèGý0hРÄÄDMÐWt`ØFçÖ­[ãÆ[ºté”)Sô‹:”qöaji;ui„ÜÍ¶æææÊÊJïq`8ð·‚ß~Dè¾j€>QPP0fÌ'''iÍQÖqøL˜2¨ô€)ƒJ˜2¨ô€)ƒJ˜2ŠßÓ766ê>`Œ:;;™Lf_5‰LO[[žÝ …Ê )*}UU•öƒ&¢¯*=žÇ¢OšÀpÀûW`^û==L ܧLTzÀ”A¥LTzÀ”ý<`ý·kcIEND®B`‚XQilla-2.3.0/docs/simple-api/classxercesc_1_1XMLFormatTarget.html0000644000151400015140000002104511653571065021537 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

xercesc::XMLFormatTarget Class Reference

#include <XMLFormatter.hpp>

Inheritance diagram for xercesc::XMLFormatTarget:

List of all members.

Public Member Functions

virtual ~XMLFormatTarget ()
virtual void writeChars (const XMLByte *const toWrite, const XMLSize_t count, XMLFormatter *const formatter)=0
virtual void flush ()

Protected Member Functions

 XMLFormatTarget ()

Constructor & Destructor Documentation

virtual xercesc::XMLFormatTarget::~XMLFormatTarget ( ) [inline, virtual]
xercesc::XMLFormatTarget::XMLFormatTarget ( ) [inline, protected]

Member Function Documentation

virtual void xercesc::XMLFormatTarget::flush ( ) [inline, virtual]
virtual void xercesc::XMLFormatTarget::writeChars ( const XMLByte *const  toWrite,
const XMLSize_t  count,
XMLFormatter *const  formatter 
) [pure virtual]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classATDateOrDerived-members.html0000644000151400015140000005132311653571063021100 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATDateOrDerived Member List

This is the complete list of members for ATDateOrDerived, including all inherited members.
_ref_countReferenceCounted [protected]
addDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext *context) const =0ATDateOrDerived [pure virtual]
addTimezone(const ATDurationOrDerived::Ptr &timezone, const DynamicContext *context) const =0ATDateOrDerived [pure virtual]
addYearMonthDuration(const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext *context) const =0ATDateOrDerived [pure virtual]
ANY_SIMPLE_TYPE enum valueAnyAtomicType
ANY_URI enum valueAnyAtomicType
asString(const DynamicContext *context) const =0ATDateOrDerived [pure virtual]
AtomicObjectType enum nameAnyAtomicType
BASE_64_BINARY enum valueAnyAtomicType
BOOLEAN enum valueAnyAtomicType
castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [protected, virtual]
castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
compare(const ATDateOrDerived::Ptr &other, const DynamicContext *context) const =0ATDateOrDerived [pure virtual]
DATE enum valueAnyAtomicType
DATE_TIME enum valueAnyAtomicType
DAY_TIME_DURATION enum valueAnyAtomicType
DECIMAL enum valueAnyAtomicType
decrementRefCount() const ReferenceCounted [inline, virtual]
DOUBLE enum valueAnyAtomicType
DURATION enum valueAnyAtomicType
equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0ATDateOrDerived [pure virtual]
fgDT_ANYATOMICTYPEAnyAtomicType [static]
FLOAT enum valueAnyAtomicType
G_DAY enum valueAnyAtomicType
G_MONTH enum valueAnyAtomicType
G_MONTH_DAY enum valueAnyAtomicType
G_YEAR enum valueAnyAtomicType
G_YEAR_MONTH enum valueAnyAtomicType
generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicType [virtual]
getDays(const DynamicContext *context) const =0ATDateOrDerived [pure virtual]
getInterface(const XMLCh *name) const =0Item [pure virtual]
getMonths(const DynamicContext *context) const =0ATDateOrDerived [pure virtual]
getPrimitiveTypeIndex() const =0ATDateOrDerived [pure virtual]
getPrimitiveTypeName() const =0ATDateOrDerived [pure virtual]
getPrimitiveTypeURI() const AnyAtomicType [virtual]
getRefCount() const ReferenceCounted [inline]
getTimezone() const =0ATDateOrDerived [pure virtual]
getTypeName() const =0ATDateOrDerived [pure virtual]
getTypeURI() const =0ATDateOrDerived [pure virtual]
getYears(const DynamicContext *context) const =0ATDateOrDerived [pure virtual]
gXQillaItem [static]
hasTimezone() const =0ATDateOrDerived [pure virtual]
HEX_BINARY enum valueAnyAtomicType
incrementRefCount() const ReferenceCounted [inline]
isAtomicValue() const AnyAtomicType [virtual]
isDateOrTimeTypeValue() const DateOrTimeType [virtual]
isFunction() const AnyAtomicType [virtual]
isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicType [virtual]
isNode() const AnyAtomicType [virtual]
isNumericValue() const AnyAtomicType [virtual]
isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
Item()Item [inline, protected]
NOTATION enum valueAnyAtomicType
NumAtomicObjectTypes enum valueAnyAtomicType
Ptr typedefATDateOrDerived
QNAME enum valueAnyAtomicType
ReferenceCounted()ReferenceCounted [inline]
setTimezone(const Timezone::Ptr &timezone, const DynamicContext *context) const =0ATDateOrDerived [pure virtual]
STRING enum valueAnyAtomicType
subtractDate(const ATDateOrDerived::Ptr &date, const DynamicContext *context) const =0ATDateOrDerived [pure virtual]
subtractDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext *context) const =0ATDateOrDerived [pure virtual]
subtractYearMonthDuration(const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext *context) const =0ATDateOrDerived [pure virtual]
TIME enum valueAnyAtomicType
typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicType [virtual]
UNTYPED_ATOMIC enum valueAnyAtomicType
YEAR_MONTH_DURATION enum valueAnyAtomicType
~ReferenceCounted()ReferenceCounted [inline, virtual]
XQilla-2.3.0/docs/simple-api/inherit_graph_18.md50000644000151400015140000000004011653571063016356 000000000000008f5f82737ddc2faa6eea51761ae7155bXQilla-2.3.0/docs/simple-api/StaticContext_8hpp__incl.png0000644000151400015140000033102211653571064020231 00000000000000‰PNG  IHDR=«F‹ébKGDÿÿÿ ½§“ IDATxœìÝwxSeûð'»ÙéL÷¢¤-ÈP-CåÄ /*"úÃñ¢Å "È+²P|ÅQ7@VY"²¤iié M:Òfïä÷ÇSޱ»Ð6iûý\\\§§çœÜçô$99wîçfy½^Øþ ò(·€@¼ ®¿hÀk¯½¶ÿ~GÑ}-\¸pèСþŽº#ä- >}úÏ?ÿìÝ»·¿éŽöîÝ;cÆ GÝò z÷î™™éï(º£½{÷ú;è¾Ðßò(·€@¼ ä- PpýÀ•³Z­›6mÚ¿¿N§ 1bĤI“ø|~«6réҥɓ'ïÙ³§‰eªªªÖ®]{æÌ½^Ÿ0iÒ¤ŒŒŒ«‹ýj >|óæÍ111þ  m¡Þ:±•+Wæææ¾úê«YYY ,8xðàºuë!eeeãÆkbEß$Éĉ›XØ`0LŸ>] dff®[·îÖ[o}íµ×Ž;ÖªP› © ×è¼·€NìÀ3fÌèÙ³§B¡èÛ·ïœ9sš0aÂÝwß½xñb“ÉDWß¿ÿ}÷Ýçû¸?üð‚ è´ÉdZ²dɸqãxàµk×:BÈðáÃwíÚõðÃßu×]_|ñEý\.׺uëî¹çž{î¹gݺu.—ëСC÷ß¿Ñh$„üúë¯S¦L±ÙluÖªãøñã“&M;vì§Ÿ~ÊìÈÁƒ§L™rÏ=÷¼÷Þ{N§³Á™mrðÚòЉ͟?ÿĉ÷ßÿüùó³²²´Z-¿fÍBÈ·ß~K±X,/¿ürÏž=7oÞãÆsæÌ ¥É³ÙÜàÖ¶oßþè£&'''%%=÷Üs½{÷&„x½^B‹Åjp—˵{÷îÙ³gGEE%''O:uçÎôWwß}·D"¹ýöÛ !õÇzúé§Ÿžzꩈˆˆäää™3g=z”2{öì'NÌ›7oܸqiiiÍîþ„ D"Ñ-·ÜB¡…„Y³fÅÆÆ¦§§OŸ> ¦Á™ˆëï®Íf;tèаaÃÒÓÓÓÓÓ§L™²iÓ¦uëÖ1Âw1.—[RR²lÙ2«ÕÚ³gÏ&6¨ÕjcccétBBBBB!D*•Ò4uþüùÿþ÷¿ï¾û®Á`ðx<ÑÑÑt~LLLEE £Þàci4ß±§Äb1!D"‘Œ3æã?^¾|yKŽ@hh(©—Sav!>>ž ¦Á™y €nÊ`°y½Bˆ×Kôz+év{L&v8\Vkm#«Õa·»è´Éds»½tZ¯·\^Ñk4Ö®ètº,¶ÙœÌŠf³ÝétÓi£Ñæñx !^¯×`¨}t—Ëc2Ùé´X,—J›¹½îõz_ýõøøø””B‹Åºá†¶nÝZg1»Ý¾hÑ¢E‹ÝtÓMN§ó§Ÿ~jlƒ¡¡¡&))‰’——wøðáÉ“'Bn¾ù欬¬W^y…ÉìܹÓår ‚àà`6›]VVF“¥¥¥4]A/Ñ ärùŠ+bbbÈ塨!åååß}÷Ý€Ö¬Yóâ‹/6½û=DIIIrr2!¤¸¸˜&6› €·è ‡ËjuBœNÙl'„x<z¯ßë%̽{½ÞJ&bÒf³ÝårB¬ÖÚ€Ýî´Ùœ„§ÓM3.—›Þñ÷z½CmþÀ`¨Ý”ÑX»)‹åïÌÁ“H‡NËåBzçœÅbÉdB:“Çc‹D:Ä âÑéðp)W»¢TÄf׎]¬PÔ®Èf³¥Ò :ýÉ'kŽf" …£Fzå•Wž|òÉ„„N·víZßb «Õ* N§Ëåâr¹‡cÓ¦M„‹Å"‰˜˜åGµaÆÈÈHBȻロ˜˜HçO›6íá‡~óÍ7ï¾ûn¡P˜ýí·ß.^¼˜Âår‡¾råÊyóæÙl¶7ÞvÛmMÄÌW(äBx<ŽX, s$äŸù&© ‘q8lBˆX,àrk³2™ÍfBX,¬ÂåÖn"Ô> !D(äóùúò‡V´d4£ |òÉ'ëׯ¿téRppððáÃyäBHdddŸ>}î»ï¾üQ"‘Ìš5ëõ×_ …>øàˆ#,Xðõ×_3 0[›4i’Íf›?¾Íf4hÐÌ™3é|…BñÁ¬]»633ÓjµÆÇÇ¿ñƃ ¢¿}ê©§V­Zõøãóx¼[o½uÒ¤I †ê!dÚ´i«V­š1c‹Å2dÈÌ™3¿ÿþûššš‰'r¹ÜgžyæwÞéÓ§Oµ–-[Ö¿ÿ¦ó·ÝvÛܹsm6Ûˆ#&MšDG…ª3³ù# à',úÕ€f2ÙÝn73.­¨“E`ªl6§Ýî$„ÔÔü#©`0X½^b·×Ö1ЧÓm±ØéC¸\&ßÐBr¹ˆÄ¥U<‡–p¹lzCŸÍþGb€NÈdB:bX̧%Ì~ vS|>W$âB8¶DB7õwySs •Ö¦º¹ñãÇWTTdffú;ÎäÒ¥K“'OÞ³gO³3›6|øð¬¬¬ñãÇ·u€ÍC½Ô¢å6›ÓfsÑ[ÿn·—¶:°X‡‹€Èj¥?Ö–&0I…:YZ‚À´: C¹\n:DRK0¥L¦˜jZ1 ‘""¤äòÐC<G,æBÄâ .—Íá°$’ BˆH$àó9,K& "—ó ,Vmî!(ˆ/à#€Ÿá¢ ÐÑ>É4Àdh¯c›ÍIÿÑiZ…КÅZ:~­9`’/(ˆÇ”0 èú[r9ÙÀüHÛÂ…à ˆÅâ±cǶd&@ÀBÞ ÑZÚÛ€V0 6¯×«×[=¯Á`¥y:>­Ep8\VkmjÁbq8nßÒ¦™s³˜ê:â-MJl6["("‘ˆÏãqD">Ç y—æ hùňËåˆÅô›ýÒ„v=npõ ųÏ>Û’™ < [3mn·G¯·ÒÁ‹|óV«ÓápÑüm“`4Z=¯^o½œ„ðv:žmÝÌ4]hÍдfÒ …(:ZA;-s¹º ­B¸<Á ™ÜG$p8l©TÀb±i‚ SCÞ: ½Þâ;3êQM¥þ(Iz½¥þøHz½¥%ƒ#q8l‰$ÈwØ"ߎè´R) â5½ á 3*+³””TGG+Ð%:òÐîôz‹Ýî¶Z&“Ínw™Ív:2’Ñh£E ´X¯ôÏÍFÐr½ÞÒÄ£ðù\¡/ñù|ŽTÄår¤Ò >Ÿ£PˆèHRi‡Ã–Ë…t$š]H‚¸Ü¿gÒ~ÎtºÃŽ@Ú´IýÖ[¯òùÜää𤤰¤¤ðääpú¿R)ówtЕ!o2™ì4‘@3 z½Õnw]N?¸Íf›Åâ°Û]ƒ•V3 V‡Ãe6;Ìf»Ýî4ítÅÆ¶ßH"AÀårB¹\¶X\[ô  x<ŽL&äñ8‰€V3Б”är!‡Ã–J1D@[Z° ßàÁ·UVVUíÚuîÂ…r·ÛÃãq¢£ññ¡ ¡*Udjjd||h\\*3 M oй\³Ùf4Úm6§Åb÷I?8ív§Á`¥#)V»Ýe±8h_ƒÁF‹ôz+m+ÝØö%-_ ½är!mºÄ‰b1ŸÏçÊdBšŠË…´…ƒDÄçs¥Rš<8‡•šš‘ñ÷L§Ó]ZZC“99µZ“­..Öy<^šÌP©"UªHºb||h||‹…d´>+"šB°Z´£ƒÕê4¬‹ÃjušÍ6“Énµ:,‡Á`³Z6›S¯·Ò ƒÁf±ØNwƒ›¥Ù…BH‡T’J|>W" —^N3pƒ‚xR©P àŠD|±XÀçse² ÚžI?tðÑ€Áãqê'3WY™^­Ö¨ÕšÂªS§Š·m;YXXE¸ a´ ƒ®˜š!õÛ@g€¼@Û³Û]6›£¦¦6—`4ÚÌf»Íæ4™ìtÌ%š‡`R‹ÃfsšL6“Én³9Íf{ƒ› ùB!O* ‰"O$H¥A2™P©”ÉdBú[™L(ñƒ‚xRiX, y"‘@,\Œ¤Οþ9oÞ¼Æ~ëõrìv¹Û-‹ËZ²5·[èr ]ÛØqÜn‹åe³­„k-»]ár 5\®í*7ÅçsiNbäÈÞÌLƒÁzñb%`ª°°êèÑüO>9h0Ø!r¹ˆ)ÈP©”©©‘IIáx“ò 3›íf³Ãb± V“Én±Ði›Ñh£ÓF£–;˜Ív“Én2Ù¬V§Åâ0­·þ9¶D$‘hcZÄ òBé„L$ „BžX,Jƒ‚‚x"_& …ô·ÂŽ?~4hРç›ÍüêjAuµÀ`àÂ’ÉìÉÉͼB üK—¤:]LæHO¯h‡`ëÒé‚òóå×_¯m« ææ—— cbL11F.·w™Ö*)‘–”HôzvP[.·+6¹ÜÎç{èo“““ãââ®fû2™°o߸¾}ÿ±½ÞÂtËÈÉÑdg«?þø€Éd'>É •JIGšJIQ¢Â {by½mp¹˜ìvM6˜L6ÚÅÁh¬M<Ðd|Él¶›ÍvƒÁz9WáÐë-õ·Æb±d2¡D" (I¥A‰@,ˆÅ‰$H,æ …µó™LƒPÈ âÉåBÚVºã@×PRR½wïù;Ï:”g6ÛUªÈ‘#{¢ºþúD¡°Ñ[Ûv»ë«¯Ž}ôÑóçËn»­×“OÞ:p`rÇüÃ'üãÒÒmµA§Ó•utéÒ­Vçã{òÉAA¼«ßlaaUv¶:;[½oßyƒÁ–š‘¡ÊÈPÝrKÏà`ñÕo¿%h2#'G£VkiqFn®ÖjuBär-È Å´ x›ì82ä- Ðy½^ƒÁj0ؘXÉl¶[,v½ÞJ«",GMÅbaV³Ùæryêo&è KR©€£$‘èK4!“ ÅbšŸàËå":o}t$“ɾgÏ_ô®zaa•L4th½«žÚôº‹#+ëÈì+)©=ºÏã¿îº„Ž ›jó¼e6Û×­Û³zõn…Bôì³·Oœx#‡Ãn“-»\žsç.eg«÷ïW>|Áíö¤¤(LÊÈP –Öñƒ8iµzµZë[œ‘Ÿ_îry¸\vLL0Ó-ƒ¶ n«ãy èPt<%Zô`2Ùôz«Éd3íôG:ÿòÌÚeèðuС–$íâà“là‹DßdƒXÌ—É„IHĉ2†Ï\^¯÷ôé’ìlõŽgÿø£Ðãñ8jTïŒ UïÞ1-¹7m0Ø>ú({ýú}6›s„{lh³IŽöÐNy J£Ñ¿óÎ/_|q$))|Þ¼;ÆŽíß¶Û·X¿ÿ~qÿ~uv¶úôé‡Õ«WLF†jÈÕ A=üU>ètºKKkhAFNŽF­ÖUë</ljŽVÄLJªT‘LqF\\›ÍòK¨p•·€+d·»h^Á`° V£Ñn2Ù˜$„^o¹œŠ°_^Ìf0Xë_{H$‰$H* ’Jƒ$’ ¹\ÈLÓz:S"©ÍOÐ9øZ%@W¢Õvî<›­þí·¼ÊJSd¤ü¶Ûzed¨n¾¹gHHKG+ª®6¯_¿ÿó ñ>úèéÓ‡´|Ý6×®y */¯üí·Úºõ䀉/½4¶†Àªª2:”—­Þ·/§¸X'ñ H2D•‘¡êÓ'–Åòsb€&3ÔjZ­aŠ3ŠŠt^¯—ÏçFEÉiAÓÜ/I,h-ä- v ¦šß*ûå„„Í·ôÁh´Ó„„Ñhs:Ýu¶#pi¾A&ÊdB©Tà“~ 3ƒÄâ f¾L$“ ý~ËüÂét>|~©ÿÌ™.—sãÉ#Gö9²wko._¼XùÎ;¿lÙòGh¨ä‰'n}ðÁA~Ù¯òÔ￾þúGŽäÙ{Ñ¢qIIáí÷XL3Œr««Íaa’›nJ¡IÅÆ·ßã¶–Ýîºx±’dÐdFNNYy¹‘"“ Ã|ºe(ÓÒ¢Q‹ h·è‚-n ÿôúÚÿÆÚTó+:m4ÚêlÃaK$A …Ч‚vƒÒÒš{ I¹\D—AßihVq±î—_ÎìÜyö÷ß/Z,޾}ãèDMwØnLiiÍêÕ¿~öÙa…B4sæð‡ì÷ŒÕay *;[™ùý… å& œ7otD„´]Îãñææj+ÈÎVïÝ{Þhü»¡wF†J¡µë£_Úý›é–¡VkóóËéX”r¹ˆ)È mÀ““#$¿Cè¾·èÌf:ò’µ~ÖA¯·ÔŸi³9ëlA& ’J…´âCøLÉdB…Bä;:S€Üô€®Áh´íÝ{ާöpèÐÔvØnŒF£ï½]Ÿ~z8,Lòä“#|p@ÀmÛ°¯Fç-!.—ç‹/Ž,_þ³Ñh›:5cΜÛ:¦™vý†Þ×\›‘¡80馛Rüî?MfÐ4-ÎÈÍÕZ­r9™AÓ´8£gOå¤Öà oС¼^oy¹ÁfsÙlN½Þ¢×[kj,z½U¯·ÔÔX}çØíN›ÍYSc±Û]¾[`³YááR¹\$— ƒ‚xAA<¹\(—‹ !©Pˆ|çñüµ³Ð]}‡íÆ0£BÅÄ?ǫ́»ï¾. þ:>oAY­Ž?Ì~ï½]\.gÖ¬á=6¬#N`6ôn-­V¯Vk}‹3òóË].!D©”ùvËP©"{ôˆàrÑs  !oÐ</“r Y‡Ëÿ›i6¢¦ÆRSc5kë!ê¬.pår!‚I* ’Ëkë!˜™uj#Äâ€þê"tgu:lGE)FŒHom‡íÆV-_þs€g,(å-¨êjóš5{Ö¯ßüÜsÿ3¦_Çw“ª¨0>|$URR- ®».!pz· íþÍtË mÀ‹‹u—ÇãDG+hAFBB(mÂfw¦4È[4ŠŽÂ䓸Gf¢ºúï9ƒÕwE‹E‹˜ÿ铨“¥àóh\ €ÖjÃÛ±X+Wî\¿~¿D"xòÉ=48À ý›· JJªW®ÜùÙg‡ûõ‹ûÏÆœâ¯H˜†ÞÙÙêšKx¸tРØÐ»U˜dFNŽF­ÖÐ⌢"×ûw2C¥ŠLM¤Åññ!+[àGÈ[@7âtºu:Sá˜êÐDË#êŒÎÄçsƒƒE ÄDç(•2¥R†q™ ûhÛÛq¹<Ÿ~xùòŸ÷ìÙ·=òÈÍ¢Ç@ ä-¨?ÿ,~ã­äfd¨-—žíÇ`ÜnÏÙ³µÍ0ŽÍ·Û]ßлUWAA¥Z­ñ-ÎÐj „>Ÿ›˜ÆtË ÅJ¥Ìß!"ä- Óóz½ÕÕ–êjsuµ¹ºúïTD½ KMÕáøG6B(äËåBß„““¨?ójFâèë°=dˆ*>¾mJ+÷³Ï¿ûîN½ÞòÔS#§N͉:AÆ‚ œ¼•­~íµÎ+½óÎ~ Ž‹ ñwDÄfs;VpôhþÑ£‡_ðx¼½{×6Ã809 º¬_%Úý›é–¡Vk *ŒF¹Üý›dÐ6àééÑÓP !oËåò0Ù:QUeÖéLÕÕÎ웫ð};ãñ8—S"…‚ÖFÔFüsì&±Bšš×~¶›pà@îë¯o={öÒĉ7Î{»R)oGi?–· „x<ÞíÛÿ|óÍmååÆG͘={„L&ôwPµÌfû‰…LCo€Û§OìÀÉ«¡w«0É µZCÛ€çåi-ñIf¨TJÚ¼G´7€ny ð‡ÃU]mÖéþÎFTW›u:3“‡ÐéÌ:©Nÿj‰D, •‹‚ƒÅÁÁb:" ‡„Hhº¢} iµú;ϵS‡í&\¸P¾xñöŸ~:=p`ÒË/»öÚøö{¬ö€y Êétge]ºôG—Ëóä“·NŸ>4Ð*ÊËGŽ\ÈÎVïÞýWiiM§nèÝZz½…dÐâŒÂªœœ2:x©\.R©”L· :̆'€® y h3.—§ªÊH{Ehµ­ÖP§uDy¹A£Ñ×ï%ˆÕiÁ´‹ ?âS@è€ÛM0›í+VìX¿~_\\Èþ3vôè>íýˆí'`ó”^oYµj÷ÆûCBÄO?=jâÄs9"(ˆçï Zͧ¡÷yƒÁ!½ñƪ[oMŽVø;º@¤×[rrjÓ´8C­ÖÐÞu4™AÓ´8£gOeÇt¾€n y ÿ°Û]F­ÖPUe,/7–—ªªLZ­¡¢ÂXYiª¨0˜LÝÄãqBB$¡¡âŽÝô÷tXÆnBÉÍÕîØqfÿ~µ¿:l7kóæßÞxc[HˆxÅŠ˜ìïpÚKçÍ[P‹ã£²W®Ü% ž}ööÿûÆNÚ) ½¯˜Ëå¹t©šé–¡VkÔjMIIµÛí!„(•2ßnt˜©nÛ\ÚòíÂáp1yˆª*“F£§]%´ÚÚüU–’HJ¥<4T! —……I""¤aaÒË9 ‰L&ôã¾@€k°Ãöm·õ:4- F«/+«Y°àË={ÎÏšuëܹ·wÆoñ·\gÏ[P:yíÚ=ë×ï‹™?ôرýýÑUñmè}út ›†Þ­ætºKKk˜n´ xq±ÎãñòxœèhÓ-ƒ¶ îøÆ9Ð op%´Z½ï NZ­A«ÕÓqœôzKMÅnwÑ%9vX˜D©”+•2¹\H'˜á›"#eø’\Úa{çγ;wž;wî!䦛RèPþ~é°Ý¬ï¿?±pá·B!ÿí·Ç–æïpÚ]×È[P%%ÕK—þøÍ7¿_w]ÂÂ…co¼±+TÉTU™Ê£uEEULCïŒ Õ5×IJÙ,Ø™8®²2=-ÈðmNa’*Udjj$-Έa±p„ )È[4À`°••Õ0-%hZ‚ÉOø¦%ØlVx¸´NZ‚i2´´-¦Ãö¡CyUU¦èhÅ­·¦gd¨n¹¥gp°ß:l7Í`°Î›õã§|pÐË/ß%•v‹Á-»RÞ‚:y²è7¶<˜7rdïE‹Æ%%…û;¢6Ã4Ã8p ·ºÚ,‘®½ ½¯–Á`½x±’ÉaäährrÊ !„Ïç&&†1Ý2˜‘¦ü2ä- ›Òë-A«ÕÓ~Z­¾²ÒTQa,/7TVšªªLOíË#ŸÏ “(•²°0iX˜42R*‰ˆ…‡Ki!…D"ðï¾@ׯtØÞ¹ó¬Z­¸C†¤ŽÙ;#Cøwú~ÿýâO|âtºß{oòÍ7§ø;œŽÓõòTv¶úÕWP«5& œ7ot@ DÖ&˜ÆÞ½çF›R)809#C5bDzTz_-½ÞâÓ-C[XXuáB¹Ùl'—»39 •J™–~ÝòÐeÙí.­V¯Ñè5½Vk(+«Ñj ¥¥5å寲²›ÍIãñ84! ­ÍO„‡K#"jûL `ü¢±Û7ÜÔ):C8îW_ýáóﺫÿÒ¥ã»I™£«æ-!wûö?ßxc[e¥qêÔŒ9snë’\—Ësî\mCïÇ/8n¦¡÷С©è?׆h2#'G£VkiqFn®ÖjuŸd†J¥¤mÀ{ôˆ‹ñ½1€®y èļ^oE…‰&'ÊÊôåå†ÒÒšŠ CiiVkÐéÌt1ß¡œ¢¢ä²˜˜àðpit´"<\*ñï^0 Û¾}wØ–ËEC†¨°Ãv³ŠŠªžxâ“¿þ*[²äþ¸ÁßáøAÎ[PN§;+ëè[oýèõzgÍ>cÆP>¿Ëöµ¶X¿ÿÞpCïoLîÂ;îGZ­ždБ¦rr4.”»ÝBˆ\.R©”L· Ú¼Sds å·€€æv{JJª™–×Lû뢢*FïÛû:668"BÆt• Óññ¡J¥ —°È<ï™3©Ãv³²³Õÿ÷›ÅbÁºuuÛö]>oAéõ–U«voܸ?:ZñÜsÿ3¦_—ï·\Yiúí·<:TIIµPÈ¿þúD4ôîN§»´´†é–¡VkŠŠªŠ‹ut€_¥RF 2h2C¥ŠLI‰èŒ¯Ÿ@!oþGë‚}ÓÌ´Ngv:Ýt1¥RFk&.ÿ«NHÅPNÐéh4ú]»:Y‡í–øßÿ-\øÍرýßzk|wnÖMòTYYÍŠ;>ÿüHŸ>± Ž<¸»42ašadg«kj,!!â›oîyà I&uÛŒ]£É µZ£Vk˜âŒ¢"×ëåñ8ÑÑ ¦ ƒ¶‹ An  S@Þ:He¥‰ŽãT^n(+Ók4zæÇŠ #³Xx¸”Žà¤TÊ##å‘‘2¥RNt ïLc#Ôçp¸ŽÉ虜›åtºŸþë/¿<š™9núô!þÇϺUÞ‚R«5Ë—ÿ²uëÉŒ Ufæ¸^½¢ýQÇq»=gÏÖ6Ã8z4ßnw1 ½o»­Wd¤Üßv/ƒõâÅJšÃ ÉŒœœ²òr#!„&3TªHßâŒøø._'Ðé om©¢Â¨ÑèËÊj.]ª¦É :QVVÃŒé$ñ££²¨(…R)‹Œ¬ÍODE)""d<Ç¿»ÐæÔjÍÎg÷ïW?~ÑfsöéÛ¹:l·De¥iÚ´ÏŸ/[·îááÃÓüŽÿuüuüxÁk¯mýý÷‹wÞÙoá±qq!þލ£ÙlÎS§Š+h¨¡wšLÖ{˜w ´ÊŸé–¡VkóóËM&;!D à&$„Ñ‚ šÌHMê\-…ºä- ÕÊËMF£/)©MN””èhgl‡£69¡Pˆ¢¢ä11Á4-EÛb+¤R\©@××e:l·„Z­yøá .—çÿ›‘žåïpB·Í[B¼^ï¶m.YòcYYÍ´iCfÏ!“ ý”˜Íö' ÑÐ;`ÑdMcÐâŒÜ\­Õê „Èå"ŸnÊÔÔȤ¤p|˜è0È[@à ë¥KÕ%%ÕÅźÒÒßÊ ¦áDp°82R)Š’GGGGË##11 ¡ïßø:^Û,kРºÃvKüöÛ…éÓ?ŠŒ”ÿïÓcb‚ýN èÎy Êétge]¶ì'‡Ãýä“·NŸ>T èÖ·éËËGŽ\ÈÎVïÞýWii z,­V¯Vk}‹3òóË].¹œÌ i Zœ‘’¢‰ðá í!oÐÝ•—KJt4EQRR]R¢£? 6º@p°˜VNDG+"#åÑÑŠ¨(Óe†5¸]µÃvKüúë_3f|”‘¡Z½zJwîÂ]ò”Åâøè£ì•+wI¥AO?=jâÄ»j¯U˜†Þû÷«õzKh¨dðà:–ThuÓõÐîßL· Ú¼¸Xçñx !r¹ˆf2hqfª›gé®òÝ‚ÉdÏÏ//,¬Òj Z­¹ÞÒë-t©4())ùäÐ /|=}ú$-C†,ÎË+oðW,™7oô3ÏŒêàJ~~Å[oý¸mÛŸ·ÜÒsá±}úÄú;¢Àbµ:Ž¿H›aœ9SâñxÑлÓq8\•jµÆ·8C«5Bx>T¥ŠdŠ3ââB0D@ƒ·è”ìvÍOëhr¢¤¤º¨HW^n Oj¥RL311Џ¸èè`\ì´V·ê°ÝB_|qdîܬgž5oÞþŽ%€¬Y³{É’íô Cu°X¬#G^ŠEÿròdÑë¯oýí· cÆô{á…;Ã[R«Õ+•Ý´à@§3<˜{ôhÁ±c§Ns¹ì^½jzÔ5ñ íþÍtËP«µF£Âçs£¢ä´ ƒiÞ}Šöš€¼@@ÓjõZ­^ß0:ÞnwBêŸ2r¹Èßtn¾¶Ïž½Äfw‹Û-ôé§¿-XðÕüùw<ýt·®¨¯´´æ†^­ÿ)›ÍfõéûÓOÏú%ªÀ”­~å•-¹¹Ú .Xð¯°0I.^¬¼ãŽŸ}öØu×%ø%ÂÀ¡ÕŽÍÏÎVïÚuN£Ñ‹Düjz÷é‹j§NŠ&3hƒ~ÞÏËÓZ,BˆL&LL c>ã«TÊ´´h|ºä-‚Ëå)-­öMNÐŠŠ #]@¡ÅÅ…ÄÅ…ÄLJÄÅ…ÄÆ†Ð’R‘ˆïßȺ¦ÃöÁƒ¹:9&&xøð4:N‹B¯†BÈ¡Cy'®{ä‘[^yånLjƎýïÑn½ .—½hÑÝ>šá¯¨“ÇãݾýÏ×_ߪә|Ø“OŽðlmÆŒ¶o?-“ ¶m{&%%Âq¦¡÷¾}ç ÓÐ{ÈU|<¾¤ßééõšÉ`¾¼˜“SF¿¶(—‹.wËPÒâŒ="Äb¿Ch/È[t4ßQfâÒ¥jZN.òé·*âãk3ôŸTŠïV´È?œ Ýr‹ª…ËÓÛ;vœÝµëlaa•X,¸õÖtš«À`u¨ÕšqãÞ:4uÍš)“½A|𥗾­3T‡Ã:yòÕÐк%@q:Ý|pÙ²ŸE"þ³ÏÞþïßÈå²/¸ë®•„‡­Pˆ~üñ™¸¸GXê7ô¦Í0n¸!iÈUkÇ×ÊÊ::vl|+.¹\žK—ª}»e¨Õš’’j·ÛC.'3T*ejj$-ÎèÙS)âï]òíÅd²çç—×ÉO”–Ö8nBˆPÈïÙSé;¸S||hd¤\ àú;p€ÎÊ`°>ÿü×ß⡇/Yò@Ó Ÿ:ULoù¡Ãv UVšþõ¯wbb‚¿øb®Z£Ó™ûõ{™ÞR¤8ö A=¾úê ?Føjj,«WïÞ°a_\\Èüù£?ø`ïŸÓô—ˉŒ”mßþLxx7m'Ó,߆ާO—x½7ô6,­ÙïÀ9î´´CBÄ«WO80¹cb†«átºKKk.wËÐл EE:¦Û¥o· •*²G.·‡74›íAA¼n>‚"´9ä-Ú€Íæ,(¨¼x±²  ââÅÊ‹+ «ÊÊjèu¶X,ðIN„ÄÇÓq*Cø||Øh3ä>ùä'ÕÕf—Ë¥øý÷ÌúË Ö}ûr˜Û …è¶ÛzÙ{Р¸%Ú4Ç;iÒû/Vþøã3ÁÁb‡Ð&N\wà@.“º`³YË—ÿ{„þªS((¨X¼xû¶m§!„ü}³‚Ëe§¥E÷ÝÿaTœfUU™Ê£IÙ¢¢ª–4ô>r$ÿž{Þc±X„xgÌú c˜ìŒWAA¥Z­ñ-ÎÐj „­¸Ü-#’gÄÅ…´UÙÜ×_ç_ž{î_cÇöG)´ä-Z‡¦(h~¢  òâÅŠ‚‚ʲ2=󽆤¤pš¢HH£—õ[Ì@2›íÏ=÷Õ·ßþÎf³˜¾û÷¿@ÇÄ÷x¼ÇìÜy.;[ÛWléÒŸÖ­Û³}û3ééQþŽ%Ð}ýõñ§ŸþŒ9y<Ι3¯cÜ×r»=7ßüFIIu!gàÀ¤Ï?Ÿ‰¯µÓ ãÀÜêjsc ½ß~û§Õ«u8Ü„.—.}ï½Iƒ§ø5vhuÆ©ÎÉÑœ?_f4ÚˆO2ƒf2˜«¯ ÓûÒ¥?½ûîBHJŠòå—Ç‘Þö{ÝòÒj ´âÒw¬'½ÞBárÙÉÉÌ’ô >:ZÑà·W ý=šÿÄŸTTéhœ—Ë~úéQ²:¶GŽì=xp ¾²ÝZ‡åM˜°öÕWïž:¥›g2Ù¯¹f¡Ãá"„p¹ì‘#¯Ù¸qª¿ƒê4¾üòسÏ~^'iAq8¬;ïìÞ*W†ÉaìÝ{Þh´……Inº)%#C5thꌛN*f–d³Y^/yðÁ_yåt¼è’˜d†Z]Û711Ì÷^‡J©TÊšÞàÌ™›¶m;åõzéÉÓ«Wô‚£GŽìÝ!{]ò„âtº‹ŠªòòÊ/\(Ïϯ((¨((¨Ôhôô·‘‘ò¤¤°ÄÄðää°Äݤ¤ðÄÄ0\Àø—Óé^ºô§µkwBêÜåd³Y\.Ûë%$–6thjŸ>±¸×ye¬VÇ­·.MOþðÃGýK§ñØc›~úé´Ûía±X|ððwöówDƒÝî4èµòrCc7*ØlÖCÝüæ›÷ul\]ŠÅâ8|øÂêììÜsçJ½^Âjè·΋ Y³fJÿþñþ:š^oÉÉ©McÐ/nªÕ›ÍI.wÿ¾Ü-C™š™”î[C6tè’Ü\-ó#‡Ãv»½ýûǽüò]ƒõðÃÎ@—€¼tGUU&&E‘›«½p¡¼¨¨Šö¢P*e=zD$&†%%…%%…'%…%&† …HQ–¼¼òY³þ—“SF¯âêãñ¸¿ÿž‰;¯ÞÂ…ßnÙòǾ}χ„ ­EKýüóéiÓ>ôz‰HÄ?{ö t h¡÷¿ôÒwÍ.öÚk÷L›6¤âéòªªLk×î^»vOƒw†Øl6!ÞÇ¿uÁ‚;0}b;<@ð§  ^zztzz´ïL£ÑF¨Èϯ¸p¡üäÉÂo¾9^?iA.Ÿ?ÇŽåµlôè¾ ŽML ë Ð K@½t)••&µZÃRäçWëè5nt´"99"%%¼Gú/&&ct»víÊÏÏ÷wÐAÌf×÷ß—åæšš]’ÍfÝtSÈÈ‘Uk=öØcþ¡¥î½w•Ëåùá‡9-\¾ººÚjµ¶kHÅ«¯þòçV­z`РDÇ‚ƒƒ…Ba 6™ìyyÚœMn®67W{þ|Ù¥K5‡Åbñx§ÓÅf³V®¼ÿÆÛ3ä¶ÝüBM²Z­ÕÕÕmL}÷Ý·±°P×ô2,ápØÿ÷C|p>DwjB¡088ø*7RçuþĉâÇû¢éU86‹E&L¸nêÔA EK_ÚÊÕ¿ƒ_ o•×ë-)©ÎË+W«5ôÿÜ\mM…"ñ““Ã{ôˆHI‰HIQ&'‡''‡£û"@W5~üø¯¾úÊßQ@Gàñ"ŠÛ¹ÜBêÜ8óz½B‹Å"„ÅüÖ媪¨ø¤ÃÃl^gùvà@îøñk²²fµ¼låìÙ³íUgqútŪU¿¯Ys;‡ƒû¼„Ò«W¯ˆˆ+Ï#Úí®¼<í?ì-)1–”‹‹ F£ýùçoêÑãjo¶·aÆ]åÊËËÏ;×±ÔUScâ‰_©Ûˆ&'Ün¯ï‹Ç0 jÚ´¾b1Rî¬ÂÃÃ{÷¾ÚvÙu^ç÷ì)ܸñÏ:]¦|q8,‹åryX,V|¼lúôþ=z(®2€V¹ú×að Ô«Bçàtºé@OL¢"/Ok±8!!!âž=•©©‘cÆôS©"{ôˆˆ ô+Wh[<ðÀ—_~éï( ã6½Þª×[ôz+¨©¡?Zjj¬:I§³èõ«U’“c  ޾üòË &ø;Š–zï½]·ÜÒ³µcmµÉ}±.`È/‹2bÄpöîÝ{•[¸½{ÇTTÄ0ù·Ûc4Ú QÄ×>Ú6ßÐ÷ݾÿþMZH$‚à`qh¨$,L& —†„ˆCBÄ!!’1ýQ$Bº¢s;{öl[mÊ÷uþÀ­\.Ûáø{¨1>Ÿëv{ÜnÇéÝ;fÀ€Ä¾}cûöKNÇÐÜÐÁÚ/ï y DÆóçËrr4jµ†¦+´Z!„Ãa÷葚9rd¯'Ÿ¼U¥ŠLJ C0€îF* ’Jƒðm•võ×_¥ÙÙêÏ>›éï@:+6›5sæ0GÑ•q8ì@NZt ǧ<ùjHˆ˜Ëeû;è¬òòÊN7‡Ãv»=+))|À€Ä>}bûô‰íÝ;é.¸b¸á þçtº/\(W«5çΕæähΟ/+*Òy½^.—ªR)xà†ž=•={*SR” †{hw›7ÿ–˜6dHª¿éÄðÍbpr9?pµ‚ƒEÿþ÷ ¾}cûô‰íÕ+:(ˆç‹@Þ:š×ë-*Òåä”?¯ùë¯R:èMÎÇLJ¦§GÝ{ï€ÔÔ¨ž=•))¸Ðèxn·gëÖ“3f E^hŠýtMÈ[@ûòx¼¹¹ZµZ£VkN*Q«5¥¥54KÑ£GDß¾±÷Þ;@¥ŠT©"cb‚Qš Ž¿XYi=º¯¿€îy hc6›óüù²³g/;W¦V—ýõW™Ng&„Èå¢ôô¨aÃÒÒÓ£SS#ÓÒ"Q‘ ˜~ýõ\bbXJJ„¿€îy ¸Z••¦sç.9séìÙKgÏ–æç—»\€›š•žuë­½zõŠNMŒŒ”û;Rh‘“'‹n¼1ÙßQ@7…ay ul6çÑ£ù6ì_°àËqãV¦¥½Ð·ïK'¾ÿå—Ç\.ÏØ±ý6n|ô?¼ýóÏÏ®X1qÖ¬áC‡¦"iE^^‹Åjp¢ EEES§NmÕ±X¬¼¼¼+޳%˜¨X>zè¡ŠŠŠv}è6QZZúàƒ&&&J$’n¸á»ï¾»‚\ÙqN€;sæRïÞ1þŽ¢íŸ-Y½%ñ´¡:Û¤ÁÿñÇ\.÷«¯¾bæoÙ²…ÏçŸ>}šþh6›,XЯ_?‰D2pàÀÅ‹»\.r¥GŒÑÅÎü¶ý{u±ƒÓÞZø¶ØØ‰Úàû—\.3fLAAAýå›àõz'Ož,‘H®pOê©&4xnà9ØB¸î ¸î‚@ƒz hFe¥é? ÕjMNŽæÔ©¦œ¢o߸ÔÔȱcû÷í›–-“ù;R€6 P(ž{î¹Ö®õý÷ßß}÷ÝíÏÕðêСCIIIn·[­V¿ûî»×]wÝéÓ§ …#ô•ŸŸ?pàÀÊÊJúcUUÕµ×^;vìØ¬¬,©TúÓO?Mœ8qË–-·ß~»ãìt:sM%55Òß´ýóñÊ6Ø®ê„Dƒ¿öÚk_|ñÅ9sæŒ9R¡Pèõú'žx"33³OŸ>„£Ñ8pàÀˆˆˆ%K–ôèÑãÌ™3/½ôÒÎ;wîÜ€;ØÁ|_Ip4ü¨‰§aKþFõß¿¼^¯V«}ñÅ'Ož|ðàÁ¦Ý÷!JKK?ýôÓ«ڟ–ÁéwpÝå/¸î‚À‡¼Ôe6ÛÏœ¹têTñŸŸ:U\PPév{„B~ZZäÀIS§ÞrÍ51iiQb±Àß‘´½°°°%K–´v­;vø~3:@øFI‰‰‰6lذaÃV¬XñÊ+¯ø5Àðx>þŠö£upú]\wù ®» ðaœ( V«ãøñ‚÷?õÔgƽ•–öâ=÷¼·|ù/åå†Q£®Yµjò¾}ϫՋ·oféÒñ?|ó€‰HZ@çòÃ?ÄÄÄTWWB>ÿüs•Je6›=ϪU«ÒÓÓ¥RéM7Ý´gÏZ¥ÞÄèÛ¶m»öÚkE"QTTó1»²²R, …BBÈÖ­[ûö픜œüÉ'ŸB\.Wfff|||xxøC=TSSÃlmÇŽ)))ÁÁÁ‹/¦sœNçüùó•JeDDÄüùóN'!„Åb}øá‡éééáááK–,ùä“O’’’ärùK/½Ô¨ê`±X?þøöíÛé555<òHXXXllì¼yól6[ƒ1ûßéfÃkl§>ýôÓôôô¥K—B D¡ò !ß|óÍSO=åvffæÆÛå«?ÎuÔY‹îò–-[RSS#""æÌ™c·ÛœÙà™Ó¹6BˆDÒ^Õ~|>¶üÔmöÛìYT?¼&΢ú}% IDATÁóùüM›6}øá‡‹/þè£6mÚÄãñèb›7o~ùå—iÒ‚‹Å ,øôÓO¯àˆÕÑÙÏ|ßW’«¥ª£þ‹IàhðiEÚ/zX~ýõ×øøø½{÷6øÊÙàÑhùs&7øÆÑØßˆÑÄû=íé¨hŒú'¶ïCÔys©ÿ–ç{@8Ðì©Ò„fw­þ1¬¯³?)\wùÂu®»à y¡ûÑéL;vœY¶ì§‡Zß¿ÿËQQOGE==tè’Ù³7¯ZµkÇŽ3M¿ch©xàhv±‡zèá‡Öh4J¥òÈ‘#^¯÷ý÷߈ˆøöÛoKKK·oßKÉÍÍ¥Éõ' ŸÏôÑGKJJ6oÞL)//÷z½~øá'Ÿ|âõzM&“@ X·n]YYÙÆ¹\®Édzûí·{÷î}êÔ©Ó§OßxãóæÍ£ñBÆŒc0¾ùæBHee¥×ë}ë­·î»ï¾¢¢¢S§N]wÝuÏ?ÿ<]râĉƒ~ nüøñƒáý÷ß§k5ÝBnn®ïÑ8vì˜B¡ Ó“&M1bÄ… N:uÍ5×,Z´¨Á˜™ãPgºéðšØ©ûï¿¿ººzýúõ„ªª*ßmÒ;:®Á?eƒ»|õÇÙWýµhx£FR«Õ‡NIIY´hQƒ3›>³²²ÿSØñ㣢ž.)iøø7íÌ™3gΜiv1=[~ê6ñ§«7}5^³Ûô}ÚRÏ?ÿ·ÕvpÝå{4pÝå¯ë®¶z¿ô+fh‡ëĉÂM›<ûì#F,‹{6*êéÞ½ÿ3qâº7ßܶmÛÉÂÂæ/¹S óÕÕÕ±±±}ûöe>áôîÝ{Ó¦MÌüqÓŸŸívû_ýe2™Ün÷¾}û˜¥÷Ýwý¤§Óéx<Þ²e˪««=Ñht»Ý©©©ß~û-}ˆsçÎ1Ó„½{÷z½^·ÛÍl*--­¬¬Œ.°sçÎþýûÓ%Oœ8áõzGéÜÜÜf£ò6ùùÙápp8æÄ·ß~›’’Ò`ÌM|~n"¼&vŠ~Œd–ôݦN§#„TWW7ø§lp—¯þ8ûª¿ ïÔ©St¬¬¬”””g63£Sä- *¢¢ž>uªø Ömáý,=[~ê6ñ§sš>‹ ¯Ùmú>m½^¯Çã7n‡Ã™‘HT—Ûä8ûª¿ñ9,iiiô@56³S£-t:sû=„¿žu6Òô©Kšüã6x1ãxx½Þúá5½ÍúOÛO?ýtïÞ½»wï¾ýöÛï¿ÿþqãÆÑCyòäÉ#FønöäÉ“iii­=bõuá3ÿÊ^©|5xpGý§i|¿èÙÒØ+gýµZþרP7ŽÆÔ_=777%%¥±å[xbS½å‘Ë„jö•Áw_Z¸_¤e/J¤ =qÝå ×]¸î‚+ o·pôzËž=çßyç—)S>¸æš…ƒ¿1wî§NßpCÒªU“Ï|¸Ùýj6ªú¼^ïÚµkï¼óNBˆR©äp8ùùùôW.\ˆ‰‰i"f:ªø¥K—š ¬ÙjúÞß]wݵ|ùrßê›7ov:"‘¨Á]nóãÜàpÛô‹~„µZM?`76³S“Jƒd2an®¶ýÂ_ÏÇÖÆÙÄ·Á³ˆù†`ƒá5½Í:OÛÒÒÒ9sæ¼ýöÛC† ÉÌÌœ9s&Ó@uÒ¤I¯½öýR*!dâĉŸþù’%K&NœØÄ¾4’¯n{æ_ñËBà¨ÿ´"ï½wÙØ+gýµZþWÿ ¨UoM¿Õ×›jð-N7x3·AñññyyyÌýõ—Ë‹‹kI¨-yQê2ÏA\w1pÝ…ë.¸2È[tbV«#;[½|ùÏ?¼áÚk3ÓÓÿ3eÊ;vœML ÏÌ÷Ûo ÞÞ²eNfæ¸1cúEG+ü/€ßx<žG}töìÙŸþù®]»¶nÝJyôÑGçÏŸ¿eËFóóÏ?Óqä›`·ÛŸÏ·Z­™™™„£Ñ¸eËú%hB‹Å5jÔ7ß|c0ljDS¦LùÏþCUø¿ÿû¿ÂÂÂ&âÞ{ï}á… O:uÇw¬^½ºÙ]k6*ª¢¢B£Ñ\ºtiß¾}÷ÜsOAAÁ³Ï>Káñx&L˜3gNAAÁ™3g.\8iÒ¤cV(„ÿýïƒaåÊ•Íve;EÇ'„¼ñÆûöí›2eÊ¡C‡N:õÊ+¯¬\¹’~*np—¯þ8oذA¯×7½/O=õT^^Þ±cÇ^|ñÅÉ“'71³Sc±X×_ŸxìXA;mßÏÇÖ†ÚÄ·é»ÁðšÞ¦oð^¯wæÌ™}ûö6m!dîܹJ¥röìÙô·/¿ü²F£9rä/¿ü¢V«“““|ðA›Í6}úôÖ1ÒEÏ|æ•¤å®øe!@4ø´"ͨ½rÖ_«åop¾groýê¿5­‰çZý‡hð-¯åE=òÈ#³gÏÞ¶m[AAÁ¯¿þ:yòä‡zH 0 4¶k½(uÉç ®»pÝÕlH]ò̇6ÖVNAÇ(+«ùþû/¿üݘ1ÿMLœõ´Jõü¬Y²dûŽg*+þ £µ¤¿Å{ï½×¯_?‡Ãáõz¿û¨(Nçp8^}õÕ¤¤$‰DrÓM7}öÙg¤Éq–½^ï;ï¼·fÍš‰'ÿë_ÿò} ¬¬¬=zðùü´´´-[¶x½^›Í6oÞ¼èèh¹\>qâDfì`â3ö13m0¦NúØc™ÍæÆ–ôn6*ßëÿ¸¸¸I“&ù¯Óé¦L™õÌ3ÏX­ÖÆb~ýõ× E=¶lÙB|ÆYn:¼î”Óé¼å–[$ ØÅ‹ï¿ÿþèèh©T:pàÀ~øùU]ŽˆˆhïãLOƒ 6$$$„……Íž=Ûjµþ?{wÞFuî|´¶Ñ¾X–;^cg_ @‰C’Æ„-„¶.Ko€Rz ܶ”Þ ½”þ¸í…RJi(K7(%ì8ˆ³‘ˆCvâ$Þw[»43šEëïcO„â$Nb[–ý~?~ÆcI>²%y4ßsÞwЃ?S!Yñ.ìÿþsyWJÝó >ÓJ„_Ø_]lÐGQªÓ¥g¹ÍH$’:ø¿þõ¯ …âäɓžºº:±XüöÛo£/iš~衇¦NŠãxQQÑ£>ºhÑ¢µkמ×oÌjµ^Ìïá¼ù£Öß"õ•dèîä…¾üžÝhö·ôi•ì~¥þZÎôÊ9èoc(ÿàÒÉÉÁþq ú7ô‰<ó¯úìì3= ’ƒýËK»À9ÿèÑhô7¿ùMYYŽã“'O~ôÑG…§ÿYîºÀé¿ÃsþÄáz&G·¿wÁq×Eþž‡ë‘ý-²š(9äJ| S]uu-{÷¶ÔÕµvtøÄbQI‰mÖ¬IsçÌž=©´Ô.éŪ#êæ›oÆ0lÆ y;MMM%%%px 5èÃã36lX»víØ˜:Ô±råï>úèdzfåŸ×QÝÊÊÊ‹@ÆŸ#1€½S‘HäÀóçÏÞ›®GþŽ;***¬VëEŽg¸ngt¸ÝîúúúÅ‹‘ÛÙh¸žƒØð½>›×y0– ×#^?³ôå‹8.ºo_k]]K]]ëíá0¯Ó©.¹¤ð{ß[0o^á´iN¥Ržé1ŒšæÃažaxŠâH’ ‡#4ͅÊb)ŠCß ‡ùPˆE©¢Â—éQ0®Ìœ™?eJΆ uç›[€L‘ËåÃZd äcE0ÈìÚÕPW׺o_k}}w,–ÈË3^zéäÇ[=o^aq±U"f$È&Å1 b”1 mšæB!6Ž ï’$‹b ô9bN¿)™L¢V+t:¥Z­ÐhpµZ®Ñàùù&F¡V+jjNŒþ½ AëÖ­ÊÎqcõêÙë×oä‘Ugz,0Ül|ÀLÀG>c <ÁÄ|€aÔ‰Ê$’äöîmÞ»·eïÞ–#G:£ÑxAyÞ¼ÂK.)œ7¯°¤Ä&A(dL2™$I–ã¢Á  1¡ËqQŽ‹†Bl(Äp\Œã¢h0Èð|ÿ—hûô[“É$F£Z§Sá¸L¡êõ*N‰¾Äq©N§Òé”8.ÃqÚ¯×+q\¦PÈp\vöqW(FA¶Ô‰Â0Œ$ÙK/ýÕí·_ö³Ÿ}kè×®ú!`œ:QcávÀ7ÖêD0 àõ3«Áz‹ÑÆ0‘½{[öìiüüó¦£G»0 «¬Ì½ä’ÂuëÏ›Wh³™ Æ›D"IQgŒ‚A–çû¿¼àø!?ß”?èõýß=¯ø0¦„rݺEÏ?¿õ®»®´X´™˜@ · ¡³sg*ÕÔä’HÄóç}ë[Ó|õôéyðç…ã¢ÅÑ4G’I²$ÉÒt+šæ(ŠØÉ‘$‡.IÓüé·ƒã2µZ¡Ñ(t:ª¼äpèµZœ ”jµB­V¨Õr‚Pjµ8º˜J¥Ðë•*•B&“Œþ½Œ¾;ï¼òå—w>õÔÇO?½6Ócä#…¢¸/¿l®«kݵ«áرn±X4sf~UUåO\?gNJµ€a 1ÅSGQ,Eñ4ÍQ 1Å (…’ähš‹Fãi7¢RɵZ\£ÁµZ\«Åõz•ÃaÐjh'A ÏJµZ®Vãjµ\§Sj48tÏ #Äbœ$¹¬hAøÓOßrǯ,Y2eåÊ陘( ·N‰DòðáÎ={÷ìi¬«keÙHa¡åòË‹ï½÷ª Š­VX[ Œ[ÑhÜï§Q!&Tj)d„BLƒí¤ “X,²X´¨ªª¶¤Ó)N£PjIØ õ—È^Zíeåå(•r‡Co³99è³În×Ùí:‡Co6kÇΪ¦k®™ºzõ¬_üâÝË.+ÖëU™˜ ·n7µclj;NìÜyÒï;†Ë//yê©›.,ÉÉÑgzt8?§7£Fajq†ƒ„B¡ßê¡×+m:Fdä.FË6ü×ýÃ’4¡(Öí&ïq»I¯—F‰DV«ÖfÓÙl„á·Z !á°Û n´Ãƒ§žºiÉ’ßþû¿ÿõõ××@Œc[\ šæ·o?¾kWî] íí>‚P.ZTöØc«-*‡uÀ˜‰ÄPµ%’dQ¿‡ÊKÂN–¢8¡FE±$ɥ݈H$"%*¸¤ÕâZ­"7×P^ž“º3e£'œàiíìô‡ÃR—«áÏþs¦‡3œüþˆ^/‹E™ÈHḆa8>ንíß¿_.ÏyúéOЗb±ÈlÖ˜LÚéÓóÌfN§T(úÿî< ˜žžàÁƒ.WÈí¦’É$º–N§²Ù›˜4Éd³(á@_ŽDª¡Ó©Þxãžêêß?üð›¿ÿýwÎyyŽãzzz†} Á`0KŸ+06Ñ4=Œ·O+p‘8ŽÃñá)Q¯ó [ ïë0e[œ‡d2yôh×®] ;w6ÔÕµD£ñ9s n½uÁW”VVæB…h`ð|, §-z8¯ZL§/ƒP(¤“'[aÄXF’lWW «ËßÙéïê tuº»]]~4?]§ÓŸ8±ݺu™æ0JM8^ŒãÅ2™Åç{'éÌà`´Ú…w"õŽÄk4ó5šÙ s4>S#ñ#Ʋžžh…ÇCy<¤Ïv»I·›jnö¸Ý¤ÇCq\]R¡Z,Z§Ó8}zžN§”Ë¥ñx"OF£1†á]{÷¶ôôÃa^¸¼Ý®³Z‰ÏD~~¶ápè/8L-)±=÷Üwî¼óÕ¢"ë,=û…)Š¢¨ ÷7£fž-mhhÈô@Ö®Ü^ç£@$ÌÙg²‘/¾hÞ¾ýÄöíÇ[Z</\XzÕUå‹—çæ2=: »Åb ´¾!bÐzˆUl(ÄR ±è$Ƀ,E±‰Ä7Ž^¤R1A(чN§$¥V‹ëtÂg%AàZ­R«Uèt*Ô¶–AŒM±X¢»;ÐÑáko÷µ·û::|}}!·›ìé ¢Vä¡,(0OšdÊÏ7 L3© æ£)K|ñEÓæÍÇ6m:ÒÓ,*²^wݬU«f–•Ù3;0‡ãÇë×ß~íµ3GâÆ)Š{óͺ?ýi»ËZ²¤âþû—Ì›W8?(K…Ã< 6¼^º¯/ä÷£„ƒòùÂ~?íõÒÁ #\X§Séõ*•J&—K¥R †a±X‚axšæ&5±Ûu6›õÒÈÍ5Øí:»ÈÍ5X,„TzîiXùË®_üâ½{ï½êÑGW‰Dãv1È8È-ÎÈë¥kk¿þôÓc;wžŒDbS§:QV1gNÁPŽé€‰)‰ƒ,I²¡#Ä$Ùÿy`Ï©XB˜#,P©ä(„H‹ôz¥V«LÙÓ¿_¥’gäž‚ óÍÍn—‹t¹H”O  "b0 ‰DùùF4[å(¨°Ùˆq¶ð%ïØq¢¦æÐÖ­ÇðôéyUUc!®ŒhnD£ñ÷ß?ð§?m?q¢wúô¼»îºâ†æÀ:æ!â¸h(Ä §Zgær‘.W­EKÍü0 “J%jµ\&“ˆÅâd2'x>GÐwÅb±É¤v:v;ápRƒœ\~j™þ¦MGï»ïï+VLÿýï¿0![¤kiñ|òÉÑO?ýzÿþ6¹\ºhQÙ5×L]º´ÒlÖdzh@fÐ4C @C(@è»,I½.j ¡×+º>( ?=–L„æŒ$ɶµyVNn7™šOH$b§Ó²rB‡ò‰´“¤ãÃD¶n­¯­=V[[O’ìܹÕÕ3«ª*'M2ezhéF!·ÔÕµüñÛ¶l©ÏÏ7Þuוßýî|¥"Éa–m¸Ýd_‰êì¡Ãï Ù†ahÅF2™ˆF±˜yˆM&ÅB8º¢"I²6Ô•”Øž|òÆyó Çq)[`ØÀd·ÚÚc;vœèê 8ú+¦WWϘ3§f{‰$:i…š@œy£;O¤^]©”£(‚ ”z½ ¥z½ •iÒ锨-„Ndên‚Ñ‘L&;:ü.WÈå"ÓJ<¡æ"R©87×¶râ"Kíg#Šâ>ùäèÆ‡wíjˆÅâ WUU®X1m,×ÍÜ©¯ïY¿~ûÔjño{þÝw_a³éFí§OXM[¨²@€éî¸\!’dãñSoE¢Sï"E"‘Z-'•ÕªµZµN§¡¼<§¨Èæpèss C€ 3¡s ôîqË–ú;H’6Í9ÖÖæCÆ& ëP«êÓWE êLiW"‡øA¥Óá:JH&PâŠñ=œI<žèêêo>R ”Oôö†"‘†ajµ¢¨È*ôœ‚Šlo>q‘¼^ú“OŽÖÖÛ¹ód"‘\¼¸|ÕªK–TêLíÜF?·@\.òµ×>饽öÚ™?üáÒ’Û(¤â¸¨ßöx(¯—öûiŸ/ìr…::|û÷·¹Ý”L&I$°x<~ú¥R±Fƒ£%99„Ý®s:“&™ËÊrZ­ýû²ÂDÌ-8.ºeKý‡ܶí8ÇEgÎ̿暩×\3µ´â cK8Ì£¢L(“™` ´3 Ûi]"d2IÚ2ˆ´õi # ½*D£ñžžàY›cã–”•ä§s¹B55‡kj8ЮPH—,©Xº´¢ªªR¯Ï¦ßR¦r „¦ùýkïúõÛûúBK–TÜ}÷•W\Qš‘‘€³Øµ«áÁÿåóÑwÞ¹pÍšKÃa®«+ÐÚêéèðõö½^:`hšcÙH4šH{ï)‰ )êid4ªÍf­ÓiÈÍ5jƒAe0¨ µ^¯2T°`¢™@¹*õÁ7oþše£ UWÏ\¶lªÍFdzh&d2‰–> Dýƒn§ÖÇ0L«Åõz•^¯ÒéTFcÿ:§#l£&±‚s¢i¾¥ÅÝÞîC…ï‡ÒÛj%ìvò‰³hkó~ôÑáÍ›íßߦRÉ—/ŸV]=sáÂ’,mÕÙ܉FãŸ|rôOÚ~èPjÜ}ýõs úИÂó±W^ÙùÜs[p\úðÃ+¾ýíKÏ3°l¤­Í×ÔäjmõvuùûúB½½¡@  1B‡p‘H$‹‰DêûT¹\¢Ó© 5Šá…Ü]§S¡ô}i2iá±0>ŒÿܽÕyûí¯P)á«®š²jÕŒeË*á-7€á'¼^*ìï@ 2M§íaPÅD$Y­Z´ú!íDÌé{p\–Áû²Wjsl!¥8gsl»]§P@A°¡jlt}øáÁššÃ }&“fÅŠiUU•W^Y–í¿Ã±[„ÆÝyyÆ»ï¾ò;ß™¯Ree4^ƒÌï_û—¿ìv8ôëÖ-^»ö’óý· 1©¯Q==žž`g§ßå"…6Kr¹L­–I¥ Ã’I,æY6’z# …ù:Òn×Y­ÄéÿUsrt¡®;F¸Í-ÐꊚšC›7£(náÂ’›nš»ti…Á¥„ŒÉd2`p0Èøýa´HBø2£§—iR(¤z½z`„r`I„Z§S¢j‚€¶Õ`@s쌨«k©­­¯­=ÖÐÐg³«Vͬ®ž1gNÁ¸©i3¦r äøñž¿üe÷[oíS(¤kÖ\rÿýWCãî1¥½Ý·~ýö7߬S«ÿöo ï¸cá°´rA‘Fêú0T¿®«+ D*•ÂdRkµ¸\.‹E†E£1†‰…Ã\ N›4€þ/ êTCe0|c®Z¿“2eæGŽt¾ÿþ?<ÔÓ,-µ¯^=ëºëfZ2=.cÃD‚A&èÏü~FèvýEêµPa4¢3*£ñTéí´’MpšŒhŽqÉdrß¾ÖššÃ›7ÝÙéÏÉѯ\9½ºzÆÜ¹…èTéx2s Äã¡þþ÷=¯¼²+æW¯žuÿýK SݘâóÑýëî¿üe7ÃDn¸aÎw¾3öìI#ñƒ¢Ñ¸ßO£W´H£³ÓŸH$1 “É$F£ÚbÑÚíz­V¡RÉU*¹\.K$±Xb 6ã©U’Mý© 8J5o =ryv/±;ÆOn„ßygÿoì=~¼gÒ$ÓêÕ³V¯ž=eJN¦Ç`”$“I·›´X“ÛMöõ…­Ô„aAàv»þL•š„ÂÙE€ÑIJ‘Ž¿ÛM +'PPá÷‡¡9vFÄb‰íÛ×ÖÛ¶íxOO°¨ÈzÝu³V­šYV6žO—ÙÜ ‡ù7ÞØûç?ïèî.\Xr÷ÝWVUUfzPà–üóŸ_þã_44ôM™’óíoϿ馹£Öš>‰õö†„Uh}}$zEE{ÐeäriNŽNhä#¼–êõ*…B:”ò^/-,ø@Òr޳T€´Xˆñv —¬Ï-PûŠ×^ûbÏžFNuà sÖ¬™;}z^¦Ç`8q\-Œðùh¿-†8µ<UmòûÃ$ɦ^K©”‚PTBX!a4¢ µ^¯‚ SÎÙ~¾ÿõ IDATÛjÕ =' 9öèJnÝz<OŸžWUU1îã ÁÏ-D"¹ukýsÏÕîßß>ujî÷¿¿w5´¿ùfÝäùèŠÓW¯žµxqy»¿x½too°·7ØÝèé lûúB(Æ0ÌbÑÚíºœ½ÓiÈÍEz§Ó`µ"Ñ©c†‰ <#dÒ"@à{‚A&-áÐh(Ì0TŠ ´‡ ”‚ ”Z-®Õâ„2õçŒ{Yœ[ â¶7…Ø… Kn½uÁ²eS³½ù!L(§¯p»É¾>ò›_†Ò–G ÕƒNcLíÀ Ë#À˜"g´9¶X,ÊË3 ='„Ð;SÂaþãlÙRÿÙg')Š›;· ºzæ²e•ùù¦LmTeEn!€ÆÝcÇE7m:ú·¿íùê«V•J^UU¹jÕÌ«®*;ÿ¯“ɤÛMõô{{ƒ==Áîî@oo¨»;ÐÕðxH¡ê”áGIF^žm;ú¼<ã9ïEq©ë6N/Q%$4ÍÅb‰´«kµ¸FƒDÿg­'%Ê6v*Ñ·BI¸V«„Ù+ûr šæßÿÀk¯}qäHg^žñ¶Û.»þú9‡>Óãn`0h©Z->°ÏF'm¡4™4F£ZøHýÒ`èÿœ©{ÀÙ%ÉÎN¿P]šcg’ä>ýôèÆ‡wíjˆÅâ WUU®\9}ÂjfWn´µy_ye×ë¯!“In¾ù’üàj»w-}}¡?>²qãẺ¥R¾dIÅòåS/.µRÅÏBê,”ïs»)ôžZ¡¦Ô›:•@_ð+<ÇE…Hƒçc=½bÇE9.Šv …S¥Ö­ÂqŽËÒæ|¤í45ðÿcA6å­­ž—_ÞõÎ;_…ÃüâÅe·Üré²eSá  FY,–ðù¨ÓšFœ­‡„T*6™4:Ý©^°BdµÔæØBµôÔæØ*•¼¸Øͱ³…ÇC}ðÁÁÚÚc{÷¶$“ÉÅ‹ËW­š±dI…Ñ8ÑSÒlÌ-¯—þÛßv¿úênšæV¯žõƒ,™ ¥½²‹ËEnÚttÓ¦#_~ÙœH$gÏž´dIÅ’%S**YT 5ÒHK¬].²³ÓϲtN•ZèýS@ñÆðŽ„$9šæH’ …XŠâR>XŠâÑ~tŠâ)Še˜HÚÈd’5J‚PªÕrµZ¡RÉu:ÚV«¨zÚVx¨Õ èI€á•¹Åž=M/½ôÙ–-Ç,âöÛ/»å–KaÚŒŠâ< ­p»)¯—VHx½T Àøýtj&!“I„Å&“ÆdR£Nè³Ù¬Eß…Ld#hŽ=¾¹\¡ššÃ55‡hW(¤K–T,]Z±lY%üùÙ›[ y÷Ýý/¾¸£¥Å»Ç²p˜ß¹³aÛ¶ã[·Ö÷õ…ìvÝÕWO¹òʲË//6™4™Ý…*¦v0Jm .,Ñb ô%7×0:%žâñª^EQI¢HãTÚ 1á0G†G‰Ú¦(îô›’É$*•B¯WªT •J®V+t:%Ê9Ôj9*r…¾D­;Ð~”ˆŒÂ=@ÖÓ¹ËF^ýËW_ÝÕÖæ½âŠÒ»ï¾rÉ’ h Œçc~?íñP’ ‡ôùÂ>íñP^/íóÑh¶8B¸ÅB ”iêÏ$RR µÉ¤Ñjñ Þ#†Eq­­hŽ=A´¶zÞ}wmmý×_w©ÕŠk®™Z]=sáÂ¥z!¤ËöÜA»ÿð‡­_}ÕZY™ûïÿ»Ç®d2Y_ß³uëñ;Nìßß‹%ÊËs.,Y¸°äÒK‹bœrð|¬¯/”c h¼»; ´µt‰FA™ ”™ÍqQáÂjµÂbÑ¢Öf³Æj%P'‹Ek6kL&Ѩ†Sr`Ü‹ÅÝÝçÝÛf#ŒF äã["‘üê«ÖššÃŸ~z´«+PP`þÖ·fTUUÌ[GÏ˸Ì-Ÿþ׿ö¾üòN¿?¼zõ¬û¼<'ÓƒC²‘Ç;÷ïoÛ·¯íÀ6¯—V«Ó§;gÌÈ›>=oÆŒ¼‚sµõ¾H,éìôwvººü]]ÎNw·¿³ÓïvSèjµ"/Ϙ—gD©†gduã ‹%ÂáSEñE;P¼ ²å¸(IöoPÇó1´:$‰“${¦W(¤8.'\&“h48Ê9t:¥B!ÅqA(år)*‡¥PHµZ$Z-®PHU*êm>nŠ¡oLäŸ}vò¹çj¿ø¢y޼¨ºúêò‰s  ˜ X6âvSéõÒ½½!Ÿv»I·›òù¨ÞÞ×{ª«„D"6›5F£Æn'L&ɤ±X´hÃdÒX­Z“IœÀ„Â0‘¦&Zo4hsl­/,„æØ‹Fã;vœ¨©9´}û Ÿ..¶®^=kÕª™eeöL-[ã܉Db|pðùç·66ºæÍ+¼ÿþ%K—VÀ;‘ìÒÖæÝ»·eÏžÆÃ‡;››Ý‰D’ ðéÓó>œæL13„®à©¥;;ý,Á0L&“ê´ÖM£Ù<Ûq\4b8.†6x>†rTÕŠç£(Aè»hy´pÅp˜Ú™œN¡êõ*—)2¡ìŽË é@·þ ”‹ æèòz½Çej5JY-Ã¹ÅæÍ_?ûlí¡C‹•=ð@Õ‚E \°ÔfB'tšU(Èd‡CêÒX­„^ßßLB(♘°H’kkó Ôt"…OÂ3Hh;ͱAªH$öÙg'kjmÙR 2óæ.[V¹ti%ÄoÜçjÜýòË;wíj¨¨p¬[·øºëfê¬lóGv9ÒuøpÇ‘#]­­c”—;*+S¦8*+sËËí|YZžV›š\ AZ‚§þ·ÍÏ7NðßÛ°ã¸(ÏGC!6‰3 OÓ|$£(Že£‘H,b"‘8ÃDÂaŽçã4ͱl„çc¡‰ÄX6BQ\$£iþL·¯TÊår©^¯”ËQa+…\.E±är©N§R(¤J¥L£Áår‰Fƒ+•ý¯är©J%×h2¬ÿIË-vïnxê©ìX¶¬ò?þcÙŒy MóÝÝÔ(Âå Ú[­–H‹"¶¡Ù5X2™t»IhŽ .Mó›6Ù¸ñðîÝ;· ºzæ5×LÍË3fzhãÇÉ-Gv½ôÒgï¿ÀdÒÜzë‚ïÔ¬ÏjÅ}ýu÷‰½Ç÷œ8Ñwòd/Eq‰xÒ$SeeneenI‰­´Ô6i’¦¥cßÌ3„ÙÍÍîp¸ÿÌxZžŽo‹‹m*䙄:–ƒBžÁG"1šæ&‰ÄH’E‹BhšãùX8Ì3 Ïóq’ì_ B’\4z¶ü­á \.ïïç‘ZÿJèÿb®?öP« …uJÇq)A(a)€ó•Übÿþöÿýßvïn\º´â¡‡–Cb x>†Šã£¨Ï„ÏG»\ýÕœ„uÜ2™ÄdÒØí:ÔaUs²Z «Uk6km6B­Vdö¾0@sl0BH’ûôÓ£7Þµ«!‹_uÕ”ªªÊ«¯žâp@kåá7Ñr ¤£Ã÷ÒK;ßxãK±X´ví¥÷Þ{<ºÆÎNÿ‰½'NôÖ×÷44ô55¹£Ñ¸L&),´””ØŠ‹­è3œ‹O%äh’šsÐÒâÎtšgYá8»0L$ýFþžZÿA’,ÏÇ&Â0<ÏÇ(ŠKëÿÁ0ž¥ÿ‡L&Q©ju{s•JŽV{hµ¸R)W*e:Ú)W«);UhC«…•0áŒjnÑÒâyòÉšM›Ž.ZTöðÃ+æÌ™4j?b±„×Kõö†<²»;èõR==A·›ìí ¹Ý¤ßF‰Df³5»¶X´‹ÖfÓ¥~i4ª3{GSÒšc AEOO5ŸP©äN§Qè9ͱÁ…q»©?Pì 2Ñhœa"4ÍG£1’äPÔÁ0‘PˆeÙª|ó,–ø¤A«:T*9A(Q˜ò•J®R)vªÕ ¥R®V£KÊ”J9,ž€l4J¹E ~æ™Íÿûžâbë/yÝÂ…¥£ðC ÃD:;ý©M&R¶CB)'4Ë[è0a·ÂDo¨ãÀ™„Ã|s³;­9vjó ¡96zZ ) ù¸}}¡£¸Çe+VL«ªª\´¨ N@ŒŽ‰œ[ Ñhüý÷¼ð¶“'û q÷D€’Œ“'{›šÜmmÞÖVok«Çã¡0 ‹E99z”d˜Q˜QXh0#U<ž@Ý¿ÑGWWeÝÝ”gÈåÒ¼ŽÐ4GQª^EÓ<ÃðÁ Ë0|JøÑÿ­p˜´±‡L&Q«û# ‚Pjµ¸N§Ôj•(óÐ锡ö„’ ”p˜ ©F*·ðûÿúUÍ›oÖÍŸ?ùÉ'o,/ωŸÈ^Ñh¼¯/ÔÓìêò÷ôÑGW—¿§'$„‰5¾¶Z ôNÏáÐ[,ýÛf³&³w€±/Otuõ7ŸRÀ¡4ÇÎÉÑÁ™b0:’Éä¾}­55‡·l9ÖÞî³Ùt«Vͨ®ž1gNœ–Ê8È-ÕÙéÿûß?ÿÇ?>O$k×^zÏ=‹ss ™&‚Œ®®@ww »;€qQ¥) à ©ÃaÈÍÕ£Þ‡Þá08z§Ó TB'ðSx>&¬Ï"æf7ê|€šg¤&Pšd 0Âaž¦9’dQòG(ŠE!G(ÄRG’,I²$ÉQK’é%­är©ahµ¸^¯H;ðA“xÌÆ·É-¶m;þŸÿ¹!‘Hþ÷_{Ýu³ ,™ÛMõö{z‚©oÞºº™H$1 “É$6ápœNƒÃ¡ÏÉÑçæê­V"'Gg6ká¤CqÎæØJ¥ùähww °Ðrà ³«ª*§NuBËÖ±r‹³ (îÍ7ëÖ¯ßîñPË—O»çž«fÍ‚ÆÝ`p<ëîôôº»ƒ(Òèé öôººE—1Õ(ƉívÙ¬±ÙtP·@ 1©IÚèìô£· …M¿H=Ú))±A&ƬPˆ!INH2„lƒ¢8´?d„=¡‰ÄÒn ðÔZ-.l|àZ­Ò`Péõ*½^GY€,2̹E(Ä<þøo¾Y·ví%¿üåõp€ÀDH$;;¿QpFèÜ+¬œHÓZú`p^ 96ÈvÑh|ÇŽ55‡¶m;î÷‡KJl×^;sÕª™eeöL r‹sB»×¯ß~üx/4îÀï£ £³ÓßÓìîî_‚ìñP¨†a8.³Z «•0›599:“Ic³V+a±hívÉ4ѧ œÞ€¤½Ý×Öæ&³Zl*/Ï'pAÖáùXêŠP¨ûLÉGj™e„ ”z½ Å:JÈ3¾ù¡ÔëÕP´ qÙ[ÔÖûÉOÞJ&¿ýíÚªªÊáºYÀA’l[›Wˆ%NŸÐ â ufP« 8g ÀžngÊÓÞ O7x®±)‰}öÙÉššC[¶Ô‡BìܹÕÕ3«ª*'M2ezhàl ·ººº–?þqÛ–-õååö;î¸wƒ‹'¼^Úç£{{C^/år‘…šÀy<”ËE¢ŠIˆÉ¤±X´V+aµj-­Í¦3›5h¹†Å¢5Ô¼#4èâŒîî@,–À0L.—æä¤/Θ<ÙªÑ(2=p†Š4‚A& L0ȃL(ÄL0™`E;Y6’zE¥R>a 0C²5Ú†g `„ On‰Ä~õ«šW^Ùuýõ³Ÿxâú {`ÀøàóÑÂvÔ|¢·7ØÕt»IôŠ!“Iìvj3˜“£CUzÑ’v8g ÀÐ Ú;µùÄ™šcÃB%-hšß´éÈÆ‡wïnä¸(Š+–/ŸætB3€ì¹Åùª¯ïY¿~ûÔëU·ÝvÙ]w]©×á,q¹H·»?ÆðzéÞÞ ÏG»\¤ÛMù|:;a˜T*6ÕF£ÆhT›ÍZ“Ic4ªFµÙ¬1›µhÛhTOê¬hýŽ»üh›a"†I¥âœý¤IæÂBó¤I¦‚´aV© Òÿx>†ŒÓ?&:µÖ‡\*šm úëœC7 ¹Åñã½÷Üó7‡zöÙo/[6uX†iÉdÒí&;;ý]]®®@WWÿFg§_˜gú`çäèss N§užp:  G Ý™šc÷ö†PZ‰DìtBsl0~$ûé§_oÜxxçΓ‰DrñâòU«f\}õ“I“é¡ó¹Å…q»©ücÏË/ïŠÅâ·Üréºu‹!«£,™Lz½´×K»Ý¤ÏGûýa¿?ìõR^/Úîß“z!Ïâ “Im4jL&5Š7ÆwA*‡BF{»·½Ý×Öæmkóº\$ú®ÍF˜ Ì“&™PAÎÂB3LØV"‘·›„æØ`br»©?ODù䓯¿~vE…CØsóÍ—X,ÚL -ûÐ4ÿ¯í}ñ޽Á%K*~ô£ªÙ³'ezPœ'|¾þ Õ¤BÛ>-Ä>_Xh³a˜J%×é„ò÷*®¿¾N×?Ã:uc4z´sFS“ -ÎH«4UZj/-µçæ¤Ò ±r€!¢i~ ÌûýŒÏGa¿?Œ>{½ý_r\T¸ŠT*NÍ6„`CØi6kŒFµZ õ©ç.<·H&“øÃÖßüæã›o¾ä©§n‚ ¡d*áÚÖ&”põ¶·ûzz‚è͆B!ÍË3 N§Ñé4æå­V8ûÀù¡i¾¥Å}–8P£QLžl…æØ`‚èí ~ôÑ‘ššCû÷·)•ò+¦UWÏ\¸°D©„ªÙçá‡ß|ã/e²Aìãñ¸V«<|ø g=/‰DrëÖúgŸÝ|ð`4îÙ­Ì@‘šF-”‹AUò…´s ©†Jˆ:Ò6´Zœ ”Z-®ÕâÙõÂ"tÎhhèkhpµ·ûZ[=Åa&“I}ZÛŒâbTšàœ8.êr‘.W½°„Bl(Ä 7\—•Hœz©Q(¤z½ÊfÓÙl„N‡^[”: 5ÿC_šÍÚ R€ñçs Ž‹>üð›~xðñǯ»óÎ+†}X€³ˆÇ½½!!™øì  ÃÄb‘ÝŽêà›Ñá2J)l6"Ó Ë@sl΢¹Ùýþûjj74ô¾lÙÔêê™W\Q ÍW²Ú_4ßxãóƒ~K.—Üzëe¿úÕ £<¤qChÜ]P`¾ãŽ…·Þºž,`œ!IÔéÕÁG§ûÛÿ Q:™ÚTQ(¤Z-®Ñà¡$\£ÁµZ\£Qh48AôÇjµ… ®×+Õj|L­l´ x{»}4––ÚÊÊì踱°Ð¢Õâ™3Y‡¢8¡ö°n-K]Æ‘šm¨Tò”EƒA•²hCc0¨L&ɤRØŒA’[${Ûm/74ô½ôÒ—_^<à Ñh¼³ÓßÒâiiñ´·{Ñ)ÔÎN?ª9ƒã2tÂÕZEAE~¾Ö?0tçlŽ-‰òóBÏ hŽ &¸#G:kk¡¸ÂbÑ^{í¬eË*/½t2üë‰ä¬Yy<Ô ß­©ùÑœ9£;¢ñ¦µÕóê«»_{ís‚P¥q·ËEÂÔ0þD£ñPˆ¥iŽ$Y’d)Чiަ9Šâ)Š …šæiš£(Ž¢¸p˜YšæR+V!J¥\«Uh4¸FƒëtJ­W*åJ¥L§S)•2•J¡Ñ(´Z\©”)•rN©TÊÑUF-óH›ƒ6:;ýè¤jÚ acÀø–c  x«ÇÂ@Øç sÑ0 ‹Ef³ÆdÒ˜ÍZ‹Ek2i,–þ ³Ycµ&“*i0úÎ;·èé ÞrËŸX6úÆ÷[GhXL@ñx¢»;ÐÚêE)Ek«§¥ÅÓÕåGm¬L& ' Ìùù¦‚4¹[—éQ5R›c ý±¡96C‘L&÷ík­©9\[{¬£Ãg·ë¾õ­ÕÕ3æÌ)€u÷ãÏO|øÒK;c±xÚþœýW_ý78õ÷¿ïyå•]ÑhüúëgßsÏU“'[½ä7>?{vÁ£®å01LÅÕxñMó$É’$Dz–$ó, ‡#ŦμÈd•J¡Ó)QªÖs(•2µZAý; B©RÉe2‰N§”J%B©”ËåR‚À¥Rɯ–ˆDb½½!á ´¡¡¯¡¡¯»;€Þ÷ fäåa28Ã+K=6<µùq¹HÔìÇå"½^:µë†V‹£ÃdRÛlhCk³&“ÚdÒX­¬ `Ø_nár…®¿þy ÃÞxã˜ÀãùØÉ“½©ónú\.8sŠºº Ç©‡>»J¾A,éèð§6Ε3‘ IDATÇF)…߆æØ`ær‘>úÎ /|ïœ\,–øâ‹¦Í›}òÉÑîîÀäɖ믟]UU9uªΞŒcGv]sÍÓi;e2É=÷\õÈ#ßÊÈÆ«p˜ï½ë×ookó.YRñÀUsæ|£q÷‘#Ë—?#‰n»íò_ÿú¸0<cÙH(Ä2L„e#(ù`ÙËFC!†e£,AáËF&B’,ÚI’ÃðèrP …ÇåB&“„R.—¢äE(Q*e …” ”2™D­VภÇe .‘ˆB)‰t:¥H„©TŠóíît`ö#-búúH¡ÓFjË ·›ìé ¦¾D(R»]gµzý©ÂFNŽž Ûà<œGnáõÒ7Þø|"‘|çû¡‘/CÇ0‘–Os³»©ÉÕØèniq77{X6‚a˜Õª-,´˜>› -"ÓC P×ÚêæØœ—Ý»×­ûk Àüýïß_º´bÐËD£ñ;NÔÔÚ¶í¸ß.-µWWÏXµjfY™}”G 2åòËÝÚêIÛ¹uëO¦LÉÉÈxÆ7Ô¸û¹ç¶ìßß6o^áÝw_¹rått.ò®»^­­­Åâ‰xåÊéÏ?+äëdD(ÄD£‰p˜g˜H4#I6MÐ4ÇqQžQ‹ÅI’ãù(ÇEišÅâ¡Æ&‚’`Åâ§7öH%¡$Óé”h[,I¥âH$–H$&‚nœ¦9´‚D.—Z,Z«•p8ôhÑpa¡ÉhÔˆÅb4ï[¥’ËåáKÀHHm'Ž6‚AÖí&ûúBBkqáÂiÄ…´Ci±0=ÁPs ·›ºá†?H$âwÞ¹ßlÖŒô°È^==Áæfws³§±ÑÕÜìnnv÷ô“É$ŽËŠ‹­EEÖÒR{q±uòdKAY­†ˆdŸýûÛ1,9j%ÎQA§³4Ç&%ª¢ͱ8‹D"ùì³›ŸyæS ÃD"Ñ7Î}öÙo§^€a"[·Ö×Ö«­­'IvîÜ‚êê™UU•°ÄvzúéOÿûÚÔRQÅÅÖ;Éà&‚ºº–W^ÙõñÇGòòŒwÞyÅW”.Yò¡¾T*¾òʲW^¹êkÕX6‰ÄH’K$’$É&“ÉPˆÅ0,d’IŒ$ÙD"IQl<ž¤(.Ó4òH$Æ0‘h4ó ÃÓ4Ï0ÑH$Æ-„u:F!‘Hd21zªÑà‰X&“¨Tr ÃPL¢PHQÿ6t ã2—¢%åFÄß’a&‘ˆ…‰wh 6™`&—K•Jù0ÿÈ*>íóÑ>_Øí&½^j`ƒöùh‡òx(4«ÑhÕ¨46š‡;z³Y““£·X´0ƒL(CÊ-¢Ñø7þ±§'ðÞ{?ÌË3ŽÂ°v‰D2O ïK|,–hmõœ<Ùרèjlt¡EhѨ.)±ÛŠ‹­¥¥ö¢"‹Ó 5IAÖÛ·¯õ·¿Ý´{wãC]óÐCˇñ–‰dg§uÃN-ñͱ.WèûßÿÛÁƒíBSS•Jqüø“2™„¢¸O>9ºqãáÝ»y>:gNAuõÌå˧9†ÌŽdP[›÷òË-¼MÉÄ?¼â‡?\šÙQMÇŽu¯_¿ãêÕršŽ¤¦GR©xΜ‚×^ûw˜øHò¯—jjr·¶z[[=®ÞÞPg§ãb†©T ‹Ec0¨QŸa•Jf2i8.–H$#‘:gJ’l2‰q\ôGi JY‰$Irè Ú }(Äb‘VÛ~hµ§Â…B†a˜L&V©ú_Ùôúþ¹G¨¹–~ˆÅ"¡ÌŽV«DﯕJ*}‰*q¡ïêtJáGK$bæÔй¼?ªAp\y0È,†‰x<”×K¡$Ãí¦|>uÝ@!G0xª…8ên·ë¬V­ÍÖÿÙf#¬Vb ¾5öùÂ&“:Ó£YlH¹ÅC½ùÑG‡?þøÇgêÀ·ÛÏþÎã_·`AÑßH<žèìô?ÞÛÐÐwâDoCƒ«©ÉÆE"Q^ž±¨È‚RÛJJlF#¼4ƒqåË/›ŸzjS]]³X,ưäš5ó~÷»oŸûj§‰ÅÝÝCmŽm³6›åЀ öÙg'ï¹çoh’fÊnÑ~´´­Í»uk=ÃDfÏ.X¹rúÊ•ÓòóauÀ0 [ºô·Ç÷¢w "‘hïÞÿ‚(k4Õ×÷,_þÌéÝÑ¥RÉôéÎ7Þ¸ª¾†"bNžìkhp k—úP2¡Ó©JKmeevaÕrYYÎÐÏàs\”磆Åb šæ…‡6ÂáþØ5Á0,™<~P—H$0 cÙ(š¢”ZD E&†…ÃýÍEx>†Æ'hºÿFКl \¹˜ßR*µZ!•žšìˆº ©ëN°of-XÊD]­‹O5#ÑëOÝΙ y KaÒÈåÒA÷ keÒ fò§ïW«2Ù ýQÐBœÓ÷ƒÌBm6„òS¨ *EÐÛ¤¨þç…\.5úëP |œÚ6›µ£üÇ4éá©SO?½¶¼j‚ qîÜâ…¶=õÔGÿü纅 KGgL #Ÿ~≚·ÞÚ—Lbÿõ_Õ÷Þ{Õ¯ˆZg£ƒ¼††¾††¾îî@,–ÀqYi©á¡~h¹¹©þ¯ƒñ)™LnÜxø™g6Ÿ<Ù'‘ˆ„ÙUsç|øáÎrE†‰tvž­96ŽËÐj‰Ô•6›ºÐ0ŒâñÄSO}ü ÛD",­ˆ„L&‰°E‹ÊW­šQUU)ÌmyñÅO>¹1‹‹DØôéy›6=˜éM,Ï<óé³ÏnŽÅ™Ô,•ŠKJìo½uÌ’\žµ¶zвŒ–Ok«§¥Åër…0 S©ä……–¢"KQ‘µ¸Ø6y²eòdK¥¤Ñhœax Ã’ÉSáöÍ´ðH$ƲQáK– ì ‡ùÔ×^TË m§®;Á¾™µ`)á Â0|$r*{¦i.?u$&ÿüÖD"ÆÅbÑŠÓ_zéßÎty’dëë{Ž﩯ï=v¬»¡¡a"‰8?ßT^n/)±••唔؊‹­cmå#%O?ýICƒ[*¥:±Ùˆƒ‰¥4Çîèð¡ Ѐ1Âí¦Ö­ûk]]ë™öôzÕÑ£OÀ”:0(—‹œ3çñD")•Šüº;ï¼"Ó#š@8.:{öcÁ {¦ H¥§ÓðÞ{÷ÛlºÑ`¼ ‡ùÖV/Š1P›Æ–šÁm³ÅÅÖÉ“­“'[JJl“'[òòŒpðABi¯4EeÁÒœi=а&& E ^ Uúx0 …Îû*$É zàŠú» z•´Lè´o ^ÖŒa"©ÁR*ŽûF”5ÒRK¨a&t AŠo¬ãQ«å©ë„˜çô¢j‰HU*ËFH’Dâ4ͱl$bI’ Â@Øï Ó›R"ôTãæîÙÓ´fÍS÷ääèÿßÿ»qÙ²©çu;`";[nAQÜ’%¿™2Åñ·¿Ý=šcàâíØqâg?{»»;ú_ÊfÓ<ø8ÚN$’ííÞ¯¿î>~¼Å~t™©S¹”R@i0Ñ Äâÿþï“ÆF·X,B‹¸ÓˆÅ¢9s º».‰žer¹47×›kp: N§!/ÏètNCNŽ$0úêêZî¾û/¡ûÍÚPéÞ}÷þùó/¼‚"ß®½ö¹ýû[E"ÑþýÛlD¦‡3¼ñÆ—=ôæÙ/#•Jòò ï¾ûCøÓFI²mm^TZ UšjLÙlDi©ÍFBEòò ›#ÿx>ÆqƒÇ'‘H<5Y ©!i)Q(tjOj 5,eÙp;©qÃð©ÇöBÌ#¬ïÖý¤®×fB„ÃÜ K9Sá¸4‘I¥âd2& ©†B!ÓhZ-n4ªFá›4É\XhÎË3˜No¾õÒK;{ì½Ó„Ù¬ýùÏWÝrË%g ØÙs‹GyûÃmÛöŸ0‘d‘îîÀ#¼½eK½T*>ýùç?¯îèðÖ×÷œ8ÑË0©T\Td­¨pTVæNš[Y™k2i22lƈmÛŽÿæ79Ò%‹ÒªÊ¤¹é¦yee6§Ó˜›«ÏË3Z­Ä  ‡£ïÕWw=öØûÉdòìÏb™LrçW<öØêQÈ.¯¿þÅþç†Ë//yë­û2=–‰åöÛ_Þµ«!µÞˆD"–HÄÉd2KoßD"Ìá0¼÷Þ¡õ`têNžìkhèCI*A#—K Ìeev´ºº´ÔVQ‘«Ñ¤ŸÇdj0CQ|<ž@Û(ÿ@i ZX 1,eÙH0Èú|t(ÄPG’,ËF9.‰Dc±Dêéd‘“H$8.U©ƒÊlÖØíºövÿW_µž>‘K&1µZñÐCËï¹gñ¨ÝqΘ[|ýu÷òåO?÷Üwo¸aÎ( dÜŽ;2=„ó¶xñâH$ö‡?l C v)ŽK§MsNš[Qá˜:ÕY^~ªóœrœ\î$ˆ…2™}ˆ—÷ù6D"=C¼ð9{)³p»Ýõõõ™È {饃{÷ö?7Åbúþ OÄdCÏK½^ñüó×dd¨c„Åb©¬¬¼˜[ÈÆ£¦!¢éȽ÷~z×]Ó/ž”鱌”ŠŠ «ÕzÁWß°aÃÚµk‡q<©D"©X¬’HÔb±R,V‹Å*±X%‘¨Äb Ú)É0 ‹Ç)¿ÿX,8BÃßàø€‹×Ýhnv77{šš\MMîæfwOOÃ0©Tœ—g*.¶[‹Š¬¨˜Áy'(Šs»ÉÖVO[›¯³Óß×òx(¿?ì÷‡Ãažç£b±$‹cØ™þÕŠ0,©R)Ö­[´re¾ÇãÕу1,õø|ð8Édò‘GÞž;·B‹ ËétêtÙ±Î& uuuíØqâg?{«»;x¦ò…†Éå’ûï_òàƒg;ùê«»PÓIƒŒ¢"ki©½¨ÈâtB)²’V‹kµxQÑç\}õÿž8Ñwæè¯põ»ßm~ñEÙ7V>ôÐ ˜O ÒŽÏÏ-¶l©?p ýý÷8*CcA˹ÏHŽ~xýúƒ»vužsÊT,?|¸ã,˜?þš5k†y|d'’dh?p ýÀ¶¯¾j'IV"ËåRŽ‹$“˜T*ÎÍ-]³fé9of2—lyM™“óâv»‡åv²è¨é|ýú×krrô™ÅXGÙŽO9jµbÚ4ç´iÎÔ¡sòä©>»v5tvú‰¤T*ÎÍ5äç›JKíeeöI“LS¦8ÌfÈbÈz}Öï‹Pt!‘ˆ U_‹ Çç5¸`ƒçÏ?¿uéÒŠyó Gy4œ/¿?üÌ3ÛýR©Õ†‰D2™8OÄãéïF‰äþýgË-‚P.^\¾xq9ú²¥Åsà@ûÁƒí_~ÙÒØØÆ»ºü™!€‘¡€a¡Ó©.¹dò%—LöD"±ÖVoCCj˜±o_ëë¯ZûètªÒRŠ1 ï7YŠ$ÙA÷‹D˜Ñ¨™>ݹlÙÔêê™F£M±‡ÐœnÜâÀö}ûZß}÷þÑ çËhT?ñĪúúúE‹¹\d{»¯½Ý×Ñáko÷55¹;:¼ƒ.)“I‰¤ßO»\!h5Àùš<Ù2y²å¦›æbÆqÑ#G:išÏô YI.—–•ÙËÊNu×ãùXs³»©ÉÕØènlt<ØñöÛ_¡$Ã`P£SÅŶÒR[I‰Íé4@IƲX Í-Æ’IL,ÙlÄ´iyË—O]µj†Fƒgzt ; ’[üãŸO™’3~Ñè€ &‰ìvÝ®»ôÒÉ©ûY6"$íí¾övog§r .ŽËR§JÀER(¤ŽŠ ‡°'‘Hvuù››= }ÍÍî¦&÷'ŸõûƩՊ’[Y™½¤ÄVV–SZ IcH0È(²‚Ó‚ÅÕÕ³.½´žžà¤çÑh|Ó¦£=tÆÆÅd¥R^^žS^ž“é`¨ÄbQ~¾)?ßtÕUåÂN¡ÀTCC_CƒkÆ}MM®D")“I=ª+…ÊL••å(ƒWGŒ(½^ÕÒò›Ld½ôWð={)Š[¹rzFFÀ N/0•–dÔÖûÓŸ¶A’ÙNœöõ¶mÇËËí¹¹†ŒŒ€ñ¡©© ­€;}ã,:::î¸ãŽd2yë­·j4šÑè9Ë}AwáàÁƒR©ô­·ÞöðÁr¹üèÑ£†‰RètºU«Vµ¶¶ñG‹D¢¦¦¦!^²¤¤$™üFoö+V ý†Ñ˜Ì ÆÎHÀ(€(x³ƒÔØÉ(¸˜§çP.yñÐÏÂ0L$­Y³&õ‘s^ú…ဉó\0”dTWÏ|è¡å/¾xûŽ?mmýíöí?}þù[oºi.ŽËjkýøÇo,_þLIÉO,øÕí·¿üä“ßzkß‘#<ËôðÙG8(:»3Ô ñÍéØ|§6šHÏ-l‡Î`¤µ´´˜ÍæLbéõúŸþô§ç{­÷ßÿºë®ëééyýõ×ëëëGb`# Ý…Y³fýüç?à‚Á †a¡Pè¾ûî{ì±Ç¦M›†.öùçŸ÷öööôô|öÙg‰DâÖ[o=Ó å¡ …¾÷½ï9£ÑøÝï~×çó¡ýmmm‡.vîÜy±÷ðB©Á€ ^ à*͘Ìw1OOáº#z”…~Ú~ûí·ß|óÍúA<`¸Èd’´$ãèÑ'Þ}÷þ_ýêÆ«¯®`Ùè[oÕýèGÿ\¾ü™ÊÊGW®ü݃þëÅwìÜyÒå"3=v@H=(J“z0v¦£»!¾9…wjßÈ-‰äñã½S¦8Îti†E"‘ÎÝŒKf³ù©§ž:ßkmÞ¼yÙ²e,Ëb–ŸŸ?ãqè.`ö‹_üÂl6£WçŸýìg999?ùÉO„‹Y,»Ýž““3sæÌ—^zéóÏ?'ÉÁ‡òP¹å–[ººº¶oß¾oß>ŸÏwï½÷¢ýK—.MM­?üðÃE‹]ä¼`cj0`‚ƒ(xJ3¦3Á]ÌÓS¸îˆe Ï# ÃÖ­[÷ƒü ¯¯o„~Ö9ƒzþü¢Ûn»ìÉ'oذáÞC‡þ§¾þÉ÷Þûác­ž93¯½Ýûûß×ÞrËúY³«¬üÅš5|ôÑw_{틯¾j%I.ÓcŒ9©EiRÆÎtt7Ä7§ðNí¹Eww€a"S¦@cp×]w݃>ˆ¶yž7 }ôöÿٻﰨ®üàw ½×¡#m(CP°bK,Q015ÑÝ”M61»IÌš5º›MÝä›ì/‰%1Ј :"EÅfè¡3Ógîï“ÀˆH›ÂçõäɃÔsgî\ιç~ÎÃ$ÉÁƒ)н½ýÁƒ%‰T*=|ø°›››ÝóÏ?¦.\ˆa˜ƒÃoëQîÞ½ÛÖÖÖÅÅå­·Þ …¨~ê×_uss+((PÓVŽvíÚ5ggç ÃΟ?O¥RGFFärù×_íïïoff• ¦Æ)~¿~ýzhh¨±±±£££âøÕÛÛkbbbdd¤üæŒzT>@ œ:uÊßßßÎÎî£>:{ö¬‡‡‡……Åûï¿î0öC‰ŠŠúâ‹/0 ëïï'‰o½õ†a2™Lñ9NðÁqü­·Þ éííUÞ ÃôõõOŸ>}êÔ©þóŸ?üðÃéÓ§õôôT¾$ Ã0©Tªòµ«`–žžîíímeeõÏþm]zzú‘#G|}}½¼¼Ž9rëÖ-tÏ„„„K—.)JêRRRâããÏ3öm™È›9þ;¶wï^tÏááaccãL¤1údÏ;çïïommýñÇ?êž8Žûí·æææË—/¿~ý:Ú÷Ænàø_«Qo,ºsjjª¯¯¯½½ýk¯½&‰TÞ¨òc³Pp€‚”Æ fçë©xì¨=sr»SZZN744ôôô<{öì¨×Bÿ|ã7üüü^zé¥QÕ똪½Q&“}òÉ'T*ÕÌÌlñâÅÅÅÅã4oØØ´th,KKã ØèççTWÇùøã6|åç÷Ž¿ÿ{7~õöÛ—NœÈ+)i†# ³Me‡ {ÜÈ"''gì9I•ÂTõTžÒÄTuÀ0¥• ÆŽšGmËħ5lT6{Ý3\ɃÍŽŽ¯·¶öã`nËÎÎæp8ãÜáÂ… nnnr¹ÇñÔÔT'''‰D‚ãø¿þõ¯-[¶´´´0Œ°°°¿þõ¯Ÿ|ò Fc0 ,xë­·p¯­­UÞ÷vìØ±bÅŠúúzƒøÁ ;¬]»6++kxxxüÖr8œììì©o5†a/^ÿ>Ï?ÿü®]»ººº(Jqq1Žãß}÷½½ý•+W:::~ùå Ã8ö.—«¯¯¿gÏž¶¶¶¤¤$ ú»»q?uêÔÙ³gñß¿9ÊïCgg§Êb¶}ûv.—{âÄ Ã¶nÝÊår¿ûî;t(ÄU}(GŽyê©§pOMM577 Ãq¼¬¬ÌÐÐpddÜ'R^^Ža˜\.WœD­Ul‚Â_ÿúW ÃŽ=:ê}.//çñx\.·®®nóæÍááázgFí*†=ýôÓ\.÷òåËh¥Rimm-Úýpÿ裂ƒƒÑ=kjj¶C…?ndñÁŒ='©òQ*û?*Oiâã'rãħš3lÕ°YëŸÿ®¯–—Çrt|}hˆÿØgºí±£¸‘‘“’’Ç·mÛöÎ;ï Ûýüü:;;ÑÏ!!!¾¾¾W®\A·TUU¡Ÿ•¿®b±˜D")ŽPW®\ñööFw`0iílÎ[ ¸¸¸ÐétÅ—F£>}Zq‡3gÎŒ?ì‰DÕÕÕÃÃÃ2™,77Wq¸Ù²eK?®ê‡Þ‡G=ðû÷ïã8.‹GýŒî0öC)++355‹ÅþóŸß}÷]==½O>ùdݺuø>ô3ª\c±XŠmWl"—Ë7nÜH"‘G½Ï zzzK–,AíT¹cO æääà8.“Ɉ ýå/qwwGïúíË/¿ŒvΤ¤¤¸¸8Åí*ߖǾ™}g¤R©ƒƒÃ¯¿þŠãøºuë>úè#E³ÇiÌ8Ÿ,Ú± PyÏÀÀÀsçÎ)Þ‡Ÿ~ú ½cc7pœ¯ÕØ7vÔ/^¼8ö‹‰nûl£Ày©›àQP8 àõ„¨Y›·˜Í¯ç¨=s»S¿žžÞ§Ÿ~:00 —Ëy<žL&Ãÿ=R4àË/¿477oiiQ¼®Ê½‘J¥ŽÝÞG5OÙŒî³6o;€îÐ?L‚H$©¬lKI)=z4-1ñ»ˆˆ¿£i OϷ׬ùìõ×úÿ/;/ÕÛËSwKÐ&ì“íPáY¨<'©òQ*û?zø8ä‰Ü8ñÁ©æ G5lÖúçdå!:'Ä0ÌÄÄ`\ÆÆÆ7nLII HKKS 5559:þo1 ‘Häããƒþéïïïïï?ê©8ŽL&óòú- ÞÛÛ»­­ ýìçç7³›ñä,--_z饿ÿýïè–†††ÅètúøÏ ¯¯Ïf³_|ñÅáááÐÐPtãðð°D"±²²Rùô>¨| bff†a*%Sþ™a]i IDATû¡„††š˜˜”––æåå}ýõ×™™™yyyÙÙÙO=õ6áO¤´´téÒ¥ÿøÇ?NŸ>­rÎ;—“““••µzõêøøø7*~U[[‹®º}ì;3º@HüÝwçÏŸ?xðàš5kJKKíìì·'$$ìÛ·ïØ±c£ŠéT¾-}3ûÎH¤Í›7_¹r…N§gff¢ íÇ6fœ G«h€Ê{Ö××*0þ>êk¥òU|yýüü«òF  à¥x8@ÁJÓPjùz"“ج¬¬²³³ÿýï>|8,,ìwÞY»ví£^ë•W^¹råʾ}û¾þúkt‹Ê½‘@ ¨ÜÞG5OììZ¾t†¾>™Fs¦Ñœ·p¹B6»³¦¦«ºº“Åê¼}»rpa…bîïïàD£9ûû;z{SÈd⣟ðxc;TØãFÍÍÍ*ÏIŽ}”Êþʇ?ªS„Y9S¥'œb6lT˜µîÙï^@*•cF"ÁÁ<ÞöíÛSRR®]»6þ|Å^hkk«¸Ât``àîÝ»NNNMMMè·åååÇŽõ< …D"544 Ö××;;ÿÖ xÔ‚ãjÔÚÚúõ×_¯\¹òÍ7ßD·8;;?|øPq&“9þ3‚­[·ùä“ØØØÃ‡ïß¿ÿ±‘ÜÀ±+~þùç‡NKK;qâ„ò9A ⣣y<^AAAFFƦM›Æ[Æo6±w&!!á矾téRtt4Zóá±gÃGý PyOwwwå½®ººzü |Ô×Jå‚ÚhzÃ06›þ,=êF  à¥xZ8@ÁJÓPjùz"“Ø\.ONNîïïß»wïúõëûûûõZD"ñ‡~(,,üþûïÑ-*÷Æyóæ©ÜÞ‰4v v€1´kè0ssÃðpÄĨcÇ6§¤¼\Uu¬¦æW¯¾úòË+\\¬JKß|óÂòå{xŒŠ:ºk׉Ï>»•–VÎbuMð'@al‡ {ÜÈâQç$Ç>JeÿGåÃÇvŠP b{{ûD¶âI§5lT˜µîLQ€IZµjÕÀÀÀáÇ÷ìÙ£¸qóæÍï¼óNss3ƒÁX³fÍ7ß|³sçÎ÷Þ{Õ|½òÊ+ÍÍÍŠ;c¦§§÷ì³Ï¾öÚk•••‡Ú±c‡¶gärùž={^}õÕóçÏgff¦¥¥a¶gÏžƒ¦¦¦vuuݺu ­I7‘H$‹õõõÁáÇ1 ãñx©©©£&T'øÀ‰4{쇂aغuëþóŸÿ,X°@OOoÅŠ§OŸvwwwwwÇ&ü‰˜˜˜øúúþõ¯=pà€P(TÞÇ÷ïßO§ÓQ˜Ï›o¾I¡P^}õÕIo ÚUTzÿý÷9bddTó_Šß’H¤-[¶ìß¿?22ÒÞÞþ±oËø&òÎÄÄÄH¥Ò#GŽìܹsÔ¯Õ˜‰²*ïùòË/¿ýöÛééé}}}hõFô÷ã±xâĉ¡¡¡ñ7ùOúS]]]iié»ï¾›˜˜8Î@íॠPp€Ò¨”Z¾žŠ=s»@XµjÕåË—¹\®X,ÖÓÓ366çµ<<<>ýôÓÏ>û ýSåÞxàÀåíýÛßþ6Nó` v€Q´hÌ5ææF‘‘žûöÅ~üñÖÔÔ×ØìŠŠ:µ'>>ð””²ýûÏ,[ö/ÿw•³¾±º€FSÙ¡Â×ÕyÔ9ɱRÙÿQùpåN‘¥¥%†a?þø#—Ëýꫯ”_úQãÄ'œjȰQmÝ3å5¤RS8:¾þØ¥¦€Î›àj¿/½ô’©©©r~&—Ë}á…¬¬¬lll^z饑‘¡PøÖ[o999YXXlß¾}``Çq‰DmjjŠÕßß¿sçNGGÇ7ÞxC ŒZ™w|³–oñÿ÷ÁÁÁb±ÇñŸþÙÑѱ¿¿_,9rÄÃÃÃÔÔ4** -Þ=ÎòÄ8ŽþùçÖÖÖ®®®ÿù϶oßnee…ÖmGT.„§òööö¸ÒÂvúy쇂ãøàà ™LF™?###úúúo¿ý¶â…ÆÿD”T*õÝwßUÞ„Ó§O(¯,_RRB$SRRF5r”±8jW»*kŠ{æää`öÍ7ßLämyì›9‘}õÀFFF\.WqËc3ñOvì=e2Ù_|áååeaa±fÍšÔÔT;;;•8v-þq6Ýùĉîîî¶¶¶¯¾úªbcGݨò£TëGOÝDŽrp€Û*8@ÁJåG©lvò-fùë9jÏœÜîtñâE///}}}??¿ÔÔT±X¬üZø˜/‹\.‹‹S4uìÞ(•J?ùäooo“¨¨(t9Øäš7;Àìä[À ™;ôOê24ÄWÎúöð8èèøº‹ËŸ.üðùçúéÍôôʦ¦Þ±Y¸èª‰ôÉUv¨ðÇ,Tž“Tù(|LÿGåÃÇvŠŽ=jiiéå啚š:¶36ªS7êáœjÔ°QåÏ3×?'àJµi×®•8p¦£ã‹±Ãl0§ää䌚ÇÓXÝÝÝUUUK—.âó„‹/nݺu*ORWWçãã£üµsÍ{ï½×ÔÔtîܹÙy¹ëׯ»ºº£^¾|ùèÑ£ŠÈ™IS¹'On÷¾téÒ³Ï> _Š©˜®£  FA‹ÕÐh´©´gZzMðõœ¸iܦþÙM×ß8Ø&nºvèŸ4„@ f±º˜ÌöªªÎêꎪª.W€a˜““e` KPs` K` ³³óxiFhµi铃iô¤Ãƙ럓ǿ7€  …§N:þü¬½(ƒÁxçwΜ9ãççÇ`0Þÿý—_~yÖ^ -à ŒŒôCBÜBBÜ·´¶öWWwTV¶WV¶_¼XòÙg·1 ³²2 t r r töð°#U¬/S¡–aã8`Þ¦Gqqñ3Ï<ó‡?üaê×ÅOÜÛo¿Íçó7mÚÔÓÓãéé¹gÏžýû÷OýiÍÍÍÇ>ÊZP@gÀ0ÇÁÐy®®Ö®®Ö«V¢ŽŒˆêë»Y¬.£­´´ñäÉ<‘HJ&==íét:Ý•Nw t16ÖWo³:`rÃÆ™ëžÁ:Q@X' 0]`†©›®£`ÍY' ¨…æ¬f|v-%•Êë뻌V£Áh­ªêaF¡˜£9 :Ý54ÔÝÖÖTÝ-`¢`( ëD eÈd¢¯¯ƒ¯¯CBB†a‰ŒÅꪬl«¨h¯¬lûöÛœ‘‘Hðô´CÁtº+îjnn¨î†Àƒy ´Œž)0Ð90ÐyÛ6 Ã0¹ol쩬l¯¨h«¬lÿ曬àåeìââF£9ê©»áðx0o`®!J¥r2™¨îfÀ´! ^^ö^^ö7†¢[¸\AMMgiicIIãÿý_fw7Ã0 Å<2Ò3"­+ÓÍóæCCO7·7-,Œ©TН¯ƒ»»››»»¯¯£ “:ÂÜÜ(2Ò32Òóå—1 Ã8œ!ŒÁ`´}ùeF_ßð¨ˆïÐPw==’º[ 󿉤ëË/Ÿkhèilì)/oùùçû(ÛÖÈHßÃÃÖÓÓÎÃÃÎÓÓÎËËÎÃÃÎÆnº€B±ˆ‹³ˆ‹û-YyãóÏoòõôHþþNŠR  ‘HPo›sÌ[À„ÈåxssoUUGMMgF‹@€µ5´•L6ŒRm††øÍÍ}ÍÍ}--}ÍÍ}wïÖŸ>]Àã 1 ÓÓ#99Yº¹ÙP©Šâ 77kNç´˜ò4Šø./oyø°µ¸¸þÇ %…bN§»†…¹ÏŸïânjj î&æŽãŠ\»V~àÀ™ŽŽ/ÔØ   rrrÔÝ„'¶téÒ)>ÃÌ:ˆD2ÙŠL¶$‘,Éd+2ÙŠÏgŽŒÜ›¡—›‚žž¾¾«ËÀÀ/8.}ÒǸӅÂ: f&Ú§@"Y`&“ Íè«`flL30ðàó"QËL¿–nSþ[žTwwwUU•º[€n²³³£ÑhSymì5…€€{{ûñï300ÂdvÔÔtVWwVWw°X]X_Ÿìëë`d$JKû‡\>2s-$“­Œü \{{/aجþ1% H$ ‰¤{6_tD¢¡M‚HÔ$6‰Åí&ŸúsN¤‚&3X¬.6›ƒæ3êê8|¾Ã0²»»­¯¯Z`ŠJ¥øù9™›N½a v"‘´²²Áh)/o½¿¹¡¡‡H$øøPÂÂÜÃÃç…†ºC)˜.L&³§§GÝ­šB¹ó@m<^ØÙÙMñ’““§Þ >_ÚÝ-èéöô»»==‚Þ^¡P(Ã0LOhggdgghgg`ååe>õ—›ýý"kŪ­–XXèS©6Ì37Ÿèõƒ¬´´»  ‹Ã¸¹™®YãJ£YÍh›OŸfc¶{7uF_ðÊÊþÛ·ÛZZ†íìŒ-¢,X`obej“‘ î&h1‘HÄårÕÝ t“¹ù”þ"kc¯ (˜››üîÒÑáaQUU;Z4ƒÍæ45õp¹B}}²ŸŸ#•J¡Ó]}}¨T …baXkkëÝ»wg¢aCCâ{÷zïÝëik±°ÐŸ?ßvõjWCÃY]püÁƒ¾Ó§Y_~¹h6_t<ž$;»£ªj ³“odDòó³ °ò÷·43›|Éˤû'ΛÍQg°X] ÝR©Ã0 cw÷ߦ1¨Tww//{¸B Ýø|qeeƒÑVZÚx÷n}OOyE© <ÝÜlÔÝF ­¸\®H$Rw+€¦PîŸÃ¼“¤(!onîc³»Øì®ÎÎ!±XŠa˜©©§§=ŠøC—_¹»ÛXX«»ÉÿÓÑ1˜•UŸÏF++“èhŸ˜jL ÕÝý zùù줤¢Û·+õôHÛ¶-صk±·÷c.Zœû÷ŸÁ0ì»ïvÍÂkaV_ß}áBÉO?Ýår‹y'&F­[G'‘ˆ³óê˜!2™¼®®MQ°Ù] F+‡ÃÅ0ÌÝ݆Ju Ó]¨T*ÕÁÓÓnvBJ{zx©©RRÊŒV;;³ BÂét×Yxé±4vlØß?RXX›‘ÁLO¯är…îî6+WÒV­¢-\è¥Æ,Y‰DÖÑ1ˆF,V›ÝÕÒÒ×ÚÚ/—ã†Mÿ¦R a‘1€¶BÁ%%%% F«H$E+JÑé.‘‘žpˆLÌ[ðx<ž°ºº]T¥˜«âcfd¤ïãCA#ÅhD£¦(¸\annM~>;?ŸÝÜÜg`@ŽŒôŒ¥ÆÄP]ž¨ÀS _¾|/)©ˆÁhõósܳ'fãÆP3³Ù+ŠŸåy D$’¦§W&%åç³çͳݱcá³Ï.°µ…F@kp8\£•Íîb±ºŒ¶ÆÆ‰Dfl¬O£9+j)|}f¹/72"ºqƒ‘’RvçN¡¡ÞÚµA ‹y«÷" ÍÊdò{÷š22ª22˜lv—¥¥qL uåÊ€U«hÒG“è 'åä ÃÈd¢³³•â '4CæâbWÆ´ŽT*¯ªj/)iDùÞlv™Lôô´Œôˆˆð Ó]©T ¤&æ-ø>_\WÇùo GyŠ‚D"zyÙ+—P(V ÐX‰ìîÝú¼›Él'°¨(o4WàL&?ñ¸¨¹¹ïĉ¼ää>_¼v-}ïÞ˜ÈHÏ™hùøÔ2o¡Àfw=[táB±X,]³&(11*:Úúa€¦Äml6‡ÅêBECC|"‘àíM¡Ó]|}PQ…ººs‰,'§&%¥,#ƒ)“É—.õ‹‹£iÈ5ªÚ56lnîËÏggd0srjärœFsŽ‹ ˆ‹£¹hZ'Ë45õ*æ0X¬®ššNHÿ茦¦Þû÷›ÑLf»D"sq±ŠŒôŒŒô\°Àæ0ó`NC³uuݵµœººîº:NCCD"Ã0ÌÂÂØÓÓÖÃÃÎËËÞÓÓÎÃÃÖÃÃn6K & ÇñŠŠ¶ü|v^ûÞ½&>_L§»ÆÄPcc©¡¡î¦¦“Y]W&“߸ÁHJ**,¬¥P,ö쉎 PÔÑ¡Þy dxXtõêý,¬¬l÷ô´Û¾}ÁsÏ-´²2Qc“€¹L.Çkk9èÚvt½g[Û€L&·µ5 u§RP@Ŭ-úô(8Ž—–6¦¤”]¿þphH>/!!â駃--5¢D@AKdž|¾­"•‘QÅá ¹¸X-]êC]¾Ü_“C&Pú·òµSŠôo}}ò¼y¶Ê×Nùú:ÚÛ›©»ÉðxB¡¤¢¢­´´±¸¸¡¬¬i``ÄÒÒ8"ÂcÁÏ <étWõþEh8˜·sHoï0›ÝU_ß][Ë©­åÔ×w··â8N&]]m¨TŠ·7ÅÛÛÞÛÛÞÃÃÎÚZËN@Ь P,ââbb¨‘‘žS™`èï9þî¹sw›šzcb¨‰‰QkÖ©½o¡ ó FkRRÑ•+÷d2ùªU‰‰Q113€ÞÞáêêE-ECC÷ð°ÈÀ€ìë«"C[44ôœ?_œšz¿­mÀËË~Û¶ÈM›Âœ­ÔÝ.Õ´}l(—ã••mùùìôtfYY“9"Â#.޶vmÆ¾ç£ ñY¬.åµjY¬N‘HŠ)¥+Öª…ôo€æãp†JJKJKK+*ÚH$B@€sD„Gd¤Ç¢EÞ66°3àw`Þè&@\[ËAý––>« ­_Œa˜½½™¯¯£¢øZ£F³OŠËäæ²‘¦¦Ë–ùO"^[¥²²ÆãÇónß®$“‰Û·/œµÌí‰Ð¨y „Ë^»öà‡ò««;©T‡ÄĨíÛÀè˜."‘”ÅêD¹¨¨‚Ãá77kå m//ûI¬„9£º»yÉÉ%ÉÉelv…bîëë îv=†. ûú†³²ª33«rrjx><<܃HÔŽu½url(•ÊïßoÊȨJO¯¬­åXY™DGûhT”÷$¨LÿniéGeåþ Ð|CCü’’Æâ→’Ƈ[$™‡‡]d¤ÇÂ…^žžvên @=`Þh¹omíWôËQEÊÍ62Ò÷ñ¡ ù g§öõ‹§QKKª«((¨íïqp°@sÑÑÔéÊ™hmíÿþûÜääR>_¤ÆÌí‰Ðäy „Ë\»V~âD›ÝE§»&&FmÞ<ߨX_Ýí4ÔȈˆÉlGµ,V‹ÕÅå H$¢——½&dhOœD"»u«"%¥,/%—ãkÖÅÇ‡ÇÆúÕÝ´'£ócÃææ¾Œ fFóîÝz òž„±éß,V'— éßM'JÊË[Š‹JJÊÊšxññá«W𛩻i“4wƆJQÞL‡ëêj½d‰¯æGyOÂØôïúúî‘éß$“É™ÌöºÂÂÚâ↑Ѽy¶‹ûDGû,ZämgÇ(tÌ[ÍÂå jj:Y¬.ôÿêêÎ Ã,-©Too{oo •Jñò²wuµÖ–*û'"•ÊËË›ssÙ¹¹¬òòfÇBBÜ–.õõ uŸÞõšF~úIã2·'B[æ-ÐÂÖgϵ´ô¡ò‹øøpXnÀÜÑÝÍ{ø°ÕR0mhÑ'##ýÀ@gE-…¯¯ƒ6®ÕÃd¶_¸Pró&££c0(È%!!⩧莎–ên×TÍÁ±¡DyOÂ¥{zÚ›šêÔ\@[Èåxm-§´´1?Ÿ›[Ãå y+VøëÀŸ]ÀX0oÔ©¯o¸ªª…R(À0ÌÎÎÌÏÏQ1‚7ÏNcW.ž8ŽWT´åç³óòØ¥¥"‘4(È%&†Kˆð˜‰³ÛLfûwß夥•“HÄÍ›çk]ƒÖÍ[ r9^XX›”Ttó&ÃÄÄ0>>|߾ة'¨šF WT´¡\ TT14ÄW¡Z m_g¿µµÿÒ¥’´´‡lv—»»M||øÓO‡èRŽèööggëB”÷$H¥òöö4‡ñßâŒ.åôowwÅÚ¼îî6>>##X 0{P:…RRÒ IÝÝmbb¨è?KKí» Ì[€Ù£<‚EÝ_´ €±±>¦õ—ÚMBW×PffU~>»¨¨®·wØÁÁbåÊ€˜jT”·­­éL¼¢VdnO„–Î[(p8C))e§Ovv.^ì£E•.ÀXèHÔ»CííR©ÜÆÆ4 ÀIÑÁÓ+µydýú`¸øcâ`l8(Ê;#ƒ™‘QUQѦˆò^·Žî佸ÿ›þÍfw … Ò¿3 ¨Ñ…¤P-€vy 0Q<ž°ªª£²²­²²½²²Íî’Hdzz$__??G??G__G??gç9]|7<,ÊήÎÏg£e LM –-óGÙP³¿\UÕqútÁÏ?ßÇq|óæù;w. r™—ž5:9o¡ÐÐÐsþ|ñO?Ý®Y¤í‹zÐp|¾¸²² ÕR°X],V—+ ‘ˆ^^ö(—bN-ìÙÜÜ—’RŠÒ¶çͳݲeþ† ¡>>u·K `lø¤zzx995™™UÙÙÕÃÃ"*Õ!.ŽKŠò&“¡Žv4•éßhaa Ò¿3cpN×deUwt ÚÚšFEy¯\Gƒ4o4Ì[ÕP¾"ƒÑ:jAŸß}¢Ó]çÎv|ʳ÷%% b±lÖ–R&‘È®^½òd>ƒÑJ¥:ìÛ»aC¨®.b ÛóˆX,½}»2)©(?Ÿíáa÷Üs ¶o_hm=G«—LE­ðÉ`´r8\ ÃìíÍ‚ƒÝ¨Ôߺy:¹èÓ8úûG®\¹—–V~ï^“é† ¡ átº«ºÛ¥N06œ4¡PRZÚ˜žÎ¼u«¢½}`ÎFyO¤f‡L&//oÍÉ©Îήyø°^w™Ä IDAT•H$,Xà¹t©_\mn^¬€f‚y ðÇ››ûŒ6TQÁd¶÷ôðˆD‚››M` 3æàD£9C½³BGÇ`VVu~>ûκ¾¾a''ËåËýcb¨‹yÛØÌø2PÊÚÛNŸ.LN.éïÑÌ퉘 ó µµœK—J“’ŠñêÕ‰‰Q11Tu7 €Öèéá•—· Z £ -údh¨ô¿Z __‡¹y:U _¿þðúõ‡¹¹,==ÒÚµA ‹yÙP ƆÓäQQÞs|V쉈ÅÒÆÆÿ¥77÷±XÝÝla0ÐDÅoWÛYZGDxÐé.°îÓ8{rrjrrXwîÔŒˆ¼½ícc}—,ñ]´È[-ÃŒ¡!~RRÑùóÅ :˜¹=spÞBÁhMJ*ºråžL&_µ*p߾؈u7 €zà8Ž–{b³»ÐÚžííR©ÜÚÚ„FsVÔRxxØ™™éæÒ‘Oª¤¤!-íá/¿<äp¸ááó"ž~:®P Ɔ3D&“3™íå=ÐdšÆxlú7ãhiéKOg¢$õõÉ11Ô§Ÿ^½:HW×â@3Á¼….Ãq¼®®ÍRTT´UV¶ ‹P’vp°[p°kp°«ŸŸãœ:ß=qÃâ‚vNNMn.«¹¹ÏÒÒ86–ºd‰ol¬¯³Ç««;ø!ÿêÕûr¹ÎfnOÄ\ž·@x>”_\¢Ã™Ûó ¨üâòå{d2qãÆÐÝ»£œÔÝ(ÓC"‘UWw \ tº eh£•Üét´Ê\ËО¸ÞÞá«W理”1­Šy||D||¸¯¯ƒºÛ¥`l8›QÞ7o2::!Ê{F=iú·——=L#z{‡oß®¸y³¢  V.—GEy¯]Kê)º™º›€Î‚y ­'J*+ÛîßoAÓ--}†¹¸X……¹‡†º‡†º¹À5#ãkk¸u«"#ƒyï^Ÿ/¦Ó]cb¨±±Ôððyjë::ø¡ %¥´¯oen/^ìAs0o1 —+¸v­üäÉ<« •_lÙ2_í{/€'ÅápŒÖQÚÆÆú4š³¢–bÎfhOŸ/þå—‡))ewîÔëoÜî=¨'cCua±º23™yy좢:Ç Ê{v@ú7`‚x>|÷îÅÎÎVênh%Ç[ZúÙìßj)X¬.”¡mjjàïï¤ÈÐöós‚k¦ËÈˆèÆ JÛ¶°0zæ™ùë×CÚö̱¡AQÞééÌ{÷šDyk¬±éßh’ƒôot‘X,MOg^¼Xœ]cnn”±cÇB*®´`¢`ÞB=úûGîÜ©+,¬-(¨­¯ï62ÒˆðX¼Ø;2Ò3$Ä æ`ŸˆH$ÍËced0Q¶™™áÒ¥”°­R~>en›™nß¾011Jc›ª™`Þb*:;úéî™3…üE‹¼÷í‹]¹2€@€ŒgdDÄd¶£Z «‹Åêär…$ÑËË2´g”D"ËÉ©AiÛD"aÝ:úúõ!K–øBú×Lƒ±¡6êï),¬ÍÈ`¦§3¹\Dyk…qÒ¿Ñd¤ íPå¹sw›šzét×ÄĨM›ÂLM ÔÝ.4Ì[ÌÔ‰ÌÏg+N¯/\èéCÕœPh-Â`´¢„íÒÒF‘HäC‹  ›§±¶|¾øÊ•{?þXXYÙŽÒ’!s{r`Þbê$Ù­[IIEµîî6;v,ܶmF%¾€ÉdòººnTKŠ*Ðõ°Š9î Ú³ÇñÒÒÆ””²ë× —-óúéàÕ«ƒ ~eÖÀØP«Édò{÷š22ªòóÙå­ÆIÿ677š7ÏV9ýjûÐ 2™<+«:)©(+«ÚÖÖlÏžè;¢¬­MÔÝ.4Ì[Ì,Ô_Ìʪ.,¬{ø°Ç1Í9:ÚgñbŸ <5på" 74ÄG1tyy¬în…bG‹‰¡FEykø‚Zlv׉y×®=H s{À¼Å4jlìùé§âóçïòxÂ5k‚£¢£} ü0×twó>lAµ FZôÉÈH?0Ð2´gY}}÷… %©©÷ÛÚ""<Ö¯Y¿> YfŒ uFss_~>DyëHÿ@7tt þðCARR‘H$Ù¼yþÞ½1þþNênšæ-fDÿHvvuffUn.kpïéi·t©_t´OT” wŸ”T*/*ª›°C tÑðå>Qæ6º¤ÝÍÍzïÞØ­[#ÌÍÔÝ.­óÓN,–Þ¾]™”T”ŸÏöò²ß¶-ò¹çZYÁ¥Ý$ˆ+*ÚP.*ªâ‰oo Ê¥@E..VP;kº»yÉÉ%ÉÉelv×¼y¶[¶Ìß°!ÔLJ¢îvÍ]06Ô=¸  6#ƒ™™YÕÕ5¤ˆò^½:F(ZJeúwkk¿\®"ýÛÝÝÆ××V @Cðùâ‹KNœÈklìY¼Øû¥—–ÂÎŒóÓF"‘ݽ[ªØì.”²°reÀ²eþ^  ™xý€S©þ €ÉåxFóäÉüÂÂZÇ×__µn¾’ 0o1U|¾8;»:+«&+«ŠÃá:9Y®X°b…t4ª2'¡ºº3;»:+«º´´Çñùóç-_î¿l™?æ¤-ÓÎ(sûöíJSSƒíÛîØ±pÞ<[u7Jëõ÷ðxBÅ?ß{ï †aÇŽmVÜbffëBN#‘Hšž^yâD^ii#•꘵}û8Ð}}ÃUUŠZŠÆÆOh`@öõuDµ¨¨–R#³”’R–—Ç"“Ik×%$D,Zä .j$JPŽ ’™YõþûWŠŠ)n!‘ˆ..Vêh˜A}}ÃwîÔed0ÓÓ+¹\¡››Ml,¢¼uÏØôoôÇ{Dú·››µ¶ ÀÐ ÍÍ}ß|óë… ÅŽŽ–/¾¸dçÎEpæ-&I(”üúkÕµkå™™Ub±4<|š®€5é&¡»›—ž^™ŸÏ.,¬íïñö¶_½:(6–áah¨§îÖM”@ ¾|ù^RRƒÑîñ⋹=Î+:xðÒ8wøôÓgŸ{nᬵgî`0Z“’Š~þù>€mÚ¶k×bÍY݀ߋ¥55(—]^Êáp ‚››5ª¥@çb C[à8^PP›œ\š‘QÅç‹–.õ‹‹£iQ—O‡õ÷„„–JeºÃÒ¥~?ý´6›f“T*¿¿)#£ ­QÞs¤ ijk9_}•™šzßÕÕæ/Y·~}0Ì ‚¹ æ-žŒX,ÍÉ©IM}‘Á$ xnØúÔSt-X¹H£ÈåxYYcFFJ­ ‘ˆK–ø¢mwwu·îÉ47÷8‘—œ\™Û3ghˆø> ‹L&UTð˜™Ãã SSœ>]PUÕA§»&&FmÞ<JÊêÒÜÜÇfÿVKÁbu¡ mƒ€'E-…ŸŸ#,×®Q˜Ìö JnÞdtv…‡ÏKHˆxúé`KKøÛ­Yvìø./%“ácE `_|ñÜÖ­³ß*0ûQÞ995‰ ¢¼ç”±éß ÝR©êôo//{¨É`Ú56öüë_7ÒÒ»¾÷ÞúÅ‹½ÕÝ"Ôæ-&„ÏÿòËÃë׿å±är|éR¿§Ÿ^µŠçIŸÔÐ?=™™YuçN]_ß°³³Õš5A«VÑÂÃçiÙ9P™L~ã#)©¨°°ÖÅÅzß>ÈÜžY{öœÊÌd¢³22™xòä jiÕ\ƒÊ/._¾§§Gܰ!ô…büýÕÝ(€ŽãóÅ••m¨–‚Åêb±º¸\‰Dôò²G¹¨¨}ÒL­­ý—.•¤¥=d³»¼¼ì·m‹Ü¸1 ÖÒX©©^~ù,JôÅÀ€Ìdƒ«æ>_\XX›‘ÁÌȨâp Ê{Ž‚ôoÔâÁƒ–cÇÒîÜ©[±ÂÿÝw×ÃÐÌA0oñUUçÏ_¾\64$ u[¿>dýú¨“}"8ŽWT´¡Î.“ÙN$.ôŠ‹£ÅÅÑ4­´B.Ç%ÙcûXýý#çÏß=wînkk?dnÏšë×8pfì@šH$|÷Ý®§ž VK«æ&.WxíÚƒS§òkj:QùE||øøK|44ô˜‡‡Ý¬5 ¥P†6ª¥@EhÁ}{{³à`7*ÕTÀ¢Oê¡´m[[Ó„„Èøøp__u· <†@ ¦Ñ …’Q·“ɤ5k‚¾ÿ~—ZZ4\ŽWV¶åç³ÓÓ™eeMD"!,Ì}Õ*ZL jÍç¦qÒ¿Éd¢³³Õ¨ôo+H0`~ýµú£~a±:÷í‹}óÍ5Páæ˜·PM"‘%'—þøã£ÕÕÕzëÖÈ„„p77Í:É®á¸\An. ÷ö;9Y._îG[¼ØG3/Ô’Hdo¼q!,ÌmÏž˜Gݧ¬¬ñøñ¼Û·+ML ž{2·g•H$¥ÑÞãóÅ£n76Ög2Á=jÊ/’“KÍÌ Ÿ}vAbbÔ£&#ß{ïòÕ«Î{)$Äm– Ðp==¼òòTKÁ`´¡EŸ õ‚‚þWKáëëE®êÕÑ1ø—¿\:}zßøg”Ó¶õõÉ7†ÆÇ‡‡‡{ÀåZä<{ýzù¨ W;ujïêÕêjÐ(}}ÃYYÕ™™U995<Þÿ¢¼—,ñ}¢x¿ŽŽA¸"PÇp¹‚¦¦^Å‹ÕUSÓ©œþíæfC¥:(Š3 ý€ JK+?tè †a‡­‡/˜#`Þb´žÞ?Þ9{¶ppP°n}ûöp)ýÄiQiÅ(##¢]»NܹS7ožmaợþ…’””2ÈÜV»?ýéÜÕ«$’ÿÅE’ɤ͛ÃþýïçÔØ*ÐÓût©$)©¨µµñbŸÄĨ5k‚”¯ƒæóÅtúûX_Ÿüý÷»ãâhjl-@½„B‰"—ý04Ä'>>”KA§»R©ÎÎV°„ºæ(.nسçÔÀÀÈ… bc}ÇÞA‘¶žÎÄkÖÅÇ‡ÇÆúÂUÚ(3³j×®ãøï \ÍÌ ++B‘Eå}ûvE]]·‘‘~xø¼¸8ÚSOÑ?!ñÌ3ÿgggþé§[aÉ)݆ҿQ6JΨ«ã ËÑ Èîî¶¾¾Šâ ??G;;3u7MÔ×7|ôhÚ¥K¥+Vøúé6{{ø¦ÝóÿÓÒÒ÷Åé?ÿ|ßÂÂèùçíܹŽÄå ssk22˜¹¹¬žžƒƒÅÊ•š\Z1JOoÛ¶oÙì.ûœœü²"õ¨¥¥ïøñ¼ääR±X™Ûê•“SóÜsßc˜òHšpþüþ%KTœC³L.Ç k“’Šnݪ°¶6‰Øµk1ZÁüìÙ;3"—ãF °wß}êå—W¨»½€ñôõ úé­Í›çGDxLåypGË=±Ù]( ¢½}@*•[[›ÐhΊZ ;33Ãéj<˜^gÎ:tÇq"‘¸iSèW_íPþmEEÛ¥K¥7n0ºº†¢£}âãÃ!NÛI$²  C\®Pq‹ž)>>â³ÏžUc«€æknîËÈ`fd0ïÞ­ŸH”7—+ ÑÞ“Ë1{{³ï¿ß=Å?7@ë ñY¬ß¦1Ô˜þýàA‹••1,¢´HAAíŸþô“X,ýì³gW­‚:H ã`ÞÃ0¬«k諯2λëâbýÚk+Ÿy&l^JÏd¶ûøPžhÃŒV´ÂéƒÍaáB¯ØXêÊ•4íZ¼¸ººcëÖÿ74$Je†‘HÄ+üOžÜ™ÛH*•Óéïò·XZWT|+¥j‡›’RzæLaGÇ *¿øôÓ[uuÝŠ?7¶{ẇ>¥lh ±XzâDÞ_Ü;¶ù…¹v¢J#••íŠZЦ¦.W¨¯OöósDµ¨¨2´µ‚@ ~ã iiÃreåQƒææ¾””R”¶è¼ukäºutXïEg¼ývòÅ‹ÅÊ®—.ý1:ÚGMZD)Ê›Éáp­­M/VåýóÏ÷_y% ÇqTéþ 1‡o€šž¹ìIÓ¿©T‡ñö&⃮ž<™÷ì³ Þ|sõDŠ„ÐCCü·ßNNK+ß¹sÑÑ£›áÈ tØ\Ÿ· %ß|“õÍ7¿::Z¾þzÜ3ÏÌŸƒ‹Èåø·ßfôÑ/?þøâÒ¥~ãß™ÇæäÔäç³ssY­­ýŠE\\@L 5&†ji©}×Ö7$& ŨÒ! žžvuuÝ zíÞ½xíZ:üÐï½w9)© ¤õõI;v,:vl³ºTHd7o2~üñNyy+Ÿ/õ["‘°reÀ·ßîšú`0]pOK{ø÷¿§vwse29‰Dܾ}ÁÇoç!‰¬ººåR ¢ ”¡Î&Ðé.(Š2´µQkkÿóÏŸ¨«ã(÷‘®]‹ZZúóòXÆ6„nÞæ‹,똢¢ú-[¾VüÓÆÆôáÃ#pµxR(Ê­!\QÑ6*Êûøñ—_*’TˆD¢ŸŸÃñã»=<ìÔÛl QÐdÆÌ¥ïØñ]vv ‰D$°½{c^}5ÎÚÚdƶ€étéRéßþvÅßßéäÉ=°ß]5§ç- j¼Øß?òç?¯Þ»7vÎX`ÖÕ5ôÇ?ž-.n °^ˆùðÃgTÞM¹´ð¨(ïØXjL 50ÐE{Ç0×®•¿òJ’\ŽËå¿ $“I4šóçŸoó÷wTWÛÀ£”–6nÜø•âŸ×®½Eåí<ûË/•¯ÙDÈd"æ””´ßÆÆT- (+*ª?tè2‹ÅÁ0]؈aXPËíÛo*ßÃb0Ú(CÛØXŸFsVÔR@†¶((¨Ý·ï>_ŒªQˆD¢é¹ç¢Ö¯†´m&—ã!!‡{{y†éé‘^x!úƒ6©»Q@»55õffVefVÕI$2__Ƕ¶þ‘‘ß]ÚB"õõIÿû3‰‰Qêj'Ð cÓ¿Y¬N´ºÝ“¦GDio@?ëé‘‹/.yå•åГZ¡¹¹o×®\®àôé½°¤9ÐIstÞB&“ÿûßéÿþwÆš5AGn¦PÌÕÝ"õ¸|¹ì/I–Hd蔢££å½{‡¿egWçç³óòØ--}Šy\-&†íce¥õs¹§O:tÃ0ÅÙeVVÆååGàâP „ãxxø‘ÎÎA Ã-ËÊþ×xj²¡!~pða±Xªò·d2‘B±¸tépajÔÔÔûþû?ÿúk™Lu’ÚÀ€|óæŸÙì.&³£¦¦³¦¦³µµÃ0 ÅÂßß1 ÀÉÏÏÑßß‘Ju€¿˜ºä›o~ýè£_p\u‰D"{Nƒ'2Nú·¾>y޼ߥûú:ÚÛ›I$2Oσ2ÙïþØééI$ÒÞ½±úSœ©éŒ„j0FöíûÉl?wîÀüùîênÓl.Î[â}û~¸s§îðáM»w/Vwsԃ˼ùæÅ_~a`¦œrœ“ó Ã22˜yyìÒÒF±X:þÑÆÆ”ÃáëGGS—/÷_¾ÜßÅÅJ]íœ 2™üÝw/'%3ia‘HŸwõêk³Ö00qÕÕ+V|‚aد¿¾ kyi¸%K>ª­åŒ"‘``@>sf_t4uvZ‹¥Çç~ùe¦H$gÆ‚@Àþñø;鯅 `|w÷î“Lf›b¹y•ˆDBPëÍ›oÌZÀº,\x´¥¥ïÏ^ýÖ[kÔÝ k¢£ÿÙÐÐ=ÎH$"Žão¼±êõ×W=Q\ãĽ = =……µùùµÊ×qŽB"mlLßzkÍöí `?šL"eäÑB IDAT‘íߦ¤¤!9ùe8ItÉœ›·8xðÒõë/^<0ÎÒoƒƒƒÍÍͳ٪Yàîînii)‘È>þøæ·ßf„±ƒRàâbõÉ'[.ô{MAssóàààlµwFˆÅ²þ3çîÝÖQ·ëé‰DºŒL&Ã%†á!;ûm*Õaìó<|øpZ ƱgÏepò$$r«Yppð8¿mlìÙ½ûäð°ËŠDÒQëÏüDÂd2œD"¼þzôÊ•^3ÔT5²´´twŸRÅnnnîÑ£G§«=ŒŒ˜vt8ŠÅ_ú€@ÀíìzììÆ;µô¤bccßÿý©<ƒNöÓÔ®¾¾ÿƒ2{{ùF$ŽwjÇqÇNŸŽ··Ÿüª¡¨_:é‡c:Ñ/Õ|IIåçΕûí&w÷)}Xà±æÚ7¢§gäùç“'xçà`Ƿߎµ¶6šÑ&M3õþ3†a~øa^^Þ8wèë³ápp|¼‹3 Ç1‘ƒC—©)oŠM`*ÆïEK$²;³X]·nýyÎ.†tÏܪwKN.½p¡øâÅ?ŒŸW#‹ììtg½õžžGGǦ¦Þ?üáG£ Çq•×à8ÞÑ1⦲rxx˜Ïç››këáÏ—:”^QÁÑ×'›˜è›™ZXYZšXY™˜›ZX[X¡ÍÌŒ,, ÍÌŒœœTך ˜››Àb—j³j•@ÀÈä¹uÓ("‘ˆË去ÜÜ¿*þ)“ɇ‡…ÃÃ"@Â狸\@ ápzÙì&É@$’¶µq»»ùNNÚzQ‰ËåN}Gåp8™™™ ÓÒ$0Ç …ä¡!c33ùȈL$"á8†a8€©´ã8&—›YYI¦ëÕ‹ŠŠ¬¬¦ZÇ©{ý4µãr…YY L4À@OÄ㉜,&÷r¨_:¹Ç*h{¿T+,_î}çN‹——­º¢ãæà7âÞ½N•·CC²¡!ÙÈHÏȈlbb`aahl¬wó&{Û¶`èùÏÓÒÆ0¬¢¢¢¦¦&*ê‘1ïýýüʉ€ËdÇ d¦¦r·22244TÛÀL{l/ZOtâÄ 6|¹sç÷×®ýÉÐPoÖÚÀÌ™Cûkk93ràÀ²E‹¼'r6ÓMš5999¿üRyìØm±X:þúH8Žåæ²Ö¯Qù[sssí}[x<á矛wv6­\¹|êÏæââboo?õ瓳?ðyó` ­6ÝÝÝUUUOô‰haa<*b±»»ÛÅ_ºtét6N“0™ÌézªK—.M×S€H$²¦¦^6»«®®›Åꪩéhhè‹¥D"ÁÀ@@ ðù"ccçK—¾®Wܺuët=•övH4STÔüY{­œœœiy­î—j 34´¡ÑüÔÝ7¿R©y@€—¡¡ž±±™™¹¹‘±±‰‰¾‰ \0lZûÏQQQãt¡7oþ¦³³ý¬¯O""‘”H$¸»Û†„¸º9¹@D<ÐéE›š|÷Ý®õëÿýÁW?ú.zº`®Ì[H¥òW_=çéiwðàœ[žU(”œ<ùð×_›0 #‘¤I ²²ª5o¡ÕÌÌ íìL{z`UJ]30uzz$ŠEq‹\Ž·¶ö³Ù]µµœÚZ“ÙÞÚÚ/ˆŒôÕØN€º,[“`ú»ÎÙ¤ÉÿÏÞ}Ç7Uµ?Ù³Iw:Ó2J¡` ˆ G‘)8Dq 2~ âq¡¼ˆ x”QD­ Ù¤ØBBÓÒIGº›½ïïCïÛtÐ6³Ï÷ÇOz›Ü<÷öž“›ûÜçàRŠŠªBt:-&&`РÈ~ýÂBûô Óà¾ââDŸ}6}îÜmÇKÆokTgÜBOÉ[ìÜyáæÍòãÇ—Ùɳeg—r_xa(…ÂÐj J¥N¡ÐªÕz•J¯Phu:“NgÔhôøÉf³åøñ‹…€8€ž†J¥DDøEDø¥¦ºÇM»³|ù¸~ýÂââD F;÷wàFÆK|á…á‹ïîß_ÖÕZp®q_¥ÒòÉÑ9s†ÇÆöÄ}RR¢5š’>}ú´=®‘FcÐj *•^¥Ò™Í*>¹à¦MKqvØÅªUΞÍ[²dÏîÝ/;;º¤GŒ™óãçL&óÂ…£ˆKãr™~~üˆ¿¾}CávÜ ‡Ãüâ‹éçÎåýüóEgÇ@—x~ÞÂd²|÷Ýß³f 8ÎŽìeÀñÌ™C?øàpCƒÆÙ±ÐyžŸ·8q"§ºZ9kÖ0gÒm(J~~¾³£°£üü| ¥ùì6bAÌœ9“ÏçÛ?4wURR2{öl×ßQmü•ñ& „(J\\AÖ¿;v¬SÚ…Kc“ëDÒíÚ8ZºòrÞc$rÛ[>hnƒ]ÜíD¶wì½÷Þ£P(ëÖ­#—ìÞ½›bË•+WBjµzÙ²eýû÷çóù)))}ô‘ÉdÂ/¤P(S¦L±n³öÛ"µZ½téÒþýû{yy%''øá‡d֬㌌œ5kVuuuߢëÁÛ\COhÖºÒ"ºò¾x YYYt:}ß¾}äòƒ2™Ìk×®áÛ8žU*Õ’%K¢¢¢8N\\ÜêÕ«u:]WB²‡tŒöØ èÝ…g·ë}||¦NÚñ ëÞm„vá. ]´ Ú’ë´‹+&ÐéÔ/¾øÓÙÐyžŸ·8|øê}÷E¹Ý\4þþþÎŽÂŽºqËËËwíÚ•““Ó-kóH¿þúëäÉ“ÝzGáMÀ‹ŠŠ®^½Jþª¾¾þôéÓNŠËµ‚çíí½|ùrÔ:Û–Èm¿'¸ :f¿Y·w‚ vïÞ-‹÷ìÙC>aÒ¤IçÏŸGU4éÛ·¯R©¼ï¾û.]º´nݺÌÌÌ·ÞzkçΣG6›ÍøµiiiÖ«²FFFÆúõëÿùçŸ+VìÚµ+55• ÃÚùóç+**îܹ³mÛ6…B1pàÀ†††Ž¼Kçþ” ™®´ˆŽ?¿e“ÁkHJJZ¹rå‚ ð½±±ñ•W^Y½zu¿~ýPÓÔÚñüúë¯gffîß¿¿¤¤ä‡~8xðàÒ¥Km¾htŒÐ1kžÝ"PÓV^^žžž~çÎ×_ÝNq¶ Ú…vá0Ð.º‹@À^¶lÜÖ­gd²JgÇ@gVÌ ^Hx‹ÅÒ¯ßÿmÚô×=½J.—ŸuT^^^³¿ !”——wOk;yò¤\.ïbHׯ_¿~ýzWBjcmþê^ŸoSwýe»e:Òøñã5MÇw”³´!Þ‚ BcÆŒY¹r%ù«íÛ·;¶í¢ë\*›ìIwµ¦N¯§»Žçfëéö=Ö-='þ¾Ñ-ñX#·½#;“lƒÍ^kÖïuõêU …’žžŽÊÍÍmöÌ–a,Y²døðá&“‰\¢R©"##·lÙBBhÞ¼y¾¾¾vÝÖÂøî»ïš=³Ù!g±XFŒñÎ;ït{H6ÙÜ|»ö`S¦LÁwvw…ÎÓºÒ":¾ò–kÐëõ /½ôA/¿üò Aƒ ~NÛdz··÷Å‹É_ýý÷ßb±¸ƒñ·Ë®‡ ž—’ c´ß†@ÇØhЕÑì¯yúôi¡PxOïÞ›í¦î:ž»å¬£%h6A»°R7êÜñl4š‡ ûàõ×wÚ#$ÀÃë-JKëjjT))ÑöXùáÇ“’’¸\npp0Y|wèСÄÄD6›½cÇŽ6Æ¥K—ŠD¢ÀÀÀ¥K—F\evüøq±X‡ ²ùÖþùgll¬ÏG}dMë4“É´zõj±X0kÖ,2ÑÝr 25m ÙlÞ°aƒD"ñòò6lØ¥K—Z[ˆlí7ëU¹ˆß~û-44´¾¾!ôóÏ?K$µZÚû£Ÿ:uÊæÞkù*dk—¶¶ókjjx<‡Ã±ÞQÖï{öìY›3…BÙºukïÞ½Ö­[·cÇŽ¨¨(¡PøöÛo·ØÐ¡C?ÿüs„P]]•J]²d BÈl6ûøø9r!ÔÐÐðüóÏûûû‡……-Y²D§Ó5‹¯™ ˆ%K– 0 ¦¦Æzðo§L™²wï^¢i@ƒ´´´§žzŠÜù6wW»ÛÒv`œ3g~¦J¥âr¹YYY ¦µ»k×®Þ½{ûúú~üñÇ­=“ ˆ-[¶ôéÓG <ôÐC‡ÆU¨mEä>$5ë.ð“<¸`Á½^osa‡ŽuG±¹'±ÖvTÛÓíÛ·ã§µì@Zv°í?®Àf·c±X6mÚÔ»wo//¯¡C‡ž`ÀÜseggíuêÔ)‚ ðè~©AsØÙp||ü/¿ü‚çääàÇ6÷€õJ$’íÛ·“+ùïÿ‹²¹h}¿ud™·¨¯¯ KLL´þøiûnsïÙ|•Í]ÚÚËŸ|òɺº:ÂVÞ¿¯Íƒ™ „Pff&Aƒ¡Ùcü„–]¾|™Ïç †E‹­\¹’Á`Ô××oذaܸqøµ4<Š~ùå—ØØØ–‡ý²eËп«YÉM š¾]¿úê«+V¬ bçΩ©©är›Qµ»-íf2™‚‚‚Ž?NĸqãÖ­[ב`ÚØ±ø8$°ùÌ„„„]»v‘;á§Ÿ~j» àP›iÙ]4{òž={šm,¹°åÚ¬92oasÿdzÍÕÁƒ°•·hÙÁ¶ÛÚàȼEËn§oß¾-;Ò6¾tµvжìFší·N´»Ö>­ÛûÅ‹ét:¾ öÏ?ÿ „®]»f½É6/ϵL&?Þßߟ°ê(6nÜ(JJJÚÝöNô„m\%ô÷÷oÖÜÚþºÕÁSµZÍãñ¤R)AO?ý4î‘l¾¼µÏVköë7Çæ-Ð":~6ØìXµ>Î ‚°X,“&M¢Ñh3gÎ´Ž¿íã™ “Étñâŵk×&$$Ðh4ܶÛ<;ò·³ëaàÈ«´Ð1BÇH¸|Ç-‚p`‹ Z ¼ 6ÏÛ8¥lm»:þÚEkœ·€vA@»p‡vÑ•³èÓûôY¥×;÷rœÈÃljR« \.Ókf2™2™l̘1ƒ Ú¾};^èããsòäÉ‹/†……9òÌ™3T*ÕæB„PQQQpp0…B¡P(©©©………x%½zõj÷Ýq^¯Ç¥ã®B½{÷~üñÇQ+»ÅúU¥¥¥ LLLlm!j}¿¹ooï—^zéÆóçÏ'¶ýG·¹÷l¾Êæ.µùr•Je4}|lÏKß׿ÁŒyyy!„ð€Ö[ ,))‰Çãeddœ>}ú±ÇKJJ:}úôÉ“'Ç’Ëåf³9&&¿<66öÎ;Ö‘`£FúðÃñ67aÊ”)ûöí#¢Ù¸Lmìä6¶¥ÝÀh4ÚO<ñË/¿ÔÔÔüõ×_3fÌèH0mìXÜ„Él>óöíÛ äKúôéÓö¶ÖuØì.ÈC¥W¯^äÆÚ\è ÚØ“¨•ÕÁƒÍ&›{¬í¶à"Zv;6;ÒÖØÜÕmw#X'ÚÍ~¬Ù{íÞ½Ûd2ùûûS(”Aƒ!„Ú®s÷öö Â7OY»råJ³¿ûk¯½–””4wî\¢é{Z7ö„m„·µyæå呇nÛ;—Ë4iRZZšZ­>tèÐìÙ³[{ykŸ­Íx@¿Ò":~6h½Ú–mj×®]§N:qâDZZÚÁƒÉøÛ8žÕjõîÝ»Bƒ~ûí·³³³W®\‰ÿÍ´vµû·ƒÃƒŽ:F Zæî-#/tªÕêåË—?ôÐCAØ<{l㔲µíêøWh.ÚíƒÛÅô郕JíÑ£×ì÷ØÉ¿‹EGf'Óý šÉd±ÇšµZíÔ©S—.]š™™¹yófr¡ÅbÙ·o_]]Ýœ9s&NœXWWgs!BçŠñC}}ýÅ‹›bnÿZXã*:WHHHQQ~|åÊ•>øµ²[¬_yõêUòÇ7n´¶µ¾ß\Miié¦M›yä‘Å‹“ Ûþ£ÛÜ{6_es—Ú|ù±cÇÆŒÓZø}mÌÑ20*•:nܸƒÊd²>ôÐCééé§OŸÆy ‘HD£Ñ ðËoß¾j vèС-[¶ìÞ½ûäÉ“­mÂ< T*Ïž=›žž>yòä¶£jwC:Ø”)S8°wïÞxW ·L;¶ÙIŒÍgFDD‡=BèæÍ›mo`k]‡Íîßß’Édø¼ªµ…® íCÔæŽêàÁf“Ëv°íjÙ턆†ÚìH[csW·Ý`hw6û1ë÷2›Í{öìùì³Ï”M-Z´gÏ¢ÅaÖf̘ñÞ{ïáû›BÓ§OÿùçŸ×­[7}útë§Q©ÔmÛ¶;wîÛo¿mcÛ;Âæ¶Ï˜1cíÚµd!µZ½~ýzrëZ; ‚øúë¯qŸÙÚÊm¾|úôéiii¿ýöÛ AƒÈ¯@-_ÞÚgk3Ðo ‡´ˆŽŸ Z¯¶Y›*//_°`Á† FŒ±zõêyóæ‘SV´q<ñÌ3Ï\»v÷û'…ByôÑGM&SË­hí(j÷o‡#tŒ´ÌZ„5.—ûâ‹/–––VUUÙ<{l㔲µíêøWíÂ5@»hÚEk/wßvàõÀ’C‡šgƒpVµÄ™3¹ÁÁ ëëÕ„§øå—ÄâÅf³åž^Õ‘ñêëë)ÊÑ£GÕj5¾»-33S«Õ²Ùì´´´êêêo¿ý–ÍfkµZ› ‚X°`ÁSO=UTTtõêÕÁƒ¿öÚkÖ…uø±R©Ä?~÷Ýw ø1²Ê„£eq69¬úxõêÕ‰‰‰×®]»víÚ°aÃ^|ñE‚ lîë ܸqc``௿þZQQqôèÑèèh„Í…D{û­m'Êl6?òÈ#ï½÷^]]]PPÐo¿ý†—·¼Í½góU6w©Í—Ïœ9³¬¬ ¯§å†Û<˜‰Ö4òqËÀ‚Ø·oŸÏÇÃ%¥§§óù|ëñ4Ÿy晇~¸  àÚµk}ûö}çwZ‹jõêÕ‰D«ÕZo‚õ»¿òÊ+½{÷~ðÁ;U»ÛÒv`A˜L¦ÀÀ@‘H„‡~îH0ß±6ŸùÕW_………ýñÇ555ǧP(íED{Ý~òƒ>˜——'•JãââÈm¶h“#lj²¹È­nmGuð`kÖÙÚ<<Ú=~Úà°q¢lv;~ø¡uGÚîà¼6wµÍn¤Ù~ëD»³ÙY¿×É“'i4šug{ùòe²5‹‡ÔØØÿàƒ;v,77wåÊ•¡ÀÀ@½^O´ø“}ýõ×ø{EkÛÞîV´¶í8Œ‘#G=zT&“ýòË/}ûö6l˜N§k3BèüùówîÜ9uêÔ¤I“ÂÂÂÈ&Ü‘SüÏ"g]½Þòå­}¶:¦ß 8N”cZDÇÏ­›Œõ,Ë„ Fމy0 ‰‰‰8-A´wwîÜ!C.\Ht y¶ö·sØaà°óRè1è]¼c„Ÿà°A`ÅÅÅ‹/Çp˳G› ­×Ùr»î©á@»°É‘ãDA» WíÂÅÛEÏ¢üñ\LÌ2†Šnæ_]Õ?ÿ/¼s§®µg»Ë—‹‚ƒ6¯m¼÷ÙgŸùúú†‡‡oÞ¼yúôéAìÙ³'&&†ÉdöêÕëàÁƒø™6*ŠÙ³gûøøøùù½ôÒKjµÚºß4<ðŸÏÇ?våªáÀ³aN·dÉ’¡P8}úôúúz¼¼å°Þ@“É´aÃ†ØØX7tèPœ·¹ho¿µÍay‹¯¾úªÿþƒ ˆã±&Û¾µ½×òU„­]ÚòåƒO,µö!M´r0·{ÔÙ ¬¡¡N§ã™EÕj5“É\¶lùFuuuÏ>û¬ŸŸ_ppð›o¾I^Êi•V«•H$+W®´Þëw?uêBè?ÿùOG¢jw[Ú {ùå—9ŽB¡èx0ß±-Ÿi6›?ÿü󘘡P8f̘ƒ´{µ»±øÉßÿ}DD„¿¿ÿ믿Nnl³…D›™· lír«[ÛQ<Ø:ÒÙv¥vXÞÂf·c0Ö®]Åçó‡Š'ÿhãKÑbWûøøØìFší·Îµ»fýX³.kÞ¼y£G¶ÞF‹Å³|ùÿ¦­²Ùÿ«TªÅ‹'$$°Ù옘˜U«V9rÚ´iD‹?™ÅbIMMmmÛ»ÒZ‡Áårûöíûþûïk4š–1#+ááá3f̰þ|i»½7[ÕK/½ÄçóñÜŒ­½¼µÏVÇô„óŽi-ŸÐÚÙ ÙdšçÛ·og±XÖS:I¥R*•š––†lãx6™LkÖ¬ILLäp8‘‘‘Ë—/Ç‚v›gk;‡;/…Ž‘c/wzÇ-?Áa-Âú£R©‰‰‰/^Ä¿jyöhs¡õ:mn×=5h-92oí‚\9´ o]<‹..® ^xæLnûOÀ•P«¦.“U޵þÔ©åIò …®wï•[·¾ðè£ í?»IUUUNNΨQ£ì—£:uªOŸ>]Y .‚ëÛ·o7åÝõ—í–ý ÜΪU«ŠŠŠvíÚ嘷;|øpxxxÿþýñû÷ïÿý÷³²²º¸Úüüü¸¸8âß'y6¶­»ZS××c§Õ]º¥çÜ»w/yu©+:ñ‡ö ƒ!33sÈ!ÎÄ]uW¿š:u*BhïÞ½]‰§»ú7m]?ž;·áÝx¸Ôy©›]cA‹ ¥îjÝu}ðÂ…£;½ï_Éñx,„J¥wR0ÝO `'$„ž>-sv 7¦Óé ¶nÝúâ‹/:ìM³³³gΜ™™™©Ñh.^¼øöÛoÏ;×aïîF`Gv1™L¸6<Ï [Àô(II⬬gGÀ½¡[ÿ(`0h¥¥uF8+ n7rdüÁƒYï½÷8•ê®S­œëÒ¥K?þøüùóY†µlÙ2F3yòäêêêèèè^xaÞ¼y]_­@ hÙC>V IDAT¹› Ý…v€äyýF×¹¿Xƒ@KÐ.hÉuÚEïÞ!»w_rð›ÐEÿÊ[0´°0ßÛ·«œ=<ùä}›6¿páö°a±ÎŽà–FŽYWWçà7ÅÓ„¼ÿþûÝ»ÚÀÀÀ-[¶td¡»°ÓŽòH±±±Pá:Áóú ¬Ç¶ˆÎýíà0À´Z‚v@K®Ó.BC}ÊË‚ Pà®nà6¨Í~މ ((¨vJ(v4hPÄöíg8TPÐh4×Õ©÷ yÞ":ÚÓò¡—^uôhv~¾GÕ‘@Ûð”ÆÁÙpZæ-oß®2›-N‰ÆNÆKŒþøãß8“ICfgÀ=hž·2$Z©ÔegßqJ4vB£QW¯~ìÈ‘ìóçó 8¾CFk~WÖüx‹z]¸ài×÷GŒˆ?>ñÍ7V*uÎŽ¡¡Aƒòñá:;îAó¼…B2$Öóò¡O>™f±o½µÏÙ€#ÔÔ¨ ŸÏvv ÜzËEC†Ä¬[wÄl¶xXõ@Àùüó§§MÛ2zt¤IIí>ÿêÕ«ˆÊ½466ºõn1ºm¢ââ⊊ŠîZn§[òèþV­V …ÂnYUjjj·¬Çí ÍB¥ºÄH¬f3•Fs‰9ÀL&†JÅçñ” †©+ë1uu¾l¶žÅÒ±Xz …è®mºvíÚˆ#ºeUÜo€r÷óRº´à1:xþ,—764h«ª••Z¹\!—ÿïACƒ†B ÒhövË)´ÑÈ0X:ÓdbŠD•]_akL&†ZÍ3™¨~~uö{àŽº~Ÿ_@¥Rº+$ÀFÞbÔ¨øU«öŸ?Ÿ?|¸ÄñÙÕHfͺåÊýýû‡GFú·ö46›àÈÀì- €ÍîjNU tK0ND§Ó¹Ün¨‰ó°Ã€Nè®Öäyým3B¡°ëgxxø”)Sº%÷¢ÓÑîÜñ’˹‘‘ŠÐP•³ÃA55œ‚á€ÕL¦ó“(uuìŠ _‹…Âç}}u>>Z>ßH¹÷¯!*£²RØÐÀ0™( Áf›y<#—kärM\®‘Ã1wo&cĈC† éâJ<¾ßðxp^ €5h „,B£1¨ÕF­Ö¨Õ++ ®(•:…B§Ph›þÝ}¬Têµ …–|¹¯/ÏÏÿ8PìëË÷óãI¥§kkïù:¯ÙLÕjéøŸFs÷ÅBA±X&Ç$úR©Ýyv¤ÕÒ Vc#S¡`ét4  zûÞJÜN×Ï¢óòäÑÑp Ü … lô†=öed¤ß—_Îp|@ö¦Ñ{l£Ùl9th!ŸÏrv8h./OþÉ'ÇŽ¹°téØñãû»ÂAz½iòä/Fó¡Cop8Lg‡ƒÌfËeéé7ÒÓs²³K¹\æ°aq©©}SSûŠD÷|«±Q“›[)“Éss+e²Ê›7ËkjT!‘H˜.‘I$¢øø ‰$ˆÍfØakà~ -AZ‚@„Pcãÿ–(Z‹…P*µ ¡Pè, NEh4zµZ¯V5øVk£˜[ ` …\¡ãíÍóöæ4=æ …¡‹³8]A§wf°ÆŸ//.®•É*e2yqqmQQB¡¥P(b±¯Xì'‘ÅÇEDø‰Å~¡¡>{—– Ó¥KRiTZ˜™Y¬VëöàÁ1))QÉÉQýú…¹Ây&ð0A$&¾3þƒ¯¼ò³càØÎ[lÛvæƒgg¿Çåz`w)—+ÆŽýL" Ú¹ó¥îúà@×]»vç“OŽ?žÓ»wȲec~¸+d,HeeõcÆ|6rdü¦M3Ë¿”–ÖýýwnzúÓ§sFsBBXjjŸÔÔ¾ýú…Q:Q…jÊddgß‘É*ss+srÊÕj=N õ‘H‚p <66ÐÃF<ƒB¡# A ÆF-BÈl¶¨T:„Á`Òj!­Ö ×›4ƒÑhÖh F£I­ÆõF£Y¥Òã—˜L•Jg6J¥Îb±(:2ÑÆ»S(€C¡ ¡ƒS©//¶—›ÇcñxL-rx<&—ËâñXB!‡Çcá^^,//N7žZ,DiiLV)“U×â\…\®@q¹ÌØX¾?C,ö‹ˆð‹Œô8ÝõÖ˜B¡»té¶TZ(•\¿^¦Õ|}yÆÅ%'G¥¤Dõí gSÀ®d²ÊQ£Ö>¼pàÀgÇÀ=°·¨­U%%­þê«™™Â]ºT0uêæçž¶víãÎŽ(?¿jãÆô_Í‹ýÞx#õ‰'¹æ½gÏÊžyæ›5k&¿ðÂpgÇbCc£æÔ©Ü¿þÊ9yòf]:**à‘Gú¤¦ö2$¦ëûS.oÄÙÙ¥2™‹F£ñù,:Êç³i4ª—›J½›Àù €C¡P¼½9!¡°F”í4•JŸ“S†K(JJjss+‹Šj •J ÷ŧ+~~‰H$êž¹èZª«SŸ;—'•fdÞ¸Qf6[Äb¿#$ÉÉQ))Ñ~vz_ZÚ¸1ýÛoÿ¾zu­k~à5¶ó¡gžù!ôÓOóãüòË? ìzë­ñ¯½ö°³cz®ÊÊÆ ŽíÝ+ŠòãÔÉ“ºøg›7ŸX·îÈž=¯ ãìXZe6[²²Šÿú+'==çæÍr^jjŸ1cúÕ«»z2™,eeõøÖE<ÆÔ­[ƒ g2Ãð¸RIXìÛé² ƒ‚ ç<Àã!„Ôj=Îàªt÷ú¾!„‹ U!Yš€"ë pÙjªN@Võ ¸4!„ÇAjzkͽFŽËBt:gÍdÒñ`AƒÉ¤#„ø|NC§•Jñòâ „ ÇD±X ü3 !//6>§ 9!Êç³B,Ãa „Øl&‹ecÒS7b6[òó«d²Ê’’ÚââZ|B‚ÿ|>«wïr '‰$(*ÊïLû)-­»xñvFFá™3²ââZ …Ò¯_.ªHI‰²_Ž€¶=øàúÁƒ£×­ë‰“&·ÖjÞâìYÙÔ©_ÿñÇâ~ý“ÃìÝ›ñæ›?¿÷Þã®yË$àÙ í¦MÇ¿ÿþ´¯/oÉ’1S¦$»xÆ#bþü/\¸}ìØ¢à`og‡Ó¾ÚZÕ‰7¾zêÔ-‹…80bâÄ'öïö/ÏF£¹  g2peF~¾Üb!vdd9CFbbx'fààRÈ:£Ñ¢VëñBò’=YO`0ܽ²O– »™3²ª*°N9…d‚¬-@M* «ò³Ù¬Ré;± Ëe!„h4Š—×ÝÙÑÉB€“î¸ì!Äf3ðU~2©@¦ÈÄjÊ+ «´™H`³,£iT„P÷ކäñª«•·nU=Éd•åå F£™F£ÆÄ’=áSÇÔ|!“Éq¢B*-Ë mÀqJJtJJTRR„¿?ßaІ7ÊRS?Ù·ïÕaÃb ÷¦Õ¼BèÑG?‰ ܼùYGä`Ÿ|rìË/Ó7mzö±Ç8; §P©ô7¦oß~–Ïg-^ýô­ÖðúëÏž=ÜM¿ÚVûù¤IIë×»_Áµ^o’J þüóÆ¡CYUUJ‰$(5µojjŸää({è¤P芊ªñ™¬2;»ÏЉ3‰‰áxªŒ¾}Cy<–]#€Öy΄/ú“Wðɱ†Tª»£éõ&21 Tþ¯bÀlþ×¥³™À#¡¦) BZ­—,˜Lf«’…»Ýë,Öx<òÒ?­)1@±N àKùl6Ã*1p·àÀË‹M¥’¿¥#„ðÄø·d‡swˆ!:ýî8Eèn©!Äå2™LBO–й­=ÎO4 ôTYRR[VVo2YX,z||pÓ@O"<è“S&Ï0L—.H¥Riaff±Z­÷öæŽ'«ˆêÓ'¦ ®©´´î>\·î©éÓ‡8;îY[y £ÑóÌ… G»û`Aéé7fÏþáã§>óŒ»~ 0LgÏæ=zíÏ?¯WW+cc'NðØcIññA‹¡±QƒÓøRÅÍ›å55*„H$À7QâLF¿~aøÒÀã‘(•wçÀ÷ø“ ‘Å&ÓÝЬ¦&¾›E G1"+”JÕÚjÔˆ,DèÜpCdÅ•Jî^ú'ïñ'+ð<Æø·d)Y1@7„¬.ý“à’ñoÉz.—ÕT²@ÉëÌ.K£1äçË›z’×Õà¦ó¸ŠúäàBŠf Ý¥K·¥ÒB©´àúõ2­Öê3thLJJtrrTll [ p z¸7Þø)#£ðï¿ßr¯êv°¶ò¡íÛÏ­Yóë©SË##ý“ãñî»øáÌ—_ÎxüñÎð4Åŵ«WÿúçŸ×{lÀ[o÷˜óŠO?ý㫯þ:pàõ¤$±³cé‹…¸|¹ðÈ‘ìC‡®TV6öîüØcI“&%9å/…3x\©ÜÜÊœœrµZO§SCC}p&ßqÙ«W° Ò€;"Ëpþ€üQ¡Ð¡×›´ZjJãáŒpÅBàƒU¦Á¬VÐÝÑp¦áî,(/ Ó©<Y]»'‡"/ús¹Lü€Çcá¢ÉÄ€·7ý{Jdœ óL&9}ñÝYFÀã±áöjÚf±¥¥ux¸HrR \gÉá0ãâDx. ‰$úä”BŠfêêÔçÎåI¥……7n”Y,D\œ(%%*99*%%Ú³#žçÖ­ŠÑ£?ùôÓ§§LIvv,tF;y ‹…7îóà`á¶ms“³|úé±Ï?ÿóÝw'Ï™3ÂÙ±B¡ÐmØpôÇÏ%&†ðÁ‰‰áÎŽ¨;ñâ‹Ûÿù§èرÅî^>BÊÍ­<|øJZÚåââZ‰$hâÄþ“'Œ‰±×!—7₌ììR™Lž—'×j -$Ä[" JL Ãù ¸óx¼®'È’­Ö ×›ân©.q §1P«u¸F¡#p€Í¾[X€¯<âŒÉùÈaˆÈ™ÛÈ4Ó óùwg2h‘i ’• ¡RésrÊp ž”¢¨¨Æ`0Q(±ØW,¾[Es"‘ÐÙñþOiiÝÅ‹·ñÜÚÅŵT*%!!løpIJJTÿþâÀ@/g@gX,ÄäÉ_ ¦#GÂ2pSíä-BçÎåO™òŸ={æ.qLLN”–vyñâÝÏ>{ÿÚµãÒ]tŽÅBüôÓÅO>9JèÿþoâSOÝg﹜B¥Òÿ¹·77-íUOª¿Æ‡]%çÀ˜8±ÿ“OÞç µ2&“¥¬¬ß¿‰Ç˜ºu«Â`01´¨¨<®Tbb¸D$ûzäQ\A8€''Àó«Õ“ÉŒ3xd\d`4šÕjƒÅbQ*u­%pñÙlQ*õèk6…B%'6hÊ+ü+‘€“ätǸŒ€J½;–.M ÓïÎj€$Sxbd˜·€Ël¶äçWá‰(š&¥ã×xU£PèþøãÚ‘#Ù§OçÒéÔñãûO™’‹F£áBœ `±èMYFmÊ"X§8T*¥#éí,p8?Ñ4ÐSeIImYY½Éd¡Ñ¨11M=‰p®Âe )šQ(t—.Ý–J ¥Ò‚ë×Ë´ZƒXì7b„&Ö=Dze{ûíÊï¿¿àìXè’Žæ-,â©§þ£Tê~ÿýÍ’¬khÐÌ›÷ßÌÌâ/¿œ1vl?g‡¸´;wêW¬ØwâÄ­3†üßÿ=ÖgLµXˆY³¾“É*[ìëËsv8Ž ×›þüózZÚå“'oòùì ú?õÔ}))ÑÎŽ«£58¯×ܼY^S£B‰D|')ž*#!!Ì#ÇÞÁ9µÚ`0˜ -I¡Ðf• çL ZœuP©ôƒI©ÔáQ’ ­Á`R« :A¯o5Ó€Sx–.—É`ÐNõòbã|ÎCx{sètÇÂ%yy±étª@ÀÁ£á,N?8rÿ€'Ñh ùùò¦žäÅŵEE5¸.-0Ð+>>WQà\…ëR4£Réÿù§H*-¸xñvVV‰Ng ÷<8zðàèÁƒcbc Žóç׬9¸cÇ‹£Fõrv,tUGó¡üüªÑ£?Y¸pô‚Ø5&×a2Y>øàзßþýâ‹#V­šè^ŸÜ€cæ/¿Lß´é¸Dôé§O'$„:;"§ihÐŒû™Xì÷ÓOózÔÈryã¡CWwï¾”“SŽgðž6mpX˜³ãºg8“Ç•ÊÍ­ÌÉ)W«õ!‘H€'úÆ·ÆÇ³XÎöG£1ètF¥R§Ñè5£F£W*uZ­A«5’Fo0˜ -®lP©tz½I­Ökµ½ÞŒý° O½Àá0X,º@Àa2é\.“Çc1™t€Ë¼¼ØL&Ï¿›iàóÙ Î4и\‡Ãd±h|>»Gµp QZZ‡GJ$'¥À%†l6ƒœ‹?p£BŠfª«•RiÁ¥KRiaNN™ÙLH$¢!CbRR¢‡ ‰övv€8ÁÁƒY¯¾ºcÕª‰óç?èìXè÷·@}óÍ©>8´gÏ+C‡ÆØ/&WsüøÍ×_ßæóí·ÏGFú;;À…de•,Y²§  jÉ’1óæ=H§÷ôË”99å'nœ;wDÏœ/7·2-íòîÝ—êëÕƒEN™’üøãy<7G.oÄÙÙ¥2™vì›ÍxôÑ„)S’‡ ‹ó€q~L&KYY=¾‰õÆr™¬2?¿Ê`0ÑhT‘H(yùúò…B6›Íd2N¥Ò+•:…B«Réu:#NH˜L6&ˆ¦P(‡Ãa°Ù €Ãã1ÙlŸÏæóÙl6ƒËe l‡Éf3„B~ °¹\ÎIðxl÷½ #ÌfK~~žˆ¢iR 9®Ÿãr™±±"\(ûEDøEFú g‡ÜUz½I*½;±vVV±J¥÷óãßlrrTJJTŸ>¡ðÙvþ|þóÏ?rd¯-[fÁ=(ÀcÜ[Þ!¤Vë'NÜH£QzƒÍfØ),¤ÑÞ~ûÀÏ?_œ5ëþ5k&÷¨mš¹xñö²e{ËË–/÷ Ãá丙·ß>°{÷¥Ã‡ÆÇ9;gª¨hHK»¼o_F~~U||Ðܹ#&Ov¹ò £Ñ¬Vëµ*•N¥Ò«Õz•J¯Ph•JZ­Ç •JR‰«S©ô …N©ÔZ,ÍÏ¢) …B! A …Âå2||øüà`ïï  ¡@ÀáñXƒÇc᱘8¦PÈa³pn ÀZuµòÖ­ r '™¬²¼¼Áh4S©”ðp_\ó‡z’HD"‘ÐÙñv›ÆFTZ(•ž9#»y³Üh4K$A¸¨&ÖÀ¦C‡®¼öÚÎ)S’?þxªÜ'éžó¡ÂÂê±c?=ºï—_ΰGL®ì?®/Z´›ÏgmÚ4399ÊÙáŽf4š×­;òÍ7§FŒˆ_¿~Jx¸¯³#rE&“eÚ´Ír¹â÷ßõÀ)Ê[ÊÌ,þùçK¿þšI¥RžxbгÏÞß§OˆÞ«±Q£Pèp•þŸüQ¡Ð66jÉåJ¥ÖÔr%B!—Ïgá\.ËÛ›ËãáÙ|>K àxy±¹\¦õx &„Ñh.(¨Æ×˜ðT%%uAìÈÈ|3¬DÔ¿¿80ÐËN;€ÑëM¹¹ä@OxÐ'\HÁç³z÷!z’H‚¢¢üñÇ')+«?>?#£P*-¼}»Š ˆ„„0\T‘’- œ ®ë§Ÿ.._¾oîÜï¼ó…I àQ:“·@;vmΜm«WOz饑Ý“‹+.®}å•oÜ(_¶lì¼y£àS=Çõëe¯¾º£¼¼áßœ2%ÙÙḴêjå˜1Ÿ%$„nÛ6î{ Ó\ß¹ó™3²¸8ÑÔ©É3gm{:PÎØØ¨il¼›cP*µ …®)3aÀy­B¡k¶ƒ†ó G(ä4=f{yq„»Ëù|–PÈÁ™ ÍçwsEˆB¡+*ªÆ—¢d²ÊììR£Ñüå—é_~ù×€â/¾˜àìˆû²Xˆ¯¿>±añÄÄðM›fô¨i®:-3³ø‰'6½ñFê›oŽvv,.Ä`0ef–¤¥e:”¥Ó™ ßw_$—ËÂù‰†MCƒ¦±QÛØ¨ihÐèõ¦f/ ¹Mù¶—Çêÿe&„B^îšã/56jp_´ºy³¼¦F…‰xèøø ‰DÔ·o¨« « ã4C~¾¼i 'yqqmQQB¡ExõêÜ4ÐSDâÍ`М²欬b\TqåJIuµR(䦤D¥¤D .éÝ;ij7€îe±Ÿ|rlãÆôE‹F/^<ÆÙá`Ï[ „ÞÿÐwßý½}ûÜìÕ1¹‹k×î¼ñÆOÅŵ«VM˜=û¨Æà©*+,øéÂ…ü… Sßxc4LØq»v]X¾|ßöísy¤³c±#“É‚³õõ2ý`+¡mlÔh4ÿ—‰BAX,zPwt´¿¯/_(äx{sñÿøu~ÂYÛho8“Ç•ÊÍ­ÌÉ)W«õÈ*“‘˜†+3\3=œÅB”–ÖáAÉI)pu‹EnèI„}òÔBŠft:cFFáéÓ2©´àÆ2Ææ3dHLJJtrrTll Œ`@'46j^{mç¹sù6L}òÉûœöÒ¥¼A‹ï9x0kïÞW Šèư܅Á`Ú°áØ–-'ï»/ò£žêÕ+ØÙÝìØ±kK–ìñòboÚ4sРHg‡ã~–.Ý{èЕcÇEFú;;–Ψ¯W×Õ©›þ×ÔÖªjkUuujü¯¾^][«Æcp“h4ªuÖA(äz{s¼½ydB¢i W(är¹ÌììÒ;/8I¥R&MJzî¹a}û†:k{]‡\Þˆ 2²³Ke2y^ž\«5ÐéÔÐPœÉÀ¿zõ ö¼ÎÀÅ©Túœœ2\B'¥(*ª1L!œŸÀUxÐ'/¤h¦®N}î\žTZ˜‘Q˜“Sf6qq"\T‘’åISˆàYY%sçnc2i[·ÎéÝ®COÖ¥¼BÈh4?ûìw7n”íÙ3ß~ó+º¸k×î,_¾ïƲ9s†/^<ÊùxµZ¿bEZZÚå'žôá‡Oyð­îve4šŸzê?õõê#GÞôòr¡}¨VëëêÔ55*«´„§%êë5uuêº:U}½Æl¶/ár™>>õBŠfŠ‹kñL…Åŵ mÀ1ž¯"))Âßfo {ìÞ}iÅŠ´Áƒc¶l™åíÝ{Уt5o2Íóæý÷üù¼]»^î™U!‚ ÒÒ.¯]û›ÅB¬X1~ÆŒ!0l·VXX=wî¶¢¢Ú5k&=ûìýÎǽÉåŠ1c>80âûïg;æ Áb!jjTµµ*¹¼±¦FU]­¬ªRÔÔ¨ðÿ8Ko Å š¯/ß×—ëëËóóóòóãùøðpNÂ×—çïÏÇ0BAçÎåïÜyþèÑk~~üçž6cÆP¸Þa“Ñh.(¨Æ™ \™‘Ÿ/·XëLFbb¸D$û©)tDuµòÖ­ r '™¬²¼¼Áh4S(±ØW,¾[Es=¹tÀb!®_¿ƒ‹*ðÄÚ^^ì!CbRR¢’“£¸\¦³cÀ£ètÆ>:òý÷§Ÿ}vè{ï=7÷€ž ò!£Ñ<þ§NÝúñÇï¿?¶ë+tSšO>ùcÛ¶3ÉÉQ0l÷õçŸ×,ØáÿÍ7ϹéèF®æòåÂ'ŸüÏ[oŸ?ÿÁnY!NKTW+ªª”8!Q]­¬©QVV*jk•µµj²N‚Á ùû{‰D‚€/??~` ÎFà‚ ??¾ŸŸÏw¹jÑšÕž=—¶n=+—7>üpŸ¹sG .qvP®Î:“§Ê()©#ÂË‹€Ç•Â5~ΜL¯7åæV=áAŸp!ÇŠ‰ ÄÝ&ÎUDEùà|ƒéÒ¥©´@*-ÌÊ*V©ô¾¾¼aÃâ’“£RR¢úô …)а“ììÒ ~ªªR¬[÷Ôc%9;¤{ò!ƒÁôÒKÿ½x1¿'W]`RiÁŠiyyòçž{`ùòq.x!hÑh^µjÿÎ^}õáåËÇÁ÷Ïnôý÷§ß}÷àŽ/ŽÕ«Ý'ëõ¦ŠŠ¹\Q^ÞP[KL(årEuµª®Ne4šñ3étªŸŸW@_$øû{x üüøAAB??^@€—ÏÎ[fGZ­aÿþ¾ÿþ´LV9hPäܹ#ÆK„ûË:N¡ÐUãëq2Yevv)ž$V(ä’i šðñÇSýü  ô Ý–·@æ—_þï™3²o¿}¾#_È=˜Á`Ú´éøW_ýì½víã<ÒÇÙí«¯W¿òÊŽ n¿÷Þã06”=¼ùæÏüqýرEb±BH¥Ò——×WV6VT4–•ÕËåŠÊÊ»jkUø%T*Åߟïçw·`Âߟ/ ýüx8KáïïÕÆP"âÌÙwßý}òä­À@Áܹ#fμ&\éœÆF Ncà+w7o–×Ԩп3‰‰a}ú„ÂÍ77¥ÑòóåM=É‹‹k‹Šj -BÈˋݫWpÓ@OAIPO›4»#ÊÊêÏŸÏÏÈ(”J oß®""!! U¤¤D‹Dg@OqýzÙ‚»**?þxÊĉœŽÖy „Ùlyûí_vì¸ð_xax7®ÙÕ¼ýö/Çß|ืß~¬_¿0gG´*7·röì,âë¯g%%‰Žç¨­UÉ劲²úŠŠÆòòú;. æaEEƒJ¥ÇÏa±èÁÁÞAAÂÐP‘H, ñ †„0Ç2éöíª-[N¥¥e0™ô™3‡Î;"8ØÛÙA¹=œÉÀãJåæVæä”«Õz„H$ÀõðTýú…q80X9ÀµX,Diiœ”–ÑhÔ˜˜À¦žD8W…6!“É32 ñÜÚr¹‚Å¢ãYµSR¢“’" “ €ƒiµ†Ï?ÿóÛoÿNL ÿòËg`ä^Ð3usÞûþûÓkÖü:{öðwß ß´³²JÞÿ· n§¦ö}÷ÝÉÐ×pAû÷_^²dOJJô·ß>_é;Áh4——7”–Ö–”Ô•”ÔÞ¹SË&**ôú»Ó_{y±ƒƒ½}|¸W®”DG>ÿü°  aX˜H$ôõu㡜O©ÔíÙ#ݼùDU•âá‡û,XðÈ A‘ÎÊ£Èå¸ #;»0¥ÓB"‘Oô¯ÆÇ³X=}´w€#©Túœœ2\B'¥(*ª1L¡À@¯øø`\EsPHÑ6£Ñœ•UŒ‹*®\)©®V …Ü””¨””¨áÃ%½{‡ÀÞÀYþøãúÛoÿ¢PèÞzkü³Ï¥Ñ`ä^ÐCÙ%oÚ³GºlÙÞ úñÅ3ði‡:sF¶fͯùùUÓ¦¥,[6®' éÀ-±iÓñõëŸ2%ùã§Â§v»ärEIImIImii]IIÎU”—7ày°Ùl†Xìá,‰„¡¡>AA‚à`ïoïgÏʦOÿfíÚÇgÏ~À©›âÞÔjýîÝ—¾ýöï;wêGŠõÕ‡ï¿?ÖÙAy&“ÉRVVogÆcLݺUa0˜ètjh¨W WfÄÆÂWk@·0›-ùùUx"ЦI)äxÒl6›AÎE@!EétÆŒŒÂÓ§eRi®® õ:4&%%:99 úpœ.7·råÊ4©´ðùçXºtŒ@ÀqvD8“½ò¡3gdóæý7&&à»ïf íô.nÄb!öï¿üᇇU*ýË/zíµGà5Îe6[V¯þuûö³+WNx啇œŽ ÁãNàk%äLžÅŵøŠ BˆÏgEGFDøá,~$ìà‡û¦MÇ7l8ºgÏü!Cb칞Ïd²9rõ‡Î\¾\xß}Qo¼‘úÐC½(”ž^ïkoF£¹  g2peF~¾Üb! ZTTW g2ââDP~ hWuµòÖ­ r '™¬²¼¼Áh4S(±ØW,¾[E?mCC}èt¸¼ÞQõõê³gó¤ÒÂŒŒÂœœ2³™ˆ‹ᢊ””(‘®Õà Óþs⫯þŠŒôÿðÃ'á;È®y „Peeãœ9[‹Šj7o~väÈxû½‘Q(t›6ýõý÷§ƒƒ½W­š0n\¢³#ÐCiµ†W_Ýyòäͯ¾š9aBg‡ãLJ¥îöíª‚‚êüüª‚‚ª‚‚ê’’:<'BH$„‡ûáë&b±/~ìÝ•‹&AÌŸÿã… ·ÿøcq³Û;´ZÌ"Ð 7o–ýõÉ2ÃÃ}_yå¡§Ÿ WµÉ:“§Ê()©#gøÈ¿%’ ±ØKôdz½)7·‚è ú„o àr™±±"ÜcàÛ"#ýávãN()©ÅE…Åŵ mÀ1ž¯bÀq@€—³üÅBüö[ÖÇ­®V.Zôèܹ# ̾y „Á`Z¾|_ZÚå… Sß|óQ¸ß «¨høøã£ii—û÷óÍG~¸·³#гTT4ÌœùmMê¿ÿ;`@š…RäåÉÉÅíÛUxO:î ûá,…Xìg§úHµZ?aÂ|>kÿþט̻o±}û¹ßÏÞ»w¾=Þ±'(*ªÙ¼ùÄîÝ—‚ƒ½_|qäÌ™CÙl†³ƒê¡ ]QQ5¾()“Ufg—â†&p"#ý%Qbb8ž$#0® à±ÈšÅÜÜJ<èSYY½Éd¡R)áá¾8‰Ë%ÜûßEE5Riá¥KùùU -11,99jðà˜ää(˜I ×tòä­?<œ›[1}úE‹‰ÎŽb÷¼²8{Ò¤¤?žJî òòä_|ñçÁƒYýú…-Zôè#ô»Ï8@aaõŒß±sçK11ÎǾÊËd²Ê›7+d²Ê[·*òòä!äçlj Œ‰ Œ‰ ˆ‰ Œ ‹ý|sSaaõرŸOžœ´nݽ޴lÙÞ}û2(Ê?ÿ¬†16»"?¿jÓ¦¿È‹ýV¬?vl?8ÅrœÆÀ—/oÞ,¯©Q!„„B.YÔ§OˆŸL€ûÑh ùùò¦žäÅŵEE5¸x‘ÏgõîBô$‘EEù“9{Ð9&“åÆ2©´@*-ÌÈ(¨ªRòù¬#SR¢RR¢ Š€òM\ÙÙ³y}tøêÕÒgžòÆ©¡¡>ÎŽ—㈼vòä­7ÞØ%p6o~611Ü1oêîÜ©ÿòËô={¤QQ¯¾úÐO ‚¹°ØÏ͛ӧ-ûÿðÃlÏ(@¥Òß¼Y~ãFyNNÙ­[•2Y…B¡C…†úÄʼnâãƒbc%’ ‰Dä"x¦§ß˜=û‡eËÆíß¹  Úl¶Ðé´+ÆÏŸÿ ³Cs{¥¥u7¦ïÛ—!‘-Y2fôè¾½p58“Ç•ÊÍ­Ä“Ä"„D"¾ O•‘ÆåÂÕ7\.^ÄCÑ“Ràš*Hô„³’.ò™ëêêÔçÎÙ˜¬"99*%%:"ÂÏÙÚ——'_·îȱc×ï»/òí·'Þw_”³#ÀE9.oª«S/Z´ûĉœ7ÞH]¸p4\·Ff/BB¼_}õa”€=œ=›7{ö#GÆýõ,Ï8µ´´.'§üƲ›7+nÜ(+.®%"0Ð+!!¬W¯à¦\…ˆÏwÝrÏ ~:t(Ël¶˜L„…B‰:qb™³ãò ›7ŸÜ¹ó|D„?Ü âúäòF\‘]Š˜ÒéŒÈ*“‘˜†+3`0F¥Òçä”á <)EQQÁ`BxõêÜ4ÐSDâí'.‚ ™Lž‘Qhs²ŠþýÅ0ÔnäæÍòÿ:|øJLLàŠãÇŒéçìˆpiÍ[`ûöe¼õVZR’ø«¯f{;øÝ]Î^ìÞ})$Äçµ× { ;:ukΜm'öÿôÓ§Ý÷Ò­R©»r¥äò墬¬âÌÌâº:5B("Â/!!,!!ÿï.#ÃZ,ÄGÙ¼ù…BX,ÿúÕ™3+<~/G*/oøúë“;vœŠò_´èÑ úCí…[0™,eeõøžn<ÆÔ­[ƒ‰N§††úà‹¤ønî^½‚a̺Îl¶äçWá‰(š&¥ãI³Y,z||pÓ@O"<èR؃ÑhÎÊ*ÎÈ(”J ¯^-©ªR œÁƒ£q]” àŽÒÓolÚt<#£pРˆeËÆ .qvD¸'ä-BW¯–¾òÊŽúzõêÕ“¦MKq|../Oþùçþö[–Xì÷üó<óÌW¾K€[8qâæÜ¹Û&NðÙgn–´ "/O~ùrÑ?ÿgfååÉ-"$Ä;))")éÿٻﰦîîà7,Y¢ìFa‡@H7Ö…ÜuüÕ׺©£ÚÚ¡VÛêûv¸­Ú:.Àª¨€‚Œ„v€„ aVȺ¿?nËëkäB8Ÿ§OŸˆÉ÷¢^nîùžs,ÝÝ-ÝÜÌut4ðó Ýÿú×åøøB™ìå‹1UUå-[vîü—ÀXiiýñãïÞÍôô´Þ·o–·· Þw&K¹Ü,“Uf””ðe2TUU™D2ÄúJaù {{c%%ÈNЗ††öÂÂÚÞFON]MM«X,EËO`UXÓ'(¤PAwj*—Éä1™Ü¼¼ê®.‘¹¹®¯¯-ƒaC§“ì쌆ÖŃ¢èãÇùXÆ" ÀeÓ¦I \ð¶ðÉ[ ÒÙÙsøpô¥KÏ'Mrüþû…PxñOÅÅü“'coßÎPWWY¾|ÌÚµã`D'€÷óìYÑÊ•ççÍ£ýøã¢!q#O*•Ö&'—¦¤”2™ÜÆÆ K+*Õ‚Jµê]ÚÛ…óæýšŸ_ýº'ØØ&&~.φÂÂÚC‡¢ž<)pÙ³g¦““)Þòb&•QQÑŒ¢ÿ“É P,ÈdKK½þª³ilì(/o¤Ñ¬ûe50mm]a€2ñ==’¢¢ÚÞFOXÓ'¬BCCÍÞÞ›EA&›`MŸ Bª«[’’J°ºŠÒÒz™ us#Òé$ƒÄ`Œáã?C˜L†ÆÆüúë&“ëëk»mÛT¨±à]á–·À¤§—ïØq½ªªeÇŽ©7NwRäL †…1OžŒ­¯Lžì¼yód˜Øà<~œ¿fÍ…%K¼¿û.h÷Æ)*ª‹‹+LN.IMå ÝFF#½½m}|l||lLì:ÅâíØq£¬¬Q*•½ò Ož|æäd&稆ÌÌŠƒ#SR¸³f¹ïÞ=ÃÆÆïˆ@¿„ee ØY§ŽÍ®ÄÆëè¨[[býmÈd Åâ½{Ê=yR°bŹiÓܾø"ÐÚÚ _ÃÑP(¾p!á—_ÿüó²€—_ËOüÝè©®¢¢©ººE"‘KK=KË¿ª(°\Ü—Esrª°©ÚL&—ÏŒ¡‚Mª`0l¨TË‘#ÕñŽð¡ÚÛ…aaÌ ËË'MrúôÓÉPcÀûÁ9o HW—èðáèK—'Lpüþû…ffPxñ b±ôÎŒ“'c‹Šê(‹5küaª$€·‘˜ÈY±âü‚^ß<8“=‰‰œ¸¸ÂØØ‚êêíqã|}m}|l~ÀƒD"»t)ñðáh±X&•J_ü-UUåuëÆï߈WlÊ¢QQYGŽüYSÓºr¥ßÖ­zzZxD[[–ÆÀîáÔ46v 2j”foÃÁÁÄÉÉÌÀ@ûmþ‹Å³·7^·nü¼yž¯¼~¼“Á’·@þÞrøÃ÷õõµ¿ývþäÉNxG4x±X¼Ó§ã>Ì54¹r¥ßÒ¥¾C½Í7€~WVÖøf}îܪÁs¶µµëþ}öÝ»YÏŸ«©©8ϘA7Îaôèá~o%**k×®ð®®l *æîÝ-t:ô‡”@øÓO1çÏ?#õ¾újN¿ôiC Ÿß†d°Ù•Xƒ)¡PŒ ˆ±±v/Ëd¸¹54Ô&L8Âáð_|¹²²’––ZHÈôU«Æ¶<1lPŽÎ>|8º²²Eÿç¹——udäVìqGGO~~5VB ¥(+k‰$‚Œ©îèhúw£'2Ù†f㮢¢)5•‹¥+JJø‚¸ºÂ° \KKgxxÚ•+I%%õ4šÕºuãgÌp‡ËúË Ê[`øü¶C‡¢#"Ò\œoa¡‡wDƒ×pþ|ÂÍ›¬înñŒ”Õ«ÇBË<˜ššÖÀÀŸlm®^]?nd (úüyñÅ‹‰ç+)&Ntš3Ç# ÀESªÿ«­­ëÛo£®_OUR"H¥2å?ö=thÞq #uumÇ?¼v-…Jµüæ›yžžVxGpÓÓ#ÁJ1ŠŠêŠŠj‹Šê*+›QSS±·7*,¬{Õd‚’B$êíÛ7+0*ÿ˜ÁÀùöÛÈÜÜ%%+³x‘¶öˆåË}KJêKK*+›$‚ ÆÆ£ìì mlŒlmììŒll -,ô i0îd247÷†U¨««þ¨°ñð°ÒÖ†ÝÖ(&E“’J¯^MþóO¶²²ÒìÙÔ?×ô»A—·ÀÄÄä~ùåÖÖέ[§®Yã-8û I>̽r%9!cmm°l™ÏÒ¥>ººÐ`†/ {îÜ_””·ooƽiI{»0"‚uñbbII=…b±j•ßÌ™î¸G5˜=|˜»kWXkk—X,ÕÓÓÊÎþnNÉYvvåwÒÒxóçÓ¾øb¶¡!TµAŽŽ§®°°6-wãóuOSR"Èd•jñÍ7s½¼ ^ ü“Éýæ›ÈŒŒr%%%™ìŸy¯¿89™ÚÛÛÚÙÙÛØÚÚÁíïÁC(cY &“—™YÞÑÑ£¯¯=fŒ–®pv6‡}Ö(¶ÊÊæ?þHŠˆHãóÛüýÉË—ûNê:bÜ´`@ Ò¼‚ B¡øôé¸'b ´÷í œ5Ë’’úÐPæ•+ÉB¡(0º~ýWWs¼ƒ oR©lÅŠsùù5‘‘[ñ-[ììì¹t)ñĉخ.Q` uÕª±4Ú«w!={Vα r==²'OêY¬EV®´$‘`;Â@Y¿~ý+¿.“¡aaÌ£Gÿ‰¤ûöÍZ²Ä 7555¯û­§OKBBn÷ý)JY™€¢ÈÌ™®›6}ËYß@UW·ž<™S ¤DÀÆ¢ôáþýîîò ¼ææÎçÏ‹±ºŠüüj©µ·7f0Hؼ ++}¼ 8©T–˜X|íZʃ9#F¨Ì™ã¹l™•j‰w\(¸Á›·À´¶v8{öl¼““Ùs|}mñŽh°ëèè¹s'ãÒ¥Äüü Åbùrß  /uuU¼ã '_}÷Ò¥Ä[·6{xàv%e,NŠ“ÉÐ'.YâÓ÷m;¸#üJjj¦£FˆD5mmñŽEaõ}%ÜÙÙóã~û홇‡Õ‘#ÁNN¦r à.>>þu¿uççöí"±øÕûå Ïg IDAT‚Š A*Ee2”@@,-G­_O%‘FT `ÐËËk¼x1»¶¶EQ%%@xU“±¿È/¿,Ÿ?Ÿ&ÏÁKPåpøX]‹Å+/oRUU¦R- ƒD¥ZBÃGaamDDÚÍ›é|~•j¹l™Ïœ9žP€| ö¼&?¿æë¯ï&&Ïë±wï,"Qïˆ;E8ü‘“k`0réRŸà`:ì…wåJòž=ágÏ®š1ƒ‚K=¿ÿžxêTœD"]·nÂúõãߦ%@ ]¸p¡"ZÄbéµk)+VŒÔN¿ [´hÑÛ\ óx {÷ÞLLäÌŸOûæ›y0C~˜ˆwvv622úçomÜøGdd&öwGYYI]]µ§G,‘È””ff£œÌ°!Þ&ööư`Äb)—ÛÀfW²ÙUùù5¹¹UííBATU•¥R´·m”Š áÓOv횎k°Ã‘X,ÍÌ,ǦjggWÔ×·ëèhx{Û`u®®D˜ÈÀ°R^ÞÁº{7³¤¤žD2\ºÔ{Þ<š™ìB@®†FÞóøqþ—_Þ®®nùøã1[·À‡·QW×váBÂõë©Í;¾¶‹1fÍr×ЀK.P@å üºaÃÄÝ»gÈÿè(І…±¾û.º³S´fÿÆGzÛÛ»·ò÷öy Ad2ôêÕäÇïik8xpþG¹txw}ä-&L8Âáð ‚±ñ(3GGS2ÙØÁÁÄÞÞ.³Á[’HdÅÅü¼¼êüüêììªÞ4‚ gάÀ7¼aB èNMå2™<&“›—WÝÕ%"u}|l :dggó¥nÚÛ…wïf†‡³ÒÓËtuµæÎõ ö¢P wøJy Ad2ôÞ½ìï¾»W]ݲh#$dº‘d/ÞL&CŸ?/gݻǖÉdS§ºyMšä×a 0šš:~¤P,.\ø?%%yïÍÏʪؿÿVVVEp0}ïÞYïúÓò@þÞ)oilìøúë»7o¦ÍžM=xp -Pl}ä-ÂÃYX-ì¿ý¨¦¦5))?!!ÇÄ„¸wïL¼ÃQXÕÕ-II%X]Eii½L†º¹±©Ú ÉØxÞp KŸ=ãDEeÞ¿ŸÓÕ%ò÷'/X@›1ƒÛÀ×Ë[`„Bñ$ýúëc±X¶iÓ¤+üttÞ܃ "tGFf…‡³X,ž©éèùóiË–ùX[à€"•Ê-:Åç îßß!çv«UU-ûöÝ|ô(oÒ$§¯¾škg÷Š{|oy ï‘·À0™ÜÐúzÁþý³—-ó^Šª¼¤¾¾>??„ x¢PPÍɩ¦j3™\>_0b„ 6©‚Á°¡R-ߦ¡%@!I¥²çÏ‹##³þü“ÝÖÖíáa9{¶Çœ9THa0H ɼ¦³³çÂ…„S§â¤RÙêÕcׯŸ §§…wPC‡SžšÚÜÜI£YÓçÍóÔÒ‚ÉB0$;öðĉ'÷îmsr2“ÛAQ½|9ùðᨑ#5öïœ=›úÞ7p!oäï½ó‚ôôH~ýõñÏ??¦Ñ¬[D"ö{xw·òy‹þÒÓ#a2¹L&—ÉäeeU´· GÖô÷'cuNNfªªÊxÇÀX,/ŒŠÊЉÉkozyYÓgÌ ÀME›!œ·Àttô\¼˜pæL|OdåJ¿ &BÍþÛ Å÷îe‡†2“’JFÒœ;×cþ|fw\Þ“É :±o_à'ŸLÛAËÊCBBSS¹ëÖûì³éXC y ’·À¤§—‡„ܨ­m=p`Î’%>ý oäò¢µµ+!ƒÕUÔˆÅR++ý¿s6VVúxÀ™T*c±x÷î±££³ø|““éìÙ³gSa ƒÖÏ[`Äbih(ó?ÿ‰ihhŸ3ÇcÇŽ ÷Ñ;©¬l¾y3íöíŒâb¾µµÁüù´ùói66pî€Á®½]8eÊööÆ—/¯“O¿±Xúý÷÷Ïžwq1?vl±““釯 y ž·@D,–þôÓ£Ÿ~4q¢Ó?.24„¹kŠò@þ oñ®ÚÓÒʘLnZÍ®‹¥66†t:ÉÛÛ†N'ÙÚ¿_"Iž=ãÝóìÙÞ h·ogŒ{x„£ÇŽ=(/oÂ;:¯õùç7…BñO?-•OÒ¢¢¢iÞ¼_Ξ߼yÊÝ»[ú%iÑ¿JJJ°·âŸúPQQ±zõê·yæ‡ÃŽÕûËo¿ý–@ 9räCÖì—E^Ò÷»qãÆ Â«deeõc ¡¤¤¤ìwªªÊ!!ÓbbBjjZýýGD¤áŒà¼Ô_à¼d2´°°öò夭[¯sÈÝýË ~g±x4šõéÓ+³³¿ILüüßÿ^²x±7$-æÚÏŸ¶hÑ)‡½kÖ\hhhß½{FZÚøøÝ;wNƒ¤C‚ Þô' µuëÆ¯XáÊ<{6þÊ•ä©S]7l˜À`ØàÚagg´sç´;§ÕED¤]¾œôïÇÐhÖÔùóiÐì•ÈȬ›7Ó.^\£¯/‰‘‘™»v…YXè?x°Cžƒ4ÞÉèÑ£wïÞý®¯ºsçÎܹs{_Ëår Fccãø×±°Ç(ŠÞ¸qÃÒÒ244tÏž=ï·à+ùðo¡ïwrΜ9µµµ‚ðx¼1cÆ`Ñ׎8M££·ýøãƒmÛ®=z”wôhðèÑšx8/a_„óx?ÍÍÏŸ3™<6»27·º»[da¡çímó¯MŠ*TTd;&àÃ56vÄÄäÞ¿ÏNH(–Éd¾¾vÌ6ÍÕÄFm0ô(HŸ¨Wb2¹'NÄ>~œïèhºzõØà`úˆ •§‘‘HûvÆ£GyÊÊJÓ§»Í™ã9fŒíö1ðá‚nÿïÆŽµ?qâã>V[[WHHØýûìíÛ§nÝ:µßo DŸ¨’’{{{E{ôñäY³f…‡‡khh¼ôÚ~Œç•Çb³ÙT*5&&&  ¨¨ˆL&¿Ç‚¯\d@¿… èBqq±Ý@,Þ/}¢^[°sç uuÕŸ~Z ûf†ºèç%8/õ úDaPåpø,Éä²X¼òò&UUe*Õ’B±`0H ÉØî?þK&Csrª?ÎÍÏή1Bu‡iÓÜ\`+ Cš"oL`0l~ÿ}mTÔV[[ý{#&Nyé[hmm]µj•‘H  …oüzß ‰DràÀKKKCCÃ+V´¶¶öñ'õÊ8±¥îÞ½ëàà`dd´eË–žžž×½±/‰‰‰±³³ÓÕÕýî»ïz£zi©×­/“&9=y²ËÑÑ4(èÄñã¥R.aù€óœ—†Äyi¨ Å œcÇ,ZtÊÉéó‰:ÝÖÖ½|¹ï;›óóݽ»åÛoçR!iÀ¨¨¬íÛ¯{x˜>ýxhh*…bqñâšÜÜoûíÿ‚ƒé´`ÈC‡‡²²Æ/¾¸E&ï±³Û½wo8‡S‡wDCUCCû¥K‰AA¿‰;lmw}òÉï÷îeww‹ðŽ †—¸¸3³íOžäôΜ‰·´Ü¹hÑ©ºº¶; ‚ ¡¡¡}?gÅŠ+W®¬««366NMMEQôÌ™3FFF·nݪ©©¹wï‘HD¤¸¸»¼ùç@ ¦¦öÿ÷UUUW®\A¤¾¾EÑ .\¾|ù•/Á=ztÁ‚l6ÛÓÓsÏž=XÌK–,çÏŸGdáÂ…àÌ™3‚466vttŒ1âôéÓµµµ¿ýö›ŠŠJGGÇ‹ÇBQT&“‘H¤3gΠ(ºoß>—ß   –––sçÎ!ÒÔÔôôéS}}}±XŒ¢è•+W\\\d2Y‹¼ô-,[¶lòäÉ¥¥¥l6ÛÕÕõ«¯¾zã·Ð»Â?üàââÂf³srr¼½½CBB^üsyé@¯Œ{ÎÔ©S9NJJŠÀ+ߨ—þbÌš5K ܼyóŨ^Zêuë÷ »—úƧ½Ÿ°0¦ÝîéÓóx t0Ðâââø|~ßÏóœ—ú÷¼ÄçóãââÞø4…ÑÐЙ¹ÿ­>:fa±ÃÔtÛøñG>û,4,ŒYXX+‘Hñ0èH¥²ÔÔÒƒ£>ú蘹ùv;»Ýë×_º|9©¼¼ïÐýo¸ä-0==â°0æ¤IGMM·}ôѱ°0¦H$Á;¨¡ª­­+,Œ¹bÅ9KËVV!+Vœ c ÝxÇН£CH§ýÉ'—ô(]]=ÿú×DâŽÿü'F*• è±Þ&oÑÒÒB$)Jï­—K—þû&üþûï}ßìéé)((èèèJ¥OŸ>ÅžŒ¢è‚ š››_ùŒ££cmm-öøÑ£GT*‹9##EQ‘HôÒãâââææfUUÕü±¥¥E&“µ··K¥Ò…¢hJJŠŠŠJcc#Š¢ééé‚äääô¾!Ø­«Þ%‰‰‰É“'OP1cÆ‘#Gú^äÅoA$)++çææb¿¼uë–Ý¿…Þnݺ…½6??¿÷1æ¥÷ê•qbÏa³ÙØsBCC±^ùƾAøøxE¥Ré‹Q½´ÔëÖïÛ€æ-P-)áü`o¿;"‚5pGçmòp^‚óRÿž—>o!•ʲ³+Î{º~ý%*õKSÓmVV!³gÿtð`TLLî€î i--wïfîÜyÃËëkSÓmÊÛ¶]‹ŒÌlkƒ{P(²á5ïAMM%8˜¾`ד'ùçÎ=ÛºõÚ±c?þØwÑ"oyL4U$::ÁÁôà`z[[WLL^ttvHHè®]aãÆ9Ìšå>}:E[{Þ1€b:q"¶­­û«¯æÜ!Š‹ù«WÿÖÑ!ŒˆØäí=(Úô=zýúõ_ýõ£G°¯p¹\*•Úû …Ò÷ jjjgݺuØ;::Äb±®®n/,++355íýå¨Qu¨9r$‚ ªªª/=FDWW7..î?ÿùÏ<==÷îÝ;}úô—ŽuãÆ ‰Db``лrhh¨««+öØÌÌìÅ•••çÏŸëÖ- …òøñcl÷ñÁðù|©Tjkk‹ýÒÎήªªêßB¯òòr{{{챓““““SïÕëâD¤wGGG,€×½±/ÂÞ%¥ÿéNöÏ¥^÷EÙÚEFn=pàÎæÍWY,Þ×_σAkŠÎKp^êc©×}q¸„©©¥lv%“ÉËÌ,ïèèÑÓÓòó³ß´i2…Bts#ÂèDÀ+‰ÅÒôô²§O‹ž=+b³«””^^ÖË—ûN˜àèæFTRzmF€ÂPäù¯£¤Dp ÛøäÉ®qãÈÿùÏ#í« þHL,FwJùÀ5J38˜þûïk™Ì/¾øb¶@н}ûuí«O?½ÝÑ\ ?UT4:»sç4“êï|ÿ~ÎÌ™ÿÖÓÓ~ð`ç IZ RYYù믿N™2eçÎØWÌÍͳ³³{Ÿ——×÷ ÝÝÝ .üì³Ï222Nž<‰}ñÁƒÓ¦Mëû…ØhE[ZZRRRÞmww·L& onn^³fM```ssó‹Ç’J¥¡¡¡ÇoÿÛŽ;°¢ì /ÝC$88øöíÛaaacǎŚϼqŒ±±±²²2—ËÅ~YZZjnnþÆo¡—™™YYYö8++ëСC}?ÿŸqb°ÝÇ‚p8ì®ßÛ¼±¯œ ðÏ¥^÷E|©««=|îܪ;w2fÏþ©¢¢ ïˆ@?ƒóœ—úXêu_**šÂÃY»v…M˜pÔÅeߪU¿EEe[Yé:´ 9ynîÁ3gV®];ŽÁ°¤àE(Š²Ù•'N<™3çg[Û]AA'ââ ÇŒ±¿ysSié÷7o~ºuk€»»$-.äYÜ18õôˆ##3.|ØÈÈèÎ;µµµ÷ïßcù––pÿþýÎÎÎ]»v!’‘‘±|ùòêêjì(/½¤½½ûú–-[‚‚‚ÊÊʲ³³½½½?ýôS,æÞ{[ÿ|ÜÝÝ­®®ÑÐÐpöìYuuõîî¬übš´´4äï¦(¯\\"‘_¼xñ‹¼ô-,]ºtòäÉ\.7''ÇÅÅåË/¿|ã·Ðûn8p€B¡ääääääøùù­[·îÅ?š—ú±¼2Nì9'N,..f2™öööX¯|cÏ;×ÚÚÚwT/-õºõû6Ð}¢^T]Ý2cÆq{ûÝQQYò9"øpoìç%ÎKý}^º}¢D"Ijj鯿>^±âÖŠDúlá“?þxÿÙ³"häè[]]kDkûöëtúצ¦Ûœœ>_¿þÒÕ«É••pw€a òÿ•‘Q¾cÇ [Û]VV!ÿú× EÝÎ[áuuõÄÄänÞ|ÅÁa¯©é6Ÿo÷ï¿õìY‘X 3Öà}ÄÄäš™mOM-ˆÅE"ÉÎ7ˆÄ¿ýöl ÖïÃó¿üò‹»»»H$BQôöíÛ¦¦¦ÍÍÍ"‘è›o¾!‘HÚÚÚ¾¾¾×®]ëûþ Š¢Ç×ÓÓ³°°8yòä’%Ktuug̘Ñ{”ÞgŠÅâ±cÇjkkc_«W¯ÖÕÕÕ××_¿~}gg'ú¦›k(І††ÚÚÚª©©9::Þ½{W$½x¬O>ùdêÔ©/~2™ÌÖÖv÷îÝ},¾aà @ðÆE^úš››?þøc}}}SSÓíÛ·www¿ñ[è}7„BaHHˆ™™Ù¨Q£–,YÒÒò?þyðŸqbÏ9þ¼•••ÁæÍ›±Þã}åR¯[¿oòÌ[ (ÚÓ# 53Û¾ÿ-˜¯6$¼1oç%ì1œ—úñ¼4´ò--11¹FÍžý“­í.SÓmnnûׯ¿tîÜÓìì øÄè[SSGTTÖÞ½áþþ‡±dgpðÉŸ~z”‘Q>p;´C …ÎHÿK Þº•šš]I$ê.ZĦ[Zêã×Ð&•ÊÒÓË¢¢²ïßg×Ô´êéiMšäà2q¢ŒÁ€·$K'N<êìlvöìª~_¼±±cõêߊ‹ëÎ[íïOî÷õûF BCC.\ø!‹”””ØÛÛ+ö…;}ûÊÊÊ®^½Šw oðRœýøGóÊ¥Þoý°°°E‹Éù/Lx8k÷îp*Õòôé•FF#åyhð®âã㌌>d8/ Câ¼T__ŸŸŸ?a„j  (ÊáðY,“Ée³«JKëQuu%Òé$ƒÄ`Œªƒ%@1ÔÕµ%$pX,^B§¼¼iäHu[ƒäïOvq1WVŽ­ì}€ñ€/ÓÑQ_µÊoÕ*¿ššÖÛ·Ó¯^M9vì!…bää5z´&ÞIÊÊJ † ƒaóÕWsÒÓË>Ì}ð 7""mäHõ‰§Nu8ÑQWW ï0`P»t)±ªªåÚµOú}å’’ú?>+‘ÈîÜÙâèhúæ¹ …555.\¸~ý:Þ±ôe¨Ä‰—à`º““ÙÚµ§M;vîÜ*ÍïˆxCåßûP‰sp‰$YY,ÉäegWÔ×·ëè¨{{Ûº36V° з––N‹—šÊMMå²Ù•(ЏºšÏœéîçgïím£© Cn¯y‹×23½iÓä &>{Æ c:õã÷gΤΛçáëkyà÷Ó›Àøâ‹ÙNÝǹälÞ|UI‰àéi5eŠóäÉÎÎÎÃhf¼¥––ÎcÇ®[7¾ßKóòª—,9­¯¯}ùòz"Q·ý%55uÞ¼y7n´ûp1¯ŒSGGç“Oú'ßöÊ¥úq}9pu5¿û¦MWæÍûe÷î›6MÆ;"Þœ—úXjh—^ÒÜÜùüy1“Éc±x5b±ÔÒRŸÁ …„L§ÓIvvFðYзššÖ””R&“›šÊåpøJJgg3oo›Í›§øúÚêèhà `h€>QoK FGgݾžœ\j` è1w®‡§§@À;´!¯¾¾=.® .® >¾H è65=y²ÓäÉÎþþdȽ櫯îDD¤%%í×ÑQïÇe™LîŠç==­NŸ^ãGˆ~éÀ;Á¥OT/EOžŒýî»{sçz~ÿýB¸à„ú¥Oï¯>Q/6€b±xååMªªÊTª%ƒaÃ`("4€ôM,–ff–cµY™™å½= èt’›QC.uï ê-Þ–ŽŽúÒ¥>K—ú´µuÅÄäED¤Ížý³®®æŒ”  /: Œ÷fd4rÑ"Æ¢E AŠŠê?Î{öŒ³nÝEE\\Ìœ\Ü܈ð†­ššÖß¾gÏÌþMZDGgoÚtyáBÆ‘#A°wy"›6Mvt4ûôÓ+³gÿtþüjkk¼ƒ #B¡KT0™¼¬¬ŠöváèÑšt:iùr_:äêJ„|* o==’ì슴´2¬<«¥¥S]]ÕÓÓjÅ ?Ír€õﯶ¶õÞ=vTT‹Å37×6Í-8Ø‹B±À;.QW×[WøìYQ{»ÐÆÆ0 Àeòd'oo[UUe¼£¹Ú·ï惹ÉÉûÔÔúmÃÁµk)»w‡òÉ„}ûfឆz øÖ[ô*)©_³æBSSÇéÓ+ÇŽµÇ7ð"¨·ò7ÐõUU-ÉÉ%lv‹ÅËϯ–JQ{{cl74…b  oÔØØ‘ž^ÆdrY¬26»R$’èêjyyYÓhÖ>>6Tªe?~ZÈ[ô§.**ëÖ­ ¯L6 tŸ?ŸF"â—‚‹¥L&/.® 6¶ °°VKk„ŸŸýøñ':ÂÎDÀpPYÙä-€üõ{ÞB&Css«°­ÐL&—Ϩ©©¸»[`  ÜÝ-ŒFö×± éÅPlvåK§è#P·è72š”TrûvÆŸ²ÛÛ»}|lçÌñ˜5Ë]WW ïÐGMMk||áÓ§EÏžqÚÚº¬¬ôÇw˜0ÁÑÏÏ~äÈþìƒÇž=áññE {û«ÚìäÉØC‡¢¿ùfîš5ãúeÁy ƒ'o¼0îbɟÇ@ié`y ý’·ºSS¹L&ÉäÔttôèéiùùÙÓé$ƒäädg@ßZZ:33+23+²²Ê32*ZZ:GŽT÷ð°¢Ó­==­i4ëþm] ¯y‹þ'Ibc îÜɈ‰É‹¥ÞÞ6}ä:uª«••>Þ¡)”òò¦Gò=Êc2¹==2Ù$ ÀeÜ8²·· T&Vlqðàü?Ó/ :}êTì±c‹±©Bƒä-€ü ª¼&**kÛ¶ë^^ÖçέÒÑÑÀ;œáò@þÞ;oQ^Þ„Ôf2y¥¥õ2êæF¤ÓI ‘Á°Ï¡€¾‰D’œœê¬¬òÌÌŠŒŒò²²FALLFyxXz{Ûúû“Édcè#?È[  ÎΞ¸¸Â‡s?Îokërr2ûè#×iÓ\aÄtÿÂfÊ={ÆIHàääT©««zyYGö÷'øÀP·woDllAbâçý²;òàÁ¨3gâùeÙܹž¾Z?"ëׯ§ÑhxÒÚÛÅ*** þƒEÑ–±žÞ·˜žž~öìÙÁv%œ›[½jÕy55•Ë—×ÙÚÂs<ÅÇÇ›™™ikkãF:::jjjÞ&oñÏÎ-êêªXEƒaC¥ZB1: (Šr¹ XQEffy^^µX,ÕÖA¡XxxXyzZyxXš˜@(Î o!X_ÑGò¢¢²9œ:69÷Q IDAT]]­É“\&MrÒÒwt ¥´´þéÓ¢øøÂ¤¤’®.™lâçg?v¬½¯¯íèÑšxG寧ªÅÏïзßÎ_±¢Š-Œ:{6þ—_–Ï™ãñá«õ/HçÊ#F45]FŒ°nm}ØÝ](Ÿãª©™ª©Yvt¤Êçp½TUM ‰Åüîî"¡°H*í”sýe^ óùm«VýV^ÞtîÜj??;¼Ã¾âããñ S¯Ë[tvödeU¦¥ñÒÓËÒÒÊZ[»tt4ètkÍËUhjá\2` ÕÖ¶feUfeUdeUdgW Ý**Jd²‰§§•§§•jioE€ÁòòÖÛÝ(9¹DEEÙߟà2uª+ŒDë_"‘„Å*KH(JL,ÎήDQÔÅÅÜÏÏnÌ{[mmH†€Ï?xò¤Š-ŽxüøÃ~X¸d‰O¿Äz%$pÂÃYævw‹¦O§yM˜à(·îáü‘täȽüüCò9\/™ MKãEEeß½›ÑØØA¡XyÍží×3ý¢«K´yó•Çó¿ÿ~á jé3¯!=½<#£ŒÅ*+,¬•Je66†^^Ö^^$:doo¬¤4äÿ€ÒÚÚ…e)²²*³³+ø|@°±1tw· P,ÜÝ-Ü܈ï f·ÀMssç“'ùçÇÆtw‹\]‰ÎsæxÚÙAO€~†5’b2¹L&/%¥T,–ZYéûû“ýýÉãÆ‘G‚: À`„[|óͼ•+ý>p)l÷‘#Aý5$ ÒÐÐÆ e–”Ô;9™.YâH56Ö‘sׯ§8p‡Ã9"çãö’JeII%áá¬rº»ÅžžVÁÁô9s< EÉBQôøñ‡ÇÇüßÿùýõ\¸5 À0ÑÜÜ™ž^†MÕÎϯéìüïTm …èâbõú€×„ùùÕÙÙ•XE6¦ÂÚÚËRP( ®ÐCä-ð×ÖÖõäIÁǹqq"77âĉŽ':zzZ«¨@^?ëììÉÈ(¤Dpq1÷÷'3$[ø<Žg¥¤|1b„ʇ¬ƒ%-Ž[´x±wÅ6œ‰ÅÒr®\INJ*ÑÐP;×sùr_Ç)……±öì çr¿Ç+€^B¡8!‘öàAŽ’aÜ8‡  ¯iÓÜäVz¢"#3·m»>fŒÝ©S+à*…„µÆÆT°X¼òò&%%‚«+LÕ¼YMMk^^unnu^^u^^uEE3Š¢D¢®»»¥»»…Btw·€š€¡ òƒˆH$yþ¼äÉ“üøøB.·AGGÃߟ^œPœ”TÜØØ¡©©æåEòõµ3ÆŽJµ„û,uvöÐh_úéäO?ü!ëüþûóÏ?¿ùõ×s×®×_± [ùù5ׯ§FEe64tŒk¿|¹ïÔ©®˜Uúp·n¥oß~½¼üG|ÃxQ[[WLL^ttvll–Öˆ©S]©':ÁnŒ÷“”T²nÝ%ÉàÒ¥µ0#EÐÒÒ™–öWQEAAMGG®®–——5ƒA¢ÓIPTx¥înQNN›]ÅfWr8üÒÒúÎÎ 5WWs¬–‚B±°±1„[…y‹Aª±±#9¹äÑ£¼Çó[[»zû﨣»íúŠ¢……µÏŸ—¤¤”¦¦r›š:44Ôh4k,‡ááa©¦†óm)Àpsñb¡CÑéé>d‡TTTÖ¿þuyƉûöÍêÇØ†›ÖÖ®ˆˆ´ˆˆ46»ÒÂBoáBúüù4Éï¸þ™µqãÕÕÇñäêêÚ¢£³£¢²X,ž‰É¨™3ÝÝét’Œa—3¯aéÒ3áÚµO¬­ ððΠ¨ð;23˱,EQQ—[/‘È GR©–X–‚L6!ua˜6@QAÞb°Ã®q8Ïžq’“Kñð°š:ÕÅߟìæF„OþÏoc2y &“ÇáÔ)++¹¸˜Óé$ƒ4~¼ƒŽŽÞœL†úûçïoäHð{/Âdr/>½d‰÷¡C ú1¶áEÑÄÄâ+W’cbr ¬YîÁÁt??ûÁ6fàÏ?Ùk×^¬¨86˜«Š‹ù‘‘™·ogp¹ z³g{,Yâmc3Xr?CBkk×Ê•ç9þ￯a0lððf­­],ïuEÎÎæÚÚPTø/™ -.æcY §ŽÍ®äóJJ;;c,Káà`B&Â;RÈ[ %--‰‰Å œ'O jk[ ´}}í¦Lqp=Z¯!%¥4%…›’RZYÙÿüæµk)‡-X±b Þá¶¶.¬û“ÉËʪhoŽ­Ù›¨ðð°B'gÀ@«ªj)*ª+*ªåpê 늋ùÝÝ" 5''S,Qáìlîìlª¡¡†w¤0(@ÞbÈknî|ü8ÿÉ“üääl¸4Nòó³÷ó³§PˆÐèp€Ô×·§¦–bußùù5R©ÌÖÖÈËËÚÇÇÖËËÚÖÖïCU~~Í”)?\¿¾aüx‡÷xyCCûœ9?ëëk‡…m„ϽŠ«è_PT芢ÍX–¢¨¨ŽÃáóx ííB`ooŒMÏÆ²66†pïÞä-ŸL†Ô$%•<^’’R*t3ÆÞÏÏnÌ;é=‡¾‚7Â>ð0™\¬Tee3‚ $’!fåáaååeíäd[-/ºp!áÈ‘{™™_ki½s;ìî\¹’|óæ&*Õr bSµ×®¥DGgÕ×·kä5mšÛPß$›‘Q>kÖX¬/ÍÍuñŽ¥?UW·Ü¿ŸÆÌÍ­67×6ÍmÑ"†««9Þq .å+Vœ³²Òÿãu°1€$Ksrª23ËÓÓËÓÒxUU-ªªÊnnDÍšF³òò"™™Æ;F>ÚÛ…ÅÅ|¬×Saa]QQŸß† ÈÈ‘êd²‰££©££‰ƒƒ‰££ÌЀ~y‹áE*•ååU'%•&'—¤¤”¶· ŒFÒé6ØÖ!WW"ÜF8=ùùÕ,É䥥•µ´tª¨(ÙØõîÛüÓ_mܸï|}íŽ ~×^¸ðå—·OZHˆÀ†´ŽŽž;w2®\If³+ÍÍu/fÌë©0%)lvå´iÇ“’öY[àË€(*ª‹ŽÎŠˆH+/o"“M݃‚èVVúxÇ5XÔ,]zVOOóÚµO£æyª©iMK+ËÈ(ËȨÈÉ©ì鑲4š…b1bÄИuè/(ŠVW·––Ö—”ðKJêKKëKJêëêÚ1BÅÞÞØÑÑKQÉÆzxÇ Š ò×T*ËϯÁzI¥¦òøü6MM5OO+l*ƒ§§µ¶ö;ïöokäÅfW±X¼ÜÜ*™ 52éîn‰õÉõò²†ž 7éée?ýùçöw-˜xø0wíÚ‹!!Ó¶n  Ø†"E‹¯\IމɕÉÐiÓÜ–/÷õó³WRR¨ŽCØ ÷„„½ “‰y%™ MKãEEeß½›ÑÜÜI£YRçÎõ„]‚TUµ,\xA76XZBF€¾´´t¦¥•aÅÐ……µííÿ3©ÂÝÝRGgháÞIw·¨´´Ë­/.®/)á—–Ö—–6tw‹5JÓÎÎÐÎÎØÖÖÈÖÖÈÁÁÄÊJÄ€™l‚•PÉÆÐh'È[€7‰$YYXƒÅâµ¶va×ýTª¥‡‡¥‡‡¥¢î`$Äb)—ÛÀbñ°¦RXÃØX‡B±èÝ&¦®®Šw˜€uõjòþý·22¾ÒÕÕzË—H¥²¥KÏ”–Öß¿¿ÃÐp䀆7ÈåäT]¾œ™ÕÙÙ3i’SP×G¹ª© ‹DNyy“¯ïÁû÷w¸»+x†æuÚÚºbbò¢£³cc ´µÕœƒƒécÇÚÃò£înÑš5™Lî… ÿ7nœÞá ?/~`a³+ù|’ÁÕ•Ø›«€¡8(0EkkÛx¼FëøÄ/-m¨¬l–JeÁÜ|´‘‘±¡­­‘©éh¼CðV oÞŠ¢ŸÉ䦧—efV””Ô£(J"zxXR©–Tª…«+î¡(>¿-+«23³<3³";»B jjª¹»[xxX¹»[P(ð© €!jÖ¬ÿ‰z§O¯xû—<uéRâÝ»[†ÛFû^MM7n¤†‡§q8uÖÖË–ù,Xàeb2¼vÌÕÔ´zy}µF³Â;œÕÕµEGgGEe±X-(ÈËË‹¤`·ßŸ/ðð8pûöfoïáuƒ¾ÅÅüÈÈÌÛ·3¸Ü2Ù$0Ð}Á/kk¼ã’©TzófÚ?.†ç Àº»EiieX®+ªPUU¦R-±*dƒ^P$B¡˜Ã©+/oª¨h*/oÂÚ=ñùìw±^OVVú/>€V ` oú@Ð]‰}–HK+kiéTQQ²±1ª³ét’½½ñð¼©$7|~öAŽÍ®ÊÈ(ojêPUU&‘ )"d’ÌŽ¹wófzJÊþ· ZRR?cÆñÅ‹½¿ùfÞ@Ç6¨”•5^½š‘Æç·õÎ3æmÊ››;]]÷‡‡oòó³Ã;–A§¨¨.""-"‚Åç (‹  ¯Ù³=ŒŒ¿©Š¢_}u÷·ßž=¼l™/Þáðž°Rolž6“Éãrë%™¶¯¯ÖÊÕ•;©PÝÝ¢âb>¤(¼ò`@H$²ÂÂÚŒŒr¬£6•îíîn•À–¨öb#3³¼±±£7“„¥1`6ƒŠ¢ Æ·AA^»wÏx›ç·· §M;nd42<|“ŠÊ[å9†ºÎΞ۷3®\If³+ G.\ÈX´ˆagg„w\ƒ‚@ÐíèøùõëƇy¯&“¡ii¼¨¨ìÛ·ÓÛÚº==­‚ƒésæx(|ÆëرÇÇì߸qãD¼càmµ¶v±X<6»’Éäa=QÕÔT°n¨PT€ÉКšÖ²².·±¬ ëòÔXVÖ(IÑÒamm@"`ÿ'‘ I$øWÃä-€<´· ³³+±4›]U[ÛŠ ˆ‘ÑH77¢››…««¹›ÑÂBï0Ü‹iŒììŠúúö—ÒnnD س€¼±X¼9s~ŽÝåèhú6Ïß°á÷ÔTîÇ! ¿mEÑÄÄâðpÖǹB¡xÚ4·åË}ÇŒ±{˪”a¢³³ÇÞ~ÏåËë'OvÂ;–ÁN$’<}Z•õçŸl©T6nœÃ¬Yî³f¹+ðϾ|püøÃC‡¬^=ïXx5™ ÍÍ­êm<[ZZ/•Ê,,ô¼½m°\…““™ªª2ÞaÞ™@ÐÝ[BQYÙŒ=®¬l‹¥Èß) Ã†ÆÆ:xG `¼ÀAGGO~~uï=tìó‰–Ö[[#2Ù»‡N¥Zª©AG£ôb몬¬dkûWÃÁÁ„B!Bù-r°oßÍääÒØØ]oóäß¾ÿ­76*vS êê–7RïÜÉ,-­wv6[¼Ø{˜´÷y"‘ÄÚú³K—ÖLêŠw,C†@ |ø0'::;>¾PCCmêT—À@êĉN YÀtâēÇï:´`Õ*?¼cà/MMåL&ÉäÔttôŒ¡B¡X06  ʲZÄbiU––h®¨hª¨hª¨h./ojkëž`l<ÊÒRëò„5z"‘ áºÀAÞàO,–r¹ Ø t6»’Í®ì鑼4˜: ´ŠŠ&6»*'§*'§ŠÍ®lnîTUUvt4usÃF|[8;›Ál úD"óð8°nÝø-[¦¼ñÉÙÙ•sæü¼yó”;?’Clò'K<ȹr%ùùób ¼‚ƒ½( ¼ãÔ¤R™…ÅÎsçVÍœéŽw,COKKç½{ìðpVZZ™‘‘άYîît:‰@P¨q\—/'íÙ±{÷Œ·9Ï0d2´´´>#£<#£<=½¬¨¨N*•éëk{zZÑhÖ4š5•j¡¥5ï0}‘HdÕÕ-½#(z`ù `i©ƒ(ô#È[€A§££'/¯»ž“SUR—HdjÎÎfnnæNNfÎÎf¦ÚÚðÙfUW·ääT±ÙU99•99U½M¥œœL]\°?SSÓÑx‡ ÀW¸|ùÙ¤¤}VVú}?³¥¥sêÔcööÆW®¬WRR¨›ª‚äæVÿñÇó¨¨l {ìXûåË}§Nu…\é["wœ<ùñìÙx2„UW·Ü¿ŸÆÌÍ­¶°Ð›=Ûcñb†­­âÌP¹r%yÏžðiÛ¶MÅ;0\46v`ƒî22ʳ²Ê¡ªª²““fíéiI£Y[[à#àPÅ*'^ÌOðùmMM‰ Amí66F/Ë65ýô/È[€ÁN(çç×`9Œ¼¼j‡ßÝ-Âvs`9 GGS3++Å»‘7xÔÕµåæVçç×äçWçåÕ”•5J¥²Ñ£5]\ÌÍœMÍL &€wµuëµÒÒúèèm}? EÑU«~ËÉ©zô(D__[>±ÉAKKçÍ›éilv¥¥¥þÇûΛG33ƒœè»±² 9~|ñ‚^x¢ŠŠê¢£³nÞL/+k$“M‚ƒ½‚‚¼£eÍÕ«É»w‡ïÜ9mûvH]€Ñ;R»w”š’ÁÎΘÁ Ñé$ ÅÂÖÖH!»±0tµµuUW·VU5WV6WW·TUaÿ576v`OÐ××¶²Ò·°øo—'KK=33]ø· @ o†>¿ÃáÕ±Ù•¿°°V$’¨¨(™›ë’É&XS)2ÙÄÒROÁú< ‰¬´´žÃ©ãpê°î^|¾Acc2Ù¤÷OÁÎÎÆçСPL¡|ñÙgÓ×­ß÷3OŠ;räÞ­[›i4+ùÄ6 ¤RYllADDÚǹÊÊJ3gR‚ƒé~~ö~~?¶¶»^°hï@ ›]žv÷nFss'fH?Ÿ¦§§…w\äÚµ”]»ÂvìøhÇÅì5äL,–ff–c—‚,¯¼¼ Am__;:D¡Í¡B€Á€ÏTUµTW7WUµüŸh®ªjiobOÐÕÕ"uÍÍu‰D] =,?ai© Üàò`ÈÃÆcü󺎎ºƒƒ©ƒÃ_·Ñ]\Ìáªkà´µuýõþs8ü¢¢Ú‡”` VгO€÷àAÎÚµY¬/û‘Q>oÞ/;v|´uk€Üb eeW¯¦Ü¼™VW×F§“‚ƒé³g{èè¨ã×Ðæà°÷À9K—úàˆ’JeII%áá¬rD"éøñ³f¹Ïœé®©©†whïéúõ”Ï> Û¾ý#E“ZEESj*»äËË«îê©««º¹a¤6¸koòx ååM|¾€Ï¼4AMM5;;cccccÞ.OÆÆ:zzÚªªÊøüä-€ª¬l.,¬-(¨Íϯ.(¨åñ$™ªª²­­™lŒ8:šZ[@}ëéµÎáð9œº¬¬Š††vä 2LœœÌà g[¶\­¬l¾}{sÏ„?88˜\º´vè–#tu‰nÝJg¥§—ééi-ZäìE&›à—‚pqÙ¿k×ô•+ýðD‘õôHž=+ŠˆH{ð GEEyÊç  ¯ ‡âO±7RCBB7nœ´oß,¼cC€@КÊź?aÛƒ‚½½1…Bd0lètt@΄BqEEÖß©·¹Sees}½@*•!¢ªªŒUN˜›ë‰zD¢.‘¨gn>ÚÜ\w(þØ0lAÞ(¾žIQQmaa‡S÷ÿíÝwxÕÚð3[Ò·÷Ý´M¥B  ((‚H‘¢¸^±€|W)Ò¤Ù°‹WQ¼ŠQਥ‰€ „ÒËf{O¶ew¾?¬k² ‘l²›äý=yö™ÌÌ93s2›wÎ{®_W)«ªôI§SSR„©©âôtqZš(="íÅã!++u……5W¯*._V\½ª¨ªÒ#„˜ÌµlÙî—^7þ}Á® 9YXX—wc¤Š’µÛíár£LÄ#Uôì)¹+ IDATe0 ŸíËáhP( …I¡0(F¥Ò¤Pkj µµ&ƒ¡/ŽÓ:ùD)8qq\¡Ù¹>•¿ nº£†OM§–ºvMYT¤*.VÕ×;‘O‡ÌèÓ'¶óæ‚ef³íÊc\¹¢øãZ»ÝEDl,'•JO§§‹SSE‘‘püA×tòdÑô韜:µ"1‘ßÜ2»vå/X°ý›oþ5dHRGÖ­í4Ëÿþ—·sg^q±ºgOIvöЉû‹DÌ`׫k8pí3ÏŒ˜3gd°+Ò½(•¦ýû/îÛw!?¿L&ãŒÛ÷‘G²úô‘»^­µuëé—^Úµté¸çžƒÐ@åÌ™«¸rEQWç§edÄedÄeeɳ²äý €öàt6(ÆÚZSM¡¶Ö¨Tšª«oD)tº#cÓéT‰„-‘°d2ŽXÌ’JÙ2G&ãÈdl§sº´ â „Ëå..V]¿®**¯ÊÒRËå¦Ó©))¢´4Qzº8)I˜œ,HJÀô€s»=ååÚ?þ¨Å#®_¿®,.V»\n …ˆçáHF’´4Qjª(,Œìú+W~{útñÏ?/in²2͘1ïΚ5lÕªIY±¶p¹Ü\Úºõô©SÅ‘‘ô‡0sæ°ŒŒ¸`׫‹2ä•Ç¿sÞ¼{ƒ]‘nêúuÕÞ½¿ïÙs¾´T“–&ž8±ßÔ©ƒxÁ®×­íÜ™·páŽE‹Æ¾ð˜`×t4›Íyöly^^iÓìO8VÉ<“©Þ;æDE…®²R§TšÔj³Rir8ð2LfDb¢À;ò„PÈ‹Yññ<‘ˆAný€`¸þ¹\îòr-N-uíš²¤D]R¢±Ùœ!©”cr¹ %E˜”$ˆåB‚©€S©L8Œ»Åà§ÿP“>10â:èŒH’8pmvöÅ‹ð»€Ûí™<ù£úzÇ?,豺+WÛ·ÿ¶oßïuøðÔ™3‡Ý¾iwŒ;îxíÑG‡@Ÿ »vM¹{÷ÙÝ»ó5ËÀ‰'öè¡|~L°ëÕ’íÛÏ,Zô?èuÑx<äõëªüü2«(-U74x8œèAƒñHýúÅ3™ý €Ûd·»jk*•¹¦Æ R™qN'¥ÒT[kT«-x"2e2ŽD–JYR)G*e‹Å,™Œ-0;ï0f@;¸~X¦¢BWT¤,*RUTè®]«ÅÉà›é ¼„^|»{÷Ù‚‚ª¸8îôéƒ~x \.v½º—#Ö?ø`æÂ…÷»"!„<òìÙ²}û.îÙsÎd²ÝqGÊÔ©ƒÆËÙûæÍ¿¬\ùíÊ•¡ËN×£ÕZÿ½"/¯,/¯ôêU…Õê Ó©ýûÇgdÄáXE§è@ˆ IR£±ªT&¥ÒT[kR©L …Q¥2×Ö•J³ÉT£Ñ(S&ãH¥,±˜…£ ;6–Íç3àë!Ðz· Ml6gi©¦¤DSR¢..V•–jJJÔV«!ÄdFÈ傤$Ar²09Y˜˜È—Ëð [`µÉÈȈKKÃ#®‹ÓÒÄðÜ7®âbõÝw¿AI’±±\ ¦¢BwúôJ<´é¨QoÏœ9ìñÇïÄÚ;W1yò‡Ë—OlyÈî "IòäÉë[·ž>t¨ ˆ úM›6øÎ;SáQÁŽ‘—WZR¢v»oü ÷Þ{SR„#F¤ã·v{Ãèѽ =WÐ9 Ç_Û·ïÂ?x<ä]w¥M:hìØ¾!˜{ç?ÿ9¾fMîk¯Mùç?ïô¿wï…ÌÌø¸8n°*þ.‡£áâÅÊüü2<• BèüÓO½òÊÞõë§Îšužóõ×§–-Û=gΈN4ÄN7D’dQ‘ª   Ç*pö'+*+K~3V'1ƒ]MBˆo· …¨V››ë6Áç3d2ŽHÄ”HØb1S$bI$l‘ˆ)•²!þtˆ[ÐAL¦z|?ÆVQ¡+.VÕ×;Baa4‰„…3y3MÅÅqCð–e§ãɸ~]UR¢.)QÛí. …É8ÉÉ”aJŠ()Iš*‰XÁ®/è²\.wbâb¿Ÿ¹ áñ!:âñ ñãûúèç7Þøž$ɨ¨ð‹׆l’«îI¯¯;w®¼  */¯ìâÅJ³Ùî›ý)##R•‚nÎnw©TfµÚ¬ÑXT*“Vk­­5étVÜmB§³44Üøe2#Äb¶XÌ‹™R)G `Èdl‘ˆ%³|‚ âË宬ԕ–jÊÊ´ååøUëí™ÁåFËåüÄD\ΗËññܸ8žPÈv­»»wïïõõÎ{îé9uê ûïïÓ)† ïÚfÎüìĉkÞ;/^T*eÕªŸ~zDPjZ©¦Æðã—víÊ¿t©:-M˜ÙÊgL¦z&32°É¦\.÷¨Qo•–j¼‘T„XÌÊÏ_|É›ý Ç*®^U¸\îÈȰAƒ½± ¸ ƒ®Ê;È„w„ £Ñ¦V›•J~u8ð’A… „`±"ñÄÍjèô n@瀻xsLቚŽgàLSññ߯"º‡Ü±ã·øxîðái·±ºËåþý÷Š‚‚j<ªvE…!$0†MƱŠ^½d11ý t>f³]­6ëtVœÄI«µj4µÚrsŽÅ7m&“)2x¼¡)à †PÈäób1“ÏgÀ¿Ó@·q º ½¾‡1ªªð«¾¦ÆPU¥·Û]x¡2;6–Ç•É8±±&32¸5ïtl6gI‰¦¤D]Zª)+ÓàÑJ †:„Nå6 fÈdxX²Ûš;÷ë}û.x?vi4J¯^²þýã¶oÿÍ÷Ö3Bˆ I¢Ù³ïZµêÁ€Œ$áñ¯¿þý'ŸAˆ$ID¡￟=mÚ`„Õêøî»ó[·ž.(¨’É8>šõÐCn™E „‚üü²I“>ôCD~þ*©’DuzGÉ×vï>{àÀ¥ÈȰ1czOœØÿž{zÒh7>ANœ¸ö裟"„h4*FùðÃ&ô»íâìvWvö§¿ýVÚÂ2?ÿ¼¤gOÉmÑõ\¾\³xñÎ ªþïÿF­X1¡•k]»¦ÄÙŸ ª._®©¯wFDÐûöÍÊJÊÊ’Cö'Ð)ètVΪÕZÕj³VkÕj-*•Y¯¯Óh,xŽÓÙà]˜Ç‹áócx¼‘ˆÉãÅðù ‘ˆ‰»Pà90bšq º­ÖZSc¨©1TWª«õøµ¦Æˆï³#„Œ™ŒÇåàH~˜J 3hwmx´ <â70Ûc !ÄbEáÑ2¼½ÒÒÄ~·;X¶l÷ÿ{‡(Ñé´Ÿ^üøã_”–ª}£R©T*ñî»L™2( åÚlÎýkë…ÞO| …80qÑ¢±[·ž>t¨Ðã!ÇŽí;sæ°;îH¸Zç2tè«••z„H„A}úÈ„$Q]ŠÙl;x°pÿþ‹GŽ\åó&ô›8±ßàÁò ¶ïÙsþæõ„@Í›wïÒ¥ãnûO8/¯ô•Wö;WN£QšŽ÷N£Q~xàd·qwº«ÕñÖ[?lÞü An7™••øÝwó›[ØdªÏË+óÆ*T*3…B¤¤ˆ²²äƒË32â’“…ÞpAg6Û5³^_‡#åæ´gsÒéêÜî— …À1 €)0øü€ûLàœN\n ô–Àmƒ¸Õ×;«ªôÕÕ8¤¡Çª*½ZmÆékètªHÄ”J9R)["aI¥l™Œ#³$¶PÈì  ]•ÓÙPV¦ÅãdøU‚¢Ñ(2Çwx’´4q»ÞÈøòË“£G÷Žå´Óö_o½õãÆGðCˆ ±fÍC?<°oß—}?ˆi4ªXÌÊÉy²W/i@ U(Œ3f|VR¢n’û…@ˆLLä?òHÖôéƒaçNê½÷nØpß¼¦Ñ¨Ë–öÙ{‚])Ð.Ê˵{öœÿî»óׯ«zö””–j¼#ÓbT*åÎ;S6mz¼-ÙÞóóËÖ­Ë=w®‚B!寣R)çέiå˜á]I’Û¶Y·n¯Ãáòö“‹ˆ _¿¾Þ1r»=—/×xc%%j·ÛÃãÅ €c0&–úz§VkÑh¬z½wÐj-:]^oÅIœt:«oИ˜p¡ÉåÆðxÑ8—ûOðù ±€›Ð~ nh–Ëå®­5ÖÔkj µµF¥ÒT]m¨­5ÖÖšt:+^†N§ŠÅF2ð„D‹ÙÝüîFk¨TæÒRMy¹¦´T[V¦)+Ó–•ip:¯¨¨0¹\ —óù‰‰üøx^b"_*eäûaFÆ*ƒ¡.;{èüù÷Aô¢ÃlÚtìõ׿w¹ètêСÉ;vÌ=p ð©§6{?‡)âþûû~ðAv ni]¼X5sæg&S½¿§§)?<ðý÷³!îØ©UW† yÿ/GÄ™3+ãâ¸Á®h_—/×¼ó·]iú?<~È૯žncB§_~)Z¹òÛâbAü½ Ó©óçß·páØ¶l¹S»vM¹hÑŽóç+θçcÛ¶9Z­÷¨¸rEQWç§edÄedÄeeɳ²äý ´7«Õ¡ÕZôú:ïFcÖ鬸·KxÆ"„"#Ãp÷/†ËöÆ!¸Üh¡‰Á Áq Àíp8 Cm­©¦Æ P•J“BÃ&oÖ©°0šDÂÂÁ ¡‰_%–PÈ”HØ06¸_$IÖÖšðhååÚÒRME…®¼\‹¿jÒéÔøx^b"/>žŸ˜ÈKLä'$ðøë`: IIKðpâ¡ìì!Ï??Z&ƒèE»Û¹3oÑ¢$IFF†ÿòËR±˜µfÍw99'N7…BAˆ\¶lü¼y÷*ðã—æÍûº¡Áívûÿ çó¿ÿ¾Cuv=ôá¹sÙ«—ôðáEÁ®èO>ùåáÃ…Mã‘!B£Q7lxlâÄþm)Âã!¿ÿþâºu{kk$yãë‹yáºnøñ]WçX¿þ‡œœ“šv*•âñ$IŠDÌÌÌ„23úõ‹ƒ!µA@¸\n‡0ê´Z+E uzý·xÚwH‰ˆ:‡Ã¸‡„7>»MðxÑ‘‘aAÜ)€Öèv_<N“Ër¹ é¯ìv`ÔÖkj J¥©¶ÖTRR¢R™4‹÷ÉM6;J,fá0†TʘR)i°ø|F·½—J„TÊ–JÙǧúÎ7™ê}³K«Ž¹R]mÀ)†Y¬(oŽ)ïD\×oçŒÊJ¾…×ݱã·mÛÎŒŸ±téø¤$?' ‡åv{­Yó XÌBýúk±Óé¦Óiáá´gÝw_¯@•õî»Þ{ïP“g‚ÿB«µþúëõ»ïNT¡ (¦M|î\•JLš”캀Ž`6Û~úé²ß B¨¡Áãv“sç~]PPÝ–á.(bâÄþ÷Ý×ëË/OnØpØnwº\“ɾoß…©S3ôNg±ÿÅåËw6oNÿF‚><åý÷³¥RH¸þ—Ë­×[U*³Je6ëM&›ÉTßè­ÁPï HP(„@À`±¢X¬H6;J$b&' ¼oY¬H‘ˆ%1aÈ4tÐßÐqC `àñý„B¦@À€¯d˜wðF!úz'BˆN§J¥lßHFB/5UtêTɬYŸ5ÚFq»Iˆ^´«¼¼Ò‡ú÷=÷ôغõ‚ Ìf[¯^+<²_¿øÍ›ŸÔ.—{ùòo¶m;}Ë%)bÒ¤<3 å‚`±Xì}û¾ìr¹!IT7±kWþ /l¿å?ðî½·×Æ³ÚžwÎl¶}òÉÑM›ŽÙí®=$GŽ,iã; •ʼrå7ß_@·øÆ”š*:~|i‡U „8‹Ån4ÖõCÑXo0Ôã·®3꽃IÐéT'ŠÃ‰ær£qW ï4~åñ¢¹ÜèÄ€nâ€Pa·»jkjµE¡0ªÕfüªR™µZ‹Zm6›íÞ%Œ¡ÉçLjDL€ÉãEK$lÜ ^$bòx1t:5ˆ;\.—»ªJ³KUThËËuÚŠ Î4Fc2#Æú&£4#ä½X¶l¼\.¸|ù²F£éð=è²jj,kמ|óÍ{8œ„PAzýúÓwß7{v¿°°À´X›­áƒò/]R·¼A œé…ÍŽX¿~d Jï½zõ …mÙB—lÕ6ä+–7ß¼7Ø ¼¶ŸñvuìØ±Ž/ôÍ7O_¼x‹¿q/©4fáÂ!ILÛË5™ß~{íÈ‘ò+îìу×ö †²†Ï¥{ö\³ÙBT*¥¹Î…BlÞ<¾5×Ò‘#Gª’ ƒ™Í6½¾Î_ÂûöÆo}»C1lv‡ÍáD±ÙQ\n4›…8–ˆâñL& ÕÐÄ-†ÉT¯Tš½èU*³Je2™lxB«µzo+„‡ÓØì(Ü_ÞÛqÿ°XQR);Pãw"*•©¼\W^®Ý±ã·ß¯p:ýÄ-0œWdæÌacÇÆ3´¸¸¸¬fW¦ÓÕýþ{Õ}÷õÀoÿóŸ_ùüèɓ۔ƒ¾‘¢"uy¹ŽÁˆ PˆðpZX•J¥DG‡#„bbÂ)Nï¼¹é/_¾¸…Ãáèb­úÌ™²«W•O<1,Ø °€œñvuìØ±ØØX«C‡\>{¶²å{èDG‡õé# Téµµæ«W•÷Þ›¨ †,“ÉVYi¨©1ÖÔ SU•±²R¯V[ðÁ§Pˆ°0B¤Ý~#‡ONάÌÌ–.,&“©ººâ!Åû¥Édó¦f2mMæÔ;ŽA§S¹Ühœ I,f …L6;Ò7_‹…ç@ÿ`€¶è¬7/Ý‹ÅbEµ°þþ©V›•Ê?ã*•¹  ÚdªW«-ÞHmx8íæWÍ(o<ãflƒ%•²»^ ‘ˆ%±† I:|¸ÙÄèƒá«¯~ݶíÌ„ =^½›ÝÒa­$zôHô¾}þùpD!°EÜyg`7Ù…‡‡ ]*Ú¸q¼¬,‹@СwÏÆd2;¸9=ð@0[¯@ ÈÈHb:Œ@€RRâÍôxH¥ÒTY©«ªÒWVê*+õeešŠ Ng-)13 … ³bƒ$IµÚì/öp‹hFáñb|Ãiibüø D#‚‮6ÒÓÅ~k4Ö«Õf­Öz3÷”E£1kµÖóç+t:«ow :Êç3¸Üh>?†Ëærñ+~{cšË‡—”¨½££{ £¹\n‡ŒŽïß?~À€õè!„ E; xÐt[T*E$‚ íŽB!¤R¶TÊ:ô/Á—Ëí7û"”º:‡Ùl3™l‹Ýd²y§ñ„Ùl3ëñ«ÁPç›Y!Nó¦ib³£RSE8_‡ÅfG³ÙQNžî¼ýº$øç Ð]àï«iÍ$·ðxH½P«ÍE«µêtVΪ××UUUéõV®Îdª÷]–xó'†Ç‹æñnÄ98œ(>?†Ç‹ Á{ÓUU9YH¡¡Ë—/µ¦@'@§SÕM³¡Ásðà¥ÌÌ©” †&«Õá 9xn¾½ðým£~¢4…ÉŒd2#Y¬H&3’ÍŽŠ‹ãâŽ7CÑ\î@EddX°v´Ä-!„(B `Œž=%-,f·»p¶o6*ïÛâb~«ÑX|;44lçhôV(dÑþ{‰L¦úúzžöxH‚ FŒèñ £‡ Iê€Òà—RiÚ¶íLNÎIΚ›;¿Å-Ž£±®5©™ìö»Ýé› ùKЄÿk‚A#º9ˆ[ÀßAˆ`‰D¬æ²Q!„êê¸ë†^_g0ÔéõuÞ·:½¾R§³éºÁbEñxÑN”ÏWôFßÕo|]ŠjÓcƒT*uçÎgçÏߦR™I‘¤ç×_¯?þG|Ñfsú®H§S=xˆ'p¨£ÑÉMoÄÄ„ßuWZ]ç&n„PU•þ7¾cS¦ š=û®=Zêt€6ª©1ääüº}û£±ž ‡DˆD²Zí·\½5\.·ÕjÇ‹ÅnµÚ-»Õê°ZíF£ ¿Å! ™0›íV«ÝåjÕ¾à]˜?þàÁƒ·oß>mÚ4>: =“$ùÓOW6m:vút Fu¹pÒ¤?/T*Å÷ñ„ÛíÑj-v{NVé}²ÁápÙí®Fé˜nάo”Ž ùddŠˆ ã$–,Vd|<Ï›É;? A§CÄ- ¤……Ñ„B†Px뺑cºÞh¬o.ÇtE…Î`¨÷~£ÜýââÅÊ9s¾ c~¸O\\R@’G±Ùì—^zéï®õÝwß=ôÐC …bÛ¶mm¯FÇû™™¹|ùòùóç=šÍf›L¦yóæ­^½ßæ³X,YYYB¡pýúõÉÉÉ………/¿üòáÇ>|{ÇíÔ©Sr¹¼öæ†ÒÒÒ¬¬,­VÛ~Et miÕÞuÛõ`â²|çÀ¹ëΚ¶/߆Ñ\ÃnÍÕ¬àë›Ûí.**Ú°aÀ.]ºÄfû "¤>>ÌfÇÇÿüå—' F!IòfТâ‹/~Ù³çüÍ«ÕÞ(’¢P#’ÅŠŒ‰ ‰‰`0Â¥R6NÇÄ`DÜœÁ`„ã!¬cb"bbÂ!: ˆ[@×N‰˜"³…ejk®ma …B¥ÛíöTW ª†Ok{Ýø|þúõëÿîZ‡ÚµkWMM B(>>¾íÕèxxB+W®Ü³gÏK/½´iÓ¦¥K—J$’%K–àeÖ­['Ž9B¥RBiii÷ߟ>}>ÿüó9sæÜÆqbq³C°´ÇãÑétí·ý΢-­:22¯Û®ÓÛü¼àÜugMÛƒ—oÃh®a·æjÖ¼×7™L6räÈ‘#G¾ÿþûk×úÿ\³Ùl(>>T*óÚµ?üøc¡Ãq#~JÀ/<ÊEBÏ'ö„À!Š˜˜ˆèèðŽª>A@ vt(³ÙoÖl",Œ†ŠŠ 7®ïk¯M9sfåŽ=ÿüð–ƒ{÷î•Édƒ!´}ûö´´´ºº:ÇóÑGõìÙ“Á` 6ìèÑ£AûÍ_„íß¿?333**J"‘xï—iµÚèèèÈÈÈ¡C‡"„ð*¼Ÿþ9>>þäÉ“~W$bóæÍ={öëׯ߲e‹\.g±X/¿ü2^Àår-^¼X$ …ÂÅ‹»\®aƽÿþû!½^O¡P-Z„r»Ýçûï¿GÆþóŸ|>?66vÑ¢Ev»½QMð–I’\´hQÿþýñcËÞ]@………åäälÞ¼ù7ÞøòË/srrèôϽnݺuÕªU8hEGG/Y²dÛ¶m·qÜþÖÉÂÛÏÍÍMOO …óçÏw8·ÜßÔÔTïiêСC)))ç7Þðž²FE4Wn(è˜Ví]×·y#µ¢IïÛ·/###"""))iË–-Êò­U@Šk¤³Ÿñöã·-!‡Ý÷ïëØ±c«W¯ŽÿøÇ?ŒF#Þšß“ÕôÔ744ø]½iÛC7OúkÃðÛ°[y5k×]kŠ ˆ¹sçâ«´ßí4jð­Ùf{´g‘ˆù ÷<ùd¿‰ûGGG „ðgn3;…FêõÖ[ÓW­šôâ‹÷?ýôˆG2aB¿»îJëß?>%E(± hº>@w’—W*‘¼€bc_Œ}Q*]0jÔ[¯¾ºï·ßJ\.·wÉÂÂÂÂÂÂ[nðÿøÇã?®T*E"Ño¿ýF’ä¦M›„Bá·ß~«P(¾ÿþûØØX„Ðõë×ñ‡NÓ ³Ù6{öìêêê­[·"„Ôj5I’›7oÞ²e‹ï’ÞéxàÈ‘#µµµ~WDegg›ÍæÏ?ÿ!4}út³Ù¼iÓ&„V«%IòÍ7ßœ2eJeeeAAÁ€–.]ºnݺñãÇ“$™››Ëd2 @’äÙ³g#""êêêH’œ1cƨQ£JJJ úôé³fÍßš\¸p!äñx¼A \[ï.x-]º!ôꫯzçà{š¦Ñ=}ú4—˽ㆺpá‚寚;YxkcÆŒ)**:sæLJJÊš5kZ¹¿~ÛBh„ f³ù›o¾ÁÜo͕ۂ£GªTª–—¹¥lվ͛ô×8É[5i«Õþé§ŸÖÖÖ~ñÅ4Íjµ’m~¸¶)®Ñ± ñ3Þ®ZSæm‰ôwØ}ÿ¾Ö¬YÓ»wï‚‚‚K—. 2dÑ¢EÍ­å÷Ô¿ýöÛ~WoáŠÚš™­¹šµ÷®‘>-Ù+??ŸÍf·\:þmsÛôÕ~íY¥R=z”$I·ÛsñbåGýtÿýïJ¥ d²Réïç²DòB|ü‹K—îjykty·€îå§Ÿ®H$/H$ âãNŸþñgŸ+.öß­•wx ClllFF†÷®MïÞ½srr¼ |õÕW-ßáu8W¯^µZ­n·ûøñãÞÛRS¦LÑëõ¤¿j-¬ˆ:þŸÇ­…Çšž,ß½ IrçÎ)))­Ü_¿í!tìØ1’$Ýn7®’ß"üÎô»A¯ŽŒ[td«nt0›6NòVMZ¯×ÓéôwÞyÇ`0x<‹Åâv»É¿6¿æâ·Q\£câg¼]µ¦†MÛéï°ûŸôôôo¿ýÿöÊ•+Þé¦kù=õÍ­Þµ53[s5kï]#o·h®t<§¹múj¿öì[ø*/×~ñʼnéÓ?Ž‹[(•.ˆ_(‘¼ “-xî¹­-o €.òD@÷F}â‰á[¶<ýǯïÜ9ïé§G$' Û²A6›ýÌ3Ï\¾|ùÙgŸÅsJKKû÷ïï] ##ãVU +**;vìÀsrrðL«Õêr¹8ŽßUzôèÑÜŠƒÁ@áÔ%¾ÓXyy¹D"!‚ ˆÑ£G—••effFGGçççŸ8qâÁÌÌÌ4*¢…™¡ (­kÚ8oY[›ÍæñxvíÚ¥×ëŸ|òɉ'êõúÖ”u{Å5ÕÎxûñûG×ÜaÇ_R©´¼¼ϹpáÂk¯½ÖÜZ~O½ßÕ›¶‡††„PMMMkö¢õW³vݵ¦#Iò“O>ÁêJÇZ¹Í ´ç¨¨°±cû¾÷Þ£……¯8ðâ”)Û²5ºˆ[¸}göìÙÏ=÷ÜöíÛúé§}ûö!„fÏž½xñâÜÜ\¥RyàÀœ½‡Ãét†……Ùl¶Õ«W#„,Knnî¤I“ncÅÖTûá‡^¶lYEEEAAÁرc?þøc„иqã6nÜ8dÈ:>jÔ¨œœœ„„„„„„Nä‘GæÏŸ_VVVXX¸råÊ3f4ÝltttzzúÒ¥KçÎk·Û}w$É9sæddd<ùä“¡… ŠD¢çž{ÿvÕªUJ¥rôèÑ,**JJJzì±ÇìvûSO=u{»¯Ñh”…š9YØóÏ?_\\œŸŸ¿|ùò™3g¶r­V+žøüóÏM&SËǼQ-Ì º ´jïÁôÛ8[FĘ1c¾ùæ³Ùìt:étzTTTËAm)u¹3Þ~šû£kù°Ïš5kÅŠ8§Ù¿þõ¯ŠŠŠæÖò{êý®îÛØl6Bè믿6›Í~ø¡oÑÞ†ÑHë¯fíºkxa|}«©©9~üøäÉ“ËÊÊ^|ñÅÖ”ÞÜ6Cª=‘‘7aB¿€l €N,à™§t ­ àßÿþw¿~ýœN'I’{öì‘H$z½Þét®[·N.—ÇÄÄ 6ì¿ÿý/jq$’$ß{ï=.—·qãÆììl‡ƒ–Àü&^÷»¢P($ÿšÝï´Ùl~â‰'8Ç{æ™gðÈÛF£‘F£á1fëêê–,Yâ-H¯×Ïš5‹ÇãI$’ Øl¶æje³ÙÒÒÒ–/_î» 999ááá¾C_äååQ(”Ý»wã·V«uáÂ…}úô‰ˆˆHNN^±bň#yä‘¿uܼ»ï÷ãÞïÉÂ[ûüóÏø|þsÏ=g³Ùn¹¿.—køðá111-dï´ß"š+·6¾E·êFÓoã¼e“Þ¹sgrrrXXX=rssN§oY¾K¤¸NtÆÛÕ-kè·-‘þ»o˱Ûí‹-’J¥,+;;Û`0àù~OV£Sïwõ¦íáÕW_e³ÙÉÉÉ8Åù׆Ѩ=7Z½å«Y»îù×ë[\\ÜŒ3|OAË¥·°ÍhÏ~Ç·4‡ [—Ö@wƒ3áôîÝ»Û)..NMM…›¿Ëétž?~èСíZJœ¿EÜF¹ÇŽëÕ«—PئáX Uw€:ãí*ôkÚ.PíY­V_¹reäÈ‘®]ä‰BQXXX{-BÄ-€î‹ÉdΙ3§ã‹è€rA°À] ´g‚òDð/PuˆÊ:@èga ý‚Ðy¢ø[ ¿BÄ-* n€Pq „ ˆ[ T@Ü¡‚ì ]æØ±cÁ®­Е+W®\¹ìZ@WC$ì:Ef³Ùáp»ü‰Éd†‡‡·e Ъ;—¶Ÿñv¥Ñh‚]ÐÉ‚`W€Îâ0¾BÄ-* n€Pq „Šÿ5!±ŸïVIEND®B`‚XQilla-2.3.0/docs/simple-api/classXQException.html0000644000151400015140000004244011653571063016751 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

XQException Class Reference

#include <XQException.hpp>

List of all members.

Public Member Functions

 XQException (const XMLCh *reason, const XMLCh *file, unsigned int line, unsigned int column, const char *cppFile, unsigned int cppLine)
 XQException (const XQException &)
virtual ~XQException ()
const XMLCh * getType () const
const XMLCh * getError () const
const XMLCh * getXQueryFile () const
unsigned int getXQueryLine () const
unsigned int getXQueryColumn () const
void setXQueryPosition (const XMLCh *file, unsigned int line, unsigned int column)
void setXQueryPosition (const LocationInfo *info)
const XMLCh * getCppFunction () const
const char * getCppFile () const
unsigned int getCppLine () const
void printDebug (const XMLCh *const context) const

Protected Member Functions

 XQException (const XMLCh *const type, const XMLCh *const functionName, const XMLCh *const reason, const LocationInfo *info, const char *cppFile, unsigned int cppLine)

Constructor & Destructor Documentation

XQException::XQException ( const XMLCh *  reason,
const XMLCh *  file,
unsigned int  line,
unsigned int  column,
const char *  cppFile,
unsigned int  cppLine 
)
XQException::XQException ( const XQException )
virtual XQException::~XQException ( ) [virtual]
XQException::XQException ( const XMLCh *const  type,
const XMLCh *const  functionName,
const XMLCh *const  reason,
const LocationInfo info,
const char *  cppFile,
unsigned int  cppLine 
) [protected]

Member Function Documentation

const char* XQException::getCppFile ( ) const [inline]
const XMLCh* XQException::getCppFunction ( ) const [inline]
unsigned int XQException::getCppLine ( ) const [inline]
const XMLCh* XQException::getError ( ) const [inline]
const XMLCh* XQException::getType ( ) const [inline]
unsigned int XQException::getXQueryColumn ( ) const [inline]
const XMLCh* XQException::getXQueryFile ( ) const [inline]
unsigned int XQException::getXQueryLine ( ) const [inline]
void XQException::printDebug ( const XMLCh *const  context) const
void XQException::setXQueryPosition ( const XMLCh *  file,
unsigned int  line,
unsigned int  column 
)
void XQException::setXQueryPosition ( const LocationInfo info)

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classATBase64BinaryOrDerived__inherit__graph.md50000644000151400015140000000004011653571063023674 000000000000007f9c5daacddc73381a80c563731b57ddXQilla-2.3.0/docs/simple-api/classxercesc_1_1MemBufFormatTarget-members.html0000644000151400015140000001472511653571064023710 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

xercesc::MemBufFormatTarget Member List

This is the complete list of members for xercesc::MemBufFormatTarget, including all inherited members.
flush()xercesc::XMLFormatTarget [inline, virtual]
getLen() const xercesc::MemBufFormatTarget [inline]
getRawBuffer() const xercesc::MemBufFormatTarget
MemBufFormatTarget(XMLSize_t initCapacity=1023, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::MemBufFormatTarget
operator delete(void *p)xercesc::XMemory
operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
operator delete(void *p, void *ptr)xercesc::XMemory
operator new(size_t size)xercesc::XMemory
operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
operator new(size_t size, void *ptr)xercesc::XMemory
reset()xercesc::MemBufFormatTarget
writeChars(const XMLByte *const toWrite, const XMLSize_t count, XMLFormatter *const formatter)xercesc::MemBufFormatTarget [virtual]
XMemory()xercesc::XMemory [inline, protected]
XMLFormatTarget()xercesc::XMLFormatTarget [inline, protected]
~MemBufFormatTarget()xercesc::MemBufFormatTarget
~XMLFormatTarget()xercesc::XMLFormatTarget [inline, virtual]
XQilla-2.3.0/docs/simple-api/classAutoDelete.html0000644000151400015140000002472611653571063016604 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

AutoDelete< TYPE > Class Template Reference

#include <XPath2MemoryManager.hpp>

List of all members.

Public Member Functions

 AutoDelete (TYPE *p)
 ~AutoDelete ()
TYPE & operator* () const
TYPE * operator-> () const
 operator TYPE * () const
TYPE * get () const
TYPE * adopt ()
TYPE * swap (TYPE *p)
void set (TYPE *p)

Detailed Description

template<class TYPE>
class AutoDelete< TYPE >

Examples:

simple-basic.cpp, and simple-context-item.cpp.


Constructor & Destructor Documentation

template<class TYPE>
AutoDelete< TYPE >::AutoDelete ( TYPE *  p) [inline]
template<class TYPE>
AutoDelete< TYPE >::~AutoDelete ( ) [inline]

Member Function Documentation

template<class TYPE>
TYPE* AutoDelete< TYPE >::adopt ( ) [inline]
template<class TYPE>
TYPE* AutoDelete< TYPE >::get ( ) const [inline]
template<class TYPE>
AutoDelete< TYPE >::operator TYPE * ( ) const [inline]
template<class TYPE>
TYPE& AutoDelete< TYPE >::operator* ( ) const [inline]
template<class TYPE>
TYPE* AutoDelete< TYPE >::operator-> ( ) const [inline]
template<class TYPE>
void AutoDelete< TYPE >::set ( TYPE *  p) [inline]
template<class TYPE>
TYPE* AutoDelete< TYPE >::swap ( TYPE *  p) [inline]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/StringPool_8hpp__incl.map0000644000151400015140000000003511653571064017523 00000000000000 XQilla-2.3.0/docs/simple-api/classExternalFunction.html0000644000151400015140000003531611653571063020036 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

#include <ExternalFunction.hpp>

List of all members.

Classes

class  Arguments

Public Member Functions

virtual ~ExternalFunction ()
const XMLCh * getURI () const
const XMLCh * getName () const
const XMLCh * getURINameHash () const
unsigned int getNumberOfArguments () const
virtual Result execute (const Arguments *args, DynamicContext *context) const
 Execute the (non-updating) function.
virtual PendingUpdateList executeUpdate (const Arguments *args, DynamicContext *context) const
 Execute the updating function.

Protected Member Functions

 ExternalFunction (const XMLCh *uri, const XMLCh *name, unsigned int numberOfArgs, XPath2MemoryManager *mm)

Protected Attributes

const XMLCh * uri_
const XMLCh * name_
const XMLCh * uriName_
unsigned int numArgs_

Constructor & Destructor Documentation

virtual ExternalFunction::~ExternalFunction ( ) [inline, virtual]
ExternalFunction::ExternalFunction ( const XMLCh *  uri,
const XMLCh *  name,
unsigned int  numberOfArgs,
XPath2MemoryManager mm 
) [protected]

Member Function Documentation

virtual Result ExternalFunction::execute ( const Arguments args,
DynamicContext context 
) const [virtual]

Execute the (non-updating) function.

virtual PendingUpdateList ExternalFunction::executeUpdate ( const Arguments args,
DynamicContext context 
) const [virtual]

Execute the updating function.

const XMLCh* ExternalFunction::getName ( ) const [inline]
unsigned int ExternalFunction::getNumberOfArguments ( ) const [inline]
const XMLCh* ExternalFunction::getURI ( ) const [inline]
const XMLCh* ExternalFunction::getURINameHash ( ) const [inline]

Member Data Documentation

const XMLCh* ExternalFunction::name_ [protected]
unsigned int ExternalFunction::numArgs_ [protected]
const XMLCh* ExternalFunction::uri_ [protected]
const XMLCh* ExternalFunction::uriName_ [protected]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classNode__inherit__graph.map0000644000151400015140000000041711653571064020440 00000000000000 XQilla-2.3.0/docs/simple-api/structBaseInteractiveDebugger_1_1BreakPoint.html0000644000151400015140000002047211653571063024116 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

BaseInteractiveDebugger::BreakPoint Struct Reference

#include <InteractiveDebugger.hpp>

List of all members.

Public Member Functions

 BreakPoint (const std::string &f, unsigned int l, unsigned int c, bool t)

Public Attributes

std::string file
unsigned int line
unsigned int column
bool temporary
bool disabled

Constructor & Destructor Documentation

BaseInteractiveDebugger::BreakPoint::BreakPoint ( const std::string &  f,
unsigned int  l,
unsigned int  c,
bool  t 
) [inline]

Member Data Documentation


The documentation for this struct was generated from the following file:
XQilla-2.3.0/docs/simple-api/inherit_graph_8.png0000644000151400015140000000343111653571064016404 00000000000000‰PNG  IHDR•(x”/³bKGDÿÿÿ ½§“ÎIDATxœí›oHSßÇÏšîJ6Í5k«•Íå`2¢'¬I˜ö¨‘+2*%r)Ze“2(Œ 'eÒðADÎLE!d(Ùî-¡Í­µ1¬ÍÜdÖ¶{¾]®»Ó–öËî¯ûztÏáó9ç}ÎûœsïîU„p°–Ë-€cIpþ±Î?vÃùÇn²è…áááÎÎÎå’‘ :®½½*Îñ/ >}úT¯×ÿqUñòåË‚‚zM3¨¿¿ÿOéáø5öïߟRÃÝÿØ ç»áüc7œì†óÝ,Þ¿‹/òx¼Ë—//]ÇÓëõô7éããã<o”h4j4‹‹‹R©4›Í³³³KW²€B @PQQáp8þwÝeÎ"ýƒöõõÉår«Õºp¤×ë‹Å?mp``à§MÑijj}ðàßï·X,6›Íd2ež¾^¼xŽãJ¥òÀ¿åÓM†ó3/šA˜N§“Çã Þ¿¿@¤Ûíþi›ƒÁ°zõê@ aV~~¾Ýn§ŠÃÃÃr¹<å‹àv»©b0ƒÁ¥·œÉüPèõztPQ,rÿõõõUVVîÚµK¥RQû†~èQ×Z­°víZT?55U__/‹×¯_o4©C¯µµU¥R566BÆ¢~øð¡F£Á0lóæÍwîÜA•B¡ðÆ_¾|AEN÷ñãG@"‘0›Ír¹|Íš5GŽ™ššš¯_¤Ðf³•––J$’æææoß¾âñ¸Éd***’H$&“)3‡Ÿ““#‰P1mJZÙÌÈ”ùùeèff¸ÿH’,..¾uë„ðìÙ³jµš¹”¨ë”õuèСªª*ǃãxYYYGGü±º].—@ èíí¥gE£ÑÜÜÜîîî@ `±X²²²¢Ñ(„ðÉ“'2™,77·ººº««Ëçó¡ö»ººÔj5ŽãA”——ÆùúE]ÔÔÔ¸\.»Ý^RR‚Ä\¹reß¾}~¿ÇñmÛ¶9s)t8‘H$‰LLLœ8q¢¡¡3e>ÙÌÈ%î¿Åøg·Û³²²>þ !|óæ € ˆLüûþý;ŸÏûö-*–””@Úétýúu¡Pè÷û©¬P(”}õêÕp8L’d$I&“(=‘HØíö .”••ñùü»wïBKKKQÀØØºNÛ/êÇqjìHŒJ¥¢Žñ¡¡¡­[·BÆ‘——766FM3e>ÙÌÈe𥲀%e<ç΃s­r¹\Lÿ>}úˆÅb¨ˆã8†aæ_2™¬¬¬D{‚ÊzþüymmíªU«vìØñøñca4½wï^"‘@$I¶··Ëd2!†ah1ÑIÛ/FU:N$Ã0úÐD"œ{ÿ›™™9}ú´V«¥ÚO›Â”6òOßÿ’ɤÕj½víZä§N²Z­ðÇ"M$€‰‰ fnQQŸÏ÷z½¨èñxd2=`ÅŠ½½½###===¨&‹‘$yÿþýP(tìØ±={ö„B!a]]A(†ÇãíÞ½õ+•J}>ªw8—.]Z¸_4}—Ë%•Jb±˜²*Ûíö”Q¬\¹²¾¾þÝ»wÔ™)iegÒø/C73“ý÷ìÙ3>ŸOôzýú5`tttrr`±X¾~ýºwï^@Û‘H×ÕÕUUUy½^‚ Ôjõùóç!ãéîæÍ›èÙB‹Å0 ˜œœìééÁ0 혣GnÙ²åÑ£GgddD«Õ¶´´@Íf³F£!‚ ˆŠŠŠãÇÏ×/¶sçN·ÛýêÕ+¥R‰Ä477×ÖÖú|>§ÓY^^~òäI¦Bô¬4==ŠÌ”ùd3#Sæga~Ãùi0jjjè5$I*ж¶6aggg~~¾B¡°Ùl¨©x<¾}ûö¼¼< …>\XX¸nݺÖÖV4ª”Ù!I²ººšRbµZ ENNŽJ¥²Ùl¨2‘Httth4@°iÓ¦¶¶6ÔÔìì¬Ñh”J¥"‘èàÁƒápx¾~ÑÄݾ}{ãÆb±¸©© µ0==ÝÐÐPPPPXXØØØ833ÃT˜L&…Bá‡P1mJZÙÌÈ”ùY¦>iØÃ»wÖÚ;oÖÚkq†!`p\c0H!0äcÆ| À8øÆÀpD"‘±Cè¯>ýôÓiÓ¦; €ù "gÏž1b„›››±ég.\¸ðÆo; €ù . ‘‘‘ÆŽ¢Ÿ¹pႱC˜ðü€q 0äcÆ| À8ÆWøÓ¹sçÖ¬Y£þþêÕ«W¯^}þüyǤ§¨¨¨={öx{{;èäcšÐeóçÏ·¶¶Ž‰‰!„¼øâ‹ÖÖÖ3gÎ$„ÐÜéôéÓï½÷ž››[@@ÀÒ¥KoܸÁ®˜””TQQñÎ;ïB:::Î;÷î»ïzzz¼úê«b±˜.6gÎ[[Û§Ÿ~šB3+ÛT‰jÊ”)l$„·ÞzËÇÇgøðáýë_Ùík| Ït™µµ5!„Ï竼¦ÊÊÊæÍ›ÇþiccC_äççïÝ»wË–-fff„ÚÚZ…BáååEÿÕÛÛ»²²’¾vqqÑs›Êœ !GùMúbذaìö5¾ †‡|  —988|ýõ×tèùÆÆÆššBHKKËÚµk?þøcškBœœœ¸\nii©¯¯/!¤¤¤„ý'•œJÛ6U¨¯E)**  „}áÂ…]ÚææÍ›ÇŒ£±ï"+::úƒ>hmm1cÆÂ… iïD•7{íÈ ‹8 Ã;áp8«V­ŠŒŒ4v †P\\¼hÑ¢óçÏwúf§¢¢¢<øüóÏ÷j€€þŠF‚| ``²±±‰‹‹ÓçM0äc“££ãû￯ϛ`,Ï …‚yô¨æáÃꜜ2‰¤¬°°úáÃê’’:33Wc‡ð'äcÐïI¥­TTåçWæçW>xP™Ÿ_YW×L13ã :Äßßåé§Gúù¹¾þúVc ð'äcПЖ®ÂÂjú"'§¬  J&ë „X[›¹ûú:Oš´xñä__gkåÕ_}µ“Ùº@#.׿Ûo³srN…Þ#Fx¹óùxä  %•¶Þ»W"‘”+ç`õõÍ„KK3ÀÃ××Y$úú: î!!*©ô"‡ãîn•–V°{÷•ÆÆ6 ~h¨§Pè-z …^#FxÛÚZ;F€~ ù_cc[~~ENN™DR®’zñxÜÀ@·ˆÁ¢Eξ¾ÎÆ9{{;¡}ÆäòÆyóüéücååõIyNNYFÆ£¼œ—W®P0îîö‡@àæ648ØËå;j€~ùTs³,/¯œímH›¿hêÅår†2l˜ó„ þ‹M¢©———£™ÏØQßÜÝÜÝ""ôO6—ÎÈ(ÊÈx´oßµ–™­­E@€›@à64,ÌgÔ(++sㆠ`š8 Ã;˜Z[ÛÙ± ϾhêÅáp† 2l˜³¯¯³@àâa˜Ô‹Ãáøû²°ð37—š™5öé¾ú ™ÌN.·²´¬æpäÚ–¹yóæÁƒiû˜nŠû÷+$’2‰¤,#£èö퇕• <×Çljm==z˜››]¯@…| z\®ÈË«HÊ”Û(.®íèPBhK—¯ïï½ ssÃõÑhi‘]¹rÿܹ»û÷ŸomåóùŠ€€z7·fƒ ´4÷€€ú!CZ ¼ß¢"»‡í a† iuskvrjãp4|7øûßÿ>iÒ¤nl_¹cFFú7(C>]£mj¯öv9!ÄÕÕ.4Ô“M½|}ýü\ìí­ 'Ã0™™Ebq–Xœ•UÌårž|2pêTAt´0$ÄÃðñtÊËëï[·.ž5kŒáw-•¶þüsfRRú… ÷x<®H$ŒÚÍ•*ý33‹Z[ÛÑ¿-äc Ã0Ö(õ6,SN½ìì,ýý]騆ló—Ñ9¬¯oNNÎ:{6ûêÕ¼ªªF//ÇéÓ‡‹DÂÉ“ƒ­­Mú+¾ó1VmmÓ©S‡¥¦¥88XEGHH˜0eJ0‡ÓWW*ýû­°ªªý`ð@>¿SVž~?.-­§S{ÙØXºÑ‘åé@ó¦z± &-íXœ’"a›ÂD"! ߨÑéËò1VqqíéÓ™ÿùÏ;wн¼Ÿy&,!a|XØPìý`PA>0UT4ä䔲zVTI¥-„++óà`w¶·¡)OíUQÑœ|'%EråJ^uu£··ÓÌ™£bb„áá~&Þ¦‘Iåc¬œœ²¤¤Û‰‰i……ÕG\ÜèyóÆûù¹,€††Ö»wKØ ý`€A>0À54´>xP©qj/>Ÿà¦ÜÛP pwww0vȺ(7…ݹSÄçóžx" ß5…idšùEOûÉ“éÇߪªj ?~öì±®®†îFˆþ0À 8ššÚî߯ø£·a¹Ê¬Êô +ÛÛ°MíU^.‹³RR$—/çÖÔ4ùø8=ýô¨˜áøñ~¦aÄ”ó1–\®¸r%ïСÔ3g2[ZÚÇóMH˜0gÎ8[[ c…T^^Ÿ‘Q$‘”Ñ1BпúäcýRK‹,7·\ãÔ^ì¬ÊžÚ«×ut(®^Í»tIB›ÂÌÌxS§†ˆDˆAo Ó¨_äc¬ÖÖö”IbbÚ™3™\.gêÔøøñ3gŽ2z1CÿFè_˜:¶ƒ–ò`ååRòø¬Ê4û<<= 9µW¯++«?{6;%Eò믹µµMÁÁî11#§NL˜àoiifìèúPÿÊÇXt@ˤ¤ôsçîÚØXÄÄãâÆLŸ>œÇã;4Bþ¨>$’r‰¤ìÖ­Âêjôo‚| À„È劢¢Zúl ;Ø;¾<í‚¥<«²ŸŸ‹…E?N½Xííòk×î_º$‹³$’2‹éÓ‡GDjS˜Fý4c••Õ'%¥ŸkÖ˜¹sÃ\—f*ý32µµu # ò1€>§<«r¿›Ú«×©4…ÙÚZDE º¦0L>ÆÊÉ)KLLKLL-/—  ããã'¸»Û;.]4öoäó¹ÞÞèß}ù@/+/—*÷6ÌÉ)+,¬jkë OíEçõØ©—²’’ºsçîŠÅY—/ç67ˆFD¦NLœ00º\öÜÀËÇ(v¬ü£GoÖÕ5‡‡ûÅÅ™7/ÜÉÉÆØ¡éý O!è>©´õÞ½:²¼ÊÔ^üOåÞ†¦?µW¯£MaÉÉYgÏfVÛÙYFF†Ò4lذAݦÑ@ÍÇX2YÇÅ‹9'OÞþé§ŒŽÅ´i!Ï=7:6vtÿš¼›Öz¥ ý G襱±-?¿ S{y{;ñù&1¾œáמ>)gݼYÐÒÒ>j”OD„@$1nœß ='úðùK*mýùç̤¤ô îYY™ÅÄŒŒ‹5¼?övy~~%Û¿ñæÍ‚šš&ôoý!PÕÜ,ËË+g{ÒìKej/:¯W¿›U¹ïÈdׯç³Maöö–Ó¦…FG˜6-ßDõ4xò1VmmÓ©S‡¥¦¥8:ZÇÆ†ÅÇŸ0ÁŸÃéÇ}ÿhÿFš¡å䔡#è†| µÖÖvvlCS{õëY•ûTQQí™3™bqVZZAk+šÂzdæc,Ú¦úŸÿܸs§ØÇÇiöìqóçO r3v\½ý@7äc0XÈ劼¼ÇfU~ø°º¸¸¶£CAQ~Ћ6ùû»ôëY•ûN[[Ç¥K9bqVJФ°°ÚÞÞjÚ´èè‘‘¡®®h ë¾Áœ±rrÊ’’n>|³  J ðˆ‹0a =mÈöo¤ZVV1ú7 rÈÇ`Ò=µ—½½eHÈÀŸÚ«×åæ–''ß¹tI’šú ­­cÔ(‘h„H$ ½y<4…õäcÊ22:”vüø­šš&:$ãܹãœmWïCÿF€AùôoÊS{ÑìK9õb;ÑÞ†H½ºª©©íܹ»))Úæà`Ms°I“‚\\à7cãB>¦N.W\¹’wèPê™3™--íO=?þÙgÃll,ŒZ_QéߘžþH&CÿF€ ùô'ÊzÑæ¯‚‚*:«²µµyPÐ Ú«×I$ebqšÂ ù˜´—lbbÚ™3™<W$ÆÇŒ ðÏsªôo¼s§¸¶ýäc`¢tLíeiiFG–ÿc° ÷¤^=ÔØØvþüŸMaŽŽÖÑÑ#D"áSO ÈNb&ù˜>ê뛓“³’’ÒÏ»kgg="!a”)ÁýzHÆ.AÿF€ùÚ‹Ž,¯’zñùÜ€7åÞ†ƒ|j¯^—‘ñ(%Eré’äÆüövyx¸_LŒ0"B€¦0ÃC>Ö%eeõIIé'OÞNM}àååøÌ3a ãÆ;.C“J[îÝ+e3´{÷JÑ¿ A>¥cj/³*c|ù¾ÐÐÐzáÂ=š†=|Xíîn/ #"“'bcìè/äcÝ“›[~âÄoGÞÊϯ¤C2Λ7ÞÏÏÅØqú7ô;ÈÇ ¯¨LíE³/•Y•1µ—Á0 “™Y”’"INÎúí·BBȤIAS§ ""#Gú k“)@>ÖC99e‰‰i‰‰©ååÒ°°¡ññãgÏ‹9Øþ4C+,¬&„ #€é@>½ £CqÿþcS{iœU™f_‡§§¦ö2 ©´õâÅ{bqÖ¥K9 îî"шˆÁ”)ÁNNh 3-ÈÇz…BÁ¤¥=8y2ýèÑ›õõ-ãÆù&$L˜3gœ­í€’±KпÀÔ €®‘ËEEµÉïóz©LíåæfâÉö6ôõuöós±··2vÔƒ‹JS‡ÃyòÉ@4…™>äc½K&ë¸x1çäÉÛ?ý”!—+¦N ‰?sæ(´Ã+Séߘ™YTW׌þ†„| ´bgUÖ8µ—¥¿¿+¦ö2RiËÅ‹9bqÖÅ‹9•• ÑÑ#""GG|.ýò±>"•¶þüsfRRú… ÷¬¬Ìcb„qqc¦OŽk4BÿFC>„<>«2ím(‘”•–ÖÓ©½ll,ÝèÈòì`H½Lm ‹³Äâ쬬b.÷÷¦°èhaHˆ‡±£ƒ®A>Ö×jk›NÊ8t(5-­ÀÝÝ>6vt\Ü艌—ISéßx÷nI{»ýzò1€Á¨¢¢!'§”ímXXX]PP%•¶B¬¬ÌƒƒÝ1µ—‰£S0=›}õj^UU£§§ãŒÃé\a66xH¦¿B>f0Åŵ§Ogþç?7îÜ)vŸ5kÌܹá®ÆŽ«Pîߘ‘ñ(;»¤©©M¥ã˜1Ã0Œ €þ p ­wïjžUÙ‚OŸõRlÃÝÝÝÁØ!ƒf›ÂD"¡H$ôõu6vtÐ ^NNYRÒíÇoT  ããã'¸»Û;®þýzùÀÀÑÔÔvÿ~Ž Ë•S/LíÕÕÕ5‹ÅYgÏf_¹’W]Ýèåå8}úp‘H8yr°µ5: (ÈÇŒ(#ãÑ¡CiÇߪ©i ÷‹‹ó—¿„c:¾n¨¯oÎÉ)c3´û÷+ärú7è€|  _ji‘åæjžU™Ú‹Îë…Ô«?¢v‹ÅÙ))’¬¬bûÄh ð\®¸r%ïСÔ3g2e2ù´i!Ï=7:6v4~ûè6•þYYÅÍÍ2ôoP†| ÀÔµµuÐg½0µ×€W^.‹³RR$—/çÖÔ4ùø8=ýô¨˜áøñ~ø-y0@>f:ÚÚ:.]ÊILL;s&ÓÊÊ,&fd\ܘ¨¨á|>†dì)åþèí ýa0C>`B4NíU\\ÛÑ¡ Ü®ØÞ†‡ŸŸ‹…R¯þ­£CqõjÞ¥K’”É;E|>oÚ´‘H!@SØ`ƒ|ÌI¥-?ÿ|'))ýܹ»ööV±±aññã'Lðçp-ôôo@>`ìÔ^t^/•Y•íí-CB<ÙÞ†_~à)/¯§Ýý5·¶¶ièÐ!11#Ñ6Øüío»ïÞ-eÿ,.®2ÄÆÊÊŒþÉçó~üñuOOG#E)+«OJJ?yòvjê§Ù³ÇÍŸ?1(ÈÍØq 4è߃ò1€>§qj/6õbĬÊ^{»üÚµûlS˜™oêT4… j_¼yóim÷á  ÷K—>2lDйÜÜò'~;zôV~~¥@à7:!a°a¨Â}‚í6‚þ0€!èeÊzÑæ¯‚‚*:«²µµyPû½ ÝióR¯¯¬¬þìÙì”IJФ®®98Ø=&fäÔ©‚ ü--ÍŒSaaõSO}¡ñFÌçó>úèÙ·ßžnø¨@O99e‰‰i‰‰©•• tHƹsÇ9;Û;®ýaàA>Ð}Rië½{š§ö²´4£ÏzaVåÁ‰m ‹³$’2[[‹¨¨á4…Šgžù2#£HýVÌápRS?óòBgESGGC=y2ýèÑ›õõ-O=?þÙgÃ03»a # ÈÇôÒØØ–Ÿ_AG–WI½x)jo—8pýË/>~|Yoµ0È劼¼ ‰¤Ly° vj/åaåió—¿¿ fUTärÅ–-¿lÞ|†a‡3{öØ-[©,#“u\¿žÏ6…ÙÙYFF†Ò4 £«A·¦E¡`޽ùÅI …bß¾¥‘‘¡ÝØˆŽ©½\]íBC=ÙÔË××ÙÏÏÅÞÞªŽúû÷+Þ|óÿîÝ+eÛ(ìí-³²¾ sÕž9“)g¥¥´¶¶å!‰FŒ燧¡çZGŽü”^ !ç›o^œ7o¼q£‚¾“S–”tûðá›UaaCããÇO™,mb;¬Ò./¾8iݺyøoååõIyNNYOú7^»vÿ/ÙBár¹^^_|1O$ê ÿA>¦B.WìßýË/ÏTV6* BŸÏ[½zök¯EèXKyj/š})§^vv–þþ®˜Ú t`fÇŽ”5kN0 éè+ÿÓæÍó‹ŠjÏŸ¿›™YdfÆ›4)(**túôá˜zÙk¯í<{6‹6×[Xð³²¾°¶ÆÓ,–\®øõ×ÜcÇnýôSFK‹ŒaˆroUBŸÏ ºcÇkîîöÆ (v4¯.õoܾýâš5'é=…Ã!„pFŽôZ·.><ÜÏ(G&ùÃ0IIéëןzø°Z¡ „ü^&ÍÌx/½ôÔÚµa—TVžÎª\ZZO§ö²±± t£#ËÓæ‘zA§Ê˥˖í½|9—í*Æ27繺Ú;;ÛŠD#D"¡Pè¡Ï ï$%¥¿ùæ ÃçófÎõï/6vD`mmÑÑ›<¨P¿™™ñìí­víúkx¸¯Qb::ÅÅöo¼}ûae¥†þß}wîðá[rùŸ¿ññx\…‚yöÙ°Õ«g{{;ïÀ!#‹³6nüéÞ½R†ÑPÇŒ–Ÿ_UPP™Ÿ_Y^.%„p¹//G×€WW—À@·¡C‡ kt‰XœµlÙÞ¦&™J³K(ô‹—8*œÚÚ:„Â47Ë8²sçëO?=ÒØ!<|X=i’æ Á !ôq²õëç-\8ÉÀž ¦°°êÎâ¬,ú_IYY=!dÈÛššFõåù|.Ç}ç1Ÿ€…| ŒæêÕûkÖœHOÈápÔ¤ìì,ml,ؼ‹þ? À#m@O47Ë>üð?‡ßärµ–=B‡ÃÉÈøÜÙÙÖ±Á õÎ;{޽ieež•õ¾¨ ß|svóæ3Ú~">NöäºuñøÍ±_¨®nLO´xñ÷*}P•ñxÜ!Cl>ý4.>~¼¶Y`PyìŠßÒÒR[[k¬P`ð((¨ù曋—.Ýçr Ã? 47ËîÜYÛ“›J5¨ÈË«üðÃ……5„É!„Ã!II7D¢.(c:¬¬¬œœzÔ15È`¢¢ü¹)…TWW;–AÁjÇÁƒ×t$c„z{Ü»÷ZVÖ£M›æ89¡~ïëõ’ÀçËt$c„¹\QUÕðÞ{ûvïþuåÊ.=Ù;ôG*¥î±|¬¡¡A"‘<$\~ýõÑþýÙµµ­„px<.ÃÈu´ÑÊ劢¢×n凜ݸQ²kWF]]›Êû‡ÇûýGJ†aèXg CΜI÷õíǹººöð{jÁ88(ììÌGŒ°Å 7 £×Žòò¦òr©¥¥^m¡99¯¿¾û½÷&xz¢Å¾—õzIHIyÄáhí€Æå.—+—3„0iiß~ûÀ+¯„çÑ“ ßQ)u®‘‘‘† ŸÈHò駤¡¡õîÝ:ZÑ­[<¨d†ÏçÂÐÆþÀ¹¿²'ùØ;ìá``ˆŒ$+W¾H‘J[êë[Zëë[T^·J¥-55µµÍ|¾Mÿ-W.WT5R˜ìí­0阚¥K#‘ŒôwÙÙ% qw·vWξ¼¼ñ´h„| L‚³³mdd(;õs}}sff‘X|S"©jmm7nl†€<=--ÍŒôÈÇÀjWx:ÞIDAT98XO™"prj'„…˜Òú‡ž?dƒM?~N _C>`ÈÇŒ£ó±¼¼<:ŒŒú >|øê«¯2 ³hÑ"[[ÓdCDZÐCøí·ßø|þ¡C‡Ø÷?nnnž™™IÿljjZ¹råèÑ£mmm'Nœ¸~ýúŽŽÒ­óÆÑ¤·Ž´S'//Ï`»3®A^ªÉã…ÍÊÊjòäÉ·oßÖ±M9ê’’’_|ÑÏÏÏÖÖv„ G5JÏ0jž5HŸ%{Ž-êÔš5k8Ά Øw8 ñ’{ûömå?ýüü^~ùåÊÊÊÞ ¬Û‡ßÔÔ´bÅŠÑ£GÛÙÙM˜0aݺuô^£¢'Á÷ü£AÕ =«†ˆÏ4ö«Û`+3=¡ç'¨­4êù]·OuõªÕÕ/$†,N}˜9::~øá‡]]ëØ±csæÌ)))Ù»wovvv_Ö×è!Œ;ö“O>Y¶lY]]!¤¾¾þí·ß^µjÕ¨Q£! ãÇ¿~ýú† nݺõÑGíÙ³'&&F.—wï¼]¹r¥ôq½{Pùùù..˜?~°—júš-lÁÁÁóçÏ×6ë%!ÄŽºººzìØ±ÖÖÖ¼qãÆ /¼°`Á‚Ÿþ¹ç[F½èªžÔ vÝ>=íÊEa˜ 6ìàÁƒì³gϦåÿÊ•+„ö’KG¢µ£¨¨è‡~J¥ãÆ£·€îQ>Òî:z¯IMMݸqãÍ›7?þøã½{÷ŠD"¹\®¾p·ƒï^l ¢'µ£/â1ÍýBoÑñ êsåÑç»®téªe _H´b””——Ÿ?žém¹¹¹tGì bcc›››õYÒ¸tDHa˜¶¶¶‘#G.Y²„a˜7ß|3<<\&“Ñe–/_ÑÑÑÁ®ÕØØèçç·uëVõ]tz6!¹¹¹=>&]tÄÐw{¿sçÎ;wz¸”jýéSªU>îòòrBHyyy7¶i0ûÛßhÒÈZ¾|ytttÏ·ÜÕ£Ó¸ÜÕÕuÆ »wïö÷÷wppø¯ÿú/º@{{ûŠ+ÜÝÝÝÜÜV¬XÑÞÞ>iÒ¤¯¿þšRSSÃår—/_N‘ËåNNN§N"„ÔÕÕ½òÊ+...>>>Ë—/ommU‰„Mh—/_>f̘ªª*åC „˜››ïÚµkçÎëׯÿá‡víÚeföûd{öìùì³Ïx¼?§š±±±Y¹råÞ½{»qÞºôaÑí?~<$$ÄÍÍmÙ²emmmopp0û‰¨KNN rrrZ¿~=û‘©ìBÛ~MJµþ¥Z…™™™¹¹¹ƒƒƒ¶”Zã*¨/@OÅÞ½{‡>dÈÿþïÿ&„ttt¬Zµjذa®®®/¿ü2û{˜ÆÕ>üÞ{ï)‡½jÕª;vÐ×ÚÎ ýWå×êatztr¹|Ó¦MÀÎÎnòäÉׯ_×XrPƒ(Ý5ˆ]·ÓÓNô¨>'Ož ³´´ ؽ{·Ê¾èŸ˜6mZttthh¨r™ž8Λo¾I«žÆBÕéu@ý¢A· ^h‰¦òI´ÜkV¬X±gÏu_cðO²òê»ví¢±Í™3çý÷ß§«´µµ±WžA[5ˆ¡jѣ̫oAÛ©ëtS]Ú¯ž‡Óí`T¨”Ó¡±$Î*×… ô¿Ù©_Ö´Ý+Õ¯«Dé"£íÊÃÒó»nŸšºN¯Z*÷}¶i¸Krr¦g~ÿòË//^¼¸¬¬ÌÝÝýúõë ÃlÛ¶ÍÍÍíÈ‘#%%%§Nòññ!„¨ÿÀþJ¥æææ¯½öZQQÑž={! Ãìܹs÷îÝÌã),}ýÌ3Ïœ;w®´´T㊄ H¥Òï¿ÿžòüóÏK¥ÒmÛ¶ÑBÃ0ÌÆçÍ›÷ðáÃŒŒŒqãÆ}ôÑGŸþyll,Ã0Ç···7nÃ0iii–––MMM Ã,\¸pÆŒ÷ïßÏÈÈ9räêÕ«•#¡ÏÌ( ök+–=ÖG}DY»v-û­•••*'öêÕ«C† éÆy#„ܾ}»áqÚ>,ºµ˜˜‰DríÚµ   Õ«Wëy¼Ë!ä¹çž“J¥‡¦'\ã.´íWCþj…R­g©V.lÅÅÅo¿ý6}4ŽRIåç(m ÐÕ ;¯­­Ý¾};!¤ººzÓ¦MB¡0###33ó‰'žX¾|¹¶íÓêVSS£í£×vN”?)öØUÂèôè¾úê+åRäåå¥^PƒºZƒ:=íLgÕ§±±ÑÂÂbëÖ­¥¥¥;vìàóùÌãE]¡PøûûoÛ¶a˜üãB¡På;mc&55ÕÑÑ‘ÑTý=®ÚŠ¢z¡e4•Om÷šË—/»»»«T=Ák<Éo´{§B¡`æøñã^^^íííW7nÕ`\í`:+ó· íÔuz÷Ñ¿OHï£L½Ìtúé·$0U®Õ«Wëy³ÓxYÓv¯ÔñÍDŸ7õù®ÛׇÆè¼äêØ;ýWmÛTfÈ»swò±ÚÚZŸ°°0vB¡p×®]ì?þø£î+K[[ÛÝ»wårùÅ‹Ù:oÞ<úµI½(dddèX‘rëÖ-†ad2™Êkº@hhhii)Ý X,3fLZZš­­­L&{ÿý÷?ùä33³ÚÚÚM›6=ûì³t]Çž¬#GŽ)GB_¯\¹’<Þ…=J¡PÌž=›Çã-Z´Hùj¼L\¹rÅÅÅ¥çh¢íÃR> †a<¤çñj,„ .0 CHÈÍÍÕ¸ ojÜ ËWI”jF¿R­RÌlmm³³³Ù%ÕCR)9Ú` †út§ôCd?$$äÈ‘#t±ììlöµúê555„ÚÚZŸ»Žs¢üI±Ç®F§G'ÔK‘J ¨A]­Ažv¦³êSSScff¶yóæÚÚZ…BÑÐÐ —˙Njúµk×ø|>½Pß¼y“’™™©|Ƚ•é¸h\Kc¡e4•O¿ý±÷¶Déþf£»æ²±555ÙØØÜ¸qƒa˜^xáã?Ö¶ºq«3àjÓY™×QÀÔO]§wý÷«ñ„ôn0ÊÔËL§ŸŽqKÓYåêÒÍNý²¦mußLôySŸïº}}hLw¯ZômÛTfÈ»swÆóptt\²dIVVÖ[o½EßÉÏÏ3f »@XX˜î-˜››K$’™3g†‡‡ïÚµ‹¾ÙØØØÞÞîää¤q•ÐÐPm+Rvvv„ÚHªüš*((ðôô¤c°ˆD¢Œ;ÖÆÆ&55õÒ¥K³fÍ;vì¥K—Ο?K)//—Ëåtõ   ¢¢"åH¨ÔÔÔÈÈÈuëÖi;„½{÷^¸páܹs‰‰‰ÇgO ‡‡‡ú¨t·oßVÞ¸žçÒxU"š>,Šö?¤‡STT¤çñjCÚär+N*»Ðñ¦)@©f7Ûi©f [SSÓÒ¥K_{í5!©²¶Ø´-@Ë{ø………lY>|øÜ¹sµ­îäääîî®òünjjê„ š››uœŠy<U £Ó£{ôè‘>¥5ˆt«QÚÊŒŽêãäätþüùk×®ùøøL›6-%%…ËåªìëÀ...'<<œÒ.‹¹¹¹léb©ªN¯*tZ•ò©ã^Cˆè¼Â+ßiÍ¥¬­­gÏž˜˜ØÔÔtòäIvô¶Á\5ˆk‡Ž2¯£€i],_ºt‰~suwwçñxùùùtõû÷ï{{{+GBÝiOèÚÚZ‡súôi:!äÖ­[‹-*..¦{ÑÖ_HãŠÌãM–_/[¶,>>¾   ==ý‰'žxçw†9tè­­­H$bF,ÛÚÚ*?!ðâ‹/Θ1#???33S(~öÙgÚ¢Zµj•@ hiiQ>…BñÜsÏM›66€Êd²°°° Э¯¯ ‰ŠŠ:sæLNNÎ'Ÿ|Bqsskkkëêy£‡©>Þ½¶‹n-***77÷ÆÁÁÁt,}Ž—},mûöíuuuÚN¸Æ]hÛ¯ëE€R­•ÆRͨu(,,$„H¥Rú§zH*}ºº±€ÆÃ_µjUXXXfffffæäÉ“ßxã «WTT8;;/\¸ðòåËééé«W¯&„$%%i;'t“;vÔ××Ó_ì´} *õB}ïÿüç?•KQ@@ÝjPOjP§§é¬ú´´´XZZ&&&VVVþûßÿ¶´´T)êçÏŸçñxʇ¦¥¥±uS%Q|ùÂ… ³gÏöññ¡´ÆBÕéu@ùH•V/´Ú™Þk¦M›vúôi‰DräÈ¡P8yòäÖÖV•øu¯ñ$k»tÐa<‚ƒƒ•ûã™ZÕ`\í`:+ó: ˜ú©Ó½©.íWã9éÅ`˜ÎÊŒîO‡1vI`:«\úßì4^Ö4®®ü ê¸4©\yØú×íÓCczvÕÒ¶McÝ»œýë_ÿ=z4ËòèÑ£žžž5552™ìóÏ?÷÷÷·µµ4iÒ¾}ût_Y†ùꫯ† 2tèÐo¿ývÁ‚NNNôJÛ…^}E777§LåµT*}õÕWœœœ—,YBÇ6¨««ãóùô鿦&ssó•+W²;ª©©y饗œ===ÿþ÷¿·´´h‹ª¥¥E |òÉ'ʇ°k×. å‡pnܸÁåréŸ|ðÁÈ‘#---ÿñL›6mþüù]:oìá«ÓöaÑ­}ÿý÷¾¾¾...ï¾û.-‚º·½½}Ê”)¶¶¶:N2óxyUÙ…¶ýê`°«$JµzTK5£v‡“Ëåööö< ª‡¤r¤ÝX@ãá·¶¶._¾ÜËËËÁÁaÁ‚ìãaWg¦   >>ÞËËËÎÎnâĉìPã9afíÚµŽŽŽ´ë…¶OA¥^¨ï½££cÓ¦MAAA666“&M¢¿Ïuúá¢é®AžvFêsðàÁÀÀ@ssóÐÐÐãÇËd2å}-]º4&&Fù E``à‡~¨Kù 0 XQilla Simple API Documentation SourceForge.net Logo

Numeric Member List

This is the complete list of members for Numeric, including all inherited members.
_ref_countReferenceCounted [protected]
abs(const DynamicContext *context) const =0Numeric [pure virtual]
acos(const DynamicContext *context) const =0Numeric [pure virtual]
add(const Numeric::Ptr &other, const DynamicContext *context) const =0Numeric [pure virtual]
ANY_SIMPLE_TYPE enum valueAnyAtomicType
ANY_URI enum valueAnyAtomicType
asDecimalString(const MAPM &value, int significantDigits, const StaticContext *context)Numeric [static]
asDecimalString(int significantDigits, const StaticContext *context) const Numeric [protected]
asDouble() const Numeric [virtual]
asDoubleString(State state, const MAPM &value, int significantDigits, const StaticContext *context)Numeric [static]
asDoubleString(int significantDigits, const StaticContext *context) const Numeric [protected]
asin(const DynamicContext *context) const =0Numeric [pure virtual]
asInt() const Numeric [virtual]
asMAPM() const =0Numeric [pure virtual]
asString(const DynamicContext *context) const =0Numeric [pure virtual]
atan(const DynamicContext *context) const =0Numeric [pure virtual]
AtomicObjectType enum nameAnyAtomicType
BASE_64_BINARY enum valueAnyAtomicType
BOOLEAN enum valueAnyAtomicType
castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const Numeric [protected, virtual]
castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
ceiling(const DynamicContext *context) const =0Numeric [pure virtual]
checkDoubleLimits(Numeric::State &state, MAPM &value)Numeric [static]
checkFloatLimits(Numeric::State &state, MAPM &value)Numeric [static]
compare(const Numeric::Ptr &other, const DynamicContext *context) const Numeric [virtual]
cos(const DynamicContext *context) const =0Numeric [pure virtual]
DATE enum valueAnyAtomicType
DATE_TIME enum valueAnyAtomicType
DAY_TIME_DURATION enum valueAnyAtomicType
DECIMAL enum valueAnyAtomicType
decrementRefCount() const ReferenceCounted [inline, virtual]
divide(const Numeric::Ptr &other, const DynamicContext *context) const =0Numeric [pure virtual]
DOUBLE enum valueAnyAtomicType
DURATION enum valueAnyAtomicType
equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const Numeric [virtual]
exp(const DynamicContext *context) const =0Numeric [pure virtual]
fgDT_ANYATOMICTYPEAnyAtomicType [static]
FLOAT enum valueAnyAtomicType
floor(const DynamicContext *context) const =0Numeric [pure virtual]
G_DAY enum valueAnyAtomicType
G_MONTH enum valueAnyAtomicType
G_MONTH_DAY enum valueAnyAtomicType
G_YEAR enum valueAnyAtomicType
G_YEAR_MONTH enum valueAnyAtomicType
generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicType [virtual]
getInterface(const XMLCh *name) const =0Item [pure virtual]
getPrimitiveTypeIndex() const =0Numeric [pure virtual]
getPrimitiveTypeName() const =0Numeric [pure virtual]
getPrimitiveTypeURI() const AnyAtomicType [virtual]
getRefCount() const ReferenceCounted [inline]
getState() const =0Numeric [pure virtual]
getTypeName() const =0Numeric [pure virtual]
getTypeURI() const =0Numeric [pure virtual]
greaterThan(const Numeric::Ptr &other, const DynamicContext *context) const Numeric [virtual]
gXQillaItem [static]
HEX_BINARY enum valueAnyAtomicType
incrementRefCount() const ReferenceCounted [inline]
INF enum valueNumeric
INF_stringNumeric [static]
invert(const DynamicContext *context) const =0Numeric [pure virtual]
isAtomicValue() const AnyAtomicType [virtual]
isDateOrTimeTypeValue() const AnyAtomicType [virtual]
isFunction() const AnyAtomicType [virtual]
isInfinite() const =0Numeric [pure virtual]
isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicType [virtual]
isInteger() const Numeric [virtual]
isNaN() const =0Numeric [pure virtual]
isNegative() const =0Numeric [pure virtual]
isNode() const AnyAtomicType [virtual]
isNumericValue() const Numeric [inline, virtual]
isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
isPositive() const =0Numeric [pure virtual]
isZero() const =0Numeric [pure virtual]
Item()Item [inline, protected]
lessThan(const Numeric::Ptr &other, const DynamicContext *context) const Numeric [virtual]
log(const DynamicContext *context) const =0Numeric [pure virtual]
mod(const Numeric::Ptr &other, const DynamicContext *context) const =0Numeric [pure virtual]
multiply(const Numeric::Ptr &other, const DynamicContext *context) const =0Numeric [pure virtual]
NaN enum valueNumeric
NaN_stringNumeric [static]
NAN_stringNumeric [static]
NEG_INF enum valueNumeric
NEG_NUM enum valueNumeric
NegINF_stringNumeric [static]
NegZero_stringNumeric [static]
NOTATION enum valueAnyAtomicType
NUM enum valueNumeric
NumAtomicObjectTypes enum valueAnyAtomicType
PosZero_stringNumeric [static]
power(const Numeric::Ptr &other, const DynamicContext *context) const =0Numeric [pure virtual]
promoteTypeIfApplicable(AnyAtomicType::AtomicObjectType typeIndex, const DynamicContext *context) const =0Numeric [pure virtual]
Ptr typedefNumeric
QNAME enum valueAnyAtomicType
ReferenceCounted()ReferenceCounted [inline]
round(const DynamicContext *context) const =0Numeric [pure virtual]
roundHalfToEven(const Numeric::Ptr &precision, const DynamicContext *context) const =0Numeric [pure virtual]
sin(const DynamicContext *context) const =0Numeric [pure virtual]
sqrt(const DynamicContext *context) const =0Numeric [pure virtual]
State enum nameNumeric
STRING enum valueAnyAtomicType
subtract(const Numeric::Ptr &other, const DynamicContext *context) const =0Numeric [pure virtual]
tan(const DynamicContext *context) const =0Numeric [pure virtual]
TIME enum valueAnyAtomicType
typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicType [virtual]
UNTYPED_ATOMIC enum valueAnyAtomicType
YEAR_MONTH_DURATION enum valueAnyAtomicType
~ReferenceCounted()ReferenceCounted [inline, virtual]
XQilla-2.3.0/docs/simple-api/classRefCountPointer__inherit__graph.png0000644000151400015140000001105011653571064022643 00000000000000‰PNG  IHDR؈ ̲MbKGDÿÿÿ ½§“ÝIDATxœíyTS×öÇw€Œ‘à Šà€sq~UꪶÖV[”ˆT(²À¡V¥Ö`íRK©bêø Š®"Ö«íÓ%ð´ä)U—ÀrdPID Á€“ûûã¾—ÆŒ9ÐýùëÞs÷ÝgŸ{¿œsîåÜlEQ€ ŽÆÉÑ  !"B(D„\Z»‚iÓ¦µvHݪþ­ýÔÌ`0 äååÕªµ ­Ç³gÏŠ‹‹[['­Þ#€@ ˜_( ‚úúz6›m|.—Ë]´hQÓ=Û ‹Åb±X T*€²AâÑÙÙÙÅÅ¥K—.ô®F£INN INNÖh4K—.€Ù³gÓ¿ÿþûœ9sô=DEE­^½šÞ®««Û¼yó| 8 R©***tƒ¬þö”)Srrr¢¢¢fÍšõÓO?€AE899@cc£ÕZ¬z6n#}úÍ›7ÃÂÂnß¾mPuMM ýר,l;«m Eˆ J¥R©TÊd²ÔÔÔiÓ¦1™LúÐÉ“'¥RiJJÊöíÛoÞ¼yäÈ‘ýû÷@ff&ÔÕÕUWW÷êÕKß[çÎuýåîÝ»«ªª’““·lÙòÇ?~ÜByyyûöí[¼xqJJJmm­~EúqÖ××K$’]»v 0 k×®M©Å²gã6ÒåkÖ¬éׯŸÎÏ;w6oÞ]WW×Ìk >œ7o^JJŠT*mî¹­ )BŒ1cÆŒ3BCC³²²ÂÂÂt‡ÎŸ?çåå°xñâ‚‚ýéÿš›Mj4š‹/._¾¼GÑÑÑ–ÿyÿá‡r8œwÞyLtœï½÷^TT”B¡X¿~}k±ìÙ\-ZìêêªR©²²²>ùä“;v 2äÇäóùb’‘#G:tˆÅbÅÅÅ­]»öúõëä¬Ï'eŽ˜žžîëë ¯^½:|øðÖ­[÷íÛGzúô©þÈ«²iºvíêîî^^^>xð`]á;wvíÚµ{÷n…B¡Õj}||èr__ߪª*ýÓ î„‡‡¸¸˜½,º8õ‘Ëå–k±êÙ\éžþÆ7n;vl\\Ü€ÌýÕ5>Ÿ¿`Á‚ˆˆˆ¼¼¼´´´Ý»woß¾„%)¤Q‹Åš>}ú¯¿þJQ}Ź\îÎ;éÛOħŒ?^$%&&êîPvv¶F£a±XîîîNNNR©´wïÞ ‘HhA@cc£³³óóçÏõ]Ùv-ÔÒDÏæÚH —ÇãùûûúúúÒ“{ËåeeeUUUƒ ¢q)C³>]ºt©¯¯§Ÿþ`âĉ¬¬¬,))Y½zõÏ?ÿl`óçŸnÚ´©¨¨¨¤¤ä‡~ÈÌÌŒ—)S¦ìÙ³G*•–––¦¦¦N:•Ãá@VVV}}½þüϺHÌa²–¦´´‰m ܹsç7ß|óøñãÈÈÈmÛ¶Ý»w¯)þ  (êúõëëׯ_ºt)EQ{÷î]¿~=—˵ÁU‹C¢===Ùl¶n"Ãf³.\¸råÊÀÀÀÅ‹Øóx¼ï¿ÿ^­V'$$,_¾üêÕ«IIIãÆ£ÆÅÅyxx,Y²$>>~ôèÑóçÏçr¹111û÷ï_¸páôéÓ-DÒ½{÷¡C‡<’›Ä¸Ëöž­¶úôéóù矧§§ûûû'&&VVVZÊ€ÜÜÜ#GŽLž<ùøñãÑÑÑ6Ì2[¶X›€ë[Š¢´Z­³³s³ÎÒh4¦¿æ ×#¶¶NHì«0Œæª,>„9"B(D„Pˆ "@!"D€BDˆ…ˆ Ñ^\+]Ÿ9:ŠvO[üg% ÀÝݽUkq Q£ŸÀtwt ­…\./))i÷?9"Z» Ç2;ø>EA®ìMGÒŠŒ9²µ«hõ±ƒS#†sÃfˆ7ÔÑÑ´cpŽhåÀ`‚e8:”ö Ñ((9 ”´jxxÇÛA!ÚAU>(ÿ÷’RÏÿãÐhÚ7(D;(?NÿýÔœ˜Pféû@Ä2ø°b+”Nz‚ºæ¯&B«€Aîš?’ÁÑVžþû5€ºž^tP4í¢­”ÿø×¸LÃ`Bù1EÓîÁ¡Ù&•pŠ£¯û\Ø0ç98wvDLíìm¢â_ i0Q®Q‚ä\›GÓ@!ÚDY:0L}»Äp†Òô6¦#€Bl>jHÎ¥1qˆÒ€ä¨kÛ<¦v ±ù<> Z•Ù£Z<9݆Ñtða¥ù¼’úÅ_»×—Œúç_%L.°ú…v¾}m>,þk:séÀ pT8š"@!"D€BDˆ…ˆ !|j¶qŽŽ #€ï"À¡!"B(D„Pˆ ;& ãÁƒŽŽ¢ Û1%%%Æ)®l°!¢Ý<ÿ£>­×jµ2™Ì~@!ÚÍpg§AYUUU}}½~‰F£IHHèÕ«—§§çÇ\SóßOQkjj,XàááѳgO¡PØÐÐ ãØ±cìÖ­ÛÖ­[iË_~ùeذa®®®G:»V÷î–~ÏÀF­VÇÇÇ{{{{yyÅÇÇ«ÕjººÃ‡8ÐÓÓsóæÍGíÓ§—Ë¥s¯ZnW‹A!v’+ rº½‚‚‚¨¨(OOO‰D¢oµmÛ¶Áƒ‹ÅâÛ·o;V(ÒåóçÏë­·>|(‹‡ òõ×_S¡¡¡r¹üàÁƒ “ÉêêêX,Vrr²T*MMMuqq©««»ÿ¾¹;÷ïß§(ÊÀfË–-sæÌyôè‘X,1bÄš5khãððp…BqèÐ!˜;w®B¡HII€çÏŸë»ÍÎΦLÿbb ‚B´›\•+P*•iiicÆŒ ¦SƒX 0 33“Þ...¦·U*•³³saa!]ž™™Ù·o_Š¢àÒ¥K´-©êêj&“ùÝwßÑ)ykkkmbPPT*¥·³³³ßxã ÚøæÍ›ºêô·i'úTTT$$$ôìÙsæÌ™.\hll´ýÒéÜ"^þÖä ²wþŸ——WTTÔµk×´Z­I+WW×Û·o>~ü”J%½+‹]]])Š€»wïÒ…:5äåå…††véÒeâĉçΣŒD¦9!ºººê‡\.WßØÂ¶*•*##c„ ýû÷ô葵kdœ#¶ž<Ö Aƒòóó¯\¹¢›üàããSVVFoߺu+)) ¼½½KJJèò‡ê²’;9½vk”J¥V«=qâDuuuLLÌÌ™3óV7¶ärùÕ«Wmp•••EEEOž<1bDçÎ-ðƒ(Ä`x_Þ¥K—233ïÞ½Û¿ÿØØØ7nØDFF®]»¶°°°°°pÙ²eåååÀd2ÃÂÂV¬XQZZZXX¸nÝ:sùu ÆÛo¿}êÔ)…B¡R©˜L&›Í¦ÕÕÕYPg3{öì/¿ü²¼¼\,OŸ>}ß¾}Íj©V«ÍÊÊ 7nEQW®\9~üx˼²¿Sý»óúÊ\.ß±cG```YY™¾UCCƒP(ôññár¹ááár¹œ.¯®®ŽŒŒäóù=zôX¹r%=Lƒ©ñQ$vêÔ)((èÌ™3E©Õê &p8ã tgØ(Šèèhwww>Ÿ¿hÑ¢—/_š«Ž254Ÿ}Ú†0š'—Ë}ÿý÷KKKÍ?xðÀøQ®Ã@~úf{Äüü|©T*•JÅbq¿~ýÂÂÂ,| (‘HŽ;V\\LïÊd²àà`6›-‰ æÍ›~áÂÛ"ÑÇ871§D"¹|ù²V«ˆˆ0w.Çûâ‹/šî™@Úwúfý¤+"‘š^ÏSYY •••æì ÒÁ}úé§´pu…©S§6)/ŒE *2ˆóÉ“'ðâÅ û=“‰ ©ùˆD¢×Jôwlbuuu§Nè]•J% ½¼¼<==…B¡J¥âóùàííMtïÞ=??_ßammmyy9½-—Ë£¢¢ø|¾¯¯ïªU«”J¥þµÓ߀ôôô   ww÷-[¶PeP‘AœR©d2™ÕZ¬z6n#}zNNŽŸŸ_nn®Á{öìãI‡Z­þꫯüüü<<<"##u‰¨Œ3EQgÏž:t(‹ÅêÓ§OZZšq&o™Õ†ÐÆ©©©AAAß~ûmZZš¿¿¿››Ûºu묶«‰´˜oݺU[[[[[[QQ±téÒèèhÝQãŒÀú÷X.—@uuµ9çÆù‹-Ñ ©±qHÇ©P(|8¦on6úÝ£mOÍnnn¥¥¥ô®qF`ã!£¬¬,44ÔÇǧk×®cÆŒ9{ö¬îÉüÅ7näñxgΜ½Ô`Ô0ÈM æ‡ãZ †fËž›ÒFLßl0š_[¡‘‘aùÕ4b˜¾Ùƒ!‰æÎ«+éh—†Lœœœl›ÎN &ï€Wi "@!"D€BDˆ…ˆ !"B(D„L¼Ðž6mZÛÇüÍyMˆ~~~øÃ7H üüüôK0B8GDˆ…ˆ !"BÿæÁE¨ƒÚýÔIEND®B`‚XQilla-2.3.0/docs/simple-api/StaticContext_8hpp__dep__incl.map0000644000151400015140000000040511653571064021207 00000000000000 XQilla-2.3.0/docs/simple-api/ATDecimalOrDerived_8hpp__incl.md50000644000151400015140000000004011653571063020715 00000000000000dee0ac09c75dc38359d3111f03ffbc53XQilla-2.3.0/docs/simple-api/classATFloatOrDerived__inherit__graph.png0000644000151400015140000001716011653571064022663 00000000000000‰PNG  IHDR]±uyibKGDÿÿÿ ½§“%IDATxœí}TWÞ€oH¢`ÁðˆE@¡¸*¶-ŠkÁ®u[=Š `µ²- .Õ×.¨ÝV±G<Dì±µ+Š‚ëÇ* Q©[Ûá¸]EAÅU0B&“ÌûÇ­i bîô>‡?îܹ¿™‡¹3™Iæ2H’˜•¥Àö„Ø`OhÀÒ]¸|ùrRR’¥BÁè´}ûvíâ žZZZ ÃÂÂÌæJJJtsX} åää˜+ŒaÂÃÃõrðù °'4ÀžÐ{Bì LñÄÐÁÆÆ&00°¢¢b€ò$I~ðÁ¶¶¶¦I MMM‘‘‘&L°µµ9sæ¹sç,FMM ƒÁxÙZ&OW¯^•Éd2™L,{{{¯X±b€ûîMMM§Nªªª2­/Jhkkó÷÷3fLvvviiéÊ•+#""~üñÇ¡·,•J¹\îÐÛŸŸŒÁÙÙÙÅÅàââ²gÏ>ŸßÚÚÊãñ îé鸻»›åÐILLœ?þ‘#Gàâk¯½ÖÜܼwïÞ?ýéOClY£Ñ´µµ 9ÀA àüÄf³GÅápà¢J¥JHHàóù</!!A¥RÍš5 ½,‡‚¢¢"ww÷ÿþ÷¿}  Æ©S§|}}÷ìÙ "11ÑÝÝÝÙÙyÍš5ýµÈËËÛ´i“n؉‰‰G…éŽŽŽµk×r¹\77·øøøÞÞ^ÝÑI7Ý7ŒA·N­V§¦¦Nš4ÉÎÎ.00ðúõë¦ìeR‡ììl½ƒ***:;;;;;7lØ¥]›’’Z__/‹g̘±mÛ¶êêjÝfû+ðî»ïŠD¢®®®¾`§Ë—/—Ë倶¶¶ÔÔT???±X,‘Hâããûk_.—ÚÛÛûÛ¢U«V?xð@,O™2eçκ1ë¦û†1èÖíÛ·Çã …Â¦¦¦ÿûß`ÐöÂ>×]0Þ“.¶¶¶UUUÚµ>>>2™ ¦ ¦OŸ®·%ý‹Åý€“$©T*ÕÕÕ“'O …°XUU•6Ý·z{{;@.—Ü¥RÉd2oß¾ …B¡——מôÂtë&MštìØ1mþóŸæóT]] ÓÝÝÝûÛßfÍš¥]kmm­k‘ÃáèmI”Je`§÷îÝÓ ÀÚÚZ"‘ô Ï`u>ŸåÊÝb¥¥¥o¼ñFww÷£G===0_,[[[ëÆ|ÿþ}]Oza ºu666Ú·nÝ2ÁÓPÏOcÆŒY»ví;wÈçÇ—ËÕZ”Ëå×®]Ó«Ò_6›=p+«¢µµµ0]QQ±{÷îª/^¼8--Ô Nž<©R©ÆŒÃçó™L¦T*…ù<7nLhllÔíW/ŒA·n„ •••ÚwîÜ z¿èJ3áx"I²®® P(àâÆ—/_^[[[YY§÷gB½Na:11qêÔ©‰D"‘FGGPýñãÇNNN«V­ºråJeeåÎ;/^„U"##ƒƒƒ¥R©D"ñóóÛ±cGkk+àèÑ£¿üòËÒ¥KÎñ¤ ¾³³³¿Þ÷ïßÏãñΟ?/“É.]º4qâÄAw2õãI’jµzìØ±>„‹ …"**ÊÁÁÁÉÉ)&&¦»»[Oƒ  î ÞÞÞøøx@Àáp"""´§ƒÕI’¬­­]¾|¹@ °³³{óÍ7óóóµ=¶··¯^½ÚÉÉÉÕÕuóæÍp LJJ²··÷ôô¼pážT*Õœ9slmmûë ˆÔÔT//¯W^yeöìÙðøx÷õÄ u†‚œœœ?±bÌ|þ¤û ßßCì °'4ÀžÐ{Bì °'4ÀžÐ€†ž®_—Z:ê1ðEø’:xêêzöÓOwÔjMßU*•º°Ð¤ï5Ž0èà© àŽRIô·–W}tðtþ|¿&4²¸ø®BÑcÎx†:܇mhëz³g'íÚµ,$ä5mŽ‹ gôh‘7B@;zˆ››ƒ^޳³ÝøñN f˜ Ã¸÷{{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4A¿S;|ø0UM67—½8m‰åxBsBÕ±Ù<+«Ñ”4•mé½ò+#kÜ£d¿(•-juïÐÛ±ôÎx‘å ÓØ`Oh€=¡ö„Ø æ‰Á`ÔÔÔX: €˜'-R©”ËåZ: óª'FÓÖÖfé(̪žàô...pQ¥R%$$ðù|— R© #33Ó×××ÙÙ999ùĉgûöí– Ý4†~…*€÷Àói†õ¦FNII ­¯¯‹Å3fÌØ¶m,¡P(Ž9W(‡}:,\^^N’¤R©ÔKëΧ=”xÌÆz®1jkk]]]µ‹&ìììl6[/¨žŸôàr¹ÚCD.—Ã9ÔéÚžººº`bÙ²eŸ}öY]]X,^¸pá·ß~kÙÀ(UO&L˜3gŽv¬KJJ²³³ó÷÷ûí·§M›–’’bÙð(±óùüñ‹Åúù矵ùvvv™™™™™™ FT§ßØ`Oh€=¡ö„Ø`Oh@COOžtY:êYŸs‹ŠŠ:::†ØHnnãûï»X[3) i„0²< ý§VV£y¼˜+Wr{zîRÒa{”<§9~¼˜Á`þùÏq”´né½ò+#È%äåÝ€qíZM[­ÎR´òÔÜüËõëRH.ܲt8TB+O.Üb2†ÌÉ)³t8TB+O¹¹ej5 IR"i¨¯§ÏÇèãI*m­ªj"Ÿ?[b2i5ôÑÇÓ¹så,ÖoŸ™Ôj27—>C}<åæ–„Z»H’dMÍã»we ‰BhâÉàÙˆÅb02ZÐÄÓùóål¶þ"‚Pçä”’~¢/tð¤ÑgÏÞP©Ô}Wµ´(ÊËëÌåÐÁÓõëÒÖÖNƒ«X,æ¹stúèàé»ïnFbõýÓhÈüü[º³¿#ÊȺ_nS¦¸}þù{ÚÅ´´ßÚ¤I.Úœ_~éqt|Å¡Qƒ§Y]‚Íéé.^<ÝÒP ƽߨ`Oh€=¡ö„Ø`Oh€=¡ö„Ø`Oh€=¡ö„Ø`Oh€=¡ö„Ø`Oh€=¡ö„Ø`Oh€=¡ö„Ø`Oh€=¡ö„Ø`Oh€=¡ö„Ƽ†.;;ÛÒa¾vvsØld¦. 3FÁKü>7''gøÂý}²oß>#K¾„§°°0“‚ÁôKnn®‘%ñù °'4ÀžÐ{Bì ¨÷´k×.ƒ‘œœlñFô¨©©a0ý­=sæ ÃÆ`2{"IòÌ™3îîîCùhl°©TÊåéÓ«½½ýÖ­[û[»dÉ™L&“É®^½ =ÇÏÏo(R†ñ÷#Œ)YYYÉ`0 ÷îÝ3¦Š‘èM@=|˜­#’$ÃÂÂŒ¼AññtæÌ™yóæ…„„øøøè ãÔ©S¾¾¾ŽŽŽ{öìlܸñ£>‚k»ººÆŒsëÖ­™5kÀÅå×·€utt¬]»–Ë庹¹ÅÇÇ÷ööÂ^233}}}“““Oœ8áááÁáp¶oßtÆ=‚ ÝÝÝ׬Y3ðÌ+ã„M]¸paòäÉ<oãÆÏž=¨Tª„„>ŸÏãñT*U;–ÊãI£Ñxxx:tˆ$ÉÏ?ÿÜÏÏO» °|ùr¹\ž‘‘hkk»|ù²“““J¥"IòäÉ“~~~f€FôþÍW­ZüàÁ±X>^w+ô:2',óÎ;ïÜ¿ÿÚµk^^^0€”””ÐÐÐúúz±X>>2™ fLŸ>}à=f¼'*ß“xæÌ‚ tÏöÙÙÙS¦Li@`³Ùp‘Éd.[¶L(N:µ°°þ×Ú¤¥¥E­V{zzÂE//¯††˜¶³³Óö¢›Ö¥®®ÎÛÛ¦}}}}}}بþâhñññÔÖÖj§Èp8œZ~)(;?©Õêììì}ûöu>çÓO?ÍÎÎ&Ÿ¿‡ÑÊJ¿¯°°°sçÎåääÌ™3ÇÍÍ͘F |>ŸÉdJ¥R¸øàÁƒqãÆª@ ¨­­…銊ŠÝ»w\¾oœxTîß¿ÿ ¹\nuu5<ärùµk׌jŒ9èŒ÷Š‹‹™LfKK‹6çÆàùà· ækÓAðx<>ŸŸ••5h#p§tvvÂüÈÈÈàà`©T*‘HüüüvìØÑ_/Ú´v@KLLœ:uªD"‘H$ÑÑѺÒ÷z¯oœ°Ìüùó«««KKK½½½a7n\¾|ymmmeee@@@\Ü ÓPYàüûÎ;ïèæh4OOÏ­[·’ýïÁuëÖÙØØ(ŠAQ©TsæÌ±µµ…ùííí«W¯vrrruuݼysOOϽèyêíí'""B.—ëöhðº\/NXæÈ‘#ãÇçr¹Ÿ|ò @¡PDEE988899ÅÄÄtww¼Ó,saÿûß###‡£ejÑ‹“ªÏX–¹Žx)z{{›šš233OŸ>m©Œa„Äi±û°×¯_ã7þò—¿üñ´T Æ`0αcÇÆÆÆš3 ‹OóæÍkoo·TïÆc0N—žžnÎ0ðs 4ÀžÐ{Bì hèI£¡ÛŒ!€–ž¾ù¦ éċa¤¾_Îàó£Gr¼àÈÀÈûFÍ+ôèÑ#*oý'÷ïÿòí·wÞz‹¿b…§¥c1 77·Ù³gZŒnó?ýßÿÎÉ)µ³³¾};©ïÌ’èB«óSo¯ Î×ÕÕ+ݵt8TB+O……U½½ÀÊÊ*/殮áZyÊË»Ád2jµæ§Ÿnww?³tD”AO EHt— ~½"'õ?H,…ÐÇÓ¥KÝM #/ï†ã¡úxÊÍ}ÁŠZ­ùùçêöönKÅC-4ñôøqçµk5}ï]¼Xi‘x(‡&ž¾ûîVßßb$yöl™E⡚xÊÍ-ë{0i4äÍ›u r‹„D-tðTW×&‘4¼±Âd2òóo™?$Ê¡ƒ§‹+ú»ûE$=®ú,ö= ©®nññùí[ÝÍÍ¿ØÛ±¶þí‹ì­­ÎÎvŠŽèv lNOÿpñâé–„Jè0îýÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'40Óï /_¾œ””d†ŽÕÕ“\\dvvfè+((NÖ6ܘé÷¹---………æ™!þÍ7[`à0Ü•””88 {/³þŽ:''ÇœÝ 7áááfë ŸŸÐ{Bì °'4ÀžÐ`dyb0ð½ëÚí$ÒÃÄp·O#ËàìÙ³æœ~ÀÞÞ~ëÖ­fëÎdFœ§ØØØ¿þõ¯ÍÍÍæéŽËå&''›§¯¡0â%%%44´¾¾^,Ϙ1cÛ¶m°ú»ï¾+‰***`S©©©~~~b±X"‘ÄÇÇ­ñ³ª‘è‰$Éýû÷;¶¾¾ÞOpÊk¥R©—†MùøøÈd2X¸  `úôé°ºX,ÖmjòäÉB¡«ªªÒ¦ÀœžFܸ‰‹‹ó÷÷ÿøãIC·óõ2íììl6[/ ©­­uuue0 cÁ‚>„ù>>>ºÔÕÕy{{ô¯¯ïÒ¥K©Üž!3B=YYYeee]¹råðáúùAoŠËåj'—ËåÚ ’t]Amm-LWTTìÞ½{(ñSÎõðððØ»woZZ\´··?~\¡P|ýõׯ·³lÙ²Ï>û¬®®N,/\¸ðÛo¿5XlõêÕŸþùíÛ·oß¾WWW7ôM ó ¯/{~‚h4š h+&%%ÙÛÛ{zz^¸p蜟´U ¦ ETT”ƒƒƒ““SLLLww·ÁS]ooo||¼@ àp8r¹|ÐhÍy~2ÓóÜœœœ+V˜§/³Ÿ?™ç¡ÚÈ÷0º`Oh€=¡ö„Ø`Oh€=¡ö„4ôtýºÔÒ!PY¿ o 7R©§›Û£Q£”ÃÝ‘D" î^ fòôꫯšçËå==¬ž¥Ò…ÏößÍš5k¸{Ðmþ§ÔÔK_}õÓøñN%%_X:*¡Ûù)7· PW×v÷n“¥c¡Zyºu«ÎîÉf3óònZ:*¡•§óçËY,&@¥Rœ©]èãI­Öœ=[Fj¸ØÚÚYZJŸ túx*)©‘ËŸjÙlæ¹s匇ZèãI(,g±~Û•J}áB¹J¥¶`HBOJ%‘Ÿ_AÝL…âÙþsßR!Q M<‰Dw{zžée²X ¡&W}4ñ$Þ´²Òß‚Ð|ÿ}åÓ§Ã~É ÐÁSW׳Ÿ~º£Vkú®R©Ô……wÌåÐÁSAÁ¥’èo-=®úèàéüù~Mh4dqñ]…¢Çœñ t¸ÛÐ ×ôfÏNÚµkYHÈkÚÎèÑf}‚C9hGqsÓy³³ÝøñN f˜ Ã¸÷{{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'40ð;5©TZXXhþP(¤°°°¹¹ÔÒQ˜ÈĉCBBôsûN¹aÎi‡6›ge5ÚÒQ˜ŽÁ¹UúýÝgqq±9ƒÃ@¾üòKƒùøü„Ø`Oh€=¡ö„Ø õ},ÇÏÊÊŠŽŽŽŒŒ„9"‘h×®]}KfddDGG÷Í?yòä|0Ľ½½ÇŽ+++“ÉdîîîsçÎ]¹r%“ÉÔ+6þ|mšÏçO›6mýúõp&ÑAillbœCiaHžH’‰D<¯¸¸Xë)000// “Éâââ`0vìXÀ\]]uééyé—DÉd²uëÖÁY?OŸ>]¿~½ƒƒCll¬@ xøðáÑ£Goܸ‘––Ö÷¥|0FóèÑ£¼¼¼˜˜˜ÌÌL[[ÛA;µµµˆˆxÙP©bHãÞÇëëë·lÙRSSÓÐÐ3GíèèèèèÿOŸÃb±öööŽ/bB¿F¡Ph?noo¿oß¾7ß|ÓÍÍmîܹéééÍÍÍ—.]ê[ÀårýýýwíÚåêêš››kL§'&&Æ„h)aHžD"Ñ´iÓ^ýuwww‘H4ôhººº’““—,YvðàA8M{IIIttôÂ… CCCÿõ¯6lØX¶l¬UPP°fÍÝCÇÚÚzåÊ•óçÏ///_±b…D"ÑëŽÁ`,^¼X;C5AéééK—.]ºtizz:AºÕøá8l~ñÅÿøÇ?`•JõþûïÃúV×h4gΜY½zõ¢E‹âââîÞ½kòž1Ýô‚ƒƒAAAF»½½½=:¨Õ/¼yÿþý­­­ééé)))eee§OŸ~úôéŽ;¼½½Ož<¹~ýúŒŒŒŽŽ¸›„B! «««½½ÝËËK¯#//¯úúz˜ÎÉÉÙ¶m›vúv]ÜÜÜšš~ááìÙ³2™ìСCiiiåååYYY«_¾|¾¯¬¬lôèÑ3gÎ4X=///;;;&&æÄ‰«W¯NOO7fÄtOÿûßÿ?~ 'Ö ª­­ÕNq?üñ"JK»«M„H$úä“O\]]'NœUPP0jÔ¨£GnܸÑÉɉÇ㺻» Á`h4¿¾”/&&ÆßßßÚÚzà*—.]Ú´iÇ›8qbll¬66½êo½õ–B¡¸wï ¨¨háÂ…ð‚¥oõüüüuëÖÍ;×ÉÉ) `(æé×"‘H­V/Y²D›S\\ìáá1p­“'OŽ7N7§±±&är¹F£pqܸq­­­,«¡¡aïÞ½===[[[GGÇššš×_]7¿¦¦fÒ¤I0íîîÞ_< Ú›››CCCµ«^yåƒÕGxùòå &\½z5##£¿êAèè'Nì/ŒA1Ñ“F£)..Þ°aÃ{ï½s²²²Š‹‹£¢¢ †im:88XYYÉd²ñãÇššš¸\î³gÏvîܹsçÎÙ³g«T*ƒ—!!!Ç÷÷÷מ¢z{{OŸ>­Ýkð¦/$Iæççkçpâp8_}õü7‚ÃiÕƒƒƒ¿ùæ//¯I“&¹¹¹õW}ÇŽ<ðôô„jkkMÛ3ÀäqO,Ëåò Ø<'$$¤¡¡¡¦¦ÆäPX,Öüùó¿þúk™L¯­CBBT*A,K©TÂÆÓ§¿NΠ½ ÿðÃårù§Ÿ~ZZZÚÐÐðóÏ?¯_¿žËåêëZ:::ÚÛÛŸ:pà@tt4ƒÁ Š}òä‰Á8Y,Ö¼yóŠŠŠæÍ›§Íì[Íf«Tªƒ¶µµyzznß¾^©š€÷øæää¬X±?'´_~ù¥³³sNNŽ^>¾¿‡Ø`Oh€=¡ö„Ø`Oh€=¡A¿÷#.^¼hÎ80¦¦&ggç¾ùýzJKKÎx0ý2mÚ´¾™t˜ÿé÷>?¡ö„Ø`OhðÿEOìÈìw¢eIEND®B`‚XQilla-2.3.0/docs/simple-api/classDebugListener-members.html0000644000151400015140000001007211653571063020722 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

DebugListener Member List

This is the complete list of members for DebugListener, including all inherited members.
doFocusOptimizations() const DebugListener [inline, virtual]
doLazyEvaluation() const DebugListener [inline, virtual]
end(const StackFrame *stack, const DynamicContext *context)DebugListener [inline, virtual]
enter(const StackFrame *stack, const DynamicContext *context)DebugListener [inline, virtual]
error(const XQException &error, const StackFrame *stack, const DynamicContext *context)DebugListener [inline, virtual]
exit(const StackFrame *stack, const DynamicContext *context)DebugListener [inline, virtual]
start(const StackFrame *stack, const DynamicContext *context)DebugListener [inline, virtual]
~DebugListener()DebugListener [inline, virtual]
XQilla-2.3.0/docs/simple-api/URIResolver_8hpp.html0000644000151400015140000000624411653571064016637 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

URIResolver.hpp File Reference

#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/items/Node.hpp>
#include <xercesc/util/XMemory.hpp>
Include dependency graph for URIResolver.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  URIResolver
 This is an abstract class used to resolve URIs in different ways. More...
XQilla-2.3.0/docs/simple-api/Item_8hpp__incl.md50000644000151400015140000000004011653571063016224 00000000000000b7bf38c016d4afa6aaa29496d7fba57dXQilla-2.3.0/docs/simple-api/ReferenceCounted_8hpp_source.html0000644000151400015140000004625011653571063021256 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ReferenceCounted.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _REFERENCECOUNTED_HPP
00021 #define _REFERENCECOUNTED_HPP
00022 
00023 #include <xqilla/framework/XQillaExport.hpp>
00024 #include <xercesc/framework/MemoryManager.hpp>
00025 
00026 // for null RefCountPointer instances
00027 #define NULLRCP ((void *)0)
00028 
00030 class XQILLA_API ReferenceCounted
00031 {
00032 public:
00033   ReferenceCounted()
00034     : _ref_count(0) {}
00035   virtual ~ReferenceCounted() {}
00036 
00038   void incrementRefCount() const
00039   {
00040     ++const_cast<unsigned int&>(_ref_count);
00041   }
00042 
00044   virtual void decrementRefCount() const
00045   {
00046     if(--const_cast<unsigned int&>(_ref_count) == 0) {
00047       delete this;
00048     }
00049   }
00050 
00051   unsigned int getRefCount() const
00052   {
00053     return _ref_count;
00054   }
00055 
00056 protected:
00057   unsigned int _ref_count; // mutable
00058 };
00059 
00061 template<class T> class RefCountPointer
00062 {
00063 public:
00064   RefCountPointer(T *p = 0) : _p(p)
00065   {
00066     if(_p != 0) _p->incrementRefCount();
00067   }
00068 
00069   template<class T2> RefCountPointer(const RefCountPointer<T2> &o) : _p((T*)(T2*)o)
00070   {
00071     if(_p != 0) _p->incrementRefCount();
00072   }
00073 
00074   RefCountPointer(const RefCountPointer<T> &o) : _p(o._p)
00075   {
00076     if(_p != 0) _p->incrementRefCount();
00077   }
00078 
00079   RefCountPointer &operator=(const RefCountPointer<T> &o)
00080   {
00081     if(_p != o._p) {
00082       if(_p != 0) _p->decrementRefCount();
00083       _p = o._p;
00084       if(_p != 0) _p->incrementRefCount();
00085     }
00086     return *this;
00087   }
00088 
00089   ~RefCountPointer()
00090   {
00091     if(_p != 0) _p->decrementRefCount();
00092   }
00093 
00094   T *operator->() const
00095   {
00096     return _p;
00097   }
00098 
00099   operator T*() const
00100   {
00101     return _p;
00102   }
00103 
00104   T *get() const
00105   {
00106     return _p;
00107   }
00108 
00109   bool isNull() const
00110   {
00111     return (_p == 0);
00112   }
00113 
00114   bool notNull() const
00115   {
00116     return (_p != 0);
00117   }
00118 
00119 protected:
00120   T *_p;
00121 };
00122 
00123 template<class T1, class T2>
00124 inline bool operator==(const RefCountPointer<T1> &a, const RefCountPointer<T2> &b)
00125 {
00126   return (void*)(T1*)a == (void*)(T2*)b;
00127 }
00128 
00129 template<class T1, class T2>
00130 inline bool operator!=(const RefCountPointer<T1> &a, const RefCountPointer<T2> &b)
00131 {
00132   return (void*)(T1*)a != (void*)(T2*)b;
00133 }
00134 
00135 template<class T>
00136 inline bool operator==(const RefCountPointer<T> &a, void *b)
00137 {
00138   return (T*)a == (T*)b;
00139 }
00140 
00141 template<class T>
00142 inline bool operator!=(const RefCountPointer<T> &a, void *b)
00143 {
00144   return (T*)a != (T*)b;
00145 }
00146 
00147 #endif
XQilla-2.3.0/docs/simple-api/inherit_graph_15.md50000644000151400015140000000004011653571063016353 0000000000000076c2a41ccd85433f61b1388db4b735edXQilla-2.3.0/docs/simple-api/StaticType_8hpp__incl.map0000644000151400015140000000003511653571064017514 00000000000000 XQilla-2.3.0/docs/simple-api/classATNotationOrDerived-members.html0000644000151400015140000004227311653571063022022 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATNotationOrDerived Member List

This is the complete list of members for ATNotationOrDerived, including all inherited members.
_ref_countReferenceCounted [protected]
ANY_SIMPLE_TYPE enum valueAnyAtomicType
ANY_URI enum valueAnyAtomicType
asString(const DynamicContext *context) const =0ATNotationOrDerived [pure virtual]
AtomicObjectType enum nameAnyAtomicType
BASE_64_BINARY enum valueAnyAtomicType
BOOLEAN enum valueAnyAtomicType
castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [protected, virtual]
castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
compare(const ATNotationOrDerived::Ptr &other, const DynamicContext *context) const =0ATNotationOrDerived [pure virtual]
DATE enum valueAnyAtomicType
DATE_TIME enum valueAnyAtomicType
DAY_TIME_DURATION enum valueAnyAtomicType
DECIMAL enum valueAnyAtomicType
decrementRefCount() const ReferenceCounted [inline, virtual]
DOUBLE enum valueAnyAtomicType
DURATION enum valueAnyAtomicType
equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0ATNotationOrDerived [pure virtual]
fgDT_ANYATOMICTYPEAnyAtomicType [static]
FLOAT enum valueAnyAtomicType
G_DAY enum valueAnyAtomicType
G_MONTH enum valueAnyAtomicType
G_MONTH_DAY enum valueAnyAtomicType
G_YEAR enum valueAnyAtomicType
G_YEAR_MONTH enum valueAnyAtomicType
generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicType [virtual]
getInterface(const XMLCh *name) const =0Item [pure virtual]
getPrimitiveTypeIndex() const =0ATNotationOrDerived [pure virtual]
getPrimitiveTypeName() const =0ATNotationOrDerived [pure virtual]
getPrimitiveTypeURI() const AnyAtomicType [virtual]
getRefCount() const ReferenceCounted [inline]
getTypeName() const =0ATNotationOrDerived [pure virtual]
getTypeURI() const =0ATNotationOrDerived [pure virtual]
gXQillaItem [static]
HEX_BINARY enum valueAnyAtomicType
incrementRefCount() const ReferenceCounted [inline]
isAtomicValue() const AnyAtomicType [virtual]
isDateOrTimeTypeValue() const AnyAtomicType [virtual]
isFunction() const AnyAtomicType [virtual]
isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicType [virtual]
isNode() const AnyAtomicType [virtual]
isNumericValue() const AnyAtomicType [virtual]
isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
Item()Item [inline, protected]
NOTATION enum valueAnyAtomicType
NumAtomicObjectTypes enum valueAnyAtomicType
Ptr typedefAnyAtomicType
QNAME enum valueAnyAtomicType
ReferenceCounted()ReferenceCounted [inline]
STRING enum valueAnyAtomicType
TIME enum valueAnyAtomicType
typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicType [virtual]
UNTYPED_ATOMIC enum valueAnyAtomicType
YEAR_MONTH_DURATION enum valueAnyAtomicType
~ReferenceCounted()ReferenceCounted [inline, virtual]
XQilla-2.3.0/docs/simple-api/classxercesc_1_1StdOutFormatTarget-members.html0000644000151400015140000001313011653571064023744 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

xercesc::StdOutFormatTarget Member List

This is the complete list of members for xercesc::StdOutFormatTarget, including all inherited members.
flush()xercesc::StdOutFormatTarget [virtual]
operator delete(void *p)xercesc::XMemory
operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
operator delete(void *p, void *ptr)xercesc::XMemory
operator new(size_t size)xercesc::XMemory
operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
operator new(size_t size, void *ptr)xercesc::XMemory
StdOutFormatTarget()xercesc::StdOutFormatTarget
writeChars(const XMLByte *const toWrite, const XMLSize_t count, XMLFormatter *const formatter)xercesc::StdOutFormatTarget [virtual]
XMemory()xercesc::XMemory [inline, protected]
XMLFormatTarget()xercesc::XMLFormatTarget [inline, protected]
~StdOutFormatTarget()xercesc::StdOutFormatTarget
~XMLFormatTarget()xercesc::XMLFormatTarget [inline, virtual]
XQilla-2.3.0/docs/simple-api/classNode-members.html0000644000151400015140000003114011653571063017052 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

Node Member List

This is the complete list of members for Node, including all inherited members.
_ref_countReferenceCounted [protected]
asString(const DynamicContext *context) const =0Node [pure virtual]
attribute_stringNode [static]
comment_stringNode [static]
decrementRefCount() const ReferenceCounted [inline, virtual]
dmAttributes(const DynamicContext *context, const LocationInfo *info) const =0Node [pure virtual]
dmBaseURI(const DynamicContext *context) const =0Node [pure virtual]
dmChildren(const DynamicContext *context, const LocationInfo *info) const =0Node [pure virtual]
dmDocumentURI(const DynamicContext *context) const =0Node [pure virtual]
dmIsId(const DynamicContext *context) const =0Node [pure virtual]
dmIsIdRefs(const DynamicContext *context) const =0Node [pure virtual]
dmNamespaceNodes(const DynamicContext *context, const LocationInfo *info) const =0Node [pure virtual]
dmNilled(const DynamicContext *context) const =0Node [pure virtual]
dmNodeKind() const =0Node [pure virtual]
dmNodeName(const DynamicContext *context) const =0Node [pure virtual]
dmParent(const DynamicContext *context) const =0Node [pure virtual]
dmStringValue(const DynamicContext *context) const =0Node [pure virtual]
dmTypedValue(DynamicContext *context) const =0Node [pure virtual]
dmTypeName(const DynamicContext *context) const =0Node [pure virtual]
document_stringNode [static]
element_stringNode [static]
equals(const Node::Ptr &other) const =0Node [pure virtual]
generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const =0Item [pure virtual]
getAxisResult(XQStep::Axis axis, const NodeTest *nodeTest, const DynamicContext *context, const LocationInfo *info) const =0Node [pure virtual]
getInterface(const XMLCh *name) const =0Item [pure virtual]
getRefCount() const ReferenceCounted [inline]
getTypeName() const =0Node [pure virtual]
getTypeURI() const =0Node [pure virtual]
gXQillaItem [static]
hasInstanceOfType(const XMLCh *typeURI, const XMLCh *typeName, const DynamicContext *context) const =0Node [pure virtual]
incrementRefCount() const ReferenceCounted [inline]
isAtomicValue() const Node [virtual]
isFunction() const Node [virtual]
isNode() const Node [virtual]
Item()Item [inline, protected]
lessThan(const Node::Ptr &other, const DynamicContext *context) const =0Node [pure virtual]
namespace_stringNode [static]
processing_instruction_stringNode [static]
Ptr typedefNode
ReferenceCounted()ReferenceCounted [inline]
root(const DynamicContext *context) const =0Node [pure virtual]
text_stringNode [static]
typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const Node [virtual]
uniqueLessThan(const Node::Ptr &other, const DynamicContext *context) const =0Node [pure virtual]
~ReferenceCounted()ReferenceCounted [inline, virtual]
XQilla-2.3.0/docs/simple-api/inherit_graph_19.png0000644000151400015140000000170511653571064016470 00000000000000‰PNG  IHDRU(+!bKGDÿÿÿ ½§“zIDAThíšAH*Q†Ïäs2BÚiA.2ÚD m"¢V­43¢e‹"(ÚDT‹n,ha …ÂM´ˆ\EA‹ŠŠL ’È`f¢¬IÅæ-.ˆé<‹ñ=ã5ó­î=÷øßóã=ãpã8DLÙwðÍHþÅØýÿÊ™ÏÎ΃Áo)¥4ìîîfOsýŸžž^^^šL¦–T"noor‚¹þÀd2ù|¾’”TR|>ŸÕjÍ Š½ÿ%ÿâFò/n„û¿»»¨««#Âh4úýþÉ××׆e>åë™Å Ð?EQÍÍÍ …Âëõö÷÷Ûl¶"«‰D"$I¢qyyùääd‘‚ŸÂóûÿœNgGGÇêê*š666Þßß/..vwwSÍûû;EQhL’äüü|1j_Aà÷¿¹¹9::šq:kkkhüøø888H’dMMÍøøøÛÛ¯H @‡H«Õ"«mmmPUUÏ?¯ †aƒA­V/,,3ÜG,‹Åbá Â0 Ð4ý§»ÝÞÙÙ‡ONNššš¦§§C¡Ú+3xzzÂq|hh(z<xxxȬfgò ¢k³ÙÌ0ŒÛ튢 —íõzóý ñOÓ40 ûšL&e2ÙÙÙšnmméõú|ÿ‰Dâââ"§Óéýý}…B¼þy‘ÿ½½=”€>.À¿ó¯R©4ÍùùyvðèèÈh4¾¾¾Æb±t:]__âz½>æ‹à8~uuÕÓÓÓÒÒ²¾¾^`»‚:är¹ýßÛÛ»´´ÄeÝz<žT*¥P(4L&‹D"(‡«««óX–íë뛘˜8>>v¹\ö* XVVìû‹ÀçÿÜÜœÁ`p8ÃÃÃAøýþ•••@ r¹ÜjµŽŒŒ¸Ýî———©©)»Ýž¯H$’É$Žã,ËÎÌÌÀóó³R©€x XQilla Simple API Documentation SourceForge.net Logo

A class that represents an item in a query call stack. More...

#include <StackFrame.hpp>

List of all members.

Public Member Functions

virtual ~StackFrame ()
const LocationInfogetLocationInfo () const
const StackFramegetPreviousFrame () const
virtual Sequence query (const XMLCh *query) const
virtual void query (const XMLCh *query, EventHandler *events) const
virtual const ASTNode * getASTNode () const =0
virtual const TupleNode * getTupleNode () const =0
virtual std::string getQueryPlan () const =0

Protected Member Functions

 StackFrame (const LocationInfo *location, DynamicContext *context)

Protected Attributes

const LocationInfolocation_
DynamicContextcontext_
Item::Ptr contextItem_
size_t contextPosition_
size_t contextSize_
const VariableStorevariables_
const xercesc::DOMXPathNSResolvernsResolver_
const XMLCh * defaultElementNS_
const StackFrameprev_

Detailed Description

A class that represents an item in a query call stack.


Constructor & Destructor Documentation

virtual StackFrame::~StackFrame ( ) [inline, virtual]
StackFrame::StackFrame ( const LocationInfo location,
DynamicContext context 
) [protected]

Member Function Documentation

virtual const ASTNode* StackFrame::getASTNode ( ) const [pure virtual]
const LocationInfo* StackFrame::getLocationInfo ( ) const [inline]
const StackFrame* StackFrame::getPreviousFrame ( ) const [inline]
virtual std::string StackFrame::getQueryPlan ( ) const [pure virtual]
virtual const TupleNode* StackFrame::getTupleNode ( ) const [pure virtual]
virtual Sequence StackFrame::query ( const XMLCh *  query) const [virtual]
virtual void StackFrame::query ( const XMLCh *  query,
EventHandler events 
) const [virtual]

Member Data Documentation

size_t StackFrame::contextPosition_ [protected]
size_t StackFrame::contextSize_ [protected]
const XMLCh* StackFrame::defaultElementNS_ [protected]
const LocationInfo* StackFrame::location_ [protected]
const xercesc:: DOMXPathNSResolver* StackFrame::nsResolver_ [protected]
const StackFrame* StackFrame::prev_ [protected]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classUpdateFactory__inherit__graph.png0000644000151400015140000000710011653571064022330 00000000000000‰PNG  IHDRuüýõ†bKGDÿÿÿ ½§“ õIDATxœí{P×€O’% Ò[Ä`¯¢<¦ôRP;í¨ÓŒ ­"‚ÃKGmxé´c¡H;ˆL¥D«FÅ« -yu ÓJÅ2e(XàšÔb/ –‡‰&Lˆ$äµ÷msÓ$ !nz¾¿vÏî9çwη{öd“ìP碵€<Ð>€žðô„ÕððpkÅ1%///44[þ›§¶¶¶M›6yzzZ#*Èߨ««c³ÙúUÄhóáÇããã—7$ˆ‚á*¼>áè @OøzÂÐ>°5Oýýý‚ÔÕÕéSšššÈd²P(???£[ÏQQQáîÝ»Ëë‚@ ÔÖÖ¢8çèÑ£ C*•¢(:55åææVXXˆm Òß߯ßY"‘¬X±088hpçÀÈ…­O€¼¼DQ4))),,ìÞ½{àÕW_-((0l~KK FS«Õ(ŠVWWè z’J¥AAAúD‘H„-_»vmýúõX EÑ—_~¹¾¾ÛúÛo¿é—MsI$;;»Ó§OK¥RN7==­ÕjçÊ>:nûöí$)99Ù¨ƒƒƒüè£P­®®×§› ÛŠ*•ÊhyppP¥R‘H¤_ýËU__ïëëkØ|FÃ`0~øáE·mÛvâĉ'Æ.ÞŠ¢Ÿ|ò ‰DšœœÔ§P©TñÔÑÑ 7¨Tªáà3O.Eúé§]»v988·´´Ì“}._¾ìèèøã?R©ÔÆÆFÃÞ¸qúvìØQVV†x20˜e˜.ŽŽ –(¨TªaóQÍÌÌÉv>ݾ}Klhhðññ1º^¶··»¹¹?~ëÖ­ó¯gQž´Z-‹Å:~ü¸D"a0ÍÍÍXú{ï½·k×®û÷ïߺukãÆ‡2 ôرcAAAB¡P(¾ùæ›l6{®\ …‚J¥òù|±X\^^N¥R Å\ÙÍ^Ÿt:]ttthh¨V«EQT¥R%$$õrffæ+¯¼Âd2ÒMC2ëÆh9111,,lhhH(äççyÒh4t:ÝÅÅ¥ªªêé4-ÎÓ¹sçÖ­[‡Î ®®®ØÜO&“íÛ·ÏÉɉF£¥¦¦>~üØ0P¥R™íæææè蘠Ÿ°™æBQ´¶¶ÖÇLJL&ûûû755Í“Ýì|ïâÅ‹ å÷ß×ÇÜÓÓC$ù|¾aÏÞ¸qpþüy£7Ò=I$’””æêêzøðaý|ϰëÒÓÓíííe2Ù ™uaƒŸsŸO>þøãÄÄħßßÈ…ñ÷„%G©T>xðàÂ… _}õÕ3bƒ÷#ž7º»»_ýõýû÷oÙ²å™ ç“Å •H$‹,žOøzÂÐ>€žðô„lÐSw÷µCXzŒçå………V e©òñð%“UÖd)ù›§¸¸8kűT(ˆBa¯R1\\¦­Ë¢ˆ‹‹3ü¡?µ­ÿ}ž:ÕZ\ü½—­«+ÏÚ±,%¶v}ª«» øãG¬ËRbSžúûGÆÆ¤;;ÒÕ«½Ög)±)O}B¨ÕÚºº›:í é¶ãI«Õñù75-¶*O÷ôØÎÝv+Ƴ´ØŽ§úú>ùsÔjmSSŸZ­µbHKˆxR©4ÍÍÿÑht†‰2ÙlGÇ­ÒÒb#ž®_P(f„P_o#³>ñT_ßK$·E£Ñµ´Üš™±…H¶àI.ŸýþûÛZ­Ît“Z­mk»½ü!-9¶àéÚµÛ*•f®­¶1ë³OsšÐéÐöö™L±œñX[¸;6&5ô6o.<~|'‹õo} ƒáH¡àû—UøŽÃÃÃÉ(eõêyyѬŒ…°…qïŸô„ '|=áè @OøzÂÐ>€žðô„ '|=áè @OøzÂÐ>€žðô„ '|=áè @OøzÂÐ>€žðô„ '|=áè @OøzÂÐ>XðÿÔÊËË-ÇÒÒÖÖ61Ñcí(æƒÅby{{/ ÃBßa±È— ;;:‘H±vO`¡ï1y–ÿ};vl1¯ €0™Ì…f×'|=áè @OøzÂÐ>°ÈóX˜Lfuuµ»»û<)ó0>>žœœÜÞÞþ̵›&>siÏ 8{nŽH$JOOojjš·’’WWW‹V±ÌàÌ“N§“ÉdOÜmåÊ•«V­²hËÌr_ŸÆÇÇ™LfgggJJJLL̹sçÔjµN§ûúë¯SRR¶mÛvèСlç®®.6›SÈÌÌìܹÛA£Ñp¹Ü˜˜˜˜˜.—«ÑÌù>³¥iµÚªªªÝ»wïØ±ƒÃáÈårÓ*ärù‰'¶oßWZZªR©°&ôõõíÞ½;55õ³Ï>ÃöT(‘‘‘Ø›s—ëÌ#9NQQQwwwMMÍÕ«WkkkSSS/_¾œ’’Âår333ùùù~~~ÕÕÕSSS_|ñ ¾¾+‡Ïç‹D¢²²²Ï?ÿ¼¯¯¯ªª KW*• ´Z­ÙÒø|~GG‡Ã)..­®®UqæÌ±XÌårOž//////£,R©T§Ó¹¹¹a«îîîb±X9€H$wttx{{÷ööfeeÍÙ#‹Ã"žètúøø¸¾ FFFH$vcŒa2FGGi4™L¾wïž¶õþýû€ÙÙÙ‚‚‚‚‚‚Í›7«ÕêÖÖVÓŠ‹‹‹1%r¹|ž×Ôš-F£MLL¬]»p÷îÝŸþ999Ù0—““‘H‰D˜Â8;;c›äϮ۲eKaaáš5kW¯^ý,ýõXäúyöìÙ®®.‘HÔ××÷é§ŸFDDØÙÙéw())¿sçNeeexxø;ï¼SZZÚÙÙ)‘Hzzz.\¸P«ÕA•J…]xffþ|-ƒBñçó^ƒƒƒ+**&''‡††rrrç Éli•••ÃÃÃÃÃÃgΜ™œœÔïU “É<{ö¬H$æñxØ gHPPV«ýòË/#""–¤÷Ìb‘óiÏž=ööö¥¥¥“““4-,,Ìè8e±XYYYJ¥2,,,)) AµZ]ZZúèÑ#Ÿ£Gfff¾ð ………ööö‰‰‰aaa999|>?00066¶¥¥pàÀ’’6›M BBBÒÒÒæ ÉliW®\Q*•~ø¡R©Ü´i–Á`Vñþûï—””¤§§ÛÙÙmݺ5))I?ôa‰Äï¾û.$$ĉ±àçø„Å|O¸È{ Ï'•••yyOû7&“Y[[ÿôUÀû{‹B¥R‰D¢ÖÖÖèèh‹V´ÜžÞ~ûíe®Ôr ¤¥¥EEE­_¿Þ¢-÷ç§•+W~ðÁË\©åX·n]ssó2TÇ=|=áè @OøzÂÏ2ßëí힪,¶÷ûr\°Ðß—ÛÂûŸþ Àë>€žðô„ '|ð?è츜ÃeyIEND®B`‚XQilla-2.3.0/docs/simple-api/functions_0x74.html0000644000151400015140000002202011653571063016276 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- t -

XQilla-2.3.0/docs/simple-api/ExternalFunction_8hpp__incl.md50000644000151400015140000000004011653571063020616 00000000000000517d74dcf5d20cae14349c7f6dd1958bXQilla-2.3.0/docs/simple-api/Timezone_8hpp__dep__incl.png0000644000151400015140000001531011653571064020215 00000000000000‰PNG  IHDR ¸è»bKGDÿÿÿ ½§“}IDATxœíkTSWÚ€ßC¶…@ ró‚AÂà hç«.oè µÞF:/#Ž kyY£Æë¨Tm…eÇ™Na@«KP@,Ôµ ‚om ˆ‚• ‰ÜÎ÷ã´iLBCÙÙÏâÇÎËÞï~sžœ}’“Ë!H’ ºØY»ŒyÁ‚ F,qèžñÀÿýï<­-0cÆŒ={ö lÎ|÷îÝÚÚÚÀÀÀÏŒ6÷ïßg2™žvà@``à¾}ûÌ‘a>ùäs¤ÅÇ`ÄÁ‚ F,q°`Ä1˳è^)++;pà€~<.....îÊ•+–/©„††¦§§{yyY»¾bÁS§NÍÉÉ¡P¸~ýzª $IFFFZ¥$T±Žà!C† 2d2¸ººjþc•’Påí:?}ú444”j‡††­\¹ráÂ…gÏž-..ŽŒŒœ;wî‰'¨J¥299yÑ¢E‹-JNNV*•ö3³gÏÖ¤’H$ñññ ,Xºté±cÇär9•ÿòåË+W®üðÃ333äÔáöíÛQQQóçÏ?s挦æ7n,_¾|Ñ¢E_~ù¥B¡04óÆ3ÌÛ%X‡ªªªcÇŽÅÄĤ¦¦~ûí·Ç_·nÝéÓ§Åb1dgg …”””¿ÿýïÕÕÕ_}õÿç?ÿ™>}ú‡~Håùâ‹/^¼x‘œœœPYY™‘‘Aů_¿~ôèÑØØØ”””ÎÎΞrêPQQ‘ššºmÛ¶´´4ªÈËË;tèÐgŸ}VQQqöìY#A óV þè£ FXX|üñÇ #<<(EEE›6mb³Ù¾¾¾±±±·nÝÒ ,,,|þüùúõë@©T–••mذÁÃÃÃ××wÕªU%%%T·… :99ýþ÷¿J•‘œ:UM›6MS ¬[·ÎÛÛ; à/ù‹&¿Á …±Î1¸0  Óé:mŠÖÖÖ%K–hn:::R†††3gÎ$&&ÚÛÛ€H$R«ÕžžžÔ½¼¼^¼xAµY,VsjãææAh½½½©ÆÈ‘#5ù -Ì[-Ø8ÎÎÎÿøÇ?¨W,‰¤½½d2ÙÁƒwîÜIÉ&“igg' G---šéHê)§ú£ ¹¹Ù×ךšš¨G@OA óV/ÑÆ™>}zjjê³g϶mÛ–——ÿüç?çÎ;aÂM7:ú¯ýK(>zôèøñã³gÏîWÎK—.I¥RãÅ$&&>}úô»ï¾KKK›3gŽ‘ …Ä{ðêÕ«׬YCÄŒ3bcc ¸¸¸¬¬,%%EÓ­¸¸xÓ¦M‰‰‰k×®µ··ÿÝï~Õ¯œŸþypp°ÁåZÃìÙ³·lÙÒÕÕ5kÖ¬¨¨(jAÖ Ø=ïÄ€l6""âÅ‹¶ó~ðÓ§O—-[¦söÍ`Ð8Ÿ|òÉðáÃÏ;7°å â%Ó°`Sqttœ?~_‚V 6—Í›7÷%h°`ÄÁ‚ F,q°`ı-Ámm²”Y» ‹b–S•µµµ[·n5Gf‘H¼ÀÉ©ÙÚ… ¡¡ÁÈIò7fàOž°|=}Á99·i4U§ÑˆœôWiÄwvv••=4ø„Y©T—–>Hº-_•%A\pQÑ]Í«#} UQß’õXÄßl‰¤bñ//vï΀O?]¬‰ ö“iì+ ƒAüÕ•¾Àd:jûstt€Q£¬ó=0«€øÁ‚ F,q°`ÄÁ‚ F,q°`ÄÁ‚ F,q°`ÄÁ‚ F,q°`ÄÁ‚ F,q°`ÄÁ‚ F,q°`ÄÁ‚ F,q°`ÄÁ‚ F,q^û†ÿ¿ÿýo+–bΟ K—zY»ó£i¿&Øà…SQ‚Fs•ªÃÚ…˜—×~–ƒÔ²²²HÌ %++KÇ)>#Œ8X0â`Áˆƒ#Œ8o(øÀAÄÇÇk"™™™„!jjj´oŽ=zÅŠ/^¼0½t©TÊãñ&L˜0tèÐßüæ7Ÿ}ö™RiàgƒM™½¾¾ÞÄs3Q__oJÚ¾ó&‚I’ÌÌÌ9r$õª‹bÁ‚B¡P(Þ¼y„?7oÞ …ÍÍÍ_}õ•X,ž8qâË—/{ÊßÐÐÀb±Œ×ÐÙÙùÞ{ïUVV&$$TUUíܹóÌ™3sæÌQ© üôh¿fׯÅÅeûöí}éùö¢ý¢úv¢£¶¶– ˆ’’øþûïuþ[WW§Ÿ¶®®NsS­VϘ1cïÞ½=å×Ï ÏÖ­[§OŸ®T*5‰D2zôèÔÔTžý}`1x_tJ@æDGffæÌ™3gÏžÍårµwâ>BÄÚµk/]ºDÝ,,, a0ÔšO]ÂoĈT…BÁãñÜÝÝÙl6ÇS(žž¾wï^¦IëèèÈãñÒÓÓ©U±´´täȑׯ_7>»~ríá'Ož¤Ø… nÞ¼™ÒÝÝÍd2© úÃU*ÕáÇÇ7tèЩS§VTTÜÅÅŇÉd:t~^ÉóóóýýýÙlöÆ»»» û»µû½«Õê1cƤ¤¤$¹{÷îÀÀ@½îÁ$IVVVº¸¸$)‹¢££›››ÓÓÓàùóç:–,YòäÉ>Ÿ?qâÄ;vˆD"xñâ…ÎÔ7nÜpww§†ðÁeee‰ÄÈì“k¯©©­C’Z­&I2??ßÓÓS¡P~äÈ6›››ÛÒÒréÒ%OOO0´Ï›7O,çää@[[5iXX˜@ (//çp8qqqƒÆíèïÁý\^^N§ÓÛÚÚH’¬ªª€»wïjwè—àîîî‡J$•JuíÚ5ª§N.—+ ©vIIIpppO‚¿ýö[‹E çóù½În0¹öpM%R©ÔÑÑñÖ­[$IþéOÚ¹sgOÃÇwòäIÍ\§N2(øêÕ«$IRÏ4wYSsVV‡Ã1$¢/¸ß¿™™©T*µŸeee?¾_IêêêÆŽ `Íš5‰$$$Ä`çÆÆF_.êìììââ2bĈšš îÖÔÔLš4‰js¹Ü^g7˜Üàpƒ±`Á‚ììì_ýêWwîÜéi¸\.ÖD‚‚‚ Ö@íÙvv¯"ýüü4³777 öþƒU*UVVÖ‘#G:fóæÍÔNß÷$$I;vlîܹ “É"""x<^uuuRR’ÁþÔNI=E"Qyy9DEEíß¿_û9³T*MHH§nÚÛÛ÷:{OÉ ŒŒÌÎξxñâ¤I“4]øèÑ£kkk5£îß¿o° ƒ¯¾¨]õè)Øt–ãKô•+Wh4Ú³gÏ4‘Û·o@uuµ&bp‰Ö¼P¹zõê‚ ¼½½_¾|Im‚ ŠŠŠ¤Ré¶mÛ¨TT†ÎÎNjøÆÿøÇ?666ÖÖÖ¾ÿþûëׯ'I²££ÃßßæÌ™EEE 77700pêÔ©]]]:™Ý`ríáÚm깕ŸŸŸö ¬?ü‹/¾`³ÙyyyB¡°¨¨È××—Êššª™´Ž µD‡††ÖÕÕݺuËÏÏoïÞ½ƒF즃cccô#jµzìØ±Û·o×D Öàãã¥ý9r䈫««ORRRdd$›ÍV(Ó¦Msrr¢:ˆÅâU«V1™L77·˜˜©TJÅ%É–-[ÆÏ`0<øêÕ+ýŒÏ®Ÿ¼'Á$IÆÄÄ899I$#ÕJåáÇ9Ž££ã”)S¨%4$U»MM”––6jÔ(‹µaÙLf0hÄ9 O²0æÀàË徜пáos`ÁoÆ ‹íK°¿`Áol6;99¹/Áþ‚#Œ8X0â`Áˆc[‚_½’¿z%·vE÷͆ÒÒÒ>~Úa0R[ÛAälíBÌõþž6¶õÝ$W×…$ "Qžµ 1/ÚNé=ý=ÚÚ$!!{ˆúz‰«+Ê× ÖÆ†ŽÁEE|êÜû×_#~ÕomlHpVÖ-’2+ë–µk±¶"¸©©ýÎ'$IªÕP]ý¸©©ÝÚY[\PPC£ýtgi4¢  ÆºõX [|î\¥RùÓç{”JòܹJëÖc1lBð÷ß· ­ZR hýþûÖ „MÎÏ¿C§Ó´#t:íâÅ;֪ǒ /˜$ÉóçYŸ)”JÕ¹s•h¿î§@_pMMÓÓ§"ýøÓ§¢ÚÚ&Ë×caМ—W­³>SÐé´¼¼jË×ca¬R©³³u×g ¥R•}[¥R[¾*K‚¸àòò‘èNsp ëüÑé´öviEEƒµk4/ýþnÒà‚N·Û½{žæfaa-Ì›7A»ƒʲ „-<“Ô{ RRVZ»Ëøãƒ#Œ8X0â`Áˆƒ#Œ8X0â`Áˆƒ#Œ8X0â`Áˆƒ#Œ8X0â`Áˆƒ#Œ8X0â`Áˆƒ#Œ8X0â`Áˆƒ#Œ8X0â`Áˆƒ#Œ8X0â`Á¨ó¦cûåBjƒˆwßå¾ûn—};1ñbƒðçÎ3= Æ &fÁK—.5= ÆLàc0â`Áˆƒ#Œ8X0âXB0Aõõõ˜MŸJþfõ à½p,º744°X,ÓóܼySø:–¯a°`Ñ#U«Õ?þø£éy†>bÄëÖ0X°èŸ÷îÝ÷ßëÖ­ú5DEEÍš5ë‡~àóùãÇ‹‹£:|ðÁeee_ýµ›››B¡ I2===00P­Vëß»yóæ‰Å✜ªH*CXX˜@ (//çp8š´:Á¾l:ÏE[S0—Ë …T»¤¤$88˜ê\]]M’¤\.×iSIô£ÝÝÝ>”H$*•êÚµkTgÿÜÜ\*ÿƒ¨¶v r¹œF£Ý»wº™››Ëáp¨|>Ÿ$I¥R9bĈÒÒR’$ÿð‡?ÄÇǼwW¯^%IR¥RQójg ¶’NZM°/›Îúo6¼1š›ÎÎ?]ÖwèС`oo¯ÓÖPWWÇápt² ‚5kÖH$’*òøñc???ª 3äÙ³g*•jìØ±ÔM‡ÓÜÜLµ¹\.Ðh´Å‹çææ]¾|™ZHôñôô;»×Žwš©¹\®&­Á Y±æë`‹Eí”$IŠD¢òòò7N%“É"""x<^uuuRRôôôlll¤Ú555Ÿ~ú©Î(wwwÖÐðÓ¯úÿðÃ^^^T[óZºté… Î;7mÚ4oooƒ³|Fí² ¨G@OA³bÁ‰„j,^¼xçÎ?æóùáááG}ãœÝÝÝr¹ÜÁÁA&“íÛ·:;;—/_¾{÷î{÷îÝ»woýúõ?Ö©ÁÞÞþ£>Ú¸qã£GîÝ»÷·¿ý-**J'óôéÓ•Jåþýû—/_® ¦¥¥utt/iÓ¦Mõõõ•••»víZ¶l™‘ y1e}ïï1X¡PL›6ÍÉɉЋÅâU«V1™L77·˜˜©TªÝ¹§¶vP›#Gޏººúøø$%%EFF²Ùì®®®­[·zzz:;;GFFŠD"ýÚÛÛ—/_îæææááñ׿þU&“éþøã¾÷׈ôìÓ#~Õéêêjii9qâDFF†µkyCð› Æ¨¨¨xï½÷¢££ûÛßö}Ô°aÃbccû´¦ìþ6²D[0y‰Æ{0â`Áˆƒ#Œ8¶%XóÌÅv°-Áåå È_OV‡8ÑaÝDõ gçPèè¸bíB,‡I——mjj2å- £R‘»wWyðàÿÑhƒæA9yòdŸ7nÒìããcÊܦ¬ì¡LV@º»…†²ï¾16t >¾’F#èt»óç+­]‹å°ÁRi÷7ßÜU©ÔJ¥º¨ˆÿê•ÜÚY[|ùò…BEµ ÕåË÷­[ŰÁÙÙ·µn¯ßD›,I¯^ýN­þéõ‚Z­¾rå;‘Hjݪ,ƒMþúk¾Î«A’„¢¢»ÖªÇ’Ø„àìlý§Í¤¡ ‚ /X(|yëV£f}¦P«ÉŠŠG­­½|2Ð|ñbÁóV4qñbåë±0è >¾R¥2p:V¥RÛÂÄ76¶=|(4x¾$áÁƒ–ÆÆ6ËWeIÿØlUUc@€§Z­¦n¾|ù \\ÔM;;»ªªÆÑ£Qþ>¸Iï& :bcO@JÊJkb9_¢1X0â`Áˆƒ#Œ8X0â`Áˆƒ#Œ8X0â`Áˆƒ#Œ8X0â`Áˆƒ#Œ8X0â`Áˆƒ#Œ8X0â`Áˆƒ#Œ8X0â`Áˆƒ#Œ8X0â`Áˆƒ#Œ8&}ÃΜ9XŠhmõ€#Z¬]Hÿ())yã±& &ÂÄŸ«Æ‡úÉu“~fú×åÂÇôkËác0â`Áˆƒ#Œ8X0â¼-‚ëëë© lé7LLháAÔ×׿ñ\fåmìââ²}ûö·9á åmÌb±âããßæ„ƒó ¾xñ¢———H$€ŒŒŒqãÆI¥RµZ˜˜0tèÐ)S¦\¹r…ZâŒ,‰………!!! ÃÃÃà¶‚‚‚   wÞyÇ××÷ôéÓðúKĉ'†úôé1cÆ8;;ïÙ³GÓ3??ßßߟÍfoܸ±»»[;¹B¡àñxîîîl6›Çã) ýŠ‹‹9“É#Œ8X0â`Áˆóÿ¢mÁî–¦IEND®B`‚XQilla-2.3.0/docs/simple-api/classStaticContext.html0000644000151400015140000032210511653571064017336 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

StaticContext Class Reference

The parse time static context interface. More...

#include <StaticContext.hpp>

Inheritance diagram for StaticContext:

List of all members.

Public Types

enum  NodeSetOrdering { ORDERING_ORDERED, ORDERING_UNORDERED }
enum  ConstructionMode { CONSTRUCTION_MODE_PRESERVE, CONSTRUCTION_MODE_STRIP }
enum  FLWOROrderingMode { FLWOR_ORDER_EMPTY_GREATEST, FLWOR_ORDER_EMPTY_LEAST }
enum  FTCaseOption {
  NONE, CASE_INSENSITIVE, CASE_SENSITIVE, UPPERCASE,
  LOWERCASE
}

Public Member Functions

virtual ~StaticContext ()
virtual DynamicContextcreateModuleContext (xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager) const =0
virtual DynamicContextcreateDynamicContext (xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager) const =0
virtual DynamicContextcreateDebugQueryContext (const Item::Ptr &contextItem, size_t contextPosition, size_t contextSize, const VariableStore *variables, const xercesc::DOMXPathNSResolver *nsResolver, const XMLCh *defaultElementNS, xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager) const =0
virtual XQillaConfigurationgetConfiguration () const =0
 Returns the configuration object for this context.
virtual XQilla::Language getLanguage () const =0
 Returns the lanuage that this context is for.
virtual ItemFactorygetItemFactory () const =0
 Returns the ItemFactory for this context, which is used to create XQilla items and other objects.
virtual void setItemFactory (ItemFactory *factory)=0
 Sets the ItemFactory for this context.
virtual const StaticTypegetContextItemType () const =0
 Get the static type of the context item.
virtual void setContextItemType (const StaticType &st)=0
 Set the static type of the context item.
virtual bool getXPath1CompatibilityMode () const =0
 Get the current XPath 1.0 compatibility mode.
virtual void setXPath1CompatibilityMode (bool newMode)=0
 Set the current XPath 1.0 compatibility mode.
virtual const
xercesc::DOMXPathNSResolver
getNSResolver () const =0
 Get the NS resolver.
virtual const XMLCh * getUriBoundToPrefix (const XMLCh *prefix, const LocationInfo *location=0) const =0
 returns the URI that is bound in prefix in the current scope or zero length string otherwise
virtual const XMLCh * getPrefixBoundToUri (const XMLCh *uri) const =0
 returns the prefix that is bound in uri in the current scope or zero length string otherwise
virtual void setNSResolver (const xercesc::DOMXPathNSResolver *resolver)=0
 Set the NS resolver.
virtual void setNamespaceBinding (const XMLCh *prefix, const XMLCh *uri)=0
 Binds a prefix to a namespace URI.
virtual const XMLCh * getDefaultElementAndTypeNS () const =0
 get the value of the default namespace for elements and types
virtual void setDefaultElementAndTypeNS (const XMLCh *newNS)=0
 set the value of the default namespace for elements and types
virtual const XMLCh * getDefaultFuncNS () const =0
 Return the default namespace for functions.
virtual void setDefaultFuncNS (const XMLCh *newNS)=0
 Set the default namespace for functions.
virtual DocumentCachegetDocumentCache () const =0
 retrieve the repository for the grammars
virtual void setDocumentCache (DocumentCache *docCache)=0
 sets the repository for the grammars
virtual bool isTypeOrDerivedFromType (const XMLCh *const uri, const XMLCh *const typeName, const XMLCh *const uriToCheck, const XMLCh *const typeNameToCheck) const =0
 returns true if the type represented by uri:typename is an instance of uriToCheck:typeNameToCheck
virtual void setXMLEntityResolver (xercesc::XMLEntityResolver *const handler)=0
 Sets the XMLEntityResolver that is used by Xerces when it is used to parse documents.
virtual
xercesc::XMLEntityResolver
getXMLEntityResolver () const =0
 Returns the entity resolver currently set.
virtual void setModuleResolver (ModuleResolver *resolver)=0
 Register a callback object for resolving module URIs.
virtual ModuleResolvergetModuleResolver () const =0
 Returns the module resolver currently set.
virtual VectorOfStringsresolveModuleURI (const XMLCh *uri) const =0
virtual void addSchemaLocation (const XMLCh *uri, VectorOfStrings *locations, const LocationInfo *location=0)=0
 add the location for the grammar of a specific namespace
virtual VariableTypeStoregetVariableTypeStore ()=0
 get the variable type store
virtual void addTemplate (XQUserFunction *tp)=0
 adds a template definition to the template tables
virtual const XQUserFunction * lookUpNamedTemplate (const XMLCh *uri, const XMLCh *name) const =0
 look up a template definition by name
virtual const UserFunctionsgetTemplateRules () const =0
 Return a vector of all the templates with patterns.
virtual void addCustomFunction (FuncFactory *func)=0
 adds a custom function to the function table
virtual void removeCustomFunction (FuncFactory *func)=0
 removes a custom function to the function table
virtual ASTNode * lookUpFunction (const XMLCh *uri, const XMLCh *name, const VectorOfASTNodes &v, const LocationInfo *location=0) const =0
 returns a function object with the given uri, localname and number of arguments triple
virtual void setExternalFunctionResolver (ExternalFunctionResolver *resolver)=0
 Register a callback object for resolving external function implementations.
virtual ExternalFunctionResolvergetExternalFunctionResolver () const =0
 Returns the external function resolver currently set.
virtual void addExternalFunction (const ExternalFunction *func)=0
 adds an external function implementation to the function table
virtual const ExternalFunctionlookUpExternalFunction (const XMLCh *uri, const XMLCh *name, size_t numArgs) const =0
 returns an external function implementation for the given uri and localname
virtual CollationgetCollation (const XMLCh *const URI, const LocationInfo *location=0) const =0
 Get the implementation for the specified collation.
virtual void addCollation (Collation *collation)=0
 Add a collation.
virtual CollationgetDefaultCollation (const LocationInfo *location=0) const =0
 Get the default collation.
virtual void setDefaultCollation (const XMLCh *const URI)=0
 Specify which collation is the default one.
virtual const XMLCh * getBaseURI () const =0
 Return the base URI.
virtual void setBaseURI (const XMLCh *newURI)=0
 Set the base URI.
virtual NodeSetOrdering getNodeSetOrdering () const =0
 Return the ordering method for node sets.
virtual void setNodeSetOrdering (NodeSetOrdering newOrder)=0
 Set the ordering method for node sets.
virtual ConstructionMode getConstructionMode () const =0
 Return the construction mode.
virtual void setConstructionMode (ConstructionMode newMode)=0
 Set the construction mode.
virtual void setPreserveBoundarySpace (bool value)=0
 Set the policy for boundary space.
virtual bool getPreserveBoundarySpace () const =0
 Get the policy for boundary space.
virtual FLWOROrderingMode getDefaultFLWOROrderingMode () const =0
 Return the default ordering mode for FLWOR blocks.
virtual void setDefaultFLWOROrderingMode (FLWOROrderingMode newMode)=0
 Set the default ordering mode for FLWOR blocks.
virtual void setInheritNamespaces (bool value)=0
 Set the policy for namespace inheritance.
virtual bool getInheritNamespaces () const =0
 Get the policy for namespace inheritance.
virtual void setPreserveNamespaces (bool value)=0
 Set the policy for namespace copy.
virtual bool getPreserveNamespaces () const =0
 Get the policy for namespace copy.
virtual void setRevalidationMode (DocumentCache::ValidationMode mode)=0
 Set the revalidation mode.
virtual
DocumentCache::ValidationMode 
getRevalidationMode () const =0
 Get the revalidation mode.
virtual void setMessageListener (MessageListener *listener)=0
 Set the listener for warning and trace messages.
virtual MessageListenergetMessageListener () const =0
 Gets the listener for warning and trace messages.
virtual void setModule (XQQuery *module)=0
 Set the module.
virtual XQQuerygetModule () const =0
 Get the module.
virtual bool getProjection () const =0
 Gets whether document projection is enabled.
virtual void setProjection (bool enabled)=0
 Sets whether document projection is enabled.
virtual bool getDoLintWarnings () const =0
virtual void setDoLintWarnings (bool enabled)=0
virtual const XMLCh * allocateTempVarName (const XMLCh *prefix=0)=0
 Return a unique name that can be used for a temporary variable.
virtual XPath2MemoryManagergetMemoryManager () const =0
 Get the memory manager.
virtual void setMemoryManager (XPath2MemoryManager *memMgr)=0
 Set the memory manager to the one given.
virtual void setFTCase (FTCaseOption option)=0
 Set default full text query case option.
virtual FTCaseOption getFTCase ()=0

Detailed Description

The parse time static context interface.


Member Enumeration Documentation

Enumerator:
CONSTRUCTION_MODE_PRESERVE 
CONSTRUCTION_MODE_STRIP 
Enumerator:
FLWOR_ORDER_EMPTY_GREATEST 
FLWOR_ORDER_EMPTY_LEAST 
Enumerator:
NONE 
CASE_INSENSITIVE 
CASE_SENSITIVE 
UPPERCASE 
LOWERCASE 
Enumerator:
ORDERING_ORDERED 
ORDERING_UNORDERED 

Constructor & Destructor Documentation

virtual StaticContext::~StaticContext ( ) [inline, virtual]

Member Function Documentation

virtual void StaticContext::addCollation ( Collation collation) [pure virtual]

Add a collation.

virtual void StaticContext::addCustomFunction ( FuncFactory *  func) [pure virtual]

adds a custom function to the function table

virtual void StaticContext::addExternalFunction ( const ExternalFunction func) [pure virtual]

adds an external function implementation to the function table

virtual void StaticContext::addSchemaLocation ( const XMLCh *  uri,
VectorOfStrings locations,
const LocationInfo location = 0 
) [pure virtual]

add the location for the grammar of a specific namespace

virtual void StaticContext::addTemplate ( XQUserFunction *  tp) [pure virtual]

adds a template definition to the template tables

virtual const XMLCh* StaticContext::allocateTempVarName ( const XMLCh *  prefix = 0) [pure virtual]

Return a unique name that can be used for a temporary variable.

virtual DynamicContext* StaticContext::createDebugQueryContext ( const Item::Ptr contextItem,
size_t  contextPosition,
size_t  contextSize,
const VariableStore variables,
const xercesc::DOMXPathNSResolver nsResolver,
const XMLCh *  defaultElementNS,
xercesc::MemoryManager memMgr = xercesc::XMLPlatformUtils::fgMemoryManager 
) const [pure virtual]
virtual DynamicContext* StaticContext::createDynamicContext ( xercesc::MemoryManager memMgr = xercesc::XMLPlatformUtils::fgMemoryManager) const [pure virtual]
virtual DynamicContext* StaticContext::createModuleContext ( xercesc::MemoryManager memMgr = xercesc::XMLPlatformUtils::fgMemoryManager) const [pure virtual]
virtual const XMLCh* StaticContext::getBaseURI ( ) const [pure virtual]

Return the base URI.

virtual Collation* StaticContext::getCollation ( const XMLCh *const  URI,
const LocationInfo location = 0 
) const [pure virtual]

Get the implementation for the specified collation.

virtual XQillaConfiguration* StaticContext::getConfiguration ( ) const [pure virtual]

Returns the configuration object for this context.

virtual ConstructionMode StaticContext::getConstructionMode ( ) const [pure virtual]

Return the construction mode.

virtual const StaticType& StaticContext::getContextItemType ( ) const [pure virtual]

Get the static type of the context item.

Referenced by AutoContextItemTypeReset::AutoContextItemTypeReset().

virtual Collation* StaticContext::getDefaultCollation ( const LocationInfo location = 0) const [pure virtual]

Get the default collation.

virtual const XMLCh* StaticContext::getDefaultElementAndTypeNS ( ) const [pure virtual]

get the value of the default namespace for elements and types

Referenced by AutoNsScopeReset::AutoNsScopeReset().

virtual FLWOROrderingMode StaticContext::getDefaultFLWOROrderingMode ( ) const [pure virtual]

Return the default ordering mode for FLWOR blocks.

virtual const XMLCh* StaticContext::getDefaultFuncNS ( ) const [pure virtual]

Return the default namespace for functions.

virtual DocumentCache* StaticContext::getDocumentCache ( ) const [pure virtual]

retrieve the repository for the grammars

virtual bool StaticContext::getDoLintWarnings ( ) const [pure virtual]
virtual ExternalFunctionResolver* StaticContext::getExternalFunctionResolver ( ) const [pure virtual]

Returns the external function resolver currently set.

virtual FTCaseOption StaticContext::getFTCase ( ) [pure virtual]
virtual bool StaticContext::getInheritNamespaces ( ) const [pure virtual]

Get the policy for namespace inheritance.

virtual ItemFactory* StaticContext::getItemFactory ( ) const [pure virtual]

Returns the ItemFactory for this context, which is used to create XQilla items and other objects.

virtual XQilla::Language StaticContext::getLanguage ( ) const [pure virtual]

Returns the lanuage that this context is for.

This value cannot be set, since it is used to correctly construct the StaticContext

virtual XPath2MemoryManager* StaticContext::getMemoryManager ( ) const [pure virtual]

Get the memory manager.

virtual MessageListener* StaticContext::getMessageListener ( ) const [pure virtual]

Gets the listener for warning and trace messages.

Referenced by AutoMessageListenerReset::AutoMessageListenerReset().

virtual XQQuery* StaticContext::getModule ( ) const [pure virtual]

Get the module.

virtual ModuleResolver* StaticContext::getModuleResolver ( ) const [pure virtual]

Returns the module resolver currently set.

virtual NodeSetOrdering StaticContext::getNodeSetOrdering ( ) const [pure virtual]

Return the ordering method for node sets.

Referenced by AutoNodeSetOrderingReset::AutoNodeSetOrderingReset().

virtual const xercesc:: DOMXPathNSResolver* StaticContext::getNSResolver ( ) const [pure virtual]

Get the NS resolver.

Referenced by AutoNsScopeReset::AutoNsScopeReset().

virtual const XMLCh* StaticContext::getPrefixBoundToUri ( const XMLCh *  uri) const [pure virtual]

returns the prefix that is bound in uri in the current scope or zero length string otherwise

virtual bool StaticContext::getPreserveBoundarySpace ( ) const [pure virtual]

Get the policy for boundary space.

virtual bool StaticContext::getPreserveNamespaces ( ) const [pure virtual]

Get the policy for namespace copy.

virtual bool StaticContext::getProjection ( ) const [pure virtual]

Gets whether document projection is enabled.

Document projection is an optimisation that uses query analysis to remove sub-trees from documents that aren't needed by the query. This results in substantially smaller memory usage and faster query times, but means that any subsequent querying on the results of an initial query can be wrong.

If you are hoping to perform further queries on the results of a query, you should turn document projection off to avoid incorrect results.

virtual DocumentCache::ValidationMode StaticContext::getRevalidationMode ( ) const [pure virtual]

Get the revalidation mode.

virtual const UserFunctions& StaticContext::getTemplateRules ( ) const [pure virtual]

Return a vector of all the templates with patterns.

virtual const XMLCh* StaticContext::getUriBoundToPrefix ( const XMLCh *  prefix,
const LocationInfo location = 0 
) const [pure virtual]

returns the URI that is bound in prefix in the current scope or zero length string otherwise

virtual VariableTypeStore* StaticContext::getVariableTypeStore ( ) [pure virtual]

get the variable type store

virtual xercesc:: XMLEntityResolver* StaticContext::getXMLEntityResolver ( ) const [pure virtual]

Returns the entity resolver currently set.

virtual bool StaticContext::getXPath1CompatibilityMode ( ) const [pure virtual]

Get the current XPath 1.0 compatibility mode.

virtual bool StaticContext::isTypeOrDerivedFromType ( const XMLCh *const  uri,
const XMLCh *const  typeName,
const XMLCh *const  uriToCheck,
const XMLCh *const  typeNameToCheck 
) const [pure virtual]

returns true if the type represented by uri:typename is an instance of uriToCheck:typeNameToCheck

ie: to check xs:integer instance of xs:decimal, call isTypeOrDerivedFromType("xs", "integer", "xs", "decimal") (except of course, call with URIs, not prefixes!)

virtual const ExternalFunction* StaticContext::lookUpExternalFunction ( const XMLCh *  uri,
const XMLCh *  name,
size_t  numArgs 
) const [pure virtual]

returns an external function implementation for the given uri and localname

virtual ASTNode* StaticContext::lookUpFunction ( const XMLCh *  uri,
const XMLCh *  name,
const VectorOfASTNodes v,
const LocationInfo location = 0 
) const [pure virtual]

returns a function object with the given uri, localname and number of arguments triple

virtual const XQUserFunction* StaticContext::lookUpNamedTemplate ( const XMLCh *  uri,
const XMLCh *  name 
) const [pure virtual]

look up a template definition by name

virtual void StaticContext::removeCustomFunction ( FuncFactory *  func) [pure virtual]

removes a custom function to the function table

virtual VectorOfStrings* StaticContext::resolveModuleURI ( const XMLCh *  uri) const [pure virtual]
virtual void StaticContext::setBaseURI ( const XMLCh *  newURI) [pure virtual]

Set the base URI.

virtual void StaticContext::setConstructionMode ( ConstructionMode  newMode) [pure virtual]

Set the construction mode.

virtual void StaticContext::setContextItemType ( const StaticType st) [pure virtual]

Set the static type of the context item.

Referenced by AutoContextItemTypeReset::AutoContextItemTypeReset().

virtual void StaticContext::setDefaultCollation ( const XMLCh *const  URI) [pure virtual]

Specify which collation is the default one.

virtual void StaticContext::setDefaultElementAndTypeNS ( const XMLCh *  newNS) [pure virtual]

set the value of the default namespace for elements and types

virtual void StaticContext::setDefaultFLWOROrderingMode ( FLWOROrderingMode  newMode) [pure virtual]

Set the default ordering mode for FLWOR blocks.

virtual void StaticContext::setDefaultFuncNS ( const XMLCh *  newNS) [pure virtual]

Set the default namespace for functions.

virtual void StaticContext::setDocumentCache ( DocumentCache docCache) [pure virtual]

sets the repository for the grammars

virtual void StaticContext::setDoLintWarnings ( bool  enabled) [pure virtual]
virtual void StaticContext::setExternalFunctionResolver ( ExternalFunctionResolver resolver) [pure virtual]

Register a callback object for resolving external function implementations.

virtual void StaticContext::setFTCase ( FTCaseOption  option) [pure virtual]

Set default full text query case option.

virtual void StaticContext::setInheritNamespaces ( bool  value) [pure virtual]

Set the policy for namespace inheritance.

virtual void StaticContext::setItemFactory ( ItemFactory factory) [pure virtual]

Sets the ItemFactory for this context.

virtual void StaticContext::setMemoryManager ( XPath2MemoryManager memMgr) [pure virtual]

Set the memory manager to the one given.

virtual void StaticContext::setMessageListener ( MessageListener listener) [pure virtual]

Set the listener for warning and trace messages.

Referenced by AutoMessageListenerReset::AutoMessageListenerReset().

virtual void StaticContext::setModule ( XQQuery module) [pure virtual]

Set the module.

virtual void StaticContext::setModuleResolver ( ModuleResolver resolver) [pure virtual]

Register a callback object for resolving module URIs.

virtual void StaticContext::setNamespaceBinding ( const XMLCh *  prefix,
const XMLCh *  uri 
) [pure virtual]

Binds a prefix to a namespace URI.

virtual void StaticContext::setNodeSetOrdering ( NodeSetOrdering  newOrder) [pure virtual]

Set the ordering method for node sets.

Referenced by AutoNodeSetOrderingReset::AutoNodeSetOrderingReset().

virtual void StaticContext::setNSResolver ( const xercesc::DOMXPathNSResolver resolver) [pure virtual]

Set the NS resolver.

virtual void StaticContext::setPreserveBoundarySpace ( bool  value) [pure virtual]

Set the policy for boundary space.

virtual void StaticContext::setPreserveNamespaces ( bool  value) [pure virtual]

Set the policy for namespace copy.

virtual void StaticContext::setProjection ( bool  enabled) [pure virtual]

Sets whether document projection is enabled.

Document projection can be enabled or disabled at compile time, as well as overridden at runtime. By default document projection is enabled unless query complilation is unable to guarentee its correctness.

Document projection is an optimisation that uses query analysis to remove sub-trees from documents that aren't needed by the query. This results in substantially smaller memory usage and faster query times, but means that any subsequent querying on the results of an initial query can be wrong.

If you are hoping to perform further queries on the results of a query, you should turn document projection off to avoid incorrect results.

virtual void StaticContext::setRevalidationMode ( DocumentCache::ValidationMode  mode) [pure virtual]

Set the revalidation mode.

virtual void StaticContext::setXMLEntityResolver ( xercesc::XMLEntityResolver *const  handler) [pure virtual]

Sets the XMLEntityResolver that is used by Xerces when it is used to parse documents.

This affects the behaviour of XQilla whenever it retrieves a DTD or XML Schema grammar.

virtual void StaticContext::setXPath1CompatibilityMode ( bool  newMode) [pure virtual]

Set the current XPath 1.0 compatibility mode.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classSchemaValidatorFilter__inherit__graph.map0000644000151400015140000000037511653571064023772 00000000000000 XQilla-2.3.0/docs/simple-api/classATDurationOrDerived.html0000644000151400015140000011531211653571064020360 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATDurationOrDerived Class Reference

#include <ATDurationOrDerived.hpp>

Inheritance diagram for ATDurationOrDerived:

List of all members.

Public Types

typedef RefCountPointer< const
ATDurationOrDerived
Ptr

Public Member Functions

virtual const XMLCh * getPrimitiveTypeName () const =0
virtual const XMLCh * getTypeURI () const =0
virtual const XMLCh * getTypeName () const =0
virtual const XMLCh * asString (const DynamicContext *context) const =0
virtual bool isDayTimeDuration () const =0
virtual bool isYearMonthDuration () const =0
virtual bool equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
virtual int compare (const ATDurationOrDerived::Ptr &other, const DynamicContext *context) const =0
 Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.
virtual ATDurationOrDerived::Ptr divide (const Numeric::Ptr &divisor, const DynamicContext *context) const =0
 Divide this duration by a number -- only available for xdt:dayTimeDuration and xdt:yearMonthDuration.
virtual ATDecimalOrDerived::Ptr divide (const ATDurationOrDerived::Ptr &divisor, const DynamicContext *context) const =0
 Divide this duration by a duration -- only available for xdt:dayTimeDuration and xdt:yearMonthDuration.
virtual ATDurationOrDerived::Ptr multiply (const Numeric::Ptr &divisor, const DynamicContext *context) const =0
 Multiply this duration by a number -- only available for xdt:dayTimeDuration and xdt:yearMonthDuration.
virtual ATDurationOrDerived::Ptr add (const ATDurationOrDerived::Ptr &other, const DynamicContext *context) const =0
 Add a duration to this duration -- only available for xdt:dayTimeDuration and xdt:yearMonthDuration.
virtual ATDurationOrDerived::Ptr subtract (const ATDurationOrDerived::Ptr &other, const DynamicContext *context) const =0
 Subtract a duration from this duration -- only available for xdt:dayTimeDuration and xdt:yearMonthDuration.
virtual ATDecimalOrDerived::Ptr getYears (const DynamicContext *context) const =0
 Returns the year portion of this duration.
virtual ATDecimalOrDerived::Ptr getMonths (const DynamicContext *context) const =0
 Returns the month portion of this duration.
virtual ATDecimalOrDerived::Ptr getDays (const DynamicContext *context) const =0
 Returns the days portion of this duration.
virtual ATDecimalOrDerived::Ptr getHours (const DynamicContext *context) const =0
 Returns the hours portion of this duration.
virtual ATDecimalOrDerived::Ptr getMinutes (const DynamicContext *context) const =0
 Returns the minutes portion of this duration.
virtual ATDecimalOrDerived::Ptr getSeconds (const DynamicContext *context) const =0
 Returns the seconds portion of this duration.
virtual ATDecimalOrDerived::Ptr asSeconds (const DynamicContext *context) const =0
virtual ATDecimalOrDerived::Ptr asMonths (const DynamicContext *context) const =0
virtual bool isNegative () const =0
 Returns true if this Duration is negative, false otherwise.
virtual
AnyAtomicType::AtomicObjectType 
getPrimitiveTypeIndex () const =0

Static Public Attributes

static const XMLCh fgDT_DAYTIMEDURATION []
static const XMLCh pattern_DT_DAYTIMEDURATION []
static const XMLCh fgDT_YEARMONTHDURATION []
static const XMLCh pattern_DT_YEARMONTHDURATION []

Member Typedef Documentation


Member Function Documentation

virtual ATDurationOrDerived::Ptr ATDurationOrDerived::add ( const ATDurationOrDerived::Ptr other,
const DynamicContext context 
) const [pure virtual]

Add a duration to this duration -- only available for xdt:dayTimeDuration and xdt:yearMonthDuration.

virtual ATDecimalOrDerived::Ptr ATDurationOrDerived::asMonths ( const DynamicContext context) const [pure virtual]
virtual ATDecimalOrDerived::Ptr ATDurationOrDerived::asSeconds ( const DynamicContext context) const [pure virtual]
virtual const XMLCh* ATDurationOrDerived::asString ( const DynamicContext context) const [pure virtual]

Implements AnyAtomicType.

virtual int ATDurationOrDerived::compare ( const ATDurationOrDerived::Ptr other,
const DynamicContext context 
) const [pure virtual]

Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.

virtual ATDurationOrDerived::Ptr ATDurationOrDerived::divide ( const Numeric::Ptr divisor,
const DynamicContext context 
) const [pure virtual]

Divide this duration by a number -- only available for xdt:dayTimeDuration and xdt:yearMonthDuration.

virtual ATDecimalOrDerived::Ptr ATDurationOrDerived::divide ( const ATDurationOrDerived::Ptr divisor,
const DynamicContext context 
) const [pure virtual]

Divide this duration by a duration -- only available for xdt:dayTimeDuration and xdt:yearMonthDuration.

virtual bool ATDurationOrDerived::equals ( const AnyAtomicType::Ptr target,
const DynamicContext context 
) const [pure virtual]

Implements AnyAtomicType.

virtual ATDecimalOrDerived::Ptr ATDurationOrDerived::getDays ( const DynamicContext context) const [pure virtual]

Returns the days portion of this duration.

virtual ATDecimalOrDerived::Ptr ATDurationOrDerived::getHours ( const DynamicContext context) const [pure virtual]

Returns the hours portion of this duration.

virtual ATDecimalOrDerived::Ptr ATDurationOrDerived::getMinutes ( const DynamicContext context) const [pure virtual]

Returns the minutes portion of this duration.

virtual ATDecimalOrDerived::Ptr ATDurationOrDerived::getMonths ( const DynamicContext context) const [pure virtual]

Returns the month portion of this duration.

virtual AnyAtomicType::AtomicObjectType ATDurationOrDerived::getPrimitiveTypeIndex ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATDurationOrDerived::getPrimitiveTypeName ( ) const [pure virtual]

Implements AnyAtomicType.

virtual ATDecimalOrDerived::Ptr ATDurationOrDerived::getSeconds ( const DynamicContext context) const [pure virtual]

Returns the seconds portion of this duration.

virtual const XMLCh* ATDurationOrDerived::getTypeName ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATDurationOrDerived::getTypeURI ( ) const [pure virtual]

Implements AnyAtomicType.

virtual ATDecimalOrDerived::Ptr ATDurationOrDerived::getYears ( const DynamicContext context) const [pure virtual]

Returns the year portion of this duration.

virtual bool ATDurationOrDerived::isDayTimeDuration ( ) const [pure virtual]
virtual bool ATDurationOrDerived::isNegative ( ) const [pure virtual]

Returns true if this Duration is negative, false otherwise.

virtual bool ATDurationOrDerived::isYearMonthDuration ( ) const [pure virtual]
virtual ATDurationOrDerived::Ptr ATDurationOrDerived::multiply ( const Numeric::Ptr divisor,
const DynamicContext context 
) const [pure virtual]

Multiply this duration by a number -- only available for xdt:dayTimeDuration and xdt:yearMonthDuration.

virtual ATDurationOrDerived::Ptr ATDurationOrDerived::subtract ( const ATDurationOrDerived::Ptr other,
const DynamicContext context 
) const [pure virtual]

Subtract a duration from this duration -- only available for xdt:dayTimeDuration and xdt:yearMonthDuration.


Member Data Documentation


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/EventSerializer_8hpp__dep__incl.md50000644000151400015140000000004011653571063021430 000000000000008af7577f984633f25ff97296bd835909XQilla-2.3.0/docs/simple-api/classATDecimalOrDerived__inherit__graph.md50000644000151400015140000000004011653571063023041 00000000000000f45009df221fe86751e61bdc30ac4083XQilla-2.3.0/docs/simple-api/classATAnyURIOrDerived.html0000644000151400015140000002332311653571064017702 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATAnyURIOrDerived Class Reference

#include <ATAnyURIOrDerived.hpp>

Inheritance diagram for ATAnyURIOrDerived:

List of all members.

Public Member Functions

virtual const XMLCh * getPrimitiveTypeName () const =0
virtual const XMLCh * getTypeURI () const =0
virtual const XMLCh * getTypeName () const =0
virtual const XMLCh * asString (const DynamicContext *context) const =0
virtual bool equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
virtual
AnyAtomicType::AtomicObjectType 
getPrimitiveTypeIndex () const =0

Member Function Documentation

virtual const XMLCh* ATAnyURIOrDerived::asString ( const DynamicContext context) const [pure virtual]

Implements AnyAtomicType.

virtual bool ATAnyURIOrDerived::equals ( const AnyAtomicType::Ptr target,
const DynamicContext context 
) const [pure virtual]

Implements AnyAtomicType.

virtual AnyAtomicType::AtomicObjectType ATAnyURIOrDerived::getPrimitiveTypeIndex ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATAnyURIOrDerived::getPrimitiveTypeName ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATAnyURIOrDerived::getTypeName ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATAnyURIOrDerived::getTypeURI ( ) const [pure virtual]

Implements AnyAtomicType.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classEventHandler__inherit__graph.png0000644000151400015140000003557411653571064022155 00000000000000‰PNG  IHDRxÞgûòbKGDÿÿÿ ½§“ IDATxœíÝg@ÙÚà“„Ð»*ˆ €²ØE]l¨ˆ¤ˆŠ]ÀŲ*XV]¼*kAÝo-,ØQ\¤H `D,ˆ )¢+"¢(‚ô¤¤Ì÷cîÍf“J’Àûü ÃÌ9ïœ33o¦0 C¢¤º3H´€A¢Ä- Fr’Ðý¥§§}ºoß¾¢-óëׯ^^^qqq¢-€v‚D "šššÚÚÚ¢-“ÅbQ©TÑ– @ûÁ¥c€´Û³gO`` þ™N§ÛÙÙeff"„ FPPƒƒƒƒƒCPPƒÁ@M›6-%%eÅŠ ,¸~ý:Bè§Ÿ~B9::¶§®Ç¯[·nöìÙ‹-ú믿ð‰¼e²X¬ëׯ»»»Ï;wÆ oÞ¼á*‡76üÂrVV–««k^^žhšÈH´)ÒÔÔÔøo!›ôôt ÃBÏž=SPP;v,B(**êëׯÁÁÁÇÏÊʺté^ÈÇÏœ9ãéé\__'éèèèÖjaOÿþýû¯¿þjjjº~ýúsçÎÕÖÖò-óÆáááW¯^uww âZ‘Öb‹ˆˆØ¹s§©©©˜H!¸t "k׮嚒––6a„£G¾}ûvÈ!©©©³gÏ&‘H¡›7oþþûïÚÚÚºººžžžAAAøøÀöööªªª³fÍ:vìߋƼµàäåå/\¸ «««   ««‹jhhÐÔÔä-3>>ÞËËkòäÉ¡^½zyxx:tˆ³(ÞØæÎ‹òðð8p ð d$Z€ Õ××皨  0qâÄôôt##£ŒŒŒsçÎáÓËÊÊ-ZÄžMEEÿ ££ƒ’“kõøÆU ûQa99¹ÏŸ?;v¬±±‘뤓«ÌŠŠ öysgk±¶è® Ñd€Í©S§LLLÌÌÌ ð‰¿ÿþ;ž2i4Zuu5>@ t®–æææ}ûöíÛ·ÏÊÊŠN§ß¼y“ý/®2ûôéóþýûAƒásÕZlÒ?è®à-@ŠÔÖÖVÿ>}ìØ±4íòåËøXÜäÉ“Ï;W^^^TT´}ûöØØX%sÞ‹m Ng0rrr---ø]Õïß¿ósÁ‚þùç£Gª««Ÿ>}zñâE®:èÞà»@ŠlذkJZZBHNNÎÚÚ:55•ó·Ð׬YsúôéuëÖ„)S¦xzzò-³OŸ>Æ [´hQRR’àÚUUUׯ_ðàA%%¥%K–ØØØlß¾=&&†wN{{{:þçŸVUU 4hïÞ½ø³Íb«¬¬lO €î‡€?ÈâáêꊧLÐÓ¦M wqq‘t @àÒ1 Fh1‚D ˆ$Z@Œ Ñb‰#H´€A¢Ä- çª¬l¬ªj{hF„C0ºˆè #ÐéÊ--tºªšZ1‰ÔÒ¹Rh4„ªêg!£a±HõõÆDb‹œÜw2¹Djììï€n-@ìú÷ïïìì,d!,¡¾^žJ•¯«S¨¯'3™D„Ð!U::.óÅ ]0p ¼±!„êëåòòú°X„€)+3UTšUT**teeº¼<«C¥ 8°ÿþÂG¤Œu ^••´çÏ?ÚÛ·_­YsÃþ{X%D"‘Éd"„ÔÕÍÍûÑȾææýH¾F àŒ E0 +,üöâEñãÇï=zWZZK$H$"ÎÄgÀ³,™L²´4Þ¹s®ÀÂÚŸ-'GDˆ@¡d‹$ÑΚ5ô·ßœvíŠBÃ×ϲ!*µééÓ¢ììOL&Æ`0ÉdÒ½{;Œ{ _)~pF "†¹º=|X 'Gb0˜|ç!‘ˆÚÚ*wïnïÕKU˜ŠFÚ÷í!¤§§ž•µ¯Ó?ÏåÈ‘¤S§RX¬V­rr$W×±®"©H?xê E‰‹É­eY@"¯_÷&Ë"„ž?/Ƴ,B¨¼œúâE±0¥qÚ±cîòå‰ÄV®òò¤;牪: ý Ѥ‹ÖŽsœ_ž8±ØÜ¼ŸµÄÆf‘É$ü3™LЉy)dœp˜1Ã\NŽÏ–D"nÞl+ä· [ ѤκuÖÆHÜ(99¢»ûGÇ1B–Ï`°¢£_°ïûÒéÌèèç FÇ €D"­:Ô€ËqAEE~à@¸5Û³@¢HÂÂrÞÓA2™4|¸á—ÿðaA]]町º¦GÞ _2›¢"ùÚ5¾}5åäþ•kî»nÝegç3yy¾¼ d$Z€iia?~ËÖö˜’yÉ’Ù'µD"Q]]ñâÅÕ\çˆó‚+‘ËÉ¢£__2'--•ˆˆõêê øZHÄ~è»11q ƒÁš5ëøŠç‹‹+E[)BðÔ1@Z¤§¿Ý±#òû÷fÿEvv#[ZÖÖ‡KJªY,ŒD"ÆÄl°´4¾–¦&º…ÅîÆF:×t%%ùüüƒ"½õÅ‹‹¦Ó†®_÷š2e0>=99ßÏ/öË—W×q;vÌ…»¶ÝœÑ$¯ººÁÓ3dÉ’à)SÌ>üÅÎn$BH^^îÐ!' #Û·ÏI–E¥¤¼njbðNoj¢§¦¾IœÆŒpîÜJ0eŠ;Ë"„lm-ÒÓwîÝ» >>{òäCgΤ¶´ð‰ t¤}ûöI:@úxÕª ÍçϯZµj²‚Â?ç”FF:EE•Z¿ý¶HTï¹:”X\\Éûž«œ±¹™±pá(‘ÔÂiÐ ÝÞ½Õ–.µÒÑQãœN"G°l™USãÔ©Ôèè,]]533=Q­)pé 1Ÿ?×ìÜùàAÁ¦M3¼½mø^¶­®n “IjjŠ"©±¾¾ièÐ=ìç¹É¤ü|UU‘ÔÕ!>T>œ”3j”¡Ÿß±cEsú¤\:H“É:s&ÕÚúpuuÃÍ›[·m›ÝÚÍQmmQeY„ÐÍ›y­eY„μy3WTuuˆ±qïààññ›‰D¢½ý)OÏ«$ 98£tµœœŸðââÊ;æ®\9‰ïÀbRSÓ@¥þóbÏîÝÑ!GöuuE--•.‹‡†a 9þþ _¿Ö._>Ñ×wŽººÈ¾g‰€D è:ß¿·:”òpâDÓ#Gœ {I6OÏ„Ppð ɆÁ‹Ng†„<:vì&‰Dúé§iSEò^¸t è"ØØ‰yqæŒ{X˜—ij¬4#“Ik×Nyüx£ã˜#G’¦M;B¡dK:(ÐIhbW]ݰiӵŋƒ&OþçíÐ&--•ÒÒvXXè{z†ÀxR2 -@¼"#ŸM›v$3óýÕ«ëŽuÑÔT–tD2fÐ Ýàà?ÕÕ5Ξ}ÂÓ3¤¤¤ZÒA€D —ÏŸkÜÝÏnÝzÝÅe\zúÎéÓÍ%‘ ›4ÉôöímAA˳³?Y[ö÷O¨¯oj{1  ÑDýöNEíæÍ­»wÏWR’—tP2@ ØÙ¼woǶm³®\ydeuðüùû"üÑ! &h"–—÷yΜÇŽÝÚºufBÂÏC‡êK:¢nEIIÞÛÛæñã=cöï›>ž“’vh"ÓÜÌð÷O˜7ïwMM•´´ÞÞ6]ùŽl¢­­rà€ÃÝ»;Œ{{z†¸¸ü™ŸÿEÒAþ`ˆÆÃ‡Ó¦ùë¯ÌãLJ‡{éH:¢îÏÄD7$dmxøúêjÚ¬YÇ7mºV^N•tP€$Z€°jj6mºæêdii”–¶ÃÙy, ‹ß•&O6»sÇç÷ßÝ<(˜0Áßß?Fk–tPàr’ Û"#ŸùûSääH—/¯±µµt8=‘Hpv;þˆ‹üñGrTÔómÛf¹¹ÇsHô “¾|©Y¾üÜ–-avv£ÒÒv@–•8ü9©vÙÚþ°kW”M@JŠèat$Z@‡±ßÞùô©:6vã"ü $==£G]RS}û÷×Z¾üœ«ëŸoÞ”J:¨ - cÞ¾-sp8pkË–™ÉÉ>––ðË©ÒÈ̬ÏÕ«ááë++ëmmmÚtíÛ·zIÕCA¢´WK Ãß?aæÌc ¤´´íÞÞ6ð“2Rnòd³ädßßw»ÿí„ ¿ÕÔD—tP=$Z@»<|ønêÔ#W®<ò÷_ñ“±qoIGÚN*#cÏúõÓΜ¹;a‚hèc&Æ“ê:hm¨­ý¾iÓ5W×?-,ôïßßµl™¼½#s”•å·m›ýèÑ/3fü°sgä¼yÿ—‘Q(é z H´A(”ì©S?zTxùòšsçVêé©K:"Ðy}ûj=ê’”´EUUÁÉ錫ëŸÿýUÒAuhü•–Ö®Xq~ýú+vv£ÒÒ¶ÃÛ;ÝÆðáý£¢¼ÃÃ×ûF9óØöíðœ”A¢pc±°óçïOŸ~äÇŠ768à ®®$é €ˆáãIýö›Ó­[y&ø?~«¹™!é º'H´€)((sp8uà@üºuÖÉɾãÇ”tD@\ÈdÒ²eVïñòšzútêĉþ‘‘Ï0 “t\Ý $ZÀáoïØÚc2Y·nmÛ¶m¶‚ŒÒÚý©¨(lÛ6ûÑ£Ý&˜üüsؼyÿ—™ù^ÒAu+h!ôèQá´iGCBúû/ŠßlnÞWÒ.Õ¯ŸæÉ“KVT$;:ž^±â|qq¥¤ƒê& ÑÐÓÕ×7mßáâ8xpüí"ÞÞé¡FŽ4ŒŽÞ²öÝ»rkëÃÛ·GTUÑ$”̃ëBôh‰‰9{öD3™¬  åvv#% ¶¶S§ zäH…’³aÃôuë¬åå!_tœÑÐC}ýZ»bÅy[[‹vA–œðç¤>ܵl™U@À­‰ƒç¤: -=þöδiGÞ¿ÿå}ô¨‹††²¤ƒÒHCCy÷îùýbe5èçŸÃæÏÿ¿§O‹$”ìD @Ïòî]¹£ãiüí”_+«A’ŽH;}}­“'—R(›åäH§==C>~¬’tP²-=þöÎŒ--Œ›7·nÛ6[Q‘,é €Ì=z@lìÆ  å¹¹%S¦Ú»7†Jm”tP²×Üè ^¼øèë^RR½cÇÜ•+'ÉÉÁ—l„òô A¯t ²„Ng†„<:vì‘Hðö†ç¤Ú;ÝÖ¼}{Ä‚èé©§¦ú®];²,™LZ»vJf枥K­Ž½9}úQ %[ÒAI5ØßèÎ’’r'O>”””´<,ÌËа—¤#Ý„¦¦òîÝóÓÒvXXè{z†ØÙýßóç$””‚D @÷TVV·bÅùµk/MžlzïÞNx{ˆÃÀ½ƒƒWP(›",\xÊÓ3äÓ'xNŠÜ£€[JJJQ‘l¿ÃðáÃ÷¨¨ÏD"aν~èÌ/ÈzxxÃÙ³g…,¡ DF~A9;ëK:¶Iy°XØË—uii--¬yóúŒ¡!¾º¤ßŒ3üç×8 ÑÀÍÅÅ%22RÒQ…DRWUS_ŸÁb5w®á ‚ ŒãH"i „˜Ì:IÒ6™èA^UÕ²¹ùcKËq×%ÍÂÃÃ]\\ØÂ¥cøpvvÆdƒQW[{—ÉlêIJááá¢jÆððp‘¯šh1µ F­¤£hƒ õ‹ÕL¥>jnþ,ÖZ¤o³C¢Ä- Fh1‚D ˆ$Z@Œ Ñb‰€N"ðÓ5µâu±?Ȩ®iCæããcll¬¤¤djjêçç×ÔÔÔž7o·éNn+‰àÜl´´´\\\***Z›¹Íþ_?ÂO.ÐyÆÆÆ¢-³¨¨hܸq•••j‘““Û±c‡à¥dE´áÆ?~üxãÆþýû¿yófÓ¦MÕÕÕ§Nj³MMM®vf6™Ðé¶’|ûÁ0ìË—/›6mÚ¸qãõë×ùÎ)Én’ô«½Hggçö Xz÷îÈk÷îçŽ)¸öÌ\K AørP;†Gèš6ÔÔÔÌÌÌdÿ™žžnhh(òZħ+{DLm%&\ÛÏýû÷544Ú\ªµŽU‡ò¶3\:@Äìíí·nÝŠnnnÖÒÒJLLDÑét___===]]]___:Ž"×®]377×ÖÖ>zô(BèÇDõéÓG@¼×¸¸–â­ _$55ÕÐÐðáÇ¢_m‘mª««VUýw°û)S¦|üøÿ,¸¡._¾Ìnç„„„Q£F)++÷íÛ÷ðáÜÑrv‡âÿÉdöDꎵ‹Å:}ú´¹¹¹ššš••UZZç} ôï–igß1 ???CCÃÞ½{/_¾¼¶¶VÀâ\H$’®®.W½®3™Ì€€33355µ‰'>yò¤µº„í/á³7ÝLûÏh³³³ëÿ ðëׯ²X, ÃâââúõëG§Ó1 ;räÈ¢E‹>}ú”››;zôè;wâ…899ÕÔÔœ;w!TUUÅ{FËU Nç=‘åZŠ·.|†9sæÜ½{—F£ X¯.>£í‚6¼}û¶¾¾¾‚‚‚­­m@@@qq1û_‚*;;/‡J¥ÊË˯^½úóçÏ¡¡¡¡oß¾ ¸œÀb±\\\¼¼¼ÚS‹àîÀº¶G:ÔVÁÁÁºººÑÑÑ¥¥¥‰‰‰!ÎÖàüÜξ °°°ÈÍÍÍËË?~¼àÅñí‡J¥þý÷ßS§NÝ¿?W½v–'NpÆß¯_?|ºýÅÛÎhàÖþDË÷›kCCƒŠŠÊÓ§O1 [¼xñ®]»ðù‡ òõëWüsrròÈ‘#ñBÒÒÒ0 kiiÁR¼‰– …Bi3ÑòÖ…Ï››Ûæzuq¢í‚6Ä0ŒÁ`dffîß¿èС$éÚµk­ÈÙPìrš››ß¼yC£Ñ˜Lfzz:W-¼ÕýøãMMMí©¥M]Ù#XGÚÊÂÂâòåËìCBB$ÚvöÝàÁƒ£££ñÙ^¿~ÍþÜÚâœÔÕÕñ+ÉíL´fff¼ñó­«Cý‰€¶ vÉ’%Û·o§Ñh***øDEEE΃~3 !ôöí[ÎÛs¶ÍDË[>CKKK›ë%%÷hEÕ†4-,,ŒÁ`à²X¬½{÷êëë·V gCq–7iÒ¤‘#G®ZµJp¢ÍÉÉ0`ÀçÏÿ ¬/Lw`]Ø#m+%%¥ììlöâ/_¾äJ´ìÏíì;EEż¼<ÞØZ[œ½ý444øûû÷ïߟÅbñ·¿øÆÏ·®õo;Ã=ZDÏÍÍ-***>>~̘1¦¦¦øDöA¡¦¦&33ŸN$Š~7l­.2™,òºÄDTmˆaØ’%Kòòòð? ¬Y³ †à¹ª±±ÑÅÅÅ××7+++00P@Ø4méÒ¥!!!úúÿüÆ­¬tGGÛJ__?''‡½x~~>û3¾Ô—/ÿüX^;û®_¿~ÅÅÅøçììlÁ‹³)++¯[·®¤¤äÛ·o­ÅÀÅÈȈoü"ï/H´t^EEEÙ¿áÓgΜYSSãçç·zõjöÌŽŽŽ»víúøñcnnîìٳϜ9# dÖ‰xØKu¨.Éwªªª._¾ÜÕÕ511±¨¨(##ÃÇÇÇÍÍ­C677·´´ÈËË766úùù!„êëëùÎéíí½víZkkkΉ²Òm«Õ«WûúúÆÅÅ•••ݺukçÎ!MMM„Е+W¨TêÉ“'Ù…·³ÜÝÝwïÞýêÕ«W¯^mذý(Vk‹³·ŸOŸ>9r¤ÿþ½{÷n-.^^^œñÿúë¯ µÚs" @"ä=Zœ‡‡‡ªª*çsT*uÕªUZZZ½zõòððhhhÀþ}í ÿL§Ó'Mš¤ªªÊ9‘«jÞ‹`\KñÖÕþW¤á-NTmÈ`0öíÛ7|øp%%%##£;v466¶V`k·Oœ8¡­­Ý¿ÿÀÀ@777]]]¾—ŽBòòò Ú¬¥M]Ù#j«–––ýû÷«ªªZYYýõ×_xœÔÔÔ4hP\\;òvö]SS“O¿~ý444ÜÜÜjjj/ÎF$‡Î~7‰7Þþb0&&&***VVVø™+ߺ:Ô_¼íLÀZÙÖè±\\\B’D2"""\]]…?2„ððp¼10d¥G MMM!§ð¶3\:Ä- Fhˆ€‰‰ \7æ - Fh1‚D ˆ$Z@Œ Ñb$'éèR7n<——oc³¯¬T*//ß¼ùBHAhb¢*ªÚ ª«[ÆÓ¾¨ÏŸKJÇŽÕ’“#´=w»55±âãóTUô÷O@56¶´´0B4Z3“ÉBUU5` ðÚÚF„“‰­Y3yùò |KKMMeÿž(è´/^ˆª(艀‘¡@ϲ~ý•¸¸—휙N¯¨­Md0Dp`’—罹6Y^¾oeå5:½Bø"ô@P ÑÿžKe"„™ÜWKk.‰¤F$H$"~„`2™­*RS·››÷åA”߀HF†I$ M\#CÁ-èYÇÄÅe#Ôæ1‹°dÉøß~[Ôæéo›Þ¼)=x0!-í Bhüø11ß„,íÒ¥‡»wßÐаùá§={ìììF‰¢9’ÒhÍ[·^OL̡ә‚ç42Òá›e‘(-èI{´ g™:uˆšš‚€H$"™Lúã·cÇ\…̲¯_—:;ÚØ×Ö~gÏ€?$²~ý´;ç ¸R*•ÚxêTêùóéL&‹Áà~4IMM1;û?JJò^‹Ö¬_%))—ëfªœ‰Á`NœhúŸÿØÿðC?!«À0ìÂ…ÿùOBˆÔÉdÒÊ•'M2KNοy3¯ªŠffÖÇÎnÄ‚£LMõ„¬€î-è¶ètæ­[yQQÏ<(`2YS§™?ĬYCÕÕ•~ý5&$äžœääˆD"ñĉŎŽc:WƒÁ }TW×È{Ú‡"“I«WOöó[(Ôú´âùó œäû/‰„¶xñx_ß9Ÿn>yR´nÝ庺ï줿ÉÒÒ!Äd²^¼(¦Pr²ËË©ff}lm-lm;Öžt-èn VZÚ %ûÎüúú¦I“Lœ,gÌøAKK…=ϳg.<‰"“IÊ—.­3ƨÓ5²X˜Ÿ_ì… ÷[›H$ddì64ìÕé*›5ëX~þW‹Ï>D"ÁÔ´Ïõë^zzêÂWT^^çá’•õ‘Édii)çåäzΙÅž?ÿœü:11§¸¸²í™3‡ÚÙ€Œ z2H´ ›À0ìÙ³QQÏskk¿[ZÙÙœ7oxß¾š|g=z_y9uÌ£óçW‰$ 9“úÛo‰¼;”œiöì¡gÏ®¾ŠÖP(Ù^^Wx«&‘HãǼre­²²È.Y3¬£G“Μ¹ëînuø°³€9ß¾-KHÈŽ‹{YXø­o_Ms[[‹©S‡´ö$Ý$Z óž>-¢PrnÞÌ--­55Õsq»`Á¨þýµ/u𠥡¡yÿ~÷¯^ÍØ¹3 ñ¼°H¡l挹ML&kܸeeµœÕ’HÄ3~^!ü«À¼îÞ}£¡¡D"…’}çΫïß[¦M3Ÿ?Ä̙ʒ­ aa™>>;wÎݸq†¤cäõëRGÇÓ?þ8èüùUcRR¸†0 ×Œ0!hÄ0™¬»wßP(Ù))¯ëê--œÇΛ7\Êï&²Q(Ù?ýtÕÓsêž=v’Ž¥mÏŸX¼8hΜáü±DJž ë(®a§ ´fÍ&UÏÄÀ$ZÐÕð!œ(”œÄÄœ²²º±cíìFÎ;¼_?>C8I­{÷þ^±â¼«ë¸#Gœeå¼*99íÚKË–Yùû/’t,ÂâvªW/ÕiÓ†À @jA¢]'/ïsDij۷ó>®11Ñuuמ!œ¤Ð³g/²µµ t—­s©˜˜¬C·nýçÉdYÇ9씦¦òŒ?ØÙ´¶,Žñ°èH´@ì>|¨ˆŽ~1ad¤³hј á$mòó¿,ZtÆÒÒèÒ¥5²xþtùò£_~‰òó[èé9UÒ±ˆRIIõíÛ¯ða§É“&™ÎŸ?†Ò-—OŸª"#Ÿýo'õùóG:;[Þ_Òq åãÇ*{ûSFF½þúËS?.Û5~ÿýαc·Žw]¼x¼¤c½ÒÒÚ»wß$'ç§¥½a§€4€D D¬¢¢>.î%>Ä„¶¶Š´ á$Œòrª½ýI55Ũ¨ ²~Ô>p þìÙô  åóæt,âÃN)‰ˆF}}S\ÜËÈÈgYY••ågÍêìÄDTÔóää|&“…á4cƲ{ÛR€–Ʋegÿþûklì¦nvD¦Ó™+WžÏÉ)‰ŽÞУF\jnf<}ZtçN~\\ ;Ä -胕–ö†BÉNN~ÝÐÐ$CC8uƒÁòð¸üðaADÄO#GJ:ÑkllY¼8¨¤¤:6v£¡a/I‡ÓÕ8†Ê)/¯ƒa§€8@¢mǘˆŠzž˜˜[[ûÂiîÜáÚÚ²1„S§aöóÏaññ/CC='N4i{ÙD¥6.Zt¦¡¡96v“®n}Pˆ=ìTRRî‡0ì!H´@§O‹(”œ›7sKKkñ!œæÌ&µ?n*r{öD_¹òèüùU3g•t,âU^^goJYY>:zC7¾>ÑNø°SññÙïޕðS@xhïß‹ÍÂ4ƒéÚÛZ°`”©©ž¤ãêR'O¦=šôÇK-²”t,]áãÇ*{û“Zׯ¯‡Apìa§ž?/ÖÐP‚a§@ç@¢ÿ(.®¼qãy·ÂIçÎ¥ûùÅúû/Zµj’¤cé:ÿýÕÑñô°aW¯®ƒ\‰ï°Ssæ —‰Ÿø‰ oßêãã_FE=ÏÍ-é6C8 #66kÆÐ-[fnÛ6[Ò±tµ—/?¹¸N™bvöìÊnó´}ýZ›šú&99ÿÞ½¿I$" ;ÚmÏUUE‹‰É‡pÒÒR±·ï>C8 #%åõš5W¯žìç·PÒ±HÆÃ‡ïÜÝÏ.\8ê÷ßÝàÉÛÖp;Åbaø  Œê±O“ Ñö84ZóÍ›¹ 9ééoååI³gëfC8 #3óý’%Áöö£wíÉ9æöíWëÖ]òòšöË/ó%‹´£RÓÓß°S@H´=EccKBBN·ÂI¹¹%ÎÎS¦  Z_;"#ŸýüsØ/¿Ìóö¶‘t,²=ìÔ;¯¨Ô&| v H´Ý>„¾ó76Ò§N·”øz÷®ÜÁáÔ°aW®¬ƒ·8p/>Ø»7æÈçeˬ$‹,iiaGD<»};ïóçš8„S§ÕÕ}wtÄGÜ_GøÂ0lëÖëqq/üÆ(épdç°SÚÚ*Ó§›Ã°SÝ$ZÙöáCEtô |ˆ |'ø’öûþ½ÅÕõÏ’’ªØØMFF:’GzÑéÌ5k.>}Zé=l˜¤Ãé&>~¬JNÎÇÁ€a§º7H´2©¼¼.*êydäó‚‚²z99YöØ!œ:Ngº»ŸËÍ-¹qcƒ¹y_I‡#íššèK—”ÇÆn4HWÒát+Ÿ?×ܺ•ÃNucheIe%-6ö¿CLèè¨ÚÙêáC8u‹…mÜzçNþõëëÇŒ épdC}}“³s`ee}lì&¸+!zUU´»wßàƒ`‰„)SÏŸ?bÖ¬¡êêJ’ ­ ¨¯oŠ‹{ù,+룦¦2 á$¼]»¢Âž\½ºnòd3IÇ"Kª«N1¬ØØ½{ÃHâR[û=99†ê6 ÑJ¯ïß[ÿ;Ä™Lš={܉#G’NŸN={våœ9Ã$‹ìùúµÖÞþ”ººÒÞp¦%nœÃN56¶Œcdg7rÞ¼á}ûjJ:4Ðh¥>ÄDTÔóää|0o á$Jwýý~ÿÝÍÅe¬¤c‘UÅÅ• ž45Õ»vÍ6Ë®ÁwØ){ûÑp¿\&@¢• +-í …’œüúû÷fÂIþú+Ó×7†Þ›7¥ŽŽgÆ3¾pa5¼ Ú•`Ø)Y‰VÂð!&¢¢ž'%åÖÕ5NŸn>þ[[ MMÂIÄâã³½½¯zyMÛ½Ê/Š]]ÿœ3gø,Ǻ{Ø©ÄÄœ²²:CÃ^¶¶0ì””‚D+1OŸQ(9·nå•–ÖÂNâ––ö÷Ê•ç/ø°†Dåþý·Ë—Ÿ_²düo¿9I:–ž‹=ìTLLVQ ;% Ñvµ÷ï¿ÅÆfáCL ÞßÉÉröìað²„X=}Zäæ´ÙÂÂBÎ)ׯ_çÛ5ÙÙÙ‡×ý:º£Ç:Þ¡Ó§Oëëë³X,ö à pêÔ)¾ó·Ù Ý~ïL¢­ªª5j”²²rxxøÓ§O/^ìæævûöíRTT¤££ÓѪ¹–Ú¸qcVVÖ7>}útáÂ…¸¸8__ߎ–Ù•222¾þ›¦¦æŽ;8çé\ËHƒ¨¨¨ÖÞ¾ÜSíiatïf¯¯¯·´´|òäÉádz²²vîÜ:sæL&“)òºð–,--MOOg±XË–-kmÎ6ÛsáÂ…x_ddd „Ø]caa!dxݲ£¥êXçìì\VV†w.++«¤¤ÄÉ©‘8;±_w¢¿¤q3ࣤ͡L¼½½]]]9§øøøÌ˜1£C㡼{÷®=u ^JSS333“ýgzzº¡¡aGËì2¡wïÞµö_öªu®eørvvÕÈ5mΆòôôÔÖÖþúõ+>…sEô”àf^×7;Öµ-ïãã3yòdƒÁžB£ÑŒŒŒ‚‚‚„ € WK~þü!TWWÇwf®öÐ ¢jùî½uôX'îÝÊÖÖvãÆì?ùåkkëÖfn³ÍÌÐÑþ’Îý½3g´7nÜØ¼y3ç??¿ .àŸkkkW®\©££c``àããƒ_ß ×®]377×ÖÖ>zô(BèÇDõéÓ_ŠN§ûúúêéééêêúúúÒéôö,¥®®XUU…ÿ9eÊ”?¶V ‹Å:}ú´¹¹¹ššš••UZZ×%JÎÏ팇Á`øùùöîÝ{ùòåµµµç‹÷RF›-ƒ/’ššjhhøðáÃôœ˜mÙ²eÈ!ÏÚzŠ/v³ÄÇÇëëë×ÔÔ „ÂÂÂÌÌÌøöþ!..nðàÁººº›6mjnnn³|6ÙmöÐÐÐ_ý•D"±§¨¨¨lß¾ýÚµkíß¼9×nôèÑkÖ¬Áç¤ÑhÊÊÊ/_¾ä­¯¿F€_åêÛ·ïáÇO{"„îܹcbb¢¥¥uèÐ!«ÃÕÎ|w¥¸µ¶µvBü¼µÃÚÅ‹ÍÍÍ{÷î}øðá«W¯khhìÝ»_Š·sBnnnQQQì«&ÑÑÑ®®®æÇ±»ƒÉd˜™™©©©Mœ8ñÉ“'­-ËÕ_¼ù¥=ý%ùÍ€3ë¶ç»~È«®®nm†¥K—ÚØØ¼ÿ>77wèСûöíûNNN555çÎCUUUq}¡8räÈ¢E‹>}ú”››;zôè;w¶g©Û·oëëë+((ØÚÚ (088XWW7::º´´411ÑÀÀ!ÄY ççvÆ`aa‘›››——7~üxÁ‹ggg×s Óé¼ß°Úl|†9sæÜ½{—F£ è¬.>£}÷î]AA’’Ò¥K—¸VD@O n Ö/_¾bÅŠ²²2==½'Ožp•ÌÕn3gÎ,((ÈÌÌ411ao{]ÜìX¶<¾?VTTpMüø±¶¶vû7oεKJJêÕ«NÇ0,44Ô‚Åba-I¥R ---1 £R©òòò«W¯þüùshh(BèÛ·o¼g´óçϧR©7nÜ@UVV²ÿÅ5'W;óÝ•zàþÕÚÔÚ!ˆoƒ·ÖnnnnT*õüùó!*•Œ/Å·s1 «©©QPPHOOÇ0ìÍ›7D"±¬¬ kkc`8qâçѸ_¿~¡ölH¼ù…«¿¤sïp¢­®®FÕÔÔðýoKK ‰Dzõêþgtt´‰‰ †a¡´´4|üˆÌµžC† a_rLNN9rd{–Â0ŒÁ`dffîß¿èС$éÚµk­haaqùòeö‚!!!m;ãÛëׯٟ[[œ …Bis à- Ÿ!77·µ>bëúD‹aØü¡®®þéÓ'®i­§7 †a555ÇÇ'&0Ѳ›%<<œ½íuq³c]žh9ó.##CGG§ý›7çÚ1Œ>}ú¤¦¦b6wîÜÇãsr¶!™L¶¶¶Æ{¼¹¹ùÍ›74Éd¦§§óÝUB÷îÝÃ0 ?⼸Ç7Ѳۙï®Ô÷/¬•=¨µCßo­Ý²²²°ÿÖ8?¿{÷Žoçâ%888x{{cæïï?}út|¢àýÁÌÌŒ÷hÜæ†Ä7¿põ—tîï¹G«§§÷èÑ#Î)OŸ>µ´´lhh())A566âÓsssñ•ûöí«ä·***r6††F›KÑh´°°0ö­)‹µwï^}}ýÖ TRRÊÎÎf׈_ ã,°  €ý¹ñ(**æååñ6Qk‹óÞû3¾Ô—/_:O¿~ýŠ‹‹ñÏÙÙÙþþþ‚ï„ÖŠ"“É.S¬ˆDâ¥K—=ztöìY|ŠàžjSIIÉéÓ§g̘±mÛ6Îé¼½†þ÷Í !TPP€_êjö¥K—8p€}·ÌÍÍ-,,ìðáÃnnnø”öoÞìµsvvމ‰‰ˆˆ˜4i~“E€ÆÆF__߬¬¬ÀÀÀÖfëÐkìHø†ÚÓö/{Pk‡ įÁ;Ñn:wÞ¼y ×®]ËÉÉqpphs~NFFF¼Gã6—_„ì/qoI´þþþéééîîî¹¹¹ÿùÏNž<‰w0™LvuuÝ´iÓ‡^½zµgÏž¥K— ( ¿¤Žrttܵk×ÇsssgÏž}æÌ™6—RUU]¾|¹««kbbbQQQFF†ûàÂ[àêÕ«}}}ãââÊÊÊnݺµsçN„¦¦&BèÊ•+T*õäÉ“ì*Ú»»ûîÝ»_½zõêÕ« 6°ðéÐꈰe¤„±±ñ±cÇŽ?Žÿ)¸§c±X«W¯Þ¸qcXXXJJ …BA­÷BhóæÍ………Ïž=ûå—_¼|ÒYlö_ýµ¬¬ÌÖÖööíÛ\²dISSÓÚµk;½yã1ïß¿ßÝݽ͚››[ZZäååýüüBõõõø¿ØíÙi|Cíiû—€=¨µC_XY«¬¬looÿóÏ?OŸ>½wïÞmÎÏÉËË‹óhü믿 ^﯎æ—6uÝfÀyzÛþ»ÅÅÅNNNýúõSSS7n\||<û_ÕÕÕîîî½zõêÛ·ï–-[ðÓ|ÄsE‚N§Oš4IUUŸH¥RW­Z¥¥¥Õ«W/†††ö,Å`0öíÛ7|øp%%%##£;v°¯*ðØÒÒ²ÿ~cccUUU++«¿þú _Ùƒjjj4(..޽ú팧©©ÉÇǧ_¿~nnnì[×m.ÎÆ{)£Í–áºè!€D.ãX,–­­-{A=%¸YN:5bÄüNLLLß¾}ññx{ _äüùó ÐÑÑÙ¸q#ï¶Ç[¾8šëò»w4mÛ¶mC‡UTT4hÐîÝ»­­­ñwðÚ¹yó®———’’•JeOáÛ’¸'Nhkk÷ïß?00ÐÍÍMWW—«=y÷ö²|/³ÿä»+õÀý«µ=¨µCßoçaë3oç²£JJJÂw:ÎPyççíƒ`bb¢¢¢bee…ŸAò]–«¿xó ïM )Üß Çàˆˆ|çU—f………¦¦¦Ý{e]\\п)-+[…Tu¨Ä[¾¥¥%++ ‡¡svïÞ]\\|íÚµN—ÐíI¼—”hsKàóÃïY'//ßé,ÛÔÔTZZzñâ۰0ÑF@Ï?*º uuuOOOIGÑ XQilla Simple API Documentation SourceForge.net Logo

VariableStore.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _VARIABLESTORE_HPP
00021 #define _VARIABLESTORE_HPP
00022 
00023 #include <vector>
00024 
00025 #include <xqilla/framework/XQillaExport.hpp>
00026 #include <xercesc/util/XercesDefs.hpp>
00027 
00028 class Result;
00029 
00031 class XQILLA_API VariableStore
00032 {
00033 public:
00035   virtual ~VariableStore() {};
00036 
00038   virtual Result getVar(const XMLCh *namespaceURI, const XMLCh *name) const = 0;
00039 
00041   virtual void getInScopeVariables(std::vector<std::pair<const XMLCh*, const XMLCh*> > &variables) const = 0;
00042 };
00043 
00044 #endif
XQilla-2.3.0/docs/simple-api/MessageListener_8hpp__incl.png0000644000151400015140000001654311653571064020537 00000000000000‰PNG  IHDR¸u³©c:bKGDÿÿÿ ½§“IDATxœíÝiXWÛà–Yƒ®€KAÄ¥*—Šð¢ÖŠT-*eQ«TÑ.X¢Rê.¨¼´b¡(ØÅJAT´J‰HE-²¨­ ت,‚ !Ùæû1mÞ˜LP`yî_ádfÎsfÎ<93LN(†!Ši‘¨;H” $JP%¨ Cv '-X°€ìÀº~ý:Ù!…(ð_ï„B¡¼óÎ;t:ì@@7466>zôÎDu#ÊfåÊ•®®®dGºÉd~ýõ×dG”{” $JP%¨‰T€D *@¢Ô8nnnþþþ2£lß¾ÝÍÍ­¶¶–¬¨$äè­­uss#+œšì@H”š¨¡¡¡ººZògkkkYY‰ñ(gddäãã£èÝúúú¥K—öe<@A¢ÔDÓ¦Mc2™’?oß¾íääD^8*˜˜˜lܸQÑ»b±˜Ãáôe<@A¢ÔD®®®L&Srõ}óæÍyóæIÞ …qqqË—/_¾|y\\œP(Dݾ}; `áÂ…¾¾¾?ÿü3¾$aaQQц -Zäåå•––†Â0ìâÅ‹ü±‡‡Ç¶mÛŠŠŠðKiŠäI_zË×øé§Ÿ"„>üðC%Á»¹¹Ý¸qcíÚµ|ðÁ¹sç-‰WTRRâíí]QQ!Fqq±ŸŸŸ§§gjjª$ª_ýuõêÕË—/ÿöÛoaáÛ) & Qj"‡_}s¹Ü’’’Ù³gKÞÍÈȨ¯¯?vìXIIIRRRGGGDDIJeËÎ;·zõêÈÈÈŽŽÂÂööö={öØÙÙ¥¤¤lÞ¼9!!Íf_¹r%99ù³Ï>KKKóóó‹UT‘ò° kmÚ²ålyùs˜$MH&jstñÍ7¾£G›“è*QL†:U0þQ>_“¤© ÉDmw÷¨S§ `˜Ò_Àˆrª¯goÛvîöí'0Išz’LÔ6{¶Ý±cÞÇÃDmêå@“’R´ÿE “˜_''˜$M}áµ56¶îÚå µ©9H”‹Åݱ#=7·bÓ&7˜$­_LÔ¶x±ãáÃ+6$;"@ eÂátÓߺzµ‚Á¸0h~LŒL’ֿ൵µuDF®Z´há2J=èp÷ªßàó…+WÆVÊ”·´´þ´téÔ7B Kö;Ó§ÉË ]ºtj@@R`à--í2 ܺU¹re,Ÿ/$%<€`DÙìÚ•™˜x˸ `ç Aÿ . +·n='cÇ4oÞxr#o‰Éü#8ø¼–%:ÚgÎ;¼Ãépq9ÔØÈ ˜»o߇äF¨±`DÙ?üôSIRR!BˆÅâîÜ™joç3¼½ãÜÜ&äço‡,9¸ºNÈÏßîæ6ÁÛû;ãB{;!´sgFs3!”˜X˜•UBvŒ F”ýÀ_ýíîÉãññcE¡P¾úÊ3#ã·º:özyM';@ÐÃ22ŠwíÊ´²2õòz÷Àü$¥P¾>5/1jÔ²Ô8(Õ@ Z¼øøãÇ/…¦TÐÒ¢èééN™2òÛoý༪¾žýùç)¥¥Ï;;’×ÕÕ7nØ•+ÛtuµÉ OÓÀ¥·º;pàÒãÇ ’,‰‹1@d`@…,9€ nj` 'ˆ$Y!$ˆ?n8xð‰i&H”jíÚµ 7…BÙ9„BQ^Þ£,&%*Ð22ŠùåwéHœP(þþû›×®= %*—ÞêëåKŽ«ëáÖÖé1……‚ŒŒh·n…Ñéƒú>6Ы[çÌ9ÈåvžZZcc}&sú>#J5%cŸ~úíí|Â,‰ÒÒÒjmí =u †a!!çÚÚ:´´ˆOO±kkëܼùÿõ Ðã´#""ÈŽˆŽþ9#£XfâBmm •ª#‰õçÏ' Àeýú¹&&ð+Ò …B™>}Œ…®®NC‡Ïêéé ôÚ¢XŒÕÕ5kiQœmÉ‹TƒÀ¥·:*(xìãÿïC!Š@ 60 ººNpu0wî8x@Dsüõ×ß·nU2™0™´·óuuµ…B±¤oœ=èâÐöº×%Çknn&1€b³y«V%±X\ !D3f°³ó˜3FM:B__—ìèúš¾¾¾™™Ù[n¤¹¹™ÇãõH<$âñ%%ÏïÝû«¨èéÓ§,|Œ9x°á… ëLMá7Ù{˜™™™¾þÿöêk‰²±±ñÑ£GdDþaرc÷ª«Ù“'upêà@75Õ#;(2 :ÔÞÞþ-7òðáæ¦¦‰GM°Ù4VT4•—7ÙØ˜Ï€_øèYï¼óN—üI0—««kß…^ÇátÄÄØÛØÐU/ª>|ØS›ê‘„«V–-ûçEuuãСÆ0·Pb2™2%0e¡z16¦AÝ«} Q€ (@H” $JP¡å“'Oðg»ä_(ñìÙ³uëÖaæïïoddÔ{á½%%mÁ›pÿþ}ôôtIyvv6•J­¨¨Àÿär¹ còäÉFFF3fÌ8tèP(Do´ß(Dzª¥*Q(”'OžôYuïE*SÔIºØ {•to=zôš5k”?ÍÚݳ¾/;^/&JSSÓíÛ·ww­¬¬¬eË–ÕÕÕ¥¦¦öÓ§ßñ&L™2%,,,((ˆÍf#„ZZZ>ýôÓðððI“&!„Z[[§OŸ~÷îÝÇ—””ìØ±#%%eáÂ…"‘èÍöÛíÛ·ë_׳ª©©177ïÙm%ð^Dø–ô±PÔ[ºÒ ûÞ-_¼x‘””Äáp¦NŠGBH­ÏzLÊË—/óóó±žVUU…W$y¡„‡‡G{{{W–$—’ñ&`ÖÙÙéàà°qãF Ã6mÚ4mÚ4>Ÿ/2wî\¡P(Y«­­môèÑqqqòU¨Ü¡ªªª·n“2Jbè½Ú>*VrxéÒ¥)S¦ >üðáÃxá«W¯ õõõgÍš…6lú÷š"//oäÈ‘………„+R(”ÄÄĉ':ôðáÃÉÉÉcÆŒ111Ù½{7¾€@  µ°° Óé¡¡¡ÀÙÙ9::!Äb±´´´BBBB"‘ÈÌÌìòåË!6›ýñÇ›››[[[‡„„tttÈD"ù¤ qrrzõê•tBT*õÌ™3‰‰‰‡JJJ:s挮î?_ÖNIIÙ³g¶öÿ&ô744d0©©©o°ßºu°ðíggg?žN§uvvªl¯äˆÈûùçŸmmmÍÌÌ:$9d2U(ªWMî+DÔs¤w “É 9räСC׬Y#.ɯ…ÊÉÉqtt¤ÑhcÇŽMNNF …BÂÕ%½Hº3H^ËŸ2méb'ìզɣP(›6mÂO.ÂíH·«‹Û컎'5»8¢\³fÍÚµk,,,îÞ½‹aX||zôHòZ~-‹¥««{ôèÑææf±XÜÚÚ*‰­®äDèJaW:ao7 S•(ÕŽ—(Ú¦´Þëx=“(1 Û»w¯¶¶¶d[úúú¥¥¥’wïß¿¯ü“!äããsöìÙÇûøøtw¿)'°pxïAUVVZZZv±½ŠÞT•©BI¡š ÜWò=/Çw‹¥¥åŸþ‰—”––8p@ÑZ<O,§§§³X¬€€OOO‹E¸ºü‰€?7V[[Û•Vt½öjÓäÃ0ì»ï¾ÃÏ/%µãº¸Í¾ëxÒY³+#J‘H4þü}ûö±X¬aÆ]¼xðƒÒéô¬¬¬úúúÜÜ\•÷(›››)Jnn.þ,!B¨¤¤Äßß¿¶¶¯…ð3SÑŠXF”AAA+V¬øóÏ?ËÊÊfΜùùçŸc–žžndd´`Á î_¿ndddoo/i©¯¯¯»»{MMMEE…½½ýž={E>nÜ8'ݱX¼dÉ’yóæá— |>ßÑÑÑÇÇ·¥¥eüøñnnnW¯^}üøqXXBˆN§wvvvw¿áÍ”|8‹Åâóù{÷î3fŒ‘‘‘³³sZZšòD‰aØñãÇ
XQilla-2.3.0/docs/simple-api/classATDateTimeOrDerived__inherit__graph.map0000644000151400015140000000077511653571064023307 00000000000000 XQilla-2.3.0/docs/simple-api/inherit_graph_24.map0000644000151400015140000000024411653571064016452 00000000000000 XQilla-2.3.0/docs/simple-api/DOMNode_8hpp_source.html0000644000151400015140000007121311653571063017260 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

DOMNode.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMNode.hpp 671894 2008-06-26 13:29:21Z borisk $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMNODE_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMNODE_HPP
00024 
00025 #include <xercesc/util/XercesDefs.hpp>
00026 
00027 XERCES_CPP_NAMESPACE_BEGIN
00028 
00029 
00030 class DOMDocument;
00031 class DOMNamedNodeMap;
00032 class DOMNodeList;
00033 class DOMUserDataHandler;
00034 
00139 class  CDOM_EXPORT DOMNode {
00140 protected:
00141     // -----------------------------------------------------------------------
00142     //  Hidden constructors
00143     // -----------------------------------------------------------------------
00146     DOMNode() {}
00147     DOMNode(const DOMNode &) {}
00149 
00150 private:
00151     // -----------------------------------------------------------------------
00152     // Unimplemented constructors and operators
00153     // -----------------------------------------------------------------------
00156     DOMNode & operator = (const DOMNode &);
00158 
00159 public:
00160     // -----------------------------------------------------------------------
00161     //  All constructors are hidden, just the destructor is available
00162     // -----------------------------------------------------------------------
00169     virtual ~DOMNode() {};
00171 
00172     // -----------------------------------------------------------------------
00173     //  Class Types
00174     // -----------------------------------------------------------------------
00182     enum NodeType {
00183         ELEMENT_NODE                = 1,
00184         ATTRIBUTE_NODE              = 2,
00185         TEXT_NODE                   = 3,
00186         CDATA_SECTION_NODE          = 4,
00187         ENTITY_REFERENCE_NODE       = 5,
00188         ENTITY_NODE                 = 6,
00189         PROCESSING_INSTRUCTION_NODE = 7,
00190         COMMENT_NODE                = 8,
00191         DOCUMENT_NODE               = 9,
00192         DOCUMENT_TYPE_NODE          = 10,
00193         DOCUMENT_FRAGMENT_NODE      = 11,
00194         NOTATION_NODE               = 12
00195     };
00196 
00215     enum DocumentPosition {
00216         DOCUMENT_POSITION_DISCONNECTED            = 0x01,
00217         DOCUMENT_POSITION_PRECEDING               = 0x02,
00218         DOCUMENT_POSITION_FOLLOWING               = 0x04,
00219         DOCUMENT_POSITION_CONTAINS                = 0x08,
00220         DOCUMENT_POSITION_CONTAINED_BY            = 0x10,
00221         DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20
00222     };
00224 
00225     // -----------------------------------------------------------------------
00226     //  Virtual DOMNode interface
00227     // -----------------------------------------------------------------------
00230     // -----------------------------------------------------------------------
00231     //  Getter methods
00232     // -----------------------------------------------------------------------
00237     virtual const XMLCh *   getNodeName() const = 0;
00238 
00246     virtual const XMLCh *       getNodeValue() const = 0;
00247 
00252     virtual NodeType            getNodeType() const = 0;
00253 
00264     virtual DOMNode        *getParentNode() const = 0;
00265 
00280     virtual DOMNodeList    *getChildNodes() const = 0;
00287     virtual DOMNode        *getFirstChild() const = 0;
00288 
00295     virtual DOMNode        *getLastChild() const = 0;
00296 
00303     virtual DOMNode        *getPreviousSibling() const = 0;
00304 
00311     virtual DOMNode        *getNextSibling() const = 0;
00312 
00318     virtual DOMNamedNodeMap  *getAttributes() const = 0;
00319 
00331     virtual DOMDocument      *getOwnerDocument() const = 0;
00332 
00333     // -----------------------------------------------------------------------
00334     //  Node methods
00335     // -----------------------------------------------------------------------
00355     virtual DOMNode        * cloneNode(bool deep) const = 0;
00356 
00384     virtual DOMNode       *insertBefore(DOMNode *newChild,
00385                                           DOMNode *refChild) = 0;
00386 
00387 
00411     virtual DOMNode  *replaceChild(DOMNode *newChild,
00412                                      DOMNode *oldChild) = 0;
00425     virtual DOMNode        *removeChild(DOMNode *oldChild) = 0;
00426 
00447     virtual DOMNode        *appendChild(DOMNode *newChild) = 0;
00448 
00449     // -----------------------------------------------------------------------
00450     //  Query methods
00451     // -----------------------------------------------------------------------
00460     virtual bool             hasChildNodes() const = 0;
00461 
00462     // -----------------------------------------------------------------------
00463     //  Setter methods
00464     // -----------------------------------------------------------------------
00480     virtual void              setNodeValue(const XMLCh  *nodeValue) = 0;
00482 
00505     virtual void              normalize() = 0;
00506 
00522     virtual bool              isSupported(const XMLCh *feature,
00523                                                const XMLCh *version) const = 0;
00524 
00540     virtual const XMLCh *         getNamespaceURI() const = 0;
00541 
00548     virtual const XMLCh *          getPrefix() const = 0;
00549 
00559     virtual const XMLCh *          getLocalName() const = 0;
00560 
00594     virtual void              setPrefix(const XMLCh * prefix) = 0;
00595 
00602     virtual bool              hasAttributes() const = 0;
00604 
00622     virtual bool              isSameNode(const DOMNode* other) const = 0;
00623 
00664     virtual bool              isEqualNode(const DOMNode* arg) const = 0;
00665 
00666 
00692     virtual void*             setUserData(const XMLCh* key,
00693                                           void* data,
00694                                           DOMUserDataHandler* handler) = 0;
00695 
00707     virtual void*             getUserData(const XMLCh* key) const = 0;
00708 
00709 
00726     virtual const XMLCh*      getBaseURI() const = 0;
00727 
00738     virtual short             compareDocumentPosition(const DOMNode* other) const = 0;
00739 
00781     virtual const XMLCh*      getTextContent() const = 0;
00782 
00794     virtual void              setTextContent(const XMLCh* textContent) = 0;
00795 
00807     virtual const XMLCh*      lookupPrefix(const XMLCh* namespaceURI) const = 0;
00808 
00818     virtual bool              isDefaultNamespace(const XMLCh* namespaceURI) const = 0;
00819 
00831     virtual const XMLCh*      lookupNamespaceURI(const XMLCh* prefix) const  = 0;
00832 
00848     virtual void*             getFeature(const XMLCh* feature, const XMLCh* version) const = 0;
00850 
00851     // -----------------------------------------------------------------------
00852     //  Non-standard Extension
00853     // -----------------------------------------------------------------------
00869     virtual void              release() = 0;
00871 #if defined(XML_DOMREFCOUNT_EXPERIMENTAL)
00872     // -----------------------------------------------------------------------
00873     //  Non-standard Extension
00874     // -----------------------------------------------------------------------
00884     virtual void decRefCount() {}
00886 
00887     // -----------------------------------------------------------------------
00888     //  Non-standard Extension
00889     // -----------------------------------------------------------------------
00896     virtual void incRefCount() {}
00898 #endif
00899 };
00900 
00901 /***
00902  * Utilities macros for getting memory manager within DOM
00903 ***/
00904 #define GET_OWNER_DOCUMENT(ptr)      \
00905         ((DOMDocumentImpl*)(ptr->getOwnerDocument()))
00906 
00907 #define GET_DIRECT_MM(ptr)           \
00908         (ptr ? ((DOMDocumentImpl*)ptr)->getMemoryManager() : XMLPlatformUtils::fgMemoryManager)
00909 
00910 #define GET_INDIRECT_MM(ptr)                                                    \
00911         (!ptr ? XMLPlatformUtils::fgMemoryManager :                              \
00912         GET_OWNER_DOCUMENT(ptr) ? GET_OWNER_DOCUMENT(ptr)->getMemoryManager() : \
00913         XMLPlatformUtils::fgMemoryManager)
00914 
00915 /***
00916  * For DOMNode and its derivatives
00917 ***/
00918 #define GetDOMNodeMemoryManager GET_INDIRECT_MM(this)
00919 
00920 XERCES_CPP_NAMESPACE_END
00921 
00922 #endif
XQilla-2.3.0/docs/simple-api/classXQillaConfiguration__inherit__graph.md50000644000151400015140000000004011653571063023374 00000000000000a13b26ea370c5ad0d4087628b8bfe150XQilla-2.3.0/docs/simple-api/graph_legend.md50000644000151400015140000000004011653571064015643 000000000000009fbb782f23f919c0064b8f454a56ede8XQilla-2.3.0/docs/simple-api/XPath2MemoryManager_8hpp.html0000644000151400015140000001722611653571064020252 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

XPath2MemoryManager.hpp File Reference

#include <algorithm>
#include <assert.h>
#include <cstddef>
#include <xqilla/framework/XQillaExport.hpp>
#include <xercesc/framework/MemoryManager.hpp>
Include dependency graph for XPath2MemoryManager.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  XPath2MemoryManager
class  XQillaAllocator< _Tp >
struct  XQillaAllocator< _Tp >::rebind< _Tp1 >
class  AutoRelease< TYPE >
class  AutoDelete< TYPE >
class  AutoDeleteArray< TYPE >
class  AutoDeallocate< TYPE >

Namespaces

namespace  xercesc

Functions

void * operator new (size_t amt, xercesc::MemoryManager *memMgr)
void operator delete (void *ptr, xercesc::MemoryManager *memMgr)

Function Documentation

void operator delete ( void *  ptr,
xercesc::MemoryManager memMgr 
) [inline]
void* operator new ( size_t  amt,
xercesc::MemoryManager memMgr 
) [inline]
XQilla-2.3.0/docs/simple-api/classATAnyURIOrDerived-members.html0000644000151400015140000004150111653571063021327 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATAnyURIOrDerived Member List

This is the complete list of members for ATAnyURIOrDerived, including all inherited members.
_ref_countReferenceCounted [protected]
ANY_SIMPLE_TYPE enum valueAnyAtomicType
ANY_URI enum valueAnyAtomicType
asString(const DynamicContext *context) const =0ATAnyURIOrDerived [pure virtual]
AtomicObjectType enum nameAnyAtomicType
BASE_64_BINARY enum valueAnyAtomicType
BOOLEAN enum valueAnyAtomicType
castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [protected, virtual]
castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
DATE enum valueAnyAtomicType
DATE_TIME enum valueAnyAtomicType
DAY_TIME_DURATION enum valueAnyAtomicType
DECIMAL enum valueAnyAtomicType
decrementRefCount() const ReferenceCounted [inline, virtual]
DOUBLE enum valueAnyAtomicType
DURATION enum valueAnyAtomicType
equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0ATAnyURIOrDerived [pure virtual]
fgDT_ANYATOMICTYPEAnyAtomicType [static]
FLOAT enum valueAnyAtomicType
G_DAY enum valueAnyAtomicType
G_MONTH enum valueAnyAtomicType
G_MONTH_DAY enum valueAnyAtomicType
G_YEAR enum valueAnyAtomicType
G_YEAR_MONTH enum valueAnyAtomicType
generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicType [virtual]
getInterface(const XMLCh *name) const =0Item [pure virtual]
getPrimitiveTypeIndex() const =0ATAnyURIOrDerived [pure virtual]
getPrimitiveTypeName() const =0ATAnyURIOrDerived [pure virtual]
getPrimitiveTypeURI() const AnyAtomicType [virtual]
getRefCount() const ReferenceCounted [inline]
getTypeName() const =0ATAnyURIOrDerived [pure virtual]
getTypeURI() const =0ATAnyURIOrDerived [pure virtual]
gXQillaItem [static]
HEX_BINARY enum valueAnyAtomicType
incrementRefCount() const ReferenceCounted [inline]
isAtomicValue() const AnyAtomicType [virtual]
isDateOrTimeTypeValue() const AnyAtomicType [virtual]
isFunction() const AnyAtomicType [virtual]
isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicType [virtual]
isNode() const AnyAtomicType [virtual]
isNumericValue() const AnyAtomicType [virtual]
isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
Item()Item [inline, protected]
NOTATION enum valueAnyAtomicType
NumAtomicObjectTypes enum valueAnyAtomicType
Ptr typedefAnyAtomicType
QNAME enum valueAnyAtomicType
ReferenceCounted()ReferenceCounted [inline]
STRING enum valueAnyAtomicType
TIME enum valueAnyAtomicType
typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicType [virtual]
UNTYPED_ATOMIC enum valueAnyAtomicType
YEAR_MONTH_DURATION enum valueAnyAtomicType
~ReferenceCounted()ReferenceCounted [inline, virtual]
XQilla-2.3.0/docs/simple-api/ATDurationOrDerived_8hpp__dep__incl.map0000644000151400015140000000042411653571064022232 00000000000000 XQilla-2.3.0/docs/simple-api/tab_b.png0000644000151400015140000000026211653571063014377 00000000000000‰PNG  IHDR$ÇÇ[yIDATxíÝÛ Â €Ñ?|SVÓˆ´bB#P®½8³‰O¾:É™D>ßm{SûIí'¹äz(!•TBÞ‰y#¤WìJDp¾ã|Ã…†ó »ìR˜]áá æ™Ð6q·‰›]ç•qŠŒÓÊÕD.&0èÀ =ƒJD”ˆü=@*é*ç×IEND®B`‚XQilla-2.3.0/docs/simple-api/classStaticContext__inherit__graph.map0000644000151400015140000000060411653571064022345 00000000000000 XQilla-2.3.0/docs/simple-api/classLocationInfo.html0000644000151400015140000002660411653571064017133 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

LocationInfo Class Reference

A class that gives records a location in the query. More...

#include <LocationInfo.hpp>

Inheritance diagram for LocationInfo:

List of all members.

Public Member Functions

 LocationInfo ()
 Constructor that sets the information to 0.
 LocationInfo (const XMLCh *file, unsigned int line, unsigned int column)
 Constructor that takes the initial information.
const XMLCh * getFile () const
 The file that the query was parsed from.
unsigned int getLine () const
 The line in the query.
unsigned int getColumn () const
 The column in the query.
void setLocationInfo (const XMLCh *file, unsigned int line, unsigned int column)
 Sets the location to the given information.
void setLocationInfo (const LocationInfo *o)
 Sets the location with the information in the given LocationInfo object.

Detailed Description

A class that gives records a location in the query.


Constructor & Destructor Documentation

LocationInfo::LocationInfo ( ) [inline]

Constructor that sets the information to 0.

LocationInfo::LocationInfo ( const XMLCh *  file,
unsigned int  line,
unsigned int  column 
) [inline]

Constructor that takes the initial information.


Member Function Documentation

unsigned int LocationInfo::getColumn ( ) const [inline]

The column in the query.

const XMLCh* LocationInfo::getFile ( ) const [inline]

The file that the query was parsed from.

This could be null.

unsigned int LocationInfo::getLine ( ) const [inline]

The line in the query.

void LocationInfo::setLocationInfo ( const LocationInfo o) [inline]

Sets the location with the information in the given LocationInfo object.

void LocationInfo::setLocationInfo ( const XMLCh *  file,
unsigned int  line,
unsigned int  column 
) [inline]

Sets the location to the given information.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classATHexBinaryOrDerived__inherit__graph.png0000644000151400015140000001536311653571064023512 00000000000000‰PNG  IHDR¨«Ç¨ObKGDÿÿÿ ½§“¨IDATxœí{TWâÇoHPÀ „"Rž EQ|TeQk­«U¡,Z׊‡Ú£¢µµ ûÏA¬zv«-‚ºTDê–öðªk¡ˆ€´X „( …yF2Éüþ˜6›†0F¸÷søãÎä>¾3ŸÌIB2Ç>ŒÈ€ $RxHAâ!…¦_³5kÖ6BoòòòôhEÑ爵B¡øøøÌœ9S¶CÑØØXZZªçë2\/\.W¿¶CÁårõ6ˆÎñ‚ÄC )H<¤ ñ2†â)j˜ššúúúVUUé¨ãø{ï½G§ÓÇ.ÒHhii vtt¤Óé‹/¾yó&)1êêê(ÊØõ?¶G|II‰X,‹Å<ÏÍÍíÝwßŇ~ÑÙÒÒòõ×_×ÔÔŒi$Ýtttx{{›™™q¹Ü²²²mÛ¶}ÿý÷£ïY(2™ÌÑ÷c(ô|çn„ØØØØÚÚlmmØlöo¿ýÆb±´Vîïï888Œi$Ý=zÔÏÏ/%%…X|õÕW[[[?ÿüó7Þxc”=+•ÊŽŽŽQ4ú½ü#x T‹‰dÊ”)2™ŒXˆŠŠb±X666QQQ Àf³‡ª ùùù3gμ{÷îà Ä éééîîîVVV'NœÀq\.—ÇÄÄÌœ9“Éd†„„H¥Ò¡úÇqÜÖÖ¶¤¤D}+º»»?~L”¥RéÎ; ÆŒ38ÐßßOD"U/Ž1ìÖa–àææF§Ó—-[–žž>¬Ñ¼3¶â«ªªº»»»»»›››÷ìÙ³k×.Õ£'NœØºuë“'Ox<Þ‚ >¬¾ãtTxóÍ7 {zzW  J¥ÉÉÉ€ŽŽŽ“'Ozzzòx<>Ÿ¿dÉ’¨¨¨¡ú—J¥‰D2Ômß¾Ýßß¿¾¾žÇãÍ™3'66V‡xÃnÝéÓ§Y,VVVVKKËþó‡3Å«C§ÓkjjTº»»‹Åb¢œ——7þ|]3T7TbТ¢"Lj)göìÙYYYDµššUyps‰DPM  P©ÔŸþ™XÌÊÊruuÕ!^#ư[7kÖ¬‹/ª*\ºti‹WMõ½½½ðññQ=jbb¢þ´°°°ÐØ5CU æd­ˆA=z¤ÀÄÄ„Ïçާµ9›Í...V¯VVV¶hÑ¢ÞÞÞÆÆF@?±žÇ㙘˜¨g®­­U¯cØ­355­ªªRUxðàÁ˜Š§×ñfffï¿ÿþ/¿ü‚ÿ10™LÕÓB*•–––j4ª‚±±±î FFÚ(‡#‰ˆrUUÕñãÇu4߸qã©S§pµé*==].—›™™±Ùl*•* ‰õõõõ3fÌ Ê†š››ÕÇÕˆ1ìÖ9::VWW«*üòË/:šýž/àÅ/î?~ èêê"÷îÝ ‰ª««—,Y©qLèQAcP¢|ôèQ///>ŸÏçó}}}CCCu4okkc0Û·o/..®®®Žܾ}›hìïï/ ù|¾§§gLLÌo¿ý¸pá³gÏ6oÞ ÔŽxDøîîî¡Fÿç?ÿÉb±²³³Åbqnn®³³ó°v&ÀTã¸B¡˜>}zCC±ØÕÕµk×.+++ƒÖÛÛ«áU ¸¶=.“É¢¢¢8Ž……EPPꮵ9Žã"‘( €Ãᘛ›¿öÚk999ª%IHHƒÁ°³³Û·o1íÇÅÅYZZº¸¸ÜºuK‡x¹\¾|ùr:>Ôè†ÝÄÊj ÉÈ`lã¥ÂÊjšº×iÓ¦^y…A^"2hªG¨ƒÄC )H<¤ ñ‚ÄC )H<¤ ñ‚ÄC )H<¤ ñ‚ÄC )H<¤ ñ‚ÄC )H<¤ ñ‚ÄC )H<¤ ñ‚ÄC )H<¤ ñ‚ÄC )H<¤L¼_ÄÈÏÏWÝÒy4\»Ö  œ1ú®œW¯^=ú~ÆÝætü0Ô=¨T *Õ ]’½W^˜ 9ÕdGcX'†u޾Ÿ z³Ž )1zxHAâ!‰‡$RxH™´â)J]]Ù)^^&­xB¡Éd’â¥cò‹W*•d§xé˜üâ}||¶¶¶Ä¢\.?xð ›Íf±X”Ëå …’ššêááaccåÊ''' ‹èèh2£%“_|ii) µµ•X??¿¬¬,>>þ“O>¹}û6Ç;yòd\\ܤ-Fÿfõ88’÷êÇq@ ¾™îîîb±˜(çååÍŸ?Ÿ¨\YY‰ãøÀÀ€F™èdôy^6 ú½z‘Hdg÷¿ÛG[Xüþ¹¹9ÀØØX£¹yH:ñµÖÖ¶ª­Àkk[=j²Á$:ñ·n= Ñ¨êkh4jNβò\âq¿víó<†)23ïÃö~\⫪››¥ƒ×77K««Ç?‰À%>;»Rcž' Ñ¨Ùٕ㟇D ¯P(¯_לç 0Lqýz¹B¡ÿTd‘øÒR¡TÚG£Q§L¡iüÑhT‰¤÷Þ=ü`æDaB~:§4šÑ‘#T‹·oW6l˜§^„X$é§s€ððK€¤¤d!ˆžãuxHAâ!‰‡$RxHAâ!‰‡$RxHAâ!‰‡$RxHAâ!‰‡$RxHAâ!‰‡$RxHAâ!‰‡$RxHAâ!‰‡$RxHAâ!‰‡$R ü‹ Å€½)¦¦î€þþ_É2R kÊð¿³oß¾¥K—¼[˜ù駟Μ9cØ> /ÞÇÇ'00ÐàÝÂÌXüN:ÇC )H<¤ ñ‚ÄC iâ;F¡PâããIïDƒºº:ïFdddP´QU5ÁnlCŽxÇ322¸\®a; …L&s4Ù,--?þøã¡Ý´i“X,‹Å%%%ñxzzŽfPÀ €Ëå[­ººšB¡äåå=z¤ßXZ;ß(­ŒÛ@8ŽÏlÃöIΟ‘‘±jÕªÕ«W»»»«¯ å믿öðð°¶¶NHHìÝ»w÷îÝÄ£===fff<ÐщÀÖÖ–Xììì|ÿý÷™L¦½½}TT”L&#FIMMõðð°±±‰¿r劓““……Ett4P›ê1 ;zô¨ƒƒƒÍŽ;:;;ul‘ÖœDW·nÝš={6‹ÅÚ»wïóçÏr¹üàÁƒl6›Åb}ªP(\\\ˆEWWצ¦&¢lnn®E½¬ÎãÇÝÜ܈²‡‡‡‡‡‡Ž*'@Õ‰»»;@$ÙÙÙ©*XXŒööz0Þçx…BÁårOŸ>Ýýû÷ï'&‰ßiF ¼yófffæòåËíííGÒ ›Í¦R©Báï7©¯¯Ÿ1cÆÈ£r8‘HD”«ªªŽ?®»þàœÄq¨­­%žÖL&S GžT*---y*ƒaØ  7ÕQ©Ô§OŸªÖ”——ƒ?æ[b7©º"ʆ±X,6›––6l'Ä^îîî&Öûûû …B>Ÿïéé3Ô(ª²j?zô¨——ŸÏçóù¾¾¾¡¡¡ê2øª~pN¢ŽŸŸŸ@ (++sss#ìÝ»7 @$UWW/Y²$22R÷^ çøðððµkת¯Q*•...ü1>´’>øÀÔÔ´««kØNärùòåËét:±^"‘„„„0 ;;»}ûöõ÷÷ëEC¼L&‹ŠŠâp8AAAR©T}D­/ç4ruRRR^yå&“ùᇺººvíÚeeeÅ`0ÂÂÂz{{uïÕÉ ^?>ýôÓàà`ƒwkp4rêµþ$¹¸{!d2YKKKjjêÕ«WÉ΢‹‰’SÅËþ!ͽ{÷-Zô·¿ýíõ×_';‹.´æœ>}zxx8y¡tñ²ñ«V­’H$d§­9Y,Vbb")y†åe?âc)H<¤ ñ¯xâå,Ù)H^ñ¥¥B¨î®¼ß³°ð<{VDv‘bXS~Ÿ™™iØÇ…?rä>…‚'&~@¥N˜'«1°ø‰ò­¹Â‡ýý¥àl¶—ŸŸ;ÙqHÒsüµk÷©T ftíÚ}²³Œâ{{Ÿ÷_¡Pb˜27—××7@v"€Q|~~\® Êr¹"?ÿróŒâ¯_/W[¢üy /•öþðïJåï/”JeQѯRi/¹©ÆèÄû-Oã1ŽƒÜ\>YyÈ:ñׯ¾ŒÇµ­œäÀ%^,î,+©æy¥¿w¯¡µõY©H.ñ99UZß§£R)99ì{Σ.ñ×®ÝW(´¼ã­P(a{'"ñ"QûÇb­uà8¨©i‰ÚÇ?Y¼ìÿli@**D¥RI,vvö,-͈E##£Š ‘£ã¨~Taaàe'áá—II;ÉBMõuxHAâ!‰‡$RxHAâ!‰‡$RxHAâ!‰‡$RxHAâ!‰‡$RxHAâ!‰‡$RxHAâ!‰‡$RxHAâ!‰‡$RxHAâ!‰‡$Rþô‹kÖ¬!1Ê8ÓÚÊØÚ¶düÈËËS•ÿ$žB¡¼úê«,‹ŒTˆ1¤­­­¦¦Fݵæ¾ä7óDèÁ?üðüC} :ÇC )H<¤ ñ‚ÄCŠž?izùòå´´´ÐÐÐàà`bMaaá±cÇ×LNN MOOŸ1c†j¥ŸŸŸÆš‘àçç§*ÓéôE‹}ôÑG–––ÍÍÍï½÷^Q‘áo(“É.^¼xÿþ}±Xìàà°bÅŠmÛ¶Q©TÁØlö¼yó""",--G2ÄèÃë׃>âq/,,d±XEEE*ñ¾¾¾7n܈ÅâÈÈH¢ ˜>}ºC ÅÙ³gíììpoooÿâ‹/þõ¯ÅÄÄÐéô   ŽBÐ××aeeÎáp.\¸P^^~êÔ)##Í™’¦T*oܸ–ššJ§Ó‡eŒÂ‹>S}CCÓ'O:TWW×ÔÔD¬œ:uªµµµµµ5ñL·þÍ¿“liiimmÍ`0fÏžVVV°°° 3à(—/_¶´´<}úôk¯½foo¿bÅŠÄÄÄÖÖÖÜÜÜ¡‚1™LooïcÇŽÙÙÙ]»vm$£ŒQøaÑG|aaá¼yó.\èààPXX8ʆ%&&nÞ¼yóæÍ‰‰‰†•””tww BBBd2Ùà†T*ÕÊÊ ÐÜܬšlýüüòóówîܹqãÆŒŒ båO?ýºnݺ­[·þûßÿV5©¬¬|÷ÝwÈšýýýëÖ­€¼¼¼;v¨Ü&&&Û¶mËËËSoÎçkÞφB¡lܸ±´´t¨ ToþÝwßá?ûì³/¿ü’h"—Ëÿú׿= n®T*322BBBÖ¯_ùðáC=vû ‹'æyÀÊ•+Gxj‘Édýj¨?týúu±Xœ””têÔ©ÊÊÊ´´´eË–-\¸ðܹsR©ôܹsGŽ111Q璘¯¯±±1%%Eë‡ ?þøã¹sçÂÃÓ’’º»»ûúúbbbÜÜÜÒÓÓ#""’““;;;‰š™™™‡Þ½{wqq±B¡ÛÙÙ¹ººöôôH$WWWÎ]]]ŸÛikoo¯®®ŽŽŽ‹Åï¼óÎP8TÔÅ‹÷ôô\¼xQýl8¸ùÆ¿úê«ââb‰DRVV–ššª{håÅŽøÂ ¨ïk777‡STT¤õg$ìÞ½ûìÙ³¡¡¡ eåÊ•áááÙÙÙAAA4mß¾}§OŸž;w®¹¹9 22’hE¡Pœœœbcc‡iètzDDD\\œ©©ipp°¿¿ÿ¡C‡Îž=«^ÇÈÈhåÊ•ßÿ=qíB`ffvþüù´´´ÄÄÄ––;;;ÿÀÀ@ccãÁ£¨‚±X,//¯óçÏ«¦ôÁØÞ®ý®G4mÕªU«V­Ò±ŒårùW_}ÕÑÑáââ½gÏÝ;a0šÿˆqôèQ8?OIIimmýì³ÏÈ2&ŸÇ«»FïÕƒ±Xœ››«ºp$<|ø0<<üÍ7ßœ?>ÙYƈî;7óæÍËÉÉ!;ÅxƒŽxHAâ!‰‡$RxHAâ!Eó;gggâ¿“ ©T* ‡ü U``à¸GBŒŸ/Ã{ÿxÈAçxHAâ!‰‡$Rþ‘¯ºP¸?IEND®B`‚XQilla-2.3.0/docs/simple-api/inherit_graph_29.png0000644000151400015140000000416011653571064016467 00000000000000‰PNG  IHDRà(hôaobKGDÿÿÿ ½§“%IDATxœíšmHS_ÇÏòïò‰œ™i‰ee¡”‰TšöžKe–†!=¼jSCt¡…+¡AC°zŠ`1¬ÀÊL‘©o–lÒƒŠ©™‹Ô¦Û•Ímîü_\þ÷ÿ÷is޼ð?ŸWçþîyøžßùîܳ» „à+Ö[Á2(‚× ƒ"x 2(‚×üE¹®¯¯ïíí])„D"©©©!G¨5_¾|ÉÌÌüƒªèï ©dff¶µµýIÄ¿Ðƒè Šà5È ^ƒ Šà5È ^ƒ Šà5¾tii©¢¢âÀaaa‡jhhp¹\~T†# ž››ûíÛ7ïÛŽ‘#­­­&†††Ö.`llL ˆ‚¿À0L&“íØ±#88x÷îÝ …Ân·ûÜ›<ÆI­AõšðÑ V«5##cppP©Têõúªª*µZ}üøñ••ÿêèt:“É433ÓÓÓãv»/\¸ÀVs||<::š£«3gΘL&“ɤÓé¦HIIY£<2"‘¨²²rU¼äÆz½¾½½}jjêÉ“'Z­V.—û±ú¤Øjú}h*ð¿äçççççCOÈd²£Gº\."‚aXbbbSS“Ƕ«0::J\NOO+ŽŽ’gDiËQÓ_òØFñ×p"‘h``€¸ìééIHHð¹¶VÜ“ò²`ôž;¨Z­®­­  "¡¡¡†üà —N§\.ß²eKLLŒ\.w:øÝ®®®„„„ôôôK—.á51 ùøñ#}\|Dü,ñòå˃†„„lݺU©TŽ9ˆ%ê¿yóf×®] Ó!+éëë£KeÔÏÝ9BÆŠ¾¾>¶nÚ´I¥RÍÏÏã—‰drr’Þ?=3.—K¡P$$$lÞ¼¹¤¤daa,B(“ÉÒÒÒæææ8²fß¾}‘‘‘÷ïß§ íÂzÆS0›Í€ÙÙYJ¼¿¿?22’ü‘"—ïÝ»wöìÙ©©)ƒÁžž^UU…ß=uêÔû÷ï_¿~åt:!„jµ:%%ÅívCCCCV«Õb±Œåååedd@-‹P(,++›žžV«Õ€_¿~ÑwÐÜÜ\‹ÅÒÞÞ˜››#nQj’•`F—ʨŸ,ÀétÒ7NÊpÜ©À0laa¡¹¹¯L.wvvÆÇÇoܸ1''§±±qbb‚>ÆÌ466¦¤¤ £Ñxøða™LF´r»Ý„;‰¼Q&eµZ‰[çÎ3›ÍÍÍÍ€ùùyúrs/(ŒÞóÝ äõÆÑétÑÑÑlÝ»w¯ÉdÂËoß¾MKKÃï ¡ËåŠíêꂞ>}Z©T! ÌÊÊŸ>ËËËŸ?Æ0lee¥§§0::J7è‡ „øÉ˜üØb4(®„Q*[þïèèðhPîTpãr¹êêêRSS4 ¥ÆÌ$''?þ¯ðéÓ'¼Œ·ª¨¨|ýú•œ7¶ ÐÝÝ !t8ôœ{³ øÍ ÂØØØwïÞQ‚*•J,“ŒŒå   ò„ÃÃÃñš‡¯põêÕk×®ÍÎÎ …Âïß¿a;iµZ±Xœ––VZZÊfБ‘Æ~ J(¡Ke 2ÊóhP©`ð––âÜïv»kjjâããéýÓ3d4u;v,;;ûâŋ伱åœle6ƒr/(þ<ƒž?¾¾¾žøÎ.•J[ZZ”J¥T*Å#ø1ñÇD|sÅG5›Íx<00/äçç¿xñ¢­­M,oÛ¶[€Íf+((Ëåz½^¥R±U[ÕûB £T6ý>à1Œ@‹ŠŠŒF#~)Nœ8AµÇ˜™¸¸¸‰‰ ¼<44t÷î]¢~GGGSSSkkkww·7â7lðàß”u8ßšÕÖÖþüù3''§³³sdddçÎEEEv»ýòåË"‘ðìÙ3‹ÅòðáC¢I^^Þ­[·&'' ÃÉ“'=zDé-PWWW\\ìQÀòò²Ãá …6›M¡P¬V+~ Ã0ß&Å-Õ£~Â33óôéÓ––?JB¬þZP¾üYdpp0##£¬¬,;;{½µ ü€¿ÔŸ;èZÈÊÊúýû÷z«@ø -(_vP‚dP¯AEðdP¯AEðdP¯axÍÔÛÛ›““óç¥ þçF‰DB R º–*ˆµ ‘Hèö£þ@ð tEðdP¯AEðdP¯ùÑì4¨,dkIEND®B`‚XQilla-2.3.0/docs/simple-api/ItemFactory_8hpp.html0000644000151400015140000001764611653571064016714 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ItemFactory.hpp File Reference

#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/mapm/m_apm.h>
#include <xqilla/items/ATAnyURIOrDerived.hpp>
#include <xqilla/items/ATBooleanOrDerived.hpp>
#include <xqilla/items/ATDateOrDerived.hpp>
#include <xqilla/items/ATDateTimeOrDerived.hpp>
#include <xqilla/items/ATDecimalOrDerived.hpp>
#include <xqilla/items/ATDoubleOrDerived.hpp>
#include <xqilla/items/ATDurationOrDerived.hpp>
#include <xqilla/items/ATFloatOrDerived.hpp>
#include <xqilla/items/ATGDayOrDerived.hpp>
#include <xqilla/items/ATGMonthOrDerived.hpp>
#include <xqilla/items/ATGMonthDayOrDerived.hpp>
#include <xqilla/items/ATGYearMonthOrDerived.hpp>
#include <xqilla/items/ATGYearOrDerived.hpp>
#include <xqilla/items/ATQNameOrDerived.hpp>
#include <xqilla/items/ATStringOrDerived.hpp>
#include <xqilla/items/ATTimeOrDerived.hpp>
#include <xqilla/items/ATUntypedAtomic.hpp>
#include <xqilla/ast/ASTNode.hpp>
#include <xercesc/util/XMemory.hpp>
#include <xqilla/items/ATAnyURIOrDerived.hpp>
#include <xqilla/items/ATDateOrDerived.hpp>
#include <xqilla/items/ATDateTimeOrDerived.hpp>
#include <xqilla/items/ATDoubleOrDerived.hpp>
#include <xqilla/items/ATFloatOrDerived.hpp>
#include <xqilla/items/ATGDayOrDerived.hpp>
#include <xqilla/items/ATGMonthOrDerived.hpp>
#include <xqilla/items/ATGMonthDayOrDerived.hpp>
#include <xqilla/items/ATGYearMonthOrDerived.hpp>
#include <xqilla/items/ATGYearOrDerived.hpp>
#include <xqilla/items/ATStringOrDerived.hpp>
#include <xqilla/items/ATTimeOrDerived.hpp>
#include <xqilla/items/ATUntypedAtomic.hpp>
Include dependency graph for ItemFactory.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  ItemFactory
XQilla-2.3.0/docs/simple-api/classAnyAtomicType__inherit__graph.md50000644000151400015140000000004011653571063022200 000000000000002f97aad9a32a8bc9f41016e0fd993191XQilla-2.3.0/docs/simple-api/classAnyAtomicType__inherit__graph.map0000644000151400015140000000631411653571064022303 00000000000000 XQilla-2.3.0/docs/simple-api/Result_8hpp_source.html0000644000151400015140000002746011653571063017316 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

Result.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _RESULT_HPP
00021 #define _RESULT_HPP
00022 
00023 #include <string>
00024 #include <xercesc/util/XercesDefs.hpp>
00025 
00026 #include <xqilla/framework/XQillaExport.hpp>
00027 #include <xqilla/items/Item.hpp>
00028 #include <xqilla/runtime/ResultImpl.hpp>
00029 #include <xqilla/runtime/EmptyResult.hpp>
00030 
00031 class Sequence;
00032 class SequenceType;
00033 class DynamicContext;
00034 class StaticType;
00035 
00037 class XQILLA_API Result
00038 {
00039 public:
00040   Result(const Item::Ptr &item);
00041   Result(const Sequence &seq);
00042   Result(ResultImpl *impl);
00043   Result(const Result &o);
00044   Result &operator=(const Result &o);
00045   ~Result();
00046 
00048   ResultImpl *operator->();
00049 
00051   const ResultImpl *operator->() const;
00052 
00054   ResultImpl *get();
00055 
00057   const ResultImpl *get() const;
00058 
00060   bool isNull() const;
00061 
00062   EmptyResult* getEmpty() const;
00063   
00064 private:
00065   ResultImpl *_impl;
00066 
00067   static EmptyResult _empty;
00068 };
00069 
00070 inline bool Result::isNull() const
00071 {
00072   return _impl == 0;
00073 }
00074 
00075 inline ResultImpl *Result::get()
00076 {
00077   if(_impl) return _impl;
00078   return getEmpty();
00079 }
00080 
00081 inline const ResultImpl *Result::get() const
00082 {
00083   if(_impl) return _impl;
00084   return getEmpty();
00085 }
00086 
00087 inline ResultImpl *Result::operator->()
00088 {
00089   return get();
00090 }
00091 
00092 inline const ResultImpl *Result::operator->() const
00093 {
00094   return get();
00095 }
00096 
00097 #endif
XQilla-2.3.0/docs/simple-api/ATGYearOrDerived_8hpp.html0000644000151400015140000000634011653571064017513 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATGYearOrDerived.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/items/DateOrTimeType.hpp>
#include <xqilla/items/Timezone.hpp>
Include dependency graph for ATGYearOrDerived.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  ATGYearOrDerived
XQilla-2.3.0/docs/simple-api/ATGDayOrDerived_8hpp.html0000644000151400015140000000632311653571064017331 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATGDayOrDerived.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/items/DateOrTimeType.hpp>
#include <xqilla/items/Timezone.hpp>
Include dependency graph for ATGDayOrDerived.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  ATGDayOrDerived
XQilla-2.3.0/docs/simple-api/classContentSequenceFilter.html0000644000151400015140000005161411653571064021017 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ContentSequenceFilter Class Reference

#include <ContentSequenceFilter.hpp>

Inheritance diagram for ContentSequenceFilter:

List of all members.

Public Member Functions

 ContentSequenceFilter (EventHandler *next)
virtual void startDocumentEvent (const XMLCh *documentURI, const XMLCh *encoding)
 Handles a document node as an event.
virtual void endDocumentEvent ()
 Handles a document node as an event.
virtual void endEvent ()
 Called when all events have been reported.
virtual void startElementEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname)
 Handles the start of an element node as an event.
virtual void piEvent (const XMLCh *target, const XMLCh *value)
 Handles a processing instruction node as an event.
virtual void textEvent (const XMLCh *value)
 Handles a text node as an event.
virtual void textEvent (const XMLCh *chars, unsigned int length)
 Handles a text node as an event.
virtual void commentEvent (const XMLCh *value)
 Handles a comment node as an event.
virtual void attributeEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)
 Handles an attribute node as an event.
virtual void namespaceEvent (const XMLCh *prefix, const XMLCh *uri)
 Handles a namespace binding as an event.
virtual void atomicItemEvent (AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)
 Handles an atomic item as an event.

Constructor & Destructor Documentation

ContentSequenceFilter::ContentSequenceFilter ( EventHandler next)

Member Function Documentation

virtual void ContentSequenceFilter::atomicItemEvent ( AnyAtomicType::AtomicObjectType  type,
const XMLCh *  value,
const XMLCh *  typeURI,
const XMLCh *  typeName 
) [virtual]

Handles an atomic item as an event.

Reimplemented from EventFilter.

virtual void ContentSequenceFilter::attributeEvent ( const XMLCh *  prefix,
const XMLCh *  uri,
const XMLCh *  localname,
const XMLCh *  value,
const XMLCh *  typeURI,
const XMLCh *  typeName 
) [virtual]

Handles an attribute node as an event.

Reimplemented from EventFilter.

virtual void ContentSequenceFilter::commentEvent ( const XMLCh *  value) [virtual]

Handles a comment node as an event.

Reimplemented from EventFilter.

virtual void ContentSequenceFilter::endDocumentEvent ( ) [virtual]

Handles a document node as an event.

Reimplemented from EventFilter.

virtual void ContentSequenceFilter::endEvent ( ) [virtual]

Called when all events have been reported.

Reimplemented from EventFilter.

virtual void ContentSequenceFilter::namespaceEvent ( const XMLCh *  prefix,
const XMLCh *  uri 
) [virtual]

Handles a namespace binding as an event.

Reimplemented from EventFilter.

virtual void ContentSequenceFilter::piEvent ( const XMLCh *  target,
const XMLCh *  value 
) [virtual]

Handles a processing instruction node as an event.

Reimplemented from EventFilter.

virtual void ContentSequenceFilter::startDocumentEvent ( const XMLCh *  documentURI,
const XMLCh *  encoding 
) [virtual]

Handles a document node as an event.

Reimplemented from EventFilter.

virtual void ContentSequenceFilter::startElementEvent ( const XMLCh *  prefix,
const XMLCh *  uri,
const XMLCh *  localname 
) [virtual]

Handles the start of an element node as an event.

Reimplemented from EventFilter.

virtual void ContentSequenceFilter::textEvent ( const XMLCh *  chars,
unsigned int  length 
) [virtual]

Handles a text node as an event.

Reimplemented from EventFilter.

virtual void ContentSequenceFilter::textEvent ( const XMLCh *  value) [virtual]

Handles a text node as an event.

Reimplemented from EventFilter.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classxercesc_1_1MemoryManager__inherit__graph.map0000644000151400015140000000023511653571064024331 00000000000000 XQilla-2.3.0/docs/simple-api/XPath2MemoryManager_8hpp__dep__incl.map0000644000151400015140000000077011653571064022212 00000000000000 XQilla-2.3.0/docs/simple-api/ReferenceCounted_8hpp__incl.map0000644000151400015140000000003511653571064020643 00000000000000 XQilla-2.3.0/docs/simple-api/InputParser_8hpp__dep__incl.map0000644000151400015140000000024011653571064020664 00000000000000 XQilla-2.3.0/docs/simple-api/functions_func_0x72.html0000644000151400015140000002523411653571063017321 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
 

- r -

XQilla-2.3.0/docs/simple-api/StaticType_8hpp__incl.png0000644000151400015140000003232311653571064017530 00000000000000‰PNG  IHDRÃuÌW±bKGDÿÿÿ ½§“ IDATxœíÝy`SUú?þ“¥{éÞt…m“¶)eUa  ÐTpEEÐqD@‡‡E?¸€ÀŽÛOaTü Š¢²iiÙÅ--mºÐ}§Kº¤Ív¿\½†lMÚ4I“÷ë¯4½Ë¹7çžäÉsîEQÀdl[7†D’`D’`D’`®­Ð7fggÛºŽãÕW_MMMµu+`xC$ ö.??ÿÚµkB¡ÐÖ qYYYK—.µu+`ØC$ ÀP(\·n­[á²²²lÝp¸ÕH̃H̃H̃H̃ڭà d2Ù®]»²³³[[[ƒƒƒgÏž½hÑ"WWW³6R[[»xñâÌÌL½ÿ=uêÔÆuŸß±cGLLÌ@­ÏÌ™3wïÞa© X"Ip~øaccㆠ‚ƒƒ«ªª>üðÃÎÎÎ+VÔ××?û쳇6´¢æÞÞÞ .4´äôéÓ¿ýö[z•^x~Lñññ±ôÑØ5ÌnqæÌ™¥K—ÆÆÆúùù%%%­X±âìÙ³„µZ-•J¬¨¹€¯¯ï²eË -éææàççG ø—‹ofÀ¹ ’áééyèÐ!&&LJJÚ¿?!äùçŸ'„<ôÐCôóçÏŸ_ºtéœ9sæÏŸÿÕW_i-P[[;sæLBˆJ¥úüóÏ}ôÑ|póæÍ]]]Fv½uëÖÿüç?ôc™L6gΜ’’zSgÏž}â‰'æÍ›·uëV…BAQ*•Û·oŸ7oÞ¼yó¶oß®T*u7xùòåE‹Ýÿý{öìaZ¥µ)CÛ°D’à V¯^››ûðï^½zÿþýôó}ô!äàÁƒ„žžž×_=66v÷îÝÏ=÷ÜŽ;ÚÛÛ5`8p ;;{óæÍï¿ÿ~uuõîÝ»ì:55õìÙ³*•ŠröìÙ°°0æ¶ÉC‡mÞ¼ùÍ7ß¼xñ"¸8p ¾¾þã?~÷Ýwsss?ÿüsÝ ^¼xqÇŽkÖ¬Ù¹s'ënÊГC ‘$8ˆ)S¦ìß¿ÿƒ>7nÜñãÇüñŸþYkWW×O?ýtÅŠ<ÒÝÝ­wk?þøãÓO?=vìØ1cƼôÒKB¡ÐÈ®¹\n^^!ääÉ“,‹þ×sÏ=ÿÌ3ψÅbBÈÑ£Gÿñðx¼±cÇ._¾üÒ¥Kº|ôÑG===g̘Aéìì4´)CO 5Ü׎ ··÷ܹsiiiññññññO<ñÄ®]»¶oß>{ölÍŸ\nMMÍ;ï¼#“Ébccl°±±122’~eda6›œœœ=vìØ_ýuåʕ̿˜Œ5ª¹¹™ÒÐÐ0þ|f///Ý B˜pÔЦ = 0Ô“G@QÔ¦M›ÊËËé?Y,ÖwÜAO7ÕÔ××·~ýúÇ{ì“O>ùç?ÿidƒ ôãÒÒRã³[ !iii999YYYãÆ fž¯©©¡TWWÓñ¡¯¯ïîÝ»3333339BÏ­Õ¢CÚ”¡'†"Ipo¼ñÆ… êëë þ÷¿ÿi&$e2!D¡P(•J.—+—Ëé{zz4`dddìܹóæÍ›7oÞüàƒ˜». IJJR©T_|ñEFF†æóÛ¶m«­­-**Ú¹s§H$"„$''ïØ±£±±±¼¼|Íš5‡"„üøã†æÙÙ”¡'†f·€ƒX³fÍ—_~¹cÇŽÚÚZÿ™3g>õÔS„ÐÐÐqãÆÍŸ?ÿ§Ÿ~òöö~î¹ç6mÚäááñøãÏž={Íš5``¶¶hÑ¢ÞÞÞÕ«W÷ööN:uùòåÆ÷Îf³SRRŽ?ž’’¢ù|zzúÊ•+{{{gÏž½hÑ"BÈ’%K¶mÛ¶téR‹•’’BoùwÞ™0a‚Þ™®†6EÏeÕÝ>€°(вuŒY°`AssóºuëlÝ~ìܹ³¡¡áÕW_¥ÿ¬­­]¼xqffæà·¬wSÛþÌ™3÷ïß¿`Á‚Á· œf· –\.¯¯¯?zôè}÷Ýgë¶X"I€ÁºqãÆòåËçÎ;aÂæI//¯ûï¿ß"Û×») nÀ\˜Ý ön¸Ìn0»,9I°k=}}[·Â¡(•j[7†=Ôn{ÑÕÕW^ÞT\Ü ‘4VUÝ*.n¨¨h‘Ë•~~~!! ¶nƒ`³½V­º¸qc~TT Ÿ"„ŽÈç‡ÆÄð8|¿ ¦B$ ¶ÑØ(-+k*/o./o*+k.-mª®¾E§Ëx¼11!wÞ9æ±ÇÞºõß¶n®£ (Å_þ]ZÚT\ÜðÓOy==rBˆ{t4/:šÍ;6ØÕŸ@?¼CÀkl”J$ ••·Š‹$’†ªª[uuí …ŠÂ㢢ï¼s ŸÊ燆‡û¹¸Ü6uÇ%"IK¡(ùĉA ÜÍ<ÓÑÑSYy«²ò–DÒ ‘4þôS^qq}_Ÿ’âëëIç-£¢‘ºMˆ$À’d2yII#–Ð!JGG!ÄÝÝ…Ïe‚ƨ¨À¨¨@__O[7ÙÙùúz&%y&%džQ(Tuuíôcú+€'®75uB\\8áá~tÌOÏMHˆðöv³]óÀ6IÀQUUÕªoH$ RB‹Å5*`Ô¨À;î³xñ4:£áÏå"5 ¸¸pè8?9™Ï>\ MIáÓs ÇŒ ²ì-v×®][µj!„¢X …O_ŸŸ·w% ¡Š Ôjnww˜›[›«k7!ÿé/SR—Ç_onþ-u9fL0]ΩK‡„H´©TêÒÒ&ú†F& EÏPåpØÑÑ< T$2Å?‡z†êÔ©Sårv[›{[›{[››JÅöðPFFºº¹©†t¿fimu//÷2¥ÑÖ ÑÖÙéRTÐÙ9ÚÅEíëÛ›’’èíd‘-›˜º,+kR©ºp4,Šø×“àŒ”Ã ñùýv¸P:¿¤[gètw÷:u#'G’“#©¬¼åëë)%ˆDÂiÓb‚‚¼­ÓÓ}ÿýÕgŸý¢®î}[7D¿¦¦ÎÓ§‹Nž,ÌΖttôÐá_r2?55ÎÇÇ}HwM§.%’¦›×K¥½„WWîèÑA¿ÿIˆ@ÍóòBê`@$ àDŒ”Ãñðp ¡ÓŒ¶-‡“—W“#ÉΖüòËM¹\9yòèŒ ar2_(Œ°çª¡vI2T*uAA-}†ÏŸ/%„$$DÐ!zbb¤Õ2„Z©Ëââ¤.†D’ŽI­¦ª«õ—Ãa³Y#GÐ74þþy=$$Ä׆­íêêËÌü#ýèç癞ž  ÿô§˜À@»K?ê5\"IMmmÝgΔääHNºQW×èý§?Å$'óÓÓBC­ÝtS—EEõúS—11!žž®Vn!hB$ àL)‡Ãü$ ÅËá “~¼t©\¡P —ô£^Ã1’ÔTYy+'G"dg÷õ)ùüP‘H˜’¿뮱6ì-=tÞ’éØLêRwêõ¨Q,Ta°D’ÃŒ)åp˜‚™V(‡c®ÎÎÞ¬¬":€¬ªºâ# ““ùÓ§ÇxÙºu7Ü#IFo¯â—_nfgKrr$ùù5îî.S¦ŒNIá‹DB>?ÔÖ­Ó“º¼q£®«« u `]ˆ$ìZcc±·r8f¡(*?¿&'GrâDÁ•+•„iÓbRRøÉÉ|kÞ›7¤&’ÔdÃ:=fÑL]ÒAfuu«ZM¤.† "I{1,Êá˜E*í=}ºˆž0ÙÔÔâ+%$'óg̈õ÷ÆéG½2’dhÖé¹p¡L­¦„BÔé1B¡*/oÖLÝ3©K÷Ñ£ƒŸì"„ÆÆ†xx u `D’6@—ÃafèÙy9³ÐéG±¸@,.,(¨e³YS§F§¤ðÓÓ…íçFÇŽ$51uz23‹jkÛl[§Ç,H]X"I€!×ÙÙ{ãFÞr8#F¸ÇÅ…Ùg9³H¥²Ó§‹Åâ‚Ó§‹››;CC}ÓÓè™~~öž;µç‰$5ÙgÓÉåÊ›7[èÔ%d–•5uwÓ©KÑ£ƒ4'ðù¡îî.¶n2€½@$ `IJ¥º¬¬Ióƒ)3CU³ósyö?CÕ§M?ê圑$ÃPžáØ ¥.¹\vD„ÿïå¬B™ÒV¶n/€m ’8:Ǩ·cåpÌÕÑÑsâDÁÉ“…çÏ—¶´t…‡ûÍš/ §Ouæ:™NIj.uzL§›º,-mì鑤.À‰!’0IO¼´Ô¡Êá˜E­¦._¾)æäH˜ô£H$‰„ÈÉÐIêÒ[§'9™/%L™2Æëô˜E·®rUU+Eý‘ºÔ¸Õ94$ÄÇÖí°0D’Úú-‡Ãç‡2ãð*‡c®öö±¸àäÉÂsçJoÝꊈðŸ3g\F†pòäÑΜ~Ô ‘¤qÝÝ}çΕŠÅtž€¯éÓc‡EÓI]úúz2#=zannÃàVRCI€³s†r8fÑJ?r8ì»î‹ôc¿IšŽ®Ó““#9uêFww_TT`zº0#C8\êô˜ÅôÔ¥@Æã°u{L…Hœˆ‘r8\.{ìX‡*‡c®ÆF©X\“#9{¶¤µµ;2Òÿî»Çed§LŸÚ3"É0T§'9™Ÿ”4ÒÖ­*RioEE3óÕ•DÒXRÒ(“ý‘º¤‡ úF븸0Ç‹®À1 ’‡åœåpÌ¢TªÏŸ/¥?Ç_¿^ÃårRS"‘09™ô£¹IRssç… eôlêövÍ:=[·nÈJ]º¸pÂÃý4S—qqaÁÁH]€í!’G [§¢¢E*•B<=]cb¼޹;èÉ«gΔ´µuÇÄðî¾{\J éÇÁ@$i)Ž]§ÇtR©¬¢¢EsX“Hz{D'uÉç‡ÆÄð8¶­› Α$ 3(‡30 …êÂ…²ìl‰X\ ‘4¸¹qSR~´$D’CÁPžÙ³ãÃÂülÝ:kS*ÕµµmZS-*+oBèÔ¥æèämë&€#C$ vM³=23T³޹:Nž,¤«›´·÷ðù¡"‘0%…Çcð“w–…Hr¨1uz23otu9xÓ!u ¶‚HìE_Ÿ²¸¸^³ SÇÍ+„ý1:c9³h¥½½ÝfÎŒ§o9Cúqè ’´ç¬Óc:&uIç-5'nh¥.ùüøøð#ÜmÝd–I€m ŽÅÕÕµŸ:uC,.8{¶¤§Gž”429™Ÿ’¿óαøÙ:+@$iZuzF ¤CJ'©ÓcºŽŽæv€ßKûÔ÷õ) R—0Pˆ$`ÈÑåpè4#=j•ÃÑ,y?zt>ÿ™ŽN?ž8QpòdAeå­#ÜÓÒâèrÔ(¤­ ‘¤m¡N¹º€AB$ –„r8ÖQ[Ûvôh¾X\ðë¯LúQ$J˜4i4—‹L‚m ’´Lž¬¬¢šg¯Óc:u©ùÅŸfê’¹¹€ÉGŽ @ˆàÌIÀÀI¥½EEúËáøø¸ ašŸ90CuäråÅ‹åLúÑÇÇ=55ŽžÅ7rd€­[ˆ$íêô ’B¡ª«k×L]×75u}©Ë„„oo7[7¬‘$˜åpl¥¦¦íر|±¸àòåŠÞ^Ÿq‘H?Ú'D’v®¯OyéR9êôX„V겸¸¡¬¬I¥R¤.œ "IÐFQTUU«Þr8,kÔ¨”Ãjr¹òôéb±¸ 'GRYyËÇÇ#5Užž–<ÂÖ­ýI#¨ÓcqtêRóÖ†¢¢úææßR—cÆÿ^Î'D Žæyy!u 0ì!’pv(‡c?JK›ŽÏÏΖ0éG‘(A$ …¨£hÿIGj5uýz êô ¤."I'‚r8v¨¯O™}[ú1#C( §M‹ ò¶uëÀ ˆ$‡;CuzfÍŠGËÐJ]7ÕwvöB\]¹£G!u 0Œ ’pXÍÍEEõ? †r8vD"i‹ ²³%¿ür³¯O‰ô£@$éHtëô$'óE"aJŠ¿ÎjqFR—!!>ßo†òù¡£F°XH]ØD’Žåp†…®®¾ÌÌôÇÓÊÊ[¾¾žtôø§?Å"ý8ì!’tHZuzÜܸwÜ1uz†šY©Ë˜˜OOW[7À!’f˜r8LAöªª[µµmJ¥Zo9œˆTø´­¼¼jú.¬K—Ê ÕäÉ£32„ÉÉ|¤ "I‡×ÒÒuþ|iNŽD,.hl”òx#RR"‘uz¬£££‡ùª”2««[ÕjŠh¤.™÷>¤.¬‘$€]ëîî++kº½N³TÚKñòr‹Žæ¡Ž}êììÍÊ*¢Ȫª[<ÞˆŒŒÄädþôé±^¶n D’ÎÃPž”þ´i1øòÎjtS—7nÔuuõB||ÜGÖœâáÔ%€%!’°*•º¦¦MóQ"i¤g¨j•áß1CÕÑéÇ' ®\©T«)&ý˜˜‰š„‘¤sêé‘ÿúkʼnÇç×Ô´ùû{͘:=¶„Ô%€Õ ’° #åp‚ƒGÄÅ…i@9{&•öž>]”“#9}º¸ºº5$ÄG$"ýè„IêôØ'…BU^ÞLÿ62ýEmaa]w÷m©K>?„2‘º0"I€!×Û«`nhD9Ç@QT~~ “~d±XS§FÓE8~tuuíO=õ©R©¢ÿ”É­­Ý¤¡·m[l£Ö-)•êÜÜ ±¸uzì–Y©Ë¨¨@[·À!’°$SÊáÐïLtôˆr8ËT*;}ºX,.8}º¸¹¹34Ô7==!9™?cF¬¿?ÒÎ(%esii“Þ±XdÕª¹/¾˜aå&½1T§'%…ï íŠ\®¼y³…N]ÒAfYYÓï©KÑ£ƒ4S—|~¨»»‹­› `cˆ$ÎÌr8Á>>î¶n2˜N?ŠÅbqaAA-›ý[ú1=](„Úºu`c}tjË–•Jµî¿X,ÖÅ‹¯EFú[¿U`ŸP§g8jlì ó–L겪ª•¢(.—á¯õí0R—àlI˜ÄH9‡ér8F*•?~ýäÉÂóçK[ZºÂÂüfÏŽ§ûÑËËÍÖ­{QW×~ÇtßIÙlÖ¸q‘GþË&­ûÇÔé9qâzuu+êô #º©ËÒÒÆž9!Ä××ó÷¿¥.‚0Ü"  ‘$€(‡ãœ~„¸ÿþÿïÊ•*úö*—Ë^¿þÁ§ŸN¶U«`aêôdeuvö¢NÏpĤ.é{[ªªnJ]òù¡!!>¶n/€e ’gǔÑH˜,t²ÑÝÝ…þNåp†—’’Æýû/½úêý&.ßÑÑsâDÁÉ“…çΕ޺Õî7kV¼H$œ>=ÖÓü _|qöµ×jMpåpXW¯n ô¶U«`82R§gܸHÓ¬âÿËœ3'q̘à!m-'•öVT4kÛ+)i”ɺ‡‚Hì‹\®ìé‘ûù I´†r8¢¨]»Î®_ˆ¢Èÿ62 U­¦._¾IbcÒ"‘P$âF0Kkk÷øñ¯«TD’{êÔèo¾yÞ†­‚ánÀuzÔj*!ᕾ>ÅoÌ{â‰iø±D»b(uéâ ÷Óü"„ñx#lÝ^€~ ’{¡Tª÷í»øî»Ç_|1ãÉ'ÿ4ø j•Ã).n¨¨h‘Ë•åpTSS犻Ϝ)Q«)BX»v=‘‘¨»Ì‰×sr$gÏ–´¶vGDøÏ™3.#C8yòh¤aÀ.Ü~æL L²Ù¬wß}ìÑGï´m«À1©Ó3uj´î½W¯VÝsÏû„6›5cFì‡.F@bϘÔ%31J+uÉ|VáóC££yü‚»¢¢åÓOs^|1?} †Hl¢¨#G®nÜx¤®®Åb-Y’òÆšµ•J]ZÚ¤ù£Ãšåp¢£yLĈr8ŽêÛo/¿üò7r¹Š¾ÕÅ…óØcw½õÖ#äöôãõë5\.'5U  ““ùH?‚E8pùŸÿüйUÒÅ…sýú¦#ðåX˜¡:=3gÆEDüV%ø½÷Žð˜ ¹\¶‹ ÷7\¼xšMæÑM]VVÞ"„è¦.ã₃øMÁ‰ןzêSOO׿ýmö²e©(&€Hl‰¢¨~¸öæ›?TW·RÔo1%…¿oßsFÖjjê,.Ö_‡Ç! ŽséèèYµêëŸ~ºFQ,BþЂ‚¼·lyäÔ©™™Eõõí<Þˆ´´¸Y³âSRC4}œVWW_bâ«ô”.—-%~úé_mÝ(pp†êô¼ûîñ¼¼jf1‹š3'ñwÅÏÞ_R©¬¢¢E3u)‘4ôö*ˆ¾ÔeL Ãé?uùÑG§Þzë'…BÅá°FŒðX½zîâÅÓð‘ Ì‚HlæÌɆ ß_¿^ÇfͲ‡aa¾¿þºž~lJ9æ†u”ÃqBçÏ—=÷ÜÿßÚÚ­TªtÿëæÆ¥ï,Bú†Ú²e»ŽÍW©Ô,ë“Oþrï½ãmÝ"p==ò³gK²²ŠOŸ.*/of±ô|´suåzy¹~ðÁ¢ôô›4,N©T×Ö¶i•~ÐL]jþ8Y\\¸î-%!ÄÇÇ#::8:šÍ;68&†7v,…Μ™B¡zãï?ÿ<›ÅbiýËå¬\9çÿH·~ÛÀ ;–¿dÉgE<=] þÑ lâ‹/ά]{PïG;6›EQäñÇïzãy¸-ÜQutôhÌØ¢çÇÖÓŸ£tS—ÿøÇÞ¼¼ªÛ7Àb³ÉÈ‘k×Þwß}ãQ® ú…H¬êƺ×_?töl —ËÑ›D¢Ã;6xìØà˜˜  Ó‡?”•5-_þEqqƒfÁL-,™:5æÛoÿf͆ÓêëS …¯Èdò‡š¼uëb[7œÔêÕ_ýõE…ÂàÀHÿ¼áöí?~¤5¶"“ÉËË›ËÊšJK›JJéÇ==rBˆ‡‡‹L¦Ð]…þÒA( _·îÁéÓc¬ÞdNn‹$e2Y[[› [¬¥¥{çγß}—O1òéŸBëwHK‹%„xxxøûûr×mmm2™lûqäÈõ-[Är¹ªß/¸\vVÖ wwë4L—¿¿¿‡‡Ç`¶€Þ;ŒlØpüûïó¶m{dêÔѶn ˜Äñ®Ð¹sÿ×ÜÜÕïbû…R-šÂf#éäàô~Žª­m»v­ú™g>7²"‡ÃV©¨©SÇ®];7<|P— 8­uÛô›ÎÎN‰Dbõ&㫨èøä“+UURµšb³YÛH0Éå²rsKÂÃ)BHppðà#ɺººæææAnìB¡þê«‚¬¬Ê¾>í„6‡Ãb±X,¡(¢VSô|W¥Rýý÷'LàÙ¢±„’0ÈÏ©è½ÃˆPè™éæëÛ‡wÒáÂÁ®Ð††nÍ0’Í&löow»©TjÍoÞT*õGe_ºT²dÉxOO›}×V ÷sTD„}}»ñéÏi.”Í›÷ß3F>ô 8¥(@»G鹑#--ÍzͧñÔS(•ê²²¦¼¼j‰¤±°°.7·¢£CFquå¨T[RQ©¼ÒÒÒ ,µ÷àà`¡Ph©­ ‰D³! …ª³³W*•I¥²ŽYG‡¬³SÖÑñÛ3R©¬½]ÖÖÖÝÓ#÷ô IKKµIS³²²,²ôÞá"%…b±fÏži놀Iï Ý»÷Bpðˆ#Üýü<¼<}}=}}=üü<}|<è¾¾¾¾ž~~ž¸•×ùUVÖ¬÷k}WW‡Ã¡Ð20Ð{ܸˆ±c¼¼“&M‰Ž¶Ùײ`'t{ư.—-„ ¡ôŸ*•úæÍ–ÂÂÚüüÚüüêüüš¶¶‹¨ÕTII“m› vÎÅ…à…S»Âf³–/O³u+Ày-\8uá©¶n %%E±X,ww®B¡V*Ul6;**0))211B(Œ #è_ªljj*,,D z!’›ápØ11¼˜ÞŸÿ<‘~¦©©³°°¶  ¶¦÷ëÀðƒŸb€a¡¬¬ÉÕ•+„N˜0ŠŽãâB=ðÀtO>wî!„éØvò»mÆe#Ã2ù} ­««;}ú´Z­^¼x±¡ šÒÿ;::žxâ‰ððð€€€E‹ݺu‹~¾¢¢âÚµkÌbmmmÙÙÙƒ=²«Æ€u8Ï=°îÍŒb±¸¦¦æïÿ»¡%5Ïá°>ŸŽGóƒÍÑÛÐ{âv0GCihllÌÌ̤,­¤¤„ÞóÀˆ{ï½·§§Ç”%mËH éC (ª¯¯/11qÙ²eE=û쳓'O–Ëåô2«V­JNNV*•ÌZ]]]£GÞ¾}»î.ú=„’’’A“1FÚ0t{¿~ýúõë×íg;Zбu× šûºví‹Å‹Å„âââmPïF¬v‘鎆ôÚÉÌÌllläFì§÷:ü°¬Õjjj!¦ìKoGš3gNZZZQQQiiéÝwßýÈ#ÐKΙ3gíÚµÌb»víš;w®†q]vÕ½œö RÎsEïÞz{—Ö“ÙÙÙ¾¾¾¦´p0çÓÎ?G Qt0¤´>tiÒûJi=i‘f+CÚÝevNòû￈ˆhkk#„ìÝ»—Ïçwww«ÕêmÛ¶ÅÇÇ1bÚ´i™™™tjÕȤ©~øaâĉžžžaaaÌ”¹––///©S§BBCCÉïçŸþyÔ¨QgΜѻ"‹Åúì³Ïâãッƒ·lÙòå—_Ž3Æ××÷µ×^£P(«W¯ áñx«W¯V(Ó¦M{ÿý÷ !­­­l6{ÕªU„•Jåïïÿã?BÚÛÛŸzê©   ÈÈÈU«Võööjµ„Þ2EQ«V­š0aBKK‹æ!B\]]wíÚõÙgŸmÞ¼ùóÏ?ßµk—‹‹ ½ÖîÝ»_ýuç_óòòZ³fÍž={pÞÌz±èí>|X ðx¼+Vôõõõ{¼±±±Ì+¢ëĉ111þþþ›7of^2­]Ú¯°NÇfÖÕìáD_ÿ$&ôê#GŽ$%%¹»»;öË/¿ÔÚýç¾}ûRSSÓÓÓãââ43Š,kÏž=ñññÿùÏ!+V¬X²d ýß®®.OOÏ+W®ÙˆÖ!èöŸ~9J¥rݺu£F ~òÉ'é/ÿ ÑÛNC½Kï‰Õ‚ÞËpòaY =>Ó7è Vÿ':I¡Pœ8qbÆ  ::zÆ ÇŽ£—|ä‘G¾þúkê÷9Qxøá‡™í l40~f&Mšdèê6ÞC¯¬Öè¡wIŠ¢¶oßžàãã3kÖ¬~øî{º¨÷E4tbæ %ýЬ¬,½£Þ¢ûv`h\uª+Úx÷6‡ÃáñxäöÙzßÊû}[wì~nŸ¼ßWMï{¢¥:˜•sMVíNša¥‰ß:<ùä“ùË_BBB.^¼HQÔÇÌãñûì³/¿ü’Ò÷5ÏܹsO:U__¯wEBÈÂ… ¥RéÎ; ! ,J¥ü1Ý!(Šzë­·æÏŸ_UU•——7iÒ¤—_~yÆ ÷Þ{/EQ‡öññ™4iEQ—/_vwwïîî¦(jÑ¢E³gÏ.++ËËËKLL\¿~½fK蛵Ôj53ºÑ­eñòË/B6mÚÄi9šZ­~à8ÎâÅ‹5O Óc4;w.((hçècèÅÒ< Š¢öïßcâñê턬¬,Š¢T*Ý$½»Ðû¤Þ 2¬IZ³ckOÝþIõ׫[[[]\\Þyç¶¶6µZÝÙÙ©R©¨Û{à… ¸\.ÝÓ~ýõWBH~~>ý/B}±3T*•¡¡¡?ÿü3EQ÷ÜsÏ–-[ŒoDóôöŸ~Ù‚@ 8xð ½naa!ó˜¦u®ô¶ÓPïÒ{b5 ]塞û9Ã25¸a™º} uqqIMM¥Û©÷u#I­ŽÄü«££ã¥—^ŠŠŠ¢Ïýß¿ýíoÿ÷ÿGQÔîÝ»E"¥ñ¡v£A¿gÆÐÕm¼1F^Y­ÑCï’‰‰‰{öìaÎÃW_}EŸ1ÝÔº¾´^G½B©þN…¡Qw-½o†Vwª+Úøµ¦u©2kiòññ¡—17’´“~nÍHrXtrSž´T³æ`®Õ°¡6-0»•âçç·lÙ²‚‚‚çž{Ž~¦¼¼|„ ÌIIIÆ·àêê*‘HæÌ™3yòä]»vÑOvuu) ½«ÄÅÅZ‘6bÄBtÖ|L«¨¨ £‹q‰D¢›7oNœ8ÑËËë—_~ÉÎÎþóŸÿzhhkk»pá›Í¾çž{>,‘H&Mš4kÖ,±XœMp!!!§¼¼œ^½¬¬,""B³%´#GŽlß¾}ß¾}™™™º‡PWW·bÅŠ·ß~;%%eݺuË—/gj÷-Z´hãÆô·„… îÝ»wË–- .4÷¼§ûbÑè¯"!‰$<<ÜÄã5DïWZ»0ò¤°IǦéöÏ~[+“ÉÔjõ7ß|ÓÚÚºdÉ’ûï¿¿µµUs_*•jÿþýï½÷3áù_ÿú×þýû™ÁTkˆ!„<òÈ#ß}÷Ý×_=cÆ z2d¿¡é?¦¯¨¨ _½zõßÿþ·ñåuÛIÓí]¦œXô^†e³ÎŒ.ÝŽôÞ{ï­[·îÈ‘#;wî Öü׌3:;;Ïœ9#‹µ `40å̺jŒ4ÆÈkz—ŒŠŠÒìu7nÜ0~€†Þkõ %ý C£îZzßô®î„W´‘k­_žžžK—.­®®njj¢Ÿ¡oœ®­­ÀÙÐ=4MÐÏí¶“›þªé®>˜fýÁœaÕÅ2%­R©ÒÓÓ7nÜØÚÚúý÷ßSõæ›oòx¼C‡Õ××=z´ßrÚÚÚX,ÖÑ£GéßT$„äææ.^¼¸¶¶–Þ‹¡ zW¤nŸ¢ ÷ñŠ+~øaº\ï]wÝõ /PõÍ7ßx{{ÓÉh±Xìíí­y#Ùã?>{öìòòòüü|¡Pøúë¯jÕºuëø|¾L&Ó<µZ}ß}÷¥¦¦ÒsåryRRÒÂ… éÿvtt‚™3g;v¬¸¸xíÚµ„×××gîy£S÷W@ ½XôÖfΜYRRré񴯯Ø×_ÝÄãen¿Ü±cG{{»¡®w†ök„5g·Z¹ckO½ýÓx¯–Édîîîhnnþä“OÜÝݵz`ff&‡ÃÑœ»uùòeã—ŒR©äñx!!!Ÿþy¿Ñ:ÝþÓï!0gcݺuIIIùùùùùùÓ§O_ºt©æK£5eHo; õ.½'Ö:½—²âÜ9 ˺­À°¬ÙHMzP«ÿë }ÏÌÞ½{ohÐ\òù矟9s¦)§¥ß“iüÌPú®š~cú+«wÉ­[·FFF?~¼¥¥åçŸ,Kïj5ÕI®Pª¿Sah`Ô]KïÛÞÕóŠ6t­é~vÒz²²²råÊ•#GŽT©Tô¯J~úé§tîËÈ9ì÷Å¥†Õç¨G”­;¹‘W½uß -ØÁ¬9˜[mØ´À}’[·n?~<]÷»ï¾ kmm•Ëå6l3fŒ··÷´iÓèÛ!Œ|d¡(ê½÷Þ 9räG}´páBzÞ<ÍÈÅ©µ"ÇÓ{Ö´K¥Ò¿þõ¯þþþË–-£oõnooçr¹ô´ÝÝÝ®®®kÖ¬avÔÚÚúÄO†……½øâ‹2™ÌP«d2ŸÏ_»v­æ!ìÚµËÍÍMsfÿ¥K—Ølöè?»ººV®\™˜˜èîîýÊ+¯¤¦¦>úè£f7æðuz±è­íܹ3***((èïÿ»L&ë÷x ÅŒ3¼½½œdêö.«µ Cû5𑤕;¶ÖùÔÛ?ûíÕû÷vuu‹‹;|ø°\.×Ü×òåË3224Q­VGGG¿ôÒKF6þì³ÏzxxH¥Ò~7¢uºý§ßC`ÎFooïªU«ÂÃÃ}}}.\ØÖÖ¦¹GÝHR·†z×N¬¥z/eÅÏ©–u[5€aY³‘Zt°ß!Q·6#ù}z½dVV!ä¿ÿý¯)§¥ß“iüÌд®Scú+«»¤J¥zÿý÷£££}}}çÌ™søðáàà`½¨ÕT'¹B©þN…¡QoÑz;лºÖ{„ó\цº·¡+”Áf³“’’.\¸@¯¸iÓ&??¿èèhzŠ£ñsh'ýÜj‘¤}vrJß«¦9zk½j­>Èf“Á\ïc ›º=ŠEi\6MMM………iiiºW—YJKKccc)}W)!—ËssséòÄCÇ ¯ŽÞ] `¿ǫ̂Áÿ½¥¶ã û•W^©¨¨Ø³g­Ò­vZð¥±Tï%„dee%$$Ðä ½,ÅÊW÷?ü0räÈñãÇÓ~ûí·›6mÒ[°Þ,Žz…h²«ÏQ–ŠÀRÌÌ-8lêö¨Ü' CÄÕÕu¨ÃHCz{{ËËË?ûì³¥K—Úº-Æ —vØ›\5yyy‹/ÎÍÍíéé¹páÂk¯½öÌ3ÏXmïŽÇ?!’t:>>>Ë—/·þ.¬°_Œ‹/N™2åé§Ÿ¶óïõ¶Ó‚½ ½M®î5kÖ<ðÀ>ø```à’%Kž~úi‹\D¸BÁ Ÿƒ^̇´; ÉìV‹°·Ù­fÁÜ9{†+f·‚eav+ "I0"I0"I0"I0W÷©ºº:ë·@Woo¯»»»¥6…Ž Ãz/€=à vË‚Ÿ£ÐÉèëQz"I‰Db­öôÃR#`ggggg§E6`eè½ö W(Ø3K}ŽBt4­uÛïIô ÷I€yI€yI€yI€yþ…«¶Ê4ŸB@IEND®B`‚XQilla-2.3.0/docs/simple-api/InputSource_8hpp__incl.png0000644000151400015140000000765411653571064017730 00000000000000‰PNG  IHDRÍubGò&bKGDÿÿÿ ½§“aIDATxœí{PS×öÇW ‰ò° `aD(P*UÑŸþ¡ÊCtT^*—¾¨Rµà´ÚÚÚÚ¢­mEŒ>nÁZj¥PíKEð9X½ `|…*ØšHòûcß9s$‡¸zBèúüµÏ:{í½ÖÞßœ½“s’p´Z- È ÆÌØ ÿPg Î6@!lÀ5vðÉ'Ÿ\¼xÑØQŒrΞ=kÜŒ¯³›7oVWWûúú;ÑI{{{}}½±£:__ߌŒ cG1:)//ß±c‡±£Àý ¨3„ Pg Î6@!l`2: ”H$ϽY…BqàÀØØØùóçÇÇÇ9rD¥R=÷^åe7r0=/¤Rixx8u¸wïÞÆÆÆ?þ¸°°0==ýÊ•+b±ØˆáVþq:Óh42™Œ:¼|ùòÚµk===ŸŸ_JJÊ•+WŒÞhÅ$uxîܹ•+W.Y²ä»ï¾‰DxåÊ•„„„ÈÈÈ}ûöõöö#q¡Ê6l€¨¨(b·´´,..¦”çççWXXHÊr¹|×®]áááË–-;pà€J¥bl*++cbbªªªŽ9‘™™)—ËIå¾¾>±X)‹ûúút“ºqãF\\ÜâÅ‹;¦?£~Æ2ÄÏ“Ô\¾|yÿþýIIIìêê"ÆâââÌÌÌÏ>ûìÚµkß~û-£cNN‘ô´´ÊÊÊ¥K—¦¥¥¶µµQ5³²²=z$‹wïÞ}ýúõãÇë‰çûï¿ßºukuuõÅ‹333¿þúëû÷ï³?üðƒT*=xðà—_~YYYyäÈÝ®]»–›››žžž——Géž1#CÒi˜ªÎ"""¬­­çÏŸÔ¬¬_¿ÞÅÅÅÇÇç­·Þ2ðÎñŒ3 ³²²¦L™òûï¿¿ù曥¥¥Ð××wþüùääd‘Häîî¾zõjý ®[·nÚ´i¥¥¥kÖ¬qwwŸ4iÒ–-[¨›¶¿þúë¦M›ÜÝÝ“’’þøãÝbbb,--çÌ™Ô+‡1£a¤itFÄýÍa  €Ë}&~Rpuu}ôèýããéJ¥òêÕ«>>>>>> G‹ÅAAAÆÉɉÔtvvÖß ««+´µµQ1¸¹¹¹¹¹‘òÇ£££©ÊVVVºÁØÙÙ‡Ã4#=iŽXLõzÖo>< …û÷ï“iµZ ?Ö­¯ÕjwîÜÙÜÜLµ9sæLRßÖÖÖÌÌL*•’S­­­DÙ5Hogg÷ðáCbijj¢ÖM›‚‚‚²²²²²²S§N‘µ{Ø1G8¦ª3F²³³%ÉŸþ™——bmm gΜùûï¿© A¡P€……EhhèŽ;***¤Ri]]Ý‚‚‚€ËåîÝ»W*•¶´´:t(88XOƒ„ÐÐм¼¼––––––¬¬,j·7wîÜÜÜܶ¶¶æææôôôââbøù矻»»‡”‘ãÇT×MF‚ƒƒ7oÞ¬T*ƒ‚‚âââø|~bbbNNNAAÁÆ/]º&L˜2eJttô/¿üéééùùù¹¹¹‰ÄÖÖ600pÕªU¤µM›6egg¿ýöÛ<ï7Þ¨A:qqqJ¥2--M©TΞ=;))‰Ø³³³×®]Ëáp^ýubß³gÏÔ©S×Ð2"«d?ãsÄÇèß«[¾|ù£GþÇçÏ$I|||YYÙóŠÊè0f4Œ4ÉógFŸåQµn"#–Q¢3++«Å‹;Šç cF¦›æ(Ñ™@ xï½÷ŒÅó„1#ÓMs”è á Î6@!l€:CØu†°ê aƒqß©ºº:55ÕØQŒN:;;ÀHÐÙìÙ³ÂиqÃÑÝý¯ñã•ÆÄPüýý¸¿ir89½+¯\²dª±1%p†°ê aÔ¨3„ Pg Î6@!l€:CØu†°ê aÔ¨3„ Pg Î6@!l€:CØu†°ê aÔ¨3„ Pg Î6@!l€:CØu†°ê aÔ¨3„ Pg Î6@!l€:CØu†°þžãàlܘë–”:”HžŽoeaÁ#‡\®ù¿ÿ( Œi`üß§ùxx8WÒ_]] úYÙ àº98QQþ * \®ù¿þõ,ÇcŠ ÎÇÍÍÎÏÏ™éïËA­ÖDDLg="ÓufK—Î47ï?Vff7''\4ufááÓuß0q8œ¥Kg%“ufB¡õ¬Yº—´E‹^3J<&êÌP–-›A¿¤™››Íë9~¼•C2!Pg†²p¡ýz¦Ñh££g1Óuf(ãÆ z…Ëýïˆñùæ ø7$u6¢¢ü5-p¹æ!!¯ZZò‘É€:!!¾cÇò@­VGGÿOàLÔÙ3†6…à ~@€·±Ã1%ž¹¿©P(FÈß‚ŽX'ý'$ÄëÉ“vcÇ2¢±°°°µµ¥ŸÑYWWWCCë!™66šqãø¯¼b¥{{ûuF`/$9Y»aÃffÌwÖ¨««ëgÁýÙIJ @‘ ÔÙáñÌ‚é:CØu†°ê aÔÂ&¯³{÷î­^½zÐjMMM‡^èçΡacc³hÑ¢––ÝúzÐjµñññÖÖÖÃÌD‡ÓÔԤߧ6ÔÆ_(&¯³ââ∈ÆSÍÍÍB¡”Á–-[ô»_½zU*•¶¶¶^¸pA£ÑÄÇÇÚ;½‹ÖÖÖcÇŽÕ××'!bHj# “ÿ^Ý™3gNœ8ÁxJ£ÑF÷Ç[YYYXXЗ ª<{öl Òa\S(wÝ4ÍÍÍI¿tãéÓ§§M›fii)‰ÈÔÒ» —àéÓ§«V­ …...©©©J¥’> —/_æp8‡öññ±··ßµkW~~þ¤I“lll>úè£AgaÐÔtÇP—3gÎxxxØÚÚfffRí”””xyy988¤¤¤ôôô0 -¶¶¶²²2í`¬X±båÊ•>ttt¼ví1îÞ½;::úÞ½{555Ó§Oߺukcc#,X°àüùóÛ·o÷õõ­©©¹yóæ¬Y³RSSò’ËåcÆŒ‹ÅR©ôСC\.W.—ñÅŒî‡ÎÏÏ×jµ¤/b¤Êƒ)wò@vUUUWW—L&kjjŠŠŠš1c½¾L&ãóùkÖ¬yðàAAA´··3vAˆ‹‹ º}ûvMMÍ«¯¾º}ûvú€Èårˆ•Édyyy°|ùr™LvðàAxüø1 ©±±‘>ò”EjŒcØo`Ñ¢E2™ìäÉ“¤GâÚÐÐPQQáááAÅÜÏ8¨BjkkkkkŸéŽ~` Î:;;]\\üüüè]z{{K¥RR>{öìÔ©SIˆ555Z­ÖËË«¨¨ˆœ­¯¯§Êº^<oÏž=¦««K­VäÝÑÑ¡®Î(wí³ßeâñxóæÍë7£===·nÝ’ËåjµúÂ… dÊÒ™J¥277§Æº¨¨ÈÃÃ> ¤ÇÊÊJR¹_™t=l1Ža¿I€òòr­V«V«é¹PáêÆLŒ šx] ç}€@ X·n]]]Ýúõë)ã;wD"y¿BÞ¬€··7ܽ{×ÓÓ“X|||"##ò²µµ-++«¨¨pqq™7oÞ¥K—ÌÌÌÝåryoo/ý¡‚Ö°_ Ñu§&U¥R•——{xxÐëóùü†††°°0ÿ£Gêo¼­­M­VOž<™zxx „qãÆÇëWfÌÅÀ¼€q u«999@¿SÔ8{{{S13‡ÄptvÿþýìììàààÍ›7SF¡PHÍSgggEE±“srrºsç±TUU}úé§y) FsâÄ‰ŽŽŽÄÄÄÅ‹wtt0ºÿöÛoaaaôÀÈvJ"‘’…®»~ ÅòåËÓÒÒ*++srrôWvtt477onn&‡·oßvvv&å~JÒƒ««+ý£‡[·nq¹Ü‰'ªîêVcü„\À ¡¡q ã²Î4Íš5k’““?~îܹS§N{TTÔûï¿÷îÝššš°°°ýû÷Ó½¶mÛF.§ï¼óÎÝ»wòâp8¡¡¡'Ož”Éd*•ŠÇãYZZ2º—””„‡‡“v|óÍ72™lïÞ½ô®ÉNHº»!ôôô¨T*>Ÿ¯P(222 ««k .x<^LLLJJJKKKmmí‡~gx_„U«V%''Ÿ>}º¥¥¥´´4>>~ÅŠcÆŒ¡* ”ã@^^Þ_ý¥¿ÓM›6555]¿~ýƒ> >Ùa4 ú"jÈþlß¾}¯½öšJ¥Òjµ?þø£H$"[™L¶zõj[[[;;»uëÖuwwÓ÷J¥255ÕÉÉÉÆÆ&66¶³³“Øu½È&`òäÉ|>ßÛÛ»¤¤„Ñ]¥R-\¸ØÎ;ÁäÉ“KJJH¿½½½sæÌ±¶¶ÖêlbtÝAg3D gñÕW_?~âĉ999±±±Œ]:::ìììD"ѻᆱP(úU ÷ÈXîííýüóϽ¼¼ÈÛÆmÛ¶‘ñÑŸ© ;†ƒöHÜóòòÜÜÜ„Barr2s?£^hµLû³g~ÿ¬½½½¾¾ŸsügÒÔÔäéé©}vÈhòœ£¯¯/e1ùûˆI€:CþËK/½”””dˆqຉ<pÝDŒê aÔ¨3„ Pg0<çØÚÚÊ~ÈhB©TŽ;–naÐþrò¿ÓOgø¿;àþ aÔ¨3„ Pgü?Wý³n«lí|IEND®B`‚XQilla-2.3.0/docs/simple-api/ATFloatOrDerived_8hpp__incl.map0000644000151400015140000000003511653571064020521 00000000000000 XQilla-2.3.0/docs/simple-api/ATFloatOrDerived_8hpp__dep__incl.md50000644000151400015140000000004011653571063021413 00000000000000a000d786042fe3bebd99ee5b9adfc2aaXQilla-2.3.0/docs/simple-api/classATNotationOrDerived__inherit__graph.map0000644000151400015140000000060611653571064023377 00000000000000 XQilla-2.3.0/docs/simple-api/ATAnySimpleType_8hpp.html0000644000151400015140000000551211653571064017443 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATAnySimpleType.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/items/AnyAtomicType.hpp>
Include dependency graph for ATAnySimpleType.hpp:

Go to the source code of this file.

Classes

class  ATAnySimpleType
 This class represents the atomic types (ie, the simple types which are not list or union types) with type annotation xs:anySimpleType. More...
XQilla-2.3.0/docs/simple-api/ATStringOrDerived_8hpp__dep__incl.map0000644000151400015140000000041611653571064021714 00000000000000 XQilla-2.3.0/docs/simple-api/xqilla-simple_8hpp_source.html0000644000151400015140000001240011653571063020605 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

xqilla-simple.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #include <xqilla/simple-api/XQilla.hpp>
00021 #include <xqilla/simple-api/XQQuery.hpp>
00022 #include <xqilla/context/DynamicContext.hpp>
00023 #include <xqilla/context/ItemFactory.hpp>
00024 #include <xqilla/exceptions/XQException.hpp>
00025 #include <xqilla/utils/XStr.hpp>
00026 #include <xqilla/utils/UTF8Str.hpp>
00027 #include <xqilla/framework/XPath2MemoryManager.hpp>
00028 #include <xqilla/ast/LocationInfo.hpp>
00029 #include <xqilla/context/MessageListener.hpp>
00030 #include <xqilla/events/EventSerializer.hpp>
00031 #include <xqilla/events/NSFixupFilter.hpp>
00032 #include <xqilla/xerces/XercesConfiguration.hpp>
00033 #include <xqilla/fastxdm/FastXDMConfiguration.hpp>
00034 #include <xqilla/context/ModuleResolver.hpp>
00035 #include <xqilla/context/URIResolver.hpp>
00036 #include <xqilla/runtime/Sequence.hpp>
XQilla-2.3.0/docs/simple-api/classxercesc_1_1InputSource.html0000644000151400015140000010373211653571065021043 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

xercesc::InputSource Class Reference

A single input source for an XML entity. More...

#include <InputSource.hpp>

Inheritance diagram for xercesc::InputSource:

List of all members.

Public Member Functions

Destructor
virtual ~InputSource ()
 Destructor.
Virtual input source interface
virtual BinInputStream * makeStream () const =0
 Makes the byte stream for this input source.
Getter methods
virtual const XMLCh * getEncoding () const
 An input source can be set to force the parser to assume a particular encoding for the data that input source reprsents, via the setEncoding() method.
virtual const XMLCh * getPublicId () const
 Get the public identifier for this input source.
virtual const XMLCh * getSystemId () const
 Get the system identifier for this input source.
virtual bool getIssueFatalErrorIfNotFound () const
 Get the flag that indicates if the parser should issue fatal error if this input source is not found.
MemoryManagergetMemoryManager () const
Setter methods
virtual void setEncoding (const XMLCh *const encodingStr)
 Set the encoding which will be required for use with the XML text read via a stream opened by this input source.
virtual void setPublicId (const XMLCh *const publicId)
 Set the public identifier for this input source.
virtual void setSystemId (const XMLCh *const systemId)
 Set the system identifier for this input source.
virtual void setIssueFatalErrorIfNotFound (const bool flag)
 Indicates if the parser should issue fatal error if this input source is not found.

Protected Member Functions

Constructors and Destructor
 InputSource (MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Default constructor.
 InputSource (const XMLCh *const systemId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Constructor with a system identifier as XMLCh type.
 InputSource (const XMLCh *const systemId, const XMLCh *const publicId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Constructor with a system and public identifiers.
 InputSource (const char *const systemId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Constructor witha system identifier as string.
 InputSource (const char *const systemId, const char *const publicId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Constructor witha system and public identifiers.

Detailed Description

A single input source for an XML entity.

This class encapsulates information about an input source in a single object, which may include a public identifier or a system identifier

There are two places that the application will deliver this input source to the parser: as the argument to the Parser::parse method, or as the return value of the EntityResolver::resolveEntity method.

InputSource is never used directly, but is the base class for a number of derived classes for particular types of input sources. Derivatives are provided (in the framework/ directory) for URL input sources, memory buffer input sources, and so on.

When it is time to parse the input described by an input source, it will be asked to create a binary stream for that source. That stream will be used to input the data of the source. The derived class provides the implementation of the makeStream() method, and provides a type of stream of the correct type for the input source it represents.

An InputSource object belongs to the application: the parser never modifies them in any way. They are always passed by const reference so the parser will make a copy of any input sources that it must keep around beyond the call.

See also:
Parser::parse
EntityResolver::resolveEntity

Constructor & Destructor Documentation

virtual xercesc::InputSource::~InputSource ( ) [virtual]

Destructor.

xercesc::InputSource::InputSource ( MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager) [protected]

Default constructor.

xercesc::InputSource::InputSource ( const XMLCh *const  systemId,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
) [protected]

Constructor with a system identifier as XMLCh type.

Parameters:
systemIdThe system identifier (URI).
managerPointer to the memory manager to be used to allocate objects.
xercesc::InputSource::InputSource ( const XMLCh *const  systemId,
const XMLCh *const  publicId,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
) [protected]

Constructor with a system and public identifiers.

Parameters:
systemIdThe system identifier (URI).
publicIdThe public identifier as in the entity definition.
managerPointer to the memory manager to be used to allocate objects.
xercesc::InputSource::InputSource ( const char *const  systemId,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
) [protected]

Constructor witha system identifier as string.

Parameters:
systemIdThe system identifier (URI).
managerPointer to the memory manager to be used to allocate objects.
xercesc::InputSource::InputSource ( const char *const  systemId,
const char *const  publicId,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
) [protected]

Constructor witha system and public identifiers.

Both as string

Parameters:
systemIdThe system identifier (URI).
publicIdThe public identifier as in the entity definition.
managerPointer to the memory manager to be used to allocate objects.

Member Function Documentation

const XMLCh * xercesc::InputSource::getEncoding ( ) const [inline, virtual]

An input source can be set to force the parser to assume a particular encoding for the data that input source reprsents, via the setEncoding() method.

This method returns name of the encoding that is to be forced. If the encoding has never been forced, it returns a null pointer.

Returns:
The forced encoding, or null if none was supplied.
See also:
setEncoding
bool xercesc::InputSource::getIssueFatalErrorIfNotFound ( ) const [inline, virtual]

Get the flag that indicates if the parser should issue fatal error if this input source is not found.

Returns:
True if the parser should issue fatal error if this input source is not found. False if the parser issue warning message instead.
See also:
setIssueFatalErrorIfNotFound
MemoryManager * xercesc::InputSource::getMemoryManager ( ) const [inline]
const XMLCh * xercesc::InputSource::getPublicId ( ) const [inline, virtual]

Get the public identifier for this input source.

Returns:
The public identifier, or null if none was supplied.
See also:
setPublicId
const XMLCh * xercesc::InputSource::getSystemId ( ) const [inline, virtual]

Get the system identifier for this input source.

If the system ID is a URL, it will be fully resolved.

Returns:
The system identifier.
See also:
setSystemId
virtual BinInputStream* xercesc::InputSource::makeStream ( ) const [pure virtual]

Makes the byte stream for this input source.

The derived class must create and return a binary input stream of an appropriate type for its kind of data source. The returned stream must be dynamically allocated and becomes the parser's property.

See also:
BinInputStream

Implemented in xercesc::LocalFileInputSource, xercesc::MemBufInputSource, xercesc::StdInInputSource, and xercesc::URLInputSource.

virtual void xercesc::InputSource::setEncoding ( const XMLCh *const  encodingStr) [virtual]

Set the encoding which will be required for use with the XML text read via a stream opened by this input source.

This is usually not set, allowing the encoding to be sensed in the usual XML way. However, in some cases, the encoding in the file is known to be incorrect because of intermediate transcoding, for instance encapsulation within a MIME document.

Parameters:
encodingStrThe name of the encoding to force.
void xercesc::InputSource::setIssueFatalErrorIfNotFound ( const bool  flag) [inline, virtual]

Indicates if the parser should issue fatal error if this input source is not found.

If set to false, the parser issue warning message instead.

Parameters:
flagTrue if the parser should issue fatal error if this input source is not found. If set to false, the parser issue warning message instead. (Default: true)
See also:
getIssueFatalErrorIfNotFound
virtual void xercesc::InputSource::setPublicId ( const XMLCh *const  publicId) [virtual]

Set the public identifier for this input source.

The public identifier is always optional: if the application writer includes one, it will be provided as part of the location information.

Parameters:
publicIdThe public identifier as a string.
See also:
Locator::getPublicId
SAXParseException::getPublicId
getPublicId
virtual void xercesc::InputSource::setSystemId ( const XMLCh *const  systemId) [virtual]

Set the system identifier for this input source.

Set the system identifier for this input source.

The system id is always required. The public id may be used to map to another system id, but the system id must always be present as a fall back.

If the system ID is a URL, it must be fully resolved.

Parameters:
systemIdThe system identifier as a string.
See also:
getSystemId
Locator::getSystemId
SAXParseException::getSystemId

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/ModuleResolver_8hpp__incl.md50000644000151400015140000000004011653571063020275 000000000000005befced86f306b3fa7ae145ecef5794fXQilla-2.3.0/docs/simple-api/XQilla_8hpp__dep__incl.md50000644000151400015140000000004011653571063017507 0000000000000052a414a3ea2394a840655f07725ddd07XQilla-2.3.0/docs/simple-api/QueryPathTreeFilter_8hpp__incl.png0000644000151400015140000002021211653571064021341 00000000000000‰PNG  IHDR uø7Í&bKGDÿÿÿ ½§“ IDATxœíÝw\Sçð7ˆìÈ*2ÄÑÚª…2Š`ªÔZ¥¢VmA[¥U‘R¯¯E­ÕÖû©ÈÕŠ­»­; b½z¯[q ¢u„)Á0äÜ?^{“CˆÍóý+¼œñœ7ïÉœ„÷Ђ@€²Ñ5]ý@% `¨ •`jºÝvæÌ™´´4MWÔ'??_Ó% 3 `z¥¦¦¦   88XÓ…•«­­½uë–¦«@—@À(Ajjª¦K*WTTôÏþSÓU Kà3*@% `¨ •€€ ð-25ikkÛµk×¥K—¸\®»»ûرc§OŸÎ`0”»—ò±±±±¿¿bb¢£££‚ëîÝ»×Éɉl9}úô7ß|#»äöíÛ==={YiïÞ½qqq………OŸ>Åz°eÉ]H@S `Ô¡µµuÁ‚–––ñññNNN<رcÇÕ«W7nÜH§+ùMdzzº££#A</33sÍš5ééé”KVUUÍŸ?ŸÃátµ©7ß|óðáÃxÉ… âÇ!ssó^–'ÙÂ`0bcc_©0€N€€Q‡Ý»w[ZZnÚ´ lj³³ó¨Q£æÌ™“““Ãf³•»/KKKkkk„MRRÒÔ©S[[[e—‹Å|>_ΦŒŒŒŒŒŒB!„7«¬ò$ÅÇÇ¿RaŸÁ¨C~~þ¬Y³$߬°X¬éÓ§<}ú”¼p$ù¸³³sëÖ­111111[·níììÄ¿½víÚ´iÓâãã¿ûî;¼¤@ ˆŒŒ¼wïžì~ñE"Bèÿûß'Ÿ|9eÊ”ýû÷#„>ýôS„Ð{ï½G.åÊ•3f°Ùì}ûöÉ9ÉJJKKeK¥¬_þÖ$[¤ “ߥ¥¥R”: ¼ðùóçgΜ³yóæŽŽÊF9‡ è•knnnhhýÐÂËËëÁƒ]­uèСªªªmÛ¶}ÿý÷×®]ûå—_pûRRRæÍ›wþüyœçÏŸwtt$·ßÖÖ&Z[[¹\î¿þõ/33³ÖÖÖ¯¿þÚËËkïÞ½ ,ؾ}{cccFFBèÈ‘#äN/^¼¸}ûöäääÌÌÌnßCàJ¼¼¼(Kíª~\ ‚©Âäw…———Ôê”GqìØ±uëÖ­]»öâÅ‹8_»j( ŒšÐh4©‚ ä|“››ûùçŸÛÛÛ{xx$$$\ºt ·ÇÇÇ>|Ô¨QL&³¤¤!TPPAnÿã?ŽŠŠŠŽŽž={6ŸÏ_¹r%BÈÐÐpÇŽ‰‰‰666ööö¡––ÙN›6ÍØØxìØ±¡¦¦&ùG„+a±X”¥vU?.D¶Ë!¿+X,–"G±`Ággç!C†|üñÇä„•”eÏ`TÎÔÔÔÚÚº¢¢"((H²½¢¢ÂÕÕU²EòöÕÕÕÕS¦L!411Áð*t:}ܸqgÏžõðð¸zõêÒ¥KÉ%)¿CÅd2ŸY¼xñ Aƒ¤¶I§ÓÇßÚÚ:~üøn 055]°`AZZÚ¬Y³ú÷ïšœœÜ¿???É«O=CYj·õË!UX·›Ú¸qccc£üm†……-]º4%%eôèÑ3fÌÓPšäuðª80mÚ´žýóygggyyùСC{¼÷ÌÌÌêêê+Vôx }å=˜5ßÎï`4†Édö8]„BaUUUnnîĉ•[( ŒNº}ûvBB„ 5]‹¶311‘.² \ð-2••¥é*tƒ¥¥å’%Ki(¼ƒ 0T€J@ÀP *@%àkÊJ””¤éºÔÞnÃd61BM¢d-Fñh4±zöÈãñÔ³#ôL¯¸¸¸L:UÓUPkh`=zdÞÜlàåÅsphUî–++-FެQâ6_Uy¹U]1NX[·Y[ ¬­Û •Oâ2bÄUï}s‘é‘H|äÈÕ-[Nß¿_´pa¨·wåî"+«xþü]\î&ånöU=Þš—Wvüø3gîŠDâ  76;ðÝw‡ÛÛ›i¶0£?Ô-˜– I ž;w/;»87·´­­' ›àà`¡éÒèÓ `ôT´,Zæåå ºÝi[ÀÚÚ:þóŸòììâ?þ¸ÙÒÒ>b„{D„ott€»»­¦K /‚€ÑmjŽLk†ÔÞÞyöìÝììâ¼¼2>_àíݟ͘<9hÐ {M—@£«4-˜ö I$_½ú0;ûFVÖõºº&œ4lv Š.$AÀè F ¦CC"“æøñâš¾››MX˜/›0z´‡¦K@oAÀèÉh‰}í³ÏBÝÜlÔ_†. I,&®\y}ãĉ’ªªF눈alvÀ¨Qi4š¦«@¯@Àè-‰L§FÒÝ»ÕÇ=z­²²ÎÉÉ*2ÒÍ9r I€@Àh;2Z*+k§O×p´`z0$œ4YYÅ÷îÕØØ˜†„ f³CB†0™0—=£½´0Z0ý ÒÝ»Õeyye—/?°²2 Âf60`hº4tL£¤¢e×®µ$ZôžOŸþŸ}úèѳ¼¼²ììâ>ÚanÞ/<|(›øÖ[>††pÊ (x£]¤¢eáÂPWW­‹=~#ëÉÞÉ“¥ÙÙÅW®y²´µU8b„;›íïèh©éÒÐõуhÁ `º%1óM>¿ O²3ÂÃÃNÓ¥ >0ê 7Ñ‚AÀ(N(ì¼x±2/¯ŒÃ¹V_ߌ“fÒ¤ OO¸qÐ0ª¥gÑ‚AÀô9svöõÚÚ7÷õ÷wÑti¨ ŒªHEË¢Ea..Öš.J9 `zƒœÎ9'çFuõsWW›ðp_˜Îè%åÓãhÁ `”B,&nÞ|’Ÿ_vøðÕ‡ë­ÞyÇ’èeÒûhÁ `”Oç|ìØõû÷k °œ0Á?"ÂwÌO˜Îè4åè#Ñ‚AÀ¨NšììååÕÖÖ&o¿ Ó9Ó[}*Z05øóÏgùùex’M ‹~aaC!i€Î€é¹>-Œ:=~ÜðÇ7qÒ˜™±ÞzË',lhtt€±±¡¦K 0=Ñg£ƒ€Ñ.·ñĉ’ììâ«W½¸qÀ„ þ¦¦pã ¥ `^M F³`:g + `%-‰‰áÎÎVš.J3 `´×RPð"ih4Úk¯y„‡ûNždkkªéÒ@F8Z22NWVÖM›6º/G £mž?oÍË++(¸UPpK(|1ó»ï··‡M‚€‘‡Œ–êgÎ|#!!¸G £µá¹s÷²³‹ssK‚Ó9Oœп¿…¦K} 5ˆ9 `´yã€?þ¸ÙÒÒ>l˜sxøÐ)SFº»Ûjº4Ї@ÀHƒhéŒÁ7ÈÏ/ËÍ-}öìÅtΓ' Ó9•ƒ€ùD‹‚ `t9sVÖõººÓ9³ÙÞÞý5]Ð[0A´t‡Ëmüè£"ü£@ÐÑÐÐâäô÷]‡ž§¡êÀ«!“æøñ55ÏÝÜlÂÂ`:g }=` Z4~üºŠŠZÊ_Ñh()iÂâÅj. ô¾q@~þ­œœÖ»¸XGD ƒ¤J¤·ƒKÎy"-óç;9A´t)#ãô·ßætvŠeE£Ñ.^\ Á¬Óð$›G^«¬¬sr²ŠŒôc³FŽH§CÒ€žÓÏ€!bÅŠ#!!C†Êþ¢¥¸ÜÆQ£VËŽ:æç眛»D#U¥ÃI“•U|ï^ Lç zI?&5õØöíg† sÊËK’l‡hé 6û_ׯ?‹_0L&}ÕªÉsçŽÓTU@EîÞ­.((ËË+»|ù••Ihè«%H$~ö¬þÓ³ÓÀY³æxFÆi‚ ¢íÞý1~ÑÒ{»v_¹òˆÔU2ƒV\¼ÚÆæ&Ñ[=ËË{qãsó~ááCÙìÀ·Þò14dÊYëܹ{ îýé§Ù£G{¨­T mô-`V­:–™yÿ•M§Ó¼¼ò󓎽–‘qúáÃú¸8ˆ–žkhh øZ$ú;` úë¯:xðS VÔæéS^nn)NëÅtÎQQþ&&Ó9/_~h×®ÿÒhhùò‰ „À·ú&½ ˜ï¿?ùÃH†<=*+ëbb‚¾ø"ÂÃÃNsÕéƒØØ­çÎÝ#3†N§}ÿýôiÓFk¶* fUU§NÝÎÏ/+,¼Íd2Æóž81 2ÒÏÌìÅtÎ"‘Øß%׊b0è#GºoÛö\.ëƒô'`~ü±`ýú©£¡Óéæ.ðð€ÿ[V‚C‡®|ñÅ~òcÆÍ›iäË èk$§sÆ7÷0Á¯¢¢6&f3¹˜¡!ÓÜœ•™9.—õ5z0[¶œZ»6‡òXh4´cÇÜÈH?õW¥š›Û‡ [!v"„˜Lzxø°;æhº( y55ÏOœ(=qâÆ… •††Ì  ·K—*;:Dät:F#¾ø"bñâwà«Ï}‡>Ì/¿œ[±âHWB§Ó==í “á*°RÄÇïÌÍ-‰Ä4í§ŸfGGhº" Ež=kÎÍ-Y»öDcc‹ìoétZpðàôô8KKcõ×Ô®ézëС++V–“b±¸¼¼º à–:«Òcï½7B,#„úõ3 óÕt9@»ØØ˜úú:S¦ BH,&þóŸòõW¯þ©æÂ€FèvÀdeñÅ~‚ xkÂ`Ð ™ä›ñÍ›O©·4½2¤_?C M˜àgd$ oÊɹ!çÌ¢úú昘͙™gÕYЈ—Æ@ àñxš*åUÝûòË,‚ X,ƒŽþjN··7sw·qs³uq±vuµquµvq±vpwÃ%'ÔU¸Î œ•UâÁår5]‹Î°²²êׯ_/7¢~ìØUü)]Wð©úõ×G/]*OI g± ÔUP9©qþRÀ455•——«½¤ž(-­Û¶íº««¹»»Ÿß@WWkk''«ÌiÁårëêêTQ§^òõ5-,4²°hוѢ †Úû€Ñþü˜Ïå>WpáÜÜ[ÕŸ~:ÂÖ¶·=´„Ô8§x'¬¾rzê7:-šZVV†òõUÂ'vvvJÙN_0~óßx’}Ø›þTó WwÀTVVÚÚÚªy§jfiiùå—_¾êZÇŽ›”:•´zjjj ¹~ûí7WWW±XL‡Ã0`@GGAëׯŸ2eÊ£GJJJ‚‚‚RRR6lØàëë[RRRZZúÚk¯%%%qïÞ=ÉΘ1#44ôþýû%%%Æ [µj^`„ §OŸnnn–_ÌÍ›7oÞ¼)E(¸Y³fÍž=»ººÚÁÁáâÅ‹AlÛ¶ÍÞÞþÈ‘#\.7''ÇÙÙ!D£ì>Ÿohh8wîÜ'OžìÝ»!T[[KÄÏ?ÿ¼gϼٞT¼Ï ‚@½ÿþû<oûöí¡gÏžIöyss³‘‘ÑÖ­[«ªªvìØÁd2q'K€*..nzñ*O}·ePîwœ^’Ýæ?ü Ùÿ ìÊÚä 0„Ðĉù|þáÇBõõõxለˆòòò .xzz’CTªQþÈ),,¬©©év€uK‘íÈŽR¢»~Xµj•ì©J¹åø¡<Ó ‰A%ùŒHî·ªªª«':66–Ïçgff"„>øà>Ÿ¿mÛ6ü¤P¶zõêèèh‚ 8޹¹yPPAW®\a±X---Dw/5ÅÅÅ!±XL¦‹Ô!RRRBiii’¡;wîôïßÿúõëA466ãˆÂCš| µ>ø|þ;w‚ƒƒW¯^MÙ]]5*òäªmTã󕦥¥ÅÄÄäÒ¥KALŸ>ý«¯¾Â탮ªªÂóóó}||Ž9‚[nݺ…KvP(d0ä+û‘#G<==ñ%%%Ý ¡ö€áñxÎÎÎþþþd_ûúúîܹ“\`×®]ò¦½½ýöíÛÍÍÍ"‘èÌ™3ä°›2eJCCÞˆlO*ÞçA „ð“( ñö%û¼¡¡ÁÀÀ`ãÆ<O,755‰D"©ºúCD‰etµÜ]õ’ì6½½½åô?emrB¨¨¨ˆ ‘H$Y3¹ðï¿ÿ.;Dq#õˆù‹:Fv”Ýõå©J¹åøéjurPɾ8âýÊy¢¯]»FüõDK>Æ ÈvåÊSSS¡P¸dÉ’åË—ðx¼ 6DEE ¼ÔàÇø’×Ý»wÉ~“'Bò ¡|e?wîÜûï¿obb2nܸ'N!UåÉ€)± Ù½H¶Èöå6å÷?emrBˆ<(ÉšÉ!zãÆ rˆJ5RvICÈŒR¢»~ –-L$988œ?~äÈ‘.\=z4‡Ã‰ŠŠÚ²e ¡ÀK ~<{ölÙCÀöìÙcaaqæÌ‹uìØ1²VTTäéé)‹'Ož¼mÛ6B€!ZÖ¬Yãââ"‹%» ÏŸMÙ‡ >¹²;UÑ '¨ÆgO>ä=tèPVVÖˆ#¼¼¼p£­­-ÙY<ïÂ…  xøð!þmqqñš5k¤¶ãààÀ`0*++ñ÷ïßwrrÂ%/njǧ§§‡……-]º·899I~uÏî,‡@ øàƒ–-[víÚµŒŒ ÜxòäÉÈÈHrÙžD ÷9nÇ3×vU€X,>xð`CCüyóØlvCCƒTr(« ù({‰r›îîîòû¿«Úº`”žá“ !T^^ޝÂuÕ¨ dG)ꮺ:Ue×¢?”«ËTx¿ržhùd £ÓéQQQ§¼¼<((èí·ßÎÏÏ?{öltt4Rø¥&;;{ëÖ­¿ýö[aa¡ì!p¹ÜÄÄÄ 6Œ?>555!!AêK+cÇŽmjj:wî\~~þ«~#ÔØØø“O>yüøqmm-néììD=}ú´½!{h’Ô9È{òÁãñRSSçÎK6¾÷Þ{_}õÕŸþYRR¹eË–™3gþãÿÀo.\øçŸß$µ¹¹!d``0mÚ´ÄÄÄܼysÅŠ3fÌèA=ê!‹çλhÑ¢_ýµ   ;;!4wîÜeË–q8œêêê“'Oâë³r´·· …BCCC@ššŠjjjâp8“&M"—‘íI¤pŸËÙ5îsqøða>Ÿ/ Œ¥ @ÕÕÕU¿ ·+«Œôå’óçÏ—ìÿ¯¿þZjnkËÌÌ|þ¼›û—|þùç—/_^¾|y\\œœF£¥¨»~èêT•]‹rüP®.;¨d)þDK¡<œ¨¨¨ŒŒŒ×^{ÍÀÀ 44tçÎnnnnnnHá—Ÿ”””ùóç·µµIA þþþóæÍC-]ºÔÁÁAê[Å cÊ”) £G–½¥‚Ô9%ÕøèÑ£õë×»¸¸ØÙÙYZZ"„vïÞÍçóüñÇžõ†$MrÉ·3 ^"#">>ÞÔÔTòã#>Ÿ?gÎ+++›øøø–––¶¶¶¤¤¤XXXÄÆÆòx<‚ :::ÆŽkjjŠ×jhh˜9s¦££ãâŋԻ?ùÔy‰lóæÍø]çÑ£G„BáêÕ«hjj:f̘ýû÷£î.‘ýðÃÖÖÖ...±±±VVVø21I¶'q»"}NP]Rêóßÿ}РA†††ƒæp8B¡PªùãDYe ¹—ȤzÉÞÞžr›6lðôô4113f þÛM²·ek“s¥Nö1^833ÓÍÍÍÖÖvÑ¢Eä•j¤4QÛ%2ÊQJt×”§*åZ„Ìø¡\]jPɹ¼£à-õ˜²°ÆÆF&“‰?~oii144LNN&w$ÿ¥Fò±@ ðöö^¾|¹ä!ìܹÓÈÈHòã™K—.ÑéôC‡I†oˆ‚¯Ë/_"“=¡$¤Óéþþþ.\À+¦¥¥YZZ4ˆÃáȾ†Hõ¡– r‚j|Ò$³¶¶öÖ­[:qÃ1LY7SÖv***dÿ¡è.Ê'´ÏrQQ‘Rn¦¬í@RÖ GT㦊 0tÉÜÜ«±±ÏR€ö£<§®PVÀ·a„rß3IDAT$@›ÁŸA@‡Ðàÿ6¨|@% `¨ •€€ ÿNgú€$IEND®B`‚XQilla-2.3.0/docs/simple-api/classDebugListener.html0000644000151400015140000003141011653571064017272 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

DebugListener Class Reference

A class used to listen for debugging information. More...

#include <DebugListener.hpp>

Inheritance diagram for DebugListener:

List of all members.

Public Member Functions

virtual ~DebugListener ()
virtual void start (const StackFrame *stack, const DynamicContext *context)
virtual void end (const StackFrame *stack, const DynamicContext *context)
virtual void enter (const StackFrame *stack, const DynamicContext *context)
virtual void exit (const StackFrame *stack, const DynamicContext *context)
virtual void error (const XQException &error, const StackFrame *stack, const DynamicContext *context)
virtual bool doLazyEvaluation () const
virtual bool doFocusOptimizations () const

Detailed Description

A class used to listen for debugging information.


Constructor & Destructor Documentation

virtual DebugListener::~DebugListener ( ) [inline, virtual]

Member Function Documentation

virtual bool DebugListener::doFocusOptimizations ( ) const [inline, virtual]
virtual bool DebugListener::doLazyEvaluation ( ) const [inline, virtual]
virtual void DebugListener::end ( const StackFrame stack,
const DynamicContext context 
) [inline, virtual]
virtual void DebugListener::enter ( const StackFrame stack,
const DynamicContext context 
) [inline, virtual]
virtual void DebugListener::error ( const XQException error,
const StackFrame stack,
const DynamicContext context 
) [inline, virtual]

References error().

Referenced by error().

virtual void DebugListener::exit ( const StackFrame stack,
const DynamicContext context 
) [inline, virtual]
virtual void DebugListener::start ( const StackFrame stack,
const DynamicContext context 
) [inline, virtual]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/NSFixupFilter_8hpp__dep__incl.png0000644000151400015140000000625311653571064021133 00000000000000‰PNG  IHDRˆuÔ>ÂbKGDÿÿÿ ½§“ `IDATxœíPÓõÇß“…)ÌKO‚bu,ŒúîR#9¯s×¢GJ?@GÔ×Õò<Ò«´¯dÄ*<–0#¬©ÅöM í€#Sæ`Ñ´±_ŸïŸ¾ŸïÜ0&{Þ¿ÞŸ÷×ûÉû¹½ßŸ_ãá8ðàk× c )ÈH¡ÙlÚ´ÉW:€óçÏ“iÌþ¬ ðG}”ÉdúBÕ¿µZ}ýúu{/h52226lذ ¢\¼xqÿþýö9hd ¤ c )ÈHq<+›‘7®_¿¾¤¤Ã0"G©TîܹS&“ CMMÍåË—5MTTTrròŽ;èt:ÑÐ9šX,&ÛÎêøö"çÓ…X,ŽŽŽžOY2gc—.]’ÉdÏ?ÿ¼sѱcÇFGG8uëÖ­cÇŽéõú‚‚¢T(²X,ûú™™™hpÉlâ«Tª7Þx£¹¹Ù[Þ#<™Êx<ÞgŸ}¦Ñhœ‹®\¹²{÷¸ˆˆ.—[PPÐÑÑA–FDD,¿›ððp>Ÿï¹ü»™M|›Í¦Óé¼Õã½Ãc222V­ZUZZêü,'$$D"‘9—Ë­¯¯§¥T*‰)¨³³sëÖ­z½ •J³²²ŒF#Yj_“Htttdee¥¦¦–••™Íæ㓼ù曀´´4âÐb±TVV¦¦¦¦¦¦VVVZ,¢‰B¡Ø¾}ûµk×öôôìØ±ƒÇã}ûí·îÄÌI¡;<1&  ¸¸X.—Ÿ={Ö¡H (Š­[· ‚úúúÑÑQûR£Ñh°Ãjµ’EO?ýtRRRyy¹V«-//ß»wopp0…‰DrðàÁ?þ¸»»ûĉ3Æ'©¨¨466‡ß}÷J¥ªªª*--U(ß|ó ‘òäÉââ⸸8‡æÝÝÝÕÕÕEEE"‘ˆüü¹ã2söxxVÆf³ù|~YY™Z­¶ÏòÉ'ëëë?ÿüó„„„³gϾüòËR©”,ݵk׋vüôÓOömóóó Å»ï¾ûÒK/ÅÇÇS ÈËËc³Ùg×®]ä½?êø.ikk+,,d2™111¹¹¹d>Ÿ¿víZçÇöíÛCBBžyæñýv'Æeæìñdñ'HMM½|ùòáÇ ‰£ÑØÙÙ¹aÇÃáp²²²jjj*++“““‰ Χ4J¥’L‡……mÙ²åøñ㥥¥ÎÝ9L›l6›H¬ZµêÏ?ÿœM|—ŒŒŒ¤§§“‡¡¡¡dX—õW¬X ÏH)ĸ̜=ž_Ç`¶gÏž_ýµµµ•ÈÁqüÃ?"+<õÔS.ç—¨Õꦦ¦¤¤$b¶!!"ŒÙg‰Û·oƒåáááb±X&“Éd²––²kÍõGÖÁ 1óT8¯ L‹•——wòäIâð¾ûîKIIÙ¿WW—J¥êëëûâ‹/ȯ 58Žúé§iiiûöí“Ë倰°0À¹sçþþûorU  …J¥ò·ß~‰D•ãƒ1‰"((H65ýÇ·z¼‚ßc±Øåfó?o˜ÍÖÆÆ‹Åæ[UóÇï¹r¥bÂhŸ31aìèð•oá÷Æ45Éi´»þ  kl”ûJ·ðocŒFskëU‹å®7¤,[këU£qÎo¥B…sáÂu£Ñâœo4š¥Òë ¯Ç‹ø·1 =.ÞÀ Äü{6óccôzã?Þpyf±Ø¤Òë““Ó ¯Ê[ø±1mm×ȳdgÌfk[[ïBêñ.~|S«Òéþ¢¼wo#à£ÒÈœeË‚ ª7(af¾¯Èú#Ô~ÜCCé€Õ«=Á*üx*[Ü c )ÈHAÆ@ 2R1‚Œd ¤ c )ÈHAÆ@ 2R1‚Œd ¤ c )ÈHAÆ@ 2R1‚Œd ¤ c )ÈHAÆ@ 2R1‚Œ·¿(ûòË/XÊ<9uJ ÈÈXˆÝ¼ˆ»ÀÜãr?˜ X­¾27Ü?ÕTV__û˸Å2îks€z÷6´Æ@ 2R1‚Œd ¤ c e!Œ$®Šœó ¸Í1 ô¸/Yc"""öìÙs@Yc"##:s@ñܘӧOGGGkµZ@]]ÝÃ?<55e³Ù„B!‡ÃYºtéºuëd21PL­­­k×® a±X.‡»¥¥…ËåÇÄÄÔÖÖ‚»ç" þþúk‡uèСÚÚÚ5kÖ„‡‡ïÛ·¬ÙÜÜüÈ#0™Ì‚‚‚éé»þ‰™Ùl+W®d2™Àå6âç΋e0tsƎ挻`·d^yå•W_}udddåÊ•ÝÝÝ8ŽWUU1™ÌÆÆÆ;wîœ9s†Øox``€èÈ9¡Óéètzvvöðð°X,¨Õjû.&''—,YRYY©R©¾úê+699I6'tfffêt:‘Hضm›N§«ªªŒ5SRRúûû»ººbcc?øàûæŸ|òIzzú­[·z{{Ÿxâ‰ââbçqزe‹N§khh˜1¦Cælnɸ·³0F«Õ²Ùl.—KŠxì±ÇjjjÈ Ç§6fzzúÆ“““V«õÒ¥KDeû.4MPPБ#G´Z­ÍfÓëõV«ÕÁ…Bã¸ÉdrH 5{{{ɱˆµo¯R©ˆôùóçÇáâÅ‹8Ž[>SÇtȤ=jcæµÆDDDðùü¾¾¾¼¼<"ghh(11‘¬Àår©#ÐéôþþþÍ›7'%%ÕÔÔùØÿ`02™¬««‹Íf¯_¿¾½½= ÀQóÒ¥KAAAi’¸¸8"OîMMpóæM‹EôµiÓ¦ßÿÝYä<pè×eLŠŽæÊ¼Œ¹}û¶P($6&r¢££¯^½JVèë룎`0¶mÛ& …ý¦ääÇ`0Øl¶S§Ni4šœœ§Ñh檓ø8úûû‰Q&‰ŒŒ$¿£Z­¶««Ë¹¹ËÒeLŠŽæŠçÆØl¶ìììüüüººº .´´´²³³AssóÈÈÈ?üP\\LdzzÚd2ÑétƒÁPRRÐëõö0 KIIihhÐét&“)((($$d®R þùç÷ßçÎöEiiiï½÷ÞüÑÛÛ»yóæòòr€H$š˜˜á¹ŽË˜Íws˜i)++{üñÇM&ŽãMMM,K£Ñ˜L¦¬Y³&,,lݺu'Nœ”k ŽãG]¾|ùƒ>XQQ‘™™Éd2çâ‡zˆN§ÇÇÇ777;4vË’sš¨)‰V¯^™ŸŸo0ì›ëtº×_Á`¬X±‚ÏçOMMÍ'¦C&Åèá÷tñŸû!ð ÷B€Ë˜ttĽc‘³lÙ²ÜÜ܈éýŽÜ}•€¿=ó÷;ÐTæ— c )ÈHAÆ@ Õ¦ R©t|||Á¤üÛË©¶Z<ï.û)nÇß]· 5R1‚Œd ¤üG¥ƒÖê× IEND®B`‚XQilla-2.3.0/docs/simple-api/classxercesc_1_1XMLPlatformUtils.html0000644000151400015140000027553211653571064021760 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

xercesc::XMLPlatformUtils Class Reference

Utilities that must be implemented in a platform-specific way. More...

#include <PlatformUtils.hpp>

List of all members.

Static Public Member Functions

static XMLSize_t alignPointerForNewBlockAllocation (XMLSize_t ptrSize)
 Aligns the specified pointer per platform block allocation requirements.
Initialization and Panic methods
static void Initialize (const char *const locale=XMLUni::fgXercescDefaultLocale, const char *const nlsHome=0, PanicHandler *const panicHandler=0, MemoryManager *const memoryManager=0)
 Perform per-process parser initialization.
static void Initialize (XMLSize_t initialDOMHeapAllocSize, XMLSize_t maxDOMHeapAllocSize, XMLSize_t maxDOMSubAllocationSize, const char *const locale=XMLUni::fgXercescDefaultLocale, const char *const nlsHome=0, PanicHandler *const panicHandler=0, MemoryManager *const memoryManager=0)
 Perform per-process parser initialization.
static void Terminate ()
 Perform per-process parser termination.
static void panic (const PanicHandler::PanicReasons reason)
 The panic mechanism.
File Methods
static XMLFileMgr * makeFileMgr (MemoryManager *const manager)
 Make a new file object appropriate for the platform.
static XMLFilePos curFilePos (FileHandle theFile, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Get the current file position.
static void closeFile (FileHandle theFile, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Closes the file handle.
static XMLFilePos fileSize (FileHandle theFile, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Returns the file size.
static FileHandle openFile (const char *const fileName, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Opens the file.
static FileHandle openFile (const XMLCh *const fileName, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Opens a named file.
static FileHandle openFileToWrite (const char *const fileName, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Open a named file to write.
static FileHandle openFileToWrite (const XMLCh *const fileName, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Open a named file to write.
static FileHandle openStdInHandle (MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Opens the standard input as a file.
static XMLSize_t readFileBuffer (FileHandle theFile, const XMLSize_t toRead, XMLByte *const toFill, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Reads the file buffer.
static void writeBufferToFile (FileHandle const theFile, XMLSize_t toWrite, const XMLByte *const toFlush, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Writes the buffer to the file.
static void resetFile (FileHandle theFile, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Resets the file handle.
File System Methods
static XMLCh * getFullPath (const XMLCh *const srcPath, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Gets the full path from a relative path.
static XMLCh * getCurrentDirectory (MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Gets the current working directory.
static bool isAnySlash (XMLCh c)
 Check if a charater is a slash.
static void removeDotSlash (XMLCh *const srcPath, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Remove occurences of the pair of dot slash.
static void removeDotDotSlash (XMLCh *const srcPath, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Remove occurences of the dot dot slash.
static bool isRelative (const XMLCh *const toCheck, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Determines if a path is relative or absolute.
static XMLCh * weavePaths (const XMLCh *const basePath, const XMLCh *const relativePath, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Utility to join two paths.
Timing Methods
static unsigned long getCurrentMillis ()
 Gets the system time in milliseconds.
Mutex Methods
static XMLMutexMgr * makeMutexMgr (MemoryManager *const manager)
 Factory method for creating MutexMgr object.
static void closeMutex (void *const mtxHandle, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Closes a mutex handle.
static void lockMutex (void *const mtxHandle)
 Locks a mutex handle.
static void * makeMutex (MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Make a new mutex.
static void unlockMutex (void *const mtxHandle)
 Unlocks a mutex.
External Message Support
static XMLMsgLoader * loadMsgSet (const XMLCh *const msgDomain)
 Loads the message set from among the available domains.
NEL Character Handling
static void recognizeNEL (bool state, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 This function enables the recognition of NEL(0x85) char and LSEP (0x2028) as newline chars which is disabled by default.
static bool isNELRecognized ()
 Return the value of fgNEL flag.
Strict IANA Encoding Checking
static void strictIANAEncoding (const bool state)
 This function enables/disables strict IANA encoding names checking.
static bool isStrictIANAEncoding ()
 Returns whether a strict IANA encoding name check is enabled or disabled.

Static Public Attributes

Public Static Data
static XMLNetAccessor * fgNetAccessor
 The network accessor.
static XMLTransService * fgTransService
 The transcoding service.
static PanicHandler * fgUserPanicHandler
 The Panic Handler.
static PanicHandler * fgDefaultPanicHandler
 The Panic Handler.
static MemoryManagerfgMemoryManager
 The configurable memory manager.
static XMLFileMgr * fgFileMgr
static XMLMutexMgr * fgMutexMgr
static XMLMutex * fgAtomicMutex
 Global mutex for fast or infrequent operations.
static bool fgXMLChBigEndian
static bool fgSSE2ok

Detailed Description

Utilities that must be implemented in a platform-specific way.

This class contains methods that must be implemented in a platform specific manner. The actual implementations of these methods are available in the per-platform files indide src/util/Platforms .


Member Function Documentation

static XMLSize_t xercesc::XMLPlatformUtils::alignPointerForNewBlockAllocation ( XMLSize_t  ptrSize) [inline, static]

Aligns the specified pointer per platform block allocation requirements.

The results of this function may be altered by defining XML_PLATFORM_NEW_BLOCK_ALIGNMENT.

static void xercesc::XMLPlatformUtils::closeFile ( FileHandle  theFile,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
) [static]

Closes the file handle.

This must be implemented by the per-platform driver, which should use local file services to close the passed file handle, and to destroy the passed file handle and any allocated data or system resources it contains.

Parameters:
theFileThe file handle to close
managerThe MemoryManager to use to allocate objects
static void xercesc::XMLPlatformUtils::closeMutex ( void *const  mtxHandle,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
) [static]

Closes a mutex handle.

Each per-platform driver must implement this. Only it knows what the actual content of the passed mutex handle is.

Parameters:
mtxHandleThe mutex handle that you want to close
managerThe MemoryManager used to allocate the object
static XMLFilePos xercesc::XMLPlatformUtils::curFilePos ( FileHandle  theFile,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
) [static]

Get the current file position.

This must be implemented by the per-platform driver, which should use local file services to deterine the current position within the passed file.

Since the file API provided here only reads, if the host platform supports separate read/write positions, only the read position is of any interest, and hence should be the one returned.

Parameters:
theFileThe file handle
managerThe MemoryManager to use to allocate objects
static XMLFilePos xercesc::XMLPlatformUtils::fileSize ( FileHandle  theFile,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
) [static]

Returns the file size.

This must be implemented by the per-platform driver, which should use local file services to determine the current size of the file represented by the passed handle.

Parameters:
theFileThe file handle whose size you want
managerThe MemoryManager to use to allocate objects
Returns:
Returns the size of the file in bytes
static XMLCh* xercesc::XMLPlatformUtils::getCurrentDirectory ( MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager) [static]

Gets the current working directory.

This must be implemented by the per-platform driver. It returns the current working directory is.

Parameters:
managerThe MemoryManager to use to allocate objects
Returns:
Returns the current working directory. This is dyanmically allocated and must be deleted by the caller when its no longer needed! The memory returned will be allocated using the static memory manager, if users do not supply a memory manager. Users then need to make sure to use either the default or user specific memory manager to deallocate the memory.
static unsigned long xercesc::XMLPlatformUtils::getCurrentMillis ( ) [static]

Gets the system time in milliseconds.

This must be implemented by the per-platform driver, which should use local services to return the current value of a running millisecond timer. Note that the value returned is only as accurate as the millisecond time of the underyling host system.

Returns:
Returns the system time as an unsigned long
static XMLCh* xercesc::XMLPlatformUtils::getFullPath ( const XMLCh *const  srcPath,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
) [static]

Gets the full path from a relative path.

This must be implemented by the per-platform driver. It should complete a relative path using the 'current directory', or whatever the local equivalent of a current directory is. If the passed source path is actually fully qualified, then a straight copy of it will be returned.

Parameters:
srcPathThe path of the file for which you want the full path
managerPointer to the memory manager to be used to allocate objects.
Returns:
Returns the fully qualified path of the file name including the file name. This is dyanmically allocated and must be deleted by the caller when its no longer needed! The memory returned will beallocated using the static memory manager, if user do not supply a memory manager. Users then need to make sure to use either the default or user specific memory manager to deallocate the memory.
static void xercesc::XMLPlatformUtils::Initialize ( XMLSize_t  initialDOMHeapAllocSize,
XMLSize_t  maxDOMHeapAllocSize,
XMLSize_t  maxDOMSubAllocationSize,
const char *const  locale = XMLUni::fgXercescDefaultLocale,
const char *const  nlsHome = 0,
PanicHandler *const  panicHandler = 0,
MemoryManager *const  memoryManager = 0 
) [static]

Perform per-process parser initialization.

Initialization must be called first in any client code.

Parameters:
initialDOMHeapAllocSizeThe size of the first memory block allocated by the DOMDocument heap. Note that changing this parameter may result in poor performance and/or excessive memory usage. For the default value refer to dom/impl/DOMDocumentImpl.cpp.
maxDOMHeapAllocSizeThe maximum size of the memory block allocated by the DOMDocument heap. As the document grows, the allocated by the heap memory blocks grow from initialDOMHeapAllocSize to maxDOMHeapAllocSize. Note that changing this parameter may result in poor performance and/or excessive memory usage. For the default value refer to dom/impl/DOMDocumentImpl.cpp.
maxDOMSubAllocationSizeThe maximum size of the memory block requested that is handled by the DOMDocument heap. A request for a larger block is handled directly by the memory manager. Note that changing this parameter may result in poor performance and/or excessive memory usage. For the default value refer to dom/impl/DOMDocumentImpl.cpp.
localeThe locale to use for messages.

The locale is set iff the Initialize() is invoked for the very first time, to ensure that each and every message loader, in the process space, share the same locale.

All subsequent invocations of Initialize(), with a different locale, have no effect on the message loaders, either instantiated, or to be instantiated.

To set to a different locale, client application needs to Terminate() (or multiple Terminate() in the case where multiple Initialize() have been invoked before), followed by Initialize(new_locale).

The default locale is "en_US".

Parameters:
nlsHomeUser specified location where MsgLoader retrieves error message files. the discussion above with regard to locale, applies to nlsHome as well.
panicHandlerApplication's panic handler, application owns this handler. Application shall make sure that the plugged panic handler persists through the call to XMLPlatformUtils::Terminate().
memoryManagerPlugged-in memory manager which is owned by the application. Applications must make sure that the plugged-in memory manager persist through the call to XMLPlatformUtils::Terminate()
static void xercesc::XMLPlatformUtils::Initialize ( const char *const  locale = XMLUni::fgXercescDefaultLocale,
const char *const  nlsHome = 0,
PanicHandler *const  panicHandler = 0,
MemoryManager *const  memoryManager = 0 
) [static]

Perform per-process parser initialization.

Initialization must be called first in any client code.

Parameters:
localeThe locale to use for messages.

The locale is set iff the Initialize() is invoked for the very first time, to ensure that each and every message loader, in the process space, share the same locale.

All subsequent invocations of Initialize(), with a different locale, have no effect on the message loaders, either instantiated, or to be instantiated.

To set to a different locale, client application needs to Terminate() (or multiple Terminate() in the case where multiple Initialize() have been invoked before), followed by Initialize(new_locale).

The default locale is "en_US".

Parameters:
nlsHomeUser specified location where MsgLoader retrieves error message files. the discussion above with regard to locale, applies to nlsHome as well.
panicHandlerApplication's panic handler, application owns this handler. Application shall make sure that the plugged panic handler persists through the call to XMLPlatformUtils::Terminate().
memoryManagerPlugged-in memory manager which is owned by the application. Applications must make sure that the plugged-in memory manager persist through the call to XMLPlatformUtils::Terminate()
static bool xercesc::XMLPlatformUtils::isAnySlash ( XMLCh  c) [inline, static]

Check if a charater is a slash.

This must be implemented by the per-platform driver.

Parameters:
cthe character to be examined
Returns:
true if the character examined is a slash false otherwise
static bool xercesc::XMLPlatformUtils::isNELRecognized ( ) [static]

Return the value of fgNEL flag.

static bool xercesc::XMLPlatformUtils::isRelative ( const XMLCh *const  toCheck,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
) [static]

Determines if a path is relative or absolute.

This must be implemented by the per-platform driver, which should determine whether the passed path is relative or not. The concept of relative and absolute might be... well relative on different platforms. But, as long as the determination is made consistently and in coordination with the weavePaths() method, it should work for any platform.

Parameters:
toCheckThe file name which you want to check
managerThe MemoryManager to use to allocate objects
Returns:
Returns true if the filename appears to be relative
static bool xercesc::XMLPlatformUtils::isStrictIANAEncoding ( ) [static]

Returns whether a strict IANA encoding name check is enabled or disabled.

static XMLMsgLoader* xercesc::XMLPlatformUtils::loadMsgSet ( const XMLCh *const  msgDomain) [static]

Loads the message set from among the available domains.

The returned object must be dynamically allocated and the caller becomes responsible for cleaning it up.

Parameters:
msgDomainThe message domain which you want to load
static void xercesc::XMLPlatformUtils::lockMutex ( void *const  mtxHandle) [static]

Locks a mutex handle.

Each per-platform driver must implement this. Only it knows what the actual content of the passed mutex handle is.

Parameters:
mtxHandleThe mutex handle that you want to lock
static XMLFileMgr* xercesc::XMLPlatformUtils::makeFileMgr ( MemoryManager *const  manager) [static]

Make a new file object appropriate for the platform.

Parameters:
managerThe MemoryManager to use to allocate objects
static void* xercesc::XMLPlatformUtils::makeMutex ( MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager) [static]

Make a new mutex.

Each per-platform driver must implement this. Only it knows what the actual content of the passed mutex handle is. The returned handle pointer will be eventually passed to closeMutex() which is also implemented by the platform driver.

Parameters:
managerThe MemoryManager to use to allocate objects
static XMLMutexMgr* xercesc::XMLPlatformUtils::makeMutexMgr ( MemoryManager *const  manager) [static]

Factory method for creating MutexMgr object.

This factory method creates a mutexmgr that will be used on the particular platform.

Parameters:
managerThe MemoryManager to use to allocate objects
static FileHandle xercesc::XMLPlatformUtils::openFile ( const char *const  fileName,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
) [static]

Opens the file.

This must be implemented by the per-platform driver, which should use local file services to open passed file. If it fails, a null handle pointer should be returned.

Parameters:
fileNameThe string containing the name of the file
managerThe MemoryManager to use to allocate objects
Returns:
The file handle of the opened file
static FileHandle xercesc::XMLPlatformUtils::openFile ( const XMLCh *const  fileName,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
) [static]

Opens a named file.

This must be implemented by the per-platform driver, which should use local file services to open the passed file. If it fails, a null handle pointer should be returned.

Parameters:
fileNameThe string containing the name of the file
managerThe MemoryManager to use to allocate objects
Returns:
The file handle of the opened file
static FileHandle xercesc::XMLPlatformUtils::openFileToWrite ( const XMLCh *const  fileName,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
) [static]

Open a named file to write.

This must be implemented by the per-platform driver, which should use local file services to open the passed file. If it fails, a null handle pointer should be returned.

Parameters:
fileNameThe string containing the name of the file
managerThe MemoryManager to use to allocate objects
Returns:
The file handle of the opened file
static FileHandle xercesc::XMLPlatformUtils::openFileToWrite ( const char *const  fileName,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
) [static]

Open a named file to write.

This must be implemented by the per-platform driver, which should use local file services to open passed file. If it fails, a null handle pointer should be returned.

Parameters:
fileNameThe string containing the name of the file
managerThe MemoryManager to use to allocate objects
Returns:
The file handle of the opened file
static FileHandle xercesc::XMLPlatformUtils::openStdInHandle ( MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager) [static]

Opens the standard input as a file.

This must be implemented by the per-platform driver, which should use local file services to open a handle to the standard input. It should be a copy of the standard input handle, since it will be closed later!

Parameters:
managerThe MemoryManager to use to allocate objects
Returns:
The file handle of the standard input stream
static void xercesc::XMLPlatformUtils::panic ( const PanicHandler::PanicReasons  reason) [static]

The panic mechanism.

If, during initialization, we cannot even get far enough along to get transcoding up or get message loading working, we call this method.

Each platform can implement it however they want. This method will delegate the panic handling to a user specified panic handler or in the absence of it, the default panic handler.

In case the default panic handler does not support a particular platform, the platform specific panic hanlding shall be implemented here .

Parameters:
reasonThe enumeration that defines the cause of the failure
static XMLSize_t xercesc::XMLPlatformUtils::readFileBuffer ( FileHandle  theFile,
const XMLSize_t  toRead,
XMLByte *const  toFill,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
) [static]

Reads the file buffer.

This must be implemented by the per-platform driver, which should use local file services to read up to 'toRead' bytes of data from the passed file, and return those bytes in the 'toFill' buffer. It is not an error not to read the requested number of bytes. When the end of file is reached, zero should be returned.

Parameters:
theFileThe file handle to be read from.
toReadThe maximum number of byte to read from the current position
toFillThe byte buffer to fill
managerThe MemoryManager to use to allocate objects
Returns:
Returns the number of bytes read from the stream or file
static void xercesc::XMLPlatformUtils::recognizeNEL ( bool  state,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
) [static]

This function enables the recognition of NEL(0x85) char and LSEP (0x2028) as newline chars which is disabled by default.

It is only called once per process. Once it is set, any subsequent calls will result in exception being thrown.

Note: 1. Turning this option on will make the parser non compliant to XML 1.0. 2. This option has no effect to document conforming to XML 1.1 compliant, which always recognize these two chars (0x85 and 0x2028) as newline characters.

static void xercesc::XMLPlatformUtils::removeDotDotSlash ( XMLCh *const  srcPath,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
) [static]

Remove occurences of the dot dot slash.

To remove the sequence, slash dot dot slash and its preceding path segment if and only if the preceding path segment is not slash dot dot slash.

Parameters:
srcPathThe path for which you want to remove the slash dot dot slash sequence and its preceding path segment.
managerThe MemoryManager to use to allocate objects
Returns:
static void xercesc::XMLPlatformUtils::removeDotSlash ( XMLCh *const  srcPath,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
) [static]

Remove occurences of the pair of dot slash.

To remove the sequence, dot slash if it is part of the sequence, slash dot slash.

Parameters:
srcPathThe path for which you want to remove the dot slash sequence.
managerThe MemoryManager to use to allocate objects
Returns:
static void xercesc::XMLPlatformUtils::resetFile ( FileHandle  theFile,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
) [static]

Resets the file handle.

This must be implemented by the per-platform driver which will use local file services to reset the file position to the start of the the file.

Parameters:
theFileThe file handle that you want to reset
managerThe MemoryManager to use to allocate objects
static void xercesc::XMLPlatformUtils::strictIANAEncoding ( const bool  state) [static]

This function enables/disables strict IANA encoding names checking.

The strict checking is disabled by default.

Parameters:
stateIf true, a strict IANA encoding name check is performed, otherwise, no checking.
static void xercesc::XMLPlatformUtils::Terminate ( ) [static]

Perform per-process parser termination.

The termination call is currently optional, to aid those dynamically loading the parser to clean up before exit, or to avoid spurious reports from leak detectors.

static void xercesc::XMLPlatformUtils::unlockMutex ( void *const  mtxHandle) [static]

Unlocks a mutex.

Each per-platform driver must implement this. Only it knows what the actual content of the passed mutex handle is.

Note that, since the underlying system synchronization services are used, Xerces cannot guarantee that lock/unlock operations are correctly enforced on a per-thread basis or that incorrect nesting of lock/unlock operations will be caught.

Parameters:
mtxHandleThe mutex handle that you want to unlock
static XMLCh* xercesc::XMLPlatformUtils::weavePaths ( const XMLCh *const  basePath,
const XMLCh *const  relativePath,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
) [static]

Utility to join two paths.

This must be implemented by the per-platform driver, and should weave the relative path part together with the base part and return a new path that represents this combination.

If the relative part turns out to be fully qualified, it will be returned as is. If it is not, then it will be woven onto the passed base path, by removing one path component for each leading "../" (or whatever is the equivalent in the local system) in the relative path.

Parameters:
basePathThe string containing the base path
relativePathThe string containing the relative path
managerThe MemoryManager to use to allocate objects
Returns:
Returns a string containing the 'woven' path. It should be dynamically allocated and becomes the responsibility of the caller to delete.
static void xercesc::XMLPlatformUtils::writeBufferToFile ( FileHandle const  theFile,
XMLSize_t  toWrite,
const XMLByte *const  toFlush,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
) [static]

Writes the buffer to the file.

This must be implemented by the per-platform driver, which should use local file services to write up to 'toWrite' bytes of data to the passed file. Unless exception raised by local file services, 'toWrite' bytes of data is to be written to the passed file.

Parameters:
theFileThe file handle to be written to.
toWriteThe maximum number of byte to write from the current position
toFlushThe byte buffer to flush
managerThe MemoryManager to use to allocate objects
Returns:
void

Member Data Documentation

Global mutex for fast or infrequent operations.

Use this mutex only for fast (e.g., increment an integer, check flag, etc.) or infrequent (e.g., once-off initialization) operations.

The Panic Handler.

This is the default panic handler.

The configurable memory manager.

This is the pluggable memory manager. If it is not provided by an application, a default implementation is used.

XMLNetAccessor* xercesc::XMLPlatformUtils::fgNetAccessor [static]

The network accessor.

This is provided by the per-platform driver, so each platform can choose what actual implementation it wants to use. The object must be dynamically allocated.

Note that you may optionally, if your platform driver does not install a network accessor, set it manually from your client code after calling Initialize(). This works because this object is not required during initialization, and only comes into play during actual XML parsing.

XMLTransService* xercesc::XMLPlatformUtils::fgTransService [static]

The transcoding service.

This is provided by the per platform driver, so each platform can choose what implemenation it wants to use. When the platform independent initialization code needs to get a transcoding service object, it will call makeTransService() to ask the per-platform code to create one. Only one transcoding service object is reqeusted per-process, so it is shared and synchronized among parser instances within that process.

The Panic Handler.

This is the application provided panic handler.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/ContentSequenceFilter_8hpp_source.html0000644000151400015140000002143211653571063022302 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ContentSequenceFilter.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _CONTENTSEQUENCEFILTER_HPP
00021 #define _CONTENTSEQUENCEFILTER_HPP
00022 
00023 #include <xqilla/events/EventHandler.hpp>
00024 
00025 class XQILLA_API ContentSequenceFilter : public EventFilter
00026 {
00027 public:
00028   ContentSequenceFilter(EventHandler *next);
00029 
00030   virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding);
00031   virtual void endDocumentEvent();
00032   virtual void endEvent();
00033   virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname);
00034   virtual void piEvent(const XMLCh *target, const XMLCh *value);
00035   virtual void textEvent(const XMLCh *value);
00036   virtual void textEvent(const XMLCh *chars, unsigned int length);
00037   virtual void commentEvent(const XMLCh *value);
00038   virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value,
00039                               const XMLCh *typeURI, const XMLCh *typeName);
00040   virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri);
00041   virtual void atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI,
00042                                const XMLCh *typeName);
00043 
00044 private:
00045   bool lastWasAtomic_;
00046 };
00047 
00048 #endif
XQilla-2.3.0/docs/simple-api/DocumentCache_8hpp__dep__incl.png0000644000151400015140000001640711653571064021135 00000000000000‰PNG  IHDR›(‘tbKGDÿÿÿ ½§“¼IDATxœí{XWÚÀßî ÂUPÅâ"Ú‹ðÔK©HÝ]ïˆPy@ÙŠ¶Ôµ‹à¥¢V×Ô>¢¹ƒ—VðÚµT* V ‰ÜæûcöKÓBHRç÷ðÇÌ;çœyçü˜3“ÉåP‚ Bèé:Œ†ÁFQE l5ôeWæÌ™£«<0j3sæÌ¸¸8éê––¾ûî» cس¨Ƀ,,,d#úr%>þøãáËóÇØ¾}»\_GQE l5°QÔÀFQCþ^wP|||¤ËÖÖÖ“'OŽŒŒ¤ÑhÍJótuu=zôþýû¯^½rrr ž1cÆPñññÉÈȰ··†Zj£Î9š”””›››½yófÎår5žÙ¡­­máÂ…ÒU‡³fÍ##£øøø”””O>ùdçηoßÖa†ÚcÈç(Ðh´Q£FN÷ôôüâ‹/²³³CCC5›úH$‡#]=yòä”)SbccÉU'''‹•••õÁè(A-òG¯£ eÁ‚L&“\år¹{öìY¸pa@@ÀÑ£GX,>yòäòåË-Z”˜˜HžÍÏŸ?—ŽÞ²Ë>>>—.] Y´hÑÙ³g/_¾ø÷¿ÿýĉd‘H”’’²xñâÅ‹§¤¤ˆD"²ViiiHHÈ‚ ¾ÿþ{øÇ?þK–,!kݼyÓßß_6íM›6‘Ëeeek×®;w®¿¿ÿÙ³g@aÎ$wîÜ ž?þ™3g”¤$‡\-òoݺµråÊÅ‹>|X(* ªaDwF­­­äò¡C‡:::RRRöîÝ{ûöíÌÌÌœœœ›7o&&&ì|ýúõ¶mÛ\]]322"##SSS»»»•ä\^^žššºiÓ¦´´4å)ÉÒ¿$&&îÞ½»¼¼œüO(8$4y¯+‰®^½ekkëììZRRráÂ…°°0ggç±cÇnÞ¼ÙÝÝ]y#Ë—/755õóó€   SSÓ¹sç@OO\ºtiãÆ ÃÙÙ9""¢¢¢‚¬µhÑ"33³O?ýdÇ[ ?¤A¡PîÎÐÐ0==}Æ –––¤c§$g2½éÓ§šRÿƒ’­‘‘‘'N\³fMII‰’àPç:*GKK‹°Ùl‰DB.€½½}GG888''''''¹êr‹155}}}¹e’öövÙñówÞ!ètº\I)æææÏž=“óèÑ£ÿû߇222jiiÙ¿?ŸÏwuu%·¾xñb œ---á÷ÿ¥$KÿZ Ó-ŽŽŽdG Ô(AEEE^^^`aa¡§§×ÖÖFvAkk+N'¢½½}ìØ±P__Ïd2W¬XAÖ‹ÅT*µ³³SõÝ9òàÁƒä+r8%ã‚$}ôQVVÖöíÛ¥ÅJJJD"‘‘‘Q___BBBBB‚···P(¼téXZZ”sÿ ”’, Ókiiqvv€ææfRù@Á!¡Î¨ÛÝÝÍb±:;;«ªªâââÚÚÚ–-[úúú>>>ÿùÏÚÚÚž>}šžžîëëëçç—––öôéÓ§OŸ:tèÅ‹`ff—/_~ýú5yµS‘3f¤¦¦¾xñ¢¡¡aÓ¦MJ óù|raõêÕUUU»wï~ðàACCÃwß}———·fÍ …"‘H___ —Àׯ_+ÌyH)]¸pÇã)?–¤¤¤çÏŸ?zô(--MúδÂàPç]¿~=¹À`0<<<Ž?.j6nܘ””´nÝ:ƒO>ù$88˜B¡ôööÆÆÆööözyyEDDÀÈ‘#W¯^œœœ‘‘ñùçŸÿôÓO*îzõêÕIIIk×®¥P(3gÎ$[ëÍ_þòÿ‹/F;~üøÑ£Gãããù|¾££ã7ß|CŽ+fff‘‘‘»ví211 š={ö¦M›Î;×?ç!¥´ÿ~OOO…#°__ßèèèÞÞÞÙ³g“c¬\PÅn‘…"{£P(ñññøýQmóüùó+V\»vmÐà lß¾ÝÊÊêܹsÒ~®‹بxçwæÏŸ¯JP °Q@£Ñ¾úê+U‚j€¢6ŠØ(j`£¨¢ÆÛbôÑ£.]§0LÈ?3rvv–ûÔ=ˆDÆl¶›•Õ=]'¢y|}}eŸýî¹n@@À°§447›¿|ing7ÞØXÁ ÞhœÉÔR(o÷ö½¼v55u}õÕ§11su‹ÖAÿ:úðakSSdg£ùá?9Ð7š›{ÇÀ€ Íͬ{÷štŽÖAܨDBdeÝ Å ¯O-(¨ÔuFZq£åå ,Öÿ>›)‰srîˆÅݦ¤m7šŸ_©¯ÿÛ1²X¼²²':Ìg@Ù¨P(.(¨‰~;)õõ©ùùwu˜Ò0€²Ñ7s¹}²‘H\TT% öªT”æåÝ¥Rå?Vùúuïµkt’Ïð€¬Q¯ïÒ¥êþ÷Azzz¹¹(¼È--}H¾h‘C,–\¾|ŸÇëë¿ 5šŸw ç›¨¤äÁð¦3| i”Ãá_»öXÉ#ëü|d5 ù¤¾¯OÔÞþJºZZú0..¯¬ì_Ò•ªçà€Ú›†$ønÚŸ##}'§ß¾dee²„AsÔ}›ÁFQE l5°QÔÀFQE l5°QÔÀFQE l5°QÔÀFQE l5°QÔÀFQE l5°QÔÀFQE l5°QÔÀFQE l5°QÔÀFQE l5TýFpiiiCCƒVSÑ÷ïsàøñãºND}|}}É9‡P7úÇ”õôŒ ºÎâ‘••¥¢©!|k? @ö׳1ÆòÙUåÀ×QÔÀFQE l5°QÔÀFQCÃF¹\nLLÌØ±cMLL\]]ããã{{{‡ÚH}}ý ÷ë­­­AAAcÆŒ133ûàƒòóóÕMYcP(”úúz]g¡i£QQQ•••¹¹¹MMMééé………±±±ÐÐÐ@§Ó•T”-@£Ñ6oÞ¬¤pWW×”)SLMM³²²***>ûì³ÀÀÀüqH©š’k +ª?3 ´Fc2™ÒÕ7n8::QWW§|_ƒåóÏ?_¾|¹l$&&Æ××WÅêjìQ•ZPWW7ÔU†òÌHÃFW­ZÕÙÙ)·´´kkkrµ¸¸ØÓÓÓÄÄÄÆÆ&11Q®€´×„Bá¶mÛFM§ÓW®\Éf³Éê666?ÿü³lû===Ïž=#—ÙlvHHˆ¥¥¥½½}tt4ŸÏ'222ÜÜÜ,,,öîÝÛ?%@Ã`0¬¬¬bbbAaa¡‹Å"âìÙ³®®®\.W®–,päÈ‘qãÆÑh´Ý»wK¤  `üøñVVVQQQ½½½ ƒÊ{U—FüñG{{{##£9sæìÛ·¯±±‘ŒËþks8CCð°°–––ŒŒ xùò¥léò¾}ûÜÝÝ«««kjj¦M›C›Í²£<{öì'OžTWWOš4)!! Xºt)›ÍNMM€®®.¹³mïÞ½þþþMMMÕÕÕS§Nݲe A«V­ ioo·¶¶.//';GçÍ›Çáprss ³³“,ìççW[[Ëd2]\\•÷ª.!‰˜LæŽ;&MšD¥RÏœ9Cü¾#úúú~ýõW.—+‹oܸAV N˜0!// >|ø\f±X =_åT*õþýûäj^^ž‹‹ ApíÚ5²@ÿ=áææÖÖÖF.—””xzzÁf³<<<¤®Üèõë× ‚‹Å²»¨®®& dee¹¸¸( *ïRår¹™™™"‘ˆ\•H$qqqöööD¿Ž(,,œ>}º§§ghh¨£ÆÆÆ555ýwdmm}ëÖ-ÙHEEÅûï¿Ïãñ𛛀i ‚¨®®666&?~ü¿cVdÔØØXööbäÈ‘d|ÇŽT*õÅ‹r¹õjkkûïBšLUU•±±±Â òŽ’QMÞëTSSC®R(”O?ýT$’Ÿ\…Ïç/[¶,66¶²²299YIƒvvväò½{÷¾ùæryÁ‚ß~û-!óëÝB¡ÐÔÔÔÚÚšJ¥JßÊ}ò䉽½=¹¬§§ì`étºô¾†Íf3™LhnnNJJòõõŽŽV¥¾è"@mm­’ fPÑ¼Š£nHHÈøñãÏŸ?ÿäÉ“[·nyyy}ñÅÄÿÿk÷ôôýE¡P.]ºÄãñ6mÚ•••²¤çA||¼‡‡GMMMMMÍG}´víZr//_¾´´´ ¾uëVUUUBBœ?žÜ4{ö솆†ššww÷mÛ¶¿¿™ˆÜ#A6lXºticccUUÕ´iÓÖ¯_/‹}}}wîÜÉb±lllŠŠŠä„ ˆÔÔÔîînÙfûïÂÇǧ®®®¢¢ÂÕÕuÛ¶m ƒÊ{tx‰D &&&cƌټy39¼…ÂéÓ§›™™‘Å80jԨѣG'''2 ÙR£½½½111vvv#GŽ ”½v666.]ºÔÎÎÎÜÜüÃ?$»›„Åb­\¹ÒÒÒÒÖÖöË/¿”ÞëÊu·\J'44ÔÂÂÂÒÒ2<<œÇã>|xòäÉ€ ˆüü|[[[‹%W«³²Ë䤥¥999Ñéô¨¨(>Ÿ¯0¨¼Wui#‹Â‹®¯ƒ‡d?×E lT‹Œ1"""B• ÁFµƒÁHIIQ%¨A°QÔÀFQE l5Þ£\]§0L á3õ oèWGz{ÅçÏ·/]j¯ëD†ŸD¼Ñß{11™hc³žB1Òu"ê£ú3#4ç•céÒ䟮ۿyP—®sÑ:è_G»º¸ååõ´'d—‚¾Ñ‚‚J Ád>‘8UÐ7š}["!€J¥ÝÓu:Zq£ÏžuÕÔ<'ïÄbIvöm]g¤u7ZXø •ú¿OŠÃ²F ‚8wî¶P(‘‹#?ð"kôîÝÆ—/9ýãäÀK¾žAdæçÿb`@U¸©££§¢âMýµ­AAÓ¨X,)*ª‹ CCýþP\Œì£†!¼›öÑÝýzÝ:éjmm{qqUtô§Òˆ…Å;ºÈk8x+Þ{)*º·nÝw­­uÈp€æ¨û6ƒ¢6ŠØ(j`£¨¢6ŠØ(j`£¨¢6ŠØ(j`£¨¢6ŠØ(j`£¨¢6ŠØ(j`£¨¢6ŠØ(j`£¨¢6ŠØ(j`£¨¢6ŠØ(j`£È¡âï𪈮F1tsóéºÎB1Ÿ»Ló¿Ãðå—_z{{k¼YM°A× ÈsàÀ·©y£^^^oôO 'ÙÙÙo_GQE l5°QÔÀFQc¸þòË/úúú²÷x………†††555ä*9]ûäÉ“ÍÌÌ>üðÃÄÄD‘H$-¬|«6 P(õõõZÝ…†ÑìË[Paö ¸¸8ršõîîn;;»]»v‘›8Ž››ÛÌ™3/^¼øøñãÜÜÜwß}×ÇÇG$ ºUK€Ì|ëG³£ëÀh__ߤI“ÂÃà ‚X·nÝ{ï½GÎgODLLÌŒ3d q¹Ü1cƤ¤¤ ºUK`£*ÍðuçÎ}}ýÝ»wÕÔÔHã666%%%r…“““g̘¡|«ìö²Ë &&†Á`XYYÅÄÄrkiiéèÑ£§L™F–ìéé111©¬¬ìDGŽ7nFÛ½{·´ý‚‚‚ñãÇ[YYEEEõöö* Úè%bË–- o ‚`³ÙÐÑÑ!W²¬¬lÔ¨QÊ·dtïÞ½þþþMMMÕÕÕS§Nݲe ¹õ¯ýëÕ«W/^¼hii) ‚ÈÈÈpww—H$ýhÞ¼y'77:;;Éüüüjkk™L¦‹‹KBB‚Âà €ŽQ‰D²páB*•ºbÅ itÖÙÙ)WøçŸ¦ÓéÊ·dÔÍÍ­­­\.))ñôô$·VWW!‰lll®\¹BÄßþö·={ö(<¢ëׯ!‹ÉX¶‚ ²²²\\\ímÕÍ«—3gÎ\¿~ýêÕ«999………dF£ÙØØÜ»'ÿëÔ÷îÝsssS¾U6BȼÔØØhkkK¡P(Êœ9sž>}JÆÉ*T*uÉ’%yyy¥¥¥ÁÁÁ ³µ³³=½ßõ•«««´©––%ÁaFF[[[7lذoß¾™3gÆÇÇGDDtuu‘›‚ƒƒwîÜIž ˜™™¹gÏžÀÀÀA·ùJæùóß&ÿ O_òŸ—Íf3™L2n``@.äççŸ;wnúôé ¦P(ýƒäI µµµ¤ò‚ÃfOylÔ•H$óæÍ›5k–X,&B xxx’[_½z5aŸ~øáñãÇ[·nƒÑ××§|kGG¤§§¿zõjñâÅÒãÚ°aÃÒ¥K«ªª¦M›¶~ýzÙ1™ ‘HÄ`0¬­­Ož<) ¦¦¦vwwKHú?2£®O]]]EE…««ë¶mÛí.®£§N222züø±4RQQ¡§§—““C®r¹ÜèèèI“&7î믿ž5kÖòåËݺk×.6nÜ8r'Ës8œÐÐP KKËððp'g” ˆuëÖ™˜˜p8Ù£³(»L¶––æääD§Ó£¢¢ø|¾Âà Ý…‚Q5èëë+++So«*lݺ5((Hõòýÿ' Š6Œ¾sIzy 8[³ò­Êéíímmm=qâDff¦ºÙýéx«ŸÔ———¿ÿþûaaaü±êµFŒ¡JP'¼ç¨ö˜5k‹Åj-ƒ‘’’¢JP'¼Õç(’`£¨¢6Šo‹Q„'•ã­0*K’’®è:‹áB³,t}4Š14t°¶^  à»Îù³?3:wîœfÔßÿ¤¬ìÅ®]ÇÆ§é:yzÃGmПT(»»Íåö-_>íàÁÏtŽÖAÿ:zåÊC¯Š‹éíê:­ƒ¾Ñ¼¼»äÇø|á•+uŽÖAÜhOOï?Þ‹%@¥Rrsïê:#­ƒ¸Q©N‰$W®<äpzu›’¶AÜhNÎÙU±XréRµ®’P6ÚÙɽu«Vîi‘œcô@Ùè… UrO$¢¬¬¾££GW) (ÍξÝÿq.…B).–ÿÐ/J k´¹™õË/MýŸŸH$’sçnë$¥áY£ÅÅ÷¨Tr jjZššº†?¥áY£99wD"‰ÂMA <ð¢ùɱ—/{ôõ©nn¶äjo¯°»ûµÍHiúú—:JMë ÿ¤ŠŠî­[÷]këA]'2 ;ê¾µ`£¨¢6ŠØ(j`£¨¢6ŠØ(j`£¨¢6ŠØ(j`£¨¢6ŠØ(j`£¨¢6ŠØ(j`£¨¢6ŠØ(j`£¨¢6ŠØ(j`£¨¢6ŠØ(j¨óï;wÞ¼ySÙh‰žóöv[W×Z]'24þõ¯Íš5k¨µÔù†šššGy{{«QW'XX€£c€…®ÙÙÙk×®U£¢š¿¬áííýçü¹kdP8é©*àë(j`£¨¢6ŠØ(jèÞh}}=y_×á68 Õ)J}}½ÚûÒº7J£Ñ6oÞügnðÍB÷Fétúž={þÌ ¾YhËhQQ‘½½=›Í€ÌÌÌñãÇóx<‰D’””4qâDsssooïk×®‘£–’QîüùóS¦L155µµµU詸¸ØÃÃÃØØØÙÙùôéÓðûa“B¡œ8qbâĉVVV{öì9}úôرcGŽ'-YXX8aƒ±aƾ¾>ÙÆ…Ball¬µµ5ƒÁˆ Ltùòe ‹ÄÄÄÚtGšD¹ÖT™¿mÕªU!!!íííÖÖÖåååA;vŒÁ`äååµ¶¶^¸pœ2¬®®ŽL£ÿ‡Ã144 kiiÉÈÈ€—/_Êî‚Ë奤¤´µµ¥§§ëëës¹\iuò‘u`` ‡ÃIKK€eË–q8œcÇŽ@gg'YÒÏϯ¶¶–Édº¸¸$$$ÈVß»w¯¿¿SSSuuõÔ©S·lÙ"wŒ0oÞ<‡“››;h›rAå½YYYªè¯¨F²Ùliöîîî§N’øî»ï”íëëûõ×_¹\®X,¾qãYXv,ËÀÀ`ÿþýl6["‘ôôôˆÅb9£•••A¹åºº:²duu5Y8++ËÅÅE¶º››[[[¹\RRâéé)wŒpýúu‚ Äbñ mÊ•÷žÚFµx¥Ñhááá<ˆŒŒ$# žžžÒÊ[044¬­­;wî{ï½wêÔ)iœòÿXXX\»vÉd:88Ìš5ë§Ÿ~"'Ô’ÅÜÜ ä–¥¸ºº’ nnn---²›mmmÉ}Í™3çéÓ§ý“´³³¹ý*lSÉŽ4ˆ677'%%ùúúFGG“{{ûªª*i(oÏç/[¶,66¶²²299Y—þ?òù|‰D’Íb±V¯^=þ|‹5Ô<ÉjkkI=RètºtT`³ÙL&³u…7 ÛT²# ¢-£‰$,,,***33³´´´¸¸ÂÂÂbcc ÛÛÛøá‡-[¶(o¤¯¯O òùüøøxèéùÝT- ÅÏÏ/77—ÃáSSÓ¡¦ºqãÆúúúÛ·ooݺuÅŠ²›–,YòÏþóÙ³gÕÕÕsçÎ=r䤥¥½zõJ6•ìH“¨1R«r=|øðäÉ“Aùùù¶¶¶,K ìØ±cìØ±fffÞÞÞgÏž¥×Q‚ 80jԨѣG'''2 ¹eee7ÎÐÐÐÍÍ­°°P®:È\zû/“%ÓÒÒœœœètzTTŸÏ—­ÎápBCC-,,,--ÃÃÃy<ÞiS.¨¼áOxg4(²}§´‘€Â6ÕØ‘ÚFuÿ„£YÞj£#FŒˆˆˆ†6µ±£Pç“cË–-ƒ?ë$ìÈ@¡P²²²È®oõ9Š$Ø(j`£¨¢6ŠØ(j¨ù™ú›7oΙ3G³©`4‚:F½¼¼4žFŽ€€€Ñ£G«Qñ­˜ô­_GQE l5°QÔø?Ÿ¹2ìž›‹IEND®B`‚XQilla-2.3.0/docs/simple-api/ATGMonthDayOrDerived_8hpp.html0000644000151400015140000000642411653571064020341 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATGMonthDayOrDerived.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/items/DateOrTimeType.hpp>
#include <xqilla/items/Timezone.hpp>
Include dependency graph for ATGMonthDayOrDerived.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  ATGMonthDayOrDerived
XQilla-2.3.0/docs/simple-api/DateOrTimeType_8hpp.html0000644000151400015140000000640111653571064017310 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

DateOrTimeType.hpp File Reference

#include <xercesc/util/XMLString.hpp>
#include <xqilla/items/AnyAtomicType.hpp>
#include <xqilla/framework/XQillaExport.hpp>
Include dependency graph for DateOrTimeType.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  DateOrTimeType
XQilla-2.3.0/docs/simple-api/VariableTypeStore_8hpp__incl.map0000644000151400015140000000003511653571064021027 00000000000000 XQilla-2.3.0/docs/simple-api/DateOrTimeType_8hpp__dep__incl.map0000644000151400015140000000061211653571064021252 00000000000000 XQilla-2.3.0/docs/simple-api/StringPool_8hpp_source.html0000644000151400015140000002754011653571063020137 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

StringPool.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef __STRINGPOOL_HPP
00021 #define __STRINGPOOL_HPP
00022 
00023 #include <xqilla/framework/XQillaExport.hpp>
00024 #include <xercesc/framework/MemoryManager.hpp>
00025 #include <memory>
00026 #include <cstring>
00027 //Added so xqilla will compile under CC on Solaris
00028 #include <string>
00029 // Added so xqilla will compile on SunOS 10 using STLPort
00030 #include <memory.h>
00031 
00032 class XQILLA_API StringPool
00033 {
00034 public:
00035   StringPool(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm);
00036   ~StringPool();
00037 
00039   const XMLCh* getPooledString(const XMLCh *src);
00041   const XMLCh* getPooledString(const XMLCh *src, unsigned int length);
00043   const XMLCh* getPooledString(const char *src);
00044 
00045   unsigned int getCount() const { return _count; }
00046   unsigned int getHits() const { return _hits; }
00047   unsigned int getMisses() const { return _misses; }
00048   unsigned int getTooBig() const { return _toobig; }
00049   void dumpStatistics() const;
00050 
00051 private:
00052   StringPool(const StringPool&);
00053   StringPool &operator=(const StringPool&);
00054 
00055   static unsigned int hash(const XMLCh *v, unsigned int length);
00056   const XMLCh *replicate(const XMLCh *v, unsigned int length) const;
00057   void resize();
00058 
00059   class Bucket
00060   {
00061   public:
00062     Bucket(const XMLCh *v, unsigned int l, unsigned int h, Bucket *n)
00063       : value(v), length(l), hashValue(h), next(n) {}
00064 
00065     const XMLCh *value;
00066     unsigned int length;
00067     unsigned int hashValue;
00068     Bucket *next;
00069   };
00070 
00071   XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *_mm;
00072   Bucket **_bucketList;
00073   unsigned int _modulus;
00074   unsigned int _count;
00075   unsigned int _hits;
00076   unsigned int _misses;
00077   unsigned int _toobig;
00078 };
00079 
00080 inline unsigned int StringPool::hash(const XMLCh *v, unsigned int length)
00081 {
00082   unsigned int hashVal = 0;
00083   while(length) {
00084     hashVal += (hashVal * 37) + (hashVal >> 24) + (unsigned int)(*v);
00085     ++v;
00086     --length;
00087   }
00088   return hashVal;
00089 }
00090 
00091 inline const XMLCh *StringPool::replicate(const XMLCh *v, unsigned int length) const
00092 {
00093   unsigned int size = length * sizeof(XMLCh);
00094   XMLCh *ret = (XMLCh*)_mm->allocate(size + sizeof(XMLCh));
00095   memcpy(ret, v, size);
00096   ret[length] = 0;
00097   return ret;
00098 }
00099 
00100 #endif
XQilla-2.3.0/docs/simple-api/structQueryPathTreeFilter_1_1StackEntry-members.html0000644000151400015140000001164011653571063024767 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

QueryPathTreeFilter::StackEntry Member List

XQilla-2.3.0/docs/simple-api/inherit_graph_40.map0000644000151400015140000000060511653571064016451 00000000000000 XQilla-2.3.0/docs/simple-api/StdOutFormatTarget_8hpp.html0000644000151400015140000000543311653571064020217 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

StdOutFormatTarget.hpp File Reference

#include <xercesc/framework/XMLFormatter.hpp>
Include dependency graph for StdOutFormatTarget.hpp:

Go to the source code of this file.

Classes

class  xercesc::StdOutFormatTarget

Namespaces

namespace  xercesc
XQilla-2.3.0/docs/simple-api/classATGMonthOrDerived-members.html0000644000151400015140000004334411653571063021423 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATGMonthOrDerived Member List

This is the complete list of members for ATGMonthOrDerived, including all inherited members.
_ref_countReferenceCounted [protected]
ANY_SIMPLE_TYPE enum valueAnyAtomicType
ANY_URI enum valueAnyAtomicType
asString(const DynamicContext *context) const =0ATGMonthOrDerived [pure virtual]
AtomicObjectType enum nameAnyAtomicType
BASE_64_BINARY enum valueAnyAtomicType
BOOLEAN enum valueAnyAtomicType
castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [protected, virtual]
castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
compare(const ATGMonthOrDerived::Ptr &other, const DynamicContext *context) const =0ATGMonthOrDerived [pure virtual]
DATE enum valueAnyAtomicType
DATE_TIME enum valueAnyAtomicType
DAY_TIME_DURATION enum valueAnyAtomicType
DECIMAL enum valueAnyAtomicType
decrementRefCount() const ReferenceCounted [inline, virtual]
DOUBLE enum valueAnyAtomicType
DURATION enum valueAnyAtomicType
equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0ATGMonthOrDerived [pure virtual]
fgDT_ANYATOMICTYPEAnyAtomicType [static]
FLOAT enum valueAnyAtomicType
G_DAY enum valueAnyAtomicType
G_MONTH enum valueAnyAtomicType
G_MONTH_DAY enum valueAnyAtomicType
G_YEAR enum valueAnyAtomicType
G_YEAR_MONTH enum valueAnyAtomicType
generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicType [virtual]
getInterface(const XMLCh *name) const =0Item [pure virtual]
getPrimitiveTypeIndex() const =0ATGMonthOrDerived [pure virtual]
getPrimitiveTypeName() const =0ATGMonthOrDerived [pure virtual]
getPrimitiveTypeURI() const AnyAtomicType [virtual]
getRefCount() const ReferenceCounted [inline]
getTypeName() const =0ATGMonthOrDerived [pure virtual]
getTypeURI() const =0ATGMonthOrDerived [pure virtual]
gXQillaItem [static]
hasTimezone() const =0ATGMonthOrDerived [pure virtual]
HEX_BINARY enum valueAnyAtomicType
incrementRefCount() const ReferenceCounted [inline]
isAtomicValue() const AnyAtomicType [virtual]
isDateOrTimeTypeValue() const DateOrTimeType [virtual]
isFunction() const AnyAtomicType [virtual]
isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicType [virtual]
isNode() const AnyAtomicType [virtual]
isNumericValue() const AnyAtomicType [virtual]
isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
Item()Item [inline, protected]
NOTATION enum valueAnyAtomicType
NumAtomicObjectTypes enum valueAnyAtomicType
Ptr typedefATGMonthOrDerived
QNAME enum valueAnyAtomicType
ReferenceCounted()ReferenceCounted [inline]
setTimezone(const Timezone::Ptr &timezone, const DynamicContext *context) const =0ATGMonthOrDerived [pure virtual]
STRING enum valueAnyAtomicType
TIME enum valueAnyAtomicType
typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicType [virtual]
UNTYPED_ATOMIC enum valueAnyAtomicType
YEAR_MONTH_DURATION enum valueAnyAtomicType
~ReferenceCounted()ReferenceCounted [inline, virtual]
XQilla-2.3.0/docs/simple-api/ATDoubleOrDerived_8hpp.html0000644000151400015140000000625111653571064017717 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATDoubleOrDerived.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/items/Numeric.hpp>
Include dependency graph for ATDoubleOrDerived.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  ATDoubleOrDerived
XQilla-2.3.0/docs/simple-api/DebugListener_8hpp__incl.map0000644000151400015140000000003511653571064020157 00000000000000 XQilla-2.3.0/docs/simple-api/classATGMonthOrDerived__inherit__graph.map0000644000151400015140000000077511653571064023007 00000000000000 XQilla-2.3.0/docs/simple-api/classFastXDMConfiguration__inherit__graph.md50000644000151400015140000000004011653571063023450 00000000000000fa936c2f6046f4edc245fdcd19b0bc3cXQilla-2.3.0/docs/simple-api/ATDateOrDerived_8hpp__incl.png0000644000151400015140000012305711653571064020352 00000000000000‰PNG  IHDR@ÃUšJ¼bKGDÿÿÿ ½§“ IDATxœìÝw|SUÿð“6Ýmv³º7¥Ø¥ ¥€2D‘%‚2' ⃂TÄÇGdînM x4°€Gƒ x4ª»€ö1räHw7´ƒ#Gޏ» ‡³Ý…BéÙ³'—ËuwC@+)Š7nÀ½@CÐ è>&Nœ8lØ0w·´ÒŸþùþûï»»žj`ðh`ðh`³^gÇŽÛ¶m›3gγÏ>‹—?~üÃ?l¸æ¦M›æÌ™C>åñx ,`0mlƒÙlÞ¾}û¹sç¤Ritttvvö”)S|}}V{øá‡[}ôªªªçž{.77·Õt¹‡‡~x×®]­Þ-h)°ïBÄñãǹ\nnn.`=ôÐCû÷ïGI¥Ò—^z ?FÑh4„ÐÚµkÝn¯¬¬Ü¿ÿܹs·nÝêrÿR©tþüùl¢ 555 ,`2™óæÍ …¥¥¥[¶l9þü_|áããÜ=¼EGw:uêÔû®< !¼KiiiEEÅ’%KŠ‹‹Åb1^Àb±X,îÜĺ‹J¥"„ ‹Åâp8}úôùðÃÁ?þØØþív»Á`hº ;vì`0kÖ¬éß¿dddvvö† d2YNNNÕ[ttGt:}îܹÍYx8°ïrüøñŒŒŒÌÌÌèèèãÇ·ts …òä“Ož9s?=}úôœ9sF=a„ï¿ÿ!´páB„ÐÓO?W°Z­6l?~üøñã7lØ`µZBGŽ™1c†cg«ÀÀÀ)S¦9r¤ªªêᇾxñâäÉ“¯^½ÚôÑîÜqóÇãˆï¼óκuëð&‹eìØ±x 7·Ûí»wïž>}ú˜1c^z饛7oºü#œ?~Ú´icÇŽýî»ïBø §Nš>}úøñã¿þúk‹ÅâraKÿÚƒ ð"xüàðáÃBC† i]}¨ÈÈH‰D‚ª©©Y¾|yRRÒ®]»,X°iÓ&N‡£¢à•÷íÛ'•J7nÜøÅ_\¼xqÛ¶m&“I£Ñ$&&:í611±¢¢?Þ»wïÒ¥K“’’š8ºË»Ü|øðá'Nœ !tîܹ€€€¬¬,—›ï߿Ϟ=sçÎݹsçôéÓ7lØàò/pöìÙM›6-Y²dóæÍdw³ŸþyåÊ•Ÿ|òÉÙ³gq–רBÐR`^äÖ­[ …bÈ!¡!C†”•••––¶zoþþþ[¶lyå•WØl6—ËEUWW;­“““óꫯr¹Üøøøyóæåçç7¶7 …b·Ûñã¹sçöéÓ'00°é4¶s§Í|ðAƒÁPXXˆ:vìØèÑ£qµø†›ÿòË/óçÏÏÎÎf³Ù hlâäÉ“ƒƒƒŒ2xá‚ "##SSS_|ñÅ#GŽ4±´q¼ÈñãÇm6Û¸qãÈ%¹¹¹qqq-Ú‰X, …!*•*‹W¯^][[ë²·BH&“M˜0|Êb±Š‹‹333×,..NNNÆ£££ï{t—;w¹y@@ÀC=tâÄ‰ØØØ¿ÿþ{Ó¦MmnµZ»†ÅÇÇ»l›ÍFQ(Ç…‘‘‘äÑ•Je @KA€x »Ýž››»páÂ'žx/Ù¶m[nnîÌ™3²˜&ñË/¿ 8!TWW÷Þ{ï½÷Þ{ƒ ²X,.K°Óéô/¿ü2""!„"„FŒ±cÇŽ>}úe°Ìfó?ü@ÆI¸x|ÓGolç.7>|ø×_˜˜˜œœL†J 7_¾|ùíÛ·ð eee.›áòÏ%‹qàUYY‰®Æ€–‚!„€·(((Ðjµ#GŽ ºkĈb±¸¸¸¸é u:F£Q©TW®\y÷Ýw¥Ré¤I“B‹ÅjµR©Ôúúz\ª¦¦oR[[‹dggoÚ´I.——””,Y²äçŸF=ÿüóZ­vÑ¢Eùùùb±8//oÁ‚DZkØ}ÞØÎ]ÊÊÊ2™LÛ·o3f ¹°áæO>ùäúõëO:¥Ñhòóó·nÝŠ×üí·ßŽŽt²víÚªªª[·nmÞ¼yäÈ‘M,-=°oqüøñ¾}û2 rIRR’P(ÌÍÍml öÒK/á\.7==ýÿû¬º`Á‚>ú(((èÙgŸ>|ø’%KöíÛ÷ÀL˜0á÷ßGÍž={íÚµsæÌ¡P(C† ™7oB(88øÿûß¶mÛ6lØ ‘HÁðáÃ'Nœèçç×ü£»Ü¹J¥rù¨TêСC;6tèPraÃÍýüü,ËúõëÕjuBB»ヒ'U\½zuïÞ½Éãº4bĈ7ÞxÃl6>|Ú´ixÀ ÓÂ&6M àyÐÕQ(”+V 6ÌÝ ñ:UUUÏ=÷œÓ”Ž.6íÏ?ÿ|ÿý÷áÞ  !ètaF£Y¥2j4ÕMµ¯o˜»›@‡€ ðD‹ ÇRMµZmT««ï>5©Õ&µÚ¤ÑÔh4&‹ÅFnë¾özµ±cÇ6ga3vÕwøðÏX¬'ŒÅ e±BX¬'”à ÃY¬__¨a ¯Щ,›Fc’Ë r¹A§«Ñëkõú§§ZmM}½•Ü„F äótzƒL§edDóx4ò)Gçñh~ ¡§ÝøÒ¼ƒÁX´hQsÞ—Õª5ª—JeR«MׯWi4&\:®Ãd†°Ù!8Þb³C9œÐ»ÙV(‡Êf‡²X!.ª‰t]`íƒ … ÓÕêõ5z}­\nËõ žÖÔÕÝK¦|}}8œP:=˜Ç£ñx´èh6ƒD>¥ÓƒñS#¼G]]å[oi¸Ül¶èõ5:]­BaÉô8èÄOE"~ªPëgáÉ)èt|*2üü|;ñÅ´X@³Ô×[Õj“RiT*ñ¾ê»CùÈ‘}Õz}ã&¸_ “Âb…¤¥E –‚{Íà4xPXp°¿»^èBýé<=%…ߨ:uuV®Úe„*— Äz}Zm²Zíä&T#˜Ì¶pfêøT  ÓhAòš€BƒY©4¨Õ&µºZ.7¨Õ&<ÐæR*C-¹r@GQxôVT‹¬UÄf‡âÄ jN@åñè<½‰ujkë5šj|V“Ù«RiÒhLååj¦B­6ét÷rX …BÖÞb±B¸\·Èb…„‡ß{L¥Â©€Ž€îϱŠ\np¬9…d9ëóóó \.Áæñh©©§1}Lfˆ¿?|€‚áëK1âó¸¸ðØXN\ÿ›Ï§S(”vÙPD„D³‰u¬V;¶4šj•ÊHF]jµ©¨HN>µÙîõäÂñ³ ä@G€ûo]›ÕjW«ÿ ¤ ŽY•cÙ) …Âå†9Õœ"L‘ÕÐÝûŠ€w³Ö£´TyüøÒR•ÙlAúÝ ³Âccï¤ZB!£½R-'Tª—Æå†5½Y–ëŸo·Z…ÂpㆤaY.<\‘N¦Óƒø|:—KkXñ­éîcðf`ðhƒY*Õ5ü†ŒëXã%äÊTª›Šs(–ž…“)òÛ2ƒŸ}ÀsÙl¦wÞK>ÕëkÊËÕååêŠ uy¹úêUño¿])/WãÿÊãÑ’“ù11ì˜vt4;&†”Ä ê¤ªjdY®&Ö©¯·jµ®Ër‰D2üþU©Ldg.¹ÐŠãl5@'³XljµI.7(•FµÚ¤PÜ©9¥PÕj£ZmR©Lvû*__6;„ÍåpÂÂÃÃØìP'WâpÂx<›êÍù…B‰g2™A­¯µXBýýþþzw·Ë»Ý×ÇÇF>%_ ÅÖÄúÍG> BÈ~ß5;Buu„¯¯9 @O¡Xï¿vZ­¶¤¤ä¾÷fN©~PQ¡ÁÒéÁÉɼ”>™j%&ò<|®½¾wœllúNÇÚórÞ ,Èn'T*“Zm”É *•Q©4âˆJ¡0(•F¥Ò¨ÑT“+ùs8¡\n‹Êá„q¹w"ªðp.ŽÎf‡tИ©®Î`0T.Y²²ºÚßdò¯­õEZ££\nÍ}7ïd55~7n°„B“PX2üoÞd¥§«‚‚Zú8¹vhKLÔ¶}W-EèÚ5ŽÁà%4´žN¯c2ëÂÂê}|Zv¯µwïÞV½®ÎZV¦‰d¥Z11lláT+!Њ¹…ÙlÁ¹Tª{¹ð?V©ŒF£™\Oô‰koáhÇÜ8øÆOÝørÐ `h=‹Å&‘èär½Sqô»}(->E–Â(ø|ìÞ×Òµ(•ÆË—+ * Ä•r¹ÁÏÏ·wïèôô¨ôôÈôô¨øøp??_w7Ó…={òßzëÇ#z~õÕ³!!R©nôè5ƒ%¬_?£]ÒÉ?þ¸6kÖÖ+ÆÍ™3´í{k³Ùrî\é_‰òóK.]*'”–‘>îéNØÌT+:úN­¸¸ð°°@·4µ#˜Íœ°;Wl¬¬ÎÜéô <')¢c·€ ¼ÍfW©Œ2™…S( Ré+•¥ÒD~RÜý Gǃûø|:›Êå†q¹4ÜÆ÷µ£†‰•%1‘‡ãªôôÈ^½"=¼°‘#•Ê4wîö7ªÖ®>bDO¼ð•W¾ûãë99¯ÇÅ…·ã±‚X°`ç_þþûë±±œvÜs[(Ƴgoç剎»)•êX¬‡JÊÎNÎÊŠKIá»»uwR­Š uaá`«éT+66œFë>©–#rvEÇTË1ðrY‹Lµø|—Kc0‚ñĦB!ÃÓe «€ º¿êê:±XKæSŽY•L¦'GùùúúDF2¹\9¬Ïñ1ôŸêhjµéâŦ«´´ˆ.T´ÈÑ•+•³go ضmv|ü¬jûöSï¼³Û¶Ù#G¦µûkjêÇŽýÊjµ:ôšö*/Wçå‰òòD'N µ<­ÿøììä#zòùÔ£ÆEµp°UQ¡‹µxÒ@ÇT CìÑC@£¹»Õ¡én\2™Þ`¨%W Þ-6'Õrš5<œæ®îx@tF£Y*ÕÉdz™Ì@ŽõS* xô9Ð/(È_  s¹4€&2ÃÃÃÈ%Pó¥3i4Õ.”5‘XõìÑu ‘~üñÜ’%{‡ ëñßÿN#³¤3gnOž¼þ¥—†/^üXW,Ö>öØš¬¬¸-[fzlß@›Í~ýzU^žè¯¿DgÏ–Ô×[cbØÙÙÉÙÙÉC‡öðÌ.NŽ©Vy¹El,ÕŠ‰a''óy<š»[ÝÙZÔ 9ŒUt9¯¢@ÀðÌ“èL`@—A„Ba”Ëõ2™¾ªJ§P$Tª—Ëõ‰Ž,NŒíçñèd*Æç3¸Ü0>Ÿî½Q¼‡V[}þ|÷O¬H6›ý½÷nÝš·hѨE‹%S$\¸=##jûö;´ãÉÙ³%“&­{íµQ¯¿>ªãŽÒ^jkëÏŸ/ó®]S(7Vo)§T E,)QàŒ¦aª…¸»Õîd6[Ôj“\nÀÅæñô¬xjE•ʨV›Ôêjœ "„||(xòD\iݧ±Ù¡|>ž¤5ŒJõqï+:XàYÈýärCy¹Úñ)YZ˜Jõ‰ˆ¸3Ö/:š}w^?GçóéýE׫èt5çΕ:&V %)é^b•š*쮑¢^_³`ÁÎüü’5k¦>ùdor¹ÝNL™²¡¬Lyøð,VHG7cË–¿–/ÿyãÆçŸx"££ÕŽ4šêS§Šð0Ãòrµ‡To©†©Vy¹º°PЇ-ÓhA±±§T+:šå±Ýå:Ax.E‡T«Z¡0(•FÆ$“T*#9!„çR$gÏàriN‡ƒgÕ€„ @w¸ÁP+•ê%Ba¨ªÒÊdz¹ÜPU¥Å¿Æãu|}}8œ°ˆ—K ׿óé0ÖÏcéõ5ùù^šX9ºuK:kÖV»Ø¶mVjªÐñ?­]{ì‹/:ôZZZDç4æÍ7÷üòË¥_~yµGAç±}ÉåúüüÒ¼<ÑÑ£7d2=›úàƒ‰¸gVtt×ëÄdµÚ«ª´N©–H$3›-¡€jL '%…©VsÔ×[µÚê†Éß<”J#.ÃîÖ›'+p9•âè^R¿ @×t³Ù"k¥RD¢‹µ‰?®ªÒ’ÃýýŸO ™<M   …L.—Áóõ…Ì=]MMýµkbWˆoßVØí„cbÕ£‡ÐÛŠ×üöÛ•×^û¡oߘ f0™ÿècuêTñäÉë>ùä™3ì´öX,¶I“ÖI¥úœœ×ÚÓå8T¿e0˜cbØYYqýûÇÙ“Çó êï­ —ëE"¹cªUT$¯­­GùûSzr2?9™O¦ZQQ¬®ÒÍî›p)Fò»€Ë„Ë¡$\Ü ,h‹Å&•ê¤R½X¬‘Jõ‰¶ªJWU¥•JõZm5^' €*2…BºPÈŒŒd  €Áàóé Lí×ÅÔÖÖ_½úÄÊf³''ó+o™ˆ­!»X¹ò·uëŽ/\øÈÒ¥cœX­¶zĈÕYY±6<ßÉ S(Œ=¶&)‰÷Ýws»G.lµÚoܸSýý̙ۋÍó«¿·‚^_SX(ÃÁNµŠ‹å55÷R­èhvr2?%…©Vë´k•æt,°àþª«ëÄb­BaÀ½ðÍ}E…Z&Ó“%Hh´ÀØØp|+Ã& TAQª®«f2jÿõ¯ÿ}û‹/&?õT߆+ÌŸÿí™3·]Âá„v~ó®^÷ßY³²ßyglç½CÕÔÔ_¸p§úûÕ«b__JÏžwª¿˜àççëî¶3½¾¦¼\ƒ-œjݾ­ÀÝZýü|…B~ˆƒ­èhvd$³{¤–n Ï܃ƒªÊJX¬‹5É …Áb±!„( —&2„B¦@@Œd t¡É §Á/ÿ݃Ùl!‹XˆñLj< ÇUýûǧ§GÒéÐuîD"ÙÌ™[-ëÖ­³{õrQÜjÿþó¯¼òýÎsy$µó›‡íÛwþÕW¿_»ö¹ñã]äk݃Je:}º8/OtâDae¥&8Ø?3óNõ÷ˆìÆ•¤pª…Ëiá[%% “É9ÕÂÁVr2R­öâ”p)™Ì ××@ ÝA€ðF:] ލÄbmE…ºªJ+kÅb-9èF Šˆ`FF’#þîdU£ûuguuÖ+W*œ+.7,##šìfÕÕ u¨Ã‡¯¾òÊwQ7¾àrbÁª*í#|6aBæ'Ÿ<ÓùÍs´bÅÏ;vœúé§—{÷ŽvoK:Y0ëäÉ"­¶º«Wo…†©Vi©Òh4#Hµ:‘NW£TU*žBQ¥2âéJ”J£BaT©Œø÷!„O˜(ÐñDŠ\.ËÅó*†ñùôÐÐ÷¾î Û2›-ååjrÜñ§P$¾]¦R}""˜Žs]ñx4<Ó¤TÝ›ËÄ*<<¬woH¬ZƱèÕ[o¡R]|ù'bòäõUUº£Gßtûì™6›}ÆŒM"‘<'g‘[F2º…ÝN\»&ÎÏ/=w®47÷¦ÉTGÌ<8©«¶o)2Õª¨¸3±¬Li0¸Hµp­„®Ë´­¶Z©4ªÕÕr¹ç\ …A¥2I¥zµÚ¨R™È‰ƒ‚üyŸÎåÒø|žq…Ë¥1Að¡,€'²Ùì‰Î!¨úG§*__€ÃŽŽæDG³p\ÅâriP¾ÄkY,¶K—Ê++$33«vwâDá‚;Â7ožÙô_õÅ·‰D²£Gûû{Ö\œ‡_={ÛªUÏLŸþ »Ûâ”Jã™3·óòD¹¹·ªª´ÞSý½¥¦Zøþ¯<-9™ï˜j%&ò‚ƒ!Õr§¶tà”À‚¨¨Ð8} ƒ*JTËé'nú0›Í^\¬((¨º{÷Ïlž‘ÕßÿúK¤××p8¡ƒ%fg'šÅrwë<‘ÁP[V¦rJµ**4ø6›NNN楤ð!ÕòLޏœB.™LG’b.;p1wB..—Q/t(°Äl¶ˆD2§û{™L_WgE…†ÄÇsSªèh¶@@÷´^Àìv¢¨HŽ;XTÞ¸!©®®ƒÄª3ÕÖÖ/Z´û÷ß >þxÂsÏ jzeƒÁ‘‘¬¸8NB7>žω‹ ˆ`úøÀê Yœ«ÂB©Á` ô{àH2±JHà¯ÇH,ÖΚµE&ÓoÜøBóçé³ZíÇ–š*ذáùm^»[´hwNÎÕœœ×cc9înK—çXýýìÙ’úú{Õß³³“ ˜I¶=9¦ZäoNM¤ZÉÉ|O®Lš¯íñ–PȀᨀ.,¼Ab±¶¸Xqë–´¸XQX(-*’f„ƒœœÌOJâÅLJÇLJ'$pcbØ0 ´$VÝÃßÏ›÷-—¶uëì˜vó7üá‡3K—î;qbi—‹êê¬O?ýµÑh>tèuè°ÐŽjkëÏŸ/ó®]S(”´´;³²²âýÜÝÀîÉ)ÕÂÃÿKJ8Ôh˜jáîn5hOMÄ[d¾‰ Þt)`Ð͙͑HVX(‰p+®ZåãC‰Šb%'ó““ù¸(lll8|g­SX(sH¬dCm@5== «.jóæ¿>øààèÑ|ùåÔÌ€VWg}ðÁÇŒIÿðÃñ×¼Ž#—{lMFFÔ–-³ ŸiGÐhªO*Âà ËËÕPý½“5Lµp-³Ù‚¢Ñ‚bc9N©Vt4 ™uKm·""˜0E& “A€@·R[[_T$wŒ«prJb"/%…g憪U ÊËÕùù%Xu?‹mÙ²ýßæí·_¸ð‘–~qݰáÏ5kŸ9ó.‹ÒA-ìh.”M˜ðÍË/xãGÝÝ–nN.×çç—æå‰Ž½!“é¡ú»»X­öª*­SªUT$dz Pcb8xnHµ¼‡^_S^®vª.«T¦æÄ[‘‘ÌýþÍ]˜ÝNTT¨¯_¯"ÇÉqu>ŸŽ»V‘ÿ†š# -ärCAA%ÙÍJ.7øûS32î%VññáÐ{¢«“Ë sæl‰dëÖMoE-s“©nàÀ§N¸lÙѼN³wï¹×_ÿaÆcÇövw[¼…Cõ÷[ƒ™¬þþðÃ="" ú»{Èåz‘Hî2Õò÷§ ø6ƒO¦ZQQ,è·è ,›FcrŒ´+•F»ýηKˆ·í,º’êêº[·¤×¯Knܨº~]rë–´ºº!ÉLLäõèÁÇݬ’’ø0´‘Ba¼r¥Â1±òóóíÝ;«îêâÅòÙ³·ÑéAÛ·Ïn]ùªo¾9ößÿ=sæ&³«v¿"-[¶ïÞs¿þújw·Å»X­ö7îT?sæ¶Åb#«¿’L§Ã/1n¦××à^ÞdªU\,¯©¹—jṉÉyŠ!Õò6F£Y&Ó+F™L§PïŽO¼rá!äçç‹gHè<M(dòx4¡ÁãÑF@ ¸M,Öâ¬êæMɵkUj» òïуŸ–ѳgDÏž‚ÔT!”Øm§T/_†ÄÊKíÞ}véÒ}ǧ~õÕ´ÖÕ4©­­0àÃÉ“tõîW˜ÕjŸ:u}E…&'gQ×ÙÕÕÔÔ_¸p§úûÕ«bŸ{Õßû÷‡¯¸ž7ÃÁNµnßVàØüü|…B~ˆƒ­èhvd$Ó×Ƙ{#ƒÁL[r¹^*ÕK¥:¹Ü ‘è”J#92‘Å áñhL‡‹Žã-¸ àå ÀÀƒh4ÕׯW‘õ°KK•¸Úzb"'¸ˆGwwKAw R™.]*wL¬|}}¸ødëß?.5U‰U·×Æ¢W¤;ÿ^¾ü§óçW°Ù¡íÛBwÑj«ÇŒù2:šýÝwó  ›Û©T¦Ó§‹óòD'NVVjý²²âú÷ëß?ª¿{&œjá"ñ¸ÇVI‰ÂdrNµp°•œÌ‡T ˜Í¹ÜPQ¡v¬+_^®v™H§óx4Ãæñh<?åÐhAî} €Žnc·EEò‚‚J\p'!&3¤W¯ˆäd>t{íK­6]¼øÄÊ1MOLK‹€š^E©4λýæMÉ×_?7rdZ«÷c·ÙÙ+NúôÓ‰íØ<·»qCòä“_͘ñàòåãÜÝpY0ëäÉ"­¶ª¿w!dªUQq§ÇVi©Òh4£©ŠóÌ©ðNµðc±Xƒ±¢VÝŠŽÆñþ‡ )ÝXtªª*í•+•øŸë׫ÔjB(<<,5UØ«WDÏžÂÔTab"+Ð.4šê Ê ±.]¾\1{ö¶ÿmÛf'$pÛ²«£Go¼ðÂæ¿þz;>>¼½šç!~ÿ½`ΜíkÖL™<¹¿»ÛœáßÎ+ÍËåæÞ4™ê¸Ü°²³“y$U(d¸» YS-<±°Pj0¸NµbbØ))@ H‹M.7H¥:©T/—ë%~*“ée2}]¯ìÁÄ5¶ø|:ŸO‹ˆ`òùt>ŸÁ冹÷%š,:ž»íÊ•Ê+W*®\©T©L¡ØXNFFÔD¦¥E¤¦ ჴ­¶úüù¦«ž=#ZWát3{÷ž{ë­½C‡öøúëim/¢7yòz*Õç»ïæµKÛ<ÍÊ•¿ýï8ðrŸ>ÑŽË-üØà9 ú{7ã*Õ’ µ!*Õ'"‚é”j%'óýÜÝjàqÔj“Ba¨ªÒÉåz™L/‘è }U•N&Óët5x??_>Ÿ.0„BŸO ™ÏgDD0ÂÃàß,Ú™Ñh¾x±Ôºr¥R&Ó#„"#™ééQQ½{G§§GÂ4h/:]͹s¥Ž‰…BIJº—XAàÄjµÿûßû¾ûîÌÂ…,]:¦í·æEEòaÃ>ýöÛGŒèÙ.-ô4v;1sæ–‚‚ÊÇ‘% e ìøù痡䊪®®»x±ª¿w?N©.°…Ë/ „xí²Ï>8˜“sõÔ©e>>ݶöÉT7vì‚öí[èïO=|øêÂ…;ÍfË_Lž:u »[š¢TÏœ¹—'ÊͽUU¥ÅÕßqÁ¬^½"»ñIë=¦Zøþ¯ S­ÄD^p0¤Zà>ôúÇ*òw.ƒD¢Ås FJná„‹Ë¥A=>:X´†Ñh¾t©üüù²‹Ë/\(×ëküü|ÓÒ"23c33cúõ‹‹Œdº» ›¨©©¿vM|î\)έ&V=zi4H¬Àýݼ)={«ÝNlÝ:«gOa»ìÓb±ef¾÷ ƒ-z´]vè±JJ”cÆ|ùØc½""X_~ùA %++öçŸ_qwÓ@s‘ÕßóòD:]Mhh@Ÿ>wª¿§§G¹»u = µee*§T«¢Bƒ¿øÐéÁÉɼ”>™j%$p¡"$h&2Û³%’}¸ÊÊTx”+BÈߟ*Üɶ¸\ŸO#ûpEE± : Õ À ¹4šêüü’¿ÿ.>sæöÍ›R›ÍÎå†õíÛ¯_lfflFF_í¢¶¶þêU1î`UP ¾}[a³ÙÉY)!±­sèЕ×_ÿ¡oߘ f0™!íµÛ#G®¿ð–³gßõ†ÔþÀó¯½öA ›ÍŽ—P(”Ó§—EG³ÝÛ0ÐR6›ýúõ;³òóKêê¬PýÝÔÕYËÊT"‘¬±T+&†ƒ-œjÅÇs¡j$h>‚  £Tª“Ë UUZ©WÝÒJ¥z©TG–“  B!C `ŒÈH¦@@Ç`Ä+÷MQ(ŒgÎÜ>{ööéÓ· e¡¤$Þ€ñýûÇõïÅrwAwÐŒÄJu@«ÙíÄÊ•¿­[w¼½Š^9š?ÿ[…ÂxàÀKí¸OÏTX(›>ýr¹,Œ‚¢R}/ýòË#ÜØ0ÐFf³åܹÒüü’üüR§êïC‡¦Àµ·Û«¯·J¥z‘H&ÉÈT«²Rc·ßKµp°…‡"ÆÅ…Ã8}Ð jµÉ1تªÒJ$Z‰D/‘hÉl‹Áè‘‘,i …Œˆ¦@@ ™P¼ ,œ©T¦S§ŠNž,:sæöíÛ *Õ'==ªÿ¸²²âÚ±çðZf³…,bUP .)QX­vÖ¿|VV\zzdJ *ýƒva0Ô.\¸óï¿‹¿øbÊøñ}Ûwçz}MïÞ+>ùdB·¯•“sõ¥—vZ,6«ÕBA11œ¿ÿ^殆öåXý½  Ò×ׇ¬þ>`@¼¿ ¾@ µGŽ\Ÿ0¡_ǵtœjUT¨ ï[.S­èè;=¶ ÕmQWg•Éôd y—cêmA-yൠÀ!„jjêOŸ¾}ò¤è¯¿D·nI©TŸ¬¬¸Aƒ ˆëÛ7Š}z¹ÚÚúµk%'óÇkeÑk—‰—–‘Mv³"g7 ½ÊfÍÚj±X·nÝ«WD»ïÿþóo¼±§ àƒî}÷¼yó_ï½÷3BwmèØ±%©©‚Îmèp …ñìÙÛyy¢ãÇoJ$º  ÿ~ýb›_ýý?®½ð–Q£ÒV¯žÂáÀD.ÝÅb“Ht8_ÀÁVE…Z,Öâ1ÅŽ©î±Õ9ãý 3TèÆÌf Nµœêm•–*F3^§±y!WÝXÀ{Y­öK—Êq1׋Ë-[r2èД!CR J€Ð `‡]y÷ÝŸärýÌ™Ùüt3·ª«³^¹Rá”X…‡‡õî ‰è$99W_}õ»ŒŒ¨_`±:¤ëèüù; †Ú￟×;÷"‘lÉ’½çΕ!„Þ5ùùùΙ3ôwƺ¡e ³ÕßOœ(4jY¬‡JÊÊŠëß?®±êïï¼sàÛoO"D øâ‹É?žÑÉmÃ1Õ*/W㡈¥Z11ì”—Ö^G¯­­OO_>{vö‚CÇm¯b³Ù•J£X¬‘JõR)¨“Étb±N©4àŸ[|}}ÂÃÃ"#YB!] ¸3?àrÃÜ5Ib]†C‚¶€ x­¶:7÷Ö‘#×sso µlv(®s1th Ÿ¸§¨H¾té¾Ó§‹)D(==òðá7[¹¾Þzù2$VÀ#E¯fÍÊ^±b•ÚžE¯H6›½W¯w_}ÔܹC;bÿžæÈ‘ëo¼±G«­&+¸“X¬Ð+WÞoßâbÀ39V?{¶¤¾ÞŠGgg'ž*Ü«þ>pà‡„B …:4åË/§Â§€—pJµðPD|c€\¥ZøA+tó¦døðÏ}|(þ¯¼2böìl˜KX,6¹Ü ‘h«ªtR©N"ÑÝ-¼¥S(Œx??߈&®±É B!3"‚ÉêПð ‚èÛ÷ýçžøâ‹C r­ð……²£G¯9rãÂ…2‚ ÒÓ£FŽL1¢gZZÌe œ¨Õ¦÷Þ;xàÀ ùeÕÏÏ·¸øS??_üÔ)±*-UZ,6'´OŸH¬€ æ—_Þõ矷>þxÂsÏ ê¸]¸P6vìW'N,MJâuÜQ<ŠÁ`þ쳜íÛó(ŠcŒE¡Pöì™?xp²Û:_mmýùóe¸`Öµkb» «¿§¤ð‡ ûÔqe__èŠåå¦ZååêÂB).àí2ÕŠŽf5ÝMæ·ß®Ì»™óóó ð›7oØÜ¹Ã`àp©¾Þ*‘܉´Äb­D¢Ã9—X¬©©©Çë0Áwƒ-VDƒ ¹¸\ZÛ§Q©LééïR(”À@êœ9CçÎÖA=ÄA7èÎìv"?¿äС+GÞ¨¨P‡„ š2bDÏáÃ{†‡·[ÿmÐØlömÛN~öYŽÙ\ïT­!´}û‹µµõ••W¯Š sp°ZZDzzTFFTzzdBza7*.VÌœ¹Åd2oÚôB¿~qz¬Ï?ÏùñÇsùùË;ô(èêUñ¢E»oÞ”%±üü|ÇïûŸÿ<ëÞ†7’JuyyE'OŠòòDr¹ÁÏÏ×f³;M£PAP<ý³Ï&„0³ZíUUZ§TK$’™Í„P@5&†“’Âo,ÕZ»öØçŸ¶X¬ä}}}BBü_~yÄ‹/…Z ùðÄ É—”(L¦:¼Œ«k᳑¬(ÉlæÝï¥K?þ%~L¥ú1eJÿ×_T(d4½!$°@7DÄ… e¿ürù×_¯ÈåúädþàÁI#G¦ ”Т)„€·9¾tÉ’ eÈU¥*Õ'0ÐÏߟš™ }¬€úãk/¿ü]r2oóæ™pfŽûUJ õêÉ} dµÚ·o?¹rå!«Õn±ØBÁÁþ×®}èçî¦÷‰d¯½öýµkU AQ©>aakÖL}ôÑ^ß6Ð%ÔÕYKK•eeªÒRÕÝ+%ŽD9œÐØØðøxNl,çìÙÒ“'‹l6›Ó¨T&3dñâǦLÐA£È÷Ðëkd2.!_^®&C.²Ö›ŸŸ/‹‚ëÇß­%O‹‰aÇÆ†;Í0pèЕyó¾u¼Çö÷§Úlö§žê³hÑ£qqáýÚ@è>¬V{nîÍ_½|ìØM­¶:++nìØÞ=ö@DÓÝMžN©4~ðÁÁ.:ŽtB¥úŽ×ûË/Ÿ…{Aài‚X³æÿÖ¬ùcòäþ«V=Ó I½ÅbKJZúÙg“&MÊêècy¬²2Õ[oýxòd…‚ìvbÓ¦`t@ñÀïj4Õ­àãC±Û‰ÇÏX½zTÍT_o-+S9¦Zx:®¦±M||(\.mÑ¢G§NÝÃA»3͉®²Rã8Q"ÑÉdzüÓŽ%<œÅ ŒˆfE…fûö¼úú†‘«/AO=Õçµ×F%$pÝñj@—è$ÝÞ½ù{÷ž++SÅÆrž|²÷“OöéÙSè´ZIIÉÑ£GÝÒBà±]¼¨ûãE}½ý¾×C>?`þüøö:ôˆ#âãÛmoÀkÕÔÔ/ZôCNÎÕŽ.zåW>vlqjªó•¶¡î}í½vÍ“#«®¶¥¤„NêzB:à(>>~ĈmÙƒD"i¯Æt„²2Í3Ïl¹ïj …Ë ýøã'z÷Žì„VÄd¶ø×X®V›XBAQ8¯½6làÀØV7€æ³Û‰êj›Ñh“HtUUwêmáyãâ8W¯Šq¼Õ•êc³cƤ/^<:4ÔõÏÉÀ; …÷î6a8èÂêê¬99»wçŸ<)¢Ñ‚ÆÏœ8±_ïÞÑ­þüùyóºùtï E(*64(¨…â‡î ´S(>¹®™*•ÖÌ›·¡öùLݳgX **Ô3gnU©Œ{÷.0 óN§‚q@5)‰ßœ•»ýµ×Ç' ,ì¡[·z.Xð¹Ý^çîæxº‰'¶1À‰DíÕ˜ŽðÇ¥xîZ…‚|}) ÅnGv»ÿ'‚ är㫯îŸ8±ÇÈ‘±îšÒxˆððð–Xµµõ©‰||(¾¾>‹íömÕ‡þ>jTÜ£ÆÃÌE „‡‡÷ë—ÖpùóÏon,½Báa×9999ƒEL˜Âç‡v`+A×èÚ‚8y²h×®ÓüqÍn'F~à‡æ?ø`b3{GC¯CÐBa,/W•–ªÊËUeeª’ei©Ê`¨EQ(ÈßßB!êê¬ù^½ZÑ«WDÛßU@Ûå剿ÏßÃ>|x‘@ЩP¯]«êÑCТá´ÝþÚ{ñb9A¼‘™ëî†x´I“&µË~zöìÉåzè0“;KùúRh´ &3„Íèlv(‹Âb…°X¡lv(›Êb³X¡ä̶À›]¿~½[••©œ®«¾¾> Åjµùúú<ð@$Y²3>>Î4Ðiš8ŸËËUMlˆëaÙlv:=¨ºÚR^n;vPHH@´t …âÆŽK À]‰Á`þñÇü;O‹D²øøðE‹81‹Ï‡*Ú ­¸Ü0.7,+ë³¶ µeeª²2uy¹ª¬L]\,+/×T¶K€@}óͱU«~Ÿ0!óÓO'uþTS7nTõì o„èÛ7ÆÝMᣞ^³f ·­´T…¢R}­VBˆÉ ìÛ7fÀ€$<-2œÀ‰Å:ǧdäêïOí×/vР„ôô¨ôô(öçŸöìÙÒ+ÐX k¸uKº}ûÉýû/X,¶'ŸìýÙgû÷‡±W cÑhAøsÔÝ àjkëßxcÏ¡C—W®|¦ÓŠ^9)+S s¨àB'w‡^Ël¶Œ“ŽçDÎȈºråœ'÷LÀdª«©©£R}ìvÂn'Œà~ýbûõ‹ë×/¶wïèà`w7t `f6[öí;¿k×é‚‚Ê”þŠãÆëxÿ- ;‹µ³fm‹µ;wÎ:4Å-m°Û ¥ÒÀãÑÜrt¡§ŸÎ|úéLw·€æ’Éôii¬¬¸¾}c33cââÂÝÝ"Ð%A€<”Baܵëï]»NËå†ììä­[g™s¼Ù©SÅóæmçri¿ÿþzl,Ç]ÍÐëk¬V{x8”V@³$&rYìîV€.,àqJJ”ë×çþøã¹À@ê3ÏdÍœ98!ºC¼Ý7ßûôÓßG~àË/§º·*„RiDq8anlð6`ráBùºuÇþïÿ® Œ¥KŸ6m Œ³Ù²xñÞŸ~ºðöÛ/\øˆÛ§°T(Œ¡ðp°@çYÀý¬Vû?ž9rõرÿQ©LÛ¶Í>{öÝùó‡yxzU\\Œ¿F6|Ð„ŠŠŠ™3g6gͶÃÇBQÄÆÆÎ˜1C©T¶}ÿÕÕÕ‹/ÎÈÈ ËÊÊúä“O¬V«Ó:»w隸²oß¾¶üÛíåË—ÛöšþB¡·ãh¹Ü0qâº#G®ïØ1ç_ÿîöô !¤ÕVS(&3Ä-Gï*×Þºúu¯ºôu•Ó‰|úá‡R(”U«V‘Kšø@l—Oÿ6¾L§Í›sç€ÚvßÒöÿ/.÷ï Ï|_´ËIÞÜâv']å|†Û†f‚XÀ,Û6lȉä?ÜcÅŠ'Nvw£š‹Á`¼õÖ[-ÝêçŸ~ê©§ÈmKJJú÷ï¯R©: wŽ…ÿý÷ßqqq6›M$}õÕW}ûö½zõ*ƒáz¦¤æ´Êh4öïߟÇã}úé§ñññ×®]{÷Ýw9rôèQ___rµqãÆI¥R„Piiéƒ>ˆ#„‚hÅ_ï¾»e³Ù­Þ'èÂ…ò_ÜF§åä¼î9åNm6»ÅÇÇ=·S]åÚ;jÔ¨Ž¸úöÕUN'ü˜ ˆÝ»wGGGïÙ³géÒ¥xaÓˆ-úôw©u"—šy瀵ºåíØ`¯ÕµÞp‹ šÖUÎg¸mh.w¨«³|ûí©þý?ˆŽ~ãµ×¾¿ySÒ ݳgOGœóEEEx·äƒ&<þøã555 ·íä±BEEEär»Ý>dÈåË—7¶asZõæ›ofgg[­Vr‰ÉdŠÝ´iS«÷Ù útú»µûÎ÷ìÙÓA;ÝÃwߎ‰ysæÌ-F£ÙÝmù‡}ûÎEG¿Ñüõ½öÚÛ Çêzé›8qâĉÛ¸“ÜÜ\¹\Þ.í!u‰ÓéÊ•+ åÈ‘#¡ÂÂB§56£¥ŸþÁ±UÍ¿spoË]þíÐ÷ŵk×®]»ÖÆxçûnq[ÎgÏ<Ÿ;áX¡CO'¹\ž››ë¸†‚Îf0˜¿øâpfæûï¿ðÉ'û\¸ðÞ—_NíÑCàîvÝñË/¿DDDhµZ„Ð?üœœ\]]m·Û×®]›šš6hРÜÜ\ÜU²‰þœ‡êÓ§Opp°@ »ú«Tª   rÛ"„ø|>^Áb±,^¼˜Çãq¹ÜÅ‹[,„…BÙºukjjjxxøªU«vîÜG§Óß}÷]¼Õ¯¿þšžž¿sçN§c5l…B™?þo¿ýÖXS›Óª]»v-_¾Üñ—¨Å‹ïÚµ ¿ºcÇŽEGGŸûì³&ö餫_úºëé´{÷î¡C‡Ž1¢G8n§Oÿ†í´Z­+V¬ˆŽŽŸ1c†N§C-0 þþþ³f͋ŻvíB) ‚ ¶nݺsçN—›`Ÿ~úé„ *** úöí»téR‚ BS§N5 ›7oFMš4É`0lܸ_òL&S@@À† ¤Ré–-[¨TªÉdr<á*?wîƒÁh¬©÷mþ´P*•NºS§Nñx<¼ùc=vüøqܘ†¯ÔñiÓ/°±?‹ËÝž8q‚Íf[,‚ víÚ•––f·Ûñ:£F‰DgΜILL|ï½÷šÞ-Ù°'žxÂ`0ìß¿7Æå®ÛÓôÀË ãÆý79yé´õÌrìØ àµêêºf®ïµ×^¬ƒ®~v»}Ò¤IóçÏÇO§M›6|øðÛ·oôêÕ _…BÏ<óŒV«Ý´iBH­V7½O²Uwéë´XÝït²Ûíqqq7n$bÙ²eiiiN/ù¾=°‡O—íüüóÏÓÒÒ ®^½:`À€7ß|“hÉÛôE‹îZÚrÇÍq© âîpK»ÝNÄÁƒ…B!¾=h¸ùš5kÏ ¡PØð’Õ¡ï‹Në±ÒýÞp‹ë·¸p>ÃmC;žN {`A€:ƒÉdþú룽z½“°ä½÷~–Ë niF3¿DiµÚÈÈÈôôtòM•––¶}ûvr…o¿ý¶é«a]]ÝÍ›7M&“Íf;qâùá:aÂFãr¬GR©?>räHïÞ½ ‚@]¼x‘ ˆúúz§ÇEEEÆÏÏoõêÕZ­Ön·F›Íæx,¢ÉOw—M½o«ût?}ú4‡ÃÁ›8þ§¦¯ÅM¼ÀÆþ,.wkµZù|þ±cÇ‚3f̪U«ÈuÈöìÙ³'11±éÝ’ ûóÏ? ‚°Ùlާ]5¶ÿ¦A€\ºx±¼OŸÙÙŸ·sÏùvtöìmà5™L×Ìõ½öÚ‹uÐÕoÆ 4›Íx___ò ÃðU!„oûš¹O²Uwéë´«ûNgΜ¡R©ø+Ê… BW¯^u|É- °¶3%%åÀxÉ7ðãæŸ±MßQ´èΡ¥-wÜœAS¦Lyûí·Û<99¹á¹áÔÎ}_tÚþî÷¾€[\¼Å…ónÚñtj`Awбêë­;vüýßÿ©­µÌœ9xÞ¼alv¨»u cîܹï¿ÿ>.3*))éÝ»7¹BzzzÓ{ð÷÷‰DsæÌ1™L}úôÁ M&“Åba2™MlXVV&ÜMI§Óñƒ°°0„ŸŸŸÓc„“ÉÌÍÍýÏþ³bÅŠ¾}û¾ýöÛ=öØ}UTT”ÐXSïÛ*ƒÁçó/_¾pà@zzúÑ£Gñ/XRRÙ0±XÜÌÝâŸa}|þ1Úºá®[@‹ìÙ“¿té&¬_?ƒÁvwsÅåÒBR©žÇkôÍØ Þpím¨uW¿‚‚‚•+Wž:u* !$—Ëm6¾ª#„É«¾ˆµôŠÚ .}ÝïtÚ½{·Õjåp8äž÷ìÙÓ«W¯ûþ)‘Ÿþ.ÛYWWGþMMMMMMm¸‡&^EÓwm¼shºå.77nܾ}ûzöìù믿^ºt©±Íëëë›snÀûyÞû¢!¸Åmæná|F]á|nn è(õõÖo¾9–™ùþçŸçÌ›7ìÒ¥÷ÿýï'ýοþ5ÜÓŠ7Æn·Ïš5ëå—_þᇎ=ú믿"„fÍšµxñâƒÊd²Ã‡“sW7¦®®®¾¾Þßß¿¶¶vÅŠ!£ÑxðàÁqãÆ¹\—{@=ýôÓo¿ývyyyAAÁèÑ£¿ùæ›û6˜B¡Œ5jÿþýƒ¡¾¾ÞÏÏ/88¸á±”J¥L&«ªª:qâÄøñãKKKqeS—MmN«–/_®P(†~øðᢢ¢Ÿ~úiÀ€ ,¸o›[ªE»ëµ·\6ì_ÿú׋/¾8tèPr5??¿É“'¿òÊ+¥¥¥×®]{çw¦M›Ö¢}v³K_÷;òòò Å´iÓBïzöÙg‹ŠŠp½§&4öéï²Ó§O_¶lþóÒK/•——߷厚¸£ÀZtçТ–7Ö¤Q£FiµÚ+VÌš5‹\Øpóùóç;žË—/ÇkÂû¢!z_`p‹ë·¸Ýõ|n#¯¸m¸ï°CšÏn·ÿòË¥¡CWÅļùÎ;$­»[ôÍ©Ãòõ×_gddÔ××ñÓO? FS__ÿÁÄÅÅ…††4èûï¿GM¨&bÍš5,+**jݺuS§Ne2™cÆŒ!B®i±XŠ— †™3g2™L6›=wîÜêêjâŸÃû]>Þ³gOBB‚¿¿=Íf ‚×__…Z´ÏιôuN ¬îw:Í›7oÔ¨QޝÑn·'$$¼õÖ[ ÛCjúÓ¿a;Ífó›o¾) étúÔ©SµZ-ÑÂ3¶á…S«šyçÐÒ–;nî´«¹s熆†’õ¶]nnµZ?ÿüóÄÄÄAƒáþ÷}½íø¾èœšAÝï}AÀ-®GÞâÂùÜØc¸mhÅéÔ°…h×i°7+(¨üè£_O*~≌7ß”Äsw‹œíÝ»wòäÉm?ç‹‹‹“’’à½ã±–-[VVVöÝwßá§íøÿËå®Z· …²gÏžI“&µ½U ëÚ·ïüâÅ{²²â7nœÁd†¸»9-ðÑG¿ææÞ|ÑÛ»wo[ÚóçŸöìÙ“Ëå¶e'p:6jÇ÷è”––Ö–öÀûÂt‰[\8ŸA;žN …âÆÆ #—@wЪª´«VýþÓO JÈÉy===ÊÝ-^Êl6K$’­[·þðÃîn M±Ùì«Vý¾nÝñ… yë­1Tª§tÒ§OôÆ µ4Z»Ûtsp‹ h¥Òøùç9{ö䧤ðwïž?xp²»[¼ÚÙ³gÇ¿`ÁÇœžF£Í›7¯]öïrWí¸à%ôúš… wž>}û믧=ýt¦»›ÓÙÙÉ¡S§Š{ìw·t8¸ôм/@g‚[\Ð…tèéCA+™Í–o¾9¶aßlvè²eO<ñD†ËÙsß5áÚ Hž3„Ïá9C®h;8ŸA;j8„°‹Yâ·ß®<òÈgë×çΛ7ìØ±ÅcÇööüô Üî÷ß ÆŽýJ(d>¼¨K§W¡1cÒûíŠÍfwwC€W€ ´Ì’gžùfÞ¼oL8uêßo¾9:$$ÀÝOg·|hΜíS¦ ؽ{›êîµÕ˜1é*•éÿÙ;︦®÷ß$„MF¢¤UÜ.‚ÛjuµµØ¯Zû«m­»µ¶¶uÔÚï·ËZ[WÅÑá¬*Ë⃆€ŒL 2ïï£iB@„Ìó~ñÇÍåŽçžûœsÏýÜç<§¨è‘­ @ ¸0¤³ÔÕ5mÞ|êÌ™»ÉÉŒÜÜuQQ0¤@:…TÚúÿw(/ïáöí³.nksºƒK?räÚ°a‘¶¶@ âüÀ,HǨTÚ;ϵíΚ9² ªWÒIÊÊø“&}]\üøÄ‰·F½¼ùfòŸÞ‰ä¶6@ âü@ ÒÇùÅ÷ßÿýÖ[crsײXÏ•@\Š îMžü_Éûüùîmksº™iÓx{{dd\µµ!GB¥rƒý!t8„Ò.7~ôÑïl6gÔ¨¾™™o9MÔÕž={lmÂ3 ×£š  w[bôzT.×°™‚8$z=ºuëÙ]».¾òÊmÛf¹»;¡'{{»/Y2êÇ/.Z4’Hô¶¼±MÚÞÖVFƒúù9aáwB¡*(ÈÝj3±TVVòx‰¡¡+ñx7Á+8˜Ø§96–>xpïØX:àÕÉã477kµÚ5±­­­žžžÏX/ öôgH7"—›†ùÃ.Ä îÇs¾ù†ꟑ±t̘~¶¶¨;Yºt©­Mè,ÖÓÃ#Üã·‡G8ƒçów£¨U[pOÏHޤPÜ´æIMððè0M¥ªR(ŠUª*_ì!ƒLÖúÿ—ž›ûÀ™’^™eñ⤟~Êýå—ü>˜`yKk¶½8ÑÓ³‡G¥’#‘ümµS[ÀÏ/±µõF#²µ!ÿ€Ã(”4½^ÑÚZ¥RU©Õ5z½ª§Oš˜ØÀ€”ÊJA}½„Ëåß»W{òämð/ww7ÉÛ jÅÅ…†…„„ø·Õëëë{ÚNÄštË ?¬;ú3¤çÀÀ(nˆ ÙÙ¥7þÞØ¨Ø¸qÚüùðX+}•…hµú«WËóó¹l6‡ËåùúzŒ“’;zt?2ÙÏš–H¥­ÉÉ[&NŒßºu–5Ïk‚N§¿r¥<=ýê¹sÅ>sæ Y¸pxxx  M‚@:Cuµ8-m¯H$ß³gÑС}lmNó¿ÿe}÷Ýßëét’ ÍÐht¹¹ØlN~>·¦FL¥§Ly!5•9xpoOO¼ 3@§¿¿{÷ëÓ¦½hkCþEuµ¸ €[PÀ½xñ¾B¡b0h,39™1lX$³Ž ôÒ¥²[·ª+*UUb‘HªTªú§//|` wHˆT5&&¸W¯ÀÐPÿÿÎGlA q €ù0f0;»tæÌ„>šF¡XU4qY$eV';»ôÒ¥²¦&Et4555.9™1dHÛÄHnÚôçÜ,(XßᘠëPU%ÊÈ(›3µ÷4(Š–”Ô²Ù6»”éÃá°£Fõe±˜II ›G•–Ö¿sÇŽ9sçµ­%&h4ºóçKÒÓ¯^ºTF&ûΞ=äÕW‡‡…Á€,ˆñÃoÛvîå—¾ürŽ­h›Àfs^ý—ãÇß92Ê:g,/\¸P’•Źu«‹ÅŒÝÅbŽÕ·W¯ëÐì\À2Æ–•“s_.W…‡¦¤0SS™Ö Ëj‹D¢¬®?|ÈãrùüŠ aU•H£Ñ!‚Ç»¹¹aµZø‰ ‘èmгh4·""‚`Ð@ Ž ° HIIíêÕÇî߯_¾|ì»ï²ìd¨…S"“µ‚.yy…BYp0iܸ‹™˜íåeߊQ>ý;½=uj…Õrú>+ ¾–™y­©éI@ÖĉñnnpNUˆ-iiQ¯\™yæÌÝM›^zóÍd[›cæÎÝÝÐÐÌf¯ê¹tõ`œuV';›S]-&¼RS™S§¾8rd´C„Û8€e@¥Ò^¿^iËòöv92šÅbŽcÛ£¨UST-^uµèÑ#Qmm‚ 8ÖÛÇ»¡(ªTªUª'Ñ[Š~âêG#B â(@Ë¥‘ÉZ?ûìTFFar2cÛ¶Ù6ýqVÊÊøYY÷²²8·oW#2|xTr2#%…Ù·/ÍÖ¦™rìXѪU™.¬Š‰ ¶µ-`E¡fÍôúë#CCýmmÄyü¸1-m_mmÓ?¾:z´SÍzÑy?n7îË… ‡üñKÝ{d¹\•“sŸÍæ\¼x¿±QE?¾?‹›Ã9’r툖155b dåæ>ÉZ aYC‡ö±«I6¥Ò–ª*Quµø©°Å//ç+•jA¼½ÝI$OO7AÔjTÚ"•¶€½||¶¶Î<‰2)ië´i>ÿüe[Ûò TV ¹väHas³dA¬Ï¥KeË–¤Pûö¥EDÙÚ[òë¯W6l8ñÇï ÜûùÖÐÐ|öl1›Í¹~½R§ÓÅb1Y,¦ã~kqtË€V«¿u«ŠÍ.-(à–”Ôzzâ Š`±˜&ô·Û¯|¾„ËåWW‹««Å\.Ëå=~ÜiúÒhD__wwŠ"­­šÆFE]]ÚB„Dò¦ÓI!!þ!!¤à`Pµ‚ƒIÁÁD»Rî qz €åŠÔ×7¯_";»tÁ‚a~8ÅNu;†7®7ªZ[5ýû‡ÝŠÉ ±ÿH?üýܹ»ùùëýüºaî[+£Vk/\¸²¨TÂÌ™ƒÞx#ÑF¸@œ›~ø{ûösãÇ÷ÿßÿæùøxØÚ£×£sæìjjRþõ×û]{±GQ´¨è›]j2ë¸q±v*ýw§°Œdyy²³KóòH¥­ááII ÌÎÅFWY)äry55bZëÁƒ™¬Aww·ˆˆ èhª¿¿àáãã¢'áó¥|¾´ªJ(•¶‚ƒxx¸Ñhݰ@*•@¥ÃÃÁ¡OН¯«7t;PÀr-P=v¬èÓOOz{»oÝ: &kï4]aaE~>¼qùùyŽÝ/%%vôè~d²ÃÌäxï^Ýĉ_ïÜ9wΜÁ¶¶å¹(/=zýðáB©´eĈ¨… ‡Ošoÿê!ÄáhmÕ¬ZuôÏ?o­_?yùò±v›3ÎÊTU‰RS¿š3gÈ3rBVsrÔÕ5ÑhÄÉ“_HMeÚp2ÖžÀ),:žÃ©““‡egÏ™õM0ÎF VV ´Z=ò4+<ƒAe0h$’—'‹$µµM Í ÍµµÍB¡Du¹¹a)“þBBüƒƒI4‘BñƒÍ@ ] X.ÄãÇ«V½|¹lÑ¢Äuë&ÃoƒÏ‰@ ËʺWPÀ½t©¬©IÁ`ÐX,&‹;p`„Ã_ÓëÑ)Sþçíí~üørçèX«TÚ¬¬{ééW ¸A  {å•¡AA¾¶¶ â$ÔÕ5¥¥í«®ÿðëãÆÅØÚûâìÙ»ÿùÏ~xuÆŒ–·­(›Í¹t©Ì²:eÊ‹v˜°[pnË¡P–› ²J¥-†°¬ää¾§H¶É/[‚àñ8:È`Ðúö¥…‡Òé$|}}Pµêë%uuMõõM ±XˆÇãÈd?:ÝŸF#ÐhD:ÝŸJ%Ðé$*•Lr¸ò@ Äš@Ë%Ðéô»wç|õÕyƒößÿ΋¥ÛÚ"GEÑ’’Zð…™Ã©Ãá°£Fõe±˜II ÇMË‚ È‘#…ëÖÈÊZå|ïeeücÇŠ22®*ª ú/\8<11Ú9D:ˆ­¸r¥|éÒƒ>,îÝ›lksì‘÷ß?rá½ììÕf‡ñr¹¼Ó§ï˜´¢£G÷³ÛôIÝ…ëXL²<<ÜîœÌHM‹Ž¦ÚÚº®µž¦ÓâWW‹ËÊø--jäi –!V+<<0:šêååÞÚª©¯oæñ$õõÍ|¾¤¡AÒÐÐÌçKëë›…B™N§Gð¡R‰!!$*•H£ét"…~ì6&@ V XÎOIIíûï)/¬^=aéÒ1dÈd­¹¹ØlNnî‘HN§“&NŒOMeá“56*·Ìž=øÓO§ÛÚ–žÂ8 «woòüùCçβ ÏLFÆÕ ~7.öÛoÀ8ÖöP*ÕÓ¦}ãîîöÇ0Ô:+‹“Í©®“É~ãÇÇy-œ í$.(`#ɯ^-b–D¢aYIIŒ±ccœ#œ…<ñT*ˆY V+,,°W¯,öŸO)­­>_ZS#æñ$”Ç“ Òêj1Ÿ/ eà ÈSu ¤ÙY·ÀBD™@p¼ä•<+PÀrfÔjíŽç÷ìÉ‹ Ù¹sn¿~Á¶¶ÈÁàryl6'+‹sûv5ƒ6,29™‘’Ât²0¥µkgeq Ö»ÂÛ8—Ë;tèêÑ£×ÔjÝøñq0 Òy4݇þvøp!LzÕø|é„ ;ããÃ&Oîÿ÷ß÷ ¸ÍÍÊèhjjj‹›á‚™é\\À2² ¸YYœ›7«ÜÝŸ„e%%1âã{ÙÚºîD­Ö>z$2Îÿ~½\®Bžæ‰b׊ 1û–J[ áZuuM|¾„q R¡P¶Áb1d²_p0‰B!Éd?:äG§“Èd¿  _Ø^A Ä9€–ÓRS#^¶ìW§îÝwY3‚Çãlm‘c`È%\PÀ­®S(~©©qIIŒÄÄh§ŒÞ¿u«zÚ´o¾ývÁË/'ØÚë!—«þüóÖ¡CWJJj##)sç™?˜SÞ_Hw!ÈþóŸý4|ÿýB8ýE‡äUTÀB"Ñ›Á ‚tZ µVTłԫVkù|iCC3'áñ¤õõM¬¡¡Y(”54HÀFAðx\PN ò£ÓýÉd_c© #C Ä€–s’‘qõÓOOöéCùßÿæÁÀ«ÎP_ß|î\1›Í¹q£ÊK˜Åb2™!N& Óé'OþŸŸŸÇñãoÛÚÛP\ü8=ýêÜÒhžd%%1lmÄî¸u«úÍ7÷{x¸íÛ·8&¶¨æAQ´¨è›]j˜uüø8Eþøãæ?¼úÒKlm í–L²ðxÜ!}œ2,«-móÄs¹<>_Š˜ËÏ`ШTB'ÛØ(çó¥Oÿ$ÆËÌð @$z·––CBüaê ØPÀr6êêšÞ?óúõÊ>šš––dœabÈÉ’ŸÏ5¼nÝ/%%v̘™®î×_¯lÜø;›½ŠÁpªA‘ÏŠLÖzòäíƒ/s8uÑÑÔ9s/X0œDò¶µ]» 3óÚºu'† ‹Ü½û5èmQ(T/Þg³999Äbyp0iÒ¤øÔTæ!}@ö«?þãàÁ˾9zt?[kc €ÕI—/—pÙlŸ/ JÖèÑýüü\%ÓSòÄ?ëñy¼©Z<ž„Ï—òxÍL­Ö‚Í<<Ühí ƒW IDAT4"•J¤Pü(™ìG£ƒ‚üh4BP_P¯äƒ@ ˆ,§"=ýêgŸ üî»…N–§©·pANƒÆb1Y¬Ø#\ê3£X,OLÜ:oÞ?~ÉÖ¶Ø ë÷ßoêtúÔTåꀤWééWß~{ܺu“à{š1|¾äôé»l6§¨è‘J¥4("5•i6E V«_¼xßµk•'O®pñ°ž½½w¯¶ €›ŸÏ½zµAÂSS™IIŒþýC]0¯“!O<ˆÕª©×Ô4‚ž|Û<ñaa].¢ÆF…@ mhÒ††f¡PRn …2>_¢T>œˆÅb‚‚|ƒ‚ü‚ƒ‰AA~T*Lö£PT*!(ÈF#z{»Ê ±PÀrø|ÉÍË{øÞ{¬+X0ã• †±-Ü{÷jÝÜp`âö¤$†ËædY¹237÷A~¾Kän&¤ÒÖS§nïßéþýúøø^ Ÿ1c sL’é_*HÅb9'‰ä†.oow±E¥@ж€àè? @ 䙀–3ð×_%kÖ#½¾ývÁÀá¶6ÇŽJ[óò°ÙœÜÜ"‘œN'MœŸšÊ4(Âu&n7ËÍ›UÓ¦}»kLLc õÛo7q8Ìôé_{md\\ˆ­‚Xƒ»w§¥íssÃîÛ—ÆdºúM×ht¹¹ØlN^ÞÃÇÁÔ,311ºó iK‹zÁ‚=ÕÕâ?þø¿°0Õ° €Õ]<|ÈËÎæäçs +ôz”É i+]3,«-ݘ'¾k47+©X¬àñ$"‘L …R‘HÞÐ il”‹Dr` ƒ ô ô ô¥P¾>T*Xð%“ýÈd?ï­A Ä(`96ÍÍʵkŸ={÷­·Æ~ðÁxOO¼­-² Š‹ƒD°·oWc0˜aÃ"áXÆhµúñã¿ ô=vl¹­mqžd߲ܿ^~9‹pbŽ/Z³æØàÁ½wï~= Àu禔H”YYœ3gî^¾\¦Tª ÚÔ©/<ÏÔ‰rÖ¬]*•&3ó-:ÔíÛ?PÀêv𛕠!@vv)'!“ý@xõ¨Q} /[[gG€<ñ\î“$ñÕÕâ‡ò4O<ƒA#ÃÃûö ¦Püzν‰äb±ŒÏ—ŠDr±XÎçKD"¹H$çó¥Æ ‚ ÞÞîd²_P_` oPй|‚‚üÀü‰AA¾pEq) €åÀüý÷ýU«2q8ì×_ÏMNîkkslŒJ¥ÍÏÈfs ¸ÕÕb*•F&%1`Þeöí+ؼùÔÅ‹kúô!ÛÚGd8qǽôÒ€E‹ccé¶6 Òhµú N€¤Wk×Nr©¤xÊË.”deqnݪÆb»ù@c£búôoU*í±cË]ð‹°z–õ¬´ÍÏåòZ[5ˆ¹<ñ Íj_IQ(\r½%É©H$‹å|¾T(”76Ê5ØØÍ èàK&û=+ À‡J%ø"¹`q €å(•êO>ù3#£pÁ‚a}4Í•³?ÔÕ5ýõW‰I"á¤$F\\(œÑ,|¾49yëk¯üðÃ)¶¶Å!‘J[Nº³woþÇ<5sfãàH$Ê·Þ:TXXñÕW¯¼ür‚­Í±*Z­þêÕò¬,Nv6§ºZL x‚A‚=ñ@"QΟÿSmmSf沘×’€¡€e”JõåËel6çâÅûõõÍAA¾Ã‡G¥¤Ä¦¦2‰DøAËZ­¾®®©¦FÜ6O¼›6$Ä?,,°»òÄ?' ‘H‚¶ R—X,olT€Ÿ ÀÃà (YAA¾¾>d2H]AA¾ ˜ b€@ ‡ XŽÇõë•ï¾{X&kݾ}öäÉ/ØÚ Ñè +ŒßµFê—’Ûa"a‚ ï¾{øêÕò¼¼uPsyN@@ÖñãEnÓ¦ x㤘˜`[é"4¤¥íÓhtûö¥õïjks¬„LÖ ’[ýý÷ý¦&È8uê ==%kS“bîÜÝ|¾äðáe.Æ,ëS]-f³9l6Ç–•”Ä`±b ê ¿ru’¶yâ+* … AÁ3"‚ü4µo_Zd$Å~ÂZ[5|¾”Ï—H$- -'•H”I Xߨ¨0Dr!B$zS©"Ñ‹Dò¦R T*¬ $’…B€Ñ|b[ €åHèõèîÝ9Û·Ÿ><ê¿ÿìZ9Dø|)!XPÀmnVÆÇ÷ÝО~×r&®\)Ÿ={×îݯM ß º¡PvìØõŒŒÂª*Èš5küëXœ9s÷ý÷ÄLJîÙ³ÈÒ©444Ÿ=[Ìfs®_¯T«u p5%…Ù·/Íj6H¥-‹ï+.®ýå—7’’V;¯m– Q*Õ7oVeeqΟ/©«k ô1"*%%–ÅbÂ<]À8O“ÈåîîæïïM$z‰^4‘B!H^T*È^D¢wp0&_ƒ@  Xƒ@ [±"ãêÕò ¦,Y2ÊE>¡(ZTôˆÍ.-(àÞ»W‹ÇãÀ´ÙÉÉ —ǪËh4ºÔÔ¯BBüÓÓ—ØÚgC¯G/_.KO¿zþ|‰——û´i/.^œlM9Ò5ôztëÖ³»v]œ7oèÖ­³ðxœ­-ê) m)›ÍáryÞÞîãÆÅÚ6pU­Ö¾÷Þ‘³gïîÜ9wÖ¬A6±ÁÊ@ËN0„e]»V©ÓéaXV· •¶TT+*‚ÊJay¹ ²R Ri!¼"#ÉQQÔÈHJd$92’Ò§ÙÝÝÍÖ&w •J òÊ …²ÆFºhX‹åB¡ Ä£!OçU|:JÑ/0Фâ"“Ÿ$ç ð ðn@ ] XŽÁÉ“·×®=°{÷kÑÑT[›ÓãH¥­.”dg—^¹R.ËCBü'L蟚Ê<¸7Œmé2{öämÙr&7wmDD­mqZÙñã׺ZS#Y³göðpŒnº«!•¶,_~¨ €ûÅ3.nkszµZ›—÷ðôé;¹¹D"9˜Ý$·²‡¶EÑÏ??½{wîÊ•©+WŽwú3PÀ²7ZZÔ7nTeeq.\(©­m ð92:)‰Áb1©T‚­­sxôz´®®©²RXY)(/”— *+…uuM‚àpØÐPÿÈHJT%2’Ò§%*Šâ¸enQä’‹Å ‘+ ÀüÌ\Oúù=ѹœøƒ <PÀ²w”JõºuÇûífZZÒGMuî7áââÇÜšýÊÅáñ$ÉÉ[ÓÒ’Ö­›lk[œã€,É{Μ!  ƒº¡]ÁåòÞxcŸBÑúóÏo ÜÛÖæt3,+ë›Í¹t©¬¥Eß LÇfŸ³[ìÝ›ÿé§'Ç‹ýî»…¾¾ö’=§'€–=S]-.(à²Ùœ¼¼‡Z­...4)‰‘œÌ>< ¦)èF4]}}óÓtZ<0‘Ï—"‚Çãètuæ@Œ‰¡;SnÓ.W4ÎÉe_zâDѯ¿^©«k92záÂá&ô‡ŸUmÎùó%+VdDGS÷îM£Ñˆ¶6§Û(.~ÌfsØìÒ{÷jq8ìèÑýeÀõþóŸ^^îûö¥õëç´“!@Ë!aYùùÜ JÊËþþ>‰‰ ,+–JužæÂ®H”ÕÕâ§é´øÕÕâ‡ÀðC"Ñ;<üI†ø°°@ƒEqbÕÆ‚È~Ö×7'ž÷ðp{ªgy‰ÿ$ä2ü¤ÓI°×@œ (`Ù)(ŠîÝ[ðŧ ÿþû…Η¯½¶¶éüù6›STôH¥Ò‚,ÂII û pt.]*›3g×Þ½i':§ jç²þú«8 Àgöì!¯¾:Üþ5§ÄôjΜÁÛ·Ïv”$,h;+kjjЭˆDGúÀçK/Þÿð!ï›oæOšoksz(`9†°¬üü‡*•–Á Ê5lX$z­V_W×d¨US#®®#æµúõ &“ýlm²•P«µ`”¢@ I¸B¡ ,ˆÅr‘H&•¶¶Çãq ñÖÓñ‰¾ÆC})?˜x8PÀ²Gšš+Wf^¼xãÆiiiIN#è´÷¢5bD”+Ìüe+4‹õUXXÀ¯¿þÇÖ¶¸:|¾äĉ^®¯oY'ÆÃÁ)VC*m}çôÜÜNôÊ(ÌÊÚ§yâÄx+6!!ÂqcÔjíºu'޽¾|ùØõë';ͳϰ—ÖVMQÑ£ü|.˜Dò¡â))±ÎÅiç´ Ôâry­­Ä\ Vd$Åe¯äÞ‰d"‘^@ä:—H$—H”†íÝÝÝ€’E&ûúR(„  ß  ?2Ù,ú8}ŽBâ(@Ëî¸zµâÿþ/ÝÝ÷ïnksº>_¦¾º|¹L©TÇÇ÷¡øý¢å@ìÚuqÇŽ¿rr`îv{Áuî\qPï¬Yƒ_}dh¨¿­írrÊËo¼±W"QîÙ³hذH[›ÓE*+…ýU ¢(š‘šÊLIa:Í”—(ŠîÚuqÛ¶s&ôß±cŽ“ $‡–s² ¸99÷år ˲!†@­êê'±Z&Z@ÌêÛ—Ø·o0…â*Zb¹x<‰X,‹|¾D,–‹Dr>_ rÒëtz°1‡Ñ[T*!(È× rúÒhÄÀ@ŸÀ@?—• !ˆ•–¡Ñè6o>µo_ÁK/ ؾ}¶ŸŸ§­-ê:z=zãÆ#6»´ €{ï^­——ûر1 *9eMjk›FÚ¶lÙèÕ«'ÚÚˆ)<žä·ßnì߉ǓÀ€¬%/ïá[oý¸woî`#² Í)ýðññ;6&%%vìØg]-,¬xç ½ýæ›ù‰‰Ñ¶6§Û€–“¡Ri¯_¯ÌÏçp‹‹{{»Íb1ÇŽq¸vÆ™J[ªªDÆZeeü–5Ò&P ¨ZÎ=?ÒóÐÚª‘H”|¾”Ï—'äk$¥@ 3¼Hzx¸‘HÞ†$\†CÊy2™à|qµÄú@Ë^ eo¿}èúõG7NMKKrÐH]©´åÂ…{ÙÙ¥W®”‹ÅòÐPÿñãû§¦2î s‡Û„%K””Ôæä¬…åo·ètú+WÊA@™ì7sæ E‹F†„À€¬îÁÑ3cÆÀ;^q 0Á›ÍÉÉy Ë©Tâ”)/¸Ns*—«6o>™‘Q¸`Á°O?îåånk‹º(`9155b dåæ>ÉZÃÃSR˜©©L–e'ðù’§éáŸjÕÔ4¢(Ú6P‹Á Q©[Ûë¨ÕÚ¦&Ess‹@ åñ$†é Æa\†y 3*Òh~¬a\¤3@Ë.(,¬xë­_½¼Ü÷ìYbksž™ââÇ\0ª‹Å Éb1Y,fx8 ¶²%/Þ_¸pÏ‹SSãlm ¤cªªD…G^kjR޵páðI“âá0ÛçA©T¯\™yöìÝuë&-_>Ö!> ðx’3gî‚ .Z[5ññ½X¬X‹éš\œ;W¼jÕQ …ðà ™LÇ{8š,W@«ÕߺU"ÐAXVBB‹Åœ8±?ü2aWt¨bµ@ªx¨Õ5”Jµ@ ‰db±B …OD"™X,¤Æùæ½¼ÜÉä'y¸Èd? Ű@ ò¥Ñˆ>>6¼b'@ËÆ¦Äš6íů¾zÅšfPPÀÍË{øøq#•JoY#GF{{;çr‡C$’ý3žH¥Ò޳=:šzðà›6´ ò¬h4ºóçKÒÓ¯^ºTF£çÏúúë‰ÆwÒIjjÄiiûêêšwízu̘~¶6Ç(Š–”Բٜӧïr¹<<7zt?‹9jTß^½lm©®ÿßÿ¥—–Öúéô †9„ ÙPÀr5?nÌË{XPÀÍË{ •þ–5th'˜Õ)i/PËÍ âo¨F ÚÚ^‡G­ÖŠDr m56*øü´-‘Hrr6öòr§R @ÒªVp01(ÈBñƒ\ˆë,["Ê–/ÿõúõG4%VE…àüù’ü|nQÑ#µZ R'%1\3:À®4èÓñãû¯];L‡üÍ7ìo¿ÍÎË[³ƒ;( ¾–™yM*m™0¡ÿ…ãúíÝšp—-û•BñÛ¿±ÝN_ Ñèrs°ÙœÜܵµM‚Wj*sêÔág´Zý7ß°¿ý–=thä—_ζÛÚ–C‡®H¥-†Ÿ_|qfÆŒ±±tÚ9s†É0«´óc–URRëé‰4(‚ÅbN˜Ð>£í©´µªJX]-®©ª¿¼œ¯TšÔb0h®0ÄÛšhµz±X&È€¶ÅãI@šy yñùR4‡ ƒ ò ò¥R‰ ’ ¨]T*¬$8¹01¬§¦FÜ«W@Û×Λ7«–,9ˆÇãöìy=>¾—Mlë$®°°"+‹“Í©®ƒ·,‹9bD”³¦v8x<ÉÀŸ`±ÁsÓ¦éÆõ3æË·ß÷Áãmmä¹0ÈŠˆš?èܹCa½Ô×7×Ö6ÒÇdý?ü½mÛ¹ñãã¾ùf¾†µ …² î&fŠ¢ŒßNÌÚ!UU¢5kŽ]»V¹dÉèU«&8ÄpžU«Ž9RˆÇ›1U§Óùùyݽ»&Hr5„BYnîƒììÒ¼¼‡RiKxx`RD\°,G¡Ã@- fRÅÛÚ^gF¡PT-¡ð‰ª%ÉžLªhHÂåé‰7èYÁÁD0…"…B&’É2Ù~#„@(`õ,nìØ/çÎòöÛãŒ×ÿðÃßÛ·ŸKNîûÝw üý}ležex¾WR¾eÙ'çÎÿç?PÅ` ãïïíæ†»råCçÈ| A¤²Rxäȵ#G årÕøñq0 AE‹~¹~ýQvöjÄ_­­š>È8˜tãÆÇ°e†˜`–åáá6xpïäd‹Åd0h¶¶ò¼2j¦>äry­­AˆDoƒ 2Ä34ƒÖ«W”El‹X,d ÍB¡¬¾¾Y(”Ö×K)ˆç2 N$hPo°^«Õþy}}‹ýå—7Ƴ¡‘%%µãÇï4Y‰Çã–-³~ýd›˜qÄbù•+å Ÿ&‘(AXVRc̘³‡íqéwذ(8A›}¢ÕêëêšžfˆçUW‹>ld‚àñ¸Þ½É ‘ж¢¢¨pŠ;A§Ó‹D2O ô,@úTáj e†É1 ™ìK£‘h4bH‰B!Ðé¤à`"•J ñ‡wéPÀê)¼üᇿéõÿ¯›68˜”—·®'bšªªDK—xð€wÿþË­¡\®Êɹ_PÀó^ÑhÄ””X‹ ç½r\**II[Íþ ƒAfδcÇ+0îù)+ã;V”‘qµ¥Ešj%•¶ÄǬVk1Ì„ q»v½æÐþpëVõԩߘ<¼0dß¾7Çgv×YÄbù;ï¤çæ>üî»3gjo3E‹ŠþvÇãFîÇb1Gî'³uuMÛ·Ÿ;qâFRcóæ}ûÒ.\³æ˜^b0ˆ=hX#GnyôHh²òï¿×ÄÄÛĈò ¸YYœ›7«ðxÜ!}’“IIŒgÒëѸ¸""‚~üñ5øyÒQH”O3Äó¶UQ!ñ>T*Á0ã!Lo·¨ÕZ@Æã574Hx‹Åxzâÿúke·$?¾t‰»lÙ¯Ri«N§Ÿ4)þ矙l Vkóòž>}'7÷H$'“ýƃ_lHN΃O>ùóñãÆ7ßL>~¼È¸‹Å`0˜}ûÒX¬n7Ÿ•;/|ó ÛxaT%?½­ì84ŠË—Ë ¸YY÷YXX P²FîçççÙvû[·ª§Lù‡Åãq[·Îzå•!Ö·òüh4ºúúf.×¥Å+-­W(T‚^Aáá h[}û;ôg*§G¥Òòxo«¦F ¸x<‰@ ­­m2to Y·žæÛz2>1"‚L ˜©ìˆ‹¬!-m_vviÛœ‚`0˜wWOšÏ—®X‘qùrõÂã±³f Ù¹óð_FWXXaÈL$z³XO‚­`þ`gâÃÏȸ¢VÿãonnXOO÷_~Y”œÜ׆†AlEQÑ£ôô«§NÝöôtŸ3gÐٳŠ͆ƇÃR(„£GßŠŠ¢ØÔÌ®°woþ¦M·psÃÑ餬¬UÏÓ±S«µ›7ŸÞ¿¿ƒAÀY<=ñ÷ïo/|¾”Íæ°ÙœK—ÊZZÔÑÑÔÔÔ887« Õ꺜™yé3ö ƒÅb|ÓV9Ý«ªD#Gn1t·ðxìªUßy'Å&Æ@œ½½w¯Ö–…Åb OMeš„e}õÕùï¾Ë®±ẌQß}·€J%ÚÎpH·ÁçK@"-0ü°¦F\SÓˆ¢(£ÓIaaO¢´ jL ݬ¾Ù5¶n=Û§yöìÁN‘ÀÞP(T P«¡AR_ß$HëêšÚ–"‚ÅbÈä'S%†„øÓhD·þ¬9ÀW_Ÿ5kPDDÕÎ PÀê rr,XðSûÿÇøúz°Ù«ž?â7;»tÅŠám} IDATt¹\m¬”ø°Ù«þþû>›Í¹|¹¬¥Eò°°XL&3¾b9%©©_Ý»Wgø‰ÃáÂÂ22–À'Š‹#—«þüóÖîݹ••“ápX//ü¡CK†ícÛº†@ 1â‹–µ…'×´i/þøãk]Ëýè‘pñâýeeü‡wa>ûlzs³’Í.½w¯‹Å ÓÚ'nøðÏ$&‚ÅbÜÜp‡/µÕô)));îßoVa0˜k×6¦nÄ–Åf—òù’^½Fê›”Ä5ªß̙ߗ–Öj„›ÖÇÇãÿ›oÛqµÂ:IâY¬¯8œº¨(ÊÇ¿d'sþºŽÇ“44€qˆÒºº&>è\ÍÔ”J%Ðé$:ÝŸN'…†úÓé¤à`RHˆ?…â×½Ó†èõhDÄ*E§MøÞ{¬n‰‡@:°º¥R˜¸…Ï—¶-X Áá°::dHï•+Ç[ž2Ì2--ê?þãðák†cp8,‹:4rìØ+62Òñ‚, G­ÖFF®5¼oc±˜1cb~üñµgÊð qb–/?tæÌ­Vo²‹Å`±Øï¾[ðÒKlbXX²äÀ_•˜ DÄïVküfÍJ˜6mÀ /ôêB§üĉk×Óhô&Á³nnX7F?rdTjj\j*38˜ô\—é1޽þÁ™fô0Œ»;.3ó-›ˆ¶?ý”ûÅg´ZƒÄÇ÷ú믕ַâ hµú¢¢G99÷sr”–Ö{xàU*u›Š1(ŠÌ˜1pûöÙ>>°«àä´MÿàAƒPØõ$ñ(ŠFE­miÑ`0E ŠøôÓ„Yåj æAQT ÕÕ5Õ×7744?~Ü@î-° ˆË£ÓI!!þ!!þ@ä W×¢óø|É€Ÿ ‚Ãaõzý¤Iñ+WN€¹!V XÝÌÆ¿øàè¹sw1ûH$‘¼¯_ßèë SNØ5O'ln¯cƒÅb½¼ÜŽûÅ­ý®ÅçK>ÑëQ77ì'ŸLOKK²²„Ï—|ýuVFÆU³’.#“ývï~Í0}'Äuxž$ñõõ̓}jø ÞqFŒˆÚ¼yFl,ÝÚWéàvóùR>_Z]-®©ƒ|[7>MAƒ ð¡R‰ááaa†Ä[A‚W{‡½y³jêÔo ?ÝÜpZ­nàÀðuë&'&F[ã ® Ìð×ܼYµoß%£8mœV«ëß¿×Ì™ S¦¼@£=oÆ0§ûæÍ'QiƒÐju••¨^¹Åŵ˜' ›7Ïxã ø^ù‡'nXÞEÑ-[ÎÔ×K>ûl†='³P(TkÖË8EwwܤIñ¯¼2dĈ¨çQloÞ¬^²d¿H$·ð5§¹Yù葨ÿÐ.ŸbNž¼UW×daˆ„^¯W©´óçïþóÏ †U'0¡R FܼùH¯G'O~Á𧆏,T*Q.oÅb±z½™oŽÇ“NŸþÝûï§¾÷^*üîåR‰ÞññÞÆ_}¤Ò–òrAY¿¼\PQ!¸zµâèÑë`TFŒŠ¢FE‘££©‘‘½eÌ týú#kǤI/lÜ85, ®·/Àín»Ì `’K¾ €[U%”J[Á6n4è˜ ‘|xx …B ¨«kÂb1}|+-)©3g×Àáï¾Ë²áÜ)çF`u:~üø÷ï×{zº·´¨i4âË/'̘1É é–ã77+W®Ì¼pá^‡· ‹ÅÓ´»ï½w䨱ëþþ>.†ßQ!&$&n­ªâp½Õé,5Ó§üæ›ùx<Îj¶=Û·Ÿûæ6ù2xpÄìÙƒ§Lyá9£Yùõ×+7þ®×ë-{ï½ÔnŸ@Ò½œ?_rýzeMMã£GÂÇ›äò'ýoww‹ÕhtàÃøûûœ:õnŸ>dkš—‘quõêc#GF?¾Üšç…¸,z=÷Qs³ÒòfX,fðà>»v-„ƒ£!Æh4ºêjqY¿¢BPQñDÛ’J[¼¼ðmÇÚÜÜp(оþúÈ5k&ZˆÜØ9z=*Jkk›êë›ëë›ëêšÀàÄúúfƒ|éîîÆdÒ9œzµZÛönnX­V?`@ø{ï±RRb»7÷ò/K ”––ÚЇ毿*ºçí92tøð¾}»±¶–”~úéNcc H¤… ‚`PT¯×›—³–/˜˜ØÅÑ4f!“ÉLæóêèG(v‹=kÖ\Ôhôk×£Ñ|mm‹ýK¡|xH``7t‹•JÍž=w®_¯G‡1ŒOÆ¢(jÒ´b0HXqëÖÑÏÞîeôèÑÏy'~î+•@)*…B¥@  r±¸Œ¾ðÚ´)‘L~^ ´óÈåê·Þº°xqüèÑáV;©+óüýG¯5øa^{ÿÅb±X,‚Á Z-Š¢¨·7>--~Äg y‚Ù$È6l8ÁfsŒ;&¸¹a=<ðï½Çb00x<ŒìsxŒ{*•¶¾¾©®®¹¾¾ùܹ»99,x‡Õéô &ЙL«~1‚8:–û·f†>¿Ná‚H¥-MÝ?¼2thD·‡0ètzõÿüóp…B%“µ*•…BÕÒ¢‘ËUr¹J¡PËd­r¹Z&kmiQ·¶jÕjmU•jéÒn»?î®C„^½ºSYsq”Juddé_LíÆÙ‘‡Ó]‡ %iöñÁƒ_ìp©´¥µUÛÚª‘ËU>T*Á †= Ž]ÝóQTVŠÞ|“4w®J­Ö*j¥R­Ñèd2•J¥U«µRikk«V©T5--j™LC§÷ö÷·žÞa‰DR[[Û]Gs©ç¾X¬¨«“ÔÕ5)•Ö¾ð””ê×_Çø[nì·8ní¸|ù’aÙÍ ëããîëëáççI$z‘H^~~ž~~ž~~~~ž†õÑÑTww;Ã…X“öj…â'Ê,h‚hµz­VõÅg(ï¥KG¾üò {NP±@Ûž†‡‡[ïÞä޽ɂœ9sײ'ètz,sófÕÍ›UcÇFoÞ ßV Ó™þ­‹L†é3C&#_½ çŽO£=ÃÔ¤z=ªP¨º±Ýu(è`ÝHk«&=}L]a5‚ó9°ý_мyÝo¢£ßÇîþïè¥ñLÉä~ýlsê-[fÃQZÖ¡û-Ž[;–.e-\˜ìííN$z¹»Ã¤·gÀB ârymWº¹aÝÝÝZ[µz½Ç1´þýCÝÝ•½z‘ýüHÎl±O,÷4ª«EmWâñ8E´Z‹‹ <¸wBB„FÓ˜˜ðü#! ®@gú·ðyæ„`±¨p»žžx[›@ NÕ+ˆ5 ò ‚¹ ÝIS“B"iAÄÓÓM§C4-‚  !.ŽCïÝ›ìæ†E$77766ªWÎJCC3XððÀ«TZA)Â!½ êÞ¿¨A7ÏÍm¶™' X@ ±DYßÝI¥ÇÄÐãâBH${\± …J.Wápظ8ú!‘ ƒEÐéð# Ä@ @ @ –0 ¼²rÌiÁ`0§N­ˆï‡'C¬ô9@ X¢Û'ª‚8(ÞÞîƒõ¶µæ~†@ @ Ø5/`ÕÔÔ¼ñÆnV^^ŽÁ`ŒŒw¿}û¶››ÛñãÇ ëOž<éîî^RR‚ ƒ‰ŽŽ6I‰?qâD S^^6 ÆÈåòU«VõîÝÛËË+::zÓ¦M­­­±°Ë˜5Éi{O;S†àŽ?iwçüì³Ï0̶mÛžç˜Ýr,—Fff&ÆwîÜéF ÷vÞ{Q]¸p¡¯¯ý¦æµp-irQ(kÖ¬yá…|}}‡ ²uëV­V‹t©ÜÌzow]i‡@Çv¸fÙB‹gü3""âµ×^ …ÝeX—/_¡P¬^½ú…^ðóóX6´ÆÅÅÅÑÑѯ¼òŠ…ÓíáªÅbñ€¼½½=zýúõ¹sçΛ7ïÂ… Ïdøàx&ž§úô„=öy^Hway¡§y¦‡¾=´·ÏjŸÏÏÉÉAŠÉ“'+•J³ÿ*++3¹À¶+ »«Tª¸¸¸%K– (ºlÙ²„„µZ ¶Ad„ 6l0ìuàÀ‰'"RVV6 ÆH¤ÂÂBÃϼ¼¼°°°ö¬êÌšÑ-Ü»wïÞ½{ös EÚ™²5q˜ž»&çº{÷.ƒa³Ù‚<|ø°k4{½czôD=ç½(Šæääðù|û9Ž1]ð^«Ýñ.cÁÂÎ4¹«V­JJJÒjµ†½äryDDÄîݻ۞¢ÃÒèQ×21Æšgï®çu=÷ Ynk†ÉÝÔëõÉÉÉüq—yþ+m¯²üüóÏ&[v»ñÏ„Ù+íѺÙ-ý û©ÎÑì›Üq>Ÿ ˆ…§ª=\õÛo¿ T6«V­JIIyþ#?ëÕY¹uK ²“^S÷Ðlu^ËtÁ[º« ì OèQ¬ /ô4ÏúÐÖɶýÛgŽÀ:uêTHHHSS‚ GŽa0 …AF³zõj*•J¡PV¯^­Ñh@4Ýßÿ–››»iÓ¦°°02™üÚk¯ô¿¶{!rúôéøøxOOÏ>}ú:tA­Vkvw‘Häãããååe¹gX6l‚ 4 i'ÐÔ°;‚ îîîØ·oßÖ­[÷ïßàÀ<oØröìÙÇŽCŸ~&:qâĬY³,@صk—X,?“““«««ÍZŠèÀ 1LFFFLLL@@À—_~‰ Š¢»wïŽ%cÇŽ=sæŒÙ¸Ù¬¬¬¨¨(ÿ­[·Žòäɾ}ûR(”+V¨T*³+-_‹51ë`z½þû￉‰ñóó>|xNN\´<|æÌðÑ,88Ø0<¤­Ãߤ‡Ä`0ûö틉‰!“ÉÛ¶m;tèPïÞ½‰DâÆÁ^m=ù·w!’™™9jÔ¨”””~ýúío{¯W¬X±xñbð_¹\îíí}ûöm 1¹„æææE‹…††®Zµ \µ| †Òh¯¢™Å¬íy—Ù‚5z¯ËÞÛ^réÒ%³;vèÀmïÎðáÃÿûßÿ"ÒØØˆÅbW­Z… ˆN§ó÷÷?{ö,bÎÍL,GFQtÕªU/¾ø¢H$B:Ý䦧§üñÇ8Ü?™b}||Ö¬Y“‘‘Ñ…r{¦›ÕžƒY¾ÞèèhĨšÛ€£4˃Á,[¶ Ô³«g{½”öšq“‡ÒNeY½zuzzºÙ*iÖx³…l¶2}úô•+W‚]T*•¡Ah»»N§Û±cƒÁðóó9räµk×Ì–!¬\¡Ù7Ç»»»‰ÄöLê°)01 ½¶Â¤â´×Õ1»ûo¿ýöî»ï›½iÓ¦½{÷‚åöÊü×x¹­^+T"ëT¤5¢íÚ+´õLçíäåtÙL¼Å~pAy¡G/­->ôMZ¤ÎӖϳ*^(оöÚk¯¿þ:Ç£R©×®]+·oß>sæÌšššâââ®[·(y'N¼xñâ'Ÿ|Âd2‹‹‹KJJ†ºjÕªöö’Ëå»wïnhhØ»w¯›››\.ß±c‡ÙÝ÷íÛwèÐ!ôߪ¡YmÞìJÃîÖ­[‡ ÈçŸn¼AÐh´Û·o£(ÚÜÜìíí Ì"°.\¸âááÁb±vìØQUUeb‰aH`8ã¬Y³ššš~þùgAÄbñÏ?ÿrþüy¡PÈf³£¢¢sßa¦L™"•Jûí7AD"8~jj*—Ë-,,ŒŠŠúä“OÌ®´|Ç­ÕÖÁ~úé' …òûï¿××ן={644”¹É=5,H¥Rww÷´´´ÚÚÚôôtAjÎaLô涉¢(‚ óæÍ“J¥¿üò ‚ sæÌ‘J¥?ýô(d³‹þÛ»ôz}ïÞ½úé'E?üðC&“i8cÛ{——¨ÑhPMOOg2™z½ÞÂAL.aÁ‚ãÆ«¨¨(..Ž‹‹7×ò%ŽÐ^E3{"³v¶ç]f Ö˜žó^ÔºXÖô^ôßmHCCƒÙ-ß}ÔÜÝÙ¼yóäÉ“Q=yò$@8p Š¢7nÜðôôT(¨97kÛšéõzÃk °¶3M.è¾…B“‚½zõj@@@Ê A;wîÈþM{7«=ëÌõšõ‡žsl+G`¹T³ è0 EÑ¢¢"‰„ZìoX¨žf÷BÛoÆMíU–Ë—/S©Tã³Ëår Æ›-d³F\‚GÒÉ“'ét:x´Ýý믿6v:nÍN jÝ,Øìw²Ù7nëêê–/_Ò{ÚsÂ708y{m…IÅi¯«ÓvwPÅÛ»õ핉ñ2\»‰^m+‘Õ"°¬P}ÐŽj„Ù#´WhV®ÎŸ×lt¯1Æ´õ–ï 5#°\M^èÑKC-öX,œü·½ccÛþmW¬¦¦¦ÐÐÐøøxc úõë×ÐЖÙlö‹/¾,...FQ´oß¾¿ÿþ;øoii©a¹í^x<þ«¯¾jjjÒëõ2™L§Óµ·ûÌ™3Ás¥kfØ ×ë_zé%·pá•‚”••½ýöÛëׯGQ4==Åb¡FžÑÖEZ­¶°°póæÍqqq8.##ìU ˆLžsàF¨Õjpð¸¸8°;àðáÃfc¹¹¹(Š‚äeeeÆÇGQôèÑ£QQQfW¶5Þ+ XmŒÉd8pÀ°ÁÁƒ-?ÌT*Õýû÷år¹N§ËËË3Ü ¶cÒhë(Š"rëÖ-ôéí0^.++3ë±è¿½«°°ÐÍÍ <*nÞ¼‰ HII øWÛ{­Õji4Úßÿ¢è¤I“¶mÛfù Æ— V«q8œ¡ÿýwps-_‚áíU4€IY™µ³=ï2[°Æôœ÷¢Ö°¬é½è¿ ¼½-ß}ÔÜݹqㆯ¯¯Z­^¹rå† ðx|SSÓŽ;&Mš„¶ãfm[³5kÖ ÿ™Õ™&¼0´íW]¹r%((¨ 冘£½›eÖÁ:y½fý¡çÛÊ–K5Ë€î°,TO³{YhÆMÔ^Ce18•徬å.œÁ6…BáããsýúuEçÎ :Efwg0mÝÃÄÎmö­)`Áfí\³oÒûúú–––¶lÏ ;ÜÀàíµ&ç™^Iijj2{ß-”‰ñ2\»‰^m+‘Õ,+T´£a¡}n[hV®ÎŸ×lt¯1Æ´õË·µ®€åjòB^ÚÕ‡>XÓÞ1±mÿ¶+IÜI$Ò’%K8Î[o½eXYUU rݳX¬GõýúõC¤ºº ²@$&&fÆŒííåï“SXX:jÔ¨‚‚,kvw¹\®ÑhüýýMÌCÛÏiLÛÝ322rss/^¼xâĉ“'Ošl?{öìãÇ£(Ú™ñƒ …"33A¡C‡nܸ±¸¸xÆ à¹ÞPD&€/-†8ÃŠŠŠ¸¸8ÃcccÍ ì…Åþë¶Š®_¿~µµµVÚ m¬²²òÅ_4loùîîî\.w„ +ÛscÚsc???äéí0^FĬǚœ+33S«Õa0˜„„AŒ‡«˜Ük÷òË/ÿþûï"‘(;;{Á‚9€ÏçëtºÈÈHð3**Êps-\‚öê©YÚ³1ç]í¬1Ð{]ð^І˜Ý`ùî·½; ðññ)**ÊÏÏŸ6mÚ€òóósrr&OžŒXt3ãÖ¬¨¨hôèÑ[¶liïÌ6¹$‰F£µšêÎ;f›JËå0ÛCÚy–!m¬“×ÛбŽÕ,w’²²2ƒc0é„tX=M°ào& •\bÑE·Ü…3àííýÒK/8qB¡Pœ>}Ú0ISÛÝ?~Ü÷€µà:;¡5V(K—.MKK³`’É%wè¥ím`Rqžé•„J¥šd5.**øàÃJð¹<–ššš ÁzP‹ètzUUXsçÎ/¾ø¢½½ZZZôzýñãÇ/^ “Ç´eãcüQº3![:.%%å³Ï>küÿöî7¤©ïøµd›µf¶\)ŽÊµY-æ³J Ö¢AB˜F©E¡ ”£'ARúÿ¤‘ý1+"Ú¡$6ôÏö$¦£¹¹¦çûàüºÜßý7ç®wW}¿͵{ö¹ç|ÎÙÙéž»áá•+W>þœ>êÔ©ºººH$200°yóæ'Np/Eëììt¹\¡P( ÕÖÖ655I•H$ COOO4½yó¦Á`H$¢‡766þøñƒ–F†¹sçÎèè(]¤$ÿ.磷;^ãÇ=|rrr×®]n·›^ —J¥\.W}}=ýWæß?~|ýúõ‡÷<#ø™vBÈÁƒ‡Ïçûöí[__ß–-[NŸ>-\iÌf}ÜÝÝ]QQñòåË_¿~½~ýºªªª  €rëÖ­‘‘©£h™çË—/ýýýv»ýÂ… ¢OÊ7ºš[EìÒ¥K‹åÙ³g?þôûý÷Ãÿþý»  Àï÷Çãqzá[0ä¶8ïöž8„$bË},š±Ü÷zóæÍÂ… ¹—ξÿžùw¡¯háétÚb±¬X±âÞ½{ áÂþýû·oß>88 …œN'm\ùS`kCªŸò*%ŒS*»D+Vì%*n!T9{yE$™ZŸH´Î£GŒF#Ý.ýêÕ+£ÑȽI0ͤ¢êììt8¼N!?䎎ŽVUUy<ž/^|úô©½½a‹Å2>>žm½±ñ™Ñ¢%•`S9_¶ª“Øjn!œoÃ2/ÃùQê@ °{÷ ÚÖ2“z¬èéKͦ>ŒÓÎâv»ý~ÿçÏŸŸ §÷ÑÓŸúWBÈÐÐÙlnhhèëëèêêbÆçóIÕ‰èP FÆ.¿H-„êt’©GÈŒÏÂJ“/*«÷­ƒ!™²E¦i(Õ¶ÎÃå…=5’Û‡¾T™Ú™ßf½€ÕÝÝ]]]MòéÓ§eeetŸg,;tèPII‰ÙlnnnŽÇãÜŠH&“çÎ+///..®¯¯g÷“ "„<|øÐf³étºuëÖõööŠžJ¥è¶|–×ë]ºt©Íf£—çBþþý»uëV£ÑHÆ;üþýûz½ž»i¿¿¿Á‚===„ÓB@€a˜ëׯÿ¯î¤ï±BI§Ó]]].—«¨¨hõêÕmmm´íE£â=æÄÄÄÄÕ«Wm6[qqñÎ;{{{KKKE_É}L˼}ûöªU«–/_~òäÉD"!ú¤|£«¹€%š`©TêâÅ‹kÖ¬1555ô`2f„+W®,[¶ÌjµÞ¸q£¾¾¾¤¤„Ûâì+¹ÍA$2ãÇ/cyÙÕÒÒ²cÇî9NNNÚl¶¶¶6™Â=ZTTÄNìd áÂðððÌfsYYÙ™3gØQ,cžé~Ê«4.^œRÙ5ŠU*{‰Š X*g/4 ï@‹ÅB¦À¢­322RXXHo9Çu:]kk+ûFÂ4“Š*‘H8Žööö©¹„?þœ={vãÆƒÁf³utt¸Ýî}ûöeUoìé‹Ñ¢%•`òçËëƒê$¶š XómXæÅÃâ¦ÕjmhhàÂIHÆî)5Èjg;Ë¢E‹œN§×륿ÞÍ{wùàå§p¼¢š››F#÷–®ÂÃÓéôåË—×®]»xñâššú¿»NÁa_µ, û¨D‡}^$„‰‰ “Éôýûwú§|NŸÕWBH$©««+//_²dɦM›Ø¯Ö¢uBĆÑ02tùíDê,`©Ó}Èz„°IUšLQáp8Û÷¥H0ìWÔiÀRmk./Ìè©‘Ü>ôeÊÔÈü¶€{†CCCápxÛ¶m hŒÏç³Z­ÕÕÕôÏÇ{½Þ>ÈõõëW»ÝÎKbÑ'åÑËwNg–QÏT9Ó8…Y§££#‰ ‰ ½ GèDJQ¡Ò¤n©.¼\-Ú§æàƒ-„™Ö¶dES[¡µ-„š¢©-„³Žv¶Ba !¨[`ÖÃh°@Ó°€š†,Ð4,`€¦ Ÿ ª‡ZWZZªH9Ñh ³W8‡ÃùŽ@a–aîQjÞ‚Þó“"=³&    BûÇøøx,Ëc4 Yz½Þd2åXH,W$€¬˜L&½^Ÿc!ÑhT‘`”’û |îÃ\•û¼½æ³Ü{fMsCî3 ddK>ëþo @kp,Ð4,`€¦a 4 X iÿr©ýD(IEND®B`‚XQilla-2.3.0/docs/simple-api/classRefCountPointer__inherit__graph.md50000644000151400015140000000004011653571063022540 00000000000000c229effdfd7fe8fef6a6927a71d34e0bXQilla-2.3.0/docs/simple-api/classXercesConfiguration-members.html0000644000151400015140000001570011653571063022152 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

XercesConfiguration Member List

This is the complete list of members for XercesConfiguration, including all inherited members.
createASTToXML()XercesConfiguration [virtual]
createDefaultURIResolver(xercesc::MemoryManager *memMgr)XercesConfiguration [virtual]
createDocumentCache(xercesc::MemoryManager *memMgr)XercesConfiguration [virtual]
createItemFactory(DocumentCache *cache, xercesc::MemoryManager *memMgr)XercesConfiguration [virtual]
createNode(const xercesc::DOMNode *node, const DynamicContext *context) const XercesConfiguration [virtual]
createSequenceBuilder(const DynamicContext *context)XercesConfiguration [virtual]
createUpdateFactory(xercesc::MemoryManager *memMgr)XercesConfiguration [virtual]
gXercesXercesConfiguration [static]
operator delete(void *p)xercesc::XMemory
operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
operator delete(void *p, void *ptr)xercesc::XMemory
operator new(size_t size)xercesc::XMemory
operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
operator new(size_t size, void *ptr)xercesc::XMemory
populateDynamicContext(DynamicContext *context)XQillaConfiguration [inline, virtual]
populateStaticContext(StaticContext *context)XQillaConfiguration [inline, virtual]
testInterrupt()XQillaConfiguration [inline, virtual]
XMemory()xercesc::XMemory [inline, protected]
~XQillaConfiguration()XQillaConfiguration [inline, virtual]
XQilla-2.3.0/docs/simple-api/classDynamicContext__inherit__graph.png0000644000151400015140000001316211653571064022514 00000000000000‰PNG  IHDRÃ0nîbKGDÿÿÿ ½§“'IDATxœí{TWþÀoH€€¸€Á$EÙ²‚€}¬îúDðµKÕ HEŽ´B}¶ƒØ…ú(µÖv­R¤Ô–êBç© e+ V¨ J÷FyH@$¡!Èëþþ˜Ýl(Ò;{?‡?îܹߙïÌgæÎdæR „ó›ÇÂÜ `ž ì °'4ÀžÐ€¦?±|ùrsåLRRÒ’%Kˆò¯<•——ÏŸ?ßÍÍÍYa~ŸÏß¼y³n’f0;>>~Æ ›Æ E_ŸÐ{Bì °'4ÀžÐ€lžêêêh4ŸÏ×Õ[YY …B…Bñôô4xô¼zõj …ÒÔÔ4ѹ>P@nn.Dœ}ûö±Ùl©T !ìééáp8‡"fh4Z]]®±D"±µµ466š'Ý!0pA¶ó ””ää䔘˜سg³³óîÝ»usƒ‚‚ô϶’’Ýgþß4Ã8Lqq1‡Ã‘H$ÂsçÎyzzÊår¡R©äñxL&sêÔ©<O©T666ÊËËÝÜÜ***öïßïæææääEéF£ „%%%sæÌ±¶¶ž1cÆW_}!T©TFÉU .CüñGöÁX[[ …Bý ÌÊÊš5k–V«%j‚ƒƒ³²²ÀÎ'£)Q^^^NNN©©©_}õÕôéÓ÷»ß%%% ‘J¥ÑÑÑ ÃÅÅe×®] …BóçÎC´ìííµ±±©­­}Þóé¹û½7FGGwtt°X¬êêj¢òÈ‘#!!!---àÅ_ܳg‘èêÕ«¯\¹’’’âíí-„Bá¼yóx<ÞPQr¹ÜÚÚ:==],geeÑh4¹\~ôèQ£á===™™™ƒË{öìèz<ÝþüóÏl6›èúzzzlmmŸ xòä „022200ðþýûÀÇÇ'%%Eó/^¼È`0T*„0''ÇÛÛ[w”Œ£'©Têêêêëë›’’¢«ôòò‹ÅD¹¬¬ÌßߟHT @_xá…‚‚bî½{÷tåÁQ‰ÄÒÒòã?–J¥Z­¶··W£Ñ > Z­víÚµT*õ7Þ0ØÀÆÆÆmÛ¶½÷Þ{œœœåË—ëê¦DÌ%Î¥RiPnllT*•T*µ¾¾žˆ*((˜5k–þæ«Õj6›ýý÷ßCÿò—¿|øá‡#æÇî BxàÀ*•ÚÙÙ©«¡Óéú}©½½=‘(ÑoÐétýÎg˜(á?ü:iÒ¤E‹]¼xq˜ðaøúë¯ííí¯]»F§Ó‹ŠŠô7°±±ñêÕ«D×·nݺӧOC=OFSzwƒË­­­…BAT :®¿ù­[·nÛ¶­««ËÊʪµµõY6a¬žZZZ˜LæÊ•+õUWWW]öR©´¡¡Aÿ‚áááQZZJ”ëêêt}ÑਧOŸVVVB¾üòK*•ÚÝÝ=TøP%“COeew•JõPsÉq×GOEECšÐjaEEƒL¦˜È|Æ2<‡mk“êwzúÓ¡ƒ×ÍÖÕ°ÙöÖÖhÿ² íì \] j¦NìîÎ0K2ãú½ÿ°'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{BƒQþŸšH$*//7m*&¤¼¼¼££ÆÜYÁÃÃ#((h4‘£-"77×Ô›`2,-™ÖæÎÂ8aaa£Ûácú¿OüoïD²aÆQÇâë`Oh€=¡ö„Ø`Oh0¾žär9Ç›1c†§§grrrÿó.¤©©‰B¡ ߦ½½=""búôévvv¯¼òJaaáhSþ2¾žvìØQ[[{áÂ…–––¬¬¬âââ„„€H$rrr&P¿ƒƒCbbâ0»»»çÎkkk›››[SSóúë¯s¹ÜË—/?Wª#¦d¨Ñ0–ç#6spp¸yó¦nòÚµkÓ¦Mƒ¿RÕ(#6ÐgÛ¶máááú5</((èÃG±ÆÑE………úyÄøzš6mÚÆuÃAë`0‹EL–––úûû󯯡ÙìÔÔTƒº}¡R©öïßïæææää¥H—ÍfWUUé/¿···¹¹™(K¥Òèèhƒáââ²k×.b€o@NNŽ———££ã‘#G§¤T*y<“Éœ:u*ÇS*•ÅÅŇ/øÜ¹sžžžr¹Ü jx~»ž._¾ìââbmm½|ùò£G>|ø¨×? e2™••ULLL[[[NNàñãÇFÇ0>zô¨···@  …óæÍãñxB©T vŸQ"##ïß¿/|||RRR „€ÐÐP©TJ ÎÓÝÝmpf9r$$$¤¥¥E ¼øâ‹{öìnܸ1::º££ƒÅbUWWCÒœOBµZ}óæÍøøøP©Ôo¾ùþzóär¹F£¹ví ±±Ñ¨§^x¡  €¨¼wïQ&†ÒÔ[ƒ¯××ד³fÍ‚***ˆƒ×!ôòò‹ÅD¹¬¬ÌßßB(•J]]]}}} ÙžärùùóçÕj51©Õj÷íÛçââm^qqñÂ… ýýý7mÚ4Œ':. ¯ˆÅb]¿~]¿¦¦¦æå—_îëëkmm}„P Ðét!@7¶¸QOt:]ÿ*nooOÔ8p€J¥vvväö,ŒÅÓ8ÞïA#""„B!1I¡PV®\©V¾ÈU¡Plذ!!!¡¶¶öóÏ?fçáÇDù§Ÿ~:|ø0Q^³fͱcÇ ÞÃûœœ•JekkËb±¨TªHôïîß¿ïââB”¿ŸY'''Ý8îR©ôæÍ›€ÖÖÖ“'OíÚµëÙöÉGOvvv7n ÿöÛoE"QUUÇãr¹ºr¹000 T*­¬¬ Err2 ··W¿Ž¨¨¨½{÷Ö×××××oß¾½¹¹™¨?|øðµk×¢¢¢ªªªÁûï¿ÿÙgŸ---ÃÃÃwîÜùàÁƒúúú¤¤¤ÈÈÈarÖ­qýúõï½÷^ss³@ XµjUZZšV«‰‰Ù±cÇùóçËËËKKKG#£; Ÿñú¤V«SRR|}}mll¦OŸž˜˜HtA*•jáÂ…vvvD³O>ùdÊ”)nnnŸþ9—Ëe2™ú t}K?Çãp8ööö\.WÿšôðáÃÐÐP‡3yòä?þñ%%%ºY‰$**ŠÁ`8;;ÇÇÇëî÷t§ Q6HI&“mÚ´ÉÑÑ‘Á`ÄÆÆöõõ8qÂÏÏO©TB %‰AÔðŒ¥ßå{|óòòˆ,&=fHñ=a^^Þ(bñó=4ÀžÐ{Bì °'4ÀžÐ{BzzòdüŸL8cú=lFF†©ò0!|þ£W_eÓéTs'bˆH$òðð]ì˜<ÅÅÅ%|<°°°f2c¯_ç+ æÎÅ£öD†ñŸôùæ› y xòù[Í‹)!ÛõéÂ…ÛPnÞlêî&ÕUŠTž::~©® ×™;SB*OÅÅuT* Õ¼¼[æNǔʟK£¡PØÖÒÒmîŒLy<‰D]÷îµën‹¨TRu}äñTXXK£ý÷3“Fù|òt}äñÄçßR«5ºIaSÓㆱS2!$ñdôjD£Q‡-H⩨¨ÖÒÒðA‘Z­ÉË«!Çy2xÒja~þ*•fð¬ÎNYmmóħdrÈ੺ZÔÕÕktF-,$C×GO¥¥u++Úà?­–”ÔéþŽ(dßÝÇÇuïÞ`Ýä±c—_}Õï÷¿gëj~ùE1eÊ$s¤f2Èö¼Àáħ§G¯YãoîDL ú½ÿ°'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì †ÖÁÜنɓZZNȘ&%77w#ÿnXXØìÙ³' Q“hîž÷ßø#{š={öÒ¥KM“fFô„¯Oh€=¡ö„Ø`Oh`‚÷æèÊ,ËÏÏoË–-c_òˆÂÕÕµ½½°dÉ’ëׯk4Àõë×gÍšE´ùá‡ÒÒÒâââNŸ>ÝÛÛûôéÓýû÷{zzæäälÙ²%33³§§‡hyûöíS§NÅÆÆfffÞ¸q#++kË–-_ýµþÑšŸŸ_YY™ššúé§Ÿ¶¶¶æääär¹D"™6mš~n666L&“(?~¼««+==ýÈ‘#·nÝ:þ¼Ñ܈Q² të‹Å§OŸ>vìXmmmvvöŸÿüç—^z)--M*•¦¥¥íÝ»—N§D‘ñ½ßóññ¡ÑhP^^¾bÅ …BÌZ·nÝÊ•+2™ÌÊÊ*++kçÎ ƒØ}}}DËððp[[Û+V"""lmmW­Zô†­|ûí·1113fÌHLLôööÏ‘uk4@­V_¹reÇŽÎÎΛ6m*++3š›Aà¥K—Þyç&“éááWSSرcGmm-Ç[»v­———ivŸãòžÄ¶¶6‡°°°X´hQee¥‡‡ÇíÛ·õ‡EwrrÐhÿN€F£µµµ}üñÇ …ÂÓÓSi¶¶¶º–úe}:;;]]]‰²»»»»»;`òäÉŽŽŽÍÍÍ„6‚ŸþùïÿûñãÇe2™V«%ò¸¸¸tuuÍÍ€ŽŽý¾tÒ¤I;;»ààà³gÏ;vì9öÔ3cúó BXRR2þ|bréÒ¥ÿüç?¯^½:gΜ©S§êšæ)))¯¿þzFFÆ»ï¾û¼+e0D¹©©‰è÷ , ¾/е,++S«ÕÖÖÖŽŽŽbñ¿_pÞÞÞN蜛ööö999¥¥¥Dÿöøñã—^z‰˜49¦ñÔÓÓ#‘Hž}úì ¬X±âÌ™3 XQilla Simple API Documentation SourceForge.net Logo

ReferenceCounted.hpp File Reference

#include <xqilla/framework/XQillaExport.hpp>
#include <xercesc/framework/MemoryManager.hpp>
Include dependency graph for ReferenceCounted.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  ReferenceCounted
 Super class for reference counted classes. More...
class  RefCountPointer< T >
 Super class of all the reference counted wrappers for Items. More...

Defines

#define NULLRCP   ((void *)0)

Functions

template<class T1 , class T2 >
bool operator== (const RefCountPointer< T1 > &a, const RefCountPointer< T2 > &b)
template<class T1 , class T2 >
bool operator!= (const RefCountPointer< T1 > &a, const RefCountPointer< T2 > &b)
template<class T >
bool operator== (const RefCountPointer< T > &a, void *b)
template<class T >
bool operator!= (const RefCountPointer< T > &a, void *b)

Define Documentation

#define NULLRCP   ((void *)0)

Function Documentation

template<class T1 , class T2 >
bool operator!= ( const RefCountPointer< T1 > &  a,
const RefCountPointer< T2 > &  b 
) [inline]
template<class T >
bool operator!= ( const RefCountPointer< T > &  a,
void *  b 
) [inline]
template<class T >
bool operator== ( const RefCountPointer< T > &  a,
void *  b 
) [inline]
template<class T1 , class T2 >
bool operator== ( const RefCountPointer< T1 > &  a,
const RefCountPointer< T2 > &  b 
) [inline]
XQilla-2.3.0/docs/simple-api/classATHexBinaryOrDerived__inherit__graph.map0000644000151400015140000000060611653571064023475 00000000000000 XQilla-2.3.0/docs/simple-api/XQException_8hpp_source.html0000644000151400015140000002763711653571063020255 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

XQException.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef XQEXCEPTION_HPP
00021 #define XQEXCEPTION_HPP
00022 
00023 #include <xqilla/framework/XQillaExport.hpp>
00024 #include <xqilla/utils/XStr.hpp>
00025 
00026 #define XQThrow(type, function, reason) throw type(function, reason, this, __FILE__, __LINE__)
00027 #define XQThrow2(type, function, reason) throw type(function, reason, 0, __FILE__, __LINE__)
00028 #define XQThrow3(type, function, reason, location) throw type(function, reason, location, __FILE__, __LINE__)
00029 #define XQSimpleThrow(reason, xqfile, xqline, xqcolumn) throw XQException(reason, xqfile, xqline, (unsigned int)xqcolumn, __FILE__, __LINE__)
00030 
00031 class LocationInfo;
00032 
00033 class XQILLA_API XQException
00034 {
00035 public:
00036   XQException(const XMLCh *reason, const XMLCh* file, unsigned int line, unsigned int column, const char *cppFile, unsigned int cppLine);
00037   XQException(const XQException &);
00038   virtual ~XQException();
00039 
00040   const XMLCh *getType() const { return type_; }
00041   const XMLCh *getError() const { return error_; }
00042 
00043   const XMLCh *getXQueryFile() const { return xqFile_; }
00044   unsigned int getXQueryLine() const { return xqLine_; }
00045   unsigned int getXQueryColumn() const { return xqColumn_; }
00046 
00047   void setXQueryPosition(const XMLCh *file, unsigned int line, unsigned int column);
00048   void setXQueryPosition(const LocationInfo *info);
00049 
00050   const XMLCh *getCppFunction() const { return cppFunction_; }
00051   const char *getCppFile() const { return cppFile_; }
00052   unsigned int getCppLine() const { return cppLine_; }
00053 
00054   void printDebug(const XMLCh* const context) const;
00055 
00056 protected:
00057   XQException(const XMLCh* const type, const XMLCh* const functionName, const XMLCh* const reason, const LocationInfo *info, const char *cppFile, unsigned int cppLine);
00058 
00059 private:
00060   XQException &operator=(const XQException &);
00061   
00062   XMLCh* type_;
00063   XMLCh* error_;
00064 
00065   XMLCh* cppFunction_;
00066   const char *cppFile_;
00067   unsigned int cppLine_;
00068 
00069   unsigned int xqLine_, xqColumn_;
00070   XMLCh* xqFile_;
00071 };
00072 
00073 #endif
00074 
XQilla-2.3.0/docs/simple-api/classReferenceCounted__inherit__graph.md50000644000151400015140000000004011653571063022672 000000000000007f3059908e9e2fa0a3787d3f289df0c0XQilla-2.3.0/docs/simple-api/classFastXDMConfiguration-members.html0000644000151400015140000001463711653571063022177 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

FastXDMConfiguration Member List

This is the complete list of members for FastXDMConfiguration, including all inherited members.
createASTToXML()FastXDMConfiguration [virtual]
createDefaultURIResolver(xercesc::MemoryManager *memMgr)FastXDMConfiguration [virtual]
createDocumentCache(xercesc::MemoryManager *memMgr)FastXDMConfiguration [virtual]
createItemFactory(DocumentCache *cache, xercesc::MemoryManager *memMgr)FastXDMConfiguration [virtual]
createSequenceBuilder(const DynamicContext *context)FastXDMConfiguration [virtual]
createUpdateFactory(xercesc::MemoryManager *memMgr)FastXDMConfiguration [virtual]
operator delete(void *p)xercesc::XMemory
operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
operator delete(void *p, void *ptr)xercesc::XMemory
operator new(size_t size)xercesc::XMemory
operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
operator new(size_t size, void *ptr)xercesc::XMemory
populateDynamicContext(DynamicContext *context)XQillaConfiguration [inline, virtual]
populateStaticContext(StaticContext *context)XQillaConfiguration [inline, virtual]
testInterrupt()XQillaConfiguration [inline, virtual]
XMemory()xercesc::XMemory [inline, protected]
~XQillaConfiguration()XQillaConfiguration [inline, virtual]
XQilla-2.3.0/docs/simple-api/classResultImpl__inherit__graph.map0000644000151400015140000000026211653571064021651 00000000000000 XQilla-2.3.0/docs/simple-api/ItemFactory_8hpp__dep__incl.map0000644000151400015140000000023011653571064020635 00000000000000 XQilla-2.3.0/docs/simple-api/classxercesc_1_1DOMDocument.html0000644000151400015140000024426411653571065020707 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

xercesc::DOMDocument Class Reference

The DOMDocument interface represents the entire XML document. More...

#include <DOMDocument.hpp>

Inheritance diagram for xercesc::DOMDocument:

List of all members.

Public Member Functions

Destructor
virtual ~DOMDocument ()
 Destructor.
Functions introduced in DOM Level 1
virtual DOMElement * createElement (const XMLCh *tagName)=0
 Creates an element of the type specified.
virtual DOMDocumentFragment * createDocumentFragment ()=0
 Creates an empty DOMDocumentFragment object.
virtual DOMText * createTextNode (const XMLCh *data)=0
 Creates a DOMText node given the specified string.
virtual DOMComment * createComment (const XMLCh *data)=0
 Creates a DOMComment node given the specified string.
virtual DOMCDATASection * createCDATASection (const XMLCh *data)=0
 Creates a DOMCDATASection node whose value is the specified string.
virtual DOMProcessingInstruction * createProcessingInstruction (const XMLCh *target, const XMLCh *data)=0
 Creates a DOMProcessingInstruction node given the specified name and data strings.
virtual DOMAttr * createAttribute (const XMLCh *name)=0
 Creates an DOMAttr of the given name.
virtual DOMEntityReference * createEntityReference (const XMLCh *name)=0
 Creates an DOMEntityReference object.
virtual DOMDocumentType * getDoctype () const =0
 The Document Type Declaration (see DOMDocumentType) associated with this document.
virtual DOMImplementation * getImplementation () const =0
 The DOMImplementation object that handles this document.
virtual DOMElement * getDocumentElement () const =0
 This is a convenience attribute that allows direct access to the child node that is the root element of the document.
virtual DOMNodeList * getElementsByTagName (const XMLCh *tagname) const =0
 Returns a DOMNodeList of all the DOMElement(s) with a given tag name in the order in which they are encountered in a preorder traversal of the DOMDocument tree.
Functions introduced in DOM Level 2.
virtual DOMNodeimportNode (const DOMNode *importedNode, bool deep)=0
 Imports a node from another document to this document.
virtual DOMElement * createElementNS (const XMLCh *namespaceURI, const XMLCh *qualifiedName)=0
 Creates an element of the given qualified name and namespace URI.
virtual DOMAttr * createAttributeNS (const XMLCh *namespaceURI, const XMLCh *qualifiedName)=0
 Creates an attribute of the given qualified name and namespace URI.
virtual DOMNodeList * getElementsByTagNameNS (const XMLCh *namespaceURI, const XMLCh *localName) const =0
 Returns a DOMNodeList of all the DOMElement(s) with a given local name and namespace URI in the order in which they are encountered in a preorder traversal of the DOMDocument tree.
virtual DOMElement * getElementById (const XMLCh *elementId) const =0
 Returns the DOMElement whose ID is given by elementId.
Functions introduced in DOM Level 3.
virtual const XMLCh * getInputEncoding () const =0
 An attribute specifying the encoding used for this document at the time of the parsing.
virtual const XMLCh * getXmlEncoding () const =0
 An attribute specifying, as part of the XML declaration, the encoding of this document.
virtual bool getXmlStandalone () const =0
 An attribute specifying, as part of the XML declaration, whether this document is standalone.
virtual void setXmlStandalone (bool standalone)=0
 An attribute specifying, as part of the XML declaration, whether this document is standalone.
virtual const XMLCh * getXmlVersion () const =0
 An attribute specifying, as part of the XML declaration, the version number of this document.
virtual void setXmlVersion (const XMLCh *version)=0
 An attribute specifying, as part of the XML declaration, the version number of this document.
virtual const XMLCh * getDocumentURI () const =0
 The location of the document or null if undefined.
virtual void setDocumentURI (const XMLCh *documentURI)=0
 The location of the document or null if undefined.
virtual bool getStrictErrorChecking () const =0
 An attribute specifying whether errors checking is enforced or not.
virtual void setStrictErrorChecking (bool strictErrorChecking)=0
 An attribute specifying whether errors checking is enforced or not.
virtual DOMNoderenameNode (DOMNode *n, const XMLCh *namespaceURI, const XMLCh *qualifiedName)=0
 Rename an existing node.
virtual DOMNodeadoptNode (DOMNode *source)=0
 Changes the ownerDocument of a node, its children, as well as the attached attribute nodes if there are any.
virtual void normalizeDocument ()=0
 This method acts as if the document was going through a save and load cycle, putting the document in a "normal" form.
virtual DOMConfiguration * getDOMConfig () const =0
 The configuration used when DOMDocument::normalizeDocument is invoked.
Non-standard extension
virtual DOMEntity * createEntity (const XMLCh *name)=0
 Non-standard extension.
virtual DOMDocumentType * createDocumentType (const XMLCh *name)=0
 Non-standard extension.
virtual DOMDocumentType * createDocumentType (const XMLCh *qName, const XMLCh *, const XMLCh *)
virtual DOMNotation * createNotation (const XMLCh *name)=0
 Non-standard extension.
virtual DOMElement * createElementNS (const XMLCh *namespaceURI, const XMLCh *qualifiedName, const XMLFileLoc lineNum, const XMLFileLoc columnNum)=0
 Non-standard extension.

Protected Member Functions

Hidden constructors
 DOMDocument ()

Detailed Description

The DOMDocument interface represents the entire XML document.

Conceptually, it is the root of the document tree, and provides the primary access to the document's data.

Since elements, text nodes, comments, processing instructions, etc. cannot exist outside the context of a DOMDocument, the DOMDocument interface also contains the factory methods needed to create these objects. The DOMNode objects created have a ownerDocument attribute which associates them with the DOMDocument within whose context they were created.

See also the Document Object Model (DOM) Level 2 Core Specification.


Constructor & Destructor Documentation

xercesc::DOMDocument::DOMDocument ( ) [inline, protected]
virtual xercesc::DOMDocument::~DOMDocument ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual DOMNode* xercesc::DOMDocument::adoptNode ( DOMNode source) [pure virtual]

Changes the ownerDocument of a node, its children, as well as the attached attribute nodes if there are any.

If the node has a parent it is first removed from its parent child list. This effectively allows moving a subtree from one document to another. The following list describes the specifics for each type of node.

ATTRIBUTE_NODE
The ownerElement attribute is set to null and the specified flag is set to true on the adopted DOMAttr. The descendants of the source DOMAttr are recursively adopted.
DOCUMENT_FRAGMENT_NODE
The descendants of the source node are recursively adopted.
DOCUMENT_NODE
DOMDocument nodes cannot be adopted.
DOCUMENT_TYPE_NODE
DOMDocumentType nodes cannot be adopted.
ELEMENT_NODE
Specified attribute nodes of the source element are adopted, and the generated DOMAttr nodes. Default attributes are discarded, though if the document being adopted into defines default attributes for this element name, those are assigned. The descendants of the source element are recursively adopted.
ENTITY_NODE
DOMEntity nodes cannot be adopted.
ENTITY_REFERENCE_NODE
Only the DOMEntityReference node itself is adopted, the descendants are discarded, since the source and destination documents might have defined the entity differently. If the document being imported into provides a definition for this entity name, its value is assigned.
NOTATION_NODE
DOMNotation nodes cannot be adopted.
PROCESSING_INSTRUCTION_NODE, TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE
These nodes can all be adopted. No specifics.
Parameters:
sourceThe node to move into this document.
Returns:
The adopted node, or null if this operation fails, such as when the source node comes from a different implementation.
Exceptions:
DOMExceptionNOT_SUPPORTED_ERR: Raised if the source node is of type DOCUMENT, DOCUMENT_TYPE.
NO_MODIFICATION_ALLOWED_ERR: Raised when the source node is readonly.
Since:
DOM Level 3
virtual DOMAttr* xercesc::DOMDocument::createAttribute ( const XMLCh *  name) [pure virtual]

Creates an DOMAttr of the given name.

Note that the DOMAttr instance can then be set on an DOMElement using the setAttributeNode method.
To create an attribute with a qualified name and namespace URI, use the createAttributeNS method.

Parameters:
nameThe name of the attribute.
Returns:
A new DOMAttr object with the nodeName attribute set to name, and localName, prefix, and namespaceURI set to null. The value of the attribute is the empty string.
Exceptions:
DOMExceptionINVALID_CHARACTER_ERR: Raised if the specified name contains an illegal character.
Since:
DOM Level 1
virtual DOMAttr* xercesc::DOMDocument::createAttributeNS ( const XMLCh *  namespaceURI,
const XMLCh *  qualifiedName 
) [pure virtual]

Creates an attribute of the given qualified name and namespace URI.

Parameters:
namespaceURIThe namespace URI of the attribute to create.
qualifiedNameThe qualified name of the attribute to instantiate.
Returns:
A new DOMAttr object with the following attributes:
Attribute Value
DOMNode.nodeName qualifiedName
DOMNode.namespaceURI namespaceURI
DOMNode.prefix prefix, extracted from qualifiedName, or null if there is no prefix
DOMNode.localName local name, extracted from qualifiedName
DOMAttr.name qualifiedName
DOMNode.nodeValue the empty string
Exceptions:
DOMExceptionINVALID_CHARACTER_ERR: Raised if the specified qualified name contains an illegal character, per the XML 1.0 specification .
NAMESPACE_ERR: Raised if the qualifiedName is malformed per the Namespaces in XML specification, if the qualifiedName has a prefix and the namespaceURI is null, if the qualifiedName has a prefix that is "xml" and the namespaceURI is different from " http://www.w3.org/XML/1998/namespace", or if the qualifiedName, or its prefix, is "xmlns" and the namespaceURI is different from " http://www.w3.org/2000/xmlns/".
NOT_SUPPORTED_ERR: Always thrown if the current document does not support the "XML" feature, since namespaces were defined by XML.
Since:
DOM Level 2
virtual DOMCDATASection* xercesc::DOMDocument::createCDATASection ( const XMLCh *  data) [pure virtual]

Creates a DOMCDATASection node whose value is the specified string.

Parameters:
dataThe data for the DOMCDATASection contents.
Returns:
The new DOMCDATASection object.
Since:
DOM Level 1
virtual DOMComment* xercesc::DOMDocument::createComment ( const XMLCh *  data) [pure virtual]

Creates a DOMComment node given the specified string.

Parameters:
dataThe data for the node.
Returns:
The new DOMComment object.
Since:
DOM Level 1
virtual DOMDocumentFragment* xercesc::DOMDocument::createDocumentFragment ( ) [pure virtual]

Creates an empty DOMDocumentFragment object.

Returns:
A new DOMDocumentFragment.
Since:
DOM Level 1
virtual DOMDocumentType* xercesc::DOMDocument::createDocumentType ( const XMLCh *  name) [pure virtual]

Non-standard extension.

Create a DOMDocumentType node.

Returns:
A DOMDocumentType that references the newly created DOMDocumentType node.
virtual DOMDocumentType* xercesc::DOMDocument::createDocumentType ( const XMLCh *  qName,
const XMLCh *  ,
const XMLCh *   
) [inline, virtual]
virtual DOMElement* xercesc::DOMDocument::createElement ( const XMLCh *  tagName) [pure virtual]

Creates an element of the type specified.

Note that the instance returned implements the DOMElement interface, so attributes can be specified directly on the returned object.
In addition, if there are known attributes with default values, DOMAttr nodes representing them are automatically created and attached to the element.
To create an element with a qualified name and namespace URI, use the createElementNS method.

Parameters:
tagNameThe name of the element type to instantiate. For XML, this is case-sensitive.
Returns:
A new DOMElement object with the nodeName attribute set to tagName, and localName, prefix, and namespaceURI set to null.
Exceptions:
DOMExceptionINVALID_CHARACTER_ERR: Raised if the specified name contains an illegal character.
Since:
DOM Level 1
virtual DOMElement* xercesc::DOMDocument::createElementNS ( const XMLCh *  namespaceURI,
const XMLCh *  qualifiedName,
const XMLFileLoc  lineNum,
const XMLFileLoc  columnNum 
) [pure virtual]

Non-standard extension.

Creates an element of the given qualified name and namespace URI, and also stores line/column number info. Used by internally XSDXercesDOMParser during schema traversal.

See also:
createElementNS(const XMLCh *namespaceURI, const XMLCh *qualifiedName)
virtual DOMElement* xercesc::DOMDocument::createElementNS ( const XMLCh *  namespaceURI,
const XMLCh *  qualifiedName 
) [pure virtual]

Creates an element of the given qualified name and namespace URI.

Parameters:
namespaceURIThe namespace URI of the element to create.
qualifiedNameThe qualified name of the element type to instantiate.
Returns:
A new DOMElement object with the following attributes:
Attribute Value
DOMNode.nodeName qualifiedName
DOMNode.namespaceURI namespaceURI
DOMNode.prefix prefix, extracted from qualifiedName, or null if there is no prefix
DOMNode.localName local name, extracted from qualifiedName
DOMElement.tagName qualifiedName
Exceptions:
DOMExceptionINVALID_CHARACTER_ERR: Raised if the specified qualified name contains an illegal character, per the XML 1.0 specification .
NAMESPACE_ERR: Raised if the qualifiedName is malformed per the Namespaces in XML specification, if the qualifiedName has a prefix and the namespaceURI is null, or if the qualifiedName has a prefix that is "xml" and the namespaceURI is different from " http://www.w3.org/XML/1998/namespace" .
NOT_SUPPORTED_ERR: Always thrown if the current document does not support the "XML" feature, since namespaces were defined by XML.
Since:
DOM Level 2
virtual DOMEntity* xercesc::DOMDocument::createEntity ( const XMLCh *  name) [pure virtual]

Non-standard extension.

Create a new entity.

Parameters:
nameThe name of the entity to instantiate
virtual DOMEntityReference* xercesc::DOMDocument::createEntityReference ( const XMLCh *  name) [pure virtual]

Creates an DOMEntityReference object.

In addition, if the referenced entity is known, the child list of the DOMEntityReference node is made the same as that of the corresponding DOMEntity node.If any descendant of the DOMEntity node has an unbound namespace prefix, the corresponding descendant of the created DOMEntityReference node is also unbound; (its namespaceURI is null). The DOM Level 2 does not support any mechanism to resolve namespace prefixes.

Parameters:
nameThe name of the entity to reference.
Returns:
The new DOMEntityReference object.
Exceptions:
DOMExceptionINVALID_CHARACTER_ERR: Raised if the specified name contains an illegal character.
Since:
DOM Level 1
virtual DOMNotation* xercesc::DOMDocument::createNotation ( const XMLCh *  name) [pure virtual]

Non-standard extension.

Create a Notation.

Parameters:
nameThe name of the notation to instantiate
Returns:
A DOMNotation that references the newly created DOMNotation node.
virtual DOMProcessingInstruction* xercesc::DOMDocument::createProcessingInstruction ( const XMLCh *  target,
const XMLCh *  data 
) [pure virtual]

Creates a DOMProcessingInstruction node given the specified name and data strings.

Parameters:
targetThe target part of the processing instruction.
dataThe data for the node.
Returns:
The new DOMProcessingInstruction object.
Exceptions:
DOMExceptionINVALID_CHARACTER_ERR: Raised if the specified target contains an illegal character.
Since:
DOM Level 1
virtual DOMText* xercesc::DOMDocument::createTextNode ( const XMLCh *  data) [pure virtual]

Creates a DOMText node given the specified string.

Parameters:
dataThe data for the node.
Returns:
The new DOMText object.
Since:
DOM Level 1
virtual DOMDocumentType* xercesc::DOMDocument::getDoctype ( ) const [pure virtual]

The Document Type Declaration (see DOMDocumentType) associated with this document.

For XML documents without a document type declaration this returns null. The DOM Level 2 does not support editing the Document Type Declaration. docType cannot be altered in any way, including through the use of methods inherited from the DOMNode interface, such as insertNode or removeNode.

Since:
DOM Level 1
virtual DOMElement* xercesc::DOMDocument::getDocumentElement ( ) const [pure virtual]

This is a convenience attribute that allows direct access to the child node that is the root element of the document.

Since:
DOM Level 1
virtual const XMLCh* xercesc::DOMDocument::getDocumentURI ( ) const [pure virtual]

The location of the document or null if undefined.


Beware that when the DOMDocument supports the feature "HTML" , the href attribute of the HTML BASE element takes precedence over this attribute.

Since:
DOM Level 3
virtual DOMConfiguration* xercesc::DOMDocument::getDOMConfig ( ) const [pure virtual]

The configuration used when DOMDocument::normalizeDocument is invoked.

Returns:
The DOMConfiguration from this DOMDocument
Since:
DOM Level 3
virtual DOMElement* xercesc::DOMDocument::getElementById ( const XMLCh *  elementId) const [pure virtual]

Returns the DOMElement whose ID is given by elementId.

If no such element exists, returns null. Behavior is not defined if more than one element has this ID. The DOM implementation must have information that says which attributes are of type ID. Attributes with the name "ID" are not of type ID unless so defined. Implementations that do not know whether attributes are of type ID or not are expected to return null.

Parameters:
elementIdThe unique id value for an element.
Returns:
The matching element.
Since:
DOM Level 2
virtual DOMNodeList* xercesc::DOMDocument::getElementsByTagName ( const XMLCh *  tagname) const [pure virtual]

Returns a DOMNodeList of all the DOMElement(s) with a given tag name in the order in which they are encountered in a preorder traversal of the DOMDocument tree.

The returned node list is "live", in that changes to the document tree made after a nodelist was initially returned will be immediately reflected in the node list.

Parameters:
tagnameThe name of the tag to match on. The special value "*" matches all tags.
Returns:
A new DOMNodeList object containing all the matched DOMElement(s).
Since:
DOM Level 1
virtual DOMNodeList* xercesc::DOMDocument::getElementsByTagNameNS ( const XMLCh *  namespaceURI,
const XMLCh *  localName 
) const [pure virtual]

Returns a DOMNodeList of all the DOMElement(s) with a given local name and namespace URI in the order in which they are encountered in a preorder traversal of the DOMDocument tree.

Parameters:
namespaceURIThe namespace URI of the elements to match on. The special value "*" matches all namespaces.
localNameThe local name of the elements to match on. The special value "*" matches all local names.
Returns:
A new DOMNodeList object containing all the matched DOMElement(s).
Since:
DOM Level 2
virtual DOMImplementation* xercesc::DOMDocument::getImplementation ( ) const [pure virtual]

The DOMImplementation object that handles this document.

A DOM application may use objects from multiple implementations.

Since:
DOM Level 1
virtual const XMLCh* xercesc::DOMDocument::getInputEncoding ( ) const [pure virtual]

An attribute specifying the encoding used for this document at the time of the parsing.

This is null when it is not known, such as when the DOMDocument was created in memory.

Since:
DOM Level 3
virtual bool xercesc::DOMDocument::getStrictErrorChecking ( ) const [pure virtual]

An attribute specifying whether errors checking is enforced or not.

When set to false, the implementation is free to not test every possible error case normally defined on DOM operations, and not raise any DOMException. In case of error, the behavior is undefined. This attribute is true by defaults.

Since:
DOM Level 3
virtual const XMLCh* xercesc::DOMDocument::getXmlEncoding ( ) const [pure virtual]

An attribute specifying, as part of the XML declaration, the encoding of this document.

This is null when unspecified or when it is not known, such as when the DOMDocument was created in memory.

Since:
DOM Level 3
virtual bool xercesc::DOMDocument::getXmlStandalone ( ) const [pure virtual]

An attribute specifying, as part of the XML declaration, whether this document is standalone.

This is false when unspecified.

Since:
DOM Level 3
virtual const XMLCh* xercesc::DOMDocument::getXmlVersion ( ) const [pure virtual]

An attribute specifying, as part of the XML declaration, the version number of this document.

This is null when unspecified.
This attribute represents the property [version] defined in .

Since:
DOM Level 3
virtual DOMNode* xercesc::DOMDocument::importNode ( const DOMNode importedNode,
bool  deep 
) [pure virtual]

Imports a node from another document to this document.

The returned node has no parent; (parentNode is null). The source node is not altered or removed from the original document; this method creates a new copy of the source node.
For all nodes, importing a node creates a node object owned by the importing document, with attribute values identical to the source node's nodeName and nodeType, plus the attributes related to namespaces (prefix, localName, and namespaceURI). As in the cloneNode operation on a DOMNode, the source node is not altered.
Additional information is copied as appropriate to the nodeType, attempting to mirror the behavior expected if a fragment of XML source was copied from one document to another, recognizing that the two documents may have different DTDs in the XML case. The following list describes the specifics for each type of node.

ATTRIBUTE_NODE
The ownerElement attribute is set to null and the specified flag is set to true on the generated DOMAttr. The descendants of the source DOMAttr are recursively imported and the resulting nodes reassembled to form the corresponding subtree. Note that the deep parameter has no effect on DOMAttr nodes; they always carry their children with them when imported.
DOCUMENT_FRAGMENT_NODE
If the deep option was set to true, the descendants of the source element are recursively imported and the resulting nodes reassembled to form the corresponding subtree. Otherwise, this simply generates an empty DOMDocumentFragment.
DOCUMENT_NODE
DOMDocument nodes cannot be imported.
DOCUMENT_TYPE_NODE
DOMDocumentType nodes cannot be imported.
ELEMENT_NODE
Specified attribute nodes of the source element are imported, and the generated DOMAttr nodes are attached to the generated DOMElement. Default attributes are not copied, though if the document being imported into defines default attributes for this element name, those are assigned. If the importNode deep parameter was set to true, the descendants of the source element are recursively imported and the resulting nodes reassembled to form the corresponding subtree.
ENTITY_NODE
DOMEntity nodes can be imported, however in the current release of the DOM the DOMDocumentType is readonly. Ability to add these imported nodes to a DOMDocumentType will be considered for addition to a future release of the DOM.On import, the publicId, systemId, and notationName attributes are copied. If a deep import is requested, the descendants of the the source DOMEntity are recursively imported and the resulting nodes reassembled to form the corresponding subtree.
ENTITY_REFERENCE_NODE
Only the DOMEntityReference itself is copied, even if a deep import is requested, since the source and destination documents might have defined the entity differently. If the document being imported into provides a definition for this entity name, its value is assigned.
NOTATION_NODE
DOMNotation nodes can be imported, however in the current release of the DOM the DOMDocumentType is readonly. Ability to add these imported nodes to a DOMDocumentType will be considered for addition to a future release of the DOM.On import, the publicId and systemId attributes are copied. Note that the deep parameter has no effect on DOMNotation nodes since they never have any children.
PROCESSING_INSTRUCTION_NODE
The imported node copies its target and data values from those of the source node.
TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE
These three types of nodes inheriting from DOMCharacterData copy their data and length attributes from those of the source node.
Parameters:
importedNodeThe node to import.
deepIf true, recursively import the subtree under the specified node; if false, import only the node itself, as explained above. This has no effect on DOMAttr , DOMEntityReference, and DOMNotation nodes.
Returns:
The imported node that belongs to this DOMDocument.
Exceptions:
DOMExceptionNOT_SUPPORTED_ERR: Raised if the type of node being imported is not supported.
Since:
DOM Level 2
virtual void xercesc::DOMDocument::normalizeDocument ( ) [pure virtual]

This method acts as if the document was going through a save and load cycle, putting the document in a "normal" form.

The actual result depends on the features being set. See DOMConfiguration for details.


Noticeably this method normalizes DOMText nodes, makes the document "namespace wellformed", according to the algorithm described below in pseudo code, by adding missing namespace declaration attributes and adding or changing namespace prefixes, updates the replacement tree of DOMEntityReference nodes, normalizes attribute values, etc.
Mutation events, when supported, are generated to reflect the changes occuring on the document. Note that this is a partial implementation. Not all the required features are implemented. Currently DOMAttr and DOMText nodes are normalized. Features to remove DOMComment and DOMCDATASection work.

Since:
DOM Level 3
virtual DOMNode* xercesc::DOMDocument::renameNode ( DOMNode n,
const XMLCh *  namespaceURI,
const XMLCh *  qualifiedName 
) [pure virtual]

Rename an existing node.

When possible this simply changes the name of the given node, otherwise this creates a new node with the specified name and replaces the existing node with the new node as described below. This only applies to nodes of type ELEMENT_NODE and ATTRIBUTE_NODE.
When a new node is created, the following operations are performed: the new node is created, any registered event listener is registered on the new node, any user data attached to the old node is removed from that node, the old node is removed from its parent if it has one, the children are moved to the new node, if the renamed node is an DOMElement its attributes are moved to the new node, the new node is inserted at the position the old node used to have in its parent's child nodes list if it has one, the user data that was attached to the old node is attach to the new node, the user data event NODE_RENAMED is fired.
When the node being renamed is an DOMAttr that is attached to an DOMElement, the node is first removed from the DOMElement attributes map. Then, once renamed, either by modifying the existing node or creating a new one as described above, it is put back.

Parameters:
nThe node to rename.
namespaceURIThe new namespaceURI.
qualifiedNameThe new qualified name.
Returns:
The renamed node. This is either the specified node or the new node that was created to replace the specified node.
Exceptions:
DOMExceptionNOT_SUPPORTED_ERR: Raised when the type of the specified node is neither ELEMENT_NODE nor ATTRIBUTE_NODE.
WRONG_DOCUMENT_ERR: Raised when the specified node was created from a different document than this document.
NAMESPACE_ERR: Raised if the qualifiedName is malformed per the Namespaces in XML specification, if the qualifiedName has a prefix and the namespaceURI is null, or if the qualifiedName has a prefix that is "xml" and the namespaceURI is different from " http://www.w3.org/XML/1998/namespace" . Also raised, when the node being renamed is an attribute, if the qualifiedName, or its prefix, is "xmlns" and the namespaceURI is different from "http://www.w3.org/2000/xmlns/".
Since:
DOM Level 3
virtual void xercesc::DOMDocument::setDocumentURI ( const XMLCh *  documentURI) [pure virtual]

The location of the document or null if undefined.


Beware that when the DOMDocument supports the feature "HTML" , the href attribute of the HTML BASE element takes precedence over this attribute.

Since:
DOM Level 3
virtual void xercesc::DOMDocument::setStrictErrorChecking ( bool  strictErrorChecking) [pure virtual]

An attribute specifying whether errors checking is enforced or not.

When set to false, the implementation is free to not test every possible error case normally defined on DOM operations, and not raise any DOMException. In case of error, the behavior is undefined. This attribute is true by defaults.

Since:
DOM Level 3
virtual void xercesc::DOMDocument::setXmlStandalone ( bool  standalone) [pure virtual]

An attribute specifying, as part of the XML declaration, whether this document is standalone.


This attribute represents the property [standalone] defined in .

Since:
DOM Level 3
virtual void xercesc::DOMDocument::setXmlVersion ( const XMLCh *  version) [pure virtual]

An attribute specifying, as part of the XML declaration, the version number of this document.

This is null when unspecified.
This attribute represents the property [version] defined in .

Since:
DOM Level 3

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/inherit_graph_23.png0000644000151400015140000000410211653571064016455 00000000000000‰PNG  IHDRË(ßI™HbKGDÿÿÿ ½§“÷IDATxœíœkH“_ÇÏ“Û ©œºiÓ¹Ð™Í vñE P* ºi˜iµJ‰.Py)T4° ]D±"2Óe6_„–’F¬ÉØf†æ­ Ks³9nnÏÿÅá¿ÿãã³¹ÿÚ“!çóê}úýU! µµµÇ'u’ˆŽŽ~òäÉ‘„XT`6·ÕazACÐ r‚^Ãô‚† '†QáZeóòùógë¢të!®å* 1 +..vmØ¿ ç¿ÃÞ½{74[#{{{9ŽÓ ¹\ƒe³ÙììììßÖø8Ž×ÔÔ©Tê°¿ 'Eñ>ÌA¸\îªU«i±XFGG^Èåz„(›Ãá¸öËF¥Ruvv666ÆÅÅuuu…„„¸0¸ÓÐqR.®Ã^¼xáïï¯ÕjÕÕÕ!!!›7oXßd2effúúúúøødffšL&x½~ýZ ¼}û𪪪ÐÐP//¯+W®ÀY 6lpwwçñx6ñj#]©¤ø333ùùù€Ë妦¦Žˆ²‰ÓÇÆÆ>Ìápø|~FFÆÔÔeL;555111±±±"‘Èú5FÌC[[[YYYXXØÊ•+·nÝÚÐЀa˜Ý¿?44”ËåWVVzxxäååÙÊ9¥fÒIÉd²ÈÈÈeË–UVV:’s ðÙ$$$$$$àóP(ã³¥¦¦:tèû÷ï¾¾¾ïß¿Çq¼»»›¸ÐåË—÷îÝûåË¥R¹qãÆ .ÀÛ·oonnÖëõ€}ûöiµÚŠŠ Àèè¨N§c±X‰dppðÑ£G€ááabعzL&qi0)þÕ«WÃÃÕJ¥J¥Ú´iSFFi ±œœ¼mÛ¶žž¥RQPP@Çñ±±±ŠŠ 8‹Ø¶X,ååå8Žçä䄇‡Wy¸qㆿ¿ÿË—/GFFššš‚ƒƒvv”””¤ÓéîÞ½ HLLÔétåå借?RæœR31¦^¯_ºtiYYÙÐÐн{÷ †^¯Ÿ×R©”ÜIzvÜa¶ÌªÕjù|~dd$L=>Ça"‘hhh¶›ššÖ¯_(•Jkð––ÇF#Lëôôtgg§^¯7›ÍoÞ¼¤“Édv΃íÚµuuuðÓ?Â6åt£Ñèææ¦V«a]]]pp0eL;Ù“Ëå žý‡*•ʺ ÌCDDDUU•uÊãÇí;¬½½Ýº:± •ÌÍ9¥fbLFÃd2¯]»¦Õj-Ëøø¸Ùl¶³)܆Ü¿%ç&ö³Ùì´´´ŽŽŽ'NPNìïïçñxð×½¸¸¸¾¾>Ø/‰¬cüüüL&>²X¬®®.±XõàÁGôìØ±ƒø)>Û…¤økÖ¬íÐÐÐÝ»wÛÚõ?Ìf³P(„ÁÁÁƒƒƒ”1íPSS333Ãáp0 ‹ŠŠë}˜‡žžžˆˆkgXX)iG+V¬°®NlClåÜŽfOOÏ––¹\ÎçócbbÚÚÚ–,qÆ-®öõë×Û·oÇÆÆž?žr‡Ã±ºA«ÕÊårØOÜ'i3ƒ!11133³½½½´´ôé™™™|ûöØIŠïçç×ßßÛ …âÒ¥K¶¢ùúúº¹¹õööÂÇžžʘ¶0›ÍR©´¤¤Äz¡Ÿ;wþèÃ0«W¯îèè°Îêìì´¿#ûØÊ¹ÍƒÁb±ÔÖÖj4š£GîܹS£Ñ8¾¢ç622ò}6‹Å"‘HNŸ>]]]ýêÕ+™Lf ,Àž={.^¼800 T*Åbñ;wæ]kzzÚh4²X,ƒÁŸŸŸw›Í<|øP§ÓݼyÓÎÈ”””œœµZ­V«O:5000W6„Édîß¿ÿÌ™3}}}jµ:77799ÙVØ_¿~ÁˆØnkkNNN^þ/èîîV(Ĺ'OžÌÊÊjllmnn.((À0Ìñ‘ø_9‡[Æ0,>>þÙ³g:Îh42™LwwwÇWüÒM÷›uØ­[·Ö­[g4qþü9ÇÓh4&“iË–-Ë—/‡su:Ý‘#G<==½½½ÓÒÒ&&&H… \yÖvII‰——W@@@iiiRR’©¡,}ŠŠŠØl¶P(¬¯¯§ ÛSSS~~~IIIZ­Çq¢lR’’’âííÍãñΞ=k0li¦,›ÒÓÓããã‰"-‹P(ÌÎÎ&Ž7›Íׯ_ …b±¸¾¾žËå:¾#R{nÎ)G’NJ*• …B‹%‰êëëí[wm¥ ™L¦P(¬OŸ>…åùß ¥ÃпKþ¥(•ʃ¶··ONNÊåò¼¼¼cÇŽ-´(gpþ>‚V²²²&''wíÚ522$‘HÒÓÓZ”3 ‡ý¥0Œ¢¢¢¢¢¢…ò» [A/ÈazACÐ r‚^Ãô‚† Š·­­­qqq^ bQBvü_Ž„$$$:1ý•M : A/ÈazACÐ r‚^þñC’|“DÝIEND®B`‚XQilla-2.3.0/docs/simple-api/QueryPathTreeFilter_8hpp__incl.md50000644000151400015140000000004011653571063021236 000000000000005372972f1d0a5a3568a81ebf1993ecd4XQilla-2.3.0/docs/simple-api/ReferenceCounted_8hpp__incl.md50000644000151400015140000000004011653571063020546 000000000000005b308c8ee55cf1a1bf2b9b57a57a88e9XQilla-2.3.0/docs/simple-api/EventGenerator_8hpp__incl.md50000644000151400015140000000004011653571063020256 00000000000000aa3be8761be75946cc6d8c9f24b19f4aXQilla-2.3.0/docs/simple-api/classBaseInteractiveDebugger__inherit__graph.png0000644000151400015140000000775711653571064024315 00000000000000‰PNG  IHDR³uŠÇG bKGDÿÿÿ ½§“¤IDATxœíkPWÇÏ’-Fƒ\ä@­-ƒÖV‹¨E%AAk+HetJ¹hG NuhÑ6Óª(‚Å©@£ˆ(´ µR©VTÀ‚ûUrÙ÷þîÃI á’¼r~ŸÎ>Ùó<Îþ³{6»Ëb8Žb:š€ÐR3p3p3p¨ò k֬є„ÆY±bEll,¹øŠ3ŠŠŠœœœ Ƥ«Bh˜ªªªY³fÉG¨ køúú~ðÁ“§¡R–¡¹¹ÙÍÍ­¼¼|óæÍ•••ÃÅH¥Ò´´´Í›7³Ùì„„âk-Ÿ–È8pà@RRQH,¯_¿¾¬¬l4²†mذX_E—¢¢¢€€6›ÍápD"YZ^Žã—/_þôÓO½¼¼"""nß¾íææ Žf@þí–UÇB¡pppP 466¦¦¦W[ÁW_}åààžž–’’ÒÛÛ+ ãããÙlvVVÖÇœ˜˜( \.·¥¥%99ù»ï¾+//OKK^åÖ­['Nœ MNN~ñⱩ.^¼H|ª,CNNξ}û,,,†‹ár¹%%% §±±1== –ÀÝÝýæÍ›Ä=MwïÞÕÓÓsqq¥l€¥¥åóçÏUë,((HLLLHH¸wïÞÏ?ÿ ÍSPPpîܹݻwgffnݺõĉÊ‚#ˆƒƒÃÈÛõUÔqÆÎ;===½¼¼¶oß^[[ëîîÐÕÕ=sæÌž={ŒŒŒˆ+/|>_,ã8>88¨««ëáᑟŸ¯§§(,,Ü»w/ƒÁ`±X¡¡¡Ðã›Í¦Ñh~ø!`øqDY†ggç™3gsõêÕÀÀ@‹ekk3þ|eà»ï¾ÛßßÿÏ?ÿŠ‹‹=<<(Ê(eRgxx¸¥¥¥££ãÎ;•ÍF/\¸°k×.:¾dÉ’;v( Ž8 o¼ñƈRø×ç&ò B$q¹Üˆˆˆ¬¬,*•ÚÔÔtôèÑÁÁAÒ¡3fÌàp8\.7--mΜ9®®®€ÖÖV2áôéÓ‡W166P©p…Ê2XYY½†‹ikk³´´$ÚÖÖÖÖÖÖÊþ@==½åË—ß¼yÓÆÆ¦´´4%%EuQššš˜L¦ê.¤++«®®.ùîäý—ÏŸ?·µµ%ã666Ê‚#ˆ¨ã ===//¯ÔÔÔÞÞ^}}ýøøøøøøeË–‰ÅâÂÂB€H$’Édñññ‰¤¸¸øË/¿¼téÒŒ3èt:‡Ã!ì500ÐÝÝ=<9†a*J+Ë@8I$ cddÔÚÚJ ëãÇËÊʶmÛ¦,¿»»û±cÇìííçÌ™CnÅÑÈ&æK—.UÝ¥©©‰ÅbMMM‰ T*¥P(Ä¢©©i}}=±àéÓ§Ê‚#ˆ¨s4éíííîîîîînooÿå—_ †X,–H$T*uhhˆ8È  ⢢JJJˆ# •J%Ž&ï¿ÿ~JJJ[[Ç‹ŽŽ¾téÒ(K Õ bÖ®]›ššZ_____ÿÃ?´µµ OKâââ200pöìYOOO2¨¬(1 >ŒmiiñóóSÝåäÉ“ÍÍÍ=JMMõðð Ñh€k×® rÒÃf³“““ÿþûïþþþû÷ïŸ={Ã0hp,Cª u N40 ³µµÇ0ŒF£………:tèÍ7ß pwwŽŽÎÍÍÝ¿rrr{{;“ÉŒ‹‹ÓÕÕ?~<88ð+V„††ŽXÔÌÌì­·Þòññ)((€f ¿j¨˜œœ¡P% —.]JUHû¿q¡RW®\Y\\¼råJ2¨L69 cáÂ…§OŸ&wæÊtzzzFFF …µk×úùùQ©Ô   ¤¤¤ôôôÝ»wÿùçŸ6›-•J9N__ßüùówíÚuäÈhpÄQLþ© ÃâââÐýZÂíÛ· †±XRRrîܹÀÀÀáAr&¤6411ÉÉÉ!#躉öÂãñ>\WW'‰ª««úé'///hp"ªiŠ˜P¶lÙ" 8ÐÛÛknn¾nݺõë× Áq9C{¡P(AAAAAA qhpÜAGä ä ä ä äŒÿñâÑ#MKÐ"e±X O±MhRé»==׌5-D3ðx¼Õ«WËÿúÊï¾¾¾“.I[°hj2lowb2…ÿþV†×‹E^&ÀÐc"HY¶¬ïÙ³eŸ¾<2RÓZ´4Ï€Žêê¾gÏÕ\®¦µh ÈP}á‚δi€¾ÆÆÖ4-G+@θLV•“#‹:Tj͘ïyy=@ÎMý%xyoœL"©ærq©T³’´ä ð(7WGîfÉÁžžÆ—O‹Le¦º3¤bqM^žLî™"*µ&7Wƒ’´„©îŒ§%%C¯>ƒ*“Hþ¹|Y:4¤)IZÂTwFõÅ‹:ŠBpH ¨×úgÕ'š)í 1Ÿ_WX(6ßÔ¡Pj^}žq 2¥ñ¤¨ˆ8YU@&‘<¹vMÌçO¾$íaJ;£æÒ% äâ€dhèÉõ듬G«˜ºÎõ÷7ܸ¡â²ÑÿÉkê^Q“ˆDüÖVr‘W\\\ZJF0 eæË'Z§ S÷©ªž]îqx}]ùòS©{4A¨9999999999999999999999999999999Gýÿ¬RTTÄãñÆQŠfWUNŸ>­i!ãÉêÕ«Y,–šquyÍ^“󦎎å´išV1Îdgg«½}Çôߘ|}}å߯„Ð*0 Kw4Ï@ÀAÎ@ÀAÎ@ÀAÎ@ÀAÎ@ÀAÎ@À™pg`öøñ㉮¢‚Ç«qþ†Éacc³}ûöŽŽŽq¯¢ÍhxŸÁãñŒ'à…Ûòi bbbÔHRZZÚÒÒÒÔÔ”––Ößß¿xñâÞÞÞq•©ÕhØ2™¬««kBÓóÍ7j$111133³°°pssËÍÍe±Xg\ej5“ê Ã222 Ä»ÈÍÌ̈ÄbqTT”©©)ƒÁˆŠŠ‹ÅÄ^º¸¸ØÊÊêÖ­[W®\qvvÖ××777'¶·D"‰‹‹³²²211Ù¾};ñµ–OKîçÙlvDDQH$Íš5ëêիТPå»ví"ÖWÑ%##ÃÎÎÎÄÄ$,,L ÈbÈ6Žã§Nrrrš9sæªU«®\¹‚a48š™ˆÍô_ÆrÝÄ××wÄÕuuud{Ó¦M===)))€®®®ºº:y ß~û­Ï³gÏ***/^¼oß>b…uëÖýþûï---ºººMMMééé€ööö#GŽÌŸ?¿¢¢¢²²ÒÕÕ522Çqù´d;++ËÊÊJ&“á8ž——Çd2Åb1´¨‚l‚»wï¨Ö¹jÕªÚÚÚ²²2{{{2¨ #%%ÅÂÂâ×_íèè¸~ýº½½=q@TüX®›L¶3nܸãøÐÐWpƼyóZZZˆöõë×-ZD¬PQQã¸H$ª©©J¥7oÞ$2Ì;÷âÅ‹D—êêj¢ Ý$|>úôéwîÜÁq|Ë–-û÷ïWVɪuâ8žmkk •±`Á‚ŒŒ 2mff&M!Õ#¯±+jjÀd2Ó”\Õlhh077'ét:ј7o@WW·¶¶688x``ÀÙÙ™øèéÓ§DÛÑÑÑÑÑQYi}}}ooo.—ëä䔟Ÿÿþ}ÕE¨««³³³SÝ…TBlQùîøË7 =yòdÁ‚dÜÉÉIYpÄ™P&{ª££ª¢±±1ùMíéé){ù®eÂIƒƒƒ~~~QQQåååIIIÄGL&³¡¡h?xðàðáÃ*òûûûs¹ÜË—//Y²„܊ʊʃãøÉ“'½¼¼Tw!¾Ð€ÚÚZë—/Ñ‘H$€ææfbÑÚÚºªªŠÌ\SS£,8â€L,jïmÔ;š(´‰¡|ñâܳgϦM›>|èêê.¿CîééÁ0¬°°ÏçGGGÊËËãââ.\XYYYYY¹|ùòàà`üå®›H+Ÿ˜x:88œ={–T8¼(!Ÿ¯0ßÿ½¡¡áìÙ³“’’üýý †P(ŒŒŒd2™t:Ýßß¿§§Çqù´ BBBh4šüÜmxQüÕwËÍž={ëÖ­mmm*ºU²²²lll Æ_|!‰p?tè]^^!C*•r8;;;:îáá‘——gbb Žf@T¼V;¡@~~þƒÈE.—»hÑ"hpŒ…Æè tÝd²©¨¨Ø¶m[yy¹@ (++‹Ý¹s'4¨YS÷Ý‹š"::Z °Ù쎎‹ €5ˆúïkõóó û@µ ò³³‰Í¤èh‚€ƒœ€ƒœ€ƒœ€ƒœ€3¦³V÷š=Š “3îÝ»§ñÓnÄ¡þïˆ×4Ï@ÀAÎ@ÀAÎ@ÀAÎ@ÀùÎñf/”_úˆIEND®B`‚XQilla-2.3.0/docs/simple-api/index.html0000644000151400015140000000254411653571063014624 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

XQilla Simple API Documentation

XQilla-2.3.0/docs/simple-api/XercesConfiguration_8hpp__incl.md50000644000151400015140000000004011653571063021307 00000000000000648625fbad85ed5b785ad6f58db009d4XQilla-2.3.0/docs/simple-api/ATBooleanOrDerived_8hpp__dep__incl.png0000644000151400015140000002647111653571064022045 00000000000000‰PNG  IHDRµ« šA¡bKGDÿÿÿ ½§“ IDATxœíyXçºÀ¿„­ [@TbõQ°­KU,µÞVíuŠˆ=´GðZÁZ­‚ÕV½V}ꊗÓb) ›ÖÚ 9½ÊfQJ…ÈfdH0Ùæþ1žCøDJ˜(ïïá™w¾å™ó}™,C#@/Q`ЀðÀ~8š+ùùù»ví¢*Àðõõݶm›zõ?š››srrÞyçÁN 0 nß¾mcc£aô,3Xù†ÅŽ;´"0ÿp€ðÀ~8À‡Ž×/}ä»ï¾;}úôêÕ«—.]JFrsswîÜÙ³d||üêÕ«Õ«o¾ùæúõë­­­ûÞ݃–-[–——×ï„5éêê:sæLIIIccãðáÃg̘ñá‡Òét­b~~~êe‡ &¬]»¶iÿõ„u¶àçç—˜˜èììÜïf_ˆ~úADnn.›ÍÎËËSû1mÚ´´´4„PccãºuëÈe„аaÃBGŽqrr"¢µµõðáÇÚ¾}û@ì óøñãµk×ÚØØ„‡‡s8œššš“'O^¿~}ÿþýFFÚT2m•Juÿþý´´´°°°S§NYXX<· ‹àà`ýìÁàÑÏñ¥¦¦¦¾¾~Ó¦M|>_ A[[[[[[ò?Ìö?0 „µµµ­­­ÝèѣÊ‹‹j^”ï¾ûÎÚÚúÀ“&Mrqq™1cF\\\SSÓ¥K—z&Óf±X>>>;wîtrrJMMíK/VVVaaaû`ÓO?rss'L˜ðÆo ><77÷E«Óétõ}:‰D²gÏž>ø àøñã2™¬· …B·páÂ… ÆÅÅ) „PAAÁêÕ«çλxñâ~ø,éçç—““³bÅŠ üøãd0;;{ùòåš— SSÓ?ü0;;ûÁƒ~~~¥¥¥AAAeeeZiÓh´ ö–†fõ_~ù…ž>ÿüócÇŽ‘UärùüùóÉzVW©T?þøchhè{ï½·nÝºŠŠ Gïúõë!!!óçÏ?{ö,BˆìôêÕ«¡¡¡ .<|ø°\.×|ÑÓ„úç9¸øûû#„|}}û8ÄvuuI¥ÒÇß¿?!!aöìÙdü›o¾iii‰‹‹Û»woIIIRRRoA5çÎkllýøñãíÛ·{xx$&&®]»6>>¾½½,üÿ÷G ?qâDGG‡D" …\.W+=.—[__O.§¤¤lÞ¼ÙÃãç^¸¸¸444ô–†Îêþþþùùùäç°JJJLLLÞzë-ÕÓÒÒ’““þÿþûÐÐи¸8G²¨¨(>>~Ó¦M b±˜ fffîÞ½û«¯¾***Rÿ{è ¾ýñãÏ?ÿ|øð¡¯¯/BÈ××·¶¶¶¦¦æ¹µ>úè£÷Þ{ïý÷ß_¾|yee%©—B¡ÈÍ͈ˆprr5jÔÊ•+³³³u5›ºtéÒúõëÙlö¨Q£ÂÃË‹‹Ož<iggÇf³Bdáÿþïÿ¶°°x÷ÝwBê£Ù¦R©Èå°°0SSSüõLCgõ·ß~[,ß½{!ôÛo¿Í;—œ÷¬~þüù5kÖ̘1ÃÎÎnòäɽ OAAAæææÓ§OGuttÁµk׺¸¸Œ3æ£>R.Á¢?óÓÜÜ\¥RùÁ¨#yyy#GŽÄ×RϺ»»»Ï;÷É'Ÿüøã"‘H¥Rq8²Œ³³sKK‹Î fSMMM‹/V¯¾öÚk C |ýõ×R©TëÿžÅb!„È9BÈÂÂÂÖÖ–Ïç¿ñÆšÅø|¾§§'¹<|øðÞöB ¨뙆Îê&&&Ó¦MËÏÏ1bĵk×âãã{«®P(4/l£FÒ™ƒBˆF£i]\\Ô½«—Îà ñÂ~¨Tª¼¼¼?þxÞ¼ydäôéÓyyy+W®Ôʸ7LLLÞÿý„„„ööv##£ÆÆF777„PCC‹ÅÒÔlÁÊÊêàÁƒ¤mäxÑÝÝ;uêT¹\®9Óì™Õ¬Y³¾ûî;õ¤««+))I}¶Ô2iAÄùóç§L™Ò[½U÷÷÷?|ø0—ËõôôTŸ³žÕ·oß~ïÞ=www²@mm­Î4tg@@útÿþ}R Þ‚/Ä /<O$Íž=Ûì?Ìš5K ðù||Åööv¡P( >|˜””Äf³­­­ †ŸŸß¡C‡É×™³fÍÒÔljÆŒñññÍÍÍÕÕÕ›6mÊÌÌ”Ëå …‚Á`Èd2rðøñãÞ2Y±b…H$úä“OŠ‹‹Áï¿ÿ¾víZ‹¥yEÔJ»µµõÖ­[Û¶mkll ì-Þz|ë­·$É™3gÞ{ï=Ì^,X°àøñãW¯^ …ÅÅŧN"K^¼xQ=\öÆ‘#G}:..®¡¡ÁÉÉÉßß? €ÉdbÒf³ÙãÇÿöÛoÕãHÏ4Z[[uöÈ`0fΜùÛo¿Íœ9³L&S.—?~¼­­ÍÝÝ}Û¶mü1Bè믿öööV÷«“Y³fmܸ±««Ëßß_}¸´‚˜ê½AÓü~CJJJPPÐ@Ý£·Yûw÷vÇŽööö)))ê¼ÿà?^z^{íµùóç÷%ØÀ—kkëO>ù¤/Á~~8Àøà?à€üx†?ÿl£:ÃBÇýõ¨¨¨ÁÏÃ@hiñ¶±ù“Áè¢:j¨®®Öz«ë?\]]7%B*e44Xš™vuí :j5j”úÝiü¾”š}û.äº1Ðë 14~-00êzæðÀ~8Àøà?/·4¼s Žðù|ÖÇê}/L£Ñø|~R|Éy¹ý@;wŽª›iC—ÞðððþóŸMMMT'òjòÒû±aÃ//¯°°°ž7[ÛÛÛÿþ÷¿³X,—¨¨¨®®.¥R¹oß>OOOKKËiÓ¦‘%årytt´ƒƒ›ÍŽŽŽ–Ëå=;º|ù2—˵±±Ù½{7úÏØ”••5zôh6›ÙÝÝ­3¨ï# _(¾¿ß äñÜb¡ªªªÊÊJ33³Ó§OQUU¥®âïïïÞ=7nÜ¸ØØØ°Ùìôôô†††‹/r8²ðÞ½{/^\__Ïãñ&Nœ¸yóæžÍ›7O,§¥¥!„Z[[ÉŽæÌ™SYYYXXÈårcccuŸ»ûþË«àAß|óͰaÃêëëÕ~Èd2:^^^N–LOOçr¹žžžgΜQWÿ׿þEöòòjll$ƒÙÙÙÞÞÞ=;ºrå AJ¥’ì”ìˆÇã©ær¹:ƒÏÝ Cöã¥_HÖ­[çããóÑGÿeš››•J¥»»;¹ÊårÁýû÷½½½ÕµÆO.ÔÖÖ:99Ñh46{öìšššž]­'zxx ^^^|IyEü022:}úôÕ«W¿ýö[2âàà@§Ó««Ÿ<&ýÞ½{ÎÎÎ#FŒ¸uë–ºÖíÛO?Èb±ÈëA"‘¨°°°g:_ “ „Pee%)PoÁ—J¯^½ò¢ã ÉñãÇɳH®.]ºÔßß¿ººº¬¬lìØ±Û·oÿæ›oØlvfffccã¥K—FEŽŒŒ\²dImmí­[·&Ož¼nÝ:‚ âããÛÛÛ{v„4Æ??¿ªªªââbíÛ·ë >w/ y|y¥üP©T³gÏVW …¡¡¡vvvNNN6lJ¥ …bß¾}\.÷µ×^›:u*y B,¯\¹ÒÆÆÆÎÎ.,,¬³³“Ð儿2©BBB‚››‹ÅŠˆˆJ¥:ƒÏÝ CöÃ@ŸO˜’’d˜¹‘ðù|­ uŸ ùù ”””Ìo€xE怞?úɰaÃÂÃÃû|©?ú ›ÍŽ‹‹ëKð¥üp€ðÀ~8Àghm•P‚aaÐߟS¿™2h¤¦>˜?ßÑÔ”>˜VWW“wú ƒöcï%™°ÙaW¯¦J¥ƒÙ/BÈ`ý0Ðûë”pölAttÊ´i©©S‹¡ó§¤¥ý­°ßÖ³'€OhjzTTT-+ëÕé àDz²nÐé4„JE¤¤”PŽ¡~pjéý^?®]»ÖØØ(NŸ>-‹'NœØÞÞ®×_”êêjëé ±¶¶6ssóäääâââ?ü088ø×_¥0CjÑïïóÛÛÛ;::"„œßyçwÞyçàÁƒ;vìÐk§/„J¥jk{ú𨘘??¿„„rõõ×_ojjúúë¯ß}÷]Ф˜Á›Ðh´5kÖ\¼x‘\mooÿûßÿÎb±\\\¢¢¢ººº ELLÌðáÃííí—/_N^iø|>F#«h.Óh´S§N3ÆÞÞ~Ïž=ßÿýÈ‘#­¬¬¶mÛFËåÑÑÑl6;::Z.—“µÎž=;fÌ[[ÛÿýßÿEM™2!DJŒJKK[¿~½fÚ111'Ož$—úé'òêâää´gÏ„ΜI._¾ÌårmllvïÞII ­Zä.gee=šÍfGFFvwwë þųÓ+ý{ÿ% à¹ÅBUUUš‘’’kkkr9$$ÄßßÿÞ½{<oܸq±±±ûöí;v,Ç+++›:zôöÛo;¹S‹^èÇ?vüxUùŸÿIJI)¶´4-/ßÅdÒ©NÇ €ùǺºä.Ü@I$]¹¹T§c(€OÈɹÓÕ¥@¥¥ýAu:†øñ„´´ët: !¤Tª._.ïìÔÛ'Â_*À„‹¥¹¹ Å“W¶ …ò—_ʨMÉ@?BèÒ¥2ÍÛ4--í:…ùàB¥¦>cƒR©úý÷*¡°“ª| ð=|ØQXÈïygý§ŸnQ’A~  nôüVAçΕP’A~ ÔÔ’ž•Šøã:@DIJ†ÃP÷£®®­¬ìΛÈt:íüùƒŸ’A1Ôýøé§›½½Ã Pð*fP¿k€TU5{y=ýNlSÓ#kksSÓ'ßÎ¥Óé--öö–eG=ðþÜ3p8ââV,XàMu"†ÂP_<à€üp€ðÀ~8Àøà?à€üp€ðÀ~8Àøà?à€üp€ðÀ~8Àøà?à€üp€ðÀ~8Àøà?üûAùùù»víÀ™ª*OGÇFK˪é'¾¾¾Û¶mÀø÷Çš››srr^ÞLMšÔ‚!ªé66œ¹^~Ÿ.%%EÍx¼M˜8Àøà?à€ƒ?$ITTÔÈ‘#ÍÌÌ<<Ÿßó¹Z444,]ºtĈo½õVFFFS0h4ŸÏ§:‹¾B¥¥¥iiiõõõ'OžÌÊÊŠŽŽFUWW³X,LEÍÖÖÖŸ~ú)¦p[[›¹¹yrrrqqñ‡~ü믿¾PªÏMik"ýxæ6†äää¾´imm]XX¨^ÍÏÏ>|8AUUUøêÏ- É?ÿùÏ   ÍHTTÔ¬Y³úX½=ö¥B¨ªªêEì Û&5~ >|ùòå­­­Zq;;;„ƒƒ¹záÂooo333GGÇÝ»wkPŸ¹\¾}ûvWWW‹*‰ÈꎎŽ×®]Ól¿£££®®Ž\‰D+V¬°³³svvÞ¸q£T*%!”˜˜èååecc³wïÞž)Éd²¨¨(6›moo%“ɲ²²8ŽP($â‡~ðððH$Zµ4A=zÔÝÝÝÚÚú«¯¾RïHff¦§§§½½}DDDWW—Î þ¨¾:~üúë¯ÎÎÎ&&&³gÏÞ·o_mm-×ü·‹ÅÆÆÆ«V­‰‰‰¡‡jP/ïÛ·oìØ±<¯¬¬lòäÉQQQAˆD"„yÚtâïïïÞ=7nÜ¸ØØX‚ BK–,‰Dñññ¡¶¶6­+ÁÞ½{/^\__Ïãñ&Nœ¸yóf‚ –/_¾bÅŠ¦¦&‡¢¢"ây×yóæ‰Åâ´´4„Pkk+YxΜ9•••………\.766VgT_?‚P(………_|ñŸqãètúÙ³g‰gkwwwEE…D"Q*•ùùùäeY§£GNOO'ƒwîÜ!—…B!BH}-ÑB&“Ñéôòòrr5==ËåÊËË# ôì‘ //¯ÆÆFr9;;ÛÛÛ› ‘Häââ2~üxõ)ÄûqåÊ‚ ”J¥f<O} ¹\®Î þ¾"~H$’¤¤$…BA®ªTªmÛ¶9;;=kVVÖôéÓ½½½W®\‰ñÃÔÔ´¬¬¬gGW¯^ÕŒ¿ùæ›÷ïßG‘c A<ÏÔÔ” „ÐÝ»wÉ N?LMM5goVVVdü‹/¾ ÓéÍÍÍZ¹õ!TYYÙ³ u2·nÝ255ÕÄX}øAÁë‚ –.]ZVöäÕ4íÝwßU(ZŤRi```tttiié±cÇ0 r8œÚÚZrùæÍ›_~ù%¹¼`Á‚ýû÷`HLL”Ëåæææt:½ººšŒß»wÏÙÙ™\62‹¥ž]ŠD¢ÂÂB„Ðýû÷92kÖ¬7öåè|YN ª¬¬äp8˜à`BË—/ ºxñbuuõµk×¢¢¢‚ƒƒÕ$ B¨»»[&“K¥Ò˜˜„PGG‡f5¡¡¡[·n-/////_·n]]]ÿòË/óóóCCC¯]»ÆãñvìØqèÐ!Ò&“YSSS^^þù矇„„`rV÷¸hÑ¢Ï>û¬®®ŽÇãÍ;÷èÑ£*•jÕªUIII999.\èY+!!áÑ£GøÃ²~ýz>Ÿ_RR²eË–eË–a‚ƒÊÀ^Žú8ÿP(±±±ãÇ7331bħŸ~J^HårùôéÓ-,,Èb°µµuuu=vìXpp0›ÍÖ, ¾†wuuEEEq8++«àà`Í9Gmmí’%K8Ž¥¥å¤I“Ο?¯Þ$ CCCíì윜œ6lØ ~ý¢¾<ËZ)‰Åâ•+WÚØØØÙÙ………uvv>|x„ 2™Œ ˆŒŒ '''¡P¨U«g³šËäŽ$$$¸¹¹±X¬ˆˆ©Tª3ˆ?ªú_øóc)))ä-‡ló•‡Ïç{xxh4A<äç?öÃ7ðþ €ü žaÆ…‡‡÷%8ø€ÔÃf³ãââú|Àøà?à€üp€ÏPTTMu †…^¾?7{öl}4;TW»»¸Ü76–QH(++óõõØ6ØWW×—÷Ë·R)C*5“É^ÊïgûúúN™2e`Ûà÷_^jöí»tðàe77»‚‚Ï©ÎÅP€ùÇSRSKBuum Tçb(€O¸q£^ !„˜LzZÚT§c(€OÈÌ,e0è!¹\™šZ¢RÁ°‹øA¢TªÎ+Q(”äjKKGq1¼ÐEü )(à‹DÕ«L&=#£”Â| ð!„ÒÓKŒ§‡B.Wfe•ÊåJ S2À$“)Ο¿©P¨4ƒbq÷¿ÿ]IUJ†ørs+¤Òn­ ƒAKO‡W1àBééôü΋B¡úùç[¿”7¾«õ âIDATÚ¡î‡DÒ}ùòm¥RÕs“\®Ìɹ=ø)CÝììÛ2™öW÷ÔÀ«˜¡îGff¯¨TD^^…X,Ì| ¡þþœ@ Ò\¦Nݵsç¢Y³^WG­LLôò)ˆ—‚¡»ç$..Ú?HmooéæfGI2ÈP_<à€üp€ðÀ~8Àøà?à€üp€ðÀ~8Àøà?à€üp€ðÀ~8Àøà?à€üp€ðÀ~8Àøà æ÷arrrª« ô¬srrššŠ©ÎBaaaôJPÁ>CˆÉd™P…n(9S”/”ì0™¬Y©ì¢: m’““©:M0ÿp€ðÀ~8Àøà0\?nܸÁ`0RSSÕ‘¬¬,ccã²²2rµ³³sÓ¦M&L°°°˜4iÒîÝ»Ч¿´ßªh4ŸÏ×k@É ú€€€¾Üÿضm›£££H$"¢½½ÃáìÚµ‹Ü$‹½¼¼|}}þùç»w殮¥½þúë~~~ …â¹[õB¨ªªJ-“÷?ôÑòs1h?º»»ÇFÄš5kÞxã ™LFnŠŠŠš1c†æù–H$#FŒˆ‹‹{îV=~ }ôƒ ˆëׯ3Œ¯¾úÊÄĤ¬¬LwttÌÎÎÖ*|ìØ±3fà·VUU©µæ²L&‹ŠŠb³ÙöööQQQ2™ŒÜš““ãêêêãã³jÕ*²dGG‡™™Yii©Vû¡£Gº»»[[[õÕWêö333===ííí#""ºººtñüÀ±yóf„zd!B$!„ZZZ´JØÚÚâ·öæÇÞ½{/^\__Ïãñ&Nœ¸yófrëý×åææþüóÏvvvr¹œ ˆÄÄıcǪT*­öBóæÍ‹Åiii¡ÖÖV²…9sæTVVr¹ÜØØXAü?zE¥R}ðÁt:}Ù²eê i@kk«Vák×®±X,üÖÞüðòòjll$—³³³½½½É­< …BáèèøÛo¿ñÞ{ïíÙ³§gª¡+W®¡T*ɱF³‚ ’““¹\®Î þ Pè‡á¾~!9{öì•+WrssÏ;—••E­­­oÞ¼©UøæÍ›^^^ø­šBãÙHµµµNNN4F£Íž=»¦¦†Œ“Uètú¢E‹ÒÓÓ[[[srrBBBtfËápBZO;ôððP7%0AÄ ýhhhˆŒŒÜ·oŸ¯¯oLLLxxx[[¹)$$dçÎä*B(888))iÏž=ÁÁÁÏÝŠ"_ë>xð@Ýyi!ÿiD"Qaa!g2™äB@@@FFFJJÊôéÓ]\\t&L£ÑzÉ B¨²²’¨· !BÉU«/ã‹J¥š7oÞÌ™3•J%A2™lüøñÁÁÁäÖG=ÚÏÏï—_~¹{÷î–-[Bl6»»»¿µ¥¥!tòäÉG-\¸P}"##—,YR[[{ëÖ­É“'¯[·Nsô!B¡P°Ùl‡Ó§O«ƒñññíííä2Òxý‚4Æ??¿ªªªââbíÛ·ë âÌ?tpæÌ“»wïª#ÅÅÅFFFçÎ#W%ÉÆÇgjjêîî¾uëÖ™3g=wë®]»¬­­ÝÝÝÉ‹,/‹W®\icccggÖÙÙ©åAkÖ¬133‹ÅêHO'4—ÉÜÜÜX,VDD„T*ÕÄ ðc`èîî.((èßÖ¾°eË–¥K—ö½|OÃz â¡ÐWêù„ÆÆÆS¦LéßV<]]] §NJJJêov/%=?5ŠŠŠÞ|óÍU«V½óÎ;}¯5lذððð¾ –Wêú¡?fΜ) _´›ÍŽ‹‹ëKÐ`ë€üp€ðÀ~Jì•!55U¯íÃüÀ~8Àøà?/|>ŸF£é\ø‹ BuÆçóûÝ…¼4~X[[ú駆Üà+ÉKã‹ÅÚ³g!7øJB±çÏŸwvv‰D¡¤¤$OOÏÎÎN•JuäÈ‘1cÆXZZN:5//¼>c®ç?ýô“¹¹¹“““γ~áÂ…ñãÇ›ššŽ5êûï¿GÏ4íÔ©ScÆŒ±··ß³gÏ÷ß?räH++«mÛ¶©Kfee=šÍfGFFvwwk6.—Ë£££Ølvtt´\.ï™ÀåË—¹\®ÍîÝ»{kó¹Q€þnÝ“ï¿<·ØòåËW¬XÑÔÔäààPTTDĉ'ØlvzzzCCÃÅ‹]\\BUUUdk=Äb±±±ñªU«Abb"BèáÇš]H$“¸¸¸ÆÆÆ“'O2 ‰D¢®NB(88X,'$$ „Åbñ‰'B­­­dÉ9sæTVVr¹ÜØØXÍê{÷î]¼xq}}=Ç›8qâæÍ›µö!4oÞ<±Xœ––öÜ6µ‚ø£ ×÷_¨÷C$¹¸¸Œ?^},ÆŽ{æÌuýë_x?º»»+**$‰R©ÌÏÏ' kv! ™Læ×_-‰T*UGG‡R©Ôò£´´” ™L¦µ\UUE–äñxêýâr¹šÕ½¼¼Éåììlooo­}D]¹r… ¥RùÜ6µ‚ø£§o?¨ŸX[[‡……ݾ}{íÚµd¤ººÚÛûéXÆoÁØØ¸²²rîܹo¼ñÆ™3gÔqÚ°±±ÉËË+,,tqq™9sæï¿ÿnd¤½ã–––!&“©µ¬ÆÃÃ\ðòòš›jkkœœÈ¾fÏž]SSÓ3I‡ƒÒêWg›˜Žêý¸ÿþ‘#GfÍšµqãF2âìì|ëÖ-uÛ·oã[J¥ÑÑÑ¥¥¥ÇŽSÇÕÿR©T¥R¥¦¦ …ÂüãóçÏ …/š'ùϪ¬¬$O¶‹¥¾b‰D¢ÂžÕuNžt¶‰éhð¡Ø•JµjÕªˆˆˆ¤¤¤œœœ . „V­Z••ÕÔÔôË/¿lÞ¼ßHww·L&366–J¥111¡ŽŽg9H£ÑæÌ™“––&‹e2“É477ÑTׯ_ÏçóKJJ¶lÙ²lÙ2ÍM‹-úì³Ïêêêx<Þܹs=ŠJHHxôèQ?ÚÄtDúºú2ÿ8|øð„ d2ANNNB¡P&“}ñÅ#GŽ´°°˜:uê?ü€°ó‚ 8`kkëêêzìØ±àà`6›Ý3wwwccc//¯¬¬,­êHcÊÒs™,™àææÆb±"""¤R©fu±X¼råJ;;»°°°ÎÎοҦV_ýùésÑ<” t¶ÙŽ^ýù)`È€ÏgذaáááƒÐ¦>:ú‹èñù¦)))AAAúk@"}~È®ðÀ~8Àøà?zÿþÜ_ùŒ'Ðôú E=Þÿ¸ÿ¾Îw2ÅÅÅeêÔ©zj\~¯0ÿp€ðÀ~8þ¦¾Å\9Ð5ˆIEND®B`‚XQilla-2.3.0/docs/simple-api/classATBooleanOrDerived__inherit__graph.map0000644000151400015140000000060611653571064023163 00000000000000 XQilla-2.3.0/docs/simple-api/ATTimeOrDerived_8hpp__dep__incl.md50000644000151400015140000000004011653571063021244 000000000000007d85ebc6d20f02d9c85b5d175b6a1594XQilla-2.3.0/docs/simple-api/classxercesc_1_1MemBufInputSource__inherit__graph.md50000644000151400015140000000004011653571064025044 0000000000000076492980ec48b66438356c5c23275d4dXQilla-2.3.0/docs/simple-api/classInteractiveDebugger__inherit__graph.map0000644000151400015140000000047111653571064023475 00000000000000 XQilla-2.3.0/docs/simple-api/classDocumentCache-members.html0000644000151400015140000002436411653571063020701 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

DocumentCache Member List

This is the complete list of members for DocumentCache, including all inherited members.
addSchemaLocation(const XMLCh *uri, VectorOfStrings *locations, StaticContext *context, const LocationInfo *location)=0DocumentCache [pure virtual]
createDerivedCache(xercesc::MemoryManager *memMgr) const =0DocumentCache [pure virtual]
g_szUntypedDocumentCache [static]
getAttributeDecl(const XMLCh *attributeUri, const XMLCh *attributeName) const =0DocumentCache [pure virtual]
getComplexTypeInfo(const XMLCh *uri, const XMLCh *typeName) const =0DocumentCache [pure virtual]
getDatatypeValidator(const XMLCh *uri, const XMLCh *typeName) const =0DocumentCache [pure virtual]
getDoPSVI() const =0DocumentCache [pure virtual]
getElementDecl(const XMLCh *elementUri, const XMLCh *elementName) const =0DocumentCache [pure virtual]
getGrammarResolver() const =0DocumentCache [pure virtual]
getSchemaUri(unsigned int id) const =0DocumentCache [pure virtual]
getSchemaUriId(const XMLCh *uri) const =0DocumentCache [pure virtual]
getXMLEntityResolver() const =0DocumentCache [pure virtual]
isTypeDefined(const XMLCh *const uri, const XMLCh *const typeName) const =0DocumentCache [pure virtual]
isTypeOrDerivedFromType(const XMLCh *const uri, const XMLCh *const typeName, const XMLCh *const uriToCheck, const XMLCh *const typeNameToCheck) const =0DocumentCache [pure virtual]
loadDocument(const XMLCh *uri, DynamicContext *context, const QueryPathNode *projection=0)=0DocumentCache [pure virtual]
operator delete(void *p)xercesc::XMemory
operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
operator delete(void *p, void *ptr)xercesc::XMemory
operator new(size_t size)xercesc::XMemory
operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
operator new(size_t size, void *ptr)xercesc::XMemory
parseDocument(xercesc::InputSource &srcToUse, DynamicContext *context, const QueryPathNode *projection=0)=0DocumentCache [pure virtual]
parseDocument(xercesc::InputSource &srcToUse, EventHandler *handler, DynamicContext *context)=0DocumentCache [pure virtual]
setDoPSVI(bool value)=0DocumentCache [pure virtual]
setXMLEntityResolver(xercesc::XMLEntityResolver *const handler)=0DocumentCache [pure virtual]
VALIDATION_LAX enum valueDocumentCache
VALIDATION_SKIP enum valueDocumentCache
VALIDATION_STRICT enum valueDocumentCache
ValidationMode enum nameDocumentCache
XMemory()xercesc::XMemory [inline, protected]
~DocumentCache()DocumentCache [inline, virtual]
XQilla-2.3.0/docs/simple-api/inherit_graph_39.png0000644000151400015140000000264411653571064016475 00000000000000‰PNG  IHDRp(©_é†bKGDÿÿÿ ½§“YIDAThíšKH[€OÌ5QŸy4ÄVER|ldQqSÛÆEQ‚”‹ j©(Š´"tÑG@Ppa°Š-*ˆ´ H A'‚b4­± ª¢£1ɘÓÅ0cbsçZ¼œo5çÏÿŸóÏGÎd2 B0Üò·ø¿…r Ê1X(ÇüÃwuu-,,ü•Vn#A´µµ1#l¡‹ecc#//ﻺ­,--ÅÆÆ²‚l¡€¼¼¼ÑÑÑiévS^^~9ˆ¯¡ƒ…r Ê1X(Ç`¡ŒÐ÷ïßËårÇã@ß½{°vkk‹ÇãýÑ«þKEi4šäääððð´´´öööóóó€üG#T©TîïïFoÄl6ïîî>~ü8`mLLLsss‹úáéÓ§f³y||Ün· LNNjµZ€Íf‰DÜ®`„J¥Ò‚‚潪Á` B&“¬‰D¯_¿bQ?LLL¼zõ*;;[,ñöíÛOŸ><ÏÏŸ?¹]+ A^CÕjõØØØÅÅ •J…ާ¦¦²²²"""d2r‡öìçÏŸïÝ»788èÝ¿—3z½>%%E,744œ1×u»ÝZ­V*•J$­Vëv»QQQ:ÎëŽ ˆ@nn.àÎ;(~ttTSS#‰4Íùù9³±ÅÅEŸ“ÿ1ðw”J¥R©„8<< …óóóÂõõõýý}áññ±@ ¨««ûþýûÐÐàÇV«PRRòåË—••´¨ŸL…B±¹¹i2™RSS[ZZP­ÛÓÓóèÑ#»ÝN’dvvvKK „pvvV.— …ÂÂÂÂÞÞÞoß¾¡df!„°²²²  `{{›$ÉŒŒŒŽŽfcEùœÜ>])BXVVöäÉaww·B¡@A§Ó¹¾¾NQÔÅÅÅüü<Àjµ¢¾I’dždÀLáÈÈHrr2ÓKzzúÞÞ:ž››ËÌÌDÇ4M›L¦ÎÎÎŒŒ >Ÿ¯×ëYB].ŸÏ_[[CCƒÁššÊZîªÉoHèèè¨T*¥i:''§¯¯ÏŸœœÌÏÏÏÌ̬­­ejr¹\¬“¼*Óáp „ÕÕÕ°°0fIXXs{EGGS5<>¾¾¾þôôBHÓtGGÇýû÷ÃÃÓ’’š››ÑÖv»Ýùùù‘‘‘¨öàà ªª*>>^&“=þÜáp°>µ|Nxð÷Ÿ‘Ñ3>ü<ô:øt…¿Ës Ê1X(Ç`¡ƒ…r Ê1X(Ç`¡ƒ…rŒŽ,,,Þ|+·‹ÅB+ÈŠžrc®A—u±¿Ëcþ%øÊ1X(Ç`¡ƒ…rÌ/¬HÓ¾Œ7TIEND®B`‚XQilla-2.3.0/docs/simple-api/inherits.html0000644000151400015140000006564011653571065015352 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

Class Hierarchy

XQilla-2.3.0/docs/simple-api/classReferenceCounted__inherit__graph.png0000644000151400015140000026113711653571064023012 00000000000000‰PNG  IHDRÈ}À7Ç“bKGDÿÿÿ ½§“ IDATxœìÝwXS×ÿðF0aï%YEADÐV묂³­,RG±¢¶j¿U#R+~® ®ÖV­m­Z¡E'ô«µ‚›¡E 2ÙB„ŒûûãÖ4e‰p“(¾_øÜÜÜsÎû†ç!ŽçÞË¢(Š@çh¨;@W€Â€(¬€Â€Zê ,/^\·nºS!„ :tÕªUêN \(¬ ËzòäɹsçüýýÕäu—’’bll¬îJ‡Âº¸¸¸8uGxݨ;€*`5PX0…5PX0…5PXBÈÚµkY,ÖÆå{bbbX-IKKk­É Ë–-ëÑ£‡ÃqqqY½zuCC!$''‡ÅbuøDÚnþÜ“€Ca @(ŠŠ‰‰±··•ïœ0aBqqqqqñ•+W!Åϸ»»·Öä…,Z´èÖ­[‡zøðáž={y<!ÄÈÈ(44”‰ÓjAÛ'ûXÌÌ̬¬¬3gÎøùùegg»ººB8‡Ã!„Bˆ••Õs›¼#GŽ$%%y{{BÌÍÍ·oß>cÆŒï¾ûÎÌ̬óàÏÕöI@g`Æ€ÄÄÄ 6Ì×××ÍÍ­3Э5a±XÑÑÑ={ö411‰ŒŒ$„,^¼xΜ9ô»€ËåÞ¾}›b``°sçÎŠŠ ú­¡C‡¯å`±X¿üòKÏž=ÍÍÍ7nÜxàÀ=zÒ§LLL|óÍ7-,,/^,‰CŠÅbgiiiaaÁãñÄbqk§ÓbÈÖúo·¯Öðº£uB¦L™ÒžÂºí&GŽIII‰ŒŒ ­¬¬œ:ujbb¢D"!„$&&:::zyyB~úé§ääd[[ÛQ£FmÞ¼™®ª›;wîܵk×6nÜvüøñŒŒŒM›6­[·N^‘ïܹóøñãÇŽ;uêT“©îmÛ¶åååݸq#99ùüùóááá­Qk![ì¿ýݼ^(€.Š®wŸ{Xjjª––Vyy9EQ7oÞ$„dff*Àçó›ôÓFBÈ… (Šjll$„ðù|‰Dbee•œœLQÔ¸qã6nÜ(ïG"‘¤¦¦®Y³ÆÃÃCSS3::ºÉp„[·nÉ{SÜæóùô‘òóuvvVlîææV\\LoŸ={ÖËË«µ“j1d‹ý·Ým‹üýýýýýÛ>  ÀŒ5¼îbbb$‰™™‹Åòññ!„\^^~îܹ   BˆP(Œ‰‰!„¼ýöÛ«V­ÊÈÈøòË/—/_Þ|,}}}yoŠÛr...ô†››[aa¡â[ùùùÖÖÖô}?üüüòòòZ;£C¶Öû»x­ °€×šT*ݺukí3K–,‰¥(ªÃM44š~½úûû'$$ÄÅÅ <¸{÷¢¦OŸž™™IÀb±FM¯ÄxQô¼2!$;;›®éåÌÌÌø|>=—VUU•ššÚF?ÍC¶Öÿ u ðú@a ¯µ?þø£´´4((Hï™éÓ§óùü6îëÜ&C† ‘H$kÖ¬™1c½GOOoæÌ™Ó¦M;qâDnnî•+W–-[F/Ú~QŸþyNNÎõë׿üòË>úHñ­É“'‡……dddŒ3fÇŽmôÓýË/¿ôðð 6lØ×_ÝS òõõ7nܘ1cÂÂÂßZ·n¾¾~ß¾}GŒѧOŸˆˆˆ6úi1d‹ý¿P·¯VÿÕðJ‹‹‹›6mÚKòM·råÊüüüèèhûÌÉÉqqqað›„dªÿ€€BH\\\gó¼Üð€åjhh(**úå—_<¨î,­z%B¼ä°@¹®^½Ú¯_¿àààáÇ3Û³Á¼yóéªÅ öð:ÀRè²^ª¥ ¯3,×f¬€Â€(¬ Ëª©iÄ7¨ î ]Ðýû%?üp!>þV·nŽêί ü]Jzú£™31"òúõ¼I“zˆDêN¯ ÖÐEܹóxöì=ãÆm+/ìÛ7çÒ¥°Áƒ-)J¬î\ðºÀRxåUoØpŠ%µ¿¿¿ãmèС Pw ¥ÃbàUuõjnhèïU.\8rþüá[݉െkxõ<}Z·ví±ƒ¯þ毿~booªîD(¬àU“’ò`Ñ¢(‘H²cÇG'z«;ÀßPXÀ+C,–nÝzúûï“ß}×móæ-,ôÕà(¬àÕPZZ²/3³ð믧 P¼Hàe€Â^—/óçÏßojªwæÌR'' uÇh/»#Gnívw·=rdªjxi¡°€—Ú/¿ü±paÔìÙƒûmž±±®ºã´ KAàåyêÛoÏ®X1nÑ"_ugxÖð’Ú²%é»ïÎmÙ2íÃßVw€çCa /£o¿=ûí·gwíšùÞ{}Ô ]PXÀKçÀ+›6ŠˆðGU ¯\¼/—3gî|ùå¡åËÇ Tw€€Â^"—/gÏ»oÖ¬A‹ãjExŰ(ŠRwBÉÍ-ûàƒoûô±Û¿®–¦~àƒÂ^ µµ |ð­¶¶æáËôôtÔà…áâEP?‰D6wî¾úzñáà QUÀ+ …5¨ßúõÇ®_Ï;zt1ž­¯.Ö f ·~üñâÖ­º»Ûª; @ÇáÒP§û÷K–-‹ýä“¡Ó¦½¥î,‚‹@mjkFÞbggrðà| –ºãt f¬@mx¼ØúúÆï¿ÿU5tXc êwýرôýû?17×Ww °5xô¨ò«¯Í™3Ä×·#ž;w.77—‘®@•BBBÔ€1Xc ª&•Ê&Nü®¾¾ñäÉ/Ølf¦x~ÿýwFºUB] ÖX€ªýðÃ…;w wîœÁTUMó÷÷§àÕËàOàe€ÂT*;»dóæ¤%KF»ºZ©; “PX€êÈdÔ²eqo¾i½`Áug`.^ÕùùçKéé“’–jiafºü^)(¨ˆˆ8ùÙg#{ö´Vwæ¡°Ù¸ñ„¥¥Áâžê X ªpéÒýÄÄÛ„t릭î,JkP:‰D¶zõ‘‘#{ŽÙSÝY!díÚµ,kãÆò=111¬–¤¥¥µÖä…°X¬œœœÖö(ŽÈáp $·y[¡PÈãñúô飯¯ß¿ÿ 6H$’G”spp˜9sfYYY;Óæää°XzÈ|ç{x¡°¥‹‰¹š›[¶jÕêB!EÅÄÄØÛÛ+ÞGy„ ÅÅÅÅÅÅW®\!„?ãîîÞZf]¹r…1##ÃÅÅeÚ´iTKON©­­íׯßõë×#""nÞ¼íçç'•J[ë³°°pïÞ½555ÞÞÞÕÕÕí cddÚÙSxý`)(W]]ã¦M§>úè—äÆÕ™™™YYYgΜñóóËÎÎvuu%„p8‡C„++«ç6a–¹¹9=¨••Udd¤¥¥eYY™……E“ÃÖ¬Ycnnžœœ¬©©Iquu=z´‡‡ÇÞ½{?ùä“Öú´µµ>|øðá÷mÛöÿ÷Ï cffÖá¹y€×f¬@¹vïþ_CƒxéÒÑêò·˜˜˜aÆùúúº¹¹µsºµ&,+::ºgÏž&&&‘‘‘„ŋϙ3‡~W p¹ÜÛ·o¿hBmmm6›mhhØü­¨¨¨ððpºª¦éêêòx¼¨¨(zõErr²½½ýåË—›4d±XóçÏ?qâýR,óxŸßä˱&„ .PÕØØHáóù‰ÄÊÊ*99™¢¨qãÆmܸQ~$ŸÏWìVqO“¯f==½¿þú«ù‘UUU„²²²&'•’’bffF'ÏÈÈhmÄëׯÑÛnnnÅÅÅôöÙ³g½¼¼›Ë?¡P¨««{íÚ5Š¢>üðð°°Öš»ººîÛ·O>ÖþýûŸ[cТ´} À«k¬@Yjjöì¹´h‘¯GÝYþ#‘HÌÌÌä{bcc=<<:ÜÄÆÆ†¢­ý÷=555'Ož|øðaOOÏsçÎíÞ½[ÞŠR( ©fÅ4ŸÏwvv&„ÔÕÕ…‡‡§¤¤49ÆÈÈÈÊÊ*--Í×÷_÷OKKóññ¡·ÝÜÜZ;>ŸïääDoççç[[ÿó˜ù²“&͹\î„ âãã{õêuìØ1ù²–æÍ§Ò===[‹Ð…a)(ËÏ?_ÔÒÒüøã!êò7©T»uëÖÚg–,YÛ¼Ìm ¦ß¤þþþ qqqƒîÞ½;½ÓÞÞ^ñ–yYYYZZZvvvÍGär¹³gϾ{÷n‹©‚‚‚Ö¬Y£x¡P1fÌú¥¼Äo‚¢¨]»v?ž~IÏpÓslUUU©©©­5 Œ?zô¨‹‹KkÍÒÓÓå­îÞ½Ûb €® …5(…P(úùçK³f ârÙêÎò·?þø£´´4((Hï™éÓ§óù|Å›Fw¾É!C$Éš5kf̘!ß9{öìE‹?~š9sfóUÔ4ƒÚÚZúþ$M„‡‡—––Ž92))‰Ïç'$$¼ýöÛ¶¶¶ ,h~pYYYIIÉãÇ/^¼8iÒ¤¼¼<ù•ˆ“'O +((ÈÈÈ3fÌŽ;Z;Q£FUUU­^½:88X¾³yóùóçóx¼ÄÄÄ’’’¤¤$ù¢m€×‹:ÖŸ@×·ÿŸËJKkT3\{ÖXÏ›7oÔ¨QŠ{d2™““Shh¨|O“5Öm7!ÿ^'-ßž?>‡Ã©©ùçÜÅbqddä›o¾Ù­[7GGÇ•+W …Bù»äßë¡¥R©A^^^‹ï ‚¥K—zxxp¹\ww÷uëÖÕÕÕ5O®ø]oggôäÉù»555ü±±±±©©iHHˆP(TlÞ¤«===@ÐFs‰D²iÓ&ggg]]ÝÒSà-þä°ÆºÕúÿt؈‘}úØmÛ¨šá!qqqª®m+W®ÌÏÏŽŽVw—Z\\\kÏÁxEáâE`Þ¥K÷ïß/Ù¹sÆóíZŠŠŠ~ùå—ƒª; ¨ÖXóöìùãí·ÝܬŸh×rõêÕ~ýú>\ÝY@Õ0c +*ª>>ëûï?Rw56lXee¥ºS€z`ÆwÍÄDwüø>ê R(¬€IEÅÅ]ÿàƒ¾ZZøŠ€× ~ë“nÝ*ÈÏ/÷÷ï§î ª†Â˜täÈmKOÏž)е¡°ÆH¥²cÇnOšä­î j€»‚c®_Ï+-­ýàƒ¾ªš¢Xäÿøãª:ææÍ›êŽÀ0ÖÀ˜¤¤LWW+GGsû¿ÿÝ»}Û¢¼¼lÞ¼y*@…50&99kìØÞªñîÝÇÿýï‘ÔÔÜÀÀ!K—®³´4TåèŠPX3òóË<(õõí¥šá„BÑÆ'ýõÏ^½lúì­·U3.@kPX3ΟÏ22âúø8¨`¬+Wr–,‰yú´>22Àß¿¿†Kƒ´ …50ãâÅûƒ¹hj*÷~SèË/ãããoŒßç믧š™é)u8€öCa HdW®ä|õÕûJåÞ½â9sö–—×nÙ2-0p€RÇxQ(¬€wî …¢œ”7Äñãé_|q°oß7bctïn¬¼:…50 %å™™ž««¥2:‹¥+Wúí·Ô°°ñŸ~:‚ÅŠjx¡°ܺUàãã Œ’·²R¸paÔõëy»vÍ|ÿ}/Æû` k`@ZÚÃ3Þa¼Û¢¢êiÓv‰ÅÒcÇ>ws³f¼)÷Úmx”— ?®êÓÇŽÙnïÝ+7n«ŽŽªjx% °€ÎJOÄb±˜-¬ïÞ}°ÓÎÎäСÏÌÍõì@IPX@geeÙØq™êðÞ½âiÓv½ñ†iTTˆ¡!cÝ(ÖX@g=xPêädÁToEEÕAA?º¹Yïßÿ‰®®SÝ(f¬ ³rsËœœÌ骬¬vêÔ66FÌEU ¯ÖÐYyye=z0PX …¢Y³~ÖÔÔØ¿ÿ‡ÝùT KA SjjêËË/¬%Ùüùû‹ŠªŽýÜÄD—‘lª„Â:%7·ŒÒÉ¥ E}ñÅÁë×óÙÛ›2 @¥PX@§äå•kkkvïnÒ™N¾ýölbâ­={‚{ö´a*€Š¡°€NÉÏ/ïÞÝDK«ãí\¸po󿤝¿žêççÎ`0ÃÅ‹Ð)Ož<µ¶6ìpóüüò ~ ¨Œ'¢¨ kè”ÊJ¡©©^ÇÚÖ×7Ι³·G³µk'1› @õPX@§TTLM;x/îÉ“§?ÿü1›¥‰ðÊÃ/2蔊 ¡‰IGf¬û-51ñöo¿Í³µ5f<€êaÆ:¥c3Öáá óæ 2ÄU©T3ÖÐq2U]]÷¢k¬e2jáÂ(ggË+Æ·x@\\Ü´iÓ˜]¿¿\\œºS´ …5tÜÓ§uR©ìE”¸oß匌G§N-iû&}¨Ÿ ‰­[·ª;@[PX@ÇÕÔ4Bôõ9ío’Ÿ_¾~ýñÏ>Ù«×sžãïïß©pÐåüþûïêŽÐ¬±€Ž‹¥„6[³ÇSÅãžñ†é_ŒRf.5ÀŒ5tœX,!„hk·÷Û$**åÚµ¼'¾ÐÖno-ðªÀŒ5t=cÝÎç™WU ׯ?>{ö`[%çPÖÐqÏ–‚´kÆzóæÓŽöòåc• @=PX@ÇÑ…u{Öuäå•EE]YºtŒ®®Žòs¨ kè¸öÖ7žtt4 |›ñ k×®e±X7n”‰aµ$--Mñ¥±±q@@@YYã‘ÚÖZ†œœ‹¥Œ…B!ÇëÓ§¾¾~ÿþý7lØ ‘HÚæàà0sæÌö8¯¼ÓPÖÐqÏÖX?§°¾q#ïØ±´/¿|OS“ábbbìíícccå;'L˜P\\\\\|åÊBHñ3îîî„+W®={¶°°pÑ¢EL%‰ŒŒ|óÍ7 g̘QWW'ëÁƒ†††999ò=-f022 e$Œ¢ÚÚÚ~ýú]¿~=""âæÍ›aaaÑÑÑ~~~R©´ùÁt°Â½{÷ÖÔÔx{{WWW·g%…xÅPuéÒ}këÿTU Û>ÌßÇ„ ÛÛß-]%·çÈôôt‹uöìYBÈýû÷›¼Ëçó›ôCáóùò——.]244l°6lÛ¶­wïÞ·nÝJOO÷ññáñxôþ††Åq•—¡EË–-2dˆD"‘ï?ýôS“#›“ÉdC‡ W^6EÍXÍùûûûûû«&@`Æ:޾lQ$ja]Ü•+9—/óW­ú@bbb† æëëëææ¦8iÝNšššôöñãÇûöíËår­­­å KŽ;æééÙ­[7GGÇÐ;Åb1dz´´´°°àñxb±˜²}ûöo¾ù¦oß¾žžž “'O¦ }ë­·Ú“Aq-‹ÅŠŽŽîÙ³§‰‰Idddk é&ÉÉÉöööÞÞÞsæÌ¡\.÷öíÛ„¨¨¨ððpMÍþWAWW—ÇãEEE)6¿|ùr“`,kþüù'Nœhí¬›ïÛ·?qâÄ%K–ÐMD"‘±±1ÝCóæR©tÓ¦M®®®úúúƒ ºzõê üä^Nê®ìàvëVµõ>¬hã˜éÓð÷ßñBݶsÆZ&“õèÑc÷îÝE­\¹ÒÝݽÉ-ÎX§¥¥ÕÖÖÖÔÔÜ»woøðákÖ¬¡(ª¦¦†ÍfFEEBJKKŽŽÎ?üP\\¼gÏ---@@QTDDÄ”)S>|˜‘‘áíí½bÅ záÇ7ß|ãäädll|¸¨¨èĉ666Ïý¡cÆ^r(¬ ãþúë±µõrrž´vÀ;…ÖÖÿ9wî¯ê¶…ujjª––Vyy9EQ7oÞ$„dff*Ðba­ÈÀÀ€.%E"QVV–@ J¥/^¤KÌÊÊJmmíÍ›7WUUÉd²ÚÚZ©TJQ”››[qq1ÝáÙ³g½¼¼ !&Làóù÷îÝ:tèìÙ³óóó»wïþ×_Qÿ^eÑZ†&…õ… (Šjll¤Û¶˜n’‘‘AQ”D"±²²JNN¦(jܸq7n¤(ªµÂ:%%ÅÌÌL±9Õl)õïºùY+6—‡ …ººº×®]£(êÃ? k­¹««ë¾}ûäcíß¿…5¼êðäEè¸ç.ùé§‹®®V#F¸)cô˜˜‰Dbff&ßëááÑv+>ŸïììL©««ûæ›oFŒQPPÀf³³³³çÎ+úöíKill|áÂ…o¾ùfõêÕÞÞÞaaacÇŽ%„äçç[[[Ë;444466&„üðÃVVV„õë×O˜0!;;{ùòåvvvôd°P(‰D:::­eh’“žÁÕÖÖ¦_¶˜æææFÑÔÔœ³dÉ’ØØXªÙ”pk¸\îܹs=zTZZZ__ÀãñnݺµsçNú€úúz™Löûï¿WVVΙ3çý÷߯¬¬$„Ðs½ôUUUUjjªžžž¹¹9=»Lgãp8W¯^]¼x±¾¾¾¾¾>!ÄËËkåÊ•mdhò–†Æ¿¾£[LH“ßþþþ qqqƒîÞ½;½3((hÍš5Š÷ …cÆŒiÒ¼ Š¢víÚ5~üxúeó³n­y```||üÑ£G}||\\\Zkîààžž.ou÷îÝc¼BPX@ÇÑ…uccË…õWôõ»Mžì£Œ¡ÿøãÒÒÒ   ½g¦OŸÎçóéžm(+++)))))yøðaDD„¹¹¹H$jlld³Ùõõõ«W¯&„ÔÖÖ²X¬Q£F:t¨¦¦¦±±Q[[›ËåB&OžVPP‘‘1f̘;v°X¬>ŸçÎ7}útÅqBø|þæÍ›ÛÈÐvì69†¾ûÇš5kf̘!ß^ZZ:räȤ¤$>ŸŸðöÛoÛÚÚ.X° µçñãÇ/^œ4iR^^žüJÄægÝZÔQ£FUUU­^½:88X¾³yóùóçóx¼ÄÄÄ’’’¤¤¤ððð¶?€W€Jž@×R[Û`mýŸó糚¿%•ʼ½ÿŸ¸ IDAT»~ý±tÛž5ÖóæÍ5j”â™Læää*ßÓök OOÏÔÔTú­­[·š˜˜ØÙÙíܹ300ЂNâääÄf³ÝÜÜé#kjj>þøccccSSÓ¡PHQ”H$Z¸p¡¥¥¥µµõÒ¥Këë뛌ÛâkÅ MÖX7¿=_ó„ÍOpþüù§¦¦Fq§@ Xºt©‡‡—Ëuww_·n]]]]óÏG1˜]PPГ'ÿ¬žo~ÖŠÍ›t¢§§G_ëÙZs‰D²iÓ&ggg]]ÝÒSàMÌÿ†5Öð’cQíþ/3€æÞxcÙ¶mͧ¥/^¼øÃŸ~Ù£Çsæb›‹‹‹›6m¾¡:`åÊ•ùùùÑÑÑꢄ¸¸8uh.^€N16æVW×5ßÃË˾U5tLCCCQQÑ/¿ürðàAugxMa5tŠ‘‘nUUÓÂZ(:•1uj?µDz=]½zµ_¿~ÁÁÁÇWw€×f¬ SŒŒZ˜±NJÊ‹¥&ôm± (ðaÃè›–€º`Æ:¥Å¥ G¦ âjjª§–HjÂ:ÅȈ[U%TÜS_ßxéÒý÷ß÷j­ @—„Â:¥ùŒujjnc£ôÝw{ª+€Z °€N177()yª¸çÿ»çæfea¡¯®HjÂ:ÅÊʰ´´F*•É÷\¸…éjx ¡°€N±²2”Hd/³.(¨ÈÉ)>üMõ¦P=Ün:ÅÊÊ€òäÉSzíGjêƒnÝ´û÷wì|Ï,ë…Ž×ÑqèÖÍééÓäÎ /-uGh kè++CBHIÉÓÞ½»BnÞÌïÓÇNG§Sß/|¡ÇVçäÔœ8ñ0/¯ÖËËdúôOØlÍÎŒ/³îÝ»«;@«PX@§p8lŽüúÅôôGï¼ãÜÉ>íìììììÚsäÝ»×­;vñâý¡CßܹóOÏvµPÖÐYVV†OžÔBD"ɽ{Åóç¿«‚A…BÑÖ­§þùR¯^6qq vUÁ m@a eccTXXIùë¯"±Xêå¥ÜicŠ¢âão¬_L&£6ož6uj¿]   (¬ ³L³²Š !ii 8fÊ«¨¨zÅŠß““³¦Ní·jÕffxj:¼,PX@gÙÙ™ž>}—r÷îc[åÍ'%e.]kjªÿÙÀNJ cPX@gÙÛ›ùd¯¿¿£G£ª€—f¬€öö&÷ï—hjjг×'KCC¿¾qãÔ  Œô  T(¬€NNYYÅææúŒ\VXW׸paÔ… Y;vÌxÿ}¯Îw X  pv¶(-­eä®ÒB¡((hwjêƒßÿU5¼B0c pr²¨©©35íÞÉ~jk¦OÿáÑ£ÊÄÄÅ..–ŒdP ÖÀGGs™Œâp´;ÓImmÃôé» «âã:;[0• @5PX-X,BHÇŸ¹ØÐ Þ“—W»U5¼ŠPXôôt444¥k.“Q‹GÿõWq|ü§={Ú0› @5PX3X,R[[ß±¶+Vü~þ|V|üg¨ªàՅ˜AQ¤¢B؆?ü𿃯þòK°——=ã©T·ÛP%“Qeeµ/Ú0!áÖÚµGÃÃ?ðósWF0•Aa hl”RU[[_Só«AòòÊV¬ø=(hÀܹÔ— @5PXéÊÚÙD ÍœùsÏž66LUZ.ÕAa hhB´µ5<(mg/¶ªJ¸k× --|@W€‹€2™ŒbmmÔÎÂ:::åøñôƒçY[)9€Š °°X,BˆM» ëG*W¯>2oÞðÁƒ]™ °víÚK—.1Õ¨ÌÙ³gÕ€1(¬€tammmxÿ~IÛGRõŸÿüæèh¾bÅxdffÞ»woàÀ ö JõèÑ£ÔÔTu§` k`€†‹bkk|êT¦LFÑ/[tà@Êù'O~ÁøÒêÆÅÅ1Û'(O\\Ü´iÓÔ€I¸^ Ÿ±nhU·vØãÇUë× îîn«Âtª€Â@OQ[YBÚXf½víQSS½%KF©.€ª °°ÙZô¿ÆÆº­Ö·n;–¾jÕ[µéT…50€ÃÑ&„Ô×7:9Y´øŒŠ¢V­:´f¬€††œÚÚ3MM ÅÕ þÉÿ믢ŋ}Õ˜MQLL̰aÃ|}}ÝÜÜ'­ÛISSÓ‚ޮ®®ž={¶™™Y÷îÝ—-[ÖÐÐÐÚN9±XÌãñ,---,,x<žX,&„?~¼oß¾\.×ÚÚZ^ѲX¬èèèž={š˜˜DFFÒ;£¢¢ÂÃÃ骚¦««Ëãñ¢¢¢èÕÉÉÉööö—/_n›ÅbÍŸ?ÿĉ­ÅPl¾oß>z!Çĉ—,YB7‰DÆÆÆtÍ›K¥ÒM›6¹ººêëë4èêÕ«/úÁt(¬€œ§OëÙl­îÝ ëÝ»ÿ7p “|[½èu „)S¦´³° … ¶¶öþýû+W®œ1c½áÂ…………×®];uêÔéÓ§#""ZÛ)·mÛ¶¼¼¼7n$''Ÿ?><<¼¶¶vÊ”)ÞÞÞ|>óæÍaaaòÅÐGŽIII‰ŒŒ ­¬¬¬®®.))ñòòjÏËËëÞ½{ôö–-[öïßß·oßægáââòàÁƒÖb´Ø<00ðСCEBNŸ>ÍårGÝbóíÛ·oÞ¼9""";;{åʕ˗/oÏ ÐÕPL Ù²¢¨  Ý FÑ;>¬°µýâĉteîïïïïïÿÜÃRSSµ´´ÊËË)Šºyó&!$33Sñ>Ÿßä˱É÷¦ŸÏ§(ª±±QSSóÎ;ôa‡vvvnq§bŸnnnÅÅÅôöÙ³g½¼¼D"QVV–@ J¥/^$„ÐýB.\¸@Dשׁª"„”••59©””333z”ŒŒ ylº¹ëׯµC±¹<°P(ÔÕÕ½víEQ~øaXXXkÍ]]]÷íÛ'kÿþýÏ­1è¿jÚ>àÕ‚5ÖÀ ÎÇ„''‹7òè^57×5ÊC­Ñþ#‘HÌÌÌä{bcc=<žÏç;;;Bêêê¾ùæ›#F³dÉ’ØØXªÙ´tk¸\îܹs=zTZZjii©©©™››K¿õàÁ[[Ûw*ö@O-Ó“[UUU©©©õõõ<ïÖ­[;wîTF€®ê¥øM]½Æšâèh^SÓPU%LIyP\\íïß_ÝÑþöÇ”––é=3}út>ŸŸ––Övò²²’’’’’’‡FDDØÙÙ™››kkkO›6mñâÅyyywîÜùꫯ‚‚‚ZÜ©ØÕäɓà222ÆŒ³cÇ‘HÔØØÈf³ëëëW¯^M©­­m-IxxxiiéÈ‘#“’’ø|~BBÂÛo¿mkk»`Á‚Öb?~üøâÅ‹“&MÊËË“_‰ØþxO^Þ&MM '§åß~´jÕáyó†/\8R£BâââT00"..nÚ´i¨C +ÁR`†™™!¤¼¼VKKÃÚÚ(%%§¢B0zôËrÙ"€²¡°f˜šêB**„{{Ó[· Í]\,Õ @EPX3躼œ.¬MòóËGŽì¥îPªƒÂ˜¡¯ßMGG‹.¬MMõ„ÂÆÁƒ]Ô @uPXcLMõè¥ õõ„PýúõPw"ÕAa Œ13Ó§ 뢢§„‘H¬îDªƒÂcfö÷Œunn)!¤¨¨Z݉T…50ÆÔT¯¼¼¶±QòàA)‹Å*)yªîDªƒÂcf¦WQ!¼¿D,–qPXÀkEKÝ ë /^ÌÌ,ärÙ66FÅÅ*-¬/]ºäççGo …ºººBUŽ/êÉ“'êŽÀ0ÖÀSS½²²Ú¿þ*rs³65Õ+.VÝëBd2R^Î),Ô¯«ÓîÛ·TWWO¾¼ŒÝÜÜÔ€I(¬€1¦¦z âììK­œœR• <Ÿ¢zíßÿ§@ øÉ'CßxÃTe£ÖÀ 33=BHnnùàÁ®b±4%å D?þø¿Ÿ¾$Kƒ‚Ì;ÌÖÖXã4ÂC?Õ¼¤¤ºG³òrAU•rW9‹D’ýûÿüî»s"‘8$døÜ¹C ¹J  (¬€1ôŒµLFõèa.•ʪ«ë(Šb±XŒ$I~þùâ®]Äbéâž³f ÖÓÓa|€‚ÂÃá°ut´E"±½½iE…@"‘ "}ýnÌŽò¿ÿÝ[¹òð£Go-Y2ÚÆÆˆÙþ:…50IW—MQ”A7##.!¤ªJÈ`a]ZZ»zuBbâíaÃÞö§O/íÙÓ†¡˜ÌCa L’ɽ„Åbq¹l@Ôᮊ‹«/޾v-oÕªæÌ¢Œ»‹0…50I&“‰ÅRz[GGK$êàCÅn……ýnjªìØçžžvÌPÖÀ$±XÒØ(¡·ut´$/ÚEQ[·žÞºõÌ{ïõÙ´)ÀÀ€ÃtF¥@a Lª¯‹D™ŒÒÐ`u`ƺ®®ñóÏ;{öîæÍ”@PXc(Šª¯S%4ptt´¥íoþèQåÇ難:´ÐÇç ååP u€®C Éd2òì.{ݺ½ÀŒuVVÑl§(rò䨪àU„ÂSSSÿl£¼Èë””“&}ߣ‡YBÂBkk<¢^I(¬€1t=M!ZZšbñó ë«WsgÎüiÐ çƒçãRExu¡°Æ44ü½ð£¾^L‘H¤ÚÚšm7¹|9;0ð‡±c{ÿøãlú‘¯(ÖÀùŠêº:!D"‘iiµUX_¿žüËÈ‘½¶lùPS_IðjÃo1`ŒH$!„hkkÊg¬µ´Zý¢yð töì=o½å¸sçŒçNl¼üPXcèk.W§®®‘"K[›±./|ôÑo¼aúã³QU@×€ÂÓÐ a±XݺiÓ‹­[[c-‘È>ýôW‹uàÀ\.—­ò˜JËD€1"‘˜ÍÖÔÒÒJeäïëfp¾úêPzú£“'¿05ÕSyFeAa Œihëèhkh°(Š"„H¥²æ3ÖG¦ýúë•ï¿ÿÈÉÉ‚©qsssÏ;ÇTo JŽŽŽ¾¾¾êNÀ ÖÀ˜ÆFI·nZ,Öß…õÓ§õzzÝ(.®^±â÷Ù³MžìÃà¸7nܘ7oƒ‚Êøûû£°†.…50¦¡AÜ­ƒ%“QR©¬¦¦ÞÄDWþ.EQŸ~ÐÄDwÕª”1:]ÍÃ+$ @ݘ„ÂÓÐ ÑÑÑ’Hd2U]]'“QÆÆÿÖqq×SSss8¸`º ÜÓØ(‘?=±ªªŽbjúwaýäÉÓÕ«,áãó†Úò( k`ŒH$ÖÑÑnl”°ÙZ••Bˆ|)Ȇ ' ¹Ÿî§Ö€J„¥ À‘HÒ­›VCƒ¸[7­ÊJ!!„^ ’™YxèÐ;gâ®ÕÐ…aÆCßnž·®ªêéé°ÙZ„µkõéc÷þû}Ô@‰0c Œ‰$::Zô¿……Uffú„k×r/_Î>th!‹ÅRw@%ÂŒ50F$³ÙZb±TGG;7·¬G3BÈ·ßž<Øeà@'u§ûÛÚµkY,ÖÆå{bbbX-IKKS|éàà0sæÌ²²2¦’ääätì ¡PÈãñúô飯¯ß¿ÿ 6H$’æ‡u&|‡³1ØÀ+…50¦¾^¬­­EÑÕÕÉÍ-ëÑÃ<#ãÑ… ÷>ûl¤º£ý¢¨˜˜{{ûØØXùÎ &_¹r…RüŒ»»;!äÊ•+ÅÅÅ………{÷î­©©ñöö®®®îp€ÜÜ\333zÛÈÈ(44ôE{¨­­íׯßõë×#""nÞ¼íçç'•J›ÜáðËðšCa Œ©­­g³5!¦¦ºyye=z˜íÜy¡O»aÃÞTw´¿efffeeíÙ³'---;;›ÞÉáp¬¬¬¬¬¬ÌÍÍ !VÏhkkBÌÍÍ­¬¬lmmß}÷Ý„„GGÇmÛ¶u8€L&«¨¨ ·ÍÌÌ'ÎÛiÍš5æææÉÉÉcÆŒquu €ÇãݺukçÎmtkii©©©™››K¿|ðà­­-½M¯YW´fÍÅ{€…ˆˆˆ1cÆ(ŽþÜðfff|>Ÿ¢(Š¢ªªªè5*-6 Œ?zô¨‹‹KkÍÒÓÓå­îÞ½ÛÆ)tI(¬€ôë²2ƒƒÙõëyOžÔøû÷Ww¨üñÇ¥¥¥AAAzÏLŸ>Ïç§¥¥µÝ°¬¬¬¤¤äñãÇ/^œ4iR^^}1Ÿ‘‘!ä×_­©©Ù¾}{ó†"‘¨±±‘Íf××ׯ^½šR[[K¿%ÔÖÖž6mÚâÅ‹óòòîܹóÕW_µ–'<<¼´´täÈ‘III|>?!!áí·ß¶µµ]°`AûÃB&OžVPP‘‘1f̘;v´6â¨Q£ªªªV¯^,ßÙ¼ùüùóy<^bbbIIIRR’|Ñ6Àë…50ƒž±~ò¤ÚȈ[]]§¥¥ùò\¶H‰‰‰9r¤………|···““Ós/a|çw¬­­»wï>cÆ ==½›7oÒ«&ÌÌÌÖ­[·téRooïÙ³g7ohdd´eË–   777‡ÀÀÀ1cÆ888 ñàu€kø›ŸŸŸº#€š={¶ÃmsrJ555tt´ëêDX¯#Öð·sçÎ 0ÀÎÎNÝA@ =z”ššÚ™23q¹låA| IDAT‹¥©©1dˆ SÁ^È?þø¢Md2ÒÐ år5•‘ž+77×ÑÑQÝ)ƒÂþñÅ_ÐBƒ× ýäÂÎô‘ñ¸®N,“I{÷îÎf«çËeÞ¼yí<’ÅÒd³í»usîÖÍI$*¨®>¥Ô`ÐÖЕ °df>’J¥„É“}T?z@@@{þ& EçÏg<™qþ|–@ òö¶;ÖsÜ8O3„€.…5tVAAEmm›­ÙØ(}ï=/uÇiª¦¦áôéÌ“'3.^¼/KtZ±büر½­¬ Õ ºÖÐY))9,‹¥66F66/ËöêêÏœ¹“˜xûÂ…{E öæ† SFò01ÑUw4èšPX@g]¼xŸ¢ˆ†ëexà¢@ :u*ãøñô‹ïkjjŒïùÓO³‡ qíÖM[ÝÑ ‹Ca uéÒ}‹%“QãÇ÷QW±Xzñâý£GoŸ>}G(½ý¶ãÿýßÄ÷Þëcjª§®HðºÁbà…­]»–ÅbmܸQq§@ X¶lY=8Ž‹‹ËêÕ«!111¬–¤¥¥±X,Š¢ääää°X¬vÆhûàíÐé>Gvvöøñã­¬¬&Nœ˜žž®ŒQ^f%%O«ªê(Š21Ñíß¿‡êܾýð«¯{{ÿ78xO^^7öæÍÕ‡-œ5kªjP%ÌXÀ‹¡(*&&ÆÞÞ>66vÅŠòý‹-*((8tè]VVÖâÅ‹+++¿ûî» &BòòòÞyçz›bjjJ‰ýðÕõÊ•+=z0\çåææ¾õÖ[åååôËG½óÎ;“'O>þ7‰íߙҭ›öرžJùë¥Ewï>މ¹vòdFIÉÓÁƒ]ÂÃ?=ÚÃÀ€£²M °€“™™™••uæÌ??¿ììlWWWzÿ‘#G’’’¼½½ !æææÛ·oŸ1cÆwß}Çáp8!D B¬¬¬{›7oÞgŸ}6|øð&ûannÎx·2™¬¢¢BþrýúõƒÞ½{7=Þ·oßšššˆˆˆýû÷3;îs“¨Q|üMBˆH$;¶· †«­mHL¼ãúõp1+«håÊÃýû¯Yµê°••áþýŸÜ¸ñßÕ«' ª€—@QEBbccÛ>F&“õèÑc÷îÝE­\¹ÒÝÝ]þÖéÓ§mmmuttüüü6mÚ”ŸŸß¤-ŸÏoò;‡Âçó³³³9ÎÞ½{›4räÈdddxxxü÷¿ÿݺu«……ÅáÇ‹ŠŠNœ8accC1eÊ”‡fddx{{¯X±‚î<--­öߨgëXd2EQ‰‰‰666b±¸N¦NZUUõÓO?B***644hhh”””Ð/› Ôþ>[<’hìØ±çÏŸ/..f³ÙÁÁÁ………QQQ„ÒÒÒ&ŸgóK±@ÐöO–þ©ícZ´~ýqkëÿxx|õé§¿v y{…¢ß~K?~›µõ† ÛøóÏŸ>­SÒXÁ¢šÍ4÷ã?ª;Bäèèèëë«îÿ`±X±±±m?¾îêÕ«ƒ.))155½uë–Off¦‡‡ý®T*½qãÆ™3gâââ²²²~ýõ×éÓ§ËÛæä丸¸(þÎa±X|>ßÙÙyûöí«V­ºsçŽH$¢‹Å'==ÝÝÝ’°|ùr /¿ürÖ¬Ytó_ýuÖ¬YEõìÙóÂ… ôÜí¹sçx<ÞíÛ·[¼T‘¢¨ºº: ‹ .ôïß?00°G6l „´ÖÉ… †.‹Ùl6]ªÊÏ¢¨¨ÈÖÖ¶¶¶VOO>ÅÚß§³³só#ÿýw—ŒŒŒÞ½{766æææÚÙÙq8œË—/6¬I’?®S§NÉ{xîOŸ~¤y¾œCëêÄ„Pqq v}Ñæm (êòe~TTÊ™3w´´4'Mòþ裞žv À,¬±þöî;¬‰óø{IXagà`)nÑÚâGµ X­Šˆ¨‚¢þlQœ *A¤ nÄ…Š EÙÈ2î÷ÇÙ4 |?OŸ>—ã}ßûÞå¼|syï}!¾xyy :„ÈÅÅeH%ÖüHHH`0 ÿÎÿL"‘ÆŽÛÚÚšššêââ2iÒ¤I“&íܹ300pÛ¶mœ‰u76lØœœ¼fÍš¨¨(lMMM “ÉÔ××Ç^TTT bnþï¬~¦¦_†L.))QUUe¯—–þ2–³rm‹H$.X° ))iôèÑ©©©¯_¿î¾쾸PC «¨¨ˆŠŠXXX€’鯯F99¹Þ¶É«¤±±1@XX8??íÚµ Û—.g äáÃmm ’ýÛ„Ng&'gÅÆ>ÊÉ)×ÓSôóûÞÕÕ ÎêAÐÐûXCü걓Ô+...‚~K{Éd’H¤C‡±;<¼øÝwUU±·?àäô{¯*rùûïO?ÿü‡¦ææ1c¸Q[Ûò5­A |xâ ?µA½‚ÌÄÄD^X,4=ýï'¨ªJÿþû€ß}ð]þ¶õöáź:Š©é."Q¤­–à=cƨ>lôÓ§¦ÈÈ›/¾ÐÔ”óô´us³îC;AC|x‚†œ––véytô½êê&66}IY h@-]z`b¢J§3ûU75µýþû˜˜ MM¹'VΙ3‡]!ö`b ACH^Þ§cÇî^¹’ Ê`°°•õõ”~Ü™Lmllkjúò_cc[SS+¶,&fÒ‚F°¬¬’·o+%%E²³ËŽ]Þ«ºdrûï¿ß‰ÍPR’úí7~0ƒ½¨!1`b A‚Ç`°nÜÈ9~üÞë×eŽRcÛº¯Îb¡ì,¹¹™3cÆþkå|Ébýû[?‡ÈÈedˆ²²Dii"‚À ÄOÏsKKââºyóLù¬…¢èÅ‹/÷ï¿J£16ož³zµµ¨èŽXA4øàç(ÔoxÍÇÑïÊÏÏÿõ×_Ÿ}ú18xÀWŽüüêíÛ“^¼(^¹rÚ¶mßq{A#L¬¡þôäÉ]]Ýþm³¨¨hâĉuuuØËòòò©S§:99ݽ{kmm™™9zôèþÝn‘|¥övBU•øøñA &“;™æÔÖÖ±zuŒ‚‚„´4QZZLF†(--¦¯¯$##†­QQ‘VR’Â^Â[€Ð€¢Ó™~~‰CC¥††VÉ=Viiiß»7åÏ?3§N5|ð`»žžâÀ‡ A$0±†ú“¢¢"6's?b±Xõõõì—¡¡¡Ó§O?qâvƒÜ‚L&‡‡‡Ÿ;w®·Ûc$_㯿^½y£@§ãèè±)Š¢YYJJÒý²iú›7'´·Óut23‹ÎœYÕã‡iiï.‘Éí!!Î+VLÅá`wj‚F2ø64à.\¸yófl™F£ÉÊÊ^»v @§Ó}}}••••””|}}ét:Aøøx99¹ˆˆÀäÉ“ì|===}Ó¦MœÝN"##ÙíóÙf—% IOO×ÒÒzôèÑÕ«W-,,ˆD¢ªªjXXXçHššš~üñG ­[·¶··sµÐÍ1Y´ÈrâÄj3³ÚmÛ¾›0AG""|¸¸¸øåË—éééwïÞeÏ¢wùòå§OŸFDDøùù544`“€`sæÑh´¢¢¢1cÆ`%±MˆŠŠêëëckøl³›’ÓÒ’_¾|êòåS Vvvéƒ<ȧR;¾¦Mþ…„„œ:ujp¶ )555ÝüõÕ«’¸¸g D¢ˆ‰‰š··]—ÅRR²wìH:ÞsÖ¬½›‰K¡áëСC‚‚ú&ÖÐ`pww÷ññ177?~¼¡¡!¶RAAáÞ½{X"ÞÔÔÄîbÃñì¡„ÃáfÍšuòäÉèèhöJÎ{Wü·É«$–|S©TWW×ÄÄDGGGËU]YYÇa£‘|üøQ]]³…¯G à&LÐ0AwË–¹ýÒ`\\\gCÐ$++Ëë;!ƒÁúñÇ3(Šêë+UW7'&þܹ·tuuóÖ­¤>x{ÛmÙ2gpF§gìˆtñâEA‡A}k¨?ÕÖÖJHHp®Áõspphll `ÿÉÉÉÉßß?22²¹¹ÙÓÓÓÊÊê÷ßçÕ2…BÁZ 6mš”””‡‡‹ÅºråJJJ ;—å¿ÍÎ%}||Ø¥ÑhÂÂÂT*5((ÐÒÒ"))ÉŽDHHÈÍÍmÓ¦M§Njmmݹs§‡‡GŸÛïÿA]Ú´)¾®Ž"%%VTT{öìO:: \®^}³cG‘(rá‚×ôéF ‚ h(€/BýiêÔ©ªÿ…­vqq©ªªZ¼x1»pHHˆ¤¤¤……ÅÌ™3ÍÌÌØÿqÑÑÑ™>}:»)33³ŒŒŒ¬¬,kkkww÷ÆÆÆ‡²±æ³ÍKÊÈÈÖA·nÜ¿ÿ‡C¤¤ˆW®lÒÖ–ohhݹ3ÙÆ&,'§":zÅ0ʪ÷îÝ‹ 6*&!!éJvv6‚ ………œÕ;¯ág³²²²®®®µµµl~֯ߩÎZ[[}}}ÍÌÌ$%%­¬¬öíÛÇ`t1c+g`:::+V¬ÀãÇ×?p»ACL¬!‚ ÿ¸}ûíá÷D¢ÈŸzÊÉI„†^µ² NOÿ;*jYF†¿££¹ c䊢 ZZZœãr.X° ªªªªªêÉ“'€ª°guíOž<©ªªúôéSZZZEEÅÆ222~~~ý¸LKKË„ ^¼xž••åïï?{öl&“É+°ŠŠŠØØX2™liiÙÔÔÄÏV(xI`W‚ è_……5«VÅ$$DI¤uoÞ”/_~ª­æã3{ÍšD¢° ìÜÜܼ¼¼Û·oÏž=;??ßÈÈ &&&&& P(àŸQAû¢¢"Ö²ªªjxx¸££#@AAóÞy VTTLOOÇãñ##£9sæŒ;666vÍš5¼SWW·µµµµµ=|ø06®h÷(xIàk‚ è‹æfê¬Y‘(ŠJJŠ._>eõêÿ$GGó§OwnÚd?ì²j@BB‚½½½±±ñ×O„N§Ó}}}••••””|}}étzJJŠººzcc#àÂ… FFF­­­+âñx%%%ðß¾‚ÄÇÇ›˜˜ÈÉÉEDD`+¯^½jaaA$UUU±,«’žž®¥¥eiiùÓO?a%) ‘HÄæ²‹‹Û½{7–UcÄÅÅ}}}ãââ8«?zôˆ+0A¼½½¯]»Æk9«Ÿ={ ~áÂ…›7oƪÐh4YYY¬…ÎÕ™L挌Œ$%%§M›öìÙ³¯| hˆƒ‰5At:süø=t:CXßÞθpáÙ²e“_½Ú´PVV\ÐÑõÖÄÝÝàììÌgbÝÚÚJáÀù§Ã‡¿|ù2==ýîÝ»»wïž?¾½½ý¯¿þZSSó믿ÆÅʼn‹‹s¶ÓÒÒòáÇ€€€åË—wÞÖåË—Ÿ>}áçç×ÐÐÐÒÒâììliiYPPéïïÏî}ðàÁsçÎ…††^¹rë<}åÊ===ssslîXssîþ9æææïß¿ç¬naaÑ9CCÃ?òÚÁ.«»»»_ºt îðÖ­[D"qΜ9]Vÿí·ß"##ÃÃÃóóó¶mÛÆÏ[Aà A|H$AG1¢¸¸¸¸¸¸: ú—¾þvUÕ_TU±´ ÞÞÞ¾¾¾W®\©®®¾yó&»Ó6X‚N- ‘ƒNg¦¤¼vu=¦¡±ÙÄdÇÎÉoÞ” :(ú&Ö^^^œkX,–¾¾¾ŸŸ{M—}¬¹º s®!“É«V­’•••——÷ôôlmmýý÷ßÍÌÌ:::Pý믿TUUÐÿö±Æáp¦¦¦™™™h§>Öì–Ùˇ’““ÓÔÔÅÄÄ\¸pAб@Ô˜XC}ñ÷ߟΞ}”’’ÝÚJ›7Ï46ö'[[c!!|Ï5!ê' Ïüü.²X(“ÉÂãqÉÉYXb~ýÈ‘4EEÉn|üøÙÊJwË–9?ü`&**tìØÝ­[IL& Gbb~š=»?'ñ†Ú³gÏ-Z´nÝ:[[[AÇAP`b õBk+í¯¿^ÅÅ=ÍÉ)×Ô”Û¸q–³óiAÇAß:¹cGR||&(€ÉdݹówyyÃúõç_¾,ÔÖ¶ØÙŸ9³ÊÈH…ÅB/_~"dÜ IDATq£¦¦¹£ƒ¢@BBôÚµ_ •½+PïØØØ444: ‚x‚‰5Ä—ŒŒü¸¸§iiï˜LÖܹã~˜6͇ëãUõYyyêUgòó±qÐþídÌ`0¦M e0Xì5d2ÕÈH%==oß¾Ôª%$D±¬ÚÙÙòС¥ð'&‚ ~k¨;õõ”„„g$ÒóÂÂÏ&&ªÁÁ‹ͤ¥‰‚Ž ‚¾Q|ðò:×ÖÖÁ™@cP0ÿy˜ïöíwŽŽÿËÊ*ÕÒ’CQ@&S |d¤›««Õ †ÜŸZZÚ++ËË=ªÁã%A7˜XC]`2Ywïæ%%½¼uë-€srµÌÔTSÐqAз‹ÅB¾uøðml¹sœ7°±b?Ö‰Âåå(Šêé)&%­}·jjÈ••••••M åå ØrssV@LŒ@ È 6H‚ Î`b ýGEEã¹s““³ªªš¬¬tCBœ,°”t\ôMknn[¿>îþý÷]¦ÔÝhjj …„,Z¶lÊÀD×Gdr{IImii}M ¹¦†\VV_ZZ_ZZÏΞ‰Da 9ee)mmù‰uµ´ä••¥”•¥ÕÔdþúë’›[¤`㇠ê &ÖÐéÌ›7sãâž>~\ -M\ºt²‹Ë##AÇ {'OžtÃ^m-íÂ…Š††Ž¾U74TNJZ¯¨(Ù¿Qñ‰ÅBËËjjš9Sg,“f'ÐRRb:: ÚÚòÖÖF‹Ka™´¶¶<ìuAаëo]II]||æÅ‹Ïkk)Ó§FG¯˜3g¬°0<1 þáåå%è†7aa ii[NîÉÆ a~n`·´´BVÍ`°*+9Rç/™tUUsG€Ã!ššrØ]gSSM,uÆ^òš×‚ hØùÓ7ª­­#99 8OMMfùò©NNãuu4‘H$l*5¨¿$&&._þ«¦ær*µ£ÇÙ««›_¼(¶²Òí—M·´´w×CLLXSóKÿ3Œ8ûoôû8$&™\\\õL¬¿9¹¹çÏ?IIyÝÖÖñÝw¦?Lj€Çsß ƒ hÈz÷®QNΩ­Ægùª{•X£(ZV6¤ûoL™2Ny=‚ihh:ê#˜X+ššÚ’’^&%½ÌÉ)×֖߸Ñ~ñâ ÊÊÃ`|‚8µ¶ÒÚi´¢¢£ø¬RPPÝåúáÛCSSSSŽSAÐëEÑG ââžÞ¾ýAÅ‹'/œ0AÎíAÔ¸¸H[‹ÿ¬ZNNœÅ99åÝôßÂÒe®þªªÒð‰ ‚ þÁ+æˆUWG!‘ž]¸ð¬¨¨vôhµ½{æÏ7—’t\}•ºº–ׯë@@‚tß͇CΞ}tæÌC€^MMF]]vÔ({ûѲêê_þA_ ^IGƒuãFNRÒËû÷ß -²s¦ÉâÅàÜ.ÐPƒ ?ãX£(:vìX …"''÷úõë¾m«ËFŠŠŠ&NœXWW×·6uuu‘‘‘¼’u*•ÚÜÜ (..ž:ujUU¶^^^^Hh ¾Ù&&&º¹¹±¯Þd25+«ôÕ«’—/K²²J(‡ µ·wæÌûÓEAq‚IØðÓÚJûë¯WØÜ.²6Ìtr¯ª*#è¸ ¨ïrssóòònß¾={öìüü|##£þj„ÅbÕ×÷й{ ÝÜP(€ŠŠÊ×l«o¤¤ÄììŒíìŒ,ZPPóêUÉ‹%Ïž•”ÔUT4~HAß&Ød8yþ¼hÛ¶DKË=—´µåI¤u™™»Ö¯Ÿ³jh¸KHH°±±±··766&‘Hìõ‚ÄÇÇ›˜˜ÈÉÉEDD6mÚôÓO_î¿R("‘Ⱦ9Ýe#“'OùnSSÓ?þ¨   ¡¡±uëÖöövl+111&&&ŠŠŠaaaçÏŸ×ÕÕ•––Þµkàè Â`0µ´´W¬XÑÔÔÔÍu'ÖÔ•+WF¥¤¤´iÓ& Óé¾¾¾ÊÊÊJJJ¾¾¾t:½ÏG‡CFRqwŸ|èÐ’Çwäå…††:õ¹5‚ ¨wPhÈ«¯§DEݱ± SUýeÊ”¨¨;55dAA|H¤î˰X,]]Ý'N (0fÌÎê‹/nllqâ ®®ŽÝÂÆŒ““““››;iÒ¤­[·rî׆ºŒ+ãààŸŸŸ™™i``€îìì\VV–““cii¹}ûöîöµ¡‡CA :xiºX,ÖÇ<=ÏjkoÕ×ßæëKzó¦LÐAAPïð“Xgff„ºº:E³²²¹¹¹ìê÷îÝCQ´££PPPÀ`0TTTÒÓÓQ7o^XXX÷pæ»x<þíÛ·ØËäädl+¯^½bo…s¹  €Ý¨Q£’““±ºÿý7{ÕXw'V&''+C"‘°Œ«ªª°•iiiæææÝ1˜XC M°õPTYÙ˜ð,9ùUqqí¸q!!Nóç[HI‰ :. CAA½†D";[VSS°ÄãñNNNÉÉɦ¦¦wîÜÁî+÷ئ¦¦†Édêëëc/ ***°eIIIöV8—9•––bË&&&&&&Ýì¯8ìFŒ±JJJTUUÙ¤¥¥»i‚ ²`ë!„Á`açMžræLÆÌ™&7on¾uk˲eS`V TL&“D":t¨å›7oÆnrcp8îË”‹‹Ë_ý•˜˜8}út ~Á(++ãñø¢¢"ìåÇÕÕÕùUMM­¤¤[ÎÎÎ í¾|ç81Ø}k@~~>öµAAA¡  »ÛÑØØ˜™™ÉTAÐÐëU\\ËO±’’ºÐЫVVAÞÞŽ[þúuÐÞ½‹àŒ‰Ðˆ—‘‘ñùóg‰,]º´   ›q ­­­ FppðòåËùl²CHHÈÍÍmÓ¦MÅÅÅo߾ݹs§‡‡ÿ¡._¾< àíÛ·o߾ݰaCiii÷å;ljñññ),,|ñâÅŽ;–-[prrò÷÷/--ÍÉÉ™;wîÑ£Gù ‚ :`b=€ÒÓó"_¾,æU€J툋{º`ÁoÓ¦í#‘ž-^l•‘ñenØKú&$$$Ìš5KII‰½ÆÒÒR__Ÿsl.X/ 2™ìììÜc#:::Ó§Ogw´ˆŠŠRSS³²²rpppppð÷÷ç?T‡9sæLŸ>]KK ¥¤ãÄxxxØÛÛÏ›7oîܹX!!!’’’3gÎ433 ç?*^X,ôÇê 2#"n|}kA?à1%6öÑ®]É( /žpäÈR®¿¾{WyîÜã””ì¶6Úwß™.^<ÁÖÖXH/P!hàð9ALo”””ÄÇÇ÷o³ýŽ+ÎÂÂBCCï¿êrMÃÆž)æùó⬬’¶¶€¥¥ÎÕ«>_¹E‚ ˆð¶hÿ£Ó™Û¶]¼xñ9‹…._~¼PZš Ph—/™ÛEKK~ãÆYÎÎTTàƒJįöööOŸ>ÅÄÄ\¸pAбtgpâìè`dg—½xQœ™YôúuiCC+‚O§3±x<¢««Ð}#AP‰u?#“ÛW­:óâE–UPMN~e` ÷ôöí·,:w€¦M3ÄáÁF AÃγgÏ-Z´nÝ:[[[AÇÒ.ã”’’òòòúÊ–›šÚòòš$%'/XðÛÛ·T*GPe±E;«àñxuu8AÐ ‰uª¨h\²$º¬¬žÁ`±W2¬ýû¯Q(íZZò>>³ÝÜ&‰¡oA{;½¤¤—ìßfmllú·ÍÐeœJJJÇÿÊ–™LVII ‘hùâEñ?kxö-a±PuuÙ¯Ü"AÄ'˜X÷›ìì2d2Édqý‰Biß¿ñòåSá-jhäAQ´¬¬¡¬¬¾´´¾´´ž½ÐÜÜ MàÔÒBoo/X¸ÐåéÓ¢¶¶ŽÎ×6ƒ“ñìY‘ºº,öŸ††¬††¬¸¸È` Aô€‰uÿHIy½aC“‰vùX’>/¯ fÕÐÐØØZRR_RRW\\[RRW\\WZZWWG ¢ª*­««0v¬º££™ŽŽ‚ŽŽÂ¸qº‚y¤‘•%ÖÕµ‰cnßþ›ŸòZZòd2õï¿?UV6¶´´c+edˆXž­©)§®.«®.ƒ½TV–ÈØ!‚F88*H?8xðæ¡C·»?’D¢pNÎ^"QxТ‚ ¯Á`°*+óó«óó«Ù·¢?}jÂú‹èë+ikËkiÉkkËkkË)++wñî ò;|86"" A¸ç†äeþ|‹ãÇWètæ§OM55Í55döo 55䊊l€´4{O•”¤TT¤°·XGGAJJl ö‚ h¤€w¬¿ ‹…îÙsùôé zø~ÒÖÖqãF޳ó„Á ‚øG¥vÔpöâàÌ¡%%Euuµµå'NÔ52RÁR.l”H Z[i÷ïWÑéŸEE5Y,ž@8Éɉc BBxìì\¦¹¹gci÷‹ÅX Ž!¨¨H³¿J))Ia/54dñx8%A\‰õƒBBBʰÃb!š--RP Š¢ÝuöؾýäñãüÎF1cÆŒ]»võG˜ÃÃÐ<÷ÒÒÒB?km¥}üø™3‡ÎϯfgNÊÊRXê##¿¢¢ëÛ-$„—“WV–fÿ‚¡¬,¥¬,¥¯¯4˜=¹‡æ5âÇ·öyÇeïÞ½>tß®;wÚØØôcƒÿI¬kjjîܹ3ı:Èdy!!ª¢"€Ã1àpLÏÅ–±ÿ_– ¾Z~÷î¬ì·õ ?v¸:/ÊËË333ÅW!“ÛKJj?|¨Îϯáz A--9,„:==½©©i Zþ46Ò©TöŸç7 ZZžLœ¸öãÇÚÓkEìíMú€ˆ;=¬­ÿ³žNg64P°<ûŸ´›œ‘‘îÜg …†•Áz•`y6gÚ­¤$… ýüÌÉP»†@|zúôé·öyÇ%77÷ýû÷S¦Lt ߢ‹/®]»¶Ûì¢+H```ÿnê­   A‡ ‰‰‰‚á lf;AGÁ/®^œ94‡hjÊiiÉ›šj,^Yqqÿu»ØNJJTGGÑÈHÊuI]]65ÕÇß?‰DzŽ¢€k”O<Çb±8»ÞHI‰nßþÃo¿¥‰Š KHˆÔ×·DFÞ¸};—DZ7,Î+A°nÜãÇëpý©¥¥ýÓ§¦²²úÊʦÊÊÆÊÊÆÂÂV˜‚‚ è_0±† ~ed䇆¦æäT`£öb½]Z)š„÷°b ­¨èßí°Ñ9°ÎÐö 0‡†zED„pèÐ’)Sô·n%¡(ÊyëšÉd«ñömÅ?+OOÛœ¶dÉijgGEÝmkkÏÉ©°°Œ‰YmkÛ÷¡BNRRtÔ(•Q£þíÙ’˜˜øä M€!Aúòüµ‡9sælذ¡°°°›ò(І††~÷Ýw} ²Ô×ׇ„„,Y²ä»ï¾óööÎÈÈH•••vvvÙô€ H÷'Ûyò¤ð‡þçæý÷ߟØð½lyyŸrrÊ/^|zÕËëÜܹ‡LLŒŒ¶Ï{hݺ?ââž––Ö¥²aÃÌ'VÞ¼¹ùýû}OŸî$‘ÖED¸®_?ËÑÑÜÔTfÕÿ\\¬®^ýEIIŠ@ø·W½ººìíÛ[Ξ]óÏJôĉÛ¶%æä”{yÙ<~¼ÃÕÕ ‡CDE íí “ÜTü·wï^AÂÂÂØk®dgg#âââÂùnaaa &Ðç¦Z[[}}}ÍÌÌ$%%­¬¬öíÛÇèjÔ××ß¹s‡D"õ=̯F&“׬Y3uêÔÀÀ@"‘øìÙ³½{÷†††ZYY}eËUUUÞÞÞW®\é—8{…Ln¿~ý‰²²Ôào]°ŠŠŠ&NœXW׋n}“]’úäI!–¬tîÛŠ `áÂß°Ï\yy yCCåÙ³Çèê*èè(èè(°'½ƒ ~4nœÆõë›==c³²J™L–ÁÑÑ àà0&9yýÒ¥'mlŒllŒ/^|±páïúúJ ZxzÚxxL ¸ôìYŠ¢‡ßzöìcBº¯ánØAQ4!!AKK‹D"mß¾[¹`Á‚ªª*@qqñÔ©S±e€¼¼< ))‰D"-Y²„Ÿö{¼:q‘‘ñóóëí.´´´Lœ8QYY9<<\OOïíÛ·»víJKK»sçÏýó“'Otuu™Lf~~þ‘#G,--ssseddzÜJßbƒNNÝ^½ûü|°Âs¯G}L¬eddääärrrÞÞÞ‹-jnnæu°h4@II©ÏQ~½ØØX ___쥶¶vCC‰DúúÄšÅb‘É䯰h4FZÚ»K—^¦§ÿÍ`°îß÷ûk‹U__? › d½½Ï¥¦fãp8ƒÑu÷Mïèhîåe«­­Gƒ“’’dRÒ†}ûROœx@§3æÏ·ÀÖO˜ {ùòFALLT—-›òúuYRÒËØØG¿ývgæL“õëgyxLÞ¹3™Lnò¤ÐÒ20#c‡´´˜`÷e0åæææååݾ}{öìÙùùùFFF111111…B¨¨ügø//¯õë×ÛÚÚr­ïRW'Î œwù¬¨¨˜žžŽ¥2FFFsæÌ;vlllìš5k¸ +**ba«««ÛÚÚÚÚÚ>|˜ŸÙú4púpêöêÝç烞{=ê‡x<ž@ ˆ‹¹-Ç`0Ž?¾hÑ¢E‹?~œÁ`üüóÏ'''^°Þ¯^½rssËÍÍí\`ggwçΕ+WΟ??!!Àd2cccÝÜÜ.\¸ÿ~ì”ê²}ÀÇ9Ã^¹rå¶mÛ°e …¶`Á—èè莎ΜËÃèqïX,VBBÂòåËçÍ›·aƼ¼¼¾gƒuÿþûãLLvxyMK{׫‘F˜É“'Ž+N÷õõUVVVRRòõõ¥ÓéAbbbLLLÃÂÂΟ?¯««+--Ýãܹ55ä >**.OIÉ:~tF$ §³jhð¸Ý»œ<¹ÒÄDÕÌìß!5FV31QÅ–-,´BC^¿:yòÇŽÆÊ•§Âï¯X1mæLcuu”ñペš¨ÚHHH°±±±··766æó§Ô_ýÕØØØÓÓ³ó¸ìMMM?þø£‚‚‚††ÆÖ­[ÛÛÛ¹®NW¯^µ°° ‰ªªªX®ÀY€óëÎM‰711‘““‹ˆˆÀJÆÅÅíÞ½›ó¡¸¸¸¯¯o\\Ö`zzº––Ö£G¸¢EÄÛÛûÚµkØËÎWNÎêgÏžÅb[¸páæÍ›±*4MVVk¡su&“yàÀ###IIÉiÓ¦={öŒŸÃ ñ©§.'®w¿û3ðø`…ç^ú˜X···S©T*•Z__æÌ™Ù³g aJJJªªª:qâÄÁƒ_½z{ìØ1@rr2¯ØúÄÄÄíÛ·ò*ðèÑ££Gzyy8q¢¥¥%))éáÇû÷ï?|øpyyy\\¯ö)JCCƒ––ç.ˆ‰‰±o¢9r¤¶¶öøñãááá/^¼¸páB7ûÎF{wéÒ%‰äééyþüùåË—?~¼W‡šÁ`¥¥½Û¸1ÎØØßÃãdJJv{;Eû2OÄH‚Í7^]]½<|øpqqñË—/ÓÓÓïÞ½»{÷nlý;wž?æïïõêÕœœœ„„„tÿ¥\YYjî\ÆÆ6̲¶6Ânæ!êüSÎ,,üÜÿ{A|ûþ{³ÔÔ_ºïP($„Ÿ3gl|¼WVÖž•+§ýõWÖ½{ïGVµµÑÌÌvÕÔ4ZÀ„ý˜îîîpvvæ3;ÁãñgÏž½sçιsç¸þ´aÃ†ŠŠŠçϟ߸qãÖ­[áááœW§––gggKKË‚‚‚ÈÈHÿÚÚZ®ËW7Maë/_¾üôéÓˆˆ??¿†††¦¦¦êêjsss®êæææï߿ǖ?gfç÷ž{üècb½fÍšyóæÍ›7oñâÅ·oßæœüùÆ>>>JJJzzz^^^ÏŸ?çªË«€§§§………¨¨(¯ .”ÀŽ)™L¾víÚêÕ«õôôtuuýüüÆŒë}ì-áõ©Ã`0îÞ½»qãFUUU==½U«V¥¥¥u³ï\aô¸w)))ÞÞÞÖÖÖòòò“&MòôôäïƒçÏ‹¶mK3&`åÊÓ))Ùmm(вç'ƒ8ÅÆÆFEEijjŽ7.<<üæÍ/OeùúúJJJ®X±°}ûvIIÉU«V»oPVV¤½½`ÇŽÖååí{þ|÷éÓ«½½ífÌ0”• "&&„uN-*‚‰5$`D¢0Ÿ%••¥Ö¯Ÿ•™¹ëÂo==%&δ´ *,äkŽôaíùóçåååØ˜NNNïÞ½{ûö-? ÃÂÂ|||ÊËËÙ+étzBB‘#GôôôÆ̾ŃyóæÍo¿ý¦ªªª©© hnîú L7M­_¿^FFfåÊ•€††^âp8&óËDxx¸û—d^x]9¹ª;::Ö×׿|ùpáÂ…•+W„.«?~<""bÑ¢EªªªóæÍÛ¿÷@üëó©Û%~ÎL^§GgðÜãÔÇ>ÖqqqêêêqôèQìOÕÕÕœ.:\^Øw”yPPP`ÇPSS£¡¡-kkkkkkóª.)))++[ZZÊN¾ïß¿ÿßÿþwäÈ2™Ìb±ÔÔÔ°õêêê\®rýöÇF{Ç`0 Økôôôº¬ÈÖØØÞРTV¦´páïëïÑM>½eK‘È=ÖÛ°SSSƒÃõ½+EII ö4-FZZ[””`?§p.÷–††¬††ìwßÃ^VW7çæVää”gg—gg—ÕÖRZ[iââÃþ]€¾8bmh/l£ IDATmdmmôáCõ¹sãâž0,›°3gVÏ;NÐÑ  „„ƒ]Æ1$iìØ±üÔݰaCrròš5k¢¢¢°5555L&S__{i``PQQÁYEXX8??íÚµ ¥Ë{xlÝ4…}<±¯]222***ÙÙÙööÿ™š*;;{üøñز±±1¯ °·ÂëÊÉUH$.X° ))iôèÑ©©©¯_¿æU½££ƒóv¦©©i7» õÊלºlìwŸŸ3³óû Ï=~|í8Ö"""sçνzõ*Š¢Ø-aiiéÇci7Öƒ« ¯ìT•W®[ÎòòòÕÕÕººº€ÂÂÂÌÌÌeË–ñª>mÚ4‰Än$--Á`ˆˆˆÈÊÊâp¸ªª*,5ÿôéûÄe2™x<žë Ùîoí¼õÝ»wüø‘ódêþ¶·3P´cÄHJŠIJûÞ½--®Ù.zEAAáÞ½{Øì·ªþ ­gp8)hø5Jeß>ç;ÝÝ£_¼(Y½:ÆÌLÓ×÷;;;ã‘7P“É$‘H‡Z»v-¶&00D"ó³³8.66vܸq'OžÄÖ(++ãñø¢¢¢Ñ£G>~üˆ]üÙ¨Tª««kbb¢££#Fc÷l쬛¦°ç§9yxxÛÙÙ±;§µ¶¶†‡‡ûøø`/yÝA@Q4::úûï¿Ç^òºrv®îîîîããcnn>~üxCCC^ÕœœÞ¼ycff†x÷î¯ý…zå+O] ç»ÏÏ™ÙåéϽõÃ1âââmmmT*•H$¬­­O:µnݺÖÖÖÈÈHccc®§ûP`Ó¦M·ëààpúôi¬—ý‘#Gtttº©þÓO?­\¹rß¾} .ËÈÈHNNÆ~) vvv¿ýöö°È™3gìíí%$$·oß¶±±a÷Ÿî•JÅËí¼õùóçGGG‹‹‹›˜˜ÆÄÄtß”ªª„¼|±1ëСW®¼:þIYYûÖug{ö,02êùAõ!.11ñÆ^Oî@¡P°wÊÉÉÉßß?22²¹¹ÙÓÓÓÊÊê÷ßïÇð**ss+rs+²²JrrÊ››©‚àñö¦()IÂÛÕаF$ _¹âœrüø½7o*–-;¥£#¿zµõòåSEDFÎ?gf—¬ðÜëQ?\1‰D"™LÆëŸ~ú)**jíÚµ‚̘1ÃËË‹ëŽo t¹]ööv___ì)lv±.«ËÈÈœ>>8ÎÙÙ™ýÐOŸ56ÒDE ÷í»úêUinnEKK;‚<þ߯7(Š2_n±ëé)åæ h(ؽ{~UUó•+¯²²Ä  +§O?ôò²]²d¢˜¿}¸‡²„„„Y³fqŽýjii©¯¯O"‘øL¬^^^ÉÉÉìGq¢¢¢|||¬¬¬„……—,YâïïO ØW'™ƒzxxˆ‹‹ûûû»»»Ï;·²²’óòÅÖ¹)^1HIIeeeúúúéê꺻»oÞ¼YD¤‹oøS§NÅ455g̘‘••ÅþÙ½ó•óÓ§O]nQXXØÅÅåÏ?ÿ\¼x1{eçê"""[·n­ªª255ýóÏ?ÙŸ³Ð×èó©ËëÝççÌìòƒž{=B8;'&&º¹¹Ý»wO ¡@lAAAŠŠŠ‰‰‰œ+ Ö£GùýõêÚµ7Tj€Ç:^ß¿ï72îX»¹¹uÊJ jjÈÞÞGŸ=«‡  û „„ðnn#"\+:XŽŽG²²J?ÿ<«µµDz.--¶eËÜ%K& å©d†Ô5⟫«+€ëó!B"‘°· ¿ Ý«$Ä…@ÀÙÚ9²ôÝ»Ð'~œ9Ód(È kÊÊRîîúŸ?ÇzxLÁáÎY£»D¡Ð²²Jëë)ƒ ¨””Mššr€èèt ÙÌÌ]³gÙ±#iÖ¬ˆ[·ú> Aз`ätžûvˆˆ~øÁì‡̰)Í¥¥‰‚Žhdb2[pÝ´ÉþÈ‘´„„gx<žNgt.F§³RS³/_~’ÕÖV`Of®££ «« ¬,=è±CPß!rÿþv3³ÝJû¾}ׄ„®>>³Iû駘qã4vîœ?mšAÏ A}{`b=ŒII‰.Y2IÐQŒpššr‘‘n^^¶7®_ÏÁãqú¸£·oûª©I—–Ö—–Ö—•ÕøP}ÿþ‡’’Gdr;@H¯¦&£¥%¯­-¯­--*ŒN«Ðˆ$&&ôðáv+«`&“tEX˜ðãÓ""\'„„¤¸ºûþ{Ó={ª©É:R‚ ¡&ÖÔ3CCåS§~|ÿ¾*2ò湎=²8‚ ::òbb¦¦DSSMÎZÍÍmìl[ÈÈÈ/-ý2飴4ÑÈHyÔ(v¶­§§$!G†éøxOw÷ã(Š\’“#Οo1i’^JŠÏ¹ûö]µ± Û¼yÎÚµ6°OAL¬!ˆ_ÆÆª§O¯zü¸pÿþ«¯^•b#´ÈÊyÝ{––&vζÉdjIIW¶]^Þ€ÍQ/-MdߨÆÒnE)©a?N94͘1Ê×w^DÄu!!dãÆx⌣™7ÏÔÁaìÙ³""®Ÿ?ÿdÿþÅ66£,AÐkâÆ`°˜Lžc L›fpõê/wïæíßíÝ»J]]^%»$%%fjªÉ•mwt0ªªš±n$ùùÕ¥¥õ99åL& ü7Ûæ\èÛÞAÿ~ùeö½{y/_KJŠ®[w>-m+Öýƒ@À­Y3ÃÞ~ôŽ—–.=±lÙ”ÀÀüO«A4RÁÄ‚¸¡(zî\¾²²§M˜¦¦œ²²´ªª´¢¢¤ªª´¢¢”ªª´¼¼ÄÌ™&vvÆ·n½Íϯùú- °ŒÙÚÚˆ½’Ng~úÔľ±]VVŸ–ö®¨è36–¶””˜ŽŽW¶­©)‡Ã´Ùò ÁJNÞ0vì®ææ6yyqOϳÉÉ„…¿|pèè(üù§WJJö®]É~ˆŒ\j„ èkâ&$„_¹ÒèùóçÄ‚‚Ááp,Êb}™AiiQ99 55uu¹nÌœ9züxí~ãŸlûß•³íŒŒü˜˜*µ ,LPU•ÖÒ’72Ra÷ÞÖÐÅãa/X¨ðx\jê&[Ûð††ÖövúîÝ……¹p˜?ßÜÖÖ8$$ÅÅ娣£yXØbYYqAE AÃKuusK‹°¤d‡ ú L¬‰Á`Ñh :BÄÅᯨC46^_·îljj6“Éb±þ3Š¢MMÔ¦&jQQ-‡ (pvž08u™mš›Û>|¨ÎϯÁ²í/ŠI¤g t5,‰‘‘о¾ÒPxæ ›ÔCÐQ Qý>mAŸ(ïÚ5?(è Š‚?þx2cƨyóL9 HI‰FD¸Z[íØqÉÁá`D„«± ¢… a¡ªª)**=>>SLLjܸºž+@ÃD‰õÖ­[?Ž‘„Å¢P4Y,!Å¡(žÅÂa ØŠ"àPôߟìåäÞ‹ŠÖ²_ÙÛÛ "v›={¶ Cø¢¦¦ÖÑ£Ëde‰çÎ=Æž,쇛;wœžžâ`†×™´4qâD½‰õ8WrKòáCuNNEJÊë!8 œr¬³!’R³yyÙ&%½|÷®RSSnóæ -UUî±öͧL1ð÷Oòð8áæ61(h¡””Ø Ç9t®!Ÿrssg̘!è(UQQmxøõk×Þèè(8àJ"xøð!}ß®]ó]\¬'¼¡v ø4cÆŒoçó®¶¶åÀ$Òs%%©ÐPgw÷I„òòÉ8Áÿ|ørqqÑÔÔì¹\o ¼Òè+1¬ððëÇŽÝEÐýýN£øx¯ÁŒ ê­ˆˆGޤuþÇB à'LÐINÞ ¨úQçAËÊêËʰ]¸A±® ð*Ô‚ C§+‰ôâ×_ÿ%Ðh̳gš={ ¯’dr{HHJ||¦½ýèðp8ÿ(ôMc2Yüñ8<ü†””è¦M³ÝÜ& á4 `b=°nß~»qc|{;=Ÿá²té·ò}}ø:xðæ¡C·:ÿs‘——ðñ™íá1yäͤØyÀ²²úþ&Ö¼ ÍÄðý÷‡_¿.ÓÔ”¹߯ûÓþæÍ\ÿ$ ݽ{¾“ÓxCÖ@ߢ>\ª©!ûùÍ[¹rL©G6˜X¸OŸš¼¼Î½~]Úå}k9rÄãûïMEE…?6¨WŽMß·ïûŸ ‡èë+ÙÚÇÇ?^³fƪUÖ#~2—ÎÃ’|øPÝý €ZZr¼2*˜Xó2d몪¦‰÷2™,qqooÛ-[æv_žL¦†…]ûã'S¦èïßïb` 48qBÐPÐÔÔ¶wojBÂ3kk£}ûœþ44`b= Ö‘#·ºÍÕ-‡C%kk[DE…ììLæÌko?ZF†(ÀP¡îEGß IÅþÕ ½bþ|s …–ðìèÑô––vw÷É?ÿl×ù¹®‘­s¶]ZZ_PÐó €0±æeÈ&Ö€ˆˆ›GŽÜa±XíÀ¦Œé^^Þ'?¿¤ììÒ•+§oÛö¤äÿþ A€G ~ýõ‹…-üá3A‡ ˜XžG ¼½Ï‘Éí Æ—n!x<. ÀÑÝ}âÇùiiïnÞÌmkë;VcöìÑóç[* 6`¨K¿ÿ~',ì:Š¢ªªÒÏžífZ×ÖÖñ矙ÑÑ÷êêZ,°ðñ™­¯ÿMßœëè`”•5×–”Ô•”Ôו”ÔUV6bÝ¢¤¤Dutñø¶›7÷1™m‚vÈʉ5Æ05ÝÙÒÒ!!!ìä4žkXk^˜LÖ¹s#"®KI‰ýú«ƒ«ëD8¼:4Rµ·Óî>ýpÁ‹ýûþð8ÁÄzPÕÕQ~þùü“'ìûÖÏžíÒԔÖi4ÆóçE·o¿»z5»¦†¬­-oo?ÆÑÑÌÊJöMRNœ¸œ²wï¢Õ«­¹þD¥~I¯kk[/¶Ú°a¦®.üíï_ «¢¢˳KKë?ÎIOf±Ý×êòüïÇkWaa¡¡¡aoäŒJTTÔÒÒòèÑ£æææ¼Ê£(º|ùòË—/S(~²‰5à?ûû'ðxüË—JJ’=VÁÔÔ¸‘˜ø\__iÇŽºyü‚†©ÒÒúµkcËÊ""\æÏ·t8Ð`ƒ‰õ`c0X×½ ÐÕUxôhGç2,úömEZڻ˗_üøY^^ÂÎÎØÑÑÜÖÖ>ô0D\¸¹`%‘Øõ“[t:3)éETÔݲ²úE‹,ùÅv­ëŸ]Ayò䉮®.çJ•¯ÙtQQÑĉëêêuuu‘‘‘aaa½j3ª–––ÐÐЧOŸ¾ÿž××àÊÊJ ÒÒR---~ʉ5‹…ZZÖÖRp8dÕ*ëàà…½ª^YÙxäHÚ… ÏÆÓØ¹ÓqêT8:4B¤¥½Û´éOuu™Ó§Wéè(:H`b-÷ï¿_¿þüŠÓüüæu_òÇê;wÞݾýîåË11¡iÓ øÁlΜqÿgï>šºÞ€Ÿ$„½÷–-Èp+ˆ (V­ ¤J«hU¨ƒ:À…Eëq¼u+Ö - ¢8ŠQQ\ÈR¡( ȸï‡ÛæŸ2B€„0žß§Ü›sÎ}B¹ONν§ß_$×°Ùœ„„—¿ý–T\\ éu›O¬ ÍÌ„™~um”šOTŸ?ÖÒÒªªªÒÔl{ P§ŽØËk„ÐõëYþþ$$ˆ!7wg~ìÎÌ,Û»÷æ£Gïf̰ûé§IvvB¾›,=ìøñ»»wßœ7oÄÞ½žpC‚ ¦¸‰Ç„ –))¼½GvXrð`í•+]ž>ýeûöY¡ÀÀ›à™3Ÿ9s¿²ò«èƒ]D"çÌ––¶é?üŠŠ>;;ï]´èLnn¹¸ãê'ŠŠŠ¸cü BTT”•••ªªê¾}ûB,kÛ¶m††† .¬¯¯GákRàÃÞ¼Õëëë}}}ÕÕÕõõõ F›m¶F&“%%%•”þ¹a3“É ÒÒÒÒÔÔ b2™¼Gì¾ýÖ^SS‘@ 0™ì½{ov¡GÇA—/¯ŒŒ\þþý—©SzzKN~ c= /b2ÙAA±{÷ÞÚµkΡCó!«Ð0Ð×Ô×Ó®_¹zu¤¹ùF=½µS¦Ø¿?ñíÛ qÇ:pÿþÛiÓéê®]¸0"'烸ÃébbbùBeee5ð`2™………ܺ¼Bžžžuuu¡ÚÚÚððpkk뜜œÜÜÜQ£F¶¨ÂûØÇÇÇÕÕõÝ»w999666Û·oo³ÍQ}üøqÅŠ‹/æÆ6wîÜ÷ïßçää8::nÚ´‰÷(‚¼ä˜˜ ‹KTÔc5VV› ×ÓéÍÝi*'çÃêÕ‘úúëFÚ‘F£5 +HDÁ`.\ajº!)镸câ‰uÆ`0ïß»uk¼½}ˆŽÎšÑ£wnÝÿäÉ;6›#îÐ@»îß;}ú?éunn¹¸Ã3ÁënܸÁ'±NMMÅ0¬¹¹!TXX8xðàøøxüÙׯ_ãÛ¬ÞÜÜL"‘òòòðýñññfffm¶Ù:*yyùׯ_sc¶´´¬¨øçënRR’½½}ÿK¬9Ž©ékë`5Bˆ¶¤¤zëÖx#£@këà]»nTVÖw¿MDŠB¡ÏšuxÈàìì÷âŽô 0¤“’’pv¶Ø¹sö‹Ûoß^çé9<-íͬYGììB¢’’^57wp³Ðóœ-®_ÿùìÙ%UU”©S®]ûçÇuâªÀsY®éÓ§ó>‹ý7ÍÕÕÕE‘Éÿü[VVfnnŽ?¶²²š={v{G©ªªb³Ù¦¦¦ø¦™™Yyyy›m¶ˆŠF£ùùù-Y²„ûTii©ŽŽ@ îîî%%%]zݽ@˜=ÛñËš¦¦btô“÷ïk»Ù ‘‘úγÓÒ6Íœépöì'§½7^~õê£P¢@è˜L¶Ÿß…7o*/]Z6t(\$‚9Öý‘H:Ô`ýzû÷7§¦nô÷ŸPVVëëû»•Uð¢Eg._~F¡0Ä#ø0eŠMbâÚ3gge½7nÏöí×¾|¡‰;®>‰Åb!„>~üOîE$þç“MWW·´´œ••µ{÷îöZÓÒÒ"‘HÅÅÅøæ»wïôôôÚl³YYY__ßW¯^qS|uuunÚ]WW—‘‘Ñ©×ÕW„„Ì$ŠŠR¶eË¡´ih¨¶{÷ܧOY³ÆýÁƒw÷ýÓ§ÿ_LÌS|½!z [½:*3³,.n…£ã q‡z H¬ûîÅŽÏž…üú+\ìØ{áéõÝ»ŽñIJz=bÄŽÝ»oR(tqÇÕg(++#„.^¼H¡P>̧ä?üœ—————·jÕª²²2îS-n)M&“½½½JJJòòò¶nÝêãã#`<ŠŠŠ ÜçÌ™³yóæ²²²œœcÇŽuîåõ ÒÖÖz%%_ÈdÒÝ»ù))ùÂjYMM~åJ×G‚oß^7dˆnpð•!C‚ýü.<{ÖÇþAŸÃá`?ÿüGJÊëèhkk=q‡z“žyÄ€{±£…Å&5..¡p±coÓÜ̺t鑽ý6+«-G&wó:°>Dð9Ö-¦‚àvíÚ¥¬¬ljjš€xæXs ã F`` ®®®’’Òüùóëêê0 c2™NNNòòòØç[ùòå‡~PSSÓÑÑY»v-No³ÍÖQ±ÙlEEÅ’’|“B¡,^¼XEEEMMmùòå4­ÿͱÆÝ¹“«£³fòäýC†»¸„²XlQ¥¶–zâDª³ó53g¾|ù\àÄhË–+ƒ>xP î@@¯÷±@Ú[Ùqøpc"Vv¿†ÆÉ“©§O§©«ËÿòË·ß|3T܉œ€÷±€zÿ}¬¹0 36Þ ª*ÿùóW‰´cǬE‹Æ‰îXOžÿñGÆ_剄o¾êå5rÌSø=éàÁ;‡ý}ú´ïÔ©¶âŽô:XDÜ•^ýoeG—Á’’âŽn ûü¹aïÞ›—/?3Æô×_g¢+îˆDëöô¡Ä!äéyìñãw²²’ƒÞ¼ùôèÑVyy)‘±¹™•–ö6.îùíÛ¹rrRÓ§ÛýðÃX[[}‘„Plì³µkÿ ùÖÏo‚¸c½$Ö]YYmRÒ«7²ž?/•–&;9ÁÊŽ½BQÑçíÛ¯¥¦¾™>Ý.$ä[==qG$X·§o%Ö7ndùù]°´ÔQQ‘}ýºbéRçõë=zæÐååuqqÏââžWfäé9ÜÍmHýb—ýa֬ËÃ×k 5H¬Á?>}ª¿{7?)éÕ½{o8ÌÑqÐŒöÓ§Ûik+‰;´ ð„„—»vÝ R›Ö­›²d‰³„D»Úëöô­ÄšNo63Û¤¡¡PWG[¹Ò5""-==XSS¡'cxñ¢ôòåg Y }øp£™3¦M³ÓÒRìÉ@ÿVYùÕÃã€þÅ‹Ë`öh$Ö ¥¯_ïß/HJzuçN^CÃÂB{Æ »éÓíî'K1÷-tzóñãwI13Ó ÷vp0wD‰u{úVbrq +*ª” îÛçžèîn½w¯gχÁá`ÏŸ—ܸ‘YSCµ°Ðöòîé9\K @·47³æÎ=V[KML\«¤$+îp@ï‰5h\ìØ{¼_»eË•ÔÔ7sçÛ¾}–ªªœ¸#H¬ÛÓçë={n?~×ÄDÃÆFäH“mÛ®¦¥m22RW< 3%åuBÂËää×l6ÇÙÙâÛo<>£ „>ÿõëöô¹Ä:-ííüù'ÍÌ´ª«23·»¹…cº¿·¸ãBTjÓßç%$¼¼wï BÈÉÉü›o†N™b«®./îÐ@ŸqçNÞâÅ¿ÿßÿ-˜7o„¸c½$Ö sàbGñ¢Páá‰çÏ?9Ò8,lž™™¦¸#êH¬ÛÓç놆¥åIIRS+!! ¤¤&((&==X_¿·\GH¡0’“_ýõWNjê›æfÖÈ‘ÆS§:Õ®tüUTÔOœ¸oölG±Ìn}$Ö ‹jj¨©©ù7of·w±crr2wièÀÍÍÍÄĤgŽ•›[ûömŪU®«W»õÝß ±nOŸK¬B£Fíüðá‹¶¶’·÷Èu릌·ÛÃÃvÇŽÙ=Cqqqrr2ÿ2L&§¨ˆ–ŸßPPÐÐÔ„éêJ®ìà Ü3^&&&nnn⎂ ÃæÏ?õá×ää@IÁ+´3à@ èY¾'W£ýR›+;fg¿÷òò}?ïEzx¼¦&fxxâ Aîîá/_–õä¡…HÀ• žïQÝççwÞÄdÔ)û=<`vúô=“ 55 =Þ£D ¤¤Œ””ÜäåGŠêsðåååÕ“Ý£ Î{¨¯¿îùó’ÎVhgÀ@ÀÏä¾:Ðz%%Ù3ìg̰§ÑšRSßܾ{æÌƒî)xyyÅÆÆŠ;ÀžÐóÓ%%%=fÍrܸ1vÆŒß|}6l˜ª Ð''äôƒÉâ!dm­—””ߨØ\\\]SCõñóÛoIçÎ= ì¡{ZsaðH_Ðûy÷îóÎ×ýý'fÔ…êç 8~ž‚Ä ¾þÙôévL&;#ãݾ}ÛÅQÿgf¦·òòåç;v$ܺ•½cÇìéÓíÄT'Œ3N<í=z´¸Cèœ!Côèô¦²²ZII‰””×ÞÞ#}}Ξ}àï?QÔ 1 [¶\Ñ×WY¿~Џ} $Ö@øÈd’³³Å‘#,q2 „]’AÒ IDATyóFxx؆‡'þôÓųgüÌ͵Ä—@ ÄüRZ&“=t¨ÁÝ»ùÞÞ#-wìXJLÌ“/îè蜛7³ÓÓ ÿúk­´4Yܱ€¾¤¿-äÀÀ¤¨(½sç츸•_¾Ð<<8p‡NowP``Ñ×W!“I22d]]å´´7L&[CCÁÛ{äùóé07ô-tzóöí׿Î>t(|ó‰5ýǨQ&II›6}sæÌ}'§½qqÏ!¡=†D"ª©«Ëc¢PYYïBK—ºW?|X(îèè„'R[·Îw  ïÄ€~…L&-[æòüyÈ‚£‚‚b&LKIÉwP` 4HMFF²´´zÐ µ¤¤W!33Í#Œ£¢‹;4U^^wôhÊêÕn âŽô=XÐÉÉI­_ï‘”4hÚÂ…K—žËϯwP ÿ30PÅ0ôöm¥‡‡íÍ›ÙøNŸÑ‰‰¹55TñÆ€€¸­¡¡°t)\ºk NÑÑÑ„¶ÄÅÅÁ-غÏÌLóâÅe11?UUQÜÝÃýý/V‰;(Пii)ÒhMøõ‹¥¥5ø×¹3ìåä¤bcŸŠ;º–vîÜI BCC¹{ÚûDÊÊÊBÑh´ 6ØÙÙÉËË9rïÞ½,Ö?—hü–ÌÜ¦ŠŠŠDô!F£Ñ‚‚‚ìììFŒ±gÏn¼xã722Z¸pauuµ€‡è~ð¢{ù¢V\\÷|ãÆozòšÅNuÅî¼³mé‰xvWH¬8Íœ9³¢¢¢¢¢âÑ£G¡Š7nãÆâŽ®Ÿpr2¿qãçøøUŸ?S&L[´èL^ÞGqú'åÚZBH^^JKKñ¯¿rBÒÒä¹s‡GF>îU3þ1 ‹ŽŽ644ä]S¦½O$kk놆†áÇ?yò$44433sÓ¦M‘‘‘“'Of³Ùxݸ¸¸N-OÓ5xÏž= {ñâÅæÍ›£¢¢ÜÝݹaðzôèQEEEyyù¹sç(Š££c}}½ GQVV°ŸÀG¦ ¤6s¦C±³]uò-..VWWç€èNÄ´»vv1!äåå%øªZ………}º7¢¾°N‡Ã¹~ý¥³óƒuQ¯_wD ¿IMÍ×ÑY3dÈ–ß¿ãêºßÿêÕG5‰:Á×òÌÎÎ&III¡·oß¶x¶õ'R`` ³³3‹Åâî¡R©FFF'OžÄ0 !äç秪ªZQQÑ^ BÑ^-J"„ ¹›güøñ!!!B©M‚¼üN#zÆû÷µ††ëÿü3£ûM þê:Û;ûÎ Þ…ÞiûSwü,#Ö 7âý]†@ œ={ÖÊÊJCC#44ôÒ¥KÆÆÆJJJ¿üò ^€Édiiiijj1™L„ô¿Èd2·©úúz___uuu}}ýÀÀ@ƒ·eee¥ªªºoß>>möuaÆ ûÔÔ|—›[îæ¶ÿ»ïN¦¦¾ÁzÓ8"èÓÔÕBºº*¥¥5¶ùù¥¥5¡!Ctmmõ¯]Ëw€ÿíâââææfii)ÈHsdddHH‰Dâî‘““Û°aCTT¾¹víZKKËåË—·þ‡ºy󦃃ƒ¬¬¬ŽŽ÷çþ®}²µFPPPdd$þ±™’’bhhøðáÃ1ÿ[·nµ×8oõóçÏ㛳fÍZ·n^¥©©IEEo¡uu6›naa¡  0nܸ'Ožò.ô6ÇßÕÖVš;wxO´³]±…ïlëΆ/5¥­­üìÖýñí®ÝÏôhSwF¬y7BóçϧP(gΜAÍ›7B¡œ:u !TSSƒaXXXØÜ¹sß¿Ÿ““ãèè¸iÓ&n;gÞ¼yþþþø¦««ë»wïrrrlll¶oߎ·ïééYWWª­­åßf›P_±náÉ“w Fèê®=zçÑ£É_¿ÒÅèóÊÊjttÖÌŸráÂ6›3lØö={nâO;–bmÌd²E€€#ÖÇØØøÔ©S†[[[·(Ðâ©®®!T]]Ý¢ØãÇUUU±ÇÛ dddÎ;ÇÛ…B‘””\²dIyyydd$BèóçÏX—>ÙÚ #==]KK ?âÔ©SïÞ½K¥Rч1 {ö왲²2þ¸uã¼Õñ9åØ¿S8†a ºººL&³ÍêÔÔÔŒÿôéÓ­[·tuu;|#zÛˆu}=ÍØ8èÌ™4¡´&à«ëlWÄZ îb<ïl›­E |ÎnÂ=÷³î*øYk *BL¬3331 knnnñÿ?´´´äþüš””dooÏmçäÉ“£Gf0x‰”——‡?off†·Ÿšš*x›mꋉ5.'çÃO?]40Xgk»uÿþÛÕÕ âŽôauu45+W^š4) ð½{o:8lc±Ø†••Õèê®MK{#ÒL¬322$$$ð„àÅ‹¡ÜÜ\Þm&Öxy^=RWWÇxrß~ûMQQñýû÷Üšššòóó©T*›ÍNKKã–ìÂ'Ÿü^]]?bNN¾“¦ÒºqÞêÜài4šœœÜÓ§O1 ûî»ï6oÞÜ^u ‹óçÏsuáÂ…>—XŸ:uoðàÍtz³PZðÕu¶+b|ßÙ6;[‹øœÝ„{"îgÝUð³<,iú„™LnñWZZª££ÃÝTRRÂäääìÝ»7==]JJ !TUUÅf³MMMñgÍÌÌÊËËñÇø·UAÚìlmõÿaË–éi§N¥9’«Ëg7讂9Ö Ïÿûâßëêê222BT*ÕÇÇçÂ… zzzx1---‰T\\Œo¾{÷Žû‘Øò¡Í6û1}}•_•—·ëÈŸòòº™3·çر”º:š¸C} ‰D”——"‘ˆuu436Ö6Ì(6öþìŒö‰‰9,G¼A²Ù옘˜ƒ6ükݺuøXŸZ>>>;wîäÞÍ`þüùþùghhèüùóy‹‰ÄsçÎ¥§§Ÿ>}ßC§ÓçÍ›”™™yüøqÁãlóSÈÇÇgÇŽ¼7U Ñhaaaø&o®Ã ð'NL›6OãmVŸ?~\\Üõëׇ fnnÞ^u##£ììln­W¯^ þJ{ƒ§OKŠŠ>/\8¶'Úµ®Øï;+HgÑÙ º+$Ö Ï›3gÎæÍ›ËÊÊrrr<<<Ž;†Z¹råÒ¥K]\\¸ÅÈd²··w@@@III^^ÞÖ­[}||:Õf¿'))1c†}BB@|ü*[[ý}ûGÞÿöm¥¸C}†¢¢ B‹C¡ÐB^^Ãs>n@MŸnWW×øøq‘x#|ðàÁçÏŸ}||äÿµ`Á‚ÂÂB|¦f{BBB*++ÝÝÝïܹSPP`bb²`Áƒ±téÒ%÷ïßàÀ|³©©©¹¹YRR’N§oÛ¶ !ÔÐÐ Hœm~ …„„|þüÙÕÕõöíÛ………W¯^5j”žžÞO?ýÔº…êêêÊÊÊ?¦¥¥Íž=»¤¤„{i—àq“'O®««Û¶mÛ’%KøÄæïï”PYYyûöíA^cïõØÞÞÐÊJ·'Úµ®ˆÚgùt6|3ÙÙ ºëÿ2_€.âkîwÍ6S(”Å‹«¨¨¨©©-_¾œF£áÏJJJJñÀ0ìË—/?üðƒšššŽŽÎÚµkétz§ÚäõÙ9Ö|TUQº3lØv5Ó¦ºté…8‚Lš´oÆ5EEU†551ííCv?ëæ¾yóeÑ]9Ö~~~“'OæÝÃápLMM7nÜÈÝÓæí·¨Têúõëmll¤¥¥MMMƒƒƒ]\\¼½½±¶næîîÎmáàÁƒªªªÇŸ?¾¦¦&ÖÕO6Þ0dee­­­wíÚÕØØØ:fÞ½OUU÷ÙÖóVoÑÔòåËååå©T*Ÿê,+<<ÜÌÌLNNn̘1ø˜"ÿ7¢÷̱nll25ÝpîÜC!¶)È«ëZWäÿζîlL&ÓÉÉI^^/Àçì&ô1Öº«àgyÖ™_ܼyóB±±±â¤'„˜˜ü%÷?99"#_½šÙÜÌš0ÁÒÓsøÔ©C%$à÷.І9sŽ©EG?½vmõÈ‘&¡#G’I~þ|›¢¢Lxxb|ü‹Ç·Šèè±±±ÜL·477gffâ·3Õ{ηneÿôÓŬ¬ªªrÂj³÷¼: ‚ŸåáÔèÀСûöÍ{úô—_~ù¶¼¼ÎÏïÂøñ{û-éãÇ:q‡zyy)&“ƒª¯oÄ÷øú:‰Ä‹!„\\—•Õ–”tkæÞCRR²ê~ 11wøpc!fÕ` ƒÄ ¹¥Kǧ¤%&®›0að©S÷FÚ9wîÑ?ÿÌ PâŽôÒÒd&“E$ŒžPP^¸plDDƒÁtt4RP¾¿@¼AÀÅd²““_Mj+î@@?‰5 sìì öìñÌËÛ¿ÊÔTsûökë`oï—/?kllwt@̤¤È KRR‚Á`qwþø£óׯô?þÈ Žmúà$Ö ·HO/lhhš:µÝôZXº‚H$Œi²oß¼/¶:4ŸL&­_=bÄŽÍ›ãÒÓ‹Øl1ßR ˆ‹””DSSJŠÜÔô¿¥’µ´”üý'„‡ß®¯otv¶xø°zè%’’^YYéè뫈;ÐO@b èyy)OÏá‘‘Ë33]»vòÓ§Å^^Ç·C†=0II‘ ¦´´DS‹wÿŠ“H$ÂÑ£)ãÇ[P(ôœœrqE¯‡ 'Lhw™: k€p¨«Ë/]:>%eÃýû›}}¸ö–-qA†=Pà)u‹k„¢¢Ìúõil6GSS!=½P\ÀUSC-*ú¡¸¸ØÄÄD¼1<{V"ºáêÏ€t:[F†$¢£qĈЋ/üüüÄèE”•e½¼Fxy`0˜$%½:uêÞîÝ7-,´g̰sw·:Ô S öæ…ÍZÙRRMM, R{¯~Õ*·;wrsrÊŸ=+Qb ;}…xk&“ŸÿiéÒñ"jŸÏPRROAa4‘(W]} !X»_ĈJoÎx€ØIK“ÝÝ­ÝÝ­wì˜}ÿþÛÄÄÜsç8pÇÒRÇÃÃÖÍmˆ½½a›Cž —“––hjbÊÈÛû^!!AËËKEGûkj*xz++«}€ „Pu5¥©‰%ŠÄúéÓb—ЋÓü.:ÚÐ 5¡ôfXú9??¿•+WVVVŠ;AVV  #ÓÁD33­ÂÂ*„¢¢Lt´¿ššü¬Y‡óó?‰ýTVVòìÙW¬¸øãgš?k–׎€Wuuƒªª‰$œáÅ‚‚ÊŋϲXì¿þZkm­'”6A#Ö€þÏÜÜ<44ôçŸþðáw'“ÉŒŽŽþí·ßLLLlmmwìØyòäÉ}ûöÍž=[GGç›o¾áfÏçÎ;zô¨­­mXXØíÛ·ÅôRz;II 2Y!¤¨ØAb­§§‚úô©ž»GJJ""bñòåV®ŒÜ»÷‡K=Q©«kTU•JSwîäMŸþººJ‰‰ë «X„U«V988,]º”;!¤ªªŠÍf›ššâ›fffååå>|°··çÖ:t(þ ´´TGG‡@ ww÷’’’Ž¿‘•%“HÄoƒ ££Œþ›X#„ˆDÂæÍÓŽû>""máˆêê °ÚZªªª–t=sæþ²eç¦M³‹ŒôJƒ ¯ƒÄ0 ‰ÄsçÎ¥§§Ÿ>}ߣ¥¥E"‘Š‹‹ñÍwïÞéééeggsk½zõ  ®®^XXˆa†auuu="))!-Ýñ-ÆUTd¥¥É-kܬYŽW¯®Îϯps ‡)×@¾|¡u?Þ·/qÛ¶k›6M;th>÷~8`€ƒÄ0Pïß¿ÿÀø&™Lööö())ÉËËÛºu«¿¿PPPBBBeeåíÛ·CBBðÂsæÌÙ¼ysYYYNNއ‡Ç±cÇÄ÷:z;2™$!Ññ2ÑAGG¹¢¢Ä!dggpïÞÆ)Sl¾ÿþt@@Tcc³°ÃZ]ME¥ë‰5‡ƒmØ{ìXÊѣ߯X1Iˆ¾kÀâçççææÆÝœÉÀÀÀËËKÜQðãååe`` î(zZMMƒ††‚>†a¯^}3Æ”Oa2™D$ššZM¦³¤¤$æÏ½`ÁÇÑ£G÷ò®z^‡#Ö /““_ÇǯéÔj虽°ÆªqXú¤1cÆÀ0d/T[KUS“×ÕUVU•ËÍ-çŸX#„¤¤ÈB± CB¨Ýtêëׯ«ß}7jÔ(“ ôpñ"¡©©¡ª«Ë#„llô³³ßwX^Zk ¿Ûí8p‡ÍælÙ2­#ý$Ö„¦¦†ª¦&7ÎìÑ£¢ËKIIˆh*|HJJ´÷®¤¤úÂ…ô ¾Á{2‰5¡©­¥ªªÊ#„ÆŽ5«ª¢tx7k"‘ÐÙ%Íè>>?•„†þed¤îã3º‡Cý$Ö„ƒÅâÔÕÑð© vv†òòRw0h-ø:‘ŒLÛ‰õ›7·ne¯_?…D‚ tôÂQ_ßÈá`øèÄaÃŒ<(à_…@ò%ù]¶sçNÊÝMhKVV•J 466–‘‘177ß¶mƒÁàÓxQQ@èBT4-((ÈÎÎNAAaĈ{öìa±Ú˜9Þ‘‘ÑÂ… ««;^ù²›± ±…ž'--Ùfb}øp²þ·ß:ô|H|tªs"„ ¦M›¦¢¢¢­­=kÖ¬ììlnÅît• s¶ k¯gŽX#„¦L±MIÉç?…º—$d†EGGÆÄÄpwΜ9³¢¢¢¢¢âÑ£G¡ŠY[[¯^½:33óÊ•+ïß¿ÿý÷ß‚‚‚BÅÅÅêêê­ÛWVVÞ¸qcg£jhh>|ø³gÏÂÂÂ^¼x±y󿍍(www6›Ýºð£G***ÊËËÏ;G¡Pëëë9J×bÓw IDATë뤥ÉtzËĺ´´æÆ¬+&Š%¤öt¶s~øðaìØ±zzzwïÞMLL444tvv~ýú5·n—» /èœíÂaxð @GgMMM¾YYY¯«»öï¿óøT9rDZc)¢ !Óa±ììl””„zûöm‹g [œ.•••322¸›iii†††m–ìŽÀÀ@ggg‹ÅÝC¥RŒŒ"""Z”Dr79ÎøñãCBB„ ¾jß‹ž±paĪU‘-vnÙreÔ¨L&»À³dAJv¶súùùÍœ9“Ãáp÷,Z´háÂ…øcau•þÔ9/#Ö„ã˪„QEEßÔÒR²·7¸s'O•^2Ç:::ÚÅÅÅÍÍÍÒÒ’w\°=ŠŠŠÇ¯­­Å7Ç_VV†=z4BH[[ýûtJJŠ¡¡áùóç¹có!**ÊÊÊJUUuß¾}! ÃNž<9dÈEEÅI“&ݼy/B"‘¸Ç•““ ŠŒŒämüáÇ-Â#þþþ·nÝÂ7™LfPP–––¦¦fPP“Él3¶Y³f­[·¯ÒÔÔ¤¢¢‚·Ðº:›Í·°°PPP7nÜ“'Oºú‡›Ös¬i´¦Ë—Ÿ.^ì$!Ñ»R£ÎvΔ””€€Þß‚öïßÏ}g[hÑUnÞ¼éàà ++«££ƒÏ< øñÇñg©Tª¬¬ìË—/tN>„•¡à~ÿý¾­íVÞ=‡ݱ³û…Ïà¨Q;M]HH€QR‡cll|êÔ) ƒƒ­­­[h=èuçÎ===)))ww÷ðððÒÒÒÖ%ñÇS§N½{÷.>ó•’§§g]]]DDB¨¶¶6""BOOïöíÛÕÕÕIIIfff¡ºº:„Puuu‹`ÒÓÓµ´´x§R©è¿ƒ‚†={öLYY6wîÜ÷ïßçää8::nÚ´©ÍØðùøHgBB‚®®.“Él³úÁƒ555ããã?}útëÖ-]]]AÒ AÞ‹óóÏQߊwÏ¥KLL6|ýÚØ38JÚÙÎÉ`0ˆDbee%¾ÙÀßç«P(IIÉ%K–”——GFF"„>þœ––¦¦¦†÷„ÈÈHkkk‡ÓÏ:§pG¬!± û÷ßvq åÝóéS¾þºÛ·sÛ«2lØö'RE’ É\FF†„„DMM †a/^¼@åæþ'à6Mf±X;vì°±±!‘HQQQX[‰uNNN‹ý¡ÔÔT Ú››ñœÃÆÆ¯Žûã?ø$Ö?VWWçmã›-afiiYQQ?NJJ²··o36&''÷ôéS þûî»Í›7·WÝÂÂâüùóÜc]¸p¡Ï%Ö7ÆzzåÝóÍ7W®¼Ôc˜Ìu¶s~üø!Ä›F·HåÓUšššòóó©T*›ÍNKKÃK²X,mmí”” þùæ›ÐÐP ÃúYçnb Kšޝ_•”dx÷èè(gþçŸO¦L±i³ ‹Å&“ÅüË{tt4‹Åâ½è0&&ÆÆ¦í€B4íÆ^^^£F5jÔÖ­[·mÛ¶aÆ ´.liiÙz'>ŠF&“ñÍwïÞñnÈ!!eeemmí¬¬,777ÞºYYYÆ ãÓ8®°°ÐÔôŸõäKKKutt¸O)))µY]VVvæÌ™qqqC† ¹qãþ‹›Õ›››ííí¹{†Ú^½V‹ûXV½|ù~Ó¦^·Ôbg;§¶¶¶´´taa¡ƒƒBÿÜr§®®NUUµ½*Ü®"))YPP°lÙ2*•ŠWG‘H¤9sæÄÇÇ:499ùÔ©S:'_½k"€¾‹B¡·H¬Bóçº{÷uU¥Í*L&GB‚ÔæS=ƒÍfÇÄÄþü¸¸¸ëׯ6ÌÜܼ½êFFF¼wpã ¾¯–&76þ/±¾z5SKKiÜ8s1†ÔZ:'‘Htuu=}ú4ïN>3³y» NŸ7o^PPPffæñãǹe¼¼¼®^½ëä䤯¯ï„ÎÙ.a }à|}Ï´þ1No|É’%&Lw,}Ün€pÐéÍ22’m>ei©ãáa³{÷ÍI“†pW¶kllFÉʶ]eàØµk×®]»ÄÈ"-Mf³9L&ûùóÒ¦&–³sïºHïáââòåËqGÑ—Àˆ5á Ó™í%Ö¡mÛf–•Õ^º”ÎÝÓØØ„joÑ‘–&#„ètæ³g%††jZZJâŽôX‚æf›Íá“%ª-\8öÀ; ß#Ö@\ðÄšÁ`ff–98Š;Ð@b @ðKÁøŒX#„Ü™Lö‰wñÍë>Çô<))<±nÎÌ,st$îp@ÿ‰5!`2Ù!þË(ª«Ëz?~7?¿Áˆ5|¢iiM}}£££‘¸Ãý$Ö„_‚Hìàže?þ8ÞÑqÐêÕ‘L&›N‡Äˆ~s½¼¼’’¶¶zâôXüÕÞ ˜H$8ðÝ»wŸ#"Òèôf"‘ %÷§= ï¨ùùŸ† Ñ•”„„:!À0`Ä!db¢±j•ëÁƒwÖ­›"##)ê…9¼½½½½½EzÐçà½îÝ»j[[}±‡"åde‡`‹F{)Æx@÷Ab @œ ‚[½ÚíæÍ싉zHll¬HÛ2zôhq‡ð<¡--­™=ÛQ,Œ3&66ÃÐÛ·õUåå}‘••˜8Q×Õu³Xâ‰5!À0|*ˆ@‰µ¤¤Ä¹s?Nš´OÔë™{yy‰´}ЧÕ×7š›k‰åÐ’’ŠŸ>)ÿùç“÷ïkÇŒ1=ztÚ7ß õ¿èX2Y!„/-##uW×!·ne_¹ò|îÜᢠ€ÖþùØó‰õ›7'O¦^½š)##éé9|á±Ú=H¬wÅ Á«èé)khÈÇnq"5;ûƒ““ù¥KË&N´ìã±€Ûí2™$!AìÔˆ5•Ú¤¤$éG¥2-ŠèTR@÷ˆöwKHx9aBتU‘ƒ©ß¾½.6vŤIVU÷cX))2ƒÑ,xy­I^^ZSS!*Êï͛ʀ€(üf؈¾P¨‘‘¨k ÃsÝÝÃW®¼dk«ŸšºñäÉ…C‡ˆèp ÷€Ä€pÈÊJvjĺ¡!//27×:qâ‡Û·s÷ï¿-²èø4H]è-cvãFÖĉû–/??l˜ÑãÇ[ÿÁÔTSè½̱ ªªr_¾Ð/O¥2äå¥ðÇ&XîÛ7oýúh âºuSD ÿ¨¬¤ „Œ5„ÛliiMpð•ÔÔ7®®V‡/€!êk¡¦&_SC¼<•ÚÄM¬BÞÞ# ºuÒhM¿üò­à>Ô!„ÌÍ…6L§7>œ|âDª™™æÕ««G2VË oÄ€p¨©É×Öv*±fð&Ö¡yóF`¶~}4@غu†°àŸ>}Aéé©t¿) ÃââžïÞ}ƒÃÁÂÃçyz‡k2H¬‡ºº|~~…àå©Ô&|Ž5/oï‘õõ¿þš ¬,»j•«Pà?Ö“HD©»WšTþòËÕôôBoïQ[¶LSS“Jx ï‚Ä€p¨ªvbÄšÅâ0ÌÖ‰5BÈÏo›ÍÙ½ûfccsPŒÿ¡«ªú*%EîN vútZhè­Áƒµ¯_ÿÙÑq°b}$Ö„CCC¡ªŠ"`aü¶ Rm>»bÅ$mm¥µkÿ|ÿ¾öСùd2IhQ€Pu5UA¡ë •”T¯^•—÷qëÖK–8‰ðÝükÂal¬N¡Ðkk©‚ü N¥6!„ääÚMnæÌ¦  íïñógʉ áGv DJ£¡aob}æÌý½{o™™iÞ¹³~ð`máú:¸5á02RG•–ÖR¸¡jqñb îîÖññ«Š‹«§N=øêÕG¡ “ÉnllÖÔTìlÅæfÖš5lß~í‡Æ\¿þ3dÕ 5H¬‡žžŠ¤¤DI‰@‰5Ö„êðçx;;ƒÄÄuºº*ß~{8>þ…¢^EE=†¡ÎŽX×ÔP½¼ŽÿõWÎÙ³K¶oŸ%%¿ùƒ6@b @8ˆD‚¡¡jY™@‰õ¿SAøXã44._^ñý÷cV¯ŽZµ*’Bat7P0°áßýlmõ¯’•õÞÝ}ÿׯô¿ÿœ<ÙFd¡>kBcl¬!àˆuCƒ@ ’X#„ÈdÒ¯¿Îúã¿ôôB7·}¿ë^˜`@ËÍ-GYY šX'%½š7︹¹ÖÕ««ðùN´kBcf¦ùöm¥ %i´&))‰NÝNÁÅepJÊ++]OÏc6ÄR(ô®† ´×¯?!„ U)ü×_9K—žóð°ýã?9‡úÝîæM~ë76v}åEº¦  ÊÔT³Åμ¼'N¤nÚ4M_¦Vƒî‚Ä€ðyyxû¶’ÏJ1½sÄzçÎ!44”»'::šÐ–¬¬,PTTÄ[½õžžQTTÄ»:`ëW!ôCôE¯^}¢Ó›'O¶áÝÉfsÖ¯vpäëëÔ1tªƒ!„ ¦M›¦¢¢¢­­=kÖ¬ììlnE`nnŽaÿ™é4uêÔnvÂ6«ófdd´páÂêêꮵO£Ñ‚‚‚ìììFŒ±gÏ‹Õf]>b÷ûjwZ€Ä€ðÙÚê[ZêÄÅ=o¯ƒ!„•… ðèèhCCؘîΙ3gVTTTTT|;v¬žžÞÝ»w _¿~Í­[ZZÊ›j×ÕÕua-$ûÆ£G***ÊËËÏ;G¡Pëëë;{¬†††áÇ?{ö,,,ìÅ‹›7oŽŠŠrwwg³ÙB<¢xû*$ÖDbÖ,Çk×2™Ì6N™!‹M&÷®sPnnn~~þï¿ÿž••UPP€ï”‘‘ÑÖÖÖÖÖÖÐÐ@iÿ‹Lîô<‡S[+ò[”´ù*ºhuuuá÷¼ÔÔ|55yMMEª¯áá‰K—Ž·°hû|ÂÕÙ¶{÷n''§S§N988888>|xΜ9aaaÜÝÜÜ._¾Ìݼ~ýº‹‹Kg£°ohhhhkkëééMœ8ñêÕ«&&&‡êì±vìØ¡¡¡‘’’âááaaa1gΜ§OŸ–––ž;wNˆGo_í]jú9s†}ùBKKkûF&“-!Aêáø‹ŽŽvqqqss³´´äSìeee¥ªªºoß>„ÐèÑ£BÚÚÚ¡€€€ü/I¥Reee_¾|‰ÿ0xð`MMÍ€€€¦¦&„“É ÒÒÒÒÔÔ b2™l6;<<ÜÂÂBAAaܸqOž<áÿ*xª¯¯÷õõUWW××× d0xÀgÏžµ²²ÒÐÐ ½té’±±±’’Ò/¿ü‚x~g±XÛ¶m344ÔÐÐX¸pa†-Å¢²òkM uÜ8sÞ»wß”““Z»vJÏÄÐÙ–’’À;'aÿþýëÖ­ãnzyyÅÆÆrgƒÄÅÅyzzrŸmï]æÓ-qÿý·™™™ŠŠÊÞ½{Û Œ@ øûûߺu ß¼y󦃃ƒ¬¬¬ŽŽžÑ¶Ù½B‘‘‘!!!$Òÿþñåää‚‚‚"##ñ–’’bhhøðáCþGlýÁ[ýüùóømÖ¬YÜ?WSS“ŠŠ ÞB§þ¡: DcÆŒßüüηù”¾þºøø=ƒ—————W‡Å8ޱ±ñ©S§0 ¶¶¶nQ °°°ÅI!TXXØÞ„§§g]]]DDB¨¶¶–·…´´4555&“‰aXdd¤µµ5‡ÃÁ Lž<¹   ##ÃÌÌlûö톅……Í;÷ýû÷999ŽŽŽ›6m:x𠦦f||ü§OŸnݺ¥««‹·ÜÞ«h¼««ë»wïrrrlll𣠄æÏŸO¡PΜ9ƒš7o…B9uêB¨¦¦†ÛBxx¸µµuNNNnnî¨Q£;üÛâId‡ÅDjÓ¦Ë::kž=+áîIO/ÔÕ]{õjw;¡€¯®³ŒÁ`‰ÄÊÊJ|³¾!ôæÍmmí—/_bV__/++[SSÃí„í½Ë|º%^`úôé åÊ•+ø[µÕÕŸ={¦¬¬Œa…B‘””\²dIyyydd$BèóçÏmvﺺ:„Puuu‹žžž®¥¥…‡1uêÔ»wïR©T>GÄÚúà­ŽOOÇþxÃáp0 KHHÐÕÕÅCüŠöÞwH¬ˆÊÍ›YzzkKJZžJ9ŽŽÎšë×_ö@ &ÖxñâÅ „Pnn.o.$Ö©©©†577ãûy[`±XÚÚÚ)))†}óÍ7¡¡¡ÜCäääàebbbÌÌÌ0 ³´´¬¨¨Àw&%%ÙÛÛ[XXœ?ÿ¿o,.\À[nïU𺹹™D"åååá›ñññøQB™™™Ü€yó?xðàøøx¼îëׯ¹ù{bÍb±ÍÍ7ZYmáîinfM˜êåu¬û øê:ÛÁ>~üˆâM£[ ‰âïËÊ•+7oÞŒaXdd¤»»;w?Ÿw™O·Ä Ü»wÃ0|Þ3ÞŸù¤¹MMMùùùT*•Íf§¥¥á%ÛìÞí%Ö?VWWoÑùù'Ö­ÿ#x«s_F“““{úô)†aß}÷þ‡j³z{ÿP|´÷¾ÃT¢âáakh¨‘Öb?‹ÅA‘ɽh*Htt4‹ÅRWW'Æ C òc=Æ“ñ`XË•hðq¯6gc“H¤9sæÄÇÇ×ÔÔ$''ûøøpŸ27ÿgº‚¥¥eyy9B¨´´TGG¿C‚»»{IIɇìíí¹U†*ø«¨ªªb³Ù¦¦¦ø¦™™~„‚‚7`ÞǼÊÊʸZYYÍž=›ß¨wHIyM¥6ÏšåÈÝóÇïÞ}þõ×Y=Cg;˜¶¶¶´´4ž#¢¸/_¾´(æååuùòe ÃZÌáó.óé–¼ˆD~)baa!Þ¸¤¤dAA‡‡Ç°aÃΟ??Ûf÷VVVÖÖÖÆ‡“yeeeá„¥e‹b¶8"jë?¢Íê²²²3gÎŒ‹‹£Ñh7nÜX¼xq{ÕÛû‡êH¬ˆ ‰DüñGçèè§_¾Ðx÷³XlüY1ÅÕ›Íމ‰9xð ÷×öuëÖÅÄĴΕyòÞ˜,??_BBÂÀÀ€»‡jâååuõêÕØØX'''}}}î~n.UPP€§8øxžZÕÕÕeddñÞâÕ«W‚¿ ---‰T\\Œo¾{÷NOO¯£¿Ðÿèêê–––â³²²vïÞ-x]q9z4!lÁ‚Ñøfm-54ô/__'++Ýž   ŒH$ºººž>}šwgë\ÜÉÉ©¡¡ááÇIII³fýï{Ÿw™·Dux§9 ÃNœ81mÚ4„NŸ7o^PPPffæñãǹeÚìÞ>>>;vìà½F óððÀ7ÛK÷yˆÚúh¯úÿ³wçñTåÿÀ?ç^÷’-ëµËž¢l!IM‰Ñ¨_JHR1-ÚhS©F«™T£YÚ7š(¤úJ “”öPÙj*²eK¸®õ.ç÷ÇýÎýÞ±%Ûq¯÷ó1¸çžÏù¼Ž{LoŸó9žžžqqq×®]³°°àýBØÍ¨êz 膆–Ñ£·ýüsÿF:½IEeí;¯ @w¦‚ܹs‡L&WTTð¶<}úý3‚«ýTàà`]]Ý„„„ÂÂÂ[·n™™™ùúúòÞEÿžÂÀ» IDATû›;ïû,‹F£)))…‡‡ów1eÊ”üüüôôt}}ýàà`ÇýýýçÎË][ÍÚÚzõêÕ¿þú+FûÏþSVV–˜˜¨££ƒêâ,Út=þ|{{ûÂÂÂÜÜ\###n/í·ãøŽ;ÆŽ››››››kkk»téÒ/~ÄN)-ý¬ªºÎÖ6„·eÍšHsó FsŸ¿;g׳ ,++KBBbÓ¦MÙÙÙ™™™;wî477§P(ÜwyŸÑÊ•+G5eÊ”6Û»ù)·¹6:¼ ßâw©©©³fÍRWW¯­­Åq¼¦¦ðÄÄƆ†M›6ñNªýåãx]]ÝÈ‘#'Ožœ˜˜˜——wåÊ###[[Ûæææö3R:ëïè'‚¿9ÿ×Ü{õõõùgztóªëÏæX ÆÞ½ cÆlojjåm©­mPQY{÷îëè½;…õòåËù·p8]]ÝÍ›7ó¶´¯{˜LæþýûGŽ)&&¦££³mÛ¶††Þ»í &“9qâDIIIÞ>~~~Æ £Óéü]œ>}zĈ kÖ¬ijjÂqœN§ûøøÈÊÊÊËË/[¶¬¡¡Åb8p@OOOBBÂÆÆ†;b×ÅY´éúóçÏÞÞÞòòò***ëÖ­ãöÒͺ¹¹yãÆªªªÃ‡÷ôô¬©©éú{‹]X¯_­¢².*ê1÷%÷žÅ>œßß³ëÙ†ãøóçÏííí¥¥¥  †‰‰ ÷-Þg”ššŠ:räH›íÝü”Û\Ö<^^^ü¿$„……ÉÉÉihh=zÔÓÓ“F£q··¹¼¹ Ɔ ŒÅÅÅŒŒöîÝÛØØØþô»î±ýODg…5ŽãË–-“””d0]4ïðªãÏò}îÞåß¹€^úø±v„½{ç,X`ÃÝB§7nŽö›4id÷îîíïŽz`Û¶mÅÅÅQQQÜ—oß¾mÿ,=!ëááAÈy•–ÖŒ¿WT”œ›»W\œÊd²ª«Ëž?¿¬¯º ðì¹6—·éìs,óÛ+UU™¥K'‡†þY_ßüÏ6 !4”K‘æææÂ³gÏ.]º”è,ÂìèÑ CžžãÅÅ©¡ððÅÅŸöì™Ct.!7”/o(¬ô»€ ;vì÷%÷模<È—––6nÜ8__ßo¾ù†·QZZzùòåÄ…6u‘‘O0 ùû;p_<˜¸råT-­~°ü×áå=Dˆ€ð“” pØ»7aÁUUî²C¸®F“'On¿tF;~ü8!y„Ò±cwpŸ=ÛœF“BíÙ“0|¸øªUöDç~^ÞCŒXÞÞTTdHD0b ú_AAå™3÷BëÖ9"„þü3çÊ•g{÷ÎáÎ  Ÿ@a ` P(äM›¦_¾ü4/¯F¬A¿Âq|ݺ‹†||ì´µ++ëc½¼l¾ýÖ˜èh@ÈAa `€üßÿ™Ž£¾qc,‡ƒ#±ý&!!ëÙ³wÆQ7lpDmÛvY\œúÃÿGt. ü °0@0 ûõW¯ÜÜ’ððû!6›Ct" „Z‚ƒÿC&“V¯¶>\<<ü~bbΡCó¤¥ÅˆŽ„ÖŽžmíZÇŸþ ð–Ñq€:r$åóg†¾>mÅŠ©E;vügýúo'N4 : °0 V­²5J!¼¹™It lrrJNápð°0O:½ÉÏïI“F®]ëHt.0TÀr{”ˆ),lÞ´iîÜyåîn9=Þ»wÏÁÁa:ª¨¨˜ŽŒ–%KÂI$’——õèѪ^^'B¿ü2ŸDÂú»ëÞ_`,¥¡A‚Å"ÉËÑ…êKgW5ÖÚ¨Qªbb”¤¤¥¥5êê²ýÚ×øñãûõøà‹dee  £;ã++骪²Û·Ï\»öBfæ»K—V*(Hök§nnn=kÛÔ$B§‹ÖÕQétÑæf2‰„ËÈ´ÈÊÂM½ ³«ƒ›² <3³8ŽkhÈ]¹²šB!¼›7_,^|†Jùë¯ áá÷cbÒ/\ð³±Ñ%:׿´´°ÒÓ ÓÓ ÓÓ‹ž?×ÐТª*3a‚ž••Ž¥¥¶žL†9º‚ F¬@LLä»ïÆFE=ÙºõòîDÇ‚­¼¼níÚ‹$ä|ÿ~^däãß_0Hªj:½)-­0=½(=½07·´¹™i` le¥=wî8++#ä‰úÖ@¥Šˆ‹‹þþ»×âÅgÌÍ5==aÂè¡––·÷I:½ÙÞ~4‹ÅÞ½ûÚîÝ.³g›éó熇óïßÏKO/*(¨ÄqÜØXÝÒR{É’IVV:JJÒfý k§65µ:8­X1eëÖË£G«™˜h Ç—. ýº|ôheÅÐÐ?^@HU]RòùîÝ7éé…EïÞUS(dSSM£={f›šjJIÁ*ÚCÖ %5¬¾¾!äüâŇ%KÂÿúkƒœœѹ€€ùõ×[))ËȈ›šŽ8sæÞ¡CžVUã8ž›[šž^”‘Q”ž^XQA£XZj/X`ci©ml¬..N˜$`ð€›`É’p …|ìØB„Pyy£ãA3³ááßÀÊh@hܼùÂÇç …"2n܈§Oß=êýÝwcûµG&“™ù.#£(=½(3óݧO q;;KKm++íÑ£ÕDDàîÃ! F¬@JJìÓ§zî×ÊÊÃÏœñõð8öÃWBB\‰ E~~Ųe$Y^^âýûÏ7n¬52RëŽ:[ÊcÓ¦ï`)ÐÖ %%VTô‰÷ÒÒRû?–zy••ظщÀ`@ |øPóÝw‡Z[Ùââ%¥ágÎø¨¨ÈôáñyKyÜ¿Ÿ÷êÕG&“ Ky€î€Â¤¤Äêë›ø·Lœ¨ÿË/óW¯Ž”““ðõµ#*üJK?Oº¿±±ðï¾39pÀCT´ê™Î–òXµj*,åº k”ãÞ¼Èoölójvìø’’´³³ !ÁÀ WQQ7yrhSS«¤¤è/¿Ìïå¤ê÷ï«ïÝËëp)3³’’¢} PX €´´Þ¶°F­^m_UU¿zu¤‚‚”µµÎÀƒYiég[Û™L¶‰‰ÆùóËzð¸rXÊô+(¬@ZzƒÑÌfsÚßøüïßWûøœ¹pa¹©©&!ñÀ ô矹˗G°ÙW×q¿þ:¿û Èt¶”ǪUö°”è[°Ü<~\àêz8+k7&Õþݦ¦Ö… Oåæ–ž?¿ÌÒR{àãA¥¦¦! à­[c¶w_lÒ~)55Y]++KKm}}%XØô±@EE)„Puu}‡…õ°aÔ üüüÎyx;{Ö÷›o < X,NTÔãÝ»¯551ÅĨ·nmÔÑQìl纺Æôô"îRÿýÅâÀR`€Áˆ5ÔÕ5޵-:ÚoÒ¤‘íÓÚÊZº4âÁƒü#G89Èx`¢RETU;]&ﯿ^ìÝ{­¸¸šÍæÈÊŠ''oRUÞfŸêjÆ£GoÛ,åagg`e¥mb¢Ùá¯mô±@iéa ùÓ'FûP©"gÏúîØñŸ%K·n±råÔ‹úŽã‰‰/6lˆöö¶ÙºuFûž<)Ø¿?1=½PLŒÂápŒÕââVIKã¾ûî]õýûÿ[ʃJ±¶Ö™9ÓÄÊJ–òÄ‚Â0 “——¬ªªïz72™´wï]]ÚŽWóó+~üÑuØ0X´A°åçWøøœ)*ú„ù80p:…Bæ½{ÿ~Þ¡C7Ÿ<)ÐÖVÀ0¬©‰¹j•ý–-ß½xñ)ii1kk]îRcƨÃU (¬CQQªëkŸ‰ÚÚ «WGff¾?~|¡¡¡JgýÉd9’rð`‡óßi¨tzÓŸæÌšeÆfs®\yvüø×¯Ë§L1=ZõÕ«""ä9s,Þ¼)71ÙQ]Í••˜8Q–òƒ̱@Œ N**J:äÙÍý««þþQ¾Ý¾}æ÷ßÛa¬ê H>|»nÝ…k8œm7NËÛ{‘#· *Mêë›RSßà8N"a®®.;~¼®••ŽÜ}?(¬cíÚ Ÿ>1"#—u¿ ‹Åùùç¤ß¿5c†ÉÞ½®=x>xõõÍ»wÇ_¸†P§ELj --¬ŠŠZG†™šj,]úŽ’Rۻ̠°@Œƒ“®_ÏNMÝüµ ÓÓ 7lˆ©©iؽ{öœ9ý‘ ô•ÄÄÜM›bëêY,N»‰ŠRZZ˜d2‰F“>~|!,^ÌO@ uuÙ’’Ï=ß±²Ò¹u+ÐÓsüÚµæÍ;þêÕÇþˆzéÓ'ÆÒ¥ß¶¦¦¡ëª!D"! …¼fÍ´û÷ƒ ª‚ kÄPW—mjjýü¹¡mEEE¶m›‘°¶ªŠîèøóæÍ—ª«»u$‘‘mlBþúëBˆw«bôõ•îÝ Ú´iº¸8¬ï¬ €êêr¡’’Ïòò=œ*mb¢qóæÆÈÈÇ$ÆÇgúûO[¼xbg•Yaaá­[·ztO}=3!¡ZZZ .¬ªªêýaMLL¤¤¤,--üñG‹ÕfŸèèh¬#qqqöuËBwç°YYY½;§>SUUßÚÚö»1díÙ³ð}ûöñ¶tý æåå9;;ËÊÊ*++»¸¸dgÿï¦ ÃôõõÛ,ó7}út ÃÞ¾}Ûã„5ïÎEŽz÷#ööíÛÞü,ôɺ…5"ééÑUazôèQYYYiiixx8N777¯­ít;ÂÂB…®X__?nܸŒŒŒÐÐÐgÏžEEE988°ÙlþÝfÍšUVVVVVöèÑ#„PÙ?lmm7oÞÜãÓéì°FFF=>fŸ`0Z.]Êðô8ŽGGGkjjÆÄÄð6vñ –””L˜0AMMíöíÛ‰‰‰šššvvvÿý7¯mqq1©]SSsïÞ½¯MÕ‡9×Wýˆñ“‘‘éÍÏ€›I__éáÃ|¢Sü‹¢¢¢²²2BHMMí›o¾ùæ›o:´k×®wæp8ÕÕÕ]p÷îÝŠŠŠ)))d2!d``ðí·ß‡‡‡/Y²„·Û°aÆ †b0!n.þñ˯ÕÅa ÑÚÊJIyuùòÓää—l6ÇáÉ)ÿ“››ûêÕ«›7o:88äåå .?Á‰'ž8q‚; kffF§ÓCCCÏ;ÇÝaÚ´i—.]25ýïÃM¯]»6yòäÄÄįJÕ‡9×WýˆñSPPèÍÏ€kDÒ×W*(¨âpii…a˜ŸŸß7¸/¯_¿nff&..®¢¢Âý~üøñˆ¯Öa2™JJJ4-00Éd"„"##ƒƒƒ¹—„„D```dd$÷Ó)))ššš<è0ÿ¯1 ;{öì¨Q£÷íÛwþüymmíáÇÿðÃ]è¿¿ÿ÷ßÏýšÁ`ˆ‹‹gffrûŠ9r$Fó÷÷oiiùªÃv†Éd'$d-\xJ_ËÒ¥áýõ‚Éds88TÕü¢££'OžTRRâ6Ÿ>}úíÛ· ÷­6Çä‰òôô¤Óé§OŸF¹»»Óéô'N „>}úÔa€ƒãøÝ»wååå™L&Žã‘‘‘FFF‡»££c^^Þ“'OôôôvîÜÙõa;ãæææææÆd²oÞ|±zõy]ÝM**ë446¨¨¬mÿ_yyí(¸ºyíq8mmí'Nà8¾mÛ6##£6;´ù›››I$Ryy9÷e=î„Ðëׯ•••333q¯­­ÿôéï"÷òò²··/((ÈÉÉ166æ~Ö¡¹sçÖÔÔœ:u !T]]ݦ_„ÐŒ3ètúåË—¹ÞW]ä]üˆá]iü͹ÓÊñ&Ìp8ÇãããUUU¹Wrûæaaa4íÊ•+?~¼qㆪªê?‹n~^‚© ˆ4j”*†a¯_—ihÈå DEE³³³544† ¦¡¡ª«k»0vxxø;w”••544BCC;›J"‘xÓOCCCÇŒÓÍRRR .\²dÉ–-[¤¤¤|||–/_^SS#//ß>oL± [[[ …rïÞ½©S§^¸pÁÛÛ›7ðyðàA}}}„PHHȶmÛvìØÑýÃò44ˆ|ú$neµ«¼œN"aÜ?J°X̸E]¾üLZzX7¿çéÓŠîÌHOO/))quuEÍ™3'$$äÅ‹ÆÆÆí_]]Íáp$$$¸/¥¤¤xoáÿ Q“ÉdWWרØXSSÓëׯÛÚÚÊËÿ÷ —L&3:::;;[GG!´{÷îM›6íØ±!´jÕ*™E‹-]ºôó瞺qãF)))„PMMMg3°{p‘·¿Ò¸Wá6çÝ49sæÌï¿ÿþéÓ§–––/^\´h‘ˆˆH‡Í÷ïß?{öl„ŠŠÊO?ý´hÑ¢/Æè1(¬IZZLGG1+뽃Á÷Òu&??_WW!D¥Róòò–.]Ê`0ÌÌÌ:ܹ¸¸XEE…÷røðá222ÊÊÊYYYÓ¦Mãß3++Ë‚ûµ¡¡a÷ópë' …ÒæëÎtv2™{÷&t½ƒ Ã°/W\ÑÑÑ,‹¿H‰‰é¢°VVVËÏÏç^Übº¦¦FNî_¿£º¹¹-Y²$$$¤Í<ŠŠ 6›Í½¶BzzzÜÏ!ÄÖå¿®Úàî@"ý÷·…^^ä¼1Ôù•Ö¦¹¸¸ø¬Y³âââF™™ÙYóÖÖVÞs„ÐØ±c;‹Ñ' °@°±cÕ³³KˆNÑ1Ç;æììŒjjjrww9sfKKKxxxûýîܹ£§§‡ª­­-//GyyyíÞ½{Ê”)¼¨ ¡¡¡Ü—]T0_«Ãqssóòò=zôĉÕÕÕyÛóó󹃋yyyÜê«‹rp023«hn&ûí’¨¨ÇÅÅÕ ™Éìx¸!”™¹SIé źàŠõðø¥ë}ØlvLLLXXØÒ¥K¹[vìØ³{÷îΖ‡#‘Hööö'OžR/rþ1Ôù•Ö¾¹§§g@@€©©©……ïWÁöÍçÌ™“mbbÂÝáåË—]ŸZ/ÁÍ‹6v¬FNÎ *¬«ªªÊËË?|øp÷îÝÙ³gqo“jiiimm¥R©MMMÜ¿˜×××s›pgŽ"„æÌ™ôîÝ»œœ''§#GŽ „‚ƒƒ+++ííí“’’òóó¯^½jmm­¦¦¶bÅŠ>ßa€ÎØÙÙ±X¬Ý»w{{{óoxûömFFÆÖ­[,Xðµ‡åc¯ZeÿèÑö;w6ûûOSQ‘AQ(0¨×û÷ïWVVzyyIþcþüùùùù]/7rþüùÍ›7çäädeeíÚµëÔ©SmjPîlåË—[YYÑh4Þv …âáááïï_TTôâÅ‹íÛ·{yyuÑï"ïÐW]äýˆ¡¯¹ÒkjjvìØáëëËÛØ¾¹ŸŸ_```|||yyyRRRpppgÑz65è+¿UQYûáCM¿öÒý›y444¼¼¼***x…ÉÉÉihh=zÔÓÓ“F£1™Ì‰'JJJrw Óé>>>²²²òòòË–-khhàng06l066722Ú»wocc#Þîv4®®o^äÝøÕá×è¬/??¿aÆÑétþ}NŸ>=bÄ…5kÖ455u}ØÎpo^äßÂfsÒÒ ¶m»bh¤¢²–ÿFF¸yqùò厎Žü[8Ž®®îæÍ›y[:üŸ?noo/--mhhÀ`0LLL¸oñ®ŠÔÔT„Б#GÚlÿüù³···¼¼¼ŠŠÊºu븟uûëªÍEÞÙEØÍ‹¼ë±öWó6‡Z¶l™¤¤$ï®ß›³X¬èééIHHØØØÔÒéÍ—/¯a> $ °0(Œ§E¡ÓÓ ]\Ìû¯—“'OößÁ ‘™Y«¤$ªª:¬ý[ ¬´´ qMÍa¢¢Q¼ÒéÌÚZ&Ϊ¯gee!119'§Ÿ++ë?}ªg±8Ü}H$ŒD"q8751tªjá»ö„Õ³gÏzÜ kƒ‚„„¨±±ZZZÿÖ¹HóÀ RÕäåç64dÕ×?ÆñÖ6ïJH˜IKOFg2«[[KZ[K[[?r8Mý†L–>|Ѝ¨6BÇ• ò§O¥möápp‡¢Rɶ¶zý”d¾k´40XìÙsíÎ×·oo":ˆ ÁqÜÂbgy9]QQêÀwGGã6ï.]ñçŸ9! …Ì6ÖÔ”›2ÅÐÚZwüxþxxròËc>n`³9]ï¹lêÔQ}¢@a `°¸yó…ÏÙÜÜ=rrDg$?þxýèÑ;8Žã8îèh¼oß\eåÿ•Ë­ß~{°¸¸š¿Ì¥PÈl6‡ÃÁåäÄ'L0°²Ò¶²Ò3Fð>‰D§7‡†þñ€DBlvÇ•‰„½zõ£””XŸôÀ`…5€Á¢¦¦aìØàãÇ:;›EäçWLž¼ûµˆ Ã0ÿiþþ ™»ñõë²éÓÃZ[Ùþ£Ï+²­¬t®\YM"õMmJ¸6tà IDATO/ ¸PRRÃát0t­¨(ÕÔÔjf6ÂÊJÛÊJÇÚZ‡J…ª@°‘wîÜIt!„† £¦¦¾©­mtrCtA"//™ýù3ýw3ž–V˜=v¬w‰)uu¹ÄÄœ›s8ÿ­·CBæèé)õa055Ù lÈd,=½ˆLÆ8œÿ•õT*ùÛoÇÌ™cñéãÆì?þxtöìýôô¢kI$LQQšL*75a#Ö‘_~¹ñ 3sW_ÍI"޽½oß ÞÊ!›ÏŸo<‹;Ý⇮†‡ßç¯ny(ò¬Yf¿ýæÕOñþþûc@@Ô«We¼Þ1 8±xÆŒÿþi¢¢¢.=½(=½(#£(7·”DÂŒŒÔ,-µ­¬´'NÔ—•…©A@0@a `ÉÉ)qr »u+pôhU¢³’k--w·ÿ7]D„$-=ì§ŸæÎœiÊd²çÌ9œýž¿þFa&++þàÁVñþKØÚÊúõ×äß¿E"a­­l„Pfæ.%%éö{VW3ž?—ž^”ž^˜•õžÉd!ogg`i©=~¼®††\ÿ… — °0ˆà8njºcéÒÉ«WÛEÀ̘ñkVÖ»öÒ$Æáà3f˜îÙãÂáàööêë›Û¬×1ožuh¨oNvÿyõªlݺ 99¥jj²Á_Ü¿±±õŋҌŒ¢{÷ò22Šš›™JJÒVV:Ü:ÛÀ@ þ²(¬ .JK?_¾¼šè æÜ¹‡Û·_ép…;î¬åóç—«=x?oÞ1^ýM¡ÍÌ4_½*SW—Ý¿ßÃÂbDçd³9gÎÜÿð¡f×.—¯jÈbqþþûwºÈ½{yuuŠŠR¦¦šVVÚvvÆÆê}xÛ%=…5€Á%>>sÍšÈ/B¤¥a!¶¯PW×8fL0‹Ån³D¦Nuäˆ7oa»C‡n<˜„ã8‰„II {øp+›ÍÙ³çÚåËÏ\]-vîtü˲ٜ·o+32ŠÒÓ =zûñc­„„¨¹ù±²Ò…F °0¸ÔÕ5ÿpòäâéÓam¯ãí}*5õ5oК;K"(ÈyÕ*{þ)l6gÞ¼ãii~ð Ç¼yÖÜí))¯‚‚.µ´°¶oŸéæf9àñ{îÝ»êôôÂŒŒ¢ôô¢¼¼r11ʘ1êVV:VVÚÖÖ:ÒÒ<ï€þ…5€AgæÌ_GRÙ¿ßè æÚµÌ+Îsÿe'“IT*YMMöôiå6{VW3ìíèë+ÅÆ®à¯¹›šZÃÂn?~ÇÚZgÿ~wÅ=¾PQAOO/äÎyñ¢Ãþ·Àˆ­­þàŒ kƒÎÏ?'ÅĤ§¥ý·¦}•ÆÆV#£m--, …¬¨(uæŒoHHB~~ebâ:þg1r={öNQQRSS¾ýq^¼ø°aCt~~ŪUSù4#pê뛳²Þß»—Ç¿Àˆ¥¥¶••ÎäÉ#aÐç °0è<þnÆŒ_’’Ö«At³bÅññ™&è:µXVV¢¶¶ÑÙù))±«WWFíþqX,ΉwLÒÑ¡<èaf¦Ù™Fg Œp³ûðqî`(ƒÂÀ ƒã¸¥ånW×qAAÎDg0))¯=ÊߺuïÉ…•3füjg§âÄ¢¯­_½* ŒÉÍ-]¾ü›u뿪4Ìø¹?¯¶¶QAA’ûpuKKm3³‚;Hˆ…5€Áhûö+©©¯<ØJtapïÞ› N8nØðí×¶åpðs熆ޑ‘ qµ·Õ  Œ€>…5€Áèá÷nnGîÞÝ¢¯¯Dtapñâ“c^0{¶yš×Õ5†„\Šzbo?*$ÄUˆg'·Y`„B!¥jgg Œ€î€ÂÀ`Äfs¸`ô÷ŸFt!±}û•¨¨Çqq«{ü˜´´Â-[.½{W-è75vSûFtuiÜçÑÀ# CPX¤Ö­»øúuYbâz¢ƒ 6›ãë{6;ûýëÔÔd{v&“}îÜÃ}ûnŒ!ê6nœv߆´Œ–ÌÌw.02i’A‡‹«€! kƒTròËŋϤ§ÿÐã*´Á`´Ìšõ+‡ƒ_»À{c¼{W½uk\jêAyRcß‚F@g °0Hµ¶²Œ·oÙâìëkGtáQRòÙÙùÐØ±çÎ-á­Ò3ÉÉ/·l‰kjjݺu†—×ø¡YMÂ#€Ö/?¿sÕÕŒK—VD¨dd¹¹]²dÒöí3{y¨ÏŸöì¹›ao?jïÞ9C|F‡ƒççWpyü¸àÇX`d¨ÂÀàŸ¹zudVÖ.yyI¢³•¨¨Ç›6]úýw¯9s,z´'O ‚‚âÞ½«^½Ú~Õ*{(¹Ú,0""B=Z»Àˆ••öðáâD} kƒƒÑ2fÌö}ûÜ<<¬ˆÎ"lv튈x½ÂÚZ§÷GãpðË—ŸîÚO¥Š9»¹Yöþ˜Â¤²²>;û}zzÑýûym™0A~oPXÔ¼½O’H¤sç–DØà8¾v퍤ܫW׌­Ú'Ǭ­müùç¿ÂÃïO˜ â kwˆ»Àw!¿´´ÂÖVo;;ƒ#†ôtA…5€AíÂ…'[·^~ñb¯¤¤(ÑY„ “Éöö>õæMùõë}¸ôJVÖû­[/¿|ùaáBÛ-[¾“ÚÎÝÝýÒ¥K½9‰$J¡¨R©jTª•ªÄf3*+ÏöU<0bbbÜÝÝy/¡°0¨}þÜ`j|ôèÂ3LˆÎ"„êë›gÏþÍæÄÇû÷ácY,NDăƒ%$ÄvírÖÏÎÝݽ¤¤dýú¾Yj½µ•]SÓª¤wîîîPX0..¿khÈýþ»ÑA„SEE³ó/ZZ .,§Rûò¾ÃÊÊú½{¯]¾ülÚ´Ñ{ö̾5C¸Ull,ÑA10 kSX÷jK`¸¸˜'%å673‰"œ””†GE-ñâC@À…¾n£Ñ¤~ûÍëòåU%%Ÿ¿ù&ô矓ZZX}x|(¬ v3gš´´0oß~Et¡5r¤òÙ³¾‰‰¹û÷'öùÁÇ×ML\¿fÍ´#GnOž¼ïúõì>ï€A kƒ¼¼äøñº×®eD˜M˜ ÷Ë/ž¿ýv+<üAŸ\TTdÝ:ÇÔÔÍcƨ/[áæväÕ«²>ïÂAa @üßÿ™%'ÿÝÐÐBtaæâb¾iÓôàà«II¹ýq|MMùS§'&®oiaO›vÀß?ªªª¾?:€(PXß}7–Åb§¤üMt!à°pá„•+Ï?{ö®Ÿº01ш_süøÂGÞÚØìýùç¤ÖV˜x „Ö€œœ„­­þµkYD~»wÏžÜfa1báÂSÇòó+ú¯;bá8­©©ÃÛ8kÖ¬²²²²²²G!„ÊþaddTRR2aÂ55µÛ·o'&&jjjÚÙÙýý÷ß¡&“¹ÿ~Þq¶lÙbcc3þüÞ$,..æÕšš{÷î}íA ºÞ§¾¾~ܸq¡¡¡Ïž= ŠŠŠrpp`³Ùíw~ôèQYYYiiixx8N777¯­­íN™Í›7mþ>€‚ ®®QSsÃåËO‰2$TW3&Lùî»°ÆÆ–èîÁƒü©S÷kjnؾý Þ4=ö 77777·îì™aXrr2BèÍ›7mÞÍÏÏoS’-_¾|Ö¬Y‡·eÑ¢E .ä~%&&V\\ŒãøÃ‡EDDrss{s"!''§­[·ò¶DDDLŸ>!”ŸŸßýã´9‘›oܸÑÎÎŽÅbñ¶0 --­S§NµOÅßœÃáLš4)88¸ûyz£ý‡ÒB(&&† ŒX ÒÒÃ&O ³A†œœÄ™3>U6Äp8ýþ,9[[½¤¤õ›7›no¿?!AØ>åèèèÉ“'O›6ÍÐÐк3)))þþþüS<È{Ä£§§§­­í¦M›p_¿~½¿¿¿±±1÷-&“¨¤¤D£Ñ™L&Bèúõëfffâââ***ܹ(Üy)))ššš<@¹¹¹ÅÆÆâÿ̉‹‹›;w.¯÷ÚÚÚÅ‹+((¨««oܸ±¹¹!„aXTTÔ¨Q£äää¸#èãÇG)++óÞ¼ySOOOVVö§Ÿ~ân‰ŒŒ &“ɼ}$$$###Û§â‡a˜ŸŸß7:;SþæÜïž‹‹ ïûÖÒÒ"++Ë=Bûæl6ûÀRRR¶¶¶iii_ü˜:Е>зbcÓGŒØXW×Ht¡"5õ5wyÀz¬¬¤¯_­¦¶ÎÅå·ÌÌwÖoÏtsÄšÃáhkkŸ8qÇñmÛ¶µÙ¡Íàhss3‰D*//羬çÃÛçÍ›7¢¢¢kÖ¬QQQ©««ãm uuu}ÿþ}NN޹¹ù–-[èt:•Jõõõ---ŒŒDUVVr{œ>}úíÛ· Bèõë×ÊÊÊ™™™8Ž×ÖÖŠ‹‹úô ý3fìååeoo_PP““cll¼sçNÇBsçέ©©9uêB¨ºººýˆõŒ3ètúåË—BŸ>}ª©©AUUUµù<|øPII©}ª6Þ222)sî4ôÏìôíÛŠeË"TTÖ.\xª¨¨m6xt³°~ò䉈ˆÈ§OŸpöìB¨ÍÌ6õè‡B¼2º³ñÐ;v „.\¸À¿ÑÐବŒûurr²©©iKKË«W¯ ›Í¾{÷.·Zåö˜““Ãë"??ÕªUAAA8ŽGFF:88ð¶·¶¶’Éä/^pw¾r办ž÷Ý;wîà8ÞÚÚÊX^„Pjj*ŽãÜùÓùùùÖ?VPPè0ÿnü…uû3åoÎKÒÐÐ !!‘žžŽãø¼yó¸'Øasƒˆˆ^_çÎëAa SA ))±o¾1„'Å $'§1?þèúË/7OœH°Nuui'N,Š]YVV;yò¾M›bûõ6ÊþÍb±0 ³°°@u=DYYYLLŒ[¢j»ÏŸ?·ÙÍËË !4oÞ<þÅÅÅ***Ü•4ŠŠŠ¨Tj^^ž“““……EDDÿΆ††ü/ÝÜÜ.]º„ãx›y l6[WW—ûROO¯´´”û5wX—B¡tv.ÜH¤ÿœ222ÊÊÊÜád~YYYÜïLûTüòóóy1ÚŸi‡ÍÅÅÅgÍš×ÐÐàããÓYó’’SSS^ñcÇv£ PX$³f™Ý¿ŸWSÓðå]Añöž°q£ÓîÝ×bbҲ߉õÿúkÃáà îÞ}cg÷Ó‘#)--‚·â5›Íމ‰ ãMçX¿~=w˜³³&$ÉÞÞþäÉ“üÛ×âÜ9Äm–„ãŽûrkñššš'Ož455¹»»>þüèÑ£ü;·)ˆ'NœX__ÿàÁƒäädÞv%%%2™\XXÈ}YPP ¦¦Æ‹Úõé·_±ÎËËk÷îÝük€444„††:99u˜ŠÇñcÇŽ9;;wv¦5÷ôôŒ‹‹»víš………¾¾~g͵´´ø×Eyùòe×§Ö!(¬#2™ÔOY¿þÛ¥K'mÚ›’òj ûå®xšºyõê©¿ývkâÄ/]Êè¢$„îß¿_YYéåå%ùùóçççç·µårþüùÍ›7çäädeeíÚµëÔ©S] óÌ™3'((èÝ»w999NNNGŽiiiimm¥R©MMMÜÙ#õõ?ð’L&»ºº._¾ÜÊÊŠF£ñ¶S(ÿ¢¢¢/^lß¾;XÞîôèÎWVVÚÛÛ'%%åçç_½zÕÚÚZMMmÅŠíw®ªª*//ÿðáÃÝ»wgÏž]TTÄ»±ý™vÖ£££cMMÍŽ;|}}»øFùùùÆÇÇ———'%%wqêzî0ØøúžñôÝ¡¬<œè,CKk+ËËëÄë×åññþ::Š„dxû¶rÏžkÉÉ/ŒvírÑÒúÂãHú•»»;B(66–À €@†ÅÄÄp/.˜ @ÀØÛ>\´xTªÈÙ³ßkhÈyxû𡆠zz´sç–œ=ë[PPioàÀD£…$´…5C¡Ç^¹òŒè C‘””XLÌ I—߉ª­BNNcîÜÙ¼mÛŒóç¿çĉTA¼¯(¬ž9s,rrJÞ¼)':ÈP$%%µ\RRÔÃãXUUÇ·Á …ìëk÷ìÙÎ-[œI±°Ø) Ë†a…5Ácm­£¡! ZCNNâÒ¥U†yz¯«k$0 …B^°Àæñãí+VLùõ×d[ÛÈÈÇ,‡ÀH`(ƒÂ€àÁ0ÌÅÅ<.NÀV^& ’11+èô¦ N56¶FBBtÕ*ûÇ·Ïžm±}û•©SC²àÚ kiîÜq¥¥5OŸdèRU•‰‰YQZúÙÇçLk+ñs0äå%·m›ñàÁÖñãuW®<ïìüKrrOžñ@Aa @ éë+­ ·0K[[ñܹ%ÙÙï×®½Èd²¿Ü ÿ©«Ëîßï~ëV ††Ü¢E§gÍú--­èP`¨€Â€ š3Ç">>sÔsCÖØ±ü±49ùåš5Qlö`™ÜnÍE"aFFj‹ÙÚÙé?}ZúçŸf“ɤ‘#UDDàéà  ° š›Y–,™D¡‰ÎþeäHe}}¥?~¬6Íhð×Ö\jj²³g›OŸ>æýûê#GR¢¢74´«‰ŠRˆŽ/(¬ƒ#޽­«K5J•è, -å1cÔ÷íû³¤ä³ƒƒÀÔÖ!EE©éÓÇÎkÉ`´œ=ûàô黕•õ£F©À4 Cð€Bbñâ3ÍÍÌèh?¢ƒ€ŽÝ¾ýêûïϺ¸˜Îç2~Qu5#"âÁÙ³ŒæY³ÌV¯¶70P&:\`Ä€ REŽI™7´¤´µGRÝ¿?±¢‚>øïelO\œ:a‚ž··„„èþóüøñÔ¼¼ MM9%¥áDGƒÖ„wAkqqªµµÑY@Çôôh††*ûöÝx÷®ÚÑÑHÇ­EE)ÖÖ:>>v**27nä>œr÷nž¸8UW—F&ÃÝCL <¶m»r÷îëû÷ƒn4tHyôèíâŧ­­uNòì{srJNŸ¾Ÿ9lÅÍÍjٲɰ<ßP…5á‘]2}zXBÂZ ‹Dg]ÉÊz?þ‰Q£TÎ[*))JtœÞª¬¬¿t)="âaYY­­­þ’%“bmAÐç ° Tìí÷[ZjïÛçFtð/^|ðô<®££xþü2iia˜ßÚʺv-ëܹÏž½3FÝÓsüìÙfÇ‹ (¬•£Goÿö[rVÖnAŸc0¼}[éáqLAAòâE?99 ¢ãô™ÜÜÒ ž\½ú¬¥…åä4ÆÃÃjÒ¤‘‚8¡|-(¬•òò:KËÝGzÏœiJtðe¥¥5îîG)rlì ![^ƒÉd§¦¾Ž‹{š˜˜#!!6s¦ÉÂ…¶ÆÆjDçý kÂÆËë‹Å‰‰YAtÐ-¥¥5Ç(rLÌ %%i¢ãô½¢¢ªèèôØØôÊÊz++m«ï¾3ŽÙ/  (¬›¤¤Üï¿øp«––ÑY@·TVÖ{zoll¹pa¹¶¶"Ñqú‹Å¹sçUttZJÊ+ CF®®ã¦NE¡‰Žú Ö„ ‹Å±´Üíáa¹e‹3ÑY@w56¶.Yž™ùþܹﭬ„y%òæffrò˸¸§©©¯Éd’ƒƒÑܹã¦L%"Ë` <(¬¡ë—.¥?}ºŠÂd²×¬‰JN~yâÄ¢iÓF§ß•–Ö\½úìòågyyåššò³g›Ï˜abd“°Ö„Paa•ÝOß;8|ÇwíŠ?sæþ¾}s½¼lˆŽ3@^¼øpùòÓ„„¬kµ´fÌ0™1ÃdìX ¢s¯…5áäêzxøpñ³g}‰¾Ú‘#)?þxcýzÇ œˆÎ2 Þ¼)¿~=+!!;/¯\NNbêÔQ3gšÂ,…5á÷týú‹;„r¡ ¡ñpûöË‹Oܽ{¶­½gÏž{÷îu½OSÓ0:}8.ÝÚJ•’¢kj¾˜lCÙöíÛ'OžÜ˃ˆôI`°™1Ã䇮^¾ütåÊ©Dg_mñb[%%é•+ÿ¨¨ >¼@TTx*–ÜÜÜׯ_ÛØt5ÑEV©ª¶ TÕÐ@a³1iiÙ‹74]ºtiéÒ¥½?Žð\¦?11ÊìÙf.!:è-ÒþýnAAq?üpÖ ƒÖ„œ»»UfæûW¯Êˆz ð œy“¿ IDATòüã‡~~´´°ˆNÔïöìÙƒaؾ}ûx[¢££±Ždee!„òòòœeee•••]\\²³³¹­V®\©®®ÞÐÐÀ;NAA•JŠŠêM¼†††ÀÀ@)))KKËü‘ÅêàCáÏ©¥¥µp᪪ªnvñöíÛ^.ÙÑû#tÖ„œ­­ž¶¶â<$:èîî–§Oû¤¤üíë{†No&:N?Âq<::ZSS3&&†·qÖ¬Yeeeeee=B•ýÃÈȨ¤¤d„ jjj·oßNLLÔÔÔ´³³ûûï¿B!!!L&sÿþý¼ãlÙ²ÅÆÆfþüù=ŽW__?nܸŒŒŒÐÐÐgÏžEEE988°Ùìö;?zô¨¬¬¬´´4<<œN§›››×ÖÖv§™Í›7÷8ä@ÃawâDªžÞf:½‰è  Ïäæ–ZXìœ4é§¢¢*¢³|77777·îì™aXrr2BèÍ›7mÞÍÏÏoSÈ-_¾|Ö¬Y‡·eÑ¢E .ä~%&&V\\ŒãøÃ‡EDDrss{s"7n´³³c±X¼- CKKëÔ©SmöDåççó^r8œI“&÷¦÷îkÿj!Óû¾`Ä€ðssÇb±¯^}NtÐgŒÕnÝ TR’vt<ø×_/ˆŽÓ/¢££'Ožpà€”””­­mZÚ.¸ÙûÚüV¯Žœ:u?Ñ)@c2ÙÛ¶]VU]wð`"ÑYº«›#ÖG[[ûĉ8ŽoÛ¶ÍÈȨÍmb›››I$Ryy9÷e=Þ>oÞ¼]³fŠŠJ]]o{hh¨««ëû÷ïsrrÌÍÍ·lÙB§Ó©Tª¯¯oiiidd$B¨²²’ÛãôéÓoß¾]ZZŠªªjû炇*))ñïÉ`0пG¬qÏÈÈ‘‘é¬wþæÜ¹ãø?³b¸ãññññªªªL&³Ãæaaa4íÊ•+?~¼qㆪªê+^ÔG#ÖPXÒÒ TTÖ>{VLtÐ÷Ο¤©¹aÅŠ?ššZ‰ÎòeÝ,¬ŸŽŽf±X †YXX „ºž ¢¬¬,&&Æ-CÑ?uäçÏŸÛìæåå…š7oÿÆââbîªEEET*5//ÏÉÉÉÂÂ"""‚gCCC„ŒŒŒ²²2w8™_VV7-oÏåççëêêvÖ{‡ÍÅÅÅgÍš×ÐÐàããÓYó’’SSS^ñcÇv£ÏAa `¨X°À&>>³®®‘è  ï¯›P_ßìäôsvv Ñqz‹ÍfÇÄÄ„……ñ¦s¬_¿ž;¤ÚY‰dooòäIþíkqî|å6ËÏqǘ¹µxMMÍ“'OšššÜÝÝŸ?~ôèQþ) ÷ //¯Ý»wó¯ÒÐÐêääÔfÏ6p?v옳³sg½wÖÜÓÓ3..îÚµkúúú5×ÒÒâ­3ˆzùòe‡1úֆйs-1 »råÑA@¿ÐÒR¸zuµ®®âܹGââž§Wîß¿_YYéåå%ùùóçççç·!ærþüùÍ›7çäädeeíÚµëÔ©SU·üæÌ™ôîÝ»œœ''§#GŽ´´´´¶¶R©Ô¦¦&îì‘úú¶ ®¬¬´··OJJÊÏÏ¿zõªµµµššÚŠ+ÚwQUUU^^þáÇ»wïΞ=»¨¨ˆw'bûÞ;ËéèèXSS³cÇ__ß.ÂûùùÆÇÇ———'%%ñ;Ðgz?›k×^˜4é'¢S€~ÔÚÊ ¾ª¢²vëÖË­­¬/7pÝ™c½|ùrGGGþ-GWWwóæÍ¼-®"÷üùs{{{iiiCCÀ€ƒabb¿C‡­ètº¬¬¬¼¼ü²eËp “““ÓÐÐ8zô¨§§'Fkß–Á`lذÁØØX\\ÜÈÈhïÞ½í{á¯<544¼¼¼***ºè¿y›C-[¶LRR’Á`tÑœÅb8p@OOOBBÂÆÆ†;Þõ7õÑk ‡'‚2ž={7sæ/ññþ––ÚDgý(9ùåš5Qššr§OûhjÊç_ÜÝÝB±±±DÿƒaXLL ÷£é ˜ `±°al¬·0 =£ÄÄu,gúôCwï¾!:* °0´xyÙ$$dÕÖÂ-ŒBN[[1!!ÀÎNÁ‚“?ÿœÄáÀŸèA¿ƒÂÀÐâê:ŽB!_º”AtÐï$$D_ôÓOsûí–Ï:½‰èD@ÈAa `h‘”uv6¹xqŸr µ`Mxø÷E³g..þDt Ì °0äx{Oxýº,-­è `€L:*1q=‰„99…%$tµb½…5€!ÇÜ|„™™æÙ³÷‰Έòׯ¯uuµðóûcãÆ˜ÆÆV¢!…5€¡hÑ¢‰‰‰9ååuDGTT$$Ä5&Æ/%åÕ7ßì{ú´ˆèD@Ø@a `(rq1>\<*ê1ÑAÀ@›8ÑàÖ­††*sæ†ÕB@ß‚ÂÀPD¥ŠxxXEF>f2ÙDgM^^òܹ%ÁÁ³~ÿ=eÞ¼cð‡ Ð7DˆÃÛ{ÂñãwþúëÅŒ&Dg ð%K&Y[ë¬Xñ‡½ýC‡<Œ¬÷{÷î988 Xw`ÀÀ#Í ]ÞÞ'››™—.­": Þ¼iSìõëY+VLÝ´i:…BîïÞ9V^.¥;ô\(¬ÈìÙîzzÚááÐz"++ÞO?8°ð÷ßï¾ývÈñã©t'‚ …5éÓ‡åï?:"" w€–LêråÊ¿¦Nu]µê§ >xPFw"èqPXBÈûï)+«Ž½Iwè¹ t¶l™³¢  |„;ãð71P…//ü% L"yzæÌ§tž®¦Föÿ¿oßy‡þ›6M=ÚšîDÐ#`Çà/‹KOωÐzº>}Xë×O9~™gÖ¬o>øàÐýû%t‡ú¡°øË¨QÖÎÎaaWè¯kkã#G>üå—UOŸ>?~û'Ÿ+.®¤;Љùïÿ›î =“ÉØ»÷¼¿ÿh]]mº³À«ÁÔ”ãë;ÜÊŠ™òí·ˆƒƒ™¶6‹î\@ôXüOMÌÝý?K–ŒÿôSOº³À+¦¦Föý÷—öî=¯P4|øá[K–ŒçrÙt‡‚n…Âào¾ü26**5%e#‹Å¤; ¼zž?¯;v,yß¾óOžH}}‡¯^íejÊ¡;tÖóèQŨQ[öî]0uª ÝYàU%•Ö†‡ÿqàÀ…gÏêÞL@ÀºCA—Ca ÐX@@XiiÕÉ“+鯶gÏêŽMÚ¿ÿü“'R/¯!~8nÔ(ܘïu†Â ±ääû3g~·ÚÙÙ‚î,ðÊ«©‘<™~èÐå?ÿ|äèÈÿðÃq3f ÓÖÖ¤;¨ k€fLœøÕ°aV¡¡¾t×GRRöá×ϻÅå²ýýG-Z4íׯÖÍ8vìê† 1©©ÁFFútg×JAAyXØ•cÇ’¥Òš‰Ï›7râÄÁššx´Èë…5@3êêêGŒØìç7jýú)tg×Ðóçu±±QQ)IIÙ<žÞìÙÃýüFZ[Ó :…5@óvî|Û¶mõõÍüw¡z]++«… –––¶ñÙÙÙÌÙù:…5ÀË-^<öéÓç§Oß ;ôR …"22ÒÒÒR(*ON›6M"‘H$’¤¤$Bˆä…ýë_Íž3fÌúõë;£ªªÊÝÝ=555$$$===((èØ±cžžžr¹¼éत$‰DRPPpäÈ‘ÊÊJ77·ŠŠŠ¶\…Ëåv2']ð€€—31áLêràÀ…Ù³Ýñ°è~™™™wîÜùí·ß<==³²²ììì!::::::„êêjBˆ©©©r¼A³çU7¼;`óæÍFFF‰‰‰L&“bggçåååäätäÈ‘>ú¨Ñ`###êÒ|>„ &Lؽ{÷þóŸ—^…Çãu2']°c Ð&K—N¸sGrõê}ºƒ@o9~üx{{{ÕMëvQm`0‡vpp022Ú¾}ûÑ£GÈáp6nÜH ÉdÀÄÄÄØØX Èd2BHDDDpp0UUStuuADDµxbb¢¥¥å•+ï¢Ã`0ccc[Z\uzXX•súôé«W¯¦¦ÔÖÖR+4.—ËCCCíììôõõÇŒsíÚµŽ}D„ M† 19rÝêñóó#„Ìš5«Ã…u# )))Û·o :{ölFFFhhèÖ­[ËÊÊ!»wïÎÍÍMKKKLL<þ|pppEEEQQ‘‹‹K£u\\\îÞ½Kïܹ3<<ÜÕÕµéålmmïßÿëï¥MovºŸŸß‰' !äܹsl6ÛËË«Ùé{öìÙ±cGHHHVVÖ† Ö­[§–¨ÝÐ6±±7û÷_•]LwxMøøøøøø¼tXrr²¦¦æãÇ Ezz:!$33Su€X,n¶¨kt^õ%!äúõë …¢®®®Ñ±X,V(ööö‰„ïââR^^N)--mt•«W¯òx}zذa¶¶¶-M·²²ºyó¦rÖíÛ·Õð´ k€vðóÅbiüøc2ÝA ·¸|ùrII‰¿¿¿Þ óæÍ‹Å"‘¨K¯;sæÌ   üüüŒŒ ooï½{÷B‚ƒƒKJJ&Mš'‹Ož<9räH>Ÿ¿lÙ²¦+”––^¼xqÆŒ¹¹¹Êo"6»x³&Ož\^^¾iӦŋ·’-00P œ:uª¨¨(..NÙ´ÝÍPX´ƒžžöܹ#¿ÿþ’LÖÌ{Ô.22rÒ¤IÆÆÆÊ3nnnÖÖÖêú cK¶nݪ¯¯ïêê:qâÄ¡C‡†„„B ÒÓÓÝÝÝ‹‹ËÆýüüâããµµµ›®ðæ›oš™™™››/X°@OO/==]ÙòÑìâÍÒÒÒòññ‘H$³gÏn%ÛòåËÁÚµkmll6oÞüã?ªûóhFWÿà5SPPþæ›[¿ùfÁ{ï5¾=@»øúúB¢¢¢èÒ1 ¡PHý¨ v¬ÚÇÜÜÐËkÈwßýNwèYPX´[@Àøôôüôô|ºƒ@‚ ݆èæ6›Ö  …5@G,Z4ö×_3%’ ºƒ@O #¦Msåñô¿ÿþÝA §@a Ð,30pBxøååRº³@€Â ƒüýGkk³~ø!‰î Ð# °è 6[ëý÷Ç:t©¦FFw Ÿ&Ý^a‹;pàBttÚüù£éί¤œœœƒÒÔ…5@Çñxz>>ø0oÞ( ÝqàÕ“žž¾téRºS€zà‘æ’Ÿ_6vì¶o¿}Êgº³Ðc Ð)ôóöòÍ7‰tš¡°è¬åË'ŠD®]Ë¡;Ð …5@g¹¸XŽe½oßyºƒPX¨Á²eo'$üyï^ÝA€6(¬ÔÀÃc°Éè´Aa   #0ð혘ôG*èÎô@a  3g32Ò?|ø2ÝA€(¬ÔƒÅb.^<îèѤÊʺ³ PX¨ÍÂ…c FDDÝA€(¬ÔFOO{þüÑßI&“Óº kuZ²ä­²²ê˜˜tºƒ@wCa  N&&œY³Ü÷îMlhPк k5[¾|bNNibâŸt€n…Â@ͬ­'M¼?л °P¿?ž˜œ|?==î Ð}PX¨ßÈ‘ƒ\\,¿ûî"ÝA û °èK–ŒÍÈÍ-¥;tÖ]â½÷\ è·gOÝA › °èL¦ÆòåcbÒ ÊéÎÝ…5@W™={¸±±Á·ßþNwè(¬º ‹Å ÿãÉWÓº k€.4þh6[ëСKt€.‡Â  éèh}øá¸#G.WVÖк k€®µxñ[„ˆˆ$ºƒ |}}ðjŠŠŠjï·fWü;J},óí·¿/^<®OÝq »5jõêÕt§€öñõõíÀ,Ö]. `ü¡C—„”÷ßCwèn>>>t§€î€V€.gd¤?wîˆýû/Ô×7к k€î°|ù$‰¤âÔ©ët€®‚ ;ðù†Ó§»íÙ“ÐР ; t ÖÝdåJû÷KnÓº k€nbccìååôÿOwè(¬ºÏÊ•7n<øãlºƒ@O´e˃±}ûvå™ÈÈÈfo±,‰T_ZYY-\¸°´´´½WÌÎÎf0ÜhºT*C‡Õ××>|ø¶mÛêëë›ÎêLòNVË ­@a Ð}\\,dzûïè=ŽB¡ˆŒŒ´´´ …ʓӦM“H$‰$))‰"yÁÑÑ‘’””$‘H Ž9RYYéææVQQÑ®‹r¹Üõë׫%UU•»»{jjjHHHzzzPPбcÇ<==åryÓÁN®ÆÀ]…5@·Z¹ÒãÒ¥{7o>¤;ô,™™™wîÜ9tèH$ÊÊÊ¢Nêèè˜šššššBL_`±X„###SSS>ŸÿöÛoŸÏ²¶¶ÖÐÐZ¡ét¹\jgg§¯¯?f̘k×®µ÷³m;ÖÝí“O???ƒ+; IDATccãF©ª««×¬YãääÄf³·nÝúìÙ³¦áÛ›\uz£¥ôôôª««[™^__jcc£««;zôhj ¼õ?EG{¬Šöü–ÔH(LY·.ê?6˜›Òº„¯¯/!$**Šî Ð> C(R|m‡VÚÌœ9ÌÌŒ»ÿyºƒ€ °  ‹Åüøã‰ÇŽ%=¥; t k:Í;¢_?½ð F€W k:iii~üñÛG^}ü¸šî, f2™¼®µV/‚ÄÐlþü7¿ù&ñÛoß°á]º³@»54(>|òàAYQÑÓ’’Êüü²üü2êemm=›Íss+¡;#tÖ4ÓÖÖ\²dü®]ç'ôë§GwhžB¡()©,((/,,/((/,¬((xRPP^Xø¤²²†Âb1û÷çòù†|¾áðáÍÍ ù|ÃÐÐÓº kú-Z4vÿþ ‡]^·îtgéí*+Ÿçå=~±ë\©Ü„~úô!DCƒaaÑ×Ò²Ÿ‰‰©§§ã€ýŒ LM 8vÓÕþûßúnÿ €6(¬Ú-'''!!A½kÒçÀD6;_K‹¶®ÜAƒyxxÐuõî$—7”·Ô¿AÑÑѲ°èkbb0`@¿©S‡R•´‰ ÇÌŒ£¥…ò š‡3Ú---méÒ¥ê]SCC[S“·re¡z—mŸ×¬°~ö¬îáÃ'Jç’’ÊG*d29!ÄÀ@ÇÊŠ7`@?gg OOGª’0 _³ÛÏ­Ca ÐA¯ÙÓ‹Ûû¹åéÓg*¥ský#F ¢JgêeŸ>¬®ÎvüøqƒÑÕWž…5´Omm½¶6 %D‡û7ú÷ç²XÌîLYµj•-—†N5jT{§ °€¶ÊÏ/ûï žDF.뺫<{V—]\\\Y\\I•ÎùùeÅÅOŸ<‘¾rý£G¦;tÖðr99¥»wÿvòdzC155PËšÅÅOÿ^:ÿUISýL¦†¹¹!µë}X “ÙâÆ³BÑPTô´ã)^S(¬ºÐªU«ìííµgdgg«ö‡( ÆáÇŒŒŒ¶oß~ôèÑr8œ7Rd2™@ 0111662™Œšž˜˜hiiF-U__¿iÓ&KKK##£… VTT´ž“Ï7´²ªtv.ÍÉùêêÕÏwïö[´hŒƒCj5‹©¡ñ¿šA&kÈË{¬¦OàõV€.Äd2ƾhÑ¢¶LIHHHII‰ŠŠúè£|}}322~úé§¥K—þóŸÿìׯßîÝ»sssÓÒÒ***-Züá‡BvîÜÞ·o_j‘¯¿þúĉ±±± ã£>úâ‹/BCCÛ˜™ºY‡ÏpBHYYõõëùééy©©¹"ÑÃçÏë˜L …BñàÁ“Ž|¯5F×}àu5gΜ—þ?”Á`ˆÅb›={ölܸñÖ­[µµµÔ— U¿e¨zÌ`0®_¿îêê*“É´´´T©¥.\¸`jjJIHHÇ·µµÍÈÈ2dˆr){{û/¿ürÆŒ„;wîܽ{—:n…¯¯/õ£µ4 ¾¾áÞ=IjjÞõëywïýöÛšv~l¯9ìXt¹+VÄÄÄ|ôÑGß|óMÓwèúúú„‹Õ蘒——gff¦|Éáp¨{{{ÕEòóómmm©c‡ÎÿššŽŽ|GGþüù£³²º©kà‚ Ëihh9rdÈ!T=___¯©©YXXØö¥x<Þ… lll!ʯEªß„þýûçåå999BD"Qllì† :ó#({B®]ˉèéõÉÌÜÒ™^?(¬ºÃÀwìØññÇS/¹\.!ä‡~˜={öž={Ú¾ÎÌ™3ƒ‚‚vìØñôéÓ€€€áÇúé§M‡-X°`Æ VVV„+V <¸½•ii¹W¯Þ—H*!L¦u><í 1ÖÝdéÒ¥111ñññ„·uëÖ5kÖlÛ¶m×®]'Ožlã"[·nýôÓO]]]544fÍšòèÑ£¦Ã‚‚‚¤R©———T*2eÊW_}Õ–Åe2øøÛééyW¯ÞÏÈ(¨­•ih0a44üuOkªªÖÐ`XYñÚ ÷À—Ú­_^|…–{zn¨¨Ð&*ÛÒ-ÑÒb.^<.8xZw¥x5à>Ö@ø|CGÇ2kë 33®B¡P½kuS yü¸*%%§°°¼ÙgžôNhBa0ffÒÈÈàÄÄ?·m;{ï^1“ÉhvëZ&køùçÑÑé„MM SSŸohaÑ—Ï7|ñ×¢¯ŽŽV·ÿtBa ÿ£¡ÁðôtôðœðçW_ýzûv¡†£¡¡QÓ‹".n-ŸÏ-*ª,)©ÌÏ/ËÏ/{ð ,))»¤¤òáÃ'ÔxmmMSSŽ¥e?õÜKË~|¾¡¦&~g¯!ÖЃÁðôtôôt¼|9ë‹/Îdd4j¼æó¹›Ãa¿ñ†é¸q›[WW/‘<}𠬨該ìNMÍ}ô¨B&“Sc8¶²Î6110110 ßÀFúú}ºóÇP/ÖТqãì~ýuu\Ü­;ãîÜ‘hjjÈdr‡ÃniŠ––&U47}ëéÓgÊímj·ûò嬼¼ÒÊÊj‡ÃVÖÙ*e7Ç¢¯†£«~H5Aa ­a0ÿøÇoo§ÄÄ;;vüš‘Q`fÆíØRÛÙ™íìlÑè|M¬¸¸òÁƒ2ªì..~šŸ_vùr–²«DKKÓ̬™®’þý¹,³³?!€š °€—c0ƒ=<_ºt/--O½‹÷éâjåF]%2™üÑ£Šâ⧪ewFFÁÇOž?¯£Æ4ÛUbeed`€®èn(¬ Þzë·Þz£{®Åb1_ÚUR\\I•Ý—/gåå=®¬|N P~u’ZÁØØ€zIcWÉ–-[.]ºDË¥¡>ÿüóñãÇwx: k€:xð ÝÔ#'GZS#¿sç Ÿoš‘ñÃakkkêè°ôôú0™=ôöíí*)((§¾|Éb1û÷ç*ëleÙmiÙå÷ÌÌ̼{÷îèÑ£»ô*ÐaÇ_²dIgV@a ÐAK—.¥;‚zhjr ßÓÔRVF¼½wýý- mm–ŽKKKÓÀ@‡ÍÖÒÖf¹ºZ~þùTºÒ¶®]]%÷îþ›´dë9X,¦‰ ÇÄ„Óè«“2™¼¨èiaayAAyAÁ“ŠÂÂòääûÑÑi552Bˆ††é›o>¢)5tÖð7sæŒèߟûÁ‡êêêëëUwX\®ÎÊ•ï½çêï?ÊÞÞŒ¶ˆ=‹Å´°èkaÑ·é[W– º?t'tÜ@cãÆÙ9óOCC]Õçjj2üüFN›æzâDš‡Gèüùù%C&“Ó˜óUÁãé jÁåÖ´}Ê–-[ ÆöíÛ•g"##͉Dª/­¬¬.\XZZÚÞÙÙÙMo‹ÑìÉF¤R©@ :t¨¾¾þðá÷mÛV__ßtXgB¶%FW¯Ð(¬ f¿ý¶fÐ #MMemÍX¾|ÒæÍ323·üôS ®®v``ø!Ÿ¯[uûv!Y_; …"22ÒÒÒR(*ON›6M"‘H$’¤¤$BˆäGGGBHRR’D")((8räHee¥››[EEE7D­ªªrwwOMM IOO :v옧§§\ÞÌ߸:’Ëå®_¿^ÝÙÕ…54ÏÄ„³bÈs‹ÉdjLžìH}m‘ÉÔ7ÎîÛoßOM ^¹ÒãÒ¥,OÏÞÞ»""®*¿½‘™™yçÎC‡‰D¢¬¬,ê¤ŽŽŽ©©©©©©‘‘!Äô‹E122255åóùo¿ýöÉ“' ´{÷înˆºyóf##£ÄÄDooo;;»™3g¦¤¤äåå9r¤éà‡äñxª›÷= kh‘¡¡î‰Ë=<åò†÷ßÓè]Îòå“’’6…Ë è·aà W×MŸ|rìòå,ZÒ¾6"##Çïááaoo¯ºiÝF #00066–zYQQ±hÑ"gnn¾víÚššÕ¾ˆF=ÇŽ³¶¶622Z¶lÙ³gÏT—•ÉdÀÄÄÄØØX Èd2BHDDDpp0“ù¿–!]]]@A­œ˜˜hiiyåÊ•ÖC6]\uzXXrúôé«W¯¦¦ÔÖÖR+4.—ËCCCíììôõõÇŒsíÚµö~Œ€ÂZÓ§ë»ïmÚ4mìXÛfhh0^l`oZ·nJffÁœ9û'LÙ»7±¼\ÚÍi_TˆŸŸ!dÖ¬Y(¬ !¶¶¶÷ïß§ŽW¬XQPP’’ò믿ž;w.$$¤•‰‡Ž‹‹;{ölBB–-[TßÚ½{wnnnZZZbbâùó烃ƒ+**ŠŠŠ\\\-âââr÷î]êxçÎááá®®®­‡lºx³ÓýüüNœ8AÝjýܹsl6ÛËË«Ùé{öìÙ±cGHHHVVÖ† Ö­[מϯ£juóæ@8hÐ:+«µa—.Ýkhh ;ý||||||^:,99YSSóñãÇ …"==’™™©:@,7*á!b±XõLjj*—ËU(uuuL&óÖ­[Ôù˜˜Õ”ÇÔAFFu^(8Pu¤½½½D"¡Žããã]\\ÊËË !¥¥¥~„«W¯òx¼F ¶²ÙÅU§+cH¥R]]Ý””…B1wîÜ   –¦ÛÙÙ………)¯þÒº—" [Ó:ÜnÔÌÙÙ⫯,>ÿ|êéÓ¢°°+sæì4ÈÈÏoäœ9#y<=ºÓõt‘‘‘õõõ<OyF(:99µk±XlmmM)..–ËåÔ1!ÄÆÆ¦  @u¤âïÚ´µýë÷T©ªúV^^ž™Ùÿî±Èáp¸\®©©©H$òððP)‰† ¦\ç¥!›]¼Ùél6{Ú´iÑÑу>sæÌ7Zš^WW§º•îììÜR 5B+t ùóGÇǯŠúØÙÙ"44näÈ-Ÿ~úãµk9ŠVŸšÞ›Éår¡P¸k×®ªV¯^Mm£¶}…B±ÿþwÞy‡bbbÂd2srr¨·îß¿Ïçó©cê¦x……»£ µ7LÉÊÊ0`€ê[Ô&4µ5[^^žœœLñ÷÷ß¼y³ê=@¤RiHHˆ··7õ’úneë![Z¼Ùé~~~ÑÑѧOŸ6l˜ò¯M§[YYݼyS9ëöíÛ/ýÜ:…5t!ƒ1v¬í¾} nÜøwPÐ;·n̘ñßqã¾Ü»7±¸¸’ît=ÎåË—KJJüýýõ^˜7ožX,‰D­O,---***,,¼xñâŒ3rss©/ù±X¬9sæ|òÉ'¹¹¹·nÝúüóÏýýý¹\.!ä‡~¨¬¬Ü³gê:kÖ¬ÉÎÎNMMý׿þµhÑ"Õ·fΜ”ŸŸŸ‘‘áíí½wï^BHpppIIɤI“âââÄbñÉ“'GŽÉçó—-[Öö--ެɓ'———oÚ´iñâÅ­d §N***Š‹‹S6mw­Îô‘´WVVÑÖ­gœœ>çóWùúJyö¬–îPÝ¡-=ÖK—.øÀÐа_¿~R©”:_]]½fÍ'''6›íèè¸uëÖgÏž5ÍÙzȦ‹7ÛN ÐÓÓ«®®nez}}}hh¨®®îèÑ£©-ðÖ?|Òék†¿‹€n'“ÉÿýnttÚ¯¿f°ÙÚï½ç²pá''>ݹº¯¯/!$**Šî Ð<ƒ! ©?¦ŽÁ—€,ÓÓÓÑÓÓ±¨èé‰iW#"®:;[Ìží>{¶;—˦; @»¡ÇèdjÊY¾|Òløùç•ÎÎæ_~ëêºiéÒðË—³ð{uxµ`Çè§¡Á1bЈƒ¨›ôýðÃsæì8ÐhæL·¹sGòù†tx9ìX@Bݤï·ßÖÆÅ­ž8Ñáðá+#Gn™3gÿ™3"™LþòùôÁŽ5ôDÎÎÎÎëÖýã矯GF^[º4ÜÜÜpΜsæŒ47Ç6ôDر€žK_¿Ï‚oÆÆ®JL\çí=äðá+£FmñõÝâDÚóçut§øÖð pp0Û¼yÆÿ>pàý>}4W­úÉÅeÓš5”<Çz ´‚À+CKKóÝw‡¾ûîÐÊÊç§O‹ŽO>ý¿¦¦œY³ÜýüFdDw@èÕPXÀ«‡úŽãüù£Åâ⨨ÔãÇSöîM¤nƒ=kÖ0CC]ºBo„'/À+¯¡AñÇâãÇScc3&Ovš=Ûýí·45{P׫¯¯ï¥K—† Bwh^BBB'Ÿ¼ˆÂ^Ê‘ÔÔ\λï7o”ƒƒݹ!d×®]ÉÉÉt§€Ö¬ZµjôèÑžŽÂ^CÊ‘’’*´ˆ@÷@a ¯­W¢E^(¬àõWRR“•r÷®ÄÊŠçã3|ölw ‹¾tç‚× kèEnÞ|•úóÏ×+*ž1pæÌaï½çÂá°éίÖÐë44(ÒÒr££Ó~þùú³guÆYùø Ÿ>ÝMOO›îhð Ca ½Wmmý¥K÷¢£Óââ254Tö„ ö,“îhðêAa @**ž={óøñÔ´´<GçÝw‡Îží>|ø@ƒAw4xe °øŸ‚‚òS§®ÿøãµÜÜRssÃiÓÜæÍ9p –/‡Â O;}úFié_wž>ÝÇÓ£;ô\(¬Z$—7$%e?žú믙55²7ß´™=Ûýw†²ÙZtGƒ…5ÀËÕÔÈâãoGG§]¸pGGGËËËiêT-:sFôðá++Ua;:òéδAa Ð)÷î=+:uêFvvIÿþÜüÃyêÔ¡¸U_/„Â@=¨ ûçŸoÜ¿ »7Ba  fT…}òäõœœR>ßÐÛ{*ìÞ…5@W¡*옘ëÔãf¼¼†L:tĈAtç‚. k54(®]Ë9sæFllFiiÕàÁý§Nu™2ÅÙÖÖ„îh N(¬º‰\ÞpõêýS§nœ:u½ººÖÆÆxÊç)Sœ-èŽj€Â »Éå ééygÎÜüå— ‰¤¢o_݉¦Nu™0ÁžÅbÒ:…5¨>ì3gnfeèŒÿ†‡Çà)SœuuµéŽíƒÂ GÈÏ/‹¿}æŒ(--O[[sÜ8»wßêååd` Cw4hÖ=Ë£GçÏ߉¿ýûïwnn¦Nu™:ÕÅÄÄ€îhÐÖôHHHÈÉÉie@U•ìîÝê;wªòóŸBÔ<ÙØØ-"êááá1h:o}¨©Æµ í§Z~Ò@a ÐÓ)ŠÈÈHKKK¡P¨<9mÚ4‰D"‘H’’’!’ !III’¿ëÀusrrx<žòeUU•»»{jjjHHHzzzPPбcÇ<==åryÓ¹T€‚‚‚#GŽTVVº¹¹UTT´å¢\.wýúõHK;<  §ËÌ̼sçÎo¿ýæé陕•eggGÑÑÑÑÑÑ!„TWWBLMMU§5:“ÝÞë644”••)_nÞ¼ÙÈÈ(11‘ÉdBììì¼¼¼œœœŽ9òÑG5š« Àçó'L˜0a„ݻwÿç?ÿyéEy<žêÆü+;Ö=]ddäøñã=<<ìííU7­;¬¢¢bÑ¢E<ÏÜÜ|íÚµ555„³gϺºº²Ùl333ª´5jQ)Ù#""‚ƒƒ©ªš¢««+"""¨î‹ÄÄDKKË+W®4ºƒÁ Œ¥^Êd2@`bbbll,d2™êô°°0ª‘cúôé«W¯¦¦ÔÖÖR+4.—ËCCCíììôõõÇŒsíÚµÎD€Â G£ú@üüü!³fÍjca-•J«U4ê„^±bEAAAJJʯ¿þzîܹªªªY³f¹¹¹‰Åâ;v•––&''BŠŠŠ!EEE....äââr÷î]êxçÎááá®®®MóØÚÚÞ¿Ÿ:Þ½{wnnnZZZbbâùó烃ƒ›îççwâÄ …BA9wî›Íöòòjvúž={vìØ’••µaÆuëÖµå#R?ÐÁÇÇÇÇÇç¥Ã’““555?~¬P(ÒÓÓ !™™™ªÄbq£¢®iÉwæÌå°ºº:&“yëÖ-jpLLŒMmmí;wª««årùÅ‹ !b±XuåòòrBHiii£xW¯^åñxÔÈŒŒ e±X¬:,55•ËåRÇööö‰„:ŽwqqQ®¼¨T*ÕÕÕMIIQ(sçÎ jiº]XX˜òZááá/­r !B¡°õ1í…k€-22²¾¾^õK„B¡ÐÉÉ©õYb±ØÆÆFõŒ²Çº¸¸X.—[[[S/mll ´´´²²²–,YR]]Ýì–3—Ë555‰DªçE"Ѱaèc{{ûVò(¯˜——gff¦|‹Ãá4;ÍfO›6-::zðàÁgΜ¹qãFKÓëêêT·Ò[ŠÑ¥Ð ÐsÉår¡P¸k×®ªV¯^MmµvxM&“™““C½¼ÿ>ŸÏþü¹¯¯¯@ ¸~ýú¾}ûšèïï¿yófÕ{€H¥Òoooê%‹Åjv¢B¡Ø¿ÿ;ï¼C½¤v¸©]Þòòrªá¤Ùé~~~ÑÑѧOŸ6l˜­­mKÓ­¬¬nÞ¼©œuûöív} ê‚ çº|ùrII‰¿¿¿Þ óæÍ‹Å"‘¨Ãk²X¬9sæ|òÉ'¹¹¹·nÝúüóÏýýýkkkëêê´´´ž?¾iÓ&BHUU5žºë!$88¸¤¤dÒ¤Iqqqb±øäÉ“#GŽäóùË–-kz•ÒÒÒ¢¢¢Â‹/Θ1#77WùMÄ™3gåççgddx{{ïÝ»·¥¨“'O.//ß´iÓâÅ‹•'›N $WO!IDAT §N***Š‹‹S6mw3Ö=Wddä¤I“Œ•gÜÜܬ­­;yoo¾ù¦ÿþÇŸ XQilla Simple API Documentation SourceForge.net Logo

ATDoubleOrDerived Member List

This is the complete list of members for ATDoubleOrDerived, including all inherited members.
_ref_countReferenceCounted [protected]
abs(const DynamicContext *context) const =0ATDoubleOrDerived [pure virtual]
acos(const DynamicContext *context) const =0ATDoubleOrDerived [pure virtual]
add(const Numeric::Ptr &other, const DynamicContext *context) const =0ATDoubleOrDerived [pure virtual]
ANY_SIMPLE_TYPE enum valueAnyAtomicType
ANY_URI enum valueAnyAtomicType
asDecimalString(const MAPM &value, int significantDigits, const StaticContext *context)Numeric [static]
asDecimalString(int significantDigits, const StaticContext *context) const Numeric [protected]
asDouble() const Numeric [virtual]
asDoubleString(State state, const MAPM &value, int significantDigits, const StaticContext *context)Numeric [static]
asDoubleString(int significantDigits, const StaticContext *context) const Numeric [protected]
asin(const DynamicContext *context) const =0ATDoubleOrDerived [pure virtual]
asInt() const Numeric [virtual]
asMAPM() const =0ATDoubleOrDerived [pure virtual]
asString(const DynamicContext *context) const =0ATDoubleOrDerived [pure virtual]
atan(const DynamicContext *context) const =0ATDoubleOrDerived [pure virtual]
AtomicObjectType enum nameAnyAtomicType
BASE_64_BINARY enum valueAnyAtomicType
BOOLEAN enum valueAnyAtomicType
castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const Numeric [protected, virtual]
castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
ceiling(const DynamicContext *context) const =0ATDoubleOrDerived [pure virtual]
checkDoubleLimits(Numeric::State &state, MAPM &value)Numeric [static]
checkFloatLimits(Numeric::State &state, MAPM &value)Numeric [static]
compare(const Numeric::Ptr &other, const DynamicContext *context) const Numeric [virtual]
cos(const DynamicContext *context) const =0ATDoubleOrDerived [pure virtual]
DATE enum valueAnyAtomicType
DATE_TIME enum valueAnyAtomicType
DAY_TIME_DURATION enum valueAnyAtomicType
DECIMAL enum valueAnyAtomicType
decrementRefCount() const ReferenceCounted [inline, virtual]
divide(const Numeric::Ptr &other, const DynamicContext *context) const =0ATDoubleOrDerived [pure virtual]
DOUBLE enum valueAnyAtomicType
DURATION enum valueAnyAtomicType
equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const Numeric [virtual]
exp(const DynamicContext *context) const =0ATDoubleOrDerived [pure virtual]
fgDT_ANYATOMICTYPEAnyAtomicType [static]
FLOAT enum valueAnyAtomicType
floor(const DynamicContext *context) const =0ATDoubleOrDerived [pure virtual]
G_DAY enum valueAnyAtomicType
G_MONTH enum valueAnyAtomicType
G_MONTH_DAY enum valueAnyAtomicType
G_YEAR enum valueAnyAtomicType
G_YEAR_MONTH enum valueAnyAtomicType
generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicType [virtual]
getInterface(const XMLCh *name) const =0Item [pure virtual]
getPrimitiveTypeIndex() const =0ATDoubleOrDerived [pure virtual]
getPrimitiveTypeName() const =0ATDoubleOrDerived [pure virtual]
getPrimitiveTypeURI() const AnyAtomicType [virtual]
getRefCount() const ReferenceCounted [inline]
getState() const =0ATDoubleOrDerived [pure virtual]
getTypeName() const =0ATDoubleOrDerived [pure virtual]
getTypeURI() const =0ATDoubleOrDerived [pure virtual]
greaterThan(const Numeric::Ptr &other, const DynamicContext *context) const Numeric [virtual]
gXQillaItem [static]
HEX_BINARY enum valueAnyAtomicType
incrementRefCount() const ReferenceCounted [inline]
INF enum valueNumeric
INF_stringNumeric [static]
invert(const DynamicContext *context) const =0ATDoubleOrDerived [pure virtual]
isAtomicValue() const AnyAtomicType [virtual]
isDateOrTimeTypeValue() const AnyAtomicType [virtual]
isFunction() const AnyAtomicType [virtual]
isInfinite() const =0ATDoubleOrDerived [pure virtual]
isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicType [virtual]
isInteger() const Numeric [virtual]
isNaN() const =0ATDoubleOrDerived [pure virtual]
isNegative() const =0Numeric [pure virtual]
isNode() const AnyAtomicType [virtual]
isNumericValue() const Numeric [inline, virtual]
isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
isPositive() const =0ATDoubleOrDerived [pure virtual]
isZero() const =0ATDoubleOrDerived [pure virtual]
Item()Item [inline, protected]
lessThan(const Numeric::Ptr &other, const DynamicContext *context) const Numeric [virtual]
log(const DynamicContext *context) const =0ATDoubleOrDerived [pure virtual]
mod(const Numeric::Ptr &other, const DynamicContext *context) const =0ATDoubleOrDerived [pure virtual]
multiply(const Numeric::Ptr &other, const DynamicContext *context) const =0ATDoubleOrDerived [pure virtual]
NaN enum valueNumeric
NaN_stringNumeric [static]
NAN_stringNumeric [static]
NEG_INF enum valueNumeric
NEG_NUM enum valueNumeric
NegINF_stringNumeric [static]
NegZero_stringNumeric [static]
NOTATION enum valueAnyAtomicType
NUM enum valueNumeric
NumAtomicObjectTypes enum valueAnyAtomicType
PosZero_stringNumeric [static]
power(const Numeric::Ptr &other, const DynamicContext *context) const =0Numeric [pure virtual]
promoteTypeIfApplicable(AnyAtomicType::AtomicObjectType typeIndex, const DynamicContext *context) const =0ATDoubleOrDerived [pure virtual]
Ptr typedefATDoubleOrDerived
QNAME enum valueAnyAtomicType
ReferenceCounted()ReferenceCounted [inline]
round(const DynamicContext *context) const =0ATDoubleOrDerived [pure virtual]
roundHalfToEven(const Numeric::Ptr &precision, const DynamicContext *context) const =0ATDoubleOrDerived [pure virtual]
sin(const DynamicContext *context) const =0ATDoubleOrDerived [pure virtual]
sqrt(const DynamicContext *context) const =0ATDoubleOrDerived [pure virtual]
State enum nameNumeric
STRING enum valueAnyAtomicType
subtract(const Numeric::Ptr &other, const DynamicContext *context) const =0ATDoubleOrDerived [pure virtual]
tan(const DynamicContext *context) const =0ATDoubleOrDerived [pure virtual]
TIME enum valueAnyAtomicType
typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicType [virtual]
UNTYPED_ATOMIC enum valueAnyAtomicType
YEAR_MONTH_DURATION enum valueAnyAtomicType
~ReferenceCounted()ReferenceCounted [inline, virtual]
XQilla-2.3.0/docs/simple-api/functions_rela.html0000644000151400015140000000455611653571063016535 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
 
  • CompileDelayedModule::compile : XQilla
XQilla-2.3.0/docs/simple-api/InteractiveDebugger_8hpp__incl.map0000644000151400015140000000044611653571064021353 00000000000000 XQilla-2.3.0/docs/simple-api/classXercesConfiguration__inherit__graph.md50000644000151400015140000000004011653571063023433 00000000000000b32cea6fc80728f38dda5f55665c1178XQilla-2.3.0/docs/simple-api/URIResolver_8hpp__dep__incl.md50000644000151400015140000000004011653571063020476 00000000000000c92d0368ce014a31c3db2dd9755c744fXQilla-2.3.0/docs/simple-api/inherit_graph_0.md50000644000151400015140000000004011653571063016265 00000000000000520c45e22ba68071745a8b9fa52ddefeXQilla-2.3.0/docs/simple-api/classItem__inherit__graph.map0000644000151400015140000000666611653571064020465 00000000000000 XQilla-2.3.0/docs/simple-api/classTimezone__inherit__graph.png0000644000151400015140000000547511653571064021365 00000000000000‰PNG  IHDRuüýõ†bKGDÿÿÿ ½§“ òIDATxœíkLY€ßBË¥+Ò ƒ—]e£«ñ”ohLŒ~€¸YVÐ JŒh4~»`ÄŠx f— Q£DE©hp …-ÙÚ#–V0ŠV¼Ð¢ª-Xím¾“¯;ZÜÒ2œzž_çœyçœwæaÎ 3m‡A`F<>t'€ù,°'4ÀžÐ{B&µòçŸЕ †JllìÏ?ÿl«~âéõë×õõõIIIÞæd2Ypp0µ…Ù?¨¢¢b¸òÁ ̺uëìZðù °'4ÀžÐ{Bì \ñÄ #—ËıaÇãj’îA­V§¦¦N˜0ÃáÌ™3çêÕ«´¤ñäɃño×rñxº}û¶F£Ñh4 …bòäÉÉÉÉNÕêòòòÖÖVׯr ÝÝÝ3gÎd³Ù—.]jll\¿~}JJJmmíÐ{V©T<oèý8g€ÿŸ>>Ÿ ¡¡¡‡ …]]]`À`ƒÁ.g9tòòòâââN:EV§M›ÖÙÙyøðáøøø!ölµZ»»»‡œà ¸áüÄb±üüü¸\.Y5™L;wî …`çÎ&“iþüù@z0€œ þøãˆˆˆ›7oöƒQ^^>uêÔ±cÇ:tÌfs^^^DDŸÏÿþûïß¾}먨¬¬ÌÉÉ¡¦——WVVF–ß¾}»qãFž››ûáÃêìD-÷OcЭ³X,………S¦L Љ‰¹sçŽ+{™ péÒ%»–¹\®×ëõz}GGÇO?ý”žžn[zðàÁ„„„/^(ŠY³fíÞ½»­­Ú­£€•+WJ¥ÒÞÞÞþä ‰‰‰Z­¶´´º»» £££ …R©œ7o^nn®£þµZ-ôôô8Ú¢´´´%K–<}úT¡P|óÍ7ùùùÔœ©åþi ºuGŽb±X­V߸qC$ º““’’’’’>ÙçÔÊç{¢ÂápZ[[mK¿þúkFC–ëêê¾ýö[»-q P(ƒ644a4 ­­í«¯¾‹ÅdXkk«­ÜõžžÐjµnŽÑhôõõ}ðàY‹Å“&MrâÉ.A·nÊ”)gΜ±œ={vø<µµµ‘å¾¾¾;vÌŸ?ß¶4 €j‘ËåÚm‰££Ñè(€ôÑ£GÔ”Jeÿô\](Þºu‹ÖØØ8{öì¾¾¾—/_€Á` Û E@@5çÇS=Ù¥1èÖÊår[Àýû÷]ð4Ôó›ÍÞ¸qcKK ñÿãŒÇãÙ,jµÚ¿ÿþÛnG,Ëy€Ï'ÙŠD¢ööv²,—Ë8àdõÕ«W”Éàüùó&“‰Íf …B___•JE¶?}ú4,,Œ,›Ífèèè Žk—Æ [7a„ææf[@KK‹“ÕB•æÂñDÄóçÏ@§Ó‘ÕmÛ¶%&&¶··777Ï›7/;;Ûî/Î…»AÉr^^ÞôéÓ•J¥R©Œ‰‰Ù´i““Õß¼y’––vëÖ­æææüü|¨®®&WIMM]²d‰J¥R*•ÑÑÑ¿üòKWW”••½{÷níÚµ@9žìÒ “×ëõŽF?~ü¸@ ¨ªªÒh4555QQQƒîd÷Ï{AX,–Ñ£G?{öŒ¬êtºôôôàààÌÌ̾¾>; . ¸ƒ>|ø››+‰¸\nJJŠíô3àêA´··'&&ŠD¢   ¹sç^¿~Ý6bOOÏwß}2nܸíÛ·“s`AAÁ˜1c&NœxíÚ5'žL&ÓÂ… 9Ž£ÑÍfsaaá¤I“Fµ`Áòøv¾‡û{b”© ¢¢Âù¬˜á|þD}ˆïï¡ö„Ø`Oh€=¡ö„Ø`Ohà…žîÜQÑ‚ûàyî²eˆ?7¢RM éçg¤;×Q*•±±±Ô–O<?õ— Lƒ!Ðh  õtçâ:±±±äcb /»›WXXsô¨$22D&û/ݹ¸o;?]¾|ž?ï~øPMw.îÄ«<Ý¿ÿâÕ+-°X¾••÷èNÇx•§ªª&&ÓL&ËåËw­Vï™Ò½Ç“Åb½rå®Ùl!«]]úÆFï¹@÷O2Ù­ö½­Êbù^½ÚDc>îÅ{<‰ÅMLæ?›c2Y®]k2™,4¦äF¼Ä“Ñh¾~]n6[©:ÝÇ¿þzLWJîÅK/ñ$ßëÿ±:³ÙúûïÍïß#|Ɇ7xêíý(‘´X,Öþ‹L&K}½KŸkaxƒ§ºº£Ñìh©w\õyƒ§ª*‡&¬V¢¡á¡NgÎ|<7܇}õJKô,(Ø¿ÿ?K—N³µ„†rýý]üFÞíìIÂÃíZøü ÈÈZ’ñÞ0ï} `Oh€=¡ö„Ø`Oh€=¡ö„Ø`Oh€=¡ö„Ø`Oh€=¡ö„Ø`Oh€=¡ö„Ø`Oh€=¡ö„Ø`Oh€=¡ö„Ø`Oh€=¡ö„üžšJ¥ª¯¯÷\ÿN¨¯¯ïìlæA£¢¢–.]ê©Þ¿c(oU~X,ÿðk÷æ÷âñï}644xzˆ‘À¾}û<Ú?>?¡ö„Ø`Oh€=¡ö„4ÿ‹T*Ý¿ÿöüüüüüü/äšþs ÙSLLLee%h4šììl² A¤¤¤ÐšÚÈ‚fOþþþþþþ`0`ìØ±¶E™™™´¥5ò¡¿CÕÑѱaÃrÞ‹‹‹Ûµk×ŋ߽{·nÝ:wúôiN—ðÃ?€Ùl>uêTmm-ÄÇÇÿøãL&sùòådWV«Õb±]õööËd2??¿Å‹gddøùùÅÅÅíÝ»÷ܹsZ­655uýúõŽú¤ko*×÷îÝûõ×_333KKKe2YYYÙ–-[Î;§ÓéàÊ•+¦¤¤¤¨¨¨©©éôéÓ ‘H$Immí¢E‹V¯^Mösüøñ®®®ß~ûíàÁƒwïÞ½páÙ~óæÍ“'Ofee•””èõzG}Òž’““Ùl6yˆ¤¦¦²Ùì+V¹OkjjrrrATTTVVVcã?wÊ«««ß¼y“ f³Y*•nݺuܸqQQQéééuuudØš5k8N||<îôI #tÞ³ƒÍf9óPË$ ¶ê¨Q£È‚J¥*///..f±X Õj­V«H$"—†……‘/q÷™}ÒžœÃår=½½½===`0 öìÙC:€àà`F jµÚ¶ˆÁ`|NŸ4‚ƼçœE‹•––¾~ýZ¥RíÚµ«ªª Ž;¶jÕª3fØÂ˜Lf\\܉'4ͳgÏÊÊÊœ<Ö°Oñ†ã)##£¸¸xÓ¦M #666++ $‰T*-))±…I$’œœœâââÍ›7³X¬Å‹§¥¥ý«>iă¿ã[QQ‘œœü…ÜSØ·oŸÏ¯¨¨ðPÿÞ0ï} `Oh€=¡ö„Ø`Oh€=¡ö„¿Q]]íé!FjµšÏç{®{***òô#ê½D·ã ïúÀç'4ÀžÐ{Bì þ©œ}8.ãIEND®B`‚XQilla-2.3.0/docs/simple-api/XMLEntityResolver_8hpp.html0000644000151400015140000000611511653571064020032 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

XMLEntityResolver.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <xercesc/util/XMemory.hpp>
#include <xercesc/util/XMLResourceIdentifier.hpp>
Include dependency graph for XMLEntityResolver.hpp:

Go to the source code of this file.

Classes

class  xercesc::XMLEntityResolver
 Revised interface for resolving entities. More...

Namespaces

namespace  xercesc
XQilla-2.3.0/docs/simple-api/StaticType_8hpp__dep__incl.md50000644000151400015140000000004011653571063020406 0000000000000065eb9c6997d1fa1add35317c4f3f5349XQilla-2.3.0/docs/simple-api/classDynamicContext__inherit__graph.md50000644000151400015140000000004011653571063022403 00000000000000576d3b7389dcbae2d756dcdc69ef3c78XQilla-2.3.0/docs/simple-api/XQQuery_8hpp__incl.md50000644000151400015140000000004011653571063016704 00000000000000cab967883ffdbb37b38ebacdae1c2262XQilla-2.3.0/docs/simple-api/classxercesc_1_1XMemory__inherit__graph.png0000644000151400015140000030466511653571064023213 00000000000000‰PNG  IHDRu³QSgbKGDÿÿÿ ½§“ IDATxœìÝy ”[ÿðƒ(²¯YãfM ZÐ~+Ro{–äRÝÛvï-ª‹ê¶h½•´ïiÊ•([J–BŒ‰2öeûlÏïyóºc<³àûùë™gÎsÎ×X¾Î9Ïsކa¸æwÀùÀäW_ü áw „PBBÂáÇùÅ`Íïø ¿PUUcggÇï@¸ÏŸ?§¤¤ð; ȯ@€ò;„.00ÐÁÁßQ0(Àü+€?ȯþ ¿øƒü àò+€?ȯ ?ê@[[ÛÅÅåÛ·oüªg_¾|Yµj•¶¶¶¤¤ä¤I“=zÄA%BBBùùù¸Çàȯ ŸIJJª¨¨(++»uë™L633«¯¯çwPÿRXX¨¨¨ÈzYSScjj*!!ðöíÛ•+W:::>þœxžýŒ’’Òˆ#Bêêê³fÍš5kÖéÓ§8Àï¸þ‡Á`ÔÔÔ°^zyyýüóÏׯ_g¾=ztee¥Ï¼yóø € ÿ ú1!!¡M›6EDD0_Ö×ׯY³FQQQCCÃÝݽ­­F£yyyiii)))¹¸¸0{ºùùùBBBÌK: ݼyÓÈÈHII騱c÷îÝÓÑÑ‘‘‘Ù»w/³•JõððPQQQVVöðð R©Ì«üýýŒŒäåå½½½B!æ?¡77·Ža{yyݸqƒyüôéSfïVUUõرc¡.cfzñâ…®®®œœÜÑ£G» 0@@@;?!‰ÔñÌ»wïdee™ÇNNNsæÌ)(( cƌٿÿ‰'Œ Bvv¶¹¹¹»»;†a$‰ÕVÇc„££#™Lfö5íííÉdòÕ«WBÕÕÕ†?~|ÅŠ¥¥¥ÁÌÌlçÎÌ«lmmëêê|}}B555묫«CÕÖÖvùåÉd11±_ýµ¬¬ÌÏÏ!ôõë×.cf6´páB2™Ò}H}ÿœ}¿i@ ô=¿R("‘È<ª««k``Ê<“““Ã<î&¿fdd0«úî˜Ù¨¡¡aEE³ptt´‰‰ óªøøøŽ%;ÖY[[‹ª««ëòËiooÏÍÍmjj¢Óé ÌË»Œ™ÙÐË—/1 £ÓéÝ‡Ô È¯ð Ì¿‚þD"5 !TUUE§Ó™Ç!]]ݲ²2„žž󌑑‘‘‘Ñw—cÖñ¥””BHTTô»c¦ââbUUUÖKæššÚw%YäääTTTrrr¦L™Â:ùîÝ»?þø#!!ABB"//oýúõMMM¦¦¦ÌwKJJ~3³!aáÿMëü($ßÁü+èÇ0 »|ùòþó„ŠŠŠˆˆHaa!ó­‚‚uuu55µââbæ™ÌÌÌ#Gް®¥Ñh¡òòrö›STTdõžëêêXÑtLx-^¼øäÉ“¹ŸŸ•J•hmmµ··÷ððÈÈȸtéóÝnbfM÷€ï ¿‚~æÛ·o•••ååå Ë–-+**Ú¾};BHTTÔÁÁÁÕÕµ¨¨ˆH$îÙ³ÇÉÉÉÙÙy÷îÝD"‘H$nÞ¼¹¤¤!$++‹º{÷.™L>wîûM/_¾|×®]%%%ÁÆÆæâÅ‹Ýnjjb9r$!!ÁÙÙ9))‰@ 8pàܹs̬ÙÞÞN¡PÄÄÄZ[[½¼¼B]ÆŒKHžâÓ¸4ÿÂþü+‹¦¦¦““SUUëÝÚÚZgggUUÕmÛ¶µ¶¶¶µµ¹»»«©©ÉÈÈ8::²æA>,++;jÔ¨ððpÔaþ•Õìò˜L&¯]»VNNNAAaÆ ÍÍÍ]–¤R©Ó¦M“””dV\\lkk«¦¦&%%5yòädzÞ:uꔼ¼¼¦¦æ¥K—•••3û!õýsôöï¿Yðs_Røiä6øœàðùÀäW_@ PüðëK~ji¡DF‚ƒÓÒÒ …„à§0p@ÿðGVÖç­[ï¿oûö‡RRÜœt1ŒÎï 7Ðc"èÿd‡ËjjrOŸnƒä ,ТÑ^^awî$nß>ÏÍÍJDþW€ÿü 8ñõkãºu·H¤*€.@~½VRRãàpYXX(,l‹Á~‡‚ò+èüü¯öö—ää$>ü]IIŠßက‚93Ð éé%‹ÕÐôÈ’+tÖGì*(øºdɹQ£”ïÝÛ -=Œßá€@ƒü ØR^^·dÉ9mmÅ{÷Ö‹‹‹ñ;t_AϪª–.=¯¢"óàÁFH®Àȯ ­­”¥KÏ·¶RÂÂ\ååaáC` Ü? ºÃ``üq¯²²!"b$W`äWÐ'"_½Ê ݬ¡!ÇïX ?ü ~èÙ3Âùó1'O®?^“ß±@?Ï¿‚®~Û¶í‹Ë‡ÉüŽú¸¿ t¡±±mþüSJJRAAÿ„@¯Áø0è¾}êêZ>ü’+pò+ø^ddv`à»Û·ƒ{š€cÐ;ÿR^^·mÛƒ5k¦YYó;èÇ`þüΰµ½X]ÝôâÅ_»NSaaaLL ¿£D6làw€ÿñað?þþ)iiÅmØäŠJKKÛ¸q#¿£D_(_ÁUTÔÿóÏW×¹'êð;–žÁ¸KGüŽð/0ÿ BÃ07·ûZZ Û¶Íãw,0@ÿ „P`à»ää‚'OÜàÀü1¨ººéàÁÇ..SML´ø _:räÉðáb»w/äw 0pÀøð`—˜H |çï¿ABBpï€~ú¯ƒ•Jß³'ÔÚÚxÖ,C~Ç ä×AíÖ­Ä’’j/¯%üBBBùùù8ÖÖ^•$ȯƒW]]ó©SÏ7l˜¥­­ÈïX¸¨°°PQ‡/0))©âßx ù×ÁËÇ'jذ!®®sùw1Œššš¾×£¤¤4bÄþÆèG ÿ:H‘HU÷î%mÛ6oøð¡üŽ…»,,,B¬ÔH¥R=<Wa`Púí·›3g£Ñèü¤×Øù¹E‘H$ ÃH$RÇòÇ_±bEii)@033Û¹s'³°££#™L¾~ý:BÈÞÞžL&_½z!T]]Í,™™ÙØ•J%“Ébbb¿þúkYY™ŸŸBèëׯ'Nœ066&ÙÙÙæææîîîcprrš3gNAA@3fÌþýû™æÏŸ÷ìÙ3*•Ša˜ŸŸŸ±±1ƒÁÀå3ðüNF©©ªª[## ü„}̯†††Ìãèèhfጌ Ã(ÊwÇÌJ:ÿcúäÉ“öööÜÜܦ¦&:žÀ,l``ʬ?''‡yÜ1 …"""B$™/CCCuuu™†a4mĈ±±±†-X°àرcx}&^‚ù×Aðƒ››ÿdc3–ß±ðAqq±ªª*륌Œ ó@JJ !$**úÝ1 ‰DÒÕÕý®¶¼¼¼õë×755™šš2Ï”””èéé1ŒŒŒŒŒ¾»¤ªªŠN§5ŠùRWW·¬¬ŒylhhˆY¾|yhhè¸qãbbb˜Ýh@¿ó¯ƒÎ³g„÷ïK÷í€Ïä°CQQ‘Ù%Å0¬®®.%%…ãªZ[[ííí=<<222.]ºÄ<©¦¦V\\Ì<ÎÌÌ|(1BÆÆfÌîÝ --uEEEøpòë š^UEÞ¼Y°–ò§Ré¡¡é!!éII$IÉ¡óçóòZ2eŠ®°0lýè÷ ¿|4ãìÙh{ûÉjj²üŽå¿*+îÞMò÷O®¯o™=Ûèòekë1C‡ÂO#`à€¿hߣGéååunnVü!„RR nÝJŒŠÊ–••pq™âì<µ_Üo½ùu€£Ñ§O¿X¾|‚††#‰‰Éñö~F$–§éãã°d‰©˜üø,ø7À={Føü¹öîÝõ|ŒáåË>>Q™™¥‹™>¼|òäŸú^çµk×ú^É€‘žžÎï߃ü:À]»örþü±ººÊ¼oð§O³Îœy‘—Wåèh~ù²‹¦¦<^•oܸ¯ª€`}Ä,%¥`ùò ‘‘ÛÇ×äqÓDbùÞ½¡©©…³gyzÎ7Ž×Aÿu »v-aÒ$'W2¹õøñÈ»wߘ™ w4I‡—­€€€ü:`W¿xA¼zu5ÏZ¤Ó·n%ž<ù\LLäÒ%çE‹LxÖ4ȯÖõ믴´llÆò¦¹òò:WWÿ””B[Û‰ûö-VPäM» ˜ ¿LuuͤîÚõ^lñ•½}ûC%%©  ?¦LÑåA‹ à ¿L÷ï§ˆŠŠ¬\iÎí†ZZ(;w…„¤ÿñÇlOÏù°b00A~€¨Tú¯œ,$%‡rµ¡œœ/›6Ý©©i¾}û7++c®¶ý /=}šUSÓ´nÝ ®¶–±dÉ9iiñÈÈm\à;_ «W_.X0NU•‹«ùŸ=ýçŸ~ÎΖmÑÒRà^CÐOÁøð@“–VD |>|x—ê§Ñ!!iÞÞvNN–\jú;ȯÍ­[‰cÇjLœÈ•UÚÛi›6Ýyó†äï¿qút}n4Œ(ß¾5>}šµví4nTÞÞNsqñMN.xð`$Wèô_”€€·Ã‡]ºÔ ÷š)Úºu7sr¾ÿ9fŒ:îõÀùuà`00?¿d[ۉƉâ[3•J_¿þvZZIpðÆÆ\ g_Ž„„OŸ?׺¸LÅ·Z Ã<=““ó ¹» ¿÷î%YZŽÂ}«×þ‰xô(ãþý¦¦ZøÖ Üß4@TTÔÇÄ|pvž‚oµo/]Š;zt¬* ½ùu€¸?UNnø‚ãp¬óÇò]»‚7ožãèhcµ0@~h4Æýû)+Wšã¸¼~mmóš57¦LÑݱc^uÀàùu ˆÍùú•ìâ‚Ûà0Îøý÷»""Â/þ",,„Wµ0xÀýMÁ½{I³f¨«ËáUá¹s1©©…aa[dd$ðªè¿ö{_¾Ô'$|ÂqŠ4>þãÉ“Q,51†€C_û½‡S†[[Á¥¶¯_·m»¿páøÕ«q~Žȯý†aï–.52Ÿo¥§g „ÄPŸ•¸Ôƒä×þííÛ¢ÒÒš•+Íq©íáÃÔØØœóç‘”ŠK…¸°··½ÈïoƒÜßÔ¿¾36V74Tí{Uååu^^a6Ìœ0adßk×……ÅöíÛùEbooÏïì ¿öcÍÍí¿÷ôœß÷ª0 Û¾ý¡šš¬`>íª©©iggÇï(  ¿öcQQÙ mùò }¯êÁƒÔ¤¤üðpW11ø‘Àük?ønöl#É>ÖS^^wà@øÆ³ÌÌndú)ȯýUyyÝ›7${ûÉ}¯j×®`EE©¿þš×÷ª0Á``œ&'7|îÜÑ}¬çÅ bllnhèfqq1\€ ÿÚO±{íã‚þ--”¿ÿ±³›hnþ^±@_û©´´â¢¢oöö“úXÏÅ‹±MMm»w/Â%*þÒÓÓÃ0¬ãÉùóç åçç³SC~~¾P×›tóË—/_V­Z¥­­-))9iÒ¤G±yGìG p_û¥ÐÐtƒcÇjô¥’ÂÂo/ƹ¹Y+)Iágee±^ÖÕÕ½zõŠ7M×ÔÔ˜ššJHH¼}ûvåÊ•ŽŽŽÏŸ?çMëó¯ý…B {¿yóì>Ösà@¸––üºu3p‰JÌ;7((ÈÄÄ„ùòñãÇ3gÎŒŒŒäAÓ^^^?ÿüóõë×™/G]YYéãã3oÜ5À ý×þçåËdrë²e}zì5&&':úÑ#+pÜ’ïìììYCÄÁÁÁ¶¶¶¬wëëë׬Y£¨¨¨¡¡áîîÞÖÖF§ÓOœ8¡¯¯/%%5uêÔÔÔTôï¡à.‡…©Tª‡‡‡ŠŠŠ²²²‡‡•JE…„„¸¹¹u,æååuãÆ æñÓ§O™½[UUÕcÇŽ!„h4š———–––’’’‹‹K}}=ëÂ/^èêêÊÉÉ=z´›‚ýͦMw/>Û—ÚÚ¨––‡×¬¹ŽWH\eggggg×c1„ÐÇGŒñþý{ Ãêëë%$$ª««B$ Ã0''§9sæ„1cÆìß¿ÿÔ©SÊÊÊ¡¡¡_¾|‰ˆˆPSScfý^°Ž;ž<~üøŠ+JKK ‚™™ÙÎ;ëêêBµµµ]F&“ÅÄÄ~ýõײ²2???„Ðׯ_Oœ8allL ²³³ÍÍÍÝÝÝY_ÅÂ… ÉdrHHB¨ºººËÙù4z,àȯýLSSÛO?yÞ¼ùº/•\¹¯¥õWaáW¼¢â*öó+‰DúóÏ?wíÚ…a˜ŸŸŸ••ë<…B!‰Ì¡¡¡ºººúúú·oßfÕpçÎvò«¡¡aEEó8::ÚÄĤ¶¶!TWW×e`ííí¹¹¹MMMt:=!!Ù„Ahh(³@NNë!ôòåK Ãèt:ë?ƒÎ-²ói@~€¿`|¸Ÿ‰Žþ@¥Ò/6á¸†ÆÆ¶óçc6nœ¥££„c`ÂÎÎ.((ðªªètú¨Q£˜/uuuËÊÊ>þÌš¬E7î»Ú°ßÌT\\¬ªªÊÜ£ÆÊʪ¨¨HNNNEE%''§c±wïÞMš4©¥¥ELL,//ÏÆÆf„ ·oßf¾[RR¢§§Ç<622Z¶lëBf7ZXø¿›[ìõçà9ȯýÌ£GÓ¦é÷eMÄ bED„ÝܬpŒJpL›6­±±1111::zéÒ¥¬ó***"""………Ì—êêêÚÚÚï7þðáë˜F£!„ÊËË;7¡¨¨ÈìVbVWW—’’‚Z¼xñÉ“';æc???*•*!!ÑÚÚjooïáá‘‘‘qéÒ%æ»jjjÅÅÅÌãÌÌÌ#Gް.ì<ãÛe‹ùµ?©«k~ùòãÒ¥f×PQQïë›°yóœáÃh‡W‰ˆˆ¬X±bãÆ“'OVVVfupppuu-**"‰{öìqrrÚ´i“‡‡GxxxeeeTTÔ¾}ûB²²²¡»wï’ÉäsçÎunbùòå»ví*))!666/^D9r$!!ÁÙÙ9))‰@ 8pàܹs̬ÙÞÞN¡PÄÄÄZ[[½¼¼BÎÎλwï&‰D"qóæÍ%%%Ý|Q]¶t|—œðóKÒÑñ “[9®aÇŽ@ ‹C Ǩ¸­W󯆽|ù!tñâÅïÎ×ÖÖ:;;+((¨ªªnÛ¶­µµ•F£8qBWWwøðá–––Ì~!†a‡–••5jTxx8ê4ÿJ&“×®]+''§  °aÆææfæùââb[[[555))©É“'?~ü˜Û©S§äåå555/]ºäè訬¬ÜÖÖæî¦&##ãèèÈš»eEÛñøG-vÿiÀü+ü%„u5ÓÝE‰ë××rvy~þ×Ù³Ÿ8áàà€Ã®<ÃÜ*<00ßô'BBB°Ë:|ãÃýFeeCrrA_‡OžŒ5JÙÖv"ŽQèä×~ãñãLIÉ¡VVÆœ]ž]öøqæŽ DDúÍ7B¡½zõ©¼|€,ßT`}Ä~#,,cÞ¼±C‡rø-;v,bÂm›±øFÅ ååuqq¹qq¹¯_çµ´P†WUmâwPÐ;_û‡ÒÒš¬¬ÏÛ·s¸˜mZZQ|üÇ€€ßñ _ÕÕMOž¼ ÍÈÈ(>\lútý–Ξmäæ¶ß¡@¯A~íž>Í’‘Ÿ9Ó€³Ë}|ž››ÿ4}º>¾Qᢹ¹=22;,,ãÕ«ObbCllƺ¹YÍœi0F B_û‡ˆˆ,kkcÎRNZZÑ«WŸîß߈{T}”•õÙß?9,,£½6s¦ÁÙ³Nóæ‘ãw\€ȯý@yy]fæç­[­9»üüùX­Y³ ñŠcdrÛ£GéþþÉDb¹¶¶¢››•½ýä³-0A~í"#³%%‡r68œ]“sã‡Ìâëë×F_ß„»wß´·ÓæÏ»oß’©Su;/ä×~ ""kΜÑbbœ|³.^Œ54T7o îQõJIIÍåËqoee%Üܬ~ùÅRZZœ¿!WA~tUUäw^]ÍÁµŸ>U>}šuñ¢3ûˆÅÅÕ'ND>~œ©©)èÐr{ûIü£Ý\@ÿùUÐ=N6Ltöl#®½|9NGGiáÂñ¸GÅŽêê¦Ó§_øù%ihÈŸ;ç´x± gK[lÛ¶ÍÎÎ÷ð< ~‡À ùUÐEDdÍžm$.Þë»j‹‹«CBÒ}|x¿`SSSûÕ«/¯^—’?rd…ƒÃä¾9:šïÙ³HVV‚gM€ ü*Ð""²fÌ0à`/ô[·ÅÅEW®4çFTÑhŒ b΋ÑÖV Û2i’oÚùUp‘Ém¯^å8Ñë-<ÛÛi·o':;Oá`Ö–ååuþé—]æîn³~ýLX×äWAŸ‹aÒ=z”ÞÐкfÍ4nDõ´]»‚ FÄÇ{ji)ð Eè ¿ ®ÈÈlsóQ½ÅÄ0ìÚµ„eËÌTT¤¹Sssû®]Á¡¡éÛ¶Y»ºZA·:‚ü* ÚÛi±±9ÿ½°·¾~÷éSo:[• IDATåÅ‹Î܈ŠåóçZߪ*òµkk,ÇÕ¶ ?‚ü* ’’ò[Z(¬kxíZÂÔ©zFFªÜˆŠ)+ëóêÕ¾ÒÒâQQÛaLºÄë•›^¼ «©©Éöꪼ¼Êøø6ÌäRT¡ðð÷K–œ7N32’+üäWA„aXT‘ƒÎ«¯ï+]]å9s8YL‘wï&mÙâ·d‰é¿rðÔ _PVUÕ0oÞØ^]UWך¾fÍ4.-…þ|ÌÎAnnÖgÎ8ÂÝLÐ=˜D/^55åÇŒQïÕUþþ)bbCV®œÌ~rùrüñãvÎÎS¸Q? 0_ÑóçĹs{÷Ø+θsç­íDn¬)qèÐã«W_z{Û99ÁRûÀ8¥¥599_æÍë]~‹Ëýò¥~õ꩸Çsð`øÕ«/Oœ°‡ä ìƒþ«À‰Žþ --ni©Û««nßNœ:UOWWß`¿~ýÕùó¿,[f†oÍ0°AÿUà<þaÖ,Ã^Ý@TXøíåËO«Wã<3ºØ¯.\€ä ½ùU°44´¤¦ôöÉÿä#dz{¿q70 óò »yóõ… ÎK–˜âU- _K\ÜG„М9½Øðµµ•rÿ~ª““Å!¸}7½½#oÞ|}ê”ãâÅ&xÕ ƒ Ì¿ –ØØœI“t¤¥‡±ÉãÇ™--í¿ü‚Ûàð¯ÎŸ9{vÕŠñªè¿ KHøÔ«Î+BèÎ7óçUV–Â%†û÷S¼¼ÂNr„ä }ùU€¼_RSÓÔ« _³³Ë23Kñê¼>y’¹cG§ç{ûI¸TƒäW—«­­Ø«glüü’GRž:µwót)!áÓæÍ~ë×ÏpuÛ÷Ú`ƒùW›ûóφì—ojj Mÿë/›¾/8œ•õyýú[+VLÜ»wq«âØ¡C‡^½zůÖ={öÌœÉÅ–L_EUUCvv™»» û—<}šI¥Òú:–K"U99]1ÃàÄ {.í ÀŽììì?ZZÂ*Q\´~ýz~GÀ ùUP¼|ùiØ0ÑiÓôØ¿äþýÔyóÆÈÉ ïK»eeu+W^Ñ×qáÂ/""|ž/°´´ äo ÿ`°ùWA—kañÓ°a¢l–ÏË«LK+rt4ïK£ -«W_—–vóæ¯ì7  G_•JùòãìÙ½ØýáÃT ¹3 úÒèºu·Z<Ø$++Áq=:ƒü*ÒÒŠÛØß“ŽJ¥§98Læ|¸ÏÝ= ;»ìÁƒM#FÈp\ €.Áü«@ˆ‹ËÕÑQ9RÍòÑÑêêZV­²à¸Å bCCÓïÝ[¯§§Âq%~ú¯!..gΜ^ ?x2c†¾ªª,gÍEEe;±gÏ¢Y³zñ8öA~忲²ºÜÜ ö'_ËËëâã?::rØyÍÊúüÇ÷œœ,7nœÅY üÕÔÔäî£#..®§§çååÕÖÖÆÇx>|(Ô•)S¦hhh477³Jˆ‰‰ùûû#„:–”‘‘Y¸paQQ³X—µñçkôäWþ‹Ï>|è”)ì®Áš.##amÝ‹eY*+Ö¬¹1q¢öáÃË9¸\lÙ²%###$$¤´´ôÆááá|ŒgÉ’%III¡ŠÿF¥R½½½Y%wîÜiii¹jÕ*æË¤¤¤ŠŠŠ/_¾$$$0Œ_~ù…U’ùVG<þ¢}ó¯ü—;eŠ®˜»ß‹€€·Ë—O`¿ýÛo¿ýúë¯#GŽLJJ {ÿþ=«3ª¤¤Ä,¬ªªêëë«¡¡A&“¥¥¥;¾è¿ ÿÊg4#9¹`æLv³yû¶°°ðÛÊ•“{Û†a[·>(.®¾sg]¿~GZZúÒ¥K555Ì—3fÌ())AÑh4///---%%%—úúzfúúú5kÖ(**jhh¸»»·µµåçç …‡‡(++»ºº¶··#„¨Tª‡‡‡ŠŠŠ²²²‡‡•JíÜú·oßZZZØ ÕÑÑqêÔ©žžž†mß¾ÝÕÕu̘1]–a~ lÖÜ«0|ù•Ï22ŠÉäVö—N32R36VïmCW®¼ŒˆÈ:Þ©Wû __ߨØXuuukkkfrE9s&$$$""">>>//ïÈ‘#Ìó›7o.++{ûömddäóçÏ?Î<éÒ¥§OŸ>yò$22òرc¡Ó§O¥¥¥ÅÆÆÆÅÅíÛ·¯c»ïÞ½[³f±±qCC›¡ ]ºt)<<ÜÍÍ­´´ÔËË«ã»ÍÍÍMMMþùçĉååå;¾ÕÑw5geeéèèxzz²fm|åíýÌÂâ›…[[);/]Šëm+ÉÉùššÛ¯\‰ïí…¼dgggggÇNI–’’rðàÁ1cƈˆˆøûûcf``Ê,““Ã<¦P("""D"‘y>44TWW—D"!„ód@@€®®.†a†††Ì“ÑÑÑ&&&†µ¶¶Þ½{wòäɦ¦¦W¯^mllüQTÌj;Ÿg¦Õû÷ïw<ÙñwPTTtæÌ™$©ó[Ýüž–——{yyihh,Z´èùóçt:!ÀNI@A~å³ÿüç´§g ›…?~¯¡±½²²¡WMTTÔ»ÇÕÕ¿÷Ññ;ùµ©©éÁƒ4ù’Á`ìÝ»W]]ðaÆeggWþóçÏ¡ÖÖVæK0lØ0f"dÌÊÊ6l³†Ž)MFF&::ZYYyõêÕ©©© £ûØ~”_óòòBß]Žb%ÔïtóVg %00pÚ´iúúú¥¥¥=–‡ü ÏÀø0?ÕÕ5ge}ž1CŸÍòÁÁiӧ뫨H³ß•J_¿þ–¼¼äÑ£¶Å(X0 [µjUvv6ó¥Ð¼yó˜Ó–jjjÅÅÅÌó™™™Ìña‘ÂÂBæù‚‚uõÿ­3Ó!B(//OMM !¤¨¨ÈJluuu)))JJJ£GNJJzóæ kB··˜74q雪ªª>”••™™™1o³ȯüôú5IHMŸÎV~ýö­1>>×Övb¯š8zôi^^ÕÍ›¿JHˆq£`‘””tqqqppˆˆˆ(,,LJJrwwwttD9;;ïÞ½›H$‰ÄÍ›73çeEEE\]]‹ŠŠˆDâž={œœœ˜U¹¹¹åçç¿{÷îï¿ÿf>³|ùò]»v•””›‹/Ž?>>>>44ôÓ§OúúúëÖ­KOOçÁ—ùíÛ·Êû®ƒÁxñâŲeË,,,0 {óæÍƒy€]üì<zýõpáÂ3löõMÐÓÛÑÒÒÎ~ýOŸfª©m Ïà(:^csþ•F£íß¿ܸqâââÚÚÚ;vì`Žô¶µµ¹»»«©©ÉÈÈ8::ÖÕÕ1Ë×ÖÖ:;;+((¨ªªnÛ¶­µµ•Ùs½~ýúÈ‘#·lÙ¬L&¯]»VNNNAAaÆ ÍÍÍÛ­««;uêÔ¨Q£Š‹‹» ìGãÃ]žGÝŽ÷ø{laaáïïßÞÞ‹Ÿ Ƈà!!ì¿Ï€&L8°j•ù_±µ§ºÍ)##ÕÓ§Ù¬˜ß¡n ¿òAR‰ÁÀØY±­•íá1¿Ç’^^a--”S§¹´Î-.23K¯\‰ˆ (*J­Ze¹j•…†Üá ˜ ¿òAb"ÉØXMÎcbrZ[©‹÷08üäIæÃ‡©÷î­WT”Ä)F<1XllÎåËñ))¦¦Z—.9ÏŸ?®Ë“^½zeeeÅûw_ù 1‘4wîhvJ†‡¿·°ø©û sªªví vq™2{¶Nâð/>x{G~úT1gÎèÐÐÍ?\"—± NvvvšššüŽ€Aò+¯UU‘I¤*/¯%=–$“Ûbb>:´¼ûbžžA22{ö,Â)@ܼ|ùÑÛ;2+ë³µµñ… ¿©v_~ûöí¼ xò+¯%%勊ŠXXüÔcÉçϳ lÑ¢ñÝ” N‹Í Ý<|øPübì«ìì²ýûÃ’“ fÍ2ŒˆØjb¢Åïˆ€× ¿òÚë×y¦¦Zââ=ïÆþ~æL™NÓVV6ìÙ²n݌ɓ{ÎÖ¼QUÕpìØ³  wffÚOŸn53ckuex ¿òÚë×y+WNî±X}}Ëë×y>>ݔٱ#H^^rÇŽøEÇ9 Ãüü’|,%5ìÜ9§eËØ]-$ȯ:Ú]_¿¬x ¼ù•w>~¬¬®nbgYÿˆˆ¬3 $%»xä†Lnݱ#xÉS6W¨àqð`ø¯íí'>¼\  ù•wÞ¼!ÉÊJŒ£Ñ}12¹-!á“··}—ïž8ÕÖF=p€oÛ»’Ém›6ÝINÎ?sÆÑÎŽ­-ß`‚üÊ;oÞ,,F ÷ðÔJLÌ ÃllÆt~++ëó­[¯OŸvTV–âNŒ= ‘ªV¯¾N§3""¶­Æ— _€ýÕy„ÁÀRR Ù¹Ý7""kút}iiñïÎÓé €Y³ ùÕkÌÈ(Yºô¼ŒŒxx¸+$WèäW!ËZ¦Ní!¿65µÇÅåþç?ã:¿u÷n‰TuøpËsÉ«WŸ.›˜h††n1B†/1@?ù•G’’ äå‡ö°Æ}\\ΰ±ûÝùª*ò±c›6ý¬­­Èµ( ୓ӵŋMïÞ]/ËY€àƒüÊ#ÉÉùææ?õ¸d`DaÊ=9¹áß?zô©œÜp77>ìzíZÂöíׯŸáãc/"?0ÀøsÉ t:#5µÀÒ²‡Áá¶6j||îüùßw^““ ‚‚Òöï_2l˜(×bìÚ‘#O÷ïûûïÿìÛ·ÖöÁýü“ó…Lnëñæ¦W¯>µ´P¾»s˜J¥ïÞ2gŽQçAc®b0°½{CïÜysô¨íêÕSyÙ4 _y!9¹@N®çÉ׈„ Ú**ÿº{èÎ7EEßnÞü•›~ÁÀvìzø0ÕÇÇaåJs^6 Œósòµû'_i4Ftô‡ùóÿuçpUUƒ·÷³Í›çðò¶& Ãvì zwýúZH®Àȯ\Ç|òÕÒrT÷ÅRRòëë[¾{2çØ±g22ü1››þ ƒmßþ0$$íÞ½õóæu±ÆvÀø0×åæ~ihhéñæ¦ÈÈl##5MMyÖ"±<(èÝ… ¿ðì‘sw ˸}{Ýôé=oR àG ÿÊuIIù22Ý/x„aXddö‚c;žÙµ+xâD¥K͸ã[ôð|ô(ýÖ­ßfÎ4àM£0PAÿ•ë’“ zœ|ÍÌü\YÙÐñáÈÈ쌌’'Oܸ Baæé’v󿝳fò¦QÀ ¿rƒ¥¤ô¸.Dd$aäHccuæK …vèÐãE‹LÌÌFr?F„òò |{åÊêÙ³xÓ"Ž cbbø¯mذß!ºù•»>~¬¨¯oéñÉ׈BÇ›‰îÜySYÙ¸ËÑýשSÏoÞ|}öìªÎK[ô iii7näw¼ùó¯Ü•šZ(%5¬ûÉW©ª¨èëÉœººæS§^üöÛŒŽ÷:qϵk 'O>?}ÚqÅŠ‰]èÐ!¡þyjf¦õŸÿŒçjTß¾5º¸øji)\¾ì"**ÂÕ¶`ЂüÊE©©…“'ëtS ¥…’˜H²¶6F%'ÄÆæzz.àjH­­_aa!?¿ Çåj[0˜A~å–êê¦ÂÂoææÝÝÜ”˜˜G¡Ð¬¬Æ „Ž6uª.WWý¥Óë×ß./¯{ð`“¼üpî5$˜šššÜÝÝuttÄÅÅõôô¼¼¼ÚÚÚø`À‚ùWnyû¶PXXhâDínÊDG猯©¨(™ðéíÛÂðpW®†tøð“7oHAAðæÉZA³eË–’’’MMÍÜÜ\WW×ÚÚÚóçÏó;.ÀÀýWnyû¶ÐÐPUJjØ `óaî\c ÃŽ˜=Ûˆõ,7ܹóæÚµ„³g&Näb+‚,,,ìèÑ£fffJJJ3fÌ8wîÜãÇù`À‚üÊ-©©…ææÝ=™C ”UU‘­­£¢ˆÙÙežžó¹Ì«WŸöî ݺÕjñbîµ"थ¥/]ºTSSÃ|9cÆŒ’’æ1•JõððPQQQVVöðð R© ãÂ… FFFRRR–––ñññBBBùùù¬Û­;w¾!$$$äïïodd$//ïíí¢Ñh^^^ZZZJJJ...õõõÝ\èï ¿rESSû‡åÝ?ùýACCÎÈHÍÛûÙüùcÇëî1ž¾øø±býúÛ‹›º»Ûp©‰~Á××766V]]ÝÚÚÚÇLJ•\B§OŸ.**JKK‹‹‹Û·oßõë×:ôÏ?ÿäååíÝ»×ÅÅ¥›š;_Î<–œœìíí½cÇŽÚÚÚ3g΄„„DDDÄÇÇçåå9r¤ûËý¿×R˜>ªªn­¬¬ï¦Œ•Õ‰;ƒBBÒÔÕ·}üXÁ¥Hêë›§MûÇÚÚ§¹¹KMðs=^vJÒh´”””ƒŽ3FDDÄßߟyÞÐа¢â¿ß‚èèhccãÛ·o³.¼sçBˆD"±êxÜùr ÃBñññ†Q(浡¡¡Ìb999¬ã./ÇåëðÜßÄ©©…#G*¨¨Èü¨@EEý‡_<<æïÝûhéR3ƒÜð¿þ hjj úCBBŒMôÍÍÍOž<±³³377777ß³g———§§çªU«BÅÅŪªª¬Â222 ÅÄäcéãÆû®B ÃXÇ/g¨©©!„DEE™/KJJôôô˜ÇFFFFFFÝ_è×`|˜+zœ|ŽÎ>\¬¾¾åË—º­[­¹ÆéÓ/âârýüÖ1Øÿdc¶jÕªììlæK!!¡yóæÑh4æKEEE‰Äü—³®®.%%E]]=++‹uù‡XÇÌ«ÊËËYg:_ΘIJJº¸¸888DDD&%%¹»»;::2ß]¾|ù®]»JJJ‚ÍÅ‹ýõWðððÊÊʨ¨¨;w"„deeBwïÞ%“ÉçÎcUÞùò.cpvvÞ½{7‘H$‰›7ofM³y9 ŸáØô@—‘Q¢ªºµ›)Õ¶6êO?yzxhjn/*úÆŠ‹« ÿÞ¾ý!7*4lÎGÒh´ýû÷7N\\\[[{ÇŽ­­­Ì·ÈdòÚµkåää6lØÐÜÜL¡P<¨££#))iiiyÿþ}f‡–••5jTxx8«ÑΗc†bõJ™Çmmmîîîjjj222ŽŽŽuuuÝ\Þ÷¯À_BX‡i$€‹k×ΜyñáÃá-—ëìì«««þ#…B³²2Ö×Çÿ¶á{÷’ÂÂ2<ب®.‡{å|D"U%$|JHø˜œ\ÐÒBQV–š0AûÏ?çLœ82//ÕÉé¿€üг/_ꫪºYv¸¸¸º¨èBÈÍÍ ÷Ö³³Ë¼¼Â¶l™;m÷ à™ææöØØœ—/?%$|ª¨¨—‘‘˜1Cÿðáå––º#G*°Š¾ãv$ººº0 èȯ8KK+61ù£ññ¹""BS¦è™˜háÛtssûï¿ß55Õêïë456¶ÅÆæ<{Fˆ‹Ëmm¥Ž«ao?éçŸ ÍÌ´¹½ó<àò+ÎÒÓ‹ FHJþpkÕG2ètŒϼnßþ°©©-,ÌUXø‡S¿‚¬®®ùùsâ³g„W¯ò0 ›2E×Ëkɼyc••¥øôäWœ¥§w38ÜÞNËÈ(ÕÖV´´ìn_X<|˜úôi–¿ÿEEI|kæ6 …E zûòå§!C„gÎ4}ªœ5ËßF~R^^÷üù_¢¢"øÖŒ»ââj_ß„€€·bbC.òäÊ ~x#Xo]»v ¯ª\zz:¿Cô ò+žÒÓ‹ÍÌ~¸²ÄéÓÑ¡uëfàØb|üÇ[·OžtøQR†ÅÄä\¸ûî]‘‘‘êÑ£¶K—šáþßÀÆñ­úÖGÄ“©©×¯¿Nß²¥‹éÕææöqãöÑht阘>ÿÖÔÖ6ÿüóqKËQW®¬Æ¥BÜaöìáüùXáó”)º6Ìœ;׸ŸÞÞ ½ýWÜ”•ÕUU‘'NÔéòÝÀÀ· mút}¼’+BhÛ¶bbC¼½ðª_/_~<~üP¶`Á¸'ìÇŽÕàwDÀ;_q“–V4dˆ°‰‰fç·ètÆ•+/……‘••1^;‹‰Éyøp“´ô0¼êÄËë×yÇŽEdf~^¸püÙ³«¸± $8ȯ¸IK+=Z]\\¬ó[QQÙååu 6gŽ.m•—×íÛêìl9}º`­ƒ˜“óåøñgÑÑ&NÔ þ÷Ç| ¿€üŠ›ôôâ ´»|ëÊ•—#G* !--…. ô †aÛ¶=”——Ü·oIßkÃKSS…ñðV IDAT»OäÍ›¯ŒÔîÜY‡cOú#ȯøhm¥ää|Ù°aVç·ÒÓ‹ÓÓ‹GŽT˜;Ÿ”sçNRrr~hèf ‰.úʼ‡aXppÚáÃOB/:/ZdÂÿ ¿âƒ@(£Ré]>ÍÉìÒåæ~™=‡Áᢢo‡=^·nƤI]ßHÅc$RÕÎAoß­Y3ÍÃÃFZZœß€@€ÝHð‘ž^¬¢"Ýyø·ºº)"‚0~¼†¸¸Ø”)º}ohÇŽà#d<=ç÷½ª¾ó÷O¶±9U]ÝøÇ¡CË ¹ ô_ñ‘–VlfÖEçõÞ½$ñ††V ‹Ÿ†íë§œ–œœîÚå]T¼T[ÛìîýÁÕuîÖ­Ö‚¿tðô_ñ‘–VÔùæ&*•~÷n’½ýäÄDR߇«ªöì ùý÷Ÿ»Lä¼ôúuÞœ9Þ99_=Úìá1’+tù%%5ÕÕM—õŽþP]Ý8nœFccÛÏ?÷5¿zy…ÉËKnß>¯õô†açÏǬZuÕÜ|Tt´ûÓãÃ8HO/?^ë»ó·o¿™;wtvv™¶¶âO?)õ¥‰çωOždý1l˜h_ê鋯Æ6WWÿøø.[»v¿Â€~ò+ÒÓ‹ÇŒQÿnzõÓ§ÊÄļ6>üäçŸû´-+™Ü¶sg°­íD\îâLiiÍš57êë[¶˜˜|ÿŸ€ïÀø0ÒÒŠ;”úù%ÿô“’JNΗ>n{~üø3:¾?ßV“HL$Í›wJVV"&Æ’+°òk_57·çæ~ùîæ¦¦¦ö€€T—©¯_“† îK¿óÝ»¢;w÷î],'7¼¯±räÖ­ÄU«®X[?|¸I^ž?1@¿ùµ¯²²>ÓhŒïnnzô(ÁÀV®œœðiÒ$áÇrV9•Jß¹3ØÂb”­íDbí%áé¸woè¾}KΞ]…ãÎ?0àÁ_̾JO/VU•US“íxÒÏ/yÑ")©a¯_çõåV [·óó«bb<~´g;÷´·Óþüó^llÎÙ³«V¬àCv€~ òk_¥¥×yÍÌ,ÍÎ.;zÔöÓ§Êoß§O7à¬æ²²ºãÇŸýñÇl==í 2¹míÚë>”?x°ÉÂöÀ€^ƒñá¾zÿ¾ÄÔô_ >Ü»—ll¬nf6òõë<‰.w„eÇ‘#O””¤Üܬð³¾|©_´èLiií“'[!¹g ¿öIiiMuuSÇeýÛÂÃ3ÍB‰‰$KËQ""œ|ȉ‰¤ðð÷^^KxüÀk~þ×%KÎ "üô©ïûÍ0`@~í“ÌÌRQQ‘qãþ×C}üø=ƒÙÚN¤RéÉÉùÓ§ëqP-•Jß³'tΣùóÇâlÏÒÓ‹/>«ª*ºYEE†—MÀó¯}’™Yª¯?¢ãÊ¤ÚØŒ•–û¶°©©³É×[·KJªoßþ ¿H{ööm¡‹‹ï˜1·ný&%5Œ—MÀÀý×>ÉÌüÜq½…œœ/%«V™#„^¿&©©Éêê*÷¶ÎªªŸÈߟ­­­ˆg¬ÝJJÊ_µêêĉ:þþ!¹@ßA~åÎÈÎ.ëxûÒÇ©ÚÚŠS§ê!„ó¦O×ç ÚãÇ#¥¤Äÿüs6nöäùs¢£ã›±wî¬ëû&zä×¾ÈÏÿÚÜÜÎê¿¶·Ó‚ƒÓìí' 56¶¥§O›ÖëÉW"±<0ðíž=‹8^’¢·"#³7l¸½d‰éÙ³«8» B€Wøõ]`PÎ ç23K‡ 50Pe¾ŒŒ$46¶­\iŽJM-¤Ó±iÓz×Å0l×®à‰u–-3Ã?Ü®„†¦»¹Ý·µèããÀÇäÊÈï¸äääÓ§Oó; ȯœËÊ*56V2ä¿iéþýÔY³ FŒA%&æé뫨¨H÷ªÂÈÈ쌌’'OÜðµ+ññ·m{°d‰©€$W„¿Cà0 ãw ñWµŸêxsSUUCRÉÎn2óåëפÞN¾R(´C‡/Zdbf6²çÒ}–œ\°nÝ-{ûÉü€ þ°rˆB¡}øPκ¹)$$]FF‚ù¸êׯ?Vô6¿Þ½›TYÙ°{÷BücíäÍ›|'§«vv½½í ¹7ÀßVåä|¡Ré¬þk`à»E‹Æ‹ŠŠ „Þ¼! "liÙ‹=éêêšOž|þÛo345å¹n©©…..¾ Œûç[¸Õ¸ò+‡23?KK‹ÿô“BèÇò¼¼JÖ&3¯_癘hIJöâàsçbDD„\]çr%Ö23KW¯öµ²}öì*aaH®À-_9”•U:nœ&³ÿœ¦­­ÈÚEçõë¼3z18üùsííÛ‰®®VÒÒâÜ•¥ à«‹‹ï¸qšgÎÀœ+pü‘åPff)sò•Ng„…e,_>™k‹Š¾•—×õêÉœ'"ÕÕåú²M,;¾}ktvö9RáÖ­ßx¼gŽšššÜÝÝuttÄÅÅõôô¼¼¼ÚÚÚøÔu|äTNNÎÞÞþÛ·o?*œŸŸÏübü¨ _€üʉ¦¦v©Š9ùš˜HúúµÑÖö¿ƒÃ¯^åII ›0A›ÍªˆÄòô={1çn¹¤¡¡ÅÞþÒðáCýý7ñlå nزeKFFFHHHiié7ÂÃÃ=<<øTw’’’***¾|ù]VV¶eË–•”••ݱc/cp<ÿÊ "±ŒÁÀ˜ù588ÍÌL‹µVpb"ÉÜü'ÖC±=:~<ÂÌl¤ ÷Éio§­]{³¥…òø±«´tÿ^[8,,,**ÊÌÌ !¤¤¤tîÜ9ggçóçÏó;®RRR1bBHUUõøñã‹-úQIEEÅcÇŽñ04wAÿ•™™ŸUT¤ÕÔd››Û## Ë—ÿ·óÊ``oÞØNJÊÍåê394cãÆ;ùùU¿€-礥¥/]ºTSSÃ|9cÆŒ’’æ1•JõððPQQQVVöðð R© ãÂ… FFFRRR–––ñññBBBGY;w¾!$$$äïïodd$//ïíí¢Ñh^^^ZZZJJJ...õõõÝ\þeeåïÚífX˜N§Ÿ8qB___JJjêÔ©©©©?j‹ymll¬––Vbb"^Ÿ6 / ¿r"3³”¹çkdd6•Jg-g˜]V_ßÂþ“¯Ç?›>]ßÂb·EèᅢóîÜYÏËÝx¸Ç××766V]]ÝÚÚÚÇLJ•\B§OŸ.**JKK‹‹‹Û·oßõë×:ôÏ?ÿäååíÝ»×ÅÅ¥›š;_Î<–œœìíí½cÇŽÚÚÚ3g΄„„DDDÄÇÇçåå9r¤ûË››››šš?}ú´{÷ngggö¿ØsçÎùøø?~$ËìÌCnÍÃÎÌÎ@ÔKpüµÛêëIEEuFFjµµÄÈÈœk×ìX?úò%wÆ -N&y2™È_,^<~ÂÕ. ÷LPPê¹sA§O¯BW•H$R@@€•••©©©©©é±cÇÜÜÜ&&FYY955•uú÷ïßY¯Ñ³JKKYG~==ÎÃóÓ¿%%%<¾NIIaõwt:‹°°°““SqqqUUUG1´¡®®ÞnüµÅú#‚ Áæ×nKI)RU•––y÷.yÞ<=!!ôxb"B¡OŸÞõ²ˆ óÊ•+VkhÈ÷E„x|ÍúõæÌÑ9~|E_Ô?PDEEmll‚‚‚ ¢¢¢\\\lmmÑŸZZZ>|˜@ ¤¥¥-Z´èÖ­[›6mruuõ÷÷¯¨¨þã?’’’€§OŸ655]¿~Uù¯§·ƒƒƒÃÑ£G322222víÚźíèôêêêŠŠŠŠŠŠ¢¢¢ .¨ªªÊÉÉuCÛ·ogŸ5ÎÊa¨ °þíŽÖ¯°uëãòòeå})¬ãÿý~êÔ?9©áõëxUÕý……Õ}^ccëìÙççÍû›H$÷Eý}„ÃqA:~òäICCC!!!uuõC‡µ¶¶¢?jjjÚ¸q£”””ŒŒÌÖ­[I$•J=}úô˜1cDEE§M›æåå…6qæÌIII V£¿žŽ €u§ˆ¾&“É...JJJ¶¶¶õõõŸÎÂÃÃchhƒ–ÿ5†_Ç_étúÅ‹555EDD¦M›†Þ§¶Ûû€.W>g‚zƒÀý »ÉÈèÄÖ­sø.\xŸ–všuÿºråuMM…Ë—m:?Á`Κu~âÄÑׯÛs=6:éèx?;»üß÷ ­§q|||lllúôjÌËËÓÒÒá|?|Ρ`ÿp÷TT4VU5©½{—²`>+¹¶´PSRЦMëúI›€€”ââÚ}ûöEx7o†FEåݽë8´’+AÐðók÷$'ñð`ddÄñ+Vü˜Û™˜ˆ§Ñ3ft1øÊd"W¯~\¾ÜhÌ9®Ç–uéRð™3–S¦ŒåzåAP·ÀüÚ=))EòŸ>e‰‰ š›ë²ŽGGç-ƒÅJv~z``j~~Õ޽ܿyÍɩؾýɆ fëÖMãz忦&ì… ¨ßÀüÚ=))EFFjÉ üxz8::¯Ë Õ™LäêÕË–MÐÒRànTMM­›7?š0AõäÉ߸[3AÔ30¿v‚ ©©EªªRÉÉEË—ÿènm¥&%º| NÇá*÷í³ànTL&²{·'™L»{w=çû @A} ®ßÔ x|MS™D¢Š‰š={ëxb"Fc̘¡Õùé7n„Ο¯?nœ"w£ºzõ×/¹ïÞí‘•ånÍAPÁüÚ ii%||<ÉÉE è³wÇÄ䫪J+)u6ø‘“–V²–»!EDä\½úñܹ5ÊÜ­¹Ÿ•”€›‡C4|ÀüÚ ©©EcÇÊ'&âœf±ŠÊërÙ¦þ Y°@_OO‰‹ñÕnßþÔÊj²ƒÃt.VÛŸ*+›|}_½ŠÏÎ.Àv}AÐók7¤§—HJ ð±Ï&“iII›)œ_“¸—‹ÁÐhŒ;žª¨H?oÅÅjû‰Dyû6éÕ«øÄD¼’’¤Í”Õ«wíº6ÐqAq ̯œB$=½‹•˜9S›µ¬ )‰@¥v±ìðÍ›aS§j˜˜Œæb>q ÓÖvêæÍ3ÕÕe:(‚ ~ó+§RS‹ÉdÚâņìÑÁ×Nî_<ˆTT”Xºt·Âøûï÷™™eÁÁûÙÇ€›ŠŠÆ7B½¼bDEGmÞ}Ê¿ä×””" ¥ÃÁ×€€”º:â–-³ÚýiwyyÅ|øáåµMZZ¤ëÒýèË—ÜÇ_×­[7ýÀ‹ÁAÐ@ù•#QQy‚‚üãÇ«´9¨¬,ÕÑœØ{÷>/Ybئ?¹gŠŠjOžô[¿ÞlÖ¬q]—î/µµÄS§ü_¿N˜9SûÉ“-òAÐ ó+Gðøšqã°mVŠŽÎ75mçQN@llAzzÉß[÷¾i&Ù¿ÿ¥‚‚ÄñãË{_·x{Ç>ýN@€ïÎÇ•+‡Àc¸Aý æ×®ÖP©ô¹suØR©ôÄDüéÓí?„êîþyÒ¤1&paÁw÷ˆøøÂ  }ƒdP³¢¢ÑÅÅ;22ÇÉiöÞ½ ÅÄF tDAƒ̯]{ù2°víO+ø§¤µ¶RÛ]v¯ùð!ãîÝõ½o:'§âüù gçƒdû9oï877?YYQ??gî.§ A4ÌÀüÚµ°°,Þ6ã¬ÑÑùŠŠí.ÿûìY”¢¢„……A/Û¥ÑÎΞúúJ{ö,èeU½×ÜLvuõ HY¿~úñã+óêAƒ̯] Ó™8\Õ˜1m'1EG·ÿäkK ÕÓ3z÷îù½_SâîÝO8\åÇ.||<½¬ª—âã wìxÊ`0½½·›™il0ACÂq~ …4ZÛ‡pètfb"ÞÔ´üêë›H¥2ììz»¦Wyåʇ}ûjjä¼\&¹|9xõ꛺ºØÐPW˜\!‚8ï_»ðáC`Æ -öƒéé%$eêÔv&{x|]¹Ò˜}€`2oìÎæ½©§—ššZ÷î}ò}ß¾…{ö,àå…Aq æ×. ùµÍ“¯qqRR"¿.W•UöÏ?v½lôÁƒÈ´´âÐP×Li™™e[¶x´´P||vv²$AÔ.xGÒ™òò<¾FDd”šÚOÛ§ÇÇNž<¦Íã°¯'ª÷r®/_sáÂû={ àŠ D.YrU]]6<üL®A=ókg"#syyy •ÙS)‚ qqS¦ŒiS¸¢¢ñýû´ÍzÓ"‚ ®®Þššò»vÍïM==F§3zåææ·i“ÙÓ§Np½C‚ žýɈÈ5ŠßÐð§e" kjjˆ¿®Üäå#%%¼|¹QoZôñ‰‹+ü÷ßý2g¸¡¡eëÖ'ÉÉw÷õ\ܳ‚ h‚ùµCL&™C&ÓÚô÷ÆÅ ´Iºt:óÅ‹XÓÞ<–S[KüóÏw›6ÍÔÓSêq%=–’R´iÓ#Á´û\/AÄ9Ø?Ü¡ôô’º:ƒÁüerS¡‘‘j›<–Y^Þ°nÝ´Þ´xò¤¿¨è¨ƒ÷¦’žyý:aÕªšš {`r… ê=˜_;‘#..$,,ÐfžQ\\Á”)m;‡Ÿ>ý6w®Žªª4è©ÐÐÌ7oþþÛªÿ—Fº~=tï^¯•+Ÿ?w’”îçÖ!‚†%Ø?Ü¡ˆˆl991IIaö‡djjˆ……5mòkII}DD΃{ÜVK õÈ‘×+V÷ótt:óðá×/_Æž<ù·¶ª… ‚̯in&'$à••%Ço;øÊÙ4IýàË—±rrâóçë÷¸¹ë×CššÈ§O¯êq =ÐÔDÞ²åQZZñ‹ÛóÂLþùgddä@G1ô;vlöìÙÅH¯Þ~3kÖ¬ãÇt?ùµ}ÑÑyt:³¼¼ÉÀà§Á×øøB,û¦l óÅ‹XkëÉ=žñ››[qçΧ'VÈË‹õ*èî(-­_·Î½¹™ìç笣ƒí·v{ ===;;{Ú´^m4¯^½rrrè( xõö“èèh))©Ž¢-˜_Û“?fŒlAAµ¾~Ûû×6ß>eWV6ÚÛ÷pÁaA|e` ¼qãÌž‡ÛMee 66w0Ì›7»F–é·v{lÚ´i>>>ÅPòëâ'Ð@Wo?°¶¶èÚç7µïËœ††??¯®î{;‰’ž^bjúÓÊžžÑÓ§k©©õ0K¥ÅÇž:õO?}!TÿöÛuaa?¿ÝC"¹B E0¿¶£®Ž”™Y&((0v¬œ€À[üädÎd_Y¢¢¢1,,sݺÞ¼¶´PÝÜü¬­'OšÔv5¨>’˜ˆ_ºôÚØ±ò~~Î22¢ýÓ(AÐók;¢¢òøøxˆÄV]ÝŸÖyˆ-TS“QP`yó&ATt”…Åøž5tçN8‰D>rdY¯ÂåXddŽÍéÓ5ž>Ý", 7H‡ êC0¿¶ãÛ7œ¡¡jvv…¾þOù5>¾}ÙaA¼¼bW¯ž$(Ø“aì’’ú[·Âwïž/'×ÓšÞ¿Ost|°lÙw÷ ì7åAP_€ùµ_¿â&NT¯¨hd¿E÷TgŸÜ_XXXmc3¥g­œ= ¤$¹uëœ^FË oï¸mÛž88L¿zÕnã AÔàWm[åå ùùUŠŠâöû×ÌÌR‰Â~ÿê㯧§Ô³Ýèbbòýý“_Ñ›õŠ9äî±ÿËmÛæœ>ýÛ0žVJ$]\\ÆŒ#$$¤¥¥åææF&“»[I^^^—QYY™ººº¨¨èäɓ߾}ÛÓ!è?6êêꎎŽÕÕÕýÓ4¼æû̯m}û–'(ȇ @FF”}¨5.®}OõÖVj@@JÏn^ æ‰oçÌѱ°0àNÐ;{6ðäI¿#G–;¶|'WÀîÝ»“’’Þ¼ySTTôðáCWWW@AA¬¬l''²””]+3³¬Í&q±±ù?wÇÍ›§×ƒG\ššÈçÏ98LgÝ ÷‘gÏ¢Nœð;rdéHH®qqñÛ·o³þ5Κ5‹@ ¦N @¿¹èãX,ýZa/Àê+£ÓénnnjjjrrrŽŽŽ¬;‰7oÞìÙ³‡½]77·‡¢¯6lØ ++«¢¢âââ‚vPc0OOO]]]iié¿ÿþû×h4š«««‚‚‚¼¼¼««+F{÷î²²r}}=àÅ‹ÚÚÚ$©ÍY=P_Ozú4jéÒk“'Ÿ:{607·Àd2{\!ÔG0ÌöíÛƒ‚‚ÎÎΛ7oF‰DaaáäädÐÞuÚ»¼Ñ’=ÒÕÕ•““;þü³gÏÆŒ#!!®&8¼¯ù†@lJKë±Ø½‘‘¹£G»¼|Ë:^XXÅîMH(Dßâñ5JJû‚ƒÓ{ÐÄéÓþúúGH\ ¸#_•”öÝ»÷¹O[éVVVVVV]ûðჲ²²  à‚ .^¼ˆÇãÑã8Žu755 lÚ´©¤¤äùó瀪ª*ö¬×/^Ô××OKKKOO755uqqAýÇ_WW×Q öööóæÍËÏÏOKK3008yò$‚ €5kÖÔ××ß¿P[[ËÞ"‚ .\X½zuQQQZZš‰‰Éü ˆ££ãúõë+**bccÛü"]x{{£¯kjšïßX²äŠ’Ò>•ýJJ{±Øÿ™›_à°N¨_©öÑ IDAT8¼z8ŽýH||¼¤¤$‚ 2224 AçÏŸëëë3™L¤½ëªÝË-ikkÛÔÔ„ÞƒZ[[755Ý»wPSS3<®y?ç~óëO^¿ŽWWwÉÈ(Áb÷¦§—°Ž{{Ç{J¥£o¯]û¨¯”õ–syy•jj=úµˆÛóìY”’Ò¾K—‚û´•~Ãù¿:súôi^^^OOOäç¢ %++‹H$2ŒˆˆôK­Ýü:nÜ8___ô`ff&úº®®P__ßnëT*•——7##}ëëë«©©‰ àÓ§Oh_[DDGG§¼¼}bdd„ H}}½ŠŠŠ¡¡!ú……t?¿>}êåãgoOUõ€ŠÊ~eå}ìiæ×þÑûüJ§ÓÃÂÂY²dÉùóçY§´¹®Ú½¼Ñ’III¬’ì¯Ù¯Æ!}ÍÎü Ç_‚WÉÏÏ«­ý£ÿ6>þ§=Õ_¿NX¹Ò¤SOŸ~§©©àè8kÿÂ×7ñ?^9;Ï?p £#C‰D °²²255555=v옛›ÛÁƒíììØ‹ äææ:99‰DccãN*$ZZZèk]]]]]]€”””‚‚Bffæôé?þÆÇÇïܹ3""¢®®ŽÁ`hhh Ç555KJJÐ×JJJ~~þvÛÂãñXìÁ~ €¤¤äÖ­[O:Ò­AøøB ‰ùÇ'R©ñ¼¼£³àêêf›;Ýjâ\i©˜²rsNÄápèµÄËËkiiéëëkhhŠÞw¢Ú\W\Þbbb¬’ì¯Ù Ýk~Ђùõ'±±‹ÏÌ,k³2b\\Á’%†èë¤$B~~ÕöÝ­<<<+$ä»Ïξ{Õß?yϯ;ÌZÒGM N‚ØÙÙéèè0Œ………»»{›b­­­ÖÖÖ>>>Ë—/§P(U¨¤¤„Çã )))AAAG¬X±âòåËÓ¦McÍt{þü9Fæçççåå-((ÐÓÓäçç++ÿ÷ìOgÿÇeee?}ú¤©© hhh¨¨¨ß¼ysþüùxöì烴¶Òàáp¶8FRR˜óú¡n)+ëÉð6‚ wîÜYºt)úÖÊÊÊÞÞ^OOÏÌÌLEåÇŽ^m®+Î/ïv Ýk~Ђùõ‡šb^^Õ”)c=<¾°OnjhhÉË«21¾õõMÔÐ72RëVåL&rölÀüùzffZÜ šÍÇÎÎžŽŽÓYÚGM Z¢¢¢ŽŽŽ666W®\ÑÕÕ­¨¨pqq±µµe ‰¢¢¢ …J¥ ´¶¶¢33›››Ñ?çѬòGUWWìÚµ ýúœ={VWW×ÁÁaç΢¢¢oß¾½~ýz`` €ŸŸßÆÆÆÙÙùþýû$騱cööýÆjÑÒÒòðá×.]jllܺuëäÉ“ÿùçŸM›6íÞ½û÷ß×ÓÓ X¾|y›³:ÂÇÇ3{ö¸ÆÆ÷îm3fÒ»w)¯^ʼndžvodedDïÝ[Ïɇ õ€µu‡%«««EEE F^^ÞÕ«W ÐÍœ9“N§Ÿ>}ºó‰¾í^Þœ‡:t¯ùÁk€û§“÷ïÓTTö76¶»Ý¼Ê:þñc†²ò¾ÆÆA¨TºÁ±Ë—»=´ùòe¬ªêþ¼¼JnFÌ&$仚ڃ}йà ‡#+t:ýäÉ“†††BBBêêê‡jmmE„F£™™™‰ŠŠ¢Å®\¹"--­ªªzûöm[[[yyyö¬ñ2™ìâ⢤¤$!!akkË>þ„Çã׬Y£¤¤$&&6eÊ”wïÞ±~TWWçàà ##ƒÅb÷íÛ‡؆ÖÐ×mBjjjÚ¸q£”””ŒŒÌÖ­[I$Ò7&L˜@¥Ryûö-‹­««ksVçÛü& …öñcÆÎÏÔÕ]””ö))íƒã¯ý†óñWUUU{{ûÊÊŸ¾+¶oß.$$ÔÔÔÄ~J›ë iïòî¨$ëõð¸æçø+ùùíHvò¤ßׯ8ŸÇ<=·Í«ƒ?>èýû´ÈÈÀðð,‡ûß¾QWïÆSÏT*ÝÌì¯3´®^µíºt÷ÅÇÚÙÝ37×½}Ûaø-ˆîìwÐì ãííÝfSÌúzR@@ê›7 x^^ƒ‰ ˆ®.6,ìà@Å9ìqëê=zô(÷ôôäFPÃÐàü–€ýÃ?ÄÆ˜šjdf–ôô~Œ½'&â'NTG_ûú&š˜¨u+¹ž=‹ªªj>p`÷‚ý‡«\¿þÁœ9:7o®~Éâ"))GÇ鎎Óÿ¿¾DlnneçãdЀ#“Éeee=zñâÅ@Çuü§õ"‘’‘Qjj:63³LVöÇʈt:39¹hÒ$u‰Dù÷ßôî®ÙD$R®] Y¿~†ŠŠ×Ã.)©·¶¾cd¤vû¶C?,e JJ’;vÌýüùÈÈÛ7Ïèp ÎÄÆÆNš4iÓ¦MsæÌèX î÷¯ÿILÄ3Ì©S5Î ÔÑù1¹);»¼¥…ŠÞ¿~øA§3V¬è칎_=xA¥Ò÷ìYÀÝ€ -öö÷äåÅÜÝ7Àä õ€¦¦¼¦¦ü@GuföìÙèC¨Ðï_ÿ“˜ˆWU•–—ËÌ,cïNHÀ‹‹ÒÖV¼{—2}ºf·ÖD¬¯'ݽûiëÖÙÒÒ"Ü ¸¥…ºn;ÎôòÚ&**ÈÝÊ!‚ ^‚ùõ?èòý4#'§‚}Û×ÄD¼±ñhLcc˧OY+WvïæõÖ­p¾íÛçr7Z:¹cÇÓââ:OÏ­=X‚ êk0¿“‰$'&NT/(¨¦Réúú?¶tMLÄ£ƒ¯!!™€ní(W^Þððaä®]óED¸|yäÈëoßpOžléîL+‚ ¨ÀñWÀá*›šÈ“'ÉÊ*c_±ºº¯A_S§O×”’êF7ïµk! 7šq7Úk×>¾|ûèÑæî®q1´É´ˆˆœÿMËÍ•ÒÖ®èp ‚ºæWHLÄ‹ˆêêbýý“54äY+#&'xx0&&£››ÉŸ?gŸ=kÉyx|ÍË—±ÿmÍÝ™G/_Æ^¼|é’õüùz\¬vðhn&‡…e¾ŸžÕÒBÕÕÅ Ñ:(‚ nƒùð&¨òòòde•±o«ž€×ÔTzû6‰Éd.^lÈyÿýï˜1rkÖLâbœQQy‡½Úµkž­íT.V;”—7¥¤$%xx0sæèœ;·ÆÜ\WFF´Í" AC̯˜ˆ_´h<àû÷²-[f²ÿçpÊÔ©šœÏÎÈ(õ÷O¾|Èɩظñá²eþøcø¬ÝßÜL Lyý:!.®gÖ¬q.X-\h +ûÓ¤­ÈÈÈ ¸ÿ€õxõöƒôôôY³f tmÁüúßòý“&©×Ö++õôþ›ÜD£1RRŠ×¬™D$RÂóNžüó:¯]û¨¯¯´xñxnÙØØ²yó#--…+Wl1nŒ2ˆ1™Èׯ¹¯^%¼ŸF§3,пsÇqî\v'‚M:ÜnÖû•••ªªê@GÁ«·ŸÌš5k~Ô0¿‚¤$`âDõ¬¬r«8+«¬µ•:q¢zxx&ÎdíO×¥´´â÷ïÓž<Ù­DH§3·m{ÚÚJ{óf“ àÐþ_––Vüüyt``jcc«™™Öùók-/&6ª“SöïßßoáAwÁ«w$Ú_Ö\‘˜ˆWW—•–ÉÉ)—”VT”`—”ÖÒR¸|ùƒ©éX991+¼q#ÌÐPuÁ}nExê”||¡ŸßnqnÕÙÏššZýý“}|âñ â¶¶¦ÖÖSÆSè¸ ‚ú ̯ %¥ÈØX •UξíkBÞØX­µ•šyìØ2kËÊ*ÿ>ÍÝkj>{õèÑ—{÷Ö¯ÒuéÁ'5µøñã¯~~I ƒ½{·Î™3îCAа7Òó+‚ ÉÉE..‹ÙÙ円?†¬ ÖÖ“Ãó¨TúÒ¥FVxãF¨ŽŽ"çÉûö-ïØ1_gçùË–MàJ…ý†J¥¿{—òøñפ$‚¶¶â±cË׬™$!!<ÐqAõ“‘ž_ „Ú††– ÔÉÉ)·²šŒ¯ªj.*ª4IýÅ‹ØI“Ôåå9êÎϯ H¹qÞ+#¯x|ÍÖ­/ðàâÞ×Öojk‰}üø[s3yéRÃcÇ–Oª1ÐAAõ·‘ž_SRŠøùy ”KKˆDŠŽÎ#‚IIx^^]]¥ÐÐÌC‡8}æÆPuuÙåË9½ÙíDSyýúX¬ÄåËk‡Ê„áÂÂê{÷>ûøÄ‹Š nÜh¶~ý ¸62A#̯EãÆ) òeg—c0ÖÎt x--…„|k+•þÙÂÂê7o/_^Ë•Áѽ««›ß¿ßÇõµ‹ûBFFéÕ«>|È=Zöԩ߬¬&Å?ÐAA $˜_‹ÑU|srÊ%ÄÅÿ{P$!?q¢zPPª‰‰:kFqçnßþ¤¦&³zu÷v_𠠴/¶þåûSS‹¯\ù𩝝tÿþF ž¡q· AÔ§Fô4N:™ž^òÿüZÁê¦Ñ©©EÆÆ£CC39\#¢¤¤ÞÇ'nçι½¿yýò%÷ܹ —EffZ½¬ªO¥¤98¸/^|¥ªªéñãÍ>X¼xkÖ8ôø÷ï¥ §©©uÅ ŽSïÜ WP·¶žÒË**wíz¾p¡¾³óü^VÕwJJêÿú+Ðß?yÂÕg϶Λ§;ÐA :#:¿¦¦ Œ§È`0q¸Ê-[f£Ç““ ™™¥ººXee©.멨hôôŒqs[ÙË­rh4†“ÓcÁ«Wé"ˆÕÕÍ/þëí§¥¥ðòåö™3µ:"‚ AjDç×´´b]]%^^žüü* …ÎêNL$«}üøÃ™À÷î}––±·ïíê—çÏef–îêeU\Ç`0==c.\xÏÇÇsêÔ*{û©ÜÝw‚ h˜Ñù5=½])+«œ——G[›õpÁÜ\÷óçlNöXmllyþ>;ùdf‚ Áfäæ×ÌÌR>>t —ììrÖPkr2AUU*)‰°iÓÌN+€·o[œf÷&’“'ýKK‚ƒ÷÷²‡™‹ââ |UTTûûïæ¿ÿ>.AÔ]ƒå ½ÿ}ÿ^6v¬ü¨Qü ¯7î¿m_““ ŠŠ’ååsætñØ “‰Ü¾¾|¹‡ P´Ë×7ñùóè§OÉRD"寿ž>š9SûéÓ-jj2AÐ4’ók©¾¾ /¯’Ng¢ýÃèv:£GËL™2†µ–SG>ÎÎϯ¾w¯ç[ÑÕ9òzóAòi@@ʱc¾<<<›¹¸-AÐ4r×oúþ½ |ÍÎ.à;V€Ç×44´äçWÏ›×uv¹{÷óŒZ=žîK£1¶oª¦&ãæ¶¢g5pQyyÃúõ¶ojaaq&W‚ ^¡÷¯55ÄÊÊFt7õœœ y>>@RŸŸ—H$/XÐÅ“9¥_¿æ>¾µÇ1\¾œ—WùáÃvõóK:~ü-ïÇ-âh=H‚ ¨s#4¿ff–Ú<,%%"""¨¡!ßy îîŸõô”ÌÍ{دûõkîÍ›a/Z#׳¸¢®ŽtèЫ÷ïÓlmMOœX1×µ€ ¢FhÿpFF©¼¼˜œœ ;»œ}r•Jïò浬¬Áß?¹ÇÓ†ëêHÎÎ^+W£Oß”·o“¦O?›œLðöÞqé’ L®A\4bï_Ëôô”ÍÍä’’zôþ•J¥gd”ÒhŒ.—mzôè‹´´ÈªU&=hAggO¾sç¬zp:W46¶<ø* eݺiǯëb&AÔ]#7¿Î›§ÈÍ­DDG @“«¨è(SSNÎmn&?{õûïóz6núøñ×/_rýý»œŸÜG¢¢òöìñji¡º»oàpëøAËÝÝ} C`cÇŽ?ðnµA#ÙH̯ =/¯Ý.'§\TTPUUœLàçç5K»ó•ë_¿Ž§Ó™ëÖMëAÓ8\å™3{÷.D7Åëgt:óêÕ7n„Nž<æŸìUTºÞhÛ¶mÛ@‡0À¬¬¬`~… Ái$æ×œœr:Éš<¬­­ˆn—€g0˜?š‚ ÈÇ_Ö¬™$--ÒÝvét¦³³§žžÒ€ìíZVÖ°cÇÓŒŒÒ#G–oÝ:{Øl„îíímmm=ÐQ Œû‹CÐ0ókff™:C˜}rSll>“‰Ìž=®“sÃó k<<6÷ ÝK—þÍϯ uírYc®ó÷O>xÐGKKáóçCèÍ:AÔ§FâüáïßËÆSD“\nn¥¶¶ ®ŽTQÑ„ÅJv¾ØáãÇ_fÌÐÒÒRèn£±±7o†¹¹­ìçÉdš³³çŽO­­§øúî‚É‚ ¨ŒÄû×ïßKÑ'_Z*+Ñ%þSRŠææ:œXPPžýàÁÆî¶H"Qöîõ27×µ·ïɨmVoÛö¤¸¸þÑ£Mpá‚ þ4âî_ÉÌ,C_q¸Jº­ú·oy`:|}þ“+ŠH$º¸¸Œ3FHHHKKËÍÍL&w·’¼¼<ô!®v½|ùÓž”””ÞÅAÐ6âò+WÉšý››[¾þø1`i9±£³ ¿/ݼyV·Ú ùþúuÂ_­î‡¥}™Läòå`{{÷éÓ5÷jjÂ>áÿìÞ½;))éÍ›7EEE>ô÷÷wuuÈÊv¶§={IIÉC‡uTråÊ•ååååååQQQ€òÿÓׇÛüAÐÈ5âú‡q¸JtÂpS¹¼¼Ü’ÉËË3eÊØŽÎòðøjb2züxÎjj":ôjõꉽ»s--TWWoÿä}û,öí[8lÖŽà ??¿àà`€œœÜõë×nܸÁd2kkk;9‘½€¬¬ìùóç;*)$$$$$ ‰EEEnþ M#÷þ5/¯Aôá×ÌÌR,VÝöWÕÕÍ©6˜u«!7·· æÌ™Õ½¹sEEµË—ÿóéSöÓ§NXÀäÚ†¸¸øíÛ·Y™rÖ¬Y0uêTÀ– ………±X,šJÙ °ú‡étº›››šššœœœ££cCCC'M;;;oÞüßR$D"QXX899­ÊßßܸqòòòÎÎÎ @£Ñ\]]äåå]]]i4Zß|õ“‘•_kk‰õõ$4¿âp•ÂÂ**Ò ½¾¾eÊ”1åé-))¼re7&(}þœíãá‚U_/âò}Á‚K¼aa®=ÞŒvx»ÿ~XX˜²²òÂ… /]º„&W@LL  ¢¢ÐÜܼzõjwéҥÇWWW³`¹víÚ›7o‚‚‚>}ú”››{öìÙNš^³f¿¿?Nøûû;ÖÈÈýÑíÛ·þý÷_4_½zµ°°0!!!,,,<<üĉÜÿ, êG#+¿¢¼²ò«††<&((°|yû;É0L/¯+«É/úÏŽH¤<è³b…Q—ûÜõÒ­[a›6=Z¸ÐÀÏÏ‹•ìÓ¶†®… „ˆˆˆ™3g>yòDCCÃËË«MAAÁÔÔÔëׯc±XUUU@ccc»µ=xðàÏ?ÿ?~¼‡‡ÇôéÓ;izÆŒüüü‘‘‘///Ö$©K—.iii™ššž={öùóç›7oªªªŽ?þÂ… ÁÁÁ½ÿÝ!@#kü‡«DxÍÍ­@_ƒ‚R10~ûSQÂóÊÊ;ûmãÂ…÷d2íìÙ>ì&“iû÷¿|÷.ùðá¥;wšw2µu„#‘HVVV¦¦¦¦¦¦ÇŽsss;xð {1ÜÜ\'''"‘hlÜYG@ÐÒúož¹®®®®ng}¼¼¼–––¾¾¾†††¡¡¡÷îÝcýˆU‰ŽŽNII Çc±XV ‰ÎÖé„ hðq÷¯òh6b=œ“’R$--ÚѪ^^1Ó§kq¾hp\\‡Ç—Ó§Wõ`ƒ•–Ö¯XñOxxæ“'N¿ÿ>&×N bgg—žžŽ¾Å`0h‡-»ÖÖVkkkWWפ¤¤Û·owR¡’’G_§¤¤tÞ? °²²zûö­™™™ŠÊùq8}‘››«¤¤••Åáp‚ R__öNC4t¸üŠæÔ–jII¶¶…B¯¨hÔ×Wj·|eecXX¦)‡õS(ô¼-, úîÙS<¾ÆÊêv]éÕ«ßç̓®]utt´±± *((ˆŠŠrqq±µµe@güR(*•* ÐÚÚêææhnnf/ÀâààpôèÑŒŒŒŒŒŒ]»v±Fs;2sæL:~úôiöã{öìÉËË‹?räȺuë–––‡&iii‹-ºuë7>‚ÌͯùùUL&¢­­› ÀܼýRŸxQÑQ‹rXÿµkkjˆýµ†kÿ,>¾pÙ²kRRÂïßïïÖÃB#ÙÇíììŽ9b```oo?{öìsçÎÔÕÕÍÌÌÐ.YIIÉË—/ÛÛÛëè訫«ÛÚÚ.Z´ˆ½ËáÇ.\haaaff¦¦¦ö÷ßwÞ:ÚEÜÔÔ´zõOãöööóçÏ_²dÉ¢E‹> 8s挘˜˜±±±¹¹ù„ .\¸Àå‚ ~†ŒÍÍd%¥}ÁÁ邼~?z´ ÎpuõÆb÷âp•¿–g0˜S§þyì˜/‡õge•©©xòä7ƒfóôé7UÕý»v=§Ph}ÔÄðööè(ºpäÈ;;;Ö[´g˜+5[YYYYYq¥*‚¸nÍoÊϯB„}ò0//Ott??ïØ±r¿–ŠÊ#jíì¦rR9“‰<øÊÄd´ƒ÷w c277¿G¾ìß¿pÿ~ 8à:TÉä²²²G½xñb c ¨¿ üš—W) À‡ÎTB·U§ÑBÍèÑÒí®ÉðâEŒ±±š®.ö×ýêÉ“oiiÅŸ>äzòC7H ù~çŽC¿mqEllìªU«vìØ1gÎÖAqqñmÛ¶ \Põ“”_q¸Ê1cdÑEšrs+,-'¦¥ÓéŒv—E¬«#¥9cÉIÍçÏíÜi>fL;÷Á½ÑØØâäô85µØÃcóœ9íý B³gÏ®««ksP^^þîÝ»AýidåW´s˜J¥µZZ _¾äb0`öìq¿öõMäçç]µŠ£iÀ'OúËȈ:;ÏçnÀee vv÷ˆD²ŸŸ3‡·ÑAÐ 1‚æççWkjþ7y˜Á`jk+†‡g!04Týµ°—W̲eDD:Ü–%44óÝ»ä¿þZ=j?£MK+^¼øŠ  ßû÷ûar… rFJ~e0˜x| :)7·’ŸŸwôh™ŒŒRaaÑ£Û®‘”DÈÎ.çdfSK õÈ‘×Ë–Mànçmxx–¥åMe_ß]òòb\¬yØ)0ACÎH鮨h¤Réêê2®R]]‡«$“i“&©ÿ:#ÉÇ'NCC~Ò$õ.«½~=¤©©õÏ?9¦åЋ1‡½Z¾ÜèÚ5;Î=9Z[©_¿âÂóÂóDDà„/‚©‘’_ñøZÀèѲ®R[[1::Ÿ——gÚ46%ÉdÚÛ·Iœ<“›[qçBºD IDATΧcÇ–+(ˆs+ÎË—ƒ¯\ùŸÃù_ž–•G£1&LPµ¶žüÇÿ t\Aí)ù•@¨”“àp•ß¾å2ˆ‘Ñè6%?~Ìhm¥ZZNì²ÎcÇÞjhÈww_ØNœ;tófØ¡CK¸>Ujˆjn&þœò=""§ººYQQbþ|=w÷ 3fh \\jÃÂÂ:ß„u+((;¶Ùï #%¿âñ5ªª2:™Ÿ_¥¡!÷ðá ÚNnzý:aÖ¬qh&îÄ»wÉß¾á|}wq¥ —ÉDŽ{óìYô¥KÖ¶¶­h1ŒÕÕ‘>~Ìøð!ãË—Ü–ª¾¾òÚµ¦óæéNœ¨þë6 îîîä ó+ Z#%¿µèàkIIÆàãã%ÉRRÂJJ?m›ZUÕüùsöõëö×ÖÜL>~ü­µõdSS.|»ÑhŒÝ»ŸøñèѦ Úß&o$(*ª Îøð!=.®ŸŸwÖ¬q§O¯27×UTìp§6Aú3B‚ ΔüŠÇט™iòòª0Luu3¯±qÛÎaÿ$aaÁ.ôÿçŸ …~ôèòÞF&Óœœzõ*®¾¾eÑ¢ñ~~»{¹cAÔÆ0ϯuu¤ÖVª’’$‰D©ªjF„J¥±&7ýûoúܹ:ívÿþõWÀ´i pÞVjjñÚµwMMÇ>x°qÐ&×ÄDƒïß§II ¯]kºnÝtô‚ ˆ»†y~-+k(+KT#"&6ŠL¦éê*Z¾|Éýç»_Ï ÏŠ‰)ØÃyC8\¥ƒƒ»òÝ»Žƒ0¹ÒhŒ€€”‡#““‹&NT¿qÃ~ñbÃA'Aа1Ìókii=ƒQV–ú÷ß4Œ´´ˆ¨è(4¯|üø‡3¾~›S æÙ³ ꛘŒæ°•ââ:›;£GË>}ê4Øî/-­¿{÷ó«Wq4ÓÎnêëÆŽ…ϰBõ¹až_Ëʤ¥Eùòó«xyyØWnzÿ>mÖ¬q¿v¿y“ˆÃUº»oà°‰’’úU«n(*JxymDÉõË—Ü"ÃÂ2±XI—ÅÖÖSàÜ%‚ ~3üó+úðkVV9Ƭ­%¯ hn&þœ}á‚U›òT*ýÊ•¿ýf¢¡!ÏIýÕÕÍ66wÄÄFyznm÷!ŸþG¡Ð_½Šö,*=½dæLmÍóæéÁÕ! ‚úÙ0ϯ%%õÊÊ’€¬¬2– zÿúéS‚ ¿.+áé]^Þà꺘“Ê›šZmmïòð`^½ú}0¬Ç[QÑøð៸¦¦V+«É—.Ù´ÙC~hñññ±±i]-¨[è h$æùµ¢¢Q__AÒÒz!!*•®§§  J›6MS\\ˆ½0‰D¹råãºuÓÑÍv:×ÒB]·î~cc«ŸßnYYѾú8“˜Hpwÿœ.##ºuëlkë)rríïµ7äøøø tCXttôÕ«W: ¡†y~­ªj27×­¨h¤RX¬˜¨¨ °°@k+544óäÉ•m ?yò­¥…êì<¿Ëj©Tú¦M„š·ow£ýÏ‚Ng¾}›øðá—´´â‰Gß¼¹nÑ¢ñÃlV°•UÛ>|ˆsð΂Ððϯ âèÊþ||¼?A;»Ø‡îÁƒÈÛ·ÃÿùÇnÖ¬q}÷/BB¾ß¼_hd¤6,Y!‚†Ÿaž_yyyddDJK„…¤¥EÄÅ…BB245åÕÕeYÅjk‰÷î}ÞºuvçÏØøú&º¹ù9c¹zõ¤¾€ÿO_º?"#£tÁ}¸ ?AÐ2œókee“¬¬(•J'‘ÈÒÒ¢ÿ|ÍX²Ä½˜»{ï¶mݼ§ïÙãuà€ÅÆf}4€ÖVª§g̃‘eeõ¿ýfrõª­¾¾r?´;a0§©©ÙÉ‘Näååiiiõxžm»sÊà¬]‚ÀðίUUÍòòâx| ‚*•n` œ—W…Ç×,XðcÍášâÇ‘¿ÿ>¯“µñ;w>stœ±¿E_Ç\_OzôèËãÇßZZ¨vvSœf©©Éôu£P» ¦L™RSSÓy±¨¨¨1cÆôi EÃ9¿VW7ÉË‹ÅÇ‚ÿOnúø1CZZdÒ$uV™Û·Ã„„¶nÝQ%ùùUë×?07×=}ú·>¶  úÚµïÞ¥HI oß>ÇÖvj—“­ >Åd2kkk»,&''§¨¨Ø§M@4ucóð!§²²QNN<>¾54Týø1cÞ<=Ö–é_·m›ÓÑDܪªf{{wMM…›7×uk£õnIJ"¬_ÿ`Ö¬sÉÉE/ZÇÆÿý÷y0¹ö^^^ƒñ÷÷7nœ¼¼¼³³3…Ba0/^ÔÖÖ›1cFll,Z800ÐØØXXX‹Åž?0uêT+wÒh4WWWyyyWWWÖIÓ¿ÖF§ÓÝÜÜÔÔÔäää~m¢¡¡aÆ ²²²***...d2ýÂÂÂÔÔÔLLL6oÞŒ–$‰ÂÂÂÉÉÉ}ñ¹AÄÃêþ55µA¤$BVVYUUSVVEtt  ´´(&>¾PAA¢¡¡ERRpëV¸¸¸Ð¦M3MM­m–K$)ŽŽ÷x=<6Åß'$Þ¸š©­­pùòZKˉpb0×ݾ};00°®®nݺu222âââ—.]º{÷îÔ©S“““œœÍÍÍ«W¯^·n]``àçϟ׭[·yóæ˜˜--­ŠŠ ´ž«W¯&$$ YðĉçÎH$"‘ÈjnÔ¨Q­­­¿ÖöäÉ“7oÞa0˜-[¶œ={öâÅ‹mšØµkWEEE\\‰D²³³³··\¾|ùÉ“'d2ÙÁÁáÞ½{|||þþþcÇŽ522êïO‚ Î!È‹‹7»·£ÿTU÷+)íÅb÷ª«»œ<ù65µhôh—»w?!ÒÚJ8ñÔ·o8VUT*ÝÊêÖĉ'ËÊêû"ÔÈȜիob±{—/ÿ'$ä;“Éì‹V†4oooN®O‡k÷‡¤¥¥±*ÔÔÔÔÖÖ~üø1«ð“'O %++‹H$2Œˆˆ´ôtVIòòrôuHHˆ‘‘ÒÞ<¦€€€vk7nœ¯¯/zzff&úš½ *•ÊËË›‘‘¾õõõÕÔÔdÿètº¢¢bXX‚ K–,9þ<·>C‚ú°º9SÛÓ3€ögoÒéLô…Bwwtw5mš 00µ¬¬ÞÆæÎ¥K666SÙ»×+-­ÄÏo7+ÉÅÑGnîÞý”]±lÙ„] àÄàÞBØòòKÎÓÒÒB_èèè”””`0öÛ>CCC€€€@nn®““‘H466n·<ÅbYo%$$ÐíÎUþµ6ÀŠDWWWWW·Í)••• CCC}«©©YRRŠÀËËkiiéëëkhhzïÞ½?‚a•_gÏÖæáLf×%Ñoá–êâÅWçÎÕ))iÀ`0 sÿþii%BBüAAi^^Ûtt°]VÅ!*•þôiÔÇ‘¥¥õ¿ýfrë–+ÉÔÔÔÐglзYYY|||ªªª¬8nüøñ€ÜÜ\%%%AAÁÔÔÔ & ?ýþý; µµÕÚÚÚÇÇgùòå ÅÃÃã׆dee?}ú„¦Ò††V§î¯Ú­MII ÇRRR‚‚‚Ž=Ê~–‚‚//oAAžž ??_Yù¿¿½øùÿž°²²²··×ÓÓ333SQ›BÐH0¬ò«„„°®®Rff)‡Ï2L@DDú€ àÉ“o ræÌšéÓ9z€˜Hð÷O:}zU»?Ef½wïsMMóºuÓá#7ܵaÆݻw_»vM__¿  ÀÕÕÕÑÑQPðÇ„µ={ö¸»»×××9r‚uuu•055MII9qâ€B¡P©TÖÖÖS§Nš››ÅÄÄD"QTT`iiyøðáK—.566nݺuòäÉ7nÜh7¤vkspp8zô¨ºº:`×®]hE¡MðóóÛØØ8;;ß¿ŸD";v |e7sæL:~úôitÎAƒÙ°Ê¯ssÝÜÜ Áù)¬äŠb2™||<F.X §¤ÔuçpZZ±Í …¶eKÛÄÙÔÔzÿ~ëaÖíÛç àfvÃÕñãÇEEE]\\‚’’’­­í‘#GØ ØÛÛÏŸ?ŸD"ÙÚÚ>|˜ŸŸŸJ¥º¸¸”——zyyM:URRòòåËööö"""‡¶µµ]´hQii©™™‹mnnœ9sfÏž=ÆÆÆ<<<«W¯¾páBG!µ[[QQ‰D²°° ‘HK–,ùûï¿êêêìMܼysÏž=“'OX»víáÇY]Ä(´‹øÉ“'«W¯î“O‚ îÁü:^5¤}ýг¶¾ÝûzøøxÅÅ…^¼Ø†niבÌ̲ß~»ÞÒBãákÖL¾re-z¼¾žtûö§§O¿a0'§Y6˜ÉÈ ðìCŽMo®Ï^®Í48=zÇ{zzrR¸÷Ÿ!A=6Üî_§L# ÀG¥Ò9,Á`Ú]ÏŽNg46’V­ºéá±iæLívÏMM-^½ú…Bc2™L&ðñ‰Ûµkž°°À­[á/_Æ ð9;Ïwtœ!&ÖáÊPÄ92™\VVöèÑ£/^ t,um¸åW¾)SÆ|û–ÇÉßì FMM¦¤¤®M1€‡Ãd"cÇÊvôäkVV¹Ím …Æ:—‡‡gûö§……Õ‚‚|;wšoÞ<³ÍµP?ß¶mÛ@GÁ5±±±«V­Ú±cÇœ9s:‚º6Üò+`Θ˜|:½‹üŠÁ`Ö¯ŸñäÉ·_31//¼¼ØùóVì+³ËÉ©°´¼ÙÒBeOÌt:ãû÷Ò]»Ì÷ìY(,,ÐËßbD¡Ó™åå EEuEE5EEuEEµEEuyye½\_L^^þîÿØ;óx(·?ŽŸg6ûÎØ÷%RÖÐF‹´—6I‘¶Û&ÚÐ~ë¶Ü¢ÔM)E{ê&-’TˆTÚ…”²ïk ƒl3óüþxú͘Cc‰ó~õÇãyÎùžïy–ùt¶ï ä—“½Î˜1cª««{Û Â+ýP_mlíßÁ= ‚ ëÖÙ ëd(<G$â7ož´l™µ{ÌÌ,Ÿ3çD}}SûV/+/¯ƒâÊ…ªªú‚‚êªüü*LJ «‹‹)ØS$ª©É¨©I©ª¨ _¿öçø¤ÓõÕÐPIBB¨¶¶‘õ$€§ÑXè AÜÜÆoÙ2uذ¿˜âŠÇ# °·7ݱc:—˜yyßæÍ ¨«kn/®~ëÖ»'ª«ô8ùùUååµååÔ‚‚ªü|LM«JJj°.** ¥EVW—12R1ÃD]]FMMFAAB@à¿24440×qtékôC}Ed̘AÉ,ý¾‰„£ÑèØÕµkÇoß>ýéÓ¯ååTì2‡ ¬|ðà<33u.–ËËkNQ( ÌPPlK?uꉟjÓ×ihhÎήÀä“©£eeµÍÍ4€SV–RS“QW—±±ÑÃÔÕe$$„{Ûqé^ú¡¾FÖ»w/…%P"êæf{øðC… ‡oß> pýúkP"‘ @ðöžâê:Š{lýÊʺٳO”—SÙŠ+Ããqt:ƒF£_¿þzÃ;þVäÂû÷ù¢¢ƒuq‹4¡ÓEEVÅjk¿ƒ3ŤYuT^^\^^BIIîX@&mõ5&&&''§W\á#J+kb±œœ33IJPPPc#=22ÄÈHÔÖ–Ì`|¹pá ƒ ´óç ªªšq8„@ÀÑéŒÿ7޼”IJŠ )I’ HJ¥¤HwïÞÀã‘_¯ˆ––Ö„ 8]MN.8|8*.î‹õë×mÓ$ev튋 jhÈ©«ËX[ë9;Ë`]»ŠŠ$Rÿü¿t¶¿‰gÏž½yóf¯¸Â_Èä¥8œ(‚ tzc||àë׆‚tddLd$ 1Ô£Rãîßÿvÿ~¦p8!iéÙ8œ0^O§Sèô::úÿu(Ú‰XQÅÁÁ­¾¦¤úú>ˆ‹û‚Çã\AAW¦•~ÿÞ’•UΩkWHˆ¤«+¯®.£§§»v!¤³°isŒ;v÷îÝ=ï ‰Ïù²ØÒRYAAÄÐpá—/UzzÒ8ÜÈy¹¹5²–S4Ç!|hŽv,tm^¼È:xð~RR>€Ðé ÉÏÿÆÅ÷®]<§¢Òw‡H‘ž¿ïÂúmŸÞ˜1jVVÊBB?*¨¯ÿÓ„^MÍN Ž}b•SY±Mlº€Á@³³+±ãÚÚïmD”µkmÓµÛg‡HGŒÚÛ^@ Hé·úŠ S\w³þþû?em¿{Ann¥½½AAuyy-€@À)*Jª©I«ªÊŒ¡­(US“%“ÅzÁû®¢ªªÊºÍü^ôê¯ÔÖ LŸþeÅhjj53Swt´Ä4UYYª´¹!dÀõµRXH-.Ö¨¯— pVV&óç[(õˆkéØÊé£ ÅÅkTTê‡×Â.âp8!!"‡ù>HצC ¤›€í×>ŠŒŒ˜Xœ14ÔNgdeU$'¤¦¾Ÿ—ž^ÚÚJ' $¾¡¡€Çãòó«zÛeüGÿl¿fffÚÚÚÆÇÇ3ϼxñÂÎÎ 1nÜ8ggç6ÛælÙ²eܸqÅÅÅ=ì*/àñ¸Aƒ-˜ûðáæ¬,Ÿ¨¨M{÷Κ>ÝX[›ŒÃ!t:½ ê+ô!úgûUWW×ÙÙùĉÆ mhh8v옫««––– ¬¬,;;[GGû³®®.%%¥÷üíD"ÞØXÕØXÕÕu ¡¡9-­¸±±¥·ý‚@ ÈôÏö+ÀÅÅEBBâÌ™3€³gÏÊÈÈ,X°€yÕÜÜœµu›˜˜hbbÒóNò++­±cõ{ÛüGWô511qÞ¼yuuu€ØØX—¦¦&F œ={öìÙ³i4Zqqñ¸qã’’’“““/\¸àèè8kÖ¬ƒÖ××cÖÚçŠX¾|ùĉ.\øøñcNg›+¢ý1@غukTTTHHHTTÔÖ­[ „ÿëcÇŽgv?}út̘1Ì«l]7n\TT”««ë¬Y³®]»öøñc''§iÓ¦?ËU__èÐ!{{{‡Ó§O·´´°VåÊ•¾¾¾XÊÆÆÆÉ“'gffváæC ä· +ú:räHssó€€ …°cÇAAA@XXXiié™3güüü’’’.\¸€¥ ݺukJJJBBÂÁƒ;VXXxõêUìjû\MMM{öì™5kÖ¿ÿþëâââëëÛÔÔÆ6»¤¤¤§§gûc€žžž££cppðâÅ‹555Y«0dÈÆÆÆììl@CCCRRÒ¨Q£˜W9Uäýû÷§OŸ^¹rePPÐË—/Ï;·fÍš+W®P©TÀñãÇ+++}||Þ¾}{ýúuÖê/_¾üÅ‹t:ðâÅ EEEfï4@ú]ìvwwOJJòôô´··××ÿÑ3µ~ýz2™¬¥¥µjÕª7oÞ`çW®\ijj»lÙ2---MMÍ-[¶rÊÕÚÚŠ¢hcc#‰Dšv옗—ט1cX[¨€±cÇ>|xùòåm:‡¹TDXX€õ3³( ƒÁPRúáAYY¹²²’µú8ÎÚÚ:!!AKKëýû÷›7oîÐü¾tQ_+**îܹcnn~êÔ©íÛlJ#!!qìØ1eee@}}}uõˆ˜ÉÈÈ”••aý´YYY¯^½rvvf›«¹¹™Á`ìÙ³‡F£ÅÆÆnß¾ýîÝ»œ²s¢ªªêĉ«W¯622ruuõóókÓH:tè÷ïß?~üøîÝ»6jÇ©"\’’Âáp¥¥¥˜ð—””ÈÊʲV0vìØýû÷khh :TNN®C›ù}éJÿ0Š¢¾¾¾sæÌÙµk×û÷ï±óÖÖÖAAAååå999ÞÞÞwïÞeÍ5qâÄàààÜÜÜÜÜÜãÇ———sÊ… ˆ——WBBBCCCkk+@à”½¡¡!22²Í1Š¢~~~ZZZXwñüù󥤤üýýª9gccsôèQIÉŸ¶Óá^¶„qãÆùûû—––æææž;w®ý¾­FFFt:ýÒ¥KX3@ú1]Ñ×»wïÖÔÔ899‰‰‰mܸñèÑ£Ø\âåË— ÿñÇ7nÔÖÖ^µjk®E‹YXXxyy¹»»ËËË3¯¶ÏE"‘¶mÛvæÌ™yóæÝ¼ys÷îÝ$‰Söššš#GŽ´9~üøñ»wï<==±1NàååõäÉ“„„V—Æ—ŸŸß¦s¸ÃŠpbýúõ²²²«W¯öòò²°°X´hQ›˜¢ÿþÝÆÆ†ƒù}AÚ„1š?~eee?Ø_½o\VV¶sçN^ÿõ×_rrrpTùéŸñ›ú ---UUUQQQ»víâ—MÍήHN.HI)”“[¿ÞŽ_–!ò‹@}í!ÒÓÓwíÚ5sæÌ_ UTDIN.HN.HJÊKM-úþ½…@À1èÚµãùå*@~¨¯=„±±ñ½{÷ºñëײÔÔÂÔÔ¢¤¤¼ôôÒ¦¦VÁãqÌai4ÓÐå«¿ù% ¾öQ’“+JJ4rsÅÆóHøÖV6XÎ`  ÆOÛ­Óé UUéÞq@ ìè·ñýwŒÉbbµx< Àá–z›™hm€ú @ } Ø~í£ £hiþøc·OTzz1‡£ÓlãpÈ‚§ÕÔdÕÔ¤ÕÔdÔÔ¤UUeÔÔ¤åäÄzØm`@}íëØÙN˜08&æó¡C¾|)a«²RR" XTçå}KHøZZZ‹¥"ý_qeX¥WTT 7ª@ ˆ~«¯ -……uÚÚRx<‚Ã!(Šþ¾ñô᮲::r6üª¶ö{~~U~~UAAU~~UFFYĻ¢" –‹D"(*J¨©É¨«Ë¨«Ë`ššrbb‚=]7žÙ·o_›ð Nìܹ³}Ôˆ\Àá?Ì­\ÚÃF_KJJîß¿ßþô/_2**PQQœ¬,jlŒËÈ@•”€¨è‰ÍÉAÉäÿþäNc#øö BDD€Pw:ý3%%%¬aŠYUöï¿ïgf–# ÓQ<§©In“WBBØÈHØÈH•õdk+½¤¤¦  ª¬¬¶¢‚Š ð³gÕØà®„„0«âÊË‹ËË‹ëé) { ¾Üùøñã—/_FŒÑÛŽôunÞ¼ùÇô¶}‘˜˜˜áÇ«ªªvœáÂÂÂW¯^qIÀF_322XwÅù=Á)(¬€ÔÐÀ(/GŸ>ý—D" ›TU…1 M)©i ïêëß¡(­CsââcDDL(Jg0h´:½–N¯£Ó©ÿÿ×·ùG]ÃØØ¸ÍLeÇ3¸sçýáÃKK)(Šò8¹‰HÄcòÙæ|s3­¬¬kébMÞgÏ2._®¬«k´Ñ]ì@UU‡ëÑ.#FÀhVòûöÓô7nœ?~o{é'„††:::rIÐV_ûÇï×Û·¹ööÌhþˆ±ñªíÛg¸¹]±°Ø¾^^^œFc˜™íFáöí›3s¦ ÷_%Ewì¸uñâ Áãñâx¼8‡àpÎÀfõâñ8YY1UUiy55© ¬$º¯‚ÎÁÁbölóÛ·ß=úHMí—& 0Õ´¶þé|›NæüüªÔÔÂâb Ɖx%%É6̲ââ=ØÆ‡@ ¾Jÿ}ñ"‡ŒÿP×Ü»÷PTD™5Ë?<|=™,¶hш“'c¿}kX»öÊ™3ñ>>C‡ªp2ˆ Ès›šh¡¡o æ"Ôÿ¬t:£¼¼¶¼¼öýûÃo¼¼¸€:‡åää ¾¾¾òòò•••drÛJ ô˜¯=+‡êI FUUóÏ»wï>|øÐÌÌ sÏßßßÅÅå·Ð×þÖºzþ<³SAh4‡ ²hÑÈ›7Ý$$„9å%ñAAKÌÍ5ˆD<¬[g‹MVW—Ù·oö‹Û'Mú÷ß÷--÷úù=lÓ é ‰D‰$!ÑñJå6)[[[½¼¼äååÉd²——Wkk+ ""ÂÈÈHPPPKKëÊ•+XÊššš%K–ÈÊʪ¨¨xzz65ý÷Ìš5kÓ¦MØqss³””Tdd$[ãYYY‚ÄÆÆª©©=þœ¿7ÂäÞ½{ÊÊÊ pýúu==½††Ðщ߽{·šššœœÜâÅ‹kjj0k<¾$4mv¬ˆöÇliÿšq2{ÿþ}SSSaaaEEEU“mélkÇ ‚ !!!ÒÒÒ¾¾¾L;ááრ"“ÉÍÍÍl«9|øpSæÅÅÅO:ÅT\›üü|Ngk°ËÏëéoúúìYFgƒ µN@€ ÈîÝ3œÛaï®éêÕ•C†¨HH¹¸üºOYYjß¾Ùoßþéê:*((ÁÂâ¯î×Ô|ï”o¾ÓÐÐP______RR²sçÎE‹ °ßí€KÊcÇŽåææ¾{÷.66öÉ“'þùgCCƒƒƒƒ››[^^ÞÎ;—-[†ý4¯[·®¨¨èÍ›7QQQ=òññaÚwrrºuëöú=zôHXXxÒ¤Ilcéýüü.]ºdjjÚ­÷g 3sæÌ &lܸ±¼¼|ãÆW¯^=‘§OŸÞºu+222...##ãÀØU_’þù‡mv99¹   öÇliÿš±5[WW7wî\33³ÌÌÌ#GŽlÛ¶­²²²)ækA£±oÇéž°r÷îÝ—/_úúúnÙ²¥ºº;yêÔ©û÷ïGDDDEEqx,è`YYögPPPll¬²²òĉ9ÂW¶çr—:û¼¸˜â´Á`0 w**nàýŸšÚf%¥ JJ±?••7ijzéèl]µê"Îà±\*µññã4î NžŒ10Ø®£³eçÎÛee5ü¨îÀÂÁÁÁÁÁ¡Ãd€ÌÌLNgÚ¼ü¢¢¢Ÿ?îBJ}}ýÒÒRì8::ÚÄĤººšH$9r„B¡0Œºº::ÞÒÒ‚ÇãÓÒ~¼·oßÖÑÑÉÌÌľ»††‘7oÞ (º`Á‚mÛ¶q2ŽeIMMååFnܸÁKÊ/w†B¡¨¨¨íÙ³‡y’û4hÐíÛ·±«Ÿ?fóø’pÊÎ¥mÞp¶¯[³ÍÍÍéééõõõt:ýéÓ§˜)æ ‰²›¸ÁLÀš²}íÐv_P\\ækAÌ×øÆ¬Ÿ«}Ö“4íÕ«W{÷î2d áTq.;û¼¸?¬ Ü5´_µ_³²*ª«ë;•eôh½;w܆‰x"‘ ..xó¦[XØÚØØô-[nòhDLLÐÎÎ{77Û·oÿܲejddŠ•Õ~¼<^lj!‚õg¢ýOóûohhXµjÕ²eË8Ùá’2//OQQAAìììrss¥¤¤âââ^½z¥¢¢2f̘gÏžáp¸òòr:®­­åÒÑÑ)**b¶·· khhˆˆˆXºt)'ãØy}}ý_»1Ž‘””\¹rå§OŸÖ¬YÃ<Éý‰äççëêêbg fÏžÍ)Û—„SvÞaûš±5K"‘222&Ožlnn~ñâE¶ÖÚˆ÷ôéÓÙ&ãtOXQRR‰?Í>az¥¯¯Ïú9v_+ ¡¡áßÿXYYíÚµ+55uûöíÞÞÞœ*ÎÅ`gŸÛŠwŠ~¥¯ÏžeÐqç0Ö9¯«+Çã˜ci©µhшÖVºŠŠÔÇ›ÌÍÕU]oÜx}ìØc>º'""°b…Íë×»žÿî]Þ˜1‡<cÇú()mÔÒònjjÕÒòÞ»÷3eDD²²òÆÏŸ‹9™:zô‘ŠÊ¦¨(žÆ½º@K -4ôÍøñ>JJÏ$&fuSAýÇ_[[[}}} „MÑܱcGCCó*ø¹û‹N§‹‹‹çææ¶¿Ê=%•J]ºt©”””ŒŒÌÊ•+±"nܸ¡­­M"‘ôõõÃÃñ”ÕÕÕ...222ŠŠŠ7nllll3¶´råJQQÑúúzæ™öÆÛGqÀñWtxgNœ8allÜÒÒ‚¢è;w«««ÑŽžHSS“§§§’’’„„„““…BÁÎóø’pÊÎve×ׂ²{Í8™=zô¨´´´ªªê©S§œœœÈdrãmú‡QâlkÇé ,ã¯ÁÁÁêêê²²²îîî(Šîß¿_RRR[[;<<³ßÚÚ:zôhQQQ,;FÛ³g‘‘‘††Æ–-[°Œl+ÎÖ`—Ÿw:EØ>°þÁ²eç‰ âñ€¸¸-§N=)*ª¾uk–Eщý44dƒ‚–p2²cÇíë×_…†®6L“Sš_çÍ›œ€€'11ŸõõV¯7k– ²ØlÛÎþ±b·‚ È7à.§íw¦wé‘˰ý_¹Ô¨_õ·A^^¼²’:b„Ç}üXdggøæM.3È-‚ žž“Èdr```o{Ñ£ôg}•—§R›ššZ¥¥E¾oþø±EQ;»!qq_X7°µ507×ðóãØ„ÈÊŠ^»¶ª  zÕªK¼lð눊 ¬XaóêÕÎ#GSS‹Æóqu ~û–K² Òôg}•“TVÖihÈ65µÖÕ5åçWMž<¤¾¾ùÕ«lÖ”ÞÞSââ¾¼~ÃÅš††ì;î))…+W^ä¼%Ÿùÿbï –×Ô|··÷Ÿ<ùèÍ›oÞ@ }Žþ¬¯òò  ê!Ê÷ñc‘‚‚„bLÌgÖ”ÖÖz#Gêøù=ânPKKîÚµU/_foÜx½ýîÝ‚ vv†áá¡¡k¤¤„7l¸>yòÑ;w’zLæ!ÒYú³¾ÊÊŠ!R^N53SÇþLK+ØÙ>z”ÖfRµ·÷”çÏ3³ØÛú?††ÊçÏ/»?yçÎ[Ýç9'FÖ»~}ut´ç A ëׇ ¾ïäÉXæthôú³¾‰x))ኊ:y€áãÇ"ÀŒ&U))…¬‰--µFÖóñyСّ#uΞ]òêСÈnòœ;ƒ+<éüúõ®¹s‡>gnþ——W(Œ@ }Šþ¬¯yyñŠ ª¶6¤¡¡95µ0x°’††lddj›Ä[¶Lyû67!ák‡fíì ÿùgáÉ“±±Ýâ7(*JnÛ6-9ù¯ãÇ~ýZ6~¼/64Û3Ó¯ ÂBo;нÈɉWTÔ‰Š ˆ‹ Q(t:½´´FQQrêT£ÈÈ”;~ÚÂÜ\cüxƒC‡X[ëqßÍ0{¶•Ú¸}û-11¡Å‹Gvg%¸A$âgÌ0™1Ã$5µ088ÁÓóÆ..#—.µ––é-¯º‰„„;;»Þöò³ÿ~î©2ùþ]XXîÖ áFyyË&û¹¾*+KSÚÚ²> òñc‘¢¢ä´iƧN=IO/10PbM¿qãÄ3Ž?}úuìØŽ÷suUSó}ûö011Áٳͺ«¼ad¤êï¿hçΙW®¼¸páù‰±3gš¬Y3®M_†ÞÛ.ü888°Ý/âààÀK²ª*Á‚ñï߉ææå‚‚ìw‡@RRRÜwìÏñ‡~~îÞMzölÛ–-¡!!¯¤¥E]]GnÞ<EQKË}ŽŽ–žž“Ûdqu ÎËûëM ðÔy¾Ä™3ñ‹§M3î†t…–Zxø‡ÀÀøôô Í+l¦L1â±:ÈÀ„NgܾýþäÉØœœJ''+77[uu™Þv ò{ÓÏs••%KJj::òx<"&&ðñc1A)S†FF¦´Ï²k×ÌÜÜÊ[·ÞñXÄŽÓœ¬Ö®½ÿ…žÿ $ÁÁÁ"6Öëî]w 7·+ÖÖÄÖÔÀþ.„ ÏŸgLšä·aÃuò£G›}}çCq…ü:ý^_¥[ª«´µÉ­­Œæf6…0mšñׯeí·7×Ñ!;8Xúø<à1"‚ ÿ=oüxƒÕ«/1÷,-µÎœq}þ|ûôé&O,,öz{‡fd”õ¶_H_¡  jÅŠ ó矖–}üxó¹s˰ˆåȯÓÿõP\LÑÖ&**êKKkªªêšòòâ´E ðöž\[ÛxáÂsK!p®ææŽŽ§±%¶} 55™;¦¿|¹cÓ¦IOŸ~µµ=üÇŸ?ÏèßCw¨Ô¦]»îX[ÌÍýº64t¡¡ro;éWôs}UT”@¤¸˜¢ª*M"ái4keâpÈ„ †~lŸK^^bÅ ÿÞC7.^\ai©5oÞÉ øX~!!!¼f͸ÄÄgθR©ŽŽÖÖÏœ‰‡ÆÈÇÇŽ=tóæÛíÛ§?|¸iôhÝÞöÒéçú*$D’’.)©Áá 9'!!ÄlbΜi’’RXPPÕ>£››-€;q"†÷²ˆD|PÐ’áÃuœœN÷M‰àñ¸©SnÜX“”´ÛÉÉ*(èéС»\]ƒŸ=ƒÍYÈ€€Bips»²lÙù#´w¬Z5–HÄ÷¶SþI?×W€²²Ôÿ§8‘EE…ÄÅ…ÒÒ~Œ’Ž¥K&‹ß¹“Ô>—¸¸ ‡‡Ý¹sÏòóÙ¨/'0‰µ²Òvr LN!//áæfûúõ®óç—55µ.X8zôÁ€€ØêjmÒo¹zõåˆ޼ɽvmU@€Kÿ[#éS }-*–À’ÐéŒÔÔúŠÃ!Ó§ß»÷mFW×Qd²ø?ÿ<îTqD">8x©••Ö‚mB0öAðxœák¢£=­­u>|ßÖ­7ûø ÎB¥6®^}ÙÛ;t„ÁÑÑž¼,p‡@~‘þ¯¯JJ’ÿ1A®«k¬®nÈϯ¢R±«öö&éé¥_¿²™R+ @صkfhèÛΊ &±––šŽŽ§û¾Äb ¬tèCRÒ_»vÍLN.œ:õ˜­­oppÜ<ÒHO/<ùèë×Ù/.?yÒYRR¸·=‚ –¾ÒhŒ¦¦VE?}*Á®š›k¨ªJGD$³Í;s¦‰¥¥æ®]w:;6‰I¬……Æ‚XÐãßQQ—‘nzþ|ûøñƒýý£‡Ýåèx:""†5†ü¦\»öjÊ”£²OžxOœ8¤·Ý ú¿¾ª¨HUVÖµ¶ÒutäBB$æBUAfÌ0¹}û=§ì{÷Îþð!?*ŠÍ4cîH„  ¥C‡ª,Zt6=ý7ÛÜFKKnÇŽéïßï¹pa¹¤¤ðÚµWŒÿôöMO/ém× ^im¥{{‡z{‡zyM Y)%G[!=Jÿ×W%%I:QVV+!!,++ª¨()**Àœâ˜9Ó$/ï§u«C‡ªÌžm¾oß½––NG"$^º´ÜÀ@qþüS¿ÄˆD¼á™3®qq[œœ¬>ühgwÄÁ!àÆ7õõͽíÂÚÚïNNááΜqus³ípÇ„ï }•`SˆµµÉ¢¢¬QœFFªššrááìg9vì˜^YYwñâ‹.”.$Dºti&±¿ï­::ä]»f¾¿'(h©¸¸Ð–-7ÿ\·îj|ü:ÑÛÞA m).¦Ìšu"7÷[x¸Gß hô}UPûœí$ IDAT `‹\µµÉ4½¶ö{VVkøC{{Ó»w“8 ²*(H¬Z5öرÇ]›ì#$D:wn™††Œ“Sà§O}.ºï‰ø)S†ž;·ìË—¿ÿùÇ©®®ÉÕ5xÈ]ÞÞ¡oÞäÀå³>»w¹'ú £¢6éë+ö¶;Kÿ×WQU•Æ–±jk“++ë@ètÆçÏÿµ&gÎ4).¦$%qœ'¼víxAAâ±c[«ÃDLLðÚµÕššrs缟×5#}AAâŒ&—.­xñbÇš5ãÞ¼É5ëÄĉ~ñØR(¤·HI)tv>k` º†Lëmw šþ¯¯ Ù¼¼ore%UUUJ@€ÀÚE¬¯¯¨«+÷.›@""žž“._NÌÉ©ìšbb‚7n¬±¶Ö›;7€mPÆß) ññ[=Úle¥uüx´•Õ¾3þ9s&ë‡@z’OŸŠœÍÍ5®][%..ÔÛî@:B_ÕÕeóó¿°(ÿ::ò‚‚$Ö)N‹[·Þq™Ä´`•††ìη»ì‘ˆ \<{¶ÙªU—îÝc¿"è7eèP•ýûç|ú´ÿÎu&&ê§O?6쯱c}üüfg·Ý¡é’“ æÎ=ia¡yñâ ‰ÐÛî@ C_54dòòªjj2D"^VV¬±±…Å cÞ¼auuMOž¤s2‚Çã|}ž>ýÊi±,/àñ¸£G,^<ÊÍíÊõ믺l§o‚Ã!––ZûöÍ~óæÏK—V©=3æ½½ÿ¹s ¥¥°E é.¾~-[¼8hÈ•ÀÀÅ0ž0¤0 þ—§®.[UU_W×$&&ˆIlK íË—’ÖV:óSTP9R',ìÝäÉC9Ù±´Ôš5Ëô¯¿Âmm “ºæ ‚ {÷Î xz†ÖÕ5¯\9¦kvú2$ÁÎÎÐÎΰ¥…ÿåÞ½d_ߨ?ÿ¼kb¢:eŠÑÔ©FZZr½í#¤ÿP^Nuv>«­M¾|ù!¡.~˜ßÁïÙ³§·}èv ôÂ…çöö¦d²xBBÆÈϯjm¥OjD&‹³¦ Œ[²d—OÔÂB+00ŽNgŒÕõ ­±±$(HØ·ï^SÍÆF¯Ë¦ú8x~,’“·µ5`&#ñYY剉ÙNNV\¬™˜¨…‡'}üX4k–Ù/:fb¢¦®.ó÷ß÷ËË©¶¶ƒû·Äbàñ8 Y;;ÃU«ÆŽ¥K§3îßO=w.áòåÄÌÌr€²²?ƒðˆ¿Ìõ믯__c`×¹Búbü°,ÑÑÖ&ÿÞ¢©)ÛÔD{ÿ>·M²yó†-X˜“SÉe€HÄ80×Ññô“'éãÇpJÆ#sç# îîWëꚎ_8p¤Ç©3r¤Î¾}sRR ££?EGºqã  ÑÚZoÒ¤!vv†°EáB\ܗÇ£œgn®ÞÛ¾@ l(úª®.‹M!Æ–èHK‹>.mi¡±Nå=ZOIIòÎ÷›7OæbÍÚZoêT£]»îŒ­ûë+fÎ4øã +V\8{v‰€ÀoùPbbbrrrºœ]R88ˆOœ(ôõk}FFÞÖ­Ÿ½¼Pee!ssISSI>ú ùu&L˜ ¥¥Õ»>QÜÜ®Ì;ÌÅed§2ž={¶›\‚ 4V®\ÙA t`àïmi¹;Ö×ß~áÂó‘#÷+*nHI)h“rÿþˆ#ö3 îss+54<Ïžç—‡qqéZZÞ‹56¶ðËfOâààÀÇAˆ‚‚:v¢¢Üúê!½Â7zûuC/1b?•ÚØÙŒ½}ó ý‡_¶±þ ®.[RRƒmbª«+Ÿ‘Qjc3ǵßÿÜÁaX^Þ·wïò¸ÔÐ]±bÌáÃQeeµ|ñpìXýÿ]ýömîüù§Ó]ͺôSÉ£¥±1³¦æq]Ý+~Ù„ð…Þ~Ë 4ôí“'é'N8‹‰ v!{_øÿä·æÆ¼¼iE_54dètFQQ5`Ð …ŒŒòáõ ´½Žêé) ¬tçÇa™xyM–——ðôäéFó‚……fTÔ¦ªªú)SŽu9#Ò¿)+«ýóÏÛK–Œ†Ã®>ÎÀÑWY6««+Ÿ‘Q6|¸6Š¢¯_³2œ;wØíÛï¿oi‰‰pàÀœ'OÒùOX]]æî]wIIá3Ž÷ƒ ¾³wï=QQAoï)½íÒE_ÅÅ…$$„±]tôôä¿}«'ñd²XQQuSSk›ÄŽŽ–MM´ðpŽáþ™ØØ š5ËlçÎÛ|Üo\NNìöíu¦¦jŽŽ§cc9Æk„@ ïß燇8p`n×z†!žd è+@GG.+« §§ÈÈ(³²Òa0Ðö{²JK‹Lš4äÚµ×¼˜ýë¯Y -GŽDñÑUaaÒùóËlm/_~¾ŸítEÿüóö˜1ƒ&MÒÛ¾@ 3 ôU>#£ ¨(!..˜™Y>~¼>ÈÛ·mWÁœœ¬Þ¿Ïûúµ¬C³rrb[·N=wîYZ?÷N'‘§O/vq¹víåÓ§ãøhùMyð 5%¥pûöé½íÂH_uuå±A‚èèÈgf–©úôé×ö‰ml©ªJó¸Å‹ËH5oïP:ÁG‡q8dß¾ÙGŽ8:¹zõåæfŽ{çA ýEýü͘aÂÓéË ,}-/¯¥R›À)N媪Òbb‚lÛ8âèhyó&·aYûúÎÿô©øÊ•—|w{Á««WWÆÇ™?ÿTuõo¹n‡ÉÉ“'•••Œÿþ‚¢¨ººú‰'xÉŽ HVV÷3]³ƒlOg-w™ÿý—­#GŽTQQihøï¹ggg“H¤6>KHHLŸ>=77·/T§;xð 5#£lÓ¦I½íHŸA]]]ôçåRS¦LéÚÁj–‰””Ôüùó++9.d@QÔÙÙYTT”™÷WŠæD}}½§§§¦¦¦®®îîÝ»›ššø^J71€ôvņ`±)Ä€!CTª«ëëêØ<0''+*µñáÃ4^Œ(º¸Œôõ}PYYÇW¯ÀÚZ/<Ü£¬¬vúô~ëu;eee‰‰‰Ì3III………óæÍëE¯˜$&&–þ §”999²²²|,ÚÞÞ+»9LîÞ½ÛÚÚêëëËL¹uëÖ#F,\¸Õç’’’§OŸ2 ggç.T§ïƒ¢è?ÿDÛÙêêÊ÷¶/}…¼¼¼””æŸ %!!á×Í2ߨèè袢"wwwN)KJJBBB>þüë…²ÒæãrwwOJJºuëVAAÁ¹sçÂÃý¼¼ø[b÷1€ôUUUZPˆuëé)”•ÕR©ãÇë£(øð¡ }zEEɱcñ¾ úŽÓ%%…ù¸–•Aƒ""6`ëv^½ÊîŽ"zyyy[[ÛÐÐPæ™Û·oÛØØ(*ö‰àìrrr ?Ã)%ƒÁ¨ªªâcÑBBBX‰rrr¦d2ùرc¾¾¾ùùù€ÄÄÄ»wï0£˜ÏŠŠŠ&&&AAA‰‰‰T*µ³Õéû¼y“ûéSñÚµã{Û‘>Ä„ nÞ¼ÉüóÞ½{cÆða3iæ5lØ0Ÿ‡rJÙØØPSSûõBYióqݽ{÷àÁƒfffrrr666þþþ÷îÝão‰ÝÇÒWÑÒ’û¿¾Ê23+°ÝÔ=bßH]¸pijgEE^ì ‘ŽqŒ‰ùÑ-3~Éd±ÐеffjÎÎg£¢ø¶â¶‡qrr £ÓéØŸ·oßvttÄŽïß¿ojj*,,¬¨¨xèÐ!@VV‚ ±±±jjjÏŸ?çn¹}v@DD„‘‘‘   ––Ö•+W˜‰?~¬££#%%uðàÁ}F$$$ÄÀÀ@ZZkJ>€)«“fffË—/ÇrÕ×× øð¡½ÁÊÊÊïß¿wX.†““Ó¨Q£¼½½QÝ´i“‡‡Ç!ìgÏâñxÆë8}§Üè].^|nb¢fa¡ÙeÝ»wOYY™B¡®_¿®§§‡õÏ·¶¶zyyÉËË“Éd//¯ÖÖVÖG¿{÷n55599¹Å‹×ÔÔ`ÖÚçì^KÆ6;VDûc€ƒƒChh(³‹8,,Œµˆm¹‚œ?ÞÀÀ@NNîСCW®\ÑÔԔصkÛ[ÇãÉd2'7X¿‚6´ÿd°\ááრ"“ÉÍÍͼ˜?uêSqmll°ÿkjjj–,Y"++«¢¢âééÙÔÔÄÖ`—èµS½ÁêÕ—/BQ”Nghk{_¿þŠÁ`¨«o¶µõe›¾µ•nbòç‘#Q¼±y󿆆;¾}«ãÇí Ñè»vÝVRÚxô裃$÷$¼ÄG¤P(OŸ>EQ4==‡Ã•••¡(J¥RI$Ò²eËŠŠŠ®^½ ¨¨¨ÈÌÌL™2åÉ“'õõõ€äää:™™™œ²××× –––ž;wŽ@ Ô××£( ˜>}:•J½uëàÛ·oØÉ6Æëê~>>sçÎ-((HMM533Ûºu+ë£ß³g¡¡ajjêÇ­¬¬<==9åbûZ>|˜möššš   öÇ€/_¾(((|øð»$,,üíÛ7æѾ\,—““•J ÌŸ?ŸJ¥ž9s¦ýW@¥R¿|ù2vìØ½{÷¢?¿–Ìã6ï*³h”ó'3qâÄŒŒŒW¯^éèèìÙ³‡³=RVV°³³;|øp^^óÒ¢E‹lmm³³³SSS‡ ÂÝ`g÷7‹È= Š¢K_ýüޱ;ž8ñÈÞ½á(ŠŽéÅ)Ëþýff{h4:EÔÖ6š™íñðùuo¹ž¤©éµhÑ™ÚÚïÝZïð¨¯(ŠÎž=ÛÍÍ EÑŒ?;ÙÜÜœžž^__O§ÓŸ>}Š}«Ø‡‘ššŠ¥aûDì“f›½ººšH$9r„B¡0Œºº::ŽÙ‰GQkFc¸ühKK «cØUV'i4š‚‚Bll,Š¢S§N=tè–¦±±ñòåË–––¦¦¦gΜi/uLØê+Š¢»wï\»võ$««D"q̘1¬?p¼ügº¸¸x÷îÝ***3fÌxôèv¸Óóúzî\‚®î–ºº&¾XãÅ …¢¢¢bdd´gÏæI}}ýÒÒRì8::ÚÄÄ„õÑ4èöíÛØÕÏŸ?3ÛçbûZrÊÎ¥™™™nnnÛ¶mCQôêÕ«vvv(‹Èµ/»š””„þÿMf=fûˆ‹‹cç» ¯l?æ·|ãÆ ^Ì¢(J£Ñ^½zµwïÞ!C†àñøÌ2OKKÃÒܾ}›»ÁÎ>&î÷ê+îÝû ¢²©©©EÑuë®:;ŸAQôÏ?ï**n(-¥°Í’™Y®¤´1>þ ï¥<~œ¦¨¸áñã4¾øÌ‰wïòLLþ5ê@ffy·Ä#¼ëkhh¨¼¼oÞ<kkë0sedd´±ÐÞ8k)_¿~eMßþ3f:¹víZ77·ÊÊJ‰TXXˆþ¿™èêêúúõë»8ékFF Mvî>sºÔž–––ÐÐÐÑ£Gëéé´ÝQª½åÖ×éÓmÜx_ÖxôïÞ½x<¾¼ü¿KPð§ˆQ¬^PPðãÇíí´Ï…²{-9eçR‹ÌÌÌøøxƒ1kÖ,ìSb>w¶å¶‘ÀöǬ'8 ªªÊ`0X_KìUD;ÒW¶ŸLcãýŽRRR;4[__ýúu†ýÉ`0víÚ¥¬¬Œ¢haa!«ÁÔÔTî»ð˜¸À£¾ ñW€®®<ÎÀ¦àbKt XÂÂØô×Ñ!®uþü3ÞK±³3œ9Ódûö[| šØssõ‡7‰‹ ͘qË´iÓBBBRRRfÏžlllœ?¾——WRRÒ©S§XÓ‰Äm²ÍÞØØÈ`0nÞ¼Y]]½|ùò3fTWWc—:»X‡ëàKa:éààpçÎL®TTTrrrƒNLL|ñâs¼§³`wÓ›òòòOŸ>™™™ uG]¦  *)©`Æ “ž,´°°ðäÉ“&Lؼy3󤬬,S?(Ê«W?f>b^II)//;“œœ|àÀN¹Ø¾–œ²sgôèÑuuuÏŸ?ŽŽž5kë%NÞòް°ðüQXXXQQÁ†ö‹‹y ¤Ãö“Á¤‘‘¡¤¤Ô¡YE.\øñãé&‚Lš4 K///Çã™{Nggg+++s1ØÙÇÄK;d`é«¶6™@À1§8S¾o10P"q±±g™¯X1&&æs§Æüý÷¼¦¦Öƒ#ùà4gäå%BC×ZZjº¸]¹’Øq†¾°°ð¬Y³6lØ0~üxlº, ¹¹¹¥¥…D"566b}¡Øð*°ÍŽ ÈĉoݺE¥R[ZZˆD¢°°0#•••e?ýPlH¸ ÖÖÖ4mïÞ½...Øcc㸸¸Û·oýúUOOoÅŠïßw¼;Ó¯Óau ÆãÇgÏž=|øpE_¼xqýúuþ®;úu"#SÅÅ…FÖí± ƲeËÜÝݯ_¿Ÿ3gζmÛòóóSSS'OžÀšËÅÅeÇŽiiiiiiëÖ­cÎÁiŸ‹íkÉ){mm-6VÚæÇÏ;wÕªU–––ØD$&ܽåóµ)((ðññQUU•“““””\¾|™J¥úûûw°~ýú¬¬¬·oßnß¾ÝÙÙ™‹Yìã]¼x±££cdddNNNbb¢§§§““€H$:::zxxäææ¦¥¥íܹsÑ¢EúÉûcêr¢Ãn?cäÈGŽÍÍ=¡y±±Ÿ ¶[[ÿ‘QÖŵ§SúÚ¿Ù¾}ûÂ… ¹$ ÓéØãÞ…9fÜ)zR_)”•Mááøh³‡ÿÁàôÇß8þÊ]]ùÌÌ2ÓÖ&c}Å3f˜îßç¸nuÑ¢áÍÍ­wïv¼cAŽ]P\LñõåçÖ:œ?Þ &ÆKLLpÚ´c÷ï§tœÒ 455åääœ?þ?þà’ ‡Ã„óŠ¼ l÷. ÆŒÑëmG ®0õ5;» į§÷#JâðáZ‚DF¦rÊ%##:}ºI§f9TT¤þþ{n``Ü‹üËÙ%%ÉÛ·ÝííÍV­º´k×ÖVz aåõëׯ [¶lÙØ±c{Û—þÀË—YC‡ªHHp5‡üˆ‹‹¯Zµª·½èi¢¾¶´Ð «ËŽ:¢¢22"ÉÉl¢$2Y²dôçÏ%l7³ãÂܹæM3Þ´é:ÛÇ|G@€pøðü½{g]¾übÙ²sµµ¿Gtž~Ø1cª««yœü éwïò¬¬´zÛ  “ɽíEO3àôU[›Œ &«ººòùùUØ9&&ê ÍÙÙœ2𛫫^¸ÐA”¾ö<8¯¹¹u÷âv§X¾Ü&,ÌíÓ§’‰ý’’ò{¬\„444ùRjjªÞÛŽ@ ]dÀ髸¸ ššôÇE==:iª­­‚€øø/\ò.Y2:22¥¢¢s;äHK‹>ìøï¿¯<àØÿÌw,,4Ÿ>Ýjjªfoïïç÷¿ÓB =@jjÎ07×èmG .2àô`h¨üùs @KKŽHÄcQ&† Ó@QÀ=n¾½½©¨¨`HH§7yµ³3tt´Ü²åæ·olVLvbb‚®Î;q"vþüSeeµ=V4òë$%å)(H()Iö¶#Hˆú:x°Ò§OÅ"¯®.ƒõëë+’Hø¤¤<.Ó‚‰NNV—/'vaêÐÞ½³…„ˆÞÞ¡'å+ÎÎ#""Ö—–ÖN˜p8:úS—t™¤¤|33Ø9 ùˆújh¨\PPM¥6VJO/àñ8}}¥¦&Z‡³œ¾}«ã´ŸÄÄOžt~ü8íö히ÝÃÊС*‘‘ÌÍ5–.=çãó€Fƒ}Å߀ LLø¼·(Ò“ôþ"¼žÇÐPEÑôô++-==…[·~ÞÈ‘Úéé%ÏžepÙfREEj̘A—/¿˜>ݸ³åZZj-^<òÏ?ïXYi)+Ku½GJJäâÅågÎ<=xðþóç™'N,ÒÐ༜œœ³gÏòÝ,dB¡4”•բܯccc»šNGi4T@` 6K ¬ðâ´û#]ôE ¶Ÿ?Ÿ€¢hddвòÆïß›Q ÿ ¤´qêÔ£Üó>ž©¨¸áý{öñí¸ÓÐÐlcsÐÞÞŸ÷ ïøKjjá˜1‡tt¶\¹’È_ËÝüJCú =ÿèõëlEÅ EEÕ|·Üµ*‰ ãäå׈‰àïÍ„ü¾tø² Äö+ø1[Ð×Wd0ÐÌÌr##U33uESR +*êÈd1NyGÒ15U zzúôâΖ+,L Z2eÊ1_ߨmÛ¦ýRºÄС*ÑÑžþþÑÛ¶…Ý»—üÏ?Nüš?ÚÓCË~Lvv…ˆˆ@wLnê”Ä–•Õ†…½»yómff¹––Üüù–óæý §\Axd€vt*cSœÔÕe‰_¾”TT¤deEq8Ü“'÷ÒÁX±bÌýû)ùùU](ZOOa÷nû€€ØgÏ2ºý×!ñ›7O¾{×£¨¨züxŸ«W;=én²³+55e»i?¾¡ÑÉNN{OžŒ>\;"býóçÛ=<&@q…ðÎÕ×Áƒ•¾~-£ÑxÝdݺ«••[JËGÌÍÕ£¢6Ž?ØÛ;tãÆ /ðHff¹¶6¹ãtü¦ªªÞß?ÆÊjߺuWˆÎ)){}|à2\H ú:dˆrSSkNNÀÀ@›B 03Soi¡=}úµ¹™Æ%;€[¾Ü&$ä%…ÒÐ5|}7^ïò€Ð¯#!!|ê”K`àâÇ?çÓA«é1²³+ttzT_Ÿ=Ëpu 61Ù}åJâ²e£ß¿ßsñâò™3Mè ä× úª§§@$â±!X==¬`jªVSóýû÷–—/;ˆÈ¿hÑíZ·¹:qÂùéÓ¯]¸È_fÎ4}ùrÇøñ®®Á®®Á¥¥]™W ð‘ÖVzaauÏ´_QŠúhoïïèxº¼œzäˆã‹ÛÝÜleeE{ tHÿf€ê+‘ˆ×Օdž`õõKKk¨ÔF€‰‰:‡¨ªJEGwИpvü¬ËÛÔXYi­_o·wï=Ì^D\\È×w~X˜[VVŸq>W¯¾ìÅV5R\Lim¥w·¾2è½{&L8üÇääÄÂÃ=>ÜäèhI"Á+„? P} ò#J¢¾¾"àË—R€¸¸ ––œ‚Ö. IDAT‚äãÇGX±Â¦ººþÎNl Û† &«º¹]mllé²~1b„vLŒ§‹Ë¨mÛÂæÌ9™“SÙÛA(EE€ŠJw­on¦' ¾ÏÝ=ÄÜ\#1qGpðR.«Þ!®1põuðàSˆ•”$ÅÅ…XºˆÕ[ZhÅÅLq¹   aoo×åÖ€;~|aiiÍþý÷»f¿ ‘vì˜þï¿kÊË©S¦=þ öéyŠŠªEE¤¤Døn™Fcܸñfüxß¿þ ·²ÒŽõöõ¯¦&Ã÷‚ 0°õU©²²Û gÐ …¯_ÿÓ×ÜÜJ991^¢õ®Y3þëײ§O¿vÙ Y_ßù/>ˆHî²þ2j”Nl¬×²eÖûöÝ›4ÉïÕ«ìÞö2°(*¢()ñ¿ñ›nkëëíji©ùìÙ¶'õð*È@càê+zíóçC°_¿þh­ššªQ©MÆið2ŸÖÀ@ÑÚZ/00þW<±·7]³fÜúõ×ÒÒzy –‰iË–©/_î44Tš3礫kpAAWûB ] ¨¨š¿ÃïÞåNŸþÏ’%Á66ƒ>|øëØ1§îˆ ´aàꫤ¤°’’äÿ§8)0{ƒV$ÊËK$%åWWw¼üfõê± _Q·nfjª¶jÕ%l×>‚‚‚„¿ÿ¢°0·ÂÂê±c}üür_¶ð…¢" ¿ôµ°°zÕªKöö'$%…cc½öí›--Íÿng„-W_ƒ+aSœ R¬®n(/§ˆD¼¡¡rk+ ‡Cbc;nÂŽ3HWWþܹ„_ñ„@Àº66¶xx„ôµ¹»#Gê<|¸iýz»S§âììÇÆ¦÷¶G~Nq1å×7À Ñ±&NN.8}ÚåÊ•?ôôøâÂ#Z_ŒT““ Áÿ§3»ˆMLÔ>}*±²ÒæE_ñð˜öî'ÜÊɉ-‹K?}:îWìt$aýz»„„­FFª®®A³gŸxû6··‚ôOètFIIªªô¯IO/™6íØáÃ׬—°mæLÓÞ µÈ h}56VÍËûV[û]ZZ„LcN!¶°Ðøô©xìX½¸¸/¼,o5Ëììw\ÉÀ' ¤H ½A@ºŠåÄÞ¢bÅ^Q8ÀŽ`EÅSOÑÃÞ@¤xì"]QzzIÛßë/!@H! óýäÍìÌ›·›—};톆l`à3õ±´Ôسg–¿ÿƒ×¯ÙŸ0Å;TTd—¼zµCAArîÜ3s朎Ïç·RßÊÊ2™Êvÿpk+ÉÇ'rÊ”¿$%E^½Úáî>`‚ð‹Aí_ÍÍÕIO/àéSˆ--5Édª¢¢tcc+ 5»y³Ã½{IœOZ³fœ££ÅæÍÁõŠâ:: çÏ/úÔ[IIÊÑñÌ‚ÿ }ìW(-­°×~ÍÍý1kÖßÁÁïwì˜qçÎ ¸ðÂOµ•—¢¬,šZ ~B¬¢"£¤$U^^g` ôèQ+¢œœ¬ðxésçžs®•¿¿³¬¬Äš5WÙŽ ÕáÏŸ_~óæÚÚÚæiÓNxxܦ¿@ œPRR+$$ //ÙÛ‚gΘqR\\øéSï'àpƒúáé v47Wÿ¿Uúö­‚>·ÈÒR3)©pÖ,óèè­ç G‚‚¸'ܹ“Àyü^qqásç–ee•=ú/‡¢xƒƒÑãÇžýµ05µx„cË—_‚‹e!RZJTV–Æb{1\J&S·m [µêÊ–-ïßwãËÆ;Hg UG§8à››ÛKJjÑtKKͤ¤‚Ù³ÍühLJbi.ÏÂ…6²²çÎqav’‘ÞßßùŸ^DG§p.§`±gg«/¶GFn89upOìÏoH¦´”Ø«Îa"±ÙÕõRDħÀÀ%›69ÀyLþô¯jååu•• J †ÞÉie¥Q[Û, €30PŠMcE”ÀÆ¿¯¬äÂÐ)`½aÃnn!¥Ehc£}ýúꘘ­ÚÚò·Ç?zõê›~µœ2 ()©e}qÎ÷ïu³gŸÎÍý³uî\ ž*ô–Áî_MMÕ±XLzz‰¸¸°šÚЬ¬òÿ§« $%Μi›ÆâšÔ%KFIK‹_¸ðŠ+ºíÚ5s£uë®ÿ>`öŒ³°Ð¸xÑõÍ›ãÇ=ú¯¥¥ß¶ma|ß 2€ÈÍ­ÔÑ‘g%gVVùôé'„…bcÝŒ”y­Ò[»•”ÑÔ”C‡` ”èSœ„„†Wùô©pÆ ³ŠŠúää"V¤ ¬];îúõw55Mœë†Åb—ÈÉ Y¾üRK ÿ7Øa--ùC‡æ¥§8qbaQQͤIÇÇ;réÒëææv~«é×´´ÊËëµµ{@MI)vr TS“½wo“¼ü>Ð é-ƒÝ¿ÌÌÔÒÒ~F™ /ÿŸâdhˆ×ÓSd±‹°|ùhQQ¡‹¹Ó„¾~}ueeý–-!¬L³êW Ìšeº!&ÆÝÜ\ýС›~~÷32Jù­¤ŸRXX Hí×ÂÂêåË/êê*†„¬•’ëÝ Þý+°²ÒJJ*¤Ñ}}ż¼ôÙ,-5¿~-ojjŸ1Ã,&&•Å.b11¡5kÆ]½ú¶¾¾…+ꩪÊ\¹²òéÓ/'O>æŠÀ¾ÇÒRãï¿%'ûmÝ:éÍ›œ)Sþ?þè™3OÑm>!:yy?p8l÷Á÷ühtq RW—½sg½¤¤hŸéôè_••fCCkNN¥¡!žD¢äæVÒÓ©TZjjñÌ™f߿סӌYÁÕu4®]{Ç= µæŸ8ñäþ}ö÷rç;22âk׎{öÌ;.ÎküxtƒëyóoÝúØÐÐÊoí ý‚¼¼ªª2BB]F\ª«k™?ÿœ˜˜ð­[ëÅÄ„úR7¤× ƒ2™ª«»=$ä‰DQW÷¼w/‰~ÊÂÂïäÉÇ‚ØÛ>p šu™ÇŽý;lØîúúV.êyà@´––wJJeò2™*,¬%#3]Ii³ˆˆ¿ÿƒÀo[ø-[B- êê,…B?ÿœ©©OAA׫ å÷O鄆†²mT02'Àš™©%%.Zd§««ðåË÷yó,ÑSÖÖšŸ>¦O7½?y÷î™,®®Û¸qBpð‡ÀÀ§»vÍä–ž;wÎøòåûºu×££·(*JqK,¿À¶·lÜ8×ÜÜZHh —-ò'Nð[…_Èή°±Ñîêl@ÀÄ„üû÷·ðn÷Ö°°0I† DæÏŸÏIqè_ÀÒRƒhd¤œ•õ1ýäÉ'‚̘azæÌÓŒŒRSS5VŠ‹ »¹M<|8vÅ {<^š+JâpØ  åÓ§ŸX´è|däII®ˆå/vvvZ0„ÂÃÃù­Â´µ‘¿|ù¾nÝx¦gccÓΜyvöì33–þƒìA x'2Ø€ã¯`e¥™›û£®®…¾#,Š¥¥f]]K~~•©©š¦¦Üƒé¬Ë\¾|´¢¢äßÇqQOII‘ððõõ­..ÿ ¬;Hdf–’ÉÔ#4:Ÿ*.®ñö›7Ï‘€  KKM@JJñ°aÊ•• ÕÕ?W¯®*,,”T˜>Ý´WÑ qîî“oߎ/,¬æ¢ªx¼tpðÚ¼¼ª nЧ:C ¿))Årr7½AÄÓóŽ¢¢ä‘#Î|Q aè_`èPq ÙOŸ ‡ SлˆqÇ«¡þuÆ ³¢¢š^…"rv¶ÒÖ–?vì!wµ54Ä_¹²òÕ«o»vÝå®d„¤¦3íû½xñuBBÁ?ÿ,î{­ ¶þõ'VVšII… Cää$»ˆ­¬4Ð)NææjjjC{ÕEŒÃa·oŸ•Âõˆ £Féž>½èÖ­§N=á®d„_¤¤››«wHÌϯ:rä»ûd2à€þõ'––š©©ET*­ó§ì슆†6 3mÚðX ä„2uêp ^ì47{öŸÙnßþÈuáHC$6Õ˜›ÿ2øŠ ȶmaZZò›7;ðK1„m ýÉÈ‘: m_¾|76Vþü™±ýªI£!))Egg뜜J4X1ëìÞ=óùó¬wïr¹¬1ëÖ_»vܶmá,n?à TQQ¡ÑþfFDCCãÌ™3=–ÍÍÍíf1ӳݹs熩©©,\Jw455yyyiii‰ŠŠêééùúú¶µ º}‡ÐQsó_ú‡ïÞMJHÈ?wn©  Ž?j @Ø0'ºåc0˜ÜÜîžT=f`ßõ/ýëOôôee%âã󌔳³+èÛ—**J©ªÊ ~¥ˆˆO½’lg§3~¼ááÃ1k{ÅÞ½³çͳܸñ&Ú‰ý›A ***Þ¿OOINN.))qvîyž‹´´ôöíÛ¹¨Ìœ9sÊËËËËËQ}Êÿ±±1‡’ÝÜÜ’““ïÝ»W\\|ùò娨(ooo@~~¾œ¯zö7ž?Ï>\UVV‚žÒÐÐvð`Ì’%# ”ø¨Ø€c@˜SeºÒy ýëO0Œ••f||¾±± ™LÍÍýA?ei©I÷^s挸?¹·w÷왕–V÷™‹ £`0˜cÇæ›™©­^}•»•ûŠŠŠŒKþ#""ÆŽ‹Çã{,+''wäÈ.*#**ª¤¤¤¤¤$//Pú?‚‚‚J¾ÿ¾¿¿¿………¼¼üرcOŸ>  Ñh555\P} ðüyÖøñŒ)§N=¦RiÛ·Oç—J”aN”éJçô¯ÿak«óñcž®®‚  ŽqÖÊJ39¹ݾÆÑѲ¦¦ùÍ›ì^I6LyæL³#Gþ¥R¹¿¢FXXàúõÕŠŠRóçŸûý"滸¸Ü½{—JýÙ±`Áô866vĈbbbx<u¥h7׳gÏÔÕÕ¯]»Fïìíœ%$$DGGG^^~Æ --¿ìÇ@&“½½½¼½½ÉdrWnÙ²eÕªUèqSS“˜˜XJJ ªITT”‚‚–-[ÚÛÛ»+))yîÜ9úãfìØ±EEE;;;€’ÒÏÖ[]]«««œœœªªª——W[[ãõ¾}û–uû……Õ%%µcÆüç_¿~-¿téõöíÓûÕö8ÑÑÑ***D"pûöm}}ýææfÀìgeüi^¾|éëë«®®.//¿lÙ²ººŸÛ93ý½bbbLMMEDD´µµoÞ¼  P(L‹3g0³bNT*5 @__È!£GŽï|± &$$ÄÈÈhèСǎc%S³gªgÛîJgеÙwÈö ç-܉Ýù[œ\„Ç»çæVN˜p”1ÚpJJïþõk9úuæÌS›7÷Vxvv…ªêŸ‘‘Ÿ¸¦î¯Ô×·N›vÂÒÒ¯¨¨šGUpÀBlO"‘(,,üêÕ+A²²²°XlEE‚ BBB+W®,-- üøñ#''0mÚ´çÏŸ£Ã¢Ýçœ0aBvvöÇuuuwìØ&¢õ=zÔÉÉ©¸¸8==ÝÂÂbÇŽt•³!òêÕ+YYY2™Œ Hpp°±±1FCóLž<™.ßÏϯ+±?VQQž4iR@@@aa!ÓŠ/^ìàà———žžnbbâççÇx½MMMÝèÜ¡?Ä>}:ÎÌ̇J¥ÑS„sÓ¦`Lá5hüá³-[¶lùò劊Šñññhbç;ÏøÓøùù§§§gddØÚÚzyyuUª©©IXX8((¨¼¼üòåËMMML‹×ÕÕ]¼x±ó1+ætâÄ …ˆˆˆïß¿?xð@YY=ÈÉÉAóœ‰DâÅ‹555=f`jöŒõÒ;ØvW:#]›=S½½á=þܬ<£º+ÎvÉß4ÐpðûÍ›ƒ]\þ 2N"Q´´¼oÝú€~½r嵎榦¶ÞÊߺ5ÄÎî@[™kÿJ}}ËäÉÇ­¬ö•”Ôò¨ î¢í:::nÚ´ AC‡M˜0MlooÏÊÊjjj¢R©¯^½Bÿöè,==aøãõ˜AÐÐP---Æÿ­¡¡ayùÏ7ª¸¸8sssº>  EIIéÙ³g‚LŸ>ýÈ‘#ô<Œòuuu»K¡P>~ü¸ÿ~Ò¡"‰„Ãá233ѯºººjéFç®è'þuÊ”¿¶m £ý÷ßtee¤¤‚¾ÔEÿJ$UUUMMMÑ&”Îwžñ§100ˆˆˆ@Ï~ùò…~ܹTmm­  àñãljD"Fkll¤R©]ï†ÍI__ÿÚµkôüׯ_gê__¼x ‰D¢§wŸ©Ù³â_»Ò¹³g*°·7¼Ç; ý+7!ι¹Ÿ=ûÌÜ|/cº³sàÖ­!èquu£ººgDD¯[¢?~4èëïøë¯GÜÑ•ÕÕãÇ5êPEEïjá,ÚnXX˜¢¢"…B±´´<þ<==**ÊÞÞÞÜÜ|ÅŠŒo‰„üúî*gkëÏ ŽÒÒÒDDD‹ˆˆüÞYJJŠ^oçGÃÆ7mÚTUU%$$TRRBÏÓA>S±MMM·oߦP(hNæã㣢¢Ò¡¢’’Fééét…Ñëí^ç®èþµ¤¤VYÙãùó,ôk{;yäȃë×_ïc5Xô¯‚ìß¿‡ÃUVVÒS:ßyÆŸFDD$##£³¦¿×Û·oÅÅÅÇŒóï¿ÿvSœ),𓍍hjj*½TJJ SÿúíÛ7ú1SÿÚ!C«ìììÎþµ»1{¦Ù¸áÝá…㯿`k«…NqbŒ’°±ÑNH(@ee%FÒec+Vyù!nnŸñn”TVV"<|“€ÖÙùÜ<ª¥™1cFsssHHHZZš££#šØÚÚ:þ|ooïäääsçÎ1æï0ᨛœè­¡ñËÊK999ús„H$~üØÝ"cfoo¯ªªÊT>Ú×Y,‚ ‹-ÊÈø¹Â ƒÁL™2…B¡t¨BQQ‡Ãåçç£_óòòTTT:\o¯tî?„†ÆËËKØÛë¡_ŸÕÖ6íßïÈ_­º¢¤¤$00pâĉžžžôÄ®î<úÓ(++¢)©©©‡êªTkk+F ¯­­]µjÕ¬Y³jkk»*ÎÍISS3-í¿¥üŸ?3Ÿz‰Åöà ˜fèlöT‡²2&ñïºÑ¹³g*°·7¼û«ãè_ÁÚZ«¤¤]$À8ÅÉÚZ«°°º²²ýºp¡í‹Y•• ½•¿nÝx<^Úß?–[ wFNNâÎõ ÕÅ%ˆHlæ]E}†˜˜ØÜ¹sÝÝÝ'L˜€ÎÝ´··“H$!!¡ÖÖV___@c#ó÷‰nrzzzæææ&&&îÚµËÕÕ•±Ô¼yóvîÜYTT”žž>uêÔ³gÏv£á˜1c(Êþýû—.]ʘ¾uëVºü%K–0+!!±lÙ² }ƒ¦wç—.]º{÷îÌÌÌÌÌÌÍ›7Ógît.…Á`&Ož|ïÞ½††‰$(((&&ÖUñúúúK—.u8fќ֯_ïííUQQñèÑ£½{÷rñ.u0{iiiÀ7NŸ>͘U¦™š}7{{ùxÕÌa»åû[ÒÔÔ¦®îùÉÔÔçŸ^ÐÓZUUÿŒŽNA¿¶µ‘ w=ûŒ*б¥ó¸¢pW”–ÖÚØìŸ81 ®®™§q`¹ïåßÿ\ºt‰1ñĉC‡USS;w‹‹‚‚Ó™nrÞ¹sGSSSAAÁÓÓ³½½±HCCÊ+ddddee×®]ÛÜüßmìÜ?Œ ÈúõëEEEó\ºtICCCNNÎÍÍ íãb*–B¡øùù™ššŠŠŠjjjnß¾ÍL&“ííí%$$P™µµµK—.•••Åãñ­­­4éFç®à{ÿðÓ§_”•=è“òÖ¬¹jo˜D¢ô½&¬ôŸ9sÆÌÌ í„ŒŒŒÄãñµµµ³;ÏøÓ´µµyyy)++KII¹¸¸‰D4é画£#$$dhhÕMñ®¬s¢P(ºººâââ#GŽD[rH§îßÎÇÝgèÊì<(--­££…VÔÁ¶»ÒaföL²}û‡õgS0‚ hÏhiÉÿ^§¨(ù÷ß‹èéS¦üek«Mï¶Ú¹óî‡y/_²ÁÀÅ%¨¦¦éÑ#O,–‡›ŠçäT:9êë+ݼ¹FTTˆw± ƒ ý=öݽ{waaaHHú577WOO¯ÿÿ¹Ð›ÏÇMÅ—.½ÐÖFßxõꛋKÐ;ëÇŽ5è± × [°`AÿÿÉú3ÅìY‡Ãgì½Þû÷¹Ã†á£üƒ_‡`óçÛdgW¤¤ô.V"ʾ}s¿~- KàT×nÑÓS ݘ›[¹hÑùÆÆß!ØXÿ¤­­-??ÿÊ•+kÖ¬á·.ŒŒŒÒgϲ6mrÉT_ßû“'›ðŹB ¼ú׎Œ¥W\\£¨(Å%`m­õùsYSS;úuÄu##<{>R__iéÒQ‡Ç64ðÖíácc=~ühœ5ëoúà1„»ÄÇÇ[YY­\¹rüøñôDIIÉuëÖñO©Á¹sÏUÆ7„„|,(¨Ú»w6¿•‚°4û@ÿÚ++MQQ¡ææöQmmµ¨TZrr!=ÅÉÉ*2òS[;A@¶m›F¥"§OÇq®p÷¨ªÊDFºápØ9sÎõ—èh¿ãÆ«­­í0«SAA!((ˆ_* JJjÿý7}õê±€²2¢¿ìºuãµµåù­„} Ùwú׎ ⬬4óòª:DITT”ÒÐMLü¯‹˜@°ni!=~œÉF-RRbžžS.^|•Ÿ_Å¥»EAaHDÄ&yy gç³yy?z.ðžÃ‡cutœ­Ùºõ–ªªŒ·÷4~+pè_™0z´Þû÷9ººŠ†`mmµããÿó¯òòCƌѿw/‰½Z–/­««°_„±–’»sgƒ¶¶¼£ã™ÏŸ™,Aƒ@ú’´´’èèÔ;gàpØë×ß'&œ>½nBùÍ€þ• £GëVV6¨© íà_­­µ’“ e,°}ùòkE;C›8vß>Ç'O2_¼øÊ©Æ, ..|óæ++-'§³II=€@x†¿ÿKKÍI“ŒËʈGŽÄ®Y3ÎØX…ßJA \úW&˜™©"‚Ãa¾|ù¥©gc£ÝÒBblÿMŸn*++ò½ŠìíõŒŒáž:8~ùøñ ½zõ­j„@:sÿ~ò›7Ù>>³Èdêúõ7ðxi/¯©üV á>п2A@kc£E$¶üøÑÈ%QWWANN‚q•Ž€ÖÙÙúÖ­x¶ä¾}Žyy?®]{˩Ҭ!(ˆ \:uêð•+¯<|˜Ñ7•B tjjšvïŽpumm­µtvvÅÕ««DD8ÝCé‡@ÿÊœ‘#u³³+À¯Q1Œ••VBB>cÎ%KFVTÔ?žÅ^EÚÚò“~P\ÜG“{°§O/vt´X³æê… ¯ú¦RåèÑ…„pÛ·Oò$óÊ•7û÷;jjÊñ[)„7°ùé÷æË—ïx¼»±ñžÀÀ§ŒéçÎ=>|ö˶”ÎÎË–]d».‰2v¬ÿâÅç{ÎÊU.^|¥¢âááq›/áèß(ÈË€¦/ã#ÆÅ}VVöˆ‰IÍÈ(ÕÕÝîåÅ~ä9®ƒÆG䌀€œ˜˜‰”Ô$yùe‚‚ Üùy ü†“øˆüV¾Ÿbh¨¤¨(5dˆHFFÇ!Ø¢ ªê-^<ÒÍ-¤¬Œ¨¢"ÃF]‚‚¸£G NNg=ʘ:u8§ª³ÌêÕc••¥ÝÜBÊËë.\p2D¤ç2\…aù t7üá)eeD7·E‹ìLLTfÎ<5fŒþÑ£„¾©šFŽÙ[ƒln¦4747¶µQEE´´†hhHØØL:T˜GªBú;;;¶ËÂøÃ]âî~ëÇ<Ü»w»è‰d2ÕÐpסCó.´eL´°ð[±ÂþÏ?§°]›[ȇ¹/_îèÓ¿å‡y«V]ÑÕU¼re¥œœD_V vrÚÚò{nÞ<}úÉãÇ89Yõeíßžû÷“Ož|²wïì]»î¶´bb¶ögçÚÐПŸž^’P–VÜÐÐ&**de¥9k–™©©š™™º‚BÜ›Òí×î˜<ùxnî]»f¢QRQ^¾üºxñ…´´ýzS „³¢¢B7n°¿‰ ‚ NNgëë[=ú³ïcÙP(4_ßûׯ¿Ý±cÆæÍ}\;äwåýû\— Å‹íÞ¾ÍÁb±aaû›¢ÑœœJzÇo^Þ ÑÓS´±Ñ²¶Ö25UÓÕU`»_ 2˜í×î7Î0?¿*3³”1ÑÒR‹Å$$äOŸnʘîêj¿nÝõ¢¢ YöªÃ`0Ç/˜81àüù—}ïá°‡Í30Pòñ‰øü¹ìøñââp‚„#Êʈ›6Ý´´Ôx÷.—B¡Ý½»¡Ÿ8W"±9)©0!¡ !!ÿë×òÆÆ6ii1kk­Y³Ìll´ÍÌÔ‡„ ö€í×îxû6{þütu^¿Þɘ>yòñÑ£õ|}ç0&R(4[ÛŽŽ{öÌâ¤Ò3gžþõ×ã¸8/==ENä°MffÙêÕW±XÌ¥K+† ƒÃ±6©¬¬wt Äá°UU**2!!k•”ø6ý‡FC23K ÐÁÔ¢¢,cb¢jm­ejª ©^ýkwÉT}ý 5'ç(ã\GŸÈääÂ<:ä?yòÉ… ¯’“}EE…Ø®”B¡Í˜qR\\øÞ½M †m9œ@$6oØp3>>ïÐ!§E‹ØŸž´ Îµ¹™T]Ý8¾õÑ£!¡¾î-«®núð!õ©_¾|onn:TÜÒRíø6L¥çêC°¸;qææêññùYYå#F¨ÓÓ­­µnÜx×ÒBûÅ.^<òÔ©'ÑÑ© ذ]©€öäI—iÓNXºtûÚs€ŒŒøÍ›köïöò ÍÊ*ß»w6ÜÛÂ:õõ- ž¯®njnn÷òšêî>©oÞI$Jjjqzz):˜ZYÙ€þ…MMÕV¯kc£×Ï@úè_{`Ö,st!£µµÕ"“©ÉÉEöözŒ™†Ì˜avùòkNü+`Ø0eWWûÇL™2œ_ãU‚‚¸-,4¶oKHÈÿçŸepïk+ -ײ2¢¸¸ð•++§L1áiu%%µ?æ¡ R33ËZ[IòòCììt6mr05U51Qíð ô°¸ÊʈÖÖû'M2¾~}5cºÝÁ l<<&wÈŸ˜X0gÎéØXw Nêmi!Mœ §§Ø¡Þ¾§¬Œ¸aÃÍŒŒ’Ý»g1Σ†@:“šZìäØÚJqp0öàà>>‰‰¾œ‡ý,!!¶ÉÌLC­­¤¤¤BÆH„""‚ÖÖZ66Z¦¦j°‘ @ÿÚ3aa‰îî·nÞ\ãà0Œžøý{•Õ¾{÷6©Ó!?‰D±¶Þ¿xñÈmÛ¦qX5…B›5ë”  @däæþ°x ¾¾åСØàà³f™>ìÄ‹Þ?HæÌ™§..vŒ/Ž$åüù—ýõ˜D¢Ì˜a´Œ=CE#vò#B.пöL{;EKËÛÑÑòìÙ%ŒévvçÏ·fÓÿøñGW®¼IJòå|nEvvÅ”)mß>cýúñŠâÏžemÛF&S||fÖüVÂ+¨TZbb=8hHÈoï0WWûÇД¸¸Ï{÷Þ/-­ñós\µjL¯ä×Õµ$&0F"””µµÕF¤š›«ËË÷‹`{@ÿÊÆÆ»ÅÄ„÷2&zxÜ.+#†…m윿ººÉÚzßþýŽ\Y`sòä“ÀÀgqq^ýgoMMÓž=QQ)óæYîÝ;§Ÿåp‘¶6òúõ× RS÷ ÄÅ}^±â2†àpØ/¶ âˆþ÷ßt11!Á‹WtîÈé c´‘Š ˆ®.ŒDù=þ•%æÏ?÷î]î·oþŒS{ÂÂwìÿúõ0Ó…ó· ^¿Þ‰År:˃B¡MŸ~B@µ¥_Íãxü8ÓÏï~uu“›ÛĵkÇ ¸íÆ ]QW×ââ”™YF£!^^SGÒ%ÎR(‡•“R[Û$..\_ß:wîB7Ñkk›?}ú‰0+ë{SS»ŒŒ¸•ÕÏ FFÊ}¿ñ0Ò7@ÿÊçϿܷ/êÒ¥Œ1‡KJjmmDFºÙÚjw.òõk¹ƒCÀõë«'NÖùlo),¬ž2å¯E‹ì:eä; íÎøcÇþÅá°žžS]\laûc “Ÿ_E œ«ªj PhaaAÓÖF¦Ñþ{V˜˜¨äæþØ»wÎòå£:Ì&“©))E輤Αml´ÙÐ , e‰ÔÔâéÓOΞ="(hcº­í… m;¯‚E™?ÿ˜°° \Ñ!,,ÑÃãökŒ¸"‹ÔÔ4?þ($䃙™ÚŽ3GÖå·F6IJ*X¼øBs3™F£Ò1,‚Ðè_±X /}ãÆ»WU5~ü˜‡vü~þ\ÖÒB’••5Jõ©ÆÆ*p¯È úW– ‘(::Û%$„>>ÌØßëî~ëû÷ú®Ì`lñ««ËªªÊ¼ŸÛU)gg+YY‰óç_rK [[íM›&øøDfgWpK&/05U»zuU\œ—ŽŽÂ† 7F:tîÜs"±™ßzA:B¡ÐœœÎ^¸ð’õ"‚‚XK£!çÏ¿ª©iâ™jÈÀö³JBBþܹgÆS·n½UYÙpçÎú® þóÏ‹ãÇ%$øp+Ú†¸¸•”Ô>~ì9 Ö6TU5†…%\½ú¶ªªqêÔáK–Œ3FŸßJA ?¿ÊÑñLUU#‹ùåä$† S11Q14Äáõõ•`³é è_Y¥¹¹ÝÀ`§ŒŒøò壽¼¦ÒÓï܉߽;âë×Ã]=hZZHÖÖû]]G{{s.‘NUUãäÉÇmmµƒ‚–sK&8pàÀëׯ‚­¯—ª©ÚÖ&:th _ÎoÕ5jjä~üPD–úí¥¤D—,µ{÷L^+Æ_^½zuðàA~kéìÙ³gܸqœH€û¿²Š¸¸°––¼¤¤ÈÇéŒþÕÎN§µ•”–Vle¥Å´ ˜˜«ëè+WÞnØ0[;ÏÈË \ºpá?ׯ¿[¾|4WdòˆŒŒŒ¯_¿Ž90t(ÐÒªmhÂ`À!LF¬!}‘(ÜÒ"%,L£P04†FûéeéÓæ_¼pƒÁ¹*++Ÿ>}J ø­„Ï„‡‡¯Y³†C!пö•ÒRbVVy~~=T¡¦¦œŠŠÌ‡y]ùWÀêÕcÏŸü‹1„GÖuwŸäë{ÄuSSN·+á)#GŽ ã·îhhh-)©--%–”Ô–”Ô×§¤¤¶´´¶¾¾•êA 8¸˜™©}ÿ^7z´ÞÇŒé#Gê$&ÉÔ® Ö¬WUÕ™ÌE}°ÿü³´±±õÏ?ïÀqt/62ÂOšdììlÅo] ô¯½ÀÌL‹ÅhjÊ¥¤ýøñß”ËQ£t››ÛÓÓK»)«¡!ëèhqæÌS*•ÖM¶Þ¢¨(¼..îó‰O¸(@ ýk/2DD[[Aqq¡˜˜zº¦¦œ’’Ô‡]®‚EñôœZTT}÷nwµ21Q9vlþ‰¹´´öþ}nN$FQR’ºtiÅ£G™p®S†F£ÕÔÔп޿ßßßßÂÂB^^~ìØ±§OŸŽŽŽæ£z,òý{Ý?ÿ¼?þèØ±þ—.½æ·:^#//¯¤¤¤¤¤¤§§wìØ±ìì쪪ª>¨÷÷°þµw (¥¦Ïœiž’R\XXM?ÅÊ,@SSÎÑÑòĉÇ\o¬¬´Îž]ròäã›7ßs]8ŽVQQ!‰€Û·oëëë777Èd²···¢¢¢‚‚‚··7™LÎÍÍÅ`0Ïž=SWWùò¥¯¯¯ººº¼¼ü²eËêêêPiKbbbLMMEDD´µµoÞ¼  P(L‹£Ut>fƒÁ„„„ :ôرcôœQQQ [¶lioog*ÊÎΠ¤¤„¦KJJž;wŽþÄ;vlQQz\WWçêê*''§ªªêååÕÖÖÆT Û÷„ ˆÄæ7ÞÏœyÊÚzß¡C±èx?6¸úKœ¹öˆ   ”«[öZûï5¤—x{‡Î{šD¢í |JO¿zõ­Á‰Ò£„ìì ¨¨dixòäcuuÏ7o¾ñH~¯ ¡ÇlË–-[¾|yEE…¢¢b||<šxôèQ''§âââôôt ‹;väää¦M›öüùs???ccãôôôŒŒ [[[//¯®J555 •——_¾|Y@@ ©©) €iñººº‹/v>äääЉDâÅ‹555¨b“'OÎÎÎþøñ£®®®ŸŸšˆ¡3&"òøñcaaáI“&ÒO-^¼ØÁÁ!///==ÝÄĤ{½½'=þ"€ÐÐPô¸ººñâÅWÓ§ŸPVöPUýSYÙÿïóÇG{”6P eå©8°Ìµs 55µ±±±±±±¬¬lãÆ+V¬`š³«âƒÊþÙú×^ü^[{™Lõð¸=yòqzzNN%ïþñc+BÖ­»6v¬?…Bå…†4ÍÍ-X_GVÖw^Èï,úW"‘¨ªªjjjêççGO444,//GãââÌÍÍÑÿRzz:‚ èÙ/_¾Ð;—ª­­<~ü8‘H¤ÑhT*µ«â]ÑáùòâÅ AH$šÎ¨‚ ¡¡¡ººº¬<_¡P(?~Ü¿¿‰‰ ‡ A%ãp¸ÌÌL4ODDD÷{{Oº¿Xôoܸ–°xñy55OUÕ?UT<Ýê`ö¯Ë\;§theIHH|ùò¥›²‹ûçÜ¿Âøˆ½ÆÜ\½µ•”›[9{¶ù;ñUZZò]]eeé·o³mmµ{²}ûôqãŽÜ¹¿xñH®kˆÁ`þúká÷ïA®®—ccÝå丳/O‘––^»ví¾}ûâââ艅……x<žþ•Þehh(**ÒÓÓCSŒŒŒŒŒŒº*%##óâÅ‹S§NùúúZXXìܹsÚ´i]geee€   c"] ¡¡aié/“Ýf“Gš››cbb‚­­­­­íž={|}}·mÛ¶hÑ¢ÊÊJ*•ª££ƒæÔÕÕí^`oïI7—† HRR¡””ƒÏ')‡Ãt¥®®eÁ‚ºÉ0€¨¬¬ÄbÅzÌ6 Ì•ÑB:›_NNŽ®®. ¥¥eïÞ½+W®üðáC2éüÆöÏEàøk¯10À‹ˆ¦¥•Œ­'--öàA:ýÔ˜1ú¯_g³"DKK~þ|›ãÇ·¶’x¡$:˜B¡nØp½ÇUCý’’’ÀÀÀ‰'zzzÒåääè¯ÌD"ñãÇh:ú¯VVV.,,DSRSS:ÔU©ÖÖV^[[»jÕªY³fÕÖÖvUœE°X&ÿôU>€ PVVÖ9?‚ ‹-ÊÈønƒÁL™2ͯ¨¨ˆÃáòóóÑSyyy***Ýìí=éæÒ¨T¤¥…–ű< #--ö{|ÄÄèy8¹ÿ›«ºº:ãrš¬¬,55&ˆ‰‰¹ºº~þü™© ìŠßØþ¹ ‡íßÁÉÌ™§vî Gd×®»cÇúÓÓïÞMTSû³¡¡•!uZZÞÿüó‚GJ"’–V¬£³mÆ4wµt+ýÃT*uâĉ¨­­URRŠŽŽFÓ·lÙâìì\XX˜––fkk»yófÆ"___SSÓŒŒŒŒŒŒÑ£G¯Y³¦«R­­­"""wïÞ­ªªºpႈˆHkkkWÅYípŒ*öÇäää$$$èééíÝ»yùòåúúzGGGÀÐÕØØˆ_¾|¹¾¾~lll^^Þ»wïìììÜÝÝÑS‹-rppÈÏÏÏÈÈ066î^`oïI?àÎÐøø¼Ý»ïéëïPVvWUýö#Ä\÷îÝ«££“ŸŸÿôéÓ#F¬\¹’~ à×`tJQCCý,}õ 2(펿ò‡={"¦M; HRR!ïž–VŒ¦ÿøÑ ¬ìñäI&‹rüüî¶›EÌïÞåhhxmÛÆ»*º‡ÿzæÌ333‰„ Hdd$¯­­E¤¡¡aÅŠ222²²²k×®mnnfü/µµµyyy)++KII¹¸¸‰D4½s)ABCCutt„„„ £¢¢º)ÎtŒaíùréÒ% 99977·ÖÖVA<(--­££…Š"“Éöööhq …âççgjj***ª©©¹}ûv´ ‚ µµµK—.•••Åãñ] dûžtãó¥½üäIæÆ755½”•=”•=³æJ&“;f``€NBÞ½{7ãÞÁ¿R©TIIÉ‚‚úÙÎͰÁlÿlý+;ܽ›¨®îÙÞNFÄÞþ°Ïs þøãèÞ½‘,Ê©©iÒ×ßð'ZþŸ‡ÓUUÿ_jk›®_7{ößÊÊjjž¨£lþÒ™Abÿ½Ž¿²ƒ¹¹:™LÍÊ*8:ZÜ¿ŸL_Ì:fŒþ›7, Á†_»vüùó/«ª{ÎÍ.S§?xpž¿ÿƒÐÐÞÕ ÈȈ/[6**jKbâÞ;gèé)°X.ìD ü~@ÿÊÚÚò’’¢©©ÅÁº¦¦ùõëoè){{½oß**+Xµ~ýxQQÁÀÀg¼ÒÀòå£×®·}{ø»wÜ HJJ®[·ŽßZôÊÊÒ6üñòåŽ×¯w®^=–ßê@øÌ`³þ•0Œ©©*ê_ÕÔ†ZYiÒw9RW@ûî]‹¢ÄŅׯÿãæÍ÷ååu¼RÀÞ½³gÍ2_µêrZZ O+œ(((ñ[ > ««°p¡-¿µ€ð™AkÿÝý+›˜™©Ó•““Õ£GèÆ5Âææê¬wÖ¬‡ÇK<ÃEÿƒùûïEÃæÏ?‡¾@ „w@ÿÊ&ææj99•ÍÍí€9sÌi4äáß aÇŽÕõêë¢q»wϼ?%)©€'ºþ,súôâñã . êq«pô¯lbn®N¥Ò23ËRRbF÷îýÜÕÕÞ^¿¢¢>?¿›QLŸnjk«½o_4Âã-¢p8l`àkkÍE‹Îû7c‡@ ^ý+›¨¨ÈÈË¡w´::Z~ø[YY°´Ô2D„Å@NtöïwLI)zø0ƒûºþŠ  îâÅúúŠóçŸËÍýÁëê dpý+û˜™©Ñýë¤IÆC†ˆ MX¬­­öÛ·½ó¯&&*NNVD“Hîëú+""‚W®¬TP\¶ìâ÷ï¼W@ ƒè_Ù‡qŠ“°°ÀüùÖ7n¼G;xííõß¾Íé>*zgvîœQUÕxýú;îëÚ ))±ÐÐ ââÂóæ–”ÔöA2¨€ûç°¹¹ú‰‰Äfq€‹‹Ý… ¯>|È5JwÌ}?¿û¥ææê¬ TR’Z¿þ'ž8;[¡2yÊСâ÷îm^²äÂÌ™§ÂÂ6(ñ¨¢×¯_Oš4‰GÂ!®Í ess5AÒÓKÇ3(YXhܾ?j”®¡¡’¢¢ä›7Ù½ò¯€uëÆß¼ùþäÉ'û÷;òFë_”¹sg½«ë%álhèF##|Ïez‰×eBúÀt»•ß555Ào- ü‡+öáõ„ÕßkëýK–ŒÜºõçÛnHȇ={"RS÷II‰mÞüãGcX؆Þʼ~ýOÄ£GžÃ†)s[_æ´¶’\]/ùò=4tCŸU @ ¿7pü•#ÌÍÕÃ!Ík!(ˆ‹ŒLŒ£Ÿ˜˜ßÖFî­Ì¥KG™™©yzÞ¡ÑúèÕGTTèÊ••úúŠ..AhPepô¯an®Æ I\\xÆ ³Û·?Æ3ho§$&ö:d‹9|Ø93³,<<‘›ºv‹¸¸ppðZ]]…yóòû¬^ù]þ•#ÌÌÔ+*êÑe¯(‹Ùed”ff–))Iéè(ô*P"áÃU—,yèPLCC+÷”íQQ¡;w6L˜`H œ‹ŽNí³z!ä·úWŽ05UÅ`0))ÿ5a­­µôõ•Ð&ìØ±½Ø«®;vLGpìØCî(Ê‚‚¸ÀÀ%k֌۴éæïû²jùÍ€þ•#$%Eõõ;t¨.X`sï^Rk+ÉÞ^?#£´¶¶™ ÉRRb;wθ~ýÝ—/ß¹¤,K`0˜={fùúÎÙµëî¡C±}Y5üN@ÿÊ)––šIIEŒ)óæY¶¶’?Î=ZƒÁ|øÀæ–« Úš›«ïÜy·ïçx¯^=öèQBPЋݻïÑ·Ž‡@ ë@ÿÊ)VVšéé%ŒA %gÌ0»|ùµ¤¤¨©©êÛ·¬îÛ,³oßÜOŸ cbø0ºxñÈ  e·n}\ºôºõ@XúWN±´Ô$‘(èF:t\]GúT”–V2z´Ûþ`a¡A XïÝY_ß±¦½fÆ ³õno§88‹ŠJá£&ÒÏÁùùùñ[‡Àƒi‚‚¸ñã í"¶ IDATÓ‡ÏÏϯÂ`08ÝÆŽm†W}û6;::uÑ";Žo/FC‡Š;9YÕ?þ¨¹¹ÍÖVG@Ç/e ¤ßÛ¯ÜÁÒR³ó'€«ëè/¾ZZj>žÅaX,Æßß97·òÊ•7ŠâqqáÓ§Ÿ8±08øƒƒCÀ‡yüÕ@ú!пrKKÍôôÒööŽƒ¬“&+( im%ûVÁÉ*CCüöíÓýýô‡]ä,°y÷n·¥¥†“Sàºu×Ù  @ ¿+пrkk-2™š‘ÑqpTPçêjÿæM¶¨¨ÐË—Í"FY¿þ -[BúÃ$^yù!§O/¾xÑ5!!Ò¤ãqqŸù­ô åZZrC‡ŠwDŒ²b…=…BUU•Ἃ€ÅbNr)*ª>}:Žsi\aÆ ³W¯vLœ8ÌÕõ2p–qÃy´@ÿʺŠ2”]°À¦ººñÍ›l®4:ÕÕewíšõ÷ßqŒûâñIIÑ£G wïnjllŸ>ýä† 7ŠŠjø­ðè_¹†¥¥fç%:(k׎khhmjjï*CoY¾|Ô˜1ú[·†´µ‘¹"+Œ©óð¡ÇÙ³KRRŠÇŽõß»7ÊB A ô¯\ÃÒR³²²¾´”É$&uuÙ)S† p¥‹€Á`þúkaUUS@@ŸnÀÞ# fî\‹7ovîÙ3ëÞ½OvvŠ­ªjä·^Ò×@ÿÊ5,,4°L»ˆëÖ'‘(¤q«:%%©={f^¸ðêÓ'&ƒ¾üEP·f͸øxw÷Éáá ¶¶vïŽà|ú4 0}¿w÷o̤IÇíìtpdzvìXÿÜܪäd_%%)®T‡ ÈâÅŠ‹k?öæŠÌî¹páBo‹P(HrrÝû÷5”‘#‡Nœ¨À Å ýmmí‰'ò[‹ÿ`Ãb!¶Y»ví/ß÷ر#|Ú´] OÄãÝÏœyÊÅ«ªÍÌ|Ö®½ÆE™ÝÀáaEE‡‰Šqf½þ@èSd~ßÈࢃùÁþanbi©ùùsYk+‰éYGG ÁÛ·ã¹X£œœÄ©S‹bcÓúlç¸ÐÐP¶tÔ––Ï--_8bBú-¡oŒ°W°k±H/ íl{пr++M2™š‘QÊô,‡3F¿  šHláb¥ãÇ®[7n÷î{99•\ @ N€þ•›hhÈÊÉIt³ÇÝ}2ÈÑ£¸[ïÎ3 ñëÖ]ïWËu d0ý+7Á`0]®‚Œ¡.%%–ÈÝÒqKÊʈÆpQ,@ØúW.ce¥™”TÐM†©S‡“H”›7?p·^MM¹€€W¯¾}ü8“»’!ÂпrKKÍêê¦ââ.£N:AÀٳϸޗ;{¶ùìÙæÞÞ¡?~ÀxÂg å2ææjØnb>Œ£/ €khhåîDb”cÇæKI‰­_B¡q]8@XúW.#**dd¤Üͬ˜˜­­–ªêгgŸq}¹!CDnÜXýåK™¯o$w%ÿ6¤¤¤„‡‡ÓS¢¢¢„„„222 FOOùuÝä´iÓ0Lnn.š=`à Þ_ ¸sçÓªSSSû vN(/¯£Rá+ «0µ:NÈÍÍ¥›(S¢g`ÌÙ•nÐø»úWîce¥Õýìøñ†ÕÕMUUwï&r½v--ù3g–\»ö®ÏVÄ,FŒ±k×®-[¶ÔÕÕêëë7nÜèëë;|øp4CaaaZÚa,‰Dâëׯ{ûþýûò_á‘þùùùrrrèñœ9sк޿ WmllÌ‹ê8§¾¾åöíNN66H$ ·ÄB8¤³õJKKoß¾íâ<ÒsÀ¿·Tб²Ò¼yó]ss{W1 'L0:x0fâDã3gž6\~Ë™4Éxóf‡;‡ S>\•»ÂöìÙ¹}ûöóçÏïØ±ÇoÛ¶~vâĉáááæææè×èèèqãÆ=|ØÃ> òòòJJJ ­«(%%%) ÙÒÒÚ˜žôflß>}Ô(ÝU«®‰}ºC\tt´ŠŠ ‘Hܾ}[__¿¹¹@&“½½½¼½½Éd2ÚïôìÙ3uuõ—/_úúúª««ËËË/[¶ mY2-ˆ‰‰155ÑÖÖ¾yó&€B¡0-ÎØµÅx,$$tíÚµ+W®øûû_½zõÚµk‚‚‚ôK aaatp÷î]gggöîF]]«««œœœªªª——W[[ãU¿}ûƒÁ\¹rÅÈÈH^^þÈ‘#7oÞÔÒÒ’’’òññA%ÄÆÆŽ1BLL Ç£Ï;;;;ÀÂÓ¤sAƪ߼y4lØ0IIÉ &ÄÆÆ¢7§ó g±:¦´´Â×,¹ ¯¿sÆ›/_~¥P¨4Ò¯œë€°X¦t¶®®Äv6†aZ;Ó«c]½Aeü?ákH©ßKK¿“'w“açÎðI“Ö¬¹êàpŒ†>r¸ ‘Ølk{`éÒ T*×ä¢Í-[¶lùò劊ŠñññhâÑ£GœœŠ‹‹ÓÓÓ-,,vìØ‘““˜6mÚóçÏýüüŒÓÓÓ322lmm½¼¼º*ÕÔÔ$,,T^^~ùòe¦¦¦€€¦Åëêê.^¼ØùeÇŽ€ƒv¸À¯_¿*))¥¤¤ ¥ÄÄĪ««999hô C©ÔÔÔFÈd2‚ ‹/vppÈËËKOO711ñóóc¼jô½ÛÅÅ¥¡¡áÒ¥K€ùóç744œ?P]]ÝÐÐ $$´råÊÒÒÒàà`À?P èØMA´êS§N©¨¨þ|Ê”)ÎÎÎsæÌaŸiûÎoâ ††JÒÒb ùÝä™4ÉøíÛIÁúøñ‡\_ KÇÇgöر+W^þþ½ŽGUСÑh+W®tss»}ûöÓ§Ocb~ÆCž7oÞÎ;‹ŠŠÒÓÓ§NzöìYÆRK—.ݽ{wfffffææÍ›‹ŠŠº*…Á`&Ož|ïÞ½††‰$(((&&ÖUñúúzth‡ñAuëÖ™šš®Zµ àé驨¨èææÆ¨‡srrZ·n‚BÇ á«ªª*èêV .X°`Ë–-™™™{öìY¼xq¯nf{{;‰Djmmõõõ46þŒÌ…_±QeÓ¦MÛ¶m{òäIMM :šˆNñèêgê¾:FÄÄ(žžSãã÷¼x±}íÚñ²²\¯.¼/éÿ‹ÒÁê˜ZS±=ëtOœÆÏ3¤·,[vqÍš«Ýd¨®nTUýóñãŒÒÒZ ¯ë×ßñN™¦¦¶ ŽMšÐÜÌQ£ôÔ8s挙™‰DB$22Ç×ÖÖ"ÒÐаbÅ YYÙµk×6773¾¶µµyyy)++KII¹¸¸‰D4½s)ABCCutt„„„ £¢¢º)ÎXýøÚµkÂÂÂß¾}£ëœ€ÅbïÞ½‹0¼G¿|ùpöìYú…ÓÛ¯ÿA€Ù+<‚ µµµK—.•••Åãñ­­­½z…GäĉC‡USS;w‹‹‚‚™L¶··—`¬¨ó‹v炌y¨TêÉ“'utt¤¤¤¦N%//Ïô†3­®+ÐùMŒ)T*->>o÷îƒÊÊ¿ Êö“ökÿ·X¤ «ël]]‰íÞ˜Z/Óö+Ó«ƒÆç7õ)gÏ>35õé>ÏÌ™§<=ï ²{÷=só½­­$ÞéSRRkjê³té …ʶŸVALLLjj*ýëÝ»wѹ*ÒÙ¿Òijj»w/ÉÅ%HUõO<Þ£ÿøWÈ`ƒGÆû‡û[[íªªÆÂÂênòLžlüìÙA¶l™ÔÐÐvãÆ{Þ飪*sùòŠ×¯³ýý¹¼û,dÀ‘žž¾dÉ’äää–––?úøø¬^½š§5Š‹ Ï›gyëÖºôôýGŽ8ÛØh÷M=¤}iüpþ0¯05UŠÏ×Ôì2ÂÖäÉ&þþÒÒJÌÍÕW¬°?}:nÑ"; æQŸ8ÇÊJËßßÉË+ÌÈïädÅ£Z ýŸmÛ¶µ´´Ì;·ªªJ[[{åÊ•ë֭뛪edÄ—-µlÙ¨¾©é@_?l¿ò AA܈êññÝMq20PÒÔ”‹‹û Ø´i™L½rå Oµrq±Û°áOÏÐwï¸.üìÝyïW¯^ã̳|fæ™ùÌœóœç€¾…@ 766~øðÁÇLJ@€¯Ú`@àæà‡üÊA¦¦Z̧#2}ú¨Ç? 2hØÒ¥ægÎ<¯«kâhT۶Ͷ·ëî~.=ÙEôäW7N«  ²¢¢–IKËQ99e5‚¬]; AÓ§Ÿq4*·¿Ã´i#ÿø#,/¯ÓÓKôäW;Vƒ@`~­ºñãµÅÅ…îß'!"))âëkú´´´š£áñÇ»Œ¡´hÑé’’*ŽöäW5J5-Y~% ––£îßÿ÷‚£®®ã54äöî½Ç騄…/^\!++îätª²²‡ç›ƒ£¶¶‘×!ÐÇ@~å,MæSœ±±ÑKK+üõ‹Œ /°mÛœ;wÞ3ÿÕËÂW®¬¤ÑèîîçÈäfNwøŠ¢5oÞÞ¾ýîøñ„-[¢-:ef¶{ÈŸ¹sò::ú˜4ÈY& ½páeuuý Ab•™6m$ ãädŠ ˆ¥å¨I“†ïÜy÷î]ONŸ#¨¨(uéÒÊùó¯YsñÂ…å‚‚]¯c÷äÉÆu%AßU]Mýð¡¶¹™ÞÔÔÒÐ@¯®¦ÖÕQëëit:Š ‡àp8E±µƒp8D\¼ùìÙ³ÌÛ,((ÐÒÒâBðÝ#pÁÛ·oÛoÄ¡üt­ãþç÷ï]ÝíaaËfÌÐeRlÉ’ó8.<|9ögNNٌϜY2s¦>‚|ó¦ÐÙùÌÔ©:¡¡îÌ/ãkô‚Œ´ôLAÁNOÎn£¹¹°¡áCSS§uaW§ïutl#pS›| ù•ã¦Oÿ{Ò¤á󘔹v-uÛ¶[ÙÙA¢¢Dl‹—×µÔÔ/‰‰~D"7ö1¼}ûuñâÓ&&š.,ãN€\¸ðrÇŽÛ,~<èäìlÆéè7àø+Ç?49¹‹oýVVºT*íÙ³\Æ?¿™••u/¾âptÿ3fHD„GZZÁòå(”ît xnÙ²IÉÉÛ±«Ü0'&&4þ.„@¿ù•ãÆ×ÎÉ)c>ýRNN|ìX¸¸lÆEE©5k¦:ô¸ººžó1"‚Œ£qõªGjjÁš5—8w±<Ào† ‘IMÝnl<„ù®Ôúúæ±cw.YrþÈ‘ÇIIyœ^€~ò+Ç™™i£(ÂÊ,âøø­›‡ÇT"ìX‡üÍ«WW½x‘)v@º}{½ag‡CîÞõÜ»×^]]öÙ³..gGŒøËÈ(ÀÃãâùó/ÒÒ `ŸíáyC?'*J¼w/ƒ@˜ù•îÞÍX·îò‡A’’̾×<wõjêÛ·­„‘H%³fùûo.OÝLHÈñð¸hn>ìÌ™%ðù8 ÄÅeyx\¤ÑèØ¹°x<®¨èFŠJ?tèѯ_d''S//keeéöu©TZnnYZZ!‰T’ž^øõë/A@KK‘kGŒPâú€7 ¿rÃÏŸdÿK—VNŸ>’I1©ÄÆæP\Ü&}}µÖÛýü¢ïÞÍHJÚ*#Óé"œ™YâârF]]öÊ•U\îðÖË—yK—†57Óp8tÒ¤W¯®Â¶74P.^|uúô32¹ÙÍm¼——µ””(“v°Ÿ¶$RIZZazzaSUAAÂÀ@]_°©©Öر""D®< xò+—XXìµ¶Öݾ}ób&Ïše°mÛìÖkjÌÍ÷Κ¥¿oŸ'cì@~~Å¢E§%$„¯__­¤$ÅåÞ}øðÍÉéTMMÛ7ŠŠÿyé)—.%9Çã¶l™éâ2ž•ƒ--ô/_~¤§c»‘Kóó+pÚÚ X®51Ñ>\–ƒý äW.ñó‹ÎÎþvïÞFæÅöì¹w÷nFJʶ64ׯ¿öñ‰¼{wƒ±ñN†ÙÒÒêE‹NQ©´ë×WkjÊs¹wÀC%%U×®½öõµíðÞúúæÓ§Ÿ?þdðàA»vÍŸ6Ù¾™öjk›23‹±\›–VXSÓ !!lh¨njª©¯¯fb¢)-Íì—1üò+—Äļ_¿þJNÎqq!&Å23Klm=zä­§7¸õvEçÎ=F¥ÒîßßÈý9½••u‹Ÿ©¬¬ˆX=j” —{ü¬°°rß¾±±VV£w®.ÛƒFh4úçÏ?°C¶ii…Ÿ?WÐéè!²Ø![SSM]ÝÁÜœß[@~å’ŠŠZ#£€ˆ)S˜¥ƒ È„ ÁsçúùÍj³=7÷ûŒ‚ƒº¹MàX˜ª®®wu=[\\uåÊ*µ®+€äÁÒîÝwþ$oÜhåá1µ—sÎëêšrs˰\ûæMQuu½¸¸ÐÈ‘*¦¦Z¦¦šcÆhÀlÐ'@~åž ‚í쌶l™É¼XPPìÇY¯^mm×¶m·nÝz›”ô+ Ú±]}}óÚµ—_¾Ì;thѼyÆÜð³ææ–ÐЧGŽ<ÖÓ|ôèbmmvµüõë/l7rzzá‡ßh4º¢¢$vÈV_°‘ÑV®û÷A~åÁ¾{÷uöì# ›Ûï‰ýý»aÒ¤½3gêïßÏí‰NECCŸîÝ{ñb³àà…ð¹ÚÈË+ß°!"'§ÌÓÓrãFk¶˨¯oþðá–kSR>ÿüI%Ž­ŠíF63ÓæÚJ,t ò+÷ÄÆf¬[w9;;XRR˜I1EÇÛmooÒá¼’{÷2W­ ¿vmõäÉ#8irþüóò¨QªçÎýÁ“_Ò€ŸQ(-ÿýðÌ™çãÇkŸ<éÆÑ„WQQ“–Vˆn›™YB¡ügi u!!¸àȯÜS]]¯§·ãŸ–[Yf^rçΘøøIIì"FdåÊðÌÌâg϶ˆ‰1›*ÅQYY¥K—† âY:Ì x\çätjíÚK¬”ܳçÞ˜1t:I:îârÆÌlw]]›ì9‡¶?Jp8‚˜˜¡¢âJ!!MžŒpÀF‘‘‘l'gÏ>WUõº{÷=[Zë§Ÿa!!M ‰ñ22 ””Ö(+oÒàt§€¯t8ðà˜›;w.EÑ.O¹›7Ïøøñ„7oŠLL:MN8îàA§iÓBüýo:´ˆÝÁv›™™Ù¦M›ÚlliA „>üc âèØÅ¤<Ö­\9ùë×_7^>\iÄ%v5Ë„——×øñã¹ÐŠ"åå rrf‚‚ü~€°EJJÊáÇ;¼ ò+˜›Û³ç^~~Åðá]|²Œ©¬££|çÎ{&ùAEE©œ–/¿0eŠÎܹ†l ¶ÛÔÔÔÚÿŠ ]»æçåU,]öè‘·„ǘ™™Á°œÀd |Ãâ]ÝÁ’’¯^}f¥°ÑÝ»ï[ZèÌ‹ÙÚê99™nÙ]Vö›1ÀY¸“']š7oŽäu,päW ÌÍ k IDAT‡?þ‘•ÂóæWUÕ''çwY28x¡ŒŒ˜—×5:æ¬>@^^"$Ä)66óÖ­·¼ŽöƒüÊ#RR>S©´.K"kh¨vçÎû.KŠŠOžtMMýrþü vÄÇYYvwŸ°uëòò^Ç›A~å©SuÈäæ7oŠX)4Ô­¨èg``Lï¸Þ¿O ¢£ÿ÷‹*&&†H$fee!‚ÃᆠÖfÒ ­­-‡ûüù3V»Ñ®#œ(}ôi#œLwì¸ÕÐ@áu,ü«Ë×ãf äèèXYYÙYaE]]]ÅÅÅÛ×忍¾~ýz‡]gddp¡wÖA~å ‹$Rɯ_dV ;:šÄÅeÕÖ6²RXKKþÄ ×ðð¤ÈÈ´ÞÅ8@mݺÕÓÓó÷ïß‚ÔÔÔ¬]»6 @OO+PTT”™™É(_]]ýâE×Ǽ“““¿ÿ‡â/((““k›ŸØ55QzÄë@øZÏ^—°‘YVV_ZZº~ýúÎJ–••]½z5''§M].j;;;¬¯äädA]=šÝõäWž17ŽÇ ¼zÕõÄ`AfÏ6¸{—ÕogVV£ÿüsºŸ_tVVi/b¸¶oß.''·eËAüüü”••}}}÷ZZZ¶þu{÷îÝÉ“'wÙ¦¼¼¼Òq"rAètú¯_¿ÚßægÒÒ¢>>¶çÎ%~ùòƒ×±ð¯ž ¼.a#SYYyìØ±û÷ï‹‹ë¬dcc#‚ êêêmêryT‹ˆˆ`}ÉËË#ÂèZPPÝõäWž22’˜˜ÇJa akëÑ7n¼a½ý-[fާíáq±¶¶©§1rÄÝ»wUUU«««¹víÚðáÃëëë¡R©›7oVTTTPPؼy3•Jýüù3‡{ò䉺ºúóçÏÔÕÕåååÝÝݱ_–ÖB$66V___XXXKKëòåË‚´´´tXë¢ým"‘~áÂ…½{÷þóÏ?ááá­ßºQQQŒ=u7nܰ··ïÙ³ñû÷ï?þøCNNnðàÁ>>>MMM­uRR‡»páÂÈ‘#ååå÷íÛwùòeMMM))©;v`-Ü»wÏÈÈHTTTYYyß¾}‚˜™™!‚}Òµ¾Ý哜””Ô³GÁnnã‡WÚ¶í÷»îcéjàuØo—ã§ <¯  ÐYm†Sg8=ª™h_±u×/_¾<}úô¨Q£$%%§M›vïÞ=ìqµêXì® ÜYÿtèàÁ8cã@ '$䨨xV²Þ~ee‘Q€»û9æ+³‘ƒƒƒƒƒC—ÅÜÝÝ—,YR^^®¨¨øúõklãþýû.\X\\L"‘Œýüüòóó±µµ}úôi``àèÑ£I$RVVÖ¸qã|||:«E&“…„„NŸ>ýýû÷°°0@&“CBB:¬þû÷ïsçε¿ñóóC$((¨õFA>~ü¨¤¤ôþý{¬–¨¨èÏŸ?ÉÏÏÇ `7ÚÔÊÈȨk…J¥¢(êââ2}úô/_¾H$]]ÝÀÀÀÖšL&#âìì\[[{þüyAkkkÏœ9ƒ ÈÏŸ?kkk‰Dâ²eËJKK¯\¹‚ È?°°~[ßîòI&“ÉL^5„}ëw&-­@EÅëñãlö6ËJäü?&»xíûÅj1?h«‘Y[[ûñãÇ)S¦ìÚµ ýïÈaÜn3œx5ªÚldRëúÈ‘#ªªªqqq•••ñññC‡ŪwöB³2º"##;+ ù•—Þ¼)RVÞ˜—WÎJa*•f`°ãÀ‡ÝíB]ÝûäÉ'= °ÛX̯ÕÕÕƒÖ×× üß× ïß¿c·ããã ±!N"‘P1bÄ­[·°{srr·ÛתªªÕÒB9r+¶Ö?+îêîÑ3gž«©mJNþÜý»ÅüŠ¢è®]»ðx|EEc‹°ð¡•’’†8…BÁîÍÊÊjßNûZ(Š&%%ÙÛÛ‹‰‰Mš4éÁƒLª3qùòe))©ÄÄDaaá;wî0¶coÚçÏŸ:”N§Ï›7ïÌ™3( ùµýÆ’’A±?I$’°°pëGݦb‡·cbbÌÍÍ —.]Úe~eþ$3ÇüZRR¥¥åËÞo„,FÎçc²Ë×a¿]ŽŸÖëë냃ƒÕÔÔètzë‘“——×Y~åɨfh¿±³ŠX×"""™™™ŒÂØ|ãŸ:¶äW8þÊKx¼€¹ù0Ï‚EÄÞ~lIIUzza·zYµj²­­þêÕ+*øe‰œ’’’'NXZZz{{36ÊÉÉ1ÞfÕÕÕ©©©ØvìÀ§ŠŠJQQ¶%###88¸³Zt:=::ºªªjùòåsæÌ©ªªê¬zgÊÊÊ<==CBB,,,<<<ÚLv077¯««KJJŠŸ7o^ÏžEEE<_PP€ýùåËUUÕÖºKŽŽŽ›7o~÷î]hhh—å™?Éü`ðàAëÖM;räqEE-7ûåÿ1‰a2ð:‹–u¢¢¢+W®,))ùñãßYf---‚|ûöõF¸?ªY©ˆu=dÈ>06æææb7zÿÔuò+YXŒHNþÌÊÚL‚Œ­:r¤J·f9aBBÅÄ„<=#h´.®Àt:}Ù²eëׯ¿víZBBBll,¶}Á‚ýõ×ׯ_I$’ÍÉ“'[×rssÛ¶m[vvvvvöŸþùõë×Îjáp8kkë›7oÖÖÖR(AAAQQÑΪ×ÔÔ`G€ZßFQÔÃÃC__ùòå‚x{{+**¶9iÇ/\¸ÐÃÃÃÔÔ›ÒZeeey+=‚‚‚NNNžžž………ÙÙÙÛ·owqqéÖ“ÙÜÜL¡PˆDbccc@@‚ uuuØ]ØQ®6·™?É|býzKÉ€€;\ë‘ÿÇ$“×ã—1\‹‹‹÷ï߯¦¦&///-- È¥K—jkk;Æú“ɵQÝ­Š˜uëÖùúú>~üø×¯_Øtl~SgOóîºÆÊï_À9%%UÊÊ“’ÚîcéLhèÓ#ü»Þ›×Fff±¦ææíÛ»>îØ¬ì>~ü¸¶»æöíÛÊÊÊUUU(ŠÖÖÖ.]ºtРA²²²«V­ª¯¯o½‹¦©©ÉÇÇGEEEJJÊÙÙ¹ººÛÞ¾Š¢‘‘‘ÚÚÚD"QGG'&&†Iõw¥†‡‡ }úô‰sZZš€€À7ÐV»°ž?Ž ÈÉ“'±2H'´ÿ¿‚Uû=i(ŠVUU¹¹¹ÉÊÊ*++{yy5662Ù×áíC‡ÉÈȨ©©…††:;;+((P©TsssqqqE[ßîòIfáÊþaL|ü‡n½/˜ë2rþ“( ¯Ã~»?­ª€€€¾¾~jj*V&((HZZZ[[;&&ayÿ0ÊùQÍÐ~ô¶¯Øº F;|ø°¶¶¶”””MLLŒ¼¼|‡O]‡ÝuŽ¿òµñãƒöî½ÇbáòòšÁƒ7ÅļïAGTU½X?ÜÛ¬}7ó+Š¢nng§LÙG¥Òzß—#|+666##ƒñç7°Y`½Ç_ùšµõè„„œ®Ë!‚ ŠŠ’'ëÙõ¼lmõ|}gîÜÿ¡ëÒðÔ®]ó‹Š~^¾üŠ×€þƒD"¹ºº¾{÷®¡¡!55uÇŽ+V¬à\w_yoÚ´‘¹¹ß¿gõºè®®ãŸ<ÉéÙuÔ==-çÏ7^·îòÇœZÆ ¶ÐÐ[µjÊßDZ¸†(]òõõµ³³›7ož¬¬ìòåË—-[æááÁ¹î ¿òž™™¶¨(ñÙ3–.·Ž ÈŒºƒ‰FEõpmáƒéé ^²ä<|l>÷çŸÓ…… ÁÁ÷xè'BPPPqqqccã‡|||纃üÊ{D"aâÄaOŸæ²X^Poo?öúõ4:½ƒ©4¬T?wn©€nùòXœ· OHHïÛçpýúë'OX}wÀ? ¿ò…iÓF¾xñ‰õ+¶º¸Œ/)©bñÚíÉȈ]¼¸âãÇ2_ߨžµw̘¡ëädºqcìn}äW¾`i9ŠLnNKcuámm…±c5""z~ôðáJ,ŠŽ~sáÂË7Ø;wÂõŒAù•/¨¨H¡ôìY7v‚-^lö੪ª¾ÇΞmàëkëïûÎw=nN“–=tÈùÖ­·×®±gU¸ò+¿˜6mä“'¬ž¥ƒ Èœ9†Â‚=;Q‡aëի§®_õÁRoÚ€£¦NÕñö¶ù믛$R ¯c€U_ùÅÔ©#?}*/)©b±¼¨(ÑÎΨ7»ˆ1Û¶Ívr2ýóÏ+©©_zÙœãéiib¢±víe2¹™×±Àš^.]Ø…Bi1ÂïâÅW¬Wy÷òÆ·o‹zÙuK måʆ÷ËÊ*íeS¼Ñ€ƒx» REE­¡a€“Ó) ¥¥[yý´þ¯Ã‡ƒÁÇ?–/¿@£¡ááËY¯beuÀÐP=$ı—]S©47·s99ßbb<55å{ÜNJJJiii/ƒ|ËÌÌLMM‡äçWØÙ³°ê. €c±Vtt4G£ ÃŸ_ùÈÕ«)w>|bõ”ç3gž>üèÝ»¢¢Ä^ö^W×äàZ[Ûx玧‚‚D/[€CÞ½ûêàêäd²g=¯c€8þÊG,-G56R_¿îÆqPGG“ææ–¨¨ôÞ÷.!!áA 8;Ÿ®­mì}ƒp‚±ñƒ.^L>z4ž×±À äW>¢¨(5b„R·–ª4HÌÎÎ(<<‰-û!ddÄ"#×ÔÖ6.[v¡¹–v|jÞ<ãÝ»çÿý÷à XØøäWþbc£÷à©[K–˜çå•¿~]À–”•¥/^\‘ýmåJX=ð¯eË&…†º;—¸~ýÕ–:¯Ã _ù‹•Õèoߪss»qq##uµðp¶]ÆkÔ(•ððå))_–. ƒ_±€oÙÙ8á›±qcëk‹À5_ù‹¡¡š’’T\\V·jýñ‡ùÇ¤ŠŠv…af¦}óæº÷ï‹-:U_§>5gŽá¥K+Ÿ>Í]°àxy9ÛÆ?lù•¿àp8KËQݽþ¹‘¸¸pDÄk6F¢¯¯¹æÓ§r—³pF?à[“'xúÔAéÓC?ñ:þò+ß±¶Ö%‘JY¿Ü:‚ ‚NN&—.%³w/™žÞਨµùù..g ž¥¤$µvÚ´‘îîçNzF£ÁáXÀ ¿ò ‹ábbÄøøn¬EŒ ˆ»ûÄÊÊÚîþðí’®®jdäšÏŸ,^|¦®®‰½À.""ÄãÇ]v옻oßýyóŽþüƒ×ù•ÿ‰„I“†ÇÇgw«–††ÜäÉ#Ø8ˉAWW5*jMAÁ—³b?[±Â">ÞEÑiÓö߃IO€· ¿ò#kkÝ—/ó»»KÖÕu«WùEE?ÙÏèѪ—/¯ÊË+ÿãó ¶·» ®tûöú­Ïž}ngwìÓ§r^G.ȯüÈÒrFñ¢{“5¬¬F<èüùœÉÈH=2rÍÇåNN¡½¹è,œ&(ˆß´iF\œ7‚ ÖÖ¶o¿U] #ðäW~$++nl<äñãîí"&<<¦\»öšCùÏÀ@íáC¯ß¿mmÁñ-ÀçFŽT~ðÀëüù¥OŸæš˜ì:x0®©‰Êë ÀÀù•O͘¡ŸÓÝ…i-'$D¸|9™CQ©«ËÞ¼ù§´´èÂ…'Þ¾-âP/°‹•ÕèÄD??¿YçÎ%Nœ¸'::ÖS\ù•OY[ëVW×w7‡‰Š/6 {Á¹u—$nÞüÓÀ@mÁ‚aaÙ  âW¬°HLô³°îåumÁ‚OŸvc‰oz Èë@ddÄnß~' €³°Ñ­ŠÃ‡+8ñDMMFWW•C±‰„yóŒ%$Dvï¾›‘Q<}úH!!Aõ[ˆ‹ ÛØèYYNO/qâɬYrrݻڹššÌ‘#ñ¦¦šC†Èq(6Œ††œÑË—y‡ÅQ(´qã´ðxøÆøœœ¸­­¾^AAåéÓÏ< IK‹ª( ¿e;A~å_ÊÊRׯ¿œ0ah·***J½zõ9#£d᱊ARRÄÞÞD\\øÈ‘ÇqqY&&šÝý6OÈËKÌk8k–Á—/?Ž}ñº±‘¢¥¥ &&ÄëÐ@?ù•áp¸ââªgÏr—,™ØÝºRR"GÆÏœ©//Ïñl‡ÃáÆŒÑ˜9Sÿñã‡=ª­m3FCHˆÀé~è=99ñY³ ÜÜ&‰øK—’Œ{ýº@ZZ͂ރüÊ×DDˆ'O>µ³3–‘ëVEMMù›7ßVW×[YæPlmÈÊŠ;;›ÉÊŠŸ>ýüÒ¥W22â£F©À'èDE‰¦¦ZK–˜««Ë$'>{6ñÑ£l<§¥¥@$Â7EÐC_ùšªê «WSÄÅ…ÇÓêVE/úÔÙyœ¸¸0‡Âk‡Ãª/Z4®¸ø×¡CŸ<ÉÕÐWW—áNïô  «;ØÝ}‚¹ù𢢟gÎýüË—¼º òkß *Jœ1C÷æÍ·=«.''¾zõÔãÇzö ˜k¤¥EL.\X–½ûܹ¥ZZòÇ'Lš´×Ø8ÐÓójTTzYÙouýþý{ÍØC$³²þ=ì]__ïëëk`` ..njjºwïÞ––A>þŒ­ìÓþB&“}||455EDD† ÐÔÔļJëaY__¿yóf “={ö`ƒ™¸ŽôêÁ°æúõëv‘‘Á…Þ{–Öì3æÏ7þã°’’*5µž¬8¸fÍÔK—^…†>ñ÷·c{ll'"B´µÕ³µÕ£ÓÑììÒ¤¤üW¯ò·n½ÑÐ@ÑÔ”776qâ0==U 9v½·ŒŒ¶nÝêééiee%--]SS³víÚ€€===AêêêLMMöíÛ§­­½cÇŽøøøøøxiié-[¶°%X´~ýú¯_¿Þ¼ySMM-77×ÓÓ³ªªêøñ㦦¦?þdRÌŠŠŠû÷ï×ÒÒb æ„„<ß¾|û6“““555Ùÿ¨˜vmgg÷ýûwA 'L˜€ÝFDVV–ݱ ú ¥eÔ¨m'N$ô¸…3gžkhø|ûVÍÆ¨¸‰BiyýúËqóçWW÷VVÞ8b„ŸƒÃÉààØû÷3™?.A"##™·ßÜܬ««»jÕ*EW¯^=fÌ …‚Ýåãã3iÒ¤––Fa2™¬¡¡qúôiÆ–üü|ì ŸÑ3=®˜ce$ð?iiil}Lbb¢ºº:Êtì1îêl0Ÿ;wŽyE ‚ ùùùly]êðáôòýÕÝî:ÉJIȯ}‰Oäôé÷¸:…Ò2nÜnŸ>ÿá‚¢hCCszzAXØ‹ ®NºðàMÊÊ v¸»ŸÛ±ãVxxÒË—yåå¿åYüT}óæ @سgPVVc»’’R|||›Â¡¡¡“&MjŸV[¿Kccc EDD”””öîÝËÊCƒüÊQ]Ž„˜˜•ªª*E#""† F&“Q¥P(>>> òòò>>> {¡ÔÔÔž={æïﯦ¦&''çææV]ýï·½öµP½{÷®žžž¦¦æ¥K—P¥R©Vo=–ZßVWWwwwÿùóg›à±sŠŠŠ(ж´´üý÷߯ Ÿ0a•+W°êæ“'ONž<¹ÃîZ·‰vž_«««—,Y"++«ªªêííÝØØØúùyùò%‚ aaa:::rrr{÷î½té’†††¤¤äöíÛ±Ú¿YÚtÝþyè¬bë®_¼xqêÔ©‘#GJHHL:566«Þþ¥é°»A~퇒’ò••7~üø½Ç-\¿þzðàMùùlŒŠ0ÒíÆ66‡ Û¢¬¼û;sæ¡ ®Šˆè°ø«ÅÏÏA   Æ–êêjA*++Û”LII‘‘‘a’_kkk‰Dâ²eËJKK±O·?~täWŽbå›–»»û’%KÊËË_¿~mÜ¿ÿÂ… ‹‹‹I$’±±±ŸŸöBÛÚÚ>}ú400pôèÑ$)++kܸq>>>Õ"“ÉBBB§OŸþþý{XX@ “É!!!Vÿýû7ãgeëÛ=RUU²²² )**¶·Î=‡RPP¸uëVYYÙýû÷UTTél0¿zõJQQ±ÃüÚþ÷kFFF]+T*EQ—éÓ§ùò…D"éêê¶~~Èd2‚ ÎÎεµµçÏŸGÄÑѱ¶¶öÌ™3‚üüù³Ã7 +¿_™Tĺ>r䈪ªj\\\eee||üСC±ê½ ÌÇòk?D£ÑŒöïÐãZZhS¦ìóð¸ÈƨøSYYõ‹Ÿ.\x¹uë ‡P ‰‰¬äW:ngg‡Çã]]]±¤ö¿’““åää˜ä׿ææÜÜ\2™L£ÑYܱù•£XɯÕÕÕƒÖ×× dlÔÑÑùþý߯¶ñññ†††Ø M"‘P1bÄ­[·°{srr·Ûתªª|Àn¸¸¸ìÚµ‹1˜©¯¯ß¿¿ ö'ÖÔ·oßX|ºQTTÄãñØŸ_¾|QUUmýüt©Ço&±®‡ Âxì‚äææb7:{AÙòkcd¤®©)çλ·€Ãáöïwxù2ïî]þ=oŒûPõððÐ××_¾|9‚ ÞÞÞŠŠŠëׯÇîõ÷÷///·²²zôèQ^^ž––ÖâÅ‹›ššV¬XÁ¤Íææf …B$©««ãÂc½A§Ó—-[¶~ýúk×®%$$`ÓaY°`Á_ýõõëW‰dccsòäÉÖµÜÜܶmÛ–ýçŸ~ýúµ³Z8ÎÚÚúæÍ›µµµ EPPPTT´³ê555ØÑÊÖ·ÅÅÅÝÝÝœœîß¿_PPœœìããÓú«v°sõêÕ›7oމ‰)//‹‹ó÷÷Çîõ÷÷ÿñãÇôéÓãââòóóoß¾=nÜ8UUÕ5kÖHKK#réÒ¥ÚÚÚcÇŽµ~€X›trròôô,,,ÌÎÎÞ¾}»‹‹K·žv&oæ]wù.[·n¯¯ïãÇýú…)ÇNêëìeÞ]÷°ò[ð•ýûú·´ÐzÓˆ—×5cãÀúúfvEÅç®ö †‡‡ }úô‰±%--M@@àÆØŸd2ÙÛÛ[WWWXXX[[{Û¶m“'Ovrrb¾øÐ¡C222jjj¡¡¡ÎÎÎ ]† û‡9ªË‘püøql×âíÛ·•••±¹ÄµµµK—.4h¬¬ìªU«êëë[¿ÐMMM>>>***RRRÎÎÎŒ Àík¡(©­­M$uttbbb˜TïlþpKKK`` ¾¾¾ˆˆˆ††Æ–-[°}³T*ÕÜÜ\\\+2tèP11±ñãÇc¿Ï°êŒÁ,**:zôè   ††ì®   iiimm혘¬|ë6ÑÎçWUU¹¹¹ÉÊÊ*++{yy1æ·~æ™ïnÿfiÓuûçÓ¾bë24íðáÃÚÚÚRRR666111òòò¾4v×!8þÚoåçW(+oLJêÕ)h••u#Füõ÷ß=Ÿ*Õ·tù©ÚÍÍÍ)))ìm…üÊaœ €ŸÅÆÆ¶>}ãÆ CCÃ^¶ Ç_û­¡Ctt”ccß÷¦99qoï'O>-,¬dW` ‘H433ãufH$’««ë»wïRSSwìØÁü°A~í“.s÷n…Âê’¡Zºt’¶¶üîÝ±ìŠ ø¯¯¯Ý¼yódee—/_¾lÙ2ît ùµOrt4%“›>ìÉ×;çÇÅe=}šË®À€¯„   âââÆÆÆ>øøø\ZxòkŸ$//1eŠNTTZ/Û176k–A`à*•Öui,ƒüÚW98˜$&~úþ½·×kÛ¶mvqqÕÉ“OØ ä×¾ÊÆFOJJôÖ­^–ACCÎ××öСG$RÏ׬Ðä×¾JPoggxíÚëÞ7µzõTcc /¯ë°—Øòkæà`ZPPùþ}q/ÛÀ<èTXXyìX[ùµ32R×ÑQŽŽîí,'A´µ6o¶=zôqVViï[€C;ºÞè+Nž|râÄÓŒŒBB½qN§£ ž¨«kzøp“  ž-áñ§§§§¨¨Èë@º–••eaaÅë@ú§>4ߪ¨¨À®wļä×¾­¢¢fìØ]¡¡nsæö¾µ‚‚JKËõë-½¼¬{ß_qttäuÝ`ff¶iÓ&^GÑ?õ­‘øY—_‚!¿öy®®gp—.­dKk'N<9x0îþ}¯Q£TØÒ LpüµÏ[¸plbâ§ÊJö\ølíÚi'[²ä|UU=[€ òkŸgk«'**Ä–uÀ<éŠÇ lØp•N‡}ÐC_ûïÜÃÆf ßƒüÚ¸¹Møõ«>..‹½Íާuâ„ëÅ‹I0XùµÿPU4yòˆË—SØÞò¬Y§O/9x0.°,Âò:À6bbB'N<™?ßxÐ 1ö¶¡¦¦ñöíwjßÁÁ$,lYllÆâÅg~ÿnàP/Ð×A~ío¥,súô3Î]yÐÊjô;ë?®˜5ëÈ—/?8Ô ôi_û!)yyÏŸâ\£G«>xà%))p Ž×°äýû÷¡õi²111D"1++ û³¾¾Þ×××ÀÀ@\\ÜÔÔtïÞ½---‚|þü;I±ý &ÊÊÊ/^¬¡¡!..nbbrûöí¨«««¸¸8‹=ö§ÛgîÛ·j^uÝ'à:Ò³¦˜¿ Z·¯¡¡áîî^YYÙ:ŒaƵ™rakk‹Ãá>þŒý ÃžÓ ¿ ÞÞ6ïÞ}MJÊçu ]322Úºu«§§çïß¿©©©Y»vm@@€žž‚ uuucÇŽ}ýúõ¾}ûÞ½{çççwåÊkkk&--½eË–nõõë×/###QQÑÈÈÈ´´´E‹9;;?zô¨[”••]½z5''AÄÐ¥‚‚999ì6'ÚïReeÝ… /gÎ6¼7:³nÝ:ì4sKKËî<¦®{é%N· Hdddûí55ׯ¿^¸ð„ªª×àÁ›TT6¶…sað¹Îž¥6eòóó{ÜE›šÉ» MGt:ÝÂÂÂßߟq¯ÍÖ­[ÂÃÃmmmµ`ØGFFr:B~X²²JUU½bbÞó0ó+Š¢oÞ¼!{öìÊÊÊblWRRŠoS844tÒ¤IíÓjë·hll¬¡¡¡ˆˆˆ’’ÒÞ½{­%''·nª®®îëׯØíêêê%K–ÈÊʪªªz{{766¢(Š È•+Wttt ´ÿ~EeeeQTTlÝ#N?uêÔÈ‘#%$$¦N‹}º1âidBB‚ššÚË—/ÛÇÙaû¬‡×¥6™£¶¶ñòåäY³ciUUÕKYy#öòk—e:̯޽»wïêéé ijj^ºt ýï éì]о£ˆˆˆ1cÆ0î :t(NǶ̞=;,,ŒQ †=äWÀ~k×^7nws3•W°ž_QõóóC$((ˆ±¥ººAÊÊÊ6%SRRddd˜ä×ÚÚZ"‘¸lÙ²ÒÒÒ+W® òãǬµªªªÎpqq™>}ú—/_H$’®®n`` Š¢‚ØÛÛWWWŸ;wA_¿~uøñqîÜ9UUÕ¸¸¸ÊÊÊøøø¡C‡2ÿ ±µµ}úôé÷ïßÛÇÙa-ÖÃëòyÆ2GCCsTTš‹Ë5µM**^ƒob¤Uȯ(Ëù5##£®*•ÚáØ#“ÉBBB§OŸþþý{XX@ “Éþbkÿ.@;ʯéééÒÒÒŒ{?~ü¨¤¤ôþý{Eÿþ-**úóçO¬ {”+ù•ÀòŽdÐOøùͲ°Ø{éRòмޥ (Šæææâñø?¶¹«ýLE˜Í'ÊÌÌTSSQSSC¤¦¦û‚ÜÙ¼ *•zýúõÌÌLìÂ2»víòõõ @dݺuÒÒÒK–,Y¹reUUÇ+R=zôï¿ÿž1c‚ –––»víZ¼x1“÷ï߯§§G¡PÚÇÙËðdd˜­II§£D¢Jtt¡¿@mm/@£Ñ¡Ñ:X„F£_¹’¤µ~LPP•b†††­ÿŒµ¶¶nÿš:N&“………—.]êèè(""Ò¾5&ïæðxüÂ… £¢¢ ïÝ»7qâDl´#ÿ¿¨ýö\ùuÀQS“Y¾ÜâàÁGööc¥¥Ey3W¯^}þüùÓ§Og̘aooogg‡ ˆ´´´’’RFFÆôéÓ[ÎÈÈÐÑÑaÒ‘HÌËË[¹r%™L622Â64HQQ1''g„ Œ’ééék×®MLL¬ªª¢ÑhÚÚÚØö¡C‡–––b·UTTdÒã—/_tuuŽ5ªMô¿Ó;±ø;Œ³C½ Õ+)ÒÒ¶¯^•c[°äÚ*•îë;@¯Í $¤ÉJ±üü|ìG[k޽gÏž9r$ ÀØØø¯¿þÂŽ¶Ñá» ³~ƒãàà°bÅŠààà7nØÛÛ3¶Ã°çȯ‘§§åõë¯CCŸnÝ:›×±tª¬¬ÌÓÓ3$$ÄÂÂ" ÀÃÃÃÜÜûîââ²{÷î)S¦àñxAœçλoß>æÓ £¢¢æÌ™ÓÜÜüÏ?ÿ`ÛçÎ{ðàÁñãÇ3¾Î_¹r…J¥ŠŠŠ âñø‚‚ì3âË—/ªªªXæ¿•1C† ùðჾ¾>ögnîÿÖÏjii!ß¾}k]û\è,Îö{‡Ã¹»OX²dâÑ£áuu²×¯§ýúU'(H R;^ÆRX˜—7@§÷øü_ÓÆÆF:M¡P®]»6gΜ?~´©Èä]Њ¢§Nš5kVëæææuuuIIIñññgΜi}×öÜÁ_Ñî”Ù¸ÑúܹD¾=—EQ}}ýåË—#âíí­¨¨¸~ýzì^ÿòòr++«Gåååiii-^¼¸©©iÅŠLÚlnn¦P(D"±±±Û›TWW‡ Hpppbb¢››[rr2‰DÚ¹sç±cÇ‚ƒƒtrròôô,,,ÌÎÎÞ¾}»‹‹ ëbݺu¾¾¾?þõë×Ó§Oq8œ´´4‚ —.]ª­­=vìëq"B&“[—ìexm()‰lÛ6;3sç;ëÝÜ&HI‰ B à{Ü `èð5ÅápÖÖÖ7oÞ¬­­¥P(‚‚‚¢¢ÿîOÂ^hæïA*++ËËË¿}û–˜˜8þüÂÂÂM›6µîÛEìááajjª ðŸÛ0ì¹£GwߢPZ&LÞ°á*÷»fe~Sxx¸Ð§OŸ[ÒÒÒnܸýI&“½½½uuu………µµµ·mÛ6yòd'''æó‡:$##£¦¦êì쬠 €m/**²··WQQ‘055½{÷.£ßªª*777YYYeee///ÆLEÆÔìv‡1h4Úáǵµµ¥¤¤lllbbbäååQ ’––ÖÖÖŽ‰‰id‡qR©Tsssqqñ6…Y ¯Ëi7s§¹™úøqöŸ^ÖÔܬ¢âŘB ó›º,ÓáÞáØ‹ŒŒÔÖÖ&‰:::111(ж~¡™¿ ZŒ«©©¹¸¸TTT´ãùó炜-­0-­D*ÉÈ(¦RiŠŠ’¦¦Z&&šúúƒ Õ‰D˜, À@~Û¹3æòå伆‡ÓuÊʺÀÀ˜;wÞ àþ?Ëâ®^]5uª£LC%;»”D*MO/LMýRYY'(ˆ9R˵ffÚjj2¼ŠþùtŒBi±³;F¥ÒîÜñâu8€«rüü¢ü¨mi¡ãp¸ìì݃‰uV¸¢¢†D*MK+LK+ ‘Jš›[%õõÕLM5ML4õõÕ„…¹<|ò+èTIIÕÌ™‡ÇŽÕ [Æé3b¿il¤9úTEEúõë,Ö¢Ri¹¹eØnäôô¯_ZZ Œ\ «—€ò+`†D*™7ïøLô÷·ãu,€òòÊ_¼È[±Â¢gÕ±Ÿ¶$RIZZazzaSUAAÂÀ@]_°©©Öر""Dö ÿ€ü º‘ºysÔÑ£‹ííÇò:Їµ´Ð¿|ù‘žŽíF.ÍϯÀik+`¹ÖÄDsøpEXÀô'_A×víŠ {¶ÌÒr¯cýDmmSff1–kÓÒ kj$$„ ÕMM5õõÕLL4¥¥Ey#½ù°$ àNxxÒ•+«&MÎëX@C£Ñ?þ²MK+üü¹‚NG‡ ‘ÅÙššjêꆠÏü XB£Ñ=<.&'ŽŒ\£§7˜×á€þ¬®®)7· ˵oÞUW׋‹ ©bjªejª9fŒ†ŒL§“™à_«(”W×s$Rñ•+«àj*€k¾~ý…íFNO/üðáFo½´…‘ÑAA<¯c _A7P©´Õ«/>þ),lé”):]W€­êë›?|ø†åÚ””Ï?’EE‰£G«b»‘ÍÌ´åå%x#ÿ‚ü º‡Biñð¸øâEÞÑ£‹gÏ6àu8`@«¨¨a¬Ú˜™YB¡ügi u!!Xµð äWÐm4Ýßÿvxø«Í›m6l°‚s*?h½´Åë×%%U­Wm45Õ2D–×1‚ò+衳gw튙7Ï8$ÄV ü¦³U§Ûª€Ó ¿‚ž‹ÿ°aC„’’Ô™3KàâÛ€oµYÚ"/¯¼Íª°´àȯ WJK«W¯¾øéSù¾}ö ÂO øñ£.3³[µñÍ›¢ÆFФ¤°Á¿K[Œ§%))ÂëAùô•JÛ·ïþ™3ÏgÍ2Ø»×ÎM}H›¥-Ú¯Ú8l˜",mzò+`´´‚¯Õ×7ïßï`c£Çëpè‰Ö«6¦§þþÝ !!¬££Œ-m1v¬“ëôÐäWÀ6 ”;c®\I™>}ä®]ó54äx=Çøi‹åÚììRXµt äWÀf))_¶o¿ùåKåš5S×­›×fý™Üœ“ó ÛüömQUU½˜˜Ð¨Q*X®0a¨¬¬8¯cüò+`¿–zxxÒþý„…7l°Z²d"¬`ú™ÖK[ddS©´Ö«6ª‰°´Å@ùpÊÏŸä#G_¾œ¬¬,½iÓŒ Æœë.**ÊÉɉsíóxÏòGGÇ›7c•‰D%AAe"Q‡ªªºÓÜ\ÄëÐÀÿ888DEEq¹Sø†8ENN<(hÁªU“~ìãsýÈ‘Ç^^Öóçs<Ër®qžKII9|ø0¯£m™šnÚ´ »¢Hyyƒœœ™  Ç9è–C‡ñ¤_ȯ€³ÔÕevÞ°ÁêèÑxoïë!!ÿøÃÜÅÅLJŠ#WÏvppàD³|~¹ò'55µþ=ðúºèèhžô ß°7hhÈ>ìüêÕ6½Ã‡³sË–è÷ï‹yp äWÀ=jj2»vÍû6ÀËËúå˼Y³OºÿÔ©g?~Ôñ:4`3ȯ€Û$%EÖ­›þêÕÖ;wÖk>ühìØÀ%KÎß»—I¡´ð::`8þ x‡Ã™šj™šjÍ¿Ÿ•¶zõE‰ÿkïþcšºö€ŸRhÁ@´VKéM-> TÅßÅÊÔÍü]4ŒÅhÈsÔ(äY7dÏ„™ùpÆ€F J‡‚ÎLq3Z•° ÖŸL[[¡¥…B{Þ'éëCz©³PdßÏ_÷žsîé9Þï½_ïåÞ6$há¨øxI\\ä°að›<€äWàcAA ™lšL6íÅ cE…úÊ•û©©§è±±ÿX¼x¢EÑðÚ>àc÷‡Á`Áç³RR¤ÅÅ[ëëÿ•“#óó£ed”ÄÄd-_þïo¾¹üóÏ‹í?âÞ½{þþþ®–••1 FCVÛÛÛwîÜ9iÒ¤ààà3fääätwÿï–5u-îôxýíåË—ëÖ­3fLppðôéÓ/\¸ð¾=`Œ“’’‚ƒƒB=êןóëïþ`°²X:+*ÔÅóççòxÛ?ù$}éÒï(¯©i0™:z4>wîœ'ñ¼gÏ.—k41Æoß¾åñxJ¥’Tµµµ‰ÅâyóæUTT466–””DEEÅÅÅuww÷Y;0<œ#H }6£¼þ¦1µßjÚIDAT×ë9ÎÆkkkûì>»@ðµTš›–V˜ŸÿóÝ»­V›‡¹§³³S"‘lÚ´ cœšš:uêT›ÍFª Ell¬k¾4›ÍcÆŒ9~üxŸµòë äá¹›"ðúÛÖ­[×®]ëZ¢P(.\ø^üñÇý{ýÚ?äW}š´är¹·nÝr‰Éd"W¢c£Ñ¸aÃ6›ÍçóÓÓÓ­V+Æ!TPP ‹Y,ÖÁƒ1Æl6!Š]‚Üáp|ÿý÷‘‘‘!!!qqq—.]Bõz8¸ÎèæÍ›—.]Љ‰ âr¹999îú÷|xÞÚGÞÇ*øèýùgëO?Ýß¶í;ÏsÏîÝ»B®7èŒF#BH§Óõhyûöí‘#GR׺˯\½zõÓ§OÕjõ”)SvïÞMj/^\]]]QQÁf³»ºº0ÆÑÑчƒzØ_¡÷:w¿x¸¯8ÉÎÎŽŽŽV«ÕfæÌ™ …ÂÝVf³™Éd?~¼¥¥%??ßßßßl6“Ð5 ˜˜¸`Á‚¦¦&µZ-‘H²³³1Æ!™Lf4Oœ8zóæM¯A~âÄ >Ÿ_YY©Ó骪ªÂÃéó+™QKK ƒÁHNN~þüyAABèõë×î"‡çÅ}äEp¬‚!ÂóÜãp8–/_N§Ó“’’œ…ä4¤×ë{4¾uëÖ¨Q£¨kÝÄbqKK Y®ªªŠ‰‰!µjµcÜÝÝÍår¯]»†1^²dInn®çŒççî^÷'¥¥¥¤öáÇÎåw·2 ‡2‡Ãd2ÙívƒÁ€r^õö`³Ùètúýû÷Éjiiixx8Æ!TSSC”ÙkK$’ÂÂBgogΜ¡Î¯dF f³Ùn·ß¸qƒ¢χGý/ï«ü σ¿ÂÂÂëׯWWW—••‘Â#Fp¹ÜºººëêêÄb1u­k vùŠ`­VF£Ñh4Ú¢E‹?~LÊÉ&t:}ÕªU¥¥¥z½þêÕ«‰‰‰Þ&lz <ÔWœ|øÐu$¿ýöÛôéÓ-Ë«W¯ìv»H$"åáááä9&„ÇCP̨©©I"‘8W£¢¢z4ÀÿÿÙdF ã÷ߟ:uê©S§(úÿÀáùäWð÷òòåË´´´o¿ývÞ¼yYYY›7o~óæ ©JLLÜ·oŸÝn'«r¹üìÙ³¹¹¹r¹¼ÏZ„yWçÅ‹ÎÏ"—¶ä²F£±¶¶–”;O .\(**š;w®@ è÷Éß¡<ê8áñxZ­–”ÔÕÕíß¿ßÝVV«Õápœ?Þ`0lܸqéÒ¥äâuÙ²e‡vMu]]]Æ ¥ÓéÍÍͤ¼©©‰Ïç“e?¿¾³Ã§Ÿ~úàÁçjCCƒsùÝÃÁ9#«ÕºfÍš;v¨Tª¼¼<Šþ?px¾7ð—ÌôOî:ŽÏ?ÿ\*•ÚívŒ±Íf›8q¢\.'µ­­­qqq•••!‡ÓÙÙI]«ÓéBùùù­­­äò‚t˜––&“É´Zm}}ýÌ™3·mÛÖã!Éîîn‡úã?zkŽ`€yrï‘:ð¨ã$++kâĉF£ÑÌ™3'%%ÅÝVV«500°¸¸X§ÓýðÃäi ×¯_³ÙìÄÄÄ_~ù¥¾¾>;;!T^^NúY·nÝ‚ š››5MttôÞ½{1ÆÈå¦+rÿöرcàÊ•+z½þÚµk4­×áÇ#K4íòåËä…r„J¥" L&SÆïÃ÷Q€c žäžS§N1™ÌÆÆFgɯ¿þêççW\\LVÍfszzºD" ‰D™™™R©ÔùnE­R©1b„H$"÷ýHû¶¶¶/¿ü’Åb±ÙìM›6µ··¿ûBjjjPPP[[›·æ˜'çnêÀ£Ž“ŽŽ…BÁãñ†.—ËI}w+Œñ¹sçD"ƒÁ‹ÅeeeÎÓjµ2™ŒÇã…„„̘1ãâÅ‹Î*ƒÁ°~ýz6›¶}ûv纞äW»Ý~ôèQ‘H4|øðøøø²²²Ñ£GãÞ‡‘äÈ‘‘#G …¼¼<¹\ÎápºººæÎÜ£±‡Ãûð}Ôh~Q EEE$Õy·[›Í¦R©fÍšõj=‘™™©Õj =iÜOsbÍš5¡¢¢"_ÄÊËË…Bá¤I“ÈjII‰R©¼wïžoGõ._í£á6¾Ã`0(Ò'u-µŽŽŽæææ“'O¦¤¤üÕÑàKjµ:))I¥RY,–ÚÚÚ={ö|õÕW¾Ô ßï€oܹsgåÊ•[¶l™?¾¯ÇÀ_±sçN‹Å²bÅ N7nܸäääÍ›7ûzPƒäW|C*•’Ç;øHùûû+•J¥Réë Rpð>ȯ€÷A~¼ò+à}_ïƒü x¼Ÿ†æë!€¿óçÏCà r ÿ¡ðýˆ`ˆxöì™ó‡G†6Ÿœ)€;·oßvþh´ÁìÙ³øC!¿Þ¼ò+à}_ïƒü xߘª½îIEND®B`‚XQilla-2.3.0/docs/simple-api/classQueryPathTreeFilter__inherit__graph.map0000644000151400015140000000037511653571064023466 00000000000000 XQilla-2.3.0/docs/simple-api/classATDurationOrDerived__inherit__graph.md50000644000151400015140000000004011653571063023270 0000000000000001589cb24a3db95e8cf80a0a67388c51XQilla-2.3.0/docs/simple-api/classATFloatOrDerived.html0000644000151400015140000014525411653571064017650 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATFloatOrDerived Class Reference

#include <ATFloatOrDerived.hpp>

Inheritance diagram for ATFloatOrDerived:

List of all members.

Public Types

typedef RefCountPointer< const
ATFloatOrDerived
Ptr

Public Member Functions

virtual const XMLCh * getPrimitiveTypeName () const =0
virtual const XMLCh * getTypeURI () const =0
virtual const XMLCh * getTypeName () const =0
virtual const XMLCh * asString (const DynamicContext *context) const =0
virtual Numeric::Ptr promoteTypeIfApplicable (AnyAtomicType::AtomicObjectType typeIndex, const DynamicContext *context) const =0
virtual Numeric::Ptr add (const Numeric::Ptr &other, const DynamicContext *context) const =0
 Returns a Numeric object which is the sum of this and other.
virtual Numeric::Ptr subtract (const Numeric::Ptr &other, const DynamicContext *context) const =0
 Returns a Numeric object which is the difference of this and other.
virtual Numeric::Ptr multiply (const Numeric::Ptr &other, const DynamicContext *context) const =0
 Returns a Numeric object which is the product of this and other.
virtual Numeric::Ptr divide (const Numeric::Ptr &other, const DynamicContext *context) const =0
 Returns a Numeric object which is the quotient of this and other.
virtual Numeric::Ptr mod (const Numeric::Ptr &other, const DynamicContext *context) const =0
 Returns the arithmetic product of its operands as a Numeric.
virtual Numeric::Ptr floor (const DynamicContext *context) const =0
 Returns the floor of this Numeric.
virtual Numeric::Ptr ceiling (const DynamicContext *context) const =0
 Returns the ceiling of this Numeric.
virtual Numeric::Ptr round (const DynamicContext *context) const =0
 Rounds this Numeric.
virtual Numeric::Ptr roundHalfToEven (const Numeric::Ptr &precision, const DynamicContext *context) const =0
 Rounds this Numeric to the given precision, and rounds a half to even.
virtual Numeric::Ptr invert (const DynamicContext *context) const =0
 Returns the Additive inverse of this Numeric.
virtual Numeric::Ptr abs (const DynamicContext *context) const =0
 Returns the absolute value of this Numeric.
virtual Numeric::Ptr sqrt (const DynamicContext *context) const =0
 Returns the square root of this Numeric.
virtual Numeric::Ptr sin (const DynamicContext *context) const =0
 Returns the sinus of this Numeric.
virtual Numeric::Ptr cos (const DynamicContext *context) const =0
 Returns the cosinus of this Numeric.
virtual Numeric::Ptr tan (const DynamicContext *context) const =0
 Returns the tan of this Numeric.
virtual Numeric::Ptr asin (const DynamicContext *context) const =0
 Returns the asin of this Numeric.
virtual Numeric::Ptr acos (const DynamicContext *context) const =0
 Returns the acos of this Numeric.
virtual Numeric::Ptr atan (const DynamicContext *context) const =0
 Returns the atan of this Numeric.
virtual Numeric::Ptr log (const DynamicContext *context) const =0
 Returns the atan of this Numeric.
virtual Numeric::Ptr exp (const DynamicContext *context) const =0
 Returns the exp of this Numeric.
virtual bool isNaN () const =0
virtual bool isInfinite () const =0
virtual bool isZero () const =0
 Does this Numeric have value 0?
virtual bool isPositive () const =0
 Is this Numeric positive?
virtual bool isNegative () const =0
 Is this Numeric negative?
virtual
AnyAtomicType::AtomicObjectType 
getPrimitiveTypeIndex () const =0
virtual const MAPM & asMAPM () const =0
virtual State getState () const =0

Member Typedef Documentation

Reimplemented from Numeric.


Member Function Documentation

virtual Numeric::Ptr ATFloatOrDerived::abs ( const DynamicContext context) const [pure virtual]

Returns the absolute value of this Numeric.

Implements Numeric.

virtual Numeric::Ptr ATFloatOrDerived::acos ( const DynamicContext context) const [pure virtual]

Returns the acos of this Numeric.

Implements Numeric.

virtual Numeric::Ptr ATFloatOrDerived::add ( const Numeric::Ptr other,
const DynamicContext context 
) const [pure virtual]

Returns a Numeric object which is the sum of this and other.

Implements Numeric.

virtual Numeric::Ptr ATFloatOrDerived::asin ( const DynamicContext context) const [pure virtual]

Returns the asin of this Numeric.

Implements Numeric.

virtual const MAPM& ATFloatOrDerived::asMAPM ( ) const [pure virtual]

Implements Numeric.

virtual const XMLCh* ATFloatOrDerived::asString ( const DynamicContext context) const [pure virtual]

Implements Numeric.

virtual Numeric::Ptr ATFloatOrDerived::atan ( const DynamicContext context) const [pure virtual]

Returns the atan of this Numeric.

Implements Numeric.

virtual Numeric::Ptr ATFloatOrDerived::ceiling ( const DynamicContext context) const [pure virtual]

Returns the ceiling of this Numeric.

Implements Numeric.

virtual Numeric::Ptr ATFloatOrDerived::cos ( const DynamicContext context) const [pure virtual]

Returns the cosinus of this Numeric.

Implements Numeric.

virtual Numeric::Ptr ATFloatOrDerived::divide ( const Numeric::Ptr other,
const DynamicContext context 
) const [pure virtual]

Returns a Numeric object which is the quotient of this and other.

Implements Numeric.

virtual Numeric::Ptr ATFloatOrDerived::exp ( const DynamicContext context) const [pure virtual]

Returns the exp of this Numeric.

Implements Numeric.

virtual Numeric::Ptr ATFloatOrDerived::floor ( const DynamicContext context) const [pure virtual]

Returns the floor of this Numeric.

Implements Numeric.

virtual AnyAtomicType::AtomicObjectType ATFloatOrDerived::getPrimitiveTypeIndex ( ) const [pure virtual]

Implements Numeric.

virtual const XMLCh* ATFloatOrDerived::getPrimitiveTypeName ( ) const [pure virtual]

Implements Numeric.

virtual State ATFloatOrDerived::getState ( ) const [pure virtual]

Implements Numeric.

virtual const XMLCh* ATFloatOrDerived::getTypeName ( ) const [pure virtual]

Implements Numeric.

virtual const XMLCh* ATFloatOrDerived::getTypeURI ( ) const [pure virtual]

Implements Numeric.

virtual Numeric::Ptr ATFloatOrDerived::invert ( const DynamicContext context) const [pure virtual]

Returns the Additive inverse of this Numeric.

Implements Numeric.

virtual bool ATFloatOrDerived::isInfinite ( ) const [pure virtual]

Implements Numeric.

virtual bool ATFloatOrDerived::isNaN ( ) const [pure virtual]

Implements Numeric.

virtual bool ATFloatOrDerived::isNegative ( ) const [pure virtual]

Is this Numeric negative?

Implements Numeric.

virtual bool ATFloatOrDerived::isPositive ( ) const [pure virtual]

Is this Numeric positive?

Implements Numeric.

virtual bool ATFloatOrDerived::isZero ( ) const [pure virtual]

Does this Numeric have value 0?

Implements Numeric.

virtual Numeric::Ptr ATFloatOrDerived::log ( const DynamicContext context) const [pure virtual]

Returns the atan of this Numeric.

Implements Numeric.

virtual Numeric::Ptr ATFloatOrDerived::mod ( const Numeric::Ptr other,
const DynamicContext context 
) const [pure virtual]

Returns the arithmetic product of its operands as a Numeric.

Implements Numeric.

virtual Numeric::Ptr ATFloatOrDerived::multiply ( const Numeric::Ptr other,
const DynamicContext context 
) const [pure virtual]

Returns a Numeric object which is the product of this and other.

Implements Numeric.

virtual Numeric::Ptr ATFloatOrDerived::promoteTypeIfApplicable ( AnyAtomicType::AtomicObjectType  typeIndex,
const DynamicContext context 
) const [pure virtual]

Implements Numeric.

virtual Numeric::Ptr ATFloatOrDerived::round ( const DynamicContext context) const [pure virtual]

Rounds this Numeric.

Implements Numeric.

virtual Numeric::Ptr ATFloatOrDerived::roundHalfToEven ( const Numeric::Ptr precision,
const DynamicContext context 
) const [pure virtual]

Rounds this Numeric to the given precision, and rounds a half to even.

Implements Numeric.

virtual Numeric::Ptr ATFloatOrDerived::sin ( const DynamicContext context) const [pure virtual]

Returns the sinus of this Numeric.

Implements Numeric.

virtual Numeric::Ptr ATFloatOrDerived::sqrt ( const DynamicContext context) const [pure virtual]

Returns the square root of this Numeric.

Implements Numeric.

virtual Numeric::Ptr ATFloatOrDerived::subtract ( const Numeric::Ptr other,
const DynamicContext context 
) const [pure virtual]

Returns a Numeric object which is the difference of this and other.

Implements Numeric.

virtual Numeric::Ptr ATFloatOrDerived::tan ( const DynamicContext context) const [pure virtual]

Returns the tan of this Numeric.

Implements Numeric.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/inherit_graph_19.md50000644000151400015140000000004011653571063016357 000000000000006cbf79cb1fc889d051ed3f833a0b9612XQilla-2.3.0/docs/simple-api/ATStringOrDerived_8hpp__incl.md50000644000151400015140000000004011653571063020625 000000000000003ef9caa823cd10329007634c41ee74c0XQilla-2.3.0/docs/simple-api/DebugListener_8hpp.html0000644000151400015140000000630711653571064017212 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

DebugListener.hpp File Reference

#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/exceptions/XQException.hpp>
#include <xercesc/util/XercesDefs.hpp>
Include dependency graph for DebugListener.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  DebugListener
 A class used to listen for debugging information. More...
XQilla-2.3.0/docs/simple-api/classxercesc_1_1MemBufFormatTarget__inherit__graph.map0000644000151400015140000000057311653571064025266 00000000000000 XQilla-2.3.0/docs/simple-api/Node_8hpp__incl.map0000644000151400015140000000070111653571064016310 00000000000000 XQilla-2.3.0/docs/simple-api/FastXDMConfiguration_8hpp__dep__incl.png0000644000151400015140000001007211653571064022421 00000000000000‰PNG  IHDR½u”w¾bKGDÿÿÿ ½§“ïIDATxœí{P×ÇohAHÁh$J`¥V ¥Nkí ´X«EJDЪ:Qt´0Uëƒ*ˆòT| ‚">:Ä* ‹Õ EÃcD†GHB²¿?v~뒄דXÎ篻gïžsöî7÷ÜìæAÃ0 À1ÐuÀ[ è è è ¼±hÑ"]åè?»víZ°`Þî§>ŸÿᇲX,]dè5ÅÅÅëÖ­#6é*»½½½.\¨ÕŒ€·ââbò&¬o*€n*€n*€n*€n*ŒX7.š »¶¶ÖÕÕ•¼P¿sç΢E‹J ??¿˜˜˜ŽŽr*e·oßîââÒØØˆo¶µµíÝ»×ÏÏoÉ’%aaa·oßi††EGG/Y²!ÔØØHùL‡Ã¿÷O>÷7êûðáÀf³©Åknn ËËËCÙÚÚÆÇÇúé§&&&ÝÝÝqqqAAA\.—H©T>þ<'''444==ÝÄÄßÛÒÒòôéS|³³³³ªªŠ$‹CBB¾øâ‹ÈÈHccãòòò={öDGGÏ;wøÙ¶µµñùü¬¬,„‰‰ÉÊ•+©õ@GãMøsP©SæææïõgøÇ*•J±XLl®ZµÊÌÌ,)) !”œœlaaáçç§ÈÒÒÒÑÑqÏž=l6;;;›ØëääDž«îÞ½ëàà@lžR©!„ß533 ÑáCB7áÿÍ1jë›ÒÒÒuëÖ¹»»{yy={7Þ½{788xñâÅþþþ¡ 6 „<==ñt:=""âÆgΜ¹qãFDD®y ¤ÑhË—//++#, .,..&JÕ­[·ˆ»à¡’’///²‡   mÛ¶áí®®®ØØØï¾ûÎÛÛûøñã2™ !äââÂç󃂂–/_~þüy•l‰:‚aØ•+W¾ÿþû¥K—þôÓO¥¥¥x ª ÑÆ•••¾¾¾=R"þ‡Ÿž:Ë–-;sæ áóÎ;«V­Z±bE||¼\.×hâêªAE7½½½ …¢§§ç矶µµÍÌÌ OIIéèèèí튊òðð8þüªU«~ýõ×ÞÞÞÄÄD„Pnn.ámæÌ™¾¾¾©©©«W¯ž>}ú q9NSS±ùÑGI$’§OŸ"„º»»+++çÏŸïêêêjooŸ6mùðqãÆPŽ9ÒÚÚzâĉýû÷ß¿ÿܹs¸ý?þ8vìØúõë“’’:;;Õ³E]¿~=##cãÆgÏž 8vìØàÃuáÂ…ˆˆ+++õ!Òèøé©Ç*//OIIÙ¶m[jj*1“]¾|9&&fß¾}åååÄKZ£qøPÑMHHÈ7$îÝ»Ç`0ÒÒÒ6oÞlaa_›îîn¹\Ža˜D"a0îîîùùùFFFêÞ0 khh000xöìÙÈR70pvvÆKUiiéœ9s&L˜@øDÑh4öõõݼysÓ¦Ml6›Ëå®Y³¦°°ßåááabbòõ×_#„Èõ”LNNNXXØÜ¹sÍÌÌœœœÖ¬Y3xž¡¡¡ŽŽŽ&LP¢QOÏ×××ØØøË/¿D çp8vvv!!!„+ÆáCe]œ™™iee¥b …”H$¶¶¶¸ÅÔÔ4..îâÅ‹'Ožœ9s¦¿¿ÿgŸ}¦îÏçÿõ×_qqq<oÁ‚Äœ¡ŽP(œ2e Ù²pá«)SSS&“ÙÐÐ0{ölÂøäÉ“ß~ûíÈ‘#b±X©T®¬¬¬Z[[ñ¶¥¥%Bh Z‰ÓÔÔDžßÿ}•*ïòðiN§«‘FD"åô,,,Ú †Ãá™®4‡Ïè¬o¤RiTT”ŸŸ_rrò?þH•JeTTT~~þ7ß|³sçNõ©µ­­->>>,,ÌÞÞ>((èСC½ÊñUÅçŸN6Ι3§§§çÑ£Gø‹Œ`þüùYYYäKXXXØ××gddÄd2 š››q{SS~=ÐÀS™I“&Õ××› D[¡P „^¾|Iî_fC¤‘“žÆB¡o<þÖ@Æá3:º‘Ëå}}}t:]&“lgggnnNÞ\UUµoß¾êêj@púôéÜÜÜ„Nwqq9zôhsss}}}ZZš››ÛðOÖÃÃ#))©¢¢B,?xðàÔ©S4 ¿;PPPÐÓÓ£¾^hˆÈ£A0¢ô®]»6P½#HHHhll|òäIjj*ñ+ÆáC¥N©cbb¾wïÞqãÆùûû»ººnÛ¶íÒ¥K;vìHJJzñâÅ”)S"## ÆäÉ“çÌ™ãååuýúõ‚‚‚ŠŠŠôôtüUB§Óy<Þ† œB?üðîŸÅbÙÛÛ'''?^%´‹‹K^^ÞŠ+TìæææÉÉÉÇŒŒ”H$Ó¦M‹ŽŽ&¦«-[¶$$$„……~õÕWÃ?Y…B÷êÕ«Ù³g‡……8pÀÌÌ,88811133sãÆê÷5ÑÅ‹‰Ñ w~ztppP2nnn[·níííuuu À«’Šqø§C#Ïä4-22>38¥¥¥,kÆŒøfIIIFFFJJŠn³ÒHccc```QQÑÆ!qqqÉÊÊ"æ{x>5bAtttmm­T*ýûï¿ÓÓÓñ:;¦:5¦ðóóëííݵkWGG›Í^²dɲeËt”fƯž›FãH: ¨SÀ(º¨º¨º¨º¨º'OÚt‚þ¢zÿ&##ãêÕ«:IEßhmu`2ŸÐ齺NDé§ooo]å¡oH$ô¦&Óqã>˜:UÃÇ£Æ \.wêÔ©Ä& ~§M#܈‹+°¶¶(-Ý¥ë\ôXßh&;û>B¨¡¡íñã¦!;A@7xðà™P(B¾““ó§®ÓÑG@7¸|¹’N!$—+²³ï+•PÊUݨ¢P(/^¼ß×§À7[[;ïÝè6%=t£JiiHÔCl¾séR¥óÑO@7ªäæVÒ鯇E.WäåUÊå ¦¤‡€nú!“õ]¹òW_Ÿ’l‹¥%%5ºJI?ÝôãæÍljTÅH§Órsá]U?@7ýÈÍýÓÀ@uLúú”ׯWõôÈt’’~ºyMW—´  Z¡Pªï’Ë|~µöSÒ[@7¯),¬–ÉúÚ ïªÈ€n^sùò€ÊP*±¢¢Çb±d c x®ù¡PD.RóæíݳÇÓÍíCÂ2y²™‘|s!øþ‡©b™8ÑÔÚzÄß¹ @¨º¨º¨º¨º¨º¨º¨º¨º¨º¨º¨º¨º¨º¨º¨º¨º¨º¨º¨º¨º¨º¨º¨º¨º¨º¨º¨º¨º¨º¨º¨º¨ ¥ßM|>_;±F>ŸßÒrO×YŒ.—ëææ¦H˜VÈÊÊÒÆÉŒ*††,#]g12¼½½µsAµú;mü–à›ÄÇÇGk±`}PtPtPtPtPtPá­ÔM]]FÓØø—µp8F«««£KOx+ucnn¾}ûv}vøŸç­Ô¥¥ell¬>;üÏ£Gº¹r劕••H$B;wnæÌ™ÝÝÝJ¥2!!ÁÎÎÎÔÔtÞ¼yEEEø‡ ¤c´ó8>5d·Õ«Wµ´´Lš4©¼¼ð¤¤$‹•››ÛÔÔtíÚ5‡ƒª­­Å½©7Äb1ƒÁX»v­P(ÌÌÌD½xñ‚¢««ËÈÈèĉÍÍÍiiit:½««‹8Ã0„ÐÊ•+Åbqjj*BÈÇÇG,'%%!„^¾|‰÷\¼xqMMMYY™MTTùðýû÷{yy={öìáÇŸ|òIDD„Ê9"„¾ýö[±Xœ““3¤Oãà£çíí­µçSú¥‘HÄápìíí‰1š={ö©S§ˆ§OŸ\7R©ôñãÇ]]] …âÖ­[xgrˆöövCCÊD"¥RÙÙÙ©P(TtSYY‰a˜L&Si×ÖÖâ=>|Hœ— ùðY³f577ãíÂÂB•sDc¦P(†ô©b|ô´©=ªS!ssóÐÐÐêêêððpÜ"ˆöööƒ{`0555îîîNNN§N"ì´ÿÃd2‹ŠŠÊÊÊ8΂ nß¾­þG¬¦¦¦!CCC•6­­-Þ˜5k–P($ïúçŸØl6kÑ¢EõõõêIN™2!¤W£ÏAéýÒÍóçÏÜÜܶnÝŠ[¬¬¬ªªªˆÕÕCü9ªD"ñññáñx•••‰‰‰„x¡H$¥R™ÝÞÞ¼lÙ²ööö‘æ‰O¡šš\–––Ä '‰ÊÊÊÔ׸8Óès@ºEt£T*×®]»iÓ¦sçÎñùüüü|„ÐÚµky<^^^^KKËï¿ÿ1¸©T*“É †D"‰ŒŒDuvv’;Ðh´Å‹çääˆÅb™Lfhhhll<ÒT·lÙRWWwÿþý;w’wyzzîØ±£¡¡ááÇîîîÇŽC¥¦¦¾zõŠ‚ÏAéí”Ãá¬oâãã?þøc™L†aØ¥K—Ølv{{»L&ûå—_¦OŸnbb2oÞ¼³gÏ¢A×7†>|ø½÷Þ›:ujbbâÊ•+Y,–z23fÌ`0³fÍÊËËS9‘–Dêm¼gjjªµµµ¥¥å¦M›$ ùp±X¼fÍ&“iaaÚÝÝýo|ªÀ±».òÒ o">)»ëbàmt32&L˜°~ýz-ø|F-ýø… |}}µkÌ‚¾øÂ… Zˆó @Ð @Ð @Ð @Ð @­~_399Y›áÆ€Ëåj'–Vu£Ï7$þhM7ZºüÇ€õ @Ð @Ð @Ð @…ÿ¨žjD±ÌIEND®B`‚XQilla-2.3.0/docs/simple-api/inherit_graph_36.map0000644000151400015140000000024611653571064016457 00000000000000 XQilla-2.3.0/docs/simple-api/classxercesc_1_1StdInInputSource__inherit__graph.md50000644000151400015140000000004011653571064024712 000000000000006aec9691110ff9c1be2a76f13dc8bb2dXQilla-2.3.0/docs/simple-api/EventHandler_8hpp__incl.map0000644000151400015140000000003511653571064020002 00000000000000 XQilla-2.3.0/docs/simple-api/ATDurationOrDerived_8hpp__dep__incl.png0000644000151400015140000001421311653571064022242 00000000000000‰PNG  IHDRµÃKJÇ"bKGDÿÿÿ ½§“@IDATxœíkTSWÚÇw$¡Ü‰á¼@P¬Ûq,:,Gì DD–8‚´¢« ÖZ/Lm«®ª]SAP¥R@®ö*ò:U.-mã"×HP0Ñ ävÞ§sCØB*&Êó[|Øç9ûÙûÎùgï}NB#ÀLÒ·À 8Àð€ƒ®¾±dÉ}é ‡]»v-^¼˜,?æÊÊÊ—_~™ÅbéC`\ºtiÆ Ô&]cwXXØë¯¿þL†Ä¥K—Ô7aýà8Àð€üàм%§OŸÎÎÎÞ°aÃêÕ«ÉHUUÕ¾}û†×ÌÌÌT¿_²··Ÿ;wnBB‚µµµn]kpçÎ5kÖTWW5qpp0''§¡¡A L:Õ××wÕªUFFFÕüýý©òXÅë¬ ß‚¿¿nn®³³³ÎÍŽ]üADUU‹Åª®®¦ü±pᢢ"„@ Ø´iYFYZZ"„RSSU*UWWWQQQ\\Ü©S§ÌÍÍu-6nÜXVV†277ŒŒk  666ñññNNNmmm'Ožüá‡>Ÿ š˜˜ØÚÚÚÚÚ’¯-ÛÿA§ÓBÖÖÖ¶¶¶L&ÓÛÛ{ß¾}ŽŽŽ………:‹V©Tb±˜,[YYÅÅŵ…Ó§O[[[9räÕW_e³Ù¾¾¾ééé===ß|óÍðÊ:‹×M›A¡‹?ªªªæÎëãã3uêÔªªª±¦Óh´+VÔÖÖ"„îܹC àT™,466FDD\»víêÕ«6l ={ö,Bè­·ÞB­\¹R£‰DràÀ7Þx#,,ìøñã2™ !äïï_YY³bÅŠ/¾ø‚¬YQQ±víZõ¡bòäÉ«V­ª¨¨Ðè#!¤P(ÒÓÓCBBBBBÒÓÓ …zú·ß~KjÛµkWZZ™"—˃ƒƒÉ†§«Tª/¾ø"::zÙ²e›6mjjjÒzøá‡¨¨¨àààÏ?ÿœ: ßÿ}tttHHÈÑ£Går¹ÖàX/Ö˜ýAN.!???Ý&W6›ÝÝݯSPP°cÇggç={ö¸»»çææ&$$dff>xð€<×ÅÅÅ)ÿú׿z{{ÓÓÓ<ØÐЗ—GÆÿóŸÿ;v,>>>##£¿¿_"‘…B‡£‘Îáp:;;Õ{wwwÇ‹?wîœ@ ÈÈÈ8|øpcccvv¶Öô€€€ššò£X &&&óçÏך^TT”ŸŸwæÌ™èèèôôt­'§®®.33sûöíYYYÔPZZZºÿþ?þ¸®®Ž|!=cöÇ­[·îÝ»ççç‡òóókoookkk#£!..ÎÛÛÛÒÒòäÉ“›7o¶³³#ßzôè‘Öú …¢ªª*11ÑÑÑÑÕÕuݺu䮿ÿýïæææýë_BÔÙFS©Tê½Ož</ò›o¾Ù²e ‹Åruu¯¯¯×šþç?ÿY,ÿ÷¿ÿE]¼x1((ˆ\O///߸q£¯¯¯Ýk¯½6Òôaff¶hÑ"„P?LHH`³Ù³gÏþÇ?þA»Öàèóú´ªªJ©T¾ñÆT¤ººzÆŒcj„Ïç;99i5>é8uêT„Nçóù‡’J¥Z_Í"‘H¥RQÍ:;;÷öö’e&“I6Enš››ÛÚÚòx<õx<ÞÌ™3Õ{¢øžžžÐÐPj×K/½¤5ÝÄÄdáÂ…555Ó§O¿råJffæHé …B}`suuÕªÁÎÎ!D£ÑÔƒl6›ê:v­ÁÑ36¨Tªêêê·Þzkùòåd$;;»ººzݺuZ1Q^^þ§?ý‰Š(•J##£¾¾¾Ç”Ñé¡¡¡¡”””””” Èår­ëG›I“& ‚iÓ¦!„º»»I[ aç!xúôioooj 288˜——G]-ÊLxñVVVŸ~ú)y«IN[#¥=z”ÃáÌœ9“ºfÃÓ÷ìÙsûöm777²B{{»VZÏ6ŸÏ'ýÔÕÕEh¤àèÛüÂårE"Ñ’%KLÿG`` ŸÏçñxøÄ…¾¾¾_~ùe÷îÝ <<!DÞ%^¸pa```øz!$—Ë N—Édäì>00@î’J¥ê5étº¿¿ÿgŸ}&ÈûÕÀÀÀ‘ôÄÄĈD¢­[·Ö××óùüË—/'$$0™Lõqñ‰âB¾¾¾™™™wïÞmmmݾ}{iiéH=Ο?_"‘äää,[¶Œ O_±bÅñãÇ¿ÿþ{¡PX__êÔ)²æW_}5ÒÄJ‘ššzçÎ[·neeeQåÑ=c?ªªªæÍ›§þtÈÝÝÝÉÉ©ºº?øoÚ´‰,°X,OOÏ'NC±••ÕúõëÓÒÒrssß~ûíË—/k$š››'$$|øá‡¦¦¦«W¯ؾ}û¹sçþð‡?„††~ýõ×ê•·lÙ’ššºqãFƒñ—¿ü%**j$=fff'NœÈÎÎNOOïîîvtt  c0£Z¿~}jjê† h4šŸŸ_||¼Æ(HA§Ó/^|ñâEê£7ZÓ †\.?~üøýû÷ÝÜÜvïÞMÞ¬:tÈËË‹êW+Û¶m ˆŠŠ"g &]+4õYŸF£íÝ»>ÿñÜ¡õ1«nOoýýýóóó©Þp€?^^zé¥àààÑÇ øãEÀÚÚzëÖ­£ Žð€üà8Àð€üñ·nÝ×·ÃBóùú™3g¾üòK½H1z{½llnÑéƒúb(<æ°°0}é0¤Rzw·…©é,—~}kÑ®®®...Ô& þ¿Å'Ÿ|ó駦M³»zu—¾µ °þøÂ„PGÇý¦¦'|öqâþø•Ÿ~êäóE!è¨èG}Ë1À¿RZÚH§!„äreaaƒJÓ.Bà¥Ruî\ƒB¡$7{{ûëë[õ+É@ „ÐÕ«<‘h€Úd0ŒJJõ¨Çp „Pqq#þÛ©Ë•eer¹R’ ð’Éåå?+*õ X<ôÿ׬/I†øUU5I¥CA:V\ w1à„Š‹þ}…Bõõ׿ Èô"Ép˜èþH†.\¸¡Tª†ï’Ë•••7ž½$ƒb¢û£¢â†L¦i/ÜÅLt”–Žè•Ѝ®n‹¥#U˜Lô÷çø|‘úä²`Á‡ûö­ |™Š88X™˜èø_¸^&î‘“°Ù6‘)S,¦Mó÷˜_T&úüà8Àð€üà8Àð€üà8Àð€üà8Àð€üà8Àð€üà8Àð€üà8Àð€üà8Àð€C—ÿSYYÙÚúÂþûéÊÊÊžžz}«âââÆœCŒøg„ Ö¤I&úV1^èp­uœ_ÂÂÂtèÌð‘Éî*•ƒúVñôÉÏÏ×íBÃúÀþp€?àøÀþpŒ£?hjLŸ>}íÚµ½½½ã×:<F£áëtww¯^½zúôéæææóçÏ/))y6Ú0Ðh4§o1¾ãÇ•+WŸÏÏÎ΋ÅóæÍ{ðàÁ¸öHbmmýî»ïb*Ü¿ßÛÛÛÌÌ,??¿¾¾~ÕªU‘‘‘ß}÷ݘzimme2™cÕ¦[–ÞÐáaKXXØhž!„ZZZ¨M•Jåçç·gÏz|ê¼ýöÛꑤ¤¤ÀÀÀ15ÒÒҢà Ädiœ±§ù|L‡Ägç‚ Ξ=ëããCDbbbll,ìïï755mll$Srss=<ŸŸ››‹ºwïY322R,gee!„ÂÃÃÅbqFFB¨¯¯òÇ'Ÿ|2gÎ.—{íÚµ×^{-))‰ ‘H„"/›V¢¢¢nß¾Íår_yå•””­Ú4F‚ƒ†††vvvr¹Üyóæíرƒ ˆµkׯÄÄôôôØÛÛ×ÕÕO?–/_.‹‹ŠŠÔdéÒ¥ÍÍ͵µµ'%%Ek-ž3( ‡‹/±lÙ²P)ÕÕÕAÈd22}hh¨©©I"‘(•ÊššªM„9ä5ÕË---Ô5˜5kVqq1ÙøÍ›7ɲP(DQc‰2™ÌÈÈèúõëäfqq1‡ÃѪMãJ{xx²\QQáååE„H$b³ÙžžžÔ%ÄûãÒ¥KA(•Jõ.¸\.Y!??ŸÃáh ⯅Îþx¦÷·---nnn!##£•+W÷õõUVVFEEQuœœœB ƒÜ466nnn òññÉÉÉQoÍ‚ª©^V§££ÃÝÝ,Ïž=;$$!dcccooóæMõš óçϸ{÷®R©$u"„8ŸÏתMƒöövGGGò~mÉ’%mmm!kk븸¸7n$$$Œæ‘]hü^"u”­Á§Î³óAÇÿÛßþFn†……•””,Z´ˆÍfÿ&èñS#•JÃÃÓ““ÓÒÒÆÚ©““S{{;YþùçŸ?úè#²¼bŊÇj¿•››+—ËÍÌÌìí파¨¸Ü¾}ÛÙÙY«6 ˜L&5^ŠD¢ÚÚZ„PWWWjjj``à¶mÛF#Xëm99` „š››I|ꌯ?z{{{zzîܹSSSÒÖÖ¶uëVr—¯¯¯B¡øàƒ¢££1- Éd2ccc©Tºwï^„PÿèDGG¿ÿþûׯ_¿~ýú¦M›:::ÈøG}TSS}åÊ.—ûÏþó³Ï>#ÝÃ`0"""6oÞÜÖÖvýúõ]»v©oÑH$daåÊ•ï½÷^GG—Ë :vì˜J¥ŠMLLÌËË«¬¬<þü𬬬¬‡âbË–-<¯¡¡açÎkÖ¬ÁŸ>:ÌI£_P¸¸¸DEEݽ{W½ÂÆMMMÅb±z õ¤ÊGޱµµuqqIKK‹ŒŒd±X#Õ¤ÊÔ?88˜””ääädee©¾æhooóÍ7œœ,,,^}õÕòòrj—P(ŒŽŽ¶³³stt|çw¨û^ärù¢E‹ÌÍÍÉ X,^·n]\\Ü£GŽ=:wî\™LFDII‰£££P(ÔÈÍdeeM›6Éd&&&J¥R­Aüµ0ÄõéÙ¹sçêÕ«;/0Z³:€üà8ÀðÇcôõIô-Á°Ðñþ¥µµõĉOWŠ!PXx'8Øaòd#} yÊüøã:fêðLíEýþí¤I&‰¦¦³õ-d¼ÐáZÓˆÇß(™È|þùÕää‚… Ý ßÒ·CÖ¿QTô#B´ÚZÞýû° ùðǯôô<¬«kEˆ@ˆVVö“¾å à_)+ûÉȈ†R©ˆ‚‚}Ë1À¿RXØ T!‚ ®]ãwvÞ×·"ƒüB­­½7ovSKu##˜b~üB%%túoÏ<”J¢°¦„À$…… …’Ú$‚Ç»×Ô$У$ü´®6èt£ÒÒF½è1(À¨´´‘ÁÐ| ®P( êáááD÷‡JEœ;÷ƒ\®¾ëî]qccdz—dPLtÔÕµööjÿB nTR2ѧ˜‰îóçBÓ‡ÿ©TDyùOJ¥Jßõ‰~>Ÿl8¼ò ûý÷—S›‡?77!tïÞ=õ.$‰‰‰Izzº@ 8yò$N—H$T:A¡ÈÈH±Xœ••… ‹Å¡¾¾>²æÒ¥K›››kkk9NJJŠzúÁƒCCC;;;¹\î¼yóvìØ¡qŒ¡åË—‹Å⢢¢'¶©ÄŸ½°°°q}ÿEÿþ‰Dl6ÛÓÓ“:sæÌÉÉÉ¡*üûßÿÆûchh¨©©I"‘(•Êšš²²zB¡Á`:tH$©Tªþþ~¥R©áÆÆF‚ d2™F¹¥¥…¬Éår©ãâp8êé€,WTTxyyi#BèÒ¥KA(•Ê'¶©ÄŸ½ñö‡þ×ÖÖÖqqq7nÜHHH #­­­^^¿ý‹§§'¾ccãæææ   Ÿœœ*Nû666ÕÕÕµµµl6{ñâÅ—/_ž4IóÀ-,,B C£LáîîN<<<ø|¾ú®öövGGG²¯%K–´µµ éää„ÒèWk›˜Žž=ú÷GWWWjjj``à¶mÛȈ³³ó/¿üBU¸q㾩TžœœÜØØ˜––FÅ©T*U©T………B¡pýúõÁÁÁB¡p¬:É7B¨¹¹™¼ØL&“±D"Qmmíðt­‹'­mb:zöèÙ*•*666111//¯²²òüùó¡ØØØäää²²²žžžo¿ývÇŽøF†††d2™±±±T*Ý»w/B¨¿ÿ±Ÿ¤ÑhK—.-**‹Å2™ŒÁ`˜™™Uê–-[x<^CCÃÎ;׬Y£¾kåÊ•ï½÷^GG—Ë :vìB(++ëáÇ:´‰éHŒßÔ5šõÇÑ£GçÎ+“É‚())qtt …2™ìƒ>˜1c†¹¹ù‚ Ξ=‹°ë‚ Ž9bkkëââ’––Éb±†‹qss366öðð(++ÓHGjK–áe²fVVÖ´iÓ˜Lfbb¢T*UO‹ÅëÖ­³±±±³³‹‹‹{ôèÑïiS#ˆ?/þúô‰¨_ ½0´¶©CG/þú0dÀOÆÒÒ2>>þ´9ýNÆñ÷M """Ư}!ŽÆóC¾0~8Àð€üà8ÀŽqÿþÜïùŒ'0ÆõŠãøü£««Kë;™ÀÓ…Íf/X°`œG/°þp€?àøÀñÿÞB"Y¦IEND®B`‚XQilla-2.3.0/docs/simple-api/ExternalFunction_8hpp_source.html0000644000151400015140000002410611653571063021322 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ExternalFunction.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _EXTERNALFUNCTION_HPP
00021 #define _EXTERNALFUNCTION_HPP
00022 
00023 #include <xqilla/framework/XQillaExport.hpp>
00024 
00025 #include <xercesc/util/XMLUniDefs.hpp>
00026 
00027 class Result;
00028 class PendingUpdateList;
00029 class DynamicContext;
00030 class XPath2MemoryManager;
00031 
00032 class XQILLA_API ExternalFunction
00033 {
00034 public:
00035   class XQILLA_API Arguments
00036   {
00037   public:
00038     virtual ~Arguments() {}
00039 
00041     virtual Result getArgument(size_t index, DynamicContext *context) const = 0;
00042   };
00043 
00044   virtual ~ExternalFunction() {}
00045 
00046   const XMLCh *getURI() const { return uri_; }
00047   const XMLCh *getName() const { return name_; }
00048   const XMLCh *getURINameHash() const { return uriName_; }
00049   unsigned int getNumberOfArguments() const { return numArgs_; }
00050 
00052   virtual Result execute(const Arguments *args, DynamicContext *context) const;
00054   virtual PendingUpdateList executeUpdate(const Arguments *args, DynamicContext *context) const;
00055 
00056 protected:
00057   ExternalFunction(const XMLCh *uri, const XMLCh *name, unsigned int numberOfArgs, XPath2MemoryManager *mm);
00058 
00059   const XMLCh *uri_;
00060   const XMLCh *name_;
00061   const XMLCh *uriName_;
00062   unsigned int numArgs_;
00063 };
00064 
00065 #endif
00066 
XQilla-2.3.0/docs/simple-api/classAutoDelete-members.html0000644000151400015140000001001211653571063020213 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

AutoDelete< TYPE > Member List

This is the complete list of members for AutoDelete< TYPE >, including all inherited members.
adopt()AutoDelete< TYPE > [inline]
AutoDelete(TYPE *p)AutoDelete< TYPE > [inline]
get() const AutoDelete< TYPE > [inline]
operator TYPE *() const AutoDelete< TYPE > [inline]
operator*() const AutoDelete< TYPE > [inline]
operator->() const AutoDelete< TYPE > [inline]
set(TYPE *p)AutoDelete< TYPE > [inline]
swap(TYPE *p)AutoDelete< TYPE > [inline]
~AutoDelete()AutoDelete< TYPE > [inline]
XQilla-2.3.0/docs/simple-api/classAutoRelease-members.html0000644000151400015140000001005211653571063020375 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

AutoRelease< TYPE > Member List

This is the complete list of members for AutoRelease< TYPE >, including all inherited members.
adopt()AutoRelease< TYPE > [inline]
AutoRelease(TYPE *p)AutoRelease< TYPE > [inline]
get() const AutoRelease< TYPE > [inline]
operator TYPE *() const AutoRelease< TYPE > [inline]
operator*() const AutoRelease< TYPE > [inline]
operator->() const AutoRelease< TYPE > [inline]
set(TYPE *p)AutoRelease< TYPE > [inline]
swap(TYPE *p)AutoRelease< TYPE > [inline]
~AutoRelease()AutoRelease< TYPE > [inline]
XQilla-2.3.0/docs/simple-api/ATUntypedAtomic_8hpp__dep__incl.md50000644000151400015140000000004011653571063021327 000000000000007dead95e79f5ae96997346fc70b1a17aXQilla-2.3.0/docs/simple-api/ATDateTimeOrDerived_8hpp_source.html0000644000151400015140000004264411653571063021566 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATDateTimeOrDerived.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _ATDATETIMEORDERIVED_HPP
00021 #define _ATDATETIMEORDERIVED_HPP
00022 
00023 #include <xercesc/util/XMLString.hpp>
00024 #include <xqilla/items/DateOrTimeType.hpp>
00025 
00026 #include <xqilla/framework/XQillaExport.hpp>
00027 #include <xqilla/items/ATDecimalOrDerived.hpp>
00028 #include <xqilla/items/ATDurationOrDerived.hpp>
00029 #include <xqilla/items/Timezone.hpp>
00030 
00031 class XQILLA_API ATDateTimeOrDerived : public DateOrTimeType
00032 {
00033 public:
00034   typedef RefCountPointer<const ATDateTimeOrDerived> Ptr;
00035 
00036   /* Get the name of the primitive type (basic type) of this type
00037    * (ie "decimal" for xs:decimal) */
00038   virtual const XMLCh* getPrimitiveTypeName() const = 0;
00039 
00040   /* Get the namespace URI for this type */
00041   virtual const XMLCh* getTypeURI() const = 0;
00042 
00043   /* Get the name of this type  (ie "integer" for xs:integer) */
00044   virtual const XMLCh* getTypeName() const = 0;
00045 
00046   /* returns the XMLCh* (lexical) representation of this type */
00047   virtual const XMLCh* asString(const DynamicContext* context) const = 0;
00048 
00049   /* returns true if the two objects represent the same date,
00050    * false otherwise */
00051   virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0;
00052 
00055   virtual int compare(const ATDateTimeOrDerived::Ptr &other, const DynamicContext *context) const = 0;
00056  
00060   virtual ATDecimalOrDerived::Ptr getYears(const DynamicContext *context) const = 0;
00061 
00065   virtual ATDecimalOrDerived::Ptr getMonths(const DynamicContext *context) const = 0;
00066 
00070   virtual ATDecimalOrDerived::Ptr getDays(const DynamicContext *context) const = 0;
00071 
00075   virtual ATDecimalOrDerived::Ptr getHours(const DynamicContext *context) const = 0;
00076 
00080   virtual ATDecimalOrDerived::Ptr getMinutes(const DynamicContext *context) const = 0;
00081 
00085   virtual ATDecimalOrDerived::Ptr getSeconds(const DynamicContext *context) const = 0;
00086 
00090   virtual const Timezone::Ptr &getTimezone() const = 0;
00091 
00095   virtual bool hasTimezone() const = 0;
00096 
00101   virtual ATDateTimeOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const = 0;
00102 
00106   virtual ATDateTimeOrDerived::Ptr addTimezone(const ATDurationOrDerived::Ptr &timezone, const DynamicContext* context) const = 0;
00107 
00111   virtual ATDateTimeOrDerived::Ptr addYearMonthDuration(const ATDurationOrDerived::Ptr &yearMonth,  const DynamicContext* context) const = 0;
00112 
00116   virtual ATDateTimeOrDerived::Ptr addDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime,  const DynamicContext* context) const = 0;
00117   
00121   virtual ATDateTimeOrDerived::Ptr subtractYearMonthDuration(const ATDurationOrDerived::Ptr &yearMonth,  const DynamicContext* context) const = 0;
00122 
00126   virtual ATDateTimeOrDerived::Ptr subtractDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime,  const DynamicContext* context) const = 0;
00127 
00132   virtual ATDurationOrDerived::Ptr subtractDateTimeAsDayTimeDuration(const ATDateTimeOrDerived::Ptr &date,  const DynamicContext* context) const = 0;
00133 
00138   virtual ATDurationOrDerived::Ptr subtractDateTimeAsYearMonthDuration(const ATDateTimeOrDerived::Ptr &date, const DynamicContext* context) const = 0;
00139 
00140 
00141   virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0;
00142 };
00143 
00144 #endif //  _ATDATETIMEORDERIVED_HPP
XQilla-2.3.0/docs/simple-api/MemBufInputSource_8hpp_source.html0000644000151400015140000003325311653571063021411 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

MemBufInputSource.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  * 
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  * 
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: MemBufInputSource.hpp 553941 2007-07-06 16:14:22Z amassari $
00020  */
00021 
00022 
00023 #if !defined(XERCESC_INCLUDE_GUARD_MEMBUFINPUTSOURCE_HPP)
00024 #define XERCESC_INCLUDE_GUARD_MEMBUFINPUTSOURCE_HPP
00025 
00026 #include <xercesc/sax/InputSource.hpp>
00027 
00028 XERCES_CPP_NAMESPACE_BEGIN
00029 
00030 class BinInputStream;
00031 
00032 
00061 class XMLPARSER_EXPORT MemBufInputSource : public InputSource
00062 {
00063 public :
00064     // -----------------------------------------------------------------------
00065     //  Constructors and Destructor
00066     // -----------------------------------------------------------------------
00067 
00070 
00093     MemBufInputSource
00094     (
00095         const   XMLByte* const  srcDocBytes
00096         , const XMLSize_t       byteCount
00097         , const XMLCh* const    bufId
00098         , const bool            adoptBuffer = false
00099         , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
00100     );
00101 
00106     MemBufInputSource
00107     (
00108         const   XMLByte* const  srcDocBytes
00109         , const XMLSize_t       byteCount
00110         , const char* const     bufId
00111         , const bool            adoptBuffer = false
00112         , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
00113     );
00115 
00122     ~MemBufInputSource();
00124 
00125 
00126     // -----------------------------------------------------------------------
00127     //  Virtual input source interface
00128     // -----------------------------------------------------------------------
00129 
00132 
00143     BinInputStream* makeStream() const;
00144 
00146 
00147 
00148     // -----------------------------------------------------------------------
00149     //  Setter methods
00150     // -----------------------------------------------------------------------
00151 
00155 
00171     void setCopyBufToStream(const bool newState);
00172 
00182     void resetMemBufInputSource(const   XMLByte* const  srcDocBytes
00183                                 , const XMLSize_t       byteCount);
00185 
00186 
00187 private :
00188     // -----------------------------------------------------------------------
00189     //  Unimplemented constructors and operators
00190     // -----------------------------------------------------------------------
00191     MemBufInputSource(const MemBufInputSource&);
00192     MemBufInputSource& operator=(const MemBufInputSource&);
00193 
00194     // -----------------------------------------------------------------------
00195     //  Private data members
00196     //
00197     //  fAdopted
00198     //      Indicates whether the buffer is adopted or not. If so, then it
00199     //      is destroyed when the input source is destroyed.
00200     //
00201     //  fByteCount
00202     //      The size of the source document.
00203     //
00204     //  fCopyBufToStream
00205     //      This defaults to true (the safe option), which causes it to
00206     //      give a copy of the buffer to any streams it creates. If you set
00207     //      it to false, it will allow the streams to just reference the
00208     //      buffer (in which case this input source must stay alive as long
00209     //      as the buffer is in use by the stream.)
00210     //
00211     //  fSrcBytes
00212     //      The source memory buffer that is being spooled from. Whether it
00213     //      belongs to the this input source or not is controlled by the
00214     //      fAdopted flag.
00215     // -----------------------------------------------------------------------
00216     bool            fAdopted;
00217     XMLSize_t       fByteCount;
00218     bool            fCopyBufToStream;
00219     const XMLByte*  fSrcBytes;
00220 };
00221 
00222 
00223 inline void MemBufInputSource::setCopyBufToStream(const bool newState)
00224 {
00225     fCopyBufToStream = newState;
00226 }
00227 
00228 XERCES_CPP_NAMESPACE_END
00229 
00230 #endif
XQilla-2.3.0/docs/simple-api/classNumeric.html0000644000151400015140000025772311653571064016161 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

#include <Numeric.hpp>

Inheritance diagram for Numeric:

List of all members.

Public Types

enum  State {
  NEG_INF = 0, NEG_NUM = 1, NUM = 2, INF = 3,
  NaN = 4
}
typedef RefCountPointer< const
Numeric
Ptr

Public Member Functions

virtual bool isNumericValue () const
virtual const XMLCh * getPrimitiveTypeName () const =0
virtual const XMLCh * getTypeURI () const =0
virtual const XMLCh * getTypeName () const =0
virtual const XMLCh * asString (const DynamicContext *context) const =0
virtual Numeric::Ptr promoteTypeIfApplicable (AnyAtomicType::AtomicObjectType typeIndex, const DynamicContext *context) const =0
virtual bool equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const
virtual bool lessThan (const Numeric::Ptr &other, const DynamicContext *context) const
 Returns true if this is less than other, false otherwise.
virtual bool greaterThan (const Numeric::Ptr &other, const DynamicContext *context) const
 Returns true if this is greater than other, false otherwise.
virtual int compare (const Numeric::Ptr &other, const DynamicContext *context) const
 Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.
virtual Numeric::Ptr add (const Numeric::Ptr &other, const DynamicContext *context) const =0
 Returns a Numeric object which is the sum of this and other.
virtual Numeric::Ptr subtract (const Numeric::Ptr &other, const DynamicContext *context) const =0
 Returns a Numeric object which is the difference of this and other.
virtual Numeric::Ptr multiply (const Numeric::Ptr &other, const DynamicContext *context) const =0
 Returns a Numeric object which is the product of this and other.
virtual Numeric::Ptr divide (const Numeric::Ptr &other, const DynamicContext *context) const =0
 Returns a Numeric object which is the quotient of this and other.
virtual Numeric::Ptr mod (const Numeric::Ptr &other, const DynamicContext *context) const =0
 Returns the arithmetic product of its operands as a Numeric.
virtual Numeric::Ptr floor (const DynamicContext *context) const =0
 Returns the floor of this Numeric.
virtual Numeric::Ptr ceiling (const DynamicContext *context) const =0
 Returns the ceiling of this Numeric.
virtual Numeric::Ptr round (const DynamicContext *context) const =0
 Rounds this Numeric.
virtual Numeric::Ptr roundHalfToEven (const Numeric::Ptr &precision, const DynamicContext *context) const =0
 Rounds this Numeric to the given precision, and rounds a half to even.
virtual Numeric::Ptr invert (const DynamicContext *context) const =0
 Returns the Additive inverse of this Numeric.
virtual Numeric::Ptr abs (const DynamicContext *context) const =0
 Returns the absolute value of this Numeric.
virtual Numeric::Ptr sqrt (const DynamicContext *context) const =0
 Returns the squart root of this Numeric.
virtual Numeric::Ptr sin (const DynamicContext *context) const =0
 Returns the sin of this Numeric.
virtual Numeric::Ptr cos (const DynamicContext *context) const =0
 Returns the cos root of this Numeric.
virtual Numeric::Ptr tan (const DynamicContext *context) const =0
 Returns the tan of this Numeric.
virtual Numeric::Ptr asin (const DynamicContext *context) const =0
 Returns the asin of this Numeric.
virtual Numeric::Ptr acos (const DynamicContext *context) const =0
 Returns the acos of this Numeric.
virtual Numeric::Ptr atan (const DynamicContext *context) const =0
 Returns the atan of this Numeric.
virtual Numeric::Ptr log (const DynamicContext *context) const =0
 Returns the ln of this Numeric.
virtual Numeric::Ptr exp (const DynamicContext *context) const =0
 Returns the exp of this Numeric.
virtual Numeric::Ptr power (const Numeric::Ptr &other, const DynamicContext *context) const =0
 Returns a Numeric object which is this raised to the power of other.
virtual bool isZero () const =0
 Does this Numeric have value 0?
virtual bool isPositive () const =0
 Is this Numeric positive?
virtual bool isNegative () const =0
 Is this Numeric negative?
virtual bool isNaN () const =0
virtual bool isInfinite () const =0
virtual bool isInteger () const
virtual
AnyAtomicType::AtomicObjectType 
getPrimitiveTypeIndex () const =0
virtual const MAPM & asMAPM () const =0
virtual double asDouble () const
virtual int asInt () const
virtual State getState () const =0

Static Public Member Functions

static void checkFloatLimits (Numeric::State &state, MAPM &value)
static void checkDoubleLimits (Numeric::State &state, MAPM &value)
static const XMLCh * asDecimalString (const MAPM &value, int significantDigits, const StaticContext *context)
static const XMLCh * asDoubleString (State state, const MAPM &value, int significantDigits, const StaticContext *context)

Static Public Attributes

static const XMLCh NaN_string []
static const XMLCh NAN_string []
static const XMLCh INF_string []
static const XMLCh NegINF_string []
static const XMLCh NegZero_string []
static const XMLCh PosZero_string []

Protected Member Functions

virtual AnyAtomicType::Ptr castAsInternal (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
const XMLCh * asDecimalString (int significantDigits, const StaticContext *context) const
const XMLCh * asDoubleString (int significantDigits, const StaticContext *context) const

Member Typedef Documentation

Reimplemented from AnyAtomicType.

Reimplemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.


Member Enumeration Documentation

Enumerator:
NEG_INF 
NEG_NUM 
NUM 
INF 
NaN 

Member Function Documentation

virtual Numeric::Ptr Numeric::abs ( const DynamicContext context) const [pure virtual]

Returns the absolute value of this Numeric.

Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.

virtual Numeric::Ptr Numeric::acos ( const DynamicContext context) const [pure virtual]

Returns the acos of this Numeric.

Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.

virtual Numeric::Ptr Numeric::add ( const Numeric::Ptr other,
const DynamicContext context 
) const [pure virtual]

Returns a Numeric object which is the sum of this and other.

Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.

static const XMLCh* Numeric::asDecimalString ( const MAPM &  value,
int  significantDigits,
const StaticContext context 
) [static]
const XMLCh* Numeric::asDecimalString ( int  significantDigits,
const StaticContext context 
) const [protected]
virtual double Numeric::asDouble ( ) const [virtual]
static const XMLCh* Numeric::asDoubleString ( State  state,
const MAPM &  value,
int  significantDigits,
const StaticContext context 
) [static]
const XMLCh* Numeric::asDoubleString ( int  significantDigits,
const StaticContext context 
) const [protected]
virtual Numeric::Ptr Numeric::asin ( const DynamicContext context) const [pure virtual]

Returns the asin of this Numeric.

Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.

virtual int Numeric::asInt ( ) const [virtual]
virtual const MAPM& Numeric::asMAPM ( ) const [pure virtual]
virtual const XMLCh* Numeric::asString ( const DynamicContext context) const [pure virtual]
virtual Numeric::Ptr Numeric::atan ( const DynamicContext context) const [pure virtual]

Returns the atan of this Numeric.

Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.

virtual AnyAtomicType::Ptr Numeric::castAsInternal ( AtomicObjectType  targetIndex,
const XMLCh *  targetURI,
const XMLCh *  targetType,
const DynamicContext context 
) const [protected, virtual]

Reimplemented from AnyAtomicType.

virtual Numeric::Ptr Numeric::ceiling ( const DynamicContext context) const [pure virtual]

Returns the ceiling of this Numeric.

Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.

static void Numeric::checkDoubleLimits ( Numeric::State state,
MAPM &  value 
) [static]
static void Numeric::checkFloatLimits ( Numeric::State state,
MAPM &  value 
) [static]
virtual int Numeric::compare ( const Numeric::Ptr other,
const DynamicContext context 
) const [virtual]

Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.

virtual Numeric::Ptr Numeric::cos ( const DynamicContext context) const [pure virtual]

Returns the cos root of this Numeric.

Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.

virtual Numeric::Ptr Numeric::divide ( const Numeric::Ptr other,
const DynamicContext context 
) const [pure virtual]

Returns a Numeric object which is the quotient of this and other.

Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.

virtual bool Numeric::equals ( const AnyAtomicType::Ptr target,
const DynamicContext context 
) const [virtual]

Implements AnyAtomicType.

virtual Numeric::Ptr Numeric::exp ( const DynamicContext context) const [pure virtual]

Returns the exp of this Numeric.

Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.

virtual Numeric::Ptr Numeric::floor ( const DynamicContext context) const [pure virtual]

Returns the floor of this Numeric.

Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.

virtual AnyAtomicType::AtomicObjectType Numeric::getPrimitiveTypeIndex ( ) const [pure virtual]
virtual const XMLCh* Numeric::getPrimitiveTypeName ( ) const [pure virtual]
virtual State Numeric::getState ( ) const [pure virtual]
virtual const XMLCh* Numeric::getTypeName ( ) const [pure virtual]
virtual const XMLCh* Numeric::getTypeURI ( ) const [pure virtual]
virtual bool Numeric::greaterThan ( const Numeric::Ptr other,
const DynamicContext context 
) const [virtual]

Returns true if this is greater than other, false otherwise.

virtual Numeric::Ptr Numeric::invert ( const DynamicContext context) const [pure virtual]

Returns the Additive inverse of this Numeric.

Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.

virtual bool Numeric::isInfinite ( ) const [pure virtual]
virtual bool Numeric::isInteger ( ) const [virtual]
virtual bool Numeric::isNaN ( ) const [pure virtual]
virtual bool Numeric::isNegative ( ) const [pure virtual]

Is this Numeric negative?

Implemented in ATDecimalOrDerived, and ATFloatOrDerived.

virtual bool Numeric::isNumericValue ( ) const [inline, virtual]

Reimplemented from AnyAtomicType.

virtual bool Numeric::isPositive ( ) const [pure virtual]

Is this Numeric positive?

Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.

virtual bool Numeric::isZero ( ) const [pure virtual]

Does this Numeric have value 0?

Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.

virtual bool Numeric::lessThan ( const Numeric::Ptr other,
const DynamicContext context 
) const [virtual]

Returns true if this is less than other, false otherwise.

virtual Numeric::Ptr Numeric::log ( const DynamicContext context) const [pure virtual]

Returns the ln of this Numeric.

Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.

virtual Numeric::Ptr Numeric::mod ( const Numeric::Ptr other,
const DynamicContext context 
) const [pure virtual]

Returns the arithmetic product of its operands as a Numeric.

Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.

virtual Numeric::Ptr Numeric::multiply ( const Numeric::Ptr other,
const DynamicContext context 
) const [pure virtual]

Returns a Numeric object which is the product of this and other.

Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.

virtual Numeric::Ptr Numeric::power ( const Numeric::Ptr other,
const DynamicContext context 
) const [pure virtual]

Returns a Numeric object which is this raised to the power of other.

virtual Numeric::Ptr Numeric::promoteTypeIfApplicable ( AnyAtomicType::AtomicObjectType  typeIndex,
const DynamicContext context 
) const [pure virtual]
virtual Numeric::Ptr Numeric::round ( const DynamicContext context) const [pure virtual]

Rounds this Numeric.

Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.

virtual Numeric::Ptr Numeric::roundHalfToEven ( const Numeric::Ptr precision,
const DynamicContext context 
) const [pure virtual]

Rounds this Numeric to the given precision, and rounds a half to even.

Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.

virtual Numeric::Ptr Numeric::sin ( const DynamicContext context) const [pure virtual]

Returns the sin of this Numeric.

Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.

virtual Numeric::Ptr Numeric::sqrt ( const DynamicContext context) const [pure virtual]

Returns the squart root of this Numeric.

Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.

virtual Numeric::Ptr Numeric::subtract ( const Numeric::Ptr other,
const DynamicContext context 
) const [pure virtual]

Returns a Numeric object which is the difference of this and other.

Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.

virtual Numeric::Ptr Numeric::tan ( const DynamicContext context) const [pure virtual]

Returns the tan of this Numeric.

Implemented in ATDecimalOrDerived, ATDoubleOrDerived, and ATFloatOrDerived.


Member Data Documentation

const XMLCh Numeric::INF_string[] [static]
const XMLCh Numeric::NAN_string[] [static]
const XMLCh Numeric::NaN_string[] [static]
const XMLCh Numeric::NegINF_string[] [static]
const XMLCh Numeric::NegZero_string[] [static]
const XMLCh Numeric::PosZero_string[] [static]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classQueryPathTreeFilter__inherit__graph.md50000644000151400015140000000004011653571063023362 00000000000000674f8dd2b87e1d144eb248ddc2e40b08XQilla-2.3.0/docs/simple-api/doxygen.png0000644000151400015140000000754611653571063015021 00000000000000‰PNG  IHDRh ;ˆØ-IDATxí]{XŒyÿ¾sZ%Ê”NF:¨´FåЪքbÝè@;~ÓŽÃ"DH‘ÚZ•ð–m_Œéè4ÄÙÚ!ë-‡2«U«Ce[Š"§š_ñÌ3óLSìõ¾ï¾öº|®««y>§ïý¹ïïá_ ™L†öþZ·¼ß¦ajëñ®¹L•oñúþ}«.Íë2Þãû$Zöå);*.d¥~Ûìß³wˆ—·'ˆâ0³Ëâþ@áû!ZZeÊÿÁÞͺwÓøÏÔÚ‰ù?ØO =\Lâ[òg²dxr0Ð —€¤Rrj·Jž€‘*í.WJN5¨äÉqÈMªÔ[mºÞ•’Sb58™Ä¼RB5½¥•’SRus[2<ÙÄ %·˜˜•²V'˜ê+%§$fv˜ØÄºR»«Kó$ ¡¥C 4ã+xº˜£½sQÙ}f¶ðÀ[²vôZ €ç6c}”½!,Lt×ï<ÂÅ«µ°dx†H)/ÎÙfí襧¥C«1¶v£ôº[~– ÏÑåÅ9%DÏDKgžrN}M9úY««3*/Îi謷%ÓU^œ#¶vôr'p²=]ÌÑ_§7®ßy„ìS¸ª½ëkÊaÉð´-/Î!E²vôâà902œíÁÉ–FæŸ*¸Å,ý­– O!1k>QÓÓ³¦°dx¦X:ûð¼=GÃÂD×ï<ÂþÃ'¸fvRªKó‚UZjbóièþ¤`èõýˆtº9cùœ‘xÕÚªV W­­°sžabóièw1ó1x%îæhŒ¹Þ¶¸9׉>oÕ®hkG¯~¥—Nl°sž"^™ÀdŽ2%sw…ø¨•¼W­­‹ìœ§D¸z¯àí W †Æç˜8c>‚í1”ô‡m·Bvêî«ÖÖ8܉ÞAˆZò þT…u—r­½ª´th9kÂÖRêåŸSfÛþ/d§–°‰¾äœ1kçb„A.ܸ@ø“+;:j ÛÚÑË«ôÒ‰|#­Ýp4i®â¨]¼â߯óV~éØÇŒ…xfv$Õ¥y| S[ö;BOK‡V“ÅßÖàÎÌa 4x0¶Ï:ÂßDN54>Çgœõxp÷ªo;Z:´¬œÃÉ”º€ÕÇðë™ïbÛ‡ªöü|Ñ^TŠ7=$4)L!Ü/åuü’#)9/rqÃ%îØÅï¬~a”çŽÅ-à¸poE ‚”®,|gŽ¥m /9/ŠsÃâ˜Ø|šœ±c Ó/åu¨ü Êë€P\…aÁÂ’ó¢‡1,¦¥Ó¢Ã;ueòyªKó\ä…°üÃ"7-K!3>õ2ÊËËamm åÚÈr7M.(~[2ÓÝÉ„Œ]©¨C<¿í»b9Ç[)v[~Ñ,_º@\|î8ËqÜ´{· Ð}QÞ”ugr7àÛÈJ]|Úe¤ïÚ`ƒ–­æçÿ¤à™4s5Ü+µÕÒ¡•©Æ\§áéãû¶Ù•ýxàJ,ûÌudùùs&@yŽõI…eD…Ÿ;ç8nZÁž={ʘfóQU|X ÞØÚ)ض˜"ÞtîVÜ-ÏwÐo¨ãç¢ý‰œöJy>¶6è°¹ ÌFrÊf¥ÑÍú’ KbÏà¼(!@~»ó³) F¹{€í€Ave'3£Hÿ£¦˜î»Íu @³¯Aò±¬$èj÷"s&û…½&ób~¶t”»w¢ÿ¼¼¥þŠ·öQÓ J~Iå âJÚö½˜Ÿ]=ÊÝ;=|S{ºû™Éç‘“nçÊÜ9ôË¿ÈõË„.{ù®‰Ü´`Œb³ßÅÊå ÅâÚž)†j\Þ€ÔΕ›ÞY_ÂE_¸â.gÚ0uõ‹‘Ÿ‰2ݪiDàWËÐÜX'ÖìkÀÌÿº©ü–ñqýòV¶gDO³¯Ý„¦âÁÔôçE 6È ä1cZŒ¦ÄÄ—n£¹±NXxú(¿] ±ãgL_ºM!ÓÐb4Ü+e´´Ê¤âŽdüƒç62[é£]Am­ž,b÷@Jáé£Õ„ÿð‘Ü_Ù,Wºˆr€‘®Îèr_g8ÕÕ&(ÁQAäÛ4·­Ÿò.«ö—¯­ajëAïghS–öÝFJËÛhheg©‹³;Lýcs é/¼RƒÈõËÄ¢ì,‘—¾84†íõ‰9™óõ:n–œ`‰²³Ä,o_ï~†6YIqaÐÑî¥vÊèã¸v>=V”E¹æXÞ¾5™é=uu›^À/ °A”eD䆸ÍX¹j®S¬‘#§Ï^Ëžç3œŒÇì-ÂÙ£[Ã@µövmæÏ ’X ÊÎÊW¤×vú9šÚúѽµõQ_{ͽ3žäW\ø¦æØ:p¤ajëeIÉ)tšâîŽåáܱ8Iû£>xødÆöEóöëd:ÛŒ4µõk¾OŽƒNI¼‰¨½q>m•á1!)[©›Vàb47ýa @æšṉ̃ p…%5Pþ~üä¾Z‚æ¦?| 3³•0DN  á}® Unû¬@ú® » 3¹ÌÁÃ'‹Tç(,©ÁÏ—ïÂÁÊ^.ŠM¤ÄA8a?šUÙ¾äJ<§à2S÷ þ~…@=hjë3-GÍÄ|ŸÈ8Y.¯—¨®]XRƒèËIT9X²A€›¿ž$ÚéÇÛÈõ™hIPvã!ÀvHÿ°}Úo)Ͷ‡8rŠßš ¶=…Ч*^÷˜éiEïŸÂ«8‘"<˜Ìö Ht™¶œ·"Б²æ–͘á¿Êx.üZ‹˜M!b~ƒé Ã!c ’bwÀ·zëqT\È L*a.ˆŒÙÁP7:Û*(FÁñøpáÁô8¶O@â¿5<å9•17>yö“1z¸a‡zs{/Q†9æ‘ ´j}S¹vYD*n]Í!rÐhyakÔj ™Ê„«úgúÍ‘ d¦©­_¾*llé]^&}ˆ˜¨ÍhnúÃÛpȨèí[¨ä.Y»µ7..ÐÔÖOŽÚ²ÆµÉX|Úeœ%¤ÈL%äL¿9e ‰Étå¼ÇO^ (ˆÛp 3U±%ßär ‡ŒJŽ ›§vÎ2éCÊ Äzá2SãfúÍ1êÃ]Ïõ™@ÝÈ™¼€ÄÜn’èÛp%®Ö"nËJR µß2GÛ+Z™Š[¥?’@„½[PèâÙcÐWKþÂÕZìÛó=’â×Q÷ŸšiøÏäôîÓ?yê¬E`3‡ª+Wá‡ý;ñìÉÃŽöîÓ¿fóæHŠÛÒ%¸x2!%#Mì?;p)î°™*à²u;p_zÉ%#M !pˆ‚WÇR†Š«phϦÝi‚Eª8ügFôîÓ?ÔÁíKÈïü²ëp)_+Ç©XÀPÅž‘&ˆ#jðÌí&q=˜n˜0ÚLí¬×n>Dá•\Ê¢á÷J[ts»I¢è5³)¼&~J ¤:Úè´µAB„î@‹PKÆ´×doCú)ñÑaSteLgÓ.㦶襩›Àÿ?MàÙ¿|Ö¸bÙšs+s’¤Ÿ¸†ÑtïÙ›À@€<öòyÓ¶_=ï ‡žok®Ô‡Û¶½ÚžŸ¿x¾Œª¢Ã=ä_C?ÝlÐßB™«WŠp·òœ‰ÙcK3=hh(b%ùÐ7u@}mEû»ÃtØxØØØâRÁ)ÔUÿ¢%“2™ ݺ)©Ø™¢;¸œŸnÝ{†®ÃÆÎ†‰¡î_2Ÿ´úªŠ ý‘ýLKϲַÆöEe÷¡A(ô¤ù%ž?iÀÓÆßÓ¸›`N·zýàëÑ,ñðÞo´w¯ÊNõ{elЧ‡òÉ«}ð·êq¥ì&ªKsñüÉÃän=>º`á°±³Ýÿ*q:½âht§¿Õw_Z”ÞòòÙ^š:cå¾nÝ{âùÓ†‹Ýº÷Ì`N£;‘×›Üj*ÿµ½¥å¥K¯Þ}^4?&ý=zi¡—¦zkõCcýPBht'×ÿÑ|UE‡ä1 ý;ž&5v›øßõëÛµ]@kS}ðÿpŽªª¢ÃâÕ¥y &þ>Ø{fÝ>Pð~ÛÿÞžk˜^œIEND®B`‚XQilla-2.3.0/docs/simple-api/inherit_graph_6.map0000644000151400015140000000024411653571064016372 00000000000000 XQilla-2.3.0/docs/simple-api/ATFloatOrDerived_8hpp__dep__incl.png0000644000151400015140000001303011653571064021516 00000000000000‰PNG  IHDR£Ãaú6bKGDÿÿÿ ½§“ÍIDATxœí{T“åÀŸ± Š ·1 L ÇBÑ.X¢èŸ/ð µµµ“““““~¬8ý…B8888ý— Ì«Ñh$‰vóÔ©S‡zþùçY,V```VVVooï¹sç ÇâÐétÿO?ý”ÉdeR{{û¸¸¸ T;©˜ éÚÚÚùóç/Z´ÈÓÓ³¶¶Öô:¤Rizzú믿~äÈ…B¸téRlllhhhXXØ?üx÷Ýwk×®ÅGUUUmܸQ÷ð2eÊ›o¾YUUÕÝÝÄår×­[wýúu½éH$Òk¯½V__oªTª¬¬¬5kÖ¬Y³&++K¥Réÿå—_ðÅ÷îÝ™™™ø¥R¹zõj<ƒápFóã?FGG¯\¹2))éÖ­[FŸõ•+W¢¢¢V¯^ýý÷ßðIûí·èèè5kÖ>|X©T N`OÄ4¾t–.]:ÆØðð°LµZ­ûè×_}ïÞ½¬¬¬466æçç?xðà£>òööÎËËKLLÌÎÎÀwtII @*•ŠD"6›­7›ÍîììÄÛ………;wîôöö6¬‡Åbõôôàí3gÎ…£G~ùå—\.÷ĉF‡×ÕÕáßÝhll´¶¶~î¹çŒ/...((ˆ‹‹;}úttttVV–Ñ}ÒÐнcÇŽœœíZUVV¶ÿþÏ?ÿ¼¡¡}?,8.&búöíÛ}}}K—.,]º´½½½­­mÔQï¼óÎJ._¾¬}H¥RÕÖÖnÙ²…ÉdzyymÚ´©ªªŠF£?~<99ÙÙÙ™Á`†††ÆR‰DÒh4x;..ÎßßÊ”)#9wîÜÖ­[ †——W||¼¶6½á/¾ø¢D"ùóÏ?555¡¡¡ø¥ŸáðŠŠŠ„„„ÀÀ@ggç^xáa‹ÿºuëlll–,Y㉉‰,Ë××÷wÞÑ~Ja48.&rEV[[«V«_ýum„ÃáÌš5käQ†×™ÝÝÝxC,k4777|ÓÝÝýÞ½{ E Μ9xÛÓÓóaõ팽½½aaaÚ‡¦M›ft¸µµõK/½TWW÷ÔSO]¼x1;;ûaÃU*•îbãååe´ggg‰DÒ ²X,íì÷îÝ!8.ÆmZ£Ñp8œwß}wÕªUxäĉgÓ¦MzGGG+++¡P8sæL@OON—Ëå{÷îÝ»wïâÅ‹•J¥Ñ‹¬S§NùûûkOÕÃÃÃùùùÚýŽ_ ‚aXEEE@@¾iooÿÕW_á/Dü¤ð°áÁÁÁ‡f³ÙsæÌÑî}Ãá}ôÑ;wfÏžwhoo7Z†Ñ=&ðWFWWþRxXp\Œ{õæñxb±xùòåSÿ!$$D ðùü LC¡P‚‚‚¾ùæ¡Pˆ¿S Q*•*•ŠB¡( üÄùàÁ¼¿öíÙ[o½%‹·mÛvùòe@ð믿&&&ÒétÝõFËÀÀ€H$êïï¿víZZZšP(ŒˆˆÀ ÌÎξ{÷nkkëŽ;ÊÊÊVêsÏ='•JOž<¹råJmÐpøk¯½väÈ‘ß~ûM$]¾|977ïùÓO?zÊÈÈèîî¾}ûvNNÎòåËGŽ‹qÓµµµ .Ô½çàíííææÆápŒ®±cdëÖ­ T*õ•W^‰ŠŠ¢Ñh‰‰‰ûöí›:uêúõ냃ƒwìØqæÌ™gžy&,,ìçŸØØØ;vìĉYYY===L&3888<<œJ¥N‘””„7 †ŸŸß±cÇ´«ôæÍ›322bccI$ÒÒ¥KãããûûûÖI¡P–-[VSS³lÙ2mÐp8•JU*•G޹ÿþìÙ³ÓÒÒðw \°`v^£„„„lß¾}xx8888** _«õ‚ØÃ$Ýo®[·ÎÄ›Vˆ côVÚîÐáŸOë}¿Ý÷†dz1mÚ´Õ«W%8éI„ƒƒÃ¶mÛÆœÈ4, Ó°€LÃ2 È4,Àhúöíû–.Á¹š’’B|„¡RM‹}\\®ZºGˆX,6 þÇ´‡‡Gxx8QõX†®.»¾>;7·9S¦¨,]Ë#Dï“\ wßöuvÞß¶í))¡–®…Pà:Oß¼ÙÓÙyPTÔhéZˆ.ÓÅÅW¨T2 «Ktõj§¥Ë!ˆLk4XAA£R©P(ä²2®¥+"ˆL74´ŠDR¼­R©Ïœ¹¢Vk,[‘@dº´”K¡üû|E¢¡K—îX°‚Å´R©.+ãªTÿÄ ¹´ôw –D0°˜®«ûS*•ëFT*uEÅ5…âI~W­ ,¦KJ~'“õ¿rûàÁ0‡sÛ"õ¦‡†äçÎñ ¯¿¬¬¬Š‹aYÀ¡0]]}s¥‡Z­9¾ihHnøÐ“¦KKØ=_…BUUuƒØr,ÓoZ"‘q8Žp{¿´Š[(Oþ'r¹ª·÷/ífuõÍ´´’K—vk#d²‹åh‰ÒeâçäqÁÚš2sæ¿ÿeÍÅÅ „'õFà Ó°€LÃ2 È4, Ó°€LÃ2 È4, Ó°€LÃ2 È4, Ó°€LÃ2 È4, Ó°€LÃ2 È4, Ó°€LÃ2 È4, Ó°€LÃ2 È4, Ó°€LÃ2 føŸòÇŽ3= a45IÀãV³——WHHˆ©Y0“1Çs!++k*•aé*ÆGxx¸éšÌó×/ ´¿ð‹0/æÚ±è< È4, Ó°€LÃ2 È4,dšD"ñù|3f3Ä\É'VŸÝ#‚ècºµµ•N§›žçâÅ‹ÂÿB| DÿÝPFsÿ¾~@ÔÅÅeÆŒ–­áñ‚èc:  •¤T*SSS]]] FjjªR©H¤ÜÜ\___—ôôôÓ§OÏš5ËÞÞ>--määgÏžõ÷÷·±±a2™ééé•JµgÏOOO—7 Ö000ðöÛoÓét‹•’’2<<ÌçóI$RMM§§çÂ… 7oÞŒ÷”J¥666üñ‡áÔçÏŸg³ÙŽŽŽû÷ïàÊËËçÎË`0’““år¹Ñ 9vêØ0Ë}ï‚‚‚Qû´´´`ÖÒÒ¢;éÂÂÂ:;;y<ÞÂ… wî܉wŽŒŒ”H$999€ˆˆ‰DrôèQ@?ÞáêÕ«ƒ:(•J‰DB£ÑbbbA^^ ¯¯ï‹/¾˜7oÇ»~ýú /¼’’bXCTTTppð;wx<ÞÓO?½wï^¼Ã«¯¾Z[[ûóÏ?;;;+•J ÃòòòæÍ›§Ñh ŸÝªU«$Iqq1^$žaÅŠÍÍÍõõõl6[›V/8êî 7Ë}o ›öññ …x»ªªjÁ‚xg.—‹a˜B¡ÐkãI _¯•••r¹üÖ­[R©T­V×ÕÕáçÎ[RR‚ç¿yó&ÞÖ­A¡PÉ䦦&|³¤¤„Ífãx<†a*•jÆŒ555†­\¹2==Ýè³»pá†ajµŸW7†aziµÁQw¯¹L[øï{···3™Lí¦½½=Þ°³³P©T½¶–––6›­—­¹¹966V*•úûû㑎Žooo¼íëëëëë«7äîÝ»jµzöìÙø&›ÍxÛÇÇ@&“×®][RRâççW]]/-†¸¹¹¬¬þs6ÔNíãã£Mk4H~?M§ÓñÃÃ0±X\__?áT2™,"""55•ËåfffâA77·ööv¼}õêÕÏ>ûLo”««+™LnmmÅ7ïܹãîµ¯­ðððÒÒÒÂÂÂ%K–°X,£³}›‡Ä€ææfü¥ð° XÆ´Tú÷ïK®]»öƒ>èèèàñx¡¡¡ß~ûí„sÊår…BA£Ñd2Ùž={ƒƒƒÑÑÑ~øaSSSSSSRRRGG‡^ T*uݺuÉÉÉmmmMMM»wŠÒ˨R©>ùä“èèhm0''篿þ#²uëV>ŸßØØ¸k×® 6Œ$ÓO`<çi¥R¹dÉ[[[<.‘H6mÚäèèèìì744¤ÛùamÝ .‡rrròððÈÌÌŒŒŒd0ÃÃÃ)))nnnööö‘‘‘b±Ø°‘HíììÌd2ß{ï=™L¦w1aXBBÂÔ©S%‰á32ÚÆ3äääÌœ9“N§oÙ²E›V/8êî}Ì®ÈwvíÚµ~ýú±÷7|­<,8*OÈÙägxx¸§§'777??ßÒµ˜ú„cž}öÙ˜˜˜—_~y죦OŸ?– a cz–-[&‰Æ;ŠÁ`dee%H蘆diX@¦aFÓýýRK—`Ìsí]SSƒô;ùVŸ=ÛûÆî–.d¬´¶¶zyy™!‘é7_ÌPLê;cF‰dméBÆÁd¹GöxÉ~ãÌ‹[òò.¬_`éZ®óôýûÒ†>¤ââß-] ÑÀeº¬Œ ¬¾þŽîÍÃ\¦‹Š5 @&“**®ZºBÈtGÇýë×»ñ« µZSTÔhéŠ"ÓååÉÃÀÝ­­÷,[‘@dúÇT*v“J%—•q-XÁÀbúÖ­žöö~݈R©†j‡Åti)—JÕ²÷›šº-Rñ@aðÂÂF¥R£‡j‡Âôï¿·÷õI ãøŽ¿ïzâÂtiéT*ÙèC÷î ^¾ÜJp=áÉ7­Vk**¸j5F£Q ÿ*+¡¸…òäcp`àABBv³¹¹·²òÚöíÿÓF§Y¢.¢!=^ŸD™NEÅÕ„„ïzz¾²t!Dóä¯ÞdiX@¦a™†diX@¦a™†diX@¦a™†diX@¦a™†diX@¦a™†diX@¦a™†diX@¦a™†diX@¦a™†ÿ>xxx¸¥ŸÁø RévvK,]Ÿ1ý÷$ÍðwN¶mÛfzbI¶tã ""Âô$f0íááñØÙ‚ÎÓ°€LÃ2 È4, Ó°0¹Lóù|‰d´abB†“H$>Ÿ?á¹5“Ë´ƒƒÃûï¿?™>¾L.Ót:===}2'||!ÂtEE…»»»X,äççÏ™3ghhH£ÑdddøúúÚÙÙ-^¼˜Ãáà«ß«åÙ³gýýýmll˜L¦Q•••~~~S¦Lñòò:}ú4øïòK"‘rss}}}]\\ÒÓÓOŸ>=kÖ,{{û´´4mÏòòò¹sç2Œääd¹\®›\©T¦¦¦ººº2ŒÔÔT¥RiXÀùóçÙl¶££ãþýû–sÔ‰¦ß÷Ëïknܸñ­·ÞêííuuumhhÀ0ìèÑ£ £¤¤¤§§ç§Ÿ~b±X€––¼$ÆD"¡Ñh111 //Ð××§;…T*µ¶¶ÎÊÊ …ǧP(R©T;Ã0@dd¤D"ÉÉÉDDDH$’£Gúûûñž+V¬hnn®¯¯g³Ù{÷îÕ~àÀ°°°ÎÎN·páÂ;wê=GÀªU«$Iqqñ¨9õ‚#ï=`ŽûÞ™‹Å,ËÏÏOû¬æÍ›wòäIm‡ï¾ûndÓr¹üÖ­[R©T­V×ÕÕáu§‰DT*õàÁƒb±X£Ñ ªÕj=Ó\.Ã0…B¡×niiÁ{òx<¼sAA›ÍÖîãã# ñvUUÕ‚ ôž#àÂ… †©ÕêQsêGÞ{f1MÐyÚÁÁ!..îÆ‰‰‰x¤µµuÁ‚Ú~~~#g ÑhÍÍÍ¡¡¡‹-:yò¤6NúGGG‡S__Ïb±–-[ö믿ZYé?;;;;•JÕkkñööÆ>>>@÷¡ööv&“‰Ïµ|ùò¶¶6Ã"ÝÜÜzóÍ9ÂD‚Lwuuedd„„„lß¾¸»»_»vMÛáÆ#gÉd©©©\.733S×¾fe2™F£)**‰D›7o^½zµH$oøhnnƵi¡ÓéÚUD,×××7z‘a4ç="ˆ0­Ñhbbb¶lÙ’ŸŸ_]]]YY ˆ‰‰IMM-//ïííýå—_vîÜ9r¹\®P(h4šL&Û³g`ppP·‰DZ±bEqq±D"Q(T*ÕÆÆf¼¥nݺ•Ïç766îÚµkÆ º­]»öƒ>èèèàñx¡¡¡ß~û- ''篿FùÍ[£9G˜èQaâê?–óôáÇçÏŸ¯P(0 +--e2™"‘H¡P|òÉ'³fͲµµ]¼xñ?üFŠ‰Æ‚©¿¢„Å©°°ÐLõ Œ@"‘ Lü6:¦a™†diX@¦a™†3üŽ¢¢"S¾«… SßO_ºt‰˜Ý ' ÀÃÃÔ Ðýþ4´ ó4, Ó°€LÃ2 ÿBo*ñ¤ŠIEND®B`‚XQilla-2.3.0/docs/simple-api/XMLFormatter_8hpp__incl.md50000644000151400015140000000004011653571063017652 00000000000000fda16eb8f2fe4ee5c4673852b65e5022XQilla-2.3.0/docs/simple-api/globals_defs.html0000644000151400015140000000563111653571064016142 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
 
XQilla-2.3.0/docs/simple-api/functions_0x6c.html0000644000151400015140000001764511653571063016375 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- l -

XQilla-2.3.0/docs/simple-api/ResultImpl_8hpp__dep__incl.md50000644000151400015140000000004011653571063020415 000000000000005682be4e7b335d926128e3e073009c14XQilla-2.3.0/docs/simple-api/ATAnyURIOrDerived_8hpp_source.html0000644000151400015140000001736111653571063021177 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATAnyURIOrDerived.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _ATANYURIORDERIVED_HPP
00021 #define _ATANYURIORDERIVED_HPP
00022 
00023 #include <xercesc/util/XercesDefs.hpp>
00024 #include <xqilla/framework/XQillaExport.hpp>
00025 #include <xqilla/items/AnyAtomicType.hpp>
00026 
00027 class DynamicContext;
00028 
00029 class XQILLA_API ATAnyURIOrDerived : public AnyAtomicType
00030 {
00031 public:
00032   /* Get the name of the primitive type (basic type) of this type
00033    * (ie "decimal" for xs:decimal) */
00034   virtual const XMLCh* getPrimitiveTypeName() const = 0;
00035 
00036   /* Get the namespace URI for this type */
00037   virtual const XMLCh* getTypeURI() const = 0;
00038 
00039   /* Get the name of this type  (ie "integer" for xs:integer) */
00040   virtual const XMLCh* getTypeName() const = 0;
00041 
00042   /* returns the XMLCh* (canonical) representation of this type */
00043   virtual const XMLCh* asString(const DynamicContext* context) const = 0;
00044 
00045   /* returns true if the two objects' URI are equal (string comparison)
00046    * false otherwise */
00047   virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0;
00048 
00049   virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0;
00050 };
00051 
00052 #endif //  _ATANYURIORDERIVED_HPP
XQilla-2.3.0/docs/simple-api/inherit_graph_23.md50000644000151400015140000000004011653571063016352 00000000000000434208fd35dd37d4162cc972da56f1b8XQilla-2.3.0/docs/simple-api/Result_8hpp.html0000644000151400015140000000551511653571064015734 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

Result.hpp File Reference

#include <string>
#include <xercesc/util/XercesDefs.hpp>
#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/items/Item.hpp>
#include <xqilla/runtime/ResultImpl.hpp>
#include <xqilla/runtime/EmptyResult.hpp>
Include dependency graph for Result.hpp:

Go to the source code of this file.

Classes

class  Result
 A scoped pointer wrapper for the lazily evaluated query result. More...
XQilla-2.3.0/docs/simple-api/AnyAtomicType_8hpp.html0000644000151400015140000000732611653571064017206 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

AnyAtomicType.hpp File Reference

#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/items/Item.hpp>
#include <xercesc/util/XercesDefs.hpp>
Include dependency graph for AnyAtomicType.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  AnyAtomicType
class  AnyAtomicType::CastTable
XQilla-2.3.0/docs/simple-api/classFastXDMConfiguration__inherit__graph.map0000644000151400015140000000055711653571064023556 00000000000000 XQilla-2.3.0/docs/simple-api/XercesConfiguration_8hpp__incl.png0000644000151400015140000005417311653571064021427 00000000000000‰PNG  IHDR™Ã‡ÉB}bKGDÿÿÿ ½§“ IDATxœìÝwX÷ðo{ƒ Ù {¨¸QATP¬àÂÖYGmµ.´VE[«ÖQ\­Zg+8q‚¢‚ÊÏÉeÈ^afæýþ8›¦%ä’ð~ž>Oã‘\Þ»ûÞåÍå½÷H†!$™èøLËI¹,TËIE%:€4ðòò": R£FÚ²e ÑQä²aˆµµµÕÑÑ!: DGA. –ÀÀÀ1cÆ…íÛ·|õ²@RA. $ä²@RA. $ä²@RA. …œœœqãÆÅÅÅñ¦<{öÌËË+//O4ÔÔÔìØ±cÖ¬Y'N\¶lÙ“'O>u†ýòË/'ND•––zzzöB˜ô|þžžž¥¥¥ÂŠÄä²Q°´´œ;wîáÇ›ššBÍÍÍ¡¡¡óæÍ333Á»ÓéôÅ‹ËÉÉ…„„;vlìØ±?ÿüsRRÒ'ͤ¦¦&66ö¯¿þB)++Ïž=[¸A–——O:Üó©¹,@D¾üòK55µãÇ#„þüóO--­Y³f‰æ­Ïœ9ãââ²~ýzccã3f|ñÅ—.]ú¤™0 „~?55µ%K–7H.—K§Óñǽ1JËD„J¥nܸ1:::<<<::zãÆTê‡Ûµ°ÙìcÇŽM›6mÚ´iÇŽc³Ùøì)))3gÎLMM=sæÌÌ™3ýýýwíÚ…ŸÙø*„ÐóçÏ-Zäíí=gΜû÷ïãÏ|üøñôéÓùƒ™7o^pp0þ¸©©i÷îÝS§N ((è÷ßïz àKd``°uëVKK˰°°åË—Ÿ8q¢¾¾^àü»^Ç÷JHH8qâDppðÉ“'yg|oܸ±k×®;w&$$à9tg@"@.  à ÉdrQQÿôèèèU«Véè蘙™-]º411Ÿ¾dÉ—,\¸ÐÌÌÌÔÔtÆ vvv½ŠÅbaÖÚÚ*++ëãã)''‡aBˆD" ‰Íf?|øð»ï¾ëß¿¿™™Ù‚ bbbð?ùûû+++O˜0!ÄËÛ¹zõê²eËÜÝÝÕÔÔ\]],XÐõÀ—HUUõÔ©S+W®ÔÒÒÂSêææf¡‡7sæLEEÅ#F „xÉîòåË mll/^Ì›•À‰ ¨DèCbccSSSCCCׯ_?zôèáÇãÓ+**øk”””ðøÉTfhhˆO166666îìU***¡¡¡gΜ±²²š3gÎ!CTTT444 yI0BèÝ»w8xð Nçr¹úúúøtƒªª*üq¿~ýB¼BÊÊÊøO0›˜˜´{žIóàKD¥RKJJöíÛ×ÚÚjiiÙÅüëêê>;<---Ô!‰ç­I###Þ¬N‰¹,@Djjj>¼lÙ2GGÇyóæíß¿ßÁÁAUU!¤¦¦j``€ÂKð—à‰š––VEEž2æææÆÇÇÏ;Wà« —Ëݶm›Í~ðàÁ¦M›nܸ¡¢¢2|øðK—.mß¾—ØÅÄİÙl999 2™\^^ާÈeeexŽˆ:?•ËOWW7??Ÿ×¡°°÷'‡C¡Pª««ùŸ/ƒÁضmÛ¶mÛ<<ŽÔ®– >‰D 3f шڋ/tttÌÍÍñ>~üøÜ¹s'Nœ 6*JKKçÎûèÑ£Nü¨íÛ·kkk_¾|Y¨Àç€ø|yyy¿üòKNNƒÁÈÌÌ<}ú4^D@4 Æ>߬Y³ÚÚÚ6oÞ\__ß¿ÿ‰'úùù”`JJJc8$Ô„ ÏÖôMPcp^ðùÊËë³³ioß–S(ªDÇ /‚\Ð]ÕÕMïÞ•ggW¼{Wž•U‘•UA§·"„45•¨T ¢£ÐA. ð¢¢ÚììŠì슬¬ŠìlZ^^eSƒL&  ie¥7x°ÙܹꙚj«¨È“H¿2€¾rYBµ´0³²*Þ½+ËΦá§]+*BJÖÖzÎÎfÎle¥7p ^¿~ÊD |¹,}ÖðæMYffiFFé›7¥Õ\.†g®––ºÞÞö––ºÖÖý!s Î — Oàp¸¹¹•2×Ì̲šš&‰dl¬eoo0cÆ`C;;¢#>ôä@jÕ¤¦¿~]”šZ”ž^ÒÔÄ Rɺ†öööö†vvªªòBy/‰dff¦¡!yW€±ÙòTjQïÎá(P(­¢_6[±­­ŸŒLƒ¬l#‰ÄýÔ—çåå?zrÄœ—@zTU5¦¦½~]œšZ”šZT[ÛL"‘Ì͵œŒ&Mrtv6²³3——é· ìÙö*ƒ’“£ÑÒ"ãæVA&ð­žÍ&'%骫3,,êed>9¡ì‰ÚZù¼<5:ݘLFJJL¦ª*SU•)+ËéÎËÍÌ̆ÚÛA@wÀyY$—‹ee•'&æ''$'çÖ „ôõÕðÿëÌ«4Á0ìÔ©'»vݶ²Ò=t(ÈÒR—¨H’’òW­:_[Û¼y³ßܹ"~÷æfFFFiRR~bb~BBÞª­­âìläèh8x°ÙàÁfrrp¾ î —@Â473^½*Äó×—/ ÛeÜÜL\]MœœŒ æµk4ZÃêÕŸ=Ë ž¸t©'•J&6žÆÆ¶Ÿ¾?y²ãîÝššJ„„WT'%å'&楥•dgWP©d[[wwÓÁƒM=<,à*@€x‚\ @£5$$ä%$ä'%å½}[ÎápMLú¹ºš dìînjmÝŸð„LRܹ“¶aÃuuÅC‡‚\\Œˆç_qqïÖ¬¹Èfsöì™áãã@t8ˆF£§¥'&æ'&æ½~]Ìd²uuU6ÃS[{{C2™DtŒ€䲈­¼¼ªÄļøø÷‰‰ùÕ22cwwSüü+œ$ûT -ÁÁWnß~½|ùصk'ôRÝpOÐé­;vD†…½ðósÞ³'PMM‘èˆ>hme¦§—¤¥•$%å?{–S[Û¬¬,çâbÝuÇŽéq%\UUㆠWîÝ{4tÛ6EEY¢#êTcc[jjþ,))¿­¥««êè8OmaDrYÐÐÐòüùû§O³Ÿ<ÉÎÍ­”——<ØlÄËaÃ,@ñ«°¤¥¯\y¾ªªq÷î??g¢Ãù4‘‘©ÁÁWÔÕ˜3dˆÑá|›ÍÍÌ,MLÌOK+Ž_RR§¨(kgg0x°ÙàÁ¦nn&Ä\ÖnË "­­ÌÄÄü§Osž>Í~ó¦”DBNNF#GZ néîn"+ Í„‰ÅâìÙ}üø#OO›½{gJho‡ÒÒºÕ«/¾x‘»l™çúõ>’5Hh´†ÄÄ|ü|í›7%\.fl¬…×!¸»›ZYé’Hpõ@ — wT?x›ÿžÉäX[ëa5b„¥‡‡…²²ÑÑI§¼¼ª•+ó²*BB¦ •èœ Ã°ððømÛni:doo@tDŸƒ¿‘mbb~CCK¿~Ê..Æx#[wwS1¼ ) —@ø˜Lv|üûÞ>x™—W¥®®8fŒõ¸q6£G[Cÿ^…ßaçÎ(GÇΑšë kV¯¾ðòeÁÊ•ã¿ÿÞ[¢¯좑­££á°a’w'd —@h²³+bb2?ÎNLÌãp¸£FYo7p Ñ¡õ  «W_xþVÊòrr’tÔg`³¹Ç?Ú³'zÈóÐÐYRü‹<ÞÈOmÓÓKøÙ::€Ÿ;8Èeø4=225&&ƒWEàåeçåe'5u™'66sݺ‹T*åÀÙ#FˆõM„ëÕ«¢U«Âi4ú–-SæÎõ :œ^×u#[gg#Éjò"Èeø8~çNÚÝ»éññïBC‡šûøØ{{ÛKñ)1ñ×ÒÂܶíFxx|PÐÐ-[¦¨¨HÀM„‹Á`ïÛw÷èчcÆXïß?SW·¯Ô´°ÙÜ÷ï?\=†7²UPµ·7ÀSÛáÃ-55¡‘-}ä²tª¶¶9*êud䫸ø<™±cm}|ìÇŽµ¢=Â%%å¯\ÞØØö믓';‘’“óW®<ßØØ¶{w@ß\¼F¶iiÅ©©E,ÙЧ@. @{x!AddêË—ÊÊrS¦¸¸¹ºšHt#$©Á» ÂØ±¶ûöÍ„g¡¦&ÆO?Ý ÷õuÚ½; /ß^«c#[UUy''£ÁƒM¡‘-Ò rY>¨®nºq#Oae}|üüœGuxâ#7·¿ŠçÎéîD‡#^ââÞ­Ys‘ËåîÝ;ÓËËŽèpˆ‡7²MK+ÆS[hd €´‚\ôu,çÁƒÌ+W’>|Ëåb£FYM™â2a‚ƒªjŸ«¿g\.vôèÃ}û<8gÀM¢#Gtz뎑aa/Üvî €Ëñ«¬l|ýºÙ } —}WJJáÕ«É7n¼ª¯o:Ôlút·I“ÕÕ‰Ž ´WVV¿zõ…„„¼Í›ý. 9G×¢¢^oÜxEII.4tö°aD‡#ŽX,ÎÛ·exK„çÏskjš””älm?4²<ØTM ŽH ÈeAŸ“—WuáBµk/ËËë ÝýüœuuU‰Ž öbÇŽ[h>dmÝŸèp$CuuSpðå{÷Þ ݾÝ_AA–èˆÄ#Û7oJH$hd €$\ô55Mׯ§DD$§¥ëè¨pƒO)qVW×¼aÕèèôeË<ׯ÷ÂåO™|EWWõàÁ9NNˆG2ð7²MN.hmeB#[Ää²@ú%&æ……½¸s'ÅâxzÚºyyÙÁ’˜‹‰ÉX·î’’’ÜáÃA®®&D‡#©JKëV¯¾Ÿ»t©gpðD¸)Ý'áod›W\\ lCË©E§·FD$Ÿ;÷<+«ÂƦÿœ9CýýiiA 'q×ÜÌøá‡ˆˆˆä¹s=úæM„ ðððøíÛoi>dk«OtD’ Ù ž —Òð§OsÂÂ^ܽ›®¬,?gÎÐ3Ü--u‰Ž tKBBÞªUç Öþý³ÆŽµ!:éQXX³zõ…W¯ ×­óY¶Ìš%÷#Û¤¤üúúygghd  —Ò£¦¦éâÅ„óç ªGŒ°œ;×ÃÛÛ^Nj $~„cÇyyÙíÝ;Π —‹>ýdÇŽHÃC‡æ˜šj‘”h×È6'‡F¡xl=<, ¡‘-½rY ÒÓKþþûù)$š:uÐܹp¥‹dÉÌ,ûî»°²²†={ýüœ‰GšeeU¬\ž›[ùÓ- ?‹ #Û´´bÙл —ŒÃáFG§Ÿ:õ8!!ÏÑqÀ—_zL:úÃKÞM\]M˜g°D€Íæ?þhÏžèaÃ,~ûmVÿþêDG$µ ‘-"¹,H §N=¹|9±±±- Àí«¯†ÛÛødÕ+WžOK+Þ¼ÙΊثWE«V…WVÒ7ož2w®Ñáô Ù::âgm¡E ŸrY aRR »{7]KKyÑ¢‘3gé× +%RXØ‹Ÿ¾ebÒïС ø'ƒÁÞ·ïîÑ£'Mrܽ;:L‰RÇF¶::*NNFÐÈ€O¹, l67::íäÉÇIIù®®ÆK–Œññq€f™ŠF£¯[w1..ëûï½V®ô‚íH¬ääü•+Ï75µíÙ3ÃÇÇèpú"þF¶‰‰ùEE522}¼ÄÙÐ5Èe¸c±8IG>zÿ¾ÊÓÓzñâQ£G„£%×½{oÖ¯¿¤¢¢pèP««1Ñá„jmeîÜyûôé'¾¾N{öB'±h´†´´üê1þF¶ø= á?Èeøjme†‡Ç;ö¨ªª10Ð}ùrOss¢ƒŸ¯©‰±iSÄÕ«/.ùã¾Ð€SÜÄŽ[»ö™L 5b„Ñá„jia¾ySlèä²@Ñhô#G\º”@¡P/9þè6*é^¼xÿý÷çY,Îo¿Í3Æšèp€`tz뎑ááñAACCB¦*)AWñ‚_=ÆßÈÖÌL/±:Ô|ÀM¢€ËñRVVàÀýË—“44W¬7kÖè±%é˜LöÏ?Gž>ýdÚ´A;wNWUU :"ðQQ¯7n¼¢¢":{èPs¢Ã‚UU5¦¦¥¥ãÕül ]\Œ¡ôËq‘›[yèPÌÍ›¯´µU¾ÿÞ{Æ w¸ŒWR°Ùܶ6–ÀooÞ”~÷]FÿõW¸ ‚$©®n ¾“±l™çúõ>wF:½MUU^ô±ŽøÙ¾x‘[]ýŸF¶îî¦êêP ¤ä²€x%%u¿ývïêÕd==µeËÝ ~“8OŸfÏœyÃÐ|éï?ŸXPPýÝwáoß–mÛæ4>8%WiiÝêÕÞ/Y2&8x"o]»öÒ… ñh>x …@⬩‰ñêU!~†„„÷tz#[''#99ø H6Èe1h4úþýw/]JÔ×Wß´Éwòd'¸G¹$¢ÑècÆìnllÃ0LAA6.n£zxxüO?Ý47×9t(ÈÒR—èAOa¿}ûM++݃ƒ,,tnß~½dÉ_†ÉÈPÆ·=uj!Ñ1‚náp¸¹¹6²6Ì®²’rY j -GŽ<3g†s±ŠÃáüþòe!›ÍAQ©;;}##ÍÛ·Ó–.³aÃ$¨x–&YY«VÏË«\»ÖçÀûtzþñA&“vî øê«aD>Y×líí {rŠ¡®®YCnñDrY :m‡Åþõ×S …òí·c,©¨(KtPàóýþûƒ]»ns¹ÿCÈd’®®Úï¿Ï…‹ß¥‹Å9t(æüù„êj:‹ÅåM—‘¡Ü¹³ÚÎ g%#Ûä䂺ºfþF¶nn& Ÿp¸niaººnž8oÞpøÍ ô6Èe(p¹Ø… ñ¿ýv¿¶¶iÞ¼áß}7~É’t/_øûâpÚ@¨Tʽ{kmlúèm7n¤¬Xq®Ýç•Jéß_ g¥IÙ>{–ø;‰„ìí ‚èUË‚^ÿ~ëÖë™™e³f Y»vBÿþêDGzª¡¡e̘_«ªš¸\n»?Q©dssÝû÷×Béˆô)/¯9rwk+³ã‡Œ ÙßßõàÁ9„zÕg4² ½àÀ}‹C&“0 ›3ghHˆ?|Õ½rYЋ²³+¶l¹þäI¶——]HÈT33m¢#ÂñÝwá7n¤p8íY‰DZ³Æ{íZGzÛW_ˆ‹{ÇfwºÝýrÊGD‰Íæff–ò7²UT”µ³3h×ÈvæÌ£OŸæð …¬¦¦øë¯“';>NË‚^A§·íÝý÷ßÏÌÍu¶o÷9îí.=®^M^¹ò|g‡2™ŒF&“îÞ]kk«/âØ@ï¹t)qõê T*¹ó\)(ÈÆÆ®71é'âØ!¸\,+«"))?99?9¹   ZF†âà`èêjö¢µ•Éÿd2™ÄåbcÇÚìÙ3C_~¹,2‡{æÌÓÐÐûd2iÆI³f ¡RÉD„¦  zìØ=mml„þ=tHHF†Êd²ee©C‡šm=fÌ@Hd¥JSãéÓìdz>|WTTC¥R(ƒÁæ•J¶²Ò‹Ž^&}PeeãË—‰‰yOždgf– |…B–“£lÜè»`Á >€p@. „)11oË–ëïÞ•/Y2æÛoǪ©Á]¥J[ËÛ{_~~5^]€Ÿ¢£PÈîî¦ãÆÙŒieggŸO}AMMÓóç¹OždÇÄdÒh øFÇG…Bž;wè®]DÇöbÓ¦ˆÎÎß#„H$ÒÀzÎiw39>ä²@8èôÖ;"ÏŸ2ÄlûöiÝÖ2///66Vıa¹wöâE-þXQ‘bn®dn®ln®¤¢}d?Á’%Kz8‡²2Á'½DËŲ³+ âã SS‹Y,.‰„"ýöÛ´‘#¡/›` =™C]]]kk«°âºmÛîDGgvlrÂD"‘ɤŋ=, ¿ÝO¥   ¡ñï}Ñ!—BõzË–kwûöiÓ¦ êâ™—/_ž9s¦ÈB$'gª¡1™Åª`0 Œ"«’èˆ$UϺqqqÂDȘLNVVÍ›7Õ©©´†ÆÎ£55{”±I+[[[žÌ!##£ªªJXñݪU1UU-§“H?…Ï;eK¡ìì´—-sQW—iˆ@ÂikkÛÙÙñþ gS@¼_|911þüÁÁUTºu<‚oP’èíÛ2SSmyy¢‘`Bü.×ó|¨7x{xPW×ÜÐÐ u$¬ï!í>ËÅGmmsuõ- …Ìåb¼;Ãih(hkéë«hèë«÷ﯮ¯¯®££B"ÁÀ§ÉÈÈh7rYð™0 ;{öé®]·µµU/^\>|¸ÑÞ×røD•Ó IDATîÓÐP‚û—öMµµÍ ŒÀ³Uu U¸ô*ÈeÁç ÑV¯¾øøqÖ²ežë×O”“ƒYXèìØñÑQ€¾RðÉÂÂ^üüó-]]Õ¨¨ïˆ}ä²à46¶mÝzýҥĠ ©pCB rYÐ]éé%K—þÕÒÂøûï¯Ç·%:MÝÀÇq¹Øþýw'O57×~ôh$²Ë‚hhhY°àÔ¡C±[·Nýûï¯ÅêÚäÜÜ\¼ŸKÇ](**Z°`A×3ìaüz²õêöå½BhéÒ¥šššåååŸñ¾Ýrï LHÛîÍ›7oÞ¼J<üà@ R‰8vÿp^Àåb¿üµhÑ™ùóG\»ö­žžš(ßýÖ­[uuu¡ .XYY577s¹Ü#GŽØØØ¨¨¨xxxí§Àùw?¼Žîß¿oaa¡¡¡±k×®®7Mc€@¢Ù‰x¯å_ÿ¨“Áßõ…íè¿c!´zõjkkk<óhjÇmÍápöîÝkee¥¢¢2|øð„„„.ÂkGÒ‚)HûÔ´7Rf Ñš›‹Ÿ12Zö\è3ïæy©¯¾újÞ¼yººº †?~\GGçÚµkeee·oß644DuüNÌ{@§Óeee.\XRR†ª¬¬Ä0ìôéÓçÎÃ0¬©©INNîØ±cååå§N¢R©MMMüßJB³gϦÓé'OžD͘1ƒN§?~!T]]?ÓÛÛ;;;;>>ÞÂÂbÛ¶mü/ÿõ×_§OŸ^TT”––6hР7ò/ Àð>:O^ð<7nDíØ±ƒ7ÿ說ªj·J_¼x¡©©ù©k Ÿ[mmmg[*((hܸqïß¿OKK³··ß¶m¾êêêêNœ8ª©©á_ Þã'Nܽ{·ªª*&&ÆÂ‚›v râĉ>,//ïlÕµ{U÷Ãk·P!___:~õêÕnîv;[Q8Qž—ÁNÔÙI)ƒ¿ëJàþˆýwÌãÑfgg+((œ9sûضþí·ßø—W__r×û&Ö› ›Ûy^¤p í¤H;ŽÈeÁTT4Lžjkûã“'Y½1ÿn~–×ÕÕ:::òÆ´ÝÙ³gyOøë¯¿º>3Œ·oß655q8œÿýïèŸ;¦OŸŽPjkkeddöíÛWWWÇår9N»CpJJ †aL&³Ý㜜ü™iii¼å²°°à¹µµ5ï—И˜gggþÞGçÉ Çår§NJ¡PæÎË¿êð£F»Uúüùó~ýú}ê«­­EÕÕÕ ÜLL&“B¡ðŽ)×®]³°°ÀWÝ£G:®.üi¼Çöööááá¼¹?¾ëC0¾fºXuí^ÕýðÚ-B(..Ã0‡óÑMÓn¢ÀÅ#Ê\V;Qg¹¬ÀÁßõ%pÄþ;æy±©©‰Åbihh „444=zohh8zôè'OžÉíw„þ“ÿcKKKüµµuII ÿŸ ú÷ïO"‘H$’——W~~>Bˆôáu=Oþàqáááqqq>Œˆˆ¸yó&oÕéé饦¦¶[–ÔÔTkkëO]cºººø¥Eà¶611¸¼Ý O ‚© yÂT:¤]ŸÈ}Ä©S ×üðÃ6›Ó«oÔßX9ÎøñãþùçÚÚZ==½[·na¶sçN7n”——GGG´Ì«®®ŽD"EGGã B)))sçÎ---ÅߥµµU^^>""¢ªªêÏ?ÿ”——ommm÷ÓïÚñ1þLOOÏœœœÄÄDKKË­[·ò¿|åÊ•¯_¿2dÈ·ß~Ë¿ŒÃëzžüÁs¹\__ßÑ£Gã¿Ã2™LGGÇÙ³gãmhh8p §§çÝ»w³²²6mÚ„ÒÑÑa0ŸºÆ0 «¬¬ÔÒÒ zöìÙëׯ·mÛ†ŠŠŠÂßkΜ9ãÆËËËKOO·³³Ûºuk« ŸÂ{|øðaCCÃ{÷îUWW?xð`àÀ$©ªª !têÔ©†††iÓ¦µ ²ëU×ØØØîÉÝ ð'NÔ×ׯæn7±ë±-²ÑìDí^‚¯¬“Áßõ%pä¯v¯Â0ìèÑ£¼k_0AÛúàÁƒüËkff†?Y`x¢ÝÙvÝÑ8ÂTZ¤P/ س玾þê}û¢¹\no¿Ww>Ë>ìää„7F¹~ýzÿþýkkk™LæO?ýdjjª¬¬ìááÑ®$¨ã Ã~ûí7MMÍüñdzgÏÖÐИ4iR»`ÌÍÍeee­­­oÞ¼ÙîåÝ9Ÿ#à@Ús}ð@ ×~1ì… O_º”pþü²3܉ô.YYY¼w øHKK›;wnJJJKKK||ü–-[/^LtPÐ)8Š'*Ñb46¶-\x*3³üÒ¥o\\ŒˆGò¨ªª.]ºTüç)΂ƒƒ[ZZüýý«ªªÌÌÌ.\(¶‹/pÓôµíÕ—Áè%p í98"„HX‡»§©×ÐÐòÕW'ss+Ã×8;‹4‘½|ù2~?Q¾)bBXã?..ÎÖÖVGGG(QQʶï[·³³RPH’ŽãÎËö9tzÛܹ'JJê®]ûvà@=¢Ãø|Ëö-55M³fknfDE­20èªÛ9€øƒ\¶¡Ñè3füÁbq""Vèë«@OA.ÛWÐh P(ä7Vê言@.Û'TW7ÍšuŒËÅ.]Z ‰,¤ä²Ò¯¾¾eÖ¬£mm¬ë׿ÓÓS#:„âÝE½Ïª­ejjÊaêëY**T EÀ­ºEƒÉäÖÔ0ûõ“•‘ií—/_ kVõõõøÍÖAßÔÖÖVVVFt ­­M^^ž ä²R®¾¾eúôß[Zâ“È"„Ķû]o£R5¬äåR©j4Ú .·UÄÈÈô“—·nl|*â÷mGKk¦ŒŒV[[~[Û{#ÃX"@NÎDSÓ!ÄáÐÙìZþÿ¸Ü6óy é㉎b´Ëe¡¿¬4kjbÌšu´²’~ýúwе€@ïßW^¼˜™ZTTcbÒoútW__gB¢Ýº•ºlÙ_ee¡¢k~õõ-11QQ¯ÿ÷¿,‡;h±ŸŸ³¯¯“(¿nÑé­ÕYYÙÙ´¢¢š¬¬ŠÜ\—‹ÉÊRMLú ¨ge¥ke¥gl¬emÝ_V¾ö€˜‚\Vj1쯾:‘‘Qzõ*ô‘%FaaMDDRdäëìì ]]U__çÀ@7Gdž$&¹,Ok+óéÓœÈÈÔ{÷Þ46¶YYéùù9M:È‚€»°Xœ¼¼ªìì <µÍΦegW´µ±dd(úúêVVzxjke¥koo¨¨ØwKD@¬@.+8îâÅgó/^\æà`Ht8}KUUãÍ›¯"#S_¾,ÐÐPò÷äççäæfJ&VÊ#n¹,ƒÁNLÌ»?#2òUee£••ž————­»»)‰DØzc³¹¥¥uÿ¤¶YYoß–551Bººªÿ¤¶zêY[÷×Ö†«*€ËJ! þý6ìÁƒ·×¯gcÓŸèpúŠÆÆ¶›7_]¹’”’R(//3q¢ƒŸŸóèÑÅêçi±Íey8îË—‘‘¯ïÜI+/¯0@ÓÛÛ^|¾ „Zð³¶x‚[TTSXXƒRSS´²Ò8ðC‚ke¥gd¤I`"}ä²RhÇŽÈ“'Ÿ?¿tØ0 ¢c‘~--ÌÛ·_GE½~ü8‹ËÅ||ÜFŽ´’——!:4Ä?—å—•U•zëVjNMSSiìX??ç1c¬ed(D‡ö -……ÿ–%dgW×r¹˜ŠŠ¼©©6^–€g·ææ:TªH;'€Ôƒ\VÚ?÷óÏ·þøãË)S\ˆŽEš±Xœ¸¸wɱ±™,ÛÓÓÆ××iÂ{UU¢CëŠdå²<……511‘‘©Éɪª £FYo;i’£’’Ñ¡ Æ+½ÍήÈΦÖde•3lþÒ[ü$®…….”Þ@O@.+U®\Iúþû ;wNŸ7o8ѱH'.{ö,çÊ•¤ØØÌ††V77“À@÷É“54”ˆ­[$4—å))©»{7=&&ãÅ‹\*•2r¤•D|…@ÿ”ÞâÙ-~73³¬¹ùßÒ[¼îo›¥·Ð}ËJ¸¸wóæ\ºțM¾DÇ"…óxEœîî¦~~Î':H\§3IÏeyêêšcc3£¢^ÇŽãr1¼«—ŸŸ“®®¸4Qî­áŸ³¶øÜ Ž ô>ä²R"-­8 àw__çýûgÂgžåæV^º”xëÖ«ââZ33íiÓùù9[YIj3©ÉeyZZ˜ÏžåDF¦Þ½›ÞÒ´·7ôò²6ÍÕÌL›èÐ>G÷Ko-,t((½Èe¥Âû÷•þþ‡ÝÝMOœ˜oBQPP}õj2ÞÖÈH+0Ш»—ôå²< ûñ㬘˜Œ»wÓ««›ðVµ^^vÄ6ôí9&“Ÿ_Í_zûî]9“ ¥·ð䲯¶¶yêÔCJJr+”•ÅôRI·†ˆHNK+î×OyêT1j +RœËòðºzݾýº¢¢ÁÈHËËËÎÏωØVµBÄbqÊÊêùKo32J[Z˜Jo}ä²’ÉdþQYI¿uk|h}6þÖ°ŠŠ²&غf!}'¹ûB.ËÃåboÞ”ÄÄdܸñêýûJ--eOOkñìêÕsíJoß½+¯ªjDPz è —•`†-[ö÷ÿþ—uûö÷ææÜóSÒñZÃþïYT*yÒ$G??çQ£ÊɉÑÝ „«Oå²ü²²*bc3îßÏHJÊWWW?ÞÖËËnÜ8[)þQžwO‡ÂÂü$nQQ-†aªªò&&Pz ËJ°C‡b÷í‹ [2jÔ@¢c‘$¼Ö°11wÌk__§ TU剭×õÙ\–§¸¸öÞ½7ø†ee©ÿtõê[¿±±-?¿êŸÔ––•Uñþ}%‡Ã…Ò[€Dƒ\VRݺ•º|ùßÛ·û/^<ŠèX$‡Ã}øðmddjLLfccëðá–n^^vêêŠD‡&:ËòÔÔ4=|øïêE"‘† 1óò²›2ÅEG§Õêð—Þâ'qssiPz ,ËJ¤·o˦L9ôÅ®¿þHt,âð¤¤|Þ•@xkØÉ“û÷W':4@.ÛQCCËãÇÙ11ÑÑé­­LWWoo»É“LLú1ðÒ[¼î¶°°æíÛ²êê&¥·q¹¬ä©ªjœ<9ÔØXëüùeÒw ‹á­aoÞL))©³°Ð™9sð”).h‘ —íB[ëÉ“ìÈÈÔû÷3èôV¼«—D·(½ˆ3Èe% “Éø£ººñöíï%復"ÆßÖĤßôé®ÒÑV( —í^W¯¨¨Tnl¬5~¼Tuõê9:½­ JobrY ³jÕù{÷Ò##¿·´Ô%:ñRYÙxëÖ‡Ö°::*~~.n’Þ'_è —ý$¼®^ׯ§äåUhxzZ{yÙyzÚP©pöñ?:–ÞæäÐZ[”ÞÚØè÷ë§Lt¼é¹¬$9sæÉæÍ×ÿüsÞäÉNDÇ".jk›¯]{™š’R¨¦¦0mš«ŸŸ“«« üÐ)䲟-+«"**5&&3-­XCCiÜ8??çÑ£ÊÊJm·žã/½Íʪx÷®¼±± Aé-@¨ —•/^¼Ÿ9óµk}V­ò":â573îÜIÃ[ÃÊÈP&Nt€Ä¢; —í¹¢¢šû÷3"#S““ äåeFŒ°ôõuòñqPQ‘þ®^=Ç+½ÅÜ¢¢(½ôä²’¡¨¨ÆÇç7//»ƒç ‘Úµ†õñqp9ÒJ^^†èÐ$ä²BTVVÿðáÛ˜˜Œ¸¸wd2iÔ¨^^v&ØCïªOB§·Tã nQQ ”Þ>ä²€ÉdO›v¸¥…yûöê¾y(g³¹}h ÛÜÜæéiãëëäím§¦Ö‡Zà ä²½¡¾¾%&BóÁƒLƒ=h±ŸŸ³¯¯“žžÑ¡I$‹“—W…ŸµÅsÜì슶6‚Ò[€ ËJ€¯\¿žr÷îSSm¢c)þÖ°4ÝÍÍÄÏÏÙÏÏIWR„Ϲl¯jme>}š™zïÞ›ÆÆ6¼«×Ô©ƒ,,àÓ=ÂfsKKëþIm+²²*Þ¾-kjb (½@.+þ.]J\³æâéÓ 'L°':Ñyó¦ôÒ¥Ä{÷ÒKJê Ý'Nt00Ð :.‰¹¬h0™ì„„¼û÷3"#_UV6ZYéyyÙyyÙBW/!êXz[XXƒ‚Ò[úÈeÅZzzÉ”)ç;m›?ѱˆkXSSí/¾­a… rYÃ[ÕÆÄdÞ¾ýº  ÚÐPcÂoo; èê%t -……5ü¥·¹¹4.ëXzki©« ÐëµJËŠ¯ººfŸßôõÕ¯\Y!Ý{ü­auuUÜÜ …í Ëïê…UÓÔT;ÖÆÏÏyÌk¸{_ïéXz›•UÎ`°”Þ E —S\.¶`Á©´´â{÷ÖéèHçeѼְ/_hj*M:ÈÏÏÉÍÍ”L†a{ ä²â °°&&æCW/ùÑ£Žo;q¢£²²Ñ¡I?¼ô¿§~73³¬¹Jo`ËŠ©S§‡„Ü [2fŒ5ѱkXYYŠC` û°aPÐ&ËŠ•ÒÒºèèô˜˜Œ/r©TÊÈ‘V^^v':hiÁ B‘ÂïéðO}BEvvFGPz €„€\V½}[>iÒoßï-M·E`±8wï¦GD$?y’M"‘&Ovôós5j œÜÝ@t —Ouuͱ±™ø<‡‹wõ‚–â/½Å³ÛââZ(½@SzzÉåËIxkXwwS??çI“õõÕ‰Ž ¹¬»záw ©¨h02Òòò²óós‚Vµâ©]émVVyee#‚Ò[z䲄©¯oQSSàÿ4ÊË«š0aÿ‚#6mò%0°ÏÃßÖÜ\ÇßßeÊKK]¢ãÿ¹¬Dûzݼù*7·RKKÙÓÓºz‰¿Ž¥·EEµ¥· 䲄ùå—¨ÔÔ¢ƒçàç,Y,Δ)©TÊõëßIP7Y‘tåJrvv…±±V@€ÜÝ@¬TV6^¹’ÈûgffÙõë)?þøï—%UU…/¿FDhàóeeUÄÆfÜ¿Ÿ‘œ\ ¦¦0~¼­——ݸq¶ŠŠ I€ÆÆ¶üüªÂ¼ô6+«âýûJ‡‹:”ÞÚÚêKt±¢¹,aÆŽÝóî]¹¢¢ì®]î¿üuîܳ{÷ÖkÚÇÕÔ4]¿ž‚·†ÕÒRž2ÅZÊ'‹ã踥©©BpêŽÅbÏ™ã±wï Ñ„¢¸¸öÞ½7øž(+K9Ò ®­”Dü¥·øÜÜ\ZK Aé-ݹ,1ª«›œœ¶â+ŸD"99¦§—ìß?{Æ w¢Cë kX99êÔ©.n®®&Põ%Î~üñZXØ ‹-ð¯×®};t¨¹ˆCBW[ÛüàAfTÔ븸w†¹¸à]½œuuU‰ |&¼ô¯»-,¬y÷®¼ª /½U01饷ð@.KŒ›7_­XqŽËý°òed( é§Ÿ¾˜;׃ØÀâo K&“&Mrôós=z ¬,´†•ÉÉùS¦ø']]µ””8Ç#MZ?ÎŽ‰ÉˆŽNomeººšx{ÛMšähj ]½$^CC ~ÖöŸú(½!Èe‰²fÍ¥ˆˆ$6›Ã7D"¡ ì÷îÑ«RÍÍ %¥nÝ*“×öþýŒÖVæ˜1Öx_-yy™Þ †ann?•—×·›.+K]¼xÔæÍ~„Dz[[ëÉ“l|ÿ¥Ó[ñ®^~~ÎVVPÎ.=èô¶‚¥·T*ÙÀ@ÃÈH /½µ²Òµ±ÑWQÊ —%Æ AÛ+*Úç!*•¬¦¦øÛo³¼¼ì„þ¦wÏžè·oËþþûë.ž†·†ˆH¾};No;ÖÆ××ÉÛÛNM ZÃJª;£þü3÷#æˆIDATŽÉä´›~ÿþ:{{BB"ÃëêõšFk06Ö?þºz­[wiÕ*¯4E*蹎¥·99´ÖÖÿ”Þâ ®‘‘”Þé¹, ª‡ ûEàŸ¨T²¬,õС I“…û¦õõ-_}öÙ³ …üúõOššJŸ“–V|åJòÝ»éeeõnn&~~ξ¾NzzpM‰÷ömÙ¸q{ù§HÈÄDûÙ³MD…DËÅÞ¼)‰‰É¸~=%/¯J__}ìX//».ºz׺CQQîÈ‘  ìE0–v¥·™™e55MèŸÒ[<ÁÅOâö^é-‡Ã…¢^ÐK Þ‘qqYT*™Íæ¶›N&“œŽŸ×¿¿ï,’R8þɆ†VüŸ·n¥ÎŸ?œ÷×üüªk×^â­aíí –.ããã`h¨!ÜllôÍÍuÞ¿¯BèÃwW*•2}º+±Q#“IŽŽ¬]냷ª‰É {¡¡¡4nœÀ"øèèt2™ÔÜܶpáéÅ‹GnÞ<zÙJ"]]5]]µ‘#­xSx¥·x‚›””Ï+½55Õþ'µféíæÍ×8líZo]]8?„ ÎË`þü“±±™¼ ¿Bd2ð5k¼W­òzsÙóçã7nŒÀ0 ï_H"!ggãÛ·¿ço kbÒoútWh +ÅŠÝ¿?šÅúð ŠD"={¶ÉĤ±QÂÕÜ¿Ÿ™šœ\ //3b„¥¯¯“^[9qbhZZþ)A¡P,-µOZ—‘I%:½µ  Op‹Šj„^z;iRhjj±œeÙ2Ïo¾ Å»@ˆ —56›km½©¥…Á›B¥RÔÔä›?|¸ï[Ëbq6mŠ8>Ãï„BˆD" n™ð^IInÒ$GÿAæðët+,¬6ì^8[[ý˜˜uDÄHAAõ;iÑÑé¯^*(ÈŽg3|¸ÅÆWù?#ddÈT*eÿþYþþƒ ˆ‹ÅÉË«ÊήÀS[ü¾emm,ôY¥·ñ>*•L¥RV¬»bÅ8¸’ä²¢öòe¡ŸßÞ?ÉdÒˆ–¿ÿþ¥Ð{Ðhô… O§¥ã§cùQ©dÃï¿÷†»_ö)'îOK+Å0ŒJ¥lÞì·dÉh¢#⨾¾%&ʗ&&ƒÅât8€¦Owݳgt}êkØlniiÝ?©mEVVÅÛ·eMM ô±ÒÛÊÊFgç­ü³"“IššJÁÁ“fÍ"A·ºâ rYQ;pà~hè}‹ƒïä!!S-)ô+I_¾,˜?ÿÞÊbµ¿t!„ÉÊJ7.nƒp߈¹S§oß~“Íæ’ɤ—/·A}е/¾8’˜˜Ç_ ÅõÇfs‹‹kð•åäÐrrh¹¹•m!UUKKKK= ‰ôóÏ·Ú½–DB‘ŒŒ47mòõós& z - —µiÓ%$äËÊRUTäýrÄ«¿æýþûƒÝ»ocø!Ä·:Mö)4ZàAÛÂÜÜLoÞ\It8@¬Õ×·88léø«Ô€Ît,½e0Ø¥¥uÿm©þ…Bæp¸ÎÎBBü‡ 1}´@ À‰}‘jme¾|Y„2ÄìáÃ`¡'²,燮þòK‡ƒuÈR©ä¨¨×Â}w ætuÕ<<,0 Íœ9˜èX€¸{ð ³ëc‹Åmme­Xr½“ß@¥ªªàè8 0ÐýÇ}Ÿ·a̘$’àá„_JO/ýâ‹Ãß|V\\+Ú`4øOû•ÊÊÊÌÌL¢Bé ÒÒ*1Œ;k–­ŸŸeFÆKáμ¡qð`Ò»w5Ýy2›Í :hP·nF mmm;»žÞ6"##£ªªJ(ñH:;;¥„²ª*=..ŽèXÄ‚­­­ŽŽNg"•+óìÙü‚Q2™D"!^þ.!„0 ãr±'?z”þÝwnÚÚp;•¾n̘1§ggÓxMTÂ3Ú7^FE½òñ1ó÷·RT„ËÂ@§#ªýe{ž:€Îdf2ÃÃØØôÊ/ûïßW¯Y£I§·u¿nÄÊÊJœ¯ý*..Ö¬TUU  ¬¹I.cc‹¢"æ!.D"222„5+CCC55é隉a˜Až––BHQQ–J%ËÈPäåeH$¤ª*RPø0QAA!¤¦¦ ¬,ggןà¸qJJJ:ûkVVE») IVV†Éds8\ …ddÔÏÁÁÀÆFŸÍ®<Øjà@C¸!Y×õˆjG@.«­ µü½eùr¯ÞÛ?¥oÃUVV kVrrrÒ·~>ƒ¶6Ú¹3P[[È7㪪ªR6ÀŽ[Ht@’tq¥±±­®®YV–J&“ð–^ššJvvvvúÖÖú66ý­¬ôää>d#qqqöü× é>éj.¸ï—HÁM@8¡ßUºPXXcoo`oohcÓßÚZÏÖÖ@àMÔølË ·ØÛÜ»·–è(€4ƒ>@RA. $ä²@Rõb.›››‹_êÔñAŠŠŠ,X€aØÜ¹s•••{/¼êbYðExõê•J½rå oúÍ›7eeeÓÓÓñ677;99)++iD}òyÙ[·nÔÕÕ!„.\¸`eeÕÜÜÌår9bcc£¢¢âááñèÑ#üÌs?#FEE¹¸¸(**öïß÷îÝøÄêêj%%%…¡C‡"„ôôôÐ?'ä|ppp˜GÜ”¿  DEOµ³è^`Œ‹ŠŠ<==µô—Q¡ºº:Œ±B¡ &16Áx’±B ŽsY„-‹ÍÍͯ]»&‘HfffÆÆÆ …R.Ë¢d–À’3ª:§;ÈhžÆ:EÒtt'0.sYUua¦þ¢{áíí]ZZJ>íèè ŽUK1êJ]q#›fIë'Nœ¸páÆøñãÇ‘‘‘˜öë'ã `÷E£aÓÓÓÎÎÎ555ãèè蜜mŒa ,¹óR0^PXXHáÉ“'¤ûØU¤„îF—¹¬AŒ&mNj3»b=¹’a:’Öõ„­­mRRR{{{JJ 9ÓÛÛD]È^ƒ……EwwwTTÔúõë ÈÉñññ©©);;;Æ">>>ê –/_Ž"ÏäéÇ„¾¾>ò‚ddäׯ_ƒƒƒ—-[ÖÔÔT__¿sçÎàààúúúÚÚÚmÛ¶!„~þü©P()îééÙßßO·„ÐÔÔ–­Î…ººº7oÞ””””——Stvv&è´´´Ð+×2nÆ 1u¬ îô÷÷ké¯:\]]B¦¦³ä¤ÔËI=aÛÙÙÕÖÖ644¸»»‡††¾{÷N)hH“’k UuŽhÛ\°èG]‹(i:F 0Æ‘ÈØ_è¿A÷íÛ7Ê__ߘ˜u¥uÅXÜ(§Y„Plllqq1ÆXé·W– ³ø¢Ñ033³={ö”–– ½~ý:>>^cXKNÀxeOOO@@UÄÏÏÝAuCF“®GVó€I -gW ½9…žÈi>¹ì÷ïßoÞ¼qöìÿÿ+››ý »öövö¤RéþýûÏŸ?ßÜÜœŸŸONVUUEEE©+B:€± 6‡C$É“H$ ¦¦¦ÑÑÑåååÝÝÝëÖ­Û²eKuuu}}=™dœœÌÌÌz{{Iñžž777º%„ŠŠŠÛ·o?{ö¬¶¶VÕ…?~¤¦¦ææænÞ¼933399ù÷ïß䣸øø¬¬,òU!$ Ÿ>}š““# ç7vT;‹@¾'!„º»»]]]µôWŒ«!•š`9©'p l©T:33S\\,‹9²cDZX>>åååJÅçXr£Îé¨ê‡¥N¹\¾ˆ’æ@`œå²ŒêÂLýEÌäää¹sç\]]mll„B¡D"!ç{YUWªÅ•:Ô¦Yzëuuu¡[·nic•F_Ø #;vléÒ¥£££Ú£}`U¯T(7nÜ666QQQåå厎ŽU¤ÑÙ…Mœå²ú9š0ÆW®\±µµdyž}ßTšýæ4»ê§ÈJN˜ƒw¿4¢@d2ÙÇuÝ ½ÃØÄ<ÚÕ·ýe]غ0@§NéHÒ %°vY`AHOO‹‹ã¬¹ŠŠŠ––êÏ’’¥—;çÇB¦vYãf®"_(9aÞýt„……ÙŽŒ4`”LNNööö>xð 11‘³F[[[š››'&&.]ºtôèQÎZþ5EäófÉbpµµurr2÷MpЮѣ‹b¿€À€ÅåÓ§O111)))aaaœ5š––611±{÷n‘H´zõêÇ/ˆàa4ŒÌOä‹%'L[mùë×¯ŽŽ.'°@^Úõ÷÷דz#£®®ÎÏÏÏçëI=`¸,Tþ£ ÌIQ°Æ0T — ÈeCrYÀP\0T — †ýeÉ?I}ÀÑÑqAê‰D l@wtttttt,¶` ÀhæÊ¬ýee2Ùèèè"ZJXZZZ[[ÿe%£££2™lAìŒ kkkKKË¿¬D$-ˆ1`èüýÓM-5+—Öˆ ä²€¡¹,`¨@. *ÿÿ…áb±‚ªÍIEND®B`‚XQilla-2.3.0/docs/simple-api/XQException_8hpp__dep__incl.png0000644000151400015140000000677711653571064020653 00000000000000‰PNG  IHDR…uï*µrbKGDÿÿÿ ½§“ ´IDATxœí{P×Ço0AŠ¡$‚±)A†t¤T:ÓÒV(åQû«T2¼FPN)ÓÖ(mµvjG°%(`•WUž"Òh¨­ "Té0:"€(±1˜òøýqûÛ_HBäinp?Ý={öœ³÷›½wg³É%¨T*€ƒ &†.g¸hë¸hATßðõõ5T/2{öìñôô„í zp¹ÜÕ«WÓh4CTõ‚ÒÐа}ûvl“¨±;88øý÷ß®½Ø444¨oâóZàz ®Zàz ®ZLOÎÎNoooõ[‚k×®ùúúvuuÁM©Tš››ûÑG%&&) ¸ËKstúèïïŸe"//¯þþþ¹ªG?š÷»úqttŒˆˆÈÊÊzóÍ7Édòèèhffftt4“É<}ú411‘B¡ÄÅÅÙØØtwwŸ8q¢¥¥%==ÝÄÄÀf³étú¼œÇDABBBUU€L&‡……=‡¤s´ǫÈÈHKKËÜÜ\@^^ž••Õ–-[à®3gÎP(”ÌÌÌ·Þz‹Á`¬_¿>''G ÔÔÔ@ …²t"sx&ê(•J‘HÛ–––qqqó”hΙ¶D"1%%¥¶¶¶¨¨¨¶¶6%%…Hü÷"«¯¯ŠŠ‚—ÄÌÌlË–-\.WOÀëׯúé§Ož<\¾|922R*•*ŠüüüÐÐÐÍ›7§¦¦ŠÅbè,—Ësrrrrrär9Ž®]»••5>>¾cÇ@`` ˜8^‰Åâ´´´M›6;vL&“¼¼¼¸\nttô'Ÿ|òË/¿è,òÖ­[áááþþþEEEXL¤:ÓíÞ™Ìç+W® åp8QQQöööØ©ŽŒŒ888h8;::vwwöT*•LðÎ;︹¹egg …Âìììo¿ýÖÌ̬´´ôêÕ«©©©™™™½½½………0Bii©@ ÈÍÍÍÈÈhmmÍÏχöÊÊÊÔÔÔ455=zP^^®QÌáLJ‡‡srr<ØÜÜ\RRíüñGvvv|||nn.üdhÐÔÔtüøñ]»vq8ìÊÓHªÇ8uf¢‡J¥êéé111¹ÿ¾Æ. íŒ]1Û¶mûÏD =))©µµuçΛ6mrrrÔÔÔÄÄÄ0™L{{ûÝ»w¯Y³zÖÖÖ&''Óh4&“óæMhOLLd0ÎÎÎÛ¶m«¯¯×Y¶\.¿råJRRNg2™[·nÅ<7oÞL&“?üðCÖÝꄆ†š››¿÷Þ{L0I§R‰¦7ŸC¸\îíÛ·333Y,–§§ç»ï¾ “ÉK—.åóùëÖ­Swæóù+V¬€íÂÂBí€d2yãÆ§OŸÎÈÈ€–¡¡!ƒÛvvvvvv°=88„¸dÉØÀœW¬X1<<¬³l¡P¨T*_}õU¸iccƒyZ[[°W+++ õiÓ™t*•èaÚ×Ç£G²²²\\\¢££322°”Ï™3g”J%ÜÜ¿ÿåË—‹‹‹½½½õÇ|ðàAEE…››gVVVƒƒƒ°Íçó±ñÊÒÒ²°°Çãñx¼êêjÌ¿¯¯6z{{aßiC¥RMLLÜ€2]—µ:t&J%z˜ž*•*##ƒÉd~üñÇ€*•zäȸ7::zdddçÎÍÍÍ}}}t:ýÇ”ÉdÐðøñ㑉À˜?ýôS``àÞ½{[ZZ®_¿ðóóãp8ÝÝÝÝÝ݇‚Ö¯_üøñ¡¡¡®®®]»vUVVB;›Íîïï¿wï‡ÃÁ¾Åó‘Hôòò:räˆ@ €÷â>>>“iMMÍèè¨þÞЙT§qêLo¼ª««»uëÖÉ“'áç…H$²X¬;vxxxxxx˜››çåååçç;v¬¿¿ßÚÚ:""⯿þ:pàÀwß}øì³Ï4òx¼ÊÊÊLJ……‰Ä/¾øâСCk×® —J¥,K*•¾ýöÛñññÐ?66–Ífoß¾@ xxxÄÇÇ?|øàããóÕW_I¥RooïðððE‹­]»6((èÒ¥Kêé’““ÙlvBB‰DúàƒÂÃÃ';ÓôôtWWWl<Ô‰FR8:i§Õ½‚úû>aß¾}sûý‡\.ïèèX½zõÆT§¿¿?""‚ÇãÍSü©'Y%^^^gÏž ›óþüŠH$Ο £ž¸dÉ’ÎI%F¯…BùòË/QH:'•½ \´Àõ@ \´Àõ@‹¢Ç½{ ]ÂÜ ù¼¤  àâÅ‹)e6 »R©÷ˆD©¡ ™-ô6T³A"! X¼ôÒ*[[_%!“É´µµÅ6 à÷j?ÿ\›™YggguãÆC×2[Âüqþ|3 §çÑÝ»†®e¶½þy¿¯O ‘••µºœÙbôzTV¶‰‹ããŠó盕Jã~[…BYZÚ,—ÿû äðð“›7» [Ò,1n=nÜà …O±MiQEE«ë™=Æ­Gyy+‘øÿSWTUµŽ+ XÒ,1b=d2ù… ·år¥ºQ$»zµÃP%Í#ÖãÊ•»ɘ†‘H$”—ñ]–ëQ^Þ¢þ®0D.W^ºtçéS™AJš=ƪ‡XŸ?ã\3`Þõ P(»wïF9 RÌ»ÖÖÖiii(DŠêqá¡P())Y¹råèè¨R©d³ÙÎÎÎîîî<^ïzƇ‹/¾ñÆæææt:]g/WWW»¸¸˜™™1™Ì‚‚0qÀ!'Ožtvv^¶lYZZZAA½½½¥¥åÞ½{1ϪªªU«VÑh´Ï?ÿ|llÂÿû³X¬åË—Óh4‹¥s9溺:*•ššš:YÌg&š“=¿Ò¶k=88¸|ùò¦¦&•J•››K£ÑÊËËjjjàJ®0švC$™ššÆÄÄôõõÁQ XQilla Simple API Documentation SourceForge.net Logo

FunctionRef Member List

This is the complete list of members for FunctionRef, including all inherited members.
_ref_countReferenceCounted [protected]
asString(const DynamicContext *context) const =0Item [pure virtual]
decrementRefCount() const ReferenceCounted [inline, virtual]
execute(const VectorOfResults &args, DynamicContext *context, const LocationInfo *location) const =0FunctionRef [pure virtual]
FunctionRef()FunctionRef [inline, protected]
generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const =0Item [pure virtual]
getInterface(const XMLCh *name) const =0Item [pure virtual]
getName(const DynamicContext *context) const =0FunctionRef [pure virtual]
getNumArgs() const =0FunctionRef [pure virtual]
getRefCount() const ReferenceCounted [inline]
getSignature() const =0FunctionRef [pure virtual]
getTypeName() const FunctionRef [inline, virtual]
getTypeURI() const FunctionRef [inline, virtual]
gXQillaItem [static]
incrementRefCount() const ReferenceCounted [inline]
isAtomicValue() const FunctionRef [inline, virtual]
isFunction() const FunctionRef [inline, virtual]
isNode() const FunctionRef [inline, virtual]
Item()Item [inline, protected]
partialApply(const Result &arg, unsigned int argNum, DynamicContext *context, const LocationInfo *location) const =0FunctionRef [pure virtual]
Ptr typedefFunctionRef
ReferenceCounted()ReferenceCounted [inline]
typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const =0Item [pure virtual]
~ReferenceCounted()ReferenceCounted [inline, virtual]
XQilla-2.3.0/docs/simple-api/DOMNode_8hpp__incl.png0000644000151400015140000000753311653571064016671 00000000000000‰PNG  IHDRÅuq²ÒbKGDÿÿÿ ½§“IDATxœíkPS×Ú€WBÀ TD$1Å.^Ф(çˆ3 ‚bGQ@ XÇ¡rñ Χ(LgZl©ƒ8maJªr9R´ÖKkmËT°V Hm![@Ë!@4A¹d?Öùö·%ÒΖ$ú>¿VÞ½.ïÚ>Yk›°A   ¦±ž+À'€NÀ'€NÀ'€NXÆNeeeýðÃÆÎâ9¡ªªÊ¸ ß'±XÜØØèééiìDÌ›þþþ––cga>!„<==322Œ…ySSSóÎ;ï; ¸~h|è|è|è|èÄl| ¤°mÛ¶ìììj…ÑÑQ‘Hœ˜˜XVV699I¶‰‰™rç;---00P"‘à ™™™Ô ‰$00ÐÀÜ ¯LŽø¼bŸH~~>ÇS«Õ]]]—.]Š/**²µµEŒŒ$%%ÙÛÛ'$$ðùü?ÿü³°°°¡¡!77—Éd"„z{{ïß¿ïîR*•ÔÎoܸQ]]½víÚ™Ÿ×ó„Ù¬O!‡ãààÀår—-[–••Åãñ.\¸€9s†Ãáœ8qbÅŠÀÏÏO$õöö^»v Wðññ©©©!»º}û¶··7µó?üP.—ÏÔlžOÌÉ'* #44´¶¶¿¬ªªŠÅK†ÍfoÛ¶¼ÿPSSCîh7nÜX³f µÃ¨¨(—ÜÜ\Í/„ }ðÁaaaQQQcccjµúóÏ?ß±cGppprrò½{÷p͉‰ ‘H.‰&&&43ohhˆŽŽ )++Cÿ·WÞºukÇŽáááyyyãããZƒ4œµg¹ú„===¡¡¡!¹\Nîe$îîtéR•Juÿþ}„ÐðððÝ»wW­ZE­Ìd2ÓÓÓþùço¿ývJ?}ô‘L&‰DÇŽ»sçιsç.]ºtþüùøøøÒÒÒ;vˆD"\óâÅ‹R©ôÓO?ÍÍͽ{÷nqq±fÚuuu§N:tèÐéÓ§q°¼¼<;;ûý÷߯««;{ö¬ž ‰cÆ>M ƒÁP«Õ¸Ìd2ýýýñ–÷ÓO?yyyÍ™3gJ}@Ÿ——×ßßO'&&®_¿¾wï^çêêºk×®ªªªÊÊÊÄÄD???GGG__ßøøx\ùÚµkûöísrrruuMHH¨¯¯×ÌêÍ7ßœ={öêÕ«BJ¥“’’Á’%KÞzë-rMÕ4qÌØ§îîn>Ÿ²µµupphooŸR¡½½}áÂ…äKrËÓÜìHÂÃÃ=<lll<|ø°T*ݺu+>´sçN…B±ÿþúúúîîî›7o&%%q¹Ü°°0²9ÞòNœ8±dɇ£k—””ôÅ_à—,+00ðã?–J¥øcˆ   ÐÐЂ‚‚[·nÉåòúúú¢¢"\ÙÏÏïÔ©S}}}<8tèPyy9BèêÕ«ÃÃÃú§–ŸŸ/‘H~ÿý÷Ó§O¯_¿^OÐÄ1§ÏŸ’““qÁÉÉI(ž>^PPðèÑ#77·Ã‡ïÙ³!—ŸŸ¿{÷nƒáï:~ü¸··7™ªV‚‚‚80::ºnݺèèh¼»M þS6ã0Œþ{©­[·Êd²öûO‰$&&¦ººzÚ ~ð÷ŸŒþ¯iNû`ú€OFÆÆÆ&$$Ä Y>‡³ÿ~C‚føÐ øÐ øÐ øÐ øÐ øЉIÜoillLMM5væB¡0v ™‚OäwL™††y®®Fˆ>|||Œ‚ Ü¿3 øüÿ‰v††zO_õÅ®Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:¿O§ÿ»ôÞ½ÿº¦D2àà`cmýß§Ÿ±XÿùO§ó!z/,Æÿû™¦‰»û¼òò»Ô÷šR©¢™´ûvÞxÃ!-fE±XÛ¶­ÐzŸ´³`£P8_Û£~Ñä¤zË–å3ž‘y>é$2ò_SÏ“ÉðñYÀçÃf§ðI'aaË5ÿ³Â`0"#ÿe”|ÌðI'\®­¯¯»æµyókFÉÇ,ŸôõOêeaÁôóóppÐ÷¤òðIÁÁBêú¤Vÿ4b>¦ø¤—^b¯[÷*‹õß³dee±q£Ð¸)™8àÓ4¼ñ†ZM „X,‹õë—ΞmeìŒLðiÖ¯÷d³-B“““Æ€“‰>MìY¬ ¼ dmm°ØØé˜:OÝ¿S©T&òX>“"0ð—/ÿ¼~ý¢Gú‹ÉammmooO¾|Ê'¥RÙÚÚ:ã)™:vvê—^²zõU[89šÌ;W§O˜€€€™KÇLØ»—سg-“©ýñ Ëo¿ý6%×O‘2ød––ÆNÁ<Ÿ:Ÿ:Ÿ:Ÿ:1{Ÿ:;;wíÚ5mµöövƒA-P›ÿòË/,ëÂ… d¼¢¢ÂÊÊJ,?‹œ§À ðÊ+¯ÄÆÆÊd2=õ ‚ˆ‰‰±µµ5¼ÿööv:2³÷©¼¼|Ë–-Z=xð€Ëåâ2‡ÃIKKÓÕ|Ù²eo¿ývJJÊÀÀBèñãÇ{öìÉÈÈðòòzv™S¹}û¶T*íîî...\¾|9ÎD+===eee---3“Û_ƒ Ð××W]]M˜›6mÑz¨­­mÊ5ƒdó'Ož,]º4>>ž ˆÄÄDŸ±±±g–õS „ÚÚÚÈ—jµÚßßÿÈ‘#ºêk—áýÓHsssss35ò—×§ÊÊÊùóçãÛ|çÎ[¸páðð0Bh||üàÁƒóæÍsrr:xðàøø8ÞY¾ÿþ{—šššŒŒ —¹sçÆÆÆ’o>ÍV¡+W®…B6›íêêZZZŠš˜˜ÐÚüáÇ666ÖÖÖÔ]Œ,¯\¹!äììŒ4¶¹)ÍBVVV%%%EEEÙÙÙÅÅÅ%%%–––º’¤qjš0ŒÄÄÄ«W¯êê‡:/ûüî»ïÜÝÝííí³³³É³QQQ±hÑ"''§”””'Ožh ª U.×§ØØØ;wöööΛ7¯®®;ÑÙÙÙÔÔ´|ùòôôtü6Ú¸qãõë×333===›ššÄb±¯¯ojjª®VCCC³f͉DR©´°°Åb åäähm^TTTZZJ<ý–%ËÓÉæ$ééé¡£GRƒÏtj„¶õãÎ;Gÿèø¨®>© „6oÞ<88xéÒ%ü.Â=¼þúë­­­µµµîîî™™™ZƒúMÐ\ŸþŽO …B …Bêx‹/–J¥¸\UUåííókjj"bÑ¢E—/_ÆG[ZZȲf+¹\niiyüøq…B¡V«•Jåä䤮ær¹œø»>‘Í1jµ:,,ÌÂÂ"&&†:ßg:5b:ŸtŽ#ºú¤‚ª©©!brrEÍŸ ˆóçÏ»»»k z¡Ç'‚ Þ}÷] ‹¾¾>2Âf³©ËžÎ_…°Ùl±X¬Ùf+‚ ~üñÇÈÈH??¿¯¿þZWs¥RŠËÔSŒ¿@Lçµ9¦´´ÔÎÎîÆl6»¼¼|f¦FhóéìÙ³>>>úG'+kí“ B¨µµ•:îA¥Rá`cc#›ÍÖÔì ×O¡®®®üüü   A.—Kž…BQ[[‹ãø*„Ïçwttàȯ¿þúÞ{ïéj¥R©Ôjõ… äry\\\HHˆ\.×Úü›o¾Ù°a5±‰‰ „D"1dSš÷ôô¤¤¤äääøûûgdd$$$5¯BX „Pkk+ŸÏ×ü På2d}šœœ ÊÊÊ’ËåÎÎΕ••8ž’’ÙÑÑÑØØèë뛜œL}edd…B±X,‹W­Zµ{÷n]­T*›Í¾xñ¢L&;yò$›ÍV©TZ›ÇÄÄH$ÜþÀ¦°°ðñãÇááሲ)•JBÛúDm®V«7oÞ¼fͼYŒ …ÂíÛ·ÏÀÔ‚@”Ï jjjÂÂÂÁÀÀ€!£ëêóÔ©Sdˆ²þ!ÊúØÖÖV__ïááqäÈ­Aý2аßååå½öÚkx©ÿòË/y<¾ܵk—½½½££c||üðð0uÚ£££©©©|>ßÎÎnûöí …Ç5[qþüy777++«Å‹WTThm>66LMìèÑ£ÇÍÍ­¢¢;>>¾zõj[[[Bç)ÍKJJfÍšõÇ‘úúz&“yñâÅg=5âéŸ ¿üòËÑÑÑÔ ý£ëésŠCÔ2îáôéÓ ,àr¹{÷îU©TZƒúeÐôé©¿ÿÔßßßÒÒß§{îioo÷ð𘢲֠~ð÷é<==ɈÙ>˜àÓ‹Èœ9s þU`¿þ>°ßÏð  ð  ð  ð  -¿îéé™ù<sdtttÊíj->Á¯ôÙâ
XQilla-2.3.0/docs/simple-api/classXQillaConfiguration__inherit__graph.map0000644000151400015140000000076411653571064023502 00000000000000 XQilla-2.3.0/docs/simple-api/functions_0x63.html0000644000151400015140000006345611653571063016316 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- c -

XQilla-2.3.0/docs/simple-api/UpdateFactory_8hpp_source.html0000644000151400015140000002573111653571063020611 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

UpdateFactory.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _UPDATEFACTORY_HPP
00021 #define _UPDATEFACTORY_HPP
00022 
00023 #include <xqilla/framework/XQillaExport.hpp>
00024 #include <xqilla/schema/DocumentCache.hpp>
00025 
00026 #include <xercesc/util/XMemory.hpp>
00027 
00028 class PendingUpdateList;
00029 class PendingUpdate;
00030 class DynamicContext;
00031 
00032 class XQILLA_API UpdateFactory : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory
00033 {
00034 public:
00035   virtual ~UpdateFactory() {}
00036 
00037   virtual void applyUpdates(const PendingUpdateList &pul, DynamicContext *context, DocumentCache::ValidationMode valMode);
00038   virtual void checkUpdates(const PendingUpdateList &pul, DynamicContext *context, DocumentCache::ValidationMode valMode) {}
00039 
00040   virtual void applyPut(const PendingUpdate &update, DynamicContext *context) = 0;
00041   virtual void applyInsertInto(const PendingUpdate &update, DynamicContext *context) = 0;
00042   virtual void applyInsertAttributes(const PendingUpdate &update, DynamicContext *context) = 0;
00043   virtual void applyReplaceValue(const PendingUpdate &update, DynamicContext *context) = 0;
00044   virtual void applyRename(const PendingUpdate &update, DynamicContext *context) = 0;
00045   virtual void applyDelete(const PendingUpdate &update, DynamicContext *context) = 0;
00046   virtual void applyInsertBefore(const PendingUpdate &update, DynamicContext *context) = 0;
00047   virtual void applyInsertAfter(const PendingUpdate &update, DynamicContext *context) = 0;
00048   virtual void applyInsertAsFirst(const PendingUpdate &update, DynamicContext *context) = 0;
00049   virtual void applyInsertAsLast(const PendingUpdate &update, DynamicContext *context) = 0;
00050   virtual void applyReplaceNode(const PendingUpdate &update, DynamicContext *context) = 0;
00051   virtual void applyReplaceAttribute(const PendingUpdate &update, DynamicContext *context) = 0;
00052   virtual void applyReplaceElementContent(const PendingUpdate &update, DynamicContext *context) = 0;
00053 
00054   virtual void completeUpdate(DynamicContext *context) = 0;
00055 
00056 protected:
00057   DocumentCache::ValidationMode valMode_;  
00058 };
00059 
00060 #endif
XQilla-2.3.0/docs/simple-api/inherit_graph_7.md50000644000151400015140000000004011653571063016274 0000000000000004963bc5bcc13f8a474a305070b616fbXQilla-2.3.0/docs/simple-api/URLInputSource_8hpp__incl.png0000644000151400015140000001567611653571064020316 00000000000000‰PNG  IHDRu=s*FbKGDÿÿÿ ½§“sIDATxœíÝ{ò€ì OÈò€ìhD /nܸIt g®\¹Bt!ÈS}¦¶¶öêÕ«“'O&:Ð-oß¾}úô)ÑQ€@žêSáááD‡º%77wÓ¦MDGþ×§dy @v§dy @v§dyŠ\ìíí«««»j±âìì¼jÕª²²2 }»jütl6;66ÖËËËÙÙÙÛÛûСCíííR•ꥭdßK1ÑÑÑ¡ÖÖÖ´´´M›69r„B¡ôöëÒéô€€€¬¬,üá¾}ûjkk7oÞ¬§§WYY¹oß¾æææÀÀÀÞÈ'8Ÿ’1šššÚÚÚÚÚÚFFF¯_¿njjêƒ×åóùL&Sð0//oÙ²efffšššVVV·oßîƒ0€|‚<%èT*FSWWïæúöööW¯^õññ™9sæï¿ÿŽª®®¶··¿}ûö‚ fÏž½ÿþŽŽ¼ï"X^±bBhΜ9x»ššZff¦ sYYYeddàË,kûöí³fÍòððˆmoo; ¾PPPàééùèÑ£C‡yzzºººnÛ¶Åbá+s¹Ü¸¸¸Ù³gÏž=;..ŽËåŠnÔ_ý5þü3f=zTòujìéÞ‚<%c8›Íf³ÙõõõIIIŽŽŽŠŠŠÝïž——wàÀÿøøøææf¼133sÛ¶mÿýïïÝ»wìØ1±cbbB§OŸÆ†„„¸»»‡„„dddÔÖÖ ÖŒŠŠª««‹‹‹Û±cÇŸþ™žž.!žãLJ……=~üøæÍ›Û¶mÛ³gOUUUZZþìÉ“'étz||ü¯¿þZPPpèÐ!ÑîÝ»—š˜˜(È›b·¨;› È ò”ŒYºtéôéÓ§OŸîîîžíéé٣® pvvF þª—/_ndddaa±téÒnþòö‹/¾ÈÈÈˆŠŠ;vìü1oÞ¼k×®!„¸\îõë×W¯^m``0räÈE‹IÐÏÏÏÆÆæÚµk‹/9rägŸ}¶~ýzKKKüÙK—.­Y³F__äÈ‘þþþ÷ïßÁÓÓSMMÍÎÎ!$ȼb·è#6\G'á;A‹Þ:--ÍÐÐ!ÔÖÖ–œœ¼sçÎtp]]]„öÞq722ÂŒëêêº F€ÃáܹsgòäÉ ,HII‰‹‹spp`0|>èСøš†††’466FÕÖÖ b>|øðáÃñå7oÞ¸¹¹ V[áêèè „:}’ v‹$l& 98Ÿ"}}}áÚ+++©Tª¾¾¾èšÊÊÊ...=ºÃ½ØO_¿~/TUUáö!‡z÷îèú†EFF–—— ÆüòË/ñõµ´´èt:þTMM ž»Ϙ:::oÞ¼Á[ÊÊÊuŸ††FZZZNNNNNιsçðÚó£·Hl# §ÈÅÅÅeß¾}wïÞ¥Óé[·nurrêê ”ººzkk+›Í´4666éæ‹FGGWWW?{ö,11ÑÑÑqÀ€¡ìììÖÖVÁ)þZªªªNNN›6mÊÏϧÓéOž<‰upp@Ñh4{{û}ûöÑéô—/_&%%M:U€8''§ÄÄÄ—/_¾|ù2**Jpµkâĉ µµµååå¡¡¡™™™¡ .´´´ôh‹$4™u¹,\¸PUU566¶¶¶VGGÇÁÁÁÛÛ»«•õôôÔÔÔ˜L¦ššÞ²jÕ*árrrºó¢S§N]·n‡Ãqpp˜?¾’’Ò’%KbbbÒÒÒV®\yëÖ-„Ð!CÆŽëæævñâE„PhhhjjjBBBuuµ–––½½½¯¯/>Úš5k¢££§L™ÒÕ€ÂæÏŸÏápBBB8Ž­­­¿¿?Þ¾dÉ’èèèeË–Q(”I“&áí»wï¶¶¶–ü)g§-«¼NÝÙ3€$(ð±úÆñãÇ===»™8úLuuµ··7Ù¢úb·è#6¿ÿüuÔ}²ƒ<%×ÔÕÕg̘AtÒ$v‹úßfÊÈSrMSSó‡~ : i»Eýo3å ä)ÙAžä)ÙAžä)ÙAžün¦O‚x|>!…>½{—«B£qúò»Á`øä©>2lØ0¢£¯¥E©¸XkàÀSÓîþtùÓñx ÷ïÖÖn31aÐhdüyÊ„ ˆü~ß'×0 ‹‰¹¾cÇÅo¿5Šš¯­ÝÝ[KŽ{åË—QP ÄÇûL˜0¢/_ÈÈSò«±±uíÚôœœâ f.Y2±þi¨††–ÀÀ£7o>_¿~úŠS‰ä)9õàAE@À.—»ÀÖÖ„ÀH0 KJºµeËY{{‹¨(/ 5ƒäyJîj½‰GíßïÝǵ^Wòó_,_žJ£)ÄÅùL˜0œèp¹@ž’/MM­kצ_½ú4,ŒtuV}=kõê£wî”ýòË ¢êP@N§äHAÁ«€€Ãü˜˜ÿù‘µ^Wðs½íÛ/::ZîÝë5h*ÑR€<%/oFFžûúkÓýûçëè :IîÜ)[¹2UQ‘ç3~<Ô€ò”`2ÙAAéÙÙOHXëu¥¾žµjUÚÝ»/~ùeÆÒ¥“ˆ òT?÷äIµŸßáÖÖ¶|ýµ)Ñáô€ tr²Ü³j@¹yª?Ãk=[[“èho]]R×z]¹}»låÊ#êê*úXZ ä©þ‰ÉäüðCúåËEAANk×:Q©2üƒówïX+W¦Þ¿_þóÏPÊ)ÈSýÐÓ§5~~),':zÑáHÇß»7{ÏžlW×ñ;vx¨«+èS§ú›ÄÄ›[·ž³¶6Ž]8dˆÑáHS^^éªU©ª<èca1”èp@ß<Õ´´´……£GC ØAž’=lvûúõrZëu¥¦¦1 àHqqÍŽsæÀ}ÍûÈS2æùó7~~)uuÍr[ëu…ËåïØq1&溛ۄ;„èp€t@ž’ x­wêÔƒ+¦¬_?j= ª«‡Ÿ?³sç\W×ñD‡¤ò” ()yãçw¸¶–¹w¯—³ó¢Ã‘ííÜ-[Î%'ß‚°€l˜ÖÁƒ¾#FèøxP>‡Óxtùò#žž_:µ ’TO¹¸Œ½r%XI‰æä´;+ë!Ñá€çS$UQñÎÏ/¥²²aï^/—±D‡#Ãð0)馷÷"#ç()шŽôä)2:{öaHÈqSSýøx_8’ŠK—Š‚‚Ò‡׉÷Pæ@ÝG.ííÜÐÐãGæÎý¿3gVC’’–iÓÆ^ºÄçcÎοž=ûˆèp@ÏÀù‰TT¼ó÷?üêÕ»ß~óš>ÝŠèpú¡¶6ndä?5àÖ­nŠŠT¢#ÝyŠ,Î{œ1l˜öÁƒ¾#GêNváÂãuë~1B/>Þgøp¢Ãuñ::x6œÁk½ ‚ Iõ¶ï¾wñâ<'§ÝçÏ?&:ðap>E°W¯ê—•½Ý¾ÝÝÍí ¢Ã‘#x ˜œ|kñâ‰7΄Ì OéüùÇÁÁ¿j<ècb¢Ot8òèÔ©¿ÂÂNššêÇÇûC HRP÷¯õüýÏœisñb$)¢¸¹}qùòíí\'§Ý.@ HR§z‹Õv÷î ÑöÊÊúY³ö¥§çïÝëµsç\eeøæ!‘LLô/\š1ÃÆÏïð† g::x¢ë\¹ò¤ï§zQDD¦¯oâë× áÆ«WŸN›¶§­­ãòåu_¦¢¢¸k×ܽ{½ÒÓógÍÚWUÕ ülzz¾¯oÒ­[%D… Oõ–›7Ÿ§§ßkii[º4‹Æk=ŸÄiÓÆ^¸dj µ¹xx|yùò:§ÃÅå·k׊ñÆâbzXØI„°ÀÀ£,V±Ê-jDDÑ1ôCMM­îî1—ÏÇêëY -––†¾¾‰×®=ݽÛ3(ȉFƒO—ÈH[[ÝÓóÿªª¶l9ÛØØ:nœ±›[ts3‡ÏÇÚÛ;èô&ø­%!àó¾^±vmúéӸܯthh¨ijªÆÅùŒ7ŒÀÀ@7%'ßÚ´)kðàAoÞ0Ç‘B¡¤¦.›2Å‚ØØää)é»~½xÁ‚áK¡ zölà¸qÆzdË–sqq9ÂÇQA¢¥¥ž—÷£††É!¸>%eMM­kÖ£PÞkÄ0„a(0ð‡ÓAP\ g «ntzçó±¦&ö¦Mg‰ŠJnAž’²ˆˆ³MM­|~ç³T.—÷òe]DD&!Qa29K–[jp¹¼ŒŒû99Ïú>*yyJšòòJ¿ÏåòÅ>ËåòSSï^ºTÔÇQž =^]ÝÈã‰?Ž ÎhiÏþúä)©iii­øp4š•ª  @±µÉd²û<4ÐL&ÇØXÛØX!¤¨H= |>öö-32òÁÉ+¸Ž.5ëÖeœ8ñ§ðg|ŠŠT.—§¢¢èâbåêjcggÿøD†¼~͸|¹èÌ™U)(P0 .ç)JZšŸ½ýh#”§¤#'ç™·÷A|gÒhT.—§®®ìâ2fæL›I“Ìá—12­¾žuýzqffÁÍ›%†)(P¸\¾‚EWwà­[?¨Bt€ýß{yª¦¦†ÀPd›ÝáîžT[ÛŒEMMqòd3{{³¯¿þLFÓ“–––ªªê§ŒÀ`0Øì~XÞÖÕ±rrJ®]+yøð5ŸÂÜÝm¦W?¤ªªª¥õïM·ßûC*)_0}ŒääÇlvÛ”)#¾üÒ`Ì=*•‚öêU9Ñq}¤Ï?ÿüóTMMM]]´â!këÖÖã››Ç|H£ÑNœ8!hÏÊÊRRR***BQ(33³NßÚŸ6m…B)++ÃWÀ„‰6 ·P„¨ªª~óÍ7=’Ð÷ƒƒƒO×͹ԣ¡zéH±X¬àààÏ>ûLUUÕÌÌ,<<œÃáHýU>¨/ç¡lç©ÌÌLWWW±O•——ëêêâËšššëׯ請ÍO?ýØØØˆjjjZ±bExxøØ±ÿÜa¶¢¢âñãÿcƒÁ¸yóæ'F~çÎ:N§Ó ÍÌÌ<==áLÄ’0— '<™B«W¯.((8uêTeeeRRRVVVHHˆ_ŽŒ0!999µµµ˜ìøî»ïZ[[Å>UZZÚiëDÝÛÚÚÆŒãçç‡aX@@À„ ÚÛÛñuB...?ýô“ WJJÊ´iÓB¥¥¥ø ø‚0ÑFá–NÏÖÖÖ"„{^쀒—"©Ì¿ÿþûï¿ÿ–J<}FÂ\ú衤u¤:Í[MMÍüü|ÁÃ7nú«ôTïÍCÑùÓ³ó©³gÏ2 „Pzzú¨Q£ZZZB!!!ƒÖ×× éèèÀ+¬k×®çææ†‡‡ëéé-\¸?mÛ !tîÜ9+++•‘#G¦¦¦"„¸\®ØîïÞ½SWWWUU®æ˶¶¶¡!C† ‘r¯Sw„’’RJJJrrò¶mÛ:”’’¢¨¨(XÓÃÃãøñãØÿÎwNž<éîîÞ£ý&™¢¢¢’’’††F÷»dgg›ššjiimÛ¶ ýo³²²ÌÍÍõõõÛÚÚÄ6J1ìODι$¶Bèüùó666jjjÛ·o—¿ðPÂ(ÊÑ£G-,,´µµwî܉$5¼‹ØÉŒ4hPLLL}}=þpÒ¤I¯^½Â—}}}uuuŒŒ‚ƒƒ9ŽØ?z—vÒwóP8iuç½táÂ…>>>oÞ¼,, ˜6mÚõë×#"",-- ‹ŠŠ¾úê«ààà®z±X,ee常8:ž””D£ÑX,Ö®]»ÄvONNNMMÅÞ·,°QÐ] ,, !)܈zöìÙ!C>|ˆaXcc£ššÚ»wïЧO=zô¨¹¹¹¹¹¹ººzÅŠ‹-’ÐWtðï¿ÿžÉdž:u ÿÃÀ·ËÉÉ©¤¤$??ßÔÔ4""Bl£„aq}y>E¹$¶“ÉTRRZ¼xñëׯÓÒÒBoß¾í*~áyÕé »»»3Œ„„„P}}½„£†w;o1 ûã? •••wíÚUQQ!xjþüù/^¼(,,3fŒä{ºK;¾Þ›‡¢ó§ÇyŠÁ`YYY ¿ØèÑ£ét:¾|åÊkkk<¸ÂÂB ÃÌÍÍOŸ>?ûôéSÁ²h¯††EEÅÝ»w3 >ŸßÜÜÌãñºêîææÖÐЀ}lžtÇñùüY³fQ©Tooï÷vB¥¥¥+W®üñÇ1 KKKsttÄ„¦àÇå)a xúô©„¾¢ƒçææbÆãñð•…÷6†a¦¦¦b% ‹ëË}Zò€=Ý¥_ïÍC)ä) Ã6oÞL¥R…×TQyï<xpøU•¢¢"ÑqD{a–——çîî®®®>qâÄ‹/vÕ½¹¹yæÌ™ø²ð‘Àoù€}(O wÇ¥¦¦jhhܸqCEE%33óß„Piiinn®©©)ŸÏwuuǺ‘§JJJù|>êâúTKK˺uëlmm;½¢ø]/2¸ðü`³ÙxããÇUTTÄ6J×Ç×§È6—ÄöÂ0,++ËÎÎÎÚÚÿ Op€:Åßi¨NýùóçÂíŽÞ"v2³X¬ôôt.—‹?äóù6l044Ä0¬ªªJxÀÂÂBÉ~Ä.Ö{óðS¯O!„ªªª¢££§NºnÝ:A£®®®àx0Œüü|¼¿Ê3tèÐŠŠ ¼åÑ£G[·níª›Íæóù'NœhhhX²dÉŒ3Äv¿|ù²‹‹‹p`\.!T]]Ý­èÔ½¦¦&00p×®]“&M ÷÷÷ÿ8;;»æææ¼¼¼+W®tç£cccál‹‹‹i4Ú°abþsŸššš¯¯ï“'O°ž|Þ'z¹ !„O„PIIÉСC%4’ ç’Ø^l6{îܹ!!!111â–ÂÄü¹‰=@&3†aóæÍÿ4ƒ¢P(ÎÎÎøúƒ¦R©ååÿÜPèÅ‹†††ìé. ¦ïæ¡pÒúà{)Ç›:uê–-[† röìY¼=00ÐÝÝÿüþ«¯¾Zµj•p·²²******úæ›o–-[ÖU/6›­¢¢ròäɺººƒª¨¨°Ùl±Ý½½½«««ñqð[%%%555Íž= ½c477câΧ„»óùüï¿ÿþÛo¿åñx†µ··[YYyyyáÏ¢ÿ½%®X±ÂÂÂÂÞÞ¾S;ú’ð7š˜˜œ;w®¼¼üêÕ«666‹/ìFôþ~”Éd ž0!!¡±±Q´;z³··/--½ÿ¾™™ÙÆÅ6J8¸ÝœÝÑó)rÎ%±½ …B¹téRKKKhh(B¨  @lüÂCa]È+á¨}p2cæãã3jÔ¨óçÏ¿xñâöíÛ¶¶¶k׮şš7ožƒƒCyyyQQ‘¥¥¥ä{ºK±¾š‡ŸZ÷íß¿ܸqøéâ™3g ðRœÉd.Z´HKKKGGÇÏϯ¥¥ExGp8œààà¡C‡jhhxyy1 ¼]´†a&&&JJJ£GÎÊÊÛ½½½}úôéÂEFFjjjš˜˜deeá¯ÛÑÑagg7`ÀL$Ouêž’’¢¬¬,8'Ç0ìþýû 'Ož>ø™8Ðé ‰Mý;wî477Ç?6úùçŸñ­ëÔÇãñ ôòåKÁ³¢vgÆ'&&>\WWwõêÕl6[l£„ƒ‹ë³
XQilla-2.3.0/docs/simple-api/classDynamicContext.html0000644000151400015140000015011311653571064017471 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

DynamicContext Class Reference

The execution time dynamic context interface. More...

#include <DynamicContext.hpp>

Inheritance diagram for DynamicContext:

List of all members.

Public Member Functions

virtual ~DynamicContext ()
virtual DynamicContextcreateModuleDynamicContext (const DynamicContext *moduleCtx, xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager) const =0
virtual void clearDynamicContext ()=0
 Resets the dynamic context, as if it had never been used.
virtual Item::Ptr getContextItem () const =0
 Get the context Item.
virtual void setContextItem (const Item::Ptr &item)=0
 Set the context item to item.
virtual size_t getContextPosition () const =0
 Get the context position.
virtual void setContextPosition (size_t pos)=0
 Set the context position.
virtual size_t getContextSize () const =0
 Get the context size.
virtual void setContextSize (size_t size)=0
 Set the context size.
virtual const VariableStoregetVariableStore () const =0
 get the variable store
virtual void setVariableStore (const VariableStore *store)=0
 set the variable store
virtual const VariableStoregetGlobalVariableStore () const =0
 get the variable store for globally scoped variables
virtual void setGlobalVariableStore (const VariableStore *store)=0
 set the variable store for globally scoped variables
virtual void setExternalVariable (const XMLCh *namespaceURI, const XMLCh *name, const Result &value)=0
 set the value of an external global variable with the given uri/localname pair
virtual void setExternalVariable (const XMLCh *qname, const Result &value)=0
 set the value of an external global variable with the given QName
virtual const RegexGroupStoregetRegexGroupStore () const =0
 get the regex group store
virtual void setRegexGroupStore (const RegexGroupStore *store)=0
 set the regex group store
virtual time_t getCurrentTime () const =0
 Return the current time.
virtual void setCurrentTime (time_t newTime)=0
 Set the current time.
virtual ATDurationOrDerived::Ptr getImplicitTimezone () const =0
 Return the implicit timezone for this system.
virtual void setImplicitTimezone (const ATDurationOrDerived::Ptr &timezoneAsDuration)=0
 Set the implicit timezone.
virtual void registerURIResolver (URIResolver *resolver, bool adopt)=0
 Register a callback object for resolving URIs.
virtual URIResolvergetDefaultURIResolver () const =0
 Returns the default URIResolver.
virtual void setDefaultURIResolver (URIResolver *resolver, bool adopt)=0
 Sets the default URIResolver.
virtual void setDebugListener (DebugListener *listener)=0
 Set the listener for debug messages.
virtual DebugListenergetDebugListener () const =0
 Gets the listener for debug messages.
virtual void setStackFrame (const StackFrame *frame)=0
 Sets the current stack frame whilst debugging.
virtual const StackFramegetStackFrame () const =0
 Gets the listener for debug messages.
virtual Node::Ptr parseDocument (xercesc::InputSource &srcToUse, const LocationInfo *location=0, const QueryPathNode *projection=0)=0
 Parse an XML document from the provided InputSource.
virtual Sequence resolveDocument (const XMLCh *uri, const LocationInfo *location=0, const QueryPathNode *projection=0)=0
 Resolve the given uri (and baseUri) to an XML document.
virtual Sequence resolveCollection (const XMLCh *uri, const LocationInfo *location=0, const QueryPathNode *projection=0)=0
 Resolve the given uri (and baseUri) to a sequence of Node objects.
virtual Sequence resolveDefaultCollection (const QueryPathNode *projection=0)=0
 Resolve the default collection to a sequence of Node objects.
virtual bool putDocument (const Node::Ptr &document, const XMLCh *uri)=0
 Attempts to put the document specified to the given URI by calling the registered URIResolver objects.
virtual SequenceBuildercreateSequenceBuilder () const =0
 Create a new SequenceBuilder, which is used to turn a stream of events into a Sequence.
virtual UpdateFactorycreateUpdateFactory () const =0
 Creates a new UpdateFactory, used for performing updates.
virtual void testInterrupt () const =0
 Test if the query should be interrupted, and throw if so.

Detailed Description

The execution time dynamic context interface.


Constructor & Destructor Documentation

virtual DynamicContext::~DynamicContext ( ) [inline, virtual]

Member Function Documentation

virtual void DynamicContext::clearDynamicContext ( ) [pure virtual]

Resets the dynamic context, as if it had never been used.

virtual DynamicContext* DynamicContext::createModuleDynamicContext ( const DynamicContext moduleCtx,
xercesc::MemoryManager memMgr = xercesc::XMLPlatformUtils::fgMemoryManager 
) const [pure virtual]
virtual SequenceBuilder* DynamicContext::createSequenceBuilder ( ) const [pure virtual]

Create a new SequenceBuilder, which is used to turn a stream of events into a Sequence.

virtual UpdateFactory* DynamicContext::createUpdateFactory ( ) const [pure virtual]

Creates a new UpdateFactory, used for performing updates.

Caller owns the returned object, and should delete it

virtual Item::Ptr DynamicContext::getContextItem ( ) const [pure virtual]

Get the context Item.

virtual size_t DynamicContext::getContextPosition ( ) const [pure virtual]

Get the context position.

virtual size_t DynamicContext::getContextSize ( ) const [pure virtual]

Get the context size.

virtual time_t DynamicContext::getCurrentTime ( ) const [pure virtual]

Return the current time.

virtual DebugListener* DynamicContext::getDebugListener ( ) const [pure virtual]

Gets the listener for debug messages.

virtual URIResolver* DynamicContext::getDefaultURIResolver ( ) const [pure virtual]

Returns the default URIResolver.

virtual const VariableStore* DynamicContext::getGlobalVariableStore ( ) const [pure virtual]

get the variable store for globally scoped variables

virtual ATDurationOrDerived::Ptr DynamicContext::getImplicitTimezone ( ) const [pure virtual]

Return the implicit timezone for this system.

virtual const RegexGroupStore* DynamicContext::getRegexGroupStore ( ) const [pure virtual]

get the regex group store

Referenced by AutoRegexGroupStoreReset::AutoRegexGroupStoreReset().

virtual const StackFrame* DynamicContext::getStackFrame ( ) const [pure virtual]

Gets the listener for debug messages.

Referenced by AutoStackFrameReset::AutoStackFrameReset().

virtual const VariableStore* DynamicContext::getVariableStore ( ) const [pure virtual]

get the variable store

Referenced by AutoVariableStoreReset::AutoVariableStoreReset().

virtual Node::Ptr DynamicContext::parseDocument ( xercesc::InputSource srcToUse,
const LocationInfo location = 0,
const QueryPathNode *  projection = 0 
) [pure virtual]

Parse an XML document from the provided InputSource.

virtual bool DynamicContext::putDocument ( const Node::Ptr document,
const XMLCh *  uri 
) [pure virtual]

Attempts to put the document specified to the given URI by calling the registered URIResolver objects.

Returns whether the operation was successful.

virtual void DynamicContext::registerURIResolver ( URIResolver resolver,
bool  adopt 
) [pure virtual]

Register a callback object for resolving URIs.

Multiple URIResolver objects can be registered with the DynamicContext at the same time. The most recently added URIResolver will be called first, and if it returns false, subsequent ones will be called - ending in a call to the fallback routines.

If "adopt" is false, the DynamicContext will not adopt this object, making the user responsible for making sure that the URIResolver object's lifespan matches or exceeds the life of the DynamicContext.

virtual Sequence DynamicContext::resolveCollection ( const XMLCh *  uri,
const LocationInfo location = 0,
const QueryPathNode *  projection = 0 
) [pure virtual]

Resolve the given uri (and baseUri) to a sequence of Node objects.

If the uri is relative, the base uri is obtained from the context.

virtual Sequence DynamicContext::resolveDefaultCollection ( const QueryPathNode *  projection = 0) [pure virtual]

Resolve the default collection to a sequence of Node objects.

virtual Sequence DynamicContext::resolveDocument ( const XMLCh *  uri,
const LocationInfo location = 0,
const QueryPathNode *  projection = 0 
) [pure virtual]

Resolve the given uri (and baseUri) to an XML document.

If the uri is relative, the base uri is obtained from the context.

virtual void DynamicContext::setContextItem ( const Item::Ptr item) [pure virtual]

Set the context item to item.

Referenced by AutoContextInfoReset::AutoContextInfoReset().

virtual void DynamicContext::setContextPosition ( size_t  pos) [pure virtual]

Set the context position.

Referenced by AutoContextInfoReset::AutoContextInfoReset().

virtual void DynamicContext::setContextSize ( size_t  size) [pure virtual]

Set the context size.

Referenced by AutoContextInfoReset::AutoContextInfoReset().

virtual void DynamicContext::setCurrentTime ( time_t  newTime) [pure virtual]

Set the current time.

virtual void DynamicContext::setDebugListener ( DebugListener listener) [pure virtual]

Set the listener for debug messages.

virtual void DynamicContext::setDefaultURIResolver ( URIResolver resolver,
bool  adopt 
) [pure virtual]

Sets the default URIResolver.

virtual void DynamicContext::setExternalVariable ( const XMLCh *  namespaceURI,
const XMLCh *  name,
const Result value 
) [pure virtual]

set the value of an external global variable with the given uri/localname pair

virtual void DynamicContext::setExternalVariable ( const XMLCh *  qname,
const Result value 
) [pure virtual]

set the value of an external global variable with the given QName

virtual void DynamicContext::setGlobalVariableStore ( const VariableStore store) [pure virtual]

set the variable store for globally scoped variables

virtual void DynamicContext::setImplicitTimezone ( const ATDurationOrDerived::Ptr timezoneAsDuration) [pure virtual]

Set the implicit timezone.

virtual void DynamicContext::setRegexGroupStore ( const RegexGroupStore store) [pure virtual]

set the regex group store

virtual void DynamicContext::setStackFrame ( const StackFrame frame) [pure virtual]

Sets the current stack frame whilst debugging.

virtual void DynamicContext::setVariableStore ( const VariableStore store) [pure virtual]

set the variable store

virtual void DynamicContext::testInterrupt ( ) const [pure virtual]

Test if the query should be interrupted, and throw if so.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/LocalFileInputSource_8hpp__incl.png0000644000151400015140000001020611653571064021466 00000000000000‰PNG  IHDRËuoY‚abKGDÿÿÿ ½§“;IDATxœíkTçÖÇŸ!ááÈUBCDE4E.é*²HñÒ¢ Pï"Ú*¶• _´¶hµu©)bÚw‰µXµ€·zE[mÑv±ªµˆhÁ#šP$äœó®¼1™„$Í㻟æÙyöž½÷ü3ó$™$Žã(ÃÍÙ /9 0€Z@aµ€Âj¡Ûê0}út*ò\‚¸¸¸7Úäb³Â.\¸0nܸàà`[WçöíÛþþþ¶zÙ¬0„PZZZ||¼Ž€K³yóf;¼`P (  P@- 0€Z@aµP¢0'‹P,óx<}pSô gNnJ¥rß¾}ééé3fÌÈÊÊ:pà€Z­vø^„¢êþ ö¼[átD"QHHˆ¡…F£¥§§f‰dåÊ•ÕÕÕÄpÏž=R©tË–-Æ kmmݳgOwwwnnî`¦ôbâ’WI??¿€çñõõ]±bÅ`æÐßßßÕÕ¥^½z5;;›Ãáøùùq¹ÜÜÜÜk×® f>/,ƒ§0…B±mÛ¶¹s禥¥íÛ·O­VëtºÌŸ??))©¨¨H¡P3ùå—ììì™3g¦¤¤|óÍ7Ö'½8jµÚ’’’ääääää’’­Vk4Çã]¸paÑ¢EsæÌùöÛoõq®]»¶`Á‚äää½{÷j4Ãàúíwß}!4oÞ<Â>dȪª*½æ¸\nee¥¹ÂIõõõóçÏ¿yó&ig¬!ôÛo¿eff&&&:tÈrEFFkúlƒ§°Ý»wwtt”””lß¾ý×_=|øðÑ£GüñÇ¢¢¢]»vµµµUTT „z{{7mÚÄáp***V­ZUZZÚÙÙiJ¥R) Ðét¤{ùä“ëׯ›“xqq1BèøñãÄP(Ö××§¦¦ …ÂÊÊJ©Tj¡p ]:räȆ nݺeÚ++º~ýziii~~~YY™^ñ¤YSæ?g¦Õj/]º´fÍš6›½dÉ’óçÏŸ:ujéÒ¥l6{äÈ‘ë×¯ŠŠByxx”——çææŸ~öôôE[¾|ùlnܸAºÓ3gά]»688˜ÍfçääNKJJòññ™1cBH>>22222rÁ‚_ýuII ŸÏ7W¸¹€, !$•JM;ceE! ìÈB™dæïïïææ&‘Hˆfµ··á8þøñã‘#G"„š››ëêê²²²úúú _ýuFsæÌ»wêëë»k×.B‹ …B&“™Î1:=b³Ù¡¶¶6â€!„t:F{úô©é|Ç·nÝÊb±"""ˆ˜S¦L9qℹÂ-$´hÚ‡WDjt8T]%;;;eÐét·gωDòàÁƒòòr@PVVöàÁƒìÞ½›X»h4­VK§ÓÕj5±Îèííµ/‡iÓ¦•––J¥Ò–––üüüªª*+E"‘X,¾{÷nYYÙôéÓ}||BçÎëííÕ/¼”J%BˆÁ`$$$lÞ¼¹®®N"‘ܾ}{ß¾}|>!DZ¸…€¤1WÑ©S§L–+²`t8TÃV¯^m8¬­­]»v­H$Z¹r¥»»û›o¾™™™‰a˜J¥ …*•*&&&''!äãã³jÕª­[·2ŒŒŒ >ŸŸŸŸ/‰ìÈaÙ²e"‘(;;ð¸¸8"¾5‚uëÖ©T*>ŸŸ™™éáá±lÙ²ââ⊊Š÷Þ{ï§Ÿ~B1b„ )))§OŸFåççoÞ$ggä2€Â¬eÞ¼÷÷÷#„ w ÊÙé¸  0káñ"  C³fMðô„OÛ¬å¹N)•J¹\î¬T^|‚±55 <»½½ÝÙ¹¼¸„††ŸSXwwwSSÓàæãJDEùÔÖzúúöA—,`Iañññƒ”‹«‡cXŸÏsv"/(Ož<¹s玑Öa6àæ†åäÄ;; fîî4g§àb€Âj…Ô ¨P‹Ë+¬µµuÉ’%Ž …aXss³Cb¢P(òòòFŽÉ`08NAAJ¥rø^„¢êÌáò «ªªJJJzÑB´´´é‡kÖ¬©¯¯?vìXkkkyyyuuµP(tàî^Pp¤Rimm-îR¼õÖ[½½½Ž …ºwïÞ?xïÞ=ÃûùùÕÕÕé‡W®\a±Xÿ|/¶â¨êL!ÕÍç°šš&“I||yøðáÑ£G÷ôô „4P(>|xpp°P(Ôh4ÍÍ͆]¼x‘Åb]¾|¹  €Åb 6láÂ…D4S/„Љ'¸\®——›Í>xð BH«Õ’º?}úÔÛÛ›Á`z!„Nž<9qâÄ!C†„„„lÛ¶ÍBþ†¡ Á0ìСC‘‘‘Ÿ~ú)Bˆ¨«ººz̘1ÁÁÁ¹¹¹}}}„‘pÑoÇÄÄ „FŒA؇Z\\üìÙ3b÷×_Û‹/ ËËËS©T¤ín©ç΋ˆˆð÷÷/**²\‘‘ÑVµ d×9láÂ…‹-züøñðáï_¿N·oßž’’ÒÚÚÚÐÐ0iÒ¤ 6ÏàY³f]ºt©°°0**ª¡¡¡±±qêÔ©yyyæ¼ …§§gII‰D")//§Óé …bÇŽ¤î_}õÕÁƒq'õêêêòððXºté£G***BOž<1—¿>þü³!”šš*—ËKKKBÏž=#êJHHhjjª««‹ˆˆ(,,4<]é·ÎagÏže2™žžžÓ§Oß±cÇÇõeffòùüû÷ï744Œ?Þr@[[jtøBo¿ývWW×±cLj§–…ŠŒŒ–…Aª{&—Ëø\®á.ÇŽ+‘HˆíóçÏGGG)644à8>f̘ãÇÞ¹sG¿mê%“ÉÜÝÝwîÜ)—Ëûûû»»»u:9÷””™L†ã8©W__ßü¡P(t:Ý•+Wôº!Í_ 7QѵZMØ ëÂq¼²²2""Â…á8®Õjëêê¶lÙ2~üxvèÐ!"2Fûý÷߉9Ç·ÐÖ–>„ÐåË—q×étVddÄ-â0…á8¾eË&•Jõ/¯çî*öõõ%RT«ÕÄ£¦qL½p¿zõjjjª··÷´iÓNŸ>mν»»{Μ9ú¡©ŽãÕÕÕ±±±ÑÑÑÄ‹D½nŒò7 e¤°?ÿüÓÐNÔ¥T* ã­[·¼¼¼ AÜy?¯0…Bqøða­VK ûûû7nÜÈd2qokk3 ØÐÐ`9 -5!ÔÔÔdeEFFÓÝâ˜uB¨­­M$ ‚uëÖéAAAú£"—Ëëêê»»»;B(44ôáÇ„åæÍ›ü±9/¥RÙßßÿÝwßÉd²eË–%&&Êd2R÷~øaæÌ™„‘ÔK©T¾óÎ;B¡°¾¾¾¸¸ØBþ†¡Lqs#éqBMMMúûU´Z-BH,›ÎÇq<##£±±‘b6cÆ bþðáÃi4ZKK ñÐýû÷™L¦…€¶¶Ô4ý oÀŠH¶1 Ðétà£>’Éd#FŒ¨©©!ì¹¹¹©©©>¼uëÖÔ©SW¯^mø,,((àr¹o¼ñFvv¶9/¥RéååuôèÑŽŽŽ/¿üÒËËK©T’ºgee‰Åb"©—\.Ç0ìÌ™3===ùùù¡úúzÒü Cá&ç0£m¢.wïÞ½7np8œM›6utt „ÊËËÿþûïääddpÊéîî&Ü-Z4zôè“'OÞ¿ÿÚµk111ï¿ÿ>ñPFFŸÏoiiillŒŠŠ²ÐÖ–â8^ZZÚÙÙiSE¤FËÚpÌUrïÞ½¯½öq¢þþûïCBBˆåKWW×’%KüýýW¬XÑÓÓcØ•J•——êë뛞ž.—Ë »©Žã•••£Fòðð;vluu5©»Z­ž={¶ab¦^8Žþù篼òJqqqzzzpp°iþR©Ô(”5 +++  Z³f q)Ùºu«ŸŸß¨Q£ª««‰Â5Mll¬á®Õj ¹\.ƒÁxõÕWׯ_¯¿Éd² †„„|ðÁæÚÝR;*2W¦HõóÜï‡wÁˆ–innæp8øKô»k¤ÙQ&©~\þ=}àf3C‡ÍÉÉqvŽ„´"G• WIÀaÀUp 0€Z@aµ€Âj…ÔBòoøQÀ> …©‘Da𣠀¨Öaµ€Âj…Ô ¨å¿—ÀˆWElû¬IEND®B`‚XQilla-2.3.0/docs/simple-api/DocumentCache_8hpp.html0000644000151400015140000001352111653571064017154 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

DocumentCache.hpp File Reference

#include <vector>
#include <xqilla/framework/XPath2MemoryManager.hpp>
#include <xqilla/items/Node.hpp>
#include <xercesc/util/XercesDefs.hpp>
#include <xercesc/util/XMemory.hpp>
#include <xqilla/framework/XPath2MemoryManager.hpp>
#include <xqilla/items/Node.hpp>
Include dependency graph for DocumentCache.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  DocumentCache
 Expression Context is a storage for contexts. More...

Namespaces

namespace  xercesc

Typedefs

typedef std::vector< const
XMLCh *, XQillaAllocator
< const XMLCh * > > 
VectorOfStrings

Typedef Documentation

typedef std::vector<const XMLCh*, XQillaAllocator<const XMLCh*> > VectorOfStrings
XQilla-2.3.0/docs/simple-api/classAutoMessageListenerReset.html0000644000151400015140000001535311653571063021473 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

AutoMessageListenerReset Class Reference

#include <ContextHelpers.hpp>

List of all members.

Public Member Functions

 AutoMessageListenerReset (StaticContext *context, MessageListener *listener=0)
 ~AutoMessageListenerReset ()

Protected Attributes

StaticContextcontext_
MessageListenerlistener_

Constructor & Destructor Documentation

AutoMessageListenerReset::AutoMessageListenerReset ( StaticContext context,
MessageListener listener = 0 
) [inline]
AutoMessageListenerReset::~AutoMessageListenerReset ( ) [inline]

Member Data Documentation


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classATGYearMonthOrDerived.html0000644000151400015140000003772211653571064020620 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATGYearMonthOrDerived Class Reference

#include <ATGYearMonthOrDerived.hpp>

Inheritance diagram for ATGYearMonthOrDerived:

List of all members.

Public Types

typedef RefCountPointer< const
ATGYearMonthOrDerived
Ptr

Public Member Functions

virtual const XMLCh * getPrimitiveTypeName () const =0
virtual const XMLCh * getTypeURI () const =0
virtual const XMLCh * getTypeName () const =0
virtual const XMLCh * asString (const DynamicContext *context) const =0
virtual bool equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
virtual int compare (const ATGYearMonthOrDerived::Ptr &other, const DynamicContext *context) const =0
 Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.
virtual bool hasTimezone () const =0
 Returns true if a timezone is defined for this.
virtual ATGYearMonthOrDerived::Ptr setTimezone (const Timezone::Ptr &timezone, const DynamicContext *context) const =0
 Sets the timezone to the given timezone.
virtual
AnyAtomicType::AtomicObjectType 
getPrimitiveTypeIndex () const =0

Member Typedef Documentation


Member Function Documentation

virtual const XMLCh* ATGYearMonthOrDerived::asString ( const DynamicContext context) const [pure virtual]

Implements AnyAtomicType.

virtual int ATGYearMonthOrDerived::compare ( const ATGYearMonthOrDerived::Ptr other,
const DynamicContext context 
) const [pure virtual]

Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.

virtual bool ATGYearMonthOrDerived::equals ( const AnyAtomicType::Ptr target,
const DynamicContext context 
) const [pure virtual]

Implements AnyAtomicType.

virtual AnyAtomicType::AtomicObjectType ATGYearMonthOrDerived::getPrimitiveTypeIndex ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATGYearMonthOrDerived::getPrimitiveTypeName ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATGYearMonthOrDerived::getTypeName ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATGYearMonthOrDerived::getTypeURI ( ) const [pure virtual]

Implements AnyAtomicType.

virtual bool ATGYearMonthOrDerived::hasTimezone ( ) const [pure virtual]

Returns true if a timezone is defined for this.

False otherwise.

Implements DateOrTimeType.

virtual ATGYearMonthOrDerived::Ptr ATGYearMonthOrDerived::setTimezone ( const Timezone::Ptr timezone,
const DynamicContext context 
) const [pure virtual]

Sets the timezone to the given timezone.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classAutoDocumentCacheReset.html0000644000151400015140000001412611653571063021100 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

AutoDocumentCacheReset Class Reference

#include <ContextHelpers.hpp>

List of all members.

Public Member Functions

 AutoDocumentCacheReset (DynamicContext *context)
 ~AutoDocumentCacheReset ()

Public Attributes

DocumentCacheoldDC

Protected Attributes

DynamicContextcontext_

Constructor & Destructor Documentation

AutoDocumentCacheReset::AutoDocumentCacheReset ( DynamicContext context) [inline]
AutoDocumentCacheReset::~AutoDocumentCacheReset ( ) [inline]

Member Data Documentation


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classEventSerializer.html0000644000151400015140000007500111653571064017655 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

EventSerializer Class Reference

#include <EventSerializer.hpp>

Inheritance diagram for EventSerializer:

List of all members.

Public Member Functions

 EventSerializer (const char *encoding, const char *xmlVersion, xercesc::XMLFormatTarget *target, xercesc::MemoryManager *mm=xercesc::XMLPlatformUtils::fgMemoryManager)
 EventSerializer (xercesc::XMLFormatTarget *target, xercesc::MemoryManager *mm=xercesc::XMLPlatformUtils::fgMemoryManager)
 ~EventSerializer ()
virtual void setLocationInfo (const LocationInfo *location)
 Recieves a LocationInfo object that is owned by the caller, and will be updated with the current location information as the parse progresses.
virtual void startDocumentEvent (const XMLCh *documentURI, const XMLCh *encoding)
 Handles a document node as an event.
virtual void endDocumentEvent ()
 Handles a document node as an event.
virtual void startElementEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname)
 Handles the start of an element node as an event.
virtual void endElementEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName)
 Handles the end of an element node as an event.
virtual void piEvent (const XMLCh *target, const XMLCh *value)
 Handles a processing instruction node as an event.
virtual void textEvent (const XMLCh *value)
 Handles a text node as an event.
virtual void textEvent (const XMLCh *chars, unsigned int length)
 Handles a text node as an event.
virtual void commentEvent (const XMLCh *value)
 Handles a comment node as an event.
virtual void attributeEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)
 Handles an attribute node as an event.
virtual void namespaceEvent (const XMLCh *prefix, const XMLCh *uri)
 Handles a namespace binding as an event.
virtual void atomicItemEvent (AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)
 Handles an atomic item as an event.
virtual void endEvent ()
 Called when all events have been reported.
void addNewlines (bool add)
void useSelfClosingElement (bool value)
void addXMLDeclarations (bool value)

Constructor & Destructor Documentation

EventSerializer::EventSerializer ( const char *  encoding,
const char *  xmlVersion,
xercesc::XMLFormatTarget target,
xercesc::MemoryManager mm = xercesc::XMLPlatformUtils::fgMemoryManager 
)
EventSerializer::EventSerializer ( xercesc::XMLFormatTarget target,
xercesc::MemoryManager mm = xercesc::XMLPlatformUtils::fgMemoryManager 
)
EventSerializer::~EventSerializer ( )

Member Function Documentation

void EventSerializer::addNewlines ( bool  add) [inline]
void EventSerializer::addXMLDeclarations ( bool  value) [inline]
virtual void EventSerializer::atomicItemEvent ( AnyAtomicType::AtomicObjectType  type,
const XMLCh *  value,
const XMLCh *  typeURI,
const XMLCh *  typeName 
) [virtual]

Handles an atomic item as an event.

Reimplemented from EventHandler.

virtual void EventSerializer::attributeEvent ( const XMLCh *  prefix,
const XMLCh *  uri,
const XMLCh *  localname,
const XMLCh *  value,
const XMLCh *  typeURI,
const XMLCh *  typeName 
) [virtual]

Handles an attribute node as an event.

Implements EventHandler.

virtual void EventSerializer::commentEvent ( const XMLCh *  value) [virtual]

Handles a comment node as an event.

Implements EventHandler.

virtual void EventSerializer::endDocumentEvent ( ) [virtual]

Handles a document node as an event.

Implements EventHandler.

virtual void EventSerializer::endElementEvent ( const XMLCh *  prefix,
const XMLCh *  uri,
const XMLCh *  localname,
const XMLCh *  typeURI,
const XMLCh *  typeName 
) [virtual]

Handles the end of an element node as an event.

Implements EventHandler.

virtual void EventSerializer::endEvent ( ) [virtual]

Called when all events have been reported.

Implements EventHandler.

virtual void EventSerializer::namespaceEvent ( const XMLCh *  prefix,
const XMLCh *  uri 
) [virtual]

Handles a namespace binding as an event.

Implements EventHandler.

virtual void EventSerializer::piEvent ( const XMLCh *  target,
const XMLCh *  value 
) [virtual]

Handles a processing instruction node as an event.

Implements EventHandler.

virtual void EventSerializer::setLocationInfo ( const LocationInfo location) [inline, virtual]

Recieves a LocationInfo object that is owned by the caller, and will be updated with the current location information as the parse progresses.

Reimplemented from EventHandler.

virtual void EventSerializer::startDocumentEvent ( const XMLCh *  documentURI,
const XMLCh *  encoding 
) [virtual]

Handles a document node as an event.

Implements EventHandler.

virtual void EventSerializer::startElementEvent ( const XMLCh *  prefix,
const XMLCh *  uri,
const XMLCh *  localname 
) [virtual]

Handles the start of an element node as an event.

Implements EventHandler.

virtual void EventSerializer::textEvent ( const XMLCh *  value) [virtual]

Handles a text node as an event.

Implements EventHandler.

virtual void EventSerializer::textEvent ( const XMLCh *  chars,
unsigned int  length 
) [virtual]

Handles a text node as an event.

Implements EventHandler.

void EventSerializer::useSelfClosingElement ( bool  value) [inline]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classATGYearOrDerived.html0000644000151400015140000003732111653571064017605 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATGYearOrDerived Class Reference

#include <ATGYearOrDerived.hpp>

Inheritance diagram for ATGYearOrDerived:

List of all members.

Public Types

typedef RefCountPointer< const
ATGYearOrDerived
Ptr

Public Member Functions

virtual const XMLCh * getPrimitiveTypeName () const =0
virtual const XMLCh * getTypeURI () const =0
virtual const XMLCh * getTypeName () const =0
virtual const XMLCh * asString (const DynamicContext *context) const =0
virtual bool equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
virtual int compare (const ATGYearOrDerived::Ptr &other, const DynamicContext *context) const =0
 Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.
virtual bool hasTimezone () const =0
 Returns true if a timezone is defined for this.
virtual ATGYearOrDerived::Ptr setTimezone (const Timezone::Ptr &timezone, const DynamicContext *context) const =0
 Sets the timezone to the given timezone.
virtual
AnyAtomicType::AtomicObjectType 
getPrimitiveTypeIndex () const =0

Member Typedef Documentation


Member Function Documentation

virtual const XMLCh* ATGYearOrDerived::asString ( const DynamicContext context) const [pure virtual]

Implements AnyAtomicType.

virtual int ATGYearOrDerived::compare ( const ATGYearOrDerived::Ptr other,
const DynamicContext context 
) const [pure virtual]

Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.

virtual bool ATGYearOrDerived::equals ( const AnyAtomicType::Ptr target,
const DynamicContext context 
) const [pure virtual]

Implements AnyAtomicType.

virtual AnyAtomicType::AtomicObjectType ATGYearOrDerived::getPrimitiveTypeIndex ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATGYearOrDerived::getPrimitiveTypeName ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATGYearOrDerived::getTypeName ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATGYearOrDerived::getTypeURI ( ) const [pure virtual]

Implements AnyAtomicType.

virtual bool ATGYearOrDerived::hasTimezone ( ) const [pure virtual]

Returns true if a timezone is defined for this.

False otherwise.

Implements DateOrTimeType.

virtual ATGYearOrDerived::Ptr ATGYearOrDerived::setTimezone ( const Timezone::Ptr timezone,
const DynamicContext context 
) const [pure virtual]

Sets the timezone to the given timezone.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classXQQuery.html0000644000151400015140000017651311653571065016133 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

XQQuery Class Reference

Encapsulates a query expression. More...

#include <XQQuery.hpp>

Inheritance diagram for XQQuery:

List of all members.

Public Member Functions

 ~XQQuery ()
 Destructor.
Runtime Methods
DynamicContextcreateDynamicContext (xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager) const
 Creates a DynamicContext based on the static context used to parse this query.
Result execute (DynamicContext *context) const
 Executes the query using the given DynamicContext, returning a lazy iterator over the results.
Result execute (const Item::Ptr &contextItem, DynamicContext *context) const
 Executes the query or stylesheet using the given context item and DynamicContext, returning a lazy iterator over the results.
Result execute (const XMLCh *templateQName, DynamicContext *context) const
 Executes the stylesheet starting at the named template using the given DynamicContext, returning a lazy iterator over the results.
void execute (EventHandler *events, DynamicContext *context) const
 Executes the query using the given DynamicContext, sending the output of the query to the given EventHandler.
void execute (EventHandler *events, const Item::Ptr &contextItem, DynamicContext *context) const
 Executes the query or stylesheet using the given context item and DynamicContext, sending the output of the query to the given EventHandler.
void execute (EventHandler *events, const XMLCh *templateQName, DynamicContext *context) const
 Executes the stylesheet starting at the named template using the given DynamicContext, sending the output of the query to the given EventHandler.
void staticResolution ()
 Perform static resolution on the query.
void staticTyping (StaticTyper *styper=0)
 Perform type calculation and related optimizations.
bool staticTypingOnce (StaticTyper *styper=0)
Query Information
const XMLCh * getQueryText () const
 Returns the expression that was parsed to create this XQQuery object.
void setQueryText (const XMLCh *v)
std::string getQueryPlan () const
 Returns the query plan as XML. This is designed for debug and informative purposes only.
Getters and Setters
ASTNode * getQueryBody () const
 Get the query body as an ASTNode.
void setQueryBody (ASTNode *query)
 Set the query body to an ASTNode.
void addFunction (XQUserFunction *fnDef)
 Adds an XQUserFunction to the query (also adds it as a template if necessary)
const UserFunctionsgetFunctions () const
 Returns a vector of all XQUserFunction objects from the query.
void addDelayedFunction (const XMLCh *uri, const XMLCh *name, size_t numArgs, const XMLCh *functionDeclaration, bool isPrivate=false, int line=1, int column=1)
 Adds a function defined in XQuery syntax.
void addDelayedFunction (const XMLCh *uri, const XMLCh *name, size_t numArgs, const char *functionDeclaration, bool isPrivate=false, int line=1, int column=1)
const DelayedFunctionsgetDelayedFunctions () const
 Returns a vector of all XQUserFunction objects from the query.
void addVariable (XQGlobalVariable *varDef)
 Adds a XQGlobalVariable to the query.
const GlobalVariablesgetVariables () const
 Returns a vector of all XQGlobalVariable objects from the query.
const ImportedModulesgetImportedModules () const
 Returns a vector of all XQGlobalVariable objects from the query.
ModuleCachegetModuleCache () const
bool isModuleCacheOwned () const
const XMLCh * getFile () const
 Returns the name of the file that this query was parsed from.
void setFile (const XMLCh *file)
 Sets the name of the file that this query was parsed from.
bool getVersion3 () const
void setVersion3 (bool v)
const DynamicContextgetStaticContext () const
XQQuerygetNext () const
void setNext (XQQuery *n)
Module Methods
void setIsLibraryModule (bool bIsModule=true)
 Sets whether this query is a module or not.
bool getIsLibraryModule () const
 Returns whether this query is a module or not.
void setModuleTargetNamespace (const XMLCh *uri)
 Sets the module target namespace for this query.
const XMLCh * getModuleTargetNamespace () const
 Gets the module taget namespace for this query.
void importModule (const XMLCh *szUri, VectorOfStrings *locations, const LocationInfo *location)
 Performs a module import from the given target namespace and locations.
void importModule (XQQuery *module)
XQQueryfindModuleForVariable (const XMLCh *uri, const XMLCh *name)
XQQueryfindModuleForFunction (const XMLCh *uri, const XMLCh *name, int numArgs)

Detailed Description

Encapsulates a query expression.

XQQuery objects are thread safe, and can be executed from multiple threads at the same time - provided a DynamicContext is used per thread.

Instances of this class can be created by using the parsing methods on the XQilla object.

This class is dependant on the DynamicContext that was used to create it. This context must not be deleted before the XQQuery object. Normally this is acheived by the XQQuery adopting the DynamicContext and deleting it when it is deleted. However, this behaviour can be disabled by using the XQilla::NO_ADOPT_CONTEXT flag when creating the XQQuery.


Constructor & Destructor Documentation

XQQuery::~XQQuery ( )

Destructor.


Member Function Documentation

void XQQuery::addDelayedFunction ( const XMLCh *  uri,
const XMLCh *  name,
size_t  numArgs,
const XMLCh *  functionDeclaration,
bool  isPrivate = false,
int  line = 1,
int  column = 1 
)

Adds a function defined in XQuery syntax.

Parsing is delayed until the function is actually needed.

void XQQuery::addDelayedFunction ( const XMLCh *  uri,
const XMLCh *  name,
size_t  numArgs,
const char *  functionDeclaration,
bool  isPrivate = false,
int  line = 1,
int  column = 1 
)
void XQQuery::addFunction ( XQUserFunction *  fnDef)

Adds an XQUserFunction to the query (also adds it as a template if necessary)

void XQQuery::addVariable ( XQGlobalVariable *  varDef)

Adds a XQGlobalVariable to the query.

DynamicContext* XQQuery::createDynamicContext ( xercesc::MemoryManager memMgr = xercesc::XMLPlatformUtils::fgMemoryManager) const

Creates a DynamicContext based on the static context used to parse this query.

This DynamicContext will be suitable for using to call execute().

Parameters:
memMgrThe memory manager used to create the DynamicContext.
Returns:
An implementation of DynamicContext
Result XQQuery::execute ( const XMLCh *  templateQName,
DynamicContext context 
) const

Executes the stylesheet starting at the named template using the given DynamicContext, returning a lazy iterator over the results.

Parameters:
templateQNameThe name of the template to start executing. If the QName includes a prefix, it is resolved using the in-scope namespaces for the stylesheet.
contextThe DynamicContext to use to execute the query. This contains runtime values for variables, the value of the context item, and other relevent information.
Returns:
The Result object - a lazy iterator over the query results.
Exceptions:
XQExceptionIf a runtime error occurs
Result XQQuery::execute ( DynamicContext context) const

Executes the query using the given DynamicContext, returning a lazy iterator over the results.

Parameters:
contextThe DynamicContext to use to execute the query. This contains runtime values for variables, the value of the context item, and other relevent information.
Returns:
The Result object - a lazy iterator over the query results.
Exceptions:
XQExceptionIf a runtime error occurs
void XQQuery::execute ( EventHandler events,
DynamicContext context 
) const

Executes the query using the given DynamicContext, sending the output of the query to the given EventHandler.

Parameters:
contextThe DynamicContext to use to execute the query. This contains runtime values for variables, the value of the context item, and other relevent information.
Exceptions:
XQExceptionIf a runtime error occurs
Result XQQuery::execute ( const Item::Ptr contextItem,
DynamicContext context 
) const

Executes the query or stylesheet using the given context item and DynamicContext, returning a lazy iterator over the results.

Parameters:
contextItemThe context item to use to execute the query.
contextThe DynamicContext to use to execute the query. This contains runtime values for variables, the value of the context item, and other relevent information.
Returns:
The Result object - a lazy iterator over the query results.
Exceptions:
XQExceptionIf a runtime error occurs
void XQQuery::execute ( EventHandler events,
const Item::Ptr contextItem,
DynamicContext context 
) const

Executes the query or stylesheet using the given context item and DynamicContext, sending the output of the query to the given EventHandler.

Parameters:
contextItemThe context item to use to execute the query.
contextThe DynamicContext to use to execute the query. This contains runtime values for variables, the value of the context item, and other relevent information.
Exceptions:
XQExceptionIf a runtime error occurs
void XQQuery::execute ( EventHandler events,
const XMLCh *  templateQName,
DynamicContext context 
) const

Executes the stylesheet starting at the named template using the given DynamicContext, sending the output of the query to the given EventHandler.

Parameters:
templateQNameThe name of the template to start executing. If the QName includes a prefix, it is resolved using the in-scope namespaces for the stylesheet.
contextThe DynamicContext to use to execute the query. This contains runtime values for variables, the value of the context item, and other relevent information.
Exceptions:
XQExceptionIf a runtime error occurs
XQQuery* XQQuery::findModuleForFunction ( const XMLCh *  uri,
const XMLCh *  name,
int  numArgs 
)
XQQuery* XQQuery::findModuleForVariable ( const XMLCh *  uri,
const XMLCh *  name 
)
const DelayedFunctions& XQQuery::getDelayedFunctions ( ) const [inline]

Returns a vector of all XQUserFunction objects from the query.

const XMLCh* XQQuery::getFile ( ) const [inline]

Returns the name of the file that this query was parsed from.

const UserFunctions& XQQuery::getFunctions ( ) const [inline]

Returns a vector of all XQUserFunction objects from the query.

const ImportedModules& XQQuery::getImportedModules ( ) const [inline]

Returns a vector of all XQGlobalVariable objects from the query.

bool XQQuery::getIsLibraryModule ( ) const

Returns whether this query is a module or not.

ModuleCache* XQQuery::getModuleCache ( ) const [inline]
const XMLCh* XQQuery::getModuleTargetNamespace ( ) const

Gets the module taget namespace for this query.

XQQuery* XQQuery::getNext ( ) const [inline]
ASTNode* XQQuery::getQueryBody ( ) const

Get the query body as an ASTNode.

std::string XQQuery::getQueryPlan ( ) const

Returns the query plan as XML. This is designed for debug and informative purposes only.

const XMLCh* XQQuery::getQueryText ( ) const [inline]

Returns the expression that was parsed to create this XQQuery object.

const DynamicContext* XQQuery::getStaticContext ( ) const [inline]
const GlobalVariables& XQQuery::getVariables ( ) const [inline]

Returns a vector of all XQGlobalVariable objects from the query.

bool XQQuery::getVersion3 ( ) const [inline]
void XQQuery::importModule ( const XMLCh *  szUri,
VectorOfStrings locations,
const LocationInfo location 
)

Performs a module import from the given target namespace and locations.

void XQQuery::importModule ( XQQuery module)
bool XQQuery::isModuleCacheOwned ( ) const [inline]
void XQQuery::setFile ( const XMLCh *  file)

Sets the name of the file that this query was parsed from.

void XQQuery::setIsLibraryModule ( bool  bIsModule = true)

Sets whether this query is a module or not.

void XQQuery::setModuleTargetNamespace ( const XMLCh *  uri)

Sets the module target namespace for this query.

void XQQuery::setNext ( XQQuery n) [inline]
void XQQuery::setQueryBody ( ASTNode *  query)

Set the query body to an ASTNode.

void XQQuery::setQueryText ( const XMLCh *  v)
void XQQuery::setVersion3 ( bool  v) [inline]
void XQQuery::staticResolution ( )

Perform static resolution on the query.

This operation is not thread safe, and should only be performed once.

Static resolution resolves prefixes to namespace URIs, variable names to variables, function names to functions, and performs some basic query optimisation.

Normally this is done as part of parsing the query expression. However, if the XQilla::NO_STATIC_RESOLUTION flag was specified when the query was parsed, this method will have to be called to perform this step manually.

Parameters:
contextIf specified, the StaticContext to use to statically resolve this object. By default, the context used to parse the query is used. This should not need to be changed under normal usage.
Exceptions:
XQExceptionIf a static resolution time error occurs
void XQQuery::staticTyping ( StaticTyper *  styper = 0)

Perform type calculation and related optimizations.

This operation is safe to call multiple times.

Normally this step is done as part of static resolution.

Parameters:
contextIf specified, the StaticContext to use to statically resolve this object. By default, the context used to parse the query is used. This should not need to be changed under normal usage.
Exceptions:
XQExceptionIf a static resolution time error occurs
bool XQQuery::staticTypingOnce ( StaticTyper *  styper = 0)

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/Result_8hpp__incl.png0000644000151400015140000003652411653571064016724 00000000000000‰PNG  IHDRcue»ÆbKGDÿÿÿ ½§“ IDATxœíÝy\Tåúðwf`Xe`v·-QÓôzmU+s/Í4M[\RË´²¤ò^[Œàjf©•¦–m¿Ê]La€a˜…a™†ÙÎï7§i6fãù~úôsÎyÏ9Ïœ3ϼ‰ @ÙÞ‡™èƒL ôA¦úÜì]pe.\رc‡½Kag¯¿þú¤I“ì]  w S€ÄçóOŸ>=yòd{ÄnΟ?¿|ùr{—è5È”`ÀmÛ¶ÍÞE°›óçÏÛ»@_@?%ЙèƒL ôA¦ú S}0öØßý÷߯}M¥R_z饄„„þo™Ëå.\¸ðܹsæ÷~èСˆˆˆþïpP§aÏž=Ç?~üøçŸÎd2ß|óM‚ ¬¸ý–––G}ÔŠ\dJà‚‚‚‚‚‚˜LæÊ•+›šš:;;­¸}F#‹­¸AÀµA¦‡B¡¸¹¹ùøøàªTªœœœY³fÍš5+''G¥R!„._¾¼lÙ²éÓ§ÏŸ?ÿ?þ@q¹\m+>ÝרªU«B³gÏ6ºÇk×®-X°àá‡>|ø°võ?ÿüsÑ¢E³fÍúä“O”J¥Ñ…v;ƒL ‚\.ïîîîîî‰DŸþù´iÓÜÝÝñŸŽ;ÖÒÒ’››ûŸÿü§¨¨è‹/¾ËåÛ·oì±Ç¾ýöÛE‹½ÿþûr¹Üüö³³³B'Nœ0ú×üüü½{÷nܸqß¾}Úª§~øaçÎï¾ûn~~þ×_mf!àz`DpÏ>û¬öµ——×gŸ}¦ýçÿýßÿíÞ½;(((44tÅŠ999O=õAÝÝÝT*uÆŒ“'OöððèÏÞçÎëíí=a„D"Á Ÿþy&“‰Ë¶oß¾xÀpá’%Kú³_ÀaA¦A;ú\OOÏþýûßÿýO?ýÿ‰ÇãÍ™3GûNŸ!C†ìÞ½ûرc_|ñ‹Åš?~FF†îÖz;FC‘H$Ý…8#BEEE …B3 ×™83füüóÏAàÔÅßß÷îÝ8’J¥mmm===fûöí*•êÌ™3[¶lùá‡ðêjµšB¡´¶¶öj§z9ÖÔÔ‡jllÄ©”©…€ë~Jàp|||ºººº»»ñ?333÷îÝËçó9ÎÆøá‰´aÆ‹/Êd2¥Réæææáááëë‹úã?ºººLõGÒnó—_~‘Éd拱gÏ.—[QQ±oß¾iÓ¦™Y¸¨S«Q*ÕmmR‘H&ˆE"©H$+,äöa;!!!ÞÞÞb±ØÛÛ!´lÙ²={ö,_¾œD"Mœ8qÅŠT*uóæÍ¹¹¹ <<|Û¶mT*•J¥.[¶,;;ûСC«W¯ÎËËÓÝ&ƒÁ>|øœ9s~ýõW„Ю]»FŽ©^Ϩx`ݺur¹|êÔ© ,Àmíôöáè§@²î̆àÂ::ºZ[¥"‘´µU"HÚÚ¤mm2@ÒÚ*‰¤­­ÒŽŽ.í›ÝÝ)AA¾êüüçγc±û€Ëå.\¸P¯ØFÞÕý÷ßäÈ‘'Ÿ|ÒªÔ)R«5­­’ŽŽn@Ìãuvvvóùb>ÿï]==*íûÝÝ)áá¡¡~Þtº_r2ÃßßÛßß‹Áð õ ð ðñðpC=ztî\ûú 2%À  ÑB¡¤µUÒÒÒ©û¡P"I…B‰LÖ£}³§§;æK§ûÑh¾C‡†ef²BB†Ðh>4šoh¨æäëîN±ãá 4Ÿ‡~Ø’… wu©îþ.ÀÁ@ë;€‹P*Õ­­’ææN‘诈Çë %|¾˜Ï·¶JÔj ~§—•N÷ õc0üBBüh4œáÿBB†øøôkn"]G;w®Óµ¾³¢ýk!ö•êœ”ÄˆŠ¢EGÓX,úСáC†xÚ»t€IP§p !ŠqÚƒ[Äé¾ÖmçæFŽˆ õc0ü£¢héé±ÚfrtºŸËW9¥RðÒK©ÑÑÃkjŽðÌ™rG¨P¨(rddP\\H||h\\H||H\\hxx€½Ë ü2%€£P©4\n»^ ¤í)ÔÖ&S*Õø>>¸_ÐØ±± ® òÇÕDþþÞö= ‹ ”11Cž|2]waggW}½¨²’ÇfóDùùœÊÊ–žîEc±IIŒèhZT-**ÈètOÀ€‚L `SJ¥Z(”47·óxb¯³¥¥ƒÏs¹í|¾˜Çë”Ë•ømnndmNÒÒ˜tzJHÈ_åÂÂüi4'¨R*Õ¥¥çεÀÌu†üý½ÓÒ¼ÓÒ"µK”JussGCNŸxl6ïô鲆†6‚ üü¼bb‚qÖÄbÑ“’ññ¡Vl! ™Àú$yKK×É㉛›Û1—ÛÁç‹y¼¡Pªí:$4Ô/,, )‰1qbRxx@pð°0ÿàà!!!¾ÎX •ö\»V[XX›ŸÏ).nèîVxyQÜÜüí].;ëìTÜõ=îî”èhZt4-3“¥](w×ÕµÖ׋p•—Ç>pà{ÃßßgMÑÑ4‹Áb1˜Ì@ ’RV#:úH"‘77w46¶57wp¹íwR£ÎææŽ®®¿¾{x¸1þ †XXƒá@§û‡…ù‡…Ðé~Ž_/d‰ÊJ^aamA§°°¶¾^D"‘ééé±cÇÆ¦§ÇåçŸä#:ÜÿÔ¸¸W(ʨQÑ'²23YºUI}ÐÙÙ…›íÕ׋píSSS»Z­Á-÷pÖ„“®¤¤°ÐÐ!Ö:ƒ dJsT*@ njjãr;¸Üöææv.·ÿS,îÆï2Ä3<<€É ÄYƒáO§ûGD„†úÑh¾ö-ÿ@P*ÕÅÅõ……µµ7n4wwÊÈ‘Qééqéé±#GF…„üýíƾ»ÿþûÿûßýžž1—.±óó9]]Š„„ÐÌLVf&ëÞ{üü¼ú¿ ÜrgMõõ¢úzQee‹@ Aùû{㬉Ţã *1‘îåEíÿN¸<È”H­Ö45µ74ˆx¼N@Œ¿kâ1:;»ð{|}=ââBñðq¸ÇîG§û‡‡¸FÕyr¹WÔÕËd=~~žñ¸î(5•éímüË7ΔƌÓÏh4T„Ôd²ºŸÛé•ÊÓÍMÞÏ\¿~ýÈ‘#O>ù$BH­Ö”•qóòØ/² 8==*ÜÜ.3“5iR²ŸŸ5 ǃFÜ©wú« w„£ÓýpÖ„ÇˆŠ¢EF‘ÉÎ×ÚÀ€‚L €ÁE(”45µ75µ55µãm\n»Dò×b??ψˆ@&3("" <<W1™A¡¡~nnƒ«H[›ìÏ?« j kË˹*•†Fó½÷Þ„ÌLÖØ±± ¡–ôйråÊîÝ»ûY±˜ZQD£Éãã;ú¹)˵¶z±Ù±±aa²~nêå—_?~¼ÞBœ|^¼ÈÎËcߺÕD"‘† ‹ÈÌdMœÈ7.~ Òo<¸bCƒèΰ{¼†4¦{`2%\FCâÆÆ6¤¨ ÿÿ¦îééE‹Œ d2ƒÂ¼qF8È¿šïtM³qy4bçÎ_²³Ï>üðÈ]»æúúÚnÀ7‚ >ÿ<ïí·œ<9ù£æ àØëíí²k×ê jóòØ¥¥ÞÞÔ1cbp§¦áÙ:¶‡B¡ª­mÅYΠ**Zð¸å7gPIIa0 )àĤÒG m)‡¿êÕ׋´Mæp9ÜX÷ÖˆŠ¢1þðmOK£!nÝjÂG>_l¦Ó‘ …’Õ«æçsÞygÎÂ…úu2¶‘ŸÏyþù¯(rNÎâ1cbl°G>_\PÀÉËcŸ>]ÎãuûŽŸ™Éš<9™É ´AÁtO••<G Ri`º'T SÀ9ˆDRùdA` ½KôwK¼)S†~øá<›f)!•JS^þ×PW¯Öh4„¶SSzzœ½êHõ¦{b³ùÕÕ|÷ݗ耎,ÑÝ­xõÕïNœ¸þòËÓ_|qºSþòåêÕ«º»SrsŸ5*ÊÞÅù[ÎokE0Ý8È”¸ ‚ ÚLu(òò¢&&Òu“"‹N§;ÜØ. ©©ýÊ•êÂÂÚ‚‚ÚšZ­a±ÞéÈl6oùòäãçO›6ÌÞÅé…ÖVé /ºzµÆAZâ¥7¿-™LJIØùm­Kwº'\Åá¤ÒÓ=ÀÀƒL €P*ÕµµÂšaM ¦FP]-¨«k‰¤! …M£Rá«É€ âæM“ŽÒÒ"] áâ?¯_„Åbäæ.‰ˆ°ÑdAV¤Vk>üðÝ»ÿ˜1cøÿû”ã´Ä3ª­MöçŸU¸…^}½È–óÛZWggΚ´Ãîáß`º'°.È”À ÖÚ*­ªâs8%EÕÕ‚¦¦6Ê 9>>4)‰éd±qq!гȈÅòüüÜ騬ŒÛÕ¥ ô™0Á•;YâÒ%öªUñ˜©©ö.΀S©4}ôÇîÝÌž=&+ë WªÈ55¿í´i)®==€á 0ÝÀåA¦ˆTÚS^n$/‹p·"œÁˆ E$’^¾\—ÇÖv:Â}âC§£»ÒhˆÝ»ÿè£S3f ÿÏžT_O*{é¥oh4ŸÜܧ‡ ³wq¬Lw~Ûü|ŽBñ÷ü¶“''’ -w×Õµj+g³ù55™ ¦{¸È”€Ý(ªª*>nD‡ÿ__ߪRiÈdRdd‹ÅHL¤ãÁè`L[Ç¢ítTPÀ),¬­¯áNGwZÖźöë–ëèèzñůϟ¯Øºõ‘eË2a[ÐææŽçŸÿêæÍ¦;fÏŸ?ÎÞÅ(ÝÝŠk×êœw~[ëÒî ÿæÕÔÔ®VkÜÜÈwêþh¦{82È”€ÑØØVQÑrûvËíÛÍ<G Ri(rddPR#1ñ¯*£„„Pè1ì€t;Ý¸Ñ H<<Üð$°ééq£FEûúB6ûEEõ+V|©RirrgdÄÙ»8vãÂ-ñŒÒÎo{ñ"»¡Á‰ç·µ"ÜrgMxؽÊÊ@‚`º'€cƒL ”Îή۷ÿÊ‹nßn©¬l‘J{BÉÉŒääð¡CÃ’’ thá°är%ž¶ €S^Þ,“õ@§# íÛwqÇŽŸÆß³g!ækïâØß©Se/¾øuHÈÜÜ%ÉÉ®ÖÏm§¦K—ªÚÛe!!CÆ‹wÞùm­Ëpº'6›'—+L÷p)ëÀC/”–6±Ù¼ÊJ^e%O,î&‘HQQA,#- ã.8 ü‹xAAmaamy9W¥ÒDEÑpÅ‘ ôeE2YÏÆGOž,~ùåé/½4¾Þi57w¬XñeEE‹ËÌ·Û+Ú¬éܹÛRiËÌokE*•†Ëm×™§4O÷„³&œAÁtO€L ôžÚµ´´‘Íæ³Ù¼ÒÒF<ôæ›’ŽŸd,=99ÌÏÏËÞ…wWYɃNGVQQѲ|ù±¸ûÓOM˜hïâ8•JóÞ{¿fgŸ3gÌ{ï=18ÛÙš™ß6##ŽJ…:ö0œîéöífÜB¦{ 4È”€E$9î\T^έ¨àUT4‹År …EKI ONf$%…  ¿ ;†¸u« V‡]ètÔß~›¿eËñÔTfnîâ°°{Çqýþû­—^ú†N÷ËÍ]’”İwqìIo~[OO÷{î‰qÉùm­KwÐ<ìuÁtO«‚L ÇçwÞºÕ\Vƽu«éÖ-n}½ˆ :Ý/)),%% çE,ÃÓÓÝÞ%–ÂŽ 8µEEõ2YO@€÷±¼c‡ ‡†‘}&—+7n{övss‡v~Û‰YQQÐêõ.ŒN÷T_/BN÷”œîç7(†qôdJ!„4¢¶VXVƽy“[VÆ-+ã …2™’šÊLM>œ™šècï’‚Þio—]ºd¼ÓÑØ±±‰‰tø©µÿêêZŸ{î@CCÛ‡Λ1c¸½‹ã4 ÕÛoÿôùçüž÷ß~vÑ¥íÔtáB¥XÜ­íÔ4aB"܇-g8hDu5¿«K`º'€e S¤ÚÛe·nq++y¥¥¥¥MxÀî€ïáÙx†´´ÈøøPøiÜ54ˆðhuÐéÈ~þùƺuß2™Aûö=bïâ8Ÿß~»ùÒKßDEýïOÇÄÛ»8æ·µ:>¿gMÚéžÛ4¦{‚Li°Àœi` 2rd΋ÒÒ˜ðÚIáNG¸â¨ €£×éhäÈ(ø:5”Jõ[oý¸Þ‚ãÞ~{6üÝgMMí+W~ÉfóvíšûÈ#£ì]ÇóÛ½éž*+y••-b±ÁtO z)¹&†¨ªâkó"6›ßÙÙE"‘éiiL<Á+¤FN­§GUPÀÁŽŠ‹ë¥Òž€o\q”™É‚NGÏï\¹ò«ÒÒ¦¬¬ÇŸxb¬½‹ãô´-ñ.¿cÇlÿí®D"éåËÕÚùm}|÷ÜÆÆ¶>˜ûÈ##í]'£;úÿ•+ÕºóÛNš”³Û ±X^W'ÔVÎfókj2L÷€‹€LÉ™…’’’†‚‚Ú‚Ne%O,î&“I tÜÑzv †Ž¨T·Œ ètdB¡dõêƒùùœwÞ™³páx{Çeõô¨vìø«%Þ;ïÌ{ZßÀü¶vÓ=à2 Srhmm²ë×ët‡aÐö5Âc0¤¤DÀ¯Ú.@¡PåçÿÕ騤¤A"‘ûû{ãZ£±cc‡gÂÏvwíZíŠ_¹»Srs—Œiï⸾'®¿úêw ¡99K¢£a6¡~Ñß¶´´ÑË‹ óÛÚ˜Þ ¸×n ‚[îᬠ¦{ÀÑ@¦äXººׯ×pL¥FC‡†C•‚kèìì*(¨Å5„·nq»»Lfà¸qñÐéÈÑ‘}ö½÷~81é“OÀl66SS#xî¹/¹Ü¶]»žzè¡ö.Ž‹ÐÎo{æÌí––Í÷Þ{`~[»0œî©ªŠßÝ Ó=à@ S²3µZS]-()i(-m,)i(+kV(TÞ#FDâîF#FDFDÚ»˜À:ššÚ¯\©Öv:ÒhˆááӑC‹»_|ñëÓ§Ë7mš¹jÕRÌÆpK¼ýûó–.Í|ãG %žuÁü¶H;Ý“vИî ;‚LÉÚÛeׯ×Õ_»V[RÒ •ö â™–Æ1" §FÐÔÄeqó¦~§£#"ÓÓã&NdA§#W^Þ¼|ù™Lž½øÞ{ì]œÁëØ±k›6}Çb1rrC½Ç@ЛßV¥RkG޹ÿþ¡ÐÆÛ¾ Umm+ΚpUQÑ"‘ÈBTª[LL0ΚpT\\(\/¬2%[P«5l6ÿúõºë×ë®]«ãp„d2))‰qÏ=1cÆÄŒ? ¹ ¥R]\\+ŽŠ‹ë[[¥ÐéÈ‘]½ZÌ`èWè:teëÖcÇÆeg/ öµKÙ€Vuµ`ÅŠ<žø£æ?ð@ŠÞ_ÛÛeNë˜1Ñv)›‹ÑßöæÍ& æ·uDzÓ=UVò8J¥A0ÝV™Ò@Áƒ;—–6i§¾‰Š¢¥§ÇâAêRR"ÜÜà¶å:Äâîü|îtTVÆíêRDDŽŽLÖ“™¹3,Ìÿ‡Öj¿vw+^}õ»'®¿üòô_œU!—+·nýþ믯êµÄÓhˆ r++y/n†_Ó­K;¿í… •m0¿­#ÃFܬœ‡‡Ý«¯¡;ƒFÀtOôdJV£P¨JJpMŒÁÃÃ---2==.==6- ½P\LssÇŸVA§#§¶yó±C‡® D,[6qûöÇBl6oùòäãçO›6ÌÞú¾û®póæcIIŒœœ%‘‘A¡O>9•õ+™Lzꩌ>xÒÞtYÚNMyy쎎®ÐÐ!ñ™™¬©S‡ÂœæK,kÕšßÕõ÷ ºÓ=%$н½¡Éÿ™R¿àúºG‘‘Aq0»‘K"‚ÍæãG……µõõ"wwÊÈ‘Q85*Úh9— *çÏÏÅ÷@‰ôÑGó©TÊúõGX,FnîIÅaUUñW¬øR üñ77ò¼y_ăÊ•ûIýIDAT—O™2ÔÞtqÚùm/^dpzzT0¿­sÑqgØ=4ÁtO€L©wpÅNô:èCÅ‘Ãjhõ¹¸n§£’’¡Pâçç…ç;665• ¿À9)©´'3ó]¡P‚¿H$77²J¥~üñ±YYC_2'Ë_yå›ß¿ééIíîVà‹H&“}.]Úìïïmïr¹? j¯\©&Ôçùm/]b»¹QÆ‹¸ÒS §{ª¨h aº' S²ÎŽòó9ùùœk×êÄân??Ï1cbFŽ3&zôè¸e8,…BõÑG§öì9“Ÿ¿Õ°Ë¾)b±÷Üä矟?LÛsÁLI(”|ðÁÿ½÷Þ½ý|r¹í—/WÖæå±u» À¼7NG$’nÞ|ìçŸoP(dµZãîNY°`Ü»ï>®÷¶ÊJž©NG#GF…„ ±KáÁ@ëêRdfîäó; ¿d#„H$ÒÎ/^|¯í ,§ÛÇL™L ò¹ti t˜q:óÛVˆÅrm§¦ÌLV@À_í$kk…÷Ý÷.~M¡5bþüŒ7ߜ͛ŸîtO¸ŠÃH¥=ÈJÓ=åäœß±ãG‰äåE}å•=óÌ^´ê Ÿ\-Súþû¢M›¾“Hä.lJL¤ßõýzß•=<Üðåôô¸1cbà팺òöÛ?ÊåJÝ69ññ¡yy›u;Ý¸Ñ Hüü<32â¡ÓÑ òî»?öÙ9Ývwz¨T·_}9%%Ü–¥– %S¦¼ßÖ&3õürs#/X0nçÎ'l\0`žîü¶W¯Ö¨ÕšÔT&îÔÄfóß|ó<F¡Œ€={fdÄٱ̠o:;»pÖ¤v¯¦F€ïº½îiýú#GàØps#{{S׬y`ùòI½ê@Ÿ¹N¦Äç‹×¯?ræÌm„77ò›oÎzæ™ †o#âæÍ&ÜÈ É í Ÿ™É‚iŽœZSSû† G.^¬$‘HzÕ$zà”ââ†ÖVé!žcÇÆŽ›‘7rd4ˆTJKgÎÜm¬ÉòôtïîVÒh>=4rÑ¢{!SrX7n4îÛwá·ßÊd2¹‡‡{OÒð=$éèÑU÷Ý—`ûâK´µÉþü³*/}éRU]]«‡\®Ôûý·r_¹rÊÆ3àk±³3œî‰Íæñùbdlº'ÜŠ¯øÐCÕënŠL&…„ Y·nƼyÐm 4WÈ”‚8|øêöí?(j•J"“IS§¦|ùå³ø º5 EEõ"‘40Ðg„D<õͰaðIsvjµ&'çÜ®]¿k4ݪ$- edÄ?üðˆŒŒø¤$\ñÁ©§G5iRVSS»F£ýBF¢RÉ …::šöøã÷<ôÐȤ$†=‹,¦Ñ×®Õž:Uþý÷EÍÍíT*E¡øû³O"‘h4hƒçjk…S§~€‡ 0D¡bcC>ýtÑðáL ´ææGPS#äp„ÕÕ|GØÔÔŽæ°°€øø¸¸'®ã¶|ºH$D"‘bb‚_}uæÃ´GÙÁ`áô™R]]ëÚµ‡¯_¯'„ÐßÇâííqüøªÂº+Wª jE"©¿¿wzzì¸qñx¾#¨;r¥¥/¿üMe%Ÿ 4¦Â™Ju[±bòæÍÚ¶hÀ±deý²gφ ‘…BQ©Ô±±Á³gÉÙUVò~þ¹äøñëuu­nnü“…Bž;7}×®¹ö.¸‹’’†™3w›y…BFˆX¹rÊÆÿ†Y ]îõTS#àp„556›W\Ü`êÍd2I£A#FDnßþ(´Òä™Rss³‹b¹ððp„FC|öÙÙ]»~W«5ø¹¨‡B!ûâëÆKHJbh¬s–#æ©Tšò÷î½L„ÑÞù:HLJ}ñÅ‚>ï G]tww···÷s# Ïª«… |©V¡°0¿iÓ’§NMJI¡÷h&çåååد v*ª ‚(/ç=[uút%—Û‰D"rrž3&ÒÞEsý¿âñôüê«‚ìì<ÝNJ¦ öÎ;1™V/°Þ>I‹‹|Ð\"“É¡™:•õ “ 6@ÿéÝ'ÿÑð—ÍfÛ¼<}^[+\»öë¢"ýª$-wwÊÊ•÷›ªCp–#fÈdн{oó´MÛÉd™L"þ'¢¼¼¥¼¼¢Ïu‰ýÏ”$ ž½¨ÕÄë¯_ ñÎÈÏȈˆ‰Áþ‹«ªÄv.™]…„„ôó{³£Eµ»;ú׿ÿú£¡A\XØ’ŸÏݺõ§;'{yA/„¬qÅârŸ>]®ÛC‰D•Hˆ ^Ï%Gøâ‹G—.MKL4>Ô8pp½}’r8É\ë'wwŠF£ÑhйsÕuuÂùó‡%'÷q¢y0½û¤þÃ#%%%44Ô¶Eê@PVVþé§gvíú]­V›ùð¨Tš7LÖØ"‡?R`‰œŽjo—ñùâææ¡PÂå¶ b.·£©©M wttkƒD­&bï¹'¶·{åååÖ*óäÉ“­µ)`9¯óë¯SccCì]RVVf­M9fT/^ŒB¸Ûƒ¶wø`f­+nݧ§B¡âpþL&ûû{z‡„ø1~AA>AA>AA¾4šOpð  ŸÀ@Ÿ  h6ï¼úö$­®¸»S þ'™L¢PHJ¥!ä3ztôˆ‘ii‘iiL˜öX…á}ÒÉ~fãóÅYY—oÞÞõAÖªT¸±º¼À@ŸÀ@Ÿää0Ã?)•êÖVIssŸ/nié “!)¢ƒ“Ù¯*0ÐÜÜ(¥¥oõvŽ0HÔÖ •ʿҤ€ïøø@+dòäÇ3££iƒ¹í4°gÊ”ººG¹»SÒÒ"[[%mm2Ý¡rÈdNŠÔj n|ÕÝ­¼q£a̘{Ø»;%,, , .€#"“I&Sé6ü;5•9|xîï6l˜½ËgÊ”¼½©kÖL./Õ¶ôË•mm2@,ÉD"©H$ Å"‘L óxmm]EEõ)8uëfØ»`°s¦Lɧ§{xx@x8Ô¬ ºm€>È”@ßfJÕÕÕ0,‰µ444<óÌ3w}›öœë|¼zqq±››Ûwß}§]~òäI*•zóæÍ(³’Ž˜˜˜Å‹ …æÆ0$báÂ…¾¾¾–o¿ººÚ%u†×Ú’OŽ„Þž[Û3s,³L&Û¸qãˆ#|}}ÓÓÓwîÜ©R©PŸÎÉké] ªÀîOTÛæ‰£½Üu|ø°'2r1}û|áHpêskI0K$’{î¹'???++«¨¨hÓ¦M‡š>}ºZ­îÛyá«Ëºeê.:Øô'ªµëèÉ4¼õë³þ\î¾íÑ’ÇeŸ £½K”––&&&Î;×Ì”}‘fu®ýNYlƒ%æ çÎãóùD/UUUémgàðùüsçÎõ;};R;zðÁ»ººŒþÉèù×[¨]½§§'55õ¹çž#båÊ•cÆŒQ(Vê@UUUiÿ©Ñh&NœøÆo˜zoãJoûVd­¨³ÖvôhO”%g G‚-?³}c¦„–óúõë333U*•v-©T“““c¸‹»ž -ÃÂØrï·nݺuëV?7â8Qm¸î@ÐîK{]¬¾;¿âñôìÏåîÛŽ¬Å00>Ÿ²Ê‰2urú'¦N…ƒ?I­Æ\/ûÉ’rÚ>æÍìÝŠ c¬×uJ?ýôSZZš§§g\\ÜÁƒBãÆC1 t§ÊìÌ™3QQQÐVŸ‘H¤Ã‡:4((èý÷ßÇGž“““’’âçç7eÊ”ŸþÙ¡šêýøãííí¡o¾ù†ÅbÉd2„R©Ü°aN ݰaƒR©Ô=äóçÏoÛ¶-***$$dñâÅÚ õ±3©R©Œ®ÞÚÚêãããåå¥[#©}mxþõŽE»:BˆJ¥8p`ÿþý;wîüâ‹/8àîînªV<4C$iåÊ•¿üò‹©íè—…Ûüã?wîÜ©='OžLJJ ]»vmOOÑ…–†ÅÀ3xfÏž=C‡2dÈøñãÏ;‡ëÍ|d~þùçQ£Fy{{‡……eeeá…ÚH0õ™½té’ÑI$Òþýû‡’••uðàÁØØXÿ­[·â7^¾ñãÇïÞ½!ÔÖÖF&“ׯ_R«Õø¢wtt<ýôÓÁÁÁL&sýúõr¹\¯$xËA¬_¿~äÈ‘­­­Èâ`>tèÐo¼A¡P´'ÄÇÇgãÆ‡îÃyëÕÅ2`æ711éD»glÛDµÑ["2qºkH½á膟–Uv§Ç©¯¸-/·á— Ým~ñ0õ¸ìÃ-™ˆÌÝÝJ¥úûû›YÝ0ÆŒ>âµô"M—ùò÷6Tœ:üD >„‡n9×®]»lÙ2¼)©Têíí]\\l¸Ç<²e ê¦Mwý­H*•zxxäää´´´|þùçnnnR©T7çïÿýïŸ={7XÄËB?þx{{ûÞ½{B"‘hïÞ½¿ýö›P(^øÞ{ïÍ™3§¡¡¡´´tôèÑ›6mÒ=äíÛ·6¬´´ôæÍ›ëׯ7µ–Ñ3ùÁ]}ÿþý$þ™^͹.Ô®®µiÓ&„ÐŽ;tè¡Æ~(,, 0¿wüWSÛÔ…z衇ÄbññãÇB­­­x Ó§Og³ÙW¯^MHHؾ}»Ñ…æ#ÁÆuJ†—››zâÄ‰æææ_~ù…Édâ“©w­µ/Äb1•J]ºtiSSÓ¡C‡B€0Hø*·´´]!4oÞ<±X¼oß>„ГO>)‹sssñy&Œ]¾·ÞzëÁ$âäÉ“~~~£G&âÚµkžžž2™Œ ˆ L:µ¦¦¦´´455U{itïF›&áÒZÌø) õNì•+W‚‚‚úpÞB%%%’2u±L˜%Çk4.°mY§d˨ÖûÒ08‰»…´©Žnø!uJ}ØÞ¹rð+Þ·§ç]nÃîå0üâaôqIôéGăö.ÁårW­Z…{„b>(Í?ÍÍÔ)™/¿™ø1¼vþ$µ0†yê=§ú.\ ÑhJ¥’ ˆC‡ 6L£Ñöˆy]¶¼Oö.SjkkswwßµkW{{»F£‘H$jµÚð8KKK ƒ ÀŸ…B£355õðáÃÚ-ýõ׎–)µ··3™Ì´´4ÝÓšœœÜÒÒ‚_Ÿ:ujäÈ‘º‡œ””tâÄ ü×òòríkõŒžIS«Ï™3§­­èk¦¤]Óh4>ú(…BY¸p¡îñè¡wË”Lí/1µM]¡óçÏ¡V«ñ¾tËOÄ‘#GŒ.$̲q¦dxÆ ;pà€ö _~ù¥ù[|OOÏíÛ·¥R©Z­¾pá‚öÌ› $|BL­ˆ***"î|~u_ã7^¾k×®ùúú*ŠW^yeË–-îîîííí|ðÁÌ™3ñº E{3:qâ„Þ¥Á¯7n܈ª¬¬Ô»%ÁŒ3%Ã/ —/_îÃyCƘºXFÌÂã5ض̔lÕz'Ó08‰»…´©Žnø!™Rv§w®üŠ÷íé9@—Ûðãcþ‹‡™wööGă.__ßòòríñZø ìO¦d¦üfâÇðÚ9ø“Ô†Ô}Nõ3ø`âĉ۶m[±b…H$²Á¡Œ ˆÏ>û o6³wÌÂmmpŒQ@±Ùlü¹2µÐA^DDÄ7´oÐýàÕÝÝýä“Onذ¡¨¨(;;/4 $]ø*]ц—L&Ïœ9óäÉ“l6{ôèÑS¦L9uêÔÅ‹ñ§Óé …ÃáàÕkjj"""tK‚ýôÓO999ß~ûí¹sç ÁL0/X°àí·ßÆ?5!„æÍ›÷Í7ßdeeÍ›7¯·çÍ<£w d`¯).Øv‰jÌü½ÅÔ¾ o8–ì«o»3äìWÜf—[÷ãcôÉhêwºÞ2¼¬fâÁÛÛûé§Ÿ.++Ó~óëÕƒ²WxËY*Î~hÐG`˜¿”O<ñÄ÷ßôèÑ &à†‹zìó6 ÔÞ]B‰4}úôãÇ‹Åb…Báîîîííÿ$•J{µ©Õ«Woܸñ?þ‰D¸ŒCè Ñh–.]ºfÍšo¾ùæôéÓ?ýô^>{öìÍ›7×××—––Θ1ãÓO?Õ]kÑ¢E¯½ö®¹{á…êëëM­eôL]ýäÉ“>ú(ÞN@@B諯¾‹Åü±î®MÝÕ ‚X±bEZZnÝ::¾fÍ~³P(äñx\.÷Â… ³fͪ­­}å•W,Ù»©mîÛ·¯³³Óü¥|ñÅ««« ·lÙ²páB3 ÑÀ[ºté† Nž<Éãñ~ûí7Ü3ÇŒžž…BA¥R»»»·mÛ†’H$º‘Ы-)¶ÑË7sæÌìì쌌 ww÷©S§8p :::::!äîî>wîܵk×ÖÖÖÞºuëõ×_×ý™JËÇÇ'))iÓ¦M+W®”Ëå–óo¼Áãñ¦M›öû￳Ù츸¸ùóçËåògŸ}¶o‡CW2}—@fáñj?Å.Øv‰jíÉ4o1Êè Çü'¨?»C®uÅm¹Í<êí×d첚???‰Db&*ŒÆ˜%Ò‡ÂcfBŕ â4úœ²ÑK©-'Kö­·ÞZ´h‘©-Ø æí¨ºõt–´?>räH||<•JMNN>yò$AJ¥r„ ¾¾¾„ÙÆšº j«ªªÔjõîÝ»ãããýýýg̘qòäÉó»&lØOé“O>1btøûï¿ ÃAÅbñ3Ï<H£Ñž{î9™L¦{˜r¹|ýúõáááþþþóæÍkooÇË ×"ŒIÃÕ îסµcÇŽ€€€øøxÜÖˆ0qþñ ½Õ8àáá¡Û룠 €L&;vl øg¥jddä‚ t/ù½›Ù¦^\龯[Ø·o_tttppðš5kº»».4 „mû) <…BñÖ[oÅÆÆúúúŽ?wê3ߢ÷¿ÿýoPPPdddvvö¼yóu#ÁÔçÔpÅÐÐPânç™0nnnx¬™LF¥R7nܨÝQ[[Û¢E‹h4ZXXØË/¿¬½4†¥êîîf±X[¶l±<˜ ‚J¥ëÖ­KMMõôôŒíµ×&Mš4wîÜ^7íá½s½X¦Ìüñê~Šïz­Ø6ë§dã¨Ö;™Fƒó®!­wÃ1¼kßi•Ý9ÑïÛÓs@ob„±'#aìLšúºÒÛ[\GG‡©xÀÔjµŸŸ_mm-þ§åJÃ1Øw-3aAüôsuÛ?I-‰áAFŸSwݸÑK©lA¬\¹ÒËËK,ëîÑ¡b~àΔ¬å§Ÿ~*))Ñþóرc¸ƒšyƒv>%Ðz723 Ís´ù”úp€ ˆžžž+W® ô^lpu¬Ø5ŸDµuÅ­òô„ËmKý<Ûõ$µÖ|JZžŠ-[¶ÌŸ?ßåé³»OZ§e”––.\¸°¨¨¨««ëêÕ«[·n5ß0úƒJ¥âÉ` ¹\Îápöïß¿|ùr{—Å>Üìµã7vuu=öØcB¡0..néÒ¥+V¬°Wa€Kòóó3 *£ °ö`WôG?CÂϵÝõRæççÏš5ëù矟ùù” 视 S})€>È”@ßÿn/PžÏ:¢IEND®B`‚XQilla-2.3.0/docs/simple-api/ATBase64BinaryOrDerived_8hpp_source.html0000644000151400015140000002057711653571063022264 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATBase64BinaryOrDerived.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _ATBASE64BINARYORDERIVED_HPP
00021 #define _ATBASE64BINARYORDERIVED_HPP
00022 
00023 #include <xercesc/util/XercesDefs.hpp>
00024 #include <xqilla/items/AnyAtomicType.hpp>
00025 
00026 #include <xqilla/framework/XQillaExport.hpp>
00027 
00028 class DynamicContext;
00029 
00030 class XQILLA_API ATBase64BinaryOrDerived : public AnyAtomicType
00031 {
00032 public:
00033   /* Get the name of the primitive type (basic type) of this type (ie "decimal" for xs:decimal) */
00034   virtual const XMLCh* getPrimitiveTypeName() const = 0;
00035 
00036   /* Get the namespace URI for this type */
00037   virtual const XMLCh* getTypeURI() const = 0;
00038 
00039   /* Get the name of this type  (ie "integer" for xs:integer) */
00040   virtual const XMLCh* getTypeName() const = 0;
00041 
00042   /* returns the XMLCh* (canonical) representation of this type */
00043   virtual const XMLCh* asString(const DynamicContext* context) const = 0;
00044 
00045   /* returns true if the two objects' base 64 binary representation
00046    *  are equal (string comparison) false otherwise */
00047   virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0;
00048 
00051   virtual int compare(const ATBase64BinaryOrDerived::Ptr &other, const DynamicContext *context) const = 0;
00052  
00053 protected: 
00054   virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0;
00055 };
00056 
00057 #endif //  _ATBASE64BINARYORDERIVED_HPP
XQilla-2.3.0/docs/simple-api/classXPath2MemoryManager.html0000644000151400015140000004413411653571065020340 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

XPath2MemoryManager Class Reference

#include <XPath2MemoryManager.hpp>

Inheritance diagram for XPath2MemoryManager:

List of all members.

Public Member Functions

virtual ~XPath2MemoryManager ()
virtual void reset ()=0
 Use with extreme caution!
virtual const XMLCh * getPooledString (const XMLCh *src)=0
 Returns a copy of the given string.
virtual const XMLCh * getPooledString (const XMLCh *src, unsigned int length)=0
virtual const XMLCh * getPooledString (const char *src)=0
virtual void * allocate (size_t numElements)=0
virtual void deallocate (void *p)=0
 This method deallocates memory.
virtual CollationcreateCollation (CollationHelper *helper)=0
 create a collation
virtual XQillaNSResolver * createNSResolver (xercesc::DOMNode *resolverNode)=0
 create a resolver
virtual VariableTypeStorecreateVariableTypeStore ()=0
 create a store for variables
virtual ATDecimalOrDerivedcreateInteger (int value)=0
 create a ATDecimalOrDerived for the given integer
virtual void dumpStatistics () const =0
virtual size_t getAllocatedObjectCount () const =0
virtual size_t getTotalAllocatedMemory () const =0
virtual const StringPoolgetStringPool () const =0

Constructor & Destructor Documentation

virtual XPath2MemoryManager::~XPath2MemoryManager ( ) [inline, virtual]

Member Function Documentation

virtual void* XPath2MemoryManager::allocate ( size_t  numElements) [pure virtual]
virtual Collation* XPath2MemoryManager::createCollation ( CollationHelper *  helper) [pure virtual]

create a collation

virtual ATDecimalOrDerived* XPath2MemoryManager::createInteger ( int  value) [pure virtual]

create a ATDecimalOrDerived for the given integer

virtual XQillaNSResolver* XPath2MemoryManager::createNSResolver ( xercesc::DOMNode resolverNode) [pure virtual]

create a resolver

virtual VariableTypeStore* XPath2MemoryManager::createVariableTypeStore ( ) [pure virtual]

create a store for variables

virtual void XPath2MemoryManager::deallocate ( void *  p) [pure virtual]

This method deallocates memory.

Parameters:
pThe pointer to the allocated memory to be deleted

Implements xercesc::MemoryManager.

virtual void XPath2MemoryManager::dumpStatistics ( ) const [pure virtual]
virtual size_t XPath2MemoryManager::getAllocatedObjectCount ( ) const [pure virtual]
virtual const XMLCh* XPath2MemoryManager::getPooledString ( const XMLCh *  src) [pure virtual]

Returns a copy of the given string.

virtual const XMLCh* XPath2MemoryManager::getPooledString ( const XMLCh *  src,
unsigned int  length 
) [pure virtual]
virtual const XMLCh* XPath2MemoryManager::getPooledString ( const char *  src) [pure virtual]
virtual const StringPool* XPath2MemoryManager::getStringPool ( ) const [pure virtual]
virtual size_t XPath2MemoryManager::getTotalAllocatedMemory ( ) const [pure virtual]
virtual void XPath2MemoryManager::reset ( ) [pure virtual]

Use with extreme caution!


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classxercesc_1_1XMemory-members.html0000644000151400015140000000752011653571063021607 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

xercesc::XMemory Member List

This is the complete list of members for xercesc::XMemory, including all inherited members.
operator delete(void *p)xercesc::XMemory
operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
operator delete(void *p, void *ptr)xercesc::XMemory
operator new(size_t size)xercesc::XMemory
operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
operator new(size_t size, void *ptr)xercesc::XMemory
XMemory()xercesc::XMemory [inline, protected]
XQilla-2.3.0/docs/simple-api/ItemFactory_8hpp__incl.png0000644000151400015140000113276211653571064017676 00000000000000‰PNG  IHDRˆÙ”›’bKGDÿÿÿ ½§“ IDATxœìÝ}Ìeg]7úßõ²ÞöëÝ™¶S,m¡DãÁàILô‰ #HÈ1(H´€Ç(P¨‰sPôPò„ˆ AÁ´ˆÆŠGBŒþJ1A©OLNÌ|Îc)Й¶s÷¾÷Ûz»^ο½¯{Ýk­½çžé¼´Ã÷Rö¾öÚk­½öµ¯u­53ߟðÞܸäõÞ¸ºLpƒC0=À Áô78}½wž½þáþáøÀõÞ‹Ü{ßûÞú¡ºÞ{78ÓÀVçÏŸÿìg?ûŠW¼âzïÈ ëóŸÿüÛÞö¶ë½pãC0=\įÿú¯_ï]¸a}þóŸ¿Þ»ßäõÞ¸ºLpƒC0=À Áô78ÓÜàôõÞxÎ;{öìC=tûí·_©µu?÷¹Ï]‘•_†+ûé® ÓÀóøã¿ãïø«¿ú«g¸žûï¿ÿyÏ{ÞõÝ€ ‚éàŠqÎÍf³g¾ž½½½S§N]ß}¸‘Èë½pãø…_ø"ú‰Ÿø ~jŒùØÇ>öú׿þõ¯ýÇ>ö1c ={öá‡þÙŸýÙ×½îuŸüä'ÿöoÿö§ú§ôGôÿðw¯üK_úÒÛÞö¶×¼æ5oxÃ>ùÉO‘µöŸøÄ=÷Üóº×½îƒüàb±èîÃb±øÍßüÍÿñÿÉŸüÉ~ô£UU}ó›ß<{öì#ýéOá _øà?øáø±Ç{衇ºûð‘|äÉ'ŸüØÇ>ö[¿õ[ÿüÏÿügögÜþ©O}êWõWßò–·|ñ‹_´ÖÑ¿øÅç=ïy/zÑ‹ºŸëË_þò<ðž÷¼çÁ ;ù—ù—üàã7~ãË_þ2åok¸îLWËÃ?ü®w½ëÖ[o½ûî»ßþö·å+_áö{î¹g0¼úÕ¯&¢7¾ñƒÁà5¯y Íçs^à­o}ëÿÑð•¯|%Žãüãï|ç;OŸ>}ë­·Ñr¹üÌg>óó?ÿówß}÷ _øÂ_ù•_ùîïþîÖcþþïÿþñŸ÷¼çÝ}÷Ý?÷s?÷w÷wüÒ½÷Þû½ßû½ß÷}ß§µþ·û7"úìg?ûêW¿ZÑý ¼Ã?øƒ?ØÜÉûî»ïùÏþw}×w½õ­o «ím¸îôõÞ¸Îùù?¾ë®»îºë®Ö[ž~úiçÜw|ÇwðÓÛo¿ýÉ'ŸäÇwÞy'I)_ö²—}á _¸ûúÕ¯¾ûÝïîý §OŸ&¢Vf}ØôwÞVÛÛ¸ƒRÓ÷¿ÿ«¿õ[ÿÞûª”r³˜hµG‘<¾ÇšwP)ÙM×—Rð2JÉökG+QQ¤”a™$‰¤ìIêBıڲ±·7àÇioÛVË`Ð^2Mãm›`q¬âø"%^)9[óh”žp—šÆã4|—-MušFÏp%BˆÉ${†+€oO¦€g‹º¶«UÙm_,Jc­VUU™<¯ˆÈZ÷ä“3ªÊT•]­*"*Kc­³Ö-—ëwñ‹EÁï2Æqö:cóy^[kÃæ¼§ªª‹Â´vÃ’ÜóáAYÖÞ{ïÞn­k´xn$¢æbüôøDXþYe2yåe¿w:~øÃæˆùÅb±¿¿Ù«*Ëòýïÿûßÿþø¨ëúá‡&¢Ó§OŸ;wî…/|!ýÇüÇ?ýÓ?½ùÍon¾ë¦›n’R>þøãœYÿ­o}ëæ›oæ—Bþ+^ñŠ|à/xÁ ^ò’—ÜrË-½[Ý w¢o|ãwß}7=öØcœ\¿­q‡áð;8¨ª‹. p)%7cN[_gï¶ "’’´îÉë¿—mU Z-q¬•RÛ¶ÛÂU´–Zïª[ uk0 ‡IwI)Eï§ûEj³NÑ*±eÓb<λvSJòÖ³ì"•¢Hµ>‘Rj4êùD»FÉŽêÛ6Ý{èvÓÞ°Cë,;i5‹`:ÍNØyF£ôR?;À ÁôWFo¨úrYÕµm¶8çæó¢µØjÕ^l¹,WÍ–²4ËeUUG‹ÕµáàuŽ\¹^×&,\–Æ{2ÆzïCª{xÕËqíÞS]¯Óؽ'ç\UYç¼÷>ä°{ïsÖ®[šÑêumC2lÈdw®ù´éY¿þ,pÍŽ‰Ûj†ùzž‹ø­ª¿Ô äyže½ìe/{àî»ï¾årù¡}è;¿ó;ßùÎw^ÞN×umŒÑZWUõGôGD´Z­^ýêW?øàƒ·Ýv}ä#yÁ ^ÐÚ­õÙ³g÷w÷—~é—Š¢øøÇ?þªW½ªµæïùžï±Öþñÿñ½÷Þ?ó™Ï¼â¯‡;véþûï÷»ß=ŸÏ|ðÁù‘ÙѸCY>:~ß pm)½ÔFÑxÔê VÏf­OxeöØZwEÖSöyFz‹@45k~ì|k§öÇ·‘]ÇPˆoç#sRI¢¥lGØ÷vÎ(RÍŠ;²øµVI¢…Íë?I%¥¤$¥³[lîòdrÒÿñ8í~ü^ƒÁE *i%It’%£H 'ªO õIk3!&“ô$KÒú@èHÇ©R'Zr0HNX¬àjC0=\\Yš¢¨Z³YÂÊYo2û|^:w,ý6Ïë§Ÿ^´Þ8›u}´˜1¶,ëÕªj¶ãʲæ(v"2†³Ô×IëDd­ã¤Ýº¶a1NQ'¢°˜sëPuNc§uغßìŒá–Ûj-YëZ1®Ýø¶Â‰¥B¬“K… £AJ !$ÿWJŠ"-„ÐZF‘Šc©µŠc•eQšÆDÇñ-·ŒˆÈ9E*I".90ÄÞ{k16Žu][çH/„ÈóÚZï½3Æ–¥ÍóÒŸç•1n6Ë󇇹µv±Ø–½îºY AI¢½'­×y©Ü±óumœóI"¾õ­¯üÈÜvÛm/yÉKÞð†7üõ_ÿ5½å-o¹ÿþûßö¶· !^þò—¿ýío¿¬ãMD4î»ï¾|àY–½ño|å+_ùž÷¼çSŸúTQ¿üË¿\Å÷ÿ÷óú[ûð®w½ëþûïÇ;ÞEÑÿð¿éMozòÉ'›k–R¾üå/ÿ›¿ù›—¿üå¡ñCúÐK_úÒÝÁô¯zÕ«ÞýîwEñÊW¾2¬¶ÕxÑÏeÌÁw~çÞéÓ·EµZ•Ƹù¼°Ö­Ve]Ûf-Š.)¥¤”ôÞI)ù›õ^xï½Ö:!šƒÙE<'²Ú»ûÖ»·ÆþóÌ>cˆ!¾6GÊ‘”B)E¯I)©”âh´VJ­³¤¹h-¹“!¼÷R’ÖÊ{ò~}ŠŒãcÿ¦@2æ¨ÃH)8œÚ9WUFÖïœ'òJɲ¬o_‰Îùª²Î¹V·ÂW&lîèCz_5=£8ù+Zb=6òª½?Úc¥Ž’«›Ó)‰O›·4k!ôX[ë¶G`û0™¹D»ÄÕûK)´–aš‡KÊ£ÎÓÚ>?nZZ;ç·…ì A¡sò4¯ûRælÞûmG›ËóÎQkúJ´.ðÓûöç®pöoj~ÌÝIú|ŽáÇ¿‹ïÑ6^‰sîJUÎxnIÇ[³ûù'‰âÙcçÕ£o@ë‹6RŒÇOêßÛ\t™ñ8½h­…Ñ(áSØY%ÉEþ™[’Diz‘ò')lp’’',fp’2')`€Òp-‰ï/Å\¶¢¨›ùªDT×n¹<–ì콟ÍòÖg³¢õWò–˲®¥ —¥áÄÕÆ»ò•ÎkÎóº$ÍÁÐËeÙHH÷Öº<¯CV¦µÎZ_×¶ªÌæ]ŽÃ4Cœ1g;zïç !ìœíNÇ(ê¾=ˆk•,üÌõG!÷…!z!Ä&ïµõÞöÛ½Í7_Æa›­_Õ`k¡” Jq*·àÇ(R›šs-£H¥©B$I¤”LSÍÌ“IƸÓiEZJŽƒL$Ñd’i­„ Ûoßã|ÛétÐͯäŸùáa^–uQÔy^W•Y,Jcì|^8çWÖúù¼0Æ.—eU™<¯ó¼*K³Z•uíæóÂ9wp{ïf³b÷ÇžLR!Äh”‰,‹…J ¥øs^JaŒ÷ÞÕµõžÊ².KS×¶®mk ƒx0ˆ‡ÃdÏC†~sy^5Ëÿ‘÷¾ªêÝ¥/®¶0Ýüôq܈ü§õg Ç*ðž '´§@RJ)©õaKúªZ¿Ôʯç³'­G’c¼§Þ/‚;gs2ÿ씦ѶÜð4¶ejDZæ±Ô9JY„—Z+tÎsy€(RÝ Á¶øn.¡ADUešAkÙݽ<¯”Z·7ËlðòÔ¨rp}Žfk]U™þI4QžW½§!!È9›çϽ ¥(jeÔ˜êG‘ÚöÕxO<Õܶf­¥µnÛ‰@kɃ$ÏZ¯¶ºJ«ðCo±ƒº^-Ø‘o­m]†ß0²,n•“éJNmÛœ¤tRb4ºH.¿b:Ív/Cëìþþ—¢Hï¨"0%Í“øñÝÛUZ`0ˆ·¥üK)&“­ûœ¦»ª#L§[ë4$‰Î²­%Æãì¢Å®±‹üu4¸QuثʮVÇr·$°ç­à9Naî¬üX`_]›æÊ9(y>?Ja®*뽟ϋÛZU–Èçy½ U_gŒVÕ:Ý9Ï/9çxsέóõœsüé¼?JÜËóš³hÃF±¼†LH=kdË "¿ÉÏ=Ê“ ZÙ‹›5¬<7Ù»aµÍüÐgmÌn“ ñÁä}8ဈðé¤<:€B’³,7ÿ“Q¤8 –CN…üÀZ§” ‰·Þs¼/¿Kã6™˜VJ2f½”1Î9]Þ¯‹8ç¬%ZWháþ£Ý›fÃÿ·’ˆ$­ƒYRì…Îy"ï½à¸Ï†k-£H !²L‰4´–JÉ,‹¥£Q¡êZK­ÇóÇ©Rb2ÉâXk-OqV ”‚c•’‰ÈoŒc}Ѥŋ⑭,mžW‹EQUv±(8¼{6Ëg³bµ:\.«ª2³YÎyßóyQ×f>/ó¼ª*sx˜W•i ˜-ãq*¥œN3þDZ¯ƒRRk™eÑ`‰;ï”Uex4BäyMäëÚ®VÕrYc«ÊÌf«²´DÄÉõ‡‡GÃr1OÓ(Ë¢½½7Ž2OÓ(I"Î7íi¥éúÁ ا>uîï瀪ª.\¸ððÿï}ï».; eÆaîZ«(ÒÞSžWEQŸ??³ÖYë6±òuëãq:™d“I6fãq:®ß|óˆóÓÉ$ÛÛËB&¦µn±(ø'°ZUumf³ÂZ7›å\;¡ÕÈ’²‹Â˜ucYNºßñÑF£T)ÉaâIűÒZ%I$gOKŽ»åRD$¥4Æ*%ÊÒH)ªÊðX­jcÌrY:·þ!,=AÞæŠ)ÜDs~tô.þxÚTM!œÊù4ÞVW1‘6Æq0Ç;cóDÎZCÏì+Þ¤ì !ŽN)¯WJ*%„B¨(RÖ:NñãW9&žK 8GÎ9î~4ɺqÕ]I%‰N5$Z«á0á 8ŽM'"Χã°9΋ ’(RYűÖZF ­óÖ95>RJŽÇ íLš»‚œóóy>›åEaW<ÞÎfyUÙå²ä!ýà€“µ«Å¢¬*3ŸPˉÛËeµZ•axìšLÒ(Ò£Q2ÄQ¤§Ó,It–Å·Ý6c5gq¬¥\Ç,r´´µVJÉ!ÝÆXc,çzsä÷l–¯VÕþþb>/‹¢7išÓö÷ö²,‹ƒx8LnºiÈ'“l0X7N&i–ÅYO&ép˜dY<Æ;¯kÝSOÍŸzêDIÐÏ]ÿþïÿþ¾÷½ïÇ~ìÇ^úÒ—žü]Ãáðµ¯}íI/Êûúíoÿ®ïþîÿ}yáÂâ©§ûû‹ýýåþþòð0?<\…%…7Ý”ÇÙxœŽFI–ÅQ¤9°ÒZp°zâ‰ÙrYÍçÅáájÙíí¡˜W,˜N3.cZî¸ãÿÀ÷ö²[oœ¤ƒqpðÁA¾‰¼7EQ/—e]ÛÙ,7Æ-EQ˜¢¨‹‚ËÒp)ˆùq¥±Ð>FÍîaíz„ ºÝÆG‘ Ckc Ÿ+›«å ¨õÛÖWm¢›ßÍÕkZÕþšµV«jS|BðþumêÚuû•’umZ¿5­¹Žm««Ñ[ƃ-—ý…œs­{\¬ªL_Ù€°¶â9‘/„à2iÔ¹!¦:öætE)Ùú7»Sw|ùß¿n­ëÖ`Q¤w”ˆ¨kÛªCID¡;=úèªÙ®õÑXÑœì5+‹°ÕªÜL‡ÚõEx‹›DÛfrÛùž3Ô³Öd’ Ñßcw4ÿp˜„R -Jõ±®Á ˆÛVB`[©¥Ä¶JÓé ·ïüôíRÒÛ-·ï’î=2ánÒÉw ®,ñ¬ú‡ppq~h³%Ïë²<–¿9›åÍ¿hT×nµ:–´ZU!·ˆµÂìºÉe‹Å±@«n(^YšÅ¢lnw6Ë›‰ZÖÚù¼l¬ò¼jÆx9çW«£ÄLN#m}´«Aj¥IIǘ8aójýÝ-¥„”’H„­oR°×QYJIï‰óÙi¯é›©”ÔÕ ñë›§Îûõ[ˆÈ9^ÄmV? IDATÎ{¿¥r·tNï‰È=—ÿ’Ú:Që(è^ǨÒ:g\r,uxªTH_ZK!$Ǫò«!ŸË9Ï)Ü1œsR*!Ö¹xum¥Þ{Î%Ü„¤‹K-- µ "‘eëp(§Mþ¸Ö’Ó¯BzÔp˜(%«ÊL§™1Ö¹udÞ&T;'¢(Rei¸kU•"éœ+Ë:Š´R’ó…iö[;ç—Ë¢,MU¹²¬ó¼âH>N„/Šº®Í¦|‚©kë=c{󻟡”‚”œÌ+¥Ôzë—e±R2ŠTÉ(RqñÇLeŒ bï=‘Œ"é=i-¼')¥µNJŽy¥uþüìüùÙ£^8þŸ??ãHô½hòÿøß>÷¹Ï]ßý¼={ö×~ícÿõ¿þØwœj˜üK98ÈŸxbvîÜ!§Õówtp°â§O<1o2ÓéàÖ['£Q2ÆIFI’Dßóön9¢“µŽ6%‘»Å±ŠãõOF‘eñf£.”Ö "ï)ŠŽNˆZ«ðmJ)¢H‡ŒÝ(RBP]¯{ÏH­ueiš§Ô¢0(xQUG•½¸ …²|¡Ô¬|¥ðT¡ÙÂó½ „e7žMކäõ´ùIyÖžN&Ç’d[5lxºÈÂì1ãÕÿ{\ëù«¹þÍ#bÜ×î!¦_Êuâçæ©”’£èÖ‰çJ ¥G i-¥TQ¤8rˆ³Â£h ÇQ+­•ÖZʲõS^³R2I¢ÍADÇšóL‰¼s”$ºª¬1Î9罋c½ZUÖzk­1.Šô|^xïCª Ìqô­÷ëº yޮǰÃh”(¥¢H‡ Ñ:p<¤M&™”"¤ÃO§c¬4&Ue”RI•e$Z)™çÕp˜ùÕªNÓÈ{_U6DÍ*EUe9œ+ÄT…ÆÅ¢à@«ù¼àãrYòïnµªË²æDøn–âI„L7ï=çõs¢Ü {7Ç鯱ÖZ(%ã8ÒZÄq$¥!D–EiqRXšF|$O)%ÓTsj^)kýd’­VUšêå²RJUU圷–£ðëÕªª*Ë[³YÎyñֺެ*“ç§¶]4’ä8jг±¦ÓŒC¬´–Ãa¡ÆY%‰æäñÉäh±Ñ(‰"=Äñ)åÖô«gƒ²4EQäÜíCôl–ó‰i>/ªÊ,årY–¥™Ï‹<¯Ë²žÍxI³#”Ÿ—÷ö2>b“I–$j0HF£4IÔp˜r¦öxœfÙ:\žûÀd’)%—ۊ_.Ëm)ó«UÙÍ‚¤Múêd’‡ÉpÉtÊQòÉpO§Ù`ðK“I6¥Y ëöë›ûBEQ?þøÁ¹s³o~óésçÏ;üÆ7ž>þðܹÃh.¥¸å–Éí·ï93ùŽï¸éyÏ›ÞvÛôöÛoú×ýâ}÷ýŸ¦¿z^ùÊ=sæ^~|êÔðŽ;NÝyçé;î8ÅÿãÇM‹;<\]¸°Üß_ìï/÷÷—O>9çûû‹ –O=5ßß_6'–Q¤N:5<}zxóÍãS§†§N Çã,Ë4¿iªãXæ|p®ó…¿¿¿l •\b:„:Ói68¼~:Íöö¡å–[&Íèä«ä„)ö»_ÝËØ¨‡Ñ.Á{{ÙŽW9z5Š¢²¬÷¹÷\ÉÉæy]U†ORum—˪³XaŒk.Æ/½ÁÇ]RŠñ8 ‰ÃÓé€(<΄ãq*¥ çöàœÐ(â/Ò9Ÿ¦Q(x@DZKžYQ#µ™zχ—S8·ÅâEu©5¥¸| 5Biãx{EJkE*Ž•s^âpï×!þ<‰ÕZ !¸úŽÖª(J!¤Ö²ªŒµ^â’¼¹²¬qŽÏó(çürYm^­.;ê]ˆ’ï…h箞„RŠê•’D^J!¥äúRü»ã2D‚O¦›’µÞ{/)%ËÒ8Ç)«¾,+ûŒ¯Õ„<}%"!ˆ;G< äBb|™FDÎù°·|ðÃJˆ¼1ëÓ–µŽ{_Nrü7_q<“¯ +ŽuM•$šGióNF‘ iÈZËERkÅ&÷C"ª*ã½"Å]´®­÷"Ä@·RqëÚrô¶”R)±\VÎ9¾ž"¢å²Ü#"šÏ‹féáá±°ìnLöÁ Âá)—Pj<=Š/§FY,Æç‹ð4Ë¢p©ÙßJzmMø¤Sx:§­§;"û÷öZýýy¯×Ý–Pûž‹¸g¦ù!þËeÑŠQ>ávÃé è^t/—í”ÿkÌ%mš-\æÙÒê®Ôé“´¹üoµ4³¡ûYëøj])‚‰­]ßhþ¦Œ1D¢“¶¬0 c\ó›MS-¥,Š:Õ4Õ›¥âÑ5ItXài™îµ^ï7î\Oâ+ñVcëÆ)ëíl/ùÕ岚Ïóm=d2I¹ ‡ W  â$‰&“4d1oâæS>ªaÉM牟zjΑÐxÍ9Åœy½­ýà`Õûcçþ™¦ºŠÍ©‘!›#¡9;¤E_å/áZpÎ?öØþùó‡çÏϾþõ çÎÍžxbvîÜ!ÿ7´É${Á n>sfræÌä®»Nßzëä¶Û¦·Þ:¹í¶É¶áýSŸúÔ=÷܃`ú«çìÙ³Ÿüäÿó_þË«Â×÷è£}ôÂ׿~á±Çöù7˜$ú¶Û¦wÞyú®»Nßu×i~ðÂÞr©e-Š¢>~vþüaˆ˜o>}â‰Ùã6C`CÖ<÷þáœ93=sf¿å,‹–Ëêðp5›å›ûu„ýáa>›åë—Z¹±£Q2&“,ÄÖó¶ó`ý+¾"‡úò¬VU]›ƒƒœc(—˪®×ç£<¯‹²®ÍlVðùh>/Œq³YΑ—óyQ×f>/wOTøô4fZK.}Á8øÁxœµZ&“Œ‡Üñ8 cï¶•Ïf…÷n¹¬8T½,kÙ´Öq1ΙÏópñÅWs›Ç¹÷žg_>;ŸÖúnôp×fŒÕiñ ”óUãX  §²òiºY©E)1¥R ¾ô â<7£QZU5_¹ðĆˆf³Ü9&W¡ÊWÈ| ;ɟŘuÞZWÆZË…ÊÒð,4Ï׌1W0«½Wÿ"òÂ(¥h\Ô("¯”RJð%¤”RJZë’$âË%Žs"e­BJ)´–œ*EÚ{Ÿç5_¹ÔõQ6¾| -ñÙ—Š+Bñ‘e1Ï¢ùªŠˆœãÏÅúN©u@<‡éó¸P?–’Bè³”¢(ø6…R¬VU¸6,Š+–¤ßŒ\oæÏ6ŠÓ4JÅ'íÞS];¥Ä&SÞãBì¦s¾™ÇQ]›ÍáârY†ˆ¢Hk-­µEaøâ”ˆêÚÔµ ¹œ!g?¬¹9<¶rŠ[ é­¤×ð½ož^•Œr.àž*%š'_.nž†‹ÊÍÓcÑ¥¡8k]Y´"My O;‘ýI¸™#„hžx°Ý¼t,P5Mã‹–ºy®k夷î+Rß(Ñ Î®ªvðt7ɺ››ÏUК-Ýse¸?ð‚æ·v¯U“Ö1E_ËPãÖ%ƒ”¢5 iý(¨Óó‰(IÚ—Õ|Ölé úoEó9·µÛ(¥Â‰eY7Æa9ÆD”çZËPu€+D‘lþúæó¼U–€¨Ý¯hË ÈÚ£{ׯž¼òÞ ôÞ´ônÚR=±[ËúºåUÕª\B[ü»ÁèÝ.ÑÍîÓ­&®Ølé¦öws¥·­ªÕÁº‘Ù\t°ÙÒýQP£¯vÑ´®ÜÐnÜ6¥é Iç{«±76}>/\§êQë|ÊzK6v+—Ж½µ÷ßüi5^߬öm™æÍ26A«Ôͦ±'½Û£hÝùûK8çÃt‹Ö£"/)Ÿd¥iÔ*˲vÎ%‰nŸei”ê‰õwÎÿS’uI€º¶!CŸ‹ÂòccÖšãX7ë¬t϶Á¶ûŠ‹EÙ;mÛV²‚¯¾»íá{ç£õü¬ØŽò™×@·ÃôÝÁ“¶¤öwûUï€Ö»Ân•ÚÜÕo5öôwK´ PmVØS„`:m—x–×m¸!!˜àŠá˜Âð4dá…§!1:Á·ºãÕÖ{¯ÔšW«ªùÞ<¯Êò(X¤,ÛJWJ3=AÊu÷†hæ2pt{xæÜÑSï½16gpúÕØÛ4ÕÍxŽ4¤¤Ð’$Ú{ç/ëÚôFÆWÕQDïlVÔµY,Jޝ:<\•¥ÉózwÚt:à¤xþ%ŽÇ)ïêxœ&‰ 8]O&GÜfYÌíQ$9âgo/»1m8Šîð0_­ª¢àLù²(ê岜Íò<çÄö?àpùÕª^­Jþj¶%yqœ4nigY´·7 ÈÃaœ¦ñh”ŒÇ)^NCæ¸ùV†fYšƒƒåÁÁºH@H»æ§9éEQoïÏ—"uêÔs¨7‰ØYHºoµ7CçŸscïå1Æ}ó›Oýë6‰ó³'ž˜=úè…óç÷÷—<Ð !n½u|æÌt“;?áôù;ï<}æÌä2‚鯶³gÏþùŸÿùOýÔOu_ªkû­opT=ÇÖs`ý׿¾ÏsÈétÀQõü]s`ý‹^t¦xrÖºýýåþþòÂ…Å“OÎ/\Xìï/Ÿzjþä“ó –ûû‹'Ÿ\4kPi-OŸ:5ºùæÑÍ7NŸ>=ºå–ñéÓ£Ó§‡§On¹eÒÊx¼âa!Œ½-¡?!"Ÿ+LðBí›-7Ý4솵=K„s"‡‡ÎfyUÙår}Šä¢,ËeüP/¤ù`ÛUOH¨ïfÖ÷½”¤i4'Í!6úä‹ÒZË©÷œàÏŸ…óÏ&Šœ*ÈÓ†ÍíjUãx…Ý´Ö.>ÝO&©”‚³>ÇãDJ9%Z«ñ8•RL§ŽùSJF‚óŒ‚Cý8#ƒnÇã¬yéÁú¦ŽG3aj\q7[Â|¸µ†Þ·t7q©áÚI¢Ó4îÎK›“½ð”_uÎ+EÒ꽌"ÇJ)QU6I´”²,ë(R\–)Š—ÒZ•e]×ÞZ.r`ÊÒÔµ ¥¬õ«Uéœ'ZAzOy^ñEnU¾Ôå%½÷Þ»gÅÞ(î%i}(¤”|=Ç’ˆ¢(âWãXjÍÝp ¡œsƒA"%I©”¢(RJI"Ê Xk¤äz`’#ƒ“D—¥áC$„©¯Í"|Í|áæÏ–K ‘s®U|©¸žü)¹‰ƒ_W#"¾O’ˆ¯;¸ª™1Î9Ǭu\pKa­«*³ÉŽtEaÛ<¯Â¥újU‡EQ]©ŒãÉ$bƒÙL næS7ó.¹Ê?VJ†ÓM+O–ƒ/±ÆØápÝY×–k•m˘)¥·\Ò42Æñ4M#¥÷ü$‰¸ï]½[v»×|ÅSøy$ O›)ù­kÃæWF˜îK­w]Õ6³øa›V¢N§Ú¶ÌŽNÛ]àJmèJmë2nø\†Öχ:u&vôùÍòY`Gÿï¾Ú]Ã¥®Ÿï\5E‘jþ©»Rßã¶U]F·9áO²9ºæéÕíH›Å.òuSçï]¦wUÝ-žds'ÜâI6G[rÞwè~›´å ݶäIzѶ%¯ûœ|ë׸(¬K÷Þ¾¼.}¶£KEͬÐ,ÄW¦q¬C} çÜjUűnÎ=ªÊ”¥‰cÕl\­J.!ÜÜÜl–·Æ•Þz|ó¼ÕÈWÜ­Æn ŠVipÖ,ãôöŸÞJ­Jä×LoØn¹ê«U³- ¿U˜„úJ¡Ñh”p‰µ¦nu ¾ÕÐjÜÐß½å B7VØ.ðCëŠ>í^Þ=€&ÓÀ³Ë|^„ïºvËåQ]3q©®]3~>?zɘֻJkíæ]Çþá}3ˆ¡ó®£—¬u!Ï{ß|©ªŽ‚Ƽ÷W0Š«%ŠT3]kÑüKRÊæ_‚š1Þ{j­½æJÉ8Ö!µ\kÇ*l(ŠtɰQ¤¤”aaNp«Š"Ù<ŒœæÜø8ÍôyŽkwÍ—¸ÿxOÞSUÞ(Ÿª²W#W]j~;D~ó”“éÖ¹Þ“¸V[GJÁû  á9Ö÷S)É;ÄïZ¯ƒÝµ–ZK~UJ¡” A ZË8Ö! -It–Åü.¥DšÆaÉ8Ö£Q¹xD4™¤!3Bkµ·—…• ñM7 ø±âæ›G͘†ÞDH MF‰÷ÄÁ"œ2›Þ{Éžœo83Ä}.—¥sn>/C âÁAN' ZÒZÆq¤”y—D>޵s>ËbçœRÒ9/%×–ðÎy­¥1Þ9Çù†Ö:!D][cŒ²,MU"Q–—¦µSêË…©ͼõæÛÞÂÉ’uí8ÚÞ9oŒ+K#¥¨*ãœ+K³ZÕD~>/8Bt>/Œ±³YQU&ϫŢäHÙÝ;ÏÙ"J‰ñ8åÇZKÎ%“Íc=Ä˾y¬9r…ã×!òœ#wÃSvÈó*Ïëù¼àìòóçgÝÈø²´‹EÁAH›»Z•ËeYU»>#Gä·"ãÇã4ŠÔxœr\àtšÅ±Þ$ΫÉ$ãO4§<ŒÜ©‚³Y±Z•«UµX³Y¾ZUËeÅÉòœG¼\–‡‡ùjUæy½X”‹E‘çõjUmûyò¯`I4÷UN?sfzæÌ„Ç3g&gÎLn¾yÜ ë¦Ø7Ÿvý“OΛ×­ûÖPÓ ²¿å–Ésqòɇ"ŒÛ¡þG8J»_šÏóm†|ôÂXÍófÝ/uóà.O}ó<Ýåü>ž„¬ˆÖSb>QrØ7(æ;<Ìó³YÎëỘDÄ=„.=Þz:Ð:<¦Mž”‚g!5’g¼!V/¤rØ(X~{+ï_-Ʊ®*GDÃa\•÷4Ä+þóy>Ÿ—umy*^×–?Ž1Ö7ŸÞ“1®(ʪ²ÖzÎͧM‘*žä×õú®ˆ1œŽO›Xyºì;R !¤$¥ÐšÈ(Ò|ÝÇëÃa¹ùY–ðÁáÞ¥µŒ"=ÆZ+¥Ôhi­£H¦iĪ’$2ÆÑ`c«ÊfY,¥(K#qTº÷Ä?½f¾d3–´[#ŽÇž¶Š+t×ðÌóLãXÅqDDQ$ÃOCJɉŠÜ‘¸‘C<½wœoŒsÎ+Å-‘çË¿ˆÍ] zI)øsñ-ÎúBAËee­ç{y^]‘‡ÍØÊñ8 c`s<Ð|n IDATäÊü˜M{7£x9L¿ÛÂ+ËÒ„LïÃA "Š"µ)VDÃaÂ×þBÐ`pÕÍ»¨ye×J&åñ‡ñ…@xÚ Tm%ç6_j ¹¡*q“láãÓÙªU64_:VÀ€ùð×¢ /…Ùu«ìA+Étoo·2I›ßc+*÷RS˜áäÂY/°Ö·ê‚c›.@ëÞ{,¨—çßBi¬Á-—ÇÖÙìðÔùñt¥¹üry¬òP³ºÉf…Çî ´ŠË^‘b'»5 ‡ÐútÔó[¿ ZŒGË7눰éôØò­)“Ö²•óÛº]Üú}µ~δžŸ4FÝ*ÜÕf»;ÀšVÅò¼ ÞªUL}ß/Ífí¹7Wi:¾ªöØÈ3áÎ^µWÕê´)px|Un>oW~êÞqZ­Ú…ŠO2¾²ºCbsTgݬj¥D7Êy:m¯ªy ÍmÌã[O÷´v͆nO µréx™6§Íst7]š§Ö×À–{ÓJÀ·& ¬Û¥ûúa;^¿õG´Ô7JÓæÏ;š-­A’úbú{ŒÝ_Ð5.8ÁÍ–ÖøI}ý0\[5uû3ÿQBkå!RŸ…«¶ÆÊ{ʸvãÑùÏ,š-Í™ñ÷´näãµnOi”’Ý)wo@wðìž‘iK@ëÌK[zW÷ K[JA,—' è—áMÝÎÍ´Æ"¢}Î%"­/! ¿Õ‡©s§Îl|³Âž€þÞ<ýÞ€þVGí°ÝßN·Ã÷Ö6€Áô7‚V6ÄáᎠ £—ZáœÝ¶å][“ƒš!쬻B~WxºXƬÓó¯ÊŸ ¥d3ô„Á‚f~J“÷.d‹s¾yøþÆwåÒæãX…­”äãí=y÷Á9/„ ¢ÍX!DXÒ'„à´ þ—ÿ/N´ÎaWJð?;ç/‘£ÆsüÏà93º, ‡šñÇ,ŠÊ9NN'ï]»‚BT:ŠÍ¿‹_w!BÔ~ȃ[¿&®Yšû:Æ}çî½á5B­…”á‹q…~•¦QøN9Ã])ADJÉ(Òq¬… !ˆcãø‹K’X)EJkEŠÓ²,BŒF‰B)ɫ嘒$‰âXr†­#!Ôx|ôïíoÈçç.- Q˜\÷‚c5BŒKÈ”wÎs$ç\¬VeUYÎU)Š*Ïk.€amO^F'*%µ–œ¨”ðž”"!¤µN)i-wž)åjU AÞûËCÎÇ9… ªÄaë´€XçÅs< ¯Ñp¸N9™LRþ r”›b2I©“r%B*Ðáካ˜pþæl–×µã8õ²4|üçó‚£@æóÂ7›åhÂ…FóÝ¡x¦É‘1N:óÓˆÓä'“ŒwŒ358#†Èd’qÔ Ç› !ù=Cœ³3Ÿ—y^åy5›åy^çy=›åÍÄùÕªZ­ªù¼àÆÍbUo¬|#2^ ÉpDZ‘ñ“IEj4J8(:Í8"8L’D‡ãsÃW•X.Ëå²Z­ÊÙ,_,Jîx³Y1Ÿ«UÅ)ÿÇ%#ËeÙ§¡M\Ëd’‡ ÇôO§!S>c>“Iʱ¶û›eñd’ö¸4Ífù|^,åbQ.—Åáa¾X„§ål–Ïf·„Ý^.ËÞˆù,‹‡CÞ½?à¤ûÑ(“Á Óñ8å0%“I>Ñ;ô7¨ù¼øÖ·6¹ó‡œ;Ï1ß!çHkyûí7qúü&w~r×]§Ïœ™œ:5ÚÝ .•µîüs<òèW¿úŸÿú¯_ÿÿ8å–ñ÷~ï]q<{àÿÁôWÏeÓoS–æÜ¹v`ýþçSaðï ¬þóoº"Iâ-EQsH='ȇðúÐÏŸzjьÞN­´z‘ß$ÚïJçÁíà ŸÍÖ™õ;ž¶†åñ8L2Þ.?™õ“IÖˆ³ìíe7Ò¬›£ ‹¢nV UI.úÒþþr[ s’è4ÓTsÅ‘FÒýºe÷K7Ý4¼Ç9||Ncl}LÎ|ï.ÀíÍe8è?dÁïÐ=,›"CÑñ²CGÃ2!ý?,pÑÉÀ3<2´I$o¥™‡Ì¾Vˆyˆ/¿ÔåwÔHèco­©‹ß<¤Ô©MÕªeÅË[ëùò¤,m˪2qñ•EUÙÙlUU–+Q-E]çˆ+p¸9/fí:m³(jc¬s¾,kçÖ·kŒ±'¬À×V››"É7F6wD’¨$ÑRŠ8ŽøzŠKµŽÀE zÕµUj}{Ê9®¡Hq¼Î@ç«Ñ<¯ãXűžÏó8ޤÍðÇÚ,ôú@kÉÞÆîÛ/µ²BK¸¤"¦¯ÃaÂW¦Q$’$æ=áW¹$[–Eœ•Ÿe‘”Òç½çŒÑºvJ)¾/äœbýÅ !8ÚRé½ã0M­u]›ª²B­%ÿ4ø>^«~@·T@Q\r·^ü›âÇÍìÈfo3:ô™V{sùK]µ.¤úJyTç2I”µŽï]¤iì=5g‹’_¢ãUEi$^:–ÝL2µÖ7³wù† ?æ’'á¥æ в+õE­ôÌfDr+|³Yí Ü{a\¤÷]£ÑQˆ­Rª™ïÙÌ·m…6+(4oBF‘ööšÅ+ÃEµÕ[ÙÓݬÞå² ¿Z‡G›0·„[ ×ݸÿV-“KÏúïîÀ®¬ÿ+.TÖ šuG¨óSíË+oGí·n’´â×/=ë¿'j¿ù´õçÿ?{ï#GvöžsêÝõè!‡œ¡v¹ärWÚÕ[Y+ä*ÚìJ¶%çÆ¾@bC–bC~À¾r'B” A€$ÈœÀ† ;1bY°G¶Ûð…/b¯¤ÈKKZqeÇZK+‹«].—û ‡œGwU×»êÜ?¾î¯OWu÷ô”Úæèv5˜ê¡nëªÕV˜¦S¯ÚƒoSWÕªió’@l{îì;™MÕ¢srGÔ)¬%o×mõºÀ¦eqh£Õ+8SðgmaãJÁ^Zâi¬h<$]0E¯×´Þ·åæí jÏv´ò…N 5:°HÆ‹ªš’¦¢í[¿©´åéj  ío7¤¬UáÙd/€'ê”vŠˆF§ˆMkØÙ°-ØòFº ÖJhÁZ/Ô³¬]ÚÕoêllZz6M²?k¶©+\ä«üÞ=~õ"c,û…zC´•úíÃÚÈ‘ÃZÍãÔyÚëÙö»nÞݼa%‚ ‚ ‚ ‚ ‚ ‚ âAbz‚ ‚ ‚ ‚ ‚ ‚ ‚ âµ…:Þˆqm(~Ô@Y5˜¶ýQ[ Ôþ¨±`#:w–iHJ–¦9¬SJ–e9Êqö!8DbKÉ“ 2–RJ)….¥¬k)‚×õ¸\U5z@8=º[Öâš­Å6ÕíÒ45ÃÐF/;pÃÐ C«k)e­ëLu-«JŸUUƒ. ¢Ä«ª–’aÄ8Â0~~T–¾UQ–Už×øc‹¢(ŠýÕW *ùá«B0!8ØêÙȯxÛ'^ù€Ã‡å[ÿ6ˆ¦ñÑ6r¨BpΙÂ9çšÆaÏ Á…p€@ ¯ëB×&°´3Æ lšÔíº®™¦††VÃÐ<φâ3ËÒ@xmšºï;S•XlZ<6ñš9a˜UU VAp—GQ ®h–ÁPEYšæQ”EÝïÇU%£(+Š2ËÊ,+Š¢Î²b»†&¥Û œ9ШB ´ì-þLS³m“1îû–® Р3E:žt8wØPc¤1E‡*"!†š]:8pô!Óß<¾÷{ÿöøŸøØÇ~âæù€z½øêÕ>$B@aý¥KסÅÀJ8ª~]ÖŸ:uô¦6qœß¸^¿mlDƒë×Ã7ÂõõÁÆF´¶®¯Gëë‘zÕó}ûøqÿèQoyÙ=vÌ?~Ü?zÔ]^öŽ÷–—‡eÕ©7lùA[Êuu"\ Ú}p©ƒ4i©ƒûö”cÇü›aü?P¨ý·^oxUU/¯ó?š#%Wœõã>úÙÕKíÔn±î0 RýA6ŽóÎß°áãü;•Ü¡¨NMÀû›zCÁZn÷Æü–¥Cµ¯k©i†§LSÏóÂ0ô,+¤äœ3hŸ£(«ªªßO!õàúzT×*I’dEQeY•¦y]Ë8Îà#)y–å‹èþ5MÀi-•z Ó‹¢†‹À¨%ÅœdèZ…ýÀ§jUQÔˆSÔDbþ3!†º^Õ‰½¦n×Éó"ËJϳó¼ÄÑÚv=a­ªÕžs¿ßi†J c8fYÜæÃž§ah¦i€Ø0tÃв¬0 ŽEš–0 '¥,Ë )YžW8^‘ç8|-àAű¦iu=ÖÁ«鲜>}/¨vuËÒPTªJKU9ïbý±Sè1¥~6ÖƒžSxa“bÓNÇR­µ‡ªòÚ1壱Ƕ!nVÉ q­Z©ÔŒ±0'lhh—Õ\ê‘bŒÍmت˜X=d ݶª×W÷¶¦ Õ«Þ™b“Â&Õ® ¬ç¯njhH™UW,%þ¼“h?žkoç<¿cJó>g†½¬¿ýó×ßþŠý=aU~Þ9V܆'·ñic(lV “}\ím9£·=p{¬S×pSëvû+¶½OÙ#Û¢·ÕCϯ3í5ìÝ =¿Z¶¿âÊ Q¨ïZb¾mU_ðëf­j_¾ŽµrWÜ$öý,hÏÐ^ɾŸS·sñs¡¥ÑqeÓn4]bÆX–•p+­N™V&¦$I³†´³­´ÓN´sEDQZU¦]…Ú™]nY¢ˆFþ*6ÙiMiÄf Ç1SÚ 9KÚiW $ðõ¬oi§ŽPo耥¥‰èå‚ ‚ ‚ ‚ ‚ ‚ ˆ©˜ž ‚ ‚ ‚ ‚ ‚ ‚ ‚Ø+ ÓÂ?·¶Æe5l²ßUöûcgJ¦“åa¸fƒ9UÂäǪ{“¤@G’ª—’’õz nj–M‰Þ º.ÐûÃC% cŒs®*ü8çhWùÐQ"3XÝwûahœ¿È¶ )¥”CQ‘BJY×µ\×Áö.á#ÆXUɪª5mø‹ÀJʘªªêZÂo-˪($þî¢(÷ÝPÀ93 îšÆÁ‰s.—RJÉ8gœspëKÉÀ–e)%ç Ý¯YñCŸ7|‘ŸÆUk¡ij¸'u}l˜Òu8”C_˜m¸”eé”kšºe ?ÒuaÛ:†ãº®eš:|Aà`è0Mݶ ×5¡òú¾mš:|äy6~‹7ι‚׊Θ¸½TU½¾fY¹µ‡a¾¹9HÓ|0ÈÒ´ØÚJêºÃ4MóÁ O’¢(ª$)ò¼ˆã¼ª$øâÓ´”².Šª,벬ëºÞ‹N…sžÈŸ!„šiêŽÉ9w]Ó²LÏ3Ѣ͡¡5ÄSï6Ï÷û)¸2£(MÓ2޳(ʲ¬v–•a˜ÆqžeE¦I’§iÙï'EQÆqòÄùJPj j9ϳt]ëvÁ›i‚¹`iÉÑuÍu-Pt»˜ôaOÁPÊyS÷C–•hO’<Žó~?Ñ|Ã8Ÿ$ùh¶ ã|{º.\×ö}ËqLÇ1»Ý±2Þó,°Ž¢G>œNÇêtŒNÇò},ó7õ'Lƒ D¦a˜öz þEã)a˜ÁŸQ”ÍÒA¢¸ßóì p:ÌìAà@es]«Ûu:ËuÍNÇìv;0xóŠ1KܰáÏIÀÐVáƒûš"«|øtv71)åÚzçûè_[ë«öyϳîºëèæQü½²œ8ÜTû|ƒÍÍÁ×¾öÂÓO_¹páÒ׿þb¿ŸjšxË[î>{v(£ýëWÚmÓ¿óï„?‹Â˲#Î5!Æ ZYÚum˜f8ë«¥u­kÚ”6pÎ"Ueéz²ý¬{ ®uÎ+¼Qº-<óL¼´ô·lÛxÇ;îùëýÌÙ³÷¾ó÷./{·à«{½TõX{/_^î¹5P;™¦þº×uAXªz¬À·`Û€~?½~½¿±1X_n܈®_GåðÆhc#Z_¨7ÎËËÞ±cÞò²wü¸옿¼ì®¬ê”›n•8Î{½xkkì¬ßÜŒ{½šñ­­uö[[±z¡KFÃYRû¶Ñþ0šéöNeiZ ãþN¤PƒA>¤I‚]Ðb0æX=ϲ,Ãó,×µlÛ€„+0Eùȶm®ø˜¶®ï®kM]í-¦ßO¥¬.û<¯â8™Ú`•eÕë 3lΆËÂ0-Ë* Ó,Nœc/M°aØ]°4M,-u@ ÷ ®k†Ž® ϳáÎ¥Ó± C£ëšï[ª$úà3_pßvŽ£._µçÏš¿m'ß©šŒ„;Á† 4›Ñ¸ÍÄù…àšÆ‹¢â\X–žç%Œ5I Y0 )뺆¡¿ª±+Ôß媪³¬È²"IŠ,«’$/Ëí­¸º®R©AnBÎÇf|c,ËJÎØÐŒ_ײ,KÎy]Ë4-a¯á\ß·á+<Ï‚-A"*óÐs‡¢=õV½-͇æuBø>lÆç¬Ûup Ž{C Ø0T„EBsTŠÃ)?š3ƒTcÉ8¶ª}ˆªŽ\ù¢)‹ït b•SuíAà@MÃì’h‡dreYWUåû¶¬,kMÓF"B9Ê”ÀLS‡†Ë¶ªª³¬4MM×5¨Šp˜²¬Àø©‰ؤ{T5“NM'ÐXÏÞõ»ªZtªˆY•xNõéOÊô§«œÛ-CcÍí&‚Í•–e=Œe ª1SõrªuOJ‰bØäshO \URM¥¦ŠòÕ#R–•êUŸ.©W4UÖßxPµG¦NÕk©î75æÌ0“›eêú<羺æ9Îý©õê9HÜñ@&$uŠúp–µºa˜áãׯÙZUªßÆšaDÿTÏYƘºžÆiÛH³ÑH †®Þ›!ámd¡hÈvÚzèúâŸKKãQš†W͇Ásœ ?o#áôp{&×£M®§¹=êzTÚȆÁ¹®e¿?!nÜw¨@}I€µ$ÑíÆ¼Q Û*ê~?Uè6,äR²Ö '¶°m»nÔó}§-ƒîvõ7ôÊmA³ëN\Áu]4n`u¦ao$‰a-‹4¤:†r#ULcÛÔºÚ^íÜ¡«Sõ“Mv{”¥ÆUîèÕúòF7Œ16äj¥mŸ&ê{2ÀÖÖD»Ú¶±7 éHìæg¡`ÓüjÆ 6ídi4×04¡ÎШÌpë¡Î æ¦#ójÓÍ&¯íOË6Lèû2æß>Ü톑«SÔ{IÒ"6¦4z»wƒ“S¦xüÕO}‰ §¨/Aµ4N%)ëÆo¼4šÊ¶—GÃí 9)ÜŸh0ù ‚ ‚ ‚ ‚ ‚ ‚8 ˜ž ‚ ‚ ‚ ‚ ‚ ‚ â`¡šÔè;5b–HE (UƒÕ8R0ÃŽÊãéª/@u¨1â(¥”²ÉÀÅ]cY:cÃx?Ãû¢Q™M}¾-¥ÄÈ𺖲»_>w5BÏ04ˆb­ëÚ0tˆ²®kÆ9E\˲¬u]@4lYÖœs0TU]–µó¼y:nêHÅá¨ÁNòÞ… HçîOPSö­‚ƒ§^Jɘ„Í;çŒsV×c_;¸ÝGvx~{<îÓ0 ÁØÐ^dÈè9纮Áþ‚[–>ò^qÛ6áj·,#?MSÃHfMj¾çYŽ3Œ)ít Ô²†~ì˜7Õ#£º*ÐK5šm¦ˆ ,E1ô&L•÷%I¾¹9(Š* 3¸®žÔä iBò¼ªªº(Ê<¯¤” Œ¯ªªª¤”¬®+hvv´mÐÀBšh“Á|gYšiê Œ·,ݶuÇ15MضÑ阎cº®e¢ÛíÀ¹?Õ?Ëô·ï{øf°;§<Ü^/#;uÍ`ùétLËÒÁé ÊlTc†æº&èu‚À1 ôÈë诼-{2ÏËÁ ë÷Ó0LA~:dý~”~è:¢,޳­­d–òtÊcò}<òÝnT§-Ë<øOmº¤i1i“Ëå£(ëõâÑŸ^/™ªõìt`'Û¾oû¾ŽçYPƉŽÙéX¾ Z4µ ngYÖëëa[%ÎðÎÇS³"™¦~äHLÄÐÔ¨zb8AÚÞùÃÒàÜ‘TUýÒK›×®õFÞù>xç×Öú¯¾ÚÛµ pî½÷Øêjú••àĉÏ7xõÕ­¯|幯}íÒŸýÙåo}땲¬ƒÀù®ï:ýÐC§zèôw}×é£GÝùkøÊW¾òŸþÓ/mmÙ››ÖÖ–çÂ4«Üìv3ÆØÖ–õÊ+îæ¦sôhò¦7m´/K~õªûÊ+^·›?øà”¦R–â›ß\®*ñÐC×nªíé§FýÆ7nÜ^7ýþèÏE÷é§_zê©KßøÆKu-WWƒ·¿ýžsçΜ={æ¯ýµSª¥î€ÂzPÕƒ¶þÙg¯AÀ²ô'šÂú3gŽß.æúz´¾ml ÖÖÂõõðÆèÆhm­¿¾>¸q#¼~=TÕKŽc?î?îƒÂ~e%X^v——¡à-/{ËËî­iZ ª/×®õ¯]ë©iHÚ׈QãßQ³4¼ö0åøñ@uu½–{ÔÙ‡a–eàµvzÁÌ>Œ í¦®9 /g½YèàAg³Út:˜Rh¢³w‹÷Ãâ¨ju,cuêзi«É±ç“¦å¶¢:¨Òx'…7Y£›…qþ-¼ƒ€xÿµ´äŒÜ÷wNo¹-¬W-ðLï*¸oÜ€ãü {>Î??'A”NÍ£ÆFÚkø³®kMÓLS‡xš¦©C†HÆç üòu-ó¼ÔuE™¦iEQJ)˲ʲRJǹ”ÃagÐ#¨x[é8Mã®k3Æ<Ïæœ9Ž)7 Í45!¸iêœsËÒ˲v³ªjØZM`6/Ë MsEQš¦[Å«ªzjfõØít÷NÝɬå(Ÿ•¯nÎ"C3u‘†-ÁA¦$‹UŸ DQ†®|œˆÚqrbCó4MÔu ©ÇÄߨîÞ$?ÙÁ[Úª’¸WÕÇ=¸ëT¥ú¬gwÕOEu}v:&æÜE£¦q!W•÷®;´Ðª ZÓK–UÁ"f)ÀDLÉ¡~:lÞP?ï‘Y‰Úm›Ã`ÎÚšÎ=®mïÇWeV‚6#Ûä€-–,aÁµ5Y0qñš¢}f-r ³Éónê§·xµ 5ÿ~ÑÐ:Ï9ÁÙì³’Í=Í篶±à®WÛPó(¶ÍÑ8¸ê•ˆ¢LMæÔ–A7á ÙÖR«Ù_Ø4ßt¦êÈùNÓ ì ¥¸ÚÓ`“>hµ¿ÁZµ{¬å¾Wû¬U‹°ïÇZ™!5³aŽVÎ#yá}'s0uùmýzC‰®ÞzŒ¶ªÙ7Î蛑+˜c±oÔí†|œs®¾[Òþ´±ìäÌ·hÍ7›Æ“r";›fÌoÏ0­¾ÿl·öýþD[Ú¾Wm4¶íÖ¸Ñ\·s«#¿Ö¸5ó}[M¡fäj/Ž·ØÊÌjö[ݘ pÔoߟHVÑØòF*‹•ȇ ‚ ‚ ‚ ‚ ‚ $¦'‚ ‚ ‚ ‚ ‚ ‚ âŽBµ¥ÌòA,"ƒØGKÅlEE>ÕP¹S4[–É“R†0 tᚦ†Þ]皦Õu]×½U%뺂kš(˪ª¤B^U]K!˜<Ëʺ®Á‘žee]3Æ$c»C[p=¨RHÕyÝðE¶?JÓrN—Ã0´£G݆²áˆTÙ(š?hŽlõïõÐŒy¥£?³Á ù凮ù(Jûý4ŠÒ©²•n·ulTÓ:Žéy¶ëš :}dû¾åy¶ãŽéûÉacEQmlDàá…6Gqï6eî½^<«ŠBåœ%mŸerßѦfY¹µ5XpSGçÚżüøqÏ#P£Gu¿¶–¸e”eýòË›/¾¸Æy°Ï_¾¼~íZoccç|eÅ_]펼óØçOZ^] ÎÁ}öÙk.<ÿÕ¯>ÿÕ¯>åʆüÁ_wîÜ™‡:ýÐC§^ÿú•E$YV>ñÄ·ü›çÏ_¼|y=ì÷¼ç>úÀ£>púôrç¿ù›O~ò“ç¯\ÙøþïûOÿô£çÎÝ×XÃ+¯lýʯüïÿñ?ž´,ãç~î»üÇYP\þï¬}øÃ¿*¥üô§?òÀ'v³ æ›ß|ùCú•·½íä¯ÿúO#EÙ3ϼüÔS—.\¸táÂ¥^/6 íMoºëìÙ3çÎy÷»_¿¼ìÝ®mkë¡ðòË›ÐKìv; ª‡³„õ÷ß¿r4^½^|õjLñàˆßÚJ ÃD¯—\½º¥z ó³ºÚ]] º] jb½ðSöS§`+ÔØÈE,ö++yy¶ŽX¿݃v¯z¸È,m™ªeot Úmµ ±´ä¢®÷ “eešæ`£ëõbPÂÁ-IçEQõûIYÖa˜‚ÞK™X…a†󼚚s§!ì4¸+ô}ö§çÙY>õ}Ç45×µg˜7Ë45H!`šÚmLsA)6úÎ Ææy™$‰2Q؇’qP°UÕ0›)Z{½Ë‘m0€Å‡Ò·mòè#5C¤h=í¦ ËÒó¼ò};ÏKË‚qZ®ëZQ”–edY¡ëIL.˺ªêªª!'hBp°ÎÁÏùà¶ÎApí ÁÁ•eP°Íu-)¥ëZ TÓ4ÇÑ˲²m²jš0 -ÏK­ªF¼apJ¥`~‡¬ë¡Õ3È¢#o/N|hd˜"E%¨Ã…º5M€@åàpŠ1E8ކ8HçÉ9‡ä¨ï´,|î¶mî±M›5œÅf<£i瘿ìÔ‡;Ó¾t÷ÏtÚÙØììl†¹{j–ÄÆ²y^ Áà@3Æ +cŒ1 !„àEQ7öX{O6~{{gÎÙu³öü¾HoçïÉöiLd3ž8l+gßv ¬%Ý#jJƒ†y^(«FתªÃpÜ¡UE™ªÊ³(ªÁ`ü˜Om Uu¦š¢²!u ß‘©•/û‚iê¨ÈT÷36el2Ã\ú¡¬æ VÓ$¸îxºš«Ãó,|اz6Uɦjºìvì\““XõÆX–Uªý¶áÛÅ”0€ªr®k©žé I®š…µ ÎjKÒh1ªôöö¨ëi˜£÷5I k ÇÕŸ1æº&jÄÕÖúi8›zz:θ¹h¤WÅÊž7nÔ–Róâlj#pÇgѸY欓Íèìm»ÎÆjoAfˆÅÓB°…³¿°…À°¹i!æ§š g[óiÜ3ηثͬ”ròO¦ŠûÿFg¯ýicÙýZó>ÒhÆá&ÿlXìÍ5Þ‡*3Û“3Ï\s£z«óÆj§Œ*OŸ¿ÎÛË¡0ò‡aªö[¢(­*99³Ú‹h,;o

ÁÊŠJ}t‚£ýózöEQ…aÚï'ý~Òë%Pè÷Såÿ$ŠÒ0Ìz½8Š2°Ž6V§¿ïÛÝnlþž7Ôúw»Žï;ð©çÙ¾oû¾¶çÙ VΪªoÜØ¦æ¨9z½xª_žÍµáÏñÎSµ9ŒÄq~åÊبGÞùþµkýË—×Q%#¿çž£`œG¿öêj°ºÚ=q¢{0eÁYV^¸ðü… Ï_¸péÏÿüò`ýðÃ÷Ÿ;wæìÙ3o{ÛIõNm>O?}åüù‹O{MJ¹ºœ;wxêßúÖ“·½s•¦Å•+/¾¸qåÊÆK/m\¹²qåÊÆ‹/®ol c†¡Ý}÷‘“'ž:uôž{Žž:µ|êÔÑ{îY¾5wqàÚ ÂÖV Ù)T‘ýõë!8˜¦~äÈP ¶zUd×]KûÞÑZÜb¿¾5J‘Åþ¦ÒëÅIR$I†ifI’'IÞë%`]‡ÄHI’'I±µÇqž$ù`…aÇù,…w·ÛHÐqr³Ó1ƒÀétLÇ1=Ï‚{Ç1»ÝáD×µ Œu-Ã0[]¸}쪪^/Qæhb }TCî÷“¢¨¢(ƒOaæ9ãÃà¸w]îXáîÉ÷mÃÐàîÕ²Œ ° C÷<Ëq ÓÔ»]Ç0t×5ájiÉQ]–Ä,@=VUCw*Žÿƒ <;€”ll8T"qðfž:*‚båÅ-fpôcA` ÁA6"°º–¦©ëºRÚ¶Q×µiê0Ú¯i¼,k]×ʲ†d¢eYs΋¢¬ëº,kØþ,+˲Îó"ÏË,+áöÛápY‚¶ê$üƒ2æÛvÎçLÓhÇçè×g¹×w±[Àï?뇳‘s?û,9ûŽÙ£?ZÕ8¢¢wˆú€ Âøt k5žL©½êl0ܧzÀQä‡û|/ÂPÒmYÜ ¨|ß‚§KèøÖuÝcu6âcŠ)ŸJà# |2_H¢ «2 ]±˜˜Aµ-«bêCF¬oª]]}ˆ’DLðÀ&/ªVwT‹î˳ET†À{ e“þM×µF)~Çs¢“:0¥Ò¢]5l¢~]}âƒGç¶_­Tu5æá`-ç¾jG…\)PVû³üŪ©¨0Æâ8ï‹ã “1¨G_mc%Ü#XT¤zî¨Õrœ´§ëºpÝqÒ„°É£Œ\Øäs@õùଠ{OB* á¾úÚÛN¸鎠<_¸ß—«Âýós¨3u#÷×ÑŒ½MÖòÉBú%(«I5t}By¯ŠqÕ¼ª©¿ñ4_µ0«jrÌ3¤¬™ãÆàûj×sös´ø¬åwž••‡µ*íÍ0øïKÊŸªjŸíĶ?G‹Ïf_’毓íÖàOWºÅi´u=‘‹¨ý©ÚƪmÖÊc#<7gÍM=ÜÆâŸûÕ©SQö˜Thiñ-eN19çL-~c\,j#ßX§z5i­Sø¾¥ÌyhNŠ~?Å×Ù‹}Ãq?aØWûíOiuz½Æ²3“L°ÉAíOÕeE*ˆFEj|Ú¨0€6šs^ „TŽøj'oŠ5I€zCAAAAAÜ.HLOAAAAAA·5ƒ §†&ªA‰S£§ÆLNõ¼/°øËçâèºÀHÃÐFþt©iÃrUÕšÆu]®® ]×ʲ#9ç Ôœ‹¢¨GsV%<ä䜫›—eÅh:ÛËf#œs”ÎÃö`³ ÁªjüÐÔó{ÿjĶ üb]çx ÁæH)…njUUR2˜­ªêªª4MÁ«ªWXà!dƒAEY¯Caª”Ó÷m×µ\×ò<+Ppº®éºöÒ’ãº6ìüfV㢠•8ÎÃŽHªüŸlm ¥óéªð<Ë÷ °ƒ`ø¿ïÛ0Íò O}d/®FÇh¦½^†Y¥Q”‚˵×K žÀ”^/ÁOÛÉ ÛumPÞ»®µ´ÔZ„µ¦£¿ÛuP GÜ„aúÊ+[#ï|¼óà›FO„®‹»ï>‚ÆùÕÕ`u58}zyu58zÔ;õ¡×‹/\¸táÂ¥óç/>óÌËeY=ê>òÈÀWþ–·Ü7¶ÛÒï'ò'ß~üño>ñÄ·×ÖÂÕÕàýïË£>ðîw¿~yÙÃÙž{níãÿÜïÿþÿYZr~ìÇù‰ŸxäØ1¯±ª^¸ñ‹¿øÇ¿û»v÷ÝG~ög¿ûïý½‡wä=ù¾õ3?ó©sçîûÕ_ýIÕ^q³yöÙküà/Ÿ>}ì3Ÿù™[ù½;em-üú×_|úé+.\ºpáù,+=ÏzÓ›î:wî¾sçΜ;weˆÁ CI=À_}$Û6NZ>}zmõ§N-ßsÏу|ïõb°Õc{¢Šì_yeKi±,}ä¬ï@ ÓíŽ ²¿IÛ ¹|ÀSÈ΂åÍÍa¡qCÛ˜ëa xùoÒö¿¦€Û8Γ¤€þ3(ìabgƒA†I’pÇYqœõûig³Òít:CI=èÔ¡«Óé`Ùìt¬NÇ\Zêt:&L_Zrø]ÆNûtÔmc¦«F>°m?#ÝnXÅ1¿Qãæzþ§KKîa„|ækÖGÔ” £>‹iØØaæ†bu>OÔ²tÓÔ¤dXž†Àc!„\–sÎ˲bl˜ÚµªdYVeYWU]UuYVy^Bž†m]üû«¼‡yf5ûpŽ jߨ‡l|LÑ‹£N´à8濎)Rr4M£NÍt»⣪oiÉaЬÍ0hd-kèf…¼LÑÈú¾­iElø¼Àól]á€)vWT¾ÞìË%î´lC]e“®|”ôµ]ùª&]ù¸çWþX Þvåã—îôä¢ð÷¹ëšPÀœ+h¾S“€†}v¨zGݦtáyžÝ¸iRÏq¬oªS• «YºQA¨Š×1E·º^fŒ©ÉTP ¬fæFuþÚ*‚ûaÕUe…(¸W…®‹‚û±g“ú8 ͢πó±¨ahÊÓ·æn?˜ÌÒïî!þ"+ÙÅzöKL¬Êˆg=úœå Þé#Ô©ëYd%‡H«JÜÌ‚ïôü³¶9ôEZƒÆÚ4¹‹4 lç-ܵ-(:Ÿc9ßc¢Ã…Úa`Œ ¹z9P»ÊjŸµTøQ”V•š"büX3ËÆ©}ذ9®Õªô¹,+x°Ž_¡ÖÕÞ°67²Pìj\ÍÄZ~ä °±Î4dÍjºÖJ/aÛ˜^blUnø»Ýq…ìtÆ !Tï³ÚAâ\,žØ•Ø–Fê”9 ûª’“sΩfíjˆÑ Oý|‹ý>¦‚h¤shTÎF^ŸF® ý˲V›ú Ž-Èâ {¼‡––Ôf_S3´©­w#oP#—Þ3Æ8çêœ+‚z?ÛÈ @/ŽAAAAq!1=AAAAAAñšC ÏC¡€êà | ªƒ‚Ô9ÑòPUã(;´ ¨‘(zPŠâ8씵² À ¥4 Í0„”LJišèK„àB0ø¥ ;ù;c 6U×Ež—R2稪$‚æfE:ñ²Ü}T çŒ1 ÝÏÇ•Bp M±Ë蹦 ]פ”Œq]ªðqNMÇP ÁË<Ãà–º®¡J0ÆÊrlis1ìÉ<¯¤¬aAð3&¥äeYí‡ÕÃv¢µ_J†›ŠÛ¶kÐðÎ9³m<8œs¿áœ›¦eBp5¶'ØÕB,Û¶ŽQ=j´FìÆ8XHUkDcHO#¸ˆ ˆ;ð©GuÇ×u ‘º(?‚¸÷¢¨ƒœÂq!B2ã8+Š£Ù{½DÊÄFêºp]›1æû–¦ PJ¡Ã¨Ó1 56M£ª¤aˆº–Bp0…AžÎY’u]×µ r0àƒÎ> “<¯²¬˜å‚û¾ƒ^x”‚-.”ÇO÷çØÜ€E«×cÇùÖV …†küòqœ…áPx­š¨$A`;Ž âxÅw:fŒ=Ý®…Cä”o–yÐ…£eüûࢠ¦ãlís àŽåû6äÁ¶çY ˜Wuá®k©éD)åÚZ5š 9gu èá¶¶âF³#?~ÜǦf¾‚v HðÃ0 ÃmøhÇmahPI@k¨ð]×êvøêÉ;^;ôz1êæQ@ÿâ‹ëW¯ö°Âw:æÉ“GÁ½ºÚï<è©Rù•W¶¾ô¥gŸzêÒ… —ž{n­ªêS§–{ì³gÏœ;wßéÓË‹¯ª®å×¾véñÇŸ9þâ7¿ù²ü]ïºÿ±ÇxôÑÞúÖ“èž{níññßÿý?¿÷Þcýèûþîß}¨vâÊ•_üÅÇÿçÿ|êî»|ìcß÷C?ôN¼=_ßû½?ÿØÇ~óïü‡þËù‘.»w¾óµþá_>uêèg>ó3‡BqR–õ3ϼ|áÂ¥§Ÿ¾òä“ϽôÒ¦¦‰ûï_yûÛOž;wßÙ³gx`õ` ¹Š¢zå•­_\¿|yýòåu(¼ð èÌ›¦þº×uÁYúô2î½÷øÁoÞ‹¢Ú؈n܈ÖÖÂ7ÂõõÁõëý7¢õõhmmXP5aGºÇŽùËËîñãÁ±cÞò²wü¸ü¸¿¼ì;æ?îßšñ(ʶ¶bìB´DöÃ~ÅæfÜPsΡ·päHgi©Óív  –»]giÉ=r¤s¸:À‡5Òh Yç½^<äp9~0½”§Úß@>»´ä€­^‘×Cyxƒ3š>¼ÙŸ;õ(÷zqžW°‡ó¼ê÷PfYžWa˜@Ÿ<ŠÒ<¯¢(…A ¸- ²$ɳ¬RENmºÝŽeiŽcv:–eé¾oÃ8€çÙ¦©yü©û¾cššëZ`þív¯Û4uA½e ð äèaï÷S)%ÕÁ/ƒQU5Š-õëý~R×$×è ƒ'GêS§m±m]Ó4!¸mu--K—’iš€G º.àQç¬(*!%‹¢’RfüŸoûœLs tïv; ÿ†º O à$'ƒÑ˜¨i"l~9ŽiYÚ>:©q±(jEˆß”Ú+Bü±Ô DŽ£LùÁYŒ9)wêaGµw§cBö\ØŸhQGû*øø £!St«®këº@Ù%:ôÑq w7¦9T°Ýöf¹{ÁtÚ‹,¸ÈR»Ö䡇w¾êÁ‡B[¥ó´—Úé‚p¬w·“w±Ÿ§îê©{{êâêW«.Î]0gϳiûMÛS_\ƒ® Ž‹ÝX}ó!Ë*¥ØüÊŒ÷Ål˜¸b!-þü“ë¬Ô9aX Êû›‹B}Àçyc¥øä9"0ÉVC5îy6¾2Ú阆ï.ÎTá7N«É³rüΪò¬õwl#ßï§ðÞ,ÛNa¯æ5QßÍfÊûÕ€ú0_S朸^`³ëæ·Þ û#ÿÊþ&ø<Ï‚7rÙv {ß· “"»}y Ô>‰¦i97AAAAAû ‰é ‚ ‚ ‚ ‚ ‚ ‚ ˆ}í»ˆ~g3"Øç/®NŸ?ŸÏR¾.çb¥”†1”›kš¦i¢®k)¥BÓDUÕ ‰¨ª4åBp0™sɘäœÕµ„ ð¼s.ãUUÁS»º–ûa0ßLSã\€GÞ0„® iÿ;”AbÎüLé8c\^Uµiê ÈÈóR×5Øuy^i×uQ%D³ëºV„”€ ʜ󪪊¢fLÖ5«ªª,+)ç¼(ªQˆ,Ë £Üw çŒs®<8ÝëCÔ‘"¢Ð¹aè ¢ëºeéœ3]× CÓusfšºijàaše`$1Mö ÓÔl[·,Ö9+¨u¾CÍ08A,\ÜáÂÚ¸(ÃåËêEþlÏ6Z¶ͶèeLLÖ¬a¢?™†zç¬*™e¥”²(*)k)Y¯KÉʲsèÈó¼ì÷4ÊeYÇÙ`åy9'ªLh…s]Ó4õ §³ŽeéŽéº6x¸P'±ßžg™¦~(D¨·ˆMÓ´˜Pµ&ÛØ¸a0iΪf# ÷„’Õÿ³¦vé?ÈRÑ. Õ{G*sƘiêGŽtârì‹ÍüµLUÕp8Àá¾µ÷ûI¿Ÿ†a ù`ú(7@Òn‹ =ñ}'ì p‚Àév(N´}ßévß·omz½8 ³0LÂ0…´˜¨ ŠÒ0Ìú}(¤a˜nm%Sed —‡ï…°yžgù¾íû°Il-̬Z¯M ÃÈ;ßGïüÚZ_µÏ{žu×]G@7ú••àĉàÚçôzñ—¿üÜ—¿ü'Ÿ|î¯þêÕªªï¾ûÈ»Þuÿ¹sg~ø¾7¼agòñ«W{ŸûÜ3çÏ_üÒ—žÝØœðË'NŸýìϺÊsíZïÂ…Kà©ÿ‹¿x±(ª•ÿï8žúsçî;ø*d›UýÕ«ýµµþåËëÏ>{ ìŠÝnUõ˜aâ oXEuà¡`k+CýõëáõëýõõÁáÚZ¸¾>ô׫ÒÇ1AU옷²?î//{««Á±cÞ±cþêjpë=Ô¨­‡Bû(ì·¶n$xÌ—–:ГÄrKdß!ãÉ-ftë4ë–jg·ZpGŒ·˜e­qËО~ô¨÷1xÂTOðÖ wï¶ŸÎ1ÿª‡`~®;<\wGޏíÜ3ÄmgÎàÛhâ¬ñ·)zêŸêj—pa>`MãBpÆ8<'â|˜ù¸®eUUh¦›J§cêºæ8†eé–e8Ž¡ëúÒRÇ4E8®;Ìÿgššï•÷Žé8ŒžišèvƒÚv–K}[‘z[>õHµçß©¹u–ò{–0}–f}[Áú.ìê7›@ÏÚç¬uXw¾Ô.ŸVïQ‘¿ëq©]ûµg<µß“õ~/¯ìñ…ö`{¶ÞÏ9"l»£y‡yÏçn6㈷§o«ÌÞËzö.©œ*ÈÞßGÿóë›QïlA*qèÀWÎcRNHfƒ±v\5’WÕ„¬\uݪÊÚIuø„”6Š2¼·R‡ªšêªÙ5Ôìû+YVÍȪò[6¾»…’YÓk”3íêVžœÙ‚7”˜"\Æ IlRÐ|‡]€njµ‰¢qrõrƒIËcu=Q9ÕúEYUU¸8^¡ÔØp‘÷zãoWS˨%±Q} IDATß®ž õÿQ½É³á YõU­ó,«¾Z«Õë Ü9BY­À®;VíÓ¥ðv9ÿ5¡‘Ú€«m~YÖJŽåEΑº–KÆä7WÓ>ajºÑ7N$mÝ Žcbå„\•P^P…¯öñTá«§ ­(ß8QQO^HLÈã|â }-ÐRØ€±ÉnI£^©} 6™Á«•[¢l͹‹Ü·!„ï[J½×dµUo¸õgçJ×dupsÖ0éã7BL(«yÅ4m¢&ºÇ»AAAAq{!1=AAAAAAÄ!c*’d.‹qzêëék”çe’ _RÇð'5Ê_pWŸÂp8±,«Á 9gYŽƒñv*Ah ëš‚1ɽ>.9çí %‚K)¥d EgLÂOîÔðði]KðƒË1»ÞÀEàªdÌìà=Ê´õðcLeM¸¸”C¯‡\Jƹ4MMFÃЄàeY3& C/в(jMšÆó¼Êó’1&e]–užWŒI)9øß뺂åyU•”’1žçå^Ž"b¸ñð“¡€;\=F›±kLS‡ÎY§cÂ~B@|çܲ†ÑhBp×µ B~äˆÛŽ¥TƒÔP4ŒÕÑu •XàÝ€2ð¨=jðAÄ- Óº®¡3=Œ|ƒXJˆ¢„øÉª$¥„ dcÃ{§ ôªd’äpY™Ü÷6Šo‡ˆwÆx3ˆ4ƒ3hx!® #Ê – â!±•†@e5œ ¶-IŠ$ÉÑ¿µC¡ßO’dXˆã„òƒA–$Ega˜¦i1+ú"6Ñ [²´Ôê+ÏÖP4oÛ†ïÛ–¥ƒ' ¼ó{>¤w,eY¯¯‡`Ù¶¢ãôiÒùéÆCÌX°Sã!nýØwöÅ2‚þE,ówÌ®»Å€J¾×‹77cxNº\“Ñĸ-š÷}[Ê;#­üX:z°Ìw»Î¶I8Û9°Ú´&N©6š&ŽóPgÙ®$˜Ôj± UU¿ôÒæµk½‘w¾Þùµµþ«¯ö°7ν÷CõÊJpâDüÔwdKÓâ©§.?ñOÿôÙ¿üË—ªª~ÃV~ø¾‡¾ï]ïºÿî»ìhmEQ=ùäsO±²|ö³?»´tXåqœã/=õÔ¥ .}ík/lnt]¼ùÍwŸ={æío?ùîw¿~§Uèö¢ ë±påÊ 7©Âz,ÜsÏÑ]dG8dY¹¾]»Ö¿q#ÜØ\½Ú»q#ºq#\[믯®_778³mÇû++Áò²·²ö++ÁíMy…fsµk S Ç>RãÆsj:)++ÁŽ2sûØ£¢( ²8ÎÃ0UÊÓÃ0ãnÉ¡¬štHí¶ëZ®ku:&h©=Ïò<Ûó,H\S\×å1²^› uÈ¥‡÷zý~’eäÒ·xçY6L¶—ee¯—äy Gd”oæÓ¸×ÆQp]Á½¤Ó³,£=<Ãpüäïb_Ȳ2MsÔ€B=Á'†[[1c,IŠÀ|Á=›‘·`4½™º`ùw,øÆ„S éÛ îgù»géÔU-ÚÁ †½ÞP0ŠÚч; [f8ËØÄΞ8¨–ó,+Õ—R°’jÐÛÚÂ0™Ÿ(b*8,oÃ'°8n¯i œs|BŠ´‚Ê=†¸>xEu~úF÷ñPªûmªBžÈèûƒSŒMZ’ñщúVF õåêkøVF–_ÕØ‹ÔÕ“Bð öö}߆'õhœ4ÍálœOŸ Z9|®­ºÿPü‡kÃ/UŸ‰¿vD®³„õxp‹¢Æšý4Ƙ” +žj8E7±ªVýø¨IU+’ÚyÃS[]íîPO4tªzS×5á­ U¬ºP±RiÇÛOuµ¨¡4Œ±k²ÓUÏ©ê¿~íÔ.âN¢!Yà å=6#eY«YÕ>ËŒ¬ªðñš®^€²lbf\ 6Sª[yïMS®õ깯fËÀÖƒ1ÖíâÌo3ãx2®Y×6ªj¦hgu}úš‰]³S«þœ,ª1_pe»²ê«ï®¨ï»bomÍ9Ö®±Fkšã ¯j—Õº­^FÕKÛdŽ™ñ›‡ŽcbY­Þê¥Ð÷mMã£th,ô ±H’$6Ùß[$OÒœµ-²ª9¶Çw¼‘©¹—Øé—ؘöq=ä(otQp\‚MV5DQŒ•÷ê} ½£eµUŸLê°ã\)E1¾÷i$Ø#³œ¨*|µygŒƒU¾ZÇÔ¾›¬fž7áîÇF~2#Ë„»_½èP* ‚ ‚ ‚ ‚ âÖCbz‚ ‚ ‚ ‚ ‚ ‚ ˆ€Â?†/l£FÚ`˜Í`‰_ñ/Ëá«Ûê{ÛbŠqbðºv]KŒL“’©¯‰ïMš¦)æw¼sMu-¥”šÆ¥šÄQ)Žï‘3&ëz8q¤x—RªÚwÎLÜÝNA‰¥áð~8ºÝᘢiC+:çÌ4uXˆsn:ç’1&„Ð4ðÃÑu®ëZYVŒqËÒ…àj‡ˆ ,+8–¥sÎ’¤€]'ƒˆbØoQ”Õµ‚I)ã8ƒ_]UŸÊ²Ú©a*jÌ-ØùamMó‚[ÖðyÓÔ H˜sfš†ijløJ=A™RÒé˜Jl°åŇlBƒAj@²pÍ€Vü&ªA^J9äEQAÜ,^úAù„ù,+ kñ@,@X–æ8&†6¡&Þ04hu]¸®ÍFî ×µu]@L,Ø"Tƒ¼ÂqLËÒv‘íða˜¦iž$…"ÔŽÛZù8Î’¤ ²(ÊÒ´PcõPWضá8ÀcÕ² ?vi©3«uà¢C¼;%Žó(Ê¢( ôßOÀ08 Uƒ0%ŠÒ(Ê`z¿ŸÆq6µkáÙÝ®Ó阎 †A({žíû6”AAån·ƒ3ßúß~óÈórk+‰¢áÜÚŠaª;¹ßOûýþì÷“v̰çY¾ïø>¸Ëmß;Í=Ï^Zr|ß9¤ÎÖÛK–• •Ë*ç±Ó·¶À¾cl-ù¥¥ü¿ê‘#ÃòÒ’³´äú¾½´ä,Ò4UUÝï'ý~ÚëÅP~&½œ‰Y¿å´ßO¦æ'θn× Çó,Ðß{žíûHða¨ß ËÊ ž≋çÏ_üæ7_®kù¶·|ôÑ{ì‡:½ Çë³Ï^ûã?þÆO\ü³?{!I \ÛÙ³gæïÏ_\ÿ…_ø_¿÷{~úôòÇ>ö}?øƒßÕ6‚õûé'>ñùÿþߟX] þþßïþè»v*/¥ü×ÿúwã7¾üïÿý>ü῱‹5ì;W®l|àŸèvßú­päˆ{»7g¸|yýÂ…çÁSÿì³×¤”««Á¹s÷§þ¡‡NFÍAž—¯¾ÚSUõ—/¯¿ðÂu0r†v×]Kªª w†…$M‹k×ú×®õz½ ¨z_[ë¿òÊ–ÚKìv;««A·ëœ8Ñ]Y ––hT»]guµ{×]KáèÏQØ7¦\¿6´ªøç+ì——}5¥(qlfqœ 9ÜW‚È~TΡÜï'ƒA>@Ÿ6*Õ5 Íóà6Ç…}§cÁMÐÈkoyžÝí: ¼Çþ- ¨´ÞÚjîÕ´gh»nd’ƒ$™ ÒÆ-¢Ú¨!©¦Žƒ)KKªÀ§Žä9â@Á4±L•ªƒI Ýjø'ÎY–ug˜„²ª$ºÔó¼Ì²²(J)eQÔEQ—e¹ 7"5MÁu]Óui5!%§® ËÒaŒÑ÷Ç%º­ëšGzÿ2ì#G\ϳ¦3}Gà 4Š ã8/Š’±á8ÊËЮCߘé½c`ý®ëá Ñ€£è8¨® +Í騥#ZÆ,k(@w]K×:‘ñÑ$\# Y)ºu]s]צiÂ÷-v}a¨ƒ‡L9‚ªŽæ¼Ç£€Ç…ÚøŒƒže0å x¹¢®‡Ò|Uý8ì–²Ø2EÓ‰ÂkÈ(†v¬†1ÛIû3k3æÜu.ÈŽìÉ;RïÈ›<«3öò D­‡ª1ûHLIJÄ”.SzJLQ󫩉ÔWtTí²jpV}ýª¦sM±IÃþ^Àžš:Hí_© Ô 1j/«aÌÇDÕ»WÕËìyãêêySŒùjß츾#iÄ[Y%†gZó'Ï‚t´ì8×Þ*2åÅx6yF¨iTTúäi›gٰǸ_}uS1©gÊNsN˜æø ÂklöUo9Ùä‚ëŽsQÐ…`AnRuUíö’R³î‘m{2;JÞ°¿oø3º'‚ ‚ ‚ ‚8ü˜ž ‚ ‚ ‚ ‚ ‚ ˆ ¾°‹¡Ñøž.†Fã ëjØ3¾"EÄ&¥i‘$yYVEQ%IQUuYߌ‡¥”u-“$‡õgY5Š®ñeâ¢i‚1Θ„(D)%ç‚s·KÆÀ?~^vøÝî­ÝÃ9×ux]œ3Æ8„âÃG£(JnšÃ²6´¼s´’ Áu]Ôu­iÂ0t)YYV 7—².ËZÓ„” ¹çº.ªª*ËZ.Ïs˜gY‘e%çœóñûÙRÊ,‡ì!¸aèXƨðò³¡L÷²,%ˆï«ª’RrÎ¥d£8^UÕ^^ïtL!çÜ0„ã°“]×Ò4Á9·¬±Þ7†ñ«è>`J¤„úb7NTßÇðl0¹@õÕ$]×H+IÄk ŒEµVCx¤ÚŽv>[¾HV£4"–¡‡ødtx5fc£Æ¿=ÛÍÛý~’$y’ý~EY’qœõûI’I’÷ûé`&IÇy¯sæ`Fž¥•ïtLË2‚À†‚ïÛŽcÚ¶ð&;ŽiÛÂeéÝ®cÛ&^éˆ]°#Å|e½^25vÎqLðýÌÚ÷-ß·]׆‚ç ýò ìtLÇ1—–œC'oÚ)qœƒIÅšýþ„aSޏXæÁŽBùn·£(æ‡Á'N”]#¥\[ë/âB £º¬®‹åe¯-?:eÛö9IrðËCðË£Y~dœOÃæIÚíj§cú¾Óí:XIÔÌP—àœ~gŸ†Ä-&Žó+W6PŽ|ùòúµkýk×ú—/¯c¶?M'OYY Nœè޼óð¯ûº×u_›–Š^¸ñÅ/~ûOþ䯾ò•ïôûé‰Ý¿ù7ßðÈ#oxä‘7œþñÏÿÚ¯=ñº×-}ìcïÿ¡zg[IEÙ/ýÒãŸúÔŸ./{ÿê_ýß?ðïØõ¨,ë~ô3ôGßøä'ê½ï}ãîVr3xé¥Í|à¾oÿÖoýƒ£Gï7=†é_üÅ‹.<ÿôÓ/}õ«Ïõû©ëZo~ó]çÎÝwîÜ™³gÏà˜Ò!¥×‹QU90.^¼ c¼–¥C㣠ëï¿å›c®ïõ’W^ÙDM íh–¬¹^-öø‹¦vÛ0ë Úë©4¸ÁŸ$Â>à  pÐÑ“5ýéPÒ´Ä~ˆŠbB7°V 0« ªÒ!‰ A4ŸÚÖVZ«~?Íó2 ¤iE)˜àð¸ôûIž—“ ÏË0ÌæÙ„ààû†CÏJ‚ÀA÷·eé8Žäûv§cÙ¶áû–ëZ¶mxžE^'oQµƒZP¥”W¯öªJnnÒ´Ó}UÉ”2 ³¢(³¬„Å!Éhž—ðˆ¹ªªºfàOW2|oç žd÷BÓ4M¦©æÞ4 Ý›¦áû–ah¾oÛ¶áºܼ¯¬Bp…3Ü WÃç€w˜~k+aŠêßèõ)eUM1àW•D%ºjÀ/ËSÈãü°~UÕ·-ÐX1ÅäN.äïvÎ9ú!ó+:Óa€TÓ8ÊNÇ2M ÓÄ¢}±ª½»hËgÛîÚ¶úvê³›-Âv¥¸E\ÛEÛVÙ¶´‹/Õ^äv¢Ï9@l±>uÙö‚S—U\è¹ÛTÚG-vàØbÇnê²S}¤êƒdÞPÆÀTïê'EM0¶êlRãÛë `¨ùK É7›Ô§6V WíªªÃp¸Ú½T0Àó,MÓcB Óc0¥õfŒ­¸z‡3¨’_¬ªçû±ª,UµLú¾ Ãqê ?VœÑ[@ÄËAèï‹Cyþ•‹íA»wwíÿXÿ¶³ˆpy~?j§+ÙÅz¦¦Ü{×+ï½’“[ùÐL‰`“Öï~?U­úS ûØóTƒÍÊ9Q–Õ¤mØçTûŸY6ÌÆƒW ÷þcaÄÊA`ããWÕ°/~cî=¦äŠÐuáºã>§ijlÒůž#0^Á&SVàà¦åc”jbW¨·0˜޵òöaz?ÆØ`0îN`í-Ëz0Î?5yŽn±Ét)8hÆ”»!µþïhøkSs“¨-­çY8\‰Ï Õì)êÝ“ïk²ZiÕú ãf8ó(¤e|«eY〠ê½AAAA,‰é ‚ ‚ ‚ ‚ ‚ ‚˜BU íÛÆˆªöû±”ðv5Dé—y^HÉ¢(…×dÓtøkž—YVIYçyU–Už—y^1ÆŠ¢Üiô/cŒs.„`LrÎàÝV)%8ÖAû.%cLrÎ÷KûÞvXíîÖ`šc×¹ÁÌ®idåº.t]«k)w£ª¤”Ò² ]eYiš°,ú†¡iš(K /ì Á¥¬aÀo‡SUYVŒqMpX…EÂ…šsÇyQÔ°¯ð­ú]ï|ßõ vÇC8ðþ|UIˆW©ªªªv€4MÀKö¶­ƒ†sŽï+Û¶ï%/WÌ-Þvq‚ bÄq^%XEÀ2ƒIh „ üÐKX¯ªF…Adh â8/Š ÀŠ¢ r)k °™DUAÛnZ§c†sQ^Aàp>Œ ƒh.¸ô€È04׵Р³À0Æ™Hn=»6Ë'IŽQR*Aà€sLÇŽc:޶çYŽ.òNa¦m )‡)·~Ü‘äy¹¹9@#ôÕUEcCÌ×–k†¡=ê‚€º= §öHæ8œx r!4ÀŽ;¶ßOF»½)šßÚŠg©0ƒÀAÑ!ìL0ÁØ2¯F–»&ËÊÍÍÁææ`c#†šÿàHmnË[[1jBp8XKK`¨ì92Ö˜Â?,O= †9M‹ù¾{Å¡Ù<+9ç++~C”9Õzâ³EÄ÷±/„azéÒu0Î_»Öï<ü‰ÖW]wß}däï‚ð÷ôéåÕÕàèQ€cƒAö¥/=ûÅ/þÕ¿øí^¸Îc=ðè£<òÈî»ïø.VøòË›Ÿÿü·>ÿùg¾üåï Ùƒžøîï~ã{ßûƇ¾A…n–•Ÿüäùüsš&þé?ý[þðßh©²¬?ûÙ¯þçÿüGeYý‹ñýúй½Í¢¨>úÑÏ|á ßúßøÈ»Þuÿ®×s“xùåÍþá_6 íw~ç.âô?ŒTUýï¬=õÔ%ðÔ_¼x•1vúôòÙ³gλïìÙ3<°zÇtHTa=®\Ù€‘Én·£ªê¡pòä‘;Uíº;sýÒRS‰ds=¢šÊguÆàW7ºasö)Ç”ê°0ß\?UsßNo¨5¤qã*0¦çû–m޶mŽcÁððÁ³mc”²'÷$¯!\N››q¥ë먥ƒA†I¥iZôûÃêçeç`½OÓ¢(ê,+«ªÎó¢,몒E1ÇË|B­ëÂ4 Ó–epÎMSïtLÈíºØíÛ ìS¨ÞÁü©Ì7¡7œ§³\Þs^´€Oaæ©9AgÑP—6mo«;W7=ŸzÄÙ›ö`q9þ\súnäøý~²Ó×WöEŽ¿;ŸþÉõ²ÈÎg‹íÿ©ËÎWã²{QÏ9ˆl±ƒ2uÙö‚S—ÅI+9ŸùÉØvõmGkØ‘özI5Tv]ýØ´Z´ÓT ê²wê5…x£fà€ mPÆÞ*Íó‰™çKcU ²:s¿?T„K9}æ8Îá¥\¶>q¸¹†2šŽ™âPVi¨®d5>þÖ´ñÌØÍ€×l`"Škqq5åÊš_k/*Üv¢(«*¬T™âöl˲V„Èãì/¨]VõÊꙂk(ŠJ©ðSÖ0y®åYV5Ö°k°~†P“¾`¯ ÞcŒÁË`0qj Ç=‡S·;<­Ô<|j&㙢úÊ'7À¡‡5{A­ŸXßT‡¾šôë ôÕîÍ®¹Åý VHµ{ƒÛ Úóéå@‚ ‚ ‚ ‚ n;$¦'‚ ‚ ‚ ‚ ‚ ˆ„¬C9 “­­„1Öï'a˜1ÆÒ4‡ˆ‘$)êºÎórk+aLBx DªçyQ–Uš–#üð}Í¢¨Š¢ªëº(ª²¬ëZ–e%%ƒ)Œ1)YYÖ°¶=¢l çLO*„à (i¹"—gœóQÁËÖRÊÅ#±ÛÖ¥dš&LS7:¹¤d–¥ ÁáS]‡7;¹¦ ˜o…–e/LÃÀ ²BðªªÁù^U5¼+ϲ2Ï+øY6ïÙšÆ!,A8R2!˜¦ pîƒÿ}äyu]W•‚sΫª®ëvl3ç¼,wcÿG CÉß |)v¿ìí»Xœ‚‹‚ n=C2G¿¢ºWv4ÛIìD½îÈ•3k¶YJŽƒ çôzÉ` YeQ”ªfù8Îâ8_Ü,Z¢n×ét¬NÇèt¬nwèšwÝ¡k¾Ó1}ß¡<¸æ]×rÃoˆý‚ó·)åÚZ¿¡ª„viš¿²¹«Õ<_XIÆð}g0È67ãhcc°¹£} ëëLl4zžg)ºyÍòPPÔó.†Å"eY¯¯‡3œòÛ×6­Â §’ê qã<ü»|yþ|ñÅuÕÞÛé˜'OEI1xçA@é„JQTO>ùÜO\<þâ7¾ñ’®k?|ßc=ð¾÷½åÁOìb…eYík—>ÿùo}á Ï|ë[¯ú¾ýØc~Ï÷¼ñ½ï}ãë^·´£UýÁüŸûoÿß7Â|ä=ÿè½¯Ý 2ÆžxâÛ?ÿóðì³×~ìÇÞýOþÉ÷-/{»Øf$ÏË|äSO>ùܧ?ý‘sçîÛ˪n¯¼²õ|B×ÅïüÎÏ­®vo÷æÜt®]ë?ýô• .]¸ðü׿~%ÏË °ßñŽSçÎ =õwÞµ)ÏËW_í©ªúË—×_xá:È C»ë®%TÕ¯¬'NtOZ>uêèï˜o®õÕ-U}xÍõÈ" {˜rãFÔxBŽrøí³îÈK~)Š*ŠÒ~?¢4в(ʃr•Fc†2Qã3ifS5X¦©{žåû6 ­xžåy¶ïÛœ Ê01ì p`N²…îlÜÚÞÝ«C+êý>Ž®à]š–s|Ðp²cîiQoëp° ˜EìÈ—Ž&±;°rb݆´ˆqœ­¯Ç0PEi–U››øû¢(˲²(ª¢(‹¢ŒãbγuÈ-iàëºfŒ×u½H°!$gµ,ÍqL]×À) Š=ϳt]sÃ4uЊ¡tîAóf|p3išð<›1¶´ä°㿾½ÌWá¦Ï´Û/¢ÂÇ•ïH±=_…϶³Û/¢ÂÇ•ßñúE´­¡ñ ô‚˜¤¹ª†8ô{¢‹ ²53åh¢Ç õpÝ™)6Cø"ȳӭEÿšãð²  t·¡v •pÖ 1T ! 5€ãΆB®ëCí&®ZƒÛ›ãyªnÞébŠóm}eYGÑp6Tõálpj3öÿ³÷æA’]Õ÷}{f¾Ì—™µvK­î–Xd-’eµÙ1F–Ác °˜ðöáf†Á36`"f <—aæ›Ï! HØck5`a1#h 6I€,$u«¥®-+3ß¾ßïóÞ©[Õ@{ IDAT¹UVõRÕUç¯^ÞÌʪ¼ï¾ûî;çwVÝf‚q?G|µ,ÛôjÐlÇŠ|Y–‡n_´¦š¦®ª <’¦iÀÈŒºI|JôP´ ?¬ÛŸ»¢È†ÁS” ¿$±-DÉ©m‡Ú'ö ¨×Îçµ(D›0v?Q4iÛ!ŒhNÓÌóŠ;,è?õ¼(Ir¶9¾q»`gÓõBÝ(úqTÁÈ1Ñv]½Ø8V`¯cŒÕëÅtÏ28ß`B¦" Ä$ϹãÃBex ‹:Zp6Â6ëÃp$)›G@‹g:qìrœÂÂ|!‹xj3ÍB^,Êôq~W"lóØ‚'8ÅŠãÚE™8¾ N“ðLÇè¢fWÍõbyÁ}Ÿon0É}/¾ž E{¾ØÃqÊ7®D¾ÂŽÁÛ¯xecÜ÷#»z½n(Š2ðt<·â,]–ÅþohØÆÅŠŠCìð¸ˆã^×,YÆÅy&,âôVÊ—*Niº!ÇËRñ„"ZÈñ À‹\¶ÍŠ}È}µ^/.dðª„1kV°þqÑ.HöG”ˆ)±0˜P»¢˜âµ0#oþÅcËIÈ•+ÐÇ57V®Š0aš!^ì`Çwâ¥Øñð¡(^ ᕾ,‹SÖDq?Íg‚ ‚ ‚ â€@bz‚ ‚ ‚ ‚ ‚ â@EiÆlsø ˜¬…)¸e›Mû³,ã4Š×-d'Œ¢$Ïy’dqœ…aœ¦y’¤A@g&išeÏsž¦yš¦yΓ’$Ísñ<çyžÃR=n\cL’Š/H$g¥ž1Θ¤(’$Iœm¥PÃ+ŠÄC¡9¼CIbÚ›$)çc C*§GÓx}MSá-iš"IRžç™çÂц/IcƳ$i#œ”bL ‚ È‚9 ngYîºd¥i)èe›°Ü“;N¹ YÆ!•’åÄœ¢-“8DTU1MN@’$A.ää@ædÙ²}TU©× <»A~]£QQiI¢(õ¼ÈqBÇ ]7ô¼Øó"Û'ôýÂ8öyhiÛ¡çE#'–U©VjU³¬j½nˆúxÜ®ÕôZÍZ­¦W«ºeUèü~é Åü®eùÚš3Srä?µ’äšß-z=_T̃_~}Ý[_÷Dû¼8*ŠÜn×Úm³Ý6acf¦øÂ=í¶ÙjÕ†»$Él;§›m=Ķè-ðã„¶Øv`ÛáðU’–U}d³Y-wV›Í*l`¸p#ˆ=ç(½ó6zçÁ;Œ#d£Q9|¸ºyÐ/,X‡YdŸŸÛ¿ò•ï~ñ‹ÝÿwWWC‡š¯zÕõ¯~õ¼â/l·Í¼à³Ïv?÷¹oŸ:õèC=Eéÿðñ×¾ö¦W¼â…7ß|d9íO>¹úþ÷ÿÙßþí÷ÞøÆ[û·ßxõÕíá6O=µúïþÝ_ž:õèë_ÿ¢÷¿ÿõÇÏíàm‹¤iþîwÿÉý÷÷Oþä—^üâç]à«]RΟï½ùÍ“eé3Ÿ9nz$I²ï|ç¹Ó§Ÿzè¡§|ð‰µ5WUåë®[8qâÚ;î¸öÅ/~Þ5×Ììö{¼„ôû¾¨ª‡AòñÇ—`2vÖÃÆu×-³^–åŽ×é8ËËöÚš»¶æ./÷;wuÕYY±;wmÍÅÕ~MSfgëóó……ÆÜ\c~¾1?ߘ›k,,XssõùùÆÌÌNFÂݪÄõz~·ëÃ5lÃF¿¿±® @×ÕrjZkµj­–Ùn×ffŠÉj«U|Ÿ™1÷ÁrK:¾+9A©°»e-[3€‚Ï %Œp«ÍÚ ;F“i$Q”¢âµ_ý~À9G)Ü]J’BmŒ’¯i€Â¬”¢Z„ŪZø…ÁŠ*RЦ£H>zô*‚T%qÍfU’®•?M¸3È ª61€ £ªÐçy…ÿÏ}(±íõ|&¨ÜЇ¿(âmÒ@ìŠ$žMìÐðóÅ#Üšè‚1Ü”D¥,Jfa íœWâ-H<á®.ìDË$ÊÊ£¨h†õš5}÷0°B\lÀµÞ@Á¶#Ñ*×øÏö^H4î¡)?Pô’ JýÂ;‰Ròz½k¢@_,œ@\\jŸ°1ñ™ÃcË@³çŽ ìWpš9N€ëÛB Õ˜0aœaBç®°2ù¹¢Àt\uxû-A4Ä::xzMÇ8ëÀ1ó -,Öá=ËxžB«,P•O)äøÅù†ÁvÇ•`˜0oaB0ž¹TUM÷¥é[Êr ÛöÕÍ>qÆ6)È7¢‡mûµµ³?„¸¸lÓ} ïî{œ™³Q]]‚£%\|:NçÂ0°4 b-¬e%ªÀ±ðŒ®¨Qñ›cÝ ¡ÈÄF·8RÊHÀü*!í?FNù&O5ÙÔ³M¶Õ„sÜØÖ*Ç•ÿÊc§ŽâDtxê¸Ýù*Í9/Ó÷½é;Þ”Jãž¾ãk%`ʮ˦î½#Ÿ>ù¢I|z¥¢S$AAAA\ $¦'‚ ‚ ‚ ‚ ‚ .(geÂ*c d¦°óÜ8ç马LIeB."r9gÝ® vžsYf’$eY6ù,˲,ϲ<Ï™$±4Ͷ·*IL×5x'ª*å9WYQdp©+Š ƒ²,ƒ""JÓ4ƒÈÒ4…Ô Æ‹¢äo(˜¦Á˜ÄW¹RQ¡ohšŠþw]Wà÷f‡ìÁ4Me¹ÁsÎ5MIÓw`'üóÅðJÊ~$‚8hÀ„2ÍprÌâxc[h%I¡•÷¼ÒÕ’¤PÏ{^”$ùô‰‘p2‚$|ÈK´¬Š$IFEQdH×ÇCÒ×¾ÇOƒh%ã(úe$-—ei~¾1RA5ìGe©±/'iš—~êÕÞjØpœ°× FÊÈ* Íq–Um4Œz~4Ê=›dsÍf ™4ÍÁW^ Á^(æA,öyÛ²,¡VÞ²ªh™Å<êæ-«Ø Œ»‹ȯj,/ÛËËý ¥Ež›«ãg´¸h-.ZÃZ-SÌ1ƒÃó(ïõüÍú ß÷1Ý×§|³YÍ£_Þ²*Ðg¨·{Ÿ,ËÏë./÷Kï¼½²&ú~·ë£È Ù¬•Þy«ôÎ7]\´h¦±cž|rõÔ©G¿ô¥Ç¾þõ'9ç'N\÷š×Üø£?ú7Üpx¯–$Ù×¾öýûî{ô‹_|ôÌ™ŽeU^õª¸óÎìÇn˜­ïì†aòÑ~ñcûòµ×Î}ðƒ?ó²—=¸M§ã~ä#ÿëSŸúú‹^tÍïþî?¾õÖ£;û]"yÎßóž?½÷Þ‡ïºë—_ò’=m¥VVœ·¼åcišÝsÏ»níöÛÙ–—û§O?žúG9—ç|qѺå–kÀSÛmÇÈà€°6žyf½a,EU=l\}uû`NæÁl Nÿ^Ï_Y±á´´Ôï÷ƒ¥¥>ê¥Xéú‡³Ô>ÁíV«z…Ö„H’lØVßíú½Þ¦"Là {Ó4@^?3S‘=8ëA^/ˆìk4Ý ¸¡ñri`•Iܹ¶æ¯<`ŵáRvãêÛÑÕÍÅÂ÷ã0L êd$P¥ (9 ¦oÇ Â0 QyïÃqluZÓÔA¥]¯•ŠfšF½^©T´ZM·¬J¥¢U«ºeU«Õ å}­fÀÒÙ·‰‹Â°à—Ä÷ãê:„a:A~¤iŠ®«š&«ª¢(JµªrZQdΙ®«yž+Š”çL–¥4Íòœç9ϲœs†‰$IŽJ’4¡D„¨ C©Vuôåöº^7TU©V5]WA%©(RÙ ÆJ§øáî?§¬ÔMR9Ø `ÜóBñ(š³@kŽÑDà¿F¯(|¾pƒŒ1·ÉòÒ ‡8àˆ2qÁå]ïYÆ1ZÞu£49~Q±é‚mûÅ5ÎHÛþv•÷¨ËÇ¥14Ž}Ô‚«ªlšÆV bB4šÇk5äà8¤ O_Q6Ôù&½gÁVL°ÞoÕ]™ØÃ!ïCLúpqP°òÒmÖèo>Ž5ú;@(Ò `¡ì~páÏŠÎYd `¹#±Ö75úâSàÀQUÅ4‹ÞטâñBÝ~Ÿ!N{½âÀ²aõÀà Ó©Äf8Úã…ŒØ ú¿xR®.v!‡ #XU †áª+B‚‹fpÔà"vr<›ÍŠ|œW+©nxìP=‰Ë™³Í£4î„Ès؉ó\…cBÆŸ8'Á®+òP½r`'ö^XÏ)[îpJÃ6Ïj°<‰X'6â8;GÎmð ç6X³Àð0KªÐ6‚ ‚ ‚ â …ÄôAAAAAW bä"F´‹a¾žCàWžoį‹é.Å•$™çA`˜ñ"Æ>b 0+BÇŠga™ï©›yÎ\wtzü”€|Þ˜¢Hðwq^xÒAÔÎX¾-Õ¸$Iš¦0&)Фª2ç\U^TUI–eIbð#Æ}qÎ8g’Äò<‡4Í9çœó4Í%IJ’4Ë8c<ŽÓ|{ŠxÆ O½Ä9Èù—e ¦AF¿Ý¤8DUˆÝ”$͘ ÿ[Y–t]Ísžçy¥¢å9Ï2®ª²¢Èiš3ÆUUIÓ,ËÀÿž%IæzxoY–C×bŒ¥i¬qœî,W ƒðvœì´Ý «ÉO$‚ ˆiHÓÜóBÑn€¾ôàþ©ÛLå€ÀwÑ\ j `[Lßæ2üß®8 ³Î¶C× 'tÝÈuC»nä8¡çEžõûç…ž{^dÛáHµ$¹9øåû|0œÄùf³ Ÿ8z«ÁXMŠùi°íp}Ý!#xçÁÏXnÆF̯4M)%zUQ:¢=Q@iEÄE'Ëòµ5õˆàš°%ç5M™™1›Í ×<~Xð±..6Á…¦y§ãŒzÁBÆá²ø‹\ö#÷ÐÉ‘¸¢IÓüÙg»gÏv––ú¥wÞ†Cr}݃5I’‹‹ÍÒ;ow¸Ýþ#ö ®ýÍß|çÔ©G¿ò•ï­®:‡·~ê§nyíkoºãŽkwöO^^¶OzôàÇ{=ÿ–[®yÅ+^xòä·ß~üí¢ó7ßýWÿê3½ž÷Þ÷þÄ»ÞõŠá)J’düÇ÷ÿ—ÿòe]W>ð7¼ùÍ?|QÒhóœÿÆo|òÞ{¿õÉOþêw\{á/xyX]uÞúÖ?ð¼èž{Þ}ôèìn¿]Æó¢G}ö¡‡žU}¿ï×júM7] žú—½ì33æn¿ÇËJ§çÏ÷EUý™3§Ÿ^…¬ªÊ³³u~EaýÑ£395s¾¶æv:îÊŠ½²â¬¬ØËËöÚš³´Ô_]u–—m¼cÅ›™1çç Öâ¢ßçæ‡5çæê‹‹MÌö¿¢“¯8Ë•ÿÀ4x@AŽòñ‘Ó]4ûÏÌÔ÷‡Ú’öÔ@‹—NÃ;Ã0Å»Æ"b‚uÅN5°³Ý6áî$qÑvÛ½G>Ÿ¯ç…#KžƒÎ²RQ>Ðú—Ãu1 ÂÄâºQ§Ž‚@ܶƒ(Ê|?‚(¨Üþú(J}?öý(Š2ÛÀØå8a§hMººeU4Mâ à”—eYU•jU5 ìá ’eY–%΋q1ËrUU&ßåa¥dvJ>}SÞÄaeHÃäfûÆ^}9ïÓ‰?â]îL'´d›½ç;–žOÖtO#:èKd»žÀÈO™ }`¤ý|Çí§1qè`C±U[ îÅa„ S GRíW{Ú8±øeã›’MfK?þ¥“ã“püR3Ò=Š#ö¥4ÝòÚv$Œ†_”?Іk×ðE gb½&Ä AEê-E¯¦ÉØ€Ž]ÓÔUµPQƒùW’6,¨m4*ŠžÇÂ[ÚhTàl…ÂÓz½h3ü,:µÄ0pmÅÆxÀ±àS’b¾ª`m;,mÈÅ„‡¦(*F°,+^?ÏsáŠÁj»³IJ*’$3ÆL³°ÄB1¶YÿZz7pˆ¨ÕtMSY1^¯€N|(%Iš‘Q5NçÁ+Áh\Lºª>”}QpB ž‹™àÇÃgsm‰°tâoh—Gýê| iz°Û×ë…¯ñQçS¸a2?Ãþ,*¿›M,1xÎEks¥¢Órß¾D,,;ösìÒbº&‹a³‘sN±œ„WÛ8)8NqÄá«mq”†Úló,´”æK›møÒæfE‰ñÕP2ŽÑ›X…Â4 ˜Çš¦¡i›Iâr‚WÖXr’ }I,‚‚ýP¬Ù€×MY¶1ÕÁ‰¨×‡:—l«¹Íήë™pƒ£.^ƒc½Q”/8ñ‹'â¤HìÕe¡ ¥<lŒüb¡ èÕ8›"‚ ‚ ‚ ˆ-!1=AAAAA1TƒDÙ¨l"6*¡HlÉF%#±QùHã^aó˜ÊR:I’0ëCÓd]W9çyÎ5M…X:Y– ö.IrU•%IÊóDäŒBvY–ã8åœqž—‰+EØ:DkMƒ¢ÈÌdª,3Ιahœ3ιªÊY–˲$Ëršf`H#|’d²ÌòœgáÁ›ÏÒ4cLÂ÷s9‘$á\’ÄEFë=üu´Ì9Ï2^©¨²,sÎt]‘e þ"UU$‰¥)‡;ü½yÎ!L-Ï7üïð§Á_ÙD ‚¢dgÑ™Š"×ëv1|îl›©kã~)AA\jl;ä<ïõO’Ü÷£íäw ‘‡”!˪Ȳù<†!Ër½n¨ªi ÃáæÙDÕª^ŠP@ùS}lj'tÝ´òà÷¼ÈqB°Ìƒpô˜x€@jJ£a€U\0Œ`™·¬*nƒn¾^¯˜¦‰ÖÄåǶƒ^Ï·íÂ#1zç…ïðP0:Z­*úåA.Þyð›—Þùl\ vq©•÷»]o}ÝCXÝíúâ%žªÊí¶ÙjÕÊïðe¶Ûf¹Qk·M˪B¦ q©ñ¼¨ÓqWWÝõuw}Ý[_÷VWmØX_÷VWNǰW4›µ™sffàƒ3ggMøXó/œ`°‘ó‘úòÉ®óÑùÈÂÉ#©8ûé+Ÿ^—OZÃ)Ù®'}ÊöãôèÛ AgEŸRp?.¨l\(Úþ¶¤ágã?yž§iÆsݨÜ(ìŽæyΉ$žàÁ9Ç ¸.β»še…‹<˲ \ƶ»jµ0ùâçVX‹ PÝ¡5b$˜ ·¬BõÛjÕcªZ¨!ñeáÜñ;ý7Ä€Ýî›ÃÃ6ûym;(=¤‰`5-ºº}qrS¶Ùy:ÜÏÑ[:ýM•¾B÷ÛèpíiYUá!ì™’ø,aOÑiÑç‹{° :¬éò– &€§<œÀà c žÑ˜ ;vÝ(Ë2&œ=qPBýq–mòÆ ¯³Â3 );LÄÀóN‡ ä1¦(Dã³òìÆ„á¥Æ(„wND,†÷£dqÅáyż.Iò²DÑWÅR½–‚(¬ÇBï-¬úâ4p€Bšu&p(žÖ·^@,+ÕçE8n KwêÖ§Ùà>O#ë3áô2Ž‹f¢|VÔyÚ´‡Ø#L(eÇFÛÛª7å§/Š9ÀðšÛie»?‘Ö ‚ ‚ ‚ ö&$¦'‚ ‚ ‚ ‚ â’çÜqµï#Ãnب6*†fÜ+\fí;³Q5œ3M“4M… iUU4MβíY–§i.I„gY¡ÆI’+ŠÌ9OÓ,I2ðÂ'I–e9ìaŒ%I–¦Y¥ )ã6¦AQ$]×8gª*)Š,Ë2ü:Ƙ¢ÈŒqX1æ¼Ø$)ËrÎórƒqÎqdŒÁöŽÿ™£þ½LUUƘªJ¢ÍSUYUø¿iš"I’ªJº®f(ãÕò#P%‰1&5CUeP×:~áæŒ±(JÁ |Q”ÂGEi’¤ †÷ýD’ç¹è7ÙÍ&†žð60fClUU.Ãvv-ŒÖ5Í"³ ƒ!O˜1&ËÒæöŒ1\V8*Œâ ‚ ˆ= Dÿ£g¡ß÷‡íðÃù~?Ó`‹9ds‰YñÃQ 0¹ J°'.pM†É€a >wq'ô‡‘cVº“*u@[ ÷8Á1}²{$ÉÀ©×ïâF)  àÆÀÓ+­´Éo¸æÁ)? š‡/Èy#&ÓízÝ®¿¾îv»þúº‡ÞùR4_ì8-«:3S8ÊÑ;?3SkµÌv»ÖjÕffÌvÛ$çÑåĶõ5ŒóhŸït¼õuwmÍítÜNÇ?ÇJE›™1çæssõ™sfÆœ­ÏÏ7àƒSU(ÏÆm;ì÷}câ¡ )Ô„Ά…Â0[VQêr£ 5›5:N‰}m‡O?½ZJçûà‡ñL§ªòÕW·Kï|<¼ÇŽÍ..Z33uXJ".¶Üwߣ÷Þû­ûïÿn–å/}é ~â'~ðÎ;oô3¯}íÍÃml;ø½ßûë»îzð¥/}Þ¿ù7ÿèðÈEùÕÀúO÷ýÇÿø…~ôí?ýÓ?t_ö²Ñé¸oyËØvpÏ=ï>~|n·ßÎ^duÕùæ7Ï>üð3§O?õÐCO…aÒhTn½õè‰×ÞrË5?ò#Ï#»D¥à©æ™ÎÙ³ëåö:xIdY‚Ê"GÎ\s ëgŽ›Y@  œ+œõ°½ºê ÑÌ0TÔ·Zè¯o¢È~¿ªØ£(íõ¼QÅŸôÚ÷ûþúº7 /@…=ŠþGVZX°È¿vÐße¯·QôçP÷žAQ@xhØŽEKa}¥Ñ¨ÂwÜï§Ç® ­¸nkò0’ŒÜ ¶kkîH¹Œ-°ô k°°j7°B;¼Ÿ.pˆËÄ>7#nQáá0Ái5ÐóËmUìù°G|¨ÕªV*~°QÖò‘å–G¶a›¥Õb3Ï ê¶ŽüD]Ñ…Ü\c›%æ¨h$.œ‘ü ` eù “uùRÖ³ IDATÛ´› Áé4ß.u‡Ä– ž2в ˆYiâC',†\‚6MsÏ ™`ý+:0¡Ú+=°è¥õvCìTU6Í +Mè“išºª*šV1ëõŠ¢HÿVhèPƒ1V«º®(Ja·„QÝšäžF·3qÞ–ÏÚA¤îȳ›ºàÛfA&Ä[{‡]ì´Œ±á¨ƒiWÛƒm¿÷?…‘Þ‘ vJ§0 JÓ ·ˆþnQWv¾_ÈÁqpˆãb"„žqцŒ¥; ,YùšUÈø¬mònáHß(!ƒ•cJÈ Œëj0!ï@–åFc“  •1J:Ø`e#¬u„Þ|¬qYþ!…3#,I’yÞ¦>?µ[¿¨ ±3i²˜¢…•`pžV¯™8Øóá”Ê„3#ÎÿñxÁgAÕI’`µêó1AN—™“ÝsN³47ÌôsN6qIÓÎ+\ºë.àÈïºQY§apœY%¯}°P®ü`ïÅŬ†ÂvzÑ$õ8]®kbÅl×yð‰8cÁþ‰!(K†Y™8ÉÁLC=AAAÄ8HLOAAAAû #K = ¶m;„õÀ4Í!­ˆ ±³bˆ-$žÁ6æO¦iîyQù¬"ÊD «ÅHDVÄærÆX–e»cPáÍkµŠèŒµeB° ¢Èh¯Ã`&Ôb !c MÓ<˲jU‚„1–¦™®«A€D>I²4MÁ{&’Äó™_#7ýdÒ4ì±gOŸ~êᇟùúן|æ™uE‘Ÿ÷¼…'®½ãŽko¹åšë¯?´ÛïqÑízgÎtΞ]aý™3³g;Ï>Û…9›a¨ÇŽÍ;6{ôèìñã³GÎ;6{ìØ%ÿ#I²õu·× VV쥥þÊŠ½´dÃv¿<ûlg°š¦Ì̘èaõÍfíÈ‘6¤¬ïcÊ:›ö(ýG£}§ãŠ‚ ô×ëqüÛmoÚ±ÿb RÂ@ÕÉ‘fóq]NÔ=ãNêx» ŠŒ‡?ô‘ûñ£ïvý8'€‚cQá=\atx«eÒ‰’¸<ˆÝ~œ¿>Ê3‹=? ÓqŸ‘À_?Pìaýëý”ÍÄ6SJèDƒùôÖûò‰c›™fEUi½ñ"Õ÷ã8Π\ +á@ÉRVÞMF}'ˆ±‚ ‰ã4M‹HB× ³ŒC‡ÁXÇéÝ…:Á„`* ô MSj5j–4ƒ[Éb3ÐTIR!뤪 …(JÃ0fŒ9N”e9-qT…+Ä0Æ Æ Ë ß%èùІѤ½1â(ʶ¥Â‡1?ëZM×4UQ$è'õº¡ªŠªÊp A§ë±•Šqªµš¡i2vÈFc“@Ÿ029IŠdø¸Y9†dYÑ=ð#Fqj¯0ÆÒ4+Ÿ˜ÀÁŒÃ†.£ •|S‚QÊàŃ &DŠšfa¯ƒÎƒ:„²°r„ÁJ (уNÂÊ.+Œ|ŽWÓ[G/º¨tEØn‹JÅ€‚ &°å@q!ä‹n@f6¶\àÀBwW:B?Ô"czÎJ> ¹õ‹ŒE &¸õábí¨ÛÃ…€, {ôÏ Š,KâJ†°gF®äƒÊð‚ Ø«£¨èÕŸÏ„~Ž /( Ç‹hégÅÅ>Tzp¾³dOìðxe=PR6Z­ÚÀ±P 伯V‹K$8²¥xQ=‚–kö,¶rãópuŸ´L×-ÖGõPì ËøDì̸€g8;¨†µ|°ã¢®ã°\\Ú@­D6tQ‹?˜¿ y+Œ ¾&õt¹DAAÄ^†ÄôAAAA±=0gfšq6]<èÈç?‘]pÄ9 ËR£Q÷Œj‹Îî)EÞã^a¤Î{ËW€Ä®‚¬ =,#ðéû~ä8ašæŽÆqêº`G 8ç¾GQš$Y¥I’FQÊ9‡€ª(JDƒÞ8 šP’6~,Syž3Ibœ³<ßIlîdTUfL’e¦(²,˪*K’¤(’ª*œsMSaC×ÔñkšñU ˆgŒiš*Iœ1IQä<çª*sÎÓ47 -M³4Í C Ã8˸ªÊA@!ÀðÍíæç0Æ Õ“Q8 cÌ4 0Ý7†,A6 ¬‡ø3ì £i*”îH ™<¬LèbB¤AA¬HÛôhÁpC ø#P‡!4Øbò 'ô ÚPflé•@‰Õz¹RpœÐuCÛ.¾;NhÛmÒùò+pœ¨ß÷¡Ùpü7ÈåQ+ÆùF£R¯WêõB+ßlVM³ÒhFÅ4+öCì)@(ŠjÑ,?°aÛØ dYpU ®y”VWðG¶ ç|eÅÞÒ0ƒ?>KUåÙÙ:šGêalßÅ?í€ãûñꪳºjw:ÞÊŠ½ºêt:Þê*l¸++æð0Æ*mn®¾¸hµZ&Ôê0 UU•,Ëã8I’<ŽS(2²?0Æ$IZXhLNŠ{¨cç|u½ó6zçA‰‹GY£Q9|¸ºyÐ/,X‡YdŸßƒ¬­¹÷Þû­{ï}øÁŸÐ4åÕ¯þ×½îEwÞyÓ&¨I’}íkß¿ï¾G¿øÅGÏœéXVõµ¯½éäÉ›^þò´Ûæ¥xówÝõà?øÙÙÙÆG?úöÛo?6Üàûß_ù­ßºûôé§ÞùΗÿÖoýäE/ìô¹Ï}û—ù¼÷½?þž÷¼öâ¾òåǶƒòOþðÙg»wßýî¾ÔêÓ²¼Üøás§O?uúô“ßüæÙ$É­[n¹<õ·Þz”q‡É²üüùþ™3³g×ΜéàW·ëA8qªúÙ£Gç»û¶¯Â0+#,WI°±²âà=2ÃPj.,XåwkaÁÂ+£…ëàÜŸB½8*þ‡öý¾/þ÷ØŸ8þñRbv¶AŽ!¨— ʺ,bô:¶Ùæ<òº%æ°sf¦NêŸ]îkØvèû±ïÇ®:NèûqĶx^ìû‘ïÇý~žÛv±=ΡÓlÖj5½VÓMÓ°¬*l×ë†eU«U½VÓŠeUL³R¯PÜÔ²*¦iд„¸Ì ¤~‚¿6ÄQÆÀõuoœyGpÙö×TÞý !¬ Ó¨$ù8Dv—Üu£,ËÀuâ!¸_ Ö-ÐiAäX–åŽáKMþ@ÃPªUÜÁ`¹—4,5›5Ða•k°ËÁ P­¢ì^«TT’Ä]6P/Õ“P+¦ª íT (‡P7°PAŠãÔ÷cžc·›mù6 à ”Ó š‚"Iè¥,«*I¬^7eS3ÝÃÍ/¡Y¡Î×u…n…_RbtG:^G–ÜV»¼,ŠÒ¦A¬ÀÁÊ٨ȑþÖ‘¥8ðÇø[£&3¹c°¡°íqÁÞ[†yïØ‹·¥ðwǶßqª_2ã_A\<ÓýNžµ­Ù]?> ‰1Lƒ‚K0&ƒ±í€sÆ9‡«¶Ç6ËâÑß­( è¿wç|mÍÇ8ÎWWmÆX·ëEQêºQ’¤¶fY‰ï‡iÊ!Q0â<çžr.EQÇY–eI’§i–eyžsoMÓô­YJcL‚ Îù¶VGEQIU%]WóœU*š,˲Ìt]eŒëºaI’$éº ¿¨RQ³,×4öš¦ÄqjjšæišÉ²”$YšÝ,˸$1芃‹=J–‹`Yì<󯄍)ì9µš®i*+p™à|‡Ô8L¨Ã\U-:vfJ™#‚ ˆ‹‚m‡Y–ÙvùöA€%6Msð8û~¬Åê8Eaž<Ïm;„øl˜Nl©’ „™ÂLÕ4uUU,«*ËR³Y…hlMSLS‡,z˜?€‘"¶-«ª(²eU.p†Iì:`Mµ&‚›8À„ŬœŽŽ”=¡ô„ÌÅWžÁ'ÞíúÂFÑCÐAâ–eU,kÃ/ÒyA7¿! ‡:»ø7îº]o}¿Üµ5¶»]¯ÛõÖ×ýNÇ0õÔëF»mÎÎÖÛíZ»m¶ÛæÌ |¯ÍÌÔgfŠIF°»x^´´Ô_[sWVìµ5gmÍ]]uVWµ5wmÍYYq‚ ÆÆð™ÖëÓÔ«U ×I˲ŒN®½G "aˆ¨I@#6AŒ#Ëòsçºà´={¶³´d¯¬€‰¾ßíúhëh6k¥wÞ*½óÍ£Gg-:¾®l;üÜçþË¿üû¯~õqMSOž¼ñu¯{Ñk^s#¬Žn‹ÕUç _xäàÇ{=ÿ–[®yÅ+^xòä·ß~Ve/®ýöoÿù§?}ú§ú‡>ô¡7ã„sþßÿûþðÿZ\´>ò‘·¼ìeÏ¿èïáÿþß§Þò–?xÛÛ^üÁþã‹þ⻂mo{Û=óÌúÝw¿ûúëÉM¿m|?~ä‘s?|žúßÿûÖ×=MSn¸áª;î¸öĉk_úÒçÏÎÖwû=îi’${î¹ÞÙ³…§6ž|rnhjšrÕU-AU?{ìØìñãóTæmzâ8ív=ÑY6ö•û¹çz(˜ÓuµÝ®-.6áD³èr»yÕU­ƒi+è÷ý¥%{x• öÀ¿Tœ,â ”Y k~Þ¢„yb˜—½hs.Ÿ†épàÇ€¾y¸* Ée¿7±í0"ß'tÝìö¶x^±Ýïû°áy‘m¥þ>© û –UÔOm=,fš¦ašØíñÑZÍhµªÉC—¸è8Q…‚ ‚úy&Žz^ aX<1lŒ|Y¸“(Ž~p¯Š7T*T®T´ZM‡fÕªŽU.õ}CQGîºa–åž§)8îÑnŸ„awNá.jšæžK b Á´ÖûiLX +¯× U•Š,Ë[ÕjÕ ª "µà+(!þÕª¦ë…ã^c´ˆ]a¸”;Û,œWñ}ËfSj|lƒê»ë§·lÊÎKû<ðLPÛOOœ ¼,ŒrÓ¼Ÿ‘=ªÜ¿…Ú~zc>cŒ*ªNÏÈN¶¯Ã›Þ¡?}‡ÆiO·ô€oס¿cé‰+‚,ËÁF:ATšeyù/*ž…ùY–ÁÌÇciš•ååCYùÐà³¶…ªÊ¦ ‘ó2ĺcÐ;š¬1ç;*LóX™©ù~}¤¥¬ En4 ¢¾ˆÏ'b¢Ôòh`MFÚ£T)c™eúðLðÌÅÏP‹Œ)9Û­ ß²*²,aJ\Ó±b¬ xòqZ­?~1b´Z5& )0æ@¥4FÈÀ¶CÎsôwã)¦s¬èá)+’7z2žã8…81ß¡KÃjc#^ ¹í ºÌø³aqųa­V¤žÁ…§ªÊ°„3=X-Á.¶‡³'¦¡‘ò›fò5Ô–E¶Ûþ‹ŠíØ$>}{ZÞ¹R€ìuêñšëkA‘Ú“V.qõ@-aÊ4ôšÅ<çrõ8oÁË+ìÆµš¡ë &ùÛSa<‚ ‚ ‚¸" 1=AAAA±‰(JðˆáφBÛÙøhxl?2&~¸YùÜ-4šã{&"0ØãšM¨?ò¹žx±@/ÿ–ù ¸'ËrÇ 3bÏ‹²Œù~EI’dÖÀ9à éišÅqʘ”$)˜âóœgYÎÏó¬# "ø"F’$Y–8gø#ç\–%'eŒå9gLJÓi?újUƒ 6]W“j5-ÏY¥¢J’¤(²®«œç-!Ëç’,KyžsÎUU¢DUeøÃEŽ¢ÞƒçE’IJŒ£~[]{ a(Š¡rZ)…LðÂ×놢lÄ•b*V&éÀ(,6@‘FA±+@(T?rÝLñq\èã¡lO–e½^™râìyQ’d¶@" ¤LŽl† OÈ—ƒ©&L êuUò–UU©Ñ¨Àt&«Õª*yU-‚ÔjUeY& ôA|:ý~`Ûn8Nè8!ì±í~tœÐuC,Ù…ÀÜìáF¥üª6øÄAÊS~¯Âö®ü±ÄôDQÚë ÊåÇ©çÅqIÓ”v»Öj™ åj·kÍf­ÕÚøj6«í6lÔHwQÃókkªç»]ouÕ Ø#šLÓ˜™1çæê`–o·Ív»63SŸ5K}­Ý6)Õ/$ÙÚš³¼lƒn~yÙ^[s—–z  _^¶Eï<(Ï õÖ8gqœ€aÊqÈ?AêuCT7¶Zæ€Ì[:` bJPþ .Ú3g:è¨]_÷àŒ)IÒÂBcq±Yzç-ð΃¦–ìóW(¶~ö³Ï=ýÝß©T´ŸüÉ|Ãn}Õ«®ßÁÉôᇟ9uêÑS§{ôÑgE~Õ«®?yò¦W¾ò…GÎ^Šw.òïœÿ¥_ú×ÖÜÿïöo¼m¸Áòrÿ_ü‹O}õ«ÿðk¿öšþÏO^Š„ÀïåoüèK^ò¼?ú£wì'ãžm‡oûž9Óùô§ß}à ‡wûí\Ùœ9Ó9}úIðÔ?òȹ<狋։קþæ›Ð¤eJú}_TÕÃÆ3ϬCqn(”‚ªzØ8r¤½ŸÌËC¥««ÎòruÕ9¾ßé¸KKýÕUgeÅ^^¶×Öœ¢†:?ßX\lÎÍÕnÎÍ5­… f ssƒüÏϲ¼Ûõ{=¿Ûõz=¿ÛÅ ¶×׋ýâõc¬Ñ¨´Û&\ê–׿µ™™úÜ\·ÛíÙLˆÉôû>.©m‡ŽØvX>T¬ Úvàºá° Ï0TX/«0ÂÕ÷@FØ ™=”1¨Þ*–7(à ?v:îÀ² +Ý4b Wˆëÿ•¥8Š+õ€Ÿˆ]•Lbo‡P4,é‡â2²Ú0\óC<&ìo4ª»{ 0,"Ÿ`!ÇÚM¹ç…ÃÃÅâ¿kKíø„6ð?$ãÏaú¾Ä6+Ë·læ8\èMÏJ#» Û,>ÛV3^6@ኞ2ÐŽ£­ʇC'A%„ £<Úu£,Ëã8…§€ìºc¬× Ø6]f|fÄ‚ñ±¦‚Ѱ u….$I ž-²\8!,j{H’L±;¿ý~Àù†·µ§®¥i† à$IKŸ], à :Ç14Ý÷£$#žÏK’Ìóv"ÂCi8†Ü£œ:†®+ ÃCù/t9ˆ‰bŒA9(tûBÐF\ƒí´ZÕ C¡Ž´oÀ4Š$ÙðÚÃF’ä¾^ûò¡Lx(Þü¬ ç5ôp(bÄJç5.bÂ12=èäm4 ¸Êƒn‰ëéU˜k`š›’0öž4÷#ˆ-A£=Ì©pví8QžçPÀŒ öØ¡Sj&<±ˆgYÎ9·mÔÎÆŒ1ÏÛtÆÜX$Ë…×³Ò C–eE)Ž}È NLı³ræ— x6DWòÐÙ—-S¡VDÑâd òžsjHLÿ&GvNœFQ¼®2†óF¡ìŸ,KxŒû7jKÀ% cl×׈½¦QCÑ¡ÀIq:¸€Fû8I²áöpt _píøì0~¨¯”ûGœðê K­4E©Ø9Ñpô \àW.S–ÇÃ=„ÓWÔÛV…¼ ¯ª8®1*¤GÙÖAA1=$¦'‚ ‚ ‚ ‚ØM0àoIJ)îø7ÛòVñÀΡ'îÐÏÓ4¥,‡~¡2÷‘ÏÝ®Aþ¢ƒRÓß’gÛùt²,Ã8RÎy$qœä9ã4Ž3Îygi:ÖOz!@P2c "žEfŒÃÁ¦3žç¹$II’IK’lšŒ¦2ÊY“$IÓTI⚦H’$I’ª*yž+Š,¬Mò4ÍeYJÓ<Ϲ,KAKãœû~*I,ŽÓmå-`( È[ÙPä ˜[™ GÕ{³Y•$¦( „ìúøŠªÊÙ† 3½À(4 ‚ ö<0¯§@‡Èp¦7Š„“æÏò>³>1[å#¢/$bô$A0Æ|?F¿¼ø]üQÜ?ã«iJ³Ym4ªFᚯ×ÍÆùJ«U«×7~„/±÷ᜃ¦ ŒH¥n~ãGÑA?¬r+Õf«Um·½ó¸Aýá"bÛÁùó}ô[­¬ØKKöæûâ‰LÇè±Z\´­áé”±×ètܵ5weÅ^Y±WWÝååþÚšûì³Ý¥¥þúº ‰©€ª*•Šªª çs¦ƒiŠ"9Ò^X°j–ÞyëØ±ÙÅE‹*ì'’$»ÿþïþÏÿùw÷Ý÷h&/}éóßô¦Û~ê§n„Ìé‰ãô+_ùÞ©S~å+ß{æ™õÅſɓ7žüçcŠ"ÏÍ5²¬Ã‡›ð}~ÞºêªÖü|c~¾±»ÈÞ!ŠR´Õƒ¹‹·u»þúº»¾îw:.(F£2;[Ÿ™Ù$¯Ÿ™1ggëív ¥öªJhb*òœ;NÐë‚È>À" ý~X®Ðú¶ôzÁ°y§RÑàúݲªÍfåõ–Umµj{˪’£üJaØh/º¼·k´Px7›UÔLÃBÜNµ JE#³±è÷ý0L‚ ±íÀ÷cß=/ê÷a;ò¼ö{^äy¶qÝhœY»^7LÓ¨Vu¸ŸU«éµn°mšF­¦›æÆv­¦ïñ‹… ŽòQ·¤·âO£&Ÿ,%ßÒHŽ£¹È÷ ž¥i"iТ‡—sÞï¬ô‚‚šAÏù š7¡™ã„yžƒC}å“Þñ™® :ÝF£¢(2è/¡ÿ€^-º››š&COƒf™Iì"#Ef#•d#++”OIGúÎv`.7š±2È|Ü€Æ6ÛÊFzÍ(ô÷b#Ižûycˆ„‡: Y6l³Œ£Ò©¾ bÓ ¥8(#·¥ /Ë!å .\öE­ÃPÑsZ«éº®`09huk-T%‰a­Öè,¹¿Á ÐY)E~}Þ÷cpõÂAÁ9ƒS3öa,V_(‚¦à8Foþ¶s|ÀjÍkµªŒ‰ û¢ÃCQVºzñ$޶S$Eo¾,CË ²‡LÓÐ4™*@Äd°´ÆÀ(Ï å÷ðè1PFÞ®(™&c#Ê9”ƒ.ìOÙPù¬(†W`ÌÇ p²ÀsS8  ¥ÀZ¢Hp ¨× UU°êR£Q‘e KÀ%öÀÕyð÷70Ár&Pݧ:8hÃe.h»cµš¡ë âP1†Œ•7MÙå ˆ‰¢4 ‹ðt1ToQã?\ Õ…è:|ŠïG寯ˆÞ÷`›ò¡b϶PUY–eι¢È’ÄÐó Ïyž3Îó-C:dY’eY–%øbL’¤MÊxÎyžó,ã’ÄòCœ%‰©ªOÄ-Ó¬;€ ‚ öp8u:á´ü~ßÎÉ/U [ähAºÔô¦øÉ¢ùËö/"®h’$[_w{½UÔ(©e®ñú°¢ÈssuÑG<à¦!Iñ> ŽÓn×îpölê²,ÍÏ7È^½»t:n§ãv:Þꪽ¶æv:îꪳ¶æ¢8o}ÝÃuêucn®1;kÎÌÔÛíÚÌŒ97×qÞÌŒ93SŸ5÷¸LçÀ²¾î­¬ØÏ=×[]už~zíÙg»çÎuWWNÇuœ •†,KŠ"C!ÀÂ{º®¶ZÕ™™:Ôhµ@•h‚$±Õ*¾·Z5H'â±íðé§WKé|¼óð#ÚçUU¾úêvéo‚w¾ffê” º¿ùÞ÷–>ùɯýÙŸ}c}Ý»ýöãozÓmoxíÛõÛvxÿýßùÂùò—¿Ûïû/xÁâÉ“7ýØÝpâÄu—sù:â÷¿ÿÏî¾û¡_üÅW~àoîºëëÞûÞwÏç?ÿí÷¼çä¯ÿúÉKÔ·³,ûÛÿø{ß[úüçcq±y)~Å®ãûñ;Þñ_yä¹O~òWn½õèn¿ýF–åO<±òÐCO§þñÇ—E~Þón¹åȉ×Ýqǵ/|á"™XwL¿ï‹ªzØ8{v.XšÍš¨ª‡#GÚ$J¾p|?^Z꯬ØçÏ÷WWçžë®®:çÏ{°¤œ¦)óóÇ[ ðÝ:t¨¹¸X|Ç0BÖ„aýçx¸œ3ÀõuO €Å^qådq±¹¸h ,¤ì׳q©ûäÈu`ÜÓíú‹lTÿ·Ö×j™´tpÅ÷¹ÆÜØd´ÇÛ^ƒ€]ïaAßÀ»WÐað¶íiÉ‘Ø#„aây‘ëFŽú~äû±ã„®z^ŒÛ ²·í@ØÇYÆj5<õÍf lõ¦iXV6@d_«éµšQ¯FC9ç+ôâbšûæÛòÝã*Ù8¶å»y ~ÀM!{Pž¡R z…ãD¥¿úL !ÐÍ d»b³4Í]7B÷ôdÀèd Ä”–ßÇö¢q½ŸŽ/u‰ÿsÄ6Ut VF}¬ÁV2Œ·í ϹïGI’cõÏ‹§ìi¬Œs®V5ÃP!|u{`Ð3MCU7•OÀØfˆd†Àfèrð èï#ëýecúj lT©6±šBù é¶r ÄÓ%+CèGêJŠ%Lv›ˆMÁ¬wÑÿŸÄže²¨—éíLp’NéöŸ2\{o2:?ãöeÛéÿLȹrçðqÀŠ2‰³#ÑhŸ$ÖŒÎÍଇÊchœç¹ãl4βâÇm"Ap<à;–å ¬a¨X c@ŽŒ?NhŒ5chþ`Ást~L‚MßåþÂè û!M=ȘjÚëå"]r†µgЪ<%è/®× U•ñâOŽPÅ û9œÑ• Ó?hŒ¥# eN”x¼Ðb 1 0ÓÃSx%Cjv–epȸn”e9¦r»n˜esäá¸ÛÖq1ÙƒWÜh‡KxòàlèÊeÊ‹£¬°m–<™\ïd[ l«â(´îDAA\,HLOAAAÄ.€‰+½^0°b2X´!îÛÀ’†`–/öôûƒ{°Í𳶆}`$Û¬†WU… µ¯ñn7+ïa³2d„ áMšVÜ—å{ÛFn¢óÝ0Š»ã²,ão¿Ì í †Góþ5ü@Æâ`$+¤°òÓÉsnÛ!cÑ<Óƒ7nk5MUeΙah`]‡(„4Ít]åœå9W‰sžeœ1Θlj$ÉH5Õ³,‹¢4Ëøä`Y–4MU¦( èÔ%‰å9“$NžsÎó4åœó,ÛÚGÏo;ôøÎ9‡·-IR–eÓ¼ ª ôÞjU5 ­ZÕw|3{ 1º™í ‚ ‚8ÈØvÇ™çElÛA¥A{^Ç™ãù©¶¤iî8!d;”;Ã,Ë`N8˜øA•&˪ªª\¯W ¯¸V+v*ŠlYMSk5½ZÕt]m4*ª*[Vµ”Ñk•ŠJ±×ÄE!ŠÒ~?°í¾ãHdÄáû@*Ž¢È–Um6«ð7,«*îÇïp-I\‰¸nÔëùÝ®×ízÝ®ßíú½ž×ëÁ†ßíúÝ®×ëù½žVkƘªÊ §ou»]Cc5¬a»Ù¬îÖºÁ! “µ5weÅît\’ êy|ôøÁI’4;kÎÎÖggëóó™™úÌL­tÍ×gg ï< Ž÷,Y–Ÿ=Ûyâ‰Õ³g;çέŸ?ß[Y)j ø~™9#ŸX¯Wêu£Ù¬Î̘ssõ……¦èŒ·5‡ ˆK çáëÌ™üxölgi©]LÓ¸úêöâ¢Uzç›px;6Kn¾ˆëFõWÿ§úõo|ãé#GÚo}뉟ýÙ;ŽÝÖ‹œ;×=uê‘/|áÑ|‚1ö#?rÝk_{ówÞxüøÜ¥yדxî¹Þ;ßùñçžëý‡ÿðs?þã778uêÑßüÍO›¦ñû¿ÿöÛo?~éÞÉ¿þ×ö©Oþìgý¦›®¾t¿e× ‚øïøøÃŸûä'õ¶ÛÈM Y^¶~ø™Ó§ÁSÿL¥ ½è(xêOœ¸Žœ¼N§çÏ÷EUý™3'žX†Û»š¦\uUKTÕ;6{Ýu xgœ¸p œ!NfĉÍòreÅÁ+‘f³†åsp2ÛTB`2è _Y±—–ú¢ðûën’Ñ€¸„j»É–"ûÉvò-Eö´$uåÇ©çE¶:Nèyè¼m;pÝÈóÂÍ?Fž9NhÛ¡çE՚͚iê°ešF³Y5M£^¯˜¦ÞhT, ~4L³Òh–Um4*F…|^Ğϋ@jßï¾Ã}ê~?€¾÷z¾°ŒSæA·¯ÕŒò(Ð˃¢jYÓ4 eUñØ/ÿß~IÎ^/€€Ï,㮦iîº!D~‚[ ¼< o_6Ë2>ð"“#Üú+4ȧ,«"Ër³YUUÙ4 JÄØ0¯éúFxÙZ­ê.FØÛŶCÎs°›AG‚ /WSarYô Nâ·k5,fO±Ü°_ÓÓ4TU.Üõº¡(r½^> *ÐÁ•F—`{œq%:ØfõØIÙp³ò¹©ãÓDtWõ`›c³GjÇÇÕÿ`›ã·)ðé2³cµý¶ÌwÓç¼L£½›ù?Òy7S@zß œ²1Áª×°ÒIše9T AÛ/¤}A‡gŒÁ )Ê|“$ã¼x5޳8Nûýþº H Ù„÷©(²®«Š"1&ɲÄ9G‰|–å’$eYÎϲ<ËXžoQÉ\–%ÆŠ¢âœçÓ/¶É²T­êŒIÕª¦i ¦¦†7w[­šø¿ØŠ… LÓÐ4E–åFcã2†øT*:i8‚ ‚؈–Y6äê'IÖëùúëºQ’¤¶¼ËqÂ$É'„ù¤mI’¹n49Ë&-Ífb—Çéã C…l^ÐÇ›¦Aü˜L®( ¹®ˆË@šæŽ3lüµÇ¸€’$ia¡ÒáR4ÖDnâ}8ãľ±²b/-Ù[vPÈME:d‘÷ò`Ûáùó½~ßß߀¢ö`cE‘çæê(¡ƒOjaÁ"íøÁòrØNÇ=w®wþ|wyÙ^_÷ÖÖ\ÛÂ0I’t`G’˜¦©†¡Y–1;Û˜™1¬C‡šGŽ´›x·Z&­ÃÄe Ïùê*zçmôÎø'ÜF£ríµó¢¤õرم‹N¯À9ÿêWÿá®»üÂÑuåMoú¡Ÿÿù—ÜrË5Ó¿B’d_ûÚ÷ï»ïÑ/~ñÑ3g:‹‹ÖÉ“7ÔjÆš@l𿮋䤢L ‚ À`¡¼=4‹¢ÔuÃ,Ë{½}=ãÀ€]Wb Dl–UÚᇠ® ã±¬ªª*†SâŠcœˆ|œ…|š6ÓøÇ‡åã“ÍãmšÍê@ ¾RØÒT~!î{·|b÷cã¥ö#zä¾ß³ìX˸-cþ¸²=#Ù²§±‹!p$ ø\½0{d…´1Ål5ìÏ ‚Dó£ëFiš nÇ$ŽSLvC0T}H’ÌóbÆØ¶ú¿ªÊ¦YaŒÁTµÔbÖ,K˜æ¦HE‘`µÆR|ãsáþuµª†Bõ–bzF–aÓ·Ùx‰–㮠ب20Û-J´r]‰=Å”#Ðr{|¶ý‚IÓ·¤þOL¦yX! B¾aNˆÚ„ú(°™eL;¡’ÜOaŒANœmBeˆmÕR‚ú^X2Ä¡ü!TQ‡8L21L°J ‡L ¡h"c¬ÕBá8]4íOpˆî÷Î7Š@ñ’8ÆjaÐE7Ї¥i£7”›eŒÙvçl …ÁuúOÿôk?¾tÛmGßúÖyÓ›nÛ_[â8áç?ÿí/~ñ±x¼×óo¹åš“'o²ëžßüoçwþòg~æ‡?ò‘ŸÕõAeÕÊŠó+¿ò?¾ýísþðϾùÍ?|IßÉ×¾öý·¾õ~é—^õ¼á’þ¢½C&ïz×ûû¿?ó‰OüÊí·ßí·sàX^îŸ>ýxêyä\žóÅEëĉëÀSÛmÇh.w)X[sQUölçé§×Μé,-õáÑÙÙ:xêŸmýñ㳋‹ÍÝ}Ïû›0LÐV/šë——íóç{èîÔuµÝ®‰ªúíÝý+®8`þÏ«‹è¯ït\1"bKýâbóðáæð©œ v hÇûý¾÷û¾ðc(îìõ0wˆOGêȪ«°GØY#qê>#Ms× ûýÀqBÇ ]7Ä^/„~?pÝA“E¥¢¡­Þ²ªF!¯÷?Öë8îwýòŠ & Vñ8 Àôpç®gƒàÄ` Ü5ÜmYA¤RѨæ"‚Á½^0NËp1vbKï³>1ì Ž‘˜ §QîŠæ"*ïËιµãï}÷#ÛÎï ŒÌÐ ý“'̲Ìzà)C3$/@NJÄQ”B$?&°üÿì½y¸$yYçûžûÙjï†B›¶Ô.ñ Ž>Ò4Jë02îxÑAQpgÑaæ™ça˜™gÐËe¸ x•FE…½ÊrÁ檃íV­b·´ØÕ[Uu×Yòä[FDFFæýã›ñ;q2ÏÉ“U]u–ª÷óÔsžÈådžÊüÅ/~Ëû~Þ«Ò¡Jo Ë2°mµP(èº,Ë"ÚØ„Mù H=ÀV¬ Œ¥c¸–!mª¾÷{Â$wHAÇ5ްš„§47-Ãûý4“3†£ÑÝ3€OØaÇc>Çy@f©C[bÙHÖ@çÆ$gAÈ~EOU%Q CfϤ†GLƒBJÇ…áXÈ‹^”åú¡¿e'zf–µÇòËàÊGu%.ËûCe&îyœ è~¹©s©y8x¾`Y—ù"Ù¹`Y*‹‡áÆ™zø‰9RiT@óÀ’|ÑQäoÂôq~6ñLtã7L Ž:q¸€ÎYŽˆY_‘º‹Ž‚ Æ.š ÆA0þgݧ‰"Ÿý–€N/H}1»JâB†¡#kÒ¨>ˆ+&;/ ûf—<´p<¥ ¹ìRÛëõûýtþ‹#kÿ¶­òüxDÇÒŸQôeÂŒgâÚ'œ#0)ëº"Ið)KŠ?øøt ˆ=ÙуîÍŒp˜˜†£·ÇCX& “A0àÏY? ZtõhÀÌŽy÷8YÐÎ'®Ù這û؃or¡ÀßR¥Uoqv,Þ3£rÏŽõófÔ8AUÚyþ’«-†GN‚ ‚ ® $¦'‚ ‚ ‚ n9Øî6¹lÕÿãqT%¢!¹,„y°˜0l“pÙ¦8—Å15<‹¶œË„“5‹Êeµ¬ÙFˆa(99xűÈ07Éö …B¦˜ç2Åü®öù# „õ¼8 õ‡À&IÊ6qÙ÷…_æúÇ- œe›dˆÃfÆù ˆ“dxµ–lhq™p_’]ߊs_¦Iˆje~s„ "jÅF°XÀ 5<—…þ°-á9qÝ[z¾Åñ â ˆ§çº²Úí Šúa˜¸nEIDŠŠã¤ßO¹Û‹£®Š dKP#Ž+ŒF8˜ žç8Ž„‚ ð<_$çyQäQ(¡í†! ¯i’ªÊøˆt]Vɶ5A(Ôj¦$ ¶­©ªT(l‹›œˆTžÿs#‚ ‚x> à ˆ¦ó¢óIé;ºæçÏJŰiê,}=ŸeŠdu¡5ãÑýüdâÚ †­–·›Y~û=½‰GøZÍœ!ÓÉßCgÄ͇çEí6üò[ÒùN'h6}ÜÄCù¨nI*£\†YÞ¨VMv3sÐiš¹ÿDQÒlB7ïmnz†×lúͦ×h¸­–ßh¸ù%]—!—‡z~aÁ®VjÕ¬×ÇÕªIBÃF¯×o·ƒfÓc§m» ¢@v.ûN0Ìeç‰"_(ð£ÑÉ4M.•´zÝ^Z²WVʧO×n»­~êTue¥D EqP$IººÚ½|¹µ¾îdÞù±D•]ˆy¾P¯[‹‹ÅÌ;oÃ;¿¸X\Z*’ô¸*þñ×>ò‘‡>ùÉ¿Eáû¿ÿÜüÀË^ô¢¥9wuµûÙÏ>úàƒ?ÿôp8zÙËn¿÷Þ¿êU/>y²zCÿæ9Fï~÷§~ñÿäï|õ¿úW÷N—þÓ?½ðæ7ÿÚ‚ý+¿ò£gÎÔoèãºÑ}÷½÷äÉêÇ>ö·T±Þ$IüÇxè¡ ýèÓ7½à ÿœ[— ˆ{ìÊÃ=õÝnÏ0”;îX9wî¶sçÎ|ýן¦"a7š çÂ…K—ZÖ_ºÔºxq“2Qä+ŸÒF„Ð;Xòq ;yvOŠ˜=gïÖHÊ{âù»}gˆM£¨?º¶ÓkncïnnSn»æ›dŽÄlX]‡n7ä²Ü½ápœÊ‡hçÁ`ˆì?”½á‘Ë÷Ðø‡ÃqŽ™% "Ùóª27MS5r¸±á‘GófFȬêƒ"¨!"O³Pà˜RxZgu&xËÚ²C^ï’ nÒ‹k;—‘Ïëûñ`°­.—õA¡"Qƒq5¬ì·¢4E±¢Á<…²ªd¡ÆWù«†dHÚE†¯ ¦©BÁ4Už/ «Ö÷È KÌ J%ù~< qYÄ q쉋`¾àäÈQ®.ËyÇi2gÕ´Xä¹c ‡ÆùdÇ<_°,4o­PÛ“ c\'‰#¸82§]‰«§Cô³¢t fÜLô~CDÌÄ1ÂÓØøÅíp9€‚ Ag3! G6MExLɳ¦Î†Z(Œ‡ˆèêógfî8¡²:‹4Kºå@C ÃñXeBdŸ‰ï$‡rÙD&ßò¹-Q~œ$à Qþœ5ðl[…fNžç-K7n”ÇãyÕï°ø‰f®+;Ö½¡ŸAA·2$¦'‚ ‚ ‚¸¥a‘3ê$sÛ#çv{rvÿÎyÇÍlÇq«Ë €ïuÇåâ±wìö„=…ݼYAíß$fšøp4W f„¾¥éÛ$¬l"zÙ†Šã„ðËÇñ€íšc~ÎmBŽãئ¸aŒ¥ðÙ7>6ø‹c)Çqžù~ßó¢ ƒ EIöa8ãv¼†Ã¬ýÃáèjÖp …9–|D‘GО( l‡µTR%I„ÿTÓ”bQC†‰¦ÉÐ5*ŠhYª( –¥"Æš¶²‚ ‚8 à ˆ¢(évÉ<^Çß3ó¡IíuYËåm‰”,³w"‹r"­w:Çr??‚8’$ítzÝn7Î;NØíÌ>' n!IB¹¬“kžÃ~»4›~«å·ÛA»t:Ž;ñÍN§—Ï:–e±\6*½\6*£Z5Ëe£\Ö+£\6Êe£Z5*“¼iËŽÞy&\Ë;‹9ŽEþرò‚¯"@ÞùÃI’¤««Ý ›ÞT݈m-Y——‹ –¦)‚À ÏúýÔ÷cÇéµÛ~§3n ‹‹ö±cåcÇÊKKÅ••¼óËË¥ÅE›V«â pÝèâÅMœæL@?aŸ—$ae¥”yç‹ðΓ+“¸¡¬®v?ò‘‡>ñ‰óNðÚ×~íýØ7ßu׉=k8ýÍß\üÜçþþóŸÿòÓOoV«æ+_yÇ«^uç?ù'/ÂÖÕ¡¢ÝÞð†_~æ™æG?úc_÷u§'íõúïxÇoö³þçÿüº×¿þ÷áïyà?ûÿáw?ùÉyÏ=göáí!I’þäO~ôOþäñxã+^qö ÿb®=òÈåóçŸ>þ™‡~&ŠÛVï¾ûä¹scO=­Ñí3ýþ`mÍÉ«ê/]j=ñÄ0AÈ«êOª¾ð…‹´ø³ÿÌÐÖ?÷\‡eÞNkëÙÀoe¥Dƒ½ëÈŽþú‰÷榗7_0M3[E!=qPÌo±ŸhÆÜÕXìlr¯Ü"°8½‰&4}'‚÷v,Àí¥³Ÿ¾³T2¨ &qøÉw¹uæ:}ÖL÷½Üv»t¾¿EÀC¾ÆsJ%Æ7Çé¥éÈó"Dk#Üó¢Á`èºa3ˆ¢®4×Ò¥TŽãñÞˆ!ßí ¿Ù¶5Yu]6ME’DÛVYKÀý†¡È²`Ûâóñ|Ã)ºøæ†ñé€yèÅ‘à8=(Èó-Ö÷Ç-É I’A¯0ãí r†S &¾bQÞ²Tä Y"+Á²4A(ض&Š‚i*—!õ¦'’ôݔ쮳?¼Ê{ÃP$I€D22è&)àáÈ‘/´c¿?˜P4zd¦ý$@ö=Žs¸`o„ /¯fù\sjï&dŽhTÐø¢í‰âXcj0ùª, V_òð\Ç‘E¡­Ä5€Ñ&ÒëØ9’¹ìÇyˆACæ²wœp4â0*€"4å΂N.ôØ£Ñp"¾t7`rDœ6F¹Çd¦ª ðè“¡½ÎAÏògT’\–ŸˆA…ªÊ´2@³A°桘;°P¾¢+@Ö3Æ`8Ùó9¹ȲÁ[ôçßç}¯ÌSœ]àÄL>NëÈðu]Æl"¯‘e*d­ósMEæ*¡„*{þ;V1œö3LÔ2œ§*³$æ‹–l‚oxôQ… î'j<`„ž?_ ‚ͤ0zœç\€žu piÀ ¨TbM ¶­a(ˆ>³'Ìٳˇ¨ëã™>M‘6ªÉŠô ŠIˆvŽÐh4ž¡º Ê–¸n„G‡Ã¦98#àÇŸgúÏZ£,oµL6¼Ùm%jÇŽ]Q(¡• ‚ ˆ-HLOAAqè`²x츳­lŸ°¸4¶›ˆÕj„¦qY=mæGðnšŽ—¶Éê²^•,žÅß`%z7“8–ª¹lçµè9ŽÃæ=ÊÑscc¸È*Ò³5kSbçæz~¬‡|Ñó—È)þ·¶–¹íõ¦ŠÌûýNTØÑé¿ãþñì‚ùgr¹oùÀÁYƒ}Çl_gk¿AŸùýìåà~ÏÛÚÎìõúQ4ŽhA­ïùÞ¿ÀqW· S(ð’ÄK/‚$ ²,ʲ¨ë’iª¦©¨ªR©hº®Ôj& òÓ›C¥’F›CAAi qx †­–·£A†I¥§½Ãlj"_­š;êc&ÔH4‘¹EpݰÙôÛí±q>gŸ÷[­`sÓk·ƒ|=ûWúýÁC=ýæ¦wûí ÷Ýwç}÷Ýùµ_{êÐfTv:Á÷~Mï7~ãM/~ñ±‰G76Ü7¼áÿ¾r¥ó¡ýðË_¾†ôÇ»òš×¼ï­o}åÛß~ß>¼Ý¡%IÒ7¿ù×þè¾òÀoüæo~ÑAÿ9ÄÎ çžj<üð3ðÔ_¾ÜEþ¶ÛÎ;sÏ=g¾án;y²zÐã­‹ãô˜ªþñÇ×/\ظx±‰hŽãŠE©êÏž]|Ñ‹–NŸ®!æØz½þêjwsÓ[[ë6øé®¯;îúºÃÜ‚²,.,XKK¥ÅE{i©¸´d/.Q]le¥të¾Üø~Üéͦßé°šŽ=vÏŽ3wY+•qqÇZÍD¡ÇJŬ×Íl!ΨTŒC;."nJæ·Ø7ÞDŠÜüûÅÅâAý‰¡×ë{^äû‘çEž9NÈŽ}?ò¼ØuC×Å1{æÄ‹ äÒ¶UÓT-K5M7m[+5ü´,ÝiÛ*×!ŽAû~äû±ï³saëÇéy^85bߟAÓöYqj‹ºi*vµ,Õ4ÕRI³,ͲTËRm[µ,Õ²4ËRhåpŸA†B§a؇øÏóâápØíöwyn·Â*‡¸çEЋ;NVÐú't•Yh 3 Â"÷›¦iN©¤#Á4UY-K:gŸ?â@@“ƒÖe|?‚‰°Uæ*. 3–·Þ§éÐqÂápY-Ï,K“$Þ0D×CádÛLjφ O¶­ oÛ|dH±mUl‰›•QÞ£ÿ„¤É¦©J¯ëŠ, º®°ÌE‘Û…išcËÚ*÷0¨Þ ùY7=Û•Üã¼B(íÐ!íeˆÈ–BcËrÍaÈZì¸ÎïöEœ-zNæçÅ’,|Ž–¥ò|‰„¨’÷ßA‡ÇT¿†¡LÈñ âù0íóå¶gh9Ãü;O.3ÿr;%fÎ)ÿå¶çoN¤dRe‚Ø9OíyÄß×|îÏÖyÏ£üÎ?‡Š^ó€Á!Vuƒ4bd¾sYÕäÂc†Ic¸ØŸ¨Ÿ´]'ɸÌÒžfÊh·õƸ¢ƒ( ÂôͬßÓ¦ï¬åKª*RCâù€v‹¦ŽY9Ä÷¾)ôßPF`¢”SLŒ2x„ÉTã8­f¿éöY¹,Iã³`º mψBa|F@¥bÛãÙº 𖥂@i/ãj‡.óÛ†qÿà‡`”]µm[=}ºã<ìó§NUlºR‡ çƒüã}ì/Êeã-oùÖ×½îžÙn ÍMïóŸÿòƒ>öÅ/>>Ž^ö²Ûï½÷ů~õ×?^Þ·¿ùÚhµüïû¾y^ô;¿óS'NT&}ê©ÆýЇE‘ÿ­ßúÉéGo¾ßwßϯ¬?þñ·P¿4¾ím¿ùéO?òá¿áU¯ºó ÿbo66œG}îüùgΟú‘Gží÷‹‹ö]w€§þ¥/=u FM6ò¶zvðÜs4rÛmõìàøñ2´¬ alÉlõ†·ºÚÙÜô˜ÔòTHê—–ŠËËÅÅE{e¥\¯[++¥zÝ¢/ñ†âyQVa®×nûøÙlŽ‹G¢Šd§ÓËge†ú±ª¾^·Ø²@­6.GGòebÿqÝIm}·»ƒ¿¾Óé±J'Œ a=¶3J%½R1p³\6p“Æ·2ŽÓË{ê}?rÝÈuCf´ÇM× ]7rœ±‹ùW€î–©êK%ݲÔbQË~ŽöxÔ²4²ÜGˆ(J ¬Ï¹ìcÜã8¡çïÁé㺡ㄞa$ŸÇ¶Uæ¬ÏÌõãóòzÛÞz'­?˜ãf:Fh{ Pâ8½¼'A4~‡9qlÀd7óG ©ªDBÏ[ h—Ñê˜õÕq€¼¼wÒu£ápè8!Ê3@Û7ßô•=|Í‘Y– â(º`Ûš ð¶­J’¨ë2îÄ3swÊŠ"˜¦J³à[Š ‰ØDy –±Ùm•»&Å Î$¿ØMÏní ÝPù¸6^ö‹»>²ˆçC¢¨ôF.KKDª#<3üzÞÎY¨H„ä²Ld8‚qvÌã<¶­ <ò‚ѳ¦ž¯úÀ†Šº&,w¹¨H>…&ƒ ÃPšJ}8Aìf8÷‡Ã­tf¤-sY^y–¼ ‡ãÄgôA³b0ùk"f¿5;K%ËrÀQÍ…• ‚àç;$Èè4MΪmȨQDËŒÄÕ’Yì‡A³ }¦SHÓ!š7lਿ…!Ndúg¾ï0M‡žÏSÉ0àµ×ÜB†Å5p±“eA×eø¶7~Y’ÆÓj8h!ˆxþ\G?øži’Œë./• ªzBäK8ìÖPwkɨu‡_Ç5~$¬¯Î~_tݢȣ¤¢i¢3g]ýV]Æü\&+}W`c!ZA%‚ ˆ ‰é ‚ ‚ ‚8Âø~œ¦)J:sY`v³˜7›XX÷dBp„bg—Ëê?c”Åsx^”¦£y6zÏ,Kã8Î4Qä™&>3‰Ë²,2?øîNy•ç Ì)r¸»9åoq°µ?mSÃãÛÇÒ6vñ¹\ÄÏ`0.Ö¯þº„õ@­‚/_+By°ÌÍeß)vC±»Ã¾A|¿²,ê:ÓÄs¨ ŽâÆÇþeqÄWͳÁÐï#–å¦Ó^o¼å<¤(ù€3úól0ãŒãùqP…iªI’ªªÔïdYè÷SŽ%I:qýþ`4%Iš¦ÃÁ  Fi:LÓ4MG£ÑhÏR<_@‘|Y,fË0xäm[Óuš-ËRk5¥Ú-KÕ4YUE:a ‚ ‚8º8NoqüV6ÔüNy‡çÇ“Sž ®;I’v:½N'èt´Z~v KK¯Û :ÓBÛVK%£\Ö3 ‹^,nãO L•[‡áp´¹éÂìk-Œ?°ÖîX½@–Ååå₽cÝܤNþp’$éêj7/)ÞØpXuN§×ï¿hIVVJ öÒRzb|ãЗËyçœÑhÔj­–ßlú†Ûjù­–¿±á¶Z~»íol¸Í¦Ÿ_/•t8æêu«^·*³Z5íjÕ€l®\6ðL´“gŸm]¾Ü¾|¹uùrÇ››{©“'«'OVNœ¨?}娱2å>Äþ“¦Ãçžë c¿|¹µ¾î6î¥K­ §ÝØPÆyôá™w¾xòd•.ÙÄ¡å‰'6ÞûÞÏ}æ3Ü~ûÂ;ßùê×¼æîz²‹›ŸùÌ#ø‡ýíß^RñÛ¾íŽW¾òŽW¾òvi;䬭uÿù?ÿ $ ŸøÄ[¬‰Gÿò/Ÿú‘ù•;îXyà7îÛvÕ{Þóéxè _ø™“'«û󎇜4þôOÿÖïÿþ—>üá¹ï>rÓ%°ÿ÷ÿÜ£>÷ðÃÏüùŸ?Ùjùº.¿øÅÇà©ÿ¦oza¥r4:Š[LCòªúK—ZO=Õ@Ô¦¨yUý©SÕ¼`qÄE ¦K"]¹Òa¾*E³E†ñX”ÕF¢Úûv¦Wó7[-?oc_+YÊ–‰°¸¼\¤e"â@€°#{ îw [Êëï©(­Ì<ñ‰V:Y7§@|ÂA¶£|¢ÃŽ™Zì­†ëF£Ñ°Û+ aPEòÔ`Gê ×ëÃÐ ‘òÓëÅý~qf“B±:£GHˆCcCÛƒÒ0Tf’$Þ0ԼžXÔDQ0ͱAiS¥’&‚i*ûóAûIÖõ ¢(É$§È);Ñð‚ JÓšßlÿ¯ã„£çyáža-åCÐ-Káù±Ø¶Ó ½/ró/~ùƒ‡?×8Z0á¯çÅiº-ûn_.K‘Fbf^%‰ƒ|†&²b‘FÍ^y6ÙÈATU ½:3Ý›¦ÊŒHž6eÃ, 6Î BXé‚ &Èg[ãœMÓ‘ïuÞ£—IÀ{Çå¯zè ºÝløø]¼Îž&„¼Î§'Êe™&<à*ÏŠEùÚ•ɲ¨iãKaÞ÷mÛc?þ>}^ÄÍÈUZ¼÷V£2ÄŒw|žšïé‰6w!®6[G}ÄÜl=euMòâï¬Åq<ÖtÀ‹}ÊžÅÀ˜éã7L0Šc–pX¿EÔ4tû¢mk¢È[–Šs²š¼»q«8°ç`r4ãMwìÞ'–ô'üó¾¨-Õ´#‚ nqHLOAAÄu–j¦ ÏðÃ^Šðp4aM0MÇîx,yc‰œmš"¦ ñ\9„ÄÑh¿ü< $ò”\Eùß!ÇÂ"¢ˆ¸LŽ­S”Sæ8»§’$è:~Qåù‚ªÊT$vš,,ÆŠÖpÇ÷ûøÊ±ÕÁq\·r‡m5" ä\Ö‚ N’á<¥€9ŽcBØÿ35¼¤("¾z„¿pY(ŒaÈ’$`q;(ì{G…U(㱡Âó<ÚÉ_ÄÄJýD¤þžAÒY oϯŸÿUmÓ _(p“B`kôƒ îõúa‡áÀ÷c„½âO ƒÁ~ùÿ†B㸂(ò‚PEQQI5mêjšŠ®Ëº®T*¦e)–¥Õjf¥¢Û¶^¯[ø«¨:AAG ¹=/Ã~ö' Ã~&žù~†ý^¯ïºã;]7DLªçEaØGòÛn¯lÛj6¬RUUÔuÅ4E‘LS1 EQDËRYÁ]WE´mUÓdE‹E¦Qq#ˆãtóív¯ÝöÛí-õ<Úí ÕòQ¤ašJ¥bV*F¥bdrù­9ã¼NÉT· ƒÁ°ÕòÛí Ùô67=¨« êêV+h6½|m9Qä+-ªV³ªU7«U£V³ØC®whG››^^·¹é®¯»­–·¶æ4›~^=_«YKKv­fÁW«YËËÅjÕZ^.Öj&9ÅV1‚•ˆ˜¨"_ÜãùB½n‹ã²Ó†¸ÝÄÓQ”\¸°ŽvÂÌ—.µXRzÞ^Íü++%ÊÄ ˆ}†yZ!÷¼t©ÅÎ\v¢+X\,fg®¹>‹KKEš»Gˆ'Ÿl|à_ø½ßûÛãÇ+o}ë+¿û»¿n·ëΣ>ûàƒ}êS\¸°nÛê«^uçw~çK^þò¢”øQáÒ¥Ö÷|ÏÿeÊ'>ñ–z}ÒJÿðwo}ëÇ^ýê;ßÿþÚ·±Ù#<{ÿýï{Ï{^÷Ã?ü¿íÏ; ÒtøŽwüöïýÞßþâ/¾áÛ¿ýkúÏ!®‘K—ZçÏ? Oý—¿üÜp8:uªzÏ=gà©¿óÎãäö:l$IúÜsíK—Z/¶.]j^ºÔºt©yñb+ ûÇI’püxåôéêéÓõÓ§«§O×Μ©Ÿ]#)ÆþÊ 0ÏòÄMˆìÙó™F–-M@ ›¿I’eâÀ™‹7îúº;áo6ý¼÷d¶L<+Û U*&­˜y¦ÛSðLÛíó%c»µ=æ´ÍßI-yå1 IDAT8rDQ⺑煞y^Ôíö|?rÝ7]7ôýØuCÇ ]7ÄCÓ§‰®Ë–¥Y–bÛšiªÅ¢fÛšm«¦©Ú¶jYše©–¥Ú¶jÛšmk–¥Ò™r™ÜOÈÁçÜÏð†ï& ¿*Á=imoq ’ô¼¹TЊ¹n˜¦Ct_¸³ßO=/„+²‰gÂ3>ã,K¾XÔÐ2m[•eÑ0èÆ, ­W´mM–EʲhY kÞ¸ß>â°‘·æ!/ I‚°Š³´#$ûÄñ‰„¾§é°Ûí!1O@þàlÙ=:Xè¿‹Eé]èc c|§$ †!£‰š¦"|©¤‹â¶;¡Åß·O‰8(½˜Ùc&æÎdŽI&ÿdí³Ÿ$¨ð}?ÂÏ4…jÈÑìÂ! dœ•Jc¯}&s clòeÚß¼×&ßíB|Þ²r;ûÀõ2EN¼Ô<§Ìlpö„YFàÓQI L;²Ûtxö™¾[¦ùž²ã=}ßyåëž§v©dP¬q dc¼~’¤0Z @K·Ûƒ·™ÁãFu0Y+Ö…‰L6DœÕòaQAÓ¶{Ðu?% %x¨HŠE½PಱŸÊjt‰"_,j‚ïÛÇEܬä‹Ìåjzâ~Ï Q,MSßßòà³ ú]fOÞÑ{[–"Š(J'躌¼QËRE‘·,m†æžÕ¨Cm°}û”ˆ£zo,I%IÚëÅè±QÑÁuCÜ™´8Nˆš Ò`¡ÀqBTmœñ^P åš4¯ë“ëQ¢È#:w§&‚ea@ÖuY–ªJAEHLOAA· ÓNjn¼¿¸ë†"—Û€ÜñixB æ…s;m1fwÎ #à8nÏ€Žã&^–˜‡é-dt…:ºØK@¬*j§³¬¬înœ$ã=¶9Ëêr‡¥UVÁXˆ¯Â÷‹x,ž/X–Æe5°ñ€ï]ÓT°Çe4MV/¾ŸÞ>€á›®âcÇ™ˆxbìu»!v€°ëƒ¯±qŽÓCU|­3Þ §ý>Æ>¼¢YY{‘´ÏÇw"fN–EI†Ãa¿?è÷‡¨CÐíöZ­ Óñ;^³x^Ïóbß³)I’A’¤³Û ÏEA–lÊ꺢ë²e©†¡–ËZ¹l”Ëz¹¬×ëv¹¬×ëÖòr‰"õ ‚ ‚¸ ÀÛqB óúýÿ(â–e0¶Z^Þ/¼“ýÄ™X™‘eqy¹ÈÌÂ;Ú|ç}Pÿ/â0àyQ£á¢bA£á5›^«´ZpÐÐг'‹"_­š•ŠY¯[µšY­š•ŠQ¯[8¨TŒjÕ,•ôüïs‚¯{m­»¹é­®v77ÝÕU?[--ј¦²´T¬Õ¬¥¥b½n-.Úõºµ°0vÐ×jæÁþ/neà˜Þ.šßvÈ«ˆò—v È_ ÊecOñâh4Z]í>óLóâÅæ3Ïl>óLó™g6/^lâÒ#IÂÊJéĉêÉ“•“'«'OVNœ¨ž8QYX˜ÔãqãðýøÊ•NÞ×Éô,3DøãÇˬbºè;çé â³¹éý÷ÿþÿþÖoýÕ™3µ·½íÞ×¾ök§7‰†ÃÑ_ÿõ3ŸúÔ#>øØåË­ÅÅâý÷ßýßy÷×}Ý飸£ÔíöþÙ?ûq<øä'jy¹4ñèüÙ»Þõ»¯ý7¾ûÝß½oÿ»$I_ýê_¨VüÍTøy‚ápôŽwüöïþîß|ðƒ?üš×Ü}Ðñ|ñýøK_ºOý_ýÕÓ®Z–ú’—œv¬\¯[++% ƒö¿p+Óéív€ÒªívÐlú­–ÏîIJd¾¦e©Õª™_‡dÇ•ŠY«™µšI§*qH€âSr¦Ÿ–‰çË3p»hÄóõ#±”W­ZTö•˜&/VžhiÓmoG[\¾2¥r¾ŽB¾’Š8¢°êLµ6q¦0_9îl·ƒéx›»kf§ª7+0†û~Œ~Ç ¡÷ý¨ßO}?‚âÖqz°8ù~Ôïr`‡Ã‘çE0¥r‡ŸXµð¼(MGód(‹"oª$ñYû—ó=<;}† ;*϶‡PÏN"™¼À1 ®eÛ}ßáp8‚àÕ÷cœà°eOŽáŠÅÓ†Ã!¦$ìÉ3Þ¹N°¾fâïqn;Êk‰"?q)„ s]W$‰/uY„Në3Äó¦nwÛ€0IÒL¯1bÎ’oÿà{ÞØŽsa4ºî,'2[&‚§Ò†œË[RU ¾oL·5MÂ(±Xĉ `ˆsdß>%âVàzMÞw\xÏ“›Œo3 M”XJžÚÓ<ˆ˜ÍõjÒQ4˜§øânvÇ·»µjªqKAÜhHLOAA‡ lQ`;ØzÇ&ªòrÙn=¢R°h… ìOd¯Ãa“/ ûqœî館Œ/¸bqKöm²( XÀÂÓ…‹Z¡Àaq;ؽÃCÇaßóÇQuÇkƒÙÞ}?F$" )çˆßæŽÏU¦ïf±*µù5ÐÙï‹ÕLM“ðµ2ùx¾b36º`3Ç×Í]jfǨá,¼Îþ|n‚ëFØ;ìõbDñæ=ò(¬íºJj³R«P̳ à èïùá“DXL±¨#’L–‚&)ŠhšŠ Åâ8b_VX£HÚÚ¶­æ‹ §é°ÙôòyJl å/µÛHí÷z±ç…ž'É ßOggð|AUE4-ÃP,K³,Ų´JŨ×íRI/—µÅÅb¥bZ–jY m‚Aqt‰ãA·äS[§W ®{æÉH’P©,e¿äó]Yb ‹¼aŒ”ŽH‡‡$IÛmG; ³ˆN÷P O¤µ/.í¼$‚Nö[œÑhÔh¸®jÖØ¦‹À+Í7¬E--ÁgMž‘£DšŸ{®+qöoëxG=ñ‚ É;.©ÆÀAÒnðè5n³é7n«å7›^³é7^«å3JJÕª¹¸h³Zõº•;0«UóªâªG£ÑÚšÃÔóLCC×åÓ§k·ÝVÇÏ“'«'NTVV¨<$Aì®^¼ØDÎôÝ;®é™w¾ï<þ‘‰¸Y‰¢äÃþ_øÀTUzç;¿ýðe×¾$IÿäOþñSŸú»?þãlµü¼`áŸþÓ—Þ{ï‹ï¼óøÑݶvÝð»¿ûq<øýßk¥2)Õýµ_ûó÷ï~ç_þËoû·ÿö;ös‹íýïÿÂûÞ÷‡_øÂÏÜv[}ßÞô1~îç>ùë¿þï{ß¼îu_ÐqÝHÓá“O6~øxê/\XþöÛÎ;sÏ=gîºëÄ‹^´tÐ#±7(vùrëÒ¥Ö¥K-<þø¦BŠ".-Ïž]:{véÔ©ê©SŬŽîuä¦'IÒ wm­»¾îà`cÃ]]í★⨪´²RZ^.®¬”——‹KK¥cÇJ++¥¥¥bµJù; ¾'nnnzÃá8% gëô"'+×GÓ"âðÀ6‘wÓˆc]wÚÎÀœÈuˆ'¶l ·#fÀ Ý;¶À =w³éOÇ…î¨çžh,P¡^·iàD9Ôíº¡ë†®åŽCÇ =/rœ=Š“eâE,5ËÒŠEͶ5ÛVm{|ŽX–Š;óÇH¾ nb‚ î÷®!‰#—nÐï÷®†aE `´Çë†Q”„a‚,¡±mMÓ$HÀŸy½¦I¶­©ª¤i’eØ=ù‡¨£&&ð¼=!‘ò%â8 ‚¨×ëÇñÀuCŒ`º‚~®©÷gXÂa®×õ±°Þ²T$¹À¬§ër΀/ɲX*éHe‚‰Ï0d21@‰|:´[Ï‹Ó4uœ­" ýþ¸HÃN•RÏ‹ò¿¾Û!›’yNe«[–*ËÛ*4°v+I¢e)¬¢Úù~~>Ä!$¯±cÇl:6á¹›xÂŽ.¼=Þ:¼=%3*4 Ç¦•b`¦{Öæ‘%bù¬jœ,xÌøÈØEò5òñ'¸ÙîHŽãà¸GƒGï4jÓ„ã~‡<_°,53ào9î³:T›‡ ¶S>„ ˆƒÔu£ÑhÔíöPµÕ_âx€É2žœÏÁ‡L#M‡ž#UÆÛÙ¶&ËÐ|˨˜…r/¸ÆÍ¶~ÓP,jT¸‚¸^@‚!4÷žaÒÍ–‰07ÉêÏ…I’ú>Š ÖÖ_¹ÒÍ:kkó<*Џ¼\Z^.;V^^.--//-—–Šõºu°?1çE››–ß±ºÒjùívÐlúÙúüÖJ‹,‹Xx_X°+ƒÕùÃAµjÖj&b/ âð°£@+yŸx«åOèç°)0C¾¸X\^.Ê2 Nˆ=Ã>ÔÛ¹Ÿ¡ë†Ýnèy[†îìgØëõ'^Á4>šwsïØ>ŸÏ¢7A8³«>àÄMÔ×ù’,dh·$å²A}ø- ZC²C>Œ ÷ìá6qÏŽ¯ŒlÛVEÌÀÓ§ë2´Ë8Ð4I×eÛÖt]Ñ4É4RÛ»s}¯×Ï¥äôãxà8!¬L¾CÀS·»CªÎnŠ1´[Xó cëÀ0U C…q .ª*™¦‚F‹ç@´·Ïq„pÝ(MS×KQ!B…üÅEò ɤŽ&ɸBC’ìb†Â ¶=V 2A*ÓD"Ð4UYLSEr«ßÀ~}??â0ǃ(B‚ó8µ9/ðEfkÀyš°R Ã!ÀCϋѰð$³5÷¶­ oÛ*òX„Vø|-klÄcò;hò óFÉ#R_÷íƒ"ˆ]§“‡C©¤á 3@±¨¡.ß‹¢€yô´àÛ4xöóÃ!nnv¼TMX¼Yþã5;¾ç¹~•JÚžÒØ¸Ž`ÂÎzo¢Cù",4MÌâ1E‚œiÄ}? †³ ¡ [–"Š‚cònYã¹<¦ð–5®Å˜¯­¨ª’aÈd·'æ}2k–(Ä…›­M1»=kÕ¬©cÀƒyýì! fåR‹:ZõÄRš7Ò°&ð”JT¶‡ âfƒÄôAAÄÍŒëF£Ñ°Û…ì;LÓ–ñê0ÜV +/Øjòý(MÇ®pÇ×OžýŽÙªº¤ª"Öb¡`š*Çq°†Á. ?5ß±ù„ŠèÇ¡::$ãX£D½Yžç)èí <ªg5ñp8ìv{iºU’¢D«@;Á¦ *r³Â•3Þ >qM“ò•' …B±¨¡¨Ï `Ûj¡P@À êX–Êó<Ö¬Žcš æûöYNXh5¶ &‚S! Ã…‚ îõâ8N]wä‡í„DÙ*NIÛÖEÐõq4ªiªøB‹E*yËReYDܪ, Å¢v+BGQây‘çEðË#“ryäüø~캡ㄮâNæ¡cH’ Š‚  ~4‡£$I'ö ÑØ,K-õjuË~X,ê¥Ò8É½Ž ‚ ˆC &ƒfù|ž'3ËOçãÍ0˳\Љ`)$2ã|>M”çiìDGápÔnÎX7ßlŽ57N¯Ýö›M7óIe’$T*ðÚ•ŠY©èL7L»hå‡ÈÓlúͦ×lzn«4îæ¦×lzëën»íO(fªU“««U«Z5j5kaÁÂýõºE­ë(’¦ÃfÓ[]u66œÕÕîúº³±áf?»¬Ê©a(ËËÅzÝZ^.å~Žï¡8¿!IR¦˜‡`ºÕò××Ñ66Ü0{y$I¨Õ¬ååb­f-.Ú V½n/-ÙÕêøK¼ŽÁ÷q÷Ú×¾ôgöþcÇʸ?IÒ/~ñ§?ýwŸÿü—»ÝÞ]wxÍkîúŽï¸ëöÛö¾^ŒF£Ÿú©ßxðÁÇþçÿ|ËK^rrâÑßþí¿zç;?þö·ß÷ö·ß·ÏØüȯ\¼Ø|ðÁwRöàlF£Ñ»Þõ{ý蟽÷½ß÷}ßw.ÿPöŸzjóÎ;ÔßF\wƒá?üÕóçŸyôÑgÿò/Ÿz$ _ýÕ+÷ÜsæÜ¹3ßø/¨Õ̃þ‰kÁqzLUÿøãë.l\¼¸‰yº(òÇŽ•ó¶úS§ª/xÁ"MÏ I’¶Û~¾R«?÷\‡el‹zV# ÿбŸ8Q¡ïúpǃn7€–Uvœ¨ô¹±á²çcï5À°Í7Qé“\ÞÄ!$Š’N'èv{ív¯Û ò5’;^·ÛãNß\¾TÒËe½Tb5’õJÅľUV8Ù,—uA Q1/ðB^ï80ׇŽå-öyg7[09M˜¸á²ŸvsSø4q¤añÞ8;òµp²t»=vŒÌ…ü¯ bÅ"ÎͲÔbQ›:× ªÃuÃ0DŶ`¹0߃ƒé{pàyáDMÀŒöº®èº¤ëJ±¨!qƲ4Øj2½¬i²e)/kšD»Äl²ÐRi÷Ç”÷ìÀ÷#¤}á9A°u0CÃÄ õº.«ª„f ˊ"ÙöøÀ²TM“aÏÐôØxÁ|vûã„q<í‚ è1AjÄ𥲔7üún¯TÖ ¯}±¨±7HÄ2MêØ‘§ëãÆORcbŽÓKÓ‘ç+4 OÓ÷ãÁ`ìÂc ¹Ì þp¸eÄ›ÓÖmÛ*ÏóÅ¢&<¬Ž(Š#Ë[¸È¥Er.DÀ–¥ _,Žux†¡È²@…'‰ p^dî‚Ý>F,ÈI P4b„ѵ㌠£ÑÈu£Á`ì7‚>ΣÙojšŠ( Å¢Æä’’$à”.TIÚ2N¢Ø‰iޝð¨’)˜ &`¶n–Œ¶[Q ¤¤åËZ°¬4 ófÈýrùhÛ Q U¡`Ék;>Jõ ‰ëòMlH|?J’¡ça.“`h‡šs(ù-r’¤¾GQ·dL.S!Ã˪aJ.I<¼ÞXPRUIÓ$6‹É›¾iߊ¸î\­æ> ߦ¹gSþßByÃPQ¾+[zm[Ó´±Á†õùèðá¨ÉŸÔø‰«˪I2̼Xãi{·ÛK’kP¬?Ÿ.ÁÈ:v8¸v{Ô¨ËV¢dÓT0A3žÐÙÛ¶&Ëùê>:tjT¹ â0@bz‚ ‚ â€É¯ÐíY0|¾ªã³V«9Žƒø{þ‚á³÷rØñ¾}b·8¬ÁLìäMïÕÍÑœöh*sîçÍ_š~ß>¥#V3±í±ëFaØGìr¯×ïõâ è÷z16±ð-³XRÔ–`®i˜T–]W{dYª¦I²<^”×4 áJ†¡èº¢(Xå”'Š ­ôG:+’'ì¨ù;g{Q%I´mEÓYeY@ `¿ŸöûI§ØÞ ÒÜóæ@¬T ÈåËe=ËäÑ‘±S*éd¬#‚ â°8]Ç ƒ QôQ‰‰CAÐwœ^ÄxÔób× ù±[í(ÄÔš¦bš*²àJ%]Ó$ìdcܨir–#7N‡ÃP_jŸ?‚ n4p@OÈh¦nn›šI’P©»éip“h‰iµüfÓo6ý ¨«½ÍM¨«ÝfÓoµ<¦†E¾ZµêusqÑ®VÍz݆q¾^·j5«R1ªU“°Ž.aØ_[sÖ×µµîúº³¾î®®v ÷Ê•n³9nŠ"./—––Š++¤ž?, ÃVË[[s wmÍÙÜôVW»››îꪳ¹é6›>{¦m«‹‹ÅZÍ\Z*ÖëÖâ"~Ú v½nU*Æ ú Ûíà‰'6ž|rã©§.l<õTãÙgÛÃáˆç ÇWn¿½þÂ.¾à‹gÎÔo»­¶´T¤Á-A\wƒá•+Øç/_n­¯»ì–N» ãºP(,,XÌb‰‘äÒRñäÉêâ¢MûJ±Q”¼÷½Ÿûð‡ÿä%/9õŸþÓk_úÒ“Çy^ô¹Ïýý§?ýÈŸþé…Á ýÖoýêûï¿ûÛ¾íŽwµ=(Þÿþ/üüÏî£ý±où–¯šx賟}ôMozà§ú¾w¼c¿­ô=tá{¿÷C¿ù›?1ýWÓŒF£ÿøÿŸ_ù•?}Ï{^÷†7|ä‡~è—|?úüçßy°qãØØpΟžú¿û»ËI’..ÚçÎÝOýw'ïÏ‘&o«g—/·‘©ù©SÕ³gÏž]:uªzútݶ)*ãˆoZsŒí1Ú¿r¥Ã–òŠE—"gýÑ‚Éë'lõ.·Ö×× Ùó§åõ¥’–¿¹²R¢à+âpâyQ&¬«êóòúv;hµüN'˜‹z¥bàê.c{¬3íVׯŽq³;ÞÃÖè'„õÓ ûRI#=qÔéõúLaÏŠ=@gï8[ ûì á„%Dy¦°Ïþé¶­á|™¾Ÿºtb6Óz¾‰l&æsœ-ý=îßM±2ÔKHØÉgî ­Näì ‡'Ÿ21ÈDóý8Š’ ˆ},‚8ŠAÁ æû1äÛö¸jJ¶0ë÷`zÞ–à“š_ÓTPjÅ0¶U››*;·Íý­i²ªŠTbËÇ IDAT͈¸Ñ츂:áDšùÐbFÞƒ´ãRêna¨V©˜´E\-(Õ-1 P.£—~?õ¼qaQT°Ë 1 5èõö^˜ÊgXy´s¬²²XÖ±³>Ÿmöó!‚¸ù 1=AAq8N•ñ°‘‰ByX@ÄÕŒÅâÌ ¾µ:ã¤ÅóÛVQñ^’x]W`šf®pE‘t]ÆØø>ûE­PàŠE/Âó˜5Âq«åŽ(È-KE†ŠÕ(4´+ì—cá aRx>éxöfù ècÑ0o–Gÿ}Ï Ã0 þㄽ^Üë%½Þø™»m‹c%(ö~Ðêbʲh2zasý€a(ˆoØç8Î8M+ûv»Ž=/ò¼Èu#× ]7D?9ñ릩X–fÛªijŠ"Ȳ(|¡ÀF\’¤è<{½>^-ÿé _.땊Y.#̬Vì¦Y.ëÕªY­š´œJA㉆FÈð ‚ØuCôz±çELF˜!ž¹c,2t]±,Õ¶5Ã$gÛše©†¡¼jЦɆ!cZÓdŠ"ˆ[ ×ÖÖºÌ\Ðh¸ëëîö›N¾Ÿ$” àš¾I¶PbG’$]]ínl8Žnl¸pTA`4ÝØl[[Z*²FÅjP3»i@{¸|¹µ¾î óabâN§‡µqAà/çeÄÙ¿âÒRQQÈ“rŒF£ÍMsÓeöyœ¿8©77½áplÃÎbv.ã`aÁ^XدtöŸxbãñÇ×/\ظ|¹õøãë/6Ñ´êu뫾jùÔ©êÙ³K/zÑÒÉ“ÕcÇÊd!ˆëÈD'Ÿ—T²Èiž/œ8QA'û|ÖÕS'O×ÂC=ñ¯ÿõ'ºÝÞÏýÜý?øƒ/ó¼øóŸÿûOú‘/~ññápô-ßòU÷ß÷+_yG¹|³ùèÁüÁ—Þüæ_ÿûðu¯ûú‰‡¾øÅÇø‡ùMoú–Ÿû¹û÷ù¯Fßñÿ‡mkÿø›÷ù­4ÿå¿|æøÿÞýîïþÑ}y^ÿú_ú‹¿xz8}ìcoúÖo%¿ÿÍOÄ=våᇟ9þ™¿þë‹N`Êw¬œ;wÛ¹sgÎ;C•oâx°¾î\¸°~áÂ:³Õ£l—³ÕŸ“×çoâ¬ÑÈ×I\½^>eÏCâ rLú0î¹n„' b÷»nØëÅa˜ìf‡CV×e$¡†bšŠmkˆ-4 uûM„ªÈ:Ùçÿ>q¤a†ú^¯ËòÝÐnóhÞQ” m*ŽÈ¥Ú16½RIC3F…ø1±š&#&rpËRf¥i­"×ÀŽ^{˜ï EI&÷z}<qœA?"V¦q]—E²m"T”a€óqÂ…—·ãA‡´AM£âŽÄUàºÑp8DY&4ì$IaǃÿîH[vÝ(IÌÓʹݳÓÛu]–$±T· C–$‘Iº™{w¾hYŠªÊ4Ç$!ùšRFTœD¾TÜ9¡L¢ç…,–rV€j¢ÿgµ¦`Ge¦Ô|%*ҧĸf9N8l]\7 †Ìè‚Z/®bÚây&ÔHßC¥®_W:ÛVUuœsý+­Asœ™a™õ^QUɲª¹EÜPž§à›¥lL³ÛujÁ7•K$ö×ø¹ça·ÇC†¡RZ q  æ\Œ=uýþ “ü:U¾1»nÈVY{½8ŠÏ‹g8ÇLSAVg6*]—±6¥i;ÔŬíó§Aq¨ 1=AAÄ-›Ÿ'I ­|¯#ÂÉó¢~? ‚±ûÛ÷·6ݱǀ-ù~«¾înï‚åW¶‰.Ë"û²’×"ªÏ¡¦(&ç²,2Ѽ$ñ–¥òËMå8N’ˆæìZͬVÍ,_Ñ€w¾R1J%ê- ‚ ‚Ø?âxÐíHëÝq ‰lF¶ ì8= &§_ŠU2g‰¾,ÆÙ¿;ÉÒKDž$I!|i4Üv;ÈþùͦώÛí õnšJ­få zµÚxž…ÕªuPψÃÏUzçÕ¥¥R±¨1-yçoJX3`M‚¹‰™ÇA’„••“Ÿ:µ% §œ™ƒ"ŽkkÝõuçÊ•ÎÆ†»¶æ\¹ÒÙÜtWWfÓcû º.//—êukeeü‚i8è÷ÿ,^[ëþã?®å+«_ùÊÚW¾²úä“ D W«æÙ³‹·ß¾ð‚,¾ð…‹·ß^?~¼BÁîñüñýøÊ•++²c'¿c‰tõå²AZ‚¸.DQòîwê#y赯}éÛÞöª/~ññO}êïþöo/ñ|>ú{ï}ñͽ_öè£Ï¾öµÿãGôåïz×wM<ôä“ïú®ÿó¯8û¡ýïûõÿƒ?øÒ[Þòëø‡ï¼ãŽ•}~ë£ÎûoŸ}ÿû¿ð®w}×g>óÈ#<;¤‚ÀŸ=»ô…/¼“4·—.µÎŸžú'žØàùÂí·/Üu×ñsçn»çž3gÏ.R“¸™`ŘªþñÇן~º—“¢ˆ§NÕPZŒÙêOœ ÉÝÆqzùV˜S\¾ÜZ]í²•T)`ó6³ òrGŽáps}«[½a}£á±ûÛí€=!a•б¸hW«fµjÔëv+ªUsaÁB Þþb®Á_/Ëb¹Lþzb?˜ßb?íæ ‹=q 2ÿ)Ójù:ÚéS&å5qÖÔë6ÍqˆkÆ÷c˜ë§†I¯×÷ý M½ÞØqQô]7ôýÈ÷ã ˆƒ ?]€ã8IP†ªÓTLS… âoÛÖ Ú›ÝÓ@x>°þv÷\­d"Ïl6ý4ÝÁÎ{þSUÑ÷ãÍMo}ÝÙÜôÖÖº››þúz·Ñð66×Ý:­LSYX°YJ!܈µšû|­f–ËÆ¾6AAÜüŒF#LvôÈç“[òA6»ùå'ªíè‘gi-Q5ûÿ'âhÑíöšM—FÃe¾Ñð`ui6ýnw+wTùJÅ€ÉW* }•ËF¥BnPbÒtØlzÐE5îúºÛlzkkN³é­¯;ͦÏÌ…B¡V3k5³^·ëu«V3‹¸gq±ˆy=%Õß4ôûƒÕÕ.ÜåW®tÖÖºkkÎêj·Ñp77=kµê–.m$žzœTŸ‘ð|¶¯/Ò×îë ÷÷‡{{Ãýý¯7ùüz½º¥ÅÒÔdnmµ¶´ÀÅdÂH’é TËóùâ>_&š|¾øÐPÌç‹“8O•JîñNƒÓ©÷xŒ.—Áå2:zÇ„ú¡i ¬ºž[î”*¼«Tƒz½Ún§IõSƒAe·ëa‹^¯v¹ µ‹L „²c2år~=%èÿçñ×£Ý/&Çbq2ÈÌä5, GGšeyáS†6ù©¶ƒŽ šVUÚg¨_ù˜i‚Œ# ©O¥2‰DšeyŽË‚L9‘(çÚ€‹òGà'‘Ȱ,_ëa-¦^¯ÒhäR£‘Ó´J«U‚¶^¨°'O!×¯È§ç³ é<_.Æ"W†áIµÈL¥²,[~CUV¦U TÒé”Z­RàZdüétJ(Ï]Ë3 ãK­õcíU/x–¦F7¢ #ØGÜn6ë°T$òi(Š ÂK§ó ä änçrEŽKó|žBŠ7Èî†ÏåòpÆ÷ýh‚êk‹7ª8œÝ¢TÊT*ièt*œHA¦2,Ëçr…d2Cü`½¯RjÀÁ%0$ä2Э–媣¹ÔÀ¬×«är‰Z­ÐérùYs½N§R©Ê²`Ðk¢Z­R.—êt¨D@Š¢(A¢ σ–a3étFÜ3,ŸN—}Ç G±tUQ[¯1ñÀ‚ìFßJ%.J¥L£Q . :™.v d:¥V‚cbãI§Óy˜nÊdÊ—§L&Mp\p\P£}¸pœ¢PHa¢P”ïâÔj9ŒÊA” ׯʡ¡ i\)F&bÏdªëÏUnÀÊ'y"¾‡a;y)‘à‹Å‘Gîjµ‚¦•B­V¨Õe—ôyÒ>×ý}vþjòÿ)äªnQ`*µªæ"œÌaJ–çs<ŸÇy˜Ô~&éÕÐ¥Õj¹Á V©djµ\£QVNã0[¾ÃÑëÕ¤«Oþ?‚ ˆÓ#‚ ‚L,°L&Ó‰ Ïg¡–Zeêüì¸VÅ8. @0|톭ª¼³\.©s˜F­¼B!U©d°Ê¥×«d²³ZyšVÉd •—c ͩԢL$2©Tc`FŠL2 ÏqY¨[§ ÁqY†áG+A)“IÔj…F#—Ë¥°H#—K †òZ)%h4rµZ¡PH!XAXR§SÊåÒúêxf6Pé=‘H3L ÌòðT°ôh°lzÄÓM+µZ%LKA ÆZ³<™¢ŽfùÑH§s`'Å|,ÆÅb©XŒ‹D¸h”‹F“ðT(å‹E`'45F£Ú&“ÆhT ƒAm0¨ Àüã‹¥PˆŒz½ñáa¤óDCŸJeám‰ØbÑÚl´Ã¡·Zuðètê­VÚn§Íf-ž„Aù4€9Wè‘úåI¤þýò2™ÄdÒTyä…~ùª(|ƒ¡ü*&™ òɀᨣQ.Ý<‰$ƒA6á¢Ñ¤Ð@a4j,­É¤±Xt6›¤ó•_Z‹E‹N^dŒär¿‡ÃIŸ/‰$‡‡™Pˆ…q}(” qojµÜé4½ÝNC%9§So2i-­D‚©h3 ˜ð xÁ 1<XxL&©ÁLv;ítê].£ÝN»Ý‹E‡]¢.p\fh(68õû¿¿ì‡ÿ8Æ­PHNƒÝN ÿã½Ë¥Ÿ:ê¢t:wôè`OOàÄ ?4 ÃlÖΟïjks,^ìiow´´XÑ8† J©T ‰w¤óL À Dü~†Œ‘µZœÕ+Þy}S“Ùf£íóR/žxâÀ¿üËKjµŒã²J¥ìÒK]yåÒõëçM÷ͱS*•öìùQw·wß¾¿«*h],–öìùá‘#ƒ¯½ö\.ÃäïÛSO½÷Å/>»ÿÿÓÒbü¿>ÝÉdò·Üòø{ïuH$¢… ݯ½öPw ™:äóÅÓ§ƒ‡õ Åa€ m¡j4J4Ú#ãK­ü´Òà3™<œ®¡2 £dÄO–Ë¥*ÕY/i@9T(,ršV)•ål!/Mò¿‚|2F¬qBò­ªŠ£S±`Ëy* PÇ=H„Iú4„~aØB’°Hr–R)Ój•8uÌZÈá –åy>›NçX6=’õ>Nçˆìµ#nŠ¢Äb‘NG ÅɵZ%MCI9…Z­0T0*±FeÀŽo,Ü‚L‚î]v|ó|.7PÊŠL末ÈŒvUO·Z #ñ³Roèíjµ\h=¾±ç#“G.WH¥2ñøÙ ‹¤˜"˜”  ê$¨¼È0©óT[„Z&Â/ìäÄý])á í”9Árȸ@t‚0Ë A¼ äå äù,Çe °Ïgk?“¦•*•BXC ÎA?‡YVa÷&³¯*† ȸ€bzAA¬× k•<1Î —uÆù‘¨òhP®TÊôzµ°p+Ldhµ  Þ¦“¸J%W($4­‰pŽoúQ™Ë$i–Mìi‘PÅJ0"„¿ðÉdæj?M¡BK%<«¼@óe0w@Ú4­"ópŽx2SGUÊY±iã†P¢­Õ€Ž¶q‹A³Ù|$’ŒD¸P(‰$A@'À8 %Ãá‘ÂS%•ŠFME:¯65f³ìóõ|yûh1“É{½1ò30…Ip‹E6 ®y‡ƒ†GHþ´ÙhTÔ!‚ 2vr¹);iPš(™LÇã<Ç-MãDo~P‹–Ò+1U#'{P*ˆ8‘É$“ÿÅ™‘°,?<ÌŒ¦M-äÍPÓë<Ú”™=ÔEÆp‹Wœ³eí,i §_¤R±Ûm$£xáˆý³3˜|¾èõÆÀD ²ýýâù"§&µZúr¡˜<_x:ª#‘HÒë Å¼ÞØà`th(64õzã±oÐh.—ÁáÐ;z·Ûh·ëN=l1›µõÝùÉå ÝÝÞ#GêîööôøÓéœH$jl4uvº:;Îùó]ÍÍœcD±P,–£ã< ÷ŸðHnhZÕÜl!êF¼ú#ÈÔ„eÓ/¿ü—ï|ç ¯7&‹·lé¸òÊ¥—\²`§?~àk_{é…\¶¬qÄ—ž~ús«VµNþŽ•J¥mÛ¾µx±ç;ß¹iòÿút'›Íßzëï¼sºP¨+‰D¿üå=6´ÕeÇ©L À=:tð`ïÁƒgŽÌfóv;ÝÕÕ žúeËš.hzÿèÑÁÛoÿï¯ýšK.Y8qûŒL “‚©ŒžOO ¿?ræL0™ÌP%“I\.Cc£¹­ÍÑÞŒ†ƉͲÙüð0C†_ŒÅ¸h”‹Å¸X,&#h—ŸF£©H$ɲ¼ð·´Z…ɤ5›!^Tc6kL&­Í¦3™4f³ÖlÖZ,:¦×«u:ÐÖ+A—LÓ*¢­‡´2ˆ¾aò¿22ƒ©òº ypÒ&FWaŠ\4ʘZKÎØÄâ*ô´Ž˜(§Tb:$2ÎÔzñâñiƒ2 ¢ô¡JA‘’t*•©Íý¤(J.—j4 šV‚ù„§Û[i—bƒºâ‚TÒ´û62qÝËò#)€Ïy k«Nø£}2M«ˆAh܆-µ/U¼¨ee¤\.ÌùÄ@½P¦B)ŽËd³yŠd2¹xœ'e$²Ùò2™|2yÖ5<ڇñ ×«Šò!£PHÔjXSU*¹ÁPöN‚JB¥’«T2G@¾ØdþS ÈTîåª ? 5®ÈŽ3‚Ô˳ÚŽËŒX»E¥’ƒÂ^¯WW\ör’’©VÃ@»\pKhqQ«±^ 2yÚrP¼ˆ¼+eºÒ—æ¸sJv‘2]#Ï•J™°t{ÑžÔVTÂ`‡$&cÏG&“s-ö™T*w_Éda‡¼9“HðÅâŠ]8Ÿ“¢¡ ×h”M¹Û +/’§X_&†úDbdÁ=toèÕ•eÁ= ©Èå‚»¹ÀG'”K”K8@+Ï!B@1=‚ ‚ ³†IyŒÇX–‡åRžÏUç‰+Œó#~ Èâa®A¥’ÁŠLº‘EÓsóå·ãü$ÿ ãK©TbYžaøD" Ȳ<Çe&U1ËgY–¯ÌäfHö—‰D $d/ˆ8Ò»P¹îlUR˜´ÅRØu$Ÿ/B],–"áÎñxJú§@!:â²1@Éô²‘L_ 7Ξ`‹T*ë÷3¡P"`‚ÁD$’¬è¹H$ ±Â92™Lb6kM&ÍFCÃbÑZ­:h›ÍZ“I{A5KÃáä™3ÁÓ§ƒg΄ûúÂ>_Ìëƒ xU©”y©Tvß¾î_üóoûa.WHD·Ü²ö _¸\§»€%¿™Ä±cÞ+®øÎlè¡U/ýå/»wïá‡wÝyçÆºìÛ'nºé¿Þzëï;:œuÙéK¡P¼÷ÞŸ¾öÚÑBa„n‰D´bE˯ýÀäï2àùì =:tèPï»ïžŠD’jµ|Áw5  IDATWWkWWËŠÍF£æüŸðßÿýö—¾ô|©D]rÉÂo|ãZ‡•|Ó°ÕŸ8áïé €¯üôé „>ÊåR§S?ù¶úl6?{‚êÔéôzã>_|x8>4†F<b!ÏV*Ûl4„<¹\—Ë ·Ûh2}Ìc‚Èå R©-ºÏg#.d#‘d4ʃl8œŒD’áp2JD£I¡¹^$¤ÛlÖX­´Å¢5›µV«Îjՙ͋Eg³ÑS?ì¹P(bH-"üõ`«‘}$’¬íSÑh2J†Ã‰Tê¬øU¡šLZ‹E Gɤ±XtV«ÎdÒí8s‹L(¥RIˆ§b±T<Î Úgª$2 §7™4µÎz0Ú“§P„Ì$FSØ×n U©ôÂÊ=çQØ›Í:©ï1I¥P(&“i=M&Ëþz–M“(SØÂ0<¼JbSk?J§SBÂ#X–„61šVéõJN¥×«ôzM« w óbñü­$ˆ~ {s\&•Ê$i°,Á–ó›"!3ŒÐoA¨$LÐ3Ô$)O§SNýÁ,2MÉ狽—¨ñÒP mØùì—…ÞžLf {½öÕj9Xð…FpÍ ùì“ÿÝ‘ÙF&“O§³Â$BÁ=X¹¡1ÊKÙ 9Èd"©‡”yA[Y)ðP–å üzJµZ¡PàÒ2Í€ãˆaøl¶Je‰L6›õD&“O$àØÉ3L*›ÍƒíDè„B)#~²N§T©djuùHQ©dPËJ¥’‘ú(*UÙkíÊ;Ñk g§•F,²“KP²E¸=N ÅÚO»Ðâ[J¥L©”â¼2™Ô–檔àÊžgtòéd2]+µ‹EÝ R%Q£‘ÃÈE8´-ƒJ­VàÔ2ɤÓ9a ˜§3X2™®O­>[·²ì-'õ?¡_Á2N!M8.!û‹“,ñ8‰KNÅã0 “ª:«H¥ba2DíÔ"DgÒ´P!ª¼ OúŒ„eÓ ÷ûã¡PÒï‡B‰áa&N 3d\,Azä¹Aæ›Å¢#9?V+ýiþ19.ÓÛ>s&xæLèÔ©`ooèôéË¥­­Ö–‹Ûmlh0½Å¢ŸAA¦P•J¸7âÊø—+Ëx©ÚðY‰Dl±haN˜½ËoU)md#Ž©# ›D8¿Ÿ‰D’Á  %ÂáD0˜w ±~SEÓJ«•®TÓY,:³Yc6—•%0²«ãwA¦/©TÖ狃ìðp<`ý~&LTf’£%‘ˆ-øÄÁ_</ÇK)•2¢ÜòxŒ.—Áé„¶ sPëK À D"ÑÁÁèà`dp06<‡8N©Tìpè=“ÇSž¦û¼ÇcšF fétîèÑÁ£G‡àñôé`¡P4›µ]Ô´x±gñâ†Å‹=v;* ¤šT*;8 á¼ól À 니ކ“°ä ©5âpè§Ñ‰AŠ¢’ÉÌk¯}ùå#œHÄÛ·Ï?~Ü›Hd~þó»,p×{ïêF&“¿ì²Ç”JÙ /{_]þú´æ½÷NïÝûd<ΗJÅÑ‚¸_xá®®ÖÉÝ/d0ö<Ø{èPï±cCÅb©©É¼reKWWëÊ•-mmöZïóÝwÿäÕW E™L*Q<°íÁ/Æ)”ÆÇÚêÛÚmmަ&3ØêMã¨ÿéOßýÍo>øâ/_´È3^Ÿ‰|r¹‚ßÏø|åé2ÐÖC#åà=*•¦\`Íã1z<&˜I›ÐÓ›oÿ×}éóŸ¿äŠ+–¢!·.$U}3 •_IMbŸ/.L·®-Bl·ëa‹Ý®w»õÍ8=pàÄc½qß}[¶o_€= ¹ Òé\U燂Üä ¨Í(ÒÊQ †þO¼Æ°V5u°üÀáÃ}wß½ù¢‹šê½/È„gr˜8=;J@¡€˜>ÖÇm³ÑS¹„ÌUWýÛÕW/¿îº*.ö!O"‘†¢ “ŠFS•<Èá*T<žªrÅ*•2(í ×“b*¨÷`0¨ŒFÑX.1õ¥~ï¿ßûýïÿöÎ;7¬_ßVï}A&Èw#:{’þ–Lf8.Hd„o ù˜U¢VËÁVâo¢ÿ&:]9I §×IøÑG_ïë ïÝ»qÉ’†zï ò1 `ô=Çeް³y Ä”W›ï)•Š¡*ùþz•N'ÌøSét îìêò•?=œxê©÷î¸cêU¸¸0¥ÜŽËB—®tuRŒ$¹«¤6Éy¤xR©X£Q *FQ‘×—«5T&S$1åÕå‹#ÿ÷ÿ¾êóÅï¸cžÏ§¤Ïÿ)xNS©,ä@ ™Je†O¥2©T–ãÊÛG“qK$b­V©Ó)@^YÛÅOÚjµœ¤ðCE°Cμôœb±´sç£wÞ¹ñª«.Â@©L¥Óå̵Z_v•’’严Óy–åGôËÁ4Ét«uMŽæ¦T*e4­šÊGŸ†XŒÛ»÷É[o]wÙe‹q©.OªZà;N$Ò0rñ8Çeà~ïüÅ·Tª²‘¦b¡)·á²—0A£SUîðáþÇûÍÞ½›6onŸ©g’F6›‡âˆÄîEz;¼p\L_І¡MíG)R¼€‡X¼‰ï^%½nü¦×Ôh”J¥nø;îØpñÅ °àúÔ'—+ÀŒ”j€)VÁÓ4ÇeanŠt{†á9.ÏW×/!Œ^¯ÒhäÂi¨s'¦”dnÊ`PiµÊiÝIêýÞ÷öíÝ»iãÆ6<ÏO5&U)Ì%³R•Û›49¥WNòåj£#ÊU*¹NW‰“ó6üÀÙ»vãÔ_J >_üþá¹½{7®_?¯Þû‚ ã ŠéA©'<Ÿ…Qw%„¯’ƒWiÁGœx¢i%”‚‡± TÐ ˆ‚‚§dM}ò¿,2™‹%ˆ¨†N§ [jŸV…eˆD¢JÀœ²-WžÖ!¡uƒšl¡i.ÙNYÒé\,ÆÅã©X,hôœ§}u7¨øåU•â³÷ŽO¶à)¥–B¡ %††¢>3<÷zc~?°¡PÂïgÈâ™L&1›µ‡ÞjÕA¢ŽP!7¾É9¹\áÔ©À±cÞãÇ}ÝÝÞÓ§CÃÃqŠ¢Äb‘Çcji±´¶ÚæÎµ¶¶ÚZ[­n·“ÓAdFÂ0©Ñmò#Q1ã…óØäÉFa9è™Ê Èt'™Ì€F¡bœO‚€>Jl8œ Ãd©T fy‡Co6k-­ÕJƒnÞf£-­É¤‘Ëqbù„äóÅp8áõÆC!Öç+Û燇Ñ“tA™Lb±è\.ƒÅ¢u¹ f³ÖéÔ[­4Ì*X­:ÈÏ …¢ßÏ Å£ƒƒQh E½Þ‘˜ƒÿÈí68·Ûàv].£Ëe0™4õÞýÙN<ž$úÈè£p¿-“I\.CCƒ¹¡ÁÔØhr»ðèpè§i|Tªòa¥RÉÕj9Qik4 мÀUfZh^úúÂk×~¢(“I³gÏú›o^ãpèë½SÈ´§X,%|"‘!î×J±– ÇeÁe Z*Ø,¹»qÀBÆ :*_‰‡8a§šö·¿ýðæ›§(‘Çc¸ûîÍ×_ß5õÏ È'ƒŒJÈPE¨ð&å¸À†œH¤á͵—RvN(ÞªUm‡KÏT›öI$Òíí_¤(ÊáÐïÝ»ñ¦›VKÜ2ÕH§s•Nž‚)Õƒúʘ½¬Ñƒ§µµè €(qÖšp OÄh`Û›:þûöußvÛ)JÔÐ`¼çžÍ×]×5¥.CÈ'£ÊhOj“^ –HèÞdcÕ‡¡ŒÈ©»²Q }ž$§æùüøqßöíߢ(ªµÕz×]›¯½v…Z= ¨ ŠéAg‰4DfÄã\<Î cU‰%œhèkƤžLw¨žêõjx–´atAÓªº|M¤^$“™h4‰p±rà‡-Ñh’ô±Ú¡)ô(ýá(DÿŸ’¹œ¹ž.äóÅH$&C¡D(”€d§P(ráp"LD"ɪÂ:’ÄÄ“ùJ¸<Ù¢6ÔXwñc)•JÁ`Âç‹Ç}¾¸Ï ýÐP,b¡’§H$²Ùtn·Ñn§ƒÕªu: ‹ÎåÒ[,:‹E;qÿÎkÝÝí=vÌ×Ýíýè£ál6/•Šçͳ/Xànow´´X[[­­­VÌ@CAéH6›Å¸Qlò<Ã”ó‚ ™óÔØ2”J™B!%y2¨˜GdêS(ÃáxâñT0Èúýl0ÈúýeW‚°ú#M«=„ ±d ž÷OI>_ôzc šˆÞä­Ñ(`Án§AÏ!lc?œU$éÞÞP„t˜þþH„œ» c€ ÄÄ`(Öë1.³þ‹¥¡¡hooøÌ™ÐÀ@„˜èY¶_xôÑn¼qõø~>Ëò}}a¸;%úˆðN TT¼óz<½#ÈŒ'—+üæ7<ûìûo¿Ý“϶lé¼âŠ%—\²@¯WÇbܵ×~¿P(=ûì}‹¶Þ{ZOº»½—^úØ×¾vÍ-·¬­zéøqßÎ>üðî½{7Öeß(ŠúÊW^üŸÿùËÿø¥é~#W_ŠÅÒ[oì±ß92$‘TëéýëV­j­×¾!3ƒ\®pôèàûï÷½ÿ~ßûï÷¬J%_²¤¡³Óõä“oW½Y"‹¥›nZõðû1tj¶Á0)PÕÄL•­¾¹ÙÒÞî€y˜±Ûêo¾ùñßýîÃR‰’É$ù|ñ²Ëá —Í™c›”/„|ZÀ¿ Tˆ Åàj%“IL& ™£##¸–ëØO _ýêK?üáÿf³y‘H$Q‹îþû·Ý|óœ ž^Œhë&kR´Թªn²E.—áÓ\€~ðƒß~ó›¯f³ŠI$”B!½ñÆ5÷ß¿ÕnG_ 2I0LÊïg!ˆe,òzèÿB[=„©TÕ§—×ßÿÏ~ýë?•J%©TœÏ—œNúÞ{·ÞtÓjÌ‹FFƒãÊ {pÖÇb\íSHßæÉdˆÃ'Îz£±ì¬†ëšqœC¨¨÷Ê;Ï׬™s÷Ý›·oŸ)ȤQ*•*uΩ÷‹=|¢Q.çÈR) TÊÈQsîás6«j?Œ¯bõg?ûÿøl¡P‰Db±H.—ÞtÓê»îÚ4Ë‹ƒ" $„²,ϲ¤AÚi–åãñTÅAÃ3Luê(ñÎдÒ`Ð *èóz½ÊhT šJCm0¨¡¼â8rûí?zýõcE‰ÅbŠ*éõê›nZ½wï5Ìrˆ& 4‘‰ÄÙî O‰, úy"ÁCÆœ­V!ŒE§iaI5M«„qédÐ~üñ_ûÚ˹\¢ST*Ù_ÿõê{îÙ\¯ ÇÈÔäwðÃqeMñ?‰½ò†4Çeâq>™LW-ZQ%pÞ•UõD@º}EªÒëU'‹¿í¶îÛ×MQôvšV}æ3kn¿}=V«Bªw*•M$Ò,›¿6œóÁÁ]igAÌ]igªnàâ©ÚN=…PLÞ9Ñßq` ²zõW¡-—K³Ùü²e÷ܳåÒKã:>2Ž@ÉðÚ'“žÏ¥Re¯=J—†6ÃðpLkx4¯=¨TÁ”­Ñ( 5ÔG!5QhZ©Ñ€RF&bF1ieHŽܹó1hüÓÚµsn½uÝe—-žš5*°F Ëž#{%ƒôD"Hd*–Øtíµ Æã4]­°‡;·J›Èa•0œ™ oôüó‡|ðçÅb‰¢(©TLQ¢;ÞsÏ–åË›&è/"Ó‹B¡˜L¦a`BÊnÁ°tö‰D†ˆÉqQ«/S©äÂr\põz…u`P3î“QB£«Vý ´e2I±XÚ±cám·­Û°¡mâþ(2]H§s#ØÏù‰ÇSÂK@í]–L&!½œðAðMÓ*½^I*ÏÙÚ¥8=ýô¡‡ú%L,Ày~÷î¥÷Þ»uþ|×Dü9d*Ã0)rÒ&·1•’ go]‰Ìyê4ó¹ÐVOÌ“•Iª²3Ð`PÑ´jB׋ß}÷Ôµ×~ÚR©X$¢víZö¹ÏmëìtNÜEIÅô‚ ‚Œ‰L&‰$C¡D8œŒD’3‹¥ÀîÇ0©X dô©ªõfˆ‚˜ £Q]¾–óävŸ˜èëõ‘©@8œ ‡à¯Hç90ÎG£\4šŠÅ¸lö¬J²› dÙdÒ˜ÍZe^]¥žGáË4…eÓÃÃq¿Ÿñû¯7ÆypÐG"ÉH$IÞ)“IL&­Ù¬±Ùh³Yk6k¬VÅ¢3™ÎñÎãjú'ƒeÓýýá¾¾p¤¯/Ü߈úý ™Ð±Zu‡Þé4x_É$>xñCí¸ÐÏ!7ädÞùª:4Z­Âå2‚¬œÞᮇç2KÈå û÷ôÒKyãîD"½bEóu×­¼üòÅF£†¼áºë~0<þùûg¹&£P(îÚõ]‰Dò ÔF;Üxド×_¨^Ëß¹\aÙ²Ú»wãç?I]v`æqðà™ï}ïÍßýî#‰DF©T¼jÕœgžù\½w ™Q FAR¿ÿ‡ýý‘ÚuŠ¢$±^¯þÆ7®½âŠ%“¿‡È”¢ÖVòd€ç³E)Ò¦¦±ÕwuýóÐPŒ<kÃå—/þ‡¸¢¹ÙR‡ïƒŒ¹\!MO=)*Ù×"v²*}ƒL{<Æ*[ÇÝwÿø•WŽ ÎE"±˜¢iå}÷m»ãŽ šòL&étެa}ìªÔ•‡‚µz½JXÅV¯W;úóÄ™å+/>ùäÛÙìÙ U©TR*•®ºjÙƒ^ÂÚ$ñxŠax†IA—&[ü~†eyáo {uEÕªÖ)1T&“öcƒÏûúÂk×~M¸E*•äóÅyólŸýì¦k¯]«ÏÈTnŠªŽámúº0'K*• Å-[:î¾{3ú 4¯D[1–åãqê7@R*´9.#ü]¹\ ’zP{WÚ*ƒA#h«Fõ—¯¼ò»‡÷ ·/Òç>·µ³½HÈXŽMlJPNæPžÜ±,Ï0©*‘½J%žÆI,9à ŸŽý®æ[ßzíûßÿmUîm¡Pܺµó¶¯\Ù2žÿÈ,€ç³Éd†ã2бɣ°úˆðô^+?U©ä {øAXÍvåØçG:ŸKJ¥Ò΋n½u-ÞÕ ãô¢}¬(PÓ*¨yp¤&“éÀEéõj¡§´¿Ö$ÐÜ ¥öÊ °„ˆìkOì0CUµqŒûöľúÕ—„çy©TœÏñ<Œ…Ï糺p#œÛ«V(Š"3N ‹ÂGAÅ Ù¿öÚwÞù$Eë€;,‡LwPL ‚ äŠpÑhÙ;r‘H2L€ô|ôÂûo˜²'a=ƒJÐ.‡õ@LÁ F8BˆD’áp2Jƒ,ô±Pˆ ‡“'#‘ ²‘JÅ ›'ÆybŸ75F£ÚlÖšÍZ­ö&é)K±X …ÃÃñ`õzc~?ë÷3 £÷ùâ¤H£R)s: ‹ÖlÖÚl:‹Eg6k,Õªƒþ`2á2Þø &ªô½½áh”£(J"»\È&mh0¹ÝF—ËàrœNC}RÙlþÝwOýæ7¼ñF·ßÏH¥âE‹<+W¶,_Þ¼p¡»©É‚W"A© U9$ÂÈcbŸ‡pxZe?‘É$P²¸Ê/A™z½Z —Wj4 ƒA¥Õ*Ï“m‹ 2­g<΃ǓX ˆ K‘ô!ôÎ#“F2™ñzcÐ-AÊ¡@€!}R,Y­:bŠ!Ö!ÎÎfJ¥ÒÀ@NbD@¶bðCÅb1#¦*—Ë€¡fSø„ÿÁ'ü==þˆÏÏå "‘¨±ÑDþÛÚmm§S?#ËC–J¥>:x°÷èÑÁC‡zûû#r¹tÉ’†®®Ö®®–%Km6]½÷AÆÊáÃ}_ÿú+ï¾{J*•äóå¨_‰D|à ]W#³™l6ßߺt}}¡3g‡FŒ IDAT}}!Ÿ/Ë|6›®¥ÅÚÒbmi±44˜xàgµ¶™LR,–þú¯WýÝßí´Ûéz| dB(KÁ ;4õzã^oÌë E‡†b>_œ8Çu:¥Ëe !gn·ñ{ß{³§Ç_ûib±X§SìÝ»ñ³ŸÝó_µ 0ètÊ›o^{ç°2íÈfó`è&GG,–"ÇQå1‹q¤*0@ÓJÈÀªÈ»á`,¿rû‰'<õÔ…×@è?ºîº•3©Ð82íÈå p±þ0 ×A;Å0)aÔ±H$ª¤µª*  ]þ¹õÖ'úû#µW.—f³ù‹.jºûîÍ—]¶C‘‘q'™Ì@À<ØWJàiYÒ 5ªNÔ …´â¯/«êÁ—DŠ”§ßþöëO?}¨V%)“‰s94!N©T‚> ‚°J¶Otx§P¶¡jòG@&T@V4yJb»ãŽx>‡»šÎN×í·¯Ç»¤.Tl§eÏ/8ò„þz¢¹'OÓé\Õ‡ÈdÈ“©½F£¤i%äOÁ! Ó)!ÁJ§Söôî»ïÿqg`þ 6 ÓŽË Ã'“™d2 ,›N$`K†ãʵ"àÕÚcJ$Ñ´J§ShµJF¡Õ*@C ‡•F£€ M%oQ¡Ñ(<óàƒ¿Š&+E‰Db‰„ÚµkÙ=÷lY°À=Yÿ2I€–ÜÎUSçfŸM®šž‚à ì®0`¡i•^¯¬5Ú?ûìû?üáÿÖNRD¯WÝtÓœÝE&âìß:' ¾ªÿWUž“JÅU¾cÒí…}†3ÇßvÛµû \ר³gd"G¡PöjRañÜÓûÙþÏóÙªO¨œÞ•ç)U¢×«ž~úÐüûªËU9Ï êÛo_e´ñJa¥ÓyhŒVXªd1L*JT‰MÀ¨Y[Z¸jb8ðÑW¿úRÕ¢(±XLQåBq·ß¾=xÈ´Åô‚ 2+H$Ò'†‡™p8°Á ¡PtÀN§´Xt» BpáSˆT¾ ’}Ȭ‚eÓ~<`ý~ÆïgÖ狇B¬×‡ÏzçµZä„ ãf³ÎfÓAL<ެf$™L~p0êõÆ¼ÞØÐP rφ†¢~?}C&“X­:—Ëh³é½ÝN;zÒ{íDdìär…¾¾ðÉ“S§‚'ONž œ>„J$4­“(¥àÑí6Nø³B¡øÎ;'Ÿþð«¯M&3Î-[:7mj_¾¼Y­–×{ïAd¦Á0©t:'\z©]Œ©lIÕ.J¥b³Y[» 0µ+4èPFd6ÀóY¿Ÿ … ô„™:Ò óu2™ÄdÒZ­Z»ü´Í~ D F` ãI©T >_Üïg¼Þ˜Ïf|¾8(éÉŽÍF;›Mçt@;[™Ã1 'h6“Ë¼ÞØà`t` sh‡ÃIŠ¢$±ÝN{<¦†“Çct»ðØÐ`ÂÛ¿)H0˜èéñŸ:ìé†ÉÃ@€¥(J£Q´´XÀ1­­¶1 …¿ÿýÉ·ßîyûí¯7¦TÊ–.mìêjY±¢eåÊæ*Ñö›o¾yæÌ™zí*‚œ‡»îº ûöu÷»ûþô§~©T\ ¹aüo~ó¨ RUŠ&å ‰]$Ùl:»]_ñÎÓ¤¬ˆÝNãYA!g΄ž{îýçŸ?Üßin¶ìÞ½l×®eÕ¦uàùç?ðÀÏÿã?nݵké$ïçTƒeùÕ«¿zíµ+þùŸÿªöÕ]»¾§ÑÈñ‹{&ÇŸÿüS§O_zéócy³Ïç›èý™aœ:þÉOþøÆ ¥uëZ¿ûÝkê½GÈ9F•êSE°Äb1žçÇk>7ßüÓ> œÿ="‘H¥’=ôЖ]»‰D¢ÉÙ1dÚa4%Yoo¸·7}}áÞÞ°×;ÏoI¥±XtË-kÿæo.–Hru?" E*•—J²@€…r•ýý¨ÂÛÛ* ©TµDð‹b•J~×]›n¹eU>dV“H¤Ãa.KE"©D"ËóÅ@¢ß“'A4ãpèý~f´Ê|®;îX»qcŠ&‘i Çe£Q.KÅã|,–Êå¤Dd Í‘Hæñ@±:ÚçÈd’|¾¸eKÇž=kæÏ7Oâ7@‘Édò‰DšaÀÓ— …’WH&«Ýµš€‘H$‰èúëW^uÕüæfÓ$ì?‚L2étŽeÓ ?)†IƒG&—W*@¤âq.KC±X,‰Dµ%ÄÈ«¥e³ÑwÞ¹î’Kæiµ˜‘L‰t0˜„ Ë‚ž2JÒé‚ðÚ'¡çkµŠd23Ú§I$âB¡ØÒb½ë® 76¡Î©ét.‘È€}UØ·¡Íq¹T*O4÷BA˜Ó©÷û™ÑÌ1b±¨T*9†;ï\¿}ûÏóÈ” j@:<ËfR©\©$N§sµçóóvaEÃjÕÞ~ûº;æaD+2õÉdòÙl>“ÉW °‘e3‰Dšãr—#=r8(•²Z ·¸ÃY¶¬ñúë—lÙÒ&•â¼(2ÃÉç‹<Ÿe˜4Ïç’ÉL*•K¥2‰D&™Ì¤RÙT*ÇqYŽË$™T*“Í– nËV¯CÁ±3Ú_ôêÕs®¹fᆠspř͌x;G.aù¼hÄáy{»£·7”ÍVWÕ"H$b±X|íµËwïž?w®e¿‚|<£b2™¼”ÍR¤ÛG"I«ßÔdéïÔ>!@a¡Ý»—]uÕüùó±°42%¨íð™L6ÖžçI‡ol4Çk«'Äb±T*¾þú•W^Ù1gžç‘:ÀqY p\Æ •’rYèíÉd&›-V .¦«ê4@qÄÑ>\"ËdânX½kW{S®S#S—ªxxÓ#‚ ÈL X,…ÃIâ§ñÎ,¹µÕj‡ÞjÕ9‹E  µ2™4&“vꇑ©I6›ïüð0 ²ÃÃñ@€Žƒ¯Šô4“Ic·Ón·Ñf£N½Ói]Ó06kfÃ0©¡¡(¨ ¡PÞ`·ÓÑí6y<Ɔ“Ûmt¹ Ð=ê»ç3žd2sútY@êT §'00Éå 2™¤µÕ:ož}Þ<{{»£¹ÙÒÔd®²)M)>ø`è¹çÞñÅ?ì’% W_½üòË—¸\†zï‚ ‚LJ¥ËòŸF4/“IL& ŠæAÎËò~? &&JúýñPèìôIrS©äNgy¾®ò¨µÛõV«ŠDÖ÷[ 3•`0á÷LJ‡Á>Ž{½ñáá¸ßÏQ…Ëep¹ n·Ñí6ÂÎá @©T YPÏ ôÃÃ Ä ÛítC;456šÍÑáÐãÄÔ¤T* ÅN ž8á‡iÓ' “¢(Êáзµ9ÚÚìmm޹sm--V»®÷þN—ùÃNÿþ÷=o¿ÝóÑG~¹\²reËúõmëÖÍ]¼¸á<ùúë¯æ™g&sWdŒ‹Å—_>òío¿þÑGþ•ô€Å¢…‚"Ei4 —ËàtÚí6B9ah`‘iAÎO8œ|ñÅ?=ÿüá?ÿyÀfÓíÞ}ÑÕW/_²¤á<¿‰$7múÆ•W.ýúׯ´ýœ²üó?¿øüó‡ß}÷ÿ­-È}øpß•W~÷…èêj­Ë¾QU,–/þÒ}÷m»÷Þ-cyÿþýû'xf&¡Pê•WNíß?ðå/ohnÖ×{w³ÌŸ?ßf³}šOèîî…Bãµ?Ÿ€\®xûí/hr‹EEOÒìe2ÉÚµî[o]¤Ra¸2£ûöußvÛÏÿ»‰H­VÜxã’µk­r9ÎÍX¬Vë‚ j·ó|vîÜ/Œ%›I«UìÚ5÷â‹[ ì'ÈÈ=Šã2û™ÏüWd,ÒР»âŠykÖ¸QÃ„Ì 6oÞ\»‘eÓÁ »eË7 …1åvvšwb…+!SŠï6“ÉL<žz晃>úúX õ"‘háBË­·.r»q™™Ô^ਉŸ/~ñ¹?ý©o,¢TJ·nmºîºN¼ G¦#µ£žÏÆã©xD¥’nßÞrÍ5í8)‡LejÏç©T6‘à†¿ä’GÏ#¦¢PHnºiáöíÍx:G¦;UGD*•M$ÒÉdúþç/=öúïpš›õ÷Ý·GÇBŽ ‰4Ç2ý«_|ê©÷Î#šÒÖfúÜç.²Ù0œAF jžŠç³,Ë3 ÿ裯¿úêÑó_¿D" V’7mj¼å–…j5¦'#ÓaÏO§s ó,ϲü[oÿ÷k´þ*ÚÛÍwݵÔéĬRdJSuž'þßxåõ×e¢¨õëöìY„çyd "ìá¹\eùD"Í0üOüïË/ÿe,sS"‘hÅ Çí·/1¸£òI©ŠÇÀqA™‹¥Pˆ ÈóÁ ë÷3ðH,2™Äå2Øl4x–.m€¶ÍF;ôT¶ #SŽË ÅŒ±³éõê¦&³ÝNÛíôÚµsív}S“{Úì!•ÊFƒA¶¿?Ò߈@'ñùÊE Õjùܹvè!K–446š›šÌS\w>“(K'Ozzü‘'ü==þþȤ¬V]G‡³­Í±eKgS“¹­Ín·O$öÁÁèóÏ~þùÃ'OÍ7Þ¸úê«—Ïû©ò½AdfbÐt:ŸNçÆK4ߨh&Ny…BŠ¢yAZ` …aRÂY;Ò†!EQ‰ØbÑÚíz#¯[7—´ívëD"G>_ôzcdÒ¦¿?“LP¥Õ*Z[mÐ/¾x>L&76š=––D(Š*K`œ's€Ð€.$‰À;ßÔdÞ²¥v;m6ëÐæ3•I¥²ÇŽ Á„aO¿§ÇïõÆòù¢\.íèp65™7mjûìg7¶µ9Z[­³í"•Lf~÷»ì=t¨÷ر!©T²jUëÕW/ß°¡mÁ·D2ÖŽ}Ýu×=ýôÓº«rAüêW¿Ú³çvî|샆ÄbEQç jO¥rO=u7¤Ñ锓¸›‚Ìb1î¹ç¿ôÒ_î3ÔõWËÿéŸv¯XÑ'ŸóóÅ/>«Ó)~x×$ìçgh(öä“¿øáݵVzŠ¢~ô£·—/oª£•ž¢¨#G£QnóæŽ±ÿʧyÏN®»ŽŠD’==5kæÔ{_2ãUha4Móäpðà™b±$‘H …"E•(Š’JÅf³Öå2¶´XœNƒË¥÷xLP£+!çá-ÒI­V¤ÓY±X´re˶móuºäŽ«1Ajqž †çv»>“É8B‰Dr¹4“É©ÕòÛ¶léT(b›7¯Ä£ ™.Ôö|¥R¦TÊìvš¢¨ƒ{G»¾H¥âR‰*Š.—qÛ¶N‹%Í5ë[[&c§ä1âyžtøL&?¢•^$¢äri&“—Ë%]]­›7whµÉ;Vá8™jÔöp™Lb6kÍf-EQz½r´˜7…¢†±h‘{ûö4Í_~ù—Ë1 ûŒ Jm< Ad  %ü~Æïg¼Þ¸ßf†‡ã` bYÞ#‰,­Å¢s¹ô­­ÖµkçZ­:‡Co³éìv½ÍF£0#¹\!`½ÞØÐPÔëû|1Ÿ/ÞÝí ‡¤„¯^¯v:õN§¾µÕºaC›ÝN;z§Ó`·ÓV+ÖÄž-p\¦¿?Ò×îë  Dúú"¯7ýD*;ÇØÜlÙ¸±Íã1¹ÝFÇèv1>i2Éå 'Nø»»½ÇûŽ÷;æA˜N§œ;×ÖÙéܵki[›cÞ<{Cƒi,ꇩC¡P|ë­ã?ùÉ;œÐëÕ»w/}ä‘V¬h‰¦Ó·@A Š“Åã|&“ƒÑã(š×ëU°¶‡¢yA±§ÈdTï ØPˆf"‘$™BQ«å.—Ábѹ\†ÎN§Ói°Zu•G½Fƒ üÈ5£>_|x8îóÁDãóÅÈMtH§S¿reËîÝË\.ƒËep»6q(ŠCC±ÞÞPoox` 20ˆFX6MQ”D"v:õæùó];w.lj²46šM8K<õ)н½á?ô}ôÑðÉ““'g΄r¹‚H$jh0µµÙ/¿|ɼyöövÇܹöYkœñû™7ß<¾o_÷»ïžâ¸ Ìußÿ¶uëæh`D¦=¥Ré i4+?üp˜¢(©T’ËåGWÿQ©T¦««uD2‚ Èhär…ßüæƒgŸ}ÿÀ‰øòËßÿ¶M›Úåò±†¯¼ùæñ—_>ò“ŸìEÕEQ<òšÓi¸ùæ5µ/E"ÉW_=ú¯ÿzÍäï•wß=i³é::0P~20›µkÖhë½ÈL#•Ê~ö³›<£Óip: Áj¥§W$ 2õ9s&,>wÞQ"K¥b˜±´X´K–4.]Ú¸x±G¡H™Íj´ÒÏB††bU[d2i¡P(Kƒjýú¶®®ÖÅ‹= z’ÉøñãÇ7oF+=r>r¹B"‘n‘H$¥R±X,¹\Æ­[;6lhëêjµÛiHE+=2…U[¤Rq>_‰Dέ[;7nl[±¢Y¥’Ãq1k×iJ4š’‹Å"‰DœËhZµqcÛÆí6´55™)ŠÚ¿?8_‰F9áS‰D\*•ŠÅ’Óiض­sƶuëæ™L¸.àT-2óˆF“U[ÀÖ*“IººZ6oîØ°¡máBX,:Où™ÊÄãçl“HÄE‹¥övǶmó7nl[¹²E©”AǬOdúR[›Îçjµ|ëÖNáXÏçÈl€eyá_íÉ¿««Ä#û÷ïÇŒl#,ËÆl©TR*• …bG‡³öȪ×N"È´¦j„.“IóùB¥äC'žSx”!3 †IQÔÙû1‘H$‘ˆóù‚ɤ¹ôÒE7¶¯^=R´öïßËvÈ´&9g1ÎóE-]ÚpÙe‹7lh[°À ƒ§ Ó‘x<•ÏŸ0@g.Š--ÖË.[LÂ0(ŠÚ¿?æn#Ó×"‚ ȤR(C¡„×ðUÌVŒßÏ2Ý`w¹ æU«Z­VÚá ­VÚéÔ›ÍZ\õG.†Iy½q€Ú±`…:¢z½Úí6¸ÝÆÆFóêÕsìvÚí6Úí´Ói@=ål#Jô÷‡ACßßéë‹ô÷‡If‚ÝN75Yš›Í]]- ¦†“Çcr8ô8® ±×ÝííîöÁã©S\® “IÚÛóç»¶o_ÐÙéœ7Ïîtê½§ŸœP(ñ‹_üñg?{×ë¯];ç?¸åÒKãEA™¾är…*¿|<žªÚ²<Ãð‰Dº*eš¢(F¡Ó)õzM«ôzUCƒiÁ%M—ŸÒ´Ê`P“7д /š‚ c'Jìðp\X-rx˜ñùâ<Ÿ…÷€zìÞ--­D:2zw"“@8œôzc0³74ŒB2ʤR±N§²Ùt±¥Åºví<Çèr].½ËeÄj¦ˆb±äóÅ{{Cg΄úúÂg΄Μ D ØM«ššÌMMæM›ÚÍMMæÆF“ÇcÂÛËéB8œüðC߇Ãã‰ÙL^$55™ÛÚ_¼ ­ÍÑÖfŸ7Ï>ËUÅbéÈ‘Á}ûºß|³»»Û§VË7nlûÊW®Ú¸±Ýã1Ö{ïd<‰D«WÛ¾ýí_…S§‚‡õ¾÷ÞéwÞ9°‰X$A˜¯Ÿ/>w®­.{‹ Èô¢T*ýþ÷'ŸyæÐ¾}ÇY–_¿~Þ·¾uýŽ iZuAŸS(¿üåvíZvñÅ &hW§}}áçž;üÈ#7ŒxþÊ+Ge2ÉUW]4ù;&äàÁÞU«æ`6‚L_6oîØ¼¹£Þ{ÌpN ärE…B &z»^¶¬qñâ†Å‹-ò‹vww×o7‘zâõƨŠ4 &¯V­j]¾¼yùòæ¶6;äìÉjs ‚Œ@4š,•Jb±X,åóƒA½víÜuëæ®];¯­ÍŽ÷®Èìþe2I¡P.Ò°iSûºus×­›‡’nd‹¥òù‚\.Íf R©héÒÆM›:6l˜·lY.k"Èh°,/Q2™4›Í+²5kZ7nìØ´©­£Ã‰÷KÈlDÆR©¤X,‹¥æfË–-7¶¯];W§SÖ{ïd`˜´H$R*¥<ŸS«åë×ÏÛ´©cóæö–¬Í†Ì(&EQ”\.-‹ù|±µÕºukç¦MkÖÌÁXnd²él¶ TÊÒéœB![»vζmó7oîÀœòiH$Òù|A£‘ó|N,­ZÕºukçÖ­ííŽzï‚Ìâñ”H$’Ë¥™LÎhToÝ:Fè‹¶Þ»† Ëòù|A.—€ÎxÁ÷¶mó7mj¿è"\×@fñxJ,ÉåÒt:g0¨7mjß¼¹cÓ¦v‡C_ï]Cq ãJ¥’J%O§³‰Æ ›7wtv:ë½kò©@‚ ‚Œ?,Ë÷õ…6`ûû#°¿Ÿ4Š¢d2 xçívzåÊ–¦&³ÝNÛítS“Y¯W×wÿ‘é˦ûúBýýèxè{Ñ(:!F1gŽ ºÙ%—,€¾g·ë].NQÍB8.sút°¿?]>_z‹V«hmµA®×õׯlj276š±«Ô—L&äÈ@OOàÄ ÿÑ£ƒ'N ³lZ,Ík_¼ØsõÕµµ9/öØí3a®P(¾úêÑŸýìï¼sÒáÐß~ûúk®Y3Œ‚ ÈÔ$—+µò ÃÇã)Ò¨’ΧRYáïÊd½^¥×« •^¯ÖëUn·A(š>Ò´ «!‚|’ÉŒ× ÏNÖ‘YHQ (J"{S*Q~?ŠéùNŸþò—_xáO^olÁ÷Cí¸ì²Å.×',˜ýÜs‡"?ÿùÿÏÞy‡5u½qü$a„FX!@Ø ¸À‰Z-bµŽ¶¢?GµµVm­Ô½÷hU«u×Q\Xk]m­ZQª¸ª¢ì=C€@dßßWoÓ,¢ ð~ž<<77çÜóž{¿ï9çž{xïŒæ5²räÈßL¦}ll„Æ_¯^}6xp'ƒ‡THI)úòËÁ†µ0rärløð0< }X˜»½½•¡-ŒŽººÆ~ýü#"¼»uóêÞegSÜÀ[Áálm-"#}¢¢úöõ dÉ\èèÔÔðœlúõ è×ϯo_OOº¡-€æ¤®®ÁÛÛéÝwƒûõ èÕËÇÊÊÜЀ±#—+D"iHˆ;ç+" Ö .Wèà`Õ¯ŸÿÀAQQL&¼±hWÈå ‰Dê6xpDµÚ7õõ ¶¶ýû 4`@Ð?¤€ö×èíí:p`PÏž>0È€fϹºÒ¢£C êÔ·¯?Ì;@³#‘È""¼ð—©„†2á‰@¡®®ÑÁÁjðàwÞ ŠŠò‡…4@;F*•õèá5hP$éÛ: IDATð€;»Ãâ  Áã‰<<¢£CÞy§SŸ>¾ð¢D “Jð†ˆÅ²²2nee}yy]EE]e%ÿZYYÇá0 CQ(dGG&ÓÎÕÕöÝwC [ÃÎÍÍÎÕÕ»o×XRR[VÆ--å–•qËÊêÊËëJJj9žB!„¨TSww{&Ó>4”êînïîîÀdÚ1U¼ƒ"‘Èòó9……Õ……5ÅÅÕ……5……Õee\â,ÝËËqøðp|ÃÓ“ÎdÚCØSƒ#‘È^¼(ö¬4=½ìÅ‹²ŒŒŠ†‰©)%0Ð58Ømذ°à`·à`7:½]½øW*•_¼˜²o_bFFyd¤Ï®]Þ¿‹¹9t—@ë¡P`ï¿QæÕãÎã{ˆáÉ$''<省­…»»Ch¨…ò" =•jj¨:´cð÷ö©¼-R%ú¼òÛ"ÃÂ<àm‘€¡ ^ðê“/u‹k•D"9;Û¸¸Ø²Xô¨¨€I“èø‹]\h0Š´!“)òòª²³+•_EYVÆ•É!\B,½ÿOOz@€«——#̺´9$YffEVVeZZivv%ñš++óà`·ˆïI“z¸1h4 Ck\””Ôþùgú/îÝËU(°=¼æÍ‹y÷Ýà€WC›†D"á¯$™8±7BˆÍæýóOÁÇÉɹ™™ååõ†6#…ÃáŸ=ûðçŸÿÉήtv¶‰3¦G`à[õ§2™bçÎk~ØÅ‚y¨¡AröìÃY³kü7Œ†ɽ{¹[·Žk}Ôa³yÕÕ‚ÎÝ k`äœ=û…¡MŒ™3Μ9ÐÐV퇠 Æ‹!n(óÞ{a#Gv5´ÐRìØ1Þà¯î€¶‰DJOß`cC5´!`0úöõOOß`h+ yútƒDµÚ?;{¤§o Pàߟ!„6nüÙù曜œl m´gnÞ\ ýÐY»v4ô/@!)i)´ó@;æèÑÏ =Ú%ð¯æÐ\®°¬¬®¬Œ[RR[ZZ‹o—•q9>žÀÔ”ââBÃ#Î÷îíëæfÇ`عºÒ˜L{''wÞ ©T^ZZ[\\‹Ç*.®Á·‰0jVL¦=“iߥ‹Çûï‡ãÁè™L{GÇv¥x-0 +/¯ËÏçäåqòòªòòªòó9ee\¹\rr²a±½¼èÝ»{yy½ŒA7ºÆƒT*ÏÈ(OK+MM-IK+É̬J厎֡¡î={ú~úiT§Nn~~Îíõ øÔ©û‡Ý®ªâÝmÏžI:1 mЮ‰¤uu \nSß~µ!$~ª¯oäóEÊÉdYÞÎÎÒÍÍ.8ØM9ļ҆üÓ@+ “)Øìzüu}uõee\6»¾¼¼ŽÃáãïíÃ_Â`عºÚöëçïæfçâBc2í]]m ;Ä ´&b± ^\\ƒO/—–Ö–•q«ª^N/ÛØPñWKvïî5zt7ww{ü+Ìòº©«kÈË«ÊÍ­ÂßI™ŸÏ)(à44HBææ&>>NÞÞNLJûø8yy9úø8¹ºÚÚdàM‹eåééeÏž•fdTdeUà7, †]§NŒ1c"‚ƒÝ‚‚íxÚð-ÉË«úí·´ßOKK+±µµ|ç ;'¼óN¼þƒ‹ møððáÃÃB ‘Hjh‹0.„Bñï¿§;÷Orr®……éèÑݶl‰íÑÃ[cðô×å÷ßÓŠ‹kŽŸöö‡jüúëc±X†¿5D§O‹ÅbYÿþ­l• ¹¹U!ÚÊÀr}Píˆg¯ ™L‚®@FG@û†B!CTz ƒ‹À@¸;€–‚o@KýÐ1þè8@;´o =Ú+0ë !$—+Øl^iimi)·¬ŒKü--­Å#¹ „œm˜L{77ûÈHow÷îL¦½››««­³³ ‰Ô ÿm tXªªø%%/£SÕ””ÔÕTVÖãÁÄ­­Í=<è,½W/Ÿqã"<<èžžpÞÑáñóò8ùùUJ9„ ÕÇÇÉÇÇiܸH__'gooG++sC› ü‡ÆFɳg¥ii¥ii%ii¥yyUr¹ÂÅ…éæÄ Ñ, mf‹SVÆÝ¿ÿÖ™3ÌÌL¦Ní÷É'ýèt½èKCƒD)ʼ7O|%ö¨„T³²2ÇÍÛÛ[ÚÙYzy9véb‰ïytþåÿŠ`jjååuååu¥¥µååuee/·9>>gbbBvr¢1™ö †mÞL¦½«ëË—G:;ÓàÉ€VÃ06›G¼c²¨Ÿî«e³ëñvv–îîö=zxðAw|ÛÝÝÞÖ‚#M •Ê‹‹krs«òòªòò8¹¹ì¼¼ªÚZ!BÈÔ”‚Çïß?`òä>ÞÞNÞÞŽnnvðÌ¢íÂã5¦§—¥§—¥§—¦§—åæ²e2………YPkH󃺹3 éІa\¾œúçŸÏJK¹^^ŽÃ‡‡¯[7º¹‚ç@»ÇÒÒ –€ƒ÷ª¿üòøòå§õõ={úlÚ4fĈ.ÍûóĉäèèˆrŽsþüãèèmqCRSK ;gg/g/(àØØP nð6 m´†±Ùõii%—/?ýᇿ-:;eÊá¡C¿ëÔi¹‡Çü=ÖŽ½{ýúK¿ý–VW×Щ“Û¤I½wìõ꼌Œåå;ž>]÷ÛosúdÍšÑÓ¦õï½Îáá..4ˆðè†aEE5ÿ}âĽ¯ÄÅ7n_ïÞX¬]º¬1b×’%?_½šÞÐ éÚ•õõ×ѧN͸woEaáÖììMýµðÈ‘©kÖŒþôÓ¨wß p…¨ô @œ–VòóÏ6n¼2cÆñ7{y- Z6|øŽ%KÎݼ™aff2zt×;Ç_½:/3󛬬oÿøcÞ?|ؽjÕ…ë×_ˆÅ²ÈHŸùóc¾¸woEQѶ/6þùçüœºvíèiÓúÇÄ„†„0!´4 ‚BÕ\¿þ„1jÔ÷:-g±DE};mÚѳg ¢ÈHŸ%K†_¸0;#ccQѶ۷—=úÙÊ•#?þ¸O¿~þL¦=<³hC(XVVåÏ??Z¹òWür-‹Ý{êÔ}±X6|xØ?NMIY“—·ù·ßænÙ2öÓO£z÷ö…¦C#2™âúõç‹íÑcÝèÑ»oßÎ7.21qqròòåËߌôi£Qésssq§VßÐAqqñ§Ÿ~ªOÊ·/‹øº~ýz‰´iÓ&bÏ™3gHšxúô©òW//¯É“'s8œ·7I(.\¸0<<ÜÆÆ&""â›o¾‘ÉdêÉÞ¦ô·?·@"‘rssßæ°ÍEYwçÎk}û~3zôîò¿øâVž?ÿÕĉ½›÷ fyy]rrîØ±‘Íx̶ Ÿ/zô¨ &&T[‚ôôÒÐPfkš¤6»ÞÍÍÎP¥wœÑ‘½½ýرc_wtÔ¼u„aU[¡}ûBH(.Z´(<<ÜÚÚ:22òÛo¿%¤H"‘bcc1 #Õr5h+¼G¼M¹Mê!$,Xàíímaaáïï¿zõj‘H„šêÞFäú'îh:iô•6¡âÙSRRLLL~þùgbÿÅ‹ÍÌÌž={†"‘HþþþÊò@½÷Þ{¿š7 •i÷±Æ,¯…º$”÷(—haaÑ·o_¢\õ¼Ð·Ú·_¼Àtòn+€¼_ me;wîíOxM§I4VSŸºƒ#´:Ž4‹Ù ð¶BûV8B(;;{øðáööö®®®£GNMM%26K/€‚otpµ·ÄT¤¶ìàÆ¸Cë¸t4¨#¹êÀžõå—_º»» …Bâ8yyyfff'Ož|cS¡çÒóÊÅxY³zå·Ú·òµ­ÃÑÆ×ß&hÇj_²d‰ÆýðÄ­ãȵk…ãt¬,jMTÎÕ[®˜Ò§Ý´òy0iµ’ 5©©”•qËÊêÊʸ%%µeeÜÒRnY·¦F€'pv¶qs³g2í{öô3¦“iïæfçæfçädcXËv€B•—×Õ””Ô×U××p8|<ƒƒ‹E÷ð wéâééé€o3™ö&&ðÒ !„8~v6;?¿*?Ÿ“—W•—Ç))©‘É!gg__çˆïqã"ýüœ}}=< Üž1SXXýøqá“'ÅiiÅÏŸ—‹DRss“fß¾~_~9(<ÜÃÏÏ™Bép¾_RR»cǵsçyxпùæ£1cz˜™ÁÍ)@ûG"‘q¹B.·Ëmàr…\®°¶Vˆï©­r¹ uuºº†ºº|äC`ggiggiooiggéînêŽo+ïÇ?°Whðù¢‚›Íc³yEE5ÅÅ5••õUU¼ŠŠz‰D†"‘HÎÎ6..¶,=**`Ìš‹ Å¢³Xtˆ½ ¡Pœ—W…‹¶¨¨ß tkeeîë댋vÒ$:‹E÷ô¤»¸Ð¨TSC´ø|QFFyv6»¨¨&;»2;»²¼¼N*•#„œœl‚‚®C†„¸¸º¹ÙÁ4`;@"‘=}ZœÍÎʪLK+É̬àóEff&AAŒ€—#º„…¹¹Á+²ôðþ)¼r%õ÷ßÓÊʸ,ýƒº Öµ«g+¬šjììì/^üº¹.\¸0zôh"o~~~ddduuu ø²,|ð3gÎxzz&$$,Y²ß9jÔ¨ŠŠ „PAAAŸ>}ðm„NG%''{{{Ëåòììì]»vuëÖíÙ³gvvšcÝêS>Ÿéââ²yófŸôôô•+W^¿~ýÆŠj+úZ¥+óf×Àø‰¤¿ÿž–ððîÝÍ⃺îÑr%^¸ðÄÚš:xp§–+¢ qÿ~ž\Žõï¨-Ai)7,¬/‡žTW ø®ñ2:Â0¬¬¬,..nöìÙgΜi ;›†Umˆöí¸7mÚäëëKHñúõë¸Ï;—ð¿ÿý¯%,'hC¼GèŸ^ÝešÔ9BhöìÙEEE¿üò‹‡‡GFFF\\\mmíîÝ»uw ­#r ÙÑ!*eýhS,ž½k׮˖-‹‹‹‹ŽŽ¶³³«¯¯ÿòË/W¯^ݹsg¯[·5#Gîš9óøúõ—~ü1éÏ?Ÿ={VZS#0´í@G§¶V’RtñbÊîÝ7.L;vo¯^ë==çãÒíÜyÅðá;fÎ<þÍ7WNœHNJÊ*(àtð|à ¨¬¬¿s'çøñ»«Vý:qâ^½ÖÍc÷îkÆŽÝ»téÏ?þ˜tëVfqq\Ãàv‚L&Ïʪ8{öáÊ•ç?ø`w`àcާçüèè­sæœ:|øö½{¹0ñûf¤§—nØp9"b-ƒ1'*ê›Í›OO/5´Q†a±±±±±±Í~Øœœ|…±¡ƒáÇ744¨çm ”ËJMM%‘Hׯ_Geee©¤T7!”““C|U(ýû÷_µj•¶²ô©È‚ ¢¢¢d²»i@àååuèÐ!•”¯[zó¢±.*&5# °B Èdòk×Ò§O?æåµÀÛ{áìÙ'’’²d2y+=tèö9sNµBAm‚Õ«4h³Ž}úlܱãÏV³G3f›6íèkeILLd³ÙÍkFG%%%ÙÚÚ¾VéÍX5Vi£YôœžžžžžÞ,ö(Ó.ýB›÷ïßaBhÆŒ-Zðm´WÐÿà Mçvvv÷ïß'¾Þ¾}ÛÓÓS÷aßRäú'n94Ëõe³Ù‰‰‰ÍaNë¡CT¯‹ÊN"»X, >}:†a3gÎìÞ½»D"ÁÓ „†ºlÙ2"×±cÇÞ{ï½õz}hQŒYQí²#n2‹>¨KByʯl6!Dt.Ê¿Bw¬‘æÒ3øLkëCm6ãq”yk<ÂÛ§Ôðm@¿ðf´¦ãhDŸ{uÀ´w o@3zÁ[«’® Pøð6 Ÿ1cƨQ£”ÿŸeÊ”)“'OÆ·›K~ x€Ú߀U{³LEª”«1;x„FšÅ#àî¸Í¹t4ê&5#ÍÕG€g5‹g~úÆΘ1pèÐÎÁÁnÖÖæ†® `0 ¬°°úúõç{÷Þœ;÷ô°a;–DD¬?~ÿÎ×rrØ®sç9}zæ£G«rs7_»¶`ÿþÉ ¾÷ÁÝÂÃ=ll¨†® …KK+9|8).îdïÞüüóùsÿÐhÔE‹†%&..(ØzãÆÂ­[ÇNšÔ;4”ijªúVÀBaau\ÜÉ7ççsŽýìêÕùÑÑ!$ÉÐvšÁ0ŒÍ®Ïʪ|ø0ÿúõç?ÿüèðá¤íÛ¯.ZtvʔãF}?pàæ®]W{{/ts›¸´W¯ Æí˜4éàúõ—âãï%%e—–Öš˜ýü\† ‰‹‹Þ»÷ã f'&.NIY“Ÿ¿¥¼|GVÖ·÷î­øý÷¹'OÎØ³gÒúõÌ›óé§Q|Ðíw‚ºvõôöv²··‚ÎÀ©©¤¦–\¹’ºÿ­åËÏO™rxР-KBBVÄÄlÿä“·oÿóöí¬†Ih¨ûgŸEíÞ=ñâŸþY]P°õñãÕ/ÆíÛ7yÅŠS§F Êtp°2t€Ž†aååuÉɹ§OßÿöÛßfÎ<>tèwAAËBBV ¶cÞ¼Ó¿þú¸ªŠèúÙgýú䯿åænNK[åÊœ}û&/]:|âÄÞQQ^^ŽöÐ…+.®ù믌}ûçÏO1bWPв®]WÇÆþ°~ý¥û÷óll¨cÆDìÙ3éÚµ¹¹›ÿùguBÂß|3fêÔ¨=<Èd·U0 ËÏçüúë“5k.|øáž  en^±âüóçe¡¡Ìµk?¸~}>÷»cÇøÏ>ëß«—/Lü¾æ¯\ùkk££·ýùç³)Sú>x°2)ié¢Eï…„0 m¾\ºt‰Édr¹\„ÐéÓ§„B¡B¡Ø³gO§Nlllz÷H"‘rssuÜ_¹r¥k×®––– cÓ¦MøÎêêj+++ "o¯^½B®®®x©TºpáBggç… J¥R„‰D:räH§Nœœœ6mÚïíímkk»råJ<×å˗èTªO||¼JYø×3gÎ 0àÝwß Â#¡¿$iæÌ™¿ýö›¶ÚéS‘'N¬ZµŠBù·›¶²²Z¸pá‰'ðò×_yzzÞ¹sGwéêWÎ~ìØ1üÜŽ=zÞ¼yx±XlooA=»\.ߺuk@@€Mß¾}ûì3<¥@ °´´LIIQ¿m]N:b%´eQCÆÅÅé#Ý˜ššš™™ÙÚÚªÿݱÁ¿ÐLk#· ï&Çœ8ʧîÑPÛôŽ£i]㿪œ™“'Oúúú:99}ñÅ ʇG0NG/ÐóØMv+ pƒ Çù믿âââ”+¸mÛ6B-*49|Òvã ‚7, vœ&Õ®{*Rck¯>}¤R}¤¦aPÀpŒÇT€Ž¦-ºÏz…nÏ?~|ß¾}-Z„aؼyóâââBCCuTAýl¨‹z®âb¼ì­ìe |ƒÊÇѶG}U†Š¨¦fðýû÷Óh´Aƒ]¹rO ‚7, vÀ·¶.o ×Ýu÷ÂÚ®ûk‰Mc-TΡ¶; ç¸ÚVªÐª:o¡øðf…âÔÔâK—Röì¹±bÅùéÓÅÄl ZÆ`Ìa0æxxÌëÕkýر{.LØ³çÆ¥K)©©ÅuuBC[ ´7ø|®ÃmÛþP!“9WY„×®¥V‹ÅRC› #èÁƒ¼øøä+λ·W¯õóŒ9îîó Ø4}ú±mÛþÀÛ1¯ÑÐÆ¯GMàÚµô .¹ËÏo1ƒ1'0péäɇ¶mûãÚµt6›gh‹ÚZÁš5¼½öî½áÌ™R©ÜÐX}}C^^Õ£Gùþùìôéû»wßX³æB\ÜÉI“ ö]ïÞ—à`âã뻨GµÑÑ[ÇÛ7sæñeËÎmÝúÇ¡C·Ï{ô×_/ž<)*(àÔ×è ]QUÅ{ü¸ðâÅ”~økéÒŸ?þøà€›||á]ƒ›ÛÜ.]V±ë‹/~Ú¸ñòO?ݽy3#;»²¡AlhÃÃ0L"‘ååUýõ׋#G’V­úuòäCýûëåµphèŠ÷ßßùÕW'¶o¿úË/ÿ<~\Èáð m2ÐV÷ýó™ IDAT‘Hd99ìß~Kݵëú—_þ4dÈ6¢© ]ñÑG{/>ûãIIIYee\C 4?2™<3³">>yöìlòôœ_zb¶°²²ÎÐ6¶òòª¶mûcÀ€M Æœ^½ÖoÛöGff…¡ÒLllllll“É&Ož>^cœÍ›7ôÑGÅÅÅiiiݺu[²d †a¡ñãÇóx¼Ã‡#„ÆŽËãñ8€ª®®æææû÷ﯨ¨øñÇMLLrY†) ooï`¶|ùò•*«˜š““£¼çÑ£GvvvÚj×dEðÕxG¥è»wﺸ¸àÙß{ï½›7o ¥k<¸rö§OŸâ–œ9sÆÓÓS¡P`vñâE777©Tª1ûwß}§|}ÝÜÜÔ—l!„Þÿ}÷Ë/¿àg/tÈ!ÙÙÙ÷ïß÷óó[³fÆZ¥†a†ákàt§ CÁç‹âã“cb¶3sÂÂVnØp9+Ëë•+OÝÝçñù¢Ö/Ú8éÙsýîÝ7t$ Y~ôèV³GS§þøÅ?½V–ÄÄD6›­; ŒŽðBŸ>}Êçóy<^ffæÀ×­[‡ÿ4qâÄÁƒçå奥¥…††â½¿úNåcª×KÛ)B3†Ëå:t!TSSÃ*è£ç&IOOOOOo2ø…6)Þ»wÏÁÁ{uO‘maaqôèQ}ꮻ롃væhÔ¶ŠVõÔùŸþÉd2ÍÍÍ£££·nÝZXX¨RGm7ÎEŽiê´IB£S«ÔB:Ñóúê†Íf'&&6™L]$XS~·fÍš´´´gÏžõìÙsÁ‚ÚriTÂÖ­[5fWof1-M®ÆÊŠÂY²d BhÆ Ê;B™™™®®®)))†ÕÕÕYZZVWW Ñ4æ˜ö~Æ~ÿýw:Ž7J'Nœ Á+ÃZ®Ù1¬¢:ZG¬;‹úòöíÛå¡Þ9*ï!ÆÀ|>¿¬¬ìË/¿üôÓOÕSBw¬ =õÜ$àLkŸ¼±fmêy7ÖòÖV–òW¸Gk^¯~Á¨kjúN¥vƒ ".7¡FmõGÐÜ5jZ›@*•êž¾h²[…ëÞš ‰Dd2¹²²ÿª¬s|ÏëŸ4Þ8ƒàµj76µëžŠÔø(©M©”«®ðm4‹GÀÝqÛr :-gÆØfVÁ³šÅ³0 ËÊÊ277Ÿ={6ƒÁ¨¯¯×Q7Êb†žËà7/àeíØËJKKAùÚå·òÄ”¶u8êÓ°*¢Â45û‡b2™W¯^åp8ׯ_÷óóCAS¯ P{+«]ã~xâíy»Q¸ºÀ”÷è¨k¼ÖvÝõ›¶Z¨¯íÎBÇ9$Ž må¡ÊyhÍõÚhd2yaauRRV||ò† —Ub»¹ý'ö÷Ù³“’² «%™¡ Ú<^cjjñÙ³Õu¨ƒþС۸!= êj>Þ¦áaè»tY… ‰ÅZ³CŸ™YMY¥¨¨úܹGË–2dþŽ=ÖΘqüàÁ[ÿüSƒF%»wß \Ò­ÛšÓ§ïCHz€V@"‘UVÖ¿xQ~çNÎ… OŽIÚ¶íeËÎ͘q|̘=ƒmîÒe'Q9â|DÄÚaþ›4é@\ÜÉ5k.ìÚuý§Ÿî^¹òôîÝœ/Ê+*êD"èéÚ-’ÌÌ mÓtxO³}òäCðªHÀ8Q(:¦š½½â336\ŽO†yfàíápô„ù¢öŠ\®È̬8{öáŠç‰÷Vvê´ "Ñ·µµ‚cÇî|ðÁn&sn`àÒ9sNݺ•)“õ4£žé¹\®»»{XX±Ö'$$䨱cD‚ãÇë^:&‹322\.¿}û6±èê£>ª­­Õ˜'((¨¢âeôáëׯwéÒÃ0„Г'O0 “H$*Û999µµµ¦¦¦Û¶mãr¹ …‚ÏçËårå²0 »ÿ¾‰‰ ¾fññãÇ¡gÏž)WYŸ¥cÄÚDµk²":ÂV:::âÙÓÒÒš,]ãÁ•³–…B++«‡bö¿ÿýoéÒ¥Ú²¨__;B·nÝÂ0L.—+W™°9!!ÁÏÏOãNL'˜…B‘””5}ú1/¯žžó§O?–””eÀŽuÕª_££·ªt#$(hÙ‰É:tíºzÿþÄÖ2G+3fûü󣯕EŸ…õ0: U†F£áUH$ …ˆ5pþüy???;•©^/m§!„ÿQAVé 5Ãpƒ_àRÄÓ+“œœìèèˆ)Éo×®]4­¸¸¸Éºë®…ƺƒGè y„Ƶ­¢Uýu.“Éîß¿¿nݺÐÐP …ròäIå:ê¸qV¹ÆŽ@›$4:µJA-¤“Ö ¥.¬)¿ <þ<þë‹/ˆmõ\• -»z3‹iir5îTV†a …bÔ¨Q eÒ¤IÊõůԬY³ðVâĉÑÑј’lÞ 1×1ÀÀϘL&suuý믿0 6lئM›Ô/D‹6;†UTGëˆugQCj“‡z稼Ge lmmýâÅ õ”Ðk£•ƒ_`0­ÝG›zäµ€¼µ•¥üîÑš×k _0*ÇirúN¥vÊ—ÛÛÛ[9%8‚òN¬)à®3è´6Bèòå˺§/šìV@á:…c­¨ð²²2„r$bbÏk Ÿ4Þ8ƒàµjÇŒOíÚ¦"5¶ö˜¦é#•rÕõ¡V Lî`<î€AG£åÌ4—[µf Ið¬&= gõêÕ¡S§N)ïÔsé‹F1CÏÕ>æ©ÀËŒÐË@ù:åc­;1…iY‡£œR£¨0MÍ~hh¨ò2žS§N!íéAð v¬ÕÕ®¾_EÒðÄ Úó¶«pu)ïÑ=P×x/¬íºë/6mµP.ZÇ…ŽsHAÛÊC•óКë1L´0R©¼¤¤¶°°º¨¨º°°¦¨¨¦¤¤¦¸¸V(#„(²››§§CHó½÷:³Xt:‹Ewt´6´á@{C.W”–róó9ùùUyyUyyœÂÂêòò:¹\rp°òövô÷w2$ÄÛÛÉËËÑÛÛÑÎÎÒÐVFŠ\®(,¬ÎȨÈ̬È̬xñ¢¼¤¤V.WP(d‡€×1c"\\ýüœ­¬Ì m/ð&ÈåŠ/Ê>Ìô¨àÁƒ6»ÞÒÒ,,Ì#**`îÜ!]»²\\h†¶Ñx‘Hd‡ÝÞ·/‘D"­X1rܸHSSŠ¡hÛÈdŠš>›Íc³yuu õõõõ *_¹Ü‰DFd¡Ñ¨®®v¶¶vv–¶¶]º°\\hÄW[•jjÀJ­Ic£$'‡÷EE5ÅÅ5EE5EE5õõ x++s__g‹á=bD¸§'Å¢³Xt[[˜Œ|~WoVVevveqqMee½X,CJŽŠ ˜4‰ÎbÑ==éL¦½‰ ÙІm¼ÁÄõ–•U™ÍÆ›M 3—€—þý\\ÝÜì`ö£½‚aXv6;-­$-­4-­$#£\ [Zš…„0##}¾újpX˜»‹‹m3–(‘È%Ú~åñD …†îEÉdrüé›F„B‰L&×ø“BñxÚ266J•o6U ÆêˆÅ²ÆF©¶_þ€F£=ååÜü|NI —L&¹¸Ðºw÷rv¦54HNºêÔ}åÄB¡X*Õ\/‚†I“iD"©X¬ÕÚWid"Qi¬¬l}|êu§AÙÙÙMŸ>}íڵׯ_Ç÷äççwéÒ…H¦ûfffÙÙÙŸþ¹@ èÚµ+¾S H¥R{{{  ñÕÖö¥zmllB¦¦¦*Û!{{ûÄÄÄ;w®^½º[·nK—.}ï½÷TÊ:sæŒL&stt$ŽœÚä©P&''Ç××W[횬ˆ««ëÓ§Oß}÷]å”OŸ>íÞ½;¾Ôdé®1»¥¥å¨Q£Î;|ùòå””mÙ%‰>××ÍÍ !D&ÿgôâïïO”^ZZªc'€6 «Ož¼þü㊊º°0õë?1"Üà÷ûæGFúÖ£B$’˜™éZÐkii¦c°×jØÙYæçsZà°0:B¡œœ???„PCCÃÎ; TTTÄf³år91Pñóó+--Õ¸Sw½t ±ðAQAV à„¬¼ÿéÓ§*úꫯΟ??mÚ´={öè¨{“µÐXwð#¡¬ž: …—/_ŽíÙ³gÏž=W¬X±zõêE‹M˜0AŸê«‹\cG@"‘4žmÚS¦èD]$¨)¿+**"ªÓ©S§N:iË¥Q ³kkf1MÑúÔQÏ~òäÉ[·nݼy3&&f̘1£FRN;mÚ´7ž;wn̘1Ê?½Ac®c€Ÿ1 …òᇞ?>,,ìÆÐX‹v '±YTÆ:䡬u_P¯ZµjêÔ©÷îÝSIݱ‘~¡˜Öy〼õsjîÑpÚœ× p-krúNe\¤|¹+**t×ÁH/À!†ô¹¹¹ø†FGh²[…  pWWW*•š““ƒ·Û\.×ÁÁA[ÝÃ'7Î xcÔ®§ÚµMEêö¨L©£¢ðƒî`<î èhÚ[!ð,½=kâĉk×®ýßÿþ§» :n(TÔ=Wq1^Öê^Ê7@ù¯µG£&Ušý¼¼<å₃ƒÞ8µë xp0ÙÊÃÃÉ´‡X-@KÀå ñèóyyUùùœ¼¼ª‚‚j?¿º €“ŸÏÁ'œ‹Šª1BÈÔ”Âbѽ¼££C¼½Y,GooGwwÐ0ð–ðx¢œœÊÌÌŠÌÌÊììÊœvee=BÈÔ”‚Oýõïàïïâïïâëë Ó€:ÐW]cDo¡À5†Aol”(ßáhŒ6.ŠÕï …SŠd2ÕÀè|¾H¡Àd2E}}C]]—ÛPW×ÐØ(!‘¥¥¹µ5ÕÅÅÖÏjee.Šÿþ;û￳•³óxêË_êê4Ä|×ÏÝØ°°0Ó!x;;­WÌÌL,,Ì´ýjcc®þ_4uu l6¯¦F P(ìí­ºtñps³×}oëädC´ÿr¹‚v/•ʉþŽŽÖx¹\A\t©TN$‹e¦¦SSŠ\®Je¯ü›X,–bF¡I$2!Z©TNèJ"‘áÅÕÖRj:0}IIÉž={Þ}÷ÝùóçÇÇÇ#„˜Lfjjjxx8žàùóçºÐØØ8vìØ³gÏŽ1B,=z!tõêÕ¡C‡êÎèè蘘˜ˆÿgx]]]eee“Ö666*ŠŸþY"‘œ>}zĈUUU7oÞ$Ê’Ëå ß}÷Ý矎ïY½zuBBºuëH$}§&0 Û·oßðáõÕNŸŠLœ8qݺuï¼ó…òRB¡póæÍ_ý5þUÛŒ(—®ã,©g?~ü×_Ý¥K—îÝ»«¸Ô³øá‡ú\_§+''§sçΡììl|I™¶*…â_}r⼴´GGëqãzŽÓ#0ÐÕÐv!„BedTLehCŒssSõ¯2^^Ž……Õ­f6ìì,¹ÜæÊÂèHKKËÏ?ÿ|ùòåUUU... %??ÿg§¼¼<&“©q§îzéb©ÌaXe €_ „&Nœ¸~ýúâR?~üÈ‘#7mÚ´xñbådd2ùèÑ£;w>x𠎺ëÜhtdИ@£¶•«|:Ç0l„ AAAø?2‘H¤˜˜B±M¢.r™™™Æs¢S·¨‹5åwnnn………øÿŒ=}úô·ß~[¾|¹Æ\• 1»z3+“ÉLLLÊÊÊô©…Jöòòò¸¸¸­[·öïßõêÕ3fÌèׯþï"Æ~ýúñùü;wî\¿~]%Lü4æ:DK;qâÄààà~ýú¹»»kxðà¾}ûˆ ÚlÐgø¤ñÆop@ízª]ÛT¤ŽaîÛH“~À# ¸ƒQ¹ƒ ÐÑ( géíYxv•ƒ¼ÖÒ5BÏÕA\ —ÂË@ùÆ(ÿµÖáhÔ¤J³Ïb±ž?N„$ÎÈÈÀ7@ðÔÞ,Àƒã”7…#„ôXY¤{ ®m1›úu×Sl:j¡\n“+ùu£mᢠ­©søoyàMÉeeÜâ⚬¬ÊììÊ¢¢šâ⚊ŠzG ÓhAA kksüiNM€½Jq¸sÈårüµ%oqLLÈÖÖ/Ï!•jjnþrFŸL&¹ºÒðff&/XY™›˜PB/^h²8…B1uêÔÙ³gÏš5+88øòåË#FŒ˜:uêÂ… mmm{öìùôéÓ%K–è>ˆX,–H$fffk×®Eñùü‹/nÞ¼Ycz@`mmúð×.]ºmÛ¶úúúéÓ§GDDìÞ½[wY$iÈ!'Nœ0`€D"155µ´´T.ëï¿ÿ®ªªš8q"^Bh„ ß}÷ÝÓ§O»víªãÈÇÚÚZ.—çææîØ±£  àòåËÚjgccÓdEV­Z9xðà%K–øúú¦§§¯\¹’Éd~ñÅ%%%z–®ñàÄÚJ† ÂårW¯^­¼L=ûÌ™3•¯ïªU«ð”‡޵µÕõ$â믿>xð —Ë]¶lÙ¤I“tìÔ…Ep§NË)’ ½Ò¼••™‰ …J5¥RM)²µµ9‰DÂ_æmcC¥PHø{)LM)––fdò¿?‘É$¼]¥RM¨TS …B8Ɔawîäœ8qïúõçr¹bèÐÎË—¿ß§1ò1**ê$™“¡ 1"¬jj:øú:ÿóOA«Ù£ &Ó¾¨¨Zc¤È7FGøø!$‘H¾ÿþ{'''2™š1cFdd¤³³³ò¡Þ 1or€ŠŠŠ’ÉdëÖ­Û´i±³É AGü¦Y4Êã“O>™={öÎ;CBBòóó.\8yòdssÍSI4Ïç |&PèŽ øLkƒ¼5ò~ƒŠèxqz ÇQB›Æ4Ž®uÜ#ÌŸ?ïÞ½øåž:uªòOàÆéàú ÑôéV@á޳qãÆ¾}ûÒh´‰'*Š‹/^ºtI9¢Ök Ÿ–g¼aµã4©v¤}*RŸIEÕ×x„wÀ1w@ÐÑh§­¸Ïz…>ž¥=—¾¨?S@Ðsu Càe¯he/åP>BÈÚÚZ÷:œ&ÇZ*Ìš5kÑ¢Et:½{÷î©©©kÖ¬Á—È‚à ¨½¹€ F(o Åk­,R¯ˆÆ{a¤éºë)6µP~–ñºw*h[¸hHc @”šZ|éRÊž=7.L;vo¯^ë==ç3sŒ9Kbb¶OŸ~lÆËññÉIIY••u†6hÏ46JAΞ}"&f{PÐ2\^^ 5ž=û05µ¸®Nhh{¶P(~ð />>yÅŠó#Gî"DÕ«×úÉ“áŠÊ̬Hd†¶h$Ùƒy{öܘ<ùPxøJc‹µ`ìØ½Û¶ý‘””…GG^—ÚZÁ¢Eg™Ì¹#Fìº{7ÇÐæ´R©¼²².5µøÚµô³g:t{Æ˳gŸ˜<ùÐÈ‘»zõZïåµWày]º¬Š‰Ù>yò¡Ù³O¬Xq~ÏžgÏ>¼v-ýÁƒ¼ÂÂêÆF‰¡ë#õõ êt,Ö¢éÕkýر{.LØ³çÆ¥K)0+- …¢°°:)) Ÿ‡Ñ8Û<{ö PrÇA"‘ÕÕ ‰OEE]aa5ñyö¬45µÿ>ÿ?~wÏžÄgûö«6\Þ°áòêÕfÍŠÿè£Ýï¼³9,l¥R+:?$dyŸ>Þ2tèö?Ü=vìÞ±c÷¾ÿþΘ˜íÄgÈm½z­Wþté²:(h™ò‡Éœ«<þo‰§ç|•B{ôX«lUŸ>•ÍŽ‰Ù>zô÷xˆÏçŸ>ýñ™5+~áÂåÏڵ𓆾ýöŠò)ݳçÆ?&'ÿ(_ŽK—Rþüó™òõÂ?䔸deU(_tüSYY¯, ü#K›W~r¹"3³">>yöìlòð˜Ç`ÌéÙsýìÙ'ºýàAž@ jÞõ¡±Q‚×·¦F î äá'óæÍ âlŸ<ùRÿÞÂ/ÐÎ׈˷hÑYü²~õÕ üŠú鄆}©“Áƒ·(i{!0w÷yo)ZŸEÄÑ"#ש5:z[ïÞ—âòîÓgãøñûq; A.[vލÎöíW ?~¯ø©S÷ˆ³qíZ:!¹Ç ñó––VBœÌòr.!ªšóÕf÷îÝááá‰ð_ý•Á`ÔÖÖJ$’uëÖy{{[[[÷îÝ1–““ƒ/ìQßÀ0ì»ï¾sppðððØ»wïøñãííí‡ F”B¤”J¥ýúõ³¶¶Æ÷óx¼O?ýÔÞÞžN§OŸ>](b†—…'иàëëkfftñâE‰D¢\ÖŒ3† ¢\G…Báëë»xñbu{”/yxxLœ8‘Íf¿ªÔÎÙÙYŸŠ`&æÏŸjii²aƆ†ut—®~påì*‡š>}ºµµµ@ Б]&“mݺÕÏÏÏÊʪwïÞ÷ïßÇ ûÌã>|˜Åb9::Ξ=»±±B_‹ IDATQãNL' &&ôøøäcÇîà„ûÔÒ¥?/\˜0{ö ¢qˆÝ‹»gŸ>{õZ¾2(h™Ï"=]^¹oz÷Ý­11Ûcc ºž… />Kô,ûö%ÆÇ'Ÿ9óàÒ¥”«WŸ%%eÝ¿Ÿ—šZœ™YAôÍÞø@»§¦Fpðà­71súôÙ¸sçµ²2®¡ÒÌ;9 ƇohCŒˆÿýoßœ9§t$ˆOö÷_lðu Éɹ ÆœŠŠ×X–˜˜¨ÜϪ£#âàd29,,ìþýûøOµµµü1Ng0sçÎÅ{õÊÇÔX/õ!–ŽÊ°J#MêYÒÓÓÓÓÓu§¿ ¤H¥R}}}—/_>`À€qãÆ©˜0::Z[Ýu žØ†Žìê pÙ¨hSr™×Ò¹L&[³fMXX˜………——×âÅ‹UN²Æ®A‡ÈÕ;m’x§n.ès}›„Íf'&&êN£Q$XS~'‰,Xàææfkk;~üx.÷åàYãSW‚zvI`¶aÃ;;;__ß‹/ª7¹*BUÉ~ìØ1ssó¬¬,bÏÇÉdò¹sç0¥«vëÖ-„Ð?ü€§ÑÝ 5Ù ê`àÌœ9Ó‚Çã{Z­Ù1¬¢:ZG¬;‹6{Ôå!•J·lÙH¥R}||–/_Nt¯˜ZC'—Ëi4ZAAÆ_¡;VG=ëøLk•¼±fmês7qð–·zYÊ_›¬)xÍky ô Ææ8çôÔïðÞ9sÆËËËÙÙyþüùb±X¹,p¸kÀŒÛ ”íêÉ4:B“Ý  ×(OÐj Ç0ìÉ“'ƒ¦ÑhAAA_ýµ@ 'Š~­á¾_ýÆÁkÔŽ'0µçèœŠÔØÚ«¯R}m5P§Y<¶æÐÑhÜn.·j®;hð,¬9ÃL8 …Bf±èJ¿R’Ó)ç%â¿S©/µM&ÿ«yâÕ Dèyõ·´ñÅ‹ONºŸ’RÌbÑgÌ0vl¤››¡í€ö¹¹çôéÇÔ÷ãê--Íml¨4š…••¹ÞÆÆ‚F£ZY™ã[[ <%¾Ýìc9ü…"‘L$’ŠDR±XŠ¿e§¡A‚ÿ•Jåø»yð–_9Þ}QQ ï?ˆP(–JÊÓzêàƒ[[ <Ò=•jjnnbcC51!Óh/ƒ×[Zš™™Qð÷VVæxûlmM55¥ØØPÍÍM,,L--Íá%a€Á),¬>yòþ¹sªªøýúùïÞ=qÈÐ6ñ ´¼¼žÁ€1ÀˆŠ عóZQQ 1†TÁËËÑÝÝþÎæwr²ñövº?OÿÀôÍ‹™™D¥0"‘¨¼¼üÈ‘#§OŸ6´-€ÑòÀ3Т@Gð6¤¥¥-]ºôøñãAAAiii+W®œ5k–¡šî…›‘6ð?HÀ["“)JKk_Å ‰¾¬Œ+—+BÎÎ6>>ÎÞÞNï¼äååèííäéIW-\®(.®ÉÎfçæ²srØ99ìÜÜ*<^ fáïïìïïúÎ;üý]üüœ=<è&&.x ¸\áóçeÏŸ—¿xQþüyYN[*•ÓhÔà`fp°ÛèÑ]CB˜AAŒ6ñùÀë¢P`éé¥ÿ””ýäI‘P(¶··ê×ÏÉ’áQQÚþ‡xØlÞÆ—ùåñÀ?ýô¹“¡-ø2™¢¬ŒËf×××7²Ù<6»¾®®±ªŠWYùrrt*2níâbëâB³µµèÞÝËÅ…†lm-]]iF8h+H¥ò²2naauaaMqquaaMQQMII@ F‘É$[OO‡À@×èè`OOº§'ÝÓÓÁÅÅN F†aeeuùùÿgïÎãÛ¨ïÄÿ®9$ÍŒlY‡ï[ŽíÄ ˜®4)´@é&@ éE¿=ØÒø¶tûýîn—Òmiû+[¶-=–¶i˺]à ´i¹±II'±åûÖa3’æžÑ﬘„Žåãý|èáÇx<–?VftŒœ×'20íï D‡†¢ ÃÈb3'œ[[Ëo¸aum­§¶ÖSWçQ U§ÓiYÓŒdRL&Åüó±|{Ã0”"E˨@Š–Q{Ã0]ÏU§±™€)ZÎddM3Ð2J”bfF*%¿scAP%wÍ©”ˆF~Îl6‹Ýž;£NQ¶ü'§“D‰j“ Ë·§QØ-9fmœ+Vcærå6¶ZoŒz©ùkΟ/eÙ“lŒÍªW#4M-±{ž—ººÆzzBGNôô„zz¦x^4›MUUî¦&ÿ7^ÔÜ\ø¼0¥Ç™PU]dlÖѺüᙟG!•’ #«ëF:-a† †e2:y>—ç8Ã0]7ÐCžªjhVIR%IÃ0Läü1~†HÒF6 ÃP,›u ¡ ÌfÃPŠ¢qœ˜NKÑh*K£) JK]••Eee®úz/:$ó-x—ËŽå2ñ$6ë FÑa Ã( ‡é­` €#œ ØOÀIíß¿ÿƒüàwÞyÕUWùwÁî´LœÛî±lÁq–0ؽ8[pÔ€Á–:ØÃ²L^8ÃÀlpD€ù4K b`y‚= ÷Þ{¯ 7ÝtS4­««»ãŽ;–ä>;SRâ$I[KC*%ŒÄ†‡§GGcÃÃÓ##±‘‘Øäd…ziš¬®v×Ô”äëóUU"Ý‚ $ßaWÕ\WÚ0 ”tÏf1žÑfÉd®bÓ†¥Ó²®ëØLŸZQôp˜‹ÇÓ'&“ϋ鴌&=µXÌv;nµZÂjµZt]·Z-&“ Õ¨±Y5ùsãpVkîô5ËR¨¹g6›i:wþÇsÍh,W©ÎMùØ´Ùl¢é\·=˜FÛl¹†D9?Ô³F+m6‹ÝŽ£åÙAjš&-– XSçü«³¥ªúà`´§gêèÑÉžž©cÇ&Çdžù|lssiKKYS“¿©Éøû{tf³:Žf÷âQÃÍ»0»JÁo6›òó1X,f§“Ä0 Çs‡Uþ[ìv½E•ŸkÅåóÇ—ÕjF­R›Íš?$OJ–µC‡F;;‡::†ººÆÂaž$mëÖÕ¶·×¶µU¶µUú|ÌYýš`MN&ÿð‡7þøÇ¿OoÜØ¸cdž-[Zû¡zz·Ür †aO<ñD¡ÀqO<ñÄ­·Þzž!v&E{ŽÑWè,,ùÈ#†‘ýÝïNù—ÁÇŽMnÞü½'ŸüÜå—7ÌçÀNðßÿý÷/}é÷]]ÿz††ñòË/·´´x½Þ =0æÁœìÏGŽÁ0¬µµuŽ@ÁÀÞÕœüûF"‘£G.í 8C°Gp‚¹ÚŸá¸ Ó\O€ó`ù€Ç0xÕ–:ØÃÁò{;³ÍÉ¯Ž˜m®#àÈàTà(Ëìù`ù€½,m°‡ƒåàû'äN`±Òu£¿? †Pƒ~d$–}›L&T¶jjòoÝÚøi) •+0²ÙìèhÕçO˜¢ðÆF_ à»âŠš#¡®ÎS#€s‰¤ÍÇè#šf¸Ý΋/®no¯Û±cC[[%ì]ËÁððô¾}ý¯¿>ðÚk}¡çpííµ_üâ–õëV¯®D5+0ç½ûîÇûû#÷Üsí§?}h€ G×éét4š …¸ééÔÔTî#Z¦P~Ã0³Ùäv;Ýn§ÇC{åÑšéé4ª bFQ¸ßÏz½´ÏÇ\tQ•ÏÇx½¹‹Ûí,)qB; ÀÂóÒðptvƒ>?7$†a CÖÔxPƒ¾ºÚ]]í|‹º · ùEG-Ë|•£ó!é|#þÛ+ªªa³âÑùˆ¼ªæ¶Ñ4µ óEéÙù³‚ãVŠÂ1 ³ÙÌ( m6›išÄ0ÌdÂPEÃ0—+—¿,//BO{œNÂb±`f·ã8nÁ0Œ¢pÔ’&+ªQã¸5þ,–\WÚb1£bµÉ„1 9>žOŒÅûú³÷m³ÙTYYŒ¦;…Ìh4uðàh0êí uu EUU'IÛªUMMþÏ}ns[[ES“?Ÿ‚E3@ÄbiYÖtÝH§%l&ŽY]ÏÍñ€¶”$U’4Ã0R) ËEás[f³¹9–tÝeMÕ³:¨QÀ¢laÍe³óîf³ Ç­ÕÕNlÖÔ N'1»ã¹^¼ÃqB/>w çöüŒË¢hŽvvut ¡é ÂÚÖV¹iSà«_}o[[ÜS-þxÇoûúÀ@ô²Ëê¿ÿý½ï}m0éË“ÙlbYû9ÄÜóE{Ô¯9™P³>Îíy^ŒÅÒCCÓé´ÄóR*%½óáÛl6Ñ4Ų¹r= ²£ ËR4}º÷þû·j›;îØtÏ=ß}÷µÕÕîùÛlqå•MÏ> az€Å ⰰਪ>:ëï Dò‰ †a6›¥²²¸¾Þ»aCým·­G=úòrü__0oÂa. ÷ö†P$( £zM“ Þ@Àå•M¾@À_YY •ppn #;4íîž8|xüðáñîî‰D"c³Y}--eýèå­­e­­åç™l‹H:-ïÛ×zô½½!·¬[W»cÇe76BŒ~Þ¼ôRÏ׿¾+•’¾ÿýmß¾ž{΄®ÓÓ©p˜Ÿ¹p³—“IÅ^1 ³Ù,ee.¯—ñûÙêê’K/­CË^/ãrQÅÅNTf.ÃÈŽÅóõùü:ï:ÝUUîêj÷WÐBuµûB' µTJ2 C–uQ<ˆÏf1‹”emf½¢ªz¾}BP>¿½¢h³ÖØ©ôgÈnÇm6+†a,K™L˜ÕjA]x»GOrÙÚµ5]T&ó A>›û ‡KJè;îØ¸mÛZ¿f œ‹s.Úó¼”J‰©”4ûÂqÏKù~ýÔT­O&E43Í W2S«§P³}dŠe)ô‘¦)–=¾Í55ŸœNÂé$Ünç9|/zæÆq¹½ È3Ë2ZF+AOd2² (‚ '“â©^sQŽBöùë&×úGs 5h3˜Ìþ MO§|ÿcu DZZʾõ­¸á†ÕKéD„ÍfA³IÙÌfÓŽzh÷}÷]ÎT¼ÓöíkyäåQå‹ IDATø?ýéGçyx³íØqÙÇ>öó¡¡(Lg°Áô€K$2ýý‘þþðÀ@t` Ò׋£ÿÐëó1 Þ+JßÿþÕ Þº:OEE1äwÁ|:U†¾²²8ð­[W{ûíêë½eeli©«Ðƒ‹X&#92ÑÕ5ÞÕ5ÖÕ5>8Ñ4£¸ØqÉ%5ííµ;vlü ^˜ê`YI¥¤—_îÙ³'¸gOpd$†ãÖK/­Û¶í’M›­­å°3Ì'žÿå_ž~ì±ý›77?ðÀöòò¢B°°È² qá075Å…Ãüäd"æC!.M…B Åbf6›<º¤„.-e››K7on.)qúý.}¤¡F`>E£©ááéÁÁèððôÌåxƒ¾´ÔUSãnm-ÿûÛª«ÝÕÕ%55K¡A¯ëF:-a–NËšf¨ª.2†aÚîrQجø{>ïrÙÑfÍ ÊÏloµÛñwnoµZ´ž˜YOͬ?yÖm)I§åþþp__yîë ŒÄÐ9g·ÛÙÐà]¹²ü¸¨¡Á[_ï­ªrÃ9çå LІe2²¦é¢¨*І&ŠÐu#–ó³D¤R’®gÑ] Ê«ªžÉÈù{ ž³Ùl&#«ªqæÕx³Ùl2a(ÿj2™ÂJQ¸×ËÙívÂëÍæ–ü½š=‚¢p·Z­ft£ PG>\3 i6›H‡‹]8Ìut ut uv=:¡ëÙ†ï%—Ôüßÿ{ã%—Ô44øÐü`áH&…ßýnßcu F7nlüñw\{í*˜aP C2ÌÙÍY’ÉÈùf}:-qœÈób*%ÏÜÇx^D{žOhÙÛl†É7ëI—ËžO´Ó49+gŸ[.ìK«Õ|nÑ ÃЫÈdRDµzAP’I-£çEžÃa¾¿?œJÉvì=ÍÍeó<¼¼k®YQWçyä‘Wx`{¡ÆÎÙ2ú_[Pp™Œ<0AuïÑÑXoohxxZQ4 Ãhš\±¢´©É¿vmM àüee.H6€ù¤ëF$ ƒ!£Šªªn±˜ëë½MMþ+®Üu×fØ9ÁœˆFSŽ¢ }W×X8ÌcæñÐkÖTÝpÃ궶ʶ¶ Ÿ-ô0Á|SUý7^}5¸gOðèÑ ÃÈ®\Yqýõk®¸"°vm Eá…àrôÒK=wßý¸¢h?ùÉGn¼ñ¢BP0Ñh*á''“á0s““\$¡Oãñ Ú¥çKK]^/ÓÜ\ºiSÀïg=Úïg½^º¤„†iED(Ä MG‡†¦GFbCCÑááiTN·Ù,UUîÚÚ’ööº›o^‡ô••Å8>ßo &>êÅ‹¢¢(š¢h¢¨êz®ùÎq"Ú@×uQTeYËÇ£3™\eÅþR)É0²²¬J’ŠÍ¨Ñužá`P ¢la5›Í4Mbæt‹Çs芊"³ÙD6’´™LËRØL2Þb19è[H«Õl³YP8þú\Pœ¿p˜ïë  D‚Áp¸¿?25•Ä0Ìf³ÔÔ”46ú®»®­¾ÞÛÐà­¯÷,)–*t?JɺnÌÎÁkš‘NKïÈÁ+ªªK’*Ë*š1Â0²³6ÀÒiI× IR%ISU-?_ÔiX,ftð¢ƒÔé$-3EÙpÜŠòñ$i+)qšL&†¡0 £iÒb1¡Ÿ ¬$i3›s_²Ûñh456‰÷÷‡£ãã ÃJK]­­e­­å--e--e55%𠪪¿õÖHgçPGÇÐÁƒ£ÑhŠa¨K/­»á†Õÿú¯7­\Y Vw÷Ä#¼üÌ3) ¿ýö úP{}½·Ðƒ€³ãpqVïK¦Ó2*°ó¼ˆBö(X>M¥¤ÑÑXþK©”„æˆÊ³ZÍùð:Ë¢f=ŲäL¿>÷%jgY»Ó¹PæÖ²Ù,çµ7Œl*%&“"*×ÏL ¾£eAŸžªeŸÔŸÐ²w:IT´w¹(–µ³,…昻ß{þLO§Ÿx¢ãØ?0in.ýæ7oܾ}-š}mI"I:wNàrÙ¿ò•÷~ç;ÿïÖ[ÛËÊ\'Ýæýïo»è¢ê»ï~üþç‹…šmÎd2}üã¿ýíg¿ô¥-ð׋„éà‚0ŒìØX5¾GFb(FÊ2ùÌ÷–-­€¯©É_]톘g§ÊЛͦ†_S“ÿ†V£9êê<¡ç)›Íƒá®®±`0 †ò%ú@ÀßÔäß±c”è—¹ááé={‚{÷ö½öZ_<žñù˜wܱiÓ¦ÆÒÒ“ÿO{0âñÌ׿¾ëÙgÝ~ûúú§†,ôˆad£Q>æGFbá0êó3 C’¶Âþ–9IRщ¸ÑÑØÈH -LL$4ÍÀ0Œa¨¦&S“ÿ¸¨ªÊ]]í>Ã3rùþ;ÏK†‘=M-:•’ ÃEQtEÑDQÑ4Õô’IÔ—t=‹ñ²¬‰¢j¹îü»bÊd29¸Íf!IAØÌfJÆ;ZYRâÄ0Œ¦I³ÙLVвa3•y’D•ù|3š°ÙP2žÀ0ŒaÈ|eþÜn|0oAéÍèÌÞädRUu“ÉTUUøÛÚ*o¸a :í çœç:öQMü ª† È'äà3YÓôÙ9x]ϦÓ6s?€f’˜}? ë:š*ãôfåà ‹Å<;o³YÂb1UW»±“Ý] ù!ò÷ C™Lùî‡Öòô‰Ol|ôѽßÿþŸ¿ÿý[OºÉdzøá›7ï?þã¯_þòÖy^ÞG>rÙ/¹ç;ßyî‡?üð»nœL&5íLçM`9$irr²Ð£`¡€#b “$‰$çæ)7ì$ƒ= €wH§Ósxmp\€% ÎK€eÀàUXê`ËìíÌ6WG¼: o_AÑÀIÁQ–'ØóÁò{;XÚ`Ë„é`d2òÀ@õ€FGc½½¡ááiEÑ0 c²©©´©É¿uk+Ê|—•¹ ó æ_8Ì¡=ÊågJ(.v47—^~yÃwl |+V”º\¬s`j*yèÐXw÷ÄáÃãÝÝSSI Ã|>fÕªŠÛn[¿reŪUE…&(ž—^{­ï•Wz^y¥wd$Æ0ä† _ùÊ{7nl ü…Àžþð×¾ö¤ÍfÙ¹óÓW_½¢ÐÃÌ™h455• ‡ùÉÉd$ÂON&Ãa~j* ¯Ï[­æ’º¼Üåñ076ú|ŒßÏ––º|>¦¬Ìåp@J@á¡6÷ì}oo(áÑWËÊ\>ãó1769†bÊl6I’*˪ (]]ão¼1 ªz:-뺑JIè£adAVU]’Pw^?!lw*¨¯çtV«™¢p·â¸•¢l‹µãQ-Úé$, EÙŠ2ЋÉé$1 cY’&¬V3 Iã¸ÅnÇM&sÁy €"‘ToïÔ̼§¡`0„¦ú#I[ ௮voß¾-ÔÔx`WÁ0L× 4:®Ói Í¡ª:úˆúò‚  (<šCM5‘¿ OeYEE–ut·ð®?šaH“Éüö¼Ùn'ò9øª*·É”» IIžx?€ÎÊ¢ûtO‚f˜°X, ­çnÙ¾¾pW×XW×øì=ÓçcÚÚ*o¸au[[e ௨(‚°88ÁèhlÿþÁÎÎ¡ŽŽ¡H6›]¹²bݺÚÿõ¿®ho¯…‰K…D"óûß¿ñ裯…ÃÜu×µ=ñÄ?^vY½É´° È Á>ó™ÏzçÅdÂI²ž¢šU5œJ½vnWB’u,»™ç÷ˆbϹ]Mo”¤U>·oŸ­¨èý&“•ç_Ñ´äù_gÅnÇívÜï?ÓG:QTx^BùuŽ9NL&ž9Nà8‰ã„ÁÁZZö'|;M“,K1L.ÂŽ†Bqv´/Ý/ÌùÉέeÏqº­8Nä8!‘È-$“"ºÑÐlj'L7óãN²·_ˆŠýøxâ׿~m×®7#~ãÆÆÿxÇ{߻ǗËßsºÝÎht.3IK‰ÍfùêWßûå/ÿáÓŸ¾²©éäïžWU¹¿ô¥->øÂµ×®ln.›ç"6›åýâ÷ÙÏ^}ªqæAñ€¤R©T*UèQ°PÀ±´ÍU@* ÎÉõ€Åö(.8.Àç%8ð¸/xÕ–6ØÃÁò{;³ÍɝޏàÈàBƒ£ ,O°çƒåöv°´ÁS6›-ô`‘ÉdäþþH__¸¯/ÜßF1zÔ¦ñù˜†o]·¾ÞÛØè««óTV›Ícó-–{{§Ž›:vlª§gòر©dRÀ0Ìå²75ùÑ¥±ÑßÜ\êv; =X°DD"©C‡FQ‘êСÑH$…aXeeñªU«VU ½×Kz˜ tÝ8thì•Wz_y¥÷ïÎf±5k*¯ºjÅUW5¯YS ©²"‘È|ík»ž}öÐí·¯ÿæ7oDMÀâÂqÂä$7>Ÿšâ¦¦’‰ÉÉäädrj*)˹¹4†*-eý~ÖçcÊÊŠ<º¼Üåó±~?ëñÐðÀ…ƒRѪjÌD¢eEÑDñmIhQTEEQtŽâñt4šN§åx<“ÉÈ¢¨èºa†™Ìf“ÙŒišqúJV’ÄQ åžívÜf³8úhµšiš4›Ív;Žã·RnµšÑŒ,¨ít’‹iv-Úl6Ãf0W #;6Go4©äÈH MäñÐ+V”VW»S“¿ªÊ]^^dµ.îÑ(ŸÉ((¯io›(Ååy^Ìf³rd¢«k¼«k,  D2Ùb1××{ÛÚ*ÚÚ*ÛÚ*ššügUËÇððôþýƒCƒýý«Õ¼reÅÚµ5ííuëÖÕú|L¡ÎTgçÐ/~ñê /öxèO|bã­·^ZRo0-Ašf¼òJïÿøæ /t›LØu×µÝ~ûúõëëÏözÂaîÞ{Ÿüë_žçyæ²²/ÿô§»ñÆ5çöí³><~ß}O:4ú±m¼÷Þëà™-.v9ÐÇ¢"û©ÞýÔ4ãùç»vîÜ÷Úk},k¿í¶õúP{}½w^~ûäé§þã?þfhè{6›¥ÐcYˆ #{à ÿŸÙlúÓŸ¾pª}I×›núx<óüó_)Ô|u†‘}ÿûˆãÖÿþïÏûK‹„éà]$™`ðxƒ¾¿?<1‘Ìf³6›¥ªÊÝÔäohð66úêë½uuÞBý7?°Ìiš18éé™:zt²§'ÔÓ356Ïf³v;øW¬(]±¢´¹¹4ðCäÌ¡ÞÞÊÐwuõöNñ¼d6›|ùUkk9Jøe®«klϞ૯ß|sX•@À¿eKëWÖ®­¡(¼Ð£oóúëý_üâï5ÍøîwoÞ²¥µÐÜN&#£âüÔTrr29>žÈgèAAÛÐ4YVæ*//*-u•–²Åee¬ßï*/wÁ=0€3Äó’a'¢T4ŠÈ‹¢"ËZ&#kšÁó¢®ÿ¥tZžý½ùH}q±£¨È^\ì°Z-GN80Ìqâ%—TøÃë·m»dÉÿÏÖÃ7Üð£ÎÎÿS^^Tè±,P‘÷¼ç{÷ÜsÝ?þã5§Ú&M]{íZZJýëOª ìØÔµ×~ÿŸÿùŸøÄ¦‚ œÓÀqšf D‚ÁP0 ý½¡ááiEÑ0 óxè+JS“¿ºÚø|>¶ÐãË”®ýý‘®®±`0 †ººÆÂaÃ0»om-ojòþ¶¶Š¦&?„ÀÜ ‡ù®®±ŽŽ¡ŽŽÁÞÞÏ‹&“©±ñx‰¾¥¥Üé„=À0 ã8áÕWƒ¨G?:còÊ+WlÚØ´)P]í.ôèÀI(ŠöïÿþÜÏ~öòõׯþÎwnv¹à€ÂËf³‘ó##±p˜‡ùÑÑØÈH,æâñŒªê†™L&¯—öùØêjwU•Ûçc|>¦ºÚíó1ÅÅNèÄÀr3ÓŽ×AA1èLFÑ4=ߎWU]d”EUµTJ2Œl2)†‘Jɪª¡ï•$Mdôps*aµZ†´XÌ CY­f‡ƒ +EáeÃq«ÓIX,–¥L&Œeíf³‰¦I‹ÅŒ>*Š:5ÅE£é©©ÄÄDrxxzd$†~"ËÚëêJjk=µµ%µµžêê’ÚÚ’âbÇ|ÝÌ1ÃȎŃÁ Ð÷ö†úûÃé´l±˜++‹c£o&Cï9çz(%¯iF:-+Š&ŠŠ(ªŠ¢¥Ó2ºдwÞEä§—Èò¼hºO@3R¤Rï2“ŠÈã¸ÅnÇg–­eC÷ooÄÛHÒJQh®Ž[g#º3q8›ÍìpV«ùÜnp>¦¦’¨Abô££1 ÆZ¹²¼µ]Ê?¼Ä§"IjgçЫ¯;:»»'DQ)//Ú°¡¾½½Î.^SSÉ_ýjïOtð¼xóÍëvìØÐÖVYèA¹wôèäþ°ÿùç»&'“ëÖÕÞ|óºë¯_}Îç‡ÃaîÞ{ŸüÛߎÞyç5_ùÊÖóŸ#jnÃôÇ >øçGÝ»n]íý÷okn.Ã+`é‘$õ¤ödRŒDøPˆCŸ&úÓš<‚°¢Š=ËR.—e)–µ»\Zã÷³^/ãrQEEŽ%–eÏßb³oŸx\8vl¢§'”LŠf3†a˜aÿ‹Ín+tžöMçó±ee®¥÷l|r2¹ví¿<ýôÖ®­-ôX®ýh÷ø—Ý»ïnlôj›ýûo¹å?ï¹çº»îÚ<Ÿc›íþûŸýõ¯÷¾òÊ×JK]…8+¦,_‚ ô÷‡{{C¨î †&'“ªª›L¦ªªâ@Àäôø……jàÁ`¨·7ÔÕ5>4UUÝb1××{Q€•èa²0禧Óo½5ÒÕ5ÖÕ5žŸío¨D¿bEÃ…&X(²ÙìÑ£“¯¼Òûò˽ƒŠ¢ÕÕy®¾ºùª«V\vYýùhÀ…sèÐØç?¿3Ï|÷»·¼ï}m…ËQ,–OŒÇÇÇãã‰ÑÑØÔTrjŠ‹ÅÒh·––²¥¥®ŠŠ¢ÒRWi©«¼ÜU^^TZÊA¥=Ô‹O§eYÖÒiIYÖx^”$U–5ŽdYE5•eY%–dYK§eÔŽO¥$]Ïrœpša2™P;ÞéDåèãíx«ÕÂ0”Åb¢iÊf³88 I£`4ŠÈ³,e±˜N…¤I'ˆ3ÍÆ¡$÷èh¬·7 †FFb££±Ùg᪪ÜÕÕîêj7:WZÊ.±&XnAéîÃ##1tÚyb"¡i†ÃA´´”¡SyMMþ²2—Ëe×4=?ÊÁsœ¨ëo‹Ë˲–ÉH¨ ¯iF*…&™8—WU#•gg ߉a(‹ÅÌ0$JÀ£j¼ÝŽã¸Õé$-ËÚM&Œe)twf’0›Ñ²™¦síxt7‚–çí&sN’Ôü¿`0<8I§e³ÙÔÐp|Jx[¼«dRس'ØÑ1ÔÙ9tô脦€¿½½vݺÚöö:ˆÑ/jýý‘Gyù©§„õ¶ÛÖâËË‹ =(0Çx^zúé·žzêÍŽŽ¡âbÇM7]¼}ûÚÕ«Ïkî;÷Ýÿ³ÅÅŽüàC—^Z7'ã¼az¤»{âë_ßuèÐèÇ>¶ñÞ{¯£ix· €ó¢iF2)$“B2™I&Å™e!‘@kމÜÊÙ¬ˆÎ9¸\ö¢"»Ëew¹.—Ý墊‹EE·Ûév;‹ŠìEE’´ðT¢¯©ñ@gP¾]ÕÛBa Žòó%´µU L[]ç4ÿé€s#ŠJw÷Ä¡Cc]]c‡ D #Ë0ÔêÕ•3—ªŠ Ѐ·áyéÕW{_|ñØK/ ‡yš&/¿¼ñª«V\uUSUô§:UÕ¿ûÝçö³—®¾ºùÁoõxèB€%.ægêó¹cc‰±±¸(*hŸ©¨(*//./w••¡ô¼«´ÔåõÂá ” (Š¢qŠÈ«'ʲ&ŠJ*%ɲ†róŠ¢¥R§ËÍŸ*'MV’ÄY–"+Eá4M„Íá ìvœ$mN'IQ6‚°:¤ÕškÇÓ4i³¡v¼ ml³™iš2›Mósƒ„Ã<ªÏç“ÜSSœ¢h†y½tSS)jУ}MM ÃPó30Ι¦™Œ$Iª$ièH—$õ’¤ò¼422=9™ …¸H$§AÁ0Ìj5ÛíAXm6«Ùl°¬ªê’¤I’2»-øN,k'I+:„IÒ† òèBV–µ“¤í¤°,•_9{ƒùºÀ‚gÎO}:8Ñ4ƒ$m«VU´µU¢÷GZZÊWÅÄÄDâõ×û;;‡öì ŽŒÄL&ÓªUëÖÕ¶·×¶·×ù|L¡Î×Þ½ÁŸýìå_ìilô}êSWlÛ¶J–ÃÈîÙ|≎çŸ?lÙ­[[o¾yÝUW­8Ï÷ÃaîÞ{ŸüÛߎÞyç5_ùÊÖ9œ§öÂ…é1 Ëf³»v½ù­o=m±˜ï»ïúíÛךLóôº €e.Ÿ­Ÿ¯?ñ’Hd A×üwÙíøIƒìÅÅù•ö¢"Ç™ëN×çžëÚ¹sßk¯õ±¬ý¶ÛÖßzk{Cƒ÷¬®D”D"‹¥c±\¼>‘È$™X Åës-{UÕóßBV·ÛéñÐ%%N·ÛYRB{<4êû{½¹…õw&›7oóææûÐYÐÆÇ[·>xÓM}ûÛÛO³Ù¿ýÛ3?ÿù+¿ÿýg/¿¼aÞÆ6ÛÃ7Ýôßþö¶|䲂 !K IDATœÓ–&APúú¨Aß×îë ŽÆ #k±˜++‹}ùKCƒ2ô °"‘TOÏdw÷DOÏÔ±cSÁ`HUuŠÂߊ¥MM¥--¥MM¥t‚®Á`èàÁÑ·Þ}ë­ÑÞÞ)M3hš\µª¢­­bõêªÕ«+kjJ =L°õôL½øâ±_<ÖÙ9¤ªzKKÙ5×4_}uóÚµ5 *gNcb"ñ¥/ý¾³søÿï÷}æ3WÍ[«€%/“‘"á0ó##±ÑÑŠórœ€6p8ˆúz¯ÏÇø|L¾Ì[]ífY{aGËP*%‰¢*Š Ç h!•’2YAP8NEU–Už%éä¹ùS]3M“8nu: » I«ÓIRN’V†¡P*še)·Úí8M“au8N²å|Þç –#½½¡`0|ÂãM“µµž@À×Ôä‡G:P<þÛß¾þÌ3‡x^ܸ±qÇŽ [¶´ÎÉÄÏÏ …éét,ö¶x=ËÚ=çìZ}qq®eïñÐ>;ŸVÝu×Nžó›OÍÛO\¤vï>òñÿò¡‡nÛ¶mí©¶Éf³wݵóo;öØcŸ]³¦j>‡—÷Àÿï¿xõ/ùj}ýÙMÃæ„éKA&#÷÷£ º„ÇÆâÙlÖf³Ô×{Q€>ð54ø¼8~ÿÃ'ïJUõÞÞÐÑ£“==“GŽL;69=6›MUUîÖÖòææÒ+J[ZʪªÜÈØXü­·Fyë­ÑÇÇA±Ù,+W–¯YS½fMåEU×Õy`÷'ÅqÂ_þrä¯=úÚk}ñxÆçc·liÙ´)°qccQ‘£Ð£gçùçå+•–²?¼£¹¹¬ÐÃ`QRU}r29>žÇÇÇccñññÄÔTE^l6Ki©«¢¢¨¢¢¨²²¸¢]ŠÊÊ\0‡ÌžEQE•çÅLFEdžQšç%AAeÖJQQTÒiù¤×épes8šFø·Eäó¹y‚°Îlp’Üü<ßZ6›œLF¢ƒƒ‘ÁÁèà`t|<®i†Õj®¨(®«óÔÖzêê<µµ%µµžŠŠ"‹bÇଡ|:-«ªÎó¢,k’¤¦R’¢hé´,ŠŠ¢h'ªªžÉÈ("Ïq"ŠÎ£ú|*%K’"ËÚi~ŠÓIX,–¥ÌfÃP6›Ùn'HÒF’6»Gx³ÙìrQºž%M¡œ_(Ä…Ã|6›u8ˆšwS“¿¡Á·reE ૨(†s) °¢ÑjÐ><ÞÝ=>>žÀ0Œeí«V•·¶–¯\YÞÚZÞÐàƒ=8CÓÓé}ûú÷íëýõ`0d2™ššü6Ô_ziÝ¥—ÖÃ4ºKÉÔTò?ÿó¥'ŸìÐ4ãÃ^ÿÉOn‚©j—˜ééôãïòÉ7ƒÁPuµ{ÇŽ üà%ee®¹ºòo}ëé]»Þ¼ýöõßüæ4=÷“ÁÏC˜éᄃùØÇ6ÞsÏu0±=‹K*%¡,{<žI$ÐEH$2ñx&OÇã¹õŠrü¥"ÃPn·³¸Ø^\ì,*²9Š‹%%΢"GQ‘Ãív;Š‹ÏâÝO]7ž{®kçÎ}¯¿ÞOÓäí·o¸å–u¾ ðëž žÑkÛX,ó±X:OG£)”­ŸžN'™üÆ…û|ŒÇC£N}I‰³´”u»h¶]·›žÃ—?ü·G}­³óÿÌÕ.a÷Ý·k×®7wíú\[[å©¶Ñuã®»vîÞ}dçÎO¯__?ŸÃCdY»îº8øÿøyx# `ƒ0=`ñ‰DR½½S(CßÛ Ã'`æv;[Zʪ«Ý€¿©Éø|>¶ÐƒËadûúÂ]]cÁ`8 uu…Ã<†a^/½zuU[[E àüuuø?™àÂéí uu¡4Õ±c“é´ŒãÖÕ«+ÛÚ*ÛÚ*ÚÚ*¼P §’Ífß½ûÈîÝG™0›Më××_qE`Ó¦ÀÊ•ÐÝ[Œ2ùë_ßõÇ?øò—·~á [à€3ÁóâÈHld$6:žF  M30 ÃqkEEŠÎ£…ªªâŠŠbŸGXxWé´œÉHé´œÉÈ2IÚ>øÁ‹·o_»vmí\ÒÏf³?ÞñÏÿü?,K=øà­›6æäjßiÞÂô†e³Ù]»ÞüÖ·ž6›MßøÆ Û·¯5™à–”LFN$„x<çÊõ3ñúÜíE1wºÉj5;Š‹n·£¤„ž©Õ;½^º¸øx¼žçÅ'žèüío_ïï47—îØqÙ¶mkÝ£ªªêñxzz: ñ±X:å#‘Ôôt*á£Ñôôt*Ï•ëM&SI‰³¤Äéó±3ñzÆã¡ý~ÖëeJKYŠ:‹ç»wùøÇyìØý C]˜ßlé0ŒìwþfïÞ¾?ýéó§™ó@Q´;îøÕ#¿úÕ6 Mß×~ßû~xË-í÷ßÿóÿÓÀ™ƒ0=`¡;U†Þã¡W¬(Í7蛚ü,k/ô`Àb±ôÑ£“ùøÐPTUu·®XQøPvWp¡%™7ßÎÇèÃaÞd256úP†¾½½¶¹¹ ºàôx^z啞ݻ¼ürÏôtÚçc·liÙ´)°qccQ‘£Ð£çîÈ‘‰Ï~ö7©”øÐC·_qES¡‡À‚£ëÆÔ72ΕèGFb‰DÃ0“Éäó155%ÕÕîª*wuµ»ºÚ]QQìõÒ©EÑPY>•’P8>“‘S)‰çE—Gk’I!“‘Ñr:-ŸªCͲv”¦iÒé$(Êf· C¡• C¢&õLPÞ6«A;Ä<ÿ (ýýatÎ =ê Oó¼h2™ªªŠ«ªr@¢Ç¾òò"«æ\Y"8N$õâ9Ne Åâ%Iå8Q–Õw~5™Ì- ¯¢OOuýf³‰¦)’´²¬$m(O’6–¥HÒF6T™?ÕW]®ã›] [@”îîñ`íÿ¡`0”ŸN²©©4ð£“x55%PÇ A6› ÃùÓ}½½S¥êg>2>ë÷³'ø!C]7úû#¨4»`URâ¼è¢ê@Àbôuuˆ€ƒ J–µC‡F»ºÆ;;‡::Ñ~èñÐkÖTµ·×®[W ]*p†B!n÷î#ýëѽ{û$Imi)»æšæ«¯^±vm-(»l6ûË_îù·{fÆú‡ºÝã¡ =" )›ÍŽŽÆQ~7_Ÿ‰åûÈ,kG¯;f7èá5`™à8!–ÑEާäQ\žçÅTJʯI¥$ž—ÒiIUõ®‡$mát C9„ÃAØíè ït’Î0”ÓI¢¯:M“¨2__|É3ŒìØX¾@|ùó…76úª«Ý€/ðWW»!ƽ0iš‘ÉH’¤&“¹vü ÉxŽPM}•ãDÔšûW•ÓåqÜZTdÏGá ÂêroÇÏNÆ£ˆ<ºD.1O’Ö ”?7’¤¢Î'œÄ+.v´¶–Ãig°A‰\8““É_<1úeÈ0²/¼pø'?yñÀ‘õëëï¼óêÍ›[–@' ²¬=÷\×ï¿ïõ×<ç¶mko¹¥½©É?·?EUõ‡ÚýãÿmÅŠÒïÿC--es{ýï4ÿazäÀáûî{ª§gê®»6á [.h|°è$“Âï~·ïØ?8­«+¹òÊ+V”ñ¼ ñ'pœóá0gò§ËЋk–µû|ŒÏǰ¬Ýå¢|>ÖçcX–bY»ßÏ,öW£’¤†B\8ÌON&Ãa~j*sSSZ©(¹.—5ëóåú‡~ñò˾ñë=ž™¼«dR¸é¦ÿ$õ±Ç>[SSrªÍtÝøÆ7žúÝïÞ¸ÿþmýèeó9Bä¾ûv=ñDçŸþô…•+Ëçÿ§€3az@! ‚‚z@}}áÞÞ©`0<>žÈf³ C66úÒÆFߊþ†_EEQ¡ †a˜$©==SGŽL=:yôèä±cS²{÷‘#G&ívüÊ+›Þóž–«¯nöù˜BÌTJº÷Þ'žyæàç>·ùž{®ƒiÀrÃqÂÀ@t` 2<<:¼##ÓÓÓiôU‡®®.Aéùª*wM»ºÚíó±…3Ì QTxµãEô‘ãÄ™e)“‘Òi­Gz´æ„+¡(…ãó}ùró((Ï0”Ã;¤Ã³,åp𔣰R)騱É`0Œ¦`éí O+Šf2™ªªŠ«ªÜ¨ÄbôðÀ7ox^’$U•TJ’$EUž%I½J¸ÍýÀóÒé›òv;n³Y]. Ç­èȵÙ, C¡¦sõü0ùío?}É%Õ§ÙòÁ_øÁþüéO_ùÍoÞh±ÌëÙ]7>ùÉÿ:xpäÙg¿ ò°0A˜0dYëë ƒ¡žT ŽÆ³Ù¬Ëeü€/ÿÑï‡X(‰Lw÷Dw÷Ä‘#GŽL D4Í ëŠ¥--å­­eÍÍe­­e Cz¤`é“$õðáñ¿ÿ}]&&†ÕÔ”\|qõÅW¯YSµre9Ž[ =L°hD£©?ÿ¹{Ϟ૯9Nhk«Ü²¥eË–ÖÖÖòyþéàB;ztòSŸz4•~ø#›6 =.,UÕ‡‡§"ƒƒQ£ˆÄbi ûÿٻ︶îCÿÿG€ÐB ±,Û`„dØØig4ά³œÑ6½½·išÑ¤MGÒ¤I¾m~·©Ó´q¶›4±“›Úi–í$6xˆ-¦’@ s´÷ë8Ë1ˆñ~>ôàqtâ#[BÒGÒëC0™É¹¹ùùâ“zq^^¦R™9§c.° „ÃQ:"ò8y4àvû)jr{ênw ŽžzG ` ¡ÃçsNÍÍO%æé¦<—Êã±6ŸÏÁzW³_4ëíu6:@OÇèIÒG—›ZX(Õh¤Z­ŒŽÑ«Tbü5¿uÆsf2“¹\ŸÏb³™§n¤¥±Ùl&—›ÊãM¦ä§óLf }2‹)r˜Ìd5Ãÿ ³ÇÔMÀh´ £Ñ6<ì ‡£,VŠV+§¯ÿL§ËA†f•ÓJô]]#n÷é%úÒREZÚ½u÷d³‘õõÆ3Æè+*” ùŽcA±ÙÈ-[>~óÍFƒqûíµ7ܰJ"á'zPpnLLx_{íðöíGF[iiöÍ7¯¾ôÒ%Óôz¥Ïz챿ürCuµúÉ'¯ÉÏOÇo9£†éi‡û‘GvîØq´®®ì±Ç6fg‹5H ¿?ôÖ[Ƕm;d0˜‹‹å›7×\zéRà,GÇÇ='ƒõ^ºYo³‘N§glÌm·SccžPhr:'U"á‹Å|±8í´f}ffšDŸ£ïZyíµÃ<°ãÕWïp8¨‘rdÄe±LŒŒ¸l6òÔf½L&”ËE …H.eg‹Št™L¨P¤‹Åi‰BPTছžëî¶ýío7}ù‹¿o½uôÞ{·ëõª-[nÈÈàÍØ ‚ ¨À¥—þojjòŽÿuNn/pn!LÓÅë ¶·[F;Ý 7mv;E„DÂ×jåt H«•åçgáãg0{„Bzá:ÔÝ=BQƒQTD¬¤t+˜ápôÄ }mlj0™œAdeñ—//¨ªRét9ee ôƒà›2Ì»w·ïÞÝÑÞnMNN:ïe§/ŒœzÉÉIbqšPÈ 9l6“Íf …¡+qè"÷Ô=l63QÎ9»2m&“óäºNºÁ”ÄÈÍÍÐhdL©œ¼Ä AÑhÌã з¸`0„IÒLnÐ{¾ô[§ß§$''¥¥±ÙìúVÆb¥ˆD“ôž¯ó­þטb±8½ú©Ñh£'ŸFÃá(ýžs¦o EzJ Ö]ƒY%z˜ããÞzêëˆÑƒÑhûË_öþë_'23Óî¼óÂk®ÑóùxAv>ˆÇã =Û¶úðöÔÔäË/¯Ø´i…N—;}¿±¡¡çÞ{ßs?ôÐeßÿþrcF—.Kx˜žöñÇ¿øÅ’ôýüçß¹å–ÕXÜ`áèî¶=ÿüþ;OøýáË.[zÛmµÓú'÷ŒB¡ÈÄ„×åò;”ÍF’¤ßn§ìvÒn§ìvŠ$}££îXlòýŸ,VŠL&”H"W*H¥¡ð³ìlÑ,|<`±Lèõ¿{ýõžwžö´oƒ‘‘×ððäÁfsY­.«uÂf#Çǽôi8œÔÜÜŒÜÜôœœŒœœôÜÜ …"#77cÞ/Æ Fî¿ûŽGï¹ç;?ùÉš/¹ƒno·nÞüB(yúéï¯^=£K˜ 9/»ì霜ôþó‡x20Û Lç†ßjmµ|>CŸ–Æ*)ÉÖéré¨7r0ÛÐ+(Ð% ƒÁBw¬Ølæ¢E9S×Û’’ìYøé\˜¯ÌæñÇûèëd{»Õç ÑWH½^­×«°.œP(²o_÷îÝíû÷‡†œR©°®®´®®lõê"'5Ñ£ƒéBQ»îzí£Úï¿ÿâ;ï¼p†ƒAçœÉär~>ÂK„R™y2@/£côÙÙ"&39ÑC€…ˆ¢ü>—ËçrùHÒ71AGç½.ž÷¹\>Š ¸Ý~Š œö³t\žÏg …€Ãçsè ú«@À>å+G àp¹x 7ÿaºAO¸M&çÔ*,ôœ›V+£ï5™J%NMMIôÏ=º¿Dð©Ë6Ð$éûªo…¾(+Ÿšš’žNÇâ™§®ñ@ï‰8_ù-dåg@<§'œéµ$éé;ºåMÏÝÑzµ: a¶A‰fÆÄ„·¡1zøLW×ÈÓOïÙµ«9;;ý?8ïškªñÜa~ó¼ñÆ‘×_?200¶zuѦM+êêʦõ©ÛxøáÿøÇáuëÊþð‡ y}j–„é ‚Â[¶ìýóŸ÷ËŸ|òê™/SÀL ‡£|кmÛ¡††žÜÜŒnXqõÕú¬¬Y:§¨€ÃA9‡ƒu;›£7H§Ó351’œœ”™ÉËÌäK$ü¬,~ffšD"‹Ó23Ó¤RzƒŸÞÖ¬yråʇ¾âëÿH vY,ãË„Ù<ùÕl·ÛI:ÓÏb¥äæfLÕêé¼¼ ‰D0Ÿ^3}á…úßüæ .(yòÉk¾¤Åïtzî¾û={Úÿë¿Öüüçß™ÉÿåÁÁ±+®øKNŽèõׄ'¿³ Âôp6è*Vw·Íh´6ƒÁLgè9œÔòr…V+£‹e˜mèšÛT ˆ¾êfeñ—,ÉÓérèŽUA$!Ÿ¶……)75 46öO]' FQ‘T§ËÑëÕUU*\!á¬y½ÁO>éú裶?î÷ªÕYuuek×–éõ*Ôúæ½ÎÎáÛoÉã lÙrãªU…‰À7f·“ôs £ÑÞßïèíµÛI‚ RR’rr2Ôê¬ÂB‰Z-¡7d2<é€iDç­O&æ§¢óÿ‘›Ÿúîis­"wê rÒÓ¹B!wª//qé =Ý Ç#´Ž®o M.ÁB¯ÈbµND"±¤$Fnn=e¡Tfι¥Ýî@ öùBnw  û|!Šòƒ‘S7ÜîÓ÷œú-:(öy|>›ÅJáñXiil6;…ËeMíáóÙ,“ÇKMKc³ÙL.7ujÏ©ßJNÆÓíYçäJ ““σƒ£`0yy“·ú& VK3ƒY(‹÷ô D3ÁåòÑ%zÄèáTƒùÿw÷‡¶iµ²Ÿüdí† Kðhg~8vlðÕWîÜÙœšš|Å•×]W=Uô÷ßo}àápô±Ç6nذ.üì ÓÓ:;‡ï½w{KËÐM7­¾ÿþ‹ñ÷`þ±Z'^zéÀŽMN§ç;ßÑmÚ´bÕª¢¤¤¹Ý1ÿ|¹Þn§FGÝãã“ û©r}R#+‹/‘d2¡D"ɧn‹Åüizhñè£ïþû߆øögG­Ö ‹eÂjLÕ›Íã˸ÍFF"1‚ RSSŠt•J¬TfæçO}³Xsu¹ÇcÇÿç^÷þö·—_uUÕ—œò•Wþö·ÿ*)‘ÿéO×j4²agçð•WnÑérŸþÜuÌÓÀ×b6öîî£ÑÖÕeëé±ûý!‚ rs3´Z™V+/.–iµrFšš:W?ªó•Å2ÑÞnmk³¶·Æ¦ IDAT[ÛÛ­fó8Ar¹¨¼\QZš]Zš]^®P*Åsý³Ä0·8ž£G›šŽ4,~ˆÍf.Z”SQ¡¬¨PVVægg‹=F˜ÃFGÝ}Ôöá‡mõõÆH$¦×«Ö­+¯«+S«³=4˜!»v5ß}÷? $ûÛMyy™‰ÀWvõôØ»»môW£ÑFQ~ƒ‘““^T$•J…YjuVA$?_Œp3|{$é³Ù(’œ¬É“¤Ÿ$}.—ÿs{|SU&“™œ‘Á ¹B!‡nÍ …\‘ˆsÆ=l63Qf?¯7Ø×ç »ÛtŒ~pp,ŠÁ糋‹åZ-Ý —i4²ìlQïþ¢ÑØØ˜;ˆÐ‹4ƒ‘@ LßL‚Áp ¦o;gÚú-hJjjJz:—Íf²XL¡Ãf3ÙìÉ ‹)q¾ò[¸}Í££î®®ú }‹ IAYYüâb¹F#Óér´ZY~¾X à$z°g€=̤@ |ôèÀÁƒ}ô47…ÃQF¶reÁŠ…+VŠÅi‰ $ÒîÝíùËÞ¦¦Õ«5?ÿùz½^èÁ9@Q·ß>öê«;;‡++•7ܰjÆÅNêôÿ^ÿï~·óõ׬][ú‡?l”ËùŠÕl ÓÇwì8úë_¿#p{lã'zDpÄãñ={:¶nÝà@L&¼å–Õ7.“JÊš¸nwÀá ÆÆ<6épP6ép¸m6—ÃáqyÇS’’B!W$âŠDt\ž›žÎ¥÷…œ©m‘ˆ#ñX,ܽÂ7‹ÅÍæq£Ñf4ÚL&ç©émúîO«•ååej4R:F?MÅ«H$æõ(*àó…|¾Çp»'·Ýnÿ)Ûgr›¢ü^oÞþü¦¤$ñxl€Íå¦òx,%p¸ÜT.75-Íç³ém>Ÿ–Æf³™<^êÔÇž±îÌ*¡PÄh´¶©ýÐÐx<g2“‹Š¤'§eZ­ü°--uÝu˯¿¾Z¥š¡ugwíj~è¡ÿ‹Db?|Åå—WÌÌ/ý³0LOs8Ü<²sÇŽ£uue Ï÷À·áñßzëè+¯èìY¶Luà +.½t)&OC/óy²YOºm±LD£1úd,VŠL&”H'¿ ¦¶³³E|>û‹Î?Ž.^üÐÿwÝxþ ]¤“üþÉäšLÕÓCCNzµE‘ˆ›Ÿ/V*3óóÅ*UVAD­ÏÚ·?nzä‘]ýW\Qy÷ÝëóóÅg‰ÄþùÏ#Ï<ó±Ù<~Å?úÑ…%%òD ¾­úzã¶m‡>ü°ÉL¾öÚêo\YT$±ß Ež~zÏ_þ²W«•?ùäÕ‹åÌØ¯þJ³ni1H®»®zãÆª3þKÒ{“iìÊ+—ýìgëss3¦{l¡PäþûwìØÑtß}ÿèGbM€B˜`þóùBmmƒÁb4Úº»mÝÝ6Šò!• è„·F#Óhdjuz@0;¹\¾ÖVKw·íÔýÔ%zH¬@ L—èZZ†(*Àb¥èõj½^¥Óå.^œ7«>) sÝNíÚÕ¼{w{cc,_¾¼ ®®lýúòøˆ8ÌrÿøÇ¡|{ÅŠ‚gž¹!=—èáÀÂ2:ê>™¡·´µYÇb±8Ç*)É./Ï.)ɦ{ôB!7Ñ#€DóŒ¹ívÊá FGÝv;56æ¶ÙÈñqïø¸wb‰ĦNÌå¦fdðÄb~Fïä!M,N›ÚNOçfdð 4k`¦™LN“iÌ`0wwÛº»íƒƒ£O &39+K™ÉMO祤$s¹©©©)nwàëÄå †@Àa³S„ÂÉv<›Í 'ÛñŸß¸<Ìôâ‘ôÒ§ô¨ô""ôú‘Œ^ÓÎ0'azòÙ`0ÓëM‘™™VQ¡ÔérôzõâŹ'ÑÄyÈn'wïî˜Zè”ÏgŸ~qM¦¦F£Tf&zt0냑W_=øÜsûFF\×^[}çæç‹=(øV\.ß?þqè7{{¥¥Ù7ß¼úòË+f8ŽÜÐÐsß}Ûê¾û.¾ùæÕ))³k}åÙ¦§ut ß{ï›­­–o\õ‹_|—ËMMôˆà ,–‰—_>ðÆG<žàÆË6mZ¡Óå&zP š×!jxØe±L<ýô &3™ž7¦O“šš"— e2aNN†L&ÌÎ*ér¹H&fe%þápthÈÙÛë kõô¢•ôàSSSŠŠ¤T«•k4ÒâbynnÆ §ê7ýóŸGþõ¯~hÕª¢ –ÔÕ•öïÇß}·å‰'ÞýîwÿâßG˜Ï=·ï÷¿W¯WýùÏß—Éðv/€Ä@˜`¾‰Åâ==v£Ñf4Ú芊ÝNÁf3-ÊÑjeL§ËAf³ñqï±cƒS% »b0EER:C¯ÕÊ4)Jô@VëÄÁƒ½ƒ¥©i £Ã‰ÄÄâ´+ «ªTz½ª¤$Á58·zzì;wžØ½»£­ÍÂá¤^xaÉÚµ¥k×–¢?AÄãñ?ýé£?þñƒÍ›k~ýëËð÷¦[(inšÊvu¸Ý©‡jSO7ðP `¡ ££n»óŒŒN§Çf#GGÝe·SN§'ŽÒ§LMM‹Óäraf&_*œÌͧedðèíôtZÛ0c(*àõ<ž Çôx$é÷zƒOÀã ºÝA³Ùi·“>’ô¹ÝÁ`0‹}Ù\º@ÀáñX\n*Ç8\n*—›š–Æ8N*—›Êç³6‡“Êå²ø|ŸÏærS9–@Àž±‹ pÖâñ¸ÑøÙ´³Ñh³Z'"‘‹•BÖ0ksK,ok³46œº*—›ZY™O¯7‰ç50}ÜîÀ§ŸvÕ×ëë&““ÉL^¾¼ ¶VSS£)-U̶$4Ì~è…êÿþ÷}åß´iåwœ‡ÅJçºÁÁ±_lxã#~xݺòo\¹zuÑ /À6>îýÍoÞyë­c矯}ì±yy³q=Œ¹¦'"Ž>÷ܾ?þñÜœô'ž¸ººZèÀ¤x<¾gOÇÖ­ûèQ(Òo¼qå5×T‹Åi‰œîž{ÞlnÚ½ûçôQ’ô™LN»²Û)“Éi·“v;54䤧#èÓ…\¥2S*H¥¥2S"Èd¼¼L…"=«].__Ÿ£»ÛÖÓcïê1í##.‚ X,:U/£_MÓjeyy™IIÓ~ïïó…öìiß¹³ùã;°J•µreካVN=í ‡£¯½vøÿw·Ëå»é¦Uÿõ_k23§÷6ÒÖf½óÎWÆÆ<¿úÕ†k¯­Æ2´3az€9o|ÜÛÞn¥»F£}``t* I—€tº\F–ØÝ|¹ÑQwsóЕèuºœâb¹@ÀIô0aáš*U55 46öÛíTR£¼<‡.Ñëõ*dªàœ‹ÇãMM»vµìÙÓn29%þºuåuue55¤ZaJ ¾ë®×ß{ÏðøãW]{mu¢‡ó“ËåkmµÐO7 ËÀÀh8MMMY¼8w*C_R’Í磨 0Ÿ…ÃÑáaþ9y˜Ü&IßÄ„/ŠÐ§d2“³³EtH"ˆD©TH‡¤RHÄc±R{Y`^ ÂtYž¢ünwnÍ{½AŠò»Ý“ÛÏÔÑÉ=nwàógÅd&''3¢Ñx$£gÎÙlfz:/+‹/— e2a^^FNN çrS…B.½Áã±fürL¯‰ o[Û¦óò2èL£‘H0í s½¸ÂÔtGǰפŸÚÐSÐ:]na¡$9×g˜ápôðá¾ýûõõÆŽk4_´(§¦FS[«©¨Pâ| Š <÷ܧ/½tÀç mÞ\sÇçeeñ=(8{ñx|ß¾î^¨ÿøãά,þ¦M+7mZž×˜¶oozä‘]ÉÉI?~U]]ÙÌàkšCazÚÐóþûwìÛ×}óÍ«xàü…H,’ômÛvèõ× Œ­][zÛmµ«VÍ@Îαc¦ þ¿÷Þ»kÉ’¼/?åiÍú¡!§ÍF:”Å2ÎÆf=Ezzlt¤¾»Ûf4Úl6’ 6›9•ª/)É./WH¥‚é†×ýô'pùå·Ü²Z§Ë¾ñx<ÁÇ綾ªªT>zeq±|ú~|ÂôsL4ëíuÐ1 £ÑF'¼ ‚àñX¥¥Ù:]‡”g HCÂìe·SƒùÔ}R£°ð³=ò¦på?r¤¿±q ±±¿³sØã …\:C_U¥*+S %Ó!ŠìÛ×½kWó'Ÿt9ž‚ÉE-ª«+­¬ÌG Nc6ß|óÖñqïóÏo®¨P&z80Äãñ¾¾ÑãÇM'N˜Ž4máp”ÉL..–—•)ÊËååŠÒREZîæ•h466æ&jxØåtzl6rtÔ=:ê¶ÙH§ÓGéS2™Éb1_.ŠÅ|©T ‘ð³²R©@,æËd‚¬,~j*Òóp6è+a  Â$é#I¿Ëå 'º\~’œ<êrùHÒO’>úŸ?«””¤ÌÌ4¡Ëf3Y¬‘ˆ+rè£lvŠPÈe±˜åu»†‡I‡ƒ´ÙÈH$–”ÄÈÍÍ [ÛT«•)•™B!wæÿ5fÞM;s¹©eeŠS¦±x$Ì%ccž'Lƒ¹±q ¥ÅLQþ©Yh½^]U¥R«³˜ÌäDæ­x<ÞÚj©¯7îßoxäHÿ±c¦®®:”ŸžÎ++SJœNOk«epp¬¢"oóæÚ –Lßsçææ¡_þòí–óu×UßsÏw°ÀŒA˜`¶u77ÑE3,£ápt*ž¢ÕÊ4™N—#• =R€/ÇFûT†Þh´“¤ÉL^²$oê:ŒÌ7ÌÝÝ6ƒÁÜÔ4ÐØ8Ð×çˆÅâEERºD¯ÓåJP‡iBQ?l}÷Ý–††ž@ ¼lYþºuek×–iµ²D f©Ã‡ûn»íÅÜÜŒ—^ºáÛ›˜ð?>tâ„éøqÓñã&Šò§¤$•”dWV*/Î[´(§¨HŠ\#À<à÷‡¬V—ÝNÑE›q9”ÕêsG"1úd"W"de¥I¥B±8M&ee¥I¥‚¬,DÂOOç%öRÀìG’¾@ L§äIÒ„ðÉ”¼?œUz¢'%‚`±R´Z¹R™©ÑHé½J%ÆÊ °p8î–L;Ã|C’¾ÆÆS×C%B©Ì¤'÷tº,²3Àjøä“®úzãáÃ}££n€}ÞyÅ55ššR™™èÑÁÜàõ_x¡þÙg? ‡#7Þ¸ê?8Î9­³sø¯ýdçÎf6›yà +G‡£þóî-[>V*3Ÿxâêª*UB†ñÌÑ0=A$éûýïßݶíІ K}ôJ,,03Âáè;ïþùzƒÁ\R’}Ë-«¯¸¢oD™C¶lÙûôÓ{Nœø-‡“znÏÙã O Ó©z—Ùì´X&Ìæñ‘=1Îd&+é99Sµzú • fæ]"nw ³s˜žÆ4̃9Œ¤¤$©Õ.‡^2°¼\1Móó$éëê²uwÛºº†{zìýýc6Ç Aę̔âbùÊ•+Væç‹•ÊÌs;‰Çß|³éÑGßõzƒ×_¿ü‡?¼ ;[tÏÎaz€Ù%ŒtwÐ1 ©~7A¼²2Òjejµñ˜Íb±xOÏg%úîîŠ °X):].ÒérÕê,äM!áB¡Hsó]¢§cU,VŠ^¯ÖëU:]î’%y¨½À´"I߇¶ðAë¾}ÝÁ`¸¢"ÿ¢‹Ê/ºh‘Z˜* Ìo¾Ùtï½o~÷»º?ýé: íT8~èèÑÁÆÆþ©\#ƒÁ8u9–‚IJ –c˜“°Å2AGv¬Ö ‹eÂf#GFH›ÍEQú4Lf²D"ËE2™@&Êå"©T P¤K¥™LxZÔ¬p8:>îùâ”üdwžnÊa’ô±/O“™œ‘Á£ûòl6“ÍfÒ)y‘ˆÃf3Y,&ݧ¿Ëb1§ºóßṯXÜl7?kЛLNznÇc•–fkµ2¥2“ÎÐgg‹0/ G ¦g›éºÙÔ´³XœVR’ig˜»‚ÁHKËý¼Æ`°ôõ9¢ÑXF¯²2Ÿž…Æú 03HÒ·¿±¾ÞX_o4™œLfòòåµµššMi©ϯáëóùB/½ÔðÌ3ƒ‘Í›k~øÃó±6ØÜ‰ÄÞß°uëþ¦¦­Vvë­µ—_^‘ÀÇZÇŽ Þ{ï›&“óþû¿{ÓM«æÊ³¡¹¦§íÙÓqß}ÛÃáȯ~uéUWU%z8óÙȈë…vìh÷^vÙÒÛn«Õér=(øÆ†‡]ÕÕÿå/›.»léŒýR’ô™LN»²Û)“É94ä4™œƒƒ£SÓéB!W©ÌT*3%L&ÈËËT*3§{ Åë vv·¶ZÛÛ­mmÖ®®‘P(’’’TT$]´(§¢"Ù²|­V6}Ñü`0b2™LÎövëž=Ö@ Ì`0èZ½\.T©Ä¼¸X¦ÕÊŠ‹åç[þF¿?ôÚk‡Ÿ}öS‡ƒúÞ÷*üã5……’srYàŒ¦H0“Éi4Ú¦ª@£áp499© @BgS´Z™F#E9f¹h4ÖÛë˜*Ñwu¸Ý'µ¼\1U¢GÞf Ÿ/tâÄPSSÿ±cƒMMƒå8Ë–åWVæWUå/]ªäñ`ƒé51áýàƒÖwßmihèa0µµšõëË×­+ÇBð•b±ø¯ýÎ /Ô?ðÀwï¼óBƒ‘èÁœA¯ÔÔ4@Çèûû‘Èd®‘ŽÑ—”dóùìD¾®x<îp¸§ôË„Õ:aµN »œN}6›™““ž.— ³³E‰ ;[$“ ¥RaVVîDŽh466æ&ÛñŸKÉûIrò(Ý'I_  BŸOÌ'''‰Åi_’’ÿ|wþìúò_½¾#=·vêÄA _«•k4²“%zÌ­ÁÂÇF;½HƒÁ`1mVëD$KMM).–k4RL;ÃÜuÚSú/?=}r±I”èa†D£±–sCCO}}wSÓ`(ÉÉI¯©ÑÖÖjV¯.ÊÌLKôaŽ¡(ÿÓOï}ù冤¤¤ŸüdÍM7­Æj1s×ø¸÷Åë·m;ìtº¿óÝ­·ÖèõêŽÇë þ¿ÿ÷ÁóÏﯨÈüñ«´ZYóMÍõ0=Axä‘ÿøÇáµkKü*™ Tαúzã¶m‡>ø U,æoÞ¼úª«ô ^rÃn¿ý%›Üµë=‚$}6åpP&“óëëUª¬éx¹-‰õôØÛÚ,ííÖæf³Á`Â<kÉ’Üü^Œ IDATeËTÊÊÊüŒŒi\Ð(?nú¿ÿ;þ¯w:½ÙÙ¢œœŒx<ÞÓcw¹|AÈå"­VVY™¿|yAEE‡“zv¿(޾ýö±gžù¸¯Ï±n]ùõ×/¿à‚âéëï,dǪ́X,n2µµYÛÛ­#ÃËAii,­V^Zš]R’]R"/)É…„ÙÎjhi177µ´˜[[-.—ÉL.)É^´(‡>”–f³X)‰&AÄÄ„·©iàÈ‘þ#Gú s$+(TV*«ªTË–©ŠŠ¤IIèr´³ÙÈwßmÙµ«ùرAµ~}ù† KjkµøS _“Û¸óÎWì{ê©ëætˆfRo¯ãСÞC‡úê³ÛIƒQPUQ¡\ºTYY™_\,ǺA³ßؘghÈ94ä§¿šÍÎáa]ßf0 ŸÐgg‹rrÒŠt…"=;[„æ| F(ÊïñÜîIú)Êïñ)Êïv¦.—Ïã PTÀã xôÐÿy<Á¼äûß_>ç–©›azÚ§ŸvÝsÏ›nwà—¿Ü°iÓŠD`>‡£ï½gxþùú£G-ʹå–Õ—_^çóÀ½W]µåý÷¶xqn¢Çr±XÜá Ìæq³yÜb™0›Ç-–ÉíP(BDrr’L&ÌÉIÏÍÍÈËËÌÉIW*Åùù™r¹èÜŽÄdrÒ ¶ æææ¡p8*• tº\.G¯WWU©¦éæÆê}çÿþ·¢üåå ½^¥Pd„B‘¾>ÇÑ£ƒ£Lf²N—[]­®®V¯ZUÄå~ã)åX,þþû†­[÷76H$‚—]{­¾ @2—`ÁB˜`záÎΑövk{»µ½}¸³sØë 2 ¥2³¬LA7èKJäJeæœû8,@‡»¥eˆþLcK‹ylÌÃd&—•)/ÎÕér-ÊÕjeˆ[Áì12â:|¸¿±±ÿðá>£ÑžœÌ(+STW««« ôz20cÇÞzëèîÝmm–´4ÖºuèÑÃÙ0›Ço¾y+Iú_zé¶òrE¢‡³ZOýС¾C‡zêu8Ül6³¢B¹|yAee~EEB½³–ÏršÍã&Ó©z§Ï""99I.æåeæåeææfÐúìl‘B‘Žgasš×¤ òtPž¢ü姃ò'¿úÝî ½Ÿ>½&Á©¸ÜT>ŸÃç³NZ[(ä>Ÿ•–Æ8ii,%qé²|ZžŸíw¡P¤·×ÑÓcïìîíu6“ÉI_v…"½°PRT$-*’JµZYF/Ñã˜iN§§£c¸µÕÒÑ1ÜÑ1Ü×燣))I’âbyY™¢¸X^R"W(Ò=R€³‰Ä:;‡ý´kß¾îž;“™\Y™ÞyÚÚZ­N—“œŒ%ßà,¹Ý¿ÿýÓ^hˆF£·ß~Þ­·ÖŠD³ý:|‘Çûþþ÷}}Ô¦TŠo½µæª«ªøü¯C?88öàƒo}úi÷UW-ûå//‹çäëbó&LOIú~ýëwÞ|³iÆ%=¶ÏdÎÚØ˜gÛ¶ƒ/¿|p|ÜsñźÛn«­¬ÌOô à\Z³æ .÷©§®Kô@¾x<îp¸§"õSÁz³y<ŒÁf3U*q~¾X¥ÊÊϧ7Är¹()é¼]$}Ç?n¢ŸD»\>µxq+WVT(§ã ápôÀž½{;÷îíKOçwžvÍš’ÒÒ쎎áC‡úìãpR׬)¹ä’%uu¥g±è©Éäܱãè[o[¶Luñź‹.*ÏÏŸó‹°!Lp.Åãq£Ñn0˜F»Ñh3Ìv;EDF¯¬L¡ÑÈtº.W­ÎB6æ„¡!ç‘#ýƒÅ`0wwPT€ÅJÑéruº\úÊ\X(Arfp8zâ„©©i ±q ¹yhtÔ-rkk5UU*½^UZªHIÁÕfݣߵ«Åh´ lºGÞyÚÔTôèá;t¨ïöÛ_ÌÍÍxé¥[¥Ra¢‡³Ñð°«¾Þ¸o_÷=££n>Ÿ­×«ª« ª«ÕK–äáÙÀl FúûGFFûûÇúûýý£££nú»<:@Ÿ——1õúÙ$}@Øåò“¤$ý.—$ý$é "@øL;Ct“èTB!—ÍN ¹B!G$â …¡Ëf3?¿S$â°ÙL‹Éf3ryÏ­p8ÚÛkïé±wuÙŒF[W×ÈÐ3‰%''ååeË ¥'Kô•èñÌ´X,>88ÖÖfmo·vtXÛÚ†ív’ ˆôt^Y™¢¼<»¤$»¤$kFœf·“ÇŽ™Ž<~Üd0Xüþ—›ªÓåVT(++ó—.Í“ÉðtfT8=|¸oÿ~c}½±½Ý‹Å-Ê©©ÑÔÖjôz5–œ„oÉï½ðBý_ÿúI8½ãŽó6o®IOG¢zN ÂÛ¶z饆±µkKüã õzu¢E¸Ý'žxÿå—tºÜÇÛ¸hQN¢GtöæS˜ž¶gOÇ=÷¼ÇŸ|òšºº²D`Ž©¯7nݺïÞ¹\ôƒœõÕUX°j^zñÅúGy÷ðá_feñ=–s€$}&““^vjÃlÅâAH¥F¦Tf*•™yy™Jefa¡”ËýÆ÷Sõ÷?njlì?t¨¯¯ÏÁb¥,[–¿|yáªU…Êéx»ÂÀÀ(]¨?|¸/ŽjµòêjUee¾J%éì´îÜÙ|ð`/—zÙe×\£¯¨P~ÓóÇãMM¯½vx÷ ¯F#[¿¾|ýúò%KòÎIÙ`aB˜à[ #--CF£½»Ûf0˜»ºFÜîƒÁ(*’jµ2FJ÷»Ñ…¹blÌsâ„É`0Ó1z»b2“—,É›*ÑHö†Y%Œ46ö76ö76?nòzƒÙÙ¢•+ õzuU• k'ÀÌ}ûíct^,N»ì²Š WVæãªgmçÎæ»îz}õê¢-[nHKC†>ãñìٿ߸wo¯ƒËM]±¢ ¶V»bEaI‰vf‰p8j6÷÷Ò%ú¾¾ÑÑáa=#'—‹Ôj±J•¥Re©Tb¥2377íg‰p8JQ~Šò“äé_ÝîÀÔQ'@Q·;@QþÓÎ!)‰Áçs„BŸÏ>í rø|Ž@ÀNKc ôNŸÏ ¹ ¹°3Ìë ¶·[éù4£Ñf4Úè•9œÔòr…V+S*35™F#ËÉIÇ=,LôÑhëî¶ –þ~G$£ŒÔjeô¨ÅÅÙ;Ñ#8{.—¯©iÀ`076´´ QT 55eñâ\.W¯Wéõ*¼° aµN|òIW}½±¾Þèrùd2áÚµ¥55š+ Åâ´Dæƒ@ üüóûŸ}öÓP(rÇçÝrKMF’ôs’ÝNnÝZÿÆG<žà÷¿¿bóæÕ*UV¢E±}{Ó£þ;Šüæ7—]yå²¹^kaz‚ ÜîÀÃïܶíІ Kþð‡X—à+ùý¡·Þ:öòËÚÛ­55šÛn«]³¦t®ÿ}ƒ/ F–/ø{ß«üÕ¯.MôX¦ Iú&ÓØà sppŒÞ°ÙÈx<Îd&çåeH è² ²Îz©6'x℉^p«­ÍÂ`0ÊÊ55z}ës>³äó…ê;r¤ïÈ‘þ–s(‘HøË–©-Ê¥(ßÁƒ½--æ¥Kóî¼óÂï|Gw·âh4ÖØ8ðÑGm~Ø688–žÎ[¹²påÊÂÕ«‹ŠŠ¤çö²Ì{Ó|3N§çøq$`þ˜˜ð=:xj‰>)‰QX(¥3ô:]Nyy—›šèaü’ô5646Ô×;:¬‘HL£‘éõªª*•^¯V*3=@Xˆúúï¼s=z8çþö·O~xç­·Ö>ôÐ¥¸:­½ÝºwoçÇw?>‹çÖÔhjkµË–å3™É‰ÀBçõûú==öž{o¯Ãh´™LÎp8JDFO¥Ê*,”Ð zµ:K¥Ê³­™ FHÒïvOÆå)*@Q~’ôýçÑÏ¢ó~è´s؇nÍ ú¨@ÀIKc SzŸÏ8iil¬1@û¢ =—›ZV¦ çÓèõ †+‹÷ôØ ³Ñh7môA™™iJfrTµ: ÷`N‹Åâmm–ÆÆƒÁÜÔ4`29 ‚P*3«ªTtŒ¾¤$WrH'øÉ'tŒÞdr¦¦¦TW«ëêÊêêÊ0Û çÐT’Þç mÞ\ó£]€$ýÕÝmÛ²eïÎÍéé¼Ûn«¹æšêY²p…Ñh{ðÁ·ìûþ÷—?ðÀ%"Ñ|Xùl^†éiÜy÷ÝoÄb±'Ÿ¼zݺòD`–²X&þö·O·oo …¢7.»ñÆUååŠD f–-{Ÿzê£ÆÆ‡Ôã¥`0b2 Žõö:èÅn{{ícc‚ ¸ÜTµ:‹~YA­ÎR«%Yßô¾Þn'è=x°÷С¾Q6›¹l™ê KÖ­+S«Ïýú:Á`¤¹yèÈ‘þ¦¦þ¦¦Š $'')é±XÌjuI¥‚ûï¿øª«ªŒ³\d¢·×Q_o†³Sw·­©i ±±¿©iÀdr¦¦¦TW«õz•^¯^ºT‰:$PO}çÎt^"áoØ€=œc~èG?zµ¾ÞøÌ37¬__žèá@Â8î>hýàƒÖC‡z#‘Ø’%yk×–®YSZV–Í`0=:€…Èdr¶·[ÛÛ­mmÖ¶6ëȈ‹ UT$ÕjeEERz»ÜÜ ÜHÏB0¡;òåw¹üåw¹|nw€¢ü$é?í+EùÃáè©?ž”Ä8tM^ ` ú(ŸÏ §¶9ô6}‚D]ÒùÄç µµY¡øJ‡»¥ehjæÙjˆDbl6sÑ¢.—¾™`µH˜B¡HsóÁ@¯Úo·Sô¢ z½ªªJ¥ÓåJ0 d·S»w·××êóˆDܵkKëêʪ« °ú)L‡X,þÖ[GŸzê#«uâÊ+—ýô§uyy™‰|cÁ`dûö¦_lèêY»¶ôÇ?¾P¯ŸEå÷íÛ›{ìßOàÞ{/¾ùæÕ))óê~v~‡éi»v5ßwßv>ŸýÔS×­\Y˜èá$˜ßúÇ?¿òÊÞ^GMæ¶Ûj/¼°Ï ¦'Ÿ|ÿÅÂ;CN‹Å­Ö‰þþѾ>G_Ÿ£·×ÑÛë _­`2“óóÅtá]£‘J ¥\îW,»ÕÝmÛ³§}ÿ~ã¡C½ÉÉIz½º®®ì¢‹åä¤OÓEˆÇã&“óÝw[^}õ Å2.p|¾=á¯P¤JÔj‰R™©Tfæåe*•™_yNe29ëëõõÆ}ûº)Ê/• ôzuMæ‚ ŠŠéºDsÂô°ÐyNœ0ÑzƒÁÒßïˆDb,VÊÉL§Ë).΂9#Žž8aš*ÑÓ×j‘ˆ[U¥:Y¢Çâ 0KÅbñ¶6KcãÀT¸J `WWÐáªE‹r8œoðqS€sÎh´íÚÕL÷è¥RÁ%—,Ù°añ²eª¤$”gá\r:=7ÞøÜÐÐøË/ßVQ¡Lôp ,–‰÷ß7üû߆£GØlæ…–¬__~Á%¼D `a ‡£==ö¶6ëTŒž¢üIIŒü|qY™¢¬LQR"/.–çä¤#CÿE(*pjhž$}$é?y8} >õgSR’¦âò§}êΟzô‰f2ô_S4ëíuÐSsƒÙh´“¤ ˆ¬,þ’%y:]ŽF#Óhd’y– …khÈyäH?£ï쇣¼ÊÊ|zN‹.@Â…ÃÑÇûöï7Ö×ÛÚ,ÉÉIË—ÔÖjjj4åå9˜ÙƒéóÑGmøÃ{F£íÊ+—Ýu׺ü|q¢GßX ~íµÃÏ>û‰ÍF^|±îŽ;ΟU¶½½Žx«¡Á¸qã²¼d^>[az‚ ††œ?ýéëGüøÇk~ö³õLfr¢Gfóøßÿ¾oûöÆP(ºqã²nX¹hQN¢‰ärùªª~w×]ëî¼óBzOo¯ãí·Ý{ïw;°ÙÉã ööÚ{zì==öÞ^‡ÑhrF"1ƒ¡Pˆ ¥EEÒ©`ý½à8<ìÚ³§cïÞŽúzc(Ñér/ºhÑå—/Ö¥•Þx£ñ׿~G àÜwßÅlvJ_ߨÑhrŽyèÓdeñóò2òò2Št¹\¨P¤Ëå"¹\$§}É9ƒ‘ÆÆþ©g‚A””d×Öj.¼°T¯WáÞazXXb±xOŽ6ƒÁL÷³23Ó**”L£‘êt¹HÁÜ2uŦ[WííVŸ/Äf3-šÌÐëõj¥r?%ðm„B‘#GúûNœ0y<ÁŒ ÞªUE55šª*Ua¡$9!ÁÌæñ;O¼ûnKK‹9=·~}ù%—,®©Ñà³Êð-‘¤O(äž¶sppìúëÿFÄk¯ý±ª…Æn'ßzëØ®]Í--f€³n]ÙÅëÎ?¿˜Íf&zh ÈààØ‰C'N˜Nœjk³ƒ>Ÿ]\,/+Ë.-U”–f˹ܺZR4s»\“y—‹®ÌûNÛ †°Ëå #§þ8“™œ‘Á ¹B!G$â …¡+qθúf¿?ÔÚz† =Ç*-ÍF†àTô² SëD Œ†ÃѤ$Fa¡”^'7˜g0½®$}µ·Û©ÔԔŋsuº\½^¥×«pm‡Ù §ÇþÑGmû÷ôùB¬®®¬¶VSY™¿`ÒÌٵ«ù©§>2m×_¿ü'?Y›››‘èÁ7FQ—_nxî¹}^oèúë—ÿàççä¤'zPŸñùB=öïW^9Ÿ/~ôÑ«V&zDçÌ«¯¤(ÿÔÑßÿþÝ+®¨(-ÍžÚsõÕú¬,~"†6½b±øsÏí{òÉ÷ $[¶ÜPX(IôˆfH<ohèÙºuÿÞ½2™ð–[V_sMõ—ǦaáøíoÿõöÛÇþöî;®‰ûÿø]BØÙ[‘!KDp ¢VuÔVQ«Vk‡µú“:P«Vk«¶Î¶ZgÕVëžuQ.ˆ dÉÞ# dßïë7¥ÂN¯çÇpÜçò¾ð~ç.Ÿ$ï{ölmM`ûö›þùHUU%5u3®ÛB¡øíÛ└´´¢ää‚ÔÔ¢ÔÔ¢šAÆÆ:ÎÎæÎÎæNNf..ŽŽ¦ZZÿ¹ì+'ŒˆH {}ýz|iiu¿~¶ï¿ßo„¾ít.,¬ 9óàAòš5æÍ .¯®æge•ff–ff–fe•åä”åä”åçW”—séÔÔTÌÍõ-,þùgf¦oi©oa¡on®_§ù~YYuDDʃIwï&Tèè¨8½óNŸáÃ]LLºày@S 1=tq<žn”œ\”TðæM~e%$ÉÞ½M=<¬èZVh’ EQÉÉÿv¢OLÌ«ªâ³X̾}mèNô¸¾tpB¡8..ëÙ³·Ïž½ŒLçpjŒŒ´}}íìåëÛÓÕÕÙ AaaÅÕ«q—/¿xñ"K__sìX÷ úì€~ôÐ&*+yÇoÝ¿ÿ£þýí¥ ãã³gÏ>hjªwìØ<|¾ûàñ„ׯ¿JK+ò÷wœ5kИ1î]¸À¡ŠŠ* ø~äH×û÷ßÔÔ% AOž|ckk¤ìÐ:%Š¢rrØÉÉ…IIù‰‰ùIIùÉÉ…ˆ$IC''sgg3 zR‹.F±XòäIê•+±ÿ_QQà4uªï˜1nªª2ŽÔ­!‘P;w†íØqcÜ8Ï_~ùPCCÞµÄjj¹¹åùùåùù99eùùå¹¹åyyåÒËÛ¨«³ŒuLLt{ôÐ65Õ56ÖéÑCÇÌL¯Gíòrn\\öýûI11™ åéi=q¢×ĉ}-,ôÛv§:84¦‡®F('&æÅÇç¼|™óúunbb~M€Á íí]]-Üܬ\]-ûô±05ÕUv¤ÍSS#ˆÏyñ"3&&3&&+7—M„……~ß¾6žžÖôÿººÊ AB¡866ëñãÔ'OÒž?OçrÖÖ†ô0 §¯oÏÞ½M• À?²²JÏ‹ºz5.9¹ÀØXgâD¯ <û÷·Gûh[;vÜØ±ã¦¦¦êåËÁ®®–Aܽ›øÅG èyàÀô¯ì&¢£3OœxÇå œ¦Lé?fŒ;7(@IIÕ“'©§>~œš’RH„¥¥····m¿~¶îîVmÞTEÁjjÒžòååÜÚÍåë/‰$µÇª«³ènòººúúººÿt™ÿß¿ÿ,×ÕUWÖ>B+ñxBú"ŽÒ6ô¹¹l‘mè”™YúúunBBÞ«W¹ ¹99l‚ tu5\]-úô±ts³ìÓÇÂÙÙô + ÅññÙÑÑ™ÑÑÑÑyyå,ÓÕÕ>ö ­ VjjÑ®]a—/ÇëÌŸ?|ÆŒššòš¢*^~~ùwß]¹r%fÈÞ?ü0ÅÁÁDÙµ½'OÒ&OÞ-óWªªÌY³oÜø‚CR0Š¢~¸aÕ{íÚ5¯Ê¡KÊÎ.ûí·ðsç"ù|QPϬYƒ<<¬•t8E?ÿü›oþªªâI?àJ’ÄÁƒsß}×C¹±u"‘$#£$11/)© )© !!/+«T,–°XLGG3WWKww+ww+]]’Ξ¼q㕦¦êûï{OŸîëînÕ¶ñ„‡'ÍŸÿgŸ>æGŽ|¦£Ó’w¸\ANNY~~EAAEQ§¸¸²¸¸²°SZZUXÈ‘¶­'B[[ÍØX‡Édðù¢ÂBŽP(²·71Âå½÷¼úô1—ß k@czèôx_Äd’êꪗ.-ŠÍZµêüÔ©¾›7©¨ ëº8OxéÒ‹?þˆxù2ÇÝÝjÒ¤~|àKg´76»úÉ“4º}RR“IzzÚøû;öíkíéiÝñ›| …bi+y6›[QñŸþòuºÏóù¢ÚcÕÕYúúšúútyMƒnèëkèëkÕi@Æ]U^^yRR´ÇPrr'd±˜={;9™õîmæèhêädfooŒ¶ÚAˆÅ’´´¢—/s^½Ê}õ*çåË\ºq•݉ÞÕÕ¢O #eG ÐÆ +¢£3Ÿ?Oþ<3>>[ ™›ëûøØõëgׯŸ»»5N ã¨ªâß»—øðaòƒÉYY¥¦¦º®þþŽ~~½ µ”tA†§§—üðÃäú¿ÊÊ*Ý´éZhhœ““ùúõïùû;*>z´›²ÃhœP(nô™“¢¨ˆˆ”C‡ܹ“`jª÷É'C¦Nõ56Ƈ^@†ÈÈ·ß|ó׫W¹ !‘üûéV‹¸lÙh%ÆÖµÑ4}ó¦ ))?!!/!!>([Z¸¹Yº»[õìiœ•UÿòeN¿~¶sæøMœèÕ†s))…Ó§ï×ÑQ?}z¾™Y¿qÃç‹JJ* 8¥¥•EE•EEœÒÒªüüŠ¢"NFF ›Í•~”ZCCÕÚÚÀÜ\ßÔT×ÂÂÀØXÇÒRßÌLÏÆÆH__³m£P4¦‡Î§¤¤*&&3>>;>>'>>»°CDÚ^^¶VÖV¿£€LIItnGE¥'&æ …b]]z"·¡ápjÂÓ"#Ó£¢Ò_¿Î•HÐŒ¢¨¢"NŸ0Ëʪ/^Œ¾z5öÅ‹LuuÖØ±î&ô pRUEŸ5hGk×þuôè#‘HL“ÉÐÖV Å3f \¿~ƒA*;:hGÙÙeüñðôéÈêjþ„ }?ýt¨——²ƒèÊ(ŠŠÏ¹yóUXØëÄÄ<Š"œÍ† q2¤÷ AÚÚjÊ­¨ˆS^^#m1ÿ¿¶òõ—Ôm4Ï`ÆÆ:tyi»y}} ™KÔÕYÊÚGP"6»:!!?99ÿÍ›‚7oò“’ 8œ&“akkäâbáìlæèhæìlng×££5[P@ôæM¾´}BB~M@E…Ñ»·©››•››¥««¥››¥®®†²#hc<ž0**=2òm||NllVqq¥††jÿþv¾¾ö¾¾===mtuÕ•#ÀÄÇgÓÍè##ß …boo»Q£\ýýÝܬ0©íçòå˜ þd0|moo,]^\\¹mÛõ3g"ÍÍõ׬?nœ'ò°Ó‰ˆHÞ¶íFTTzß¾6K–Œzç>í(‘P'O>ݱãfu5oÅŠwçÌñëò¯ã6l¸rðàzþ¼6ssýçÏבdÇúµO¸iӵÇL™Òóæ MMUeGРÊJÞܹ‡/2DöÕY¸\ÁÉ“O}”–VäãcÿÙgCÇŒqïòÏfÐ2E­]û×D0 ±¸î±€Á ÇŒq?th®Rbëž*+y‰‰yññ9ÉÉIIqqÙHGGÝÊÊP$§§ki©Íœ9hÞ¼a&&ms‰·o‹§Oß§®Îúë¯EFFŠûˆ‘DBeg—]¹sçNbtt†ª*ÓÖ¶‡žžFy9· €SQÁ¥WÓÕU·¶6²¶6´±1´µíÑ»·iŸ>¸:tFhL@QQe\\VNô¦¦ºtŸntë†N­¢‚™^;½™L†««¥=Þ&L&CÙaB· Š)ŠjY3îŠ îƒÉhF—+øê« qø°¼¯£WUñ¯_¿v-.<<‰ÉdŒç1aB_GtnÈÊ*õóûA,–H—¨¨0õô4nÜXjii ÄÀ ]ee•îÚuûܹ(CCíY³~ô‘_[ug€úÑãÇ©7o¾ºyóUAA…ÖÈ‘}FŒpñóë­€SS.WP^Î-/ç²ÙÜòòjº¿<½¤Î §¦ö@’$é¶òtgyé ==MMiÓyz¡––2»êCGCOÑ’“ 32Š9“ÉèÕËÄÃÃÊÉÉÌÑÑÌÑÑÌÒÒ@E3 ÿ(.®Œ­;çld¤Ý¯Ÿ­‡‡]5˜—ƒ®Š¾Üåĉyu~›•Uzðàƒsç"ù|QPϬYƒ<<¬•'t"±±Y3gþVUÅ ë6¦'ÂÚÚðÙ³µŠ h••¼„„¼W¯è‹;æ&'…bƒ ÒÝÝjöìÁ#Fô15Õmå½äå•Oš´ËÄD÷ܹJ¸4Ke%ïòå˜#G"ò<<¬gÍ4nœGiiuVViVVYNN}ƒžŠ'ÂØXÇÉÉÜÙÙÌÅżo_[GGSL*@LJÆôЖ„Bñ¥K/‚‚|Z¹ÌÌÒää‚Ú]H’ìÝÛTÚ†ÞÉÉLOO³Mbh°°×……œY³µ`¬P(މɤs;>>'-­H,–ØØùúÚÓéíêj‰ƒ xÑÑ‹ŸZ»v¨QnM‚fôÐed”ÌšõÛÛ·Å,ãåËMººêuVàr¡¡q×®Å=x$‘PÆ9ï9z´›®®†R†îiÉ’Ó/>¯ÓIAE…ia¡wõêbcc4+ïjÒÓ‹wíº}ñb´¥¥ÁW_~ð7ú”´ŸÈÈ·ÇŽ=¹uëUe%ÏÖÖhôh·Q£Ü èÙú UU|º§|yy5›M7ÿçöÿ–ÿÓŒ^ Õ¨££^«¡¼¦ÌÖóô œtIˆÍ®nÛÖUUü„„Üøøi'úŠ .=uæädæèhJ7ÔîÙÓGè$ê΄À@×Vn‡¢¨ääÂøøìääBzæ™îDokkäèh†«ŸB§@QÔñãOH’lÁ¼4Ÿ/Š‹Ë¢;ÑÓù¯ªªâéiíëÛÓ××ÉŠ$‘P{öÜÙºõúŒ·l ’¿r||6ÝŒ>2ò­P(öö¶5ÊÕßßÑÍÍŠÁ 0Àóçé“'ï‰$ÒUœ<9ïõë¼}ûî …âàà‘<ïëu:É۶݈ŠJ<ØaÑ¢‘NÊŽH†¢¢Ê¯\¸ݯŸÍ† ôík£ìˆÊÏï‡ôôâ: ïÜYáâb®”x”+'‡|"66ë›o&Ì;„$q„$7—=yòž¼<¶H$!I2"b•½½1ñ¿ë:ôàÑ£ÝO?õŸ:ÕoAÓVL›¶Ÿ¾”Z_‘$™’²YSS ÍÊ¡>¡Pœ”T“yþ|tll&ý¸©©nÿþö^^6}ûÚxxXkk·äl93³ô½÷v::š8ñ…²&º)Šzô(娱'7n¼40Ðüâ‹á³g®sò_XX‘’R˜’R”œ\šZøêU^EWKKÍÃÃÊË˶o_›AƒzáTС1=´™’V®<—•U–˜øCý>°rH»Ñ­ºévZ éàðo'zgg‹fm ä啯Zu>,ìu@€Ó©Só›8*;»ìéÓ4:Ãòª«ùzzštÇ4½¥ãóE[¶üýÛo÷)ŠøôSÿï¿_ÎÊåå܇“>LŽŒLOK+B3zèPþþ;þÿþï¸H$‰$ cëÖ 3Ò¿ Å÷z5öÖ­W\®`øp—ñã=]õõqP´””Âá÷H$2^…©¨0{ö4¾|y®ÀÔep85;vÜÿ?½æÕÔTÌÌôLLté¶òzzšúúÒ¦óµ—¨«³Ús¿¡C£(êÚµ¸ï¿¿òÑGƒƒƒG¶x;<žn@Ow¢ON. »i›šêzxX;:š9:š:9™ÙÛëè`ê ºšèèÌU«Î%&æ''ÿ¨¡Ñ¼vc •’òïœsRR‡SSoÎÙÎ"%¥pÉ’S/^dŽíöÇŸ6eˆtR:**=!!W$’ôè¡=hƒ½¯¯½‹‹®_Š——W>þŸ/^dH$T:qqßÕo­[UÅ¿w/‘îGŸ•Ujb¢3j”›¿¿£Ÿ_oCC-¥„ ÝYjjѸq?WWó¥³yL&ijªWXÈ ò ca¡¯Ü¡¹ž>MÛºõúÓ§iC‡:…„Œîßß^ÙÉ ˆ~ýõö¾}÷´´Ô¾ùf”)ý»a#ò;nîÜ&ý{yW“V)1$å‹%¿þzû§Ÿn¾óNŸ_~ùo"@‘7u꞊ žX,!‚Åb~øáÀuë&ž<ùôÈ‘ˆ·o‹û÷·ÿüó¡cƸãÕ´@UÿÓO?~œF'Xm¡¡K¼¼º×%[:¡P|ìØã;nr¹|[ÛååÜ¢"=G7©÷ò²éÓDzéï–ÆÄdMºwêTßM›>h×ÈUXÈ9pàÞŸ>VUUùôÓ¡Ÿ}æßб˜¢¨ôô’˜˜Ì˜˜¬ØØ¬—/sÄb‰››U@€Ó°aÎýûÛáù:4¦‡6]¶fÍ…Û·H’ (âܹ…~~rÖ¯Ó‰žî Äd2zõ2‘vêÓÇR[[Ma»Ð(‘HòÛo÷·m»!‰Åb‰¶¶ZRÒ u¨©<žù–NòÂB‹ÅìÛ׆Nok&mIAù""R¾úêDqq¥H$!¢W/“‡ëöt`³«#"Rèfô©©…E¸»[Ѭ r@3zè$ê‡B÷í»KQAPA0dÿþvçÏÿß½{‰W¯Æ†…%p85ýûÛM˜ÐwüxO33\”fÁ‚c×®ÅÕî§SǰaÎÇÏc0º]§¡.F$’9±}û ]]õM›&º*;"€f+,䘚ê*;ŠFPuÿ~Ò©SOoÞ|¥§§1eJÿ3Y[TVü·¹|ãíæõô4MMuë7—G»yh˜˜¬5k.ÄÅe5q¢×¾}³›8P,–¤¦Ñn¤ÛÐçæ²E"‰¶¶š‹‹…‡‡µ“Ó?èÑ„º¶ÂBÎÆW/^Œ&IB"¡®^]ìím+Ÿ/Š‹Ë¢/á”T@_RMMÅÃÚž‘sr2ëÕËDK sÎÐÉ¢;ÃvíºM„X,ÑÓÓHHØ$s^Z ÅÆfEE¥GF¦Ó“Ò éæöÏ<ž¯¯=. Êuüø“o¿ýK(ÓsÑAܺâæfIߎϦ›ÑGF¾ ÅÞÞv£F¹úû;º¹Ya’”%/¯|̘ŸØìê:½PI’\·nâ_ SR\ÐBaa¯wíºýâEæøñž‹º¸X(;"Ù®^ýñÇм¼òE‹Þ™?x·=}ÍÈ(ñóûAúq&‹2vÑ¢–_õ­kˆ‹Ëž?ÿhu5÷îYC‡:);èÒgÌ8Àã k(Y,]]56›èúé§þ~~½»á¥5  …âÅ‹O]¾ü¢ö5¿™LÆ–-ÿ^¢:ššÁ¡Cöì¹£§§¹råXUUVLLæ‹™ññ955--5oo;ûzöëg«©ÙÈ¥(ÃÂ^üñáŸ~š>mš¯bâ—£ªŠôhÄž=w¹\ÁÔ©>‹jô:U\®àÉ“´û÷ß„‡¿IM-ÒÖV›8ÑëÃ6:Õ  hL­RUÅß¼9ôèÑG$IÐ$X,••+Ç.X0¢öj •’òo'ú7oò++yµ»yxX÷ìiÌb1•´O 9SPP.Sµ~Ý»·)}›Nò¨¨tº}ZZ‘X,±µ5òñ±§“ÜÕÕ²Û6€Ž©ºš¿~ýå“'Ÿ’$)‘üó]q’$cc¿36Ö‘6£ø093³”$I4£‡‹Ã©ùâ‹£&×þ::A$I˜›ëçå•÷ìiüÞ{^ï½çåèh¦¬ hoÞä¿óζú/Á ’É$UT˜³f ž;wˆ]¥„m%#£dáÂc¯^å~ú©ÿâÅ£uuÕ•@óÄÅeïÙs÷îÝ„ÔÔ-ÊŽå?›]]VV]VÆ-*ª sï^bqq¥©©ž‰‰6‹Å,/¯)/ç–—së4©Ñ×פÿhþ÷¶VåJÜ;è222JÖ®ýëÎ=Wfg×ãñã52W¦(*+«,9¹€îDŸ”Tž^,Š54TÝÜ,œÌÍèNôh% ÝGu5ÿ—_ 'B ¡¢Âøî»Isçú×Y“˼z•CO8ÇÇçÐ壯¯éînåèhFÏ9÷êe¢¢‚kCB'vïÞ›eËNWÖnõ±ºgOcúvIIÕ“'©‘‘éQQ鉉ytГx>>ö˜”†¢¢‚»lÙ™ë×ã ‚NаXŒ… ßqq±ÎB›˜èŒåæïïèç×ÛÐPK™DEwüø™™%ÒK)H‘$ajª÷äÉ7jj*J‰ š+""eÛ¶ëÏŸgŒïùÕW}útЖôIIk×þ‘èº~ý{ööÆÊŽHÉFŽÜ–˜˜OO§“$ùìÙZ++e¥|/$äôõë//\¼x“‰×; ÷î½™;÷°X,®ý‚ TT:lß>ÕÆÆHY±ACQÔO?Ýܱã¦t‰ª*ó£ü6lx_‰QA£ 9ß|s144nÊ”þ›6MÖÑQ‰$¯_çFF¾ŒLŒ|[\\©¢Â ?‰4`@/û†>‰ôý÷—ÿø#âÊ•¯ÜÝ­¼2•—szpèÐ@4o^À¢E#›8÷’›Ë ?s&211ÏÉÉlúôÓ¦ùâ)P"4¦‡¢(êüùçß}w…é‰ÄÒå ùî»ûöÍNM-’v¢OLÌ«ªâÓMµÐ‰:—ââÊÕ«/„†Æ1dæ†ë×O21щŒL—&¹žž¦¯¯=áVhÖ£G©_}u¢°°R,×^Î`&xå䔯Åe‹D++ƒÁƒ r<ØÁÚÚPYÑÈ‘”T0{öÁ‚‚ ¡P\çWL&Ã×·çúõïuï'1cƈˆäÚݬ ’¢(;;ãÅ‹ß{ÏKUݬ:½3g"×®½èà`ºk×Le‡Ð  uûöë]»n¿x‘I’$EQII?êè(âÊ |¾ˆÍ®f³«Ëʸ¥¥Ueeôíêÿ-¬.-­b³¹ÕÕüZƒH‚ ´µÕmm,,ôkuœ×úo÷y-\¦´´jóæÐÓ§#¥—o¤1™dZÚVú(_TT—•œ\”Tœ\˜‘QÌáð˜LF¯^&Vt'zGG3KK´Ò†îéܹ¨¯–•U×îÁÍd2§LñþùçKK«^¼È¤çœ““ rrØb±ÄÄDÇÓÓÓqÐõT„„œ¹{7±þ¼ôŠcMLt££3ž?ÏHN.H(ss};oo;oo;ww+¼óÊÓ§ióçÿYVV]ûÍDš¡¡VYYµ““Ùˆ.Ç» ÐÙ Ÿ/ Ú›Y¿+=Éd¬Z5®Î•Ú¡zò$móæÐ¨¨ôÀ@×àà@oo[eG$‡ÃÛ¶íúŸ>êÙÓøûïß÷÷wTvDÂ÷7mº&‰I’ðð°¾~}©²#ê((Š:|øá† W||ì÷ì™…A xW®Ä,\xœ¢¨:W §™šêFE}‹©-h[§O?[¾ü¬4ë|}í/] VvPи7^®\yN[[ý·ß渺ZÖþUzzqddúÓ§iÏŸg¤¥Ñ«—‰½ŸŸƒ¿¿“‰‰ŽtM@4iÒ¯|¾èÆ¥ç5#‡ÃûóÏGû÷ßSQa„„Œ>}@ÓŸ÷^¿Î=s&òüùç õå—Ã?ûl(.+JÆôЉ‰y+Vœ{ñ"“¢‚¨›Bºº Y^Îe±˜..nn–îîVîîV}úX¨«³”/@KˆÅ’?þˆØ¼9T ×o˜¢¢Â‹%EõìiìåeëåeãåeëæfÙq¾ Su5ýúË'O>%I¢þÅY,º¢5šÑC§|B ×nYX›££Ùýû+@CžÜyíÚ‰ÎÎæ­Üw€6!ˆ ß¹3L  u'‚øðÃ%%•IIÙÙeEj¹¸˜;:š»¸˜;;›9:šã ‰‰ùkÖœú4Á1_ajª§§§‘–VDw¢wuµts³¢§mmHçÒÐ¥H$Ôï¿?ܼùo@X¿!²Š ƒÉdJ$WWKoo;»þýí-,ô•*€|B¡xëÖëûöÝ%ÏíA$qãÆ2\T:‰„Z¸ðصkq M;ÓttÔ£¢Öéêj(,0h–ØØ¬ }ø090Ð58x¤··²#’~?úçŸo‰Åâ±sæøaRQª°ãí½^"¡TTë×OúäeGÔ±ÄÅeñÅÑêjþ®]3‡wVv8Ð;öxÕªóE4ôC’$ûmθqž  º¼ðð¤¹s "‰„ÒÖVONþQÙA“V|ù屘˜ÌmÛ¦M™Ò_æ:ÅÅ•QQé‘‘oŸ={ûêU®DB¹¸˜88ùúöTWgåä°‡ßòùç+VŒUpüòq8¼_½}èP¸­m￟4t¨SsÆÖìßÿàÁp Ö¢E#çÎõÇ%=@ÁИš‡Í®Þ´éÚéÓÏH’lèÛø$I~ÿý¤z99™á‹ÓÐIÅÄd-[v:)©@Γ¤……ÁíÛ!úúšŠ  5?N]´èDQQ¥X,£U"ÍÊÊ 2r"£h‰„úñÇн{ïDƒ]h÷î­tr2ST\òLž¼ûÙ³· ¥¦Æ EcÇzÌŸ?¬ÃvD‚æDóçÿùàAÒáß4£é€råå•ïÛwïäɧ|¾H"©ûÿòå`ûú£ZÐq^E…ad¤Mwœ73Ó31ÑÕ×ר߀^OOÞË«ŒŒ’3°ÙÜ­[ƒ&LèÛ&@ë]½»aÕüüІ&Ê ÒÆÆpðàÞÎÎæÎÎfNNæÆÆ:  #++«Þ¼9ôÔ©§$ɨmHƒA.Y2ªo_[77KSS]G HÉÉK—žŽ‰É’3Ýan®±ZCCU‘4WFFɼyGóå´ö&IrçÎ µ&P–õë/:ô þÕ˜L&ƒA …‚ ÔÔTLW¬誌AžøøìM›®=|˜ìïRp IDATï¸|ù˜þýeÌltÏž½]»öbbbþÇYºt”–²#êp&NÜN’dtôz¼¨Ãá-[vúï¿ã?ùÄݺ‰øp(À¡C¾ýö’ü·g †í_+0.è.ž?OŸ9ó`U¢¨˜˜ïphè,D"ÉæÍ¡ûöÝÛ¸ñƒ¹s‡È_¹¦FðüyƃÉ&¿|™Ã`®®–þþŽÕÕücLJ†.öð°VLØM—›Ë^¿þrhhÜøñžë×OjÖåKJªví ûóÏÇîîV¿þ:ÓήGûÅ PÓCSQuùrÌš5+*¸õ¿Š_Çùó vPL`m«¦FðÓO7÷ï¿OQ”üTg2ɤ¤Íššh€@ Ú±ãÆž=w ‚ŸØ$I¾xæСUWóƒƒO\¿þ²Ñ5 Æ’%Ë–Q@TòED¤Lº— MMÕY³}úéPkkCemF }ôÑÁ¸¸¬ãÇçuä^WµÅÄdíÝ{÷Æ—$I6Иœ7/ÀÖÖ°¬ŒËfW³ÙÕl6·¤¤’Íæ²ÙÕ\®@ºž¶¶š¡¡¶¡¡–¦–Á?7 ÿùG/ieïÔ7oò§NÝkaaðÇŸ˜›7£©@ûII)üæ› ¦2ò^g©ª2çͶzõxEÆÐ)Puñbô·ß^®¨¨‹™p¾~}©§g‡k;ІD"Éþýw·m»)‘Hä4ò&‚$Éׯ7₩Б]½»dÉi@(ÉKfƸqžûöÍVX`Ú»÷îÆW ‚PUU!I‚¾âššËÁÁ¤O ''3GG3GGSkkC’$•,Ô•™Yº}ûK—^xxX-[6fÄeGÔ ‚‚Š-[þ>w.ÊÕÕrÆ÷}}{*;¢êĉ'Ë—Ÿõóë}îÜeÇÒAI$ÔÎa?ýt3 Àiß¾Ù::êÊŽº²mÛ®ÿüó­úË™L“É B"‘HOÿîÜYîâb¡Ðø {xû¶xÚ´½¹¹å'O~1l˜³²Ãføõ×Û?þºaÃûŸ~:´‰C²³Ë>L~ð ùÑ£”ÒÒ*‹¡££±iÓäáÃ]tu;Ü!/<è8TU­&Oþ&<ü ƒAÊéL÷êÑCÇØXÛÔT×ÈH›n:od¤U§û|³šk´L^^ù„ ;íìŒþüós--µ†VC[@PCCGgˆ¦¦ A0‚"ˆFrÏÏ(+»¤˜ØêhýEIQYÐNTTzèé §'œ›@RQqËmüúdЇ*ƒ6¡ªj®«û‹Õƒ Š’$Cþúee—ùüt…„&2B’*ººÃ55]é)JBA$IPY?·%Aaá>zŽ ÙÞ­hh8éë¥(±X\.‰D¥"Q™PX*s:r–*Rë+¢”•UÿòË­£Gõêe²jÕ¸À@WeGÔ ª*þž=w~û-\__sÅŠ±AA> †ìg |z‡ CÝÔt^EÅ.÷µ²cQ2ù3ç§~õÕIuuÖáÃsÍX+!Ï;]ÝaZZ}¥?J$|ŠâK$<±¸š¢j$’‰„Wû±¸²³¿Öúw¬áí„ÁÐ44œXS“Ò®M„h´jvíº½uëß¿ÿþɨQnÍÚ²DB%$ä]¸ðü·ßî3$ƒÁ0 ×¨Q®®¶¶Mý舅â½{ïþòË­^½Lvì˜Þ¬«lÖÔ–/?{õjìþýsÆŽuo¿ ¤Tê/êt}AÄbª¬Œ_\Ì+.®).æÕ×”—ó%‚ ‹A’„P(¡¿ŠN’*ïüñÊv æ§Ÿ~j«M 8péÒ¥mµ5è8!‡#`³ùeeü²2~i)¯´”WVÆçñÄô L&Éd’"%‘P$I|üñ²‘#›Ø?«µ²a·ª ;ÈÍ­®¬VU ««EUUBGXY)äpUUª*¡P(‘®I’I’cÇΙ>½—&áа’^M¨éë««3{ôÛº?áü§S+-åefVyz1™£”K‡Ö†y®H{÷Þ½|ùűcóät¥§¡ú@éØlþ¾}Ñ……Äýûo‚Ó•ž &“ñÕWK–(ÿ‰«¤¤jÊ”=zÇÏÓÐP•¿ò’%K ¤˜À ›ãrE¹¹Õ……55Üü|nU•øß¼@ ©½rŽû÷+zÆõÉ“'?ÿüs›l •í¡ºZT\Ì+)ùg¶¹¨ˆW\ÌãóEA0$“IR%ýs¨b0˜cÇΘ6MÉ“u Ê  Õ”— ÊËùl6¿¢BÈfóÊÊl6Ïÿç€B×AB¡„$‰iÓŽo£”P‘ù ‡#¬¨à >_Âç‹jjÄ<žX óùbO\SC/ñxbúŸH¤¶eË!{{e.²½»¡("1±ÜÄDÝÈH½ Ì'·¹6¬ˆ¶%Š÷ï¿·{÷uuÖ¦M“?üp}¥½ˆÏ:¾{÷]‹ñÝw“¦MómÊ¥þðé#G’§OÿF]½Ý/‹Ø‘5:s>x°ÃÝ»+‚ƒOŒ½ãǧLŸ>@1µäyÇWY)Ì̬ÔÒRÑÒbii±45™]þÒ;møŽ2¼=’ׯ˼¼Ú룉ÐM©šàà‘ÙÙe ¿~}©ƒƒIÓ7Î`nn–nn–b±äÒ¥7~‘ò믷׭ûËÚÚ0 À)0ÐuØ0g\GY>‹ùÕW|à½rå¹wßýyæÌk×NÔÑQoÊX Õ]»fª©±¾øâÈñãó†ujïhd4¦ R|Ð …âìì²ôô’ôôâôô’ÔÔ´´¢Â ±˜b³Û1‘Î;×V›²¶¶FÂCSTUñ³³Ërrʤÿ¿}[’—Çæóu:{ ¡ €Ç–•UqJJªÊʪKJ* ‚ ¡ì¸Ú2º œÿ@wІy®0ÑÑ[·^_¿~R@@ãÝP}Ðèè°>þxɶm>z”™Îç ÕÕYH"©Û¤ž¢¨’’*¥Y›H$™?ÿ¨P(>xpn£]é ‚8p ”…éII)LJ*HM-|õ*79¹°¸¸’¢(ƒ¬ªŽ=^WWC‘ñP”¼‹O4 * †Í®~û¶$#£øíÛâôô’””ÂŒŒÒêjžDBUV²:Z¢Ê@ªªø¹¹ì¼¼ò¼íµµaE´¡¨¨ô+Îfe•}ùåðùó‡kk«);"Ù(Š:þùÖ­×KJ*?û,àÿþo„žžfÇâÙcÈrss}eG¡dM™9×ÑQÿý÷Oöî½ræÅ‹ÌM›&+½9oÓ!Ï¡jÃw¬áÐM4±j~øarZZÑ—_þºXUUÆG—å[¶lôùóÏ“’ ¶nJ·§¿yóÕ­[¯bd¤è:uª¯oOC™ϰ¶6xôË/·6orq±Pn$-£©©êáa=eJÿo¾™`g×CÙátV††ZÞÞ¶&ôUv Ð!<{öväÈmaa {ö|tâĶ+}zzñœ9‡>ø`·¶¶Úß/Ùºu*ºÒƒº^¿¾„é9r{DDвèËÂBíÚ ‡?ˆŽÎlÁðÏ?ÐÖVûý÷‡Ò%$IzyÙ|ýõ¸û÷WFF®[¸ðW¯r&OÞãêúMpð‰°°×B¡¸íÂo==Í­[§?>/11oذ-Ç?¡¯ -Ÿ––ÚwßMºr%666KA@w†ÆôÍ“›Ë>x0|Ù²1ZÊŽ  ¨©© ÔkÙ²1×®}•œüãÙ³_~õU ­­2ûhWVò–,9=~¼ç´i¾J :ˆšÁŠg?ø`w@€Óƒ_¿÷ž—²#’­¤¤jÅŠ³Ã†mÉÉaŸ9óåÙ³ <<¬•t#ööÆ×®-4¨×Œû÷ì¹£ìpêš6m€‡‡õöí×[0V]õùçGŽDp8¼ú¿µ²2øì³¡—/GF®]¶ltfféÇöðX§Äõ#F¸„‡ýÑGƒW­:?yòž´´¢F‡ºº¸˜×n¾ÐИ yvî 33Ó›9s ²h{êê¬!CW¬ûë¯3•Æ/¿Üâñ„›7)1è ^½Ê;öçÐÐøælÝ:UGG]ÙÉÀç‹vì¸1hÐÆ°°„íÛ§………øû;*;(莴´Ô˜³rå»›7ÿ½`Á1.W ìˆþÅ`+W¾žôâEf †ôÑ`‰„:s晜u,-ÿéPÿþÊÏ?úêUîœ9‡6ÿòË­ìì²–ÞBªkÖŒ¿ti›]¸}ÇŽ¶ÈŸ9sà/•ÒIº4¦h†òrî¹sQÿ÷ï°XLeÇÐ5%&æ<¾zõ8}}MeÇJväÈ£‰wêéi\¿¾düxOe‡#ƒDB?þdðàM¿ý¾xqàãÇ«ƒ‚| RÙqA÷E’äÂ…ï:4÷΄ɓwçæ²•À¿œ<<¬ÿø#¢cuu5‚‚úÿñGEQ®Ü»·éÒ¥£ïÞ]þõĉ}2pàÆ>Ø}êÔS‡×‚{o1oo»ë×—~öÙÐ;Ã&OÞ“”T gå#úTUñŸ?ÏPTtеccúÔÔT’$eÞ#++kîܹMY³õèû’þ¸aÃ’$7oÞ,]rúôiR–ØØØªªª{{{ Þ½{ûí·<ž¼oª´xª««—/_îéé©££ãããóÃ?ˆD¢ú«ÕÏÎÎnöìÙÅÅÅM¼‹Ö?Ú2·@’djjjk6Û¹tí„oM‚IÉÜͦì;ª ³è>U Õ&a#Ã;‹®á i–ú)Q{Ií{ÔÐÐðóó“Þoý±¨‹Î¢k×…ü”V¤:U+Kµ)w!_wËs™ÎŸ®ªª2yreЉª¯5ÏÕr4åHÑPŸ?¾5@£ÇÓ6BÛ¼9ÔÑÑlúôÊ  U­¹ç~ÉÉÉãÆ300033›4iR\\œt I’½{÷®ÓÏeìØ±­LK™ÃÛð)'B·­¬ XYYUWWK·“––¦ªªzâĉ‡ªÈR%PbªLºÖWÌï<ºmæ8›ú_HÝ'á»y¶ãä§)[è’!ŠCBάYsaÁ‚/þŸ‘²#’áñãÔwßýyõêóï¾ëñäÉ7 ¾£¡¡ªì þ£³<´Ó„žtØê=Ú-4tIUÿÝw~þ<]ÙᴯΒçÒ›~ üúë¯Û¯4pÔë,ºp†·ÕÇÒjk× ª¦­LŸ>àúõøêj~ËÆfd”¼~×ô!½{›~ýõ¸çÏ¿½~}‰««åÆ×\]×L›¶ïܹ¨šA bhuuÖêÕã¯__*ˆFÚ¾k×m‘H"sM[[###í„„\ÅÝS;6¦×××_¹resG]ºtiÒ¤IÒ±oß¾íÑ£G;D÷ï}Ñ·)Š:}ú´Í™3g¤+¼÷Þ{ùùùùùù?&"ÿ\]]-ZôâÅ‹ .dee>|øòåËË—/—pËÊÊÊþýûGEEmÙ²%::zÕªU'Nœ ‹ÅõW~üøq~~~NNÎüÁápúõëW^^Þ”{iYlPG×Nx¢ ÖJ¨‚N¤›TAm-ˆ¡Î"Ã;‘.Ÿá2‡´-iÅÇÇ÷îÝ{Ú´iu ÑPH—¯‹fiב’¹­¿kTDs]¿?fŒ»¦¦ÒÚKu®êkÖsuS¢jâ‘¢¡÷óókM·áó4äíÛâÛ·–/Ëd¶ã´•|«Êš{ŒËÎÎW7%ª¦)š¾Íh×°ý ­f~ÚÖªUçüü6I$’æl“sÈ::~•QÍ?Æ}ñÅï½÷^íGxΜ9³gϦo1f̘իWK{äÈ‘±cÇ67-ëܯÌámu:‡H™ÚªÞQYmRY'NœPWWÏÈÈ (êÑ£G***/_¾lM¨Š,U”XCPe-Љª ™ßd~ ´ë™Φp6Õ}²'?utÒŠh–çÏ3úö]7|ø–ôôbßuS¤§/Xð§¥å’‘#·Ý»—ØæÛïΟÞiïûjízÖ&sˉdûöëK–/?#ˆ Ý9Ï[ðfn{„‡£^CÚ¤îáí÷±´¦ïªFNHm«eU3bÄÖï¾»Ô²{\µê\`à¶–­-+«tÇŽƒm47_~üøºuë˜L¦ô~µ´´–/_~üøñÚˆˆ¨I’óçÏ mèq“Û¤I“–.]Jáóùôê‹ÅÛ¶msttÔÑÑñóó{öì™ÌGéÖ­[?þø£ô¹|ù²“““‰‰Ipp0ŸÏ—¹°ÑÇ_að2ÕI°òòò?þ¸GVVV!!!<¯ö£Qç‘9qâD¯^½Œ¿üòK.—[{³2÷U t¨‚&ª_2÷ºÎ"Õ.ÕÐúç-ÁÁÁŸ~ú)ýÛªª*MM͘˜˜¦=Þÿb±Xªªªzzzõ…ºP:ÔESÔ/Ú;"³Lú»7+ÙdîEÇPæ!Iþc(ýsˆD¢o¿ýÖÆÆÆØØxöìÙååå2w¿ äyk$%…boo»6ßrW­¾Úê’$—-³oßG.DôÑÁŠ nãc:†®šçmò¦UëKG=¥C†ËÔ&ï%É„ªéhUãînùæMAËÆîòúu^iiU+c°¶6\ºtô£G«/\ø?óï¿¿ìåõí’%§¢£3Z¹åFÙÚ?¿ð‡¦üþûÃ1cv¼|™Sû·** ±XÜÞ1@·V»K=ýE F›ÙÏž={Μ9¦¦¦Ïž=£(êÀ&&&/^ÌËË µ²²""%%…ÞZýGUUõ“O>ÉÉÉ9~ü8AEEEEýþûïÇŽ“9„¶eË–É“'geeÅÇÇ÷ë×ï믿¦¿|þá‡r8œC‡1uêT‡sàÀ‚ JJJªªªÔÔÔöïߟŸŸøða•ªªªÚ÷EQ”D"±··?pàEQkÖ¬quu­³Ëu (êæÍ›–––jjjÛ¶mËÈȨ¿&}{ìØ±wïÞ•.'bÊ”)l6ûàÁƒA”––};,,¬oß¾EñâŠТAÛ)))eee,kûöíl6["‘TVVŠÅâÚ÷EQÔÓ§OUTTèïEGGñòåËÚ»,ó+"‘èéÓ§ßÿ½››“É9ÏÕž,ÉŒªYG ZmÖyy.gzXdn¶•…_gwÚ¯Ð:~cúÕ«/Œ¹­ec›rÙõª¬¹Ç¸ÜÜ\‚ j·w”’.IIIY¸p!}^tüøñÀÀ@ér99GFJVVSÍŠYh8lˆ"[©¢²­,Ú·ß~KÄÉ“'k/¬¿ r‘u’Y¥Š“UFuÝ*CæȨ̈:RæãlŠÂÙT7ËvœütŠh”@ >ac³ìôég ¸»¦ãpj6n¼êà°ÒËëÛcÇK†¶ŸnûéZûªý£ü»h(0ÚþýûÈãñ(¹séuž:äoSUû€µùÌyAAù¸q?;;¯~ð © 7ÛÝ6Ï[ö)µúË[Y8êÉ¡ÈÆôÈpªÞKjè¾P5­j ÷ô\ÛÜQRÎΫ}ÔâáòÅÅe-_~¦wï•66ËæÍ;rëÖ+‘HÜN÷EQÔÿ³wßñQÔéÀg¶÷žÝMIU@AŠGA³Ó”CPÁî§ž½àÙîÎ;OðTP,€ˆˆúCQE¤$ô²}wfËlŸßƒ{kBI6$Ÿ÷‹¯ÝÉ”gv¿ÏÔçÆ^{í›ÜÜÆéðáZ–eGŽ|ößÿÞÒqKàgO£ÑÜvÛm%%%·ß~;7¤¼¼|È!‰ ÔòD"QiiéäÉ“‡ºråJn Ïç‹D"Z­¶… +++ÓÓÓI’$IrâĉÜp¥RI„P(lôš ­VûÝwßíÞ½;++kìØ±;vìàñx–õÑGE£QƒÁ@’äСC ‚àž ;¿ßÿÑG1bĈÇüСC<òȃ>ØìÈ}ûöm:0###9È“'O80ñ×þýû¡ÑhÌfóM{àÀ.ÈÓÍœSVVVPPÀ½>ÝçÖhr™Lvíµ×~üñÇ~¿Ó¦M7ß|óé&¯©©iÍ7έ&÷»fÖ»wïÄÒkkk[ØE Á7+ÑÀ¬Vk,K4¶ÂÂÂFß ûûúÉßuCCCËë‹,è"œFŒ^uÕU‰?5›Í®u2´ð.-üŒ“4:náóùS§Nýä“OÇ7ß|3gΜĘÉÛüFÛ")‰ü~ÿÂ… çÏŸß4äE¼à´Ü¤¥F²Ò¤é÷ÞúÆÖšµháØ¬…Ï0¡ªª*a¿~ý¦L™Òì'Ó=Úy›ƒ‰¤™ï½]t¿ìk*±­>ãÁR³Q㞢©–SãtKSç˜øMgØcm÷î“ÅŽ;nþÝ/ËÎvg6›% WY†ø­0Ëåj4ÚŒ3Ö­[DzìÇ<}úôÄðv4-ì“GhÔªiyÑl¢á²+@fµ2³¸F{ýõ×·¼ -ì"µÆNHU¤X,ëä,CËï"Ðò[Ùò“áh*áüjðhí]ç<‘Z4ÍÌ™óÆW_^½ú¶Y³†§:œS"‘Øûïÿ8n܋キëÏ¿cÇ_o¼q”PÈOu\§t¿ Hk´í‚Þ¡C‡žþù?þX,g¹éèfWóL&õ'ŸÜ1iÒ€Ù³ßXºôÛÎàlu¿vÞ.?ÚiêlS{½.-¼Yçx/©•KAÖpR˜5?k|¾õŒF¥ÃámÇx’ ”ýÒK3÷î}âñǯ)-µüéO+.»ìåU«vùý¡ŽXŸÏ[¼xÂ×_ß/ ®¼ò•§žÚX]í*(HëˆepÚR˜¾¦¦æµ×^»ì²Ëî¿ÿ~nHffæÁƒ#”””´<†afΜù—¿üeÿþýË–-ãnÞ¼yòäÉ-Oh0%MÝn÷îÝ»Ï-Ã0ñx|ݺu.—kÁ‚W_}µËåJ^V,[³fÍ?ÿùOïoî»ï¾5kÖ4-=™À²ììÙ³>̽%IòòË/F£ÍŽÜìƒîïÉÍÍMþÐŽ;ƽ˜3gÎ3Ï<‹Åòûý/¾øb"øÓ=Eϲì믿~å•WroO÷¹5ü†nøøã?û쳡C‡&ž/j:y^^^k¾q’$›LÔ(--åv:ÝÀ. ¾©äf2™ø|~yy9÷§“'Offfr¯¹¤¨««Kž6ù»ÎÍÍ=ãú" ºdÁ5›Í®u#há]Zø'iZyíóÏñàƒk#‘Ø™§InÖÎ;âç ­ä4ØE …7Õ.÷’β¦éÀvçvûÕji›'‹Á`¤ãiJ­–Ýr˘ï¾{èÓOïìÛ7ý‰'6 úÔão8yÒÖ‹+*2öÙÝ>øÇwÞÙÁ²l×é º¥³.LÇçÏŸçw~øá‡ß|óͦM›‚˜?þ_þò—7Z,–Í›7?üðÃ-Ï$ …Ãa‘HÄ0Ì“O>I„×ëݸqãµ×^Ûìø>Ÿ{1uêÔ¿þõ¯UUU‡šøà×_ít:·nÝúÔSOqO=ñÄ6›m„ ›7o.++Û°aÈ#233o¿ýö¦3±Ûí‹¥®®nûöíS¦L©¨¨¸ï¾ûÎös›4i’Ûí~òÉ'çÏŸŸØtòE‹%ãO<ñ7æŠ+(Šjyeï¾ûî'NìÝ»÷‘G¹ñÆ[Ø Á'œ® …ÂY³fÝu×]GŽyì±ÇæÌ™£Ñh‚x÷Ýwiš~õÕW“çsÿý÷'¾ëyóæ%ÿ©ÙõE¤² 5šM„f×ºÑ ¢…§ZxÛ&)..ŽF£Ï<óÌM7Ý”8oÞ¼;ï¼óóÏ?¯¨¨øöÛoo¼ñƹsçŠÅÍ—hQ©T^¯·ÙC&äEÊ!/8gÕ¤›®H³iB4÷½·²±q-¸E7»K:ãg˜pÓM7=úè£GŽ9räÈwÜQUUÅ ï~íü\hµ2Ç·˜î—}œÓm«[s°tîççè¬>–sI|‰FAX­T(ÍË3tÐü»_–µm÷ÜsϽ÷Þ{=ôСC‡8ðôÓO/_¾¼Q½>Ÿ?mÚ´… >Üh4&†ŸíŽæŒ—ÈÎvÑl¢á2µYœÖdV³š®B »ÈF:'U‘b)‡,ãtr–¡å§Z>çŒ-GS§s5x´vN×9OAF¤ÄÞ½W\ñ I_~yßàÁÍôwÛÉB¡èŠßùìOl˜>}ؾ}O>öØÕZ­<Õq5Öý6 í¢ÙÀ/^|Ë-·Œ;61ÚYm:ºëÕ¼[nóúësׯß7þ[>_(…‘´ ûµóŽø¹Bkà9]$ïA Oh÷{IçYÓ YS_ï1™Tmž<wZéöáÃó_}îáÃKxà[¶”??yò?×­ÛÛŋ'Ì{ ŸÏ»ýö÷Þzëûޏ+ @Á&Y³fM£!Mýç?ÿ‡Nhá-Orºx-Z$•JišNL‰D^zé¥>}úH$’üüüG}4±%g›$Q,S©TÍþyÑŽ:Ëßú&ͽnº…o”&§ûÞ[ÙØZX‹F‹nv—Ôš†Ê²l0|à222Ôjõ 7Üàv»[øØÙ®ÚÎ;ÚÁƒÕéé÷”—ÛÎjªž™}ì™¶ÕgßàÁƒ-zÛ¶mA,]º´ÑðVîh­~³kw¶›nxÓQÍi¯|Gf±í‘Y-LÕì*4mÿMs§¥*‹; dY"þn™e,Zþi å'âï -GS;ÆÑTwmí8øéѬ+¶ggßw÷Ýï‡B‘ZD냑åË·úT~þƒK–lr:}gž¦côÌ_ï4]hÓ·g\Äé‰Dâ$ìÙ\KOáÕ<¶ã¯œÿüóìììÁƒsoׯ_¿dÉ’_~ù%µQµ»fFZËÌ™3 ‚X»ví9ÆÓ^óAƒ‡Ök¯, ‚$É5kÖp͸ÍоÐÂ{”G}´²²òý÷ßOu ]Žz²FiÒ?´®ÖÎ;Äûö}ä_ÿš=eÊE­Ÿ Ù×Ct\â·W¢µ×•Ÿrøpíå—ÿã‡ÍË3´aòv9†D–u}Ýþ@´«å;2 º™v¼v,ƒóZ>$ÃÑT+¡µC÷ÐÕ2¢‘P(ºdɦ·ßÞqß}“î»ïr’$Ûwþg%޾ûîo¼±Íéô-X0fÑ¢qz½"…ñà×;ç»v<ë„+çV+=oÞŠêj×;ïÌ><¿ãÔÚ9´¯®–wháÐõ¥6kpÿþþ㳦MvVËâÐt°_¿GV®\0qâ€6LÞ.Ž­çŸ|²/O™2ô¶ÛÆöí›~î³¥ifðà'^xaƬYÃk¸óÎÕååöG¹jÁ‚âÔ0@7ÃKu@qèСo¼qÿþý@`÷îÝ?þø-·Ü’ê š ËËËß~ûí[o½5Õ±tQH“îM* –÷ÝwÇRt-H|€N€D88š€.¥¬Ìz啯|ðÁîÿþwîý÷ONa‘ÍX,¾~ýÏãÇ¿ôÌ3Gî½mÛC>zUj«Òt2“Iµ~ýÇ÷š9óõO?ÝŸêp Gع³4Û·m“ïÛWɲì…æ¶oTg¥ÿŒ—_ž¹ÿ“?|å®]e&¼<{ö;v”žãl7m:@’äW "¢_¿ô/¾¸wÁ‚1O=õéìÙoX,T{@(LßE<øàƒ×^{íu×]§×ë,X0þü… ¦:¨ö§R©š®W³º+dtohá=ÄO?ý4lذùóç7.Õ±œ=S³iÒ¿÷ØÎ'NøÕWG&œê@  éèÄï!‰¦ÓÉ ‚p8¼©º¨r ÚCò UbÐ3¡åGS)‰ µºfF°,»bÅ÷'þ]¡lÛöÐÕWIU$‘HlÍš=cƼpÏ=^tQîöí¿òÊ 99úTÅ“àõ]®Pª£€sÒ5³¯2™hÅŠ›o½uìâÅ«ÿñÍ© -λ¼H¹ÔfÍúõû†Ï7ÚØÐÎ¥Æ6OÞŽÔjÙÂ…ãvï~ì£ …üë¯ÿï%—<·bÅ÷m¾•üé§ûÇë«TJ¸·b±àÑG¯Ú°áΪ*ç¸q/®_ÿsûÅ=ɲlâÍÚµkgÍš•<  š9s&Ak×®í"óH ’$׬YÃ5ã6C@—…ÐŽ '8Ú§Ãá:ô©—^š9kÖðVNr­to]üÊ˲=ÿüôÖ'W²v9†è6Ú+ß‘Y§ƒ,ƒž -z´v€díx=ÁfóÞ}÷û;w–ÝsÏÄ»ïž$ðÎ}žmÀ0á·ßÞñÆÛ|¾Ðœ9£-—™©íè…úý!'àñÜnm­»¾ÞcµÒ‡Ïíö{<¯—ñûà  ‡£ÜGm·¿‰Pt}|myõêyäãéÓ/~ñÅB!¿C—ÕůUBOÖ.y‡=ÊÙfÃá6ìé^˜~ýõ#Ú°8–eGŽ\2eÊE?|e&ïPGÖ¯\¹sݺ½ …dÞ¼?Ü|s1×+s+?n?þ¥wß½u„~þäõŸ}ö³Õ«¼úê!/¾8C£‘µkàÐãRÀùÄ`P\sÍ…Ë–m1ãbLu8ÝI’¹¹ú'l©ÚßW_yì±Ob±ø‡.=º(%1Ðtpùòm+Wî Âóç/\8Î`PœË &Ì•›w¹õõž†·ÅB;^—Ëïvhš BÁ`$ŠÆãÍ×&&IB,J$B™Ll6«5™V+§(ë† Ñs  mn¼qTV–váÂUuuîåËoV©$©Žº¡W_Ý¢Õʯ»î¢¶MþÝw¿ÖÖº§NÚ¾Qµ‹þý3^ziæwLxë­o¼±íÍ7·Ïž=ò–[Æ´²¤åË·¤߷韔JÉK/Í7®ïƒ®7î…¿ÿýúË.ëßÞá@‚Âôgç®».»ôÒ7nüeÊ”6VL€fU°}û¯>zUª€vSYéxüñO¶nýuêÔ¡O?}N'ïühšY¾|ûÛoïŒÅb·Þ:vÞ¼Ñz}ó%éc±¸ÃáõxŠ ¸\þº:—Õêu8¼uu›Íëó1~$ ‡Ã±X,~š¥‘R©@,ÉdB£Q­RI4™^/7”F£*=]“–¦0™Ô&“J"6;ýÚµkׯ´ÓªÃyÏb‘Mšô÷ôtMzºÚhTefjFUzºšëÉ Ý7n\ßO?½ë¦›Þ¼îºWß}÷Ö¬¬VÒ=#–eN¿Óés¹üv;ípøvî¬åó•í2s8TU9W­ÚµdÉÔÓÑÿû]qqQQ‘¹}kG99ú§Ÿ¾îþû'ðÁî·Þúþ­·¾¿æš /߯_F S¹ÝþyðÁ?’äi{F¿âŠAÇçÿå/kþô§sæŒ|ê©ëd2Q¬t(Lpvz÷6Í™3êÙg?›4i€\.Nu8gA&pï½jµ2­V®×+´Z¹F#ãÞêtr¡ŸÚðÆŽí»jÕV+m2©R œ;—Ëÿ¯}½jÕ®üü´õëYÐù1PTàÝwX¾|{ ž:uè”)±,ñÍ7% mµÒN§Ïåò¹\~‡ B¡P4ŽÆãl³³âóy2™X*êt¥R¢VËôz¹^¯àÊÍgd¨u:…F#Õhäb1~íF*]dµÒ¥¥Ö;Ê<Á`„û“D"4›Õ&“*#Cc2©ÒÓ5&“:=]ž®1™Tm¾Öׯ_ú_Ü3w®zeåÊ[† É9ã$4´Ûi—Ëïtúìv¯Ãás:}6›·¡ÁítúÝn?MY6‘Y¤PÈcYV,Îk[„pþú׿¾ÎÈÐ\ýˆ¶M¾}ûñ;ËÖ­[ܾQu•J²hѸ[nóÙg¿,]ºõ²Ëþ>~|ßÅ‹'œîxÙ²ï¤Ráœ9£Zž­Á xçëÖí}ôÑõ;v”¾ú꜋/îÕá@7‡GaÎÚÃ_ñùçÿö·/ž{njªc8;¡P´¤¤Þåò»\~·ÛŸ¨cE„B!æ*Ôkµr®Z½V+×é/N ï¸þF*‹›7þÓŸþÐA‹€Nàõßzëû×_ÿN(ä?öØÕóæîˆþðb±8E1p».—¿¾Þc±P‡—+„ípx-ÚïK$˲«Wÿ¸zõMç#ò$‘L&2”jµT«• £Qi6k22´ƒB«•iµ2FF’d»¯@ËÔêÐã_“<$ŽºÝ~«•®ªrZ­´ÕJ[­TIIýÖ­¿ÖÕ¹ýþ7šX,0›ÕF£ê·ÿU99z“Ie2©324-§¤É¤^·îϷܲræÌe/¿<³W¯4«•öxÅX­tCƒÇáð¹\>»Ýërù"‘xbB’äŠÎñ8‹ýo¸PÈW©d:,-M™–¦Ôé ï½WÛ®tuÖ¬_ÿóóÏOoÛ‘a4_²dÓ¥—öýà Û=¶"ð¦N:uêÐ={Ê—.Ý:mÚÒ¾}Ó-7eÊP€—Íáð½óÎŽûî»\&µf¶3f\|ÑE¹wÞùþôéKÿò—?Þ~û¥|>ïÌ“ü…éΚV+ê©kï¹çà úß/Õá´V P²lÙMÉC&ÌÕns:}\©z·Ûïr\._Y™Õéô¹ÝFõëE"W°^£‘që«Y/×h¤jµL­–j42µZ*•¶ª|F‚J%™6mØ›onŸ;÷z8¹Ýþ+¾ë­Á.X0fÑ¢KU*ÉYͦƒ (ÆåòÖ×ÓV«Çj¥¹Zóãõýþ ÄC¡X4;ÝLH’dY–Ï'Õj©Ñ¨R«¥jµT¯Wèõ ³Y‘¡1•œ+7:žp~‰&“ÚdR”Ýô¯°Xh›¶X(›æ^ïÝ[aµRv»7g¹ÑÔj™É¤Ôjåii*…B$ðY–ˆÅbŸÝ·;àõ2nw€a·ßþ7 I¿QÅy‚ ”J‰F#5”ƒÂ`P ŠÄCNÎåBѸ«Ëµk×¾óŽ»>è¢üq<# IDATþТE«FŽ,¸á†‘m›Ã²e[++o½usûÖ9†Ï><ÿرú×_ÿîþû?úûß7ßzëØ9sFr·Ò–/ß.•ŠæÎ=‹n› ŒŸ}v÷¿ÿ½å¥—¾ü曣ÿùÏœìl]‡…Ý ÓÃy©¤Äpç«‹ŠÒ/¸ «_?³Á ÄƒâÐÓ…i_~YͲ{òóÓòóÓôzEª#hg}t²¾þ«Þ½Íýúedgë„B~ª#H1›M¾nÝ^³Ym2©ÌfµJ%MuD@̘qñ·ß»ë®÷¿üòÞœ}ªÃh#©T$•Š224-Æ0a—Ëïv/WªÞíö»\~—Ë_YéÜ¿¿ªiýz‚ ÄbF#K.U¯VË4iseb±€ ˆ¹s/yÿýwî,+..êÀÕè¤Ò¾K—~[Xh,*2gfjE"\ hg"QæêÕ?rçhF£*-MÉ㵪W»ÝkµÒ žº:@€rQÐ#„BÑòrû¯¿6œ8a­®v)ÃR@ŠÇY‡Ãwâ„õÄ ›PhHu8êøq˪U;×­ûY$,Z4nþübîRv$s¹|S_ïæjd;>§Óëñ0ðùB^oˆa¡P8Ž%ªf7%ò%‘T*T©¤™™:µZÊÕ¼6•&“Ú`P(•’j6lØwà@õàÁÙ÷Þ;i„þ­~|¿Å‹ß›8ñå¿ýmúÔ©C;(rèfH6é±Âµk×Κ5+…Ñ@‡tÍäP¨"<‰ØRÎ9IO¿§Ñ’$R$*Fj2©srôùù†~ý2 È4š©Ù=sæÌuëÖuJ¼='æóÕç{KëÊTª1rùEÉC¾T*”ËÅjµÔ`P Êìl]F†&+K——gÈÍÕ7­ë}^g'‹{‰Åù,¤¨­©ÚŸ¯6oN"ð$¡R)Õëå&“:3S›—gèÕËPP`ÌË3ÍtOr^·ðH,Î!~(T‘ê@º¥òIA,æÅ¼±–6<G"1+}˜(Uo4*ÍfÁ HKSêtòf牼àˆÅ½" Õ¤:.Ç`˜ûÂak$bD¬ñx =› ˆôtÕŒÌÊÒegërrt99z‰DØi1´ßºæš“$¹aÃJ¥ät£u@ö‘Z H A(Ls8>ê̯ Z¦TŽ 3ÂáÚp¸6±°l,ÕýÛ´ÄTû …¢ÅPT€¢¤¨÷–¦‡¡i†¢‰4LžV"j42FV_ï!IâòË&Š×s…ì ±B!V($jµT.7:Ç!IÔ±"‚ MRi‘P˜ît®#ˆü®O‡ÏW‹Q¿hh$-íf@xËçóÄbwÝ@¯W˜Lªìl]v¶./ÏPXh4›5ÍêœÌ"I@ åóµF Ð šxœq¹6v¢ø|¥Xœ#åðxb—ëÓÎ\4´#©´¿Bqq,æ‰FÝѨ'óD£žXÌÛAÛC¥rTFÆØÄîL àéõÊôtµÑ¨2UR©@"‹ÅýþE1õõ‹…²X¨p8ÊM¢ÑÈ*+?a˜_›Ì›Çç+ Ÿ¯Ô|¾Z Ѓå^ﮎXè*Õ¥|¾<ª+:ù¸]*-R(FF£®hÔº¸,>—y6{<É6=qÂV^n««s×ÖºìvŸÇã÷ùBÁ`4'KF"‡ãÃs‰š%hâñP<Îtþ¢I’¯×Ï …ªƒÁ‘ˆ¥óè ͶöH$VS㮬´ÕÔ¸ëêÜ55.›Íëpxi:è÷3Á`,‹%¦c˜ãÏÿujÐB ЈÅIÏ·;ªîüHRÀç+£Qwç/º'k” ¶Ù|V+eµR µwoåÏ?—[,´T*Ôjb1Ÿa"Á`$ŠF"ÑXŒm6¡¾PÈ‹…2™P.+•J¢ÕÊ´Z…Á HKS¤§kŒF•J%Õh¤jµ¬…ð"‘ØçŸ|ýõ­GŽÔ š»xñ„I“ž¿%é{Ú¯w„BS4êdÙhªI%½~AÄ#G4êŒDìÉÈŒ3Ö®]›ŸÇ%B!Q«%ÂhT*³Y£VKãñ8W³ž;‹á ÙÛltuµ+‘ÅjµÌdRýöO›«O¼5UM¯$Ð4SY騪rVW;«ªœÜ ‹… …¢Nçšp¸¡>ÎîC") ‡kãñà™Gí<žD£¹ÜïßßCn«©ÕE"s4Jåç›.œ““£ÏÉÑegë¹RÑÅ”•Y­?yÒVW窫ó8~Ÿ/È0‘h4‹ÅÍÍïÿ™¦w¦b=Î Ÿ¯‰2E¢t¡0“¦·…õ) C(4óxÒõûæ O7„à ‘ˆ…e#gž¦+iº·jd÷î“Ó§/ýÇ?®Ÿ5kxæÏ0á?þñ½^¾víŸùüf~#t>jhð¼ùæöÕ«ŒFãr¹hçÎG4š–Žx[ E—,ÙôöÛ;&Oøò˳N÷‹€„ߦ¯©©Ù½{w £åp·mk()q¹\!µZ4p nà@]Q‘Z 8ÿÆ–Ë C^y¹½¬ÌRYi·Xh§Óçõ†‚Áp8‹Ç›¬Çã <‘ˆ/—‹•J‰P—JIN¤Ó‰u:‰^/ÖhÄ"Q7yl)å~ùŹråñÿû’TÒmE£ñ¾}E£’òrGm­«®Îc·S.—ßíf¼^†aÂáp,'WÝ"I’+í-“‰ ‰Z-ÂAL¥jµ½^¢ÕŠär¡TÚ¸~}—âr…Žq>ì>y’"¢°P=t¨aÄcªã‚ö7lØp¡PYVf=qÂ^S㬮v9^‡ÃGÓ§Zxò¦žÇã‰D|©TÄÕ+1™ÔF£šei l4J•J¡\.àóÏ¿ý]²qcåÖ­õ\ ›:µ—N'Nu8]Be¥·²Òër…\®Û¢¨¨×"‚Ïçéõr•J&—‹I¡PÔç STÀåòsÓ …|½^a4ªŒF¥^¯0›Õ\Áz»½†a<*•P*¤tåRÆå }òIÅáîñã3®½6/Õát-±ûÃÖš_MÏjeb1V£ggËsrÙÙŠœ…\ÞÍfß>‡Ã ù¡¿¦Æ]_ïŽFãA¤¥)¹š¹Ü¿œ}v¶.+K+u¡6\Y鏿š …‚ ЧMj2©›Žóã?ÖÖžSåŽ`0ÖÐ௯gêêüuuþ††@(xé鲌 Yf¦|Ø0ƒ\ÞÕëø÷Gºt/Oß·ozzºÆ`P|òÉúŽ^ñžéé§÷mž0!³óÍ0Ñ-[êt:A­V·;àõ2~(ŠF"±x<ù.$×s¶@&)•R­V¦Óq]«j²³uùùi‡ÿØÅo»´˲µµþÇ݇9r¹`à@ݘ1éYY)¨xXZJ-]ZòôÓÃ4š–6_pF,˃±`0 Å&FÓašû|Ñ@ Dýþh0‹Db¡P,ŠñxÂp8‰Äb1ö÷=ŽA$Á²„@À‰‰@"Èå…B¬RI5™V+×ëf³ÊhTedœª5/·Ï%>—Ë¿zõ+Wî´Zéñãû.^ŸO |‘H EH8i²3"‚äóI‘HÀý@©”h42Nž–¦4›Õ™™Ú¬,]Zš‚ë²iö­‰Ä6løù¡‡>îß?cúôaõõ”ÕJY­´ÕJ74x¼ÞSeÓ…BB!’ÉÄR©(gÃá¨×ËÐteY4™Ô‰«ýYYZ‰$æóÕt›eGØ·ÏñÞ{¥Ó¦å›SƒÃ\³ædi)•—§œ81sÀm7ë”a¢@”ab.WÐíWTxm¶€× …Øh4Þ´Ö|#|>ÉçóÅbL&R«ez½<3S›—gèÛ7]&‹Ùí':g-ÎQ<ÎÖ×**èòroy¹×ã …¼Ü\E~¾jøpcZÚi{eî8?ü`]¿¾bà@íÍ7÷éü¥§ÊÏ?ÛKK©Š ¯ÍÆðùdzºŒ»Ô«—R«=~A‘••5jÔ¨Óýµ¡Ásů\xaîÛoÏoÃÌãqö¶ÛVþôSù7ß<Ðì­ØóÚöíÇgÏþ¯L&&IâO½xñø6—§ß¾ýø=÷|³ÿüç &ôkß8 ›!›­ß Ý[U•sË–’-[Jvï>ɲì…æ^}õ+®”‘¡IuhíÌj¥ª=~¼¡²ÒQSã¶ZéDá­H$vºÆÏÕL y‰P¡¨TƒA™–¦4™™ÚœmV–Á`ëõJ {³kŸ}v`Ñ¢Uõõ¯¤: l6êÄ {}½§¶ÖUUå´Ùh‡áÿöûÃ܃ë&!IR$ˆÅ™L¬VKU*‰Ñ¨ÊÎÖffj23õ:L­–i4Ò´4×G"±Ý»O~ýuÉ–-%ÕÕN“IuÕUC&MpñŽ$T_íѸæ]Uå(/·74P ”ÝNsm; Åb¿ÛΓ$) $‘\.Ôë•f³ÊhT¦§k Œf³škÕÝïùÕóËÁƒ5ýëÇ%%usçþáᇯËσ‡«;Y$s¹|V+]U嬮vVU9«ªœV+]Sãb˜0Ab±ÀdR™Lj­V¦Pˆ¹B$ápÌïÛl´ÕJ9¾DµZf2©Ôj©Ù¬6U\ ˜L*îŸÁ äó»Õ¡Žßzá…/ß}w×€™Ï??}ðàìTGÔ¥E£ñ“'m‡Õ:T{èPÍ¡C5¡PT¥’öéc4({øð^Çç›Lª¢\#ÿ­Ä']U劃‡I …Nãrù›žõˆÅFÆUã’H„‰P­–rÇ„jµL"þ6©·‰  îY–Ý»·bÓ¦ƒ›7®«s¯»î«®Ò§OÊ*U±pá*‚ ÞxãO)ŒZ/‰54xNž´Ÿ8a­­u[­”Íæu8|n·?Œƒá¦å·ø|žX,ËÅZ­<-Ma0(ÓÓUééZ³Ym2©¸<âò%gkj\¥¥–ÒR ·[/-µX­4A2™¨°Ð”›«/*2™¹ºZÝ[EŸ/ôÝwÇvì(ݱ£´ªÊ) FŒÈ3¦¨¸¸hàÀ¬Î¹ÐÉj¥JK­‰ËãÇ-åå¶h4.ð23µÜa$wztïË.ë?iÒ€ÎÙAÓÁÊJ;·Mæ²ã×_Âá¨@ÀÓjå:\, Eýþp òzCI-œÂãñd2‘B!Öéäz½"-MÉ‘õêe(,4©ÕÒÎYhjêÔ×úõKî¹i)Œ¡ºÚùõ×%›6øùçJ•J:qbÿ«¯2vlŸö0G(«•¢(ÆéôUW»,Óé÷xv»×ãaB¡p(mRá÷Ô–Y.ËåbFª×+´Zyzº:??-7W_Xh4{ÄYy þöÛ£[¶”|ûí1·Û_Td¾úêÁ)?ïxé¥ÿûôÓý?üðh cè:Âá¨Ûí÷xNs'ÅN§Ÿ¢üÅp‡÷@8ˆx½L ‰F£Ñh<n¦Ù'pÝ]‹ÅB±X • %‘J%Q«¥Z­\&‘$AQÁÊJû¯¿6Äb±‹/.¼öÚ!“'_ÐÑ ›Ú»·bÅŠï7o>,—‹çÌuÓM£rr:¼ƒ+hwO=õé¦Mwíz¤{ÜùeYÖf£›^¼¢¨€ÇøÝ~®+n† 3LÄï1L˜ë¥õt¸ók–eI’”JEz½<#CSP`,,4–WXhêÌkŒû÷WÍ»<#CóøãW{Ÿ'• e2±B!ÒjåƒR¯W ò¬,}^žÞ`P&Jquæªu(LáÊUX­ÞúzwU•³®Îítú¸òX>_a" ŠDšžÏ'år‰F#S*%z½Ü`Pr³Y«ÕʸŽ&“:=]ݶ‡Ü¼ÞàæÍ‡¿ùæèŽ¥O`Рì‰ûOœ8uâ •‚ÁWÂøäI[m­»¾ž+[ÏÐt0…B±¦v±X Pˆ ‰N'7›ÕééÚ¼<}ZšÒ`PêtrîŸPÈOÉêôÑh|åÊÿûÿÉå’‡¾bÆŒ‹SÑy#Q›+’È•©¬´Ót ¡Ÿ‘¡ÉÉÑ›L*®¯T*äŽdìv¯ÕJ%J+ruB9*×7*°x~•Y·nï /|é÷{ìšÙ³GžG‘w‘H¬¼Üž¨Sð`M85™Tƒe”5hPö!9m{0¾ ’ Ö'^ÔÕ¹¹Ú=\®öG¢Ha¡I&ëŒ ¡Pô»ïŽíÜY¶sgYi©E à]pAÖ¨Q…#G\xaŽ^¯haZ‡Ã÷Ë/U¥¥®}E…=‰Éåâþý3¸Ï¹Os~¾±Í•î¡+ðûCû÷W}ÿ}éž=åTÇbñÂBW¤þè­ÓÉS`×ârùÇq̘>¯¾:çÜçÖÊröÁà©~g,gßlåz®Ì½Fsê¯\yn®$ñ¹¯B#‡Õ¬[÷ó×_©©qåå¦Mšòº (LßÍpµkjœ••ŽêjW}½§¾Þív3O€+jÉXq—“¯4“ä©·$IÈdb½žëñQ—›«ï×Ïœ—gì̾ÁâqöÈ‘Ú;J¹p8»à‚¬ââ¢1cŠÎÇBNpŽ"‘X}½§ªÊqäH]i©¥¬ÌZ]ír»ýñ8Ëã‘B!Ÿ$ÉH$šèîŽ;ŸjTz>ñºÙbâ\?O¥¥–äCÖ†*Ž’$™“£K.ˆŸž®Ñh$@ä·ª÷T¢ü=×Ww™Z$hµ²äîÄ’J:ª³²´=ðôù®ªÊÉÝ Ù¶í×xœ0 “»ø9hP{ö£ÆuqçrùŸÃás¹|N§¯ªÊÙÐàq8üßë …B‘ÓMÎçó$¡J%IOך.¸ kܸ>™™ÚîQ4¶[ºë®÷)ŠYµê–TBQ[ëÞ¼ù0W¡^"ŽÝûª«_qÅ v¬Ñ‰Ä<ž€ÛíçjŒº\¾ÚZ·ÅrªwFŠbüþ ×_u³7ÄÅbH$T*ÅZ­\¥’™ÍªÌL­Ù¬ÊÈИ²³{zS§i櫯Ž|þùÁ;ËB¡ÈСyW_=dâĹ¹]¢ê÷Ô©¯åæê_yå†TÒžüþW¥š¦† a¯7ÈݪóùB åñ0^o€¦ƒ^o0ŒpEuƒÁX$9ã>ÄbH$ ù"_.Ëå¥R¢ÕÊ´Z¹V+7F£*=]ž®R*¥b±°iûg˜ðO?•s=<=Z/ðGî}啃.¿ü‚ο¦ E×­Û»zõ‡Õôéc^°`Ì”)uýÀЬª*ç˜1Ï?ûìÔ¹s/Iu,Í㨒{Cl¶‹DŠb<¿ÇàŠ³'p]“$Ç£Ñxrl‰DÈÝgçî¼deiÓÒTƒ"q#†»èÄlµR‡Õ&. ŸŸÌÏ7r½Œ‘ßõ{å Âsæ¼qò¤í³ÏîÎË3´aÿøÇæW^ùú_ÿš=}ú°v/å^yåëe˶nÛöPf¦– ¿?ôá‡?½öÚ7~øúëGÜyçeFc[î¯[·÷¯ý8;[·téMýûg´wÔР0=AD£ñýû+7m:¸yóáº:·^¯¸ôÒ¾'?¾_|¼““xºØf£-ª¡ÁSU媩qÕ×{ÜnE1‰†I’àñH–%X–h6¡x<žHÄ—H„2™H¡h4RF®×+F¥Ù¬2›ÕƒA¡VË:§\fç@aún†«Þèñ0ååöŠ »ÕJ××{l¶S5¾}¾ ßJ~Š>I’¿õß ÖéäƒÂ`P¤§ku:9W¿žû§ÓÉU*)A õùç·l)Ù³§<‹U8q‮SëºP(êñø­Vº¢ÂQ^n¯©q64P6›×åò{½ ÃD~ß=ÉïŠD(•®3’ôtuF†F¯Wp5ëõz…Á Ðéä(kxŽl6ï’%Ÿ­_¿ï²Ëú?ó̤ÿ¹ ¨€ÅBÛltre„äâ†Ê"ètr™L(‘ˆ¼Þ Ç°Ùhnr‹…¢(¦¾Þíó…¸9 …|Nž¨„¨VË’«„h4R£QÕú::qÂöÈ#ëwí*›6mèc]ӶǶ¡‘ä:õ{÷V””ÔÅbñä:õ]”ÛröŽÐlÚZ7W‚¤i£Q•›«ï¸s6›w×®²;Ëví*«®v‘­ø-^¬ IDAT<8›û7`@–ÍFsŸai©¥´ÔbµÒ$IöîmêÓÇ\Tdâ>ÌN+× /ïÛW¹gOùž=»wŸŒDb¹¹úâ⢋/î5ztïôtMªì¾øâàm·­Z¹rÁĉ:é‘HÌë ruŽ¼Þ ßâÞú|AŠb|¾ Ïâ†Ót¦Ÿ/èõC¡h£ù…|¹\¬VK ‰R)Q(ÄR©H­–Êd"™L,—‹”JîµH©”Èåb™L$•Š4©L&nZÑþäIÛ§Ÿîß´é`i©ÅlVO›6lúôa]¤} Ó÷ .+³VU9«/)©¯¬tÔÕyAR©P,²,Æ&’¸VÀçóù|’eÙä.„B¾J%åªa&×ÝãúxົËÈд¹w‡š×öíÇwì(ݵ«Ìåògfj/½´oqqÑ%—vþ± ¤M­VÊn÷Z,”Ãá³Xcm»d¿õ(I7[¶Þn÷&²,©N½*¹~ý9æt‚@ ¼kWÙ–-%[¶”X­tNŽ~̘¢‰ŒÛ§åþ>&ìrùív¯ÓéçªÏ;>®½ÍF;>·ÛÏ0áÄø$I’$‘tkƒT«¥jµÔhT™Lêìlm^^Z^Þ©2 A?n)-µVU9¹s–êj˲ܹUQ‘‰kÒEEæÂB#úEè:^zéÿ¾úêð·ß>˜ê@~§¾Þ³uë±-[J¾ûî˜@À/..ºêªÁ“'_ TJš?Œx<·;@Q'À½öx.—ßb¡ìvš+Hê÷‡~'WånLpr5©É¤ÉÊÒšÍÊü|cF†–»UwV䞣¡ÁóŇ6m:°GŽ×÷ª«߯K>…BÑ>}þúâ‹3fÍžêX~'‰!Šbp æN$0ÄišñûÃ@(såtýþE½Þ ÃDB¡Hò;YÓ. ‚àñH©T(‘ˆ¸»ojµD­–ÉåÜ8w À]¼Õh¤É…­ÏV8ýé§òï¿/ݱ£´¤¤ŽÇ#GŽ,3¦¨¸¸¨ÿÌ””ÖµZ©+v¬[·Çéô_qÅ  ЇÏïü0 ÝsÏû÷WmÝúPç´(–em6ºiç…Ü­ðÄP(úÛýñ@£Ý ŸÏ“ÉD"‘@ àÆb16‰ƒ‘D9lÔjåjµL«•qÝ\qɘ8í=ÇÜ$’®Ò—–ZKK-TÛí^‚ ¸ õEE§.2÷îm:cO½§+@o±PܺËåâ‚crz¥Rò쳟9¾Õ«˜Ùæµ ~ë/±ôÄ=)›N\Þ'Ns¾“›«?ïúQn¥]»NÜtÓ›S§}ùå™]á^[#uuîÿþwÛì–ÉDóæýáÖ[Çr¿ôhX,ÎýÈ„¢ÜeÕßÊÍ3Ü[šfÜn¿ÇÃU¢gp£¢$A’äi~ õ¿Ûú<¡PHÕjiZšÊhTÊœ}^žÁ`PpM¨ƒnqáq”|–;ŸJîú.¹`}â"C» ‡£Ts͹ …J%1"Ÿ«iÞ¾½Yœ»/¿t¨fÏžŠ={ÊC¡S]‰sßé…ævµK@Á`dîÜGÖ}üñâ¾}ÓÛ0‡ýëë—_ÞüòË3gÏÙîá¥\E…ý²Ëþ~ß}“/ž<œ¢+V|¿|ù÷AÜz똳ÚÒ&œ8a[¼ø½ÒRËL¾ýöñÝow ç…顱ãÇ-ß|Sòõ×%?ÿ\) Š‹‹&N0qb”Dl$ùùØD% †ª¡²ÙhŸ/ÈÆã‘?ñ`O,ÆÆãñÄÓ³MB!O$H$B¹\¤PHT*™N'ÕjiiJ“Ie6«335:B­–vñ>P˜¾§ ‡£.—ßáðÙí^§Ó×Ðà©­us屸ª1~(¹öG³Éõ¾I’ I^<çóI½^™“£ïÛ×l2©%ê4Y¢–}*Öz–D9o‹…ª¯wWW»< §Óçv[r’$¹JÑh<ù°J$âªôtµF#çÊ)šLªöª®ØCìÞ}ò‘GÖWV:/Ç—¡PTû …¢ •¨SoµÒÍVñN”öàŠ#dfj£ÑWÃÑéôqµívÚj¥ŸÕJ%ÊÖss0•:<-M™–¦Ôéz½ÂdRéõr½^‘–¦R©š¯>ÖŽëøÚkß¼öÚ·½z¥ýíoÓFŽ,èÐÅõd@øÈ‘ÚC‡j¹2ë'NXãq6¹NýСy:<%±®HM‹+eÒ´`}NŽ>+KÛ¾u­VjçβmÛ~=t¨¶ºÚ™¨dÄçó224ƒe‘?hPV¿~§«ÊÝ[r‘úŸ~*‡£‰"õ—\R˜™©Mu€©ôàƒk?ûìÀçŸßSXhLu,­‰Ä|¾ MUì}¾Ïü­O¯Ïäªrå0W²0n\Ñž ¡/“‰U*‰PÈ "4 B‰ 77mÀ€Œü|£L&R(Ä*•D*I¥"•J¢PH¤R¡L&R«SvÒ„ÂôÝL<ÎÖÔ¸¸’ÄÜž”ëO… ©TÔ»·‰+O\Tdæö¤Ú^ò‰E1V+]S㬯÷X­^§“"Üh<)òù|>W¹>ý߀¯ÕÊôz÷?×1˜VËõu'×hd:Ý© \¥6Š pu3wì(­ªrªT’±cû¡Ë«î'Š:^‹…v:½ m·{ŽS5蹫R‰ã.€g0(ÍfuZš’ëL‹;Ùáê*êõÊf‹`†Ãц*ÑþËËíåå6«Õ˲,Çxñ8Ë5W±XØ«—¡woSòQe'œøs½«&_ Nô´ÚlGµZÊ­~r¿b…vñ8{äHí–-%[¶=|¸V, ”Õ¿fn®>‰9>§óÕçN_0ILËãñ„BI’\³L”nÔhdz½ÂdRgfjrrtÉètгj¢4¬¬´ÿV§ÞZUå<~¼!Šr¥‹ŠÌ\ýÓ>}ÌÆ.~ÿ¢ûàƒÝO?½ñøñçSH3üþPe¥cË–’o¿=và@5Iyy†œ½N§ðûƒOÀíö;~Šbóù<®èx<ž\–T¡«T2Fj2©ÌfMf¦ÆlV ½^Á]ŒBï¡gåøqËçŸà:ÁR*%—_>ð꫇üá½»T­Ò„Ÿ~*Ÿ2å??üðh^ž¡}ç³\ϵ@˜;¹c®¬|ÐïOœÄ&„§x~˜¢† 'Ç&ðx<äóInþ±X¼IOϤT*‰ø …T¡k4RNÎmÀÆÿÝVH„b±ðÜ‹YŸ‘Ï:p jÏžŠ}û*÷í«¤é`V–¶¸¸Ï˜1E£G÷NaûöU½ùæ¶Í›K¥¢›nºdΜ‘íÞ ó=Z?iÒß—-›{Í5CÚ6îø45å™&¥çW™'B$p—V$¡H$ ùÜU,ƆÃÑp8êñüþÿÝûxz½¢Q•ùÄ}@î­V+o¹‡¡Ž@QãÇ-\O¨Ç[® #B!¿W¯´Aƒ²úô1÷îmJKSù|ÁFWË(nç«PˆóóÜéLâöPÓ3}ŽÇøÓŸV”–ZW­ZÐqýCpýÑ6í¦«²ÒAÓ 7ŽH$ÐjeÉÕê';™™Z…âü;.ݳ§ü†Þ˜8qÀÒ¥7vå. ï›on[¹ò‡x<>~|ÿÉ“/x\eynÉõ$Äu)äõžêæ“ë×0™@Àãóy< ˆx<‰Ä~¿£$…B÷ó’X,žØÕ’$©VKt:wV›•¥5”É]tè¾² ¸+ É}?TU9++í4$B$¤§ÿ®T}n®>/ÏІ:ÔAx<®ýž=åGŽÔ1L8;[7bDþðáù_Ü«kv-‹Å_xáËe˶ÞpÈ瞛†´R4?z´nÏžŠC‡jvï>Y[ë–ÉDdruêGî­Õ¦æþlMçÍ[qôhýÇ/nCG&,˾𗯽öíóÏOŸ;÷’Žˆ0µ¢Ñøu×½Ê0‘Í›ïkö MßzëûwßÝ Fo»mì-·Œ9Û‹xÿÏÞ›‡Çq•ùþU]Õ]UÝUÕ­ÞeY²%Û-Ç{‹dgÃrÄ0d¸&d`“ à ¿y —Ë\2à ÃaB`Âr3ÃH¢8v‰œGÞ´yÑÞûRûÚuÿx¥r§%+²-Y²r>ž~ªK­îR÷9Uç¼Õõùš¦ýÕ¯v}ùËO^sMê+_y/ú0@ @ @ @ @ @ ˆZ˜qF éé§=õÔѧŸ>¦ªÆ¦M+;;7tvnܲ¥y±7í".u®UÕ.çó’«òz‰`aŸ×Kx< ýV.r6 Û4-ËšAdãàš!hÚKÓÞ@€âyšçý þhDöÁ+‚­­±PÈá-0HL˜Ò “&&ÊGŽŒ;6‘ÉT ÃÆqÜq0WU6%èÕ*¦ëfíSù|D0È€„”p0èw%®`þUÄrgº]qt´86VÊfÅ\NTU6eWô8V·?'I"€¡;åÀ«1 ° ²Å7¸βªßÿþs÷ßÿÛH„ýìgß¹sç†ÅÞ¢åX¼aèâÊ2ad¤ ›¢Èdò´ì--‘ææ°Çƒkš™Í Ù¬ÏK`‡,e°Ø R.'U*ŠûZ>‰°0n™Z˜ÔÖÇãñ–|àš-“ˆB’ô£GÇfñÔoßÞºè3Ó àâ.:Ž^E·y»hçsyþjÕÈôôŒô÷gúûÓ==#™Œ€ãxKK8•J®^¡(o¹¬œ<™;th´#--‘ Vlذâ’K7nlji‰ÌñµË U5=pàä¾}ýÝÝ'tÝZµ*²}{kGGÛu×µ77‡{/4–U}ï{¿5<\üÍoþnåw ×›¦ë¦¦™Ù}ûz8•NWü~ßÚµ‰––0EyAÕ4SÓÌJeò‘…‚4c逢HšöÑ4 %( LRY':¤iï9«í‘˜þ¢&—{{'\}z|¼lš¶Çƒ77‡A: GÆT*qþÓm7÷fUn-®¤Ó•bQv håe/Izp·¬ªiZªjÖE?Ò´×q0°éÅbܪU‘ööd*•ŒDX7뮡Á¿ˆ± ˆ³¥ZuÀ¾NWòy1—3ÁUÏg³bíü‚ãèD‚øˆ‰`4Ê&“Áh”‹ÅXˆ.˜ã뎌ëlqCCx9Ž£CGû|$ŽcªjäóâÈH Ã0Š"W­Š¶·'ë\r ñæÌ‘ÚòE6+Ô.•ÜcLô\{c­¶ÕÖæ]·Êe¹XTJ%4ÜÅ¢\.+Å¢\*)°nëŽìáñùHŠ"q7 S×OW™X–N&ƒÁ©x¹Óêù…6¢B Á oèëK;6‘u‰‡ŒT*évŠ…Û„˾}}ïyÏ·{{ï;7…åÙbÛÕJEµ\VÀù[*)å² w¡U»?µÉµ†‘¤ÃpÛ¶óxpÇlûô9k¯—+wcc Gñ8å#ˆUˆDXTí9ªU祗NîÙóêSO*$ü-·lÛµkã›ÞÔvá}ÊgÅW¾Òõðÿé¥ÏÔ­¯TM³4ÍU×MU…KQ QÔtÝ”eC–5×;¯ë–$鲬ëº)Šº¢èu Àqœ¢¼SÚ\Ç1æ:ŽcYví> <ò󼿡 ‡9˜a¹S°ºsX m™Ÿ#ÃÃ…—^:õò˧º»OööNT«ÎÚµñË/_ÝÑÑzå•k×ÿnYÕ_üâåÜßÓ3²vmüCºþOÿô²‹Ñ4˜‘¿ø‹ÿ(¤={îq‡ë†aÃz*äo2ùÜÖ‚ Áq ŠÚôDÇyž …Ž£ÆKQ>Š"HrR7oYŽeÙ†a ‚Z*É‚ Õþ¹[vû)ŒÝØé%h»žÌhNžÌ;6Þ×7ÑÛ;1:ZÕÝYÞÐÀ677¬[—X¿~ESShý,hšy×]?ó̱oû/nºiÓü+¯óên%ax¸0ûdgJµz¨œHç^ð¿:4ú®w}£££íÁï¸`çŽãÔÆj‚Aó²¬C—t󒤉¢.IZm`ƒ Ãx}>’$'¿þä8Žm;¦iÃ7 jéó4íózI‚Àq·m[UM]7§>;< ƒþ+BîgW›µ¶lÊ;µé n bp0£(62ç¦DÀÄjÆ$°¾¾ô'»»OôôŒ?žugÓ¦•Û··vt´vt´.ñy}¹¬|ô£?÷ÜÀç?ÿg·ß~ÕboÎEL&Séî>ÙÝ}òÀ“‡V«Ž{‚iûöÖT*1÷âØ¼0<\øË¿ü^±(ýøÇ¾ä’gûçºnýã?þ×/~ñÊ—¿üÞ[o½|!¶pÑùÂ~óïì}≿_·.1ËÃLÓ~ä‘îû·'DQûÀ®ù›¿¹ñl÷Ï=7pÏ=?6 ëK_z÷®]ú@ @ @ @ @ @ bÉ‚Äôˆ×GÓÌýûû»ºŽtuÉd„ææðu×µwvn¼þúõì2ÈåÇ,J ~ÁÃÀ —Hc1.bÆgÛ†ÁÅÒ¶¦Y•Š"*H4Í2MÓ0f0&`†ã8Iz(ÊKQd @±,Åó x=¢Ñ@"lläW¯Ž‡B̼Øj˜1 ‚ =ñÄ¡§ž:ºo_¥¢lÙÒ ¹›6­ŒcÅ¢œÏ‹°?™L¥PËe¹¶‘îó‘Ax<¸ã8–UÕu«Z}ăLítžgj×£Ýb^¨U!Ô&”¤Ó•RIÎç%÷‘å¥i°+bpY¾¢è µ¼^lõ¡Ð¤³>„Ã)…ýäÊPÈ¿ŒML™LåóŸì§?}©³sãç>wëÐÉ»D3”Â[Èf…¡¡ÂÉ“9QÔ°)]‹«öpýMM u³V?Z.+0r}*%›ÝIŠÏG‚<´ nâè'‰àŠ¡º]÷ÈHñþÏŸwu¹í¶+î½ww"Á_°·1#¢¨;6îzê2Žã$ó™_z<ø÷¾wÇ‚½CˆùAUÌ”€>SëÝæyº½½±½= GºT*ÙÚ½ðrRÓ´‹E©\V§Ð*ul¬TÓzq s(ÊP¡Ãó T tÝÇh.'Ö–Á§Âf°‚ºŽ³ù*‘!fÁ²ªcc¥éÉSÓ„Š®OJëpÇ9w^P+Sä9 é`\­6Œ'&*†aAªPbþL®ÆÚéè¹ûú& (ô×>C*•X¿~Ï/þЦfÙìkrUán6+‹²ûHˆK&ƒ ûÇ9øâqþ¢ðr^Ç)•&ò šw-ó žw nA–¥9Žöû}^/A¸ãà¶mƒóQQ ÷4UUÕÐu“a|íí‰ŽŽ¶ë¯_ßÚ[‚A¥¢ôõMY sÁúB*•O}*•\»6>Ëðqnœ8‘»æšûžzê6œµõPUCÔryR7/*p`¡RQ!w|ôPrÁqœa¼E’¤Çq0ÇÁl» ‰Jîc<2c’É`"Á3Œ¯\–ÇÆÊGŽŒ™¦½aCÓÛß¾õ]ïê@õœÅ4í½{{÷ì9øÌ3½…‚´vmüï¸ÎÑ,¢ŸW5]·dÎxš° ëìaAQ ]7EQûýï=¼±1¤i¦®›n¸×ŒÏìõ4탔#Ÿ„j^þà¿wüxö¡‡î¼úêµ ±…‹Îÿ8üŽw|哟¼å#¹a.=ý¿ø[E1þâ/®¹ûî7ŸU"]>/}üã?ùÝïŽ}øÃ×}ò“·\D@ @ @ @ @ @  Ó#΂jÕ9|x´«ëHW×Ñžž‘`Ðíµ©;7ÜtÓ¦³ºÐñºœÉh ¶ÖLFpYãcšÔ0q WxZ–Y.k™ŒÏ‹`ÄIE®›ºnÁõŠÓÁqŒ$ Ÿ¤i’¦},K±,n…H„DØXŒO&ùd2àå¦? Ó#¦3>^þÍozöì9øÇ?á8~å•k:;7îÚµñ.A„h0àÔJán:]™˜¨ÔªCHÒCQ$I’„Çq0˲uÝÒ4£î0è÷û¦Tõ³ùëa=òÃ"Î ]·Êeyú–s9ÑÓ{½D0ÈøýÈë1 ³íªaX²lˆ¢ªª¯¹ÎŸçi0h44øC¡ÓÎúpØ`M(äŸq§}Qðüóƒ÷Þû³ááÂG?zãÝwïD‚È¥ƒ·SëG€† ¨ó0¸¥­-~&!‚ h¹œP(H…‚œÉ…‚T,J¹œÉ%ù¼T«’ñz Ÿ$|CC`h(ðàH4ÊÞqÇŽk¯MÅb\8̾ÁÕK AÐz{O{êûûÓáY³&¾eËÊ-[šáv Ú»¦·ó¾¾ôÈH¡nW̲Tcc¨½=¹}{ëe—­ÚºµåRCDQëí8ztüèÑñ£GÇz{Ó²¬ƒ5•J¶·'Át¿n]b ¾Qˆ…ÕÔwwŸ|ñÅã‚ ¹’úíÛ[ÛÛ“‹½ Ë©Sùw¾ók«VEüã/(‹y'Ÿ—~ùËWÀGï÷ûn¾yóîÝÛ®»®ý {A[=è¨\s=xíAVå>@UM]7AÕ4SÓ,APÏT]dŸÏGÖ(ìŠ"ü~ŠeiŠ":ðQ”—ãh°\ƒ E‘ðHšö2Œ—eiä«ÀUW«ÞîïOÃh¦½©”+ O€Œþœß€‰‰òï~wlÿþþ^8žË‰Ñ(wÙe-«WGƒÁ€¢èµŠóÚ¸£`Ðs0! (Š"I’ðx0èÚvUQôr»¯)»a³JHk““..wá…DQŒ\N„èÁ\N„áýÄD%Ÿ—r9!“\,ŽãÑ(²Ð‹q L&ƒÑ( rºóߘÁÁLÓ "B ³reƒ«žO¥’©T2™ žçT¢Ö"žn7Ù«v–]¯µ5¶¤ M†aårâÄD9—“Òér.'ML”óyq|¼’Ï‹¹œè>’çiøÔàÃJ&C± þúyùà7£6J îBöå²R«O%O4ʺû Ž£¡ÒN’„aØ–!I*tŠ\Nr÷T D‚ol Æã|cc(cW¬hˆÅ¸+BÑ(3‹¾¾ôSOÙ·¯ÿÄ0ìÒKWíÚµñ¦›6¯]_”·hŽ‚vêT®6 ¥·wÂ0,ˆþ‚aíÚÄ2ì]tÝjkûÿzèŽ]»6¹+§óÚ”_^K˜‡Æ >zðغ$Á²>šöÑ4éõ"ïªiÚªjV*jmÞãÁc1.x†|ÁÙ£DTÕxî¹={>þø!E1.¿|õîÝÛn¹ek2\ ÷ê ˆ(j?~è±Ç^}þ¤YÜþ IDATùU5¯¸bõîÝÛ:;7®Zuޱg …EݲlAPMÓ†p,ðDQ3M[’4M³4ÍTÝ4mh0’¤kš ¢yÛ®V*ªiZu¹.áaYÚï÷QÉó Ãx}>/E‘{÷koO¶·7:ŽcÛUÇÁLÓé-„oU«ŽaX’¤U*jäºvG=Ý)?}Ô·lÊ/²¬÷ôŒþñCÿñÃcc% ÃV®l ýW´nÜØ´tâo_yeèá‡ÿ裫ÕêîÝÛî¸cǶm-‹½QohjÇEºnišY3šq¥2Ý/‡ ˆ»ƒ¾öÊ+Cå}ç;/£i²¶¡i¦ªê¦Y•eüò¥’\(¸©?r±(»zk ü^ΑÁ´Â5ÎÇbhèáîÜ}ëKŠ3 èa:ƒ½V@ïž…™Ëì>“©@•¾¯/ÝÓ3züxÖ¶«nXä­nÜØôºç¿ñß}þó}ô£o¾÷Þ[æíß^0²Y1›´Õg2Âèh1ÒéÊøxÉõ³SÙØJ$ø¦¦†d2ØØll %Á¦¦P,Æ-Pµjx¸ðÎw~=‘àðƒ;=\’tÈ•”eC–uAP%I˼(j‚ ¹–ùJEUáx A’,K4E‘>Ÿ‡$ ¯—Ä0 Ç1øâ„eÙ¦YUCÓ IÒ*­nL™£•=’$p·mÛ²lE1dYE£P³YÁ²ªî_56†¢Q6‘à£Q.‘àc1.aƒ‘²‹˜ˆs‘R(H?~ø¹çú{zFÇÆŠ†aSéõ²lÀÔ²îœ,,47‡—ì[ý“Ÿ¼ð©OýìMoZóÍo¾/^üPœåŠmW³==#à©ÈÞÖïèhݾ½õÊ+×47‡çñåªUçÛß~æ _øÍ®]›þýßß{_PyþùÁ|ä<Ï<ôÐ×­KÌã¶-A½ùækj =òÈ]gÕCÅxè¡ý_ÿúÓ8Ž}ðƒ;þ꯮Ÿ{þ¥ã8ßÿþsŸýì£ë×7~ë[ï_½:zNÛŽ@ @ @ @ @ @ bù€Äôˆsdx¸°o_Wב½{{«Uç²Ë.Êò Ÿ—òy1“²Y!›2!›3™J>/ML”]wèœ"6ãâq> Äã|,ÆE£\2ɇÃl$$½\V y|¼”NW²Y±P ¥RQDQ“eMQL°Ø[VµZ=“È'Üë%(ÊË0>¿ßDz´a˜ÇŽM¼ÿý×{ƒy$‘ò<3÷ ¢ËÇq8ÙÕu´«ëHšãè›nÚÔÙ¹qÇŽÔB{©4ÍB6+¤ÓW0—É®¡ÖR‡a˜×Kð<ã÷û¼^ÂãÁ=Ç1ðÀŠ"ˆ®¿F>KWXþúZ‘}(Äð< úyžfYšçi†AZ%Äë#Iz:]Éçʼn‰J.'‚NqêV¨T÷‘á0ûC!?ËÒpÍ9ŽãŽã˜¦­i¦$饒\*)å²R×ÎÁ\?¥ð×Þ ‡ýKYaošö~ðü¾ð›XŒûÜçn½ñÆK{‹³¡ëV:]q`K.ŒŒ!}ä®!ÅU$¼®*$8®¶t~‡¾ôÒ)]·8ŽRU³V™P‘Èhðr®‰î.)ä AP{{'zzF8ÙÝ}"“HÒÓÖvÚS¿ukËRˆPãðáQ×ÑÓÛ;!ŠE‘7®H&ƒ,ËÐ4é8X¹¬ 30&§(2™ Öê?V­Š¬^;«ñpµê ëíèïO÷öNœ:•·¬ªÇƒ·´D@äªê—Â{…¸€¤¾»ûä'Ÿ}¶OTÔoßÞÚÑѺyóʋԱ5;‡¾ë]߸ꪵ<ðef.åŸÿüå={¾òÊE‘o}ë–Ý»·]{mûEÔ£ ÃRUCu]7eYÿìg­V¿üËk@Ié*ì+Å0,U5A…°%IÒtÝ’$<•3>¹×Køý”«°÷û}> IŠ"ƒA?E‘ ãå8†¢H¨HPɲ”ßOQÉó4Mû.¢7s^€0ÿ‚ûÔ©¼aXsÒÒc›šš–Ž}òLˆ¢¶woïþýýû÷÷ X–ºá†KvìHíØ‘šÅ£:=Ì-d³ÂØXÉ¥Á!;ç“É`(ä÷ùh?áÁ0Ç4ð*–Jr¹¬À$«6* {í< æSn`Lµ z KÖv¶T«ŒÆ 9›™»ÉRÙ¬˜ÏKµR¼@€r-óñ8²ÉdÔó±‰póØÁ‚ .xwJêÚ0w¶bEè‚\\[½kè>~<+Ë:VãK¥°‘kÖÄ—àÜÃ0Ó´¡p‘Ï‹é´1™ŒË‰ét¥Pܽ:E‘PŽÅ¸ÆÆ (ÁH˜Hðóû¹Ï‘jÕÉå„é~ùº²át›*¸¶§ ‹ý~Ÿã8á±íª(j¥’e(ïäó’û <Ï$“Áx|²ZžLž¾M$Î.¡T’Ÿ{n «ëÈ“OuÕªÈÎwíÚxå•k.Š‘’iÚããe71¥¯/}ìØ8h@ Ú¿;ÓI$øÅÞÞ¥…aXB,j¥¢ ‚*ŠÈIEQí¿x¹©)ø@4_[NX–ây†çý~¿Žwàµ,[ÓL¸-—•bQž1tá¤óg…®[ûöõíÙsðÉ' ‚–J%wïÞzë­—·¶ÆÎÿÉߘd2•={^íê:òâ‹'ǹúêuozÓš«®j£i¯iVEWUC×-IÒL³*ŠªaLúåMÓÕ²ª¢¨rZ–u˲ËeÕ²l8x Ž£I’àyÚç#áÔ!„°„‡ãhH®bYŠ$=Á ß¶«8Žá¸Ç¶íjÕ±,[Ó,Ó4UÕ’e½RQ¡m‹¢Ë®5Ø"‡!N8to™Pˆá8¦f {ƒd`¨ªqèÔÜNöôŒd2ŽãëÖ%ܲۆ MgŠ],ŠEù'?yá'?yñĉܦMMïÿÕú§—-µ¼Ø±„FÔ ‡Î¼Ò˜n™÷z‰p8àÚäÝIzmÆCÝJšöV*J±(ÃÏsÏ |÷»Ï¾ç=A‹R©¤€}¾TRjK> Ì PÌ74Ôf3Oþ, ¿mWGGKÓϪ¸zž§W¯>ý1Mûĉ\OÏH¦¿?}ðà0DR%ü–-Í&´eKóÚµñéföüàù{ïýÙûßÿ'ŸûÜŸ]¼Ó^8ýäVfü°šÊ?ŒäÝÏîÂc ÜQQtˆ~TUS’4IÒTÕTU£\VUÕe]QŒrYQ½RQO*8NÃpÛžá›9Á ?ðAÞÇÑGûý”׋áõ’8îØ¶cÛUˆfÑuKUMUÕ%É€8"8¦×>!M{¡{º_o€ž gœ1 3MË4«ªjT*j©$»S~7aÎï÷%Áh”…Iè!1úÈ‘ÑÜ?8˜Ý¹sÃÇ>¶ëÒKQ¸È¹32R|á…ãp@?~<[­:›7¯„s­Ðä Ú˜¨Ôæð NÊ ‚†aD‚Õ«ªm®‹‚iÚ÷Þû³ýè…|×Ç>¶ ¥“^Hr9ñàÁážž‘îî“ÝÝ'tÝ‚ýeë®ýƒkÑ5ͪTTpÙg2B>/ÁµâS—Ô†a«ªá^:#8Ž“¤‡¢¼E˜PB!$ÂF£p˜mhD£D"ûc1þâ½zù‰iÚ{÷övuyæ™Þ±±R2|ÛÛ¶îÚµ±££mI ÁR犨\Q]íÝBAª½HÛç#9ކë½Y–"ÂãÁ0 Ç0§ZuÀÎ ËZ¹¬ ‚Zwõz ×{Âó4,Ã-˜ë9Ž…üµkhÚ{¡ßÄÒF×­lV¨œIeÐÀåóbmsõz‰p˜ÅØD‚ç8†e)šöù|IzªUǶM3Ëe¹\©¢R*)ušª¹(ìaýÖä¥Ó•ûî{ì§?}©³sãç?ÿg+W6\ÈWGœ? Ÿs]®"ÁuƒÖ¹¼ÁÚÒinÏ8-Ý{ïϺºŽÜvÛŸúÔ-ÉdÃ0IÒAŽY,ÊÅ¢”ËIÅ",Ë…‚”ÏKÅ¢\kÉ„.^›…= ƒ%×nƒ´ M&SééíéééëM§~Û¶ŸoÁÇŽã€y§¿? ۓɆÅãÜÖ­-[¶¬L¥’©TrÍšø™¦<®otÆF>c*C[[|Žš-Ó´³éÞÞôÀ@¦·wbh(oYU‚ð47‡×¯oL¥ë×7®[—X»©ê—?¶]=rdRR¿¹¬ÄbÜ•W®Y–’ú_’a¼ ã£(’ei‚ÀƒA?Ax8ŽòzÉ¥Ó5Í¥/èAr {ޣםotô©T²µ5z£ó…iÚ/¼p|ß¾þýûû«VM›VîØ‘ºöÚÔöí­óÒS*%Ü4;(€{..ƒº ›Ô ú]/xãq. (Êëõ’’¤ÁÜ &Vî2(}A­{]ž§ƒÁÉ@»i `»ž49ƒÌb}d¶]…\L×Ó ïOMñä´³ÛãÁc1îLªbXX ›ã8ÃÃÅ:óšÛ X–jk‹×:èS©Äâj×ÎD¥¢¸]þ‹ LX`è˜J%ÚÛ“ð¬[—XúÙ‡PF®M†¨]Îç%×´è&C„B¯éeð3÷²°iÚ éƒ*ø¸A-—X-l§uFã@€šª{\íi(4y 2ºn麩(DÖþ/¥’âÖÛª©©!d¦².x˜ÏÂò|ÙBë°íêË/ŸrcAý~ßÕW¯ëìܸkצxœ[ˆW\8ÜŽÐ×—îïO†‡‹ŽãÔõ‚T*9£ õ"š®(NZæ§óààVEQÅIû¼+£Ÿ®öû}Çð< ©¯¾:²bEðÊ+×’$áñà8îX–3ÕŒuI2ŠE)Ÿ—j¥¢†Ñ´b†£Q*$±˜›êÇF£l4Ê^à aX/¾xâÉ'üêW¯äóêßñŽË–}B6áUÕÔuKU ð4̈́ᱻÑPàœ…`]Ó´áV–uÛ®J’®(F>/(ŠiŽc¯û–¥H’ˆ†b¯ÏGò<ªif0èߺµyÛ¶æ­[[¶mknl -öf΀ã8Ï=7ðÃþá‰'“¤çÖ[/¿ýö«¶li^ìíº0 «T:}¢vn¿›iåÙõ»YVÖv=AÐ&&Êg•úCÇÆ·~}£;t»ùBÏ#³ÐO(Y¨!å,À Šäýý™¾¾ ]·¼^¢µ5¶eËJˆÚ¶­%ã0 {üñCùÈÞxã%ßüæû—A]ZTU5 aQ– U5r9al¬œÏ‹™Œ˜Ï‹‚ •Ë2¤¹¸Çp‡xæé°,y-<ÏÀ•eižgHÿõ¯{ªUçöÛÿ„ã( ÃlÛq,óªjêº Eøî&ŠZÝóƒ\¾¦°àÝ„Ÿç™@Àç8Œ +5Ÿ³Y¡Póy1› ±PÝÿ…çéXŒ‡oÁŠ c âq~öú˜ã8O=uô+_ézå•¡íÛ[ÿæoÞÜÙ¹ñ|?•7Õªsøð(Ôü!Ñ™¢ÈŽŽ¶ŽŽÖŽŽ¶mÛZæÅçªÜ ØíÌ®<÷sUçÃèhéÎ;:u*÷Õ¯þù®]›úå³P„ü‡? æó’ßïÛ¸± šÜW¬nhÌýÙ~øÃ?|ö³¿Zµ*úµ¯ýùúõg»1¿ÿýàßýÝOdYÿ?ÿçÿ{ë[·œíŸ_DÜwßc<ðì/~q÷yævd2ÂW¿úÔøûd2øñßtÛmW̱ZbÖý÷?þ­o=}óÍ›¿ô¥w_ø@ @ @ @ @ @ ˆ%Ó#æ W€òøã‡ŽφÃo¼¤³sã 7\r.ZCÌ÷õÅ[•Š’ÍŠîž¢ÈPÈ_g’r¯ ol ò<3ã«<úèÁ¿þëŒYÓÌ\N-OL”³Y!— I’tIÒÊeU–5¸ˆ×0lÓ´jõßµx<¸Çãñz ×Ç0>¿ß W§‡Ãl$ˆFÙÆÆàÊ•á`Ðô.Ô;ˆ83‚ >ñÄáÇ{õùçÅØ²¥¹³sÃ-·lkoO.ö¦;ºnË8—Áh<%5>}·T’k//ç8”=Gùý”ßOù|„×Kz½ŽãŽãT«U]7eÙE Càš~õ8ø\¦ëìÁ1Äó4Ç1Á _-ƒëüçC­ú­\V²Y!>-Mƒ÷Áuö·xœç8$$I.Ú”Qq6…=Iz ‰Bkµ,׬<}w^L"Ï=×ÿ©Oýll¬|×]7Ü}÷΋Ȱ‰˜…Z—7HB‡† 'NdAèõ+V„ZZ@ç\µ*ÒÔzæ™Þýè…¦¦Ð}÷ýÙ5פÎö5Ít ›uÂMèAW2ˆM `2Õ}˜º»Ñ(·ly‹N­§þ•W† ÉUÞ€§þÒKWy½Äù¿ª`ìêïO÷õ¥ûú&AóùH¼Ãkµ·'Ïÿ²ü…õ££%P½€oô®¶~íÚÄëêMÓÌô÷gz{'¦TõÛ®z©jÕ)N èÓµ©'E¶·7N è £¿HûHOÏÈþýýûöõ¿òÊ,ëÍÍáë®kß±#uõÕëÂá³° ?µÅ9jµkUÔ®Z1çuÝ:³U­³7ærbÀ®v:£›Õ]³s9ŽS(ÈÅ¢T(ȹœzâ\NÌåDÒår¢,Oš»=œ Þ¢ÑÚeŽççêD;g\ucmp‡ëµÆFwá"í.™LTõîè,†%|*•¬ýS©äÅeí¬M†€Ú…»ìê81 E²ßHŠòz½(¯™fU×M(2 ‚ê¶XÇñºø¨W¸öy7¯¡!€ã¸Ÿ6ݤ_[áy:™ Mè/qêÐPaÿþþ®®#{÷öÚvuÓ¦•:;7^¼aE‚ :•*ô÷O ëOœÈZV꾹̛ðdY‡2¯,뒤˲^©¨²¬Ë²îÖA!êÊèÏd™ç8Ê- ƒ§k¿GS‰a¸mÛ†aC0O¥¢ÖÖ«‡‡ †aÕžþeY*å"ˆö‡ÃhtR:»ôh”[ô7pàüãž=¯îÙóÇlVC}gçÆE‘V뺥i†eU¡Zñ´²lX– ùjÕ:?ü üò0øt kDQ³í* P%irÙ4«Š¢»;À3‚xŸ€t%¿Ÿ‚È%ˆ®(ÆÈHi|¼T©¨,K¥RÉ­[›S©d8Àq<d0 ›ºõ“¤Mg<­ ª†{æBµrY‘$MuQœ N$­\Và·’¤ ‚V @^/Ç—fYzêìf^X?û›pÇßÃ0ì{ß»cŽŸÚ2FU£G'}oï„aXÁ óæ¦M›š¶nmÙºµyõêèboæl”JòüÂÿý¿ÝÇg7lXñ\óŽw\:wßîr¢¡4Í‚³<µs„3¯4¦GÜ`-˜,д—¢ÈºDÝÊYÆ00f«}éºrútã7æ~®ÊÝ5­Z™¯V±ÿG>òŸ±÷àƒw´µ-ç£ÀÅH&Séî> žúÇG«UgÕªÈöí­mÛ··¦R‰3õßJEù§úÕý×÷½ïªÿõ¿Þq¶LU5>ó™_þèG/ìܹáK_zO4ÊÎdzDyòÉÃwÜñ½ú§?½óÎkçå óyé;ßÙûÝï>‹q÷ÜÓùÞ÷¾iŽßUØ·¯ïž{~L’Ä7¿ù¾íÛ[çec@ @ @ @ @ @\\ 1=bA*tuÙ³çàË/Ÿòz‰ŽŽ¶ÎÎo{Û–ÆÆÐboâõ©3×O¿`u.æúÌ¿øxoï}g%×3M[ÔRIN§+ét%“ ±PáÊvIÒ$IWUCÓLÓ´MÓ¶mÃfÞ‰á8N¸ÏGú|$xß@`*"°…ÃD"ó,K±,—òÎÃ;øÆãĉÜoÛóä“G^yeÈãÁ¯¿~}gçÆë®kon/ö¦] Çq%õÅ¢  RI.•”RI.•äbQ)å:—w @ý*aa!òûý^ŸÏëó$Iz<˜ã8šf¥HT×bk SÔmŒÏGNi뎣šãhhápE:ËR°$/ͲÔR!æ]·ÊeùÜÌõ®jãhðiŠ¢^.+‚ V*ÐDU÷.¬[רø|$Øêg”׃=Á] 2gR+š¦ýÀ{¿øÅÇW¬høüço½þúõ ûÞ!ð#@+u- ##…Rir¿Z§H€æÚÖ?ÿx$˪‹2$”€¯sjoÿš„’Zk˜ßïÅ[CƒŒoà=Ý[8U,Ê^/qÉ%+¶ooUýºu‰9z·ÁlOÕߟ«/(¼Ál¸eKs[[l^¬÷¯‹iÚããeWKäJ@FFŠ £™.ii‰455Ì""1 kp0;8˜Ì dŽÏ?ž=\<Î¥RÉ5kâ©TbíÚĺu‰d2xþMÄ…̤û÷÷?ÿü@±(s½m[˵צ.vI}__ú½ïý6Ï3ßÿþ—¸_¯ðžxâðOúÒþýý–eßpÃ%·Ü²µ³sc(´DEcçÃâŠéçE1LÓEݲlAP-«*Ë:(GUÕ¾mÛ•ŠjÛUÚƒï^ÓLEÑM³ ƒaAÐ,Ë®“&×^QšöÒ4 Õ Ó´Ó4ž\–jµŠã8ÏÓ¡?çW¬%|<\±"HÓÞ@€‚ßb;ž§=D¥è-;'J%ù¹ç`—54Tý°³Ú±#µjUd±·îŒœI«]©¨cc%÷ã/䌡‰DpÅŠÐôOÇÕäÕ©'§¯)¤º”GðK²,í÷{)ÊK’ØáÛvÕ0lM3dÙ$­RQ]çËRñ8zâXŒ‹Å8¸Æb|$2飿ÀG E13u~4P7zÜñ®> ÀOA¦¸æÁW ÚhpÝÒ´»0ó§išöÞ½½]]Gž~úØøx¹­-ö–·léìÜpùå« Âã8N6%qR“ IDAT+œ¿ízzXlUrºvåB4?Çq6oþôÝwïüð‡¯Ÿ÷'_úd2BOÏT´zzF2ÁãÁ×®M¸!Žó¬xaØ¿¿ÿ‡?üÓOöx<ög—ß~ûU‹’6±@ÀD–uØ«C`‰$鲬¹™%’¤»ÇxP”úh‡Z-5ÇÑuZjŽcà|ŸûÛPˆ´Ù7v u³¹çÝ#Nm÷wWÎ¥ã†uÍ5÷ÝpÃ%_øÂ»Îáí]‚L¨ 2™Š{îà¢ÐÏAÐz{Ç!C¨§gäèÑqYÖqóùÈ+¯\sÅ«·liN¥’--á³r‘[VµP8Õàšå+•I¡|]ö›kœŸÅ,O–¥Ïd–w\p¼sóü~¯®›ŠbišQ÷ZuhjÃêç2†‘$Áó4Ey½^ÂãÁ ÃÒuË0lYÖܹ¹ßxkkdåÊpSS´“+Bð%QÔÆÇËu§tál/táÚyÛU¡cÖEè-ÊñÀ“_ÿúïžzêèúõý××ßzëå(ã9Ÿ—þð‡A0€=:fÛκu‰ŽŽV€_øšØ™ÎUAþv†sUÍÍá¹WÇùæ7Ÿþ×ýÍ[ߺåßþí=ûütÙ#Ëú‘#cœU}¥¢ð<½ukKGǤ§ö$ժ󓟼ð/ÿòk¯—üâßýæ7_r¶/tàÀÉO}êgƒƒ™O~ò–;ï¼öâ={5{ç;¿öŽw\úÅ/¾{~Ÿyt´ôÕ¯výä'/¶µÅþán¾å–­s9òæóÒÇ>öã}ûúî¹§óïþî¦åýæ#@ @ @ @ @ ˜Ó#–BAzúécO=uôé§É²žJ%;;7vvnؾ½õ¬®;E,)æÅ\×»66†À˜vθžî|^,¤RIÎf%°Ç–ËŠ,ëà‘QC×MÓ¬šæ !×áñà4MR”/ (ÊË0Þ`…‘H.éÇù††@08yq2M“Ñ(÷F»nÖqœNvuíê:Òߟæ8ú¦›6uvnܱ#µ,ÕŠóEÝeê`y˜îäª5ƒc5—鮇`aYŠ¢¼A(Š.It IÒaA5ð_H’^©(à¹0ŒúŽ—â»æzÐXL™ë)–[ƒ ˆìágèÓy]s}ÝNÌõSþz¦v‡_+Mž£Z¬ u]›I{ävÓ´ùËWݾ½õþá-©T<ãѳ˛±±Ò§>õ³®®#7ÞxÉ]w½Ù¶m#d2•LF˜®ó†ç‚j+AÍç'G  °/¥RI)åRIåRI®ý¿ßçÚêkåõîÜ]Nþ¸y§ÖSàÀÉrY ¨ V€‡«ÖS¯ëÖ«¯»rœ¾¾´ ¨áY³&loO¦R‰Dbiù٠Ú˜¨ÔúŒ`ì=»dåʆÇ¥ŽãŒ•?­ªÌÂþ–ãèµkã©TríÚøºu‰µkÍÍá%®0Fœ- ©ïî>ñûߎ—Y–ºôÒU×^›Ú¾½õÒKW]tw©$ßyçC‡~ík·ßtÓ¦ÅÞœÙAäž=Ÿ|òˆ(j×\³î¶Û®Ø¹sCCC`±7mYNbúyG×-M3Å0 [’4Û®V*ª¢™tºœN cc¥lV,e]71 óz Žcü~/ÇÑŽƒ1Œ×²ÇàoUÕÐu†Ð¯ûÒ E¥(‚a|$IAà,Kc³xŽ£=< H’`/E‘ ?S*AxÀƒ6Uçú|„œÍE}8ý­èî>±o_ÿþýý‡’$ñ¦7µ~ãÆ¦ePcy P§~*n vV“ý`™š[ñu3¬Ú§5 œ¹œX(HÙ¬81QN§Ë¹œyxu:K‚ðÀ› –Þºäy&!²«K¦k¼Ép—á87Ùnþ}a‚ :•sëýý™¡¡ØôhÚ ŽéÚ¡ÎŒ*ÿ78®9$ÝýýiwNäõ+V„Ü70•J¦RÉ3 Ï]· 4*N ç†9>ÄÔAv]¹ ÁuÊôxEžgB!?ämL%ÕM‹ÂÄß½ ùÝp¯ÚÂ…ÛÑÆÆJccå\N¨Í]ÀqÜãÁ«UÇíq8އBL4Ê56››#É$_[¯…–[„Xµê><ºÿ“Oyé¥SEnßÞÚÙ¹ñ­oݲbÅòI®Tظ]&MÇ$“|SSCcc ›Ç€½TQ EÑÅ(—ES°.Šº(žn?.àç8Šeé@Àç÷S¡ßï÷Á]Ž£9Ž &ï‚nææà‚YÕ=¥âÖÄ^{÷5S¯—€`]8F@¬înCCÀ盡Å~ï{û¿ò•®W_ýì½ç3=†É²^U5  žwX€q Äù¸eÛŽ(jµâªä!bM’4ÛvܤU5Å´,{.£ Ÿd6e<jÁMEþ¸¿¢i¯Çãá8 ›ùý>Ÿ³üü½£3cšv±(AMµ\VŸ~ॗN;–Öu3çâq.á¼^b–¨ Ã<<ãàßœ^nu¼u+ú_›#}}énøÂoûñ­[—ÄüL8Ž3<\P0Þ†#E ñ$t pÚ,z8šp{­³B’ôry26»TRJ%¥\–K%¥\VÊe¥X”Δ¥=½RÝЇýá0‰æ7lõ»ß}ö _øÍóÏß»d?ú3ñºú ¶Q¾Ñ¼ÉTžzêØ}÷í1Íj4.V«N àkn76†b1.å‚Aƶ«²lˆ¢ª(†ªš‚ *Š®(¦¢è‚ ©ªq¦£|0èg/Ãø ˜a¼~?Åó Ãxý~„²Ãr0È0Œ ÇqÇÊex!cj(è UèÝnh„$镊:ãøÐ ‰‡®êæ ¹ÑA?¬™q&+Ëúí·?pìØÄ'>ñ]7ÏÓi!ŸËeµZœÅÃW«Ü/÷Á¸…ç™ÆÆ`ssx‰xççȱcãßúÖ3¿øÅ+ÍÍá»îºñÝïîxCÍñÇ9thLôÝÝ'2Áç#·nmîèhëèhݶ­%[ŠÇôé窆† §NåAÃ0¬®ò;½D"8]¬/Ú=÷üèé§}úÓoÿàw / ^\Øvup0ÛÓ3žú AàmmñÕ«#‡åóâÝwïüèGß|¶;ŸL¦ò¹Ï=öóŸ¿|à ëÿ÷ÿþÓ5kâ ´ýK„S§ò·ÜòïW\Ñúàƒ¹@ðÌ¿øøc½º~}òcÛµ{÷¶×ýÇq|pÿ?ÿó£­_ÿúíKít9@ @ @ @ @ @ ˆ‰éM38ùä“G{ìÕL¦ÒÔÔpà ë;;7^w]ûŒâ ÄEaX<Òýÿøß<ò‘E7×Ïø‘‹E%.¥Ó˜’ ¹\–‹EeJä­ÈÞ0,ðfßYz<8I^/AQ^š&Ý ¡AOÓÐáQCC€a¼ ãåyÆï§ÆË²Ô9èÛðž}¶oÏžƒ{÷öæóRccè­oݲ{÷ÖË.[íê§ç¶ê„Ý®ÆÎuÊärbí•ðuæn·Õšeƒ<Ϙ¦=¥°×$IE­Ö\/I:hÅÀ¬Ëp;}S§Ìõ”{Í?ÃøxD>¿ßÇópÍÿd³÷û}®`™©¾Þ8¸ís.ñ$uŽÅYÌõµ¤îîvúJh¥uβ8ìÀ¥8%³›\¨š :𡈅‹Ó´¿úÕ®o}ë™H„ýÜçníìÜx¦‡™š¨+J+YV›ÊTp-  þli‰47‡4Õ`.ñ$étEÔÚ¿ª,ÕÆ“¸=+áÐ<õÝÝ'»»O><ªª¦ÏG°,]­b‚ T«N8ظ±)•J‚Œ¾­-v‘OtÝJ§§K@òÐr\ ˆëþÈŒÍ[´ãdz™ÁÁIUý©SyÓ´IÒÓÜY³&¶fM¼µ5ÖÖkk‹-'s圡¡Bw÷‰N>óLïØX) .»ìâ“Ô«ªqÏ=?~üñCŸþôÛï¼óÚ¥f±±¬ê3ÏÛ³ç`W×QAP¯¸bõîÝÛÞö¶-oˆ~„Äô³fÉ)wºvˆ‰)ííI¢¤R‰ööäÜGª¦i+ŠRWÇqà  šã8’¤[–­ª¦aX`±7 [QŒjµ*Ššã`SV«UG–u˪*Šnš¶¦Yšfš¦U+:Ÿ’ô4†a€Ïë%<žI—=Ãx}>Çñ`†1O6+Â|6åV¯Ž¤R‰¦¦†p˜õxpðàcƲ4IzbRë÷S^/áñàP&“ì¹|KƒéZírY+—²Y1›ÜɾÇã!II昦 ®ClÊCr‘H ac1Â"6e#6fÃá@í^‚\ix¥¢‚æÎª`ì{pwºOò ¦¦Z`´¯»¥C!¿kÒäyÚÕQ¹¿vã:èY–jk‹×ÙÏ4aDÌwNT»·Uw­3.•J¶·'W® ‡B T„dY«õ0Ê2غ'ïBȵ¯º ÒÅç#!Ff.<Ï„BÌ”q¾~ýYMÆÇÉf…:}M¢^ÅÕ.“¤'‘à9Ž (¯—¨V«Õª}AÐ É}N–¥’É`4ÊÅã|<·|4Ê66#.c—Úã<Éç¥gž9öÔSGŸyæ˜$M¦_{mꪫÖ.Á¾ǵrD¥UÕTCUYžô‡ (æ h·ðàº9u^/øÆ 1±רØ ÒL†pøý>¨ƒþ@€‚Ïò„¶]-'å¿Å¢\(H…Âdj]±( 2Ü»úÔ6n(]$ÂE"nF‰°SwÙº}¸$®€U*ª{ÂŽÚ°¬ë–¦™/¿|êþûè¡;juä‚púOdY·¬Ó¢ª`ŠŸ<â»ÊxÛ®BÙÍqNbæÜm˜ÑÖúºx½„ßOaƲIzÜa(Ñ1 ¯PA>5º˜ ƒÌøxùÕW‡»»OŽ—£Qîê«×^}õ:hØà‹Ç¦ÌòKé'àC鼿¡!‰°®zþLI' „(jW]õ¹?ÿó«>ùÉ·]°=[fлó ÃÜÒërЫª¡ë–ÛSAÕu"Ò5ÍR]– ]7EQSUS×MèDºn ‚ªi¦ªš¨7ËK„ÒB!,Æ­X (†ñÁÉ;8¹ M:èY–æ8ša¼Ìõ0U!,(ŠQ©¨²¬¹Ë°îòôù †apæÚ ÂLÖ]ýî2lèÏöý„˜¢ºPðRI~öÙ¾RI…ü’¤»¹ò°«I$‚‘HÀë%Æç8˜aX–e‹J¥"g³¢{n´.A<™äÝSó˜I6ïœ:•ÿæ7Ÿ~ä‘îD‚ÿЇ®¿ýö«–Mß™D3vwŸèî>yðà°(j¡ûöÖŽŽÖíÛ[7o^y$K„JE*@Ãvw•ƒƒ˜MÔŠõz‰ÿø}šf>ðÀ®¼rÍbo;â|ÉfŽ{}ýëOf 0‘à;:Ú¶ooݲeå\Î4ɲþïÿÞõàƒûV¯Žþó?ßzõÕk/Ì–/"’¤ßzë× Ã~ôÑ¿]èñü‹/žø—ùuw÷‰·½më§?½»¥¥>(b:¯¾:r×] ‚úå/¿wçÎ ºy@ @ @ @ @ @ –HL¸ÐT«Îáã]]GººŽ:4JÓÞk®Y×Ù¹q×®Mñ8·Ø[‡˜7}ôà_ÿõÆÇ¿<ãoÏJj¼(æúé¸*]7‹E9›³ÙJ>/—JR¡ ¤.D’t0hš9÷,Ax|>$)à²ç8†ç©PÈ j¤Þ¾š‹±½`Ϲ0.¶\N|â‰Ã]]Gž{n@ÓÌÍ›Wvvn¸å–mííÉ…~iÄ,H’^*É…‚T*~B†…)óÑäšZíH(àž‡O(\,Ìx¥h¹^—$mÊ\¯K’¦ªf¥¢¨ª©(º»FUrYUUý–¾ç8ìN `xíA=ø8nRv ‚×Þë÷S+s=üÌŵ]­:à©Ï儇þý/~ñJCCছ6E"쌂û­š,Kt àcY:d\g} @‡BŒû+–=-µhPd".ûöõÝ{ïÏGFŠwßýæ~ôÍçf©K‚ëG€fyüxV–uìÌFï éÄt§v¯îîÒa¯>µo—K%¥ÖêBQd(Íü¸ËSʡɻÀ2l·†aõöNôõ¥{zF{zFúû3•Š‚ãx"Á³,­iF6+†Åót{{ã–-Í ¦O¥ËL4Y©(é´PÆ04T8y2’šZimCKK¸ö}°¬êÈHáøñÜñãÙ'r'Nds™LÃ0¿ß×Ú[³&ªú5kâmm±Ph‰ÚýsÄ•Ô?ûlßÈHÑï÷]~ùêŽŽÖŽŽ¶7½©m‰KŸÇùÚ×~wÿý¿½ùæÍ_úÒ{.ÌÄpvªUçùçþû¿üîwÇJ%yûöÖÝ»·½å-››š{Ó.(HLï"ŠÚ±cãýýØ-÷õ¥OÊÃäȵ׺¥%²bEh)'CXVU–5ÇÁ*•I‹½ã8®¸V5Û®ZVÆT »K>†a¹œ84”O§+ð(Ê #ùɆa‚ U«ÎÜ=øxfiš„Á!Ï38Žû|$Ãx§ÀÀ‘ÎÝâ8îª\_­ëÃÅ&Õ· àV+9Žif­V2š|žYŠ3¦i»ÓspG ÒÔüý5sy×êëõà¼c˜IÅ¿mW-ËVCuA8=¤io"ÁÇã|,Æ%AjG£\"ÁÇãÜùg ‚&ŠjÍ-ØÉµrY¾^µé±a ÖwDzl˜2ŒÌˉ·bECKK¸­-ÖØr%€(Äî|€èAHt‹6àšM”\NÊf…bQMQ Ó´Ï$‹ (ÈÝœÒ/2,KMÉ»iŽƒ‰3ÐGAÁëú»_E1ÒéJ.'BÅ8“joËåÓa áp ç¡ýÃ-Háî,›ašv¡ MLTòùI/d¡ NLTòy)“©ärb­à>áâq.‘à#¶±1²5=n¶WYâ€ñÉ'<þø¡±±R8¸úêu;wn¸é¦MóbFM×ME1dY‡HWlj–ª¢¨†%Iº¢†aÕjLuÝRC–5H•«vËÁ þPˆÉ„e(ÚLÕÏigo à©×ë³,+“OžÌ<™/8‘ÈBÕ4¬ZI&ƒ ïlnŽÀî½Z­Ž•Ý<†RI®T4EÑdÙE(~ŠbjÚk[^/AÓ^š&)ÊK’$|>’¢HÇ ‚$IÇj@ᨠ˲¬›fuꓚ‚ ` 9õ%™ã" ï§¶;×f±¸ëk{4Uç·ƒèºéD¹œgs`Vf2B¡ ÕŽëÀÅ¥€·¼eó%—¬H$øh”… H4ʾîxIÓÌLFøì½ytW·k¯ê®^$µZ²$/ò";¶ã8±­›q^’ 0 É~0¬ 3ÌaÈ0 0y™!9,!ìBÌbewV'Ž·Ø²eY–lK­îVwí{ýþøJ×åÖbyÓâÜçèØÕÕ­îêî{oÝEõ|p<3^(ãEXøpðªktQ`†ÌAõõ ýàOýêW/Ȳð÷ùG>råLhΠŢþÜsû;:º·níÞ³çˆç--õ`¢om]8þÉ Ñ³šŠ¥ØžžÂÞ½ÇU¸7•Šáætþ|XM.YR7{‡Ø¯CTÕú៺÷Þ-’ÄýË¿¼ëío_õÚkG¡À¿ðÂ|^‹Åø+[[¶¶6¯]» ª*ýõ ÿô§Wÿã?þÜß_þô§7þÃ?\9עΠ–åþÝßý`ÿþM›þ¿)küµ;ïÜtðààÍ7_ñéOo|ex,Æó<;¢W`S©˜ °’Ä%¼Jä}tçæÍ»_~¹‡¦©+¯\¶qãŠ+¯\ÖÔôúò*Îv,˱kÅ¢…›ï††ôBA/µ¨ !”Hˆé4˜ëÁh ÚúãŽcÚŸôÚEÀ÷M³@8ešN¹lš¦cš.(ÒLÓ1 Œá`§ÒõáðÈ1]p‚À‚M9ØJ» pà86™”*Ì©”$çP„D˜€“šëUìdœØ\ŸÉ$@‰9t(Ç<ùäÞ¶¶Õ_ÿú{jkÇŽ½Áq#ãØj\ì‚ÁÚ‹bQw]ôSÁi#Û'¸-F»0ªªâ¯‡ë«Ï"ÇŽ•¾ô¥ß··ï~ó›—Ýyçõ dÎúK€% !v%:”W0¦(aáÂì4æ”ËF¡€mõF©d€ŸoÃFÔÞˆâ8¦ª*–NÇ+üõ£]öØÍ:T·o?ÜÙÙê®îîA×õãqaùò0v-]ZývÃlÀç6’ Ð4¥ë¶®;岑ÏkÊ¡Cƒ¹œŠÝÓƒÓ~k¾äóZ>¯ö÷+ù¼ ú\NÉåÔÁAu` ŒË”ŸÚÚ$d-À¿ éLF®¯OÕÖ&Îݘ¦,°KaŽúèÑžÏ#ÌZ€±4:}ÑÐ>“!U„ª:ÆŠFºÑ@(Èèýà|ëú†aª;wö½újïþýýaˆ«š›3õõ)IâÃ0´,×÷Çñ=Ï÷<_UmßLÓñ<ßóÛöƒ pßq\ßÇóý`¼¨„Ë24M1 Í0MÓ…(Š‚=4M#„Â0 ‚¦)ø¡(*BÏó( î§( ¹nPáj‡CšèÓÓ¡T2^{íXggÿk¯Ý»·ÿµ×ŽªªEQÔ¼yÕ+V4._ÞÿÎ[=ÝGzÐuûxù—¿|aÇŽÞLF~ï{/½á†µK—Ö{^P(¨ãMŸ’_ÂÇ›„Ÿ`ÆþœVŸ0 s9e´nöàEÑíîZDWCf‘n~’ärêßøõüÇ·}üãožÊ×5MçðáâxzŠ¢²ÙÄô èáÔƒ«Ô|®Á 8˜¡â®ñª µ·ãzëK´jDïÂi °!D Áˆ[ÓlÇñTÕ CŽãéºc¶ãøŠ2|„Šbvuå é­M°,£i¶ªšx#ËÃ0EAà8žm»aˆxž­®ŽÕ×W54¤æÍ«Y²¤.•’ 1àï" Ôü\-Ë-õÁA5Ÿ×`©5Å¢^,jù¼–ÏkÒù´åššx&“¨­MÔÔijÙd&“¨©‘³YØ#ssûí¿ÿõ¯_úùÏoÙ°aéÙ=`ÛöúûËxÕ5ê¯ïëÂÝu<YðJ¹þ 2§A>¯ýìgÏþèGO‡!úЇ.ÿÄ'Þ2ÓpÃ0ììغµR`{z Ǭ^=ÄÜ«VÍ­«KN÷1N¾üû¿ÿùž{žøð‡¯¸é¦+Ž+AiÄ­1¬4¡Që°°ÑÔTUñ—„éÅ0œûîÛrÏ=OAð‘\ù±]9:VšÀS¿kW_„óç×@*Ú5 öïï¿ë®Íû÷üŸÿ³æöÛß1gÎë"d˶½~ð‡ûöõÿá·-\X;•/†áŸþôê¿ýÛŸÕ›nZÿéOo<élÀ/ùÂW¿úЊ÷ÜóAòÇ@ @ @ @ @ @ œ÷1=aF`ÎsÏíß´i{{ûžrÙ˜?¿æª«V\}õŠ7¼aÑycz½q†bú“R*põo.§äój>¯õ÷— mpPÍåÔ|^ņ š¦@¿•É$jk‡7²ÙDM\]-×Õ%kjâ3ÇL].ªj«ª¥ª¦ªÚªjª*VÛÛºn)жM³uݱ,g´À !IJ ËÒ`ö¡( \h¾¸n€Ýdp‹ ²,KQ”aØCC†e¹<Ï45U/YR¿dIm*K&%Aà$‰K$DAàâq>K$„)¸ð›pNq]¿X<.¬/•ŒŠ›CCF©¤ Q77ÃÐ#.ãasý‰"û8øëÓ騙T4ìµÇ:6ËòÀÑfÛ®aÀ†:6Ûv5Í6 Û²\èí-‚<D Øß1¦Ô{Ú‰zFë¢{òy-ªĹ £ýGxO]]ê\ z|?8p`X+ßÙÙßÙÙ?0 Ð4µxq8è[ZêW­jª«KMò +<õ¯¾Úë8^]]Kê/ºhÞëA­Ž…õ‘®>\€6vLa}ss->å)ŠyèP>ª`îêÊ‚ DZZêZZêçϯY¼¸.*^$Ì|°¤¾££»³³_¹ /lIýºuÍ3Í€68¨~êS¿Ú²¥ó£}Ó¿øŽ©tèwtÜ´éÕ¿üeç‘#C‹eßýî‹ßùÎÕçqÐÅ$9ïÅôa>\¬ˆë8rdÈó†¡-Êb‰3ÈègT¯àœâºþ‹/v=óLç–-»w¡iê oX´aCËúõ-Ë—7ž•>ù00PÆ}¤BAËçUE1s9õèÑ’¢X0K£ª¦ã³,-Ë¢$ñ©”ÆXŒ—$ž¦)ž<ú>‚O êàs]?:«£ªî‰yž¯ëÇïÒ´è]A4X»õÏ. CÇãEO1 æË2¾¸®ïº>že¢(~CŽc~2)F!¹q/$ŠB¡ãø®ëüÚu†¡á¦ãøžç9ŽoÛìÙ?†o‘eižgNAà`T%м °‚ÀŠ"+œ(ò¢ÈÂ#««ã‰DåqVJI? Ï lÛ5 ×q\˜©p϶=ÃpÀØhÛ®®;ŽãÚ¶o¶m»–åÁä†ãø±0šX Þ9|<ÏÄb|,&H'Ið¦8퓤á7.Ë‚(ò s Ñu †¹œ’Ë)½½ÅÞÞ"WIâ³ÙD&“€¹ÖÚÚÄœ9U±çºBÈq<˜É,•ÌbQÓuGQL˜ðŸ>.ÿ,KÇãêÈh—‡/‹ã„¨0<>0±¬± ›¶íâ® @øÓsÝ`´ì!äy~…6Ýóü ƒ SéA;ƒ¹®çº^„aˆ‚ Ã`d#¬x]P™ÃôìÈø!D…! ñ•@˜^*òQÆ|Àh™,‹ÖHžg%鄱EQ©Te Lºžô ±¢Mãù㱣ЪÀ6Mg® ª[·v¿øbWgç€(rÐ7[¸0 ±.¾zž¯(ÆH\Š5ÿšçYHiÅó!X×;ÞÎ37y^ð 6oÞýè£;ûú†æÌI_{íª¶¶‹Ö¬Yð:Wsöô.»ìëøÃmÓKvJèºÝÙ9°wïÑ}ûú÷îíß·ïØÀ€‚’eaÉ’º .hX±¢aùòÆ .h˜–€í3Ƕ=ð!œrn ¥{×®#/¾ØuàÀ`sæ¤êëÓ‚ÀhšÞºîŒ(’Hˆ°:#ËB2)ÁT¹, ±˜NKñ¸ó°gÁÔú”½ßrÙ€õ æWA:ý-œQM…0›óI7?yî¸ãÍ›w?ûìíçhöÆ0œ*h£úyóª³ÙdÅ´çÎo—ËÆˆÞ&+àÄ…“éæÇH7ÁDLñ\4Ô¤Â?nÞ¶]Çñ Ã1 Û¶‡Uò–媪å8¾®[0)— ÇñLÓÕ4Ëu}E㼫(–ãxQñú˜$“"DZ²,Äb<DZ8VZŸþ@OOþƒ¼ì oX,Ëb,ÆK—JÅ`íuô²—¢˜{÷ëìØ·¯ÇŽÞÝ»†Ã²tcc¬´´Ô·´Ô·´ÔÒ`­ßòy5š¢Ó#ƬÑ4MÕÖ&F§GÀòÐ)åRõ«ýä'[~ðƒ¿ýížöñŸ€…õÑ5¯h^Àù[Ø_ŸÍ&Ïä3ŸUµ~þóçî¾û ×õß÷¾K?ùÉ·L~ÅgºpoûöÃ[·vwttoß~xpPM&¥K/]ØÚÚ¼n]óÊ•MdMdpPýøÇþÊ+‡ÿã?n¼þúµc>Æq¼cÇʸ¹ „¿îà8¦¡![l܀ϛW}ŽŠ"a›Îž|â¿xâ‰×~ó›¯Y3ZŽÁuýŸýì¹oû/±ÿÙÏ^óþ÷_:ñ¸²³³ÿcûù±cåï|ç½×^»jÊŽ“@ @ @ @ @ @ ÂÔCÄô„™…ïÛ¶joßóè£;È¥Ó±õë[®ºjù5×\8K¯ÉÝr®Åô'¥Â\_(èJ¡ æ8ŸW£æ¯XŒÏf“௯­MÔÖ&jjâ™ lÈ55rMM|†_Öˆ…³p{Ô‰€¯u‡à‰(—Í¡!cLã@Ó” p<ÏrMÓT 0 ƒ °,Ïóüñ”gE%“¾Ð¦©DBAÇ1`ÎC– ° ²O$Dš¦R) d1 kæ8&ç£ZÂLLÍåñ¹œrìX¹ÂÞG¯Ø¯pœ£kÚMÓ±m¯\6Á¤–å*ŠiÛži:ŠR©¹Ü'þ¾?A`E‘—eã˜dR‚2‹ñ<Ï&“ÇÑñ¸…?‘8Ž–eüñ¸â$Ðò<#Iüd´¯g4ÍÀy$J¡ çrJ.§ Z.§ ªØ\â8fáÂÚyójª«ãµµ‰Lf¸‘ÏfÕÕruuü\‡jX– "ûrbE슛ðo©d†­i¶e¹¥’išÎ˜²E„P"!‚j0ꯇ=²,Æã<È>¢ƒ¶7•’fWéÚºµûË_þý¹Ûn{ë­·¾eF°(¡¿¿œË)X—RZ4Jê] sçVÓôìèT@“­ýh…}±¨G›ÄÉ(ìaÏdd"…‚¶gÏQÎìØÑ×Ý=èº~,ƯXÑîø¥K룆ô3Äuýƒ±§~ûöîëG=õ_Æ@dÁ¼Ó Êe$àð/üŒD3†ax^àyA¢á½!| 'û 3š»ÓHÓBÃ_*ø‘ýcÎ,ÞÏ0D{ŽÙ/ C4:Tƒ¦)ŽcX–©x*(g…|?€Q¡çµàû¾çêPñ¾føÕ)Šb:𦡤Råû>EQP‘Á¡?îgA9š¦xž…ìRžgY–Eá Ãð<ÃqŒ °ñ¸È0T,ÆÓ4%I<ÃЩ”‹ ½½…½{öî=zèP^Ø•+›.¹dþš5ó«ªâhxìì·{ÉäD!®ëçrj>¯¨ª­(¦ªZšfA`-øÄUÕT”ÊÔt:–NÇjkÙl"™Œ¥Rb2)%“R*%ì”á$ïÅuýþþrWWîÀ\ooñÀÜÞ½ý†a#„²ÙÄ¢EÙÅ‹ë/ÎÎ[½xq]mí¤FŽå²y&Í‘çùËa=/øøÇÞÚÚü7Ó:Þ¢ç‹Ñøþ !(c>ƒ®W>ƒ¢X¥V+¢{ÂáóÆ0ìèw7Þ¨ªnùÃ0´,϶=há}?o&íTaâ{a;‘iz¸‘‰TYpÓÃW°d_–†aPħŸHH0#”LJðét !DQ4ú4M³,óüóûŸþÀóÏ(•Œ•+›®¹fkDùío;¾ô¥ßíÛ÷8à ÚMHU„¹Ð˲pÁ «VÍ]º´~&WAQÙ†qÜ,oŽ®;ºn•˦®;.Ó׺î†S.ÈŠ¢i*Bžg³ÙdSS:•ŠD>‘’I1àf2)e‚¡L Žã éQõ8Ÿ'Œ¢~êŠÁBTQ=£ 3C‡òozÓ¿ó›7¾ï}—žáS-½ªZ®ëC ¶e¹ªj»îð² ¨Û=χÕCËr£ÙØ`x7MǶýŠ4‚(°8žLŠfy€Åx• ITɤ!ËÒEsåº>ϳ¦9ì²7 Çu}E1Ã0,•Ì àø! ?@U-Çñ4Íž`™ €ñ¬]&“ϳ ‰çyR½áPyž•eA’8žgÓé,€Â‚>~ØÄß—ï_øÂï~ÿû­ÿý߸îºÕ§òU30PÆ ìŽ} A˜LŠ Ô¶´ÔÁLþòå8¬&*,óx]LôcVêhÆ1©T¬¾>y¶Zïï~·ý[ßzä®»ÞãëÎÊž- ~¼@X?XŽFV¾ ráð×75Uùl¿®Û÷ßÿÒ=÷¹÷g?»åo\<½S*wßýÄ~ôô‚™;îxçÆ+&x°ãxÿú¯›î»oËõׯù÷¿‘$m@ @ @ @ @ p¾BÄô„™KOO¡½}w{ûî^8€ºøâùW_½âío_µpaítáäL»˜~2Àµµå²W3‚h®C.—Íþþ¾ÂèVñåÇx›Èjk“3Ü3;Ërûú†6oÞõøã¯mÛÖíºÁÂ…µË—7ÌŸ_#ìhÍ=ÜTG[8Žá8–ãhQä. ‡eO7|ñ-˜‚ t]/BÃp|?TUsb§\¨¶n0w'“"EQétŒ¢¨dRdY:yþñ=ϳñ¸Š%Qä8މÅŠB©”„" ¹¦ÂnŒŽBA«0˜À•ÿãÙA PUŸûL¹l¸n ëÃBE±<ÏWU˲\ðP€¥Âq<ÓttÝö¼ T2<Ï×u~¥\6=ÏŸØî„F ¿(²#Ã1žgb1ì²§A"–Hˆ#j¤a“ˆðŠ¢$‰†e™™c‡¯‹:~puug“d2‰êêx&#g³Éšš8ìœ.-Xtݱ,WÓ,M³! t'Ø_zðMÓÕ4[Ó,Ó„ˆ…±XPÄã¼(r²,&‚(r±˜Pá¯áH<.ˆ"'ËB"!Ò4NK Ã`µÇ¹#Ÿ×¾öµ?>ðÀ¶ Zî¼óúYÔýs]¿XÔ¢–hñººr ã8¦¡!UØ˜ÐØX5Úx8“q]hÈ(•†¦CCF©d€¤ oÃF©t‚—'™”ª«ãàL§cUU±T*æº>è`r9¥¯o¨PÐ(ŠZ²¤Œ] •™ŒÑþl½µ×^;ÚÑÑ ªzpÜD=õkÖ,¨®ŽOÍÁÌ\×?z´>š¨°¾··M ÖƒNÖK–Ô±,sôh TÎý¸j Hu¡3üî¼yÕ3<êuÎà úâ‹cKê/½tá4Šä€îîÁOúþíÛ{þïÿÝð¹Ï½í¬÷yººr=ôò¦M¯vvö×Õ¥n¸aí 7¬%ŽÈÑÌ^1½m{ûöÃzу`.ã/®›?¿¦¥¥ÇlÌ(¡äÓß_~ì±=[¶t¾ôRW.§VUů¸bÉúõ-ë×·ÌŸ_3•G½øÍzôf±¨‹:ôOLóxB!MSUUñªªXUU6ª«ãðƒ÷ÀÆìê¡*¾ôõ EÏìûöõ÷ôäAÏ õõ©ªªX,Ƈ!³a>¯F‡ðcN—a‘_CCz Œ`Šbº®_¶íªªíyþà öFPˆªªeÛŽ¦ ë#5Ív]OÓ×õÇso´1|òPÍ0!Ц¡CQÔ°¿Øó|ŠBE‡a•žÖ«PøÃ„@;Ø–$Žã†çF ºQ0WPñ ø^Œ$ñYÇ„a iॵuÝ鳪ššf+Љ¿z˜”K§c²,Ò4¢iÚ÷CÇñ4ÍÊç5Ð_ʲ8gNjΜԼy5óæÕÌ™“ºà‚†Š³s<.à™Ã‘ww¦A•`êDG¶¦Y· i6làDœ—€Ó ã!;AªªO!<Þu}ðÕË&Bh<3o4M%BH’8„Bš¦¢|?Ã\ö¶íÚ¶‹—ì†/˜|kjd˜¯¨«KUWÇçέ¢iðeÓçn§§§°eKg{ûî§ŸÞçyþÊ•Më×·lܸ|ݺæ³Õi‡ >]‹Ç›qܤ 7ãÑÌ Iâ¡¡Îd䪪áÖ»º:„552Ü{î\Àeè'À0q`Xâé––ú––úéJ§ûЇ~TUÿîwÿvê_zò@d#ÌeA#M´ªZºniš].bá edæJJ$ÄTJJ$DYM$„x\L$˜ ‹ÅY4ÍÞ¹³÷¥—nÛvˆ¢¨U«æ^zéÂuëšišÂ}Ï °úfç"Ç|º8Etó§Í­·þâµ×Ž>öØç'/nÖu»«+‡§Ùáœ{èPbN(Šª¯Of2‰TJŠÇÅTJJ§%Žc%‰ƒá€m»«xŠbzž¯ªöxU€fgQCû ‚À&"„Râ3ϳ¢ÈA×HYÇñ9Žq]Ÿ¦)Ï  Kiš.$Ç»®¯(älA <À²\Ëò&ŽÇ¢ËâpPU!"òQdYày6‘¶á'“,²ÇbÏ3ɤ$¬$q²,N¥A; Ãýׇô£g¾ùÍÿöoßp&OåyÁÀ@éå—oÛvhïÞþ#G†Ž-ÁŸãŽclÛ«ˆ[Ëd䩑Ο”ïÿ©¯}íwÞyýM7]15¯xV€ÄzÕõ×çr*tl8Ž©®Žãih`ó©æ8º®ÿÐC/ßu׿#G†Þõ®‹o»íª%KêÎÙ›;9ûöõoÝÚÝÑqŒB+W6­[×ÜÚÚÜÚÚŸEô÷—ò“gñ‹çmÛ{ßû.ýÔ§ÞzJ^ÓìûïñÇ?ÞÒÛ[¼æš•ŸûÜÛ–/oÀ÷ærꫯ†˜‡;zmÛ««KBÆÃªUM_<ÿ<ȵ,÷æ›ï{õÕÞßüæcç:Myò92ôÍoþù¶]qÅ’þçë&ÎxôÑ]ŸùÌý™Œüýïÿ}ôë#@ @ @ @ @ pÞ@Äô„Y@±¨?þøžÇÛó䓯išÝÒR¿q㊗¯]Û<“å¯sf…˜þ¤€S´á"[p (å|^‹^ÕŒUÚØV5sê·ç”ýû~ø•öö=»võ1 }å•Ë6n\qå•ËššªNú»ºnkš­ë¶¦Yå² â]wtÝ*•LpÄÀ¨d`a8£Ÿ ”Çñ¸W¿ƒÉ‚ãhžçešahšF,Ë„!¢iäºMSŽã*—Í eøº}×õ Ãu¸¿OúF@sÖo07a£w2)Ñ4W…ã˜xœñ7Bäøp?˜_ð3÷ýi>NEþ…¨‚Jz¾X–N§cUUqø·ª*VUK§‡•‚ét<–Àz•$>•’R))™”ÒéX2)UÜL&¥tZ‚ýçN‡­ëöîÝGvìèÏS¿n]óÙÕjÌ.@X Ø\øp¾ÍŠ‚ ,K:T8x0×Ý=xà@®«k°··gùÚÚDssmss¦¹¹vÁ‚LssfÁ‚Ì8m §A>¯½òJOGG÷–-»võQµbE#y6lh™Fa÷¦MÛ¿ò•B_ùJÛ 7¬=skê¡Cùø+øè³ÙD[ÛÅmm‘‰ ˜bú0 .VÄf=Zr]Ÿa覦*ÉBÃ56ÉY¦ÙO>ùÚ–-[¶töômm]¸aCËúõ-+W6Ýù^¥’Q*FoâAbE—U9 #âhX ¶-#„`r¶ûûKöôûûK}}Cýýå¾¾!˜¬‹Å„ÚZ¹¶6‘Í&««ãñ¸JIÇ€‹! ]4ì…wB0‚‚9‘ !!Ì€“÷T? „$ñz)Џž9މÅx¬o–e‘a({Â`Lƒ€Ù¾š6;CF Œšaje2Çã8ÞÐ^1SëÚ‘#CX–Fæ¢G~N˜¦8뱦é<ûìþööÝíí{Ê™Œ óÉo~ócŽX£s}“~x¢¯T:¡Èm8Î3ƒ¦4ôUU±hTóС<Û@£«+çûÇ1Í͵K—ÖÏ›7,¬Ÿ+âí·ÿ~ß¾þ)w{^P(¨ãeÜFРŭƤR1hÙÀþ óKQ%tT„NK8ËóôŽ|hHì±=úÓ«O=µ—¢¨K/]¸qãŠw¿û’LF>³äèì<¶yóîGÙµcG/MS­­ /»lQkks,&@eÇ L£‘Ì IÑÀ¹8iÃ0lÇñáWpó¨i6ö#OæØ yä8¦Öq›Æq LâŘÇ1žs†ébøÊ†³3L â€áÓûÐ.¿üßÞýî‹?ÿù·ŸÞ¯Ÿ6¾8Û±£·³s4ôGŽ y^Àóì²es¢q§=‰EêÑÚ©8ãÕ²±+ËÒ552T“Ñu*º¿B:?ù¯& ÃmÛ=øà¶?þq{¹l\vÙ¢¿ù›Öw¼ã¢IžòNÜæDýòП™@7J&¥úúÔxºù©7S¿Þ€âýê«}7Ýôãú§¶K.™“`ôñ‡ŠE‡”hšeY.îaRšà/› '=§R’ pG ‹•HH C±,EÓ4MÓзgYÖu=Žc‚ ¤iÊóü }?t]Ï÷Cèm–Ëf††a»n•ÎóM³'ÙùL&EŠ¢Ói šGXƒcYZ–Eèjb³¼(²ÐðBÇ2‘aަ©T*‹n°Ôr–¾“iãî»ÿ·ûßú§ë>ö±+Ç{ŒªZ/],ê…‚–Ïkøæà Z(h…‚­ã’ÄC.Ï3aˆ ÃV+ŸW=/`fÞ¼ª‹.š·bECKKýEÍËfSñ>ÇáW¿zá _øÝ¿xí§>uÕ4ÆÙŶ½þþ2WFýõØŽ"ƒ—‘ůa}ssíxôôßûÞã]]¹·¾uùg>sõêÕó¦æM¹®ÿÊ+=[·vC€ñÀ€"IüÚµ Z[›[[^|ñüó`ÙîÜaYî¾ð?>¸íË_~Ç­·¾ejrˆñB”=<ñ5ñBUSSÕTæsÌ.¶lé¼÷Þg|Ïœ9éø‡+ß÷¾KO©Ø÷õ Ýwß3¿þõ‹¶í½ç=ko¹eÃÌ™àñ82|ëÖî^8Ïkñ¸°|yCkëÂÖÖæYºkšÎ-·üäå—ßÿ?LYó5y¶o?üµ¯=ÜÑqðï¸è+_i›;·z¼G=ZúøÇ¾cGïw´Ýrˆ©ø\××õã–E1Ãéº=òÏu}ð±î ,i'}× CƒæThĆ¥-àpw¹`xaY.ì1¹`8hÁѰ‹ÆðÉ‹®f/¸Òè1£¡CCFE8Ô¾ ÏÈhóH:-e³É©¹@úœ‚ s©„‹ôp™wß0ì0DØIäû>à|ßÅT1Fªjù~hYΘ¾›ñÀu—mpü¡ÑBH†Õo¸xãò/Iœ °h¸¦°hDú†‹1Ä¡‘J„J¥$ø&Á&cÎ]wmþÁž\¶lÎ7¾qÚ5 NzØàƒƒÒ5º‘ÏåÐ8ƒyž­ª.c£ãIR©XccÕlôhšmY.´Òžç«ªeÛí]×/— h?GR,Ï Å aØ®ë—˦çù8îh%‰+5×õ³ÙÔ¢EYYaXÅ’JÅ ü€«šMZAˆx[$‰Fy(3³Ër±§D àM¨Ð%`gÇdT¡3Š ÷ïÀê.°x „æÏ¯ii©·;övéº m{©d(Љ7 &†¢Œa˜¹Ïˆ§>6⯗FüõàµS©aÁýiÐ4Í޳縧~ÿþ0<î©om]¸fÍ‚óþ\<ÀG-ØÑ$Žcª«ãuu)\¤qèîÎ:”ïîÎ:4xôh z\™Œ¼`AíÂ…™ 2 Ö.XY° v†dŸM³_y¥ç™g:±¤~Ñ¢lkkóúõ-ë×·L½4DQÌo}ë/?ýé³ëÖ5ã7,]ZOrøpáw¿Û >úLF~×».!>úI2Åôšf<˜‹ºb{zòpÉfK—ÎÐ×·´ÔϨT¹i'Â]»ú¶léܼy÷+¯ôø~xá…Më×·lØÐ²n]ó)OÃ0Ìå” ‰dt4‡µ’å²ýE†¡3yôØ-ÚÙ>Uæù ø¨ƒ¾³³:`,K76ž»P[›¬©‰y^à8æAW?Ÿ×Ç-t×õ‡†tèØ»®ošŽe¹0Iâye¹®¸®ïºVÆ»®†AœòÊEQ…hš¢(šãhš¦Y–æy†eš¦åyަ)YX–‰¹b¬î<DZɤó,Kg2 ¨È±˜ÀqôÈìáyž‰î™LÓ1M ›0¤‚¸Ç¡!âÁ@Я(–a8¶í†£i¶ã¸†áZ– ê‹Âq4Çq¢È±,Íó¬ °`ɧ(äû!4tžç;Žç8®ãøx:‹¢(žgE‘e˜á©3žg|?€Ï–eM³ðW¨(þÅIΉM ËÒaˆ‚ €W iZIâ•$!•c1^9˜4cÙa-2ËÒñ¸ˆb æÇ°¡á™14<@¡HŠÌž!„âñÊò0ë€ñc4N š10^À^T^?™LâT|¾äój±hlßÞóÒK·n=tèPž¦)hŠY–±moL0tþ±‰r¼¹ó¯7"¬{z ûöõïÙs$ãuuIhŠ—.­Ÿ?¿féÒ9gÝ‘zÏ=OüìgϽôÒ?MþW¢ó`ØŒOÖ“7bÉ»B{ ßïÞùiüöËecóæÝúÓ«O?½Ï÷ƒK.™ßÖ¶úºë.>wâÚ;zÛÛwÃ@#™¯¾ze[Ûê+®X2e‰ Aª*ÌôÚ¾À´žçP>Å ‚4÷pÆG#“Ì0×ó~a–Ë&BH×m’´ªÚhr' ($0ñ Ͳ, °Â0t2)QªÐ1†ý/ÿòÇüÇkZ[B &8î¡tŶæ² þvvìÛ×ßÝ=q>‹ƒƒ¾jñÂ…µÑ…¦b ‹kYÃu§\6ÆÛ?ž\Ns¸âD³&¨Pg˜Ù0|ðÁm>¸íСüâÅÙë¯_ûž÷¬™ÀeyR‚ {¤€ÓYÈ)fê›<”[|€¢‹#&qïDkI°†È÷‡…xž…HÆ•$6hšEÎ÷}„(ȈB9ŽGQH׊¢ ïjŽãL” Uñê#YÃÐ#'DAV¦`©—aXèÎ',QA„V:œ¸ÿIÀà9ûïñÞ{ŸÙ°aéš5ó+–w+ª9dlDÇþ8.ë¤y®ë<8-ùŽ}ÐC¥R±––ºU«æBc¾jÕÜ)kþøÇW>ùÉ_Þzë[¾üåwLÍ+N;†á9240P>v¬|ôhi` |äH ,ö¹œ a:“I46¦ëê’ U é9sR 醆ªºº$DG<þøž»îÚ¼}ûáuëš?ÿù·_qÅ’sq´Šb¾ôÒÁŽŽîŽŽƒ»w1 §±±ê²Ëµ¶.\·®yÑ¢ìéϼÞèí-ÞrËO.~ï{xë[/˜îÃAŽã;6z¡jþæù"aáÃ+VóæUŸ.rzø~°yóîýèé_ìZ²¤î£}Ó 7¬;¥5÷ööÝ÷ÞûÌsÏíol¬úÈGÞôÞ÷¶žFªÊÀ@¹££<õ»võA8~ͺuÍP[ZêfþT(hÿ÷÷vwçó›]xaÓtθlÙÒùÏÿü‡Ã‡‹7ß¼þ¶Û®oáÕó‚ï~wó]wm¾úê•ÿùŸï›9@ @ @ @ @ @ ƃˆé ³•}ûú{l÷æÍ»ÿú×C‚À®[×¼q㊶¶‹êêRÓ}h„^Obú“×ÞGEÆ"û¨0hb¯q]]ê4yšf?ùäkíí»ŸxâµbQon®½öÚU7._³fÁ,º$>ÆÑZœÎºËò@Æ]ñT ¬? —Çè+ÛuÝö¼a£·çùºnAQ`oÁ7á8Bšf{^€ßàp§½5È\°ðÅ4ÛöÑ©k¿¢f.YVxcÍ7Vz¡ˆ® Ëñ±Ýž¦)|å!v(ÀÇ‚bY[¶A`9ÀóLÔÏ f‡É¿‘ÓÃó à+òCCXk2†Ê$™Óé8”ªªèìa6ÒéX:-¥Ó±)SÍXB¼uÿ ØÌBà=D‘êîØ€oœGh¸¦!]·Æ³òT p-yž/ËBuµŒ/šV –=^†£ûAƒÛ¸`{žïyëúªj†cŽ®Û†a—J¦¢X¦i—Ëf¤‘gdYÌdÙl"‘3™D}}ª¦&žJIµµ‰¹s«ªfQË|ª€¡FÓl×õÅ„ÌÃpÇSU«T2þøÇWví:R_ŸlmmN$$_êº &,E1=ÏWU{’Z4Òè/|L{) ¯‚¾PØõ d†ë%ÈñeY Ö¹þ¬¬KO=–&ôõ ù~€F<ƒØSŸÍ&áæÜ¹ÕÓ+M6 g×®>P·wv<˜Ó4[¹ /lZº´dôË–ÍÁç©3!ÚC˜@q ÿid–@á™ ¶DQ¬½{F=õ4M-Z”áþªUM^ØDÎQF'1ôôº»á4= X’LŠŽã›¦søp¼ÿ4<ÏΙ“ŠªugBù' ˆ¤¾£ãàöí‡}?X¼¸$õW\±¤ª*>eG²kב/}éw;wö}èC—éK×N2Ð.—S~ø•M›¶oÛvH–…ë®»ø†ÖήÑÓ´3½bzÏ ººrýÐh€Œº©’Ä/YR7~ x$gWÐËÓÛ[|úé}[¶t>÷ÜþbQol¬zó›—­_ßòÆ7.®©‘+ÕÐPåûþ /Ü·ïØEÍýô§7^sÍÊ3ÿ¦z{‹/¾ØµukwGGwWW. Õ+›Ö­knmmnmm&{vª<ó̾[oýE]]êÇ?¾iÁ‚ÌtÎD”ËLDÀ|ŒË€?Z€µ'¼ü ç}XòÑ£¥_ÿúÅ_ÿúÅþþòå—/þèG¯¼êªå“¯e†álÚ´ý—¿|aÛ¶C«WÏ»å– mm«ÏJj¬7utܱ£ï¥—*ŠY[›X½z„…ŸjrêÔ°ÿÀ>ðCžgõ«Î›W3݇s\×ÿío;¾õ­GÏóW®lÚ¸qùÆ+.¼°é\\2J˜$DLJ`‰¶Õ'äB#Úl6 ά­Ç"{§ ”Ár²uk·m{k×.¸úêW]µbéÒúi|§SøjÁ°€¥x`Þ(ã±,n Ú˜®.l°ºx¢Ú1M÷™LâlY,}?Ð4 E¤f ÇÇpÇ6Ú‡aˆ/ïWU+4ìûöB¾ïkÚ°æ[Õ° ÚÀù‚Ÿ cZŠNYæøe©ÔqÁ}…ý”gø&èí¢OˆQ;ô+L%¢ÈÑ4 žÓtLÓ±m×óBð ÃuݱmO×­Ré„´ŽcdYˆÇÅDBH&%YdYL$YeYL$DØSSol¬žàs€¢2Þ½c¾€‹·¢X #ĉ ÄþA\)<ÏñÅ®ÇßãûáڵͫV5Q­ LÇÛØ‰sâ~o;ŽÙž¬3}bhšb†¢(šFÇ ò4MÓ²,ˆâpE (-ÑJQq¥€»R©±ïB¨ò®è…ÜÑ»@òŽo¦ÓãÞ5|?øÉOžýÎwåyæ+_i»á†µ“éÂAëzhºá ò¼@Ó,üuƒ…Šä€žT;ÐÜ üVÉñƒ¤wà ‚ÙKvNlωdà,dRšøp]¿XÔ,õuB__Šâhµ7x«Î…ª) ÃÎÎH‚Ÿ}`@AÕÕ%ÁÌ>—E‹²Ó.ŠÓb ¹‰Êss9µb°<‘=Ã0ƒƒJOOa÷î#;vôuvö³,½páqOýªUsg "a&0¦¤«+p…$“‘-Ë-•,U5{{‹£!ÄV?sÐuûå—{::vtt¿øb—ëúóç׬_ß²n]óW,™3'}®Àuý{ï}æ?ÿóѺºäí·¿óío¿p¼66Ÿ×zèeðÑÇbüÛÞva[Ûê7½ié„*L™˜> CœZí®0‚¦ijîÜêhkÐÒRG|RS.Ï<Ó¹eKç–-==…dRºüòÅ«VÍmi©E+#a~ðÍèópSUK§±,2†oVh%£C¼óÛö, r˜|UµJ%]ÓìRÉ0 §T2@íûa±¨{ž?bku\׳m϶=ÏóAäêû¡çù§7‡à †¡8ŽašãXp‹ d5q<ÏÆã<ˆÅ‹Å†¡««%š¦ÁÛ˜Hˆ†aCg•¦‘ç…±%aÛ;<:q|½qqă¶âwѨ‘”ªZŽã#AèûaT V€Ž:¾(¨€ãp> ™”p§¢b$˜#Orªâå ? Öeð¥†S,j¥’iYn±¨ ¹œ¢ªf±¨ªÅ¢† ø<Ïf2òœ9©ššD}}²¶6™Í&êê’‚V[›¨0IÁØGUmÛvuÝÖ4t¥†á€{T×Ûv!wͶ=E1MÓµ,GU-Ót r¼O5™‹ÅxYE‘Å(W²||#D‘•eDÀÉäñ dµÕã¶½··!éŒ4ìõ--õMMçsÀÛ™0fjH¡ ÷÷—Áªª–¢˜ÑÔ„(EA¼D<.ÔÔÄëëSõõ)øü››3Í͵ÑòoÛ^GÇÁÍ›wÿå/;J§cë×·\uÕò«¯^A`N … Jçðá¾}ý]]9ß8Žin®?¿¦¾>ÕØXU[+'“’a8£‡±'zç+#€Šñl4uïüëvôjYî–-›6môÑ]ºnòãõׯ= ½¦ãxO?½oÓ¦í¼dIÝu×­Þ¸qÅÊ•Md”zÜqÇÛ·~è¡O†mÛ¾i:!ƒ÷ŽãéºíyA>¯9Ž[,–å–Jºç…å²Ó†žçëºã8žã¸®„a8ÉH`ŠB 1-4ϳ|‰›ÊdRŒÇùt:y¨55r2)e2ñººT*›ö9±3¡XÔ|p –«ªâï~÷%7Þ¸vÕª¹†á‹z±xÜ: £ƒBá„ÙT œÄ«ªbÕÕ0@ÀÄXUUüu5‡4_XõƒNµ¢XA”˦çºnC9×uÇqüBAõý7Gîò Ã†å¼ Ç;³,Ë „X–¦i* ÃоÐ4ò¼ Q“̆ÔIâ¥išei×õ) ™¦†¡eyxtKUUñ\N‰Åø7½i$=44¤a†<ãñj`2)Ò4UeD˜vʸ×1YdN`„Sè*2ç*n>úè®O}êWøÀe_ÿú{¦ë¯zÊ0‡¿o_ÿŽ} A˜HˆÍ͵--u«VÍ]º´~åÊÆ3OÙ|î¹üàßóž5ßúÖß?aš 0–Àfˆ²ƒ…ƒ£G‡ðb.EQÕÕñ .˜S_Ÿ‚…0(cÛà ܵ«¯££{ëÖƒŠ °­­ [[›[[®^=oÊ¢©Ï3‚ ¼ë®Gÿßÿk¿ñÆußøÆ ³7R/TEÕq~ĉ$…'avbñâºY=ÃéºþC½üãoÙ±£·¡!}ÓMW\ýÚúúS˜Eùåžûïéá‡_ñý ­mõßýÝÖ®=WÊrßÈAýÅ‹°Ë—7®[×¼jUÓe—-njª:G/=y¶më¹é¦{ª~þód³‰é>œÉ¢ëö÷¿ÿäÝw?ÑÐþâ¯mk[=æÃÕÛnûÕóÏïÿô§7~æ3×Q-@ @ @ @ @ @ çDLO80MçÙg÷··ï~ôÑ]ƒƒêܹÕozÓÒW\yå2rõòÔCÄôgÏ µXÔ”|^+õ\NÉçUÐQårj±¨E¯÷†ë²m·TÒÅ*—ÍbQÔÂ0dY¦®.¶ôeË–.­?¿{zk3MG\ä•9[ƒš¦jkc†lE ¡4M—Ë&.J.§ ªPP5ÜVÄb<”úº$T1¨P )Óô¶më~ì±=/¾ØáŠ$¼jÕÜiúÌf07:$u¼DÕbQ+—ÍhZ-†ežg )– ‚bÌØTßn¾ù¾ûî»ùÊ+—½nýògŽm{Ï<³¯½}÷#ì,´––ú¶¶‹ÞýîK-ÊNü‹Šb=úèÎ?ýéÕgŸÝoYîÚµ ÚÚVoܸbþüš©9òY ¬ˆáª•jÇw¾óè¼yU«VÍÃU)Ì`YÞ©º’ÄSBˆ‚éV„Ë2‰„PS“hhHe2r6›Êdd–¥)Š¢(ŠãXß÷=ϧiÎkÙ2{l‚ _Ó,Ûö4Í6 {Ì:‹F.%‰E.™” ¨6 SÇó,¬ñ<›LJ¢ÈMãRn¯Ž-µ·ï~á…®(ŠjlL˲è8Þè©0Š¢²ÙÎ28Q;zÒI§ãçÇ@’M]7€ù|ËruÝñ<¿\6ƒ P Bm¡| éžÀ¿½r×õ-Ëñý“xäB`§( zO $1 #”=ŠBétŒa¨DBÂQ©p‰‹†Œ%˜Š§éá &˜†õ#žg|?ìí-æójtŽÒÖá8çέÆBÙl¦ì`lþç?ïøèGÚÞþù .˜sÆßá¬ímEÇrT?ó„ú³¬Ùl×îúúdÅÍÉ7Yíí»?ò‘Ÿ¾ç=k¾ýí÷΄Þ;žw‚µ={Ž ‰àmi©‡åÅ‹³§4Šìè8øþ÷ÿ`ãÆwßý©u怳¾£ãàoÛ±}ûádRÌfSaˆŽ;î¬Ç«ÞÜÐ.—£GK]]ƒ;wöjš]]¿üò%ëÖ5·¶6/_Þ8«ócfŠbÝvÛ/Ÿzjïw^ÿ\6݇söÁùyýýeÈKøÿÙ;óð¸ÎúÞŸmÎ2sæÌ®Í²,ɶ¼+vl+ ‰“D‰q)$!¤Ji¡”¥-p e¹Ï¥4@YZr[m€÷¦¤Ðp 8ÄJì$v6Ù‰cÅ›dY²¬mf4뙳ÏYî?éäx$+Š-kóûyôÌóΙÑÌ™™÷¼Û™ù|áŒÕÙ³9˜#»Âz·lhˆ-ü½‘‘ÂÿüðÃ/ŒÚÚš?ðkî¸cóÌGkCCùŸýìù_ÿú•ÑÑâu×­~ÿû¯¹í¶sœ-”J‰]]ƒý}GŽ †Y]-´µ5ƒ§~Ë–s‚àÑG_ýô§¾ñƵßûÞû½y~‹…3g2ßøÆï{ìÈ7®ùû¿÷ªUSÌ|-˾ÿþ=÷ßßqÍ5+ÿõ_ß_]-Ìý~"@ @ @ @ @ ˜E˜±±,û•WÎttß³çè©S)¿Ÿ¾öÚÕwÜqÅ­·nXì~ÌEÓÏ%å²µwï‰ßýîÈþý=©”Ȳ¾ææD]]Äç#r9üõ…¾oŸŒF ©ÇùXŒFñxÐ-'A¯J1slÛ)•ÔRiÜe¯(z¡ (Šv{QÔ$éÓ½,ëŠbȲq>O±×7eAàÊá0:{°ÞC9dyžòÜ¿K¯42“íö¦i•Jz©¤Š¢*ŠZ*U¤ñ´oA’ÔRég Ãøxž è@€ hžgý~š$‰@€v?nˆ4ðûiø1-ÈÏ·oàI™fçUuºŸ9 §»øÇ¹Ï¬<ΔY^$IïíM•JZU•ÐÜœ¸à'—Ë–×ö>ëX–mš6()Av:{Û¶-˱,ûÜÇqœ 0(ã2%\ÓŒ…?ò§(‚ ïn q¯‚~Éï5~fšoü›mÛoU: ,ë+ Žãç#Ç1Š"Æo/ËúÀZ5áúÁ1 cYʵ²úýŒûãó@€öùHÃ0mÛfYÚ4á´hÚGa˜>f"ÇÁlÛ6 Ó0L’$UU·mLQtŠ"Áªªeðà† >îŠtóƒnÛdÁ0h‰xž …ü<ÏÄã<ÇÑ¡\“ét1.•òyŶmAàV¯®®¯¬^]½zuõºuµ>0>Á²ôÒðLÍW‚æšë½×ã“ËÉ ¥òþ/Žã4Mò<jkCápÀõ †Ã~Aà*®Î×k\hLÖŸ=›ʃCÙ5lÖÖ†xžµmGQtQÔFF ®­Þç#ëêÂÈV?_@ÄÅÁƒýÏ=×ÓÙÙ§ëæŠ±íÛ›ÚÚšo¼qm}}äRþÃ0’$ϽÃ0Œãè‰[§ü_ša*Õó ðغFÅtZL&ÅtZL&‹Å¢:<œ÷&r¹ÃpsƒW±¦d‹\U•àÌ„TªX(¨îÓÁ‘èZ;s9Ù] (bB—ïîøÅ KØ%-˺öǦ¢šV†(M+K’.ËšªŽ îUÕPÕ7$øç[¢ÁqÌN‚Y5ä¢Ñ¤uVU ¡;aûå@ìZ¼C!n¶rû.×ìVÝ™èæ'‹€]Ý<€ãø7®moßpÓMë.i ×Ú4oè‚{¤À1Rq°L¨Þ§3Ë“$0¥’Z[Y¶,ì6Ýn0Ucl¬4:ZH&ÅìðpÎ0,Ç¢pŒ\ºI¬ÃÙQ7×—J*Š¡ëeQÔ`]UM3a¤ Iɲ¬†)ŠS/ë¹§Šà|œ*rO„BpzÈÇó¬'Î%ù`äŸË”Ñ&ž®gŠðÅH$PWN$‚‹Ñ8Á¢ÞZõ þ¼u¯TÒTU/•tM+«ªQ,*šfézfËe ç§y.‡ulÜ%ìi¡(Âç£XÖçó~?ãó‘Á GQD(Ä1  rGs £wm– H~ây–$q¨önØêlUiQTÏœÉT„Dºz’$êë#çÐOù€¦ißxã?nÞÜð½ï½Vö1LÓÎåä|^†ËLFÊå$øÚ|s —“sç&ßÓ4¢Ñ@,6þ…÷ëp5 D£ÙUx¿ürß>ðà5׬úá?4_CñiH¥Š==©îîdW×`OOêäÉQÃ0}>²©)é¼--5­­Ë§qò¾þúÐÝw?ÐÖÖüã(Î:ÝÝÉxúÑG_­­ ä#7üÁlÎçð†÷ö¦Ž>s&›ËIº^v[eŠ"ª«CÍÍ ˜€»ùÍ A`§}6ÄÔtw'ÿìÏþC–ü“íÛ›æ{wæÃ0GG‹ÞSTÙ3gÆ`8çžr+,h74DßêBÓì"ŠÚïä‘G½ôÒé`»ûîmïÿ5óšiÐusïÞ¿þõ+{öãyæÎ;·ýÑ]½fÍLÿýÒQ.['NŒtvö<Øÿ ½Ù¬0ë××µµ5·µ5mßÞ_ÚõmÇq¾ó'î¿¿ãã¿é _xç¢>ÕxèPÿ—¿üë'FþôO¯ûÌgvNÙ<îÝ{â¯ÿúç¡÷Ãþ)JB @ @ @ @ @ bQƒÄôˆ%ÎÀ@¶£ãXGDZ_ìuìÊ+WÜzë†ÛnÛ´jUÕ|ïÚ‰éç€RI{â‰×Ÿzêøþý=…‚ÒÜœ¸ýöÖööõ[·6‚±× ('²Y9³Y)—“³Y)†ŸËÙ¬46&JÒZ.ŸŒFÇ%õñ8¿BO$‚±‹Á¯Ðƒè×¹³IÀ‘Q,Ž Y¼f–iŒ-çsrØü  ÛCÜí®ÉÅõE£<ú…üœ¡ªF¡  `­RŠE5Ÿ‡Â2¯ýdB\u޹>ÇÉF㮜/Çyä‘C_ýêo-ËþÌgnûð‡w,Æß —ËV6+e24òÙ¬<6&f2R6+•ÆÆJÙ¬äÍ?ày&B{B!$ÂE"p8úãq>ñ³,a8¤¦|RÓ´¼>G/ŽƒM‡P,*O?}â±ÇŽ~çÛ®¾ºÙý¾¢ÞýÄ0Ì0*lÛ™lh’$ lÔ.ÞÀxLØaÛÆ¼ÊÑBA3;<»iZîóêº5ñrlU…°r&®yeú5/cÙqc>Çù÷ù(ŸtÌï÷á8î8Ï3¶á8î÷ûÊe‹e)ÇÁmÛ)—-U5$I7MKU ×Ð4yšH’8Ž;ŽSñ1M ÃP,K³,Ų>š¦@òÈq>š&A·éPh°£R0$Iƒ,AÁ CD0Èâ8 q8Ž/jƒ¡ tß§O§>{üøÈ©S©¾¾1E1çy6`†rœñÞ¡ÂQë¶üúB¯€ÒÝr*ÕEM¹lŒÀýêµ æà …ü ÑD"è󑿆%IZ*U-@­…üMMñÆÆxSS¼©)åXŒŸïW¶ÄcÈþý=Ï=×sð`¿¦•]Iýõ×·44Äfñ¹Åxà§úÓçóy™ ð¶¶æ{ï½ê¶Û6.¶eáð–ÄôŽãœ=›óè“gÏfGF å²EøòåÑŠ‰eË"³+A[È8Ž“N‹S‰‰ß\ cŽ÷x$I"ç+\ó^þ|Xøx—ÑÜå²\N.œ=›ËdÄLFJ¥Ä|^6 ›H„òù(ÛvÇ1 ³béR±˜v>ýqÅ:¬§E"W© &wo31 Óëæ1 ®¦&t>Ýü‚M 1 3Ÿ—'gBŒŽ††ré´ä¶Ø8Žó/˲®(eM›zà ˃Þ-ÃÚ] @ó< H/Ô‘‘|¡ ÄbüM7­»çž¶íÛ›æò<‘둯¨f“=òî0@Q XÛtà ¿Ó0,w¥wJ&<òöf ³¹¤8ËÒ>9á‹÷ñC¡(Æï~wä‘G½ðB/Ëún¿}ÓÝwoÛÛVMþjÙ”X–}àÀ©G}õñÇ»$I¿êªæ~ðÚÛoß´3E€lgg_W×ÐÁƒýGá8¾reUkk}[[óöíM--Õ³{ò´XT>ýéÿÚ»÷Ä·¾õÞ÷¾wû,>ò<ÒÑqìK_ú•(jŸúÔÍýè“G€™ŒôéOÿü…NýëwÞsOÛ¼ì$@ @ @ @ @ @ ˆ‹‰é— ù¼|àÀ©ŽŽcO>y´TÒÀqë­®¹fÕåc4›K˜þÒ‘L{ìHGDZÎÎ>ð¶mk¼õÖ ·Ü²aÍšš‹p¯™«B–Ûs9Ùë¢KˆëØ)RU•ûïÜ|.ñ*9àSs}1SúîÝí«‹ë>ŸÆ»½Âwî¼¹.Ü ‚) •Þ-cc%¯TÅÕOo7 ‡¹p8°À³K±¨|ç;Oþä'û7mªÿÆ7îÚ¼¹a¾÷höEulÌ›GRYÎf%¯ÿšãèX,HASâñ ¢Q>çãqþ:¯½vö _xäèÑá}èºÿñ?n[ŒŠ®RIsmzªú†þ¾ÂÔ_,¾a~‘eÝmf Ãͽm;¥’ê>¦e9ظyJ·,Û4må;V*iŽã˜¦¥i&l1ŒñçµmL©ŽãFä-A¸gVø–g‡8ކGŠ"0 ç8¸÷}> Ã’$ ·m‡a(xß‚0MÛq˲³,Û²lÓ´LÓ6 Ó¶g5'æ° [« p ~%<d'.‰`¥(B8PásÍ0T0È‚Ša(Žóÿ­¾u³N*Uìêêêìê:tèL>/Ìúõu6,knN,_ …¸RI›¦ÍŸR7ó–?‘c2ÇLa½«ÙrÍõgÏæ Ò‡BþÚÚP(ägʲlEÑÓi).‘+ìŠñÆÆ8øAV¬ˆ76ÆjkÃKõíš_LÓ>~|xÿþžÎÎþ—_>-ŠZuµÐÖÖ¼cGËöíM<å)—­'žxý‘GíßßcšÖÛß¾®®.¼oßÉÑѽ÷^õ‰OÜŒäh³Ë4bzYÖOŸN»Õì™3Ð¥ƒìÚµµ®€¾¥¥¦©)¾`Õ6$éÙ¬”ÍJ…‚R((ù¼\((¹œR(È…‚’Ï+ù¼œÏËy<,ë ‡ý‘H ñC! „ÃþHĉŒÂá@$⇮­TÒžyæäþý=û÷÷ dyžyûÛ×íØÑ²cGËŠ•ú Šª®› ÄÔ4SQtIÒ Ã,•4E1t½œÉH šÏçeY64­,Iš®›º^†!ÍLrn¼ã’$`®éê5-Ë™¡¡ž¢ˆ@€¥iÒï§Áp 3Y¿Ÿ¦i*``Ø€ãx(Ä.Iâ<Ïb ²$I0 @Á ‹ë ‡§°mgp0çu;BÂämlL¬Xki©ni©Õb/a`ØÐ×—êéIç“Éb2Yt볪–+FÌ8Ž1ŒÓñ8ŸHëë£MMñ+¢ÍÍÕsé×FLƒ×» }PÿX©¤aFÓdmm¤¡!Âá@(Ä ‚Ÿ pM3dš¸²¢¢¨jZYUË¢¨ªjYUó…±áøx3úû Ñ-MS~?í÷Ó<ÏB²`$ˆÅUUB"ª®ÖÕ…¡…_’«jÅ¢røðÙN8pêØ±a˲ƒ©œa˜©”èÞ²UB!®¦&TU%À‚3”Ãa®º:äÞfÖî²g…>»"ãóMÝÙ¡B'§{ÂF¯JÛëËž‹·o@ ²ÔîîäOÕ4Ã4mŠ"–-‹xÃ~Ö®­M$æ'–fÉ`YöC½ððÃ'NŒ”ËIâkÖÔÝsÏö|àm ¡J躩iF¡0~Dˆ¢ ½X©¤É²®iecPÕqºÛÖMßÄ1 Åqt(ÄÁK Àð<Ãq´ßO ¶nˆ^à¸ñΑãh–õ…Ã^Ì‹úÊWíè8þw÷Ž =I+WV dôKl¡ëf.'• …4›•3™R&SÊåäLF‚DRo°¨ÏG†Ãþ`ãyšãhžgÆG’E‘$I`ØøŠ\¹l‰¢ª(:ˆ­EQ?ßpr%…Ï=dyž Ù@€ Ÿ– ŽóaƲ´ãØ4M9ŽË›Ðð‚k^QŒrÙ”eÝ4íRI³,a¦ ª¦a”§Ÿ&$Ža8Žc0";_Æ À0Eüiš Yš¦óû}GG£<ËúÚï§}¾q¿¼ßOûý M“‚ÀÁ²a À.ö/¸ æ™è]#ólcUÕxÛÛ¾þÎw¶Þwß{.þÑ–6†aŽŽÝsô0˜q#¦\þ2”nòÕ…Ð1MÏë¯Ý{ï¿­][û³ŸýùIn˜!¢¨ž<9 ½RW×à±cÊbÀÐkùòèk¯ Æãü÷¾÷þ-[–äð~ÞÑu³³³¯³³¯³³ÿðáIÒq§(âškVþÅ_Üpõիܵši(ÈÓBÎú·D¹l}õ«¿ýÿØÿñßôùÏ¿c±÷•sÔ‘0CCyÏ„B~·j¹Âú•+«.²U´mçÕWÏüúׯþæ7‡óyeûö¦;ïܺk׿pxF«‘¦iïÛwb÷î×öì9&IÚµ×®¾ë®mííføï IÒOýË/÷‰¢šH7onO}[[óE~+æ•Wþò/fYμÿê«WÎÖn/TÕøþ÷÷>ðÀÞeË"_ùÊÞ|óºÉ÷yè¡¿ô¥_ÝrËúï~÷^”@ @ @ @ @ @ Äb‰é—ðëÄ={Ž=þx×ÈH! \wÝê[nY¿sç&PJ!f$¦Ÿuºº;:ŽíÞ}¤§'IÓÔ 7¬¹ãŽ+Þþöuñ8?Ç{ò¦òúlV2Í7dðK]°Õ‡Bœk±Gòú…†ë:÷ ›Àb_±Ý+xÒ4³TR+4[€GXï«07±¬ÏÕ}úJ]ÉèhÑ0LÇ¢^½#rÐ/,ËÎdJ0»qç;é´˜LáÒëy¶¦&ìZÝ,Æh4À0”ãà…‚<ñ¢;iJ& ÞH‰)ýÚîšØÒ˜J/R\%ŽÏœÉœ>VÃ0¿Ÿ‰Å Y†.ÇÁdYÏçðV ¤†çÙ@€æ8še)šöQAQAæ`nÛŽ®—MÓžÐCOç}…ü0àtæyÊ<Ï  e¿Ÿ‡ý~?:ÝPˆ[tÚ\U5 H¸£ãx*UŒÅøë¯_³yóòÚÚP6+Œ’ÉB*%f³2ôDÅâË“$¼½˜mÛSöJG4ϳ‚ÀyÞCÞ^ø¼ Þ[ž¿uNß…Ķ?ýp:-þó?¿¯§'51Köô$! ò»Ã0py/_E-Ò›SŒŽŽc{÷ž)47'n¿½uÍšš3g2>új_ߨ²e‘;7íÚuŶmMü~zµòªj@ðŒÄ¦×Ê»Sžý‡T?Žó[FP<Ï‚GÞï¼Ôó,ëã8š8 ‚An.kˆ®›ÝÝ£0‰€ª Ùr0•€Ú q Í͉Å;·,;›•³Y)›-I¹œ”ÍÊcc¥L¦ÛÇÆD׊‹aMS±Y8&šHc1þ¢Ñ@48ß WÓʺ^VÃ0,YÖŽ|ê©“‡õ•ªª„+®X¾qc=ËRªZÎådM3J%MU˲¬«ê¸Y¾\¶t½lY¶a˜ 5“ï™à8N†8Žæ8øD4¦ã=“轿ßOûý>ŸÏ]ž{žBXX  …Æ×â`üû!æ ˜ŸÉÔi‰1¿úóñýïïýßÿ»ã…¾‹Íõéì…C¹lårÒ$Åüø4dJãùÉ›««… {"Ó´Óiqx8?:Z-çGG‹££…ááÂØ˜s‚À aÙ²pMM¨®.\W©« ÕÕ…ë룉D$Óí-‘N—>ö±Ÿ½þúÐw¾sϻ޵e¾wgqãÆ*Ãú’Ûƒ{c•+VbË–E¦_°,»³³ÿw¿;òûßw%“ÅU«ªÞýî­wÞ¹µ¡aFI¥–e:tæñÇ»~ÿû®¡¡üêÕÕïz×–w¿ûʦ¦Äì¼ìùòìÞÞôÁƒýà©ïéIR±~ý²íÛ›Z[ëßö¶UË–EÞÒ£Ýÿžûïïxç;¯øö·ß»T¿t::ZøÆ7~÷È#‡ÚÛ7üýßÿacc¼âGŽ þÅ_üŒ¢ˆüÐúõuó²“@ @ @ @ @ @ .$¦G\Ötw'ŸzêØž=Ç:CÓd[[s{û†w¾³µ¶6<ß»¶èAbúYÁµœ<ûl÷à`.çwîÜÔÞ¾áºëV/p¥Â¬Ëëc±àâ’+]n€ú\ÓÆ-ö ³½èìÁ„ënw}÷ù¼r>M0ØF@¬0QæÀ6s^[:Üôè ÓY¿ô¾¤H’þ‹ sñt:û ƒd0È çêÈ ‡ý°Å½.æ[ÈFcÛv~õ«C_ùÊo|>âK_Úu×]ÛÞTz{â•×ϰ‘gŸªêFlÞ¼|Ӧ嵵‚·Í¯­ pq)+½öÚÙ®®ÁžžTww²¿¬\¶"‘ÀÆËZZj@q~ñ/¨é´ØÛ›êïÏ åΜɂE ¦œS]-€ø/bÃá€ßOsœ ðÀo%Ëš¦™Šb¨ªa¦¢¦i)Šá8Ž$Žƒišñ¦XÇ@PÇ®ã`ŽãL âÅç#pœ iÇq(“$À,ËÆ0Ü0ʆéºeYÖ´N^,òû|ãò\†ñƒ EËsý~Z8†¡ü~:/¸[¼7¹Æ7%tu ‚ªþèÑaU5‚AvíÚÚé=õÓ#Šš{ ‹â™%…‚âþyÿ‘¦)WRïqÖû”£Ñ7Ê‹Ô"CÙ a}ÿ$=ø|d<Îûý MS†)Šj:]šÆÒÐE½ÉEbYö±cã’úçžë)•ªªàUW­Ü¾½©­­iÓ¦zï;lšö¾}'vï~í©§Ž‹ê¶m»vm>ßLß¶§Ÿ>~ÿý{>»}{Ó'?ys{û†9|eK÷`éîNþæ7‡UU7 ’B@ÏÝÒRæÓ™¨s&†aæó2˜å³ÙR6+ÃU¸Ìd$(hZÙýŠ""‘@4€KWénŒÅ‘ÈyÝ‘3¤\¶$Iëìì3WOORÓÊ‘H ©)^[ŠFyÓ´'Ôóš(ª¥’.Ë:DÎT@’È"q‡tÊðÇp‡Nvò­³,ÍqÃøÀªì÷3‚ÀBç r4Múý´ßOû|” °Eƒ,„¾ãÁ0$9ûù‹A–uõñö##…rÙò¡ž74ÄjjB ƒÆ·ó€ã8é´è:+”ñµåÞÙç#ëêÂUU‚«z„õ¨‹÷<ŠÇùô÷PsÜ}ˆF ¯7h…Å~‰i²ç˜Š©ëùRú*4 ØD;F’¸m;šV††ñÅb|uu°®.²jUÕúõuë××-[¹¨ªŠbH’^*iŠ¢ƒ` ÔP–$MQ YÖݲ¢¢¨É²6YæË0´ºÁ฿>`@¼®^WÑî÷3Á #fqÙqPc»ï³7Þò|q˜ù¼lSL¯`ÞVš&1 §iÇ Ó4 ÃÔuK×Ë’¤—Jçhë9Ž®®ªªïeUU°¦&úæÙz± Ÿú§'ûÛÃÏ>ûwÛ!•|ßgÏf»»“§O§-˦iª±1>!û®^³¦¦¥¥f)o/IҼ멧Ž?÷\(ªÛ¶5Þzë†[nÙ°fÍ9ÑVÝÝÉßüæÕßþöp__&â¶liزeÅêÕÕå²å]'Ÿœÿ:qSesäýÅäØÉ«å“oZæbQÔz{S§N¥FG }}c==©S§Rªj$ÑЃjùã?ûùÏ¿óÃÞá÷/è³c^$IO§EXK¥ÄlVÊå¤LF+AlU6+¹w&I" „B~hú‚AŽç!HƒaЦ)†¡p¿¼¦•átLEu‚¦Õsã|•ÊÅç#ý~†¦ ¿Ÿ…8XX#I‚ pÛ¶MÓÁqÌqœrÙÒuÓ¶Ó´  ›rqŒ pˆr‰<Ì(Š IÃÆÄ0L]/†¥(úä)…{n¨"ØØ­Ïî #÷¬Ðå3drçìÙ8è§ÐS±lY¤""k¾2 åê«ïûÈG®ÿìgwÎñSÏ ¦ig³¥IŠùs‚~+Úv‚À‰àdż7ë·ºZXøíö¥ ·7ýÞ÷~¿ºZxøá…Ëø Îçå;ï|À4­ÿ÷ÿ>Ų¾¾¾twwôÇÇ@Ë_]-@2Pkkýš55k×Ö¢sdçÃqœžžX¤ìÈú|äæÍ mmÍmmM­­Ë'«çeYøá—xàé|^yï{·ÿÍßÜZW7›_+—-˜ÚŽFFŠ##ù‘‘B2Yô:ë)Š€ðeË"uuẺp}}¤®.R[ZìS’W^øÈG~"Üü§+WVÍ÷î,Y¦ŒU>sf ¢½+ZÞN?ã÷í;ÑÑqÌMêݵkóm·m\¾<:“'Õusÿþž'žxýÉ'f³RKKÍÎwíÚ¼aòKürçTJ„€ðÎξ#G Ätd8ñ´qcý4Ñ\©TñŸxèÕW¾ùÍ»ï¾{û\îö¼ð ½ÿóþº·7õÁ^û¹ÏÝ^±tŸÏËŸúÔ>ÿü©/}iןÿùõóµ“@ @ @ @ @ @ .$¦G 0 Ã2iß¾=väÙg» Ãli©ioßÐÞ¾~ûö&$¼0˜þbEíÉ'_ËI±¨¬\Yµsç¦ööõ[·6.%Ýö›Êë3Ék¾Fòú% X¨¦”òx}÷“e=•Ä…a(–¥Y–šì.aYlŸÒw=p†”JÚ¹N·J¹›(ªîeEüEà©wö^½{ «íçþCÉçåo|ãwÿùŸ/]uUó×¾vçºuµs¼K·‘?ztä'?y®¯olݺe«V%Tµ m¾×ƈy|C®ŠÅõBBe¨­ 7¯h±`æÉ“£ :}±¨¾jU5(NÀuR]š›ýÑu3™W'€2  CCù ½#åõ&¸…åË£çûµ©¤Ù¶-ËF¹lÂ~ºeªªaš¶,ë–eK’æ8X±¨š¦%Ë:8%IÕu«TÒ,ËEÕ¶mY.[–5½¥‹ p‚ @¤…MÈîÇ™²šø‚¢pŸ"œ¢H’Ä 'IÜq s,ËÕ¯¦™¦i—ËçÏÉ—a(o!`4Íýb*UL&‹å²å÷û–/­YS»n]mkëòÍ›—3Œoem®¡Úù|^™È2yc;lô™}>r’¿þP/óbQ؃Àq` n)¨Ø§O§eYÇ0Œ¢ÈX,a¦iɲ‘J¡¡së¹WÌ]_YJcû¹¢ìß¿¿çÀSù¼ó[¶¬Ø¾½)d:³wï‰|^Þ¾½i×®Í;wnª¯Ìäa;;ûx`oGÇ1ÐÓßrËz´p>ÀÐíÊL²gÎdDQÅ0Œç™uëêÒiÑï§ÿæonmi©ijŠ/ µ–®›®#2›•r9Ù-d³ÒØX)Ÿ—%Iwïãx$2ÞˆeÞëw¥óoU¨ieQÔ …—e½PPdY—$ðÈëÅ¢2QÖàj±¨J’>¹?"IHX!0 ú,Ìq ëyóu`è¹À}Éqt @sœ/`C!ŽçAà‰ ÇÑ®ð”ã|‚ÀÁA`ý~fîu‡³‹(ª'OŽöô¤¼z°™s½zuuEúH]]x±¿äÅ,¤Rb.'•ÀñšÉ”ÒéR6+¥R"4GÏ3ÕÕ¡xœ¯ª‰`<Î×Ô„b1\Õ±Ø<Ø91 3 3“‘FG‹Ùl).¥Ób6+Ž3ilLL§Kªj¸wŽÇùx<˜H«ªØÿxœO$‚‰„óñ8¹õV岕ËIÓ¤èM£›¯~º~ÛÉ[*L ©TÚO Ë(<¸JÔÒRÝÒR³bElåʪ¹IãÓuSQtQÔdY©=ô0ñ)UØ(˺[V£PPE¯ð“$Áól8Ìñ< ²<Ïð<Ë0ÇÑ>I$à)†€.ÇÁmÛ‘$µÂ/>§¶ÀP¡v×èÜàIM+Ÿ81úÊ+g^|±W’ô+b·Ü²áÖ[7\}õÊéV˲¡O&‹Ù¬42RÈd¤ÑÑB&#%“…tºä.Lù|d<¬« ÅãÁÚÚP<>.¬‡eçxœ_JCô_ü¢ó‹_üÕéÓß|Ó{–ËÖÈH¡§'ÙÓ“„1^ooJQ ×nìNdÖ­«‹Ç·IsztÝ,dw™úìÙܧ^{íl_ߘãØñššpUU$‰·¤•'ÖBÝÔÓÊ¿UFG ½½éÞÞTOOêôéô©S©TJÄ0Ìç#››«WW·´Ô´´T¯ZU½jUÌ&ž{®û}ïû·×^ûjUUp¾wœrÙÊŽS)1™,ŒŽaKâ…‚"I焈€YÞç#)Ф¨ñ(DÛÆlÛ1M³TÒ¦ŒèðBQD À²,ÕU¨3nv/4­$I8æ8˜eY¶í”ËöèháäÉ‘³gs²¬ûýL"Áƒ¬eÙ’¤Ÿ/ïÃ0ˆ3á8Z¸`ñû¿Ÿ†Xžây¦~? “¿Ÿ è™w…¼R*i¥’>£¥¹!»¶`;„µL~œPÈÏóL0Èò< 2£ —“Ï;·ðã —€þ||íkýò—/¼ð¥…œU<%¶íŒ‰îÓÍš:÷ꛌ6½'²aðƒr§Þ”³g³ï}ïB!îá‡?æ{w.QTï¼óQT}ôSSfdÂ䢻; §oNž5 Óç#›šž38SÈÖ/+ Ã|íµ³öwvö¿öÚÙ±±R(äokkjkkÚ¾½iãÆú™4ã†aþò—ï¿ÏØXé]ïÚò×Ý>7u7ÅyâTÂxK><œw{[w" ‰t 1Hª›æ¼ØáG?zî¾ûv··oøîwï]çt–Sž¥‚é›{Ÿ@€Y½ºêê«WnÙ²bÅŠXcc|ú3좨íÝ{üñÇ_ß·ï„,[¶4Ü~û¦ÛoomnN\ú´€PUãõׇºº†ìá…ÞlV ˜õëë £­­ÉÛ‰ïÛwò¯þê?û÷ÿ“—¬¸¿Ûv~õ«C_ýêo)ŠøìgwþÑ]ím²Çùñ÷ÿÃ?üöþ`Ë7¿y÷Âo#@ @ @ @ @ ˜8U58ÕÑqlÏž£ét)ço¼qí®]›o¸aÍ¢0©-˜þ)üþ÷]»w¿vøð€e9Û¶5îÚµ¹½}ʱùÞµyÃ+¯÷þì~fY,*H^дò„úG-ÇeXçZ±ÞðÝÏÄ–…M²]ÐD™CÙdO+|AlÜã|ò8oÁØX©BšéZ˧Æy½fá0—H³ò»ý—_îûâ9u*õ'rÝç>w{0È^üc^V”JÚ·¾õøÏ~v`õêšo|ãζ¶æŠ;@­€&ªDE`ÉèhÑ›j0¥¼¾âjU•p¹™3éðáÇuu õ÷•ËüT¾µu9¨Lš›«š!´wr%(ƒÖÜç#ëê®§ÞU,-[¹D--8î%I7M[U˲K%­\¶dY‡¾CQŒrÙÅq©=ðÅP]’ Ã(K’nš–$é¶m«jù|O„ãA9Žƒã¸mc–5zÌçóQF’$E“$1ñŽiÚ–e—˶a”Ï7µ÷ûi–¥ÁɪzAà†òÀ¥1pxzìÂÚ=8´óùñÖÞc®Ÿb£çe’‘ÈÂúH$‰øÁõ WÃa4ê_˜2® dÊÊLQd(ÄrC’¸a˜ù¼¬i&6QÉ+ b«VU#YÃ[¶žžä#|üñ£YÛ¶I’hnNÜzë†]»6oÜXÿV‡œú×}jÿþž-[>ö±·ß~{ëe>ºƒ€žžä„‡7 ‘'†QÑÜ\µfMMCC¬¥¥\¥ gù‹¿ø†aÿþï2Ï{?XŒA™ÉH ›‡õ„w^ôJçišË|UU\ó±óÐ(¹—3©]¢jE š{ ÚJw{EžM“A$î8†áŽc;é&Ó„£ERIÓ$ËŽûåýþq?£Û´Âë ø×ä‘^j@õè•Hr‚ØXñùHžgH’– ðPÈ㘠p$Iƒ,I<Ïø|M“†aš¦¥ë–ª n‡}›˜nhÞé,gMÞH¨© Õ×G Y9A`C! À4¬ñ<ë÷ÓxaïöP,*¥’^*i²¬A^»$é®Ñ¶¸® ó¾ÏGV8ë§ŒÎuïséF•î¬$™,ºã³g³îÂø¢ÐOÉÈHáÚk¿öå/ïú³?»~¾÷å &<½¹éîIŠŠî@ØššpÅðÒ= ãÏ…¹h¹Îß}÷÷išúÅ/þrÑÉÙÅxßûþmp0ûë_ª±1>“)—­¾¾1è"»º†zz’YlbÄÕÚº|Íšš––êM›êçeB1— ˜è;;ûŽVU£¡!ÖÖÖÔÖÖ¼}{ÓªUU– U.[>úê¿üËSýýc7ß¼þ³Ÿ½­µuù¬ïü ™R)žJÓéœß¡iª¶6䞃9ÈLÄâs€ªŸÿüÿúׯþÝß½ãã¿iM‹–0Ù¬ÔÑqlÏžcÏ>Û­ëÆš55ëÖ-«© ‰¢Z‘îžL÷'lÛyñÅÓûöxùå> î¹fÕí·oÚ¹sãœE›/p²}à©?ztÇñ•+«Z[민²ñرá_üâåöö ÿüÏï» —‹‹Eå;ßyòg?;°aòø‡woÛÖä½õÅOüãÿ'd|ðCk×ÖÎ×N"@ @ @ @ @ ˜9HL@Lm;Gutëè8ÞÕ5Èqôu×]”úär‰égˆã8öwtïè8ÖÓ“¤iê†ÖÜqÇ7Ý´.[ê¨yGQŒlV{C)˜É”²Y9—“2il¬”ËÉ 8ŽŽF íŠFÑh4IÑèøÕXŒ‡/»Ÿ^¶‹Š¢ŠbȲ.Ššª $’$]Qtpyî ªjYQôRI—$mJõÌ„uˆ ¿Ÿá8_8ì÷ûi×äežgAïÂq>Aà8n¼0÷ïÀBæMEöÓ˜é°iEö[XÖ7͆MÓþéO|ûÛûýô¿xÇ]wmC¿´Ÿ Žã<òÈ¡¯ý1E1þöooÿЇ®»`«¯[Òi1™,‡îuÙ'“QÔÜû{?ú‰¨’JyýlEÌ îêG ˆáp_½º% £_ÔÖ¯ã;™AÉÔ×—v•Áàyu‚kRX˜ò}EÑ5­¬i¦(ªº^VÕr©¤éº)Ëo¨ñÀkV,*’¤+ŠQ*©šVVÕ²,ëå²åÆT‡ŽãŽƒ9ΛŠq#I$ÅEÐ4å8˜mÛ†Y–­ëeÓtÊå)òZãyÆUÕ‡Ãþ@€q·€ÈÞÝ ²oI7‰§µ÷fTLXr¾˜ŠŠ~Þ­‘“…õgÏf‡‡ó`CóùžgƇa˜®—óùqã•[Ã[ZªÁÐר˜XÈ>¸y¤³³o÷î#O<ñúðp¾¹9ñîw_yå•ÃÃùÎξçŸï-ð<³eËŠë¯oÙ¾½iË–3¯™¯½vößþmßã¿?ô¡kÿø¯¹0›ç¢Ã­® ={6ëµFNè¹k@³[W>ß[:—bzÛv²Ùq×¼;1ÌdJccoL ½1EL¸æƒ‰ÄøÄ0‘ÆãA˜&ÁóÅr”Ë–k<Íß³ IDAT,ÕbÑkœ¯ðÎk…‚R*©ç>îó‘$‰ã8î8Žã8¶ ö4«³E$IÓŽ8ŽA×`ÛX8ÌÕ×GÖ®­Ý¸±®¶6‰p ‘ è@€]h}â¼ i;U¨½ÕÛ3¹) ˆÙÅ&ò¦ºãü ÿ£Säú ½]ÿ¬{Æ^ŶW¦ [’É¢(¾ÑþxC+ÞÉêêÐ4ùE¡ ç›Ô»‘““gô'Á™Lç!©îRìü…5¼¢'ÌÁ8¶ºZ€¡'ñ¢fæû_,*“Cá-Õ´ñÆ&2º6ÿŠœ?È\tßçÉŽã”Jz©¤–JZ©¤‹ª$Yƒ‚$i…‚â–K%MQŒŠgŸzƒªžƒ­@€P³š`Aà††òÇ::޽ôÒi˲7n¬oo_ßÞ¾aÓ¦úYí‹ L?Á ì-Ãpîï„¡ºÇ‘[^h« Ùk®¹ï‰'>3[òM˜à@R‘7¦©ÆÆ8,JLHÆßBõ`-Iº®›’¤)Š¡ë&$+À”Y×MU-—Jª®›ŠbH’ff©¤+ŠnV±¨jšq¾R‚ÀƒAÎï§§ÑÊ3 56V:}:}ôèððp>ævìh¹á†µ·Ü².\¼G~h(ÿįïÞýÚ¡CgXÖwÝu«ï¸ãŠw¼£5XRÃ67«]nžËú\=È蛚â“ßU¨å²-Ë:¨ä!Ð4í¯~õ7±Xðÿp‹iÚ²¬™¦-IºeY/÷ŸÎëz»TÒAC?ýnNÓ”ã8EÂêŠiÚ¦iyïÀqóQOþp˜‹ÅøHÄ_SŠDüuuŠ"À, qAL9§°mglL¬h·§Io²%§i*©\÷®hËEõÕW^xáTOO* ÜvÛ¦]»®¸îº–Ëÿü©gŸý»9è‹¢::Zœ~±â°òN:ÜÏM=_˜cÎËtºtÏ=ß·,û—¿üxMÍ¢9Óaæ>ðãG‡yäëÖ]¸Š·XT`¸ÕÝìêE;Iõõ‘––šÖÖzèIW¯®^P#Ï £»;yð`ggßÁƒýY‚À7n¬ß¾½©­­©­­iÏsÙ¶óôÓÇÿ韞|ýõ¡[nYÿWÕ¾uëŠÙzð‹Ç0ÌÑÑ¢7ȦÌgÎŒ¹'@ajïÆ“TW‡V¬ˆUU Ë—Gç éöìÙìŸÿùOR)ñ?øàÛÞ¶êR?b*¾`&ì­·nloßpýõ-“Ç î2…;üèëëíM¥Ó†9†á8û››[¶¬hi©¾Ôá‹IÒèììÛ¿ÿÔ+¯ô[– 2W_½ªµµ¾­­¹­­ù2 §9}:ý¿þ×£ûö¼óέ_þòx¿I›ÍJŸøÄC}_ûÚ{î½÷êyÜI@ @ @ @ @ @ 3‰éˆ7g` ;¥úd¶tK$¦ŸžrÙz晓ÇžyæäÐP>‘ÞvÛÆöö ×]·šã.ùG/7ÅÈdJccR.÷†¼>—“á/“‘²YI–u÷þE€°~²Âd…ð7g&Ä‚EÓʺ^/&)ÀÞØîuš€¡xÊ1ÃP,KƒDÆ„Mvô„e}^ûÉô‚õ%Œã8¢¨ ®!TEµXÔà*èA Ž:Y‹&\8ì„q¸Ï‚Anâ*kYÎ/~ñòÓOß¾½ñ›ß¼gÍššyy¥‹…îîä¿øÈK/õÝyçÖ/}iWuµpIŸÎ¶\Nv[xhí'D´ãFÚ\N 4 ²Þö,´nk‰âq~ádEärò±cà éêêï+—-Ž£7n\ÖÚº¼oëÖÕO¡»”ø8\u2¨:à óvUõ^CÇüîùE"˺a˜ b¦Û§”Jš®—Å$]×Ë’¤ƒÚ>Ÿ—Uµ¬ëeQT ÃÔ4KÓŒ);Ç‚ È‘§¼›ÏGø|Žã>éóAÀý-ˆKYÖ+\]ع=Údµ%ltû2·nJ¹¤$é…‚‡s>¯äór>ïhòyÅ;¢Ã0L¸h4‰øÃa¿›BäÝo¹àæÂp¼®eê³+-eYša(ÇLÓ’e>Að76ž#&khˆ54D/ϸ”žžäÿ÷¡Ý»_;{6ÛØ¿óέwܱyrï<0Ý¿¿§³³ïÅOçæÊ+ßš¤>“‘~ñ‹—úÓçÓiqçÎMïÿ5;v´\š×4(ŠÑÛ›r½¢PA 0+WVµ´Tƒ€~ÅŠXccü-õŒ³(¦·m¦lé´ÞùTª˜ÉH™Œ”J‰Ùl)›•Ýd‚À¡[×|,6ª NÈèyïQ_.[ù¼R(ȳ¼V*,=–ùñíÃHÇ(Š$‚ 0ÇÁ ðÃqÛÆlÛ¹O8Ž“$áó‘4MB¨˜y¡aœØ[¡ª*XSªª –Jú3Ϝܿ¿ç…z³Y©®.|ÓMëvìh¹æšUñ8в›¨Û¡ à›·!mi©ilŒ_†æ KÄdïü¹æôâ” H7MÊõ?BÉ/X”¨0×»“ý*ÌõÞÏÂk®î…ȹ2ô më’÷~º8Ð4÷÷g2ÃÃÇqHÅøp8A†G,†9¥’6[~ùÉãm†ñÍå;lš¶$iÅâ¸Ë~Bj¯»É.uX´)•T7Ì…çX¢ñûÓ4 5™,† qëÖÕµ¶.¿öÚUUU‚»¤s) z“µõî!62’w÷ÙýP&;ë««Cso÷+—­¦¦¿}ðÁ½ã­—è)tÝrݺ:Õ¸¬ÖíÇyôÑÃ÷Ý·[QŒÏ}nç?x­ÛæX–}ÿý{¾ûÝ=ïyÏÖo~ónô5H@ @ @ @ @ @ 2HL@¼ eÿþžŽŽc{öE­¡!ÖÞ¾áÖ[7\}õJ¤¨®‰é§DÕ'Ÿ<úØcGžþ”¢«VUÝvÛ¦ööõ—Îr‚˜9Ò.W£æj*¼]4ME"~×¨åº ¼Wc±àû†‹…RISjª–5­ ÂtU-˲V*išVV4Ä`´‡‚(jŠ¢—ËÖ”+Çù8Žv Á ë÷Ó~?í÷3Á {î­>0Cq 2~?s™ôeå²5a«W][=¨d¼.{ð¦ºâhšL$‚‚àë>O‚ÜÁ {™¼±†I’þÍoþþÿüŸç››_ÿú]×\³r¾÷è @8VëLf<¡$ŸWÀbŸÍJ¹œìJ°sCJÀdò‘ˆß-…ý¬›klÛ9u*†P¤R"Žã Ñ––šÖÖúÖÖå--5³¥“X躙L]ù¬ëûv5ß Útí ®•ã²r(”Ë–¢èÅ¢ QÇŽtw'ûûÇR)ÑqpÆ…BËÒ>©ë¦(ª²¬kZYU˪:µ×ž pÇq|\j?ù8Ž‘$IQ8A8ŽOð1˲,Ëž²/ãy&`‚Av‚ÀÁžgàª7A ^›p¹lår^g½ì^y}6+g2%¯ì’$ OLŸHðp˜CF…YAÓ—ÜYìJK½5ùÌ™ÌÐPÞš¦|>Ò¶U-ƒðZئ¦Dcc| _±"V[ZªíÃéÓéG}u÷î#==ÉêêÐ]wm»ë®m3Tì dÁòì³Ýƒƒ9¿ŸÞºu\xtÕUÍÓ¾–eïÝ{âG?znÿþžM›ê?ð·Ýu×¶Åe.s V==I¨`==IHõ IbåÊ*W@2ú‹Ï:š¹˜Þ²lèˆ=ºùb6+•Òi1›•2Éma|>Òõ¶C!‘Æb|uµàzçÁY H·58÷êxûP((ê[Hà IÇq sÇömšè’ÄI’¤i’a|ã÷ÓÁ +l(äD±X  VW µµ¡eË"¡7“ÃSÕgŸíÞ¿¿gÿþžl0ÈÞxãÚ;ZvìhY±b¸ØæQÔΜƒ*ÝÓ“òæ+°¬¯¥¥¦BŸäõk#.€RI)¸+'“¼ççxç­© ‡BòÎ/L*Á³gÏæ“Éb*UE-Ÿ—½a‚À)ŠÀ0ܶÓTS#\¢°É-[¾ò—ùö~ô†É7•ËV.'Áû<9Ysr§W)þ¦Ny’Ä}>Žc8ކ M‡ÏG ÂxR`MP[®® ÃlJÝü%í)dYß»÷DGDZ§ž:^((­­ËÛÛ×ϱÂ;Ÿ—Ÿzêøcy晓_ýš;î¸â¶Û6^|V¢iÚ²¬MhßÇ?_× ?•~&÷™‘>Þïgü~ÇÑ3ÔÇÏð>}ø‡ÿúÒK_vÝÄo)NÜT„¯¸C”h”ŸÜœ:Žs>Ë|>ï¶KJ¡  ŠwE›h‚ÜV(ñOˆæÇuóá°–8àò"C’ \a÷î×öî=‘ËÉ--5»v]|ôs€m;ƒƒ9wgh(7:Z̉ TfŠ"AO¯ëeˆc©x4¿Ÿ9VAçUñá¤ä|¼Ü7Á¶ŠUÖ|ä§gÎdž|ò³Ó¯¾Bg4I1¯º‰J“ó$IÄã<_î<ù\-šn,ŠEåÞ{ÿ}l¬ôßÿýñÆÆø|ïÎtضó×ýóÇïú¯ÿúضmM—úé$IïëKww'»º†zz’Çd³†aÕÕBKK œHZ³¦fíÚÚ9XÓž ¢¨¾ür_ggggß±cÊb,[¹æš•mmÍÛ·7­\Y5÷SÅÎξØÛÑqlãÆeŸúÔ-wÜqÅbÌœå 1ZCCyHñ„ˆŽêêÐÄy1Ás®ªfò’mÛùÆ7~÷ýïïýã?¾ú¾ûÞ³@jÔåƒeÙ‡ìÛwò™gN92ˆaXkëònXsË-ë·lYñ¦ç7GF °Â|à@O:]ŠÅønXsóÍëo¸aÍùr, R¹õ Æ9½½)ˆk…ŒIïZëÒHŸ {öýüç1 óÿñ®]»6{oJ¥Š]]CÐÄ92hfuµí[[[ÓÆõKþL´¢ÿò/?øÁ¾µkkÿñïö¦³8Ðó‰OöïØÑrË-ëo»m“ °ó½w󃦕Al<õÔñÿÏÞyÇÇMü_ëtKÒíáÛÉ9‰“A IÃ(¡´PZJû0žöBéSžîO…’–òÇ3^·ï¤;I'ÝI¿?¾¶"ÎŽcÏäû~ùå—¤ÓÝétÒwéôþÜ{ï‹~x¶DZÒRÇTlÚÔÓÞyãý›77ïÙÓ¥ªê²e³Ö¯_\__ ¥r3 Ý $MÄV HˆD8½›Èp½^FùýŒ~¶¨È~Ö–Ód¸¨ë¤ö(p”Šb.“e8@¼?Àå¬@Àåa2z—öFY­¦3Ì4ÐÎýX,ýê«ûžyf‡Á@¬];¿²Ò ½%-‘à%©ÐÓ4¢MÛŸ¢´uHÓŸçžÛ¹aÃk™Œø½ï]qãÌÄ€ µgô©$³ ü×?e å¼m§X&“mnîÝ¿¿ÈèÛÛÃétÖd2,\XZS3è™;·èô­dg!š¤L³'7GoobÈ…Û5O½fR()qœ‘EÙˆ¤ÓÙC‡Àýû{Z[Cªªú|Ì¢Ee ¡®®Òf³€¸Ž3™,ÏgAN&yAy^y*àÑD‚ç8`Þ”€˜ìF|k ÃDUUdø Š¢â8†ã80Ú«ªª(ƒ¯‚•Ižz»Ý¢wÖëÿëg‘à“ÉAÑ<Î'“<È¢H¥>æøCQÔ`À€õøåUUQ”‘D1 %ˆAѼÙL‚T t»i·›öù˜âb[q±ÃëeNÓ ©G–óÛ··mÝll 67÷bzþùÕkÖV¯ÌŸ_röÔJ'BUÕî$Ô;è)ÊXUåÕ;èßÙ`DwR)~`€ÕÆ7F9a‘ ^õ `(‚œ&‚”Ji1lB*Åk1l ¡mhùà£O­&š6™LƒGQTUUUE²Y9“‘DQŽÇÓÀJКI#æLÛÖ5¨V@§´ZA;PQ9Ár~D53PþxÏ5Ë6èøkömmE¯ÞfY¡³3ª/å´ ÍþjpPâU9[£ÐÙݼ¹yË–æ;Úe9_\lŸ;·¨¤ÄátZÓé¬.Pà8pð‹¯‡ú &š6ëÀºè«Ãaù¤ 'UUA6^__ªÀ_úªÚ’Édðûm>ß`㧨ÈîõÒÅÅv‡.*²[,dÁ+g2YYÎkG&Çe%)—N‹¹\TQ‘­¸ØQZê(.¶ÛKJ¥¥¯—ÑR»XV¸óο76|ðóŸÿüò©û@g}}É­[[Þ}÷ÈÖ­ÁTŠ/.¶_xáÜ / ¬^õìèÏ}çÃÁ;ÚÂaü”ñôO5a½~xV‹@(HUU^ŠŸ®ÁÔ’Ng7lØôä“\tQÍC}¡¸Ø>ÊÊ‚ 8гÏÎÛ¶µÆãŠ2ΛW\WWJ¿é™04.tuÅî½÷Å·ß>|Í5Ëî½÷*‡Ëûû“·Þú×#Gúzè ŸùÌ’©ÝH@ @ @ @ @ @ #ÅôÈéÒÒ2°eKóæÍÍ»vubºtiźuµ—_¾¨ªÊ3Õ›6©Äã™Å‹œË¬2A䢋ænÜxëdnÒÔ¢ªêÎ ‡šƒÁ«ÕxÉ%óÖ®ÿ©OÍ×,3`sÓ\Õá0«Í¡[<žÑ{4cµfpZý¬ÇÃ@Ûd|Ñ,E#úëG±  ¶gYaÄf¤ÑH˜Läèþz`³ÒŒlš© È­Ptºê¡Pê^}þù]\0{ÆkçÌñ¬ ß·Úú‚%`µp˜+Ø™z‘}ºn¸ÈÞá°ŽbÑ‚Á»ï~aÛ¶£×^{îÝw_9MŒ‡^_¨3u c)çm6³ÕjÄ0T¥XŒïïOÑUi©£¦¦hñâ²@Àø««½g†ÿbÚ¢w(kWW ¤€l6‹&PÕñ™¤QŽî+ðÔWT¸–/¯ªú… KOÁý”Ngy^)•ây^™ãD–8NL§ÅTJÊ­D‚ç81“y^Ei$ã'Ša(‚¯tác†â8†aA`ªª"Èàš¢˜+X¸ìYr”°AUUQ$•âc±t4z\¡µô²?’$€Ë墆þ¬n7 y.åvÓãG‚4ôööHGGD³ÄŽah.—™Iîõ2••îY³ÜšdölßpÇå4!J=ÿü®çžÛ ¸\ÔÕW/]¿þœeËfifœñz ©ojêô’úººª nýýÉ·?ýôŽÔÌùҗο첅“æz+€ç¥£GCCú^Õm±³gûÐÅ‹wj‚ ±ÿû‡<òÎèk ¸ÛM{½´×Ë8VŸq»i§Ój2p3°|^-¨UA{ Ø!õ®:EI’@Q­@Póy ›ù­q3p“É`6¬VØÆâtZ\.Ê㡼^[Q‘½´ÔáõÒãeÒ ªª8Ð2vïîäyiÑ¢²Õ«kÖ–.­˜Ì-™Vèµ--Áà@ww¬¿?½çqBì3UUÃaVŸ«w Ašw~2—€,ç lò,;XTj³@m Ö)M ƒA>ZTÍfa³Ý^8 º-c€Ògzi¥78ÀÂaVSµNd®n7}:õ»$å2™,ËŠ@ÉÉdA#d¢¤ÓYÂóY )ëd2Òp#¿¶µV+i±V«‘aÌ@ºmµ’4m¦(£Õj´XHš6Ñ´ LS”‰aL‹q"΋û[KË@KK?P«“$QTd]H­`,/wNÿA• B¤÷ßomhhÞ²åÐÀ@Êá°®Z5gíÚù—^º@Ÿô¦ª*Hhู€9î¸ÂœMÀ^]`÷¶XH°Þª™ëµYmÉp»º,çãñ´ÞžJ 'Æã™h4 ¥Âa6•Á& ‚$вv¡(‚a(¸¤«DÕƒa(M› Å0 ÄzI’,IƒùU`EQoºi0žëåôQ”ãö•ŒŠ,çÛÛ# ¢ÂúÖÖ H•”8´†@À7o^ñé‡lõõ%_}ÿ¦M{÷ìéÂqì k®¼òœ1^©Q•ãUE@ú œ IDATeYQUUŽóy…ç%YÎó¼$ËÀ?舗¤œ È’”ãy)ŸWÒél>¯¤Ó¢öR'*…ôn±f³Aû¦@<øÓÚ7¨M“$a6ŒFD˜Í†! ýñií-TUíëK¶·GÚÚ"G†ÚÚÂmmáÞÞ¤ªª4mª®öΞí3Ç&*+=ã˜ÇÆó’.­ …@@³½½‰L&«­ ÚÿååÎêjOY™Ëë¥=Æí¦ü~›ËE¹ÝT&#%™!×üVš‰^¿$I ƒç¯Ói^ïAÇ÷ô ŒE¹±1øæ›ßzë@<ž©­-¹âŠEW\±¨À× 9 ôÝݱ‚V èekã„“Ü)¸ì8âµ0~UHQK†e…h4§ãñL"Áÿú× Q‚À**Ü c:|¸_–W@‚` ,óN§Õá°€2 ›w8Ž/9ã‡^!§ÏK7Þøç`0ô|}Þ¼"°0›ÍÝtÓ_<ú7¿¹a27†eÅ[nyôOºIß„øñ_~üñÆ?þñ¦Ë/_8™3 ZC+Cý ïÊf³I=heÚPÿ‰PõàÁž¦¦Ž;;ššÚC!Öh$†\ÌU‹—OÛØÔ#Gú÷»w^~yOq±ã«_]󕯬<ƒG<"®¿?Ù×—2×§€¶>á@¡m0à~¿­¤ÄAÓ¦;;0 ûîw/»à‚9¥¥@8¡ÄbémÛŽnÛÖúþû­‹…\±¢ú ç^xaÍðß!Hdšš:>üðèöííö`ºdIÑ/]Z1qAò \k2i-¨îî8¸$§¿Ò &¼^¦¢Â5SŽ%EQŸ}¶éç?M–•ÿø3×]÷‰ãººbMMíÀSð`Š¢ÕÕÞE‹Jëꪖ/¯<#ð ÍwßýËŠßùÎe7ß¼ ÷årʃ¾þ»ß½sà çÿô§Ÿþ³UU³ÙÜL90 @ @ @ @ @ 9ó€bzd܈ÅÒï¼sxË–Cï¼s8“ÉþúúÚúúùçž[y–è¤o¸á[·¶äó#”*(Šüò—_:…;µf’”û׿Z6mÚûÞ{G¢Ñ´×K¯[· ¾¾võê¼ ¢ؽC!6b5gÄðYýS4—¦ŠÐf Ãé¤&îÎRd8úõýõ`B{HS±'³‹êѹìOè¯é•÷@À4™Šö÷ßo½ûî:;£ÿöoüàWœHª(êI›, ÍšOpPCƲB*%‚åš.e…¹ Žc4m’ š€¢L c¦(#ð Ò´‰¦Í4md3Ðçý“Žò2™ìÏþú_ÿºmÖ,÷† ×^pÁ챿ì8ø»ºb;wv>ÜßÝëïO†ÃiYΡ( Z¢(ë»càà׊w *˜õz™³Ö38 €¯ TÇšüQ³<#C…•ÏÇœ©y ,+9rÜS à8¼ ÀS¿hQÙÄ5q28FÓéAÁ((!Óél2É'“àÞbY1“É ‚$’$ ÊÔÙ+ ‚ …]‚@qGdÈpd³ù‚ÕFÙ›ÍFGQU–ó²œÅ×Çb™X,‰°Zà2$¯w¹(¯—v¹(§ÓêvÓ ä\åvÓ§iŠ×ì¥CGrôèÑpgg(51 %<ŸW4;˜Õj,+sΞíf)Wš†ÃÜ+¯|´iÓÞÝ»;­V㥗.øüç—¯\9{|}ô# ±MMí@Ÿtà@Ž£óç—¬^¨««<ÿüêáî¤ýû=õÔ‡/¼°[UÕúúÚ/yŪUs&n¿GPJ¯8ýÇJKš—ÈèÇQ—HdÂa˜"52å€A2b9N<é+`öÃ^Ž¢ÐA#d4šN$x–å N[‚ÀÀnTUDU•G¡ƒÙd2X,Š2Ñ´Ùn7»\´ÛMy½´ßo+*²ù|6pÎN«ªs` µeË¡ÆÆàŽmá0§is׬©ñù˜©ÞºIE¤ÖÖ¾ÂíîŽí#†¡eeNè ;Š¢F"¬6¤ Åã% ýEëá8ævSZ#S›ÐŒáS|u6Pv5Š]TŸ a³Y uNc6™šé†›ëõ‡h¹ž¦Ín7eµ’6›Åb!iÚh6AQÕ` Pºpý€Ãˆ{AEƬí}Ò›>ˆhÄå3eðVkïiÉ4ZÈI³f¹õ±4`bª7y²1KxõêÀ¢Ee§ðj¢(G"l8Ìõ÷' >á@f`€M$øtz°3Âó²¢|l¸EQ9‡¢¨¢¨Š¢œÈ) ØH’i$I0ŒÙh$H’À0,ŸÏ+ "I9ß:Gñx&›”æ“$a³™½^[U•ÃÐW^ù¼ãðwÁ0ôÈ‘ŸM[ío(” C ™¦«+ÖÒÒsÈDµ¦´uý€_ë°Õ;ÐÁk•  E¹«+öÑG]{öt‡B)“‰¨ªòVVzÜn*ŸWô«iÓà题;ARZ!n±õFø±XãÁrAFY AÆÆà¦M{ß|óÏKË–ÍZ¿~ñ§?½¨¨È~š;™ãÄööH{;pÐGÚÚÂííAP-.¶WW{««½sæøfÏöÌžíóûOw¬ƒe…T8Ì…B©p˜Ó4ôÑ(×ߟÒÔó†z<´ÇCûý6·›.*²årÊÃoÑ¿†¡ £Îl&=º´Ô.ËŠ&×û¯qwЋ׫ç °`Ýü Ê‚ŠÇ3[¶Ú¼ùà{ïEyÉ’òË/_tÅ‹fÍrOõ¦Í<¦¹€þôj)¼Yp  MS”Ñl6šÍGÅ0DQÂ~8NÔ_Ù!Ì墢ÑL>ŸGÃ0GE½óε]T3å-RÈ™ H7ßüؾ}Çž~úÖÅ‹Ë%)÷oÿöçÆÆ †aÛ¶ý¨¼|òÚº¿ÿý»÷ßÿJU•ç…¾Æp~ó›-¿øÅë¿üåõŸÿü´þL*Å·´ €þ––ƒ{AÒF-*M¬9s|ŸèwM‚ íÚÕ T?ú¨+κ\ÔÊ•³—/¯¬««œ?¿d0wwÇþüç­O=õÛMßzëE7Üpþ8Zû§-Ùlîšk~ûÈ#_))q„B©ÞÞıcñÞÞä¶mÁ>h3 EQµ¤.·›*)q€¿²2giéàôX¢ž # ¥¶n îÜÙÑØìêŠÑ´é¢‹æ‚ÓgÁ‚ÒÑOÆP(µ}{ûŽmÛ···´ `º`AÉŠÕ+WÎY±¢zj[¹’”ëïOéÛZ]]±ÎÎÈØCFÖ——»ÊÊœÓêw•o¿}ø'?y¹»;~çŸúú×/9ý€gŽ÷îíæ®]‚ y½ô9ç”×ÕU._^yÎ9ågL$† H¿ûÝ;?üv àûùÏ?¿tiXþÖ[ÿó?7VT¸þô§›**\á0çõÒà¡ßýîžžø† ×NÝVC @ @ @ @ @ rVÅôÈø#Šrcc°¡¡¹¡¡9b].êâ‹çÖ××^|ñ¼i«üþùÏî¸ão#OŒF¢¹ùÓ¿YkÚ‰po½u°¡¡ùý÷[Aš3ÇwÕU‹ëëkOzÇ 2 ñxˆMãñL,–ŽFÓÚ’X,rñxF»RÛ©ÛM9˜u»)—‹r8¬Àº2ƒn‡œñœÔ_ŸLN¤REiÅbé?»FÚ~¸¿LèV;þËEý‘åü“On{ðÁׯüƒ\1\<¡ªêW¾òç»ï^?o^Ñií©,0æz޼žãDŽT9³¬Èq"Ë ¯€a(ð·ê-ö4m¤i3ØÆÌ0ƒE"Üc5>úè-6›¹àEž{nçÏ~öljßÿþ7Þx Æ@DUÕ`0¬ÁÀñÑÓ“Èçpo¹f÷¨ªòh»+•â6X4‹¨6Ûߟһ~H’p8,zã¤>§ÌÛá×1¾«¦¦QVÍîîØ±cqÐô5 ¿ß¦9¼^ÌN7“Âi²‘#ý;wv45uìß,b «ª:êEQA©˜NgÓi‘ãÀq¨xYVH$2ɤLò™L–糂“åBç ¦±>f‚¢†¡(Š) ¢(…|’Ä)ÊDQFŠ2»\V‡q8,eÄqLUU CEÍfe–EQJ¥DàiFÓz8¢¼^FËg½¦ öx˜OzhiSp$·µ…{{“ƒ% Š¢8Žæó ø¸@+V^ñUT¸Á±={¶oâ:tÑhúå—÷½ÅB^vÙÂõë_xaÍT™‘#nûö¶%õçWÍ0&ýšÏ>Û´q㎎ŽÈÂ…¥_üâyŸûÜÒÓ×Õ…Ã\KK¿Î9; 9ò|>è5/çiû,+ô÷§ÂaÈøX0 <ÂZ2‡ÞdívS c2›Ã&—SþùÏ===ñ2b†a¨ª"¢¨*œ’Ã1p’ºyÔq8,N'åõÒåå®Y³Üee§“šqJ»t:ûƒ@3d4uuUkÖV¯œ%ƒ,+vvF@ÔÒ2¨QG—Éd‡´^E3ärJ,ÆÈ;¯?U‘¡2¼À;¯Õ&~?3S”š3 YÎÇãéSÍ ¸Óiæ¢ùÑm0-¸Nß…×÷úõË“I^dQ”ô†z Eô5Aà i±e¤i³ÇC9V›Í\Râ(/w”—{,rfÉåÇÐØe,hï=ây A†1ÏšåÖ—´55EšÿëL%—S2±¿?¹yó¡>hݵ«“ç%·› ü@ÜŸN‹z•¹vp~ýÒKw¾öÚþûîûç\sóÍ«&gÆ -ÿrÿþc èèÑ¢¨e¬ªò¾E‹Êjjüóç»\TÁs{{|p\#hoçóêœ9> V®««šé™Xá0÷ç?ÿë±Ç-ò¦›.øÚ×.d˜Âk£zR)~F×?ÿùk¿ùÍ–¹s‹^ý.и•åüÝw¿°qãö»îZ÷­o­ÃqL“ŒƒN‡V«öö&Àez0 áóÙ>žåÌTUyÏì_ÇÑhz׮ަ¦ö;;öí;¦ªÈ‚%\0gÕª9uuU£÷Î:;£MMÛ··íØÑÞÑÁq ÈèW¬˜]pÍbzR©\0pa0àÅÅvýø0è8L~© Ü{ïKÁúúÚŸüäꉂÊå”¶¶ðÎÀSßÝ3ðyóŠA,ÁгÝî²wÆÑÞùÑ^xÿýàç>·ì'?¹Úá°"ÒÓ“¸õÖ'Ž ?ðÀ5>øÚ\³nÝ‚?l»îºGyé¥oÔÕUMõ†C @ @ @ @ @ r6ÅôÈ¢(êÁƒ= Í ‡öï?f2–/¯¬¯¯½òÊsü~ÛToÝø#Rmí=zM6€ ðË.[ø§?Ý8%[5¡´µ…ß|óÀæÍÍ{öt¡(²bÅìúúÚúúÚ™~Ï-dÁóR<ž‰F9MÚ2¤°´ØG£i½A›ÍârY§^Ùg½î¿Eó±B ÓMS5Š¿Hñ4å½Þ/Ʋˆ-a£‘0™ÈÑýõ@ U¹\þÉ'·mݬ««úñ¯Z¼¸\;}ž~zû·¿ýLQ‘}óæo×7L2àƒëňÚÞ(°%‚]‰pÃÃfÀÞ0›±Xšã„Рײe5Ü™vÔ)¨“g¢(ïß 8è[ZZZúYV$IbîÜ" ïX´¨´¦Æ:fŠ|^I$x­TÅÒ±X:Ï€…±XÌêµA9V§“r8, ªd¨Ì§@Z (íÏZcã82%Gq±]óÔk>…S3¾M7B¡Ôþý=àØ»·;á <õ‹—O•Uü“’Ï+,+°¬˜Jñ`üO$£€ ¨íy>›ÉÈÙ¬\Pƒ (2â †¡†"Š ª¦}×°Z½Û )„$ ¡(šËåe9ŸÍʯ"‚¢(Š"Zu`±%%ŽêjOuµO;žO'€eÅW^ùè¹çvîÙÓe4W\±hýúÅ«W¦U¦?ú¨«©©£±1xð`Š¢µµ%@¢ UUýðö·¿öÚ>UEÖ®íµç~êSóÇbÖ©µ54$ ¯4à&¯¢Âø4ý)Ô)’” ‡¹þþ$0EF"\(ÄF"\*å¢Ñ48tzÞ餳Åb´XH‚ÀUE’rét6çc1.‘Ȉâñ£E ÃQ”ÈæèYFE™@›A«¡ŠŠlEEö’‡Ãa±Û­Sn1ŽèG„êUuÁ‚ÒÕ«kÖ–/¯œVù8¢ªjww¼@þ¨Ò@pVà ?3êÄÓDïˆçi2)ŒèZúðèwòy%å†kåõ‚õQ\ó Dî˜ÖǧMO×|*ÅïGŸ¨­[>‚mòÓ|j0«}ð!wárd(Jska žAkr#:³¿þ\П&g|ÏôD¤R¼Êä`pŒÞÛl­(|55þÊJMO “]:Íåò©”Ëå3™¬ È’”cY!—S8NcA,+JR.“Éò¼$Ëùd’—¤œ Èé´(Ëy5ŠSEQ‚ÀÆd³Y)ÊHÓFƒ i“Ùl I‚aÌ$IX­¤Åb$IœaÌF#a6“e1T`ăa̧6|šÏ+  I$ød’O&3É$¯›ýØ´¾}…ã°o;V‡Ã TÚ¯¶°·7yùåÿ7bßD–ê|´Ç륫ÇC[­F·›²XŒ.—5›ÍÉr µåóJ:Íç•tZT•eEA@ Ų‚ª",+(ŠšÉds9%“Éæryž—$)?úw¡}#@úi³™Q¡i†a4mÄ0Ìj5 ¸ÅB ¸ÙLÎóYŽ8NŒÅ2 e+I9GiÚŒah:•¤\Q‘mýúsÖ­[pÞyÕg†Y’r;v´oÞÜüÏî‰FÓÀPÕUKæÌñ!¢(ê±cqh¥¥[…B,¢ :å>E<ž ‡Ù¾¾d$Âõö&¢ÑÁ~D__*å´¨£‘ðzŸÏærYív _Å0ÇQYV²Y)¼~þëãŒFŒbN®ÓiµÛ-¿þõfÐ--EÑ矿cÅŠêÓÚ¡ÓYο÷Þ‘††æý«åر¸ßoûô§ÏY·®ö¼óªfÊË$sR½Õj¬®öI2gž€^QÔH„í4­Õ4löc­5e¥o;6XÁ¬ÖFÍfsÉd&‘lƒ¿TJ »»ã}Ô5â¶á8æó1¥¥NPyé.G¯ËœN+¼  ¢(õ«wuźº¢ZGDZ?¼§´Ô1 ðÜs;ïºëiЈ"Üj%s9å?þãÂï~÷òIx÷‰†ãÄŽŽHKË`ârsso<žAÄçcæÌñ»\VÇ¢QîÈ‘p˜%IâœsÊêêªêê*/.÷xδȫX,ýÄïÿùÏ[EùÂλóε#ÆzuvF¯½ö‘gžùzuµwò7òô9|¸oݺÿÍç‚À>ûÙe¿þõ—B!ö¶Ûž<|¸ÿá‡o¨¯¯=é+è¯,€”¬®®XGG„ãD°‚V³¨ÆËËgUÉôhx×®Ž;Úwîìho¶`Aéòå•+VT¯XQ=JƒD–óû÷÷‘ý®]àÜ‚¥C2úªiÒ…?M 2•ÁÈ}G†å‚ƒ‰S¾PUõÞ{_úüç—ŸsNÙðGy^zä‘·ÿûw=ú¿ÿûªOúœÓýlc\lmjêhjjß»·[–ó>SWW.BÍè\ÛM›öÞsÏ‹‚ÜsÏúk¯=EÑl6÷ÓŸnzôÑFQ-ÃÆ_¿å–¿$“Š¢%%ŽýëgÒ"@ @ @ @ @ @f PLLÝݱ­[ƒ Íï½wD–ó@Q__»paéØoºkm ÍÄ´åöÛÿöê«{µ›(Š<öØ¿_zé‚©Úª“²gO×Ò¥c\YQÔ]»:6mÚ·eKsWWÌj5^rɼµkçêSóNë„n'rjärJ<žÑKãñL"‘ÑLÇ` Ï—Q‘ÞVïr ‹ÓI9—‹f˜3áfWÈY lj‚ ‚IJ‚ H@g–¤Ób&# ‚”Édõ«‰¢,`5I/Öc4 c¶XHŠ29ÒŸÏ«†8Ôå—/d3EM&ƒÕjd“Éd0›Išœ`“Ñh°XÈIÞ'B–óW_ý›zòyÅb1>ôÐu8Ž¥ÓÙ—^ÚóÁ­e\¸°Ôb1ê÷±Xº  € ¹ì5'£¦ø/pÙkB·›žÎÊ0àöÒdô@†èvSK–T~ £¯ªòŒÅD<¾ˆ¢¬×Öƒ¿D"‰p‰DF[nãX,¤æÒÜ@CK½öN'ï?5 L ÀÕÖÎd²`½RssTUy)Ê8µ[~Êè=õ{ötÅbiƒ¯¬ôhžú%K*&ÿÔ˜88NÔ)ìMd‹¥c±L"‘I&Ž2™,ÏgE1§?ûNŠ¢†¨*ªª… {³Ù`µ-£Õj4›I“‰@DQTYÎ ‚Ìó"ljɤ ½ Š¢n7årQn7íõÒ@Xïñ0.åó1à¡Q¾YÎÇãéPˆÇpkk¨µ5ÔÓ“ˆF9°a  ¦ ³Û-eeÎêj___â _¨«©ñWW{­ÖÌétö7ö¿úê¾ý«EUÕ‹.š{íµç®];ßlž.•à‰à8qïÞî­[ƒÃ%õ«WìvK6›Û¼ùàóÏïzï½#8ŽÕ××^{í¹—\2Tm£ø"1 -*²WW{.,…C àóùÆhÊýý©p˜íïOiÊȾ¾d8ÌÅbi°šÅBºÝ4M­V“ÑH`ªªˆ H‚ %“Ë ™LV¡(Š êð  CqÒj%ÆÒÒÒ7Üi6öí»ÆnŠ¢žšð þ46ß¿5‘È”–:.ºhîêÕ•+gOyLÑø’Ï+==ÇýàÀHÝ¡ÏÇhæÓ3ÏüøIî×˵µЧÚx½ŒÝnöùl>c³ NLƒùŒø4‡»æGZ2‚fÝf³heZùé&š—¤hŠhùm±dúå'•Ëɾ^.¯ïÓ¾|¢÷C*Å °zé*˜'š¾J’„Ãan®×N4¯—9K¼xÃí½--íía°¯´NŠ&°c…ç%Yα¬˜Ëå9NÇ[&“•å|*%Èržç³¢(‹bˆãÁ:‚ ­<Ë ²œO§³àh<Ñ»`JÓf“‰0™ e2 Ð6ã0$IX,¤ÕJ³¼ÑH˜Lš6‘$AQF³™$IÂf3“$‰p Í ÍÛ··åó HŽ©¯Ÿ¿|yå': úú’ÅÅö±¯j¤R<"H¥R|?›Lò±ò«’Iže…tZÔŸ¿áRzŠ‹f³EÑL&«( ÏK²¬Èò˜z+†™LŽc4m2pP­ÛlfAÆŒa(E™p¥(#Žã I’8Øí prM1o±q£i#Šb#Ìï½w䢋æŽqÿ°¬øÖ[^xa׎’”s»)š6%“ú¨Kð ø 7¬Ü°ásý‹,S IDAT^xáÏÛÛ#Ú¡ŽãIž}ö¶eËfMô»O>Ùlî­·¼ýö¡Ý»»Ž‹Ër¯â8V\l_¸°tÞ¼¢E‹Ê@—aª7v¢H§³ÿøÇŽßþvK:½þúóo¿ý⢢5þ¿óg6nÜîrQ/¿|çŒsÓËr¾¾þ´ž Š¢·ß~É+¯|d0àùËÍsç΋ƒ®º>ËD;;gIEE6ÍSæ¥W²¬°cG;ðŒ:Ô—ÉdëªUsÀu„ùóKFù˜É$¿sgÇ®]MMíûöEÙ墖.­8÷ÜYçž[yÎ9eÓç‡ hiCÚµªîî8ø³þkEÅàeÖ9s|£\cÊç•oû™gŸmºêª%øÃ¿¼ÝÆÛõ«–î¸ã’Ûo¿dªFöx^:x°gÿþž;;¶mkÇ3eœ7¯dœw^Ht›A°¬ðÐCo>ñÄûË—WnØpÍܹEMMíŸýìê:ˆ H“"ük_[sï½WMõ&C @ @ @ @ @ rÖÅôÈd“JñÀP¿ys3Ë @RV__{ÑEsG5æóÊ¢Eÿ½víüŸýìÚi{³Ù–-‡n¼ñÏå M›üéôÔPJRî¾û6=ñDãîÝÿÏçcFY“祷ß>ÔÐÐüî»Gb±´ÏÇÔ××Ö××®^€R0È”iŽ<ÍÑdy`6Më]Eza„æó*˜u:G3ŸB 3”|^ù¸¿>˲ÂK/í~óÍ cZ»vÁ¾}ÇZ[À=ö@\Tdç8Qež—XV8Q;œ¦õje2™‹ÅHQF£Ñ@QÇ',£ÉDP”Éj5š6Z,F£‘`Ð~þ¼óΧ^~ù#p¾ øÕW/]¿~ñ½÷¾80úÆ7>uÇŸ±ú;‘ëP>Y•¶0Ï€›õè “É`2†kõÒÉ+d²Ùܾ}ÝÁ`¨¥e`ÿþcÁ`(•âq«®ö×vMÿ‰ƒ§œd’ÅÒ@UÜv@gŸHð‰DF[®?8 üõÀ&¦-q:uöÐ_?F€°TµšE«³3ʲXÈ4U½N©0c3€ÞS¿kWg"‘±XÈÚÚ ©_´¨lÎß©IŸõD£i·{fˆžEQfY‘ã„TJà81•XV‡¹H„ÇÓ‰Ôö›Éd3 $‹d2Yž—XVL§ÅÓ4m²XŒV+IQ&†1Y,F‹…¤(#HV³ZV«Ñf3ƒu,Òf³X­F«•œþÉ1'¢À\¯‰\Á„~€«À\¯˜úSuj?Ë8¢(*Ç @ºð™ŒÔ×—ìíMu*J¦R"h'$n±ÍfÇQÇTA5›Í(Ì@ÈÇA¢èÂk|-ºXæA¼xT[d×MhȨÁš¥R¼ÛMiWjhú$aœ‡õ]}õoxàšuëjÁÎDDe0†>À˜Îfe°Øí#®¦Q̉¢4úà8†ŒFBQT ÃpÍfs}}Éá+cªFŸ@QÀ0&¯×Æ0fQQUlF2)D"l*å4,¨ÑŠŠl>S\ìðz™âb›Ïgóûm}j}½t:ûï<³iÓÞ;ÿ{téÿÀ@êÕW÷mÚ´wÏž. CAÏâ’Kæi9@ ëÝÒ2 †@|ð`2ŒiÖ,>}¡¦¦h:hd³¹––~-F" in³™,.¶+Љ°étÖï·Õ××^sͲ#@s%füã—ÛÛ#+WV (  ^Kߤ(£ÓIÑ´Éb!I’0ð|^‘¤œ d !Ïè¥ó$I€¡!‡D.åñPCƒE”Û}Z¹¶—]öû÷Ó/ÁqÔé¤ßÿ‡'=C§–h4ý­om,)q<øàçOºr$½óÎá-[½÷Þž—Î9§ì²Ë®[W{šBØ HÝÝq½Í¶@@OQƪ*oAÖã íƒh £±X:æâñt,–‰ÇÓÑ(§åŒê»Øf3 Î5-IzhvpüMrÇC½ñÈ#oëGœÍšåyî¹ÛG¼þ~¢Ë‘úŽUÁÇ£¿þì :«EùË_þSSSûðhdƒojºw¢›ëÁ/~ñÃh8Žö׿~mõêÀ„¾ûØÙ¹³Ãé´žš$=ÏlÛÖÚÔÔ±sgÇ¡C½¹œøëê*—/¯¬««*.¶··GÀe2Þ òcÆ\S㯩ñþE‹J,(¶?d:5x^Ú¸qûïÿn4Ê}æ3K¾õ­uUUAŽ‹¯\ù@>¯ ˜Õjzá…oÌ›7“êîßÿþÝؤïà8¶zuà¸ñtÚo£#I¹þþ”6¾]0ÆÖ1ѹ²Ò3qÍ¿SN'- §'ñá‡Gwîìhjêhk çó;ƒF""ò½{íÝÛ½wowggDZ@À¿|ù¬eËf-[6 r€v銖Á Âz0QZêPõë_ÿÛ[oíÏçUG·o¿·¤Ä H>¯¼øâîÿýß·úû“_þòÊo~óSÓjü§«+ÖÔÔŽ«ÖÖ†¡à"Ôòå•àW §ö²Û¶ |=¾[; öþð‡Ïíßßóå/¯Ø²åPooRQFºÄ0ôÕW¿µxqù¤m@ @ @ @ @ @ Šé!)$ŸWvïîlh8ôæ›ÚÚ yÁsêëk/½tÁˆ÷ÿ45µ_}õÆ•”Ø{ì–ÚÚ’Éßæ“"Ëù… ïÑnúBÄ`À¯½vùÿþï¦p«NDGGä–[;z4¬ªÈƒ^{à +†¯s›7lhhnl Š¢ø×¯?§¾¾vÁ‚Òq¹A™‰ˆ¢¬É¼4aD?"áô73a„&‰ÐÓàŽb0ëvÓ8ŽMáç‚@Æ…––»ï~჎" L^Eï½÷ªÛn»H[’ÍæDQJ¥€NfYAs‚ y½ H,+f³2ÏK'f³¹L&›N‹¢˜ãùl:–á·ÃPš6›Í“ÉÀ0æ«ß€Ž0™ 6›èÞl6³Ñh0›W6› ÿûö ^ÕŸÅàã¬\9{ÆkS¼ÏyD€ƒF3â¸ì‡ îõÂ, £‘0p‚À¼^[‰FSàéžÈesûöu¹FKË@{{8—SœNkmm Ðj,ZTVUå9ãÃ6´€ð€2_›ßÅÀ@RßäCÄh$†¼ÇwuAÉ‹úêV½L¸9€;Ú½šIÁëeÀlY™sF4Jõžú¦¦ŽTЧ(ã¼yŧ驿뮧»»c6\{Êþ…iK>¯Ó®vÞõ÷§ÂáT8œŽÇ3Édhgy^i {äãc?(Iân4 ÇQ Cs9Ô/Zá_`hµÙ,~?Îq°ÄãaÀ·öÁGÿýßO§EEQËÊœsæø::"Ñ(§+%Ž×‰$Ix<ôüùEK–TTW{+*\ÕÕÞ¿ùDÐÔÔQ^îܶ­õškÎ÷F¹×^ÛÿÞ{GìéïO%(0kM›9N¤\e¥·¾~þõ××…¢¢Ço¼ûîAQ¤¾¾vÅŠÙÑh:Ji"]ÍÁ‡ãØH’o!I9QÌe³²¾Ö#nªÁ€“$ìÃN§H$H´¸Ø^Uå=/ö{ïùÒ—þ¤oÿ úôÓ·^xaÍ©½àäÓÜÜ{ûíkm ~õ‹/~c”5%)·cGûÖ­ÁÆÆ`ss/†¡çŸ_½fM`õê@mmÉDTv’”Ûµ«såÊÙãþÊz8NìèˆhZà?‡A`UUÞš¿^ëSTd—H¤éŒ,çãñt4š…ØX,‰p‘‚ 6KG£ií4p§“r»)ðávÓ^/ãrY=Úãa@ ÈŒ¨¸§UUA^Kpúµií!ðÿãÄ`À‡lòfÍ8Z¡úÙ¡ ó$´êÓé,Pɳ¬É úåS)A$ž—@l ðÎsÜ`Íäò™Œ8\¹ˆ ˆÙLZ­¤Õj´Ù, iµ’‹Ñf3ƒ‚¨ö)Êh±‹‘aLeëLs‡ïTÌõZc¹^?´U0®U`®÷û™ •Ⴓ£Ài® &hÞsQ”µN´– §ô¤®s½JÞhŒ8ÊçA3™¬ Èéô ­Þl&ý~[i©£¨ÈVRâ(-uÌ™ã£ióD«ä? Pp,ÖxAB¡Ô‘#ý­­‘H„ÅqÔå¢].«ÓiÅ0lDkü‰NÒ4k<Ø!`ÏhŽ~½…¬ ™úG\M{ýj'zëë®ûýöím¹ÜñžM›ŽÙÍæ†‘ŽQ r, Ìd"QÍåò™L6“ !KkqkîvÓÅÅvŸ)*”×Ù}>¦¸Ø~¢¬‹ææÞ›o~´¿?… È}÷]}óÍ«‡¯ lÚ´·¡áÐÁƒ=V«ñÒKÔ××®YË (ËùööH08 Þ[[C‚  xq±„Eaý¼yÅã[f¾õÖA«•\µêäÊÚt:ÛÞno=nk ··GÚÚƒ¢èð + P¦!"I2ÏŽOj’$<×^/ ä×.åõÒšÛãa(jb;q_ýêão¼q  _ó׿~míÚùú¾§É–-‡¾ùÍ¿§R‚ÇCïÝû“×QUµ¹¹¯¡¡yË–æ}ûŽ‘$±jÕœúúÚuëj§•s¢9ãô‰DXæc±L$ÂÅbi ¡DXm¹>LÈn·¸Ý”vƹݚkžr¹óA§g\Э·>ñê«û‡ »,(ýÇ?n=ÍïK¦^mim¶“úëõ#ZÐ_?‘¤ÜM7=ÚØ1Ë`Ào»íâþðÓº 7Üð§­[[†o†¡þ·¿}m,ý„²Âý÷oÚ¸qû=÷¬ÿú×/ËSTU C;wvëqWWÌ`À/.¯««ª««\´¨lÄT TŠoiØ¿¿'hi8x°W$A|>ŒùƒöÕéÇÓ>üðAï¸ã’I@>²œùå=¿þuCggôÓŸ>çÛß¾ôÉ'·=õÔ‡ ð!Ìj5½øâŒqÓwvF/ºèÁ‚+­8ŽÚl–·ßþÞèßûDÍæz{Úß±cñÞÞDoo²·7ö0Žc^/SZê(-u””8Àu±òrgi©ó4v¶l9ôÀ›Þxã¿ÆØM¥ø_ýªaÍšš‹/ž«ªj{{dÏž.M®ªje¥§®®ò¼óª–/¯¯ø|ÌâÅåK—V,YR±xqùD·´Ï<@2™– –G†@g \Ëfs µBغu ~ô£+·mk}øá-‘÷Õ¯^xÛmi9gãNÒn·œfCŽãĽ{»›šÚ›š:víê ”·ÀS¿xqùØGéo¾ùÑmÛZï»ï³_øBݤ5‡r9åÑG·>ôÐÙlnÄ AǪªÜ[¶|ïŒÿ%@ @ @ @ @ @ Ó (¦‡@¦]]±††æM›öîÞ݉¢èÒ¥ëÖÕ®[·`Ο¶Î}÷ýóÑGe9㨪"wݵ.†6«ï}ï¹gžÙ¡¿üÙgo_µjÎnÒˆüå/[ï¿ÿŸŠ‚äó †¡\0û™gn×mm ½òÊG@q‚a芳ëëkëëk+*\S¸ÍÈÌè½ôãuöú§ŒEj¬)P!i‹$åV®| f $e(Š>ñÄ¿××׎ïÛ 7Ði~ºTJÃCü(Z:ÝÆ#±|ù,à=4M9–èô÷ƒQ”i"ĬúœLfÞxãàÆ¦ÓÙÒRÇg>³t$ÁýŸÑh$L&ÇQ’$TUÍfs<Ÿ•¤<Š"n7]Râ(+sΞí]¸°´²Òc·›ív«Ñx†{W?)Ð_? HR®¿?¥yê5WWoo”0@¢§yê5SpI‰ƒ ¦ï>ìêŠ55µU=pÖдiîÜ"ÍSøÆbCX½zC{{ð[nYýï\v6Wõçc"Á÷÷'C!6å¢ÑL"‘fY1•x^EI’òcÂ0 ÇQ ÃPAQD–½ÚÒl&½^ZQ”žž$‚ àeq}òɯVUyNëûï·>ÿü®ÆÆ ÏK^/Ã0&A£Q¸Aõ‡.+sTWûjkKªªÜã›»ðÜs»¾õ­¢šLä/ùÅ«®ZrÊ/¥(ê±cñ`p §d08Ú´†–•9KJ6›%—Ë ¤ZZú%)_Qáºà‚9V«±¯/ÑØä¸lMÑ¢ÒÒRg&“D¸ÞÞľ}Çô"HA EQUUòyµÀ¼<"„ÙL2Œ‰aÌ>SVæt»é¢"¦¸ØávÓíÌE$—S-º7™äµ%v»åÀûgD‘žË)<òöÿüÏ›‚äó Aà-- d1ªª8ÐÓØܺ5¸kW§(Ê –®^X³&°lÙ,‹e¢²œöÙ¦‡zÃj5mÛö£ñzY½ü±ÀiµAn„¾f).¶ŸyFYÎ÷õ%µ^j8Ì‚>¬fæÕ7#QõzéQâ:`sQO.§Äbœ¾eìÏúÖãèÍuƒw:­BI}dxÕD| ¶òËK,+d2ƒÓ©&2™,Ë -†ã²’c²Í` †1™ÍF‹…¤iM-#(½)Êh± ÊåeLƒ Š22ŒÚ3'“L& T‘³±X&b#.ãÀ„þ¸ÉãõÒn7åõ2m2Ünš$ «•”¤ÏK²œç81—SXVÈå”LF®yž—d9Dzb>Êg2èù¦ÓYYÎkÊï±XHƒ°ÙÌQ” HÌ)ÊÒ Âb!ÍfÈË1×1›I‹Åh0`6›… 0Š2šLäèåèžèBÝݱîî8hú| P{ƒŠ#ðWW{Gï•d2Ù\.v‚¢('"²‚ª"‘àÁqâ¯À ÐL{<ô¶m­/¼°EÑ|^AQ´®nÖK/}¼¬ªª;wvlÚ´oË–æ®®˜ÏÇ\yåâuëjëêªN³ÚÍå”ÞÞħ~ «+väH$ÂÏøjj€ªÞøË˧\÷»Ïþýï®^¸÷Þ«, œ–å|WW¬­-ÜÖîèˆ=èVVZêœ=Û;{¶·ªÊ[]í=Û Ò¬³Ù\r` Õ×— ‡9ÐïHõ÷'C¡”$ vÖ@2†¡$‰¡(*Ïf[¢(bµšV­šS^ît¹(‡.l§Ó: Òù±pÏ=/þíoh— ü²Ëüñ7MéFË ßþö3¯½¶E{Ço¿ýÝyóŠõ+¼õÖÁ-[½ÿ~k"‘ üõõµõõó—-›5%=¦|^yé¥=²œ»þúó'ôx^:z4Ø# èiÚTYé™Aúu"t££kÜ’$QTt|,TÕú×”V¯þY[[X¿DZU«æ<úè-“S Êr^WU æ€: T^ æ  š6¹\”ËeÕ…ÐCaƒ1~SU‰RB!vòEÒ“ÉóÏïú¯ÿzAÅ™Íäž=?ž¸BãèÑð…þüDª(ŠR”éÝw¿W\lŸ  8)¯½¶ïûߎe…|^­¯¯}â‰?Ñš’”Û»·x´÷îíŽD8›ÍRWW ¼Æ ”žòaZVÁà€ü <Ý e$ð-ZTVSãŸ7¯ØíþdêçoüKCC³ËEÝ}÷•×]W7…?åüsÏíüíoß>v,†¢¨þ€yT3ÂM¯ªê5×üv÷î®áa·/]ZñüówL“KKŠ¢F"ì±cq ©ïíMôô$Ž‹wwÇ@GÃPŸÏ$õàjBY™ähž´q üèG fyýõ»/.}}YÎ?þøû=ôF&“]±¢š ð}ûޱ¬@Øüù%C2ú*¯—þ\Aî?x°÷àÁžzî—¤œÅB.ZT¶dIù’%K—VLarf“Jñ‡õç;ÿèêŠx‘…¢ŒsçÏë×FÂ++=ã~©ñᇷüáïÞygý7®—œ¡\Nik ƒd‘¦¦Žîî˜Á€Ï›W¼|ye]]åÊ•³G—ìÏŸw2É£(ºtiù¯~õ¥…(Œ;ÁàÀÚµÿ£¿È8ǾýíK¿õ­u“³I@ @ @ @ @ @(¦‡@¦±XúwoÙrèwg2ÙŠ ×ÚµµëÖÕ®X1{ÅŠŸöö&´5Q=Jßÿþ+>Ÿm 7x8~ØvÍ5¿Õf].jß¾û¦•Eše…»îúÇ›oЀïÛwßÁƒ=›77Å E/¾xÞÚµó×®ïpX§pƒ!3 3ÒÜ@‹¥Á¬ö¨þ)eЧÓêp þw¹(—‹r8,`Öá°N“[¦!g'üã{÷ßÿÊðÛ›1 3ñ×_ÿ¯šÿ”lØ(hª÷½{ÝvÛ“²œ¾ý ;§²Ò=Üng†+ Àÿn2À°c4vûàXb2£ÛíGÑ/¾ýöá{ï}±»{ðfrŠ2ƒ?¾šªª,+¤RBOObϞΣGÃÑÎÎX,–Î烧i³ÕJ „ªª’$s\v¸õEQ†1_¤Õj¢(#M›ÆLQFŠ2R” ˜"iúø c¢ió´jM ç¯?›£Jd9§õJ/`ø:z4¤¹m6‹&…ÔÄ^UUÞé ˜Ó“Ï+G†÷ï?<õôˆ¢Ì0¦ššãžú‹Mž—€Óß`ÀFÃ÷¾wùÍ7¯š ì)$—Sôg_4Êõ÷'Ãa.KÇã™D‚O¥2ö¹±øÐGÇ`ÀÝnº¦Æ7{¶Ïï·y<´×ËX­$ÏKÙl®·7yøpßÑ£¡cÇ¡Pª *Á0Œ¢ŒàÐ ü –VVº««½Vë'8†³ÙÜ“On»ÿþæóƒŸEÑüàŠÛn»x,ŠíH„;r¤_Ѓ}}I°à(¶J ^­¬t“$ ÏK½½‰P(ÕÕÛ³§«¹¹·³3ÆqÂð8 Œ<)8Ž‘$n6Æl·›].ÊëeŠŠl¥¥Ž²2‡ßomà±ï–‰ãî»_xê©Á."Iü†V>ðÀç¦z£NNssïí·ÿ­½=’ÏkJ)ô©§¾vÉ%óéëK¾óÎáÆÆà‡FÓ~¿míÚù«WÎ;¯zDÙÐ8’Ï+/¾¸ûÁ_H)Šj0à}Òº¤)èô--]]Q JdsM_;’§¹ò“"ËùX,¦Ãa6KÇb™p8‹eb±t$ÂE£éX,-IÇ•‘‡¨¥Ýn g¥\.Êë¥AÓë¥Æ<…gjm‘œòǰNš e·[†‹æõK´^À8Ú9³Ù\2™)ØN½%x‚W*Å‹bN¥¼€1_ïÇ×z7Þü‚^ÏLWŽž pœ˜Ï+©ðÂgÁq’Éd5›<Ç ²|\ŸLò™ŒgDQ⸬$É¢(Ër>—SE½Š1iV«Ñd2X­F†1‘$AÓ&âÿ³wÞaRUwã?çÖé}{§,»€€4A@Ql`G1¯š¨¯ù[‚½×¨ÑhLbl±'¾‰%ÆžØbä HßÂö™>sgîÜöûã°—avvYÜ ~?Ï>ûÜrî¹çÎÜ9íÎ|¾ e³†2› d°l2ñ,KÛíF–¥ÍfÞhd»SÒä¨A‘šõ$+&íœ IDAT¥_Êxb}mnF"B0˜ˆD’$œBċͰ,Ͳ4M“XG Æ£ûˆû†ei“‰ÇÙíF„ö:ßyžaY:OoÞÜ:–Édú«¯v}ôÑ–?ÞÚÙq8L TwÜÄN˜”N+Ӧݩ?\ (¬ièâ‹ÜqÇi£*ˆËÒ¥¯]Û@Œ™ǬXqÜ5ל8ˆùwûë÷±Õëòú`0á÷Çxfø%£‘5›y£‘#£6EQ“I)Œ÷wœrÊTMCmm¡º:_<žª¬t/]:ó„&Mž\:¤ó]]±gŸýâù翚3g,ÆhçÎΖ– ªjG_8fL^uu À0aBQ?Íø'Ÿüð† M4M)Š6fŒ'?ßÚÙmi ’žg~¾uìØüªª¼1còƌɫªÊc*ˆ“1¾×­¯÷µ¶»ºb@\’ötVY–bc$ËŠî£G1 v»­v³™D„ÎÎH0˜0›ù3*N:é°>Øüõ×uz—ahž§~ø¼“Ož:Ø/ä ðè£ÿþ÷’®™”ûúë[\®Q1êéÉ·ß6\~ùÿùýq]³È²ô 7,¾âŠE›6µ|ùåÎÿügËúõM….¬9þøI T`lYVßxcÝC}ÐÚ<ãŒéO<ñ³AÉö€ô{§ªFÕèã@¥óV«¡¨È‘e™·ÛݳšC?i” ªÚ˜1×gVD…O>yêcýtTµ‰!IRôFJoªÈlX0÷ûcÄhŸùþ ¬Ëeöx¬Ïž‡’z$—ËìrYòò¬£!Læe—ýß®]Þ_ý긓Ožz¨> âýëWO>¹RåžB[–¥ùËE×_¿xˆÎ~íµÿøç?×ô¿ë®·0Æ%%Î[n9åÔS§ ÅÐOQÔ5k?þxë'Ÿlݱ£“ã˜yóÆ}þùެ&MS'?õÔ…••žA/Ã#+„ðË/_zôÑF¤$‘ˆÐÃ윌D„]»¼[¶´+ŠÒ³ÃLQXU5ŠÂš¶§D‚1äçÛJJœEEv"—$¥¥ÎKôTU{ë­õ·ÝöF8, „¦O¯ø÷¿¯B¥Óò믯»öÚW0F……‡ÃÔØèO¥$–¥‹‹D«ZQá®®.˜8±ÄdâZZ‚$¢U¦%S? qªNœXrá…óJJœ²¬vuEëêü»wwut„½ÞH0(ˆ¢¤'¦(œè‚¢(»ÝàñX $vŽÇcÉÏ·o2©=²&”6on}÷Ýï¾»©¾ÞDztÖü9±Öþïÿ.¸óÎÑV!ô¬¾öÚWÈ côÇ?žwÎ9³FºP9$åÁßÿóŸ?EeV ãòr§Édض­Ýj5}ô„㎛´hQ­Ûm¹Â"IR^}íC}ÐÑ&ß™:µüý÷¯> L ±¾Þ—5ï”) ·Ù ••£Q@¯Gyôz£¤3Ij¤Þ¤ó6›¡°ðG-ïÍÍ9sîÕW1ÆË—uç§÷hö  ·fK_ â™2ÈÀ!sFZo’ÕâbÇNì,]úè·ß6`Œ=Ëe—{Þys¢y¤"_xá«GùDĬ9I“‰[¿þ®¡&çõFgͺ;kr’4š¿øÅÂK/]8R»,«O=õÙƒ¾Êjß¿üòfYV׬i\½ºa͚Ʀ¦EáÉ“K‰¡xö쪑Òè{½‘;½;vt’Éÿúz ]U•§?³#=+ýh4Y[{«>-FÓ”¢¨s玻çž3'N,‘«3fÜ•sè4úÝô¡PbÞ¼ßD£9fËBEišf4²ï½wuuõ¨‹°ÞHîóE3»â >8 !Äól:-c¼·ÛFÓÔyçñÀçÕP(±vínýù”×%Óû™“ücÆä}õÕ-š¦UU]ŸN+…ÝnË 'LæyfóæÖ;½‘ˆ€1?¾€D_ aFês÷c¦³3²téc­­¡œ_{p»-ë×ß•9J§åŽŽž²Ÿ®fN­——»KKû ï±téc«VÕ“eš¦ŒFö’K._~ôP4[‚þþûÖ5kW¯n\»vw(”°XøÃ¯˜=»jÊ”²#ŽóÁß_sÍË™•MSùù¶ßÿþ' Ö zyt^|ñ¿7ÞøÏþÃfêðÃ+ÞzëWu"@L£YV¿ý¶á÷¿ÿ`íÚÆž¶ÖÑ©¸çžwžyæ òã®÷Þ»zÚ´ò‘.BišöÄŸþö·ïaŒz¾’ CUVzî»ï¬#Ž;z^Iú$)Á`"JdüB¡D(”…²‘lÉ<ÊhäœN“Ãar¹,.—Ùå29f§Óìtî]p»-‡ªÄ .¿üoo½µ¾ CÍŸ_ý·¿-ßﯔ‡EQúÓ§¿þº®7+=áÌ3g<þøO‡¨ ûJñr+ìC!áë¯wíÜÙ™s,“å©Ï„a(«Õ`6ó&Oü’›)š$ ú.bÓ#‚!ƒq¹,ýì!è‚ur-™¢Oýº²\ŸY.B¦ŽŸ(ô"éÆOý*ÈFƒµÙŒ‡ðï´UUë®Ï÷Ôö@"Œ“z^¯ÿ‰ENÇlæ].³Ë•Y½ïSÛ“]Ë@5v£œTJÊô…57:;#>_´¹9H>5Äò¯ûˆã¯¼ÜÝÓ÷=@Þ|sýWüíÈ#ÇßpÃI³gé;q"!~ÿ}ÛÆ-76oÜØÒØØ¥iZe¥gÊ”2EQþóŸ-YÚ†¡E]ºtúwœž—gÄb™üû߯¼òEIRs6…n¾ùÔx<ÕÑîìŒtu%"AÒÉdZ’dEé¿È³,m2qv»Ñí¶X,¼(Ê‚…‘H2‘H©ê>‰Íf./ÏZZꪬtG£©/¿Ü &zÏaŒ(Šª©)t8Ìuu^¯7ŠöØ]ååîêêª*ÁÀr ­­Á­[Û[[CÁ`"‘%w$•¬ò3 E.ÊJJœ®ÊJO^žµ«+öý÷í«W7nÜØ,Ijo~Œq~¾í¥—~Q[;2®¥EÓ´™3ïîè#„ŠŠk×Þ1š[¥ÆFÿå—ÿ}óæ–œ>”ü|«Ãa>ê¨ê ª T^î./wõÝ‘¸ùæ×^zi•$)$HUi©ëÚkO<묙C™¬¹9ðÉ'[_}ÝÆ-=߆¡X–yðÁeg5sˆ p œ~ú#64ɲŠ1Þ¶í>›m´ÌpªªöÇ?~øðÃÿAõ P.,´Í[NK‘P( ¡ wŒ( o¦þ.0 EºÜ……¶²2we¥‡Èë lû V§(êK/­ºï¾G"I}cq±cíÚ;ÉòóÏyÛmoè»fάºêªãY–^»v÷† M»wÚÛC‚F!„IÇžçYrÛl†7ÞX—uFÝkInp½¿Ç0´ÕÊØHì®ÂB;QÏçåÙ<‹Ûmq»Í?¸wýÜs_Üyç[9û½4MM›Vþì³*]æçŸï8÷Ü'B,KÏ™3öÿ¸l¤K”ƒ†ÿ%—¼°}{GÎꚢðÌ[²ä°ÑðØ1•’ž{î‹Çÿ$%Cé=w‚Ëeùþû{r’9âÈt¼ö& ïžJ™¾·,«@,§t¾ïHçÈgŸm?ÿü§È2Æøæ›—üò—Çl‘†2Ѻï=Í °JBÄé黣^í½ß²¢«ä³3oÞo»È2ÃPáÓOŸvå•'Œ—?—:ú„ôK/­zä‘‚Á„Éa¨ë®[¼bÅàß~<ðÞO|"I{»á .˜wùåÇ;ýtýä»ïš¯¼ò¥†Ïˆ¢(·Ûì÷ÇX–ž2¥tæÌªÙ³ÇÌœY9 §Ê£ÑÔöííÛ¶ulÝÚ¾m[ÇŽdhP\쨭-ª­-ž8±X–Õ+^Ì:Ppûí§çç÷uýþ÷üéO÷ö u”»é/»ìÿÞ{oSÖ#š¦TU5¹Å‹;çœÙG9n´=¿8ápâùç¿zúé•ñ¸Ø³?Œ1v¹Ì,K“Èjªª9¦ªª¼®®XKK„CÈLOÓÔ?þqÙ† M¿ùÍ¿3·³,=}zÅâÅS¦M+«­-†¯—Œ,MM³ÎzÌçË{¬CQøO:¯?ƒ÷œáÀëê¼d ¨Ïfè!À{Nh̘qWGG$3Ï =ý¡§Ë²ºeKÛÚµk×î^³¦±½=L¾f f-D†;ùä©÷ß¶Ç3øWøüù÷ÇbÉžÏ;rBQøî»Ï¼øâƒ^zbz888唇7lhîíKÓÔ„ …Ï>û¿••ža.XN¾û®yÉ’?"„Š‹kÖŒ ](”øÕ¯^\¹r{NïÁdâ·mû͈ë!jtgt¦$"ÓAÔx~,³ÆÐµ=e%™†¾Q¥ï†AHßsÏÛÿýoC}½OQT–¥eYíÙ|Sué¥ o»íÔ)doÜsÏ¿ž~zeOƘa°$©4M›?wî˜Ûo?Ýd↿„é´üÌ3Ÿÿñ¥ÓrΟ‘³,ƒ1*+sUTxJK••žâbË2¢(Åãb"!Š¢‹¥AL¥äx<%¢(ÊÑh*™L§RYH§sˆ/BÇœÝnäyÆhäl6Ï3&o± Ödâ¬VÏ3f3o±ðDwh6ï]ày¦o©šz3×÷¢Í­éÔë+"̬£twg–oÔí¶2Ì¡cšP•D"Ñ-öÀÞ˜%áðÞ°%™7<ËÒ.—Ùá0e ë]®=«ú®CÌÊ‘NËbRðz#^o”HÇZ[Cäõ!VÝS¯;ŽKJœ?ì¶yôÑ÷»÷5MSmöì17Þ¸dîܱý<6MmÞܺqcó¦M­64µ·‡sÚßX–¦iêŠ+Ž]±âxèÞ.²¬þú×o?ÿü—¡>Ƨ¿ùÍY\pdo™šÍëµ·‡:;#mm¡––@KK8ŒÇãb2™N§UUû»0Æ#ŠÂ4M•¢ìÿ¨\ù ¢"‡ÝnL&Óñ¸˜H¤Ói"Ðï++ŠÂ<Ϛ͜ÅÂçåÙ«ªÜEEö±c ª« ¬ýwØ%“éOüC]·ïsÝ|ó)W\qì]Øqï½ÿzæ™/Ò–/?z´õvt4M{î¹/ï½÷_ªªõæ¦Á¯_WAm8Kõïo|à÷ý£ž73MS³gW±,ÓÔÔÕÖ’e•¦©âbGe¥§²ÒSQá& ••žéªõIRÚÛÃDáG\~™zˆHï’‘Zöé ‡¼22KÅã©htÏÿX,&#!ME£Éî¿”þ?‘³r0›y«Õ`·m6£Íf°ÙŒÝ»Ý”µ‘ôrû.R$"¤RRVø¥Ìþj/ÛswYBÇ8ûôZ3ã0ev\{n?$ßôQ‚¦e âÕx<%I*:‘qYH§åD"-IJPI$Ò’$wûš{Åf3`L9FŒ±Íf¤il±ÈÈKWÆSåpiš¶XxâL7™xŽ£‰MžØçÍf®çíñÔñ™)3“¡ì€jéÞîð,~°2^Ó´dRE)È ‰$“Ét($]zXÿLeFæÈÏ·é³XûÕsºâmçÎÎ;½MMúz©Ó8Ž)*²g…ZÉ”»uÖãÿýožEaMÓÆŽÍ¿þúŧž:mˆ ,IJmí-½ßÕcíÌ3g<ðÀ²a‹jÓ+Wn?ÿü§5M«¨pÿ÷¿·tqöП‡5ÇlÛö£qo—Fåp8A¦Gˆ0Dss°£#'C¡DΤßn³“Ûm®¬ô”—»++ÝãÇ–•9?þxÛ­·¾ Y£‘«¯€,ßvÛd´o¶”ªª!Ž£óóí ƒeYIeQ”e¹×ÐS:4)Š:á„É?ÿù‚ª*ÓiÒ0B—\òÂûïoê‘À²´ÑÈ=ùä Ö ]ˆmÛ:-z!ÄóìgŸÝ0Jž~fòì³_Ü{ï;ªŠúP<óÌEK–Læ‚e‘L¦ŸþËžJzÆxÓ¦{ÚÚ‚} èd¸1Rú•Γ¦¤óÃÃ3Ï|~ï½ÿ"uË}÷uá…óFºD£ˆîé¯Ü·n$’ìè 7!ó)dΠk‡1gw®¦æ–h4™¹…<™:昚K.Y¸`Aõp\í°“Hˆÿ÷ß<ñħ$¹ªjN§iݺ»÷Ó-éiÓîŒÇ÷RRUõ'?9⪫N(-uâYˆDB¼ÿþ÷þú×/)Šêå1=iRÉí·Ÿvøáå]]‰;vtnÚÔºsg玛7·¦RRO-8a(š¦~ùËEW\±hØ®TÒӧߦúHC¢½ýöбcGWpˆ>ÚrÑEÏéSú4M©ªÆqôÉ'O=ýôÃ:jÂ~ç…R¾ÿ¾íÖ[_[³¦‰¢rL·"„(ŠâyÚá01 JI@BU÷"Žaè¬Ï ‰—VXh¿êªÎ=÷ˆCìIâÁEss`éÒǼÞhÑþ( ×ÖôÑu?ì’¤´¶››ƒÍÍææ`KK€,ëÁ’ÝnKy¹«¬Ì]RâÌù „MS&÷‹_=¤zzŽŽðš5·Þúz ;¢3ÃÐÇÜtÓ’‹/^0¸ÓGñ¸¸jUýÚµ«V5|÷]s:-ó<£ªZVœŒLxžY¹ò¦Š ÷ €œ€˜‚ÁÄ”)·÷í×cŠeéßýî'K—ζ‚õÁœ9÷67®¹æÄë®;i¤Ë‚¾ý¶aùò¿F"B?j"¼úêåóçžR0ú‰D„žÂú,gb Ïúdùë3…õD†BV=+üùÐFåÍ›[6lhÞ°¡iÍšÝmm!„Ï3’¤ê¿fä‘óÏ>{æˆs/ÿüçš+¯|‰,SŲ±ù;gÏ®œ>½òðÃË'O.A+Á¿þõÝÝw¿ÓÑî£GDÓøøã'?ÿüÅ9ñ0¦RR2)‘Q”3ÝšÄf&EQJ&¥HdÏB4šEYÒÄ̘3s£‘ãyÆn7Û ÍfäyšØíyž6› &ÇóŒÍfÔíœÇ¬Ífä8ÆlæÌfC– ¼Osý>zPRÔTJêêŠ÷,a† 4‡¹žTkD˜¨We‡ù`UdŠí^Õgy‚vÝ¿$)Á`\÷Ô+™×mm êF»Ý¤ "ɵWT¸ÇŒÉ·Xú20Þp민²š8;hšRm„‚k®9ñ”S¦PD«9sîinö¶c„./wßÿY£Ç¬w°ã÷Ç–/ÿËÚµM}›Y0ƳfU¾õÖŠž.‘»ºâ--ÁÆF_ccWssÐëøýñX,•J¥%IUUÓÐ~…? ŠÂÝêy>?ßZ\ì(/wWWVUyÆŒÉ÷x,ƒó@Ó´ÊÊë÷;VEÍšUõ·¿-·ÙŒƒrÞ¡cÛ¶öE‹~‡úä“jk‹Fº89è쌬Xñâ7ßÔõ=ÍBQøá‡Ï¶ÞÚ¿þõÝC}°k—¯7GBˆã˜âbÇñÇOª¬tWTx*+=ee®›Ÿzêó'Ÿ¼`”Œ/TUóû£™-©®ÞëvÐïÕ”cŒóó­Y h–ƒþ Ó¨õ„t/‰\žøåãq1MÆã©p8ïÝÒ &{NÚÛí¦n•ü>BybŸÏpГƜýAH“ ñx*™L B:I B:™”‰T,–J&%AHG£IA“I)c±T2™N&%]Nš…Õj0™8£‘³ÙŒ o4²&o·M&ÎdâÍfÎfÛ³l±ð$±ÉÄ[­|Ïž-ÐdYM$R=eëºB]ïü÷– Kž_Á:MS‹!Ó«žSªž< 7뺞‰(Jè`VÆë»B½]&Bh¨C)è“Wºª›,Z7s,CB}ôa®%³U’¤´´ü þÝ»ý ]þ¶¶ióó­cÆäWUåUUyþüçψŠ4b®œ:µôÖ[OŠ©þ¯¿®[¶ìñ¾Ó°,íñXžzê™3«½Ê©§>¼n]Ó¹çÎùýï2ÒeA¡5kþó¿ì÷a Æèùç~≓(ó@  &xWW¼½=ÔÜìèˆtv†D4šL&Ó¢¨ôsø@Qè¾ûÎÞ½»«¾ÞÿÕW»’ÉýØ Ð4EbºÝ‡Ãl6síí¡Í›ÛúxÏ0”ÝnºñÆ%ÿó?G ]³(Šrmí-9Åý:Ei¼˜ò IDATšvùåÇÞtÓ’ÑP„B‰I“nCÝsÏ™?ÿùQ#]œ}W_ýòÇoíû[ C/[6k?zDIÿØcŸÆb©>Fñ C‘–‚ã˜ÒRgY™«´ÔUVæ"Ëåå®ü|Û O¥¤`0áóE»ºö|„ýþh0˜ Ë>_,LèŸA†¡\.³Ûmq¹Ìyy6—ËLVóò¬d#YºÒYÜ|ók/¼ð5Mã?üáÜeËftq2E%·z0˜ðûc¤ @Œ|‚Áx ȜɷZ ÏÞ»Ý㱸\–{îy;gmD¤ÉµµÅ—^ºðÌ3g’ƒ/Q”_~ùÛGù¨³3‚º÷Þ¥_¼`óÿÛß¾¹ñÆ’îå¢EoºiɤI%ƒ˜ÿòùç;®¹æ•®®Xßý¨²2×·ßÞ>l¥:R)iÅŠ?øàûÞbÀ „( »Ý–Ûn;õì³gikExýõµW_ý²>Âbš¢¢¨Š²Ï‡¦)‡Ãøæ›+Æ-núd2}ÔQ¿moÑ4±¦(Úœ9cÏý´þ¡‡¾Üï‡c¤iè”Sj–/ŸÅqƒãÈûÁüýïß½øâwO>yFE…c‹¡iÚol}þùµ}ûæ…O;­ö’Kfü¼ÇH^8Én…δgjŽ}¾hGG$ÞGˆF¼ÆYÂz¢9.,´ççÛ£Ë5hÎÓAQÔ~jŒ6nÜ8Ô…Yb1qûvÿŽ]Û·û¶o÷'Bˆa¨ßýnqMMÞH—mÛæ¿á†÷ÉoòÍf¶¦&¯¦&ÂOMMžÕÚ—]zxhn?õÔêõëÛû“¸¸ØöÜsKûŸùÔ©Sh¹úB’Ac1Q¥DBŒÇEQ”ãñ” ¤EQŽÅ’D•‰é´L¤öé´œH¤ Q¥XLL&ÓY•†1Bê {¢>´ÛǘLœÕjà8ÆbáM&žç«ÕÐÆoeUUµDBŒÇS‘H’˜IÉÿh4‹‘-b"‘ŠÅöXSc±TO«#ÆØf3Z­¼Åb°X Ä4J„¤ o6,žhRõU›Í`±Fƒàì@ÙoU‰$;;#Ñh2ó(]aŸéÛÍ2Ú9†Z40èD"‚î©÷z£D[¿{·?M‘DX¯«êËËÝÝ«v„Ð9çüù«¯vffÈ0”,kãÇç_wÝIºª£ï‘” HgŸýbæ30ÆÇ7öç?Ÿi·d¯óh£±1t×]û|ÙêÏœPþûßÏq:‡C¡®ªÚÖ­ÞGý¶¹94ðÜ( _xáô³ÎšLÓäŒij ]zéÛýLl2q÷Üsüĉ#ßy蛋/~c|@-ò°±jUËþðU,&î7%ÃPÇ3æškæu‘¶móýå/ë7oî$³:}@QxÉ’)O?}BH–Õ÷ÞÛôÄŸlÚÔŠÚ¸ñî¼<ëP!‹mm!Òüu‹æ÷qÐgºËY–..vd*³ÚD§ÓÌqSYVXÏØ?½G zö hšòx,v»ID”5Ì DRê‡gšåÉr–Yž,g™åIÊ¬ŽŠÑÊ[,¼Åb09£‘u8LF#k4r¤g4r&“î—ç,Þf3’V+4¯ûA|ÕoA¼¤ß`?Ì ö :ÕA|Ï44Mé1¨T!¤2þà¥7s=™°jk eúHE­ÏMs}:-ïÞÝÕÐàolìjlô76úëëý^o¤·¦“øCçÎwûí§:ÚÀŸÑè<÷ÜÚ·ÞÚÚ·ÖÀ0Ô/~1ë”SjFÖE¸zuëw~¼bÅ‘‹W`1Bš¦½óζgžYÛ‡äQ‡¢ðqÇ»úêyƒ[UÕ¬VÏ·ß¶Ü}÷;±Xj°²å8öüó¸é¦“vdízúéÕÿú×öýÝ0!­¬ÌqÉ%³fÌÝíš5mwÜñQ?ÏšUzýõ F|JPÓ´ÓNû[E…ã‘GN¥¨Q$ôü‡ú2Ȱ' §ÓøÒK# ¦O§•/¾hyá…u@|¿_Y±â¸ãŽ›XV6$zEQD b~<ˆq¿?ÖÕµw9‘Ø3:#T\.³Ûmõx,D½Ý-7»\AjÚþ‡rÀprýõïïØÑuë­ 8¢l¤ËrÈ"IŠ$)™Ãa¥«+¦Ga ]]±®®¸ÏíãpŠÂ𦕗»Ï=wÚܹÅ#þ’¡@–ÕÏ>kxñÅïE{þù¥ƒõ\UUµåËßloNZtÑEÓGöY^"‘~öÙµ|°«?!v0ÆÿøÇÿô¿)”o¶ ÑsÞ«¯~wûvRNž\pé¥GŒëŠbd¢iZ(” „@ áó%!::b~¿ ™½>§ÓøÀ'••Ù‡ºHýá¹çÖ¾öÚ÷ãêjÏ1ÇT-XPåröè§AUµwßÝñ׿®„¾"30F7Ýt4MSO?½Æç‹“Îyéišš<¹´¸ØþñÇÛ$)÷äEaUEä™WY=ý°Q_¼å–£Ñ}zŒ…-Öf38F·›ÌÄòN§Ñá0VT8ŠŠú5©þƒ¿QðßÿÖŸuÖcýIi·Î=wÊâņ®±þ›oþ°?)Y–¾à‚ÃÏ8câP¶imlÛæß¼¹sófogg !d00eeŽºº.MC7ÝtôÑG|À? 7†è›6À0s0©à`$ ‚`³Ù’ÉêÕm=½Ç0 e2±_,S£K3…õ=¤Æv›m4þzüõ××½ðÂ׿øÅÑK–LéÛ …l6ϼ}ˆp:™¹sÍsçV’ÕööèŽþíÛý¯¿¾åª«æ¬+9I½ñÆ–ÓN›H|ôýüõõ°‘N+›6yóò,&xš›#ɤ„¢iŠa(IRzžé쌩*î϶EQŒFû2¶ –¥ív“ÝnxVºÀ1SJ ‘H2Ó_©+b‰•lI¥äx<Õ›ôçƒ3]ª‹Póó­<ïr8ŒÄÞH©E™L ÆXQ”E1ͲŒ$)™>Öh4éóEuk*%G£Éž¬ÌSg X‰)2§˜Õ``­VãˆøÈ~pU¯{{3«ú®®xæ›’YÕëu»®€Ô/-YØí¦)SLS¦ì#œRUÍë´¶†ZZ‚mm¡ÖÖPkkpõêÆ×^[›JíqØJJœõõ¾¬ ‰®¥¾ÞÉ%ÿ7~|Þu×->唩}¤vïö÷"Qæ8Z–5YVȪËe*-µó<»fMÛ 'T*™ÝÁE<.~úiÔ)E’”]Ÿ$“R樊@Q¸©)2<šìXL¼ûîÏúã着½ð†ÚÚüÃ#dO>ø ®ï#š¦8Ž69ƒùûß7ÜpÃBgš˜¡ã„ª1F 3êfëë6´Ï˜Q ¥B!!‰´$)™ihš¢(¤iH–µ5kÚ†ú* ©¾>”Ÿo).¶utDI0ƤËBUµ]»¼Ñh꥗V=ùä§~\Ÿø âÿÄ)ŠÚÕÓmÅ™MX·ƒ~¯fØÕõ8[S¦”eÉ‹³tê£IR‚Á¸Þjëý«¬¦\ïVå´Ì{¦Þˆ“~Ky¹;sÔFzYv»Én7PÖ4”¥¶×OáõF›šYåéî æ8;Bˆ¢°ÕjÌìÎuwŒdð¨÷å2K¢w·Fù{4üøRýÄ÷Ç2¿;ÃPf³¡7A|f÷XOÀ04ÆšÁÀ* bLn*–eÒi‰ãYV5MS5B±XJUURZ¢ÈG B:IʲBÒÄã)EÑHd,IR‰´žr¿pc4r…I¤%«Õ@Q”ÑÈrÃq´Ãa‘ù ²‹\ ÃÐf3²Û!³™gYš\8‰ÂEvaŒL&þ ×7JØïà´7sý¦M-mog¶•Yæz‡ÃHÚòçv[‡ÈYÆqLuuauõÞáØŽÇó@oéÉ€kõꆓOþãQG9眚êêâA)É·ß¶ö”ŒcŒÈç—磑µZ9£‘5™¦¦Èúõ#ëê;·büxÏäÉ…#Þ7ûöÛ–––èüùáp8¥iZ<.ª*J$DMC‚ iš&Š2™êQUíÛo[(ŠÜAܺuõ>úv[[¿X­4fŒ'/Ïœ3ý@X¿¾ÝhäˆaÓlæB…M&!IJ”Ѹ'¶‡¾ðþû»Î9gÊP+÷K~¾å†rÜ(ꮉ­[ý T B:OÇbéXLL$D2.îù^‡BÉÖÖXe¥s8 YW¸÷ÞÛÚbhO”Ž¾Ìª£òr÷Ì™?Äö(IJ{{˜Œ2vè­If–t›õáÃøñóçÏlM³§7¶lñG£}æ .Ѩøàƒ‹'Oîk¾ ÃÄãþ‰+òóó{îݶ­cÑ¢û8œ4¬MMßþöÇtýõGOŸ>LS^ÃàŋkN[®iÚŽ9sÊû“ù`}³e(žójš¶{wŽnƈeiUEdöŒç™²2{q±mófoY™ÓdòžC~>›ŸŸ{.Iƒ‚×ïêJƒÉO?m¸à‚é#>ªÝµ«kËßòå³>zLAed 3_¬oedo`Œ,ã±ÇÖÌ›ç<á„#†³Oò‹_üõÓO·;¦ü|[i©³¨È^P`Ï˳æç[óómÕã9ølA»ww!„*+G8R]?I¥¤î:9 ƃA!Ú[-ÿñçOˆ„P<.nÞܺiSËÆ-ë×7µ´5McY!Mo†B#¤eY/_yå²£Žªî;ÿX,ÕÞÞ×™ôù¢{Ô󑈠'¶ÙŒ……ö¬àXºq¾°Ð6(xQ”ÃáDVl=ºO®9<ïÇ8ûŒªH÷F·ÌÛíF–¥xžEcaèd2w‡ªÿfy¢áî•'óÔºq^ï_éÆù­Y^UµX,y ‚øìŽîä1Æ6›±7ƒ<ÇÑ4Mñ<‹1&Ëcb¶XxMCi4MI’Ê0t:-QR$IJ¦,^’”,Y<™´Ô4‰4¹{È=!¾{´ÇªL‘YeÔ-‚79žghš"3Ì}(ã-ÃPäJ3w2þÇF*%e…*Ñ'©|¾þšëívcA½¸Ø1XwÎl¾øâ¿ÑvN2c½”–Ú÷»s>zÂOª(ê‡~oµÈPÔdâìv#ùL 0ç!åóÏwÌŸ?~”Ä9ë$¨BhCÓ©ªvá…Ï|úé¶þ?≟qÆt„PuõM¤rîãÇç¿öÚ/õäôéwuvFB,KcŒÉÔŠÅÂOšT2qbÉĉE“&•L˜PHji ‹>Úrüñzº:ÌH’‹¥b±T$"Äbb<žŠÅRÓ§WŒ3TfÉÞØ¼ùû¦¦p$B¯[×´fMcCƒ¯;ÿÊ+¿ñÆ%YI̪¬ñ¾úHf߉ z«ü lƒÒk”gîÀ "IÊöíý™ŠHOоújç9çü9×AØ``DQ¦i|øáG5¡¤„©­ÍŸ:õ°¡.í!ƒ×)(°t)r“L¦ÛÚÂᎎH{{¸³3ÒÚjnø|Q2x¼üòco»íÔþd5XÏg‡â9o[[hÖ¬»1Æ<Ï(ŠJ‹¡¦¦p„¢qãò'L(7® ´tXÀŒˆ¢<Ê,CŠ$)Íͺ:_}½¯¾ÞOž/“O EaŽcDQZ° ú•W.ÓÓ×Õùvíê\¿¾þ»ï½Þtkk@Q42á#˪¢¨¥¥N›Í¸uk{Î3²,­iH––¥kjŠŠŠØ9sjÎ;ï(Ò8èà7 zèƒÇûDÈÎ0´ªªªª™Í†Ù³«¦O/Ÿ2¥lÊ”ÒáiqÎ;ï©•+·#„ ¶°Ð^Væ*-u;JKÅÅŽ¢"Gi©óG;Û ?ªoÚòüxz55E#]„ÂAa¥GqÃqÌhSªðcÆn7õ§R"f½,a½n]ܹÓëõF‚ÁD–·Žç™n;Ì^a}–5Æå² Š&,J°,“NËÁ`üÞ{à÷N:é°K/=fÆŒŠgü8É˳æåYçͧo„t}½¯®Î·k—w×®Î]»¼õõ>°ádÑm8h>™ÆU"ñÌ%]Mê»Âa¡©)©jÅ’D#Þžg ŽXY+*Lľʲ4ËR Ckæ8Š¢(Œ1BH’„4ŠÂɤ”L¦S©t[[(£Ñ=gïêŠç”Sëa™Lû|QŒqI‰sêÔÒI“J&N,®­-.+s ÊEò\VzÔÝ-t¹ÌõZa…«ªœ55µ6›qÇŽMC ƒe9÷=ÿå—;].s0˜ðz£@<LtuÅüþ˜ ¤õ4 Ÿ—góx,n·¥¦¦hÁ‚j·Ûìv[óò¬n·Ù㱺\£.J"0 °, óð#Žß×#w"„8ŽI§e–¥g̨\´¨vÁ‚ê‰K†BÝ¡€þ3j­ô!£‘7.ܸøtZno‘†‚mÛ:<˸q55…ÕÕEãÆåWWæçSüÈC‰³•!IJôرùcÇîóy ‡òp¹¾Þ·k—7Og¦¯­-ª­-š3§dëVÏÂ… %I©«óîÜéݾ½cÇŽÎï¿oõz£¡qƒ’$™¦ñ˜1ù3gVM›V6mZyMMËÒ$lXé´´´‰•c\Zêš=»êðÃ˧M+Ÿ<¹dp=÷‡«¯>áöÛO+)qØlÆa>5£–õ¯^ Ö`°ï׌@¼Šº°^„‘Õ¦¦1Ú{½ÑÌ£tws–¡Òn7bA½°ÐÞ÷OÙ3OÄýá‡ß¿ûîÆ‰K.¹äè3ÏœAt0L&î°ÃJÁ€3ûìgŸ=ƒ¬¾úêÚûî{Çç‹e¦±Xøçž»xÁ‚ê‘( ô«•¯®vy½Æ;½@œa¨Þ¬ô¡x÷¾ûþM–9Žq¹Ì%?ßæv[ÆŽÍË˳‘!yy–¼<«Ëe#•¦iÑh’4údô‘ÙÜ÷²1‡ü¦)Ç¢7Á o6óV«± Àf0°Š¢¦Ó ÇÑD#NQXÓñÚëás|¾hss Ÿfy‡ÃÔÓ,ŸÙÊzfyIRA”$5‘‰ð]UµX,¥i±É<é#Åb)EÑA”$EÒ’¤×™¼‰é´œL¦%‰xä•x\ÜïÙY–æ8†e)–e( ³,ƒ±FÓ4Mc†¡UU£iJU5–¥E5™8EQ V–§ÓŒ1VU’dIRÒi%–‰é‰@lª±X²·óö&‹Ç[,}õËâõÕ¿G0ʈ¹>Ivt„3CMd†T,(°Øršë»zÜ4 Ñ4¥ihìØ¼‹.šGäƒ[¶†æºƒ ›Í0o^éòå'äççkš¶k—÷Í77|ôÑ÷ þœêùíÛ;Bš¦õìƒaŒ\.ó”)e‹v ‡é‚Ô•+Wf†LÿûîÕãǘLÜ]ä@–ÕÏ>«¿ôÒwêë}äžìÍJÚ°¡¹­-ärYò󭵪ʓ—gõx¬n·ESüÈ…¶0š ⚦Q¥iÚØ±y ÖÌŸ?~Μq`@þÑÂqÌÁ0²Ž;nâ¦M÷Œt)€C‡Ã4cF匕ýI̲tmmqmmñé§N¶tuŦL¹!„1..vÌšUyøáD5n4BÏ؇òr× 7,v¹PMMÞìÙ‡lafͪÙ0 _ÊôÓ_ ¡P"B¡D(”…ö,ƒ‰`0^Wç#«™&GŠÂN§Ùé49æî“Ëeq¹ö¬vt„³ÌM²¬ „¶oï¸êª—ûÛ÷.¾xþO:×n7 Å…0:é–º¢ýÖK½AÜ©ñ¸(Šr<ž„´(ÊJ‹{ IDATÄ{+Š2ÑÙ'“R<žJ¥$AH'¢(J±˜˜L¦EQŽDöñsfŽ1¶Z <ϰ,m4²4M1 Ͳ4B˜¦±¦!¢>L$ÄX,ÕØ¨¦Ó’(Ê¢(%“RN×-Ç1f3o³,ƒÉęͼÕj°X f3g6ó oµÍfÎd"Ë£‘3™8›Í`6ÈßÏÚ^åp8‘éÎTØG"É;½^o$2½®¨KˆÂ>/Ï–©áëÉÊ•;znÄÑ45yrñ¹çÎ9昚¢"BhË–-ä¼ý 'çœ3ctÝu¯Œ›¿pá„o¾©Û±Ã{ôÑÀJŒr ñ¥—Ö>÷ÜW@c¢’ìÕJ;¶àÁ—¹Ý–¼<«Íf¢R B:K‘F0MF£Éx\ŒÅR±X*OÅb©H$IVI’¬g>V+o2ñF#g4r˲´ÅÂ;¦ÒR§¦ic„°,Ë©”¬ª*±¥K’‰MM¹ÍòÇ8ûé§Yž2D/×`Az>©”D"÷dÆõÉ4“íz´'PÉÒ9_Ì,0Æ˲ÃÐE±,1¢(Š¢0i¾BŠ¢’?š¦ªª†1¥(ÃPif3J§å>¢ I’¢ïÍÅS²¬Ñ4m4rºó=S²x8¸èÛ\¯(jWW<ŒwvF»ºb@Âëq¿?¶nÝî@ ÞÕWÕ=Je–¥I{ 9£¶Èˆï¼óÝo¬?öØÚ«®:Þ^V ãêêÂo\|ã‹Bñ¸øÉ'[Þ}wóš5 >_Œ ü;;#ú„Eá¢"ûŒU§6í˜cjúcœ4Ø©Sˆò: «VÕ_~ù?;;÷„gÓëÏÞøÓŸÎ;ûì™C_.††¡Ï?îüùÕG9Î㱌tq~¨*ºí¶S;¬têÔ²¡›‰ ®½ö$ÔýÄ`Š79&‡ÃTUµŸd‚&Úú@ Þm®ˆÔÞç‹îØÑI¶Çã"B¨¬ÌMDNY¨ªŠêèßÿ»?üÑ…Ϋ­…N)ý…ei»Ý4ð˜ÑhReb®O¥¤DB„´(JÑhŠh[#‘d:- B:Ói9#ÛåŒS½i‚) ÃÐ,Kq£( ±÷jZc$˪¢hªªJ’"Š’(ÊDž˜ÃÐf3ïp‰­žHíM&Îdât½ÉÄÙlF“‰39«5SmŸÛ…ÁóLAÁþýõ²¬†Ã{ª÷pXú*‰\ÒÐà'»!y ÅÂ;&§Óìr™ ^B¶Õ-[ÚzžNÓ,«7¶nÜøÚ‰'N¾ì²c¦O¯è»„Ж-›¹lXö€ƒ MC¥¥Ž¹sKêê;vtR¦iªµ·ß={L?3—$%Œ“$DVž§„ˆË3ƒ—ô&1gYÚj5˜Í<1€SEQcŠe)‡ÃdµDQ"í HŠ¢¤Ó 9c,&ÆbbfVv»‰èãu³¼ÙlÊÏgHÔ¢Ï4Ë“”ú!úò:é´œL¦ÔŸ™exäÔ28„Ã`š¦hšÂS&PV•¢°¢¡™*Ë*Mcš¦ŒFN’ä¾chš–L¦“IDQØj5J’b6s4‰A!d³1Þ£ŒÇÛl„ÅÂÓ4Íq´ÉÄu§ÁÝ÷ &½³™gŠe’Æn'ùp“~„Ð4UP`+(°ÕÖçL ªÑÓûýQ¿?ÖÕ÷ù¢~ì7Öõ–'i4W®Üþé§Û¦M+:÷Üi“&Mª ~,þôÓ§Ÿ~út„¦i[¶´¿ýö†¡B’¤žþÜeËfΘQI"²À(gΜ±O=µtóæÎÖVñ‹/vnßÞ2ØdRÊ5WI$!R.ºhÞHàGG~¾õòËéRÀ ž ¿!rI‰³ïd’¤ƒ‰³Ï~¼ïdªª%âO|Ê0ÔÿûÉ›o>eéÁ+,@_ô¦nÿèÙLŸo¦ˆ¶Ûê+é `ò‰ìI ét¶yV–•HDˆD𦆦(Ì04ÆHÓ4Œ±ªªŠ¢*ŠÖó@‚ÁÀ œÙÌÛl‹Å@¼öf3O,öǽÙÌg¨í  OÔöÅã±ôóò‰Ë8"‘¤×õz#dµ­-¼eK;ñwuÅsú÷3¯!ôᇛß{oÓ‘GŽ[²dÌÌ™¥ý{5,þ¨£Æy<é Žzë­õO<ñÙ¶mí£\QŸB(‘·nmÇS±˜§b±T$"Äb{WãñT4šŠF“dµ§îœ¦)â gY†e)Š¢0FªªqÃq´ÁÀ(Š&Ër"‘Öýø¤Ï &0Æ6›Q×Ä3 eµˆGžçÙL³¼Ã±G=?"fyAHK’LZdEQãñ”¦¡h4‰ŠF“ªª BZ’Ò¬‹¢œLJ’$ BZåX,%Ir4šÒ4üÅ’š†âqQÓP2™Î‘«'º5!DÞPŒ±¦iªªišÖwC™•ÉÄó«dofJ„ÙKRê«?à¥\( çåYóò¬µµEúF¿?öÚkk÷{ ¢¨ß}׊&“kéÒC\RàPcJI¡PR’äîÜäTJ‡…¶¶=ùÓ4¦(š¢EQ!„4UEªªé‡dÁ²´ÅÂó<ÃóœÝnt8ŒV«Ñhd3mÂÄ;l0°v»Ñn7اL)u¹,=«ôDB ‡…;îxëý÷7õñ"9Ú×_ïúúë]cǺŸ}Ö3aBá@^Õá$«†ïÞZ(røŠ+fÍšõòË//[¶Œlûí·—-[¶nݺÃ;lh/!}ø†ªøÿíÝy|ÕÞøñ“¤IÓtEhË^Yd+?xdQî…¢âEEE.¼ŠxüÉ.ˆÄ+Šès]xà ˆ}Ý J«‚ˆeµ(.¬…Ò%¤Í6Ï£¹1™LÒ6]’~Þ/^¼’éÌ™ïÌœ9Û$'))·Þzë’%K}­/IÒèÑ£?þøã²²²Óo8{uÚ$+W®¬Ô‰­}*Ç`N6›ÍóçÏÿì³ÏNœ8Ñ¥K—aÆMŸ>=""¢ çÍ=ߺÔt‹Î}ï5”«KJÊ?ûìä´i;Ïœ)Öh$!|ÎJ/„°Zƒ-v…©7tÚˆ­F£‘7”$a·;‡<+º‡Ã©Óiôz]T”>..*:ú·/‰5FE¢¢ôññÿùE·…&ùEl¬±šÇ[Qa//·ÚlN³¹B’¤ßç‹/—$Él®ø}¾x»}©¼Üf±ØJJ®VTØÍæ ³Ùj·;¯^­°ÙìW¯Ú**l‹­¼Üf³9¬V»Õê°Ùì6›Ýju !O”ï ðœü>Ã~ “³È•‘^¯ÓëuÑѽ>ÂhŒ0"ŒF½<±{T”ÁdŠg{7™"££#Æ£Q/„ˆŒÔúÈÈßÞÊ´ë­üW•Œ ,……ÿ™×hÔ——ÛµZÑ©Só~ý®»é¦ö½{·‹‹’ÿzäÈ‘ î7TƬ8n#IQBB¨ä4ùu¥z‘D%÷’““_|ñŶmÛºú Ÿþ¹N÷ŸŸÁó5>YÍ|ÆÃžÉÉq÷ÞÛóÞ{{ !~úéÒW_åõÕÚºŽ«n4ð>»üÚÕ•.--}þùçGŒqüøqÅß~õcèÒ¥KÝ»w:thfffllì¿þõ¯‘#GfeeÝvÛmÕL¹ö{ýD팵|ÿý÷®_e(**Úµk—z`“&M:}úôÆ[µjuìØ±É“'_¾|ùõ×_÷•‘øK¥„V+Hñ­z[¢R '¿¹ÔØî’U9xî‚ ¨ÎÝQñÔÏý6”“~±Ì¡„=&¦BI“&M-ZTÙ­¶nݺ~ýú¨¨(y[§ÓyéÒ¥ˆî?û’_?~âĉ hÚ´6f“¬ÚÉÔŠ »Õj×é´N§$„èСéÀ èØ«W[ƒ¡› ¡UW:tèØ±c[·nMKKËËËëСCTL¤ú‡ ~&£¢¢¢¢¢„eeeBˆÚ©ëø¡7Åÿ6­}ugL+/·_uÍD\^n+.¶”—ÿöB^rõª­¬¬¼°°Ôb±Y,Ö+W®–—Û+*ì6›­¢Âzù²U®*Åáp~óÍÉo¿-¸ùæ”Y³n¸¡u5¤Ö¸—ðÜ‹e_¬kógžyfÓ¦M3gÎ\¾|ù¬Y³š5k6cÆŒš ÛCbb¢\ª·hÑbÀ€ xõÕWçÏŸ¯¸²ÅbB´n2ר6U§Mò믿Š=±ää $&&nß¾]ž¹£C‡·Ýv[×®]W¬X1~üø*œ7W¾­!5Ú8TqÓMm‹‹Kóò.9˜¹Ý`ˆøþûùÅÅIW¯VX,¶âbsii…Ùl³X***ìÅÅ–¢¢«§N !ÊÊÊ+*òr‡Ã)Ïo±ØœN©¢Â.IòÿN›Íát ‡ÃQ…’\‘V«‰ˆÐétZ½^©5"ôz­Á!ÿ3õ0™ C„Éi4FDDDDE飣 11‘F£Á55¼üO>KF£Þ5/¼o Þ­[7nݺñÈ‘}ê::CŸ]¸Ý¼M›6}饗’““/^¼˜””¤¸a}ÊÈÈøÓŸþ´bÅ ùm—.]Î;÷òË/WbúÚïõ#µ3Ö:hРõë×»&¦ß¼ysÿþýÿõ¯©öñÇggg÷èÑC‘˜˜øÚk¯=úõ×_÷•‘øK¥„V+Hñ­z[¢R '¿¹ÔØîªfðÜAQ»£&⩟ûm('ý b™C! {Úº€Ø¼ys‹-ŠŠŠ„|ðA‡Ìf³Óé|ã7:wîÛ·oßœœFóã?j4_é|òÉ'Ý»w7™LÍš5s}_¥°°0:::**ʵmŸ>}„Û·zl6ÛôéÓ““““’’¦OŸn³Ù„fåÊ•;wNLL\´hÑûï¿ß¦M›øøø¹sçÊ[mÙ²¥[·nF£±mÛ¶ï¿ÿ¾Ç¾ä·O=õT§NÆ'I˜ÂÌý(Ü_ûÝ©w¨òæ_|ñEëÖ­W­Z%'e·Û322Z·n˜˜øÐC]¹rEñtmݺµ}ûö5zá…\‘deeuìØ1))iòäÉŠ ¾°Ð ™““ãî½·ç믧<8?'gÆ3Ï ½å–U›•>\ëÊuëÖõïßРA:uÊÌÌtÅ©ÑhÖ¬YÓ¹sçk®¹æ¥—^BLž<ùÑG•ÿZVVf2™¾ûî;•D<áÊ•+?üp“&MZ¶l9mÚ´òòr¿‡à:V¬2Å8}Õ§Š'Öõ5P‡ŒF}rr|JJ㎛vëÖªW¯¶ii©C‡Þ0|øcÇÞ:qâÀ©SoŸ;wè‹/ûí1k׎ߴiRNÎ̯¿žsà@Æ¡C øaQAÁËÇŽ=ÿí·»wÏÉΞ’•59%åš÷®Ó‰’’ŠèèH•uká¯ã°cÇÅbM±Pò.Ì}•ŠÞµ‰p+KÝ‹eŪʽ‚0 «V­Z¹rå /¼ðÎ;ï¬ZµJ¯×û 2ˆ‡æM£ÑL˜0áÓO?õ•ŽGuHš¡^°×N›Ä;ÃÈ—øË/¿Tܰ ½é¾}û¾úê«BˆË—/kµÚiÓ¦ !G£Fä+îÝxðˆDNY’¤iÓ¦Ýpà ………"àœ¼zõêgŸ}VžÈC=cÆŒ5kÖTá¼UêbùÊ]êÇ{Ýu× ßSRÖD®NH0]s©¸¸B lNx«ÕÞ¹óœ>}öí»pàÀÅù˧§¿5aÂ{S§~ðÌ3=÷Üæ×^Û¶téöµk÷¬]»góæƒŸ}vh×®¼½{Oîß_püøÙS§ /\())±Øl6NklÜ8&%¥I»v‰rùË-× œ:dÈÿ1¢×¨Q7wëÔ©ƒ§N¼`Á°—^zàÕWG._þ·åËÿöÁ23ß´iRvö”ìì)»wÏùúëg¾ûnÞ±cÏ;öüÏ?/)(X|âÄ‹Çÿãøñäæ.øöÛy_ýÌγ¶m›¶eË“›7?¹nÝãï½÷زeý÷?øòË<÷ܰY³î|â‰AcÇÞ:jTßáÃo:ô†´´Ô~ý:ôëסW¯¶ÝºµêرiJJã””ÆÉÉñññ&f¥€¢M›Ä÷Þ{ìØ±|ñÅô¹sïJKK­Î¬ôá:îä­šOd„ÆßéõzWR¾Æ{à}vz½Þ`0Äÿþs—~‡€ÔG¨¾üòK_eŽGÕàkœMqó7>ùä“îagdd¼ýöÛòk_çDþ«GÉà†ß£s8‹/îСCllìÍ7ß¼wï^Åœê÷ukB >üÃ?t} eÆ ÷ß¿ú‰Š‹‹[ºt©k>ß[o½õôéÓŠQy|ŽE(e?I’–-[Ö¥K—¸¸¸?ÿùÏŸ|ò‰bé–¹+ ZA¾žóȽᤘÕýÖ2¾î…ÀÛçUnwù}v xÜsÏ=S¦L‘7©¨¨pÕk ¶àµuwˆò¼w ¾Nߤ*µß§ÊÁxðÈ3õå¤"¿EbC¢R]Bõ§N’€ð'¨I‡>|ø°ßÕzè¡¿ýíoçÎKNNÞ»w¯$IË—/OJJúè£Îœ9óé§Ÿ¶lÙR‘ŸŸ/ß¶Þ/JJJ Ø1c~ùå—Õ«W !.\¸ IÒÊ•+ßÿ}ÅMd/¾øâ}÷Ý÷ÓO?åææöèÑcÖ¬Y’$ !FŽYRR²bÅ !Ä{öJzúÒ6m¦©–™ÿù×¢ÅSÓ¦­›={ã /|²dIö²e9ï¾ûå‡îÍÎ>´k×û÷ŸúþûŸþ¥  °  ðÂ…’+WÌ%%• öÌc_Õ|"ãJÇét>ðÀ&LßúwòÝROÓUè>»©o½‰Ú|è~Œ®^¤b¨~£òÕ_øê«¯’““Ý[é®.g åóÐö °Ü 9õ°<—B¹ÏîÞ•þõ×_ÿþ÷¿?òÈ#®Ó¨>¤²‚ëöôUæxT ¾ÆÙ|—/_öué}÷+å:v0üÝ+¯¼âž‹š7oî=JPÏG½kUkB?~¼iÓ¦ß}÷$IW®\1™Lò9ȵ›w5'IÒgŸ}Ö¢E‹ÈÈÈ´´´Å‹xD"ý±ppVòÎ~o½õV‹-²³³/^¼¸mÛ¶öíÛ‡\î 0ðk©<ç•y„!©6œTrµJ-ã«  °}^©v—JðŠ'Yñ.X·n]ëÖ­ågÜYYYÍ›7—Wõ­à•‚÷¹žÜ’¿<¯Òt÷>u~Û6ïWñ„7wÞyÆï JN¨‡íØP,'ãTlHÞ%Tï´RHúÂ'm œ01=P³ürQQQQË–-»uëæújGjjêªU«\+¼ûî»ê_.ª¨¨8vìXYY™ÃáØ¹s§ëë.÷ÝwŸü m__.êÔ©ÓÙ³gå×Û¶m»á†$IB8p@’$«Õêñ:??ÿòåËz½þå—_.**r:¥¥¥‡Ã}_’Û7…þùÏÆÅÅýôÓOêßö»SÅPåÍsssÝ“êØ±ãG}$¯vôèQ×kwBˆ;vH’äp8äôÝ“’$)33³}ûöŠ ý^M&¦€Ê ¤ä ¿ºrÏž=òž¿ýö[!Ä¡C‡ä? !äorº´ÛíM›6ýâ‹/$I2dÈ¢E‹Ôq?«ÕªÓé\ ’>úH®ÎÔ!ÀŠÕã\)Æé«>U<±îj´¾æë²@xøáŠó)ôÒÒ¥Û K]kV¹'%ùë8ø*Ö¼·R,Ì}mî]›H>jÅ…î„$IN§óî»ïÖét£Fr?Þ=4Éߌ¾ö./ñ•¦»š+Øks¥Úl“H¬F}mX…Þôþýûcbb¬Vë”)SfÏž­×닊Š/^cÆ !Ä?üà:ö@r²<—‡÷œ/»wïnÒ¤IΛPâëb)æ®W1?Ô\®–Û*§NfdlºñÆþ&¦Ÿ¢ž Vƒ}F#óØW5ŸÈ¸ÒY¶lYŸ>}ÊËË%Õq'Ñ-õ4]Q…î³›úÖ›¨å§6ÑátëIDAT.®^¤b¨~£Rù!+WÁuée5”ÏCwسOLOŸ] ¬ÏîÑ‰Ž‰‰9zô¨kMõ! •\ÙÕW™ãQ5Tj,KQTT¤xÝUΉû•r»G~®C‡Þ¹È#†š»¯ksbú†6Ö*_©‰'>ýôÓ’$­^½:--Mr«Ý¼«9™Ýnß³gÏ‚ ºvíªÓéÖ¬Y£•÷°’wöëÚµ«¼¹líÚµ!—»L'üZA*ÏyeÞ#Š* '•\­RË(nxû¼Rí.•àO²â]`6›£££¿ùæI’þú׿ʷžâæu[ðJµ;1}-Ü’¿<¯’Á¼Oß¶MàûUõubÝQ_aÆb±º^GDèn¼ñÚ%KF9²pÛ¶é?þ§Æc*› wí üu|kÞ[)抛ûªM;AÞ¼7_³fÍŽ;¶oß¾aƬ¬¬Ú94ÅØòóó]5ˆz¹`šaP°×I›D¾ÄŠÊ*Û›îÞ½{ttô¾}ûvíÚu×]wuïÞ}×®]999wÞy§Pm<¸wÀ÷íÛ7`À€üã¾A1''$$4mÚôàÁƒÇxðàAÞ} çM¦8ÅŒðQD¯ÜàñúR£¹úÚkÏ›wÏ7ßÌÍÍ]ð䓃ZµºF÷j:ÂB¸ðw DÕžÈäææ¾ð 6lˆŒŒªMGÑ-•4Ý…A—AECÈi®^¤J^%*•þ‚<ø)k¥»T-Ÿ{cØ3TÐgw%ë·ÏîêJ›ÍæñãÇ3F%$CöûÔÞ× UC¥Æ²’““=êƾ}ûn¼ñÆ«W¯ªœ™Çw ¥~t?ÿüs ¹( îë†6Ö*>|øúõë%IÚ°aÃý÷߯ž¸Ùl^·n¢wïÞsçÎÍÍÍ={¶ü;Þ+,ìwâĉ®]»ºþÚ¥KŤÂ2w…z+(G´~¹¿»xdu¿µŒ‡ÀÛçÕlwòìÀcs“Ét÷ÝwoذÁl6oÙ²å‘GñµyÃ)xE-Þ*y^%ƒ)ž:•¤*µßÀ§jÁxSÌ3õå¤"õ¢&²T-ç I@ÃP¿e4@?ÿüóo¼1hР©S§ÊKZ´hñý÷ß»V8räˆz ‹å˜>}ú–.]*/ÌÎξýöÛÕ7lÒ¤‰ëkçEEE{öìñ­Åbq:ëׯ¿|ùò£>:tèÐË—/ûÚ—V«}çw¾úê«ÿýßÿu_n·Û…¿þú«ßÝù ÕãeÍ›7/((_|Ó¦M~øá-·ÜÒ²eË@‘%''ëtº“'OÊoOœ8Ñ¢E ¿‡à`Ū§Ì»> äÄR_aG9tèõk׎?qâŬ¬'GŽìoªrrÞµƒð×qðU¬yo¥X˜+nî]›Tª¿ã±ù™3g&Ož¼xñâ[o½5##cüøñ—.]ª…CóL’¤ÿùŸÿ‘g=SÙ»,À4à`¯“6‰|‰7 „÷µÓjµC† ÉÊÊÊËËëѣǟÿüçmÛ¶íÚµK¾Ü*÷ø–-[–-[¶nݺœœïCPÉÉéééÏ=÷œÃáߎ9òƒ>X´hÑÈ‘#+{ÞÔ)Â+wx¼¾ÔN®nÒ$væÌ;÷î{àÀ¼Ç»µyó÷ÝFFú¨³q§ P ¬¬¬,==ýÝwßuµ—TšRÞ£[Œ…}NsïEÒ€WŒ*==}Á‚®þ‚Âl6¿øâ‹®ýÒJP¥N Þ!>»+Yõ>»;“ÉôðÃ9rÄõdÁoöûÔÞ× UCàcYBˆ»îºkÉ’%î?V¯^m³ÙL&“Ê9Q£SŸŽÖ{ï×^{m ¹( îë†6Ö*»å–[JKK¿üòËmÛ¶ÝsÏ=ê‰K’ôàƒ:tH~«Ñhn»í69¯r»+ÀgÞ›9rÆ ›7oîÙ³§kä†\ðŠ:½;ÔSUöÔU¿gÄ`¼)æ™z‚rқߢ¦²eñ> õ¢•Bö˜˜¨{N§s̘1“&Múàƒ>ÿüó-[¶!ÆŒ3}úô¬¬¬sçÎeggÏš5K=‘ŠŠ «Õj0,KFF†¢´´4++ëî»ïV\¿¬¬L~qï½÷>ýôÓ§OŸÎÍͽýöÛß|óM¿k4šÁƒoܸ±¤¤Äjµêõz“ɤ²¯6mÚ¼üòËK–,‘ß&$$!Þ{ï½’’’×^{Íïî\ uôèÑsæÌ9|øðáÇŸxâ‰Ó§OËËW¬XQ\\¬¾‹'Ÿ|òÇÜ·oßìÙ³G¥²P›Â¯®ü÷¿ÿ}áÂ…ôôô˜ß=øàƒùùùô•f¿~ýìvû‚ F`"ò!èõú#FLž<ùÔ©S‡~æ™gÒÓÓý‚‹¯Š5ð8eÞõ©â‰¥¾ÂÛoŒÊÏ_´|ùÃtÒëuÕLM±vþÊm_Åš÷VŠ…¹âæî%¼JÇU³xpß\’¤ñãÇwëÖíÑGBL:599yÒ¤IµphòÊ/^ œt©TQSÙ²xðÛ€§„? @M’¿ú¢¾Î믿~ýõ×[­VI’6mÚÔ¬Y³Ë—/[­Ö ´iÓ&&&¦oß¾k×®BäççË·­÷ I’^yå•k®¹¦U«VK—.9rd£F† âÚ‹kM›ÍvË-·ÄÄÄÈËKJJyä‘F5nÜxܸqf³Y’$y_ò Н333Ûµkg0:uꔕ•eµZÝ÷展$IN§3--ÍêÂ… Úµk—••åZèw§Þ¡º¾ëuyyù´iÓš7o?räÈ¢¢¢@Ò—7_±bEJJJ“&M&Mšd±Xª_MI’rrrΟ?ïw5€‹ß’3üêÊñãÇ<ØýNg»vífΜ©’ø„ ¢¢¢JJJü&âq—/_=ztãÆ›5köÔSOÉÕY 5£ä»bõ8iî<âôUŸVáı¾>þ|NNŽßÕÔ•*÷¤$_Åšb¡äQ˜+nîÝòîï¸Ë5”Çæ«V­ŠŒŒüá‡\K¾ùæ­V»aÆš>4IúÃÄÖ­ZµJOOw¯ Õ÷®’f-ìÁê…Õ·6‰äUÕzl˜””$U©7-IÒ•+W""".\(I’Ùl6 3fÌpíÈ»ñà+*‹ÅÒ¡C‡Ù³gž“%I*++›:uj×®]Fc»víæÌ™Ó¿ÿ#FTê¼¹_qÀSñbùÊ]êÇëѲª\x[Ål®Ø²å»@Ö j°Ïh¨$·þ‚ÉdJMM]¸páÕ«W%C‘AÏçŠÉÊBbØ3r/ÕÃò\ Ù>»G$’$9ޏ¸¸S§NÉoýUaÅïÔX–$I÷ßóæÍccc{õêµyóf•s"ü™¿E“Ýn_¼xqûöí£££ûöí»gÏ9µõb¬ÕµÄ}„ÊuÕvìØ!„xóÍ7åu\ËGœìvû¼yóºuëuíµ×Μ9S¾ˆŠQIþ*&‡Ãñꫯ¶k×.>>þöÛoÏÊÊJLLT\Óýu½Ê]¤~­ õç¼ñ¸¨7œ¼³ºßZÆW®«ÔsáÛ]êÁøi.Ù¸qãbbbÊÊÊT6¯Û‚W ÞsäzrwHäyï æëÔ©$uôèÑÊîWQP‚q•äUÀ%(9¡¶cC´œôŽS±R©.¡¯ÌæÚ)…¤7>iáD#ù˜¿ @P9rD‘ššZÍt~üñÇë®»Ž¶æ(žáªö;vtéÒ%)))¨@8 JÉÙêÊ9sæ¬Y³¦®ñÃ#Î ^š Ö×.\8zô耪€š¬žê¹`ìÁê…Ñ&©CV«õÀ}úô©Ñ½ÔÂÕ V®¦­@PðŒ&ԅгz AH {†ëˆ å9BN½õ ×’! |òÉ'­Zµºþúëå·7n\¸páwß}§¾U½Ê]ÁJ‡òÕWŸ#‡ôÝQ¯îʺ &(9v,ê ž^¼ië:~”——Ÿ0›ÍñññuE <ªƒ;5ŠVÂLÇf¹;BZ°rµ0 O¯ œ01=P³âââê:Ô¶ÄÄD£ÑX×Q@(ILL¬ëÐàDDD˜L¦ºŽ€Oô¤P)Áê…Ñ&AýA[€  g—š~vCoõD|||X}ayP@ ‚RqAcª€/Á›åîuAÉ ÔÂ3<½€p¢‘$©®cÔ m]¨YLLaމé Ì11=„¹ÿzE PÅ_ IEND®B`‚XQilla-2.3.0/docs/simple-api/classVariableTypeStore-members.html0000644000151400015140000001424411653571063021577 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

VariableTypeStore Member List

This is the complete list of members for VariableTypeStore, including all inherited members.
addLocalScope()=0VariableTypeStore [pure virtual]
addLogicalBlockScope()=0VariableTypeStore [pure virtual]
clear()=0VariableTypeStore [pure virtual]
declareGlobalVar(const XMLCh *namespaceURI, const XMLCh *name, const StaticAnalysis &src, XQGlobalVariable *global)=0VariableTypeStore [pure virtual]
declareVar(const XMLCh *namespaceURI, const XMLCh *name, const StaticAnalysis &src)=0VariableTypeStore [pure virtual]
getGlobalVar(const XMLCh *namespaceURI, const XMLCh *name, XQGlobalVariable **global=0) const =0VariableTypeStore [pure virtual]
getVar(const XMLCh *namespaceURI, const XMLCh *name, XQGlobalVariable **global=0) const =0VariableTypeStore [pure virtual]
operator delete(void *p)xercesc::XMemory
operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
operator delete(void *p, void *ptr)xercesc::XMemory
operator new(size_t size)xercesc::XMemory
operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
operator new(size_t size, void *ptr)xercesc::XMemory
removeScope()=0VariableTypeStore [pure virtual]
XMemory()xercesc::XMemory [inline, protected]
~VariableTypeStore()VariableTypeStore [inline, virtual]
XQilla-2.3.0/docs/simple-api/simple-context-item_8cpp-example.html0000644000151400015140000001000511653571063021776 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

simple-context-item.cpp

This example parses a document and sets it as the context item. It then executes an XQuery expression that navigates relative to the context item.

#include <iostream>
#include <xqilla/xqilla-simple.hpp>
#include <xqilla/runtime/Sequence.hpp>

int main(int argc, char *argv[]) {
  // Initialise Xerces-C and XQilla by creating the factory object
  XQilla xqilla;

  // Parse an XQuery expression
  // (AutoDelete deletes the object at the end of the scope)
  AutoDelete<XQQuery> query(xqilla.parse(X("foo/bar/@baz")));

  // Create a context object
  AutoDelete<DynamicContext> context(query->createDynamicContext());

  // Parse a document, and set it as the context item
  Sequence seq = context->resolveDocument(X("foo.xml"));
  if(!seq.isEmpty() && seq.first()->isNode()) {
    context->setContextItem(seq.first());
    context->setContextPosition(1);
    context->setContextSize(1);
  }

  // Execute the query, using the context
  Result result = query->execute(context);

  // Iterate over the results, printing them
  Item::Ptr item;
  while(item = result->next(context)) {
    std::cout << UTF8(item->asString(context)) << std::endl;
  }

  return 0;
}
XQilla-2.3.0/docs/simple-api/ResultImpl_8hpp__incl.map0000644000151400015140000000064411653571064017531 00000000000000 XQilla-2.3.0/docs/simple-api/classStringPool-members.html0000644000151400015140000001007311653571063020267 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

StringPool Member List

This is the complete list of members for StringPool, including all inherited members.
dumpStatistics() const StringPool
getCount() const StringPool [inline]
getHits() const StringPool [inline]
getMisses() const StringPool [inline]
getPooledString(const XMLCh *src)StringPool
getPooledString(const XMLCh *src, unsigned int length)StringPool
getPooledString(const char *src)StringPool
getTooBig() const StringPool [inline]
StringPool(xercesc::MemoryManager *mm)StringPool
~StringPool()StringPool
XQilla-2.3.0/docs/simple-api/classRegexGroupStore-members.html0000644000151400015140000000457311653571063021303 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

RegexGroupStore Member List

This is the complete list of members for RegexGroupStore, including all inherited members.
getGroup(int index) const =0RegexGroupStore [pure virtual]
~RegexGroupStore()RegexGroupStore [inline, virtual]
XQilla-2.3.0/docs/simple-api/classATStringOrDerived-members.html0000644000151400015140000004465211653571063021500 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATStringOrDerived Member List

This is the complete list of members for ATStringOrDerived, including all inherited members.
_ref_countReferenceCounted [protected]
ANY_SIMPLE_TYPE enum valueAnyAtomicType
ANY_URI enum valueAnyAtomicType
asCodepoints(const DynamicContext *context) const =0ATStringOrDerived [pure virtual]
asString(const DynamicContext *context) const =0ATStringOrDerived [pure virtual]
AtomicObjectType enum nameAnyAtomicType
BASE_64_BINARY enum valueAnyAtomicType
BOOLEAN enum valueAnyAtomicType
castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [protected, virtual]
castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
DATE enum valueAnyAtomicType
DATE_TIME enum valueAnyAtomicType
DAY_TIME_DURATION enum valueAnyAtomicType
DECIMAL enum valueAnyAtomicType
decrementRefCount() const ReferenceCounted [inline, virtual]
DOUBLE enum valueAnyAtomicType
DURATION enum valueAnyAtomicType
equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0ATStringOrDerived [pure virtual]
fgDT_ANYATOMICTYPEAnyAtomicType [static]
FLOAT enum valueAnyAtomicType
G_DAY enum valueAnyAtomicType
G_MONTH enum valueAnyAtomicType
G_MONTH_DAY enum valueAnyAtomicType
G_YEAR enum valueAnyAtomicType
G_YEAR_MONTH enum valueAnyAtomicType
generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicType [virtual]
getInterface(const XMLCh *name) const =0Item [pure virtual]
getLength() const =0ATStringOrDerived [pure virtual]
getPrimitiveTypeIndex() const =0ATStringOrDerived [pure virtual]
getPrimitiveTypeName() const =0ATStringOrDerived [pure virtual]
getPrimitiveTypeURI() const AnyAtomicType [virtual]
getRefCount() const ReferenceCounted [inline]
getTypeName() const =0ATStringOrDerived [pure virtual]
getTypeURI() const =0ATStringOrDerived [pure virtual]
gXQillaItem [static]
HEX_BINARY enum valueAnyAtomicType
incrementRefCount() const ReferenceCounted [inline]
isAtomicValue() const AnyAtomicType [virtual]
isDateOrTimeTypeValue() const AnyAtomicType [virtual]
isFunction() const AnyAtomicType [virtual]
isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicType [virtual]
isNode() const AnyAtomicType [virtual]
isNumericValue() const AnyAtomicType [virtual]
isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
Item()Item [inline, protected]
NOTATION enum valueAnyAtomicType
NumAtomicObjectTypes enum valueAnyAtomicType
Ptr typedefATStringOrDerived
QNAME enum valueAnyAtomicType
ReferenceCounted()ReferenceCounted [inline]
STRING enum valueAnyAtomicType
substring(const Numeric::Ptr &startingLoc, const Numeric::Ptr &length, const DynamicContext *context) const =0ATStringOrDerived [pure virtual]
substringAfter(const ATStringOrDerived::Ptr &pattern, Collation *collation, const DynamicContext *context) const =0ATStringOrDerived [pure virtual]
substringBefore(const ATStringOrDerived::Ptr &pattern, Collation *collation, const DynamicContext *context) const =0ATStringOrDerived [pure virtual]
TIME enum valueAnyAtomicType
typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicType [virtual]
UNTYPED_ATOMIC enum valueAnyAtomicType
YEAR_MONTH_DURATION enum valueAnyAtomicType
~ReferenceCounted()ReferenceCounted [inline, virtual]
XQilla-2.3.0/docs/simple-api/inherit_graph_14.map0000644000151400015140000000027511653571064016455 00000000000000 XQilla-2.3.0/docs/simple-api/classRegexGroupStore.html0000644000151400015140000001136611653571063017651 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

RegexGroupStore Class Reference

The pure virtual base class for accessing regular expression group values at runtime. More...

#include <RegexGroupStore.hpp>

List of all members.

Public Member Functions

virtual ~RegexGroupStore ()
 default destructor
virtual const XMLCh * getGroup (int index) const =0
 Looks up the value of a variable by namespace URI and localname pair.

Detailed Description

The pure virtual base class for accessing regular expression group values at runtime.


Constructor & Destructor Documentation

virtual RegexGroupStore::~RegexGroupStore ( ) [inline, virtual]

default destructor


Member Function Documentation

virtual const XMLCh* RegexGroupStore::getGroup ( int  index) const [pure virtual]

Looks up the value of a variable by namespace URI and localname pair.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/DynamicContext_8hpp__dep__incl.png0000644000151400015140000000743011653571064021360 00000000000000‰PNG  IHDR›uÖM)bKGDÿÿÿ ½§“ÍIDATxœíyPSWûǟ݈Pˆ@,’ÂB‹µ,–錶E‘Ò)*BÁ"Z†E("V Ø…¢]´¥ìDF ¥È"”ÒJÚ("La¤òo¨²\†` dùýqß_š†L ¤ïç¯sŸ<çœï½ßÜsî=¹IR©p‚¨k8Zw5pGQw5Hò[·nÕ•ñððHJJ’mþÃQ&“ù /P(”%W…£!===d2Y>BRÈ Ü´iÓÒ)Ây4Ž=ªÁçQÔÀE ÜQÔÀE ÜQÔP¼Ö]OOOYyÕªU...111fffZU¥œ‘‘‘={ö°X,9wïÞÍÉɹvíÚ½{÷lmmCBBÜÝÝ—@› <==KJJ¬­­—¦;MÎÑÌÌÌÊÊÊŠŠŠÄÄÄéé騨(>Ÿ¯ueó166V‘Àãñ"## ’““sss7oÞüù矷··«Õ ‡ÃÙ±c‡ºÚ4«µ¨}Ž€™™ÙÊ•+ÀÂÂÂÕÕõÀaaaÚÖ¦ˆ©©iTT”Š„¢¢¢uëÖÑétlÓÖÖ–Ëå–——¿üòËß‹D"áñxêjÓ¬Öbð¨ó(@ؾ}{kk+dddœ8q‹ Ÿþþ~ðôôd2™¡¡¡Û·oÿî»ï°„–––}ûöùøø”––bAOOφ††ÐÐP??¿ÒÒÒ .¿ùæ›§OŸ€‘‘lÌ‹ÅEEE»víòóóKII‘MMMòòBCC°2ŸÏOMMݱcG```NNŽP(Tªí½÷Þ¬–H$ÊÍÍݹsçÎ;sssE"Ñ•+WÞzë­©©)øå—_öîÝ;33£PK«W¯†„„lÛ¶íÛo¿•íHssóÞ½{wîÜ™‘‘177§4¨#Z¸2¢R©£££°qãÆææf±X ÍÍÍVVVöööXÎo¿ý–••——755uÿþýO?ýÔÁÁ¡¤¤$&&¦  `rrËìèèÈÉÉ‰ŠŠ*((hii),,Œ‰‰9{ö¬üpîܹ¦¦¦”””¯¾újhh¨¤¤ø|>—˵±±‘×¶|ùrÙ¢fzzúíÛ·sss?ÞÞÞ^VV¦T[vv6TUUÉúâp8yyy'Ožììì,**zå•WÜÜܲ²²&&&²²²>þøcCCC…Z ´µµ$$$0 ÙŽÔÔÔ¤¤¤;v¬­­MöžVT m^ë¾øâ‹$©»»˜L¦··7@À^òóó366~ýõ×€Çãéëëîß¿ßÜÜ;âÓÓÓXæ®]»ŒŒŒ¼½½`÷îÝFFF>>>€õõõááá4ÍÎÎ.11qíÚµ€=Œ!ëQ‘Hôë¯¿ÆÆÆZYYÑh´°°°ÆÆF¥Ú*644ÄÅÅQ(ýûï¿@lllggç¡C‡vìØáèè¸à‘Ávêµ×^“ß‘˜˜*•ºfÍšÈÈH™¥AµÐdU`xxxõêÕ@$ÝÝÝ›ššh4ZGGG||¼,ÇÂÂH¤ÿuG"‘†‡‡ÓÒÒƒƒƒ|kFFF²Lù²<ãããT*+ÛÚÚÚÚÚ€‰‰ ™L¾qãf0Fooï×_žžÎãñ$ ¦¬­­oß¾­T›cccò#ùŠ+ÀØØØ××·¸¸øäÉ“sˆÌÍÍaÞ»M¶ 66621Jƒjñ¨ç¨T*­­­]¿~=¶¹iӦ˗/_¼xÑÉÉÉÒÒR–¦°3³³³GŽyûí·óóó8 n§æææcccXy``uàÕW_-//—rª±±Q$Éd"‘Èáp°øèè(fä|m ˜šš–””°X,‹UWW‡®·nݪ®®vssÃ6DiÃÃÃXahh³üAAµÐÄÑÉÉI.—{çή®®¤¤$‡„½äìì,‹‹‹‹±aóAÌÍ͉D"‰$ ‹ŠŠàþýû/ÀÛÛ›Á` ¦§§cñˆˆˆ®®®cÇŽõôô°Ùìââ⪪ªÈÈH ‘Hžžžß|ó ‡Ã,,,ôòòRÑ…@ À îîîãããl6;!!¡¦¦F*•ž8qÂßß?))©££ãÊ•+ókÕ××Ëæ‘‘™™922ÒÛÛË`0dŸL+ ª…&£îûï¿(г³s~~>6‘HôððøùçŸ=<y”FÐFéâ×ìˆÍçèÑ£–––ßÿ½,¢Ík]¡PÈáp|}}µØ,ŽZhÓÑëׯGGG¿ñÆ®®®Zl=V¬X±mÛ¶‡ j€î^d¸¸¸ÔÖÖj±AT133;xðàÃ5ÿ4 5pGQw5pGQw5žG{{ïêZ¡¸fD£ÑžºG‘ÈpbÂÑÒò] Ñ>l6ÛËËK~Íè÷£K.i)2¹uËdõêç EºÖ¢eh4šláƒð$|kýú/nÞ¼{ðàë‡ùèZË¢ƒþ<ú矣7oÞ€Š õ |LAßÑÊÊ«zzË`hˆûÇ7u-gÑAÜQ‰DZ^Þ>7'iYMM§®-:ˆ;ÚÖÆærÿ÷ì§H$>wîªX,Ñ­¤ÅqG««;I¤¿÷‘Ëniù¯õ,(;:7'®©é‰þ>)I¤eÕÕ:”´ ìè¥Kÿáógå#"‘¸¶¶K(Dí®T”­ªêX¶Lñ±Êû÷gX¬^èYutzz¶¡¡{þu‘H¬¬DyàEÖQ&óOì¦E±XráµééÙù/¡²ŽVWwÝ+‰zz]«PìŸ7ÕEÃoíÊÿ’6ŽÖQý¯¨*ÀçQÔÀE ÜQÔÀE ÜQÔÀE Ý;:00€]©Ï/^èÞQ ‹ÔÔÔsƒ‹åhmm­µµõÄÄ”••=÷ÜsÓÓÓ‰$33sÍš5&&&6l`±Xب¥b”ûá‡Ö­[gdddee¥Ô§ºº:gggCCCvöìYøç°I NŸ>½fÍKKËÔÔÔ³gÏÚÙÙ™šš&%%É2ÏŸ?ÿüóÏS(”ýû÷ÏÎþã—”çææètúªU«( NŸ›››/àÂ… öööd29%%åAm.Ø‘6Ñl]700pÁ´wÞy'44tlllÕªUmmmR©4//B¡TUUŽŽÖ××S©TèïïÇdÌ/ðx<}}ýðððááá’’¸uë–||>ßÀÀ 77—Ãá’H$>Ÿ/«.•J 88˜Çã1  âñxyyypçÎ,ÓÛÛ»¯¯¯µµÕÞÞþÈ‘#òÕ?póæÍîîî—^zéðáà û¾¾¾<¯²²rÁ6‚ªhº®»ˆŽNLLP©Tggg™úµkמ9sF–P\\¬ÚÑÙÙÙëׯóù|±X|éÒ%,Y¾ .—«§§—––611!‘H¦¦¦Äb±‚£R©T(*”ûûû±Ìîîn,¹¼¼ÜÞÞ^¾º££#‡ÃÁÊ®®® û/^”J¥b±xÁ6‚ªžÆŽ.â>>nnngΜ‘Å ÿ™Lf±X­­­T*uãÆ—/_&÷ÈÄÄôôôÊ2°‚££ãðð°üKýõ—••Ö×Ö­[ç‹\½z5(ô«´Mi‘Etthh(33ÓËË+>>‹X[[wuuÉzzø±x@D§Ó;;;³³³eqÙûQ H$’ŠŠ .—±mÛ6.—«®N쀾¾>̲Qabb¢µµu~u¥JÛTÑ‘Y,G%IxxxlllYY“ɬ««€ððp:~þüù±±±Ÿ~úéðáê™ …úúú 99¦¦¦ä‚··wee%Ç …zzzFFFêJ‹‹hooÿè£öìÙ#ÿ’¿¿ÿ‡~xãÆîînŸ¬¬,`0÷îÝ{@cªÚTÑ‘6Ñ`¤~˜y4##ÃÅÅE(J¥Òêêj+++.—+ ?ûì3;;;ccã 6”––‚ÊyT*•ž:ujåÊ•Ï<óLvvvpp0…BQ証¼üÙgŸÕ××wtt<þ¼Bu›zç—±Lƒakkkaa+ä«óx¼°°02™lnn5==ý(m*U@ø^-ˆü±Ó ‹!@i›t¤±£º_aÀÑ.O´£O=õTttô´¹=Mþï%((ðçŒP^^Žjµx¢ÏQ$ÁE ÜQÔÀE ÜQÔÐð™z6›ýØ}ä ACG;::–ì G-ÐüÿÑ'|E ÜQÔÀE ÜQÔø? êŠ%Kf€IEND®B`‚XQilla-2.3.0/docs/simple-api/classATGYearOrDerived-members.html0000644000151400015140000004330211653571063021230 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATGYearOrDerived Member List

This is the complete list of members for ATGYearOrDerived, including all inherited members.
_ref_countReferenceCounted [protected]
ANY_SIMPLE_TYPE enum valueAnyAtomicType
ANY_URI enum valueAnyAtomicType
asString(const DynamicContext *context) const =0ATGYearOrDerived [pure virtual]
AtomicObjectType enum nameAnyAtomicType
BASE_64_BINARY enum valueAnyAtomicType
BOOLEAN enum valueAnyAtomicType
castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [protected, virtual]
castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
compare(const ATGYearOrDerived::Ptr &other, const DynamicContext *context) const =0ATGYearOrDerived [pure virtual]
DATE enum valueAnyAtomicType
DATE_TIME enum valueAnyAtomicType
DAY_TIME_DURATION enum valueAnyAtomicType
DECIMAL enum valueAnyAtomicType
decrementRefCount() const ReferenceCounted [inline, virtual]
DOUBLE enum valueAnyAtomicType
DURATION enum valueAnyAtomicType
equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0ATGYearOrDerived [pure virtual]
fgDT_ANYATOMICTYPEAnyAtomicType [static]
FLOAT enum valueAnyAtomicType
G_DAY enum valueAnyAtomicType
G_MONTH enum valueAnyAtomicType
G_MONTH_DAY enum valueAnyAtomicType
G_YEAR enum valueAnyAtomicType
G_YEAR_MONTH enum valueAnyAtomicType
generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicType [virtual]
getInterface(const XMLCh *name) const =0Item [pure virtual]
getPrimitiveTypeIndex() const =0ATGYearOrDerived [pure virtual]
getPrimitiveTypeName() const =0ATGYearOrDerived [pure virtual]
getPrimitiveTypeURI() const AnyAtomicType [virtual]
getRefCount() const ReferenceCounted [inline]
getTypeName() const =0ATGYearOrDerived [pure virtual]
getTypeURI() const =0ATGYearOrDerived [pure virtual]
gXQillaItem [static]
hasTimezone() const =0ATGYearOrDerived [pure virtual]
HEX_BINARY enum valueAnyAtomicType
incrementRefCount() const ReferenceCounted [inline]
isAtomicValue() const AnyAtomicType [virtual]
isDateOrTimeTypeValue() const DateOrTimeType [virtual]
isFunction() const AnyAtomicType [virtual]
isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicType [virtual]
isNode() const AnyAtomicType [virtual]
isNumericValue() const AnyAtomicType [virtual]
isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
Item()Item [inline, protected]
NOTATION enum valueAnyAtomicType
NumAtomicObjectTypes enum valueAnyAtomicType
Ptr typedefATGYearOrDerived
QNAME enum valueAnyAtomicType
ReferenceCounted()ReferenceCounted [inline]
setTimezone(const Timezone::Ptr &timezone, const DynamicContext *context) const =0ATGYearOrDerived [pure virtual]
STRING enum valueAnyAtomicType
TIME enum valueAnyAtomicType
typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicType [virtual]
UNTYPED_ATOMIC enum valueAnyAtomicType
YEAR_MONTH_DURATION enum valueAnyAtomicType
~ReferenceCounted()ReferenceCounted [inline, virtual]
XQilla-2.3.0/docs/simple-api/ATUntypedAtomic_8hpp__dep__incl.map0000644000151400015140000000041611653571064021427 00000000000000 XQilla-2.3.0/docs/simple-api/AnyAtomicType_8hpp__incl.md50000644000151400015140000000004011653571063020054 00000000000000d4b43b595d91d2d6337e87b5a907913bXQilla-2.3.0/docs/simple-api/classATBase64BinaryOrDerived-members.html0000644000151400015140000004245211653571063022417 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATBase64BinaryOrDerived Member List

This is the complete list of members for ATBase64BinaryOrDerived, including all inherited members.
_ref_countReferenceCounted [protected]
ANY_SIMPLE_TYPE enum valueAnyAtomicType
ANY_URI enum valueAnyAtomicType
asString(const DynamicContext *context) const =0ATBase64BinaryOrDerived [pure virtual]
AtomicObjectType enum nameAnyAtomicType
BASE_64_BINARY enum valueAnyAtomicType
BOOLEAN enum valueAnyAtomicType
castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [protected, virtual]
castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
compare(const ATBase64BinaryOrDerived::Ptr &other, const DynamicContext *context) const =0ATBase64BinaryOrDerived [pure virtual]
DATE enum valueAnyAtomicType
DATE_TIME enum valueAnyAtomicType
DAY_TIME_DURATION enum valueAnyAtomicType
DECIMAL enum valueAnyAtomicType
decrementRefCount() const ReferenceCounted [inline, virtual]
DOUBLE enum valueAnyAtomicType
DURATION enum valueAnyAtomicType
equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0ATBase64BinaryOrDerived [pure virtual]
fgDT_ANYATOMICTYPEAnyAtomicType [static]
FLOAT enum valueAnyAtomicType
G_DAY enum valueAnyAtomicType
G_MONTH enum valueAnyAtomicType
G_MONTH_DAY enum valueAnyAtomicType
G_YEAR enum valueAnyAtomicType
G_YEAR_MONTH enum valueAnyAtomicType
generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicType [virtual]
getInterface(const XMLCh *name) const =0Item [pure virtual]
getPrimitiveTypeIndex() const =0ATBase64BinaryOrDerived [protected, pure virtual]
getPrimitiveTypeName() const =0ATBase64BinaryOrDerived [pure virtual]
getPrimitiveTypeURI() const AnyAtomicType [virtual]
getRefCount() const ReferenceCounted [inline]
getTypeName() const =0ATBase64BinaryOrDerived [pure virtual]
getTypeURI() const =0ATBase64BinaryOrDerived [pure virtual]
gXQillaItem [static]
HEX_BINARY enum valueAnyAtomicType
incrementRefCount() const ReferenceCounted [inline]
isAtomicValue() const AnyAtomicType [virtual]
isDateOrTimeTypeValue() const AnyAtomicType [virtual]
isFunction() const AnyAtomicType [virtual]
isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicType [virtual]
isNode() const AnyAtomicType [virtual]
isNumericValue() const AnyAtomicType [virtual]
isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
Item()Item [inline, protected]
NOTATION enum valueAnyAtomicType
NumAtomicObjectTypes enum valueAnyAtomicType
Ptr typedefAnyAtomicType
QNAME enum valueAnyAtomicType
ReferenceCounted()ReferenceCounted [inline]
STRING enum valueAnyAtomicType
TIME enum valueAnyAtomicType
typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicType [virtual]
UNTYPED_ATOMIC enum valueAnyAtomicType
YEAR_MONTH_DURATION enum valueAnyAtomicType
~ReferenceCounted()ReferenceCounted [inline, virtual]
XQilla-2.3.0/docs/simple-api/XMemory_8hpp__incl.map0000644000151400015140000000003511653571064017023 00000000000000 XQilla-2.3.0/docs/simple-api/inherit_graph_19.map0000644000151400015140000000020511653571064016453 00000000000000 XQilla-2.3.0/docs/simple-api/Sequence_8hpp__dep__incl.png0000644000151400015140000000606511653571064020202 00000000000000‰PNG  IHDR€u ~6bKGDÿÿÿ ½§“ êIDATxœí}LSWÀϵs€BÔ0Š„ŠŽÆ¬c_ÙLæ´a¢[Æ":!•Ï#&ÛŠÎmq3l¸¼nF„ÑM6PVµ¦0Pa)p²0`„ u¬•Û²–~Ý÷»÷¾¥í.½p¨žß_‡§ç<çéýµ÷¶÷^z0‚  `p¿ƒ@ € 6ý×.]ÊÉÉ™›RîIÞÿý5kÖÐt˜D€F£©¯¯_»v-“EÝ7455¥§§Ó÷™Dɘ¨ç¾£©©iÒ>è$2HdÈ ™Ò§ I1%%%—/_ÖjµÁÁÁ111III\.—‘䳊D")++ …U3Ž;¦Ñh<|ëÖ­cÇŽéõú¬¬,F’ßÛ0³ jnnNOO_¾|y@@€X,ÎÊÊjiia$ó=3|||*++q'ÿ‹År¹œl[­ÖÂÂÂøøøøøøÂÂB«ÕJDEEErròK/½´k×®k×®I$µZ-‘HÈ!Žm×á‰DR__ŸœœüÊ+¯|ûí·›ÍvòäÉÄÄÄ7æææ šáN´µµ%%%ÅÅÅ:uŠš½¥¥eûöíñññÇ·X,nƒŒl:fH¥ÒŽŽŽW_}U*•ÊårFC=tîܹ¡¡¡¢¢¢Ï>û¬££ãäÉ“µµµß|óMZZZiiéŽ;rssi2»'ãÍÍÍùùù™™™EEEz½þܹs—/_ÎÍÍ=räÈÀÀ@YYýpGZ[[‹‹‹³³³e2õª¬¬ÌÍÍýä“OZ[[OŸ>Môf<õÔSr¹üèÑ£>úè÷ßÿÚk¯544ÕÕÕíÙ³‡Ïç …ÂÌÌÌ«W¯*Š7ß|sõêÕÏ<óLZZMf×ád|ãÆ~~~ëׯà8^[[›’’" #""öîÝ»råJúáŽ$&&úøø<÷Üs½^OwîÜ)D"QZZÚÅ‹i‚ÂÀAØd2ýøãk×®‰D"‘hûöí%%%………111€áááÍ›7S}}}­Vkdd$ …N ¯’º'AAA6ûŸú5@ Ûááááááôà `椲-]ºôÏ?ÿ¤ z‚ÈÉÉYºt)¹Y1 {úé§«««ÉGýýý9B~Î3 Z­vÿþý¿ÿþû²eËÈýýýT*›ÍÆb±FFF¨ˆëp2î´½‡‡‡#""½½½*•jÛ¶m4ÃqJE288H¾2HCÿôvA>ø`llìG}¤R©†††ºººNœ8A¾ü«W¯...Öh47oÞÌÎή¬¬|ñÅOœ8ÑÒÒ¢Õj¯^½úÅ_üüü.\øûï¿•J%•Üu¸Ûbcce2Y_____ßÑ£G©ƒÛáµµµcccôO*//O­VÿöÛo2™lݺu4Aaæ{@vvviiiqq±Z­æñx‰äõ×_'JMMÍËËKOOÇ0ìùçŸÏÌÌd±X6›-??ÿîÝ»ä®9''Çßß?55µ   ¬¬l×®]W®\ù·án HJJ2™LR©Ôd2=ûì³T7·Ã>ívwDñ /¼ýöÛ&“‰üRIîpœ‚Œl:Œþ¶”3gÎ$&&66622™[Ôjõ¶mÛfuŠiá¶ž™)‘HäryBBMt.2H€3¾¾¾qqqS 2|¡¡¡ógÿxë­·¦døîsÈ A ƒ@Æ»ŒŒÿúË» ˜Ò©ˆwÞyg¶ë˜ƒàç7»™3‰€°°°-[¶ÌM)3 ½a˜P8O¯þ …°°0ú>“œ šÏܸq;&æ?€††l‘(v93Ä‹çÏÿÌf/`³YÕÕ?îeæx«‚ ÊË[­V»Õj+/WyïûØ[´µõß¹óÏtooï‡ZÎÌñV••‹ls8¬ŠŠkpë™1^)Àjµ+•í‹üÓb±)•mV«nU3Ã+47wŽš#££¦––Xõx‚W ¨¨hg³'TÎfcJe;¬z<Áû˜L–ššëV«Í1hµÚkj®›LÌÜ.8—xŸ€úú_M&7·xšL–††_ç¾ñ> E‹åæV* S(¼o/äeôzÓ?ÜpûÇjµ74üj0ŒÏ}Užàeêê~¡>}ºb±Øêê:ç²Ïñ²“q:ÝŽÿÿè{ï)¼‰Š,^¼Ç£»åm¾ÁÌ­‰sçë¸}}}¹€ðpfî“…‚—í‚î=È A ƒ@ € $2HdÈ A ƒ@ € $2HdÈ A ƒ@ € $2HdÈ A ƒ@ € $2þC†üm/âìY5`ËhKðÌŒŒŒ ª=A€ÛrŸÏ°Xþ›mv!Óc¿…är9˜5È¥u#è$2HdÈ A 3[z{{Éo® ÎÁp Ãz{{g<×´˜-{÷îÏ ç ³% ((èСCó9áð¯¾úJ$:t¨´´4""Âßßÿƒ> zVUU=òÈ#|>?++k||ÂY,©TºdÉ>Ÿ/•JÝ®‹záÂ…ÈÈHG®5ê6ç¤M ǯÅ` §"vìØ‘œœ<<<¼dÉ’ÖÖV‚ ŠŠŠø|¾R©¼}ûvmm-¹àbOO™Üµã8—ËMII$—=½sçŽãƒá(,,úòË/Ùl¶Á` †“unݺÇq™LHHHÀq¼¨¨022BöŒíîîV©T‘‘‘~ø¡ãðO?ýtóæÍ·nÝêìì|â‰'öíÛçô/¿ü2Žã …bÒœNÁ鞊˜¶N'Äb15ÙÊ•+KJJ¨_ý5½€ñññ7n ›ÍvéÒ%²³ãZ­–Ãá>|X§ÓÙív½^o³Ùœttta6›Ú===dÏÎÎNê9GFF:ŠŠ"Û/^ŒŽŽvzŽ€¦¦&‚ l6Û¤9‚ô[sA]]];wî$#7oÞŒŽŽ¦:ˆÅbú \.·»»{Æ O>ùdII ÇþÇkllT©T`Íš5W®\Y°À¹ÎE‹8ŽS›bùòåd#**jppÂýýý!!!ä\ëÖ­ëëës-òá‡8Íë6'ÍDSaÚòòòÈUÉHhhèõëש]]]ôŒFcBB¹tAA§^F£Ñn·Ÿ={V«Õ¦¦¦ÆÅŹ]•òå èîî&·&EPPõžÓét*•Êu¸Û˜Ûœ4M…é °Ûí)))»wï.//¯¯¯'׬MII‘J¥UUUÃÃÃß}÷ݾ}û蓌›Íf.—k48–Q&Á0,66V¡Pà8n6›9ŽÏ4ŸسgOooïO?ý´ÿ~ri[ŠM›6½ûî»üñGggç† òóó2™ltt’ë nsÒL4%œö}ôÇ€ãÇ?öØcf³™ ˆŠŠŠ­Vk6›<áçç·jÕ*r­ošcAŸþùC=VPP°uëV>Ÿïº¯\¶l—ËŠŠªªªr®m²§L&  Ú½{·ÑhtŽãøo¼Áãñ322ÆÆÆ<Éé¤;0ržǧ …Ù(ÀmÎL„.ÈÌ;îA‹/þ·uŸ™ÍÉÌDŽo€® Ï2h4ï@ ƒ@ € çïnhh¸{÷.”RîÚÛ—˜ðî{C½” Ûœðªõî=Ð12HdÈ ù/äg5åšú‚IEND®B`‚XQilla-2.3.0/docs/simple-api/classInputParser.html0000644000151400015140000001067511653571063017023 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

InputParser Class Reference

#include <InputParser.hpp>

List of all members.

Public Types

typedef std::vector< std::string > Args

Public Member Functions

int parse (std::istream &input, Args &args)

Member Typedef Documentation

typedef std::vector<std::string> InputParser::Args

Member Function Documentation

int InputParser::parse ( std::istream &  input,
Args args 
)

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/DynamicContext_8hpp__incl.png0000644000151400015140000012176211653571064020376 00000000000000‰PNG  IHDRÌ]YïsöbKGDÿÿÿ ½§“ IDATxœìÝw\wÿðoØ{ï½W¡¢"‚¨à,bµj«õy´í£¢õ±Š­Újmí¯­uÔýˆVÃETD‘%2Ù3 ²î÷ǵiÂP áó~ùÇqÞøÜåîòÉ÷¾w†a0r¤D’’lF$ÙŒ0H²a2¢À¨Û·o_rr²¨£ïŒL&‹:À{‚$$_~~~nn.‘Hu `¨šššŠŠŠDàýA’ ã‘HŒŒŒu`¨?~üõ×_‹: Àûƒ>ÙŒ0H²ad0 É`„A’ Àƒ·‹øÓ¬Y³¸Ãúúú®®®7nÔÐЪ߾}»råʤ¤¤¦imm=~üxAAAgg§¹¹yxx¸bÀ¬Y³¢¢¢ŒE@ AK6€¿=zôúõë×®]Û±cGWW×úõëi4šÖ«¢¢6À åã?–——ŒŒ|øá‡öôôðÍÅ'333<<<((èÒ¥KÜ IMMýð×,Yò믿2™L#Gàˆ1H²ôËÄĤ®®!äë뛚šÊf³B©©©†††666ø4OŸ>ýí·ß6lØpòäI*•ÚÝݽgÏ[[Û¨¨¨7ž:uª££Ÿ2++ëøñãëׯ?uêÔóçÏÏœ9³qãÆ‹/ò¶ÇÄÄ$''÷Ýw?ýôSMMMTTBˆF£µµµ™™™ñƦ¨¨¨§§‡ÿüóÏÍÍÍ'Nœ8tèPFFÆü!0¶cÇŽ!„nܸÁ]W}}ýÉ“'üñÇìììsçÎM:ÕÃÃã·ß~kooÿí·ßvíÚ¥  À7Ÿ/^œ:ujûöí§OŸænÈ­[·¾ûî»o¿ýöŋܟG$$Ùçìì,##“——‡zðà¿¿?@ÀÿkñâÅ***sçÎEQ(99¹3gÎ|öÙgÚÚÚxÜÕÕ…O¹|ùr%%%„Њ+”””BxË1îöíÛk×®µ²²²´´Ü±c‘HDa†⮑‹ÅzôèÑæÍ› ­¬¬Ö¬YC&“ÆÆ7ãÝ»w?ÿüs===++« 6¤§§#„6oÞœ½mÛ¶E‹988 ºgðš>}:ï†lܸÑÄÄÄÑÑñã?æ#p$@RAŸlýª­­522BIIIùøø$''[YYeeemݺ•;ŽŽBHFæÏ/™ÚÚÚ~øN§ÛÚÚò.MII‰;%ï0¯ÆÆF|ØÜÜÜÜÜ!¤ªªª©©Y]]çܸW¯^ýßÿýßÏ?ÿL¡P8'BÈØØ¸¹¹Y`l|x» (++#„TTT/\¸ðã?eikk£>?¸›`ffÆ FàH€¤‚–l‚a7eÊüÏ™3g¦¤¤<~üx„ ºººÜÉøòËÞÞÞ½{÷~ðÁ¿ÿþû_|ñ®+ÕÖÖnhhÀ‡ËËËñî"¡iÓ¦EGGãMÚ82™Ìb±äåå555¥¤¤êëëññuuuxnÝ76>êêêQQQIIIIIIñññx·¦¦¦›7ozxxàJà*jkkñšš< ïo$@RA’ àommm---¹¹¹»wﮯ¯ ÅÿËÅÅ…Íf_¸pïïÑ&“Éb±ddd ƹsçBÝÝÝCÀßßÿôéÓ••••••?ÿüscc#>~ݺu¹¹¹ß~ûmaaaEEÅ… nܸññÇ#„dddfÍšõË/¿Ô××WVVž9sÆÏÏo€UÐét|ÀÇÇçÔ©SÛ·o¿uë†aßÿýÒ¥KwïÞ••õìÙ³¾sݾ}›Û¦?G}ûöí«W¯NŸ>M"‘ TÐ]Àß6mÚ„èé鹸¸üþûïx' „””ÔŒ3îß¿?cÆŒ– ¢¢²qãÆýû÷+**®X±bΜ9Û·o¿yóæïé鉈ˆèéé™2eʆ ðñ¿ÿþûñãÇ###étº™™Ù¸­ìŸþùÑ£G?ýôSYYÙÙ³g‡‡‡ \¸Á„ –-[vç΄кuëŽ=úÉ'Ÿ„3flذáÖ­[aaa222ÿùÏŽ92a¾¹~øá777înÈÏÏoëÖ­===sæÌ Ç;‡ðâŒQÞ[o$Rhhhsssddä0—súô醆†¯¾újD¢’HKW¥ž%ŸÇýõ×ð ÀØÝE ŽÁ`Ô××ß½{700PÔ±ÀI6€ÁoذaÞ¼ynnn¢ŽE¬)++ e$@²AŸlƒsuu‹‹uc€††Æ–-[†2 Ù %€I6# ’lF$ÙŒ0H²ad0Âà~0.äæænÛ¶mDÅáÈööjKKÓåä:Gd†J5“—¥ï_¯±½½}C$Ù ù¦L™2ü…ÐéÒmmJ­­òTª<€™™QML¨Ã_ì0efê[Yujiõˆ:?1Òùù:Tª¹Œ ¦¡Ñ£¥Õ£©Ù++Ë~EyxxŒxx¡!`ØûÿÎ Ù˜LvZÚëÄÄÂÄÄ‚šš6õ \ƒ‚\ÝÝ-ddĢá‘ÑNœX½p¡xÕ¡li¡%%?xPôäÉ+ ¥ÇÜ\ÛÏèïOœ2ÅZVVZÔÑ„’lüh´Þ¤¤b2¹ðÁƒ¢ŽŽnSÉ)0ÐÍÞÞ@Ô¡ñÏ$›‹ÍædeU‘ÉE))¥yy5JJrÓ¦Ù’HD??'uQGEdøSc#%>>‡L.LO¯`³9ÞÞ6$Ñߟhf¦-êÐú%æI6¯7oZ““KSRJ“’Ši´^;;‰8c†··˜ÜŒ H²`¼+/oŠÍ&“‹ jåfÏvôósòósÒÔTuhƒCI6WO3#£29¹ôþýüòò&MMåéÓmýüœH$¢††’¨£Œ H²`<Â0,#£2>>÷ÁƒÂêêV==Ug‰èãc§  +êèÞÁXL²yUW·¦¤”’É…Ož”°Ù"јDr"‘ˆ&˜QGxdÀ8Â`°ž<)‰ÏIJzÕÚJ³¶Ö ˜@"9yxXHKÉ c=Éæ¢Ó™™U‰‰…wïæÕÕuèè¨Ìœé@"}}ÔÔDàA’ ’B¡ß¿_ûôiYOÓÓÓÂߟèçGÃß•Ä$Ù¼JJ<(LN.MK{aØÄ‰æþþD;SQ‡*H²@bÕÕuܹ“Ÿ“]-%EÀ[FgÏv42Òuh#F"“l®ŽŽî””R¼?Ic#ÅÌL{Æ ;»Ù³••åE` PŒ$ †aùùµdra||niiƒšš‚¿¿ó¦Ms¦M³UR’utàÝhh(¹¹q8XAAmJJibbáåËirr2^^–3fØÍ;ÁÆFOÔa€–lâ_5f”HvK¶@­­´gÏÊÉäÂÄÄB …•nOÐ’ cÖ{÷nÞƒE))¥xÕ˜ÐP/ñ¬Fж¶ Þ¼Ífs ß’É…drÑÙ³)ŠŠ²x¥›9s %§Gc´dÀØ3«ÆŒ’qØ’-Ps3õñãW=~üŠJíáVºæmD’l3ÊÊãâ^ŽÑª1£’l>½½¬ôôŠääR2¹°´´ACCÉÇÇÎÇÇŽD"ê뫉::ÆH²@¬q8Xf¦$T%d€·Ò ‹Åvv6ññ±#‘œ¼¼,¡Ò £ ’lG’W5f”@’=ÜJ7÷îå¿}Û®­­2uªŸŸÓܹÎjjŠ¢ŽÉI6ˆ ®3J É~WÕÕ­dr!™\˜–öšÃÁ ;£’l½¾Uc]gÍrÔÑQuhâ’ì÷ÖÝÍHM-Ã_NÒØØijªåëkïãc7k–£Š Tº`¸à~ P5ˆ–’’‰D$‘ˆè¯Bîx¥YYéI“¬f̰ó÷w¶µÕu˜ŒUÐ’ BÅd²?~…?‹VSÓfh¨1¾KP+t¶~?Ð’=²ÚÚº¸ÍÛÝææÚø›I|}íåä a€w' Tc‚––rßJ7—.¥)(ÈzzZHÄùó]ŒŒ Ò ƒƒ–lEP5f´AK¶´´Ð’’Š<(zòä…Ò…Ü H²`äAÕ¡$[˜X,Nvv™\”’Rš—W£¬,?uª ‰D$‘œôõÕEâ’lP5F$ É•7oZ““KSRJ=*¦ÓÜJ7žž–RRð*@ É€áá«cc£7wîH5„’l‘ëéafdT&&Þ¿Ÿ_[Û®¥¥>vþþÎzzª¢Ž€@’ pP5F²A’=~TW·¦¤”’É…Ož”°Ù¨tÄ$ÙÉTYÙ|çN^bbavvµ´´”¯¯}` ëìÙŽÚÚP5flû÷¿/×sÿ|û¶CKKYQñÏ~>22Ò.¬34ÔQt@ètFffUbbáÝ»yuu::*3g:HD__55¨tÄ$ÙÉ!°jLPÛôé¶ŠŠP5FBüôSâ?Üíï»ËÆF?9ùKáFD‰¯»»;Tºâ’lÀ˜UcÆ•êêÖ©Süò’‘‘þòËùÿú×láGD®££;%¥4%¥”L.jlì45Õòõµ÷ñ±›5ËQEE^ÔÑñ’lÀXE¥öÜ»—UcÆ¡yó~ÌË«íûõE 22öA_‘q·ÒMVV•œœŒ——åŒvsçN°±Ñut`$ bÝÝ %¥wèËÑØØŸËW5fî\gSS­Ñ ˆ•3g’¿þ:–ÅâðŽ”’"¸»›ÇÅ}.ª¨€jkëJM-#“ Éä¢ÎÎnn!w__{99(äF$Ù‘¡Ó;w^75ÕÚºuî —–6ÄÇçàUc””äfÍ‚ª1ãWK mâÄ=lö?¾¿¤¥¥X¶jÕTQEÄ›Í),|‹gÛùùµ ²žž$qþ|—!Þúhi¡íÞ}ãàÁ`uu¥ÑŽHH²¢ñêUýºuç*+›íí ’’vœªÆ€þ{ñâ5›ýwc¶´´Tnî7ZZ𣠢¹™úøñ«Š?~E¥öp+Ý \ÈýÚµŒÏ?¿¬««züøª©Sm„0£ ɆaÇŽ=:xðBO’ÒÒ¾23ûû­Õܪ1·µuÙØè-Z4‘D":;›@Õ€‹ŽNߺõ ‡óçW˜´´”íåËŸŠ6*0¶°Xœìì*îûˆ44”||ìðþ$úúj|¯_áÎ<„8†þõ¯ÙÛ·Ï #A’ ²ŽŽîÍ›/%%ó¦G‘‘‹>þxTCG¥ö8;Åd²ñ? Â/¿¬X¶ÌS´Q±‹[é&9¹„Éd;;›øøØq+Â2™lGÇÿvw3ð‰ed¤ÌÌ´ÿý#''#ц Ä$ÙáIO¯øä“óÝÜÜ!D \\ŒõôÔ““KX,Ž——åܹÎsç:[Xèˆ0T þÖ®=ûàA!þø£¼¼Laáwz‚:;»Ÿ<)}ô¨èѣ▚©©ÖìÙŽFFšß}—À;™ŒŒBhÇŽù7Ά;l@ H²ÂÀá`?ýtÿ§Ÿ o?Zœ”aÖ,‡À@7‰}jÁ%$ä~úé“‘‘˜ðûï«E4ÜJ7/^T`b2Y|HI¼½mŽ ××WI„@œA’ u”ÿ÷âEE¸×ÞCo/‹HÜÕÝÍ ÐÙ³ëæÎuuD@bMŸþmEE³Àÿ’‘‘RV–ÿå—p‰(䨀˜ƒZh€Ñõøñ«Y³efV ð“^JŠp÷n¾0£@^^& `€åfÎtu8@bÕÖ¶÷—a#„X,•ÚóÑGg""¢ét†0bÞÄÄNooouà=q8Øùó/NœxÊá „ºiÆfs=*®®®‡§õŒ†û$SEEŃF$00%%†!¥ Ί:–qÁÊÊÊÏÏo˜ ioo§Óé#pÄÅåIIIq8üýܸðǸ/]J{þ¼ìСE––ð¬ö8¥©©©¨¨Èý’l Ö¨Tjii©¨£ï£»›uúôˬ¬î[D’–& „BOóÖ­ç®®¢/z<ü$;33sÆ # Œ”¾þ'ܸ}û¨#BBB†Ÿd×ÕÕ57÷Û0,†îÝËÃoÄII¤¤Â0„a_9$„PEEëúõ—×­suw7E¤@Äœœœ ÉcÌÌ™3ExóçÿùeÜÕÕËb±;;él6‡Jía0Xt:³»›Á`°¨Ô‹C¥ÒBžž–“'[‰0দ¦¢¢¢‘Z<ñ"G>ü׿ŽÃë„ 44t¤¥««K$ŽÌ†ýïS¦(ik«¨¨(¨ª*¨ª*¨¨(¨ªÊ«©)ª©)âÃTu¼@d?~Ì7’lÀ¨SV–GA-b06l˜ 6=áìÙµ¢ŽŒIðà#€1Lúñ@_d0 É`„A’ Àƒ$€I6GÊËË ‚À¼yófÍš5ˆo¸ÁÐh´mÛ¶YZZ***ÚÚÚFFFöôô¼ëÒ†²ùuuu+V¬°°°PQQñòòºyóæ{†>rByy¹¨£žá·C™røøÎ‘}ûö„ƒrÇ\¹r… HNNV­Á7(¿÷æwuuEDD¸ººªªªzyy}ûí·,«ïdà ~øÀ%Œ·³Á 2 p‚Œ6H²Á8¢¡¡±cÇŽwëÖ­[‹/æª+**ttt†?7˜Í›7ggg_¿~ýÍ›7gΜ‰ˆˆÊŠx't‡´¶¶Nœ8QII):::==ýƒ> »ÿþ0·bôæ’HÃ9n¹óŽêþä=G0 »r劙™Ytt4w‚E‹Õ×××××?{ö !TÿüMÉÏž=«¯¯¯­­=wî…Bqwwïèèxï`ÞéˆJ¥zzzfdd:t(++kçΗ.]"‘Hl6»ïÄïüûÅú‚äÀ "Tb¬±±1))iÄ[VV†üÜ,X° »»{¤Ö8̹¸Áhhh¤¥¥qÇ?yòÄÌÌl(+z§Hþýï/_¾œw̶mÛüüü†8û{¬q(s!„ÊÊÊÞuC1RÇþõ9üåðÎqû~ŸÂñ®+77—@ Éd„PII ß”}Ãàû49ÎŒ3öìÙóÞÁ K·mÛæããÃb±¸ch4š……Å©S§ø¦ñà߉À-½³ðá/§     `øËá'ÈPÀ 2z'HRRRcc#ïhÉc^\\œ±±q{{;Bè?þ°³³ëêêâp8GuttTUUõööNJJÂo pû)!!oµ544äÞÈkiiQVVVTTd±X‘‘‘fffººº«V­âþïèèøè£tttLLL¶mÛ†÷Ù —.]rttÔÒÒúþûïBS¦LAüYh—ÉdFDDèëëëééEDD0™L[Á77„ššÚ±cÇZ[[ñÿš1cFuuußõÝ(Þ ¸;¤¿­»~ýúçŸλ—"##Ïœ9#üm瓘˜hcc£©©ùÝwßq7$66ÖÞÞ^OOï³Ï>ëíí8²¿O_ø„sÜrçôS@Ý8ëè訫«{ðàÁ‹/ZZZª««ïÞ½Ÿ+>>ÞÅÅEAAÁÊÊêâÅ‹|ëÂÿ¼r劯¯¯ŸŸŸƒƒo[Ý„O?ýôöíÛèŸw{ùz<|øÐÌÌìéÓ§C<ÂÑW„PTTÔž={¤¥ÿ~ý¶²²rDDDTTßÚ^àNæýüùóxl‹/Þ²e >Koo¯¦¦&¾„¾³³ÙìÇÛÙÙ©ªªN›6íÅ‹÷¡œN~À 2ÆNQJçClY\µjÕêÕ«ôõõ_¼xaØÉ“'õôônܸQWWwûöm„Pßvî…B‘““[»vmmmmTTB¨©© ð³gÏ^¼xðljļ¼¼üüüÉ“'oÛ¶ _uxxøœ9s^¿~——çìì¼wï^ ÃBÁÁÁííí§NBµ¶¶òý¤>tèвeËÞ¼y“——çîîþå—_ Ü ¾¹¸Á`vÿþ}cccyyy‰tøð᪪*|<ï,7Šwî°À­Ã¿ÞÚÚÚúÛíÂÜv^¡ÀÀ@ …rýúu„PKK >±¿¿iiiZZšÍÞ½{Žø@rK¶ŽÛþÚö~ ¡°°0 …rúôi„Phh(…B9yò$¾“i4š¼¼ü‰'êëëÏœ9###C£Ñ°–ÇÒÒòäÉ“†íÚµ‹H$òmò  u†eddhhhðMÌ·!óæÍ{ôèQ}}ýplȇ+~Ø777óEžššª¯¯Ï»v6@ðw2ïì999ˆ§ó‡ÃÁ0,66ÖÈȈÉd œýÈ‘#¼‡‡‘‘QßÃlôÎLè-Ùp‚`p‚Œ©¤oK6$Ù@¬ 1éioo711qqqážD"ñüùóÜ .\¸0𵸷··¸¸˜F£±Ùì'Ožp/ Ë–-óL{{û7nàK+**‡ †´´4÷ÛâÆ666†!„ð° ¾(¾K§ƒƒC}}=>L&“ÝÜÜnß\Ü`p,+--í›o¾qvv–––¾téß,7JàVàÖµµµ!„ÚÛÛîs!o;/„ÐãÇ1 ûrW‘——‡Omcc#p¤Àr 9ÉÂqÛ_!ðS@eggc}v¼Ãeeemmm²²²?üðC{{;‡Ã¡R©l6ûça™––&##ÓÒÒ‚aXVVB(??Ÿw“G*‡À?Ö¡áC?\ûË!ž?®££ÃwP œCôÝɼ³scëêêRVVNOOÇ0ìƒ>عsg³ÛÙÙõ=<øâ½³z’ ''Ș:A »Lëׯ/,,ܸq#>¦¢¢ÂÍÍ;‹‹ËÀK““+-- ððð8þ<>’F£1™LMMM„Puuµ­­->ÞÑÑqÉ’%¡ÆÆF6›mmm·±±©­­Å‡ñßв²²WWUUehhˆ?sM"‘*++n/Þ`ººº®\¹‚š>žûо³×ÔÔ åðŒ³Á Ò8Aú›] OH²I¥… IDAT$¨©©9zô¨ŸŸßÖ­[ñ1ÆÆÆ¹¹¹Ü ^N ˆˆÈÎÎ>vì>òÞ½{ø°‘‘QUU>œ““sàÀ„¾¾¾´´tEE>þõë×ÆÆÆø0ß ÌÿÅÿÒmooOKK¸¼xƒÁ0lÅŠùùùøŸaîܹ}ß $p£¸u¡… þøã¼—﨨(&“©¤¤$ÌmïK`L¼í!TZZŠ_Fû)&„pÜöGà§0èº8εk×ÚÚÚÖ­[ÔÖÖÆ».6›}äÈê_¶lÙÍ÷õ?0 ÃŽ?¾`ÁîüÀ~ûö-ïdøWþÐðw:\ÃÃÿùæÞW%tuu:tˆ»¥ýý€ä ¾¿Üwö°°°˜˜˜¸¸8î÷zßÙ-,,†rxHÆÙàN1v‚ Úú € åö=›ÍöóóÛ·o_[[›A\\†aß~û­žžÞ­[·êëëïÞ½;h×½öövp÷îÝ®®.¼I8;;{åÊ•oß¾Å×éââ’ŸŸŸŸŸ?mÚ´O>ù¿bÅŠ9sæTTTäçç‰Dü¹iÄs ñÜ¢R©øÈÏ>û,88¸ªª*77wòäÉ›6m¸¼sñƒaØêÕ«íìì^¿~šš:eÊ”/¾ø‚oÅ;wóûÛº¦¦&mmíðððÔÔÔÜÜܽ{÷"„„¼í†:uª££ƒw±}W1kÖ¬²²²ôôt[[Û={ö9üãm(†Ò]D8Ç-ß,| ˜ Ë;L§Óbbbš››ÿýw:뮤¤$iiiÞ»¥™™™è¯»ê|ñp!ž—|=~üxÑ¢E&&&øg¿R÷Ì™3øÝ¾% ýdž|¸bÖÙÙiooïëë{÷îÝÒÒÒ7n‰ÄiÓ¦õôôðÅ?@ðw²À;õ†ásÙÚÚòÞìî;ûÏ?ÿÌ{xXYYáKÎÙ ·»œ Ü…Ã 2VNè“ Æ˜¡$=¿þú«««+ƒÁÀ0ìæÍ›†††mmm ã›o¾±´´TQQñöö¾|ùòÀ×b ÃŽ9¢¥¥ejjzìØ±°°0MMÍùóçs×ÒÓÓ³mÛ6###uuõ°°0nOå¶¶¶?üP[[ÛÐÐð?ÿùNÇÆL&súôé***øH …²fÍMMMmmíõë×wuu Ü î\ ƒ7 ÃX,ÖÞ½{]\\-,,vìØ¯šoE|¥§§Ç;wóûÛ: ꪪ‚ƒƒŒŒTUU'Mš„Õ sÛyÕß0¾!§OŸ677×ÑÑÙ¼y3N8ràcI˜I¶pŽ[~ Ø`;ß.kkk999‡ØØX¾ÃrÆ þþþ¼ÛÈáp¬­­wìØÑ7.ÞFSSÓððpÞo©ýû÷khhX[[ÇÆÆöÝö¾›ßߎ ùpŇi4ÚÖ­[•””ˆDâþýûñW°õÍ!¾ïNî/‡À0lýúõ***ø£rýÍÎb±>lcc£¬¬ìíí·ü úÁÔÙ 7Ɇ„»p8A°1r‚ôM² |{±ÒÔÔTTT4sæÌa.§¼¼ÜÖÖŽvI%ðó}}¤Ž·«W¯âïærà¸Ã7RgB(44!tõêÕa†„ßÇÇ+­ œ `øFðyüø±“““žžw ôÉ`„A’ óÔÔÔ6lØ0”‘Œ7pv0€Q=A »k#uû€¡·î"ˆqë.€Xî"Œ:H²ad0 É`„A’ À“u ®®®NÔ!€qF£ÈrØlLFFcß¾_ôõFdb«­¡¡!+%Eu BE¡0••e¤¥Ç×V#„***ðRÕÃ×ÓÓv ñ Éc@ii©¨C@°¶¶®êêÖ7oZ««[««[kjZ««[ß¾m×Õýè—_^´´\u€£BFF[AÁFAÁFVV·µõ:ƒQ#ꈴ´š¬¬^OO¹¬¬ž¼¼–9zëÒÒZ*+«G§—ÐéELfãè­H T’M¥R©Têˆ, ±ïÉ€Á1™ìšš6<“~ó¦åÍ›6<·¦R{BÒÒR††êffÚffÚææÚææhk«ˆ:ðÃbqž?/OL,¼{7¯®®ÃÚZoñâ‰nöö¢ !„®\y±k×òòƒ ¹7þ/33ÒÀ@}”ÖÕØH‰Ï¹z5½ à­‘‘Æ’%ááS,,tFiu€1 ’lø›Í©­mç¶Ls:;»BRRSS-¾LÚÜ\[]]IÔ&“ýøñ«øøœ‡‹ÛÛ»\\LI$'ñÉ­¹ž?½lÙÑ—/¿VSSpqÙóå—ó×­›1Ú+-)iˆ‰ÉŒŽ~ÑÒBsq1]¹Ò{ñbwùÑ^/`L€$0NQ(ôªªÞLúֺ͛º&“RV–·¶ÖãͤÍÌ´ ÕåäÆE/»înÆÃ‡Edr!™\D¡Ð==-‚‚ÜH$¢¹¹¶¨C¬¾¾ÃÃãë[·6Ošdõ¯]¬­m‹ûL8«f³9Ïž•GE=¿w/_JŠàïïì9k–£Œ ¼Z€q ’l€ä£R{ªªZ*+[*+›ñĺººµ¡¡¿ª©)òµL›™ikÊÊJ‹:pa£R{îÝËOHÈMI)e±ØÞÞ6$qÞ¼ ÆÆš¢m†YYmÿþûЯû÷ Ö®=›–ö•©©–0cèììŽÏ½v-##£ÒÀ@}Á×+&;: 3€ø€$ Qøò銊檪–æf*BHJŠ`d¤aa¡ka1^:{ QK íÞ½|2¹09¹„ÃÁfÎt t3ÇIKKYÔ¡½ƒ3¾[¸pâ¶m ËÅe÷çŸûoÜ8K$‘”•5ÆÅ½ŒŽN¯­mwq1 ö\ºÔclíLÀðA’ “0 {ó¦·§GIICuuKo/ !¤¨(gk«Ï›IÛÙéëëÖ“pcTccg||n||Nvvµ¼¼Ìœ9N~~N$QCcLþêXµê”ššâÑ£+B_|q¹¤¤áîÝ-"Œ‡ÃÁRSË®]˸};ÍæøúÚ{L‡wHŸ Ɉ;ȧGVUUËíÛ¹‰‰…YYUJJr‚‚ܦO·UT”uhòk×õ‚‚·±±Ÿ!„=*^¹ò÷ÔÔÿZZêŠ:.D¡ôÜ¿Ÿ“ùôi™žžj` Ûò哜E`tA’ #O¼C||niiƒ¶¶Ê¼yH$âŒöòòò(ç±cΜIÉÊŠD1™l7·È f~ö™Ÿ¨ãú[EEóÍ›Y×®e¾yÓjggâ¹|ùdÉyÏ#€$Ù‘a0X¯_7¿~ÝôúuSý§­¬t,,t--u,-u,,tÆÉË=FPzz™\D&––6è뫺¹zxXHKKÚ»/bc_nÚUYy­GDÄÕììê‡#D?Ë̬Œ‰É¼y3»§‡9uªÍÊ•ÞÐÉI6@HZZheexJÔÖ¶³Ù`l ùôHÂ0,#£2>>71± ¦¦ÍÐPcþ|—  WOOK .ž™Y¹pá/{ðw¡âŽY³æ ‡ƒ]¸ð±è‚x7’[·²ÛÛ»<<,BB¼–,qWV–u\€@’ À8ÕÑÑ7Qÿ•X×ãïÎSR’³µÕwp0Ä“i[[}33mèõ!*‹2úûá¾@_}u#?¿¯Gƒûã´]»nìWRó=› Ö“'%11™÷îåKKK‘HÄ•+½¡ b ’l$Þñ6O©«ªš)”„®®ªƒƒ!þ¢èõ!>*+›oÜÈ"“‹ j••åçÎu–Œ¢Œ£íçŸÉÑÑéÏžíâŽii¡MœùûïÍ›7A„¬ŽŽî„„Ü‹Ÿåç×i,Yâ>ÅÂBGÔqþ’l$Pw7£´´áÕ«úW¯ê‹‹ë¹}©ñЉx>÷¨63Ó‚f0ñQZÚŸƒeÔÑQ ´¢Œ£í?Òöì¹UVvwäÂ…¿X[ëþôS˜¨¢=%% 11™W¯¦77S]\Lƒƒ=ƒƒ=¡+b’lÆ<‹SUÕR\\Çͪ߼iåp0YYi¼‰釩©–×"£¸…c<(¬®n•좌£L.\½útyù!ÞÎ!G>øàDqñuu¥¾ÿûróæ¨ÂÂÐ-{DàÝH®^Mon¦º¸˜{.[æÕ—ÀA’ $›ÍÉϯ}ö¬<5µ,=½²««×ÌLÛÛÛzòd+//Kkk=Q„·(£´´”¯¯}` +‰DÔб(#£rÑ¢_^¾Ü+ðñ‰ÆÆÎ‰÷^¾¼aæLáÇ&©Ølγgå×®eܾÇápüýƒƒ=gÍr„– 0ÎAw i Ö‹ÉÉ¥ééùùµ½½¬ L¼¼,?ø`²··Ž´SŽGõõ·oçÅÇçdeU)*ÊÍ›7aÓ¦9Ó§Û** €% ^ ˆNg ü_}}uss파JH²G´´”ÝþýKãâr®]Ëøè£3zzj®aa“œŒD ¢I6ÅÅõÏž•¥¦–§¥½îèèÖ×W›:Õ&4ÔkÚ4[ QGDãõë¦[·²ñÂ1jj þþΛ6Í¢Œ’ ÿáD§3ú›ÀÓÓ2#£Jx'jjŠ+Wz¯\é]^Þ›}õjÆ™3Évv!!ž|0úbñº‹€1ŒJíIN.IJzõèQqCC§ŽŽŠ··ÍÔ©6S§ÚØÚê‹:: 2yy5dr!eŸjkÛ'Mú&!á wwsœ;—òÝw·‹‹¿…·6Ë̬Œ‰É¼q#‹ÉdÏœéì0AVVZÔ¡ ð•ÆžââºGŠ“’^edTbæáa±fÍôÙ³œŒàMRã·(#™\øæM«ú‚®ßEÇEź‹ „ÜÝ-h´ÞÒÒFGGC!Æ5II&M²š4Éj÷î…÷îåÇÄd~úéÿÔÕ]W®ôvq1t ••Í::ªð”*£ ÉcCc#…L.LI)}ú´¬½½ËÆFoîÜ ŸNòò²„[ÿ’§±‘²k×õcÇ>´í™¯(£••nHe×ð BOO¿I¶““‘¢¢\vv$ÙB£ªªââõömû­[Ù—.¥EE=Ç»‘„†NÒÕUíoÆŸ~•Uµ^WÆ"è.ÄZCCçíÛ¹÷îå§§Wr8˜‡‡ÅìÙŽ³g;‰Ðh-±ž>-Û°á|{{÷ÿþ÷‰ŸŸ“ÀiøŠ2ÚÙ¹BQF€b³9¦¦[OúhÁ×þ¦Y¼øWkk½\.ÌÀ·É­[Ùt:sêT›à`ÏÀ@W¾‘»»&|ÕÓÃRQ‘?wnÝÔ©6¢ €÷-Ù@ÕÕu$$ä&$äfgW)+Ë“HÄ_]éëk'ðÅ·@bp8Øÿý_â‘#÷BÒÒR ¹|Ivw7ãáÃ"2¹L.¢Pèžž_|áE/ii)))‹Å`š‰Íž>-ZH€·ɾ}K bb2·l¹²{÷Í… Ý‚ƒ=½¼,ñ6”øøœÞ^†a4Zohè±;üûßsD;ïZ²)+kŒ‹{‰?¯¦§§41(ÈúÔŽŸ|ráåËj6ûÏôHII¾¸ø€¬¬4•Úsï^>^”±·—éáaäEAÌ̶þüsø’%îýMpëVöçŸ_./?Oà‰‰††Îë×3ÿøãEEE³Þ¢ECC'mÞ|)3³ŠÃùó‚@ BC'}ÿ}|j`¬€$ˆ^uuëíÛ¹ ¹¹¹5jjŠÎn3fØÁ•tüxò¤äÓO/tw3˜L6ÏhÂçŸûUUµ<|XÔÝÍpw·˜?ßeþü ffÐn bn¾í§ŸÂ–.õèo‚ÒÒ†™3=x¯p+öìYÙÕ«wîä1l‹ƒÐ?R)ÓsçÖ ÐñI6™ŽŽîØØ—ׯgeeUih(L t>Ýrëq…Íæ“ÉÖÐP:{v-ôïDJŠÀ÷ƒŒŒ”½½aQQÐBïDYY.7·F`Çz&“ÝÞN[´è—cÇ> ˜ üØ:H²ð´´Ð®^M¿|9­²²eÊ«C‡BæÏwUSƒ ŽSéé|®³“>Àý´ŽŽîŒŒÊ)S¬…뤤¿IëädTXI¶˜JO¯¬¯ïèïY,‡ƒ­[wnËÿ-[æÂ›¦€Ø‚$Cjjùÿþ—zï^¾¢¢\Hˆ×ùóÓllôD¥³gS"#oa6p‹£¬¬ôýûdƒwB )É~ð P8ñ€w“)--Å}º/üºñã÷ß¾í8t…b ’l0Š¨Ôž˜˜Ì RKKœ¿û.xñbw%%9‡††^»vMÈá#ä54ülñ?1Œûê !ôÏÔˆÀdbÇ'ìÝ»XÈAŽ xîEøí.‚²³Óoi¡µµuii) 'ªQUXXØÜÜ,ê(F‹Å¹y3s€ ›×•+/òò^ÿç?^ÊÊ‚¿YÀ˜6sæLQ‡0,dƒQ‘‘Qyútòýû22RK—z=ºÒÙÙxй¦L™²eË!„D¨©‰ÞÑÁ ÓYxD§³BÖÛËF±X0™¼Gfo/{ñâKjjc¯®çóçÏúé'QG1ƒ'ÙÖÖz¡òòÆI“¬„Ô¨SSS35¼Pù˜’BìîîŇét&“ÉAaF¥öà#{zXø›ˆ0 £PzTU5¡•Déì쬭­uÃI6It:ãúõ¬¨¨çyy5ööû÷/]´h¢ªêP{]›šš†„„Œj„ ´a‹ÊPúdi(*ÊUT4KL’-//¯««+ê(’qý„$ŒŒêêÖÓ§“¯]KïîfÌ›çòÍ7‹%æ« 0¶°ÙœAßHC ,-u^¿–.1I66›sçN^TÔóÔÔ2}}õÍ›ý‚ƒ=õõÕE`üêíeÉÉ þífm­WQÑ$„xã$Ùà=µµuýñGZTÔóêêV»ãÇWL€G¼¢…a“É–—üÛÍÊJ÷Þ½|!„Ÿ Éï,%¥4*êùýû²²Ò|0yõjx@\0l ƘdWV¶ ¥o ¼H²ÁP1™ì;wòΟúâE…©©Ö¶maa“µµUDü­·—…’—üu4VVz ëíÛv33íÑ 0îÀÏw0¸ººŽC‡îxz~ýï_TR’»páãçϿڴiŽ8gØåååx°¾xóæÍš5k†2åðáëâþ¹oß>ôc›Š IDATpðàAî˜+W®ÉÉÉáýÓÂÂbÕªUïñŠÜan&ßì]]]®®®ªªª^^^ß~û-‹Åê;×p"þç"p ¡¼¼|8‹b¥·—‰JŸl]„<ûØ\?×OnHpý$Ù _,'>>gùòã^^ß\»–±~½oVÖÞK—6HD))q/c«¡¡±cÇŽwëÖ­[‹/æÎ[QQ¡££3 Ñý½.|ð+W®˜™™EGGs'X´hQ}}}}}ý³gÏBõ!‰¡gÏžÕ×××ÖÖž;wŽB¡¸»»wtô[…X ÷ÛEQ©TOOÏŒŒŒC‡eeeíܹóÒ¥K$‰Íf÷ø½#Á€c0ð–ìÁ“luu% ¥ªª–ÑjŒëç àú † ººöýûãÝÜ"Œþz,.î%ƒÁ핆„„„„„ŒøbËÊÊðãœ;0€ tww÷w4ð®+77—@ Éd„PII ß”}Ã@•••qÿäp83fÌØ³gÏ(…*oTÛ¶móñña±þ>Hh4š……Å©S§øæmä?P¾Fþ•?KxýºÉÐð‹‚‚Ú¡LðãÞ½·F;$!((((((ñÅÂõs”ÀõsPIII£±da‚–lð))¥6\˜2eTÔóà`Ïää/££7¹‰ÉkCâââŒÛÛÛBüñ‡]WW‡Ã9zô¨£££ªªª··wRR~k€[c 'NTRR244äÞaliiQVVVTTäÎ;eÊ„ÁŸ…ĘLfDD„¾¾¾žž^DD“ÉD„³gÏ:::êêê}×Èyg?þ<ðâÅ‹¹•A{{{555ñ%ôÍf>|ØÎÎNUUuÚ´i/^¼¸mll455¿ûî;µ··×ÓÓûì³Ïz{{Ž|×O ÁÐûd#„ÌÌ´kjÚF9"q×Oàú ×ÏQ$ê,ˆ­çÔ©'>>ß~1{ö÷/>£R{„Ã[²W­Zµzõꆆ}}ý/^`vòäI==½7nÔÕÕݾ}ÛÄÄ!Ô·†;@¡PäääÖ®][[[…jjjÂ0ììÙ³/^8 îСCË–-{óæM^^ž»»û—_~‰aB(,,ŒB¡œ>}!J¡PNž<‰jii¡Ñhòòò'Nœ¨¯¯?s挌Œ Fã]†aÇÒÒòäÉ“†íÚµ‹H$òmò -1†eddhhhôçáljDb^^^~~þäÉ“·mÛÆ·Ø·BàãÎŽg777ó…ššª¯¯O6oÞ¼GÑh´wœwöœœÄsk˜Ãá`kddÄd2Î~äÈÞcÃÈȨïE!H¡P®_¿Žo/¾RÿÒÒÒ´´4›½{÷ ÙÏAú'hɉ—/« ¿¨®nÊÄûöÅ‘H‡G;$!bK6\?1¸~Ž‘ë§d´dÃÀxWUÕ²o_‘¸ËÄdËGNJ*f³9"‰dˆIv{{»‰‰‰‹‹ ÷%‰çÏŸçNpáÂ…¿$z{{‹‹‹i4›Í~òä ÷²µlÙ²¶¶6³àêëëña2™ìææ†aB(;;Ã0ƒÁ7\VVÖÖÖ&++ûÃ?´··s8*•Êf³y×…aXZZšŒŒLKK †aYYY¡üü|ÞM~×/‰¾qÚÛÛ߸qSTT„ó}I °÷Ø _ÏŸ?×ÑÑÁ'ËËË{¿Èygç®±««KYY9==ð>ø`çÎýÍngg×÷Øà‹!ôøñc ÃðÜMãÆmcc#p$6 H²E"-íµ¡á”¡L|áBª½ýÎÑI†˜dÃõƒëç¹~JF’ ¯ð¿ÒÒ^ÿþû“ÄÄ--å•+½?üpª±±¦¨ƒœ††Æúõë¿þúk¼B¨¢¢ÂÍÍ;‹‹ËÀK““+--ýä“Oh4Úĉñ‘4Édjj´ªªª ¹ª«ÿYØRUU!$++Ë7ŒÒÔÔLJJú¿ÿû¿ÈÈHww÷;wΛ7o]W®\a±X¼OEGG;;;º+x•••Y[[÷goo¯­­-þ§£££££cß% °÷—†††ANNŽŸŸïøœœ|ØÁÁáý"8»’’Ò¢E‹bbbœœœâãã_¾|Ùßì c(ÇÞB#%õîsÜ=æààP[[;ÀH V:;»BŠC™ØÔT‹B¡S(t5µ!M?ÖÁõS ¸~ œ®ŸÃ}²Ç&“}ófö¼yG–.=ÚÙÙ}æÌÚ¬¬½_~¹`LdØ¡ššš£Gúùùmݺcllœ››Ë °°pà%ÐéôÐÐЈˆˆìììcÇŽá#ïÝ»0ðŒx»þó´½½=--mÐhét:‡Ã¹víZ[[Ûºuë‚‚‚ÚÚÚx×Åf³£££9BýË–-[¢££1 tá\†?~|Á‚ýÅiddTUU…ÿoNNΆ¾pÔÏãþÍ7ßð> ßÕÕuèÐ!îfr¿oÞ5òþf ‹‰‰‰‹‹óððà^¸ûÎnaa1”cC`÷S¼é!TZZŠ‹ô7ˆ•Žº¢¢ÜP^á‡23ÓB½y3^ºeÃõ³/¸~ö7;\?‡’ìq¤¡¡óÀw÷½Û¶E{zZ¦¦þ÷úõMsç:‹ÉCCÁápÖ®]»yóæ?þøãÁƒñññ¡µk×FDDÄÆÆ644Ü»wïË/¿x!½½½ CNNŽN§GFF"„¨Tjllì¢E‹N÷„C-]ºtçÎÕÕÕyyy¿ýöÛ ÿëׯS(ƒ!++«¤¤Ä»®”””¦¦¦ððp•¿¬X±¢¬¬ ï?7€æææ†††·oß>yòdÉ’%•••ÜgYúÆùá‡îÚµ ¿¡¼iÓ¦êêêA#ç%pñN°gÏž¦¦¦9sæÜ»w¯¬¬ìæÍ›“'O666Þ¸qã0#ï/$ÿöööÈÈȵk×rGöýÓO?å=6öìÙƒOyúôéÎÎηúóÏ?///ÏÈÈøïÿ»råÊF±ÒÑÑ­¡¡4ĉML´¤¤oÞ´ŽjHb®Ÿ\pý„ë§Œf_ .Þ¾mß½û†µõvGÇÿ8__ß!êˆJŸì_ýÕÕÕ•Á``vóæMCCö¶6ƒñÍ7ßXZZª¨¨x{{_¾| اð#GŽhii™šš;v,,,LSSsþüùܵp§d2™Ó§OWQQÁÇS(”5kÖhjjjkk¯_¿¾«« ûg'9ÃÑÑÑÖÖÖrrr±±± ƒw]6lð÷÷çÝF‡cmm½cÇŽ¾ñpñžÂ¦¦¦áááÜÿígOO϶mÛŒŒŒÔÕÕÃÂÂÚÛÛ±>} Þ ¾=¦§§ÇFÛºu«³³³’’‘HÜ¿?þ‚-¾ÉÞ5rÞÙùµ~ýzüA¨þfg±X‡¶±±QVVöööÆ›vÝ^|E§OŸ677×ÑÑÙ¼y3N8ôɉ￿3{ö¡¡OïæyüxÒ¨…#$Cé“ ×OîÂáú)þ×OÉè“MÀÞå® s^¿n:zôáYzzjŸ~:3,lŠ’’œ¨ƒ,44!tõêÕa.§¼¼ÜÖÖlðÞBïq\]½zuùòåp( Ù®]×_½ª¿~}Ó§_¸ð“ýû—ŽjT£ ¿•WZ¸~‚a©ëgSSSQQÑÌ™3G8>á‚%VJJé?ÜËȨts3;}zÍœ9Nâ_¦†éº‹ „Œ5jkÛG/À¸I¶Êʪ:|ø^rr‰««ééÓk&@z ÀЩ©©mذa(#êèèÖ×WúôFFOŸ–^<Œ+pýüöî3 ©ëmøÍd‡ ‚€l (Ȱˆ¢âF­Š£Zµhëª2Ä…uãn­V´­Š ‚Š ¢ˆ¸E@e²dï=³îû!}ùS 37¹Ix~ŸâõÞs’“äɹgtI¶XÉÌ,;|ø~TTªÞkœ†ã8«oâajjj}9„P]]‹‰‰Fïçý¿!CäËÊz™Å5xÀç'à|~vI¶˜ÈË«ô÷¿™lg§çÎ[[}¼#ÔÕµÊË÷c¸ˆ††BUUÎìãªÐGð™"òª«›þøãñ¥K¯´µ•Ξ]îêjÉuÑJ ú;&[CCEѲ²zeþE„ ÉaL&ûÒ¥—ÇŽ=““:|Ømþ|2> ^L&»¡¡UQ±I¶¦¦<‚ d0I¶¨Š‰ÉصëVUU£ÏŒ+¾¡ e€OJKëX,¶¦f?ö¯US£‘ÉÄÒR– À$Ù¢§  z×®ÛÑÑi ØìØ1«_óè@Œ•”Ô!¢¥¥Ð÷KH$¢ª*s!`’lQÂb±Ï{úÛoTTä._þqòd3¼#!R\\K¡TUiýºJS`’l‘‘›[¹iSPJJѦM.ëÖM’Ã×îæÍ›¸ÌÚ$¥©T e•ªA§—56¾| }D¡¨‘Hòmm<-ëK$J (EY.D’—ÐniùÈK`®¤¤nÈùþî  ®._^.òIveeåÓ§OñŽð?b˜¨‰‹ýÛoNz{Vjb¢àáaÊKQ›6½^¹rø¨QŸæõæMyHH®µõ¼Å‹ TU¥x  •”ÔÚÙêê´ôô~Ä#0ÚÚÚjjjxGøH²…§;5µØÇgúÚµÎ$’Ø®âààÀ¿ÂQÍÊ*OI)LHÈ‹ÏËÍ­`2ÙJJ2ÖÖºÓ¦Ù£gf6TVV‚ðèÁƒÔíÛà æŸ.wuµâ±´M›^ÛÛÛÏž=ðrÜÜ,õòºqøpЇÇoïi°Æ0ÅÅuššýÍ¡¢"WYÙÈx†Fë߀À÷¢P Ž÷ó»­¥¥ùˈCñGÄ44´¾}››’RŸ—œ\ÐÐÐF¡¬¬tÆ3^·n¢­­þ°a"°bWuuÓöíaI ØìÚ5[UUïˆþejªñ˵kq{ö„ß¿ŸrìØ"¼ƒƒ]qqí¤Iýž¬¢¦&òI6@A’-¤ètæöíaׯ¿ýé'ç­[gÀ }}TYÙŸ›÷îÝ—ÔÔ":)++ae5ÌÝÝiÔ(kk]%%¼c쇫Wß8)#CÎy®D"aÙ2''cŸ› œYºÔÞÏoŽ0ßbo`=Ùjj´ÆÆ¶ÖVº”•Q'H²…Q~~Õ?\,)©»|ùÇI“x};ׯÅåÄÅå¾}›“] ˆ¡¡šµµî¢E¶ÖÖºÆÆê¢8Ʀ¨¨Ö×÷æÓ§ŸV­çã3]NN¥££|ãÆÚˆˆ$_ßÐèètÿS§ŽÀ;(055µ××· `L¶ŠŠ‚ ••° Cd ¨¨ÔM›®ii)=x°Y\ç8òˆÍF?~,zñ"+>>ïÇ/UUMd[[ý9sFÙÚê=LFF„;SY,v@@쉆U¸uk½­­>Þõ‰««•½½Á¾}wW­úÛÕÕêàÁùÊʲx—’’ZA†@O6$ÙìA’-\þüóÉ¡C÷¦NñÛoßÁm÷ÎètæÛ·¹ññ¹ññyïßinn§Ñ$íì Ö¬™0fŒž……¶¤$ï1•Uæéœ’R¸qãäõë'‹ÖBªªr§N-uuµòõ 7îÐöí³–-ããdVº(,¬EdÃETUåBE Ë`I”¾ÂÅ›úùÝþçŸW¾¾3~þy".ËE ›¶6FBBÞóçYññ¹?·¶Ò¤Ç3Þºu†­­ž™ÙP2YôÆt‡Ng=uþüSsó¡QQ[LM5ñŽh€\\Ìíì Ž}àë{óáÃT·ܾ`²³ËUUåäå¥û{!•J¦Ñ¤`î#[d …¶6ÆÚµ—Ÿ?Ï twq1Ç;<1¬ÄÄü7o²ãârß¿Ïoi¡Óh’¶¶úžžSíìô-,´Årèû÷_¼¼‚ ªwíš½r¥£¨ÿx Ñ$÷íûvÖ,Koï`''ÿ-[¦üôÓÄþî@åäTp­h55¹ÊÊlã rd㯡¡mÕª iiÅ×®­±·Œ‹ qÆX¿|ùùåËÏoßæ¶¶ÒUTdíì ¶m›ioo`jª)ÆùYssûž=á×®Å}óÑÅ‹?ˆÄª‚}dg§ÿè‘×™31GŽêá1ÁÇgºXÞ‹Â '§bÀ+Û((H×Õ5c`ƒ$O¥¥uK–œknn ùyÀ0¢¥²²ñÅ‹¬çÏ3_¼ø\ZZ'''iooàã3ý›oŒÌÌĹǺ‹ššæmÛB#"’fͲܿ>gqqef¦ñË¥K/ýýï=y’~ìØâQ£t𠈛††¶ÊÊFƒ~*(H——×c`ƒ$7ÕÕM‹„ðð˜/BÚÛ™oßæ<žõôé§ŒŒR …dg§ïîî8v¬‘……–(.bÍ£›7öï “Iÿü³z Á'“‰«W;MžlæãsÓÕõ·ï¾³ß½{ŽH¯´„ͧO%‚˜™ pư‚‚TVV¦;H²ñQ[Ûìæö'•J [O£ ï>#Æ`°âârž?Ïzñ"+-­˜ÍFGŽÔš>}䉋ÅlU~))©óõ½“±t©ýή4šÞ ”®®JpðÚÐÐÄÝ»ï<žu䈛“Óp¼ƒb"=½TQQfÀòòÒµµ0&€%H²qÐÔÔ¾téyƒò³˜eØ ­OŸf>y’û©²²QNNÒÑÑhéRû L´µ•ðŽOl6øâèÑjj´[·ÖÛÙ‰Æ3˜#nncÆ7Ù±#lñâWW+ÿŠŠ¢´×=N%&&C|¹‚‚t]$Ù,A’-h--ôï¾;WZZçÎ1ÙïÓ§Ò'O2bbÒò˜L¶¹ùÐÅ‹íœMllôm§ugÙÙžž7Þ¿ÿ²v­³§çTñØ7‡jjrýµ2::mëÖ›&Þ¹ÓÕÍm ÞAÑ–ž^bi©=àË¥ZQ¿ùǼ@’-Pt:ÓÝ=0'§âÖ­õ¢¾X[CCëÇ?NõêsMM³¼¼´‹‹ÙÊ•ŽŽŽFÐ1ÙÁ`:}útÌðáQQ[Ì͇â‘qq1·³Óß¿?â—_®GF&ûû/ÐÐçÉ €ØlôÓ§Ò%Kì\‚¼¼4‹Ånlllƒ¸üI¶à (êéœwýúšáÃ~[_ÕÕM}ŒŠúøâEV[COOuÞ<ëÉ“Íìí ¨ThNÿ‘”Tà霛[áå5mÍgèÔÿ&uäÈÂy󬽼‚{yMww7x™XÉϯjnnçeŸTiAêêZ É`²"Áùã˜ðð÷—.­¶µ½ñ¸ÕQQ£¢Rò±³Ó÷õéâb¦§§Šwh¨¥…~èнþyiooð÷ß[uuUðŽH¨ÙÛ<~ì}üøÃ={Â##“[4HV´Xy÷._B‚>!55Í.XºÔ†xö…¤$eÇŽYsçŽÚ²åÆ”)ÇÖ­›¸q£ l[úèÇ/#F å¥Á((H!s‚$[>}*ݲåÆ÷ß;,_>ïXú$)© 22922¹  Z]6eʈ)SF8:IH@ƒéImmóîÝwÂÂÞMŸ>òÀùêê4¼#1ææCïÝÛ|î\ìÑ£Q¤?¾˜—©l`ðxÿ¾`Ì=^J““"‘ˆuu­X…3ñ]MMóŠ,-µ÷훇w,½HN.ŒˆHâäÖÆ)»ºZ͘aae¥ }±}™¼sg›,wuµÂ;QE&×­›4s¦¥·w°«ëo+V8nÛ6SZnµµ122J~üщ—BˆD‚œœ$ôd0I6±X쟾B$þúk¥pÞûîrï^rYY½±ñ77›Y³¬Dwj¦à•–Öùú†>~œ>8·˜á]]•Ÿƒ‚âöî ‰I?rÄÍÑÑï €JK+a0XVV:<–Ke°I6?þðíۜ۷7áªv99¡¡‰ááòó«´µ•æÍ³ž5Ë’÷/ªAEÑ  ¸ýû#h4É  LðŽH|„eË\\̶m [´(`þ|ë½{¿åÌN ³øø\eeY}}^'a+(H××C’ À $Ù|ûé÷ߣOœX,T™k]]Ë;ÂÂÞ½û¢®N›;wôìÙ£F¢EENN…—WpbbþÚµÎ[¶LÉ ü ®.è‘´}{Ø„ þÌŸ9Óï €pyó&ÛÁÁ€÷Qm Ò0&€!H²ù¥¢¢qãÆ yó¬-²Å;A–ú½{É¡¡‰¯^}––¦Î;z×®Ù66z°&ñ°X쀀ØãǦ|çÎFkëaxG$æ\]­œœŒˆüñÇK..懻 "wP@(°Xìøø\Ÿ¼¥  ]W×Ì{9ÀI6_ (úË/×h4)ÿxÇ‚¤¥_¿þöÎ÷µµ-¶¶zGŽ,œ5ËŠF“Ä;.Q•’Rèéüùs¹·÷4 Â9Ô^üÈËK9²pÚ´‘¾¾ÿîÄË#A22JÚìí x/JAA*3³ž÷r€’l¾¸téÕ«WŸÃÃ7ÊÈHàCK =<üýÕ«o>|(6LyÕªq ؈ú^îøjog;uî\¬¥¥öÇž07Tð&N4}öÌ÷ĉGÛ¶…ÞºõîØ±E¼Ä"íÍ›li Þ‹RP‰ A’½ŒŒÒ½{Ã7nœŒ×Pì/²®^}óèÑG‰8ožõ¡C ,,`±a^½|ùÙÇ'¤ªª¶˜Á—”uÇŽYÓ¦ðô ž<ù¨§çÔµkI$ز~zû6wÌl†½ÑhRõõ0&€H²1Æ`°6m 9R{Ó¦)®º¥…‘tõêëwᄅûúÎts£¤$t«šˆœÆÆ¶}ûîÅM™b~ûözuu Œ?kkÝèh¯óçŸ=uç·'©…wP@Ð Öóç™;wÎÆ¤4YY‰¦¦vLŠ’lÌ<ù(/¯êÑ#O2Yp]k¥¥u/¯^}C§3]]-ýüæð¸ùèpÿ~ÊŽaL&¶˜6 iݺI“&™yyÏœyrÍgoïiT*|¦ " yMMíÎÎØ,)-Mmm¥cR dc+)©à?:´@OO@ãDSR Ï{™¬¤$³nÝÄï¿w—‡…„±QUÕ´cGXDDÒ²eÛ·Ï‚š…“‰‰ÆÝ»›®]‹Û³'üÞ½ä£G}ó!ÞAyúô“¡¡š¶¶&¥IKS ƒÁ‚ÙÌL@’ƒµyóuÃeËP×;ï/\xžšZdm=ìÂ…U“&™Áb|XéØbFNNòÊI“LñŽô„H$,[æ0~üpŸ… ÿ\ºÔÞÏoެ,nsŽÀÄÆ~rvÆìí)-ME¤µ•N¡À¦­ @’™€€ØüüªÀ@w¾ÖÂ`°BBâÏœy’Ÿ_åèh´f„á0 CEEµ>>!ÏŸgþôÓDØbF„hk+]¿¾6""iÛ¶ÐèèôC‡æO›6ï •—×§§—øúÎĪ@N’ÝÒB§Ñ É`’lläçW<ùhÆÉü(Âd²oÝzwòäÃ’’ºyó¬ÏŸ_9bÄP>Õ58q¶˜9qâ‘––â;ll`\»èquµ²·7Ø·ï®»{ ««ÕÁƒó••eñ ðEdd²¬¬Ä¸qFX(-- HK Ë`’lllÛª££¼aÃd~Îd²oÜxûûïÑUUË–ýùgg ~T4˜ef–yyÝHI)òñ™[̈4UU¹S§–Ξ=Ê×÷¦£ã¡;f `¼R'M2ÃpªkGO6V9X\·o¿þ<ëða7Ì33EïÞMš<ù¨¯ïM;;ý'O|öíû2쩨häzœNg89eÊ16Šò\·ndØb`òd³Øý¨Ió IDATØ­ ØøúÞ\¶ì|QQ-×Ó ì?"Šª«›Þ¾Í>ËAœ±aÍͰŠd󪾾å×_ï,^lgg§mÉÉÉ…®®¿ÿüóe“!Ožøœ>½L`‹–ˆŸ‹_.[vžÉdw9þæM޳ó‘K—^80?"âSS öBBNNrß¾ooÝZ_PP=~¼ÿ™31,V×pæLÌ?^úú8r}¤PH'b9)z²Ø‚$›W‡ßg2ÙÛ·c6ùAââÚ+.LŸ~BYYöåËí+Œaï{÷.ßÏïvZZÑùóO;65µûø„,XpF[[)&Æ{Ù2XžE,ÙÚêGG{ÿü³ó‘#æÎý#+«¬ã¿>.?qâÑëן~€c„`>Lst4’‘Ár NOvK ôd°I6ORS‹._~íç7«ÉUt:óøñ¨ñãýó󫂃úçŸÕºº*˜”uêñ‹Yööú¥ÿß0Ð_~¹6|øáÃá–‘¸sç™LâǬÒÒTH²Xžì{øðãû÷_üüæð^Tk+ÝÏïö¼y§UUi±±[}|¦C†‰}û1,Î?™LVFFILLú¥K?\¾ü#d؃ …BÚ²eê³g¾äÀÀ?½Pa2YË—ÿÕØØ†o„ /BC§MÉB- H²X${€ Öþý³g[¥ÃcQII“& Ž÷÷w»~} ŒÁJhhâß¿è2Ù‘ÍFkjZ`Œû`¦££„ H—-œ˜LviiýúõWPÅ).Ð'yy•‰‰ynn6ü(z²‚${€®^}]\\»}û,ËùûïçsæœÒÓS‰Ýºl™ì݈•ÌÌ2oï`á’0¡(ºeËuÈ¥­k×âÞ½Ë︿ÑÉdÅÄdœ;÷ —¨@ݾý^SSÁÑј…KKS[[!É`’ìhhh;~üá?8ik+ ¸ÖVúš5ÿìÙîé9íʺ€¡–ú?²Xl®‰4ƒÁŠ‹Ë¹sçƒÀãø«¨hܳçnw¿°ØlôÀˆÄÄ<ÁúŠÍFCB\]­ø´´4V`’ì8}ú1‰Düå—).¡¬¬þÛoO¿x‘uõªÇÆ“añ8lmÞ|½  úëU±98w vî «©ihX@ìÚu«©©­ç;Fîî••Ü·.øŠ‰I/*ªY±â>•ÃE‚ÕEú­¨¨ö¯¿žùùÍ‘•à­Ÿ?—/\xVAAêþýÍ0s.<¿w/™ÍþO_%™L"ƒ%##ag§?v¬¡œœ$^A¼øúΘ8Ñ4..çÕ«ÏEEµD"L&ÑéÌŽX,v]]ëêÕÃÂÖ“ÉÐ !\®\yýÍ7FüûØ”–†‰Ì@’Ýo‡ß×ÕUùþû±»<-­xñâmm¥k×Ö((HcˆÏݳ'œ“aS($6e±ØŠŠ2cÇØÛ88š˜hÀ}ƒÁLOOUOO•³ìfYY}\\N\\ÎË—Ùyy•‚JHPÚÛL&+11ïСÈ]»fã/øŸÂš'O2Ο_É¿*¤¤(ÕÕMü+0¨@’Ý?™™e·o¿;{vùÀº¸òó«–.=gl¬~éÒêîºQŸ={¶ÿ~Þ¤˜LJNŽ‹EF„LfJK×ËÈ4KK7KH´çç¿ÍÏGnÜÀ;Äî999íÚµ ï(°WWW÷å˼£è–žIOÏxÉãúú¶´´ŠÔÔ²¤¤Ò‚‚:6 xª¤„::êâ£HRPP6l¶e^»§¦F›2e¶ÅvF¥’ÛۻΈ€$»Ž21ј5k ;ÖÌ›wZOO5(h¤$¥»ÓÊËË?~ìææÆC˜ƒŠ"ÙÙŠÊÊtyùF­]R²ã›RA„ýŽÁ›7oñŽ‚/ètzmm­ªª*ÞôBYYÖÉIÖÉIAæfúÇå©©eQQŸMLÔ‡ ‘Ã;:ÓÐÐ@&cüåÒÞμv-î»ïìù:†‡B!3™d°Iv?dd”Þ»—rîÜŠ,´WYÙ¸hÑYeeÙþù±‡ »CHHÈ€b"iáÂ…x‡À_æææx‡Ð?¶Øìâ:H¥¥¥a^æµkqmîîã0/¹3 …È`0{?ú’ì~8{ö‰¡¡ÚŒý½Édÿüóå¶6FHÈÏ4L¶€~`2ÙçÎ=us£ªÊß»  ™Áà¾*ôÌï«ÊÊÆððë×OÀ´¹ýûï~øPä¡¥%žC€îßO).®ýùç‰ü®ˆB!AO6+ГÝW—/¿VT”ž;wt/¼v-žº›šjò#0ogÏ>™1ÃbØ0e~WD&¿Þ z²û„Á`]½úú»ï(R¿.ÌÈ(Ù¹ó–»û¸©Sù8#ÄÕë×ÙÉÉ…P•J†$€H²û$&&½ªªiÉ»~]E§3ׯ¿ja¡íç«í@¿¡(º„³³‰µ5Æ rE&“ É`’ì> Iøæ#mm¥~]µDII}@Àòþöc(;;›³Ê×zPPP°jÕª¾œÉ;N]‚777ýßNü _å„ììlþúÚsIJ=ÇÄd$'nÝ:C0ÕQ©d0Ivïjk›cbÒ,°é×U±±Ÿþþûů¿Î2DžOõ…‚‚ÂÖ­[û{Õ;wæÎÛqmnn®Š ¿ö1æÔÅyÌ§Š¾6°'àÚsį=³Ùè¡C‘S§Ž°°ÐLГ À$Ù½»w/…B!õkå¾¶6ƶm¡ÎÎ& Žá_`}¡¢¢âïïßß«=z4eÊ”ŽkÙlvuu5¢û_]œÇkÖ¬Y·n]YYŸêêb`OÀ´çˆ_{¾?%3³ÌÇgºÀj„žl† ÉîÝÝ»I“'›IKSû~ÉéÓ1µµÍÇ/âÓÝá»wï:´¶¶Aëׯ777³ÙìÓ§O›ššÊÉÉ988ÄÆÆrî÷Cddä¨Q£¤¥¥544:¾ž«ªªddd¤¤¤:®µ··GdÈ!œ †···ºººššš··7ƒÁ@„@ šššªªªúûû_¹rEOOO^^¾c«ðˆˆ III}}ý+W®t©‹óÏÍ›7›˜˜xxxt¾ÉŽü÷>xçǽVúu¨œËcbbttt.]ºÄ)ŠÉdîÞ½[GGGUUuùòåuuu\Ÿ®G***:t¨#’ðððáÇ«©©mܸ±½½ëÁ>¿°ƒ´gÎchÏ1¬Ã‡ïÏœiib¢!˜!“It:,áÀ zTW׬­½åÎ÷}¿$;»\GÇ30ðùÀjäÜ_îõ´åË—¯X±¢¬¬L]]ýíÛ·(Šž;wNMMíÖ­[%%%÷îÝÓÒÒBäóçϜҾ~ÐÐÐ@¥RÝÝÝ‹ŠŠ®^½Š HEEŠ¢W®\áz ÇáÇçÏŸ_PP’’2zôh___EY²dICCÃ… Y¸paCCùs穪ªjjj’(--ýûï¿ÉdrSSSçº8%|þü9++KJJêâÅ‹ÝÐùqÏ•r •sùôéÓŸ§¨)S¦deeÅÅÅþúë¯\öújº¹¹qÆï ††Æ/ááSWyyylll¯§A{îµR®¡ g{þøñãÇ{=­güñØÀÀ§¤¤–Çrú%<ü½¦æfAÖcd÷âÖ­w::ž ­}¿dÑ¢³“'e2Y«±Ivmm­–––……EÇwž¹¹ù¥K—:NøçŸzNJÚÛÛ322šššX,Ö³gÏ8'£(:þüšš®—p˜˜˜”––rGGG[YY¡(Š Èû÷ïQ¥Óé]þü¹¦¦†B¡;v¬¶¶–Íf766²X¬Îu¡ÿŸ” (úûï¿Óh´‚‚‚¾$%=TÊ5TÎå)))‹>|ø­[·8§¥§§w<î A§OŸ¢(Êb±8åw.ŠóÂr=Øë« I6´ç^+åªp¶gÞ“ì²²:CíÇGñRÈÜ»—¬¡ñ ƒ1ÀOoè †‹ôâñã4;;}9¹¾î…“ñüyæž=sI$þ>· iii?ýôçHnn®••UÇ ½ "§R©YYYÓ¦M³¶¶¾téç`SSƒÁPTìigÊüü| @ \\\òòò8Çåää¡P(]#¢¨¨§¥¥5~üø/^‰ÄîêZ¿~ý¨Q£V¯^þ÷&;G—ƒ=TÚC¨&&& ùòå‹‘‘籩©é·ß~Ëõ×ÔÔD„HüÏ+Ûq¡‰‰IQQQA =÷Zi¡Š_{>xðž’’Œ¶x삳lúÀ$Ù=a±ØÏže:;›öñ|6=x0ÒÅÅ|ìXC¾† HaaáéÓ§'OžìééÉ92tèÐäääŽÒÒÒz.¡µµuáÂ…ÞÞÞïß¿ÿóÏ?9£¢¢¦M›Öó…***œ~5Ekkkãââz¶µµ•Ífß¼y³¦¦æ‡~puu­©©é®."‘xñâÅW¯^?¾óq&“‰ Hqqq¯ÕõjçÄAMMÍüü|Î㤤¤p-ëh`NW‚ YYYœ¬¥»ƒ Оûb´ç””°°D_ß™’’”ÞÏÆÔÿ'Ùl× Kd÷$#£´¦¦yüøá}çò . 6LEEeÆ ­­­\öüj¢ƒ~L6´ç*BE°=ó2&û÷ߣõô¼sr*v9Þ¾ÍÑÐø¥¬¬—Úb†€r&8ÜÝQ½xñ‡¾œ|ãÆ[_ßЗ/·kiõ4´W!!!‹-âýuÉÎÎ622‚×—¸>Ã{Ú.\ˆ HHH–ñuOSss@ÀŠÙ³­z?•gééé&Là±hÏü†a{æŒí177ïo ™™eS§÷öž¶nݤþ^‹‰wᄌºþ–˜¸[SS—↋t EÑøø\[[ý¾œÌb±Oz¼pá3lœX,¶§ç 33͵kñŠ3L~Ë0AÆ;áõåKuMM³]Ÿ’ìR ª×®õàwT@xÐh´5kÖôå Â÷ö|ùò«””Âû÷·ð{i¦p&ƒBŽ Àôdw+9¹B!1´/'Ÿ93eÊ}}U~GÕwœålñŽBœ©©©ôå à´g~÷=úTºo_ĺu“úø‘Ë'Г À$ÙÝJM-26B¥öÞÙŸ—œ\èá1^Q€˜ijjww´±ÑõöžŽo$ÿß“ I6dw+5µÈÂB»/g^¹òzÔ({{~‡âgçΰ††ÖS§–‰\–î¤ÿïÉÆ7 €˜€$»[%¦¦½žVUÕþaåJG„bæîݤ„Ç݆ ‘Ç;èÉ` ’lîjjš«ªšŒŒÔ{=3$$^VVrölöM‘–]áã¼rå73gZâ ‚t³ & $ÙÜeg—#bh¨Öói(Š^»7ožµ„¬ÓýPUÕôÝw66zûöÍÃ;–ÿ€žl& Éæ.;»BFF¢×ýòrs+/¶LT ètæ?’ɤӧ—á¸f_Б Àô¿r——W¥««Òë­Ã›7MM5Ìͱ_sг³AQ“I¡Pèx‡Ad2I ß0:ÔÔ(¨”T«„DÐm÷Xjjª“““ °ääd¼C‚ÓÜÜ,/ßËë­[off–FFnVPLT}ëd0I6wEE5::J=ŸC§3##“ׯŸˆmÕÚÚÚnnnØ–Éo Ôìl µ´¬Ä7’¢"ÙÂB9]݆!Cš…¡Sª²R¾¶V’Á ¨Œ CNŽ!+Ë•eHIщ:œìííñ “$%%UU…hýx òòò4­‡.^|’pöìò^‡ä ¬“ À$ÙÜ×YYõ²~ß“'­ß~kmÕØ–É?uu-~~·_½z7mÚˆƒç««ã¼>ƒÁ:þéÑ£QfÇ/¶´ìÓ"ŒüÖÐÐúéSiJJQJJaJJчe$ÑÀ@ÍÂBËÂBÛÂBkäH-))*ÞaòF377Ç; D‚ƒãwíºíç7{öl+¼cùôd0I6wÅŵ3fXô|Ndd²µµn¯ã¶ÅXddòÎa,°ÜÕU(¾/)Òºu“f̰ðöquýmÅ ÇmÛfJK㜿ÒhR¶¶ú¶¶úœÖ×·df–¥¤%$ä9S^Þ@&õõÿ—s[XhKJRð~Ž÷öÞ¸ÑeÍš xÇÂôd0I6,»¢¢¡çì™Á`=~œæå…óþdx)+«ßºõfttÚ²e;vÌ’—¢Q•‚èé©Þ¼ùsPPÜÞ½á11éGŽ,tt4Â;¨ÿ‘——æäÜ«W;!R^^ßÑÉ}úô㊊FȹøAQôÌ™'þþ÷¶n±aÃd¼ÃáÖÉ`’l.êë[Y,¶²²lç¼zõ¹±±}Ú´‘‹JH (·&´ÆÙÙ#Ë–9¸¸˜mÛ¶hÑÙùó­÷îýV¨¦XuPW—wq‘wqùwLEçœû?WVv͹--u`ÉH Zš›Û·l¹qÿ~Ê¡C ¾ÿ~,Þát v|`¾ª¹¨«kADQ±§„ìáÃææšZZŠ‚ J(äæVzy'$ä­]ë¼eËáF¬®.è‘´}{˜³óáæ÷: wý͹­¬t¨Tx#áõéS©»{`k+ãÖ­õcÆèáNO '€!ønæ‚“dËËKõpNttÚâÅv‚Š,; öøñ‡Ã†)ß¹³ÁÚZïˆúÁÕÕÊÉÉøÀÈÕ«/º¸˜9â†û;ë!ç>u*ºªª‰B!éé©BÎ „SDDÒ–-7Fvöì÷=ß^0_Æ\p’ì†dd”–”Ôuä=b/5µhË–Ÿ?—{{Oóð˜@¡ðލßäå¥Y8mÚÈ­[oŽxçN×¥KíEq årîß®®îšs5L_/ ššÚ÷í»ôfùò±{ö|+íÅBžÍq" ’l.êêZ(’ŒŒDw'<{–©¬,;r¤– £ÂE{;󨱍sçb--µ£¢¶˜˜hàO&N4}þÜ÷ĉG¾¾7oß~wìØ"==Ñ^¹‡œû·ßÕÔ4CÎ pñìY¦—Wpk+ýÌ™ïçÌ…w8}Åf³H²$›‹ºº–žd?žéèhD$Š^?h¿¼z•íí\UÕxðà‚ï¾³¿WJŠºcǬ©Sͽ¼B&O>¶eË”µkÅæ;µ‡œûäÉGµµÍÒÒTÎ¥qq9Ç14T›¿‰ššæmÛB##“—.µß¹s6&‰wDýÀbA’ À $Ù\ÔÖ¶((Èt÷¿t:óíÛÜ}û¾dHÖØØ¶oßÝ  ¸ñã‡ÿ¤­ÝËæ—"ÇÆF/:Úëüù§GŽ<ÿpâÄ’#†âöºË¹òBB.]z)##af¦Ù±P ‘‘ºxü”¸`³Ñ›7Žy€ È¥K?ˆâ€:.À$Ù\Ô×·ô0ë1%¥°µ•ng§/ÈéÁƒÔíÛà ¦ðl1Ümk&N4óöž9ó¤‡Çoïiâ=e°#ç>~üቋíìô:ú¹CCëë[de%LM!çñòåç½{ÃÓÓK/¶óó›#ZØþ¸4{Ä9¥°¶6F{ÄÇ穨Èêë‹öX^®ª«›¶o‹ˆHZ°ÀÆÏoŽŠŠ°/À;SS»w7]»·gOøýû)G.;Öï ¤K?÷—/Õññ¹œ´ûúõ¸–:äÜ /ÒÒŠ÷ì¹ûòe–««ÕŸ.74TÃ;¢ã !¡'€H²¹`±Ð’‰wïòGÖÅ…)zvõê›"ed¨W®xLšdŠw8‚C$–-spr2öñ¹éæöçÒ¥ö~~sde»ö*®† S6LÙÍm ‚ ,;;»‚ÓÉ’RxíZ\k+]NNÒÄD£#ç66V¿wè—ªª¦“'^½úF[[éâŦNwD¼‚á" A’Í›ÍîáC611ÿÇÇ 2~+*ªÝº5äÙ³ÌU«ÆùøL—“Éû¼<ÒÑQ¾qcmDDÒ¶m¡ÑÑé‡Í„Ûyv ‘ˆÃ‡>|äÜ€«ŠŠÆ³gŸ\¹òZZšº{÷œï¿+«ÖüÿÄGhÉ @’Í‹Õm’]PP]YÙhc£+؈ø…³Å̉´´oßÞ ä›± €««•½½Á¾}wÝÝ]]­œ/üÛg@—œ›Édçäü/ç zÓÖÆ Ñ$‡‡œ[üåçW8ñ0<üÃÐ¡Š‡-˜;w´x¤×°ºCdsÁb±».òîÝ …de¥#àø!3³ÌË+8%¥pãÆÉë×O–€Æ€ ¢ª*wêÔRWW«mÛBíØ1kÙ2¼ƒ.drO9÷Õ«¯ÛÛ™4šÔðáC:rîáÇà5àUiiÝéÓO®]{£¨(ãç7{éR‡殈(“ ÀäU\°Xhw=‰‰ùææCEý«…Ng=uþüÓ#†FEm15ÕÄ;"¡ãâbnggpôè_ß›QQ©‡» ªˆwPB rn±—šZtþü³»w?¨ªÊùùÍYºÔ^\×áá$Ùd2$Ù ˆç%P´Û$ûÝ»|[[ÑSñîÝoïàš]»f¯\é_'Ý¡Ñ$÷íûÖÕÕÒË+ØÉÉË–)?ý4–×èU—œ›Á`åæVväÜW®¼¦Ó™òòÒÆÆê¶¶ú¶¶zÚêê4¼£\°ÙhttÚùóO߼ɱ°Ð>yr‰««•8 ù› ˜$› ‹M&sù"a0X%¢:뱩©}ïÞðk×â¾ùÆèâņ SÆ;"`k«í}úôã#G<|˜vìØBccè…í …Ô]Οû×_Ïèt¦º:­£“ÛÒRGMMï¨»ÆÆ¶ÐЄ¿þz^PP=eʈ[·ÖÛÛà” üÿpø- À$Ù\‰E¿>ž]Î`°DtpÅÓ§Ÿ¶n½ÙÔÔ~òä’ l`RZßIH==§Í˜aáéìârÌÃc‚ÏtñîÏãŸrîçϳNzÌ`°:çÜVV:ªªs NBBÞ•+¯#"’ÈdÒ¢E¶«W;éêªà”à@’ À$Ù\HJRêë[¿>ž™YF&En«…ššæmÛB#"’\]­öí›Ý„cjªy÷î¦K—^úûß{ò$ýèÑE£GÃ;(‘×]ΑüÛoÑ,»sÎ=jÔ°Á°G’à54´……%\¹òæÓ§R33M?¿9óç[ÓhÝn|+®Øl”D"Bds!%E-+«ÿúxVV¹®®ŠhuaÞ¼™°oß] …üÏ?«;ööC&W¯vrq1÷ö™=û÷ᄈ߽{ŽŒÌ Û¶†ºäÜÍÍíiiÅœÁÜÉ'O>b³ÑÎ9÷èÑÃ`E}øPpåÊëððD"aîÜÑÇ/5JVO: ÓTX$› IIJk+ãëã™™¥Ã‡k>ž))©Ûº5äÉ“OK—ÚïÜ9›FŒ[ÌððaÊÁÁkCCwï¾óüyÖ‘#N×-à IDATnNNÃñJ<ÉÈHØÚêÛÚêsþ 97†ÊËëÃÂÞ……%fd”ZYéìÝ;wΜуp£Ó.èt¦¸.œ<ø4áBJŠÒÚJÿúxVVùìÙV‚§¿Øl40ðÅÑ£ÔÔh·n­·³ÓÇ;"qC ÜÜÆŒo²cGØâÅ®®V‡-PR’Á;.1×%çnjjOOï)ç¶¶Ö…¥‹–úýû)aa‰/_~VQ‘›7oôéÓËDtž ?Ðé,H²XO.$%)mm]{²étæ—/U¿¾ïçÏå^^Á>|Y³ÆÙÓsª¨/é-ÌÔÔäþúkettÚÖ­7ïÜéÊäCV¶9·®¢â ͹ÙlôÕ«Ï¡¡‰÷ï§ (:}ºÅÕ«ŽŽF°V]t:S´„$Ù\HJR¿.’“SÁd²Œ„7Éf0X§NEŸ>cb¢åif½S‚àâbng§¿Ä/¿\ŒL>th¦¦ÞA F]rîÆÆ¶ŒŒ’ŽœûĉG(úŸœ{Ì=i|cæ7‹ýömî½{É÷î%WU5ktðàü3,`"Aw ì} À |špÁµ'ûóç 2™h` ŠKH½úð¡ÀË+87·ÂËkÚš5Î0wGh4©#GΛgíå}ê)ç¶µÕ“—“œ›ÅbÇÅåFF&Ý¿ŸRYÙhjª±|ù7óæYªÅø¦½z²˜$› M²©© EÑÎ 9Tª(„Ãõš›ÛýýïÿóÏK{{ƒ¿ÿÞ ß£x±·7xüØûøñ‡{ö„GF&;¶HäV{c4Z/97‘H00Pã$ÜZ#FhIKSñ¹¿˜Lv\\vddòƒ©••¦¦š+W:ººZA;ì;&>0Ÿ&\¨¨È2¬††ÖÎ=[%%µC‡*âW/^dùø„Ô×·?¾¶˜Á¤$eÇŽYsçŽÚ²å†‹ËÑõë'mÜècB諜»õÓ§RNÎ}õꛬ¬2‰Ø9ç9RKJJHsî–zllÆÃ‡?N¯«k13Ótw7k–¥äÖýÆ`ÀÄGfàÓ„ %%YAjjš;'ÙÅÅuB•d×Ö6ïÞ}',ìÝôé#˜¯®NÃ;"ð/só¡÷îm>w.öر¨û÷S_de5x 4šT¿rn mܧ—”ÔÝ¿Ÿ‘ôþý‰8~üð={æNœh ‹ò¢½z²˜O.”•e©®nÒÓûß좢só¡øõI»vÝ"ˆ—.ý[Ì!2™¸nݤ™3-½½ƒgÏþ}Å ÇmÛfŠÜðƒA«KÎ]^Þ’RÈÙûýÌ™˜òò2™¨¯OÎ]öèÑÇÄÄ| …ää4üرE..æ°X!& • ·žØ€$› NWPuusçƒÅŵC‡â¿jDii¯oèãÇéK—ÚïÜé:÷=!ºº*!!?ÅíÛw÷ñã´£G::ãè7uuš‹‹yǯÙòòzN'wJJÑéÓ+*»äÜ––:Ø®PA§3ãâr¢£ÓcbÒóó«”•e'M2õð˜0aÂp¡Ä"¢`3†àÓ„ *•,++Q]ÝÔq¤¡¡­¡¡ ßá"(ŠÅíßWYY.4tƒƒŽÁ€>"Ë–9¸¸˜mß¶hQÀüùÖ{÷~+ö+lj7uuyy®9÷<®¬Ä,çÎÉ©ˆŠJ}þ<+>>—Åb;8.]j?y²¹ð¯Ö/º`l† ÉæNIIæÓ§ÒââZMª¥…þüy&‚ 8&Ù99^^Á‰‰ùk×:oÙ2º¯D‹ººüß»GD$mß6a‚ÿógδÄ;(€rîS§¢«ªš(’žžjGÎme¥ÓC_)ƒÁJHÈ{ö,óÙ³ÌÔÔ"IIʸqÆûöÍ›4ÉTCÿ;iâ§µ•N&“:kX'€!Š¢xÇ , Vqqí—/ÕùùUÞ¼ÉéüÜP($}}U%%YYyy)mm¥ & *&“}î\ìñã ÕNœX2b„°Œ P_ßrà@äÕ«o\\Ìv2D^0õ.Ztöýûù·AÓé,2™Ø±’7™L|òÄr8~èœs¿ÿ¥ºš{ΓSÁI¬_¿Înnn72R?~¸³³éر†óñÕ¹sO÷ì 'ÒÒT ›Í–––PS““’¢()ɉ„¹sGOŸ>ï0" ’ì¾Ø½û‹ÅF„“Ðé¬Î_½ÚiïÞoùUrr¡§çìì oïià>¦xˆý´ukHCCÛήK—Ú `áÅsçžîÝÎõ½N ––:÷ïoæw ùoΘ˜W[ÛB$H$"ƒÁ’–¦Ž­3{ö¨‰Í`ÓPÉϯ;ö@'<{ækd¤.°xâöüׂc$%ÿƒÁd²{ΰ‰D‚‡ÇLêýø±x×®Û_oog8éêú›‚‚tl¬Ïºu“ ÃÎÎ&Ïžù~ÿýØmÛBçÏ?“›[ùõ9Ïžeþþ{4V5~û­uw©<‰D\´È«Š@Ï$%)l6Z_ßZTT[W×J¡‡ØÙéÛÚêKHP^¾ÌÞ±ãÖwßóñ ¹y3!3³Œó³𮮊¡¡:×7‘H´µÕƒ 0`p#ò_4šä¦M“¾ßë·™Lrr2ÖÒÂ`|v]]ËŠÊÊê§O9v¬aÇñ—/?ûø„TU5<¸@0=@À¤¤¨;vÌš6m„§gðäÉG==§®]ëL"ýû£·¥…¾yóõòò++ñã‡ó^ššœ½½ÁÛ·¹_7oE\]­x¯t§¦¦ùÕ«Ï/^d½x‘õåKµ„ÙÖVÞ¼ÑãÆ›™ %“ÿ×ÓѹŸ{÷î;uu-22ffš ©w òX™5ËòÏ?c¸u¬ ß?‡€â†‹üOK ÝÆæ×ººÖ^Ï ZãìlÂcul6ºté¹W¯²Ùlö! /^øJIQëêZüün‡…½›:uÄ¡CóÕÕ4fà…Á`?ÿôèÑ(##õ'©… È®]·þùç›ÊÈHÄÄø`ò‹îÆ·^^ÁlöÞï$qÜ8£k×Öò^>謮®…“Usk*•lg§ïäd0H²ÿãìÙØƒ#{èÌ&mmå7ovðÞ»ìïïÌ™'£ÀW¬ptp0ر#ŒÉd<8:•OŸJ½½ƒ““ ׬qvr2^¼8€óƤPHºº*QQ[x_O¦±±mĈ ƺëˆDÂï¿7¾ …‹×Hnhh}ö,óÅ‹¬øø¼œœ "‘`oo`k«gk«oc£Ëû+ÈɹããóâãsÓÒŠ[Zè²²¦¦só EQKËÝUUR(¤ï¿»ÿ<¼¢ˆH²ÿ£½ic³§¦¦©»g…D"úùÍþñÇñ>ïÍ›ìÄÄüöv¦¡¡Ú7ßk8v¬!ÿv8g±ØÙÙœN‹[[»æÜÆÆêî Ø±#lÜ8ãiÓ˪[·Þ ~ÛeÄHLŒ©©^!Ä$Ù]]¸ðü×_ït¹«ÞAJŠšœ¼—Ǥ$;»bêÔcmmÌÎO>‰DTS“{ýz'ÜÌ||B®_g±þóeO œ¿bÅ7<‘ôÓO—;Ú6™Lš6mÄùó+y,V¤1¬¿þzvôèƒövÖ”)f—.­îõ’’’ºøøÜÄÄü„„¼ŒŒ 50PµµÕçäÖêê4„Ýל[NNÒÄDc`9·™ÙöººÖq㌜o` Æ×à…ALLÆ÷ßÿÕ±Æ%‘H1B+*j ¾QD$Ù]µ·3ÇŒÙÛqëH$ è¿O™LZºÔþС¼”ßÒBŸ>ýx^^5“Ùuž ™Lܰa²·÷t^Ê¢+%¥pæÌ“,—·$‰D¼uký˜1z¼”ßÞÎ47ßÑÒBçü“@@þþÛ}ðôV~íéÓO>>!eeõœÞ}EEé´4.«¹µµ1òâãsããó’’ Û¤ÇŒÑ³µÕ3FoÄ-iiáÚŠÉdçäü/çNM-jkcÐh’Ç÷)ç..®3f/‚ œ™¸kÖLؼyŠŒŒ8ßî Ó™¦¦Û[[œ„cÇ.YboTQI6/¾Üµë§Ã3Æ‘ó˜@ ÄÆúó´§ñÚµ—ïßOù:Ãæ ‘xÂŽ3ƒƒÁš<ùX^^%×¶A$””dcc}x°qcPxøÎÈlYY‰´´ƒsiÈ’’º­[oÆÄ¤“HÄÎs0wsÖ¨®ªjzó&;>>/!!/=½˜ÉdádÕÚ††jKÁ¿þæÜ÷î%{xüÓñÕ@"¤¥%¼½§¯Zå(Bu¹»>~œÆù¹%-MMIÙ'l¿"’l. –ݾòòúÎÏ ‰D´±Ñ½}{/%½ññ éá)'––Ú‘‘¿À¦Á& àéÞ½á=œ@¡ÆŽ5 ZÃKÛˆý´téyA©TÒ¼ycNœX4à¢D‹Å¾xñ¥¿ÿ=ƒõõ4Е+™LVBB^ff‚ ÆÆCÆŒÑ3FÏÆFWWW§1ÖÒBOK+NN.ä¤Ý99,[KKÑÂBÛÂBÛÒRûÉ“ŒþyE§3;.!‚šš=|xµµ.~±óQHH–-×Ùl”L&-^l{äÈB¼#ˆ|(Š/¨­m& l6ºiÓ5UUŠ––ÂÀÊwtÔ¹|ùõÔ©&¢ØÞ&&&Ëß?º¶¶A÷ÙÿJM-*,,êûÈcA¶ÿ¾àý=RRRßC† “Éb2Ù~~·ƒ‚^mß>ÅÜ\|¹7N÷Ç/sçŽ())Á;Ñ#lï„Á’ìÆÆÆ¬¬,¼B6¦¦’**ÒJJˆª*‹J%YZÊ øÉ Îøø±ÔÊJÝÔTÙÄDE__Dâ «mÍÏÏÁ0fÁSUUØëàlŸÒÆ+V——7úTýéSuzzÕÆÁ{÷:uü<ëDYYÊÌLf0<™,ù96öK}ý¿;¹‰Dd³Ùln[Nµµ1Ÿ>}¯­Ý×eøÙþû‚÷÷H|| ÐíNÎÏÎí¸ÌÌŠ_~ ]²ÄÌÑQLFVèè©T’±1u0¼50'lï„—%™'L˜ ð0„ÔŽ2£G32R¯«“;wìÀ a±ØÚÚfþ©Êû&‘Â&--Mð•BûD¤ªª‰@@¼ÒÈŽR‹Ûa’К4ÉA&“]RR[XX[XX]PPSXX““SQPPSSÓÄ9L&‰D:I¡¨O˜Ð§'—öß¼¼G^¿Ž$ )Ié˜J$ÕÔä ÔôôTtuU† SÖÕUÑÕU¿uýêëefÎtÆ; Ñ#´ïðûžôdÞ| “É7oÞì8N¥RSSSùs„Ntuu—/_^YYÙÃù(Š.[¶LV¶¯ëK„ììl,"+_7‰.mƒ+NƒéïK x=ü-}lóÍÍÍ>>>–––²²²¶¶¶‡b2™È€ž77Xý¥½‚ö?`¼¼Gúr&ïº|þïÛ·@ øûûóR&&…tÑó³qãÆ ®ï‘¤¤$ c€7‚'òIö;wæÎËõ¿rssUTT8¶nÝÚÝå£FÚ¾}ûÆëêꩯ¯ÿùçŸwïÞ=räHþEÞÙëׯKKK‹ŠŠ.^¼ØÐÐ0zôhN$\•””¥§§ &6qÕ]“è§ÁˆôKЗ6ߨØhccóöí[ÿ÷ïßûúú^½zuÊ”),k`ϧ…w†íÕùͰÂË{¤ãZ¾¾4?ÿQ½qㆎŽNppð€ äZïBÏÏäœ9s8oŠ×¯_#Òñ177ç¥RþÐNÊËËcccQ‘2sæÌ––®ÿõùóç.à×;.ooo1b„‡‡Š¢k×®µ¶¶¦Óé|‹ú?ùüùsÇ?Ùl¶“““ŸŸ_wçsý»ú^>†>~üøñãG~”ÌŸÚgÇóÙ—'–Ó`úû^ö¥Í{yy7ŽÉdv\ÕÔÔ¤««ðu½>ük_#ÈÚÜþûBxÞ#__ËëJNN&ÑÑÑ‚dff¬@®…ìýÎ׊øú6Â÷ ß=ÙwïÞ:thmm-‚ ׯ_766nnnF„Á`x{{««««©©y{{3 Î ²˜˜§OŸîÞ½[GGGUUuùòåÝ´__… HDD„………¤¤¤¾¾þ•+Wa2™\/¯ªª’‘‘‘’’ê|3®ã±½½=‚ C† Aº¹[×q9‚ T*õÒ¥K‡ºxñâ¥K—(JwAbø§}@ ¬]»öÞ½{Ý•Óùïêc™=244TTT|øp55µ7¶··s=Ø×f!4¸¶O6›}úôiSSS999‡ØØXÎÓnàFFFŽ5JZZZCC£ãÆqGƒùºiqÃË—/¹^H MMMUUUýýý¯\¹¢§§'//¿k×.Î _¿Ê'OžD¤¦¦†H$zyy!Âb±9m£®®nåÊ•***ZZZ^^^mmm]"ᔌ¢¨———••UUUÒç6õêU???éûÈÈÈøøø àyë׋Õ];ìùï522B:½)º<í¿/óáú9ŒtóÁØë„ë§\çÆŒ È7Æ?yòd“ÎýÐ!((ÈÔÔTIIéÈ‘#‚lܸñ‡~àüoSS“´´ô‡z(¤ËŸðuSìõOèx6ºû.ãŠkœÝ5T®OlðF@Ð:gÜ}ìY¾|ùŠ+ÊÊÊÔÕÕß¾}Ë9xøðáùó礤¤Œ=Ú××—ó£|úôéOž<ùõ×_ÍÍÍSRRRSSíìì¼¼¼º»ª©©IBB"  ´´ôï¿ÿ&“ÉMMMGåzy``à•+WÐÿvpítáz°ãò¾¾¾‚ìß¿¿óA¾þi(·†„„…žkçüowev† ȬY³Â©ªªâ”0eÊ”¬¬¬¸¸8CCÃ_ý•ëÁž[‚pödÝ>Ï;§¦¦vëÖ­’’’{÷îiiiqžó.M¢ãACC•Juww/**ºzõ*‚ híÓJKK¹^ˆ È’%K.\¸€ ÈÂ… Î;Çy9Pn¯òÞ½{gΜ‰¢hxx8F=z4Š¢‰‰‰’’’ÍÍÍ(Š.]ºtÒ¤I999)))#FŒèx9‘pFs²ÙìŽ ›m_Ú<'ýª¬¬ìòľyóFIIiÏ‚ IIIÿÕÝ‹Õ];ìËß˵=ˆMûï !|téýº©£½½Aºû”ëܘÙl¶žžÞ¹sçPݱcÇÿµwo!Q|À®ÚF[?7e½±ÞÂØ4ƒˆ$µ4Ä.RY±iiA i($d‰`øRXdƒLMѬ+/A˜šh¢ÑZ¶Q*Vîª)««»çÿpøÓÎe'Y×±¾Ÿ§eÜsæ\¾çÌqæ8†„„PgD%&&êõúââb„Ðèèhss³››Ûìì,ÆøáÇ!!!f³™'‹*0CÑj¨¸®e¬'b-'W ²6,Ý ,ʱ€Ìg‘­×ë}}}U*}ì“Ï ¡¡¡d¬¾{÷cT]]M~Ú××G}f¦ÒétÎÎÎ×®]Óëõf³ùׯ_&“‰+ùt:žï"›JN˜Íæ„„‰D’œœL¯ï‚V [[dsáÊ“!ÔÔÔ„16™Lä\ôòcŒ+**üýýYb^â\d3ã3$$¤¤¤„úƒø333ïß¿Ÿœœ4™LÍÍÍTñÄi7®„¡ÎÎNŒ±Ñh´øL¾Àì厎™Lf4ÓÓÓ³²²œõz}AAA||øèêêš’’ÒÛÛ{úôiê V«õòò"ûùógr<88!ôåËò<!´nݺ}ûöq¥’Ëå­­­¾¾¾‘‘‘¯^½rttdM>999;;+—Ë™o!µ`&/--mjjzùòeUUUmm­}ªÆZ¶þþ~¥RÉvB`žÞÞÞ!‹QÅþöíÏÁ¥…Ÿ¡¡¡ÔT*...&...<<¼¤¤„äŠ7‚kBbåÊ•!²ƒþ™`örXXØŠ+ÚÛÛ[ZZöîÝÖÒÒÒØØ¸k×.„ÐÈȈÉd¢‚Äßߟê,R¢½½=***//« ¬1ïêêêééÉ|³AWW=síF07ƒRçbN&ˆ‡ëË埊!eŒ\Ïaå,ÎU^^>77çîîîààŽ¢ï!@e(‘Höïß_]]ýóçÏçÏŸ'%% É„à Eþ1Np]/Xq•±*ÿ•‚Þ0°›ù,²¿~ýzãÆ˜˜˜ŒŒ ê ¹ÅE.Ÿz½¾µµ•'³Œ···V«%Gººº®^½Ê•Ê`0˜ÍæÊÊJNwâĉ={öèt:Öäõõõqqqô‚‘WŒ  ©…Eò¡¡¡´´´‚‚‚mÛ¶åä䤦¦ŽŽŽÚ¡jÌ‚aŒoÞ¼IÖR%ÇÓÒÒµZmww÷æÍ›Ïœ9Cò•““£R©zzzzzz¶nÝzòäI®TƒA*•VUUýøñãöíÛR©Ô`0°&ONN$ùKß½{w||œÜÀÿ¬Fv2Ÿ]Ò“›ÍæÝ»wGFF’§F£Q¥R©Õj;TÌàÔ+üššš|}}ÇÆÆ„œ+Ïââb*D»ˆhO £££ûûûÛÚÚ.]ºÄz?D¸]„5>óòò Å“'O†‡‡ëêê¬î7Õëõuuuä]Ñ¡ÎÎNzÀ°îDâJˆÙºÀâ3³—1Æ•••2™,66cÜÐÐ “Éè;M9²cÇŽžžžª™¥ÊÉÉ 4 Âc~||<(((::º¾¾þÇYYY!…B133ó§í†iNÇÕY\q(¤¾ÔVï¿2þ…á±èÖPç ¬³ý\hMˆòkIDAT‰ddd„ªcGGÿè›››S(÷ïß·š‰E˜¡hµ Tkp]/,Â,'W ²6¬}åX@ þx‘}ýúõ 6W}ÕÔÔxyy‘]qÇŽ“Ëånnn)))SSSôùbzzúüùóÞÞÞÿý÷ŸZ­Öëõä83Ƹ¢¢B©Tº¸¸×ÖÖ²&7ds*åÊ•+®®®J¥’<õÆÏÎÎFDDÈd2̘ñ-’—””,[¶Œ¾uµ­­ÍÑѱªªj¡«†¿Mâçç—””DŸèùÏΓ§ÕÿÎ;kÖ¬qww?{ö¬Á``=È "\d³Æ§Ñh¼|ùòÚµke2Ù–-[=zÄ¿€À®^½ÚÏϯ¨¨H­VËårzÀp-g™  °Èf–±±1'''ò'‰SSS...™™™Ô‰t:ÝÑ£GÝÜܼ¼¼Î;Gõ ³Tƒ!000++KxÌcŒ'''322Ö¯_/•J•JevvvddäáÇÿ¨Ý¨ê³þzÏÚY\qÈ__ú`·ÚàK4þ…á±èÖP·:@,f9‹ <55uçÎô:šÍf¥RyñâEžÌO:µ|ùò‰‰ «™XTŠV«@µ×õ¢Ñè,ÊɨóhX[ ,ʱ€8`Ú%ðû÷ï}}}QQQ¬Eð×øøñc@@þ}õÃzy¦l·ÿ˜`«øœGMBÈh4vvv’×™-;ôÎ!`Œ—­ÕjKKK» VX”Ó†]c«€D9§Å.`ipqqYè6v0===44tïÞ½²²²Å. Ÿ¥RN—%ÿoÕÁ<¬Zµ*55UÈAìÌqñÿ{óæÍ¦M›Ž?.òǶ¬å´a Â@`¡Áv0Kt»6!ÂGä0FÀ¢áX@ àN66‹ll ÙØ,²°1Xd`c,ïɲ9ÀR4==-•Jí|RˆO ‹ÿBÀv&Ú±ÀâbYdk4û—,QöŸX!>xˆsacØŸ8Ç‹ËáïþǹØìÉÀÆ`‘ €Á"ƒE66ö?“$Õ4Ž,¤IEND®B`‚XQilla-2.3.0/docs/simple-api/ATGMonthOrDerived_8hpp__incl.map0000644000151400015140000000003511653571064020650 00000000000000 XQilla-2.3.0/docs/simple-api/structBoolResult-members.html0000644000151400015140000000667411653571063020514 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

BoolResult Member List

This is the complete list of members for BoolResult, including all inherited members.
BoolResult(bool b)BoolResult [inline]
FalseBoolResult [static]
NullBoolResult [static]
operator bool() const BoolResult [inline]
operator!=(BoolResult o) const BoolResult [inline]
operator==(BoolResult o) const BoolResult [inline]
TrueBoolResult [static]
XQilla-2.3.0/docs/simple-api/XercesConfiguration_8hpp__incl.map0000644000151400015140000000027011653571064021405 00000000000000 XQilla-2.3.0/docs/simple-api/functions_func_0x6e.html0000644000151400015140000001325211653571063017400 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
 

- n -

XQilla-2.3.0/docs/simple-api/ATGYearMonthOrDerived_8hpp__dep__incl.png0000644000151400015140000001435111653571064022475 00000000000000‰PNG  IHDRÍîÔNbKGDÿÿÿ ½§“žIDATxœíÝ{XWúðH‚R[ñA¡*\·uA—õ»Â,"Z¡‚t× J­VŸ¶»â£¥»Š¯`¤¶?A.Ûª m¬¨Å…È͈J4¹ÍïÙŽi Ñv’èûyücrrΙw&_3‡$ †a€ß™™¡ ¯È ä rÈ@U½±`ÁCÕ^=Û·oŸ;w.¾ý«œUTT¼ùæ›L&ÓUWJuuõš5kˆ›Tµ»9μyóH­¼Šª««UoÂú rÈ9d€œ2@Î^0g'Ož üꫯˆ–ÊÊÊ@mø|>BH ¤¤¤„†††……mß¾ýîÝ»ø¨ýë_g``€˜§³³sÁ‚/|H+V¬Pû|ÀÖ­[ïß¿ÿ2Ój>00Àårccc-Z´víÚS§N) ­Ã ï½÷ÞîÝ»ŸûÌÙÙ¹°°P—Jlllâââô­ß¨¼HÎ*++ßzë­3fŒ?¾²²rÄþ</<<\5: øöüùó§M›Æår1 ;xð`XXؤI“ð»är9—Ë]ºtéÒ¥K¹\®\.G]½zuÍš5!!!áááxXñ‹Ç[¶lÙÍ›7BóæÍ«®®&.555Ä !±Xœššúî»ïr8œC‡I¥R„P```EEŪU«–,Yrúôi„Ї~ˆ #þðÃQQQ¡¡¡§NÂ[ÊËËW®\iföü4Ž5ê½÷Þ+//׬J…BY²dImmíPGª:üÛo¿Å¯zÛ·oÏÈÈÀ‡Èd²ÐÐP|ÍáJ¥òôéÓÑÑÑ‹-Z·n]cc£Ö‡Fíˆð^¾|9::zéÒ¥ÉdZG|ÐÕè3ü¢‰_×T/ZÉd²ÎÎΉ'â7%‰D"¡Óé...x …BÙ°aÃåË—ÓÓÓ{zzÞÿ}bì™3gººº233¿øâ wìØ±gÏž}òÉ'¹¹¹ ‡&V9)))¡iÓ¦I$üÒÙßßÏãñfÏžMLûïÿûáÇ\.wÏž=õõõÄUûûï¿?xð`|||fff__þˆëêê>¼eË–ììl‘H$‹{{{Ùl¶Ú!³Ù쎎ͪ԰X¬ÎÎΡŽTëð   ššüÿO}}½……ÅÌ™3µ/**ÊÏÏ‹‹ËÉÉ‰ŽŽær¹Zµ#ÂÏ;·{÷îþóŸuuuÄ\k£îôÎÙ;wzzzBmmm­­­Ãô‰D†5 ¿¹HчÅb-_¾¼¸¸8!!ÁÒÒ’hÿæ›oÖ¯_Ïd2ÝÜÜâãã¯]»F§Ó9’””äàà€¿ÛßßwŽ‹‹óõõÅwdff€_:¯^½:}úô1cÆàÝäryeeebb¢³³³››ÛêÕ«ËËËñ»þú׿ZYYýùÏÆËÖ<–eË–YZZΙ3!Ô××7Ô!S(b}¦ZÕ04Tëð?ýéO"‘è¿ÿý/BèÒ¥K!!!æææZ‡—––®]»ÖßßßÁÁáí·ß겫õˆX,–——×|@œ­ºSsD••• …Bu\UUE\é4ÙÛÛÓét@€ÿ§ÄŸÿúúú–,Y¢Ú-88øÄ‰óçÏWmìîî'n¾ñÆT*U ìÛ·O"‘¨=IŒ?^õæ¼yóöîÝ«vÑ …J¥’x6uuu}øð!¾Í`0BTêçÄÁÁ!D,¬¬¬ìííù|þŒ3T»ñùüÉ“'k­J•@ ÊÐ|x¨ár¹\õ‰ÖÍÍM—#±X,bïÄÉÑÚ¨;ýr¦T*«ªª>üðÃÅ‹ã-ÇŽ«ªªZ½zõP+w …âççWVV¶aâQój‹W›ÄÆÆæË/¿tuuEá©ÁÁÁ]»víÚµkÖ¬Y2™Lu¹­–éÓ§?{öìæÍ›?üðæM›ˆv;;;33³®®® & „:;;ñxiî]뱨µŸ¸xñbfffKK ŸÏ?qâDYYÙ0OÿÇ?xð ¥¥eË–-çΓÉdr¹œJ¥J¥R|óìÙ3íff––æåå…ÿŒ£R©û÷ïïêêjmm=räHppð05H$’aî]µj•P(ܸqãµk×Áwß}—À`0´¾ òäÉ“ÞÞÞGݸqcÇŽ]]]ÄCšG:ÔgΜ)‹?®ºðоdÉ’C‡]¾|¹··÷ÚµkGÅ{~ýõ×ÄJc(ééé÷ïß¿sçNvv6ñ‘D­ºÓïù¬²²ÒÏÏOõaóððpqq©ªªÒºÔŹ»»ïß¿ŸËå–––2Œ™3gîß¿ݺu#î.666==}Íš5 % >>ÞÂÂ"!!áóÏ?=zôòå˃‚‚¶lÙ‚¿b§)00°¤¤déÒ¥jíëׯOOO_»v-F›?~TT”ÖácÇŽ>}zxxø… †ªÐÒÒ2++ëØ±c\.·³³ÓÙÙ9((ˆÃáÐh4ÍÎÄ!3™Looשּׁ,âú¨y¤=ÒºG*•:wîÜK—.©.4‡Óh4™LvèСÇ»»»ïرÿñyß¾}>>>Ä~µ Þ´iÓÀÀ@PPPTT~•Tkf¸VÕ×Í)ÊÎ;áóg¯­û÷ï¯X±BmU£µqDùùùÄ6¼¿ È9ϽñÆ¡¡¡º4ê rž³µµÝ¸q£.ú‚œ2@Î g€ 3@È äLowî<6t ¦Gý}§œœœ²²2ƒ”b*>ô±³»C¥ŒÜüâW9ãp8†ªÃTH$ÔÎNëÑ£§Œ7äçÏBÈÍÍmܸqÄM |o¨^öîýæË//N˜àpõêvC×bJ`}¦ŸÂÂz„P{ûãÆÆNC×bJ gz¸~½C "„h4ó¢¢ ]Ž)œéáÜ9•jŽ’É……õJ%,9t9Ó•B¡{çwBDDd2Yrr²“““ÉLNN–Éd! …rôèQ///GGÇÔÔÔœœœI“&ÙØØìرcøÉËÊÊ|}}---SSSBr¹|çÎãÇwtt\¹rå“'O4kxòäÉûï¿Ï`0X,ÖæÍ›ø|>…B¹téÒøñãýüübccñžb±ØÒÒòúõëš»¾xñ"›Í¶³³Û½{7BŸ¡¤¤dÊ”)L&3))ippPkãoqR†~_ãp8º¼ï„jnnÆ0¬¹¹Yµì={ö„‡‡wtt444øùù¥¤¤à###E"Qvv6B(""B$eff"„=z„wøé§ŸúTÈd2‘HD§ÓcbbAnn.B¨§§gïÞ½S§Nmhh¸yóæÛo¿½yófÍ¢¢¢‚‚‚îÞ½ÛÐÐ0mÚ´]»váþò—¿TVV^¸pÁÁÁA&“a–››;uêT¥R©yt‹/‰DEEEx‘ø .ljjª­­e³ÙÄ´jß7ü}'‹ßá+xÉœyzzvuuáÛååå>>>xg‡a˜T*UÛÆ'ÑüÿvþüùÁÁÁÆÆF±X¬P(jjjðÎS¦L)..ÆçÿùçŸñmÕ¤R©¹¹ù­[·ð›ÅÅÅl6ïÐÐЀa˜\.;vì¥K—0 [´hQjjªÖ£«®®Æ0L¡PàûUðüü|µi‰ÆáÏ›‘äÌôÖgjÚÚÚœ‰›666ø†µµ5BˆF£©mš››Ùl¶ÚlMMMkÖ¬‹Å¾¾¾xK{{»‡‡¾íååååå¥6äÁƒ …ÂÝÝ¿Éf³¾íéé‰277 +..ööö®¨¨ÀŸV5¹¸¸ „ÌÌ~µ’!víééIL«µÑÈ™ÞúL ƒÁÀŸ¢0  …µµµ/<•D"‰ˆˆHNNæñxx£‹‹K[[¾ýÓO?ýãÿPåäädnnN|„îîÝ»®®®ø6‘l‡söìÙ‚‚‚9sæ°X,­{×ú þ†jjjƒ8T£‘3Õœ‰Åb|#,,ì£>jooohh 9xðà Ï988(•JétºD"Ù¹s'B¨¯¯/::úã?¾uëÖ­[·Ö­[×ÞÞ®VF[¶lYRRRkkë­[·¶oߥ6³¿¿¿\.ÿôÓO£££‰Æììì§OŸ_Òúõëù|~}}ý¶mÛV¬X1L£±3ìeÓ}&“ÉæÌ™cee…·‹D¢Õ«WÛÙÙ988ÄÅÅõ÷÷«vj[µQUZZš½½ý¸qã222"##™LæÀÀÀæÍ›]\\lll"##…B¡f ½½½ÑÑÑÎÎÎ6lH$j‹H ÃÖ®];zôh‘H¤yDZ·ñ²³³'L˜À`0‰iÕ‡?oF²>3|:æÌÔmÛ¶mùòåº÷×LêPÃ3’œ™üÏÆo`` ³³óèÑ£yyy†®Å`Lu}fBêêêþð‡?ÄÄÄÌ›7O÷QcÆŒ‰×¥Ñ$ÀóÙïnîܹ½½½úŽb2™\.W—F“Ïg€ 3@È ä r¦·GĆ.ÁôÅÏ›---YYY†®BW……÷CCÇŽenèBtòã?º„¼RlZ߯aff1vlâèÑêŸÚ0r†~1 ¦íÃX`(§N]MN.˜=Û£°ðCC×bJ`}¦Ÿ¢¢¢ÔÖò?†Uš gzèî~ZWׂ†¥¤DËgüÁP gz()¹nnNA)•XAA½¡Ë1%3=Ö+Bð›7ð«uº‚œéª¥åáÏ?w?6™›Ã¥S3]=Ë£RŸ¿f¦P`……péÔäLW……õr¹‚¸‰aŸßÓØ¨Ç·%¼Î g:Ѻ£RÍÏ㤓9Óɹs<Mý&¹\QPp ^èÖäldJ%væÌ2™Bó®D<^»f;P9Y]]ËÇ}Zï¢RÍÏž…KçÈ g#;þ:BˆN§jþS*±ÒÒë …ÒÐ5;£ø\‘›6õñÇ‹‰›_|ñ¡¡oMžüü»Óž>•ØÛ¿aˆÒL|^Co..¸ÜUK–øºS×M@È ä rÈ9d€œ2@Î g€ 3@È ä rÈ9d€œ2@Î g€ 3@È ä rÈ9d€œ2@Î g€ 3@È ä rÈ9d€œ2@Î g€ 3@ CþñO ËÏÏ7ô Лµõaè*ôÃáp û@Å÷Óº„WYZZš¡K0ŽïA6­?]mr ]¬Ï) g€ 3@È ä á•ʟϧP(Z7^rB†S(>ŸÿÂû2r¯TÎlmm·nÝj̾¶^©œ1ŒÔÔTcžðµe9+--uuu …¡¼¼¼É“'÷÷÷+•Êôôt///kkëY³fUUUá×a®Seee¾¾¾–––ÎÎÎZÓsþüyooïQ£F¹¹¹åää __ø(ÊÑ£G½¼¼SSSsrr&Mšdcc³cÇ¢gIIÉ”)S˜LfRRÒàà êä2™,99ÙÉɉÉd&''Ëd2Í.^¼Èf³íììvïÞ=Ôœ#îÈHöm/üýÍ»­\¹rÕªUÝÝÝNNNuuu†eff2™ÌâââÎÎί¿þšÅb!„š››ñÙ47D"N‰‰¹¹¹¡žžÕ]ˆÅb .—ÛÕÕuäÈ*•*‹‰á†!„"##E"Qvv6B(""B$eff"„=z„÷\¸paSSSmm-›ÍÞµk—êð={ö„‡‡wtt444øùù¥¤¤¨#BhñâÅ"‘¨¨¨hÄ9Õ‡?{ÇàïošF΄B!‹Åòöö&ÎéÔ©S?Nt8qâÄð9lll‹Å …¢¦¦ךּ‹ÞÞ^¶oß>¡P¨T*ûúú …ZÎx<†aR©Tm»¹¹ïÙÐÐ@›ÍVîééÙÕÕ…o———ûøø¨#B¨ººÃ0…B1âœjß=cÈ™ \7B¶¶¶qqq·oßNHHÀ[ZZZ||žÿLooïág ÓéMMM!!!3fÌ8~ü8ÑNù…]UUUmm-‹Åš;wîwß}gf¦~r¬­­B4Mm›àááoxzz Õ»ÚÚÚœñ}-X° µµU³H„Ú~µÎ9ÌŽŒ“iäìÞ½{éééÁÁÁ›6mÂ[\]]oܸAt¸}ûöð3H$’ˆˆˆääd—‘‘A´ÿá$‰R©,,,ìíí íííÕ·NüÉ!ÔÔÔ„‡†À`0ˆgP¡PX[[«9\ëâRëœÃìÈ8™@ΔJeLLLbbb^^^EEÅùóçB111ÉÉÉ%%%ÝÝÝß~ûmJJÊð“ J¥R:.‘Hvî܉êëëSí@¡P.\XTT$‰¤R)F³´´Ô·Ôõë×óùüúúúmÛ¶­X±Bõ®°°°>ú¨½½½¡¡!$$äàÁƒ¡ììì§OŸ¾ÀœÃìÈHèzý?º¬Ï8ðÖ[oI¥R ÃΞ=ëììÜÛÛ+•J?ýôÓI“&YYYÍš5뫯¾BîÏ0 KKK³··7n\FFFdd$“ÉÔ,ÆÝÝN§{zz–””¨ G*K:Ím¼gvvö„  Fbb¢D"Q.‰V¯^mggçàà×ßßÿ2sª5a}f9Ó…ê#j¿GZç|CÎLຠ^³ßƘ1câããI˜ó÷Ø (†p÷Ë–-3l ¯¼ˆˆdè_€ç3@È ä rÈ9d€œ2ÅÌgð. þÿ~ýìÞ½{Z?¹~[,kÖ¬Y,ÀÀ9¯ XŸ2@Î g€ 3@†ÿ)ýYyS˜QŠIEND®B`‚XQilla-2.3.0/docs/simple-api/graph_legend.png0000644000151400015140000004461311653571064015760 00000000000000‰PNG  IHDR¥èYã þbKGDÿÿÿ ½§“ IDATxœíÝw@çûð7!ì=dƒâ@\¸E†­GÕZmµbÛ¯à¶`Å R­ÕÖjU©U©ˆ’°p¢€ ²÷ †²î~¤¿Ù#äBx>%—»{Ÿ{s÷>ÉÝ{÷’pGhd¢À€ƒ|H>È÷€äƒ|H>J§ŸÄÅ!F"¨T¢#!ˆ‹‹ó‚mx—fÍšuøða¢£ Lçù¾²ÑhÈÍM„Áª¸={Ft •••4Ímè´áÝyúô©ºº:ÑQ©ó|Ï(’0Ä@` Z½šè @˜‡NÞU«VÁàú= ù ß’ò= ù ß’ò= ùú•ïoݺEêHrr²°âŠÜÜ\‰Dt ^DІ÷ªù,9eêî~¼.-]º´¼¼!”ŸŸ?mÚ4þk„¦¦¦Bë\^^ÞäÉ“kjj´lDµáƒ% Ó¯|//////jllDéêê '¨î`V[[+š²@RÕ†–x$Ì€\¿çŸÀ‰ŠŠ222ºzõªàdNë;$éÆÖÖÖ'Nœ@q¹\///###mmíÏ>û¬¾¾ž?gXXØøñãôôô|}}Bööö¨Õ®Àáp<==‡ ¦££ãééÉápx<ž¿¿¿¥¥¥²²òôéÓŸ?>› ’ª}»Š"‘HW®\±¶¶ÖÖÖöõõ 055UUUå?¤–߇„„Œ9RGGg×®],«‹"ª««›››{Xß–!„wæöm¼‹O?–““ÓzUü· ,ˆŽŽæ_wi?BhåÊ•t:ýâÅ‹¡ÚÚZ›ÔÔÔ·oßN™2ÅÃÃÇqƒ!##³yóæ’’’¿þú !TUUÕ¦8??¿+V¥¦¦ÚÙÙíÛ·ïÔ©S:::ÁÁÁeeeáááúúú]miï·ÄÜíÛ·»o÷þ_›Fï¨]Åq!´víZƒqéÒ%„ЪU« Æ… B555ü•¸¸¸dgg?{öÌÂÂÂÛÛ»ýšqñâÅÆµµµËÊÊz•JåÿÉËËëáÖñ¹¹¹¹¹¹õj 3€ù>55µÍGmò}LL Žãl6!”““3räÈàà`þ§ü×,+33³±±‘ÇãÅÅÅñçlSœ••Uyy9ÿ5•Jµµµµ´´¼zõª`†k×®A¾ )ýÌ÷íÛUÇB¯_¿Æÿ¿ÝnýZÐ2ó[~~­×Ìd2¯_¿>yòäñãÇ_¸p¡¡¡¡çñ´VZZêååe``àêêúèÑ#דm„|߯ë÷]³²²j3ÇñÖoù»¥¥¥ùo GŒÁmmmmmm’‘‘ÉÎÎÞ²eKccãøñã;,¨  @OOOðVUU•ÍfÛÚÚ ¦Œ;¶¿CIûv•ÿBYYý»Ýúµ€ ·²²*))L§ÑhëÖ­[°`ÁÙ³g'MšÔŸ{¦ôõõ½½½¯pˆÀûï[ï\.!TZZúQÙäJ×××/((à¿NNN>vìBˆÉd®ZµÊÓÓóõë×çÎë° --­œœþï:þìÙ3“””Á éééÂÙ$Ú·«=\ÿ×!”ÍÿSǧ­­=jÔ¨ÄÄÄ„„A÷¬þ¨¬¬LOO/))±³³ã÷ò]ðçí¨©©!„®_¿Î`0Μ9ÓÅœ6l8xð`ZZZZZÚÎ; B,‹ÍfËÈÈ0™L///„PCC~~N„ÐòåË÷ïß_XX˜šš:þüß~ûmûöížžž!!!>üþûïv#@²´oW{¸à7ß|“››ûòåˬ_¿^0}ܸq111ÁÁÁYYY–––_~ùeRRRÃ0,22rÙ²eööö8Ž'$$ܼySKK««r:=Óßïë÷‚·>>>jjjæææ!!!¨Õõ{ÁGþë––}}}UUÕµk×Òétþ§§NÒÐÐ044EEµÿûß<ùDÇ R¿GiG‘’Z"ò³¶àcâuý>#£¬¨¨!tçÎK¢cÐoù!Ô˜‡êS‰e¨¯|÷î+ii)„Pqq]rrÑáè‡Ú¨©!„È2(ÿ/‚ƒòÄ(ßc~ûöK‡‡’‘‘ºwï5Ñè‡Â›ˆ,ƒBå_G8Ft@CšåûçÏóêêù¯Ùl^PÐ+vœpÊ @ûß·-•¨:žÐ€†:1Ê÷ÿüóšB‘¼­«k~úúwÀàT‹Øµÿ½%ˠ¿‰‹ˆM¾çpx÷î½æry‚)ÒÒäþI"0$}Wø7"Iÿ÷c£‚[ãÐP'.ù>..«©‰Õz ‡Ã»?…Íí]øúc¡Â@„œÝ¹ TA%( 6ù>88IJŠÔfbs3+&æ!ñ軲Ämj;‘$…òo @HLò}S+""•ËmÛ;L&ß½ §ô`°É¿ÈRm'b\TÜÁï b‘ïi´ 6›×~:Ç‹ŒLksž€Xã4 ²P„ut5c£Ò0‘“|ÿÏ?I$RÛ“ù|l6JMq<ú®4ñ:ÿŸ½ô B|¾g0˜11YÖÙ­öø?ÿÀƒw`ð(¼ÙéG8†Ê!v½£ÿ"~¼‹[QñAð–FË8|8øéÓC‚)RRdu"BÐ{M…ou‰ö¾9šxé/úoм>’’}\C\çãኊ¬,ÅØXSðV[[!Ôz €ÁDѸí¹aHÉŒˆPÀˆ?Ÿ€ù|ïÉù|ïÉùÀ@2rC †DÄà~<’lF Ñ„àÿ=0@¾$ä{@òA¾$ä{ÄËÍÍíl`t ïOMMmïÞ½}š——§¥¥%Êx$ä{©èj.îv.---__ßÎ>Å0¬¶¶V¨a 9ï ¤øU¨æi›iÕÕÕÍÍÍ­§´>ŸO"‘nܸamm­¡¡qâÄ „½½=BHWW·Ûõ€Î@¾ :/_¾üüóÏmll>|øÐÅl÷îÝ{úôé‰'öîÝ[WW÷ìÙ3„PEEE›ÙRRRLMM÷ìÙ“ŸŸ?€AKÈ÷\KKK@@À”)S¶mÛ6mÚ´¼¼<==½.æÿúë¯ÕÔÔ6n܈ª««ël6''§7oÞ(((Ìš5kÉ’%‘‘‘† ?z‰ùÀÀ¢Å¿566ŽŠŠ:{ölRRÒÖ­[•””º^D__!$--ÝíÊõõõ½½½óòò6lØpôèQkkëââî» Aï ,mM•Q£F%&&&$$Ô××÷d2¹w驲²2==½¤¤ÄÎÎN^^¾OaJ8È÷Ö8k㘘˜ààବ,KKË/¿ü2))©ëilll3ðÈÈÈeË–ÙÛÛã8žpóæM¸s¯CïˆÂèѣϟ?Ÿ““ccc³zõêž/kbb2cÆŒö—üÿùç///77·¼¼¼#GŽð¯€‘p':†Ü¿Ÿ¼}ûµ²²Ÿ‰€0įBVß!­©­§a†a…Òß1Ù9NO®ñ„PëèÊŒÀöÓÈdro¯Ðw’}ÏÁù|@òA¾$ä{@òA¾$ä{@òA¾$ä{©èj†Úò=€¿ Õ<%:ù ß’ò= ù ß’ò= ù ß’ò=€dä† ‰ Ñh3‰Ž ÿò= ù ß’ò= ù ß’ò= ù ßHEwPs1ÑAÈ÷Tü*Tó”è ä{`€|H>È÷€äƒ|H>Žã‚7qqq>>>FƒjjR¬®Ö61) 6 „•JíçÄ¡>»Y³f>|¸Ÿ+9zôèãÇ…äéÿ~^___XX(”`€±±±ššZ?Wâìì,”`„ÅoÞë)¦©êDòŸC‡Íž=»Ÿ+·zn¯MûùÑøx•••4ÍÍÍMäQýG]|@ˆÈ=£¸¸øÙ³gý_8Ôç öôéSuu!ì oß¾}÷îÝÔ©Sû¿*I"¬ýœÍfÓétmmíþ¯jˆ«®®ÖÓÓëÿzh4š½½½¡¡¸ AëûÂ!$ŒCY8îܹ³eË–þ¯GÜê¹öígãáõ± W¯^-ĵ kUCͪU«„µª©S§Âцp÷sa­jÈŠÖª¾ûî;!>†D" kUâ\Ïíƒë÷€äƒ|H>È÷€äƒ|H>È÷€äëK¾'µ¢ªªºxñâüüüÎfÎÍÍmßR0±ÃO;+K]]}ÕªUÕÕÕ}ˆYlõª2EOðIüzö]t»Çö¿h‰¬^‰”››Ûõ”. Pµ‹Œ¸ÅëÖ-RG’““…UD¯6YÜêGˆú¹çw¨ÏÕÕÇÿ÷‰‰‰åååeeeqqq†­_¿¾oëQSSÛ»woË¢R©%%%îîî}+Klõ­2óòò´´´z[Vß–â“ø/õà»èÉÛFë|(T¯ÄèÏq$–.]Z^^^^^ž˜˜ˆ*ÿDÝTÙõa5Øk[|tpÿ}Ohkkëêê"„ôôô.^¼h``À`0TTTz»---__ßž—åçççêêÚ·˜ÅVß*ðÚÚÚÞ–Õ·¥ÚÇ)‘_êÁwÑ“=¶ÖùP¨^‰ÑŸãHÈËËËËË#„Bü@]Vƒ½¶Å‡®ßKII!„¸\në“ mN8ܸqÃÜÜ\[[û«¯¾jnnLÌÆår½¼¼ŒŒŒ´µµ?ûì³úúúÎÊÒÑÑá¿ ?~¼‚‚‚žžž`_ ;v¬œœœ™™Y@@"‡Ãñôô6l˜ŽŽŽ§§'‡ÃéÿV6•edd___ÿùçŸkiixxx´´´ØÛÛ£Vjûmì°J»]ŠÇãùûû[ZZ*++OŸ>ýùóçÅ)Ù_ê仸zõ*ýä“Oþ÷¿ÿñçd±XêêêááᨣÚè¶Î;,Zâ«·5‰tãÆ kkk 'N „:ÛÛîçµE$éÊ•+ÖÖÖÚÚÚ¾¾¾¦¦¦ªªª‚gŽvX‡íÃÖq$†:«.ê_Ã!!!#GŽÔÑÑÙµk‹ÅꢈêêêÖYµûŽº®í.Ö3èôð@Úî„·rûöí6S:„JNNnhh`0¹¹¹Ë—/Ÿ8q"Žã999‚ůù/æÎ›ýìÙ3 ‹}ûöµùÇq›ÔÔÔ·oßN™2ÅÃã}YïÞ½›3gÎ?ü€ã8ƒÁ‘‘Ù¼ysIIÉ_ý…ªªªjll”••=þ|yyùåË—)Jcc#Žã~~~+V¬(**JMMµ³³Û·o_רÃzèVOÖÓue.X° ::º±±qݺuŽŽŽïß¿OMM=z´··wëÚîp;¬Òn—:uꔎŽNpppYYYxx¸¾¾>~B¾77777·>Ö~ï×Ó“ï‚Çñ[·na†ãxHHˆ¾¾>‡Ãé°6º­s|ïç•••111]σÊÉÉél BhåÊ•t:ýâÅ‹¡ÚÚÚÎöÃöB·ûyëסµk×2ŒK—.!„V­ZÅ`0.\¸€ª©©Á;ÿvÚ„×çã¨k111•••=ªôîjûöíÛ=™³Í†à×@õÆ_‰‹‹‹ ‘oß@ñ½xñbãÆÚÚÚeee…Ñmm P©T~FÌËËëyåཀྵŸþ¯§‹=¿çrßv§öí^ó½€´´ôìÙ³ùÑw‘ïSSSE˜šš¶Ï÷#GŽ æÏ“‘‘!xÝæ×‰ŠŠ ¿,‹•™™ÙØØÈãñâââø5XWW'--ýÓO?Ñét Ãx<ŽãVVVåååüR©T[[Û®7PÄù¾‹Êäכ͖’’JKKã/laaÑæh¿Vi·KYZZ^½zU0õk×ù^ô_„èó}·ß… ›šš_¼xãøš5köïßwRÝÖ9>È÷s¡ä{þØl6z‡ûa‡B·ûy›\òúõkAA­_óƒéìÛi^Ÿ£®‰C¾ï¬º¨·ö|›ŠÉd^¿~}òäÉãÇ¿páBCCCat[Û­•––zyy¸ºº>zôˆ tKLò}Ïä¾íNíÛ½>^¿ÏÉɱ°°èbüã&lĈüü-i?aa¡`kkkkkëöe577Ÿ>}zîܹ………222ÙÙÙ[¶lill?~<Nuuõ˜˜˜Ó§O{yyÙÙÙíß¿Á‚¡‚‚‚Ö£P¨ªªöa“N•iee…ª¬¬äñxæææü‰%%%mæl¿,«³*íb)6›mkk+˜2vìØöqJêzð](((,]º4((hÔ¨Q¡¡¡oÞ¼AuXmtV _½­Û¼ÝOþ_iiiþÛâââöûagB×ûy›²”••µ~Í×Y¶ ¯^Gb®³èºÞÐÇ|ëŠF£­[·nÁ‚gÏž4iRO:–w]Ûmæôöö>xðà½{÷Ž=êîîN£ÑÄm›ÎöüžÈÂÚ„ÿ=—ËE•––¶žÈÿ†ÊÎÎ666n¿”¾¾~AAÿurrò±cÇÚÏ£  °eË–ââ⪪*&“¹jÕ*OOÏׯ_Ÿ;wŽ?“ÉÄ0ìÎ;uuu_|ñ…««k]]BHKKKð ‹N§ eL0ÑàïñÆ “’’ÊËËãO|ÿþýðáÃÛÌÙ~{R¥í—211IIIÌžžÞ~©!øE ŽZŸµk×Ý¿„ üÆ®ÃÚh£ÛJÈê522j}Rff&…BiÝ.“ɵEî‡]ìç¶E]ë¬Û„×íR=9ŽÄSŸ÷¢ÖÿüóöËnذáàÁƒiiiiii;wîl=œvuuuEEEEEEQQ‘ŸŸŸ¡¡¡¶¶6‹Åb³Ù222L&ÓËË !ÔÐÐ@"‘\\\îÞ½Ë`0Øl¶´´´‚‚Bhùòåû÷ï/,,LMM?þo¿ý&Ä­iiéÕ«WïÚµ+???--íСCëÖ­ãÄï^‹:ÚÆ.ª´‹¥¶oßîééRQQñðáÃï¿ÿ^°|m¸¸¸Ðét//¯Í›7ó§tXüº¨sþtÉ®ÞÏ?ÿÜÝÝ=,,,???**jýúõŸ}ö™¬¬lgów¸vx t¸ŸwÑu­WuØ·ãHÌõy/úæ›o|ëYÇœ••eiiùå—_&%%õ!0Am `¹lÙ2{{{ÇnÞ¼)nwîu±ç÷ü@ÚîÔúä~ϯ߷¹ !àã㣦¦fnn‚Z]¡¿uë–‰‰‰ŽŽÎîÝ»Y,Vûë÷---úúúªªªk×®¥Ó邲ÈdòرcŸ={ÆÿèÔ©S†††çÎ[»v­ŽŽÌÍÍedd¬¬¬BBBøs2ŒM›6©««kjjnݺµ©©©ë ñõû+³Í%«ººº 6hjjêéé}÷ÝwL&“Ãá̘1CII‰?Cûmì°J»]ŠËåúûû[XX(**N:•ÿë'è‹ýõûn¿‹6ßËÖ­[•””ø½løÚ×F·uŽòý¼'×ï9Ή'FŽÉïŠ|ðàÁÖᡯåçäät¶¶?:k:Ú·EÔæugßN›9û|uM®ß÷°Z¿æ¯äÒ¥KÆÆÆZZZîîîL&³Ã‹ît:ýÔ©Sæææ…Ñmm ÙÛÛ߸qƒÅbõdcz^?ý_O×{~ä¾íNÂé¯'ñD™ïADœï‡Qæ{ТÏ÷BÑEºñx<‡ÓÿrÙlvße¾'Ðúë}@&“{{…¾C=éÐZƒñrôŠŠÊ¶mÛˆŽtò=€¾ÓÑÑ9þ<ÑQ€îA¾$ä{@òA=!„êr˜Ì:ng¶VžÂ-Pà²0Šìàøç ù@¡¢„/Ï–õpææ§±ú`IöÎç|æ.¨ûü#²’×¢ü”ó¥Ì˜†Jhàÿ}7pg0˜ÖÔÄjiá°XœÆF‡Õ×7óxXc#‹ÅâLœh:nœxÐvc#—ÅRÐÔ$:Á­°°ÖØêô‘²¾ŒîXÅÊ·M8Öé<$2Ò³Sv¼ûŸ™ý¦®®Þfß¾‘““ÓÖÖîÿzú£¡õãѯ^•îßï@¡ ÖÓ–ÚÚÚrr==:ºÐE³ƒã¤–©–JK ¥¥…ÌdR˜L ›Máñþ=‹M"¡‘#éZZJýCl¹¹¹u6fnË.Íë0Ù“)$’šãmbæ¢.XÏFÙoíÛOÞn jÀñv×®¿Y,—ËëlÊgŸMûá‡e¢ LÌýôè'Ï ÏÖSH$…Láb\þÎ&'-g¤ad­g=Rwä…TåÅk˜v%]¼ãíH$3'§EgÏÊ*+Ñàœ\´iÓ媪Ç_¿öÖÕ…=ê#ÕÕ Ç?ÈÎ./*ª«­mä†RR$„÷QûO"‘Nž\½fÍb%»‰Wóá}d]éó²IAGº±œqÿ«’IQ[zÞisâ5Þn¯@½N-X0&6vÍp)©Nk‰ÍæÎ›7F”Q‰?yß»~OjÕéÇq#øeÙÂiɮ̾Ÿ|?!7’}kFÓ§#„ŽÆÆ^™9³¬OÆ)8Žÿö[”«ëéêêÇ Ô!Ù·§­­œ•UöúuaMMƒà0äñðöÉÞÇgùJöÏ£Ò©y9½}ìSH"“f{¯§™°]oõ/DBú•–ß´ÔÉ!$åííMt âKEE~Íš)$zö,L&µ?"##%''-#CÑ×WëâgÁPã0ÒÅc%ä&t=Û­­· 5 Ÿã45__ºÄc³q ã±XooߦÈÈ Ÿ<™è¸ÄƒÁܲåj@@"†á8ޤ¥¥-çâbCt\âÈÒR÷Ö­ç]ÏsìØòM›fŠ&1ñPÄ×9*Ãe'íПyÈÈr±¦Æy)i²ŠìÛ¿*1"‘"¡É;‡Ï<`D‘ô-<äûnɤiÓ,&M2¡Ñ2x<¬u÷= EÊÊJ¯´”~î\ôŸÆ¿{WŽaøðáê22ƒõò¡9Z;~`~x‘ÿïèJ˜´”´ó(çý ÷‹>0qF"‘J_¾¬/(à-Šp¼0>¾*-Ítî\Ь,Ñщ—Ì̲åËËÈ(åñþíHãhëÖÙÖÖúÄ&ž†WOHx_^^ßá\‰äíýÉ—_ §oì B–"rÓ¶X ¡j,G¦üwJ’L!Õå´ÐóXRÒäÙ^Æ£Vi÷ä&Î3ƒ4 IDAT=ñù¾GŒµ–/ŸðêUAEÅÁñ‚ãø±c+Ž]¶iÓLÍ´´Òß9{–—UWר­­¬®.¢ŽÖâÉe”K1½8µ8µ}ÊǸ-POUÀÄYSuuqBŽýw3P}aaÖ½{F3f(hi˜Xùûïg›6]nh`µé[sôè2ee!ôw“HÆÆšþÅ'‘зߺìÚå$úDG)ÜLN­ƒbdéŽ3¹”4¹2¥qáï†ÓT8>Ñþz½Àãa§OGþüs$‰Dâñ0Jfæ1yyÁ L&;>>'44922Á`ZZê:;Û8;š4É”D’ˆß‡½ÄÃxk/® ~ÌÃþk—¥¥¤¥ÈRŒ']zÔÁÊÀðÄPejjÀ‚m&’)…²àäI«O>!$*ñÁd²==ƒƒ_#„Út¢ÖÓSKJò"$*1Çáð‚‚^ž>MmjbøÀäñþ;I$ÒŽs\L`x§.—ù>‚žû¨®±œm÷¥Þ„¯zñãàìFžœºD¬…|ßk4Z†»û_>´88Œ¼q£ãQŸy<,)© 44åÁƒÔòòzõ9s¬œmæÌ±’––qÀÄâð8K~]BË q±ŸJMB¤à¯ƒÿ~þwPRÐÓ)pçJlâçñÎXYqš›Û~@"!»nã±cRÒÒD„F¼‚‚šM›.çæV Îá P(äåË'ž>½–ÀċŠHüý÷:½é‹/f͘1âÓO/Ú|2™´aô\!aÿFê Z²Ckß?¢7–³µ¬F,Ò0™£¦¤'Óý’’ò}_”—×õÕõ•+'­_ßý“=²²*ÂÂ’©ÔŒÔÔb55'§QÎÎ6ÖJJCåŠ,“ÃtùÙåYÞ3.+-%½rÂÊ¿·üz–÷ìXø±°Ô°éÓ῾Àµk‹ž<éìÀ4°·_~회’$ßÝ¡¤¤Âõë/0,¼£'Ÿ‘ɤ“'׬^ }ÿÅfs¯_O¼p!¶¦¦aýúi;v8èé©!„>ýô|||—‹II‘W¯žìï¿JÂ’ý‡BVàŠtEi3gus m¢##ïûˆÃá±XÜ^å좢ÚÈÈt*5ýéÓ\ EjæLKgg—Ñ::’›5½™>ëĬŒò „£ôÒ­tÿ{ÌKBnÂáÃ1ïbœ¬~\þã$“IÆ)žŸ=›ðÓO·í ]RÒÒ2ŠŠŽ?þhµt)!‹Éd?~ùò EŠÃé`³§OÁ“tB\.vëÖó3g¨UU 6Lûê+}}5Á§II®®¿É$GÇQ—.m’ÈÓÕéMZÖŠ¤Aß›^ø ߀No¢Ñ2h´Œ¨¨ ‹kggìâb3þss¢C@U UÓŽO›j>5à‹€öŸÒ2i‚¼,xédíä·ÒÏÎÈNôЉò7on,þèz*YJ ð±Ÿ~:ûðá!þžÌ̲]»þÎÌ,kó ëaÃTÞ¼9BTTb‚ŸéÏž¥•—ׯY3e×.gõö³­]{Ãð€€-ƒúN"N3$EDcÓ‰È÷DjiáŸøŒ3'ÊðÄÆåž±²â2™ü·$ EVQÑéøñ¡ù·¾=.Û¹3 <<•LF†¢PÈK—Ž?{v=Ñ¡†ÇÃnÞ|þë¯Qeeô5k¦¸»;jt6s~~µžžšœÜ ìÂiæ=fäÑèÅ Œéû G.…3:½ù^,ðû÷Q©¤æçW®îà0Dû÷á8–v8äðÛ’·+&¬8¶ìØD%j·ÝÜŠŸ>%KIa<Þ¸uë*’“É22ŸÞ»G’Z;C‡rr*Z¿ÞþÅ‹üŒŒ2 Ã¥¤È¾¾+×­ŠÃäðxXppÒ¯¿FååU¯];eçNG## Lœf¬èɇ<*½$‘qqýIʦÎj&jrªƒø…èA¾;YY4Zzddú«W**ò³fY:9š?̺±ñ»Iwþs° ¶`Íä5Þ®ÞfÚfD%:OOŸNð÷W54\pú´½}uffÀüùs¼¼ì6o&:4‚a¾té‡ö-‰„þø#Î×7œÃáÅÇ03#xÌÃ0üîÝWçÎEçæV-[fçîî4bÄ0¢ƒe¯ízqq½‰Êfü4ßÑô [ïÅWI ýá÷Tjú³gïÉdÒäÉfÎÎ6®®¶Ã†IÎóºÆáqn¾¸y$ôH ½äóiŸ{¹zé« ‰§§•¾|™ûèÑtÊÿ–âDÒlŒŠR36&66b]½šàåõODÄÿFúwO((¨ñõ ?~#±‰Žãaa)?ÿ™]±|ù„;--u‰j±yyT:¤ùþƒ|?Ô×7S©é4ZFtt&“É=ÚÀÙyÔ’%ã%õç|l.ûjâÕ#¡Gjk7NÛxdÉ]UInÝ:ÄãpæÍSÐÒZuû6’ľ=QXXëèxâ‹/fíß¿ˆèXˆÁÏô§OG¾{W±xñ¸ï¾s±²’œ‡Tb<œ,5D÷mÑ€|?˜ú÷EF¦UU5k:9Ù¸ºŽ“Ôþ}­±¸¬k‰×¼î{5´4ìtعwÁ^u…úK°ò7oþ^ºÔåĉ1kÖ p_½ú|U#2r÷ îXÞgTjú/¿Pß¼)Z¼xܷߺX[KH¦Ç1Tñ¦1/’žE_øÛÍ‘ƒ{ :qù~Pôï{øðíû÷UššJV®®¶ß¿¯‰Õôk̯~~\Œ»cÎŽý ÷©uc¼½ÓnÝú<&FYOBÚúž»}û…‡Çí{÷vM˜0ä®hP©égÎP“’ ]]m¿ùÆYp-cpÃQUzÓûGô|½©Š£a!oæ¢>òMÍAyãÀ ù~ÐkÝ¿O^^zúô‹›7oŒŠŠÄöïkhi8{îøƒã)ÊN‡»]v+Ë ‰»Ò9Læ5'' sóåׯ‹HUT|˜3Ç×ÍmòѣˈŽE¤ž<Éö÷øêU¾³³Í®]Îó[§0öÃÓSÅ ¥lU#Ys 3uus‰m¯Ää{ÉQZJ‰yG¥¦ÇƾÃq|üxcWWÛÅ‹ÇéêJæ?àÚÆÚ³ÑgOQOÉIËívÙ½Ëq—¼´äŸ ,~úô¶›Ûâß~R·ãoÜx)'§2*ʳõðT’->>Çß?âåËü™3-==çOœØéS+£ª´¦ü¨zóyêZVð¼[Ñ|/>|h~ü8›JMô(­©‰Åïßçêj+‘x«ªOFž<uFSIÓcžÇöÙÛe)>0AäÞ½9lЉ"#䆆&oß~=0pÇôéDÇ" ‰‰¹~~^¾ÌŸ1c„‡ÇüÉ“‡Ð¨`@A¾—d,÷Å‹¼ÈÈô°°äÊJ† ßĉ¦d²Dõï+¡—ø?ò¿wAWU÷À›gl¦%¶K»¡áϹs‡Ož¼ø·ßˆŽeÀÕÖ6Ξí;oÞ˜“'WË€{ó¦È×7üÉ“ìiÓ,öìY0¨3ý‡Â–y2ѱÇ‘#!·n½ˆÝ+CAæçWûú>O11ÑÚ»wá Êô©×+³BjÿMósÕÍœÕtƈѵyA.¯­­5j”««ë–-[”••#""<2oÞ<È÷­A¾=U[Û–—ÅãavvÆ..6 Ž55|ãŽÓ2i{ƒö¾)~³hÌ¢cËŽ5KtDýrwýúEEŸQ©ÙAÿ¬¡—/ó—-;ëï¿jíZ{¢c鯂‚šS§…„¼10ÐØ·o0ez¾ç¿”b\ÜÒ¼€ —ïܹ³¦¦æÖ­[‚<==“““©T*äûàôRs3+22ÍÝý¯‘#÷ëé};{¶¯Oèóçï1 #:´^À0ì~òý±ÞcÉ[Ènçݲ+³‰Ž¨ï>””übiùØ×—è@ú«¥…3sækÖü>¸ö¥ö jÜÝÿ22Ú=uªO`à 6›KtD‡º|ù²•••––Öñãǯ_¿nbb¢¢¢rèСÎÉÉÉ$Ö¯ïß¿?fÌYYYSSÓëׯó'²Ùlmmm6›ÍårOœ81bÄ%%¥iÓ¦ýõ×_ü5èêê&&&¶.¨¡¡¡°°°M)¡¡¡¶¶¶òòòºººÇï¢è'JÈ÷ ï¸\Þóçï ¶³óÖÓûvòä ~ü8kµn<Œø2pÄÒÛ¤7\Þð¾ê=ÑõÑë?ÿàîþ×ýûo[ˆŽ«GØ\öµÄkfûÍd¶Ël½¾µ”^JtD½†ñx7—/¿êäÄãpˆŽ¥RS‹ ÿwéRÑôQEÅ¿™~üx¯€€DqÎôõÌ×—Êï®ÍüÃ.éºCÊ‹3}ÙáB¯_¿ÆqœÍf·y““Óá"æûºº:iiéŸ~ú‰N§cÖÐÐÀãñp·²²*/ÿ÷‡•Jµµµµ´´¼zõª`m×®]ãgz~ÖïºD‹•™™ÙØØÈãñâââøAvXtgñHÈ÷@È k.^Œ[µêœ¡áÿLM=?ûìb@@be%ƒè¸ºÇâ°.Ä]Ð÷ЗÝ.»õúÖòú¾üé!PÝû÷?›™=ýå¢é 6›ëèxbéÒ3<Þà;“_QñáС`3³=¶¶béy,éBÙ·Œ?ì’œRŸ+,yÆàqûXá­ózg¯Ûhï³³³¯ãããW®\©¨¨8sæÌð'ÊÉ}ôeUUUyyùäädÁÚÞ¼yÃ_ðaÃZôâÅ‹‰'655µ.1$$dÆŒ¶¶¶›6mÙaÑN”ïÁ@©­m |±uëUsó=ÿ[²ä—_¥½_Et\Ýhá´\ˆ» »[WñkŽA{ëšÓ¹åç¿ývÊĤúÝ;¢éµ³gi¦¦ž¹¹•DÒ;UUŒC‡‚ÍÍ÷ØÚ~Èb‰ûÉ•°mÙ ~Ee¯°~ÿ®ês¾çp88ŽÇÄÄð3qssóãÇqg±XW¯^•’’ª­­ÅqÜÀÀ@°:ž™™imm}íÚ5ÁÚ×ï·lÙ²|ùòÖ}>víÚ5nÜ8¼Õ/ŒææfYYÙ ØL&?È‹î, ù 8&“™æéy{̘Cƒ¥_cK£o„¯ú.uåÊ{ƒöÖ7×Q`\nÀÂ…-Z„qÅô/f‡²²Ê=Ξ¥H/ÐéM>>¡ææ{Æ;|ñb\S‹èˆD­ù¾ººšßËïÇüûãqg2™rrrAAAÕÕÕüñ‡œœ“ÉÄq|×®]+W®,((HII™2eÊÎ;ùå{÷î•——GDD˜™™ñ×PUU¥©©¹nݺ„„„””ooo„PXXÞ*ßÓét‰ÑÔÔ´gÏþˆ‹î, ùˆ¿ŸOèÔ©>zzßNœxÄÓóvddšØžÿd0¾¾ªîªšßjz…x1˜ƒàªDufæ)cãWüAt =Ååò/þyþü“Îà¸JZ_ßäãja±w̘Câ–é1^þ¦!ñDñûG~^ªùÇq555ssóÁ™öÛ·o›››ËÈÈXYY…„„ð'2ŒM›6©««kjjnݺµ©©‰Ëåúûû[XX(**N:õÙ³g‚5¬\¹R___YYyòäÉ÷ïßçOo}>ÿÔ©S†††çÎ[»v­ŽŽNgEw8QÀý÷€YYaaÉTjÆÛ·%**ò³fY:9Z°`¬’’ØÝA^ÛX{6úì)ê)9i¹Ý.»w9î’—ë±~úéÕùói45¢céÞ•+OŽ yøðÖÖúDÇÒ ƒyölÔµkñRRR;wÎýüóŠŠb±»âªLm̧ÖçGÓ›ª8êfr¶›t-j/ïÁŠ‹ë=J£RÓŸ={O&“&O6sv¶quµ·g«U7TŸŒkÀy¸ÞDeSG5Uy iB‚’ò=¬êë›ù—ù>|ÛÜüoÿ>WW[KK]¢Bz–÷ìXø±°Ô°éÓ}>ñ™3rQ‘°¯Î«?aÂâß':–ÕÔ4Ιã»páØ'V B±ÙÜë×/\ˆ­©iX¿~ÚŽzzjÆS™Ò”üg…©£šñlUYqì )È÷`Ðc±¸/^äEF¦‡…%WV2ýû&N4%d¸ñ„Ü„C÷ÅfÅ:Y;ý¸üÇI&“DCkùÑÑw7lXzéÒˆbqÏÛŽ/^äÅÄì%üZ —‹ÝºõüÌjUUÆ Ó¶oŸ3|¸:±!0p ßÉaxZZ •šò&7·JSSÉÁÁÊÕÕvöì‘22¢þŸDˤ>ð²à¥“µ“ßJ?;#;ÐZÄ7ß<~¼)6VN•È«¡‡ßnÞ|% `«££5að3ýÙ³´òòú5k¦ìÚål` ºLßPÊʪ/ŠgÌ?kN‘%‹¬\0ÄA¾’©°°–JM M~õª@NNzÆŒ‹›7oŒŠŠHÿSÒ2i{ƒö¾)~³rÂÊ–þ`¥k%ÊÒZêëÿtp0›;wÞÉ“„À÷áCóœ9~3fXž=KØSx<ìæÍç¿þUVF_³fŠ»»“¡¡ˆžCWŸß’UŸ]_›Õ,§J1ž£:i§>\˜"ùH¸²²úèèL~ÿ> ÃíìŒ]]m-+²k´8އ¥†ºw(­4mńǖ¡3B4E·–~ëÖ•7n˜Ì™#úÒù<4?~üïc|Z,-u]]Ç9;ÛŒk(‚Ò1»›t÷à? j ÖL^ãíêm¦m&‚r[»¿ukEJÊçQQ2Jô<‹ËúôÓ çÏæêj+â¢1 ¿{÷Õ¹sѹ¹UË–Ù¹»;1L”d‡ÖÖf3MÕ†U"Áù{@È÷`ÈiÕ¿/¥²òƒ‘‘¦³³‹‹ÍÔ©ÊÀ6Æçæ‹›GB”ÐK>Ÿö¹—«—¾šè~×\[{ÕÁaä’%Ž>>"+”¯©‰5wî‰1c .]Ú$Êrq KùùçÈììŠåË'|ýµãÈ‘„ݾ± ߃¡Kпïþý䜜J Źs­mG)( àC`Ø\öÕÄ«GBÔ7×9óËý ö몊( ¥=üî»ÕAAS¦ˆ¦D¾ï¿ÿ'(èUlì>eÑ”ÈÏô§OSß½+_¼xÜwß¹XYé PYœf¬8þC~T}s Çõ²å•@?A¾¡Výû’’ de¥gÌáìl3þ˜{è ‹Ëº–xÍë¾WCKÃN‡{ìUWEñ6mªËÍÝH¥RäDÔuñÅ‹¼åË=yrÍêÕ“ES"•šþË/Ô7oŠ/÷í·Î4Ò.‹Á+zü!?š^ò”ÿl%Ó¹êÖ+´\—b ò=©­mŒŽÎ K‰‹Ëâñ0~ÿ¾… ÇêëHÿ¾&VÓ¯1¿úEøq1îŽ9;ö/ܯ*?°·Ì5VTüéà0nÆY hA|,×ÉÉßÈHãÆm"(ŽJM?s†–”TàìlóÍ7Î7OÔþü‚èz Ÿ¬bê¨f4[UNžÄä{:Æd²ããsBC“##ÓŒíß×ÐÒp.öÜñÇ)RÏyžîsÝdpÐÕäë×£þôþ}Ýq㮾ãÇÃÿüóILÌÞ~”M||ö‰_½Êwv¶ÙµËy„s/ývµ¬ª”ÑLUEâ‡n ' ßÐ þ0}¡¡)áá) 5\\F»¸ØØÛ› w˜¾ÚÆÚ³ÑgOQOÉIËívÙýã7rÒsÊÇ׬aÖÖ®ˆ’Àû¿SS‹/>}äȲM›f \)ññ9þþ/_æÏœiéé9âDS!®ãápã ïè…¬¬Š°°d*5#5µX]]ÑÑÑÚÙÙfî\kEEYaQÝP}2ò䙨3šJšó<¶ÏÞ.KÚÊ>]utœüõ×S¿ýVè+çãpxóçŸRU• úz€lœ˜˜ëç÷àåËü3FxxÌŸ_]w<ŒB $ä{ú¥®®)**ƒFˈŠÊ`±¸vvÆ..6 ½Ó¤) (IDATŒJ’+¬-üñÁWâ¯XèXì_¸Ý”uRd¡]AÀ1ìæ²e8—ûéýû$)!_„Îʪ˜7ïäž= vì˜+Ü5§¤ÿøcØ“'ÙãÇíÛ·hæLáÜÿÖò´2“YÇQ5’5ž­fâ ¦3Fž$ ä{„£Uÿ¾tƒii©ëìlãìä{„Lп/""µ¬¬ÞÀ@}Î+gg›9s¬úÓ¿/£,Ã;Ô;()h´þèË»MtJ´OþùÅo¿m¤ÑÔLL„²B„ÐÅ‹q>>¡î¶¶Î#nÒÒJýý#h´Œ1c \ÜŸLß\ˡȑ¡S=‚ ß0€Z÷ïSSS˜9ÓÒÉiÔ‚c•”úØïméÛ£aGZcofô“£NÖNýŒãrÿZ´HVYyõ;H§ jýwìpؽ{~ÿ×–‘Qæç÷€F˰±Ñ÷ô\àä4ªoç6+ØÑõùÑõ•)3öY-×êl .ï…ââºGÒøýû¤¤È“'›9;Û¸ºÚ¦Ò‡µ=Ë{vøÞaZ&mºÅtŸO|挜ӟتÒÓÿZ¸Ðñرqë×÷g=!ÇÝÜÎÑéMîîçÍŠïßW8žbm­¿gO3ý‡"V~4½ º¾:£™"K6˜ªb2GÍh–Ь < 9ï):½‰FË Ñ2¢£3™LöèÑÎΣ–.µ³°Ðéíªâsãß;›ëdíôãò'™LêsTKØ­¬ß¯GÏÞ¸ñtß¾ ÐÐolmû~[^^µŸßƒððSSí={,Z4®o·óÄÔS=òäT)F³TMæ¨ ŸªL‘…x`è‚|1ZZ8Ožü;>ouuCŸû÷Ñ2i‚¼,xédíä·ÒÏÎÈ®ÁðØìë..*††+ú°8_YY½ƒƒßúõS^Ò·5Ô?žbb¢µwïÂ>gz>v¯&³YÏN‰40wÿ0¸@¾€`üþ}TjFDDj^^µ¾¾˜¾^õï£eÒöí}Süfå„•G—©;²·a”%%Ýüä“?ÿ±ëɯƒWÿ¡ ¶¾8‘Áca+GÁ}tt ò=⨤„ûŽJM}G&“þ¿߸aÃ>=/..ÎÇǧõœ„—)•婿Éñä&•÷îŠ>æååeéèTªôºai©!‰„éë—övÁÂBã–y-­ : ký•Jm3sS%§ðq}AL}yR#‰Œô'*›8¨ÍVUÐÀQ ïkõõÍüËü¾mnþ·ß’%ãGŒ† \½zõœ9sÚ,…‘0–Kž+ßÛâÈ8Žõõ®<'‘H½nO8)).™üQ¦¯ªªÊÈÈhß:=?]šû Îh¶ªñLÕáöÊR2Ðÿ€ž‚|ÀàÀbq_¼È‹ŒL }SUÕ`l¬éäd£¨X»ÿÖ˜˜h¢£²ØØØ#GŽ´oX EŽ,%×êè5¸ €ÁAV–2s¦åÌ™–ß¿$117""5,,¥¶¶DB§²eUà¹xôœ `‘––š={¤¯¯Ûë×^{öŒÅq6ÑÈ÷ V$IG§×WèCä{@òA¾$ä{$ŸƒƒCiiWwÆw;C{¥¥¥}¦Ï úò= /”””Ö®]‹*//_ºt)ÑáºùЪªª[·nEaÆ`0ˆÐ È÷ -4mãÆK–,¹uë–`ú«W¯Ö­[çêêzãÆ þ.—{þüùeË–-[¶ìüùó\.—*þõë׫W¯~øð!ÿ´üŽ;BË—/ïl) ÃnݺµaÆ… îܹ333Sä €|ÀÐÿÛo¿mÛ¶íÂ… ü‰ÏŸ?¿xñâž={.]ºÄÿ¿T^^~áÂ…“'O¾~ýúÏ?ÿäϸoß¾#þŒçܹs¡àà`þÛöKݽ{÷öíÛ[·n ذaÃùóçE½ÁÈ÷ AŸ|ò‰’’Ò¼yóB‚Sñ«W¯VPP˜1cBˆÿ# ""â›o¾ÑÑÑ133Û¶mÛ‹/øsnݺuüøñrrG×~©û÷ïoß¾}æÌ™šššS¦Lá_ˆ|ÀCêh¼öUUUþùçáÇ#„ëêêøÓÛüPèv©ï¿ÿþýû÷æææü ú½€^ƒóù€ŽÍœ9óâÅ‹•••yyy{öì¹wï^33™ÌΖZ²dÉï¿ÿžPWW÷âÅ‹+W®ˆ$|ÀGàÿ= c_|ñů¿þºeˉ4kÖ¬mÛ¶ÕÔÔ´ŸMWWw̘1+V¬xðàA‡KIKKs8œßÿ½¶¶ÖÜÜüðáÃü.ýQ"µa0X®^½:&&†è@„,66öÈ‘#Ð: Dp>|ïÉù|ïÉù|ïÉù|ïÉù|ð<]=¢C2:NtHÈ÷ b†††nnnDG1 &L˜@tHx~> ùàú= ù ß’ò= ù ß’ïÿž¢zÉ ²ëIEND®B`‚XQilla-2.3.0/docs/simple-api/ATAnyURIOrDerived_8hpp__dep__incl.md50000644000151400015140000000004011653571063021455 000000000000009a384bcd16f6965dee52a269df44cb34XQilla-2.3.0/docs/simple-api/classATGMonthDayOrDerived.html0000644000151400015140000003763711653571064020442 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATGMonthDayOrDerived Class Reference

#include <ATGMonthDayOrDerived.hpp>

Inheritance diagram for ATGMonthDayOrDerived:

List of all members.

Public Types

typedef RefCountPointer< const
ATGMonthDayOrDerived
Ptr

Public Member Functions

virtual const XMLCh * getPrimitiveTypeName () const =0
virtual const XMLCh * getTypeURI () const =0
virtual const XMLCh * getTypeName () const =0
virtual const XMLCh * asString (const DynamicContext *context) const =0
virtual bool equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
virtual int compare (const ATGMonthDayOrDerived::Ptr &other, const DynamicContext *context) const =0
 Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.
virtual bool hasTimezone () const =0
 Returns true if a timezone is defined for this.
virtual ATGMonthDayOrDerived::Ptr setTimezone (const Timezone::Ptr &timezone, const DynamicContext *context) const =0
 Sets the timezone to the given timezone.
virtual
AnyAtomicType::AtomicObjectType 
getPrimitiveTypeIndex () const =0

Member Typedef Documentation


Member Function Documentation

virtual const XMLCh* ATGMonthDayOrDerived::asString ( const DynamicContext context) const [pure virtual]

Implements AnyAtomicType.

virtual int ATGMonthDayOrDerived::compare ( const ATGMonthDayOrDerived::Ptr other,
const DynamicContext context 
) const [pure virtual]

Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.

virtual bool ATGMonthDayOrDerived::equals ( const AnyAtomicType::Ptr target,
const DynamicContext context 
) const [pure virtual]

Implements AnyAtomicType.

virtual AnyAtomicType::AtomicObjectType ATGMonthDayOrDerived::getPrimitiveTypeIndex ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATGMonthDayOrDerived::getPrimitiveTypeName ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATGMonthDayOrDerived::getTypeName ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATGMonthDayOrDerived::getTypeURI ( ) const [pure virtual]

Implements AnyAtomicType.

virtual bool ATGMonthDayOrDerived::hasTimezone ( ) const [pure virtual]

Returns true if a timezone is defined for this.

False otherwise.

Implements DateOrTimeType.

virtual ATGMonthDayOrDerived::Ptr ATGMonthDayOrDerived::setTimezone ( const Timezone::Ptr timezone,
const DynamicContext context 
) const [pure virtual]

Sets the timezone to the given timezone.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/DOMNode_8hpp__incl.md50000644000151400015140000000004011653571063016553 00000000000000a884535c995299f0bc7ba93676c81165XQilla-2.3.0/docs/simple-api/classxercesc_1_1XMemory__inherit__graph.map0000644000151400015140000001036111653571064023167 00000000000000 XQilla-2.3.0/docs/simple-api/classNSFixupFilter.html0000644000151400015140000003745411653571064017256 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

NSFixupFilter Class Reference

#include <NSFixupFilter.hpp>

Inheritance diagram for NSFixupFilter:

List of all members.

Classes

struct  ElemEntry
struct  NSEntry

Public Member Functions

 NSFixupFilter (EventHandler *next, XPath2MemoryManager *mm)
 ~NSFixupFilter ()
virtual void startDocumentEvent (const XMLCh *documentURI, const XMLCh *encoding)
 Handles a document node as an event.
virtual void endDocumentEvent ()
 Handles a document node as an event.
virtual void startElementEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname)
 Handles the start of an element node as an event.
virtual void endElementEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName)
 Handles the end of an element node as an event.
virtual void attributeEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)
 Handles an attribute node as an event.
virtual void namespaceEvent (const XMLCh *prefix, const XMLCh *uri)
 Handles a namespace binding as an event.

Constructor & Destructor Documentation

NSFixupFilter::NSFixupFilter ( EventHandler next,
XPath2MemoryManager mm 
)
NSFixupFilter::~NSFixupFilter ( )

Member Function Documentation

virtual void NSFixupFilter::attributeEvent ( const XMLCh *  prefix,
const XMLCh *  uri,
const XMLCh *  localname,
const XMLCh *  value,
const XMLCh *  typeURI,
const XMLCh *  typeName 
) [virtual]

Handles an attribute node as an event.

Reimplemented from EventFilter.

virtual void NSFixupFilter::endDocumentEvent ( ) [virtual]

Handles a document node as an event.

Reimplemented from EventFilter.

virtual void NSFixupFilter::endElementEvent ( const XMLCh *  prefix,
const XMLCh *  uri,
const XMLCh *  localname,
const XMLCh *  typeURI,
const XMLCh *  typeName 
) [virtual]

Handles the end of an element node as an event.

Reimplemented from EventFilter.

virtual void NSFixupFilter::namespaceEvent ( const XMLCh *  prefix,
const XMLCh *  uri 
) [virtual]

Handles a namespace binding as an event.

Reimplemented from EventFilter.

virtual void NSFixupFilter::startDocumentEvent ( const XMLCh *  documentURI,
const XMLCh *  encoding 
) [virtual]

Handles a document node as an event.

Reimplemented from EventFilter.

virtual void NSFixupFilter::startElementEvent ( const XMLCh *  prefix,
const XMLCh *  uri,
const XMLCh *  localname 
) [virtual]

Handles the start of an element node as an event.

Reimplemented from EventFilter.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classxercesc_1_1StdOutFormatTarget.html0000644000151400015140000001745111653571065022327 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

xercesc::StdOutFormatTarget Class Reference

#include <StdOutFormatTarget.hpp>

Inheritance diagram for xercesc::StdOutFormatTarget:

List of all members.

Public Member Functions

virtual void writeChars (const XMLByte *const toWrite, const XMLSize_t count, XMLFormatter *const formatter)
virtual void flush ()
constructors and destructor
 StdOutFormatTarget ()
 ~StdOutFormatTarget ()

Constructor & Destructor Documentation

xercesc::StdOutFormatTarget::StdOutFormatTarget ( )
xercesc::StdOutFormatTarget::~StdOutFormatTarget ( )

Member Function Documentation

virtual void xercesc::StdOutFormatTarget::flush ( ) [virtual]

Reimplemented from xercesc::XMLFormatTarget.

virtual void xercesc::StdOutFormatTarget::writeChars ( const XMLByte *const  toWrite,
const XMLSize_t  count,
XMLFormatter *const  formatter 
) [virtual]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/FastXDMConfiguration_8hpp.html0000644000151400015140000000605711653571064020456 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

FastXDMConfiguration.hpp File Reference

#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/simple-api/XQillaConfiguration.hpp>
Include dependency graph for FastXDMConfiguration.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  FastXDMConfiguration
XQilla-2.3.0/docs/simple-api/DynamicContext_8hpp__incl.map0000644000151400015140000000067511653571064020366 00000000000000 XQilla-2.3.0/docs/simple-api/inherit_graph_8.map0000644000151400015140000000022411653571064016372 00000000000000 XQilla-2.3.0/docs/simple-api/classSequence__inherit__graph.png0000644000151400015140000000621311653571064021332 00000000000000‰PNG  IHDRuüýõ†bKGDÿÿÿ ½§“ @IDATxœí{P×€OH ¼M™ð¯R^S¸Ôô1v°Ó¡˜‚:8N‹W¤ÃKZ”âH‡ŽS@êP¥Ê4íØ£-•‡˜¶0<qª(6Å*´’kRJ{ƒhA„ ˜0!%1¯sÿØÛ½i¢Ârâùþ:{ÎþN~g¿ìÙÍn’¥AfÕãFu˜{Bì °'4`X.lܸ‘ª<0¶”——'&&å¿xêíí]¿~}hh(YaþB[[[~~>¹È°jÞ·o_zzúʦ„±F³\ÄÇ'4ÀžÐ{Bì °'4p5O‰„Á`´µµ‘5]]]2™ @£Ñ¢££­.=§¤¤Ðh´ÑÑÑ•Îõ¡€„B!Dœ÷ߟËåªT*áÜÜ\PPPee%Ñ`0‰„\Y©Tzyyär95é.‚• WÛŸååå¾¾¾û÷•–––’­ÉÉÉ–{[ww7ù™UãÀ¡-]]]AAAJ¥BøÕW_EGGk4¡^¯/..ö÷÷÷óó+..Öëõr¹ÐÛÛÚ××wðàÁÐÐP__ßœœân7 BØÝݽvíZ&“ÞÜÜ !4 vÉ—°-Cúé'ƒñá‡2™L™Lf9À†††¨¨(³ÙLÔlݺµ¡¡ü¹?ÙM‰ˆŠ‰‰ñõõÍÍÍO>ùäc=V^^Nt¢R©rss9Nppð»ï¾«Õj-‡ÿÜsÏåååkÎÏÏ{zz =ìþôÐóÞÎ;sss§§§ˆÊ?þxûöíãããR©ôùçŸ/++#MII¹xñbEEE\\œT*•ÉdñññÅÅÅ‹Ei4&“YSS355ÕÐÐÀ`04ÍÑ£Gí†ÏÍÍÕ××Û– ÊÊÊäŒGð×_år¹ÄÔ777çåå5;;Kz²M‰ˆÊÈÈP«Õ'Ož¤§§«ÕêÚÚZÀìì,„0+++))éÆR©ôé§Ÿ®¨¨°~OO‡Ã1 ÂÖÖÖ¸¸8ò]âDO*•*$$„ÇãUTT•111SSSDùüùóÏ>û,‘¨T*…>õÔS"‘ˆhýå—_Ȳm”R©twwÿä“OT*•ÙlžŸŸ7™L‹…;Àl6¿öÚkt:=;;Ûj€r¹¼°°ð½÷Þƒ¶¶¶nܸ‘¬·›ÑJìz½Þª,—Ëõz=Nÿù矉(‘He9|£ÑÈår/\¸!ܲeËG}tßüáÒ=A>L§Ó YÃb±,çR6›M$JÌ,Ëròq!ìïïOKKóööNHHèééq–6›ýÝwß±X¬ÎÎNËÊåòK—.S_jjjmm-´ðd7%`q–a[ž˜˜hµZ¢R*•²X,ËáC÷îÝ[XX833ãáá111ñ CXª§ññqÿÍ›7[¾UCBBÈìU*ÕÈȈå#""âôéÓDY"‘s‘mÔ‚X,†Þ»w¯©©‰N§ß½{w±ðŘœœôññ©««ƒ ‚€€bv‚nY£Ñ ‹½½½‰w¹õmS‚÷óDìOÃÃÃDeGGGdd¤Õñ²¯¯/((¨ººú•W^qœ<É’<™L¦äää#GŽ(•J.—ÛÝÝMÔ¥¥¥Ýºuëúõëññño¿ý¶e¢‡âñx2™L&“½ôÒKùùù‹EiµZ‹ÕÞÞ>33SWWÇb±´ZíbávOf³yëÖ­‰‰‰&“ B¨×ëy<^FF†ÕVÞ»woll,ŸÏ·ª·MÉ®«rfffRRÒØØ˜L&‹‹‹;xð •'£ÑèïïÐØØø`š–æé³Ï>{æ™gˆÝ¹££#008÷S«Õo¾ù¦‡Ãyë­·þøãËDu:]qqqPP›ÍÎÈÈ OØl£ „B¡022ÒÃÃ#&&¦««ËA¸Ý󽦦&&“ùÛo¿‘9º¹¹µ··[nÙK—.ª««­¶¸Ý”îëI©Tæääp8œÀÀÀ}ûö‘ç{–›nÏž=žžžjµú¾†ìºpÁϹ«“dff>øúV.¬ïb–NwçÎ/¿üò믿þÛ¸àõˆÕÆÀÀÀºuëòòò6lØð·;Áû“ÓILLT*•KìïOh€=¡ö„Ø`Ohà‚žƨNaù±>/¯¬¬¬¯¯§$•åbl,2$dÂÃCOu"ËÉ_<íØ±ƒª<– ­–¡ÕzêõÜ€€yªsY;vì°ü¢? ºÖï>=[Uu.,ŒsåJ9Õ¹,'®v|jkûðûïwGFîPËrâRž$’ñÛ·Uwwú©SרNg9q)OC `0˜ÚÚ~4›]gJwO&“¹½ýG£ÑD,ÎÌ̺ΠºëxºreT¥Z ÝÝéCæ³¼¸Ž'‘hˆÁøÿp SW×Á`¢0¥eÄE<éõÆîîfËJµúžXüªRZ^\ÄÓÅ‹#Zí=«Jƒ&¹ÈYŸ‹x‰®¹¹YÅh4÷ô\_Xp… H®àI£¹wîܰÉd¶m2L½½Ã+ŸÒ²ã žÎŸÖ답ºÆYŸ+xêì\Ô„Ù ûúFÔjíJæã \á:ìíÛ*ËIïÅ+ùWrò?É.—Íd¢ýÍ*´³' ñ±ªñóûGX‡’dœ„+Ì{Ø`Oh€=¡ö„Ø`Oh€=¡ö„Ø`Oh€=¡ö„Ø`Oh€=¡ö„Ø`Oh€=¡ö„Ø`Oh€=¡ö„Ø`Oh€=¡ö„Ø`Oh€=¡§VWWç¼ÎÓÛÛ;==¸ò¯›œœá”®—ýA–Oˆ ww77&%/í¼§“8÷wŸ‡ZÊà ЂÏç;¯s||Bì °'4ÀžÐ{Bì (þ?­VÛÔÔ$‹•J¥ŸŸ_RRRVV–‡‡µY­B(ötüøq…Bqøða??¿ñññãÇÏÏÏQ›Õ*„ây¯¿¿????::úñÇçñxEEE—/_¦6¥Õ Åž¼¼¼:;;Õj5±Èãñ„B!Q6555Û¶mÛ¶m[MMÑh„vttäæænÙ²¥°°P"‘ðùüÉÉIòB€eÙ6Àçó{{{sss_}õÕo¾ù`2™_ýõÔÔT@ Ñh„SÅžJJJ†††ÒÒÒJJJ„B¡B¡ ›ÚÛÛ§¦¦jkk?ýôÓ¡¡¡ÆÆÆ3gÎ477ïÞ½»¥¥eçÎÀA϶áD}uuuAAAmmíüü|{{»X,UUU­­­ŽÃ©‚bOëÖ­ …ÇŽ[»ví·ß~›™™yá¢éìÙ³ï¼óŽ¿¿DDDAAÁààà©S§öìÙ“ÀápâããwïÞí gÛp¢>55uÍš5›7o¨Õê3gÎäååEDD„‡‡ïß¿?..Îq8UPy¡Óé~øá‡ 6ÄÆÆÆÆÆæää455ÕÔÔ$%%¦§§·oßN®ìíím4£¢¢ÈÛ;–émÉ‚¯¯/€ÁøßÀ EHHQ sNTz‚VVV>ñÄÄÖ§Ñh/¼ðÂéÓ§‰V6›]UU Ðh4J¥òÀ7n܈ŒŒ$V¸uëÙ•Éd¢Óé³³³dm8QO£Ñ,sàp8ÓÓÓááá€ÑÑÑ«W¯fgg;§ *ç=OOÏM›6}ðÁW¯^šš>qâ±3êëë ÅØØXiiigggJJʉ'._¾¬T*‰ûkÖ¬œ;wnaaA$‘Û†ÛÍaÓ¦M'Ož¼yóæÍ›7;F 0|Å øóSiiiKKK}}ýä䤟Ïã7ˆ¦]»v}þùçùùù4íå—_.(( Óé&“©ººznnŽ8lTVV²Ùì]»v}ñÅ­­­………ßÿýbávÈÊÊÒét%%%:nýúõäj¾b8ñ|i4šSïNNNfgg÷õõ9©ÿ‡…Ïç …Âôôtgtޝï¡ö„{ ^=“ž³AØÓ#ö„Ø`Oh€=¡s¯G\»v¼£ƒYNú>´ó.s¬fœ÷ýrWxþÓ£>>¡ö„Ø`Ohð_› {4pbXIEND®B`‚XQilla-2.3.0/docs/simple-api/inherit_graph_38.png0000644000151400015140000000223011653571064016463 00000000000000‰PNG  IHDR](üaæbKGDÿÿÿ ½§“MIDAThíšKH[ÇÏ4I ¢VFÅ”½…D‹-  ZDdRZD-¢ 0Ý$I¸ªE»$hcQT ô4ܘ+±ÑˆðÕ‹"ÄžbaæÜÅpËC˜74¸ó[Í÷çÌ9ßüý¾ãp!ÐD‘’ìþ(´/ph_àоÀI ŒF£F£IV*ÉE(ªT**üäËÝÝÝþþ¾X,NxVIæèè(###RI´²²’¨|þ _zCû‡öí Ú8ñøâ÷ûåryqq1“É,//Ÿ˜˜x{{ûf¼ÓéDä§« p8œÖÖVÇó£â[—$_†‡‡-ËÚÚÚåååüü¼^¯¸Ýn=žËå*•Ê82™L···777F£1Ëd²8&‰"‚ååå/ .—k6›©Ðh4òù|‚ G,·ÇÀápPáõõ5àéé)öbÏG,‹ÅâH%žza³Ù³³³>Ÿ …BáÅÅ ¶¶›› þ­áƒƒ>Ÿ¿°°@Õ3‚ :®¢¢"33sjjŠÌ{nn®²²’Íf744lnnB‹EQ@(<>>öõõñx¼üü|¹\Nv1TŒŸH“b¬— ÃÒÒÒD"ÑôôôùùyôçC^·´´ «ÕJé€ŽŽŽ‡‡­V ðù|Z­ðíím¯×»··WVVFX­Ö———ççg§ÓÙÞÞ^SSCN"•J].Žã@­VCÅÿR/ñøBD(2›Í“““EQNõÇñ/:àðð ˆ`0p8€¼dqq‘ò…‚Á`Ô×דm QµÛíäøõõõ²²2¨˜P_ü~ÿÒÒR("Ãp8¬R©0 ƒú £}9;;£®“É<>>¦æ§Š |Þ_(®®®¯¯¯dˆãxzz:TLèþBDww·Íf#CAšššÈ¶†Á`D‹))Ÿ-,,<99¡ÂÓÓÓïÈÉÉAQÔív“¡ËåÂ0 *Æö@p~ì ‹Åêíí•H$[[[n·Ûd2Éåò®®.j€ßïÿÑ„CCC …bww×çó µZýýKƒÁH$###Çn·K¥R¨øÓGûDdñĸ¿„B!µZ]UUÅd2‹ŠŠ”J%YÀïïïuuu,‹€õTdïD^||ÌÌÌ”––r8œææf½^ŸýMqßÓÓ“•••——7::J®-&aßýE666¬V+®®®VWW'8‡ßyù]p—Éd‹%˜Íf•J500ì¤`çu F¡P¶¶6¯×[RRÒßß?88˜ì¤þ€/©©©毷'¿þ&´/ph_àоÀ¡}Cûò=-‰ŸGr±ÙlB¡0RùäKAAÁÿðÇi€P($)‚þ zCû‡öí œŠ y¿¹IEND®B`‚XQilla-2.3.0/docs/simple-api/functions_0x64.html0000644000151400015140000003227211653571063016307 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- d -

XQilla-2.3.0/docs/simple-api/ATGMonthOrDerived_8hpp.html0000644000151400015140000000635511653571064017706 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATGMonthOrDerived.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/items/DateOrTimeType.hpp>
#include <xqilla/items/Timezone.hpp>
Include dependency graph for ATGMonthOrDerived.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  ATGMonthOrDerived
XQilla-2.3.0/docs/simple-api/classxercesc_1_1LocalFileInputSource-members.html0000644000151400015140000002332011653571064024237 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

xercesc::LocalFileInputSource Member List

This is the complete list of members for xercesc::LocalFileInputSource, including all inherited members.
getEncoding() const xercesc::InputSource [inline, virtual]
getIssueFatalErrorIfNotFound() const xercesc::InputSource [inline, virtual]
getMemoryManager() const xercesc::InputSource [inline]
getPublicId() const xercesc::InputSource [inline, virtual]
getSystemId() const xercesc::InputSource [inline, virtual]
InputSource(MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSource [protected]
InputSource(const XMLCh *const systemId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSource [protected]
InputSource(const XMLCh *const systemId, const XMLCh *const publicId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSource [protected]
InputSource(const char *const systemId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSource [protected]
InputSource(const char *const systemId, const char *const publicId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSource [protected]
LocalFileInputSource(const XMLCh *const basePath, const XMLCh *const relativePath, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::LocalFileInputSource
LocalFileInputSource(const XMLCh *const filePath, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::LocalFileInputSource
makeStream() const xercesc::LocalFileInputSource [virtual]
operator delete(void *p)xercesc::XMemory
operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
operator delete(void *p, void *ptr)xercesc::XMemory
operator new(size_t size)xercesc::XMemory
operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
operator new(size_t size, void *ptr)xercesc::XMemory
setEncoding(const XMLCh *const encodingStr)xercesc::InputSource [virtual]
setIssueFatalErrorIfNotFound(const bool flag)xercesc::InputSource [inline, virtual]
setPublicId(const XMLCh *const publicId)xercesc::InputSource [virtual]
setSystemId(const XMLCh *const systemId)xercesc::InputSource [virtual]
XMemory()xercesc::XMemory [inline, protected]
~InputSource()xercesc::InputSource [virtual]
~LocalFileInputSource()xercesc::LocalFileInputSource
XQilla-2.3.0/docs/simple-api/inherit_graph_22.png0000644000151400015140000000251111653571064016456 00000000000000‰PNG  IHDRƒ(R$ÞbKGDÿÿÿ ½§“þIDAThí›K,3]Ç}u!’––j•DmˆÛ ;$l]Óˆº$¬ˆ6IIH\ —nì„ â²s‹D„ÈhH´E©P´#Õ¦Õ‹ùó¥ÓA¿~åÄù­žóô9Ïù;ÎaZ!† ýÛ ÿ  Ð º  ˆƒÝÝÝ¿%å·±±±A¾sÂh4nnnVVVþ¬¤_ÇÍÍÍÁÁ)ùÇ·nqqñGôü^«««IIxOÐè]€NÐè]€NÐ…@œ¡"èÊ>G«Õzýn=ĵ¾Šßbýa?11ÑŸÊ‹‹‹ÜÜܧ§§À º?!Êf³ÙAlNI€NDGGÇÆÆúSùööf2™[å;ôø Q6—Ë bsJ‚yO¬®®ÆÅÅ¡( ˜ŸŸOII±Ùlùùùï6¹\.…BÁãñbbb …ËåÂö·¶¶öööBBBæææ$ITTÔÈÈ>k}}=;;;<<œÏçû¹)Ä#…t”‘ú»Ýn¥R™-“ÉžŸŸDÙÄéÏÏÏõõõ\.W(Êår‡ÃAÙ30 ¤ %€ããã—÷à/Éd²ºººûû{wxxˆa˜F£!ö.//¿¾¾F$''§«« /(--ÝÞÞ¶Z­€ŠŠ E§§§&“Éb±0™ÌÆÆFƒÁ0;; xxx ¶õÕãr¹ˆ¤bRÿÑÑÑ´´4ANNNòòòär9i 1®©©),,Ôét‚¤§§÷õõQöü|)÷9@'>rEQ¡P˜‘‘KôuB,ßÝÝáñÆÆFVV^€ ˆ·ùÎΆaN§ Ñh^__ÏÎάV«ÇãÙÝÝÅ“¤Í%±¶¶ö‰¤þ©©©KKKø«§§§xL9Ýét2 µZç—––D"eÏÏ7rŸ¼'4H$òͳÙìæææþþ~ÒƒF/WWW|>ß;d±Xx ‹½I@ ÇL&óüü¼©©Éjµfggû©G«Õzc’[¤þz½>99%‰D"¡\`4=ORR>‰Dƒ²gù››ÉÉÉ¢¢¢ŽŽÊ.—ëý–AQÔûH’ø5„†¾Se·Û«ªª ÅÑÑ‘J¥úOzÜn7àöö–˜$õWWWx|||<88øQ7Ç`0...ð¡N§‹‹‹£ìÎ||¼àíí­±±±µµu~~~sssmmÍ[_€²²²îîn½^ HIIÉÔÔÔ—k½¾¾:N&“i·Û•J%àåååËYl6033c±XÆÇÇ?©¬­­íééQ«Õjµº¥¥E¯×ûÊÆ «®®nkk»¼¼T«Õ½½½555_*ñ—/Ï/_>ê311‘™™ét:1 [^^æóùf³ÙårDDDàs-KCCCdd$‡Ãinn¶Ùl¤‹ÎYo<66¯R©¤RiLL éè§<šØlvRRÒÊÊ e1;¹\.X,–T*EQÃ0¢lâZf³¹¶¶–Ãáðùüööv»Ýþ‘æOÚ ùŸPî3|îD t:A t:A t:A t:A(žÅÿ¼Ž_…ÑhôM¾s">>~(öˆŒŒ$¾ €‚Áÿî¢ðž  Ð º  Ð ºðàáâó¯gOIEND®B`‚XQilla-2.3.0/docs/simple-api/namespaces.html0000644000151400015140000000371011653571063015630 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

Namespace List

Here is a list of all namespaces with brief descriptions:
CompileDelayedModule
xercesc
XQilla-2.3.0/docs/simple-api/ModuleResolver_8hpp__dep__incl.md50000644000151400015140000000004011653571063021264 000000000000006d1c6a9cfa6e54d5849f1f70afd89c45XQilla-2.3.0/docs/simple-api/classATUntypedAtomic__inherit__graph.map0000644000151400015140000000060411653571064022563 00000000000000 XQilla-2.3.0/docs/simple-api/classxercesc_1_1XMLFormatter__inherit__graph.md50000644000151400015140000000004011653571064024014 00000000000000e0d813d238529e205c13c6671508e5edXQilla-2.3.0/docs/simple-api/XQilla_8hpp__dep__incl.map0000644000151400015140000000023011653571064017601 00000000000000 XQilla-2.3.0/docs/simple-api/MemBufInputSource_8hpp.html0000644000151400015140000000610611653571064020027 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

MemBufInputSource.hpp File Reference

#include <xercesc/sax/InputSource.hpp>
Include dependency graph for MemBufInputSource.hpp:

Go to the source code of this file.

Classes

class  xercesc::MemBufInputSource
 This class is a derivative of the standard InputSource class. More...

Namespaces

namespace  xercesc
XQilla-2.3.0/docs/simple-api/LocationInfo_8hpp__incl.md50000644000151400015140000000004011653571063017712 0000000000000045a8e7065f9878ee1aa8e44ef69549edXQilla-2.3.0/docs/simple-api/XQException_8hpp__incl.map0000644000151400015140000000003511653571064017632 00000000000000 XQilla-2.3.0/docs/simple-api/VarHashEntry_8hpp__dep__incl.md50000644000151400015140000000004011653571063020673 000000000000003fb2fd63e80c36b1c30c5816c0d8a6f2XQilla-2.3.0/docs/simple-api/inherit_graph_0.map0000644000151400015140000000023411653571064016363 00000000000000 XQilla-2.3.0/docs/simple-api/inherit_graph_14.png0000644000151400015140000000455211653571064016466 00000000000000‰PNG  IHDRý(º¤k7bKGDÿÿÿ ½§“ IDATxœí›{H“]ÇÏ´­PqÎËLM-gyID-(!JŒDy‹ÌR/˜¥] ¼¤Ý&ÝÈŠ’ ,ŠÊ03aiIŠ1LæJÓyŸÍKn:ç¦[Ûóþq`¬çyö8mï»óùë<¿ßåù¯gç™ Ã0€@XV»â/€t°Dî–Ò=ÂY»¾råJssó_)X:êëë /ñºoooïìì _Æ’ˆ%dhhˆÏçãŒxÝÂÃ몪–¥$bÉ©ªªJLLÄÑùa‰ Ý#,¤{„%‚t°Dî–È"uO3€Åb%$$Œ›¥ &‰ÌjqˆD"¶P/Ƭ]»6--º!‹Ë²t˜wAÝa&“¹{÷î¾¾¾…1 ‹ßï?}ú$‘H~üøQ__/‹Ož|ðòòúøñ#±˜_¿~q¹\///—´´4¸%†Õ¿½ÆÆÆž9s&š››c±Xoß¾5¥lXyvv6œOáRQQÁáp\\\Ž;¦T* ßÙõc ÃÊÊÊííí###ëêêh4©Ñ”†¦ XPœ;é®8ðÜÜÜŸ?’f+˜œœLOOwvv^³fMnnîìì¬ayó*aÁàþLßïÛÚÚ¦§§årygggDDÄåË—1 “Ëå ###C,?þ066¦P(V®\YVV&‘H=z´bÅ …BaXqqñþýûAXXXAAöû–8pà€L&+//LLLàþʉà„˜˜˜††‰DB,æÖ­[7nííí[¶lÉÍÍÅmúqee¥———N§Ã0ŒÇã¹»»k4Sʆ´´´888P×ÙÕÕÅçó}}}õF\åååïÞ½¯¯¯÷õõçmˆB¡˜œœ,//‡) ÇÆçNŒOºâÐK§ÓéEOÌ"‰âââ6oÞ _JNNÞ¹sgOO@  ***2ìÆ¼J €t¿_¼î ±··‡«>77×ÑÑ¡P(´ZmSSTƒT*¥Óé·oß–Éd:nzzZ«Õbæïï/‘H`ÀúúúŒ ûÆÆF ÃÔj5´ãî–NÆŠñóó«©©.ß¾}ƒcRÁÍÌÌØÚÚ~þüðƒKŠÍ§{ê:áÚ¬[·Ž´Œ   ŠŠ }Ø/^H¦$Zè‚â܉ñI› ½òóóß¿'ÍB§ÓwìØ³¨Õjkkk¡P§ÕÔÔøúúâtO­ HuOòýéîî†ÛŒR©,))‰ŒŒ`0]]]™™™ …"44Îd±X%%%\.7,,¬°°0&&Ðßßïææ¦Èd2‰YÜÝÝaHk0Áßß@ZÌÀÀÀúõëá8 ÀØ ÚØØìÝ»·ºº:00°¶¶öË—/ÔI‰ýáp8Ô.úJ ž Ýõ*ééé ÒÛçm5¤ Šs'Æ'm2¤¥¥%""âúõëOž¼gÏ©T pvvÖï‘2™Œø¥9€•U…Æ"ÀîãîîÞßßÇmmm×®]£ˆŸ””T]]ýæÍ›M›6é5jJÙ†=xðàŸþ¡v› ««ËÛÛŽáywxx^z{{ýúU¹££Ã˜qÞ†˜ˆá‚â܉ñI› ©­­-++«¬¬lll¤ÎèêêjmmÝÛÛ /{zz<<•Ëå÷î݃sŽ?žŸŸÿþýû‰‰‰†††¢¢"Fj4¥¥SSS>$Ž-(Ο´Ép²­­­ŸŸ_AAAvvöìì,Å‚ÒéôÄÄÄS§Nõõõ … .$''SÌ×C\2SÁ{q¾·²² æóùð¥;wî8::zzz–––&%%±ÙlxÆâp8 ÃßߟÇãÁ™r¹üСC,ËÉÉ)++kff#œïqcF³mÛ6;;;cpÇ>b1³³³¹¹¹îîîL&3))I&“af!++ËÎÎ>ˆS—­ÇÓÓ399ytt”Âf©¬¬\»v-›ÍÎÉÉ™››Ã0ìêÕ«‡ÇãÁ2´ZíÝ»w9“ÉŒŽŽæñx...¤FSBúA± 8wÒ{'6ÙÐK¥RmذËåb”RK¥ÒÔÔT'''77·Ó§O«T*\yÔJ ÀœÏµˆe£¶¶¶­­MY]]BjüÕýXÂÏïK‡@ HIIimmU*•|>ÿâÅ‹GŽ!5þíJÿK,þóÄòŸŸ¯T*cccÇÇÇ}||222Ž= 5"L„†ý~¶KHH ß"þ7ÀßâtŽÎ9Kéa‰ Ý#,¤{„%‚t°Dî–Éç÷ÍÍÍ»víZþRˆ¥`tt”hÄëþŒøßÀb±ˆ_ÃÆÿß °Ðùa‰ Ý#,¤{„%‚t°DþaÇ ~hš¶WIEND®B`‚XQilla-2.3.0/docs/simple-api/classSchemaValidatorFilter__inherit__graph.md50000644000151400015140000000004011653571063023666 000000000000000c138ea7204b15b6a3f5f3e1ceb0a654XQilla-2.3.0/docs/simple-api/classATFloatOrDerived__inherit__graph.map0000644000151400015140000000075511653571064022656 00000000000000 XQilla-2.3.0/docs/simple-api/DOMDocument_8hpp_source.html0000644000151400015140000005021711653571063020152 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

DOMDocument.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMDocument.hpp 672232 2008-06-27 10:16:38Z borisk $
00020 */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMDOCUMENT_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMDOCUMENT_HPP
00024 
00025 #include <xercesc/util/XercesDefs.hpp>
00026 #include <xercesc/dom/DOMNode.hpp>
00027 #include <xercesc/dom/DOMDocumentRange.hpp>
00028 #include <xercesc/dom/DOMDocumentTraversal.hpp>
00029 #include <xercesc/dom/DOMXPathEvaluator.hpp>
00030 
00031 XERCES_CPP_NAMESPACE_BEGIN
00032 
00033 class DOMConfiguration;
00034 class DOMDocumentType;
00035 class DOMElement;
00036 class DOMDocumentFragment;
00037 class DOMComment;
00038 class DOMCDATASection;
00039 class DOMProcessingInstruction;
00040 class DOMAttr;
00041 class DOMEntity;
00042 class DOMEntityReference;
00043 class DOMImplementation;
00044 class DOMNodeFilter;
00045 class DOMNodeList;
00046 class DOMNotation;
00047 class DOMText;
00048 class DOMNode;
00049 
00050 
00064 class CDOM_EXPORT DOMDocument: public DOMDocumentRange,
00065  public DOMXPathEvaluator,
00066  public DOMDocumentTraversal,
00067  public DOMNode {
00068 
00069 
00070 protected:
00071     // -----------------------------------------------------------------------
00072     //  Hidden constructors
00073     // -----------------------------------------------------------------------
00076     DOMDocument() {};
00078 
00079 private:
00080     // -----------------------------------------------------------------------
00081     // Unimplemented constructors and operators
00082     // -----------------------------------------------------------------------
00085     DOMDocument(const DOMDocument &);
00086     DOMDocument & operator = (const DOMDocument &);
00088 
00089 public:
00090     // -----------------------------------------------------------------------
00091     //  All constructors are hidden, just the destructor is available
00092     // -----------------------------------------------------------------------
00099     virtual ~DOMDocument() {};
00101 
00102     // -----------------------------------------------------------------------
00103     // Virtual DOMDocument interface
00104     // -----------------------------------------------------------------------
00127     virtual DOMElement     *createElement(const XMLCh *tagName) = 0;
00128 
00134     virtual DOMDocumentFragment   *createDocumentFragment() = 0;
00135 
00142     virtual DOMText         *createTextNode(const XMLCh *data) = 0;
00143 
00150     virtual DOMComment      *createComment(const XMLCh *data) = 0;
00151 
00159     virtual DOMCDATASection   *createCDATASection(const XMLCh *data) = 0;
00160 
00172     virtual DOMProcessingInstruction *createProcessingInstruction(const XMLCh *target,
00173         const XMLCh *data) = 0;
00174 
00175 
00192     virtual DOMAttr     *createAttribute(const XMLCh *name) = 0;
00193 
00194 
00212     virtual DOMEntityReference    *createEntityReference(const XMLCh *name) = 0;
00213 
00225     virtual DOMDocumentType       *getDoctype() const = 0;
00226 
00232     virtual DOMImplementation  *getImplementation() const = 0;
00233 
00239     virtual DOMElement     *getDocumentElement() const = 0;
00240 
00255     virtual DOMNodeList      *getElementsByTagName(const XMLCh *tagname) const = 0;
00256 
00258 
00261 
00360     virtual DOMNode        *importNode(const DOMNode *importedNode, bool deep) = 0;
00361 
00417     virtual DOMElement         *createElementNS(const XMLCh *namespaceURI,
00418                                                       const XMLCh *qualifiedName) = 0;
00419 
00482     virtual DOMAttr        *createAttributeNS(const XMLCh *namespaceURI,
00483                                                     const XMLCh *qualifiedName) = 0;
00484 
00497     virtual DOMNodeList        *getElementsByTagNameNS(const XMLCh *namespaceURI,
00498                                                              const XMLCh *localName) const = 0;
00499 
00513     virtual  DOMElement        * getElementById(const XMLCh *elementId) const = 0;
00515 
00518 
00525     virtual const XMLCh*           getInputEncoding() const = 0;
00526 
00534     virtual const XMLCh*           getXmlEncoding() const = 0;
00535 
00542     virtual bool                   getXmlStandalone() const = 0;
00543 
00551     virtual void                   setXmlStandalone(bool standalone) = 0;
00552 
00560     virtual const XMLCh*           getXmlVersion() const = 0;
00561 
00569     virtual void                   setXmlVersion(const XMLCh* version) = 0;
00570 
00579     virtual const XMLCh*           getDocumentURI() const = 0;
00588     virtual void                   setDocumentURI(const XMLCh* documentURI) = 0;
00589 
00600     virtual bool                   getStrictErrorChecking() const = 0;
00611     virtual void                   setStrictErrorChecking(bool strictErrorChecking) = 0;
00612 
00657     virtual DOMNode* renameNode(DOMNode* n, const XMLCh* namespaceURI, const XMLCh* qualifiedName) = 0;
00658 
00659 
00719     virtual DOMNode*               adoptNode(DOMNode* source) = 0;
00720 
00741     virtual void                   normalizeDocument() = 0;
00742 
00743 
00751     virtual DOMConfiguration*      getDOMConfig() const = 0;
00752 
00754 
00755     // -----------------------------------------------------------------------
00756     // Non-standard extension
00757     // -----------------------------------------------------------------------
00767     virtual DOMEntity     *createEntity(const XMLCh *name) = 0;
00768 
00777     virtual DOMDocumentType *createDocumentType(const XMLCh *name) = 0;
00778 
00779     /***
00780      * Provide default implementation to maintain source code compatibility
00781      ***/
00782     virtual DOMDocumentType* createDocumentType(const XMLCh *qName,
00783                                                 const XMLCh*,  //publicId,
00784                                                 const XMLCh*   //systemId
00785                                                )
00786     {
00787         return createDocumentType(qName);
00788     }
00789 
00798     virtual DOMNotation *createNotation(const XMLCh *name) = 0;
00799 
00809     virtual DOMElement *createElementNS(const XMLCh *namespaceURI,
00810                                         const XMLCh *qualifiedName,
00811                                         const XMLFileLoc lineNum,
00812                                         const XMLFileLoc columnNum) = 0;
00814 
00815 };
00816 
00817 XERCES_CPP_NAMESPACE_END
00818 
00819 #endif
XQilla-2.3.0/docs/simple-api/classVarHashEntry__inherit__graph.md50000644000151400015140000000004011653571063022030 000000000000009af30b8825fefeb8e460502f7715aaa7XQilla-2.3.0/docs/simple-api/ResultImpl_8hpp__incl.md50000644000151400015140000000004011653571063017426 00000000000000ae6a814ab2068f7b1a07fa13b2d4904bXQilla-2.3.0/docs/simple-api/classEventGenerator.html0000644000151400015140000002536511653571064017502 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

#include <EventGenerator.hpp>

Inheritance diagram for EventGenerator:

List of all members.

Public Types

typedef RefCountPointer
< EventGenerator
Ptr

Public Member Functions

virtual ~EventGenerator ()
virtual EventGenerator::Ptr generateEvents (EventHandler *events, DynamicContext *context)=0
 Returns the result of this expression via the EventHandler provided.

Static Public Member Functions

static void generateAndTailCall (const EventGenerator::Ptr &generator, EventHandler *events, DynamicContext *context)
static Result createResult (const ASTNode *ast, const QueryPathNode *projection, DynamicContext *context)

Member Typedef Documentation


Constructor & Destructor Documentation

virtual EventGenerator::~EventGenerator ( ) [inline, virtual]

Member Function Documentation

static Result EventGenerator::createResult ( const ASTNode *  ast,
const QueryPathNode *  projection,
DynamicContext context 
) [static]
static void EventGenerator::generateAndTailCall ( const EventGenerator::Ptr generator,
EventHandler events,
DynamicContext context 
) [inline, static]
virtual EventGenerator::Ptr EventGenerator::generateEvents ( EventHandler events,
DynamicContext context 
) [pure virtual]

Returns the result of this expression via the EventHandler provided.

An EventGenerator may be returned to be called as a tail call optimization

Implemented in ASTNodeEventGenerator.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/globals_type.html0000644000151400015140000000626711653571064016210 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
 
XQilla-2.3.0/docs/simple-api/functions_func_0x66.html0000644000151400015140000001377011653571063017326 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
 

- f -

XQilla-2.3.0/docs/simple-api/structBaseInteractiveDebugger_1_1Continue.html0000644000151400015140000000466311653571063023650 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

BaseInteractiveDebugger::Continue Struct Reference

#include <InteractiveDebugger.hpp>


The documentation for this struct was generated from the following file:
XQilla-2.3.0/docs/simple-api/classLocationInfo-members.html0000644000151400015140000000714111653571063020555 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

LocationInfo Member List

This is the complete list of members for LocationInfo, including all inherited members.
getColumn() const LocationInfo [inline]
getFile() const LocationInfo [inline]
getLine() const LocationInfo [inline]
LocationInfo()LocationInfo [inline]
LocationInfo(const XMLCh *file, unsigned int line, unsigned int column)LocationInfo [inline]
setLocationInfo(const XMLCh *file, unsigned int line, unsigned int column)LocationInfo [inline]
setLocationInfo(const LocationInfo *o)LocationInfo [inline]
XQilla-2.3.0/docs/simple-api/functions_func_0x71.html0000644000151400015140000001133411653571063017314 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
 

- q -

XQilla-2.3.0/docs/simple-api/DateOrTimeType_8hpp__incl.map0000644000151400015140000000003511653571064020262 00000000000000 XQilla-2.3.0/docs/simple-api/XercesConfiguration_8hpp_source.html0000644000151400015140000001737711653571063022027 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

XercesConfiguration.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef XERCESCONFIGURATION_H
00021 #define XERCESCONFIGURATION_H
00022 
00023 #include <xqilla/framework/XQillaExport.hpp>
00024 #include <xqilla/simple-api/XQillaConfiguration.hpp>
00025 #include <xqilla/items/Node.hpp>
00026 
00027 XERCES_CPP_NAMESPACE_BEGIN
00028 class DOMNode;
00029 XERCES_CPP_NAMESPACE_END
00030 
00031 class XQILLA_API XercesConfiguration : public XQillaConfiguration
00032 {
00033 public:
00034 
00042   static const XMLCh gXerces[];
00043 
00044   virtual DocumentCache *createDocumentCache(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr);
00045 
00046   virtual SequenceBuilder *createSequenceBuilder(const DynamicContext *context);
00047 
00048   virtual ItemFactory *createItemFactory(DocumentCache *cache,
00049                                          XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr);
00050 
00051   virtual UpdateFactory *createUpdateFactory(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr);
00052 
00053   virtual URIResolver *createDefaultURIResolver(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr);
00054 
00055   virtual ASTToXML *createASTToXML();
00056 
00057   virtual Node::Ptr createNode(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node, const DynamicContext *context) const;
00058 };
00059 
00060 #endif
XQilla-2.3.0/docs/simple-api/classxercesc_1_1XMLPlatformUtils-members.html0000644000151400015140000004125011653571064023374 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

xercesc::XMLPlatformUtils Member List

This is the complete list of members for xercesc::XMLPlatformUtils, including all inherited members.
alignPointerForNewBlockAllocation(XMLSize_t ptrSize)xercesc::XMLPlatformUtils [inline, static]
closeFile(FileHandle theFile, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtils [static]
closeMutex(void *const mtxHandle, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtils [static]
curFilePos(FileHandle theFile, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtils [static]
fgAtomicMutexxercesc::XMLPlatformUtils [static]
fgDefaultPanicHandlerxercesc::XMLPlatformUtils [static]
fgFileMgrxercesc::XMLPlatformUtils [static]
fgMemoryManagerxercesc::XMLPlatformUtils [static]
fgMutexMgrxercesc::XMLPlatformUtils [static]
fgNetAccessorxercesc::XMLPlatformUtils [static]
fgSSE2okxercesc::XMLPlatformUtils [static]
fgTransServicexercesc::XMLPlatformUtils [static]
fgUserPanicHandlerxercesc::XMLPlatformUtils [static]
fgXMLChBigEndianxercesc::XMLPlatformUtils [static]
fileSize(FileHandle theFile, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtils [static]
getCurrentDirectory(MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtils [static]
getCurrentMillis()xercesc::XMLPlatformUtils [static]
getFullPath(const XMLCh *const srcPath, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtils [static]
Initialize(const char *const locale=XMLUni::fgXercescDefaultLocale, const char *const nlsHome=0, PanicHandler *const panicHandler=0, MemoryManager *const memoryManager=0)xercesc::XMLPlatformUtils [static]
Initialize(XMLSize_t initialDOMHeapAllocSize, XMLSize_t maxDOMHeapAllocSize, XMLSize_t maxDOMSubAllocationSize, const char *const locale=XMLUni::fgXercescDefaultLocale, const char *const nlsHome=0, PanicHandler *const panicHandler=0, MemoryManager *const memoryManager=0)xercesc::XMLPlatformUtils [static]
isAnySlash(XMLCh c)xercesc::XMLPlatformUtils [inline, static]
isNELRecognized()xercesc::XMLPlatformUtils [static]
isRelative(const XMLCh *const toCheck, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtils [static]
isStrictIANAEncoding()xercesc::XMLPlatformUtils [static]
loadMsgSet(const XMLCh *const msgDomain)xercesc::XMLPlatformUtils [static]
lockMutex(void *const mtxHandle)xercesc::XMLPlatformUtils [static]
makeFileMgr(MemoryManager *const manager)xercesc::XMLPlatformUtils [static]
makeMutex(MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtils [static]
makeMutexMgr(MemoryManager *const manager)xercesc::XMLPlatformUtils [static]
openFile(const char *const fileName, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtils [static]
openFile(const XMLCh *const fileName, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtils [static]
openFileToWrite(const char *const fileName, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtils [static]
openFileToWrite(const XMLCh *const fileName, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtils [static]
openStdInHandle(MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtils [static]
panic(const PanicHandler::PanicReasons reason)xercesc::XMLPlatformUtils [static]
readFileBuffer(FileHandle theFile, const XMLSize_t toRead, XMLByte *const toFill, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtils [static]
recognizeNEL(bool state, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtils [static]
removeDotDotSlash(XMLCh *const srcPath, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtils [static]
removeDotSlash(XMLCh *const srcPath, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtils [static]
resetFile(FileHandle theFile, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtils [static]
strictIANAEncoding(const bool state)xercesc::XMLPlatformUtils [static]
Terminate()xercesc::XMLPlatformUtils [static]
unlockMutex(void *const mtxHandle)xercesc::XMLPlatformUtils [static]
weavePaths(const XMLCh *const basePath, const XMLCh *const relativePath, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtils [static]
writeBufferToFile(FileHandle const theFile, XMLSize_t toWrite, const XMLByte *const toFlush, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtils [static]
XQilla-2.3.0/docs/simple-api/inherit_graph_32.md50000644000151400015140000000004011653571063016352 00000000000000cead7cd4be9f43fea94cfba7d3e59fa9XQilla-2.3.0/docs/simple-api/inherit_graph_46.md50000644000151400015140000000004011653571063016357 00000000000000154d1eaa20da74a1518d24bc294db9f0XQilla-2.3.0/docs/simple-api/NSFixupFilter_8hpp__dep__incl.md50000644000151400015140000000004011653571063021017 00000000000000ca272033477f20e1bfafc82c329af1ecXQilla-2.3.0/docs/simple-api/StaticContext_8hpp__dep__incl.png0000644000151400015140000001207511653571064021224 00000000000000‰PNG  IHDRˆÃÖGΪbKGDÿÿÿ ½§“òIDATxœíiTW€oL‚X‚RA\P‹m±5ŠÔö`-¢µ¢‚ô¬• Õ£X¥€­KQ– xD)È*n- Ö*‹(Š•å€YT$‚ Ùæû1ß—¦!$¹á»ÏáÇä½wî¼™'s'™Lx †|ŒÒtù 1‚Ä@ )$éË—/×T@~~¾d™ ý®Œ@ ̘1ƒF£i"«ÿk^½zõøñci$™žžžK–,Ö¤ܸqã‡~Ž s ¤ 1‚Ä@ )H ¤È¾+S —ËMNN¾yóf{{»±±ñ²e˼½½Éd²Jƒ455­_¿¾¨¨HAŸ7oÞÄÆÆþõ×_ÞÞÞŽŽŽªf«^ètzJJŠ™™Ù0lKå#æÄ‰µµµLKK ¾}û6“É´´´¸ºº*XQºƒ———‚Îl6{Ë–-ººº!!!L&séÒ¥‡*//W)U¥)©q-µ£²˜[·nmݺÕÚÚšB¡ØÙÙÞ¾} ‹Ùl¶‚¥;Œ7Î××WA礤¤yóæ1 [[[ ‹5kÖ¸»»§¥¥©”ªÒ”Ô¸–ÚQYŒ¾¾~NNŽ$u;;;|}ýõ×www<^RR²uëÖ+Vxxxœ?^¦CSSNˆD¢¤¤¤µk×®Zµ*<<œÃáà«ß¼yÓÃÃCz»7n Æ—9NDD„«««§§gll,ŸÏÐéô‚‚‚7~þùç¿þúkB!“Étsssssc2™B¡°¸¸xõêÕ]]]€Â 6ðx<™µd¸{÷®··÷Ê•+Ï;'y"·oßÞ°aƒ››ÛÉ“'Ü ªûYe1 £¢¢bõêÕ #--íåË—x<&&••xûöíþýû­­­SRRüýýããã;::¤;HÈÈȸyófxxøñãÇSRR§½½}òäÉÒ=õôô$׊"##_¿~Íd2>\^^žššŠÇoݺíçç×ÕÕ%³ÅŒŒŒ–––¸¸¸£GVTT$%%}ôÑGöööÑÑÑ,+::zïÞ½£G–›§„²²²øøøààà„„É«3'''<<<,,¬¬¬ öì?*‹™?~ZZZddäìÙ³ûí·uëÖÊô!“ɉ‰‰†††øÞìîî–;ÚåË—}||,--§L™²k×®™3gðKFAî*B¡ðúõ릦¦–––›6m’\û[µj•Á'Ÿ|è=]½zuûöí4ÍÒÒÒÏÏïÎ;€€€€ŠŠŠ   WWW¥OíÚµúúú .à‡ÀßßßÜÜÜÖÖvË–-’däûjïÊx<^qqñ’%Klmmmmm7lØœœÌd2—-[ö¯AI¤/^9r„ËåZ[[+ðåË—æææø²……………`ìØ±T*õùóç¸'œ§OŸþòË/‘‘‘l6[,Oœ8›™™½~ý_622·.w[­­­ÒÓã˜1c...gΜ9zôhö€¡¡!èõ¢‘<…É“'K’‘ì?ª1†…††Ö××ã Âûï¿/‰dºõôô8pà‹/¾8uêÔ·ß~«`@CCÃÖÖV|¹®®ŸÊüqZZšôÕÖüü|¡P¨««K¥RGÕÒÒ‚Ç›››q ïƒ gܸq)))EEEEEEyyyø”õêÕ«ììl{{{ü¡RänâÅ‹øBcc#n®¯`ÿQMŒžžž³³ó?üPZZÚÒÒRUU+}¸p¹\€@  …$‰Ïç'%%Þ¾}+ÝA‚³³sBBBCCCCCCdd¤äŒµyóæÊÊʰ°°ªªªúúú3gÎdeemÙ²@"‘ètú‰'ZZZœœä,Ù¢££c||üË—/ëë냃ƒsrr0 ûé§ŸÜÝÝ÷íÛwïÞ½âââÞk]¾|¹¯yXBTTTSSÓÓ§O$ßiÉ ö•?`Ÿ={6>>¾©©‰J¥Òéô¯¾ú `bb2{öl+W®øûû‡††êéé­[·nÙ²eÁÁÁ’’Ѽ½½y<ƒÁàñx~~~xœB¡œ:u*666$$„ËåNž<ùÇtppÀ[·oßµmÛ6¥K—z{{ËMU:%ÀæÍ›£¢¢¶nÝJ -Zäçç—““ÓÑÑáååE"‘vìØqìØ±Ù³gˬuäÈ‘¹sçâó^_899íܹ“Çãá·ñ‰K&¨ê~–ý¢,$$}Óä^ÂèÏu ðïc¤] ke‚Ä Š1cƬ\¹²?AUAb…Bùî»ïúT$RHAb ‰$RFŽ˜¶6î›7\åý´ÙOþ–––T*Uƒ Ç``ðBÓ‰ ‹U__ßç-²žžžÃž’Ú¸wF ,-U»-ìíí¥FÆOýžêB»Åðx‚K—*…ÂÝ?%Š/]ªäñT¾+*´[LAÁcOØ;Îã >jD»ÅdfÞ%åÜG$23µ{6Ób1]]¼ëןÈ}&Š s8=ß•ºÐb1W¯>’¼Kî@ ºzõápæ£^´ø"&‹ÕÍfÿóFyïÞ,À?þó»–wÞM¥*ºƒfT¾E¨Ô1Òû}Ì2ÀÂBåÛ·áD‹§²‘ )H ¤ 1‚Ä@ )H ¤ 1‚Ä@ )H ¤ 1‚Ä@ )H ¤ 1‚Ä@ )H ¤ 1‚Ä@ )H ¤ 1‚Ä@ )H ¤ 1‚Ä@ )H ¤ 1¢ò/Êêëë †(›ÁpáBÀÓs8*»©Š“““¥¥¥jë`*¢j¡°aƒHG$ŽÓtòÁK®¨Äê§½¿Ü~Wµé tŽ$RHAb ‰$R†DÌýû÷I$Ò… $‘ÜÜ\2™üèÑ#üawwwppðœ9s >øàƒððp¡ðŸÿn¥¸u( uuuCº •ØL¥ÝöíÛgbbÂb±0 ëèè˜8qbhh(ÞÄf³mll-ZtåÊ•êêêÌÌÌ3fÐét¡P¨´uˆÔÖÖÝàø€9TbzzzfÍšåëë‹aضmÛìííù|>Þäèè(½£9λï¾Ëd2•¶ÿGb0 »{÷.‰D ÓÕÕ}ôè‘$nbb’ŸŸ/Ó9&&ÆÑÑQqkmm­dÓÒË|>?((ˆF£ñù|¼µ  `Ò¤IóæÍóññÁ{vuuéééUTTÈŒˆŽŽ¶²²¢P(aaa’ñsrr¦M›fllÀãñä•îèÄ`¶{÷n€dÃ0ŒÅb^¿~-Ó³¤¤düøñŠ[ûsøða¿ÿþûáÇï½÷ÞîÝ»ñÖO?ýôúõëW®\144†¥¤¤Ìœ9S,ËŒpqqa³Ù™™™€¶¶6|ggçšššÒÒÒ©S§8p@nPéN€NŒX,vuu%‰ëׯ—ñ]ßÖÖ&Ó¹¸¸ØÈÈHqk_blllZZZðåüüü¹sçâ­>Ä0L(š˜˜böÙgŸEDDôNpãÆ ÃðºÑµµµÒ#àÏzêÔ©rƒJ÷ÃÀÄ áÛåsçÎݸqãúõë¹¹¹xB¡˜˜˜7âýÙlö¦M›¨Tª¡¡¡¯¯oww·Œ ömÛ¦§§Çf³ÿyæ½dH/ã#$$$XXXp¹\¹A¥{ "1 §§§¤¤d`­ýaÏž=ëÖ­ëÿÞjû *e`b`ùg¥d2ÙÁÁa`­ŠáñxÍÍͧOŸNMMhv`ä_Ä,++›?¾Ï’%Kú¿Ö;ï¼ãççןàP¡ê!6DSÙÀö91HAb ‰”‘#æí[þÛ·|Mg¡6ø9æÔ©SêÍcðTVvÀÎÒ»dUe€b†ïí|¿?~†èèM'¢´¸~Œ4mmœyóö@¨¬<8~¼¶ÖŒ‘f„œc®^}ˆ_÷»rE‹«,I3BĤ¥ÝÁ0––vGÓ¹¨‡‘ ¦±±ýþý¿1 ‹AEÅóÆÆvMg¤F‚˜¼¼D⟑HÈË“ýfZ bÒÓË%Åc…B,=½\³ù¨­S]ÝZSÓ*ÀjjZ««[û\AKÐz1¹¹÷I$¢t„D"^¼x_Sù¨ íƒaØ… 彊`‹ÒÓ˵ýó™v‹y𠱩‰Õ;ÞÔάlþ|Ôˆv‹ÉÉ©™ÇpH$bNNÅðç£F´XŒH$ÎÈÇp„BQFÆ]‘HN}lmA‹Å”–Ö³XoI$"™L’ù#‘ˆííÝeeõšÎqàÀrûÒ ‘FíÝë"yxéR%ÀÅeŽt ¤¥&FÈÕe€Ÿß@\ÜFM'¢´ø55²Ab ‰$RHAb ‰$RHAb ‰$RHAb ‰$RHAb ‰$RHAb ‰$RHAb ‰$RHAb ‰$RHéóe«¬Aôôl\îSM'¢}íE¿ÁܱcÇ‚ †&())9~üx_­ŠÄ888xzzAJ”UxGçHAb ‰$RH1uuuø§¢Þ ƒpV×T}ìáC¡PvíÚó€2bŒŒŒ"""`B.æâÅ‹fffxÞÔÔÔiÓ¦uww‹Å⨨([[Û±cÇ.X° ¨¨Ÿ L—.]š7ož¾¾¾©©©ÜÝ——ggg7zôhKK˳gÏ‚ÏEáôéÓ¶¶¶ÆÆÆgÏž2eʸqãöíÛ'é™››;}útØÓÓ#=¸@ `0&L Ñh C ôNà÷ߟ:u*•J ïkL¥R™ÁTÖúòË/7nÜØÚÚ:a„²²2 Ãâââh4ZVVVssóåË—ñ2­’*…½Øl6™LöññyñâEJJ àÕ«WÒ›àp8ºººL&³¥¥%11‘D"q8鲇///6›X³f ›ÍŽ‹‹ÊjYã«÷. Ý{? Q}lÅÕÞ%†Åb™››ÛÙÙI’˜9sfrr²¤Ã™3g‹éééyòä ‡Ã‰Düñ*ŠÓÞÞ®££säÈ‹%‹»ººD"‘Œ¼ <ŸÏ—YV\Ëô. Ý{? Q}lÅbuŽ¡P(¾¾¾UUUþþþx¤¾¾~îܹ’vvvŠG “É555+V¬°··ONN–Ä ÿƒJ¥•––š››/^¼øÏ?ÿ”©S ;v,ø_eeée ÊV÷U@[ÔÇ”˜ÆÆÆ¨¨(''§;wâ33³ÊÊJI‡ªª*Å#p¹Ü5kÖ0ŒŠŠŠ˜˜I\òÂár¹b±øÂ… ííí›7o^¹re{»Êÿº_AÙê¾ hK£‘úØ#‹}||RSS òòò>>> #77·µµõÚµk»wïVŸ¯£££¯¯¯jªÛ·o¯««+//ß³gÏúõ륛ÜÝÝ¿ÿþûçÏŸ?|øpÅŠÑÑÑ€„„„ÎÎÎŒ©`C*Ó×”cNž<9gÎ>ŸaXvv¶©©i{{;ŸÏ?xðà”)S ,Xpþüy ðƒaرcÇÆ?iÒ¤˜˜///Ö{.¶²²"“É666¹¹¹2«ƒÖ²Æ»õ. =˜1Uª=„'¥ ¬j´ŠÔU{Oþˆ¡c„‹вÕÃT»¯C ¨c*C(MeZ )H ¤ 1‚Ä@ )#çÞe-¥¯ýßç-²éééC– B9#§~Ìc ‰$RHùÙöv=Æ#cEIEND®B`‚XQilla-2.3.0/docs/simple-api/inherit_graph_22.md50000644000151400015140000000004011653571063016351 00000000000000e71d725e5ba5f7d39c45ae5eba1f6363XQilla-2.3.0/docs/simple-api/classATDoubleOrDerived__inherit__graph.md50000644000151400015140000000004011653571063022715 00000000000000fef3518d27d6f9fb30a8281be519c2afXQilla-2.3.0/docs/simple-api/Scope_8hpp__incl.png0000644000151400015140000005007111653571064016510 00000000000000‰PNG  IHDRûÓUIðbKGDÿÿÿ ½§“ IDATxœìÝw@çûð7 [ö–=Ä KTœ¢‚­Å=kU®ZÜ[k•Z«¨XAŠE@(C÷d( ² ;a¯Œûýqýå›’€! ð|þŠçÝû>w¹{yr÷Þû0 CýQØô:ÈxÐÿAÆ€þ2ôâ 4LLLvB3~üø½{÷ ; €€@ÆÀÀ•––öáÃ2™,ì@„ ##CQQQØQ242™ìëë+ì(„`ÿþý PÐýd<èÿ ã@ÿú?ÈxÐÿÁ»Z€¯hnnHLL¤R©ªªªŽŽŽ¨zÒ¤IÚÚÚ¨ пAÆøŠsçΕ——8p@UUµ°°ðܹsõõõžžžÂŽ ¾<Õ|ųgÏÖ¬Ycbb¢  `iiéééùüùsaß2ÀWHKKß¿¿®®ÿ§¥¥eHHBˆÉd^»vmáÂ…³gÏ>zôhCC¾BCCñcÇfÍšåîîþÇ´µµ•””Lš4éùóçK–,™3gÎùóçét:BˆÁ`\¼xqΜ9sæÌ¹xñ"ƒÁà®ýÝ»wnnnAAA!žEuT>°AÆø oo襤¤ùóç{{{‡„„”——ãËïܹ“˜˜xôèÑ_ýµ¨¨(00_þÛo¿UVV^¼xñøñãoß¾ Æ—ß¿ÿèÑ£GŽyýúõÍ›7ñJKKÿüóÏÓ§O'%%]»v»öׯ__¾|ÙÇÇÇßߟuqÕÑBÀAÆø ;;»ß~ûmøðáÿüóÏ?üŠŒŒ\¹r¥¡¡¡ÁŽ;ðù¹ Æ£G6mÚ¤©©ihh¸bÅŠØØX¼œõë×ëè蘛›¯^½_µyóf555CCÃuëÖ½yó†»ö… JKK;88 „êëë;*ª£…€ƒžË€Î´´´¼xñbâÄ‰ææææææK–, ¸xñ¢££cyy¹ŽŽ¾šžžžžžBˆF£±X,---|¹¶¶vee%þ™½²®®.¾°¬¬lÞ¼yìºddd¸PVVFÎ…ÜEu´ppÐ Ã:”››‹ÿ“@ Œ9’Éd"„”••ËÊÊðå999øS-EEE"‘XZZŠ/§P(***øçââbüCQQžÇ <8000!!!!!!<<üÂ… Ü´Ëu:*ª£…€ƒŒÐ)))ggçýû÷¿zõª´´4##ã?þpttD9;;ûûûçåååååýöÛoxÿqqñI“&;w®´´4//ïÊ•+S¦LÁ‹òóó+))ÉÌÌô÷÷wrrB7îòåËååå¹¹¹>>>÷ïßGEFF666vwQ-<Õ|…Ï7._¾\RR¢¨¨8iÒ¤åË—#„<< ¿‚Œ€>Ïlð´¦  º“ÌfÜ8ÓÅ‹•Ù™ÍàÁÒÂ\AAaÛ¶m½WËôWñ ŠZ[UùùUùùÕìÅÅTüi‰$¦¥¥0dˆÒ°aZÎÎd]]å!C”† QRW—ƒ0€Èx²ÚÚ¦ÿOkªóó«ðeeµø[ÊʲúúÊzz*66zzzÊxr™ |+Èxœ¦¦¶ÜÜÊÜÜÊÜÜŠÿÿPYSÓ„" ZZ úú*††j“'›ëé©èë«èé)ËÉI ;jè ã WÐéÌ¢"ê—/_¾Tæåá)NUii BˆH$hk+ªZY ™3ÇV__U__YWW™DvÔÐoAÆÔÕ5þ\ž•Uöùs9žåU3,„²²¬‘‘š¡¡êĉC T U U%$àÒ‚f€oVSÓ”]–]ž]†g9eeµ!II’±±š¡¡ÚìÙ6FFjªFFªòòRÂŽðÖÒ"^YY¯ª*'ì@‚c.Ð +*¢fg—áÉMvvy~~e]] @ÐÕU25Õ05ÕÐÓS65U73ÓúKàßjÁ‚qqq†††][H§K“H ½KŒHdò½ØÜÜ\Tª´­­¾‹‹Åôé–úú*|¯ : ãà?Z³³Ë>}¢df–ee•~üH¡RBêêò&&êÆÆj¦¦šÆÆj&&êêêò¶§Îœ9óêÕ«®¬YU%UP0˜Á ŒUF ô´Ñ¨­T\,kn^MüÚ gt:19YM_¿NM­©‡•r5jôøñsÂÃ?<|˜ZZZ3dˆ’³³…³3ÙÞÞX\^… ¿Œ ht:37·Ïl23Ë23K‹Š¨†)(H“ÉZC‡j™›kš™i˜˜¨؇Sáá)§NEçæV.Z4zëVgMM…ž—yíÚ³“'£>~<Ü••OŸŽ>w.ÖL˜`Öóª;’•U‘û15µHQQÆÑÑÜɉìè8LZZ¢÷*d<``).¦ef–ff–âwqrrÊét&‰$fl¬nn®9l˜–¹¹–¹¹¦†Æ`aG*|oßæ<þî]ž››õöí.&&êü*ùðáˆG>ÅÇ{wee öl ŽŠJ ó47×âW )(¨ŽÍOyÿ>_BB|Ü8SWW«©S-lÊ @¿èÏ VNNyzzIzzqFFIZZI]]3BHCc°¹¹¦¹¹Ö°aZææšÆÆêðf8§üüª£G##">Œi°w¯Ûˆúü-ãÆÀººæ¿þZÓÅõét¦‡Ç¥œœòÈÈ-|¹ÉÔÕÕ }ŠˆøðäI“ɲµÕss³ž1ÃR`ø 2Я47·}úTЧ8éé%Ÿ>QZ[ââDu2YÛÂB‡LÖ&“µúXc©¨¨?u**$䎎Ҿ}³œœÈ½QËܹ~¦¦êÇŽ¹w}“ºº–ٳϑHb¡¡edõFTinn{öìsxxJLLz]]‹©©†››•“ÙÒrˆ Ãôd< o+(¨ÎÎ.KM-JM-NM-*/¯C)+ËÚÚêYZêàïR©AGÔ¯ª¯o9w.îÚµ§²²ƒ¶oŸ¶pá¨Þ»ï5fÌ¡E‹FoÞìôM[V»¹ýfi©°Z(“l´µ1^¿Î‰ÉˆˆøP^^«§§À7Œô1ÍÍmiiÅÉÉ…ÉÉÉÉ…EET„‚‚´……ÎðáÚd²¶……¶‘‘L;Õu + àÙÙ³1t:ÓÓsÊŠãzµ».†aúúÞ§N-twù­Û~øP4w®ß?Œ9xpNoÄÖE,–ž^›ñàAÊçÏåJJ2“'›»¹YO˜`cK ² 㢎ž|©HJ*HI)|ÿ>?3³”Á`ÉËKZ[ëá7r,,ttt…fŸ„aXDć'¢ŠŠ¨kÖLX¿~’’’LoWZYYoeõË­[?98˜tcóˆˆ?þx}ÿþÙ«Vç{lÝÀîéüî]¾¤$ÉÁÁÄÕÕjêÔáòò0!¢2 r0 ËÎ.ÇT½}›÷é…NgJIIØÙée`i9ÄÒRG]ޥ꩗/¿>žœ\èêjµcÇtCCUÁÔûáCÑ´igž?ßm`ÐÍ/\xtäH„¿ÿ —áü­'(”šG>ÅÆf<~œ‰a˜ž››µ››œ«ˆÈx€H`0XiiÅoßæ%%$'àϪttmmõmltmmõ†ב”$ ;Ì~âÓ'ʾ}aOŸfk¼g›µµ® kŠJ[½úZnî‰Aƒºÿh÷î;ÿýæÎ ¶¶z|Œ/jk›³cc3¢£ÓššÚ,,tœœ†ÍœiÃÇ×ûÝ𦦶¤¤üׯs_¿ÎKJÊojj“““´¶ÖµµÕ³±Ñµ±Ñƒ ø®¼¼öðáˆÐÐ÷C‡júúÎ7ÎTð1\½úôÌ™ÒÓõ¤&“µråÕ #"¶Šì3ÍÖVÆ›7¹11ááÉõìžÎ#GÐÓAƒŒTaaõë×¹oßæ=}š]PP25Õ5Ê`äHƒQ£ õô”…`¿UW×rþ|ÜÕ«OUUåöìq1ÃJX¯:þäIVlìö–ÓÐÐ:{ö9ƒõৈÈbaïÞåÅÆ~ŒŠJÍÍ­TQ‘8q¨››õĉCa (2л0 KK+~ó&ïíÛ¼7orËËëˆD‚……θq¦x§œ~0;•ˆkmeøû?¹p!ż¼¦.[6V¸eúéFccëõë«{^TyyíŒgõõU‚ƒì+©CVVY\\FLLÆ»wùòòRãÇ›N™2ÌÅe¸œôt wAÆzEiiMbbvbbÖ«W¹¥¥5bbDssÍÑ£F65ÊPM W ‹…ݼùê·ßb«ªêW¯ž°qãdQ˜Ý}öìóÆi92Ÿ/¥¥§—Ì™sÞÍÍúÌ™ïùR ÀÓ?ÎÄ{:‰„Q£ œÈ3gÚÀÕ@/ŒðMccë‹9x¢óùs¹¸8ÑÊJ×ÁÁdÔ(C;;}ø +`Ïže:‘‘QÂÇ@ùbÔ¨K–|·iÓ~øèѧåËý}|¦oÜèȯ2©¦¦)66#.îã£GŸš›ÛFŒÐwv&»¸ 72Rvhô+ñ€ÁG¡MLÌ~ú4;=½!„?±?ÞtäHx»J(ÒÓK|ðôi¶››µ—×TSS aGô?,f`à}æÌ÷óæÙñ±Ø  —>>·ÏŸ÷˜;w‹°–úÓ§ÿ¾äUUÕ`jªáäDvr=à ÈxÀ7ûæ<}š˜˜ýî]~ss›žžò¸q¦ãÆ™Žk"€!ì@G ª‰ˆŒü0b„þÞ½nvvÂŽ¨½òò:ß»w7ÚÛñ·ä}ûî_¿þüÖ­ŸF޹½þVL&ëýûüØØ‘‘òó«tt'NêäD†žÎôd< «ðùãã?>y’UPP-+;ÈÞÞOtÌÌDè.ÂÀTUÕpâÄÃ7ÚÚŠ»vÍpuµÍ»ÉÉ…3füúâÅ}}þ–Ìbak×¼|ù%<|³ÀFS€¬¬²ˆˆ”ØØ©©E ÒS¦ sr"Ožl.àéTè ã_QRB‹‹û—ñüyN[ÃÚZwÒ$óñãMmlô`zNQÐÒB¿r%ÑÏïÑ Ab½=hÏEF~X»öz^Þ‰Þ˜ª¥…îîþ{uucxøfeeY¾—/\……Õ11±±/_戋‹gêäDž:Õ†­ ‹ ã<`–œ\øÏ?éqq?}¢ÈÉIN˜`6e yòds•þö‡¤ïb2YÁÁ¯ý5¦¡¡E3€ò…¿â¹s±©©{©|*µÑÕõ¬ššü­[ëû뤞Tjc|üLjˆOžd1™,[[=ggòôé–Ýžµ€2ð? ëåËœ¨¨Ôèèô²²Z}}ggò”)ÃF6åÛSxxÊ©SÑùùUk×NÌ  |qà@Ø‹_¢£·õ^Ÿ?—ÏœynÂÓ?þX*šöøÐž“QW×ljªáæfåäD¶´"ìÐEñÔÒBOHÈŒŠJ‹ûXSÓD&k»¸ Ÿ>}¸¹¹–°C<¼y“{èPÄû÷ùž”/~üñ¯ÖVúµk«zµ–—/¿|ÿý68úøLëÕŠDÞÓ9<üCd䇲²Ú!C”œ-œÉööÆðè6Èx®¶6Æ“'YaaÉ11éMMm#G¸¸ Ÿ6m¸®.Lõ ¢òò*{ñÁÞÞhÏ7ÎÊ3gž>\çðá¹½]QHÈ›­[ƒw_²ä»Þ®K¤à=ÃÃ?dg—)*Ê8:š;9‘‡‰þOzd<Î|ú4;<<%**­¾¾ÅÎNæLkWWk˜íA”UTÔŸ:òÆØX}ß>áÌÊvvûW¬pذAC?þðÂ…G7n¬?ÞLÕ‰š‚‚êØØŒðð”wïò%%I&®®VS§ZˆødôÈxŒŒ’7÷î%UW7ØØèΜiãæf­¥%*Cñžêë[΋»ví©²²ìÏ?» qОc2YÞ¿ýæ1gŽ­ªÃ0lóæ›ÿü“~ÿ¾§¹¹¦jMÕÕ }Šˆøðøq&‹…ÙÚê¹¹Y»ºZih vhd<ý•Úú>$äMFF‰®®²»ûÈùóí`–rÑÇ`°ž=Ã`°6mr\µj|_ú¬¬ÖÖvß½{›F6Lt:ó‡.RÃ÷À|UMMmÏŸOùçŸôúú¼§³››µHÊ @ßb2Y ™ÁÁ¯ââ>’Hb3fX-\8ÊÞÞ¨¿½Ò?`ñáĉ¨âbêêÕ6l˜¬  ü@{îýû7·³¯^ý,Ⱦb55Mnn¿ÉÈ Ý}Yp­­Œ7orcb2""RÊËëôô”§L!»¹YÙÙôÝ;ˆ|d<ý…Rü:8øUYYíøñfx7YY¡µoxùòË¡CRS‹-½e‹szìž²~ý_yy'<ØAAAµ›ÛYkkÝk×V‰‰Á»KÿÃbaééű±aaÉ99Êʲ“& us³†é,@¿OÿÁd²ââ>½LHÈTT”þþûÑ‹ÛËW}ȧO”}ûÂð@·m›Úÿæî¸téÉ… ñ))_urráüù¿/]ú¯ï,Á×Þ'de•ÅÅeÄÄd¼{—/%E;ÖÄÕÕÊÅe¸œœ¤°C€? ãé[ÿþûµ¿bAAµ½½ÑÒ¥c§O·„Ÿh}Hyyíáá¡ï-,t~þÙÕÁ¡¯¾ŠÕ¹}ûî¿y“÷ðáV¡ÔŽßa:xpΊã„@_QRBKHÈŒÍxü8“@ ŒmèäDvs³RW‡žÎ oƒŒ§o+-­¹råi`àËÖVúܹv«Wƒaû–ºº–óçã®^}ª®./Ê3€òźu×™L–¿ÿ apþ|܉Qþþ+¦NµV }HmmSbbvllFttZSS›……ޓӰY³lÕ„ÝO_••Uvþ|\xxŠ’’ìòåc/¶ïS'öo­­ ÿ'.$ˆ‹½½E}P¾ps;km­wðà!ưk×;wÞÝ»·ÉÂB[ˆaô-­­ŒÄÄ¬ØØŒ˜˜ôŠŠzvOç‘# úq‚úÈxúžOŸ(gÏÆFF~01Qß´iŠ››u¿ÿKÙϰXØÍ›¯~û-¶¶¶ióf§åËddD¿r[Û}kÖLX¿~’c Ó™K—^ÎÌ,ˆØ¢­­(ÄHú"|:‹ØØQQ©¹¹•ZZ “'›;9‘¡§3è ãéKÒÒŠý5æŸÒÍÍ5·lqž>Ý^%ísž=Ë>t(âãÇ’e˶lq8wæ –·ŸßâY³l„ICCë¬YçX,VXØfyyè–ÛMœ=å奯72eØ´i–ðZ(Yñô yy•GFFF¦®³u«³³3n&÷9éé%>xö쳫«•Ï4#£Õ‚B©±³Ûæ9r¤°cAeeµ3fœ53Óøë¯50×fÓ¢£Óbc3^¾Ì#ŽeèäDž9Ó†|¢2QW]ÝpæLL`à mmÅ~ß³µ¿*(¨>r$""âØ1†{ö¸ÙÚê ;"!x÷.oæÌsoßþ""Ï’ÒÒŠçÎõ›9Óæôé…ì…¹¹•>èí©Ýû+­1.îc\ÜÇG>µ´ÐmmõœÉÓ¦Yª ;4‚ŒG”1™¬K—žœ=C"‰mÛ6uÉ’ïàIyŸSUÕpâÄÃ~0hÏ=x¼aC`^ÞIѹ§ÿiùrÿ]»füôÓd„Ðë×¹K–\nhhyðÀÓÎNø7¢ú®–úÓ§ÿ¾äUUÕ`jªáäDvr=pAÆ#¢’“ w츕]¾nÝÄa0D£5ÊÈ ’çù¿--ô+WýüIJ’vïž1ožÝïtuñâã?ÿ|œœ¼OØü‡¿¢¯ï}?¿Åòô¼Éb±ˆDâܹ¶gÏþ ìÐú¼§sxø‡‡SKKktt§NîìL3Æ~¿ÁƒŒGäTW7ìßv÷îûÉ“‡><MM­óæý>{¶í?Nl÷_L&+8øõ¯¿Æ46¶nÚä¸rå8))˜Î ýò˽¤¤‚ˆˆ-¤=ŸøøOeeuýÛJHˆ}øp`ðàþ0—™èÈÊ*‹ˆH‰ý˜šZ¤¨(ãèhîäDž<Ù|€¼¨D@X"#?ìÙs—ÅÂ~ûí‡yóFÀ`ÑD§3—-»’šZœ›[ñãå奨ÿžrêTtaauš”/JKkEpްÖVFuuSYYço?& MZ±ÂAˆõ?ffff.^^.……Õ11øØâãÆ™:9‘]\†«¨|Ã{‹­*o÷xDEss›¯ïýÀÀ—óæÙ:4~_Š,ƒµråÕ„„OL&K\œ¸fÍ„½{g"„Þ¼É=x0<%¥pѢћ7;‰Hÿ\Ñ1cƯvvû÷Ïv ÿC¥6.^|)-­˜Édq.'ÆÆjOžìV`•Úÿ1"âÓ'YL&ËÖVÏÍÍzút˯fÆ ­GOœ˜ïì cgƒoHxÿ>ÿ§Ÿn46¶ž:µÐÅe¸°Ãñö ~Íbý{áHb!!?þñÇãØØ ''òîÝ®ýoP¾°±ñýñÇIëÖMv ÿ*-­Y°àüüªvéÛ?ÿx ®#à¨¦ææ¶gÏ>‡‡§ÄĤ×Õµ˜šj¸¹Y99‘--‡ð\?<Ù¾ÝÅÓsŠ˜˜¨¼µ xºr%qïÞ{ÜˉDBLŒ×°a0OS‡Š‹i£Fß’’¤ÔÔƒ0‚°P°XXzzqllƃ)Ÿ?—+)ÉLžlîæf=a‚@07ßÝÔÔ†¯)..F"Oú~Î[áÆ Ddª¾âÍ›ÜٳϿï+R·yp©©E»wßMN. 쇕!"‘pòä‚E‹Æ16€aXZZqttzttZff©¢¢Ìðá:‰‰Ùq^‰„Ðܹ¶'O.€÷"A' ãކ†ÖE‹.V_»¶j`ŽÀÛ·$&fyx\b2±ÿ¶³ÿqûö†±cUrÿ~’§gP^ÞIѼ‘‰aXDÄ_ß{•• ìn=D"ÁÂB;:ÚK¸±¶üüª¨¨´K—WW72íïɉ‹‡ Q¾reÅСšB ˆ>Ql}ú½ææ¶eË.SCC7Bº#ú²²ÊV¯@¨³t‡@ ;)À ú ¥FUU^4Ó„@ps³~þ|Ï–-N$’Þ–ÅÂRS‹32J„ø—¾¾Êºuét&wºƒb0XEEÔéÓ½{÷àc}‚ˆ6@ýXccëÂ…‹‹iáá[Ú\’}QI ÍÝýBss+“ùŸ»èRR$qñß‘‘de¥cb¢^^^'” E…R#‚ƒñ´#%%áååòè‘Ïøñ¦!qq"€nß~+ì¸Àÿ$'R©ý/ƒÁlm¥{zmÜÈîè<Õ(&“µ|¹jjñ;LLÔ;Z-...77Wžš›™—/çS©mââ á<¤¤ÄÔÕ©¨H¨©Iª¨H¨ªJÈÉ‘„)ßL™2ÅÐÐïÅ®Zu•D»xqßKîºææfÖÅ•Ÿ?Ï=}úQa!MVvPlìa½ÿ,%%¥¨ØÓ÷7i4Zss3_⺠žÞ¸ñ–»›97##•Ó§çèèˆzž z•––ç?áít:q"êéÓÏwïnì$ÝA]ºtéöíÛ‹ ðD ”•ç‰r ­±±ŠÁ 2T£šÅjéÇéhHHHod<J½½ß‹ý&õõõÙÙÙ]\YU:ä›w÷nVppâ˜1ÂyOUUµç…B©¬¬äK«¬¬ß³ÇU¸a(((ìØ±ã[·ºÿþìÙ³{Xunn®ŠŠJϷƒqww/++{ñâ{yRRRQQÑüùó{'_¼xñ¢ô¿:Z³{‡¥ï¢Pj´µ{:Œ^Ÿ0оÙÞÓIûÃy;jÜ87g_˜©©©&&& .ìd¦ …Ä=ŽKo¨­­]²d‰–––’’’‡‡Guuu»N:uöìÙØØØáÇ÷°®Y³fáo?ÙmGiª¯¯·³³{ûöíñãÇß¿¿k×®   '''&“)È£Ú9xªÕ[Z[/>Z¶ì;¡ßÏWQQ9vìØ·nÓóqŸY,÷eÜ­ð`¤¤¤oݺåàà€/ ?~¼¦¦HL•¬ªªª¡¡Ñ•5»wXú. ¥FSs°°£„öÍöžNÚ΃ÜQãÆ¹9ûÂÔÐÐ8q℺ºzee¥šï÷Hðé8tuu{¾ _õý÷ß·´´$$$ˆ‹‹oذaýúõœ£Î^¸páàÁƒ±±±666=¯KJJJJJ !ÔÐЀêbKõM8 ªª/&&†255:uª……ŵk×ða?sT;÷xzKpð뺺– {©ühkkã󛚚666²X,???sss999{{û„„üža'w##""lll¤¥¥555ÙmGUU•ŒŒŒ””ƒÁðõõÕÕÕUUU]ºtiMM ¾BMMÍòåËUTTttt¶oßÞÒÒ‚"AAAæææJJJ'Nœ@3q\]t:ÝÛÛ[]]]MMÍÛÛ›N§óÜ‹v[±ƒA-Z´èÎ;L濳ꄆ†.\¸°£Áw<>>^WW÷Ù³gOžÇ!<<ÜÒÒRRRÒÐÐðÆì•cbbŒ=úÕoªóä­­íªU«ð­¤¥¥“““¹ lW;^BXX˜™™™ššš§§gkk+Ï…_ µ7´¶2¨ÔF-­¾qgöìÙÛ¶mÃ?·¶¶***FFF"^§.ÏK£Ý©Ë}™|Ó9)H<¯DÄkÇ9wáñãÇ<Ûî­¯«©£æ…}És¶]ìÏÜ—O»}ál1Ú!‘Hƒî(Îvß`çzÒhÐéô˜˜˜˜™™8p ::š½òõë×wìØ9jÔ(öBîh===y¶ÅÐõ½@©ªª®_¿¾©©‰sžßo``à/¿ü‚§;8ooïÀÀÀΪ@4 ô:9zôAŸ[ÝÛÜÝÝÝÝÝý««-]ºtÙ²eeeeêêê¯_¿Æ0ìÏ?ÿTSS ¥P(‘‘‘:::¡ÏŸ?ã_4÷‡ºº: ‰•+W"„***0 »zõê70 ;yò$™LNMMMKK=zôöíÛñª=<<¿|ù’ššjaa±oß> ÃBóçϧÑh—/_FUWW³+Â?~|Þ¼y………©©©¶¶¶;wîä¹í¶bƒaF4hГ'O0 ûôé‘H,++ëhGðr¦M›öèÑ#ü—MJJJ=üàt´yCCàAƒ.^¼XZZzåÊqqñ††|7]]]ëêêîÞ½‹ªªªÂ¶+¼¾¾¹óÃÂäÇ•••ét:†ad2™ÅbµûÒ¹kÇKpvvÎÎÎ~õꕱ±ñ¾}ûx.üê… ùêjß$/¯RSsKrr‹í†òòò„„„Î×ùûï¿uuuñ楥…ܧ.ÏK£Ý©Ë}™´;';&=====½‡{Ýõr¸¯DŒ×Žsî¾}ûx¶Ü[ñ¼š:j^Ø—<÷•Ò•…œ-ç…YRRòÓO?­X±‚½Ëí{…Þk4 ÆçÏŸñ³ ðcÇŽYYYák>|˜D"éëë³ÛŽ¢}òä w‹ÑQ 펮“–sòäÉì֣ݑáŽÏ•+++ÛTÏŸ?WWWoW)§ÞkÐx^ïñôŠÈÈZZ[³²J»·y3¦££ciiÉþîÉdr@@{…ëׯwžñ´¶¶~úô©¡¡Éd>yò„}1Ï›7J¥bfffŠ—öñãGüs[[›˜˜» 566Æ0 !„ŸammmxQíNô¡C‡––þ{Lbcc­­­yîE»­ØÁàæÌ™³aà Ã>ýرcÜ_:wíív3$$ÄØØ˜çBÞ§Ñ ç{ÆóüùgMÍ-ååuü-¶º’ñ466ÊÈȼyóðï¿ÿ~×®]ørîS—ç¥ÁùÍò¼LÚ}/pÆÃ}%b¼vœsxž[ñ¼š:Úœ}Éw/ãál1Ú]’²²²?~üêÞ±WèÕFW[[»cÇ==½¤¤$|MEEÅ—/_’Éäõë×s~AÜÑòl1:Š¡ÝÃu¥å 100àÜ;’Ž2ž—/_ª¨¨tžñôRƒÆóz‡§Z½âúõ玎榦üVÊIAAaíÚµë×¯Ç—äææZ[[³W°´´ì¼ ‰ììl—#Fà èt:>csAA‰‰ ¾ÜÜÜ|Μ9¡òòr&“idôïTØÆÆÆÅÅÅøg|¢Z‰÷ì›ùùùšššø;NNNyyy<÷‚g08öƒ-ÎGZ/Yò]oWTTTäçç7eÊ///|‰¶¶ö‡Ø+|uîåæææ x{{'%%]¸p_íââ‚ÖÒÒÊÏÏÇ?§¤¤>|!¤®®.&&–››‹/ÿòå‹¶ö¿¯ßwri!„ðdo8h4Ú«W¯xî'Î`p3fÌhll úðá»…å¹#¸NòŒÎCss3‹Åº}û6•J]µj•››•JÅÿë[ß<ïü°péîî~ïÞ=¼w6þP’ÏÚñß@¡ììl¼éh¡€•–Öhj*ô¡áñ”úÁƒ#FŒ`·°Ü§.ÏKƒS'—IWÎIÁãy%ò¼fÑÿïBG{+žWÏ͹/yü ç’’’®ì÷ælÒÒÒË—/ÏÈÈ`'.í]Wô¼Ñ8s振¯oxx¸¿¿¿ªª*{¹¾¾>BÈÎÎnÇŽ+W®¬­­í$Zº¸8ÎÖCOOó¿xFâááqàÀv'K„PccãñãÇ;ú:ØÙ AÆÃ·o¿US“Ÿ4ɼWka±X+W®Ü´iSppp\\\xx8BhåÊ•ÞÞÞaaaeeeÑÑÑ;wîì¼ÖÖÖ¶¶6 ‰ææf___„P}}}XXجYÿÎxºdÉ’={öàwÅ7nÜXPP€"‘H .ôôôÌËËKOOÿùçŸ;ºÃûÐ „æÎ»k×®‚‚‚ÔÔT—ßÿç^pnÅ NZZzöìÙ[¶l™,œÆÇ`08°dÉöBv«×‘Í›7çää¼}ûv÷îÝ‹/îd¡€õ¹Áxœi4š¯¯/çÍîS—ç¥Ã¿Ùo½L„«£+‘{Ç9·êè poÅójâ¹9ç%¯  €ú믿êêêÎ;ÇY5ÏËñj18ÉËË×××wÒ"uýˆõ°Ñ¨­­Ý»w襤¤2ÿ_»uöîÝ;xð`vWzžÑr·ßÔpuÒrzyy±[åË—snÅ3’_~ù¥¢¢ÂÑÑ1::úóçÏ÷îÝ=z´¶¶6÷Í{a6h? ߊÁ`ÚÚî;|8¼'…t¥Ïùóç­¬¬ÚÚÚ0 »w¦&•Jmkk;pà€¬¬¬½½ýÍ›7Q§ýx0 ;s挒’Ò!C.\¸°hÑ"EEÅéÓ§³kiiiÙ¾}»––ÖàÁƒ-ZD£ÑðåT*uÉ’%ÊÊÊššš[·nmnnÆ0 qÜÆ?ÓétYYY|a]]ÝŠ+•••×®]ÛØØÈs/Ø[µµµqÃöðáCü²á\ØnGÔÔÔ¸Ésß f/áÞð### ‰¡C‡†……qo…ºÖ§“ÃÂý„ûÇ”’’ª«û_Çž5²?ã%øûûëé驨¨lÚ´©¹¹™çBî#Ùê…~‹ŠJ34TíIº¬–– …rõêÕàà`aÇÂ7J–Ö€~ë—-F¯‚~<|öÏ?éÎÎð[ tÇëׯíììV®\ùM÷!äåå×­[ו…‚×ÜÜF£õ™áè[º×bˆ¸^mÐà?}ùRñåKÅÉ“ü|(Ðìar@Ÿ0a„Nު舚šÚÅ‹»²PðÊÊjB}«ç2}E÷Z ׫ Üãá§øøO Òvv‘PRRƒúÔr€ ãá¯çÏ?÷±¸8UBˆB©4H\YYFØd<üÃbaoÞäÙÛ ;D>üà·Ø½2¾ÉÌ,­­múî;ca€¨èsÃú1ÈxøæÍ›¯ŽP(a‡ÐU---’’’ü*ªí8=ÇsÈxø&-­dâD3~•öþý{QOE`$%MääÆR©÷˜Ì¯Ì·"ŠŠ3˜ÌÆúúÖ&ìXú0 Eäîñdgg ;„oÀ¯Œ§¾¾þ›fš _‚Œ‡?Z[Ÿ?—mÜèÈ—Òz>¿DR^^ëëöàAòôé–‡ŸUWþø¼†]»öìøñ‡Ã†9>ñìY_ê"\J¤$IQQZØBñðK^^¥‘Üàù &“åïŸ8nÜÑ””Âë×W_º´\CC$cuŽD[½z|\œ·ÊÂ…==ƒª«y¼Ú))¡ÁðƒÑäåU@ÆÓ™÷ï ¦M;sèPøš5ãŸ<ÙéäÔÇzSêé)߸±6 `Õ‹9GýýY,˜¥µ3¥¥µ¢Óm ãáâbš®®’°£Q4Z£§gЬY¿))É&$øxy¹HJ’„T799‘w-^l¿ØÜ¹~™™¥ÂŽHtQ(4è¶ ñðάªjèh ðÀÀ—cÇyò$ë?–þý÷ýàN˜´´Äž=®ÑÑÛ˜L¦³ó©½{ï56¶ ;(QTZZ Ý–¢2>¨¨¨Ã0 2žv²²ÊæÍû}×®;óæÙ=}ºËÍÍZØñ™¬¶ùôéïCCßw42òƒ°#9p R ãჲ²:„ˆŒ%# [÷î½çì|ŠNgDEm;xp޼¼”°ƒâ?"‘àî>2!a‡ƒƒÉÚµ×—-ó/.¦ ;(QQ_ßRW×÷x¢2>¨ªªG©©É ;‘pûöÛq㎆†¾?ujaXØf maGÔ»ÔÔäÎó¸}û§¼¼J|Ø:)ì „¯´´!=—¢2>¨©i’––èSvV/[æ¿eK°ƒƒÉãÇ;ÜÝGòk^UÑ÷ÝwÆññ>Û¶9ûùÅ»¸œyÿ>_Ø Yi) ¸ -ñðA]]s¿|jÓuø|'/,¬¾{wùsªªîމ$¶aƒcBÂuuù™3ÏyzQ©ÂJh(šŒÌ ÁƒaøA€¨€Œ‡êꚸϓ'¢>_„ éë«Ü¼¹. `Õóç9G_bØ@¶‡B©¾ü‘ÔÕµÈÉ ÄŒ§´´fÙ2ÿE‹.Ž¡'úóE’“9!ÁgÞ<»]»îÌ›÷{vv™°#4 ¥iD d<|ÐÜÜÖw‡Ôë|¾ˆI“Žge•]¿¾úÜ9øAߎ¼¼ÔÁƒs>ÜÚÒBwr:uøpDk뚈^MˆÈxø€NgJH  {ï߸¸àóELxüxGŸ›/B†×yð`óÞ½3ÿúëù¤IÇ2…‘€”–Â=€hŒ‡Z[äE-*µÑÓ3hæÌßTTúü|#.N\½z|bâ.;;}?—-ó§Pj„T¯ƒ{<Q „{<ø|Gž?Ï XÜæ‹$uuùsç<þúkMVVÙäÉÇýý™L–°ƒê-uu- ­0ü @¤@ÆÃ,‹@èÏÏdf–Îë‡Ï‘±ºoÊ”aïX³f¡CáÓ¦IN.vD½‚B¡!Œ b ãáI¼¿³ÛÐðï| 3:Ÿ/BRØAõm’’$//—G|eÜÜÎúøÜª¯ovP|öÿÃ* ;øÈxø€Dë—>_Ľ{ïOŸþþÁƒÍdr?Ÿ/B UÿþûÇ_]•6~üÑÛ·ß ;"~¢Ph²²ƒ 9ˆÈxø@\œÈ`ô«Œ§°°zéÒË[¶;9 {öl·»ûÈþýØN(‚»ûÈgÏv¹ºZoÝìîþ{NN…°ƒâÒÒZèÄ5ñð‰$F§÷“^¨ìù"Š‹i¡¡OœX  ô¢Áƒ¥œº±ººÑÙùÔéÓÑmm}~Øž’xQ rÄ;Õ½Dë÷x?ÎܽûnUUýîݮ˗;ˆ‹CB, £FÆÄlxvüøÃÐФ£Gço&ì ºB©ÑÑQvðð'úA? ¥fÙ2ÿ~øÓÎNŸ/ÒÇíyút™¬õý÷×­»^UÕ ì º©´´FK Æàˆø«Æââ}8ãa2Y¿ÿ?~üѬ¬²¿þZsº:ü­ Á—.-¿~}urrƒÃÿD«ïMDJ¡ÔÀS-€¨§Z|0hxí{ñþ}þŽ·sr*6mrܰÁPNNd“ <øàÎwÇ»[Y vP]U[ÛÔÔÔ¯¦D ÜãáEE­IØQ|›ÿŸ/✚šüãÇ;`¾Q#%%áåå½Dss;»wf†VaÕ%øššp§ Z ãáEEi­QØQt‹…ùû':8yñ"' `ÕÍ›ëôõU„àÍÜ\ëÁÏÓ§¿¿wïý¸q}cØ †ˆ"Èxø@QQ¦­ÑÔÔ&ì@¾îÓ§Ò¹sýöïóð°OLÜóEˆ¾ÿ¶g·“Ó°-[‚—-ó/*¢ ;¨ÎP(4yyIYÙAÂþ2>PT”A‰øm|¾ˆ©SO1™¬þñÚ³ÇUZZBØA®RP>qbÁÝ» ª'N<~út´Èv–/-­…<(*J#„¨TÑÍxþ;_„ç°aZÂŽtǘ1F±±Û·msöó‹Ÿ4éø³gŸ… :ñDd<| ¤$º÷xrr*,¸°uk°««ÌÑHb68>~¼SOOyáÂ?<=ƒª«…ôÃc””dòòª¾|©(*¢>y²C¸Û´¶2üüâ~ÿý‘ÊÑ£óG2b0 7ÄÆfìÚu§©©m÷nW1ÂÊe·mûûöí7JJ²ÚÚŠúú*oßæYXhýðƒ½¦¦‚––þ{„2žnºtéÉ“'Y_¾T”–ÒðIµÄÅÅ0 1™L„’’lzúA!†—¹gÏݪªzŸé0_D?VW×ròdT@À3;;ýcÇÜÍÌ4Cpð+/¯[a!@"Y,ŒÁø÷®”)*j›©©Nð‡°›¥>V³çe0˜xºC$llzw¼¸ÌÌÒŽRU|¾˜/b@——û'Ži0b„ßk€n€Œ§ûf̰45Õãq {i$&“µrå•üü* ÃZZ¿ür!T]Ýàé4kÖyuuù„˜/b@SS“;wÎãöí yy•&ûý÷xƒUTDÝ¿ÿ‹…avþ||HȾ×;z´!÷…À`°¼¼¦ò½.è˜I´û®]3–/¿Ún¹ºº|/½ŸrêTôóç9ø›Àt:#4ô½¼¼Ô½{I22«`e€;Ö86ÖÛÏ/îäÉè{÷’äå¥8z}||BÌÌ4¬­ùyräHƒv#"ЉÉdíñãÍøX ôÜãégg -"ñ‡‘H$ôR'žû÷“΋åøDLŒôÒÕÕ2.ÎÒÀiÐ q//—¨¨­mmÌW¯¾p¤#‹…–,¹\^^ËÇꬬ†HbœKX,ÖÖ­Î|¬z2žžÚ¹s‹Å™…ˆñ÷×3.%¥póæ›í^Ïb2Y,¦««¬  Í÷A? §§R_ßÜ®‡ “ɪ©iZ±â*ç©6L›ýO"‘`d¤îì Y8@„@ÆÓS“'›¡Ç~œNgð½OeeýòåWx¾eÃd²NŸþ§  š¿5‚þáìÙ˜êêî3‡Éd¥§ïÙs—u}÷‰ôïSr C^^Sato€HŒ‡vì˜Î€„@ XZêð±p:¹fÍ5*µ‘óy' Ãöí»ÏÇAÿ“Sqñâcö™ÙƒÁ |ÅÇ^Ì#G0 „‘HÐÑQtuµâWÉÀñbjÖIDATðƒƒé¨Q†x?MÍÁƒóó“¯ï½¤¤£Ã,öÏ?éqqùX)èë0 Ûµë6ƒÁëhùø„$%ð¥ÆQ£ ú÷¦ÎÖ­Î<ßa!‚V‰?¶ow¡Ó™Ÿ»-¾¼~ýy»Ÿé’’$¼g†œœäĉf[·:ß¼¹nÔ(>Ö ú:ðÇË®__½~ý¤Ñ£ ñ ÄÅÅ8ûcÆdbK—ú——×õ¼F%%--üÃܹ#z^ ð¼Î&ß}güâEŽ ßÆ[{ý:w×®;†H$1„t:C\œhjª1z´¡ž­­ž¡¡*¿êýŠŠ¬“‰Á`ef–¾{—Ÿ””ÿêÕ—âbBHR’ÔÚÊ R–-óðÀSB¢§­ÁرƷn½ÝºÕ¹çEßýg&ÑŠŠŠááH7efV8ðlÏž±d²JÏK«ªjÞ³çI}}ëàÁƒ†U61Q26VÔ×,!ÑáCŠ~IUU•LéW~úâUSW×–“Cýü™–™Y•›[C§³&LÐ]·Î¦‡ÅÆÇçߺõéüyçv–rý3€‹ÇO1¸\»‡LF‰‰®®öÒÒ=/-**ãÀ·áÃ5UUåz^ZUTT$캪Ï]5ööÿ~`0X99•©©%rršººJ=)SRR]NNÉÆÆ’ñõM}èŒ`â‘ñ¨ªÂ³’n:ujÞ•¡ç–.È—rú´ŠŠ a‡ÐU}úªÑÔT7΢çå(+« f //Ùó¢ú¨>tÆ0AÏe~âWº@_D$rºqñ ÿƒŒýd<èÿ ã@ÿ׋ONN>• ÷‡N®X±ðŋËÊÊö^x=Ôɾໜœ,..~ûömöò°°0 ‰´´4üŸ>>>VVV²²²£F:zô(>-Q7Ž~íéW„œœUz?E¿ºZGg`WÎp`bbÂ9ÜBhÚ´iB?[„@Xz1ãQPPرcÇ·nuÿþýÙ³gS(”   >7°ß›Ý»w{zzÖÔÔ „jkkúé'__ßáÇ#„êëëíìì^¿~}ìØ±¤¤¤;w:;;3™Ìî·/^”þw*77WE…#+Q€Ÿ¢<ÿ‹ó‹îèTìÊŽÊÏÏÿðá{+–˜˜Èç=€.ëÅŒGEE娱cߺULLŒ³³sss3BHWW·âêuø. „~þùgüoÆÎ;555}||ðu8 ªªúèÑ£iÓ¦™ššÎ;÷Í›7yyyþþþÝ;nªªªÿÅßb±XÕÕÕü- ûåÆùEwt*vå GM™2…óЃ&L˜Àǽ€oòÍσ´µµi4B(88ØÔÔ´±±‘Åbùùù™››ËÉÉÙÛÛ'$$à·Ž;y¶acc#--­©©ÉnU«ªªddd¤¤¤ÆŒƒÂÿlãåÄÇÇëêê>{öŒç†áêÕ«æææªªªÇŽ»qã†ÁàÁƒ÷îÝ‹¯@§Ó½½½ÕÕÕÕÔÔ¼½½étº½½ý¯¿þŠ¢R©D"qûöí!&“©¨¨‰ª©©Y¾|¹ŠŠŠŽŽÎöíÛ[ZZÚE‚—ŒaØöíÛ­­­«ªª8w!$!!põêÕ£G^»v- €D"á[þòË/bbÿŒ_FFÆÇÇ'((¨Ç훾,¼ü°°0333555OOÏÖÖ֯‰ ûácll¬¨¨xôèQöWÖ®ŠŽêx~ˆ×iÉyÌ?~ìëë««««ªªºtéRüV Ï­Bááá–––’’’†††7nÜ@1 ž›³OQÎ3ý™ûÒk·/]<ÃBîîî·nÝb?غsçÎüùóÙÿËs/¾z!w~–ÚÚÚ®Zµ _³¡¡AZZ:99™ûë€Ó€ ãP^^ž€}ÍÒ¥K—-[VVV¦®®þúõk ÃþüóO55µÐÐP …©££ƒúüù3^>÷‡ºº: ‰•+W"„***0 »zõê78×dž6mÚ£GJKKynˆZ´hQ]]¿¿?BhÁ‚uuuþù'B¨ªª ðãÇÏ›7¯°°055ÕÖÖvçΘ1c†aaaaòòò¶¶¶†½{÷NRR²±±Ã0GGÇ/_¾¤¦¦ZXXìÛ·3’””„‹Åb§;x´ì]`Û¹s'BèСCì%ø_¾ÊÊÊvöåË—JJJÝ8n¡”””úÿêèËÂKsvvÎÎÎ~õꕱ±ñ¾}ûº¸¿<Ï„««k]]ÝÝ»wñÎ³ŠŽêíDzzzzzzçë]·¯Œ×iÉyÌ÷íÛG&“SSSÓÒÒF½}ûö޶jhh4hÐÅ‹KKK¯\¹"..ÞÐÐpòäIž›wr•ueaWÎp ÃB™™™ÉÉɆÕÔÔHKKã¿ >þÌs/°.\ÈŸ¥>TVV¦Ó醒Éd‹Õî‹è½Óë#g,Vw2¦££ciiÉnÈdr@@{…ëׯwžñ´¶¶~úô©¡¡Éd>yò„ÝΛ7J¥b¼šÝÔÔÔN6D%%%aÖÖÖÖî3¾ÂСCKKKñccc­­­ß½{'++ÛÖÖ¶mÛ¶Ý»w“H$vòäÉéÓ§ãÛŠ‰‰±¯ÐÐPcccÎHðÏø=ü¬¬,ö¾³wÇb±fÍš%&&¶xñbÎÈnÁ9½xñBEE¥Ç­“\–ûËâÜ ÃBBBŒ»¸¿<Ï„ÐãÇ1 c2™xH<«à¹gl}âïG·¯Œ×iÉy”ÌÌÌBCCñÿýøñ#û3÷VT*•D":uŠF£±X¬úúz&“ÙÑæ\e]YØ•3Ã0üLذaî]»0 trrb/ç¹Ø×.䯞¥ CCC#>>ðéÓ§;vŒû‹è½Óë#g,Vwúñ(((¬]»6##cýúõø’ÜÜ\kkkö ––_™JPBB";;ÛÅÅeĈøÂ††:®¨¨Ès“¡C‡v´!NNN!„ßTçüŒËÏÏ×ÔÔÄ_brrrÊË˳±±‘‘‘yûömbbâÌ™3mllf̘*//g2™FFFøæÆÆÆÅÅÅœ‘àÞ¾};qâÄ#GŽt´ AAA?~ôèÑ;wÂÂÂØPCC¿kÂ)%%…³ð.7þW„»®v_J…ïNqqq÷·#ZZZ!"ñ?§S»*:Y8ðü"¸OK|9~Ì Ø‡ËÜÜ|Μ9m¥¨¨˜ðêÕ+ &<}ú”H$òܼ£« ë on§‹g8›»»ûíÛ·1 k÷H«“}ïäBþêY*&&6wîÜÐÐЪªª¸¸8ž{§+Sw2ž¢¢"??¿)S¦xyyáK´µµ9_ÊÈÈÈè¼„æææ x{{'%%]¸p_íââÒÑ&x«ÇsîÀïà©F{õê‘Hœ>}zXXXvv¶­­íäÉ“cccñŒG]]]LL,77ßüË—/ÚÚÚœ‘àÂÃÃ/^¼ø÷ß'$$pï…BñôôÏ\–ç—…—æïﯧ§§¢¢²iÓ¦æÿkïyâ8Žãö çæÐb±RܬFƒoÃjÑ`³ú¬6猾ªÅh2˜ 7Šˆá ·ù ¢C»ï'2Øð»ñ‡Çéôô÷^.—v»].—cN²¸¿…„šxÔnŒ\Ü?Þ5"*–ÁsîyÞp8¬×ë•J¥ÛíG¹=2̋ŶmÓ4Ær¹Œ<Ü÷ý`D…ãñ¸Z­Ú¶-'¤Äý…%0tx|Âo©pÇ0ŒÉd"÷‰’Or|J¥Á`P*•\×½mI'®"'‰´UûåápØl6NçÁó Wm·Û¿Ë­â)ß÷×ëµü{ðç¤pu"›x£]9=Úl6î_¢’5HÊh4Úív³ÙìÅý“Š«‘“ÄÚúɺøešæ§Ë@ažçí÷ûét:ŸÏ³î €¯Ã—DµcYV¿ßO¿‰Ú…æV«U«ÕêõzÿzäF\M|dV HD.æ5¸ÉEbmñŒ¨Š¨Š¨Š¨Š¨Š¨/bB¹*<ð jµZÖ]x £R^ hèn=žóùìºn†½BŠÅ¢eYY÷"£AߟX@[¾~”Ç{<@}T<@}T<@}T<@}Wð 3{³Ÿ±IEND®B`‚XQilla-2.3.0/docs/simple-api/ATHexBinaryOrDerived_8hpp_source.html0000644000151400015140000002044611653571063021757 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATHexBinaryOrDerived.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _ATHEXBINARYORDERIVED_HPP
00021 #define _ATHEXBINARYORDERIVED_HPP
00022 
00023 #include <xercesc/util/XercesDefs.hpp>
00024 #include <xqilla/framework/XQillaExport.hpp>
00025 #include <xqilla/items/AnyAtomicType.hpp>
00026 
00027 class DynamicContext;
00028 
00029 class XQILLA_API ATHexBinaryOrDerived : public AnyAtomicType
00030 {
00031 public:
00032   /* Get the name of the primitive type (basic type) of this type
00033    * (ie "decimal" for xs:decimal) */
00034   virtual const XMLCh* getPrimitiveTypeName() const = 0;
00035 
00036   /* Get the namespace URI for this type */
00037   virtual const XMLCh* getTypeURI() const = 0;
00038 
00039   /* Get the name of this type  (ie "integer" for xs:integer) */
00040   virtual const XMLCh* getTypeName() const = 0;
00041 
00042   /* returns the XMLCh* (canonical) representation of this type */
00043   virtual const XMLCh* asString(const DynamicContext* context) const = 0;
00044 
00045   /* returns true if the two objects' URI are equal (string comparison)
00046    * false otherwise */
00047   virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0;
00048 
00051   virtual int compare(const ATHexBinaryOrDerived::Ptr &other, const DynamicContext *context) const = 0;
00052  
00053   virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0;
00054 };
00055 
00056 #endif //  _ATHEXBINARYORDERIVED_HPP
XQilla-2.3.0/docs/simple-api/ATNotationOrDerived_8hpp__incl.png0000644000151400015140000002302511653571064021262 00000000000000‰PNG  IHDR£uõ$bKGDÿÿÿ ½§“ IDATxœíÝy\gúð7—D9 rx‚(¢œZëV@<ˆg-âQu ØUû«EêÇ®ÇV·ÒUÛîê*Þ¶j½E@¨µžˆQ9äJ+’Ìïww6&“rñ|ÿ “¼ï<3ó0O2“¼/ =E×tèAPé}•ÐgPé}ÆÔttìììmÛ¶i:  yéééší•è‰êêê«W¯Nš4IÓ©©©yüø±¦£@ë@¥zeóæÍšhLVVÖßþö7MG€Öûô€>ƒJè3¨ô€>ƒJè3¨ô€>ƒJz£_~ùÅßßÿ×_%—dffúS)))ñ÷÷ß²e‹ô\PþþþÝI—»jkk‹‹‹[±bEpppTTÔÉ“'Åb±üˤ·å“O>Ù¾}{CCCOǦ¼ÿŠŠŠ÷éðNàWv ×!"33“Ífs¹Ü… â…}ôÑùóçBUUU«V­ÂBýúõCeggs¹ÜÉ“'«ÒUUUTTTbb¢*/`±Xaaaïº ­­­+W®´°°ˆŒŒ´³³{þüùáÇsrrvíÚE§Ë¾}ß³g­­­D"yõêÕùóç#""Ž9Âb±:]K×bhøLzçÏŸ¿|ù2&&¦¤¤¤¼¼/422²´´´´´477GYþ“ÉDq8œŸ~ú‰Çã©Ò¿D"illTñfffïº ¿üò‹¹¹ù?üðÁ888øøøÄÅŽ~ý:55UþÅæææ–––ÖÖÖžžž[·nµµµ=wîœ*kéZlm•ô:™™™îîîÞÞÞƒ ÊÌÌT¥Éüùó ´k×.ékøXssslllhhèüùó÷íÛ' ?ÿüs„М9sð nݺõÙgŸM›6mîܹø~ô ¤¯oËw…ò÷÷¿zõêÒ¥KgΜyúôiüÊôôô%K–H|766þä“OÒÓÓq‡¹¹¹ ,(,,”‰–F£Íœ9óöíÛøO‘H7{öìÙ³gÇÅʼnD"éæiii8¶¿þõ¯{÷îÅM:::8îA¾¹D"9}úôâÅ‹ƒƒƒW­ZõäÉÊý™““ÎápNž|ø‰'V®\yðàÁ††é(ï /¿qãÆ¿ÿýïÈÈÈýû÷755577óx<'''™æNNN/_¾ÄÏž=»~ýúáÇËo‹ƒƒCee%~_UUµÿþ]»våææ=z”²y@@@vv6~—sïÞ=##£qãÆQ6?þü™3g"""Ž?¾xñ⸸8Êýyç΃ÆÄÄ:tˆ¼¼qñâÅíÛ·÷ÝwwîÜ!¿BA¹ðN ÒƒÞå?þ¨©©ñõõEùúú–••=þ\•†»wﮩ©!ŠD¢ÌÌÌÕ«WÛÚÚ6lÙ²e2Ó«>|xÍš5VVVl6!ÔÒÒBÙ¿’®fÍšÅb±¦NŠRr_€F£I$ü8""ÂÓÓÓØØXùF¥¦¦~ñÅl6{ذa‘‘‘wïÞ¥lþ§?ý©±±ñéÓ§¡ŒŒŒiÓ¦1 Êæ—.]ŠŠŠòññ±²²?~¼¢‹ÿ ,èÓ§ÏĉBMMMxáÊ•+\\\þüç?“ÛN¹ðNày wÉÌ̋š¡¡ä.—;tèPUÚΞ=ûÚµk;vìøâ‹/ð>Ÿ/‘HìììðŸöööµµµÒM˜LfyyùÎ;å'l’’®¬­­qWøO‹eiiYRRâíí-ÝCII‰³³3~?((Èä¿ËËËKJJTìÁÖÖvåÊ•gÏžÅ2™Lÿýë_UUUø§nø)@€êèè‰DL&S(â»à­­­Ò/ )éJÞÒ¥Kù|þÚµkïÞ½[^^~ýúõ•+WZ[[K_« 544ðx¼ºººüüü7VUU}üñÇø)ŸƒVWW—––ÆÄÄ\¼xQÑÇ×ÜÜ|ìØ±àà`r¡|ó™3gîÛ·ï÷ßçñxwïÞ=rä~eJJŠ¢Û¤={öTTTüñLJ R²ðNà3=èE233½¼¼ðïè°áÇÛÙÙq¹\å—Ö¥q8œëׯçääà?¿øâ‹={öDEELž<9<<œÁ`Œ3fîܹ—/_f±X+W®Ü¶m›‰‰ÉÂ… bbbâããÉH÷,ß•¢úôésàÀ£GÆÅÅUVVÚÚÚÌŸ?ßÀÀ@þÅ«V­ÂØl¶››ÛÈ«ô+V¬Ø³gÏgŸ}F£Ñ|}}###ëêê(×Èd2ýüü222üüüÈ…òÍ :::öíÛW__ïèè¸qãFüCƒ;wzxxë¥øÕW_µµµ„‡‡ãkõ2 •4(B“ÿÕºèìÙ³ ,Pñ»ô@«TTT,Z´HæØQ.TÏOç4dÀÕ{@ŸA¥h˜©©)‡ÃQe!   Ò4ÌÜÜ|íÚµª,tTz@ŸA¥ôTz@ŸA¥ôTz@ŸA¥ôŒ† ôJtt´×.‘ ÖÆÆµ †PƒahPȉXÆÆõtz‡ú×ÎçóÕ¿R´Tz '8þ|¬Z(¤××÷©«3il4d0$ööf––mêƒÇ3.-5;¶Zý«&UVš–•™½y3Ü̬ÝÒR`m-04”¨3™™|ƽ Ëª«ß$%åÇÇç¼²²bÍšåÅá¸{{a04sSìÒ¥¼¨¨Ÿ++ÔÈÚIB¡èÎÒ+W]ºô ¶¶ÉÙy‡ãÎáx8;Ðl`ôZPéx7µµM‰‰’’òîß/355š:u4‡ãáç7ÂÐPÃWÈ´¤Ò“ÄbÉýûeIIùÉÉyÕÕƒ[ºr8îãÆ ¥œŸÐC Ò ’úúæ r“’òrs_LŸ>†Ãñðõad¤-·À´­Ò“$"'çyzúã””ü²²º-§L %µJ€2MMmii…ññ97o–2gÌpãp<||œ)f‚×,­­ôÒž>}œœwñâƒgÏjììÌ'Ov rõ÷wa2áw@ô¨ôPhii¿|¹ 99ÿÚµ§ 1iÒÈ÷©SÇôëg¬éÐÒ‰JOÂ%?=ýqAÁ+ Ó€ÇcÒ¤‘ M‡€¾JÀÿ´¶ SRò““ó¯_/‹%¸ÀO™âjfÖGÓ¡uN·*=éÅ‹úôôGIIy99eýú™Ò’ï= 7 Ò€::ÄYYÄÇç\½úX(Mžìâ8ÊÂÂTÓ¡½­ô¤òr~ZZ!.ùÆÆ' qŸ>ÝÅ2Òthè6¨ô ÷Â>))/=ýqc£`ìØ!ŽGHˆû€fš­+t½Ò“ªª22ž¤§?ârŸ0™ gí¿u€6ƒJz‘HÂå>IJÊ»zõñ›7ÿ)ðÁÁnvvæší½èM¥'ñù-W¯>NNÎÏÊúƒF£?,(È54Ô³ÿ¾š ]•ôAÜ»÷<))?%%ÿõë7ãÆ åp<¦N=p ¥¦CëúWéIoÞ´^¹òèêÕÇÛÛE^^ƒ9ÇÝÆF'¯¾ fPéž# |jjAeeƒ“;4ÔS/‡lÓãJO„7n'%奥¶¶ ½½‡L™â:c†û!Öš í•è­»wK“’òû­°¼œ?thÿ9s¼BBøþýûΜéÙÛ <©—Wz’DB<|XžžþèüùûeeuS§Ž’z3¨ô@'UW7&%åác--MgÏöÖ쌱Ú*½<<ænb⃒’[[ó€fôFPé.ÑÚcµTz%`˜}ЛA¥:@ûgŒÕPéUñòeý•+o ³ä0ªOCM‡@OJ´—Í«  Ò¿“Š ~jj!¾>ddÃì}•h]œ1V@¥ïšúúæÌÌ'xÌ]:æë;ò è¨ô@[ÂääÿÌ+‰ýý]thÆXm•þ=54´¦§?Â%_"!ð˜»0Ì>ÐP醑Ê]¹ò°¹¹ý£†Ï›7VçfŒÕPé»Kc£ ;ûizú£ÔÔ¶¶fè:¨ô@3ôlÆXm•¾Ûµµu\¿^”””÷Ûo[ZÚGv 5gŽ÷Сý5ï*=P+rÆØŒŒ' ­¸ÀOŸ>ÆÞÞBÓ¡é<¨ô=³?å××7ã1wCC½œœ`˜}  Òu™1ÖÍmà¼ycõiÆXm•^ È1w“’ÔÔÀ0û@7@¥=HfÆXGGö¬Yž½d¾õƒJ¯N ‘“ó¿7¯ƒYÁ0û@KA¥=Ï{åÊÃW¯x½aÆXm•^#ÈaörŸ?¯µ··˜6mL¯|h'¨ô ;õÚcµTzÃcî^º”W\\mii:y2Œ¹ ´TzÐ `ÆXm•^{<}úúêÕGW®<ºwï¹¹yŸÀÀQPòA¥]÷âE}|ü=\à­­Y¡¡^Pà5*½zõŠ÷Ûoñ0û}ûûù ìfj cîõJÞž1nnÞfŒÕPéµYeeÃåËéénÝ*a2>>Î!!îÓ¦éÛÆÜ=*=P•ôŒ±}úN›6fŒÕ*Péu×’‘ñXz˜ý  ×éÓÇXY±4Ð[PéA'x¼–„„û0c¬öƒJ¯[Èaö³³ŸŠÅ<æîÌ™žl6 ³ºTz@ Ï‹OC¡©SGÏ›7fŒÕfPéu”@ ¼q£8))/5µP z{ÃÈР›A¥oQ0cìè~ýL4UYÙð駇E"1þS èàñZìíÍÉŒe·gÏ" EÞ ³zTz€Ì«³|}·—”ÔP>E£¡èèé_~9EÍ!÷G³Ÿ–VXW÷ŸaögÎô>ÜFÓ¡•¾WƒcuÝÞ½™±±)"‘Dþ)vçÎF˜:H‡‘Ãì''çUW7:; r õÁÃ4Ð%Pé{#rB9écgÌp³µ5ï¼1Ð&•• ãÆ}+ÿ_L§ÓÆŒqHM]«‘¨@·#‡Ù¿|¹ ªªaà@Ë)SFÃ0û@EPéu×ÒØ(2ĺÓWJ$Ä￟;w/#ã Ÿß2nÜP˜1Vp8?=xðR"yë™É¤oÙ2kùrMEzs÷Â…ÜÒÒZ;;óéÓݦLq0Á‰ÉTu@‹êê766ðu¿^*½nËÍ}±lÙ‘·¿ÿ}®¢×ÈÌ;fŒÃüùã`ÆX½ñóÏ¿oܘ sŸÁ åå} ?ÑÖo¸äãA*Uf¿¸¸:4t÷¿ÿ½ÈߤÚBš•^‡?~ó›o΋Å3³>……[e†¨# |ZZaEfŒÕW<^‹»û&±ø•žÁ ø¡ã¹sŸk0* N/^Ô§§?Âcîš™™àaöjõÓOWvìHE­^´nÝ4Ú²7€J¯“Z[…_~y*99ÿ¿‡vêT¤ŸßülAÁ«sçrðŒ±C†XÏë ^¿……ÅݸQL{:¶k×' | Ù¨€úI³oll0qâðw™aö}|bŸ=«F1t»Ã‡—Áå=½•^÷W/]zèÕ+yf70`Ì™ã½jUÀÅ‹ÿ™1vÀ³¹sÇΛ7 |oŸóÿ÷+y«ÞÀ€ñðá6P½7«¬lÈÌ|’žþˆË}"=Ì~MM£Ïvòe ccÃ}ûOžì¢ÁhAOƒJ¯cRS W¯>!ŠÉñR0ö¶Ž~ýL¦Mê9q¢³ê_Ϻ®¹¹}ôè¿ …"„“I }øð2M´By9ÿòå‚””üû÷ËLL ¶**z-ý­üÕýåË}6mš “êê+¨ô:C"!¶oOÙ»7!DuÔhÑÑSV¯‚ÿÕÞ)"âXjj¡X,¡Ñh,1Ã]ÓíR]ݘšZ›ÒÔ$?0t/¯Á|jcÓOÑžûtCCCkxøþ½{3 ‚ |sÆdÒKJj Ì÷ZsæxK$„‰‰A` «¦ÃZÇÆ¦ßäÉ#)Ê} L3(¥¥=TrSO,–45 .Ü¿kWšÌð @×½uF|>_S¡JE›6¥´·‹ê䯭­ãüù›“';«'0ÌÄÄÄÂâ}Þáóù [âéÍG^ºTàï?¬²²RÓ±è< “÷ÕIÛÄùówÅbe§\àwíúíîÝ’­[g°XFJ^ ´™ôŸoUú¦¦¦¢¢"õÆ""%åÙ… OÛÛE*6IHÈqpèÑ dõïßÿý+}eeemmm·ÄÓ›¹º²¸\#3³vø/~£FzÿJ¯U¢¡¡ýÑ£*¿˜uófé§Ÿþü—¿xÛÛ÷íéÀ@OPVé±I“&©)Ðÿ;)–‹Å’ææ6ùåt:]¿­zôèQwuÕ¿WW¸»ü^|} Í2 À_Ó輬¬¬îêjÔ¨Ql6»»z{<^Ë©SCñc<¨‹eŒGÎ133¡ÑFï×~œ©Ûjjj?~,³îçé$ƒóÉt:-2r’¦£ZÊÒÒÔÇG­·ö€ö€oä ?àÇyPé}•ÐgPé}•Ðg:_é_¾|¹lYç“y”””à‰ÈÒÍM™Õyyy݃úSWç+ýÅ‹gÍšEùTii©µµ5~lnnþõ×_+jîéé¹aÆ5kÖ444 „Þ¼yóùçŸoÞ¼y̘1=¹´›7oVUU•——=z´±±ÑËË GB©²²òäÉ“ò¿˜˜¢c­ÎÞ·ª$sSSÓØ±cïܹ›››»~ýú'NL™2E,wm¿áÔ•Ö½%ý_Ü›½OV“m{tgJŸŠ ‚8}úô AƒÎœ9Óå);yÿMP¾'CCCqß¼y!DfµÎöAH©®®ær¹„N™1cFkk+åSÅÅÅ2(¿lÞÞÞ>zô興‚ ¢¢¢¼½½…BaEý„Pqq1ù§D"ñõõÝ´i“¢×Sn—êýw£‡>|øP{ú‘Aî(Uö΄wÝ·ê§$BU’9::ÚÇÇG$‘­š››‡ '¿ŠN÷FÏ¥–|0ê\;—Ë­®®Öž~¤u!«åÛöéuåççÓh´ôôt„ÐÓ§O»Ö!e'jûíÑõè?eçÏô—.]²··ÇÃãŸ:uÊÙÙ¹¥¥!ÔÑѱnÝ:6›½nÝºŽŽ|‘$##cРAYYY›7o4hPÿþý—,YB~`•o…JJJrss3666lØñãÇB"‘ˆ²y]]©©©‰‰‰ôòñ‡~ˆ0`RpņlŽ244¶¶¶äUA2äså7nP6¤ÑhGŽqqqéß¿llìñãLJjff¶qãFüùÃ7a„ü!Äãñètztt4BH,[XXàƒÞÐÐðé§ŸZ[[;88DGG·µµÉD‚{&"::ÚÃã®®©œÌ'NœØ´iƒñ¿ŸÝ›ššÆÄÄœ::ZQ«ææf##£¸¸¸ªªªÃ‡3™Ìæææ;vP6?räÈñãlj·ßQ¾ç¥\H6'­_¿!´mÛ6é…=ºiÕû»{÷î™››+_;~VQŸÒB!!!çÏŸGÕÕÕá¦L™RTTtûöm''§-[¶P.Tž jþL/Ÿxû÷ïg³Ù •••)))xgÊkòAcc£¡¡áòåËËËËOœ8ª©©!”&>ÊUUU” Baaa‡B}üñÇû÷ïÇû™ :|ß~ûíŒ3‚HLLìׯŸ——A999ÆÆÆ---A„‡‡<{ö¬  `ôèÑä¡Á‘àû…‰„,ó8ZU’W”ÚÚZ™{ëÖ-KKË.ì7„P^^^ÓÛ,E ¦ÊöRæCÏ%¶:?Ó«3«e>§Ê''ÑYJ+:áH§ŸD":tèþýû ‚øæ›o\]]É5"„æÍ›Ççó<ˆª¯¯ÏÎζ²²êèè âĉ®®®‰DI'2› ŸßÁÁÁÍÍMz­#GެªªÂÓÓÓ=<Ÿ/‘HšššÄb±¢æsçÎåñxDW+=Ù“H$¡¡¡ cÑ¢EÒÛÛ£›FtVé­/QÔ§4„PVVAb±¯K:~‚ Μ9ãääD¹PJÍ•^>ñ\]];F¾àçŸV~NlooòäIss³X,ÎÎÎ&÷¼’DÂ;DQC„Pnn.AB¡Pæ1~üáËÉÉa±XB¡píÚµ6l000àóù;vìÆm ¹7d ~ƒÞ¾.ªJ2ãJO¾9 ݼyÓÚÚº ûMɇùƒE™`*n/e>ô\b«³Ò«3«ev¦|r¥´¢Žtúݾ}›Édâ4»ÿ>B¨°°?…Â%†ìP$ 0 ##ƒ ˆàààØØXåHoeòtº dŠNݘ̾¢ŒSQjQîXi=—ºDw]½G™››GDD-‰¬­­i4š··7BHú>>dd‡ cΜ9 uuuW¯^ W¥LIò(ÿ¯Äº))ŠQ¥–ò“¶ô~P[êv¥Ò¿zõjÏž=_}õ¹&Àÿê|>ÿöíÛx9Þ¿vvveeexI^^ÞßÿþwE­D"9wîÇ[±b‡Ãáñx”ÍÓÒÒ¦M›&þ±PEE…*[!Ó¼²²rÍš5;vìðõõݼysddd}}½6M>0‚ öíÛ‡ÏûJzE¾IDATÖŽ©Ø'å>ü†!TTTDNqH¹PKÈ'ž½½}~~>ù‚NçÖüñºuërss÷îÝ‹Ê'’4|”)ªBþðÑéôàààÄÄÄ¢¢"//¯É“'§§§_»v qƒQZZŠ›?{öÌÞÞ^:,)))..îôéÓ\.W~”$sxxøÖ­[ñ' „PXXØ©S§bccÃÂÂÞu¿)Gy–@r ¦âö*¢‰­‘¬Æ”Ÿ[­Kþ„#½.±X|æÌ™~ø¼›³víÚ3gÎoå?ŠÌŸ?ÿÂ… gÏž8q"¾UÑi'˜’äQ…¢S·"òqbò©¥ÊŽUwêvú©_†X, ܺu+Ç0`À¥K—ðò5kÖÌ›7¯¬¬,??üøñ«V­’¾ú±yóf77·ÂÂÂÂÂÂ>úè³Ï>SÔJ ÇÇÇ×ÖÖ8pÀØØX P6_´hQEEîÿýðáÃoÞ¼Áo͈ÿ^ZÁ7å¯_I7—H$!!!~~~øJ”P(tss SæáÜ%e—••êààÐÐРÊÚõyðàA²$õÁ I])ò÷÷/..¾{÷îðáÃ7mÚD¹Py2¨óê=eâ}÷Ýwl6ûâÅ‹UUU©©©ÞÑäóù4-55ÿ¦!”››+ ”w|5$¨ö­ÌcùÃGĹsçX,VPPAééé,Kú^æÂ… JKK ]]]ÉC#ÕæÍ›êÉüæÍ›#Føûû§¥¥=}útÆ !6›ÝÞÞþ®ûJ]iŠ–¢Se{ÉÛÿêIlµ]½WsVËìLÊäTžÒ”'éuq¹\ƒ!½Õ999Êÿ_D"›Í¶±±9zôh§Èl‚|òtº äÞPtê–Ùi$ù8¥åŽUOêÝuŸ~÷îÝîîîøG;.\°µµÅ·g—-[faaaeeÑÒÒ"½§ÚÚÚ¢££íììÌÌÌÂÂÂø|>^.ߊ ˆ3gÎ8::Ž9211‘²¹P(Ä÷5IÛ¶m377wttÄ×* ‚èèè˜8q"‹Å"är]¦ù±cÇŒŒŒ¤ïzÞ½{—N§ÇÇÇ÷ô¦o¿K8p`xx¸tŠ+_»’>;ÍõC‡ <ØÚÚzõêÕ€r¡òdPg¥§L<¡Pøí·ß:”ÅbM˜0á×_U~N$â‡~°´´8pàÞ½{ÃÂÂ,,,¤3AQM•oÈf³ *=e4440™Lü]¹––CCؘrE<oñâÅVVV¶¶¶_~ù%yhä£ÎÎÎ6lP=™ ‚hnnþꫯFmllìèèøÍ7ßøùù-X°àö¹ù”(–¢S¾½ÒÿÅîðîJlµUz5gµÌΤLÎNSZæ„#s.ŒŒœ2eŠô6J$GGǯ¿þZIçQQQ&&&v"³ òÉÓé&{CÑ©[f§I“‰SQjuaÇvWêÝø< ë(“˜r¡rÚö{ú.l ¢½½ýÖ­[=½5îJl­ú=}oÈê 6,\¸PÓQtN&În<4Ý•º„‚:Τ|Wè= ñÏ”P³¶¶¶ÊÊÊ#GŽœ:uJÓ±(£+q*¢ó£á‚.èׯ_dd¤* è.jH0HlsçαcÇ._¾|Ò¤IšŽEÊ8»1µz:ui„ÔͶšššÇkùÚ+øýG„î®~èYYY£Fb³ÙZÒª£¬ãð™ÐgPé}•ÐgPé}•Ðg¿§¯¬¬T@µµµwWWx@ÿ444àù8Pææfù…•¾¨¨¨çƒz¢»*=žÇ¢[º@{ÀûW  Þú==ô ܧôTz@ŸA¥ôTz@Ÿý?1¶ž üØ]IEND®B`‚XQilla-2.3.0/docs/simple-api/MemoryManager_8hpp.html0000644000151400015140000000567611653571064017231 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

MemoryManager.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <stdlib.h>
Include dependency graph for MemoryManager.hpp:

Go to the source code of this file.

Classes

class  xercesc::MemoryManager
 Configurable memory manager. More...

Namespaces

namespace  xercesc
XQilla-2.3.0/docs/simple-api/Node_8hpp__incl.md50000644000151400015140000000004011653571063016213 000000000000008c2e7462c79660568253f5a642a75d8cXQilla-2.3.0/docs/simple-api/classAutoRegexGroupStoreReset.html0000644000151400015140000001665411653571063021512 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

AutoRegexGroupStoreReset Class Reference

#include <ContextHelpers.hpp>

List of all members.

Public Member Functions

 AutoRegexGroupStoreReset (DynamicContext *context, const RegexGroupStore *store=0)
 ~AutoRegexGroupStoreReset ()
void reset ()

Protected Attributes

DynamicContextcontext_
const RegexGroupStore_oldRegexStore

Constructor & Destructor Documentation

AutoRegexGroupStoreReset::AutoRegexGroupStoreReset ( DynamicContext context,
const RegexGroupStore store = 0 
) [inline]
AutoRegexGroupStoreReset::~AutoRegexGroupStoreReset ( ) [inline]

Member Function Documentation

void AutoRegexGroupStoreReset::reset ( ) [inline]

Member Data Documentation


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classResultImpl__inherit__graph.md50000644000151400015140000000004011653571063021552 00000000000000d42490ea8e133ec031c1fdf710b25bb3XQilla-2.3.0/docs/simple-api/DynamicContext_8hpp__dep__incl.md50000644000151400015140000000004011653571063021246 000000000000004ee099782e9ad748b6707e72b1d198d1XQilla-2.3.0/docs/simple-api/functions_func_0x73.html0000644000151400015140000005621611653571063017326 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
 

- s -

XQilla-2.3.0/docs/simple-api/classModuleCache__inherit__graph.png0000644000151400015140000000706611653571064021742 00000000000000‰PNG  IHDRuüýõ†bKGDÿÿÿ ½§“ ëIDATxœí{P×€OH TdÂû!%È/‚ÚÇ€CØÇV¹ˆ2‚ ‚ÕqD äQ©è¨µ´ZÂK¬Rm#ÐVg„ ÒåQ¸RìE@E^$L äµ÷îI@„„¸ñ|íž³¿=¿s¾œ³›…$Aä…GOÛ @ô„ '|=á’üÎÖ­[µ•D™´´4tû)OµµµžžžöööÚÈ òååå±±±Ø.I¡úÈ‘#»wï^Þ” * ò»ðú„ '|=áè @Oø@×<µ··“H¤òòr¬¤ªªÊÀÀ€Íf‚³³³Â£çÀÀ@ðàÁƒåÎõ¹@ä0™Lç?~ÜÊÊŠËå"299icc“VH$R{{;v0‡Ã122ôôôh'Ý9Pp¡kó ––fff–’’HMMµ¶¶NNNÆjäg[uu5öžÿ…f‡ÊTUUÙØØp8A®]»æììÌçó‰DIIIæææIII"‘¨§§P[[koo_WW—žžnoooff‰¾ÒUF!R]]íææF&“¯\¹‚ ˆX,VŽ6¡¼ Hkk+‰D:yò$™Lf³Ùò,..^»v­L&CK¶oß^\\ þ™O*SB£\\\ÌÌÌrrr®\¹òÊ+¯¬Zµ*-- = —ËŠŠ¢R©¶¶¶G …òÝß´iStt4zäÔÔ”¡¡a[[ÛóΧç^÷>üð訨‘‘KK˦¦&´ðôéÓÁÁÁ?îìì|íµ×RSSÑDïÞ½›™™éêêÚÙÙÉf³=<<’’’æŠâóùd2™Á` “H$>ŸæÌ•á“““………ÊÛ(©©©lÅÃ:xÿþ}+++t雜œ422Ç<)§„F………ñx¼¢¢"ÀîÝ»y<^~~>`||AˆˆÿÞÞÞÎÎÎõë×gffÊwÿÖ­[T*U,#RZZêêꊽJ4è‰ËåÚÙÙ¹»»gffb…...ÃÃÃèvMMÍÆÑD;;;yõÕWY,Zû×_aÛÊQG__ÿìÙ³\.W&“MMMI¥Ò¹ÂçA&“íØ±ƒH$îÙ³G¡ƒ===‰‰‰ü1‚ ¥¥¥[·nÅÊU¦„Ö¢3@$)l÷ôôˆD""‘øçŸ¢Q,kíÚµòÝ—H$VVV?ýô‚ Û¶m;uêÔ3óG–î AO?ý”H$ŽŽŽb% E~-511AE× …"¿øÌ… È/¿ü²k×.cccooï[·nÍ>W¯^511¹wï…B©¬¬”ï`OOO}}=ºôíܹ3??‘ó¤2% w—¡¼=00 …hagg'…B‘ï>‚ ‰‰‰ccc éÂR==~üØÂÂâwÞ‘©ÚÙÙaÙs¹Üîînù FûþûïÑíöövl-RŽ ‚ÌÎÎ^¾|™H$NLLÌ>ƒƒƒ¦¦¦‚äääXZZ¢«òÏÈJ$KKˆ†cccôÕ†¾rJȳ<¡ó©«« -¼y󦓓“Âõ²®®ÎÆÆæâÅ‹~~~ó'±$OR©4 àĉÇÊʪºº-?tèЮ]»>|ØÑÑáááqðàAùD322ÜÝÝÙl6›ÍöòòŠ+J(R(”ŠŠŠ±±±‚‚ …" ç Wy}’ÉdÛ·o÷ññ‘J¥‚ˆD"ww÷°°0…QNHHX·nNW(WNI¥…íððpÿ¾¾>6›íêêšžž®àI"‘XXXXZZ–””,LÓÒ<}õÕW6l@§óÍ›7­­­Ñ{?·wï^SSS*•7==-ŸèÌÌLRR’‰‰IXXvæ… “Étrr200pqq©ªªš'\åýÞåË—ÉdòßÿåÜÜܬ§§WQQ!?²õõõ€‹/*Œ¸Ê”žé‰ÃáDFFR©Tkkë#GŽ`÷{òCohhÈãñžiH¥ |ŸûbòÉ'Ÿ„‡‡/üxŠ'„¨™™™¡¡¡K—.]¿~}Ñ'ÑÁç/MMMo¼ñFtt´¯¯ï¢Oç“Æñññáp8K< œOøzÂÐ>€žðô„tÐSSSŸ¶SP?Š÷åÙÙÙ………ZIE]ôõ9ÙÙ ˆ´ˆ:yÊSHHˆ¶òPB!I(4‰¬,-§´Ë’ ‘ÿG¢[ŸûñÆ?´Ž:Ñ)O••m$ KËË[d2ÝYÒuÇ“T*«¨h‘H¤èîØØTs³îÜ ëŽ§ÆÆ\®ÛÕ×'Þ¼Ù¦Å|Ô‹îxb±ÚH¤ÿwG,–VUµ‰ÅR-¦¤FtÄ“H$©®þD"“/äñfþ«­”Ô‹Žxº{·[(œU($‘,–ŽÜõéˆ'ë==žH$²[·:]x€¤ žøüÙ;wº¤R™r•X,­­íZþ”ÔŽ.xª©é‰$sÕêÆ]Ÿ.xª¬œÓ„L†ÔÕuóxÂåÌGèÂsØ'O¸ò‹ÞæÍÙ'Nü; à_X‰•• ™Œïÿ¬Âwö(vv¦ %ææ+¨ZIFCèº÷2=áè @OøzÂÐ>€žðô„ '|=áè @OøzÂÐ>€žðô„ '|=áè @OøzÂÐ>€žðô„ '|=áè @OøzÂÐ>€žðô„ù9µ¾¾¾ÚÚZõ¦¢FjkkGFšµ… h4Z@@Àb"÷kL&SÝ]Púúzzdmg¡šÅ ø’>÷YWW§®¼ dee-:^Ÿðô„ '|=áè @Oø@³žèt:úó­ò…)))t:}ppp!g¤ÓéÏ[…111‘ýÁÆÇÇÿüóÏ Ì\ž…g«94>ŸFFFz{{±Ý©©©ŽŽM7ŠÂãñöíÛG&“322 †ŸŸß‰'ZZZ–§uõ¢ñï7zýõ×ÑßFwûí·7655iº]@IIɦM›Ž;†î:88p8&“ùæ›o.CëêEãóÉ××·¾¾[úîÝ»çããƒÕòùüS§NíØ±#$$$//O$Éd²ï¾û.22rÛ¶mìîîO/q*—;‰DÂ`0‚‚‚‚‚‚ †D"444Ë•œœŒn766ÆÆÆ¾ûî»ÁÁÁ×®]H¥Ò’’’ÐÐÐ;wæääðù|,°µµ5""â½÷ÞûöÛoçiQshÜÓúõë…B!ºôMOO·µµyyyaµ¹¹¹ccc ãôéÓ---ׯ_¿qã“ÉŒ‹‹»zõjdd$ƒÁXH+ÃÃÃùùùçÎkkk+))áóùgÍš5ò‡ZXXAzzº³³siié '''+**rrrΟ??00PZZŠ655&''ñx<•-ªe¸æBãžôôô¶lÙ‚þþscc£››ÛªU«Ð*‰Dr÷îÝ>úÈÚÚšF£íÝ»·¦¦¦ºº:>>ÞÛÛ›J¥zxxÄÅÅ-¤•Û·o>|ØÂ‚F£íß¿¿¹¹ÁAåñÅÅŇ¢R©¨¹éééü1::šF£9::¦¤¤¸ººbLJ††½õÖ[€©©)•-.e”žÉr|ÿž¯¯ï™3gbbb=.—+“ÉlllÐ][[Û±±1€]Ì4Mál*¿ØqddD~‰366^¹r¥©©é£Gä‡ûþýû_|ñEnn.™L~òäÉÙ³g…B¡³³3Z;::jgg‡n;88888`T*óôô¬X±âÀÙÙÙ†††áááþþþÉÉÉeee333ÇŽ›™™ñôôDO2*[Ô‹üß²²²ÐÐPøwÂç"++ËÜܼ¬¬l±ðù>€žðô„ '|=áè @OøzÂKzñÃ?¨+—¡¡!ssóÅÅ.ÉÓ¹sç–þ²aÆÅêÂï?½ Àë>€žðô„ '|ð?pY2´¸IEND®B`‚XQilla-2.3.0/docs/simple-api/classATAnySimpleType__inherit__graph.md50000644000151400015140000000004011653571063022442 000000000000001a791b48a844249f2424312e5f63ba14XQilla-2.3.0/docs/simple-api/VarHashEntry_8hpp__incl.png0000644000151400015140000001652011653571064020016 00000000000000‰PNG  IHDR«u0YÑbKGDÿÿÿ ½§“IDATxœíÝy@Wþð—Â#§­ŠWAu«þQ x,ÁåP·RoD‹Ô©X/"«‘®à‚xÔïZ<Àª H•CÄr%äz¿?f7“IHH¾Ÿ¿ÂcÞÌ÷½yóÍÌäeBÁ#ÐHTeJ ¹ 4d@€æÒRv ³\¿~}ëÖ­ÊŽ  6Lœ8QÙQrÕVuuuvv¶³³³²Ñh¹¹¹ ,Pv@&È€j.22RÙ!h´ÜÜ\e‡äû€Í ¹ 4d@€æ‚ Ð\5ZFFƬY³ÄŸŽ1ž={vzzº"Õ]\\***ä—|ÚzˆBií]ó'oh˜ £ÑœãââŠŠŠ†N””””ÔÔÔ¨È ^‹eff¦È’UUU‹/ÎÌÌì쀚 ¨ÑŒŒŒF•››+Ê€yyyvvvÆÆÆÊ Œ`hhØ»woE– … P?p¬é&Mštýúu¡PHü™ŸŸ/ºØ¼}ûö‚ ÜÝݽ½½;†ª¨¨pqq)((˜={vaa¡ü5KWGݺu+((ÈÍÍÍßßÿÊ•+¢…ïß¿0}úô”””6cvqqÉÎΞ7oÞŒ3Nœ8Zºt)BhæÌ™A.\¸pÇŽD-6›íîî^RR"½B‰­k¸yóæœ9s¾þú븸8GZØf¨@ÅAÔtNNN EEE¡×¯_¿yóf„ ¡–––M›6 4(99yÉ’%‡ª¯¯'ªœ:ujݺuƒ Bq8¶ÑjI«s8œ¨¨(//¯'NÌ™3gÇŽ‡XþîÝ»‡ OHHÍI¬\|ý7nÜØ¿ÿ¢E‹<ØØØ¿}ItóæM@€ºy󦙙™µµµt'nýÌ™3Û·oŽŽ¾{÷®(ƒ“‚î ®‚5ƒÁ;vlNNŽ]~~¾½½½‘‘BˆN§>|˜Édêèè0™L„Pss3QeáÂ… ^ûí·¤«%­N£Ñ0Æl6›N§»»»;;;ëèèËÏž=[__ßÑÑ!ÔØØØ³gOÒ•çää/¼¼¼ ÆW_}µsçNÒë_"H¡P¨¥¥õøñc‡ììl777 …"½°ÄÖ‰Â%K–XZZa$$$Lž={ê*1¡'&æoÙrvìØ{÷ú›šöRb0@AééÓªàà£õ±±¾Ó§·ã«¸êéÓªàà䊊ºèhï™3G); B ‚Ž1>|8?:úüˆVûöXY)ô+—]¦µ•¿sç¥ýëÚÔ©#vìðéÕK_Ù•t€êꆕ+ß¼Yî±h‘‹––ŠÎ²ÊÏ/ =F£Q÷îõÿ¿ÿ#ùÑ8 i ‚¿*+ëÉêÕ'zôÐc±úµ]A©Ø§32 æÏwÚ¸q:Ó!4d@ðéZZ¸QQgRRîŒÝ´éï †¼ýP)çÎ= O53ëÅb~ñ…¹²ÃJ|¢¢¢ŠeËŽ¾ßëëéi§ìpÚ­¼¼nÅŠc¿ýVse4d@ÐnB!Þ½ûò¾}ÙNNƒwíòc2{(;¢OD|z³uë¹/¿°w¯Ÿ™™¡²#] 2 hŸªªúÐÐc÷î½Ú°azPS{çW={Vœ\^^»m›··÷he‡ºd@Ðß}—jaÑ;>~Î!¦Ê§ÃÀ\(¤©©5""íôéßæÏwÚ°aºŽŽ~„zãFqhèq*•²gÿøñ0WF#@m»w¯tùò.W°w¯ß„ C”N'jhà¬_:=ý7˜+£! yx<ÁŽÌ™4鋜mlÌPvD]˜+cjÚ“Å ´±±Pv8 A2••½_¶ìèóço·oŸåãó7e‡Ó¥**êBCa®Œúƒ È%'ßÞ¼9sÀ&‹hmÍTv8J 6W¦ÿž=þææ0WF A’êêšÃÃS/]*\±bJh¨›Ê~É·k<þ688ùÍ›?·nõž5 æÊ¨È€à#99ÏV®<¦§Gg±Gú\Ùá¨ñ¹2?üàchseÔd@ð\.Ë–s‰‰ù3gŽŠŽöîÑC™O6UA7n”¬Xq !´woÌ•QB=}Z¹lYrUÕ‡;|Tçɦª¦¡³aÃibR$Ì•Q5q¿Û¶sŸíÛ`ii¤ìˆTݹs×®MíÛ·g\\ ­-Ì•éÞ j´êê+V¿uëÅÆ3æÏw‚9 ª¬¬ M¹wïUHÈä•+¿‚~ë¾ j®+WŠV¯>Ù«—‹ho¯êO6U5¢¹2vvVqqŸ}f¬ìˆÀ§€ ¨‰ZZ¸ëÖ¥¦¥Ý š°~ý4]]meGÔ]se^¿þsãÆã”h7È€§°°|Ù²£µµÍ±±³=<†+;œnËåÇÆÂ\™î 2 „{ö\Ù»7kâÄ!»vùõéÓ]Ÿlª‚îßµ|y ›ÍݵËoÒ¤aÊ( 2 ¦øã?ƒƒ“ÿ½òûï½ƪÁ“MUMc#gË–³Ä¯¦|ÿ½—ž]Ù¶AÔ§Oß_¿þ´••ñþýƒ«Ï“MU1W†ÉìÉbÁ\™n2 šûð¡%<<õÂ…GK–L sWË'›ªšwïW­:žŸ_2yÅ 7M£¿X­â ª³;w^†„¤ðù½{ýœ+; ‚1NI¹yæ‹/Ìãâ>ÿÜDÙrðx<Á¶mç}|âmm-³³×@úëb %0pÜÅ‹+[[y_}õcròmeGÈÁ9 *-­ N.)©ŽŽöÖ´'›ªO°o_Öž=YÃøÁÇÈÈ@Ù@T7 yÑÑ燷Œ‹ è×¾¨ îßr¬¥¥õÇý\]a®Œ ¨>êêšÃÂN^¹òžlª‚`®Œj‚ ¨&®^}ºjÕq¸¸ÀQ£>Sv8€ÜùóÖ®M51a°XÇ[*;Ÿ„tååu¤oWl67<üÔܹ‡¾úÊöòåÕþTÙ´i#rrÖöë×{Ú´=?þxI ’.V]ÝÐÅi,È€ÝCk+?0ð`RÒ ‰ò'O*<=wŸ?ÿèÀ¹;vøÂƒU“Ùãßÿ^°m›w||Ž—W\YÙ{‰RRnûúƳÙ\¥„§i v›7Ÿ-)y•Y\ü–( ñþýW§MÛÓ»·AVV<ع!æÊ\º´ŠËåKÌ•)+{¿qcFIÉ»M›Î(1BÍ÷»Ë—‹æÏOÄkiQ­¬Œ¯^]S_ßzìΗ7Î r‚/ùvS¢¹2îîÃwìða0tÝÝ,)yÇç Bññs¼¼F*;F5PÕUW˜0!¦©©•ØSZZTW×/>|­££ÍbŒÝ_Ù‚¿*/ïùŠǵ´¨cÇZ§§ÿ& B E__ûÚµµVV½• :ƒ ¨Ò„Bìëï^)Ÿ/~Ëœâèh}øð|¸ë§6êë[¾ýöÈíÛ/ÄGmmš­­ÅÙ³¡ðÍâÎ=«Ò~úéúíÛ/?NˆBAEEåOYQ§¥E++{O¥~t<òx‚GÊ÷ìÉRVTš2 ê**ªˆŽ>/}’Ž1njj Iówµ™Q]Ý =9F(îÚuùÖ­J‰J@TQ­­ü¥Kÿ-+ÇñùÂë׋Oúµ‹£áÚµ§'NÜ“57BA¡¡ÇššZ»8* PEmÙr®¬ì½¬£B[›†Þµërc#§‹‹ÃámØŽ1ÖÖ¦‘. âêêëÖ¥vq`> QE¢é/â…4U(ÄT*åoëïéi7eŠ üB£zàñwï–ææ>»r¥èÅ‹w4•BAR7),Và×_Ãä˜PåTW˜81¦±±cL¡Ph4 Ÿ/46f¸»Ûº¹ÙŽ?H_¾T¯¶jk›oÞ,ÉË{~ñbamm³–M bŒ¢èèв³× ÈTvŒjå£ Èf³ëêê” À/_žzçÎÄŸýû›L˜0püøþvvšù¬===##£¿²†n:ªù|á£G·o¿ÊË{ùêÕŸ#„ð°a¦GŽhæHè(#ê£ øîÝ»ßÿ]QÿÈÊzuìØ›>#GšŽÁ46ÖSvDJÖ§O›¿²5ÕõõœGÞ=xP]TTãæÖßמ0øé$FÉïæ8;;w]8àc Æg‘‘sètø=#„zòäIG­ª»j//„„OŸV fs¤?ôˆ‚#MµÀ·Ü€4~³cÁ; @sAh.Ȁ͠¹ 4W'fÀ/^Ï.–~!Çëׯ¿ùæŒq`` ƒÁè¼ðþ"9m!šðàÁ--­ÔÔÿ}333“N§677‡‡‡1‚Á`|ùå—Û·oçóùè“úB¦£ZÚ& …òâ<¼¤#C¨ÍÅdEF …B4hÄWÂ<<<”¾7»8€NÌ€†††k×®mo­3gÎxyyUVV¦¤¤tÓ‰¬D"""BBBêëëB>|XºtiddäðáÃB£G¾{÷nLLLAAÁºuë’““ÝÜÜÁ§õÛ­[·ª>Ö±*--511éØuYˆ!Dú/ñ!k¨(2Beee=Õª««ËËËëà–¨>,¦ºº:''w´’’bC¢rL:µ¥¥E‘%•KN„D0Æ­­­¶¶¶ .Ä/^¼xÔ¨Q\.—X&,,ÌÉɉÏç‹j555}þùçÞD›½*))ùËm’GN ·õ¢¢¢¢¢¢¿¸’NÕJ4„¤‘î‰BEF BÈÝÝ=""BT+))ÉÃã Æ’|€ôˆj÷9àÙ³g-,,ˆ/Z?~|ðàÁÍÍÍB¡Åb 6¬GãÆËÉÉ!Neå\‹?ÞÁÁA__ßÌÌ,&&†(|ÿþ½žžÞرcB¦¦¦è¿gøW¯^íׯß7H+R(”ÄÄÄaÆõéÓ'&&æèÑ£ýû÷ïիׯ‰x<Þš5kúöíËd2׬YÃãñÆ·{÷n„Pmm-•J C ##£ . „êëëÿùÏš˜˜XZZ†……q8‰HDo!aaaöööïß¿oBˆN§'%%%&&nß¾ýÈ‘#IIIÚÚÚD­äääM›6Ñhÿ{ ’AxxxJJÊ'ô[»v±þÌÌÌ!C†0™ÌÖÖÖ6Û;hÐ Ñ‘våÊkkk##£íÛ·‹v™Ä&dmWv"6â}’››Ù¯_¿>}úÌ;—8Õ"­…:w®î€Ž=Šâóù¤ÕECH|$ˆ^KmQp"„|||N:…ÿ{!œ––6kÖ,ÑI[Ñæ&92((ˆX²©©I__ÿÁƒÒ»£K‡“x:TðÝrîܹóæÍ{ûömß¾}ïÞ½‹1>xð “ÉLOO¯¬¬¼pá‚¥¥%BHúFô¢¡¡N§ÏŸ?¿¼¼<99!ôîÝ;ŒqbbâÑ£GñÇïiÄkk×®UUU‘VDùùù544$$$ „|}}xðc\__¯¯¯O¼‹§`Ò­À hòGÑ/¿übllÌãñ0ÆÉÉÉ666B¡PbGtÞpÂd#êS2`]]¥¥¥h“666III¢~þùgù°µµõéÓ§MMMàúõë¢N÷öö®­­Åd»ùñãÇr*"„ 0Æ\.Wâ5±ÀСC«ªªˆfeeÙÛÛß¿ŸÁ`p¹ÜU«VEDDhkk×ÕÕÅÆÆzzzui4š¨³ÒÓÓ­­­Å#!^‡‡‡#„ž?.j»¨ ¡Pø÷¿ÿF£Šw hĈ»uë–‰‰É'ô›œ÷6é%Þ ŒñÉ“'­­­l/éx@åææbŒé&H IW(Ò•Pº£0Ù°oÅ!CÒÓÓ‰ÿþþûï¢×ÒµjkkµµµwîÜYWW' ¬êrŽE ø¿›Ë–-ûî»ï0ÆÉÉÉS¦LÁb¡Ò­ÀmhmŽ">ŸojjzõêUŒ±§§gLLŒôŽè¼á„;ä*!dhh¸páÂ'Ož,Y²„()--µ·ÿß/vÛÙÙÉ_N/..vww5jTRRQØÔÔÄãñd= ièС²*zôè"NòÅ_ÊÊÊÌÌ̈I§L™òêÕ+ƒ_ý5//oÆŒyyy999S§NEUWW ‚Õ­­­ËËËÅ#!üúë¯ÎÎÎÑÑÑ²š’’’››{íÚµ´´´ÌÌLQšššgUâ>|(¾rû }ëD´-‰E ®j‰æ”——+Ø^YÌÍÍB?ô#± 9…ª€´£¤‡ QNôÉü!jΰaþþúkYµŒŒŒrrrîܹcii9qâÄüü|*•JZ]ÖQ€{ާ‚#PÄÇÇ'55c,q ,§ír´6GF›9sfzzúû÷ï³³³H[Ñ•ÃéS2à›7oX,ÖäÉ“W¯^M”XXXˆ¨Ôæ#=Øl¶¯¯ïš5k âãã‰ÂK—.¹»»ËªBô2iEEçVDj¨««»sç•JõôôÌÌÌ,..9rä¤I“²²²òòòˆ Ø·o_VZZJTùò¥………x$„sçÎ8pàĉ999ÒM¨¬¬ ‰0aBddä¢E‹þüóOâ_[¶l!ÞåB~~~lj‰ñóóko¿É'½³Ä[(B¨¸¸ØÜÜ\ÁöÊBzãRbr UiGI¢œèssó²²2¢äáÇ۶m“U‹Íf …ÂÔÔÔÚÚÚ   éÓ§×ÖÖ’V—> ˆ9RŠ´BñHpttlll¼qãFVV–ħϲÚ.‡"£ÈÇÇ'##ãÔ©SŽŽŽÄí2i]:œÄϹ^“'OÞ²eKmm­©©éÙ³g1ÆÑÑÑL&óÌ™3UUU/^ló>`]]…B¹xñ"1'!TPPXQQAl…ôT_VEüñçG¤¯CBBfÍšE|ü?f̘àà`Œqjj*ƒÁ Nþ³²² †¨¥þþþ®®®¥¥¥………666›6m’UddäàÁƒÙl¶x„Bá´iÓ&Nœ(0Æ\.×ÎÎÎÏÏøï‡† âââréÒ¥çÏŸGDD „˜Lfkkk{ûh¦ôlY;‹X›‹‹KIIɽ{÷ ´iÓ&Û+º½xèСúúzYNº YÛ•£Ë®‚I; “ ‰ýnggWXXXXX8~üø ȪÅf³uuuÓÒÒjjj~úé']]]6›MZ]|ÕÔÔ „>üáÃâ ¼#¤Gˆâ#P´×–.]:lØ0‰rÒC¦ÍMþ(Âóù|&“Ù·oß#GŽˆ »f8á¹7bÄâ3õŒŒ 33³ÚÚZ.—»yóæþýû3ŒqãÆ;vL~ÄïÚµ«wïÞVVVñññ~~~FFFÄ 8‚¬\#]‘Éd’öšÄ놆†o¾ùÆÈÈÈØØxáÂ…ÄgõõõZZZÄâææf:.ÚPmmíœ9sŒÍÌÌV®\Éf³eEÅf³!Þ„¤¤$ñ[„÷îÝ£R©iiiÄŸMMM«W¯¶µµÕÕÕ8pàúõë'Nœ8{öìvõ›¨ù¤ïm¤;‹X[BBÂgŸ}fbb²|ùr6›Ýf{y<ž££#ƒÁÓÉøã!+± YÛ•£Ë2 iGa²a#Þ'',,ÌÜܼW¯^~~~uuuD9é`;yòäÀétúСC333I«s¹\ñ!„1Þºu«¡¡áÀ‰ XüñŽ!Õå@Ñ^ËÍÍEíß¿ŸXFþ!Óæ&/^¬§§×ÐÐ *éšá„ÉFÉ3¢ÿú³$_¼x!=Ý´‰ËåÓ:OìÒM|Âv‰Û)òŒèîþ„Tu²~ýú²²²””—ï¨á„ÈF¤q8]]ÝYŒj€ÈFI,..îªxhCGe@Õ€ 1¢(ðÝ5€Æ‚û€Í ¹ 4d@€æúÌDöâÍé_IEND®B`‚XQilla-2.3.0/docs/simple-api/inherit_graph_37.png0000644000151400015140000000332311653571064016466 00000000000000‰PNG  IHDR«(®8bKGDÿÿÿ ½§“ˆIDATxœíšoHS_ÇŸûóÇrCü“k­™V01X„ETÂúóf¥$Ù5&)h”‘io6ÌULŒÈzç ²èŶ²Ô‹’`“EàŸMJ¶!Ó¢A³¹ØÖ®;½¸t¹]ç®9Ë{?¯ÎyxÎyžóìë9Ç{/†óßJ'À³Âð à:¼¸¯®ó?£íÚµI…' \¹råÀt SN§s||¼¬¬,Yñ¤‰G9s†ad*ÊÊÊÌfsZRâI+†Í7ò÷®Ã+€ëð à:¼¸¯®“¤‚Á F£Ù²e‹P(,..Öëõápx©“x<ž¸·S’‡bñI.gv–/†aÅÅÅŒ7p†y<ž?™öO†S$©€æææ¡¡¡¾¾¾©©©»wïZ,­V b±˜e Ý!77·µµu!ÏcÇŽù|>ŸÏ788¾_(ŠärfgYÃy½ÞÑÑQªë÷ûÙ»%,c*A¿ƒã8Žã(¹¹¹v»êÚl¶¢¢"„Ûíž?'„)ò'¤<”——ët:ÊrÿþýŠŠ p»ÝIçÀ2œeˆÉdb“ܲ³³ Ãׯ_Éîþýû'''`ïÞ½ •JIû³gÏvìØ!‰6lØÐÙÙÉp N‚ ôz}QQѺuëêêêfffXB·´´œ>}šlƒA‘H4<q₽J,Åyùò¥\.ÏËË»qãËÀPÄ"÷€/^¬Y³F¥Ruuuy½^ÒNo  ?~4ðùógºÕîêêR(‡ÃétîÙ³G£ÑÐc1þ l6[~~~4EF…B‹ÅHŸC‡¹\.»Ý.—ËÛÛÛB7oÞ¬ªªšššr8;wî¼téBhffæÎ;älôö2…€ññq©T:<P>¡PˆtÍÌÌ$g¦ox999ìK[Žpä­V«\.Åb•••·oßF´ƒœ½J \.ÕNZÉÜB555N§“ìbvøða‚ n¡P¨ººZ«Õ  – e2™×ë%Û###ׯ_gOÇñ§OŸšÍf¥R¹qãFÊN\.—L&±XL•Æï÷Ûíö%¬3¥á”Jåìììëׯûûû+++){Â*±‡ý³H’Q@VVV]]ÝÉ“'Ÿ?>11188¨ÑhÔj5å  ‰üøñC „B!½^³³³tŠÚÚÚË—/]¸p¼T²°oß>‚ :::jkkéö‹/z<ž·oßêtºS§NÀñãÇÛÚÚ&''Gyyyww7|ûö­§§‡Bo/S8’ŒŒŒªªªÆÆÆÝ»wK$Êž°JK-Î’aì ‹¼ÑÞÞ¾}ûv¡P¸yóæÖÖVrKŒF£J¥2++‹t»uëÖÚµk ƒZ­–H$tj¯ ‡ÃF&“åää¨Õj¿ßO÷_£sçÎ …Â@ @÷éééÙ´i“X,nnn&ó õõõyyyùùùgÏžýþý;cÂù“§<üÚ¢­V+tww““Pvö*-T íüæ{À߀N§«©©¡ºËýÌ Íá–‰¸ ˆó…È_N8þôéÓ½{÷z{{W_¸ôóï½zóæÍ®]»
XQilla-2.3.0/docs/simple-api/Collation_8hpp__incl.map0000644000151400015140000000003511653571064017347 00000000000000 XQilla-2.3.0/docs/simple-api/inherit_graph_16.md50000644000151400015140000000004011653571063016354 00000000000000834d98efe85152fcf1f5b508492661acXQilla-2.3.0/docs/simple-api/ATDoubleOrDerived_8hpp__dep__incl.md50000644000151400015140000000004011653571063021560 00000000000000809cdde611ed5a17f94acf6fa2dbb6edXQilla-2.3.0/docs/simple-api/classATDecimalOrDerived__inherit__graph.png0000644000151400015140000001732611653571064023160 00000000000000‰PNG  IHDR]–ÛøbKGDÿÿÿ ½§“‹IDATxœí{TWâÇoH¢@Áð D " P<*¶-Šë‚®µ[[E@ðQm(.kvAé¶Š=â)ŠèqkW×G+Oµµ•×±]AÅÕ`x˜I2¿?¦¦ixfàr?‡?îLîã;ù0w’I2CÃq  Ãˆêˆ1y…äNW8aèRéÚµkqqqc¡ >>>{öì¶šN^ÛÚÚ ôN…ЋÒÒRKKK]jêä• ##c´y†!00PÇšèø 'È+œ ¯p‚¼Â ò '†ôJÓÀÄÄÄÛÛ»ªªjˆú8ŽoÚ´ÉÌÌÌ€FAKKKHHÈŒ3ÌÌÌ.\xéÒ%JbÔÖÖÒh4CõfàýõÆb±X,óù|WW×   !>/jii¹páBMMa3ŒˆŽŽOOOSSÓôôôòòò 6ÿôÓOú÷,‰Øl¶þýŒŽ¼Õ[[[€­­í¡C‡¸\îÓ§O9΀•ûúú†Í0"bcc—/_ž’’B,¾öÚk­­­‡þÓŸþ¤gÏ*•ª££Cd ¯L&sÊ”),‹XÄ0,::šËår8œèèh Ã-Z þ¬@LMEEEÿýïûWÐh´ .¸»»[YY:t P(bcclll¶lÙÒÕÕ5Xÿ€ìììO>ùD3vllìéÓ§‰rWW×Ö­[Ùl¶½½}TT”L&Óœ-5Ëýc »uJ¥2!!aÖ¬YæææÞÞÞ7oÞ4ä³ë@zzº.5UUUÝÝÝÝÝÝÍÍÍÛ·oß¶m›úуúûû766òùü ÄÄÄ…BÍn«ðöÛo÷ôôô¯@ º~ýz‰D’œœ èèèHHHðððàóùÀËË+**j°þ%  ³³s°-Ú¸q£¯¯ï£Gø|þœ9söíÛ§™Y³Ü?ư[wäȇ“““ÓÒÒòý÷ßóx¼aŸä€€€€€€aEà8n`¯š˜™™ÕÔÔ¨uss‹ÅD¹  `þüùZ[>X>Ÿ?XbÐ’’Çår9@(Ξ=;''‡¨VSS£.÷oÞÙÙ H$nŽ\.§ÓéwïÞ%srr\\\†ðªcØ­›5kÖ™3gÔþýï_¯B¡(÷ööþýï_´h‘úQcccMë,KkË« —Ë«@ úàÁÍÆÆÆ ¼›s¹ÜëׯkV+//ã7z{{?~ èëë#Öóù|cccÍÌ>ÔôªcØ­311©ªªRW¸s玽ŽÕñÕÔÔtëÖ­÷îÝÃ_îÇl6[m]"‘”••i5¬“ɺ‚‘Ñï¶‚ÇãÕ××媪ª Ñ|Íš5‰‰‰¸Ædsþüy ÃLMM¹\.N‰DÄúGMŸ>(+ @ss³æ¸Z1†Ýº3fTWW«+Ü»woˆæ#Fù£Ø_qohhH¥RbqÇŽëׯ¯¯¯¯®®öòòŠŒŒÔúE­A‰rllìܹs@ ðöö ¢ù“'O¬­­7nÜxýúõêêê}ûö._¾L4 ñõõ‰DÀÃÃcïÞ½OŸ>œ>}úÙ³gk×®û«V "|ww÷`£;vŒÃáäææŠÅâ+W®Ìœ9sØ'™úyÇq¥R9mÚ´ºº:bQ*•nÛ¶ÍÒÒÒÚÚ:,,¬··WKÛ(*à=¡2™,**ŠÇã±X¬àà`õásÀæ8Ž××ׯ_¿žÇã™››¿ùæ›ùùùê;;;7oÞlmmmgg·sçNbNŽ‹‹³°°pvvÎËËÂ+†aK–,133lt…B‘àââòÊ+¯,^¼˜˜?†~†u÷JÃuøžiFFÆÐgä@|þªËáèü0œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò '“ÈëÍ›"ª#Ǿ/±bÅŠ±ËA"‘³½ýã)SäT=ÀÇÇG—š:y}õÕW'úsúú}}&r¹-—ÛMu–ÑãããC| cXt:?  W޽êèh]ZúÕYÈ`²_33+ ÷ï·P… &…×;w›š$&“ž}›ê8d0)¼ææV2t†)33+T*ø=ð{U*UYY …’X|ú´»¼þ7<ð{--­•Hž«™Lú¥K•æ!ø½æäT2¿m&†)óò*1LIa$€Ü«\®ÈϯR(Tš+¥Ò?ÿüªHä¹×ââû}}/´V2´œÈ_Cî5'çvÿ¯õ*ª~¨~þ|ŸP˜½öô¼¸zõžR©êÿ†) ú=ìqÌ^ îÉåŠÁ…ûU1Ì^ss5§Rá%%÷¥Ò>2ó Ìçý›š$š“ðâÅqû÷¯óó{M½ÆÖ–5uªÙ=N€s«ìíµ/9gccîèhMI’yžÌ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'àwͧN2TW………­­åú÷ãççGÜ&pÜ2®C ¾×µž0™¥ò™J¥}9§QžžNÜ*nÜ21æáôôt]n¢84ry›R)Ó¿ªŸ ˜^#y…äNW8A^áy…H¼Òh´ÚÚZªSŒ# ñªF$±ÙlªSPl^U*UGGÕ)¨6¯ÄíÛlmm‰E ⣣¹\.‡Ã‰ŽŽÆ0 @£ÑRSSÝÝÝmllâããÏ;çääÄb±öìÙCetâÿyµ±èp  q …šuðàAÿÆÆF>Ÿ¿`Á‚˜˜¢rpp°T*MIIJ¥Ò“'OÚÛÛ ’‡r ÷êææ&‹‰rAAÁüùó‰Ê•••8ŽËår­2щþy(g|N§õõõvvvêE‹EÌÍÍL&S« °_µ`³Ùê]P"‘”••Qˆ$àôÚÓÓCÖ­[÷ÙgŸ544ðùüU«V}óÍ7Ô# ؼΘ1cÉ’%ê¹7..ÎÜÜÜÓÓóüã¼yó<{¶„F£¿óN¤Azç?º«AÈξ ­¬¬¶£cRe'…×ÖÖg7oŠÀ ååÝ¡:L ¯yywèt@¥Â32*¨ŽC“Âkff…R‰pšáÿ"*ü^E¢§55-øËÏVéôI1ÃïõÒ¥Jã·÷¬J%ž™ ÿT ¿×ÌÌ …B©^Äq¼¶öÉýûb #‘ä^<š2ôÜÜJJòä^ss+™Lí‡ …2#£‡èÛLýÙ«J…geÝÂ0eÿ‡ÚÚ¤•• äG" ˜½Þ¼)zú´{À‡ ú¥K0OÅ0{ýÏî¦LaôÿS©ðüü;J¥ŠêŒcÅÄø§2ìD$±Ùzm°°°Ø½{÷`¾÷Þ{b±X,߸q ~‰‡‡‡>ƒŽ9úŸoÒ¥fuu5F+((úˆx´§§ÇÔÔôÎ;Ct²hÑ"€­í¯W)íêêÚºu+›Í¶··ŠŠ’ÉdÄ(©©©îîî666ñññçÎsrrb±X{öìó°B¡ˆupp°±±Ù²eËÐw:0'ÑU^^ÞìÙ³9ÎŽ;^¼xÀ0,::šËår8œèèh à õÄŠ>ÿ:î¯*•ÊÉÉéäÉ“8Žþùçê‡ëׯ—H$ÉÉÉ€ŽŽŽk×®Y[[c†ãøùóç=<|ø°¬¬ÌÅÅ…pðàAÿÆÆF>Ÿ¿`Á‚˜˜˜¡Ÿ1ý÷W2¼–••1ŒöövÇoß¾ ¿@II Žãr¹   …­­mQQŽã«W¯Žºͧ[.—Óéô»wï‹999...Ä(•••êQ4ËB¡PÝÃìÙ³srrˆ¶555ê2–×suø|¾úù!¸¹¹‰ÅbbeAAÁüùó‡~Æô÷JÆu¥/^¼¨P(4_ݤ§§Ï™3‡(óx<“É$étúºuërrræÎ[XXHìUÃvBÐÖÖ¦T*‰E—¦¦&¢lnn®E³¬ICCƒ««+Qvwwwwwb£Ë PwâææF¨¯¯·³³SW`±XCôlÆüøªT*ÓÓÓ9Òý’O?ý4==y=k##í —.]ÊÈÈX²d‰½½½.p¹\:.‰ˆÅGMŸ>]÷¨<¯¾¾ž(WUU8p`èúýs{-àáÇÄ-›Í …Äž$‘HÊÊÊtO5JôÙÙu™‡KJJètz[[›zÍ­[·ÀËÉxˆõê²B¡àp8\.7--mØNˆ'±»»›Xâëë+‰‡‡ÇÞ½{E]VO°±±±sçÎÀÛÛ;44TsCú¿¨³|ùr¡PX^^îêêJرcÇúõëëëë«««½¼¼"#‡¹ í8¾†‡‡¯\¹RsJ¥rvvÞ½{7>ø3þñÇ›˜˜H¥Òa;Á0lÉ’%fffÄúÎÎÎÍ›7[[[ÛÙÙíܹ³¯¯oˆQ´¼Êd²¨¨(Çb±‚ƒƒ%‰æˆ¾ÏÑÊIÔIIIqttd³ÙûÛ߈R©tÛ¶m–––ÖÖÖaaa½½½C?iÀëèøÇ?þ2=­œ†z;1^7™LÖÒÒ’ššúÝwßQe(ÆyÎqwÞÿæÍ›o¼ñƇ~ø‡?üê,C1`ÎiÓ¦…‡‡Sê7ÆÝþºlÙ²ÎÎNªS Ï€99NRR%y´wû+ ¯p‚¼Â ò '“È«J5YîÄ&•ׯ¿.„øÆ Zà}Î_OиܿìÚõ¡\ÞDuÐóWzÝ'ôñãÇd|4a>|öÍ7÷Þz‹äLu°··_¼xñ¨›O–û¿þßÿ}—‘Qnnn|÷n“I§:Θ3)ޝ2FÜ“»§GV\|Ÿê8d0)¼ÖÈd €‘‘QvömªãÁ¤ðš}‹N§”JÕÕ«w{{_PhÌß«TÚW\|_¡øõŽB¡üñGµ‘H~¯W®4ß¶Òh´ìì[æ!ø½ffþ΢R©úåagg/UyÈr¯Ožt—•Õö?ƒxùr5%yHr¯ÿùÏþ§ÃpÏʪ $i@î53³¢ÿΪRá·o745I(‰D0{mhèš<¡F§Óòóï‰4`özùrÕ`gI îWÅãî{kD(lssûíW1­­Ï,,Lû!ÐÓ§Ý66æ¥[&Ëy·3)éƒ5kæS„ `ž‡'3È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'ÿ^ýÚµkqqqäŒ%βµ››w“0–q3hª øúmmm………z^Þ|ó) ,Çz ÒÒRKË1ehÆÅuC222¨Ž`H©Ž€Ž¯‚¼Â ò 'È+œ ¯p21¼Òh4â¾Ôê5µµµcz?¦±î¬™^YYYÄíÜÉÁÂÂb÷îݤ gp&Œ×ððð¿þõ¯­­­ä Çf³ãããÉk,˜0^wîÜéææ¦uâSsÂÔ,Óh´ÔÔTwww›øøøsçÎ999±X,õé= ⣣¹\.‡Ã‰ŽŽÆ0Œh^TTäààpæÌ¢+…Bëàà`cc³eË–®®.7ZpJ!¦Öa«„BáÇMLLÒÒÒp …DCuA« –J¥)))€ÀÀ@©TzòäI@{{;Žãô÷÷olläóù ,ˆ‰‰!š¿ýöÛÅÅÅUUUDW |>_ xyyEEE ›6 €x5@!É+ŽãÇŽ›6mZcc£.^+++q—ËåZe¢+777±XLT.((˜?>ÑœÏçkv5{ö윜¢ZMMº<ãÁë„™‡ "##===ÿò—¿à} ¥µÒÜÜÀd2µÊõõõvvv4F£­X±¢®®ŽXïææ¦ÙICCƒ««+Qvww_»v­!·g̘`^ŒŒÒÒÒ®_¿~êÔ)Íõ …ÐÜܬ{Wl6›Øqq—H$êžjºðx¼úúz¢\UUuàÀ}ò“Æó prr:|øpbb"±haa8{ö¬T*ýç?ÿ©{?ëÖ­ûì³Ïø|þªU«¾ù曫mÞ¼ùóÏ?¿{÷îÝ»w###ôß2 ò 0òã+J¥Z±b…ºa\\œ………³³s^^Ð8¾ª› X–J¥Û¶m³´´´¶¶ ëííðP-“É¢¢¢x<‹Å –H$æÇWŠ¿/‘‘‘DmƒC|þJí‡ÊoFèò 'È+œ ¯p‚¼Â ò 'È+œ ¯p2‰¼Þ¼)¢:yŒ‹ïû'Ç‘ÈÙÞþñ”)ò±H øøøŒõ(CC±×W_}•œçôõ1úúLär[.wÌwåãã³hÑ¢±eh&Ëý_®=zÕÑѺ´ô ª³Ád9¾ffV:îßo¡: L ¯wî465IL&=;û6ÕqÈ`RxÍÍ­d0è SffV¨Tðzà÷ªTª²²* %±øôiwy9üoxà÷ZZZ+‘ïßÔ$Ñœ„/ŽÛ¿Ÿßkê5¶¶¬©SÇÅ'•έ"°·×¾˜¹££5%aHæyx2ƒ¼Â ò 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'È+œüîwÍ"‘¨°°ª($PXXØÚZNuŠ1aæÌ™~~~¿-kÞ¬ŽÌÓ““É12šJuбBëN‡\‡ ¤¤„üX}øòË/µÖ ã+œ ¯p‚¼Â ò 'È+œ ¯p2úë­={6---444$$„XS\\¼ÿþþ5“““CCCÕ‹\.wÞ¼y#±¹¹yÓ¦M£~¦Õ\&“9s¦¢¢B,;88,]ºtÆ t:]«ÕòåËG\ÏÀúô0J¯8Žs8œ’’µWooïììl€X,ŽŒŒ$Ê€iÓ¦Ž?ngg§R©?~œ–ššjff¦û fffÁÁÁ£ ¬ÅóçÏ#"",--ÃÃÃy<^]]ÝéÓ§oݺ•˜˜ØÿzÅ£NnÀÀ#e”óp]]]ccã®]»jkk›ššˆ•S§Nµ²²²²²"þ­^Â`0VVVl6ÛÓÓsÿþývvv™™™#”Åb……….°gÏžµ°°8räÈ›o¾ioo¿téÒ¤¤¤ÖÖÖ+W®ô¯<êä š×MÅÅÅJ¥ò½÷ÞS¯)))qrrQ'MMM<(·¶¶úûû«zå•W0 ³··'û÷`jj Þše¢ÐÔÔtøðá¾¾¾þûœ™™™••Ummí믿®¹¾¶¶vÖ¬YDÙÁÁatÉl>uêTooïk׮͘1ãÆÉÉɃ5W(šÉÌ™3‹14#öªR©JJJ¶oßþç?ÿ™X“––VRR²mÛ6¦c'8Žççç«o’Êb±Ž=:}útðr’Œ‰‰imm%þWjkkËÊÊ6mÚ¤{È/^ìÛ·oß¾}‹/Æ0¬ÿ«!??¿³gÏzzzª±2™ì»ï¾S?Ëê‘‘&¬¹¯¯ï×_íââ2kÖ,õ¿lÿæ{÷î}ô葳³3Q¡¾¾^÷­ÖdÄó0ŸÏ—H$+V¬0y‰ŸŸ_SSSmmíÐ »ºº:;;ÛÛÛ«««÷ìÙ#‹‰‡–.]šœœÜÖÖ&‰víÚ•››»råÊ”””ººººººcÇŽµµµ($†a …‚Á`Èårâ˜÷üùsÍ |ðD"ùôÓOËËË›šš~ùå—ˆˆ6›­9 .ù`‘.\ØÓÓsæÌ™Õ«W«Wöo¾fÍš'N\¿~½³³³¼¼\ý2p¤Œx-..^°`æsWWWWRR2à« 5‘‘‘DÃáÌ;÷Ô©SêYë£>:~üxhh(Fóññ 722’ÉdÑÑÑ2™lÑ¢Eááá# iffgbbâëë»k×®ãÇ«+˜ššž:u*---))©¥¥ÅÎÎÎ××7 €Éd꙼½½}ÀH cÙ²eEEEË–-S¯ìßœÉdbvâÄ‰ŽŽggç={ölß¾}DÛNð»û6ddd¡ÏÕ'_~ù¥MFF†z :? 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼ÂÉç›._¾L~„>´´´ØØØh®Àkbb"YycÞ¼yš‹0ßÿu2ƒŽ¯p‚¼Â ò 'È+œü?Ç+öœÈ.IEND®B`‚XQilla-2.3.0/docs/simple-api/MemBufFormatTarget_8hpp__incl.png0000644000151400015140000001165011653571064021132 00000000000000‰PNG  IHDRu.ˆ¨÷bKGDÿÿÿ ½§“]IDATxœíyPSWûÇOÂ:CY q‹¸Õy‘Ô´.ˆ²¨ÀT‘ÚB­ë`uªˆ0,ò› ¸ %RµV¢E¤¨ÀPËæ‚‚&–@ ¹¿?Nß;1 !jåÆ÷žÏ_'Oîsžï99_î¹7  ÃAV¨D @ ˆAj¤AjèD^²d Q¥ZHQQ!u)DÝ¢P(S¦La±X„TGhmmmµµµD­CÂÎ??? ´>ŸÿÃ?U] H 2‚Ô  H 2‚Ô  H ‘w†ÅÕÕÕÊÊŠËåR(<¸cÇŽòòòœœ++«wîoÍš5+**ÊØØXåÁ†íÛ·¯¤¤äêÕ« ¹8ÅÅÅï¦Ds®_¿þã?*ÇÓÓÓííí?tuWW×÷™pmF« xñâEcc#þwuu=xðàý»MNN¶°°À0¬££ãرcGýþûïUùêÕ«k×®={V!÷ý5 KkkkXXÇÌŸ?ÿÂ… 0¸uëVØŒ5êC”#Ún€™3gòù|Ü·oßvtt,++{ÏnG 055 ‰êÈþþ~€üvxî‡F&“‰D"ØÖÕÕÕÕÕˆÅbÀ‡ _Ž´²²joo‡mü05ªètú³gÏ:$‹áéBCÔ$ÂÒ---cǎŃŸ}öl 5uCajj ¿°¶¶ÆkáCVÔZ>888ôööVWWWTTDGGË?Åd29—cww·@ xÛÎuuuÙlvFF¾sJ¥4­££CóNLLL¨Tjkk«­­- ¥¥ÅÌÌ >¥`¼¡èïïOLLLLLœ7oÞÀÀ¼åúž‰°´¹¹ù£Gììì`ðÉ“'°ñ¶S§°ô!Ïž=ƒ=777C‡ ÔZ´} þ» :|øðäÉ“îÖ/X° ==ýåË—MMM±±±ùùùöÙÙÙ)A[[[nn.‹Å266622öööªßy+@§Ó]]]=ÚÚÚúèÑ£ÌÌLwwwÍÓƒƒƒt:]"‘À+™ÞÞ^ø¼í󉇓––VQQ!‰îÝ»— —òPS‡—»|ùò°Û°äääçÏŸ?|øPþ:JePkùÎWWWçíí­NNNÞ´i…BY¸pahh¨†nݺ6(ÊØ±c) “É NIIÉÉÉÙ²eËü¡¹Â¨¨¨äää°°0Å‹¼ÕÙßÈÈ(<<|Ïž=úúú«W¯vss‹ÍËËsppðññ¹råÊ[%&''ãp8©Tzäȑׯ_O:5,,,)) ¨š::._îСCŽŽŽê·FîîîÑÑÑ}}}nnnø‚šO!ù…˜„„ô}€Mii)‹Å7n|xóæM.—›žžþžÝ>þ<00Pá-p•Áaß j~[ ÄûÐÔÔ´wïÞúúúþþþÚÚÚ¬¬,6›M´(-âãØ!Þ™¯¿þº¯¯o×®]K—.]¶lÙûwkhh¨ÜÊ –ƒ¶@‚A[ ‚0¤Aj¤Aj¤†ÈÛ vvvð›(2# ›ššH÷Óˆ~~~D•ÖššŒvvD !˜™3gUš°3ú€´´uD !/èAj¤Aj¤Aj¤Aj¤Aj¤Aj¤Aj¤Aj¤Aj¤Aj¤Aj¤Aj¤Aj¤Aj¤Aj¤Aj¤AjЈQΞ-OO¿)“ÉàC 0z´!|H¥R7mZ¸jÕÂô‘ÂþG9qr²­­}®lkáí™3?QA¤mF”ñãͧL±¤P(ÊOQ(”©S­ìíY#¯ŠÌ Œ4~~³i4ÓN£Qýüf¼’ƒ 0Òp83ðkyd2Ùòå3F^ÉAiÌÍ™³gF¥¾± ¢R)sæŒ57E”*Ò‚ @¾¾³.(Н/Úÿ2|ùåçÊ`³§¥‡Ì “i°hÑD:ýŸÉ§Ó©..™LbU‘dbðõ%“ýó¤L†ùúÎ"ViA © Æ?ïB2ô%K¦«‡´ ƒ¾>ã?ÿ™F§Sétš§§ƒ¾>ƒhE$€08'©“J¥ºýOo|H, …B¢¤É“ €I“Œ[ZZˆ–CLLLôõõñ‡o «««®®nÄ%‘—Ù³?€ÒÔÔ@´1eÊ”! qqq99äFW÷S |ñÅ8¢…>Ÿ¯A‡&’¹s툖@vˆDáAˆ‘ÝBd©A@d©ùè ðôéÓ   ÃŒŒˆ–3$ *¿ þ;„{÷îÑéôóçÏãqÇ`0ª«« eüøñ ?á±téR …ÒÐЀ y(ªø—öo£r ŽÞùùù§¥¥åÔ©SµµµDËyàf̘ÙÙÙ xýúõæÍ›àa?~ðàž% oÞ¼9lç·oßn}“4Ц¦&333å¶–óÑ °°ÐÃÃC,lllˆ–ó.À!víÚeff¶cÇ@\\œ……Ell,~˜»»»üùáÒ¥K‹-¶ó1cÆ|ò&` “É^½z¥ÜÖrÞÚ—.]²²²‚ÊÍÍ0aBOO````ûöíæææ,kûöíð¤ÿûï¿ÛØØðùü„„›1cƬ]»þ‘S™(((˜>}ºžžž—Ë ªLïèè044Ô××ÿâ‹/ðÕ•¯[RRò믿Θ1ÃÀÀÀÂÂâÀ0‘B¡deeMžŸa˜T*•ï?øìٳʂaP¹7þ`¶{÷n&ß—žžžüD3™L(Q"‘Àg«««•ûQÎÂ0¬¤¤Ä×××ÐÐpÁ‚W®\*½««ë«¯¾‚måÙ‡u1 ãñxÎÎÎŽŽŽAAA*—‹Ê¶²0©Tjnn~ëÖ­Y³fݹsgΜ9<ÏËËëøñã†577Äb1짪ªJOOO^ l»ººº¸¸¬[·Ny.—Ëd2oܸ¡§§—ŸŸÇ¡0>Ÿooo/“É8NZZ¦”ƒÃJÕd~”gUÔ¯ eÍuuuòåàÁ¸àà‚‚ʽ) l€w¹nnnNNNvwwŽŽÆƒfffø4 …Â;wîÀ8ÜÅZZZ>~üFîß¿¿wïÞ¡²Äb±L&;þ¼@ ^¶l™@ P™þÛo¿yzz%Ö‹Å+W®Ü¾}{eeeJJŠæcTF¥R½¼¼x<^]]““ÓâÅ‹‹ŠŠnÞ¼Éf³æææ4­©© ¦766ZYYÉ+¤¦¦ž9s¦¸¸Xy---‘‘‘III .LHH U¸”tvvîêê*)))**âp8šG ¥ªámgUýÚPFå½Z¸âuuu–––j‚oÅ[@&“mذ!"""77÷Úµk0¾bÅŠ;w>yò¤ªªÊÓÓóøñãòYkÖ¬ùöÛokjjjjj¶nÝúäÉ“¡²(Ї‡Ç… D"‘D"ÑÑÑ100P™Îãñ–/_®^m¿D"a0b±8!!ÐÕÕ¥É0UÇËË+%%eîܹ:::nnnÙÙÙ¶¶¶¶¶¶U«VEFF>zô¨¦¦f×®]ÊÝNœ81...,,¬¯¯O~†…††NŸ>=88mnn!ŸN£Ñ|||BCCçÌ™Ãb)þŠh{{û 9†š†RÕ fVáõƒB[ýÚddd¼~ýZ}Ѩ¨¨†††»wïÆÇǪ ¾ò§M¶@ÇŽûüóÏáÉë—_~±°°€[X‘HdbbbjjÒÓÓ#ìë닉‰±´´d2™þþþB¡Æ•³0 ;{öì¸qã ƤI“x<žÊt‰D7ß5çßÇ=úÓO?MIIñ÷÷g±X˜§x•Â:;;ét:¼<íééa0±±±x!@°fÍSSS ‹o¾ùF,¥J,O˜0!>>^~ÙÙÙºººò—åååT*5//O^üD;Üwaon”_Y j 4¬TMæGyVœŒŒ0 “o»6†-ÎÈȰµµ533‹ˆˆÀ+•Gª€òèÿÐÖÖV[[‹¾ƒÐ*”ßW>Ÿ?eÊù“çGÿFñ>  ´Q£F…††j|Ú‹ÅJMMÕ$ø  H 2‚Ô  H 2‚Ô  HŠßB¿S‰ * €~A(oûf2ñ¿º@d©A@d©ù(|¨†$W”IEND®B`‚XQilla-2.3.0/docs/simple-api/ATDateTimeOrDerived_8hpp__dep__incl.png0000644000151400015140000001316611653571064022157 00000000000000‰PNG  IHDR½ÃX‡ÖbKGDÿÿÿ ½§“+IDATxœíÝ{Tgúð7’€"È%!Œ¸jP¨]ÝnË*Zèa­¸+°¨èŠK—ÓV\kµzj»ÒSµHÑ Õ­ö'Ht{Z¹hԨŅÈÍHP1Ñ ä6¿?æì'!’W7 ú|ŽL^fž÷™äëÌäB`°Ñ0G7†$È À¹8 7ÓôÆÜ¹sÕp~[·n={6¹ü\nª««ßzë-.—눮€S»páBjj*u“IûqBBÂûï¿o׎ÀPpáÂÓ›p}p@nÈ À¹8 7ýùÔ =zôðáé©©K–,!GjjjvîÜi¾fnn®éó7ÿ©S§¦§§{{{ãMme®;vìØ±C$aWFõöö9r¤¡¡A.—FFF~øá‡...´ÕæÌ™C-ÛºS÷îÝ[¶lÙËôi±Âœ9s ÇŒƒ]vðprCDMM —ˉDTnf̘QZZŠ’Ëåk×®%—B£FBeeeñx<£Ñx÷îÝÒÒR¡P˜ŸŸïááa±¾\._½zuEEÅ@ 4AIII{DyöìYzzºOZZZ@@@kkë¡C‡._¾¼gÏžaÃèÇf›vÊ”‡‡ÇKöép8ç©ÖÖÖŽŽŽM›6I¥R™LFº¹¹ùúúúúú’ÿç|ÿ‹Éd"„¼½½}}}9NxxøÎ;y<^IIÉ@õF£J¥²ÒÀ@s±Ùl¡Pˆ±G”£Gz{{ïÝ»÷ü#ŸÏŒŒÌÉÉéêê:{ö¬ùÊ6í”)//¯—ìÓáprSSS3uêÔéÓ§ÖÔÔØº9ƒÁX¸pamm-yóÒ¥K©©©111ñññÇŽC­Y³!G® ×ësrr-Z´hÑ¢œœ½^?På{÷îQ§9sæœ={vÅŠýë_;vîܹ¤¤¤>ø ??ßJÙªªªåË—›Z†þá‡VUU‘ÅÅbñâÅ‹oܸa}§Ì‹›nþÓO?‘}nݺ5;;›ÜD§ÓÅÆÆ’Ì77ÿú׿’““çÏŸ¿víÚÆÆF‹÷ÀåË——.]ûÃ?PwÈ/¿ü’œœ¼hÑ¢}ûöét:‹ƒƒ|ì(6ç†|x³\¹reÿþýB¡077÷Ò¥K‡JOO/(( fæeÕjµB¡´: ££ƒ\...Þ¼ysPP•²Ò3m󨨨‹/’khhpss{çw,n^ZZZTT$ ’““srr,îr]]]nnî¦M›òòò¨cvyyù®]»þùÏÖÕÕ‘ÿ3<›ssûöíÌš5 !4kÖ¬¶¶¶ÖÖV[‹P\]]:´~ýz6›M¾/öôéSÚ:gϞݰa—Ë0aBZZZ}}ý ‹/^¼ØÝÝ}Þ¼y¡%K–¸»»ÇÄÄ „zzzl*Ë`0ŒF#¹, ÃÃÇn}êŠÓ6ÿÓŸþ¤R©þóŸÿ „Ο?C^€›o^YY¹zõêÈÈH6›ýî»ïtš#wyæÌ™Ôn"„ÒÓÓù|~HHÈßÿþ÷ªª*+ƒƒgóuqMMÁ`øË_þBˆD¢ñãÇÛTD&“ „˜L¦L&Û½{·F£±øŸ!ÔÕÕOÝ9rä gqww'§ -TÖÃÃÃ××W*•NŸ>Ý´ŽT*4i¹øÂ²Ò3ms77·3f\¼xñw¿ûݯ¿þš››;Ðæz½Þô@8a‹=°Ùl„ƒÁ0äóùÔì>´28x¶åÆh4ŠD¢5kÖ,X°€9|ø°H$Z¹r%­W+‚¨¬¬|ï½÷B}}}ä“爈NgñòÓËËëÛo¿%Ÿ^’§›zˆÅ²ÑÑÑG §.qz{{?N=ЦÉh§¬ôl¾yTTÔ¾}ûÁ¤I“¨ÇÒ|óÏ?ÿüÎ;'N$Whkk³Ø†ÅGA&“‘9»{÷.¬϶ó”D"Q*•sçÎñ_ÑÑÑ2™L*•ZßðñãÇ …¢»»ûúõëÛ¶m“Ë剉‰!N§×ë™L¦V«%/ž={Fn¢ÑhÈ…ÈÈÈÜÜÜû÷ï·´´lÚ´©¼¼ÜÖ´ÈbÙ+V(•Ê?þ¸¾¾^&“ýüóÏéééÇôøú²©çwÞyG­V9rdþüùVz[¸páþýûùå…BQ__O]Ýÿøãægv𬬬{÷îݾ};//úˆ•ÅÁÁ³íxSSS3mÚ4ÓW·‚‚‚D"Ñ@gÒÚµkÉ.—zðàAòÐíáᑞžþå—_Ž1bÉ’%QQQ›6m:qâÄïÿûøøø3gÎ „V­Z••••ššÊ`0fÍš•––fëNZd±¬»»ûÁƒ>œ““ÓÙÙÉãñ¢¢¢X,ÖàwÊbñîîn‹m0™ÌÙ³gŸ?žúH”ÅÍY,–N§Û¿ÿ£G&Nœ¸mÛ6òYçîݻ쟻£££?ùä“ÞÞÞ¨¨¨¥K—’g%Ú ­÷Ãô÷` ÆöíÛáó7¯ ‹/+ã½Z=gΜ¢¢"ê€ ïO›×ÙÈ‘#ccc3h+ÈÍëÌÛÛûã?Ì ­ 7äà€Ü€rp@ntûö#G·à¼èï3œ>}Ú!­8›‡Ã||n3™½ŽnÄ=—›„„Gõál4fg§çˆ“ÇŽíqt/Na„ cÇŽ¥n2à{Ú,ú曳ß~{nÜ8ö¥K[Ý‹3‚ëËJJBíí;Ý‹3‚ÜXpõj‡L¦D±X.¥¥WÝŽ3‚ÜXP^.f2]B:¡¤¤Áh„S9ä†Î`0ž8Ñ ×È›öÔ×·8¶%'¹¡»tIªT>£n²X.'OŠØs‚ÜЕ•‰™Ìþ»E§3TTˆu:ƒ[rB›çhµúÊÊkz½ÑtP¥êû÷¿›Õ’s‚Ü<§¦¦Q£é£ 2™Œ²2xVõÈÍsÊÊ®˜ï„^o´??Ïqãlþû7œ§È À¹8 7äà€Ü€rp@nÈ À¹8 7äà€Ü€rp@nÈ À¹8 7äà€Ü€rp@nÈ À¹8 7äà€Ü€rpØï{“ª««[Z†ØÖWWWwuÕ;º …B;ÍDØËû£h,wØ07Gwa»=šv=O%$$ØmÇ^žV{ß`èutƒUTTdχ®oÈ À¹8 7äà€ÜN—ƒ!•J_a5s¯ª8^?¯pïÈérCiiiáp8/_ç×_•?Ïþ=¼~œ÷ï3ÆG½|??¿Ñ£G;¶‡×óoÞ{ï=„õëtºŒŒ .—›‘‘¡ÓéB #???$$ÄÏÏ/33³  `üøñ^^^Û¶m³^üôéÓáááîîî</33!¤×ë·oßèçç·|ùòÇ›÷ðøñã¿ýío‡Ïçoܸ±··W*•2ŒóçÏN›6mÕªUäšjµÚÝÝýêÕ«æSŸ;wN øøøìÚµ !DV¨¨¨˜Ã ‹—7dr,—ËÉ媪ª°°0re±XL„V«¥-“EÌÿŸœ:uª¯¯¯±±Q­V †‹/’+Ož<¹¬¬Œ¬ÿÛo¿‘˦=hµZ—›7o’7ËÊʹ‚D"!B¯×=úüùóAÌŸ??33ÓâÞ]¸p ƒÁ@ÎkZ ˆ¢¢"ZYjÐúýfçÜ8ïõ M[[Ç£nzyy‘ žžž!‹E[¦477 Zµ¦¦¦ÔÔTµZNŽ´··‘Ë!!!!!!´Mîß¿o0&NœHÞ2™Œ\F¹¸¸ÄÅÅ•••…††VWW“‡=s!Ú_¥¦¦ÊZtÎ{}CÃápÈCAJ¥²¶¶»”F£ILLÌÈÈ‹ÅÙÙÙä`@@@[[¹|íÚµ¯¾úж•¿¿¿‹‹ õ¢;wîŒ3†\¦’špòäÉâââ™3gòù|‹³[|!€<À „šššÈ` 4è$œ=7jµš\ˆ‹‹ûôÓOÛÛÛ%ILLÌwß}‡]³¯¯O«Õºººj4šíÛ·#„zzz’““?ûì³›7oÞ¼ysíÚµííí´X,Öâŋׯ_ßÚÚzóæÍ­[·.]º”V922R¯×ñÅÉÉÉÔ`^^Þ“'O¬·´aéTÚÐаeË–eË–Ytv;#Úz}£ÓéfΜéááAŽ«Tª•+Wúøø°Ùl¡PøôéSÓ•Z64µwï^__ß±cÇfgg'%%q¹ÜÞÞÞ7xyy%%%)•Jó Err2›Íæñx}ô‘F£¡]„±zõê#F¨T*ó=²¸LVÈËË7n‡ÃY·nU–6hý~{Ó¯‹‡º-[¶,Y²dðë›'o Aëàºx¨êíííììÌÏÏ?~ü¸£{ùŸsöë›!¤®®îøCJJÊûï¿?ø­F•––6˜A§Ç›WföìÙ …ÂÖ­¸\nNNÎ` oÈ À¹8 7äf@ÝÝjG·à¼ìú|ª¥¥åàÁƒöœñe””Ü‹=|¸‹£”+W®Øu>»½Â8´~?|Ø0·Ñ£×AWÜÉÙíÑd–>¤~øáRFFñŒA%%kÝ‹3‚ëËJK¯ Ĩ­•>zW9@n,èêzRWׂ£¢ÂÂg„äÆ‚ŠŠ«.. „ÑH78ºg¹± ¤¤Á` BAܸ!ëè€_…¡ƒÜе´<üí·Nêé‚‹ œª,€ÜÐ<)f2û_³1ˆ’8UÑAnèJJôzu“ ©ôAc£ ¿ü&€Ü<ÇâÕ “éR^.vH?N róœòr1‹EcA¯7×à ¤¦ 7ýŒFâĉË:ÁüG÷ï«Äâvóñ7ä¦_]]ËÇ=Ädºœ< §ª~›~§N]E¹º2ÍÿDeåUƒÁèè|.½ßÛoó?ûlusÏžÿ‹:iRÿwç €€rrV,\æèFœœ§È À¹8 7äà€Ü€rp@nÈ À¹8 7äà€Ü€rp@nÈ À¹8 7äà€Ü€rp@nÈ À¹8 7äà€Ü€rp@nûü™«¢¢"Gï¨Í<=g²XGwa›„„û< vý~¿ââb{N÷¦Ù»w¯Ýæ²kn†ÖŸJrJJJì6\߀rp@nÈ À1$s#•J †Å…—,h‡Í †T*ÅžËI ÉÜx{{ÿãÿp悯½!™‡“™™éÌ_{N”›ÊÊÊ1cÆ(•J„ÐñãÇ'MšôôéS£Ñ˜••âéé!‰È㼕óÂéÓ§ÃÃÃÝÝÝy<žÅ4œ:u*44tøðá&L(((@ÏŸh F~~~HHˆŸŸ_fffAAÁøñã½¼¼¶mÛF­YQQ1yòd.—»~ýú¾¾>Óâ:.##ÃßߟËåfddèt:óÎ;'|||víÚ5PÍNä`öy;ƒ|ê…«-_¾|ÅŠ]]]þþþuuuA8p€Ëå–••uvvþøã|>!ÔÜÜLV3_P©T®®®)))2™¬°°!ôàÁÓ)Ôjµ››[NNŽ\.?tè“ÉT«ÕÔæA „’’’T*U^^B(11Q¥R8p!ÔÝÝM®9oÞ¼¦¦¦ÚÚZ@°cÇÓÍ¿þúëøøøŽŽ‰D2mÚ´Í›7Óö!´`Á•JUZZúš´Aë÷^BB‚ÝÞŸr®Ü(•J>ŸJÝGS¦L9räµÂ÷ßo=7}}}jµÚ`0\¼x‘\Ùt …BÁb±vïÞ­T*FcOOÁ` åF,¡ÕjiËÍÍÍ䚉„Ú/@`ºypp°\.'—«ªªÂÂÂhûˆºpáAƒá…5iƒÖï={æÆ‰ÎS!ooo¡PxëÖ­ôôtr¤¥¥%,¬ÿ/@…††Z¯àêêÚÔÔ3}úô#GŽPãŒÿòññ‰Dµµµ|>öìÙ?ÿüó°aô;ÁÓÓ!Äb±hË”   r!88X&“™þ¨­­Çã‘sÍ;·µµÕ¼É€€„m^‹5­LäXΕ›»wïfeeEGGòÉ'äȘ1c®_¿N­pëÖ-ë4MbbbFF†X,ÎÎΦƩÿ(Æh4–””(ŠU«VÅÆÆ* [û$¡¦¦&2‡Cá”Jemm­ùæ/Î,Ö´2‘c9QnŒFcJJʺuëŽ?^]]}êÔ)„PJJJFFFEEEWW×O?ý´yófëEúúú´Z­«««F£Ù¾};B¨§ç¹?µÊ`0æÍ›WZZªR©´Z-‹Årww·µÕ 6H¥Ò†††-[¶,[¶ÌôGqqqŸ~úi{{»D"‰‰‰ùî»ïByyyOž<Á¨ie"³Ïép0×7ûöí›:uªV«%âäÉ“<O¡PhµÚ/¾øbüøñÇŽCV¯o‚Ø»w¯¯¯ïرc³³³“’’¸\®y3'Ntuu ®¨¨ mŽL.‰Ì—É5óòòÆÇápÖ­[§ÑhL7W©T+W®ôñña³ÙB¡ðéÓ§/S“6hý|s¯‹_ÈôrˆÿEkbLôæ^ƒ¡rc›Q£F¥¥¥Ù¡æÿb¢WÈNº¸¸xñâÅö™ë•˜˜ˆìõ!n8Þ€rp@nÈ À¹8ìúûš/ó^0vûX;½~s÷î]‹ï ƒW‹ÏçGDDØa";å¼fàúà€Ü€rpü?0ÝV”°ÔIEND®B`‚XQilla-2.3.0/docs/simple-api/ATFloatOrDerived_8hpp__incl.png0000644000151400015140000002221411653571064020533 00000000000000‰PNG  IHDRuu§ €*bKGDÿÿÿ ½§“ IDATxœíÝyX×Úð“vd7‚ ¢,.(;Z«‚X"* ".×Û ÚÇÚÏ–r}l]nµÕ~µí×[¥nP×Z²Š•JЪU@d±.ˆŠÊ"¢ "HHæûãôNc2YáýýNrfÞ™y™793É¡ TtM @P_åƒú (ÔW@ùšu¸páÂÎ;5PŽ‚‚M‡@ï ¾‚A¡©©é·ß~›9s¦¦ýòìÙ³[·ni: õ "Û¶mÓt _ŠŠŠþýïk: ×_åƒú (ÔW@ù ¾ÊõP>¸iGŽIIIY³fͲeËpKaaáŽ;d_yàÀ5kÖȶ;vlùòå§?atvv¦¦¦–””466Ž9rÆŒK—.ÕÓÓ“zYPPùxذažžžëÖ­³´´TdõõõýŒ“r AAAÇŽsppèób ¾ð‚ ™L&‡Ã!ëë´iÓÒÓÓBëׯÇBæææ¡¤¤${{{É…ðùü7]occãÚµk³²²ðŸëÖ­³²²Š>|øÃ‡:TZZúÍ7ßÐéÒÃN8±XüäÉ“ôôô¸¸¸Ã‡›™™õºR33³˜˜˜7  à5>|üøqbbbMMM]]n444´¶¶¶¶¶ÆŸ ­ÿ‹Á` „,--­_ׇõŠÅâÖÖVòÏ#GŽXZZ~ûí·“'Ovttœ1cFrròÓ§Oóóóeûâlmm½½½wìØaooŸ––¦ÈJ-,,âââú- WP_xMaa¡§§§¯¯ïÈ‘# û¿À¶¶¶Ý»wGDDDGGïÛ·O  „þøã5kÖÌ™3'22òĉ¡÷ß!´hÑ"Ü«  `åÊ•’UŒŒ–.]ZPPP__TVV¶dÉ’ªª*©ÕÑh´ùóç_½zÿÙÝÝœœ¼páÂ… &''wwwKv?{ö,^þì³ÏöîÝ‹»…B‹…— Û],ÿüóÏ+V¬˜7oÞúõëoß¾M¹Õ¥¥¥±±±,ëøñã!¼ÒË—/¯X±báÂ…?üðƒP(¤lìÿ@K@}àoxp888! à…ÉÎÎN¾‘H$ùì÷ßßÜÜœœœüÕW_•””œ°··3fÌêÕ« :´aÃ&“‰jooW$<&‹ñ㸸8ooo##£ž»äççøá‡L&s̘1ñññdlRÝß~ûíÖÖÖ»wï"„Ο??gÎ|#•l÷ìììµk×Θ1ÃÆÆfÊ”)ò†——,Ybbb2}út„ЫW¯pãºuëÇÿÞ{ï‘¿ÑOÙÀ÷7ð·ÂÂB‘HA¶p8œÑ£G÷ÜKö^Ùúúzü€Çã‰ÅâáÇã?š›› F]]Ýž={ø|>åP333kkëšš___Éöšš777üxäÈ‘òâ©««#×øôéÓÈÈHò)SSSÊ†Ó¦M»pá‚““Ó•+W8 ¯{ww·äë1cÆPÆ`ccƒ¢Ñh’ŽŽŽäÚ›››{h`€ú À_Äb1‡Ãyÿý÷ÃÃÃqKJJ ‡ÃY½zµTPœ••Noll5jB¨¡¡ÁÖÖ¶««kûöíÛ·oŸ:uªP(¤¼e)$$äÈ‘#ÞÞÞä%ØÎÎΓ'O’ÕßZ%‹ ˆììì·Þz ÿiaañÝwßáò‡åuþá‡\\\ÜÜÜÈš'Û}ëÖ­÷ïßwvvÆ/¨­­¥ ƒrÕÕÕázüäÉ\€å50Àø0©¬¬äñx¡¡¡ÆÿRWWWSSÓçe2Œ   ÿüç?ø;6!!!B¡°»»›Á`|A´££¿žübϪU«x<ÞG}T\\\WW÷û￯[·ÎÖÖVò³5©¥¥…Ëå>þ¼¢¢bË–-‹/ÆO͘1ãÀMMM¨¯€òA}”ê+ |P_åƒßGƒHBB‚J—/òù¶FFÍzz•®H«tuYŠÅúFF/h4±ª×ÅãñT½ ”ê+FŒ­¢… ô/Lž?7nm5ÐÓ;8XX[wªh]=àr<°ðókRózkk-êëÍôô>“ÙanÞÕ×Ù†"5gZ ~€>jjz™“SÁf—VV>±±1[°À‡ÅòôõuÒÓÓÌe—ììòµkjhøNý«~ù²ãܹ?ÙìÒK—î™›‡†NˆŽöŸ>ݵÏóú0@}àÍ47¿Êʺ‘“S~ýz­©©á;ïLd±¼Çhx4Hƒõ•T_ÏËÌ,ûùçâû÷Ÿ98X-Xà³tédgg¦C@S ¾ /ÚNŸ.ËÉ)/+{dd¤?wî$Ë+ `¬¡¡¶\dцúJº{÷)›]š–VüìÙ+77»èh¿èèÉLæMÇ€ú@} '¯^už=[Åf—^¹Rc`À ó`±¼fÌp32¢˜‡U³´ª¾bb1QZúÍ.ÍÌ,ãó…>>£¢£ý,ð133Ôth¨ÔW(´·w9S™›[qñâ]±˜˜9s\x¸ç;ïL277Òthria}%uuuŸ;w“Í.-*º£§G uŠò›9sœ¾¾ž¦C@U ¾ð·ŽA^^EnnÅï¿W‹Db\VgÏv·°0Ñth½ÓæúJjiéÈÍ­HK+)-­µ°0÷ŒŠòó÷ wBê+H(Ýa³Kûí–@Ð=kÖøðpÏ VV¦ší èD}%ÕÕñ²²ÊNœ¸öða³££UD„ϲeSFªé¸P¨¯`ðÂe5'§¼ àVk+ßÏωÅò ÷´³³Ðth}¡[õ•TYù$-­4;ûFsó+QQ~ øØÚši:.ú ê+tº»ÅÎ휜òß~»õòå_euÞ<áÃ-5Z¿èh}ÅD"ñ•+5ii%ùùU·ßv‰Šò›7ÏÃÔ ê+,‚()y˜“S‘—WñôéKÿÑ,–×;ïL1ÂZÓ¡)‡N×WRg§° àO6»”ùÍ`èá;¡‚‚Æ3ðcé@ÇhËW÷P²¬æçW64´¸¸0ccßb±¼ÜÜì4 `d¤Ïby±X^MM­99å99å«V6Ì"<Ü“Åòœƒú THjn8ggflì[ƒä×ö.²°0‰ŽöŽöohh9}úúÏ?³Ù¥V ø,]:ÙÙ™©é.ña xn¸sçn>y sÃiV…»wŸ²Ù¥iiÅÏž½rs³‹Žö‹ŽžÌdÑt\@@}Ê4hç†ÓP_U‡¼*3³ŒÏúøŒŠŽö_°ÀÇÌÌPÓ¡íõ(Ì §  ¾ªAWW÷¹s7ÙìÒ¢¢;zzôÐP÷¨(¿™3ÇÁP@ÔWÐw½`³KpYµµ5‹ˆð²ªAP_Õ©¥¥#7·"-­¤´´ÖÂÂ8<Ü3*ÊÏß4Ü HP_ÁÃsÃáIl,-M`n8-õU#êêxYYe'O^{ð ÙÑÑ*"ÂgÙ²)£GÕt\@ó ¾EIÎ gbb0gÎ$˜N«@}Õ¬ÊÊ'ii¥ÙÙ7š›_yxŒˆŠò‹ˆð: ¾‚^p¹í×an8íõUˆDâ+WjÒÒJòó«:;…o¿íå7ož‡©)Ü 5è@}ÔðÜp¹¹.ÜE½óÎĨ(?˜N›A}Õ*‚‚?ÙìRç6ƒ¡‡ï„ Ï`Àe”Áê+xœ¹á&š›k:4 ­¡¡åÿ8ÔÝ-ÂòùB.·ÝÁÁ’|Á„ Ó’–k(:ð¯=/¯2-­¤¤äá°aááž,–çäÉc4P9¨¯!˜Ng쪩yFù†ænÜ8[Í!yð·ÃÓÓ¯×Ö>wu6¾Wd¤Ÿ““­¦ãªõuPƒ¹átÝÞ½…»wçuw‹eŸ¢Ñh×®mqt„‰´¾*+«ìùó6|'ÔÂ…>66fšŽ (Ô×ÁˆœÄFrn¸°0{{ËÞ;mÒÐÐâïÿ¹ì1N›4É1?ÿ#DAÞ uæL¥P(Â×b‰,«gÏVÕ×óœ™ xïí<\n»§çV‘èïúª§Gë-ç´´÷5èêê§99ålvé£G/ÜÜìX,Ϩ(ÿQ£l$_#Š&Mú¬µµ!?ó³ÏXðjÚê«NêèlÜx27·â¿‡vòd|`àXü,¾{Ï çädé eu`‹‰I¾téYbétÚ7ß,]²d²f£ý„'íÉÉ©8}úzKK‡¯¯‹åµh‘¯µµ)BèìÙªwß=ŒOzztOχ¿ çi¨¯ºçÞ½¦U«>yÂ%ϧúúz‹ù®_œ™ù×Üpvv‘‘~QQ~PV6»ôþçy V__ïæÍC†i6* ,A÷… wsrÊóò*E"q`àØðpÏ3g*ÏŸ¿E^`0ô,-Yãå5R³ÑÔW“Ÿ_õÁÇù«˜±±Ag§ÐÜÜxΜ‰ÞÓ§»ÁÏÄ mm]'~&t#„ zhèÄC‡Vk:( |ø7À32®——?f0èRÝ :Fûßÿ] CZê«Î‹‰]»òöî-DQ5ZBÂì>…y(§¸¸Ôüü*‘HL£Ñöï_æ©éˆ€ %%ß½;Oê¦q„B4„ˆØØ©»vEÁ;lƒ ZZ:bcÜ»· Ê·D ½¦æ×AkÑ"_±XŒ26Ö q×t8@µ oËy†@ÇÓT(€ÒùóÕ[·æuu‰ð;Ótv Óӯ̚妞À0ccc+«þþ<ÇãóùJ‰g0 —]4¦¡¡AÓ±è<+++cã~Íi¡º¬>qâz¯—õ„BQ}=/,ì»Ý»#¦M­Š0%ÉÌy­¾¾zõªººZ! AäåÝ?}únWW·‚]22JU”´¡C‡ö¿¾644477+%žÁÌÝÝŒÃ1´°è‚ÿâþ›0aB?ë«ê²ú÷ßo)t%ˆ ˆO?Í^¼x|Hˆ“*"²$3‡biæÌ™j È´gE»H$nkë”m§ÓéêüVÆŸþ©¬E :ÔÝ®öK@A£Yi:WTT¤”å¨(«á­µ¤2®Óè$==:̤Ðé´øø™šŽð¸¿ €n @{@}”ê+ |P_åƒú (ŸÎ××ǯ^ÝûO™×ÔÔÐh4É’ÝoܸÁ`0ÒÒÒÈö¬¬,ƒªª*UÄ,…&ÁÉÉiåÊ•=mŽ ˆåË—›™):u6F«©©QF¤ºAöXKtJ8Þtߪ_Û¢`2···'&&zzzš™™Mž>>8J Ç¿uë–zbÓ9òŽuÏp&èô¾U$™_½zåççwíڵݻw—••mÚ´éØ±c³gωD}Ûo8u%)w£$ÿ‹³þd5ÙW¥;SòTÌf³O:¥¢ÉêÛÎQBBSS‡Ã!tJXXXGGåS÷îÝ“Ú@ÙF²{WW×ĉãââ‚X»v­¯¯¯@ PYÔ¯AÝ»wüS,lݺUÞë)·Kñå+ÑÍ›7oÞ¼©=Ë‘Bî(Eö΄7Ý·ê×C„Š$sBBÂŒ3º»»É^mmmNNNÉÉɲ«èuo¨.µdƒQçÚ9NSSS?¢=Y-ÛWÈu!„âãã­­­Õ°Þ7¥Ò¤•Êœ7þüšíàà€¦øäÉ“nnnííí!¡PøÉ'Ÿ 6ŒÉd~òÉ'B¡f?þüÈ‘#‹ŠŠ¶mÛ6räÈ¡C‡®\¹’üp&Û !”““ãááadd4f̘£G"„º»»)»?þÜÔÔÔØØXr|€|üÖ[o!„ìì윲;BÈÀÀ 55õðáûvíJIIIMMÕ××—¤7MF[»vm^^ž¼åHn—‚Ëhmm500øç?ÿYWWwìØ1„гgψ 寯FÊŽ¡˜˜˜ÖÖÖƒ"„/^ÜÚÚúã?âýLP¾Ï?ÿ<,,Œ ˆ¬¬,sss‚ JKKŒŒÚÛÛ ‚ˆ ¾ÿ~eeåĉÉCƒ#)//G‰Åb²¸âhIf|onn–Ú±üñ‡µµuöB¨¼¼üÕëä,y ¦ÈöRæƒê[Ÿ_Õ™ÕRŸ#e““è-¥åp$ÓG[]]mllœ’’"/ÉÇ}ø?¢Ly•B’ê҆ɜ¾ÔWçèèèáá!¹¾qãÆ‘£^^^8¾ÊÊJ‚ ÆŽ›‘‘Ÿ½uëùX¶—ËÕ××ß³gNjů^½‰DòºGFFr¹\¢¯õ•쎉Å∈==½åË—Kn¯J7è­¾Ê[;n‘·LI¡¢¢"‚ D"^—düAœ:uÊÅÅ…²‘葚ë«lâ¹»»§¦¦’/øé§Ÿz>uuuݾ}»­­M$]¸pÜó=$Þ!ò:"„ÊÊÊ‚Rñ d_ii©™™™@ øè£6oÞ¬¯¯Ïãñ¾þúëyóæá¾zzzäÞÈÈÈ:4øqbb"BèîÝ»ä¶+’̸¾’%™tåÊ[[Û>ì·Þ²Ë,ÊSp{)óAu‰­ÎúªÎ¬–Ú™²ÉIô–ÒòN8’éGðý÷ß›››?~üX‘úú¦ÿG”I"ïl,IuiCô|!dii÷矮[·Žl¬­­µ··Ç7†††>|ø·7!ôèÑ#<΃?~üÂ… åõ²²²âp8W¯^utt üý÷ßét:e÷¶¶6¡P(;y ÑëÔMQv?~üxQQQaa!›ÍÎÊÊRϦQÆvïÞ=ggçž×Ž)¸ÌáÇ#„¤ž"Ã7n\]]]ZB6ñL™x_~ù%“ÉÌÌÌlllÌÏÏïõJÇ£Ñhùùùø; ¡²²2ÉL7~EÙ‘ Ú·ReAiiifff¡¡¡A˜™™¹»»“[ºlÙ²àààTUU¹»»“‡F6ªmÛ¶¹¹¹ñù|Å“ùåË—cÇŽ :{öìÝ»w7oÞŒb2™]]]oºß‰Ô•$ï`ÉK0E¶—¼¬«žÄVÛø°š³ZjgR&gÏ)My‘\!sÁkß¾}¸žrNÔ½®”2TÊ ygcõ¤ Ñÿë¯?üðƒ§§'¾ÝÿôéÓöööxؽµµuõêÕVVV666qqqííí’ÛßÙÙ™0|øp ‹˜˜‡Ûe{qêÔ)gggƒqãÆeeeQvøziçΖ––ÎÎÎx4Œ ¡P8}út333B&产¦¦J^Í*..¦Óél6[Õ›F¼>H2bÄˆØØXÉ#ÔóÚ{XfùŠ—pðàÁQ£FÙÚÚ~ðÁ|>Ÿ²±çdPg}¥L<@ðùçŸ=ÚÌÌlêÔ©'NœèùLDÄ·ß~kmm=bĈ½{÷ÆÄÄXYYIf‚¼J&Û‘Éd œ(Ó ¥¥…Á`à;ÚÛÛ Éq¹Ü+VØØØØÛÛoܸ‘<4²Qñù|77·Í›7+žÌA´µµ}üñÇ'N422rvvþôÓO—,YòFûÜ|Ê·ì”K^‚õ¼½’ÿŽîpe%¶Ú꫚³ZjgR&g¯)-u‘=KÕW±XJ†*{¢Vd¥=ŸÉÇòÎÆêIB&sh„Ä?ɳgÏnݺ“÷x555®®®ÄëçGÊÆžá‘«þÏ ­¬åôaBH ”••á/o¨ŽŽŽ²»¨¨h„ L&³?Á@Vë e¥ ’Éÿý&@?¨º¸0A}ŒÌÍÍãããi@YÔ`Ø T—60> úNÛÆ‡P ­:Ƈ•ƒú (ÔW@ù ¾ÊõP>†lSCCƒú㺨³³ÓÈÈHY‹‚Ä dõ GQ_«««ÕÐQʪ¯xêP¥, -Y=ÈÑàg·¥ƒë¯€òA}”ê+ |P_åû"§ÿêç+îIEND®B`‚XQilla-2.3.0/docs/simple-api/classATGDayOrDerived.html0000644000151400015140000003723511653571064017426 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATGDayOrDerived Class Reference

#include <ATGDayOrDerived.hpp>

Inheritance diagram for ATGDayOrDerived:

List of all members.

Public Types

typedef RefCountPointer< const
ATGDayOrDerived
Ptr

Public Member Functions

virtual const XMLCh * getPrimitiveTypeName () const =0
virtual const XMLCh * getTypeURI () const =0
virtual const XMLCh * getTypeName () const =0
virtual const XMLCh * asString (const DynamicContext *context) const =0
virtual bool equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
virtual int compare (const ATGDayOrDerived::Ptr &other, const DynamicContext *context) const =0
 Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.
virtual bool hasTimezone () const =0
 Returns true if a timezone is defined for this.
virtual ATGDayOrDerived::Ptr setTimezone (const Timezone::Ptr &timezone, const DynamicContext *context) const =0
 Sets the timezone to the given timezone.
virtual
AnyAtomicType::AtomicObjectType 
getPrimitiveTypeIndex () const =0

Member Typedef Documentation


Member Function Documentation

virtual const XMLCh* ATGDayOrDerived::asString ( const DynamicContext context) const [pure virtual]

Implements AnyAtomicType.

virtual int ATGDayOrDerived::compare ( const ATGDayOrDerived::Ptr other,
const DynamicContext context 
) const [pure virtual]

Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.

virtual bool ATGDayOrDerived::equals ( const AnyAtomicType::Ptr target,
const DynamicContext context 
) const [pure virtual]

Implements AnyAtomicType.

virtual AnyAtomicType::AtomicObjectType ATGDayOrDerived::getPrimitiveTypeIndex ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATGDayOrDerived::getPrimitiveTypeName ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATGDayOrDerived::getTypeName ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATGDayOrDerived::getTypeURI ( ) const [pure virtual]

Implements AnyAtomicType.

virtual bool ATGDayOrDerived::hasTimezone ( ) const [pure virtual]

Returns true if a timezone is defined for this.

False otherwise.

Implements DateOrTimeType.

virtual ATGDayOrDerived::Ptr ATGDayOrDerived::setTimezone ( const Timezone::Ptr timezone,
const DynamicContext context 
) const [pure virtual]

Sets the timezone to the given timezone.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/Sequence_8hpp__dep__incl.md50000644000151400015140000000004011653571063020065 000000000000009364d4af418b2ecb8f4dae8a9771a6d0XQilla-2.3.0/docs/simple-api/classSequenceBuilder__inherit__graph.md50000644000151400015140000000004011653571063022531 00000000000000d4a16503b9527c07b191e5a4d1708156XQilla-2.3.0/docs/simple-api/PlatformUtils_8hpp_source.html0000644000151400015140000010176111653571063020642 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

PlatformUtils.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: PlatformUtils.hpp 808072 2009-08-26 16:01:20Z amassari $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_PLATFORMUTILS_HPP)
00023 #define XERCESC_INCLUDE_GUARD_PLATFORMUTILS_HPP
00024 
00025 #include <xercesc/util/XercesDefs.hpp>
00026 #include <xercesc/util/XMLException.hpp>
00027 #include <xercesc/util/PanicHandler.hpp>
00028 
00029 #include <xercesc/util/XMLFileMgr.hpp>
00030 #include <xercesc/util/XMLMutexMgr.hpp>
00031 
00032 XERCES_CPP_NAMESPACE_BEGIN
00033 
00034 class XMLMsgLoader;
00035 class XMLNetAccessor;
00036 class XMLTransService;
00037 class MemoryManager;
00038 class XMLMutex;
00039 
00040 //
00041 //  For internal use only
00042 //
00043 //  This class provides a simple abstract API via which lazily evaluated
00044 //  data can be cleaned up.
00045 //
00046 class XMLUTIL_EXPORT XMLDeleter
00047 {
00048 public :
00049     virtual ~XMLDeleter();
00050 
00051 protected :
00052     XMLDeleter();
00053 
00054 private :
00055     XMLDeleter(const XMLDeleter&);
00056     XMLDeleter& operator=(const XMLDeleter&);
00057 };
00058 
00059 
00068 class XMLUTIL_EXPORT XMLPlatformUtils
00069 {
00070 public :
00071 
00074 
00087     static XMLNetAccessor*      fgNetAccessor;
00088 
00099     static XMLTransService*     fgTransService;
00100 #ifdef OS390
00101     static XMLTransService*     fgTransService2;
00102 #endif
00103 
00108     static PanicHandler*        fgUserPanicHandler;
00109 
00114     static PanicHandler*        fgDefaultPanicHandler;
00115 
00121     static MemoryManager*       fgMemoryManager;
00122 
00123     static XMLFileMgr*          fgFileMgr;
00124     static XMLMutexMgr*         fgMutexMgr;
00125 
00132     static XMLMutex*            fgAtomicMutex;
00133 
00134     static bool                 fgXMLChBigEndian;
00135     static bool                 fgSSE2ok;
00137 
00138 
00141 
00173     static void Initialize(const char*          const locale = XMLUni::fgXercescDefaultLocale
00174                          , const char*          const nlsHome = 0
00175                          ,       PanicHandler*  const panicHandler = 0
00176                          ,       MemoryManager* const memoryManager = 0);
00177 
00227     static void Initialize(XMLSize_t initialDOMHeapAllocSize
00228                          , XMLSize_t maxDOMHeapAllocSize
00229                          , XMLSize_t maxDOMSubAllocationSize
00230                          , const char*          const locale = XMLUni::fgXercescDefaultLocale
00231                          , const char*          const nlsHome = 0
00232                          ,       PanicHandler*  const panicHandler = 0
00233                          ,       MemoryManager* const memoryManager = 0);
00234 
00241     static void Terminate();
00242 
00259     static void panic
00260     (
00261         const   PanicHandler::PanicReasons    reason
00262     );
00263 
00265 
00268 
00273     static XMLFileMgr* makeFileMgr(MemoryManager* const manager);
00274 
00288     static XMLFilePos curFilePos(FileHandle theFile
00289         , MemoryManager* const manager  = XMLPlatformUtils::fgMemoryManager);
00290 
00301     static void closeFile(FileHandle theFile
00302         , MemoryManager* const manager  = XMLPlatformUtils::fgMemoryManager);
00303 
00314     static XMLFilePos fileSize(FileHandle theFile
00315         , MemoryManager* const manager  = XMLPlatformUtils::fgMemoryManager);
00316 
00327     static FileHandle openFile(const char* const fileName
00328         , MemoryManager* const manager  = XMLPlatformUtils::fgMemoryManager);
00329 
00340     static FileHandle openFile(const XMLCh* const fileName
00341         , MemoryManager* const manager  = XMLPlatformUtils::fgMemoryManager);
00342 
00353     static FileHandle openFileToWrite(const char* const fileName
00354         , MemoryManager* const manager  = XMLPlatformUtils::fgMemoryManager);
00355 
00366     static FileHandle openFileToWrite(const XMLCh* const fileName
00367         , MemoryManager* const manager  = XMLPlatformUtils::fgMemoryManager);
00368 
00379     static FileHandle openStdInHandle(MemoryManager* const manager  = XMLPlatformUtils::fgMemoryManager);
00380 
00397     static XMLSize_t readFileBuffer
00398     (
00399                 FileHandle      theFile
00400         , const XMLSize_t       toRead
00401         ,       XMLByte* const  toFill
00402         , MemoryManager* const manager  = XMLPlatformUtils::fgMemoryManager
00403     );
00404 
00419     static void writeBufferToFile
00420     (
00421           FileHandle     const  theFile
00422         , XMLSize_t             toWrite
00423         , const XMLByte* const  toFlush
00424         , MemoryManager* const manager  = XMLPlatformUtils::fgMemoryManager
00425     );
00426 
00436     static void resetFile(FileHandle theFile
00437         , MemoryManager* const manager  = XMLPlatformUtils::fgMemoryManager);
00438 
00440 
00441 
00465     static XMLCh* getFullPath
00466     (
00467         const XMLCh* const srcPath
00468         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
00469     );
00470 
00484     static XMLCh* getCurrentDirectory
00485     (
00486         MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
00487     );
00488 
00498     static inline bool isAnySlash(XMLCh c);
00499 
00509     static void   removeDotSlash(XMLCh* const srcPath
00510         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
00511 
00522     static void   removeDotDotSlash(XMLCh* const srcPath
00523         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
00524 
00538     static bool isRelative(const XMLCh* const toCheck
00539         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
00540         );
00541 
00561     static XMLCh* weavePaths
00562     (
00563         const   XMLCh* const    basePath
00564         , const XMLCh* const    relativePath
00565         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
00566     );
00568 
00571 
00581     static unsigned long getCurrentMillis();
00583 
00586 
00594     static XMLMutexMgr* makeMutexMgr(MemoryManager* const manager);
00595 
00604     static void closeMutex(void* const mtxHandle, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
00605 
00613     static void lockMutex(void* const mtxHandle);
00614 
00624     static void* makeMutex(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
00625 
00638     static void unlockMutex(void* const mtxHandle);
00639 
00641 
00642 
00645 
00653     static XMLMsgLoader* loadMsgSet(const XMLCh* const msgDomain);
00654 
00656 
00657 
00671     static void recognizeNEL(bool state
00672         , MemoryManager* const manager  = XMLPlatformUtils::fgMemoryManager);
00673 
00677     static bool isNELRecognized();
00679 
00691     static void strictIANAEncoding(const bool state);
00692 
00697     static bool isStrictIANAEncoding();
00699 
00707     static inline XMLSize_t alignPointerForNewBlockAllocation(XMLSize_t ptrSize);
00708 
00709 private :
00710     // -----------------------------------------------------------------------
00711     //  Unimplemented constructors and operators
00712     // -----------------------------------------------------------------------
00713     XMLPlatformUtils();
00714 
00717 
00723     static XMLMsgLoader* loadAMsgSet(const XMLCh* const msgDomain);
00724 
00734     static XMLNetAccessor* makeNetAccessor();
00735 
00746     static XMLTransService* makeTransService();
00747 
00755     static int  searchSlashDotDotSlash(XMLCh* const srcPath);
00756 
00758 
00761 
00768     static bool fgMemMgrAdopted;
00769 
00771 };
00772 
00773 
00774 MakeXMLException(XMLPlatformUtilsException, XMLUTIL_EXPORT)
00775 
00776 
00777 // ---------------------------------------------------------------------------
00778 //  XMLPlatformUtils: alignPointerForNewBlockAllocation
00779 // ---------------------------------------------------------------------------
00780 //  Calculate alignment required by platform for a new
00781 //  block allocation. We use this in our custom allocators
00782 //  to ensure that returned blocks are properly aligned.
00783 //  Note that, although this will take a pointer and return the position
00784 //  at which it should be placed for correct alignment, in our code
00785 //  we normally use XMLSize_t parameters to discover what the alignment
00786 //  of header blocks should be.  Thus, if this is to be
00787 //  used for the former purpose, to make compilers happy
00788 //  some casting will be necessary - neilg.
00789 //
00790 //  Note: XML_PLATFORM_NEW_BLOCK_ALIGNMENT may be specified on a
00791 //        per-architecture basis to dictate the alignment requirements
00792 //        of the architecture. In the absense of this specification,
00793 //        this routine guesses at the correct alignment value.
00794 //
00795 //        A XML_PLATFORM_NEW_BLOCK_ALIGNMENT value of zero is illegal.
00796 //        If a platform requires absolutely no alignment, a value
00797 //        of 1 should be specified ("align pointers on 1 byte boundaries").
00798 //
00799 inline XMLSize_t
00800 XMLPlatformUtils::alignPointerForNewBlockAllocation(XMLSize_t ptrSize)
00801 {
00802     //    Macro XML_PLATFORM_NEW_BLOCK_ALIGNMENT may be defined
00803     //    as needed to dictate alignment requirements on a
00804     //    per-architecture basis. In the absense of that we
00805     //    take an educated guess.
00806 #ifdef XML_PLATFORM_NEW_BLOCK_ALIGNMENT
00807     static const XMLSize_t alignment = XML_PLATFORM_NEW_BLOCK_ALIGNMENT;
00808 #else
00809     static const XMLSize_t alignment = (sizeof(void*) >= sizeof(double)) ? sizeof(void*) : sizeof(double);
00810 #endif
00811 
00812     //    Calculate current alignment of pointer
00813     XMLSize_t current = ptrSize % alignment;
00814 
00815     //    Adjust pointer alignment as needed
00816     return (current == 0)
00817          ? ptrSize
00818          : (ptrSize + alignment - current);
00819 }
00820 
00821 
00822 
00823 // ---------------------------------------------------------------------------
00824 //  XMLDeleter: Public Destructor
00825 // ---------------------------------------------------------------------------
00826 inline XMLDeleter::~XMLDeleter()
00827 {
00828 }
00829 
00830 // ---------------------------------------------------------------------------
00831 //  XMLDeleter: Hidden constructors and operators
00832 // ---------------------------------------------------------------------------
00833 inline XMLDeleter::XMLDeleter()
00834 {
00835 }
00836 
00837 XERCES_CPP_NAMESPACE_END
00838 
00839 #endif
XQilla-2.3.0/docs/simple-api/ATAnyURIOrDerived_8hpp__dep__incl.map0000644000151400015140000000041611653571064021555 00000000000000 XQilla-2.3.0/docs/simple-api/classATDecimalOrDerived-members.html0000644000151400015140000007601311653571063021564 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATDecimalOrDerived Member List

This is the complete list of members for ATDecimalOrDerived, including all inherited members.
_ref_countReferenceCounted [protected]
abs(const DynamicContext *context) const =0ATDecimalOrDerived [pure virtual]
acos(const DynamicContext *context) const =0ATDecimalOrDerived [pure virtual]
add(const Numeric::Ptr &other, const DynamicContext *context) const =0ATDecimalOrDerived [pure virtual]
ANY_SIMPLE_TYPE enum valueAnyAtomicType
ANY_URI enum valueAnyAtomicType
asDecimalString(const MAPM &value, int significantDigits, const StaticContext *context)Numeric [static]
asDecimalString(int significantDigits, const StaticContext *context) const Numeric [protected]
asDouble() const Numeric [virtual]
asDoubleString(State state, const MAPM &value, int significantDigits, const StaticContext *context)Numeric [static]
asDoubleString(int significantDigits, const StaticContext *context) const Numeric [protected]
asin(const DynamicContext *context) const =0ATDecimalOrDerived [pure virtual]
asInt() const Numeric [virtual]
asMAPM() const =0ATDecimalOrDerived [pure virtual]
asString(const DynamicContext *context) const =0ATDecimalOrDerived [pure virtual]
atan(const DynamicContext *context) const =0ATDecimalOrDerived [pure virtual]
AtomicObjectType enum nameAnyAtomicType
BASE_64_BINARY enum valueAnyAtomicType
BOOLEAN enum valueAnyAtomicType
castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const Numeric [protected, virtual]
castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
ceiling(const DynamicContext *context) const =0ATDecimalOrDerived [pure virtual]
checkDoubleLimits(Numeric::State &state, MAPM &value)Numeric [static]
checkFloatLimits(Numeric::State &state, MAPM &value)Numeric [static]
compare(const Numeric::Ptr &other, const DynamicContext *context) const Numeric [virtual]
cos(const DynamicContext *context) const =0ATDecimalOrDerived [pure virtual]
DATE enum valueAnyAtomicType
DATE_TIME enum valueAnyAtomicType
DAY_TIME_DURATION enum valueAnyAtomicType
DECIMAL enum valueAnyAtomicType
decrementRefCount() const ReferenceCounted [inline, virtual]
divide(const Numeric::Ptr &other, const DynamicContext *context) const =0ATDecimalOrDerived [pure virtual]
DOUBLE enum valueAnyAtomicType
DURATION enum valueAnyAtomicType
equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const Numeric [virtual]
exp(const DynamicContext *context) const =0ATDecimalOrDerived [pure virtual]
fgDT_ANYATOMICTYPEAnyAtomicType [static]
FLOAT enum valueAnyAtomicType
floor(const DynamicContext *context) const =0ATDecimalOrDerived [pure virtual]
G_DAY enum valueAnyAtomicType
G_MONTH enum valueAnyAtomicType
G_MONTH_DAY enum valueAnyAtomicType
G_YEAR enum valueAnyAtomicType
G_YEAR_MONTH enum valueAnyAtomicType
generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicType [virtual]
getInterface(const XMLCh *name) const =0Item [pure virtual]
getPrimitiveTypeIndex() const =0ATDecimalOrDerived [pure virtual]
getPrimitiveTypeName() const =0ATDecimalOrDerived [pure virtual]
getPrimitiveTypeURI() const AnyAtomicType [virtual]
getRefCount() const ReferenceCounted [inline]
getState() const =0ATDecimalOrDerived [pure virtual]
getTypeName() const =0ATDecimalOrDerived [pure virtual]
getTypeURI() const =0ATDecimalOrDerived [pure virtual]
greaterThan(const Numeric::Ptr &other, const DynamicContext *context) const Numeric [virtual]
gXQillaItem [static]
HEX_BINARY enum valueAnyAtomicType
incrementRefCount() const ReferenceCounted [inline]
INF enum valueNumeric
INF_stringNumeric [static]
invert(const DynamicContext *context) const =0ATDecimalOrDerived [pure virtual]
isAtomicValue() const AnyAtomicType [virtual]
isDateOrTimeTypeValue() const AnyAtomicType [virtual]
isFunction() const AnyAtomicType [virtual]
isInfinite() const ATDecimalOrDerived [inline, virtual]
isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicType [virtual]
isInteger() const Numeric [virtual]
isNaN() const ATDecimalOrDerived [inline, virtual]
isNegative() const =0ATDecimalOrDerived [pure virtual]
isNode() const AnyAtomicType [virtual]
isNumericValue() const Numeric [inline, virtual]
isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
isPositive() const =0ATDecimalOrDerived [pure virtual]
isZero() const =0ATDecimalOrDerived [pure virtual]
Item()Item [inline, protected]
lessThan(const Numeric::Ptr &other, const DynamicContext *context) const Numeric [virtual]
log(const DynamicContext *context) const =0ATDecimalOrDerived [pure virtual]
mod(const Numeric::Ptr &other, const DynamicContext *context) const =0ATDecimalOrDerived [pure virtual]
multiply(const Numeric::Ptr &other, const DynamicContext *context) const =0ATDecimalOrDerived [pure virtual]
NaN enum valueNumeric
NaN_stringNumeric [static]
NAN_stringNumeric [static]
NEG_INF enum valueNumeric
NEG_NUM enum valueNumeric
NegINF_stringNumeric [static]
NegZero_stringNumeric [static]
NOTATION enum valueAnyAtomicType
NUM enum valueNumeric
NumAtomicObjectTypes enum valueAnyAtomicType
PosZero_stringNumeric [static]
power(const Numeric::Ptr &other, const DynamicContext *context) const =0Numeric [pure virtual]
promoteTypeIfApplicable(AnyAtomicType::AtomicObjectType typeIndex, const DynamicContext *context) const =0ATDecimalOrDerived [pure virtual]
Ptr typedefATDecimalOrDerived
QNAME enum valueAnyAtomicType
ReferenceCounted()ReferenceCounted [inline]
round(const DynamicContext *context) const =0ATDecimalOrDerived [pure virtual]
roundHalfToEven(const Numeric::Ptr &precision, const DynamicContext *context) const =0ATDecimalOrDerived [pure virtual]
sin(const DynamicContext *context) const =0ATDecimalOrDerived [pure virtual]
sqrt(const DynamicContext *context) const =0ATDecimalOrDerived [pure virtual]
State enum nameNumeric
STRING enum valueAnyAtomicType
subtract(const Numeric::Ptr &other, const DynamicContext *context) const =0ATDecimalOrDerived [pure virtual]
tan(const DynamicContext *context) const =0ATDecimalOrDerived [pure virtual]
TIME enum valueAnyAtomicType
treatAsCodepoint(const DynamicContext *context) const =0ATDecimalOrDerived [pure virtual]
typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicType [virtual]
UNTYPED_ATOMIC enum valueAnyAtomicType
YEAR_MONTH_DURATION enum valueAnyAtomicType
~ReferenceCounted()ReferenceCounted [inline, virtual]
XQilla-2.3.0/docs/simple-api/URIResolver_8hpp__dep__incl.map0000644000151400015140000000023011653571064020570 00000000000000 XQilla-2.3.0/docs/simple-api/LocalFileFormatTarget_8hpp_source.html0000644000151400015140000002620411653571063022205 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

LocalFileFormatTarget.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: LocalFileFormatTarget.hpp 882540 2009-11-20 13:02:07Z borisk $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_LOCALFILEFORMATTARGET_HPP)
00023 #define XERCESC_INCLUDE_GUARD_LOCALFILEFORMATTARGET_HPP
00024 
00025 #include <xercesc/framework/XMLFormatter.hpp>
00026 
00027 XERCES_CPP_NAMESPACE_BEGIN
00028 
00029 class XMLPARSER_EXPORT LocalFileFormatTarget : public XMLFormatTarget {
00030 public:
00031 
00034     LocalFileFormatTarget
00035     (
00036         const XMLCh* const
00037         , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
00038     );
00039 
00040     LocalFileFormatTarget
00041     (
00042         const char* const
00043         , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
00044     );
00045 
00046     ~LocalFileFormatTarget();
00048 
00049     // -----------------------------------------------------------------------
00050     //  Implementations of the format target interface
00051     // -----------------------------------------------------------------------
00052     virtual void writeChars(const XMLByte* const toWrite
00053                           , const XMLSize_t      count
00054                           , XMLFormatter* const  formatter);
00055 
00056     virtual void flush();
00057 
00058 private:
00059     // -----------------------------------------------------------------------
00060     //  Unimplemented methods.
00061     // -----------------------------------------------------------------------
00062     LocalFileFormatTarget(const LocalFileFormatTarget&);
00063     LocalFileFormatTarget& operator=(const LocalFileFormatTarget&);
00064 
00065     // -----------------------------------------------------------------------
00066     //  Private helpers
00067     // -----------------------------------------------------------------------
00068     void insureCapacity(const XMLSize_t extraNeeded);
00069 
00070     // -----------------------------------------------------------------------
00071     //  Private data members
00072     //
00073     //  fSource
00074     //      The source file that we represent. The FileHandle type is defined
00075     //      per platform.
00076     //
00077     //  fDataBuf
00078     //      The pointer to the buffer data. Its always
00079     //      one larger than fCapacity, to leave room for the null terminator.
00080     //
00081     //  fIndex
00082     //      The current index into the buffer, as characters are appended
00083     //      to it. If its zero, then the buffer is empty.
00084     //
00085     //  fCapacity
00086     //      The current capacity of the buffer. Its actually always one
00087     //      larger, to leave room for the null terminator.
00088     // -----------------------------------------------------------------------
00089     FileHandle      fSource;
00090     XMLByte*        fDataBuf;
00091     XMLSize_t       fIndex;
00092     XMLSize_t       fCapacity;
00093     MemoryManager*  fMemoryManager;
00094 };
00095 
00096 
00097 XERCES_CPP_NAMESPACE_END
00098 
00099 #endif
XQilla-2.3.0/docs/simple-api/RegexGroupStore_8hpp_source.html0000644000151400015140000001226311653571063021137 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

RegexGroupStore.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _REGEXGROUPSTORE_HPP
00021 #define _REGEXGROUPSTORE_HPP
00022 
00023 #include <xqilla/framework/XQillaExport.hpp>
00024 
00025 #include <xercesc/util/XercesDefs.hpp>
00026 
00027 class Result;
00028 
00030 class XQILLA_API RegexGroupStore
00031 {
00032 public:
00034   virtual ~RegexGroupStore() {};
00035 
00037   virtual const XMLCh *getGroup(int index) const = 0;
00038 };
00039 
00040 #endif
XQilla-2.3.0/docs/simple-api/classStaticType__inherit__graph.png0000644000151400015140000000674011653571064021660 00000000000000‰PNG  IHDRuüýõ†bKGDÿÿÿ ½§“ •IDATxœí{PSÇ€7’^Ã# ˆ Lá"Ñvì¨ãð*J‡NE¯ÚÒ"‚ËCÚ¡ˆÂH[í0ж` Peì0D^¶0–4#Ul…kRŠÞXìåa`Є ‘„¼öþqnÏ¢ÖàáÄýþÚìÙÝüv¿ìžÍIrBIJǂèOòD'r€<‘ªþƒÈÈH¢â@̧°°0$$K?â‰ÇãmÙ²ÅÃȨÐØØ˜žžŽ?¤>pà@BBÂó ± Eÿ!:?‘ä‰ Oäy"È907OT*µ±±Ïimm¥ÑhB¡@¡P|}} .=GGGS(”;wî<ïXŸ ¨ ¡¡’œO?ý”ÅbI¥Ráôô´››[ii)v@¥RðÂ‰ÄÆÆ ‰ˆ w \˜Û|:::-VËÏÏÏÑѱ¬¬ììÙ³k×®]¹reaa!ÖˆT*ݽ{7“É\½zuNNŽB¡ÐïþË/¿œ––†•œ™™±¶¶îïïÚùôÔëÞ;ï¼³{÷ —¾¾>,óóÏ?‹‹¯¼òJAAhtttWWWqqq@@€@  …›7oÎÍÍ]¬–\.§Óé•••b±¸¦¦†J¥ÊåòcÇŽ-X}zzšÃáÌOcðïà­[·X,¶ôMOOÛØØÜ¿÷4?$¬Vbb¢L&«®®$$$Èd²ªª*Àýû÷!„ÉÉÉáááüñ‡@ X¿~}qq±~÷ÛÛÛ™L¦Z­†Ö××௒%ô$•JÝÝÝÙlvqq1žéçç'‹±tggçÆ±@„ð¥—^jjjÂŽþþûïxz~-‰Dbeeuüøq©TªÓéfff´ZíbÕ ÓéÞzë-KKË””ƒŠD¢}ûö}üñÇÂúúúÈÈH<Á°£Ø P©Ti‘H¤R©,--ûí7¬VSS“~÷5 ‹Åº|ù2„ð7Þøì³Ï?|vOÂ#GŽXZZNNNâ9 C-µ³³ÃÅÖ ƒ¡¿ø©!¼råJ||¼­­mPPP{{»‘êF8wîœÝO?ýÄ`0ZZZô;(‰zzz°¥oÇŽUUUPÏÓ‚!½]Æüôèè(@¡P`™€Á`èwB˜••µoß¾©©)6::ú$]xVO###ÎÎί¿þºþKÕÝÝ^*• éŸ0¼½½/^¼ˆ¥ðµh~­ÙÙY>Ÿ!œ››«««³´´|ðàÁbÕc||ÜÁÁáÌ™3²²2lu‚¬F£qqqáóù¶¶¶Ø« ýù!ÁÇyÂæÓàà –ÙÜܼnÝ:ƒóeww·››ÛéÓ§_{í5ãÁã<“'­VQRR"‘HX,V[[–ŸÿçŸÞ¼ysóæÍû÷ï×ôСCl6[( …ÂmÛ¶¥§§/VK¡P0 .—;55uæÌƒ¡P(«¾àùI§ÓÅÄÄ„„„hµZ¡J¥b³Ù‰‰‰£œ••åïïf??¤Ý¤“’’ÂÃLJ‡…Ba@@@QQ‘'FãìììââR[[ûdšžÍSEEņ °éÜÜÜìêêŠíýd2Ù{ï½çààÀd2÷ìÙóðáCý@•Jenn®›››]bb"¾a›_ BØÐаnÝ:æçç×ÚÚj¤ú‚û½ºº::~ûöm<æëׯ[XXp¹\ý‘íééœ>}Ú`Ä 鱞$Ijj*“Étuu=pà¾ßÓº½{÷Z[[Ëd²ÇZÐ…¾Ï]ž|òÉ'IIIO^ÞÀ…áç„“£T*ïÝ»÷Í7ß|÷Ýw»3¼±ÜèëëÛ´iSZZZhhèßnͧ%'$$D"‘‘ä‰ Oäy"È90CO}}ÃD‡`z ÷奥¥‡PLÅðð:w÷QMEt ¦äO»ví"*S¡PP k•Šåâ2Ct,ÏÄ®]»ô¿èOæõ»ÏcÇ:ÊËôôd^½ZHt,¦ÄÜÎO¿þóŸCC÷ˆŽÅ”˜•§‘±1)ÀÊÊòÂ…D‡cJÌÊSKK?•j P«µ¿èt泤›'­VÇåþ¢Ñh±‡SS3ׯ›ÏÝ|<]½zG*ÅZYY67÷i1OMMýTêÿ»£Vk[[ûÕj-!™3ñ¤RiÚÚþ¥Ñèô3e²9>ÿßD…dZÌÄSW×B1gI¥RššÌd×g&žššnXXöE£Ñµ·ßœ5‡ HæàI.ŸûñÇA­V7ÿZ­åñŸH&ÇCCC:´-/zzz>lòfÑù‰ Oäy"È9@žÈòD»‹B¡¨««ãóù‰ÄÉÉ)<<<99™F£=U#ããã)))ÝÝÝ íêê*))™ŸÏáp|||þNÐÄA˜§“'ONNN9rÄÉÉiddääÉ“333ÙÙÙb±xïÞ½­­­‹UÔ/°bÅŠÄÄÄÅJnÛ¶íÂ… X•ýû÷ciÀÊ•+MÝ›%‡°uïÊ•+ééé¾¾¾öööl6;;;»·· Óéd2™‘ŠúìììŒ\¡¡Óé«V­Zµj•½½=`Õ_P©ä»«ažlllZZZðg³Ù €¬¬,ÀÎ;±ü«W¯¦§§oß¾=..îüùóÆÇÇÃÂÂZ­¶¶¶öí·ßÞ±cGYY™\.7òÔ_|ñ–V(Û·o‰DXS½½½©©©±±±jµ Ñh*++cccccc+++5šEoô·¤æ)//¯¿¿?>>>//¯¡¡arrËÿꫯMMM€ÙÙÙ¢¢"__ßúúúÌÌL‡3==­_‡Ëåòùü²²²òòòÑÑÑúúz#OÒÛÛ«Õj½½½®®®øéª¥¥¥¬¬ìèÑ£}}}ØË‚ËåŠÅ⪪ª/¿ü²¿¿¿¶¶ÖôcñæiÓ¦M 'Nœ ¼téRRRÒåË— ÊÐh´šššììl&“éìì xøðá‚­ýðÃiiiÞÞÞ^^^ 0òÔëׯ§R©Àãñ¢¢¢( v(33ÓÝÝÝßßÿƒ>èììttt|øá‡ÎÎÎÞÞÞׯsž˜•Z©TþüóÏ¡¡¡þþþþþþ©©©uuu•••áááG¥Ž?~\¡PøúúiprrÒÝÝK{zzzzz)laaÄçó½½½oܸ‘““ƒÂY³fÍÔÔ`bb"../`kkû”}5 Äx‚–––®Y³[p(Ê«¯¾zñâEƒbsssÅÅÅÅÅÅ[·nU«Õ‹5Èd2'&&¼¼¼wîܹvíZJJŠ‘BCCKKK×®]èää„çy{{FGG™L&ÀÎή¼¼|õêÕ¹\þìÿ„û÷ fݳ¶¶ŽŠŠ:|øðµk×Äbñààà×_­?™ @­Vk4*•ªR©°Ãìì¬~œ¨¨¨êêê»wïÞ½{÷ĉøÙn1Øl¶V«ýöÛo£¢¢ôóO:5>>~ëÖ­êêêÈÈH@PP‡Ã™œœÎÏÏoii1Å<5„íPóóóÏ;ÇápÆÇÇÂÂÂÞ}÷]‹Å Œ‹‹koo_±bEfffii©µµuRRRxxx~~>—ËÅ à­%''+•ʼ¼<¥R¹eË–ŒŒ ãÏnaa|éÒ¥àà`ýüˆˆˆœœ¥R‰½ï¼ÿþû§NJOO§P(ÁÁÁmy‰0ý}|¦¦¦–ÿç„ÕÕÕ……ÿûÛ5ã—6žìsB“ê‹x}O¥R‰ÅâŽŽŽ˜˜¢cyR^DOCCCÑÑÑ7nÄ3mmmß|óM£2ù® <;6lhkk3È´··ÿ裉çIxçAžÈòD'r€<‘ƒ%ÙïÝ»wïûï¿_Š–—?·oß^’vMþMh¿_¾0ù¨šÃÿ?½ ó9@žÈòD'rð_!ˆG¹=×IEND®B`‚XQilla-2.3.0/docs/simple-api/XQilla_8hpp.html0000644000151400015140000001037011653571064015643 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

XQilla.hpp File Reference

#include <xqilla/framework/XQillaExport.hpp>
#include <xercesc/framework/MemoryManager.hpp>
#include <xercesc/util/PlatformUtils.hpp>
#include <xercesc/util/XMemory.hpp>
Include dependency graph for XQilla.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  XQilla
 Provides factory methods for creating XQQuery and DynamicContext objects. More...

Namespaces

namespace  xercesc
namespace  CompileDelayedModule

Functions

void CompileDelayedModule::compile (const XMLCh *queryFile)
XQilla-2.3.0/docs/simple-api/classAutoDeleteArray.html0000644000151400015140000002461411653571063017577 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

AutoDeleteArray< TYPE > Class Template Reference

#include <XPath2MemoryManager.hpp>

List of all members.

Public Member Functions

 AutoDeleteArray (TYPE *p)
 ~AutoDeleteArray ()
TYPE & operator* () const
TYPE * operator-> () const
 operator TYPE * () const
TYPE * get () const
TYPE * adopt ()
TYPE * swap (TYPE *p)
void set (TYPE *p)

template<class TYPE>
class AutoDeleteArray< TYPE >


Constructor & Destructor Documentation

template<class TYPE>
AutoDeleteArray< TYPE >::AutoDeleteArray ( TYPE *  p) [inline]
template<class TYPE>
AutoDeleteArray< TYPE >::~AutoDeleteArray ( ) [inline]

Member Function Documentation

template<class TYPE>
TYPE* AutoDeleteArray< TYPE >::adopt ( ) [inline]
template<class TYPE>
TYPE* AutoDeleteArray< TYPE >::get ( ) const [inline]
template<class TYPE>
AutoDeleteArray< TYPE >::operator TYPE * ( ) const [inline]
template<class TYPE>
TYPE& AutoDeleteArray< TYPE >::operator* ( ) const [inline]
template<class TYPE>
TYPE* AutoDeleteArray< TYPE >::operator-> ( ) const [inline]
template<class TYPE>
void AutoDeleteArray< TYPE >::set ( TYPE *  p) [inline]
template<class TYPE>
TYPE* AutoDeleteArray< TYPE >::swap ( TYPE *  p) [inline]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/ContextHelpers_8hpp__incl.map0000644000151400015140000000003511653571064020372 00000000000000 XQilla-2.3.0/docs/simple-api/LocalFileFormatTarget_8hpp__incl.map0000644000151400015140000000003511653571064021575 00000000000000 XQilla-2.3.0/docs/simple-api/XQillaConfiguration_8hpp__dep__incl.png0000644000151400015140000001422711653571064022353 00000000000000‰PNG  IHDR°Ã­c fbKGDÿÿÿ ½§“LIDATxœí{XWúÇOHŠAˆAî.•‹‚ZŠå¡­Oû¬Ë‚.<•j½ Ê–Ëv±Û(»]…mõ©–g‹¢ÜZTÀF´¸‚‚R×(¹,Ø"(+`B’ùý1ýe3¹qg¨y?œyçœw¾3ç›sÎL.P0 Cðÿè-˜_€!`€ @S·cÆ s©˜cJKKUÆ)êî2(ʪU«LLLfS@ÏŸ?ojjR×ïjG„ÐŽ;~÷»ßÍŠ(€<***þùÏªÛ k€ †€!`€ÀÔ ÑÒÒâîî^QQ!‹Ü¹sgÆ mmmøæÈÈHjjjHHˆ——WDDDNNŽD"Auuu¹¹¹©,h ¿¿?!!Á×××ËË+<<¼²²r²‚1 ;tè——×8¦ŸßÍÍ­««k¦ôLœ©ÂÞÞ> 99Y  „†††’’’mllBÃÃÃaaaMMM¡¡¡ééé»ví*--ŽŽ–J¥ ÃÏÏoRÇâóù{÷îÕÓÓ‹‹‹;}úôïÿûÏ?ÿ¼ªªjRIúûûËÊÊΜ9ƒš‚†qéééÙ¼y3^žüsƒ¦çã²{÷îÊÊÊÔÔÔýû÷§¥¥±X,___|×Ù³gŒŒ’’’tttBVVV®®®AAAW¯^õöö Ô¾ù曵k×FGGã›ÖÖÖ\.—Íf»ººN<Éèè(BÔfhh8Y ã"•Jù|>^žüsôÖ4-66¶¤¤$''§¤¤$66–FûÅa¥¥¥{öìÁÝ€³`Á__ß²²2ÍÃéÝ»w?øàOOÏmÛ¶åææâÁÛ·ooÛ¶M¾Z```LL ^GŽÙ¼yóŽ;N:%‰Bnnneeeï½÷Þ·ß~‹úÓŸþ„Úºu+’Ò1 +**úãÿøî»ïþõ¯½{÷.>VË*Ìk555;wîlhhPÖ©2ÿÄå)S]]íïïïíí““#ËyçÎÝ»w¿ÿþûÉÉÉccc*ƒî@LwQ¹bÅŠ;wfddìÙ³gùòåxP p¹\;;;…Êööö?ÖmxxøàÁƒöööÙÙÙéééx¶ßüæ7ò5.\({¬þ¯ý«··÷ôéÓG­ªª:þ<ÿþûïOž<–šš:88˜’’‚*((ÏóÝwß;wîÃ?ÌÍÍõ÷÷?yò¤æó½páBll¬¥¥¥²N•ù'.OùX÷îÝKOO‰‰ÉÈÈ=—/_>|øpbbâ½{÷d/•Á©1]C`ÖÑÑ¡££óäÉ…] E¹²ü˜¡ NÏÌÌÜ·o‹ÅÂû{hhꮜ G,ß¼y322ÒÜÜÜÆÆ&((Hö¶Í–-[ Æþð„ì‚*ŸŸîêêjhhèââ¤ù|CCC×®]»xñbe3.oçÎúúúï¼óBH昈ˆ+++GGǽ{÷ÊR© N颬¬¬¶¶6))éÖ­[wîÜÁƒ cÉ’%­­­ •[[[^è Ðh´ÎÎΘ˜˜ÐÐÐk×®áA&“ÙÑÑ!_óÇ åñxR©ÔÂÂ[ZZöööâeccc<§†#vwwË6„Ð+¯¼¢PAáM \¿J*™Ž<‹…”^ VVV2%²T*ƒScZ†èïïONNwrr <~ü¸ÌégÏž•J¥øæçŸ~ãÆÜÜ\www GGGããã}}}ÓÒÒþò—¿Èâo¿ý6›Í–ï›ÒÒR±X¬§§Çd2uttzzzðxww7~¡‘úAESSSùYLÞvøMr__Ÿ|}¼ÿÔéTf:òTVèììÄ OŸ>Å£.85¦n ÃŽ?nccóî»ï"„|||˜LæW_}…ï är¹QQQUUUæææ "‘¯¬Ž±±1±XL£ÑD"Ñ7ß|ƒF…„„ÔÕÕ%&&666¶µµ9s¦  `ïÞ½!æææöÕW_õôô<~ü833ÓÃÃcâg±eË–ÔÔÔêêj>ŸÿàÁƒ¬¬, …Â`0Bׯ_V^hЉ …ò5'%ïêÕ«ê¦'NœèêêúñÇ322dŸYQœS7Äõë׫««£¢¢p#Óh´èèè›7oÞ¾}!¤¯¯Ÿ––fooêÔ©òòò€€kkëÄÄD 9 FDDDBBž={ÌÌÌÜÝÝñ[ ##£´´´±±±¸¸¸ÈÈH‡sèС·Þz oõÑG‡‡‡GGG»ººúûûOü,¶lÙâãã“””´k×®o¿ý6<<ÜÐÐÐÐÐ0$$$%%¿˜ N33³W_}UánhRòŽ;600 Y°‡‡Çþýûcccßxã Y*•Á©¡é2qqq3ûy±XÜÜܼjÕªÌ9MîÞ½kbbbkk‹oÞ¾}ûܹséééäªRIWWW@@@yyù¸AÍàŸ‡P×ïsú^F›Wn@µµµ:t¨¥¥ett´©©é믿Ö<©½ôLëIåK€¯¯ïÈÈÈ?þñsss///ooo²E©fÑ¢EÊÚT§ÃœNÀ|`MÀü CÀ0@ B}}Âþ~áøõ´M·666L&sŽ‘‚@`…b0:É2ðx¼¶¶¶I•oÇŽ³&iÞñÃ& ÅÆ†N¶9ÂÅÅEÝ.µ#„öðða·»û¡7bÍÉ–C2°†@EEµ4šF-.®%[ ùh»!0 ;þžX,‹%çÏs`¼ÔvCTW·?þ˧¼~þ™ÿÃí¤Ê!m7ÄåË5ººT¼¬«K½té¹zHG« !K ~“à›cc’‚‚j±XJ®*rÑjC|ÿ}ó‹#ò‘/FîÜi!KÏ|@« qéÒ4á Ðh”‚‚ÈÒ3Ð^CŒŒŒ]¹R'Käƒb±ôÊ•º‘‘i}îWö¢¬¬idD¬»q£iîõÌ´×ùùÕTªŠoÂP©”ü|í5´Ôƒƒ#7o>TyC!KoÜhFç^Õ|@K QRÒ »ÛTflLRRR?—zæZúæ7Äçÿï†óÓO B‡m•E/^Àd."AÙhé÷2˜ÌEòý½h!dm=­¯É¾h锨 CÀ0@ CÀ0@ CÀ0@ CÀ0@ CÀ0@ CÀ0@ CÀ0@ CÀÂ/È´µµ•••‘¨†,.^ìBíØaI¶ððð°±±ùß6&›Í&O™P©†Tª!Ù*ÈÍfË{@ÅO iç¯Ni'Šâ3 †€!`€ †LÚ< Ñh/^”E étzCCÃŒ SKww÷®]»^yåƒáêêzéÒ¥ÉfÀ0, €Á` „Z[[•o½féç§P(­­­3¥g|”LaãqàÀ333‡aØÀÀ€……EBB¸­f„¾¾>“‡ÓØØxìØ1==½k×®M*Igg'B¨££ðÞÞÞO>ùdfE>zôˆÅbáåéçGµ´´Ì„.ÕÉLMÅ£££kÖ¬ Å0,<<ÜÅÅE$ͬPu|øá‡;wî”DEEyxxL*IKKËDNsÊÌlþ_!0 «®®¦Ñh‰‰‰zzz ²¸H$ŠŠŠ211YºtiTT”H$¯NYYÙ²eËÊËË<¸lÙ2ccãÝ»wãcŒÊV†½úê«zzzË—/?{ö,^ÓÌÌì?ÿù¼’ÁÁAüµŽaÇ d±X–––û÷ï …ø9ggg;880™Ì£GbÆb±B¦¦¦˜\çI¥ÒS§N9::¸¹¹ã=!» ²²üUVV;;;/\¸ÐÌÌìðáÃêòO\žrŸ00 TÐïææÖÒÒrÿþ}{{ûƒª jîJlFÖYYYzzz?ýô“,rÿþ}¼¼< Ãø|~PP“Éd±X¡¡¡CCCòWddd$**ÊÂÂÂÐÐÐÏÏO¶Pn…‹±µµ¥Óé………²Ãµ··oß¾ÝÂÂÂÀÀà7Þ(**’íâr¹»wïf±Xæææü±l?CH$’¤¤$[[[CCCOOÏÂÂÂ¥K—b–`dddkk‹ÏŒ˜Ò]å—_~¹dÉ’eË–¥¤¤øùù™˜˜Œ½óÎ; C¡òå© *èÏÈȰ¶¶666ŽŒŒ …*ƒš»›Ù»Œ—ŒâââÚÚZÙf^^ž³³3‰z4 ò9ÇÔ~(ÞËø…úúú€€€šššááa‡sàÀ½{÷’-Š´ô¿ò)3<<¼eË–ÞÞ^›ààà°°0²E©fñâÅÊÚT§‚üp¡ÍS†v‚`Ê4†€!`€!„†‡EÃÃ"²UÌ TÜv¦¥¥Í½r©«{A¡ ''-ý6Ÿ<* 1oï¿g%K¶`:yò2ÙBȇðíoí¤¯O°víA„(uuŸ-Y²ˆl9$kTRR¿§óÝwõdk!0b³ïcBc³ï“­…|´ÝOŸrå’­ˆd´ÝÅŵTê/J¥×’«‡t´Ý.T‰Å¼,c.T‘«‡t´Ú?ýô¬¹ù™\kn~öÓOÏÔ6дڅ…h4ª|„F£= KÏ|@{ aØÅ‹ÿ›/pÄbÉ… UÚülF{ Q[û´«‹§ïêâÕÕ={=óí5ÄåË5 óF½|¹fîõÌ´Ô‰4/Oq¾À‹%yyÕ‰tîUÍ´ÔN7L£QétšÂFår‡îÝk#[#9hé§®i4O?Ý$Û¼r¥!´iÓkòH5€w;B(,ì B(55l!䣥¯@`€ †€!`€ †€!`€ †€!`€ †€!`€ †€!`€ †€!`€ †€!`€ †€!³ò 2*ÿ›ý|fáB„Pø#ÙB&ÇlôÝlýÆÔǼnݺYJܽ{7))i62Ï–!Þzë­;vÌRr`ö~ Ö0@ CÀùnˆÖÖVü©†raš ç 9…Bimmò±Ha¾ÂÈÈè“O>™Ï _2æ»!Œ92Ÿ¾dcˆ¢¢"KKK‡:þüŠ+†††¤Ré‰' Ö­[W^^޹†è+W®¬]»V__ßÜÜ\e7;99-X°ÀÆÆæÜ¹sˆ8æS(”¯¿þÚÑÑqéÒ¥GŽ9wîÜòåË 8 «YXX¸råJ“}ûöŽŽÊ'‹ŽŽ655511‰ŽŽSpýúu;;;&“yøðau9Ç=М‚Í!6›­¹Îž={Ÿ={fjjzïÞ= ÃRSSMLL º»»¯^½jee…jiiÁE*ø|>NîììÌÎÎF=þ\þ@OOïôéÓ===™™™4M Èšã:ýüüø|~FFBÈÇLJÏ秦¦"„úúúðš7nlnnæp8vvvñññòÍ=ºmÛ¶'OžÔ×׿þúë±±±Ê×aÓ¦M|>???Üœ AÍWÍfÏVßÍJÒ ‚ÇãYYY999ÉN~õêÕYYY² gΜÑlˆÑÑч ‰DrëÖ-¼²ü!¸\®®®î±cÇx<žT*”H$ †¨©©Á0L$)”[ZZðšõõõxe6›mgg'ßÜÁÁ¡§§/—––:;;+_‡ŠŠ Ã$ɸ9‚š¯Þì‚´5„‘‘QhhhcccDDikksvv–UprrÒœN§777{zzº¸¸deeÉâ”ÿ‡Éd–——s8++«õë×WVVêè(ž¯BHWWW¡,ÃÞÞ/888tvvÊïjoo777ǵaÆÇ+‹´°°@)WeN šKH3ÄÓ§OOœ8ááá±ÿ~{öìÚµk±±±š“ŒŽŽŠD":. ãââBƒƒƒò(ÊÆóóóù|¾H$ÒÕÕÕ×ן¬Ô>ú¨µµµªªêïÿ{@@€ü®­[·þíoëè訯¯÷ôô XQilla Simple API Documentation SourceForge.net Logo

ATHexBinaryOrDerived Class Reference

#include <ATHexBinaryOrDerived.hpp>

Inheritance diagram for ATHexBinaryOrDerived:

List of all members.

Public Member Functions

virtual const XMLCh * getPrimitiveTypeName () const =0
virtual const XMLCh * getTypeURI () const =0
virtual const XMLCh * getTypeName () const =0
virtual const XMLCh * asString (const DynamicContext *context) const =0
virtual bool equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
virtual int compare (const ATHexBinaryOrDerived::Ptr &other, const DynamicContext *context) const =0
 Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.
virtual
AnyAtomicType::AtomicObjectType 
getPrimitiveTypeIndex () const =0

Member Function Documentation

virtual const XMLCh* ATHexBinaryOrDerived::asString ( const DynamicContext context) const [pure virtual]

Implements AnyAtomicType.

virtual int ATHexBinaryOrDerived::compare ( const ATHexBinaryOrDerived::Ptr other,
const DynamicContext context 
) const [pure virtual]

Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.

virtual bool ATHexBinaryOrDerived::equals ( const AnyAtomicType::Ptr target,
const DynamicContext context 
) const [pure virtual]

Implements AnyAtomicType.

virtual AnyAtomicType::AtomicObjectType ATHexBinaryOrDerived::getPrimitiveTypeIndex ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATHexBinaryOrDerived::getPrimitiveTypeName ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATHexBinaryOrDerived::getTypeName ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATHexBinaryOrDerived::getTypeURI ( ) const [pure virtual]

Implements AnyAtomicType.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classATUntypedAtomic-members.html0000644000151400015140000004201511653571063021202 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATUntypedAtomic Member List

This is the complete list of members for ATUntypedAtomic, including all inherited members.
_ref_countReferenceCounted [protected]
ANY_SIMPLE_TYPE enum valueAnyAtomicType
ANY_URI enum valueAnyAtomicType
asString(const DynamicContext *context) const =0ATUntypedAtomic [pure virtual]
AtomicObjectType enum nameAnyAtomicType
BASE_64_BINARY enum valueAnyAtomicType
BOOLEAN enum valueAnyAtomicType
castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [protected, virtual]
castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
DATE enum valueAnyAtomicType
DATE_TIME enum valueAnyAtomicType
DAY_TIME_DURATION enum valueAnyAtomicType
DECIMAL enum valueAnyAtomicType
decrementRefCount() const ReferenceCounted [inline, virtual]
DOUBLE enum valueAnyAtomicType
DURATION enum valueAnyAtomicType
equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0ATUntypedAtomic [pure virtual]
fgDT_ANYATOMICTYPEAnyAtomicType [static]
fgDT_UNTYPEDATOMICATUntypedAtomic [static]
FLOAT enum valueAnyAtomicType
G_DAY enum valueAnyAtomicType
G_MONTH enum valueAnyAtomicType
G_MONTH_DAY enum valueAnyAtomicType
G_YEAR enum valueAnyAtomicType
G_YEAR_MONTH enum valueAnyAtomicType
generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicType [virtual]
getInterface(const XMLCh *name) const =0Item [pure virtual]
getPrimitiveTypeIndex() const =0ATUntypedAtomic [pure virtual]
getPrimitiveTypeName() const =0ATUntypedAtomic [pure virtual]
getPrimitiveTypeURI() const AnyAtomicType [virtual]
getRefCount() const ReferenceCounted [inline]
getTypeName() const =0ATUntypedAtomic [pure virtual]
getTypeURI() const =0ATUntypedAtomic [pure virtual]
gXQillaItem [static]
HEX_BINARY enum valueAnyAtomicType
incrementRefCount() const ReferenceCounted [inline]
isAtomicValue() const AnyAtomicType [virtual]
isDateOrTimeTypeValue() const AnyAtomicType [virtual]
isFunction() const AnyAtomicType [virtual]
isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicType [virtual]
isNode() const AnyAtomicType [virtual]
isNumericValue() const AnyAtomicType [virtual]
isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
Item()Item [inline, protected]
NOTATION enum valueAnyAtomicType
NumAtomicObjectTypes enum valueAnyAtomicType
Ptr typedefAnyAtomicType
QNAME enum valueAnyAtomicType
ReferenceCounted()ReferenceCounted [inline]
STRING enum valueAnyAtomicType
TIME enum valueAnyAtomicType
typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicType [virtual]
UNTYPED_ATOMIC enum valueAnyAtomicType
YEAR_MONTH_DURATION enum valueAnyAtomicType
~ReferenceCounted()ReferenceCounted [inline, virtual]
XQilla-2.3.0/docs/simple-api/Item_8hpp.html0000644000151400015140000000726411653571064015357 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

Item.hpp File Reference

#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/framework/ReferenceCounted.hpp>
#include <xercesc/util/XercesDefs.hpp>
#include <xqilla/framework/ReferenceCounted.hpp>
Include dependency graph for Item.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  Item

Namespaces

namespace  xercesc
XQilla-2.3.0/docs/simple-api/inherit_graph_49.png0000644000151400015140000000367411653571064016502 00000000000000‰PNG  IHDR¥(g­‹bKGDÿÿÿ ½§“qIDATxœí›}HS]ÇÏœ­7éE·5ç[±‰sŠe‚ ÕD,)(ª?4–YQäú'¡š‰Û@CAðŸ@¢F(¹2AˆJ|)¡6jk·tmù²šÙrnîî<œ§ËÚîöLSŸžçÞÏ_çüîÙï÷Ûýîüî9gBh(Cؿ͊BëM-h½©­7µ÷îôõõUWWÿ[©Ð,‰¤²²’èþ¢·ÕjíîîÎÏÏ_ñ¬h–N·yófoK¸ÿ {÷î­T>4ËKAA…~~S ZojAëM-h½©­7µX°Þ/_¾ ¿ÿ>aéèè`±X†¡î?ÊÊʶoß‘™™YSSãv»ïß¿g0¤àTUU1ŒÚÚZ²P­­­ 2 ÃÊ%½Ðh4>R*++y<žÍfƒNOOóùüêêjtiffF$I$’G ?xð@,çää¸Ýî©©©òòr¡ÉdBQˆF<X,Žß±ca\‡P0›ÍQQQ¿ï'8³³³““““““Z­0ù—˵Lóóóóóó½-‹ÑÛét¦¦¦C/\¸‘‘Ad,—Ë÷îÝëv»‰Áv»}ëÖ­„eAj½zõŠÁ`tuu†‡‡á!–ÊÏŸÎ_ïÅ<¿Y,–Z­¾uëVMMÍíÛ·ÕjõªU«Ð¥ææf…BÁd2‰Áëׯ/++kii ^{>|˜žž¾nݺèèhïÒÝÚÚš½oß>‘H„>Ž˜žž>sæ ›ÍŽ•Ëåsssn·[©TÆÇÇs8œS§NMOOŠ•••àñx\¡ä{zzâããŸ?îzjjjvv6ôèrÞÑÑ‘””ÄårKJJœNçúÿoñCœßˆ«W¯ˆJ!´Ùl(9Ÿ‘:.22ÒR™™‹uöìÙ±±±ææfÀ§OŸ „gÛ¶mMMMÂŠŠŠ””ät~æææšÍf£Ñ˜ššªR©êêêRRRŒF#†a»ví’ËåbùL8WhÀÁƒ{{{ív;1R¯×Ÿ>}šÃáLLL„xß ßüFݼ¼¼‘‘‘þþ~¡P¨R©¼Çwuuq¹ÜÒÒR‹Åz¸TõBèñxŽ9Âd2Ož_¥RY,–¢¢¢ªªªäää?."Êbôž˜˜())©««“H$J¥R&“}ùò]*,,¬ªªÂqu¥RéÝ»wkkk¥Ri‡‡£   ´´thh¨¡¡q×h4õõõßrùòeFÉ~p·eË&“i±XP×l6ÇÄÄðùüÑÑQd1 ׯ_ë]¡6Z¦p8±X¬Õj_¼xA¬ ~4Ë###|>ŸtŒÕj}óæÍØØØÎ;×®]»˜0Þ“=”zîñx:”JŠËåJKK“J¥èê·oß’’’rrržP,ä‡(Ëþ®üWÔ†Éd26›}îܹPª+i=ÏÉÉ1™Lz½>11Q¡PxÇq¼³³óèÑ£111 …b||<Ä@KðüV«Õ«W¯&¶FB½^ÖÖÖ†ºv»ýÊ•+©©©kÖ¬ÙÙÙÇ¢7„°¾¾>222..®¡¡A*•r¹\™L–——çÚãñ‚òòrR_¿~-**ŠŠŠŠŽŽ¾té’Ãᘛ›“Ëå|>ãÆR©ÆšŸŸß³gODDD WvP6›­¾¾^ ŒŽŽ¿oÞê}óæÍ„„6›}ñâE‡Ãá=¾­­-++«¥¥Åét†.ázmA8NN·änÿpŸŸŸ_ôËÿq;¾è½I~ï°ä°X,´Áý¿¶ŒßDÇ¿ÏJèMA,A²Åæ† d2Ù2gô7´ÞË©®àr¹Ë—Œ7ô÷¡Ô‚Ö›ZÐzS ZojAëM-h½©É~lÿþý+ŸÍr€a˜D"ñ¶ü¢w\\ýç±ÿ‰Äçd“± “šÿ:ôó›ZÐzS ZojAëM-þOŸa¥^/~IEND®B`‚XQilla-2.3.0/docs/simple-api/classXQilla__inherit__graph.png0000644000151400015140000000576311653571064020765 00000000000000‰PNG  IHDRuüýõ†bKGDÿÿÿ ½§“ ¨IDATxœíLeÇŸÒ£-Œ×‚ema ¨âPü‘%hÌÂf!Š.ѼÛ&и26c\¬X 2”fÓl„D²(eu 2ÌòK3:`Ä…°°µNE怱FKJiáúãyÿ8í[ÛÒá(;žóùüu}ïsŸ>Ï]¯ôŽ!˜UOÝ0K{Bì °'4 Ü_dddЕãMIIIZZµü7OæÙgŸ¥#æo444¸^«÷ïߟ••u#a|Àb±Ü_âã`Oh€=¡ö„Ø0ÍÓàà A ®’ÖÖV‡£Óé,K"‘x\zÎÌÌd±X###÷;ë?º8uêDœ>úH,FáÌÌLtt´R©¤V‚tml0BCCz½žž¸‹àá‚iã PRRùþûï ETTTqq±kmzzºûhkkks}æ_ÕøqèMkkktt´Á`€Ö××K$³Ù !$IR.— …µk×Êår’$õz=@£ÑÄÆÆvww—––ÆÆÆFFFæååQïtŸµ „mmmO<ñ—Ë]¿~}mm-„Ðf³ù¬Ný ïeáÅ‹ ‚8xð —ËÕétîT«Õ‰‰‰N§“*Ùºu«Z­'Ÿ‘¨ZIII‘‘‘‡ª­­}øá‡xà’’ª£Ñ(“ÉÁºuëÞ}÷]«ÕêÞý§Ÿ~z×®]Ô–³³³!!!ÿt<ýãy/??_&“ݾ}[$õ÷÷S…Ÿ}öÙ¶mÛÆÆÆ´Zí3Ï<£P(¨ ™™™]]]eeeÉÉÉZ­V§Ó¥¦¦ÊåòÅj™Íf.—ûå—_ÞºuK­Va6›>ì³úÌÌLMM÷2…B¡¸f#Qk©@’¤Ç²^¯'I’ÍfÿüóÏT­¦¦¦ÄÄD÷îÛív±X|æÌáË/¿üé§ŸÞ5?\¾'á'Ÿ|Âf³ÿøãW ÇsŸKù|>”š7x<žûäã§„ð§Ÿ~Ú¾}ûš5k6mÚÔÞÞ¾þúk>ŸöìY×ÒÒâÞA½^ßÓÓCM}¯½öZuu5tóä3p;Ëð^X­VªP«Õòx<÷îC÷îÝ»oß¾©©)‡3>>¾”.,×ÓØØ˜P(|ñÅÝߪ111®ôF£qhhÈý€ÿÝwßQ˃ƒƒ®¹È»–Åbéíí….,,œ8q‚ÍfOOO/V}1nÞ¼¡R© „‡‰DÔìÿÚ³v»]$õöö®Y³†z·¹ö¾w$x7OÔxºzõ*UØÜÜœàq¼ìîŽ>zôè /¼à?¼‹eyr8éééåååƒA,·µµQåo¿ýööíÛÿý÷+W®¤¦¦¾õÖ[îA8’’¢Óét:ÝóÏ?_PP°X-«ÕÊãñ§¦¦T*dzZ­‹U÷y|r:[·nMKKs8B’$SRRrrr<öòÞ½{{ì±-[¶x”{GòéÆcyçÎR©tttT§Ó%''—––zx²ÛíB¡P$?~|iš–穪ªêÉ'Ÿ¤†ssssTTuîg2™Þ|ó͈ˆ@PXX877çt~~^.—GGGóùüœœ× ›w-á©S§8NRRRkk«Ÿê>Ï÷Nœ8Áår¯]»æÊ|þüù   ÆÆF÷=ÛÓÓ8zô¨Ç÷鮞 C^^ž@ ˆŠŠÚ¿¿ë|Ï}×íÙ³'$$Äd2ÝÕO üœ»:ùðÃwîܹôí=\x~Oˆ 8óóó“““_}õÕ7ß|sÏ0ðzÄj£¿¿ãÆ»víÚ¼yó=7‚ÇÓŠ“––f0–ÙOh€=¡ö„Ø`OhÀ@Oýý£tG<žçåJ¥²¦¦†–(bt4!&fœÃ!éHþæiÇŽtåV+aµ†¤X$š¥;˲رc‡û?ú³ ³~÷yøpGeåé¸8A__ ÝY ÓŽO 7nL MÒ%0ÊÓààØÄ„ÌþöÛKtÇ $ŒòÔÒ2@l€Íæhh¸àt2gJgŽ'‡ÃÙØxÁnwP/§¦fÏŸgÎ :s<õõ×Ëà`vsóy s<55 Äÿ»c³9Z[l6‘C<‘¤½­í²Ýît/4™z{‡éŠXâ©«kÈj]ð($VSCÎúâ©©éRPg_ìvg{û‹… ˜àÉl^8}úªÃáô^e³94š«÷?RÀa‚§ÎΫ$i_l-3Îú˜à©¥eQN'ìî2™¬÷3ÏJÀ„ë°F÷Iï¹ç”ååÿMOßà*‹ù\.ÚÿY…vzŠ˜˜’µkÿ' %Ì Á„yïßö„Ø`Oh€=¡ö„Ø`Oh€=¡ö„Ø`Oh€=¡ö„Ø`Oh€=¡ö„Ø`Oh€=¡ö„Ø`Oh€=¡ö„Ø`Oh€=¡ö„Ø`Oh@çïÔ4ÍèèŠÜÚF£Ñܾ}>àͼͥðI,º-cp°0(ˆ»-Ó¸¯hþÝçæÍ›8@o†¥ÐÓÓóñÇÓŸÐ{Bì °'4ÀžÐ{BƒÕîI¯×K¥Rê±çÎËÈÈp}@žŸŸ¯®®Þ½{wfffQQÑÉ“'àæÍ›[¶lñ¹€"«ý¾9‰$77·ªªjãÆaaasss•••2™,>>`±XŠŠŠÂÃà ׭[wýúuµZ}éÒ¥#GŽ„……åääÐ?`¬öñÈËËãóùÔóÔU*•@ ÈÎΦVÕÖÖ†‡‡WVV¦¦¦ÆÄÄlÚ´‰z6ü?üÀçóé¼ÌhðD„B¡èèè8yòdGG‡B¡ ˆ?§ÎÎÎüü|÷;Yòx¼ììlFã–ëëë+((x饗¶mÛV__¿â}X6x<òÈ#¯¿þú±cÇòóóׯ_OšÍfƒÁ˜˜è±±D"¹~ýºŸÖ,Kii©D"©««+**ª©©™™™Y©èbµŸ( „7nÜ óXÅb±¼7ö¾W¬;G­V …B.—+ sssáááÍXÐOæòåË•••gÏž=wîUöàƒŽŒŒxl<22òÐCùi ˆ‰‰‰âââÂÂÂüq¥B>¡ö„Ø`Ohð?B‚[¡—¾©SIEND®B`‚XQilla-2.3.0/docs/simple-api/classEventSerializer__inherit__graph.md50000644000151400015140000000004011653571063022565 00000000000000ec6299f6780ace9aa5f1aded42fd6000XQilla-2.3.0/docs/simple-api/classExternalFunction_1_1Arguments-members.html0000644000151400015140000000544611653571063024015 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ExternalFunction::Arguments Member List

This is the complete list of members for ExternalFunction::Arguments, including all inherited members.
getArgument(size_t index, DynamicContext *context) const =0ExternalFunction::Arguments [pure virtual]
~Arguments()ExternalFunction::Arguments [inline, virtual]
XQilla-2.3.0/docs/simple-api/DynamicContext_8hpp__dep__incl.map0000644000151400015140000000023111653571064021341 00000000000000 XQilla-2.3.0/docs/simple-api/classTimezone__inherit__graph.map0000644000151400015140000000025611653571064021346 00000000000000 XQilla-2.3.0/docs/simple-api/classATTimeOrDerived-members.html0000644000151400015140000005005011653571063021115 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATTimeOrDerived Member List

This is the complete list of members for ATTimeOrDerived, including all inherited members.
_ref_countReferenceCounted [protected]
addDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext *context) const =0ATTimeOrDerived [pure virtual]
addTimezone(const ATDurationOrDerived::Ptr &timezone, const DynamicContext *context) const =0ATTimeOrDerived [pure virtual]
ANY_SIMPLE_TYPE enum valueAnyAtomicType
ANY_URI enum valueAnyAtomicType
asString(const DynamicContext *context) const =0ATTimeOrDerived [pure virtual]
AtomicObjectType enum nameAnyAtomicType
BASE_64_BINARY enum valueAnyAtomicType
BOOLEAN enum valueAnyAtomicType
castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [protected, virtual]
castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
compare(const ATTimeOrDerived::Ptr &other, const DynamicContext *context) const =0ATTimeOrDerived [pure virtual]
DATE enum valueAnyAtomicType
DATE_TIME enum valueAnyAtomicType
DAY_TIME_DURATION enum valueAnyAtomicType
DECIMAL enum valueAnyAtomicType
decrementRefCount() const ReferenceCounted [inline, virtual]
DOUBLE enum valueAnyAtomicType
DURATION enum valueAnyAtomicType
equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0ATTimeOrDerived [pure virtual]
fgDT_ANYATOMICTYPEAnyAtomicType [static]
FLOAT enum valueAnyAtomicType
G_DAY enum valueAnyAtomicType
G_MONTH enum valueAnyAtomicType
G_MONTH_DAY enum valueAnyAtomicType
G_YEAR enum valueAnyAtomicType
G_YEAR_MONTH enum valueAnyAtomicType
generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicType [virtual]
getHours(const DynamicContext *context) const =0ATTimeOrDerived [pure virtual]
getInterface(const XMLCh *name) const =0Item [pure virtual]
getMinutes(const DynamicContext *context) const =0ATTimeOrDerived [pure virtual]
getPrimitiveTypeIndex() const =0ATTimeOrDerived [pure virtual]
getPrimitiveTypeName() const =0ATTimeOrDerived [pure virtual]
getPrimitiveTypeURI() const AnyAtomicType [virtual]
getRefCount() const ReferenceCounted [inline]
getSeconds(const DynamicContext *context) const =0ATTimeOrDerived [pure virtual]
getTimezone() const =0ATTimeOrDerived [pure virtual]
getTypeName() const =0ATTimeOrDerived [pure virtual]
getTypeURI() const =0ATTimeOrDerived [pure virtual]
gXQillaItem [static]
hasTimezone() const =0ATTimeOrDerived [pure virtual]
HEX_BINARY enum valueAnyAtomicType
incrementRefCount() const ReferenceCounted [inline]
isAtomicValue() const AnyAtomicType [virtual]
isDateOrTimeTypeValue() const DateOrTimeType [virtual]
isFunction() const AnyAtomicType [virtual]
isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicType [virtual]
isNode() const AnyAtomicType [virtual]
isNumericValue() const AnyAtomicType [virtual]
isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
Item()Item [inline, protected]
NOTATION enum valueAnyAtomicType
NumAtomicObjectTypes enum valueAnyAtomicType
Ptr typedefATTimeOrDerived
QNAME enum valueAnyAtomicType
ReferenceCounted()ReferenceCounted [inline]
setTimezone(const Timezone::Ptr &timezone, const DynamicContext *context) const =0ATTimeOrDerived [pure virtual]
STRING enum valueAnyAtomicType
subtractDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext *context) const =0ATTimeOrDerived [pure virtual]
subtractTime(const ATTimeOrDerived::Ptr &time, const DynamicContext *context) const =0ATTimeOrDerived [pure virtual]
TIME enum valueAnyAtomicType
typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicType [virtual]
UNTYPED_ATOMIC enum valueAnyAtomicType
YEAR_MONTH_DURATION enum valueAnyAtomicType
~ReferenceCounted()ReferenceCounted [inline, virtual]
XQilla-2.3.0/docs/simple-api/classExternalFunction_1_1Arguments.html0000644000151400015140000001246611653571063022365 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ExternalFunction::Arguments Class Reference

#include <ExternalFunction.hpp>

List of all members.

Public Member Functions

virtual ~Arguments ()
virtual Result getArgument (size_t index, DynamicContext *context) const =0
 Return the result for the argument index specified. Arguments indexes are zero based.

Constructor & Destructor Documentation

virtual ExternalFunction::Arguments::~Arguments ( ) [inline, virtual]

Member Function Documentation

virtual Result ExternalFunction::Arguments::getArgument ( size_t  index,
DynamicContext context 
) const [pure virtual]

Return the result for the argument index specified. Arguments indexes are zero based.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/Timezone_8hpp.html0000644000151400015140000000647211653571064016253 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

Timezone.hpp File Reference

#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/framework/ReferenceCounted.hpp>
#include <xqilla/items/ATDurationOrDerived.hpp>
#include <xqilla/mapm/m_apm.h>
#include <xercesc/util/XercesDefs.hpp>
Include dependency graph for Timezone.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  Timezone
XQilla-2.3.0/docs/simple-api/StaticAnalysis_8hpp.html0000644000151400015140000000632211653571064017406 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

StaticAnalysis.hpp File Reference

#include <string>
#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/ast/StaticType.hpp>
#include <vector>
#include <xqilla/ast/StaticType.hpp>
Include dependency graph for StaticAnalysis.hpp:

Go to the source code of this file.

Classes

class  StaticAnalysis
 Records access to various parts of the context during static resolution. More...
class  StaticAnalysis::VarEntry
XQilla-2.3.0/docs/simple-api/classVariableTypeStore__inherit__graph.png0000644000151400015140000000746011653571064023173 00000000000000‰PNG  IHDRuüýõ†bKGDÿÿÿ ½§“åIDATxœí{P×ÇO ð¸†Gx©å1…‹hµjySpè(åဢƒmx‰8”G±C5#¾:Ž  ¥Œ ò²m€(µh…ÛŠÞ(íå˜hÂ$×Þ?¶Ý»†$"Pãæî篳çìïì÷ìwÏÙ“Mr–AÀyíÑÑ´œEû„ pŸ°î6 ¢7‚‚‚4¥g!¹¹¹>>>pú9Ÿ˜LææÍ›ííí5¡ ç9êêêèt:²IT(NOOŽŽ~µ’p”@ Лøý à>aÜ'l€û„ pŸ°¶ùÔ××G$ëêêœææf}}}6› ÎÎÎ žCCC £G^µÖ—B¨­­…0ÎgŸ}F¥RASSS666 .‰Ä¾¾>dg>Ÿohhàp8š‘«/´­?rssÍÍÍ?ùä@NN޵µuvv6Rˆîm---Ègþ×5.¤¹¹ÙÆÆ†ÏçCtåÊggç™™‚Äbqff¦¥¥¥……Eff¦X,æp8&“iooßÑÑ‘——gooonn_éJ£ jiiqww'‘Ho¼ñFuu5A‰Di8|ˆ…i‚~ùå"‘xòäI‰Äf³Ñ ¬¨¨prr’ËåpNXXXEEø«?)•G¹¸¸˜››TWW¯[·nÕªU¹¹¹p%`ÿþý ÅÖÖ6##C$¡›ïååuàÀxÏééiƒÞÞÞ—íO/=îíÛ·oÿþýVVV===pæéÓ§#""†‡‡Y,Ö[o½•““ mooÏÏÏwssc±Xl6{Ó¦M™™™ª¢fffH$RII —Ë­¨¨ ‰333gÏžU>55UVV¶0 “““@F<¤< R©ðÐ755ehhøäÉħ…’ਘ˜¡PX^^ˆŽŽ …¥¥¥€'Ož@´gÏž€€€Ç³X¬õë×çç磛ßÚÚJ¡P$ A555nnnÈUò7ú$ìììh4Z~~>’éââÂåráôõë×===a¡, ‚ 7ß|³¡¡.ýí·ßôÂ(>Ÿ¯§§wîÜ9@ —˧§§e2™ªp5Èåò;wêêêîÝ»W¡çàÁƒGŽ ¨¦¦&((ÉW* .…{€X,VHs8±X¬««ÛßßG544899¡›/•J©Tê7 Ú±cÇ©S§^¨Z¾O?~\WWwrrÉ!“Éè±ÔÄÄ d2=ø¨‰‚ èöíÛ‘‘‘FFFÞÞÞ­­­jÂÕðõ×_›˜˜Ü¼y“L&755¡Èáp:;;á¡o×®]¥¥¥Ê'¥’j–±0=22‰Dp&‹Å"“ÉèæC”’’rðàA§¯¯?22²˜&,×§ááaKKË÷Þ{}©ÚÙÙ!êÁàà ú†áààpíÚ58Ý×ׇŒE £fgg»ºº šŸŸ¯ªªÒÕÕ}úô©ªpUŒ™™™]¾|‚ ‚‚+++xt‚þ:³R©ÔÊʪ««ËÈȾڳ¿Pô"Ÿàþ400g666:::*Ü/;::lll.]ºäïï¯^<²|’Éd'NœàóùT*µ¥¥ÎOKK‹ŒŒüã?~ýõ×M›6¥¦¦¢…=z”F£±Ùl6›½uëV:®*J$‘Éäúúzwùòe2™,‰T…+½?Éåò°°0™LAX,¦Ñh111 g9%%ÅÕÕÕÏÏO!¡$¥Þ(¤ccc†††Øl¶››[^^ž‚OR©ÔÒÒÒÊʪ²²rq6-ϧ¢¢"¸;766Z[[Ãs?¡PoffF¡Pž={†:77—™™icccbbƒLØFAT[[ëè訯¯ïââÒÜܬ&\é|¯ªªŠD"=|øÑ|÷î]úúzô™íìì\ºtIáŒ+•ôBŸø|~\\…B±¶¶NOOGæ{èS—””d``  _èR/´ðsîëɧŸ~»øý¼PüžgÅ™››ÿòË/¿ùæ›%W¢…Ï#^7zzz6lØpàÀ__ß%W‚÷§¿>Ÿ¿ÌJðþ„ pŸ°î6À}¸OØ@ }êéÒ´„•Gq^Î`0ÊÊÊ4"e¥r´³Ñ×kZÈJòœOQQQšÒ±RˆDD‘È@,¦ZYMkZ˲ˆŠŠBÿПi×ÿ>Ïžm;þǵk)wîäjZËJ¢m÷§ºº{€ÿüçéàฦµ¬$ZåS_ßð訠§§{õê}MËYI´Ê§¦¦^"Q ‘ÈêêîÉåÚ3¤kO2™¼¾þžT*ƒ7y¼é»wµg‚®=>ݹóH ˜E6õôt{5¨geÑŸz‰Äÿ5G"‘57÷J$2 JZA´Ä'±XÚÒò/©TŽÎ 绺þ­)I+‹–øÔÞ>(Í+d‰„†-™õi‰O ÷utÛ"•Ê[[Õ†HÚàÓÌÌü?Èdò…E‰ŒÉxõ’Vmðéúõ±XªªT;f}ÚàSS“J'är¨£cP(½J=ÚðvtT€ô¶laœ8ñA`à?‘*Õ„DÂö/«°­ÆÎÎL!ÇÂâk×R4"æoBƽÿpŸ°î6À}¸OØ÷ à>aÜ'l€û„ pŸ°î6À}¸OØ÷ à>aÜ'l€û„ pŸ°î6À}¸OØ÷ à>aÜ'l€û„ pŸ°î6À}¸OØ÷ à>aÜ'l ø?5&“94„ùåf˜LæÄÄ]M«X Ïm+¼ÖA –JÔÓ³ÔÑ!iZÅrQðEÉÿ>}}}=úê•áÀtvv;vL!¿?aÜ'l€û„ pŸ°î6À}ÂKñ©±±122½àA»wïnhhxaìØØ˜ŸŸßK•ªioo÷SÆ£GÑuˆD¢ââ☘ø%´•••ð»5ÂRÖÍñõõ-**êïïwww‡s8Ç[Ì ícbb–pPUlݺõêÕ«.—›šš §«V­ZfÍ………“““Ç·°°.,,œžžNKKãr¹IIIÍÍÍË•þ2,¥?™™™½ýöÛð«Maºººh4…òâ%…LLLŸˆ,‰´zõêÕ«W›ššVÿ‘¸Ü¥›nß¾M§ÓMMMi4ZZZZww7@.— …Âþ2,ñþäïïóæM¹üÏUºnݺ… MwîÜ¡Óé!!!W®\ \½½½»wïþþûïÕì Ãd2cccwíÚuþüùùùçV•J¥%%%áááááá%%%R©Êe÷ŠŠŠÎœ9§E"QHH‡Ã•twwÇÅÅ…‡‡I$UÕ655!–Ðh´ÚÚZ@JJ àƒ>€ógffN:µsçΨ¨¨ââb±XŒn/›Í^¼f5,Ñ'ooo¡PØßßÙ¾};`vv6//ÏÙÙ¹¦¦&99¹¬¬ljj ùöÛosrrœáM5{¶¶¶ž9s¦  àþýûÕÕÕèãÖ××s¹ÜÒÒÒÏ?ÿ¼···²²R•BŸîîn™Lèîî¶¶¶vrr‚‹ššš Nž<ÙÓÓ_J«ÍÊÊêí파ÌÊʪ­­œœ„ÿøâ r3¾páÇ+))9}úô½{÷—¯"í]¼f5,Ñ'ccãÍ›7wttnݺåééiffÐ×ׯ¨¨HKK£P(–––€gÏžÁ! ^^^È‹îÕ왚šjggçêêúÑGÁ‡@hkk;|ø°¥¥¥ƒƒCbbâÝ»*Н_¿žH$²X,“É &pQrr2Rÿõë×UU»aÆÚÚÚ .¸»»ÿðñ±±7nÜP8ŠT*moo?tèµµµƒƒC||<\!º½‹×¬†¥âþþþ………‡êêêzÿý÷ÿ¬ŽH=wîœH$BºÌš5kž;°ê=íìì§OŸ¢‹&&&"""M###Uòttt¼½½»ººîß¿Ÿ‘‘¡´~§´Ú¹¹¹Ÿ~úÉ×××ÕÕÕÕÕ5..®ªªª¤¤$ }@ —ËmllàM[[[¸Bt{¯Y K÷iË–-gΜa2™?Þ¶mœ9??ŸŸŸŸŸŸ¿eˉDÒÖÖö¿#=cW³çè訃ƒ`ddÄÊÊ ebbrþüy[[[ÀÌÌŒú÷Òúúú2ŒuëÖ¹»»[XX(­žû,¬‚ ƒ±fÍx´$7n¼víšÂ!ÌÌÌttt¸\îÚµkãããæææ í})ͪXúç\‰´mÛ¶‹/zyyÁs-€D"‘J¥D"Q,Ãñìì¬Òp5{=xð ¼¼<$$åíí]VV699944”ÝÔÔ¤F!F“Éd_}õUpp0:ÿâÅ‹HýAAAJ«500>vìØÏ?ÿÌårŠ‹‹ÑI$ˆD¢ŸŸ_aa!—Ëýý÷ß+**d¼”fU,ëyD@@Àôô4úC¨±±qrr2ƒÁØ·o•J ÈÎÎV«fÏ;vdff9räÝwߎŽFG}øá‡†††t:===ÝÑÑ111Q]Ûtt¶oß>;; Ïq322rrrÞyç={ö¨ª6;;;00°¬¬,>>žÁ`xxxÐét•JuwwG†²Ã‡›››'%%eeemܸ®pÉšU¡¸Žott4ÇÓšï ËËË'&&rsÿ|·ÚØØØÞ½{æ&¯ð÷„ ¾híó=±XÌårÛÚÚÂÂÂ4­eÐZŸCCC===‘L###djŠ-´a]l¥xxx´´´(dššš~üñÇѳL´¶?i¸OØ÷ à>aÜ'l d¾7>>þÝwß½z)80>T’«}¿/×|ц÷?ý?€ßŸ°î6À}¸OØà¿ô!À€IEND®B`‚XQilla-2.3.0/docs/simple-api/classNode.html0000644000151400015140000013454411653571064015437 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

#include <Node.hpp>

Inheritance diagram for Node:

List of all members.

Public Types

typedef RefCountPointer< const
Node
Ptr

Public Member Functions

virtual bool isNode () const
 Returns true, since this Item is a Node.
virtual bool isAtomicValue () const
 Returns false, since this Item is a Node.
virtual bool isFunction () const
virtual void typeToBuffer (DynamicContext *context, xercesc::XMLBuffer &buffer) const
 Debug method to output the type of the item in SequenceType notation.
virtual const XMLCh * asString (const DynamicContext *context) const =0
 Serialize this node.
virtual bool hasInstanceOfType (const XMLCh *typeURI, const XMLCh *typeName, const DynamicContext *context) const =0
 check if the underlying type of this node is instance of a certain type
virtual Sequence dmBaseURI (const DynamicContext *context) const =0
 Accessor: returns the base-uri of this node as a xs:anyURI, if one exists.
virtual const XMLCh * dmNodeKind () const =0
 Accessor: returns the kind of node as a string.
virtual ATQNameOrDerived::Ptr dmNodeName (const DynamicContext *context) const =0
 Accessor: returns the name of this node.
virtual const XMLCh * dmStringValue (const DynamicContext *context) const =0
 Accessor: returns the string value of this node.
virtual Sequence dmTypedValue (DynamicContext *context) const =0
 Accessor: returns the typed value of this node, which is a sequence of zero or more atomic values derived from the string-value of the node and its type in such a way as to be consistent with validation.
virtual Sequence dmDocumentURI (const DynamicContext *context) const =0
 Accessor: returns the absolute URI of the resource from which the document node was constructed, if the absolute URI is available.
virtual ATQNameOrDerived::Ptr dmTypeName (const DynamicContext *context) const =0
 Accessor: returns the name of the type of a node.
virtual ATBooleanOrDerived::Ptr dmNilled (const DynamicContext *context) const =0
 Accessor: returns the setting of the nilled property of an element node.
virtual bool lessThan (const Node::Ptr &other, const DynamicContext *context) const =0
 Returns true if 'this' is before 'other' in document order, false otherwise.
virtual bool equals (const Node::Ptr &other) const =0
 Returns true if 'other' is equal (identity equal) to 'this'.
virtual bool uniqueLessThan (const Node::Ptr &other, const DynamicContext *context) const =0
 Specifies a sorting order for uniqueness removal.
virtual Node::Ptr root (const DynamicContext *context) const =0
 Returns the root of this node.
virtual Node::Ptr dmParent (const DynamicContext *context) const =0
 Returns the parent of this node.
virtual Result dmAttributes (const DynamicContext *context, const LocationInfo *info) const =0
 Returns the attributes of this node.
virtual Result dmNamespaceNodes (const DynamicContext *context, const LocationInfo *info) const =0
 Returns the namespace nodes of this node.
virtual Result dmChildren (const DynamicContext *context, const LocationInfo *info) const =0
 Returns the children of this node.
virtual Result getAxisResult (XQStep::Axis axis, const NodeTest *nodeTest, const DynamicContext *context, const LocationInfo *info) const =0
 Returns a Result containing the nodes in the axis given, relative to this node.
virtual ATBooleanOrDerived::Ptr dmIsId (const DynamicContext *context) const =0
 Returns if the node is an id node or not.
virtual ATBooleanOrDerived::Ptr dmIsIdRefs (const DynamicContext *context) const =0
 Returns if the node is an idref node or not.
virtual const XMLCh * getTypeURI () const =0
virtual const XMLCh * getTypeName () const =0

Static Public Attributes

static const XMLCh document_string []
static const XMLCh element_string []
static const XMLCh attribute_string []
static const XMLCh text_string []
static const XMLCh processing_instruction_string []
static const XMLCh comment_string []
static const XMLCh namespace_string []

Member Typedef Documentation

typedef RefCountPointer<const Node> Node::Ptr

Reimplemented from Item.


Member Function Documentation

virtual const XMLCh* Node::asString ( const DynamicContext context) const [pure virtual]

Serialize this node.

Implements Item.

virtual Result Node::dmAttributes ( const DynamicContext context,
const LocationInfo info 
) const [pure virtual]

Returns the attributes of this node.

virtual Sequence Node::dmBaseURI ( const DynamicContext context) const [pure virtual]

Accessor: returns the base-uri of this node as a xs:anyURI, if one exists.

virtual Result Node::dmChildren ( const DynamicContext context,
const LocationInfo info 
) const [pure virtual]

Returns the children of this node.

virtual Sequence Node::dmDocumentURI ( const DynamicContext context) const [pure virtual]

Accessor: returns the absolute URI of the resource from which the document node was constructed, if the absolute URI is available.

virtual ATBooleanOrDerived::Ptr Node::dmIsId ( const DynamicContext context) const [pure virtual]

Returns if the node is an id node or not.

virtual ATBooleanOrDerived::Ptr Node::dmIsIdRefs ( const DynamicContext context) const [pure virtual]

Returns if the node is an idref node or not.

virtual Result Node::dmNamespaceNodes ( const DynamicContext context,
const LocationInfo info 
) const [pure virtual]

Returns the namespace nodes of this node.

virtual ATBooleanOrDerived::Ptr Node::dmNilled ( const DynamicContext context) const [pure virtual]

Accessor: returns the setting of the nilled property of an element node.

virtual const XMLCh* Node::dmNodeKind ( ) const [pure virtual]

Accessor: returns the kind of node as a string.

virtual ATQNameOrDerived::Ptr Node::dmNodeName ( const DynamicContext context) const [pure virtual]

Accessor: returns the name of this node.

virtual Node::Ptr Node::dmParent ( const DynamicContext context) const [pure virtual]

Returns the parent of this node.

virtual const XMLCh* Node::dmStringValue ( const DynamicContext context) const [pure virtual]

Accessor: returns the string value of this node.

virtual Sequence Node::dmTypedValue ( DynamicContext context) const [pure virtual]

Accessor: returns the typed value of this node, which is a sequence of zero or more atomic values derived from the string-value of the node and its type in such a way as to be consistent with validation.

virtual ATQNameOrDerived::Ptr Node::dmTypeName ( const DynamicContext context) const [pure virtual]

Accessor: returns the name of the type of a node.

virtual bool Node::equals ( const Node::Ptr other) const [pure virtual]

Returns true if 'other' is equal (identity equal) to 'this'.

virtual Result Node::getAxisResult ( XQStep::Axis  axis,
const NodeTest *  nodeTest,
const DynamicContext context,
const LocationInfo info 
) const [pure virtual]

Returns a Result containing the nodes in the axis given, relative to this node.

Forward axis results should be in document order. Reverse axis results should be in reverse document order.

virtual const XMLCh* Node::getTypeName ( ) const [pure virtual]

Implements Item.

virtual const XMLCh* Node::getTypeURI ( ) const [pure virtual]

Implements Item.

virtual bool Node::hasInstanceOfType ( const XMLCh *  typeURI,
const XMLCh *  typeName,
const DynamicContext context 
) const [pure virtual]

check if the underlying type of this node is instance of a certain type

virtual bool Node::isAtomicValue ( ) const [virtual]

Returns false, since this Item is a Node.

Implements Item.

virtual bool Node::isFunction ( ) const [virtual]

Implements Item.

virtual bool Node::isNode ( ) const [virtual]

Returns true, since this Item is a Node.

Implements Item.

virtual bool Node::lessThan ( const Node::Ptr other,
const DynamicContext context 
) const [pure virtual]

Returns true if 'this' is before 'other' in document order, false otherwise.

virtual Node::Ptr Node::root ( const DynamicContext context) const [pure virtual]

Returns the root of this node.

virtual void Node::typeToBuffer ( DynamicContext context,
xercesc::XMLBuffer &  buffer 
) const [virtual]

Debug method to output the type of the item in SequenceType notation.

Implements Item.

virtual bool Node::uniqueLessThan ( const Node::Ptr other,
const DynamicContext context 
) const [pure virtual]

Specifies a sorting order for uniqueness removal.

This may or may not return the same as lessThan.


Member Data Documentation

const XMLCh Node::attribute_string[] [static]
const XMLCh Node::comment_string[] [static]
const XMLCh Node::document_string[] [static]
const XMLCh Node::element_string[] [static]
const XMLCh Node::namespace_string[] [static]
const XMLCh Node::processing_instruction_string[] [static]
const XMLCh Node::text_string[] [static]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/inherit_graph_47.map0000644000151400015140000000026211653571064016457 00000000000000 XQilla-2.3.0/docs/simple-api/classStaticAnalysis_1_1VarEntry.html0000644000151400015140000002166211653571063021633 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

StaticAnalysis::VarEntry Class Reference

#include <StaticAnalysis.hpp>

List of all members.

Public Member Functions

 VarEntry ()
void set (const XMLCh *u, const XMLCh *n)
void set (const XMLCh *u, const XMLCh *n, size_t h)

Public Attributes

const XMLCh * uri
const XMLCh * name
size_t hash
VarEntryprev

Constructor & Destructor Documentation

StaticAnalysis::VarEntry::VarEntry ( ) [inline]

Member Function Documentation

void StaticAnalysis::VarEntry::set ( const XMLCh *  u,
const XMLCh *  n 
)
void StaticAnalysis::VarEntry::set ( const XMLCh *  u,
const XMLCh *  n,
size_t  h 
)

Member Data Documentation


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/XPath2MemoryManager_8hpp__dep__incl.png0000644000151400015140000002423211653571064022220 00000000000000‰PNG  IHDRÅ]<>=bKGDÿÿÿ ½§“ IDATxœíÝy\×Úð(„]”E¡*E­¶Þ«(×¥¶.­ "R°m‹¾­ hµ âVn]( X{E½€¬V­BU¼WAPÔ€RYe‰†`È:ïÓ;!„hÉ Ï÷ã“3gÎ<3ósf²0‚@`¢£íÀkòp‚<œ O'–üƒ‚‚‚ØØXm•ú"//¯õë×SŸËÓ£Gòóó'Mš¤é¢@ßtûöm333ùV÷NÑÑÑšªôm6lPhû'€ä ày8AžN'€Ó 穪ªjòäÉ/^¤Z._¾|¨fÏE‹)¼“½zõjõGÀˆVÅ(¥ÉJ^8O®®®‹-Ú»w/ŸÏGuvvÆÅÅ999‘öíÛ—‘‘qâĉ~ø ˆÍ›7÷4TSSÓǬzu[¶l™?þìÙ³cccy<ÙÞÜÜ|ïÞ=ª[GGÇ­[·^t[p¡U1Úõ2×»ÀÀ@“ „½ªªJbºo8YL~~~PPÐìÙ³ÿýï÷Ô“ ˆÜÜÜO?ýtÆŒß|óMaa¡···Ò ”/µ¬¬Lá@(ìX²óåË—çÌ™³wï^±X¬´Q<|¸@ ¯2¥¥¥ÿûß©qNœ8ÑÔÔtàÀ]»v•––þôÓOdûõë×üñÇÐÐÐÄÄÄÂÂÂäääeË–9r„ûì³>úhÆŒAAA<|³POO/99yùòåæææl6!ÔÙÙÙ}X???CCÃñãÇ#„:::tttììì˜Læ³gÏ<˜““³zõê?êÖÑñòò"¯2………#FŒèß¿?5Ι3gV¬XÁf³œœÂ¨³9þ´iÓB .444œ>}:¹.‰Drþüùððp''§àà༼ùÄÈÈèƒ>@ñx<¥=322–.]:f̓ѣG«Þ@²T}}}Õ;–l\¶l™½½½»»ûgŸ}Fm¬ÒFõ)¿Nõ*??ÿæÍ›qqq‘‘‘'N”?7¤¤¤ØÙÙ)®†Åjhhعs§@ èþ¿‡bnnŽ¢Žé·ß~KHH;vlBB‚©©)Õ>iÒ¤;v,Y²Dáú‚jnnž7oõð­·Þ"' Éb¦B\.W&“ÙÚÚ’íììZZZÈé"„ttt&L˜péÒ%''§ëׯ¯\¹R~=£bÃ-,,ä PÚ³±±Qþô?hÐ ÕH–ÚÒkooO-Em¬ÒFõ½LžÚÚÚöîÝ»téR   ]»v)œº …111111ãÆ‹ÅgΜQÚMaƒBééé¹¹¹[¶léžÂ#F<{ö¬¬¬ìÚµk G×ÄÄ$..ŽŒ5ŸÏoooïu£ÌÌÌtttšššBäñFr‡|Ò¤I±±±ƒ 1b„¥¥¥:ŨØp…UÚÓÊʪ¶¶–zî\__¯z{º‘í¾cB äÈ< ×S£ú^øzGÄ®]»œœœf̘òõõ533Û³gê¥Äb±D"a±X"‘ˆ¼ØSOúAOKuvv&''÷ë×ïþÿüYºŽŽ——×îÝ»ÝÝÝåÏ[¡ &$&&>zô¨¦¦fÕªUÙÙÙ½n‹ÅòööÞ³gOSSSmmmrrò”)SúxxxH¥ÒŸþ™¼bÊë©®Î.úä“O8píÚ5wãÆÃ‡“ÉèuO:¥ôŽBÞ¾}û>|øûï¿'%%M:UE£ú^øütîܹk×®:tˆÜ0‹ùÅ_xyyyyyõ´”‘‘ѲeËbcc .\8yòäU«V8qbĈóæÍ;}ú´Ò¥jkk…Bá¦M›ä/\¸@M{{{çääÌ™3GaÁ%K–ìÛ·ïóÏ?g0^^^aaaêlÚŠ+öíÛ·téR]]Ýüã '|24gÏžUº¥J‹QºáYYYÝWÚ333S*•ÆÅÅ=}útذaK—.ݱc‡Ò lmm•mçΞžžÔuP©)S¦¬\¹²««kòäÉÔÆ*4ª³ßä1ä_ØMKKóóó“?`@ARRRssóºuë4³ºÂÂB6›íììL>¼téÒ‘#Gÿâ°>\´h‘ÂVÚ¨Ú† ,--ÓÒÒ¨xÿN]"‘¨©©éÌ™33gÎÔØJkjj6oÞ\UU% ïܹsèÐ!ò6ƒ¶^òùݨ¢¢býúõ³gÏÖäkß ,èêêZ·nÝ“'Olll>üðÃY³fýõaßzë­îã(m|Qp½/®wàÕ‚<œ O'ÈÀ òp‚<©å÷ßÛ´]Bß äõ§ˆˆÍ×As--žff¿³X]Ú.„^jjjÞå|.O>>>š-©XÆC:´] ½899½ÿþûò- ø¾Ã^íØq&.£ya¡†Þ¶ë»àþ©wéé%¡úú¶ŠŠFm×Bw§^ܸq¿¡‹ÒÕefd\×v9tyêEvv)‹ÅD‰ÅÒôô™ nT<©"•ÊNœ(‘H¤äÖ–Žââí–Ds'U «¹Ü??ž««ËÌÊ*Õb=ôyR%3³”Åús‰ÅÒœœR±XªÅ’hòÔ#‘H’›{S"‘É7òxÂK—*µUýAžztþ|…@ Thd±™™ð,¯G§ef^'¿AžD";}úÖ³g"­”D'åø|á¹s·¥RY÷Yb±4?ÿ¶æKê OÊåå݉$=Í…gy=<)—Ýcbd2âÂ… ¯Ç?k~“ÁûÁÊ54på/vãÆÅnÚ4wÊ”·©kk“~ýà¯ÍÁQÎÞÞL¡ÅÒÒØÑñ…¿âM×;€ä ày8AžN'€ä ày8AžN'€ä ày8AžN'€ä ày8AžN'€ä ày8AžN'€ä ày8AžN'€ä ày8AžN'€ä ày8AžN8¿O,??¿¦æµý9ŠüüüææbmWñJ„††b‹Àç5þ-F]]¶ŽN?mWñª`ÌæëÆâèC$z$•vi» üRSSñîŸN'€ä ày8AžN'€“òÄ3hРŋ·´´h¾ŒÕØØ¸páÂAƒ3&++ë%a0ÕÕÕšYJ+´s~ºråJSSSCCÃO?ýÄãñFõäÉ­TÒ“šš êa[[ÛÈ‘# SSS‹‹‹,XàïïöìY-VHOÚùýKKKkkk„ݤI“&Mš·aí£”L&kkk£FGG{{{'%%‘ß~ûíæææ;w~ðÁZ*¦´ÿÄ`0–.]zêÔ)òá“'O>ýôS {{ûˆˆˆ®®.‰D=pà@KKËÅ‹“g²êêjƒA."?Í`0:äîînii¹mÛ¶#GŽ <ØÄÄdýúõd±XieeÅf³###Åb1¹ÔÑ£GÝÝÝ ðý÷ß#„Þÿ}„z„PFFÆŠ+äËŽŽŽNNN&§ùåòìecc³mÛ6„ÒšIçÎsqq133Ûºu«Š’(,EnrNNÎСCÙlöòåË…B¡ÒÆ¿xt^Æï}||Ôy¿!TUU%ßRRRbjjJNLž<ùÞ½{gøðá111;vì6l‡Ã)++{ï½÷"""‚¨ªª¢Š—ŸFùûûóx<ò\âëëËãñ8€jmm%bûöíóæÍ»ÿ>‡Ã5jTTT¹Ôüùó¹\nbb"B¨­­M~L.—‹jooWº9<OOO/$$¤¡¡!%%!ôøñc¥5“+š9s&ÇËÈÈP]’ÂSXŠ,oÚ´i•••EEE...111JU òý–^™úè•'‘HÄd2ËËËÉöÌÌL—¡C‡fff’-wîÜ!§Uä©´´”Jaš\©››[SSÙ9//ÏÓÓ“\êÂ… ò=åÇlooGq¹\¥›# +**ø|¾T*-(( WZ3¹¢‹/!•JU—¤°Ç–"Ëãp8d‡ÔÔT¥ªö<Ñâ÷着ªœB=’J¥ä4BÈÅÅ¥¡¡!äêêJ¶¸»»»»»+,N<ÿ“ÆÆÆ!]]]…iR]] õÐÄÄ„œ°µµUèI133³²²ºsçÎßþö7ª±¤¤ä‹/¾(((044¬¬¬üüóÏù|þÈ‘#ɹõõõ=ÕL®Hþ—®{*I^÷¥Ünqss#wTO£ýû'‚ ~üñÇ3f „¬¬¬˜L&õ!ª{÷îÙÙÙÙÚÚÖÕÕ‘-7oÞܼy3µ¬D"A=|øPýÕYXXPgG.—[TTD¶wÿ)sy³gÏÞµk—|pSRRÄb±¡¡¡@ ðõõŒŒ,--'窨™ºÕëµ$yÝ—B‘'$„Pee%¸ž5F;yjiiinn~øðaAAÁœ9sjkk¿ùæ„®®®ŸŸßòåËkkkËËË×­[øí·ß–—————õÕWõõõ!SSS„пþõ/·gÏõW=wîÜ5kÖÔ××s8œéÓ§ïß¿_Eg>ŸONlÞ¼¹   00ðÊ•+gÆ {öì!S" E"‘žžž@ ˆŽŽFutt(­ù…JJJJzúô©êmY±bEuuuIIÉÚµk-Z¤¢Qs0^;Õ¿¢888&66ÖÔÔÔÙÙ9''ÉÝ?QÿוNóx¼àà`333ssóÐÐÐÎÎN¥=Åbñøñ㌌¨ÂêêêæÏŸokkkll©ÿþaaaê4jä©Ob³Ù ê4jä ày8AžN'€äI-­­|m—Ð7`~?¸¦¦æàÁƒxǤƒôô‡³fYëë3µ]fׯ_Ç<"Æ×Ú_×ï/ÐÑégmn` ø¹†×Æ à|¿åuuôhaddÚßÿîšžþ…¶k¡;¸ê]FÆu„EEÕmmpÕ ÈS/š›Ÿ^½Zƒ#'熶ˡ;ÈS/rrn0™ „LF¤¥•h»ºƒ<õ"=½D*%BA”•5Ü¿ßÖë"o2È“*55-wî4ROY˜L¸äõò¤JVV)‹õçkNR)‘ž—òÔ£ììR]]Å7X$iZZ1¼ÜÈ“r2qâÄ5±XÚ}Ö£G¼ÒRUÿô&ƒ<)wõjMKK‡ÒY,3+ .yÊAž”;yòBHOÕýŸLFäæÞJeÚ®‘Žhñý44|¸ý·ßΤîÚuvÖ¬w† ±¦Zž> ð–6J£5ø|Zlm¿NHš=ÛSÛ…Ð\ïN'€ä ày8AžN'€ä ày8AžN'€ä ày8AžN'€ä ày8AžN'€ä ày8AžN'€ä ày8AžN'€ä ày8AžN'€ä ày8AžVKO…ÔÔTmoè_bl<^W×BÛU¼<Íh~fZZš&WH»wïÖØº4š§×õai.==]cë‚û'€ä ày8AžN'€½òÄçó#""l``àêêÝÕÕõ¢ƒTWW3 Õ}.\8hÐ ##£1cÆdee½lÉØ0ŒêêjmWñWÑ+Oááᥥ¥÷ïßONNÎÉɉŒŒDÕÔÔXX¨z9Q¾ƒ©©éêÕ«Utnkk9r¤¡¡ajjjqqñ‚ üýýÏž=ûB¥öZÆ¥úͼlJ¾>Þk7SSÓ¢¢"êaAAÁÀ ‚¨ªªR½x¯ä}ùå—~~~ò-S¦LQsñ—X£:K!„ªªª^t@uøøøhìõqzåiàÀ‹/nmmUh777GYYY‘Ož<éééi```mm½uëV…Ô1‹Åß}÷ƒƒƒ……E`` —Ë%·¶¶¾råŠüøõõõä4—Ë 277·³³[¹r¥@ !”’’âææfff¶}ûöî%‰D¢ˆˆ6›mii!‰rrrlmmÛÛÛ ‚8v옫«+ŸÏWXJBhÿþýÎÎΦ¦¦[¶l¡6$;;{È!–––ááá]]]JUïÕ77OgÏžµ³³ëׯßÔ©SwìØQWWG¶Ëÿ·æñxzzz!!! )))¡ÇËw ¦wìØ1lØ0‡SVVöÞ{ïEDDÁårBäaV* `òäÉ÷îÝãp8lj‰!!4þ|.—›˜˜ˆjkkS8Ólß¾}Þ¼y÷ïßçp8£FŠŠŠ"bñâÅAAAÍÍÍVVVW¯^%z;?Íœ9“Çãedd „Z[[ÉÎÓ¦M«¬¬,**rqq‰‰‰QÚ¨z¯¾¹y"B"‘mܸqøðáL&óèÑ£Äó‡A(VTTðù|©TZPP@^&”æièС™™™dã;wÈéööv„u®R ‰˜Lfyy9ù033ÓÅÅ… „Ð… ÈÝ×H„››[SS9——çééI—˵··÷ðð ¹ê<]¼x‘ ©T*¿ ‡CíC¥ªwéš'>Ÿüøq‰DB>”Édëׯ·³³#º†œœœñãÇ{zz«È“¾¾~YYY÷YYY]¾|Y¾¥¸¸øÝwßíìì|ðàBˆ¼ÆÁápôõõ ‚@ݽ{—lTš'}}}ù»R²}ãÆL&óÑ£G µu‡ª¬¬ì¾ ª˜[·néëë+mT½c5™'=¿#báÂ…eeeäCƒñÁH$…nÀ××722²´´4>>^Å€¶¶¶uuuäôÍ›77oÞLNÏž={×®]„ÜI¦¤¤ˆÅbCCC+++&“YSSC¶ß»wÏÎÎŽœÖÑQµ¯,,,¨»i.—[TT„zðàÁ¾}û¦L™²råJuö€Ò—9È!„*++mmmU4Òòddd´xñb??¿S§NÕÔÔ\¹r%""ÂßߟêÀçóBB¡P$ééé ‚èèh„PGG‡|J``à·ß~[^^^^^þÕW_Õ×ÿñ£ä›7o.(( ¼rå ‡ÃÙ°aÞ={È´éêêúùù-_¾¼¶¶¶¼¼|ݺu*j¦Ö8wîÜ5kÖÔ××s8œéÓ§ïß¿_&“…„„„‡‡?~yòBˆÏï:¾BÛåÐä©ùùwºº$!ŒŒëÚ.‡î O½ÈȸÆd2BR©ìܹòÎN¡¶+¢5È“*<žàüù ‰äW $鯿–i·$šƒ<©ræL™üËN ##ãšë¡?È“*ééÏ¥G*•ýç?UííÚª‡þ O=zü¸£¨¨ºû;-¿ürK+õô §ò¤Ü/¿Üìé(‰„€gy=Ñèç úªªGnn6ÔÃææ§¦¦†úúºäC&“ÙÒÒaii¬¥êè ÞV‹­í× A³g{j»ºƒëÀ òp‚<œ O'ÈÀ òp‚<œ O'ÈÀ òp‚<œ O'ÈÀ òp‚<œ O'ÈÀ òp‚<œ O'ÈÀ òp‚<œ O'ÈÀ òp‚<œ O'ÈÀ òp‚<œ O'ÈÀ‰^ßO·iÓ¦K—.i» %ªª†X[7wh»%òòò´]Ÿèõý™eee¿ÿþ»f~ùۂ !3mòþJ%½ò„7n\ZZš¶«èÒÒÒüüü´]Åsàþ ày8AžN'€ä àÔ÷òtãÆ ‹•žžNµäääèéé••ýñK¬«V­zçwŒŒŒÆŽ»uëV‰DBuV=÷U`0ÕÕÕ¯t4BЉO¯ÝÖ¯_ommÍår ‚xò䉭­mll,9‹Çã¹¹¹yyy>}úîÝ»o¿ý¶···D"éuî+‚ªªªz#§¦¦ÒíÒ«5ó$ ‡JÄÒ¥KG-‰ÈY&LÏŸÏ4hPBBB¯s_ȓ֨™'‚ ®]»Æb±¶lÙÒ¯_¿²²2ªÝÚÚ://O¡s||ü„ TÏ­ªª¢Žü´H$Šˆˆ`³Ù–––"‘ˆœ›ŸŸïàà0räȲgGG‡Aii©Âø¡ýû÷;;;›ššnÙ²…?;;{È!–––ááá]]]JUïÈS/ÔÏAQQQ!êJG—ËEµ´´(ô,,,0`€ê¹=åiûöíóæÍ»ÿ>‡Ã5jTTT9÷Ã?<þüéÓ§ÍÍÍÅb1A)))Æ “Éd ã#„fΜÉãñ222B­­­äÓ¦M«¬¬,**rqq‰‰‰QÚ¨z@žz¡~žd2ÙÇÌd2-ZD5’‰immUè|åÊ Õs{Ê“››[SS9——çééIÎåp8AH$kkëß~û ˆ>úhÛ¶mÝKE]¼x‘ ©TJ^ûäG "55ÕÅÅEi£ê@Ã<õ½çw¤£G^¼xñüùó'NœÈÉÉ!MMM­­­oÞ¼©ÐùæÍ›nnnªçÊ·rŸ¹¨««³±±a0 cêÔ©µµµd;¹“Éœ;wnfffkkk~~~@@€ÒjmmmB::ÏímWWWj¨††}HŸÌSccãòåËwìØáååÖÖÖFÎ Ø´iy&@ùûû?~|Û¶mþþþ½ÎE‘¯<|øZyê"ÿóq¹\êý|]Ý?~«ÓÇÇ'+++--müøñöööJ îþ;é!ò„„ª¬¬$×Sc_¢Õ³£"u®w2™læÌ™'N”J¥AˆD"rîÓ§O‡êííý믿޽{wíÚµ!6›- UÏmiiA%''?}útΜ9ÔžY¾|ùüùóëêênݺõÞ{ï}õÕWòWC‚ $ ›Í¶²²úé§Ÿ¨ÆÄÄÄ'OžÓHîù’»Þy{{WUU»ºº~÷ݼC(ùCIDATwJUï ^ïèU:y:|øp¿~ýîÞ½Kµëèèœ8q‚|ÈçóW®\9|øp}}}ggço¿ývâĉ~~~½Î555uvv&/ dlfffnnÚÙÙ©'‚ –.]j``Àãñ¨–î’Ÿ&GHJJrtt´°°JUï ÈS/^èùú„BaaaáËÍUÇÚµk.\¨~ÿî‰ì©Q5æ‰vŸ§{ôôôÞÿý—›«ZWWWccã¡C‡Ž?þ²Õ½Vúäý8}\½zõÝwß ™4i’úKõïß?,,LÆ>ç8?½:'NlooÑ¥ØlvBB‚:}œŸN'€ä ày8AžN'µ\½Z£íúÚ½^péÒ¥©S§j» E55ÎööôôDÚ.ä9=Òv Šè•§—~ú•XHdmeE¯ïÃ033Sø¤ÖÑëûUèiÇŽ3qqçÍ ×i»ºƒû§Þ¥§— „êëÛ**µ] ÝAžzqãÆý†.BHW—™‘q]ÛåÐä©ÙÙ¥,!$KÓÓKd2¸=Pò¤ŠT*;q¢D"ùãóÁ--ÅÅðÂ*'U «¹ÜgÔC]]fVV©ë¡?È“*™™¥,ÖŸ»H,–æä”ŠÅR-–Ds§‰D’ÜÜ›‰L¾‘Ç^ºT©­’èòÔ£óç+¡B#‹ÅÈÌ„gy=‚<õ(3óºÂ_`"„$ÙéÓ·ž=£×/ôyRŽÏž;w[*•uŸ%Kóóok¾¤>ò¤\^Þm‘¨Çïƒgy=<)—Ýcbd2âÂ… O Ézú x?X¹†®üÅnܸØM›æN™ò6ÕbmmÒ¯½>A°G”³·Wüi KKcGGs­Ó‡Àõày8AžN'€ä ày8AžN'€ä ày8AžN'€ä ày8AžN'€ä ày8AžN'€ä ày8AžN'€ä ày8AžN'€ä ày8AžN'€“¾O¬¦¦&??_óëý‹òóó››‹µ]Å prrš2eЦ×Jh\jjª¦7ò/ÓÕeëèôÓv/ÆÇÇGóWkßwHÀ÷v¾J¾¾¾ZY/Ü?œ O'ÈÀ òp‚<œ O§>Ÿ§êêjƒ¡tâ/¨Å FuuõK¯‹†ú|žLMMW¯^Mçß(}>OÛ¶m£ó€ošæ)77×ÎÎŽËå"„Ž?>dÈÎÎN™L¶oß>wwwccãqãÆ]¸p¼^¨¸¾üòË/#GŽ444´±±Qš’“'Ozxxèëë;999r=Áb0‡rww·´´Ü¶mÛ‘#Glbb²~ýzªgNNÎСCÙlöòåË…Âç~V,GFFZYY±ÙìÈÈH±Xܽ€sçι¸¸˜™™mݺµ§1{]hþ-òý»^»-^¼8((¨¹¹ÙÊÊêêÕ«A8p€Ífgff666ž:uÊÞÞ!TUUEŽÖ}‚Çãééé…„„444¤¤¤ „?~,¿ >Ÿß¯_¿„„„¦¦¦ääd‹Åçó©Å ‚@ùûûóx¼¤¤$„¯¯/Ç;pàB¨µµ•ì9mÚ´ÊÊÊ¢¢"—˜˜ùÅ·oß>oÞ¼û÷ïs8œQ£FEEE)l#BhæÌ™</##£×1Uï=­¼Gß}úþýûBIIIOŸ>}‰1U¬ˆF4‰UçþiïÞ½ï¼óŽH$""++ËÆÆ¦½½]$mܸqðàÁFFFãÆ;vìRyÿDÄîÝ» àààïïïÏf³»ãì쬧§çææ–““£°8’»åê>MöLJJrtt´°°ò‹óx¼àà`333ssóÐÐÐÎÎο2¦B£ê÷ã/LþÈiÅ«(@é˜/±"¸¯ÈÓËëß¿XX˜Æ|+zE„Æ?Ç––æçç§ùõ¾QÈϧ¥¥ix½p~8AžN'€ä ày8iíïƒ<¨­U¿ jjjœœœ4¿^­å©¯¼ Òwi%OZxý ¼Æàþ ày8AžN'€Óÿ½Š›çÄo¢ IEND®B`‚XQilla-2.3.0/docs/simple-api/InputSource_8hpp__incl.map0000644000151400015140000000003511653571064017703 00000000000000 XQilla-2.3.0/docs/simple-api/inherit_graph_37.map0000644000151400015140000000024111653571064016453 00000000000000 XQilla-2.3.0/docs/simple-api/QueryPathTreeFilter_8hpp__incl.map0000644000151400015140000000003511653571064021333 00000000000000 XQilla-2.3.0/docs/simple-api/inherit_graph_31.map0000644000151400015140000000760711653571064016462 00000000000000 XQilla-2.3.0/docs/simple-api/XQilla_8hpp__incl.map0000644000151400015140000000003511653571064016615 00000000000000 XQilla-2.3.0/docs/simple-api/ResultImpl_8hpp.html0000644000151400015140000000750211653571064016554 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ResultImpl.hpp File Reference

#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/items/Item.hpp>
#include <xqilla/ast/LocationInfo.hpp>
#include <xqilla/items/Item.hpp>
#include <xqilla/ast/LocationInfo.hpp>
Include dependency graph for ResultImpl.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  ResultImpl
 A lazily evaluated query result. More...
XQilla-2.3.0/docs/simple-api/ATAnyURIOrDerived_8hpp.html0000644000151400015140000000625711653571064017622 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATAnyURIOrDerived.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/items/AnyAtomicType.hpp>
Include dependency graph for ATAnyURIOrDerived.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  ATAnyURIOrDerived
XQilla-2.3.0/docs/simple-api/classASTNodeEventGenerator__inherit__graph.md50000644000151400015140000000004011653571063023560 00000000000000391e04625349baa5aed7159ea62791b4XQilla-2.3.0/docs/simple-api/XMLFormatter_8hpp.html0000644000151400015140000000644611653571064017006 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

XMLFormatter.hpp File Reference

#include <xercesc/util/PlatformUtils.hpp>
Include dependency graph for XMLFormatter.hpp:

Go to the source code of this file.

Classes

class  xercesc::XMLFormatter
 This class provides the basic formatting capabilities that are required to turn the Unicode based XML data from the parsers into a form that can be used on non-Unicode based systems, that is, into local or generic text encodings. More...
class  xercesc::XMLFormatTarget

Namespaces

namespace  xercesc
XQilla-2.3.0/docs/simple-api/StaticContext_8hpp_source.html0000644000151400015140000007530511653571063020635 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

StaticContext.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _STATICCONTEXT_HPP
00021 #define _STATICCONTEXT_HPP
00022 
00023 #include <xqilla/framework/XQillaExport.hpp>
00024 #include <xqilla/simple-api/XQilla.hpp>
00025 #include <time.h>
00026 #include <xqilla/schema/DocumentCache.hpp>
00027 #include <xercesc/util/PlatformUtils.hpp>
00028 #include <xercesc/util/XMemory.hpp>
00029 
00030 class DynamicContext;
00031 class XPath2MemoryManager;
00032 class FuncFactory;
00033 class DatatypeFactory;
00034 class Collation;
00035 class VariableTypeStore;
00036 class ItemFactory;
00037 class StaticType;
00038 class ModuleResolver;
00039 class ExternalFunctionResolver;
00040 class MessageListener;
00041 class ExternalFunction;
00042 class XQillaConfiguration;
00043 class XQUserFunction;
00044 class XQillaNSResolver;
00045 
00046 // Copied from ASTNode.hpp
00047 typedef std::vector<ASTNode*,XQillaAllocator<ASTNode*> > VectorOfASTNodes;
00048 typedef std::vector<XQUserFunction*, XQillaAllocator<XQUserFunction*> > UserFunctions;
00049 
00050 XERCES_CPP_NAMESPACE_BEGIN
00051 class DOMDocument;
00052 class DOMXPathNSResolver;
00053 class XMLEntityResolver;
00054 XERCES_CPP_NAMESPACE_END
00055 
00057 class XQILLA_API StaticContext : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory
00058 {
00059 public:
00060   typedef enum {
00061       ORDERING_ORDERED,
00062       ORDERING_UNORDERED
00063   } NodeSetOrdering;
00064 
00065   typedef enum {
00066     CONSTRUCTION_MODE_PRESERVE,
00067     CONSTRUCTION_MODE_STRIP
00068   } ConstructionMode;
00069 
00070   typedef enum {
00071     FLWOR_ORDER_EMPTY_GREATEST,
00072     FLWOR_ORDER_EMPTY_LEAST
00073   } FLWOROrderingMode;
00074 
00075   typedef enum {
00076       NONE,
00077       CASE_INSENSITIVE,
00078       CASE_SENSITIVE,
00079       UPPERCASE,
00080       LOWERCASE
00081   } FTCaseOption;
00082 
00083   virtual ~StaticContext() {};
00084 
00085   virtual DynamicContext *createModuleContext(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr =
00086                                               XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager) const = 0;
00087   virtual DynamicContext *createDynamicContext(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr =
00088                                                XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager) const = 0;
00089 
00090   virtual DynamicContext *createDebugQueryContext(const Item::Ptr &contextItem,
00091                                                   size_t contextPosition,
00092                                                   size_t contextSize,
00093                                                   const VariableStore *variables,
00094                                                   const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver *nsResolver,
00095                                                   const XMLCh *defaultElementNS,
00096                                                   XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr =
00097                                                   XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager) const = 0;
00098 
00100   virtual XQillaConfiguration *getConfiguration() const = 0;
00101 
00104   virtual XQilla::Language getLanguage() const = 0;
00105   
00107   virtual ItemFactory *getItemFactory() const = 0;
00109   virtual void setItemFactory(ItemFactory *factory) = 0;
00110 
00112   virtual const StaticType &getContextItemType() const = 0;
00114   virtual void setContextItemType(const StaticType &st) = 0;
00115 
00117   virtual bool getXPath1CompatibilityMode() const = 0;
00119   virtual void setXPath1CompatibilityMode(bool newMode) = 0;
00120 
00122   virtual const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver* getNSResolver() const = 0;
00125   virtual const XMLCh* getUriBoundToPrefix(const XMLCh* prefix, const LocationInfo *location = 0) const = 0;
00128   virtual const XMLCh* getPrefixBoundToUri(const XMLCh* uri) const = 0;
00130   virtual void setNSResolver(const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver* resolver) = 0;
00132   virtual void setNamespaceBinding(const XMLCh* prefix, const XMLCh* uri) = 0;
00133 
00135   virtual const XMLCh* getDefaultElementAndTypeNS() const = 0;
00137   virtual void setDefaultElementAndTypeNS(const XMLCh* newNS) = 0;
00138 
00140   virtual const XMLCh* getDefaultFuncNS() const = 0;
00142   virtual void setDefaultFuncNS(const XMLCh* newNS) = 0;
00143 
00145   virtual DocumentCache* getDocumentCache() const = 0;
00147   virtual void setDocumentCache(DocumentCache* docCache) = 0;
00148 
00157   virtual bool isTypeOrDerivedFromType(const XMLCh* const uri, const XMLCh* const typeName, const XMLCh* const uriToCheck, const XMLCh* const typeNameToCheck) const = 0;
00163   virtual void setXMLEntityResolver(XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityResolver* const handler) = 0;
00165   virtual XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityResolver* getXMLEntityResolver() const = 0;
00166 
00168   virtual void setModuleResolver(ModuleResolver *resolver) = 0;
00170   virtual ModuleResolver *getModuleResolver() const = 0;
00171   /* Retrieve a list of locations for the given module URI */
00172   virtual VectorOfStrings* resolveModuleURI(const XMLCh* uri) const = 0;
00173 
00175   virtual void addSchemaLocation(const XMLCh* uri, VectorOfStrings* locations, const LocationInfo *location = 0) = 0;
00176 
00178   virtual VariableTypeStore* getVariableTypeStore() = 0;
00179 
00181   virtual void addTemplate(XQUserFunction *tp) = 0;
00183   virtual const XQUserFunction *lookUpNamedTemplate(const XMLCh *uri, const XMLCh *name) const = 0;
00185   virtual const UserFunctions &getTemplateRules() const = 0;
00186 
00188   virtual void addCustomFunction(FuncFactory *func) = 0;
00190   virtual void removeCustomFunction(FuncFactory *func) = 0;
00192   virtual ASTNode *lookUpFunction(const XMLCh *uri, const XMLCh *name, const VectorOfASTNodes &v, const LocationInfo *location = 0) const = 0;
00193 
00195   virtual void setExternalFunctionResolver(ExternalFunctionResolver *resolver) = 0;
00197   virtual ExternalFunctionResolver *getExternalFunctionResolver() const = 0;
00199   virtual void addExternalFunction(const ExternalFunction *func) = 0;
00201   virtual const ExternalFunction *lookUpExternalFunction(const XMLCh *uri, const XMLCh *name, size_t numArgs) const = 0;
00202 
00204   virtual Collation* getCollation(const XMLCh* const URI, const LocationInfo *location = 0) const = 0;
00206   virtual void addCollation(Collation* collation) = 0;
00207   
00209   virtual Collation* getDefaultCollation(const LocationInfo *location = 0) const = 0;
00211   virtual void setDefaultCollation(const XMLCh* const URI) = 0;
00212 
00214   virtual const XMLCh* getBaseURI() const = 0;
00216   virtual void setBaseURI(const XMLCh* newURI) = 0;
00217 
00219   virtual NodeSetOrdering getNodeSetOrdering() const = 0;
00221   virtual void setNodeSetOrdering(NodeSetOrdering newOrder) = 0;
00222 
00224   virtual ConstructionMode getConstructionMode() const = 0;
00226   virtual void setConstructionMode(ConstructionMode newMode) = 0;
00227 
00229   virtual void setPreserveBoundarySpace(bool value) = 0;
00231   virtual bool getPreserveBoundarySpace() const = 0;
00232 
00234   virtual FLWOROrderingMode getDefaultFLWOROrderingMode() const = 0;
00236   virtual void setDefaultFLWOROrderingMode(FLWOROrderingMode newMode) = 0;
00237 
00239   virtual void setInheritNamespaces(bool value) = 0;
00241   virtual bool getInheritNamespaces() const = 0;
00242 
00244   virtual void setPreserveNamespaces(bool value) = 0;
00246   virtual bool getPreserveNamespaces() const = 0;
00247 
00249   virtual void setRevalidationMode(DocumentCache::ValidationMode mode) = 0;
00251   virtual DocumentCache::ValidationMode getRevalidationMode() const = 0;
00252 
00254   virtual void setMessageListener(MessageListener *listener) = 0;
00256   virtual MessageListener *getMessageListener() const = 0;
00257 
00259   virtual void setModule(XQQuery *module) = 0;
00261   virtual XQQuery *getModule() const = 0;
00262 
00264   //  XQilla context specific accessors  //
00266 
00280   virtual bool getProjection() const = 0;
00297   virtual void setProjection(bool enabled) = 0;
00298 
00299   virtual bool getDoLintWarnings() const = 0;
00300   virtual void setDoLintWarnings(bool enabled) = 0;
00301 
00303   virtual const XMLCh *allocateTempVarName(const XMLCh *prefix = 0) = 0;
00304 
00306   virtual XPath2MemoryManager* getMemoryManager() const = 0;
00308   virtual void setMemoryManager(XPath2MemoryManager* memMgr) = 0;
00309 
00311   virtual void setFTCase(FTCaseOption option) = 0;
00312   virtual FTCaseOption getFTCase() = 0;
00313 };
00314 
00315 #endif
XQilla-2.3.0/docs/simple-api/classNumeric__inherit__graph.map0000644000151400015140000000140311653571064021151 00000000000000 XQilla-2.3.0/docs/simple-api/namespacemembers.html0000644000151400015140000000417411653571064017026 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
Here is a list of all namespace members with links to the namespace documentation for each member:
XQilla-2.3.0/docs/simple-api/functions_0x71.html0000644000151400015140000001241611653571063016303 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- q -

XQilla-2.3.0/docs/simple-api/classStaticContext__inherit__graph.png0000644000151400015140000001311211653571064022352 00000000000000‰PNG  IHDRÃ0nîbKGDÿÿÿ ½§“ÿIDATxœí{TWþÀ/$<… a± [XŸ,vÕU öµ®(6PäH‹Ïb—c@·¥ˆ•]k»¶K‘B]Ö.†‡]=.(ÊQhC!¢Ý# Ih æu̯Ó4(˜Þéýþ¸sç~g¾s?Ü;“Éc¬ „ó‹ÇÚÒ `~Ø`Oh€=¡]aõêÕ–Ê3šŒŒŒ+VåŸxª««[²d‰%²Âü„òòòäädr‘n°:55566öñ¦„1‚•••þ">?¡ö„Ø`Oh€=¡Õ<µ¶¶Òéôòòr²¦ººÚÖÖV ¬¬¬ n=¿øâ‹VVV;×Iõ”––BÄyûí·Y,–T*… ±Ùìììlb€N§·¶¶’%‰££#@(Z&Ý10pAµñÈÈÈpwwß³g`ïÞ½^^^éééäÚˆˆýÑVSSC¾æÿE3ŽÃÑTWW³Ùl‰D!&“ÙÔÔDT:thÆ wïÞmoo_¸páÞ½{‰D_|ñÅ .dee··· ‚°°0.—;V”B¡°³³ËËˋŅ……t:]¡P>|ØhøÐÐPAAÁè2ÁÞ½{äŒGà·ß~Ëb±ˆ©ohhÈÑÑñÁƒ¤§Ñ)QG&“8q+“Éòóó<€ÆÇLJ‡‡ßºu«½½}Μ9YYYú‡æÌƒ¡V«!„%%%ÁÁÁä‰=I¥Rooשּׁ,²200P,åÚÚÚùó牶··CŸ~úiG¬½qãY%‘HlllÞÿ}©TªÓéär¹V«+|t:]dd$F{å•W P(îܹó¯ý+„°¤¤dõêÕd½Ñ”ˆµÄP©Te¡P¨R©h4Úõë׉(7{ölýÃ×h4,ëüùó—^zéàÁƒæ§ï BøÎ;ïÐh´þþ~²ÆÞÞ^.uqq!%æ {{{ýÉgœ(áåË—£££g̘±|ùò3gÎŒ>ÿüç?]\\.]ºdoo_UU¥€B¡ðâÅ‹ÄÔ·nݺüü|¨çÉhJ@ï*ct¹»» T*‰Êööv{{{ýÇîØ±cçζ¶¶ÝÝÝ?ç¦ëéîÝ»žžžÏ?ÿ¼þ¿ª··7™½T*½yó¦þ ÃÏÏïôéÓD¹µµ•œ‹FG 744@=zT\\L£ÑÇ ‹{÷î¹¹¹?~B˜““Ãd2‰Ù þг†Éd644̘1ƒøo#{tJp"OÄxêèè *+++ýýý Ηõõõl6;77÷ÙgŸ?y’iyÒjµH$,«¦¦†¨ßµkWtttWWW[[[XXØë¯¿®Ÿè¾}ûBBB@ XºtirròXQJ¥ÒÞÞ¾¢¢b``àøñãöööJ¥r¬p£ç'N·fÍš+VhµZ¡J¥ áp8½¼cÇŽ   U«VÔNɨƒr\\\xx¸H$ÁÁÁ™™™ž4§§'“É,**úyš¦çéã?ž7o1œ+++½¼¼ˆk?™L¶yóf777ƒ±eË–‡ê':22ÂårÙl¶‹‹ ‡Ã!/ØFGAKKKýýýmmm«««Ç 7z½W\\lgg÷¿ÿý̹¹¹ÙÚÚº¢¢B¿g/^¼ÈÍÍ5èq£)MèI"‘$$$0 //¯ÔÔTòzO¿ë¶mÛæàà “É&4dÔ_çþ2yóÍ7ãââ~~{†ïbLÎÈÈHooï§Ÿ~úùçŸOy#¼ñK£©©iñâÅIII+W®œòFðx2;+V¬H$ÓÜOh€=¡ö„Ø`Oh@AOMM"K§`z ¯Ë³³³ ,’Š©‰ü½½»mmU–NÄ”üÄSLLŒ¥ò0J%]©tP©XL¦ÜÒ¹L‹˜˜ýú[Aj}ïóðá³~ø___ÆÕ«–ÎÅ”PíüT^Þ¸sgðæÍ^KçbJ(婵õnO`cCû⋯-Ž)¡”§ª*>N¨ÕÚòòŽ:S:uæ€ ÷a{z¤ú“Þ3Ïd8ñ;²†År±³Cû“UhgOàíífPãááìë˰H2f‚ óÞ¯ì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ`ŠßS‰Duuu¦MÅ„ÔÕÕõõ5[: #øùùEDDL%rjO‹(--5õ!˜ Okk;Kgaœ˜˜˜©uø´¾÷Y__oªø5°ÿþ)Çâó`Oh€=¡ö„Ø`Oh`ÞßcQ*•ÅÅÅ ‰ÄÃÃ#<<<>>ÞÖÖvR¹wïÞ+¯¼2þk€ÁÁÁcÇŽ]¿~ýûï¿÷õõ_¾|ùôrÿeaÞñôÑG …ÂwÞy§´´4==ýÊ•+yyy±X9N ~'''‡3Nc™LöÚk¯ÙÙÙíÛ·///ïÙgŸ=pà@KKˤR0%FMózº|ùrrrr@@€««kHHÈ®]»®\¹Ðét2™lœ@ý...[¶l§qQQÑ‚ ÒÒÒ‚‚‚|}}ccc£¢¢&{Çd”L5ÌëÉÑѱªªŠ<’¢ûvìØˆŠŠ"ê¯^½šœœü /lذáÔ©S îÝ»·jÕ*€V«-**Ú¸qãºuërrr ÞÐаaÃýý&&&¦§§e…BqðàÁÈÈȘ˜˜cÇŽÏe_µjU]]]bbâÚµkÿýïNI£Ñäåå­_¿~ýúõyyy¦±±1::Z.—Ο?Ÿ022be>Ìë)--ÏçGGG§¥¥•––ö÷÷õŸ|ò €Çㆇ‡333JJJ¶oß^PP044¤ß€¤¢¢¢¡¡!''çÃ?ìîî.))( ‰Dò›ßüF¿¥ƒƒƒ§§'Q>zôèÀÀ@^^Þ¡C‡ZZZȇ£^¾|977wëÖ­ùùùr¹Ü`b±8??ÿÈ‘#|>¿¨¨èøÃ¢E‹rss¥Rinnî[o½eooo4Os`^O‹/.--=zôèܹsÏ;wþüyƒ6¶¶¶………»víb0Dç>|øÐèÖþóŸÿ$%%ùùù=õÔS{öì ¿heee4D£Ñ\¸p!%%ÅËËËÏÏoóæÍµµµÄªuëÖ999=ÿüó€Ñs×Ù³gßxã OOO??¿­[·677RRRø|>—ËŒŒ œr·L3^466®\¹2((((((!!¡¸¸8///<<ü'Ðé===ï¿ÿ¾R© gƒýýýÞÞÞDÙ×××××àìììæævçÎBÁ·ß~û÷¿ÿýèÑ£2™L§Ó±Ùl¢~æÌ™DÙÝÝØ»Ñ}õõõéÏ¥3fÌ899­Y³æ³Ï>;räÈ$;cº˜q¢ÜÙÙIÌ{€¥K—Ø&[ÖÖÖj4;;;777kkk±XLÔ÷öözÀØCÀÅÅ¥¤¤¤¾¾¾¾¾þôéÓÄüvÿþýÊÊÊE‹‹3zrppxî¹çöïßíÚ5±XÜÑÑqìØ1ýÁ¤T*jµZ£ÑÐét•JUTTÖo@òÜsÏ8qâöíÛ·oß>zô(y¶{õÕWÛÚÚÞ{nŽ‘HôÙgŸñx¼×^{ @§ÓW­ZõÑG‰ÅâÛ·oŽÿ6¹ÇåË—ô÷÷‹D¢ôôôªª*áßþö·¨¨¨·ß~û믿nlle>Ì{~JOOˆˆ(((ؼysvvö¼yó’““,kîܹÄÄâää´}ûöìììM›6±X¬ðððôôtý$ñññ¡¡¡iii)))L&sëÖ­D½««ëñãÇÕjõ¾}ûRRR®]»öî»ï.Y²„XûÆo¸»»oÛ¶----444>>Þhª{|õÕW“““SSSýýý·nÝZUU544ÄápœSSS?øà¹\n4Os0Åßñ-++Û¸q#~ŸpRìß¿ßÃ㬬l ±øþ`Oh€=¡ö„Ø`Oh€=¡=ÉdTx0—Óºûå—_š*rù².,ÌÚÆÆÒyŒ¢··×ÃÃcŠÁû|¹µµ‹•âàdéDŒ3åÏ—SáùOúüë_WÓÒÊ–. (/ßaé\L ÕÎO_|ñ5V×®u*,‹)¡”§¾¾ï›šD@¬ª«[-Ž)¡”§êêVÍ  ÓÁ²²É}.ì¥<•—·hµ!zîÞ´tF&ƒ:žD¢7zÉË"RSuÿÎãOÉäPÁSS“h`@ntN«¬¤ÂÔGO§O·lmé£ÿt:XSÓªÿôwD¡ÂóÝçÌñ~ë­5äâ‘#çþüçy¿ý-‹¬ùþ{å“OΰDj&ƒj÷Ëlvj^^âÚµó-ˆ)¡Â¼÷k{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžaüŸç³tvSÁÙy™»¥³˜4Ä#wÆbâï禦¦>óÌ3!Ñ_3±±±ã7˜ØÓ’%KbbbL”fŠàó`Oh€=¡ö„ؘÀ“•³fÍÚ´iùìSsÓÙÙ9þc;½½½qqq³fÍrrr ­¬¬|<¹™ÓŒ§ÆÆF±XÜÓÓSTT$“É.\844d’-««ëž={Æi088¸`ÁGGÇÒÒÒæææ—_~™Ãáœ;wnR{‰DäÓ\Í5&Þÿu2ÑF(’‹:îücffæøQ‡;wnܸQ¿†ËåFDDLj#B¡pÂŽšfÔ„ýlzOÂS§N-Z´B˜’’’””DTÊår>ŸO„”””º¹¹:tˆhpúôéùóç;88°X¬œœrã………îîî999'Ožœ5kÖO<‘‘‘õúB­Vgffúøø¸»»'$$H¥R"œÅb566êç&—ËïܹC”¥Ribb"ƒÁ˜9sæîÝ»•J¥ÑÜ €ÉdQ*•ŠËåzzzzxxp¹\•JU]]Íf³% qì … jšýlO---®®®ÂK—.1 µZ !,)) ÖétDHtt´T*-(( Êd2[[Û¤¤¤žžâAÓ÷ïß'Zr8™LvâÄ @ll¬L&ËÏÏgΜ¬¬,£¹ŒŒC‡mذáîÝ»ííí .Ü»w/„pÓ¦M‰‰‰}}}L&³©© "1žHO†Åb?BøÒK/ O¹g³Ù]]]Dù›o¾y÷Ýw‰òÚµk9õÞ )))Q«ÕŽŽŽL&“F£‰D"¢þÖ­[3gÎ4š›îîîäü!•J¯]»èîîþÇ?þ±{÷îÉ&ÿ³˜æx$Ú×å/^ŒŒŒôöö"Öj4OOO&“YTT¤B*Q–J¥VVVgÏž}øðazz:øaŠÝR¿LÎ-ûöí `éÒ¥ÉÉÉD³û÷ï3Œøøø+W®´µµeee¾üòKbm\\\xx¸H$ÁÁÁÄ5êX{‘ËåDå®]»¢££»ººÚÚÚÂÂÂ^ýu­VqàÀ‰DÂb±jjjàó5Í~6'Ÿøøøþþ~ýÛ¶msppÉdú!£{ÿƒ>xòÉ'}||>ùä‡ãéé9VK8ÊÓÈÈ—Ëe³Ù...GÿœÔÕÕÍf³ÿûßH ‘H †——Wjj*y½g°µZ½lÙ2'''¢R&“mÞ¼ÙÍÍÁ`lÙ²åáÇüñ¼yóT*„°²²ÒËËK"‘DM³ŸMàiBÞ|ó͸¸¸in„ÚLØÏæý½å‘‘‘ÞÞÞO?ýôóÏ?7ëŽ(yïÃ655-^¼8))iåÊ•fÝå1ïxZ±bñ"3Mðûh€=¡ö„Ø`Oh€=!„¯“1‡iÝ(++{ÿ‰’àó`Oh€=¡ö„ÿ*yµ”• ¸IEND®B`‚XQilla-2.3.0/docs/simple-api/ATHexBinaryOrDerived_8hpp__incl.md50000644000151400015140000000004011653571063021250 00000000000000d3916b2d274c017003dd203419b9aa3bXQilla-2.3.0/docs/simple-api/ATQNameOrDerived_8hpp_source.html0000644000151400015140000002274011653571063021066 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATQNameOrDerived.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _ATQNAMEORDERIVED_HPP
00021 #define _ATQNAMEORDERIVED_HPP
00022 
00023 #include <xercesc/util/XercesDefs.hpp>
00024 #include <xqilla/framework/XQillaExport.hpp>
00025 #include <xqilla/items/AnyAtomicType.hpp>
00026 
00027 class DynamicContext;
00028 
00029 class XQILLA_API ATQNameOrDerived : public AnyAtomicType
00030 {
00031 public:
00032   typedef RefCountPointer<const ATQNameOrDerived> Ptr;
00033 
00034   /* Get the name of the primitive type (basic type) of this type
00035    * (ie "decimal" for xs:decimal) */
00036   virtual const XMLCh* getPrimitiveTypeName() const = 0;
00037 
00038   /* Get the namespace URI for this type */
00039   virtual const XMLCh* getTypeURI() const = 0;
00040 
00041   /* Get the name of this type  (ie "integer" for xs:integer) */
00042   virtual const XMLCh* getTypeName() const = 0;
00043 
00044   /* returns the URI */
00045   virtual const XMLCh* getURI() const = 0;
00046 
00047   /* returns the prefix */
00048   virtual const XMLCh* getPrefix() const = 0;
00049 
00050   /* returns the name */
00051   virtual const XMLCh* getName() const = 0;
00052 
00053   /* returns the XMLCh* (canonical) representation of this type */
00054   virtual const XMLCh* asString(const DynamicContext* context) const = 0;
00055 
00056   /* returns true if the two objects' URI are equal (string comparison)
00057    * false otherwise */
00058   virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0;
00059 
00062   virtual int compare(const ATQNameOrDerived::Ptr &other, const DynamicContext *context) const = 0;
00063  
00064   virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0;
00065 };
00066 
00067 #endif //  _ATQNAMEORDERIVED_HPP
XQilla-2.3.0/docs/simple-api/inherit_graph_3.md50000644000151400015140000000004011653571063016270 00000000000000f957807d7e5960c8f0b07003c82ab901XQilla-2.3.0/docs/simple-api/classATUntypedAtomic__inherit__graph.png0000644000151400015140000001450711653571064022601 00000000000000‰PNG  IHDR³`ÛbKGDÿÿÿ ½§“üIDATxœí{XW‡OHâ¡Q@A¡Xµ¶»à‡b)HíÅ+/uëcu­PÝm- «}¬Z`EÜVm¹"Ú²*&­– XÅÖ@¸(DˆXbnóý1uŒ!„¦ gzÞ‡?fNΜó›y™3Éär†İdžê‹@žày‚ä X†+ßÿý®]»¨Š‚0$00pûöíÄê3žÚÚÚŠ‹‹#""†<â®]»6nÜ8ÃVßJ999C•ašÈÈH£t}‚ä '8@žày‚k<1 =zt@@@UU•™ú†-_¾ÜÎÎÎÚäÐÒÒ=qâD;;»?þñgΜ¡$Fmm-ƒÁxÞ­¬<Ÿ~üñG¹\.—ËÅb±——ײeËÌÜwoii9uêTMMu}‘BGGÇË/¿lkk›]^^þç?ÿ9**êÂ… ƒoY&“ñx¼Á·c¯Ÿ,ÁÑÑÑÉÉ àää´wï^@ÐÞÞÎçóMVîíí¸¹¹Yrð$%%eddà«/¾øbkkë¿þõ¯7Þxc-ëõúŽŽŽA®Ol6{Ĉ_Õh4‰‰‰€Ïç'&&j4îÕd|(¸|ù²››Û?üз€Á`œ:uÊÇÇÇÁÁaïÞ½­V›””äæææèè¸bÅŠ‡ö×> //oÓ¦M†±“’’Ž;†/?|øpÕªU<ÏÕÕ5!!A¥RŽN†Ë}c ¸w:nß¾}“'O¶··(++³æ(cdgg•˜PUUÕÕÕÕÕÕÕÜܼ~ýúÕ«W¦¤¤„……555‰Åâ™3gnÛ¶M*•6Û_…7ß|S(vww÷­€w®P(Ž= èèèØ·oŸ¯¯¯X,–H$~~~ ýµ¯P(ýíQLLLppp]]X,ž:uêŽ; 3.÷1àÞ8p€Ïçççç·´´|óÍ7...䈈ˆˆˆˆg޹áŠåž ±³³«©©!õöö–Ëåøò¥K—f̘a´'ýU‹ÅýUÀ;‰D†©Õj€T*2eJ~~>^­¦¦†Xî»ygg'@¡P˜ÜµZÍd2oÞ¼‰¯æçç{zzšñdcÀ½›ioo;vìÑ£GK–,ç“Q <|WWW½C:}<étúÓ§¯kµ:|µ½½«¼œ>OÐéãéÚµZ…âÄ*›Í¾råU‘È…&ž„ÂÛ½½ Y,F~>MžõÑÄS~~EßÕiµúo¿­þßÿ ¾D@OÝÝ/^¼¥Óéû>¤Ñ芋­ú\ã0ƒž.]º¥Vkû{”Ïúèà©  _z=&ÝV*{‡2ÏoîÃÞ»§0ôfÍÚµsçÒ‰''ÎÈ‘V~#o˜wzW×qF%ŽŽö&p) óA‡qï÷òÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op0Œ¾§öïÿ›¬¦Š‹‹[[ËßNHH>m õ˜Ÿc(!kØl¾ÍHRšÊÎΦú¨üÊð÷H9.ju›N§|;TŒg^žý<ÁòÈ Op€<Ádž Fmm-Õ)(2O2™ŒÇãQbè€Õ“^¯ïèè :ÅЫ'|ú '''|U£Ñ$&& >ŸŸ˜˜¨Ñh #33ÓÇÇÇÑÑ199ùĉîîîgûöíTF·ŽÁß_! `Á}#ðdša£©‘SRRšššÄbñÌ™3·mÛ†WŽŠŠR*•€ÈÈH¥R™žžxðà)y† šxòöö–Ëåøò¥K—f̘W®¬¬Ä0L­V-Χ=˜}úô””jã‘d×'ìÉÛw,ëêÕ«D¹½½}fffff¦ÉÊf–aÖóé÷òÈ Op€<ÁòÈÐÐÓƒÝTG Ÿáõ:÷òåË>d#¹¹Í 8Å$%Ò0axyüWllFòùq%%¹½½·I‰4LFã)ïÓ|ù¥ˆÁ`¾ýöRZ‹ŒŒ¤ú¨üÊ0òD yy0JKk;:hu•¢•§ÖÖGee20gÏÞ :™ÐÊÓÙ³7˜L@¯Çrr®S‡Lhå)7÷ºN‡0 “Hî55Ñçƒcôñ$“µ×Ô´`OÞ[b2i5ôÑÇÓ™3•,ÖÓ×L:–›KŸ¡>žrs¯kµ:bðÚÚû·oË)ŒD"4ñdòjÄb1ÍL 4ñTPPÉfß(Òju99償†è <éõØéÓ?i4º¾µµ)++‡>éÐÁSY™¬½½ËäC,óÌ: }tðtîÜ Àˆ¬¾z=VXxÃpöwH^÷Ë­cêT×>z‡XÝ¿ÿ‚Ó'Ov"J=êupCE4Ò`Ðã2kˆ‹Ëæ´´• Π:™ÐaÜû=€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ O`ÉÏÐeggSó9°·ŸÍfC3uaDD„% žãû¹999¿]Üß'°°æsxŠˆˆ°* ¢_rss-¬‰®Op€<ÁòÈ Op@¾§;w2ŒäädÊ1¢¶¶–Á`ô÷hVVÃUUU$f°’=a–••åææ6˜—Æ&‘Éd<Þ ^½Ž;vëÖ­ý=ºhÑ"¹\.—ËüñG€ü ¾¾¾ƒé”4,¿aIÍêêjƒqéÒ%À/¿übÉ&6b4õoÇu„aXDD„…÷#H>Ÿ²²²æÎâíímx60ŒS§Nùøø888ìÝ»°qãÆ5kÖàvwwÛÚÚÞ¸qÃL#þþþ'§_ìáÇ«V­âñx®®® *• ï%33ÓÇÇÇÑÑ199ùĉîîîgûöíÀ`ÜÓjµIIInnnŽŽŽ+V¬0?óŠÉœxSgÏž2e ŸÏ߸qããÇ&11Q ðùüÄÄDFCÖ%ó|Òëõîîîééé†}ôÑG¾¾¾ÄC€ððp…BqôèQ@GGÇ÷ßÏår5 †a'OžôõõÕëõf1ú7‰‰ ®««‹ÅS§NݱcÞKTT”R©ÌÈÈDFF*•ÊôôtÀƒˆöíÛçëë+‹%‰ŸŸ_BB‚á^ud2'^'44ôÎ;¥¥¥žžžx€”””°°°¦¦&±XµZÍd2oÞ¼‰¯æçç{zzâ½TVV½.K¥R¢…)S¦äççãÛÖÔÔË8FžLæÄëˆÅbâøà¼½½år9^xéÒ¥3f˜?b–{"ów³²²´Z­áÕ>;;{êÔ©ø²‹‹ €Ífã«L&séÒ¥ùùùÓ¦M+..Æÿël§­­M§ÓMš4 _õôô¼wï¾looOôb¸lHcc£——¾ìãããããcf§úË ñööÆ444Sd8Ž™–Ÿ Ò®O:.;;ûÀ]Oøàƒ²³³±'¿ÃhccÜWDDÄ™3grrrfÏžíêêjI#8€ÉdÊd2|µ®®nüøñ–GuqqihhÀ—«ªªvïÞm¾~ßœ8øY¸sçþ_Èãñ¤R)~(ŠÒÒRËS €%'%ãžH$b2™mmmDÉO?ýž >ø^áåIJV«åóùàøñã6‚”®®.¼<:::88X&“I$__ßO>ù¤¿^ˆeb@KJJš6mšD"‘H$k×®5Ü‘¾Ï÷úæÄëI¥Òòòr///<ÀÆÃÃê««ýüü6l`* ®Oñññ¡¡¡†%z½~Ò¤I[·nÅú?‚ëÖ­=z´R©°F3{öl;;;¼¼³³366–Ëå:;;oÞ¼¹··×L/FžT*UBB‚‹‹ ‡Ã‰ŠŠR(†=š|^n”¯“‘‘1aÂ÷þûïã”JåêÕ«ÇÇårãââzzzÌ4jžGXÁßÿþ÷èèèߢer1ÊIÖk,jžG<*•ª¥¥%33ó믿¦*ƒ% “œ”݇-++{õÕWß}÷Ý×^{ª –`2ç /¼?”1(;ŸæÎÛÙÙIUï–c2'ŸÏOKKÊè} 8@žày‚ä hèI¯§ÛŒ!€–ž*¦ÁDBÆXòbªÏ—3‚µ#F¸\qx`áý‹æº{÷.™·~KîÜytäÈ­ÿû?Á²e“¨Îb®®®³fÍ°Ýæúë_¿ÎÉ)··u󿮾3K ­®O*•Ÿ¯»[%Þ¦:™ÐÊSqqJ¥ØØØäåUP‡Lhå)/ï'&“Ðéô/ÞìéyLu"Ò '¥²W(¼­ÕþúŒ\«Õý÷¿j#‘}<I _61Œ¼¼Ÿ(ÌC.ôñ”›ûŒNõª´³³‡ª<äBO÷ïw•–Öö½ctþ|5%yH‡&žÎ»Ñ÷»†>}’<¤CO¹¹×ûžLz=VQÑxïž‚’HäBOI³É+L&£°ðÆÐG":x:¾ª¿»_Z-Fg}”}Ž…D¤Ò6oï§Ÿênm}4v¬í¨QO?ÈÞÞÞåèhOQ:r Û}X€‹Ëæ´´• Π:™ÐaÜû=€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op`ü}Â;w^¹r…ª4¤ •Nvr’ÛÛwQdPàÓþ?W"‘TWW—É­Âݽ ÕRÃZîß¿_SScThâ{Ô¾¾¾IIIC a‚ï¾ûîÿø‡Q!º>ÁòÈ Op€<ÁÁ <}ùå—AAA_}õQ" ƒLQ[[ÔÜÜl¸yß’¡¡¹¹9((ˆXí»¤w1x¬÷„a˜P(äóù"‘ˆ( ÈËËËËË;|ø0 ï 'N|Þöårù¢E‹¬Žg!&÷bð]ÛÙÙEEE :ÝS¬÷T__ßÔÔôá‡ÖÖÖÓ 9ÒÁÁÁÁÁaìØ±‡'°XÏýƒWz½^©TZÏBLîÅà»æp8qqqdüë= …ÂéÓ§¿òÊ+nnnB¡p9‚‚‚Š‹‹W®\¹pᬬ,ÀúõëK—.:thïÞ½xÍÞÞÞùóçK¥R|l)))‰]²dÉ¡C‡ðyïµZmZZÚ’%K–,Y’––¦Õjõz}VVVllì[o½µaÆ۷Ÿþ½É½0ìÐÝÝœœ¼hÑ¢ˆˆˆÔÔT|"ò   ¢¢¢•+W.^¼ø«¯¾ºxñbTTÔÛo¿™™ Æ=NwüøñeË–-^¼xÏž=ÝÝÝÖ+=áÃEpp0 00Ðpаš~øáÈ‘#ñññééé]]]Ÿþ9 ??0wîÜ’’N())qvvöôôÄ·*((سgÏ?ÿùϲ²2üsúôi¹\žžž¾ÿþÊÊÊãÇçååeggÇÅÅ8q"66–˜Z°¿½0ìpðàÁööö´´´”””ëׯVTT¤¦¦ÆÅÅ=zôÚµkÇŽ{ï½÷Nœ8ax.ž>}úÊ•+{öìùôÓOïÞ½{òäI뎕ž~þùçû÷ïâ{ØÐÐP__o]S‹/¶³³{ã7FÃÎÔ©SY,–X,‡††¿ûÞ{ﹺºúøøüå/Áï]mÚ´‰Ïç{xxÄÇÇ———®[·nΜ9\.×ÏÏ‘,Ù ­V+ ßÿ}gggÕ«WwH—-[fkk ˆŽŽ¶µµ?> «ëé-ào¾ùæÝwßõððpwwߺu«Õ7N­üD¡P¨Óé /¶"‘ÈÝÝÝüV†÷æûþîǘ¼’ÙØØÌ™3çÊ•+[¶l!"&\wsskoo´¶¶†……ÆŒ£Õj‰óàááaù^( ½^Oß?~<Þ ÀÖÖ–l¸lH[[‘p„ &Lè»w–`Íù¤×ëE"Ñúõë¿}BDD„H$2ÿ“‹|>ßðYxSS“ÉäóùDIßL6äµ×^»zõêwß}÷ÒK/9::åÄÅÿîÝ»\.ÀápNž<)‰D"ѹsç>ÿüs''§ºº:b“††Ë÷bܸq666r¹_miiÁÿŸ,„Ëå¶¶¶â˵µµC:î‰Åb…B1oÞ¼ÑO ¹wï^mm­™­æÏŸÿÙgŸ]»vM.—WVVîÞ½;44”Íf›ï«··_˜6mšN§ûâ‹/ðq†àðáÃÍÍÍ?ÿüsFFƼyósæÌ9zôh[[›L&ûðà .\˜ššZRRÒÙÙY^^Ž_êÜ ¼k‹ôÙgŸÉåòúúúcÇŽ…„„X~¬BCC322êëëëëë<ØÖÖfù¶†X3î …Â™3gâϼq¼¼¼\\\D"‘——W[­X±bôèÑ©©©mmm\.788xùòåfzqrrz饗¾ýö[€M``à… ðË AHHÈ–-[T*UpppLL `Íš5‡^»v-ƒÁ Œg³Ù&55µ££cÒ¤IÛ·o_¿~½™½X³fa×›6m:|øðºuëØlö믿Ž÷b!111*•*11Q¥Rùûû[=‹µñû¹‘‘‘íííÃóý§ŒŒŒÖÖÖ?þ_mnn^¾|9)O5‡øûOF^฿§V«åryQQÑ;ï¼Cuj€ÃÓíÛ·ãããß|óÍ3žþŠò˜1c,X@aª¡Žß/Ÿ>}zaa¡QáØ±c?øàJò =pœOä '8@žày‚ä L|ØÁÁ¡¬¬ìÀ999 cøðáK–,±··Çoð÷÷·°°8yò$…B!×Z³fMjjjBB‚………|úûû‹®îïïO¾655uqq ÑÓÓ“cûmmmñññiii•••VVVcÇŽýì³Ïh4šhrï±¼¼|Ñ¢EÉÉÉr„'e bÏ tÔ‘y‘””dbb’œœLÖ‘cÆŒ¹xñ"B¨²²rÅŠø5BHWW·¦¦æ›o¾ñóóÛ·oBèæÍ›«V­:xð µµ5~OUUÕ›7oðÍÍÍYYYª²²288811QúÛ8`ff&JKK/^¼tôèQNí«µµ5$$D__ùòåæææ………¿þúkzzúÞ½{©ÔŽzäÞ£ŽŽÎ‚ :( <×È£°°°¤¤$"""??¿¬¬ /TWW700000ÀmÿC§ÓFµzõjGGGGGÇ•+WŽ;ö·ß~#7èááq÷î]òÇ””WW×ÎF%˜Læ{ߦ§§g```ddäææ¶mÛ633³óçÏwv_'NœÐÓÓÛ·oŸ···¥¥åرcãâ⪪ªnܸÑ{8p`PPPgcÅ€: ¤¤$++«¤¤¤÷¾?##cΜ9­CBBæÍ›Gþ8~üø»wï¼wïÞ¸qãÈß²X¬Ý»wÏœ9sîܹ?ÿü3‡ÃAùûûß¾}û‹/¾˜1cÆ™3gB_ý5BhöìÙäŠéééÓ§O?uê”ØÀ(ÊŒ3?~Œ|ôèÑW_}5eÊ”9sæà2÷Çܳgþ-›Íž2eJ^^BèÖ­[Ÿþ¹pÓ£††ÆgŸ}vëÖ­òòrÿŒŒŒùóç?þ\úy<^\\ܬY³fÍšÇãñ„W¿yó&~,¾aƃâU¸\îôéÓñDWgΜY¼xñÔ©SW¬XñêÕ+±ÞáÌà>|øpñâųfÍúñǹ\®Ø…b·蟠Žt~¨€òóó{oï=.—[QQaccƒd³Ùl6[MMÍÜÜœ|ÏÈ‘#Ùlö›7oB---cÆŒ!ûÃ?ÔÖÖÆÅÅEGG§¥¥>}/ðàÁO?ý´|ùòC‡577ãJëÒ¥KäŠOž<9|øpDDÄ‘#G$5UZZZVTT „Z[[£¢¢BBB>ÜÔÔ4nܸ‡òù|„ÐÇÍÌÌX,VCCùžäààPRR‚_Ÿ;w.22ÒÑÑQÊB.\¨¬¬üðC„Pss³ôãRSSûõ×_W­Zehhˆ¿a¼¥¥eäÈ‘t:=;;!tûöíÉ“' ·ªv@¡P~äææFµ$7nÜøöÛoMLLììì–/_žšš*võ>ø€Éd¾~ý!tçÎ)S¦à=¢«_¹r%88xìØ±†††>>>’‹‹=3!!!–––NNN_~ù%y’Å.ãlrHJJâóù3gÎ$—$''ÛÚÚJz¿ššZYYn]Ãí—ÍÍÍ3fÌ~Ûøñãcbb–-[Öá¡vcc£@ /-,,jkkñk###„.ñVfhhˆ’Rù!„ÊÊÊðÆétzYYYll,›Í&©TêØ±cïß¿ogg÷ôéÓÐÐP„ŽŽŽA~~¾‡‡‡ð¦òóó‡ ‚_[YY½w¡ªªª9sæ¿ÒÖÖ»ºººú˜1cîÝ»gcc“’’røðaI«óx<á†R;;;±1ˆ=3–––äÞÉ“,v! ¨#%’““¿þúëiÓ¦á%ÇŽKNN^²d‰¤rB¡¸»»_»ví»ï¾#Š> 5jTkkëóçÏÓÓÓq¹†éëëS©ÔÊÊJ<¸»¢¢—è}¢,o âÊ•+¾¾¾¡öööÍ›7oÞ¼yôèÑ\.—13~üøíÛ·ÛØØŒ5ÊØØ/œ8qâ‰'ÜÜÜÈ.’mmm§OŸ&«:IÕ­ðBüþûïñ<øq¹¤Õ~üñG‡!C†µèêQQQoÞ¼!çT***’ýÌ”••ẳ´´š’‚çÚ€ÎÊÎÎnllœ4i’æÿLœ8±¬¬,??_ÊZ_~ùåŸþyèС‚‚‚üüüãÇ_»v­C©„mïÛ·ÏÉÉIxzE:îïï¿ÿþÊÊJ<½Îĉ¥ì‹ÍfK?„¦¦¦†††ººº¬¬¬7VVVâ?\.—ÇãÑét‡ƒû)¶¶¶"„œù|þñãÇ'OžLnä‹/¾hll\½zujjjYYÙ_ýbdd$ÜLûÞ="„ÆŽ{øðáêêê‚‚‚ˆˆˆßÿ]RØ^^^,+>>^¸?€èê3fÌøùçŸ>|ØÐКšzôèQüÎëׯ·´´H?3(//ÿûï¿92iÒ$) A{$ ³’’’ÜÝÝ…ënܸ;wî?ô]Á`p¹ÜŸþ¹¾¾ÞÞÞ~ãÆx{ll¬««+¹_±&NœÚÖÖˆŸbwX(eu@C!gÙ„…BÙ´iÓøñ㕈j9räHUUÕ† ”HOûµ7ò}›Î–-[ŒÏ;×­T<×i8Neeå7Èþ 0¨#@šW¯^-_¾ü£>’ãûuzmmíéӧ˲HÐ?¤qqq¹r劲£èqzzz«W¯–e! =ÈêH ¨#€< Žò€:ÈêH ø>À;(о¾~Olœ (\®6—«K§·©«7ôÄ.¤ãóÕ©T.…"Pü®… ¨T*G±;¥47[©«³ &•Êí¹Lœ8¾Ï€þæ¼cîܹݻA‡ÖÜÌhnVg2,–š@@QSã[X´XXè½åîC¨ªJ»¨HwðàfKK–"w-ª°P·ºZÛÖö­©i«ÂvÚÞN{õʰ¡NMMž®.GW—3`GK«›kJ;;;__ßîÝ&@5A{$ ›µµqÓÒ SS ²³Ë²²Jjjš55Õ<=m¼½m»ºZPpHYY¥¡¡gòókÂçg0h  ƒ¶6îO?ÝÙ¿ÿ¶‹‹Ulì¼!C)l×<žàåËòÔÔÂììÒÇß”•5ji©aáì<ØÛÛvÌGm…èí Žtƒ×¯«²³KÓÒ SS jø|ÂÑÑÔÙÙÒÛÛÎËËÖÞÞ„NWNoìÖVή]×àím;߯ÆH)aˆõòeEXØÙœœò  ñááSÔÔ”ð€¨ºúmjj!.+33K¸\¾µµ¡——-¾pC†˜R(ÅGè- ŽÈC¸Ñ1;»´ºš©¡Áðò²ÅŽ..V&&ŠntõàA^DĹººæ¨¨™¾*Xñx‚øøÑÑÿ51ÑݳgÞ˜1J ¦¥¥='§HK+ljj0@ÃÕÕÊÛÛÖÛÛÎÓÓFSSM‰áTÔ‘Y×§¦Ž<ž`ÈAªÐè(ª©©5*êòÅ‹Oÿõ¯‘»vÍ15¨ìˆ¤))©Œ¼pïÞëÀ@ßg  ¡ìˆŸ/Èϯ!Û˜óòªi4Љ··­——­••¡²c(Ô‘‰ÚÛyYY%¸’mttvljª«ìŸ~=kÆK<ž`çÎ9Ó§»*;Y]½š¹nÝE:ºmÛìiÓ\”Î;jk›33K²³KSS SS ÚÛy¦¦º¸K¥——­››µÒ»œ”êHÀ;JJêŸ<)ÈÎ.KK+|ù²œÇw˜S©FGQUUo׬9ëV΢E£×¯Ÿ6p –²#ꜷo[w츖ðhÒ¤»wjf¦Ð!í2©óèÑ›òòFêx{Ûy{ÛzzÚèëÃHú ¨#èïDÕÕéÎ΃qYàìl©â…1‚ Nz¼}ûÕ4¢£çN˜à¤ìˆä—’’~®¾¾9,죥KÇR©*×­S9R'-­ðÅ‹2€€‘:ôPGЕ•5>z”_½ªàrùVV†øiµ··íðáªÜè(ª°°6,ìljjap°ÿêÕ“ûÀp¶6îÞ½ÄÅ%»»[ÇÆÎwt4UvD2©“šZøöí;#u¼¼l54ÊŽРŽ _àpx™™½¾ÑQŸ/ˆ‹KÞ»÷++ÃØØyžž¶Êލ;å䔇…}ù²B‰ÉMúH__ûÁƒ ”# « Ž Ïª­m~üø ~àˆ--õ}}íq££““yoñüyYhè™×¯«"">R…ÙÅ{91ÐàÁ11ó< ¥]½š¹v탶}ûì?V­‰ºFêÐ{A @/#ÚèÈ`Ð\]­ðÓjooÛ>Óè(ŠÅjߺ5ñÔ©Ç~~C¢£çöé°ëêX[·&^¸®Êu…èH]] ©€Š‚:€^ ¾ž•’òN££‘‘ÎèѸoÙÈ‘–ZZ½~„ò{ݼù|íÚ‹\.o×®O{Ñìâ=!)éUdäy&“Ý+&’›Ø‘:Ç[à´‡‘:¨¨#PEý¹ÑQT}=kݺ‹W¯f~ú©çÆ3Œ•ÿÍÝJÇfsöíû3..ÙÃÃ&&f^o™¨+jjš³²Jð0ììR©€*€:UÑÐÐòôiþ7ùòeEKK»¡¡Îô¯FGQ v츦­­¶{÷܉‡+;Õ‚'úûïÊ+V­šÔ ).—ÿêU…¤‘:^^¶zz½ì«Œè¥ Ž@iâÅ‹2ü´:-­°¸¸¾?7:Š*/o\³æüÝ»/Y26<ü#]ÝÞ=H¹‡à‰vï¾nee3ßÃÃZÙ)ŒÔ@Y Ž@¡[ÒÓßit40Ðöð°Á(#FXhk«+;Fåó‹ïÛ÷§……^lì|oo;eG¤êŠ‹ë#"Î=xè5SG§ÿf‹Õþòå;#uŒ¸ºZ9;[ÂHºÔ‘ô,ÑFG*•2r¤%~ZíímgmÝïK—›[v.+«dÕª‰+VLTWïM_â¢DA\¸¾eK"ƒAß±cöÔ©ÎÊŽHùðHÜÉ8;»,7·ŠN§’#uFv°´ÔWvŒônPGÐýššZÿ×RðêU‹Õ®¯¯íé ŽïÁåò÷ì¹ñË/wGŒ°Ø»w¾““¹²#ê}jk›·m»‚'ŠŽž;hP¿îьԠÛA @7€FÇ®ËÈ( ;[RRùñ¿ÿý!NUvD½Ø;¯Ö®=Ïd¶mØ0=0ÐzŠ©“’’__ÏÒÖV>ÜFêÐ)PG §·o[qᘚZ˜™YÒÜܦ§§…¿EÆËËvøp‹þÜG­SZZÚ·lIüí·ÇcÆ8îÙ3jînAN äéi3ßÁÁDÙ©´#u(н½ Ù¥Fê Ô‘ÈŠ ˆÜÜj²¯Õ›75A@£cÝ»÷zÍšóL&{Ë–O>ýÔþ[w¯/ÊCCÏäæVõ·‰º‚Åjö¬ÿ™?yRÀd²…Gêx{ÛAŸ]HPG “É~ò¤@¸Ñqà@-oï GWW«`2954´¬]{áêÕÌiÓ\¶oŸcb³‹÷OpèPrlìM;;㘘ùîîýqb ¹I©óÁ0RôkPGðÑFG€pt4ÅO«;8˜ÐhÐu¯«ÎŸOÛ¾ý*FŽž;iÒe‡Ó÷Õ­Ysþáü… ûûÄ@]Q]ÍÄŸ*SS ²²J9œÿ©ãím;r¤e_ýŽJ$:€w³²J˜Ì6]]M;htì M‘‘çïÜyè»aÃt]]MeGÔ_à‰6oNTS£ïÜ9ç£F);¢Þ FꀠŽý4:*…@@=úWlì #£±±ó}}í•QDN 4}ºëŽsŒŒt”QQ\\ï'0Rô+PG‚þ‚Íæ¤§á}ffImm³p££‹‹|í^Êϯ ;ûôiQp°hè¿à;E”ëöí—k×^hn†‰zŒÔýÔ‘ /{ýº O蘚ZXPPÃçC££p¹üýûo8pgèP³½{ça¡ìˆBByyÙÆÄ̳·‡‰z„”‘:ÞÞ¶£G;@“0èÕ Ž}J[—¼_ge•ÔÔ4kjªá/’qvìêjel ƒ‚*3³$4ôlAAMXØ”åËýavqUóôiQXØÙââúo¾™)ŒÔ} Ô‘ ×ëÐèÈã † DvK²·7ÚE)Z[9»v]?~ü]LÌ|#eGÄãrù¿ür76ö¦Ilì|77+eGÔ_°ÙœçÏËp—ʇóZ„Gêx{Û#u€ªƒ:ô>ÂŽÙÙ¥ÕÕL þ4ïì<ØÅÅ f"Tº¿þʈ8×Ðвqã è~×+ÕEDœOIÉ[¸ÐwÓ¦™ððŠ#u@ou$èðU_SSkTÔ募N™2rçÎOMMu•91ŽŽúîÝsýý‡);¢þ«¹¹-3³ä#uÞ0™m&&\\¬p÷n+©TÔ‘@Eµ·ó²²Jpá(Úèèì< tíZÖ† bÇŽ9Ó§»*; ššæíÛab "ÜUVUÕÛ5kÎߺ•³hÑèõë§A¿®ÞîÖ­œµk/´´pÖ¯Ÿ=TJuõÛìì2©TÔ‘@™8^fæ;ŽêêtgçÁ¸›¹³³¥©é@eÇÞƒ ˆS§oß~UWW#:z< í3š›Ûöì¹ÿÀÛÛ6&f¾±²#‰ŽÔÑÑQwr‚‘:@q ŽŠVVÖøèQ>¾ñ½zUÁåò6ðñ±ÃŽNNæ0óˆ úÏþts³7nh‡åµaagÓÒ ƒƒýW¯ž¬©©¦”ð@ÏIO/ ?'eb ­[gÌpsu…QÞÊ'v¤9cîСƒ” 胠Ž=N´ÑQMîâ޽ÆÝ»þ2hÐÀ¿þZ«¥õO¥Èç ââ’÷îýÃÚÚ06v¾‡‡Rc=O sÓÁÁ$6v¾pÉøôiÑŒûMLtoß34„^z*„©“šZ˜ž^Äfs`¤è PG‚Q[Ûüøñ›ÔÔB²ÑÑÒRß××{ÒÒ†€€˜––vòï¸uë,„PvvihèÙ¼¼êðð)AAãájöEEuáágŸ<)øâ‹##§jk«s¹ü ¢‹Šê(Ч§Ýùó!ðQª‰Ç¼yóÏHÔÔÂ’’wFê|ð|rƒ: „›ÍQWgt¥w6—Ëö¬?OIM-€FÇ¾ÍæL™²·°°žÇã#„(töì×÷î½>t(ÙÅeplìgð¤¬_ÁmÚô»®®æîÝŸ¦¥îß›Ï „h4êÒ¥c·lùDÙ1‚÷©“™YÂåò»q¤NCC‹v7F TÔ‘=x~þøñeC†t®&¨«c=z”ŸVçä”·¶rŒøúÚ{yÙ:;[Že ½åz»ׯgã"!D£Qtt4ÚÚ¸¡¡S‚ƒáKû©ÒÒ†ÈÈó÷ïç!¼óä‡Î륬À€Z[9/^t©ãæfgXóñ±ÓÕÕ”}káî¾iÙ2¿à`xLÑO@Ù¯ÕÕ±6n¼”˜ø !ÊÞ½ó,ð•þ~ÑFGƒæêj…ŸV{{ÛB£c_ÿpýú‹n4máBŸèè¹ÊŠ ¨>_0aBtQQ=—ËZLQW§Ý¸±zØ03¥EºFøòòª©ÔÎÔyýºÊß?šBA¶¶Æ?ü°ºM÷PGöSxDlìM>_Àã ètêìÙžÿùÏÑwÖ׳RRÞit42Ò=Ú7:ŽiI¼}IjjÁœ9?áG–Ðh”ë׿sv¬ø¨€Š8vì¯/whŒDÑé´AƒtoßïT#PMÂ#uÒÒ ÛÚ¸¦¦º¸ÕÀËËÖÕÕJM­ãH“'SÖ­»Èç ¨T A Y³Ü·n¹û6¨#û£gÏJ¾ûît~~µð¿++ÃÇ7 „ø|ANN9¾q@£cÿT]Íœ8qOcc«h¡€¢ÓivvÆ·n…Ás«þ©¢¢iìØl6WìoétšŸß'¾‚Ù°ûGê|ûí©Ë—3x¼>Òh4MMzTÔL˜Ê¾ƒ:²innÛº5ñ·ßS(Tà¦& …òí·“rrÊ32ŠëëYÚÚênnVžž¶îîÖÖúú𲿈… ã=ÊçrÅ4F’¢¢fWTP@…,]zô?žKù×A¥RÖ­›öõ×P‚ Þ¼©}ú´èÉ“‚§O‹òók¨TÊСƒ||ì®\ɪ¯o~÷í …ðô´Ù·o½½‰r"= êÈ~äüù´-[®¼}Û*öa%BSS]?¿!îîÖ^^¶C‡‚)<ú§ØØ›ÿùÏŸ¢-‘T*…F£r¹|--5oo[§¯¾§”½}ÛºmÛÕ‡óJJB4…l|F£QNŸùðCG…­©©5=½(=½0%%?=½!ñ1(´jÕD±SÙƒ^ êÈ~¡¬¬qÍšóÉÉS$_pƒ¾bÅ„ððP-×®e-_~œÌF€05Õ îãcçímgmm¨Ü *Àã|ÓÒ oß~õìY‡Ãg0h|>tP©MMõÛ·Ã [ú?þx±té¯Rj jkkôý÷ `üM_òNYÁf³• èvqñbÖ?$··ó¥f P(žžƒþy~§¶¯©©©¯¯ßµQcc#›ÍîâF@ו•5-XpœÍæP©€00Ðöò²rs³ts³´³3ìWÝ›ôõõ55»4R¤_e5›Í}ñ¢òÙ³²§OK_¼¨hoçá:Ô$>~´?©ssó®¬.K>ÿôÓ_ iïáïˆB¡P(è³ÏÜCBÆjj2ºP"á;ä;udMMÍË—/•è~--œcDzÓÒ*ÉŽnt:! Ÿ/[RjhÐ~ýuZ§ªccã#Ft1ΜœœÚÚÚ.ntQ{;Ó¦ûl6oøp£aà ‡ 345í¿b‡nbÒ¥¾\ý6«ù|¢¨èíë×õ/_Öåå5xx˜¹*;(€Æß•ÕeÉçÍ›ÿÊÍm]N¡Ph4 BˆÇ#ðSojo¯âÞŸo2½šðRÌ×kv1Û€JùøãÉ¡ÚÚæòòÆòòÆŠŠ¦ÒÒ†ÒÒ†â↊ŠF&óŸÏ—4•BAmm|sóa²CINNNwÅÙ-õ(芺:Öµk>FFðõhèîݻݲÈj„PQQ™™|•³uW ‘ô|ærùÅÅÿ¥Ñ(pïj …¢¯¯en®7x°……¾¥¥™Ù@ss=KK}cc]Îß{u¸CÂßv¿`l<ÀØx€««U‡åmmÜÒÒ\_–—7–•à]]yòIDAT566¶(%B tPA‚ž`cc¤ì€"44°.ô4h ¹¹ž……¾¹¹ž™™tiè Žì×44ŽŽ¦ŽŽ¦Ê@/fj:pÇŽ9ÊŽ(Lìäu$Ô‘@PGyôú:²¤¤dÉ’%ï}[~~>žE™|!¼ú³gÏètúùóçÉ剉‰jjjÏŸ?; ±±±ùüóÏ¥OÓEÄ¢E‹ttd]K¡Pòóó»#ÒÞAôZw¸èbáLèì¹U<)Ç"c2·´´DDD¸¸¸èèèx{{ïÚµ‹Çã!¹ÎEœî:Ò÷êW‰Ý•¬–å]GÞŠ;{C“QKKKxx¸‹‹Ë€¼¼¼vî܉óVØ™3gÄæä… ºr$m633³kÇôÈgÌçÊ(Pd:õú:ò÷ßÿä“OÄþª  ÀÈèŸ)'ôôôÖ¬Y#iu77·uëÖ­Zµª©© !ôöíÛ¯¿þzÓ¦M£Fê¹È…¥¤¤TVV–••;vŒÉdº»»ãH΍¨8uêÌ/‰¤k-΄^}neIæææfOOÏ'OžìÞ½;###222!!aòäÉ|>_¾ó†SWX÷”ð_qÖ•¬&×íÑ“)|+îÔ M–¨pÞ¦¥¥EGG?}útíÚµ§Nš4iŸÿÎW§Ìœ9'aJJ BˆÌÉ1cÆÈqöÞ»Y˜Tn½%Ÿ{(£úBHuuurr2Ñ«|üñÇ­­­b•——×áE’«···92((ˆ ˆàà`‡ÓcQ¿!”——Gþ(üüü¢¢¢$½_ìqɾýnôâÅ‹/^¨Îv: O”,g gBgÏ­âI‰P–d ;v,Ç#×b±X666qqq¢»xïÙè¹Ô F‘{ONN®®®îâFT'«E×í ä¾zâ†&)o>,÷6åУ'°çò¹[þ³÷Û|VÀ¾zBÞœ;Ü!;ÝyåÊ ü5ܧOŸ2dHKK BˆË冇‡›ššš˜˜„‡‡s¹\Üø|çÎ++«»wïnÚ´ÉÊÊÊØØøóÏ?'?›Š®…ºzõª³³³†††ÝÉ“'B<OìêuuuÚÚÚšššÂ Ýäk___„РAƒ„6sru„ššZ||üÑ£GwíÚuìØ±øøxƒ!)Èn<4Q %88øúõë’¶#|\2nóÏ?ÿtppÐ××ßµky6‡jbb²jÕªööv± eM‹ž'6ñÁœœœ 0zôèäädܘ/å‰Ãµk×ÜÜÜ´´´ÌÌÌvïÞ’™ š3ø*?xð@ìŠ åèÑ£NNNÆÆÆ»wï>yò¤­­íÀ7nÜˆß zùFýý÷ß#„¨TjXXBˆÏçëëëã‹ÞÔÔôïÿÛÈÈÈÒÒ2,,¬­­­C$xËA„……¹ººÖÕÕ!™“9!!!**ŠFûÿɵµµ#""N:%ÇyëÔÅ’”`Ò×ÑÑ e{½=±“Õbo‰HÂ=ê½)-ö†#œ~t¸¡‰†*KTbó6<<zôÈÀÀ@Žó†ÊÌÌl~—¤‹%)Ád9^±ùÐs‰­ÈöHEfu‡6Ñä$Þ—Ò’n8Âé'å†&6Ô÷F%)o>|hjj*œ-äݯÃ6…”ãoVìv‚¸wïž¡¡!—Ë%"!!aĈ@R¾IÙ,Xå³"Û#û^>c=”Q`Þ¼yÁÁÁøGÑ›!Þþ§Ÿ~ÚØØxøða„P}}½ôm’QõP:"wHyêÈÆÆFKKKgggáý 6¬²²¿¾uë–««+Ž/;;› ˆ¡C‡^ºt ÿöåË—äkѵ Flllcc£@ hnnæóù’VŸ3gNCC!oI®Ž ‚™3gÒh´E‹ oñ¾:RÒÞñIÛ†º{÷.A¸/Q^^žpüAœ={ÖÁÁAìBB*ב¢‰7bĈøøxò Ç—~‡jooõê‹Åâóù÷îÝ#ϼ”DÂ'DÒŠ¡ŒŒ ‚ 8N‡×ø ¢—/==]GG‡Ãá¬^½zݺu £±±1&&fêÔ©x]FžK—.u¸4øuDDBèõë×ä±Ë’Ìøÿ1Yz’RRRŒŒŒä8oHIKl‚Éx¼bó¡ç[‘u¤"³ºÃÉMNâ})-é†#œ~RnhbC}oTR>ÿyK^_LúýÎþÍJÚ,Ç4hÐ;w‚˜:uêîÝ» y.}³d`=”ÏŠ¬#û^>c=”Qqqq¾¾¾mmm„„›?Þ>¾|2n“Œª‡Ò‰èúsm„žž^PPPNNNHH¹°¨¨ÈÌÌ eš4iRaa!^>lØ0„Pqq1~>…rrrš5k–¤µôõõ“““?~lii9nܸ¿þú‹J¥Š]Åbq¹\}}ýáþ½u ºú©S§îÞ½›””táÂ…ÄÄDÅšØØòòòìíí¥ï“q›æææ¡¿"Ã6lXYY™”…*B4ñ \]]É78;;Kß‚ššZnnî”)S<<<âããñBI‰„á«,vElÀ€!üàXø5&zùÜÜÜ´µµÓÒÒîß¿?cÆ 77·û÷ï'''üñÇ¡êêj>ŸO^}ò*àH°´´´ñãÇïܹSÒ!ˆMf==½Aƒ‰2ÍÌÌÞ¸Œç í‚CîKô.DLÆã•¤$¶R²“to‘’Òbo8ïÝyC“’HR¢’’·øµ,ÙBêì߬¤íÐh´Ù³g_ºt©®®îöíÛä¯DóM–ÍB>£ÞÏ¢ä˨ììì]»v]¸pA]]I½ùãÄèl–*,ä©#KKK80qâÄÐÐPr!þ\ˆÿ‘466>~ü/ÇGnnn^TT„—dffîØ±CÒZl6[ œ?¾¡¡aÙ²eÓ§Oohh»úÍ›7§L™"ž¢¼¼\–£è°zEEŪU«bbbüüü6mÚ´|ùòúúzšh`Aüüóϸª²wLÆmŠí‰‚?ˆ „rssqÂIZ¨"DÏÂÂ"++‹|CNNŽô-°Ùìyóæ…‡‡gdd¾â¦¦¦4­  ¯þæÍ áH°«W¯ÆÅÅ9s&99Yô¤$s``à¶mÛÈQ® ,8}úôîÝ»,XÐÙó&Ø»I0W’>ØJÉjLú½EÒ¾Do8Ò÷%|C“%‘ÄF¸uëVáÑÙ---ÑÑÑä~eÉuê´Ì;÷òåËçÎûðÃñ[L4ßdÙ,ä3Rù|–ƒØÀX,V``àñãÇÉ;ž”›¡hóJ¥S§ëH@°téÒ•+Wž>}úöíÛW¯^ÅËgÏž½víÚâââììì)S¦üôÓOÂk-^¼xýúõ¸a|ÅŠÅÅÅ’Ö¢P(“'O¾xñ"“Éäp8 CKKKìꉉ‰3gÎÄÛÑÓÓC8q‚Édîß¿_x×,Kì¯NÄòåËq§éÐÐPSSÓ•+W*àÐð›kkk«ªªÊËËïÝ»7kÖ¬ÂÂÂÕ«W˲wIÛ4âݧðƒ îy }ïR¶I~X}·päÈkkk##£•+W²Ùl± ¥'ƒ"ûGŠM<‡³uëV[[[Ñ£GÿöÛoHjÏ‚ öíÛg``0xðàƒ.X°@___8Äö©»¢‰‰ ñ¾óLHHƒ¦¦&:ŽGÀ´´´¨©©EDD;jhhX¼x±¡¡¡™™Ùwß}G^ѨØlö!CÖ­['{2Áb±BCCGŽ©¡¡aoo¿~ýúqãÆÍŸ?¿Sç<|±·±KR‚I?^á¿â÷žðîJl…õTpVw8™b“ó½)Ýá†#z+–~CM$Y¢"„òVKKkĈÛ·oÇÓ²ˆíA+½7›³b7‹kjj2™Lá÷ˆæ›g»»òYaý#ûd>wØ©èòeBHMMM]!îfØÙm* ‘;$…ú³¯©©yùòåøñãÅþ{}F~~¾££#ñî_ìBéðŠ®OÆÛ]Û‘ãBˆÃádddàI4zŽ®Nw%öÝ»w‡nbbÒ•` «û‰õë×:u ÿØ×«»ò¹[þ³C>÷vÝ•NHäIï¶½“ššZO‘ô=mmmG=}ú´²c@izý÷"9èêê._¾\–…t$$6P¤'Ožxzz.]ºT¸©¯ó òt£žK'x® ä§jϵè*õ\€.R©çÚ èp‡„öH ¨#€< Žò€:ÈêH 1óGVTT(>еµµihhtצ ñ@Y T¤/î,Èg –˜:277Wñq€^ª»êÈææf¿±€Þ²ô%Ï@, |=ôò€:ÈêH ¨#€<þËÒ©‡õøIEND®B`‚XQilla-2.3.0/docs/simple-api/ATGDayOrDerived_8hpp__dep__incl.map0000644000151400015140000000041611653571064021272 00000000000000 XQilla-2.3.0/docs/simple-api/SequenceBuilder_8hpp__incl.map0000644000151400015140000000003511653571064020502 00000000000000 XQilla-2.3.0/docs/simple-api/ATQNameOrDerived_8hpp__incl.png0000644000151400015140000004574011653571064020500 00000000000000‰PNG  IHDR«Ã*AϸbKGDÿÿÿ ½§“ IDATxœíÝg@ÇÛð9Ž&EbQD‘&Š5 "Ò«6T£ÅKbbLŒ%Jì"Šév»(ˆ*&+û~Øî½ÀÑïn¯<¿OÇr;óìÎîí³efI†!ˆ1¢ Dd€(‚ EâD€ yðàÁ/¿üBt€wîÜ!:8 2ú ªªêîÝ»sæÌ!:ÀSÕÕÕïÞ½#: 8 2úlÏž=D‡xêþýû?ýôÑQÀað Š Dd€(‚ E¢úÀ-/^¼páÂêÕ«/^ŒOIIIÙ·o_çož={VGG§µµ544ôÅ‹ååå£Fš9sæ¢E‹Èd2Bhîܹ³gÏÞ³g‰DÂgùôé“Ojj*ÇÃnmm IOO¯¨¨1bĬY³˜a°š;w.󳚚ÚäÉ“ýýý•””zSÅÀƒg[ÂܹsÃÃÃ555û],"2¸ð””UUÕÔÔTf0cÆŒ«W¯"„***Ö¯_F)((477ãGP???MMÍ¢¢¢óçÏ¿|ùòÏ?ÿC=xð 55õ›o¾ájØxÊÊÊkÖ¬ÑÐÐÀÃÈÈÈ8tè«   uuuƒQZZzõêU??¿àà`99¹k‘““óòòâÎz îÀEEE%%%Û¶m+(((++Ã'JII Àyø-KKK„……E7¼kkkutt:L;vlQQþYLLlÇŽ/_¾¼uëëwš››wïÞ=vìØððpÿ³gÏÖ××ãÿzùòåÉ“'ýüüΞ=ûìÙ³óçÏûûû‡……Q(„PLLLEEÅéÓ§:”™™yáÂ…®ÂÐÑÑ)))Á?GEEíØ±cìØ±—BKK«¼¼ÿܹp¶³[ZZ>xðÏiÒÓÓ¥¤¤¦L™Âvö«W¯FFFúùù………-Y²äÔ©Sl×äóçÏÏž=»mÛ¶sçÎዉŠÿí·ßöïßÿüùsf†Äv""28ïŸþ©®®¶°°@YXX3äÝ`>åÇ„aë鸖––ŸŸßñãÇ«««™%%%ÏŸ?0dÈUUU„PSSþ/OOOkkk„ÐâÅ‹eddlllB ¡7nlܸQUUu̘1kÖ¬yñâE71 ü³ŸŸŸ‘‘‘´´t÷ËÒUáfŸ>}:…Byÿþ=BèÞ½{666ø#‡gOLL\»ví¬Y³† 2uêÔ®n"à‹ã*++]]]™ÊÊÊ2Ã011醮®.þ¹C<¬ÊÊÊ444º*œíìRRR3fÌxðàÁ¨Q£ž>}zöìÙ®f§Ñh¬'ÆŒÃ6†!C† N¹”––³öÏŸ?w3‘Æ`0RSS×­[ggg‡O¹páBjjêŠ+:Ÿå3YYY]¼xÑÐÐ?éß·oßôéÓ/_¾ÌìG€#‘HÛ·o÷õõMNNƧ´µµíÝ»wïÞ½æææT*•í#{l)**9rï;‡_ÿg†addļöÐÚÚÁ<³æ¬0 KLLœ6mZ7…³ÝÒÒòøñã:::ºººÌ£rçÙwïÞýáÃmmmü ÅÅÅlÃ`»†ËÊÊðŒ¡´´Oºš€H»pXvvv]]ݼyóýËÊʪ¬¬¬   ›¹–-[V[[»eË–ôôô²²2uuõ_~ù¥½½}áÂ…¾©®®îïï…ÿI¥Ri4š¸¸x{{;~»½¹¹¹7qΚ5ëìÙ³UUU………Û¶m‹Çè««Û¼yó‹/ÊÊÊ=zäïﯢ¢Âz=ƒ©¾¾¾¶¶¶¦¦&++k×®]ÝÎÖ”)SCBBlmm»‰ÍÁÁáäÉ“Ož<©­­}ñâóyÆk×®1ïzt%((èÓ§OÿüóϹsçæÍ›×ÍDD \€ÃRRRŒYÇÆ;v¬††Fjj*Ûèp222gΜ¹páÂÉ“'?}ú¤¢¢âãã“““³ÿþÝ»wwø²½½ý£G222Brrrþþþ¿üòË Aƒ/^lii¹mÛ¶¸¸¸ã\¹rePPÐêÕ«I$’……Åš5kXÃ8uêTyy¹ººº¥¥¥»»»„„DçÖ¯_PUU5008sæ ójçÂkjj؆!..>{öì{÷îÍž=»›Ø$$$¨TêÉ“'¿|ù¢­­½k×®uëÖ!„þüóOCCCf½lYYY¶¶¶ZZZz{{ã×ü;Lìqu |H{ºåééÉ‘øØ¢Ñhyyy&LàMu‡íÐý‘ðþýû?ýôüZ!wà_âââpøp d¡%++kooß›‰ˆ ÈBKIIióæÍ½™€‚ E¢2@Aˆ"ÈQ Š`T`úlË–-¦`˜xk«"™L•”¤Ò@`™Db ÄÁïÄbpª¬æf52¹UJŠÂÑû¦®®Ž¨ªàÈèƒáÇ»»»ãŸ1 54HÖ×K×ÕI56JbÒÔl=ZÀ2ƒôæÍYYª¶öWŽX\¬ØÜ,®§÷¥ë÷ öMvöÐúzI))úСͪª-22TΔÛGÞ˜ €€÷Ð7ÙÙ¥å=|˜—‘QÜÒÒ>|øàÙ³ÇÍš¥;sæXeåîÞOÇÚÛi>>góó+ããFŽäÌrß¼ùäì|ÜÁÁèÐ!OŽˆ*+«KHȼ|ùyQÑgUGG#WWÓQ£T8U>¢ 2zöõkóÇywî¼}ô(¯ªŠ¢ 0?êÏš¥Ë©'ï1Øúõá©©ÿÄÆ®×ÓSç`É))¹Ë—ŸÛ¾ÝöÛo-9X,B(;»4::#!!³¦¦ÑÀ`¸››©³³ñ!rœ­]úøñË;oïÜyûâEa{;]OO}öìq³g33#-Íæm¹‚eçΘÈÈô¨(“Q/<<üÙöíÑAA>ÎÎÆ/œNg<}Z~ýz6Ƙ={œÝd;»ÉƒIr¼.„düƒ½~]rûö›Û·ßþóO…¢¢Ì7ߌ·´œ0k–îСòDGÇ1ýuçС›çÏûΛ§Ï¥*vïŽ {½ÎÔt4—ª PZoÝÊINÎJIÉ•••²¶ÖwwŸ2sæX§žA@¨ABÿKîÞ}÷ðaÞׯÍÃçÍ›0ožþĉZbbÂv8 ¶cGô_-vu5å^- ¶zõ…´´Âää£Gå^E¡ŠŠúkײ£¢^¼yóICCiÁ/¯©&hpµRd@¤•—×_¿ž”ô:3ó£˜iΜñóæéÏž=nøðÁD‡Æ-II¯ýý/~ÿýBŽß¤ï¬µ•êæöwmmSRÒFÞÜ­ÿ¾2&&#&&½ªŠ¢«;ÌÝÝÔÝÝLUUx.ÞÀAQôáCõÍ›9·n½ÍÌ,–”Ÿ5Kwþü‰VVúB¨xðàýÒ¥gW­²ØµË75VW7ØÙÑÔTŽŒô—”äQ÷cËÈ(Š‰ÉˆÏli¡NŸ®ãæfjkk ++Å›RRò%1ñuB«·o?©¨ÈÍ›7ÑÚZßÂBWDž ËÎ.usûÛÎÎðÐ!O^Þ)ÏË«tp86wîø'–ðø}[íöí711÷ïÿC&‹Í›§ïæf:w®ž¸8 ‡ d@|øPŸ™””•—W©¦¦èæfêæf:nÜ0¢ã⩪œŽ›™>sf9™ÌëãßÓ§^^§¬mx\5®¾¾999+::==½HMMÁÎÎÐÞ~²™ÙB‚€O@„VqqÍÕ«ø_UUÞÞÞÈÞ~²©éhá{²¯GUUGÇcêêŠk‰êÇxåÊóÀÀÈ£G½Üݧ®  :!!óêÕ—ÅÅ5cǪ98º¹MÜAÈ€°©ªú“‘—W9dˆœ““±½ýd“Q¼?ñå_¿6;;‘ÉbW¯®WP&0’ýû“OŸ¾é’ßÌ™º†ÃŠÏ¬«k21eooèâb2x°€êÀ@@„DCC+þTÿ£Gyd²˜¥åÃyóô…`èžhnn÷ô)éõµkÙt:cöìqnn¦66“$$ÈD‡×AÎxü8ŽNgÌ™3ÞÑÑÈÚz¢œ<õh4ÆÊ•Á¯_—$$ðÉ(úmm4w÷ÕÕ”¤¤|5Â…ÒrëÖ›˜˜ŒÇóÍ›7B2 ¨^¼(Œ‰ÉHJÊ¢PZf΋ŸºÉËy•›¯`pùη±±ëùjlœºº&;»¿]½ú-öÂÀ‡ˆˆŒ|ñöí'MMe''c/¯©cÆpwD#0 ­±±/£¢^¼zU¢¦¦èêjâá1EWW´ìï_~I:þaxøš3tˆŽ¥£ââ{û¿Ì͵OZÆ·f⃠EG¿¨®nÀòð0ã«ë d@`¼zUþ,!!“Fc,X0ÉÃÃÌÂBWdŸïëÞ‰)¿ývíܹóçO$:öž?/ôô<¹zõì~°#:–î0Š‹ËlmýßàB N–‘ừôd€ß}ùÒxåÊóˆˆç……Ÿ'NÔ\ºt†££\íïFDDÚ–-Q¸-Y2èXº“˜øÊß?ì×_]—/ŸAt,=km¥Þ¹ó6&7W\œ ƒ !à_ÙÙ¥!!O_Ñh [[sssmx2«{ׯg¯Yºi“õæÍ󉎥g‡ß:rävp0_QÈqUU”¤¤×II¯ÓÓ‹ÔÔíì&»»› ':.ú 2ÀwÚÛiII¯CB¿|ùqÔ(•¥KgxxLŽÚ½ñüy¡—ש%K¦ÿô“ѱô †a›6E\¿žÀW+öF~~Ub⫘˜Œ¿èê³·Ÿìî>eÄ\ ÈÉË«|p¡˜˜Œ›7sÄÄH0¸àw"ÑhŒkײNžLÍÎ.Õ××\µÊÂÑÑHÄGñë‡êê'§c**ò‘‘kù°‡}o”–ÖÚÙ50кpa• ?[×ap!{ûÉnn¦S¦Œ  3@D@ˆQW×ü(4ôÉׯ-pÁ (”gç ¿AYY€Ÿ–ÈÊ*uq Z¼xÚ¾}ÎDÇŸ>ÕÅÇg^¹òâÇj--eGGãÅ‹§Ž ƒ ~ൊŠúóç…‡?¥Ó1³U«fÁob¿µµÑ¼½O—”|IHÄ›è\»–µfMèO?9­\iAt,œ„.õâóçƒánn¦NNÆ**rDÇDd€w>~üt/*ê…ŠŠüÊ•³||Ì”£Ñ«W_xù²8!!@h²¨'RöïO>wn…Í$¢cá0:ñôiAttú90¸à^xýºäÈ‘Û÷î½ÓÑQ œ¿pád¾ V€lÛ—µÎÈhѱpÒÎ1W®¼ˆ‰ùÖØx$ѱpëàB22’ÖÖíí ¿ùF¸<à®—/‹ÿøãÆ£Gy††#6m²¶²šÏCqÄÜ8q"%<|õÌ™ºDÇÂat:Ã×78;»4)é;--e¢Ãᢪª¯IIYøàBÆ).\8ÙÃcʤIZDÇDd€[rrÊþüóæÝ»ïôõ56nœ·`œ÷sÊ™3~þ9!(ÈÇÉɘèX¸¢±±ÍÉéÆHL …[Eyy•II¯££3JJþ7¸‡‡Ùðáƒ‰Ž 9ÈçåæVüùç›7ߘ›koØ`ea¡ çý•¾iS„  §ßoUU_mmêꪅ…ù zÿÀ^b¾…(!áUSS>¸““±œœ Ž‘ød€“²³Ký5ùÑ£¼™3Çnßnkb2Šèˆ„MJJîŠç×­ûfûv[¢cáº7o>9;wp0:tÈ“èXxª­öð! .¸2ÀEEŸ¾÷rܸaÛ¶ÙZ[ëÃy?Ç¥§-ZtÊÅÅä?ÜEdõ¦¤ä._~nûvÛo¿µ$:|ýÚœ””ž‘Q¬¨8ÈΜ¨ššÆÃ‡o^º”¦¥5xëV#¸ßÏ yy•ÎÎA3gŽ=qb‰H=4þlûöèãǽ]\LˆŽ…0eeu ™—/?/*ú¬££êèhäêj:j” ÑqÁè? ¥õøñ»ÁÁ†•ÿá;èãÇ=eeu7ìâÅÕ"x)x÷°§ÑÑëLMG Á²³K££32kjñÁ…œ‡ Á…@@ú£½vöìƒ'RÉdÒ¶m¶žžf"xX♚šFGÇcòòÒ11ߊæCa ¶zõ…´´ÂääB3öÑ@0º~=›FcÌž=ÎÎn²Ýd}+ d ÏîÝËýå—ÄÂÂÏK—Îøî»ypþÁAwî¼EÍ›§ÏœÒÔÔæî~¢¡¡5>~ƒ(¯êÖVª›ÛßµµMIIEy=t@¡´Þº•“œœ•’’+++im=ÑÝ}ÊÌ™cáAЀ>(.®Ù³'þîÝw†ß¿pÄx/‡99{ùòã‘#^nn¦¡övšÏ™üüª„„XÛÕÕ vvG45•##ý%%ʼn‡¿TV~MNΊŽNÏÉ)SWW²µ5X´ÈL__“è¸_ƒ ô …ÒzðàÐÐÇ“'øõWx7äæVXZþ"‘H»v9øùÍþöÛ°û÷ßÇÅ­?^èèøB^^¥ƒÃ±¹sÇŸ8±NsÙzÿ¾29ùuTTzii­®î0wwSww3UUy¢ãü2Ð ~täÈmqq±´ws3…_^.Ù´)"6ö%•JG‘HÈÐpäÛ·ŸÂÃýfÎKth|äéÓ/¯SV6DÇ¿˜ƒ ÅÇg67·ÃàB€-È@wþù§b×®ØgÏ>xyMÛ±Ãî¿rOmm“‘Ñüð#ޏzu½”\ñþ+WžF=êåî>…èXøëàBd²Ø¼yúnn¦sæŒïñÑÝ—/‹åå¥uu‡ñ&N@È{­­Ô£GoŸ<™ª¯¯ùÛon“'Ãeî º÷Ç×i4ëDqq1SÓQ¡¡«å奉 Œ?íߟ|úôýK—ü„ïÅH\R_ߌ?(‘Q¬¤$³p¡››©™Ù˜®¾ïçzïÞ»“'—X[Oäeœ€— l$'gíÚG¥Òöìq„Ëþ<@§3ÌÌöUTÔwþ™,6q¢fDÄZ%%ÞÆ·0 Û°áÒÝ»oããà!‰>ùð¡:>>óêÕ—ÅÅ5cǪ98v\¨¡¡uâÄ©T:‰„m6m²†¡øòòúsç­››é®]C‡ÂD¼pëÖ›+‚êrgœ2etlìz‘ °Gmm4w÷ÕÕ”¤¤°¡ö>¸P||æ—/ÿ\ÈÅÅdð`Y„ÐåËiÛ¶E3 „™,6}ºÎÙ³ËEá%¢2ðÿ¢£Ó÷쉗‘‘üõW×ùóáÒ︸¥§ÒéwF¼ÏÛêÕ³7l°„ßßÎêêšììþRPŽ]ƒáô•J¿ÿŸ¤¤××®eÓéŒÙ³Ç¹¹™ž=û 3ó#ƒñ¿ R\œƒèXÞŒû‹‹?wud#ÙØL:vÌ[FrSg{¢ëÆœíÛ£$$Ä/_^'OD‰ŽÎ Ré$‰DBÇÙµË~Á‚Ip‚ÕWFÕ»vÅjj*±¾UôÕ›7ŸŠŠ>wó»}û­ÍáððÕ0Rµ ƒk¢¨½öóω.<ž?âx¨¨°ç§°°ðîÝ»<ŽM¤`:z´àëWª¬,yîÜ¡ÆÆÊbð°?B¡1cÆXYYõi Ã6mЏ~=;>>` .ÆåååD‡Ð¥cÇ„…¥÷渠¨(}ø°ËäÉðêA¢¡ñŸ]2‘SRòeÍšÐ÷ï+þÙÙÇǼ›oFEEyzzò,0$%5ZYyAccFSÓ+ £qwwŠŠêë\T*ÝÛûL~~Õõëß©«+q#0ޏÿ>Ñ!téàÁ´¿vžÞÜLë4$%%¶lÙ¤iÓ sæÌaý¸¸ÌmÛ¢FR¹{wë˜1½zÏ:äˆÜs÷î;“‘ÊÊð¨ÿxxxôoF òùó+-_~>6v½¬,ÿvi™0a‚ªª*ÑQ°Ñá„Fuuõ»wï:L„kŽ¢‚J¥ïÞ·~}¸½½abb@/ÿ€«¬¬&À៳äå¥CCWUV~]»6´ÃË€  µµM^^§Âß;¶øðáEÐÁ ±áÃ_¼¸úéÓ?ý”@t,ð5È„ßë×%––ËÊê®]ÛäêjJt8pÝäÉÃ[|á£óç ü 2!îì||ìXÕ76ééÁ T€¨X¸pòÎv{öÄß¼™Ct,ð)Ȅٱcw¿û.ÂÑÑ(<Üî7Q³nÝ7K—N_·.,3ó#ѱÀ Nt:ãûïc¼±oŸóÑ£‹a _ šöís™5K××÷|YYѱÀw B ­‹ŸŽ}yé’Ÿ¯ï,¢ÃùŸ‚‚|¨»ÎºQRR²bÅŠÞ|sàðº˜îÛ·D"8p` er¤º_W®\!±óúõkÆ@"‘ 8X —Ébÿ½DEEÞÇç …ÒBt8œ»§ˆæn€°©«kZ¼øÔ›7Ÿ.]ò㫱~•””¶oßÞ×¹âã㜜˜óª¨¨p!ºÿ¯ ÿŒaØ•+WFŒÙïÙ2ðEè~M:::VTTTTT<}ú!Tñ/}}+WNNêÒ%¿††V_ß`*•Nt8»v«~€ùü¹ÁÊê ™ÙÏU/ ßÁ^Nùùùx±ÌÝX¸passsçy¹µ®¬¬,‰tç΄Ðû÷ïûW ÛB¸º¬¸ZB(??ŸK…»»»»»»s¶Ìœœ2í›6Ep¶ØþIMM­ªâÀÊ v+Ø­ºWUU•ššÚa"\ÅÅ5 a0ÉÉßikóh¸±ÄÄDMMͺº:„PDD„®®nSSƒÁ ÒÓÓ“——777OMMůnus‘-99ÙÈÈHFFF]]yq¯¦¦FVVvРAÌy§M›†6lþ*•ºuëV555UUÕ­[·R©T„‰D ÖÓÓ:tèÂÂÂF­¨¨¸k×.|®¤¤$iié1cÆ„……u¨ ÿóÊ•+³g϶²²?~<멉Dºté’žžÞàÁƒÿøã„P@@ÀÊ•+ñÿ666ÊÈȼzõª›B:,B}}ýòåËUTT´´´¶lÙÒÚÚÚã"0×FÛ³gψ#†ºtéÒúúúnZŠmœxQ ãÆb#ý• IDATSUU hkkëjÅvpûömeeåß~ûU‡¢º*Ÿ÷&NÔ<}zYLLúßß#$€>Ý v+íV\J7åæ–î^°àp]]§Êìå5€¥K—.[¶¬²²RMMíùóç†>}ZUU566¶¼¼üÚµkZZZ¡Îç(Ì ERRÒ××·¬¬,<<!T]]aXpppXXÛYp¿ÿþ»««kIIIvv¶±±ñŽ;0 CyyyQ(”sçÎ!„<<<(ÊéÓ§B555RRR§Nª¨¨8þ¼¸¸xcc#k]†1ŒÑ£GŸ>}ð~øA__ŸY#BÈÍÍ­®®îìÙ³¡/_¾ççç×ÖÖJHHüùçŸuuu £¡¡N§³Ö…aXZZš¸¸xMM †a/_¾DåääàÿBá{³@6lذ{÷îafkk{àÀî a]„ööv2™üæÍüÏØØXY¸qãbccñyß½{ÇüŒë°®ØÆ‰';;›ÙâxlW,+„Ðýû÷1 £Óé¬Qu(ª«ò»Ç½ ð]»bGÚ’ž^È¥ò{£7ìV°[qv·‚»ÂéŸ*\]ƒ´´”££× L@§%%%??¿·oßúûûãS ™_000è¾IIɼ¼<“|bcc#•JUVVîfÆââbuuuü¡ÜyóæáÓåååB>#„”••SSSÓÒÒ´´´fÏžýèÑ#11±u]¹r…F£©¨¨H$„ëKüõšÌÉd²‹‹KlllMMÍÝ»w½½½{S®ªªŠN§kkkãêè蔕•õ¸L?~;v,þYOOÏÙÙ¹›uÕUœ!f!ãÇÇèjŲÂ׃Øßgܹ¨®&eï^§o¾Ñ[¶ì|QÑgb#éìV°[uSTWû 2Á–“SæätÜÈhDlìzEEBb(-- ²²² ħhjjfee1¿ðöíÛîKhiiñððغukffæ‰'ð‰7oÞ´±±é~Fæƒ3uuuiii=FÛÒÒÂ`0¢££kkkW®\ioo_[[ËZNŒŒ<|øpÿ6oÞ‰ýûŽÄ;'BÈÝÝ=...**jæÌ™øµÙ Á©©©‘ÉäÂÂBüÏ>hjöáE«ÅÅÅøçׯ_ÿúë¯Ý¿sœ8ü”!”——‡ÿõfŲ½ýܹ¨®&ELŒô÷ßKÆŒQñö>óåK#±Átv+Ø­º)ª«‰}Öã¥À·rsË'NüÑÝýï––vn”ß›»t:ÝÊÊjß¾}µµµÃ† KLLÄ0lÿþýªªªñññ7nÜèñ†e]]‰DºqãFSSÓ¶mÛB™™™>>>Ÿ>}Âké0KCC>= ÀÍÍ­¸¸8++kêÔ©ëׯÇþûs挴´tKK k]©©©d2™õ"mFFú÷š!ÛÂi4šªªªššÚ… z,¤Ã",^¼ØÒÒ²°°0''G__÷îÝ=.smìÙ³ÇÀÀ '''''gÆŒ«W¯fmšÎ-wŽÿÎܹsóóó_¼x1vìX<¶+öìÙ³õõõÝGÕ¡¨®ÊïWïપ(S¦üäät¬­ÊÕŠØêñ.ìVìVœÞ­à9¡òþ}ŤI?ºº57·q©ŠÞdÇŸÄÃc Ñá€ÿ'(›« ÄÙxPÀP(-^^§Èd±ˆˆµpøçÏŸ?755õõõ3gѱt‡mœ kÖ¬áHùl‹â`ù\²hÑÔo¿ýfëÖÈÇóˆŽü?Ø­º)Šƒå“°ÿ>E øY[ÍÛûtIÉ—øø %nWåéé [à1„PTToªÃ0lÆKwï¾?^5Þ¿„ ªª<¸„Puuõ»wï:dTp @``¶qãå·oËCCWñàð€ˆ ‘H‡-ÒÕU_¾üüçÏ D‡ï@ 0~ÿýúÙçϯÐÓ#¸G5BFJJ<4t%™,¶téÙ––v¢Ã€G  !!OŽ¿wü¸Ïôé:DÇ€RV–½tɯ¬¬nãÆË Üù"2ððáûÝ»c7o¶vp0ìùÛ€~5Jåܹ·o¿Ý¿?™èXàÈø]nnÅêÕ!NNÆ›7Ï':„ÜÔ©cŽ[|òdjHÈ¢c€ë`<¾öùsÃòåç&MÒ:thQ7oçª3gÎR/—ÐéXs3]^^ضüÖVƒÉȉ„ ÇŒCTíFÕ»vÅjj*Í›§Ï¥Zêëëi4—  ³ÆF6oÁ¶ßAaÒÒÒ¾téYqqòÙ³Ë%$ûeçóþܽG&+ÈÈÈÈè··—×Õ%q»:yù™­­ÿP©5Ü®'+k"/?½­­¨¹ùm[[1B‚}'›À !´i“uIÉ—o¿ ‹˜0+Þ–——s£XúÆàS†­]{ñáü¤¤::Ðo¸ÿ¨Tz||æùó²³Kµ´”—-›áîn¦ª*Ïíz546:µŒgn´µÑnß~“‘’’+++åà`èãcn`0œ7µ *•îí}&?¿êúõïÔÕ¡ó-Nð©ƒoÝ‹ŒôŸ6M›èXUYY]hè“èèŸ?7ZYMXµÊbÆŒ±bb<º™Âã €©¢¢>6öå¥KiÅÅ5ººÃÜÝM==§ª¨Èñ8 !ÐÐÐêèxL\\,.nƒ¬¬ÑáÀyð£ë׳W¯ùõW×åËg‹à¡Óׯg‡‡?{ò$_IIÆËkš·÷´Q£TxQŽÁÀ22Šbb2ââ2ÛÛisæŒws3µ±™Dàí$ATZZkgwÔÀ@ëÂ…UââðÜ46ð÷ï+.<âãc¾w¯ѱ˜ÚÚ¦ˆˆ4üôwÖ,]óùó'JJó° ±SCCëÍ›911竪ÊÛÙzyMåÒ½m¡”•UêâäêjòÇDLJAÀ_(”V[Ûêª QQëàœ£÷=Ê vëÖ ²³³ñ’%Ó'MÒ"6$>ɘ ?ÇŽŒŒ|QVVg`0ÜÍÍÔÕÕDYY–è¸ÀµkYkÖ„îÝë´j•ѱÀIð Ã|}ƒ_¿.½};pèP®?ª&ššÚââ2Þæä”é驯X1ËÑÑH^ž/^™ÈoŽÁÀž<ÉŽNONÎÂ0ÌÚz¢››é7ßè‘Énvçĉ”ýû“Ï[ac3‰èXàÈøÈéÓ÷÷ïO¾zõ[SÓÑDÇÂïrs+.\x”𪵕êèh´j•¿=÷Ο…Ò’˜ø:::==½hØ0EWWSBž– ;wÆ\¹ò"&æ[cã‘DÇg@À/ž=ûàéybçNûµkç ÿbíÚ7|øà¥K§{x˜ñçõ>Ϙòò*££3"#Ÿ×Ô4 ÷ñ1wv6†Gß;£Ó¾¾ÁYY%ÉÉ›´´”‰€ €/TV~?ÿдiÚ§N-%jì?>WZZ{ñâÓ¨¨µµM¶¶>>æ¼ìÚׂ’à¨TúýûÿÄÄdܼ™#--1þDw÷)3gŽ…­‘Ucc›“Ó1‘˜  0ˆèp(ȈG¥Ò]\‚Z¯]ûν:`íÚ§¬,»|ù ooóaÃ‰Ž«g‚•0UW7$&¾ºråù»wåcÆ uv6öð0>|0Ñqñ‹ªª¯¶¶GGV‰ˆX ]+ ƒ €xû÷'Ÿ;÷09ù;è£Åªs×>ÁêÎ. SvvittFlì˯_›gÌëæfjg7yÐ I¢ã"Þ›7ŸœÛÛ>¼ˆèXÈ–’’»dÉÙÇyzš ¿`ví4HÒÇÇÜÓÓLÇEô ×ÞN»uë?ƒ »¹™š™9h??HIÉ]¾üÜöí¶ß~kIt,ôdDªªújiypî\½ãǽ‰Ž…xMMmÏÞæçWM˜ ±|ùL''c99A½-"Seå׫W3`°a¦ððgÛ·G?îíâbBt,ôd„a0°Å‹O—–ÖÞ¾(â·ÿ™]û¨Tº››©p¼ÒFÈ2¦ììÒððgqq™­­ÔéÓuîî íÙñâ“èèuÐ}(ȃ÷þOH04At,Ä`íÚ7rä•+-<<¦Í#ÖšàZ[©wî¼ öøqþСrööF"8Ø0ƒ­^}!-­09yãèÑC‰€>ƒ €oß~Z¸ðè† V󉎅̮}uuM @×¾~î € l8**½´´Vnm¥º»ÿýåKSRÒÆ!CD÷žP ¥¥ÝÆæ°ŠŠ\tô·BvØëk×>55E_ß™nn¦jjе¯D$À1¾v-›NgÌŸ?ÑÍÍtî\=Qx·EuuƒÝMMåÈH¢^C@ÿ@@€ï¿‰uïÞV %¢cá‘/_¯\y~éRÚÇ_fÎ+ 7E*`ÍÁ†óò*ŽÍ™3þäÉ%0† ðÚ­[oV¬8ä#"3»öÉÈHz{›/Zd¦­-x]ûúA43¦üüª¨¨ô¨¨Ÿ?7ˆÂ`ÃOŸxy ° ´!:z 2žª«kš;÷÷©SµOŸ^Ft,ÜÅÚµoâDÍÕ«g;8II‰Ð5RÏpt:ãéÓ‚ððg7oæÉbóæéûø˜ ë`ÃW®< Œ  ÌÁ†SSsed$Œ„f°á¶6š‡Ç‰ª*JRÒFþ|o5LðÈúõáiiRS·ËËK g°ví6LqÅŠ™nnSÔÔˆŽ‹_@Ьƒ «æá1ÅÃÃLМuuMvv)(HÇÆ®šË@(AÀ ׯg¯Zu!,ÌÏÒRèX8 C×¾U«,¾ùFLþžß}@Ÿàƒ ÇÇg¶´Ã`ÃÅÅ5öö™›kŸ:µL¤Æü‚2®«¯ož3çÀܹzGŽxË@1»öÉÊJ-^ÀÒÒöö†öö†Ÿ>ÕÅÇg†…= †¿ŠÐËkÚàÁ‚4ØðÔ©cŽ[ì殮5xùòD‡p €»nÞÌñõ ¾xqµ•Õ¢cé¼k_||&ƒ¹¸˜Ç[ûx® œ 6|øð­#GnûΛ§Ot,t56¶Í™s`Ê”Ñ'O.%:–¾im¥ÆÄdà]ûÆW÷õåà`¤  $Ï0òdD¡´&&¾ÂVSSts3”;P†mÚqýzv||€¨½;ð?ȸ臮^¿žóðázþ¿¤äKXس¨¨õõÍ66“V®œ%}´x2nè<ذ““±œ_6L¥Ò½½ÏäçW]¿þºº¨¼ ȸååËŽŽýý÷GG#¢cék×> ¥eËf¸»›©ª v§,bAÀ=¬ƒ ‹‰‘¬­'òù( ­ŽŽÇÄÅÅââ6ñË€À €+h4Æüù‡44ÃÂüˆŽ¥_¾4†„<¾t)­ªŠbe5aÕ*‹3ÆBÿ¥ƒ €¾~mNJʺxñÉ›7Ÿ44”œM–,11bÑq±QZZkgwÔÀ@ëÂ…UônpÅÙ³öïONMÝÎÏïEÅ»öݼ™#//íå5MÞâÊKðÒû÷•11iõõÍ&&£Üݧ¸¸˜ÈÈð×hƒ €÷ø°ákײ֬ Ý»×iÕ* ¢c2€kll?þ{}}ÍýûÝLLF"„üüBÞ¿¯¼{w+¿höî]yHÈãøøL CÎÎÆK–LŸ4I‹è „GXØS ¥…ù篿&;;³>þ-ãÝ Šªª¯11—/?/*ú¬££êéiÆ?+ÿĉ”ýû“Ï[ac3‰9±ªêk|ü«5kæE Tzz‘£ã111†!GGã9sÆmÚqõê·Ó¦iÚÿ°víÓÓS_±b–££‘uO[¶DFD¤IH°¹šB§ÓååeeýÌoI¡ÐãÏÁ†øájDÄó˜˜oG"„rs+¼¼N~ýÚš•õ3ô¹¼À@?Ú»7F£#„ÄÅÉ cÌÕk×¾ã‡C,Þµ/2òùׯ-ŽŽF«VYÀx>ÜóìÙW× ¶ÿ’”$ûøLÿå‡pmm´Û·ßàƒ +( ²·Ÿ¼t錉 l˜Ngøúge•$'o*,¬^±"¸½†Ú·ÏF¼À@FFG¿ ÑÌ)d²˜’’Ìöí¶‹O#ä¡zÖ®}ššÊK—NçŸK BŒÁÀŒŒö|þÜÀö¿IIMLFñ6"ÐQyy}\Ü˰°g%%_ˆl˜Biqp8¦¨(ýòåG„0‘H$mí¡~Ïû`€È‚ ` ,-ææ–w˜H"‘0 35õÛonœz¯ •J ¼h3rd—jjCC_º”öùsƒ­­9tíã¥}ûÏž}ˆ_b¥®®”‘±›o{«‹ËÈ(Š‰Éˆ}I£1fÏçæfº`AôÒÓ‹ Gpä&ƒmÙù¼Ãpròwø­xžQPPÕy:†abb¤¬¬Òüü*ŽdMMm+V?~œ§¦¦øÃv«{ü8ïÚ§ 0hùòÞÞæÃ†)¼^Ð'NNÆ'O¦v˜(!Avs3…Ã?ÿ#™™13óã·nåÄÄd¬YÚã`Æ­_®¡¡쫬< Ë--íþþïÞÍípø'‡‡?ƒ ð \ÜÜ KË?:O'“ÉòòR—/¯141ðZ>nðô<™Ÿ_E§3eeýÌì¼÷õksxø³ÈÈÌ®}üð “(›1cQÑçïÝÛ¦§§NH< 7 ª##_DG¿¨®îr°á´´..AââbjjŠkutTûWW}}óÒ¥g_½*¡Óÿ;hdNÎ>~É+šj@Þ¼)ë|L&1øÖ­@Žþß½+Ÿ;÷üüjü÷¢¡¡5!á>}Û¶¨)S~ J™?ÒÇßGFúÛÛÂáŸX..&ââÿiU8üó9Õ~°{ùrod¤ÿÈ‘C~øáê¤I?®YúèQóéÒ¥gdQ]M±¶þóÖ­7ý«kÏžøŒŒbƒý©W[51ñU?€>‚kòÓO ÁÁ¨Ôÿ¿ïK&‹™šŽ ]­ 0hàå§¥}ðñ9ÓÖFcž.ˆ‰‘´µUÕÕ•=Ê5JeéÒéžžfJJ2¯ pDqqÍŒû™»•„„Ø–- 6l°"6*Ð'ø`ÃaaOsrÊðÁ†œŒ.<Š?±CFÚ¼Ù:0Цåß¹óvçΘòò¯~ÅÄH&hÞ¾8Ðe  —ãii…Ì?ÅÄH..&‡-âȉxB« .ÑéŒÎm4c†Î† V³féÂÝe>deu07·o5‰ôüù.--e¢ƒýñâEaddzRÒ+A¥Ò;\·'‘»»ÙÁƒýØß©Tzhè“®µ·Ó;?:zûö;+ÑwäÍ›Oø‰D"‘6m²þë¯Å9üŸ8‘²n]Nï|ø— 5ÔÂbþù“»û2Y !D"!-8ü .3³1‡y¾~ý³–ÖàÎ×í1 ÅÆf8;¯©iìkÉäU«,ž<ÙééiF"‘XïIH#"Ò:½@ÿ}úT×ØØ†"“ÅÄÄHGzÚ ü¨Ì``?þ÷ë¯IÆþ •J¿z5ƒBi`E€KœœŒ BˆLswŸBt8` ÊËë ªØî4#'§lÁ‚Cyy•ý(YMMñàAë×7M𤅠¨ˆJ¥GE½hiihÜô2€þ{÷®!$.N–”$_¼¸š#¿õmm´Õ«/\¸ð¨û›3x0ðê7¨©)"‘ƒ-\8™èpÀ@EE½èæÂ•J¯ªjX°àð;oûWþäÉÃ~ÿÝMAa>&ASõæÍ~>i@ïAÐø-ee™¤¤ïæÎ?ð››ÛW¬8ãFNWgÉbdII2ƒÁ {:ð—xzNÁ0dn®£¦¦@t,`@ ,2òëÓ¾ÑhôÖVª¯op¿¯Þ“ÉbK–LOKûÑ×w–¸¸BXhèãþ@ïýgD êêêwïÞŠÀ¹ÿµ––üŽæÕÕyÕÕy,Bi;x0íÇzæiiq))²´´¸´´¸ŒŒ¸¼¼”´4YZZBZš,++!--qëÖ=))‚ûþ :T__ %åV§¨ØN&‹éëËÞ¿ŸèX8LÔZ<7÷K}}S_Ã0D§3#ïßÏ\´hB¿oΙ£4nÜÜÐМôôâÈÈkjjŒX,‚¾U (6cŠæŠècã/«VÍ”äÌ1¸¨èËO? SR4h¤ŒŒ„@ RZZÊ©¢„o«³²ú¸l™e‡Qe¶¸¾>rs³À?·´P©TB¨©‰Š÷ ÀßM§cÍÍí¡övzKK»ªª–ªjÿ_ᯬ¬¦>yRX_ß,(kI qp«8l2€¡CÙŠ :ؽۅƒOã âj¯®®æTQ‚¸øÝÛ¿ß]]]‰è(8 Zœgœœ`ýð·jÏôtÆÝ¾Ã?@È@ˆ"ÈQ Š D‘Àg%%%+V¬èñkøƒ{̬³¿zõJ\\<::š9=!!ARR2''‡1w@b1jÔ¨¥K—~þÜñó¬0 óññ‘““ë}ùœˆTtnè-ξôæ›ÇÜb¹×.Ðâ½lñ¾îJ¼×Ͳôò·«©©iÛ¶m“'O–““333ûí·ßh4ê×z#±Ã©%í‘HmÕ<#ð@||¼““Ûª¨¨àŸ•””¶oßÞÕìFFF;wî ¨¯¯G}ýúuݺu{öì™4i÷"gõôéÓŠŠŠ²²² .P(ccc<¶ÊËË/]º$@cªðRW Ý=|3`Î˺åp\ç-–«Õ ½´¸@ïJ½ùíjhh055}þüù233wìØnmmM§Óû·Þð_*Vœ](Øx cQUU•ššŠ ”… 677³ýW~~~‡ì<‘9{[[Ûĉýüü0 [»v­‰‰I{{;×¢þ„P~~>óOƒaaa±{÷Ïv¹z_>½yóæÍ›7,„K[s-õfuuØŠúº†û„Y³]8^´x/[œ« ÍÝD؛߮-[¶Ìš5‹F£1çjll5jÔ©S§:WÑãÚàÞvÕ9^ÖΑ­Z@õù@bb¢¦¦f]V÷úœ }IDAT]B(""BWW·©© !D¥R·nݪ¦¦¦ªªºuëV*•Š_SºwïÞˆ#îß¿¿gÏž#F :téÒ¥ÌÜÎs!„’’’ ¤¥¥ÇŒ†¢Ñhlg¯©©‘••4hëõ+æçiÓ¦!„† †º¸ÀÅœ!$))üÛo¿]¸p!$$DBB¢« 9¸h‘H¤µk×^»v­«rX—«—eÞ¾}[GGGYYù·ß~c®„„„qãÆ©ªª´µµ±ØÛÍ‚ËØnu #((HOOO^^ÞÜÜ<55¿NØÍ•Éääd###uuõà;oEÖ0Û¦$‘HÁÁÁzzzC‡=pà@XXØèÑ£wíÚ…ÏŶ]X79&ŽT×´8®ûïüïÔ?f;c­Ð¹íÌÍÍ9‚ª­­Û²e BˆN§+++ãûx}}ýòåËUTT´´´¶lÙÒÚÚÚ!¼d ölÙbhhXSSƒzýÛ¾{÷n2ùÿÇ-•••ݶmÛ¥K—ú±ÞúÔX]m]Ý/ïØ±c˾РoÕüˆ5èen¾téÒeË–UVVª©©=þŸøûï¿»ºº–””dggïØ±Ïæ,X’’²wï^}}ýìì윜œ©S§nÙ²¥«¹¥¤¤N:UQQqþüyqqñÆÆÆƒ²=888,, ûoæÈ6¥e;‘9;ÓŽ;B¿üò ëD®.Æ.·MOOWRRê¾vü¿]•É !dggG¡P®^½Šª©©ÁK°¶¶ÎËËKKKÓÑÑÙ»w/Û‰Ýo ¼<#ì¼Õ>}ZUU566¶¼¼üÚµkZZZøšìÐÐÌ ERRÒ××·¬¬,<<!T]]±ÛŠ:œˆtn ÃB^^^ åܹs! …rúôi| wÕ.¬›êâ@?ªë°® ÅûÚâÌÏøN]QQÁvÆ[¡sÛýüóÏ .Ä0,!!AAAÁØØðŒŒ ii馦& ü½½---?|ø=qâDf»à‘¼~ý!Ä`0˜‡<ÚÞüvá‡äÏŸ?wX±Ïž=Äwp5552™\XXˆÏþáÃMMMÖHpIII§NºråJjjjçEèæ·ËÛÛ{ß¾}øI3BÈËË+""âÀ^^^}]oÝc{P@¶®^.oW„`«æ7}Î †¯¯ï† """îÞ½›””„Owqqùþûï?~ü˜mccó÷߳εdÉ’~ø¿Ø²~ýú?v5‰D²¶¶¾zõ*…Bioo—‘‘a;{BB‚££#^Ž’’BèâÅ‹ 娱c¬U766²]ÖÙ1 [³fÁÊ•+Bjjj6làÁ¢á_þüùseeå§OŸߪ FÕD<ˆ"ÈQ Š DÑÿ'“FœºÍIEND®B`‚XQilla-2.3.0/docs/simple-api/inherit_graph_25.png0000644000151400015140000000227511653571064016470 00000000000000‰PNG  IHDRe(hØ£*bKGDÿÿÿ ½§“rIDAThíšKH:[À¿©œB¢ÔÌ2z@Ù&z-WJAmz´© VÕJ¨6µ¨ˆA!X=-¤vÑC‹‚[6ô.1Pa4ıfîâpÅ;õï6ÿ¿f—;¿Õñóœï|ó;ã™á Æ0 ð|™¸Xðƒ÷Å Þ7x_ÜH`}µX,1)åg²½½þ‘íëìììââB¥R}cI?”ûû{«ÕÊ ²}€J¥2ßRÒÆh4¶¶¶²‚üþÅ Þ7x_Üà}qƒ÷Åßô…aA‘-¥ ‘ššZWWw}}ñYþ„ß_WWWR©4xÿúNhšv¹\á‘ôôôÌÌLËåƒ!;;›$É”””È&÷†a«««ÅÅʼndrr‚À0Ìd2Éd²¾¾¾@ €‚hH¨]UUHÐ{âããàõõ¶¶¶ÊÊÊ„B¡\.%ÙÙÙÉÍÍ=<<ÜÜÜ,))IJJÊÏÏ_^^F‚Á N§ËÈÈÉd:. ²Fq¾ZæŸ4777773ÿ\^^†ÚMMMÇ`0€Ë庼¼­Vk·Û­V«B¡AA4$Ô¢T§§§^¯—$I‚ *++†!IÇñÎ燇••x~~FckkkwwwNgbb¢^¯w8 >Ÿa˜‰‰‰ÆÆÆ»»;›ÍV^^>00> õùkkkïýDÆ×ÞÞÃ0E¡8ªÉf³…&V(_ôB ¨Õj4K 8??÷ù|ooof³ùý,n·[ LMMy<š¦½^ïÛÛÃ0J¥Òáp äÛÛÛ¥¥¥¬Ú¸úŠÌ~Ÿ••…®0ßç©EQ8Žûýþááaðz½á0 Ójµ$IR%„B!444 ÞÞÞÚl¶šššÙÙÙ?½ªˆì_¬6º³æççóòò¤Rioo¯ßïgfllL$˜L&4u0¬®®NNN~ŸŠÅôô´D"ÉÉÉ™››kkk“Éd¬½omm­  Çq¥Ri2™P$ÉŽŽ±Xœ––ÖÝÝýòòÂõ ‘Üï?çë5ýd¢¸ßÿˆŠ¯”””žžžhdŽ9Qñ%“Éôz}42Çþ÷È Þ7x_Üà}qƒ÷Å Þ7>8_µX,æûKùi8Î÷A¶/tàÉb±øý±ÆðÿÇä¿qƒ÷Å Þ7x_Üø ý®¾<Þ¹ûÖIEND®B`‚XQilla-2.3.0/docs/simple-api/DOMXPathNSResolver_8hpp.html0000644000151400015140000000633511653571064020026 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

DOMXPathNSResolver.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
Include dependency graph for DOMXPathNSResolver.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMXPathNSResolver
 The DOMXPathNSResolver interface permit prefix strings in the expression to be properly bound to namespaceURI strings. More...

Namespaces

namespace  xercesc
XQilla-2.3.0/docs/simple-api/inherit_graph_28.map0000644000151400015140000000022011653571064016450 00000000000000 XQilla-2.3.0/docs/simple-api/functions_0x70.html0000644000151400015140000002741311653571063016305 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- p -

XQilla-2.3.0/docs/simple-api/DOMNode_8hpp.html0000644000151400015140000001552611653571064015706 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

DOMNode.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
Include dependency graph for DOMNode.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMNode
 The DOMNode interface is the primary datatype for the entire Document Object Model. More...

Namespaces

namespace  xercesc

Defines

#define GET_OWNER_DOCUMENT(ptr)   ((DOMDocumentImpl*)(ptr->getOwnerDocument()))
#define GET_DIRECT_MM(ptr)   (ptr ? ((DOMDocumentImpl*)ptr)->getMemoryManager() : XMLPlatformUtils::fgMemoryManager)
#define GET_INDIRECT_MM(ptr)
#define GetDOMNodeMemoryManager   GET_INDIRECT_MM(this)

Define Documentation

#define GET_DIRECT_MM (   ptr)    (ptr ? ((DOMDocumentImpl*)ptr)->getMemoryManager() : XMLPlatformUtils::fgMemoryManager)
#define GET_INDIRECT_MM (   ptr)
Value:
(!ptr ? XMLPlatformUtils::fgMemoryManager :                              \
        GET_OWNER_DOCUMENT(ptr) ? GET_OWNER_DOCUMENT(ptr)->getMemoryManager() : \
        XMLPlatformUtils::fgMemoryManager)
#define GET_OWNER_DOCUMENT (   ptr)    ((DOMDocumentImpl*)(ptr->getOwnerDocument()))
#define GetDOMNodeMemoryManager   GET_INDIRECT_MM(this)
XQilla-2.3.0/docs/simple-api/classATBooleanOrDerived.html0000644000151400015140000003442311653571064020155 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATBooleanOrDerived Class Reference

#include <ATBooleanOrDerived.hpp>

Inheritance diagram for ATBooleanOrDerived:

List of all members.

Public Types

typedef RefCountPointer< const
ATBooleanOrDerived
Ptr

Public Member Functions

virtual const XMLCh * getPrimitiveTypeName () const =0
virtual const XMLCh * getTypeURI () const =0
virtual const XMLCh * getTypeName () const =0
virtual const XMLCh * asString (const DynamicContext *context) const =0
virtual bool equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
virtual int compare (const ATBooleanOrDerived::Ptr &other, const DynamicContext *context) const =0
 Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.
virtual bool isTrue () const =0
virtual bool isFalse () const =0
virtual
AnyAtomicType::AtomicObjectType 
getPrimitiveTypeIndex () const =0

Member Typedef Documentation


Member Function Documentation

virtual const XMLCh* ATBooleanOrDerived::asString ( const DynamicContext context) const [pure virtual]

Implements AnyAtomicType.

virtual int ATBooleanOrDerived::compare ( const ATBooleanOrDerived::Ptr other,
const DynamicContext context 
) const [pure virtual]

Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.

virtual bool ATBooleanOrDerived::equals ( const AnyAtomicType::Ptr target,
const DynamicContext context 
) const [pure virtual]

Implements AnyAtomicType.

virtual AnyAtomicType::AtomicObjectType ATBooleanOrDerived::getPrimitiveTypeIndex ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATBooleanOrDerived::getPrimitiveTypeName ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATBooleanOrDerived::getTypeName ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATBooleanOrDerived::getTypeURI ( ) const [pure virtual]

Implements AnyAtomicType.

virtual bool ATBooleanOrDerived::isFalse ( ) const [pure virtual]
virtual bool ATBooleanOrDerived::isTrue ( ) const [pure virtual]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classSequence.html0000644000151400015140000011230211653571064016306 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

Sequence Class Reference

An eagerly evaluated result of a query execution. More...

#include <Sequence.hpp>

Inheritance diagram for Sequence:

List of all members.

Public Types

typedef VectorOfItems::iterator iterator
typedef
VectorOfItems::const_iterator 
const_iterator
typedef
VectorOfItems::reverse_iterator 
reverse_iterator
typedef
VectorOfItems::const_reverse_iterator 
const_reverse_iterator

Public Member Functions

 Sequence (const Item::Ptr &item, xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager)
 Sequence (xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager)
 Sequence (size_t n, xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager)
 construct and reserve space for n elements
 Sequence (const Sequence &, size_t start, xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager)
 Sequence (const Sequence &, xercesc::MemoryManager *memMgr)
 Sequence (const Sequence &)
Sequenceoperator= (const Sequence &)
 ~Sequence ()
void clear ()
const Item::Ptrfirst () const
const Item::Ptrsecond () const
Sequence::iterator begin (void)
 Begin an iterator.
Sequence::const_iterator begin (void) const
Sequence::iterator end (void)
 Find the end of the iterator.
Sequence::const_iterator end (void) const
Sequence::reverse_iterator rbegin (void)
 Reverse iterator methods.
Sequence::const_reverse_iterator rbegin (void) const
Sequence::reverse_iterator rend (void)
Sequence::const_reverse_iterator rend (void) const
size_t getLength (void) const
 Returns the number of nodes in the list.
const Item::Ptritem (size_t index) const
 Return the indexth item in the collection.
const Item::Ptritem (const ATDecimalOrDerived::Ptr &index) const
 Return the indexth item in the collection - takes ATDecimalOrDerived.
void addItem (const Item::Ptr &item)
 add an item to this sequence
void addItemFront (const Item::Ptr &item)
 add an item to this sequence
void joinSequence (const Sequence &s)
 combine another sequence onto this sequence
bool isEmpty () const
 Returns true if the list is empty.
void sortIntoDocumentOrder (const DynamicContext *context)
 sort into document order (only works for Sequences containing only Nodes)
void sortWithCollation (const Collation *collation, const DynamicContext *context)
 sort as strings, using the given collation

Detailed Description

An eagerly evaluated result of a query execution.

Examples:

simple-context-item.cpp.


Member Typedef Documentation

typedef VectorOfItems::const_iterator Sequence::const_iterator
typedef VectorOfItems::const_reverse_iterator Sequence::const_reverse_iterator
typedef VectorOfItems::iterator Sequence::iterator
typedef VectorOfItems::reverse_iterator Sequence::reverse_iterator

Constructor & Destructor Documentation

Sequence::Sequence ( const Item::Ptr item,
xercesc::MemoryManager memMgr = xercesc::XMLPlatformUtils::fgMemoryManager 
)
Sequence::Sequence ( size_t  n,
xercesc::MemoryManager memMgr = xercesc::XMLPlatformUtils::fgMemoryManager 
)

construct and reserve space for n elements

Sequence::Sequence ( const Sequence ,
size_t  start,
xercesc::MemoryManager memMgr = xercesc::XMLPlatformUtils::fgMemoryManager 
)
Sequence::Sequence ( const Sequence ,
xercesc::MemoryManager memMgr 
)
Sequence::Sequence ( const Sequence )
Sequence::~Sequence ( )

Member Function Documentation

void Sequence::addItem ( const Item::Ptr item)

add an item to this sequence

void Sequence::addItemFront ( const Item::Ptr item)

add an item to this sequence

Sequence::iterator Sequence::begin ( void  )

Begin an iterator.

Sequence::const_iterator Sequence::begin ( void  ) const
void Sequence::clear ( )
Sequence::const_iterator Sequence::end ( void  ) const
Sequence::iterator Sequence::end ( void  )

Find the end of the iterator.

const Item::Ptr& Sequence::first ( ) const
size_t Sequence::getLength ( void  ) const

Returns the number of nodes in the list.

bool Sequence::isEmpty ( ) const

Returns true if the list is empty.

const Item::Ptr& Sequence::item ( const ATDecimalOrDerived::Ptr index) const

Return the indexth item in the collection - takes ATDecimalOrDerived.

const Item::Ptr& Sequence::item ( size_t  index) const

Return the indexth item in the collection.

void Sequence::joinSequence ( const Sequence s)

combine another sequence onto this sequence

Sequence& Sequence::operator= ( const Sequence )
Sequence::reverse_iterator Sequence::rbegin ( void  )

Reverse iterator methods.

Sequence::const_reverse_iterator Sequence::rbegin ( void  ) const
Sequence::const_reverse_iterator Sequence::rend ( void  ) const
Sequence::reverse_iterator Sequence::rend ( void  )
const Item::Ptr& Sequence::second ( ) const
void Sequence::sortIntoDocumentOrder ( const DynamicContext context)

sort into document order (only works for Sequences containing only Nodes)

void Sequence::sortWithCollation ( const Collation collation,
const DynamicContext context 
)

sort as strings, using the given collation


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/inherit_graph_46.map0000644000151400015140000000032111653571064016452 00000000000000 XQilla-2.3.0/docs/simple-api/classVariableStore-members.html0000644000151400015140000000533511653571063020736 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

VariableStore Member List

This is the complete list of members for VariableStore, including all inherited members.
getInScopeVariables(std::vector< std::pair< const XMLCh *, const XMLCh * > > &variables) const =0VariableStore [pure virtual]
getVar(const XMLCh *namespaceURI, const XMLCh *name) const =0VariableStore [pure virtual]
~VariableStore()VariableStore [inline, virtual]
XQilla-2.3.0/docs/simple-api/classCollation.html0000644000151400015140000001644711653571063016476 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

#include <Collation.hpp>

List of all members.

Public Member Functions

virtual ~Collation ()
virtual const XMLCh * getCollationName () const =0
virtual Sequence sort (Sequence data, const DynamicContext *context) const =0
virtual int compare (const XMLCh *const string1, const XMLCh *const string2) const =0

Protected Member Functions

 Collation ()

Constructor & Destructor Documentation

virtual Collation::~Collation ( ) [inline, virtual]
Collation::Collation ( ) [inline, protected]

Member Function Documentation

virtual int Collation::compare ( const XMLCh *const  string1,
const XMLCh *const  string2 
) const [pure virtual]
virtual const XMLCh* Collation::getCollationName ( ) const [pure virtual]
virtual Sequence Collation::sort ( Sequence  data,
const DynamicContext context 
) const [pure virtual]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/inherit_graph_35.map0000644000151400015140000000031211653571064016450 00000000000000 XQilla-2.3.0/docs/simple-api/AnyAtomicType_8hpp__incl.png0000644000151400015140000002042111653571064020161 00000000000000‰PNG  IHDR]uû€ÃbKGDÿÿÿ ½§“ IDATxœíÝy\SÇú0ðIHeA R-® ¨ jU‘R«¶¢þ®ú¹U©×zµ×.Øko½m­â+›"eQ\êÆ‹"²ªˆK‚Ê4B’óþ1í!f#YÏ÷¯p’3óÌ™ÉyrN2… „BTU¨È‹@È‹@È‹@šª@<==Uèݾ}ûæÏŸ¯ê(ÀPy ™™™ï¼ó޹¹¹ªRݼyóã?Vu@^C†¿¿ÿ‚ TêæÍ›ª„àûE@äE äE äE äE äEÞpúôi3gΨ¼uuuÒžÍÊÊò¤²²rcðð𨫫ÀPCèADVV–¹¹yvvöÀÒÐаjÕªþĦ¯¯(íÙ¹s禥¥¥¥¥=z!”ö—qãÆõ§R† È‹ô¨®®~ñâExxxeeemmí"˜Lfb300Ø´i“´g‡ fllllllhhˆ2þ s”x;è‘••5mÚ´éÓ§;6++‹Üîáá‘™™¹nݺ•+Wž={!ôã?þûßÿÆÏ²Ùloo …lݺ!´zõjü'‹Å:tèЪU«üýý?Îårq-W®\Y·nÏ™3g®_¿¸|ùò˜˜$t•ÏçÇÆÆøøøDDD°X,-’'.*777$$Ä××÷ÇìîîFñx¼ÈÈH_____ßÈÈH'^`QQQPPЊ+ɨDŠ’V>ƒäEþ„ï.Z´!äîî.r+õöíÛ?ýôSXX؉'ÚÛÛçÏŸŸ››ËçóB¹¹¹–––¶¶¶2 9vìB(==ÿùý÷ß·´´DFF~óÍ7………IIIx{qqññãÇ7mÚtòäɼ¼¼èèè-[¶ÄÇÇ _k¦¦¦æääDDD9r¤¦¦&!!AF£¤Å‰:þ|DDÄ×_ŸŸ¿ MMMmhh8qâÄþóŸ’’’ØØXñóóóOž<EF%^”´¨?È‹üééÓ§ÍÍÍîîî!ww÷gÏžUWW“Ïúøøèëë/Y²!Äd2h4Zii)B(33ÓËË‹B¡ôZÆãñ²²²¶mÛfiiÉ`0Ö¯_ãÆ üT@@€®®®——Bèƒ>ÐÕÕõööFµ··“»_¾|yÆ cüøñŸ~úé”)Sd4JZœ¡-[¶X[[ÛÛÛôÑG8€+W®ìرÃÜÜœÁ`„……ˆˆ#œ7ožpTâEIÛ€úƒïøSVVŸÏþuLvvöøñãñcSSS„ùu•JussËÉÉa0ÅÅÅ;wî”§¬­­M XYYá?GÝÒÒ‚ëêê’µ?ÖÔÔdmmÛØØØØØÈh”´8Bd!cÇŽÅ466úùù‘/ÐÓÓ/ÐÄÄ!D&WiEIÛ€úƒ¼B ‚ììì­[·¾÷Þ{xKlllvvöúõëqÉ¡ |ùå—ãÆ›:uª™™™ìB„w422¢R© 8¥Õ××ã¤+'“ÆÆFœk+++ïÞ½,ãõâqbµµµ !TSSƒ³Á‘#GFb±X­­­â¥‰‰EIÛ€úƒû¨ „Piii[[›§§çð¿,^¼¸¶¶VÆü?GGG>ŸêÔ)|ÛSžBØl6BˆF£yxxüðà ÕÕÕÑÑÑ‹/–?T//¯¨¨¨êêêêêêï¿ÿ¾©©IöëÅãÄŽ=ZWW÷ôéÓ¨¨(üÿ)ÝÜÜNž<ÙÔÔTUU~þüy„ÐåË—;::dW!^”´¨?¸^!„²²²\\\ð$ÌÎÎÎÊÊ*;;ÛÎÎNâ.T*ÕÝÝýÚµkøÛDÙ…lܸqêÔ©~~~¿üò BhÇŽGݼy3N_¸paPPü¡q8œÝ»ws8œY³f………É~½xœØâÅ‹wîÜÉáp-Z„ظqãÑ£G?þøc …âîîŽKþöÛoœœ$ÞS•V¾k*^>ƒ… UÇ€ÂQ(” øÿ_ŒŠŠjllÜ·oßÀ;àD⬫« îÏÚ$‰Eõ­|äääµk×ö?*úî£Ð\.·¡¡áÊ•+äW‰êi°Ä €ú€¼@_*@p¨ ¸^z@^z@^z@^z@^z@^zÀ:p`¨ˆ¿té’bʦtuôáÃ5í¿FÚl¶ÉðáÍT*_Õ± $Áàï﯈b9­æfÝæf=GËØ˜Ã`ŒPD-Y0¯9 ­ååK¦&c‹anÎ5ªCO¯[qu1Œ1cÆ(®|äóúxkmmiiÅ©©E¥¥5ÖÖF®¾¾Ó ³Þ÷8VVŒ\·r¥ÂWÛa29.Ü‹‰¹õôiÃÔ©Ö!!sV¯ž®««­èzPȋȋÏde=IM-º~½ŒJ¥._îèïÿîܹvTª„I¨hJË‹¤‚‚ªèè[W¯>ÔÑ¡¯Zå¼aƒÛäÉ–J«¥û¨ôîÙ³—‰‰wÓÓ‹^½ûîø/¾X½r¥ÓÈ‘ÃU—R¹º2\]ÍÍí))§Nå&$ä9:ŽÙ¸ÑÍÇÇ…N×Rut ¸^@ªŽŽ®sçJRR ‹Šž™˜èÌô÷Ÿ1qâ(UÇ…*®… DnnETTNfæc33}×uëæZ[©$\/ Š ˆÛ·+RR ¯]+ãpº½½§ž=»yÎ[--˜×ô'*•âæ6ÑÍm"¾’NJº{üxÖܹv}ä¾xñ;Š n,0Pàz€µµmÉÉùçΕTUµ¼óŽÕûïÏ\¹ÒÙÜ\y¿2•Ÿj¯Ep¹¼k×ÊònÝ*7Î4(hV`à,cc=UÇ@_@^±ÙÜK—¤¦åæVè®^=Ý߆££ZÏP«¼Hª¨h:}úÎÙ³ùÝÝü%K‚ƒg»¹MTuP¼È‹`H+(¨JM-ºpá~GG×Â…ökÖÌX²ÄA[{|¿ žykoçddÜ‹½ýäI=LíƒäE0½|ÉJNÎOI)*/oÄ÷ýüüfŒe ê¸Þ‚:çERiiMBB^JJ¡¶6mÕ*çõëÝìíajPwÁÒÝÍ¿zõaBBÞ;•::t__—ààÙj~¿TšA‘±––öŸ.8}úNMM+Líêò"?®OJÊ¿xñ^K kÞ<»ààÙžžStt誎«ïQ^ÄðÔŽ„„¼_~)51у©@m ‚ïQè3áÛÆŒ1 ™£üÛFNíhl|˜˜—‹§vÏ^¶ÌæÀõ׋@‘ ¶]»V¦¥¥âÛdÐ]/Š ïiß¾]accS;€ú€¼4 žfž–VÔØøúÝwÇûû¿«© ¶ ö¼Hª¬lNN.HHÈc³¹0µ¨È‹@àÛòJKkÌÌF¬]ëºví»vvªŽK4&/b,V×ùó%qq·?þsj‡¯¯‹žÞ0Udž"È‹`à ¶%$äݸñˆÏx{O ž=DlÓ°¼HÂS;RS‹èt-˜ÚTò"”jjZþ¹/Ø6eÊèuëæ¾÷Þ4CC]UÇ¥<šš1&“ýóÏ…ÑÑ9ÏŸÿS;€’A^ƒ‰ð‚m††º¾¾ƒ`Á6Ñ켈‘S;®\)52Ò[»Ö54tΘ1ÆªŽ h8˜§rÁ¶ÎÎ.ûãÇCË‚m ÏÈ©MM¯SS‹bbnÃÔ p½Ô^*åçŸ +*šé‚m 2®EˆOíxÿý™&&úªŽ hÈ‹@ /Ø6|8ÝÇg/ئ C0/’ªªZ’’òó:;ajxzyô¨îÔ©ÜK—¼~ÍÖŒÛd(çE¬«‹wὓ'-+«³³³ ™8¦v€þƒ¼ÔBkkGzúŸ ¶k2Û×wº••¡ªãR_IxjGZZ1F]µÊyýúyööVª b*ñx‚ììžÛüü¦¯Y3cÆŒñš´`›‚@^Ádr.\¸•S^Þèè8&8x¶¿ÿ»Ã†Á/³À[ƒ¼TCÒ‚mÎ#Gê¨:®Aò¢DäR0µô|˜J…—ûR ¶e¢PÈ©ÌÔÔBø¯ àz(ÃP^°MAàzQø?«DEåÀÔ ?È‹@±^¼ø#>>ïܹâúúW£CCç®X1ÍÀ`-ئ ßJuuË™3ùgÎÜíèè‚©@6È‹@!Dl œµfÍŒI“F©:.Íy±¸\ÞµkeQQ9……Õ0µHy °¿l»×ÙÉ]ºÔqÍšóçO‚ÛäÅþÀS;ÒÓ‹©TŠ Lí /‚!¼`Ûøñf|0sÍš°`›¢@^ì?<µ#&æÖÓ§ 0µ /‚~ÛTòâ*(¨ŠŽ¾uõêCCC]˜Úà“裲²ºÓ§s/^|Àd²çͳ;v,ÄËË>kƒÁÈÕ•áêÊhnnOI)8u ¦v up½ÞNkkGRÒÝ””¢òòF“à`X°M5àzQAÈúøË/¥ff#‚‚f}øá<˜Ú1¤@^ráñW®”¦¦ýúëo4uõjX°MÙþïÿ⟅‚`j‡fƒ¼Þ@.Øvýz™@@À‚mjeéÒÿ”–ÖŠ¿e)Jaá~ø–W ÚÛ9÷bco?yR§v¬Y3£×ÿÚÔÄ´°©œAÿA^Ô|N÷Áƒÿú—/®%ãe ¶Mj2lS7ÑÑ9ÿúW'ÞH¥R\\l.\Ø¡ª¨†&¼2@JJáˆ:3CBfk"ñ•ÝÝ|W׃{÷¾çïÿ®’ƒ}yQÃ55½ ‰*+«ŽÞ°téTñtvrÓÓ‹SR ‹‹Ÿé½ÿþLX°Mm½|ÉrvÞÏç¿ñžÕÒ¢~õ•_hèUE5”áå,NŸ¾SW×&mjGFƽ-[âB{ö,ݾÝSE‘‚·yQ“=|Xôÿ^½ê 4þ¤„„MäSø~iJJáõëe°`Û ²fͱüüßùüžKF--êƒõTÕ'{jÇòåG<¨*•âë;ý»ïÞ—}ç¨äE•šZôÉ'g ‚ÀçP*•R\|ÀÂÂO^NN.¨¬l¶·· œµb…|ù1X$'ìÜyV øóm«¥Eus³;sf³j£XcãëÄ\&“¿›75Õ_´è0ù--êÌ™ââ6êëÃ/ZÕäE $—ËB¨§{ét­€W&“}õj•JY¶Ìñý÷]ç̱ƒ ˆƒK{;ÇÁa_w7ÿI¡P~øá?¿ª ëìäž?_rúôÒÒ[[ógÏþàñøä³4uâÄQgÏn15…µÔäEMÃfs·mK¼zõ!yIQ(H__ÇÉiLpðX°mPÛ°!&3óþõͰa´G¾ÒÕÕVuP@‚ÜÜÊ  \.Od;F53™’²•Á0SI`@6øñ½F©¯µlÙ¯]{$’BÚÛ9ááËV¬p‚¤8¨­^=÷/¦åééIQmýþ{³ð•"‰Ç47·/]ú]QQµò£½‚¼¨9<¨Y²ä»ªªf>_Â[!D§k%%(9*0à<=§à s|>ßÏoºªÃREEåH{ŠÏçwttùûËÌ|¬Ì€< /jˆsçJV®üþÕ+ùÍ“¸înþùóÅl6W™7lÍÛ{*…‚†×^°`²ªÃ’•”<¯¬l¿sC.—¿~}ô¹s%Ê ôêûil6»­­MU¡€>;s¦ø¿ÿÍ–ñ$uvrÏž½µd‰½¢Ç722êO 9ª=<Ƨ§{zNúãfUÇ2À4¦ÇOœÈÙ¢¥E¥RB …"ø|‚ >ŸøÛß~ûíEh¨«*‰º7òb{{{yy¹ÒC}'§N•fg¿ÐÖÖBÑéT:Š6ŒF£QBºº4ü‹S„…‚ž=«-/4Ó§ÌÌÌúy–ÔÈQm` 1Bûwô5¯iÓã>>6‹[²Ù¼®.‡Ãëèèîêâs8<6›Çfó:;»ñãÎN^G79¹¸¾¾iõêIªŽzˆu~±`Áå…úmáBU‡ (=¨¢4oToÛFlݺPæÙ@åuðý"ƒRXØ KЍ È‹ J°– yèyèyèyè¡À¼XYYI¡P$>áÅ‹ëׯ'"88X__}×›—ÑÜ„{÷îÑh´””r{FF†¶¶öÇñŸáááÓ¦MÓ××wuuˆˆàñx¨OÇ"É@µ´W ¥²²RiÕ©VFµ<¯ì?\Rd¿ ©W²×d“6êä<ç(”ðÉgܸq¡¡¡---2^ÿ¶'yeŽ:æECCÃO?ýôm÷:þ¼O}}}bbâãǃrå@Üggç½{÷nß¾ýÕ«W¡×¯_oݺõÀS§NEµ··Ï˜1#??ÿСC%%%{öìIHHðòòâóù};nwîÜixÓÀ6ªªªÊÔÔt`ËŒú3ªÉ}z0q]Â[ ïÔŸx¯‘„»OÚð“眣ø,T[[Ëd2]\\p$©õIžÒÔÔ”M ´ŠŠ \ù@†åË—wvvÊóJÕ’!nA]]]›6m"bóæÍÓ§Oçr¹ø5»vírssãñxä^,kܸq‘‘‘âUôz4Býn“,2bP\íeeeeeeý,D}Fµø¾Š@ÖEöË€W74{\¡DFˆ0‰Ý'²QžsŽ¢‰Œ @àîî¾ÿ~i¯Ûa©ÌQ÷Ö׋.\=z4^~0))iâĉàèÑ£ööö#FŒ˜={vvv6¾æ•q×èÒ¥KÎÎκºº–––‡Â_¾|©§§7|øðY³f!„F…þºcð¿ÿýoìØ±·oß–¸#…B‰‰‰±··733;tèP||üøñã þùÏâtwwïÞ½ÛÂÂÂÜÜ|÷îÝÝÝݳgÏ>räB¨µµ•J¥îÚµ !ÄçóŒŒ._¾ŒzõêÕ‡~hjjjmm½k×.‡# ùÁb×®]NNN/_¾nBH[[;...&&&"""666..ŽN§ã½öï߯¥Õ3MOO/<<<11±Çí­: —Ÿ‘‘1iÒ$ssóíÛ·wuuõÚ^;;;²GÄ]¿~ÝÖÖÖÈÈ(""‚ì2‘*¤Õ«”3ªÉ}…‡7’48‘CúâÅ‹ŽŽŽ::: #>>^¤.ᨤ:ÙãHÒÁ~ܼyóÀcÇŽ533 %/†$Rñâñxw!HèN©øÉP¤-ržsÚ4q eóæÍø\*±‘a)O™ÊuÂIRÎÏY¡¡¡ëÖ­kll´°°ÈÏÏ'âĉæææéééõõõ—/_¶¶¶F‰ &0™Lmmí 6ÔÖÖ&$$ „š›› ‚ˆ‰‰‰'Þü(/]º4++«¡¡A⎡ÀÀ@&“…Z»v-“É7„Ðýû÷Ûß$­³pi^^^åååwïÞµµµýüóÏål¯Äñ€zï½÷˜LfZZ>à«V¯ ʼzPæ¨ù¤,>8‰Þ†4‹Å6lXdddCCCtt4Fc±XÄ›ÃI¹^ìCu"ÇJS{œtp„ߟþù”)SJKK>|8sæÌ]»vIÛKb>|Xâî2Î{òl”眣覒®ç e׎Ÿ•V¦0eŽº¾äŶ¶6kkkGGG²¾)S¦ÄÅÅ‘/8uê”ì3HWWד'OX,ŸÏÿõ×_Éêçç×ÚÚJH ¥¥¥2vD•””ÁårEãLž<¹¡¡xãÆ ''§¢¢"}}}.—ûÉ'ŸìÝ»—N§·µµ>|xÙ²ex_---ò`¥§§ÛÚÚ G‚‡‡‡#„~ûí7²íd0@°jÕ*--­àà`á(ñtsçÎSSÓ>7ŸxÄ;K¸A$''ÛÚÚÊÙ^‰ã!tóæM‚ ðÿ}¬¨¨X…Ä $)ó,©ÌQ-r0Å'ÑÛnmm¥Óéß~ûm[[›@ hooçóùÄ›ÃOZ^ìCu"ÇJS{œtp„[1iÒ¤ôôtüìãÇÉÇâ{Iì i»Ë8ïɳQžsŽ¢›Fô–¥ÕŽ·H+S˜2G]_~wchh¸iÓ¦GmÙ²o©ªªrrr"_àèè(»mmíòòrooïéÓ§ÇÅÅá,«»»[ÚRú“'O–¶#6bÄ„¾i ü{ö왥¥%þ­”§§guuµ³³³žž^aaaNNÎÊ•+srr²³³—/_Žjjjâóù&LÀ»ÛÚÚÖÖÖ G‚.X°à믿–Ö„ÄÄÄ›7ofee¥¦¦fddpÔ¨Qø LØýû÷… —ó¸aO^HRgaø¾(nNmm­œí•ÆÊÊ !„ÿ‰Ž´*dlT*Õ˜øàÄÛe i##£ììì»wïZ[[ÏŸ?ÿÖ­[T*UžºúV8ìq$ýààwÁóçÏÉæØÛÛûúúJÛKbIÜ]Z¯R>ïŠóœ£è¦IŒ­¢¢‚<¥H«“³L¥º¾äÅššš£G.^¼xçÎxËèÑ£zôháH°‹/FFFž={6;;[¼ õõõÛ·o?|ø°»»ûÂÂÂþøãüTPPÐ_|?ø „“’’:ø¶ÇM6ñÎÂð§*„Pyy¹•••œí•FâWn"UÈØ¨T2ª1ñÁÙk´l6[ ¤¤¤´¶¶nܸqÅŠ­­­òÔÕ·êÄid#é¿ ¬¬¬ž={†·Ü¿ÿ«¯¾’¶—Ä’¸»x¯áùZuuuò´BþsŽB›&AÇǧSµcr–©´Q÷ÖyQ lذaÛ¶mIII™™™/^Dmذa÷îÝW¯^Åw·eèêêâr¹ÚÚÚl6ûÀ¡öööŒŒŒU«VõaGyÂ^½zõ?þñçÏŸ—––z{{ÿôÓO¡eË–;vlæÌ™t:}Ñ¢Eqqq666666!:°}ûöêêê²²²}ûö‰«§§7iÒ¤={ölÞ¼™Ãá7 ˆ°°0GGÇ7"„vîÜiaa±mÛ6üìþýû===¯]»V^^Î`0>øà‡óÑGõ­ù---oBR: Û±cGeeeaaáÞ½{ƒƒƒål/‹Å¢¢¢^¿~-û˜‹T!c£Ê©dT“Sâà”B¡xyy¥¥¥1™L.—K§Óuuue¿ƒúS=Žz;8!!!Ÿ}ö¾íö·¿ýíùóçÒö’ØAwî5CCC„ÐéÓ§™Læ?ü \5Ù}"ä?ç(´iøÅø,TWW÷믿úúúVWWòÉ'òÔ.­L•:á;oòÜ—ÿñǧM›†û{îÜ9KKËÖÖV.—{ðàÁñãÇëëëÏž=ûÌ™3Hæ71A|÷ÝwÆÆÆcÆŒ9vìX`` ‘‘þb“xK]âŽæææÄ›·¶%>f2™ëׯ722211Ù´iþeÍ«W¯h4þvº££C[[;<<œ¬¨µµ5$$ÄÄÄÄÒÒòïÿ;›Í–›Íž8qâÞ½{…›7lØ0ᯠ¨Tjjj*þ“ÅbíܹÓÁÁAGGg„ Ÿ}öÙüùóÞ긑͗س; —ecccjjºmÛ66›Ýk{»»»çÍ›§¯¯/ã “%V!­^”öm“’GµÈÁ”88{ÒÉÉÉ&LÐÖÖž XQilla Simple API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- j -

XQilla-2.3.0/docs/simple-api/classTimezone.html0000644000151400015140000003262311653571064016337 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

#include <Timezone.hpp>

Inheritance diagram for Timezone:

List of all members.

Public Types

typedef RefCountPointer< const
Timezone
Ptr

Public Member Functions

 Timezone (const MAPM &seconds)
 Constructor.
 Timezone (const ATDurationOrDerived::Ptr &duration, const DynamicContext *context)
 Constructor.
bool equals (const Timezone::Ptr &other) const
 Returns true if other is equal to this, false otherwise.
ATDurationOrDerived::Ptr asDayTimeDuration (const DynamicContext *context) const
const XMLCh * asString (const DynamicContext *context) const
 Returns a string representation of this Timezone.
const MAPM & asSeconds () const
 Returns the whole timezone expressed in seconds.

Static Public Member Functions

static MAPM convert (bool positive, int hour, int minute)
static void validate (const MAPM &tz)

Member Typedef Documentation


Constructor & Destructor Documentation

Timezone::Timezone ( const MAPM &  seconds)

Constructor.

Creates a Timezone representing the given number of seconds.

Timezone::Timezone ( const ATDurationOrDerived::Ptr duration,
const DynamicContext context 
)

Constructor.

Creates a Timezone representing the given duration.


Member Function Documentation

ATDurationOrDerived::Ptr Timezone::asDayTimeDuration ( const DynamicContext context) const
const MAPM& Timezone::asSeconds ( ) const [inline]

Returns the whole timezone expressed in seconds.

const XMLCh* Timezone::asString ( const DynamicContext context) const

Returns a string representation of this Timezone.

If positive, does print leading '+' sign, and if UTC returns "Z".

static MAPM Timezone::convert ( bool  positive,
int  hour,
int  minute 
) [static]
bool Timezone::equals ( const Timezone::Ptr other) const

Returns true if other is equal to this, false otherwise.

static void Timezone::validate ( const MAPM &  tz) [static]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classAnyAtomicType__inherit__graph.png0000644000151400015140000025116211653571064022315 00000000000000‰PNG  IHDRM}ÀÖbKGDÿÿÿ ½§“ IDATxœìÝy<Ôùðï$ÊU”3t9R$Gçv°Ý­.$ÚPÛ±©I¶R©mÓ¡¶Cw±±ÍHJRJj»)G§I$å*ŠqÎñýý1»~³ 3Æñzþ5óý~>ïÏ{è1Þ}>ßïçK!I’€v§“¤±@Ð>¡ÎhŸPç´O%@Çbcc#éàQQQ’N@¼(¸ß %Q(”‘#GêèèH:‘íÇqqqø íê<€E¡Pètº½½½¤éЂƒƒðÚ=\ŸÐ>¡ÎhŸPç´O¨óÚ'Ôyíê<€VjÇŽ e÷îÝÕGh4E¤¤¤ºº4 “É\¿~}¿~ýdeeõõõ·nÝZQQAÄÛ·o)J“?HýÝüPÐd¨óZ#’$i4ZïÞ½étzõA[[Ûœœœœœœ˜˜‚ rþeddTW—FYµjÕÓ§O/]º”••uæÌ™°°0*•J„’’’‡‡‡(>–õ(h< 5JMM}õêÕ­[·lllÒÒÒ ‚•••••%‚Éd¡¡¡Ñ`—F¹råJdd¤¹¹9Aªªª‡Z°`ÁáÇUTTš^‘WÛíÛ·ãããwïÞíééyíÚµ”””½{÷îܹ³º@ôóó»víZxxø7jL8p ##ãÉ“'ÑÑÑwîÜñòòªëÕ•¤ÀøÂ‡èXHhAAÐéôúÛÄÅÅuîÜùóçÏ$I&&&‘ššÊ߀Á`Ôø¯§ AwïÞ%I²ªªŠ ƒÁf³544¢££I’œ2eÊîÝ»«ã°Ù츸8oooccc))©   ÃñôéÓêhü¯ ¯eJJ ¯1N×ÓÓãïnhh˜““Ã{ejjZׇ˜¤Àøõ‡ˆW×ß À|@«C£ÑØl¶ŠŠ …B±°° ¢Á)½ú»ôêÕ‹ iiiÞ[))©Y³f…††~þüùöíÛNNNA”––Òh4‚ FŒ±eË–”””_ýuÆ µÇRTT¬ŽÆÿºš¾¾>ï…¡¡avv6ÿ©ÌÌLMMMÞµ666u}"IÖ_ø° ê<€Ö…ÃáÐét__ß’¹»»ó¦›Ü¥S§šßövvv—/_3fŒ¶¶6A$IΛ7/55•×€B¡Lœ8‘·lÚX¼Y7‚ ÒÒÒx%f5ƒÁ›i(**Š‹‹«'Ní$ëŠß¨°ê<€ÖåÁƒùùùNNN ÿš7oƒÁ¨g?¹&t;v,›Íööö^°`‚ÂÂ… """Þ½{³~ýzÞµfÍš·oß&$$üúë¯óçÏç?5kÖ,OOÏ÷ïß§¤¤Lš4éèÑ£õÄ©d]ñ ã@кÐh´ñãÇ«©©U177×ÕÕ­gé¶ ]x«¢ÅÅųgÏ®>xæÌ™yóæýúë¯ÆÆÆNNN–––¿ÿþ{>‚“““µµõ”)S&MšäééÉjçÎŠŠŠfff?üðÃ!C|||ê‰#0Iñ ã Ô³"G¡Pètº½½½¤!6mÚ”™™$˜oß¾Õ××á_–IŠ*~pp°ƒƒþB»‡}’:œŠŠŠOŸ>={öÂ… ’Î¥Nm"I€Vë¶ÎãLJêììlee%ÚÈݺusuuI(IŠ0>@G€u[€ÕzÖm;2¬ÛBù<€ö u@û„: }BÐ>a_€ÂbqBB¤¤%t¨óÄ®´´200öĉ¿ K¥¥5%tØW@Œrr¾úùÝ¥ÑKKK-]:vÉ’±={* |»[7ÙŸïà0LVVFÒI@G„:@dØl®¿ÿÃo±ÙÜõë'-Z4ZZZJÒI@Ç…u[ÑxôèíŽWŸ?϶·îá1E]½›¤3€Žu@s—oÝz…N=Z/2r±±–¤3 ÔyÍ™êéy‰Ëåž<¹xÚ´!’NàÿPç4“Y¹eKhppœ9C·m³UV–—tFÿ: )ž<ÉXµ*¨¼¼êüùe?ü0PÒé€çÛ4š¿ÿ£Ù³hDGo@‘­æó¡²’ý믗‚ƒãׯŸ´zµ5…B‘tFuB ¬ÂÂÒŋϼ}›èbi9@Òé4u€P^¾ü4þI….‘‘î½{÷”t: Ãõy {ö,ËÎίW/¥ÐÐU(ò ­@ЀÇßÍ{ÌÈH+8x…ŠŠ‚¤Óê<€úDF¦:8³´ä"''#étu@®]Kvu ˜1ÃìØ±…ÒÒR’N qPçF§Ç/_þ§Ý0__G))|[@Ûƒo.Î{àîNsv»w¯}§NØ$Ú$ I’’Πu¹x1aíÚ ÎÎc·oŸ íBðׯ§¸¹üüóx)’ΠY°n ðááI®®+WZ£È€vuÀ?nß~¹re ‹‹å† “% €`Ý€ "&æíüù'çÌêãc‡kò }@@ÄÇ¿›7ïÄ„ ÆGŽÌÇݵÐn Î€Ž.%僽½ßˆº§O/áfÈïÞ½»}û¶¨¢A‹±¶¶îß¿¿¤³Î’N@’²³‹-:=`€¦ÈŸxñäÉWWW„–A§ÓQçA»::®ÏŸ™öö~={*ŠëÙµX3i[pi&´3¸ß:¨òòªE‹N±Xœ  EÅ®’N@ô0Ÿ—K®YóWzzAXØjuõî’N@,Pç@GôÛoá·n½øë/×4$ €¸ Î€çìÙÇÿíç·à»ïô$ €áú<èXîÞ}½mÛ•µk'ØÚšI:ñBHZZ®««ÿÌ™ëÖM”t.b‡::ŠÂÂÒùóO¬½oŸCkÛ>cÇŽ e÷îÝÕGh4E¤¤¤ºº4 …Byûöm]GøG”••=ztõ¸µû–––R©Ô!C†(**6l×®]l6[àˆÕúöí»pá‚‚!³}ûöm3eÍÐ¡Î€Íæº¹ýÉå’Ç/í~ÈÍG’$FëÝ»7N¯>hkk›“““““CDοŒŒŒêê"Z111¼SRRôõõîXRR2tèЄ„ŸÄÄDOOÏ   ‡SWÌìììsçΛ››ýúU˜d”””<<<šû‘:܇®]቉™W¯®VUU”t.5¥¦¦¾zõêÖ­[666iiiAÈÊÊÊÊÊÁd2 ‚ÐÐÐh°‹h©ªªòÕÐÐØ³gººzAAššZfÞÞÞªªªÑÑÑRRRALœ8ÑØØøÜ¹s?ýôS]1µ´´¬¬¬¬¬¬8°}ûö“QQQiòÌ%@G†ù<hÿèôøãÇÿÞ·ÏÁÈHKÒ¹@£Ñ,--­­­ …œŸ«« …B 8p`=öìÙCÄêÕ«—.]Ê;Ëd2åääž={ÖØ ¥¥¥eddºw°Ñ``` ——¯Èã‘——§R©¼¥ÒèèèÞ½{?|ø°FG …âææÁ{Ëb±¨Tªºººšš•Je±XüÝýýýy«®3fÌpwwçu©¬¬TVVæE¨ÝÃáìÝ»×ÀÀ@QQqôèÑ?nì§hPç@;—œüaãÆ‹+Vü0s¦¹¤s€·ëèèHÄìÙ³…©óêïråÊ•ØØØ={öxxxΙ3',,ŒwÁ\XXXÿþýMMM…I¬´´”Éd2™ÌOŸ>mÞ¼ÙÉÉ©K—.5Ú|ýú577·v@SSÓׯ_ó^ïß¿? ÀÌLÀÝÍúúúééé¼×ÈÈÈxòäIttô;w¼¼¼vwtt¼téoùæÍ›rrr'NØýСCûöíóññIKKÛ´iÓ† „ùÔí Ð~}þ\2tèöùóOp8ÜšW~5Ø,..®sçΟ?&I211‘ ˆÔÔTþ £Fœzºq÷î]’$«ªª‚`0l6[CC#::š$É)S¦ìÞ½»º%ƒÁàˤÆ_ …—/_ÖnYTTDDAAA«¢¢ÂË<%%¥®”””x¯ srrx¯£¢¢LMMù»WÿJKKåååãããI’œ;w®§§g]Ý üýý«Ç æ×ANo°@[ëó ÝârÉU«‚:u¢üñ‡S§N­ô^KÆf³UTTªÐétccã&wéÕ«AÒÒÒ¼·RRR³fÍ 511¹}ûö‰'ª{‘|õY«¶c0zzzA”••yyy9;;ÇÆÆÖh£¤¤¤¡¡‘””dmmÍ<))É‚÷ÚÐа®Â`0tuuy¯333555«OU¯×è.''gkk2hРðððê5èÚÝ«ªªø'MLLêJ ú-´[û÷GÆÅ¥ûû/íÑC^Ò¹Æápètº¯¯oÉ¿ÜÝÝyóIMîÒ©SÍ/v;;»Ë—/3F[[›w°wïÞü{£¼zõªsçÎ:::µG”““[¼xñ‹/fåäääííÍwmii©Ï¤I“xo«+ÎH’z4ZIIŽJ hX,ŽÍ¾¾}Uüý—J$.—üý÷?¿;ÎÎc7ožÞ¥ þŸ ­¾§ m8sæAvvaP‹DFg2+W­ ¼{÷õ®]³--‘ u´¹¹ß|}#þy¼–––Jóò¾-Xp*?¿øÊ•U¦¦½[>€¦iuOþ¨mûö0uõî+WŽoù¡SS³'Mò%IâæÍu(ò mA­ÝÇŒ«W“vîœÕòO»sçÕ¬YG êuåÊ*uõî-<:@3¡Î€VÍæzy]¶¶di9 …‡ Š]¼øô¤Iƒýý’—ïÒ£4®Ï€Víüù˜ôôü3g–´ð¸'Nü½cÇÕ¥KÇmÝjÛ©vÈ€6 u´^EE¥{öÜX¶Ì²_?Õ–wÿþÈny{ÏtvÛ’ãˆê<h½|}oué"õË/ZlD.—ôô ¡Ñûù-øñG³@Pç@+•––ðpçÎÙ -tm›Í]³&èúõ”Ó§—ØØµÌ âƒça@+µhÑéììÂ[·ÖKIµÄc••lÿÒΜqþþ{Ã@Ü0Ÿ­Ñýûo¢¢^/o™"Å⸹ È€vóyÐêp8܉÷kht l‰§œ±XœåËÿ¼ÿÍùó.#FôoZæó Õ¹z5éÍ›ÜÇZ`¬ª*¶³óÙÄÄ÷—.­>þÝ… n y vÑÁ°2­ê<h]csr¾nÜ8EܱÙÜŸ>ïÞ› \-,ú ÓeíÚµ£Fs^Ð–ÄÆÆ8p@ÒYÔ u´"eeUüqkÑ¢Ñ-ð0Ù-[B£¢^œ;·tèÐ~Bv9r¤X³‚¶3yÐʡ΀VäìÙeeU«VY‹{ ƒoÅž>½ÄÊ w×@»…:Z‹¯_ËŽ‰vq±êÑC^¬}ŠŠŠÊÎÎ^µj•¨2Ù³gÏ€ºwï¾`Á‚²²²êSéééÝ»wûömõ9())yxxˆ$~%%%C‡MHHðññILLôôô ²±±áp8µóËÎÎ>wî\qq±¹¹ùׯ_…ELÉ´1$€D}úTÔ§Ïzÿ‡bŠ_UÅž9ó°…ŶÜÜo͉CNo°Yrr2…B‰ŠŠ"âÍ›75Î2Œ_¼A0Œê·÷ïßïÞ½{sò¬vàÀÁƒ?}ú499Ù‚J¥òŽWTTXXXð+¾Z¿~ýرcÙlvõ&“Ù·oßS§NÕhY#1.—;nÜ8///ñ寝ö/«6^5ß2ù4æó@ÂŽ¹£¦¦8oÞH1Åß°!øåËAA®êêÝÄ4?fiiimmmhhÈ?¥'$)))555Þëk×®™™™ÉÉÉijjV¯‡‡‡›˜˜tíÚµÿþçÏŸçd±XT*U]]]MMJ¥²X,‚ :tðàA333“Ë—/Ïš5‹×ØÃÃcøðáÂäÀ¿pI¡P‚‚‚Ø£G={öÔ•!¯KtttïÞ½ÍÍÍ—.]ÊkÉd2åääž={FD`` ———”Ôÿ'Vååå©Tj`` ÷‡ÖHŒB¡¸¹¹EDDÔõ©ù»ûûûó’Ÿ1c†»»;¯Kee¥²²2/BíîgïÞ½ŠŠŠ£G~üøq#~s­“¤ MèÐrr¾öé³þìÙbŠôh´¶¶{tôËæ‡"„˜Ïãr¹ýúõ;qâI’›6m222ªÑ@à|^RRRIIIqqñëׯ­¬¬¼½½I’,..–‘‘qvvÎÎÎ $"??ŸÉdvéÒåøñã999gΜéܹ3“É$IÒÇÇgöìÙYYY)))æææ7nä­ÒO`üÙ1gΜ¢¢¢S§NñåËòºLž<ùÎ;ׯ_ïÙ³'‹Å"I200ÐÈȈËåQPPPã'óèÑ#uuuþîL&“øï|I’ JJJ¼×µ?5÷¤¤$‚oËå’$Ö«W/^Jµ»ûúúª©©…††~úô)""¢W¯^ þ•Ä|´rø× ’´ys¨¹ù¶ÊJ–8‚ߺõ\[ÛýÈ‘Û"‰&L×¹sçÏŸ?“$™˜˜HDjj*u¿nݺñ*›ÊÊÊW¯^1™L‡sïÞ=^ÅSXX(--½oß¾¢¢".—[RRÂápH’444ÌÉÉጊŠ255}ÿþ=A¶¶¶ ãõë×ãÆ[¼xqff¦¶¶öË—/Éÿ.‰Ö•C:ïîÝ»$IVUUñú Ì×%%%…$I6›­¡¡M’ä”)SvïÞM’d]u^ll¬ŠŠ w²Öº-ùß:¯ö§æï^|ii©¼¼|||É 1¹¹ßc¶lùQFFôßEoßæ¯\8k–ÅÏ?yðºÐh46›­¢¢R}„N§7ðÔ ƒ¡§§GDYYÙÁƒøá‡÷ïßËÈȤ¥¥-[¶ŒÉdš™ý³¥³²²òÝ»w<¸uëVsssOOÏÉ“'‘™™©©©Y°{÷îÊÊÊA?~\CCƒ ˆß~ûÍÖÖ6--mÆ :::¼©²ÒÒÒÊÊÊ.]ºÔ•C}úÔÏÏ× ¼¼œËå^¼x±°°péÒ¥Ó§O/,,$‚7Æûï{QQQ\\œ‚‚‚ªª*oî—›¬¬ìãÇW¯^­¨¨¨¨¨H„©©é¦M›êɡƩNþó'C`†<Õµ ÝåË—ƒƒƒÇŒ£­­Í;èäääííÍwmii©Ï¤I“jt¯$ÉcÇŽM:•÷¶ö§®«»££cHHÈÕ«W-,,ôõõëêÞ·oßäääê^/^¼˜@‚:$£¸¸"((ÖÕÕJVVF´‘9îŠçY,Ή‹Å½‹ ¿äçç;99)ükÞ¼y ƒw¡X= rsssss³²²|||tttTUU+++«q>J IDATªªdddÊËË·nÝJDII …B™0aÂ¥K—Š‹‹«ªª¤¥¥åä䂘5k–§§çû÷ïSRR&MštôèQ …ââââââÂ`0ž?N¥Rç͛Nj+A cß¾}õäPÚ3¬Ñ†w_­··÷‚ ªzyyåçç?>22’Á`\¾|yĈZZZË—/¯ë‡óñãÇ{÷îÍœ93##£ú¦ŠÚŸº®T'L˜PTT´uëVggçꃵ»»¹¹Q©Ô°°°ÜÜÜÈÈH//¯úm@‹®üëàÁ[ƒm*-­yä;ÃûôYÿäI¦hà ]Ÿçêê:aÂþ#\.WWW×ÃãúHý×çuêÔÉÄÄ$..ŽwÊ××·G:::~~~ŽŽŽjjj$IÒét]]]CCð°0^Ëâââ%K–(++÷ìÙÓÅÅ¥´´”$ÉÊÊÊ•+Wª««kjj®[·®¼¼¼Æ¸¯ÏãÏ¡Æõyµ÷a©aíèææ&++[\\ÌÉd®[·ÎØØXNNÎÈÈhçÎeeeµ>ü‰éèè899åååUŸ­ý©ù»×åâ⢠ À»m¥®îl6{ïÞ½zzzòòò£FâMÖü5ÿ®ÏƒVŽB ½  *¬áýœF‰üdW¯>[¾ü¼Èw]¦P(t:ÝÞÞ^´aÛ½M›6effI:±vppÀ_RhµpHÏdV.]:N´a?|(¤Rƒí솊ïÑ ¼ŠŠŠOŸ>={öÂ… ’ΠƒÂõyÐÒØlî±cwí솩¨(ˆ0,‹Åqu ÐÑé±{·ÃB“=~üxèСÎÎÎVVV’ΠƒÂ|´´ëד?~,Z±âцݼ943óó­[ë»v|·&´0KKKÞíÀ )¨ó E‘$yèÐíÉ“÷éÓS„aCBžÆúû/ÕÖVaX€6 ë¶Ð¢îßO{ùò“h'óŒ¼/.[6ÎÆÆH„aÚ:ÔyТΞ}0|xSÓÞ¢ X^^åê`d¤µiÓtQÅh°n -çíÛüÛ·_ž=ëÜpS¡mßöéÓ×›7×µä–Èmê<h9çÎ=èÓ§§WWoÝzþçŸ1~~ D{µ@û€u[h!_¿–ÑhñÎÎc;u¢ˆ$àÇE«Wÿåè8rÆ s‘hgð< h!~~wŠzòd›‚B—æGãp¸sæýü™yóæ:99?!W ¥Yå©”T7yyS6û[YY²¨R‚VI¡Õº-´6›{îÜùsGˆ¤È#âøñ»OŸ¾_Ó2EAÁÁÁM똑Qò÷ߟRR ••»Lœ¨=b„šh¨ ê<h 7n¤äæ~ՃΞ=Ëڳ熻ûD‘†]ã³ÁfsÃÓNº—””5|xÿ'¦Oš4XJ WË@ËÁº-´[ÛC** gΈàN[‹3uê.]¤/_^Õ¹sk,›8î•+O÷ï¿ùñcÑ´iC\\¬† i¹z æó@ìRS³2‚ƒWˆ$Ú‘#ÑééQQë[a‘Çfsi´Ç‡Eåç—,XðÝòåß÷ê¥$餠ãBbçïÿÈÀ@cÌýæ‡JJÊ:pষ÷¬þýU›M„H’¼q#uÿþÈ7or§O7]·n’ž®Ã CâUTTzùr¢——móCUV²×¬ùk̃E‹¾k~4zùòÓæÍ¡qqéS¦˜=ºÀÐPSÒê<·ààii©9s†6?Ôþý‘¹¹ß‚‚\›¹Å‰”ìØqõҥġCûFFº·ä}! BbD’d@À£3Ì›¿J|ü;?¿;»wÛik+‹$·fb±8'Oþ}øp´¢b×ãÇN›6¤õTŸ<¨ó@Œ=bdf~>sfI3ã°XœCFÒur)’Äš)--wÍš¿^¾ü´dÉw÷‰ÝºÉJ:#Pç€ÄXXô8°W3ã>|ûýû/gÏ:K|ÎŒË%OŸ¾ÿûï×ôôÔ##× ˆKñ õBâ’›ûíæÍÔýûç63Îóç¼µeË}ûªˆ$±&{÷®`õê ÔÔì &»º~ß 7và‡:Ä寿âeüѬ9A8î† ÁC†ôÕ³4š,$äɦM—TTCCWZXô•l2Â@bA’ä¥K‰³fYtéÒ¬ï™sç¾xñ12r]§N[±­ªboÛvåÏ?c.ünóæ[쉺̈́:Ä"&&=#£`þüf=è,+ëËï¿G,_þ½/ƒKKË]¶Ì¿¸¸<$äç‘#u%•@àâ í±¹yŸ4šÄÛûªºz·5klD•Uc]½úlÚ´ƒÝoߦ¢È€6uˆÞ·oeÉŽŽ#šäþý7ׯ§ìÚ5[VVë¤\.éãs}ÅŠósçŽ téÙS¡åsh&¬Û€è]¹òLJªÓŒæMŽPQÁÚ¸1ÄÖÖÌÊÊP„‰ ©¤¤båÊÀû÷ß:ä4k–EË' ¨ó@ô.\xËfs®__Ûüÿ$ë¶ b/^|LIù0wnÓmÓÓó¾ýË/ÕÔE˜˜0=z;sæEÅ®aa«Qä@[‡:DŒF‹×ÓS1¢“#lÚª§§þÓO-½aÞåËOœNŒ£åÊ*MM¥@ä°n ¢Äbq._Ntq±jr„ÈÈÔû÷ßÐéË[òi\.¹u땳g¸»OpwŸ(ñ§«ˆê<¥¨¨ß¾•;8 kZ÷ÊJöÖ­WlmÍÆŽ5mbõ¨¨`­^tóæóí훘9@+„:D)$äÉwßé©«woZ÷#G¢¿}+Û±c–h³ªGII…³ó™””lÿŸ¾ÿ^÷öˆ®Ï‘),,Ž~9{öЦuÿø±èèÑè•+­UTZh³º/_˜vv~iiy¡¡+Qä@ûƒù<™ðð$™ÎÓ¦ iZ÷Ý»¯khtwuµiRuÊÌüìàp¬sg©ˆˆµÚÚÊ"ïÞ½;wŠ<,ˆÛæÍ›---%€h Î‘¹t)qÂ#9¹¦<¾"!!#44ñĉEÒÒR"O¬¶—/?Í›w\UµÛ_¹ªªŠe÷–¼¼¼Û·oÛÙÙ‰#8ˆÉÅ‹—-[&é,DuˆÆ»wOžd¬];¡ }I’ôö9²“çåÕ«‡c::=]zôëXÁÁÁb¢…[­¡A¢qùòS55ÅqãšrŸìµkÉOŸf]»ö‹È³ªíÕ«{{¿{,•È“sZ îÃѸråéôéfRRþVa³¹>>×§ObfÖ[‰ñKJÊš9ó°¹yŸ  yÐî¡ÎHNþžž?s¦yúž?“]´iÓt‘gUCRRÖܹÇGŒèúô’–¹ @²Pç€\¾œØ¯Ÿª¹yŸÆvd2+¸éä4JG§‡8«†": ÔyÐ\\.–dkkÖ„¾gÎܯ¨`¹»7åî á¡È€Ž u4WBBF^Þ·Y³,Û±¨¨ôر;..V={Šqcä6QäíØ±ƒB¡ìÞ½»úF£’””ÄÿVYYÙÞÞ¾   Qý}ûV„7––––R©Ô!C†(**6l×®]l6»v3þ´ûöí»páBáÓn~¢ýÈmê<h®«WŸ ¨©§§ÖØŽGŽDËÈt^¾ü{qdÅ“œü¡õy$IÒh´Þ½{Óéôꃶ¶¶999999111AäüËÈȈ ˆ˜˜˜œœœOŸ>EEEegg¯ZµJRÉ—”” :4!!ÁÇÇ'11ÑÓÓ3((ÈÆÆ†ÃáÔnÌK;;;ûܹsÅÅÅæææ_¿~f%%%QçÐþa_h6›{õjÒO?klÇOŸ¾ž=ûà×_§ÉËwGbA¼{W0þIíãǶÚ" ˆÔÔÔW¯^ݺuËÆÆ&--ÍÀÀ€ YYYYYY‚ ˜L&Aü]TUUyG455}||¦Oû],uñööVUUŽŽ–’’"ÂÀÀ`âÄ‰ÆÆÆçÎûé§Ÿj4®N[KKËÊÊÊÊÊêÀÛ·oopþÉNæó Ybcß–ΘÑè;m}}ojht_¼xŒ8²"";»hΜ£ÆÆZAA®­| fiiimmmhhÈ?¥'$)))5µ&S¿~ýºxñbmmíõë×WTTÔu°‹Å¢R©êêêjjjT*•ÅbqíÚ5333999MMÍê‹B¡ 8°G{öìá ôòòây<òòòT*500·TÝ»wï‡ÖH›B¡¸¹¹EDDÔ•wÞªëŒ3ÜÝÝy]*++•••yjwçp8{÷î500PTT=zôãÇûƒhH€fX·Ž6y²oc{¥¥åjk»Ç‹#%’$ J¾ûî· ö•”Tˆiˆñ*¶›q¹Ü~ýú8q‚$ÉM›6ÕhÀ`0jÄ!"))©¤¤¤¸¸øõë×VVVÞÞÞ¼SNNNãÇOOOOII166Þ¶m›Àƒü1}||fÏž•••’’bnn¾qãÆââbggçìììÀÀ@‚ òóóyãΙ3§¨¨èÔ©SA|ùò¥¨¨ˆ ˆ‚‚‚9?zôH]]7ÊäÉ“ïܹÛ•d0üÍ”””êJƒ¿{RRÁ·ÀÍårI’ ëÕ«‹ÅØÝ××WMM-44ôÓ§O½zõæ×ANo°@[:šŽÅâm:z4º±—-;7~ü‡+ެJK+§Lñ=ú·ÏŸKÄ_HBÖyqqq;wþüù3I’‰‰‰A¤¦¦ò7XçñëÖ­¯~ªªª’’’zþü9¯Yhh¨žžžÀƒü1 srrx¯£¢¢LMM+++_½zÅd29ν{÷ªë3‚ î޽ˈw°®:/66VEE…7JJJJuÚõÔyµÓàï^pii©¼¼|||//ÃáèêêòÚèééegg <È*33SSS³úm÷îÝeddÒÒÒ–-[Æd2ÍÌþ³]oVLZZš÷VIIICC#))ÉÚÚš¿YRR’…Å?÷_Öó)ª«†Àîrrr¶¶¶!!!ƒ öìY]Ý«ªªLMÿÿ/ÓÄĤ®4Ú1\ŸMwýzб±Vc·8Þ³çú¨Qº66F"χ$É_~ù+>>ãÂ…å}úôy|‘ãp8t:Ý××·ä_îîî¼ù$!#ÈÉÉ-[¶ìÇùùùêêêRRRïÞ½ãJOO×ÒÒx?oâ÷_ÿ¢¢¢¸¸¸òòr{{{*•úôéS???þÆ:Õü«áäääííÍwmii©Ï¤I“xo«‹ÂH’£®ÞýèÑùâØ¥ MÃþyБ‘©Ó¦ á=ŠJ¯^}ºyóù©S‹E˜‡Ã]¾< ¨¨4"b­ø’ Ðva>íÇÂׯsÆ$|—C‡n Ñ¨uÞíÜóöÌ™%ÚÚÊ" Ðn Î€F»}ûe·n²#Fô²}zzþµkÉ+WŽ~þ¯Aþsòä½?þp:´Ÿ¨b´3¨ó Ñ¢£_ZZ––²ý‘#Ñ}úô´µ5k¸©p>dlÙºjÕølÜ#×:ÔyÐ8eeU1„_´ÍÊúšøóÏ?HI‰æ çÇÂ+þ´²2¤R'‹$ @{…:çÑ#‹Åþ¶Y?¿;ÝçÌ&’ÑY,Îò媪*=º@T…#@{…ûm qnß~ifÖ»gOaçæ~£Ñâ·nµ~‘·~¿þz)#ãóÍ›ëÚÆ ¶666³ÙR,–Œ¬ly ç ê<h’$oÝz±hÑwB¶?}ú~÷î²sçÉè4Úã âüýj7ØêèèØÙÙÕ8H’”¢¢.yyr……]XC†H$7¨‹ŽŽŽ¤³ÔyÐ/_~ÊËûfmm$LãââŠ?ÿ|´víDYY™æššíé²j•µµu#ös‘ Q£F5ªúm|ü»'W¯&±Xœ©SMì솭½@¬Pç@#DE½ÐÔT22ê%Lã â:u¢ÌŸ?ªá¦ )**]ºôìÈ‘ºmîÞ‹ª*vXس€€GOŸ¾××W_½Úzöì¡êêÝ$t¨ó ¢£_Ž?P˜mðØlî™3÷íí‡+*vmæ $Iþòˇ<|¸-=Ü,'çk@À£  ¸’’ [[³íÛgZXô‘tRб Îa”<{–µj•µ0¯_OÉÉù¶l™eóÇ=zôÎß¿¾|y•ŠŠP7H‡Ã½~=%00öÑ#F¯^JkÖØØÛïÖ­¹Å.@ ÎaݽûZZZjÌa?~wÒ¤Á::=š9èýûovïŽØ¾}†¹y˜ »{÷õ¾}7ž=ËdÌžmqúô’^½”$@Pç@à K_¼øèî>±Á–.ÄQ(ÍÝyóæÐòò*__ÇVuY^AAÉÞ½7h´Çff}®]ûÅ̬·¤3hê<hØ£GŒN(£FéÕߌ·7²ƒC³öF¾|ùiHÈ“À@—Ö³[I’.<Þ¹3¼K—Î>>v#ÚÐvÍБ¡Î€†=|È2D§ÁÍ~oß~ññã×%KÆ4y  ==/.]:öûï ›D´Þ¼Éõ𸘘˜éìøþ{Ã~ýT›6 ‡Ã]¹2PG§çæÍÓ›A´˜ÌJŸëGŽÔ½wocÿþMü\’‚:•õ%3óó˜1úõ7KOÏôèí¹sÎMèØ±»))®__Ûž!qíZò–-—Y,öþýsçÌÚª®’ä¿L •{ø!''Óà¦ÇçÏÇhi)?¨i£<þqïÞ[¶ü(ñ]èÊʪ¶o;>fòäÁ;wÎÒÔĵÐV¡Î€7n÷ׯe·oS—.‡"ÚÌç@ž>}_VVUÿÅy—.%r¹¤£ãˆÆç­ØZY::¶ôŠmyy•‡ÇÅ'K—ŽÛ¼yz—.ø&€ö ßnP§GZZÊ}ûªÔÓæüù˜éÓ‡të&ÛØà>>×?f†„¬hF‚MñæM®›[@nn±¸wN9yò¤ø‚ƒX¹¸¸H:Ñ@uŠ‹Kÿî;½z$&¾õêÓï¿Ïnläää§Oßßµk¶ºz‹®Ø^»–¼~=]G§ÇµkktuÕÄ:–«««Xãƒø Îƒv×ç€`,çÉ“Ì#ú×ÓæâÅø4†¯¯ÀÈk×^øî;½ šr‹nÓ°Ù\oï0W×€4½víqyþŠŠ‚®®j] ®_O©¨`ÍšeѨ°™™Ÿ¸µfM¿~uF­‡Ó–/?ߣ‡|dä:=½–˜Æh%°n ‚%$d Ú¯žÝFèô„~¨¢¢ |L’$ׯ§÷ï¯úóÏãE‘cÃŽž7ïÄðáý®]ûEt4¨ó@’$ããß Ö¯®ïßyôˆáà0¼QaCBžÄÅ¥ïÙcß¹³Ø¿|ØlîÆwíŠX¾ü‡“'+*v÷ˆ­ Öm@€ôô‚ÂÂÒz.λt鉪ª‚µµ‘ð1¿|anÛ¶`Áwææ}D‘c}Š‹+ÜÜâãß:µxÊqÐ:¡ÎÞÉÊʘ˜h >£žEÛààøÁƒµ 5…ŒÆfs·m»òý÷†Ó¦ Q‚‚=íì|vΜ¡.,WV–ëX¢B’$FëÝ»7ÿÎm¶¶¶999999111AäüËÈȈ ˆ˜˜˜œœœìììsçΛ››ýúµÉ ¼{÷NEåŸGž())yxx46BIIÉСC|||===ƒ‚‚lll8NíÆMN¾i¹tt’Ý‘Z¡ÜÜošš¿DG¿x¶¤¤BWwÃÙ³÷…xüøÝþý7dgŠ(AØlΖ-¡½z­=xð—Ëß@Â#„Û'999™B¡DEEñæÍ›g F/j‚  Fõ[.—;nÜ8//¯&çY{ˆÆZ¿~ýرcÙlvõ&“Ù·oßS§NÕh)òäE˜OÊ«¶[&€€ù<¨éÉ“ )©NuÝ,Â2E IDATl‘ÌfsgÎvÛ¼¼¼oû÷G®Xñ½––²èrüòòª¥KÏÆž<¹hÍ›¶µ6G£Ñ,--­­­ ›ð0 …âææAüw]²ú5ïEtttïÞ½>|xíÚ5333999MMMÞJñÈ‘# ‚ÐÐШáëׯ‹/VQQÑÖÖ^¿~}EEo¸   öèÑcÏž=¼–^^^RRÿ_å———§R©5F¯'y‚ X,•JUWWWSS£R©,‹¿»¿¿?/·3f¸»»óºTVV*++ó"ÔîÎápöîÝk`` ¨¨8zôèÇ7öÇ Ð֡΀š2 ШëB::=~Â#%%9!£íÚÑ£‡‚ø6Ìûôéë´iSR>DDü2uªx×…EŽ$IæèèHÄìÙ³›öÐ-}}ýôôôúÛìß¿? @OOoöìÙæææ cß¾}žžžqqqAäææÖè²råÊìììøøø7nܼyÓÇLJwüÊ•+±±±{öìñðð(,,üúõknn®©©i¦¯_¿æÝÌLÀ“Hø“?pà@FFÆ“'O¢££ïܹãåå%°»££ã¥K—H’$âæÍ›rrr'NØýСCûöíóññIKKÛ´iÓ† „ú´'’žP€Vgòdß_ x*+ë‹–ÖÚ›7S… û¶W¯µ×¯§ˆ.»ÿxñ⣩éÖqã~ÏÊú"¦!šŒbÝ6..®sçΟ?&I211‘ ˆÔÔÿül\·%I2!!AII©Fãê×¼)))$IVVV¾zõŠÉdr8œ{÷îñB ìUUU%%%õüùsÞñÐÐP===ÞèwïÞå5àu/**"¢   ÆG‹UQQá½þäI’444ÌÉÉá½ŽŠŠ255åï^[ii©¼¼|||;hP¯s眻wv~±U¡Ñhl6»ú6‚ ètº±±q£‚0 ]]ÝI’äkhhH„ŒŒLZZÚ²e˘L¦ÀÙµjyyy§:¬žž^vv6ïu¯^½‚––æ½URRÒÐÐHJJ²¶¶æ””daaÁ?zƒÉgffjjþÿæžîÝ» ì.''gkk2hРðððgÏžÕÕ½ªªŠ¢ÑÄ;)B‡ƒu[ø””l6›kaÑWàÙ«WŸM™b"ä¶yçÏǤ§ìÜ9K”ùýëÆÔùóOŽ©äÒF‹<‡C§Ó}}}KþåîîΛ>I’ÇŽ›:ujõÞ†&?~äoÆ+ËÊËËííí©TêÓ§Oýüüê «®®.%%õîÝ;ÞÛôôt---ÞëNjþöœœ¼½½ùï®---õññ™4iÿè &Ï›ÿãMBñ”vwtt ¹zõª………¾¾~]Ýûö훜œ\ÝëÅ‹õ|d€v uüdzgïUUutzÔ>õúuΫW93f˜ çËæž=7–-³ìÛW¥áÖtùòS7·€¹s‡Ÿ9³DVVFäñ[ƃòóóœœþ5oÞ<ƒ‘””TÇ‚‚‚ÜÜÜ?Þ»woæÌ™¼û”””‚øóÏ?‹‹‹:T»ceeeUU•ŒŒLyyùÖ­[ ‚())áb2™ü-¥¥¥V¯^‘‘ñüùóÍ›7;99Õ•——W~~þøñã### ÆåË—GŒ¡¥¥µ|ùrá“'bÖ¬Yžžžïß¿OII™4iÒÑ£Gëq„ EEE[·nuvv®>X»»››•J ËÍÍŒŒ¬¾à ‘Ìr1´VË–[¸°æv<>>×ÍÍ·q8BíZ²~=ÝÌl+“Y!ÒìH’$ÖÒZ{êÔ=‘G-¢¡ëó\]]'L˜À„ËåêêêzxxTx}^5''§¼¼¼ê³;wîTRRÒÕÕ #ø®Ï«nàëëÛ£G???GGG555‹5fÌ… ,XгgOMM͵k×–——“ÿ½ÀŽÿ5“É\·n±±±œœœ‘‘ÑÎ;ËÊÊj^òÅÅÅK–,QVVîÙ³§‹‹Kii©Àky\\\˜Lf=ÝÙlöÞ½{õôôäååGÅ› ¬ç7BâúÜ{îÜîîk'Irôè]“&{yÙ6äÅ‹“&ù8à8gÎPæF’ä®]'NÜÝ¿®Ý0F …B§Óííí%4Bpp°ƒƒþ2B»û0àÿ J²³‹ÌÌúÔ>•œü!3󳋶۶]11Ñž=[Ø=ö„Áfsׯ§……=;ujÉĉ»S cBÿ—””E¡PÌÌz×>ö¬UƒDD$ÇĤ‡‡¯á~Å••l7·€G®£Gë‰*,@û†û0àÿ’“?ôéÓ³öÈ\.yåÊ3a&óªªØ;w†ÛÚš™› ˜lšÊJ¶‹‹lìÛóç]PäóyðIIYC†˜±‹——÷M˜:ïܹ‡ùù%[¶LUJeeUK–œyþüãÅ‹?¬-ª°æóàÿ’’²LM/Úiéé©Õß½°°ôÀ[K—ŽÕÔTI>EE¥³fIKË»zu5Š<€ÆBÿÈÊúRXXZûâ<6›ž4cF}Oà9pàV×®W¯¶I>……¥Ç J.]úYW·jCÿHJúйs§ÚÓf±±o‹ŠÊ¦M«ù úÒÒrº»ORPèÒüdòò¾Íœy¸¸¸âÊ•Uýû«6? @„ëóàÉÉYµ/ölÈ>}zÖßý÷ß#ôôÔœF6?“‚‚’yóN0™•!!+>™„:þñ와‹óØlnddª›Û÷õ÷wóæó€€Ÿ¤¤š»Jðå ÓÎί²’º²Áⲕ‹ŽŽþúõk:VUqed°Þ"‰‰‰’N@”PçA‡ÃMMÍž5«æÎÆ¿+,,:Õ¤ž¾$InÛ6fŒ¾Q3ÓÈÏ/™=ûˆ”T§ðð_TTšMâNž<Ù¨öRRݺvÕíÚUWZZ#/ïIVŠ)1è PçADzz~iieíMU®_O8P³_¿ú®‹Œ|žœü!"â—fæPTTêèxŒÃá^¼¸¢yÂ?;ëÅ‹‘‘Ï##S_¼øØ½»Üøñ'Mlcs K|E@³àK‚ RR²¥¥¥ 5ùr¹dDDò‚ßÕÓ‘ý?öî<ªõ ø; ²ï{Ö¢”l¥-nÒ¢Ò†¤Ò¦}S©ëVº¹m”´¯$¥¢(-Úl©¨ˆ+![v!Œm¶óûãtç7Y†ò|?ý1sÎû¾ç9gN3÷œó¾tæ¦NÖæ€,÷õkƒ­íÙúzêíÛëÄ»ÓÔ/ÉÄÞ¼Éyü8õÉ“´‚‚JEE‰)StÝÜfš˜ àã#ñ::Àoò<B}øP¤­­Ð"ÃHJÊ+/¯›6ÓEÛ·ùù_üýWtgëJó¢EjjîÜÙ ¤Ä±÷z'ƒùæMNXØ»°°wååuƒ)Ìše8uªžž^.N8Èó!”–Vc†¾¸¸PÇ5€ Ï ¯ËÈ(e21ö›äjjÞ¼É9yra›å+*êüü^îØ1MPð‡;ó|}Ÿ{{?=yrᯕäa÷éêÕØÇÓˆDÂôéúžž¶£G€‘½äyôuï߉ŠöSS“f-yöì#@07×i³üéÓ‘ââ‚ŽŽ¦?º¡û÷“÷ì ݹsÆìÙF]÷窭m Nð÷ÍÊ*6¬ÿ?ÿ̶¶6ëÇ븠S Ï ¯ûð¡hð`Eö®©ðð÷#Gj´™Í”–ÖøûÇîÞ=óGïE{þüãúõ«VMX³Æ¼»ÿ/^d¼zò$MHˆßÁa´¯ï2ýðË<€¾îãÇÒÁƒYoétfTTúÆ“Ú,|êT¤´´ÈÂ…£h©©…NN—ç̾k׌nÅÚó¨×¯¿¾z5.+«ÌØXãäIxÀðë‚//úºôô’™3 Xoß¾ÍýúµÁÒrhë’eeµ×¯¿Þµk?ÿ|uääT,XpÞØXÃÓÓ¶7ßÐV^^çïÿòÊ•¸ºº&++=“¼ ºò<ú´²²ÚÚÚF-­ÿOØþ^SSVS³©fÏ‹ë·`IçÛ//¯[¸ð‚¦¦ìÅ‹KøøH\ˆ¸¤¥]¼š$%%¼bŸ… GKK‹ð:(àÈóèÓ²²JBìs…‡¿Ÿ4©íμ˗_þõ×ô~ýø:Ùxmm£½ý9>>ÒåËË»ðpnO£Ñ¡¡I¾¾/RR>«íã³tâÄ!Dbïíq€y}Zff™¤¤°œœ(þ6?¿2;»|ÿþ6¦Á¸x1FT´_çïÌ£RéË—_ª­m¼wo£¤¤0×"æ ¥9(è¯ï‹‚‚ÊÉ“uÿþÛ.Ñ~KçЧee•ik˳ÞFGg ´Nzªªê/_~¹y³e'»å0 Û¶-(%¥0$d½¢¢7#îžÒÒŸçq†æÏµlÙXöeà7y}Zff)ûEÛèèô±cµ[ßHçëûœŸŸ¼dIg'Àðô|t÷î¿×®­ÒÕUî¸ôO‘ž^|îܳÐÐ$Ñ'-Z4FT†Áüæ Ï OËÌ,›6MM¥Òcc³Üܬ[”©­môõ}îä4^DD 3m^¾{âDÄÙ³‹ÍÌ´¸îc0˜¦øøwîYyyíÌ™†/.aŸ½úÈóè»23KÅÅ…äåÅñ·Ïže´žÓöÖ­„¯_V®ßakuK–øèéõ÷òšÏ«ñkkýü^úø=ú$"âðaý/]Zfa1€€ö@ž@•›û…H$¨«Ë „ž?Ï”’fŸ»"+«ìéÓ÷gÏ.âÐÂçÏU«W_17×Ù±cZ‡‹Ð»wŸxðâE¦¾¾ÊåËË!ÀAž@•“S®  Þ¯B(66k̘ìiÓÅ‹1jjÒVVúíUoh .]ê+''vêÔžž^"9¹ààÁ°/2 Tƒ‚Ö´èwи£€>*'狦¦,BˆFc¼~ýÉÔôÿs”•—×ݼ™°|ùX©í¯&[·îjyyíÕ«N=:|IrrÝÙiÓ¼ëêš‚‚Ö<|èü$yÿüó@8tèkI`` ¡-ÉÉÉ!;;›½zë%ÁÞ¬¤¤¤­­mEEB(;;»‡ºEëëë]\\ôõõEEE8@§Ó9¦®®¾xñb<°Îè~ð=·ûôçÐGåæVày^JÊg ¥™=ºr%VXX`Á“öê=ú$**Ý×w™²²d…÷ï¿¿a†‡Â0,00PUU5((ˆµÐÚÚº¤¤¤¤¤$..!TòŸ¡C‡rqÓqqq%%%ÅÅÅááá………6l@IHHìØ±ƒ‹[ÁÕÕÕ1"!!ÁÃÃ#11ÑÕÕõÚµk“&Mb0íVXXèççW[[kddôõë×Îl¥‡‚àw×mè£rs+&OÖE½x‘©¨(ç|¡†ê¥K//ÓbŒ–{÷’½½Ÿ<8ÏØX£'û÷ß‚C‡Â^¼È44ü ¯Ò¦¦¦¦§§?}útÒ¤I™™™ÚÚÚ!AAAAAA„…BA)((ôĦeeeñ–=<ýØ—/”‹—Ü¿¿ù7KòBãÇ·°°¬­­-**jjjúæÍ›n~ôv hl¤ZY]¶ÌwïÞÐ#öNzTQqóÇ)_¿Ö+)m^ºÔ·¤ä+†at:cÔ¨¶l Ä0,;»¬¦¦½‘ÊJÊÈ‘îóæ¢RéÜ /'§|õjeeç‰=ÃÂÞ1™Lî¶ÿ „‚‚‚8—a2™çÏŸÇ0lçÎC‡mQ ++«Å×2B(99¹Ž B(++ _ëáá1wîÜ‚‚‚””##£?ÿüðŋ;::–––ÊËË¿yó¦E;µµµ&Lpwwo±E„мy󪫫/^¼ˆª¬¬¬­­åçç_¶lYaaa@@B¨¼¼¯2uêÔ¨¨¨‡JKKÓh4 ÆÊd2ñ,³¢¢¢ÅÞÅÆÆÊË˳WÇû/Y»ƒKHHhoÙ«'''#¶Káøis÷î]%%%<¤ÖÕ=*''wûöíâââ°°0%%¥ñtœsz-8wè+LM÷+*nîßßYIi³¢â·JJÎŠŠ›•”6+)m^¼øâ±cO•”œ?|(Æ0ÌÙ9ÐÈhÏ»wxuacsÆÄ䟪* £ÊÍ­X¹ò²²²³…ÅáçÏ?r±åŸ¬3yÞëׯÉdò—/_0 KLLD¥¦¦²h3Ïk• <¸¤¤n``€aXuuuÿþýõôôþþûïöÚÃi‘çEGGcF¥Rñ­477§§§S(ƒƒ/Ä«¤¤¤`F§Ó"##1 ›6mÚ¡C‡ðÚÌó^½z%##Ã^ß(‡<¯õ²Wg___/,,aØüùó]]]Û«®­­}ùòeÖ¶üýý!Ï¿7¸?€¾bäHÍ‚‚*:ý»á1 Cái@DÄûˆˆ÷‚‚QQ¤¤„ÃÂ’)”¦éÓ:d³`Éþý÷“’òîÝãÚ ¶eeµ^^ƒ‚â••%Ïž]le¥ßÓã³ð\`` N—‘‘a- ÒÕÕå\+++kàÀ¬·ìχæåå)**²ÞŠ‹‹#„$$$V®\¹wïÞððð6Ûihh8vìØü‘ŸŸßb[xÿþ–ŸŸ?33ÓÉɉB¡²—~í¸ÍêT*ÕÀÀ€µDOO¯½0ø=Àýyô#F¨cgdÇ0„a¨¡¡ùС°Q£þ©«kÆ0D§3]\nΙsêÂ…OOÛ!C”:³­ÚÚFkkjöï0fÌþððû÷ωùsÆ ƒß>Éc0AAAGe]ݲe ÞØå6ñî1ü¯öêêêׯ_#„>þ|êÔ) ‹­[·¶YKHHÈÉÉéóçÏååå-V‰ßý(466ÚÚÚº¸¸$%%9s†}+´±±¹sçÎÍ›7ÍÌÌú÷ï/tpppwwgº¶¾¾ÞÃÃcÊ”)-ª·€aØÙ³g­¬¬8ì`›Õíí탃ƒïÝ»7|øp--­öª«««¿{÷ŽUëýû÷m†Àoò<ú CC5ƒÙ™’ F¥Òú–`öömžŒŒÈСʜ+â^¿þ4mÚ1*µÁÒ(”æýû»¼Ú²Å2. Góñ‘Z—üý¼xñ¢¼¼ÜÁÁAä? ,ÈÊÊÂo2ëš9s渺ºæç秤¤L™2åôéÓL&sÙ²e6l¸qãFDDÄýû÷Y…+**JKKKKK <<<<\@ QµñÀú÷ï¿hÑ"‘ÄÄDÖõÙÖ;Ø^¨üüü666%%%óæÍãp|Ö­[çââ²mÛ¶º»»_¿~óàWGèÎ%À¯eÖ¬“ññ9#P›_ øa7NÚ¶mr›Se|úTneåM¡P™L¦@BÂnIIaƒyãÆ›ãÇÃ+*ꜜƯYc.%Å;üzdkkËë@x`çÎyyy×®]ãu =âæÍ›vvvð[ ~Qð}ˆ±±FrrA›WTÙaD"´¾È‹a‘Hðõ}>~¼¶‰É€kËËëlmÏÖ×S™L&BˆF£Ÿ<ah¨väÈ㜜 {ûQ›6Mê¹ù3O455_ºt鯼ŽÐÈóèCŒŒÔ¨Ô6&žbG øøÈT*­År"‘ÀdbÖÖF{÷Î’‘i±¶¶¶qÞ¼Sµ¬ìFcøø<>\íäI==níè=Þ¼y3{öì5kÖL˜0×±Úy}ˆ‘‘ëéŠ6‰++½û÷SZ#¶| IDAT,'“‰ÂGη°ÒºVs3}Ñ¢‹yy•túw]€ÁÌl ¯ï²ÖUÀïaüøñUUU¼ŽÐ.x€>D^^LFF”} ðÿñØÈdâܹ#„…û‘Éÿÿf ‘ˆÁÖväË—µ™ä1L''¿¤¤ü#ó!„h4ÆãÇ©©©…ÜÞy}˨QìPà“â „Èd’©©Ö¡C6aaïX‰D”•½vmå‘#vbbýÚlÐÕ58::£½[ˆDâ?ÿÜãöNèÈóè[ ÕˆD‘H@ˆÀÇG’•Eññ‘tu•/]Z–SWׄþëÆ[½Ú<6ö¯ ÚºàôéÈk×^q–Á`¾|™õêÕ§žØ—ÞƒNgÂ×) ‚ûóè[†W§Ñ$!¦„„¸¸`EE¼¼˜¿ÿ AAþ°°„™L’“=ztþ¸qƒ84uëVÂa­‡› #Dhn¦!„DDúiiÉ¥¥ŽÝòùÜ_T~~eAAe~~%û‹šš†~ý~“üN¾Ëórrr"""x `§©©ÙbjHŠˆˆÈÉéxеŸ ŽO—Q©L"‘ ¬,PPÐhn.öäI™  iΩ;wn0™Xpp€ Å&M’ËȈÉȈi¯¬,Ê…†  ŒNÇBBB$yyYY~992BÃ>^¸ð± ÑZXXhjj¶·ðÞݽû¯ÏÒ.4Þ¡êêú¼¼Êüü/yy_òó+óò¾äåU–•ÕàkeeEÕÔd´µå'Mª®.mgçÓ1@w|—ç½}ûvÕªU¼ °³±±é=yÌ… nݺÅë(¾ǧ;ddæ§¥¥óó«?~LNnYuõW×r„?¿Š¸¸yMMĽ{Å÷8ÞSÇǧ(-=è4Ze}ý:½ŠN¯¢Ó+™ÌæO\½BÔ^žþþÀ?–’ÉD:ÉþìÈjl¤fe•µè¨+.þJ£1BÂÂÈ©©I¡1wî55iUUi%%‰Óµ1”.=¤ë¶0ê7ÏõÂ!õmllnÞ¼Éë(¾é…Çg„ øìŸ¿„OŸª‰D‚¤d? ‰-))åzzߦ%-(¨UR!“;î+.¦HJöìÙ?ÌÍÍÛ\óqÿþûiiEø“Ât:³¨¨ZMMº3mÖÖ6ååUà™ÜÇ¥™™eøUW|­˜˜à A ƒ)Œ§­ª*­¦&­¦&-..ÔÉ€íììììì:Y~¸?€>gÀ€ÿOJ¡§÷ÿéVUUÅ:Ù‚’RËq’Žû÷“y’•U†ÏËÊú£4/ïK‹<ð‚‚ª6o¤C‰)UUi=½þ3fèw!¥k­÷ü!,ç~/_fîßÿàÝ»Ïd2!ŒÉö€/™LJM-âgÝE—Ÿÿ%/¯²²’‚" âêêÒC†(M›¦§®.­¦&£®Þ­”®M666Ümºò<@¯öêÕ§ýûï'%å‰Dôm“ӧ#x *ÚOCCVMMÚÄd Ý(55immyyyq^D ½äy€^ŠL–öñùøþýk"‘€b2Û¥FcŒ¡îím¯¤$Á>4Èó½•Ê J—•]˜–VE ƒÓÃa†••Õ¨¨Hý´ðàWûz~~Ò¢Eºee>NNƒ·l™Mc0˜ÖKµþ™Ç„†aññ¹·o'††&ÕÕ5áÓ$üü08ÈÍÍ-((8|øð¶mÛ û÷ïÏ­F˜Lfmmmwb_¹re{kÐÿ¥¤x|3‘HÐÒ’×Ò’·±1F1™ƒÑ»>kè ¸p??¿¸ø·Á h4š‹‹‹¼¼¼œœœ‹‹ F311Aáya›ðK™‘‘‘ªªª/_¾l]!D ®]»¦££#%%åé鉢Óé{öìQUU•••]¼xñׯ_Ûk!²iÓ&ö°÷ìÙãëë‹¿þúõë’%Kdddú÷ï¿mÛ¶¦¦&ö««ì¯[‡ÑáÞ1ŒÃ‡kkk‹ŠŠššš¾yóæG0Ƹ?yñâ‹ÚÚ._~ééÓ4Ádb½3ÉC8&!péÒ%YYÙC‡]½zUCCC\\|÷îÝ?º9 Ãâãs¶o¿9xð_³gŸ |SWׄÚ€ƒç¢¢¢ôõõ‡®ªªÅZnnnáèè8sæÌÀÀ@„ÐÉ“'ñ !ÔØØ8eÊ”¬¬,¬]»!4gÎü-…B9tèµµµÍÙ³g©T*¾•G9::Κ5ëúõëOŸ>µ···²²ºtéb»nË`0üüüìììfÍšuðàA …Ót^mƉ7»hÑ¢Ù³gŸçfoÖÉO<""">>þСC®®®>žõÖÏÏ/::ZAAAEEÅÃÃÃÅÅeùòåìuÛ+àáá1lذ6 žZµ÷ôF |÷î>]º»»ûöíÛÚÛ÷a´XÛzë žžž³gÏF)**räHmm­®®.™LNII144Œˆˆ°´´ÄO`ÎàètzTT”¯¯¯¢¢"BhéÒ¥çÏŸÇÏ:;;;!!!KKËÇ/X°@HHhÊ”)^^^uuÿ¿Ë3,,ÌÉÉ ÿï°cÇŽ‚‚;Õ^œ¡5kÖà×”W¬XáãããèèøèÑ#ooo)))99¹U«V;wÎÉÉ©“@t1ÏËÊÊÂÿjohhpss[¶lÙ«W¯ðUyyyø¯ Žu=—¥½¬þ¶ö ())!„øøøð·ùùùZZZøköªKJJÊËËøða̘1¬å k×®‰‰©ªªb0 À—8°°°=à—G[„ÑáÞQ©Tö´XOO¯ÍŠ,QQé’ |Õ „:¼ëèÀœ tŸ–wò¼ö>PQQQôß‘dÍÙÇ¥™™’55VŒ¡Ãã×åÈ;IHHLE¥ãbQQQ ƒýi‰èèhVІ?¹B&û/I$ÇŽûüùsMMÍÄÄÄ­[·v¦\uu5“ÉÄOT„²²rEEÅ¡ ±¶Âþš]YYëÆA555555;Õ^œ!V#ªªªx¥¥¥sçÎeæÐ2€îëî8ÉBBBK–,¹pá†aøßñ222ÑÑÑxˆ_0mQ¥½¬ßøö à³±())åååéêê"„’““ÃÂÂvîÜÙ^õ™3gzyy=šÕÙ@£Ñ„„„øøøH$RNNÎ!CBŸ>}RVVÆËÐét2™\TTľÝat¸wsæÌy÷î¾¾>^àýû÷œéè•77“--—_»ö*/¯’ÄáZdB‚›²²d{k¹ÂÖÖ¶;Õ;<%~È A ºº_èt¢½ýÖÀÀø×¯?‘HD&“Éd¶}·â… K¦O×ïÎ;dkkû_Õ.&“½víÚéÓ§ãKðnÎ¥K—âçdëþæ &ìÛ·O]]}ذa²²²œa¯())I$KJJ𭸸ø‡–––.--ÅsÇìììׯ_/\¸CùÖqâ ñNÁÏŸ?ã´âââÞÞÞøÿ/ …Òº;wqá9 11±ºº:ÖÍÚsæÌquuÍÏÏOII™2eÊéÓ§[”ï~Ü¢E‹vîÜ™–––––¶~ýúüü|Õ÷ïß³hÑ¢¸¸¸”””½{÷ž8q¿¥ÏÎÎnãÆ¹¹¹iiiøí†¡+W®ÔÖÖž8q¢ÃƒÀa÷W¯^íââr÷îÝÒÒÒdzîNãL@€¾nÝĸ¸]ÑÑ;6n´PR’@ññýJó—tþ”è2™icc².!ÁÍÍmæ°a*¡Þ|'~JJJuuõ¤I“ÿcaaQXXÈaü9===ƒáïïoiiÙÉFð‡aÉd²¹¹ù‰'JJJrss}}}-,,:ª¥¥¥OnnnnnîñãÇËÊÊ8—o'îÔ©SEEE>>>“&MB;öâÅ‹eee999Û·o í|Tº€ y^ÿþýÅÄÄX÷ÎïÛ·OTTÔÐÐð?þÐ××oýLC÷ à\]]---'Ožlff¦ªªÊzè¯Íê²²²‰‰‰ÍÍÍ666fff>¼wïž••^åÔ©SJJJÆÆÆ––––––®®®222ûöíÛºu«‘‘Ñ’%K8쾺ºº™™ëºdë­¯[·ÎÅÅeÛ¶mtwwÿѱm RغuJ|¼[hè†Å‹ÇHH"„ÈäޛРN.nKIIbÅŠq9?{¶cãF ee)Ô+OTT”‘‘þ÷NKKKII‰Ã@zD"qܸq øÝxœQPP6lëªè¦M›dddð¿1Œ9ÜoÚšƒƒƒ±±±‹‹Ë† äååW­ZŹ|ë8q[·nýóÏ?Gމ°|ùr!!!'''ggçtØ2€n"°ß|vóæMÎ#ƒŸ¿NzóæÍÖ«š›éßFE} Ñ0„°ŸvݶÍxx‚C>>¥¥¥»víâzËÜÕ"΢¢¢… vg,hœ¹¹yPPP‡· MM-6¬?Þí €åWºBd++}++ýÚÚ¦GRBB‰D®Í¢ö  ¦¦MM<8/::ýöí$_ò$§R©•••=ꀂ?O⬪ªON.HN.ø÷ß‚¤¤¼êê„Pd¤ äyÐÂ/ùBbbýììFÚÙäu ½ÉÒR×ÒR—×tQzzúîÝ»gΜÉþ°v/ÔfœÂÂÂ3fÌàâV(”æ””ÏÉɉ‰y yø\¬!uBAU•ÓX<Ð7Až@o¤¯¯ïÞ=^Gѱ6ã”Ø²eKwš¥Ñ˜ÙÙÕÂÂW¯f9òOQQ†!"‘ÀþT5û:‚ÂÂÝÙ"ü– Ïô:d2¡¾ž*$4,1ñÿ#Ö´7tBHM펀¾ƒ ÏÛw„#+*®®];DGG‰@ Hí~Y‘HƒqæLÔÇ)>S(Í?3TèÍ ?Ð{ik‹ïܹ""âþ}÷³³ËBë^=‰ØÐ@»xñyYY ¾DFFDMMF]]F]]ZMMF]]ZUUFNNô§‡<y W#“& 8qHXØ»}ûîUcØw³ÒhÌ-[&ÏžmD§3‹Šª *óó+óó+ *ÃÃ?äæVÔÕ5!„øøHJJªªÒjjÒjjÒø MM9¸±ðÛ‚<€¾ˆNg’ÉD„“‰ýCó‰„3 ¦Lšäáñ°´´†•ía¦¦&"“‰x7vìwukjX™þâŋ̂‚*¼º¸¸{懿PU•j=ÝÂg¿¢ððp^‡À3111ûöíãu}׸qã¸;LUyÞ… ¸¸Ð999øÄ ½GNNNï91záñ)..~ð௣øEE‘HPTDOŸ2-,¾MÚ\T„õëGîÄø$Ÿ?c4'ˆ‰¡ÿ&¦þøøH66ÆÓ§ë_¾{âDx}}3ƒÁÄ0ÄyPqq!==!==ö…T*½¤¤†•ùef–>x\TTM§3BdqUUimm…Aƒðä¯I· ¶abb¢¢¢ÒqQÐk|þüùõë׼ނ—ÊÊÊ"""lllxH_ôêÕ+II.O|ÐFž“õ½-ILLìU'Fo;>™™™^^^¼Žâ 銈Œ¬¨¸¢ °æÊ•ÒÊÊ[!2YRVvq}}r]]†Ñ8T'¤¥çññÉ"„˜Ìí ^I§WÑéUtz%“ÙÔ£Á ò¯Yc¾hÑŸ˜S§¢$##ò£ðó“[wþÑhŒââ¯ìW~rƒ‚ÞàÏv´yåwÀ9Cº8;;w8ŸèUðy¡xïõž ú”žøºø.ϳµµ…¯$Ðü‡çìW<>^^½¼žìÝâç÷!egçGÎGM˜p(3ÓPKËüرffZZ(+«µ²ò.)©!…T……5D£1B¢¢ý´´äuu• RÐÒ’×Ò’——çú.ˆˆlÞl¹lÙØGR¹Õ&‰[W~ñKÉÀ[p}QII Bèüùg‚‚|¡ÀÀ726XÌž=ÜÓóaiiÝY{ûQnnÖbbýÚlA^^ìÖ­µÓ¦yS(Í “Ng°VÕÕ5%%å§¥‰„¦&:BØ’%¦Ìë‰ü ³Â´yå÷ËJ~þ—¼¼/yy•ùù_òò*ß¼ùT^^‡¯•“ÔééÀ€3Èóè‹ŠŠªBž‡!<&//6k–‘‡ÇC¼›êæÍ„‡ßíÝ;ÛÆÆ¸ÍF44d×Ì™s²© cG¥ÒñüüäÃ'ddDddD†Wg_ØÐ@Ås¾¼¼/›6çQh𠌓 @_TXXb0˜øìax’¶ys`AÁ—Aƒ" „ètFmmÓæÍ7-ºXZZÓf;úú*«H¤vN%‘H6LTPàþuÛÞIHˆ_GGiêÔakÖ˜Óhå¼Ð×Až@_T^^ÛÖblÁ‚ cÇ"“¿emL&†aXLL†™ÙÁ€€W­;íB£GðñYÚ^¢'&&°zµ9×âð# Ï Ïin¦·79ƒÁ¼v-[„…Ng64Pwì¸9þ9ü‚o ––º‡Ù´NõˆD ‰È:ôÏ?ÿ„C‡±–Ú’œœL lllØsîìììîö×ͦêëë]\\ôõõEEE8@§Ó[cßuuõÅ‹WTT´.ÆÝظØháGOÝ.úÀ¹Çäyô9¥¥5möÌáid2±Õ7†a(..küx›7Z×Z¸pô–-–ì_dD"¡É—/³ÆŒÙàÀƒššnÅÿ›Á0,00PUU5((ˆµÐÚÚº¤¤¤¤¤$..!TòŸ¡C‡"„‚ƒƒÙ s–““###ÓÉ;vìøÑ]¨««1bDBB‚‡‡Gbb¢««ëµk×&MšÄ`0ZŽ‹‹+))),,ôóó«­­522úúõkg¶ÒµØ@Ïé©ûCŸ~‡§.‚s¯ Ï ÏaÍÛžýy, ÖØHuq ŠÍn½vëÖ)ŽŽ¦¬Ù50 Ûµkf|üî½{gݺ•0|øÞýûÔÖ6v3øßOjjjzzº¯¯orrrff&¾PPPPAAAAAAVV!¤ð>>>„ЪU«Ö­[WZZÚ™ö™Lfeee' ÈÈȰ÷Ít’»»»¬¬lddä”)S´µµçÌ™Ÿ——ççç׺°¬¬¬‚‚‚²²²¹¹ù;w455½½½;³•®ÅzNNÝúô;§¤¤†L&u\î{D"aÒ¤¡‘‘.C†(µW†L&^¼¸DGG‰ÁÀöì±fe ‚‚üëÖMLHp[·î'"ÆŒÙïãóœ5ðJ_†_ù²··GÍ;·“?–$éòåËþþþ-V­_¿¾°°0>>þÑ£GOž<ñððÀgñÂ;ÿêêêæÎkdd”••uäÈWW×ŠŠ öœ›Â—‡††¾zõÊÓÓsÇŽUUU_¿~---500hQÝÀÀ ##íåååïïohhØz_´´´>}ú„¿öööÎÍÍ}ûömdddTT”››[›ÕíííCBBð÷É“'BBB“'On³ú‰'Ž9âáá‘™™¹sçÎíÛ·wæð‚ÎèÚ©ÛëÓïÌ™Ùúó…s¯S0@ãî~WMm«¢âæNþSVvVVvž<Ù«©‰Ú™ö«ª(;w†´·¶²’²oß}uõm#Gº_½G§3¸·g½ B(((ˆs™×¯_“Éä/_¾`–˜˜ˆJMMe/••Õâ‹!”••…aØñãÇÅÄÄ Xe¨T*‰DJKKÃKÞ¾}{àÀì-477§§§S(ƒƒ7Å^€sSøÖ£££ñxõêêj„PEEE‹]{õꕌŒ Þ`JJJ‹àY$$$ð׃.))Á_‡‡‡°WgÅV__/,,aØüùó]]]Û«®­­}ùòeÖ¶ð´˜ó'‚ç+œËüÞ:yºsê²°>ýÏL¬­Ï÷7;÷0 ³±±ÁŸ²â"'€>§¤¤†Fkû<–~ýøð««||ä~ýÈÿü3gß¾{6\;Þ±Ãk¾’’ÂûöÍio­””ðÎÓ—-3óö~ú×_Á¾¾Ï·l™=xðàö6”••ÅÚJ^^ž¢¢"k•¸¸x›Õ…„„¬­­ƒƒƒ‡ rÿþýÿý·½êT*•½³GOOÃ.ƒÒS—…õéwæÌlýù¹×pÝ€>çóço³"„Z_Àåç'8áí¡¡!‹ÒÒ’ ßfkkìë»ìÉ“´3g¢¸ƒ¢¢„§§mlìNccµk¯Î˜q¬Íg;~o #((èèÑ£uÿÙ²e ÞØ™êD"ÑÏÏ/66öÂ… øyyy‰”““ƒ¿ýô铲²2{•ÆÆF[[[—¤¤¤3gÎphœCSDbËwwwö'ëëë=<<¦L™‚¿e%…-`®IÉ IDATvöìY+++ü-ÞƒwBTWWã—íÚ¬noo|ïÞ½áÇkiiµW]]]ýÝ»w¬Zïß¿ç°Ë óºyêâØ?ýΜ™mžpîuò<úüy[ ©)kh¨Š/ Ïk¼dÉXF$æÌ¾`Áè°0gUUi„±±ÆÞ½³ çÚ–ŠŠ”§§íÝ»lmϬXá—™Ù©gH/^¼(//wppùÏ‚ ²²²’““;Ù‚††Æ‘#G¼¼¼ð·|||vvv7nÌÍÍMKKÛµk—ƒƒ¾ŠB¡ „š››©T*??ccãž={BuuuìX84Õš››[yyùĉ?~œ••uçÎQ£F)++¯Y³¦uኊŠÒÒÒ¢¢¢˜˜˜Ù³gçææ²nlŸ3gŽ««k~~~JJÊ”)SNŸ>ÝÞ---«««÷ìÙ³lÙ2ÖÂÖÕW¯^íââr÷îÝÒÒÒdznºÝÔåS·½O¿3gf›§œ{ãîe`@ïçåõøéÓ´êêz ÃsUT¶89ù᫪ª(ÊÊΣFýƒa•Jo]×Å%HKkGFF ×£zñ"sÊ/eeçÕ«ý?~ä~û?êèþ¼U«VYZZ²/a2™ رckI‡791™ÌI“&±ÊTUU-Z´HZZZQQÑÙÙ¹±±‘F£™™™‰ˆˆàŽ=*%%¥¢¢ræÌ{{{999öì›kÝT‹­³¿¦P([·nÕÕÕ:tè¾}ûZÇÏþ룢¢âààPVVÆZ[[[»téRIIIiié•+WÖ××·yï nåÊ•""" …Cu:~øðá =ï¤áð‰`p^çŽ@—O]Ÿ>ç3këóÅ—ÿ6çÖ3÷ç°éeü~6l¸V^^ôíÏßyóNÇÅe¯3¦ÁSh4†ÝÙòòÚ‡ÅĹ̋™†%'Œ«íêje` ÊõMü4!((ÈÖÖ–×€póæM;;»¾üËG€‡ð¯‹›7or±M¸n @_gf¦ŸÃÓnݺ‰¡£GŸ¶Y˜tþ¼cc#måJ£ƒ‡9º`ìX퇃‚ÖÔÕ5M›æmgwöß ¸¾è# Ï ¯33Ójn¦'&æãoÇ$--—ÝÞ­r²²¢þþ+rxÐC!±²= ¥ÉÊ ²=è"Èóè딕%ÕÕebc³ð·D"ÁÑÑŒD"œ=û¬½*ººÊžž6gÏFöà ïcÇj‡…9­©¯oƳ½¤¤üžÛü~ Ï 33­—/³Xo,0Á0,$ämYYm{UæÎ±d‰é®]·ß¿/êÑØÆŽÕ~ð`3žíMŸ~ÌÎî,«ëgç©©Vrr~]]þVIIÂÔT‹H$\¾ÜrRHv{÷Î64TutôÁjéQ¬l¯¡¡yÆŒcÖÖ'ââúÜx{ð£ Ϡѣ2ØÛ·y¬% ަÓ~~/ëë›Û«ÅÇGòó[!..4þ¹ÚÚ¦ŸçرÚ÷ïo ÝÀÇGš7ï´µõ‰>8º2täy$'':t¨Rtt:kÉ”)ÃÄÅ…¨œïÀð÷_QUU¿f?ÎýÇoÛ4r¤æ­[kýü–75ÑlmÏ8:úÀ•\häy„š0apttë-ÉÖÖ¸_?¾ b8'pýûK^½êôúuŽ«kpχù @˜ïá0¿C &Mzÿþ¦§O·)*J88\øãÏ[·~ZÏ"¿ *•~ùrìèÑûüü>‰Â¼p ̇@!¡«»k×®‹a-œ1ãxqqµœœØ£G[:láäɇ¾¾Ë&OÖíÉHÛõñcééÓ‘¡¡IŠŠNNã.ݯ_ÛS˜ÿaذaòòò<Œü¨²²²ÔÔÔ>õËXW×táÂ3?¿—4cåÊñ’’•Ë—/´°°àu\}Qjjê¸qã¸;äy€o–.õ% ¾¾ÿŸœûÆ×þL£1îÞÝhl¬Ña ;vܺ};14tÃСÊ=)'ÙÙå§OGÞ¾(//¶zµùüù£„„øy Ìxöëâîm¯E§3¯^=q"òë×z‡Ñë×OTPõê•··7¯Cë»LLL¶léøïê΃<ð¿ìÒÒöññ‘ð% T7IIáAƒ®\qê°áàp!+«ìáÃÍŠŠ=/'EEÕçÎ=»qã5??ÙÑÑtéÒ±rr¢<Œ€ÞæíÛÜ?ÿ ÎÎ._²ÄtÍsyyq^Gzäy€o *MLöݹ³aÔ(MÖÂmÛ‚^¼Èüü¹êáCgÕ©«k²¶>A&CC7òª#¥¾¾ùÆ7.<+.þ:qâÍ›- ;Þ~oEEÕýþ~Þ¼ý5]A2¼ß<‡øFUUZCCöÙ³ ö…öö&Ÿ?Wik+;Þ™FDEû]¾¼¼´´fõjƒÇÏC ¬X1îõëÝ~~Ë++)VVÞÖÖ'ÂÃßÃß· oÂ0ìÊ•8 ‹#ïß]¼¸äÄ Hò~{çþÏÜü»ÑUBÇ«éè())I„‡¿OM-ìL#ªªÒgÏ:ÆÄ|VVÇîÝK†ÇrAŸRVV»hÑÅÝ»o/\8úùsW++}^G~ÒßÿÍë½θx1fÉ3AÁÿ_rmn¦‡„¼UW—ÉÉ©˜>Ý 3í¨ªJéê*»¹Ý!‘HìWyˆ@  gg7râÄ!YYåÇ? Œ§Óƒ)ðò±\~‚Þ-^|‘J¥_½ºÒÆÆ˜u.øíAàÿLMµÈdRxø{ö…66#š›é£F xðàÝÇ¥ljÒ¤¡Îóðxxýú눴ë TÏ[œ”´wÉSŸçzzn7^KO/áu\ô*•þ×_Á+W^¶¶6zút›¾¾ ¯#?ôçþŸŸüæMÎçÏU3g² ògd”äåU ðVO:¬“­é驉„þ¹§­­ ­­Ð3!w‘ÿÈ‘šË–UU•zô(ÕËëñóç™""ʉ^GwV/\xáåˬ'®]kN&C7^Ÿýy€ïXZ‰ùØÜLg_hooŸ3gÎðÐФ˜ÉÙÙréR³uë®öÎIÉøøH66ÆááÛüýWð­Zå?y²×ùóϾ~màuhtWRR¾••wc#íáÃ-3gvêŽ ðû<ðKKÝúúæW¯²ÙŽ«­¢"UWפ  ~òdÄ5ø÷ß³¦Næät9-­ˆ«‘r þ ÆÍ›k"#]ôõU==ýíì|#9¹€×¡ÐEaaïæÍ;m` úàÁæåxàÈóßQV–ÔÑQ ÿÀ¾H$ØÙ y»y³åõë¯sr*:ß ‘H8yr¡‘‘š½ý¹ªøóéè(yyÙ¥¤¸»»ÏNK+š6Í{ìØƒ§OGÖÔ@÷ø•\¹·j•ÿ‚&—.-ãù0–€· Ï´da1ôéÓ´ ííGUUÕ‹‰ jhÈœ8Ñ©±ôXøøH/.UR’pp8_^^ǽH{„°°ÀÂ…£Ã÷=~¼eôè^^OŒÝ·o¿ùáC1¯C c^^Oþüó–««Õ¾}sH$ø•ïë`> @K‰‰y3fŒÜ®££È¾|á D"aÖ,£M›®GGïøÑ‹A••këä;w6ˆ‰ r5äTRò5 àÕõë¯ËËëLMµæÏ9mš^¿~0 èüýc]]ƒw옶iÓ$^ÇzÈô-ªÉÊŠ¶]!do?***}ÄuMMÙcÇžþh³ÒÒ"×®­ª¬¤,[v©Ås½™¢¢„‹ËÔøx· H›6]70Øó×_ÁïÞ}æuh|çîÝwî Ùµk$y€úómpv¾‘]~ÿþ&ö…4cøð¿—-«©)»n]@TÔv--ùm9))ßÖöŒ¥¥î©S ÅLjjîßçïûþ}‘¦¦ììÙFvv£ú÷—äu\ ¯{ðàÝš5W6ož´uë^Çz?ЃyñbÌ¢Ec„…X I$â—/”;w’²yô(õãÇÒéÓxê$EE‰aÃT~T^^;qâáKõúõãÓÓSY´h´©©VUUýµk¯}}Ÿ§§—ôëǧª* ·Cžxö,ÃÉéòÒ¥cÿúk:¯c½ ôçÚPW×4lØîÇmmlŒÙ—úT>nÜ¡ÀÀÕµµ+Wú‡‡o2D© íÇÄ|\²Ägöìá^^v¿\ªÇ®®®éÞ½oÞLxû6O\\ÐÊJöl#“¿bW%øE½}›kgwÎÒrèéÓ‹àÄ-@žh›££BÈßE‹åÖÖ'””$NŸ^4iÒáåÏŸwìZûOž¤­\yyÑ¢1ûöÍén¬½@uu}XXÊ­[ß> ‹!66ÆffZ¿t z¿ÂÂê©S¤píÚ*2¯Ã½\·´J¥ûø<_¾|\‹"‘pæLÔ’%fÚÚ ‡…?HI©+w§ (7hÂþý÷kj'LÌ¥¨yFP_OOÅÞ~”••ž€922Ý×÷ùÝ»ÿVW7ÈË‹II ó:@ðjj¢ÙÛŸãç'­qò@› Ï´MUUêÌ™(ÅAƒ¾]ESSÖ×÷¹””ðܹ#^¿þóqþüQ]Û„––üÀòûöÝg2±1cr#jÞ“‘53Ó^¾|¬¹ùàÆFÚ­[ §NE>|˜RUU/++ à ÃV¯öOO/ Y/++Êëp@/y m|oÞä|þ\5}úw3còñ‘>®zò$ÍÑÑTKKáðádž†ª²]ÛÊ A ÊÊ’îîwI$¢‰ÉnÞ+%%‰?þÐY³Æ|út ƒßz{?½y3¡  JDD@II.é‚î8{6Úß?ÖÏoù°aýy è½ Ï´«¡zùrìÊ•ãÉdûrÑ'Âÿøcˆ¡¡jjjáƒÉ‹érÖ¢««¬¨(¾gÏÝ~ýÈ#Gjr#ðÞEFFd̘K–˜™šjÑ錰°w¾¾/>L©¬¤HK‹HK‹ð:@ðë‰ŽÎØ²åÆŽÓZ<)@ çÚ¥¤$qút”¾¾J‹©/Å=J­¬¤Lš4tð`ÅcÇÂ54dttºòà-nذþ‚îî÷¥¤„ U»xoD$TT¤&Nâä4ÞÌL»±‘òöôé¨Û·“JJ¾ ñ+(@è”êêú Î=pÿþ¹pÎÎ Ï´KXXàùóÌŠŠº©S‡µXE¥2||ž/_>VII"?¿2((ÞÑÑ´;£Ç©‰ˆìÙ*++ª¯¯Ò½À{5V·zµùôéÂÂü/^d=úÔ×÷EjjaSMMM†ŸœíZ³æjmmãÍ›ká<‚qUœ\¸sôè“ÔÔøø¾»tûõkƒ¡ážC‡lììFV›™سgæÒ¥c»¹9/¯ÇG>=|ØvÁ“n6ÕK\¸p¡3Å**š32(uÅÅMüü--‘iÓ„„H×\µråJ^‡Ð7^oß~ëöíõÆÆ¯•““ÑsQŸOSSÓ¢ãr´ïóç*%%çgÏ2Z¯Z½ÚæÌãøë;n¸544w‹»wßVUÝö®ûMõ?úÝM"‰ éKJNG®Çñ¯Ï—ää”°ýï¿C´bPP¯-à2›Î|ô0E€“þý%õôú?|˜ÒzÕ‚& ¹™™¥!gçÉJó¹sϺ¿Å½{g-X`²j•pðÛî·Öuþ÷˜N¯«¯O®ªºaÌý-ÝÑû3!ƒ¹iÓ 55iWW«®µÀëc ¸ÆÆÆ¦“:äy€Lž¬ûôi“Ù²kÊÌLK]]&((!$//¶iÓ¤“'#ŠŠª»¹9pðà¼-6mº~éÒ‹n¶ÀoãÆ7ÉÉùžžvp[è<Èó˜1ବ6>>§År`kkO¥ÒBNNãeeE==qe£..SÿúËj÷î;/Æp¥A~iUUõû÷?pr?|¸¯c¿Èó0@ÎÀ@5$$±õªùóGÕÔ4†‡¿G ÿúkzpðÛwï>se»ëÖMܹsúž=¡Ç‡s¥A~]^^ûõ#;;Oæu ày cÖÖ†¼£Ñ-–+(ˆ››¾qã þvæLƒ#ÔÝÝïrk»k×þqðàáV›ürÒÓ‹¯\‰Û±cšˆˆ¯c¿Èó›5ËBizö,£õ*㘘¥¥5!àæfýúuΣG©ÜÚ´££éÞ½³¼¼ž>Ì+Âüröì ÕÓëok;’×€_äy€ŽÉË‹©šÔzÕ”)Ã$$„ð§1Bǫ͘aàî~¿i+V¬wäˆí‰®®Á­à÷™›½{÷L"†Ú? ò<@§ÌšeôäIZCµÅr>>Òüù£®^c0˜ø’;§—–ÖøûÇrqëöö&~~ËoÞLX¶ìRs3×2È^åŸþ!‡b- $´%99!T__¿}ûv}}}‘‘#G¶«©ìììš «¾¾ÞÅÅE___TTÔØØøÀ¬0رǯ®®¾xñ⊊ŠNn¢ûÁ÷Üî÷4 Ã<<Â,-‡š˜ øiý¡S±;Ÿl›ÚÛVppp÷?Ä>xºBžè”3 h4FDÄûÖ«ìíG•”Ô<ž‰¿UQ‘rt4=~<¼¶¶‘‹XX ¹ukmBBîÂ…ç)”f.¶Ü`¨ªªÊ>Š›µµuIIIIII\\B¨äìÝy TÛð;cß×l!û•%$[%E›»Ò*í¥,•WÚSJ¯z­Z( •žJ*©¼"‘ýµ!‰J¢ˆ±ÎrÜß›7¡Á,Œï篙sï=ç;îa¾Î¹÷Ü455;öÅ‹aaayyy›7oމ‰™2e ™üÿk(¯_¿Î†á°0rrr8››»eË–ØØXj´233«««?}útñâÅÆÆF“††FZ‘”” fvìƒÃ“'ï^½ú²i“#ÛZìmWDzyfËËËeee{ »¶¬¬¬úÙ †hwåìB€Adþü3‹£»iîÜãË–]¤¾mhh64ümÛ¶D¦Çðömµ‘Q¨“SĦWÎ cë$âp¸ÔÔTAÞ½{×ikiii§?×666$‰ZB ÔÔÔNŸ>5êçç'--]]]Ý] LÑ]‘‘‘öD¤´´”ú–B¡ØÚÚnß¾é!ÑÅÈÇÇÒöÄø3Žxyî=ŒºÞvÅÞžYÆ»"Ó;-7uWWWWx€ÉfÏ6yôèMCCK×M^^ãîß/þö­ {+!!¼}û¬‹Ÿýý÷gæÆ ««°²¦¦ÑÛû,µ9.ggg7yòd===FÆábbb¶oßÎÃóïpEDD‚‚‚bcc±·þþþzzzË—/G»<{íÎ;ÆÆÆÂÂÂŠŠŠÔ¹9wáÂ}}ýaÆ………]¾|Y]]]BBbÛ¶mØD"100P^^^NN.00H$vF```LL 6÷”––¦ªªúìÙ³N1àp¸+V$''wW9íáQQQØ4ÖìÙ³7n܈ÒÞÞ.%%…ÕÐõp2™®££#&&feeõâÅ FÎÂ@“‘Q–›ûqãFö æ!½ïŠt:³];Û¸qãQPPÀv Û¯è¢Í„îÚ LÈ<CCSS›†FP\Ü‹®›ÚÚˆúú[OœH£–P(”9sŽÏœy”Baþ󻪪~ØØì33ÛYRò•é•3ÂÀx…BQWW?sæ Š¢!!!vèôÿ}}}=‚ µµµv{þü¹´´4úÏhDII‰ÐÅ‹ikhlläçç_²dɧOŸbbbùöívˆ§§gccã¹sçqsskllž7°ú4`€[¾<ÊÝýÝM!!7¬¬öÒfuÅÅŸ”•7&$d³"’¦¦6SZZÁ¿aEýÌÂHž—••ÅËË‹}?åææ"R\\L»Ý<ÛŸVff¦¬¬,JóÕ{ôèQqqñÊÊJj íííoÞ¼!d29==º'‚ yyy(Švtttzí §§GNMM522ê!Ý”••ÅZ,**¢þzøâìZ9íáÔà›››EDD²³³QõððزeKw‡ëèèDEEQÛŠŽŽty^UÕáÃýïÞ-bJm ~ºÞvE´Ç3K·³uª¡ë¹ë®­NyÞﮌçyðŒ<@/Ìœi´jÕ¥ïß 22¢6y{[^¸ðôÅ‹rꆆÃ,°Ü³çöÔ©£ÄÅ™‰¨¨À¥K¾6\Y¸ðÜï¿{Í™cÂÜúÙ)..ŽD"Ñ^œohhØÝþ’’’ ööö´åzzz´%kÖ¬ILL\¶lÙü•ðóó—””øúúcccÚÅÄÄáããëôSQQ¡¨¨H}+!!A còäÉÂ055Å^wЇVii©¦¦fw•Ó=\XXØÙÙùúõë#G޼}ûv~~~w‡wttQKFÝ]V\Ü‹aÃÄ ØÛhïº"]Ô3ÛCg£êîÔÿtWÁõy€^°·×䣻ž¾¾¢‘‘ê•+Y´…ÁÁÓ(ôÈ–<Í‚ç?æ¯[7yÍš˜Ã‡ï±¢ 6 “ÉñññMÿظq#6ØÃQÞÞÞ»wï¦Þ'èééyõêÕ°°0OOOÚÝðxüÅ‹322Ξ=‹•´¶¶º¹¹æåå++ c×®]´·+6778pÀÑñÿ—”Ñ~õÒBQôÔ©SÓ§Oï¡rº‡{zz^¿~ýÖ­[¦¦¦ÚÚÚÝ®¦¦VXXH=êÕ+:÷‰d$åÊ•,ww3^^ö}M÷­+vB{félÝú~‚îúŸè€qñ' »éòåLuõÀ††fÚ˜˜L•¯_a]HçÎ¥îrƒLfþµ€ý„üjÞöñãÇ<<<555Ô’—/_"ÿLEaºN–ýüùSWWwâĉ÷îÝ{÷îÝÖ­[‘““kooG»Ì::u »0EÑúúz—’’‚-¿Gmˆöº¯×­[çââRQQQXXhaa±fÍjvvv)))%%%‰‰‰VVVmmmbFhªxò䉳³³²²rCC¶µk崇ӾƮg×ÖÖ¦çêzøÑ£GåääþüóÏêêê”” _~ß ¨yÛþ>ÜÿãÇÎSó}ÆÈ§ë[WìáÌÒílX MMMØátûݶ:ÍÛñî ×çX%'§\QqCQQU×MB›¶vð… Oi ÉdÊôéG\]O°4ª„„lUÕM+W^jk#²´¡Þúežççç7eÊÚ …¢©©L-¡»Î@Ø´i“¡¡¡   ¦¦fHHˆ»»;JoUj ÒÒÒ***'Ožôôô”““Cøâlll\¼x±”””ŒŒÌòåË›››;…!,,l``°gÏž–––®1ÓŽ/¨¨¨x{{Óæ]+ïî‹EÑåË—‹ŠŠ„'‘HáááZZZ"""–––؈Kg`yžŸ_Ô¼y0±BF>]ߺbÏg¶kg#‰ÖÖÖ¢¢¢ØÝõ«®mõ*ÏãúîÊxž‡C{3 ‚ØÚî·±ÑÝ»wn×M›6ÅT¦¥Òæä|˜=ûøùó‹G±.ªÌÌ2_ß(uuÙóç—ÈË‹³®¡^Áápñññnnnlh«££#//[·ôVBB5Kæ¬ÖÖCÃm¡¡Î>>ã™UçÀùt€)°?) ¿Ü®Ïôš««ÙÍ›¹tŸ`ëåeñæÍ—ÂÂ*ÚB33u77³mÛn67³ð9ãÇk¥¥’HGÇÃyyY×ЀÅÏÏIHO×ÞNtrbá?E`è€<Ðk®®fMMmйXØÔTMOO±ÓÝ‚ìÜ9‡D¢ìÛw‡¥)(Hܸ±ÚØxÄܹ\»–ÃÒ¶`‘””bµaÃÄ8àçzMAAÂÖV'>žþ¢ížž‰‰¹†îÄÅwìpŽŽÎxùòKc8~ñÚµö6\Ý»÷…U`0!‘(©©¯`00 äy€¾pw7òä]MÍÏ®›\\Æ’Hä;w ;•;;ÛÛ ºF$Òyj8áp¸M›ÃÂ\Ξ}²vmLkkK›€‰rr>446k IDAT´8:önÉ:ºy /¦N%**xãFn×MRR"NN£cc鬃µwï¼ÊÊï§O?f}€È‚ãããW>{V:cÆÑŠŠ:6´@ÿed”ªªÊ¨«ãt €K@žè Þ9sŒ»^‡‡ñò²xùòûw_;•++KùûO9rä{¯qã4?–‘qp8tûvZ Ÿ²²Þ[Zjr: À= Ïô‘››yyy-Ý;[­¬´ÕÔd¯^¥“úùMÔÔ” èÝ"û}&--råÊŠE‹¬W¬¸´mÛMVOÐíí¤ÜÜ ê“è?Èó}dd¤ª¯¯ŸÝu‡óð°¸víe×µWxyñº½xQNwΗxyñ!!3Ž÷¾r%ËÝýTmm{Ú · +ÛÛI0ž˜ˆ—Ó±yóLÿø#mçÎÙ‚‚ìèáaqøð½{÷ŠgÍêüürccUwwóÝ»o98Œ”fO¨s皪ªJûúF;;;uÊgÌö´‹ HZZZCCÛš}“›Ë¦} ëÃüŠ¢çÏ?ݳ綹¹úñãóÎÒ°¶Þ7k–qPÛZ¬¨¨‹ˆ¸Ÿ””?|¸”¿ÿ”Ù³Møø`H«Àõy€~Y°`|AAe§a&NÔ——§{‚ 66:îîæ›7_¯«#°8ÆÿÀápË–ÙÞ¾½þÓ§z‡ðÇß²³uºÓÜÜ^QQ7r¤{škhhÙ¶íæÄ‰ž>- u~ü8ØÕÕ ’<îy _ÌÌÔõõ/_Î캉—ïáaqõj‰D¡{,vaß¶m‰,Ž‘ŽQ£”SRüÇŽU_¸0ò÷ßÀc3ǽ{÷•BA Xžç‘É”èè +«}ÉÉ…Û¶ÍÊÊúmɸ^Ÿ;Ažè¯ùóÇß¼™÷ógK×Mæuu„ÇßÐ=PLLðÈ[· º><ƒ $$„ÏŸ_¼cÇì£GS]\NTV~g P•–Ö ñ³î& Ì£GoììÂöì¹½jÕÄÌÌÈð¸äy€þru5ãáÁÑ]'EUUÆÚZ‡î³10ÖÖ:^^ã6o¾Æ‘åNp8Ü’%6éé›™0áÀ‰i0°8åãÇïjj2<<¬ú^®«#¬ZuyÁ‚H alZ½Ú¾ëmò€û@žè/QQgg“èè º÷uyy{ôè5Ý'áb¶oŸ%$ÄÿÛo˜½Å¨ªÊ\¿¾zëÖáá÷<¯âåÅ/[fûða ””ȬYG·m»I ´s:(Àµ°+¤¥Eú_Õ§OõÎÎÇž=+IHX5¾eÿ+ƒäy¦Y¸ÐêãÇïOž¼ëºÉÙÙXHˆ?1ñŠ_¿ÞÁÌL}õêËÍÍ"©RS“½zuÅÎs²§L9Ï,¬<¯¨¨ÊÙùX{;éÏ?×YX0ôœ{ÀÝ Ï0žžâĉz§N=êº í£ûØ Zx<îøq–;“Xc¯áñ¸Å‹­ÓÓ7­2þY/¯3ïÞ}åtP€Û|ÿNÀãq’’Âý©äÅ‹rWדššrwîlÐЀ•S‚@ž`®åËíž=+ýûïÏ]7yy++û–›[Ñs ŠŠ’ºÅÄ<¿u‹cˬt¥  qú´ÏãÇAx<9¹påÊKóæ=tÈ—¾ÙÁ¿ 7˜Ì××îÏ?󪫺nòò²¼u+¿©©í—•ìÛç"##²n],™LaAŒ}‡ÃáfÍ2úë¯Íë×;œ8‘fjºó÷ß46þúЃÖV¢PŸBvï^ñÊ•—-²>|ØuMƒt“Í™c"%%LwÍä¹sMQIJÊÿe%ÂÂüÙÙ.\xÊ‚û‹ŸŸwÕªIÏŸÿ¶p¡ÕéÓÍÍw…‡§Ô×sr‘g0¨µµ…„øûp`jê+?¿è¥KmwîœÃá˜ì Ï0??¯UttFKKG§Mââ‚3fŒ¹rå×S·‚˜›klØ0eß¾;EEU,“ ¤¤D‚‚œòòv8^¹òÂØxGPPÝLzÖÚÚч>–Å=Èó,áç7áãǺ´´×]7yxXܸ‘ÓÚÚyV—.qq¡óççæ~Œˆ¸Ïì™OHˆåʉ¹¹¡W¯®@ÄÃãôøñ{OœHûù³…Ó¡ ‡Cÿ€D¢,_M&S"#A’zy€%45å&LУ»ÀŠ»»y[)9¹ˆÁªôõ•öì™óûï©÷î35FVÁãq66:ÑÑË<Ø4~¼öáÃ÷--÷nÜ÷òåN‡(ÇøÐoXXòË—Ξ]$%Å„ç¤îy€Uº[3YZZdʃ«Wºãé9ÎÝÝÜß?îãÇïL‘µ †>ìž—·cýz‡üü³f›0áÀ™3Oò冀#ÏKOwêÔã}û\ ‡³8(À Ï°ŠŽŽŽÂùóuÝäå5îùó÷¥¥5Œ×¶¿Ëˆ2K—^tKKJ ûùMxü8øî]KKÍßO51Ù±|yÔ“'ð´\ð8A~èÕÔ4®YãæfææfƆ¨€<À*8nåʉ‰‰¹••álmu••¥â㳯M@€÷ܹÅÕÕ?·o¿ÉÔ0ÙÇÈHõýû„wïÖÖÞ¹qãÖ¼y[p€£ÜÜÜ8Ý)þ‡C~9o‹¢hPP‚˜˜à®]sX@˜rZy™R Ðåâ2öر‡ÇŽ=>?¿ W®<¯©ùÙi“——å“'o?}ê]º†Ãá~ÿÝSIIjÑ¢óÍÍíÌ‹êi]•ììò7^††:‹Š °3&À ϰÜüùã%%…Ïží¼–žƒƒÁ°abññ½Òä»xqÉ÷ï„+¢øs2`„€O{;‰î&EwìH²±Ñ™5ˈÍQ.y€åx}}í¢£3:­ÇË‹wq1»råEr5yy‰¨¨¥™™ïÃÂî2/R8CP¿»ƒîÜ),*ªÚ¾}›CÜò<;,Zd-(ÈwþüÓNåóç[~ýú3=ý]ê=Zå÷ß=Ož|ûœ1À1‚‚|tó<E#"î;960”wŽƒ<ÀÂÂüK–Øœ?ÿWcc+mùˆ2––š}¸3s¦ÑÚµö[·ÞÈÌ,cF˜ËîÝ»q8\XXµ$..ŽîR[! @]]]HHH[[;44´­­­‡ÊËÊÊp8\¢jnn 3fŒ˜˜˜™™Ù¾}ûH$:Ž´á©©©ùøøÔÖÖ2ØDŸccb l&$Ä×ÚJ'ÏKI).-­Ù²e:ûCêA¯z&‚ %%%Ó§O—’’RPP˜={vaa!õÀþô“N gÒy€M–-³Ãáp.tÒóòwÿ~qMMcߪ žæä4Ê×7ª¢¢®ß1 (ŠÆÅÅ©ªªÆÇÇS ««««««333©þ‡ÁÚµkóòònܸQYYyþüù¤¤¤ÀÀ@AÊËËeee»Ö/))ÜÛ¨šššÆŽ›““sàÀÜÜÜ-[¶ÄÆÆ:88Éä®;gffVWWúôéâÅ‹&&& Œ´Ò·Ø5AA¾ÖÖŽ®åü‘6mÚh aì©;½í™UUUãÇ>|ø£GRRRTUUmll^¿~M=¶Ïý„ôÌn¡À.ûöÝ92¤©©¶°­¨¯¿õĉ´>WÛØØ:aBØäÉáj€\]]]]]Ù³°°‡Ã¥¦¦"òîÝ»N[KKK;ý—””ÌÊÊ¢¾MOOWUU¥»gØØØH$j @PSS‹ŒŒì´'‚ ¥¥¥Ô· ÅÖÖvûöíÌŠ¤gŒ|jÆÏ$$dЩðùó2EÅ /_V°'Aâãã¹[o{¦ŸŸŸ³³3…B¡–,\¸ÐÇLJÚ(Sú 7õL”ásÁϰϊ::H—/gÒ ðÎkzåJÊàƒÜ»¼tÉ·®Ž°té"‘οïƒQ\\œÝäÉ“õôôhNº#..~òäÉïßÿÿˆ9[[Û?"2nÜ8AæŒÒÒÒTUU£¢¢¨óG8.66V___ZZúàÁƒ‚ (zúôé‘#GŠ‹‹Oš4éÎ;ØÎ111Û·oçáù÷&"""111´•?{ö¬Sx8nÅŠÉÉÉØ["‘(///''H$éÆ6{ölìÙ!‚´··KIIa5t=œL&‡‡‡ëè舉‰YYY½xÑÇ+8EP¯£ƒD¡üçWàâÅg¦¦#LMGp**ºzÛ3ÓÒÒÖ­[G;YyèÐ!êií¤S?¹s玱±±°°°¢¢"6M¼nݺ¥K—b[ ‚°°p~~>=³LÉ€A!!7ŒCÛÛ‰´…¯_QTÜ™YÖŸš?|¨5ê7ŸH"‘Ü¿YˆÁ1$ …¢®®~æÌECBB :íÐuTàþýûÇppp¯¨¨èº'öÚÉÉéÑ£GØ…SX9‚ ...õõõ‘‘‘‚|ÿþ=22røðá÷îÝ«­­MMMÕÒÒB¤¾¾AÚÚÚNÁdddÈËËÓVN ÿŽš (š““#))‰½>pàÀ¼yó*++‹ŠŠLLL6oÞL76l~ JJJRRR"‰tˆˆ““KLLüòåKrr²’’Ò/¿àÔx^jê+EÅ --íÔ’ššF•ññÙl‹a` ©·=³­­ Çýú{ÛDƒÚhwý¤±±‘ŸŸÉ’%Ÿ>}Љ‰AäÛ·oééé222X7ˆ‰‰100 P(\Ö3Q¦ŽçAž`«êêuõÀóçÿêT>uêáÕ«/÷³òüüZZÁkׯÐN ( æYYY¼¼¼uuu(Šæææ"R\\L»ÝÙ‰”••µk×.CCCžØØX”^žWTTÔ©AÇ£(ÚÑÑ} b‡c®\¹ÒCž÷üùsYYYÚÊÑ¿¿QÕÓÓ«®®Æ^§¦¦Ñ­¹¹YDD$;;EQ-[¶tw¸ŽŽNTTµ­èèèÁ•ç=}Z¢¨¸áûwµäĉ4=½­­­l‹‘Ü¢·=óóçÏ‚Ðfu†™zè'íííoÞ¼!d29==Û“D")((¤¥¥¡(:mÚ´°°0E¹¬g¢0o ¼$üü&„‡ßûù³…¶ÜÇgüíÛuu„îd„‘‘ê… K’’ò÷ïOî_˜G"‘deeq8œ©©)‚ =O577ÇÅÅ!baa±mÛ¶¢¢¢­[·ÑÝYOO¯k!6ÌÀÇLJ½}ÿþ½¡¡!uëÈ‘#‘””TPPÀ†4h`AvW9¦´´TSS{]QQ¡¨¨ˆÝóèààðáú‡ ;;;_¿~½¹¹ùöíÛ‹/îîðªª*#£—=ztwa LBB|‚Ð.­rýúË™3Ç òq.(:zÛ3±ôù'¿ùñãG‡Pû ??II‰£££©©iTT¶•‡‡gîܹ‰‰‰uuu>ôööF göò<»­\9 Ç9óŸÇc8; ò%$d÷³rß÷:yòÑéÓOúY§Éäøøøˆˆê ׯ±î»;EQ//¯ââbì-‡›:u*ÝE%šdŽÿŸ¯ƒ#F¼zõŠúöÍ›7Ø ooï]»vÑÞÃØÜÜ|àÀGGÇ*Ç"RRò‹{Ñÿª˜‹‘¹ÂÇóððÔÔÔPK^¾|‰ H^^µ¤ë¼íÂ… uttîܹóþýûŒŒŒqãÆmذº'6qÖu{ÐÌda¯?®¬¬|ÿþýººº´´4]]]‡¢èÏŸ?uuuíììRRRJJJ ¬¬¬ÚÚÚ:…„Ь^ñäÉgggee円lëºuë\\\*** -,,Ö¬YÓ]lØEîÚÚÚ´“_]?zô¨œœÜŸþY]]’’¢¡¡ñË/¸5o[VV£¨¸áÕ«ÏØÛýûÉl½üùÕ\aßzfAAˆˆHPPPaaa~~þŽ;LLLøøø¨v×Oêëëq8\JJJss3685D"‘ääääåå/^¼Hm…›z&#ç‚qç8 ­8vìÎ-[®ÑT**nÈÈ(íî¨^Ùµ+IUuSjê+¦ÔÆ,Œä~~~S¦L¡-¡P(šššÁÁÁÔ’®ß¦$iÇŽ£GRSS nmmEQ”H$Z[[‹ŠŠ¢½ÉóÈdò‘#G455%$$“’’† †í@ 6mÚdhh(,,l``°gÏž–––®!Ñ(¨¨¨x{{Óæ‹/–’’’‘‘Y¾|ysssw±¡(º|ùrQQQÐÃá$)<<\KKKDDÄÒÒ†éùç< ò¼OŸ~Ð.¡bgrƒÍ1ü2·è[ÏDQ4//ÏÞÞ^\\\OOoýúõa̘1ÔF{è'ÒÒÒ***'Ožôôô”““ÃÊW¬X!$$ÔØøŸ¹¦g¢ç¸@\Ü UÕM>üçÒé)S­Zu‰)õ“É?¿(-­àüüL©)Tnу۷oPß^¿~ÝÈȈƒñ°Â€:uuMÔr**êúûy01·`µ­[·zyyq: bâ¹€ëóœáâ2VCcØÁƒ)´…^^ã’“‹~ühîýx<îØ1o33u/¯3ÅÅŸú_áRTT4þü¼¼¼–––¬¬¬mÛ¶-[¶ŒÓAq3¯ÏKO'..8v¬‡cÚÚÚÊËË/\¸àëëËéXÈóœÁÞ–””O›„ÍkÊË‹¿qã%SšàççŽ^fa¡áâr"7·‚)uAAAÎÎγgÏ–‘‘Yºté’%Küüü87£½㯿ÞYXhòññüê ¡èÅ‹cÇŽ]²dÉ„ 8Ëày€cG™šªÑ®"&&8k–ñåË™h_ŸÑ ÏÙ³‹Æ×rw?•™YÆ”:‡^^Þ={öTVV¶¶¶¾zõ* €———ÓAq3^^>‘êKP¯­XVö­¡¡eìXuN‡¸äyN²°Ð°·×ß·/™:€gj:ÂÀ`xlìs&¶‚¥zÖÖ:>>‘êËórs+ùFŽTât8€K@žà°­[gUݽ[D-ñô´¸u« Ó3ú‰'2R=0pay^^ÞÇQ£”áâ<À,ç8L__qÆ £Ã‡ï“ɬÄÅÅ ‡Ã%&æ1·!,ÕÃ&pŸ=+enåô//™LÉÍýhb2‚Ó±îy€óß¿ÿvõê ì­¸¸àŒcbb˜9u‹áãã9}ÚÇÌL}É’ó/_~`zýôG{;éÝ»jccÈóÓ@žàýØÆFGMM66–åwcК3Ç$1q퇵S§.,¬bgÓ`h"“Qyyq&Vx÷n‘]ØùóO·oŸ•ž¾ÙÕÕ VK‚à”(EEÉ­[gDDÜ/)©ñð°¸v-§µ•åwcÐ26V}ô(ÈØxÄÌ™¿Ãåz€¥„6A•”$™RÛ›7_æÌ9îç=uê¨/~[ºÔ–‡)5ƒAò<ÀÀµp¡•‘‘ê¦Mqnnæ­­wï±911ÁS§|üý§†…ÝÝ´)¾¹¹Í€!âÝ»¯‚hhôwñ<¡}ÏžÛŽŽ­­Ä?ÿ\»{÷ af+Èó;pÀµ¸øÓ½{Åöö#Ù-‰_ÉøÂ+>7nœŠJ·u®D·WCž”¼½-Ož|¤§§´fM̃¢¢œŽè×ôõt31A==É œgHëa’”ÍRS_!âà`HwkrráÉ“""WR’>;>>›ÓA1ÓîÝ»q8\XXµ$..GOAA‡++ûÏRÌ]KØ£¬¬ŒöÖ¿®Ÿ‚éM R¹¹ÊÊR.Î;yòQyyíáÃl¸e§W A’’’éÓ§KII)((Ìž=»°ðßëbq8œ¶¶v§EyœœúÙ éN˜šššOmmmßêonn 3fŒ˜˜˜™™Ù¾}ûH$Ý0úÜbÿûjj€<0¸y{[¦¦¾ª©ùio¯¿t©Í¶m‰ïßãtPÌ¢h\\œªªj||<µÐÙÙ¹ººººº:33Aêô¶þòòrYYYfFLÝOÑÿ¦%%%ƒƒƒû'••}kjj›<ù?+ª”—×9ò`Æ)jjœ95=t°ªªªñãÇ>üÑ£G)))ªªª666¯_¿¦[QQA›ùÕ××ÿõ×_½ŠÁ¾‘™™Y]]ýéÓ§‹/666š˜˜444ô¶­¦¦¦±cÇæää8p 77wË–-±±±d2™‰-r¸¯¢0˜µµõõ·;–Š¢hGiÖ¬£¶¶û[9W·°ïTFö,,,Äáp©©©‚¼{÷®ÓÖÒÒÒNõ RZZÚsIÏ50 mÍt?ëšf‚ ñññ EÑ  kŠŠ**êh ==O[[ïëè õ§f?]o;˜ŸŸŸ³³3…B¡–,\¸ÐÇLJڨ££ãÖ­[©[£¢¢œœœzî„]uj—îá )Š­­íöíÛo`ccC"ýûÓ&jjj‘‘‘,j±oü}¡{Þa<0¸ 𺸌͢PP>>ž¨¨¥íí$_ߨûè[ÆÅÅÅÙÙÙMž|%&&Hû”‹ÔÔWOž¼Ý»w.èmKKK[·níâ¡C‡6nÜH}ëêꚀþ3u{ýúuêÖîÎrÝóàÁ---))©ýû÷Ó ‡Ã­X±"99{{çÎcccaaaEEElJšn÷F$&&fûöí<<ÿþ´EDDcbb°–––¦ªªúìÙ³ž[ìúA{xTTöC›={6õÇÕÞÞ.%%…ÕЫ_¨^cIæ lTRòUIÉÿ¯¿þ? Q\üI]=pÿþ;œª; ŽçQ(uuõ3gΠ(b``Ði‡ÞŽç!âââR__‰ È÷ïßikHOO—‘‘!‰(ŠÆÄÄP(l‡)S¦”””deeiiiíØ±EÑÌ›7¯²²²¨¨ÈÄÄdóæÍrrr‰‰‰_¾|INNVRRÂjîîSt ÞÛÛÛÞÞþýû÷EEE†††X+‚xzz666ž;wA77·ÆÆÆ3gÎ RWWG­!<<ÜÀÀ ¨¨¨¸¸ØÂÂ" €‘³€pz<¯¬¬FIÉùò(jIKKûر;—.½ÐÿÊùt½í`mmmx<þëׯØÛ&ÔFß¾}«  ŸŸ¢hCCƒ°°p]]µvw–{è–Ø3fÌhll¼qãvêQz]=''GRREÑÆÆF~~þ%K–|úô)&&Aoß¾ÑíÞõõõ‚ÔÖÖvúàòòòXNNN="=´ˆÒû =»´ýg–MJJRRRÂBbüªgtÏ;äyn0sæQ?¿¿2¯]ËQRòOJÊç`HÝa0ÏËÊÊâååžÕrss)..¦Ý¡yÞãÇQíèèÀÊik ‘H iii(ŠN›6-,,ŒÚDQQ5r---Eõôôª««±ÂÔÔT###¨¨þÑÑÑXÍÝ} Ú¦;::xxxþþûoìmbb"Ö ‚ yyyÔ€i_Ó¯««›˜˜ˆûúõkêëžq<Ï[¾räÈÛ·ocsÇtïîªàú<7pv6¸v-‡Z²k×--¹åË£[9XßÉäøøøˆˆêÔØÆ±ÿÔ{8JUU•vŠ7oÞðòòª¨¨PKzþ¦tuu½yófBB‚µµµ²²2µ@¤¤¤ûÆÅF;°Ñ‚úúú¬¬,555Ú-_½zÅø§——çáá)//ÇÞ¾ÿ~øðá¿ú ýKII©¢¢{]PP°wï^Æå”¤¤"‘4ož)µ$4ô¦œœØš5öì   ÇÛÛÛŸ={–¶°ëU}ÖÖÖMMMÏž=KMM={6µ¼‡³Üs·Dä—KŠ (zêÔ©éÓ§#ÒÚÚêææ˜——wòäIê>t»···÷®]»hï®mnn>pà€££#ö¶»ì“¶E„ÞoDw‡{zz^¿~ýÖ­[¦¦¦ÔÿOü…ê£_À °uëu+«½´7VW7‡º¹ìçÝ‹ÌÅȼíãÇyxxjjj¨%/_¾Dþ™»Ät·Ý¾}»¦¦æíÛ·ËËË>|hll¼dÉêVä¿s¸Ô 2êL‰D’“““——¿xñ"m'N,--ÍÎÎÖÖÖÆn0\·n‹‹ ¶ˆ†……Åš5kŽ=*''÷çŸVWW§¤¤hhh ÒçèÔ´———½½}yyyqq±ÖJ×€»¢hhhèèÑ£‹‹‹‹‹‹­¬¬|}}9 Gçmmm÷+)ùS§hïß/VTÜ@½À´ÿ~ùéúÖÁ DDD‚‚‚ óóówìØabbÂÇÇGm;G«V­Ò×ן8qb§rÏr§¾A· 4«œ+V¬jll¤mâܹs#FŒ••]»vmkk+Š¢‹/–’’’‘‘Y¾|yss3‰D ×ÒÒ±´´ÄÆ3zøšþñãÇ‚ dddýýý±VÌóÚÚÚ”””$$$<==ë뺾ƒy^ff™¢â†3Ž`o››ÛÇŽÝI{uiÿýòÓõ­ƒ¡(š——goo/..®§§·~ýz0fÌj£Ø9zòä ‚ 'NœèTÎàYîÔ7ºËó¨TTT¼½½isÖˆˆiii•“'OzzzÊÉÉaåº7†@ lÚ´ÉÐÐPXXØÀÀ`Ïž=---]?~Ï-výè.ÏCQtùò墢¢¡‡ÃéþBÑ?—4èžw\§è`ðš>ýˆºú°?þ˜O[øäÉ[ŸÈM›ׯwàT`´ÜÝÝæßÞŠŠŠØØXìmYYY×'pïææÆþ¦§O?RPPuîÜb'§Q‚:tïܹô¿þÚ*''Ƭ&8øé²NÝ›ûÐ=ïp}€{x{[&'64´ÐN˜ æzð`ÊÍ›yœ làkkk+//¿pႯ¯/§cáfYYïóó+‡ 33u[[33uCCeaa~NÇúÆóÜITT`Ö,ãK—2™ç9:Ž:tÈÝßÿª€oHÈ öŒê¨¿üÏŸ­FFª“'tq91eŠáo¿Íät\‚ D"9?ÿcN·ì앵µM’’Â66:«WÛ››«9žÏÁM Ïp­ Æ_¹’•›ûÑÔtDÏ{ººšQ(h@@|cckX˜+›¯ÕÜ'"âAjêß’’Bþþnn' •Oœ˜ÏÃñü©½”]ž]žý!/ïcss»’’äøñZNffêZZrŒ °äy®5fŒÊèÑ*11™¿Ìóqw7—‘õõ½XSÓxöì"øóú())ÿðá{üü<›7Oóó‹ž4Iÿĉ|||üøÇÈHÕÜ\ÃÖVÇÈHúðy€ËmÞ|íùó÷Ož3~ƒEnîÇùóÏêê*\º´L\\ˆ¥á®A$’#Þ¾ý¢®.WUõ}ïÞyóç[²¢!E‹‹?egÈÉù7É‚žAžàroÞ|±·OJZgf¦Þ«£æÏŒ‰YΆUmÁ`G&SÜÜN>þ^RRˆBAÿøcÁäÉ#™X?íM²ùùëêØM²Øœ,Ü$ ºy€ûMŸ~DSSîØ1ï^õí[“OdUÕèè¥cÇö"GC …‚zxœÎÈ(áååUU•¾xq©––\ÿ«íz“ìðáR––šææffêÚÚòpc8ø%ÈóÜ/.îÅ–-×óówJJ2t7UKKÇŠÑ™™e§Nù88°(<0Ø9;ÍÉ©Àá•+'9õçÙµÝÝ$kf¦7É‚>€<ÀýÚÚˆÆÆ;6nœâëk×ÛcÉdJHÈØØ¬Ý»ç.Zô‹%—Á4yrøë×_„„ø¢¢–ÙØèô¡†ïß ™™eto’µ°Ð”“czÌ`è€<0$„„Üxú´$=}sw¢èþýÉ'N<Ú¸qÊÆSáóý;aòäðššFyyñ´´ iiÆít“,??ï˜1*ØM²ÆÆ#DEX6R Ï %%_'L8pãÆKK;ÕpíZNpð5[[Ýãǽa­Š!ŽBA/\xºcG…B±°Ð¸ysí/éù&ÙQ£”…„à&YÀ|熊Y³Ž)+K<¹ Ï5U-]zQHˆïÔ)ƒáLŒ "99‚‚JJ¾"2cÕ*ûîöìz“¬””ˆµµ6Ü$ Øò<ÀPqíZN@@|nîYYÑ>Wòý;Á×7*7·bË–~~v0‡ËMˆDraae÷V——×îÛwçîÝ"ì´=êíâ2¶Ó>=Ü$kc£7R6ƒ<0T´µMLv¬];yåʉý©‡D¢=šzôèkk£G½† ƒËä¹ÁëןCBn|ùÒ˜•Ò5}¯®nøã´˜˜çÂÂü?¶ŠˆðÇÄøYXh`[þlÉÎþ€Ý$ûúõg2ÕÖ–77W·±Ñ17W———`û§àÿ Ï !Û·ß|øðuFÆÖþÃåå}\·.¶¡¡eÇŽÙ]uÀ ÒÒÒñÛo7âãsðx™LIHXimýïm³UU?NœH‹‹Ëjo'm††ÃããW’É”®7Éb‰Ý˜1ªp“, Ï !eeßììÂâãWZ[k÷¿6"‘|ö쓃SŒŒTÃÃÝttú_'`³ôôwkÖ\þñ£û2ÄãË—"R\üéС{ii¯ÕÕeÕÕ‡=zô†BA-,4”•¥^¾¬Àn’µ°Ð07W77×€›dÁÀy`h™3縼¼øéÓ ™Ua~~å¦Mq?~_³Æ~åʉ‚‚|̪°Ôׯ?ÒÒ^w*Çãq—.-‹ŽÎ|øðµ¡¡’¾¾Ò;…mmDEQ´°ÐÄ.†›dÁÀy`hILÌõ÷¿úòe(¯«#ÉçÎýuôèqq¡ß~›5k–³j¬€¢hllÖÎImmD2™Òi+ãåÅKH‹Š TUý ‘(‚Èɉ/Zd=i’Ü$ ÈóCKGÉÔtçŠV¯îv9Œ¾©«#„…%ÇŽ05UÛºuõ"}0 |øPëï5'§EéöŸŸ—H$óðàݲe†Ÿßx˜,Œ Ï 9;w&Ý»Wœ‘Šoî7oª¸ûàÁß“&éO5J™éM€¾!“)§O?¿G¡P°QºðòòH”I“ôv®>Œ=Àtç†œŠŠ:+«}W®øÙÙ鲨‰ÜÜ$gd”98¬];ÙÔt‹ z÷îë† ±EEŸüÖä;sf¡ƒƒ«€¥ Ï E®®'$$„Ï[ÌÒVRS_;ö07·ÂÚZ{ñbƒN—v={–©PÌ” IDAT¥A(äùóïÕR(½øÆÃãq¹¹;äåÅY'Aßt&Ož¬¡Ñë«A Ï E·nå¯Y““³ kØff–?þð¯¿JäåÅ}|Æ{{[RoÇi°/$!1Y@@ ‡ãéÕ||¼¿ÿî9gŽ ‹ã8è{ƒN||¼››[o‚›†C‘“ÓhIIḸl6´5~¼ÖÕ«+òòB—.µ¹|ù¹±q¨»û©ÔÔWØ¿Ùñññ(`2¹åÇ[ÕÕÇ^¾Ünc£ÐÚúÎÖV‡—÷×9‘HÒÐàòËò ï "}>Ëç†">>77ó˜˜ç]—Õ`yy‰Õ«í32¶>ìÑÔÔ¶pá9GÇn¥ ˜KIIjÞ<õææ¼—/+H$2#‡DE=cuT°äy€!jÁ‚ñÕÕ ééïØÙ¨  Ÿ»»ùÝ»þ)) †ãp¼ìl}ˆ+/o”‘qiiéèº Çñðà;]= ·Ù.bCÔˆ2VVÚ—/gNš¤ÏþÖÇŒQ‰ˆð8rÄ“ýMY_¿¶¢(‡ûÿKp8œ¤¤´´èðá’ rrârrâÆ‰ÉË‹ËÊŠÉË‹‹‰ r6`úò<Àе`ÁøU«.}ýúSAåwcÎ"“)d2ÚÔô4))AAAbØ0Q1x²àzÐÅC—£ã(±ØØ,NXއÿ?öî<®¦üÿø¹ÝJ)Ò"%$¥´*Z©ÉX"ŠŠR–ÂŒ%®Ä‘&óó f•Dddš,ƒ¤”dïJ–(¥Mu—óûãÎܹӦåÖiy=óǽ§óù|^·NzÏçœÏ9VVJÕÕ&O­««¢¨ØEô8Ê ÷qv69y2µÓVct&ÔyЫ¹»›•_¹ò„ê M¢ PWWwww/..n·UUU C___ZZÚÄÄdçÎl6»Þ>QQQ´ÆÄÆÆ¶çîkMu›••Õ¾Ï$4,§¨¨‚ê]ÅöíÛi4Ú®]»ø[šÿ æääL:UNNNIIiæÌ™÷ïßç7¤Ñh#Gެw—)S¦Ðh´çÏŸ·9aSÍ[ríû{þüy;ïDØþš‡:z59kkÍððªƒ4'%%¥   ???44´¼¼ÜÈȨ¬¬¬©_¼x!//ß|‡cÇŽMOOÎÈÈð÷÷ŒŒ´µµåpþsÇ‚‚‚‚‚‚””‚ þaaaáçç׿ÓT·::?dŒË%SRž¯_3fÌæóçïQ¦‹ I2**JMM-::š¿±™Ÿà›7oÌÍÍUTT®\¹réÒ%555++«ÇóÛ¾|ùR°ò+--ý믿Z›Jˆ9O«~ÅÉÊʶçw¡3P}ç?Š]º”­¢²æÍ›?4Ñ‚{ÕÁd2ùo¹\®µµu@@@Sû3™Ì/þÛ¾nÝ:+++6›ÍßRYY©®®~ôèÑ6÷ÙÔmSx•J£_ºÿõÖ­çtt6)+¯VU]«¢²æèÑëŒ-9öH’¼ÿ>FKJJ"âÙ³gõ¾Úð'èíííààÀårù[<<<ÜÝÝùƒÚÛÛoܸ‘ÿÕ°°°)S¦Ô;È¿¨Þ¸6oùAÞÚ_1ájáoA ^ a>z»É“udNê«1h4šÏÅ‹yo %%%•••ygÖÆO„’’o‹Å`0 ‹Å""""" €Nÿ÷±RRR #""‚w)99YMMíæÍÆo,x¦‰F£;vL[[{РA»ví 6lXÿþý7oÞÜL€F­\¹rÑ¢E¼×•••’’’÷îÝã?jÔ(…•+WÖÖÖ¶ªÛf¤¥½Ø¼ù¬ž^€½}ȱc7>~¬"‚Íæ`‰_TTÔ„ &Ož¬¥¥%8¥×”äää•+W žˆÜ»w¯¯¯/ÿ­““SLL ùÏ©ÛØØØ9sæð¿ZVV¶páByyù!C†¬[·®¦¦† ©­­=`À€Ý»w r‚ þøã 99¹~ø·¥Íy½_±†Gš`ó°°0Þ‡9s&ÿcÖÖÖÊÉÉñzhØœÃáìÙ³GSSSZZÚÂÂâÎ;_ü®¶KjC€f÷îß êêØ_ÞU¨ˆÖÏç‘$™žž.++K’dyy¹¸¸¸——W~~~DDAEEEõ¦‚ƒƒgÏžýúõëììl##£ 6”––Q\\\o [·n)**òšO™2åÊ•+•••¼/ÕëSð-A...ååå¿þú+AÎÎÎååå‡&¢¤¤¤ÑöC’äõë×Èb±H’ŒˆˆÐÑÑár¹¼}ìììrrrRSS544¶nÝÚ|·MáÏçåæíÝ{ÉÌl‡²òê¡C×)+¯®÷ßСk1ŸG’$—Ë6lØáÇI’Ü´i“ŽŽN½êýkjjDDD yo+ð}úô©’’Ò½{÷H’,++“””,))áännn666¹¹¹ÙÙÙººº¼Ÿ5AsæÌ)--=zô(A>|h8Ÿ7mÚ´òòò3gÎð¼VäÍüŠ‘i‚Íy—$’ÿœÝæMdÆÇÇ<˜w$7l¢  ÷îÝ»‹/<¸%ÅXK~^Âýó77³ýûÿLN~lo?†ê,­ !!qÿþ}UUÕ¾}ûªªªñéÓ§zû„††^½zUIIIUU588˜Á`4u9‘ˆˆÿÒ¥ààà1cZú­`0ÒÒÒîîî‹/Þ°aƒ´´´§§§··wiiéÀàϸÔcaa!&&ö×_Mš4éäÉ“ ,àO íÝ»wäÈ‘AmÚ´iË–--ï–¯ªŠ-)9fêÔ}YY¯EDhID]]#æ‘™ù2"B¬…ßîHTTî‹û¤¥¥½yóföìÙA8::=|øPWW·©ý?|øÀår¥¤¤xo¥¥¥ù_"ÿ™À£Óé³gÏŽ‰‰100HHH°°°8p ïK,+**êþýûÇ'"00pýúõ[¶l!bÅŠ²²²K–,ùøñcá׭['--=sæL‚ JKK›ºz¯ yÃ#7ëÌkÎ_ÿ1}úôE‹ݽ{×ÄÄäÔ©S¢¢¢6¯®®Þ½{÷¬Y³‚PVVþá‡<<<¾£ÍPçƒË~õ•VxxJ·¨ó˜Læˆ#‚ÏÉÉY²dIee¥¡¡a£;¿|ùRYY™ÿ¶ÿþ²²²JJJYYY“'OÜ3++ËØØ˜÷ZKK«åyxÎÅÄÄê½n*@SýÐétGGǸ¸8==½?ÿü“7)ÈÃ+òxÁòóó[Õ-O~~iTTnÿþ_Ý»÷š þ.òš‘}î\O^Š!.>ø‹ûDEE±ÙlÁš)::º™:OII©OŸ>L&“w4òj»ÒÒÒîæää´xñâ   z'mß¿ÏápxÇ6A¼Ÿ5A¼I/ÁãªÞ""ŸpoçAÎÿ#š>Òê5—””tppˆ=zô… îÝ»×Tóºº:þ==½¦bê<‚ ˆ Ì=={ýúƒšÚ@ª³4‡$ÉC‡M:• ˆÏŸ?;;;ÇÄÄLŸ>½¶¶644´áþòòòW¯^ÕÐÐ ¢¬¬¬°° 77·ÀÀÀ¯¾úŠõRUUUppðªU«xo›ùƒÚZhŠ“““››ÛèÑ£---‡ ÂßÎd2yS/999¼¿è­ê– ˆ!Cä-5o^Ptôóç³®]{›`âr/øf,^lݪOÚ½|ñ^':::$$dÉ’%¼-[¶l‰ŽŽ lª­ˆˆˆÍ‘#G:Äߨðª>KKËŠŠŠ›7o&%% VóŠŠŠt:ýÅ‹£G&"77WEE…ßsk?N›rÁ_1¢é#­as—U«VóÿϤasGGÇû÷ïëëëóvxôèQó­p©)AĤIڃ˞<ÙWc¾}ûöúõë³fÍÊËËã]ñ][[[WW'..þùógÞé­ŠŠ¿ïúÆ»êˆ GGGÿW¯^eggÛÛÛ8p€ ˆ€€€¢¢"›ÄÄD&“yöìÙqãÆ©¨¨,[¶Lèá ÐÞÉÀÀÀ n_µjÕóçÏÓÓÓ7nÜ8þüÖvËG’µNN&ááK²³·ïÚ夯¯F£ÑDEé_nÙûܸq£¨¨ÈÍÍ­ß?\]]™Lfó·9 ÷óóËÎÎÎÊÊÚ¶mÛÑ£Gë•D¼S·ÞÞÞ¦¦¦ üíbbbsçÎ]¹re^^ÞÇ¿ÿþ{77·fÆâäjÕAÞԯњ#ÍÎή´´tË–-^^^ü ›ûøø0ŒøøøÂÂÂÄÄÄ€€€f>…´áš>€iïÞD=½Í¹ƒhÙ: >UUU77·÷ïßó¿2`ÀUUÕƒº¸¸(((°X,KKË~ýúñv(//÷ôô”““8pàÒ¥K«ªªxÛ+++×®]«««+))©££³cÇŽêêj²‰»<4¿ƒ {£¯› ÐÔX>>>}ûö-//Üç×_:t¨¼¼üwß}÷ùóçæ»mJ£÷UÉÏÿxôèõ¯¾ æÝQë0ø¼½½íìì·p¹Ü#Føùùñ·4úÌÌÌ´±±‘‘‘ÑÒÒZµjUee¥¾¾>PÞQqíÚ5‚ 8PoûÇ,X0pà@eeå5kÖð~Ö «zySa òæÅi‚ÍëuµtéÒ~ýúñ05ÚœÍfïÙ³GCCCJJÊÌÌ,55µ%ÅXKþ­h­Þ'èµÞ¿/75  :@{¡Îøi[[ð𪃴ê<€ú,0OIÉ}ñ¢˜ê í‚uõY[k:0""% Àê,ÐQjjXeïß—¿{WVTTQPPöþý§·oËüü¾±´Iu:á@PFsuèÐU?¿©ûïdrrrYYY‡ÑÉ kÞ¾ýld$ÛèSPSR>JJÒÕÕ%ee…öÝfÔÖr?|¨­¨`úÄ~þü¬¬Ý¬Y?”–”TUW×òö¡Ñ’$yϺ1¢·ÜR§ç{О‡Ј«ŒŒ¶†„Ìst4î¸Q¾ø,ù °˜Ã©øô)‰ÍþPïk¢¢ròò.4š8‡SUW÷¦®.¿®î›]ÿv*B‹B£KI™ôëgB£Ñ ‚KDó,)+Ëfdlé 0]J=öz2<@h ²·× OéÐ:¯§þŸv``ü/¿\SRòøö[›Õ«íê͉ž?ŸåãsœN—ê×O› Fs8Üþý%-,4ÌÍ5ÌÌFŒ¥,""ääõë¾¾Ñ))ÏiÍNnˆ‰Ñ­­{Ë’{ê±õ`> q7o2^½ê7j”ÕYº™ìì7öö!AÐé4ee¹¹––ÿ©Ÿvì¸ðË/WyçIyDDh"""l6G\\TWWÅÌLÃÚZÓÄdXŸ>B;½{áBÖºuÑ55,‹Óè""´Ý»]]Ç kDÊ¡ÎhI’VV?Lš¤8‹ê,Ý¥å/^)"BãrI›Ñ»w;)+Ëò¾ÊbqfÌØÿèÑ[6»‘’‹N¡Ñ6›Û¯ŸÄÅ‹kFŽTVªââŠÏ\¼xŸ—ªá¢¢"£G«˜˜ 35fi9RNNJXCP‚¾uëVª3tE4­¶–}ìØE‹¬ÄÄèTÇéf**jÒÒr¹Ü¿'Þ¼ùxâÄ-II }}U.bc£u‡Åâ4œnà-‰ ÓéS§ê/X`&ÄTRR3fèé©Þ¸Á¬«c×+õää¤vïvf³¹))ÏOœH9|øZrò“çÏß×Ö² êÛW\ˆI:æóšTZZed´u÷ng''ª³t3¯^}07ª÷'†F£éé©îÛ7OKK™ ˆÛ·sp8ü¢ÓE èwㆿŒLŸŽˆW^^³}ûù“'Sét›Í%BTTdÊ”1‡/äíP]]—‘ñ2-íEZZ^ZÚ‹ÚZ¶¢¢Œ©ép++M“aššŠXÇÝê<€æ,_žŸ_zþüJªƒt?S¦„~üöÆœ´´¼´´¼OŸª ’60P35fe¥©«;Dè G„u@snßÎ=ûçääõÚÚÊTgéf~ýõ¯ÀÀxÞlY="""jjöîkf6bѢФ¤GﻉŠÒGR _¢¤Ô¿£CVTÔüðCÂñã)$I&%­ÓÑQi~‡ûüyQzz^ZÚ‹[·ž”õë'ah8ÔÔt˜©éðqㆋ‹ãFÐ… Îø‚‰ƒ-,F9R¤›)*ª02ÚÒèr&"BlÛ6ËË˪¼üóäÉ{ ?ñÖdˆˆÐ¤¥û(*ö/((Û°áËN˜-KK{”÷-޺Ǿzõ!-íEzz^ZZ^NNa߾⺺*¦¦ÃMM‡7¢ƒN:´ê<€/8räzHHbfæ6II\‰ß:..¿Ü¸Áärÿ3¥'&F—““:qb±žž*oË“'ï¾ù槺:6I’4íÀù3fž<™ºm[¼šÚÀ½{çªQ¿uÞ¿/ç]Ï—žž÷àA¾ˆMGç糧# ÀÒ] ê<€/(/ÿlh¸5(ÈqÞ¼qTgéfbcï®^}RpJN;v诿z ØOpÏãÇomÜx†N§YXŒ6ö®­­Î?Ì<¸»®Ïh!,Ý…ÖBÐ 3fìWQ‘=tÈê =DTÔµk£÷ïw={l›;¹uëù† § ÊÖ¬±óñùªµÏ´è¦.Ý•—ïÇ{–îê<€V8s殯oÔÝ»[ ’¦:K±uë¹ãÇoÅÆ®06Vos'55¬’ÿ÷¿ä‘#wïvîÏÏ".—d2ßó–îÞ¾ûöm)–îê<€V¨«c»mñâ +WN¦:KÁå’^^ÇîÞÍKHX­®.ßž®òòŠ7lˆ½u‹éê:~óæÒÒ½tet½¥»¢¢"£G«`énï„: uvì¸/5õû^r~°TVÖ:8ìçp¸çϯjçmk¸\òĉ”]».öïßwÇG[[a…즊Š*îÜÉmt鮹¹F½§ÏAσ: u^½ú`aº5„½|Y2uêOãÇ?zÔ³ý7@~ÿ¾<00þìÙL;;ÝíÛgáy²<••µ÷î½â-ݽÿM]Kw{<Ôy­æævXD„¾”ê =ÊíÛ¹..¿,^lýý÷Ó…Òavöÿ؇ߺ»[lØð””„Pºí>®{ð Ÿwn755·¢¢Kw{$Ôy­öǽ¼Ž¥¤lˆp%%=òò:öý÷Ó½½' ¥CÞmö¶n—õ÷Ÿêäd"”n{Á¥»7o2KK«°t·Ç@Ðj\.if¶cÆ ÃM›¦Q¥§9q"Åß?¶wZ©§´´ê‡.FF¦ZXŒÜ¹s¶††‚°zîjbbbæÎÛ¾>DÄÄÅÅ‹‹«ˆ‹«ˆˆH””œb±Þ 't<''§˜˜þ[,´h5š«ëø£G¯¯[g;V—»»y^^±¯o”¢bKË‘BéSNNj÷nçÙ³ÇnÜkc³{éÒ‰=û'øg¾=H’((¨VR2kÿ“Ð9BBBêmÁ|@[U˜˜lÛ·ÏÅÑјê,= I’ß}ùçŸÎž]©­­,ÄžÙlnXØÍ={.  µ}»ãäÉ£…ØyWÀ›ÏÃ_ö^ËÙÙ™øo¡›´…‚‚ô”)zÇߢ:HD£ÑöísÑÓS]¸ð×¢¢ !ö,**²x±õ_ù›˜ óðøÕÃã×7o> ±€®u@yxX¤§ç=yòŽê =˜ýÈ‘…¢ ©ªªn犊2û÷»8±„É|?a®~¸(ô!ºÔymdf6BKKùĉªƒôL²²’‘‘ÞïßZº4ŒÍæ ½í«WýV­²ýí·¿¬¬~ˆ‹ËÀéNèyPç´Ýüùf±±w+*j¨Ò3©ª_š––ççwº#ú—]µÊ6==`êTýU«NÚÛ‡¤¥½èˆ¨‚: íæÌ1!I2..ƒê =Ö˜1Cö8}:-$är !''µ}û¬K—|¥¤$fÍúÙÛûøÛ·¥4@'CÐv22}fÍ2Æ©Û5i’vp°Ó?^ŽŽNë¸QtuUââ¾ [tÿþkë]?þ˜X[Ëî¸áº‚íÛ·Óh´]»vñ·DEEÑ“••EDNNÎÔ©Såää”””fΜyÿþ}^«åË—2¤ªªŠßOnn®¸¸xddd›³Ñh´‘#GÖ;“>eÊöüùóötÛhóªª*ƒ¡¯¯/--mbb²sçN6»‘Ÿ¾à÷D]]ÝÝݽ¸¸¸…C?þ¼i[¨óÚÅÓÓòÉ“w8ßס\\ƯYc·~}̵kO;t [[k×ü|}í¾öÕWÁ.duèp"I2**JMM-::š¿ÑÁÁ¡      %%… ˆ‚èèè¼yóÆÜÜ\EEåÊ•+—.]RSS³²²züø1AAAA,k÷îÝü~6lØ`ffæêêÚž„/_¾ä—’A”––þõ×_­íäÅ‹òòòÍïSQQ1vìØôôôàààŒŒ ÿÈÈH[[[‡Ópç”””‚‚‚üüüÐÐÐòòr##£²²²–$‘••õóókm~!  }¦MÛ·|ù ªSôp\.wõê“#Gú=xß Ã”}÷]ÄàÁkœœ}ú¼|ù’$É[·n‰ŠŠ>xð =„ {{û7ò·„……M™2… &“Ùò~ê}F›¯[·ÎÊÊŠÍfó·TVVª««=z´a*Áæ\.×ÚÚ:  åyÚ£á¥!''''''Á-˜Ïh/ww‹„„û%%•TéÉh4Zp°“žžª§ço……Ÿ:z8%¥þû÷»EGû””TÚÛ‡ô¼{¯DEEM˜0aòäÉZZZ‚SzMINN^¹r¥àyý{÷úúúò^»¸¸XXX¬_¿ž$I__ß•+Wêêêò¾Äb± †¢¢¢‚‚ƒÁ`±XA$$$JJJ*++óNóNJ&''«©©Ý¼y“øçù]ä?§ncccç̙ý¬¬láÂ…òòòC† Y·n]MM A4-22R[[{À€¼ùÅñãÇ¡¤¤ÄoøÇhhhÈÉÉýðü-tú¿Ïð•’’b0 S ¢Ñh>>>/^lê“ 6 ãðޝü IDAT}÷fΜÉÿ¾ÕÖÖÊÉÉñzhØœÃáìÙ³GSSSZZÚÂÂâÎ;_ü15¢ã O€^¢¦†5zô¦Ÿþ“ê =_ii•¹yÐĉ»JK«:gD‹sìØÑ£7œ`£Í555ÃÂÂøc?~¼ uÎÛÁ‚æïÞ•]»öŒê =Ÿ’RÿèèeïÞ•yzþÚiKb%%ÅW¬°¹qÃßÜ\cùòðéÓÿ/#ãeç Ý¢¢¢Øl¶¼¼}DgÌØïí}¼;>—ÃáDGG‡„„ðϽúúúFGG“M?DDDÄÆÆæÈ‘#‚–†¼ëÏêÝûƒ7+Æ+ KKKSSS?þìììÌ`0233<(¸s½úÌÒÒ²¢¢âæÍ›III3gÎäoWTT¤Óé/^ü½È=77WEE…µùßðÖ$nnn‚«k«ªª‚ƒƒíííMÅG’ä¡C‡¦NÚÔ'mª¹‹‹KllìùóçGŽÙTsuuuÁÇ=jþ£5 u€pxxX$'?~ýúÕAz}}ÕcÇ]½útãÆ3<ô˜1CNŸ^åÃ{kÖ¬¼¼<þ¢Š†Ÿ´©íììJKK·lÙâååÕÌ7ÊÇLJÁ`ÄÇÇ&&&4ó)šÔü‰^h!6›cb²mçΪƒô"—.eâü;%£³Xœðð=½Í£Go:zô:‹EýÕ™-¹>ÏÛÛÛÎÎNp —Ë1b„ŸŸK£·ðÈÌÌ´±±‘‘‘ÑÒÒZµjUee¥¾¾¾à¶*//÷ôô”““8pàÒ¥K«ªªH’ 0`€ªªêÁƒ]\\šºʵkׂ8pà@½í?~\°`ÁÀ•••׬Yóùógò¿×Ïñ^³X,KKË~ýúÕk^ïueeåÚµkuuu%%%uttvìØQ]]Ýð –Oªªªnnnïß¿oæ“ 6¯×ÕÒ¥KûõëWYYÙLs6›½gÏ )))333Þ!Ù¬†×çÑH<¶@HöíûãØ±[ÄÅE©ÎÒ[=z}Ë–s»w;ÏŸoFI€ªªÚ_~¹úóÏɪªŒ)Ó§|¹M‡‰‰‰™;w.þ²÷ZÎÎÎAÄÄÄð·à¼-€Ð¸¹™•—¾téÕAz‘%K&¬^mçï’RRk×Ú''¯9RÑÛûøÂ…¿1™ï)IÐê<¡QP¶·sü8Vctªõë§,_>éÛo#Ο§ì1eÇúí7¯¸¸oKJ*&MÚ½fÍ©üüRªÂð¡Î&ww‹ÔÔÜ'O ¨Ò»øûO]¼Øú»ï"®\yBaŒñãG$$¬>yÒûñãwææ;V®ŒÄº ê<a²°Ð5J)""…ê ½N@À ''“%KÂRSs©Mbe¥™˜è{àÀ‚ŒŒWVV?¬_S\ÜøzR€Ž†:@ÈÜÜÌNŸN¯¨èN÷ÚèxÀµ³Óñðø5;û åa¦O7¸vÍ/(hvRÒcsó nwûèP癳³ —Kž;—Iu^‡NÙ¿ßmüø®®‡sr ©ŽCˆ‰ÑçÏ7KIÙ¸zµmxxŠ™ÙŽ’kjXTç‚^u€ÉÈôup0 Ãj ˆ‰Ñr1BaÁ‚£]äÚ¸¾}ÅW¬°IMýÞÕuü?^¶°Øq›Íî¼Çx@o†:@ø¼¼,Ÿ~|ñ… «¤¥û¸¸ü2}úÿ]»öTˆýÓ ·:}útýƒOGè55,#£­ß~k³|ù$ª³ô^ååŸUTÔÄÅ}«¨(CuœF|íÔ©T:]ÄÙÙtÅŠIJJÝ&ç : ê<€N²fÍ©‡ß&%­£:ÔWRRéâòKqqù©SË´µ»÷5”ïߊˆ¸}üø­«llF/^lmi9OÔèµPçt’¬¬×ß|³/!aµ‘ÑPª³@}ååŸçÏ?úüùûÈHoCC5ªã´‹ÅIL|qûÆœ#<<,\]Çãš^u@ç™2%dÔ(¥Ÿ~r¥:4¢ººnÑ¢c÷ˆX2vlY¾z÷n^XØ­„„û22}œMM45•¨u@ç OÙº5þÞ½­22}©Î`±8Ë–¸víihè"++MªãMIIeLLÚ©Swrs‹Œ‡:;›:8ÉÈô¡:t8Ôy§ººÎÈhËÚµöK–L : 4ŽÃá®]uîܽÇ=¾þZ—ê8BöìYalìÝ“'S++k&NÔš3g¬½ý,ÎíÁPçtªmÛâ/_~xóæF<¾Ëb³¹k×F?ïÈ‘…¶¶:TÇ¾ŠŠšøø{QQw23_ "çìlêèh<|ø ªsð¡ÎèT/_–XZî}úðª"⟲æãÇõvsss#bÞ¼y‚_¾|©¬¬Ì[kkk›——'..ž““coooll&¸³––A²²²JJJ¼É6AYYY¼´ü=Åd2GŒÑÔè6—””tppˆ­ªªºpá‚§§gSÍß¼yc``Ào¨§§×T ¡CÐ%èè¨ Å VzŒ¤Nò±·×uu=|à@2ÕqÚ‹ÃáDGG‡„„ðϽúúúFGG“d“ϱ±±9räˆàƆ¥!ïZ·z÷áÍÀñJÃÒÒÒÔÔÔÏŸ?;;;3ŒÌÌ̃ î,&&Æ{áææ(¸º¶ªª*88ØÞÞ¾Þžõ$yèС©S§65zSÍ]\\bccÏŸ?ollkÖ¬¼¼<þ¢Š†£7•ÓÎή´´tË–-^^^Í„÷ñña0ñññ………‰‰‰_üMûOý€PÔֲƌù~ÿþ$ªƒ€]¾ü`Ô¨ vv{_¿þ@u–F´äúF6=ã lç΄³g3SS¿§Óq¾¥Gy÷®lÉ’P&óý¾}.S§êSç?bbbæÎ‹z Kqvv&"&&¦ýà߀.ÄÃâ°ðÓŸ>¦:ÙàÁ²gÏ~7c†áҥǃ‚8œxw=è‚Pçt!**r66£CC±£Ý»wnp°Ó‘#׿Í;TRRIu"èùPçt-žž–7nääæQ:Äüùf.¬zõꃽý=ûa¸Ð ÎèZ¬­5‡tüø-ªƒ@GÑÓS=~•²r'§ƒçÏ7·^ Pçt-4ÍÝÝ<&& »íÁ””úÇÅ}7gÎØeËNlÚW[˦:ôL¨óºœ¹sMÙln\\ÕA ‰‰ÑøaΡCîgÎÜýæ›}99…T'‚u@—##ÓwÖ,c¬Æè fÌ0¸qÃ_QQÆÎîÇ’¹\ÜÜ„ u@WäéiùäÉ»ôô<ªƒ@‡4H:2ré÷ßOß½û’«ëá¢"<„u@W4zôà±c‡aJ¯— Ñh‹[Çǯ|ýúÃäÉ»¯^}Ju"è!D©óô´\½údQÑLiª³@g00P»|y­¿ìüùG¼¼¬fˆ‰Ñ;mt[[ÛN ¾èÁƒÖÖÖíïÏ=è¢X,ÎØ±Û<=-W¯¶£: tª°°[Û¶34úÿ窪: £‡»}ûö¾}û:zh­ñãÇûúú¶³Ôy]WpðïQQiii›;s^º‚'OÞ-^V\\¾uëL—q4êDÐ-áú<€®kÁó*’’Q:›¶öàk×ü¼½'úùž9ó/_–Pº%Ôy]×àÁ²¶¶:aaXщ‰Ñ×®µ?wnåÇUvv{#"nã´ê<€.ÍÓÓòæMæÓ§TjMJZçáa¹aÃiW×ÃeT'‚îu@—fi©9j”RxømªƒeúôÛ´iÚٳ߽zõ᫯‚#"p0@K¡Îèê,0?}:­¢¢†ê @%“a‰‰¾vvºë×Ç,_þáC%Õ‰ @ÐÕ9;›Òh4<îddúîßïºèÎÖÖ»¢£ÓpÅ4÷Uè6l8šúâêÕõ¸¿QSÃ:p yÿþ?µ´”wïvÖ×W¥:tQ˜Ïè¼¼¬˜Ì÷wî¼ :t }úˆ­]kŸ˜¸VBBlúôŸ6o>[YYKu(èŠ0ŸÐ=8:þ¬  ýË/T.„$ÉØØ»[·ÆKHˆnß>kêT}ªAׂù<€îaáB‹ßÏ.,üDuèBh4š““ɵk~––#—, óðøõÝ;Üxþ…: {˜2EO^^:22•ê Ðå $Í[ŸñèÑÛÉ“÷üöÛ_,‡êPÐ% ÎèÄÄè®®ã#"Rð'õõ׺ׯoðô´Ü¹óâĉÁ—.= :Pu@·±`ùÇU‰‰øû “’’`0¦Ü½ðÍ7z>>ǧL ¹};—êP@%¬ÃèN–. ûð¡òÌ™o©]ÝãÇï¶m‹¿y“éà`¸j•í¨QJT' `> ;Y¸ÐòöíÜ'Oð¸[ø‚Ñ£GG/ _òìY¡Íî%KÂ=zKu(èl¨óºss mmå'nQº‡I“´““qqß–•UÙÚîupØó&“êPÐyPçt3 XÄÆÞ-/Çãn¡¥LM‡ÇÄ,?~|1‹Åqv>èî~4#ã%Õ¡ 3 ÎèfœœÆŠˆÐΜI§:t'4ÍÖVç÷ß×DD,--­ž>ýÿ&OÞsêTjm-›êhа ûñó;žžwåÊzªƒ@wuûvî±c7ôïß×ÍÍláB eeYªCð¡Îè~˜Ì÷'GGûXZjRº±üüÒ°°›'O¦VVÖ|óÞ¢EÖ&&è„: [rv>$--ñÛo^Tnïóçº3g2Ž»ñôi¶¶²‹ËøÙ³å䤨ÎB€: [ºtéÁÒ¥a))›TUPzˆ;w^DG§%$dÕÕqìíuçÍgm=JD„Fu.h;Ôy݇Ã57š9ÓÈß*ÕY çxñâÅï¿ÿñäIŽ{e¯^}–‘570nþ_¢“ >|òäÉBìu@wõ¿ÿýyøðµŒŒ­¢Tg"&&fîܹ¼×tºŒ¤äh.·®ª*“ÚT½‡““SLLŒ;Ä? Ý•››YHÈåøø{ÎÎ&Tgs@”pvvzŸ¸@w5`€”ƒƒáo¿ýEuè¢Pçtc‹Y?xŸ™´]Ý IDATùŠê СÎèÆÆŒbd44,ì&ÕA +Bн-\h¯¸¸‚ê Ðå ÎèÞ ee%OžL¥:t9¨óº711º«ëø°°[,‡ê,е Îèö.´øø±òòå‡TÞeûöí4m×®]ü-QQQ´Ælذ¡Ñí±±±4Z{Ÿ·QUUÅ`0ôõõ¥¥¥MLLvîÜÉf³î&8®ººº»»{qqq ‡xþüy;s¶¿‡¶AÐí)*ö·³ÓÅj èL$IFEE©©©EGGó7:88¤¤¤Qð76ºÝÂÂÂÏϯ=1***ÆŽ›žžœ‘‘áïïikkËá42½’’RPPŸŸZ^^nddTVVÖ’QdeeÛ™“*¸O2@O°p¡¥“Ó'OÞik¦: ô  '°°ÐÐÖV>~üÕA ·ˆŠŠš0aÂäÉ“µ´´§ôZEðl&F;v옶¶ö AƒvíÚ>lذþýûoÞ¼™·‹Åb0ŠŠŠ ƒÅbÀ+òx¤¤¤ FDD¯óääd55µ›7ëÏvÓh4Ÿ‹/6Õ¹`ó°°0^Ι3gúúúòšÔÖÖÊÉÉñzhØœÃáìÙ³GSSSZZÚÂÂâÎ;mûµê<€ÂÝÝâô黟>USz>ÞI[‚ fÏžÝæ:¯ž?ÿü3--m×®]þþþ ÙÙÙ{öìÙ±cLJ‚Ø·o_^^ÞÝ»w“““¯\¹PVVVXXh``P¯ƒ§OŸò^ÿøãÇ744l8ÜÈ‘#sssy¯vÞhs—3gÎðž wùòeIIɯ¿þºÑæû÷ïß»wopppNNΦM›Ö¯_/”oQ«‘Ð#TVÖŒµáÈ‘kTnŒW±}q·ÔÔTQQÑ’’’$322‚xðààL&³Ñ~êm|KDff&I’uuuõ^3™L’$µ´´ x;'%%”––Q\\\o”Û·oËËËó:ÏÎÎæ÷Ïë‡/==]VV–÷ºaç‚Íù9«ªª¤¤¤ÒÒÒH’œ7ož¿¿SÍ555ÃÂÂøc?~ü‹ßX'''''§æ÷i-\ŸÐCHII8;›††Þ\´ÈZD„‚•}Ð{DEE±Ùlyyyþ–èèh]]Ývv+--M„˜˜X½×>> #>>¾°°011‘Á_'CУxzZ&'?~õêÕA ÇŠŠŠ²±±QPPào1221b„°Vc4eÇŽÒÒÒ†††“&MÒ××&BFF&##cìØ± ÃÀÀ`óæÍ...III {077WVV2dÈ‚ úõë—‘‘Á??Ûhçwrr*((˜3gN3ÙV¬XÁ`0Ö­[§¡¡xòäIa?Z„Öѳ¬Ð™¸\ÒÂ"è›oô6ožAuè~bbbæÎ‹Ú€ÎÎÎAÄÄıOÌçô(""´ Ì##S««ë¨ÎCÐÓ¸¹g³9çÎeR(†: §éß_ræL£cÇnP(†: òò²züø]ZÚ ªƒ•Pçô@£G65Ьôj¨óz&OOËßÏ.,üDu  ê<€žé›oôìy›ê @Ôy=“˜ÝÍm|DÄm‹óå½ '¥:t”ùóÍ÷ïÿó÷ß³ ©ÎÝÉ‘#G¨ŽÐ½xñbøðáÂíu@¥¨(óÍ7z¡¡7QçA«x{{S¡—z‡çžôdii/fÎü_b¢¯žž*ÕY ³áú<€žÌÔt¸žžê‰)T  ÎèáÜÝÍãâ2JK«¨ u@çèhÜ·¯xTTÕA ³¡Îèáúô›7Ï44ô‡Ã¥: t*Ôy=Ÿ§§UAÁ§+WžP:ê<€žoȹI“´ÃÂð¸[€Þu@¯°p¡åµkÏrs‹¨u@¯0qâ¨áÃá+½ ê<€^F£¹»›Ÿ:•ZQQCuè$¨óz‹¹sÇ‘$—Auè$¨óz ™>³g‡†ÞÄ/z Ôy½ˆ——“ù>%%—ê ÐPçô"ššJff#pƒ€^u@ï²p¡ååËÞ½+£:t8Ôy½Ë×_ë(}òd*ÕA Ã¡Îè]ÄÄèóç›ED¤°Xª³@ÇBÐë,\hñéÓçsç2© u@¯3p`¿3 ýõ/ªƒ@ÇBÐ-^lýàA~FÆ+ªƒ@BÐ3ÄÈhhhè ªƒ@BÐKyzZ^¸UTTAuè(¨óz©3 åä$#"R¨u@/%&Fws3 Ç Vz,Ôy½—»»ùÇU¿ÿžMuè<1114èžœ[ûãíˆcºEÅþS¦Œùí·†TgNCuh6´BЫyzZÍšõ¿û÷ßèë«R:““Õ uNŸ>݆V8o Ы7\OO5,ì&ÕA@øPçôvægÏf–”TR„ u@o7k–±””DTÔªƒ€¡Îèíúôsqwüø-6›Ku&Ôy@,\hYXøé?R„ uC†ÈMž<úØ1<îþcûöí4m×®]ü-QQQÞÚ-++K𭺺º»»{qqqkG|þü9FksàzÍ«ªª †¾¾¾´´´‰‰ÉÎ;ÙlvÃVíIÞÎÀB顨ó€ ÂËË*%åù“'ï¨]I’QQQjjjÑÑÑü)))AüCGG‡ ˆ”””‚‚‚üüüÐÐÐòòr##£²²²V *++ëçç'”ücÇŽMOOÎÈÈð÷÷ŒŒ´µµåpyL›“ 1pG@AVVšZZÊaa·¨]Ńž|ø¾}ûZ5¨¼¼¼àôa{4(99ÙÞÞ^SSÓÑÑ1--íåË—¡¡¡ wnsr!î¨óào ˜ÇÆÞ-+«¦:t QQQ&L˜>~Ë–-ýøm{‹øÝÇgNž¼]&“kºxUèÄöÂfyyyºººuuuEBJJJTðùü.ãBø|¾ê‘‚‚ zÛÛÛ»ªªŠÞÎÊÊ ðòòÊÌ̤üòË/ô¶ê°„›7oR%•J»lóùüŽŽŽ{÷îµ´´Èåò+W®Ð•ÝE"!¤¶¶¶Ë÷º~ý:›Í¦›÷¯rÕîÊ3J$ccãüü|Š¢–/_÷¼îžžžGUž+%%¥7ÿFÂÂÂÂÂÂ^ج ¼ßþãý÷§9’{éÒ½à`_Mך”šš*“ÉØl¶ò—ËõóóëÓ |>ßÍÍÞ.//···W~dnnÞÑÑáááAïúøøøøøtÁÔÔ”B_ü§ºMÑ××/--ýàƒZZZºÏÉYXXØÙÙñx¼9sæ¨çñxAAAô¶··wÿ*WÛÅb-Z´(==}ܸqgΜ¹uëÖóºK¥RÕ‰Fÿç•ñò°n ÿáêÊž1à Xáär9—ËÝ»woóïbcc¹\.=õÕKE>|xÞ¼yô.=‹FO2‰D¢¼¼¼Ñ£G———ÓŸòx<µë¶=hkk çp87oÞxP£éB@crsskjj¢¢¢L~·bÅ >ŸÏãñzîX[[+ +++¯\¹²xñâ²²2å­ K–,‰‹‹«¨¨(.. =xðàªU«âããïܹsçÎ 6TTTô©ÈŽŽ©Tª¯¯ßÖÖ¶mÛ6BHss³jƒ„„„šššÙ³g_¸pÏçŸõº-t9E¡ ÒÓ 4]¼ä<èÊÌÌhÉ’ þ3W¡À¬À0†œj¼ÿþŒòòºÜÜRMý‡œjxyÙMꆬhŠ¢šš¤„04] <'Ô[³æ˜˜”ŠŠz+M×}#·•—×UTÔ?~\/ŠkjÄõõMM­„]]KMƒ9Ô }ÍÁÁ2%åç„„Eš®Ô‹Û++EAƒ@ÐPYÙ(ˆ*+E¨¦FLßQkccêè8ÊÁÁòp ›èä4êîÝ‚M›Äš. r¨ÇdêDEM=tèÒæÍd±ô5]ÎÈÕÚ*}ò¤A9'÷øq½PØTS#~ú´±³SN133tuµvq±rv¶š8ÑÕÖÖÌÅÅÊÅÅÊÜœÕ}´ÆÆ_(J6è_49@K|õÕW>¦L&“J;vî<äâ¢&1 ŽèèhMzõ¼Øª£Ãpråìlekk6yòX:ÉÑ»††êß߀œ %bbb^Ű †î§ŸjrúGËrž\®DÊ99Õ)ºŽ!ÄÈHßÉi='·`Áx:ÉÙÚšm¡§ÇÔtù0Ì çh.—K?4_;ÐonÐtýÔ‹ÅV#WW¶‹‹•¿¿Sp°oÏ‹­ŽÁÀ-·ÃOXXX_» çÀ°'•Êôô˜É.MM­*In,¶N:µ¯ï΂!ÂÑѱ¯]ó`kk“;výàÁŸ²³7³Ù&¯è,ÊÅÖŠŠúêê¦êjñð]lurrrrrÒt0Hó`XjiéøöÛ«_|‘-·S%4¼|ΓH:>¬©®+“ì$Ca± ¯ó`˜©©iþâ‹ìãǯËdr™LAa0( À¹—#¨ÎÉUTÔ+ƒ½ØÊdê8:ZÒsrÓ§{…ÅV€þA΀a£ººéÀKÇŽ]S((z‚¦§§#ˆº4~áb+‹¥ïèøÛbëäÉc†òb+@ÿ çÀ0PUÕ¸wï\n>!D&“wù”¢7oVdfUVŠè‘@ ’H:!º–ô?“'uråà`éèh‰<Z9`a0Ë–-KKKSÞšúàÁúY¯ÂË_^^·gÏ…~¸Å`0º'Ÿ¢¨Ï?ÿÜÌÌìñãÇ|>Ÿþ[ Üè²M¹yó&EQR©´Ë6=”··wUUÝ8+++ €î^\\¬:”——Wff&Ýì—_~Qn÷€Ëå¾ðïTe¥èÔ©› 'çÍÛ››[úÂ1F܇0mذ!33síÚµèþ)õì’®©©)!DOO¯Ë6­¼¼ÜÞÞ^¹knnNox{{«RQQáááAoûøøøøø È=ÚbáÂÀ… Ÿ>m40À5€g`Ý`$ÒÑÑ9räÈÕ«W¿úê+Õã2™ŒRYYÙû¡Øl6=±GQ”H$ÊËË£«fABÈèÑ£ËËËém×§u[µ::d……e_~yyíÚ#¯½öÉĉãó«_rL-ƒÿô¡ÆŒ³{÷î?ÿùÏô®……!äÛo¿]¶lÙþýû{?Î’%KâââvïÞÝÔÔ=iÒ¤?ü°{³U«VÅÇÇ»ººB6lØ0nܸ~ÔüôicaaYQQÅÕ«ü_Êå &“¡Pü6éà`Ù1´rÀÈ“™™™••Ea³Ù‰‰‰›6múôÓO÷îÝ{òäÉ^’˜˜øá‡êèè,]º4))ééÓ§Ý›ÅÅÅI$’‰DòöÛoÿýïïÍà †.ìnÜx”Ÿÿ¨¡ABCWWGùÀd¹ü·%f†½½E/k!Ô+{: &ƒÁårÃÃÃ5]ÈÀè씿ÿþ¾¬¬Ç “Á`èèü'Ò©Åf›ï´ò†\ŸC‘žsþ|熆ÌiÓÜ)ŠÒÑyÁ,33£Ë—ïóùÕííƒS!ÀЇu[º¤ÒÊ'þrï^ÕÁƒ9?üpSWWG*UóŠ[†PØ´bÅ—ô®••‰ƒƒ¥ƒƒ…£ã('§Qô¶ƒƒ¥••Éà– aÈy0ÔùøØ8°ò¿þkÎ_dŸ:uSGG§³ó™´§«Ë\»vFllHUUÓãÇõBaSM¸¢¢þþýª¼SY)’ÉtKss–‹‹•‹‹•³³•­­™­­™‹‹Õ˜1Ö¦¦†šøf¯r ^^v¬äpþxà@NjjžjÚS((K}}]:ÃuïÛÔÔZQQ_QQÿøq½P(®©çæ––—׊Åítss–2ö©¤@sgçQÊWÀ ;Èy0œ¸¸X%'‡GGÏüÇ?²Nº©«Ë”Je2™¼ç‡ª˜›³üýYþþN]Ž75µÒ±O™ýU˜›[úäIƒBABôõuííÍ•±O™,uuq; uÈy0üxxØ<¸’à ݷïÇÌÌ"¹\Ñ¿‡ç™›³ÌÍY^^vÓ§?s\*•UU5UW7UW‹?®§S`q±àÉ“†¶6©²o÷%`WWk33,ÃPœÕ«+ûóÏWlÞzð`Ž£ã@>$¹7KÀÕÕb:ææ––—׉Åmtƒç-;9ÒÑÁ0 *ä<ÞœœFíÚ6h§{Þp{{§êä_uuSEE}÷%`3;;sgg+:ÚØ˜9;22Ò´úU]¹r%11Q#§†^š1cÆ'Ÿ|ÒïîÈyÚ#''§±±QÓU €úz©PØþøñ#}}Çââ',–¾>ÓÜÜÈÐPßÀ`ˆþå24Ô££[—%àÎNùÓ§]–€ýU(4´¶v]¶±1³³3£S «+ÛÌÌè•Ö\]]6x)úäúõë––/5Q÷ah mº-”Á`š›Ï62Rÿ\:ö陘虚˜˜þýïá¶¶fƒ\çKê¾Lï65µÒ t»LþÑ»µœ––$0dѯ·IKKë÷Cô¿Š ¯´ï¯õÞ½÷ì¹Øý›µ¶v´¶’ÆFBH}ÄÛÛ~Ø…<Ò»%`z"^Dr¹‚¢§Ç=Ú¢û°“Ó(K3KÀ04!çÀâåe÷ç?'—+èKÜÔb2uÞúó>ŽzXnhh¡cßï)Pœ›[zôhDÒA·Q»Lߢoš†œC×¼yã33Í£¢¾lm•*ßiÑ…î;ïLäÂ4BOikknkk®öA€Êõ_:”UW7ÕÔ4ÓÓ¡ªKÀÊgÖÕµ¢=ËýÐr iAA®.l ;TS#îòº3Bˆžów 4RÛÐA/w?^W×"4TVŠ*+‚@tûö“ÊJQCƒ„n`h8fp+…A…û0`¨©i^¹òËû÷…2™š¨7k–÷²eß~ÛŸÉÄ;*z¥­MúäIÃ÷ߟ޾ýC¹¼MÓå€z/þÿÀé?lœ1ÃS5É1 ŸÑŸ|²ðÉ“†˜˜”7ßLú¿ÿ»\_ߢÁ:‡ ##}OO; …¢½—]vìØÁ`0víÚ¥<’ššÊP‡Çã©îººº®^½º¶¶¶¯E>xð û]äjv!‘H8ÎøñãMMM'Mšôé§ŸÊd²îÍ^¦ÈÞ”ñªGè ä<X,ý””µQQ¯«þu\»vúÚµ3.]ÚrùòÖ×¾ø"{üø„ˆˆÃgÎðº/òB¿Q•ššêììÌår•-ZTUUUUUuíÚ5BHÕï|}} !×®]«ªªGŽ‹Å&Lœ‡;677Oœ8±   ))©¨¨(..îøñãÁÁÁr¹šÿ=ô»H ‹­[·tí9† &Sç³Ï–}øa0ƒÁ`0ˆ¡¡î‚ôGžžvññóoÝúëáë !ëÖ};yòö;ÏVTÔk´d-QRRrïÞ½¯¿þšÇã•––ÒŒŒììììì쬭­ !v¿ÓÓÓ#„X[[ÛÙÙ988¼ùæ›'Ož;vì¾}û¡ÔíÛ·[[[çä䄆†zzz.Y²$??¿¼¼üÈ‘#Ý÷»H6›­:µ9d!çÀpÂ`0¶lùcrr¸ŽcÉ’‰&&ÏÜ¡¯¯»`A—»>77nÙ²I\îiÓvFD>q¢ ½½SS5kÔÔÔ™3gΙ3ÇÛÛ[uJ¯— ƺuëÎ;Gï666¾ûî»l6ÛÑÑqóæÍíííª‹˜]4?îææfmm½~ýúÖÖVÕa;;;9Ž­­­ ‡Ãéìì$„;v,!!Éd*›s8œcÇŽÑ#çää8;;ÿüóÏ=Ù}ÝÃb˜¯IDATpÕîG¥‹|çwbccé.–––ôÝ»ËåòäädOOOSSÓiӦݸq£¯?c? çÀð³bÅëß}½fÍÏk0v¬u|üü¢¢¿>¼ÚÐP/6650ð¯[¶¤Ý»W5˜ujzÑ622’²téÒ~ä_õHAA……EQR©”ÉdÞ¹s‡>ž™™éîî®:‚r›Þ(..VV;fÌÕ–ÞÞÞUUUôvVVV@@€H$"„ÔÖÖvù ׯ_g³Ù]ì¡Hµƒ«vW–!‘HŒóóó)ŠZ¾|y\\Üóº{zz=zTy®”””þøaaaaaa=·éžŸÚÏÞÞâ/™½~ý[W¯ò»þ¿ÿ›ž˜xzáÂÀÕ«§ùù9hºº¡.55U&“±Ùlå.—ëçç×§Aø|¾››!¤ººZ.—ÓÛ„www@ Ú’zö‰oôœT?*//···Wîš››[XXØÙÙñx¼9s樶äñxAAAÊq^X¤ÚÁÕvg±X‹-JOO7nÜ™3gnݺõ¼îR©Tu¢Ñßßÿye ¬ÛÀH¡£Ã˜>ÝóË/ÿ”›û¿ï¾ûFVÖ/!!{/þâĉ‚¶6©¦«¢är9—ËÝ»woóïbcc¹\.Õ—çïRuøðáyóæBlmm™Læ£Gè>|èàð[Ô¦Ÿ~RYY©Ú—ž9#„”––º¸¸¨~DOÑÑW"‘(//µ}ûvÕ»k%IRRRhh(½Kß&Òs‘Ï\m÷ÈÈÈôôôÓ§O)Si÷î®®®·oßVöº{÷î ·ð2“ÃWg§üâÅ’?ýéŸNN±^^ÿ³eKÚ­[š.jPõfÝö§Ÿ~b2™ÕÕÕÊ#………„›7o*¨]·U>²äòåË‹-rttlll¤?]±bÅìÙ³=zTRRâëë›@?¸î믿njjZ¼x1QY· æóùùùùŸ}ö™ê¹6nܸlÙ²òòòÛ·oO™2eÆ E555yyyÍœ9óüùó¥¥¥™™™¾¾¾Ó¦MkooïRgÏEv\íâ2EQôíªË²Ý»þùç666?üðCUUÕùóçÇŽûÂÿå×m‘ó`¤kjjýî»kÁÁÉööÿý‡?ìܽû¼@Рé¢Cor^LLÌܹsU( 77·­[·*¨ÍyJNNNQQQªI±¡¡aÕªUVVVööö}ôQ[[EQ‰‰‰nnn§NRÍy©©©®®®666›6mêèèP=—X,^³f¥¥¥••Utt´D"¡·´´lÚ´ÉÏÏÅbùúú&&&¶¶¶v¯³ç"»þ¼œGQTtt´‰‰IKKKÝe2Yrr²»»»±±ñÔ©Sé žü—ÏyxïÀoŠ‹Ÿœ8Q˜‘Q(·M›æ±råÔÐÐ×ôô˜/î9<¥¥¥EDD Y/ÿÞ3܇ð'§?^ðãwŽ»¾nÝ·ÖÖ& ®Xñºý‹û 1ÈyÏ00Ð]° `Á‚€²²ÚÌÌ¢ÔÔü¯¿þ·¿¿ÓÊ•S/ž`llðâ!†Üo  Þ˜1Ö›6…Þ¸ñ —»ÞÅÅ*>>c„¿nÜx<7·TÓ¥ô æózB?eútÏššæÓ§o}ÿ}^zz¡‡‡mxø¤å˧XY™hº@€çÂ|@¯ØØ˜®];#+‹óý÷ë||ì““/Lž¼ãÃÿßp+ M˜ÏèÆÌ™^3gz‰D’ŒŒ¢ï¿Ï[¼ø WWvxø¤°°I–š.à?0ŸÐ––Æk×ÎÈÉÙò¯}ôæ›Þ_}ueÊ”áá‡32 ñv "ó^J@€óÎKKJv|ÿý:;;3'mܸø˜˜”¬¬»2™BÓÕÁˆ†u[€Àdêзk$&.9}šwâDÁŸþôO;;ó¥K'FFN;ÖZÓÂH„œ0ÌÌŒV®œºråT>¿:-­àĉüƒsüý–-›¸ti¥¥±¦ ì*88XÓ%€z%%%3fÌx™ðÞ3€WH¡ ®^åŸ8Qpî\±B¡˜;×oÙ²‰o¾é£««ùK§®_¿¾oß>MW=yýõ×cccûÝ9`0ˆÅmôznAA™­­ùüùãñ:5xÕó•r=·¦¦y(¯ç‚@ÎЩTöãwOœ(øé§{††zóçDDLž­„œ0•—×9Ã;s†wçN¥••ɼyþóæŸ:Õ]W¯ÙÐÈy#ZYYíéÓ<.7¿¼¼Î‚5w®ïÿè?s¦—¡¡ž¦Kƒ—…œ„RQQŸ•u÷Ì^aa¹žsÊ”±ô£øllL5]ôr<£¾¾åÒ¥{ôcY j— æÍó···ÐtiÐ7Èy ^SSë¿ÿ]š•u÷üù‰¤ƒ~—î¢EÜÝm4]ô r¼@{{gnniVÖÝ JêêZ<=킃}ƒƒÇMš4†Á`hº:x.ä<øÍ£G²³³{h “Q¶Ü¿ßrÿ~s[›ÜÆÆ`êÔQXÏcÇŽ3gΈœ¿IKK‹ˆˆè][†¾¾£¡¡[ggu[Û½W[Öˆ–––6€⡈ð ÌiDxxø€‰g!h'ä<턜 ó´r€vBÎÐNÈyÐ;vì`0»víRIMMe¨ÃãñÔðàÁË¿NC"‘p8œñãÇ›ššNš4éÓO?•ÉdÝ›©ž×ÕÕuõêÕµµµ½<ÅË×9 ß´ó Ï(ŠJMMuvvær¹Êƒ‹-ªªªªªªºví!¤êw¾¾¾„k×®U=«ç}ôè›ÍVî677Oœ8±   ))©¨¨(..îøñãÁÁÁr¹¼{_º@päȱXKMM9sæœ9s¼½½U§ôú­±±ñÝwße³ÙŽŽŽ›7onoo'„œ={600ÅbÙÛÛÓIëõ×_'* òرc tÈ£s8œcÇŽÑK¥999ÎÎÎ?ÿüs—Ó1ŒuëÖ;wŽÞíììäp8¶¶¶666§³³SµûÑ£GéU×wÞy'66–îÒÑÑaiiIн»\.ONNöôô4556mÚ7^þ'êä<èzÑ622’²téÒ^æ<‰DÒ¢¢ËUt6lùùùçÏŸ¿xñbRRRssóÒ¥K'L˜ÀçówïÞW[[›——G …„ÆÆF¡PÐåD÷ïß§·÷ìÙ“’’ؽ‡ÒÛûöí++++,,ÌÉɹtéRBB‚Úî‘‘‘ô{á.^¼Èb±BBBÔvß¿ÿîÝ»“’’JKKããã·lÙÒ›ŸhàQEQØ^Ø,//OWW·®®Ž¢¨¢¢"BHII‰j>Ÿßeœî äÌ™3ÊfR©”ÉdÞ¹s‡nœ™™éîîÞÑÑqïÞ½––¹\~åÊBŸÏWY$Bjkk»”wýúu6›M·,..VÀçóU›XXXÐÛÞÞÞUUUôvVVV@@€jwåI%‰±±q~~>EQË—/‹‹{^wOOÏ£G*Ï•’’òÂ6,,,,,¬ç6}…ëó oRSSe2™êý\.×Ïϯç^|>ßÝÝ]õˆòú¼êêj¹\îææFﺻ» }}ýÒÒÒ>ø ¥¥E턜………Ç›3gŽêqDo{{{÷PòŒåååöööÊÌÍÍÕvg±X‹-JOO7nÜ™3gnݺõ¼îR©Tu¢Ñßßÿye¼RX·€>Ëå\.wï޽Ϳ‹år¹”ºI»^²µµe2™=¢w>|èààÐÖÖÎápnÞ¼yèÐ!µ£¢¢¶oß®zw­D"IJJ ¥wõôôÔv¤(êðáÃóæÍ£wéù?zL$Ñ«Ãj»GFF¦§§Ÿ>}:((ÈÃÃãyÝ]]]oß¾­ìu÷îÝ>ý 9ú 77·¦¦&**Êäw+V¬àóù<¯ßcêééEDDlܸ±¬¬ìÎ;üqTTTGG‡T*Õ××okkÛ¶m!¤¹¹™nOßÏKIHH¨©©™={ö… ø|þÉ“'§L™âàà°~ýúîg©­­ …•••W®\Y¼xqYY™ò¦Š%K–ÄÅÅUTT‡†† XQilla Simple API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- o -

XQilla-2.3.0/docs/simple-api/inherit_graph_40.png0000644000151400015140000000526611653571064016470 00000000000000‰PNG  IHDRm(º<bKGDÿÿÿ ½§“ kIDATxœíL[ÇïPP_--<ԨŸBk\QQŸˆFŒ€¹€Ž`. #˜ èæ:€¹ü˜:BИ2eJBBBww7Ý@©T¦§§‡††:88Ìš5kß¾}†ò6mšÞ닱±±A´´´`@@7hii!b˜¹}‘10:|ë‚1üàÇÔ„ÐÝ»w;::^½zUXXØÛÛ¦P(ðG}}}3gÎ|ðàAnnîÇ322.^¼­Õj±A[[ÛãÇ©Pr¹üöíÛôà%%%ÅÅÅ£6–/E§#kjZª«Ÿ[:‘ï‰oZ0&‚Z[[]]]GìþÃꈛ››Íær¹óçÏ¿råŠÏáÇñG999nnnׯ_‰‰ñ÷÷_¶lÙýû÷ÛÚÚ ±ATTÔåË—©PeeeóæÍ£ß´iSrrrggç¨ g˜<~ܾ{wihh¦@p¬®®ÕÒé|O|Ó‚1|Œ ÓézzzFìþÅ:RVVÆårår9BèÒ¥KþþþJ¥!¤V«ÓÓÓ=<<ÜÝÝÓÓÓÕj5¾¿~ýº··wuuuVV–···››[BB%Ɔ^¡k×®…„„ØÚÚúøø\¸p!¤ÑhÝésó‚ 6oÞ\^^Ž‹ŠŠ233Y,e`ooŸžž^TT„H$¢îTKJJâââèSRR“’’ woQ(ëÖ­suuåñxiiiZ­6//ÏßßßÁÁ!<<¼®®ÎÄØG†Túö÷ßÿ=cÆîØØC·{zú­­YC» P0¦ƒ còÆ2'âìÙ³|>ßÍÍmÿþý.\˜:uª££#õòã#ââÅ‹|>òäÉ@Í™3!Äf³‡¾¢Œ4ð½:9 k×®íììôð𨫫ù¹¹Ë—/ùòecccXXØÎ;›››B±±±7nÜÈÎÎ jll”H$³gÏNKK3æÕßß?~üø'NtttX[[÷÷÷çåå1º+ŠÓ§O¶BÍÍÍôœä™xi#•¾=x°bî\!‡³ÝÛ;•ÃÙNýüòKÚþýåC4„Pqq±i(cÁI¦‚aLž^cô6BhÕªU½½½gΜA­X±¢··÷äÉ“¡wïÞ1ž1ì'—ËOŸ>êéé¡Ç4 £JŒDGär9Ç ÉÎΦ:;::p»²²rúôé8³ÆÆF’$Äb1þôÙ³gTÛÐK&“ÙØØ­VkÌÝ#(‹ÚÚZWWWÊ7999##ƒ$É¢¢¢èèhzLªqäÈ‘I“&½|ù’ºƒƒƒ,ëÉ“'8¦X,öóóó÷÷?wîõEçÏŸÇÆ†c7=(ò“Žtv*òó«""öq8Û½½wÐåclꌱàŒؼ ©¯¯Ç¡ôÚøKË !tóæMº¥™:Âð~Í899%%%íÞ½›þÎ_[[‡Ã¡q#00!ôâÅ‹iÓ¦á>ŸÏçóy9;;ß¼yó?þÈÊÊ ËÈȈ5æ>|š››}}}qòl6»¡¡!**ŠnÐÐÐ0cÆ êP $&&îÝ»×Ä=êÖ­[Åbqbbb~~>îéêêÒjµø‹B~~~¯^½"búôé”WHHˆ±±›ÂÇšîî oßÚÏœ™ó©„Z­3fÿ×_Oëë_˜Ži>¶¶>CÚ@Á ÎX0!ÓÉ“ŸÏ¦B666zmŒ±óŒï‹é–æ0’uÖöööüüü¨¨¨ÔÔTªÓÕÕ•]¹\N½ˆõôôlkkÃ= {÷î5æ¥R©t:ÝåË—e2Ù† -Z$“ÉŒ¹’$?¾páB|Ÿ““C-¶#„”JennnLL ÕÑ××wçÎÊÊÊ%K–0†µ²²*,,¬©©9uêîñðð`±X­­ÿ[à”J¥\.wÊ”)ôÅü§OŸš>cÆøøQC’_ðÀxÜ8–““Ý·þ!Ií™@Á ÎX0&’Ç›_¿~=ü±;ÏVV_õËw,zhµÚ¨¨¨={öÈd26›]VV†û·mÛ‡€Íž={ëÖ­ô;¥¬¬¬‰D"‘HÂÃÃ7nÜhÌK¥RÙÚÚ–””twwŸ:uÊÖÖV¥Rs71Ý¥ž´UWW/^¼˜Çã) üéû÷ïæÍ›WQQÑÔÔ$‹ƒ‚‚ÂÃÃHÚ]è–-[ø|þüù󩘌·©ÇÇ‹^øpõêÕ ,hmm•H$AAA™™™GŽqww¿zõjGGGEE…66»é3O~š×¨TƒeeV¯>ÁãíàrS¸Ü”±<¯‚1ܰ`“ÇrRPPðþýû¥K—"Ú¼†ªFÆ6c™Zâ“ß××7äÿ:ë#G $IòÊ•+G&“‘$ÙÛÛ»~ýzggg—¤¤$¥RI/‹´´4OOOGGÇU«VÉårÜoè…Óðõõ7n\```ii© w“F //¯øøø®®.ú(úûûSSSƒƒƒíìì‚‚‚„Bá‡ô.@uu5BèØ±czýz:¢Óéð^>øP&“­Y³ÆÅÅ…Ãᤤ¤¨T*F“——çççgoo?wî\ü ÁØØM£·Î*—+E¢ûK–üéé™Âãí›:c:¸aÁK^(:99ùúú–––_GϘ¡¥Z­Žˆˆ˜8qâPœY%ú8ñÎz#Æx›à b¤Ò·W¯Ö‹Dÿioï±±a©ÕZkkVròßûíß:%‚ Š‹‹aÿ‘ŸF•øaÿí§Â××=55¦®î_;~ýõo“'OÔh†^¶€¯ÅHž×c–ÐP¯ÐP¯]»þY[+U«5–NøYù±²"ÂÃý,ðóÌtsÀ\@G0ÐÌtsaxî ÿ±uÌ"‘H"##-…>B¡ocü tuuv~¦#^^^ðÏ}Ç2‘‘‘xߪ±Ìφ³³3ÞÛoÓ`&°>€¹€Ž`. #˜ èæò_$Ú l~sïcIEND®B`‚XQilla-2.3.0/docs/simple-api/classxercesc_1_1MemBufFormatTarget.html0000644000151400015140000002532211653571065022254 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

xercesc::MemBufFormatTarget Class Reference

#include <MemBufFormatTarget.hpp>

Inheritance diagram for xercesc::MemBufFormatTarget:

List of all members.

Public Member Functions

virtual void writeChars (const XMLByte *const toWrite, const XMLSize_t count, XMLFormatter *const formatter)
const XMLByte * getRawBuffer () const
 Returned the internal raw buffer.
XMLSize_t getLen () const
 Returned the length of the raw buffer.
constructors and destructor
 MemBufFormatTarget (XMLSize_t initCapacity=1023, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 ~MemBufFormatTarget ()
reset
void reset ()
 Reset the internal string buffer.

Constructor & Destructor Documentation

xercesc::MemBufFormatTarget::MemBufFormatTarget ( XMLSize_t  initCapacity = 1023,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
)
xercesc::MemBufFormatTarget::~MemBufFormatTarget ( )

Member Function Documentation

XMLSize_t xercesc::MemBufFormatTarget::getLen ( ) const [inline]

Returned the length of the raw buffer.

const XMLByte* xercesc::MemBufFormatTarget::getRawBuffer ( ) const

Returned the internal raw buffer.

void xercesc::MemBufFormatTarget::reset ( )

Reset the internal string buffer.

virtual void xercesc::MemBufFormatTarget::writeChars ( const XMLByte *const  toWrite,
const XMLSize_t  count,
XMLFormatter *const  formatter 
) [virtual]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classATNotationOrDerived.html0000644000151400015140000002706611653571064020376 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATNotationOrDerived Class Reference

#include <ATNotationOrDerived.hpp>

Inheritance diagram for ATNotationOrDerived:

List of all members.

Public Member Functions

virtual const XMLCh * getPrimitiveTypeName () const =0
virtual const XMLCh * getTypeURI () const =0
virtual const XMLCh * getTypeName () const =0
virtual const XMLCh * asString (const DynamicContext *context) const =0
virtual bool equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
virtual int compare (const ATNotationOrDerived::Ptr &other, const DynamicContext *context) const =0
 Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.
virtual
AnyAtomicType::AtomicObjectType 
getPrimitiveTypeIndex () const =0

Member Function Documentation

virtual const XMLCh* ATNotationOrDerived::asString ( const DynamicContext context) const [pure virtual]

Implements AnyAtomicType.

virtual int ATNotationOrDerived::compare ( const ATNotationOrDerived::Ptr other,
const DynamicContext context 
) const [pure virtual]

Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.

virtual bool ATNotationOrDerived::equals ( const AnyAtomicType::Ptr target,
const DynamicContext context 
) const [pure virtual]

Implements AnyAtomicType.

virtual AnyAtomicType::AtomicObjectType ATNotationOrDerived::getPrimitiveTypeIndex ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATNotationOrDerived::getPrimitiveTypeName ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATNotationOrDerived::getTypeName ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATNotationOrDerived::getTypeURI ( ) const [pure virtual]

Implements AnyAtomicType.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classATBooleanOrDerived-members.html0000644000151400015140000004327211653571063021606 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATBooleanOrDerived Member List

This is the complete list of members for ATBooleanOrDerived, including all inherited members.
_ref_countReferenceCounted [protected]
ANY_SIMPLE_TYPE enum valueAnyAtomicType
ANY_URI enum valueAnyAtomicType
asString(const DynamicContext *context) const =0ATBooleanOrDerived [pure virtual]
AtomicObjectType enum nameAnyAtomicType
BASE_64_BINARY enum valueAnyAtomicType
BOOLEAN enum valueAnyAtomicType
castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [protected, virtual]
castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
compare(const ATBooleanOrDerived::Ptr &other, const DynamicContext *context) const =0ATBooleanOrDerived [pure virtual]
DATE enum valueAnyAtomicType
DATE_TIME enum valueAnyAtomicType
DAY_TIME_DURATION enum valueAnyAtomicType
DECIMAL enum valueAnyAtomicType
decrementRefCount() const ReferenceCounted [inline, virtual]
DOUBLE enum valueAnyAtomicType
DURATION enum valueAnyAtomicType
equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0ATBooleanOrDerived [pure virtual]
fgDT_ANYATOMICTYPEAnyAtomicType [static]
FLOAT enum valueAnyAtomicType
G_DAY enum valueAnyAtomicType
G_MONTH enum valueAnyAtomicType
G_MONTH_DAY enum valueAnyAtomicType
G_YEAR enum valueAnyAtomicType
G_YEAR_MONTH enum valueAnyAtomicType
generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicType [virtual]
getInterface(const XMLCh *name) const =0Item [pure virtual]
getPrimitiveTypeIndex() const =0ATBooleanOrDerived [pure virtual]
getPrimitiveTypeName() const =0ATBooleanOrDerived [pure virtual]
getPrimitiveTypeURI() const AnyAtomicType [virtual]
getRefCount() const ReferenceCounted [inline]
getTypeName() const =0ATBooleanOrDerived [pure virtual]
getTypeURI() const =0ATBooleanOrDerived [pure virtual]
gXQillaItem [static]
HEX_BINARY enum valueAnyAtomicType
incrementRefCount() const ReferenceCounted [inline]
isAtomicValue() const AnyAtomicType [virtual]
isDateOrTimeTypeValue() const AnyAtomicType [virtual]
isFalse() const =0ATBooleanOrDerived [pure virtual]
isFunction() const AnyAtomicType [virtual]
isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicType [virtual]
isNode() const AnyAtomicType [virtual]
isNumericValue() const AnyAtomicType [virtual]
isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
isTrue() const =0ATBooleanOrDerived [pure virtual]
Item()Item [inline, protected]
NOTATION enum valueAnyAtomicType
NumAtomicObjectTypes enum valueAnyAtomicType
Ptr typedefATBooleanOrDerived
QNAME enum valueAnyAtomicType
ReferenceCounted()ReferenceCounted [inline]
STRING enum valueAnyAtomicType
TIME enum valueAnyAtomicType
typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicType [virtual]
UNTYPED_ATOMIC enum valueAnyAtomicType
YEAR_MONTH_DURATION enum valueAnyAtomicType
~ReferenceCounted()ReferenceCounted [inline, virtual]
XQilla-2.3.0/docs/simple-api/inherit_graph_1.md50000644000151400015140000000004011653571063016266 00000000000000995154d1764bc61d42755819de523adcXQilla-2.3.0/docs/simple-api/FastXDMConfiguration_8hpp_source.html0000644000151400015140000001530511653571063022031 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

FastXDMConfiguration.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef FASTXDMCONFIGURATION_H
00021 #define FASTXDMCONFIGURATION_H
00022 
00023 #include <xqilla/framework/XQillaExport.hpp>
00024 #include <xqilla/simple-api/XQillaConfiguration.hpp>
00025 
00026 class XQILLA_API FastXDMConfiguration : public XQillaConfiguration
00027 {
00028 public:
00029   virtual DocumentCache *createDocumentCache(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr);
00030 
00031   virtual SequenceBuilder *createSequenceBuilder(const DynamicContext *context);
00032 
00033   virtual ItemFactory *createItemFactory(DocumentCache *cache,
00034                                          XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr);
00035 
00036   virtual UpdateFactory *createUpdateFactory(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr);
00037 
00038   virtual URIResolver *createDefaultURIResolver(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr);
00039 
00040   virtual ASTToXML *createASTToXML();
00041 };
00042 
00043 #endif
XQilla-2.3.0/docs/simple-api/inherit_graph_11.png0000644000151400015140000000303011653571064016451 00000000000000‰PNG  IHDR€(¹ebKGDÿÿÿ ½§“ÍIDAThí™OLOÇgÅ ¡´ ‰V›F¤¨ ^ˆA-‰±(уƨĤÂ` &&¼bŒ-* !ÁQþÔú/[¤ `U´Å¶Kµ¥;¿Ã„þÖíRí¢l"û9íLß¼÷f¾Ý7;»„ðpG × lvx8†€cx8&ŽÖnjjä$•Í€Z­¾zõ*µ‡.€Åb™ššÊÍÍÝÀ¬6 OŸ>‹Å´Nº€ÜÜÜÎÎÎ IisQVVÞÉïà À1¼à À1¼³.ššš0 kiiY¡P˜——7::º~·,Ðëõ)ö@õz}FF†Á`ˆl933#‘H~éÐh4:‡Ãa6›wïÞ]^^þGÞÔþfô‡BiF€c•ÌÌÌõ'Ã9à7±X,“““ýýýEEEV«U¡P¬eI’äׯ_é0555-- ––víÚ5™L¶¸¸(•JYgUôB¡P(¼^/Jf D†ý ×ë8PXX¨T*C7Áôô4†a´k•J(3YZZÒjµ‰$==ýòåËß¿wŽãx|||RRjÚÚZ™L&•Jkkk §§'++K ìܹóöíÛkYÒ¢ÓX\\\^^ŽvîìF1ÂRT***Gމ\…L&àãǨyîܹùùùçÏŸ?|ø°¯¯¯µµõáõz½^ï‡t:]eeå–-[ÐO7nܰÛí/_¾|ôèÑãÇ‚Ðh4gÏžÕét'Ož$‚Ñ’=Ä‹/´Zmffæ·oߢþØØØŽ;êêêìv{´céÀŸÑh4þ “É÷åËá«W¯‹Bh³ÙB>C×ÔN¿ß;>>Žš]]]»ví ¯õ"‘èõëסpJ¥Òáp ë}ûö9Nǯ_¿îr¹H’ôx<Á`Ñ’Bèóù:::rrr²³³oݺåñxÖš#m ………ÆÆÆôôô’’’¾¾>=2ŒkËR€ .ЖL§ÓÑ’¶Z­á¼ÿàóùPÓl6 !Àf³¡N‚ jjjT*U(œ@  ÆJJJ‚=ztëÖ­½½½kYR£ H¥Ò'N<{öŒ$ÉÈsŒ,Âï÷wvvæçç+ŠwïÞE6f\[6%(  †¶¶6Ï*—.]2 põ¼²²XXX+“ÉbccgffPóíÛ·Û·o§Ù$$$hµÚ‰‰‰C‰D’Çår™L&ŸÏG’ä½{÷œNç©S§JJJœN'£%Õsjjêž={ŒFãÈÈÈÒÒ‹¹ÓøôéÓÄÄÄüüüþýûÑÖ-lúüùsee¥h•cÇŽÙl¶ÑÑÑääd@GG‡Ûí¾yó&uz¨Àq¼¼¼üüùóv»}||Õúð‰‰‰ >|øÊ•+sssf³ùàÁƒííí†?xðÀívûý~Ç-©Ñ÷îÝûäÉ“®®®7oÞ(ŠêêjT?£…$ÉþþþÒÒRt›ŽŒŒÜ½{7ª‡ÝÿùÛ„Æ™3gŠ‹‹©=$IÊåòúúzasssrr²\.ïîîFþ@~~¾H$BÆN§óøñã)))Û¶m»xñ"*G€R‚ „Á`011Ñn·£¦Ûí®ªª‹Å)))§OŸ&Bh0äry||¼R©ìîî^Ë’=„Ëåjkk“Ëå³³³ŒÓŒP‚îß¿¯R©îܹóãÇÈkE…qm1øóˆÞYožï$I’$Ýy(à8m,Ƶeû7ˆ‰‰‰‰‰º³Xý5øSŽxØÁ À1¼à À1¼à À1¼à À1 ±ÁÁÁ¢¢¢OåŸÇb±¨ÕjZ']ôýˆço V«Ã——þ.ˆgƒá÷Žáà^Žáà˜ÿ¨Æ8îr'³IEND®B`‚XQilla-2.3.0/docs/simple-api/classXQilla__inherit__graph.map0000644000151400015140000000035611653571064020747 00000000000000 XQilla-2.3.0/docs/simple-api/VarHashEntry_8hpp__incl.md50000644000151400015140000000004011653571063017704 0000000000000069d1380e85b90515e2031dd955b8f329XQilla-2.3.0/docs/simple-api/classxercesc_1_1DOMXPathNSResolver.html0000644000151400015140000003040111653571063022120 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

xercesc::DOMXPathNSResolver Class Reference

The DOMXPathNSResolver interface permit prefix strings in the expression to be properly bound to namespaceURI strings. More...

#include <DOMXPathNSResolver.hpp>

List of all members.

Public Member Functions

Destructor
virtual ~DOMXPathNSResolver ()
 Destructor.
Functions introduced in DOM Level 3
virtual const XMLCh * lookupNamespaceURI (const XMLCh *prefix) const =0
 Look up the namespace URI associated to the given namespace prefix.
Non-standard extension
virtual const XMLCh * lookupPrefix (const XMLCh *URI) const =0
 Non-standard extension.
virtual void addNamespaceBinding (const XMLCh *prefix, const XMLCh *uri)=0
 Non-standard extension.
virtual void release ()=0
 Called to indicate that this object (and its associated children) is no longer in use and that the implementation may relinquish any resources associated with it and its associated children.

Protected Member Functions

Hidden constructors
 DOMXPathNSResolver ()

Detailed Description

The DOMXPathNSResolver interface permit prefix strings in the expression to be properly bound to namespaceURI strings.

DOMXPathEvaluator can construct an implementation of DOMXPathNSResolver from a node, or the interface may be implemented by any application.

Since:
DOM Level 3

Constructor & Destructor Documentation

xercesc::DOMXPathNSResolver::DOMXPathNSResolver ( ) [inline, protected]
virtual xercesc::DOMXPathNSResolver::~DOMXPathNSResolver ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual void xercesc::DOMXPathNSResolver::addNamespaceBinding ( const XMLCh *  prefix,
const XMLCh *  uri 
) [pure virtual]

Non-standard extension.

Associate the given namespace prefix to the namespace URI.

Parameters:
prefixof type XMLCh - The namespace prefix to bind. An empty or null string denotes the default namespace.
uriof type XMLCh - The associated namespace URI. If this argument is null or an empty string then the existing binding for this prefix is removed.
virtual const XMLCh* xercesc::DOMXPathNSResolver::lookupNamespaceURI ( const XMLCh *  prefix) const [pure virtual]

Look up the namespace URI associated to the given namespace prefix.

Parameters:
prefixof type XMLCh - The prefix to look for. An empty or null string denotes the default namespace.
Returns:
the associated namespace URI or null if none is found.
virtual const XMLCh* xercesc::DOMXPathNSResolver::lookupPrefix ( const XMLCh *  URI) const [pure virtual]

Non-standard extension.

XPath2 implementations require a reverse lookup in the static context. Look up the prefix associated with the namespace URI

Parameters:
URIof type XMLCh - The namespace to look for.
Returns:
the associated prefix which can be an empty string if this is a default namespace or null if none is found.
virtual void xercesc::DOMXPathNSResolver::release ( ) [pure virtual]

Called to indicate that this object (and its associated children) is no longer in use and that the implementation may relinquish any resources associated with it and its associated children.

Access to a released object will lead to unexpected result.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/inherit_graph_42.md50000644000151400015140000000004011653571063016353 00000000000000c275709a5f6cd65d711fa4720000f0ffXQilla-2.3.0/docs/simple-api/MessageListener_8hpp.html0000644000151400015140000000623711653571064017552 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

MessageListener.hpp File Reference

#include <xqilla/framework/XQillaExport.hpp>
#include <xercesc/util/XercesDefs.hpp>
Include dependency graph for MessageListener.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  MessageListener
 A class used to listen for warnings or trace information. More...
XQilla-2.3.0/docs/simple-api/MessageListener_8hpp_source.html0000644000151400015140000001451011653571063021122 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

MessageListener.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _MESSAGELISTENER_HPP
00021 #define _MESSAGELISTENER_HPP
00022 
00023 #include <xqilla/framework/XQillaExport.hpp>
00024 #include <xercesc/util/XercesDefs.hpp>
00025 
00026 class LocationInfo;
00027 class DynamicContext;
00028 class Sequence;
00029 
00033 class XQILLA_API MessageListener {
00034 public:
00035   /* virtual destructor, does nothing */
00036   virtual ~MessageListener() {};
00037 
00041   virtual void warning(const XMLCh *message, const LocationInfo *location) = 0;
00042 
00046   virtual void trace(const XMLCh *label, const Sequence &sequence, const LocationInfo *location, const DynamicContext *context) = 0;
00047 
00048 };
00049 #endif
XQilla-2.3.0/docs/simple-api/classATQNameOrDerived__inherit__graph.map0000644000151400015140000000060611653571064022605 00000000000000 XQilla-2.3.0/docs/simple-api/classATAnyURIOrDerived__inherit__graph.map0000644000151400015140000000060611653571064022713 00000000000000 XQilla-2.3.0/docs/simple-api/functions_0x66.html0000644000151400015140000002336611653571063016315 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- f -

XQilla-2.3.0/docs/simple-api/inherit_graph_45.md50000644000151400015140000000004011653571063016356 00000000000000152d17f5d9fe14d14f09bffad504ef70XQilla-2.3.0/docs/simple-api/classxercesc_1_1XMemory.html0000644000151400015140000004341011653571065020157 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

xercesc::XMemory Class Reference

This class makes it possible to override the C++ memory management by adding new/delete operators to this base class. More...

#include <XMemory.hpp>

Inheritance diagram for xercesc::XMemory:

List of all members.

Public Member Functions

The C++ memory management
void * operator new (size_t size)
 This method overrides operator new.
void * operator new (size_t size, MemoryManager *memMgr)
 This method defines a custom operator new, that will use the provided memory manager to perform the allocation.
void * operator new (size_t size, void *ptr)
 This method overrides placement operator new.
void operator delete (void *p)
 This method overrides operator delete.
void operator delete (void *p, MemoryManager *memMgr)
 This method provides a matching delete for the custom operator new.
void operator delete (void *p, void *ptr)
 This method provides a matching delete for the placement new.

Protected Member Functions

Constructor
 XMemory ()
 Protected default constructor.

Detailed Description

This class makes it possible to override the C++ memory management by adding new/delete operators to this base class.

This class is used in conjuction with the pluggable memory manager. It allows applications to control Xerces memory management.


Constructor & Destructor Documentation

xercesc::XMemory::XMemory ( ) [inline, protected]

Protected default constructor.


Member Function Documentation

void xercesc::XMemory::operator delete ( void *  p)

This method overrides operator delete.

Parameters:
pThe pointer to the allocated memory
void xercesc::XMemory::operator delete ( void *  p,
MemoryManager memMgr 
)

This method provides a matching delete for the custom operator new.

Parameters:
pThe pointer to the allocated memory
memMgrAn application's memory manager
void xercesc::XMemory::operator delete ( void *  p,
void *  ptr 
)

This method provides a matching delete for the placement new.

Parameters:
pThe pointer to the allocated memory
ptrThe memory location where the object had to be allocated
void* xercesc::XMemory::operator new ( size_t  size,
MemoryManager memMgr 
)

This method defines a custom operator new, that will use the provided memory manager to perform the allocation.

Parameters:
sizeThe requested memory size
memMgrAn application's memory manager
void* xercesc::XMemory::operator new ( size_t  size)

This method overrides operator new.

Parameters:
sizeThe requested memory size
void* xercesc::XMemory::operator new ( size_t  size,
void *  ptr 
)

This method overrides placement operator new.

Parameters:
sizeThe requested memory size
ptrThe memory location where the object should be allocated

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/ATGYearMonthOrDerived_8hpp__incl.map0000644000151400015140000000003511653571064021471 00000000000000 XQilla-2.3.0/docs/simple-api/ATQNameOrDerived_8hpp__dep__incl.md50000644000151400015140000000004011653571063021347 00000000000000ecfd6f757d9e1e9c13bef73c4a547b24XQilla-2.3.0/docs/simple-api/XPath2MemoryManager_8hpp__incl.md50000644000151400015140000000004011653571063021120 00000000000000f3f8ecad31771e1632edd9998dd1ac94XQilla-2.3.0/docs/simple-api/ATQNameOrDerived_8hpp__dep__incl.map0000644000151400015140000000114011653571064021442 00000000000000 XQilla-2.3.0/docs/simple-api/functions_0x6d.html0000644000151400015140000001732711653571063016373 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- m -

XQilla-2.3.0/docs/simple-api/ATGYearOrDerived_8hpp__incl.md50000644000151400015140000000004011653571063020366 0000000000000033b1ad19da0dcd50b170811545acf582XQilla-2.3.0/docs/simple-api/classATStringOrDerived__inherit__graph.png0000644000151400015140000001506611653571064023067 00000000000000‰PNG  IHDR³`ÛbKGDÿÿÿ ½§“ëIDATxœí{TW‡oLP¤`x„"¥(¡X•¢E±,j[­Tå¡@QX]–®.Xw«â®zŽÊª§Ûº‚(°R·ºÚ–W}#*Dq€Á€%’ÇìSÓ˜„ 2Üéýܙܹ÷7ó1w’ÉãR0 ˆ Ï$¢ ty‚ä '8 )/\¾|yÿþýDEA(ãíí½{÷nÅâ+ž:;;‹‹‹Ç=ânÞ¼iff¦¼†¦^);;{¼ò 4¤²]Ÿày‚ä '8@žà`4ž(JL:ÕËË«ººZK} Ã>ýôSccãцÔííí!!!vvvÆÆÆçÏŸ'$F}}=…BéV£<Ÿnܸ!—Ëutt\¿~½–ûîííígÏž­­­]_z¡»»ÛÝÝÝÈȈÃáTTTlذ!88ø‡~{Ë|>ŸÁ`Œ½íhxý¤ –––VVV++«Ã‡³X¬§OŸ2™L•¶¶¶£N9v}||N:…/¾ýöÛÿøÇ?>øàƒ1¶,—Ë»»»Çpôp}200˜>~¨ö…B! §§g¨= õõõmhhàr¹³gÏÞ»w¯rfå²zŒa÷îèÑ£L&3//¯½½ý¿ÿý/›Íö ¾rÌ•t÷¤Œ±±qmm­âQggg@€—‹ŠŠæÎ«²'CUàr¹CUÀ;-++Ã0lppPWW7kÖ¬¼¼<¼Zmm­¢¬¾yOO@(jÜÁÁA*•zïÞ=|1//ÏÁÁA‹'•Ãî““SFF†¢Â¿ÿýïñóTWW‡—Ÿ?þç?ÿyáÂ…ŠG •-Òét•=ªÂàààPðN>|¨ÀÐÐÇã©ÇÓ¸9‹Åº~ýºrµŠŠŠ <þüñãÇ€|=—Ë544TÎüèÑ#eO*1†Ý»©S§VWW+*TUUÂÓX¯OFFFááá÷ïßÇ^žg CaQ(–——«l2Tí&Mz%-›ÍnjjÂËÕÕÕв¹ŸŸß‘#G0¥Áà›o¾‘H$FFF,‹J¥òù||}CCÃôéÓñ²T*´µµ)÷«cؽ³³³«©©QT¸ÿ¾–͇DYÚ(Î' Ú››"‘_Œ‹‹ hjjª©©ñôôŒUùE•Nñrbb¢››Çãñx^^^‘‘‘Z6ò䉅…Ehhèõë×kjjöîÝ ¸pá¾IHHˆ¯¯/ŸÏçñx®®®{öìyúô)àôéÓÏž=[»v-P:ŸTbàáûúú†êýË/¿d2™ùùùàÒ¥K3gÎö ëÜÃ0L&“M›6­±±_‰DfffQQQÏŸ?WÑ0Š X,Žg³Ùt:=88XqùѸ9†aMMMl6ÛÄÄäÝwß-,,TôØÓÓfaaamm½mÛ6| Ü¿¿©©©½½}AAO‰dñâÅÆÆÆCõ.•J“’’ÞxãE‹áç·ö#¬î‰‚) ÙÙÙÚ_±"Æüý'å7Ñý=8@žày‚ä '8@žày‚ä HèéÖ->Ñô†÷s—/_>þ9ôŸoocóxòäA¢ƒŒçíí­¼æOo¾ù&ì.  L´b±úˆÎ2z¼½½ñ·‰PHv7/)éÒ±c?¾õ–ÅÍ›»ˆÎ¢OÈv}Êɹ hnî~ð è,ú„TžªªZZ[…jnî]¢ãèRyÊϯ¤Ñ¨‰D–“s[.'ÏNO2™üܹÛR© _|ú´¯¢‚í±ä7&Ðûc¡©©ÉÚÚZ±H§Óñ‚‰‰ ÀÀÀ@¥ °^ŸT`0ŠSD(âs¨“ ¸=õ÷÷ã…uëÖýå/innær¹~øáñãlj ¦w`õdgg·xñbÅX·ÿ~ww÷ßýîwsæÌ9tè±ñôd×'ìåÛw4íêÕ«Šõ&&&iiiiii+k)ìçÓo ä '8@žày‚ä '8 ¡§®®~¢#蟉õ:·¤¤¤··wŒää´­^mehHÕK¤ ÂÄò4ö¯Lš4…ÉŒº~=g`à^"M&и§—÷iΜ)£P¨«VÅꥵ   ¢Ê/L Oz!7÷.”òòúînR]¥Hå©£ãÙ­[|0(UDÇÑ'¤òTPPE¥Rr9–}›è8ú„TžrrnËdÃ0¯µ¥…<#'>ÿimm;öò½%*•TCyŸ/644LŸ>]÷¨l6»©© /WWW8p@{}õœ8øYxôèþ_È`0êêêð3@(–——ëžjt9ét÷ÊÊʨTjgg§bÍ;wÀËÁß+|½¢,•J™L&‹ÅJOO¶ü ôõõáëCBB|}}ù|>ÇsuuݳgÏP½(ÊŠ-11ÑÍÍÇãñx :Ž>!•§ââZ±X ˜4iRnî]¢ãèRyÊͽC¥R2™üÇï=þ‚èDzƒ<žD¢ÒÒRé/ÏÈ¥RÙ÷ßóˆ¤GÈãéÒ%žòË& …’›{‡À<ú…<žrr^±"“ɯ^­ëéyNTýBOOžô•—׫ß1ºp¡†õš©©©Ó§OÏÈȸråJOO¥¥¥¯¯ohhèäÉ“‡j¼­­íÓO?-++i*±Xœ‘‘qûöm@`kk»dÉ’ 6P©ª¿Žíãã£(³X¬9sælÙ²ÅÔÔT—.FmŒ-ŒÆ†a¥¥¥L&³¬¬LáÉËË+77 bccñ2`Ú´iGŽéììüûßÿniiÙÒÒòÏþ³¯¯/..N ÄÄĨ´oll<ÒT?ÿüó–-[ÌÌÌ¢££ÙlvccãéÓ§ïܹsäÈõ)a¿þúkkkk¹\þøñãÜÜܨ¨¨´´4ccãa{]¶±3šq¯±±±¥¥eÇŽõõõŠ †§L™bnnnnnŽÿcš¿„F£]»v-22ÒÑÑÑÔÔÔÍÍ-..îúõë¹\.‰ÔÛ§ÓéQQQ#MuæÌSSÓ£G¾ûî»666K–,INNîèè¸té’zeSSSsssƒáîî¾oß>kk뜜]z]¶±3O¥¥¥sæÌ™?¾­­miié°õŒŒòóóJÜÜÜð ;¶nÝ X·n ­­ÍÇǧ²²rýúõßÿ½bhòññ)..Þ´i“ŸŸ_VVðÂÂÂðððU«Vmß¾ýæÍ›x墢¢7*Ÿ:†††6l(**RnœÇSýf …âç秘˜B*•&''¯]»víÚµÉÉÉR©Tc¶]»výë_ÿÂ7‘H$«W¯Æ[Pß\.—gee………­\¹266öÁƒÑüþˆ=პ¯¯/ÀÛÛ[—q6!!¡²²2 !!ÃátvvâëñýÌËËSÔÌÎÎÞ¹s§b>nœk×®?~<:::%%¥¯¯ïâÅ‹™™™øÃþóŸÿ„††?~ÐßßßÓÓãàà ÒµƒƒCKK‹–ÆqlllÚÛÛñò¹sçAJJÊ‘#G*++ÓÓÓ5nîëë{ùòeü®ÛíÛ·§L™âáá¡qóÜÜ\‡•™™6º‰ Gìéÿûß“'O¼½½ÞÞÞMMMÚ7Y°`‡ÃùòË/ßyç~ø!$$¤¤¤Dcͨ¨(wwwCCCå•kÖ¬166þàƒ"‘(777&&ÆÃÃN§ÏŸ??""BK× E.—ki\K—.}öÙgL&sæÌ™ÑÑÑ7ï½÷D"ÑÇ%%%~ø!þ„E}󘘘%K–XXXxzzŽnØñóˆÒÒR™LöÉ'Ÿ(Ö”••͘1c¨úb±øÆï¿ÿ>>ã}XXXFFFrr2~Fª`kk«¾’Á`h´_¢¶··+wggg066677¯¯¯Ÿ?¾ò¶õõõNNNZÇimmÅ'htttøûû+zã74n>eÊ//¯Ë—/ÛÙÙݸq#55u¨Í¥R©ò‰>sæÌ¡bhadžäryYYÙÖ­[?þøc|MzzzYYYDD„úÏã`¶ÿ~[[[<+…Bñððøî»ï4§¡iÈ£Ò2‹ÅjllTìmss3^X¶lÙ™3gÜÝÝ—(±Xüí·ß*ŽšÆÆÁË ÞÂ… ñE:~ìØ±éÓ§ƒ—ÃéP›ûúú~õÕWNNN666Cm¾gÏž††{û_æ9jjjÒC;#÷¸\®P(\¾|ùÔ—,[¶¬µµµ¾¾~¨M¦NºbÅŠ¿ýíoåååàþýû'NœP>™F”aÍš5)))wî܉DUUU¸ÈM›6 …ÂíÛ·WTT´¶¶^½zuË–- CùÔWÐÛÛÛÓÓÓÕÕUSS³{÷n@ xaÉ’%©©©|>ÇŽùùùC%ñððèïïÏÈÈX¹r¥b¥úæ~~~'Nœ¸~ýzOOOEEEZZÚˆögdçSiié¼yó”_:::²Ùì²²2×gœ;vdff¦¦¦¶µµ™™™ùøø„‡‡¬¬¬Þyçÿ‹/êžaÍš52™ìرcÏž=suu‰‰IJJabbâÿéæÍ›L&S1Œ\¹rÿ' 6•ÞñññQ~Ÿ¾û{|>ÿÀuuu/^¼¨­­MKK[µjÑ¡^;ðý.ö† Äbñ®]»z{{­­­?úè£Õ«W굟'*•ºyóæÍ›7d\oÜûm‚<ÁòÈ Op€<ÁêóòÌÌÌ .¡…W<•¡ÂÌ™3ß|óMÅ" ç"%èúÈ Op€<ÁÁÿRm~¶§=@IEND®B`‚XQilla-2.3.0/docs/simple-api/classItem.html0000644000151400015140000007262011653571064015444 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

#include <Item.hpp>

Inheritance diagram for Item:

List of all members.

Public Types

typedef RefCountPointer< const
Item
Ptr

Public Member Functions

virtual bool isNode () const =0
virtual bool isAtomicValue () const =0
virtual bool isFunction () const =0
virtual const XMLCh * asString (const DynamicContext *context) const =0
virtual const XMLCh * getTypeURI () const =0
virtual const XMLCh * getTypeName () const =0
virtual void generateEvents (EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const =0
 Generate events for this Item to the given EventHandler.
virtual void * getInterface (const XMLCh *name) const =0
 Method for returning arbitrary interfaces from the implementations.
virtual void typeToBuffer (DynamicContext *context, xercesc::XMLBuffer &buffer) const =0
 Debug method to output the type of the item in SequenceType notation.

Static Public Attributes

static const XMLCh gXQilla []
 The "XQilla" item interface.

Protected Member Functions

 Item ()

Member Typedef Documentation


Constructor & Destructor Documentation

Item::Item ( ) [inline, protected]

Member Function Documentation

virtual void Item::generateEvents ( EventHandler events,
const DynamicContext context,
bool  preserveNS = true,
bool  preserveType = true 
) const [pure virtual]

Generate events for this Item to the given EventHandler.

Implemented in AnyAtomicType.

virtual void* Item::getInterface ( const XMLCh *  name) const [pure virtual]

Method for returning arbitrary interfaces from the implementations.

virtual bool Item::isAtomicValue ( ) const [pure virtual]

Implemented in AnyAtomicType, FunctionRef, and Node.

virtual bool Item::isFunction ( ) const [pure virtual]

Implemented in AnyAtomicType, FunctionRef, and Node.

virtual bool Item::isNode ( ) const [pure virtual]

Implemented in AnyAtomicType, FunctionRef, and Node.

virtual void Item::typeToBuffer ( DynamicContext context,
xercesc::XMLBuffer &  buffer 
) const [pure virtual]

Debug method to output the type of the item in SequenceType notation.

Implemented in AnyAtomicType, and Node.


Member Data Documentation

const XMLCh Item::gXQilla[] [static]

The "XQilla" item interface.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/inherit_graph_3.png0000644000151400015140000000320011653571064016371 00000000000000‰PNG  IHDR(kCoGbKGDÿÿÿ ½§“5IDATxœí›oHS_ÇÏu[,œ¹´hF±ÉÀ²ˆU2ßTa±DW© V#­ÀôE¾¨^½ „Ù6BòE„­? Ù²,È?½°9W¶u]‹Ô­eyóž^¼œvï®ëšúûÝÎçÕ=çyÎsžç~½ÏÙ?)! ÈŽ”ùN€0+]å ÑUž]剸\®ÆÆÆùJ…0ŒFã… ¸áoº†B¡G™L¦9ÏŠ0#ž={–žžŽÏ(ùN‡c®ò!ü87CÎWyBt•'DWyBt•'DWy"]׋/RuéÒ¥™'Aa¬X±âðáÃápXÄ``€¢¨™ï+‚Íf£„زe‹N§‹Åbœ§Ïç[°`Õj+$--m÷îÝ~¿Ÿ_#Çìå/QW¡Íf[¾|¹Ýn÷ÔjµÓôx<4MÛ·oG"‘‚‚‚ÑÑQi¹%¹£8{÷î¥iš¦iÇ §¸wïÃ0W®\á<Ï;·yóæ²²2¼?º\.–e<Èy"Î “b ‘`twwSåt:ýýý"ž^¯wÚ˜¯×Ë Y–5õõõÒb&³còð£Y­VµZýîÝ;¡ÛíV*•½½½ÈWH ŒñM“Éd2™ð‰Ï«Íf+**Ú¶m[nn.÷Èâí‘»6 €%K– ùÑÑÑŠŠ ­V«ÓéΜ9óýûw~pŠ¢Ž;vÿþ}4d¦¦¦&+++33³¦¦†aÜ™oÛQ|9"ûö-ÉÚKKK·nÝZ[[ !´X,ÕÕÕk×®ôT(€Ÿ?&ùÒGŠ®B›ÍVZZ Ø¿¿x+îìì £á‰'À‹/ÜÙÙ©T*?þ !|õê5"¼eq×øäÄÄ„B¡èëëCÃÖÖÖU«VA¡ÕÕÕ¥ÑhÐunn.MÓèÚét®[·)nt€Ž777oÚ´iýúõ·nÝŠF£‰ŠMÔÕ‘œ---ø$~cU*UQQW×´7 t:Ýž={ÚÛÛ'''%†ÃïÃRt=uêT\~uuuð÷[ðöí[¾®>|Œ£aOOZ­†Bº¶´´lذ]«Õj|¯´´4<¦¸UÐÁétfff–——?þœeYñbéŠ Œ[Î/$Ÿ‰‰ ‡ÃQXX˜““3444­ÿ_8_'''ív{SSSt ‹Åb·ÛáÔŸ$:N‚Á mVV–B¡DCŸÏ·lÙ2¾„ðæÍ›»víBC­VËÝ‘‘‘Ôf9Ä­‚‹/^³fÇãq»Ý’_u£W³ô^% ½yó&,\¸PB„?Öµ££ãÓ§Of³9uв²2¯×ûúõkFhnnŽD"×®]ÃW¡³D¥R•””TWWûýþ¾¾¾ºº:³ÙŒÂáðððp0t¹\ÅÅÅ~¿ßb± Ó¾}ûΟ?ÿþýûžžž;w^¿~œÈÊ^|‡üüü§OŸ¶¶¶ö÷÷çääTUU¡Ód¶A5âÄ9°,ûðáÃââbƒÁ!t»ÝwîÜ‘øž x“éÃGݱc>ò¬^¯?{ö,„°±±Q£Ñèõú¶¶6Ša˜ÂÂÂÔÔTäüåË—C‡edd,]ºôôéÓ¨'ãùdgg›ÍæP(ÄÅD"•••éééGމÅbxoä[ãvä;àÉŒŒ455éõzô¾…O¢>,8Dû°øÍ‡Þ½{×`0X­Ö?~I¿Sø–‡£¤¤$Q2†eY–e•Jo£ç†aT*•„…èûWü‹óy®ä?BJJJJÊüT.MTAæ¿Âl@t•'DWyBt•'DWyBt•'DWyBt•'ŸKlß¾}îó Ì„ÞÞ^£ÑˆÏü¦kvv6ùçœÿ#F£ýJ„ƒú? þ ç« XQilla-2.3.0/docs/simple-api/InputParser_8hpp__dep__incl.png0000644000151400015140000000701011653571064020675 00000000000000‰PNG  IHDR­u³ öVbKGDÿÿÿ ½§“ ½IDATxœí{PTåÇŸ•eM.rÝ;Æ%„ÌûƒœÌ E£Ì€0 ð2É-ºÐŒióSpÂ(µ¨‘Zú ATŠ‹·Lk5Âc°Á vYör~¼Óv:Œ]¶Ïç¯wŸsÎó~ß÷ýîûž³gw¢(@Ìžy\ @æè}€ÐßIÏ;—››kŠÌÈÊ•+wïÞmô´&ñÁÀÀ@SSÓsÏ=gŠäæLGG‡ƒƒƒ)2›Ä„ììlÓ%7OöîÝk¢Ìx~€ ú@ ô`Òë…i +++sww7zZ}ÙÊÊjéÒ¥ééé®®®Æ­Å@í¦h”©ù/Ìýýý‘‘‘ôHAAÁÑ£G%ÉçŸNQÔ¾}û¸Òö°ð_ðN§“Ëåôˆ½½½£££“““ŸŸ_FFFGG‡B¡àJÞCÁ\ñAXXXSSÓÖ­[_~ù劊 èëë ûá‡6oÞ}èÐ!µZM‚ä}ùÍ7߀W^y…5ó¼yó@«ÕÀ¥K—’““#""bbbŽ9¢O"•JcccÛÛÛ/^¼˜˜˜¸víÚøøø††’A£ÑEGGGGGi4ÆQŒüñÇ„„„õë×———n#h‚~)sÅpáÂ…/¾ø"55µ¸¸øÞ½{$XSS“——÷á‡^¾|™ŒÜd  ººZW*• …âÖ­[Ÿ}öY@@€­­­B¡Ø³g¿¿YYYZZšX,!ûWUUíܹÓÓÓ3'''**ª¢¢bóæÍû÷ï‰DÒßß_\\üÉ'ŸH¥ÒÒÒRúQþþþ =—/_‹ÅYYY%%%ú‰Šµ!3i݃aù **ÊÆÆæùçŸ}÷¥¥¥yxx&%%566Î0URRÒ‹/¾¸nݺ­[·ÊårrcF >|8==ÝÉÉI$ÀØØÙ?%%%$$Ä‚¢(¥R)"""êêêæÏŸõõõï¾û®H$òññIMMmmm¥õÈ#0jµ²²Z±bè ÍÚ×:SÀåõgggàóÿ!ÉÃü¼¼é› |£ŽõŒÏçËd²ƒ*•JÆ›ØËË lmmóóó%Iiiéã? ·oߎ‰‰ÑïlmmM?j2NNNÀãñ¦mˆÖ=`æGÉd>>>ðûï¿“þ­Vkaa144t_ùU*UNNNNNÎòåËÕju}}½~1ŸJ¥Òét999¦¹¹ùý÷߯©©±µµµ³³ËÏÏ'Æýã?èGͦ!¬AN˜Cë+}}}ׯ_/))Y³f 444( ú (•JéÔjµF£áóùdg\Dðx¼ÌÌÌóçÏ©Õj>ŸOÖ…gŸ}V, ôôôdeeÕÔÔ02Ÿ>¾zõê„„@˜˜XXXXVVöÖ[o}ÿý÷àââòä“OÆÄÄœ:uÊ@*›´´´ÜÜÜ ÄÇǯ^½:++«  @¿ƒ@ صkWqqñ;wÜÜܲ³³$&&$''óx¼•+W¦¦¦2¦¢ƒë׋™4„¬Œàl:j–ðLñ½õªªªØØØ3gÎÌ&I__ߦM›f™d.ÀÚ׺½{÷ …ªª*£ ˜ûëò`˜»>°¶¶^¿~=×*ŒkCæZëæ®ìíí·oßε #ÀÚ¹Öº¹ëäA‚>@Ð}€ ú®_¿Ëµî1áçʦKnDƒ®óùã\ ™žžžžððpSd6‰<==_}õUSd6:J%ÿÖ-Û <=ïq­ez|||ž~úiSd6Éý…‡ˆêóó¼½.]ú×Z¸ÄÜϾùæ ܼy·³ó×Z¸Ä¬}põêo2Ù0XZZ=ú×r¸Ä¬}PS#åó-@­Ö~óÍÎ|—HóõV«“H®h4Zòrpð^kk·’8Ä|}péÒáá¿¿—fiiq옔C=Üb¾>¨®–òù7_­ÖÖÖJÕj-‡’8ÄL}01¡9~üšF££årÕùó]\Iâ3õÁéÓJ¥ŠäóyÕÕfzÕ`¦>¨®þ‰üF£;uêg…b‚IÜbŽ>U54thµºÉ›ÔjmSSǃ—Ä9æèƒÆÆŽ‰ ÍT[ÍóªÁ}PS3åHëtÔ™3rù4?úïaŽ÷™d²aú¢°|y¸¸ØÍŸ?×ée\Ì«µæ_Ó …¶ÞÞ\þÌ”sÌq]@&ƒ>@Ð}€ ú@ ô€>@è}€Ðú! ôB@ è„€>@Ð}€ ú@ ô€>@è}€Ðú! ôB@ ŒÿÁøê«¯¸ÒÁ-MMM·o·r­âANž6@ÑàTgXZŠæÍ›Ïµ ¨¬¬Ô=óq*++7nÜȉ,äAÂãñè/ñü@ ô€>@è}€îÛ<ïÆ¦2CnܸÁ¸æ™ <‹-Ú²eËàà Ñk1.²«<ôôô8;;7'#­½½ý{ï½÷/’\¼x±¿¿_&“•––ÊåòeË–ŒŒUæCŒ‘} ÓéîÞ5þc³éi?ú裑D(º¸¸¸»»‡……;vÌÇÇ'??ߨ2bfåW^^èèè¸ÿ~ Ovqq!;¨ÕêÌÌÌG}T$effªÕj2ß677{yy]¸páĉ!!!VVV®®®dt5Mvv¶———P(ܲe yËÒÓêg쨨¨íÛ·“ŠT*•ƒƒÃÉ“'Y+eUþÆoý R^^îëë+ ÓÒÒ }±Ð—)Š*** Z¸páªU«Nœ8ÁãñXƒ3é†Î††???‡¼¼<}¥µµµ"‘(==]¥R±ï{,÷èŸ9³ÝÝÝúò† †‡‡Åb1ܽ{·»»›žóã?މ‰ùí·ßÚÚÚ–-[¶sçN²Ã /¼púôéþþ~@°mÛ6™LVVVwîÜ9pàÀO<ÑÖÖÖÞÞš‘‘AQ=­¾\QQáåå¥Óé(Šª­­ussS«Õ¬•2d®\¹boooXçªU«ºººZZZüüüôA† ±Xìîîþí·ß666úùùkpÚetõK/½$—Ë= CCCdçµk×êUåää° â䱞­Μ9CQÔÄĉ3|°xñâþþ~Rnll &;´µµQ¥R©:;;GGGµZí¹sçH†€€€êêjrÈ/¿üBʬ066fmmÝÚÚJQÔk¯½¶k×®©*¥¦óaEUVV>öØc¬2–,YR^^®O{äÈ` Τ"FWŸ={–¢(­VKï^º*???Ö ëØ1’ºÏt¿¸¹¹€¥¥%ëÖÞÞ^WWWýK;;;RX¼x1‚®®®äääÑÑѲéæÍ›þþþ¤8UÕVVV‘‘‘‰$((¨®®îêÕ«†+eÐÝÝíëëkø½2~ôé¿nÏþúë¯K–,Ñǃ‚‚¦ NÛ!“!ÝËx¤]•L&3œ9³=OœüÔ3:ÎÎÎúwáððpKK ‰ß(•Ê7fffJ¥ÒÂÂB²ÉÍÍ­··—”¯]»¶oß>ùãââ$ÉñãÇŸzê)}GLU)Š¢¾üòËuëÖ>„¼Õ ««ËÛÛ›”5 ôõõ‘—ÞÞÞ?Ú«³³sªà´2ÖkWº*b”©‚÷¹bªù„¾.0ÊDͽ{÷H0==}Æ ½½½?ÿüshhèÛo¿MŸZ‡‡‡y<^}}ýØØXVVH¥Òììì¥K—¶·····?óÌ3ÉÉÉÔ_“0IKÏ@Nýýý¿þúk½ÂÉ•yúëÆ³gÏFFFzxxŒŒŒÖ¹fÍšîîîÖÖVÿ¼¼<ò‘ÃáÇÿüóÏèèh"ãСCß}÷ÝÐÐPsss@@Çc NÛ!E‰Åb½ª©º7,,L¯jÏž=¬AÃ8y¬ìµZ½bÅ ”Ë寿þºƒƒƒ““SJJÊØØ£ÙŸ~ú©£££§§gaaa\\œH$ÏÈÈpss³³³‹‹‹¦(Šž–‘!%%ÅÆÆ†~†5¹RêŸ_±ñôôLHH0p©¥¢¢bÑ¢E"‘hÇŽ*•Š¢¨ÜÜ\{{{__ßÚÚZ"C«ÕæççûúúÚÙÙEDDÔÖÖ …BÖàL:d&o³’’oooggçwÞyG©T² âä±¾o êêê®]»¦)‘H‚ƒƒYƒ³¯‹aÁiaŒ5Þ_˜-mmm›6m’J¥ …¢¥¥e÷îÝIII¬A®•Ÿ×f\²²² ETTÔàà Ï¶mÛRSS€58K.\89kð¾10W ÿa×d2è}€Ðú!0¯›››ñ[:æãZ1è×<~ðü! ôB@ ÿÉ2+Õ/sÜ"IEND®B`‚XQilla-2.3.0/docs/simple-api/ATAnyURIOrDerived_8hpp__incl.map0000644000151400015140000000003511653571064020563 00000000000000 XQilla-2.3.0/docs/simple-api/classBaseInteractiveDebugger.html0000644000151400015140000010746611653571064021272 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

#include <InteractiveDebugger.hpp>

Inheritance diagram for BaseInteractiveDebugger:

List of all members.

Classes

struct  BreakPoint
struct  Continue
struct  Quit
struct  Run

Public Member Functions

virtual ~BaseInteractiveDebugger ()
unsigned int setBreakPoint (const std::string &file, unsigned int line, unsigned int column, bool temporary)
bool disableBreakPoint (unsigned int number)
bool enableBreakPoint (unsigned int number)
void listBreakPoints () const
void setStep ()
void setNext ()
bool queryStarted () const
virtual void run ()=0
virtual bool changeFrame (unsigned int number)=0
virtual unsigned int getStackSize () const =0
virtual void stackTrace () const =0
virtual bool outputCurrentFrame (unsigned int context=0) const =0
virtual void outputCurrentFrameQueryPlan () const =0
virtual bool queryCurrentFrame (const char *queryString) const =0
virtual bool currentFrameLocation (std::string &file, unsigned int &line, unsigned int &column) const =0
virtual void setDoLazyEvaluation (bool lazy)=0
virtual void setDoFocusOptimizationsn (bool opt)=0
virtual void setDoProjection (bool opt)=0

Static Public Member Functions

static void outputLocation (const XMLCh *file, unsigned int line, unsigned int column, unsigned int context=0)
static void outputLocationFromString (const XMLCh *query, unsigned int line, unsigned int column, unsigned int context=0)
static std::string regexFind (const char *regex, const std::string &str, int groupNo=1)

Protected Member Functions

 BaseInteractiveDebugger ()
DebugCommandfindCommand (std::string &command) const
void checkBreak (bool entering)
void breakForError (const char *message)
void interrupted ()
void readCommand ()

Protected Attributes

std::vector< DebugCommand * > commands_
DebugCommandprevcmd_
bool queryStarted_
std::vector< BreakPointbreaks_
bool step_
unsigned int next_

Constructor & Destructor Documentation

virtual BaseInteractiveDebugger::~BaseInteractiveDebugger ( ) [virtual]
BaseInteractiveDebugger::BaseInteractiveDebugger ( ) [protected]

Member Function Documentation

void BaseInteractiveDebugger::breakForError ( const char *  message) [protected]
virtual bool BaseInteractiveDebugger::changeFrame ( unsigned int  number) [pure virtual]
void BaseInteractiveDebugger::checkBreak ( bool  entering) [protected]
virtual bool BaseInteractiveDebugger::currentFrameLocation ( std::string &  file,
unsigned int &  line,
unsigned int &  column 
) const [pure virtual]
bool BaseInteractiveDebugger::disableBreakPoint ( unsigned int  number)
bool BaseInteractiveDebugger::enableBreakPoint ( unsigned int  number)
DebugCommand* BaseInteractiveDebugger::findCommand ( std::string &  command) const [protected]
virtual unsigned int BaseInteractiveDebugger::getStackSize ( ) const [pure virtual]
void BaseInteractiveDebugger::interrupted ( ) [protected]
void BaseInteractiveDebugger::listBreakPoints ( ) const
virtual bool BaseInteractiveDebugger::outputCurrentFrame ( unsigned int  context = 0) const [pure virtual]
virtual void BaseInteractiveDebugger::outputCurrentFrameQueryPlan ( ) const [pure virtual]
static void BaseInteractiveDebugger::outputLocation ( const XMLCh *  file,
unsigned int  line,
unsigned int  column,
unsigned int  context = 0 
) [static]
static void BaseInteractiveDebugger::outputLocationFromString ( const XMLCh *  query,
unsigned int  line,
unsigned int  column,
unsigned int  context = 0 
) [static]
virtual bool BaseInteractiveDebugger::queryCurrentFrame ( const char *  queryString) const [pure virtual]
bool BaseInteractiveDebugger::queryStarted ( ) const [inline]
void BaseInteractiveDebugger::readCommand ( ) [protected]
static std::string BaseInteractiveDebugger::regexFind ( const char *  regex,
const std::string &  str,
int  groupNo = 1 
) [static]
virtual void BaseInteractiveDebugger::run ( ) [pure virtual]
unsigned int BaseInteractiveDebugger::setBreakPoint ( const std::string &  file,
unsigned int  line,
unsigned int  column,
bool  temporary 
)
virtual void BaseInteractiveDebugger::setDoFocusOptimizationsn ( bool  opt) [pure virtual]
virtual void BaseInteractiveDebugger::setDoLazyEvaluation ( bool  lazy) [pure virtual]
virtual void BaseInteractiveDebugger::setDoProjection ( bool  opt) [pure virtual]
void BaseInteractiveDebugger::setNext ( )
void BaseInteractiveDebugger::setStep ( )
virtual void BaseInteractiveDebugger::stackTrace ( ) const [pure virtual]

Member Data Documentation

std::vector<BreakPoint> BaseInteractiveDebugger::breaks_ [protected]
unsigned int BaseInteractiveDebugger::next_ [protected]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/structBoolResult.html0000644000151400015140000002035711653571063017056 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

BoolResult Struct Reference

#include <ATBooleanOrDerived.hpp>

List of all members.

Public Member Functions

 BoolResult (bool b)
 operator bool () const
bool operator== (BoolResult o) const
bool operator!= (BoolResult o) const

Static Public Attributes

static const BoolResult True
static const BoolResult False
static const BoolResult Null

Constructor & Destructor Documentation

BoolResult::BoolResult ( bool  b) [inline]

Member Function Documentation

BoolResult::operator bool ( ) const [inline]
bool BoolResult::operator!= ( BoolResult  o) const [inline]
bool BoolResult::operator== ( BoolResult  o) const [inline]

Member Data Documentation

const BoolResult BoolResult::False [static]
const BoolResult BoolResult::Null [static]
const BoolResult BoolResult::True [static]

The documentation for this struct was generated from the following file:
XQilla-2.3.0/docs/simple-api/inherit_graph_38.md50000644000151400015140000000004011653571063016360 00000000000000beb02a71d2c17bf8597759c3b1c13dd4XQilla-2.3.0/docs/simple-api/classDebugListener__inherit__graph.map0000644000151400015140000000023411653571064022304 00000000000000 XQilla-2.3.0/docs/simple-api/FunctionRef_8hpp__incl.png0000644000151400015140000002535311653571064017666 00000000000000‰PNG  IHDR­uëÌO—bKGDÿÿÿ ½§“ IDATxœíÝi\×ÚðHØ÷UeWeQA½.hJ-q-¢¶¢q׊âRlk[¤j­è­K_Å*ŒÔµâ®ˆ"»D@v‚ $$™÷ÃØÜ˜„ˆ=Ïÿç‡8Lfž™3gæÉœ9g†!¨% y¹<P_ê ò@}åP [·n½}û¶¼£P}›7owey…ÂÂÂüü|OOOy¢ÊnÞ¼ùÕW_É; €’<Ȉ§§ç–-[ä…*»yó¦¼C(x>P_ê ò@}A¨/Èõý€™8q¢ðĬ¬,I-¿¶¶vΜ9º@þ¨´´´ÜÜÜV­ZåêêÚÝü†ýôÓOwïÞ½té’ð¢RSSíìì>(È€bÙ·oŸXWW·xñ⌌ „Addd_¢êèèHMMýî»ïŽ;F DÎÜÒÒrýúõ´´´¾„ ²yP,&&&fff\ —Ë¥R©øgccãE‹õ%*33³Å‹GDD¼yóÆÄÄDäÌL&!deeÕÛ@vàù èjkkywæù?Oœ8ñúõë_|ñÅgŸ}vêÔ)„‡Ã9zôè¬Y³¦L™’˜˜ØÞÞŽZ²d BhêÔ©_oooß¶m[xxøŒ3RRRX,–Èe ÓÔÔ$‰úúúøÙlö""""""8Àf³ù×(ìñãÇQQQaaa'Nœà…tïÞ½¹sçFDDìÝ»·««KäD‰ìLyP, £“‡Ã3óÝ»w÷ïßsðàA–žž~ûöíÄÄÄ]»vUWW§¦¦"„’““BgÏžøîîÝ»›šš8”””““sòäI‘ˈª¥¥åðáÃAAA$ ÿSzzz]]ÝÁƒwîÜ™››{ôèÑîÖˆËÎÎþí·ßÖ­[wèÐ!ÞŠóçÏ'&&þôÓOÙÙÙüñ‡˜‰ YŲpáÂÉ|=z$fæ)S¦|üñÇ!*•š™™íìììää´~ýz1¯3`³Ù7nÜX¾|¹³³óüùó¯]»&r™QMŸ>ýêÕ«³fÍâ-êÒ¥K+W®´²²rvvމ‰0BhÖ¬YzzzcÇŽEñòŒØØX{{{… ò"9$ žŠEøqúÚÚZÞg Ãøÿdaa"߯ öööøg‡îÖB¡P¸\®­­-þ_;;»¦¦&‘ˈŠÉd9räçŸÞ¿?þ§úúúiÓ¦ñæäµtÇÜÜ!$ðŒ!/ìð"9$ îå€7477óO¸šš››×××ãŸ_¼x· ˆdjjª¡¡QWW‡ÿ÷õë×øå_x™´µµCBB^¾|ÉËHŒSSS³²²²²²Èd2Þ( †Èå×ÔÔફ«ñD¡»‰ YEg``€ºzõjGGGwî¸àààC‡UVVVVVîÞ½»¡¡÷§ÎÎNþ9‰Dâĉ÷ìÙSWWWYYyøðáÀÀÀÆ£¯¯ßÑÑÁ[à¸qã~ûí·†††ŠŠŠuëÖ?^`þÌÌL:.~™ûöí«­­ýçŸ:$f"H´ Egll¼`Á‚äääÔÔÔ¥K—Þ¹s§»9£¢¢ F\\ƒÁ5jTLL B¨_¿~C‡6mÚ_ýÅ?óÊ•+÷íÛ·xñb‰ôÑGEEEõ0KKK===*•ª§§‡Z°`Á¾}û¾úê+0~üø˜˜›;vìðññß^øõ×_3ŒI“&EEEá­{|‚@ƒ+Ò0sæÌ¦¦¦-[¶È;…#rˆÃ^{˜––6sæL‰PqÐ.¨/È'}}ý°°°žLi€<y211Y³fMO&€4@¨/Èõy ¾ Ôä€ú‚<P_0®0‘üüüµk×ödNG—É4ÑÓ«ëûJÙl"‘Ñ÷å|(GWS³óýóI‰d}äÈó¶¶[#F8jO"iÊ8€2‚<ȨQ£Þ;Og'±¹Y·¹Y—N'‘HÜAƒôI$n¯×Èbi––šttüü™žýævQ‘ù€4{{šØ—J˜……;@Ú±ãR{;SWWË×w€¿¿³ŸŸÓˆކ†:²‹ Tàý@ž0 ËÉ©$“ó¯^-ª®nut´˜6mxh¨Ï Aýú²Ø ž®[÷§YJÊÜû´¨Þ9}:gãÆ3nnÖÉÉs-d¼öªª–G*rr*=ª,+kÀ0ÌÁÁÜÏÏÉË«¿¿¿ÓСöâß­ P+9à]þ/_.¬­¥8;[FD ëûå!ÔÑÁŠ?žþxÁ‚ñ›7‡ikËíŽWyycl챪ª–ÄÄéS§—WMM´¼¼WU>zT‘Ÿ_Íb± u||øû;ùû;ûû;Ëqä@v¸\ìñãJ29ÿÒ¥‚ׯÛ\]­ÂÃ}%rùÇ•”¼Ž=ÖÜܾs笡Yf_°XìíÛ/§¤Ü˜:uxbât}}mùÆÓÙÉ*,¬ÁïääT¶µuHš¶~~NþþNcǺ™šŠ{92@%A¤ŽÍæfe=#“ónÜxÖÚJws³þì3 ^þB†>|çÇÉÆ9ìÝ;ÇÖÖDRKî»Û·Ÿ¯\ù‡¾¾vJʼ¡CíåÎ[\.VVÖ“S‰· TUµ „ðæü© –@‘A¤¥«‹sóæ?drÞß?£Pè~~NÁÁžž¿ÀP(ô5kNݸñì›o>‹Ž§¡¡pßÍÍí«VýqçN銫W¬€64¼)(¨Á›òò^uuq¬­ðç üüœ|} ÷ª ò a¼Ëÿõë%mm~~Naa>ÁÁž˜Kcu·n=_±â„žžVrò<_ßÒX…Dàw,¶n½0j”Ëž=QÖÖFòލ[t:³¸¸o>ÈÎ.§RzzZžžvþþÎþþN#G:éÊ;F€Ä@$ƒwù¿v­„Jí1Â1,Ìçã‡ôïo&½5~ÿý…#Gû&%ÍPŠ®qùùÕK–§Ñ:wíš=i’‡¼Ãy?6›[^Þˆ7“'{Éæ½³gŸlØîà`žœ<ÏÕÕJk”829/.îOGG‹ää¹ÎΖò§7h4F^Þ«G*ð§ ˜L¶¶¯¯Þ#ÑÏÏIG‡$ïïyøííÌK— .^Ì¿s§”ÍæLœèä9i’‡ŒžÏ§Ó™6¤Ÿ=û$6ö£¸¸--%îû^]ݺtijQQÍÆ¡ Ž—w8}ÒÕÅyöì5~ŸàÞ½²ÖV:‘¨1x°~Ÿ`Ì733è‘€‚‚<¼Ƹ|¹¿üs8Ü ÜCC½'M,ã“{QQmlì1­sÏž¨ñãÉrÕRÂfswᄎk×ÕÉ“½¶oŸil¬'ïˆ$ƒ@ÃÒÒzônÄ­a@Cä [T*ãʕ‹óoß~Îåbøå?0p°ìG›ár±]»®ìÙs}ìX·Ý»£,, d€Tݽ[¶|ù Icÿþ¹~~NòGÂiùù¯ø{$ZZâúù9ùø Pê›:¨È€ ––ösçr¯]+ÎήÀ°·—ÿ  OùüZmh ®XqâáÃòo¾ùlÁ‚q*ùS²¥¥}ÍšSYYÏV® Zµ*XSS5_ÞÑÁ**ªù·Gb•Ú©««5dÈÛ‰þþN*sG%yx«©‰–‘ñ”LÎËÍ­ÒÔÔêýñÇCäÛYüÆg«Výa` “’2ÏÛ»¿#‘6|€~ ûù9îÝ;§_?cyG$]÷Å‹·=³³+ª«[ù{$Žé,¥' Pw´ Þ^þµµ‰“'{……ùŒ릫«%ßÀxÃàƒóÈyp~Ùxþ¼>6öXc#u׮Ƞ Oy‡#;ü=‹Šj¸\è‘€Œ@ ¦ÞÉùdrÞ“'/uuµ>ùdhX˜Ï¸q¤¯WeeÓ’%Ç++›·oŸæ#ïpdŠÁèúñÇ‹GŽÜ‰ŠõÝwSäžÉ^{;óéÓ*¼GbNN%ƒÑ¥¯¯=lôH@* P/õõo.^|{ù×ÓÓ Q¬Ë?îôéœM›Î d“œsæñµk%EE5ÚÁÁCÂÂ|Ƥhïž§R;ãâþÌÌÌ_½:xåÊ`"Q5—ë¡ÚZʲe©ùùÕ*0À€¤ð÷H,+kÀ0 z$ÐG¨²Êʦ³gŸÉù¥¥õææŸ|24(È3 `böÔzü¸réÒT‹³wïì±cÊ;…€0ðë¯×‚ƒ=wîü\^]6SS-/ïmÄüüj‹md¤ãí=o>ð÷wV´4Åy€ ª«kËÌ,¸x1ÿñãJ==­I“‡†zô‘‡Â¶4ãÃìÞ}mÂ÷]»"ÍÍáNï;<(_¶,•@@ûöÍ5ÊEÞá(¢ÎNVaáÛ‰99•mm$’¦‡‡-Þ|0v¬›ì½@Y@ :øÛþ ´ƒ‚†„†zO˜à®à¿ŠÞ,_~âÑ£ÊÍ›ÃTux€¾£RëÖý™™™¿j•*0 ü=sr*«ªZлÔOÞ1 @ PzMçν½ùoiiøÙg¾aaÞÇ;*Å¥âÚµâÕ«OZY%'ÏuwWß§ázèôéœøøôÁƒmöïŸ Ýë{¨¡áMAA ÿ€†ÖÖF^^ýñ |}”ë•HäÊJ©/ÿ!£+!á܉££ÇmÚªPYYYCl챚šÖ¤¤™áá¾òGÉÐéÌââÚ4,§RúúÚƒÛâŽé,ßQ³ È” ÿ£ÊxùÇ={V·dɱúzêŽ3?ýÔ[Þá(&“ýÃä#GîL›6|Û¶zz ú؇‚c³¹ååo›<(¯­¥ðh8z´«½½©¼c@ Pü— ƒððaÊxùÇ:tû§Ÿ.zyõß¿Žœj{éÊ•¢5kN™›ë§¤Ìóô´“w8J@àƒ º€<@¡©Òå!ÔÖÖ±vmÚ•+E«VÁð}WW×¶lYjnnÕ¦Mðˆ¥$ÑhŒ¼¼Wø€†U0™lCCü‰0 !P=("|Ø•¹üã²³+–-Kår±½{£þóWy‡£"ð·mÝzaâD]»>‡Þq×ÕÅyöì5~ŸàîÝ2 …Î? á˜1nff°Ïrƒ<@¨äå!ÄápýõêîÝ×&Oöúùç™ð(–Ä=}újéÒãt:s÷îÙ&¸Ë;UÆ? aii=z·G" h”äòÇù777˜2EE.ÿ8üÞu^^õ¶mÓgÌð“w8*‹FcÄÇŸ>þitô¸„„Ï /œ 46Òòó_ñ÷H´´4Ä› G"P"Èj_þq.<]·îO;;³””¹Âà-RwútÎÆgÜܬ““ç::ZÈ;5ÒÑÁ**ªù·Gb•Ú©§§åéi‡÷Hô÷w26†1¡‚‚<@ÖÔáòêìd­_:=ýñ‚ã7oSð1 UIyycl챪ª–ÄÄéS§—w8êˆ@ÃììŠêêVþ‰#G:ÃP@¡@ #ü—33ýˆˆá*yùÇ•”¼Ž=ÖÜܾs笡òGí°XìíÛ/§¤Ü˜:uxbât}}myG¤Öø{$Õp¹Ð#(Ȥ«µ•ž™™O&ç?xðBK‹8i’GX˜O`à`…}åOá¯ÿø#Ù××aß¾9¶¶&òŽH}ݾý|åÊ?ôõµSRæ j/ïpBµ·3Ÿ>­Â{$æäT2]Ú¾¾Ð#ÈäRñæMÇ¥K…OïÝ+#5‡†úVí¡ß(úš5§nÜxöÍ7ŸEGƒ_9r×ÜܾjÕwî”®X¸zõÇP" …Íæ–”Ôâ Áýû/ZZÚù{$Žíja/Þ²y€$55Ñ22žâoüÓÓÓ æ0HKKõ[ÇoÝz¾bÅ ==­ýûçæ ïpÀ[¼FrÙ³'ÊÚÚHÞÑø{$–•5`=l@ --íçÎå’Éy¹¹U::¤O>æ3~ü {8ŽÉd×Ô´º¸X Lïêâ|ÿý…#Gû&%Í04Ô‘Kx@Œüüê%KŽÓh»vÍž4ÉCx†’’׃ÛÊ>0 RS-/ïmÄüüj‹md¤ãíýv@Ñ#Õá§ÈzJe\¸ðôôéœÜÜ*mmâäÉ^aa>ãÆ Tվ͛ÏݸQrýzëÆË—ÍK—þ¼>1†PhííÌÓÏœy"<À@vvÅŒÉþ;j”‹#"uv² ßöHÌÉ©lkë ‘4=}z üþSüÖ`Ø hÈb±]]ã9.‘¨¹n]HLÌD"Q‡@Us*ž¼|Ù¼páÑãÇ¿²±÷û†Íæfe=#“ó®_/yó¦¿üOžì¥æ¿Š8nxøÞ‚‚j6›#üW¥¥-;ÖMö¾Û°á̉º)YÂ?DÌŸ?NöQi£Ñyy¯ð =ª`2Ù††:ø;ýýýýz;ggWDDìÅ?kjllLý5ò?ÿq•Gì@ZT9¸~½$6öÎüöÛ)‹ÏÀápoÜxF&çýý÷3 …îççæ2ôƒnš©°Ã‡o'$œïî!VV†·nūÓ’*ææÍ¢¢þ+¦îëènÜXo,Tm]]œgÏ^ã÷ îÞ-£PèüŽãff¦¿oßß?ÿ|‰—/jh0 EFŽÜ²%º–¨ Õ̸\l×®+¿ür!BhÈ»+W¾æýðœœJ29?33¿¾þÍСö3fø{ÂKÀø••5mg±Dü^DiiY,¶±±îwßEÌœ Ã( Ö-K½p!ËňD®.EL$jxzÚ_¼¸R%߃„±Ù\ü½Éø¿†*žtv²ÊËùŸ$E‰šFF:II3>ýV*˜45ѾúêèãÇU\îÿ>ïßßäà`Ž_þ/]*xýºÍÕÕ*<Ü74ÔzÜ c2Ù“&áÇÿ»Hhjj`†aÈǧÿäÉ^ž°ë”ƒÑ•“Syõj1™œ×ØH%‘49.ÿé^CCcÕª µkCä$——/›sr*³³+ÓÓsX,¶ð  Ã&Nôؾ}¦øVW øT-ÈÍ­š?ÿ0…ÒÁ#‘4'Lpõªåùóú~ýŒCC½ÃÃ}‡ s€'¡º“”ôמ=×ñcC[›Èb±555Fr ä «‡ûäÉË«W‹¯\)*/o$5"àÕGSS#3s•—WyÇ䣴´~„$13HDI#>þSx¯˜R{'èìì¤P(rŒ¦tuuMMß6çŸ8ñ`Æ3†q8ï<M SSƒðpŸ°0gãU·Zª _/XðþÓÐÐPgüx—±c]Fv20PˆùK¼w^¿~-©`TLMMÛíÛ/nß®ÈË«ÆûØÛ›¤¥ÍW±7e¨[Û>½‚B¡tvvŠüÓùó‰‰W9œ÷ÿV1bÀ7ß|lg7”†©©©®îÛG»ÞÉKJJäU/YZZzzz2]qqigÎä"„}ÔÞ¼¹~à@÷±•q«¥‡ÅâÄÇß$Ððáý† ë7p ™¢¥ùx‰÷e 7oÞ”P,*«£ƒ]PИ›[ÿôiC@@ÿ9s†È;"Э &ôåëÅÅÅMMM"ÿtðàÓ»w«…óMM q8\ÞÕCGGÓÖÖð‹/¼ÜÜà!kå0xð`+«·ƒÁ‹HóûxTÉRqq1B¨ººõË/••5t— „H$M29ï믻mìT¢­–ªšʹs> {ç/ñ¾ã¯@¤É“BˆÃáæå½òòê#Ô* Iý†é.·Ž¿ËŸéXZ9:ZØÚšôëglggÚ¯Ÿ‘‰­­‰¾¾vßÃ2#ð[Héo÷åæÖþøã‰Ž–Àp(ºº8§O?“ô™ü455†w”w@Ølî_Œ±´4į÷¶¶¦Ð<¤ª”»\Éägû÷?àp¸šš"QÜï.{õªåŸêÜÝmd()"Q#6v¢¼£² Äy…B72Ò^³fœ¥¥u¿~Jœ˜šê8#„úøÔ ¶`°0@}A¨/È$ìÅ‹øSÂÄxõêÕüùó{2gßáëB„/^HcÒ[²¢Q¢âÆmݺ•@ lÛ¶7åÔ©SQòòòBt:}ݺuÞÞÞþþþ‰‰‰löÛQf ÂŒ3ø ‘ÞÑéô¸¸8oooCCC??¿Ÿ~ú‰?þøçÍ›×]Ïxa}^äÔ§.àúR#$¸ö¾à?CòèêêŽ3¯}ד8eyäÈ:¨¨¨°°På—˜™˜˜¬_¿þC¿uþüù)S¦ð¾+Õ½„¯‹ŠÊŠô(WqcvêÔ©¤¥¥ñf¯«««««»ÿ>B¨î_žžž4mĈÙÙÙÛ¶mËÍÍOMM æpÞÚžžÎ¿()ÁÃÈÉÉIJJzòäɆ Nœ8Ä ƒßýû÷ëêêjjjŽ=J¥R‡ ÖÖÖÖ“µô®(€¾ÔˆÞ­‘¿úH¤ùƒÁ§ººº‚‚77·Y³fIv$~E9÷b|²²²0i*++Xi_õq!RÚjÞ–öd“?ýôÓŽŽáïJo]¡²²2i¬Ž·d‰“H‰gee544H$Å/n Ãòóó µk×BÏŸ?˜S8Œµk׎7ŽÍfó¦´··;::8pÃ0„PLLŒ™™Y]]T7¤»0~ûí79<.—;~üø„„‰‡$’ÈÍ—^]À$tî’HÖ—Ñ»IŠð×ÐЀ’È©£';GªGŽÀ9ðƒïL™2eÍš5øg&“ijj𙙉êêꊋ‹³¶¶¶²²Š‹‹ëêêb³Ù[¶l0`€¥¥å¼yóð¬|Ô¨Q¡~ýÞŽïÛÖÖöå—_ZXXØÛÛ¯]»–Á`à7Lþþûïܽ{÷CÓ’ .ØÙÙá¯!8yòäÀét:—ËÝ·oŸ‡‡‡¡¡áèÑ£³²²ð;9bnø\¼xÑ××WOOÏÆÆ†wo¶¹¹Y___WW—÷]½$¼oBáÈ‘#–––Û¶m;~ü¸“““±±ñ7ß|ƒ‹L&{yyéèè8;;?~\`]üQIdu®^½êêêjjjš˜˜ˆþ½–‘‘1hÐ ++«+V0™L‘{S<’¦ªÅ}êÔ©€€€ÀÀ@ww÷žüŽOMMMHHÐÔüßÈúúúëÖ­;qâþßÕ«W»»»/Z´ú‘$rÛß»"·]dqqq©©©âOañâÅø JäÂù¿þûï¿ãÅÑóS‡ÃÙ¾}ûÀ ÇŒ“-r7*u]ÀɲFz÷.:@8qℇ‡‡™„7 © ”IDAT™ÙÏ?ÿŒÞ­>söâ`y†Ä‘H$---ccc1_®†ü! ïº/@vGŽÐ“쿯Èår1 ËÈȰµµíêêÂ0,))iÚ´i¯^½*((6lX||üöíÛ=== G޹víZL(ý‰ŠŠš4iRyyyAAÁ!C¾ýö[|†O>ùäÆííí⃑åý€yóæ}ñÅõõõÖÖÖÙÙÙ†pà@]]ÝáljD"¾3y뺿Ð‹Õ ì+„Phh(•J=sæ >¾ŠàààÒÒÒ‡ºººòÊZ`¢øRÙýÕ+n.—ëäätðàA Ã6mÚäéé)°Éaà'ý¦¦&Ùÿüó 6àÓÝÝÝy·¯]»æãã3hР³gÏâSJJJðÏü›Íb±455y‡àÙ³g]]]ñ Þ»%˜ló …booïååÅÛËžžž¿ÿþ;o†ÿû¿ÿ_ ˜Læ³gÏÚÛÛ9έ[·xç¬iÓ¦µ¶¶Šü Nxßb†ÊÍÍÅ0ŒÅb |.++kmm%‘H;vì P(\.—F£q8þuaÝç½XÀ¾BݼyÃ0¼·¬¬L XÓÒÒ„ËŸ(¾d–¨^q?|øH$âgÀ'Ož „ ù7Yd œäÝ¿ßÂÂã;~vïÞmddôêÕ«÷nû{"ám“ŽXXXBâóá…ó|ÏOq>$â”^]Àd›ȬF&tuÇ7™w؈™óC6Lè ÉÏÀÀ ¤¤„·½Â_Y û’HïÈék»€žž^xxxzz:N'“ɼ‡<_¾|iccƒ?ZTYYYUUåææ†ÿÕÃÃ#""B`Q ÇÅÅÿ¯««kMM þÙÝÝýC“6“E‹ÇÆÆâS***|||x3xyy‰_‚––ViiiHHÈðáÃÿýw|b{{{WW—øé ï[|º¡¡!BˆD" |F™ššfee=|øÐÞÞ> àÎ;=YWïV' ÿm¤¡ñÎÆ;ÜÝÝye-r¢Ü©^qŸ:uŠÍf[XX„áÇ#„Ä7 ˜˜˜ôë×Oøé¼¼<ê¹lÙ2__ß… òN"·ý½[!rÛÅ„o{º(++ãaºÛ±_ïù)®ººº'‡„²×œÌj„pi \’ñý)æäÃó¡›p0¼´’N§ÇÄÄDGG‹ùºÈj(fCÞKfGNoú DFF¦§§_¸paøðá¼Õã¹9¾Ë(ÊÇmmm_¾|‰ÿ5//ïÇX޵µµ¦¦fEEþßòòr;;;üsOÊXƪ««÷íÛøõ×_ãSìììòóóy3¼÷Ux3gÎŒ‹‹ËÍÍMNNÆ'^¾|9$ä=o?Þ·ï¶³³“Ëåž>}ºµµuÁ‚aaa­­­=YWïV'Ld!žº"„JKKy/M9QîT¬¸9NZZÚ/¿üBûך5kÒÒÒÄŸ˜¢¢¢¶nÝÊ{,?22òäɓ۶m‹ŒŒäŸMCCãèÑ£÷îÝûïÿ+fÛ{Bä¶GEE}ÿý÷ü½ètzRRoëº;]`–’’òé§ŸŠY¸È¯÷ðçèèØ“CBÙëNf5‚¿8ðÞ¡µµµü3\{M¸@ÅTO==½/¿ü²¸¸˜We„¿.²ŠÙ÷’Ù‘Ó›L¡P¶lÙŸM:uÆ UUU!!!û÷ïŸ;wî¦M›ð›NË–-«ªªâÍŒ·ä‘H¤Y³f­X±¢²²²¨¨hóæÍQQQ½ˆG¸\nttôòåËOžè`kkkëî ‰ãp8FFF•••øE«Õ°» é®îËìÈ80¾ÊÓØØXRR2a„Î&ä¿ÕÇ÷ Ij«_¼xáææ†½{28‘;§{L"%~óæÍÁƒ[YYõe!j[Ü,+77ïïzARuIèÜ%‘:…Ô¸FÈŒs Œ+ øZZZ J ²`ddÓ“‰¨6¨  w¤wä@ 1x¯MyG¡ ¬¬¬8Г‰ÊŠôŽêÕÔi“Þ‘y ¾ Ôä€ú‚<P_ê‹(<éõëײ£w †ŽŽŽD¥D[­Î$Uâmmmøˆß(¯^ ¦+ƒÁ€ :‘”––Ê>Ž^“T \[­Î$RâpÖ€õ”¼£rC€Ÿ€Ú‚çõy ¾ Ôä€úúº'œ\z°IEND®B`‚XQilla-2.3.0/docs/simple-api/classxercesc_1_1LocalFileFormatTarget__inherit__graph.png0000644000151400015140000001514611653571064025756 00000000000000‰PNG  IHDRØÃoSHâbKGDÿÿÿ ½§“IDATxœíÝ{Tgúð7æBkŠÜ °¸"Z¥^v«î*ÖŠ.ÖöHEtñ­xÃW@X²XmÝnÅBQ¤*"W•=*Y×[•K`½LB$ä6¿?Þýe§ä"qû|NÿÞÌ3ï3“¯3“RAª £º‚ š€ Z€ Z`Q8÷gŸ}V^^Na€ÌÇÇ'>>žªÙ© bMMÍÝ»wgÏžMa»zõª­­-… PD„ÐìÙ³srr¨í „V¬XAmph‚h‚h‚h‚h‚8P•••,+77W?RXXÈápjjjB cüøñ½>Y²xñbƒqÿþýWÝ+AjÚ´i»wïÞ¶m›T*EuttlÞ¼9!!aÊ”)x…‡VWWë×—H$ð6¾!âKgoo¿sçN„PLL ŸÏŽŽÖ?êëëK>_Í›7‚.éîA,**rqq‘H$¡ììì &tuu!„ÔjuTT”“““££cTT”Z­¾ÿ>ƒÁ(--uss+++KHHpsssppX³f >W­B{{{s¹\ww÷ÌÌL„F£1Zާ0\æp8éééûöí;~üxFF›ÍÖïB```NNŽþê, —/_®ÔhK #==}âĉIII™™™cÇŽåñxú_ÁI¥ÒuëÖÙÛÛ»ººFFF*•JòîOŸ>=,, ¯)—Ë­­­+++áÉy©ê¾pµ5kÖ¬]»öéÓ§NNNׯ_ǃû÷ïxôè‘H$š>}zLLL]]BhñâÅ/^^^^"‘¨¦¦fæÌ™‘‘‘¦ªär¹••UJJJKK˱cÇX,–\.?pà€Ñr©Tš––f¸ŒÅÄÄ „Ƀ¡»wïŽ=º²²WY[[···#„êêꌶ„«‚‚‚d2ÙÑ£GB+V¬Éd©©©¡ööv‚ ‚ƒƒ,XðàÁ‘H4yòd@@Þý³gÏÚÙÙ©Õj‚ ²²²¼¼¼t:ÝKy.Ï¢D"quuõööúAOOÏ––¼|þüù©S§âgB$ñÖ[oåååáGoß¾­_6¬‹Ål6ûàÁƒ‰D§ÓuvvjµZSåfètº¥K—2™ÌÕ«W“Çqà¶lÙ²k×.‚ ²²².\¨7Ú~´¢¢‚ •JÕk¹®®N¥R1™ÌÚÚZ\•——çááAÞ}F3zôèÒÒR‚ Þÿý¤¤¤öAìÓÎïÙ³‡Éd¶¶¶êG¸\.ù¼Îãñð3¡R©ð£555†Û1¬"âòåËË—/·±±™;wîÙ³gÍ”›‘™™Éãñ.]ºÄår ôã8:eee:Îßß?55• ÑhKúG.755!„ ‰D\.—¼ûAlÞ¼yË–-mmm§©©é…ýSDºß#"„ššš>ìëë»cÇý ½½½þé‘H$×®]ÃãøæÌÙÙùáÇx¤ªªjïÞ½¦ª …N§ËÍÍ‹Åaaa~ø¡X,6UnÊ“'O¶mÛvàÀŸ„„„ðððçÏŸ“W˜3gNggçåË—ÏŸ?ïïïO~ÈÔŽ˜áääÄd2ëëëñB(000???''gΜ9®®®/Ü&åèDN‘}áÂ…ââb<¾lÙ²]»v566ŠD"??¿äädrUHHHlllmmmmmíÖ­[MU1ŒE‹:uJ&“©T*6›mmmmª¼££ß´‘— ‚÷ööƯvìØáääAî‡Éd„‡‡¿óÎ;ŽŽŽä‡ÌïˆQl6{åʕ۶mkhh¨­­‹‹ îµÎܹs5Íž={BBBúv¤©FÉyëËåà믿~ûí·ñ'??ŸÏç‹Åb‚ d2Ùúõëmmmíìì6lØÐÕÕ…¯M¸J©TFFF:;;óx¼   ‰D‚Ç «‚8yòä¸qã8ާ§gaa¡™ròú匌 ++«{÷îé{¾qãÆ°aÄB!Aº°–••!„’““ñ:úq£-!³—f‚ ÄbqHHˆŸÏß¾}»B¡ ÷†mܸqøðá2™ìe=ƒŠAP÷ç¤ø3pðyÄAûðáÃï¿ÿ¾/+Sþ\PüÁX0”Jå“'OÒÓÓ³³³©î¥¯è~,pýúõßýîw¡¡¡ï¾û.Õ½ôœ_CóæÍ‹ÅTwÑ?pF´A´A´A´A´A¨Ç%Íͪ»ò(~û¦¼¼|áÂ…Ôö0@ííö!{ûvªšš  2ˆ³fÍ¢pö—¥¾ÞŽÁ`Œ¯¥º‘ñññ¡öé òwͯ;wž,Xp!TZ=q"Ÿêv†0¸G¢¢*k‹Å,.®¢º—¡ ‚h9‚ ²³¯k4:F›} ®-A´ÜÍ›Ÿ=“áåÖVÙ­[)mghƒ Z®  ‚Ífâe6›™ŸOû?Ù¤1¢…4]^Þ-µú¿/–Õjm^ÞMFGmWCÑB—/ÿÜÑ¡$tt(ÿýï:ªúê ˆÊÏ¿Åbýâè±XŒ¼¼[Tõ3ÔA-¡TªOŸ®Öh~ñ&¶F£;}ºZ©TSÕÕA´Ä… ·•Já¸R©.-½ýêûy @-qêÔM&“a8Îd2N‚«³% ˆýÖÙ©¼xñŽÑÈ®´ô¶\Þóê»ê ˆýVRR£ׯZ­-)½Ê~^ð¡‡~“Hºd²ÿ½q›‡Ú»w™~däH®­­  eðç¤ýfkkCΙ !4fŒu½àÒ h‚h‚h‚h‚h‚h‚h‚h‚h‚h‚h‚h‚h‚h‚h‚h‚h‚h‚h‚h‚h‚h‚h‚h‚h‚h‚h‚h‚h‚h‚h‚h¡ßß[__áÂ…Aêf(ÊÍmFºPÝøúúº»»÷¯†è§“'ONóC“Éc2yTwA/'Ožìo®,üêbøæm` ƒaäüñBph‚h‚h‚h‚h‚háWÄÊÊJ‹•››«),,äp8555!ƒ1~üø^oQ-^¼˜Á`Ü¿¯€ÈÆ þ® ~øÁèÔUUU¯`ö—Ʋ7´û[ECñññ£G–H$AH¥RggçÄÄDüBˆÅbUVVêW‹ÅÖÖÖ¡ºº:¼^ C]¹r¥å—©ùØÙÙáåîîn<ו+WBú©U*Õ`L÷BÈ¢7´¥gD„P\\œ½½ýÎ;B111|>?::Zÿ¨¯¯/ù|YTT4oÞ¼nÓÁÁaô/ Fç!N÷üùs¼<|øp<—ƒƒBH?5›ÍŒéÉ ±¨¨ÈÅÅE"‘ „²³³'L˜ÐÕÕ…R«ÕQQQNNNŽŽŽQQQjµúþýû £´´ÔÍÍ­¬¬,!!ÁÍÍÍÁÁaÍš5R©oͰ !T\\ìííÍårÝÝÝ333BÆh9žÂp™Ãáddd¤§§ïÛ·ïøñãäg.000''‡øÿ«³P(\¾|¹eGC*•®[·ÎÞÞÞÕÕ522R©T’÷úòåË #==}âĉIII™™™cÇŽåñxñññx §OŸž6mšµµ5ŸÏOJJBÍš5 !ô ’§þ׿þ•’’2iÒ¤‘#G¾÷Þ{§OŸÆÇð€÷qºéï)´—æ5kÖ¬]»öéÓ§NNNׯ_ǃû÷ïxôè‘H$š>}zLLL]]BhñâÅ/^^^^"‘¨¦¦fæÌ™‘‘‘¦ªär¹••UJJJKK˱cÇX,–\.?pà€Ñr©Tš––f¸ŒÅÄÄ „ôe !t÷îÝÑ£G㫳T*µ¶¶nooG/º4WUUu’¨Õj‚ ‚ƒƒ,XðàÁ‘H4yòd@@Þk¹\Ž ’ÉdGE­X±B&“¥¦¦"„ÚÛÛe2‡Ã }üøqVVBèÙ³gx ½è5h¦Oý÷¿ÿÝÅÅåŸÿüg[[Ûùóç=<Ÿ¿}ûv…Bѯ3"A_~ùå¨Q£~ó›ß9r$((ÈÑÑQ­VÏ™3gĈä‰ Ï[†…äu´Zí¡C‡ÆÇãñüüü Œp£Ó™‚huiôW\\\UU¥ÿQ(N:uà›µ,ˆ¿Þ7´H$Z½zuEEEww÷µk×âãã?þøcªš±ðOÀk ::º»»Ûßß¿­­ÍÝÝ=444<<œªf ˆ¿^,+11111‘êFúÕ~úÐ ÐÐÐq º»UÝÝ*ª»ò,|Õüí·ß¾Ü>†®êêy{Ã·Ž ˆ…A¤ð 'º5ÊŸ PrrÕ mýþ60@ÖÞ.Ÿ6í¯1ª«÷ŒeCu;CÜ#HI‰ÿ¾þìYÕ½ mÄ9yòA „ˆ“'oPÝËÐA´\S“¸²òA:ª¨hljSÝÑA´\qq“ùßÈd2Š‹‡Ô´Ó Ñr99?i4Z¼¬Ñ99?QÛÏA´Ð½{Oþ™üÄÏ??½wÏäß ó ˆ*,¬d±˜ä‹YTTIU?CÑAäæþﺌi4ÚœœŸà}YË@-QUÕÔÜ,1on–TW7½ú~^DKTôº.c,³  âÕ÷ó€ ö›V« {_—1F+ÞÔju¯¾«¡‚Øo×®ÕK$Ý,“ÃaõúÅbŠÅ]ׯ×SÝãÐ<Õo,Ö°ØØô?ž>]úàƒ·É+PÐÖŸ¾¨ððïB©©k©ndhƒ»€ ˆ€ ˆ€ ˆ€ ˆ€ ˆ€ ˆ€ ˆ€ ˆ€ ˆ€ ˆ€ ˆ€ ˆ€ ˆ€ ˆ€ ˆ€ ˆ€ ˆ€ ˆ€ ˆ€ ˆ€ ˆ€ ˆ€ ˆ€ ˆ€ ˆ€ ˆ€ ˆ€ ˆ€ ˆ€ ˆ€ ˆ€ ˆ€~ñ± ƒÂV†¨áÃ=B Å]ªzÈÙëýÚ“&Mzµý€_Û·oçææ’GzqÒ¤Iï¾ûî«ë„Ü#š€ Z€ Z€ Z€ Zx ÿhóçÏÏÊÊrqqyYlnn^½zõ?þˆ7n¸BVV^¼¦©Þ ͬÿ²\¼xñ³Ï>3OKKóððìÙûâ5 â`;|ø0ŸÏ'0™Ì   ‹ËIKKËÆ BüãO:…·nÝŠ—B#GŽŒé,Aì·7ß|sÔ¨Q½7lØ0òÁ Óéd2^¶²²²²²B) „Ð`4@žÎý»G¼råÊòåË;;;B¥¥¥!!!J¥!¤ÑhRRR>úè£>ú(%%E£Ñ477ÏŸ?¿¢¢båÊ•UUUÇ_¹r¥¿¿ÿ¾}ûär9Þšaž",,lÑ¢E«V­:wîBH«Õ-ÇS.%—Ë“’’–.]øÍ7ߨT*S›½zõê'Ÿ|âççpâĉ¾£³Ý»¾·G>€555óçÏ/))Y»v­¿¿ÿ‰'Î;´dÉ’ôôtSmoÞ¼!´lÙ2óÍ’§‰DEEEëÖ­[²dÉ_þò—«W¯â=5Ü»>NgJÿ‚ø‡?üaÆŒÉÉɉ$99966–Ëå"„„BaKKKjjê_|QQQqüøq¼~NNNLLLuuuyyù¾}û:ÔÔÔ”••…5¬R*•Àßßÿ‡~ ùüóÏ•J¥P(4Zþæ›oFFF.õÕW_µµµ¥¤¤ìß¿ÿ§Ÿ~ÊÎÎ6ºÙîîî¿þõ¯ãÇÏÊÊÚ´iSZZšT*íµ)¥R© ÑjüÄÍ£å†í‘àøñãB·nÝúæ›o6lØ––võêÕcÇŽmÚ´)33S&“mûÈ‘#¡¼¼<3‡ÅÌþâ©ëêê233·lÙrâĉàààäädS{×—éÌè÷«æˆˆˆŠŠŠÈÈÈ¥K—zzzâÁ’’’O?ýÔÑÑÑÝÝ=<<üÆx|Æ Ó¦M+-- uww;vìÎ;½¼¼LU©Õj‚  ‡Ãñóó+..¶²²:sæŒÑr›%K–.Òh4/^Œˆˆàóùîîîëׯ?þ¼ÑÍr8œcÇŽmÛ¶ÍÎÎÎÑÑ!ÔÕÕÕkküñû$úíÅÔ11,7Úùâí+W®´¶¶^´hBhÕªUÖÖÖ~~~¡ÎÎξ´m”™B<õ™3g6nÜøûßÿžÇã͘1cýúõæ÷Îbý¾G1bÄ|ðÝwß}ñÅúÁ§OŸè´±±Á nnn¡ÖÖVWWW<2f̘1cƘªzã7:$ ?>a„U«VÍœ9ÓTyßI$NçììŒtqqikkCn–Åb=~üøàÁƒ …Ÿ‡ ¾$onn6\ÍÔ11,okk3ÚúÿˆY[[ã{-÷±m£Ì⩟¾r¹\,ÿwë,BÈÎÎîéÓ§xîß¿íÚµÕ«W­êééÑét@£Ñ”––îÞ½»  ÀTyßÙÚÚ6¬¥¥§íÉ“'öööAn¶§§G ‚Ù³g«Õê’’’þ=SǤíá‡ôQ3Ïâ¶Í⩜œÜÝÝñ`ccc÷®úwi&âóÏ?_¶lY||ü­[·®\¹‚ÇçΛ––ÖÚÚZ__]PP@®Z´hÑÑ£G¾úê«ÖÖVSU #**ª¼¼¼««K­V³X,+++Så]]]gΜ1\FI¥R1 ‹Åš?þ?þñ–––†††cÇŽùúúݬZ­Öh4,K¥RỺîînKŽë‹Ž ™Ñöú5—™¶ñËd 1ÿÔÔÔ›7oÊd²ÊÊÊŒŒ ü¡US{g~:3úwF,((J¥AAA,kûöí_~ùå”)SÞxã°°°Ã‡òÉ' ÃÇÇ'<<¼½½]_¬T*£¢¢”Jå¬Y³ÂÃÃñ¸a‡ÃÙµkWjjê³gÏœ8Ž©r©TzðàA|kH^Fmݺ•Üö?þøé§Ÿ>|xãÆl6û½÷Þ f0†›1bĦM›‡¾jÕª DGG>|Ø‚#k¸wfV6lOuî £m …Â)S¦œ={¶_…äýõ÷÷×jµ‡êèèðòòÚ¸qãŒî‹Åzátfôþ„vBB|è]½zÕÑÑqܸqøÇòòòÌÌÌ´´´n¶¬¬ìoû9{ð»f`N}}ýÞ½{ëêêzzznß¾žžnæÝ‰€ß¬sþüç?+•ʸ¸8©TÊçó/^üá‡ÆDD`“É ì‰àÒ h‚h‚h‚h‚h‚h¾ûPÆäwßäää¼òf@¨×ªÀ=" " " " …ÿ¾ocóçe‡…IEND®B`‚XQilla-2.3.0/docs/simple-api/EventSerializer_8hpp.html0000644000151400015140000000634011653571064017566 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

EventSerializer.hpp File Reference

#include <xqilla/events/EventHandler.hpp>
#include <xercesc/framework/XMLFormatter.hpp>
#include <xqilla/events/EventHandler.hpp>
Include dependency graph for EventSerializer.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  EventSerializer
XQilla-2.3.0/docs/simple-api/inherit_graph_17.md50000644000151400015140000000004011653571063016355 00000000000000e801f3985d32875ab0b15d339dba49a1XQilla-2.3.0/docs/simple-api/XercesConfiguration_8hpp__dep__incl.png0000644000151400015140000000777311653571064022422 00000000000000‰PNG  IHDR°uaðübKGDÿÿÿ ½§“°IDATxœíkPWÇO` Bà (%‚…a¤Z§S[-"ÆRFîH!ÈEGÑÑ×ÚŠh ¥ÈEt@1*¢Òáâµ@*tPåªr ÁÜ6Ù÷ÃúæÍB¸„‚r~ŸNž=ç9ÿ=ûÏ9g—„0 ÈÿÐP·ÈüBBB‘qûöí£GªK D-9rdãÆ²—Cô÷÷WTT|ùå—s- ¢&nݺµsçNù2±Rttô\騙[·n‹À=„4„4„4„4„€Ò†hmmuppßÞ»wÏÑѱ½½ýMêšœ£Gz{{»¸¸„‡‡ß¹sGÙ †ÅÆÆº¸¸º»»íííU ó5ÿ>¿½½}ww÷›Ò3-JÂÊÊÊßß?99™ÇãÆÆÆétº ä‡Ë冄„hkkGGG§§§oÚ´é矾ÿ¾RI***Μ9ÐÕÕõññy³"{{{·nÝŠ—U‘_¥ÌfÉ P(, ‘‘ahhèííý¦…)&''gõêÕL&ÓÆÆÆÜÜÜÓÓÓÝÝÃá(•D(h4€B¡„††¾Y‘R©”ËåâeUäW)³1‚ QQQ¥¥¥gÏž---ŠŠB׸PMOOß¶mÛ¶mÛÒÓÓQÅç̆†//¯äääxyy¹¹¹ÅÅÅásŒÂV€?ÿü“Á`899ùúú–••á5«ªª<<<äÅFFFâewüøñ­[·nß¾ýÔ©S"‘`oo_QQøÍ7ßœ?°k×.€»»;›Ò1 »råÊ·ß~»eË–ýû÷WWWãsµl—•åÏèŸþ©®®Þ¹s§³³³‡‡Ç¹sç&Ë?sy©««óóósuu={ö¬,ç½{÷¶mÛ–œœ,‹gqqg¹©\±b…——›ÍÞ±c‡………,~éÒ¥ÞÞ^‹•ÐÐГ“ƒÇ/\¸ÕØØXUU—˜˜øìÙ³¼¼¼ÉZ ‚˜˜77·óçÏüòË/€Çã .[¶L^É¢E‹ð÷: ))éÅ‹ééé'Nœ¸ÿ~~~>¿{÷njjjXX‹ÅMKKÊç¹~ýznnîîÝ»Ï;ççç—šš:õàgdjjúÃ?XYYåååEDDdff+Ì?syûª­­ÍÌÌŒŒŒd³Ù²¹§¨¨(..îØ±cµµµ¸' *Å, aXgg§††ÆÓ§Oå㥥¥ûöí£Ñht:=,,쯿þÂã¡¡¡«W¯®¬¬ ¦Óé´µµ¬•X,Æ0ŒÏç“Édggç’’mmmüÃ]$I¡$Eoܸ±gÏ:T^^ŽrssÓÕÕýꫯ²GAAAxxø§Ÿ~J¡PÖ¬Y4õàg¤¯¯Ÿ••µwï^CCCÜ—ccco\ž———ŽŽÎçŸ9&""ÂÌÌÌÆÆ&$$D–JaP)ü-c&TTT€B¡$&&šššðþu7‚ŸX__>îmmm555þþþ [ …B©Tƒ¢heeåáÇ‹ŠŠôôôÖ¯_Ïáp~üñGÙè”——£(ª­­M¥R544z{{qŸõôôà &ŸTä166îèèÝ+uvvÊI$MMÍ—/_AB¡0&&&&&fݺub±¸´´t²üÿFžÂ ]]]¸ÚgϞ᎙,¨J/†%$$Ðéô-[¶<==©TêÉ“'ñ£_|ñEfff{{{dddQQ‘|['''6›ÝÑÑÑÑÑ‘””Ôßß?Y+‰Äd2«ªªÆÆÆÄb1‚ ÚÚÚƒÑØØxìØ±æææööö3gΆ„„±··?yòdoooGGGVVÖæÍ›g~^nnn,«®®ŽËåþý÷ß§OŸ&‘Hººº€²²²W¯^MÜÄb1Š¢‚ˆD"|ÃôêÕ+üŸÏ—¯©”¼k×®M¶ôÈHIIéîî~üø1›Ívttœ"¨JÏeeeuuuÙÙÙ¸ma2™»víÚ°aÆ  FJJÊÎ;I$Ò† ÂÂÂäßX~~~€Éd ‚µk׆……áñ‰­Èdò¡C‡X,ÖóçÏ—,YM&“§NŠŽŽæóùË–-‹]»v-žgß¾})))áááZZZ›6mòóó›ùy¹¹¹I$’ÄÄÄ‘‘[[Ûððð_ý•B¡0Œ´´´¼¼¼Ý»wO|¦««qôèÑE‹ùúú:88DFF^ºtiåÊ•ׯ_—¯°  qùr=‚FAH……õêÒ3X¸†ÄW¯6¢¨D>ˆ¢Ò«W‚Ù| îÝ`ᢢâ¡@€NŒ âÊʇs¯gž°p QPP§©©à 0šš¤‚‚…»j,PCŒŽ nÜx¤ð†E¥••y<áÜ«š,PC”–þ#»ÛœˆX,)-mšK=ó‡úÇ­¡¡1.÷ÿ7œÿùO! 6Ö]Ñ×Jê‹Sï* ôcøTêbùë½x1`n>›oǾc,Ð%2ÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐ*ù2o<§J¹x±°}»©º…(GhhèÏ©Cà¿ÿ¡©IH$#ꢪ¸vªZ28öö€¢Ã(:¬nJÀápTtáàBBBBBB`¾¢­­ ª1±ð/ÎAs‰ÔÖÖ6ë¾ÔÂ|7„ÁÁƒçsÂwŒùn##£ãÇÏç„ïê1Ä•+WLMM‡††ùùù+V¬“J¥)))666zzzëÖ­»yó&>åN1E_½zuõêÕ:::&&& /sII‰Ý{ï½G§ÓsssqÎ'‘HÙÙÙ666|ðÁñãÇsss-,,(Ê÷ß/«Y\\üÑGÑh´½{÷ …„Ñ‹ÅL&ÓØØ˜F£1™L±XÁ3•••YZZR©Ô¸¸¸ÉrNÛÑœ¢Š«`®wìØØ××gll\[[‹a‹Å¢Ñh………===×®]333´¶¶â"'¸\.™LîêêÊËË<þ\¾ §­­žžÞÛÛ›••… Ç“5Çuúøøp¹\6› ðôôär¹, ðòåK¼¦““SKKKMM¥¥eLLŒ|ó'Nxxx<}ú´©©é“O>‰ŠŠš8_ý5—Ë-((˜6ç¸àÔ£‡?ºžáåP µbhhÈÌÌÌÎÎNvò¶¶¶§OŸ–U8sæÌÔ† …=âñx‰äöíÛxeù.µ´´âã㇆†¤Réèè¨D"gˆ†† ÃD"Ѹrkk+^³©© ¯Ìáp,--å›[[[÷ööâåòòòU«VM‡[·na&‘H¦Í9.8õè©ÎjÛC„††677GDDà‘öööU«VÉ*ØÙÙML&·´´8;;¯Y³æôéÓ²8éP©Ô›7oÖÔÔ˜™™mܸñÎ;ãÏWOO ¥¥5®,ÃÊÊ /X[[wuuÉzò䉉‰ Þ—££cGGÇD‘K–,ŒëWaÎ):šKÔfˆgÏž¥¤¤lÞ¼ùÀxÄÔÔ´±±QV¡¹¹yê |>ßÓÓ“Éd644¤¥¥Éâ2³óù|©TzñâÅÁÁAƒáêê:88¨¬Nüí hiiÁ¯® ###Ùœ444TSS3±¹Â œSt4—¨ÇR©488xÏž=ùùù%%%€àà`&“Y\\Ü××÷ÇDEEMD(ŠD"2™Ìçó££££££òH$’““SAA—ˉDZZZ:::ÊJÝ·o_[[Ûýû÷>ìïï/ÈÝÝýСCMMMÎÎΩ©©6›=22Íç*朢£9Eë˜n‘œœüñÇ‹D" Ã._¾lbb288(‰~úé' ]]ÝuëÖ;wL¹‡À0ì·ß~{ÿý÷—.]š––æããC£ÑÆuÄáp–/_N&“­­­‹‹‹Ç5rÛŽ‰e¼&›Í677722Ú³gŸÏ—oÎårƒ‚‚¨Tª¡¡ahhèØØØ¿É9.8õ¿ƒ›Êi‘zµ   s΢£wpS ™Ÿ@CLо¾~XXØäTEG³GÓxÛ>SùÖ— È ! ! ! ! ªƒ¯¬¬VQrH}}½Š2Ãïv¾Å¨äÚ©")äíî!  !  !  ! þ 8dZXFI IEND®B`‚XQilla-2.3.0/docs/simple-api/inherit_graph_50.png0000644000151400015140000000476111653571064016470 00000000000000‰PNG  IHDR(x±xšbKGDÿÿÿ ½§“ ¦IDATxœíœiHT]ÇÏ8fcZ¢ÎŒ»i®©˜¨¡˜)EA.LVf‘”T®d. ¡%}Ũ©”ÔL*-Ê Sg& WÄÔÁÌFÍmÖû~8¼w¦;w&5ë}ÏïÓ½ç>ó<Çÿ½ÿ³Ì"Ã0€@ èluˆ?äBò¡ùP «|ÒÒÒ’››»U]A ´‹ÅÊÈÈÀOòÃÔÔTSSSDD„Ö{…@lmmmÆÆÆÊ-ºªAUUUÚ걕DFFZÐþP€ü€@(@~@  ?  köCOO®®î³gÏ𖺺:===>ŸOSRRöíÛghhèëë›——'•JCCC …ô@3999 %??oYk†?„ŠŠ ½½½Zî ©nkó7•ÿs¤ ‚)QYYIh!%##ÃÜÜ\(b6;;kii™›› /ÍÏÏ»ºº²X¬W¯^õ÷÷?þÜÍÍ-88X*•NOO§¦¦b688«àËånnn¶¶¶^^^xãš2¬†ááaSSÓßÏ£™¥¥%@ Z[[‚‹Å›]š©nø Zw†Õ³>)VVVètúº‹ª¡Ü²?ˆD"¸¸8 Ã.]º´ÿ~üÏHJJ:xð T*Ńìì슋‹ñ–5=Í\.—B¡466úûûבa5lTž?³Üft@ËÊÏÍÍ•––†„„l¬nª~XÏþAOOÃá}o„~øöí!¸µµ•N§kðƒH$úüùó‚L&kii bÖÞÞ®«« ~øðÀçóI3ˆÅb*•úñãGX±¦¦ÆÑÑÑÅÅ¥¦¦¶|úô “ÖRš4 àñx°qyyùñãǾ¾¾ÞÞÞ%%%?~üXh8¤ž¼²²ÒÑё𒉉‰¬¬,kkëcÇŽ544Èd²_æÇººº xÜØØèåå¥ZÑÞÞžà‡ææf¨”ÈÙÙ™Ãáà%=zƒµ)…†ÅÕšôÁÙ0?}šŸŸÏf³5$\^^ŽŒŒLNNîîî.**‚2™¬²²²°°ðǿܸq£²²#ûÁ·™™•J§ÃÃÃVVV–––£££°¥··÷öíÛêjý2<†Û$ƒáææÖÚÚúþý{|OòûÀ› €«U¦¦¦úúúÆÇÇ}||ôõõ5'Ä7upr†÷[(¶··«Vܽ{7áå::?=vvv\.?íëë[*)kÒ‡es¬f~ËåG ‚S’X,öôôd³ÙðêÜÜœ‹‹KppðëׯûûûoÞ¼ `2™"‘HÃü  )J}}=üìÐÝÝÝÜÜL¥R§¦¦ðÒ]]]ðé sêÔ©‘‘>Ÿïîîž™™™••åééÉçóù|~@@ÀÅ‹ÕÕ‚yð¹^5•êÈÄçóãããétú… ººº~9)C:(vvv:99eff*ÇËd²†††'NXYYeffNLLà—4ì𘄄„ðððÑÑQ.—ëççwåÊŠWÌËË#̸…àñ½{÷˜Lfmm­@ ¨¯¯ß³g¬5)ÔÍôÑ̬—8ÎöíÛñÉðÎÎNêêjxº°°˜˜èááA£ÑÒÓÓƒ‚‚¢¢¢4¯— MLLlllŠŠŠØl6“ÉŒ S.-—ËRSSI3|ÿþýÌ™3¦¦¦ׯ__^^^YYIJJ²´´422b³ÙðÒZ‰$00ÐÐÐP]*uwB(:88ŒŽŽjÖMÒ‡àþýû»wï¦ÓéW¯^Å êêjÿòòr‘H¤!•º·¡çççcccMMMãââa@EE…“ÉLLLT°02?H¥Ò‚‚GGGƒÀIFËR¨» ôÑŒª(˜Òò£ªª*** Ûèÿ@#‹»»»á{šÿIär¹\.×Õ%ù1ÉjrrrÒ »D"Á?8›-)ëÖþþAù?ëì÷šÐÓÓû› ££CXmo,‹ÀæKAÊê£ ?üQ÷É#éÈ·k×®øøøMîÑ–ñwIü°)¬iÆg2™ÅÅÅ›×™­åï’}ßP€ü€@(@~@  ?  È„’÷[CCCµßBûðù|‹¥Üò“lllÐ?oEü`±X„oNP6üÛJÄß Ú?  È„äBÁ?a‘vYŸlIEND®B`‚XQilla-2.3.0/docs/simple-api/Item_8hpp__dep__incl.png0000644000151400015140000001244011653571064017322 00000000000000‰PNG  IHDR€÷MëkbKGDÿÿÿ ½§“ÕIDATxœí{P×ÀOH‚( P¡­€ UQk§Õ©J3U†¶2,0­+¨Sq¦‚U¬µÓz•¶¶©H¡<´Eex ¢àŽ·Ê[£–Ç yXhIÈc÷þ±½¹! !$!_–{~ûçì~ù²¿ìÙGÂ~ ’$3èþßÁ€Á€Á€a6ÜíÛ·OžuêTUUÕåË—54Ó: *..>xð ‡ÃquuŒŒ¬®®¦Úƒƒƒ­¬¬|||B;vì°²²òõõE …BÕ ÔÂ6lP\`ß¾}ÎÎΞžžüqII‰†F#3-÷‚t¦¯¯oûöíòÙÙ³gSVVV!‹¥4­–ùóç#„ †b£³³35ñ /ô÷÷kh42¦%ÀÆÆæÇ\´hBH$ñx<‚(mzЧOŸººº"„ººº(C5“‚FFF¨‰7&''?{ö¬££ãðáÃùùùÚ¬~ýúõááaÍËÄÇÇwwwÿñÇ)))[¶lÑÐhd€÷''§•+Wnß¾½¨¨!´{÷îøøø={ö0ŒM›6EFFjäÌ™3«W¯–WjÙ¼yó¡C‡FGGßzë­ÐÐPjÀQj4È;š* Ãþ,%+++88¸¼¼Ü€1õ¤»»;,,L)%µ“Âår333ƒ‚‚ ˜žI AÿÏÌ|³gÏöóóÓ¦„™/ÀÖÖöÓO?Õ¦„™/ÀÄÁ€Á€Á€Á€¡·€‘¿ÿÎB/¦åVDttôt„UE$rFY[?5ÎËMàââhؘ¨«ã0 WW¶q^ÎÕÕÕÅÅŰ1 |/ȘÐOÀè¨äÚµF©T¦Ø(•×®5ŽŽÂü¼Pè' ´ôáè¨Tµ}tTRVöÐøùè ýäæÖ2™j~zÅd2rsé7 ÑL€P8zëÖ#µ'ÞÔ`2mB2Ùt"“3ÑvÖ4eff’¦T:(•Bg1 ™™™62>ƒƒƒƒƒ£—†–––o¼ñFCƒaž ÙÞÞ®öB„Á`´··›ZX}Ðw¸{÷nooooooSSÓ’%K‚ƒƒIƒ>|¢££ÃÞÞÞ€M }Ÿáàààää„rrrúöÛoûûû9Ž!rC!‚ þþûoCE3A y 077g³Ù666Ô¬D"‰‰‰qttäp8111T¹ÒÂÂB//¯Y³f¹ºº¦§§£ñÂê±nÝ:„åX ƒ‘––æéééàà—žž¾xñb›ãÇËC,[¶ŒÃáDEEiz”ÐÍ›7ÝÝÝíììNŸ>=ÑêS©]@#-nE „„B¡P(ìîîÞ¿ÿ®]»ä½ß|óÍöíÛÿüóϦ¦¦W^yåÈ‘#"‘ÈÂÂ"11±··755•Åb‰D¢¶¶6yòiÕ ù+¶µµÉ§CBBAJJ B(((H $%%!„¨}||Z[[+++ÝÝÝ¿üòK¥hŠa·nÝ*rss']]©QË[nC WŠX[[?|øPÞëááÑÛÛKM—””¬^½šÇã™››Ÿ9s†Ïç! e2™>êëëI’‹ÅJÓmmmÔŠMMMò­àîî®A@EEI’2™lÒÕ•5o"r2úAòÍ1<<.ïêìì\°`uŽ´eË–ÇÛÙÙ•——WVV:;;{{{ß¹sÇÌl\ªR53g΄¹¹¹Ò´œ%K–POŸj*3°páB„R>jW×>¦6ì`eeõÑG=xð@¾íííåzø|~eeåÈÈAÙÙÙ<o÷îÝ~~~òz©TñìîînCåCA}fB­­­Ô&žµ§§jW×>¦6ò yò¤©©É××÷ܹs ÃÇÇ'77W ˆÅbsss+++[[[„Ðo¿ý&~úé'µ‘å1§ÊÁƒÛÛÛkjjbccûRRR††&ù"AíêbêÂDcÒî ÿŒSèܹs?~LÍ ‚]»vÙÙÙÍŸ??""bxx˜ÝÜÜØl¶‡‡GAAµäÉ“'mmmÝÜÜ Ðø¡_"‘lذÁÚÚZõ5OSRRR^|ñE{{ûŒŒŒ(t^]©Qó&"§õ lÊLt¼ÕguÝbNïA£'3VÀܹsµ¬­ýêzÆTÏD»¢ùd:à!ȤÁ€Á€Á€¡·€çÏÅÏŸ‹¡³Ð M_È”•• -hlb0—— t"š¨«ÓTV‚Þ¿ 7ï=’D|~>t"“3Ñvžp˜hÓa`@´fÍ1ÚÛEóæÑ©f€"4>7Q÷²ŠŠhV5C È̬&I„™™Y ‹îÐU@Wïþý?I’$T_ÿ¤«‹‘ŽÐU@aa“ùOòL&ƒ¾%…é* +«F^LO*%³²j`óÑZ hiékmíSh [[ûZZú&\Á„¡¥€‚‚û,S±…Åb^½JË’Âô@’dvvJ1OYVVé_»¨B? ]ÝÝ|Õöîn~cc—ñóÑú ÈϯW(X,f~~½ñóÑš Ɉœåñ‡B*•åäÔÊd4+lN3••|þs‹Éf³”þX,&7\UÕãÔ Y-IËìØ±­òÙk×B[·®R\ -= Y5U%"#E%%í„NDwhöy™y`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`ÐhÿäKÄÒÒÃÒÒ: õhùÔÕ)üXVVÖô¥;à ÒrÉ) Ô)Œ&ð1,,,,ƒ ¸ÿ>‹ÅÊÎΖ·°ÙìææfjvxxøðáëV­²¶¶~íµ×NŸ>MUNÒ¦w:,à9í/Ä&]ìøñãNNN|>Ÿ$ÉÁÁÁ… ž$Iòù|„P¿Ò’÷îÝ›7ožæÞ‰¨V ¥zß~ûí[·nÍŸ?_"‘$yñâÅåË—¡üΧ³€'˜‚ ¶mÛÆd2ÃÂÂäÔ&PZøîÝ»öööš{' Z)T±Ò¦T*urr*++#IòwÞ‰‹‹SMMgOíø4ôÒ¥K·nÝÊÉÉ¡Êâ!„lmmœœT«744xxxhîUl!m¤Z)”j§Va2™yyy¥¥¥¡¡¡j³…*ੈ!ôôôDEE}÷Ýw›6m:qâDdd¤¼vhhè×_M}ÖB!!!qqq!!!“ö"u¥>U+…RíòjªW®\ÉÊÊÚ°aƒ³³³Ú„¡ xŽC›ÝD›!ˆ ˆ­[·z{{Ëd2’$Åb±——WHHÕ;44´lÙ2.—{ãÆ–––ØØX„‡ÃÓÜÛßßJMMò÷÷—§õþûïwvv666¾þúëŸ|ò‰RA©TÊápÏŸ?/oLNN¤¦Ñõ#¹\n[[[uuõ’%K¾øâ µ“n1dücÀ… ,,,ZZZä-ÕÕÕfff999Ô¬H$:tèЊ+fÍšåæævìØ1ooïàààI{UK}’ê*…ªzÜ»w¯¥¥¥@ øß»5VO:066vïÞ=Ýzµ!66vÇŽÚ/oÀžÚ €|j"›Í^·nn½šíééIKKËÈÈÐ5;#13oÆUUU½úê«áááo¾ù¦ök¯€§"Úì&Ó4Í`Ôufª`À`À`ÀÐ[€üˆG_è- ²²ƒvÏ«Wb b&XÞÓÆ†‹*‡NDw´z|}WW—üv£é “‘ÇŽÕ0äÉ“¯1™&÷áX·n‹‹Ë¤‹iµ¸¸¸hËÈܺõhd¤!ÒÑÑ‹Ë5ÑßHO ÙÙ5L&ƒÅ2ËΦk=D_ÃÃc7n4Ëd„TJ7Ñ·°9]”–>”HþùM"‘•–>€ÍGgè* '§VaŽ1~–NÐRŸ?\QñAüsþFDyù|þ0lVºAKEEMJgÏ$‰Š‹›¡òÑZ ÈÉQ=í!Õ5Òú èí¬®î”?AVU=îë‚ÊJgè'àêÕµ×½L&ãêUú6§Ÿ€ìì™LÍ홌 ãÍtvЬ˜g]]§§çB‚ø§fíààs„­­5kffVW×ùÒKö`ùM\Ìš A3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,˜qÿ!³eËÀTt ¯o!BÈÉ©:‘©QRR"Ÿ'€Á`hù˜!ŒnP¾÷oaº=ï£ªÏ ÆÇ`°`°`°`°`¦K@{{;õ WÕ =aucÖùœ.¶¶¶Ÿ}ö™)4¦K€½½}\\œ)4¦&àêÕ«‹-¢Šfdd,]ºtxx˜ ˆøøxOOÏ9sæ¬_¿¾¼¼œÚ…5ìò×®][³f••Õ‚ ÔnÖÂÂB//¯Y³f¹ºº¦§§£ñcƒÁHKKóôôtppˆ‹‹KOO_¼x±ÍñãÇåK,[¶ŒÃáDEE)—H$111ŽŽŽ'&&F"‘¨&póæMwww;;»Ó§OOsÒÒ Å«2¤Å•ð‡~¸sçξ¾>GGǪª*’$“’’8N^^^OOÏõëש²uòêOª€Íf‡‡‡?}úôâÅ‹¡¿þúKñ%D"‘……Ebbbooojj*‹Å‰DŠå¤B!!! %%!$’’’Ðd59©ÕU *½G4mu>U¯„§,€Ïç;;;{yyÉ_lùòå.\/ð믿j066öèÑ#‘H$“Énß¾Têúòx pžݪ_éHÀPu>ñ÷&Ç 0å7§±Î§âî€ðW’Ó ‚L,,,,,åŸ&®\¹ÒÑÑ0¡™Í³gÏš››·ù¸úFOéÿ ;;;qe/é]?`€À`À`À`ÀüUÊ«èµý“IEND®B`‚XQilla-2.3.0/docs/simple-api/classItem__inherit__graph.png0000644000151400015140000025025211653571064020464 00000000000000‰PNG  IHDRM}ÀÖbKGDÿÿÿ ½§“ IDATxœìÝy<Ôùðï$ÊU”3t9R$Gçv°Ý­.$ÚPÛ±©I¶R©mÓ¡¶Cw±±ÍHJRJj»)G§I$å*ŠqÎñýý1»~³ 3Æñzþ5óý~>ïÏ{è1Þ}>ßïçK!I’€v§“¤±@Ð>¡ÎhŸPç´O%@Çbcc#éàQQQ’N@¼(¸ß %Q(”‘#GêèèH:‘íÇqqqø íê<€E¡Pètº½½½¤éЂƒƒðÚ=\ŸÐ>¡ÎhŸPç´O¨óÚ'Ôyíê<€VjÇŽ e÷îÝÕGh4E¤¤¤ºº4 “É\¿~}¿~ýdeeõõõ·nÝZQQAÄÛ·o)J“?HýÝüPÐd¨óZ#’$i4ZïÞ½étzõA[[Ûœœœœœœ˜˜‚ rþeddTW—FYµjÕÓ§O/]º”••uæÌ™°°0*•J„’’’‡‡‡(>–õ(h< 5JMM}õêÕ­[·lllÒÒÒ ‚•••••%‚Éd¡¡¡Ñ`—F¹råJdd¤¹¹9Aªªª‡Z°`ÁáÇUTTš^‘WÛíÛ·ãããwïÞíééyíÚµ”””½{÷îܹ³º@ôóó»víZxxø7jL8p ##ãÉ“'ÑÑÑwîÜñòòªëÕ•¤ÀøÂ‡èXHhAAÐéôúÛÄÅÅuîÜùóçÏ$I&&&‘ššÊ߀Á`Ôø¯§ AwïÞ%I²ªªŠ ƒÁf³544¢££I’œ2eÊîÝ»«ã°Ù츸8oooccc))©   ÃñôéÓêhü¯ ¯eJJ ¯1N×ÓÓãïnhh˜““Ã{ejjZׇ˜¤Àøõ‡ˆW×ß À|@«C£ÑØl¶ŠŠ …B±°° ¢Á)½ú»ôêÕ‹ iiiÞ[))©Y³f…††~þüùöíÛNNNA”––Òh4‚ FŒ±eË–”””_ýuÆ µÇRTT¬ŽÆÿºš¾¾>ï…¡¡avv6ÿ©ÌÌLMMMÞµ666u}"IÖ_ø° ê<€Ö…ÃáÐét__ß’¹»»ó¦›Ü¥S§šßövvv—/_3fŒ¶¶6A$IΛ7/55•×€B¡Lœ8‘·lÚX¼Y7‚ ÒÒÒx%f5ƒÁ›i(**Š‹‹«'Ní$ëŠß¨°ê<€ÖåÁƒùùùNNN ÿš7oƒÁ¨g?¹&t;v,›Íööö^°`‚ÂÂ… """Þ½{³~ýzÞµfÍš·oß&$$üúë¯óçÏç?5kÖ,OOÏ÷ïß§¤¤Lš4éèÑ£õÄ©d]ñ ã@кÐh´ñãÇ«©©U177×ÕÕ­gé¶ ]x«¢ÅÅųgÏ®>xæÌ™yóæýúë¯ÆÆÆNNN–––¿ÿþ{>‚“““µµõ”)S&MšäééÉjçÎŠŠŠfff?üðÃ!C|||ê‰#0Iñ ã Ô³"G¡Pètº½½½¤!6mÚ”™™$˜oß¾Õ××á_–IŠ*~pp°ƒƒþB»‡}’:œŠŠŠOŸ>={öÂ… ’Î¥Nm"I€Vë¶ÎãLJêììlee%ÚÈݺusuuI(IŠ0>@G€u[€ÕzÖm;2¬ÛBù<€ö u@û„: }BÐ>a_€ÂbqBB¤¤%t¨óÄ®´´200öĉ¿ K¥¥5%tØW@Œrr¾úùÝ¥ÑKKK-]:vÉ’±={* |»[7ÙŸïà0LVVFÒI@G„:@dØl®¿ÿÃo±ÙÜõë'-Z4ZZZJÒI@Ç…u[ÑxôèíŽWŸ?϶·îá1E]½›¤3€Žu@s—oÝz…N=Z/2r±±–¤3 ÔyÍ™êéy‰Ëåž<¹xÚ´!’NàÿPç4“Y¹eKhppœ9C·m³UV–—tFÿ: )ž<ÉXµ*¨¼¼êüùe?ü0PÒé€çÛ4š¿ÿ£Ù³hDGo@‘­æó¡²’ý믗‚ƒãׯŸ´zµ5…B‘tFuB ¬ÂÂÒŋϼ}›èbi9@Òé4u€P^¾ü4þI….‘‘î½{÷”t: Ãõy {ö,ËÎίW/¥ÐÐU(ò ­@ЀÇßÍ{ÌÈH+8x…ŠŠ‚¤Óê<€úDF¦:8³´ä"''#étu@®]Kvu ˜1ÃìØ±…ÒÒR’N qPçF§Ç/_þ§Ý0__G))|[@Ûƒo.Î{àîNsv»w¯}§NØ$Ú$ I’’Πu¹x1aíÚ ÎÎc·oŸ íBðׯ§¸¹üüóx)’ΠY°n ðááI®®+WZ£È€vuÀ?nß~¹re ‹‹å† “% €`Ý€ "&æíüù'çÌêãc‡kò }@@ÄÇ¿›7ïÄ„ ÆGŽÌÇݵÐn Î€Ž.%僽½ßˆº§O/áfÈïÞ½»}û¶¨¢A‹±¶¶îß¿¿¤³Î’N@’²³‹-:=`€¦ÈŸxñäÉWWW„–A§ÓQçA»::®ÏŸ™öö~={*ŠëÙµX3i[pi&´3¸ß:¨òòªE‹N±Xœ  EÅ®’N@ô0Ÿ—K®YóWzzAXØjuõî’N@,Pç@GôÛoá·n½øë/×4$ €¸ Î€çìÙÇÿíç·à»ïô$ €áú<èXîÞ}½mÛ•µk'ØÚšI:ñBHZZ®««ÿÌ™ëÖM”t.b‡::ŠÂÂÒùóO¬½oŸCkÛ>cÇŽ e÷îÝÕGh4E¤¤¤ºº4 …Byûöm]GøG”••=ztõ¸µû–––R©Ô!C†(**6l×®]l6[àˆÕúöí»pá‚‚!³}ûöm3eÍÐ¡Î€Íæº¹ýÉå’Ç/í~ÈÍG’$FëÝ»7N¯>hkk›“““““CDοŒŒŒêê"Z111¼SRRôõõîXRR2tèЄ„ŸÄÄDOOÏ   ‡SWÌìììsçΛ››ýúU˜d”””<<<šû‘:܇®]቉™W¯®VUU”t.5¥¦¦¾zõêÖ­[666iiiAÈÊÊÊÊÊÁd2 ‚ÐÐÐh°‹h©ªªòÕÐÐØ³gººzAAššZfÞÞÞªªªÑÑÑRRRALœ8ÑØØøÜ¹s?ýôS]1µ´´¬¬¬¬¬¬8°}ûö“QQQiòÌ%@G†ù<hÿèôøãÇÿÞ·ÏÁÈHKÒ¹@£Ñ,--­­­ …œŸ«« …B 8p`=öìÙCÄêÕ«—.]Ê;Ëd2åääž={ÖØ ¥¥¥eddºw°Ñ``` ——¯Èã‘——§R©¼¥ÒèèèÞ½{?|ø°FG …âææÁ{Ëb±¨Tªºººšš•Je±XüÝýýýy«®3fÌpwwçu©¬¬TVVæE¨ÝÃáìÝ»×ÀÀ@QQqôèÑ?nì§hPç@;—œüaãÆ‹+Vü0s¦¹¤s€·ëèèHÄìÙ³…©óêïråÊ•ØØØ={öxxxΙ3',,ŒwÁ\XXXÿþýMMM…I¬´´”Éd2™ÌOŸ>mÞ¼ÙÉÉ©K—.5Ú|ýú577·v@SSÓׯ_ó^ïß¿? ÀÌLÀÝÍúúúééé¼×ÈÈÈxòäIttô;w¼¼¼vwtt¼téoùæÍ›rrr'NØýСCûöíóññIKKÛ´iÓ† „ùÔí Ð~}þ\2tèöùóOp8ÜšW~5Ø,..®sçΟ?&I211‘ ˆÔÔTþ £Fœzºq÷î]’$«ªª‚`0l6[CC#::š$É)S¦ìÞ½»º%ƒÁàˤÆ_ …—/_ÖnYTTDDAAA«¢¢ÂË<%%¥®”””x¯ srrx¯£¢¢LMMù»WÿJKKåååãããI’œ;w®§§g]Ý üýý«Ç æ×ANo°@[ëó ÝârÉU«‚:u¢üñ‡S§N­ô^KÆf³UTTªÐétccã&wéÕ«AÒÒÒ¼·RRR³fÍ 511¹}ûö‰'ª{‘|õY«¶c0zzzA”••yyy9;;ÇÆÆÖh£¤¤¤¡¡‘””dmmÍ<))É‚÷ÚÐа®Â`0tuuy¯333555«OU¯×è.''gkk2hРðððê5èÚÝ«ªªø'MLLêJ ú-´[û÷GÆÅ¥ûû/íÑC^Ò¹Æápètº¯¯oÉ¿ÜÝÝyóIMîÒ©SÍ/v;;»Ë—/3F[[›w°wïÞü{£¼zõªsçÎ:::µG”““[¼xñ‹/fåäääííÍwmii©Ï¤I“xo«+ÎH’z4ZIIŽJ hX,ŽÍ¾¾}Uüý—J$.—üý÷?¿;ÎÎc7ožÞ¥ þŸ ­¾§ m8sæAvvaP‹DFg2+W­ ¼{÷õ®]³--‘ u´¹¹ß|}#þy¼–––Jóò¾-Xp*?¿øÊ•U¦¦½[>€¦iuOþ¨mûö0uõî+WŽoù¡SS³'Mò%IâæÍu(ò mA­ÝÇŒ«W“vîœÕòO»sçÕ¬YG êuåÊ*uõî-<:@3¡Î€VÍæzy]¶¶di9 …‡ Š]¼øô¤Iƒýý’—ïÒ£4®Ï€Víüù˜ôôü3g–´ð¸'Nü½cÇÕ¥KÇmÝjÛ©vÈ€6 u´^EE¥{öÜX¶Ì²_?Õ–wÿþÈny{ÏtvÛ’ãˆê<h½|}oué"õË/ZlD.—ôô ¡Ñûù-øñG³@Pç@+•––ðpçÎÙ -tm›Í]³&èúõ”Ó§—ØØµÌ âƒça@+µhÑéììÂ[·ÖKIµÄc••lÿÒΜqþþ{Ã@Ü0Ÿ­Ñýûo¢¢^/o™"Å⸹ È€vóyÐêp8܉÷kht l‰§œ±XœåËÿ¼ÿÍùó.#FôoZæó Õ¹z5éÍ›ÜÇZ`¬ª*¶³óÙÄÄ÷—.­>þÝ… n y vÑÁ°2­ê<h]csr¾nÜ8EܱÙÜŸ>ïÞ› \-,ú ÓeíÚµ£Fs^Ð–ÄÆÆ8p@ÒYÔ u´"eeUüqkÑ¢Ñ-ð0Ù-[B£¢^œ;·tèÐ~Bv9r¤X³‚¶3yÐʡ΀VäìÙeeU«VY‹{ ƒoÅž>½ÄÊ w×@»…:Z‹¯_ËŽ‰vq±êÑC^¬}ŠŠŠÊÎÎ^µj•¨2Ù³gÏ€ºwï¾`Á‚²²²êSéééÝ»wûömõ9())yxxˆ$~%%%C‡MHHðññILLôôô ²±±áp8µóËÎÎ>wî\qq±¹¹ùׯ_…ELÉ´1$€D}úTÔ§Ïzÿ‡bŠ_UÅž9ó°…ŶÜÜo͉CNo°Yrr2…B‰ŠŠ"âÍ›75Î2Œ_¼A0Œê·÷ïßïÞ½{sò¬vàÀÁƒ?}ú499Ù‚J¥òŽWTTXXXð+¾Z¿~ýرcÙlvõ&“Ù·oßS§NÕhY#1.—;nÜ8///ñ寝ö/«6^5ß2ù4æó@ÂŽ¹£¦¦8oÞH1Åß°!øåËAA®êêÝÄ4?fiiimmmhhÈ?¥'$)))555Þëk×®™™™ÉÉÉijjV¯‡‡‡›˜˜tíÚµÿþçÏŸçd±XT*U]]]MMJ¥²X,‚ :tðàA333“Ë—/Ïš5‹×ØÃÃcøðáÂäÀ¿pI¡P‚‚‚Ø£G={öÔ•!¯KtttïÞ½ÍÍÍ—.]ÊkÉd2åääž={FD`` ———”Ôÿ'Vååå©Tj`` ÷‡ÖHŒB¡¸¹¹EDDÔõ©ù»ûûûó’Ÿ1c†»»;¯Kee¥²²2/BíîgïÞ½ŠŠŠ£G~üøq#~s­“¤ MèÐrr¾öé³þìÙbŠôh´¶¶{tôËæ‡"„˜Ïãr¹ýúõ;qâI’›6m222ªÑ@à|^RRRIIIqqñëׯ­¬¬¼½½I’,..–‘‘qvvÎÎÎ $"??ŸÉdvéÒåøñã999gΜéܹ3“É$IÒÇÇgöìÙYYY)))æææ7nä­ÒO`üÙ1gΜ¢¢¢S§NñåËòºLž<ùÎ;ׯ_ïÙ³'‹Å"I200ÐÈȈËåQPPPã'óèÑ#uuuþîL&“øï|I’ JJJ¼×µ?5÷¤¤$‚oËå’$Ö«W/^Jµ»ûúúª©©…††~úô)""¢W¯^ þ•Ä|´rø× ’´ys¨¹ù¶ÊJ–8‚ߺõ\[ÛýÈ‘Û"‰&L×¹sçÏŸ?“$™˜˜HDjj*u¿nݺñ*›ÊÊÊW¯^1™L‡sïÞ=^ÅSXX(--½oß¾¢¢".—[RRÂápH’444ÌÉÉጊŠ255}ÿþ=A¶¶¶ ãõë×ãÆ[¼xqff¦¶¶öË—/Éÿ.‰Ö•C:ïîÝ»$IVUUñú Ì×%%%…$I6›­¡¡M’ä”)SvïÞM’d]u^ll¬ŠŠ w²Öº-ùß:¯ö§æï^|ii©¼¼|||É 1¹¹ßc¶lùQFFôßEoßæ¯\8k–ÅÏ?yðºÐh46›­¢¢R}„N§7ðÔ ƒ¡§§GDYYÙÁƒøá‡÷ïßËÈȤ¥¥-[¶ŒÉdš™ý³¥³²²òÝ»w<¸uëVsssOOÏÉ“'‘™™©©©Y°{÷îÊÊÊA?~\CCƒ ˆß~ûÍÖÖ6--mÆ :::¼©²ÒÒÒÊÊÊ.]ºÔ•C}úÔÏÏ× ¼¼œËå^¼x±°°péÒ¥Ó§O/,,$‚7Æûï{QQQ\\œ‚‚‚ªª*oî—›¬¬ìãÇW¯^­¨¨¨¨¨H„©©é¦M›êɡƩNþó'C`†<Õµ ÝåË—ƒƒƒÇŒ£­­Í;èäääííÍwmii©Ï¤I“jt¯$ÉcÇŽM:•÷¶ö§®«»££cHHÈÕ«W-,,ôõõëêÞ·oßäääê^/^¼˜@‚:$£¸¸"((ÖÕÕJVVF´‘9îŠçY,Ή‹Å½‹ ¿äçç;99)ükÞ¼y ƒw¡X= rsssss³²²|||tttTUU+++«q>J IDATªªdddÊËË·nÝJDII …B™0aÂ¥K—Š‹‹«ªª¤¥¥åä䂘5k–§§çû÷ïSRR&MštôèQ …ââââââÂ`0ž?N¥Rç͛Nj+A cß¾}õäPÚ3¬Ñ†w_­··÷‚ ªzyyåçç?>22’Á`\¾|yĈZZZË—/¯ë‡óñãÇ{÷îÍœ93##£ú¦ŠÚŸº®T'L˜PTT´uëVggçꃵ»»¹¹Q©Ô°°°ÜÜÜÈÈH//¯úm@‹®üëàÁ[ƒm*-­yä;ÃûôYÿäI¦hà ]Ÿçêê:aÂþ#\.WWW×ÃãúHý×çuêÔÉÄÄ$..ŽwÊ××·G:::~~~ŽŽŽjjj$IÒét]]]CCð°0^Ëâââ%K–(++÷ìÙÓÅÅ¥´´”$ÉÊÊÊ•+Wª««kjj®[·®¼¼¼Æ¸¯ÏãÏ¡Æõyµ÷a©aíèææ&++[\\ÌÉd®[·ÎØØXNNÎÈÈhçÎeeeµ>ü‰éèè899åååUŸ­ý©ù»×åâ⢠ À»m¥®îl6{ïÞ½zzzòòò£FâMÖü5ÿ®ÏƒVŽB ½  *¬áýœF‰üdW¯>[¾ü¼Èw]¦P(t:ÝÞÞ^´aÛ½M›6effI:±vppÀ_RhµpHÏdV.]:N´a?|(¤Rƒí솊ïÑ ¼ŠŠŠOŸ>={öÂ… ’ΠƒÂõyÐÒØlî±cwí솩¨(ˆ0,‹Åqu ÐÑé±{·ÃB“=~üxèСÎÎÎVVV’ΠƒÂ|´´ëד?~,Z±âцݼ943óó­[ë»v|·&´0KKKÞíÀ )¨ó E‘$yèÐíÉ“÷éÓS„aCBžÆúû/ÕÖVaX€6 ë¶Ð¢îßO{ùò“h'óŒ¼/.[6ÎÆÆH„aÚ:ÔyТΞ}0|xSÓÞ¢ X^^åê`d¤µiÓtQÅh°n -çíÛüÛ·_ž=ëÜpS¡mßöéÓ×›7×µä–Èmê<h9çÎ=èÓ§§WWoÝzþçŸ1~~ D{µ@û€u[h!_¿–ÑhñÎÎc;u¢ˆ$àÇE«Wÿåè8rÆ s‘hgð< h!~~wŠzòd›‚B—æGãp¸sæýü™yóæ:99?!W ¥Yå©”T7yyS6û[YY²¨R‚VI¡Õº-´6›{îÜùsGˆ¤È#âøñ»OŸ¾_Ó2EAÁÁÁM똑Qò÷ߟRR ••»Lœ¨=b„šh¨ ê<h 7n¤äæ~ՃΞ=Ëڳ熻ûD‘†]ã³ÁfsÃÓNº—””5|xÿ'¦Oš4XJ WË@ËÁº-´[ÛC** gΈàN[‹3uê.]¤/_^Õ¹sk,›8î•+O÷ï¿ùñcÑ´iC\\¬† i¹z æó@ìRS³2‚ƒWˆ$Ú‘#ÑééQQë[a‘Çfsi´Ç‡Eåç—,XðÝòåß÷ê¥$餠ãBbçïÿÈÀ@cÌýæ‡JJÊ:pষ÷¬þýU›M„H’¼q#uÿþÈ7or§O7]·n’ž®Ã CâUTTzùr¢——móCUV²×¬ùk̃E‹¾k~4zùòÓæÍ¡qqéS¦˜=ºÀÐPSÒê<·ààii©9s†6?Ôþý‘¹¹ß‚‚\›¹Å‰”ìØqõҥġCûFFº·ä}! BbD’d@À£3Ì›¿J|ü;?¿;»wÛik+‹$·fb±8'Oþ}øp´¢b×ãÇN›6¤õTŸ<¨ó@Œ=bdf~>sfI3ã°XœCFÒur)’Äš)--wÍš¿^¾ü´dÉw÷‰ÝºÉJ:#Pç€ÄXXô8°W3ã>|ûýû/gÏ:K|ÎŒË%OŸ¾ÿûï×ôôÔ##× ˆKñ õBâ’›ûíæÍÔýûç63Îóç¼µeË}ûªˆ$±&{÷®`õê ÔÔì &»º~ß 7và‡:Ä寿âeüѬ9A8î† ÁC†ôÕ³4š,$äɦM—TTCCWZXô•l2Â@bA’ä¥K‰³fYtéÒ¬ï™sç¾xñ12r]§N[±­ªboÛvåÏ?c.ünóæ[쉺̈́:Ä"&&=#£`þüf=è,+ëËï¿G,_þ½/ƒKKË]¶Ì¿¸¸<$äç‘#u%•@àâ í±¹yŸ4šÄÛûªºz·5klD•Uc]½úlÚ´ƒÝoߦ¢È€6uˆÞ·oeÉŽŽ#šäþý7ׯ§ìÚ5[VVë¤\.éãs}ÅŠósçŽ téÙS¡åsh&¬Û€è]¹òLJªÓŒæMŽPQÁÚ¸1ÄÖÖÌÊÊP„‰ ©¤¤båÊÀû÷ß:ä4k–EË' ¨ó@ô.\xËfs®__Ûüÿ$ë¶ b/^|LIù0wnÓmÓÓó¾ýË/ÕÔE˜˜0=z;sæEÅ®aa«Qä@[‡:DŒF‹×ÓS1¢“#lÚª§§þÓO-½aÞåËOœNŒ£åÊ*MM¥@ä°n ¢Äbq._Ntq±jr„ÈÈÔû÷ßÐéË[òi\.¹u땳g¸»OpwŸ(ñ§«ˆê<¥¨¨ß¾•;8 kZ÷ÊJöÖ­WlmÍÆŽ5mbõ¨¨`­^tóæóí훘9@+„:D)$äÉwßé©«woZ÷#G¢¿}+Û±c–h³ªGII…³ó™””lÿŸ¾ÿ^÷öˆ®Ï‘),,Ž~9{öЦuÿø±èèÑè•+­UTZh³º/_˜vv~iiy¡¡+Qä@ûƒù<™ðð$™ÎÓ¦ iZ÷Ý»¯khtwuµiRuÊÌüìàp¬sg©ˆˆµÚÚÊ"ïÞ½;wŠ<,ˆÛæÍ›---%€h Î‘¹t)qÂ#9¹¦<¾"!!#44ñĉEÒÒR"O¬¶—/?Í›w\UµÛ_¹ªªŠe÷–¼¼¼Û·oÛÙÙ‰#8ˆÉÅ‹—-[&é,DuˆÆ»wOžd¬];¡ }I’ôö9²“çåÕ«‡c::=]zôëXÁÁÁb¢…[­¡A¢qùòS55ÅqãšrŸìµkÉOŸf]»ö‹È³ªíÕ«{{¿{,•È“sZ îÃѸråéôéfRRþVa³¹>>×§ObfÖ[‰ñKJÊš9ó°¹yŸ  yÐî¡ÎHNþžž?s¦yúž?“]´iÓt‘gUCRRÖܹÇGŒèúô’–¹ @²Pç€\¾œØ¯Ÿª¹yŸÆvd2+¸éä4JG§‡8«†": ÔyÐ\\.–dkkÖ„¾gÎܯ¨`¹»7åî á¡È€Ž u4WBBF^Þ·Y³,Û±¨¨ôر;..V={Šqcä6QäíØ±ƒB¡ìÞ½»úF£’””ÄÿVYYÙÞÞ¾   Qý}ûV„7––––R©Ô!C†(**6l×®]l6»v3þ´ûöí»páBáÓn~¢ýÈmê<h®«WŸ ¨©§§ÖØŽGŽDËÈt^¾ü{qdÅ“œü¡õy$IÒh´Þ½{Óéôꃶ¶¶999999111AäüËÈȈ ˆ˜˜˜œœœOŸ>EEEegg¯ZµJRÉ—”” :4!!ÁÇÇ'11ÑÓÓ3((ÈÆÆ†ÃáÔnÌK;;;ûܹsÅÅÅæææ_¿~f%%%QçÐþa_h6›{õjÒO?klÇOŸ¾ž=ûà×_§ÉËwGbA¼{W0þIíãǶÚ" ˆÔÔÔW¯^ݺuËÆÆ&--ÍÀÀ€ YYYYYY‚ ˜L&Aü]TUUyG455}||¦Oû],uñööVUUŽŽ–’’"ÂÀÀ`âÄ‰ÆÆÆçÎûé§Ÿj4®N[KKËÊÊÊÊÊêÀÛ·oopþÉNæó Ybcß–ΘÑè;m}}ojht_¼xŒ8²"";»hΜ£ÆÆZAA®­| fiiimmmhhÈ?¥'$)))5µ&S¿~ýºxñbmmíõë×WTTÔu°‹Å¢R©êêêjjjT*•ÅbqíÚ5333999MMÍê‹B¡ 8°G{öìá ôòòây<òòòT*500·TÝ»wï‡ÖH›B¡¸¹¹EDDÔ•wÞªëŒ3ÜÝÝy]*++•••yjwçp8{÷î500PTT=zôãÇûƒhH€fX·Ž6y²oc{¥¥åjk»Ç‹#%’$ J¾ûî· ö•”Tˆiˆñ*¶›q¹Ü~ýú8q‚$ÉM›6ÕhÀ`0jÄ!"))©¤¤¤¸¸øõë×VVVÞÞÞ¼SNNNãÇOOOOII166Þ¶m›Àƒü1}||fÏž•••’’bnn¾qãÆââbggçìììÀÀ@‚ òóóyãΙ3§¨¨èÔ©SA|ùò¥¨¨ˆ ˆ‚‚‚9?zôH]]7ÊäÉ“ïܹÛ•d0üÍ”””êJƒ¿{RRÁ·ÀÍårI’ ëÕ«‹ÅØÝ××WMM-44ôÓ§O½zõæ×ANo°@[:šŽÅâm:z4º±—-;7~ü‡+ެJK+§Lñ=ú·ÏŸKÄ_HBÖyqqq;wþüù3I’‰‰‰A¤¦¦ò7XçñëÖ­¯~ªªª’’’zþü9¯Yhh¨žžžÀƒü1 srrx¯£¢¢LMM+++_½zÅd29ν{÷ªë3‚ î޽ˈw°®:/66VEE…7JJJJuÚõÔyµÓàï^pii©¼¼|||//ÃáèêêòÚèééegg <È*33SSS³úm÷îÝeddÒÒÒ–-[Æd2ÍÌþ³]oVLZZš÷VIIICC#))ÉÚÚš¿YRR’…Å?÷_Öó)ª«†Àîrrr¶¶¶!!!ƒ öìY]Ý«ªªLMÿÿ/ÓÄĤ®4Ú1\ŸMwýzб±Vc·8Þ³çú¨Qº66F"χ$É_~ù+>>ãÂ…å}úôy|‘ãp8t:Ý××·ä_îîî¼ù$!#ÈÉÉ-[¶ìÇùùùêêêRRRïÞ½ãJOO×ÒÒx?oâ÷_ÿ¢¢¢¸¸¸òòr{{{*•úôéS???þÆ:Õü«áäääííÍwmii©Ï¤I“xo«‹ÂH’£®ÞýèÑùâØ¥ MÃþyБ‘©Ó¦ á=ŠJ¯^}ºyóù©S‹E˜‡Ã]¾< ¨¨4"b­ø’ Ðva>íÇÂׯsÆ$|—C‡n Ñ¨uÞíÜóöÌ™%ÚÚÊ" Ðn Î€F»}ûe·n²#Fô²}zzþµkÉ+WŽ~þ¯Aþsòä½?þp:´Ÿ¨b´3¨ó Ñ¢£_ZZ––²ý‘#Ñ}úô´µ5k¸©p>dlÙºjÕølÜ#×:ÔyÐ8eeU1„_´ÍÊúšøóÏ?HI‰æ çÇÂ+þ´²2¤R'‹$ @{…:çÑ#‹Åþ¶Y?¿;ÝçÌ&’ÑY,Îò媪*=º@T…#@{…ûm qnß~ifÖ»gOaçæ~£Ñâ·nµ~‘·~¿þz)#ãóÍ›ëÚÆ ¶666³ÙR,–Œ¬ly ç ê<h’$oÝz±hÑwB¶?}ú~÷î²sçÉè4Úã âüýj7ØêèèØÙÙÕ8H’”¢¢.yyr……]XC†H$7¨‹ŽŽŽ¤³ÔyÐ/_~ÊËûfmm$LãââŠ?ÿ|´víDYY™æššíé²j•µµu#ös‘ Q£F5ªúm|ü»'W¯&±Xœ©SMì솭½@¬Pç@#DE½ÐÔT22ê%Lã â:u¢ÌŸ?ªá¦ )**]ºôìÈ‘ºmîÞ‹ª*vXس€€GOŸ¾××W_½Úzöì¡êêÝ$t¨ó ¢£_Ž?P˜mðØlî™3÷íí‡+*vmæ $Iþòˇ<|¸-=Ü,'çk@À£  ¸’’ [[³íÛgZXô‘tRб Îa”<{–µj•µ0¯_OÉÉù¶l™eóÇ=zôÎß¿¾|y•ŠŠP7H‡Ã½~=%00öÑ#F¯^JkÖØØÛïÖ­¹Å.@ ÎaݽûZZZjÌa?~wÒ¤Á::=š9èýûovïŽØ¾}†¹y˜ »{÷õ¾}7ž=ËdÌžmqúô’^½”$@Pç@à K_¼øèî>±Á–.ÄQ(ÍÝyóæÐòò*__ÇVuY^AAÉÞ½7h´Çff}®]ûÅ̬·¤3hê<hØ£GŒN(£FéÕߌ·7²ƒC³öF¾|ùiHÈ“À@—Ö³[I’.<Þ¹3¼K—Î>>v#ÚÐvÍБ¡Î€†=|È2D§ÁÍ~oß~ññã×%KÆ4y  ==/.]:öûï ›D´Þ¼Éõ𸘘˜éìøþ{Ã~ýT›6 ‡Ã]¹2PG§çæÍÓ›A´˜ÌJŸëGŽÔ½wocÿþMü\’‚:•õ%3óó˜1úõ7KOÏôèí¹sÎMèØ±»))®__Ûž!qíZò–-—Y,öþýsçÌÚª®’ä¿L •{ø!''Óà¦ÇçÏÇhi)?¨i£<þqïÞ[¶ü(ñ]èÊʪ¶o;>fòäÁ;wÎÒÔĵÐV¡Î€7n÷ׯe·oS—.‡"ÚÌç@ž>}_VVUÿÅy—.%r¹¤£ãˆÆç­ØZY::¶ôŠmyy•‡ÇÅ'K—ŽÛ¼yz—.ø&€ö ßnP§GZZÊ}ûªÔÓæüù˜éÓ‡të&ÛØà>>×?f†„¬hF‚MñæM®›[@nn±¸wN9yò¤ø‚ƒX¹¸¸H:Ñ@uŠ‹Kÿî;½z$&¾õêÓï¿Ïnläää§Oßßµk¶ºz‹®Ø^»–¼~=]G§ÇµkktuÕÄ:–«««Xãƒø Îƒv×ç€`,çÉ“Ì#ú×ÓæâÅø4†¯¯ÀÈk×^øî;½ šr‹nÓ°Ù\oï0W×€4½víqyþŠŠ‚®®j] ®_O©¨`ÍšeѨ°™™Ÿ¸µfM¿~uF­‡Ó–/?ߣ‡|dä:=½–˜Æh%°n ‚%$d Ú¯žÝFèô„~¨¢¢ |L’$ׯ§÷ï¯úóÏãE‘cÃŽž7ïÄðáý®]ûEt4¨ó@’$ããß Ö¯®ïßyôˆáà0¼QaCBžÄÅ¥ïÙcß¹³Ø¿|ØlîÆwíŠX¾ü‡“'+*v÷ˆ­ Öm@€ôô‚ÂÂÒz.λt鉪ª‚µµ‘ð1¿|anÛ¶`Áwææ}D‘c}Š‹+ÜÜâãß:µxÊqÐ:¡ÎÞÉÊʘ˜h >£žEÛààøÁƒµ 5…ŒÆfs·m»òý÷†Ó¦ Q‚‚=íì|vΜ¡.,WV–ëX¢B’$FëÝ»7ÿÎm¶¶¶999999111AäüËÈȈ ˆ˜˜˜œœœìììsçΛ››ýúµÉ ¼{÷NEåŸGž())yxx46BIIÉСC|||===ƒ‚‚lll8NíÆMN¾i¹tt’Ý‘Z¡ÜÜošš¿DG¿x¶¤¤BWwÃÙ³÷…xüøÝþý7dgŠ(AØlΖ-¡½z­=xð—Ëß@Â#„Û'999™B¡DEEñæÍ›g F/j‚  Fõ[.—;nÜ8//¯&çY{ˆÆZ¿~ýرcÙlvõ&“Ù·oßS§NÕh)òäE˜OÊ«¶[&€€ù<¨éÉ“ )©NuÝ,Â2E IDATl‘ÌfsgÎvÛ¼¼¼oû÷G®Xñ½––²èrüòòª¥KÏÆž<¹hÍ›¶µ6G£Ñ,--­­­ ›ð0 …âææAüw]²ú5ïEtttïÞ½>|xíÚ5333999MMMÞJñÈ‘# ‚ÐÐШáëׯ‹/VQQÑÖÖ^¿~}EEo¸   öèÑcÏž=¼–^^^RRÿ_å———§R©5F¯'y‚ X,•JUWWWSS£R©,‹¿»¿¿?/·3f¸»»óºTVV*++ó"ÔîÎápöîÝk`` ¨¨8zôèÇ7öÇ Ð֡΀š2 ШëB::=~Â#%%9!£íÚÑ£‡‚ø6Ìûôéë´iSR>DDü2uªx×…EŽ$IæèèHÄìÙ³›öÐ-}}ýôôôúÛìß¿? @OOoöìÙæææ cß¾}žžžqqqAäææÖè²råÊìììøøø7nܼyÓÇLJwüÊ•+±±±{öìñðð(,,üúõknn®©©i¦¯_¿æÝÌLÀ“Hø“?pà@FFÆ“'O¢££ïܹãåå%°»££ã¥K—H’$âæÍ›rrr'NØýСCûöíóññIKKÛ´iÓ† „ú´'’žP€Vgòdß_ x*+ë‹–ÖÚ›7S… û¶W¯µ×¯§ˆ.»ÿxñ⣩éÖqã~ÏÊú"¦!šŒbÝ6..®sçΟ?&I211‘ ˆÔÔÿül\·%I2!!AII©Fãê×¼)))$IVVV¾zõŠÉdr8œ{÷îñB ìUUU%%%õüùsÞñÐÐP===ÞèwïÞå5àu/**"¢   ÆG‹UQQá½þäI’444ÌÉÉá½ŽŠŠ255åï^[ii©¼¼|||;hP¯s眻wv~±U¡Ñhl6»ú6‚ ètº±±q£‚0 ]]ÝI’äkhhH„ŒŒLZZÚ²e˘L¦ÀÙµjyyy§:¬žž^vv6ïu¯^½‚––æ½URRÒÐÐHJJ²¶¶æ””daaÁ?zƒÉgffjjþÿæžîÝ» ì.''gkk2hРðððgÏžÕÕ½ªªŠ¢ÑÄ;)B‡ƒu[ø””l6›kaÑWàÙ«WŸM™b"ä¶yçÏǤ§ìÜ9K”ùýëÆÔùóOŽ©äÒF‹<‡C§Ó}}}KþåîîΛ>I’ÇŽ›:ujõÞ†&?~äoÆ+ËÊËËííí©TêÓ§Oýüüê «®®.%%õîÝ;ÞÛôôt---ÞëNjþöœœ¼½½ùï®---õññ™4iÿè &Ï›ÿãMBñ”vwtt ¹zõª………¾¾~]Ýûö훜œ\ÝëÅ‹õ|d€v uüdzgïUUutzÔ>õúuΫW93f˜ çËæž=7–-³ìÛW¥áÖtùòS7·€¹s‡Ÿ9³DVVFäñ[ƃòóóœœþ5oÞ<ƒ‘””TÇ‚‚‚ÜÜÜ?Þ»woæÌ™¼û”””‚øóÏ?‹‹‹:T»ceeeUU•ŒŒLyyùÖ­[ ‚())áb2™ü-¥¥¥V¯^‘‘ñüùóÍ›7;99Õ•——W~~þøñã### ÆåË—GŒ¡¥¥µ|ùrá“'bÖ¬Yžžžïß¿OII™4iÒÑ£Gëq„ EEE[·nuvv®>X»»››•J ËÍÍŒŒ¬¾à ‘Ìr1´VË–[¸°æv<>>×ÍÍ·q8BíZ²~=ÝÌl+“Y!ÒìH’$ÖÒZ{êÔ=‘G-¢¡ëó\]]'L˜À„ËåêêêzxxTx}^5''§¼¼¼ê³;wîTRRÒÕÕ #ø®Ï«nàëëÛ£G???GGG555‹5fÌ… ,XгgOMM͵k×–——“ÿ½ÀŽÿ5“É\·n±±±œœœ‘‘ÑÎ;ËÊÊj^òÅÅÅK–,QVVîÙ³§‹‹Kii©Àky\\\˜Lf=ÝÙlöÞ½{õôôäååGÅ› ¬ç7BâúÜ{îÜîîk'Irôè]“&{yÙ6äÅ‹“&ù8à8gÎPæF’ä®]'NÜÝ¿®Ý0F …B§Óííí%4Bpp°ƒƒþ2B»û0àÿ J²³‹ÌÌúÔ>•œü!3󳋶۶]11Ñž=[Ø=ö„Áfsׯ§……=;ujÉĉ»S cBÿ—””E¡PÌÌz×>ö¬UƒDD$ÇĤ‡‡¯á~Å••l7·€G®£Gë‰*,@û†û0àÿ’“?ôéÓ³öÈ\.yåÊ3a&óªªØ;w†ÛÚš™› ˜lšÊJ¶‹‹lìÛóç]PäóyðIIYC†˜±‹——÷M˜:ïܹ‡ùù%[¶LUJeeUK–œyþüãÅ‹?¬-ª°æóàÿ’’²LM/Úiéé©Õß½°°ôÀ[K—ŽÕÔTI>EE¥³fIKË»zu5Š<€ÆBÿÈÊúRXXZûâ<6›ž4cF}Oà9pàV×®W¯¶I>……¥Ç J.]úYW·jCÿHJúйs§ÚÓf±±o‹ŠÊ¦M«ù úÒÒrº»ORPèÒüdòò¾Íœy¸¸¸âÊ•Uýû«6? @„ëóàÉÉYµ/ölÈ>}zÖßý÷ß#ôôÔœF6?“‚‚’yóN0™•!!+>™„:þñ와‹óØlnddª›Û÷õ÷wóæó€€Ÿ¤¤š»Jðå ÓÎί²’º²Áⲕ‹ŽŽþúõk:VUqed°Þ"‰‰‰’N@”PçA‡ÃMMÍž5«æÎÆ¿+,,:Õ¤ž¾$InÛ6fŒ¾Q3ÓÈÏ/™=ûˆ”T§ðð_TTšMâNž<Ù¨öRRݺvÕíÚUWZZ#/ïIVŠ)1è PçADzz~iieíMU®_O8P³_¿ú®‹Œ|žœü!"â—fæPTTêèxŒÃá^¼¸¢yÂ?;ëÅ‹‘‘Ï##S_¼øØ½»Üøñ'Mlcs K|E@³àK‚ RR²¥¥¥ 5ùr¹dDDò‚ßÕÓ‘ý?öî3®‰¤ ølB ½÷"MP¤)V°!Ø+ö.èé© œ"'ž]°½`QDEEE@* Hé½CʾöÞ\ŽÊóÿù!YffŸM6ÉãÌî qøpÀôéÃZœ¥ýÊËk­­/ÖÔ4úùm–•éLS}ƒGD¤?{–ðüybvv‰œœè´iº..sFVçæ&s::@?y!„¾|ù©¥%Û$ȉÉ,,¬š1ƒÝ íƒŸ²²ŠoÝZ×™½WW7,_~¥¢¢öáÃßåå»fî½Þ‰NgDD¤ÆÆV ,;ožáôézzzŠ]¸L Ï „PbbîСòM6Æ««Këè4ÝÎÔØH;q♵õÈÎL}RSÓ°dÉ圜2?¿Í bn§7£Ré¯_}ò$68øKee݈ª›7O™>}X=^@/y!„’’~N™2„u ŽãOŸÆÏ™Ãnzä[·Þ—”Ô8:Nëð~ëë©«W_ÏÎ.~ð`3û«û"ÿ_TT¥£#gk;aölƒ6W€.yåçW”•Õ ªÀº1!!çÇR6ƒ¶UUõ§O¯^m"#ÓÁËéh«W_KJúéëû[?[ñ"66ûÑ£˜Çc *ttäW­2ôÐó Ï ÄÄŸ¡&ã¶ñ bMïÀeºrå ƒoÙ2¥c;ml¤­Ys-6ö‡¯ïol††û–´´ÂGb>ŒÉÈ(RU•\¼xÔ¼y†ZZ²œŽ 0@Až@_¾ä*(ˆ‰ŠRX7>žha1´µ›**jÝÝߨÙMæïÀi4Æo¿Ý‰ŠÊ¸woc“~ľ(/¯üñãØ‡£r¤¥…fÏ6œ?©‘‘ §ã tçЗ/?‡ ùOZVVIJJþáÖ­U¹p!”‡‡lg7±»c0ð;ï¿|ùåÖ­uÇ÷ád¨¡ïåùî]Š  ïôézÎγÆÓìü¢ Ð% Ï ÄÄŸsçþç~‹çÏÅÅFRk±|qqõµko¦R(MÃm¿þzäç÷ÉÝ}õøñƒ;n/ãåáçS]]?~¼ÖÅ‹+,,taZc@oßJ t55 ™™ÅMúó‚ƒ'MÒi­_êÒ¥PÞÕ«M:°»'žÝºõÞÃÃÖÔT«#árÔÏŸe^^Ƥ§ "ïì æ–ׯ¿a6i’N‹åÏŸ)"¿rå¸_ÝÑ“'±{÷>rvž=¾QÇÃíY••õ¾¾Q·n½OM-6LñÀùsç óq:.hÈóè¾|ù©­-ÇÚ5œ4rä ³™üüŠ[·ÞïÙ3çW¯E{ûöÛæÍvv7nœÔÙˆ{DXXЇGøóç‰ ÏÒ¥c®][³ßúÈóè¾}Ë×Ö–c>¥Ñ¯^%oÙbÞbásç^JH.[6æ—v‘³~ýÍ †ÿùçìNÅÚýjkïÞýxç·ÔÔcãAgÏ.…,}|y0Ð%'çÍ™cÀ|úéSFyy­…ÅÐæ% *ïÞýøçŸ³yx~á«#=½hÉ’ËÆÆƒÜܬ{óm……U·n½»}ûCUUýÌ™z®®V£G«s:(èÈóÐ *++ë45ÿ]°!88IMMJM­…¥f/] æ[²dtûÛ/,¬Z¶ìŠšš”»û*nnrDÜ º»¿yô(F\\`ݺñË–‘ätPÐ Ï`@KMÍG±.ÌœdnÞrgÞÍ›ïvïžÅÇÇÝÎÆ++ë/¾ÄÍM¾ysmnÎínT*ýÑ£˜k×Ââ㘚j]½ºÚÌl‰Ô{{àWAžÀ€–’R && --D<ÍÊ*IK+>çÁƒÍrr¢]qçäçW\½úÖÃ㎣E‹F­YcÊ:¡ ô3ç0 ¥¤ä³Ú††&›šj5¿îÚµ·<<\«Vµw 7· Ç?{zÚéê*´]ºG$'ç^ºôúÑ£II¡-[Ì—/+$Óàú9ÈóÐRR fÌÐ#76ÒÞ¿Ouq™Û¤LeeݵkoׯŸ (ÈÛž6oÞ|æLÈÅ‹+LL4»8Ü_G§3ž>¿zõmTTƈƒà"<À€yWIIuII5³?/**³¶¶qÒ$í&ÅnÜx‡Z¿~b{Ú|ûö›‹‹Ÿƒƒë\-Q_Oõð¿~=ìÇÒ3ô=ú}äH5Ά= ò<®””„óú¼×¯¿ª©I))‰³–©¯§^¿¶té˜ö,ö•œœ·~ýÍyóŒ¦vGÀíTW×x÷îÇK—^VΙcèuõ^8 Ï`àJIÉ¡ÈȈO_¿þÚ|MÛû÷£ÊËkmm'´ÙZQQÕªUWõôOœXÄ©ù++ënÜxwõêÛÚÚÆ%KFoÜ8I^¾‡îéÍS@ƒÎÃqœÓ!Ðç0p¥¦hjþÓ™WPPùåKî®]3Y ÐéŒóç_YY3sÁÖÔÕ5®XáÎÅE¾r…3ó!ÿüYvút°O”˜eëVóE‹FµójÂ.doo?f̯­z¿ðððS§Nq: :ò<®ÔÔ iâqXX yìØÿ̨”“Sºqã$öí0øÖ­w33K¶öüTy©©gφ<~üYZZøàÁÖÖÆ¿´,[=z´••Gv ºôä> ò<®ïß Ç×"¿~ýuäHµ&Óã]¸ðÊÌlˆºº4ûvŽ zñ"ÉËkC›%»Ö÷ï…§O?z#//¶ÿüE‹FñòÂwü ¾ êë©yyjjÒ!Çß½K±µÈZ 22=66ûÁƒÍìÛñð?}:øÔ©Å=¹¤DZZáß¿xüø³ªªäÉ“‹çÍ3ââ"õØÞ ¯€<€*3³ÇñAƒ$B_¿æV™šj±¸x1ÔÈHeÌvÙÛ»w)ÎÎ~ÿ}ŠÍÈî ÷ÿââ~œ<ù<$ä˰aŠ×¯¯™2eÜ­<€*#£˜DÂTU%Boߦˆ‹ °®]‘šZðâEÒÅ‹ËÙ´ðãGé† ·'MÒÙ¹sF·‡‹P\ÜÇÂÂRôõ•nÞ\ ´ ò<¨ôôBYY>>n„Ðû÷©cÇj°¦MîîoTT$fÎÔo­zmmãêÕפ¥…Ï[ÖÝËKÄÆf9–b` ìí½±I¿#€ÖÀ- PééÅjjR!*•þñã÷qãþ]£¬°°ÊÇ'jíZS2¹å¯ß´éNaaå;ë»uú’ØØl›‹3fœªªª÷öÞøô©}?Hò8€aØÑ£G™[¼¼¼°–ÄÆÆb–––ÆZ½ù–ö`mVLLÌÚÚº¨¨!”––ÖMÝ¢555ŽŽŽúúúBBBÆÆÆ‡¦ÑhìSUU]±bX{t>øî;|z Èó 22ŠˆþGuukþtûö{Þ%KF·V÷äÉç¯^%_»¶FAA¬›Âûü¹fx!ǽ¼¼”••½½½™çΛ—————÷áÄPÞÿ :´ wýáǼ¼¼ÜÜÜàààœœœßÿ!$**ºsçÎ.Ü ¡ªªjĈQQQ®®®ÑÑÑNNNžžžæææt:½µÀrrrnܸQYYiddT^^Þž½tSðô'0n À•‘Q4uª.B(,,ENN”ÈùBµµ×¯‡­X1¶É+Lþþ±§N½8rd¡±ñ îìóçì£GÃÂR ûá(mBBBrrò‹/ÌÍÍSRR´´´Büüüüüü¡êêj„¬¬lwìZJJŠhYNNÎÕÕuöìÙ!III֞Ů²ÿ~))©—/_’Éd„––ÖÔ©Suuuoܸ±nݺÖSPP˜8qâĉO:µoß¾6÷ÒMÁП@QuuCAA%‘Û……¥˜˜ü;hëãUW׸n]Ë %'çmßîµ|ù˜+ÆvyTÉɹë×ßœ5ëïââjw÷UOžlëgIBÈËËk„ S¦LÑÖÖfíÒë*•êèè(###--íèèH¥RýýýÊÊÊB÷îÝÓÒÒª©©i^‘L&KKK£ÿ\bæéé©££#..îææFl 044¤P(rrrDRETyùò¥²²²‘‘ÑÚµk‰’ÕÕÕ åóçÏ!"É#8::zxx°V÷î]“À0 Û°aC```kÈZýæÍ›DðóæÍspp ª444ˆ‰‰-4¯N§Ó;¦¥¥%$$4nܸˆˆˆN¾ôv8`¨«kœ9óäš5×öí{4bľéÓOÊÉm{ú4¾¼¼F^~ÛêÕ×òòÊq§Ñè£FppðÂq<-­ ¢¢–µ‘’’ê‘#÷/\x®±‘ֵᥧnØpKAÁÞÌÌ-00ŽÁ`tmû=!äíí; ƒÁ4hÐåË—qwvv:th“©©©M¾–B±±±U,B©©©Ä_]]]---³³³ãã㌌víÚ…ãøŠ+V®\™ŸŸ/##ѤÊÊʯ_¿Nœ8qÿþýMöˆZ¸paYY™»»;B¨¤¤¤²²’‡‡gÍš5999¡ÂÂB¢ÊôéÓ_½zõôéS *•Šã¸‡‡ÇСC ‘e59º÷ïßËÈȰV'ú/™‡CˆŠŠmíY«ÇÆÆ"–¡pâ´yüø±¼¼<Róê'Ož”––öóóËÍÍ ”——oówHÇÙ— ×‚s€bܸCrrÛíåå·ÉÉýóO^Þ^Nn›¼ü6yùm+V¸ÿý÷ yyû/_rq··÷22Ú—MT§RéVVF>PZZÝ…QedÙÚÞTP°Ÿ2åØÛ·ßº°åÖž<ïãÇ\\\ÅÅÅ8ŽGGG#„X ´˜ç5ÇLŒ´µµóòòˆÇÁÁÁ8Ž—••)**êééýõ×_­µ#,,L4Ò$Ï Åq¼±±‘ØKCCCrrruu5Nóæ ±‘¨ã8F“••}ùò%Žã3fÌ8zô(@‹y^xx¸¤¤$kub§lò¼æÈZ|MM€€@dd$Žã‹-rrrj­º––ÖÍ›7™ûºuëäy ƒëó(FŽTËÎ.¥Ñþs!<Žã!"  I Iâçç}õꋸ¸@``luuý¬Y=jµdÉèC‡žÄÄdúûwÙ ¶•'N<óöŽTP»xqÅÌ™úÝ=? ÇyyyÑh4IIIæooo]]]öµRSS544˜OYïÍÌÌ”““c>A‰ŠŠÚÚÚîÛ·/88¸ÅvjkkÿþûïÉ“'gee5ÙÑ¿ÅÍÍM<åááIIIY¿~}uuµ¡¡!kImmm„™L^°`ŸŸŸžž^HHÈåË—‰deeccc§L™ÂZ%66vøðá¬Õ[;^uuu6ؼ:…B™;w®¯¯ï!Cž\SS³µêªªªqqqÌZIII-†@¿y…¡¡ ÎhOI:ol¤!ôOþãø§O™’’‚C‡*°¯HøøñûŒ76¶0YZuuáCÆÆû=<Â,>|ؽlÙnnró’ýOXXXaaáÒ¥KÿoÉ’%©©©ÄEf³`Á''§¬¬¬øøøiÓ¦?žÁ`¬Y³æ÷ß¿wï^HHÈ“'O˜…‹ŠŠòóóóóó³³³]]]•””¤¤¤Ø·ßÐÐÐØØÈÃÃSWW·wï^„q +SSS¶ÿþåËÿ]=ÅÅÅ¥°°ÐÌÌìÙ³g©©©>5j”‚‚ÂÆ›ï…ìçÏŸoÞ¼™?~FFó¦ŠæØZ¨eee{÷î]³f ›×gÆ ŽŽŽ?ÎÏÏö왋‹ ûW€¾ò<ŠÁƒe[›*¥M4½¬¬fÆŒ“þþm$%ÉɹK—^IO/¼uë=ëöÆFÚùó/ÇŒ9xûöû­[Í£¢\6m2ëp<}‘———™™q—+ÁÈÈH]]½3wÝ>>666ð[ ú(¸€ÄØxPllv‹#ª¬p#“±æƒ¼8Ž“Hصko'LÐ=Z½É_ «¬­/ÖÔ42 „•J;{6ÄÐPåøñgééE‹ÚºÕ¼ûÖÏQ__Ÿ››{ýúõ{÷îq:@ Ï`12Rillaá)V†qss56R›l'‘0Ÿ;×hß¾y’’‚MþZYY·pá¹¢¢JfvH¥Ò¯^}ËÏÏ;|¸ÊÙ³Kõô”ºê(@ï1þü7Nœ8‘Ó±Zyˆ‘‘ óHØÌ™zOžªwq IDATÄ7ÙÎÅE8yrÑ”)Cš×jh -_îž™YB£ý§ Ã0k×Ö4¯ú‡ &”––r: @«à> aII!Ö-öï|l\\$KË|\\ÿ~3É$ ì­G¾{·»Å$Ng¬_#&&«ÉÌ|!*•þìYBBBNW€v<€eÔ¨A¬·P‹â „¸¸ÈãÆi=jÇÌØÈd’””§§íñã6ÂÂ|-6èääúµµ[H$Òþ]}Úò<CC #‘0„0nn²””Bˆ››¬««pýúš¨¨ôªªzôÿn¼ &½¿{âÄV—.8þ¥§g8›iùètÆ»w©ááß»ãXz_§€^®Ï``>\•J¥“É$„¢¢þ¢¢*á[·ÖñóóÆ#„¸¸ÈÒÒB'O.?~0›¦îß:|8°ùt¼¼\a T„  Ÿ¦¦tbbΘ1MïÏí£²²J²³K²²JXTTÔòñõ“ô'çÐY!!!éémOJ×K462H$LA7;»nÒ$áçÏ øùÉ ˆ?|xÁÀ}}S1  ››Kýúæë×7­µ“šZ}ï^Žã¼¼$:§Ñp„…B–‘ᕒ╔䕔䑖æäBáø·+W¾u Ú)S¦¨©©µöWÇâ?þ|õêê4Þ¦²²šÌÌ’¬¬âÌÌ⬬’ÌÌâÌÌ’‚‚ â¯RRB**’ZZ2ææCUU%ll®vG ÐçÐYW®\¹ÿ>§£ø’’‹“yx”OŸþ[ZzMYY€“S!Bˆ‡GIDdREEˆ¿®?Ûk긹å$$àx#•ZRSSL£•Òh¥4Z ƒÑð½KGh½½½[Ë󂃓øö-Ÿ‹‹D£1XïùUuu©©M:êrsË©T:BH@€W]]ZEEbĈA––#TT$”•%äåE›,×F§Ww8è&çЬ¬¬|||8E{ÅÆf“H˜ŒŒ°ŒŒÈë×_'N¼FlONÎSW—âáiûk!-­PFFXH¨å;3º óFà&Þ¼ùvèГÄÄŸDñóg™ŠŠD{Ú¬¬¬ÏÌ,"2¹oßòSR ˆQWâ¯ÂÂüƒË,;~¼–²²„ŠŠ„ŠŠ„ˆ¥ÛØØØØØ´³0ôÈóp ”™Yï±ÐÑ‘kg ÒmêOžÄ?þ<5µ€X—•¹Uffq“<ÇñììÒ/¤C‘H˜’’¸²²„žžâìÙúHéšëC‰>`à€<м{—rèP@\Ü..B8ƒå_..rBB…ÂüŠ.+«83³¤¤¤!„a˜¬¬ˆªªÄ!ò3f詪J¨¨Hªªv*¥k‘••U×6‡ÁÚÌt±t=tçt9 ü½½•”†:ô$&&‹D"1-LàÂÃÃÅÏÏ]QQ'$Ä7hqýÑ?§¥%###Òó‘@/ýy€^Š‹KâêÕoIII$ !Ôb’‡¢Ré#F¨ž:µX^^”u hçzúzê‘#RRËK1 Ñéì†p/(¨PRï±ð ¯€ÿûz>>î}ûæ\]¿^ÛÁaêĉƒEDøB$FLÂܤ|NN\‚ÍAž@:pà†aGåx#M¤¥¥µ6 BÈËË kIlllÆÐƒQ3t¨ØöíÓîÞÝœ|8"bÏ¥K+×®?zô …ý“öq#„54Ð «º/è£à> :«ý÷aà8®««[]]-..þùóçŽí®ÅFÒÓÓGŽY\\ܱ6BÅÅÅÇo-w¬«««¨¨@eddŒ;6//Ø.!!ÁÍÍÝá²G܇A¼¼M0ø÷ï…±±Ùqq?>}Êøú5ÏÇç·‘#[]9&¸>€ž“œœüâÅ ssó””--­®j„Á`”””t&6III6„üüüüüü¡êêj„¬¬lgöÕy$¦©)£©)ceeŒb0p:½å»4` ƒq[zŽ——ׄ ¦L™¢­­íííÍÜŽa˜§§§ŽŽŽ¸¸¸››BhË–-k×®%þZ]]M¡P˜]w-62zôhÄ’~•——¯ZµJRRRQQqÇŽõõõÄ^®_¿®££#%%uôèÑ;wî 4HDDdÏž=ˆeÜ–F£íÝ»WYYYJJjÅŠååålލÅ8‰¦?~cÆŒ£G²o$55•ùqnll$“ɉ‰‰ÄS??? b/111̽°>NMMe¶0xð`???¢î—/_˜ ¬;Âq¼Å8‰2ñññDooo"mmí¼¼çР—.]*øK–,IMMe3ÿœ©©)FÛ¿ÿòåËÛÙq3,77·Í–-[222ÿüóÏ¥K—¶?ÔåË—;;;'&&&&&nÞ¼9++‹}ùæq¶nÝš––µ{÷îeË–!„,Xàä䔕•?mÚ´óçÏ·?*y=ÁËËËÌÌLZZš¹ÅÈÈH]]½Éݬˆ!ÑÊÊJKKË6QUU511aŽŠž;wN^^ÞØØØÂÂÂÂÂÂÉÉ©ý¡:99YXXL:ÕÄÄDYY™¸ÿ—æq–.]:eÊ”3fL›6ààÁƒBBB†††“'OÖ××gÞ ›À<ÉtVûçIþUÎÎΙ™™žžž]Þr×jgZZš¦¦fç¿[ØÌ“Ì*7·77÷úõë÷îÝãt,ìp$ÎÒÒšØØìØØìÏŸ³cb2ËÊjB/_:BžM@ž@o1þü7Nœ8‘Ó±°ÓbœÂÂÂvvv]¸—êê†øø±±ÙÑÑ™QQ™ÅÅU!2™Ä\Ã0ee‰.Ü#ô0n @gu߸í€ÕÐ@‹‰É27_8i’UAýçÏRG$Æ`´ü}%&FIJjã¾`€ ?Ðëðð+*j)”aÑÑEÌ­%y!ÉÖþÜo èu0 ›6mXQÑß~¢£#a™Üê—™ŒÑéô ^=}ÿåKnuuCO† ½ôçz/--gçu!!_|’–V€a- ݒɤÚZª»ûÛ‚‚ b‹¤¤ ŠŠ¤ªª¤ªª„ŠŠ¤ªª„²²¤´´P‡y WÃ0ÌÜ|¨™ÙÀÀ¸ƒŸüüY†ãˆõÂb*•áà0uþ|#ñógYvvIVVIVVIvvIp𗌌¢ªªz„77Y^^TYYBEEBEE‚x ¦&-(È˹ƒ€îy  ‘°Ù³ ¦MöèQŒ«ëÓüü f¶‡ã¸ŠŠBˆ‹‹Däp¦¦ÿ©[QQËÌüˆaa)ÙÙ¥Du kæGoÞ™üü*:Î`à MyþùsöüùgB¼&&šûöÍû¥•-„…ùmlFv6î¶´8ò[\\•Uœ™Yœ™Y’•Uœ™Yñ½°ðŸJii!~~î ؃<€RW×øàA´‡Gx|üÁƒeX0gŽ¡°0_Û5û±§O,-Ïed3×%kšš†çÏŸ?Oà›:u¨››5…ÂÓ}qvž¤¤ ¤¤àð᪬kk‰œ/3³xëÖË þyÝ.5µÀÝý¿lmmÃôézÎγLL4;;g¯%%%äç÷»¥å¹ŒŒ"ⶆ_RSSïçýñcÚ… +FŽüåñ\΢PxttäutäB¿ýVÈépäytïáþþ}ª¬¬Èï¿›-\h,##Ìé¸z‚¤¤ Ÿßæ :˜ê!„1HKK¶ë#€¤Oâ@¯•—W~èP€±ñþ n#„nÜX±gÓ&³’ä$$ýü6$ÍÅõŸï CµÑ—ÉÍMöô´¥tc|½É0 ;zô(s‹——Ö’ØØX 쬬XgŠNKKëªîá7USSãè訯¯/$$dll|øða­…K3YEUUuÅŠEEEÍ‹uml]ØhâWOÝ¿ûlÀ¹ÇäytÇÃÂRììn}ÐÓ3|áÂaaNÞÞÍ͇þÒ¼ký†„„ ¿ÿïƒ˱¦z8NLƒÂæ+;uj‘ŽŽ\DØà8îå奬¬ìííÍÜ8wîܼ¼¼¼¼¼> „òþoèС!___ÖÂ쥧§KJJ¶³€¨¨èÎ;õªªªFŒåêêíäääééinnN§Ó›þðáC^^^NNÎ7*++ŒŒÊËËÛ³—ŽÅºONÝ_z÷ÛÆÆûOž|1z´ú³g/^ì°²2îë3áu!aaþ»wíÔÕ¥¹¹I ¾i“™²²„»ûªÖ1RS æÍ;Û³1r’——ׄ ¦L™¢­­ÝÎ^:{{{mmm[[[œeô–P^^¾jÕ*IIIEEÅ;vÔ××=!$+ûÏÅŽ††† ENNŽnc-À:ºÔ¼)„†ažžž:::ââânnnDI2™Ì C@@ÀÑÑÑÃÃhðåË—ÊÊÊïÞ½k-†a6l $žR©TGGGiiiGGG*•ÊZýæÍ›DlóæÍspp ª444ˆ‰‰-4¯N§Ó;¦¥¥%$$4nܸˆˆˆö¼¼ :pê²jòî³?3QKï/‚s¯=º6m`€¨¯§Þ¹óaêÔrrÛ&L8zçÎ‡ŠŠ:NÕ«•–VOšäjl¼J¥[Ο© Ð´KOW×…x°lÙ%ÎÜy¨ýy cРA—/_ÆqÜÙÙyèСM ´Ö)’’’ÂÏÏãÆ&e–.]jfföýû÷øøx]]Ý¿þú‹õ¯•••<<>ÞÈÈh×®]¬ÕcccËX!ƒÁÀqüñãÇòòòT*µÅê'Ož”––öóóËÍÍ ”——oóWúóÚù tøÔeÝÂ|÷Û<3ñ–Þß~vîáÝÓŸ7 Ïf: ;»äàÁ'zz{””lmo¾}ûøÌƒ6•—ׄ…¥°nٴ鎪ªãÿ“<û›7ýˆ!];»[œ µK´'Ïûøñ#Wqq1ŽãÑÑÑ¡„„Öl~,OŸ>-,,œÍ,ÓØØH&“‰’~~~¬-444$''WWWÓéô7oÞMµ˜çµØ±÷ÐÐP¢Q½µßÚððpIII¢Áøøø&Á3±þÖjkk3£ƒƒƒ X«3c«©©ˆŒŒÄq|Ñ¢ENNN­U×ÒÒºyó&s_·nÝ‚<¯Mí|:sê21ßý6ÏL¼¥÷·Ÿ{x÷äy0´@»Ð錧Oÿ$ÅÖvÂÂ…#ddD8W_""B11ÑdÝrâÄ"kkcOÏÁÁIË–]¹Ò!´nÝøC‡üƒƒ“ýý?76Ò¯__Í¡x{‚——Fc½ØÜÛÛ[WW·=u7oÞìçç·nݺsçÎ[ ètººº:ñTCC#''‡µ OJJÊúõë««« Ù4Φ)¢g‚›››x****++;eÊÖbcc‡N<ÖÖÖnmG©©©Ì½dffÊÉý{ÿˆˆH‹Õ)Êܹs}}}‡ òäɓϟ?·V½±±ÑÀÀ€¹EOOÍ!ƒ_Ò™S—‰ùî·çÌlþþ¹×p}m(-­9þ¥©éb’”‹W„‡ÿ¹i“$yÇËË5~üàË—WnÛ³g6±QKKöÖ-[o=‹719ÉÑ0» N÷öö>yòdÕÿ988]€í©N"‘nܸñþýû+W®[dddÈdrzz:ñôû÷ï ¬Uêêꬭ­cbb.\¸À¦q6M‘HM8–.]ºÿ~Ö;kjj\]]§M›F¢¢¬¬ìãÇ­U_¼x±¯¯¯¿¿ÿðáÃ555[«®ªªǬ•””ÄæAûuòÔ%°¾ûí93[<=àÜk[×vП¼}ûÍÖö¦ŠÊÝ>ùþ½Ó ,ïß§2‡t­­/ÄÅes:¢_ƒÚ· %“ÉÌ-Ÿ>}BÅÄÄ0·´9øuñâEâ qâé’%KÌÌÌÒÓÓ†êââB´PUU…ãxYY†aAAA555üñ±/Ö¬»kÞT“½3WTT ---ýèÑ£¼¼¼   55µ6õ`ܶ=¯@‡OÝÖÞý6ÏL¼¥÷ï_ç×çÐ3jj˜÷XÀ$)œuâD‘êMžì&/ook{3=½ÏdÛmæyvvv¬[ †ººúÎ;™[Ú39…¹¹9³LiiéòåË%$$äääìííëêê¨Tª‰‰‰   QàäÉ“âââJJJ.\X¼x±´´4kÖÝ5o o%ÏÃq¼ººzûöíººº eèС¬­­m?k/ƒ’’ÒÒ¥KYs…ÊÊÊÕ«W‹‰‰IHHØÚÚÖÔÔ´ö[‹ã¸­­­  `uu5›ê4íØ±ccÆŒ!:iؼ#8äyí{:|ê²y÷ÙŸ™xKï/±½ßœ{x÷äyþ+½¬ôoß¾å_»öÖßÿ3•ʰ´¾lÙ==%N5ÐMŸ~2.,b32ŠW­goo!"ÒÛWËÀ0ÌÛÛÛÚÚšÓ€_àããccc3áà âëÂÇǧ Û„û0@T*ýÙ³„«WßFEehjÊüùçœ9s „…ù9@¡À@{ÝUUõgÏ{{oÌÈ(>z4Ð×÷“£ãôeËÆ Ì…F à+ h¹¹å‡Œ¹Ó¦;²²"ÞÞCCw.[6’¼ÞƒD‚‚¶“HXc#}åÊkÆÆƒÂÃÿ\½Ú䯿ôÉ“XN½äy  Jxýú+›8އ…¥¬\yuÔ¨~~ÑëÖŠr¹|y¥©©‰Ëœ÷:jj’nnÖ¡êêzKËó¥¥5Û·O vTR·³»µvíõììNǽäy ¿¹}ûÃúõ7®\yÝâ_ËËk‰IR-ºT_O½paùÇ0IJ°dÉèqã4 ¼¢¢ÎÖöfc#MCCÚËkÃõëk’’rÍÍ߸Æ`ÀEðçþÇqW×§»vù2ø›7)Múx’’~nÙâih¸÷üùWÓ§ë½}»ËÛ{ãìÙÜÜäֽʽ{v OC599Ïž‡ÄÆiÓ†……9mÙ2åàÁ€Ù³ÿNJúÉÙ  W<ô ´µkoœ=‚Žââ"ݺõ!T_OõðŸ6í¤¹ùñää<77ëÏŸ÷9;ÏRW—ætÈà×pq‘‰É“ižžá^^ÿ¬ ÎÍMÞ´ÉìÇÝòòb'þøÃ§ªªž³¡@/÷Û‚þ ²²~ÅŠ+ÑÑYÌ‘;*•~çN8//×½{‘%%US§ûóÏYãÆi3Ê‚>jøpÕùóüübÄÄøwíòÕ×WÖÑùg­!w÷UÁÁI»vù'íÞ=ËÊʘ³ÑÇAèórsËgÎ<“M§3X·×Ô4xz~\¶lLT”‹»û*-Hòú³g— ó—•Õ)*ŠÚÙݬ«kdý«¹ùÐÐгfØÛß[±Â='§ŒSqÐQ©ô¤$øÔô+ÿÉó|||0Ð;ôª¹U­­­9ýz4Å|}’“s§N=‘•UB£Ñ›„a˜¼¼èöíS9~§_­Þ«ç9†a>>¿aÊÊ*),¬:r$°Iaa¾æ?|ø{vvé„ GÏŸÙä?€æi7o¾3æàßH$N‡ºL ã¶];3耓'Or:„¦† beeÅé(þqÿþ}âÁÇß—/w¯¯§¶øCÎ`0ââ~$$ä ¦Ø³¶ÀÞÞ~̘1œŽ¢wéðy®§§8þ?¿Oââׯ‡Ížm`l<¨IcãAÏž9œ8ñÜÕõéóçI®®VÌÞžtðàAww÷žß/è°‚‚N‡ÐÓªªê¯\y}ãÆ;*•nk;AL¬díÚb1=ÐÃÆßµm¶çõžŸó‹™ÇôÒÒÒ'Nätÿxóæ BÈß?vófƒÁf6 ò;ánnœ?¥G Ÿ¬&:sžŸ:µèéÓØÌÌâáÃU·m»÷ò¥#w“2||ÜÎγæÏ7úãŸiÓN¬_?aûö©üü<‹úÀ;Þ‰‰‰ikks:ŠB£1îÜyæÌËòòš¥KÇlÞl&++§.§Œ?~ôèÑ]Û&܇ú¤‚ʦM· Ä~F*•áç÷iïÞ9¼=èÜÜäcÇl~ÿÝóë×< »x1ÔÞޢŒC†È?y²Õ×÷Óþýþ|êÉû3`lôfŸ>eìÚå›–V¸jÕ¸'1¯o3f >ô'ç¾§¸X¦¤DŒ˜?…‰›Báä俥ˆ‹  ñ òUAž×ÿXZŽ8s&$5µ`ìX³gCllFÊË‹¶XÃ0++ã ´÷î}¸uëÝ/’þúk®‚‚X @/ñógÙîÝ‚ƒ“.ááa++ ³Ä÷gç>¦´´Ž‡§qȒÇÿ"Ò8aa>aa~ î¥xÜÝWMšäöñcº¬¬ÈñãÏNž\Ħ°´´ÐÅ‹+-åâòÐÔôˆÝÄÍ›Íà?`@ÁqüÎð#GxÜÝWÍœ©DÌG IDATÏéˆ@·ƒyU@#.Î/,\&.^?r¤šŽŽ¼’’¸ˆ’¼IKKÖÂbŽ3ÄÄ(>>‘‰‰m/†1aÂàÐЮ®V^^ÆÆû¯^}K£Áݸ`@((¨\¾Ü}Ï¿eËÆ¼}ëIÞy ;|x>B()駆†Ì‘#í©B"aVVƯ_ï´¶6>pÀÆŒ“qì/ô ¯ ˆ33sËÎ.ñ÷ßêì<‹Bé¹’gu$ÏcþŠŸŸܸq±±±lÊã8¾lÙ2AAÁŽÙ5rss—,Y¢ªª*((hllüðáCŽ„‘––Ö_;Ÿ&Mšôó'¬.ÚA-N/×…íwìÄëýv99Ñ9s B••õ¡¡_££3ÛYQD„ò×_ó^¿Þ©ª*ik{ËÜüøóç‰íþ§±‘¶{·¯­í͹s^¼Ø¡¯¯Äéˆ@ê`Þ‡òòòòòòâãã555mllØ|?æææzzz~ùò¥£Av’’CCC …âíí¹hѢŋ?þ¼ó-§§§KJJv¾_UYYïíim}1/¯¼ç÷Î^^^Þܹs9•Jñ"qÆÛÁÁIœ¤ý˜+¦N6ÈzrŠŠŠîܹ³3QõÚû®]31 +((WS“:{öå/Õ4HêÊ•UááÎFF*ëÖݘ4Éíþý(˜Wô99eóçŸõõýtéÒÊC‡4Ÿ~ô{¼CJJJVV!$++ëææ&##STT$-ÝòÂðuuu!eeåGÙy{÷î4iÒÕ«W‰§C† ÉÏÏ?~üøÔ©S;Ù2ƒÁ())ét€íÕÐ@ Iòó‹ ùB¥2ÂÙÌÇ) £²²’C»ÆÃÿ?zãïÿ¹ªª!|Ö¬>s ócÕUXONIIÉ£Gv&ª^ûaWQ‘07úâEb~~EFFqjj¦¦Ì/µ ¬,áæf½|ùØãÇŸmÝz÷æÍwÓ&OÖî¯]ï`€ˆ‰ÉZ½úš„„àÓ§-fA¿××çqssóððˆˆüsc6•Jutt”‘‘‘––vtt¤R©Ä¤Ì°æˆ¥—/_*++¿{÷®y„†ažžž:::ââânnn!¶wï^eee))©+V”——·Ö>BèÁƒ[·ne {ïÞ½×®]#———¯ZµJRRRQQqÇŽõõõ¬ƒ\¬›‡ÑæÑÑéôcÇŽiii 7.""¢/r]]ãýûQ+V¸kií²³»ò…J¥7™X¤÷øí·ßB , žÒh´K—.ÍŸ?þüù—.]¢Ñh¡I“&­\¹rÞ¼ywïÞ}ñâÅâÅ‹gΜyýúõì‘ÁÀÃÂR¶lñµX±Â}òd·»w?64к6TzF``ÜÂ…ç ”¶A’7u0Ï«©©©®®®®®ÎÍÍýóÏ?—.]ÊËûÏô§NÊÈÈøôéÓË—/_½zåââòñãG„P~~~kˆí'Nœ¸uë–¡¡ak=zîææ¶sçÎÒÒÒ¿ÿþûÁƒ¡¡¡)))‡j­ýòòòüüü&Sœ 2{6oÞœ““ôüùsWWW6ÇÞ$Œ6îÌ™3ÇwuuMIIqvvþã?Úÿ:ÓhŒàà¤-[<õô\¶m»÷öm •Jg0p*µéZ®½Ê… B~~~ÄS__ß¼¼¼Ë—/Ÿ8q"&&æÆÄöèèè‹/ÚÚÚº»»‡‡‡_»vmãÆwîÜù¥¾ÀÈÈô={þecsÑßÿsMM=B½ýõi ócE âÖ´çãÐäädjí„oÒf“¨:ðaï1šš2úúJ4£¢¢ÖÛ;¢°°ªÃM(ß¹cûჳ‰‰Öž=õôöìÙóðçOXÙô%·o°³»µdÉèë××À-\ó<!!!!!!…Û·o;::2ÿtãÆsçÎ))) 6ÌÕÕõÙ³gMê¶VÀÕÕuÒ¤I­Ø´i“¨¨èÊ•+B¥¥¥W¯^=pàÀ°aÃtuuoܸ1vìØÖÚ'.'jm†J¥zyy>}ZMMmذaû÷ï÷ðð`sìMÂhóè.]ºäææ6þ|99¹3f9r¤=¯pe%Ïøèêþ¹råUÿØššÇûd×BPPÐÖ­[¥¥¥ÕÔÔììì"##‰í666 ÅÂÂ!´dÉ …2mÚ4„PUUÛ?Òuu\'N<;öмygoß~_TT‰jlì“éócEhþÙaÕÎCslNøÏíÎ|Ø{’“Ól„°0Žc>>‘lMEEâÀùQQ.[¶L ˆ;öÝ­è謮ˆ€îuâÄó]»î;9Í/55UCC!T[[ëââ²fÍšððpâO™™™rrÿ®Îâaj­³¿­µòòò!nî.#ÍÊÊÒÔÔ$ëèèèèè´V]LLLFFæË—/¬?~QQQ¿ýöÛ›7oJKKétººº:±]CC#''‡5à&W7 £Í£kll400`nÑÓÓk±"Ó«WÉ11ÒµµÜññÿ¼¤ìÓ;cãýììí9[û84'##ÓÚ ÏþÜîÀ‡½‡Y[¼t)TSS&5µ ""}ôhõ.iVPwýú «W›Å{z~´³»%%%´hѨ¥KÇ(*Ââi yüø³³óƒ?ÿœýÛoíú¿%º`Ý3aa᪪ªêêj!!!„Ђ œœœŽ?^QQakkkllÜäˆ8{ölóý._¾ÜÙÙYUU!´yófâG«µê‡ÒÑÑY¾|ùo¿ý&((øðáÃ3gÎ „¸¹¹mll¶lÙâîî^SSC\$**Šº}ûöÂ… Ïœ9Óæ‹P]]MÌÖ|ï6lptt5jTll,órC6(ª²2ÕÇgÏ·où±÷îEææ–qs“[츚2eHw¯Ôyç½y^]]???BÈÔÔÔÝÝ}ãÆ555Ç×ÖÖÞ²eKgâáâ¢JIUûølÏϯˆ{ð :..›‹‹L£µðú ®Êñ[n©ÔÂŽUlÿyØÚDZœœ„OøvÆó«ööûïf—/‡ òbvüøs_ßߺ°q..ÒìÙ³gTúúFݹ~út°žžÒ²ec¬¬Œyya IÀaq›7{ØÛ[@’XuÁȽ¢¢¢°°0sú†ƒ NžíÓ'—gÏV¬GôÛqs÷ö_YYÙaÆ1Çj×®]K¡PÖ¯_ooo¯®®ngg×u;Y·n|P}DÄž;§«¨H „úÓ€ZûÏÃ?MNN¦æ'|;ãùÕ{ÐÑ‘OHø©¯¯žV\܉^èÖÉÈoÚdöîÝîk×ÖHJ îÚuܸC'N<ÏÉ{5Ǽ~ýuÓ¦;kÖ˜nß>Ó±€Þc½èÇÇLJý$¨ gX[[#„|||šlol¤…†~õó‹yþ8ŽGFfÜÃjüü<––#¼¼6DE¹¬^mòâEÒÌ™§FŽ]ïêÕ·å嵡¡_ÍÌZ]ó·[]¹r…Í_••Ñúõ²¹¹b_¾Tzy½»pá•—ŽŽ°¹¹77\Wö¶¶œ¡ ÷î}|ùò‹Ÿßf åæJOO 龨@ÏSSS›2eJ›Å Ï}†á'N,Òё߻÷!Žcµ|U;ޝ[×CÓj€ÞCT”" À“åè8ýر ##•+W^s*Ïû¥`¸¸$«ª4Š‹e?~Ü}!6zyž—‘Q´gÏÃuëÆú¥ŠŸ>}굈@o`eeÕÁ<† z+++N‡ð¯_¿~ýú5§£øñú¬[7^LŒ²mÛ=GÌŽ=& C²²"“'sæ×½ NGÑëtßy®¡!—-''¢¢"!//—œœ§£Ót ¸ž«¡ô ÄŠPœŽ‚:±uë= '§™knôî7Úÿ•òŸnœzllvDDúÔ©º¡¡ÉjjR·o¿?rda7í€pï^DllÖÇ[xx`,´×Î%%%%%%N…z­1cÆp:vLL4Ÿ<Ùfcs±¬¬†5ÕÃ0,55ßÔôˆ‰‰æÊ•ã,,t¹¸8sÁSoË’ C‘‘3fè]¹òfóf³k×Âvîœ!*JáthtDiiÍ¡Cë×O>\…Ó±€¾®óýŽŽ\`à6EE1.®üåæ&OŸ>,(h{P½ŠŠÄæÍººîÙó0+«„³¡‚ž¡©)ƒã(::cĈARRB||Ü\\$oïHNÇ@8ñŒËÞ~*§} äy ŸPR÷÷ß:x°,77!D¥Ò—/‹ÒÓSrs³ŽÝ·cÇ´¤qãÙØ\|ò$–³sç‚"‰aØ×¯$6y²Nhhò¼yFwî|€ë“@_”œœ{ûö‡;g òr:ÐÇ@žú))¡G~=Z!¤ª*1nœóOÂÂüëÖÿÞùÞ½ ¢¢”M›îŒ¹ÿĉgÅÅÕœ‹t#^^. ÁŠŠÚââj ÝÏŸ³gÍÒOO/ЉÉâthü²½{éé)Z[ät  ïk9A¿" Àëáaëà९¯ÔüÎq 35Õ25Õ*(¨ðõýtýú»3gB¦M¶lÙM¸Ó¼ŸQS“,.®JNÎ?^‹——;#£xÈy/¯ÈáÃU9¿àåËä÷ïÓ<س"ƒ€þ<Ðßps“ÏœY²l»{GddD6m2ûøñÏsç–•—×.Zti„£çÏ¿¬¨¨í±8Aw4HЇ‡+))W@€wÚ4]?¿è… ýý?××S9ZË8€aØÑ£G™[¼¼¼°–ÄÆÆ"„jjjþøã}}}AAÁ‘#G9r„F£1 ³²²b¤NKKë¦ÿÉÔÔÔ8::êëë >|˜+ÖøUUUW¬XQTÔÞå};|÷~wÃqÜÕ5ÐÂb(1RÑ3~éTìÌ;Û¢ÖöåëëÛù7qž®ç~Ã0>>î6‹qs“gÏ6ðöÞøöí®©S‡;÷ÊØxÿø|ù’ÛA‚î&//ÊÅEJM-@Íû{÷ÐÄõü]ÂÞK6ŠB•!*P,Ž ⨠°ŽŠ2´V¬ŠÔbíOqà@ ”jqT+¢¢ëe È +ã~\›¦„ ðýü•¼¼»÷=îA¾¼w÷nÖØœœâ Ì[ZÚoÜøKÜ¡qãxRR’±±qrr2»ÐËË«¢¢¢¢¢"33!Tñ++«¦¦&;;»‡FEEåæænÚ´)!!aêÔ©Læß†IIIáÜ•ˆaäääDGG?~üxóæÍ‰‰‰ì08effVTT”——Ÿ:uŠB¡Œ;¶¡¡AVÔÔÔÂÃÃ…ûÀpçÎëçÏ?lÜèÙg-v·+¢nžÙ¢¢"--~Ï(âÕÖĉ{Ù iwÅ8ŽãxSSëÏ?gº»ïÕÓ[ÿÙg?üüsfKK»¸ƒ=wæÌ}cãÞÞ‡poogŒµ%6ö–¿ÿÑE‹Žõe¡äää.«åååa–––†zýúu‡O ;ü¹ qvvf0ì*•jbbräÈ¢ÑÀÀ@ ŠŠ ^{ ^aÄÅÅu¨‰*,,d¿e±X...B‰+AŸHkú&ÁÍœ¹Á‚#½ßàG×Ý®ØÝ3+xWz§•¤îêííMŒÙw Æóø›’’ìÂ…Nii!ׯo°±1Œˆ¸èà°c×®+ïÞÁR,’žžÎ$VÒ‘–&{z~réÒooû;w^}üØ$îè:JJJruuuww·´´d.!!!""‚L&³KÉ·ÁÁÁ–––x§[Œ¯\¹2fÌ===ö܆a'Ož9rä!C¢¢¢~þùgSSSUUÕ­[·ètzhh¨ŽŽŽ¶¶vhh(NçFhhhBB1÷”žžnllüçŸvˆð   «W¯òÚ9çæñññÄ4Ö¬Y³6lØ@lÒÖÖ¦®®Nì¡óæL&sï޽ÇWVVž8qâÇ9 ýÍýûo?.ݰ¡ïóP÷»bÎlçÎ6~üx„®®.Qk¿âŠs6ºk7!ó@566ÇÅe8:î40öñ‰½té ÎwP ž=+×Ó[od´‘Á`â8~ÿ~¡žÞúìì·á'NÜí³0ãy,ËÔÔôèÑ£8ŽoÙ²ÅÊʪC…ÿß×××#„ª««;T{ðà††þÏhDAA¼¼ü©S§8÷@¡Pddd–-[V^^ž€úøñ#±‰ŸŸ…B9~ü8BÈÇLJB¡=z!TSSƒãxttôܹsß½{—ŸŸ?vìØM›6ñ ãþýû:::D‹Ó¦M»uë•JEÿ Áq<''GMMxÝy眛×#âÿÌ'²X,ÇSSSõõõét:×Ícbb´µµ/\¸ðáÇ«W¯êëëwù}×Çó/Ž›5ë'¡ìJÀ£ënWÄ; }ág–kgë°‡ÎçŽW[œo¡» >ž×¿ú4ý “ɺ{÷u@@¼‘ц1c¶íÛw­ººIÜA”—×éé­×Ó[_^^G”L™½~ýÙuëçÎ=Øga’çeeeIIIßO?F={öŒ³×<¨Ï)33SKK çøê=pà€ŠŠÊ»wïØ{hkk{ùò%•Je2™ìš¡ÜÜ\ÇÛÛÛ;¼&*XZZ²gÓÒÒlmmù¤›ZZZD‹ùùù쟟/ÎÎ;çÜœ}zÀåyeeuÁ¿ÿž/”½ xtÝíŠ8ß3˵³uØCçsÇ«­yÞ ï®‚çy°® ü°—b©¬lLL|púô}XŠe PWW$^”—ר#„.tÚ¹óò¾}¾_}¶¶–ª©©$Öÿ•””Ä`08/NONN¶¶¶æU_MMMWW÷éÓ§nnnœåOŸ>µ´´ä,Y³fÍ… V¬XqðàA¢DFF¦  `åÊ•T*u̘1œ••••BÒÒÒ^JJJôôôØoUUUÙa¸»»wcܸqÄëñp*,,433ãµs®›+((xyy¥¤¤Œ5êòåËOž<áµy{{»­­-»ÄÆÆ†WýVRÒÃ!CT<<¬ú¶ÑîuE®Øg–Ogcãuê»ÝU@p}ÑÕUݸÑóñãï`)–BAAFFFŠDÂ*+‰’¹síI$¬ªªQVVêæÍâ Éd&''ÇÄÄ4ýcÆ Ä Ÿ­üýýwîÜɾOÐÏÏï—_~‰ŠŠòóóã¬F"‘N:uÿþýcÇŽ%--->>>¡¡¡¹¹¹±±±‚ÇIŒy#õõõYYYD;vìà¼]‘F£EGG{zþ}IçW/'Ç>;纹ŸŸ_JJÊ¥K—ÆgaaÁks“¼¼<öVÏŸ?üHûƒuöl–¯¯}_>•»g]±Î3+Hgãuê{ ºë¢tWaaUdäeKËo,,ÂCC“Ÿ?/¶ææá'Oþ{5^pð/Îλ—,9¾t鉾‰u5o{ûöm2™\UUÅ.yôèúg*ŠÐy²¬±±qĈ“'O¾~ýúëׯ¿ùæ„¶¶v[[ÞiÖéðáÃÄØ3Žãõõõ†]»vX~Ýç&\_¯[·nÞ¼y%%%yyyŽŽŽkÖ¬a‡áêêzíÚµ‚‚‚ .XYYMœ8±µµµC̈c¡Š;wîxyy644ŸvÞ9çæœ¯‰ëÙ-,,8ç¹:o~àÀmmíß~û­¢¢âÚµkÆ ëòû®_ÍÛÞ¸ñ—ApiiÇ©ùäèzÖùœY®ØCSÓßÀpíW\Ûê0o;È»+\Ÿ@_ –bqsÛK±ôOŸ~eeµeß¾ëì’ÂÂ*Cà ááçMMC››Ûú †.ó¼ÀÀÀ©S§r–°X,33³ððpv ×u¨TêÆ­­­åääÌÌ̶lÙâêêêëë‹s[ÂÃý‡˜˜ ##£ØØX???mmm\€/N …²téRuuuMMÍ€€Ö! ++«ÈÈÈæææÎ1sŽ/ùûûsæwÎë‹Çñ€€%%%*•Êgsƒ±wï^sssEEE'''bÄ…ÏYÀûYž/Ü«H9ºžuEþg¶sg£Óé“&MRRR"*ðêWÛêVž'ñÝUð<û3 à*?¿,!áAJÊ#%%Y__ÇE‹œŒ5Å@³gÿ¯¤¤vÆ ›ÈÈ9쯿>ûðáÛŽ_:uj÷.<ê Ã’““}||DÝB¨½½=77—X·t×¹sçØY²xµ´´[[oݶÍkñâ ÂÚgÿ9: ÄŸ”sçÎuY®Ï@llŒöìñÉÎŽ üôòå§&ìòõ=|ùòS&“%îÐ5uuE Õ×Ó8 ƒƒ§~øÐ`l¬yãÆ»f«K222äI€ŒŒ×mmôiÓ>w @@ž€Ðhi)­^í–™¹å—_‚ÔÔ¾úêg{û?üp½¶–*îÐ)UUy„°úúÿÜ+cb¢5kÖØúú挌Æë#+ IDAT×â >®]{6v¬É!ÊâHÈó2b)–£G—ääDøû?}úþرßž¾w¯@Ü¡ :JJr8ŽS©mÊ×®uol¤½__\Ü«® t +-í9 æa<Qé°‹¯ïa—ï¿K£uL;€ˆ(*Ê0™¬ÖÖöå:óçÇ0ìæMI›º]NNqCC³§§È¯ƒäyˆ–´4ùóÏm““Wݽ»ÙÕÕ2:ú÷1c¶……{ùòƒ¸C“| ²t:«­Ñù£mÛ¼ddÈÇßëû¨àãþýBccMSÓ!âHÈóè#ææÚ;wÎ~òd{D„Wnn©›Û^OϘ„„\³ ŠŠ2L&ƒëOXYYnúôÑeeu÷îÁUz ÉÊzëäd&î(€ä€<€>¥¤$»p¡ÓÍ›¡×¯o°±1Œˆ¸èà°c×®+eeuâM)*ʶ·3ÛÚè\?]¾Ü!´qã9HµA?ÑÖÆxü¸düxÈó€ÐÀóm£={ŒÂ¦''?üùç‡ßš8ÑbáB§éÓmÈäÿ#–·íÏ\\\¶nÝ*î(¸SPmoç>ž‡úäCyy™ÊÊÆƒÓ7nü¬c ³¼¼wmm ÏByâD,ŲjÕ”û÷ |õÕÏFFþþãçÏwÔÔTBݼysüøñFFF⎔»¨««‹; žeqñZÅPZšlggÒÜܾÿöö&..#DFzzzCCƒˆv„åñãÇâåäë訊n•uöc޹jiaÊË“EÔ4®¢¢"âñh]‚<ñ#–bqv^YÙ˜˜øàÈ‘;{÷^ÿì3ë… BÁÁÁ}ó4…è·eøW°µ5NK{îînµ~ý/7o†jh(Š" þ_®°åç—ÛØŠnÿ\ËÉd%EE{«šš$£Ft!0σëóèGˆ¥X>ܺkלââj_ßÃJJâjSR’C!„ñª`ccXXXµ{÷99退x:)ôy%è?„Þºåùó÷VV¢Ø³×ã-.®^»6ÁÀ ÐÊÊí§Ÿ77Wöñô˜ =CçÐ)(Èøû;ݸrùòú–¸´ç””dBñüò=Ú˜Éd••ÕŸ<¹,/¯,"âbŸÅ@4Z[IIͨQú}Ó\CCóÖ­'O޾w¯pÛ6¯Û·Ã½½í¥¥aÞVÒÀ¼-ý׸qC™ÌFqG1€)*Ê"„0žÃyÈÐP]KK)/¯, ÀõÇýO›™i¯XáÒw!ðׯ+Y,ÜÊJäy“ÉJHx°gÏ5YY©­[¿ð÷w’•…d@bÁ©H,b<Çy'zÙØåç—!„fÌív^QQÆÏo|…À? «äåeDwáÖ­—«ª(ë×{,_î"''-Òæ€ØAžXrrÒ†IKó»@ÅÚÚà?þ"^ûû;•—×oÚ”¢¦¦}¬´´ÖÄD“sY%᪩¡FD\LM}âæ6òçŸWÂ#7 ¸>€Ã0oooœãò7oÞ`|f+ÿ«[• ÃddÈü/9>\·¨¨š}FXØ4ooû  Óì䀾ñî]­¡¡†ˆvþÇM™•õ6>~ù™3ä "ç RRR’““ÅE$-Mæ?@bn®M§3ß½«%Þb¶gϼyöñê¾TVVgd$ü<¯¾žxzéÒžžŸddlòð°z ?ƒ<I¸zõêÊÊJqÒïHIu™çé`öæÍGv ‰„íÝëãçç¸bÅ©3g2E#!TVV'ôñ¼‡‹>ûì‡{÷ ŽY¼g²²œp÷ú?ÈóÁÁÁ–––x§À¾üòK---CCÃÖÖV&“¹wïÞáÇ+++Oœ8ñáÇDM:ª£££­­J§s,ìÀB&“øOJ+(Èè驾ySÅYH"aQQÞÛ¶y}óMÊÖ­Y,1/«$Îüø‘bh(̧˜9“éã;b„îíÛa_|1Fˆ{܇€$ “Éñññ£G>}úô—_~ÉùÑš5k*++³³³i4Ú‚ ”••UTTöíÛwäÈ‘ñãÇ?yòdåÊ•DÍýû÷?zôˆH #""¾ÿþ{1ŒPII‘ºÌÒÌÍu8ÇóØV¬p‘——Þ´)…JmŽö–‘?˜@Têêh,>dˆ²PöÖÒÒ¾qcòÕ«y»vÍ%«-ø³€„°°°ˆŠŠúúë¯ÝÜÜØ…t:=)))//xBÎŽ;ÂÂÂH$Òž={fÏžÒÓÓûþûï—,Y‚:uêÔíÛ·uuuŒŒ¢££CCC% Ï#“It:÷çÛ²™›kçå•qýÈßßÉÐP#(èÌÛ·ÕÇ/ÕÖÎ×0ÔÕÑBByò^yyý²e'*+ÏûÊÑQ Gc ó¶HŽ5kÖŒ3fÅŠìÙÛªª*&“iffF¼577////++³µµeoeccC¼())ÑÓÓÃ0 Ã0âââ>Ž_4°övÿ¦¦Z¥¥<Ÿééê:âÚµ` ¥eÚ´˜ÌÌ7„„—çåç—yyýÔÖÆøí·uäy’„D":uêþýûÇŽ#JtttÈdrQQñöíÛ·&&&yyyì­ž?N¼ÐÒÒ*,,$žœX__Ÿ••ÕÇñ‹‹ÅjkëâBCCCÚZZk+Ïj&&Z—/mmmàãu•Áèb€€îª­¥’H˜ššBovòða‘·w¬™™ö•+ë‡ ƒ•SBç aLMM÷íÛ÷Ã?o¥¥¥}}}×­[W\\ü×_}ûí·þþþAAA¡¡¡©©©•••ׯ_ˆˆ *Ï™3góæÍ¥¥¥ùùùžžž‡ßq ‹…·´Ðù_¢g` Žãø‡ |ê(+Ë>½bÿ~¿'îyxì}õªBØ‘‚A­¡¡YEE¾7‹$ÿþ{¾Oìôé6gÏÂ}µ€ ò<$M`` »»;ûíÁƒõõõííí§N:uêÔÍ›7¯^½:444$$ÄÜÜ|ÇŽgÏž%jFFF*++3fÊ”)£GŽŽŽÓÎÄq¼¡¡™O}}5„Їõ]îÍÛÛ>==TYY~úôýÇßZ”`УR[‰Ç1÷ÌÕ«y«V™;×nß>_))øfÿ‚û0ð:¬¥‚aØ7ØoÕÕÕÏœ9Óa“{PVV>yòäÉ“'El_#.Ϋ©iâs哺º‚¼¼Ìû÷üÆóØŒ5ÏŸÿj÷î+Û¶ý–•õvûöYÂ\  N--tyù>jöúõg«VYºÔù»ï¼$õÙ6 Ç ëH,:ÙÜÜŽúø±‰O5 ÃôôTß¿ïz< ++µ}û¬ääU•®®Q‡¥³›@Ï´¶Òååez°aZÚóÀÀÓË—»lß> ’<Ðäy‰ÕØØ‚㸼¼ û±f¼¨ó¿>¯³I“,nÝ ß´iÆO?Ýtqù>=ýe/"ƒ]KK{ò¼ÌÌ7§çͳˆøBQ y@b—åéé©v™çéêªVWóóãJJŠ´b…ËÍ›¡#Fè-^·vmbii ÀUk+]N®{ó¶eeu§'M²ˆŠš#y€È󫡆22Òè2ýÒÐP¬«£ö¬##øøåññË?.qqù~óæ”ªªÆží Z8Žº•ªQ(- 1B÷ĉeÒÒd‘Å<Èó«¾¾!4lØ.ÇóÔÕkki½iËÃÃêÏ?¿9xpá½{;ÃÂÎUUQz³C0¨`êôljž V@Ài&“÷%$y€?Èó«¡¡YVVÊÚÚ    çû-ª¡¡H$…½A"aŸn{ëVضm^iiÏ]]£H«­íá0!T0 ãßE9EE]}ô¨øØ±/ÕÕ…ðœ4 Ù ÏH¬††f55Å#ôh´¶²²:>554)”¡<èBFFjÙ2çÌÌ-_íqìX†ÝöÐÐs•½ß3`‚çed¼>|øöîÝó¬­ Dç$Vcc‹ººÂˆº†½~Í/ÓRWWìr9ån‘——YµjrvöÖ;ç<|øöÓO£½¼~º|ù)“ ÏL\`†P׉^UeÍš{û>ˆ HÈó«¾¾YMMAQQÖÐPýåK~O*SWW@Õ×÷ê½Îe.tJO‹]ÔÞÎ <=jÔ: #a ðññîï1 ë¸àyg8އ…SV–Û±c¶hbýȹsç„rZáyôw‘‘‘qqq⎂»gÏž¹¸¸ˆ; žhăáÇŒ1~ü¸„OMy„PSS«(–&Ïš5vÖ¬±mܸSCÃqÆ ¢htKLLŒ¸Cø†a]ÎÛ¦¤½¯"®ÏH¬††UU„••´497·”WMii²´4™Fƒ<ˆ ¿uU²³‹~ýõѶm^JJ²}ç$Vcc³ªª HÈó’‰Fkg0XÄxBÈÕuDuuÓóçxÕWPõ}ð"''Í5ÏÃq<&æiÓl¬¬`UdÐç$Scc3Bˆ¸>!dmm ®®x÷îk^õ¥¥Ét:³‚ÌÎ;1 ‹ŠŠb—$%%q]jëéÓ§T*5$$ÄÔÔT^^ÞÂÂbÛ¶m­­ü–‰yóæ †a=ˆŠF£…††Ž=ZYYÙÞÞ~÷îÝ — GÎðLLL/^\]]-`=ŽMˆ{ècòòÒ--\ò¼kמVmÞ<£ïCâ£[=!TPP0cÆ uuu]]ÝY³fååå±7ìM?éz&Wç$Scc BHMíïñ<2™4mÚ'W®äñª/%EêWyŽãIIIÆÆÆÉÉÉìB//¯ŠŠŠŠŠŠÌÌL„PÅ?¬¬¬Ö®]›››û믿¾{÷îĉ©©©¡¡¡¡¢¢"--­ÎûWSS ïnTMMMvvv999ÑÑÑ?Þ¼ysbb¢‡‡“ÉåG—™™YQQQ^^~êÔ) …2vìØ††AZéYlšœœtK —ËLŸ>Ýfذ!}/Ýí™eee&L000¸uëÖµk׌_¼xÁÞ¶Çý„ôLžpDþY¨§·¾¶–Ê.ÉÈx¥§·¾¸¸škýiÓbvìHuTÞÞÞÞÞÞ‚ÔÌËËÃ0,-- !ôúõëŸvø®¦¦–••Å~›‘‘all̵fo„„„8;;3 v •J511‰‹‹ëP!TXXÈ~Ëb±\\\"""„ ‚µà碜;—=thH‡ÂÞèé­ô¨¤ob@%''wY­»=300ÐËË‹Åb±K–,Y²xñbv£Bé'’Ô3qÏ… `< ™›1 #tA˜8ÑBKK‰×ž”Tÿš·MJJruuuww·´´ä8áEEE%66¶¶¶–xëââRZZŠ"²ÖÕÕEÿÌ¥§§ÇÇdzç0 KLL9r¤††Æž={B8Ž9rdÔ¨Q***S¦L¹rå Q9!!!""‚L&³ÛUTT MHHàÜùŸþÙ!< ‚‚®^½J¼¥Óé¡¡¡:::ÚÚÚ¡¡¡t:kl³fÍb?;¤­­M]]ØCçÍ™LæÞ½{‡®¬¬>|S‡Âä©S÷q­?gÎÿ6o>/ê¨Cb±X¦¦¦GÅq|Ë–-VVV*tøã? dee=<<öîÝ[RRÒ¹&ñzÚ´i·nÝ".œ"ÊBóæÍ«¯¯'ž°W[[g``pýúõêêê´´4sss„P}}=B¨ººã€èýû÷utt8wN¥RÑGMpÏÉÉQSS#^GGGÏ;÷Ý»wùùùcÇŽÝ´iרˆùAb((55U__ŸN§sÝ<&&F[[ûÂ… >|¸zõª¾¾~—_pýjþüÍ›7óÚ|øðáñññì¶NŸ>=°ò¼{÷ :\fpèPº¥å7--í}ƒ ¹Ew{æû÷ïBœY]‡a&>ý¤­­íåË—T*•Édfdd5 †®®nzz:ŽãÓ§OŠŠÂq\Âz&ó¶Ð% ¥EYY¾CáøñfÖÖññçnBd2©Ã¬™%%%1 --- ÃÆ‡â?AF£Ñ’’’BŽŽŽ[·nÍÏÏÿæ›o¸V¶´´ì\H 3HKKoß¾}kmmÍþtÔ¨Q!555]]]bHƒÓÓ§O‰ yíœPXXhffF¼.))ÑÓÓ#îyôðð(..溹‚‚‚——WJJ F»|ùòÒ¥Kym^VVfkûï2Â666¼ÂèŸäå¥BœK«¤¤<úüóÑrrÒâ Š‹îöL]]]999"=Bÿä7uuu|6a÷™‚‚OOÏqãÆÅÇÇŸ’Éä9sæ\¸p¡¦¦ææÍ›þþþz&_ç$Ö¦  Ó¹|á ©©OˆUWú'&“™œœÞáÚ°añÏ=¯Mp_°`Á³gψ·†}öÙg\•@É'é?_C‡}þü9ûíË—?JÄßßÇŽœ÷0Òh´èèhOOO>;'"<|øðŒ¯BŒ²ßúõõõYYY¼6÷óóKII¹téÒ¸qã,,,xmnbb¹Zgð‘ϱó¼—/?¼zU1gÎ8±ÕQz&‰Drss;vìg!ŸÔ³Ÿ´´´øøø„††æææÆÆÆ²ëx{{_¼xñܹs“&M244$ ¡gòy@257·+*ryè¬YcÉdÒ… û>$Ý»wïãÇþþþJÿX°`Aaaaçá 6%%¥Å‹ûúú^½zµ¨¨(333$$ÄÏÏ]¸,Ip«W¯ »qãFmmí­[·¾ûî;âò󈈈?º¹¹]¿~½°°ðâÅ‹ŽŽŽ«V­ê¼“êêêÊÊÊ÷ïßgddÌž=»¸¸˜}éúœ9s6oÞ\ZZšŸŸïééyèÐ!^‘L:µ¾¾~Û¶mË–-cvÞ<(((44455µ²²òúõëÝ:^±ë祦>ÑÕUup&Ö :êAÏDíÚµëçŸÏÏÏúôéöíÛãââ8Ó&^ý¤­­­½½]FF¦¥¥eÛ¶m¡¦¦&„q_íŽ;-ZÄÞ ôLž„2û ýͪUg–.=Áõ£M›ÎÛÛooogpΟxÆ$QG%È5aS§Nå,a±Xfffáááì’Î×ç1Œï¾ûÎÆÆF^^ÞÄÄ$<<¼¥¥Çq:>iÒ$%%%œÛµzÄkÄqÅñšÉdîß¿ßÌÌLUUÕÓÓ355uÈ!D*•ºqãFkkk++«ÈÈÈæææÎ!q~ÑùûûWUU±?¥P(K—.UWW×ÔÔ  Ñh¼bÃq< @II‰J¥òÙœÁ`ìÝ»×ÜÜ\QQÑÉɉ†áÿsîW×ç•—×q.¡âêµe˯}êêš°žõLÇsssÝÜÜTTT,--¿þúk*•:zôhv£|úILLŒ†††‘‘Qll¬ŸŸŸ¶¶6Q$//O¡P8[‘˜ž‰ õú< ç=Ü ×—_žPR’=xpaç**œœvEFÎY¸Ð‰]èçwÄÀ@}ß>_‘Fåããƒ:wîœH[é½+W®=šxû믿FFF XHŒ~u.jk©Ÿ|²5%eõ„ 楥µNN‘¿þºÆÉɬ/cÀ0,99™ø±ôs[¶l)))ILLw ¢"Äsó¶ÉÔÜÌýú<„žžšýiýjÁ¼~%??áÂ…¹¹¹ÍÍÍYYY[·n]±b…¸ƒ’d²²ÿÎÛfd¼VQ‘³³3sLýRkkkQQÑÉ“'W®\)îXÈó’©­Áç^ů¾šRUÕxé’D P QXX˜——׬Y³455—/_¾lÙ²ÀÀ@q%É8¯Ï»{÷µ££™´4¹«£‡ÚÙÙ-[¶ìÓO?w,ƒ”¸‘`0˜|¾)ML´fÏ·wïõ™3mee¥BL&N"õéóÅû3))©ÈÈÈÈÈHq2XHI‘¤¤H­­tÇ33ßlÜø™¸#ê§\]]ù/Ë:€ñ<€db0Xd2¿?qß~ûy}=íСtâ-Α}ØÈÉI·¶Òß¼ùØÐÐlgg*îp€„€< ™ ¦”¿™¯!C”×®u?x0ýýûz„ÎoüQ#ò¼ÇKää¤GÒw8@B@žL]Žç!„V¬pÑÒRŠŽþ!ÔÞ΀<ˆ‘çåæ–~ò‰!tE ,ç$ƒÁ’’êâOœœœôÎsRR¥§¿¤Ó™0o ÄHJŠÌd²?.;v¨¸c’ò<€dÂ0$Èú Ÿ}fíëë°~ýÙÖVz—y!"ÕÖÆxýºbÌÈó€ÐÀ5€d"FG©¹}ûlYY©êê&ÏâUYIa±ð1cŒÅðG ™Èd“)Ðó~TTävíš»té‰ââQG…:þ<ñ¬X vÞÞÞâá_†UW7ª«+iˆ+______„†‘åäÌde‡54\W0@( ÏH&))ƒ!èã.>ûÌZFF*5õIHˆ§ŽŽŠè¢ îW¹Å ghh(îþ…a¨¦†jn®-®ˆGÀUW·ffVfgW·´0ll4|}ËËCª ãÇÊ~àä$“”IÀy[‚œœ”’’Üòå'/^\+º»œœº®% Ãjk©'Këíí ii³ÄÄ™™o ÔV¯öðó¯­­,–`€AžLRRäöön<¾¶½¹t©óÿþ—¶}{jdäÑ/µµT >n´±±ùÌ™Ì'îÖÔP§L¿|Ê”‘]®I Èó’IYYŽJm¼>ÎÔ×WÛ½{ÞÚµ‰NNf3fŒ]lt†ã,­½/çmß¿¯?v,ãìÙ,))ò’%–.¤££Úg­ƒ¾y@2)+ËQ(-Vf±p&“%-Mž9sô“'ïÖ®MÔÕU7ÎD”ðt: !Ô7ãyýõþȑۗ.=ÑÕU Ÿîç稨(Û킾y@2©¨ÈW X™Ng"„ddÈ¡;f544ûû½xqÝÈ‘z" t:“L&ª‹´•—/?ìÙsíÆçVVúøþ¹-,)Ùàì$“²²…"è¼m[!D¬Ÿ‡aXLÌ|ã… UT4ˆ0D8´¶ÒÕÕEwaÜ›7ƒ‚Îxxì{÷®îäÉeü±qöì±äI<8Áɤ¢"/ø¼m[!$++M¼•–&>¼HVVjåÊx­MT!À¡µ•®©©(Š=¿xñaÉ’ã®®Q%%5¿ü”žúÙgÖ°ˆã y@2©ªÊ76 šçµ·ÿ;žGÐÔT:{6°¤¤fÁ‚£T*¤z@äèt¦––×1iiiß»÷Ú´i1……U?þèwõêzggñ¬ÛÄò<€dÒÓS­¯§µ´´ R™˜·•“ûÏ%Ë&&Z¿ý¶®´´fî܃ Í"‰€0™¸p×èþý÷|Wר'îED|‘‘±ÉÛÛVK„à”$“®®*B¨¢¢QÊæmÙÌ͵SRÖTU5úú†Tˆ•ÚŠ®¯¯&”½½|ùaöìÿžþì³O>üvùrÑ-ý ú9Èó’IOO u#Ï#æm¹|š›kŸ9³òÝ»º¥KO47 4:@w½~]‰6¬·‹çQ©m‘‘—==cZZè¿ý¶vçÎÙªª  Tç$“––’´4YÀf‰<¯óxÁÆÆ(99öîËq IDATèõëJ_ßÃõõ4aF B¡W¯*BÇ÷jñ¼œœb½‰‰Y;wÎùý÷`X Èó’ Ã0•ÊÊnÌÛv¸>“ÑõëêëiÓ¦í/*tY>TXø!db¢Õ³Í[ZÚÃÂÎÍšõ¿‘#õïÝÛ¼xñ n§Až`&&Z¥¥µ‚Ôä\?ccÍ_]­¨(3{öÿ4Ì™s°¹¹ýêÕ`‡a" xç$™­­qNNq—Õèt&×E’»„aØW_M¹q#DFFjúô˜ÈÈË4< tO~þ{„q—5‹‹«¿øâ€‚‚Ì¥K_ª‹>40àAžd¦ÙÙE]Vc0˜½yô爺¿ý¶vçÎ9gÏfMš´ûܹ«ë›? Ռގçq3ÆøÂ…57o¾Ø½ûŠ‡Ç¾iÓ> šÅ0ìÍ›7œ›w.éoÞ¼á¼õ¯óQ½‰êñãCCõçÅÆÞ**ªþá‡ù/Úºnu0„PAAÁŒ3ÔÕÕuuugÍš•——ÇÞÃ0 ÿÏÿ¦M›ÖËNÈusÎÀLLL/^\]]ݳýÓh´ÐÐÐÑ£G+++ÛÛÛïÞ½›Á`p £Ç-ö¾¯öfç7·QC†(''gsý”Nþúy½‡ãxRR’±±qrr2»ÐËË«¢¢¢¢¢"33!Tñ++«î¨HKKK˜sÃõ(zß´ššZxxx¯£§7o>65µº»ÿgE•¢¢êýûo¬_?ÕÄD<§†O+++›0a‚Á­[·®]»fllìììüâÅ ö¶%%%œ™_}}ýÝ»w»•€}#33³¢¢¢¼¼üÔ©S eìØ± Ým«©©ÉÎÎ.'''::úñãÇ›7oNLLôðð`2™BlQÌ}€ÁaçÎKööÛ™LVç-:¶n]bß„A|§ R3//ð´´4„Ðëׯ;|ZXXØa?¡ÂÂBþ%ü÷ ,œ{æz¢kZ@¡ääd1€ãxXØy=½õ%%5œ…~~G&MÚÝÞÎèÍž<ºîv°ÀÀ@///ëßß %K–,^¼˜Ý¨§§ç7ß|Ãþ4>>~Ú´iü;agÚåºy‡B‹åââ!x+„gggãߟ6•J511‰‹‹Q‹=#àï ×óÞïþY°`üû÷ ÷ïŠ;A%%%¹ººº»»[ZZrޏô †a‰‰‰#GŽÔÐÐØ³gBhüøñ!]]]„кuë–/_NÔ¤R© Ož|¸zõª¾¾>±g^GÑ!x77··oßæçç[[[­ „üüü(ÊñãÇB>>> åèÑ£¡ššööîÝkee•ŸŸÿìÙ3GGÇAÎ÷xÞ›7UúúÁñì’ææ6;»íË—ŸìýÎ9ºîv°ÖÖV‰TYYI¼mâÀnôÕ«WºººOž<Áq¼¡¡AAA¡¦¦†Ý ye>Ý’¨0sæL …ò믿§çÖÕsrrÔÔÔp§P(222Ë–-+//OHH@}üø‘k÷®¯¯GUWWw8ðû÷ïëèèaL›6íÖ­[T*•O‹8·ßÎ͉KñfɉÑÔÔT}}}"$Á¡øãzÞ!Ï "ÉÉÙC‡†TT4t(_¼8Žkþ'šÊó²²²¤¤¤ˆoµÇ#„ž={ÆY¡yÞíÛ·qooo'Ê9÷À`0tuuÓÓÓqŸ>}zTT»‰üü|väæææ8Ž[ZZVTT…iii¶¶¶Ã‡ÿ7e9}ú4±g^GÁÙt{{;™Lþ믿ˆ·.\ ZAåææ²æ|Íüˆ#.\¸@lûâÅ ökþÄžçœÖÓ[ŸŸ_Æ.Ù·ïš™YØû÷õ½ß¹ G×Ýöþý{„gV×aÀˆ8/«W¯Þ¼y3Žã ìr>g™O·$*ܹsÇqâš9¢?óɺÚÚÚ^¾|I¥R™LfFFQ“k÷æ•ç=xð@KK«CççŸçuþàÜœ}D4MQQ1;;Çñùóç?(®›óú…âëy‡y[À 2wî8}}µƒÓ;”c†ÿ÷«Kì’’’ †––†aãÆC 2³Æyˆ––î¼!™Lž3gÎ… jjjnÞ¼éïïÏþÈ‚xaiiY^^Ž*))ÑÓÓ#î=ôðð(...++³µµeobcc#øQTUU1™L333â­¹¹9Ñ BHYY™0çkN¥¥¥ìGŽ9{öl~? þ¡¥¥ý?žih(}ò‰!QR^^{{Õª)úúj}Cw;˜®®®œœ‘² rŽºººÕ¼½½ÏŸ?ãx‡I[>g™O·ä¬@"ñËX ‰ËÈÈxzzŽ7.>>žø”k÷VSSÓÕÕ%Û8=}ú”ø „,--»lqûູ‚‚‚——WJJ F»|ùòÒ¥KymÎëª Ï "d2)0ðÓ_~yXSCå,Ç0.Y‘1™Ìää䘘öÔØ† ˆÿÔùlell̹ÅË—/¥¤¤ŒŒŒØ%ü¿)½½½/^¼xîܹI“&²ËÙ_íÄ7.1ÚA|Ó×××gee™˜˜pÞhùüùsÁBGG‡L&oß¾}k``ÐÕOè_úúú%%%Äë§OŸîÚµKðmÅ%5õ)Θ;w»dÛ¶‹ÚÚÊkÖ¸õM=è`$ÉÍÍíØ±cœ…SÃI“&555ýùçŸiii³fÍb—ó9Ëü»%B¨Ë%Ep?|øðŒ3B--->>>¡¡¡¹¹¹±±±ì:\»·¿¿ÿŽ;8ﮥÑhÑÑÑžžžÄ[^Ù'g‹ˆÛo¯ÍýüüRRR.]º4nÜ8öÿ'þBõP—À IÚÚè¶¶Û¾ÿþ gá²e'V­:Ó72o{ûöm2™\UUÅ.yôèúgî’ÐyÞ6""ÂÌÌìòåËEEE7oÞ3f̲eËØŸ¢ÿÎá²'ÈØ3q C[[[GGçÔ©SœMLž<¹°°0;;Û‚¸ÁpݺuóæÍ#Ñptt\³fÍ´µµûí·ŠŠŠk×® 6 !Äç(:4½`Á77·¢¢¢gÏžYYY­t¸sð8ŽoÛ¶ÍÆÆæÙ³gÏž=›8qâÊ•+9 H¬ó¶..ßëë³§hÿøã™žÞú»w;ÞñÚc]]Ï:ØÓ§OÃÂÂòòòž´³³[¶lÙ§Ÿ~Ê.TQQ _PhÏžk†mØàI¬„¼e˯ææÚ+V¸ˆ;. ǵ{RâÄ@ZšüÍ73N/^<ÁÁa˜¬,™NçòDËÁÃÕÕµóÚÚÚGŽK<)7·4+ë­ªª¼··Bèúõg¯ÏŸ_ÝŸ­,a¸vïAú`š1côøñÃv츄ã8ÌÛQc±ðððód2iíZwyy™º:Zxøù9sÆMœh.îЀ$ƒ<0xmÝúÅÓ§ï®\É“‘‘äãy@ÔΜÉ|õꃮ®êÊ•®¡ ’de¥¾ÿ~^—Ðç/[[cooûˆˆ‹,k_ŸDª¶–º{÷ ß²e¦´4ùÒ¥§iiÏ÷ìñQV–wh@ÂAžÔvì˜-%E¾}ûäy@t¢£¯¶·3¬¬ ¿øbLqquhhò¢ENŸ~Êó™Z äy€AMYYnÿ~¿×¯+êêhâŽH¦çÏߟ=ûÉd8° ­¾lÙÉaÆìØ1žÃ $äy€ÁnÒ$ GG3 ¥¹ººIܱIÓÞÎøê«ŸI$lÕªÉ#Gê…„$WW7?¾TFÖ»}ú ??LJ‹¾ýöÂÑ£Kú¦E¾iˆ×Ž—JKk‡ Q^¿~êÉ“÷~ûíɉK ÔEÝnddd\\\oöÀb‘ZZh4MÍ2™%¬À@ƒ<ºº"Žã—/?õò3}ºHÛ222òööi KÞÞÞFFF¢n%=ýå©Sb:|xñíÛ/#".nØð™§ç'¢n·ÇŒN'55É66ÊP(²TªŽc t##¤ @n„@¸öjx¾- ÞÎ{Ð××áÚµüë×7š˜h‰;"0àÕ×Ó\\¢êë›Ã¦ÙÚ-Z·l™ó¶m^âŽë?p/(¨ÊÉ)¾w¯ ;»¨ªŠ"''mooêâ2ÜÞÞÔÚÚPAAFÜ1‚^ñ<@ŠŠ2¡µkÝKKk-Šûý÷`XðôŽãÁÁÉ-¶¶Æîî£æÍ;4uªõ·ß~.î¸BˆNg>yRš“Sœ]üôé»êê&55gçá«W»98˜ŽeÏç$çRR’CµµÑ]2uê_}öĉ¥†‰;.0PÅÄÜHKûKMM>8ØÃÇ'ÖÚÚðС…d²Øò§¶6FvvQvvQvvqnn)Ö¦¯¯6a‚yhè4{{Sssm1ÆD ò<ø{ùá‡ë22äM›¦žž2eä¡C‹¤¥É}…ÒòðaQvvñ½{/_~ Ó™Ã‡ë:8˜Î›gçà0lèPÍ>Žˆäy€ÔÕBõõ4„é7ßÌŒŒ¼dcc8~¼™¸CL~~Ùºu‰a«VMÙ¾ý’»»ÕÿþçßgI^]íþýÂ{÷ ²³‹ß¾ýˆã¸µµ¡½½éêÕS†éè¨ôM ÿ€<ŒŒ”¢¢,{©ä€×¬¬·«W'\º´®–À£¦†êï”Á`N™226öÖœ9ãöíóõ”è»wµwïdgåä—–ÖJK“mm=<¬vîœmkk WšrçB©«+°ó< Ã~úÉΜƒþþÇ~ûm­šš‚xcÎôõ=\WG35Õ¾w¯`×®¹ :‰¢!ÇŸ=+ÏÎ.ÎÉ)æ¼IváB'¸ItëªByzÆ8;ß²e&»¤®Žæåõ“’’lJÊjEEY1Æú?&“åãûàÁ[55y ?xp‘»û(!îŸó&Ù'OJkj¨ÄM²öö¦p“,àÆó!„ÔÕˆëóØ44¼¼~Zºôdbb@ß_G  ÷ó;š•õVZZJSSùÔ©åææÚ½ßmç›d Ԝ̦ÛÛ›ZXèHpK8èäy€BŠìy[6ccͳgƒfÏþßúõg\+­®fÏþ)'§ÃÐÊ•.aaÓzóìZ¸Iäy€BêêŠ>¼ï\>r¤ÞÉ“Ë,8j`põ›ofv®9w÷½/^|——Ž_áì<¼{¨­¥ff¾áz“¬££™¶¶²Ðcƒäy€Bêê\Æó&˜ïÙãü‹ŠŠüš5n}è·jk©îî{«ª(::*ééaŠ‚oÛá&Y©Ñ£ˆ›dÇŒª¤׃á€<BHGG¥²²‘×§>>öuu´;R[ZÚCC§õe` b±ð“'ï}÷]*‹ÅrtvñâÚ.7á“ì'ŸÊËÃM²@ø Ï„ÒÕUmjj¥RÛx ¥}ª¢"v®¶–º{÷<¸~ÐÊÉ) ;WPP‰úöÛ™_}Åsˆ·óM²êꊓ&YÀ“dAŸ<BHOO!TUÕ¨¤ÄóNÉ Æã8~ÇÑ®]sáKZÂÐé̼¼wvv¦¼*UïÞ}å÷ßó‰rðŸ7Ï®C>7É:;‡)@ƒ<BHWW!TQÑhfÆoE 'mm•¯¾ú¹´´öر%**ò} ­/ÞoÙò뇔¬¬-o¬®¨h8x0=!á±±‚‚LBB £ã0âÓÆÆæììbâ&Ù/Þ3™¸……ŽƒƒéÂ…N¦::ª}}0üÖI„ÂqÜÔ4lß>ßÎ#4½xñañâ8EEÙãÇ—ZXèôAx@tš›Û¿ýö×ää c2Yçέš4éßÛfËÊêJOJÊVQ‘okcP©­ÖÖÉÉ«˜LVç›d‡;8˜Žm 7É‚~ò<ø›£ãÎE‹&xGmUeåÊøçÏßïÞ=×××AÔ±ÉÈx½fÍÏuu4âËDBÖ§N-G={V¾oßõôô¦¦Z¦¦CnÝzÉbᎎà Õ=*!n’utæà`êà0 n’ýäyð7/¯Ÿ¬­ wíš#`}ÇccoEEýîáaµÿ|UUx î@RYÙz.=ýE‡r ;sfÅéÓ™7o¾°¶Ö9RÿÊ•¼ÖV:Žã8ŽTTäÍLá&Y0 @ž :Í`°Ž_Ú­­îÜyµn]¢ŠŠüþý~öö¡óz¼@¸H$yUUwYY #wkCii©ô›={¬ˆ;è{Nrr²Ow·‚y[ø‰„i”–Öö~W†Í›gw÷îæ½{}³²Þº¸|ü ñDÔ’““q 2Lfs]Ý¥ŠŠŸ=ŠpvÖmiyíâ2\JªëœNg &á3¶Ð÷ŸeÈóà_&&Z%%5ÂÚ›”É××áîÝÍ{öøäå•Mž¼gñâ¸Þ kÿ@púúêsçšÒh¹•0LA6‰ÿSÔQ jçÀ¿†Õ*-ZžG–&ûú:¤§‡ž9³²¥¥}î܃îî{Oú“BinC€¿¢"Š¦æ¼ææöΑH™Lê°0Ü$܇ÿ25Õºxñ±(öŒa˜›ÛH7·‘ÏŸ¿?}úþ®]—##/+)E[€«ÊÊgb˜4ñÃ055y %5]]Ummmm•!C”utT´´”utT”•åÄ0½yüËÒR¯®ŽVUEÑÑQQVV{öø|ûí))9k֤ЍГÉb2ñ¦¦{©©çtuU‡ QÒÔT†'[‰]þei©‡zýºBÔ ©¨È-[æÜÒòZÔ ™LrvÖm „· IDATn~îî>ÊÚÚ@GG’<0@/€ih(jk+¿zÅåÆXp Ï€ÿ°´ÔõJäãy‚Ã8˜˜˜,^¼¸ººº÷»¥Ñh¡¡¡£GVVV¶··ß½{7ƒÁèP')) ã&%%¥7«¯ñÚíÓ§O{wLBC§3?~lwýÅÎ;1 ‹ŠŠb—ð?ƒ3fÌPWW×ÕÕ5kV^^{C Ã,,,:¬2mÚ4 ÃÞ¼yÓãym.H'G½û{óæM/W"ìýøƒ<þÃÒR·æm»%33³¢¢¢¼¼üÔ©S eìØ± ¼*iiñ|¡©©ÉÎÎ.'''::úñãÇ›7oNLLôðð`2ÿ³àˆ——WEEEEEEff&B¨â'N ïñáðÚ­••U÷),ž™ù&,ìÜ'Ÿl½té‰xƒé'pOJJ266NNNfò9ƒeee&L000¸uëÖµk׌_¼xÁÞ¶¤¤„3󫯯¿{÷nw£b''tëWŒ“ššZo~ú‚¸Wþ€þåìÙffaL&«ÚB¬U‹*,,d¿e±X...¼êvù·=$$ÄÙÙ™Á`°K¨Tª‰‰I\\\÷Ù"Ú-/D¦Âõ£¼¼wß}÷›•Õ=½õFF ‚ãâ2ú,0±¤ïá8ž——‡aXZZBèõë×ÿgïÎãjÊû8€Ÿ{o m*í)K‹R£HHdi‘1d«Tö­Œuâ"FÖ%ó˜ÉNQQID†‘ì*%])D©(íu·ç3sŸû´i¹uZ>ï×óǽ§óûý>÷vz|çwÎïœj?­ùtwwwppàñþ÷ç3{öìY³f µ··_¿~½à§ãÆ«vWµqkmÞðƒ¼±b¢ÕÀ¿‚þ¾jÂ|ÀÿéÛW½¬¬êǯT©Fóðð¸rå ù6::zÀ€RRRêêê䙵¡C‡¡¦¦FîÀf³™L¦ªªªŠŠ “Éd³ÙA{{{3ÿ{,„´´4“É &Ï"ÅÆÆjkkß¿_û‚…Ï4Ñh´“'O*++ïÚµ+((¨wïÞݺuÛ¸qc=jµ|ùòùó瓯KJJ¤¤¤ž|øÝoµYšPt`ÅÅ¿\¿þ¼Æ"?ŸÇçó“’’äååù|~QQ‘„„ļyó²²²‚ƒƒ ‚ÈÍÍ­6=àëë;uêÔ÷ïß§¦¦8pݺuAäååUèÁƒªªªdóqãÆÝ¼y³¤¤„üQµ>…ßáââRTTtüøq‚ œœœŠŠŠŽ9BD~~~­jí‡Ïçß¹s§{÷îl6›Ïçñx>>6lØ´iSû(-åHIý0~üþ””÷t:ËåQUUË…ùA<~œ,ÞÀo =Søî>‰‰‰>|˜:u*AS¦Lñññyþü¹±±q]ûùò…ÇãIKK“oeee?âÿ;Ç`0¦NnjjmiiÙ½{wòGl6;44ôéÓ§}úô!bëÖ­kÖ¬Ù´iAK–,‘——Ÿ={öÂ… ¿~­e®}õêÕ²²²“&M"¢   ®«÷šp×<ÒÈYg²¹`ýÇ„ æÏŸÿèÑ#ssó³gÏΞ=[LL¬Öæeee»wïžþ,ø©ŸŸŸ¢¢¢––ÖÁƒ]\\TTTØlöðáÃeddÈŠŠŠæÎ«  Ð½{÷E‹•––’ÛKJJV­Zell,%%edd´}ûö²²2~wy¨†àöZ_× ®±<<<ºvíZTT$¼ÏñãÇ{ö쩤¤´lÙ²òòòú»­K­÷UÉÊúzìØÑ£}É;ª`†€»»»ð§££³víZÁ–Zƒ?¶¶¶–““300X±bEII‰‰‰‰`Pò¨¸}û6AþþþÕ¶ýúuæÌ™Ý»wWWWÿå—_ÈßuÍãªÚA^×AØÀƒ¼þ?±šGšpój]-Z´HFFF°€©ÖægÏž=ºººÒÒÒ )Æòÿµ¢Uû„@„Íž‘#ûnÜ8±EG¡ÑhaaaNNN-:Jû²aÆÌÌÌòí›7oj>A¡iÂÃÃëê*9ùÝÅ‹##”mëÖIþ¼-޽v¤É¿/\ŸP‹z>yòžêKEEŧOŸNž>ÝÍÍ¢åF‰-,,l¹þ[_NNÅÇåÊ×úÔ¸¸¯RRŒ^½¤äåEöÝzTVò¾|©,.æ|ûÆyóæƒ¼¼ÝäÉdgäç—–•U’ûÐhNçóùä³nut:KYßñŽ=¨ u@,,tNŸŽkÑ!Ž=Ú¢ýS¦¢²àüùâoßb8œ/Õ~&&¦ ¤äB£Ip¹¥UUªª²ªª>q8-õ(a!-m.#cN£1‚ѵ«ÁÇéÕöáó .—G¾VW—WW—o¡0mMG<ö :Ôyu²°Ðñõý333¿W/¥–è¿£>yrë֨Ço«©Í^ºÔzåJ;IÉÿû·æÒ¥S †´ŒŒ!AôãryݺIYZê¦ka¡Ó·¯:^ËD`s¼ÿÅÓ3,.î ­Þ‡}Š‹3¬¬:Ë’;ê±Õàù¶ub³¹ë·oŸìâ2”ê,íIjê{{?‚  šºº‚ŸŸóðáÿW?mß~ùðá[äyRN£ÓéWBBÌØXÓÂB×ÊJßܼw—.";½{ùrÊêÕal6›[ët:m÷n'WWü®¡ã@PGG …ÿüÇ•ê íÌðá;ß¾Í#>NãñøÖÖývïvœe³¹'xñâ#‡SKÉÅ`Ði4‚ÃáÉÈH^¹ò‹žžª¨Råå¯_þÊ•§dªš;ˆ‰ÑûõÓ47ï=xpïáÃõ¤E54%›7o¦:@ÛõõkYXØCѵ®*€ºW$&¦óxÿL&|øðõôéRR’&&Zt:Á [[††>d³¹5§È% cüx“™3E¹FZZrâDÓþýµîÝcUUqª•z Ò»w;q8¼¸¸7§OÇ9r;6öå›7Ÿ++9ŠŠÒ]»Jˆ0 @ëÀ|@}ÒÒrFò½rå—´©ÎÒž¼{÷eØ0ŸjÿÄÐh´þýµöïŸn` ND||º““?—[Ë?C ]QQæÞ=/9¹.-¯¨¨bÛ¶KgÎ$04‡G„˜}ܸŽ™CîPVV•œœ™˜ø611#1ñme%GUUnðà>#Fè››÷Ö×WEÝíê<€ï2d›““ùªUöTigÆó{ö,«Úœ™˜ÇãÏ™3býúñRRÞôñ¹\ë?D§N-°µ5jÑ„7nüÍd†}ýZÊfsÅÄè›7Oš7oDÍÝ8Þß¼w/-11#11ãÛ·2eeYSSíÁƒ{¡olÜCä GDuÀwxyE¤¦~¸r媃´3Çßݺ5Šœ-«†N§kk+îÝëla¡3~@LÌ ÁM‚côí«´PM­[K‡,.®Ø¹3úÔ©8>Ÿ³ÚÈH³þý¹\Þ›7¹II‰‰o¸‘´!¨ó¾#&æÅܹ'RR¶*)ÉP¥=ÉÍ-8pS­Ëh4NlÙ2yÞ¼EEå66{sr¾‘k2ètš¬lUÕnÙÙ…ëÖý8{öðV˜-KL|ëã¹”ÁhÜã@ß½û’˜ø6))#11#--§kW ccÍÁƒû Ü{È:é Ðp¨ó¾£¬¬ª_¿ ûö9O:ˆê,팋Ëá{÷X<ÞÿM鉋3¤OŸ^п¿¹ååËO?þø[U‡ÏçÓh4ÿ'8s&aË–(míî{÷:·‹‹#?."¯çKJÊxö,‹N§ý³t×ÒROQKw¨ó¾oúôÃÝ»KûûϤ:H;ñhåÊ3ÂSz }РžÇÏëÞýÿ&GOz°~ýyƒfi©wö¬¹ñǯëÖ»s絫ëPooÉVMß ÅÅ))ïïÞMKL|›’òžÍæöìÙ\Ã1t¨Ž––"Õ¡³@ð}GÞùí·ëÏžmkìy½N®¬¬ÊÈhCe%‡|K£Ñ ÔœÌÝÝGÕÜyÉ’ ¿þz~çÎ:MMáí—/§¬_^LŒáã3åÇû·BlÑ*+«zþ<+))ãîÝ´¤¤ŒŠ 6¹t—œêûá‡Xº -uÀ÷‘wW‰Ž^9p`Oª³´3 ^»öŒ|½mÛ”ª*ÎÖ­QÇϵ·ÿ¡ÚžeeU÷ï§ÙÙ×ìäÛ·2Ÿè›~»vMk¿ %—î’çvïÝK+,üßÒ]sóÞôgP:Ôy bn¾uÒ¤6üDuvæêÕgóçŸTP ˜?xp‚ Ö­;ž¹ÔÔ´qWÝÅǧ3™aùùÅ«W›7oD{¿›‰ðÒݸ¸7Ÿ>JKKøÏÒÝÁƒûT{.0@ ÎhÍ›/^¿þ".nÕAÚ™ª*Îܹ'üü¦«ªþs“6›ëæv”ÅúüçŸ+;3W\\±kוS§XZêíÚ5­woåˆLjKwÅņ†#FèÜ{È>rr]©íê<€yøðíäÉ¿ÇÆ2 5¨ÎÒî–ýôÓoÒÒ’.,“’jôóÄ’“3׬9÷ömî²e6K—Zw¼[Ö /Ý}þ<‹F£é訷eÆÒ]hÔy ÂãñÜ4s¦åªUc©ÎÒ¼{÷eüøýºGŽÌnÂXþü£M›.ÊÉuõñ™jmmØ!Û‚Z—îš›÷<¸••¾¶vwªB›†: ¡Ö¬ üøÝLªƒt éη–.µf2Ç5­‡ÜÜâíÛ/ED<²µ5Ú¹sš†F{]ŸÑ@Xº …: ¡nÝzåæv$>þמ=1‰"¡¡W­ ;pÀµ9÷ ~ðàͺuç²³ ùÅÎÃct'¹÷MÍ¥»JJ2äذtPç4›Ííßß{åJÛZoÿM³yóÅS§DD,13ëÕäN**Øþþ±¿ÿ«§§º{·S»x~†ñx|ë3¹t7>>ýãÇ,Ýê<€FX²$èãÇ‹—Q¤ãàñøóæ|ô(#:ze¯^JÍé*##oݺˆX®®C7nœ(+ÛI/[m鮘½_?M,ÝíœPç4BtôSSoQQ‘¥:KÇQRRéàp€Ëå]º´BN®YÅÇ?}:n×®+ݺuݾ}Š­­‘¨B¶S¹¹Å¦×ºtwØ0ÝjOŸƒŽu@#”—WoܲeÒŒTgéP23óÇÿmèÐ>ÇŽÍmþ ?.Úº5êÂ…ÇvvÆÛ¶MÆódI%%•Ož¼#—î>}ú¡ªŠƒ¥»ê<€Æ™;÷DU'$Äê M||º‹Ëá ¬~ýu‚H:LMýàåñüùÇY³,×­ûQZZR$Ýv ååUÏže‘çvÒ‹‹+°t·CBÐ8ááILfسgÛp“ÈÅļ˜7ï䯿NÕJò6{›7GIJŠyywt4I·ŒðÒÝû÷Y¥XºÛa ÎhœÂ²þý78à6iÒ@ª³t@§OÇyyE4óN+Õ”îÜy%$$ÁÒRoÇŽ©ºº*¢ê¹­ wvvn^tqqU M M:]2?ÿ,›ýY4ù å9::†‡‡ Þb¡5@ãÈËK ª{õê3Ôy-aÖ¬ayžž¡ªªÝ†×IŸ Ò»w;M:hýúkëÝ‹Z½Ú¾ßjDøŸùæàó‰ìì255‹æ_1 ­ÃÏϯږ{”´{{c_ß?«ª8ïɪm·÷ļ¼â N^¸°ÜÐP]TÝÒ篿VÞß³çjttʶmSllú‰ªó6ÅÑÑ‘ê@sçÎUÛÒ)n Z&˜–•Uݸñ7ÕA:&¶¿KÿþZsæÏÍ-aÏbbô ¬îÞõ27ï={öñÙ³øðU„ý´5¨óMYYÖÂBçÒ¥ªƒtXâ⌣GçHJŠÍœy´´´R´«ªÊ8àvúôBëóÈ‘»vî¼"ò!ÚÔyM1a‚iLÌ‹²²*ªƒtXòòR!!îŸ?[´(ÃቼkkÃ[·Ö®Xa{âÄÝ#vFF&ca"t<¨óšbüx6›ƒS·-JKK1(hQbbÆÚµÕ¯: II±+l“’¼Ç7Y±âŒ½½_bâÛ–€*¨óšBQQÚÒRïòeœºmY?üÐãÈ‘ÙçÎ%úùýÕBC((HoÛ6ùêUOiiÉÉ“ÿpw?õñcA ÐÊPç4Ñĉ¦7n¼(.® :H7fŒ¡¯¯ã¾}……%¶Ü(ÆÆš‘‘Kç?}úÁÊj×¾}×*+9-7\[°mÛ6¶k×.Á–ÐÐPZmRRR‚HKK?~¼‚‚‚ššÚ¤I“ž>}J¶úùçŸ{ôèQZZ*è'==]BB"$$¤ÉÙh4šžž^µ3éãÆ£ÑhoÞ¼iN·µ6/--e2™&&&²²²æææ;vìàpjùí '½zõš5kV^^^‡~óæM31Ò´Pç4Ñ?öçñø8uÛ \\†þò‹Ýš5á·o¿jÑlmnß^ëéiwäÈíÑ£};ð|-ŸÏ ÕÖÖ ltppÈÎÎÎÎÎŽ‹‹#"û_FFF>|6l˜¦¦æÍ›7¯^½ª­­=bĈ¿ÿþ› 6›½{÷nA?ëÖ­³°°puumNÂÌÌLA)IDAAÁÝ»wÛÉÛ·o•””êß§¸¸xРAIII¾¾¾ÉÉÉ^^^!!!¶¶¶\.·æÎqqqÙÙÙYYYEEE,,,lHyyùµk×66¿ð ©fÌ82{öqªSt <oåÊ3zzkŸ=Ëj…á²³ —- ÖÐøÅÑÑÿåËO­0¢HE[Cö|úô)F‹‰‰!âõë×Õ~Êb±ªõãîîîààÀãñ[fÏž=kÖ,òuHHH—.]233ù|þƒÄÄÄž={ÖœB„½½ýúõë[ÇG‹Åjx?Õ>H­ÍW¯^=bć#ØRRRÒ«W¯cÇŽÕL%ÜœÇãYYYy{{7Ÿ_XX(%%•ŸŸOü;£æææfmmžžžššjll¼yóf>ŸOÄ´iÓ Ž;FÄ—/_jÎçýôÓOEEEçÏŸ'"??¿  € ˆ¼¼¼jßÀƒTUUk¦ª6˜””$//_×'nN^ãÈÿ÷t993¥¡¡Áf³kmîçç§¢¢ùéÓ§+W®hhh|÷—[s>u@³Ìž}|ÆŒ#T§èD²³ Þjo¿¯¸¸¢Õ--­ü㺺k--}.]zÒjã6V뼄„11±üü|>ŸŸœœLDµÓ¬ÕÊ£?!¨êêš-Ú´iAgΜÞh``M¾Ž‰‰155­¬¬|ùòeII —˽sçY<‘#¦¦¦ †`±XK–,ñòòâóùÁÁÁ¶¶¶‚íUUU ãùóçäΑ‘‘ºººäOoݺÅç󫪪„»„¡ÿQ IDAT!âöíÛ|>Ÿ¼öŽÅbÕUçÅÇÇ+))ÕšJx7á:¯æ'n.HRZZ*--˜˜Èçó§OŸN~ÀZ›ëëë Æ:uêTê<œ·h‡w璉~W5µnaa‹?}*œ;÷x«-‰•’’X²ÄúÞ=¯aÃtþ9h„ÿ$'g¶ÎÐ-!44”Ãá())Ñh4333‚ ê?u«¦¦Ö¥K²R!þ-5¾~­þÈ8777‚ ¦OŸ.¼133S]]\£jkk›‘‘!!!‘––foooff(¼³ð[GGÇsçÎñùüj'm?þÌåruttÈ·ºººYYYäkrÒK\\¼®ÏBî@§ÿSÿÈËË«©©‘“mÂRRRÈo¦f*a,K£æ'­µ¹”””ƒƒCDDDiiéåË—çÎ[Wó>˜šš öïß¿®õ@Ð,vvF ýÚµgTéDzõR:}záÓ§<>|xqqñýû÷cbb&Mš$Ø®ªªÊ`0Þ¾ýç¦Öéééššš‚¨õüš·&qssÛºu«ðêÚÒÒR___{{ûZS ðùüC‡?¾®OZWs—ˆˆˆK—.™™™éééÕÕ¼W¯^Â+Ž_¼xQÿG«ê<€f‘––´¶î‡gݶ2­“'çߺõjýúó­<ô?ô8wnIh¨ùx\ŸèöµçÞ½{¹¹¹nnn2ÿruue±X5ç´„ùøø­]»6555%%eË–-ÇŽ«gÚL`Ê”)^^^ïÞ½KMMµ··÷÷÷¯¬¬¬ªª’(//'Oõ×Ú–Á`L:ÕÝÝ}ðàÁ***‚íâââÎÎÎË—/ÏÈÈxþüù¯¿þJN%Ö…¼´®.ÞÞÞ¹¹¹ÖÖÖ×®]c±X.\2dˆ¦¦æâÅ‹k——““óñãÇ;wîLž<9##C°¨¢æ'­kD;;»‚‚‚M›6Í›7¯ž/ÊÃÃÉdFEEåää\»vÍÛÛ»žOQ§úOôÀw]¼øX[{Õׯ%Tét®^MíÑÃÓ×÷OJFg³¹AAqýûoì×oñcwØlê—h4äúÆÇc›š§²’cb²qíÚçÎAu–NçØ±;›6]ܽÛiÆ J”–V>|ë?bµ´™Ìq&˜~¿M‹ wvvƿ얓“Aááá‚-8o Ð\’’bãÆõŒL¦:Hg´páÈ•+í¼¼"¢¢žP@ZZrÕ*ûØØ5zzªîî§æÌ9Áb}¦$ @M¨óD`êT³ääwoß6ôa— BkÖŒûùç1K—Sx•dŸ>Ê'NÌ‹Œ\šŸ_æpZï P¸8ãСY::*3gk#ׯuí*±d‰uB¯®®C÷íûËÒrGpp<h¨óDfʳ/_JïßO£:H§&%%´HQQzÚ4ÿ¶³èU^^jÆŸââ6X[®_1z´ï¹sI<®æ„–…:@dzôP07ïS·”““ëþ³ŠŠÜ¤IÚȬ‰|Bî_­îÓGyÅŠ3îÜyMu(èÈPçˆÒ”)fþ™ZZZIuÎNV¶Ë™3**rS§¶¡Y=’¡¡ú©S ._^!+ÛÅÅåð„ ÿ¹}û•û§Aguîܹên Bß¾•™˜lÚ¿ßeòäTg¢¨¨ÜÉéPqqEdäRUU9ªãÔâåËìß~»ýÔÀ@måJ»Ÿ~2¡ÑhMîíÇäSP¡ÓêÑ£‡…Åÿžˆ:@ÄæÌ9Áårƒ‚Q‚ ¾|)qt<Èfs##—*+ËR§v¯^eïß/²j@çmDlʳ;w^ãÖ¸mD÷î2áá?3ôéÓ”R§vêGŽÌŽeêêªzxœ¶¶Þsùr &b ùP爘­m¿®]%¢¢žPþ¡¤$²¨¤¤bΜmùÒIAµgl¬¹x1ª=œ·½5k“’2nÝZKuøŸ÷ï¿Lžü‡ŠŠlh¨G·nRTÇùŽW¯²¼™¬¯¯¶xñè©SÑé8“ †ù<Ñsr2ý:çÙ³,ªƒÀÿhkwˆø97·xâĹ¹mý¬ºún—.­ÐÔ”_±âÌ„ ¿ýùg*î·…ù<€aeµsäHƒmÛ&SþOVVÁ´iþŒs疴͸5=yòÞß?öÚµg={*yxŒrr,))Fu(hPç´ˆÿü'æèÑ;Ožl–À?ÉmËÇŽŽ zDÄϪªÝ¨ŽÓPYYGŽÜ>{6Á ;9 ^²dŒšZ» TAÐ"rr¾™›o=ztθq?Pªûô©pÚ4ÿvWêñõki@À½€€ûÅÅ–-³ÑÓS¥:´]¨óZгó!))‰€€ùTZäæ;9äp¸KÚÝÄXU'*êÉo¿Å¼{—omÝoéRksóÞT‡‚¶u@K9þÑ/¿œMNÞÜfoÏÛÉåå;;ª¬äœ?ßþJ=‚ x<~lìßû÷_OIyonÞ{Á«ìÏ``…%üŽ€–2~¼‰””ÄÅ‹©µSV–=sÆN§9;úü¹ˆê8F§Ólm¢£W?>—Ëå¹»Ÿ7ÎïâÅÇl6—êhÐV`> ­Z–šú!&f5ÕA NŸ?›<ù‚ ÂÃîÑCê8MŸîï{ëÖ+UU¹Y³†¹¹Y`"Pç´ ‡ßNžüûÌ~ý4¨ÎuÊÏ/qq9œ—WtöìbCCuªã4ËçÏß‚ƒãOzðõk©µu¿ ¬†×ÃÓr;-Ôy-ˆÏç[Zî°³3Ú¼yÕY >EEå3f{óæsHˆû€ÚTÇi.6›{íÚ³ààø{÷ÒttTf϶tu*%%Au.hm¨óZ–Ÿß_÷““7‹‹3¨Îõ)+«š?ÿä“'ÔA–¯>z”ø :ú©œ\'§ÁNNæúújT‡‚Öƒ: eee ºíäÉyvvÆTgï`³¹‹Ÿ¾}ûU@Àü#ô©Ž#2ùù%áá‰gÏ>LOÏ53ëéä4ØÁa œ\ªsA‹CÐâ&Oþ]EEîÈ‘ÙTïãry«V…^¼øäÈ‘ÙcÇv´Òüõ뜈ˆGgÎ$””TŒe0mÚ {û0ÓÜ16oÞLu€ŽF£:tkÆ iiIª³ÀwÐé4£wï¾ìÛwÍÈHSGG…êD¢¤¤$ce¥?kÖ0MM…¤¤ŒcÇîDD$}ûV®¦ÖMAAšêt z¨óZœ®®ÊÉ“÷¥¤$îCuø>:6v¬q~~Éöí—µµ;ÞZiII±þýµ\]‡ŽoRQÁ9w.ñ÷ßcoÞ|YQÁÖÖîŽå ÎÛ´†õë#îÜI»ß w¸hGŽ¿»yóÅÅ‹ÇlØðÕYZVjê‡sç]¸\XXffÖkÂÓ)SÌ1Ã×îa> 5¨¨Èýþû KK=--Eª³@C سgÏî;vDççmØktUÕncÆΙ3\OOõíÛ¼Ó§Üóæ³˜CKKÏRk¿0ŸÐJììö¨8àFuhœ˜˜§Gê{ðà,II1ªã´†¼¼âK—ž\¼øøñã÷²²’¶¶Æ?ýd2j”A'ùø ê<€VpÛ¶K))[ääºRçñãw3g34T?yr~§ºIAAéGG?½}ûN³²êûÓO&cÇþЩ¾„v u@+)*ª0`Ó¦M³f £: 4Úë×9®®Gä廆„¸«©u£:Ž(ݹsgûöíõïÃáˆÉu++“¦Ñxúú¯ ^ëÄë´¬¬¬6nÜØÌNPç´žeËBÞ¼ù|õª'ÕA )>|øêâr˜Ãá9ãÞ§2ÕqD&<<ÜÙÙÙÑѱ!;WUÑ‹Š$•”Ê[:U'oaaÞÌ~p¢ õ¸¸ ™6ÍÿÅ‹FFšTgFÓÒR<~‰‹Ë‘iÓüƒƒu°û­4¿¤rrrI?XAÐz,,tz÷V>{ö!ÕA ‰TU»]¼¸\WWuòäßïÜyMu€ï@Ðzh4š‹ËÈÈäÊJÕY ‰ä亜=ë>uªÙŒGîQ >¨óZ•³óàÒÒÊ«WS©MÇ`Ðw옶i“ÃÆ6n¼ÀãáJwh£Pç´*eeÙ1c ÏœÁ©ÛvoÁ«Ã‡gÇ-ZXQÁ¦:@-Pç´6Wס°23ó©ÍõÓO&KÒý¿|)¡:@u¨óZÛ¨QÊÊ2çÎ%QDÀ̬Wtôʯ_Ë&LøOzz.ÕqZܶmÛh4Ú®]»[BCCiµIII!"--müøñ jjj“&Mzúô)ÙêçŸîÑ£Gii© Ÿôôt ‰æÄ+--e2™&&&²²²æææ;vìàpj¹V8g¯^½fÍš•——×À!Þ¼yÓÌ'à5¿‡†CÐÚÄÅÎÎCBBâÙl.ÕY@zõR:~‰””Ä´iþ))祈ӂø|~hh¨¶¶vXX˜`£ƒƒCvvvvvv\\AÙÿ222úðáðaÃ455oÞ¼yõêUmmí#Füý÷ßAøøø°ÙìÝ»w úY·n………««k“ã4())É××799ÙËË+$$ÄÖÖ–Ë­å-...;;;+++  ¨¨hàÀ……… E^^~íÚµMÙÚøÐê>~,èÑÃ3*ê1ÕA@dŠ‹+fÏ>Þ»7óÂ…dª³4Y´5dϧOŸÒh´˜˜‚ ^¿~]í§,«Z?îîî<O°eöìÙ³fÍ"_‡„„téÒ%33“Ïç?xð@LLìÙ³gÍù «W¯1b‡Ãl)))éÕ«×±cǪíI‹Å¼åñxVVVÞÞÞͽáj~Q59:::::6,ÌçP@CC~ôhƒ  8ªƒ€ÈÈÈHÌ[µjìÒ¥ÁkÖ„s8ð±`¡¡¡#GŽ´±±100žÒ«KllìòåË…ÏQîÝ»×ÓóŸçÁ¸¸¸XZZ®Y³†Ïç{zz._¾ÜØØ˜ü›Íf2™ªªª***L&“Íf=`À)))uuuòÄ1y466V[[ûþýûÁÁÁÞÞÞ C0œ´´4“É ®¶gµœ4ÍÃÃãÊ•+u.Ü<00üD“&M|–ÊÊJ²‡šÍ¹\îž={ôõõeee--->lÅeXÍ/  ®_®¡ñKzz.ÕA@Ä¢£SttÖLŸ~èÛ·2ª³4Hçóx<^ïÞ½9Âçó7lØ`ddTm‡jÓTt:=''‡|[,D°Ïëׯ%%%—-[¦®®þíÛ7Áv__ß©S§¾ÿ>55uàÀëÖ­+**’˜7o^VVVpp0A¹¹¹äˆãÆ»yófVVAyyyÕR=xð@UUUxÏ’’âÿçóø|~RR’¼¼|]£ 7'¯;äÿ{ ›œ­ŒŠŠÒÐÐ`³Ùµ6÷óóSQQ‰ŒŒüôéÓ•+W444¾û…‹j>u58®¹ù–-[.RDïï¿?š›o6̇ÅúLu–ïk`— &&–ŸŸÏçó“““ ‚¨všµZ÷ñãG‚ U]]sL›6m"âÌ™3 ²³³É×111¦¦¦•••/_¾,))ár¹wîÜ! 5rÄÔÔT>Ÿ_PPPk¯¤¤$¼'¿Æy[þÿ×y5Gn.ø˜¥¥¥ÒÒÒ‰‰‰|>úôé^^^u5××× ŒuêÔ©V«ópÞ€ ÝÙyHXXžÑñj\»¶JMMn„ÿÜ»—FuÑ åp8JJJ4ÍÌÌŒ ˆúOݪ©©uéÒ…¬ŠˆËš¯_¿VÛÍÍÍ ˆéÓ§ oÌÌÌTWW'×ÃÚÚÚfddHHH¤¥¥ÙÛÛ›™™ ïl``@„¼¼¼šš9Ù&,%%…L+سV,KGG§®Ñkm.%%åààQZZzùòå¹sçÖÕüǦ¦¦‚†ýû÷¯+†È¡Î Œ«ëââò?ÿij1: EEé³g=ìí]]øûÇR§¹¸\nXX˜ŸŸŸàÜ«§§gXXŸ_ç³@ètºµµõÑ£G…7Ö, ÉkݪÝg„œ#K‚‚„„„òòr'''&“ùøñムï,..N¾pssÛºu«ðêÚÒÒR___{{ûj{VÃçó:4~üøºF¯«¹‹‹KDDÄ¥K—ÌÌÌôôôêjÞ«W/Á e‚xñâE­1Zê<ʨ«Ë[[÷ÃjŒŽJBBÌÏoº§çØ;®xz†¶ëgfÜ»w/77×ÍÍMæ_®®®,«æü™0Ÿ   µkצ¦¦¦¤¤lÙ²åØ±cu[¦L™âååõîÝ»ÔÔT{{{ÿÊÊʪª* ‰òòròToqqqµVÞÞÞ¹¹¹ÖÖÖ×®]c±X.\2dˆ¦¦æâÅ‹k‘———““óñãÇ;wîLž<9##C°¨¢æèuå´³³+((Ø´iÓ¼yóê ïááÁd2£¢¢rrr®]»æííýÝo@dšêš,6öouõ•¯^eSZÐ_=ëÛwÝÞ÷ï¿P¥ ¹>ÏÝÝÝÎÎNx ÇÓÑÑY»v­`K­· yüø±µµµœœœÁŠ+JJJLLL„w¨µUQQÑܹsºwï¾hÑ¢ÒÒR>Ÿïç秨¨¨¥¥uðàA•šmKJJV­Zell,%%edd´}ûö²²²š£BZZZnnnŸ?®gtáæÕºZ´h‘ŒŒLIII=Í9Ξ={tuu¥¥¥-,,È Âú¿pQ]ŸGã×=ã -Çã[Xl;ÖxëÖÉTgôéSáÂ…,Öçýû]Æ7¡:Îÿ wvvF=Ц899ÞÌ~pÞ€Jt:ÍÕuhxxRyyÕY ihÈ_¸°lâÄ‹òñ‰ær;àÝõ  B@1—¡ååUÑÑO¿¿+´gb{÷:ûú:=z{úôCùù%T'‚ŽuÅTTdmm‚‚â©­aÆ ‹Ë—W¼{÷ÅÞ~_Ç~.´¨ó¨çê:ôÑ£Œ´´ªƒ@kèß_ëÒ¥êêÝ^ºTßzU€fB@½Q£ ´´OŸÆ V: 5µn‘‘˦M´xñé "q¯lh!¨ó¨G§ÓæÌ–X\\Auh%ââŒ;§:4ëüùG?þ¸³¹ÐPç´ ®®Cx<þùóÉTV5q¢é½{^ªªrvvûüýcy<ÜÜD u@›Ð­›Ôĉ¦÷p³ÎFYY6$dѯ¿Nؽûª«ë‘ÜÜêyh2ÔymÅìÙ–,Öç„„·TÖF£Ñ,°ŠŠZþþý›Ý·n½¢:tbT€˜šj›šjŸ:ußÂB‡ê,@SSí¿þZåå1cÆÑyóFx{Og´Úè¶¶¶­6|׳gϬ¬¬šßê<€6dölK&3,'盚Z7ª³de»üñÇŒAƒzoÙrñÅ‹ÿù«––bKª¥¥åèèØÒ£@£XYY :´ùýàù¶mHEÛÌlËüù#<=ÇR¨ôòå§ óòŠ6ožäâ2„F£QÚ%\ŸІté">}úà  x6›Ku ’¡¡ÆíÛkÝÝG­]{nÒ¤ß33ó©Níê<€¶eæÌayyEׯ?§:PL\œ±j•ýŋ˿~-µ³ÛSpÐX8o Ðæ¸¹a³yáá‹©mBE{ß¾¿º9b„¾ŸßtuuyªA»ù<€6gΜá÷ï§½~$AD—.â6ütá²wフíOu"h7Pç´9ÖÖý´µ»ãŸsfnÞûÚ5O;;ã5kÂþ9èË—ªA;€: Í¡Ói3fXœ;—XVVEuhCääº8à0ÿá÷VV»ÂÂqñÔu@[äì<¸¼œõ˜ê ÐæŒküàÁúyó†¯Ynoï÷ôéªAÛ…: -RV–2ÅìèÑ;˜°šºt_µÊþÚµU’’â&ü¶qã…’’JªCA[„: š?ßêõ뜸¸tªƒ@eh¨µl߾鑑ÉVV;¯\yJu"hsp_€¶ËÁဒ’̉ó¨mZ^^ñ¶m—""ÙÚíÜ9MC7^`> íš?Äõë/Þ¿ÿBuhÓ”•eÉõ/^|´±ÙsâÄ]×wvj¨óÚ´3,**ª¢¢žPÚ é ~ºzÕSN®ë´iþ?ÿ„g«tZX‡ÐÖýòËÙçÏ?ÆÄ¬¦:´?7o¾ôñ‰~ý:{ܸþ+WÚiRZæóÚºùó­^¼øøðá[ªƒ@û3fŒal,32riaa©­í^‡÷ﳨ­óy퀃Ã5µnGŽÌ¦:´W|>ÿÆ¿÷￞’òÞÆ¦ßжff½¨-u@;péÒ“¥Kƒ>ܨ®Ž[£A³Ü¼ùrÿþëÉÉ™ýúiÌŸ?bÊ”A’’bT‡‚–‚: àpxC†lsr2_»öGª³@GŸ~òä½kמuëÖÕÍÍbÎKü'D‡„: }طﯠ zcöD%+« 0ðþ™3 %%?þØþ|+sóÞT‡QBÐ>äå››oݱcª«ëPª³@‡R^^uþ|òÉ“÷^½Ê64Twq:uª™‚‚4Õ¹@Pç´«W‡%$¤ß½ëE§Ó¨ÎÐÇoã£Sªª¸ööÆÓ§±²ê‹ƒ­]CÐn¼~3fÌîÓ§Z[R:¦·oßþùçõ—/‹Ÿ<)|÷®\NNlØ0Å!C©ÎÕYôéÓÇÆÆF„¢ÎhO\\óùDh¨ÕA c wvv&_3rRRýx¼ªÒÒÇÔ¦ê<ÃÃÃEØ!.æhO-åæväåËO††Tg s@”prryŸx@{2jT_}}µãÇïQÚÔyí F[°ÀêüùGyyÅTg€¶u@;3mÚ É  8ªƒ@[‡: éÒE|æÌa÷++9Tg€6 u@û3gÎðoßÊ/^Ä*H¨ê<€öGUUÎÁaÀ‘#·±.ê: ]Z´hÔ«WÙ¼¡:t^Û¶m£Ñh»víl ¥Õfݺuµnˆˆ Ñšû¼ÒÒR&“ibb"++knn¾cǧ–K„Çíի׬Y³òòò8Ä›7oš™³ù=4 ê<€vÉØXÓÂBçØ±;TNŠÏ燆†jkk‡…… 6:88dgggggÇÅÅ‘ý¯õë×׺ÝÒÒríڵ͉Q\\Ÿ_UUUí5‹ÅâóùÙÙÙäÎ111¦¦¦AäååU%>>^II‰ì<55UÐ?Ù@RR’¼¼<ùºfçÂÍ9KKK¥¥¥ù|þôéÓ½¼¼êj®¯¯(ëÔ©Sßýbëß§±p}@;&--éê:äĉ{‹g|¿€(„††r8%%%Á–°°0ccãfv+++K„¸¸xµ×¤ÌÌLuuuÁÛnݺÉËË«©©¥¤¤ØØØ÷“’’bffF¾600¨k8‹¥££SWçµ6—’’rppˆˆˆèׯßåË—Ÿ1ŸÐ,\8òêÕgïÞ}¡:´!¨ó:‚4QSëXýf°Ð™¡ÎèÄÄèsç ‰/*ª : ´¨ó:Wס\.ÿüù$ªƒ@[: ƒ——š>}ð±cw¹\ÕY M@Ðq,YbýñcÁ¥K-{3h/Pçtò&˜þñG,î‹ê<€fÉ’1¯^eß»—Fu žÕ@” 5¬¬ô¼eeÕ—ê,Ð^=z”êÑÛ·oûôé#Ú>Qçt4?ÿ<ÆÙùгgY?üЃê,Ð.¹»»S¡“y‡çžt@öö~}ú(<8“ê @%\ŸÐ-^<úòå”ÌÌ|ªƒ•Pçt@?ýd¢¥¥xâÄ=ªƒ•Pçt@ }Á«3g¾~-¥: Pu@Çäâ2¤kWñÀÀûTÊ Î蘺v•˜3gx@ÀýŠ 6ÕY€¨ó:¬¹s‡—–V†…%R¨: ÃêÞ]fúôÁ‡ßâryTg  ÎèÈ<?44T[[;,,L°ÑÁÁ!;;;;;;..Ž ˆì—••PTT4pàÀÂÂÂF *//¿víZ‘ä/..4hPRR’¯¯orr²——WHHˆ­­-—Ë­¹s““‹0pK@ÐÙ99™+*J?~—ê ж<{öìåË—'NœHIIIKK#7víÚUMMMMMMYY™ µ‰‹‹¡¬¬¬¦¦¦©©9zôè .ôéÓgÿþýTIIIxú°9¶nݪ¬¬koo¯¯¯?eÊ”ÄÄÄÌÌÌ€€€š;79¹·Ôy„„Øüù#‚‚⊋+¨ÎmHhhèÈ‘#mll „§ôˆF£yxx\¹r…|Ëf³™L¦ªªªŠŠ “Éd³ÙgÓ¦MÚÚÚÊÊʳfÍ"çÏ„ObÒh´“'O*++ïÚµ+((¨wïÞݺuÛ¸q#¹Cttô€¤¤¤ÔÕÕk[ÁÁÁÞÞÞ C°EZZšÉd“£ÄÆÆjkkß¿¿±É…›’'MšäééI6©¬¬TPP {¨ÙœËåîÙ³G___VVÖÒÒòáÇýnu³fYÒh´S§PÚ ò¤­‹‹ AS§NmBG„žž^zz:ùzÿþý=нyó¦··÷o¿ývþüù+W®Üºu+--ÍÇǧf7nÜHLLܵk———Wtttjjêž={¶oßþåË—âââ©S§8ÅbíÝ»×ËËKø¢ºÂœœSSÓjššš¾zõŠ|½oß¾S§N 0 ±Ékmîâârþüy>ŸOÄ_ý%%%5vìØZ›8p`ïÞ½¾¾¾iii6lX³fM¾Û†âðù¿ývÝÐp}qqÕA e‘ÛwwKHHËÏÏçóùÉÉÉA<{öLx‹U­‚ X,–𖤤$yyyòµAvv6ù:&&ÆÔÔ´oß¾‘‘‘ä–¿ÿþ›|-Ü-A?æóùUUUÕ^³X¬ÊÊÊ—/_–””p¹Ü;wîÍ ‚ÈËË«ö¹âãã•””ÈÝRSS›–\¸¹`ÄÒÒRiiéÄÄD>Ÿ?}út//¯ºšëëë Æ:uêTC~#ŽŽŽŽŽŽßÝ­<ß‚ æÍqøðíS§î/YbMu ^hh(‡ÃQRRl 366nT',KGG‡|™™©®®.øQ·nÝ*++õôôÈ·††††††5{••%‚¼øOø5Aiii .,))©9''//¯¦¦–’’bcc#¼ý¿íÝy\SWÞ?ðÂvÙ…Ê" E—:Ö¥U„)âÆ&¢NmÐÖGŸ¢Ñ‡qÄ¥­ £uyêëi•%€XEÇpêÆ¢Z-Q @ÂîïÛf" "ðy¿úǽ7çœû%3}åÓsîRXXèååEo»¸¸ô¯òn»³X¬E‹¥¥¥M˜0!##ãÎ;¯ê.‘H'ÝÝÝ_Uƛú-Bˆ¾¾ö'ŸÌ<|ø²XܦìZ@Éd2—Ëoü]dd$—Ë¥§¾z‰¢¨Ã‡ûùùÑ»ô,=É$ oÞ¼9zôè²²2úÓÂÂÂn×m{ÐÒÒÌápnß¾}èС® ÂÂÂvîÜ©xw­X,Žõõõ¥w呱¯•¿ª{hhhZZÚéÓ§½¼¼ä¶kw{{û»wïÊ{Ý¿¿OxŸ çÀoÖ¬™%‘H“’n(»P²œœœêêê°°0½ß-_¾œÇãöܱ¦¦F TTT\½zuÉ’%¥¥¥ò[–.]U^^^TTäëë{ðàÁ•+WnÛ¶íÞ½{÷îÝ[¿~}yyyŸŠlkk“H$ššš---;vì „466*6ˆŽŽ®®®ž;wîùóçy<ÞÉ“'§M›fmm½nݺ7¬üU%ÍŸ?_(îØ±ãã?–ìÚ}íÚµçÔ©Sàüùóò þÞŠ¾.ô€ ‹‰É˜8q{K‹DÙ…ÀÛÒ›ëó"""æÏŸ¯x¤££ÃÁÁaëÖ­ò#Ý^Ÿ'Çf³ÃªªªäŸŠD¢Õ«W›˜˜„‡‡‹ÅâÖÖÖÍ›7=ÚÐÐ044T(R]®Ï“Ï„u»?jÔ(6›}èСÐÐPssóNU555mÚ´ÉÍÍÅb¹ººÆÄÄ477w-¾¯•+vï4Txx¸žž^SSSÝ¥Ri\\œ£££®®îôéÓé žÿ¡ú{}ƒêË,¨¶º:ñ´i»þò¿Õ«g*»x+RRRBBBðë?ìBRRRúÔ ë¶ð£F醅½{àÀ%‰¤›×CÀð‚œ/ùôÓ¹B¡˜ËÍUv!ð¦óà%ææúË–MÝ¿?«½½›×€À0‚œ­_?¯ºZ”ž^ ìB`€QÕÐ !„¡ìB`à9ÉÐÙèÑFSöíË ˜¬®ŽáG$j)+{Q^^ûôi­@ ª®•—×–—×644BÔÕ•] ä<èÆ† óRSsOº0YÙµÀ+‰D­B>¿ŽÏ¯«¨¨çó…B>_X]-¢ï¨57×·±emmü‡?8Mf³GÝ¿Ÿ·i“HÙ…Ã A΀nØÙ™,^'§8E×Ö&%„èèh²Ù£è99ÿ‰t’³°0=ÚHCƒ©ìòa˜AÎP\.—~h¾j ßÜ ì*ú©‹­:öö¦vv&îîlooמ[ƒµøá'((¨¯]ó`Ø“H¤L¥d—††f…$7 [§OŸÞ×wgÁaccÓ×.Èy0Œµ´H’’nƒ§OŸòx<ú·@¾Ñi›rûömŠ¢$I§mz(—ÊÊJºqff¦‡‡ݽ¨¨Hq¨qãÆ¥§§ÓÍ~ùåùv¸\îk§**„§NÝŽŽ>é矓SòÚ1F܇0­_¿>==}Íš5èú)õò’®¾¾>!DCC£Ó6­¬¬ÌÊÊJ¾khhHo¸¸¸(R^^îääDo?~üøñò‡Œm´p¡çÂ…žÏŸ×kiáG à%X·‰ÔÔÔŽ=zíÚµ#GŽ(—J¥„ŠŠŠÞejjJOìQ% oÞ¼IWÌ‚„Ñ£G—••ÑÛ………}Z·íV[›4?¿ô›o®¬Ysôw¶Ožüw¯ê ÇP1øO€j̘1{öìùôÓOé]###BÈ÷߸ÿþÞ³téÒ¨¨¨={ö444„‡‡O™2eãÆ]›­\¹rÛ¶mööö„õë×O˜0¡5?^ŸŸ_ZPP~íï×_2Y“ÉèèømÒÚÚ¸c¨0ä<€‘+"""===33“bjj³iÓ¦/¿ü2>>þäÉ“½$&&fãÆžžžjjj±±±ÏŸ?ïÚ,**J,ûøøˆÅâ?üðÿøGog0Ôé`wëÖ“ÜÜ'uubBêêjò&Ëd¿-1«©1¬¬ŒzY3ÀÁ ÞÚ3Ð`01 .—¬ìBF{»ì“O23Ÿ2Lƒ¡¦öŸH×-SS½¢¢]ƒVÀ°€ëó`(ÒÐ`.X`[W—>c†#EQjj¯ùÁ20йrå!WÕÚÚ>8 }X·€¡K"©HMýìÁƒÊƒ³ú鶺ºšDÒÍ+nÕÔAÃòåßл&&zÖÖÆÖÖF66£ØìQô¶µµ±‰‰Þà– dÈy0ÔouàÀŠÿú¯y_uêÔm55µöö—Òžº:sÍšY‘‘>•• OŸÖ  ÕÕ¢òòÚ‡+/^¼WQ!”J;è–††,;;;;[[  ;;“1cÌôõµ•ñ—¼]Èy0<ŒgyàÀ çd''ßTL{”µµ±¦¦:áºömhh./¯-/¯}ú´V UW‹rrJÊÊjD¢Vº¡!KûR ¡­í(ù+à†ä<NììLââ‚ÃÃgÿóŸ™§NÝVWgJ$R©TÖóCU Yîî,wwv§ã Ítì“§À_ää”<{V×ÑAB45Õ­¬ å±Ož­­ÕÕq; uÈy0ü89Y<¸‚ÃñMH¸˜ž^ “uôïáy††,CCÖ¸q–3g¾t\"‘VV6TU5TU‰ž>­¥S`QÿÙ³º–‰¼o×%`{{3,ÃPœÕ½½é¾}Ë7oö=x0ÛÆf ’Ü›%àª*srJÊÊ^ˆD-tƒW-³Ù£ÔÔ° ƒ 9†76{ÔîÝAƒvºW-·¶¶+NþUU5”—×v]677°´4´µ5¡S ¹¹­í(ÍA«_ÑÕ«Wcbb”rjè¥Y³fmß¾½ßÝ‘óTGvvv}}½²«µµ õéÓ'šš6EEÏX,-MM¦¡¡Ž¶¶¦–ÖýåÒÖÖ £[§%àövÙóçõ–€ýUÀç×57w^677°´4 S ½½©Î[­¹ªª*+++(hðR2ôÉ7Œßh¢ïÃPªt[(ƒÁ44œ«£Óý;p騧££¡§§­¥¥¡¯¯¥§§ý[X ro¨ë0½ÛÐÐL7ÐÒRï4ùGïÔpJJJHH’ÀE¿Þ&%%¥ß# Ñÿ*€¾R½_ëøø {÷^èú—57·57“úzBH}ÄÅÅjØ…<Ò»%`z"^æó…2Y!DCƒ9z´Q×%`6{‹¥œ%`šó`ˆŠŒô7ÎòÓOÉ:èKܺÅdª}òÉÌW}:õ°\W×DǾßS ('§äرj±¸nÓí0}#ˆþP6ä<ºüü&¦§†…}ÓÜ,‘¿Ó¢--õÅ‹' raJ¡¡Á´°0´°0ìöA€òõ_:æå•VU5TW7ÒÓ¡ŠKÀòg¾xÑJˆê,÷CWÈy0¤yyÙŸ?¿)(èPuµ¨ÓëÎ!ÌÅ‹=uuµ”RÛÐA/w=þâEŸ_WQ!¬¨¨çóëø|áÝ»Ï**„uubº¶ö˜Á­îÀa ººqÅŠo>H¥ÝD½9s\'ø¡;“‰wTôJK‹äÙ³º<½sçF™¬EÙå@÷Þü> üûÀ¹¹þO?m˜5ËY1É1ŒñãGoß¾ðÙ³ºˆˆÄ÷ßýßÿ½R[Û¤Ä:‡ MggËñã::Z{Ùe×®] c÷îÝò#ÉÉÉŒî*îÚÛÛ¯Zµª¦¦¦¯E>zô¨ë]äÝìD,s8œ‰'êëëO™2åË/¿”J¥]›½I‘½)ãmÐÈy0<°Xš‰‰kÂÂÞUüu\³fæš5³.]ÚråÊVŸw¾þ:kâÄèÃ…]y¡ß(ŠJNN¶µµår¹òƒ‹-ª¬¬¬¬¬¼~ý:!¤òw®®®„ëׯWVVòùü£GŠD¢I“& ÎÃ'Ožœ——Puüøqooo™¬›ÿ?ô»H##£­[·tí9† &Sí«¯7nôf0 ÑÖV÷÷÷¤?rv¶Ü¶mÁ;;|x!díÚï§NÝùÅgÊËk•Z²Š(..~ðàÁ·ß~[XXXRRBÔÑѱ´´´´´433#„XþNCCƒbfffiiimmýþûïŸúÈÔÔÔÆÆfóæÍ­­­Š‹˜4?îàà`ff¶nݺææfÅaÛÛÛ9Ž………¹¹9‡Ãioo'„$%%EGG3™Ly3]]]‡“””DœmkkûóÏ?÷\d×Á»;vŒ.rñâÅ‘‘‘t—¶¶6cccz„®Ýe2Y\\œ³³³¾¾þŒ3nݺÕׯ±ó`øY¾üÝ~_½ú½W5;ÖlÛ¶;|x•¶¶Fdd²§çß¶lIyð r0ëT ô¢mhh(!$  9âääôøñcz{ýúõ|>?77÷ܹs.\ˆí¡ãwß}wþüù3gÎdeeíÚµKñ£„„„ÒÒÒüüüìììK—.EGG××× Nƒxxx<|øÞÞ»wobb¢§§gÏEv¼Ûî¡¡¡'Nœ ïj½pá‹Åòññé¶ûþýû÷ìÙR²mÛ¶-[¶ôåûë/ @Õ=.

Âãñ!UUU2™ŒÞ&„8::òù|Å–ÔËO|srr¢7è䤸QYY™•••|×ÐÐÐÈÈÈÒÒ²°°pÞ¼yŠ- ½¼¼äã¼¶Ènï¶;‹ÅZ´hQZZÚ„ 222îܹóªî‰Dq¢ÑÝÝýUe ¬ÛÀH¡¦Æ˜9Óù›oþ”“ó—>z/3óŸ½K–|šš×Ò"QvuC”L&ãr¹ñññ¿‹ŒŒär¹T_ž¿KQÔáÇýüü!L&óÉ“'ôG?¶¶þ-jÓO?©¨¨PìKÏœBJJJììì?¢§èè‰+¡PxóæMBHXXØÎ;ﮋű±±¾¾¾ô.}›HÏE¾jðn»‡††¦¥¥>}ÚËËKžJ»v···¿{÷®¼×ýû÷_û½ €7™ ¾ÚÛe.ÿéOÿÇfGŽ÷?[¶¤Ü¹S®ì¢UoÖm/_¾Ìd2«ªªäGòóó !·oß–évÝVþÈ’+W®,Z´ÈÆÆ¦¾¾žþtùòåsçÎ}òäIqq±««ktt4ýàºo¿ý¶¡¡aÉ’%DaÝÖÛÛ›Çãåææ:99}õÕWŠçÚ°aC```YYÙÝ»w§M›¶~ýzŠ¢Æ7{öìsçΕ””¤§§»ººÎ˜1£µµµS=Ùuðn—)Š¢o¿prrR\–íÚ}ß¾}æææ?ýôSeeå¹sçÆŽûÚ/ÿÍ×m‘ó`¤khhþá‡ëÞÞqVVÿý‡?|±gÏ9>¿NÙE †Þ伈ˆˆùóç+éèèpppغu«üH·9OŽÍf‡……)&źºº•+Wš˜˜XYY}þùç---EÅÄÄ988œ:uJ1ç%''ÛÛÛ›››oÚ´©­­Mñ\"‘hõêÕÆÆÆ&&&áááb±˜>ÞÔÔ´iÓ&777‹åêêÓÜÜܵΞ‹ì:ø«rEQááázzzMMM=t—J¥qqqŽŽŽºººÓ§O§'{þòß<çá½g¿)*z–ššâD¾HÔ2c†ÓŠÓ}}ßÑÐ`¾¾çð”’’‚$0d½ù{ÏpÀoÜÝÙîîì¿þÕÿâÅ{II7Ö®ýÞÌLÏßßsùòwÇ·z}€!9à%ZZêþþþþ¥¥5ééÉɹß~ûowwöŠÓ—,™¤««õú!†Üo н1cÌ6mò½uk;—»ÎÎÎdÛ¶“&ýmÆã99%Ê.  W0ŸÐúi,3g:WW7ž>}çÇo¦¥å;9YOY¶lš‰‰ž² x%Ìçôй¹þš5³239?þ¸vüx«¸¸óS§îÚ¸ñÿݺõ·2ÀЄù<€>PScÌž=nöìqB¡øÄ‰‚¼¹dÉ×öö¦ÁÁS‚‚¦X[+»@€ÿÀ|@ë®Y3+;{Ë¿þõùûï»9ruÚ´]ÁÁ‡OœÈÇÛ5`ˆ@Îx#¶_|P\¼ëÇ×ZZp8)&l‹ˆHÌ̼/•v(»:Ѱn 0˜L5úv˜˜¥§O¦¦æýéOÿgii094tÚØ±fÊ.F"ä<€d` ³bÅô+¦óxU))y©©¹f»»³'xë*»Àμ½½•]t¯¸¸xÖ¬Yo2Þ{ðutP×®ñRSóΞ-êèè˜?ß-0pòûïWWWþ¥S7nÜHHHPvГwß}722²ßÝ‘óƒHÔB¯çæå•ZX.X0¯Sƒ· 9`PÉ×s««‡òz.¨ä<%H¤/ÞOMÍ»|ù¶¶Æ‚!!S§NÃ`0”]¨ä<eª®nLO/HIÉ}ø°ÒÆÆxéR¯¥K½œ-•]¨ä<€!áÑ£êS§nŸ8QPVöÂÉÉbáB€€Éöö¦Ê® †1ä<€¡¥¨èYjjþ©S·_¼h¢/à[²d’‰‰ž²ë‚á9`(’É:®_”šš÷¯µ·ËæÌqY°`â‚ut4•] ÈyCšHÔzáBñ™3w/_~ÀbiΟïæïïñÁã™Lå?†8ä<€áA h8sænZZ~QÑ3KKC?¿‰ÁÁSÞyÇFÙuÁÐ…œ0Ìüú«àÌ™ÂÔÔü§Ok-ýý'M±µ5Qv]0ä ç KT~~iFÆÝ“' ê뛽¼ìýý=ðÈeP„œ0¼‰ÅmçΟ8‘ÿóÏ< oo×… =çÌqÑÒRWvi dÈy*¢ªJtöìÝÓ§ óóKuuµ||Üüý=fϧ©‰À7B!稚úúæÌÌûgÎܽrå!“©6s¦ó‚?üÐ]WWKÙ¥Á BÎPYB¡8+ëú™,êêL:ðùùMd±ð¾9@õ!ðLÈy#H]8;û—´´ük×xZZï½ç8ÙÇÇ ×ð©$ä<€‘¨¬ìEFFaFFá½{&&z~~î~~§OwTWÇk6TrÀˆVZZsút!—›[VöÂȈ5¾ëÿè>{ö8mm e—o 9!¤¼¼63ó~FFa~~™†sÚ´±ô£øÌÍõ•]ôr¼¤¶¶éÒ¥ôcY::¨I“ìüý=üüÜ­¬Œ”]ô rt¯¡¡ùßÿ.É̼î\±XÜF¿KwÑ¢IŽŽæÊ. z9^£µµ='§$3óþùóÅ/^49;[z{»z{O˜2e ƒÁPvuðJÈyð›'OždeeõÐ@*¥?nzø°éáÃÆ–™¹¹Öôé£<=±ž;0ÆŽ;oÞ¼9~“’’Ò»¶ MMmm‡ööª––o·¬#(((%%eÄCà%˜RŠàààÏBPMÈyª 9@5!ç¨&ä<Õ„œ šó ?víÚÅ`0vïÞ-?’œœÌèNaaa·Ç=zôæ¯Ó‹ÅgâĉúúúS¦LùòË/¥Ri×fŠçµ··_µjUMMM/OñæuÈ_ÚÈyÐgE%''ÛÚÚr¹\ùÁE‹UVVVVV^¿~Rù;WWWBÈõë×+_Öó>yòÄÔÔT¾ÛØØ8yòä¼¼¼ØØØ‚‚‚¨¨¨ãÇ{{{Ëd²®}éø|þÑ£GE"ѤI“êëë{sR##£­[·ö£Z¥Ãs’ ÏŠ‹‹ú,99yöìÙóæÍsqqQœÒë·úúú>úÈÔÔÔÆÆfóæÍ­­­„3gÎxzz²X,+++:i½ûî»D!A&%%EGGÓ!¦««Ëáp’’’è¥Òììl[[ÛŸþ¹Óé ÆÚµkÏž=Kï¶··s8 sss‡ÓÞÞ®ØýرcôªëâÅ‹###é.mmmÆÆÆô]»Ëd²¸¸8ggg}}ý3fܺuëÍ¿¢~@΀¾¡mCCC !½Ìyb±¸IA§«èÖ¯_ÏçósssÏ;wáÂ…ØØØÆÆÆ€€€I“&ñx¼={öDEEÕÔÔܼy“"!õõõÀÃãӉ<<<>|HoïÝ»711ÑÓÓ³k=NNN?¦·JKKóóó³³³/]ºÝm÷ÐÐÐ'NÐï…»pá‹Åòññé¶ûþýû÷ìÙR²mÛ¶-[¶ôæ+xEQE'¶×6»y󦺺ú‹/(Š*(( „+6àñxÆéš@222äÍ$ “ɼwïÝ8==ÝÑѱ­­íÁƒMMM2™ìêÕ«„§8²P($„ÔÔÔt*ïÆ¦¦¦tË¢¢"y<O±Y^^ž‘‘½íââRYYIogffzxx(v—ŸT,ëêêæææRµlÙ²¨¨¨Wuwvv>vì˜ü\‰‰‰¯ýbƒ‚‚‚‚‚znÓW¸>ú&99Y*•*ÞÁårÝÜÜzîÅãñȯϫªª’Édô®££#ŸÏ×ÔÔ,))ùóŸÿÜÔÔÔ턜‘‘‘¥¥eaaá¼yózyyÑÛ...=Ô#?cYY™•••ü#CCÃn»³X¬E‹¥¥¥M˜0!##ãÎ;¯ê.‘H'ÝÝÝ_UÆ[…u[è™LÆårãããÉår©î&ízÉ‚Éd>yò„Þ}üø±µµuKKKpp0‡Ã¹}ûö¡C‡ºí¶sçNÅ»kÅbqll¬¯¯/½«¡¡ÑmGŠ¢>ìççGïÒóô˜P(¤W‡»íš––vúôi///''§Wu···¿{÷®¼×ýû÷ûô… ä<胜œœêêê°°0½ß-_¾œÇãö{L 6”––Þ»wï¯ýkXXX[[›D"ÑÔÔliiÙ±c!¤±±‘nOßÏK‰ŽŽ®®®ž;wîùóçy<ÞÉ“'§M›fmm½nݺ®g©©©W¯^]²dIii©ü¦Š¥K—FEE•——ùúúHSSÓ¦M›ÜÜÜX,–««kLLLsss×Ã›Í «ªª’*‰V¯^mlllbb.‹»w*<<\OO¯©©©‡îR©4..ÎÑÑQWWwúôéôaÏ_ìÛ¸>A½Á,+¨’”””d¥&„¤¤¤ à˜X·PMÈyª 9@5!ç¨&ä<Õ„œ šóTr€jRWv0´9rDÙ%ŒDOž<;vìÀމœ/‰ˆˆPv #Ô€ç<¼÷ @5áú<Õ„œ šóTr€júÿìE…ºg¬ *IEND®B`‚XQilla-2.3.0/docs/simple-api/LocalFileInputSource_8hpp__incl.map0000644000151400015140000000003511653571064021456 00000000000000 XQilla-2.3.0/docs/simple-api/EventHandler_8hpp__incl.md50000644000151400015140000000004011653571063017705 0000000000000076916215ac2cdc48742dbe395b5b5c62XQilla-2.3.0/docs/simple-api/ItemFactory_8hpp__incl.md50000644000151400015140000000004011653571063017554 000000000000000c84dc77f38183dbc5e267deb3bab1e5XQilla-2.3.0/docs/simple-api/XMemory_8hpp_source.html0000644000151400015140000002361511653571063017436 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

XMemory.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  * 
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  * 
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: XMemory.hpp 527149 2007-04-10 14:56:39Z amassari $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_XMEMORY_HPP)
00023 #define XERCESC_INCLUDE_GUARD_XMEMORY_HPP
00024 
00025 #include <xercesc/util/XercesDefs.hpp>
00026 #include <stdlib.h>
00027 
00028 XERCES_CPP_NAMESPACE_BEGIN
00029 
00030 class MemoryManager;
00031 
00040 class XMLUTIL_EXPORT XMemory
00041 {
00042 public :
00043     // -----------------------------------------------------------------------
00044     //  The C++ memory management
00045     // -----------------------------------------------------------------------
00048 
00054     void* operator new(size_t size);
00055 
00056 #if defined(XERCES_MFC_SUPPORT)
00057 
00064     void* operator new(size_t size, const char* file, int line);
00072     void operator delete(void* p, const char* file, int line);
00073 #endif
00074 
00082     void* operator new(size_t size, MemoryManager* memMgr);
00083 
00090     void* operator new(size_t size, void* ptr);
00091 
00097     void operator delete(void* p);
00098 
00099      //The Borland compiler is complaining about duplicate overloading of delete
00100 #if !defined(XERCES_NO_MATCHING_DELETE_OPERATOR)
00101 
00107     void operator delete(void* p, MemoryManager* memMgr);
00108 
00115     void operator delete(void* p, void* ptr);
00116 #endif
00117 
00119 
00120 protected :
00121     // -----------------------------------------------------------------------
00122     //  Hidden Constructors
00123     // -----------------------------------------------------------------------
00126 
00130     XMemory()
00131     {
00132     }
00134 
00135 #if defined(XERCES_NEED_XMEMORY_VIRTUAL_DESTRUCTOR)
00136     virtual ~XMemory()
00137     {
00138     }
00139 #endif
00140 };
00141 
00142 XERCES_CPP_NAMESPACE_END
00143 
00144 #endif
XQilla-2.3.0/docs/simple-api/Numeric_8hpp__dep__incl.map0000644000151400015140000000103211653571064020012 00000000000000 XQilla-2.3.0/docs/simple-api/classInputParser-members.html0000644000151400015140000000445011653571063020445 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

InputParser Member List

This is the complete list of members for InputParser, including all inherited members.
Args typedefInputParser
parse(std::istream &input, Args &args)InputParser
XQilla-2.3.0/docs/simple-api/XercesConfiguration_8hpp__dep__incl.md50000644000151400015140000000004011653571063022276 00000000000000676f1b00393745c00303fe4752717998XQilla-2.3.0/docs/simple-api/classXQQuery__inherit__graph.map0000644000151400015140000000035611653571064021133 00000000000000 XQilla-2.3.0/docs/simple-api/tabs.css0000644000151400015140000000210711653571063014265 00000000000000.tabs, .tabs2, .tabs3 { background-image: url('tab_b.png'); width: 100%; z-index: 101; font-size: 13px; } .tabs2 { font-size: 10px; } .tabs3 { font-size: 9px; } .tablist { margin: 0; padding: 0; display: table; } .tablist li { float: left; display: table-cell; background-image: url('tab_b.png'); line-height: 36px; list-style: none; } .tablist a { display: block; padding: 0 20px; font-weight: bold; background-image:url('tab_s.png'); background-repeat:no-repeat; background-position:right; color: #283A5D; text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); text-decoration: none; outline: none; } .tabs3 .tablist a { padding: 0 10px; } .tablist a:hover { background-image: url('tab_h.png'); background-repeat:repeat-x; color: #fff; text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); text-decoration: none; } .tablist li.current a { background-image: url('tab_a.png'); background-repeat:repeat-x; color: #fff; text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); } XQilla-2.3.0/docs/simple-api/ATDoubleOrDerived_8hpp__incl.png0000644000151400015140000002213211653571064020677 00000000000000‰PNG  IHDRuu§ €*bKGDÿÿÿ ½§“ IDATxœíÝyX×ú8ð“„d—]Y\@v´­ "`ˆ q©µ‚öZûµ¥\[µ·öVz»øë-R7¨k-YÅJ%¸^D«‚¨¬" "¶d~LïÜ4™„€YáýüNrμ3ó2o23É¡`† STeŒAP_Ùƒú ÈÔW@ö4”²wåÊ•/¿üRÙQÅ)((Pvƒú Æ ¶¶¶ßÿ}Á‚ÊÈÝóçÏïß¿¯ì( õŒY{÷îUv@Šþñ(; HÀõW@ö ¾²õ=¨¯€ìA}dîã݉'RRR6oÞ¼fͼ¥°°pß¾}¢¯}Š?þõ×_wîÜéìì,9HÑÁI»]¹rÃ0„PII‰¶¶¶ŸŸi÷ôôôsçÎÅÆÆž>>‚¯¬­­uqq!Æ6HÒÁI»kkkÏ;÷Ê•+ööö7oÞ|˜8Åúá‡&%%mÙ²ESSsáÂ…111ZZZ›6m:xðà©S§þö·¿]»v'444>>¾¯¯oÑ¢E+W®lkk#žÚ´iSRRÒæÍ›)Š¿¿\\BHOOïðáÃ)))ÉÉÉÍÍÍÖÖÖAAA CSSsDAŠ.ôÁš ¡¡pùò倀 ±ijj:t¨££ÃÑÑq÷îÝï¿ÿ>BèÛo¿õôô$–K*88øã?îëë Š‰‰ÁÏ 5Jè€*£]` øõ×_W­Zõ:?BämÔ?b%ŸÿŽc@Áùa@ö ¾”@__ŸN§KÓ€š‚ú Pccã>úHšFÔÔW@ö ¾²õ=¨¯€ìA}dê+ {ðûˆ`ÌŠWðù|m.×\G§FP𢕨¿ß˜Ï×ÔÑé PøŠ_:‡ÃQüBÔW0Mš4‰Á`(lqÔŽ½/t»º´h4¾­­‘©iŸÂ–N`³uêêŒ|}Û†©L5455Ðh˜™×¢×а_êù‡dChÎ>Tüþ0£ÔÖö2'§‚É,­¬|ffféM§{øøØÓhʹì’]¾eËÏÍÍ¿è—/{/]úƒÉ,½~ý‘¡¡nHÈLÃoÞ>ötºçòå>¦¦êôk—` €ú T—Í §  ¾ ºr¥:'§'}ŠBAññKvìX¤à€8ø·ÃÓÓï44¼pv¶\ºÔsÅ _{{seÇäêë¸s黃 󆆸¢OQ(”Û·wÛÙÁÄ *¿*+«ìÅ‹nüN¨e˼ÍÌ ”1¨¯ã1‰àÜpaaîÖÖÆÃwª¤¹¹ÓÏï Ñÿb*•2k–]~þGJ‰ Hƒ¸êÂ…ÊÁA~-&,ÌCOOK١ـúªöØìž®.®4g™ø|ìÆGii%—/?àpzüü`n¸1€Nÿwï>åóÿò¬¡AýüóÈw߯¬¨€ôººú~û­*7·‚Åz §§µh‘î)ÍP÷ï7ò<<&)&N0RP_Õ[YÙ“‡‡»ÿóŸ+ĽFhn¸Y³ì ?˜nÌøùç»wg"¦Ñ(åå_À)GõÒÚú27·"'§¼¤¤ÞÊÊ(,̃Áðuw[>wíbž9sûûïW/_î£È8” ¾ª±“'o~úi:Ç72Ò«ªÚ'ôóIDY½x±ª©‰ãèhé¿¶?ö°Ù={x¼ÿÕWúÆŽiiï+1*ð:jjZsrÊ™ÌÒ'O:\\¬èt¨(¿)SÌ_38È›5ë³®®>„P\Ü‚Ï>£Ã¨©¨¯j©·w`ÇŽ³¹¹ÿÝ}”³gã¦áÏâwOàsÃÙÛ›¯Xáeul‹ŽN¾~ýQb©TÊwß­^µj¶r£¯ Ÿ´''§âüù;½>>ötºçòå>¦¦ú¡‹«6m:Žh4ª‡Ç¤ãÇ7ÁÄy*ê«úyô¨mƣϞ±‰ã©¦&mùrŸmÛ‚23ÿœÎÊÊhŠߨ(_(«ã“Yúÿw†¸«©I»wïË t”•¡+WªsrÊóò*y<~@À´ðp */_¾O\ÐРëž8±ÙÓs²r£¨¯j&?¿êƒN ðˆ_Àéêjõõ ê.^ìá5ož üLÌøÑÝÝïæöÙÀÀBHCƒâvìØFedÿ ðŒŒ;ååO54¨BÝ54¨ å_ÿZ §.TÔWµÁçcû÷ç¼!,ÌCÙ9JJºœ˜˜'tÓ8B! BXLÌ›û÷GÁ;l¥ƒ :;{cb~:x°Ã0Ò·DÔÚÚçP\Ç­åË}ø|>BHWW38ØUÙáù*,| æ !töì­¨¨¤ŽŽnE†DA}UååO¿¾~½VÂɆ¡!ÞÅ‹÷¸ÜETG`à ]]- -Y2 ¦6ÛZZ:oß®#ûðú'>»{÷é’%ß?|Ø¢ÈÀ€¿ür¹\‡£¬P©Ë—köìÉëïçáïL%èëLO¿¹p¡‹bÃéêꚘ¼îÏSp8.—+“xƳààéÙÙ•S›››•‹Ú311ÑÕ}­9-ä—ÕgÎÜö²Þà ¯©‰v 11bî\y„H fÎ_êë«W¯jjj” aX^Þãóç«ûû‡¤ì’‘Qjg'× „Mœ8ñõëksss{{»LâÏ\] X,m#£~ø/~}3gÎ|Íú*¿¬¾v펎TW‚0 ûôÓì•+gÛË# J0sHÎ#-X°@¡áñ¿ý–¤Çãww÷‰¶S©TE~+ã?þÕP'Ntu…«†¯ÅߣPLƒ‚•ˆÚ+**’É8rÊj8D«,¡Ìë4j‰F£ÂÌq@•J‰‹[ ì(‚û›;àrTÔW@ö ¾²õ=¨¯€ì©}}}úôéÆÃÿ”ymm-…B| ØýîÝ»iiiD{VV–––VUU•âPL¡P †àÍÉ;€¯È´Qûúš™™IúT]]¹¹9þØØØøïÿ»¸î^^^»víÚ¾}{gg'BèåË—ï¿ÿþÞ½{gÍš%¿Èݼy³¥¥¥±±1%%¥««ËÛÛ„TssóéÓ§ïß¿¯˜ØÔޏ}-ž j½m¥IæW¯^ùúúÞ¾};11±¬¬lçΧNZ´hÇÝvÃSWlWJð¿x<{¬&úÊuc Š™Læ¹sçä´ Q£Û8Š€ hkkc±X˜Z ëíí%}êÑ£GB+(ÚHtïïïwss‹Å0lË–->>>r‹ú/B="þäóùþþþ{öì÷zÒõ’~|ºwïÞ½{÷Tg!Ć’f‹á™0Òm«x"”&™ãããçÏŸ?44Dôêîî¶··ONN]İ[C~©%Œ"—Îb±ÚÚÚ^sÕÉjѾò@, !gjjÚÒÒ¢€åŽ”\“V(sFüù5;;ÛÖÖÿ™â³gϺ¸¸ôôô „?ùäKKK ‹O>ùdppÿÌ~ùòåÉ“'íÝ»wòäÉ'N\¿~=ñáL´B(''ÇÝÝ]GGgêÔ©'OžD ‘vñâ…¾¾¾®®®àùâño¼²²²BbN ÝBZZZ©©©Çß¿JJJjjª¦¦¦¸ e¸j¢(Ê–-[òòòÄ#¸^RŽyéÒ%'''“ýû÷[#++kÚ´iÛ·oïïï'm”6-ä4ñø|~RRÒŒ3&L˜ðæ›o²X,üä„“E¹¹¹^^^zzzÖÖÖ‰‰‰x#‘ ¢9ƒïåëׯ“v¤P(ÇŸ1cÆÄ‰Ož<éàà`dd´{÷nü¢»ïÍ7ß2†añññžžž/^¼@R'ó©S§öìÙC£ýïk²úúú §OŸÅvÑΗ`’××ÙÙ d»uOlÅd5é!‰9F ›Ò¤ÁôCíØ±cúôéø;<Á8IÔÒ,TòA855J\¥¢¸´¬½R~~]¿~ý† Z[[---oß¾7~ýõ×+V¬xúôiee¥··÷Î;ñ÷,K–,),,üüóÏ]]]+++«ªªæÌ™/®Www·¶¶vrrrKK˱cÇ444º»»¿ùæÒîÇ?yò$ö×÷G¤ïïH‰î„;w"„¾üòKÁF¹®Fö~ª¤¤ÄØØXòÒñgÅ)!ÞÕÕ•žžŽÿ'à#,Z´¨¦¦æÖ­[NNNŸþ9i£äLPðçWÑÄûé§Ÿ,,,222š››óòòìììð)´¯‰]]]ZZZï¾ûnccã©S§BÏŸ?Ç$&¾—[ZZH;"„¢££»ººŽ=ŠZ¹reWW×O?ý„ogŒl÷}ñÅaaa†eeez{{cVZZª££ÓÓÓƒaXLLLPPÐãÇ+++ÝÜ܈]ƒGR^^ŽâóùDqÅ£•&™ñãx{{»Ð†ýÏþcjj:Ší†*//õWâv–¸“f}IóA~‰­ÈϯŠÌj¡Ï‘¢É‰ —Òâ8‚é‡G[SS£««›’’".ÁÇ£ø?"Mq•BüÒÉœÑÔW‡cggçîî.¸¼éÓ§g <==ñø*++1 ›6mZFFþìýû÷‰Ç¢½Øl¶¦¦æ·ß~Ëápø|þ«W¯x<ž¸î+V¬`³ÙØhë+ÑÇçó#""h4ÚÚµk×W®«† W_Å-o7¦ „PQQ†a<_–`ü†;wÎÉɉ´“HÁõU4ñ\]]SSS‰üüóÏ’Dýýý<èîîæñxW®\!¶¼„DÂ7ˆ¸Ž¡²²2 Äã/Ý}¥¥¥}ôÑ®]»4559Î7ß|Š÷¥ÑhÄÖÈÈÈÚ5øã„„„Puu5±îÒ$3^_‰’L¸y󦹹ù(¶›„·ì¢;‹4Á¤\_Ò|_b+²¾*2«…6¦hrbÃ¥´¸Ž`úüðÆ††OŸ>•¦¾Žôÿˆ4IÄÉ/m°×??Œ266Žýã?¶nÝJ4644X[[ã7†„„Ô××ãíÓ§OG=yò?σš1cƲeËÄõ211a±X·nݲ³³ ¸ví•J%íÞÝÝ=88(:y 6ìÔM‘v?}útQQQaa!“ÉÌÊÊR̪‘ÆöèÑ#GGGÉKÇI9¦ BHè)"ìéÓ§766JhT¢‰WWWçééI¼ÀÝÝ]òZZZ555‹/öññIMMÅÅ%ßˤq&L@á'`ãDwŸ———¾¾~IIÉÕ«W—.]êååuõêU‹†jkkãñxÄÞwrr"ö ®¤¤dÁ‚_}õ•¸U Mfccc+++ü; òòrÁÁ¥Ün8ÑKYIJDH$Á¤\_qÆ@b+%«qâŽ-Ršô€#nYÛ¶móòòzï½÷HÉB#ý?ÂÛ…’DÜÑXˆÂÒf4õõÙ³gIIIÁÁÁü1ш¿ÿÅÿÁ8έ[·ðv|ÙØØ444à-åååÿüç?Åõâr¹|>?--ÍfoÚ´‰N§³ÙlÒî/^\¼x±``ø× ššš¤Y ¡îÍÍÍÛ·oÿæ›oüýý÷îÝ×ÑÑ¡€U ðC‡áG[ KÇI9&é•ü B¨¦¦O8q*B4ñlmm+**ˆ ;Ÿ—Ë]¹rå'Ÿ|RVVvðàA¼Q4‘á{™´£4Dw•J ÍÊʪ©©ñöö^¸paAAÁÕ«Wñ=niiI£Ñêêêðî?¶µµŒ—“““œœüË/¿°X,ÑUÌ111ûöíÃß¹#„¢££Ïž=›˜˜=Òí&éQ‰$˜”ë+ÎHl¥d5Nò±EܲD8â–E¥RSRRnܸqøðaÁö¨%‡*”$âŽÆB—6‚o<¥9?Ìãñ‚ƒƒ÷íÛÇf³­¬¬²³³ñöíÛ·GEE544TTTÌ™3gÛ¶m‚ÿ÷îÝëîî^UUUUU5wîÜÍ›7‹ëÅrùÐIDATårutt˜Lf{{ûáÇutt¸\.i÷µk×655áãà_=vìØË—/ñ÷,ØOà„DOPvçóùáááø¹Žww÷èèh¬þ&Žø~NQQQDD„]gg§4K7æ‘#GˆÀ‡ $p>$00ðÑ£GÅÅÅÎÎÎ{öì!m”œ Š}zVVi÷üzáË/¿466vttÄφa6888oÞ<L$姦¦jkk ^Í*..¦R©L&SÞ«†ýõ$ɤI“bbb÷ä¥KSB¾â#=ztÊ”)æææ|ð—Ë%m”œ Ь¯¤‰700ðÅ_888¼ùæ›gΜ‘|$Â0ìûï¿7554iÒÁƒ£££MLL3A\%íhaaIq\ MƒÎÎN üΣžž--­„„bAl6{ݺufffÖÖÖ;vì vhT\.×ÅÅe×®]Ò'3†aÝÝÝü±›››ŽŽŽ££ã§Ÿ~°jÕªm7bõIß²“î,q &y}ÿ‹‡Ýà²Jl…ÕWgµÐÆ$MÎaSZè€#z(ª¯|>?$$„Uô@-ÍB%‰ÇâŽÆŠIL$s(˜À?ÉóçÏïß¿“÷ŽyµµµÎÎÎØ_¤’ág®^iY3ŠU¡²²2üËò£€½#«Ä.**š9s¦……ÅëY­.d•6H$sÔþ÷›¯IKKKÞÅ€qêëxdhh'M#²¢€ƒÄ£ ¿´óÃ`ôTíü02¡Rç‡óÀÜA}dê+ {P_Ùƒú Èž†hSss³âãꨯ¯OGGGVCAâ1²zœ#©¯555Ѝ)YÕW|êP™ €Š€¬ç(ð³[€ÌÁõW@ö ¾²õ=¨¯€ìý öõí(³ÉIEND®B`‚XQilla-2.3.0/docs/simple-api/examples.html0000644000151400015140000000311011653571064015322 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

Examples

Here is a list of all examples:
XQilla-2.3.0/docs/simple-api/classVarHashEntry-members.html0000644000151400015140000001056011653571063020546 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

VarHashEntry< TYPE > Member List

This is the complete list of members for VarHashEntry< TYPE >, including all inherited members.
getValue() const =0VarHashEntry< TYPE > [pure virtual]
operator delete(void *p)xercesc::XMemory
operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
operator delete(void *p, void *ptr)xercesc::XMemory
operator new(size_t size)xercesc::XMemory
operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
operator new(size_t size, void *ptr)xercesc::XMemory
setValue(const TYPE &value)=0VarHashEntry< TYPE > [pure virtual]
XMemory()xercesc::XMemory [inline, protected]
~VarHashEntry()VarHashEntry< TYPE > [inline, virtual]
XQilla-2.3.0/docs/simple-api/open.png0000644000151400015140000000016611653571063014274 00000000000000‰PNG  IHDR à‘=IDATxí1 “ت¦@@   ]01ÀQXY~Jr?D>„¥¶þ’n¼ áFÍ  }ÈúÂéãÏ\ ÄáÿòIEND®B`‚XQilla-2.3.0/docs/simple-api/classDateOrTimeType__inherit__graph.png0000644000151400015140000010557111653571064022430 00000000000000‰PNG  IHDRëÉÁbKGDÿÿÿ ½§“ IDATxœìÝy@LëûðwÚОö$Ñ" -º–,•pÝ(•DÖ6ÜPéŠk»¢²¯¡P̤Pt‹ Y’R*{E!ÚµMë,ç÷ǹw¾ó«™i›šIÏ篙3ïòœ3SóÌ{Þó†at˜¿èc èÈŸ:ò'€ÎáwÀÏ/99yïÞ½üŽ¢ÿš6mÚŽ;xØ äO@+--MLL´³³ãw ýѳgÏäääxÛ&äO@/‰ˆˆàwý‘½½=ÏÛ„ùOù@ç@þÐ9?täOù XöìÙC 8ÀÜB"‘ìdee±>ÕÔÔtvv.//ï~ õõõD"qܸqRRR¦¦¦û÷ï§Ñhm‹u§÷üü|Ð »ßB—Aþ ÃH$’††™Lfn´¶¶......NIIAÿG__!”’’R\\\TTR[[kll\]]Í©ýOŸ>)((p¡®®nüøñéééþþþ>>>ááát:½máNõÎJVVvëÖ­))€ È«W¯Þ½{wáÂ…¬¬¬ÜÜ\|ã AƒTTTTTTB*ÿE)**ª¨¨ 2dÆŒ7oÞ1bÄáÇ9µÏ`0*++¹Ç°{÷nEEŤ¤$+++]]]›´´´Â¶…;Õ;+Ö1¶¾ò'@€H¤éÓ§›››ëéé±Au@pwwÅŸÞ¹sÇÈÈH\\\UUOV&NœˆRQQÁ P©T"‘¨¬¬¬¤¤D$©T*B(,,ÌÏÏOXX˜Ù¬„„‘H ÃO™%%%ihh~üˆª««³µµ566ÎËË ðññ)//OMME•””à…>\PPðâÅ‹¤¤¤û÷ïûùùUWW—””¶jÖÐÐðýû÷øãÀÀÀK—.qémãl«;::FEEa†º{÷®¸¸øìÙ³ÙV?vìX@@€¿¿nn®¯¯ï–-[ºp|x@Ã3¡v‹¥¦¦ŠˆˆTTT`–‘‘zõêk¼¼¼Ví „òòòX·¤§§ËÊÊbÖÜÜüîÝ; …B§Ó“““ñ’­ZÐÓÓ+..Æ'$$VUU!„ÊËË[ÅöìÙ3¼zNNN»½³mœµ:3’úúz ‰´´4 Ã/^ìãã麮®nhh(³¯K—.uä¨ÚÙÙÙÙÙµ[¬Sàþw€  ‘H4u~7™L600èT#yyyZZZ!11±ÜÜ\ …Âv¬!TXX¨ªªÊ|*###++«¢¢’••ennÎZ2++ËÄĬ§§×nïlg[]\\ÜÚÚ:22rôèÑ·oß~ùò%§ê---¬ccÇŽåFOƒów€@ Óéd29((¨î?^^^d2ðŽ7‚aØéÓ§çÍ›‡jll´··'‰™™™§Nb[RÂÇTªªªð³{NNN»wïf½Ú®¾¾ÞßßßÊÊ ŠÏ[çÞ;§ÆÙVwttŒŒŒŒ‰‰111ÑÑÑáT]SS3;;›YëÍ›7?2¼ù ?~\VVæää$ùŸ%K–äååeeeq¯X^^^RRòíÛ·äää… àÓ±›››[ZZÄÄÄwî܉ª««Ã«P(üÏçÏŸsrr¬¬¬Nž<‰òóó+++›5kV|||^^ÞÍ›7'L˜0dÈŽ÷Ωq¶,--«ªªvîܹjÕ*æÆ¶ÕÝÝ݉DbtttIII||ò'ýÔ—/•ŽŽg ÆíÛ´´”øèK Ðed.[¬¥¥t劋¬¬x×ùôéSbb"oü5bÄssóv‹Aþ ßyðཋKÈ„ #‚ƒWŠ‹‹u¹/^¸¹¹ñ00Àwvvv?­%%½[³æâÌ™£Nr0€߃†u¿ ìíí;XÖÐ$&¾]³æ¢ÍøsçVð$yýäOú‹¨¨+W^X¾Ü, À^X¾A×Aê  _ˆˆH÷ö&ýñ‡ù–-sø èó ðó#‘žoÞLÞ´ÉÒÛÛŠß±€ŸäO~r!!ÿüóæöíóÖ­›ÅïXÀOò'?³óçíÜyëÏ?ç{xÌàw,àç³çü´Îž}¸k×­ýûm!yÚ³g@8pàs ‰D"°“••ÅúTSSÓÙÙ¹¼¼¼;½sê+22²û÷K®¯¯'‰ãÆ“’’255Ý¿?Fk[¬;;•ŸŸßÍ8»ß+ÈŸüœ‚ƒ“wïŽñõ¿|¹¿cA†‘H$ 2™ÌÜhmm]\\\\\œ’’‚*þ¾¾>B(%%¥¸¸¸¨¨($$¤¶¶ÖØØ¸ººšSûŸ>}RPPà§¾ÌÌ̶nÝÚ]«««?~|zzº¿¿FF†Oxx¸……No[¸S;ÅJVV¶›qòütÂß©©m:}úAö‚'C)™M B>|hõj^^^«vByyy̧ cÚ´i~~~œÚoÛB÷KvÐæÍ›§NJ£Ñ˜[(Ц¦fppp«’Ý)ÞêÈŽÛÙÙÙÙÙu¤5ð³!“ÓˆÄoïÙîî¿ò;–‘H¤éÓ§›››ëéé±Au@pwwÅŸÞ¹sÇÈÈH\\\UU?!8qâD„ŠŠ ^€J¥‰Deee%%%"‘H¥R9µÌzV‹@ \¼xqÔ¨QŠŠŠ¸råÊðáÃeddvìØÁ¥Ù°°0???aaaf›D"1,, o<))ICCãÉ“'Üwªmã¬ÕCCCñ8,Xàåå…Winn–““Ã[h[N§:tHWWWJJÊÌÌìùóç=ìÜð"¥EB ï]»nõB_b0Ç?{ö,†a¾¾¾úúú­ ´;þ„aXzzº¬¬,†aµµµbbb«V­*** C•••µjÁßßßÖÖöË—/999ÆÆÆÛ¶mãÔëS„££cmmíùóçBöööµµµgÏžEUTT°m¶ªª !T^^Þjž>}ª¬¬Œ7>gΜû÷ïS(.;ŶqÖêYYYˆå4(ƒÁÀ0,::ZMMJ¥²­¤¤¤tãÆïß¿ÇÆÆª©©µûfu|ü ò'?gÏò‡'nÚt ÿ~íiÌŸRSSEDDð$##!ôêÕ+ÖÊŸš››ß½{G¡Pètzrr2^²U zzzÅÅÅøã„„CCCN}µÊŸ2331 kiiiõ¦m³œò§gÏž)((àçää´»Slg­ÎŒ³¾¾^BB"-- ðŋûøøpª®««ÊìëÒ¥K<ÌŸ`ý?‰W¯Š–/??sæ¨C‡ìyx¥U÷‘H$Æ:¿›L&tª‘¼¼<---„˜˜Xnn®‹‹ …B122b[¸°°PUU•ùTFF¦ƒ½HII!„DEE[=æÔ¬¬¬¬ŠŠJVV–¹¹9k;YYY&&&øc==½vwŠKÌ­ª‹‹‹[[[GFFŽ=úöíÛ/_¾äT½¥¥ÅÐйeìØ±íï‡Áü'?ƒË–,9«¯?äĉ¥uo;:N&“ƒ‚‚êþãååE&“ññ˜Â0ìôéÓóæÍC566ÚÛÛ‰ÄÌÌÌS§N±-ýà#%UUU©©©<Ù¶Í:99íÞ½›õj»úúz+«—zgÍÀ8í—˜ÛVwttŒŒŒŒ‰‰111ÑÑÑáT]SS3;;›YëÍ›7<8ÿ OÐ5ß¿W;8œVS“½tiÍÀì¿­ùåñãÇeeeNNN’ÿY²dI^^>¡‡‹òòò’’’oß¾%''/\¸°  Ÿ7ÝÜÜÜÒÒ"&&ÖØØ¸sçN„P]]^Ÿc„²±±ñññùüùsNNŽ••ÕÉ“'y²/l›õóó+++›5kV|||^^ÞÍ›7'L˜0dÈŽïT§b¶´´¬ªªÚ¹sçªU«¸ÄæîîN$£££KJJâããýüüxrþÕ‘“|€Àª©i´°84až’’ê^îº#óŸÜÜÜ,--Y·0 --­­[·2·°ÿÄ4tèP''§ÒÒRæ«AAAƒ:tè©S§•””¨Tê”)S$%%ñµµµ+W®”“““——wuu­¯¯çÔW«ùOÌ!¶95K¡P¼½½ ÄÅÅõõõ÷îÝÛÐÐж/î;Õ¶qÖê­šruu•””¤P(\ªÓh´C‡ikkKHHLš4 ÐâöVufþëÌø! P¨Tº£ã™ËnÞüCS“Û’=!""ÂÁÁ¾Iööö¡ˆˆˆvKÂüq}†aëׇ½yóýöí ½Ÿ<þ ò'}UPÐÝøøW$’‡¶¶¿cý äOú¤ÈÈAA÷&MÒâw, ßëïô=OŸæ{{“<hpOĺìÓ§O#FŒèHIÈŸô))ùþõ矿ϞmÀïXZsssëxaaaiqqýAƒF·´|«®Žï¹¨@×t0‚û·tÅÅÕ³gš™éœ>íÌïXº¨¹™öÏ?9×®=OIÉST”²µoooª««Âï¸@Aþ@ µ´Ð.ìÜy«°°bõêižžæÒÒƒøà3ÈŸ„ôô‚€€8_ßùµÚdyyÝ®]·nÞÌœ;wìåË.}hOУàüþ«ªª77;VýâÅU2›Ngœ9ó (èÞ!²þþö“&iñ;" @`ü Ÿa¶aÃU!!‘#Ž’ O½ÿݵkî‚°ÚSccK@@üùóÆŽUÿçŸM»†à/ÈŸðÓÇe;wÞÚ°ÁBÖÈÈ(ôô¼ZQQ·gÍÒ¥“à ;À ÌÀ7T*}îÜÃÒÒ¯__Çßd¥¡¡e×®[áᩳgøûÛ)*Jñ1 ø`ü ߯ùR™°™¿ÉSjêÇM›®ÕÖ69ã<¾!#}äOø#5õã‰I‡ÙkhÈó+†–Úž=·CB[XèûûÛ+)Á°è8€(”f ‹CêÁÁ+øCAAùÚµWòóËþüs¾³ód¹ôô 0þ€öì‰ihh9p`¿¸~=Ý×7JGG9!a³¦¦¿Â}äOz[bâÛ°°g/®’——ìýÞ««¼½I÷î½Ù¸ÑbãFKaa¡Þôu?èU/¯köö¦³gô~ïiiŸÖ­ c0°ˆˆµ°¤8è2ÈŸôª;oŠŠŠüõׂ^îðsç’÷ï¿3y²ö±cN½¶BL«(d2ÙÞÞ¾ûí@þ ÷ܹ“}ëÖËk×ܤ¥õf¿55 üžœüaëÖ¹3z9§Ù´iÓ¤I“z³GÀO2'äOzIyyÝÖ­×—-›4mÚÈÞì÷Õ«"—ЖZdä:SÓá½Ù5nâĉvvv½ß/è90i@/ٱ㦸¸˜¯ïüÞìôäɤyókk+%%ù’<ŸŒ?è qq¯bb^†…¹JI ìë뛉Ĉ۷³¶m›»víL˜‡xò'=®¦¦aûöH;;Ó™3GõNŸ?Wº¸„|ùRyþüJ¾\è~npþ@Ûµ+ð^»æîÁƒ÷³g2X|¼7$O 'Àø€žõðá{29-8x…¬¬xO÷Å``ÿ{êÔýµkgnÛ6ÖÆ=>Xz…Ò¼eKļyãæÍ×Ó}ÕÖ6­Xqþܹ‡‡ÙûúþÖç’§={ö„0·H$;YYY¡ÜÜÜyóæÉÉÉ©¨¨,X° ;;›Y‘µ°¦¦¦³³syyy×¢ª¯¯'‰ãÆ“’’255Ý¿?Fk[¬;=æççwsvZ÷[è¬>öÙзüýwlc#µîs—Ÿ_6oÞáìì¯QQë–,™ØÓÝñ†a$ICCƒL&37Z[[§¤¤ „Šÿ£¯¯ÿõë×É“'2äþýûqqqS§N}ûö-³nJJJqqqQQQHHHmm­±±quuug£ª««?~|zzº¿¿FF†Oxx¸……No[¸Ë=ÊÊÊnݺµ³±ñôŒÌÌÏêê^×®¥ötGÉÉïGÚneøý{UO÷ÕY!2™Ün±ììl€úðáC«WóòòZ}e»¹¹Y[[3 æ–åË—;;;3;ÍËËc¾Ä`0¦M›æçç×Ùà7oÞ|øÙ³g1 óõõÕ××oU ÕøJSS“PII þ´Ž³SÖÑ ÃÒÓÓeee1 «­­[µjUQQQXXB¨¬¬,99Y^^žJ¥b¦¯¯Ï`0ªªªBååå­‚yúô©²²2Òœ9sîß¿O¡P¸ôˆa˜¿¿¿­­í—/_rrrŒ·mÛÆZŸÎ…ýwT‹ŽŽVSSÃCj[=((HIIéÆß¿USSëHJÓ‘÷¢ƒ À{……ÇKè¹.š]\B457ߺ•Ùs½t_G¾³SSSEDD***0 ËÈÈ@½zõе@«üéÛ·o!Öl©Õ°—l¦¹¹ùÝ»w …N§'''ã%i4šŠŠJRR†asçÎ=pà†aœò§gÏž)((à!åää´Û#†azzzÅÅÅøã„„CCCÖê̽«¯¯—HKKÃ0lñâÅ>>>œªëêꆆ†2ûºtéR/çO°~ÞÛ¾=røpE™=Ô~yyÝÊ•>®¼~}íøñ}þ®,$‰F£)((0·ÉdŽ+W©¨¨ 80//ÏÈÈ!„gUUUƒæT%//OKK !$&&–››ëââB¡Pðê!aaa›7nŒ;611ñìÙ³!YYY•¬¬,sssÖ¦²²²LLLðÇzzzíöˆ*,,TUUe¾$##öº¸¸¸µµuddäèÑ£oß¾ŸCd[½¥¥ÅÐйeìØ±œÂè!0ÿ ÅÆf?|øáï¿mEDzä[æÍ›oVVAµµ·ooø ’':N&“ƒ‚‚˜ç༼¼ðaNU„„„fÍšuîÜ9Ö\fMavúôéyóæ!„ííí‰Dbffæ©S§˜eìììnÞ¼1eÊuuu|£““ÓîÝ»Y¯¶«¯¯÷÷÷·²²ÂŸŠŠŠ¶Û#B¯ÂGnªªªRSS9UwttŒŒŒŒ‰‰111ÑÑÑáT]SS“u½†7oÞpÚ÷žÂ“Q,WSÓhhè·qãÕj?%%Ô¨í¿ýv¤¼¼®‡ºà-ÔÞ9£ —––2·¼xñ!”™ù¿ó’m¯/ËÊʒزeKvvöË—/wíÚell,**Ê씹šÀÇ­­­ÕÕÕ«««1 «ªª"qqqõõõ[¶lavD£Ñ””””••CBB˜½ÔÔÔŒ9rúôéqqq¹¹¹7nÜÐ××733kjjj—1 óôô\´hQaaavvö„ Ö¯_ÏZõ1>m\GG‡õô\ÛêGURRºuëVqqq\\܈#:’Ò´û^täOxéÏ?oèëûþøA鉯cc³557¯YÒÔDí‰ö{B»ßÙnnn–––¬[ †––ÖÖ­[™[Ø^ŸŸ™™9kÖ,iii==½ 6P(”qãÆ1;e:t¨““k~4xðà¡C‡ž:uÊÑÑQII ßîîî>hРÚÚZÖ^(Š···¸¸¸¾¾þÞ½{چĽÇÚÚÚ•+WÊÉÉÉËË»ººÖ××sÊŸ0 suu•””¤P(\ªÓh´C‡ikkKHHLš4 Ðâr™Aò*"`œ‡€NÉÌüüûA/× IDATïG´ï‰,Oº¿oß¾¾¿õòbÓÝA Èd²½½=¿iŸ¯¯oaaaxx8¿é)<|/`þ8žÙ»÷ö¸qCy¾àƒíÜy+$äñ_-X³fo¡¦¦¦ïß¿_¼xñÚµküŽ¥o€ü oܸ‘‘ž^ç%$ÄËÁ!*•îåEЉyyôè[Ûñ ÚñèчgÏ>FG{v¶â—/•‹ŸÑÕU ^Ñ'’'æ §øøWââ–.dooª££Ì︀Àñ'Ü`6gÎaeeéK—ÖtªbiiÍÂ…'deÅÉd)©=¯45Q£¢^\ºôôõëoZZJË–M¶·7••çw\@@Áønâã_¿~]èÝ©Zååu¶¶'%$Hîž<}ÿ^ú$<<µ®®qΜ±~~ÖffÚ}zyÐ ÀÎ8p ÖÚÚH_HÇkÕÔ48:ž"\»æ.-=¨çÂë Ãßž?ÿèéÓ<55Ùµkg88LPPäw\ o€ü GÑÑ/ ÊCCWw¼J}}óÒ¥ÁuuM·ný!˜éHCCËÕ«©!!O +¦LÑ Y=kÖè¾ua à;ÈŸ°G£1âmmÇ®ØÁ*--´U«.ý¸yóUUÙ ¯ ÊËëBCŸ\¹’R[Û4¾áñãNÆÆÃøè“ À^TÔ‹oߪ¼¼fw°<ƒmÜx-;ûkdä:MM…­³òóËΞ}™.-=håÊ©K—NRT”âwP ƒü T*=00ÞÞþ—¡Cw°Ê_EÇÅå\»æn`ЉÉR= ŸätâDRzz‘‘ƹs+àTà ÈŸ°A&§••ÕmÜhÑÁòGŽÜ y|ñâꉵz4°jn¦]¿žòäýûbsóÑ·nýñË/#øøy@þ µ–Ú‘#÷œœ&"בò×®¥Ä=ºÄÜ|tOÇÖ®šš†óç]¹’RSÓhggzâ„Ó¨Qjü ül ЙœVQAY·nVG Çǿڲ康·•­íøžŒ»oߪΜyH&?^³fê²efJJ¼œädaÑÑÑ8ð“ùóÏ?§OŸÎºò'ÿ•J?r$aÉ’ jjí_@÷âEÁÚµW–/7۴ɲbãäåË/gÎ<ˆ¥¤$½eËÜÅ‹'HJày/‰‰‰'N:t(Ï[‚ìúõë...­6Bþàÿ¹~=½¢¢nýzóvKæç—-_~a֬ѻw/ì…ÀÚj5=üüù•===|Ó¦Mööö=×>@l£‡ü ÀÿÐhŒãÇmlLÚ|*.®vp8­««|âÄÒÞ¿¢NgüóOΙ3^¾ü2q¢Ö¥KkàÂ:Л ð?·ogUmØÐÎDŸÚÚÆ¥KÏÉÊŠ_ºä2`@¯~•P©ô¨¨Ç'}ùR9wîØ½{mŒ4z3äO˜ ìÈ‘{¿ý6Žûê—ø"ãµµM·oo–î½{77Ó®^M=uê~YYí¢E¦áᮂ¶J'è? ð¯»w_üX¼‚K ÈĈW¯Š¢¢Ö«¨ÈôN`ø’/>¡Óé..ÓW¬˜"//ˆwÖýäOBðÇëëêªp)t÷Ö­Ì+W\zg‘ñÒÒÚ'’H¤ç¢¢Â«WO]µjªœœD/ô wBü€@xøðÃë×߸Ï|º|9%(èÞ±cNÓ¦ìéxŠ‹«·l‰˜0aÏ;Y[·ÎMO÷óö¶ê+ÉÓž={˜[H$¬¬,„Pnnî¼yóäääTTT,XͬH ttt0 cmΜ9!??¿Ë²­Î˜¦¦¦³³syyy×Ú¯¯¯'‰ãÆ“’’255Ý¿?FcF—{ÌÏÏg{e\Çu§ÈŸ „PPÐÝiÓFr™‹ýøqîŽ76l°°¶6êÑH Ê==Ã'NÜ›”ônï^›çÏw¬Y3MB‚÷ë9õ ÃH$’††™Lfn´¶¶......NIIAÿG__ÿëׯ“'O2dÈýû÷ãââ444¦Núöí[fÝÂÂBÖŒªªªêÑ£GêÓ§O íOKII)...** ©­­566®®®îl_uuuãÇOOO÷÷÷ÏÈÈðññ ·°° Óé<ìQVVvëÖ­g0ý^JJ¾ªêÆ””|NÞ½û®«»mݺ+ £çÂÈÍ-qu 2d“™Ù¾ˆˆ´–ZÏõÕ!2™Ün±ììl€úðáC«WóòòZ}ùº¹¹Y[[³ØåË—;;;3;µ²²Ú¾};óÕÐÐÐ9sæ „òòò:|«~ÙVoµ‘Á`L›6ÍÏϯã½à6oÞµ³³‹ˆˆÀþ;…¹hÑ"æ«ÕÕÕ+V¬PPPPWWß¼ysSSBˆ@ „‡‡5jðàÁDMœ8!¤¢ò¿Ém÷îÝÓÖÖ–““ûûï¿ÙF ÜÝÝcccñ§wîÜ122WUUÅOMzzz®^½•B¡ˆ‹‹¿|ù!æçç',ü¿·OBB‚H$†……á§Ì’’’444žæ4mÚßׯ§S©ôžè…'PÆŸ ÆðáÃÏž=‹a˜¯¯¯¾¾~«­Æ<ššš„„„JJJð§u,˜¾ÿ^EEååË—†UWW‹‹‹WTT ÿFnœœœfÍšõñãÇœœƒ]»váµ-ZTUUŒª¬¬l;þôÛo¿ÕÖÖFEE!„***0vƒRééé²²²†ÕÖÖŠ‰‰­Zµª¨¨(,, !TVV–œœ,//O¥R1 Ó××g0UUU¡òòòV;þôéSeee<Œ9sæÜ¿ŸB¡péÃ0[[Û/_¾äääoÛ¶µ:>u ûïl)þyŽŽŽVSSÃCj[=((HIIéÆß¿USSëH"Äö}‡ü ú5k.ªªnœ2eÿµk©ÍÍÔ+ÎÏ™„¿äæv© àß| ÃÕ5TOo{^^)ÏÃxûöûš5!jj›fÎ}Ÿ~üøqÈ!Ì–¹GÛîT6 ÃNŸ>=oÞ<„Pcc£½½=‘HÌÌÌ>>l{ÑÔÔœ2eŠªª*÷]˜½íR ý|² ©¬¤0o¬A ¡ƒíß¿/iuþNHˆ0j”Z\œ×¾}6l“§œœ¯NNçh4F«Q+þõë±c‡Bò~bðá€þ¥²²_©’@@BBèÌçââÖ\GDDhÐ ±ìâã½ÇŒQgÛH^^©½ý)üþ¾m_"øûÿÓCñ  €þ¥¢¢ŽñïÙ;B` ãܹcI¤çt:ý·ââüù†))¾K—Nâ´ xIIƒÃi ¥¯Õƈ‹Ëy÷®¸‡v¾ƒü ú—ÊJ •Ê"lß>ÏÞÞôíÛï……†‰ˆ+(H^¼¸êäÉeÊÊÒœªÿøQok{’% kMTTxÐ 1 C½3Åv-«ž@£1àK0Áüqè_JJjBë×ÏZ·nB(*êBHX˜àâ2ÍËk¶„›™êêšììN”#„4h€i ƒ@ (*Jik+®4|¸ÂðáŠÃ‡+ôðŽÔ=š“ó56vo[.-­ÍÍ-ùü¹òóçÊ/_*ñ55 jó¶#Ðwý¿«U#""ø `²³³‹ˆˆàwÿ²··¿~ý:¿£øàøôµVa»7 ë+—77©­Å '()­¡Óëjji´ î ÑÁƒˆ‰ A1tú*µŠN¯¦Ñªi´j:½Ãh¼ •Ó ÏeeuGÞ»r%…NÇ ËÏ?À¶XGTW7V|þ\YXXÁ|PRRƒ¿ª¬,­¡!¯©©0l˜ü°aò3®^½ 8ŸIÐ;Ø®ŸÉfüIp¾–ú­   ~‡ÐÚĉ½¼¼øÅ¿àøôø-egg×ö®}NZZÓ/¿h"4 !TYÉ(/§éé©!4²ÝŠeeô†LZZHFFHXX!•ž òíÛ·l–””ÔÄ“Éi¿m_CCóõƒ³¿éSSRbŽ'}ùRùý{5•JGII >\qØ0yM“aÃä54äÕÔdEE…Y¡Ó){÷î æÝŽ‚¾ŠMþdgg×ûqV8˜1tèPÁù`Àñü2zôèŸ`ÀiÓ0NÃYiiM@@<‰”F  VóÖ +X󧺺¦‚‚rÖT)7·¤´´!$$D:t°††ü°aòÓ¦é↠“—‘ïH ðgÞ?ÙÙÙ :´ÕF˜ÿýKŸKžÊÊêŽO¼r%ÃZgN!ý25õ#~êíóçÊoߪèt†AEEFSSACCÞÌLÏ“45de;”*±çgäOTyyݱc‰aa)t:F£ÑÙ– y2b„â°aò#GªÌžm€ÏXÒÐ,&ßq §Àg €À¡R1IIÓÉ“÷55µÐéìg‘ã Æ¢EãvìµØ@°”AÓÐ@MIi’0ª¯o¦Ó111.çétF^^io†‚ñ'‚F\\túôA¬©i|ÿþ{NNQvö—ŒŒÏŸ?Wb&&&L§c¬¡ ÛYyžëÊøÅ AƒÌÌ̲²²¸”Ç0léÒ¥’’’] ’7¾ÿ¾dÉMMMIIISSÓ›7oò%ŒüüüŸf™VB~~>¿£t{öì!t}¹^5Ò ÷O&‰D"°Ãýo¿šÁbñâÅÿýwuuu÷›mjj:sæÌêÕ«çÎëîîN§·ž tÿþýì$''Ϙ1£Ë]sj¶wþØ¥¥þòˈ5k¦?¾4%Å÷ùóÁÁ+ÜÜfLœ¨%)9!„AHˆPUÕÐÔDí…x`êâøSJJÊðáÃBuuuûöísppxÿþ=§¾ß¿ÿüùs×Ãì¶ÊÊJ##£ùóç“Éd))©¸¸8GGÇèèèÙ³gw³åOŸ>ýòË/½ýë§¶¶)..'**ãèQGUUÙ^î;~VT*ýÁƒw7ndÚÚšXXèó1V†‘H$ 2™¼mÛ66Òýc.++»uëVN¯Z[[#„ &OžŒ?FÉËËw¹Gžx÷®øÖ­L ¥yß>þFÂtâÄ UUUƒñõëר¨(WW׋/rúY\\ìîîÍ¥Á††99977755µ‚‚‚ .¼xñ"00¿]ÎÌÌ,** osýúõøc„†aŽŽ]ŸÄ©YiiŽ7xé9êêrêêróæÃŸ~þ\™ý5'çkvö—’’MÍž]îV]ÌŸUTTB***TVV.//WRRb[¸±±!¤¡¡Ñå(»oçÎ3fÌ8þ<þtôèÑ%%%ÝÏŸ Feee·ì¨æfZbâ›72ßR© „0ƒÛÌJ¾èåcòÿ»Æž=ûxëVfLÌ˺ºf„°ß~Ç—HØzõêÕ»wïîÝ»gaa‘››«««Ë«FºÌ¸ h 4hРA! …‚ÂÿüùèË—Ê[·^FF¾ÈÏ/Eˆ`a!@kZÊÊÊ<!¤  `hh¸qãÆëׯ¯\¹’maƒQ[[˽ÁË—/ËÊÊáÙ’ººº©©éÊ•+ãââæÍ›Ç,6`À€ ÿþåâ1à\]]»¼;\šå;|I‚ß7äw  ?âÁüqQQQ111ü)•J%‰ÊÊÊJJJD"‘J¥Nœ8±üÃm[?q””¤¡¡ñäÉ“¶B!<<|Ô¨Qƒ>xð BˆF£íܹSCCCQQÑÙÙ™9HζzTTÔ† XÃÞ¹sç… ðÇÕÕÕ+V¬PPPPWWß¼ysSSë¹ ÖÇmÃhwïètú¡C‡tuu¥¤¤ÌÌÌž?Þ…ƒÜØØrýzº³s°®î67·K‰‰o©T:B—9áÚ=&!pñâÅQ£F)**8pàÊ•+Ç—‘‘Ù±cGzd0°Çs==ÃGŽÜngw*""­®®I‰Dš>}º¹¹¹žž™Lfnoû¹òôô\½z5þ*…Bùò%—FZó¶iÔÞ1g~Î9ýe±Å6N¼©èèè‘#G*))yzz677#Ÿ„N),¬ ŒŸ2åï‰÷Äçç㳆îf"¿ÿþ{jj*þôÙ³g...VVV¶¶¶W¯^E­]»!dcóïàF;sæÌÂ… .\xæÌ†JHHpvvfj8pàâÅ‹¾}û6cÆŒÌÌL‡W¯^±/ƒ?ž1cF\\ÜòåË,XpõêÕ{÷î9::Λ7ïâÅ‹\`ëøñãG,LÝ IDATøg!ÔØØhee•——‡÷õôéÓeË–-\¸ðøñãø»Üñfè+º˜?Õ××S( …òýû÷?ÿüÓÉÉ ÿ‚:|øpAAÁ‹/’’’îß¿ïçç‡ÿï())áTßxéÒ%###NnݺõìÙ³ƒnݺõÇGŽ‰ŠŠŠ}ðàAnnî¾}û8µ_]]]RR¢§§Çº ’’’Ì!±õë×¥¥¥ÅÅÅݽ{×ßߟ˾· £Ý½;vìX@@€¿¿nn®¯¯ï–-[:~œi4FBÂOÏð±cý6n¼öèQ.•Jg00ü†«ƒïxbbbZZÚ|||îܹ“““sèС½{÷vj%-íÓŽ7Œv98œŽ‰yY_ß„€ü¼~&ÅÖÖ–5Bm>W‹-ŠŽŽÆ¿f¢££GŒahhÈ¥‘VÇœÓGº#ÇœÓ_[œâD:uêÎ;·oߎ‹‹ÃG¶8}ÚU^^wþü# ‹€É“÷=šˆß¼–Ój@‚F]]ýû÷†???°°0àààêêêS§N!„nܸŽŒŒ,..>{öl```fffHH…BùñㇶvëÛÖjkkùò±mÛ6ŽÄ“‘‘qúôiWW×àààgÏž]¸pÁÃÃãÊ•+ø0XÛ8µ3}úô§OŸâÓ°ž>}ªªªÊ òÖ­[ÿý÷þýûŸ?ާ‰o€¾¢‹ù“¡¡¡”””””Ô!C._¾L$™/…„„œ8qbèСcÆŒñ÷÷oU—Sÿ3fHHHp*°nÝ:YYÙåË—#„~üøqþüù={öŒ3ÆÀÀ $$dòäÉœÚÇï@Éiz•J%‘HG1bĘ1cvïÞÆeß[…ÑîÞ9sæàÁƒ .TUU;wîßÿÝ‘#\[+¶eK„ÁŸË—Ÿ‰Éª¯oÆ0¬¥¥Oþhãô†‰D)))ggg„жmÛ¤¤¤ðsUUUí¶ÙØ(?yò¾ Ž_¾ü´¼¼!ÔÒ"Ð_¨iii_¿~µµµEÙØØ¼yóæõë×ÌW[}®ÌÌÌDEE=z„ºzõê²eËð0÷Fp\>Ò9æœþ²Øâ'B( @GGg„ ûöíÃh÷ŸC+‚XJJéüùGŒvþõWôû÷ßB4Ó=eœ˜˜Ø… <==åååñÙõõõ­ÊÄÅÅmذAIIiĈnnniiiœZ# Æ¿ ¹ºº 8°#a888ˆ‹‹[ZZ"„–,Y"..nee…ª««ëT"""999¡ÄÄDKKKæ[ïáá¡®®>jÔ¨5kÖ$$$tªYúŠ.ÎÊËËÃj࿨V­ZõìÙ3ü¥ÂÂBUUUfIæy=&N˜ãCœ ¨©©!„DEEñ§Ÿ?fþÞ5jÔ¨Q£8U—““SVV~ûö-ë7AzzúÚµk“““üøA§Óµ´´ðíÚÚÚEEE¬·úgÝ*Œv÷®¥¥…ù‹!4vìX¶™îß—™©ÔÐ š“óï!åž6™šîæÞ`÷éèˆ++7t¹:§7TJJ ýw$Ys÷áCÉë× 5522î"D@qmru írä$.®llÜþò3$‰F£)(üoŠ+™L600À·ú\ ÛØØÜ¸qcìØ±‰‰‰gÏžíH#¸ÒÒRNéŽsNYlqŠ!ÄlDOO ÝL-Æ)+¯Žˆøôß6n9Óë×Ejj›¸à iéi]¨UTT„¿¹"""EEEœÆŠJJJðä'!!!))9xðàüü|Ö’ùùùÌùsš]*..ŽÓê1§8µ#$$4uêÔG1"##ÃÛÛ›ù’ºº:3°òòòN5 @_ÑÝõŸÄÅÅW¬XqîÜ9 Ãð <À³+üÄY«*œ 0ÿs*Àzú!¤¦¦VXXˆsdeeÅÆÆúúúrªþûï¿Nš4‰ù ),,ŒJ¥Š‹‹‹ŠŠ úô ¿­úLJ ‚—¡Ñh"""ß¾}cí·UíîMvvö¸qÿÎb~óæ ÷C:sæ(=½ªŠŠA ư¢¢bb"Üó§¿ÿ^ÔîÇ»)8˜Û Ívµû‘蔑#Utu«**IJêç䉊 Óht.ã®®¿š˜ ëNí:v,°Ý2t:L&¹¸¸à[vîÜI&“wïÞ&Û~®ìì윜œF=eÊü ‰K#¬•••9}¤;‚Ó_'mãÄååå3!”››‹'ÿ$ $¶mÛ¼¼gÌXñöm F"Ðh­o|Æ4t¨ü®] :¾]ckŽPçÀ0,&&ŸÖÜܼk×®]»vMš4‰J¥ÆÅŵ-/##søðaüýÂÏÜ!„ÌÍÍ/_¾lddÄü455]»v™‘°&@ÝÄ6N~ýõ×½{÷jjjŽ3FQQ‘¹½¨¨hĈ¡¯_¿âWhvªYúüÕIKK×ÕÕQ(üç¬O@@@MM«««©©i«‰Û](püøñ¶ý.[¶Ì××WSS!´~ýzü«‚Sõ}ûö5jÙ²ek×®•””¼yóæ±cÇîܹƒuppðôô ®¯¯Ç§sÉÊÊ"„._¾¼hÑ¢cÇŽµ{( ~}rÛÞÝÝ݉D¢ŒŒÌ„ ²²²:2çC\œª¡AˆØñáCÉ;Y×®¥}ÿ^%**Ìv ÅÜ|ô!rí¶ÙW®tå¼—cÂö í811ºš%"»¤¤æÎ쨨Œìì/""Âl'ÄŒ¯ÙÓ—à]¹ÒÜn™Ç—••9991¯c_²dIPPPVV–‘‘Û*S§N¥Ñh»wïf^Ç¥ü¯?æl?ÒßNYœ´·aÆsçÎUUUmß¾}éÒ¥¨“Ÿ„Dšš>®X¡»`Mrò‡[·^þóOvK ]HˆÐö²22ƒæÏïñ‹°¨ÔòŽ«®®4hƒÁøöíÛõë׋‹‹÷ïߢR©øO²–––ÐÐP„PCC>ÔØØˆ_Þ8uêÔàà`úúú€€===OOÏåË—»»»{yy-Y²_¿àâÅ‹ ÖÖÖeee¼ÝG¶p*×ß©««KKK3çŸîÝ»WJJÊÈÈhæÌ™ãÆk;»ûp>>>–––³gÏž2eІ†óJ¶Õ322š››íìì¦L™òÏ?ÿÄÄÄ0/ý=qâ„ššš©©©¥¥¥¥¥¥‚‚ÂÞ½{½½½W¬XÁe÷555§L™Â<+Ѷ÷uëÖ‰ÄÍ›7kkkïÞ½ŸMÙA#Gªx{[½xáïåìl†3‰Š úªñí^u¤¢"³fÍ´¸¸MÏŸïØºuΰaò!QQa^µÏC$iÖ¬Y¬k|kiiµšEÎ ?5V[[ËfàÒH«cÞö#ÝñP9ýeuü1óés¼¿“‡yû|>ßÏwÁ‚ñãÇ{xxlذA^^~ïÞ½üå*EEŹsç®[·nÊ”)ÚÚÚNNNK—.ÕÖÖþúë¯ÝŒ3ètú¬Y³-ZdddäççGNß»woŸ>}vïÞ=sæÌ899mÙ²¥)ëÝÍUo ¡R©ŽŽŽŸ>}rtüÏÊæÈ‘#/^8`À~îÞ¬n:Šðæž„„//¯Nº7óKâééIDBB‚Hym-çÂ…¿Ž½sæÌ}‡K¥R9nVVp[Ï?5¤4I’7oæ?~çøñ;?VÉÉIWW³÷îý±­çŸÚîóY¾|y~~~ll¬Ø{/‘8Ÿ>}jbbÒúI(J||<ÿãöæMiRÒÝÄÄ[ýU ++]SÃvv6ŽžÙÊášϪU«†ÞÖu"ûöí+,,\±bÿí›7o&MštáÂ…Ö÷|ñâÅ5kÖàû:¬Ž>“Âdd¤F¶=Ú¢²²æÌ™ûGÞ¾z•)é : …2p`ï{‡„Œ»téɱcwΜɑtP-T]]ýöíÛüùçŸ’Ž¥1‰SWWuÞ¼oæÍû†É,:~üÎá÷¾Ôg"udµµµïß¿OIIiÙ™mâÂfs=z›ýÒÅåk-- ‰]ò§NIQQvüøþãÇ÷/)©TRjÒMË]Š”ÕÉ©¯“Sߪ*ªªNùT¬7n¸»»Ï;·ƒÏvÔ§²²rû,И˜h1® †ë›7Ÿ?óÄëñãÇ+W®üᇄï/VPPøþûïÛt\6›ûäIá½{/sr^ߺ•Ÿ›[Èß×à„!êÜÔÕ%üTæN^^F^^FÒQ´Ä°aÃ:Å=JõÆ©©©¹{÷îö £­—°¡.KKË'Nˆª¨¨ˆw ‡ÇdòŸswãÆs&ó‡Ã¥P(T*Áåþ½ºG§Ë´õmÈ"?@Çòé›É¬UV>rä&³ÍæR© åß[/I’ä Ýn«¯ßžÊ]ò'èXètiŠŒŒî£Goø{Ûx<²¡3T©TЉ‰V»Æ –ó Ä«gOé’’Øøø¹zA4r\…”õåË›6¥ÄÇß¼qãyQÑÇv º.Ì?@åà`zæÌâ+Wr׬Izô¨€F«çôT.—är¹'Of¿|ùÿ´99iCCõž=Õ Õ{öT74T34T×ÕU혇ÃA'…ü :4ÓsçW®ä®ZuüÉ“ …Âãý»–ÇåòÖ¬q<ؘ ˆ?½xñþÅ‹÷/_¾ñâý£GoSSï¿zõ_¿[7zÏžj={ª¨ ¿o´{÷îo‡ÐÖFŽÉâP³ èZîÞ-²¶þ{ÃPaa¥Œ ­{wù¦4d±ØòòR’:ùÝÁÁ4=qîÜ£õëO>}ZD’ÿ>ÜÝÐðï'jwëFï×Þ¯Ÿ¾pC6›ûöm?£â§VW®ä8PTUUK„¬¬TÏžê}úh 'Uzzª4Z ÷·àtõN'>>^<ùN¢ë<<<$Â>|¸CýÅÀç±fÍš5kÖH:ŠÖÒИZ^~©¦&Ÿ  EVSóÇÊÊ,+› |B3Ÿ´´f÷îcy¼Z§”Ë-åpʸÜ2§ŒË­hhs·xQ(ggó#ú>|sóæÔ’’ .—G£Ñ?9SZšÆOŒþS.2Yuóæóƒ3ÊË«øMzôP™¦21Ñjây(õž›S‹ÿéþOþdooßqžÑÑÅ ?Ç^â-ZÔÑò|>]Ä Aƒ$¿¾˜·l¹÷ö­ûüùæFFÊADF>ÉΖ71íãcbhø™#åòó+ÂÃÖÖªÐh½)‚Ë%I’ R Y--ymmºººœ††œ††¼ŠŠLÍTIIQ½½M˜`wcóæ¹–ÍÕ;Y%’T½xñþÊ•ÜׯKùû®ø+€¦¦Z‚ù*CC eebÜQðt!€.eòäˆôôGòò2GŽÌ·²28{öÁ?îçÿ'ÜÛ{ÐÊ•ßwëFo¤ùÕ«LŸÝ\.OäÛƒB¡ÈÈHY[Ë!IBJŠ6b„Y[?—°¶–síÚÓ#ÌÚt”òòê/J^¼xÿâEI~>?¯*yû¶ŒËåQ©”=TÕ{öTww»óOECÏÙü,ìèZ45•i4jm-ÛÃ#üÈ‘ß|ó•ª*½´ôA 7¿8fÚ´¡ Mê j²oß´3ðxÿù8I’55ÿ>.‰ÃáŽoÛÆ—BÈÈHµuòD„²²Ü×_ë}ýµè´·ÈdÕå˹/_^WPÀ“dºäO]‹ššF­­åÔÖr==w8áïînûÇ—Ãáq8µ«V?t(3,l¢••A½=Œe1mæÌȆV0¨TêW_é|ñϤ«wJ]Cs$´œŸ е¨©)òÓ6›[UU;aBø!&οÏC!I’É,úî»_W¬8ZQQ]o'.._oÛæÝÐÞ[ô]×¼©‚$9’Úò'€®EMM‘ûÏÓãØlîÇUÁÁÇôôT âßt‡Ëåñxä\³·_wøpV½ýxxØ…„¸×M’h4ª±±¦••~½­¾ ÈŸºuuEáó'Ùlî»wåÕRR¢ßïÃÖÂ…‡¦Nxû¶¬nWÓ§;,Z4J$…âryïßW²qã©ÒRV[\—!$$„B¡lܸQPG©Ovv6A¹¹¹cÆŒQUUÕÖÖ;vì½{÷ )Љ‰‰Èrª««+…Byúôi‹#l¨9‹Åb0–––JJJvvv6làpê™u¾CCÃ)S¦7qè§OŸ¶rþ²õ=4ù@×¢¦&zH›Íýô©Vx ODZڣ͛SêýÑ’%.³gU %E2ÄäîÝ5ÁÁnññYÖÖ«—.MÀ3éê"I2..ÎÀÀ >>^PèææVPPPPP‘‘ADÁ?ÌÍÍ_½z5xð`]]Ýóçϧ¤¤88888¸ÞæÞÞÞGŽáç…gΜ¡Óé£G®·ùöíÛ·lÙš››»|ùò¥K—6þ©¶ ]Œ­íjÿ þèéôèñ?+«à#Bõõttþ§«0yrÄÂ…‡LL–=|ø¦‰ÝÖÖr¯ÀbÕDD\²´\id´tÅŠ£EEå­¾”‡ ˆøøøÆëdffJII•””$yûöm‚ îß¿/\Éd A¿yó† ˆŠŠ Á"_âA0™Ìùóç‘$ãìì,(¯­­¥Ñh<àW>zô¨±±1ÿ§.\ I²¶¶–_Sd\‚ .^¼H’$o“É,--%¢¸¸X䊮_¿®®®Îož““#•pµ¬¬,þk33³‚‚þë´´4+++áæ‚HX,–‚‚ÂÍ›7I’œ8q"ÿëmnjj%+::º)INS~_õÂü@—£®®ÀÁß´D¡PBBÆÝ¾½zÑ¢QI¡P¦N|àÀô­[½ìí}|v¿ySÚ”n¥¥iW ÓùsQ+Ç$'ß|ø°ñKk­ÌY@§x8 àÏ'Oþ^þHJºÛ£Ç¢Çß’$ùþ}¥HåW¯>XZ®ôöÞÍfsÅIYkóæ”>}ûô =]wôN‡øÜzÐ… h4ZQQ‘ äÖ­[AܹsGP"²ŽF’dvv¶‚‚ÂÒ¥KïÝ»w÷îÝÕ«WÛØØHKK å'óæÍëÛ·ïˆ#DÊ}||œœœž?~ÿþ}ssóàà`ò¿ëk„ÐúðB¡H’$?~üاOŸaÆ¥¤¤äææ=zÔÜÜ|È!ÕÕÕu—ÿç\¼xÑÍÍMOO¯¬¬ŒÿSÿ &ð]8pà‚ „› ¿æo711^ž«Ûü·ß~ÓÔÔ<~üxAAAJJJïÞ½›’ä|ö÷Õ`ô€NÃùO&Äåò†ÝðÓO1 Õ¿w陋ÑÒ%KZò5Óü}QÖÖ« ÿôSL^žèöšNä³ßÇ~~~£F.áñxFFFË–-”ÔÍŸH’¼s玓““²²²™™ÙÂ… +++---ƒò“›‹/.RþáÇɓ'«©©éèè,Z´¨ªªŠ¬/=b³ÙC‡UTTi.òº²²rñâÅt:ÝÜÜ|ݺuŸ>}ª¶ðd¾¾¾¯¯¯pÖX^^>mÚ4UUU55µÙ³g³X¬†ò'’$gÏž­¨¨XYYÙHs‡³yófccc{{{þ„V#¿A-ËŸ(dÆÐEÄÇß\²$þòåÀ^½4ê­pêÔ=?¿èÕ«ÇΜéØF1°ÙÜãÇïlÛvöÍ›R77kgccÍ6«íP(”øøxOOOIMÒâßö?1nœ­®®ê®]ª0fŒePИիŸ9ó b–¦yxØ]º¸e‹WvöËáÃ7Nº/'çU ÐÈŸ€–¦Í;">þf#·ÚÍŸï4i’ý‚1¾iÓH<<ì.^ ŒŒœQTTîêºmêÔ}wî¼h»ZùAx{TSSܳçb#uÖ®u·°Ð>ý@qqÛ:@¥RœÍSSââæ|øPùÝw¿º¹m¿r%·Mh:äO@!##åç7<66³¤¤²‘:L—–¦MºÅªi‡¨L““ÿwüøO**t/¯]nnÛÓÒbç.Hò'øÛäɃét™ˆˆKÔQUUHLœ_\\1uê¾ÚZNû6`@ïèè™IIþ**ôÜïì¼åðá,.—×>£Ô…ü þÆ?Ù2*êêÇŸ©¦­Ý-6vöÇoýýñxí7dg×+:zæ±c ´´”.<ôÝw¿&'g#‹‰@þÿš>ÝB¡ìߥñj¦¦Ú‘‘ÓÏœ¹¿bÅ‘ö L`À€Þ±±~©©jóæ:tCdä•OŸjÛ9 èâ?À¿””ä¦MºoßåÊÊÏlo4ÈhÏž©^ß¹ó|ûÄ&¬_?ý={¦Þ¾½z„þ›6¥ZY¯\y¬‰Ïéh=)IËìÙÃöí»|ð`ÆÜ¹#¯9j”ņ ãÕÕ•<=íÚ'ܬbkG¦§?úõ׳wï¾´³ëµ`ÓÈ‘_Õ}üm[kÿ¡•Zvþ8ò'õþ}å Aë–,qñóþÙÊ$I.Y’œ|71q~¿~úmÝgܼù<<üü¹sÌÌt¦Mêáa×”, Y?À ]§ IDAT@=Ö­KŽ‹»‘™¹RQQö³•¹\Þ¬YQYYyIIþ½{×ÿ½vöøqAdä•dzºu“Ÿ-xеuÏÚZîÖ­©ÆÆZ}úh·E„mGFFª_?}__{oïArrÒþyƒ¿;ªºšÝ»·†œœ´¤ Àü4•§ç®ÚZÎñã?µ¬ùòåGcb2öì™êâòµxkOl6÷ܹGqq7.\x,//ãæfíå5ÀÖÖPÒqA»Âü4U¯^ê[¶¤ÚØöê¥Þ‚æNN}kk9+WÓ×ïnn®+öðÚF51Ñrw·ññ±WR’;sæAxøùcÇî|üX¥««Ò¬S² óÂü4ÃŒž>}—ž¾´Å§bnÞœ²}û¹­['zzÚ‰76IÉÍ-LNÎ>räv~~‰©©¶‡GOÏJ’Ž Ú柠¬­ ~ý5­[7y›ž-ëaÈ\³&IWWÕ¢³ÎB SSS<ØøÇ‡ÚÙõúðs}Ïž‹½•““60PÃñQ_$äOРݺÑËË«öî½-îdÀ€ÞrrRkÖ$uï®`mý…¤P|ÒÒ433wwÛ©S‡èèt»}ûÅŽçöï¿òôiFÕ×G"õ%Àþ'h¶}û.‡„œ¸t)Ðа%Évî<¿~ýÉ÷éÓÄ[TUU{õ*399ûôé.—çèØç»ï,]\¾VR’“thÐBÈŸ ÙØlz»wOieW»w_ 9±víØ3Å[GVo"5zô×ÊÊH¤:¬ß@³ÑhT•-[RM[pœ¦°þý eW¯NRV–ûâOQ’–¦iººö›5k˜¥¥Á‹ïwï¾~þîÝ—,V®®*.#é¡I0ÿ-äÃáž8±°õ„û㌠ Äe˾õ÷)–Ø:‹ÒRVJÊýääìkטÒÒRß|Ó÷»ï,G¶À±æò'h¡[·òÜÜvìß?M,ç‰ó÷BuÌ…¼„„//¯6‚J•““3–“3‘‘Ñ}÷nWݦÃAsyxx$$$ÞJI0èÔú÷ïåîn³ví‰#úÊʶö eÞ¼oh4jpðñšμy߈%Bñþúl;55\YÙ—Avqaaa"%ÈŸ åV­rspØðûïç/vi}o~~Ãå䤗/?òæMiHÈ8*µµË‚âåáá!é@2>,R‚#( å44”þ÷¿Ñááç_¾|/–§N²cǤ˜˜ëþþ±O,}ˆò'h•3ôôT×®=!®ÝÝmöí›vútÎŒjj8âê@Œ?@«HKÓÖ¯útÎÅ‹‰«OggóØX¿ÌÌg¾¾{**°“:äOÐZ¦.._¯ZuœÍ披O{{£˜˜Ù¼™2%¢¼)t,ÈŸ@ V­r{ùò}TÔU1öig×ëØ±ùùïÇÛQTT.ÆžZ ùˆAÏžjóæ}³eKªx¾}{¤¦P©—­½cÏm'$$„B¡lܸQPG©Ovv6A¹¹¹cÆŒQUUÕÖÖ;vì½{÷ø­æÍ›§§§Çb±ý<{öLFF&66¶Å±Q(‘£]]])ÊÓ§O[Óm½ÍY,ƒÁ°´´TRR²³³Û°a‡Sφ6áÏÄÐÐpÊ”)ÅÅÅMúéÓ§­<¾µe= ñ˜7ï:]6,ìŒx»ÕÒR>vì'33ñãÃoÜx.ÞÎÅŽ$ɸ¸8ƒøøxA¡››[AAAAAAFFAÿ077õêÕàÁƒuuuÏŸ?Ÿ’’b``àààðèÑ#‚ Ö¯_Ïf³7mÚ$è'00ÐÞÞÞÇǧ5æçç R4‚ JKK/_¾ÜÜNž?®®þ™GGWTTôïß?+++44ôöíÛAAA±±±ÎÎÎ\n=‹¼¯_¿ŽŒŒ,//·±±)++kJ$***Ë–-knüb@ˆÉ‰wuuݺ•/öžkk9sçþѳ璓'³ÅÞùgñ“¡¦Ô¼wï…BIKK#âÉ“'"?e2™"ýøùù¹¹¹ñxiiÚŽ¾^^æÍ;˜˜xK¼‹Q\\ܰaÃFŽiff&<Õôôtáõ£-[¶ð_{{{2déÒ¥$Iøûû[XXðÄf³ †–––¦¦&ƒÁ`³ÙAœûË­;ÿ„ü ÄlÇŽs½z1òòD¿;Å%.î†ÁbŸÝÕm4„ˆ&æO™™™RRR%%%$IÞ¾}› ‘å6‘´ãÍ›7A²¥†f7V­ZEÄ¡C‡„ ÍÌÌ ø¯ÓÒÒ¬¬¬jjj?~\YYÉår/]ºÄOJø#æää†`2™óçÏ "I2&&ÆÙÙYP^[[K£ÑÒFý{y HLœŸ“óÚÍmûÛ·MÚeÜ>âââ8Žºº:…B±µµ%¢ñ%{öLWWWjã—_÷__ßµk× ßmÇb±BCC]\\êJ€$É]»v3¦¡+m¨¹··wbbâ‰'lmmMLLjnhh(|âÇ¿´z!ñ0 ·§§]pðÑòòª6ÂÐP=9y¡‘‘†»ûŽsçµÑ(MwåÊ•wïÞùúú*þÃÇLJÉdÖƒ¶~ýúƒ.[¶,''';;{Íš5LóŒ7.((èÅ‹999...ááá555µµµ222UUUü%¿ŠŠŠzÛÒh´ñãÇûùù 0@SSSP.--íåååï—÷àÁƒ+Vð§¾ÂߺÔàààwïÞ999¥¦¦2™ÌcÇŽ 8PWWwîܹu+¾yóæÒ¥Kîîîyyy‚Íàu¯´¡GUZZºjÕªéÓ§7òAÍ™3‡Á`$%%¦¦¦7r j|Á e>|¨´°XñóÏGÚt”ªªZ?¿(ƒÅqq7Ún”¦ìòóó5j”p Ç322Z¶l™ ¤Þ[åïܹãä䤬¬lff¶páÂÊÊJKKKá õ¶*//Ÿ6mšªªªššÚìÙ³Y,I’aaaÝ»w×××ß¹s§···¦¦fC \¼x‘ ˆððp‘ò>LžÕ½"á´D__ß××·¨¨¨‘+n.ÒÕìÙ³+++iÎáp6oÞlll¬  `ooÏŸÐ"Uwÿ…lx^ 5þø#cÅŠ#§OXXè¶Ý($InÛvvëÖ3³f9®\ù&þ¥•„„///|cvYžžžA$$$J°~meÒ${À€?9^ÛB¡PFÇÄÌŽ‹»9~|xIIc‹Jbü Ú •JÙ¾Ý'/¯ä·ßÒÚz¬#ÌRR}øPéâ²õþý×m=tqÈŸ  ¨1®Û·§=~\ÐÖcõꥑœ¼ÐØXkܸßOŸÎiëá +CþmkæLG++ƒ… cÅþP—ººu£<8kÜ8[?¿è-[R¹Ü6\7„® ù´-*•²uëD&³("âR; '-M õøå— ¿ÿžîã³çý{l‡ñCþmÎØXsáBçM›R˜Ì¢öqÒ$û´´%……‡½r%·}…®ù´‡ Föé£ÇãµÓ)&&Z§N-²·7òñÙ³ukj» ]ò'hRRÔmÛ¼sr^ýñGF» ª¨(»gÏÔU«Ü¶o?7mÚþ¶; ºäOÐN¾úªÇŒ7ž,,üØnƒR(”™3££gÞº•ïæ¶ýÉ“Âv¾`ÈŸ ý0®ššÊqí|–÷ðáfgÏ.VV–wu ‹ŠºÖ²N(ÐU>|Xô/N£€öôèÑ[W×°ŸþÎÏox;M’äþýWBBN h´c‡–V·&6|õêÿ)iÐeéééÙÛÛ Þ"€ööûïé[¶¤¦¤,êÛ·GûžýrÞ¼ƒÕaaÍÛ?ø €öÆã‘á>°RSËÊJµÕË–NJºëë;hÍš±òò2ítj´Õ«WK:èZ(н½Qxx:‹UãèØ§ý••úöÛ~**ô]».œ?ÿxÀ€^jjŠít^Ø?`` ¶j•ÛîÝ22žJ$ …2c†cJJG޽u×® 8 šëw 1S§îû믂sçJJr’ŠÇ#Ê\½úxÏžê;vø~õ•¶dA§ƒù'˜°°‰ÕÕì•+J0*•2i’ý¹sŒnÝäÇŒÙžŽ§ÃgaÿH .Ó£‡Ê¦M)ýúéiJ0ú¸q¶$I„…¹qãùàÁÆÊÊòŒ:8¬ß€„-Xsùò“´4†––²¤c!>|3~Ìë×–,q9ÓQJ 5PäO aŸ>Õºº†uï®pøðüޝp8¼¨¨«¡¡§54”BC=L%t8’ÿk ].³gÏÔ{÷^mÛvFÒ±AHIQgÎt¼r%ÈÜ\×Ëk—Ÿ_ôû÷•’ :ìÉSWWRQ¡oØpÒήWÏžj’‡ BQQ Õcb®<˜¡££bf¦#é  £Àútóæ¼v™–ÆÐÔT’t,ÿúøñÓúõ'Ê´³ëìfmm éˆ@ò?@GQ^^5jÔV##ƒgS©I‡óÏŸ‡†žNNÎvp0]»Ö½OmIG’„ýOÐQ(+ËïÞ=åêUæîÝ$‹¨Þ½5ö왚œ¼ðÓ§ÚQ£¶,]šPR‚MQ]ö?@¢­ÝMF†zÚѱO*’GT*^^45•Ì8pàJu5û«¯zÈÉIK:.hoX¿€Ž…Ç#½¼v¾}û155@‚Ïui‹U³gÏňˆË<oÆ ÇY³UU$´äOÐá}5jk¿~zÑѳ:ÚF(aUUµ±±™;wžÿðåéi·hÑ(7gmëwÐá(*Ê Ð{óæT«ÆÑ±¤Ãi´4ÍÆ¦ç¤IöŠŠ²qq7öî½TVöÉÌLGQ±ƒN›¸ €Ž¨G55ÅO›˜huð›Ýdd¤ììzM:TQQ.&&sûösLf‘ŽŽ 梾`X¿€ŽkÉ’ø¤¤»ÉÉ ;ËÙ•<yísß¾ËçÎ=êÝ[cêÔ!¾¾ƒäåe$ˆò'è¸jk9îî;ÊʪRR)+ËK:œfÈÎ~¹ÿ•'îvï®àã3ÈÝÝÖØXSÒAØ €­¨¨ÜÅek¿~ú‘‘3:ò^òz½{Wqð`FLÌõ¢¢vv½||}÷¥‚‚¬¤ã‚ÖBþ]VVÞ„ áþþ#/v‘t,-Áã‘·nå%&Þ:rä6—Ë=ÚbÒ$û¡CM(”N–‚ò'è"".­^ñã·ßö“t,MuéÒ¥uëÖ —p8Ree*eeª55²**uu_I*¶®ÌÑÑqåÊ•­ìDJ,¡´©™3³²ò–,‰·°Ð50P“t8MRTTtîÜ9áB .A””—Ë$¥[7UIÅÖe]¿~]UU ;柠s`±j~øá7’$’’ü;ì¹ä¼¼¼ð=Û¡xzz‘ÐÊ~ðü`èdšS^^5uê>6›+ép KCþ†––rl¬ß£Go–.míü@k €Î¤Oí;§$&Þ O—t,Ðu!€Næ›oúÿ°a餤»’Žº(ÜϬYÃòóK-úSO¯»­mOI‡]柠SZ»ÖÝÁÁtÆŒý¯_—J:1 ¡P(7n”ÄÅÅQê“MDnnî˜1cTUUµµµÇŽ{ïÞ=~«yóæééé±X,A?Ïž=“‘‘‰mMx,‹Á`XZZ*))ÙÙÙmذÃáÔ­&§¡¡á”)SŠ‹‹›8ÄÓ§O[y hë{h:äOÐ)ÑhÔððÉjjJ“&í-/¯–t8­B’d\\œA||¼ ÐÍÍ­      ##ƒ ˆ‚˜››¿zõjðàÁºººçÏŸOII100pppxôèAëׯg³Ù›6môhooïããÓâð***ú÷•zûöí   ØØXggg.·ž» 322 ^¿~Y^^nccSVVÖ”QTTT–-[Öâ Û Ðiåå››/Ÿ>^°âV—¶¶¶œœ“É´¶¶&‚$I‚ JKK»wï.\Í××wÍš5'N.ÌÏÏ×ÑѼíÖ­›ŒŒLnnî¬Y³*++ù ˜™™¡¢¢¢­­=räHáŸfggÛÚÚ ×¬“É422jhôz›Óét77·ÄÄį¾ú*99ùîÝ» 5¯­­µ²²”ôëׯ¡0ÄûŸà áîn³~ýø_~9s]Ò±4—Ë ¬ÁÄÇÇ“ ?u˜J¥:99íÝ»W¸°î®)þ^"‘ûùù3Fü”ÒÒÒÌÌ̪ª*OOOƒqçÎ;w W–––æ¿ðõõ]»v­ðÝv,+44ÔÅÅE¤¦’$wíÚ5f̘†Fo¨¹··wbbâ‰'lmmMLLjnhh(8¸ ˆ‡ÖF[@þ_Ž©S‡,[öm`àá':ÇÑäW®\y÷¯â?|||˜L&3PCÖ¯_ðàÁeË–åäädgg¯Y³&""¢¡$Fظqã‚‚‚^¼x‘““ãââ^SSS[[+##SUUÅ_ò«¨¨iüîÝ;''§ÔÔT&“yìØ±êêêÎ;·îÅÅÅ………oÞ¼¹té’»»{^^ž`3xÝÑŠsÔ¨Q¥¥¥«V­š>}z#ÁÏ™3‡Á`$%%¦¦¦ö›Ö/t(!!' §§?’lMÙÿäçç7jÔ(ágdd´lÙ2AI½·åß¹sÇÉÉIYYÙÌÌláÂ…•••–––ÂêmU^^>mÚ4UUU55µÙ³g³X,’$úwﮯ¯¿sçNoooMMͺm++RSå þIDAT+/^laaA§ÓÍÍÍ×­[÷éÓ§º£'úúú¾¾¾EEEŒ.Ü\¤«Ù³g+**VVV6ÒœÃálÞ¼ÙØØXAAÁÞÞž?¡Õø.®ýO²áB€ÎˆÇ#.*•²u«×äɃç̉>uêÞç4 Ï¿€.B¡¬]ë^SÙ7ïàÞ½´Ñ£|ÀÀgaþ º *•²i“‡·÷ÀÙ³£oI:èÄ0ÿ]…BÙ¸ÑC_¿»¿ì“'…Ë—×Ö#:;;·õÐt÷ïßwttl}?ÈŸ Ë™?߉N—]¹òè§O5!!ã¨TJ[Œ¢¯¯ïááÑ=C‹9::4¨õýàùwÐE>œµdI¼»»ÍæÍ^ÒÒ4I‡ ò'èºÎŸ{ö¬³³snn®©©)AòòòòòòATVV¡­­-¨¯¬¬\o¹ðôU ¬]»VCC#==Ÿ-™ššŽ=ÚÂÂ"22ræÌ™"•544øCëêê>|øðáÛ¶m[³fÍgGQWWoeœ’‚õ;€$..nذa#GŽ433‹oY'«Z åÀ}ûöÕÐÐØ¸qãÁƒ{õêÕ­[·•+Wò+°Ùlƒ¡¥¥¥©©É`0Øl6A111ÁÁÁÂSM #&&†ßyzzºÁÕ«WE†¦P(sæÌ9uêTC 7ŠŠâÇ9vìØ€€~“ššUUU~u›s¹ÜÍ›7›šš*)) 2äÆ-ûˆZ ù@GÁ_¼óöö&büøñ-ΟDœ;wîæÍ›7n :yòdNNÎæÍ›×­[÷þý{‚ ¶mÛ–——wëÖ­ôôôóçÏ—••ZYY‰ôceeõ×_ñ_oݺ5::ÚÚÚºîp&&&Ïž=ã¿®Ûy½Í½½½9¾͙3gètúèÑ£ëm¾}ûö-[¶„††æææ._¾|éÒ¥bùˆš€6ÆÏ„>[-33SJJª¤¤„$ÉÛ·oqÿþ}á L&³Þ~DÊ…ßqçÎ’$kkkE^3™L’$ÍÌÌ ø•ÓÒÒ¬¬¬JKK ‚(..åúõëêêêüÎsrrýóûÈÊÊRQQá¿®Û¹psAœ,KAAáæÍ›$INœ81((¨¡æ¦¦¦QQQ‚±¢££?ûÁzxxxxx4^§¹°ÿ  £ˆ‹‹ãp8êêê‚’øøx ‹Vv«¤¤D„´´´Èk¾üü|ÁÛnݺ©¨¨hkkggg9R¸Ÿììl[[[þk33³††c2™FFF u^os:îææ–˜˜øÕW_%''ß½{·¡æµµµÂcýúõûüõ·¬ßt\.7>>>,,¬âñññ$I¶é¸ü)%þ´Jiiiff&A¾¾¾k×®år¹‚j,+44ÔÅÅ…ÿV8F’ä®]»ÆŒÓHçõ6÷ööNLL XQilla Simple API Documentation SourceForge.net Logo

MessageListener Class Reference

A class used to listen for warnings or trace information. More...

#include <MessageListener.hpp>

List of all members.

Public Member Functions

virtual ~MessageListener ()
virtual void warning (const XMLCh *message, const LocationInfo *location)=0
 Called to report a warning message.
virtual void trace (const XMLCh *label, const Sequence &sequence, const LocationInfo *location, const DynamicContext *context)=0
 Called to report a trace message.

Detailed Description

A class used to listen for warnings or trace information.


Constructor & Destructor Documentation

virtual MessageListener::~MessageListener ( ) [inline, virtual]

Member Function Documentation

virtual void MessageListener::trace ( const XMLCh *  label,
const Sequence sequence,
const LocationInfo location,
const DynamicContext context 
) [pure virtual]

Called to report a trace message.

virtual void MessageListener::warning ( const XMLCh *  message,
const LocationInfo location 
) [pure virtual]

Called to report a warning message.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/inherit_graph_21.md50000644000151400015140000000004011653571063016350 00000000000000a2c2a8df1e85c6393432ba71ab5803c2XQilla-2.3.0/docs/simple-api/XMemory_8hpp__incl.png0000644000151400015140000001356211653571064017043 00000000000000‰PNG  IHDRuüØ¢¯bKGDÿÿÿ ½§“'IDATxœíy\ÇßÇ'"XŽr( È%b¼JµbM«P¤\Š "—­š*­¶VÑZQKr(Š ?‹?AAQ”Km x QÀ Ç>l_yÒè&›Äyÿµ|wç;Ÿ™ì‡™lvg ‚‚)D¼@ jô‚=ÐWö@_A ØCÆ[ÀÄÎ;¯]»†· Õ#66ö‹/¾À[ÅЀ¾Ruuu555öööx Q%JJJBBBðV1d ¯н½}\\Þ*T‰’’¼%¼ ðû‚=ÐWö@_A Ø}`ô‚=ÐWÊECCÃW_}%~¬¬¬lÞ¼y=P©T‰[¥7oÞL¥R›šš,UÜ(ÐWÊŸqãüýý:Äf³çÀVVVè--->ßÕÕUSSƒVHÿ@_)+V¬ÐÕÕ=zô(à÷ß700ðõõí6mšøhV^^>yòdÅ‹„ÈúJé “É4­°°033³°°F£‘Éÿÿóýœ9sJJJDSÁÒÒRñ{|ø|~rr²‡‡‡‡‡Grr2ŸÏP©ÔÂÂÂÀÀÀ%K–dee]ºtÉÏÏoáÂ…ÇŽCK±Ùì_~ùeñâÅ^^^III½½½MMMT*õîÝ»>>>¡¡¡{÷îEär¹®®® }eWVV._¾ÜÍÍ-33€f(++[±b…‡‡Ç¡C‡x<žÔ |zg ¯”[[[:`ii)¾kâĉ\. r8œ»wïΜ9S´÷ôéÓL&óèÑ£û÷ï¿{÷nZZ¿sçNRRRhhhJJÊ7RSS#""222X,ààÁƒmmmÉÉÉ{öì¹}ûvvv6ZêÔ©S4-88¸¬¬L ÊÊÊLLLlllúj®¨¨HIIÙ´iNGÓòóówïÞýóÏ?WTTdeeɪÐWÊ‚ OŸ>%‰Ïž=“ØE$gÏžNoܸáàà ££#Ú[XX¸~ýzccc++«°°°[·n¡q---À²eË´´´\]]]]]|>ÿÊ•+‘‘‘&&&VVVAAAEEEh©ÐÐÐ)S¦899‘ÉäÚÚZ@qq±‹‹ @è«­bÖ¬YhZ41zôè &¬^½Z”VjPÍ€¾RFŠ‹‹«««8PZZZVV&±W4”˜ZZZ<==©T*•JŽŽf2™h\KK €Î'Å·B¡ÐÔÔýÓÌ̬­­ Ý677‰Dggçk×®½yóæÎ;sçΕªÙÀÀ a¹Ñ£G‹R‰ÒJ ªð¾[¥ãõëׇ wtt Ü¿¿Ä äààðöíÛºººÊÊʨ¨(ñ²ººº033°Ùìööö«Ó××'‰L&sìØ±€ææfCCCt—È{sæÌÙµk—………ƒƒƒ‘‘‘Ô¥•T3p3…áííÝÖÖ¦¢Ï_Ñéô–––ØØØAßÔÔäïïõêÕƒ²¡R©'Ožôöö‚V%ŽWèííe2™………‹-Â[‹Ê}€?ÿü3,,lþüùCº±C[[ÛÍÍm0Aµ^„ À¤I“Î;7ÔRzzz7nLP-ã‚=ÐWö@_A Ø}`ô‚=ÐWöÀëì ¥¦¦&::ZQµ„B2‘ˆñƒƒ…DRχ1úJq̘1C‘Õ54èwuQ¦Li#0»UÍÖ¨­5´³kÿøãn¬rÊÆÊÊj̘1Š© CàýjˆPˆDEåäçßMOqv¶Å03‚ ±±y'NÜ ÓƒæÍƒ/pèøýJÝ@dÓ¦SgÏÞMK ÆÖT°k×R_ßé«W§]¾ü'¶ÉÕ è+u#..ÿÔ©[IIsæØÉ#?@ؽûw÷)!!ieeò¨B €¾R+öî-LK»ž˜¸bþ|ùÕB$~ûÍïë¯'¤TT<’_Eª ô•úpð`QBBѾ}>nnr_QD"&$,wv¶ L©®–\Ü}¥&$&^Þ»·0>ÞÛÇç3ÅÔH¡RRV:9Yúú&×Õ½PL¥ªô•:À`”ýüó…;–øù)ôR>…BJI rp0[¶ìh}}‹"«Vr ¯Tž'nlÝz&&ÆuõêÙ5šš”ôôc/¯#//@9¿_©6yywÖ­ËŒŒœ»yóe°Xݾ¾I/_²òòÖš›«çÒeCúJ…9w®êÛoO„‡S·nÅå ‹ëåu¤½söläèÑúxËÁè+U¥¨èþêÕiË—Ïøé'O©kb*ž×¯Ùžž‰<ž /oíÈ‘:P_ ¯T’Ë—ÿ\µ*ÕÇç³={¼”ÄT(mm]žž‡)Rnî·¬·Ü€¾R=ÊËýý_°À1!a9‘¨D¦Ba2;=<1ìôéoõô´ð–ƒðz ŠQQñ( åë¯'<¸L M01Ñ;sæ[‹ëïÿ;›Ýƒ·|€ã•*Q]ýÌ×7iútk:=ˆB!á-G·-]zx̃ìì0míaxËQ4p¼Rêê^øú&;9Y*¿©––FYYá½ :ÖÓÃÇ[Ž¢ã•jP_ßâé™8~ü¨'B55)xË,4óMâ¤IcŽ_­¡ñ=D Ç+àá×^^GllŒÓÓCTÈT€O>1=q"ôÎ'ááé<žo9ŠŽWÊγg¯—.=ll¬““¡££‰·œw¡²ò±ŸßQ*ÕîÈ‘2ùƒøWþA4Ruiiyãë›l`0"''\EMøôSË´´UEE÷££s„Ââÿ8ô•òÒÚÊòôLÔÐ ge…éè Ç[Î{1k–-ƒ±:?¿*:úä‡0E‚¾RR::8Ë–%“H„ÜÜ5#ð–ƒ_|1>99àÌ™ÊmÛ~;«ª}¥Œtv¾õöNâpzsr"ŒŒ>Â[f¸º:$&®8~üúŽxk‘/Ð¥OUÍîñ÷ÿýõkv^ÞZSS½ ¨‹MzûÖwãÆlá6¸ \@5¾R.8œžeËŽ65uäå­µ°0Ä[Ž\ðöv …QQ')ÒÚµ_á-G.@_)==üU«Ž=|øòôéo--ð–#G|}§s8=?üp–D"FDPñ–ƒ=ÐWÊBo/?((µ®îEnîš Lð–#w‚ƒgóùÂ<§­=, àð–ƒ1ÐWJŸ/ŒˆH¯¬|œ“aoo†·6§««{Ë–ÓÚÚžžŸâ-K ¯ð‡Ï®Y“~íZ}vvØÔ©cñ–£P¢£]{{ùß}—M"—,™Š·Ì€¾Â¡‰ŽÎ)*ºŸžòé§–xËÁ-[ Âõë³´´4\\&â-àïWx‚ HLÌ©üü*y¼£@…ˆuóó›Â(.~€·l€¾Â“¸¸üÜÜ[ÉÉòzGª€¾KÁËË)4”¡ïR€¾Â; ŒëGޏºÊñª@سÇËÕÕ! åæÍ‡xËy_ ¯ðá·ß.¥¤”îÛç»hÑ$¼µ( $ñàÁeÎζôª*Õ~—ô•|yòäUy¹äÄ&1ñr|üÅøxooo'\T)-軦O·òóK®­}.¾ A¬¬›x 2DžlØcnU\ü@9vìMM7Ðé¥8ªRr¸Ü^/¯Ä‰cÿú‹‰F„B!–kbò]IÉ_øj$p¼’#­­¬Ó§oóx‚•+éÿýï=@FFyllÞ¶mîÁÁ8¼£@UÐÔ¤?¾zܸ‘^^‰ ­B!²aCNFF9‘HHH(Æ[Ý €ÏáË‘;ÏÑé×x<@ À²e3²²n®[7oÓ¦ùxKSººº}}“˜Ì7vv&×®ý-zÐøüùï¦MSö_Ï¡¯ä‹Å2%ŽËå¡A3fXŸ9³F©V~Vf˜ÌÎ/¿ÜËfw ÿœ¥ ÉÅebJÊJ\u œÊ‹'nˆ¯@„ €@@**¦¥]ÇQ• ÑÝÍÛ°!›Ãé™ Àã kŸ_(D€ È?œMI)ÅK˜ªÀáôøú&•—?”èC‰D\__ÿ=“tttp¹ÜAÜÙÉÍȸ}òäînþ„ #32Þ³vLè‡ùêåË—¨É›¸À`ÔÖÔ¼\ºtüÌ™£•ó%¥˜cdddooÿžIîß¿ßÖÖ6¤",VÏþÓXTôxóæÏíì ÞSÀû#ÑRÖ·˜3gŽâä¨|¾ÅÒ£Ó•sÆ/îß¿Uªwð§»ûׯ^±ëê^àþ´uß~€ëÆ`™LtwŸŒ·Š CÃTª2.að¡üg…@ ô‚=ÐWö@_A Ø}`ÊûêÙ³gAAAÖØØˆÞF$Ú/^UUE&“sssEñ‚‚ ºº:yh–€ †……E@@€ìsñ÷÷1b°/G%ê°Øå@?辟»Ä •÷ï1•÷U~~þ’%K¤îzôè‘¡á?¯fÓÓÓÛ¼ysŧL™²eË–uëÖuvvÞ¼y³fÍš¸¸8­˜Y^^Îd2_¼x‘––Æb±¦NŠ*‘Jsssff&üüû#–M'€œPy_]ºtÉÅEúë4…BáëׯÑmCCÃ_~ùEFñØØXCCC´ëi4š‰‰É¦M›ä¦Z##£Q£F™™™Q©Ô³gÏZYY8p ¿ƒÑ[~ÌÍÍ&OiÿˆeÓß '†ì«sçΙ™™¡·fggÛÚÚr8Ç‹‰‰9r¤±±qLL ÇCÜË—/›››—””ÄÅÅ™››ˆþ÷-8þ¼£££¦¦¦••UFF€ÏçK-þêÕ+mmíáÇ‹î¢í3fFúýEÅ ãØ±c»wïNKKc0 ¥?‘6­/!<<üÂ… ýåo× s^ºtÉÆÆF__÷îÝ¢Þ(((?~¼±±ñºuëzzz¤{Z(„¾-ï @okkûÑGÍœ9³¢¢B¼¬Ä ™™immmddñö­”G%zlȈ/&ØÚÚzõêÕ×  lii9rdEEܳg§§ç³gÏjkk§NJ£ÑóçÏ¿råÊöíÛíííkkkëêê¦OŸÝ_)6›=lذääd&“™ššJ&“Ùlv||¼ÔâÇŽËÈÈ@­ ж ŠŠ‹ Ñh€]»v‰åÚ4ôþ̆†ñoß¾­§§'»vto9Å,Z´ˆÅb9sðêÕ+4ƒ‹‹K}}ýÍ›7mll¶oß.5(ûL¸wïÞ½{÷d3“GjKÅ»â×_566ÎËËknn¾pá‚©©)Ú±Ÿ;ºñå—_ŠšI£Ñ$êêÛcCÕÿ.¾êèè=z´£££x¿ÛÙÙ1™ÿ¬NZTT4yòd´µµµ‚Œ?>//ÝûàÁÑvßRííí eß¾}B¡°««K ôWÜÓÓ³½½yW_‰Š£…ÂÅ‹“H$ñöʵiÈ@¾ê¯v4Ò_Nq%%%‚´.qý‚œ|xîܹQQQ¢ ¡¡¡¨úŽŽŽ›7ÿY¢ý–bjjúäÉ4R]]ýÓO?õWŠËå …ÂÜÜÜöööàà`77·ööv©Å/^¼èêê*.ŒÏçšššÓ ‰âÍÍÍëÖ­‹Ÿ={v\\\XX˜ø5ù5­¯0A’’’.\(»v”Aæ”ze=Ãõõõ謩¿ 20`K-,,jjjDʾ×^¼™cÇJY=÷=„BáªU«"##³³³‹‹‹ÏŸ?Æ—.]úý÷ß?}ú´¶¶ÖÕÕ511Q¼ÔŠ+¶nÝŠÚzíÚµOŸ>í¯@pqq9sæ ‹Åêíí¥P(ZZZR‹,^¼Í£§§HOOg±X âU³Ùl© /Ž HXX˜££cpp0 **jäÈ‘‘‘‘ hzp[[[KKKSSSii©‡‡ÇãÇ7nÜ8˜ÚûËI§Óß¼y#û£\¿~}ccãíÛ··lÙâïï/#¨ Èè=ô#‰‰)((hii¹xñâ¶mÛdd‹ŠŠ5såÊ•`p=6įÁÌ:4iÒ$t töìYô+ ‹Å Ò××700 åp8âctwwwtt´©©©®®®ŸŸ_GGï[ A“'OZ[[khhØÙÙH-ÞÛÛ»`Áqa»víÒÓÓ³¶¶.((@ëåñx³fÍ1bÒg QœÁ` 6ìï¿ÿEnݺE$OŸ>-ï¦!ÿ^a̘1Ë—/Ÿ`Ë®]FNÑ(×wÍ@§ÓÇŽkhhÉår¥eŸ žöm©øGÌçóãããmll´µµ?ÿüst`ïo˜““caaallÕÓÓƒ ÔcCÕ/åyaø\£ÚÓØØ8nÜ8äß––” :×ÂäyaLòàE_ý*ÿ»0¢„@_}ˆèèè„…… &y7 ¯>DŒ“““„¼ÐWö@_A Ø}`ô‚=ÐWöHY—³¹¹Yñ: ªHww·ÄmÁï“JuO¼¾ý ÅWèýàÈ`ÀÊW]]]]]]˜¤Â‰~€ïé@°~¿‚@°ú Áè+{ ¯ ìù?Fn,èÎÁêTIEND®B`‚XQilla-2.3.0/docs/simple-api/ATGMonthDayOrDerived_8hpp__dep__incl.md50000644000151400015140000000004011653571063022200 00000000000000a351a474759c7f04c0deb4ee90515977XQilla-2.3.0/docs/simple-api/classxercesc_1_1MemoryManager.html0000644000151400015140000002577511653571065021340 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

xercesc::MemoryManager Class Reference

Configurable memory manager. More...

#include <MemoryManager.hpp>

Inheritance diagram for xercesc::MemoryManager:

List of all members.

Public Member Functions

virtual MemoryManagergetExceptionMemoryManager ()=0
 This method is called to obtain the memory manager that should be used to allocate memory used in exceptions.
Destructor
virtual ~MemoryManager ()
 Default destructor.
The pure virtual methods in this interface.
virtual void * allocate (XMLSize_t size)=0
 This method allocates requested memory.
virtual void deallocate (void *p)=0
 This method deallocates memory.

Protected Member Functions

Constructor
 MemoryManager ()
 Protected default constructor.

Detailed Description

Configurable memory manager.

This interface allows outside applications to plug in their own memory manager to be used by Xerces for memory allocation/deallocation.


Constructor & Destructor Documentation

virtual xercesc::MemoryManager::~MemoryManager ( ) [inline, virtual]

Default destructor.

xercesc::MemoryManager::MemoryManager ( ) [inline, protected]

Protected default constructor.


Member Function Documentation

virtual void* xercesc::MemoryManager::allocate ( XMLSize_t  size) [pure virtual]

This method allocates requested memory.

Parameters:
sizeThe requested memory size
Returns:
A pointer to the allocated memory

Referenced by XQillaAllocator< _Tp >::allocate(), and AutoDeallocate< TYPE >::AutoDeallocate().

virtual void xercesc::MemoryManager::deallocate ( void *  p) [pure virtual]

This method deallocates memory.

Parameters:
pThe pointer to the allocated memory to be deleted

Implemented in XPath2MemoryManager.

Referenced by XQillaAllocator< _Tp >::deallocate(), AutoDeallocate< TYPE >::set(), and AutoDeallocate< TYPE >::~AutoDeallocate().

virtual MemoryManager* xercesc::MemoryManager::getExceptionMemoryManager ( ) [pure virtual]

This method is called to obtain the memory manager that should be used to allocate memory used in exceptions.

If the same memory manager can be used, simply return 'this' from this function. Note, however, that if there is a possibility that an exception thrown can outlive the memory manager (for example, because the memory manager object is allocated on the stack or is managed by a stack-bound object), it is recommended that you return XMLPlatformUtils::fgMemoryManager.

Returns:
A pointer to the memory manager

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classEventGenerator__inherit__graph.png0000644000151400015140000001303011653571064022505 00000000000000‰PNG  IHDRµÃKJÇ"bKGDÿÿÿ ½§“ÍIDATxœí{XSçýÀ¿! ‰"D*—Q±­usŠX-Ojm·ŸZËŪ«–­Bu^J TŸZaÕ=«Ré£ë¬Žñ¨Ïƒ­€"X:fA›Ä6@RprI)"AÄBh0·óûãu§!$/¨1‰õûyøãœ7ßó}¿ç=Î5Ã0€ VpqtˆSƒ~ 4ЄúÐàÙ*Quuõ®]»l• ¹,XðÞ{ïÙ$•Íü¸qãFEEE||¼­"÷ÆÅ‹½½½m•Íf~ l›¹[l˜ Ï?èBý@h  ô¡ao?8&xxxDGG×××Sâ†ùÍo~#ìV¡EºººV­Z,fÏž}êÔ)‡”ÑÚÚÊápìÙ£ö.\P*•J¥R&“………­X±‚ò ¹««ëرcMMMö¬ÐŒÞÞÞ§Ÿ~zܸqùùùµµµ¯¼òÊÊ•+Ïœ9sÿ™ …¯¯ïýçypØøþÇX˜4i’¿¿?øûûïÙ³ÇÏϯ§§G$Y Öh4dׇ“‘‘ó·¿ýÌNŸ>½»»ûÃ?\¼xñ}f6½½½÷]àÄÁç|>ßÕÕÕËË‹Ìêtº´´4???‘H”––¦ÓéæÎ Ä'‹d—{öìÙ   sçÎ ‡sìØ±ÇÜÇÇgÏž= ×ë322‚‚‚&Mš´fÍš[·nYË'OžÜ²e‹iÙ¹¹¹dúÖ­[¯½öš¯¯o```jjêÐÐéQÀtzd£®Á`ÈÊÊ ?~|ttô¥K—Ìv°c#òóóÇ’ êëë®_¿¾aÆÄÄDöÕÝ»wÇÆÆvttÈd²Y³fmݺµ¥¥Å4­µ€_|±²²R­V ÆÅÅ©TªœœèííÍÊÊŠŒŒ”Édr¹|Μ9©©©Öò«T*èëë³¶F«W¯–H$mmm2™lÆŒ™™™¦5›N,cÔµËÎΉDEEE]]]_|ñE@@À¨ƒ?ê†#ðÃ@ÐÔÔľ¡T*ÉtyyùÌ™3ÍFÐZ€L&³@:­ªªbF«Õ@KKËÏ~ö³¢¢"ÖÔÔÄN\¼¯¯T*•ÅÕÑjµ\.÷›o¾!³EEE¡¡¡?ÌÊuíÂÃÃ9Â=zô§ïGKK ™|ûí·çÎ˾êîînj———ÙZ ÐjµÖH§W¯^5-ÀÝÝ].—,Ïââ~~~çÏŸ7 «­­ýÅ/~188xíÚ5Ðh4¤]&“¹»»›ÖÜÜÜlê‡Y£®‡‡G}}=PWWgg?yþ1nܸ×^{­±±‘ùß~Å××—µG¥RÕÔÔ˜-b-€ÏçÓ\\†­i@@@{{;™®¯¯ÿãÿHY|éÒ¥{÷îeLv~yyy:nܸq~~~\.W¡Pö¶¶6±XL¦õz=\¿~Ý´_³2F]»ààà††6 ±±‘²øÁV¢ÝÃþƒa˜ï¾ûúûûÉìæÍ›ãââÚÛÛæÌ™³qãF³ÿ°{0ë”Lgdd<ùä“r¹\.—GGG¯[·Ž²øÍ›7…BáêÕ«ÏŸ?ßÐЙ™ ¥¥¥d‘U«VI$…B!—Ë###wìØÑÓÓ¹¹¹ßÿýòåËÁdÿaV)~``ÀZïûöí‰DÅÅÅJ¥²¬¬lÚ´i£òOçøÂ0ŒÁ`˜0a·ß~Kfûûû½½½…BaRRÒàà Ù濇ÆÒ†JMM ðòòZ¹r%{zaqq†aÚÛÛãââÆÿË_þòôéÓl}}}¯¾úªP(œAh  ô¡~ 4ЄúÐ@?èBýÆ¥K G—à\Øøýc‹-²mB;£P„^suÕ:º{G.—/X°ÀVÙlæÇ”)Sößj4<ÆC«õ÷ópt-÷΂ ÈÛÒl‚Íž¿üÈÊ*ûè£/§N^¼¸Ýѵ8 xþñ#……—à»ïz¯\ért-Îúq‡ººŽÎNðùÜ“'¿vt9Îúq‡âb)ÇÎPXxÙhÄÃ.úA0Œ'N\Öë d¶§g ¶/tÐÂÅ‹­*Õì,ŸÏ=uJêÀzœô ¨HÊãý8:¡¤DªÓX’“€~€V«?}º^¯7š6ö÷ßþ׿šU’ó€~@eåæ¶Y#Ç)*«ô ¨èë‘KÑëÿ{Ã?<Ä7Úm£î‡Z}ûË/ ãÈ—t:CE…Ý?äd<ê~”—7jµzk¯âUÌ£îGq±UŒF¦ªêJ¿Æžõ8úó¹ÎN•éÁ%*j×Î/?÷Üt¶ÅßßËÍÍߢã$<ºkN 4ÿ*êI“ÆO*tH1NÈ£~|Aè  ô¡~ 4ЄúÐ@?èBý@h  ô¡~ 4ЄúÐ@?èBý@h  ô¡~ 4ЄúÐ@?èBý@h  ô¡~ 4ЄúÐ@?èBÃßSQQ¡P<4_W]QQÑÝ]ëè*ÆDRRÒïƒyð>>¶Íi4ûûûÙÙ¼¼¼'žxâ­·Þâp8688øé§Ÿn۶ͶýŽZÉCÁCpþ±}ûöiN·dÉ’ššÐëõ\¾|ùòåË<¨×ë &&¦¢¢bíÚµK—.=~ü8lذ^~ùe’A*•ÆÆÆ9ëׯOHH ÓcÌi1òúõë111R©tÅŠr¹üâÅ‹ëÖ­{á…bcc?ýôÓ‘•¨Õê>ø`Ù²eñññŸ|ò‰V«5Ëð v,8—CCCšá€D"©®®f._¾ìææ6{öl8qâ„R©tèÐÀÀq«¨¨t:]WWWpp0‰$]¸ºº–1æ¤DlݺU,ïØ±#,,,//oýúõ999·nÝ2­öíÛ×ÓÓsðàÁÝ»w_¾|ù³Ï>3Íö`Çzl8—¯¿þú¯†óæÍëïï¿zõ*œ={ö…^àr¹PVV¶eË‘H4mÚ´äääÚÚ;]_zé%@°xñb0ÛŸ÷÷÷3 ãîîNfÍ:º«œÖ"“’’ž~úé &äæænÞ¼Y(ŠD"4­D¯×WVVnÚ´iòäÉÓ¦MKLL,//7ÍÀéXœëü#//O,›5º¹¹EGGWWW_¸p!''‡´wwwÇÆÆ²ažžždÂ××x< «æãããêêÚÙÙIþ;ÉÅÑÀÀÀÒ¥Kï6§µÈ   ÙÙÙùá‡j4‹{•Je4Ùý–X,îéé1Íà$8—ÖH$þóŸCCCÃÃÃI£——×G}D|R«Õ}}}¤ÝôÜ ‡3kÖ¬ÒÒÒ””¶Ñôzì9­E‡nß¾™™™™™¥ÓéÊÊÊÌ÷öövqqQ*•亩««‹(VÌvÎu|¹uëVßpHûìÙ³Õjõ‘#GØ<óÌ39997nÜP(éééÅÅÅ”ÌäT^ýõ/¿üòСC …¢µµõèÑ£¥¥¥ì&{Nz¤N§Óëõ<O«Õ’S“~øÁ´³ÿ~¥Rùí·ßæææ>÷Üsw;\vÀ¹üظqcìpH;Ç[¸paooïÂ… ÙàßýîwãÆ[·n]JJJHHHrr²ÅœþþþO<ñ›*$$dÿþýÍÍÍ›6mÚ¹sçÀÀÀþýûÙ›cÌ9j¤@ X¿~ý®]»Ö¬Yãïï/‘HÒÓÓÍ*Ù²e‹¯¯ïo¼‘––6{öìÕ«Wßë°=@ìñû„ ===øþ BÞd‡mç\ûÄÙ@?èBý@h  ô¡~ 4Ðaô÷k]‚sa§[ý]]]¥¥¥öéë~8wÎ8gŽ Ÿïè:Fƒ<Ͷvø çÃòù[7ÿM;º±b‡mgûë ÇŽ]LK+ˆŽ+,ÜàèZœ<ÿø‘“'¿àÔÔ´ööª]‹³€~Ü¡»ûûK— §¤¤ÎÑå8 èÇJJê¸\LAÁeG—ã, w(,¼l00À0Œ\ÞÙÑÑë芜ô@¡èijêbOÕ¹\<ÄÜý8uJÊãqÙYƒ),ÄC úA(,¼¬×ØY†aZ[o^¹¢t`INúÏ6xß×ÑU8’øøxS%,|ÿXAAýËBœììl³ ~<,?†ØœÂÂB³<ÿ@h  ô¡~ 4Єƽû±sçN‡óÁ˜6ªÕêÔÔÔÇ{ÌÃÃ#,,,##chhŽ?αD}}=‡Ã!×Ül’ÖÖV‡3Æ2èÁ;½§Õ…æææ_ÿú×ÞÞÞþþþ/½ôRCCÃèÅþÜ£ Ã?~<((Èì–Ú¦M›¤RéÉ“';::rssKJJÒÒÒ`Ù²eJ¥R©T^¸p”ÿ#22Nœ8ñànÍ]¸pA9œûÏ©P(|}¼víÚµyóæ‰ÅâÊÊʲ²²   gžy¦©©éþ;ºÛJlÏÈû§cùÙ톆‡S^^W¯^eÛ'NœXSSÃÎVWW™.ØÒÒbÖ$''ûøø(•Jk1èÁÐÒÒ2ÆTcǬÓäääeË–F¶eíÚµkÖ¬±y¿£VrŸÄÇÇ›Ý?½G?¶mÛöì³Ï2 ñþûï³íAAAkÖ¬ùïÿkmA‹~üç?ÿ™7oÞ’%KțƨTªµk× …B±XüöÛok4½^¿gÏž°°0@0oÞ¼¼¼<¬ÕjSSSE"ѤI“RSSµZ-cÝeË–¥¤¤é¡¡¡‰'–––R’äååEDDx{{ïÞ½›a¡P~~~$ChhèÙ³gMó÷ôôÔ×דé1æ´I†¢¢¢bÊ”)ÿþ÷¿?ÿüó™3gzxxøûûÿéOYÉÈá2Ë@߬¶ñÃh4>öØc‡bæÝwߌŒd_:sæŒX,vss[´hQVVV{{»Ù²ýhiiinnöðð8|ø°YÌêÕ«%I[[›L&›1cFfffvv¶H$***êêêúâ‹/HðîÝ»ccc;::d2Ù¬Y³¶nÝJ’××× ‡ùßÁ‘èXRR Óé(IâââT*UNNôööšV844äââÒÝÝMfÍ:{N‹‘¤£_|±²²R©Tºººþö·¿íìì$ÿ7oÞ4Ï‘ÃešA­VÓ·¬mü¨©©áñxd'ñõ×_€\.g_Õëõ555ï¿ÿþŒ3¸\î±cÇL—µæÃ0ûöí›0aBGG£Õj¹\î7ß|C"‹ŠŠBCCÃÃÃ9Â.~ôèQÁ¡ÊËËgΜÉXùé†a===kkk†yå•W¶mÛF´–¤ªªŠÔCª5]‹ëׯkÃÈc÷sZŒ$Éd2†anß¾}åʵZm0ª««GVbq¸L3ŒŠmüxóÍ7ÍF|ûöí èÕêÏ>ûL¯×“0£ÑøÞ{ï‰ÅbÓe)~ †… >ÿüóÍÍÍ$æÚµk ÑhH¤L&sww÷ðð`wÝ ÃÔÕÕ‘`wwwÓ’¼¼¼êùǪU«ÒÓÓÕjµ§§gss3i´–„=ǹU ƒ»»»T*5MÞ××ÇŒ1§ÅHÒ9$1 SRR2þü™3g&&&ެÄâp™e 3Ò»¾~1 ùùùÙÙÙì^ô­·ÞÊÏÏg].—“H‡³xñb½^?ÆÌ...‡>þü_ÿúWÒâççÇår ™mkk‹ÅÁÁÁ¦WdÂ××—UA¥RÕÔÔл[¹rå‰'NŸ>ýóŸÿ<,,ŒžÄÅÅê@¹¸¸H$¶f‚é娨sZ‹äóù ÑhÒÒÒ¤RéFVbq¸L3Ü ¦²ŒeÿQUUÅåroܸÁ¶|õÕW@þÖ®]^ZZÚÖÖvþüù¹sç¾ù曦‹Sö„O>ù„Ü¢`…“H$ …B.—GFFîØ±cß¾}"‘¨¸¸X©T–••M›6oÞ¼9..®½½½¡¡aΜ97n$ÉG^ß’Ì·oßööö 3=ZYKÂV&ÿµì1¥¾¾ÞÓÓ3==½¡¡¡®®.33sÖ¬Y|>ÿ®rZŒ4;Uçp8eeeƒƒƒééédÌÍ*9\wucƒãKrròóÏ?oÚb4CBBÞyç†aôz}ffæ“O>éááüÎ;ï°»;¨~ÆE‹±1}}}¯¾úªP(œöD~ÚFEE±³|Ú‚PÀó„úÐ@?èBãÿÞ×)jð•—IEND®B`‚XQilla-2.3.0/docs/simple-api/ATDurationOrDerived_8hpp_source.html0000644000151400015140000004337111653571063021655 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATDurationOrDerived.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _ATDURATIONORDERIVED_HPP
00021 #define _ATDURATIONORDERIVED_HPP
00022 
00023 #include <xercesc/util/XercesDefs.hpp>
00024 
00025 #include <xqilla/items/AnyAtomicType.hpp>
00026 #include <xqilla/framework/XQillaExport.hpp>
00027 #include <xqilla/items/ATDecimalOrDerived.hpp>
00028 
00029 class XPath2MemoryManager;
00030 class DynamicContext;
00031 
00032 class XQILLA_API ATDurationOrDerived : public AnyAtomicType
00033 {
00034 public:
00035   typedef RefCountPointer<const ATDurationOrDerived> Ptr;
00036 
00037   /* Get the name of the primitive type (basic type) of this type 
00038    * (ie "decimal" for xs:decimal) */
00039   virtual const XMLCh* getPrimitiveTypeName() const = 0;
00040 
00041   /* Get the namespace URI for this type */
00042   virtual const XMLCh* getTypeURI() const = 0;
00043 
00044   /* Get the name of this type  (ie "integer" for xs:integer) */
00045   virtual const XMLCh* getTypeName() const = 0;
00046 
00047   /* returns the XMLCh* (canonical) representation of this type */
00048   virtual const XMLCh* asString(const DynamicContext* context) const = 0;
00049 
00050   /* returns true if this duration is an instance of a xdt:dayTimeDuration */
00051   virtual bool isDayTimeDuration() const = 0;
00052 
00053   /* returns true if this duration is an instance of a xdt:yearMonthDuration */
00054   virtual bool isYearMonthDuration() const = 0;
00055 
00056   /* returns true if the two objects have the same duration
00057    * false otherwise */
00058   virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0;
00059 
00062   virtual int compare(const ATDurationOrDerived::Ptr &other, const DynamicContext *context) const = 0;
00063   
00066   virtual ATDurationOrDerived::Ptr divide(const Numeric::Ptr &divisor, const DynamicContext* context) const = 0;
00067   
00070   virtual ATDecimalOrDerived::Ptr divide(const ATDurationOrDerived::Ptr &divisor, const DynamicContext* context) const = 0;
00071 
00074   virtual ATDurationOrDerived::Ptr multiply(const Numeric::Ptr &divisor, const DynamicContext* context) const = 0;
00075   
00078   virtual ATDurationOrDerived::Ptr add(const ATDurationOrDerived::Ptr &other, const DynamicContext* context) const = 0;
00079   
00082   virtual ATDurationOrDerived::Ptr subtract(const ATDurationOrDerived::Ptr &other, const DynamicContext* context) const = 0;
00083 
00085   virtual ATDecimalOrDerived::Ptr getYears(const DynamicContext* context) const = 0;
00086 
00088   virtual ATDecimalOrDerived::Ptr getMonths(const DynamicContext* context) const = 0;
00089 
00091   virtual ATDecimalOrDerived::Ptr getDays(const DynamicContext* context) const = 0;
00092 
00094   virtual ATDecimalOrDerived::Ptr getHours(const DynamicContext* context) const = 0;
00095 
00097   virtual ATDecimalOrDerived::Ptr getMinutes(const DynamicContext* context) const = 0;
00098 
00100   virtual ATDecimalOrDerived::Ptr getSeconds(const DynamicContext* context) const = 0;
00101 
00102   /* return this duration in forms of seconds */
00103   virtual ATDecimalOrDerived::Ptr asSeconds(const DynamicContext* context) const = 0;
00104 
00105   /* return this duration in forms of months */
00106   virtual ATDecimalOrDerived::Ptr asMonths(const DynamicContext* context) const = 0;
00107 
00109   virtual bool isNegative() const = 0;
00110 
00111   virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0;
00112   
00113   static const XMLCh fgDT_DAYTIMEDURATION[];
00114   static const XMLCh pattern_DT_DAYTIMEDURATION[];
00115  
00116   static const XMLCh fgDT_YEARMONTHDURATION[];
00117   static const XMLCh pattern_DT_YEARMONTHDURATION[];
00118 };
00119 
00120 #endif //  _ATDURATIONORDERIVED_HPP
00121 
00122 
XQilla-2.3.0/docs/simple-api/FastXDMConfiguration_8hpp__dep__incl.map0000644000151400015140000000023111653571064022406 00000000000000 XQilla-2.3.0/docs/simple-api/classScope__inherit__graph.png0000644000151400015140000000742111653571064020635 00000000000000‰PNG  IHDRuüýõ†bKGDÿÿÿ ½§“ÆIDATxœí{PWÇOH ¦%.áV.‚@±ØV;øcìèØ" ZnE¬ñE‚P” ŽR † FA®­N+J¡¤ÂWR*~(õ¹56a’’œïmó¥á"b$lºÏ_›söl~gŸÝ³'Øà „cÅ£§í‹ó„0Oèó„ª/´•c6©©©¾¾¾Èò?<566nذÁÞÞ^©0þAee%ƒÁP¾$¨U'$$ìÚµky#ȧS}‰]ŸÐæ `žÐæ `žÐ®yêîî&•••Ê’ºº:Àáp®®®j·ž·lÙ‚ÃáîÝ»·ÜYŸ ¨€ËåB”süøq*•* !„666H€@ tww+WFFF€þþ~íÄ5ºv>RSSÍÍÍ“““)))ÖÖÖGUÖÒétÕ³­¾¾^ù™E³€ÃÙÔÕÕÙØØáåË—]]]§¦¦ „R©”ÉdZZZZXX0™L©TÚßßhll´··onn>qℽ½½¹¹ydd$r¤ÏÙ BX__ÿÚk¯‰D''§²²2áÌÌ̜͑·˜½ !üùçŸ ™3gˆD"ÇSí`qq±‹‹‹B¡@J¶mÛV\\ þ>ŸæŒ„´rww777ÏÌÌ,++stt|ùå—SSS‘…¨¨( …bkk›˜˜(‹U»ÿÆoìÝ»YsrrÒÐа««ëYϧg÷>øàƒ¨¨¨±±1++«ŽŽ¤ðìÙ³;wîìééyóÍ7SRR [¶lijjJKKóôôìééáñxÞÞÞL&s¾VSSSD"‘ÍfŽŽ„©©©sçÎÍÙ|bb¢¨¨hö2BJJ @9â);Ø××G¥R‘¡obbÂÈÈèÑ£GJO³#!­BCCE"‡ÃìÚµK$=z! §Ñh÷ïßïééY³fMZZšj÷¯_¿N¡Pfff „žžžÊ£äz …vvv^^^iiiÊBww÷ÑÑQdùæÍ›¯¿þ:´§§BèææV]]ÔþöÛoÊåÙ­¾¾þùóç…B¡B¡˜œœ”Ëåó5_…BˆÇã#""Ô:ØßßóñÇC+**”åsFBj‘3@*•ª-÷÷÷K¥R<ÿ믿"­ª««]\\T»/“ɨTêwß}!ܺukVVÖSóÃç÷!Ÿ_XXH"‘Äbñ|Íç¼>)ŠmÛ¶ùúúÊår¡T*õòò UÛˇöðððóóS+ŸiN7jËaaa4m``€Çãyzzž8qBÍ“L&³´´´²²*))Yœ¦çótáÂ…µk×"§sMMµµ52÷‰DÑÑѦ¦¦ eÿþý?V *‘H˜L¦‰‰Ihh¨rÂ6»„Ëå®ZµÊÀÀÀÝݽ®®næsÎ÷JKK‰DâÝ»w•™oݺ¥§§WUU¥ºg[ZZùùùj{|ÎHOõ$"##)еµuBB‚r¾§ºëÏ»‘“ó­ƒå§ŸRµE“èÚõ©²²ðßÿþyçΈ¶³hòÔÝ=øð¡ ¯¿ví¶¶ãhòT[ÛE à33òÊÊN…Bw†tÝñ$—+ªª:e29ò’ÏŸ¼uKw&èºãé§Ÿî …ÓÊ—úúøšš.-æÑ,ºã©ºº‹@øÿîÌÌÈëêºffäZŒ¤AtÄ“T*«¯ÿ™L¡Z(=imý_mEÒ,:â©©éŽXüD­@ÀUWëȬOG>^^^®üÜ‘‘‘¨¨¨ääd:îçç§\ÓÈÈÈËË+..ÎÚÚ Z¥d9?®hÆS^^Þøøø©S§,,,óòò&''ãââ4²ñ%àããsíÚ5Àèèhll,² ÐÓÓ‹ŽŽ¾råJtt4RRXXøê«¯Òh4ä%‹Å²¶¶† …B‡óÉ'Ÿ°X,ÕªeïÊ_hfÜkkkc0®®®d29 ÛÛÛ5²å¥A$ÍÌÌÌÌÌÈd2ÀìoÈdrllì—_~9>>èíímkkûè£p8ÒL&›™™Q(&“ÙÛÛ;==­Z¥ÊröH3žŒŒŒjkkE"òÒËË ¹á$—ËKJJvïÞ½}ûöÌÌÌ©©)d…©©©¬¬¬ÀÀÀ‹/J¥Òááa??¿öööÈÈÈ    .ÌÌÌd2›Í b³Ù2ÙÏÙ›˜˜xòDý¡£óáïï¿fÍ6› !ÌÏÏß±c‡““Óœk"È”Ëû$àgŠñ¬hÆSRRRWWWpppRR—ËEŽV@UUUkkkfffNNÎÐÐPEERž››ËçóÙlöÙ³g;;;•?XZ[[›™™yæÌ™ŽŽŽË—/#[-((ÈÎÎîêê*))Q}ß¾¾¾¬¬¬èèhåðTp8\BBB{{;‹Åúã?öìÙ£Z+‘HÄbñôôôÈÈÈgŸ}æææöÒK/©V©¢¶åû÷ï¿ÿþû£££‹ßu‹D3×§õë×s¹Ü»wïvvv~óÍ7………ÇŽ£Ñh_ý5ƒÁpvv$''d2YSSSqq12ÜGGG w‹:dggØ·o‡Ã‰ŠŠºqãFNNŽ™™™¥¥åØl6ƒÁJ¥---555r¹ü½÷Þ‹744\|Z;;»°°°K—.¥¦¦©VíÛ·ï¯ýB xzz?~|v•µyĺuë8NCCC||¼««kPPкuë”#ês¢O‰äÇÜ´i“‡‡‡‡‡Gdddii)›Í¦ÑhãããÈ~888888„B¡B¡°±±AÊmmmù|>²¬\ù•W^A ÇÆÆvîÜ©|/ccãÛ·ogddx{{ÇÇÇ»¹¹-mGÐéôK—.ùûû«•WTTØÚÚÎÙd*% eÏž=mmmeee¹¹¹ÙÙÙ–––KH¨†Æ=aFFÆÀÀ_?’€ÃáÞzë-dX§P(cccHù½{÷qÏÔÔTOOO98ŒŒŒ˜››#Ë>D†††( ÀÄĤ¢¢¢¹¹¹¹¹¹¡¡áóÏ?'“ÉŽŽŽ½½½<oñÈ]Mìj…ÂðùüÕ«W‰šù†Eç“¡¡áæÍ›ÓÓÓcbbÁÅ‹‘™îæÍ›9•Jäææ:::‚ŸŸ_^^“É”H$ÅÅÅʯÈX,Vbbâää$‡Ã lܸ±¨¨èСC?>þ¼»»{\\\NNÎï¿ÿ^SSéãã¸zõêçïÈÂLLL¨®jS>áíÛ·ëêêúúú¶nÝÊb±CM#hæútôèÑòòò¢¢¢ááaSSS???äú.‘H’’’$Ɇ 8€¬Ïb±<¨¯¯ïïrt:=11Q"‘ Ÿ”~ø!‹Åb08îí·ßVnÁÉÉéÈ‘#û÷ï¿qãFzzú§Ÿ~jee¥‘¾ÌGll¬Z‰Úõé‡~àr¹;vì8yò$ áº>å9¾W¯^ݽ{÷2|ðŽˆˆXÚA ×xªgB&“-MOzzº……ÅÕ«WXGîïáp8­KhüRe¥x266~÷Ýwµbå²R<‘Éä#GŽh;ÅÊe¥xÂXÌ:À<¡Ì:À<¡ƒEMù¿úê«ãßÌÈȈ……ÅÂë,ÊSvv¶&ò`ÌËÚµk^A~ÿéßv}B˜'t€yB˜'tðD¶,ìÜ€)IEND®B`‚XQilla-2.3.0/docs/simple-api/classxercesc_1_1XMLFormatter__inherit__graph.png0000644000151400015140000001001511653571064024116 00000000000000‰PNG  IHDR¨uU‰=bKGDÿÿÿ ½§“ÂIDATxœíkPW€ßhP#_‹0:¢X…z­µU0ƒ2XÛ¹H‘[• xÇ‘ Š–ÔêxAd¼  v@i¥š5 2*j!a¬~ÈM”‹hBb"Y²ßíä[¹J*ÄñìóëäÝóî¾ç<îÙd³Žã@F†.€Â0Pâ…(”xDaè‘ó믿–––~ðR(ôÃÙÙyïÞ½ÃÍÒG¼X,~üøñâÅ‹õÈ¥ø°”••™››ë‘¨xX¼xqNNŽ~¹µk×ê—H]ã…(”xD¡Ä# %QÐÿðáCƒ‘››«‹\¾|™ÉdŠÅb Ñh½¾ÁZ¹r%F{úôéh×: +~îܹ»wŒ”ÉdÐÙÙ¹y󿏏8GGG¢Ccccuuµ®¿T*ý”n[¡+öìÙcaa±sçNˆ‰‰±±±‰ŽŽÖm]¾|9y=¸r劋‹‹ªFJü•+Wlmm¥R)dggOŸ>]©T€F£áñxVVV–––<O£Ñ<}ú”F£ …ÂI“&•””ÄÅÅMš4i„ AAAĹØo999™ššÚÛÛgff†aý¦‡èÛf2™çÏŸOOO?xð`FFÆùóçuCðññÉÉÉÑ­öyyyÞÞÞº­ý–D£ÑÒÓÓgΜ9a„C‡effN™2…Ífën©Êd²üÑÂÂÂÎÎ.**J­V“‡?oÞ¼¢§B¡`±X>9€Ÿ!»·µµYYYÝ¿Ÿ>|ØËËëÙ³g"‘hÞ¼y111µµµ°råÊââb>Ÿ?kÖ,‘H$‹-Z5P–B¡011INNnmmMKKc0 …">>¾ßt™L–ššÚ·Mû÷ï'àñãÇÖÖÖ>$²X,Ö«W¯ ¶¶¶ß’ˆ,???¹\~îÜ9X»v­\.OII€W¯^á8îïïïêêZWW'‰fÏžÍçóÉÿví‡ÃÑh48ŽgeeÍš5K«Õ~}AñR©ÔÎÎÎÉɉÏçë‚3fÌhmm%Ú7nܘ3g1r‘H„ãøçŸžŸŸOl}ôè‘®Ý7K"‘=zT*•jµÚ®®®žžžÒA«Õ®^½šN§ã„à-[¶ìÚµ Çñ¬¬¬+Vèâý–Dl­¬¬Äq¼»»»W»¶¶¶»»›N§×ÔÔYùùùÓ¦M#Ã0kkk¡Pˆãø·ß~{èС!ëÿÅã8¾oß>:ÞÞÞ®‹˜šš’×6›MŒ¼»»›Ø*‹ûî§oŽã·oßööö633[ºtéµk×I„ÌÌL6›}ëÖ-SSÓÂÂB]œPURR2mÚ4­Vëáá‘’’‚“Ä÷[’nk¿íææfP©TDP$™šš’‡ãøæÍ›·lÙÒÑÑÁd2›››‡¬_oñ#øæ®¹¹ùÔ©SË—/ß±c‡.haa¡›©TzïÞ="N\\'NœØØØHDªªª80P–J¥Òjµ¹¹¹‰$$$äûï¿—H$¥DKKKddd||¼³³s\\\XXØëׯÉ–,YÒÕÕuûöí7nxxx7 4A°²²¢ÓéõõõÄ˺º:[[[òðÀÇǧ   ''gÉ’%vvvCîSoFJ¼V«Ý°aCDDDvvöÍ›7‹ŠŠˆ¸§§ç®]»šššD"‘»»{RR9+00066¶¦¦¦¦¦fëÖ­MMMeÑh477·K—.Éåòîînccc‹5Pzgg'qÑ%·q srr"ÞOíØ±ÃÊÊ*""‚\N÷òò ûòË/---É›H¿ûúúFFF644ÔÔÔìÙ³Çßß¿WŸ¥K—b¶oß¾ÀÀÀ÷›i}Ñc•xŸååäÉ“_|ñ±‚ØØØH$ÇårùúõëÍÍÍ9Nhh¨R©$Ö:"K­VGEEMœ8‘ÍfûùùI¥R"Þ7 Çñ?þøcêÔ©L&sÆŒ—/_$|]ûüùó&&&Ož<ÑÕüàÁ##£¼¼<œ´P—””@RRÑGï·$t©Çq\"‘r8›íÛ·«T*rmáááŸ}ö™\.ÿP.ú…†ÿñjâ;`êûø"66¶±±ñÂ… ïÓYoz>ˆA1¨Õê–––ôôôììì‘>Òwî>6îß¿¿`Á‚ 6,[¶l¤Eñ...‰dtŽEñˆB‰GJ<¢Pâ…(èŠþ\úâ…ÔÐU =?Ε––®X±âÖ2ʼze¯ ]È¿B,;;;둨ø¯¾úJ¬úzFspè1t!ÿ gggýtès¯þàï¿[\]ã@(Œž9ÓÆÐåD¯ñW®T1F ½¨¨ÊеÅã8ž}ôÖ“}Í5Eñåå/_ʉv{»¼¢¢Ñ åÅVÓ‰¶±1½ `ÄaþˆAN<†ióó+4šÞÌk4=ùùå¦5lU£râoßþog§šéìTß¹Sk¨z râ *ŒwFÍ`Ðòó+ U¡@K¼Z­ùóÏj {ç¦ †iÿü³Z­Öª*ƒ€–ø›7©ÕX߸Z­ ~=-ñ—.•Óé´¾q:véZ«=B⻺ÔÅÅ÷ûôBá#…âíèWe(/ˆuŸâú¢Ñô¢Ñ¬Ç° ô%Tª”ËÿÿA.66ðÔEÆ35773@e†¡Ç«ÍÍÍÈ^Í̘0y2Çp„–z 2”xD¡Ä# %Q(ñˆB‰GJ<¢Pâ…(”xD¡Ä# %Q(ñˆB‰GJ<¢Pâ…(”xD¡Ä# %Q(ñˆB‰GJ<¢Pâ…(”xD¡Ä# %Q(ñˆB‰GJ<¢Pâå_Ä8{ö¬Kers_€­¡ =BCCuíwÄÓhýü"Ô§ ΀žžNC2z]÷þ)”¸¸¸Qøû–£LIIÉ/¿üBŽP×xD¡Ä# %Q(ñˆB‰GJ<¢|jâkkk]]]KJJt‘;wî¬X±¢¾¾¸\n@@@¯_qݹs'—Ë}ñâÑháöLjd„ùÔ~ÒÔÁÁ! àäÉ“ ,3fŒR©LLL ¶··':´µµÕÕÕM›6xÙÕÕU]]=änO:ec3—°µµ5<<üòå˽ÚœO팀ÀÀ@6›’’gÏžåp8?üðƒnëüùóÉëÁÝ»wçÌ™3ä>ÇÿŸw´Z­\.ïÛþà OüÝ»w½½½»ºº@(ªÕjÀ0,99yÍš5kÖ¬INNÆ0ìÅ‹\.·²²Ò××·ªª*##Ã×××ÃÃãàÁƒ …‚Ø[ß,â!!!nnnëÖ­»~ý:ôôôô›N¢o›Á`ÄÄÄ‚ .‚˜˜ãÿ Û²eËJJJt«ý­[·\\\ô›;…BqèСիWûøøœ9s¦»»›Ý××÷ܹsAAAS¦L!aöìÙ*•ª®®”Jeeeå7ß|3äÀÕjµŠDOO?~¼££#99ùðáÃýõWvv6yÔPQQqæÌ™ÐÐÐÔÔÔ²²²´´´M›6effÊåò7oÞüüóÏYYY›6mJMM•Éd§OŸ€üü| ·‡œdâpïϰ—úˆˆˆÊÊʨ¨¨Õ«WϘ1ƒ ‚mÛ¶YZZÚÛÛ‡……=xð€ˆ‡††Î;W(nذÁÞÞ~Ê”);wîœ5kÖ@YÇq•JÅd2ÝÝÝ‹ŠŠLLL®^½Úoº™™ÙªU«ú¶Çñ¦¦&##£gÏžõ°‘‘³³3±Ú—••9::Ž7nÈQÿôÓOß’xðà†aÅÅÅ666öööëׯ¿qãyÔÄ)áëëËb±ÜÜÜ`ݺu,ËÝݺºº˜LfZZZdd$‡Ã±´´¥R9H ƒO2q¸÷gØoîÆŒóÝwßýöÛo º`[[›———Ù?? ?iÒ$hoo·³³#"“'Ož}úºuë-Z4Pú ܼy³ªª*11‘Ç㹸¸ô:§—-[òþë|VV–­í;_àvtthµÚ‰'/mmm;::È£&`±X@\kÈm¢ñüùó£GªTª÷9_Ÿäá2lñ/_¾,((˜?þéÓ§wïÞMÙlvbb"15 …B"‘ü³w8N[[±ä>}úôÞ½{ýf½}ûV«Õòù| ÄBáîÝ» Jˆ×¯_ŸPFãñx¥¥¥J¥R£Ñ0 “Ò•JåÕ«W{µqOHH°··'Vþµkך››Ÿ8qâ19;;;vlæÌ™ãÇï5F™L&!1ÐT0 .—{âĉÖÖÖ†††´´´åË—k25 †a £»»›¸`¿y󆨤R©tÝtíÁ'y¸ O|aa¡L&óóó;vìöíÛ;F¼Ã a±X7nܾ}ûÔ©SÃÂÂÈYþþþ .äñxVVVº­}³˜Læ®]»RRR¼½½sssãââ˜Læ@é2™ìèÑ£½Úׯ_///ŠŠ"*a0<¯¸¸¸´´”\—Ëmjjêwߺu«‰AfcÛ¶mááá<oáÂ…þþþÚÌ1cÆlÚ´iÿþýAAAÖÖÖ®®®ÑÑÑÖÖÖŽŽŽÄqÉí!'y¸ô~‡zã“„xƒìú¼Cñ>Pâ…(”xD¡Ä# %Q(ñˆB‰G”Þ·y+**t_xS|2 XQilla Simple API Documentation SourceForge.net Logo

A lazily evaluated query result. More...

#include <ResultImpl.hpp>

Inheritance diagram for ResultImpl:

List of all members.

Public Member Functions

virtual ~ResultImpl ()
ResultgetResultPointer ()
void setResultPointer (Result *p)
virtual Item::Ptr next (DynamicContext *context)
 Get the next item from the iterator. Returns null if the is no next value.
virtual Item::Ptr nextOrTail (Result &tail, DynamicContext *context)
 Gets the next item, or returns a tail call Result which will give the next item.
virtual Sequence toSequence (DynamicContext *context)
 Cast operator to a Sequence.
virtual void toResultBuffer (unsigned int readCount, ResultBuffer &buffer)
 Returns a result buffer of the result.
virtual void skip (unsigned count, DynamicContext *context)
 Skip ahead.

Protected Member Functions

 ResultImpl (const LocationInfo *o)

Protected Attributes

ResultresultPointer_

Detailed Description

A lazily evaluated query result.


Constructor & Destructor Documentation

virtual ResultImpl::~ResultImpl ( ) [inline, virtual]
ResultImpl::ResultImpl ( const LocationInfo o) [protected]

Member Function Documentation

Result* ResultImpl::getResultPointer ( ) [inline]
virtual Item::Ptr ResultImpl::next ( DynamicContext context) [virtual]

Get the next item from the iterator. Returns null if the is no next value.

virtual Item::Ptr ResultImpl::nextOrTail ( Result tail,
DynamicContext context 
) [virtual]

Gets the next item, or returns a tail call Result which will give the next item.

void ResultImpl::setResultPointer ( Result p) [inline]
virtual void ResultImpl::skip ( unsigned  count,
DynamicContext context 
) [virtual]

Skip ahead.

virtual void ResultImpl::toResultBuffer ( unsigned int  readCount,
ResultBuffer &  buffer 
) [virtual]

Returns a result buffer of the result.

virtual Sequence ResultImpl::toSequence ( DynamicContext context) [virtual]

Cast operator to a Sequence.


Member Data Documentation


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/VarHashEntry_8hpp.html0000644000151400015140000000614511653571064017034 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

VarHashEntry.hpp File Reference

#include <xqilla/framework/XQillaExport.hpp>
#include <xercesc/util/XMemory.hpp>
Include dependency graph for VarHashEntry.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  VarHashEntry< TYPE >
 The class that stores the values of the variables. More...
XQilla-2.3.0/docs/simple-api/classInteractiveDebugger-members.html0000644000151400015140000002342311653571063022114 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

InteractiveDebugger Member List

This is the complete list of members for InteractiveDebugger, including all inherited members.
BaseInteractiveDebugger()BaseInteractiveDebugger [private]
breakForError(const char *message)BaseInteractiveDebugger [private]
breaks_BaseInteractiveDebugger [private]
checkBreak(bool entering)BaseInteractiveDebugger [private]
commands_BaseInteractiveDebugger [private]
debugQuery(const XQQuery *query, DynamicContext *context)InteractiveDebugger [static]
disableBreakPoint(unsigned int number)BaseInteractiveDebugger [private]
enableBreakPoint(unsigned int number)BaseInteractiveDebugger [private]
end(const StackFrame *stack, const DynamicContext *context)DebugListener [inline, private, virtual]
findCommand(std::string &command) const BaseInteractiveDebugger [private]
interrupted()BaseInteractiveDebugger [private]
listBreakPoints() const BaseInteractiveDebugger [private]
next_BaseInteractiveDebugger [private]
outputLocation(const LocationInfo *info, unsigned int context=0)InteractiveDebugger [static]
BaseInteractiveDebugger::outputLocation(const XMLCh *file, unsigned int line, unsigned int column, unsigned int context=0)BaseInteractiveDebugger [private, static]
outputLocationFromString(const XMLCh *query, unsigned int line, unsigned int column, unsigned int context=0)BaseInteractiveDebugger [private, static]
prevcmd_BaseInteractiveDebugger [private]
queryStarted() const BaseInteractiveDebugger [inline, private]
queryStarted_BaseInteractiveDebugger [private]
readCommand()BaseInteractiveDebugger [private]
regexFind(const char *regex, const std::string &str, int groupNo=1)BaseInteractiveDebugger [private, static]
setBreakPoint(const std::string &file, unsigned int line, unsigned int column, bool temporary)BaseInteractiveDebugger [private]
setNext()BaseInteractiveDebugger [private]
setStep()BaseInteractiveDebugger [private]
start(const StackFrame *stack, const DynamicContext *context)DebugListener [inline, private, virtual]
step_BaseInteractiveDebugger [private]
~BaseInteractiveDebugger()BaseInteractiveDebugger [private, virtual]
~DebugListener()DebugListener [inline, private, virtual]
XQilla-2.3.0/docs/simple-api/ATDateOrDerived_8hpp__incl.map0000644000151400015140000000044211653571064020333 00000000000000 XQilla-2.3.0/docs/simple-api/LocationInfo_8hpp_source.html0000644000151400015140000001776411653571063020432 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

LocationInfo.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _LOCATIONINFO_HPP
00021 #define _LOCATIONINFO_HPP
00022 
00023 
00024 #include <xqilla/framework/XQillaExport.hpp>
00025 
00026 #include <xercesc/util/XercesDefs.hpp>
00027 
00029 class XQILLA_API LocationInfo
00030 {
00031 public:
00033   LocationInfo()
00034     : file_(0), line_(0), column_(0) {}
00036   LocationInfo(const XMLCh *file, unsigned int line, unsigned int column)
00037     : file_(file), line_(line), column_(column) {}
00038 
00040   const XMLCh *getFile() const { return file_; }
00042   unsigned int getLine() const { return line_; }
00044   unsigned int getColumn() const { return column_; }
00045 
00047   void setLocationInfo(const XMLCh *file, unsigned int line, unsigned int column)
00048   {
00049     file_ = file;
00050     line_ = line;
00051     column_ = column;
00052   }
00054   void setLocationInfo(const LocationInfo *o)
00055   {
00056     if(o != 0) {
00057       file_ = o->file_;
00058       line_ = o->line_;
00059       column_ = o->column_;
00060     }
00061   }
00062 
00063 private:
00064   const XMLCh *file_;
00065   unsigned int line_, column_;
00066 };
00067 
00068 #endif
XQilla-2.3.0/docs/simple-api/ATGMonthOrDerived_8hpp__dep__incl.md50000644000151400015140000000004011653571063021542 0000000000000054616f5e2c6de71ea573c2654e6ee989XQilla-2.3.0/docs/simple-api/LocationInfo_8hpp__incl.png0000644000151400015140000001566211653571064020032 00000000000000‰PNG  IHDR¸u³©c:bKGDÿÿÿ ½§“gIDATxœíÝy\GûðI8 9äRÀ< "¯•O=  U‘b‹Hª¯ÚŠú*VxT…* JQñDП€Z¨ñ,"¨Tñø ‚ZE+ š@8¹ö÷Ƕi$›M²‘<߿°;óÌîì“Ù%(†!ÒQÉ4$J%ȉäÐ%;@Ž)S¦‚VÈËË#; ø«·v¢P(Ÿ|ò‰••Ùt[õõõ>„ë«{€¥öòóósss#;Šn«°°ð§Ÿ~";  ðŒä€D r@¢9 Q€(@H”@*ww÷ššU^SSãîîÞÕ½d‡„aXttôôéÓ•R"(úÔÕÕùøøà¯étz@@€rëûöí¥K—Ž=ªÜj€D ÔG(²Ùlüµ‰‰ÉâÅ‹•[GGB>E”%èš–––ØØX??¿}ûöq¹\@ššêïï?kÖ¬˜˜˜––|Ë7n|ÿý÷Ó¦MóõõÍÈÈ@-[¶ !ôõ×_£wo½%ëD¹»»_ºtiþüù_~ùå‰'$#‘Ü@¼~iÕvrçÎÀÀ@ooïôôtQTüñÇ·ß~ûÕW_íÞ½›Çã*ù°Í‰tMbbbCCÃþýû·mÛvûöíãÇgee]½z5&&&!!¡ºº:-- !ÔÖÖ¶iÓ&‡´´´¥K—:t¨±±qïÞ½¡S§NÉ­//**JJJ >pà@ss³d06èT¿´jÅݼyóСC #99Y4ÛÍÎÎŽ‰‰ÙºuëÍ›7ñ/­h H”  ø|þåË—W¬XѧOŸAƒ-X° //ïìÙ³ .4hÐÀ׬YãèèˆÒ××?|øpHHˆ¹¹9~/ÜÚÚªxø¯fÍšE§Ó¿øâ „(‹‰“±ŒjÅùûûN˜0!$ÊÅK—.µ³³>|øwß}'Ú‹°h ø®7è‹% mllðmmmBvvvxIÿþýû÷ïÒÕÕ}ùòe||<‡Ãqppx:BxUÒö•±ŒjÅ™››#„(Šx¡¨;ýúõíEX´Ì(A˜™™Q©Ôºº:üÇÚÚZ ssóW¯^á%•••ø­wGGGddä7ß|sðàÁ~ø¡«uâ¯;å/I26Q­Ü^¾|‰¿¨®®Æ3©´B % QY™btuuÝÝÝwíÚUWWWUUuøðaOOÏ©S§&''WUUUUU%&&¾~ý!Äãñø|¾®®.—ËMMMEµµµáur8ñ&ëüðÈ¥U{öìYiDöìÙSSSóèÑ£äädÑ„…@KÀ­7eùòåâ?¬\¹rÏž=K–,ÑÓÓûüóÏ)J{{{xxx{{ûøñッƒBt:}éÒ¥QQQsçÎõðð`0YYY#FŒðõõ=wîœxµ’u*%xÂjããã]\\ŒŒŒdìèééÚÞÞîááˆßhw*TJ„àc ÷j) …ëQvRSSTPP ·P.|=J¸¾º¸õ9 Qð/###oooE VD À¿LMMW¯^­H!Ð*(@H” $J%ȉä€D rÀ7s´…B4h™™™ÚZäóiººíjkŽôX,Ö³gÏàúêà»ÞZÊÏÏOmmaª­íùêUO‡FKË6µµ+®¡ÁðÉÓþý›mlšå­I¤4cÆŒQSK@Å`F T«²²~åÊôjÃç-Y⮣CÎÓ@¸A\ÜGG›ÄÄ@{{ø¿:  à%P¡KJÊŸ2%ŽÏ^¼ú¿ÿy•%B::ÔÿýÏãÂ…Õ|¾pÊ”¸¤¤|¡¦@Q0£*ñüù›Œ{÷^0ÓƒƒÝuu5å-™Ç^ºôó°°i=zhî_ ;:øññöí»tz²#ê‚ææö-[N§§Ïœ92&fv¯^²þKÐN(Á‡ºxñ>ƒñ‹ŽuçÎoÜ܆‘Î{*,|´zõ @¸}ûœ/¾p"; Y Q‚÷×ÔÔÆ`dææ–¹nØàmll@vD„ÍæDE妥ݘ={ìÖ­³?®y1P)H”à==Y½úx[76ÖoæÌ‘d‡£4¹¹¥ëÖeê'$Ìýì3{²Ã%è²¶6nddvzzñ_8mß>Ç‚NvDJÖÐмfMæÅ‹÷ÇGFÎ24Ô';"@2H” knÝz¶reFc#gûv?oo²ÃQ¡ÜÜR#ÓÌÌðçŸÆDv8€L(¢x<Áöíç(?Þ>!á[[õ­FF°P[7‰RKݸñô‡2Z[;ºÙ"išàÌ™{k×fÒé´„„W×Ád‡”¥Öárù[¶ä¦¤\뮋¤i‚7oZŒ_.^¼¿páĽõõáó7H”ÚåÞ½ê•+3êëÙÛ¶uóEÒ4¾P›µµñ®]sû’xð mÁã ¢£Ïx{ÿleeœ—YR ¼½].] ³²2ž9óçèè3<ž€ìˆÀ{‚¥Vxø°vÅŠô/ÞjÛ"iš_¨í§Ÿr¬ç:8X“è2˜Qvs0))ßË+ÁÄÄ ?_ëIÓÿ,ÔN£éMŸ”” µ}t`FÙUU5¬\y¼¬¬IÓ¢…ÚœûîÚ5wÀ ²#Š‚e÷„aXròUOÏx.—‹¤iÑBm<¸ää«0MùXÀŒ²ª«k\½úÄõë•°Hšf-ÔöÙg;vø÷é µi:H”ÝMZÚ¨¨ÓÖÖ&‰‰s]\`‘4Í…/ÔV_ß¼aƒ7,Ô¦á QvLfëÚµ™çÏ—/Y⋤}D µÍ˜áë׫—Ùb(?&lv»±1ðW.”3¿ôìi˜‹¤}\ð…ÚZZÚ·oŸ3mÚÂmdœz ðôê£Áåòýü’ŠŠ*:•75µ]´(ÕÇgô¥Ka%?:cÇÌÏ÷ñ½hQjpðѦ¦¶N\»Váç—ÄåòI  ˜Q~D6l8•’rÍÚÚøêÕu={þ=¹(*ªXµê„PˆíÜùÍäÉCÉ| ÂÂG¡¡'©TJBBÀ„ x!›Ý>iRL}={Ñ¢‰[¶|Mn„Z f”‡ß~+IM-B1™­ëÖe!„ÚÚ¸ Æ/þþûÝ݇¬,Ù ¸¹ +(Xãî>Ì߃ñK[!´n]‹ÕŠJI)ÊÎ.!;F-3ÊÀ_½õðØÎápñsE¡P~üÑ;+ëvmmctô×¾¾cÉ(YVÖ NÙÚšúúþ'::¿H)d` ŸŸÏèßßœìµ$JMÇã fÌØùøñk>ÿï%¨TJz£FõÛ½;>‚×]ÕÕ5._žVZZÝÑÁýq==ê!½Ï[­§§CnxÚn½5]tô™Ç_‰²$BH(Äx<¡¡>dÉn¬OSCÃ<ž@”%B<žðñãW[·ž!10í‰R£]¼xÿС+|~ç5ø|A~þÃ_½CJT@ ²²î\¾ü§ø$ŽÏ*,|ÔÖÆÕÓÓáó…¢±qüxð¤IðZ•{'Qr8‹Eb4!ÔØÈ™3'•Él¥PB”{¹º7®ÿèÑ} ôÈŽNÝ ÌÌÌ>°‹Åáp”‰8^IIõ­[ݸQUUÅÄ瘽zýòËSSøŸìJffff`ðïQ}'QÖ××?|øŒ¨Àß0 Û±ãÖÓ§#GZ:9Y:9Y™šö ;(2YZZ:::~`%ùÄÊÊJô#ÁJ\nnnê ¼‹ÍnOLt<ØJþ¦ZàÁƒʪJ) W£Ìšõ÷‹§Oë--am!%*,,ìTKjccŒxÐ%ð¶ªðñ %ȉä€D r@¢9T˜(+++ñÏvI¾áÅ‹ ,À0,((ˆN§«.¼$£/xîÞ½«««›™™)*ÏÉÉÑ××///Çlmme0#GޤÓéãÆ‹‰‰áóù轎…ˆ²z*…B©¬¬T[sZEr7“6H„*%> 0oÞ<ÙŸfíêU¯Î§ÂDijjºfÍš®î•=kÖ¬ÚÚÚôôôôÓïxFµ~ýúÆÆF„PSSÓ²eË"""FŒjnn;vìÍ›7cccKJJÖ®]›––6uêT@ð~ÇíúõëuïRn§ž={faa¡Ü: ø("ü•ø¹6Z„j€Ë—/_¦¦¦²ÙìÑ£Gã‘Òè«óúõë‚‚LÙždÈÖÖV¡P¸gÏžáÇ÷ìÙÓÕÕµ  Ÿ˸|¸¥¥ellì±cÇhbb²qãF|nmmmeeÎãñ\]]BL&“J¥†……!„™™ÙÙ³gBÿýï-,,ìììÂÂÂÚÛÛ;E"z§ sqqyóæxBúúúGŽIII‰‰‰IMM=r䈞Þß_ÖNKKÛ´i“ŽÎ¿ ú1Œôôô÷8n]:Yxý999C‡µ²² éèèÛ_Ñ‘ôûï¿ÛÛÛ›™™ÅÄĈNY§&¤µ«!"9⇥°°0""¢_¿~–––óæÍM—$÷Båææ:;;Óh´Aƒ;v !Äçó w"ñÁ z-yutê‹‚ƒP¥]“D¡P–,Y‚_\„õˆ÷KÁ:Õ7ðij¦‚3ÊyóæÍŸ?ÿÕ«WÖÖÖ7oÞÄ0ìÀVVV§Nª­­={ö¬BHrB$zÁf³õõõ.\øòåË´´4„P}}=†a)))ÇŽÃÞ}oÁ_OŸ>ýòåËuuu„;"„Ølvrr2BhΜ9l6ûÀø Á0lÛ¶m¾¾¾/^¼(++=zôÚµk7oÞìåå…aXNNޱ±ñèÑ£1 »sçFkmmÅ0,00ÐÃÃãéÓ§eeeNNN‘‘‘â‘”––"„„B¡(KâÑŠº ²víZ„PTT”¨¿:Ø7nôêÕë=ŽB¨´´´ù]ÒN^ÛÔ©S+**Š‹‹ííí###ì/áx@Íœ9“Ífÿúë¯ø'lBZ»2¨yF)y¬0¢‘#~X"##ËÊÊÊËË?ýôÓ°°0i{µ´´ôèÑcÿþýuuu‡ÖÕÕmii‰‹‹#Ü]Æ… H¡"ƒPÕ]Èf|·oß655•Ý:þ[iuŠSÝÀ“œQ¾O¢d±XvvvÎÎ΢ö9"ÚàèÑ£²eGGÇŸþÙÒÒ"®\¹": ¾¾¾L&# eee2vD•””`Æår;½Æ76lX]]^a^^ž‹‹Ë;wèt:—Ë]½zõúõëõôôX,V\\ÜŒ3ð}uttDWשS§ìííÅ#Á_3 „ÐãÇE}u' }||ttt‚‚‚Ä (ƒ‹»~ýº……Å{7o’'K¼†>žÅb …Âææf@ mw‚"…Š BUw “—(¥µŽ—H«Sœêžr%†a›7oÖÑÑÕe``PZZ*úíÝ»we'J Ãrrr&L˜àââ‚ÿiïÉ“'ÍÍÍ_~ù%þ[É¡ z°"¹#öî)!|M£½ój@`mmýÇŒ;¶¸¸xܸq9993fÌHJJÂ0¬ºº!ÄápðzÊÊÊh4šx$økwww77·ùóç㛉wwìØ1“+W®Ðh´ììlQyïÞ½/]ºÔé¨îÝ»w„ ]=n˜¼‡5N^›¨k÷îÝ£Ñh ö—°~„PEE…ø'l‚°PZÌ8õ?£ìt¬0¢‘#~Xh4Zyy¹d=’{aVTT4{öl##£‰'ž;wNÚîÒ.„ŠŠ E¥âƒP¥]ȆeFFƘ1cd·.Ú˜°NqªxJxF‰ª®®Þ³g§§ghh(^bkk{ïÞ=Ñr}áp8sæÌ /))Ù»w/^xáÂ…iÓ¦IÛ°B¸£"ð™Þg‹U\\L¥Rg̘‘““SQQ1zôèÏ?ÿ}ð­[·ZYYegg×ÕÕ?^î3J‹E¡PΟ?–!TRRTSSƒ·Bøž)mGLeHHÈìÙ³Ÿ?~ïÞ½O?ýtùòå†effÒéô)S¦`–——G§ÓE=;w®‡‡Ç³gÏÊËË7mÚ$-ªˆˆˆ!C†p8ñ.…™3gNž<¿eàr¹ÎÎÎøo›šš†êîî~á…ǯ_¿!deeÕÑÑÑÕã†wSòãAÒN–h.üäÉ“[·n988àˆT¤¿¢GŸ‡jll”vÀ ›Ö® êœQ+Œhät:õÎÎÎååååååŸ}öÙ÷ß/m/‡C£Ñ²²²L&“ËånÞ¼yàÀt:ÝÕÕ5##Cv¢Ä0lçνzõêÛ·ïÞ½{ÌÌÌð‡ƒ8i)IrG+++ÂCÖé5›Í^°`™™™¹¹ùâÅ‹ñ?×466êêêâO¸[[[õõõ †¨!&“ùí·ßš››÷éÓgÕªUGZTgÈ!ëׯï‘#Gzôè!þøòÖ­[T*5++ ÿ±¥¥%44ÔÉɉF£ <øÇœ²[—Q§žd¢$XáüÃî­¬¬tppÀ¤\À@.—[RR‚HBuÔpv›xvñg8JYá\)õ §¬WXXØi…sø®·Ñ××Wu–¼H”ZÇØØ888XýM¨¡] åT7ðTrë €RÀ­7 Üz@—A¢9 Q€(@H” ‡®dQmm­úã@R{{{§¥>¤*Øà½$J|‘4²%¾F§RªZˆ_4Ùà%ȉä€D r@¢9þH­tñȲ§,IEND®B`‚XQilla-2.3.0/docs/simple-api/FunctionRef_8hpp.html0000644000151400015140000000702711653571064016700 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

FunctionRef.hpp File Reference

#include <vector>
#include <xqilla/items/Item.hpp>
#include <xqilla/items/ATQNameOrDerived.hpp>
#include <xqilla/runtime/Result.hpp>
Include dependency graph for FunctionRef.hpp:

Go to the source code of this file.

Classes

class  FunctionRef

Typedefs

typedef std::vector< ResultVectorOfResults

Typedef Documentation

typedef std::vector<Result> VectorOfResults
XQilla-2.3.0/docs/simple-api/ATDurationOrDerived_8hpp.html0000644000151400015140000000724211653571064020273 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATDurationOrDerived.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <xqilla/items/AnyAtomicType.hpp>
#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/items/ATDecimalOrDerived.hpp>
#include <xqilla/items/ATDecimalOrDerived.hpp>
Include dependency graph for ATDurationOrDerived.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  ATDurationOrDerived
XQilla-2.3.0/docs/simple-api/ATFloatOrDerived_8hpp__incl.md50000644000151400015140000000004011653571063020424 0000000000000090a5b33d7b5942802279829255c883e1XQilla-2.3.0/docs/simple-api/ATAnySimpleType_8hpp__incl.png0000644000151400015140000002171411653571064020431 00000000000000‰PNG  IHDR£uõ$bKGDÿÿÿ ½§“ IDATxœíÝyX×Úð“°È&›, ˆ"¢"«€m}*›,¢€¸µ~¸Ô¥W±ýZî׊´½ÕVm¥µË½Õº¼®TD1R-HÝEd¬€ˆÊ"¨ 0’Ì÷Çi§1™„Ùy…IæÌ{f^æMf’shA è(ºº€A¥tTz@—A¥t™¾º@¹.\¸°uëVuG/??_Ý!  Ò×ÖÖVPP¢î@€Â´··×ÔÔ¨; ´Tz0$lÚ´IÝ!…)..þòË/ÕZîÓº *= Ë Òº *= Ë Òº ¾{ÀßþûßÿgΜ'N „vìØñí·ßâg¹\nTTT]]BÈÄÄäÌ™3?åíížžŽjnn %[ËÉÉY¾|ùܹs;–——}àÀò•—.]Z¶lÙ¼yóvìØÑ××'$ŸÏß³gϼyóæÍ›·gÏ>Ÿ/­;”AJk_žfKKK—,Y{ôèQi¡ö?` Ò€Ð_×áÃÂÂBAAAòÜ —½ÊÅ‹þùç„„„½{÷vvv_ºtI  „.]º4jÔ(|G|ýúõeee .\¿~}zzz[[å¶nÞ¼¹{÷î5kÖ¤¦¦^¹reÿþýï½÷ÞáÇɷgΜٶmÛ×_}íÚµcÇŽ‰®›‘‘ÑÚÚºwïÞï¿ÿ¾¬¬ìàÁƒÒz$-HÊöåiöÚµk©©©ÉÉÉûö퓪Œøƒ•„úã?ÚÛÛƒ‚‚BAAA÷ïßÌ*sçÎ533›9s&BˆÃáxzzêëëWVV"„ "##i4B( ==ý?ÿù——×ùóç/^\XX(¹­E‹™˜˜DFF"„/^lbb…êììÄ/xï½÷œœœÜÝÝÿñˆMý’““óÏþÓÎÎnܸq ׯ_—Ö#iAR¶/O³8ìéÓ§÷ªŒøƒ·å@¡¢¢"@G.a2™...^ÅÆÆ!DÞù¦Óé%%%ãÆ»yóæºuëB===—/_ qwwwww_¶lYZZÚž={ðuQ&&&dk¢INNNø³³ó“'ODŸzüøñ‚ È?MMM¥õˆ2HiíËÓìˆ#Bäۡʈ0HPé@B¡Éd¾ÿþû111xÉÁƒ™LæÊ•+Ū”ü«H®²uëÖ±cÇzyyÙÚÚ"„‚غu«³³3¾HN£Ñ¦NÊ`0Ð…¦¦¦qãÆ!„=z„ë+ÉÂÂâÇÄ¿vëêêb±X2Ú‘ RZûò4K¹÷(C•?`àê=¨²²’ÍfGDDÿ%<<¼©©©¾¾^«x{{ ‚C‡á‹ð!ccãÈÈÈ/¿üòêÕ«­­­ÕÕÕ»wï–ü@/;w677ÿñÇûö틈ˆ}*00055µ­­­¡¡!99ùÌ™32Ú‘ RZû”Ífggwww Tñ >Ó€ŠŠŠüüüðOÎ0777&“éææ¦¨UètzPPÐùóçñ­},99ùðáé©©ÍÍÍVVV¡¡¡+V¬@ÂÃÃ×­[×ÓÓƒÇÞ½þî»ïîܹsõêÕ4-(((!!AF;”AJ¶/­Ùï¾ûÎ××WÆ i¡J¶PAêŽ%úõ×_-Z4àÁækß¾}?þ׿þ¥À69šž$± Ø>eShÏOç.äWïP×ÚÚš““CÞ××@Z$àUA¥@îܹ“0kÖ,___Ŷljj«¦(ƒT`û”M)°}%¸ztœF]½ Wïx%ð™ÐePé]•ÐePé]•ÐePé]£á‚!!))I[ ‡q¹6FFOôôx*ØœâñÌø|3#£gtzŸò¶Âf³•×8º*=Ðq£G~ë­·”º þì™ÉÓ§ÆŽ¡žžÐÑÑÂÚºG©[¤Äb54X´©~Ó¤–ÓÆF‹çÏÝ,,z­­¹66\CC¡26äï﯌fÐI0rÔÖöœÁ¨ÈÈ(­¬|4b„Ùܹ~±±>þþcõôÔsSììÙòµkµ´ü¨–­“x<þµk yyÕgÏÞzò¤s„‘±±>±±¾&ŒTo` YPéx5OžtfeÝb0ÊoÞl456s¦gl¬opðDCC5_!ÓJO„7o62çΕ·µqÆŒîë3uª å¼õ%J€\ž=ë:}ºŒÁ(/+{`dd0k–Wl¬oPÐÄaÃ4嘦Uz’PH”–ÞÏϯÉήhl|:z´ud¤'”|T*=²tvöäæVed”^¾\oh¨íë8ÁÈÈ@Ý¡‰ÓØJ/êîÝÇçΕŸ9sëÞ½vË3Ü#"_ê®E3Æj¨ôƒÔÑñ"?¿—|¡ÀcîÂ0û@@¥jFN(——w»««÷Í7Ý. кc5TzEáp¸.ÜÍϯÎÉ©êééƒaö¶ƒJÔCÇfŒÕPé®§§ï÷ßkŒòóçoww÷zz:EDLž?ßßÅÅVÝ¡ð  Ò•"gŒ-,¼ÓÑñøY³¼­ÔšÖƒJ¯ÐPé*ˆÍëí=záÂ]š1V@¥WrÌ]ãV{; ³´Tz Db3ƺºÚÍ;eˆÌ7£zPéUI($JKÿ~óêì<""†Ù *=P J>P#¨ô`àÆÜJ•ÈKtÆXè(/˜1V£@¥× ,Vwaaè0û³fya¦îЀ΂JúÁbugfÞ„c5TzíB³áÂ]@ˆÇÜ3gŠ ³ *= †gŒÅ§!„ÐÌ™ž ÀŒ±š *½–âry/Ö1å99U\.ÏßF† •¼DÊŒ±žææÆê ˆkiéX±b?Ÿ/Àr¹},V·££%ù‚É“vî\ª¦èÀ+ƒaö’@¥ÁŒ±Z+(h[}};åS4JJšõÑG‘* 9Ì~nnÕÓ§³?gÎ77{u‡´Tú! fŒÕv»v¥¤dóùBɧh4ÚµkŸ;9ÁÔAZŒfÿܹò¶6΄ ##"<""&¿öÚ8u‡´ Tú¡ˆœPNtÆØèhïQ£,û_h’––Ž©S7KþÓé4//§œœÕP8r˜ýß~«lmí=Ú:2Ò†Ùr‚J¯õX¬n‡;v¬M¿¯ ‰K—êNž¼QXx‡Íîž:ÕfŒÕ±±ÿ¾uë¡PøÒ?²¾>ý‹/æ®Z¨®¨€òà1wOŸ.khxâà`9k–wd¤Ç´iãõõåТ­í¹½=|ÝoJ¯ÝÊʬ\y &Æû«¯H{ØŒ±^^No½5fŒÕ‡]úüóL± øzz´òòÍðm݆K>¤RþaöëêÚââvüüóÒÐÐI* ¨Tz-vøðåÏ>;%-,Lªª¶ˆ QGøÜܪæf6Ì««X¬nŸÁß•^OþÆ®'O¾¯Æ¨€*=xð,?¿¹kaaŒ‡Ù—6ªÕ¿ÿ·}{BèÃ#Ö¯‚¡-‡¨ôZéÅ ÞG?w®â¯ÃG;~="Âsÿþ•ê h„¦&öo¿UfgWܼÙhll8f̈ÚÚÇ¢ßêÀ_Ý_µ*pãÆ90©®®‚J¯5„BbÛ¶ì]»ŠBTG–”ùá‡ð¿:4­Y“–“S%i4Ú/¿,ŽöQwD@³´µqrrªRR²;;¹’ç==ºŸß˜_~Yaoo®Žè€rÁÇ>íÐÑñbÉ’½»vAùæL_Ÿ^_ße~Èš?ß_("„Œ ÂÃ=ÔÐ8ööæ3fLâp(ÊéìÙÊÐÐq---êŽEëYYYvV'M;§N]dFpÿþûóׯ×oÙmf6LÆ‹&sppýó¥JßÙÙY[[«Úx€TAdgß;}úno/_ÎU23Kœ””8[[ÛÁWú–––'Ož($ž¡ÌÃÃŒÉfaÑ ÿŃ7yòäÁWz:½ÕÕ­r~1ëòå†+ýïÿú;:Wv`@dUz,$$DE±€þ„††~÷År@ØÕÕ#¹œN§«ò·UÕÕÕŠjÊÖÖÖÃî.JPA£Y‡……ª;­W\\¬¨¦&Ožlgg§¨ÖƒÅê>~Ü?666Àƒê˜™á‘s,,Œi4D£ÑÍÍáǙڭ½½½¦¦Fl!ÜÏÓJzzt˜Oˆ¡Ói !êŽh(kkÓÀ@•ÞÚš¾‘€î€_$A¥tTz@—A¥tTz@—i}¥øðáÊ•ýOæQ__'r ˆ®~ëÖ-}}ý“'O’˳²² «ªª”³šˆ±cǾóÎ;²\NÄÒ¥KÍÌÌäo¿¾¾^‘jÉc-vÐ)áLxÕ}«z2ú"g2www'''ûøø˜™™½öÚkÛ¶mãóùh@ûFEQ=í×JìÁdµ<¯<±Sñ–-[h4ZJJÊ`ÚTH#bdï'NPfuyy¹cP}êj}¥?sæÌܹs)Ÿjhh°±±Á---?ùäi«O™2eÆ ‰‰‰¡çÏŸ¿ÿþû›6mòòòR^ä¢._¾ÜÚÚÚÔÔtðàA‡ãçç‡#¡ÔÒÒrôèQÉ_LLÚ±– g‚Vï[y’¹³³3 àÚµk)))eeeŸ~úé‘#G"##ÁÀöN]QŠí”èñP6˜¬&×UêÎ=qâÄ ggçôôô7HÙÈà» {OÆÅÅá4¾|ù2BˆÌj­íƒÑÖÖÆd2 ­ýâŠʧêêêÄ:(¹\½··×ÓÓsÍš5A¬]»ÖßߟÇã)-ê— „êêêÈ?…BaPPÐÆ¥½ž²_ò·¯@·oß¾}û¶æ´#†ÜQòì1œ ¯ºoUOF„ò$sRRR`` ŸÏ'×êêê;vìž={$7ÑïÞP^jI£Ê­3™Ì¶¶6ÍiGÔ²Zr]eÝVEEFËÏÏGݽ{w` R6¢²ÿP¥nH©ÿ8”uü•?ÓŸ={ÖÑÑüøñ &tww#„úúúÖ¯_oooogg·~ýú¾¾>|‘¤°°ÐÙÙ¹¸¸xÓ¦MÎÎζ¶¶ï¼óùUr-„ƒÁðöö6227nÜáÇB|>Ÿrõ§OŸššš‹^!¿ñÆ¡‘#G")WlÈÕB†††iiiضmÛÁƒÓÒÒ ¤©À®I¢Ñhk×®ÍÎΖ֎h¿äl3//oüøñVVVÛ¶m#÷FVVÖĉíìì{{{)Ê›ÊG™xB¡pçÎîîîÇŸ6m“ÉÄ—Åd\;wîÜ”)SLLLFE^$3A2gðQ¾xñ"åŠ4íÀîîî¶¶¶)))‡vqq±°°øüóÏñ $ß´iÓ~üñG„‹Å¢ÓéIII!@`ee…zGGÇŠ+lllœœœ’’’zzzÄ"Á-‘””äëëûôéS$w29rdãÆzzÿìÞÔÔ499ùèÑ£Øo¯t°¤%˜ìþº¹¹!‘l£í‰­š¬¦<%")ç¨~Sšò„#š~¡'N‡‡‡Oš4Iô9F;zô¨»»»µµõ·ß~‹JLL|÷Ýwñ³]]]&&&·nݒшX$“§ß.{CZY¡D§´Ô¢Ü±bTºý¾ôÎ;ï,_¾üñãÇööö×®]à ¿ùæ› <|ø°²²ÒÏÏïÓO?Åï‰fÍšUTTôÅ_xxxTVVVUU½þúëIIIÒÖêêê6lØž={Z[[÷ï߯¯¯ßÕÕµ}ûvÊÕ8pøðaâå÷_”ïy)’«“>ýôS„ÐÖ­[E*µkÕû»7nXZZÊÞ:~VZ›¢B111çÔ©S¡§OŸâ"##kkk¯^½:~üø/¾ø‚r¡ìLPñgzÉÄÛ»w¯]fffKKKvv¶““Þ™bÇš|Àáp W­ZÕÔÔtäÈ„P{{;!3‘ðQnmm¥\!ÏápöíÛ‡zûí·9ÎÞ½{ñ~&¨ßæÍ›£££ ‚ÈÊÊ277÷óó#¢´´ÔÈȨ»»› ˆ%K–„……Ý»w¯²²ÒÓÓ“<48|¿P(’eG+O2ãŠòäɱ{åÊkkëì7„Pyyyçˤ,i &O)óAy‰­ÊÏôªÌj±Ï©’ÉIô—ÒÒN8¢é' ]\\öîÝKÄgŸ}æááAn!´páB6›ššŠzöìÙ… FŒÑ××GÄ‘#G<<<„B¡ŒFĺ ™<ývlAZY¡ÜeœÒR‹rÇŠR^êRêø@*=›ÍvrròööÝê¤I“Z[[ñãüü|___eee%A'NÌÌÌÄÏÖÔÔ%×b±Xß}÷›Í …@Úê ,`±XÄ@+=¹:& ãââôôô–.]*Ú_¥vè¯ÒKÛ:^"­MQ¡ââb‚ Þ–hüA¤§§?žr!!“Š+½dâyxx¤¥¥‘/8tèìsbooï;wºººÁ… È=/#‘ð‘¶"B¨¬¬Œ 'ö¿@òð•––š™™ñx¼?þxÆ l6{ûöí³gÏÆëêéé‘{#33SìÐàÇÉÉÉèåë¢ò$3®ôä›ÒåË—mll°ßd|xɉÔù&k’\ýèÑ£ÅÅÅEEEYYYªéeluuu®®®²·ŽÉÙ&ž×Hì)2ìI“&555ÉX¨!$¯¡¡Á××—|···ì kkk£¢¢üýýÓÒÒðBi‰„á£L¹"6|øp„¾<.ú“<|S¦L155½qãFIIÉœ9s¦L™RRRÂd2£££Bmmm€<úãÇ'Ž»qãFHHÈ×_-­ ”Élii9räHÉo———‹6.ç~Ã$o7’Û’-((X²d‰<`2’Gö%&íÔMIZœˆ*µdŸ´E÷ƒÊRw •þÑ£G;wî _·n¹&Àÿêl6ûêÕ«x9Þ¿xIyyùW_}%m-.—+ Ož<Éb±Þ}÷ÝØØX‹E¹znnnTT”h`øÇBÍÍÍòôBlõ–––ÄÄÄíÛ·mÚ´)!!áÙ³g*èšd`AìÞ½Ÿ÷el“³MÊ;|ø #B¨¶¶–œâr¡†L>^]ùKþÊ®¸¸8..ÎÉÉ©££Cž­Kk355•l‰|ðB"WŠBCCëêê®_¿îææ¶qãFÊ…²“A•Wï)ï믿¶³³;sæLkkkNNN¿w4Ùl6FËÉÉÁ¿)G•••‰fåi+TûVì±äá#âäÉ“fffAäçç›™™‰ÞË\¼xqXXXCCCUU•‡‡yh$£Ú´iÓ„ ¸\®üÉüüùó‰'†††æææÞ½{wÆ K»YWuIDAT!;;»ÞÞÞWÝo„Hꊒv°¤%˜<ý%oÿ«&±Uvõ^ÅY-¶3)“SvJSžpD·Åd2õôôD{]ZZ*ûÿ…ÏçÛÙÙÙÛÛ‘ÑøÚµk9N¿ˆuA2yúí¹7¤ºÅvš(±8¥¥Öv¬¢R—Pà7ò€¶£LbÊ…²iÚïéÐ@Dooï•+W”½E%¶Fýž~(dõ† /^¬î(ú'§¢R—RÇõ)ß•†CCCü3eT¬§§§¥¥åÀÇWw,²hKœÒhýh¸`ÌÍÍäY€¢¨ Á ±µÎµk×V­Z¢îXd¡ŒS©¥ìÔ¥"7ÛÚÛÛkjj4|Í¿<ø¡Õ Q\\ zzzŒŒŒÕ$Ð=x>T£««Kr!E¥¯­­U~0@G(ªÒãy,ÒšÞ¿MðÒïé cà>= Ë Òº *= Ë ÒºìÿºP@êR 8œIEND®B`‚XQilla-2.3.0/docs/simple-api/classItemFactory__inherit__graph.png0000644000151400015140000000646411653571064022020 00000000000000‰PNG  IHDRuüýõ†bKGDÿÿÿ ½§“ éIDATxœí{LS×ÇOÛ ”²ßkéƒÇû1P—gÄdàHD q<""[’I†Nâ6'¯ŠSÂÂ`¼–A" ™aà€ŸíÛ›¨… -)•Âíãüþ¸®¿®|X­VýúõÉÉÉÔ#§¦¦ìííûûûŸô|zâyoÏž=IIIccc<¯§§‡ª>^©TVTTbcc•Jeii)àÞ½{ÂÄÄÄßÿ]"‘¼üòËÆÃoiia³ÙBXUUåççgx–>n¨a2™Æs©££#”š7˜L¦ñä³H+á?ü°sçN‡   –––Eš/Â¥K—¿ÿþ{&“ÙØØh<À¡¡¡+W®PS_TTTii)4ò4o$`´Ê˜[¨ÕjªR"‘0™LãáC333÷ïß?11akk;::ú8CX®§[·nq¹Ü7ß|Óø©êææfH¯P(/B¡ð›o¾¡Ê†¹hn«ééé®®.áììì…  Æýû÷j¾wîÜqrr*++ƒñxŸßÜÜLÕxðÀ8èÌÌLvv¶‹‹‹££c||¼aÁ6·„°¦¦ÆËËËÖÖÖ××·©©i‘æó®÷.\¸`gg÷Ûo¿2÷ööÒéôºº:ã#{åÊÀÙ³gMŽø¼‘éI.—ïÞ½›Íf ‚¬¬,ÃzÏøÐ¥§§ÛÛÛ+•ÊGš×…þŸ»:yï½÷ÿñ&.Lß'Ę™™™»wïž?þË/¿\r'VøzÄj£§§çÕW_MNNÞ¼yó’;ÁçÓS'88X.—/³|>¡ö„Ø`Oh€=¡zêé¶tócº./,,,//·Hs1<ìåæ6jkKZ:ˆ9ù›§˜˜Kå0j5¡VÛ“$ŸÇ›²t–ecüA´®ï}ž:ÕZ\|ÙÃÝÝgé,æÄÚ®Oµµ×þyp𮥳˜«ò40pëömÀƆñõ×}–ŽcN¬ÊScc?A0®¶öš^o=SºõxÒéôuu×´Zµ911ÕÛk= tëñÔÝ}S¡˜6lÚØ0ú-˜Ç¼X§úú~‚øÿp4]SS¿F£³`$3b%žHRÛÜü­Vo\©TÎvuý×R‘Ì‹•xêèT«gM* ‚V_o%«>+ñT_ßG§›ŽE«Õ·´\Ÿž¶†¬Á“J5{ùò N?w—F£ko¿±ò‘ÌŽ5xjk»A’Ú…öZǪÏ<56.hB¯‡ƒJ¥z%ó< ¬áuØÛ·Æ“ÞÆ…Çï ý·¡†Ïw´³Cû“Uh§§pss2©qvþ—‡Û"ažÖ0ïýÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì Ìö=µ²²2suµ|ÚÛÛÇÆz-BCC…B¡:2×ý#ÌÅLØØpét;K§xˆ¹îWbÎï};vl9·&°>D"‘¹ºÂ×'4ÀžÐ{Bì °'4ÀžÐ`EE$UUU¹ººš«·¹•fé|µa™ßÍ‘ÉdéééMMMËìç³Ï>–Ͱ2XÆ“^¯W*•Ëïç¹çž{þùç-›ae°Ìõ)33°cÇjS«Õ–””lß¾}ûöí%%%Z­ ‰Z[[“’’¢¢¢ª««/_¾ÿÖ[o?~ñλ»»SRRÂÃ㣣«««:®²²2...**ª¨¨H¥RÍÍ R©Nœ8±mÛ¶˜˜˜sçΑ$yçΑHÔßß—ššúÑGQT«ÕáááÔrW ËxúüóÏõõõÔf]]L&+--ýøãûûû+++©ú¾¾¾sçÎ¥¦¦–——www‹Å⌌ŒK—.΃™™µ:nzz:??ßÇǧªª*##£¼¼|rr²®®®«««¨¨¨¸¸xtt´ªªjn†3gÎLLL”””œýl®5¬s}¾ÜîÿôO_ŸÐ{Bì °'4øÃtsMèIEND®B`‚XQilla-2.3.0/docs/simple-api/ATNotationOrDerived_8hpp.html0000644000151400015140000000514211653571064020276 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATNotationOrDerived.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/items/AnyAtomicType.hpp>
Include dependency graph for ATNotationOrDerived.hpp:

Go to the source code of this file.

Classes

class  ATNotationOrDerived
XQilla-2.3.0/docs/simple-api/ATUntypedAtomic_8hpp_source.html0000644000151400015140000001772411653571063021054 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATUntypedAtomic.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _ATUNTYPEDATOMIC_HPP
00021 #define _ATUNTYPEDATOMIC_HPP
00022 
00023 #include <xercesc/util/XercesDefs.hpp>
00024 #include <xqilla/framework/XQillaExport.hpp>
00025 #include <xqilla/items/AnyAtomicType.hpp>
00026 
00027 class DynamicContext;
00028 
00029 class XQILLA_API ATUntypedAtomic : public AnyAtomicType
00030 {
00031 public:
00032   /* Get the name of the primitive type (basic type) of this type
00033    * (ie "decimal" for xs:decimal) */
00034   virtual const XMLCh* getPrimitiveTypeName() const = 0;
00035 
00036   /* Get the namespace URI for this type */
00037   virtual const XMLCh* getTypeURI() const = 0;
00038 
00039   /* Get the name of this type  (ie "integer" for xs:integer) */
00040   virtual const XMLCh* getTypeName() const = 0;
00041 
00042   /* returns the XMLCh* (canonical) representation of this type */
00043   virtual const XMLCh* asString(const DynamicContext* context) const = 0;
00044 
00045   /* returns true if the two objects' URI are equal (string comparison)
00046    * false otherwise */
00047   virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0;
00048 
00049   virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0;
00050 
00051   static const XMLCh fgDT_UNTYPEDATOMIC[];
00052 };
00053 
00054 #endif //  _ATUNTYPEDATOMIC_HPP
XQilla-2.3.0/docs/simple-api/classSchemaValidatorFilter__inherit__graph.png0000644000151400015140000001077611653571064024007 00000000000000‰PNG  IHDR ÃŠÍŽbKGDÿÿÿ ½§“³IDATxœí{PSGÛÀŸ˜HkH_ V,Б‚V«S¬"–b[+ mZ"vªN Ê´íðŽ·VGª‚V[ñŒÈE^Ú xCETêå«AD"¦ áz’œïuÒ˜@ HNp³¿ñ“=»Ï>çüNv‰'Ë¢iø2ÌÒ Ì Œ9D0æÁ˜Ã1GгgϦ¤¤˜#2Æ|óÍ73gÎô°fÜÔÔTXXiŽàXrìØ±øøxsD6‹`Dff¦ù‚c‹Å2Sd2cŒ9D0æÁ˜CcŽ%³z½TWW/1•êêjÄ|w¿ƒ…ÿLê/^twwܘ555S§N}üøñà†}A±°àQ£F9;;nLFÓÒÒ2¸1_\†â¶zõj´ÝÕÕÅçóóóó€¢(¡P8zôh'''¡PHQ°X¬C‡ùøøØÛÛoÙ²¦M›ý¼nNž<Àår]\\6mÚ„ cªÕê­[·N˜0á•W^yûí·/_¾¬Ç074€¹¹¹•”” Ω´‹Åý‰ ­ÏBÓôÑ£GÝÜÜ4 MÓ999®®®EÑ4½yóæðð𺺺ªªªI“&­]»‰ˆˆËå"‘ZZZ¤R©n€T*¥iZ¡PØØØÄÅÅ=xð ##=zÔcÌmÛ¶999eee=|ø0??ßÕÕÑvd˜Ú;wîÜââb¥RÙç©‹Å;Û}D6GÐþ îñ‚kkk³µµ-++£izÑ¢EIII¨¾···L&CÛ§Nò÷÷GANŸ>MÓtww7:醂 A‚»ººnß¾­T*ÕjõÙ³gµå†1'L˜pàÀmÌ_~ùEO°anhoUUUΘù[x–J¥žžžz…\.wþüù‰Ä××7//ïúõ먼¶¶ÖÅÅE[ÍÎÎm ÷ÓðáÃûÙ‹öÖ×ÆÆæÎ;ñññJ¥2 @·‰^Ìúúzí^???½.zËÍÛÛ»·¬˜a(ÎÁ-‘Hrss'Ožìåå… Ñ;Œ¦i¹\^ZZŠÊ‡ àQttt|üñÇB¡°¼¼|÷îݺ»ôb¾öÚk•••Ú—7oÞÔ Õ[nF.;f°°àæææÆgAå!!!r¹<999..N[yáÂ…III÷ï߯ªª ݵk—‘ÈJ¥²ÏÞ»ººº»»mll:::’““ÍІ$$$…œœœÆÆÆß~ûmݺuzLÊQÌ1î?çŒ<O÷öD¡PÄÆÆòù|@ÐÖÖ†‚hß:h›¢¨ÀÀ@§[¨×¯¶dÛ¶möööcǎݽ{wtt´““S1U*ÕÖ­[===mmm§OŸŽÞ ºs°anz·}ž o²ZÌ'xˆÎÁ„Á‚Æ"sˆ`Ì!‚1‡Æ"sˆ`̱.ÁÈä–΂QÌømÒ»ï¾k¾àãñcGpt´¢ÿÍcÁcÇŽš&ÕÔ8°X,//µ¥Ñ'22rìØ±æˆÌ¢­æ'nß~¼ŠŠ}|\ú¬V4çæVp8Ã8v^^…¥sakLÓô‘#—U*J¥>r¤ÔzÆ-k|õjí£G ´ÝÔ¤¸v­Ö¢é0‡µÎÎ.>œ¶‡gŸ8qݲù0†UV©4YY×(êéÍ3E©³²®ªTËfÅ V!¸¤äÎ?ÿtê–üóOç… RKåÃ$V!øÄ‰kÎ3GÊá°²²®Y*&Á_pg'uòd¥Jõ̇*•æäÉÊÎNÊRY1þ‚ ouvª Ë;;©¢¢[ÌçÃ0ø >~ü*›ÝÃS¼l6ëøqüGiÌ·¶vßîñ†Y¥ÒÝR*»˜ÏŠI0\Pð§ö¯#C(J]PPÅd>̃ù— ry›BñïH_ÿýïBmÉþó2Ÿok̘ÂÂOš>ßVן­­ Œç`¹Œ˜ó!š@cŒ9D0æÁ˜CcŒ9D0æÁ˜CcŒ9D0æÁ˜CcŒ9D0æÁ˜CcŒ9D0æÁ˜CcŒ9D0æÁ˜CcŒ9D0æÁ˜CcŒ9D0æ0ú„MMMaa!cÝrìXDFޱ`sæÌñðð`®?s¬—×hMC ÂfÛ±Ùv–ÍÁLkö†~ÂÆúWAŒ£]›š1ÈŒ9D0æÁ˜CcŒ9D0æ EÁ¬ž`¦—êêjÔ—vãEgˆþ”áÅ‹ÝÝÝ7fMMÍÔ©S?þw];Ã^8Κ5kŒ·z±¢‚Gåìì<¸15MKKKŸ½lÚ´Éx«‹¡8D÷FXXØêÕ«ÑvWWŸÏÏÏÏŠ¢„BáèÑ£œœ„B!EQÀb±:äããcoo¿e˘6m¿n Gf½V†}¡&EEEnnn%%%ƒØÏ “Ÿ‹¢Ï¢û¬­ÏBÓôÑ£GÝÜÜ4 MÓ999®®®EÑ4½yóæðð𺺺ªªªI“&­]»‰ˆˆËå"‘ZZZ¤R©nP¥­c¸0ì U˜;wnqq±R©ìóÐþ,zˆ îñBlkk³µµ-++£izÑ¢EIII¨¾···L&CÛ§Nò÷÷GANŸ>MÓtww7H¥RCÁzäååõ)ذ/T¡ªªª?g€yÁCt–J¥žžžz…\.wþüù‰Ä××7//ïúõ§«—ÕÖÖº¸ü»š¨ÝÓï‹\]]`øðáý梁ºÚxb½õåíím¼¡¥x‘æ`ˆŽŽ–H$¹¹¹“'OöòòB…ŽŽŽR©]°r¹¼´´•6øG×[_F.#Ë2D7777> * ‘ËåÉÉÉqqqÚÊ .LJJºÿ~UUUhhè®]»ŒDV*•ÈGÛʤ¾†LÎÏ9#ÇÓ½Q(±±±|>ßÁÁA ´µµ¡ Ú·Ú¦(*00Çãéêum8õêµ2ìKo’îóÐÈMÎ0/xˆÑ„Á‚Æ"sˆ`Ì!‚1‡Æ"s¬Kp{{w{{·¥³` |ÙðÓO?1ß)¢²ò üü,üô “X@ð²e˘ïaoFÓ°kW¶¥`Ì×Öåñce@À:Veåwöö8¯¬‹ÍÁUè³÷ÿýóU¿u±"ÁbqM-—Y:æ°ÁõõO®_¯£iZ£òòûõõO,CX‹à¼¼ 6ûéÁ²Ù¬¼¼ ËæÃÖ"83óŠJ¥FÛ*™yŲù0†Uþë¯Æ;wu è;wÿú«±×a‚sr®s8l݇›{ÝRù0 þ‚iš>vìßñ¡R©33¯XÃgø ®¨¨oh–74È++ë™Ï‡aðœ]®7>#8vvv9óù0 æ‚ÕjD¢?>#T*µDrU­Ö0Ÿ“`.¸´´F.oçpØ66½ûÉ“¶Ë—k,£y¢Ï& ΰ¯¿þPûòäÉJøðÃ7t+X -±¢o“`Ù²_`ÏžO-s`~ýˆ`Ì!‚1‡Æ"sˆ`Ì!‚1‡Æ"sˆ`Ì!‚1‡Æ"sˆ`Ì!‚1‡Æ"sˆ`Ì!‚1‡Æ"sˆ`Ì!‚1‡Æ"sˆ`Ì!‚1‡Æ"sˆ`Ì!‚1‡Æ"sžyÂ_oñkü1Â::þÏÒ‰˜]§ú¿ÑéëëËl>„AãÖ­[ÇŽÓ-Ñìëë;kÖ,æ2"˜2cŒ9D0æÁ˜CcŽÉ‚;::ÒÒÒ¢££ß{ï½%K–ìß¿¿»ÛØbqAAA Ï‘¡1Nœ8¡ûgMÓQQQYYY=Öohh ÒÝè­ÂóÔ}&0è˜ü[•©©©MMMß}÷ݨQ£êêêRSS[[[W®\iŽäúdÖ¬Y?þøã7&NœˆJ¤RissóÌ™37äñxÑÑÑ&õ%“ÉrrrúßdçÎ...º%l6[¯ß„5 “ßÁ%%%ñññ^^^#GŽôóó[¹rå… Ì‘Yàóù“'O>s挶äܹs~~~ÆÚÙÙ “úÒh4 …¤&#GŽ´Ã~Ö$LÌår³³³µ9ùùù‰ÅbP«Õû÷ Û¸q£R©Ô6¹zõjLL̼yó:„JT*Uzzú‚ ,Xžž®R© ((¨  àÓO? ;|øðüýÁüüóϨեK—âããCCCÃÃÃ>Œ gÏž}öìYæéÏ>Ÿ?^;ôõX¡!5ÍÑ£G—.]úþûïùå—·oßî­í_| .D”Jå¦M›æÏŸ™––ÖÝÝb–——GEEýùçŸ=ž=ÑY/¬á™éOX#˜,X(–——GDD…B±XÜÔÔ„Ê%ɹsç6nܸ}ûöúúúŒŒ m“Ë—/‹D¢ÄÄĽ{÷¢+C"‘Èd²={öüðÃåååû÷ïG5¯]»–––&D"Ñ¥K—öíÛ·|ùòƒ*ŠöööuëÖyyyedd,_¾\$ýý÷ß0cÆ …BqãÆ ¨«««¯¯çw ·úz?~\, ‚ƒ.]º4==½·¶»wïíì¾cÇŽæææôôôÍ›7_¹råÈ‘#¨<33síÚµ^^^ÐÙÙÙ¡ƒZÝÃï’ë…ííÌè†5 “¿ùæ›b±xÇŽ'Nüý÷ß/^\TTùùùqqqîîîkÖ¬yýõ×µM¢¢¢¸\n`` ´¶¶@AAÁªU«œœœ<<<–-[VVV¦[3$$/^ÌårCCCQ+›}ûö­\¹ÒÁÁÁÉÉ ÚÚÚ€ÇãM›6íôéÓpþüy>Ÿ½Õ×#777!!aÆŒo½õ?ûl«R©Š‹‹W¬Xáâââáá{êÔ)´K ¼üòËðù矿¯ƒö0ÐÛ™Ñ k¦Ýduvv^¼xqÖ¬Y>>>>>>K—.=pà@zzzpppSSÓ«¯¾Šª7nܸqÚVhFÔýªª±±1<<\ûÒÖöéZ \.8ŽÞ6ÚxðàÁ÷ßßÑÑ¡w!Ïž=;55uÅŠçΛ7o^ŸõuinnöôôÔ¾ôððèO[¹\®Ñh\]]ÑË1cÆ477£m777mµŒŒŒ1cÆè6ìóŠÞÎŒnX“0M0MÓ)))nnn褰X¬)S¦äå倃ƒCcc£»»;TWW—––.Y²µ2üÒÎÎnûöíèà•Jå“'}¯$ØÕÕµ~ýúõë×OŸ>¢¨‚‚í®éÓ§oÙ²¥°°ðîÝ»hœ0^_ggç»wïŽ?½¬­­íO[>Ÿ?lØ0™L†®ã‡:::¢]Ú+r`ôvfÖ´!zĈ!!!6l(--•Éd7oÞLKK €½{÷Þ»wïÞ½{;vìÐÎÍ=2cÆ ‘HÔÔÔTSS“˜˜˜Ý÷ŠÍE©T*‡ÓÝÝf¦ööv´ë¥—^ ܹsg@@ÀÈ‘#û¬¯ËG}”––váÂ…'Ož”••¡:#m;::€Ãᥦ¦Êd²{÷îíÛ·oΜ9ý=‰=ÂìÌÇä9811qΜ9"‘(666%%å7Þˆ€˜˜˜)S¦…Â+VŒ=Úø2ߟ}ö—ËÿꫯÆߟ5Áy<ÞòåËSRR>ùäggçàààÄÄDíÞàààÖÖVÝTãõµ„……-Z´(---&&æ×_ýöÛo{këìì XQilla Simple API Documentation SourceForge.net Logo

ASTNodeEventGenerator Class Reference

#include <EventGenerator.hpp>

Inheritance diagram for ASTNodeEventGenerator:

List of all members.

Public Member Functions

 ASTNodeEventGenerator (const ASTNode *ast, bool preserveNS, bool preserveType)
virtual EventGenerator::Ptr generateEvents (EventHandler *events, DynamicContext *context)
 Returns the result of this expression via the EventHandler provided.

Protected Attributes

const ASTNode * ast_
bool preserveNS_
bool preserveType_

Constructor & Destructor Documentation

ASTNodeEventGenerator::ASTNodeEventGenerator ( const ASTNode *  ast,
bool  preserveNS,
bool  preserveType 
)

Member Function Documentation

virtual EventGenerator::Ptr ASTNodeEventGenerator::generateEvents ( EventHandler events,
DynamicContext context 
) [virtual]

Returns the result of this expression via the EventHandler provided.

An EventGenerator may be returned to be called as a tail call optimization

Implements EventGenerator.


Member Data Documentation

const ASTNode* ASTNodeEventGenerator::ast_ [protected]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classXPath2MemoryManager-members.html0000644000151400015140000001610611653571063021764 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

XPath2MemoryManager Member List

This is the complete list of members for XPath2MemoryManager, including all inherited members.
allocate(size_t numElements)=0XPath2MemoryManager [pure virtual]
xercesc::MemoryManager::allocate(XMLSize_t size)=0xercesc::MemoryManager [pure virtual]
createCollation(CollationHelper *helper)=0XPath2MemoryManager [pure virtual]
createInteger(int value)=0XPath2MemoryManager [pure virtual]
createNSResolver(xercesc::DOMNode *resolverNode)=0XPath2MemoryManager [pure virtual]
createVariableTypeStore()=0XPath2MemoryManager [pure virtual]
deallocate(void *p)=0XPath2MemoryManager [pure virtual]
dumpStatistics() const =0XPath2MemoryManager [pure virtual]
getAllocatedObjectCount() const =0XPath2MemoryManager [pure virtual]
getExceptionMemoryManager()=0xercesc::MemoryManager [pure virtual]
getPooledString(const XMLCh *src)=0XPath2MemoryManager [pure virtual]
getPooledString(const XMLCh *src, unsigned int length)=0XPath2MemoryManager [pure virtual]
getPooledString(const char *src)=0XPath2MemoryManager [pure virtual]
getStringPool() const =0XPath2MemoryManager [pure virtual]
getTotalAllocatedMemory() const =0XPath2MemoryManager [pure virtual]
MemoryManager()xercesc::MemoryManager [inline, protected]
reset()=0XPath2MemoryManager [pure virtual]
~MemoryManager()xercesc::MemoryManager [inline, virtual]
~XPath2MemoryManager()XPath2MemoryManager [inline, virtual]
XQilla-2.3.0/docs/simple-api/URLInputSource_8hpp_source.html0000644000151400015140000003252511653571063020701 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

URLInputSource.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  * 
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  * 
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: URLInputSource.hpp 527149 2007-04-10 14:56:39Z amassari $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_URLINPUTSOURCE_HPP)
00023 #define XERCESC_INCLUDE_GUARD_URLINPUTSOURCE_HPP
00024 
00025 #include <xercesc/util/XMLURL.hpp>
00026 #include <xercesc/sax/InputSource.hpp>
00027 
00028 XERCES_CPP_NAMESPACE_BEGIN
00029 
00030 class BinInputStream;
00031 
00047 class XMLPARSER_EXPORT URLInputSource : public InputSource
00048 {
00049 public :
00050     // -----------------------------------------------------------------------
00051     //  Constructors and Destructor
00052     // -----------------------------------------------------------------------
00053 
00056 
00068     URLInputSource
00069     (
00070         const XMLURL& urlId
00071         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
00072     );
00073 
00074 
00089     URLInputSource
00090     (
00091         const   XMLCh* const    baseId
00092         , const XMLCh* const    systemId
00093         , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
00094     );
00095 
00112     URLInputSource
00113     (
00114         const   XMLCh* const    baseId
00115         , const XMLCh* const    systemId
00116         , const XMLCh* const    publicId
00117         , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
00118     );
00119 
00120 
00135     URLInputSource
00136     (
00137         const   XMLCh* const    baseId
00138         , const char* const     systemId
00139         , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
00140     );
00141 
00160     URLInputSource
00161     (
00162         const   XMLCh* const    baseId
00163         , const char* const     systemId
00164         , const char* const     publicId
00165         , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
00166     );
00167 
00169 
00172     ~URLInputSource();
00174 
00175 
00176     // -----------------------------------------------------------------------
00177     //  Virtual input source interface
00178     // -----------------------------------------------------------------------
00179 
00182 
00187     BinInputStream* makeStream() const;
00188 
00190 
00191 
00192     // -----------------------------------------------------------------------
00193     //  Getter methods
00194     // -----------------------------------------------------------------------
00195 
00198 
00207     const XMLURL& urlSrc() const;
00208 
00210 
00211 
00212 private :
00213     // -----------------------------------------------------------------------
00214     //  Unimplemented constructors and operators
00215     // -----------------------------------------------------------------------    
00216     URLInputSource(const URLInputSource&);
00217     URLInputSource& operator=(const URLInputSource&);
00218 
00219     // -----------------------------------------------------------------------
00220     //  Private data members
00221     //
00222     //  fURL
00223     //      This is the URL created from the passed ids.
00224     // -----------------------------------------------------------------------
00225     XMLURL fURL;
00226 };
00227 
00228 
00229 inline const XMLURL& URLInputSource::urlSrc() const
00230 {
00231     return fURL;
00232 }
00233 
00234 XERCES_CPP_NAMESPACE_END
00235 
00236 #endif
XQilla-2.3.0/docs/simple-api/EventHandler_8hpp__dep__incl.md50000644000151400015140000000004011653571063020674 000000000000008529f217c46dab4713469a95300ef37fXQilla-2.3.0/docs/simple-api/LocalFileFormatTarget_8hpp__incl.png0000644000151400015140000001140111653571064021603 00000000000000‰PNG  IHDRu.ˆ¨÷bKGDÿÿÿ ½§“¶IDATxœí{PSGûÇ7ÂuD“ A¬V‹´x™âA^„Z£€A)7/8U@¤´0VE-cE„á"¿µ(Z"U;j-X)*0Ô‚Š€ˆM0Éyÿؾ™cN—j»Ÿ¿ö<œÝçûìÙ/gO €Á  ]Û0m‚ €Al Ò``†©ù”7nÜØ»w¯æóbtœÄÄÄ%K–h8© ÐÕÕuíÚµ¥K—j>5Fg)// Ó|^-’””¤­Ô¤¼¼\+yñ3i°0Hƒ €Al Ò``Fk¯ ‹««kaa¡••Õ›°½½=((¨¬¬ N=¡°°ž@>s(mÔ šóßׯ_ÿî»ï¨ñììl;;»·ý_]@w ð¶IOO·°° G F@@À˜»¿%:;;###y<àÓO?=wî nݺ¶ãÆ{éP]Œ?~„ JÁðððÓým —Ë…B!lëëëëëëÄb1àm §Cwì@$8p`ÕªU~~~Ç—J¥2™ìĉþþþ\.7%%E$Á3+++ÃÂÂ<==}||N:5’ÁÛÛÛ©{›ÁÁÁÌÌÌÕ«W¯^½:33spppTòà˜555þþþuuu®®®—/_ær¹§NºråJ@@€··w^^ÞP²7oÞ X³fzñÔŽäÔµµµ.\ظq£··÷Ž;*++a¥ÔêÔ§«®® \¹råÉ“')nݺµ~ýúÕ«W=zt``@epÓ¯Þ19r¤»»;33óàÁƒwîÜ9}útqqqEEEJJJZZZ[[[aa!àÕ«Wß~û­½½}aaaTTTvvvOOÒP‰DLB&“©ÌX\\ÜÙÙ™••uøðáššš'N¨éN•O>sæL||¼½½=à?þ8~üxxxxvvveeennnTTTAAP(T);##pþüy5Ó¢¦^˜º©©©  `Ë–-§N Ü¿¿µµ55éåË—ÓÒÒ&L˜Àf³#""233áGV¨Ý©òÜÝÝáááP!ÀßßßÈÈÈÃÃ#55uݺuFFFžžž‡îííåp8ÃÊV‰šzaê£GFFF:;;>þøãøyDju^^^jAñ...€ÞÞ^ŒŠŠš}úôСCb±þÞ¥B}A£½½zÚ³gÏ|||‡ÆÆÆCuïîîV)@¶–‘‘T¨Ô¡l•¨éSwttL:U|ÿý÷ÕW7'NÐh4rP1ÿÖÖÖŠ’UuwÉffft:½³³®òŽŽsss‚ ž={¯nsssUUUPPPrrrrròÂ… ._¾<椦¦¦iiip­‹D">Ÿ?*yðGŠ%®ž1ËVÓ¦æp8­­­Š»ÐãÇG[DiéCž>} Gnkkƒ*¨ƒèô3@OOŸ“Étuuýá‡:;;[[[sssÝÝÝ=<\ÊCU§HwñâÅa·aéééííí<ÈÉÉY¾|¹š ¢Ów€­[·’ËÊʶoßžžž©§§·lÙ²ÀÀ@&‘Hbcc%É‚ """&&&QQQ{÷î544\·n››[\\\zzú4„††¦§§‡……Ñh´Å‹Ãñ‡‚*oTw•²‹‹‹gÏžíããséÒ¥Qu$×Ëåre2YZZÚË—/gÍš™ššª²:&“INwèÐ!GGGõ[#ww÷;wJ$777EÉJÁ‘O‚†¡iþkQΜ9ãïï¯÷M1 *++Ùlö´iÓàaEEEAAAvvö¿Vå[æÃ¾®WW×¢¢¢µk×þKI£E§·@˜7EKK˾}ûšššúûûòòò¼½½µ-J'Ðé-æMñÅ_H$’ÄÄÄžž ‹+V¬\¹òßkllLGePgÁ@ƒúf‡?~üŽ;FÔYðƒ4ؤÁÀ 6i°0Hƒ €A­½ £­ÔŒ-`Ê”)~~~šÏ«ƒ´´ŒØÚ*ÿ±‚ØÚÚN™2EóyµðY Œ‚ˆˆÿdeéè‹ ~À 6i°0Hƒ €Al Ò``ƒ4ؤÁÀ 6i°0Hƒ €Al Ò``ƒ4ؤÁÀ 6i°0Hƒ €Al Ò``ƒ4ؤÁÀ 6i°0Hƒ €Al Ò``ƒ4ؤÁÀ þ1¥¨è÷ìì ¹\ùü>À„ ÆðN§‡…-ö÷Ÿ§5}衵’‡&NN6 íJÁçÏ…ŠöÇ¿¯QAȃ·@ÅÞž3s¦%F£þˆF£ÍšeegÇÖ¼*”ÁÐ4~~Î †Šig0è~~Κ׃8Øš†Ë«x #—ËW­š«y=ˆƒ  i8Sgç÷éô×vAt:mÞ¼©Î8m©Bl-àëë¬ô@£Ñ|}ñþG `hÏ>ûˆjoï9ÚÒƒ2ØZÀÔÔhÉ&óŸÉg2éK—:˜šiWš`h_ßOäòÞ‚”Ë _ßO´«Y°´ƒ‡Ç,ëŸw!Y,æòå³´«Y°´ƒ¡!ë?ÿùɤ3™ OÏÙ††,m+Bl­Áå:Éd„L&ãrñËÿZãµÏ‰Åb@ -)¨ñÁãY€3Æwtth[*˜™™*_3@ooocc£Æ%¡‹³ó{ÐZZšµ-!fΜ9¤ K—.Õœ´ÑןB£ ¦i[*”——+EðÇ¡µÉüù¶Ú–€:ØÚDéA̓_ 6i°0Hƒ €AšwÞOž< !"((ÈÄÄDÛr†¤¹¹Y埃ÿ•p÷î]&“yöìYEœÇã±X¬ºº:F³··Wú +VÐh´ææfxl¡©â ö¦QYÈÛã7@II —Ëíèè8yòdCCƒ¶åŒXÂܹs¢££{zz/_¾Ü¼ysRRÒìÙ³ái=ºÿ¾¢—@ ¨¨¨vðß~û­óuÞR---æææÔ¶ŽóÎàÊ•+b±`mm­m9c–HLL477ßµk >>ÞÂÂ"..Nqš»»;ùþpáÂ…%K– ;ø¤I“Þ{·PÈåò¿ÿþ›ÚÖqFm€ .XYYÁ >}zúôé}}}€ØØX‡Ãf³cccàMÿ×_µ¶¶.//OJJ²¶¶ž4iÒ† à/9•½¥¥¥sæÌ100°µµ-(( ªìþâÅ cccCCà àÕ%ç½yóæÏ?ÿ˜4iÒ ¦NjjjúÍ7ß %láÂ…iii>ŸO§Ócbb2™ÌÌÌìâÅ‹€žžž7š››Ož<9&&F"‘()#ãèèøâÅ r ‹•ŸŸŸ———’’râĉüü|===ÅÌûùù9sF± *..öõõíåƒ +uØù¡Î*ùÛî ÅÌ(¸r劙™YJJŠâ‚òx<6›Ýß߯28–¹ Htuu•••ñaÆàààgÏžq8œÛ·oÃàÁƒ}||ž¡ÁäÉ“çÌ™CN9cÆŒÎÎNؾzõª££#”X[[K„ƒƒÃùóçáOmj/>Ÿ¯§§wèÐ!@ —Ë{{{e2ÙPÝ}||ø|>¡Ê0oÿŸþ)‰d2Ù7ÈË¥¦¦† ©TªÔ†'P…UWW›˜˜H¥Ò;v$$$èéé ‚ÔÔT///Ø—Á`Ô××Ã.çÏŸ·³³#+m¸¥ù믿ó¦("—ËW­ZÅ`0‚‚‚^»N455mÙ²e÷îÝA._¾œ ­û¡  Diié°R‡•³ªÆê×Usyy9A2™Œ<²â䢢"ª`¤Ž¦Ä›1A{öìa0ä± Èmjj %J¥RøÓºº:ê8Ô^AܼyÓ××רØxÑ¢E—.]ª{ooïçŸÛÔÙ‡y ‚àñx...ŽŽŽ!!!*—‹Ê6U˜L&ãp8·nÝúä“OªªªæÍ›Çãñ¼¼¼Ž;FD[[@,Ãqjkk ÈJ`ÛÕÕuéÒ¥ÁÁÁÔ ¦¦¦7nÜ000())QÄ¡°òòr;;;¹\Îår³²²ˆ€VêHæ‡:«j  ~mP5766’ÓÁ“‚ïß¿¯¬¤Ž¦ÕcynkkKOOwwwß¹s§"hnn®˜&@PUUãpkiiùèÑ#¹wïÞ¾}û†ê%‹årùÙ³gù|~hhèÊ•+ù|¾Êî¿üò‹§§çP"a^±X¼víÚØØØšššŒŒŒ‘×HF§Ó½¼¼x<^cc£““Ó²eË®^½ZQQáíí àp8 £¥¥vøð¡••Y ¤´´433óÇ,++£–ÐÑÑššºxñ⤤¤ˆˆ¥GI—ÞÞÞ›7o^½z•Ë厼2#”ª†ÑΪúµAEåkµpÅ---ÕGŨ —Ë7mÚ´mÛ¶Ó§O_»v­´´Æ×¬Y³{÷îÇ×ÖÖzzz;vŒÜkýúõ_ýu}}}}}ýÖ­[?~11100:¬±±±ƒƒC|||dd¤D"!—@DDDÄœ9sBCC;wîäp8Û¶m#wg0>>>óæÍc³•¿E´»»û‰¡J¡T5¨™Uøü ÔV¿6999/_¾TŸtûöíÍÍÍwîÜIHH RäÛÁH¶@Gýè£àÍë§Ÿ~²°°€[X¡Pbff6qâÄððð¾¾>ò}P"‘ÄÄÄXZZššš§ö"¢¨¨hÚ´i,kÆŒ<Oew©T 7ß5÷ßï¿ÿ~„ S¦LÉÈÈ`³ÙÄnñ*…õôô0™LøxÚ××Çb±âââ‰ø|þúõë'NœhaañÕW_‰Åâ¡T‰ÅâéÓ§'$$KÈÏÏ×××'?üþûït:½¸¸˜, ~¢׷@Ô+ Tm†•:’ù¡ÎêÀÀ€‹‹‹‰‰ Aäö°kcØtð䜜ssómÛ¶)+©•*Aݽöÿž?ÞÐЀÿ £S477SßW–òòò™3g’ožïüaÌ¿£ëŒ7.""b$Á1€ €ÑuØlvffæH‚cƒ4ؤÁÀ 6i°0H£â{ð÷TbÐA…ð׃bÐ6Ú7“1˜ÿOàg Ò``ƒ4ؤù/—|òÌ×å1IEND®B`‚XQilla-2.3.0/docs/simple-api/inherit_graph_30.png0000644000151400015140000000317011653571064016457 00000000000000‰PNG  IHDR£(yÝÌbKGDÿÿÿ ½§“-IDATxœíšmHS_Ç׵бÜÊéz°,éA(Åd’à‹ z sY©¨P¾(PB¥Á¢|QP/„^DôF5+£ÞY”(mÔ ›J6ÝÌÜÆwms™»z׋C÷»»÷nÝ–ýÿÿ{>¯î9÷œßÃùÞó;wD4ŒHùÛ` ¬´RÀJ+¬´RXÂk_¾|¹¿¿ÿ¯„‚I"­­­¥¥¥Ü¾ÒïÞ½{ÿþ}qqñ"F…I2<8uꯓ¯4wuu-JH˜?A±øœV Xi¥€•V Xi¥€•V 2•&8¤¥¥íܹs``@b|4­ªªÒjµl×ë=qâÄúõëµZíŽ;?~,/’ÄãÔétû÷ïw»ÝbƒGGGßZÿ÷ïß'„^IÙÈßÓv»Ýçóù|>’$7nÜXQQ!ñ³˜×ëµX,ÃÃè955•ŸŸ¯Ñh¬V«Ãá8vìØñãÇ{zzdÃâr¹ Clœ^¯·¯¯a˜ªª*±¹z½þܹs‰[þM:„Ðn·€ï[·nM¢—ˆþŒÙl6›ÍÑx€Óéd›~¿ü~¿Øx§ÓÉõuæÌôd°477ïÞ½;®ß¸ðñ✜œ€/_¾ü¾å$’tË`µZyÉ9§ÕjõÒ¥Ku:jÒ4ÝÒÒb4³²²ZZZhš6™L°råJ4àÑ£G\ mmmwîÜA×ÓÓÓµµµƒ!;;»¹¹ùÛ·oܺʽ&Âb±lÞ¼yŊ׮]ž#*• æççãz‰k96G4ýÅ‹ëÖ­{õêÏõçÏŸ¿~ýú« +o–0<åßÓ¡P( y<žÓ§O×ÕÕ±w¯^½zäÈ‘‰‰ ’$ Ο?Ï}l)Š€@ f¼²²r×®]ccc$Iæåå]¼x‘;{ åååEݾ}¦¦¦b÷4Š3 ŽŽŽ–••&â%®e±÷íÛ÷òåË™™v¤Ãᨩ©ÉÌÌôz½‚ùJìéçÏŸ£'Éår‰-W, ´§å+ÍE«Õ³w7mÚäóùØX·oßÎM&EQ‚–#‘ˆJ¥DÍîîî 6H(ÝÛÛ‹f€ÓéŒUšE­V—––¢b×K\Ëb9’$‰:ggg;;;‹ŠŠòóóoݺ …ÄSºz{<ž¶¶¶ìììôôô,,,ˆäfL¥Ùó/755™L&önjj*w‰u:/£Ñh³Ù¸Gaaa8þôéÌÎ΢~’$SSS¹Ó?|øÀÕcdd„’ô9Í×K\Ëb9F"‘è½XSSóæÍ†a¤3‘s:‰tuu•””äææNLLHT: ç´F£©­­ŠþØCƒ]_Š¢^¿~Í›rðàÁëׯG9{îîÝ»4Mk4£Ñ¨R©\.ê[³f ºFç«ÇãášJI‘“‚„—-‹å¨V« 33sË–-v»Ýf³MOOˈ‡ßïšœœ,((HKK“a!9odééé¡Phff5ËÊÊ.\¸ðñãG’$÷îÝ{óæMÞøööö¾¾¾êêj»ÝN’ä¥K—:::ÚÛÛ@­VWTT444¸ÝîÁÁÁÖÖÖÊÊJ½^Á`°££#ne-,,¤§§»ÝnÔ ƒuuuË—/ÏÈȨ¯¯‡Ã±j||¼¼¼|õêÕË–-+**zúô){+TWWgdd¬ZµêìÙ³¨Æ^¹rE¯×çää|h2™,ËÜÜœàA@¨zÑŸ_[Ž= ø÷é¤Ã0 Ã0K–ü!@š¦ÑqðKaµZ‘”,¿æ#›””¯2d Y†0ÿr°ÒJ+­°ÒJ+­°ÒJ+­°ÒJAà›“þþþ={ö,~(˜? _iôÏ Ì³Ù¼víZ^'ÿ{oÌÿ|N+¬´RÀJ+¬´RøKöK „IEND®B`‚XQilla-2.3.0/docs/simple-api/ATGMonthDayOrDerived_8hpp__incl.md50000644000151400015140000000004011653571063021211 0000000000000050dc9b8e3b76e39fdf9736e2eaa02fbeXQilla-2.3.0/docs/simple-api/DOMDocument_8hpp.html0000644000151400015140000000647011653571064016575 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

DOMDocument.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <xercesc/dom/DOMNode.hpp>
#include <xercesc/dom/DOMDocumentRange.hpp>
#include <xercesc/dom/DOMDocumentTraversal.hpp>
#include <xercesc/dom/DOMXPathEvaluator.hpp>
Include dependency graph for DOMDocument.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMDocument
 The DOMDocument interface represents the entire XML document. More...

Namespaces

namespace  xercesc
XQilla-2.3.0/docs/simple-api/RegexGroupStore_8hpp__incl.map0000644000151400015140000000003511653571064020527 00000000000000 XQilla-2.3.0/docs/simple-api/classURIResolver__inherit__graph.md50000644000151400015140000000004011653571063021633 000000000000008b3e48b9d1621b616a1f34599e339536XQilla-2.3.0/docs/simple-api/Node_8hpp_source.html0000644000151400015140000004477011653571063016730 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

Node.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _XQILLANODE_HPP
00021 #define _XQILLANODE_HPP
00022 
00023 #include <xqilla/items/ATQNameOrDerived.hpp>
00024 #include <xqilla/items/ATBooleanOrDerived.hpp>
00025 #include <xqilla/ast/XQStep.hpp>
00026 
00027 class DynamicContext;
00028 class XPath2MemoryManager;
00029 class Sequence;
00030 class Result;
00031 class NodeTest;
00032 
00033 class XQILLA_API Node : public Item
00034 {
00035 public:
00036   typedef RefCountPointer<const Node> Ptr;
00037 
00039   virtual bool isNode() const;
00040 
00042   virtual bool isAtomicValue() const;
00043 
00044   virtual bool isFunction() const;
00045 
00046   virtual void typeToBuffer(DynamicContext *context, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &buffer) const;
00047 
00049   virtual const XMLCh* asString(const DynamicContext* context) const = 0;
00050 
00052   virtual bool hasInstanceOfType(const XMLCh* typeURI, const XMLCh* typeName, const DynamicContext* context) const = 0;
00053   
00056   virtual Sequence dmBaseURI(const DynamicContext* context) const = 0;
00057 
00059   virtual const XMLCh* dmNodeKind() const = 0;
00060 
00062   virtual ATQNameOrDerived::Ptr dmNodeName(const DynamicContext* context) const = 0;
00063 
00065   virtual const XMLCh* dmStringValue(const DynamicContext* context) const = 0;
00066 
00070   virtual Sequence dmTypedValue(DynamicContext* context) const = 0;
00071 
00074   virtual Sequence dmDocumentURI(const DynamicContext* context) const = 0;
00075 
00077   virtual ATQNameOrDerived::Ptr dmTypeName(const DynamicContext* context) const = 0;
00078 
00080   virtual ATBooleanOrDerived::Ptr dmNilled(const DynamicContext* context) const = 0;
00081 
00084   virtual bool lessThan(const Node::Ptr &other, const DynamicContext *context) const = 0;
00085 
00087   virtual bool equals(const Node::Ptr &other) const = 0;
00088 
00091   virtual bool uniqueLessThan(const Node::Ptr &other, const DynamicContext *context) const = 0;
00092 
00094   virtual Node::Ptr root(const DynamicContext* context) const = 0;
00095 
00097   virtual Node::Ptr dmParent(const DynamicContext* context) const = 0;
00098 
00100   virtual Result dmAttributes(const DynamicContext* context, const LocationInfo *info) const = 0;
00101 
00103   virtual Result dmNamespaceNodes(const DynamicContext* context, const LocationInfo *info) const = 0;
00104 
00106   virtual Result dmChildren(const DynamicContext *context, const LocationInfo *info) const = 0;
00107 
00113   virtual Result getAxisResult(XQStep::Axis axis, const NodeTest *nodeTest, const DynamicContext *context, const LocationInfo *info) const = 0;
00114 
00116   virtual ATBooleanOrDerived::Ptr dmIsId(const DynamicContext* context) const = 0;
00117 
00119   virtual ATBooleanOrDerived::Ptr dmIsIdRefs(const DynamicContext* context) const = 0;
00120 
00121   /* Get the namespace URI for the DOM type */
00122   virtual const XMLCh* getTypeURI() const = 0;
00123 
00124   /* Get the name of the DOM type  (ie "integer" for xs:integer) */
00125   virtual const XMLCh* getTypeName() const = 0;
00126 
00127   static const XMLCh document_string[];
00128   static const XMLCh element_string[];
00129   static const XMLCh attribute_string[];
00130   static const XMLCh text_string[];
00131   static const XMLCh processing_instruction_string[];
00132   static const XMLCh comment_string[];
00133   static const XMLCh namespace_string[];
00134 };
00135 #endif
XQilla-2.3.0/docs/simple-api/classATTimeOrDerived__inherit__graph.md50000644000151400015140000000004011653571063022401 000000000000008abbb5648268d795a5aeec6270b233adXQilla-2.3.0/docs/simple-api/ATDecimalOrDerived_8hpp__dep__incl.png0000644000151400015140000002066011653571064022016 00000000000000‰PNG  IHDRµy—¢bKGDÿÿÿ ½§“ IDATxœíyXSWúÇO  "h1,‚¢ÄÁGAj«£b}@¦u© ":ÒJGì¯ .­RZmѱêÓ U\A:‚ íT6E--D‰†` ÛýýqímL‘D1QÞÏÃç¾9ï9ß{ï—sÏ=Y. }0D߃üà8À#å’’’]»véK `xzzîØ±ƒÚ|Æmmm………ï¾ûî«·oßf2™Ê#õJ_|ñÅ«Ò_~ù¥Jæð€üà8À ÷/ýäøñãÉÉÉëÖ­[¹r%)**Ú¹s§zÍÄÄÄuëÖQ›VVVS§N g0ZõxÿþýU«Vë&X%½§§'%%¥²²’Ïç;vΜ9+V¬ Óé*YóæÍÓYù î«…y󿥦¦Ž3FçfûŽþ ¢¨¨ˆÍfSþ˜5kVff&BˆÏç¯_¿ž,#„FމЋ‹³±±Q(÷îÝËÌÌ =v옙™Yÿ;533 ÔM° Ož< g2™aaa¶¶¶G½zõê¾}û† QSuVþë ¯/wïÞݼy3—ËåñxdpèСä¿—Å!„ †……‹Årwwß¹s§MFF†VŽ5*44T7Á*?~œÁ`ìß¿ÿí·ß¶³³›3gNBBBkkk~~¾ze•¿DÁúBGM:ÕÃÃcìØ±EEEÚ¦Óh´E‹•••‘›2™,!!aÉ’%K–,IHHÉdr¹<999 àƒ>ˆ‰D¡û÷ïS£ý¼yóòóó׬YóÁœ:uêâÅ‹ï¿ÿþ±cÇÈ ¥¥¥ëÖ­óõõ]¶lÙ©S§T¬^½Zy¨6lØŠ+ È^ªªªjjj´U®œþã?’‚·oßO¦H¥Ò… ’-¨§+Š3gο÷Þ{ëׯ¯­­Õx¯^½´pá“'ORGæ—_~ ^²dÉÁƒ¥R©Æ ¶gJ///„§§§n×W;;»––²|öìY>ŸäÈ‘}ûöUUU%''Ÿ={ö§Ÿ~Š=pàÀ½{÷RSSÕ[¸víÚáÇCCCKKK=~âÄ ¡PøäÉ“èèh''§ÔÔÔðððÄÄÄGQ‰"‘¨³³“Ãá¨4ÈápîÞ½K–ÓÓÓ·nÝêä䤭ré^^^%%%äG±*++‡:}úté™™™iii¡¡¡'NœNHHÐxôÊËË7oÞœ””$ É`vvvllì7ß|S^^NýKh ö]üñÛo¿=xðÀÓÓ!äééÙÔÔÔØØ¨C;ùùùŸ|ò ›Íž0aBXXXEEÅ… BBB&L˜0~üø-[¶¸ººªg˜ššúøø „V®\ijjêëë‹êêê2119zôè† ,--Ùl6B¨»»û¹2h4šB¡ Ë¡¡¡îîîÆ ÓV¹Æô¿þõ¯B¡ð÷ßG]ºtÉ××—œ«§çææ~ôÑGsæÌ±´´|çwúº<‘û>{ölrÉ`xx¸Ý¤I“þñ`‚ýG—ùiQQ‘\._¼x1)..?~¼Vðx<[[[²ÜÚÚºlÙ2ê¥#FH¥R;;;rsܸqãÆSoÁÔÔ!DNn”ËdÇã}ûí·b±X} 033³°°àr¹Êq.—ëììL–ÇŽ«›réC‡5kVII‰ƒƒÃ•+WûJ—ÉdÊÛ„ 4j°´´DÑh4å uÄÆŽÛÞÞŽ ö­ý¡P(Š‹‹?þøã ‘äääâââµkתÈÅ@DnnîŒ3ÈÍQ£F8p€¼a#ÿ­[·¶¶¶’žãr¹eee«V­ê¿ÈÞÞÞ˜˜˜˜˜˜™3gJ¥RõY§··÷ñãÇÝÝÝ©)HOOÏéÓ§©³EYM[å}¥{yyŸïïïO¾4gΜÄÄͶ¶†††Í›7gggûøø$%%566666~÷ÝwmmmZ‰”J¥2™ÌÈÈH"‘s‚'Ož(WX³f@ ظqcEEÇûùçŸÃÃÃY,–ò ¨›ò¾$MŸ>]$¥¤¤¼÷Þ{TP=}Ñ¢E‡þå—_:;;+**¨éö… ž{‰Œ‹‹»ÿþo¿ý–””4þ|L°ÿh=~M›6MyÈÉÉÉÖÖ¶¸¸XãlŽbýúõdÍfO™2åûï¿§Fã?ü0..nݺu4ÍÓÓ3,,lÈ!===QQQ===3fÌ ÓJ¤™™Yxxø®]»†¾råJ//¯Í›7ÇÅÅQLMM¿ÿþûäää„„„––///???ccãTÞÑÑ¡Q’‘‘Ñܹs/]º4wî\*¨žnll,•J>üðáCGGÇ;v|üñÇ¡o¿ýÖÍÍêW#ÞÞÞ›6mêééñòò "¯&*A­#Bˆ¦üý†ôôô€€€Yïô‚ÆeVVo¿üòËÑ£G§§§SxÿÀþx1bÄÂ… ûÔðÇ›ƒÁظqc‚Úþp€?àøÀþp€?žá·ßê[‚a¡a}=22òÕë0ÚÛݘÌߌŒzô-D?444x{{+Gžñ‡½½½ŸŸß«•d@ˆÅF--æÃ‡O´·ïÒ·ý0aÂê­iü¾ÅÞ½ù\7β´t»¾µ 0ÿø“ŒŒJ„PsóÃÚÚ}k1ÀO¹~ý.'@Ó33¯é[Ž¡þxJvv•‘!$•Ê32* ¸ì"þ ‘ËgÏVÊdrr³½½«¢¢A¿’ ðB•–r‚??€hlL?w®Jz ðBeeUýy(¤RyNN•T*×£$ü$Ynî ™L¡ {ú©N_’ ð**ª‹{U‚FF´¬,¸‹ ”•uMý;û2™â?ÿ¹ùä‰D/’ ‡Á÷âÅÛr¹Bý%©T^XxûÕK2(»? nK$²¾^…»˜Áîìì> PÅŵB¡øUê14ûûs<ž@ùâ2sæ®;—z{ÿ…ŠX[:T÷_ázݼ{NbgÇT‰Œm>nœÖßc~Sì×øÀþp€?àøÀþp€?àøÀþp€?àøÀþp€?àøÀþp€?àøÀþp€?àøÀþp€?àøÀþp€?Ïü>Ì÷߯/†Caaakk…¾Uèooï &<Ý ”Ы*ƒÀؘ=dÈP}«Ð3iii”%T_*--Íßß_/²C€F£)oÂüÀþp€?àøÀþpèè;wÒh´Ý»wS‘3gÎÐ4qãÆ åM‡Õ«W···¿$ýˆËåªÜ’õ“îî¨©S§š››OŸ>ý›o¾‘É4üPÿ‹ˆ×Y¾Æår_¤Ùþ£‹?‚8sæÌرcÓÒÒ¨àâÅ‹ù|>ŸÏ¿rå Bˆÿ®®®¡+W®ðù|—œœ, §M›öèÑ#E744°X,²Ì`0¶lÙ¢m ]]]o½õVeeåž={®]»¶mÛ¶“'OΟ?_.×ðL1Åë¦Í°PY?U^;ë‹›7oÒh´‚‚„Ðï¿ÿ®òj}}½z³õõõÔ¦B¡ðôôŒŽŽ~nG}¡Þ…¶DFFΙ3G&“Q‘Häàà˜˜¨Ró¥‹× {ª"éå¢â]Æ3gÎÌ;×ÛÛÛÅÅEyé'4í£>ºpázvü¤ÊdáÒ¥KcÇŽýßÿþwþüywwwSSSòŠF>#ÞÚÚZ¥…Gýýïg±Xvvv‘‘‘===dw'Ožœ4i’……Å¿þõ/²fjjjtt4N§T1"***55U¥wŒx„T*ŠŠ²²²b³ÙQQQR©T9=%%…ÔöÁlܸ‘Léííe2™d êér¹|ïÞ½ÎÎÎæææ³fÍ*//×x /^¼Èáp˜Lfll,urrr&NœÈf³7lØÐÛÛ«1¨íÉÒzüP(ãÇ?räAŸþ¹«««J…çŽATVV2 •ÊT™,üío+**âóù&&&!!!</55!ôàÁYAyyyݹs§ººzòäÉ111dïË—/‰‰‰¡‡ „P{{»Šò_~ùÅÊÊJ¹w‘H„OÄž={–-[v÷îÝêêêiÓ¦mݺU9ýÆHér¬P(‚ÈÉɱµµ•J¥Ó÷ïßÏf³³²²ZZZ.\¸`kk‹4 , …™™™¡ŽŽ²SŸººº²²2‡£1ˆ?¹„š´öGYY™‘‘QGGA×®]CÕÔÔ(WxYþ¨®®&¢···¶¶V$Éåò’’²)Y‰„N§ßºu‹Œgeeq8²÷ââb²™Þ—?JKKY,–rïxñA¸¸¸ðù|²\PPàææ¦œNiëîî1bDEEA+V¬Ø¶m[_éÎÎÎ)))T_?üðƒF\¾|™ r¶DJsZZ‡ÃÑ$ž¿?÷\Μ9#“ɨé!ÙÜäÉ“µj¤¾¾ÞÑÑQ%H<û²‹‹ BÈÄĤ®®nݺu"‘ÈÝÝÓf[[›\.§šåp8<,“ÿ…ÆÆÆä&ƒÁ°¶¶¾qㆷ··r 7nÜðððPîý¹â›ššlll¨—F¥1ÝÔÔtñâÅgÏžýË_þ’——wýúõ¾Ò%‰››™2eŠF ä©Ô·"ƒüB í¿þÚBMÕét¸Ä<üBçÎUý¹æ!—p‰AüA’‘Q)“ýùYe‚ ¸Üµµ|=J2ÀHãlÃȈž]¥=øegW«.¨Ëdòôô X<ìþP(ˆ³g¯J¥¾¶ßÖ&¬ªj~õ’ ŠÁîòò†öö./ÑÏì—˜Áî¼¼ë!#õ?…‚Èͽ.—+ô­QŸhýýÛ7ŒÉ“í>ÿ|µ¹oß.œêìlME?[XŒÐ‡4ƒÞ¿}[ÛOÖ,ZäöüªƒƒÁ~}ð€?àøÀþp€?àøÀþp€?àøÀþp€?àøÀþp€?àøÀþp€?àøÀþp€?àøÀþp€?àøÀþ°hûüm‚ üüüô­z 07ŸmlÌÒ·ŠB‡s­ãï͘1cãÆ/W=0p”––8p@‡Dýaooÿ"o:ÿÊÌ?àøÀþp€?èš«W¯noo¸î”ár¹4 _§¥¥eåÊ•fffÓ§O?wîܫцF£q¹\}«x†?®\¹Âçóy<^rr²P(œ6mÚ«yx;ƒÁزe ¦ÂÇÝÝÝMMMÓÒÒ***V¬XøßÿþW«^X,­ÓtËÒº­Ÿúùù=·B¨¾¾žÚT(žžžÑÑÑ:ôøÒùç?ÿ ‰ŒŒôööÖª‘úúz &K刽DÒÒÒt;ׯÎAœ:uÊÃà ˆˆˆˆ2ØÕÕ5|øðªª*2%55ÕÅÅ…ÉdîÙ³‡¬——çææ6|øpkkëØØXªñ£Gº¸¸°X¬ØØØãÇ;88Œ9rûöí„Ò9J¥ÑÑÑööö,+88X éÖÖÖW®\QÖÖÕÕÕÜÜL–Áš5k,--ÇŒ³iÓ&±X¬Q›¥¥%BÈÊÊŠÌ’H$‘‘‘l6{ôèÑ‘‘‘‰$''ÇÖÖ¶³³“Üw'''‘H¤’¥rÄ:äèèÈ`0¾ùæjG²³³GÑÓÓ£1ˆ?¯‡?*++ A%%%–––R©” ˆÔÔTWWW…BA¦,_¾\ $&&"„>|( MLLBBBx<^jj*BèÁƒdÍÀÀ@¡P˜””„ò÷÷ …GŽAuttPþØ»w¯««kuuuMMÍ;ï¼I„@ @‘§M#AAA^^^wîÜ©®®ž>>uuueee'&&Fc.^3Èd2kkëK—.ñÞ{ïíÞ½›J)..&B"‘é½½½µµµ"‘H.——””Pm"„È!‡¬©\®¯¯§ÎÁĉ³²²ÈÆýõW²ÜÙÙ‰¢Æ$ N¿uë¹™••Åáp4jS9Ó...|>Ÿ,¸¹¹!ììì¦L™BB¼?._¾L„\.Wºš¬––Æáp4ñçBg¼ÒûÛúúzGGG„N_ºtiVVVGGGaaaPPUÇÖÖ!dllLnš˜˜ÔÕÕùúúzxx¤¤¤(·fnnNÕT.+ÓÜÜìääD–'Mš´dÉ„“É´²²úõ×_•kVVVNŸ>ýÉ“'mmmr¹œÔ‰âp8<O£6šššlllÈûµùóç766"„ FhhèíÛ·ÃÃÃûsˆÈ.† yæ¼P»àââB‰Ñ|é¼:qøðá÷ߟÜôóó;wî\zzúìÙ³íììþôì¡‹ÅþþþQQQUUUñññÚvjkkÛÔÔD–oܸñõ×_“åE‹íÛ·Pz×*55U*•šššZYYÑéô††2~çÎ1cÆhÔ¦‹Å¢ÆK@PVV†ºwï^\\œ··÷¦M›ú#Xãm99` „êêêHõ|é ¬?ÚÛÛ[[[ïß¿_RR²dÉ’ÆÆFêSsæÌ‘Éd_}õUpp0¦…ÞÞ^‰Dbbb"‹¿øâ „PW—æÇ j$88øóÏ?¿uëÖ­[·Ö¯_ßÜüôy”_ýuIIIppð•+Wª««¿üòËÿûߤ{Œ6lØÐØØxëÖ­íÛ·+oêˆD"²°téÒmÛ¶577WWWûúú:tH¡P„„„DDDœ>}º°°0//O=+))éñãÇø½øä“O¸\neeågŸ}¶jÕ*Lðå£Ã5©ÿó {{û   ¶¶6å }ôÑðáÃ…B¡r õ/H•÷ïßoaaaooÈf³ûªI•©k|OOOdd¤­­í¨Q£•çMMMË—/·µµ577ûí·sss©—:;;ƒƒƒ---mll>ýôSêþE¥©T:{öl3332( ×®]Ëd2---CCC»»»<8uêT‰DBĹsçlll:;;U²ú³#IIIãÆc±Xb±Xc. q~ú\>û쳕+W¾x;o0'³:¬»èìý<¿²§§§¥¥åرc§OŸÖ‹ Ÿèçý¹òòò·Þz+$$äÝwßÕ‹€×…‘#G†……õ'8@ègü˜;w.¹àa³Ù ý ðþ>€üà8ÀðÇ3(:~OäMüñ Êå }«0$tXS{s¿9G³²Zgbb÷üН':œk¡ý7ïJKKî e=RW÷øÐ¡Ûý«U@€£¾µ :ücëâ7•ÿû¿ÓééææÃnÝÚelL×·ƒæOé鑿å]G‰D=EEµú–c(€?žRXøkO !4dÈÌÌkú–c(€?ž’™y•N§!„ärÅÅ‹·º»{õ­È  „P(.*ª•ÉžÞÙÊdò¬Ñ¯$üBùù5ÊË4-3óªõà„ÊÈxÆ r¹âçŸë;;»õ¥Çp ºÊʸê+ëçÏßÔ‹ƒüòò®««€ ˆ³g+õ¢Ç  ŒŒJõÁC¡ ®]kæñz‘d8 v47?¬©¹¯q™N§åæ^õ’ ŠÁîóçoôõƒLFÀ]Œ~>Ÿl8Ô×·¹¸ØP›­­ ÓaÞ~ÖN§··wm®'uúÞŸ{[ÛOÖ,Zä¦o!†Â`¿¾xÀð€üà8Àð€üà8Àð€üà8Àð€üà8Àð€üà8Àð€üà8Àð€üà8Àð€üà8ð÷ƒJJJvíÚ5@õõÎÖÖ|só.} ÑOOÏ;v Pãøûcmmm………¯×æÞ~»!#„˜úÒ_JKK™ÌT;à¿O—žž>Ð] füýý´}˜8Àð€üà8^p¹\ò)ê…lð¤Óh4.—«s_zäµñƒÁزe‹!7øFòÚøƒÅbíÞ½Û|#ѳ?rssÇŒ#B§OŸvvvîîîV(qqq“&M277Ÿ9sfqq19>cÆóóçÏ»»»›ššÚØØh<ëyyyS¦L6lØ„ Nœ8ž½@Ðh´cÇŽMš4iôèÑ»wï>qâÄøñãGE®[“5srr&NœÈf³7lØÐÛûÌÓO¥RiTT”••›ÍŽŠŠ’J¥ê.^¼Èáp˜Lflll_m>·#=@ iiiýiõêÕkÖ¬immµ²²*//'âÈ‘#l6;++«¥¥åÂ… vvv¡úúz²5õ‚P(411 áñx©©©¡(w!‰†šÀçó=jdd$‰¨t‚ BB¡0)) !äïï/ 9‚êèè kúøøÔÕÕ•••q8œ˜˜åô={ö,[¶ìîÝ»ÕÕÕÓ¦MÛºu«Ê>"„,X  333ŸÛ¦Jôüüüüüüús:tCÿþvvvS¦L¡Ž…««kJJ Uá‡~Àû£···¶¶V$Éåò’’²²rÆÆÆß~û­@ P(]]]r¹\ÅUUUAH$•r}}=Y³ººšÚ/‡£œîââÂçóÉrAA›››Ê>"„._¾L„\.n›*AüÑhèþÁ`0BCCoß¾NFÜÜþ|Ë”)Sð-˜˜˜ÔÕÕùúúzxx¤¤¤PqÚ0™Ìâââ²²2;;»¹sçþüóÏC†¨î¸¹¹9BÈØØX¥LáääD\\\x<žòKMMM666d_óçÏollTikk‹RéWc›˜Ž^=ú÷ǽ{÷âââ¼½½7mÚDFÆŒsóæŸÏ½}û6¾±XìïïUUUOÅ©±X¬P(222:;;?üðÃ… vvvj«“üçFÕÕÕ‘'›‚ÅbQ#–@ (++SO×8yÒØ&¦£Wžý¡P(BBB"""NŸ>]XX˜——‡ ‰ŠŠÊÉÉimmýñÇ·nÝŠo¤··W"‘˜˜˜ˆÅâ/¾ø!ÔÕõÌ8h4šOff¦P(”H$ÆÆÆ¦¦G¨YYIDAT¦ÚJýä“O¸\neeågŸ}¶jÕ*å—–.]ºmÛ¶æææêêj__ßC‡!„’’’?~¬C›˜ŽôÀÀ]ºú3ÿ8xðàÔ©S% Açγ±±éìì”H$_}õÕøñãÍÌÌfΜyêÔ)„±ÿ~ {{ûøøøÀÀ@6›­.ÆÑÑÑÄÄÄÅÅ%''G%)MYÔËdͤ¤¤qãÆ±X¬ˆˆ±X¬œ. ×®]Ëd2---CCC»»»_¤M• þ¾ùóÓç¢|&ôÂ@ÐØ¦½ùóSÀ<Ÿ‘#G†……½‚6¢£d?Ÿœžž0píèÏ܇8aüp€?àøÀþp€?þý¹ùóçtƒ™ššOOÏkýaooÿz}ùöuÄÓÓsÆŒ×þ®o0ÿp€?àøÀñÿ“ªN* IEND®B`‚XQilla-2.3.0/docs/simple-api/classxercesc_1_1MemoryManager-members.html0000644000151400015140000000703411653571063022752 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

xercesc::MemoryManager Member List

This is the complete list of members for xercesc::MemoryManager, including all inherited members.
allocate(XMLSize_t size)=0xercesc::MemoryManager [pure virtual]
deallocate(void *p)=0xercesc::MemoryManager [pure virtual]
getExceptionMemoryManager()=0xercesc::MemoryManager [pure virtual]
MemoryManager()xercesc::MemoryManager [inline, protected]
~MemoryManager()xercesc::MemoryManager [inline, virtual]
XQilla-2.3.0/docs/simple-api/classEventHandler.html0000644000151400015140000007437011653571064017131 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

EventHandler Class Reference

#include <EventHandler.hpp>

Inheritance diagram for EventHandler:

List of all members.

Public Member Functions

virtual ~EventHandler ()
virtual void setLocationInfo (const LocationInfo *location)
 Recieves a LocationInfo object that is owned by the caller, and will be updated with the current location information as the parse progresses.
virtual void startDocumentEvent (const XMLCh *documentURI, const XMLCh *encoding)=0
 Handles a document node as an event.
virtual void endDocumentEvent ()=0
 Handles a document node as an event.
virtual void startElementEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname)=0
 Handles the start of an element node as an event.
virtual void endElementEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName)=0
 Handles the end of an element node as an event.
virtual void piEvent (const XMLCh *target, const XMLCh *value)=0
 Handles a processing instruction node as an event.
virtual void textEvent (const XMLCh *value)=0
 Handles a text node as an event.
virtual void textEvent (const XMLCh *chars, unsigned int length)=0
 Handles a text node as an event.
virtual void commentEvent (const XMLCh *value)=0
 Handles a comment node as an event.
virtual void attributeEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)=0
 Handles an attribute node as an event.
virtual void namespaceEvent (const XMLCh *prefix, const XMLCh *uri)=0
 Handles a namespace binding as an event.
virtual void atomicItemEvent (AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)
 Handles an atomic item as an event.
virtual void endEvent ()=0
 Called when all events have been reported.

Constructor & Destructor Documentation

virtual EventHandler::~EventHandler ( ) [inline, virtual]

Member Function Documentation

virtual void EventHandler::atomicItemEvent ( AnyAtomicType::AtomicObjectType  type,
const XMLCh *  value,
const XMLCh *  typeURI,
const XMLCh *  typeName 
) [inline, virtual]

Handles an atomic item as an event.

Reimplemented in ContentSequenceFilter, EventFilter, and EventSerializer.

virtual void EventHandler::attributeEvent ( const XMLCh *  prefix,
const XMLCh *  uri,
const XMLCh *  localname,
const XMLCh *  value,
const XMLCh *  typeURI,
const XMLCh *  typeName 
) [pure virtual]

Handles an attribute node as an event.

Implemented in ContentSequenceFilter, EventFilter, EventSerializer, NSFixupFilter, QueryPathTreeFilter, and SchemaValidatorFilter.

virtual void EventHandler::commentEvent ( const XMLCh *  value) [pure virtual]

Handles a comment node as an event.

Implemented in ContentSequenceFilter, EventFilter, EventSerializer, QueryPathTreeFilter, and SchemaValidatorFilter.

virtual void EventHandler::endDocumentEvent ( ) [pure virtual]

Handles a document node as an event.

Implemented in ContentSequenceFilter, EventFilter, EventSerializer, NSFixupFilter, QueryPathTreeFilter, and SchemaValidatorFilter.

virtual void EventHandler::endElementEvent ( const XMLCh *  prefix,
const XMLCh *  uri,
const XMLCh *  localname,
const XMLCh *  typeURI,
const XMLCh *  typeName 
) [pure virtual]

Handles the end of an element node as an event.

Implemented in EventFilter, EventSerializer, NSFixupFilter, QueryPathTreeFilter, and SchemaValidatorFilter.

virtual void EventHandler::endEvent ( ) [pure virtual]

Called when all events have been reported.

Implemented in ContentSequenceFilter, EventFilter, and EventSerializer.

virtual void EventHandler::namespaceEvent ( const XMLCh *  prefix,
const XMLCh *  uri 
) [pure virtual]

Handles a namespace binding as an event.

Implemented in ContentSequenceFilter, EventFilter, EventSerializer, NSFixupFilter, QueryPathTreeFilter, and SchemaValidatorFilter.

virtual void EventHandler::piEvent ( const XMLCh *  target,
const XMLCh *  value 
) [pure virtual]

Handles a processing instruction node as an event.

Implemented in ContentSequenceFilter, EventFilter, EventSerializer, QueryPathTreeFilter, and SchemaValidatorFilter.

virtual void EventHandler::setLocationInfo ( const LocationInfo location) [inline, virtual]

Recieves a LocationInfo object that is owned by the caller, and will be updated with the current location information as the parse progresses.

Reimplemented in EventFilter, and EventSerializer.

virtual void EventHandler::startDocumentEvent ( const XMLCh *  documentURI,
const XMLCh *  encoding 
) [pure virtual]

Handles a document node as an event.

Implemented in ContentSequenceFilter, EventFilter, EventSerializer, NSFixupFilter, QueryPathTreeFilter, and SchemaValidatorFilter.

virtual void EventHandler::startElementEvent ( const XMLCh *  prefix,
const XMLCh *  uri,
const XMLCh *  localname 
) [pure virtual]

Handles the start of an element node as an event.

Implemented in ContentSequenceFilter, EventFilter, EventSerializer, NSFixupFilter, QueryPathTreeFilter, and SchemaValidatorFilter.

virtual void EventHandler::textEvent ( const XMLCh *  chars,
unsigned int  length 
) [pure virtual]

Handles a text node as an event.

Implemented in ContentSequenceFilter, EventFilter, EventSerializer, QueryPathTreeFilter, and SchemaValidatorFilter.

virtual void EventHandler::textEvent ( const XMLCh *  value) [pure virtual]

Handles a text node as an event.

Implemented in ContentSequenceFilter, EventFilter, EventSerializer, QueryPathTreeFilter, and SchemaValidatorFilter.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classATGMonthOrDerived__inherit__graph.png0000644000151400015140000002113111653571064023003 00000000000000‰PNG  IHDR›]›ÅˆÆbKGDÿÿÿ ½§“ IDATxœí{XW‡OA@0\B¸ˆ\Š7° )ÖZw««ŠT[êÇÅVñ)Bµ]·Ú} níÓ®UŠmÅ•€€¢]Ûr[妉Rå‘ ·¸!ä6ßc§iH$$Áãyþ83sæÌoæeÎd&—CÂ0 BOד 2 È(l £°¡?fC‡]½zU Qc²ÿþÀÀ@åuÆ6Êb±îÞ½»lÙ²IJ…P‘¼¼¼¨¨¨1«m°lÙ²ÜÜ\µ#!Ô‚D"§ºŽÂ2 È(l £°ŒÂƤ%IaddäççW__¯¤>†ao½õ–‰‰ÉdPÎÎÎ-[¶899™˜˜,Y²¤°°P'1ZZZÆùRvL&ó½~ý:‡Ãáp8L&ÓÍÍmÓ¦MJÞØéììû ‰’““­¬¬¶mÛöäÉEíòóówïÞ-;99ù›o¾ÁËOž+ªÀd2UÀ7Z^^Ža˜@ 477Ï;·  ¯ÖØØH”G¯Þßßàr¹rwG ÉäÛ·oã“®®®JŒÊÄsïæÌ™óí·ß¾ûh´¹¹/îÙ³Ç××—Xjhh(í›J¥Êì³¢ @Q|£÷îÝ“`hhÈb±FÇ“»ºµµõµkפ«ÕÔÔ¼üò˃ƒƒ> áó™L¦¡¡¡t榦&i£21ÆÜ;##£úúz¢Â­[·&˨F®£ÆÆÆï¼óÎ;w°ßÏ]Føær¹UUU2«(ª@¡P”WÐÓûÓ.ØÙÙµµµáåúúúO?ýTÉêk×®ýüóÏ1©&;;[([[[“Éd6›Ïomm9s&^‰D€GIoW&Ƙ{çääÔÐÐ@T¸s玒Õ'ƘÎU8G1 {ðà€Çãá“qqq7nlkkkhhðññÙ¹s§Ì± d6Š—“““,XÀb±X,–ŸŸ_TT”’Õ»»»---#""®]»ÖÐÐpðàAÀ¥K—ðU¶lÙÌf³Y,–§§çzzzß|óÍÿþ÷¿õëשsT&~``@ÑÖ¿üòK:~þüy‡sùòeggç1]öº†‰Åâ3fÜ¿Ÿäñx‘‘‘æææ–––ÑÑуƒƒ2ÂT¨€É;”ÃÃà vvvT*5<<œ¸LÊ]ð¶¶¶7ÚÙÙ™šš.]º´¨¨ˆØbÿÖ­[---mmm?øà¼>|ø°™™™‹‹Ë… ” …þþþ&&&ж.‰Ž9âêê:}úôeË–á}ƘGxë~ñ‹%yyµºN¤q 7záÂ-2™„—1 ܹóˆÍîÑm$M¹Ñœœj‘HBLR(äóçët˜G Àlô·ß:ÛÚz¥ç…bè;^˜ÖQ(²;øàAßíÛt’G;@kðÜÜZ¡P"3úŽZ£7o¶uwóFÏÇ;^ü~J 5ZXx‹B!Ë]ÔÓ3PSÃÖr­§Q±XRTT'cú£ÿ/Bû¨á9xïEžŸoll|ëÖ-%øúúlllðÉ'Ož¼óÎ;4ÍÞÞ>!!axxßJVV–‡‡‡••UJJÊéÓ§gÏžM¥R“’’€T¯+‰’““­¬¬¶mÛöäÉ%{$7'ÞÔ… æÎK§ÓãââFFFB¡011ÑÚÚšN§'&& …ÂÉ:°òQùaœç¨D"™={vzz:†aÿûß===‰E€7r¹ÜŒŒ @___EE…¥¥¥P(Ä0,;;ÛÓÓS"‘(iDæÔ‰ˆˆnmme2™óæÍ;x𠾕ððp—™™  ãñxééé€ÞÞ^¢…#GŽxzz2™L‹åãã“ ½2’›¯³jÕª¦¦¦ªª*WWW<@jjjHHH{{;“ÉôööÞ·oŸò#Ô;G5n´ªªJ__¿··Ã0|´G‹õlÛ”——c&ÍÍÍ"‘ÈÆÆ¦´´ð5kÖ¤¤¤(oDú@ 2™|ûöm|²  ÀÕÕßJ]]±érss3ÑÂܹs ðu‰2ŽŒQ¹9ñ:L&¯Ã`0ðîîîŸY\\¼hÑ"åGLM£ÿÅ䜜‘H$ýú…Á`Ì›7/ÛÙÙ( >I&“7lØPPP°`Á‚’’üL³œÇ‹Åb|ÒÕÕµ££/›šš[‘.KóàÁ777¼ìááááá¡d§å¸»»ãÚÚÚlmm‰ T*UIËê£Ùë¨X,f0GøøøxüðÙæõd„††æææúûûÛÛÛ§kkk2™Ìf?ûúÖÖÖ™3'0„¬][[^®¯¯ÿôÓO•×?SMMMøÿ+FknnÆO .—[UU5þTª òÙ=ž^·¼¼œL&?~ü˜˜sãÆ ð{ׇï?>Ÿ(‹D":nmm}êÔ©1ÁßÀÀ>Ë–-ÁÁÁl6›Åbyzz8p@ÑVˆ2Ñ&''/X°€Åb±X,??¿¨¨(éýZwtN¼NPPPsssMM›› ..nãÆmmm >>>;wîT~ÐÀT¾ŽÆÄĬZµJzŽD"qqqÙ»w/¦øXÇÆÆñx¼1 …þþþ&&&øüþþþ­[·ZZZÚÚÚ~ðÁCCCJ¶"ctxx8!!ÁÎÎŽJ¥†‡‡s¹\é-ʽ{‘ɉ×ÉÌÌœ5kFÛµk€ÇãEFFš››[ZZFGG*?hSÚ¨j|üñÇ[¶lÑDË“‹LÎɺgUÓèÔKbxx¸³³3++ëìÙ³ºÎ¢Œ©œsj=©¯®®~ùå—ß}÷Ý+Vè:‹2äæœ1c†úƒÈ«ÏÔ:Gûûûubl俤Óéiii:É#ÍÔ:GꃌÂ2 È(l¼(F!pT†¨X,9v¬T×)´„Zw/yyyJ>¤3u00°77c÷îUÀ¦ª>Zeee%ñvÕ''§µ²òñûï¿4gŽ™®³Œ ___ÕÖ…üQ¡Pìéùw>dÓ&Ÿ/¾Ø¬ë8þëhiiãàààâÅ[ÃÃþŒÏ~£7ñ÷Õ‡†„¥¥ºŽ£q 7:00üÓO·Åb €L&åçßÔu"¹QB'@$’”–6òxú¤i 7zîÜ éI±Xrù2SWa´ÌF{{ù×®5É<-’q 0ýá‡þôD"Á*+[zztI Àl4/¯vôã\‰tñâÔýf™ú@kôáÃþ[·ÚG??‘H$¹¹µ:‰¤ 5zñb=™,ç™3†«£½½Oû‘´´FÏ»!Iä.Â0 âŽwj}rl²èîÐ×'»»?û¶Éð°ðÉ“§66|ᤥ¥[GÑ4üOêEEõ±±ßuv~¡ë ÚÚ^÷…… d6QØ@Fa… d6QØ@Fa… d6QØ@Fa… d6QØ@Fa… d6QØ@Fa… d6QØ@Fa… d6QØ@Fa… d6QØ@Facbßñ>tèÐÕ«W5—FC ˜vuÙº¹5é:ˆ*ìß¿?00püõ'ö; ,ëîݻ˖-›`*cn{0×u “——5¡U&üËË–-ËÍÍèZÕPáGãÑu6QØ@Fa… d64b”$…““Ó¶mÛzzzÔovpp011qáÂ…¦¦¦K–,ùç?ÿ)‰dêääääqîÜ9uRÔl}ý”û}AMý.àõë×gÏž-‹›šš¾üòKooo‹ef&6›½téÒÞÞ^%  ,]ºÔÚÚ:55ÕÙÙùöíÛIIIÅÅÅ%%%d2™¨¶nÝ:‡¸ÿþ+¯¼‚—†íÝ»WåÝQÔ¬¥¥¥ÊmjŠ ú=ÎÑØÔö†I$’€€€(ª?ž1Í–/_.‰ˆ9|>ßÉÉ)##Cå6U@CÍ*L|”vm\GI$Rllì?ü€O^ºtÉËËËØØØÖÖ6%%àëë °±±Á+…ÂÄÄDkkk:ž˜˜( ÙÙÙ>§OŸž˜˜˜ÝÒÒB"‘JKKýõW¹ð:Dž¬¬,++«”””Ó§OÏž=›J¥&%%) —¸¸¸íÛ·ãe>Ÿoll|ëÖ-|[.\˜;w.N‹‹™P³j1!ÿª£†ÕÖÖš™™aÆãñ Þ}÷ÝŽŽŽììl@ww·Ì?~jjjHHH{{;“ÉôööÞ·o—ËôôôÈlèÚµkÖÖÖøêo¼ñFYYŸÏÇÉ´)= çñx™™™€°°0—žžèíí•@n;†UTTXZZ …B ò³³===% ^gÕªUMMMUUU®®®TÞ¬’#9ÑsTÛFGFF~ûí7>Ÿ/‹+**ðš2‡ÉÝÝÃáàåâââE‹)2ZYYI£ÑðÕ™L¦ô"åFëêê0 2e<ö芚‰D666¥¥¥†­Y³&%%…¨Cäa0®®®Ê›Ur$'jTK¿˜ÜÜÜìââ000hjjŠŠŠâóù^^^r+·µµÙÚÚ“T*ÕÌÌÌÆÆ¦¾¾~åÊ•Ò5ëëë/^Œ—ÝÝÝÇŸÇÔÔ@¡PdÊŠ(j‡L&oذ¡  `Á‚%%%ø‰ŽãææFóê ë(†a'NœøË_þ KLL¬««;~ü¸Üúøi‡ÿÇq¹Üªª*@DDÄ'Ÿ|"‹‰jƒƒƒ©©©«W¯Æ'¥•¨‰ÜŠ -,,ÌÍÍõ÷÷···'æãg* ©©ÉÎÎn¢ÍªŒ¦Œöôôtuu=zô¨¢¢býúõ÷ïߌŒŒƒ¡¡¡äädÀÀÀ³ÑWø|>^ذaÃG}ôàÁ&“¹zõ꯿þpàÀîîîàààü±¹¹¹°°ÐÇÇgæÌ™;vì˜ôðr(þÉ'ŸlݺUzþîÝ»[ZZjkk?þøã·Þzk¢ÍªÎ„úèñ_G """?~L,=zô¨………ƒƒÃñãÇÃÃÃétºP(ô÷÷711Á+ðx¼ÈÈHsssKKËèèèÁÁA|>ŸÏß³gϼyóŒ===>üôéSLÁ…òë(q®È-+  h[±±±FFF<OºNffæ¬Y³h4Ú®]»†††”7«äHN‰WF/üñ–-[ˆÉI¼gUÁ(œcIháááÎÎά¬¬³gÏê:Ë3Гzµ¨®®~ùå—ß}÷Ý+V3g̘£«HèU‹ÀÀÀþþ~™™t:=--M'y:Gá… d6QØ@FaãE1Z]ÍÖu-1á»—«W¯¾öÚkšˆ¢9ƒŽgçV]Ñ3ŠØà¹ãáCÓ¡!###+CCÙOšMqBCC&´Ê 1þ¨¯ïáöö¾øø×Vë:‹Æÿ:ÚØØ‰Ú—ó€ìðÍÏ¿A¡ö××·ë:ޯ܍D‚1µB¡ ¯O>¾N׉4äF««ÙýýÏ>!‰Ï»!KtIÓ@n´°°N_ÿ}ìשּׁ„üf£B¡øüù:‘è“R_Ÿ\XxS‡‘´ÌF+*îñù#ÒsD"qQQƒ@ðœÝ•N˜Ü$“e¿öôépyù]äÑй|™9úužž^~>Ì/´FKJñ›ÄbÉÏ?ß½ 5ZXxSÑóM@T\|G»q´œFy¼¡òò{JYBû¨Î'õ##¢®®ÿ“%%II••û‰9d²ž½ýó÷dãÎOwN›¦?kÖß§·²2HÏ8{Ýd6QØ@Fa… d6QØ@Fa… d6QØ@Fa… d6QØ@Fa… d6QØ@Fa… d6QØ@Fa… d6QØ@Fa… d6QØ@FaãOßf³Ù%%%ºŠ¢9nßæNž<©ë !::úOÓÒCn1 ¥Ò,zzÓ(º®ShбÇM+//×~,„ \¹råÿø‡ÌLt… d6QØ@Fa… d6Tÿͱï¿ÿþÔ©SQQQ[¶lÁ甕•:thtÍŒŒ WW×ŽŽŽcǎݹs‡B¡¼ôÒK‘‘‘...x…   ™3gž>}šDúãçp÷îÝ[SS“=sæLÕÉ]}xxøÛo¿­­­åp8ŽŽŽË—/ß¼y3™L½:Q¶¶¶^¸páŽ;ÌÌÌÆ³éG½õÖ[êܪ܂ŠF1 +++£Óéååå„Q??¿üü|‡ÃÙ¹s'^̘1£»»ûý÷ß8zô(àÇŒ‹‹;~üø¬Y³ð:]]]­­­®®®øäÀÀ@CCÃDSq8œØØØ .(©óôéÓ;v˜››ÇÄÄØÙÙÝ¿ÿ›o¾¹qãÆçŸ®§'Ûc;vÌÖÖV"‘<|ø0???:::++ËÄÄdÌ$&&&áááÍ?)¨ØëÞ¿¿½½ýÃ?liiéèèÀgN›6ÍÂÂÂÂÂÿG¶ø}}ýìììùóçÇÇÇ»¹¹¹¹¹íÚµkùòåÿùψ/^|åÊbòúõë‹-šh*‰DÂãñ”×ùþûïÍÌÌŽ=ºtéR{{ûåË—§¥¥uuu]¾|yte333 æååuèÐ![[Û¼¼¼ñ$¡R©²ç´…ŠFËÊÊ.\¸xñbGGDz²²1ë×ÕÕ…„„Hwª;vì #&W¬XqåÊâ‡D+**‰¥|>?%%eݺu¡¡¡'Nœ€   ’’’·ß~{íÚµ999€÷Þ{°aÃbÅ7nDDD¼ùæ›gΜÁçoÛ¶Mút444ܼysqqñ£G‚‚‚êêê6mÚÄb±dvD"­]»¶ªª Ÿ‰Diiiëׯ_¿~}ZZšH$’^ýÇÄ;íýû÷?~_E(¾ùæ›x £W—H$999[·n]³fÍÎ;ûí·1ª\T1Šw¹ÁÁÁ€€€€1ûz¡PØÙÙéää„O ØÙÙuæÍ›744ÔÚÚ ¬««óóó#–~ùå—===iii©©©µµµgÏžÅçÿúë¯_ýuLLLzzúÀÀ~ì ˆ«««322>üðÃÌÌLÇçóûûû‰¾ÀÕÕµ½ýÙpM¹¹¹ûöísss½#öööxùܹs'==ýóÏ?¯««;uê”ÜÕƒƒƒ+**ðÿÔÚÚÚiÓ¦-Y²Dîêùùù #::úôéÓ[·nUylwUŒÞ½{·»»; ÐÖÖvÿþ}%õy<†a†††øä)þÈ¡§€w¼•••óçÏŸ1c¾H$•••íÚµËÖÖÖÙÙ922²¸¸_ô·¿ýÍÄÄäõ×_Ç·2zÓ›6m266ö÷÷ (JH"‘$’g¿híååE¤UÄåË—wïÞM§Ócbbjjjä®þÊ+¯ðx¼{÷îJKKW¯^¿½zQQQllìòåË---}||Tî´UyeTVV&‹×­[GÌ)//Ÿ={¶¢úø.~N ¬]»VºÚŠ+Ž9²}ûv™.—ËåJ$℞9sfOO^¦Ñh}}…{aii z{ ‹–––Å‹KWkii™3g^vttTÔZGG£««+$$„X4}út¹«O›6ÍÏϯ¢¢ÂÉÉéúõëŠV‰DÒ‡³³³¢Ê™°Q‰DR^^þÞ{ïýõ¯Åçœ:uª¼¼<22Rú2) ‰Dòöö¾téÒ|@ÌÝWÏŸ?ÿéÓ§,ëÆ{öì!æ›››ëééq8ü…qgg'.H©RÄè +W®üþûï½¼¼ˆKéðððÙ³g‰ã«èÿð¢¢"bV*•úÅ_à·Fxg®hõàààÿûß®®®sæÌ±··W´úZ[[‰ý¼íIDAT;º¶¶6廦ˆ ÷ºL&“Ëå¾öÚkF¿³råÊŽŽŽ––%kýßÿýßÏ?ÿœžžÎf³[ZZ¾ûî»K—.Éì<Þñ=zÔÃÃCú¶O__?((諯¾âp8øÍÆÊ•+•lkhhHÉÒ·ß~›ËåÆÇÇ×ÔÔtttüòË/;vì ÑhÒ]Á“'Oúûû{{{’’’8ñjnùòå?f³Ù~øáùóçmqÉ’%|>ÿÛo¿•¾ÊŒ^}íÚµ'Nœ¸víZMMMVV–’½P„ÏѲ²2oooé#îææfggW^^.÷ÕŽ‹‹ËW_}•––VTTD£Ñ–,YòÕW_íܹS¦ZPPÐ… Ö¯_/3÷îÝÇŽ‹¥P(¯¾újDD„Ü­ØØØÌŸ??$$ä¿ÿý¯¢$ÆÆÆ'Ož XQilla-2.3.0/docs/simple-api/inherit_graph_12.png0000644000151400015140000000356211653571064016464 00000000000000‰PNG  IHDR¥(g­‹bKGDÿÿÿ ½§“'IDATxœí›[LÛÇלÒ -r³¥V0R}‘D¬…è«ZšJ@냣ÆËT0@J” †‰$bŒh0MÕÄ ˜jƒ}ê´‚ZAM‘KÚÒÛÌ~X{÷”NÁ Â>93¿§µV¾ÿ÷­YÿY3Ói‹$ hÃþí 0¬*Œßô‚ñ›^0~Ó‹˜ÐŽÑh¬««û·¦Â°(Šššš`wžßcccÏŸ?W*•«>+†áÍ›7‰‰‰¡#1Ô ŽŽŽÕšÃÊRRR6ÂÜ¿éã7½`ü¦Œßô‚ñ›^,Ýï«W¯"R__¿üIà8Ž¢¨D"áóù2™L§ÓÍÍÍ-9ÛçÏŸ¡Ž#‘XƬAh>Ÿ¿}ûv‹Å²rå¢d‰~“$ÙÖÖ&‹ÛÛÛJNN^<æÌ™3}}}£££---z½^«ÕF©ý-z{{óùƒÉ)‡a˜L&S©TäÛÈe- 4Œ‚wïÞ!ÒÝÝ øøñã"‘v»ý—9…B¡ÙlvF£X,ŽR}E€ÝnÿÝlK&¬ÜØØ`lllù™£_¥R©T*CG–¸¿ÛÚÚvîܹwïÞœœœà½Û€uëÖÁñééé£G&''gdd ( ¯Û MMM0F¡PŒŒŒPµ?Þ²eKll¬H$‚÷¿ß¯ÓéÄbqJJJyyùôôtØ©Œ¢¨\.ÿùóçBçùâÅ ±Xl2™¨%‚ܹsgóæÍ)))õõõ­­­‰D ßSú|>­V›–––ššªÕj}>µ›Íæp8`‰Á`ÈÏÏçñxYYY­­­ E†-Ëïj~”û› ‰DÒÜÜL’dUUUnn.õ¼ ¶ÃNÆÒÒÒ={ö|ùòð¼¼¼ÚÚZ’$Ÿ={–žžÎår‹ŠŠ¾~ýJMèt:9αcǾÿ~ÿþ}ÀøøxCCCnn.†aV«uÛ¶m(ŠUA͆‹Å‚ÏçƒÁû÷ïïééq8ÔP¨V«NçíÛ·%%%N§³¹¹“_»víàÁƒ£££†mݺµ²²2¬Ü?N:¥Ñh‚ë@•à8Îåroݺåp8ZZZbbbp¹œý½¿ÍfsLL <Ô·o߬Vk4~{½^‹e³Ù`·««kãÆ°í÷ûÍfó•+WòòòX,Öƒ´gppÇñ@ `4v»=;;»««  À6T]ºt Ì¿×PÏuƒÁƒ1 [¨öõõÁù‡µa@NNŽÃá€Uº»»år9µ\||üÀÀ@p2TÉää$›Í¾~ýúÔÔA.—+DŒ\m¿Ï;v0ÕÕÕaö|úô‰ê÷·oßn·v1 ãñx8Ž?|øÐï÷ÃA‚ jjjÒÓÓIʵA¯×ÊårFךÇãÁS-¨Ú½{÷®]»Ž9òßCtÿ†Á^¯w¡aˆmº ,rffæâÅ‹Áº%&“éСCqqq;vìxúôéB‘«ê·ßï‰DÁ«â… d2Ap>Ÿ$É—/_.´¿ß¿»=’J¥.— Aþþþ` “É”––¦år¹z½ž ·Û W3++Ë`0À€þþþººº  Çñ>p¹Üžžž¿ua¿)AFáwFFFppjjjppZÎjµ®Y³† Ø¥Jfgg_½zE’¤Çã¹{÷.‹Åš˜˜ˆ¹ªÏk¯_¿/--ÿ‡Ã‡Ûív‹Å" ÷îÝs:7nÜUá8`³Ù*•êìÙ³ÃÃÃ6›­ººæ)//W©TOž<êííEQT­V‡i=×ëåp8n·[§Ó\.WYYYUU•Íf³Ùl§OŸ†Oy¸¸¸ìììÊÊÊ“'OFùi>b‰h„¸|ùòÈȆaûöí»yó&5&!!ÁårÁc‰(A¤¸¸¸³³Óétz½^6›»Hò`ªß#Ôühö÷‰'Š‹‹CG‚J¥$IÖÕÕ …B©Tª×ëa*ŸÏWXXƒ'''ËÊÊ’’’D"ÑùóçáµÝï÷×ÖÖæççóùü 6TTTÀñ0mccãÚµk333›ššÔjujjêÜÜŠ¢ëׯjµzjjŠœ¿eÝn÷¦M›t:ÅþŽX‚Œb;NF“˜˜˜””tüøñ™™j¹@ 0<< »%íííR©”Ãáäääèõú…"Öe¨û!Cž,:::þÔ;†ÿà÷ß¡?h`ÞŸÓ ÆozÁøM/¿éã7½`ü¦Œßô‚ñ›^0~Ó‹ÿ/)**Zýy0¬V«U¡P„ŽÌó;33“ùóØÿ …þ&¼-§Ìý›^0~Ó ÆozÁøM/þ¨eÓ ©“¢§IEND®B`‚XQilla-2.3.0/docs/simple-api/InputSource_8hpp.html0000644000151400015140000000561511653571064016737 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

InputSource.hpp File Reference

#include <xercesc/util/PlatformUtils.hpp>
Include dependency graph for InputSource.hpp:

Go to the source code of this file.

Classes

class  xercesc::InputSource
 A single input source for an XML entity. More...

Namespaces

namespace  xercesc
XQilla-2.3.0/docs/simple-api/XMLEntityResolver_8hpp__incl.map0000644000151400015140000000003511653571064021002 00000000000000 XQilla-2.3.0/docs/simple-api/classxercesc_1_1DOMXPathNSResolver-members.html0000644000151400015140000000775611653571063023571 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

xercesc::DOMXPathNSResolver Member List

This is the complete list of members for xercesc::DOMXPathNSResolver, including all inherited members.
addNamespaceBinding(const XMLCh *prefix, const XMLCh *uri)=0xercesc::DOMXPathNSResolver [pure virtual]
DOMXPathNSResolver()xercesc::DOMXPathNSResolver [inline, protected]
lookupNamespaceURI(const XMLCh *prefix) const =0xercesc::DOMXPathNSResolver [pure virtual]
lookupPrefix(const XMLCh *URI) const =0xercesc::DOMXPathNSResolver [pure virtual]
release()=0xercesc::DOMXPathNSResolver [pure virtual]
~DOMXPathNSResolver()xercesc::DOMXPathNSResolver [inline, virtual]
XQilla-2.3.0/docs/simple-api/RegexGroupStore_8hpp__incl.png0000644000151400015140000001742111653571064020545 00000000000000‰PNG  IHDR¸u³©c:bKGDÿÿÿ ½§“ÆIDATxœíÝi\×Úð–Ù„ KÝ n(*¢•_ÅBE¯)ZPŠ`ëÖŠ!.UqEP¹XP¨ŠøZ-UÑRpGkQA½[eQ°ÂIæý0½sc2IPÈóÿ&sæ}º¿¿?NWzE®®®iiiVVVJß2Pe0¢T/ñññgΜ9sæÌÑ£G­­­·oßÞ­îÕÕÕ­ZµÊÌÌlÿþý{öì177þ믿”^ÑÊËËwìØ‘‘‘Áf³oܸ‘˜˜ˆª­­õòòRzu@Ý@¢T/FFF&&&&&&ÖÖÖAAAUUUMMMÝW]ZZÚØ±cCBBX,‹ÅZ½zµ³³ó‰'”^Ñõë×—/_Îb±ŒŒŒìí탃ƒoܸ‰D\.WéÕu‰R}ijjjiiéééá ‚ÄÄĹsçÎ;711Q `vîܹE‹yxx„„„ܺu ¿x—^óæÍ›>>>ÍÍÍ¡üüü… ¶··#„Š‹‹½½½i4QéÊ•+çÏŸª®®vuu-..öõõ---mii‰ŠŠòòòš7oÞ¡C‡ø|>¾^Šx¿¸qãÆÂ… çÎûý÷ßwvv"„tuu³²²ˆœhooŸ‘‘úúë¯BŸþ9¾\V-DÒM“ÞowïÞõ÷÷÷ôôLOO—’¬8A/÷(ÕK{{;ÇCµµµ¥¦¦Î˜1C[[+33³¶¶6)) Ï&ÇŽ³´´LMMe³Ùǯ¨¨ˆ•µæòå˯\¹’˜°k×.ƒÑÙÙYSS3dȼ^/N·´´$â9uêÔ† X,Ö¾}û8Nbb"Ç‹ˆˆÐÕÕuss“ÕŠ¬¬¬Ý»w777GFF|õÕWaaa{öìñññ7nœ£££‹‹‹¹¹9BèàÁƒgϞŠÆÅÅ‘ÖB„AÚ4‰Úoß¾}øðáßÿ}ëÖ­žžž¤!ᛕŽóýŽ  Œ(Õ˲eËÜÝÝÝÝÝ}||.]ºäëëK¼uáÂ…5kÖ0™ÌaÆÞ¹sçÌ™3AAA“&M244œ8qââÅ‹e­‰Z½zuqqqhh¨——×È‘#B\.Ã0ƒ—rCTºbÅŠ &hiiýú믫W¯¶°°6lØâÅ‹åÏ ±råJkkëQ£F-[¶ _ÓÑÑ1###..nìØ±yyy ,ÈÏÏ—(%dÕ‚‡Á`0H›&Á××WWWwêÔ©!|M’¬… 7‚¥z!¾±íèèHNNŽŽŽNHHÀßzùò¥··7±¦žžž@ :t(±„J¯‰Ò×ן={öñãÇ÷íÛ‡/711¡ÓéUUU, !TPP€jnnþì³Ïˆ²ƒ B544ˆD"b¤ieeU__/¶Ä7NÖÖÖDñúúúööö›7oº¸¸Œ5jÔ¨Q .LIIILLœ>}ºx)9µàaÈjš„ „Äï'H‡$g!è Qª©~ýúÍš5+77Ã0üœ744ŒÅÓhKK ‡ÃÙ²e˳gφ †!¾­–^!TWW÷ÓO?Mœ8ñàÁƒ›6mBÑh4‡ÜÜܵk×õâé’ ¥¥…266ÖÐШ­­BèÒ¥KmmmÄMF\|||uuõüqäÈ‘3fèèèÌœ9sûöíEEEµµµ=:tèøpo#i-‘H7 !ôóÏ?·¶¶Êß™!ÉYz#Qª/333]]].—«««‹Zºti||üòåËi4Ú´iÓétºP(Œmjj²³³ Љ‰!]3++«±±ÑÏÏOKKkíÚµû÷ï;vlÿþýmll8˜˜xîÜ9SSÓI“&8pà›o¾‘fÍš5ñññAAAÚÚÚŸ|ò þ¸øÒ¥K<˜––¶jÕªk×®+»¹¹­[·®½½°!Äf³SSS>\]]mllìêêºhÑ"„ÐÀÇŽëíí}þüyÒZ$®ˆ¥›†Ú»wïøñãI/Ãe…„oV:NÐKÁĽ}F Wî|”·nÝb2™Äi®^½Š'#%Vñ¶ª««$®ß©EÒ;ĉÏG ç£j‚Ko SeeedddyyyGGÇãÇ“““=<<¨ À¥7é‹/¾hooß¼yscc£……ŧŸ~J<6H===Êc@’ Æ Þ\z÷Ýqé z\z«2¸ô Q€(@H” $JP%(õ4mذaÆÆÆT"“@ÀÐÒjWçäkhh¨¬¬„óQ5Áç}ļyó¨A& C55ý_¾ìÏb5š™µQC}½ny¹ÑàÁÍ––Íd³ÿ¨„‰'R #Jн**êÖ¬Iô¨&,lVP«¦&5w{„BQbbALÌE;;˸8[[&%a€^ îQ‚î"a ù3fÄ¢¼¼u«VM§*K"„455V­š~ñbˆ@ š1#&!!_$‚!è*Q‚nñ矯ƒƒO’;;…?üP}aüøAqq † 1¥:"Ð @¢J†aXzzÑŽÙÆÅùO˜0ˆêˆHÜ»÷|ÍšôW¯¸[¶|æï?…tÒr(2½|ÙòãÕ«OV®ü$4tV¿~ªûmaG‡`ïÞ‹‡ý:mÚˆýû¿8Ðꈀê‚D ”æôéß¶lùÉÄD/.nÁ¤ICP¿ýölÍšNkDÄç>>ŽT‡T$J NëÆ™¹¹üý§lÝꥯßêˆÞBssûÎçÒÓ‹fÏ·{·‰‰¼ùÔ$Jð¾òò²Ù§455öïÿÂÅe$Õá¼£ÂÂ?BB~ EÑÑóÿõ¯1T‡T $JðîššÚØìÓ99÷œ6oö40С:¢÷Âåò""rÒÒnùø8îÚåÓ»ÆÅ [A¢ïèúõò“mmü¨¨y³g£:¥Éɹ¿qc¦®.=6vÁGÙRP (Á[kkãoÛ–•ž^ô¯‰ŽžojªOuDJV_ß¼~ýé¼¼‡þþS¶m›£«K§:"@1H”àíܹS¹f͉ÆF^tô_°sgNròµ¾:Iš*xýº…Í>•—÷pÉç-[<étx~ wƒD©^›œ|ÍÜÜàêÕýûÿ3¸¸~½líÚE"lÿþ/>þxµ‚÷TXøÇºu´ØX¿©SYøB.·}Ú´ÝuuÜ¥KwîüœÚÕŒ({‡Ÿ~*>vì:BˆÃiݸ1!ÔÖÆg³Oùú&ººŽ,(XY²pqYP°ÞÕu¤¯ï!6ûT[!´qcfCC+B(9ùzVV1Õ1ª)Qöýõ÷ôéÑ<?V4í»ï<33«©iŒŒüÜÛÛ‘ê’efÞݼù¬••‘·÷¤ÈÈü$¥ÑŽ=?Ÿ=xðªT;(U]g§ÐÝ}ÿ“'¯‚¦TÐРõë§=a ï¿÷‡GðúªÚÚÆo¾I»ÿEGG'ñĵµ5†xþ|ˆ¶¶&µá©¸ôVu‘‘¹Ož¼$²$BH$Â:;…ººtÈ’}˜……‘®n¿ÎN!‘%B¢'O^îÚ•Ka`ê ¥JËË{xøð@r@˜ŸÿøÌ™»”Dz@fæÝ_ýø$N ýðÕ¼¼‡”D¥¶àÒ[u½zÅuq‰jnnSh4¤¯Ï¸vm“Ù¿çcݪ®®yêÔ]­­í¤g§†ÍÀ@§°pú#J%a_ýmm|Ò,‰ÒÐÐhnn Ë€º>ðÐÐ[ZÚ54ÈOO‘kiéX¹òÿdõ  tšÛ¶m£:@"6öRfæ]‰‰ 55itº–P(20Ðqs½té´%Kœ á¿H÷)4ÍÑq(‹e®­­õò%—Ïô맅Ј"VSÓ ¡Asr²¥.R5—ÞªèêÕ'~~Iÿ}(„¦¥EëìéêÒ]\Fº¸Œtvˆ¨¿þúûÚµ²ÂÂ? ÿhkãkkk "¢oœ<8mýŽ7a„ ›6m nllD555}ýõ×ááácÇŽE577;::Þ¾};**ª¸¸xÆ iii3gÎ …ï¶ßnÞ¼Yû&å6ª²²ÒÔÔT¹Ûr཈ô-ñc!«·t¥ö¼[VUU;vŒËå:88à‘Ré³óêÕ«‚‚LÙÊËËñŠˆrxxx´µµueMjɉo†acÆŒY±b†aAAA'Näóùø:¡¡¡ÎÎ΀(ÕÒÒ2dÈÄÄDé*î „Pyyù{·I91t_í>|øð¡êl§'½Hé±XØ•NØÝ$:†H$š6mÚÖ­[e­ÿ¶g}÷u¼‚‚‚W¯^‰/yëå¹s第¬ðŸ„Ÿ>~Ô¨Qýû÷wrr*((ÀGÅr.sss'L˜ ««kaa…/|ýúµžžžŽŽÎ”)SBDÿ½¦ÈÏÏ4hÐõë×I Òh´äääQ£F™™™EEE¥¦¦:ÔÐÐpË–-ø aaaæææL&3,,¬³³ÓÉÉ)66!Äáp444BCCBB¡ÐØØøçŸF566.Z´ÈÔÔÔÚÚ:44´½½]"â“&44tüøñ¯_¿oBˆN§§¤¤$''ïÞ½ûرc)))ÚÚÿüX;--mëÖ­ššÿ›Ð_OOÍf§§§¿Ã~{«ƒ…o?;;{ĈL&388¸££Ca{Y,qD¤]ºtÉÖÖÖØØx÷îÝÄ!“¨BV½*‚t_!²ž#¾[ ÃÃà dfföå—_Ã%éR¡œœ{{{ƒ1lذÔÔT„@ -Nô"ñÎ@¼–>;$ÚÒÅNØ­M“F£Ñ‚‚‚ð“‹t;âíêâ6{®ã‰gÍ.Ž(¿üò˯¾úêåË—æææ·o߯0,))‰Édž={¶¦¦æçŸ¶¶¶FIˆˆ\.—N§/Y²¤ªª*-- !TWW‡aXrrrjj*öæg þúÓO?ýõ×_kkkI "„üüü¸\î‘#GBóçÏçr¹IIIx§Á0lÏž=ÞÞÞÏŸ?/))qppذaÃŽ;<<<0 ËÎÎ600pppÀ0ìîÝ» £µµÃ0ÿéÓ§?}ú´¤¤d̘1Û¶mäþýû!‘HDdIXâ­À0,##ÃÖÖ¶‹í%í¡ÂÂB ÄB!i¤ I7HèáD)½¯0²ž#Þ#Fœ={÷ñãÇÄkéRG[[{ïÞ½ "‘¨¹¹Y(Ê*.çDèÊ®tÂîn¦(Qʪ_"k›âº¯ã)'Qb¶cÇMMMb[:::÷ïß'Þ½wïžüD‰aXvvöÔ©SǵW^^ÞÜÜüÙgŸáïJwâÆŠtAìÍCBúšÁxãÔ†††B¡ÐÜÜüÆŽŽŽEEE“'OÎÎÎvwwOHHÀ0ìÅ‹!‡o§¤¤„Á`ˆG‚¿vuuuqqùꫯðÕÄ›€KMM544¼rå ƒÁÈÊÊ"–8ð—_~‘Ø«œ:uêÛî7LÑ͉ƒ…ohÚƒ FÛKº}„PYY™ø'­‚t¡¬˜q=Rb_ad=G|·0ŒÒÒRéíH—Â0ìúõë>>>zzzÎÎÎçÏŸ—U\Ö‰PVVÖ•DÙõNØ­MÃȺå‰'&Nœ(¿vbeÒmŠë¾Ž§„{”¡/^ÄÇÇ»¹¹­[·_beeõàÁb…“¾ðx¼ùó燅…µ²²—“““˜˜øã?H7¡¦¦&888&&fÚ´iáááÿý7þ–¿¿ÿÎ;ñOB„ŸŸßÉ“'£¢¢üüüÞv¿É'}°pxïA•••YZZv±½²ÞT•¨BÎBAº¯¤{¾ß-–––þù'¾äþýû‘‘‘²Jñx<‘Htúôi‡³téROOO‡CZ\úDÀŸ«®®îJ+ºÞ »µiÒavèÐ!üü’S;®‹Û칎'ž5»2¢ …nnn;wîäp8Z¾|¹¬R<Á`dffÖ××ÿðà ƒÇã‘ïEøƒ‡Gmjjš;w®xÀ…t'éz'ìÖ¦abݲªªª°°ÐËËËÚÚšè6òk—µÍžéxJ¸ôþþûïLJÎúé' ‡ÃçówìØ1tèP}}}''§'NÈO”†íß¿ßÄÄäƒ>8xð ŸŸŸ±±1~s'+%Id2™¤»Lâ5—Ë]¼x±±±ñ€V¬X]ÓØØ¨¥¥…ßánmm¥Óél6›¨ˆÃá,\¸pÀ€k×®åñx²¢âñxÇß´i“xRRRúõë'~ûòÎ;™™™øŸ---ëÖ­3f ƒÁ°±±ùî»ï>þøc__ß·ÚoDóI?I¾µ#GŽ <ØÔÔtõêÕx”ßÞÎÎΩS§êëëËÙÉØ›ýU¢ YõÊÑ“‰’t_ad=G|·´··‡††ZZZúùù544àËIû[FF† N9rdvv6iq>Ÿ/Þ‹0 ‹ˆˆ022²±±ÉÎÎÆë?D¢¸üNØ­MÃÞì–|ð¿¿¿xö‘_»œmö@Ç“N”$3œ¿ÿĽ, “qYø|~qq1þD÷é£CZÅ;Ô‹ßÃQÊ çJÙPqÊêx………3œÃo½UNïî, x(ÕŽA```ÏWÑõ5×}¯[.½P ¸ô”€Koxk(@H” $JP%( %½¨¦¦¦çã@Z{{»ÄÔ ï³)èØà‘$J|’T²%>G§R6Ô ~hòÁ=JP%(‰€D ü?T˜11ÜŠ„IEND®B`‚XQilla-2.3.0/docs/simple-api/ATBooleanOrDerived_8hpp__dep__incl.md50000644000151400015140000000004011653571063021725 0000000000000097ff7533c3b23e6389bad5901cb717cdXQilla-2.3.0/docs/simple-api/inherit_graph_45.map0000644000151400015140000000027111653571064016455 00000000000000 XQilla-2.3.0/docs/simple-api/XQillaConfiguration_8hpp_source.html0000644000151400015140000002214011653571063021750 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

XQillaConfiguration.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef XQILLACONFIGURATION_H
00021 #define XQILLACONFIGURATION_H
00022 
00023 #include <xqilla/framework/XQillaExport.hpp>
00024 #include <xqilla/simple-api/XQilla.hpp>
00025 
00026 #include <xercesc/framework/MemoryManager.hpp>
00027 #include <xercesc/util/XMemory.hpp>
00028 
00029 class DocumentCache;
00030 class SequenceBuilder;
00031 class ItemFactory;
00032 class UpdateFactory;
00033 class URIResolver;
00034 class ASTToXML;
00035 class StaticContext;
00036 class DynamicContext;
00037 
00038 class XQILLA_API XQillaConfiguration : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory
00039 {
00040 public:
00041   virtual ~XQillaConfiguration() {}
00042 
00043   virtual DocumentCache *createDocumentCache(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr) = 0;
00044 
00045   virtual SequenceBuilder *createSequenceBuilder(const DynamicContext *context) = 0;
00046 
00047   virtual ItemFactory *createItemFactory(DocumentCache *cache,
00048                                          XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr) = 0;
00049 
00050   virtual UpdateFactory *createUpdateFactory(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr) = 0;
00051 
00052   virtual URIResolver *createDefaultURIResolver(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr) = 0;
00053 
00054   virtual ASTToXML *createASTToXML() = 0;
00055 
00056   virtual void populateStaticContext(StaticContext *context) {}
00057 
00058   virtual void populateDynamicContext(DynamicContext *context) {}
00059 
00060   virtual void testInterrupt() {}
00061 };
00062 
00063 #endif
XQilla-2.3.0/docs/simple-api/StdOutFormatTarget_8hpp__incl.md50000644000151400015140000000004011653571063021070 0000000000000041e38574172c3451b1c113ca1dc25bc7XQilla-2.3.0/docs/simple-api/XQillaConfiguration_8hpp__dep__incl.md50000644000151400015140000000004011653571063022237 000000000000004af82e8f310331af5c78c71a6f326391XQilla-2.3.0/docs/simple-api/XMemory_8hpp__incl.md50000644000151400015140000000004011653571063016726 0000000000000075ec78bc90422a3ca4c62c54839f69faXQilla-2.3.0/docs/simple-api/inherit_graph_49.map0000644000151400015140000000024111653571064016456 00000000000000 XQilla-2.3.0/docs/simple-api/inherit_graph_34.md50000644000151400015140000000004011653571063016354 000000000000001221ea68a25bcc21bf39279086f2ef3aXQilla-2.3.0/docs/simple-api/LocationInfo_8hpp__dep__incl.map0000644000151400015140000000056711653571064021010 00000000000000 XQilla-2.3.0/docs/simple-api/SchemaValidatorFilter_8hpp_source.html0000644000151400015140000006405411653571063022254 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

SchemaValidatorFilter.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _SCHEMAVALIDATORFILTER_HPP
00021 #define _SCHEMAVALIDATORFILTER_HPP
00022 
00023 #include <vector>
00024 
00025 #include <xqilla/events/EventHandler.hpp>
00026 
00027 #include <xercesc/framework/XMLDocumentHandler.hpp>
00028 #include <xercesc/framework/XMLErrorReporter.hpp>
00029 #include <xercesc/validators/schema/SchemaValidator.hpp>
00030 #include <xercesc/validators/schema/identity/IdentityConstraintHandler.hpp>
00031 #include <xercesc/internal/XMLScanner.hpp>
00032 #include <xercesc/util/RefHash3KeysIdPool.hpp>
00033 
00034 class DynamicContext;
00035 class LocationInfo;
00036 
00037 #if _XERCES_VERSION < 30000
00038 typedef XMLSSize_t XMLFileLoc;
00039 #endif
00040 
00048 class XQILLA_API SchemaValidatorFilter : public EventFilter,
00049                                          public XERCES_CPP_NAMESPACE_QUALIFIER XMLScanner,
00050                                          private XERCES_CPP_NAMESPACE_QUALIFIER XMLDocumentHandler,
00051                                          private XERCES_CPP_NAMESPACE_QUALIFIER XMLErrorReporter
00052 {
00053 public:
00054   SchemaValidatorFilter(bool strictValidation, EventHandler *next, XERCES_CPP_NAMESPACE_QUALIFIER GrammarResolver *grammarResolver,
00055                         XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm, const LocationInfo *info);
00056   virtual ~SchemaValidatorFilter();
00057 
00058   void reset();
00059 
00060   virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding);
00061   virtual void endDocumentEvent();
00062   virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname);
00063   virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname,
00064                                const XMLCh *typeURI, const XMLCh *typeName);
00065   virtual void piEvent(const XMLCh *target, const XMLCh *value);
00066   virtual void textEvent(const XMLCh *value);
00067   virtual void textEvent(const XMLCh *chars, unsigned int length);
00068   virtual void commentEvent(const XMLCh *value);
00069   virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value,
00070                               const XMLCh *typeURI, const XMLCh *typeName);
00071   virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri);
00072 
00073 private:
00074   // XMLScanner
00075   virtual const XMLCh *getName() const { return 0; }
00076   virtual XERCES_CPP_NAMESPACE_QUALIFIER NameIdPool<XERCES_CPP_NAMESPACE_QUALIFIER DTDEntityDecl> *getEntityDeclPool() { return 0; }
00077   virtual const XERCES_CPP_NAMESPACE_QUALIFIER NameIdPool<XERCES_CPP_NAMESPACE_QUALIFIER DTDEntityDecl> *getEntityDeclPool() const { return 0; }
00078 #if _XERCES_VERSION < 30100
00079   virtual unsigned int resolveQName(const XMLCh *const qName, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &prefixBufToFill,
00080                                     const short mode, int &prefixColonPos);
00081 #endif
00082   virtual void scanDocument(const XERCES_CPP_NAMESPACE_QUALIFIER InputSource &src) {}
00083   virtual bool scanNext(XERCES_CPP_NAMESPACE_QUALIFIER XMLPScanToken &toFill) { return false; }
00084   virtual XERCES_CPP_NAMESPACE_QUALIFIER Grammar *loadGrammar(const XERCES_CPP_NAMESPACE_QUALIFIER InputSource &src,
00085                                                               const short grammarType, const bool toCache) { return 0; }
00086 
00087   virtual void scanCDSection() {}
00088   virtual void scanCharData(XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &toToUse) {}
00089   virtual EntityExpRes scanEntityRef(const bool inAttVal, XMLCh &firstCh, XMLCh &secondCh,
00090                                      bool &escaped) { return EntityExp_Returned; }
00091   virtual void scanDocTypeDecl() {}
00092   virtual void scanReset(const XERCES_CPP_NAMESPACE_QUALIFIER InputSource &src) {}
00093   virtual void sendCharData(XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &toSend) {}
00094 
00095   // XMLDocumentHandler
00096   virtual void startDocument() {}
00097   virtual void endDocument() {}
00098   virtual void resetDocument() {}
00099 #if _XERCES_VERSION >= 30000
00100   virtual void startElement(const XERCES_CPP_NAMESPACE_QUALIFIER XMLElementDecl& elemDecl, const unsigned int urlId,
00101                             const XMLCh* const elemPrefix,
00102                             const XERCES_CPP_NAMESPACE_QUALIFIER RefVectorOf<XERCES_CPP_NAMESPACE_QUALIFIER XMLAttr>& attrList,
00103                             const XMLSize_t attrCount, const bool isEmpty, const bool isRoot) {}
00104   virtual void docCharacters(const XMLCh* const chars, const XMLSize_t length, const bool cdataSection);
00105   virtual void ignorableWhitespace(const XMLCh* const chars, const XMLSize_t length, const bool cdataSection) {}
00106 #else
00107   virtual void startElement(const XERCES_CPP_NAMESPACE_QUALIFIER XMLElementDecl& elemDecl, const unsigned int urlId,
00108                             const XMLCh* const elemPrefix,
00109                             const XERCES_CPP_NAMESPACE_QUALIFIER RefVectorOf<XERCES_CPP_NAMESPACE_QUALIFIER XMLAttr>& attrList,
00110                             const unsigned int attrCount, const bool isEmpty, const bool isRoot) {}
00111   virtual void docCharacters(const XMLCh* const chars, const unsigned int length, const bool cdataSection);
00112   virtual void ignorableWhitespace(const XMLCh* const chars, const unsigned int length, const bool cdataSection) {}
00113 #endif
00114   virtual void endElement(const XERCES_CPP_NAMESPACE_QUALIFIER XMLElementDecl& elemDecl, const unsigned int urlId,
00115                           const bool isRoot, const XMLCh* const elemPrefix=0) {}
00116   virtual void docComment(const XMLCh* const comment) {}
00117   virtual void docPI(const XMLCh* const target, const XMLCh* const data) {}
00118   virtual void startEntityReference(const XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityDecl& entDecl) {}
00119   virtual void endEntityReference(const XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityDecl& entDecl) {}
00120   virtual void XMLDecl(const XMLCh* const versionStr, const XMLCh* const encodingStr, const XMLCh* const standaloneStr,
00121                        const XMLCh* const actualEncodingStr) {}
00122 
00123   // XMLErrorReporter
00124   virtual void resetErrors() {}
00125   virtual void error(const unsigned int errCode, const XMLCh* const errDomain, const XMLErrorReporter::ErrTypes type, const XMLCh* const errorText,
00126                      const XMLCh* const systemId, const XMLCh* const publicId, const XMLFileLoc lineNum, const XMLFileLoc colNum);
00127 
00128 private:
00129   void processStartElement();
00130   void processAttrs(XERCES_CPP_NAMESPACE_QUALIFIER XMLElementDecl *elemDecl);
00131 
00132   bool switchGrammar(const XMLCh *uri);
00133   bool laxElementValidation(XERCES_CPP_NAMESPACE_QUALIFIER QName* element,
00134                             XERCES_CPP_NAMESPACE_QUALIFIER ContentLeafNameTypeVector* cv,
00135                             const XERCES_CPP_NAMESPACE_QUALIFIER XMLContentModel *cm,
00136                             unsigned int parentElemDepth);
00137   bool anyAttributeValidation(XERCES_CPP_NAMESPACE_QUALIFIER SchemaAttDef* attWildCard, unsigned int uriId, bool& skipThisOne, bool& laxThisOne);
00138   XERCES_CPP_NAMESPACE_QUALIFIER XMLElementDecl *createElementDecl(unsigned int uriId, unsigned int currentScope,
00139                                                                    bool laxThisOne);
00140 
00141   const LocationInfo *info_;
00142 
00143   XERCES_CPP_NAMESPACE_QUALIFIER SchemaValidator *fSchemaValidator;
00144   XERCES_CPP_NAMESPACE_QUALIFIER SchemaGrammar *fSchemaGrammar;
00145   XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer fContent;
00146   XERCES_CPP_NAMESPACE_QUALIFIER IdentityConstraintHandler *fICHandler;
00147   XERCES_CPP_NAMESPACE_QUALIFIER RefHash3KeysIdPool<XERCES_CPP_NAMESPACE_QUALIFIER SchemaElementDecl> *fElemNonDeclPool;
00148 
00149   bool strictValidation_;
00150   bool errorOccurred_;
00151 
00152   XERCES_CPP_NAMESPACE_QUALIFIER ElemStack::StackElem *parentStack_;
00153   unsigned int elemDepth_;
00154   XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer prefix_;
00155   XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer uri_;
00156   XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer localname_;
00157   bool elementToProcess_;
00158   const XMLCh *xsiType_;
00159   unsigned int attrCount_;
00160 };
00161 
00162 #endif
XQilla-2.3.0/docs/simple-api/VariableStore_8hpp.html0000644000151400015140000000532711653571064017221 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

VariableStore.hpp File Reference

#include <vector>
#include <xqilla/framework/XQillaExport.hpp>
#include <xercesc/util/XercesDefs.hpp>
Include dependency graph for VariableStore.hpp:

Go to the source code of this file.

Classes

class  VariableStore
 The pure virtual base class for accessing variables at runtime. More...
XQilla-2.3.0/docs/simple-api/ExternalFunctionResolver_8hpp_source.html0000644000151400015140000001254711653571063023052 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ExternalFunctionResolver.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _EXTERNALFUNCTIONRESOLVER_HPP
00021 #define _EXTERNALFUNCTIONRESOLVER_HPP
00022 
00023 #include <xqilla/framework/XQillaExport.hpp>
00024 
00025 class StaticContext;
00026 class ExternalFunction;
00027 
00028 class XQILLA_API ExternalFunctionResolver {
00029 public:
00030   virtual ~ExternalFunctionResolver() {};      
00031 
00034   virtual ExternalFunction *resolveExternalFunction(const XMLCh *uri, const XMLCh *name, size_t numArgs, const StaticContext* context) = 0;
00035 };
00036 #endif
XQilla-2.3.0/docs/simple-api/Collation_8hpp_source.html0000644000151400015140000001433111653571063017755 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

Collation.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef COLLATION_HPP
00021 #define COLLATION_HPP
00022 
00023 #include <xqilla/framework/XQillaExport.hpp>
00024 #include <xercesc/util/XercesDefs.hpp>
00025 
00026 class Sequence;
00027 class DynamicContext;
00028 
00029 class XQILLA_API Collation
00030 {
00031 public:
00032   virtual ~Collation() {};
00033 
00034   virtual const XMLCh* getCollationName() const = 0;
00035   virtual Sequence sort(Sequence data, const DynamicContext* context) const = 0;
00036   virtual int compare(const XMLCh* const string1, const XMLCh* const string2) const = 0;
00037 
00038 protected:
00039   Collation() {}
00040 };
00041 
00042 #endif
XQilla-2.3.0/docs/simple-api/classExternalFunction-members.html0000644000151400015140000001172111653571063021460 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ExternalFunction Member List

This is the complete list of members for ExternalFunction, including all inherited members.
execute(const Arguments *args, DynamicContext *context) const ExternalFunction [virtual]
executeUpdate(const Arguments *args, DynamicContext *context) const ExternalFunction [virtual]
ExternalFunction(const XMLCh *uri, const XMLCh *name, unsigned int numberOfArgs, XPath2MemoryManager *mm)ExternalFunction [protected]
getName() const ExternalFunction [inline]
getNumberOfArguments() const ExternalFunction [inline]
getURI() const ExternalFunction [inline]
getURINameHash() const ExternalFunction [inline]
name_ExternalFunction [protected]
numArgs_ExternalFunction [protected]
uri_ExternalFunction [protected]
uriName_ExternalFunction [protected]
~ExternalFunction()ExternalFunction [inline, virtual]
XQilla-2.3.0/docs/simple-api/ATStringOrDerived_8hpp__dep__incl.md50000644000151400015140000000004011653571063021614 00000000000000083fd8119faef3efa2ce56cf1cd1192bXQilla-2.3.0/docs/simple-api/ModuleResolver_8hpp__dep__incl.map0000644000151400015140000000023111653571064021357 00000000000000 XQilla-2.3.0/docs/simple-api/XQilla_8hpp__dep__incl.png0000644000151400015140000000557011653571064017624 00000000000000‰PNG  IHDR€u ~6bKGDÿÿÿ ½§“ -IDATxœí[LÛ€WaZ T¡‚ÕJ…P©&xÆD£1ì(J@ˆ탗(ÅêŽw·—”DŠw Æ"Œ€€n"Dà(' )[u£¶RZZz›ó0{w—¶V eÕõ=Mÿ®ù×?óufµ3mÇq€€‡ ì~uÈ A ƒÙŸ"<<Üþ$NJuuµ(ö¿ ¢P(!!!L&ÓÎ<ÎE___gg§ý{ÏG ::zõêÕIå,Ô×ן8qÂþ­ÑhˆÆßC«Õêt: Ã4Íõë׃ƒƒ€ÊÊJ«ç"S²²²$Éëׯ…B¡ñf†Õ !àÑ£G---©©©ÄëÃ0>Ÿÿøñã'OžÜÝÝsss¹\î•+W’““ëêêâããýýýÏœ9c#'Nçñx§OŸNHH˜1cFXXXZZ ==ÝêhlÊÚµk8 –.]ºeËApÌ ™cÇŽ9ö~€N§‰D!!!Ì H$ñññuuu? þâ~€ý{o‚^ Â0Ìá{b2AŒ‘‘‘# ’Ư%ÀËËkÿþý# ’Ư%`‚@ € $2Î-àËÕׯ*ØUØ…c> s8ƒá‚F…BÁÐébò»–Éd===⫉ÑÑÑö'­­L …ÂáРô¾xñbû“8à€Å«WÂÂþ¨­M fÁ.gŒ8ñðàÁ sÁ0×òò°k;Î*Çñ¢¢fΠÓ鋊šœ÷8vV--oûúþ¾§ö×_òÖÖ·PË;Î*àþý6*Õ•X¦R]KKÿ ·ž1ã”t:CII«V«'jµú’’窱á”þüSÔ߯6ô÷«»`ÕcN) ´´ÆUŽa”’’VXõ؃ó P«µ/u:½iP§3TT¼T«ÉûJ¡£p>55jµÎ2®Vkkk;ɯÇNœO@qq‹««•¯[¹ºRŠ‹ï,ädÔ¿²ú†G§3ÔÖv*CäWeN& ªêÆwŸ–hµúªªv2ë±'»'“)åò߀þþ{ à?6#S¦¸1*+düDÉ0¦û×Ãð÷'ï»´ÇÉNA?HdÈ A ƒ@ € $2HdÈ A ƒ@ € $2HdÈ A ƒ@ € $2HdÈ A ƒ@ € ™a¿ÉÍÍ…XʸwOˆŽö…]Èè0—e˜«ö>‘quõèõý° Ã~†›¸{÷.Ž7îÞ½k¶ÏÑ$2HdÈ A 3^º»»‰O– v&$au …b9µÙ81^¼¼¼<8‘NÆK€Ï¹sç&r ÂèßêÜ©= d0gÏžý^Îv4"L?ƒ\ŠHHHHLLüôéÓôéÓ›››qÏÉÉa2™%%%>|¨¬¬$&eìêê"’[.Èår–””$‹ïܹèëë3íB¡PLš4‰˜U8??Ã0…Ba\¨3..N.— …B@LLŒ\.'&+þòå Ñrݺu"‘¨©©)00ðøñ㦫Ÿ?>**ª···½½}Ñ¢EÀl6lËåÅÅÅ?Ìií¥ˆQ Édl6;44ÔØÙ¼yónܸalpóæMÛ†††^½z¥P(ôz}CCÑØ´ ©TJ¥RÓÓÓe2™Á`ÐëõfÚÚÚp×h4fË]]]DËöövã6š®ôñãGb¹ººzÁ‚fÛ¨¯¯Çqœ˜YÝvN³ í½ç€kAÄÜã<ˆôôô,X°ÀØ 44Ôv&‰"""/^|ãÆ cœò £®®®©©‰Íf¯ZµêéÓ§–SÛNž<@¥RÍ–p¹\b!((È8Q'ÁÛ·oY,ÑWxx¸Õ‰‹gΜ 0ë×jN„Q xÿþ}VV1ó"ñõõ}ùò¥±AGG‡í *•*&&†Ïç·µµeggãÆ…J¥2 ÷îÝ“J¥ÉÉÉ‘‘‘R©t´u/O€H$"ö¦ã1'“Éššš,W·:€YÍi££‘0:ƒ!))i÷îÝEEE555åå値¤$>Ÿ_VVöéÓ§‡ ÛI†††4 FS©TÇŽ&S-P(”uëÖËårFC¥RÝÝÝG¹]`ïÞ½ÝÝÝÏŸ??|øp||¼éS›6m:tèлwïÚÛÛ#""._¾  …ýý?¸¯`5§ŽF„Ù¹Ïö™™9þ|Fƒãxii)‹Å’J¥æäÉ“t:}ùòåÄ|à6ÆÇ/^¼8uêÔY³feggÇÅÅ1™LËsåìÙ³i4ZPPPYY™ÙêÀdذ\&Z …BŸÝ»w«T*ÓÕårù¶mÛ †··wJJŠR©´'§YÐÖàAø‡˜n*Æ£«9Çк!3áø L™2eçÎ$ätLG¦‡@÷„Çt šp A ƒ@ €ŒùŸw×ÖÖ~ûö J)¿­­æSL8÷wC”aûwªù~>Ð$2HdÈüIR¼BÀ5IEND®B`‚XQilla-2.3.0/docs/simple-api/StaticAnalysis_8hpp__incl.md50000644000151400015140000000004011653571063020261 00000000000000a40287e1931bec8bbe3e8d2d1daa4670XQilla-2.3.0/docs/simple-api/classEventFilter-members.html0000644000151400015140000001471711653571063020427 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

EventFilter Member List

This is the complete list of members for EventFilter, including all inherited members.
atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)EventFilter [inline, virtual]
attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)EventFilter [inline, virtual]
commentEvent(const XMLCh *value)EventFilter [inline, virtual]
endDocumentEvent()EventFilter [inline, virtual]
endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName)EventFilter [inline, virtual]
endEvent()EventFilter [inline, virtual]
EventFilter(EventHandler *next)EventFilter [inline]
namespaceEvent(const XMLCh *prefix, const XMLCh *uri)EventFilter [inline, virtual]
next_EventFilter [protected]
piEvent(const XMLCh *target, const XMLCh *value)EventFilter [inline, virtual]
setLocationInfo(const LocationInfo *location)EventFilter [inline, virtual]
setNextEventHandler(EventHandler *next)EventFilter [inline]
startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding)EventFilter [inline, virtual]
startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname)EventFilter [inline, virtual]
textEvent(const XMLCh *value)EventFilter [inline, virtual]
textEvent(const XMLCh *chars, unsigned int length)EventFilter [inline, virtual]
~EventHandler()EventHandler [inline, virtual]
XQilla-2.3.0/docs/simple-api/simple-basic_8cpp-example.html0000644000151400015140000000651611653571063020453 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

simple-basic.cpp

This example executes a simple XQuery expression ("1 to 100"), which returns the numbers from 1 to 100 inclusive.

#include <iostream>
#include <xqilla/xqilla-simple.hpp>

int main(int argc, char *argv[]) {
  // Initialise Xerces-C and XQilla by creating the factory object
  XQilla xqilla;

  // Parse an XQuery expression
  // (AutoDelete deletes the object at the end of the scope)
  AutoDelete<XQQuery> query(xqilla.parse(X("1 to 100")));

  // Create a context object
  AutoDelete<DynamicContext> context(query->createDynamicContext());

  // Execute the query, using the context
  Result result = query->execute(context);

  // Iterate over the results, printing them
  Item::Ptr item;
  while(item = result->next(context)) {
    std::cout << UTF8(item->asString(context)) << std::endl;
  }

  return 0;
}
XQilla-2.3.0/docs/simple-api/DOMXPathNSResolver_8hpp_source.html0000644000151400015140000002267511653571063021412 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

DOMXPathNSResolver.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMXPathNSResolver.hpp 698579 2008-09-24 14:13:08Z borisk $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMXPATHNSRESOLVER_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMXPATHNSRESOLVER_HPP
00024 
00025 #include <xercesc/util/XercesDefs.hpp>
00026 
00027 XERCES_CPP_NAMESPACE_BEGIN
00036 class CDOM_EXPORT DOMXPathNSResolver
00037 {
00038 
00039 protected:
00040     // -----------------------------------------------------------------------
00041     //  Hidden constructors
00042     // -----------------------------------------------------------------------
00045     DOMXPathNSResolver() {};
00047 
00048 private:
00049     // -----------------------------------------------------------------------
00050     // Unimplemented constructors and operators
00051     // -----------------------------------------------------------------------
00054     DOMXPathNSResolver(const DOMXPathNSResolver &);
00055     DOMXPathNSResolver& operator = (const  DOMXPathNSResolver&);
00057 
00058 public:
00059     // -----------------------------------------------------------------------
00060     //  All constructors are hidden, just the destructor is available
00061     // -----------------------------------------------------------------------
00068     virtual ~DOMXPathNSResolver() {};
00070 
00071     // -----------------------------------------------------------------------
00072     // Virtual DOMDocument interface
00073     // -----------------------------------------------------------------------
00076 
00083     virtual const XMLCh*          lookupNamespaceURI(const XMLCh* prefix) const = 0;
00085 
00086 
00087     // -----------------------------------------------------------------------
00088     // Non-standard extension
00089     // -----------------------------------------------------------------------
00092 
00102     virtual const XMLCh*          lookupPrefix(const XMLCh* URI) const = 0;
00103 
00114     virtual void addNamespaceBinding(const XMLCh* prefix, const XMLCh* uri) = 0;
00115 
00123     virtual void release() = 0;
00124 
00126 };
00127 
00128 XERCES_CPP_NAMESPACE_END
00129 
00130 #endif
XQilla-2.3.0/docs/simple-api/classxercesc_1_1XMLFormatter-members.html0000644000151400015140000003146111653571064022535 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

xercesc::XMLFormatter Member List

This is the complete list of members for xercesc::XMLFormatter, including all inherited members.
AttrEscapes enum valuexercesc::XMLFormatter
CharEscapes enum valuexercesc::XMLFormatter
DefaultEscape enum valuexercesc::XMLFormatter
DefaultUnRep enum valuexercesc::XMLFormatter
EscapeFlags enum namexercesc::XMLFormatter
EscapeFlags_Count enum valuexercesc::XMLFormatter
formatBuf(const XMLCh *const toFormat, const XMLSize_t count, const EscapeFlags escapeFlags=DefaultEscape, const UnRepFlags unrepFlags=DefaultUnRep)xercesc::XMLFormatter
getEncodingName() const xercesc::XMLFormatter [inline]
getEscapeFlags() const xercesc::XMLFormatter [inline]
getTranscoder() const xercesc::XMLFormatter [inline]
getTranscoder()xercesc::XMLFormatter [inline]
getUnRepFlags() const xercesc::XMLFormatter [inline]
NoEscapes enum valuexercesc::XMLFormatter
operator delete(void *p)xercesc::XMemory
operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
operator delete(void *p, void *ptr)xercesc::XMemory
operator new(size_t size)xercesc::XMemory
operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
operator new(size_t size, void *ptr)xercesc::XMemory
operator<<(const XMLCh *const toFormat)xercesc::XMLFormatter
operator<<(const XMLCh toFormat)xercesc::XMLFormatter
operator<<(const EscapeFlags newFlags)xercesc::XMLFormatter [inline]
operator<<(const UnRepFlags newFlags)xercesc::XMLFormatter [inline]
setEscapeFlags(const EscapeFlags newFlags)xercesc::XMLFormatter [inline]
setUnRepFlags(const UnRepFlags newFlags)xercesc::XMLFormatter [inline]
StdEscapes enum valuexercesc::XMLFormatter
UnRep_CharRef enum valuexercesc::XMLFormatter
UnRep_Fail enum valuexercesc::XMLFormatter
UnRep_Replace enum valuexercesc::XMLFormatter
UnRepFlags enum namexercesc::XMLFormatter
writeBOM(const XMLByte *const toFormat, const XMLSize_t count)xercesc::XMLFormatter
XMemory()xercesc::XMemory [inline, protected]
XMLFormatter(const XMLCh *const outEncoding, const XMLCh *const docVersion, XMLFormatTarget *const target, const EscapeFlags escapeFlags=NoEscapes, const UnRepFlags unrepFlags=UnRep_Fail, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLFormatter
XMLFormatter(const char *const outEncoding, const char *const docVersion, XMLFormatTarget *const target, const EscapeFlags escapeFlags=NoEscapes, const UnRepFlags unrepFlags=UnRep_Fail, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLFormatter
XMLFormatter(const XMLCh *const outEncoding, XMLFormatTarget *const target, const EscapeFlags escapeFlags=NoEscapes, const UnRepFlags unrepFlags=UnRep_Fail, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLFormatter
XMLFormatter(const char *const outEncoding, XMLFormatTarget *const target, const EscapeFlags escapeFlags=NoEscapes, const UnRepFlags unrepFlags=UnRep_Fail, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLFormatter
~XMLFormatter()xercesc::XMLFormatter
XQilla-2.3.0/docs/simple-api/XQilla_8hpp__incl.png0000644000151400015140000002637311653571064016641 00000000000000‰PNG  IHDR uß¼çbKGDÿÿÿ ½§“ IDATxœíÝw\Sçþð'! ÙBA@EEp V­VÁ먂µVœ½uÔ«¿ß­ˆ¬W}]mý¹j­{+`‹£µ¢‚[e(@(fÖùýqzsS!bà„ðy¿ü#Ïøž“ç>œ<9‹¢( -ØL N¸ Up@« à€Vá0]€6»zõjDDÓU0ãwÞùꫯ˜®z"\€NTVVvéÒ¥ &0]HWËÎζ°°`º è¡p:ÝÆ™.¡«mÞ¼™é çB\Ð*¸ Up@« à€VAÀ­‚€ À°ÜÜÜI“&%''˦ܼy3 ??Ÿþ±©©éàÁƒŸ}öÙÔ©S—/_#‘H!%%%ï¾û®Âªx÷ÝwKJJÔ»/š `˜‡‡Gppð¾}û†nll\__¿gÏž ¸¹¹B–/_nnn¾dÉGGG÷ÝwßÝ»wo×®]ÆÆÆsæÌaº|ƒ;¸Ì›7ož™™ÙÁƒ !‡²²²úä“Oèÿ:~ü¸¹¹ùž={FŽéää4nܸ¼xñâüùófffK–,a´pM„€ À<‡Ãårÿý÷˜˜˜ßÿËår8~–˜˜8þ|6û¿—kƒO>ùäÒ¥KÊ;$ܾ}ûóÏ?Ÿ2eJ``àÉ“'Γ––6wîÜ3fÄÄÄÿôp¸yóæ¼yó>úè£}ûö‰D"…Õº÷j†€  <==gÏž}äÈ‘ùó绺ºÒëêꪫ«ÝÝÝ[ÌìááÁãñ”¬­¡¡aÆ 'NœX¾|ùáÇkkk[Ïv÷îÝLJ††9r„ÏçÓýõר¨¨ÈÈÈ»wïÊ’±Â‰š @#PUXXÈf³‹ŠŠZü‹Åj=³ü=ÝÖôôô¾ûî»U«VYYYÙÚÚBêëë[Ï6{ölCCñcÇB=qùòåNNN øûßÿž˜˜¨d"€fBÀЗ.]ÊÈÈØ³gÏÕ«WoÞ¼IO466¶´´ÌËËk1s^^ž³³³’µq8œâââÐÐÐ%K–\¸p¡­Ù¬¬¬H«íääD¿pvv®¨¨P2@3!à0¯ªªjß¾}Ë–-óöö^°`ÁîÝ»eüýý?.•Jé·nÝzùòå“'ONš4IÉ ›››7mÚôÉ'Ÿ:tèÿ÷Ûš­õ½aBHqq1ýâùóçtnk"€fBÀ`EQ»wïvss›>}:!äã?¶°°Ø»w/ý¿ ,¨®® IMM-..¶··ˆˆ …ôÌm‰Db±˜Ãá…Âï¿ÿžÒÐÐ@9þ¼Â¾ ò¾ùæ›’’’'Ož9r$ @ÉDÍ„€ À°‹/¦¥¥…„„Ð÷S9Κ5k®\¹ríÚ5Bˆ¡¡á¡C‡<<<þïÿþï³Ï>KJJ vqq‰ŒŒT²NccãåË—GDDÌŸ?¿wïÞ“&M %„ìÚµKá·Íäùûû¯^½šËåúùùÍ;WÉDÍÄ¢(Šé´Ö©S§fÏž””¤ÞÕŠÅ✜///õ®¶¤¤$88¸Eµ '¶kóæÍ666§NRk*Á\€î‡Ãá¨=Ýh \ø“‘‘ÑŒ3T™ ÉpàOæææ_~ù¥*4.@gyõª!7÷®´]ŒÃtÚ£¶¶áÁƒâ¬¬çYYÅYYÏ «X,‡cÁt]= .@Ç=}úRgsrÊ^½jÐÓã ÒÇۻϗ_þÍÛ»ÏýûW?ýtÓe2ãÁ› ¶ûù¹Žá:r¤›³3†‡€.‚€ ðäíÓ§/ùüFY¢ ííÝÇÍÍFWWG6f¦‚¡Âz[Ûzoo§ë×sNœ¸Íb±ÜÝm‡wõósõósuuµaº:Ðf¸m¢(*'§ìµ-ÈØÙ5ìÝ;—RWלž^˜’’Ÿ’Âûå—{MM"##ý¡C]üü\½½ûŒÙ×ÔÔ€éb@« àü—ÂD«¯ÏñöF¢í8ccýqã<Çó$„ˆÅÒGJRRx©©¼cÇnVUÕq8l77[º'ÃÛo»;:¢Ë2¼)Œd=Z«Dû‚Ïo’%Zoo§7L´ôHfÆ {ͪX‰‡ÓܱªE±¥RŽŽŽðµ–ÊÏÏ÷÷÷ow$³Âª””üÔT^J /7·Œ¢(;;S??·#\ýü\ rb³{nè0\èY:;Ѷpûöí={^ïKf¯^é={fÁfS>>åj©á ›<nìì,pp¨g±^ãWƨQ£^ëº|~SffÝ“!%%¿¹YlbbàããìççJG^Ý×/z"\Ðrª$Ú¾}m9æŸV[ZZ»n]\bbvPÐðððvv¦LWD!"‘ä‡nnßþ›­­ittÝÓ  6úøq)Ý“áÆÜššz‡íååHßÙ}ûmw++ã.(º)\Ð6-í“'/ M´2‰ôûïoìÚõ»¹¹QDÄL/¦+jéåËW_}õËùó™3følÛhmÝ¥ù²uO«#þ¼³ëéiÇb¡'ü.t{R)•›Û2Ñè줱‰V^zzÑÚµ§rrÊV®œ´bÅ$Mþ >11;,,^ h ™²xñ8F:È–— 23‹èn ™™Ï…B±µµ±¯¯ ý55g==| §CÀ€î§»'Z iëÖ3'OÞ3Æ#**ÈÍ­<¶±Qøõ×Lòõu‰Žž5`€=³ÅgóægÌðaº¢¿(+{••UL÷dÈÈ(‰$¶¶&C†8Ó=|}]ð0c-†€ Aa¢íÕKoÐ G-H´2B¡xß¾Kß~{å­·¬££ƒüüܘ®èMUT¶n=ÏßßkÛ¶@''M¦¡¾¾9;»„îÉp÷n>Ÿßhh¨7p £ŸŸ=tp7ýÚ‚€ Ìh‘h=*­¯×ÂD+ïÚµ§\n\E…`íÚi ŽÕ¦]»}û—[\\óÅï®Z É7Gå{2ܹ󬸸FG‡Ý·ïŸC©éæìlÅtð¦p ‹ÐÁ¢G%Z™Êʺððø³g3Þ{oÈ–-õîmÆtEê'IJ޵낛›íöíAÇ»2]‘JÊÊ^¥¤üùµ‡‹¥R ¥  p ³¨’hÝÝmut´0ÑÊH¥ÔÑ£×wíº`jj°m[`@À@¦+ê\•ááñÉÉO‡mÚô¡¥ewzˆA]]szz!=”Zj*¯©Idd¤ïåå@÷d9²¯©©Ó5€Jp@mD"IzzaVVqNÎ˧O_fg—44{Z¢•—™ù|íÚØÇKW­òÿ⋉½zé1]QILÌærã…aaïÍ;ª{= ‚&K=*¡“îíÛy••uò=Fv×ÌÞÆ@CÀ€Ž“%Zú6-W!Iè¯ïôÌD+SW×¼}ûo?üpcÈç;f àÀtE]ÏoÚ¹ó÷cÇnŒáÔÝÑ%ß“áÁƒbŠBO†€ ¯A(gd!Ñ*›y^$oÜøA·{À­z=|X²ví©‡KæÏ³nÝtCCm¸‡-4edÑ=RRò››ÅÆÆúôPjtäÕä±èz\P‰öµ<^½~ýéK—Í;*,ì=ss<|ŠH¥ÔÉ“w¶n=cii´m[àĉ˜®Hä{2ܼ™[]]Ïá°½¼é;»o¿íneeÌt=.ü…ÂDkffèííäéÙ‰¶-"‘dïÞÄýû“úô±ŒŽ5ª/Ói–²2þ¶mgãâÒFE98˜3]Q§(,¬¢ÇQKIáåæ–Q%?”š§§]O¾Еpzºæfqf¦‚DëççJÇYoo';;-|¬•ݸ‘Ë対|ùŠË¾`ÁM~ ,³nÜÈ]·.îÅ‹Úþsò²eïj÷ŸI‚ŒŒ"ºCfæs¡Pljj@¥æççæç禯ÏaºF­…€ Ðã(L´ææ†#F Ѿ¶ªªºÍ›âãïM˜Ð/22ÈÅc´£©Iôí·—÷í»ìáa=kØ0¦+ê Šé;»©©¼ÚÚ]]èž cÇzXXt§ç©h>\í‡DÛ(ŠŠ‰¹yÎÐP/**Hëp«^<^źuñ7näÌœ9lóæ{T¼“áGçÝœœ—„ôdP/\-Ô"Ñæç—‹ÅR$Z5zúô%—›–V°páØ5k¦âùÿsölFxx<›Í Ÿ1kÖ¦ËaFY?+ë9Ý“!#£H$’ØÚšÐ=FŒpõõuA€@ÀÐMM"Ù€a²Dkaa4|ø[H´êU_ßýÛñã7vÚ¾}ÖÀŽLWÔ½ñù;w^øþûë£FõŽžåînËtELjh>|øgO†»wóùüFú‰%ôPj#F¸â¹*BÀè–hqùòãððøššú¯¾zÿÓOGáÙþê’•õ|íÚØ'O^üã“þñ|ûŠüg¤ëÔT^JJþÝ»ùÏŸWË¥æçç†ßJ àtH´Ì*)© ‹OLÌ ¾~ýû¶¶&LW¤mÄbé±c7vìøÍÚÚ$**hüø~LW¤Yä‡R{ø°X*¥ììL½½û '€B¸ŠþÚu‹Dkii4lm—‹¥&íÙsÑÁÁ<*jÖ˜1îLW¤ÍÊÊ^mØðëÙ³3føDDÌ´±Á ÔÕ5§§ÒC©¥¥46 Œô½¼èž #Gº™šöbºF†!àh $Z tï^áÚµ§òòÊW®ÄGç]'11;<<žÏo ™²hÑXí~\ϞýÙ“áöíg%%5ò=Fvwr²`ºF à0¦E¢}ö¬\"A¢Õ55õ7þoÜ8Ïèè ·Þ²fº¢ž¥±Q¸ÿ•½{/õïo¿}û,g¦+êöd Ÿ>æçç:h:ŽC€ Ðuè¯H·H´VVÆC‡º ÑjŠ¢ââÒ¶m;+•RÛ¶ΘáÃtE=×ãÇ/Ö®ÍÈ(\°`lhèT<Ží5MEtO†””üæf±±±¾¯¯ =”Úˆ®ºL×ÐYp:m·“›[ÆåƦ¤ð.»fÍôedý÷ÆæÍ ººœ°°é=öq¹oH,–>zTBßÙ½u+¯ªªŽÃa{y9ÒwvGv·¶6fºFuBÀP§W¯²²ŠŸ>}‰DÛí47‹wíºpèP²——Ãöí³¼½û0]üWmmCd乘˜;“& ض-°OK¦+êÞ «RRòéîææ–QÔ_z2 ì„¡Ô »CÀx#µµ ©©<Ù¼ÊÊø„kkc__$Úî$9ùIXX|e¥ 4tÚÂ…c9|«Iݽ›ÏåÆV­X1qåJ==|çO **Et7†ÌÌçB¡ØÄÄÀÇÇ™îÉàçç†ïVBw„€ ðzhµÌ‹µ\ný€Ûðð÷ðÞi8‘HòÃ7££Ï÷îm4v¬'ÓiÙ7_SSy7näÖÔÔË÷d3ÆÃÒÒˆéT‚€ ÐŽššú´´$Zí#‘H¿ÿþÆ®]¿›™FDÌ ÈtE ªÂªððø¤¤'Ã6nüÀÊ ýG;…|O†œœ—„+zµ#\==íГ4.@K ­‰3­ÖHO/ârcŸ }g7%…÷êUC¯^zƒ9ÒC©ájnnÈtÐÓ!àBO„DÛcÅÆ¦FFž‹¥6¼4°j‡ìì.763óù‚c¹ÜiFFúLWÔƒH$Ò¼¼?‡RKIáU±Ù,ww;oo'º'C¿~½™®z"\說êîß/l‘hmmM† A¢í)ŠŠþìµ¹hѸ¿™™á“V‘J©øø´M›ôõ9[·~4}ú¦+ê¡¥æí݇¾³ëë뢫«ÃtÐ# à‚vB¢¡P¼oߥo¿½ââb=käH7¦+‚ÎR^.ˆˆ8—0022ÐÑÑ‚éŠz´úúæììº'ÃÝ»Ïøü&CC½ÿìÉ0r¤R΃€ Z¢²².=‰¶‡ÊÈ(ÊÍ-S8ÆÕõë9\n\y9íÚi ŒÁÝ£žàÖ­<.7¶¤¤ö‹/Þ]µ* õ›þâEíéÓ÷V¬˜ÄHy=“X,}öìÏž ·o?+)©ÑÑa÷íkKßÙ5ª/ïõBÀ…îJa¢¥? C¢íQÊËþþ;ššÄ·o‡Ë?.ª²²nË–„øø{'öß¶-ÐÙÙŠÁ"¡‹‰D’C‡’wíºàæf»cǬaÃÞ’ÿßE‹¾»x1ûðá…Ó¦y3T`O§°'ƒl(µAƒœðL xC¸ÐmÐÃí Ñ‚<‘Hòþû{>,f±È‡Ý»w.!D*¥Ž½¾{÷ÆÆú‘‘xÀmUPP¹n]ܵk9Ã6oþЈréÒ£ùóBôõuûíŸàÁ š22Šè逸¦òššDÆÆú¾¾.ôPjǿի—Ó5B÷ƒ€ š ‰Úµbʼn3gÒ%)ýãÏ?/·¶6árcÓÓ —.}÷Ë/'ãW#œ=›±~ýiBÈúõ3¦N`€€ jPZZ»iÓ¯çÎeZ[›demQ}Aå‰ÖÛÛ©_¿Þxœ(””ôdÞ¼CRé_®`l6ëw<_Âá°™* 4ÖÉ“w׬ùw‹_z::¬àà·£¢‚* T%ûÞ=šZs³ØÄÄ€JÍÏÏÍÏÏM__ÙPj7þúÝw×(Š5ªïîÝŸ¼õ–u—UŒ@À…7"ŠHþúë?$)}S$+k«’ÏûèÁ‘há TNž¼»¾¾¹õŒÃѹr%ÔÝÝ–‘Â@cI¥Ô”)_?~\*»}+Ãb±vì˜5wîhF ƒ‰$—Ò=nÜÈ­©©—õdðós3ÆÃÒ²eW„I“v>~\JÑÕeK¥dÙ²w׬™‚á…µ.t\llêÖ­g^½j‰$ô‹üðÃçþþ^²yÚM´ýûÛãQˆðZ‚¦)Sv×Èž<GgèPç_~Y‰O!AÞñã·ÂÂâZÜò—ÑÑaÇÅ­À3’»)ùž 99/ !..V#F¸Ò<=í„ýû¯“Hþûîëè°,¾þú“1cÜ™+:.tÄ“'/¸Ü¸ÔT‹Eäaèéq/;z´;-tžeË~8>«õ}8y.˜1çËJ W]]?zô6 ±­Øl–¥¥ñåËkllLº²0P»‚‚ÊÔTý/'§Œ¢('' WWëë×s[ÌÉf³)Šš9sèÖ­3ÍÍñÉ¡¶AÀ…×Ãç7íØñÛ±c7X,–ÂOútuu„B±••±··ÓàÁt¨íãä„ñ„@=öï¿yNá}86›Åf³Åb‰¾>gÚ4ïo¾ ÆM\ ýüsJDÄÙªª:6›¥£Ã‰üuÄáèx{;ýòËJ|áLkÔÖ6¤¦òÒÒ NŸ¾W^Îoã3¶©i¯èèYgᵠ.¨J*¥Nž¼uN h‹Û¼yfjÚëòå5!:CbböÂ…Gd-6›Åá°…B ‹Åêׯ÷˜1ÞÞN~~n..Óàó›23‹RRòSS ÒÒx B‡MQDî¡ ì÷ß÷ýæ›`fëµûøãý7oæµxØl–TJ&Nì¿cÇÇæ]\t’¿ÜÆÆÆšš«õìYeTÔÅŒŒUf¾xq…¥¥z>îéÕ«—…Å›fåšššÆÆ6?š„¸vΜ…::l‰Dª¯Ïñòêíããäíí0h½…>alŸ……E¯^oÚA¨´´T-Å0K(”<~üòÁƒ™™Å%55 ,‹îs6yæLÜÌë o¸UZ£TJÿ¯ÆFQ»sé…†úO›æ…º)ùõ—ï ‚œœœ.¯4ÝÍ›Å11ÙµµM„‹èè°¥Rª­ïjºtéžZ6mccóæ·´´´¢¢B-õSÅ6\36æ fçáaéáaѧ©ŽýKHRQQŒwX^^^opµæ×D¯^ÄÏÏÔÏÏ‹¯ªªÆœœêÜÜê§O«wï¾Ìá4ôïÏ:Ý›\UZcQ_aºe³Yl6‹¢(Ù—ÏššDÿúוôô¼ÀÀþÿ¹¼@wÒfÀ¥M˜0¡ëjî`ÂN‚¦‚‚J¯‚Ç«,(¨ÌË+ÏÏ/¯©i „°XD__—ÒÜL_D,ÔÒŠ²³³ß|%4›1^k7V^.øãÑ­ýªKNNVת¼¼¼lmµöAlB¡¸´´ÏIíTååå=R˪ÚmÇß’ÿQWWÇÆÆ¤wo3WW;;S{{3GG ;;3sÕGŽÒºEá p *ƒÁƒv’Ÿ(4ñx•<^%WñôiYaaEVV1SE‚¶²µÅwÛ¡‹èéqnµ‰½½YTTƒƒ¹ƒƒ¹Ffî!pᘘÐÏIŸØÜ,fªyøø®'Âh– ~ÊÇKèT¸ Up@« à€VéÄ€›——G?*¹õ %ŠŠŠ-ZDQTpp°±±æ~ÕQɾлžžÎápbcceÓôôô}º´´ôüùóNNN„ÜÜ\zý­_ðù|==½Å‹Ÿ8q‚R^^NQÔÑ£GüñGù9e¯§NzåÊ•/^(\2gÎ>ŸäÈBÈÇÌçó|8ÕÞ%Zá&hÊÛp]]]»gì$’‘MQ¾k a‹7±óš"¥rÞhWm´ÖƒÒ°Kn‹Âº²Eu$àÖÔÔ899y{{Ë69pàÀcÇŽÉføá‡”ÜæææÇ×ÕÕI$’«W¯Êz```uu5¥èmÎÊÊR² !äþýûE …¯éú÷ïÿâÅ z…‰‰‰>>>iiiÆÆÆB¡ðË/¿ ÓÕÕ­©©Ù¹sç´iÓèeuttd©èôéÓîîîò•ЯéOž>}*ÛwÙ.ФRé| ££,e-FÞ­[·¬­­;pÜZþÕBˆìèµ~³ä÷‚¢¨ŸþÙÝÝ]ÅýUØ!ÉÉÉEI$º$…›P8Qá eº8à¶>V”¢–#¿#ýúõ;}ú4ý¿=’½n½Tuuµ®®î®]»jjj¤R©@ H$m-®e'½õ+V¬[·Ž¢¨'NPr¿‰[WÕî¾´[˜X,îÝ»÷åË—)Šš6mZtt´*Å(9°ôµQV€Â9 #;'Ož¤ß>å­¨…Î;¡º2àv‹³I•‰-Z²Œ®®îøñã[DI…­¢­€Ûn¦T8£;pÃobç5Eªk®V¶Fª€AiØ%·Ea]Ù¢:Ò×ÜÜ|É’%ÙÙÙË—/§§äççûøøÈfðööV¾==½œœœ)S¦ 6ìØ±côĺº:‘Hdaa¡p‘þýû·µ ÍÄÄ„Bߢ—M+((°··§¿ýÀãñ|}}ŒŒRSS¯]»öþûïûúú^»v-))iúô鄲²2‰DÒ·o_zqww÷ââbùJh©©©&LˆŒŒlkbbb’““¯\¹— ;€½{÷¦o}ÉËÈÈ_¹ŠÇÖâGýçZÜúÍ¢Ñ]èÝ)..VqÛâàà@a³ÿÒœZlBÉD ¡ðXµn9ôtú°ÊöhÀ€}ôQ[KYXX$%%ݹsÇÉÉiüøñׯ_g³Ù ×Ê2kÖ¬ØØXŠ¢Z|X¦ä +Ù—v ÓÑÑ™9sæéÓ§+++/]º4wî\UŠQr`éF.+@áœÏž=4hl///å;ØÖÉ¥'”†ŸMT÷Zh½¸ìJ+ “““é›ô2JÚOk*ž\ÊÏèû¢â~BÃÖ³iAS$ÚÛ ºäÊte‹êHÀ}þüù7ß|ãïï¿zõjzŠ£££ü÷õ²³³•¯¡±±ñã?^³fÍýû÷÷ïßOO¼pá”)SÚZ„>Ê T}g”¾0ÕÔÔܹs‡ÍfO›6-!!!''gèС'NLLL¼víý{ÝÎÎNGG'??Ÿ^üÙ³gŽŽŽò•ÐΞ={àÀÿûßIII­w¡´´tÕªU;wî|çw6nܸtéRYÿñ¹sçnݺ•þ#†2gΜŸ~ú)::zΜ9¯{Ü”kýfÑè¿!999*îo[vn± %5„ÂcÕºåÐÓéÃâààPPP@OÉÈÈØ¶m[[K566J¥ÒØØØêêêÏ>ûlÆŒÕÕÕ ×¾6vìX@pãÆÄÄÄ_"në +¡Ja³fÍúå—_N:5vìXºßT»Å(9°-®È çtqq‘¿ú=~üXù¶uriÁ ¥±gÝe¶¤¤D•½P~2¶öZ'æ^uiÎÎÎòÏ]züø1‡ÃéÓ§*¥¶>†­gÓ‚¦H´´5* 4ºäÊte‹zí€+•J/^¼råÊŸ~úéÒ¥KgÏž%„,^¼xÍš5 /_¾¼páÝ)D‰ææf¡P¨§§×ØØ¸qãFBˆ@ HHHøàƒ:° *eÏœ9sݺu………YYYS¦LùöÛo !Ó¦MÛ¿ÿÈ‘#uuu'MštìØ1Bˆ®®îìÙ³W­ZÅãñ>|¸~ýz…Žõë×Ëå.[¶¬©©I~(ŠZºt©··7ÝízõêÕvvv+W®¤ÿwÆ /_¾ øã?rrrÜÜÜ>ýôÓ¦¦¦¿ÿýïÛýŠŠŠ—EÚx³hÿó?ÿ“———šš¬âþÒ}Â!GŽyõê•òcÞbJ&j‚¶Ž•–#3oÞ¼ððpº Ä?þñ¶–b±X“'OŽçóùB¡PWW×ÐÐPáâZv"Èèèè.]ºÔÏÏÏÖֶݪ”S¥°qãÆ‰Åâ-[¶Ì›7OÅbT?° ç\±bEhhèÅ‹«ªªèn|ôÕ¼ÝÔ²J3Ï&sssBÈñãÇù|þÞ½{å7-»²µ ÊÉ(OIûi½ O.å.\¸råÊsçÎñx¼Ë—/ÏŸ?____6C[»¦ð­kŠDK[£ò€AÓK.“-Jy†ÖöíÛ7dÈ¡PHQÔ/¿üboo_]]- ·lÙâêêjll´¶:-µ^ÐÖÖ–úk?$…¯ù|þ¢E‹,,,¬¬¬–,YB{¦¶¶–Ãáн³ëëëõôôBCCeª®®ž7ož•••½½ý?ÿùÏÆÆÆ¶ªjllôôô “ß…cÇŽéëëË÷JLIIa³Ùqqqôuuu«W¯4hAß¾}ÃÃÃÇ?{öì×:n²ÝWøÎ*|³èµ9rÄÅÅÅÚÚzåÊ•íî¯H$;v¬±±±’ƒ,{­pmmW‰®ìƒ«ðXQŠZŽüaijj qpp033›3gNMM =]a{ûùçŸûöí«§§×¿ÿ„„…‹ …B-;ä·žœœLùöÛoU©ªÝ}Q^mÙ²e½zõâóùª£úm=§D"Ù³gOß¾}ÍÌ̦L™’`ccÓn+jwgÕuBuY\Í<›(ŠŠˆˆ077ïÛ·/ýy.õ×+[‹KnëÅåßyÊ/Ñ 7Ak· ·{ˆD¢;vôë×þ xx8}|”ï=CëcØîÕÕ©.샫•­QyÀÐÌK®Â×Ú¢X”\<*//ôèÑ„ &ÕåååµEÚ% ïß¿O?(¤ótÁ»£pØ.ýiïÀß°u­ºððð‚‚‚˜˜˜®Ùܹsçúôé3dÈúÇøøøˆˆ…ÏÊy-ê:¡’““½¼¼ZÜËéu­ºu5E¢¾¼Ö¨Q^÷’Û©-ªz€×¥§§×Ùé ‡hjjÊÏÏ?zôèçŸÞeÍÊÊ ¾ÿ~CCÃ;w¾úê+厴#—\å8L]ÍÔÔtéÒ¥]¿‰.Ø.€ÌÝ»w?úè£åË—¿ù-"Õ…††644|øá‡nnn‹/VK›Ç MÚÒ±Kn§¶¨N颠袠F袚]@½ÐE´.h\Ð*¸ Up@«(xLXiii××ÐZSS“ºV…†  .µµµb±˜é* kk@Ú@k¢¨E)¸999]R @ûÔplPxxCøs4Z#(Ä€º Mд .h\Ð*¸ UþÎ}1™¸IEND®B`‚XQilla-2.3.0/docs/simple-api/inherit_graph_25.map0000644000151400015140000000021111653571064016445 00000000000000 XQilla-2.3.0/docs/simple-api/classXQillaAllocator-members.html0000644000151400015140000001636011653571063021227 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

XQillaAllocator< _Tp > Member List

This is the complete list of members for XQillaAllocator< _Tp >, including all inherited members.
_memMgrXQillaAllocator< _Tp >
_singletonXQillaAllocator< _Tp >
allocate(size_t _n, const void *=0)XQillaAllocator< _Tp > [inline]
const_pointer typedefXQillaAllocator< _Tp >
const_reference typedefXQillaAllocator< _Tp >
construct(pointer _p, const_reference _v)XQillaAllocator< _Tp > [inline]
deallocate(void *_p, size_t _n)XQillaAllocator< _Tp > [inline]
destroy(pointer _p)XQillaAllocator< _Tp > [inline]
difference_type typedefXQillaAllocator< _Tp >
max_size() const XQillaAllocator< _Tp > [inline]
max_size(size_type) const XQillaAllocator< _Tp > [inline]
operator!=(const XQillaAllocator< _Tp > &o) const XQillaAllocator< _Tp > [inline]
operator!=(XQillaAllocator< _Tp > &o)XQillaAllocator< _Tp > [inline]
operator==(const XQillaAllocator< _Tp > &o) const XQillaAllocator< _Tp > [inline]
pointer typedefXQillaAllocator< _Tp >
reference typedefXQillaAllocator< _Tp >
size_type typedefXQillaAllocator< _Tp >
value_type typedefXQillaAllocator< _Tp >
XQillaAllocator()XQillaAllocator< _Tp > [inline]
XQillaAllocator(xercesc::MemoryManager *memMgr)XQillaAllocator< _Tp > [inline]
XQillaAllocator(const XQillaAllocator< _Tp > &o)XQillaAllocator< _Tp > [inline]
XQilla-2.3.0/docs/simple-api/classAnyAtomicType-members.html0000644000151400015140000004135511653571063020724 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

AnyAtomicType Member List

This is the complete list of members for AnyAtomicType, including all inherited members.
_ref_countReferenceCounted [protected]
ANY_SIMPLE_TYPE enum valueAnyAtomicType
ANY_URI enum valueAnyAtomicType
asString(const DynamicContext *context) const =0AnyAtomicType [pure virtual]
AtomicObjectType enum nameAnyAtomicType
BASE_64_BINARY enum valueAnyAtomicType
BOOLEAN enum valueAnyAtomicType
castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [protected, virtual]
castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
DATE enum valueAnyAtomicType
DATE_TIME enum valueAnyAtomicType
DAY_TIME_DURATION enum valueAnyAtomicType
DECIMAL enum valueAnyAtomicType
decrementRefCount() const ReferenceCounted [inline, virtual]
DOUBLE enum valueAnyAtomicType
DURATION enum valueAnyAtomicType
equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0AnyAtomicType [pure virtual]
fgDT_ANYATOMICTYPEAnyAtomicType [static]
FLOAT enum valueAnyAtomicType
G_DAY enum valueAnyAtomicType
G_MONTH enum valueAnyAtomicType
G_MONTH_DAY enum valueAnyAtomicType
G_YEAR enum valueAnyAtomicType
G_YEAR_MONTH enum valueAnyAtomicType
generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicType [virtual]
getInterface(const XMLCh *name) const =0Item [pure virtual]
getPrimitiveTypeIndex() const =0AnyAtomicType [pure virtual]
getPrimitiveTypeName() const =0AnyAtomicType [pure virtual]
getPrimitiveTypeURI() const AnyAtomicType [virtual]
getRefCount() const ReferenceCounted [inline]
getTypeName() const =0AnyAtomicType [pure virtual]
getTypeURI() const =0AnyAtomicType [pure virtual]
gXQillaItem [static]
HEX_BINARY enum valueAnyAtomicType
incrementRefCount() const ReferenceCounted [inline]
isAtomicValue() const AnyAtomicType [virtual]
isDateOrTimeTypeValue() const AnyAtomicType [virtual]
isFunction() const AnyAtomicType [virtual]
isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicType [virtual]
isNode() const AnyAtomicType [virtual]
isNumericValue() const AnyAtomicType [virtual]
isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
Item()Item [inline, protected]
NOTATION enum valueAnyAtomicType
NumAtomicObjectTypes enum valueAnyAtomicType
Ptr typedefAnyAtomicType
QNAME enum valueAnyAtomicType
ReferenceCounted()ReferenceCounted [inline]
STRING enum valueAnyAtomicType
TIME enum valueAnyAtomicType
typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicType [virtual]
UNTYPED_ATOMIC enum valueAnyAtomicType
YEAR_MONTH_DURATION enum valueAnyAtomicType
~ReferenceCounted()ReferenceCounted [inline, virtual]
XQilla-2.3.0/docs/simple-api/inherit_graph_6.png0000644000151400015140000000373411653571064016410 00000000000000‰PNG  IHDRÃ(ÌžÙ¼bKGDÿÿÿ ½§“‘IDATxœíœoHSßÇÏý¹Í¿©éÔI*䬒°„’!”Š>“ܲ I5Hˆþ©IF‚>( ƒÀ0DˆRó_ÅR"’Ô–„Oªygiβ¿ì›sN¶©ms÷ü¼ì{ww5½è×:¯G;Ïý|ÞŸsÞ;»ûƒ„`0«æë-󇀄áì$ ?`'aøAÀWUUiµÚu‘‚Ù@TTTdddxF˜NÒëõ£££iiik¨ ³Áèèè8qâ#Èt --­½½}M$a6$Axñ}†°“0ü€„áì$ ?`'aøaUNªªª"âêÕ««×A„L&c|œ››KÄøøøêó¯oããã¬oaÖ@ M``àÞ½{u:ÝÚËðfåN‚¶¶¶&$$´µµqÏüôé“X,^2áçÏŸ‡††è¡Åbù/F^VVæë¯Ëlye¼zõÊh4F’$e2YAA/?èX¥æ•;I¯×ŒŒ466êtº±±1Ž™E™Íæ%fffvttÐÃÇ3>EýO!‹9ãe¶¼2¢¢¢$‰D"‘Éd555ccc&“iõiW©yåNjmmÍÈÈÈÌÌ”Ëåô±äyæÓSSS‰ÅgffŽ;&‹ãââ.\¸ðë×/W*•íííôÓ«³³S¡PÐå\.WIIILLLtttII‰Ëåtuuíܹ3 11ñÞ½{h&k°»»{×®]AAA±±±ÈÂúúúíÛ·‡††îß¿¿»»©e-äg§Þ-³æ$¢¹¹yÛ¶m555¾f¢BÏŸ?OHH`È …"‘(,,ìwWÉ{&CóoÿR©T*•p)(ŠÚºuëíÛ·!„—.]Ú±cŠ :'ýØ3!,,,l0t:]xx8àîÝ»V«õæÍ›žW¡×x¡PXPPpúô鉉‰ááኊŠÂÂBzŽŸŸ_~~¾Z­Þ³gOtt´çå,//ÿòå I’999uuuAdgg?xðÀjµ:N¡PÄt8N§S$ÍÏÏ_¹r`³ÙŠ‹‹KKKŸ={f6›{{{+++Ñ´w!$Àd2ýã-Œµ¢gË9½YþLDhh¨Ífã(äKž¯Btªß†á¬åœIjµ:;;Û3BQ”T*-++ƒVWW‡‡‡K¥RFƒò»\®ôôô4yzzúèÑ£‘‘‘±±±gÏžE¯t`ñ©Ößߨ««£íâV«U¥RmÞ¼922òäÉ“³³³¶¶6©T*‰är¹F£A—°kkk#""âããoݺuèСèèh·Û}ãÆ ©T–““£Ñh¢¢¢|ò^7Ïg°wEF˾rzŸIÞ3¹Ï$·Û:11ÁQˆuA¼g24sx¼OúèêêÒétô°³³Ýc–„ÕIï÷n$I9räÍ›7sssƒƒƒ—/_>~üøz‹ÚÀ°üfò/¡´´tnn.//Ïd2%&&©Õêõµù{$ª«««««×[ÈÂßûê†áì$ ?`'aø; ÃØI~ÀNÂð˧Z­6++kí¥`64L'¡Îa0(•ÊøøxF€ø¿bøß'aø; ÃØI~ÀNÂðÃÿØE½ÙçŸM%IEND®B`‚XQilla-2.3.0/docs/simple-api/ReferenceCounted_8hpp__dep__incl.png0000644000151400015140000001763411653571064021656 00000000000000‰PNG  IHDR¥]íÿ:MbKGDÿÿÿ ½§“QIDATxœí{\W¾ÀO E^Q ÅÚU´»­Þj).°¬×G•\WT°Ý¢½«X´µÚÕhm][PЀZl- øì…¬²ÚÖŠKQÈòP0X)C0×Ü?Æ;! ÉLè9ßÌœÇïüf¾™3“ É0ph°¢;¥ ßp|Ãò Lí•°°0ºò@˜÷ß?88˜X~Ê·@ xþùç9Y!ÌBeeå† ÈU¦NuTTÔk¯½FiFsRYY©½ŠÎßp|Ãò È7\ ßp¡{}>,!!!ä²M@@À;ï¼Ãår µÇq|ß¾}ß~ûíÅ‹G™£)èîî>|øð?üÐÛÛëãã·hÑ"êÓhoo¿|ù²vaHHÈÉ“'§L™BA£9¾333ù|>ŸÏÏÍÍõööþðÃ|ÈÖÝÝ-Nœ81†$Ç †aëׯ·µµÝµkWvvöâÅ‹÷ìÙSSS3öȉdÅŠcCÏ||œ'Ož ˜ù¤¶¶öرc‡”””j@”¦¦¦jðí·ßfee%%%åääôõõ_¹r%--íÀ<8yò¤¡ø2™¬§§gÚ´iÚ›0qâDrÊ9xð`gggvvvFFFMMÍ©S§Œl»NÃnŸÏ/((HLLÌÏÏ_½zuvv¶Þ°UUUGݶmÇ#'ŒÒÒÒ´´´}ûöUUU}õÕWF GÎh|¯_¿~É’%K–,yã7ÊËËcbbȪ‹/nÞ¼™Ãáøùù%%%UWWëô5Ô 11qîܹ&L0Ôàõ×_···ÿÃþÀ0ìüùó ~~~¾¾¾ï¾ûî¬Y³ Å'®- †ÞmQ©T—.]JNNöôôôóó[»vmEE…‘m×IcØ­;sæÌÆ-ZäââòòË/'&&ê cgg·páB@__Qøæ›oz{{Ïœ9sýúõdVz GÎhÎßäÅäàà`^^ÞG}”••ETutthÏœäeÊ”ÎÎNí„u.EuÒvëT*•ö›???½]\\À%¹Ó¦M#³Ò[8rFã›ÄÖÖ6""âܹs8޹:998p€x5©NC È=h¨Î¾pqqéèèðõõˆÅb¡Po¨û+¯¼RPPðᇒA***T*•­­-›Í¶²²’H$Ä+æáÇ„Q€Z­¶¶¶îêêÒ×Ðøà?ÿù¿¿?Ñ ¥¥EoG½aÛÚÚˆ×ǃˆ„¡Â‘3ÖëµI“&=~üX.—«‹-:zôè£Gššš¶mÛVZZªÓ~ì ÂÃÃy<^sssssóÁƒ=zd¤ûºuënß¾½oß¾ººº¦¦¦'N”””¬_¿Àd2CBB>ûì3‰DÒÜÜœ››joo(//üø1yn6‚‘Í_¾|ùáÇ¿ûžžêêê¼¼<¢åùóçûûû‡ÍÌÌloo¿{÷.Ç#ÿ5AoáÈÓñ pss³³³Ã0ÌÎΰnݺÌÌÌ 60ŒW_}5))IçøE½ãÆÅÅ ¤¤¤ ÌŸ?Ÿl¦·»³³ó‘#G>¼k×.¹\>mÚ´üãóçÏ'ºlÞ¼933sãÆ,kñâÅqqq666ëÖ­;tèÐÉ“'ÿú׿^½zÕÐæ{xxüæ7¿‰ŒŒ¼pá‚ÞÑY,–R©<|øpww·¿¿ÿÎ;‰Kúýû÷ =ßiºeË–ßÿþ÷qqqÄì­S8Œž!0´ÏO c×®]èóoÚÑ{Noá°„„„DGG«èþ9\ ߖȤI“–-[6’Âgù¶Dœÿö·¿¤ðYA¾áù† ä.o¸@¾áRßwïvÓ=èÞOÍÏÏ?wî-©PIgg›}—É ;ªyÊwTT]yP‰\Î|øÐaâÄS§öÑ‹Ùñóó›:u*¹Ê€ð÷<>þøâå>>.×®½Ow.Tãù»¨¨ÐÚÚ]_ÿî\¨:ß7oÞok“X,k>ÿÝéP t¾KKk™Lk€R©.*ªÑhà:Áå[­ÖרTjbµ³³¯ºº‰Þ”(.ß×®‰¥ÒÇä*‹e}út-ùP\¾KJj™Ì_6Y©T—•Õ*•jS¢ˆ|+ª3gn©TíB ¼r¥®”¨"ß—.ÕËåƒ:…L&£¤¢«tˆ|—”ܰ²ÒÝ^•JsáÂíÇ´¤D=°ø–ÉËËëÔjÍÐ*¥R-ÔQŸ-À⻢¢N¡Pª…ç*ߥ¥j4øåËõ&§2º€åó’¶6©öd¾`ÁÞ={V…†>O–xx8ÙÚŽõÛ6–ϯ ¼½Ù:%nn>>Ïü}»ñ,ó9‚ù† ä.o¸@¾áù† ä.o¸@¾áù† ä.o¸@¾áù† ä.o¸@¾áù† ä.o¸@¾áù† ä.o¸@¾áù† ä.o¸@¾áù† ä.o¸°”ïû ‚¦&JÚR ttè>žÜ|zò7Õà–Å?µÏbq¬¬l©‘îü šÏ£¢¢(Ûl…â‘Z=@ÍXtïÚ_° ß @¾áù† ä.o¸@¾ábœùf0b±x|E¶(Æ™o’¦¦&WWWº³ŒWߦ»Òg¾Ž…ñê{þüùbU©T¦¤¤¸»»s8œ””¥R `0yyy3gÎtssKOOÏÏÏ÷õõurrÚ¹s§Þ˜ååå\.—Íf§¥¥Äb1ƒÁ(++›1c‡ÃÙ´iÓàà ÞBª6ÚPsOqX¢¢¢Fr?ÐØØˆãxcc£vò‘‘‘÷ï߉DóæÍKMM%ÇÆÆbÆãñÑÑцåä人º†F^ºt)†a|>Ÿh@ ÞÐÐ  ¹\îîÝ»õÏ™¸ŸúÌ{Ä#---žžžäª““±ààà`±X:Ëzñòòè<Ó& €X lkk3R8.¯ço\]]ÉCV*• …ÂQa0C ‰ÐÐÐ@¼ Ž Æ·o™LF,¬Zµjûöí­­­"‘("""++k$Ýy<^oo¯ñ6›7o‹Å555;vìˆ7R8.¯¾Ÿ{î¹… ’søÞ½{æÎ»xñâ9sædddŒ$Ȇ :;;·‰‹‹ ]²dIDDÄöíÛŽè½| áõ•è\)4ŽE]¯×ã1:oƒ8::&%%¤p|„Ãádgg¤p|Ãò È7\ ßp©ï®.Ý)Ѓ}^ÒÔÔtäÈjÆ**j_¶ÌcÂk ƺq㣌ºoø<ÊïYYÙzx$Oœ8“²ÅìgK™Ï )Ûæ/¾¸Ì`Xÿ÷¿MÙˆ¸Å]Ëdþòž[­Æ‹ŠàšÒáò]TT£R©ÉUÇÅâŸêë%4¦D1ùÖ{¶f2­KKkiɇ ò]ZZËbéÞ@U©Ô……Õ–s?ÄÜÀâ[£Á‹‹¯+•ê¡Uaµµ­Ô§D °ø®ªjêììÓ[ÅdZŸ> Ë”‹ï³goll˜Cÿ4üÌ™›jµ†î©À‚>5+/¼àýÞ{KÉÕO>ùßeËæLŸîA–ôöÊ'OžDGj”€çRE/¯ÿÉÎ^³|y݉P ,ó9‚ù† ä.o¸@¾áù† ä.o¸@¾áù† ä.o¸@¾áù† ä.o¸@¾áù† ä.o¸@¾áù† ä.o¸@¾áù† ä.o¸@¾áù† ä.o¸@¾!ô¿òM<;ÑòqpXÈb¹ÒÅð˜ü›fùý–ÂÂBs„…O?ýÔä1Íâ›Ê‡SüŠ)**2yLtþ† ä.o¸@¾áù† z|3´˜8qâ+¯¼rëÖ-“D‹Å Cïˆb±ØÒÂRmÇ÷÷ß/‘H$‰H$ ˆ‰‰ÁMúËžMMM®®ãàŽ ÅÐö{¹nnn>úÈÝݽ³³“Ãá˜*¾F£éî†ëÙC#Á"Îß,ËÆÆÆÉɉXU*•)))îîî'%%E©TΞ=;{öì &øùùåççƒ§çØ¡óíüùóÄKJƒ‘——7sæL77·ôôôüü|___''§;w’¡ÊÊÊf̘Ááp6mÚ488h$ùòòr.—Ëf³ÓÒÒ uÖ˜fÄ´·g‰ûçÃ6ܺu«¯¯¯¯¯¯½½ý­·ÞZ»v-Y›‘‘yÿþ}‘H4oÞ¼ÔÔT™Lfkk›-‘Hrss™L¦L&kll$Ç"—‡.#666’˱±±†ñx<@tt4†a999€®®.¢cxxxCCƒP(är¹»wïÖ‰¦véÒ¥†ñùüa»ë»—¢¢¢L~ÿœ6ßÚØÛÛÿøãdm`` D"!–+**‚‚‚zzzX,Öþýû¥R©F£éëëS«Õcñ][[‹ã¸B¡ÐYnll$:ŠD"r‹¸\®ß•••8Ž«Õêa»ë»—Ìá›¶ùœÜûýýýIII dUKK‹§§'qõÖÜÜÌf³/_¾, ½½½ƒƒƒ¯^½jeõTæø3^ë988X,–Î2I@@±ØÖÖf$”——@'½ÝGÓ|Ðþ¶³³ûË_þRWWG:suu%_ R©T(ÊårFSTTÔÓÓ³nݺeË–õôôU* ½½Ý´YG$ ¡¡0j½ïÓôvyLóA¿o€££c__ŸLöäéÌ«V­Ú¾}{kk«H$ŠˆˆÈÊÊb0ááá|>Ã0…BÁb±ìììœ_|ñ†aŸ}ö™ÞÈdÌgeóæÍb±¸¦¦fÇŽñññÚU<¯··wÝĤÓžF~þ&`ÇÕjµ££css3±ŠaØÚµkÙl¶‹‹Kbbb?Ùßß߯Æ&00°¬¬Œh¹wï^gggÿ²²2ðôi[©T.\¸ÐÞÞ~èˆÆ—‰<ÏÇÇÇÕÕ599Y.—kŸ¿GÝ]§pؽôë¹^³d ]š¥ûèbþª®×´€|ëâè蘔”dÚîcŒiBLü<ªÂÂB“ß ‡–èèh`êDÇ7\ ßp|Ãò úÖh ½¢„Ô÷çŸ y´fùÿ½!X w÷õÛ¶%(ô|H5rLþM¿ÿ~ðàP(4a@sÐÐЛ•U÷_ÿåãOw.Ãàíí½`Á„ñùßï¼sª°°ÚÁaÂ?ìe±¬éN‡R ; (Ïž½ É.]ª§;ªÎ·@ðãÀ€ `eeÅçß ;ªÎ7ŸÝÚšP«5åå?ô÷Óô¢4—o “_ºT¯R=y'¦R©¿ùæ½)Q \¾/^¼£ý¶›Á`ðù×i̇zàò]Tô”]µZsõjcOO?]ùPD¾ú©O(½“zîÜmZò¡ˆ|Ÿ={sè?Ç‹‹khɇ ò]TT3ôàÖhð7ZÛÚ¤´¤D=°ønmí¾s§]ïÍDkkÆ™37©O‰`ñ}îÜ-CwŽU*ž«tÚ¾ÿM1=ÉÕŽŽ^gg» ž|gÌÚÚº³³ÏÍͦì¨ÆÏK^^ÿ“½fùò º¡Xæsò È7\ ßp|Ãò È7\ ßp|Ãò È7\ ßp|Ãò È7\ ßp|Ãò È7\ ßp|Ãò È7\ ßp|Ãò È7\ ßp|Ãò È7\ ßp|Ã…yßaÏž=W®\1_üQÓØ8ÝÃCâàÐGw"z¨¨¨0_póþ~Ë;wîÞ½kÚ_l7 /½Ô 6݉<O 0ûïõ,X°À´OÈûC<ѬC ó7\ ßp|Ãò È7\ÐïûæÍ›L&³¨¨ˆ,)++³±±¹sçÉ“&úûû·mÛ6gÎ{{û—^z)--M¥R‘ךƒ!‹Í:„ÁÍITTTTTÔ°ÍvîÜéáá!•Jqÿù矽¼¼öîÝKTaøê«¯^¸páÞ½{|>ÿùçŸ Q©TÃÖš @cc£9"˜ÛˆEø|á…q߸qã‹/¾¨P(ˆª­[·.Z´HÛŸL&{î¹ç²³³‡­5È·AFèÇñëׯ3™Ì}ûöÙÚÚÞ¹s‡,÷ð𨨨Ði|èСE‹¯mll$÷ö²B¡Øºu+‡ÃqssÛºu«B¡ jÁÔ©SçΛ@´ìëë›8qbmm­N|@VV–¿¿¿³³ó¾}ûÈø¥¥¥Ó§OwssKNNÐ[h|'@äÇñÔÔT9“ã8.•J:-¯]»6yòd㵆|gddDFFÞ¿_$Í›7/55•¨ýãÿxéÒ¥ .¸¸¸(•JÇOž<9kÖ,F£°téR Ãø|> ««‹ˆÞÐÐ  ¹\îîÝ»õßùÖh4+V¬°¶¶Ž' £]]]:¿ÿþ{WWW㵆|J$b¹¢¢"((ˆ¨‰D8Ž«T*ýë_8Ž/Y²$==}hª€ÊÊJÇÕj51·kGÀq¼  €Ëåê-4¾(ðMÿõ9Á—_~YYYyéÒ¥âââ²²2¢ÐÙÙÙÃÃãÖ­[:oݺh¼V»×ú °¥¥ÅÓÓ“Á`0Œ°°°ææf¢œèbmm½jÕª’’’®®.@§7[///€•ÕS{/ € ÕÖÖf¤F,Â÷Ç7mÚôñÇ¿úê«»víJJJêîî&ªâââöìÙCI€ØØØS§N¥§§ÇÆÆ[ Þ›µ··“c‡>ñb—J¥äçQ,Ö“gDEE>}º°°páÂ…ÞÞÞzÖû€sâ€444/C…tbÖÙc$ó¹F£Yºtipp°Z­Æq\¡PÌž=;66–¨ííí1cFHHÈ7ß|sïÞ½;v8Îàà ñÚÎÎN@nnnooïÊ•+É-Ý´iÓo¼ÑÒÒrûöí—_~ùí·ßÖžíqW©TÇÝÝýرcdáÑ£Gþùgbh]Ÿ­ù<$$¤±±±ºº: àƒ>Ð[h|W@qþ>~ü¸­­í½{÷È’êêj++«ââbbU&“mÙ²å…^˜0a‚¿¿ÿ{ï½3líÞ½{ýýý‰ÑðµkײÙl—ÄÄÄþþ~ß8Žoܸqâĉ†‘%Ck/x<ž««krr²\.×[h|W@á{ ^»vmtµ#aÇŽúÓŸFÞ~è+ÆP¡q(ð=.ŸOdcc3þüÑÕg``àáÇyyy§NmvE\¯YUUU¿ýío^{íµ‘÷rttLJJI!íŒËãÛ|÷ôô`ñ-“ –—ש՚¡UJ¥Z ¨£>%Z€ÅwEEBaðwà¹J‡Åwi©A£ ~ùr=†É©Ì‡.`ù¼¤­Mª=™/X°wÏžU¡¡Ï“%N¶¶¿þÿÖýõo!··îOgº¹9øø¸Ð’ À2Ÿ#o¸@¾áù† ä.o¸@¾áù† ä.o¸@¾áù† ä.o¸@¾áù† ä.o¸@¾áù† ä.o¸@¾áù† ä.o¸@¾áù† ä.o¸@¾áù† |ß¿©©I Œ=Å‚ŽŽjº³xüüüBCCÇeì¤$žz9¾`±8VV¶tgñl˜äI¬&û=Žß¡‹èèh“ÄAço¸@¾áù† ä.o¸@¾áÂâ|‹Åbƒ¡waŒ)èÎ`0Äbñ¨Ç¢‹óíììüî»ïZrÀqÅùvuuMOO·ä€ãŠ|Ÿ9sfÊ”)R©pêÔ©éÓ§÷÷÷k4šÌÌÌ™3g:88,X°àòåËÄ|hdþŸa˜B¡`±XvvvÏšêæÍ›ÅbqMMÍŽ;âã㵫V­Zµ}ûöÖÖV‘H‘••àñx½½½£ˆid 32öSÂHÎߟþùœ9s Žã§OŸöôôìééQ(ÿûß}}}ííí,XðÕW_£çoÇ?ýôÓÉ“'O:õСC±±±gh2þþþ666eee:ÝÖ)è2Ñ’Çãùøø¸ºº&''Ëårí]»–Íf»¸¸$&&ö÷÷%¦N¡ñ8þ®×†E{ÏÒ‚9Ðs¿ë5„%€|ÿ‚££cRR1Í1Ð1ÁóÇ cbbÆaâÿ× Çßp|Ãò È7\ ßpa²ï—9rÄT¡Cijjòóó{“ù¦ë %<˜Ä7,ÏÿF ó7\ ßp|Ãò ÿ¤p@ßÛð&­IEND®B`‚XQilla-2.3.0/docs/simple-api/StaticType_8hpp__dep__incl.png0000644000151400015140000000716211653571064020522 00000000000000‰PNG  IHDRuüýõ†bKGDÿÿÿ ½§“'IDATxœí{P×Ço „ùñD(‘ŒðC;ÚÑNåU0C;:SDJq:XŠt;•Ç Öò)ŽR¥hB¥#´ @I):h4¢A+´(Å «‚€ò°I$¯Mö÷Ƕû !‰ ]7î篛sÏ=çä~÷ÞÝ,$KAQ¼ðØXº“ u‚R'8 u‚ªé®ííí¥¥¥Ï®”—ˆˆˆ]»v™èl†Nããã|>?**j>E‘̦¿¿ßÕÕÕt3tÂ(,,4wÉ\Š‹‹Íò'ÏOp@ê¤Np@ê¤Np`öõÞS‘ÉdÕÕÕSSS #&&&55•F£™ddddãÆ@oï… vïÞ=×ÎápçS´>¢££kjj.\HTÀñ::th||¼¤¤„Á`Ü»wïСC‰$;;{tttË–-<ÏÐ@mGGÇäädCžo½õVcc#6dëÖ­XàääDô»yQ ~ß»téRFF‹Årqq ËÎÎîêêh4±Xld ¶ƒ³³óÇlÈÓÞÞÞÍÍÍÍÍÍÅÅàöT*ñ‡Ý ñ:988477ã3V__øä“OëׯÇìW®\ÉÈȈ‹‹KHHøþûïuFFF¢££jµúøñãIIIï½÷^YY™T*5’úðáÃ{÷îÅÚ2™,..npp ÕÕÕ•––øða•J@¤²²2>>>>>¾²²A¹ùå—ÔÔÔuëÖÕÖÖâUé„2ŸXˆ×)77·§§gÆ ¹¹¹õõõãã㘽¢¢ÐÔÔ˜™™ùâ‹/X,VMMMVV‡Ãyüø±¶NCCCGGGYYÙîß¿_SSc$udddWW—Z­tuuy{{ã§«æææ²²²/¿ü²»»;,FGG=úÕW_õôô?~|nÀîîn‡“——Çårñ#on(CF!^§+VÔ××4­ªª*;;ÛÝÝÝÓÓðäɽÑZ[[ÓÓÓ™Lf@@@~~~HHˆ‘ÔK—.¥R©}}}>ŸÏf³) Ö•••åëëüÑG;wpæÌ™íÛ·{zz2™ÌÌÌÌ«W¯Î ˜””äàà°zõj€D"1Ê‘@ÞÐårùåË—£¢¢‚ƒƒƒƒƒÓÒÒª««+++cbbfe¥R‡‡‡ËËËe2‹Å2p||Ü××kûûûûûûq¶±± ïèè`2™×¯_ß±cÞ…ñóó{ôè`ll,!!wX°`ÁÜ€îîî\lC¡  „àõ„¢hii©H$Â^R(”7ÞxÛˆ´Q(EEE|ðÁ±cÇ>ýôS#ÝÝÝÇÆÆ°öÐÐñ}ÕÙÙyñâÅÐÐPƒÛ‡‡‡±Æýû÷±Ùwvv®©© ¥¥ÛuuÐQÈP(CF!X':Îf³‹‹‹…Báèèhÿ7ß|£½˜d2@¥R!B¥R•J%vb˜™™ÑvÀa³Ù\.÷Î;wîÜ9xð ~¶3DXX˜Z­þî»ïØl¶¶ýÈ‘####·nÝâr¹kÖ¬„‡‡s8œññq‘H”——×ÜÜ hmm5´ eÈH Ä_Èæåå8q‚ÃጌŒ¸ººFGGøá‡//¯ÐÐЄ„„Ó§O;::fee•––Òéô”””˜˜˜¼¼¼††Ü–šš*—ËsssårùªU«233g·±±‰ˆˆhkk‹ˆˆÐ¶ÇÆÆîØ±C.—cŸ»›7o>räHFF…B‰ˆˆÀ"———/[¶Lïh(¶ËÍO,Óÿ/ìäÉ“III†î¼8p¹Ü±±±Ï?ÿ{iüÖ†Yè 5¿øÅÅÅ ãäÉ“&ú[Õý=¥R9::zæÌ™µk×Zº‚±*233ßyçeË–áÆ ¬[·ŽøzCßV¸ïAÁK½ïY1¤Np@ê¤Np@êV¨Ó­[“–.x̾o”““ó,ê G–¹ºÞ¢Rå–.Ä"‘(66Öt3tZ´hQbb¢ù%=Wd2êƒÿ¡Ó—,Z$±t-Æ`2™«V­2ÝߌϹP°oß™Îúû»_¹ò¹¥k!k;?:u p÷îäÀÀK×B$V¥Soï½áái€mcãuK—C$V¥Sss•j P©Ô§N]Óh¬gK·ÔjMCÃ5ùûoüI®^Y¶$±®\šžžÁ_ÚÙÙþøcë!ëÑ©©©‡JýÿÛQ©Ô<^J¥û/4b%:)•ÈO?ýŠ m£X¬èè¸m©’ˆÅJtºpa@&Sè©TJS“•\õY‰NMM×mltß ‚hNŸþmfFi‘’ˆÅt’JgÏö«Õš¹]*•šÏïþ%Ž5ètî\¿R©çÛÖqÕg :57TB£A‚±XfȬá>ìðð´ö¦÷曥»w¯ý/nñòr¶·‡û+lpWáë«û4 Æüý‰ÿg| b ûÞË©:Á©:Á©:Á©:Á©:Á©:Á©:Á©:Á©:Á©:Á©:Á©:Á©:Á©:Á©:Á©ÌúžšH$âóù–*…@ø|þؘžç9A“ÉœõCЍØê`ÇÎÎÓÆÆÞÒUü[µ¥Ñó½O+øÆ.ì¼ÿþû:òü¤Np@ê¤Np@ê¤Np0¤RiNNN@@Ng±X………r¹Ù?¾?44¤÷©§:ìÞ½›B¡ìÙ³guš˜bÞC(ÊÐÐùu͇ùè´mÛ¶žžžÆÆÆ{÷îUUUñx¼ÜÜ\€H$òðð02PÛÁÅÅ%??ßx"EëêêüüüžÛpSª² sïG OÃÅÅE(â/ÛÛÛýüüP4>ü©:üöÛo { ÷üaúÀù¥3Àààೈœ˜˜¨s?b>ëÉÉÉ©¢¢bròïÇÂDDDܽ{€=0ÂËË ³ÿüóϯ¿þºƒƒƒ··7¶qi;à; ‚ ………~~~ cÓ¦M?ÆÕÕÕEFFÆÆÆi/) …R[[ìææ¶wï^Cép²³³7oÞŒµ¥R©ƒƒCoo/ ¥¥%,,ì•W^a2™'Nœ³÷½¹½s9{öl`` ««kYY>œÇã-Y²ÄÓÓ3;;[¡Pè5š=éÚ¢™¸žÚÚÚ.\hoo¿fÍš}ûöýù矘]ûø‹Å4-==}xx{Ø÷ǵðö¾}ûBBBúúúnܸ±råÊœœÌA£Ñ=zEÑ;w†„„à6lØ0==Íáp“““ÆÓµ··»»»«T*EkjjBBB4T*µ··¯¬¬­ªª¢R©R©¢·Wgk×®‹Å€‰‰ l8›Í¾}û¶P( ,**Òk4w=ÍG'E …%%%K—.µµµ­­­ÕÑI¡P H¥RµZÝÞÞÔ«Ó’%Kššš0ãï¿ÿŽ·…B!•J˜˜@Qôúõë€7nà$PU*•Xdãéñòò:þ<Š¢ï¾ûîž={Pšš²³³+//ŸžžÖh4‰D­VãCôöÎÕéâÅ‹(Šb°Ç3öõõáó¨×h|z Ø÷ž€)élmmׯ_ßÔÔ411Áçó±çz»ºº ¡PèëëÙÙÙ©ýKÀÆ{uÊÐéÂßNPPÐðð°£h‹fÊz’H$ ¥···\ºtéÕW_Eg¯§™™{{{§Ñhd20¼ž˜LfKK fìíí---ÅV€··÷þýû%ÿðÙgŸ±X,FƒÎ>cí§¦>>>_ýõÛo¿WØÑÑ¢¨B¡¨®®¶µµœœÄ‡èíՙйeè,S§N1™L½Fã“LÀzrttÜ´iSRRRkk«H$º|ùrNNNrr2î •J …B©TÒh4™LVXXH$Ú8iii;wî¼yóæÍ›7·nÝŠ]’tvv>|ø055ÕñRRRýõW½UI‡Ž HIIIZZf¡P(l6»±±Q,+•J;;;ÜßP/—Ëý믿ŒOÑöíÛ‡††®]»VPP°qãF#F3ÐÍÄó‚ EEEaaat:ýµ×^ËÏÏ—Éd(ŠªTªÕ«W;::bnû÷ïwss[´hQEEErr²§§§¶~äÊåòœœggçäääééiE333Ùl¶vRF³xñâüü|½²Þt:×å[¶l¡Óéb±Xûý.^¼˜F£ñx¹\þàÁƒo¿ýö‡~°t-ó䥸ÛÝݽbÅŠôôô¨¨¨gšÈÉÉ)33Ó£¹¼ë)22rjjê9$òôô¬¬¬4Åh./Åz²Hà€Ô Hà€Ô ô\ï;vìù×A¢H$b2™Ú=:ýû‹}’ŽNÖðü§—òü¤Np@ê¤Npð?\g©†˜öAIEND®B`‚XQilla-2.3.0/docs/simple-api/inherit_graph_47.md50000644000151400015140000000004011653571063016360 0000000000000005ecd55208b515b75744209c55b18f8cXQilla-2.3.0/docs/simple-api/classURIResolver.html0000644000151400015140000003512411653571064016725 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

URIResolver Class Reference

This is an abstract class used to resolve URIs in different ways. More...

#include <URIResolver.hpp>

Inheritance diagram for URIResolver:

List of all members.

Public Member Functions

virtual ~URIResolver ()
 virtual destructor, does nothing
virtual bool resolveDocument (Sequence &result, const XMLCh *uri, DynamicContext *context, const QueryPathNode *projection)=0
 Resolve the given uri (and baseUri) to a Sequence (reference parameter).
virtual bool resolveCollection (Sequence &result, const XMLCh *uri, DynamicContext *context, const QueryPathNode *projection)=0
 Resolve the given uri (and baseUri) to a Sequence (reference parameter).
virtual bool resolveDefaultCollection (Sequence &result, DynamicContext *context, const QueryPathNode *projection)=0
 Resolve the default collection.
virtual bool putDocument (const Node::Ptr &document, const XMLCh *uri, DynamicContext *context)=0
 Called with any document that has been updated, to allow the user to save the document in any manner applicable.

Detailed Description

This is an abstract class used to resolve URIs in different ways.

The user should derive a concrete class from URIResolver, and use the DynamicContext::registerURIResolver() method to add this resolver to the list used by XQilla.


Constructor & Destructor Documentation

virtual URIResolver::~URIResolver ( ) [inline, virtual]

virtual destructor, does nothing


Member Function Documentation

virtual bool URIResolver::putDocument ( const Node::Ptr document,
const XMLCh *  uri,
DynamicContext context 
) [pure virtual]

Called with any document that has been updated, to allow the user to save the document in any manner applicable.

The uri parameter will be the argument to the fn:put() function if that was called with the document - otherwise it will be the document URI of the document. If this URIResolver successfully handled the putDocument() request, the method should return true, otherwise it should return false and subsequent URIResolver objects will be called to handle the document.

virtual bool URIResolver::resolveCollection ( Sequence result,
const XMLCh *  uri,
DynamicContext context,
const QueryPathNode *  projection 
) [pure virtual]

Resolve the given uri (and baseUri) to a Sequence (reference parameter).

If the uri is relative, the base uri can be obtained from the context. If the uri is not handled by this URIResolver, returns false, otherwise returns true.

virtual bool URIResolver::resolveDefaultCollection ( Sequence result,
DynamicContext context,
const QueryPathNode *  projection 
) [pure virtual]

Resolve the default collection.

If it is not defined, returns false, otherwise returns true.

virtual bool URIResolver::resolveDocument ( Sequence result,
const XMLCh *  uri,
DynamicContext context,
const QueryPathNode *  projection 
) [pure virtual]

Resolve the given uri (and baseUri) to a Sequence (reference parameter).

If the uri is relative, the base uri can be obtained from the context. If the uri is not handled by this URIResolver, returns false, otherwise returns true.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/functions_func_0x70.html0000644000151400015140000001624711653571063017323 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
 

- p -

XQilla-2.3.0/docs/simple-api/StackFrame_8hpp_source.html0000644000151400015140000003005011653571063020045 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

StackFrame.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _STACKFRAME_HPP
00021 #define _STACKFRAME_HPP
00022 
00023 #include <string>
00024 
00025 #include <xqilla/framework/XQillaExport.hpp>
00026 #include <xqilla/items/Item.hpp>
00027 
00028 #include <xercesc/util/XercesDefs.hpp>
00029 
00030 class ASTNode;
00031 class TupleNode;
00032 class LocationInfo;
00033 class DynamicContext;
00034 class EventHandler;
00035 class Sequence;
00036 class VariableStore;
00037 
00038 XERCES_CPP_NAMESPACE_BEGIN
00039 class DOMXPathNSResolver;
00040 XERCES_CPP_NAMESPACE_END
00041 
00045 class XQILLA_API StackFrame
00046 {
00047 public:
00048   virtual ~StackFrame() {}
00049 
00050   const LocationInfo *getLocationInfo() const { return location_; }
00051   const StackFrame *getPreviousFrame() const { return prev_; }
00052 
00053   virtual Sequence query(const XMLCh *query) const;
00054   virtual void query(const XMLCh *query, EventHandler *events) const;
00055 
00056   virtual const ASTNode *getASTNode() const = 0;
00057   virtual const TupleNode *getTupleNode() const = 0;
00058   virtual std::string getQueryPlan() const = 0;
00059 
00060 protected:
00061   StackFrame(const LocationInfo *location, DynamicContext *context);
00062 
00063   const LocationInfo *location_;
00064 
00065   DynamicContext *context_;
00066   Item::Ptr contextItem_;
00067   size_t contextPosition_;
00068   size_t contextSize_;
00069   const VariableStore *variables_;
00070   const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver *nsResolver_;
00071   const XMLCh *defaultElementNS_;
00072 
00073   const StackFrame *prev_;
00074 
00075 private:
00076   StackFrame(const StackFrame &);
00077   StackFrame &operator=(const StackFrame&);
00078 };
00079 
00080 #endif
XQilla-2.3.0/docs/simple-api/StaticContext_8hpp.html0000644000151400015140000001537711653571064017261 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

StaticContext.hpp File Reference

#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/simple-api/XQilla.hpp>
#include <time.h>
#include <xqilla/schema/DocumentCache.hpp>
#include <xercesc/util/PlatformUtils.hpp>
#include <xercesc/util/XMemory.hpp>
#include <xqilla/schema/DocumentCache.hpp>
Include dependency graph for StaticContext.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  StaticContext
 The parse time static context interface. More...

Namespaces

namespace  xercesc

Typedefs

typedef std::vector< ASTNode
*, XQillaAllocator< ASTNode * > > 
VectorOfASTNodes
typedef std::vector
< XQUserFunction
*, XQillaAllocator
< XQUserFunction * > > 
UserFunctions

Typedef Documentation

typedef std::vector<XQUserFunction*, XQillaAllocator<XQUserFunction*> > UserFunctions
typedef std::vector<ASTNode*,XQillaAllocator<ASTNode*> > VectorOfASTNodes
XQilla-2.3.0/docs/simple-api/XQException_8hpp.html0000644000151400015140000002154411653571064016665 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

XQException.hpp File Reference

#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/utils/XStr.hpp>
Include dependency graph for XQException.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  XQException

Defines

#define XQThrow(type, function, reason)   throw type(function, reason, this, __FILE__, __LINE__)
#define XQThrow2(type, function, reason)   throw type(function, reason, 0, __FILE__, __LINE__)
#define XQThrow3(type, function, reason, location)   throw type(function, reason, location, __FILE__, __LINE__)
#define XQSimpleThrow(reason, xqfile, xqline, xqcolumn)   throw XQException(reason, xqfile, xqline, (unsigned int)xqcolumn, __FILE__, __LINE__)

Define Documentation

#define XQSimpleThrow (   reason,
  xqfile,
  xqline,
  xqcolumn 
)    throw XQException(reason, xqfile, xqline, (unsigned int)xqcolumn, __FILE__, __LINE__)
#define XQThrow (   type,
  function,
  reason 
)    throw type(function, reason, this, __FILE__, __LINE__)
#define XQThrow2 (   type,
  function,
  reason 
)    throw type(function, reason, 0, __FILE__, __LINE__)
#define XQThrow3 (   type,
  function,
  reason,
  location 
)    throw type(function, reason, location, __FILE__, __LINE__)
XQilla-2.3.0/docs/simple-api/classStaticType__inherit__graph.md50000644000151400015140000000004011653571063021543 00000000000000ec3f280b0bcb356b9464667857877ca6XQilla-2.3.0/docs/simple-api/classATGYearOrDerived__inherit__graph.png0000644000151400015140000002056011653571064022623 00000000000000‰PNG  IHDR]c%s1bKGDÿÿÿ ½§“ IDATxœí{XW‡Ϙ€Š —Ä*ˆUÑZi½P‹íZ·k?/Ø‚µJ]A\KW ^êŠn«û`­ºÛÕÅb­t• ”.îr+b!©XCT €H4ˆÌ$óýqìl I¸™ž÷á™É™s~3oæÌ…$‡ i`Ða˜¥`z†Xb`aˆÁíºèµ×^üƒdeeé-!º^%áïï?nܸÁJ…1Àýû÷ \ÃÓ]¤¤¤t]ŽLRRR ÚÁç0ÄÀ C , 1°0Äè£0B‡‘#GÎ;·¬¬ÌDyš¦ß}÷][[Û¾5g.êëëCBB<<ôóó³±±III)**zçw‚ƒƒÿóŸÿô¿f©TÊçóû_OO0𤣇Œ3ÆÙÙàììüÙgŸ …ƒ…;::îîî}n®ÿìÙ³gáÂ…'Ož„³S¦LihhøüóÏ÷»ßõ³f­VûðáÃ~ì]oÍ@nœUUUÌlKK‹µµµZ­†³QQQ`̘1QQQ<  ¨ªªdgg7îòåË] ÀF½½½8@Ó4I’111ãÆãóùkÖ¬Q(Æê§iÚÙÙùêÕ«º[ÑÚÚz÷î]8­P(Ö®]ËãñÆŽûÑGuttÀHðUÝé®1ºÝ:Š¢>ûì3///[[Û—_~911Ñàž×ÅØsß…•••µ¶¶¶¶¶ÖÕÕmÚ´)44”yõÀ+V¬¸wïžX,ž9sæŽ;t7ØD7Þx#77W¥Ru-]¹r¥B¡ˆ<|øðàÁƒ¾¾¾b±X"‘Ì™3'**ÊXý …ÐÒÒbl‹V¯^xçαX ££.‹Å#FŒÐÍ\YY©+L/F·[7räȲ²2¦À7ú,Ì ÷a666ëÖ­»yó&ýë‘Ççó …¢°°Poc¬¬¬L6ì™À®®®2™ N—••íß¿ßÄêK—.=tè­Ó=$&&’$icc# 9ŽT*…Ëïܹ3vìX8MQ ®®N·]½Ýn‡‡Gyy9SàæÍ›&VAï/:îÞ½ P*•p622råÊ•2™¬¼¼|Μ9›7oÖ{ö¡€^£pzÏž=Ó¦M“H$‰dîܹ6l0±zSSÇ[½zuAAAyyùÞ½{p•ÀÀ@©T*‘H|}}cbbúPÀàžR«ÕQQQ®®®öööÁÁÁÌ)Êàê4MËd²•+WºººÚÙÙ½øâ‹éééL‹---kÖ¬áñx...[¶lÝã¾}û&MštñâEÂH’œ7ož­­­±Ö)Š:xð §§ç¨Q£^zé%xÄ›ÞÃf†hðÿÃX†Xb`aˆ…!†Xb`aˆÁNaµµŠº:…¥S †?ªýüóÏ …B‹2 ÍÍ|Ÿßlé }§±±þ#Bo¹ J¤D*åá奱t¾ãèèèííÝu¹# unݪ <ÈÉÙæããbé8f†…ç°ôô2.w—Ëùþ{SŸ¼C¶ £i:)éEi)J“”dèë:ˆÃ6aÅŲ¦&%œnlT–”È,Çü°MØ… ¥VV8meÅIK»aÙ~¬Ö]òø±º  ÊRyV KK+árŸÙ".—‰J,•g `0µšÌÈ(§¨gn–)J›‘Q®V“–JevØ#,;»B­¦º.W«ÉœK~kƼ°GXjj1‡càKW‘šÊž^‘%ÂZ[Õ¹¹· ^R”6'§B¥z2ø©–ËÌ”0Wó]!IMf¦x0ó ,yø«P´)•ÿ» ßµKØ¿9³dô莎£,ÌÜôý˜C GÇQº>F²Œϳ\¢‚%]âo, 1°0ÄÀ C , 1°0ÄÀ C , 1°0ÄÀ C , 1°0ÄÀ C , 1°0ÄÀ C , 1°0ÄÀ C , 1°0ÄÀ C , 1°0ÄÀÂch}3;;›b¨?œ;W Ûÿª&Nœ¸hÑ¢þ×c6q8‘î1×okr8ö޽Yª ²ô^y†!×%šeQÔ#ŠzÔÿz†à³9aÓ`aˆ…!†Xb`aˆ¤0‚ ª««-Â2 )ŒA*•òù|K§TЦÕj>|héƒ ÚÂüýýÎÎÎp–$Éèèh¡P(¢££I’‘àãã3fÌ˜ØØØ3gÎL˜0ÁÞÞ~÷îÝ–ŒÞWÐG°nhh€³GŽ©©©)..ÎÉÉÉÍ͉‰Ë³³³‹ŠŠbccwîÜ™‘‘!‹<¸oß>$Îþ?p3#AAA=y–~«\o|uooo¹\§³²²f̘ —––Ò4ÝÙÙ©7­;Ø{ò &,ù½DˆL&sqùßpFööOØÛÙÙ¬¬¬ô¦Qí.Q>ŸÏ4 …v˜,ƒ ÂT*œX¾|ùÎ;ïÞ½+‹/^|ìØ1ËÐæáá1oÞ<¦Ü·oŸŸŸß«¯¾:}úôX6Þ@€ä9Œþõc \.÷òåËÌr;;»„„„„„ƒ…ML#ÚGØo, 1°0ÄÀ C , 1°0Ä`§°ööÎööNK§†Ü³T*=qâD?+)/L`Ú´þ~Z[*•Nœ8±Ÿ•˜—!'¬¤¤$<<¼Ÿ•89ýMƒcÇ.ô?ÏP6´¾½bš›U~~1ååŸ89±aÌ0]XxËÌÓ4 iúßÿfɨ|º°PXJJMè””"Kg1?lvÿ~Ë÷hšÖjAiéÝû÷[,Ḛ̀MØ÷ß—q8O7ŠÃ!¾ÿ¾Ì²yÌÛ„={,¢è³g¯[6Ùa•°Û·*+tЕ• ·o7]AX%ìâÅ\.Gw —ËIO¿a©<{„Ñ4}îÜÿúCEiΞ½Î¦{Mö++»_W§èº¼®NQ^~ðó ìváB©^ár9.”~ž‚%Â4íùóúý!„¢4çÏk4ÚÁO5°DXa¡T¡hçr9ÖÖ\½?.—ÓÒÒvíš~`g(0äžÖ÷ .wØ®]o2³å€7ßœ®[À±>­„‡Ÿ?¾ÖÒAÌKÞw¿°0ÄÀ C , 1°0ÄÀ C , 1°0ÄÀ C , 1°0ÄÀ C , 1°0ÄÀ C , 1°0ÄÀ C , 1°0ÄÀ C , 1°0ÄÀ C , 1zñ L‚ 4Š9ÒÐÑñ‹¥ƒô”ž[èÝwœ·lÙòÒK/õ>Æ(?ýôÓ‘#Gz^¾wÂüýýƒ‚‚z cŠÞ~ÇŸÃ C , 1°0ÄÀÂc@„}úé§AÄÆÆZ¼=ª««MÜM&''†(+B?l~a4M'''»»»§¤¤˜·©TÊçóû“ÍÁÁaûöíÆ^}ë­·är¹\.¿zõ*@þ+¾¾¾ýiÔÌô|Œn@JJJ·ÅÊËË ‚ÈÊÊܾ}»çõw[‰Þ¸èÇ 5DÓ4|Gö¼¼ù°ää䀀€E‹y{{ëA|÷Ýw>>>NNNŸ}ö 22rýúõðU•JeccsãÆ •øûûœáì£GÖ­[ÇçóÝÜÜ¢¢¢Ôj5l%!!ÁÇÇg̘1±±±gΜ™0a‚½½ýîÝ»N—HQÔž={ÜÝÝÇŒóÞ{ï=zôÈÄÌ «ºxñâäÉ“Addä“'O$IFGG …B@M’¤¹vìSzîôàÓjµ&L8~ü8MÓ»víòõõÕ]}åÊ• …">>ððáÃüü|G’$MÓ‰‰‰¾¾¾Z­ÖD%zoüÕ«WÞ¹sG,O:uïÞ½°•àà`¥RyòäIÀªU«”JåñãÇÍÍÍL ôõõ‹Å‰dΜ9QQQº[¡×Áœ°Ì믿^YYYXXèéé 8p`ÅŠ÷îÝ‹Å3gÎܱc‡é=ÖÛ#ÌÌ ¹\nss3MÓ%%%‰D¬ž——GÓtgg' ªªŠ¢(gg眜š¦—,YkºÝýØÙÙÉáp~þùg8+‰<==a+¥¥¥L+ºÓUUUL “'O‰DpÝŠŠ f¢'Ì`NXF,Ã2)))0€···\.‡ ³²²f̘azõV˜™à299™¢(ÝKƒ”””©S§ÂiWWW€••œåp8Ë—/‰DÓ¦MËÎΆÇA·•@5ͤI“ଧ§gmm-œ¶³³cZÑÖåîÝ»^^^pÚÇÇÇÇÇÇÄFË `*ñöö†d23r;ÀÞ¾¿c˜éaÎs˜F£III9|øpë¯lݺ”O¦ß\PPPZZÚÙ³gçÍ›çææÖ“J B¡ÃáH¥OöÎ;cÇŽíyTWWW™L§ËÊÊöïßoº|לxœ*++áÛ‘ÏçWUUÁ£A¡PöììÙ³} 3Øh4ô®]× ‚Ž‹ÛÈá ó&ë!½†Ê§êssout@ …Ó.ô¶t3ÃÂsعs×9‚ËvîÛ†IìÖÖöäÒ%‰F£¥(mf¦¸½½ÓÒ‰Ì Û„egWäÓ±fIR“}Ó²yÌÛ„?_¬3G<;ËX%L¡hûñÇ_´Ú§—ÈZ­6/Ͳ©Ì «„ýûßb½š™™KåX%ìüù®—…´¡…Ãarù£¢"ÓB´ZúÚµš††Ç–JevØ#,=½Ìàs ‡HOBßê'ìvîÜuÆÀ9F˦;h–“ÉšoÝ’|„JÓ ¢¢^&küT%?„cFJJd>>®Z­Î>zÔpp°³Ã† +)‘yxôëË€C„^ü{!ÂÃOŽ_ké æ‡%]âo, 1°0ÄÀ C , 1°0ÄÀ C , 1°0ÄÀ C , 1°0ÄÀ C , 1°0ÄÀ C , 1°0ÄÀ C , 1°0ÄÀ C , 1°0ÄÀ CŒn¾ùÚk¯ Z3ÒÐà pv®·t¾’4F7‚ð÷÷7nœ¹Sa pÿþýÂÂÂn¾Älzh00ä` Ò“sð9 1°0ÄÀ C , 1Ì ŒÐÁÃÃã½÷Þ{ðàAÿ«mkk‹ŽŽž>}ºÝìÙ³ÿö·¿Q¥W&99™0Äùóçû3,‚±jËʆÀ¯Â™¾ˆ=¸¬\½zU.—×ÖÖæææ¾õÖ[nnnzÀêrçÎgºN¥Réíí™™yûöíÔÔÔ)S¦¼òÊ+Eékoo—Ëår¹üêÕ«ù¯Ô××ÑRû†±j;;;û\gOèÉe½y„1ƒ¹Ò4­Õj,XÇÈ5HO†ûŒŠŠš?¾®•Jåááßç:ûÀUk Ë܇±qãÆ~øÎfddøùùÙØØ¸¸¸ÄÆÆüýýÎÎΰI’ÑÑÑB¡P DGG“$ HLLŒ‰‰áp8Lµ£FŠŽŽNLL¬®®&"''ÇÝÝýÊ•+3À2Lž„„Ÿ1cÆÄÆÆž9sf„ ööö»wï6À ‘‘‘ëׯ‡Ó*•ÊÆÆæÆ°­‹/Nžyò¤WÕöÓ>Aï0š¦¯_¿îàà@Ó´R©´¶¶~ÿý÷kkkMMMzoÛ¬X±âÞ½{b±xæÌ™;vìP(€è5TPP  áêo¼ñFnn®J¥‚/éÕ©; V*•'Ož¬ZµJ©TÂáé››› 0XMÓùùù<$Iš¦}}}µZ-,óúë¯WVVzzzîÝ»×tµÆ°L—Hë{òäÉ­[·T*•F£ÉÏÏÏŽ~ ñöö–Ëåp:++kƌƄýôÓOpàx€X,Ö}É´08T{gg§Þ4ŒÝ5€±j)ŠrvvÎÉÉ¡izÉ’%±±±L&OJJЧ§§éjÑaò—UUU“&MX[[WVVnذA¥Rùùù,,“É\\\˜Y{{{ggç²²²E‹é–,++›5kœööîÅ(8vvv+++½icŒÕÃáp–/_.‰¦M›– Sˆ——¬¶¶¶WÕö óŸÃhšþꫯ~ÿûß:::V­Z]ZZúå—_,øöQ(………€Õ«WòÉ'†)ÖÖÖvàÀÅ‹ÃYÝ=ÞO 0FPPPZZÚÙ³gçÍ›çææÆ,‡Ç ²²ÒÕÕµ·Õöó{ðàACCC]]]~~þ²eËjjj¶nÝ xòäIgg§µµuGGÇž={­­­p•J'–/_¾sçλwïŠÅâÅ‹;v ÓÔÔxéÒ¥ªªª´´´9sæŒ;6""Â,u1ÀðÚõ“O>Y³fîò?ü°ººúúõëüñ»ï¾ÛÛj{éôìÆ0nܸիW7662¯>|ØÉÉiܸq_~ùepp°@ IrÞ¼y¶¶¶°€R© uttäñxaaammmp¹J¥ú裦Njccãëë»oß¾öövÚÈ¥¶ésóN78m,€±¶6nÜ8räH¥R©[æäÉ“ãÇçóù|ðAGG‡éj1H¿5>þøãfÖŒ÷j»è`+jµº¾¾>!!!))ÉRðÃß^píÚµ^xáý÷ßå•W˜…£G´ øë---z A\\Ü eÀGb`aˆ…!†Xb°SXm­¢®NaéB÷Õ~þùç…Bá 2 ÍÍ|ŸØ˜a‰Ä´‘nî‚‚ÌiJyAxyiº/:”pttìößF,?ìÖ­úÀÀƒ€œœm>>.Ý–G žÃÒÓ˸Üa\.çûï‡À§ÒÌ Û„Ñ4”t¢´¥IJêî«;Â6aÅŲ¦&%œnlT–”È,Çü°MØ… ¥VVO?geÅIK»aÙ~¬Ö]òø±º  ÊRyV KK+árŸÙ".—‰J,•g `0µšÌÈ(§¨gn–)J›‘Q®V›écÒCöËήP«õ¿P«ÉœœŠÁÏ3@°GXjj1‡cà;a‘šÊž^‘%ÂZ[Õ¹¹· ^R”6'§B¥z2ø©–ËÌ”0Wó]!IMf¦x0ó ,yø«P´)•ÿ» ßµKØ¿9³dô莎£,ÌܰäcnŽŽ£t}Œe ?žg¹DKºÄßXb`aˆ…!†Xb`aˆ…!†Xb`aˆ…!†Xb`aˆ…!†Xb`aˆ…!†Xb`aˆ…!†Xb`aˆ…!†Xb`aˆ…!Æ3ßÀ???)))44–?qâÄ”)Sû ÒÞÞáèèîêêZSSóõ×_:thØ0ýåèÑ£...Z­öþýû©©©aaa ¶¶¶Ý¶bkkÜç}¦/]bMMͽ{÷¶mÛV]] G >ÜÉÉÉÉÉ ¾C~…Ëå&&&>ÿüó[·nõòòòòòúàƒæÏŸÿ¯ý `gg·yóæää䯯FÀÍ›7¯\¹òç?ÿ¹?Ï\¾ýö[‡Ã‡¿øâ‹nnnóçÏ‹‹khhÈÌÌìZØÁÁÁÉɉÏçûùù}úé§...çÎëI+öööºOŒ¾ËÍÍ>}ú¬Y³ÜÝÝsss»-_ZZºbÅ ]«V­‚Ó¯¾úêÔ©Sãââhš>vìØòåË'L˜_¢(*..nÙ²eË–-‹‹‹£( ðÓO?mذañâÅ+V¬€Öëêê.\XZZúöÛoK$’¬¬¬÷Þ{O÷`1bÄ;3••¥WR/'AK—.e†4ïÚºîê—.]‚=ê_þòfx’$ÿð‡?Àº®®Õj“““׬Y³dÉ’Í›7ߺu«;¿×Â`»¬ tÛ“$Y__ïáág;:::::¬­­áøï‚ ¶lÙRPPpôèѦ¦¦uëÖ1ëž?^.—?~üСC¥¥¥§Njoo‰‰ñòòJLLŒˆˆˆôè,|öìÙ;v¸¸¸´´´xzzêÅðôô¼wïžnI//¯®iÝÜÜêëëµnpõÀÀÀüü|ø¸ïúõëÇŸ={¶ÁÕSSSSRRÂÂÂΜ9³fÍš¾ uÚka¿üòKSSÓ‚ ,Éd555&ÊÃÅ™kŠ%:0eÜÜÜBBBD"QDD„ ³<33óÃ?'N /**²¶¶þúë¯###y<ž@ ´µµÁÂaaa~~~LCz¡Õj{RÒDëWùå—•JåíÛ·999‹/†W7]WOOO߸qãüùóy<Þœ9súÖ£öú¢#77W£Ñ¼õÖ[Ì’¼¼<¦늓““µµumm-|KÂ#²µµuéÒ¥ºÅ-ZtúôéW_}UwaCCÊ+˜ÙQ£Fq¹ÜÚÚÚÏ?ÿ¼££CïqwwØÚÚ:99UWWÏš5K÷Õêêêçž{N·¤Ajkk™C¿këW>|øÜ¹sóóó=<<®^½oluŠ¢tý‰'‹a‚Þ Ójµyyy›6mzóÍ7á’S§Nååå…††»L bæÌ™[¶lavíHáêz•ØÛÛ9rdìØ±•JÕÒÒòäÉ“½{÷îÝ»÷¥—^"IR÷:‚Ë}º-‹-úöÛoýüü˜Ó˜Z­NJJbvSRš¦ÓÓÓýýýµnlõÀÀÀþóŸžžžÏ=÷œ›››±Õcbbîܹïg2™Ì` Óô®K‹Å …âµ×^ù+‹-ª­­­®®6±ÖÿøÇÿþ÷¿Ç—J¥ÕÕÕ§OŸÎÈÈ0¶×t™?~|||cc£T*ݶmÛ… H’¤(ŠËåvvv“J{{»ÞZk×®U([·n-**ª­­½|ùrDDŸÏ×í=zÔÒÒÒÜÜ\^^¾{÷n¹\Î\ umÝXÎÙ³g«Tªo¾ùF·ŸïºúÒ¥K¿úê«‚‚‚–––¢¢¢„„„n÷@Wzw„å4àQIDATææÎœ9S÷ÖÒËËËÕÕ5//Ïà92iÒ¤/¾ø"...==ÏçÏž=û‹/¾Ø¼ys·Í­_¿þèÑ£6l bÁ‚áááLjˆØ·oßÈ‘#CBB·mÛvôèQݵlllNœ8qêÔ©¸¸¸úúz—ÀÀÀ   ++«®M01Á´iÓNœ8Át}][on6 XQilla Simple API Documentation SourceForge.net Logo

AutoContextItemTypeReset Class Reference

#include <ContextHelpers.hpp>

List of all members.

Public Member Functions

 AutoContextItemTypeReset (StaticContext *context)
 AutoContextItemTypeReset (StaticContext *context, const StaticType &sType)
 ~AutoContextItemTypeReset ()

Protected Attributes

StaticContextcontext_
StaticType sType_

Constructor & Destructor Documentation

AutoContextItemTypeReset::AutoContextItemTypeReset ( StaticContext context) [inline]
AutoContextItemTypeReset::AutoContextItemTypeReset ( StaticContext context,
const StaticType sType 
) [inline]
AutoContextItemTypeReset::~AutoContextItemTypeReset ( ) [inline]

Member Data Documentation


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/bc_s.png0000644000151400015140000000124511653571063014240 00000000000000‰PNG  IHDR /ð9ÐlIDATxíÝKHTmðÿóžwfÎgæÌ¯å8ŽÓ˜—Š6ñ-BÚ´‘]d–VZMa…D}ßg¸háB¤¶*Ñýbå¥U9Š—3ƒŽFy<£‹ šaæè²í³yøÿÎóžÅóî©ýÁÇåþtðªÚ %”8Vj•LÜlø·ÅCF@mÃÿˆÞ[”ïü À7ªj¿RÀ•ûC0TâU‹Y¸øYÕú’ÿsv~Æî,Ûi)€.w €™ˆæwø\cT i Ðúÿ`¼owgÛö»âH0¤5%À¥ÿ>Äû\.°ÉÒ×*O0¬-c}BàÞûä+msË…VÑÔ5Ö:€Îß}— *l’©Çç–cÁV¸€OÅ^ÅaâìÔXxñ)µÜ0‚ãé²xrKfÚÜxx±Ššo½5Ièk±WaŒÑjºùÆà¶;ÛVá´[¨ñÆ«Í@¥ÃfnöäØ¿°ÍRÕ.‡¨¬®B¥×_C™ˆæK|.¬ý²Ÿ®½0‚3ŠTŸ¥H¡‰½†Ž¶=7‚ ßã´™8k˜œÑ_Ó‘«Ï’Ã2«Èz·:V&fôBv—Ní9iVÎY— Õµ>‰‡.Qx{¾E“³ú»Ê‡˜'‰|dj6ÚØ‡ÚÀãx?åÏsJ‚@uÓ‘hbI„Ò½‡Ö2ì“,¼F¶[bÓ‘h e'«Ïõ@;Û^d•x·‰þ›¶ôg2Fa¿G^ÿ @,é) êlß… §Të’-ãêÜRý†—UÙÜ*È•EΩ64·4lÜÄÙ #èjDßþú Ųo{”N IEND®B`‚XQilla-2.3.0/docs/simple-api/SchemaValidatorFilter_8hpp__incl.map0000644000151400015140000000003511653571064021637 00000000000000 XQilla-2.3.0/docs/simple-api/doxygen.css0000644000151400015140000002735511653571063015025 00000000000000/* The standard CSS for doxygen */ body, table, div, p, dl { font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif; font-size: 12px; } /* @group Heading Levels */ h1 { font-size: 150%; } h2 { font-size: 120%; } h3 { font-size: 100%; } dt { font-weight: bold; } div.multicol { -moz-column-gap: 1em; -webkit-column-gap: 1em; -moz-column-count: 3; -webkit-column-count: 3; } p.startli, p.startdd, p.starttd { margin-top: 2px; } p.endli { margin-bottom: 0px; } p.enddd { margin-bottom: 4px; } p.endtd { margin-bottom: 2px; } /* @end */ caption { font-weight: bold; } span.legend { font-size: 70%; text-align: center; } h3.version { font-size: 90%; text-align: center; } div.qindex, div.navtab{ background-color: #EBEFF6; border: 1px solid #A3B4D7; text-align: center; margin: 2px; padding: 2px; } div.qindex, div.navpath { width: 100%; line-height: 140%; } div.navtab { margin-right: 15px; } /* @group Link Styling */ a { color: #3D578C; font-weight: normal; text-decoration: none; } .contents a:visited { color: #4665A2; } a:hover { text-decoration: underline; } a.qindex { font-weight: bold; } a.qindexHL { font-weight: bold; background-color: #9CAFD4; color: #ffffff; border: 1px double #869DCA; } .contents a.qindexHL:visited { color: #ffffff; } a.el { font-weight: bold; } a.elRef { } a.code { color: #4665A2; } a.codeRef { color: #4665A2; } /* @end */ dl.el { margin-left: -1cm; } .fragment { font-family: monospace, fixed; font-size: 105%; } pre.fragment { border: 1px solid #C4CFE5; background-color: #FBFCFD; padding: 4px 6px; margin: 4px 8px 4px 2px; overflow: auto; word-wrap: break-word; font-size: 9pt; line-height: 125%; } div.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px; padding: 0.2em; border: solid thin #333; border-radius: 0.5em; -webkit-border-radius: .5em; -moz-border-radius: .5em; box-shadow: 2px 2px 3px #999; -webkit-box-shadow: 2px 2px 3px #999; -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); } div.groupHeader { margin-left: 16px; margin-top: 12px; font-weight: bold; } div.groupText { margin-left: 16px; font-style: italic; } body { background: white; color: black; margin: 0; } div.contents { margin-top: 10px; margin-left: 10px; margin-right: 10px; } td.indexkey { background-color: #EBEFF6; font-weight: bold; border: 1px solid #C4CFE5; margin: 2px 0px 2px 0; padding: 2px 10px; } td.indexvalue { background-color: #EBEFF6; border: 1px solid #C4CFE5; padding: 2px 10px; margin: 2px 0px; } tr.memlist { background-color: #EEF1F7; } p.formulaDsp { text-align: center; } img.formulaDsp { } img.formulaInl { vertical-align: middle; } div.center { text-align: center; margin-top: 0px; margin-bottom: 0px; padding: 0px; } div.center img { border: 0px; } address.footer { text-align: right; padding-right: 12px; } img.footer { border: 0px; vertical-align: middle; } /* @group Code Colorization */ span.keyword { color: #008000 } span.keywordtype { color: #604020 } span.keywordflow { color: #e08000 } span.comment { color: #800000 } span.preprocessor { color: #806020 } span.stringliteral { color: #002080 } span.charliteral { color: #008080 } span.vhdldigit { color: #ff00ff } span.vhdlchar { color: #000000 } span.vhdlkeyword { color: #700070 } span.vhdllogic { color: #ff0000 } /* @end */ /* .search { color: #003399; font-weight: bold; } form.search { margin-bottom: 0px; margin-top: 0px; } input.search { font-size: 75%; color: #000080; font-weight: normal; background-color: #e8eef2; } */ td.tiny { font-size: 75%; } .dirtab { padding: 4px; border-collapse: collapse; border: 1px solid #A3B4D7; } th.dirtab { background: #EBEFF6; font-weight: bold; } hr { height: 0px; border: none; border-top: 1px solid #4A6AAA; } hr.footer { height: 1px; } /* @group Member Descriptions */ table.memberdecls { border-spacing: 0px; padding: 0px; } .mdescLeft, .mdescRight, .memItemLeft, .memItemRight, .memTemplItemLeft, .memTemplItemRight, .memTemplParams { background-color: #F9FAFC; border: none; margin: 4px; padding: 1px 0 0 8px; } .mdescLeft, .mdescRight { padding: 0px 8px 4px 8px; color: #555; } .memItemLeft, .memItemRight, .memTemplParams { border-top: 1px solid #C4CFE5; } .memItemLeft, .memTemplItemLeft { white-space: nowrap; } .memTemplParams { color: #4665A2; white-space: nowrap; } /* @end */ /* @group Member Details */ /* Styles for detailed member documentation */ .memtemplate { font-size: 80%; color: #4665A2; font-weight: normal; margin-left: 9px; } .memnav { background-color: #EBEFF6; border: 1px solid #A3B4D7; text-align: center; margin: 2px; margin-right: 15px; padding: 2px; } .memitem { padding: 0; margin-bottom: 10px; } .memname { white-space: nowrap; font-weight: bold; margin-left: 6px; } .memproto { border-top: 1px solid #A8B8D9; border-left: 1px solid #A8B8D9; border-right: 1px solid #A8B8D9; padding: 6px 0px 6px 0px; color: #253555; font-weight: bold; text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); /* opera specific markup */ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); border-top-right-radius: 8px; border-top-left-radius: 8px; /* firefox specific markup */ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; -moz-border-radius-topright: 8px; -moz-border-radius-topleft: 8px; /* webkit specific markup */ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -webkit-border-top-right-radius: 8px; -webkit-border-top-left-radius: 8px; background-image:url('nav_f.png'); background-repeat:repeat-x; background-color: #E2E8F2; } .memdoc { border-bottom: 1px solid #A8B8D9; border-left: 1px solid #A8B8D9; border-right: 1px solid #A8B8D9; padding: 2px 5px; background-color: #FBFCFD; border-top-width: 0; /* opera specific markup */ border-bottom-left-radius: 8px; border-bottom-right-radius: 8px; box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); /* firefox specific markup */ -moz-border-radius-bottomleft: 8px; -moz-border-radius-bottomright: 8px; -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 60%, #F7F8FB 95%, #EEF1F7); /* webkit specific markup */ -webkit-border-bottom-left-radius: 8px; -webkit-border-bottom-right-radius: 8px; -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.6,#FFFFFF), color-stop(0.60,#FFFFFF), color-stop(0.95,#F7F8FB), to(#EEF1F7)); } .paramkey { text-align: right; } .paramtype { white-space: nowrap; } .paramname { color: #602020; white-space: nowrap; } .paramname em { font-style: normal; } .params, .retval, .exception, .tparams { border-spacing: 6px 2px; } .params .paramname, .retval .paramname { font-weight: bold; vertical-align: top; } .params .paramtype { font-style: italic; vertical-align: top; } .params .paramdir { font-family: "courier new",courier,monospace; vertical-align: top; } /* @end */ /* @group Directory (tree) */ /* for the tree view */ .ftvtree { font-family: sans-serif; margin: 0px; } /* these are for tree view when used as main index */ .directory { font-size: 9pt; font-weight: bold; margin: 5px; } .directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; } /* The following two styles can be used to replace the root node title with an image of your choice. Simply uncomment the next two styles, specify the name of your image and be sure to set 'height' to the proper pixel height of your image. */ /* .directory h3.swap { height: 61px; background-repeat: no-repeat; background-image: url("yourimage.gif"); } .directory h3.swap span { display: none; } */ .directory > h3 { margin-top: 0; } .directory p { margin: 0px; white-space: nowrap; } .directory div { display: none; margin: 0px; } .directory img { vertical-align: -30%; } /* these are for tree view when not used as main index */ .directory-alt { font-size: 100%; font-weight: bold; } .directory-alt h3 { margin: 0px; margin-top: 1em; font-size: 11pt; } .directory-alt > h3 { margin-top: 0; } .directory-alt p { margin: 0px; white-space: nowrap; } .directory-alt div { display: none; margin: 0px; } .directory-alt img { vertical-align: -30%; } /* @end */ div.dynheader { margin-top: 8px; } address { font-style: normal; color: #2A3D61; } table.doxtable { border-collapse:collapse; } table.doxtable td, table.doxtable th { border: 1px solid #2D4068; padding: 3px 7px 2px; } table.doxtable th { background-color: #374F7F; color: #FFFFFF; font-size: 110%; padding-bottom: 4px; padding-top: 5px; text-align:left; } .tabsearch { top: 0px; left: 10px; height: 36px; background-image: url('tab_b.png'); z-index: 101; overflow: hidden; font-size: 13px; } .navpath ul { font-size: 11px; background-image:url('tab_b.png'); background-repeat:repeat-x; height:30px; line-height:30px; color:#8AA0CC; border:solid 1px #C2CDE4; overflow:hidden; margin:0px; padding:0px; } .navpath li { list-style-type:none; float:left; padding-left:10px; padding-right:15px; background-image:url('bc_s.png'); background-repeat:no-repeat; background-position:right; color:#364D7C; } .navpath li.navelem a { height:32px; display:block; text-decoration: none; outline: none; } .navpath li.navelem a:hover { color:#6884BD; } .navpath li.footer { list-style-type:none; float:right; padding-left:10px; padding-right:15px; background-image:none; background-repeat:no-repeat; background-position:right; color:#364D7C; font-size: 8pt; } div.summary { float: right; font-size: 8pt; padding-right: 5px; width: 50%; text-align: right; } div.summary a { white-space: nowrap; } div.ingroups { font-size: 8pt; padding-left: 5px; width: 50%; text-align: left; } div.ingroups a { white-space: nowrap; } div.header { background-image:url('nav_h.png'); background-repeat:repeat-x; background-color: #F9FAFC; margin: 0px; border-bottom: 1px solid #C4CFE5; } div.headertitle { padding: 5px 5px 5px 10px; } dl { padding: 0 0 0 10px; } dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug { border-left:4px solid; padding: 0 0 0 6px; } dl.note { border-color: #D0D000; } dl.warning, dl.attention { border-color: #FF0000; } dl.pre, dl.post, dl.invariant { border-color: #00D000; } dl.deprecated { border-color: #505050; } dl.todo { border-color: #00C0E0; } dl.test { border-color: #3030E0; } dl.bug { border-color: #C08050; } #projectlogo { text-align: center; vertical-align: bottom; border-collapse: separate; } #projectlogo img { border: 0px none; } #projectname { font: 300% arial,sans-serif; margin: 0px; padding: 0px; } #projectbrief { font: 120% arial,sans-serif; margin: 0px; padding: 0px; } #projectnumber { font: 50% arial,sans-serif; margin: 0px; padding: 0px; } #titlearea { padding: 0px; margin: 0px; width: 100%; border-bottom: 1px solid #5373B4; } XQilla-2.3.0/docs/simple-api/classATDateTimeOrDerived__inherit__graph.png0000644000151400015140000002043311653571064023307 00000000000000‰PNG  IHDR¥]íÿ:MbKGDÿÿÿ ½§“ IDATxœí{Tgþ‡ß˜Á DÄ  P\[o±.èZ»ÕU/õò¥ÇÒm ÖÚ¶Ò= Õžž¶Š¢è*V±¶våvØVAP.‰Ê–`Dr‰ Á@&Éüþ˜š¦! äBFxßçðÇ;“w¾ó™y˜™Ì$™¡à8Ð0Šì«‚|Ãò È7\ÐŒ ¤¤$11q(¢ Œ% ..ΨIŒöÝÖÖVPPbì„ËRZZ:~üxc§2Ú7Aff¦i",Ehh¨ S¡ã7\ ßp|Ãò È7\ •oŠcÆŒY´hQuuµþ8ŽoÚ´ÉÞÞ~ˆò ’–––ðððÉ“'ÛÛÛÏ;777—”õõõ e(*áö}óæM‘H$‰x<ž——×úõë |×ÒÒrþüùû÷ï]žéììôóó³³³ËÈÈ(//ß°aCXXØþóó+ …B‹e~ó1ñü{08;;»¸¸\\\<ÈápÚÛÛÙl¶ÎÎ2™ àîî>ty$!!aéÒ¥'Ož$_zé¥ÖÖÖ/¾øâoû›™•U*Ugg§Ù-€•Žßt:ÝÆÆ†Á`ƒ†ÅÆÆr86›‹aØ‚ Äÿ‡ÎÄ.®°°ÐÝÝý—_~éß@¡PΟ?ïãããäätðàA€B¡HHHpwwwvvÞ²eËÓ§OõÕdgg¿û±N:E´Ÿ>}ºuëV‹åææÓÛÛ«¹×Õl÷1àÒ)•ÊC‡M›6ÍÁÁaÑ¢E·nÝàF’‘‘1˜©ÕÕÕÝÝÝÝÝÝ?~ûí··mÛ¦~599988¸©©‰ÇãÍ™3gïÞ½@³¬¾¯¿þzQQ‘T*íߘéºuëÄbqjj* ³³óСC¾¾¾<ÏçÏŸ??&&F_}±X èêêÒ·D7n |ðàÇ›1cÆþýû53k¶ûÇpéŽ9Âf³srrZZZ~øá.—;àJ P„Cè[{{ûû÷ï«_õöö‰DD;??öìÙZkD_§¯1ÓââbÇår9@ LŸ>=''‡èvÿþ}u»ÿä]]]±X¬sqär9•J½{÷.1˜““ãééiÀ·VŒ—nÚ´igΜQwø÷¿ÿ=ü| ¢ÝÓÓóÁ,X°@ýª­­­æƒÁÐZ#ú:Èår}ˆ™þú믚lmmù|~ÿx:'çp87nÜÐìV^^þÊ+¯ôôôŸ¿hÑ¢ˆˆ“?yò„ÉdnܸñÆ555û÷ï\½z•˜$<<<00P(òù|__ßøøøöövÀ©S§~ûí·5kÖí[+¾»»[ßÜ¿úê+6›}ùòe‘HtíÚµ©S§¸’_Üý9ŽãJ¥rܸq>$%ɶmÛÆÏd2###{zz´tšÐ×µ¢{{{cbb¸\.ƒÁ SžuNŽãxCCúuë¸\®ƒƒÃ¼yó®\¹¢žcWW×æÍ›™L¦««ë{ï½GìÛ=<<òòò øÆ0ÌßßßÞÞ^ßÜ Å¡C‡<==ÇŽ»páBbcx ›æ›‚ù}äÌÌLÃWNÖøüÛØ/" ëçp|Ãò È7\ ßp|Ãò È7\@êûÖ-!ÙÈÁÄï·,[¶Ì²9¬ŒPèáæöÈÆFNvÓáóùÆNe´ï‰'÷Éd4™lŒ\îÂát“Åtˆ¯Í…Ñ×ÏG‡]ûòËë“&1KK?!;‹µñø•Uhl쬭m!;‹µÎwUUSs³@§S³³ïÇÚ@çûòåJ À0eVV…J×á .ßJ¥êÒ¥ …BI ¶·w——Ãub—ïÒÒz±ø™zN§ææV’˜ÇúÀå;'§’Fûc‘1L™—W‰aJ#Yˆ|ËåŠ+Wª •æH‰¤ï¿ÿ­#+’õÈwQQ­LÖ§5’F£ää@ô."ß99wú-\¡PýøcͳgÃøÂªQÀâ[*í»~ýžR©êÿ†) †ìûý/°øÎÏ¿'—+ô½ Ï»tX|_¾¬×¨J…×J$2kæ! X>/inkîÌ.L<11ÑÁÁÁÏÏï¯ýë¬Y³’““ÉG #ðø?ÿFûùçŸÕãÒÒÒÒÒÒtv6ÐIŒäíÑä.o¸@¾áù† ä.o¸€ÔwG‡”ìä0ü®·>}úÔÌ"YYß|ÓÅÖ–j‘HÈáçÛüŸ Ž5šÍ޼q#K&«µH¤aÄ0ÛŸ[ä3à³g‹)êoì¶HµaôcA0ì|[„ìì;PÊÊê;;¡;ŠC绵õ·[·„àPòòªÈŽcm ó—WE¥R*ž™YAvkשּׁ ¥à8Îç775Áõ…e¸| …í÷ï·àÏ?Û¦R¡Û¥Ãå;7·’Fûãœ[©Ä³²àÚ¥Ãå;+«B¡Pªq¯¯R[+"1’•ȷΣ5F½|¹’”<¤‘ïË—+étí ¨ …23³¡ßVë,¾U*üÒ¥Û¦ìÿR[›¤²²Ñú‘Hß·n ÛÛ»u¾D£QssaÙ¥Ãâûûï«66´þ*~åJ•R©";£5~Ÿ™ÆŒnüwõàáÃÿyóÍYÓ¦¹¨Çüö›ÌÉi,ѬÊ0»Ÿ¦¥àrßKIykÕªÙd±6°ìÏÈ7\ ßp|Ãò È7\ ßp|Ãò È7\ ßp|Ãò È7\ ßp|Ãò È7\ ßp|Ãò È7\ ßp|Ãò È7\ ßp|Ãò È7\ ßp|Ãò ¹8Žãd/Š88øÓé,²S –Ki²ðý[233-[qäÈ V³°ïËDdeeY°:~Ãò È7\ ßp|Ã9¾8@¡P’’’H/¢E}}=…BÑ÷êÅ‹)º¨®®¶`†!…ß8Ž_¼xÑÝÝÝœK4:‹…Bˬ«(ŽŽŽ~ø¡¾WW¯^-‰D"ÑÍ›7¢çøúúš3S«b© 7ÄzLÏšš …’ŸŸøõ×_M›Î"À‚Kd«ÍÇñ ^_#aû¾xñâ’%K‚‚‚¼½½5·N …rþüy''§ƒ¢££wìØA¼*•Jíì쪪ª Y°`ÀÅå÷»?}útëÖ­,ËÍÍ-&&¦··—˜KZZš³³sRRÒ¹sç¦L™Â`0âââ€Æþ\¡P$$$¸»»;;;oÙ²Åðjuæ$JåååMŸ>ÍfGGG÷õõ0 ‹åp8l6;66Ã0K­ØAa©œAnß*•jÊ”)ÇÇqüã?öõõU¿X·nX,NMMtvv–””0™L ÃpOOO÷õõU©TŠhmv7n |ðàÇ›1cÆþýû‰¹„……I$’“'OBCC%ÉñãÇê ‡òõõåñx|>þüù111šK¡5#9‰>Ë—/¯««+++óôô$$''755ñx¼9sæìÝ»×ð³ìömmßeee4­££Çñ;wîø|þïQ(..Æq\.—B¡pqq),,Äq|åÊ•III†‹hjËåT*õîÝ»Ä`NNާ§'1—ÊÊJõ\4Û@]aúôé999Ä´÷ïßW· ´|ëÌIôáñxêõCðöö‰DÄÈüüüÙ³g^c–õmíûÝ_¼xQ¡Ph¾«ÊÈȘ1cÑær¹:N R©Ôµk׿ääÌœ9³  €Ø ,BÐÖÖ¦T*=<<ˆAOOÏææf¢íàà ž‹f[“ÆÆF///¢íãããããc`¡ô娋x{{\]]Õ †ÊǪÇo¥R™‘‘qäÈ‘îç¼ÿþûøó{î¥'$$$77733ÓßßßÍÍm0E8•J …Äàƒ&L˜0ø¨\.·¡¡hWWWþùç†û÷ÏI@l债º:â¿™Åb bk‹ÅeeeƒOe,µ£Ìþ¼¸¸˜J¥¶µµ©Çܾ}<ß©k‡¯n+ 6›ÍápNŸ>=`båvwwãÃÃÃ…B!ŸÏ÷õõ×7u[½£NHH˜9s&ŸÏçóù‹-ŠˆˆÐ\þïÏûç$ú,]ºT ”——{yy¢££×­[×ÐÐPSS3þüÝ»x ù0>~ïܹsùòåšcT*•‡‡Ç‡~ˆë7±k×®1cÆH$’‹`æïïoooOŒïêêÚ¼y3“Étuu}ï½÷d2™¹hùîí퉉ár¹ #,,L,kÎQçù˜VN¢ÏÉ“''MšÄb±Þyç"€D"Ù¶mÛøñã™LfdddOOá•6Œ}›Æ¾}ûÂÃÇ¢²eÑÊi©sôáý~Í(z{{[ZZÒÒÒ.\¸@vC —œàÿ¼äÖ­[¯¼òÊöíÛ_{í5²³BgÎqãÆíܹ“¼Pºy¡·ï%K–tuu‘b`tæd³Ù)))¤ä1À ½}#,ò È7\ ßp©o• Ƨ¦h}ýu$€ÖÂÂçc¾üõ"AápþoÏžíry3ÙI…µc±çA?zôÈÚõ˜J]Ýoß~{ïÕW9ë×{eP¸¹¹-\¸Ð"¥`|þ÷?ÿy!3³ÜÁÁöîÝD:Jv«Ýñ»·ûþû*€TÚ[TTKvkï‚‚û½½ À¨Q£²³ïÇÚ@ç;;û6•J(•ªë×ïöôô‘ȪÀå["‘Õ*¿Ÿ‰)ÊŸ~â“ÉÊÀåûÚ5¾æi7…BÉξMbë—שּׁ?ÙU*U?ÿ,èêê!+õÈ÷“'Ýeeõý¯¤^½ZCJR€È÷÷ßWõ¿ü‡ãø¥K¤ä!ˆ|geUô߸U*üÎÆæf1)‘¬,¾;ùüÇ:/&R©”+Wª¬‰`ñ}õjµ¾+Ç Ï»ôúûŠD hóöþãW[­­¿9:ÚÙÚþñCµööngg’ÒY?/p¹ï¥¤¼µjÕl²ƒXXöçä.o¸@¾áù† ä.o¸@¾áù† ä.o¸@¾áù† ä.o¸@¾áù† ä.o¸@¾áù† ä.o¸@¾áù† ä.o¸@¾áù† ä.o¸@¾áù† ³îïPRR’˜˜hÁ4VC ˜æâ"rpè&;ˆÑÄÅÅ™<¹Y÷oikk+((°àÝ÷­Æ¼yíÐOvã(--?ެ̸_Off¦ùEƒ!44ÔÌ èø È7\ ßp|Ãò ÖðMÑ`òäÉ[¶lioo7¿lOOOllì¬Y³æÎû¯ýK¡Phõ¹xñ"E—.]2çÑxúÊVWW›·LCŽ•îŸzóæÍ)S¦(•ʺºº¯¾újΜ9|>ßÑÑQgg¡P8oÞ¼ŽŽ»»»çÍ›Çáp’““§Nz÷îݸ¸¸üüü‚‚*õGŠ­^½Z$>|øê«¯mŽã~ø¡É‹£¯,“É4¹¦•ÀÍ ##c0@=¨R©âããõõ–‰‰Y¼x±B¡P‘J¥“'ONMM5¹¦ QY}„„„„„„˜S„ã7…BÙµk×?ü@ ^½zÕÏÏÏÎÎÎÕÕ5)) °`Á€‹‹ ÑÃ°ØØX‡Ãf³ccc1 ¤§§ÇÇÇknÊcÇŽMOO¯¯¯§P(………îîî¿üò‹Î Duž´´4gg礤¤sçÎM™2…Á`¨/[ê  “èèè;vm©TjggWUUEÌ+//oúôél6;::º¯¯Ï¨²–ĜӶoÇ+**q—H$666Û·oonnNOO/±$·nÝzå•W¶oßþÚk¯©GŽ7nçÎä…úhû¶$K–,éêêÒÉf³SRRHÉÓ´}Ãò È7\ ßp|ä¾oÝ’,p>¶lÙ2ó‹X¡ÐÃÍí‘œì ÆÁçóÌ©`–ï‰'ÇÉd4™lŒ\îÂá ³ß _þ1Ÿÿ}èе/¿¼>i³´ô²³XßYY€ÆÆÎÚÚ²³Xè|WU557‹t:5;ûÙq¬ t¾/_®¤Ñ¨ SfeU¨TpÎàò­Tª.]ªP(~ÿT{{wy9\'fpù.-­‹Ÿ©étjnn%‰y¬\¾sr*i´?Ôyy•¦40É"ßr¹âÊ•j…B¥9R"éûïëÈŠd} ò]TT+“õi¤Ñ(99½K‡ÈwNÎQ£´—W¡PýøcͳgÃìªÉÀâ[*í»~ýžR©êÿ†) îY?)Àâ;?ÿž\®}75ð¼K‡Å÷åËzªTxqq­D"³f²€åó’æf±æÎ|áÂÄÖ½¤ãâÂ=zä[wä/!››öm(&Mzáo¿ai`ÙŸ#o¸@¾áù† ä.o¸@¾áù† ä.o¸@¾áù† ä.o¸@¾áù† ä.o¸@¾áù† ä.o¸@¾áù† ä.o¸@¾áù† ä.o¸@¾áù†‹?ýÞ_(ÅÊ´¶–“bÈ™:u꟞š­ùpIây 0@§³GMv k õ¼Q÷ó(..¶~,ÄPðé§ŸjAÇo¸@¾áù† ä.o¸@¾áÂôû+ž={öôéÓáááĘ¢¢¢ôš¡äp8³fÍŠŠŠrtt4yîúæµÿþýû÷›yJÙÛÛ{æÌ™ŠŠ ‘Häîî¾xñâ 6P©T­nK—.U·]¨ÇoÚ´Éœœ¦U0Ñ7ŽãEEEl6»¸¸Xí{Ñ¢EÙÙÙ‘H´{÷n¢ 7nà›o¾quuU©T=ÊÎÎŽŒŒLKK³··×Y_$íÚµ+//O_}óÂq<,,Ì´…"xöìYTTÔøñãwîÜÉår>|xêÔ©Û·o>|¸ÿíÓZ(MìííÍÌi&îÏ>|ØÔÔ´gÏžúúúææfbäèÑ£œœœœœˆÿq§çÐh4€£££““‹Åòóó;pà€««kVV–¾ú*•J"‘ o^L&322Ò´…"8{ö¬££ã‘#GæÍ›çææ¶xñâ”””ÖÖÖk×®õïlÔBiÂ`0ÌÌi&ú.**š5kÖË/¿ìîî^TTdìä eÕªUeeeÄ`iiiDDÄŠ+‚ƒƒ¿ûî;ÀÛo¿ X»v-ÑA¡P¤¤¤¬Y³fÍš5))) …Þ;™?~üX½›]ºtéµk×Þzë­üãß}÷Ýõë×ÃÂÂÞxã´´4eóóó·lÙ¢¹)ÛÚÚnذ!??Ÿ(^YY¹~ýz>Ÿox¡úלü§Ÿ~"r~òÉ'G%&Á0ìÍ7ß$*ôŸ\¥R]¼xqóæÍ+W®Ü½{wmm­±«˜æ›Ø™L;¹¹¹µ´´ž={ïå啞ž•ššúôéSbäää/]º$‰Ž?~øðáÊÊÊÓ§Or.wîÜ9vìXdddjjjiié©S§¢¢¢Î;Gì<ú—•J¥]]]žžžZu<==›ššˆvffæÞ½{½¼¼ ,”ÌZ“–””w%¯¨¨=zôܹsuNž‘‘yîܹ͛7§¤¤ r%hbŠïÿýïOžýôSggçÌÌLõtý.o¸@¾áù† ä.o¸@¾áù† ××®^½jýˆ¡ ¥¥ÅÙÙYsŒ߇¶VÄ3kÖ,ÍAXžÿ @Ço¸@¾áù† ä.þȸæ=$`iIEND®B`‚XQilla-2.3.0/docs/simple-api/LocalFileFormatTarget_8hpp.html0000644000151400015140000000546611653571064020635 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

LocalFileFormatTarget.hpp File Reference

#include <xercesc/framework/XMLFormatter.hpp>
Include dependency graph for LocalFileFormatTarget.hpp:

Go to the source code of this file.

Classes

class  xercesc::LocalFileFormatTarget

Namespaces

namespace  xercesc
XQilla-2.3.0/docs/simple-api/classEventSerializer-members.html0000644000151400015140000001673311653571063021313 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

EventSerializer Member List

This is the complete list of members for EventSerializer, including all inherited members.
addNewlines(bool add)EventSerializer [inline]
addXMLDeclarations(bool value)EventSerializer [inline]
atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)EventSerializer [virtual]
attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)EventSerializer [virtual]
commentEvent(const XMLCh *value)EventSerializer [virtual]
endDocumentEvent()EventSerializer [virtual]
endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName)EventSerializer [virtual]
endEvent()EventSerializer [virtual]
EventSerializer(const char *encoding, const char *xmlVersion, xercesc::XMLFormatTarget *target, xercesc::MemoryManager *mm=xercesc::XMLPlatformUtils::fgMemoryManager)EventSerializer
EventSerializer(xercesc::XMLFormatTarget *target, xercesc::MemoryManager *mm=xercesc::XMLPlatformUtils::fgMemoryManager)EventSerializer
namespaceEvent(const XMLCh *prefix, const XMLCh *uri)EventSerializer [virtual]
piEvent(const XMLCh *target, const XMLCh *value)EventSerializer [virtual]
setLocationInfo(const LocationInfo *location)EventSerializer [inline, virtual]
startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding)EventSerializer [virtual]
startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname)EventSerializer [virtual]
textEvent(const XMLCh *value)EventSerializer [virtual]
textEvent(const XMLCh *chars, unsigned int length)EventSerializer [virtual]
useSelfClosingElement(bool value)EventSerializer [inline]
~EventHandler()EventHandler [inline, virtual]
~EventSerializer()EventSerializer
XQilla-2.3.0/docs/simple-api/classxercesc_1_1MemBufInputSource-members.html0000644000151400015140000002463011653571064023565 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

xercesc::MemBufInputSource Member List

This is the complete list of members for xercesc::MemBufInputSource, including all inherited members.
getEncoding() const xercesc::InputSource [inline, virtual]
getIssueFatalErrorIfNotFound() const xercesc::InputSource [inline, virtual]
getMemoryManager() const xercesc::InputSource [inline]
getPublicId() const xercesc::InputSource [inline, virtual]
getSystemId() const xercesc::InputSource [inline, virtual]
InputSource(MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSource [protected]
InputSource(const XMLCh *const systemId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSource [protected]
InputSource(const XMLCh *const systemId, const XMLCh *const publicId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSource [protected]
InputSource(const char *const systemId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSource [protected]
InputSource(const char *const systemId, const char *const publicId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSource [protected]
makeStream() const xercesc::MemBufInputSource [virtual]
MemBufInputSource(const XMLByte *const srcDocBytes, const XMLSize_t byteCount, const XMLCh *const bufId, const bool adoptBuffer=false, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::MemBufInputSource
MemBufInputSource(const XMLByte *const srcDocBytes, const XMLSize_t byteCount, const char *const bufId, const bool adoptBuffer=false, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::MemBufInputSource
operator delete(void *p)xercesc::XMemory
operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
operator delete(void *p, void *ptr)xercesc::XMemory
operator new(size_t size)xercesc::XMemory
operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
operator new(size_t size, void *ptr)xercesc::XMemory
resetMemBufInputSource(const XMLByte *const srcDocBytes, const XMLSize_t byteCount)xercesc::MemBufInputSource
setCopyBufToStream(const bool newState)xercesc::MemBufInputSource [inline]
setEncoding(const XMLCh *const encodingStr)xercesc::InputSource [virtual]
setIssueFatalErrorIfNotFound(const bool flag)xercesc::InputSource [inline, virtual]
setPublicId(const XMLCh *const publicId)xercesc::InputSource [virtual]
setSystemId(const XMLCh *const systemId)xercesc::InputSource [virtual]
XMemory()xercesc::XMemory [inline, protected]
~InputSource()xercesc::InputSource [virtual]
~MemBufInputSource()xercesc::MemBufInputSource
XQilla-2.3.0/docs/simple-api/ContextHelpers_8hpp__incl.md50000644000151400015140000000004011653571063020275 000000000000007eff6b44a214db7a9a48de7699bc6469XQilla-2.3.0/docs/simple-api/ATGYearMonthOrDerived_8hpp__dep__incl.md50000644000151400015140000000004011653571063022363 000000000000005163ac304d3b5ad013a149bd34210610XQilla-2.3.0/docs/simple-api/classAutoReset.html0000644000151400015140000001542311653571063016456 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

AutoReset< T > Class Template Reference

#include <ContextHelpers.hpp>

List of all members.

Public Member Functions

 AutoReset (T &orig)
 ~AutoReset ()
void reset ()

Protected Attributes

T & orig_
old_

template<typename T>
class AutoReset< T >


Constructor & Destructor Documentation

template<typename T >
AutoReset< T >::AutoReset ( T &  orig) [inline]
template<typename T >
AutoReset< T >::~AutoReset ( ) [inline]

Member Function Documentation

template<typename T >
void AutoReset< T >::reset ( ) [inline]

Member Data Documentation

template<typename T >
T AutoReset< T >::old_ [protected]
template<typename T >
T& AutoReset< T >::orig_ [protected]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/NSFixupFilter_8hpp__dep__incl.map0000644000151400015140000000023011653571064021111 00000000000000 XQilla-2.3.0/docs/simple-api/InputParser_8hpp_source.html0000644000151400015140000001574111653571063020313 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

InputParser.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef __INPUTPARSER_HPP
00021 #define __INPUTPARSER_HPP
00022 
00023 #include <vector>
00024 #include <string>
00025 #include <istream>
00026 
00027 #include <xqilla/framework/XQillaExport.hpp>
00028 
00029 class XQILLA_API InputParser
00030 {
00031 public:
00032   typedef std::vector<std::string> Args;
00033 
00034   int parse(std::istream &input, Args &args);
00035 
00036 private:
00037   void reset();
00038   void whitespace(Args &args);
00039   void character();
00040   void escapedCharacter();
00041   bool inQuotes();
00042   void quote(Args &args, char c);
00043   void openCurly();
00044   void closeCurly();
00045   void endOfArg(Args &args);
00046   void addArgument(Args &args, std::string::size_type start, std::string::size_type end);
00047   void nextLine(std::istream &input, Args &args);
00048 
00049   std::string line_;
00050   std::string::size_type start_, pos_;
00051   char quoteChar_;
00052   int curlyBraceDepth_;
00053   bool seenNonWS_;
00054   bool stripQuotes_;
00055 };
00056 
00057 #endif
XQilla-2.3.0/docs/simple-api/MessageListener_8hpp__dep__incl.map0000644000151400015140000000023111653571064021502 00000000000000 XQilla-2.3.0/docs/simple-api/functions_0x77.html0000644000151400015140000001260411653571063016310 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- w -

XQilla-2.3.0/docs/simple-api/inherit_graph_47.png0000644000151400015140000000412111653571064016464 00000000000000‰PNG  IHDRÝ(õùhçbKGDÿÿÿ ½§“IDATxœíœYLSKÇ¿RZÊ"AÊbd#â–(ôE1ð`$Ã"H…ÄÐQŒÑT .U$D@´ .Hˆ_¨§… e•@!JPX sN<÷ض÷Ê=Wç÷4ý:ÿé÷Íü™9i'pB€Á° »ÿ: ÆØ—6‚}‰a#Ø—6b¯÷úܹsmmmÿI*˜?™––æK}_ÊåòžžžÈÈÈL óG3<<üþý{½ ¾/ 22²¾¾~ERÂ` ¾¾>99Y/ˆŸ/1lûÃF°/1lûÃF°/1lä÷ôegg§½½}CC‘J¥|>_.—‡Ã Ö»°Çápz{{©Tƒ ‡££cTT”L&ûõ¥XÑä ··—ÃáØ6&­E¥¦¦º¸¸ü×å÷ôåÖ­[ËÊÊ &''`jj*//¯¼¼|Ó¦MT‡ÁÁÁ?ÒýI’´äׄwïÞ©T*•JEDppprròo|«¿¿ßÓÓ“j»¹¹>ãã㿼+1šõóó#IêêêBBBfgg`aa¡¸¸X$yyy/,,P[ý«W¯Z[[ËËËÖ¬Y“žžNídFUÐÜÜ.Ö­[WSS‹‹‹FåÌÓ„Ùæóù‰äÎ;.\¸{÷®D"áñxt IIIõõõèÇn×ØØ˜˜˜hÕ$ðx<>Ÿ/ ­ª&''322<==ýýý‹ŠŠæçç–`óÔÑ,--‰ÅâU«VEEEutt˜Qq8œÚÚÚ 6¬^½úÒ¥KÞÞÞ̬Œ—]úööv«æÀÖý2==ýÈ‘#ccc"‘¨££ƒ ^¼x1!!áË—/AlÛ¶­¤¤„úóŠ‹‹{ýúuEEÅÆ ‚Ëå;wî,**2¥š™™qpp¸qã†J¥º}û¶½½ýÌÌŒX,6*Ÿœœ¬®®6lS”””@ee%3===ÞÞÞ”ÊÉÉéÛ·o°Ü~)“É4F£ÉËËËÌ̤ߵ° „PJJÊž={úúú‚ «¨¨`nBtÛ¶©c&åÊ//¯¦¦¦ÑÑÑgÏžùúúR#›R%&&’$Y]] f²Ò .»ôTá¦0º_ÚèK’$ýýýÃÃÃ+**è`hh¨J¥¢Ú---[¶l¡’#!´~ýú¦¦&êÝîînºm¨R«Õ<ïòåË$Iêt:F³´´dJnNwàÀ.—›ššúSÍJ¥òرc¥¥¥¡ÄÄÄ ÆŠšò%—îîn3µ­B«Õr¹\…BAõljj 2ãk§Ž™|HHˆD"¡3¼wï5²)Õ›7oBZ­–Á*_š_zóü›¾D={–Ëå2°så„B!•õ`'är¹á8†*„P{{{bb¢³³ó®]»ž?nFn†šš¡Pøöí[@ðäÉ“¿kP*•­­­AAA:.>>þæÍ›È_ÒÁÙÙÙˆˆk«€¹¹9JE„@ `.ðçÏŸ™°aêè<e2ݹ³³“Ù”êÓ§OÌJ­ò¥ù¥7Ï¿ö| ÃÃÃׯ_ß»woaa!ôôô¤WŽ$Iú’õ`çëë;88HEd2ÙùóçM©æææt:]CCƒZ­ÎÊÊÚ¿¿Z­6%7ÅèèhAAX,Þ½{wyyyNNÎÄijCtt´F£ioooii‰·ª|''§ŒŒŒ®®.ôcµ° ‘HÄårûûû)U__ŸŸŸÕ^\\€‘‘æY;uLíÚµk™ß9tuu™WÙÙÙþåŒù¥·[RÑétGÍÏϯ««{ùòess3?xð`iiéÐÐA±±±UUULUZZÚ©S§ …B¡8~üøÐÐ)‡ÃÙ·oߣG¦§§µZ-Çsrr2%Ÿššºuë–^!”““ž••………"‘(??Ÿ™—ËMHHÈÉÉÙ±c‡———^_¿~c`8 ®®®fffƪ*x<^rrrAAÁÀÀ€B¡8}útJJŠ››Ü¿zzúêÕ«†ŸeùÔ1U¹¹¹ÅÅÅR©tllìÅ‹gΜ±D¥] y¬Ó"ôöOKÎñk×®mÞ¼™Ú¢?~ìãã£V«BÓÓÓ™™™îîîÙÙÙ³³³Ì­~~~¾¨¨È××W(>|˜$I*n¨¢ööÀÀ@>Ÿ*•JÍÈž,‰ÄÁÁ>˜B>|°³³kllDŒ“®µµªªª¨>À8Ç g ~>Ü—––\]]¬ª!¤V«ÓÒÒ<<<|||Nœ8Aé•••nnnR© NL«¦ŽÎsqqQ,9;;GFFR{ز*º½°°íââ‚,8ÇÍ/½yŒžã½e8tèàû—˜ƒº©çÃßó÷ÌÿìK Á¾Ä°ìK Á¾Ä°ìK Á¾Ä°ìK Á¾Ä°#ÿo£­­-&&fåSÁü™P7ÿõÐ÷%u!ƒY1ÜÝÝCCCõ‚ú¿c0l?_bØö%†`_bØö%†ü½©7HÓ*IEND®B`‚XQilla-2.3.0/docs/simple-api/EventGenerator_8hpp.html0000644000151400015140000000541011653571064017400 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

EventGenerator.hpp File Reference

#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/framework/ReferenceCounted.hpp>
#include <xqilla/runtime/ResultImpl.hpp>
Include dependency graph for EventGenerator.hpp:

Go to the source code of this file.

Classes

class  EventGenerator
class  ASTNodeEventGenerator
XQilla-2.3.0/docs/simple-api/classAutoContextInfoReset-members.html0000644000151400015140000000735311653571063022272 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

AutoContextInfoReset Member List

This is the complete list of members for AutoContextInfoReset, including all inherited members.
AutoContextInfoReset(DynamicContext *context)AutoContextInfoReset [inline]
AutoContextInfoReset(DynamicContext *context, const Item::Ptr &contextItem, size_t contextPosition=0, size_t contextSize=0)AutoContextInfoReset [inline]
oldContextItemAutoContextInfoReset
oldContextPositionAutoContextInfoReset
oldContextSizeAutoContextInfoReset
resetContextInfo()AutoContextInfoReset [inline]
~AutoContextInfoReset()AutoContextInfoReset [inline]
XQilla-2.3.0/docs/simple-api/classATGMonthDayOrDerived__inherit__graph.map0000644000151400015140000000077511653571064023445 00000000000000 XQilla-2.3.0/docs/simple-api/ATDecimalOrDerived_8hpp__incl.png0000644000151400015140000004660611653571064021037 00000000000000‰PNG  IHDR£Ã9–LbKGDÿÿÿ ½§“ IDATxœíÝy ëûð9Dz/))‘HÙ[ÜB%%K)K‰´•ºí·ºÕ½­·õV’Š(„P„rShO¨BÙ9g›ßsç{.Ç!ÝóùkÌ9óÎ33¯yμ3ï;8E(<·A¦dz@A¦™0·`Ð9xðàãǹঽ{÷ZZZr; 0X@¦€Óòóósssõôô¸àŽŒŒŒµk×r; 0ˆ@¦€ ôôôöïßÏí(wdddp;0¸À}z@A¦dz@A¦dz@Á³÷ð´ëׯ‡„„¬]»véҥ؜´´´ƒöüæ•+Wèûn©¨¨øøøÈÊÊþп~ýêáᑞž>°€»-ÞÙÙš••U]]­®®nnn¾dÉ!!¡nKÍœ9sÀ‘ÿdÀ½•0sæÌððð#F ¸XxdzxŠ¢iiiÊÊÊééé´L?mÚ´¸¸8Aª««7lØ€M#"-- ˆ¿¿¿ªª*•J­¨¨ˆ‹‹óòòºzõª””TÿW*%%åææÆ’ø¿ÿîãã#''çíí=|øð²²²àààìììS§NáñÝ9 @ Aë=¼«¬¬ìË—/;vì())©¬¬ÄfЉ‰ÉËËËËËc—¼òÿOXXAYYYyyyEEE##£ƒªªªÆÄÄüÐJedd¼¼¼Xÿõë×eeeOŸ>=yòd555ssóÀÀÀo߾ݻw¯ç—9 @ A¦€w¥¥¥˜˜˜¨««§¥¥ýèâ8nþüù/_¾Äþ$“É .\¸pa`` ™L¦P(!!!‹/vtt>>aaaáû÷ïûöí;vlxx¸Ï•+Wš››i ¶µµ566jiiu+PKKëË—/ØôÍ›7wíÚ5vìØœáâVVV=BQA¬¬,11±I“&1\<...::ÚËË+,,lÙ²e ÷^ffæ•+WvìØD °™ñññG=räHff&íÇ Ã™ðÈôð¨>ÔÖÖZXX baaQ^^^VVö3Þ»woÓ¦MÊÊÊcÆŒñöö~õêUrròªU«ÆŒ£¡¡±sçN†Cñ/^¼XBBbΜ9‚,]ºTBBÂÆÆAÖÖVQQÑàà`???eeeAÚÛÛû ‡ÃQ©TlÚËËËÈÈH\\üG#g¸ø/¿üB >~üˆ ÈÇmll°Gÿz.~çÎuëÖ™››+((L™2¥·ÆlÛ§OŸŽm/6ÓÇÇGMMMWWwÍš5©©©LfÀ#à‰<xTZZ…BY°`mNzzº††ÆRYY9|øplúÛ·oNNN´$%%I$’ššöç¨Q£FÕ³ A°‡è§±‰ÊÊÊ“'Ovttô¼.—’’’——/))111¡Ÿ_RR¢­­M«««,r†‹‹‰‰M›6íÑ£G£G~þüù•+Wz[œL&Ó76Œ3†a ‚àp8ú™´=¦®®^WWÇd&<2=¼ˆJ¥¦§§ûúúÚÛÛcsBBBÒÓÓW®\Ù-ñ0¢è;w¦NŠý)##sæÌ¬ÛÖ´¾k×®oß¾a¿JJJ^¾|éááÑÿ »ºº8pàÀ333‰Ôó9»Ù³g_¿~ÝÈȈv«¾³³322’–wi?~4òÞ·²²:þ¼–––¶¶6-ûö\|ß¾}Ÿ>}ÒÔÔľP^^Î0 †»º²²ûePQQýèm&<ZïàEyyyMMMÖÖÖCþßìÙ³+++KJJ˜/ØÜÜÜØØX__Ÿ››ûûï¿WWW»ººb™››_¹r¥¦¦¦´´tÇŽñññsæÌ *+++++;{ölMMÍI"‘Èd²°°0‘HÄîÿþþ Ë—/ojjÚ²eË«W¯*++Ÿ<==áók46lÀ&”••õõõ/_¾Lkë^½zµ¿¿ÿÚµkq8œ………··7ïììܾ}{ggçÔ©S½½½(H)))ŸC‡ 2déÒ¥VVV;vìð÷÷§}ABBâòåË!!!UUUªªªVVV..."""?y}}=Ä……--->|hiiI›Ùsq‰tñâņ†MMÍßÿÝ××A“'OÒÖËÐìÙ³·nÝÚÙÙieeåîÕw›ùC»vÃaÏ©8ÆÕÕµ®®ÞOÏw¥7€úfΜMk±€Ý õdé _$%%ú3ž™úEVVvË–-ý™ OL2Èô€ ƒL2Èô€ ƒL2Èô€ ƒÑpà‚ÜÜÜmÛ¶qeÕŠhg§‚¤d5›Ê§R…ðxÊÏ‚ Bx|PèêÂOœXÇd¸îŽáÜ\¥ÖV %¥NUÕ¶¡Cy+ß3fäȑ܎ "0î=‚ìûwbrrnRRnFÆ))ñE‹L LM5ðøþ¾úö‡ìÝ{+66ëîÝ-cÆ(ýL955-óæ16uùòŠ…J$’Þ\º”QXX¥§7bùòiNN&C†ˆþLTð)Èô 2™šžþ>1ñíýûï::H66M-,Ɖ‰±±/&&kóæÈ«WWÍ;áçKËÉ)wrº°~ý¬íÛçýL9yyAAãã_KHˆº¸Lööž¡¦&÷óáÀG Ó PJKënÝʹu+§¼¼~ܸaÎΦ‹™¨ªÊö½äÏùøñ›Ý™eË~Ù¿ŸÁ»ç&66{Ó¦çÏ»/Zdò“EÕÔ´„‡¿ yÚÜüÝÊjüš5ææÚ, Þ™AÐÚÚyçΛèè¬ìì2eå¡ŽŽÆÎΓ&LÁ™µóæVQ‘¾yÓWX˜•=zJ ~»ÁÄdÔÏ—†5éf¼Mú`L£RÑçÏ‹££³îÞÍ£R©sçNpq™-^°{·Ãºu3Ø·–OŸjíìþ¶²Òõ÷÷ÀáXÜk «‹|çΛÀÀô÷ï«'Láé9ÍÙÙ”+¿™`ÈôðE³²Ê¢¢^%%½%“©óæMtq™dn®ÍÉVúžjjZæÌ95uªf` 'Ëp7ôð¸¼i“õÖ­6lZ­I_VVbñâ)+WNgáý¸2=<­¶¶5&æUddfiiݤI®®“Œ¤¥Å¹B"Q-òomíLNÞ,))Æ5&$¼ñõ ;zÔÙÓóö­åË—†°°/ÚÛ»ll&zx˜A“>àwéàEX‡ø7^>|X(''éâ2iéÒ©?9 kýñGÂ/ïÞýUSS™c+=~üÞ… ÃýØ}±&ý‹Ó?|¨ž8QmÙ²_ Ið/Èôð–‚‚¯×®=»sçmG»¦œ6m,›†´°ÄÄ·ëÖ]¿xqÙüùFœ\/Š¢7F¤¦$$øéè¨r`X“þÝ»yrr‹OYµj:ŸŠ`` ÓÀš›¿ÇÆfcÚéè¨.]:uþ|#eewZc‰¢¢ovv/^<ùСEœ_{WÙÅ% ¦¦%)i3Ë;õõæóç†ððÿ5é¯Yc1i’gV ÀσL7¡(úôiqxø‹û÷ßáñx''3}}Þ}ýIkk§­í©˜_!®ÄÐÔÔng÷·¬¬D\ÜzNŽ{ÓÞÞuûöëààÇ?~Ó×éáaæâ2‰­ ÀéàŽÖÖθ¸œˆˆ_54”–.ââ2™7/âé­[w=3óÓ?ÿlãn¨%%µg-,´/^ôäü­ Z“¾¼¼¤«ëdhÒ<2=œöþ}ÕµkÏnÝÊ!)vvúîîfffšìî¥ÆÁÁÿø#!2ÒgÚ4-nÇ‚¼|ùiñ⋾¾³vî´åJååõ/ÃÃ_|ÿÞec3qíZ SShÒ¼2=òý;ñÖ­œ°°çùù•::ª«V™/X`4t(÷ûËõSff©«kÀöíó6l°âv,ÿºvíÙîÝqË,àèƒôÚÚºâã_=.*ú¦¯?rõjsGGcnÝ×€!Èô°Ý‡ÕW¯>IHxÓÙI²±™¸zµùäÉc¸Ô©©!Ì{rÒ¤1—//ç©æ‡ƒï?‰Žö™2…›»”ö¼ÅÝ»y ’..“W¯66L†‹!@™v!‘())ùAA³²ÊFŒ[±b_܉ï‰L¦º¹]¬©!ܽ»EJŠƒäôŠ¢›7G¦¤äß¾½qüøáܧ{“¾——%›^@ÿA¦€õ¾~m }›…½~fÍ‹Y³t¹;ríÏ8|8éêÕ'II›uu9Ñ…ýG‘HËÅÅ5II›ydüZhÒ<2=¬ôöí—«WŸ$&¾Â/\h²bÅ4==½$žM’“s½¼®ùû{,\hÌíXzÕÚÚéèxEÑøx?^*C¥¢Ïž=~ð PIIjÙ²_V¬˜®  Åí¸À ™ ‘(÷îå]¹ò8'§ÜÀ`¤‹Ë$gçI¼“r¬¤¤ÖÖöô¢E&ÇŽ¹p;–>|ûÖbg÷·ŽÎ°k×Ö óVóIYYÝ™aaÏ;;IsçNðòšab2ŠÛAA2=?¥ªª9$äittf{;ÑÉÉdÅŠé¼p·˜%::ˆööKJŠÇÅ­ç‹–çüüÊE‹üçÏ7:uj1·ca µµ3!áÍ•+Š‹k Ipdz(;»ìÊ•Ç))ùJJCW®œ¾dÉk˜]¿>ìñã¢þÙÊ#7¿û#-íýŠAÛ·ÏÛ¸q6·caŒ¾I_Yy¨‡‡ÙÊ•æòò’ÜŽ 2Èôü‰ÿ:8øI^^ŤIkÖXØØL¼+³kמíÝ{+2Ò{út>{gkDÄ‹;bΞ]êìlÊíX˜)+«»zõidäK2™:¾áºu3¦5ðÈôôWcc{HÈ“°°çMMß,0Z³Æ‚—¨ÿYYeÎÎ6ožóë¯s¸Ë@üþû툈11¾¼ßà kÒ¿|9£¤¤kÒ_¸Ð„מ3ü2=}++« ~róæ+<·dÉ”•+ÍGRàvPìÒÐÐ6wî)}ý‘ÁÁ+yjœþ£RѵkCž=+Ž‹ÛÀ} I°dz˜ÉÎ.»x1ýŸÞ¥¸zµ¹«ëd^:†µ(ª›Û¥ŠŠ†””-22ÜgàH$Чç•üüÊøx?--en‡Ó_¥¥u!!ÿkÒ÷ñ™©« MúàgA¦€*½ÿÝÅ‹éYYe“&iøøÌœ3gçß™ÆyÇß»t)#1q“Ü3nkërròohh»sg=Tˆ Hkkgtô«+WUT4bς̛§Mú`À ÓðBgXسëןWW7;:ªç¤RRòW¯9yÒÕÍm*·ca††¶ Î‰Š ß¾½ïš(þÛ¤/íá1uÕ*s99hÒ? 2=ÿúö­åÂ…´›7_ápȲeÓ–/Ÿ¦¦&Çí 8§¼¼~Þ¼3¶¶ú¼Ù}À>nX°à¬¦¦òëÄÄ„¹Î@|úTú,2ò%…Bup0ôñ™Å›Ãž™¤¨è›¿ÿÄ„7 R¾¾³/žÌG/“e‰Ž¢½ýY¡„?>M‡L¼_½páù©S5ƒ‚Vòo8Ðyó&4郀Lµ'OŠ‚‚?|X¨¥¥²~ý¬A;fÙÆééïSR¶ j3Æóç%K—^rutü¸+·cù)T*úðaaPÐã§O‹GŽ”_¶ÌÌÝÝLV–ÏnLƒL©ŒŒiOŸëëôõikk0h/nÜx¹cÇÍk×ÖZYér;6JIÉ_»6tófë­[m¸ V…†>‹Ë¡R©†¾¾³tt I0™ :þý÷ýׯ?Ïœ©ãã3kúô±ÜŽˆsÚÛ»$%ÿÓK07·ÂÑñœ¯ï¬íÛçq+*޹~ýù®]1.\½Ú‚Û±°Ö¤ùrFeeÖ¤ok«Ï¿ïGl™  õÖ­œ€€´’’Ú… ç5ÐìÙ'–,™²fÍ¿y®±±}îÜSãÆ »~}í`èCˆ È_Ý=þÁÅ‹ž†ÜŽ…ehMúOž¥àáMúà? ÓÁG&SoßÎñ÷XZZ·p¡ñ† VÚÚø|øP=kÖqÁÙÙéÿý·›¸¸ˆ»ûåòòú””-ƒ'+ (êçwãîݼ¨¨u“&ip;+(øzíÚ³¸¸<·p¡ñêÕãÆ ÆªºL™LŠÊô÷XUÕ´dÉ”õë­xÛ>?~ïÂ…‡$EDDHYYÚÚzü™ññ Õ¹G‘H”5kB23Kcc×O˜Àcåþ¨††¶¨¨ÌÐÐg_¿B“>@Èô@P‰äëן_¹ò¨ººyÉ’)6X©«Þ™<ù`ee#6÷-2>{Ö«Aq‰DYµ*8+«\P“=òß&ýÑ£Ýݧzx˜1>¨¸¸fäHyqqŽ 82=4]]ä°°ç—/gÔÖ¶.[ö‹——åÈ‘òÜŠû «fÏ>ñßy8AÝݧ9â<ûvv’–.½TRRsûöFMM¾Þ½ûzýú³ØØlaa¼££ñš5½Ý½Zº4°¥¥óÆ /¾O0™2™—}îÜƒŠŠGGãM›¬û þCþúën@@‰Dé6_X¯­=,$dõ ü=ÔÚÚéêPW×ï'¨ ÐÔ×·EGg†„<­®n™>}¬‡‡Y·&ý²²ºéÓâpȘ1J11¾**2\Œ°dz PMJÊ=~ü^ee#–ãGVävP¼ÅÌìÐçÏ ½}:z´â?ÿll#"ÒØØ¾h‘?‰D¹}{£²òPn‡Ãv$%%%?<ü­IÙ²_¤¥‡ ²{w\xø 2™"""$#3$:ÚÆÜéÃrüÉ“)_¾4¬Ycéã3ÞêÝÓû÷UVV'zÎÇá7uªæ©SKí³Š55-ŽŽç%$ÄââÖž>ùù•aaÏiMúnnSœü;;IاÂÂxqqÑÈHo“Ñ\ °dzÀÇž>->v,97·ÂÍmÊæÍsøëͤœtìXr``‘H¦Ÿ)""$!!zü¸« õ,˜ÏŸÏ«©ÉFEùtYH°}ýÚtíÚ³ˆˆ—]]$"‘L&Si á……ñ!!«gÌÐáb„€% Ó¾”—WqøpÒÓ§ÅööÛ¶ÙŒ«Âíˆxš©éUUÍ´?ñxŠ"K–LÞ·o><{…)-­[¸ðü¸qüï?Ì}ÿN43;TW×Úm>Çá –ÍŸ?Ø ò;èa øLii·÷µyóΠ(’”´ùÒ¥åæ™{÷î+}šRT¶öÔ©%æiÆŒQŠŒ\—ŸÿÕÛûý¥í`ðìYq}}÷4 •J¥P¨¾¾×ÃÃ_p>*ÀBéߨ¨hôó‹˜1ãØ—/ QQënÞô12\C¾ Lbâ[QQaA„…ñ8nÍË/öÌš%È/³˜ñã‡_¾¼<#ãî]1ƒª±óòå &c!S©èÎ7OJádH€µW#àSõõmÇߎ~5r¤ü… Ëìí p¸A1H;KܾC$’EE…¥ÏœYbn®Ííˆx—¹¹ö¥K˽¼B‡ ýóOÇÁPÍÊÊêž?/aþÃE‘Ó§ÿ!“Ñ;ÿ5H îÓžF&SÞŸ<™",Œß´ÉzÙ²_ŽñòàÁƒÒÒR·Çû¾}ë ,ÃápS¦ÈÍš¥$**PÍx³gÏ3f Ë‹MOÿ°re°³³é‰®\IöMMMœYWTTÎ9Bg{{}6ÀápBBxAQ„J¥R©(‚ ‹ìÜ9Öe99¹!C†°£dÈô€w=}Z´o_|YY·÷Œg3y(ÚÕÕ5&&†“±ñ‹¡C×jn¾O"}ãv,¬íêêÊŽ’ÓÒÞ¯ZuÕÅeÒñã.œOöuuu^)‚ ß¿“Z[‰mmÄövR[±­D›nm%ÄŽâ„ Êžž…„¿µƒóƯ¬Ì–Á¾ õð¢ª÷í‹þ¼xéÒ©‘‘Þý®ËÅÅåæÍ›ˆ¿DG¿Z¸Ð»O/`Øš€gÍÒ½xÑsݺkââ"\iÆWRRÒÓÓãðJedd°¯püÿ|­±±ýر䨨LCÃQÉÉ¿ŒävDümñâÉÜ_Í›7ñâEOŸëx<î?¹™ð 2™úôôé$%Åà±;À lmõ/\Xæë{‡C€dødzÀÒÓ?ìß»¢¢qÃ+ŸY¢ÜŽA{{]¶~}Û·o·Ã` Ó.ûü¹aß¾Û©©ÎΦQQ>0¢-à5†(Šl؆Ãá~ÿ}>·Ãà‡A¦\ÓÚÚyüø½ëןii©ÄĬŸ6M‹ÛÀØüù†‚®_>dˆè¶m6Ü€™pÇýûïöî½E tüö›ýêÕæ {ÉÀ;æÏ7êè mÝ…Çã¶l™Ëípø0à´êêæÕ«¯®X31Hê3dzÀ9D"ùÔ©”iÓŽ”•ÕÇÇoô÷÷PRÊí ••ݹsç.ïèèH[¶´´TQQ‘ Ñýo]Øtllltt4›VÔÓÀvŽÀX¹ÒüСEÞùûïûÜŽ¥¿ >31Xê3 GWÚ3Tlñ‡ª««‡††bE‘Éäýû÷«««+))yzz677#ŒÜ¿_KKKNNîèÑ£´HƧ¬¬ìçç×ÕÕÅpf¿,,X`´222sÓ¦ÜzÅ-Ôglês¿°é(ŠR©Ô°°ç::»MLÜ¿Ïúkš~^Ó{zz._¾üÛ·o***™™™(Š^ºtIYYùÖ­[UUUÉÉÉjjj‚ô¼ô¡MQQÑU«VUVV†‡‡#R[[‹¢èÕ«WÃÂÂ.‚ù믿œœœ¾|ù’——gll¼k×.Eqss#AAA‚¸ºº„K—.!R__ßÖÖ&&&X]],,,ÜÖÖF¿.ôÿ/2ŠŠŠ† Ò[ôÓÌWÊ0Tlñy󿥥¥½}û+êĉzzzyyyùùùS¦LÙ¶m[ÏŽ ˆ½½=@ˆ‹‹ÃÊÇŠš3gNQQÑË—/µ´´8ÀpfŸGáÞ5=æáÃB íÞÞ׈D2kKîç5=Ôç>WÊ0TÞ¬Ïl½¦‡LØåãÇjGÇsjj[öî½ÕÒÒÁÖuõ3Ó755©©©éëëÓþñôôôBCCi’ßä IDAT_¸víó3cWW×û÷ïÛÚÚ(Ê£GÿoÍsrrjlld¸FGG‡Ö ™ššjhhˆ¢(‚ ¯_¿FQ”H$v›...nll9yòdSS•Jmmm¥P(ôëBéšÏž=+--ýåË—þœ™¬”a¨ØâyyyôE7îÖ­[Ø× iÓôÉÈÈ@Q”B¡`åÓ…¢htt´––Ù}M®gzE_¼(;v§§ç•ÎN ‹íg¦‡úÜçJ†Ê›õZïŸéê">œdm}’H$ß»·åàÁ…ÒÒâÜ ADVVÖËË«  ÀÇÇ›SZZjhhHû‚¾¾>óDEE‹ŠŠlllLLLBCC±™mmm$INNŽÉ‚åå媪ª8‡ÃY[[—••aó‡Š ˆˆˆH·iAäääÒÓÓ_¾|©¦¦fiiùäÉ<ßÛº6lØ`dd´fÍ”ÑÛ)»Íd²R&¡êèèÐòùóç±cÇbÓººº .d¸áÇGÿÏ©†¶ ŽŽNee%“™Ì°4†wˆ±‹AŠŠŠ°Sgo3yŸ¡¡zt´Ï‡Õîî—[[;9¹j¨ÏýõLX¨½½kÏž¸E‹ü‡—MOß¹qãlžê(O¥RW­ZµqãÆÈÈÈ$&&"²jÕªíÛ·'$$|ûö-%%e×®]Ì éêê"‰¢¢¢û÷ïG¤µµ5!!aÁÆ#¢·µµa‹-úí·ß>þœ——gccsáÂ…>ÆápsæÌ‰‹‹#D"QDDDBB‚ɺ444Nž}º””6Ÿ@ ¬\¹RNNNAAÁËË«½½ýo§†ÓÑÑÑššš¢¢¢::: D"‘~]hn?T*ÕÚÚšê¡C‡dee555ºûšÌWÚ3T†·H;;;·mÛ6|øp77·¦¦¦þ”-4jÔ(EEÅ7vtt0œÉüh¢¼qŸžÞ§Oµ&&,,Ž~ûÖü“Eõç>=Ôg&+Bù°>³õ>=et€þkllÿí·ØÄÄ·f{öØËÈHp>WWWAnÞ¼ù“å”””Œ;þ)؇áØnÇápÑÑÑØ¡ç¥¥u®®C‡ŠGEù¨¨H¸¬Õ]OOï'ãúÌn,¬ÏãÇWVVfi€ÿ‚Ö{ðS’’rgÎü+'§<,ÌëøqW®¤yxĘ1J·ooìê";:ž+-­ãv8ü 2= šš–å˃¼½¯Í;!-m§••.·#|@ZZÚÛÛ»?3ùÔÈ‘ò÷îý:l˜Œ­í™—/?q;À^üRŸ¡õ Dxø‹Ã‡“äå%OŸ^2eÊn‡Ã²Ö{ÀGx°õž†H$ûùE¤¤¼;{vé‚F?º8«ZïÖ{ÀCª«›—-»üÛo±fnç…4¯¾pa™»ûT_ß°€€4n‡;x?=è/E#"^:tGEE&>~£‰ÉhnGïÂ>줡¡tà@|uuË8âñlý+ A¦ýR[Ûº{wlJJþªUæ»vÙIHˆr;"øÀš5²²[·F57?}z O0Èô owïæíØqSNN2>~£©©·Ã€Ÿ8;›&½zuˆ»û¥  U<224Tà>=`¦±±ÝË+ÔÛûÚÊ•ÓÓÒv@š`¦O׎÷+)©]¸ð\u5ãסÀ>pMz•šZ°m[´¤¤_Ü•/--í6D6'56ååéŽ ‚ C†@»43ººªññÝÝ/;:žˆðÖÒêãëÎÎΪª*ÎÄdzÀ@{{×$DD¼twŸºoß))1nGÔ·œœÎ÷a–2D[\|œ°°LMÍ*µƒÃˆˆ(Š‹ë´¶>åðzé :UJjrW××ÎÎâÎÎOT*‡~ç;êê qq<<.99ù_¿¾ÖÀ`$“/·¶¶¶¶¶r,6 Ø ?=è.3³tÓ¦]]¤S§–Ìšãá0ðéSmTÔ«ÄÄ·_¾4Œ­èädboo8nÜ0ÎGrçÎÛuë®UUáüªiººÈLM-HIɯ¯oÓÖæà`0¾Ñر*\ŒŠgµµuùú^ö¬äÌ·ùó û^€Ÿ™ü‰D9~üÞ¥Ké³gë8᪠ ÅíˆxËçÏ ±±Y‰‰¹EEßTT¤íí ]\Lõõ™]™±/dz …š“Sž˜˜›”ô¶¦† ­=ÌÚZÏÚzüäÉ0è (vôhòÊ•æ,‚ç¥{A¦ÿzÿ¾jÃ†ðŠŠÆÃ‡\\&q;RWךð&1ñmNN¹œœ¤££±ƒƒ©©/tæ©LOC¥¢ÙÙe‰‰¹Éɹ߾µ¨«+X[ë98Lš¤ÁðõÞƒSbâÛÍ›#§Nsñârx °dz€P©èÅ‹i'O¦:{Ö]MMŽÛñ„ÖÖ΄„711Y¯_™7o¢ƒƒ¡¥å8QQzº…73=½¿%%½½}ûuii݈r66çÌÑ33Ó† Y¤ àëŠÁbbÂ×®­ÑÔdË0¨ éAM aÛ¶¨G>nÚ4gÓ&k8ÿ~ÿNLNÎMJÊ}üø#•ŠÚØLtv657×ávh ð~¦§ÁR>vïC^^rÖ,]Ã3tù`255„Õ«¯––Ö]¾¼búô±Ü&ÈôƒÚ?ÿ¼Ûº5J^^òÜ9wCCun‡ÃM$%#ãCllöƒ…$yæL]{{ƒ¹s'HKávhÌðQ¦§ùü¹!5µ 1ñmvv¹ŒÌÙ³Çó`c '}ÿNÜ´éFjjÁ±cÎK–Láv8@A¦¤ÚÚºvËYµÊ|ï^1±Az’¥RÑgÏŠcb²<(lié05íâ2ÉÎN_NN’Û¡õ ?fzšŠŠÆþy‡¥ü¡CÅ--ÇÍž=ÞÖV_R’zu²Š¢‡']¼˜îî>õСEƒöG`ÈôƒQVVÙ† á]]¤³gÝ--Çq;îxõª411÷îݼêêæI“4 çÍ›8bŸ=£À×™ž¦ªªùîݼÔÔ‚/J„……Ì͵íí ll&:¸žS{ð pãÆˆ#dƒƒW¥Àíp€à€L?¸P(Ô¿ÿ¾ölª…Ÿ¿ÿ^ª¨8èúÑ•”ÔFG¿ºsçMEEã˜1J ;8jks¡+õjóAÕß©¼¼>..{L]]ÁÅÅ”[cݰ–€ezš––ï÷ï$%å>zô‘B¡rp0tp0TQ‘ævhl×ÙIúí·Ø›7³|}gýö›/tæü2ý`ÿz×®EÅ¡˸;Ø 'a]ácc³óò*¥,à¡®ð,!¨™ž¦£ƒøôiqbâÛ{÷ò;:ˆ&&£ íí † “ávhl„¢¨¿ÿÃãÇïÙÚêŸ>½d>¸X 2½àkoïúí·ØØØìÕ«-öì±çÍÞb¬Eß^BBtîÜ ..“~ùEKð#øLOÓÙIzò¤(1ñíýûï„NlÌÝ… MÆŒQâvhìòøñG_ß099ÉË——ëêçv8€A¦p99åëׇ·´tœ<éjggÀípØ‹ÖþÑ£ÂÂx[[}C ‹qܳ`ðdz"‘œ™Yzÿ~ABÂkÚ0û|ý° m~~OžíÜiëë;kPÝq,™^`Q©è™3ÿœ=›jb2Úß߃ïž*ï?ZWøÔÔ …:c†Ž½½Áܹãƒ0ÓÓtfÔ(…Ù³pÌ]EƒƒŸ0ÐÓÄd4·Ã|2½*(øêí}@è8wÎ}Æ n‡Ãb(Šfeýïí)XWx;;}UUYn‡Æé»ÁÆÜóéSíðá²óæé Ì0ûí~~„–|ð£ Ó Z‹½¥å¸³gÝååùc ·~ºÂ'$¼®¬lÒÒR^¼xòüùF#GÊs;.n‚LßfŸB¡ž:õϹs©öö†Ç»†ûS€% Ó Ž¦¦öÍ›#32>Xwyú®ð£G+:9™FWx–€Lß'úaö¥¥‡X[óý0ûOžùùEˆŠ _¸àajªÁíp€L/ 23K}}ÃDD„=ã]5µµ­wîüÛ^Yy¨ƒƒ‘‹‹éà  Ÿ Ó÷_eeSJJ>–òÅÅE¦OkooÀ§Ãì;wÞ¼sçíªUæûöÍçë† Àéù­Å~Þ<ý'ó{ƒ^ccû­[9‰‰o_¿þ,#3dáB“тמ% Ó@uuóÇïSS ÒÓßÓ†ÙçÇÎ11Y»vÅjk«,ÓÐØqÀσLÏßjj7†gf–ò{‹}{{×Ý»yXWx¡yó&ò{+g@¦ÿMMíü;Ì>‡›2eŒµµž££1 ³_\\³nÝõŠŠ†}ûxx˜q;À£ Óó±G>nÜ.%%èɧÍÚݺÂÛØLtv657× ù±dz–À†Ùð ðáî.2 ³ßÞÞµ{w\LL–›ÛÔ?ÿtäÇ›€Ý Óó% …zìØÝ€€´ùó wå»—{’ÉÔôô»Â··wΜ©koo0gŽžŒÌ ê ÏéY‹6Ì~JJþ÷ïD“ÑsæèÙÙŒ­ÈíÐú—½gOœ¼¼ÔÙ³K'M‚ÇôÀ@¦ç?MMí7F*ëÝ»¯Ñѯþù'¿²²iâD5—IóæMàz92=»ÑÆÜ½sçM]]+–òy¹ŸgbâÛ;bde‡œ;ç÷™žo (ö×_wçÎxúô¾h±§ï ¯¡¡´h‘1/Ÿ"ùdzŽ¡f?·¦¦…—‡Ù¯¬lÚ²%òåËOÞÞ3wì˜}ðdzþÐÒò}Ó¦Èôô÷|ñŒ=}WxigçIÎΦàÙ2=çuf_MMnî܉¼–òQˆxyà@ü¨QŠþþîðÒÛA2=(,¬Z³&¤£ƒxñ¢çÔ©šÜ§W´®ð99åòò’ ;8˜šjàñ¼rú<é¹ s7!áMII­ªª¬••®µµÞÌ™º<2Ì~yyýæÍ‘¹¹_¶m³ññ™ÿ‰ƒdz^ñbïÞ[“& XÆ›Ý|é»Â‹Š ÙØLtq™ôË/Z0Ö @¦çXÊOM-ÌË«““´²â•aöÉdê¥KéÇß30P?wn)ïw"왞wutwu+ç×_çlÚ4‡G®hH$JJJ~llö“'E8ÎÎNßÁÁÐÂbœ˜ŒuÃ9éyÍ—/ ÷ïÿg˜}kk=+«ñÜ}þýûj?¿ˆ/_~ÿ}> °3A¦çQååõk׆VV6;·ÔÚZÛáü}Wøïß»fÌÐáÓ‘DdzžõõkÓ½{ùØÍ,1±‡ÙŸ7O_JŠ;#ÛH”sçRÿþ;ÕÒrÜ©S‹¡kë ™ž¥§ظ1\Qqè•++ÆŽUáv8B×>))·¶–0}úXggSkk=YY놛 Ó󾆆¶´´÷ؘ»x<ÎÂb?}Zü믑d2õôé%3gêp>Àéy Š¢ÿzêTŠƒƒáÉ“‹ya`ËüüÊ›7³°®ð“&i88ÚÚê.Ëí¸‚@¦ç+ôÃìS©(6æî‚FJJC9FkkçþýñÑѯ\\Lp„ëƒdzR_ß¶nݵ¬¬²Ã‡¸~/¾+¼¦¦²££ÑüùF<ÒÀh Óó#¡ãÑ£©©wïæÑ ³ÏÑÁ"³³Ë¶l‰ª­mÝ»×ÁÝ}*ïô왞W¼yóeíÚ<´’‹¯«©©!ÄÆfÅÄd}5JÁÙÙƺá)µµ­11¯hVݾýzÏ{Úié!Ë–ýÂÐÀëì$=yRÄ­aö»ºÈþþÎ{`j:úäÉÅðÞ[™ž£>|¨FDGGµÛü7^îÞ7eʘ‹=åå%9XCCÛíÛ¯±§‡¤æÏ7‚®ð¼‰D¢èëÿÞÖÖ)$Ä û‰D^ºÔìÄ WÎ~Ý0ûB6æî‚ÆZZlfÿýûª-[¢ŠŠj¶l™³nÝLè+ Ós•Š:8œ­«k½+íÞ‰DÙ³'."⥯ï¬]»l9üoFß^LLxÁ#ggS“ÑðßÎËöì¹þ‚D"3üôÖ­ ¼<¼`Ž6ænbâ›ÚÚ‡Ù·¶Öck;ÖçþäÉ”±cUNŸv›0aDÏïÔÔ„…ñ ¼8¤èdzΉˆx±cG ›:U3*j¾²²iÍš²²ºsçÜçÎÀ±Hè»Âãñ8[[}CKËq¢¢Ðždg—ÍŸŽáG**2¯_ï‡{®€–ò““s¿}kQWW°¶fï0ûååõÛ¶Ege•yyÍØ¾Ý¦ÛÙÀË+´®®5&f=¯ ìú2=‡|ûÖ2}ú‘Ž"Š"BBxOÏi66||®+* ^ù3¯Âloïêç#ú´®ð÷ïttgÌÐÁzʉ‹‹ xí€óP55ý³ºº¹Û|QQá5k,öîuàJT€M¨TôÝ»ÊÔÔ‚[·^—•Õ!gc3‘M7×°Ñòÿü3aĹ“'—˜˜ŒÂæ§§pw¿„Çã<=§9âÄÚ•€LÏ!^^×þùç}‹«ˆˆÐ´ic– ¸— …B=~üÞû÷Uׯ¯eò5¬+|llvrrÐ1k–®½½Áœ9z22л†_9’tùr‘Hé6ÿþým ›^`ÀÆÜ½sçmqq‚‚ÔÌ™:ýs·©©ý×_£ÎžuëÏ}EEãŽ7?.rwŸºoß™6íH}}+•Šâp¸cÇœá‘O¾™ž<(ôô¼B?‡Ãáñ¸Û·7ššŽX™ÍÍß×® }ö¬XHŸ›û'Ãçøòò*bb²SRò«ªšMMG;8ÚÛ ccñ½÷﫬¬NÐÏÁáÑ£•ž=ÛÍ­'}üøíÁƒ‚û÷ ²²Êde%fÏÏ<åGG¿úõ×HUU™ààU††ê}–¢èµkÏITR’ž4it\\…BÅ>Âß¼ékfÏ‚ðÈôl÷ý;qúô#µµ­T*•~¾^FfȃÛz_¿þ¼bEPKK‰DÂ<¸hÅŠi´OËÊênÝÊÁºÂO˜0ÂÕu²ÍD559l àææG?}ªCÿED„6m²Þ²e.w£F?ÌþС▖ãfÏoggÐm˜}w÷Ë}@‡Ãýñ‡ãªUæý)üëצíÛ£?.¢Rÿ—&ðxœŒÌÔÔí0|LÏvÇŽ%_¸FûELOH?aˆ„¿zîÆ—»vÅ¢(Š•‰Ã!††£’“7Ów…=ZÑÉɺ °sçœ:uDú·^áp¸gÏvÛÊ-l˜ýÔÔ‚/J„……Ì͵íí ll&*ÞÒò}„ßi§ <7c†Ž¿¿GŸ÷ ©TtÞ¼SïßW“Éÿ9}‰ˆij*%'ÿ:d7_Ûú2={•–Ö͘ñ™Üý~*½•+Í^ÔŸÒH$Êîݱ7nd¢(B»˜C‡ÃM›663󓤤˜­­¾££±™™&ô”lŸ?7üòËaìÿ‡Ã?<5u·ƒÜ÷åKÃÝ»ùÉɹoÞ|–µ²¯  ú”þº\DDHNN"8x5í™;†ÂÃ_ìÚC¿ °°ƒƒá… ¬ßÀéÙEQ'§€ì첞™^LL˜H¤ *¾h‘±““©‰Éè>K«©!¬Zu5/¯¢gó€°0~âDµÍ›çðÂû°ÇÌ›w*/ï+Š¢ÂÂB{÷:xyYr;"ÀCš›¿§¦ІÙïvÞÂ#ºk—ÝúõV oll73;ÔÖÖÕ[ŽÀápGŽ8-_>á§€§@¦g£èèW[¶DÑïaaa<…B•’wq™<þô“ÉÉ)_±"˜@è ‘6à´µU22v²(pÀ‚ƒÿñG™LÅãq99TT¤¹à9íí]ãÇïéå¼àp¸Ù³ÇŸ?ï.-=¤ÛG¿þýJXXˆI“¤>6vý”)cX1`ÈôìÒÐÐffv¸½½ EQ, ÙÛ,X`ô£cÔ\¸ððرdE6£ÑddìÔÖ†»òƒHMM‹±ñ‚ššj$$øq;À‹ßúø\grêRQ‘ ]=~üpúù_¾4ää|ÎÉ)ÏÊ*{ÿ¾ŠL¦Šˆ!J{4A‡=V Oçñ8]ŽMnkëÄãñ(ŠN˜0ÂÙyÒ^OI"Qöí‹¿víiŸßÆ'%ånÙ™~QQ‘13Ózþ¼xñâÉÜŽð¨ää<<Ç$Ó“H”êêf;»¿OZ¼h‘ m¾ºº‚ººÂÂ…Æ‚ttóò*srʳ³Ë³²JÚq8œ¸¸pg'¹¥å»§ç•¤¤Í0/ûÏ5}mmmaa!£ÅÅžõ©­m/)i..n|ÿ¾¾²²•JE§Oéëk̶í?lÆŒô2¸¦ÿù7øøñíõë+ôõ‡÷ýÕÞ}úT¿e‹<ÐÙÿ;,ÚÚÚœ|"¯¢¢‚UEIKKɵwõò¯Q£´¾|!N™bÄí@øRAA«ŠRSS“‘á¹1©**šô±iqqìä ))Š]/%%† á%%%† ˆˆˆ„„¨²²ìˆ}4Åëé!3gþ;ÝÙI*,ü–—÷WÐÕ…6Eîkii©¬¬ì6“A¦WR‚·ÿ,ooëŸ/„÷Dmm-«ŠãýíåAJJÈ‘#.JJp—”ˤ¥¥y°+))k³{-#GŸ;.èyÃ+Cèr SU…4`2= È Ó‚ 2= È Ó‚Œï3ý—/_V®\Ùç×JJJ°î¤´ úÅß¼y#,,C›Ÿ **šŸŸÏŽ˜»ÁÑ=z´§§'óÎå(ŠzxxHIõ·>‡+))aE¤ü¡ç±îvÐÂjB¾ùóºUÚƒâp¸cÇŽýL™,)¤æ{#** ÇÈÛ·oYÔÞþ×Þ=3p“mé穸½½}ÇŽRRR“'O>zô(™LF´ßÖ^VmiŸ8\±ù>ÓÇÇÇ;::2ü¨´´TQñß—xÊÊÊîÜÉ`Xxlq##£Ý»wûùù577#ÒÒÒâëë»ÿþ‰'²/rzÏŸ?¯®®®¬¬ !ÆÆÆX$ UUUEDDÀG½éíX3‡ÕÚ²ô•‡åè+-Š¢QQQêêêÑÑÑ.a!?¿ Ì÷ä‚ ª«««««Ÿ?Ž Hõÿƒ9~ÆÏÔ^¾>3ôçTÜÚÚjjjš™™yìØ±×¯_ïÚµ+<<|Μ9 e`û ;ñÒcíF±õ4òcP:555ééé(_±³³ûþý;Ê‹‹»m`Ï™´Å»ºº&L˜àåå…¢èºuëLLLˆD"Û¢þAŠ‹‹iR©T ‹}ûöõö}†ÛÕÿòYèÝ»wïÞ½ãrº¡í¨þì±néGwò¡_Wnn.‡KMMEäãÇ+a!lÝzl]ûj/Š¢ééé555¼S½Ô^ŽñcaNÅÛ¶m377'“É´¥ÚÚÚFØs}î ¶V­nÁprí óø_Óß¹sgĈMMM‚DFFjkk···#B"‘¶oß®¢¢¢¬¬¼}ûv‰„5ž<|øP]]=##cÿþýêêêJJJžžž´ ÖžK!’˜˜¨¯¯/..>f̘֧†[ #IDAT°°0AÈd2ÃÅëëë%%%‡ BßPC›ž:u*‚ Æ CziÉ¡-Ž ˆ¨¨hhhèÕ«W=*""Ò[,Ü´žp8ܺuë’““{+‡~»úYæýû÷µ´´äääŽ=JÛ ãÆSVVöóóëêêb8³¿Õ‚ýV<*•êïﯫ«;tèP33³ôôt¬MŒI+\RR’‘‘‘„„„ªª*­­»gEê¶“MwõêU]]]%%¥cÇŽ………ihhÈÈÈüþûïØR  }­C$**ÊÒÒröìÙ:::ôWä8.""BWWW^^þøñã‚øùù­^½û´­­MBBâÍ›7L é¶ ÍÍÍ+V¬PTTTSSÛ¶m[gggŸ›@Û½ý2Ä0ÎÞjÃÛ Ô^æµ·ç;G=}ú”á‚}VàžGÇÌÌìÌ™3‚466âñømÛ¶!B¡Päää°SVÏjÖ-¬dE·mÛfhhX__ôûT¾oß>!¡ÿ *))¹cÇŽˆˆˆì·:X½U0æÛ;vìX„î°ŽVì> ôäéé¹|ùòoß¾©¨¨dffb3ÿúë/''§/_¾äååïÚµ û93oÞ¼´´´èééååååççO™2eÛ¶m½-ÕÖÖ&&&X]],,,ÜÖÖvâÄ †‹_½z5,, ýïO'†¿éΤ-N³k×.A:D?“­›†2úq—••%++Ë|íØ§½•IA{{{‡ H}}=Vœ9sŠŠŠ^¾|©¥¥uàÀ†3™×_Ó÷¬x—.]RVV¾uëVUUUrr²šš¶3»kÚ@]µjUeeexx8‚ µµµ(£ŠÔíÇxÏ£€¢(‚ nnn!((AWWWpéÒ%l'÷vhèk•JÕÐиt銢{öìÑÓÓ£­Agg禦¦+W® ÒÐÐðèÑ#‰„¢hxx¸žž•JeRH·Mpww·²²úôéS^^Þ„ °ƒË|h%ôöÈpE ãì­v1ܱôØW{QÎ^Ós²öÒ¦±sTuu5Ù}”ÑÑùóÏ?íììPMHH––666FQ4;;[\\¼½½eTÍè#Ážá R©´4EÛŸS1–zëêêºíØ/^ÈËË`¿!òöíÛÖÿêí`õVÁú³½ ëû*6Ã<>LßÔÔ¤¦¦¦¯¯O¿Jêêjl:55ÕÐÐ 1//EÑqãÆÝºu û´°°6Ýs©ÆÆF‘“'O655Q©ÔÖÖV …ÒÛâNNNè@3=mq •J]°`‡‡ýö²uÓо2}okÇæôV&=A222P¥P(غèãGQ4::ZKK‹áL”)gúžOOO/44”ö…k×®1?Wvuu½ÿ¾­­B¡|ˆ¢¨­­í±cǘB¿ D"QHHˆ¶“oݺ…\æ›@+¡·JŽé¶¯ÆÙ[íb¸c鱯ö¢œÍôœ¬½èwxo 2?ú(££“-%%E$·lÙ²{÷n‘¦¦¦'NØÚÚ¢½T3úH°é;v ÿ½WÕŸS1–éi?hž?®¨¨8€ý†0ÒÛÁbXÁú¹½ ëû*6kZï‘••õòò*((ðññ¡Í,//WUUÅ_´¶¶.++Ãæëèè òùóg¬A]]Ý… ö¶”œœ\zzúË—/ÕÔÔ,--Ÿ|8‚ Ý>¢…­££C{#Ù<¢gÅ+--544¤}A__Ÿy ¢¢¢EEE666&&&¡¡¡ØÌÞ*½ÞŽÂСCÁZé§‘^M·uEEE‘ÉdEEEgbb‚ }>vÔh -Z´èÖ­[õõõÜÛRT*5&&¦±±qõêÕ OII±±±¡ ënñõë×þlE·Å«ªªüüüNœ8aaa±ÿ~oolZÏÀP½xñ"öŸÃdí˜~–ÉðökA¢¢"¬Îõ6“Gô¬x#FŒÈÍÍ¥}¡ÏW“utt¸ººnß¾ýõë×ØÌž©'æG¡·uõ<4ôë¢P(ÑÑѧOŸ¦µnÙ²%::švºéù£ÍÅÅåöíÛ7oÞœ>}:ÖØÛg!!!¡ÒÒRìÏOŸ>1¢ÏM é­’÷¦gœ˜žµ«?;j/fµ;G1\°?z<okk›PTTdll†3™WN¶Þ3¬xGŽQVVޝ®®¾wï^Ÿw:›ššp8ܽ{÷°^¹‚¼~ýš¾&t[„vß®çQ@íXúi†‡†~]éééBBBô­¾ÙÙÙÈÿ7¢2,œL&+++«¨¨„„„ôYH·MXºt©••Uiii~~¾žžvp™omoôVÉ»í4šžqöV»îXÎÔ^”ƒ­÷®½Ý¦.ˆöuôÑ^ŽNLLŒ”””µµ5Š¢©©©RRRôÏ—ô¬f½Eµÿ~mmínÿÌOÅ---ãÆ›9sfJJÊÇwïÞ ˆ²²rWW×î7”îÄK¯·ƒÕ[ëÏöÒþ9S±YsŸþüùóX·‡Û·o«ªªb÷WÂÊ•+åää¼¼¼ÚÛÛé7¸³³sÛ¶mÇ—‘‘qsskjjÂæ÷\ EÑèèhMMMQQQ„„†‹‰DìÎÍ¡C‡dee555±ÖEI$ÒôéÓ¥¤¤zþn‹‡††Š‰‰Ñß7zõêe÷¦¡ÿ½ö9r¤»»;ýYƒùÚ™”Ùç<((hÔ¨QŠŠŠ7nìèè`8“yeàd¦gXñˆDâŸþ©¡¡!%%effvãÆ æçJEOŸ>-//?räÈ€€777999úš@û&}åA{9š}ž(»šnµÎÛÛ{Μ9ôÛH¥R555wîÜɤðuëÖ 2„@ ôYH·Mhll\¶l™‚‚‚ªªê¯¿þJû•ÙŸLß[%ï¶Óèu‹³·Ú5€˪ڋr0Ós¸ö¢=J·•••Ñ~T`†G§¹¹YXX{V®½½]TTtÇŽ´õ¬f½EÕÑÑ¡­­½{÷îþŸŠQmkkÛºuë„ ÄÅÅ555÷ìÙcii¹xñâÚo´Íï©·ƒÕ[c¾½Ýþ9S±YöDàw OÍ g2Çkýé° |g÷îÝK—.åv}ë'  «j/ÊcýéCíe‡®®®/^°{-8:¬ªØ ó¸0Ãß5^ÓÙÙYUUuõêÕÈÈHnÇ ¿Ä ƒ¨¨(6`‚ïGà --íííÝŸ™€wdffššš®Zµjƌ܎…†q²°vAíœÇ ÆÖŠCénWÔÖÖòøyðìiáŸçœUåðC222Ư¬¬Ì#åðóæq¸¦dz@A¦dz@A¦dz@19'##ƒãa~¥¤¤Ä’rêêê âþUXXXXXÈí(`ì?ý黺º£|GLLLZZú' !]]],‰€"---&&ö“…`oØ€wt»ûO¦€€ûô€ ƒL2Èô€ ƒL²ÿ Õí7Ö>oIEND®B`‚XQilla-2.3.0/docs/simple-api/classxercesc_1_1URLInputSource-members.html0000644000151400015140000002574411653571064023063 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

xercesc::URLInputSource Member List

This is the complete list of members for xercesc::URLInputSource, including all inherited members.
getEncoding() const xercesc::InputSource [inline, virtual]
getIssueFatalErrorIfNotFound() const xercesc::InputSource [inline, virtual]
getMemoryManager() const xercesc::InputSource [inline]
getPublicId() const xercesc::InputSource [inline, virtual]
getSystemId() const xercesc::InputSource [inline, virtual]
InputSource(MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSource [protected]
InputSource(const XMLCh *const systemId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSource [protected]
InputSource(const XMLCh *const systemId, const XMLCh *const publicId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSource [protected]
InputSource(const char *const systemId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSource [protected]
InputSource(const char *const systemId, const char *const publicId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSource [protected]
makeStream() const xercesc::URLInputSource [virtual]
operator delete(void *p)xercesc::XMemory
operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
operator delete(void *p, void *ptr)xercesc::XMemory
operator new(size_t size)xercesc::XMemory
operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
operator new(size_t size, void *ptr)xercesc::XMemory
setEncoding(const XMLCh *const encodingStr)xercesc::InputSource [virtual]
setIssueFatalErrorIfNotFound(const bool flag)xercesc::InputSource [inline, virtual]
setPublicId(const XMLCh *const publicId)xercesc::InputSource [virtual]
setSystemId(const XMLCh *const systemId)xercesc::InputSource [virtual]
URLInputSource(const XMLURL &urlId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::URLInputSource
URLInputSource(const XMLCh *const baseId, const XMLCh *const systemId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::URLInputSource
URLInputSource(const XMLCh *const baseId, const XMLCh *const systemId, const XMLCh *const publicId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::URLInputSource
URLInputSource(const XMLCh *const baseId, const char *const systemId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::URLInputSource
URLInputSource(const XMLCh *const baseId, const char *const systemId, const char *const publicId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::URLInputSource
urlSrc() const xercesc::URLInputSource [inline]
XMemory()xercesc::XMemory [inline, protected]
~InputSource()xercesc::InputSource [virtual]
~URLInputSource()xercesc::URLInputSource
XQilla-2.3.0/docs/simple-api/functions_func_0x6d.html0000644000151400015140000001627411653571063017406 00000000000000 XQilla Simple API Documentation SourceForge.net Logo XQilla-2.3.0/docs/simple-api/classContentSequenceFilter__inherit__graph.png0000644000151400015140000001062211653571064024032 00000000000000‰PNG  IHDR¥ÃläFÊbKGDÿÿÿ ½§“GIDATxœí{PWÛÀO  †K¤P(8b«/Ôj¥jGªEí¼UD)¶TÄÈÔ©ÎçLTú~#cÕª8Jq䢶£VœJÈ¥Ø*·‘R¬¡byuDÄ@¹¤Æ` ·ýþ8ó¥17’lô9¿áÍÙ=Ïóìþ’s–ÍeE!è.€`SˆoXß° ¾aÁ´jô}ûöÕÕÕY5ÅËGee¥õ‚[×÷;wîÝ»iÕ,/ VMa]ß¡ÈÈHgí,/</>>Þª)Èü âÄ7,ˆoXß°° ß cX#K[[›ù–ÑÒÖÖ†ƒX£`k`õÿÇ,äúõëAAAãS$Í›7¯¯¯o|Ã¾ÐØ‹ooooŸñ©ÑhúûûÇ7拎]Œç¦ˆ‰‰Ù±c^f±X!¥RÉår§NÊf³¹\®R©D1Œ .„……yxxddd „æÏŸ²ðiôÃ?DDD¸¸¸øúú:t7ÆT«ÕGŽ™>}úäÉ“,XÐØØ¨ǰ6<ÚWWWÔ××Ï¡3”5‰‹‹‹‹‹q3„Ðo¿ýöäY(Šºxñb@@€F£¡(ª´´ÔÏÏO©TRuøðá5kÖB诿þ2óرcl6»¸¸øÑ£G~~~8ˆ6‘amxíŠ+jjjd2™™ãPPP`m#öâÛèqppÐÕÕµ©©‰¢¨õë×§¥¥áíg̘!‹ñreeexx8R[[KQ”B¡À }‚}ß½{W&“©Õêk×®iÛ cNŸ>ýìÙ³Ú˜çÎÓómX^ÛÒÒ2âq°o{™¿…BaHHˆ^£‹‹ËªU«ø|þÌ™3ËËË›››qûýû÷}}}µ›¹»»ãüjsrr²0‹ö¤ÚÙÙù?þؼy³L&‹ˆˆÐí¢³³³3<<\»vöìÙz)LÕ6cÆ SUÙ»ž¿B |>¿¬¬lΜ9¡¡¡¸ÑËË ¿þ(Š’H$Ú÷”Ƹ;r¹|ݺu\.W äääè®Ò‹ùꫯ޾}[û°µµU/”©ÚÌ< m‰½øîííí~Ü-‘HÒÓÓ“““µÇÆÆ¦¥¥utt´´´,_¾<;;ÛLd™L6böááa…Báìì,—ËÓÓÓBxv7$55•Ëå–––vwwÿôÓO{öìÑÛ`TµÑ€Ug‹çœ¿1ÇÍÍM÷LG*•nܸ‘Åbyzzr8œÁÁADûÂÂËJ¥ráÂ…nnnºzyµ-ÇŽóððxå•WrrrØl¶Ñ˜*•êÈ‘#!!!®®®‘‘‘øå«;Ö¦waÌß ÊšŸG^·nBˆ¼ÿm!øýo«±—ñœ`ˆoXß° ¾aA|Âø†ñ â@}76Šè.¬þþX]]Ýûï¿oí,£E$zÍß¿ÓÙYAw!ÏÐÓÓcíÖõ?aboÈåL¹|’Bá3uªñ7Eè‚ÅbYûmSë^?·OŽù13ój` çÿKw-¶âü]Xx!ÔÑÑ÷î#ºk±5à|77?xøP‚rrr,*ºEw9¶œï’“éˆR*Õ……75XÓ,ßjµ†Ï¿©R©ñÃÞÞ'MM°þ1ƒåûÆ6‰ä©ö¡““ã¥Kë±=°| ˜ÌvY©T—– ”J5%Ù@¾ UYÙo*•F·Q*®«ûƒ®’l ß55wåòa½F&“Q\ è,ïââ[†PW©4—/ß~úÔ¾.¬Z(¾e²á«W[Õjá*¥R]U¥ÿµ—(¾++[ •©µpÎÒ¡ø.)1iT£¡jkïJ¥r[ÖCPÞ/yøP¢;˜GFîß·/véÒ™Ú÷ ìåÛ“ÖãåßCŒ¿?K¯ÅÛ{r` '-ÅДñœ€!¾aA|Âø†ñ âÄ7,ˆoXß° ¾aA|Âø†ñ âÄ7,ˆoXß° ¾aA|Âø†ñ âÄ7,ˆoXß° ¾aA|Âø†ñ âÄ7,ˆoXÐó}ÿªª*‘ˆæ²¬ªªêîn¢±‡CCV«ÞÔqqq4ìªNNl‡ ôÖ@Ë‘§m<·ä¾ÁÖC¡èQ«‡èÊŽïL dþ†ñ âÄ7,ˆoXß°°kß cØ&K[[Î¥]x9°÷ßÓ¼~ýzPPÐøÆ‰DóæÍëëë3“…ÉdîÚµË|¯{÷ííííãã3¾15MÿˆY:d¾×‹ˆ]禈‰‰Ù±c^f±X!¥RÉår§NÊf³¹\®R©D1Œ .„……yxxddd ÿ¿«©ù§‘á0®×Ë0îR]]P__?þ»=Ø»ïÁÁAÙ³ „ŠŠŠ(ŠB]¹rÅÅÅeÙ²e¡ÌÌÌööö_ýµººº¦¦fÏž=8HIIÉ7222víÚ500ÐÐЀêîî6•E¥2òËøz½Lå:zôè¹sç"""¬wLž Z. ÇÅÅYrýÜTÁƒƒƒ®®®MMME­_¿>-- o?cÆ ±XŒ—+++ÃÃÃqÚÚZŠ¢ BH( …BÝ7LQ^^®ÝÆpÁT.¼AKKˈû…¯Ÿ[pœÆ{Ÿ¿…BaHHˆ^£‹‹ËªU«ø|þÌ™3ËËË›››qûýû÷}}}µ›¹»»ã???„“““åYÚÚÚÌf*—µoèüœØûxnŠ„„>Ÿ_VV6gΜÐÐPÜèåå% ñY"‘à!dx[¢çÇT.3Ï*{ÀÞ}÷ööv? nŽŽ–H$éééÉÉÉÚcccÓÒÒ:::ZZZ–/_žm&2>-Ú^£ÊeGÐ2‹<çüáp8nnn2™LÛ"•J7nÜÈb±<==9Îàà ¢}!âe¥R¹páB777ÝF½Ô†Ó¶^/Ã\z¼hœ¿é¹_ͺuëB<Ïö©íOË‘·÷ñœ0¾ß° ¾aA|Âø†ñ â@}÷õåâÚKmï—ˆD¢S§NÑ•½°°ëÃ}&Nt¤%û­[·hÉ‹Èï98Lðñù|Ò¤0k@ ®§ÒË… 7¸\Þ‚¡……ŸÑ]‹­8ÝBˆÑÐÐÖßnç»»ûqc£! !Fii3ÝåØp¾KK›!†âñnÒ]Ž­ç»°ð¦ZM!„(Šºsçáƒ/üGŒG,ß"QïÿûH{ŠêènH‡åûÒ%“ùÏÿÜj5UXkH‡å»°ð¦J¥Ö>¤(ª­í¯»wÅ4–dcù6:[3™Ž%%Zê¡@¾KJNNúPU*5×ç¢ß ÅçÿªTª WõôH‚Û—D P|76Šz{Ÿ]Åd:^ºeH‡â»¼¼!äìÌ4üÓh¨²²fµZCw¶ÀÞ¿?6^¼ñ†ÿþóoíãG¯|øá¿¦Oÿç+ÁË=<\é(ͦ@| !äç÷?yyI+W†Ó]ˆ­2ž0Ä7,ˆoXß° ¾aA|Âø†ñ âÄ7,ˆoXß° ¾aA|Âø†ñ âÄ7,ˆoXß° ¾aA|Âø†ñ âÄ7,ˆoXß° ¾aA|Âø†ñ âº?†Žïk É“:9yÑ]…-лO«‘ßoIOO·}Yt°„î¬Naa¡^‹ß‹/¶E-ësíÚ5½2Âø†ñ âÄ7,Æø{šýýý¹¹¹¿ÿþûãÇ-Z4¾•Y‚\.?{öl]]ÝÀÀ€··÷’%Km_‰%DEE6æççoذ¡¶¶¶«« /Xµ†±ø–J¥)))ï¼óNzzº‹‹Kccã¾}û80wî\˃ˆÅâÔÔÔÒÒÒQ¥Öëuüøñžžž/¿üÒÛÛûÁƒÇòäɶmÛFÓ–œ8qÂ××W·ÅÑÑ1!!A·elGÆBÆâûÌ™3\.? (((•oF#•JG›Z¯W}}}FFFhh(BhÊ”)Û¶m;pà€=ûž2eЇ‡‡^#‡ÃÑ}8¶#c!c™¿ëêêÖ¬Y£Û’””´sçN¼,“É:´jÕª¸¸¸ÜÜ\…BŠŠŠªªªJJJZ¹råÅ‹BŸ}öB(66÷R©Tyyy«W¯^½zu^^žJ¥²¤—‹‹KII‰öèÌž=[{IØ0 EQ—.]JJJúàƒ¶nÝÚÜÜÕÕÕ¥fu—-¬G­VŸ9s&>>>&&æàÁƒ2™ÌLw£è&ÅŒxdp@çÎQ˜ƒo™L600 Û8iÒ$6›—³²²z{{óòò>|óæÍï¿ÿ·×××gggoÙ²åäÉ“Ož<ÉÉÉAãµ|>_,Ÿ44$×A­6r¿ ÇÛ½{7Û,gÔ¾ñïg3 £kU*UMMÍçŸîëë¼qãÆÊÊJ¼*&&ÆÍÍmÙ²e!ÃñêÇܾ};›ÍÞ²eKSS“%½Þzë­‚‚‚¬¬¬Y³f]¹rå£>ª®®6°¨¨(55uÑ¢Ežžžo¿ývJJŠ™Ý´°žŠŠŠäääààà   ]»v½þúëæ»§¤¤| ƒ¶} •p8œˆˆˆ‰'ŽA—QÏß“'Of±XÚ}CÝ»wï믿ÎÊÊ’J¥ÆÏÏ·O›6­··/{yy!„˜Lã»»»uçWW×{ ]¿~}ñâÅaaaaaaüñÙ³góòò–,Yb4 J¥ ѶëÔý)x ëéééñ÷÷ÇËæ»çççO›6M7iWW—Ñ2b%zC¬…Œå|mÁ‚{÷îÕ¾Ê+++U*Õ„ X,–ƒƒƒX,Æ{þèÑ#|€é!ãîîž™™‰ž2FìEQÔþýû°Eƒ1wîÜòòrS¿øâ‹?ÿüóµ×^ÃÜ¿_J­V;::öõõ¶OOÏîîî   „P[[[CCÆ Ìt¦B™zå˜g,çk›6mº}ûöW_}ÕÚÚ*‰Î;W\\Œ‡G&“uüøq±XÜÞÞþí·ß.]ºÔL(¹\Ž-Ztúôéžž‘H´sçÎ’’’{Mš4)::zïÞ½ b±¸µµ577¿¸\±bEnnî/¿ü200ÐÔÔtêÔ)„››BèêÕ«OŸ>ÕN™–×ýÍ7ß´·····geeiO Fµ;ãxdFd,Ï‘)S¦œ:u*777==].—8p`þüùxíöíÛOœ8‘ššêääôÞ{ï%&& âãã3kÖ¬5kÖ\¾|!´iÓ¦'NlÞ¼™Á`¼ûî»[¶l±¤×Î;ÏŸ?úôé®®.‹õé§Ÿâ- :::ªÕêììì¿ÿþÏ…û÷ïwwwß´iSNNN~~þÖ­[þùgSÝÖ“˜˜844Äår‡††æÏŸ¯ÝÌÂîc;2ºãÐhyæþ%</>>ÞÚ—xìÛ\Ï¢—½{÷z{{óx XQilla-2.3.0/docs/simple-api/VarHashEntry_8hpp__dep__incl.map0000644000151400015140000000020511653571064020767 00000000000000 XQilla-2.3.0/docs/simple-api/VarHashEntry_8hpp__dep__incl.png0000644000151400015140000000612711653571064021007 00000000000000‰PNG  IHDR‹uñã…ÁbKGDÿÿÿ ½§“ IDATxœíLSWÇŸÒJa"Âøá( 7RÐLípû–)A`‹.nhØ`Œ-N‹§Å¹eк¸™)É’ÁL”.f‰nÊ„¢ûa„&Œ›i}©y1:·RÚÒÛÞ÷c®µláÂ=íÎç¯{Ÿžó=Ͻß{Ϲ÷ô¶—GÓ40Æ‹ë8„;Ä!Ü!áŽÀveãÆ\åA`HHH())aVqH¥R=÷Üs¡¡¡ žáW¯^ ´ìJlÛ¶-11qá2"<Êþýûí"dÂâî‡p‡8„;Ä!ÜqÍ!¥R¹uëVÛÉVš¦333kjjœ©ž””4444sdv:(8W•gÝúüaµ=3‰‰‰ååå]]]kÖ¬A­V{÷îÝW^yers™ŠŠŠ°°0gJøá‡gÏžï”æŽk¾øâ‹/^djjj’H$AAAó›Ë<ùä“Δ´Z­:n¾óa—Ç¡ 6466Z­V´ÚÜÜÌt&­­­;vìHOOÏÈÈøñÇ`hh())éòåË™™™ffå©ÕàÏ?ÿܾ}{jjjVVV]]SøÒ¥KÙÙÙ›7o>yòäcsNJJR©T¹¹¹¯¿þú©S§à£>€7ß|Ó.ɼ¼¼C‡¡Zƒ!==]«ÕN´k)´´´äää¼ñÆåååf³Ùað±©NÅe‡Ö¯_¯Ó麺º````pp0!!&&&JKK£££Oœ8QPPPYY966†ªTUUíÛ·/::ŒF£ÁFÖau£Ñ(—Ë·lÙrêÔ©œœœC‡FT¾½½½²²rïÞ½ …‚9ìÄmõÿøãï¾û.??ÿèÑ£÷ïß?räØŸ(ÉíÛ··´´X,hii ‹ÅSw‚ÃÖkkk<øÕW_µ··3G˜Ã K¸ÖË€ŸŸ_|||CCƒD"innŽEóHÞÞÞßÿ}hh¨P(D3{z½UÉËË‹ŠŠBË|ðCY‡Õù|>MÓƒÁÛÛ;===11Q(¢ò™™™O<ñĺuëàþýûþþþÅЖ-[üüüÒÒÒÊÊÊöo(I«Õ*ÔjõÚµkU*Ujj*Ç›ZØ®u,((ˆˆˆ@i(Š”””©ÁÜÜ\§ö² .;6løöÛo ›šš6oÞü@H ¸uëVYY™Á`@§ Cdd$³|âĉððpf•é!V_²dÉ7ß|sæÌ™ãÇÇÄÄdeeÅÅÅ¡ÐÈg·ûìÄm F­L·Q(I//¯õë×755EEEuttìÙ³Çaa‡­#'ÔÝ»wgºÄlî‡^zé%£Ñ¨R©z{{Ñq&“I.—¿õÖ[ÇŽÛµk—mùö ƒÃê&“ÉjµÊåò_~ùåµ×^ûì³Ï˜Öá¡=-Ï$™˜˜ØÜÜŒ®†BBBœW»uëZd.]b6 …ÂuëÖUTT¬]»6 Íf3EQ`rròøñã011ἦÃê<¯¸¸¸©©I¯×›Íf@Àôry”™µ¨$‰Åbùá‡RSS™ào¿ýÆtÚÓQQQ144týúu…BÁ|Óæ0è³éå 99¹¾¾Þö–ÐÏϯ  àÀ¾¾¾YYYÉÉÉ{÷î­¨¨pRÐau¥Rùé§Ÿ=zôÎ;"‘H&“y{{Ï ²sçN»3ÙñÔSO­Y³&##ã÷ß·ûÈËË+!!áÂ… è QVV»xñâZOIIÙ³gÑhLNNÎÎÎF}š]p†êÓÁ³ àñx2™Œ|?¤P(nß¾ýùçŸ;Y~hhèwÞ±;ËþýûCBBªªª˜™—{„ÉÉÉáááóçÏoÚ´‰ë\@z„k×®åçç¿ú꫱±±Î×Z¼x1sM;spÌròTžþùsçιZ+ `÷îÝÎg9‡p‡8„;Ä!Ü!áqw<Í¡ë×ïqËØÏ)DEEÙ=•êFP”ÏèèÊ+\'2{úúúRRRlç¹Ú¶mÛ‚§Ä&ƒƒKîÜY"ÅøøP\ç2K¢¢¢âããm#‰Èç{ED¸ë—)÷~K(,_þðqõ%`ñÜ»—û7@Ââî‡p‡8„;Ä!Ü!áqwˆC¸CÂâî‡p‡8„;Ä!Ü!áqwˆC¸CÂâî‡p‡8„;Ä!Ü!áqwˆC¸CÂâî‡p‡8„;Ä!Ü!áqwXþ…W__ŸJ¥bWÓyººtpìØ1®€¼¼<–iV9}ú4Ëù¹‚——pÑ"Ž_;Ïîþ¤iz^~%I»óocgMUUUff&ë²dÂâî‡p‡8„;Ä!Ü!á7K¥ÒgŸ}Ö××7::Z&“1/+žox<Þ7¦-Vàæ_c oÞ¼Y]]ýôÓO_»v­¨¨hdd¤¼¼œ“dp‡Ý`4§ðØbmmmÌjcccdd$»™LhµÚùPvrÛ]…›^ÎßßÿÈ‘#÷î=xÏIBBÂÍ›7€¢(™Lòî»ï2ï~{ï½÷‚ƒƒ#""¤R©Ñh¼qãÇ;{öìŠ+BCC‹ŠŠL&˜ÍæâââeË–…††;|}]]X, XQilla Simple API Documentation SourceForge.net Logo

ASTNodeEventGenerator Member List

This is the complete list of members for ASTNodeEventGenerator, including all inherited members.
_ref_countReferenceCounted [protected]
ast_ASTNodeEventGenerator [protected]
ASTNodeEventGenerator(const ASTNode *ast, bool preserveNS, bool preserveType)ASTNodeEventGenerator
createResult(const ASTNode *ast, const QueryPathNode *projection, DynamicContext *context)EventGenerator [static]
decrementRefCount() const ReferenceCounted [inline, virtual]
generateAndTailCall(const EventGenerator::Ptr &generator, EventHandler *events, DynamicContext *context)EventGenerator [inline, static]
generateEvents(EventHandler *events, DynamicContext *context)ASTNodeEventGenerator [virtual]
getRefCount() const ReferenceCounted [inline]
incrementRefCount() const ReferenceCounted [inline]
preserveNS_ASTNodeEventGenerator [protected]
preserveType_ASTNodeEventGenerator [protected]
Ptr typedefEventGenerator
ReferenceCounted()ReferenceCounted [inline]
~EventGenerator()EventGenerator [inline, virtual]
~ReferenceCounted()ReferenceCounted [inline, virtual]
XQilla-2.3.0/docs/simple-api/StdInInputSource_8hpp__incl.map0000644000151400015140000000003511653571064020645 00000000000000 XQilla-2.3.0/docs/simple-api/inherit_graph_4.md50000644000151400015140000000004011653571063016271 00000000000000b4b5bee67b273b9f78743f4cf7d0d775XQilla-2.3.0/docs/simple-api/XQillaConfiguration_8hpp__dep__incl.map0000644000151400015140000000043511653571064022340 00000000000000 XQilla-2.3.0/docs/simple-api/classExternalFunctionResolver-members.html0000644000151400015140000000504511653571063023204 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ExternalFunctionResolver Member List

This is the complete list of members for ExternalFunctionResolver, including all inherited members.
resolveExternalFunction(const XMLCh *uri, const XMLCh *name, size_t numArgs, const StaticContext *context)=0ExternalFunctionResolver [pure virtual]
~ExternalFunctionResolver()ExternalFunctionResolver [inline, virtual]
XQilla-2.3.0/docs/simple-api/classxercesc_1_1DOMNode__inherit__graph.png0000644000151400015140000001023511653571064023023 00000000000000‰PNG  IHDR°uaðübKGDÿÿÿ ½§“RIDATxœíkTGÇgIÀA‰@ E T¥(^h‹§ŠŠ õR*ñ†`•c@«õX¡ÞB½TÑZ±¼Ð*–ªÜD-§åFT¤J¨@¶ È‘K¸™’˜­¹ìûaÚ¼Y’ R0¼f~ŸfŸçɳ3ÿÙYvŒ €@üƒ…©@ , $ $ $¨½s›={vßæèsŠŠŠzá…õn•aØ;ï¼ãèèØ _DÓÚÚúàÁƒÞõl/G›Íž9sf¯ÝýŸÏÿòË/{ç‹®!$ $ $ $ $ÌZþ:,[¶lÿþý‰D·Žã\.722rþüùÑÑÑçÎS«ÕZß•+WvYÚmݺÕßß¿±±VHHHÐ­ÐØØèïïßÃÜ^©rÒûeç›AJJ ƒÁÐh4õõõ999çôéÓ666€çÏŸ¯[·ÎÞÞ>**ÊÅÅåÉ“'§N*++KNN¶°°477×ÔÔxxxÀPR©´¢¢B7ø7®_¿>kÖ¬×\½Æ¬G€Ý°aÃètú¤I“öìÙÃ`0.^¼w9sÆÎÎîðáÃï¿ÿ>“Éôóóãr¹ÍÍÍ………°‚ŸÏ׆*))™8q¢nð… ~ýõ×"‘èuMÐ_‚()) •J¥Žã8@¥Rq¹Ü.—«R©àØX^^¾téÒû÷ïgdd,]º488xÿþý2™ FÓ÷‚?9gΜ+VüòË/µZmÐ]wøíf(Æ0lÑ¢E¥¥¥p³¨¨(""¶lÙ2í-á™3gòù|í¤pãÆ3fèd³ÙnnnÉÉÉú7 e2Ù‚‚‚Ølvjjê‹/4Í?þ>þü 6<|ø°›cï?úK|ðÏñãÇÅbññãÇwîÜI£ÑÙÙÙB¡0---99¹¼¼<##Ö¿pá¶mÛ***Š‹‹÷ïßäÈ‘úúúÌÌL¸Wß Çñ„„„àà`؈Äq<;;Û »]LLŒ~Y&“ÙÔÔÉd"‘H;hñððxúô),7N¡PÔÔÔäryyyùÔ©Su+[XXlÛ¶M üüóÏ]â=z´­­Ëå&&&Þ»w/+++''çüùóçìÙ³ááá\.ר±¿RG¼*ý8elܸ±¼¼<&&&((hìØ±ÐXXX¸iÓ&GGG‹u÷î]hçp8“&MâñxkÖ¬a±X£FÚºu«———1/¥RI„B¡°²²š;wîåË— tõêUƒîÖÖÖ ,Ð/÷ Ã4 ,[XXLŸ>ÎwîÜ?~üСC»Ôg2™çرc­­­Z£J¥ºvíÚÆ ‹ÅZ½zuQQQAAAtt´ŸŸŸƒƒƒ¯¯/‡Ãé¾Åú‰~¼¨´±±ù裾ÿþûääd­±¹¹yñâÅÚMkkkXpss´´´0™Lh1bĈ#Œy 2äÈ‘#ÙÙÙ£G^±b…¯¯¯1÷žÓÐÐàââ“6lXuuµn…êêêÑ£Gk7gΜ™””©?_h )..NJJÚ´i´ˆÅbFàêêÚÖÖ†a˜î€Äb±Œû«Ô+Ñ‚hmmÍËËóññùöÛowìØ¶¶¶GŽquuÿ ËçA¥š››G¨®®.--]¹r¥A¯¿þúK£Ñ$$$¨T*·cÇŽüü|cî=„ ˆ‚‚‚)S¦ÀÍÀÀÀ3gÎLš4I{ãxVV–n÷Œ?þùóçUUUeee[¶l1ð­[·®Y³æÊ•+Ðboooaa! ¡d›ššètº¥¥eMM»»;¬SWW×}‹õý5eqðàÁ?þ8..N ”””@»ŸŸß‰'ZZZjkk¿øâ‹üü|]¯9sæœ}º'-ÖçôבŸŸ/‘H–/_N¥R7oÞ|øðáñãÇ2$222%%eíÚµ†MŸ>=**ª½½]ë†ãxll,ŽãS¦L‰ŠŠ‚v}/++«íÛ·§¥¥µ¶¶º¸¸ÄÇÇ[YYs—H$‡‚—ºeÀ† `ÁÑÑÑÛÛ;==];&<8===##ƒËå6551Œ€€6›mii©{¤þþþ—.] é¾A.\xóæÍ²²2¸¹iÓ¦”””èèhKKËY³f………Q©T¥R™ššúìÙ3ww÷¸¸¸õë×<öÑ-/§÷ÈÄÇÇ£ç!&ðyˆÞõ¬¹ß˜Bt A A A A A A A ÚÛÏž)LÅ€ ÷w*Y,–½½}Ÿ'dd2&ÀƦÁÔ‰ô b±¸¶¶öµ¾ÊÇf³{ç801 c±¬LHŸÑå¯ö=§—#Ä›ÄÇMIï OO†©Ó11èܧR-¨TÊåË÷M‹é1wA‘•õ«J¥Q©ÔYY¥h¼4wA”•Õµ¶vÂrKK§@PgÒtL¹ "?¿ÜÒ’Ë––”¼¼ßL›É1kA¨TšÜ\Rù÷ÛyJ¥:7·L¥Ò˜6+ÓbÖ‚¸uëQG®kéèÀoß~lª|f-ˆ¼<•Jj*Ë͘*Ÿ€ù Ç•W®T¨Tj]£J¥¹r¥Ç•¦ÊÊ䘯 þóŸ8nà=IWòx^>óDNN…‚éÛ),'Ç|g 3„TŠ_»öÐà‚B¥Òðxd²¿^V3Daa•vµ©R©.,¬|ù Ìô[b±¼³ó Î;sûö}¬µ J³·ïß×j&fúI!{{kÝþ¶¶¶Œá`ºŒ f:e Œ                               Aú‚Lzzº S1!/6ØlWS'b8޶L†ø*›9@¡ØÔêS'bHŸ•"tœ?ž@˜ çÏŸï¢t      ñ ÓaäÈ‘mmmºäryllì„ † òÞ{ï}õÕW*•JëûöÛoäÏ=Ï›7ðêêêžÿç  ¤¤D(644dddtvvNž}×®]p3&&ÆÏÏO¥Ri+Èd²‘#Gž8qúÎ;wÇŽÚ½ß}÷ݼyó´1»>@xüøq—ž5Æ¿½1UPPàêê*‹YYY£G–Ëå¥Rëäääèè«T*«««1 ãñxnnn|>?>>ÞÍÍmøðáÚóIß pùòeoooÆb±Îž= P©TÝáOè—»€aXttôÕ«Wáfffæ®]»(ж‚µµulllff&Üd³Ù.\ þ™5²³³CCC5H—à‰ä“O>¡ÓéL&3&&ÇqƒÉËðӧO{zz>üÀgÏž5j”­­m\\\7-†aعsç<==‡ vðàAÀ”)SÎÎÎ/ïQ}tÕz0BDDD¬Zµª¹¹ÙÉÉé×_…ÆÄÄÄÅ‹?}ú´²²ròäÉÛ¶mƒ"7oÞµk×¼¼¼*++«ªª|}}cbbŒyÉd²Aƒq¹\¡PxêÔ)*•*“É’’’ ºK$xZw)òILĽ{÷ììì‚€RnkkërP·oßvrr‚¾üñ‡³³óo¿ýÃ<¸½½!tƒPSSSYY9nܸ„„ƒÉëžÁºeÀòåË;;;Ož< X²dIgggZZ ½½Ý`‹A¯ÐÐP±X|âÄ À³gÏþÍñÊ‚‹ÅL&ÓÛÛ;!!Ak;v¬P(„墢¢‰'œ*++ ‚3fLnn.ÜûàÁmYßK$YZZ:tH,k4©TªV«¹£‚¸sçN×ú~úé§Û·o'"33söìÙº1» þâÅ …òûï¿C{nn®‡‡‡Áä»Dyy9 Õ¥ T¿Å ×õë×uk¾VA±{÷n …ÒÒÒ¢µÐh4ÝQÇÖÖæôâÅ ¸·ªªJ?޾A·nÝ µ¶¶öóóûé§Ÿºq7†~ŸýðÃ>>>°ììì\TTÔÅ%55õÃ?Ôúòù|Fœ––Ft+mðúúz€B¡€öÊÊJf0yÝ{ôè‘® ´Á – ¶àÏ?ÿÔ­ùú®!õõõ)))[¶lÑétº6{±X\ZZ í–––—ºº:h¹ÿþ¾}ûŒy) FsñâE‘H¹páB‘Hd̽‡Àþ^°`Ü Û½{·vMË剉‰sçÎÕZ¦M›&•JoݺUTTÜÃàNNN ¥¶¶©quuí&y¸Ömllìù±kg ‹¾[-ꪼl„P«Õ{öì‰DÎÎÎÐþÙgŸ…††Â›¯¯ï† tEïíí]UUUUU5uêÔµk×óR(4-;;»­­-==F£) cîÝ\ChW†|>?((ˆÉdJ$¸·££c̘13fÌ(,,|ôèQnn®——×Ô©Sq×=ׯ_ïéééïï¯{æ½4øŠ+jkk«ªª¼¼¼víÚe0yxëâÔ©S!!! Ç#„~‹¬ _*•vÓ•;e;vl„ p"ÈËËc0"‘ˆ ˆÎÎÎÕ«WÛÛÛ;88p8¹\®+Çcbb\\\lmm—/_.‹¡]ß ¦èîînee5vìØK—.uãÞÍL¬å­·Þ ÓÝ‚Éd[¶l7nÜàÁƒ½¼¼öîÝûüùó.MÏçóÇïbï>¸H$ wpp`0›7oV(Æ’ß»w¯»»û¥K—z.ƒ-¦_S©TN›6ÍÆÆ¦›®„ôÍ5â= ƒx HHHHHHH]ÿ<ÇhÏÿ ú@ÐÅ‚ÞíDÞí$ @×HHHÿÉyé‹­êD´IEND®B`‚XQilla-2.3.0/docs/simple-api/ATTimeOrDerived_8hpp__incl.md50000644000151400015140000000004011653571063020255 00000000000000295892607837fd08dc818ad7327f1a1eXQilla-2.3.0/docs/simple-api/classATAnySimpleType-members.html0000644000151400015140000004142711653571063021166 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATAnySimpleType Member List

This is the complete list of members for ATAnySimpleType, including all inherited members.
_ref_countReferenceCounted [protected]
ANY_SIMPLE_TYPE enum valueAnyAtomicType
ANY_URI enum valueAnyAtomicType
asString(const DynamicContext *context) const =0ATAnySimpleType [pure virtual]
AtomicObjectType enum nameAnyAtomicType
BASE_64_BINARY enum valueAnyAtomicType
BOOLEAN enum valueAnyAtomicType
castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [protected, virtual]
castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
DATE enum valueAnyAtomicType
DATE_TIME enum valueAnyAtomicType
DAY_TIME_DURATION enum valueAnyAtomicType
DECIMAL enum valueAnyAtomicType
decrementRefCount() const ReferenceCounted [inline, virtual]
DOUBLE enum valueAnyAtomicType
DURATION enum valueAnyAtomicType
equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0ATAnySimpleType [pure virtual]
fgDT_ANYATOMICTYPEAnyAtomicType [static]
FLOAT enum valueAnyAtomicType
G_DAY enum valueAnyAtomicType
G_MONTH enum valueAnyAtomicType
G_MONTH_DAY enum valueAnyAtomicType
G_YEAR enum valueAnyAtomicType
G_YEAR_MONTH enum valueAnyAtomicType
generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicType [virtual]
getInterface(const XMLCh *name) const =0Item [pure virtual]
getPrimitiveTypeIndex() const =0ATAnySimpleType [pure virtual]
getPrimitiveTypeName() const =0ATAnySimpleType [pure virtual]
getPrimitiveTypeURI() const AnyAtomicType [virtual]
getRefCount() const ReferenceCounted [inline]
getTypeName() const =0ATAnySimpleType [pure virtual]
getTypeURI() const =0ATAnySimpleType [pure virtual]
gXQillaItem [static]
HEX_BINARY enum valueAnyAtomicType
incrementRefCount() const ReferenceCounted [inline]
isAtomicValue() const AnyAtomicType [virtual]
isDateOrTimeTypeValue() const AnyAtomicType [virtual]
isFunction() const AnyAtomicType [virtual]
isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicType [virtual]
isNode() const AnyAtomicType [virtual]
isNumericValue() const AnyAtomicType [virtual]
isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
Item()Item [inline, protected]
NOTATION enum valueAnyAtomicType
NumAtomicObjectTypes enum valueAnyAtomicType
Ptr typedefAnyAtomicType
QNAME enum valueAnyAtomicType
ReferenceCounted()ReferenceCounted [inline]
STRING enum valueAnyAtomicType
TIME enum valueAnyAtomicType
typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicType [virtual]
UNTYPED_ATOMIC enum valueAnyAtomicType
YEAR_MONTH_DURATION enum valueAnyAtomicType
~ReferenceCounted()ReferenceCounted [inline, virtual]
XQilla-2.3.0/docs/simple-api/inherit_graph_31.md50000644000151400015140000000004011653571063016351 0000000000000056631687c53421adee20eb133f736ea0XQilla-2.3.0/docs/simple-api/ATGYearOrDerived_8hpp__dep__incl.png0000644000151400015140000001332711653571064021471 00000000000000‰PNG  IHDR«Ãr-vybKGDÿÿÿ ½§“ŒIDATxœí{TWÀo$ Š ¯ ¬j×-nkA—õ¨{”‚E V0]ÄÁZWªÛº+=k힊4â¶”§tõÈ#rº*ˆM5‚Zˆ<# Å„†` ¯Ù?fw6MôÞßñ›/÷~÷›É/373‘P0 ˆ™Fv’AÀ2v°CÕ}P[[{äȲJA˜‡ÊÊJ݇?3àñãÇUUUo¾ù¦Y+B˜‹¾¾¾{÷î驆ý:d–zææêÕ«ùË_ô‚h;ÈØAÀ2v°cä³À3rþüù3gÎìØ±#22ÔÔÔ|òÉ'†=3339ŽX,NKKkjj¢Ñh¯¾újtt´‡‡àÿøÇµk×rrr¦OŸŽ÷ïîîÞ¶mÛ|<éò†‡‡Ïž=ÛÐÐÐÓÓãææðÎ;ïXXXèu[¹r%Ñvvv^´h—˵³³{–)=z´eË>Ÿ?é"fX¹rennîœ9s&vBLÒ Ãjjj˜L&ŸÏ' xã7ŠŠŠ===ñññx0kÖ¬¾¾¾?þñÇ\¾|9!!!==}îܹ۷o¯­­ÍËË‹ŽŽÆûŸ:uêÕW_ šôV=}ú”ËåÚÛÛÇÅŹ¸¸´µµ>}úÖ­[Ÿ}öÙ´iú‡½´´4‹¥Õj»ººŠŠŠbcc³³³­­­ÇÅÚÚ:""bÒEN&yhkkëììÜ·oŸH$‹ÅxÐÒÒÒÁÁÁÁÁ9ü*•š››û«_ý*11ÑÓÓÓÓÓs×®]_}õÀÆÆ&>>þÂ… ?455ýûßÿþÓŸþD¡P&½UçÏŸ·³³;~üøo~ó6›Àãñz{{/]ºdØÙÎÎÎÁÁÁ`øúú~òÉ',«°°ðYf±µµt‘S„IPSS³hÑ¢%K–¸¹¹ÕÔÔŒÛ_ „††ê¾¨\.7<<o¿õÖ[¯½öÇÃ0ìäÉ“7nœ7oþ”Z­æñx6lذaÇS«Õ€7nìØ±#$$$44×èÑ£G+W®›6mº{÷neeåÖ­[ußîÓ§Oçw*++õzêÕI¡PÖ¯__WW7ÚìºÃ/_¾ŒŸD<˜žžŽQ©TëÖ­Ã3×jµ.\ˆŠŠZ³fM||üýû÷î®[·nmÞ¼yݺuÿüç?‰­»víZTTÔ† Nœ8¡R©ŒÇ}! ™Œø)?JŽ{"T©TÝÝݯ¼ò þP¡P( :îââ‚G(Êž={®]»–––Ö××÷î»ïc¿þúëžžžŒŒŒÏ>ûL œ9sæéÓ§}ô‘§§gnn.—ËÍÌÌÀ;ìß¿ŸÅbI$‡£W‡ÃéììÔíéééiX-›Íîîîmv£Ãƒ‚‚jkkñïÚ444XZZ.]ºÔè𢢢üüüØØØœœœ¨¨(gtÕ××gffîÛ·/++K&“áÁÒÒÒ£Gþío«¯¯Ç½-8!&cÀƒúúúííímmmcô—Éd† ½5:}Ølvdddqq1—˵²²"â—.]Ú½{7“Étww‹‹»yó&N?}útBB‚££#“É áccc}}}‰‰ô P(Z­öYzŽ1»Ñá¿ýíoe2Ù?ü¨®® Á—œ†ÃËËËwîÜàèèøúë¯vÙ´i“••Õòå˃ƒƒxËå²Ùlooï÷Þ{¸»c48!&³¬©©Ñh4øÃˆŸÏ'ŽÛ†888Ðét±XŒ¿iðcÆàààúõëu»Ÿ;wî­·ÞÒ ööö†††gΜI¥RÅbñ±cÇ …Þ›ØÍÍ `mmíàà ‰–,Y¢û¬H$š?¾nO£ˆÅbâàd8»Ñá–––o¼ñFmmí+¯¼rýúõÌÌÌц«Õj݃“»»»Ñz+!6›MÌþã?Žœ6@«Õòùü÷ßíÚµxäÌ™3|>?::z´µ…Bñó󫨨سg4|øðáeË–©T*ÝÅ•úßÍ >þ¼¯¯/±ÎËË#^¢§†•——ûûû6ûh‚Nœ8ÁápæÏŸO¼*†Ã?ú裇âƒííí£í1àX,ÆéêêÂ-8!&| …R©tÕªU3þGpp°X,‰DcŒzï½÷®\¹’‘‘ÑÚÚ*‰Î;WQQ1ÚË K@@@ffæãÇ[[[÷íÛWZZªR©Ôj5•JU*•ø‰ùéÓ§z£¶mÛ&•JoÞ¼)‹¿ýö[.—Ë`0t[‰¤¿¿ÿÎ;)))===ÄÕpöÑê\ºt©\.?{ö¬î©Ípøúõë¿üòËk×®I$’›7ofggã=¿ùæâ\6iii=zðàAVVÖªU«ÆNˆ jjjüüüt¯™xzzº¸¸ðù|£ +/¾ø‚Çã•——3Œ¥K—~ñÅñññãN·}ûö´´´;vP(”ÀÀÀ¸¸8KKK.—{äÈ‘3fDFFíÛ·/--Mw”••Õ©S§Îœ9Ããñº»»Y,VPPPXXF3œ‚(ƒÉdúøøœ:uŠ8ÚÎÞßßo´N*•ºbÅŠêêê+VŒQ—ùÓ§«É®ÅLèÝ1z÷`ÃßÿHgç“ÄÄß%%…] iÀ»¸w¯»³ó  °°ìZÈ^ŠŠnÑh€®.ÉíÛd—C Õbùù *•@¥Z”– È®ˆ4 5 ¾¾U"‘ãmµZóõ×·4-¹%‘¤””¨Ôÿo»D2tãÆCë! P©4¥¥µúÿoz*Õ¢¤ä;K" ¨­ýA.Ѩ՚òò;J%,WtÑ€ââï,,ô¿Žýôé0Ÿÿ€”zÈ:††F.]®û¦M›VTã‰:ªªîáõÐh´W®4 >õr%%ßv\©TWV6™·òË™LÁçÿ0Æ­’è. ÁughdDÝÛûñ°ªê^JJñ‰ˆ…Å46ÛžŒÒHcòGèEÄÒ’:wîÿÿ{¥““ @7!p† `;ÈØAÀ2v°ƒ €dì `;ÈØAÀ2v°ƒ €dì `;ÈØAÀ2v°ƒ €dì `;ÈØAÀ2v°ƒ €ÿ‰S§N™6ás¥±Q^´šÝÝ݃ƒƒM™3)¦¬ìù3mš%Æ$»Š‰fÚ—ÌôE&??Ÿøõv„iy;­`;ÈØAÀ2v°C‚ E$™0›!¦J>¹zL¸uf€Ìc@kk+ƒÁøåy®_¿ÞósÌ_Ë ™WX«Õ>yb‚~vrrš={6¹5¼¸y ð÷÷/žJ¥JNNvvvf2™ÉÉÉ*• @¡P²³³½½½œœRSSsrræÍ›gkk›’’2vòŠŠ ___+++‹•šš P«Õ‡rsssrrÚºuëÀÀ€a ï¾û.ƒÁ`³ÙIIIÃÃÃ"‘ˆB¡TWW»¹¹ùùùmß¾ï)—Ë­¬¬¾ÿþ{é¯\¹Âápìíí= À3”••-X°€Éd&$$ŒŒŒ šb§NÓ^däççÛ§¥¥ð––Ý>ýôÓÐÐÐÎÎN¡Pèçç·ÿ~¼sDD„L&ËÊÊ„‡‡Ëd²ŒŒ @?ÞáöíÛƒ:¨T*™LF§ÓcbbÄbqnn. ¯¯ïïÿûÂ… …BáÝ»w_ýõ¤¤$Ã6oÞôðáC¡PøÚk¯>|ïðûßÿ¾¦¦æ_ÿú—£££J¥Â0,77wáÂ…Z­ÖpëÖ®]+“ÉŠŠŠð"ñ «W¯nnn®««ãp8DZ½à¸»7,,Ìä÷¦^^^===x»²²rñâÅxg@€a˜R©ÔkãI ¾xñâÈÈÈýû÷år¹F£©­­Å;/X° ¸¸ÏïÞ=¼­[ƒR©´°°hllÄs8¼ƒP(Ä0L­VÏž=»ººð5kÖ¤¦¦ݺ«W¯b¦Ñhðyu3`–ŸŸ¯—–Ž»{Ÿ‡Sè÷ÚÛÛY,ñÐÖÖoØØØh4š^› ¥¥…ÃáèeknnÞ±c‡\.÷õõÅ#žžžxÛÛÛÛÛÛ[oÈãÇ5‡‡þÃáˆÅb¼íåå°°°Ø¸qcqq±OUU~(2ÄÅÅ0mÚÏΰÄÔ^^^DZ£A33…®0 üma˜T*­««›t*…Bžœœ,ÒÓÓñ ‹‹K{{;Þ¾}ûö_ÿúW½QÎÎέ­­øÃ‡Ι3oÎ………•””,_¾œÍfÝèÇQüMhnnÆ-hfÈ7@.ÿïïÿnܸñÃ?ìèè …!!!'OžœtΑ‘¥RI§Ó Å¡C‡ƒƒƒQQQþóŸããã;::ôj Ñh›6mJHHhkkkll˜Ê _¦® #55u*'|90·åååsæÌ‘J¥€¼¼¼ùóç iµÚ´´4ooo›eË–ñù|ü(:ÆQ·¢¢Â×××ÊÊŠÅb}]/^¼èãã3}útww÷œœðóÃ8…BÉÎÎööövrrJMMÍÉÉ™7ož­­mJJ ѳ¬¬lÁ‚L&3!!addD7¹J¥JNNvvvf2™ÉÉÉ*•ʰ€+W®p8{{û£GŽ–sÜ‰Ì ¯0‡……=Ëï"oݺuÛ¶m½½½ÎÎÎõõõ†edd0™Ìâââîîîo¾ù†ÍfZZZðò 2™ŒN§ÇÄĈÅâÜÜ\@__Ÿîr¹ÜÒÒ’Çãõôôœ>}šJ¥Êårb8†a€ˆˆ™L–••—Éd€þþ~¼çêÕ«›››ëêê8ÎáÇu‡úé§¡¡¡B¡ÐÏÏoÿþýzÛX»v­L&+**7§^pì½L}_€¤R)›Íöññ!¶váÂ…gÏž%:œ;wnlFFFîß¿/—Ë5Mmm-ÞYw ‰DB£ÑŽ;&•JµZíàà F£Ñ3@ `¦T*õÚ---xO¡PˆwÎÏÏçp8ºÃ½¼¼zzzðveeåâÅ‹õ¶põêU Ã4͸9õ‚cï=“@Â:ÀÎÎ.66¶©©‰Ëåâ‘ÖÖÖÅ‹|||ÆÎ@§Ó›››CBB–,YröìY"Nùööö|>¿®®ŽÍf¯X±âÛo¿6MKmll4M¯Màéé‰7¼¼¼Äb±îSííí, ŸkÕªUmmm†Eº¸¸ôæ5šsŒ‰Ì tuu¥¥¥ïݻ̙3çÎ;D‡¦¦¦±3(Šðððääd@žžNÄ ¯ …V«-,,”H$Û·o_·nD"™høÐÜÜŒ¿œ ƒ8êH¥Òºº:ÃáF1FsŽ1‘0·Z­6&&f×®]yyyUUU/^ÄÄÄ$''—••õöö^¾|yÿþýc'Q*•t:]¡P:t088¨ÛB¡¬^½º¨¨H&“)•Jfee5ÑRwïÞ-‰8°eËݧ6nÜøá‡vtt…“'O²²²~úiœß07šsŒ‰Ì Ï(ϲ8qâÄ¢E‹”J%†a%%%,K"‘(•Ê?þxÞ¼yÖÖÖË–-ûꫯÀ˜ë ÃŽ?îàààêêšžžÁd2õ&ÊÏÏ÷ðð Óé^^^eeezÃÎÒÁ°÷ÌÊÊš;w.ƒÁصk—B¡Ð.“É¢££íííccc‡††~IN½àØ;¼+ÁqÑÝפð< 0šs™Ü€©{EaF˜5kV\\œr>‰&Š)mÿ [AA©" ¡P(ùùù&ü¶ :À2v°ƒ €dì `ÇÄÿg¨°°ð—|a~Ly=àÆ濹 !þþþ®®®¦ÊfJ/"h;ÈØAÀ2vþ»«Ø+o×ü·IEND®B`‚XQilla-2.3.0/docs/simple-api/classATStringOrDerived__inherit__graph.md50000644000151400015140000000004011653571063022751 000000000000002faa9e9b1b11550f0d2c8948f8903470XQilla-2.3.0/docs/simple-api/ATUntypedAtomic_8hpp__dep__incl.png0000644000151400015140000001253611653571064021444 00000000000000‰PNG  IHDR¥ÃläFÊbKGDÿÿÿ ½§“IDATxœí{P×Û€ß@‚E„„¥`¨ð©ˆÚuª()mÅ*0ˆhÅÔ):·êØúk ¶ÖN+r©Ñ^ ZA¤j«˜x©¤F›jq rˆ ±$›ýþØé6MBäè9ÏðÇÙ7{Þóž<ÉÙÍ’ ƒ$IÀ ƒƒ½ ÀØì-°o´À¾Ñ‚i¸qéÒ¥?üÐ^¥`‚]»vÑ›ÿòÝÚÚZZZ:þ|[…îÜ¹ãææfašî´{÷n[ÕƒX>øà£>~£öØ7Z`ßh}£Eß}÷Ýw¡¡¡G¥#"‘(Ô2™,44´©©É°»iÄ6455…††Ò›¦³°ú–±ñýÐGß$IŠD".—+‹éàK/½TPPPPPžžóüóÏ÷6¿\.ã7úV[Ï1;‹þ=räȸ¸¸~W7 ôÑwmmmCCÖ-[d2Ycc#6l˜»»»»»ûèÑ£Àýo˜L3¯ò-£×ë•Jeßjë9fgÑÿ¡]]]“’’¬Q õé£o‘H4uêÔ3fŒ?^$õ³ˆÐÐÐÒÒÒU«V-^¼ø‡~€õë×@TT8pà“O>¡öT«ÕÕÕÕÔšyõêÕ„„„¥K—8p@«Õ€N§ËÊÊZºtéÒ¥K³²²t:^¯ÿá‡^{íµwÞy§²²Òò, ‡•J•––öÆoDGGgffj4ªà³gÏ®ZµjÉ’%G=wî\\\Ü믿~äÈ0XÏ ‚øúë¯ccc—,Y’ššªR©ÌNÿ·ß~‹ŒŒüþûïéîFSën¾½¥/¾©epÁ‚b¸ö™_~ùåàÁƒÉÉÉÙÙÙPXXóæÍ»zõ*ApõêU///>ŸOõ***JMMýøãËËË©cð‰'äryvvögŸ}&‘H¾þúë‚‚‚ãÇ'%%åää$$$deeYž…áÐðÅ_´µµeeeíÝ»·¢¢âرcTüÆ™™™III‡ºvíÚáÇ׭[—““c¸6œ8qâòåË©©©Ÿþùýû÷sssÍν¼¼üСC[¶l …twÓ©uì}ñ}÷îÝ„„„@HHH]]]mmmò²dÉ’‘#G¾òÊ+`´œNž<™ÉdJ¥R(-- g0ÔMëÖ­ãñxo½õÖùóçàìÙ³7när¹~~~ÉÉÉׯ_?uêÔÚµkçÎËf³gΜI¯´=™…N§‰D)))^^^~~~«W¯¦F€ØØXggçððpX¾|¹³³sDDtttÐÝOŸ>˜˜èçççëë»uëÖI“&™;•jΜ9†ÝM§Ö]°WôúÈ "‘ˆ Ó±Xìëëk¹—á§LßDÅápÀì‘ÞÁÁaîܹ—/_öóó»qãÆ¦M›è›x<Õ?~|[[´´´,[¶ŒÞaĈ:Ž^ÀÏϯç³P(z½ÞÛÛ›Ú;v,5 8;;Ó¶ imm¥+ôñññññ1°Ùl ÄÝM­»`¯èõó[¯×‹Åâõëןù›èèh±Xlù}p\.×ðUGCCƒ££#—Ë¥#F³5bþüùW®\¹xñâ”)S<<<è8}’uÿþ}ê^suuÍÍÍ‹Åb±¸¤¤$##ÃÓÓóÞ½{t—ºººžÏÂÍÍÍÁÁA.—S›ÍÍÍÔ㲇°Ùì––ª-“ɺ[ÏÍÎÝtjÝ{E¯}K¥R…B±páÂáÖØØ(“É,ôŠˆˆøòË/¯]»&—Ë%ÉG}Îb±,¥V«©FPPAß~û-µ~Ò¤§§755ݽ{W(.\¸æÎ{èСÖÖÖššš-[¶-^¼833óêÕ«íííׯ_§N©ž9 jh&“úå—_ÊåòÚÚÚLJ……õü¾  …µµµµµµ_|ñEkk+?}úôÓ§O-÷5ZwÁ^Ñëõ\$MŸ>zÅEáïïïíí-‹ýýý»ëµråÊáÇgff¶¶¶²Ùì ¬X±ÂÂ(žžžS¦LY¶lÙ™3gÀÁÁ!$$ä矦·4aaa›6mêìì\°`A||<¬Y³&==ýí·ßf0!!!ÉÉÉ,K«Õfff>zôh„ »víZ¿~½…Y¬Y³Æpè7¦§§¯]»–Åb½üòËÔ(=$>>¾³³S tvvΚ5+99™ŠïÛ·/88xĈúMZ½MçÛ[†+X^^^ll¬Uη­ŽP(liiÙ¹s'µÙÔÔ´bÅŠÁYj?1;µ¾Í÷ƒ>ðððÈËË£#Càú¹F£‘ËågÏž]´h‘½kò ß•••ÉÉɯ¾újpp01bDdd¤«8ÌNÍZó2ë9¦ ÉõcE°o´À¾ÑûF ì-õ}÷î#{—`Ì\Oݼy³íë°1mmÁnnw™ÌN{2°ÔÔÔ]ðÿ—ïqãÆEGGÛ¶$; V3››]†Ÿ8n\dz÷ÊøùùÍš5Ë0Â@ðû<>ýôì矟óña_»¶ÓÞµØßùùP_ÿ¨²²ÙÞµØä|ß¼ÙÐØ¨˱ à†½Ë±5Èù.*’0™Ž Õùùz=Z‡3´|„þĉ Ž 6ÛÚ:®_¯±oI6-ß׮Ɋ¿èMËñäI‰ë±=hù.,”0™ÿLY«%Š‹%Z-aÇ’l B¾5Ý©S·t:½aP©ìº|¹Ê^%Ù„|‹D•ju—QÉd"t–ŽïÂÂÆóÕéôgÎüþ×_»”d{Pñ­Ru;w‡ ô¦7iµDiéÛ—dPñ}þüF×ݭ蜥£â»¨¨[£z=)W*•j[Öc/PùIc£Âp1Ÿ=ûÃÿý/*,ìÿ舧§ë°a}ùôäÐâ¿?C ÏÍ(âááâãÓ—Ü iPYÏ1Ø7Z`ßh}£öØ7Z`ßh}£öØ7Z`ßh}£öØ7Z`ßh}£öØ7Z`ßh}£öØ7Z`ßh}£öØ7Z`ßh}£öØ7Z`ßh}£…u>ï_ZZZS3ľ˜²´´´¥åº½«èô/—÷ Ò ¹oÉg±¸Ãì]Eï°Š)«­çÑÑÑV)È6h4­Ñiï*zÊñãÇ­¥ ¿ÑûF ì-°o´À¾ÑûF ›úf02™ÌŠÙL±Vò¾ÕcÅÙ öy~×ÔÔp8œþçùõ×_åÿÆö5 -ìóý©z½þÑ#+üb«‡‡‡§§§}kZØçùMý¨%­J«Õ ‚1cÆp¹\@ Õj€Á`9r$00ÐÃÃ#---''Ç×××ÕÕu×®]–“ÿøãÓ¦MsvvöòòJKKN·{÷îñãÇ{xx¬\¹òñãǦ5<~üøÍ7ßäp8<oóæÍ2™ŒÁ`\¸paüøñÓ§O_³f µ§J¥rvv¾yó¦éÐçÎãóùnnn©©©@e(..ž8q"—ËݰaCWW—Ù 5îÔža• ~ÑÑÑ=¹ž ÕÕÕ$IVWW½wïÞeË–544H¥ÒéÓ§oÛ¶Ú9..N©T …Bˆ‰‰Q*•ÙÙÙððáCj‡[·nu Õj•J¥““Sbbbcccnn.Ö(hù~£®§öÐÅ3X%K?}Èårª}þüùàà`jg‰DB’¤F£1jSIL»%%%]]]•••*•Š ˆK—.Q;Oœ8±°°ÊÿçŸRmÃ4££ãíÛ·©ÍÂÂB>ŸOí •JI’Ôétžžž.\ Iòµ×^KKK3;»‹/’$I5®a’$?n”–Z¾ß¬è{P|ÿy]]——½éêêJ5\\\€Åbµiª««ù|¾Q¶ªªª·ß~[¥RM›6ŠÔ××ûûûSíÀÀÀÀÀ@£.­­­AL˜0ÚäóùT; £¢¢ ƒ‚‚JKK©eÆooo0úUz耀:­Ù  ¯¿9õ”%IR¡P”••õ9•Z­Ž‰‰‰$##ƒ z{{×ÕÕQí[·n}ôÑGF½ÆŒãèèHÿ ÿÞ½{cÇŽ¥Úô#,::úäÉ“yyysæÌáñxfG7û‚zB@UUõ€è.hìé[¥RQ¨¨¨íÛ·×××K¥Òˆˆˆƒö9gWW—F£qrrR«Õ»wï€ŽŽŽ„„„÷Þ{ïöíÛ·oß~çwêëëj`±X±±±6l¨­­½}ûöÎ;ããã2Ï;W§ÓíÙ³'!! …Â'OžX.iãÆ2™¬¢¢bÇŽ+V¬°´V9*ôöø­ÕjçÌ™3räH*®T*W¯^íææÆf³“’’ž>}j¸swmà!û÷ïwww7n\FFF\\—Ëíììܼy³···««k\\œB¡0­¡½½=!!Íf{yy½ûî»jµÚè$ƒ$ɵk×>\©TšÎÈl›Ê  }||8NJJ Ö(hù~ªçkC;v,_¾¼çû›>bº Zæ¿v¾6øéììlnn>räȱcÇì]K¿çkƒŸòòò_|111qþüù=ï5jÔ¨äääžm~~÷ˆyóæµ··÷¶—ËÍÊÊêIÐfàç7Z`ßh}£öˆú~øPeïìƒÕÎÏkjj¾úê+kehòó›"#=Ÿ{ÎÑÞ…ôˆ7nX-—U®Ú ­Ï98 óôL>Üø¿dƒ«˜Bå÷¿ ùþûkAÞK/ùç篷w-¶ÅãwAÁ FY™ìÑ#äŽâÈùniyR^^@0Š‹Í¼í¿ r¾‹‹o::2@¯'óò*ì]Ž­AÎw~~A@’ä464 õ–d´|×Ô´ýùg3}ŠêèˆÜ’Ž–ï“'%Læ?¯¹ ‚ÌÏGkIGËw~~…NGЛ$IÊd*+{ñ)¤¡B¾Í­™LÇ¢"‰]ê± ù.*’°XÆPu:"/ï::Pñ­×“'Nü¦Õ¦7µ¶*%’zÓøT|——×´µu˜½‰Ét~£öØ7Z`ßh}£Å ó-“É †ÙF?Ú ;ƒÁÉd}Ë :ߣGÞºuë`N8¤t¾9NZZÚ`N8¤±‘ïS§N;V¡PÀ±cÇ^xá…§OŸêõúôôôÀÀ@—Ù³g‹Åbj=´°~þøãÓ¦Msvvöòò2k±¤¤$((è¹çžóóóËÉÉ/È ãÈ‘#iii999¾¾¾®®®»ví¢÷,..ž8q"—ËݰaCWW—ar­V+ÆŒÃårV«5-àܹs|>ßÍÍ-55µ»œÏh±Öõógî¶råÊU«Vµ´´Œ3¦¼¼œ$Éììl.—[XXØÜÜ|úôiÕÕÕT6Ó†R©trrJLLlllÌÍÍ€¡R©† –••%—Ë>Ìd2U*Ý$Iˆ‹‹S*•B¡bbb”Jevv6<|øÚ3<<¼ªªª¬¬ŒÏç¿ÿþû†Ý÷îÝ»lÙ²††©T:}úômÛ¶Í-Z¤T* ž™Ó(hùÞ‹ŽŽ¶ÊõsÛùV(</((ˆžÛ¤I“¾ùæz‡o¿ýֲﮮ®ÊÊJ•JEÄ¥K—¨ ‡hoog±XûöíS(z½¾££ƒ #߉„$IFcÔ®®®¦ö”J¥ô¼ø|¾a÷€€¹\NµÏŸ?l4G¸xñ"I’A<3§QÐò½g-ß¶;~=:))éÎ;ëÖ­£"555ÁÁÿ|yPPå NNNUUU3fÌøæ›oè8ãoÜÜÜÄbqYYÇ›7oÞ•+WŒ'èââ,˨MãïïO5 oª««óòò¢ÆZ¸pamm­i‘ÞÞÞ`4®Ùœ8lçûþýûéééaaa›6m¢"cÇŽýý÷ßéîܹc9ƒZ­Ž‰‰‰$##ƒŽÓ^µZ­×ëóóóÛÛÛ׬YÙÞÞÞÛ:©'TUUQòh8½¢(в²2ÓîfO>Ìæ´0ÐÀa#ßz½>111%%娱c¥¥¥%%%˜˜(Š‹‹[ZZ~úé§mÛ¶YNÒÕÕ¥ÑhœœœÔjõîÝ» £ã_?AÃ`0ÂÃà ”J¥F£a±XÎÎν-uãÆ2™¬¢¢bÇŽ+V¬0¼)**jûöíõõõR©4""âàÁƒ  Ÿzô(X<~“$¹ÿ~ww÷qãÆeddÄÅÅq¹\Ób&L˜àääP\\lÔ ù¦mjO¡PèããÃápRRRÔjµaw¥R¹zõj7776›””ôôéÓþä4 Z¾‡ÞùÚ31¼gíÂ@`6gzçk˜Áöý£FJNN¶AΨ‡Xá÷¨òòòbccûŸc˜˜°Æ›ñó-°o´À¾ÑûF ì-°o´°ÚçKúó1LO°Ê'x¬ðúûþýûfÿS„±.<oöìÙýL‚èï# >~£öØ7Z`ßhñÿÈä³[™SIEND®B`‚XQilla-2.3.0/docs/simple-api/ModuleResolver_8hpp.html0000644000151400015140000000562411653571064017426 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ModuleResolver.hpp File Reference

#include <xqilla/framework/XQillaExport.hpp>
Include dependency graph for ModuleResolver.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  ModuleResolver
XQilla-2.3.0/docs/simple-api/structBaseInteractiveDebugger_1_1Run.html0000644000151400015140000000463711653571063022631 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

BaseInteractiveDebugger::Run Struct Reference

#include <InteractiveDebugger.hpp>


The documentation for this struct was generated from the following file:
XQilla-2.3.0/docs/simple-api/XQillaConfiguration_8hpp__incl.map0000644000151400015140000000003511653571064021345 00000000000000 XQilla-2.3.0/docs/simple-api/classUpdateFactory.html0000644000151400015140000006435211653571064017323 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

UpdateFactory Class Reference

#include <UpdateFactory.hpp>

Inheritance diagram for UpdateFactory:

List of all members.

Public Member Functions

virtual ~UpdateFactory ()
virtual void applyUpdates (const PendingUpdateList &pul, DynamicContext *context, DocumentCache::ValidationMode valMode)
virtual void checkUpdates (const PendingUpdateList &pul, DynamicContext *context, DocumentCache::ValidationMode valMode)
virtual void applyPut (const PendingUpdate &update, DynamicContext *context)=0
virtual void applyInsertInto (const PendingUpdate &update, DynamicContext *context)=0
virtual void applyInsertAttributes (const PendingUpdate &update, DynamicContext *context)=0
virtual void applyReplaceValue (const PendingUpdate &update, DynamicContext *context)=0
virtual void applyRename (const PendingUpdate &update, DynamicContext *context)=0
virtual void applyDelete (const PendingUpdate &update, DynamicContext *context)=0
virtual void applyInsertBefore (const PendingUpdate &update, DynamicContext *context)=0
virtual void applyInsertAfter (const PendingUpdate &update, DynamicContext *context)=0
virtual void applyInsertAsFirst (const PendingUpdate &update, DynamicContext *context)=0
virtual void applyInsertAsLast (const PendingUpdate &update, DynamicContext *context)=0
virtual void applyReplaceNode (const PendingUpdate &update, DynamicContext *context)=0
virtual void applyReplaceAttribute (const PendingUpdate &update, DynamicContext *context)=0
virtual void applyReplaceElementContent (const PendingUpdate &update, DynamicContext *context)=0
virtual void completeUpdate (DynamicContext *context)=0

Protected Attributes

DocumentCache::ValidationMode valMode_

Constructor & Destructor Documentation

virtual UpdateFactory::~UpdateFactory ( ) [inline, virtual]

Member Function Documentation

virtual void UpdateFactory::applyDelete ( const PendingUpdate &  update,
DynamicContext context 
) [pure virtual]
virtual void UpdateFactory::applyInsertAfter ( const PendingUpdate &  update,
DynamicContext context 
) [pure virtual]
virtual void UpdateFactory::applyInsertAsFirst ( const PendingUpdate &  update,
DynamicContext context 
) [pure virtual]
virtual void UpdateFactory::applyInsertAsLast ( const PendingUpdate &  update,
DynamicContext context 
) [pure virtual]
virtual void UpdateFactory::applyInsertAttributes ( const PendingUpdate &  update,
DynamicContext context 
) [pure virtual]
virtual void UpdateFactory::applyInsertBefore ( const PendingUpdate &  update,
DynamicContext context 
) [pure virtual]
virtual void UpdateFactory::applyInsertInto ( const PendingUpdate &  update,
DynamicContext context 
) [pure virtual]
virtual void UpdateFactory::applyPut ( const PendingUpdate &  update,
DynamicContext context 
) [pure virtual]
virtual void UpdateFactory::applyRename ( const PendingUpdate &  update,
DynamicContext context 
) [pure virtual]
virtual void UpdateFactory::applyReplaceAttribute ( const PendingUpdate &  update,
DynamicContext context 
) [pure virtual]
virtual void UpdateFactory::applyReplaceElementContent ( const PendingUpdate &  update,
DynamicContext context 
) [pure virtual]
virtual void UpdateFactory::applyReplaceNode ( const PendingUpdate &  update,
DynamicContext context 
) [pure virtual]
virtual void UpdateFactory::applyReplaceValue ( const PendingUpdate &  update,
DynamicContext context 
) [pure virtual]
virtual void UpdateFactory::applyUpdates ( const PendingUpdateList &  pul,
DynamicContext context,
DocumentCache::ValidationMode  valMode 
) [virtual]
virtual void UpdateFactory::checkUpdates ( const PendingUpdateList &  pul,
DynamicContext context,
DocumentCache::ValidationMode  valMode 
) [inline, virtual]
virtual void UpdateFactory::completeUpdate ( DynamicContext context) [pure virtual]

Member Data Documentation


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/MessageListener_8hpp__incl.md50000644000151400015140000000004011653571063020420 00000000000000bbaf290d3a5d41255d036d0bd3ab6ee1XQilla-2.3.0/docs/simple-api/XQillaConfiguration_8hpp__incl.png0000644000151400015140000002707511653571064021371 00000000000000‰PNG  IHDRu·O™ßbKGDÿÿÿ ½§“ IDATxœíÝw\çö0ðg Hï½w¥¸ˆj4Q"æJŒÑÄ^¢1$ˆÉ¹‰,!KÅ\ß«Æk—D1K$Æèb 5€ ¨H¤HÇeiÛæýãIö·î. ʲ3,çûñu˜rföÌp˜yö, UÑÉE `”+ 4(X¥1É0Rüþûï111dG†Êk¯½¶qãF²£¨'(X*ÒÐÐpíÚµéÓ§“P¾ââbccc²£¨-(X*µyóf²CÊ÷Í7ß@ÁV@iP°Jƒ‚P¬€Ò `”+€B=z4cÆŒôôtñ”;wîÌœ9³¢¢ÿ·§§çàÁƒ¡¡¡!!!k×®MJJ …¡ÚÚÚ   ¹/hii‰‰‰Y²dIHHHxxø­[·^4`‚ ¶oß2À-Æà×T[[«¬x@e `Pˆ»»ûŠ+öîÝËårB»wï^µj•‹‹ B¨««kÍš5%%%aaa‡^¶lYjj*›Í‰DzzzK—.}¡mq8œ?üpÔ¨Q›7o>pàÀ믿¾mÛ¶œœœZIKK˵k×¾ÿþ{„ÐKÄЯúúú¹sçâ×C±~ +€ZÞ{ï½[·nš5kÖüùóO:…'Þ¼ysþüù’³­Zµ*22¿ær¹ñññsçÎ]¸páÿû_‡ ºvíÚªU«Þ~ûíŸ~ú !ôñÇ#„Þ}÷]$ñÈž ˆ_~ùåý÷ߟ={ö_|‘‘‘ŸÅ‹#”·——·xñ⢢"Ù8å®àáÉÊÍÍ]¾|ùœ9s’’’Äë¼sçÎ{ï½÷Î;ïìÝ»—ÏçË8à7” Våxxx,^¼øÈ‘#+W®tvvƹ\nkk«›››ÔÌîîî••• ÖÖÕÕµiÓ&ww÷“'O®]»öðáÃíííxm’sjkkã{¥¡ÿüç?MMMرcGNNÎ?þˆ§ß¾}û»ï¾[³fÍÁƒ;::öïß:þ¼äz~ûí·'N|òÉ'§NZ¾|ùwß}§x“““£¢¢lmmeã”»þ‡'»­¬¬¬Ã‡GFF9rD|ïöÂ… qqq±±±YYYâ‚^îD ¬Ê!¢ªªŠN§WWWKýˆF£ÉÎ,yÏU–¦¦æÑ£G×­[gjjŠëÑÎÎN‚ ä® 7nÜøôÓO­­­]\\V¯^ššŠ4oÞ<==½üã!qÁ'åܹsááᆆ†þþþ«W¯V¼¿aaa~~~²q*=¼Å‹ëèèL:!$®h×®]kggçééùᇊW%w" Vå\»v­  `÷îÝ¿ÿþû;wðD===“²²2©™ËÊʤn”Ja2™555‘‘‘aaaW®\Áõõõ«ªª$ç|ðàAxxxooo[[›H$²±±ÁÓmmm›ššðk333¼N[¬««ßF999IÍ€Ëe1¿Ü8åLx¦¦¦H¦R·³³G"^•܉@ (XÔÒÒÒ²wïÞððp‹µjÕªo¿ýV|§088ø‡~‰Dø¿Û¶m»~ýú©S§f̘¡`…½½½[¶lY²dÉ¡C‡þõ¯‰§O™2åôéÓ’µcjjª@ 5j”±±1N¯¯¯ÇÓëêêp!ˆú¾)+ÉÒÒRr”‚dYŒ›p577KÎë˾â”5˜ðäÎPSSƒ_iÒ$¼ÔgŸ}fffÎf³–/_>ð½˜7oÞ¢E‹vïÞ½lÙ²Ÿ~ú)<<ÜÐÐÐÐÐ044tÿþý¸Àã´²²;v¬T7ƒ o×®]íííŠ^¿~}TTT`` xUr')hRC©`ˆ$''/^¼8--M¹«¥¥¥^^^Ê]í`dddXXX¸ººâÿÞ¼yóĉ‡&7*¹jkkW¬X!õ¦È¨Ø7ß|cnnžœœ¬ì!¸Ã î˜L&¥ªU„PEEÅöíÛ=zÔÛÛ[RRrìØ1Ń(ßtJ¶dÉ’žžž¯¿þº½½ÝÚÚ:$$dΜ9d%Ÿ®®®llr'‰ `%c0¡¡¡¡¡¡dÒ?##£/¾øb €D0$P¬€Ò `”+ 4(X¥AÁ ( ÚZT*""b ³Ï×çñ ´´Z™ÌΡŽJŠH¤‰ˆN¨x»²„Bm£›Ä¸\;:§©ÙÁd* £¢¢"88XeQF(X*boo¿páB3ôö28ÍŽŽQŽFg§Aд´vv&&*­Øt*+ ­¬ºœœž©r»²::4 Í­¬:9L¦ˆ”îÝ3ëèÐ iL&¡¯ÏÓ×çééñôõyÏÅãââ2iÒ$R"Œ4‚ ÈŽ0Bq8ÝYY……O²³+ ª;:zŒŒtœœ½½muuG©2ž‡Ÿ²ÙÉwïV¯[üÉ'3´´4T¹u¹RS‹£¢Îòù‚ß^¸0€¬0žÖdgWfgW>éíXZ°Xö,–‹eàld¤CVl€‘ V€êQZÚ“ƒëžšòòF‘ˆpw·Äj` ‹££))ñx‚„„+‡¥{{ÛîÚµØËˆ”0äâpz.?~kúô1ññ íìŒÉG •—7ŠßÄG‚pt4 pÆ%ì¸qššðø LP°†VO_\ÜT75uhOœèÂbÙºŒç ¯¯En„wî”±Ù§›š:¾üòÍ÷ߟÊdRñÓ¨ÙÙlvrMMÛ_¼Ä`P%ÈŽŽžû÷ërr*³³+óòªZZ¸ OO›€g|ÿÕÃÃ’F£‘&`xƒ‚ |ÕÕ-YY¸ˆ©¨hDV¸B pvs³ H½ÕÞÞµiÓÏçÎý9mÚèøøäÜß >_xèPzBÂË]»³XödG$‡äࢢšž¾……¾¯¯.^'Lp26Ö%;FÀð+@ x}÷î“U«¦~õÕlM²#ê ( ¬€—ÔÜÌÍÈ(ËήÌÉ©¼¿ŽÏÚÛ›LœèÂbÙ:{yÙRóÙ:B¨®®ý«¯Î^»V²|ù¤ Þ24f""))sëÖSS½;½úªÙ ˆäàüüªæf<((XÅç óó« kð=³†ަ&Ó××>0Ð%0ЙŲ³´4$;Æ~ˆDıc·víºlf¦¿sç¢W^q#;¢—×ÐðlÆó—/ÍŸï¿eË<“aö¨]vð€–¯¯¾+ïïï4ìö0t `(ÒÚÚùçŸqUQ\\ÛÕÅ33Ó›<Ù ß;ÖN[›º¤¥”–>e³“óòªÂÃ֯ÿºV ^jjñ—_ž E_=‡Ä¾Wƒ„>Á÷_ËÊD"ÂÒÒzf±ì|}F‚ÁŒ\P°ž#÷îÕࡨ99•UU-ŒqãðƒþÀ@gêßF•Eå®UƒÇát'$\9~üVPИ¸8òû^ žÜÁÎÎæ¸ý `‚‚€ž=ëÊήķQï߯ãr{u'Lp"«¿rýñG›ÜØÈ¡rתÁËʪ`³O×Ö¶S­ïÕàÁଌD² ü ‚ðñ±Ã_Ilà¯\=Û¶ý’””ùÚk;v,¤xתÁëíìÛwmÏžk£G[}ûí’±cíÈŽHù`ð#¬ŒÝݼÜÜÇÙÙÙÙ•wïVs8=Tkà¯\—.Ýýúëó|¾0.nÁ0êZ5x÷ï׳٧ Ÿ¬Y1K½«7ÙÁL&ÝÅÅ f `@=|øT|/ª¢¢Q(ü¿ïAe±ì©ÓÀ_¹êëÛ£¢Î¦¦¯X19:ú­ø5÷"qêTæÖ­)ffú;w.œ:uxô½<ÙÁúúZcÆXãFãÇ;ššê‘#àe@Á €ZéíܽÛgÿqãÌÍ)×À_‰Ä]« uââ¼þº'Ù‘©¡áYtô¹+WîÍŸïÿÍ7óFÚWLõ5x|ÿͦ"  ``Ø«©iËÈ(ÃíQqüeBxTŸ««…º~ÌHÊ£G lvòŸ>úâ‹7†Q¿­!uñbÁ† çh4Ú°î{5xxð>M22Êd¸»[Òé0xŠ‚‚€áG ø+—¸k•——Í®]‹½½mÉŽˆZ8œî˜˜‹II™3fxÆÅ-°µö}¯Oñà??G33<…@Á ÀðÐÒÂýã2ü 7ð77ן4É?î÷ô´ÑÐ`#9þü³ŠÍ>]]Ý5[»V ^ff9›\W§†}¯ @}P°@QjÙÀ_¹Ä]«^}ÕcÇŽ…êÑŠkHõôð¿ûîúž=×X,û]»mEvDTÄåö–”Ôâ'™™åMMxðî§à ƒP=(X öö.|GÜÀßÄDwÊwÜ`ÒÇÇNGÆeþå·ß 7l8Ïç FZתÁ»¿."âô½{µaaÓÕ¾ïÕàÉÐÓåéiƒÿtœ4ÉU½?ÈE@Á ™FHåzúôÙ—_žIM-^°`ÂÆoC¹ðpß«o¾I17×ß¹sÑÔ©îdG4<(<€OØ œàÓ~ (XP5§'+«¼°ðIvveAAuGG¡¡~Êàìåe«§7Œ¿uHýݵêŠV\ÜÂ3FtתÁ{ò¤5*êLzúÃùóý·n}g6¬$<€Ê@Á €*H6ð//o‰FDå*+kd³OçæB×*%Ã}¯ètÚ† #ºïÕàáÁøoÑÜÜÇÝÝ<<€²@Á ÀèídgWàýwïV76vhkkN˜àèèâëë`` V߃:¤ø|áž=©ûö]=Úz×®Å>>еJÉž=ëÚ¾ýפ¤Ìà`¯¸¸66FdG4ìÁà” V”æÉ“ÖÌÌrü|°¤¤V yxX‰ŽœþÊ•—WÅfŸ®ª‚®UC.#£œÍ>ÝÔÔÁf‡|ðÁ«ð,[‰d0tWW Ëßõñ±ƒ€P°ðòxÇã ¶l™»`Á n>©NII]DÄéââÚ°°élö,MMè{5„`±ì'Nt10Ð&;LH+ý7ð*4ðRÍÍÜ Î]¼X]«H$ˆoïØñ›……Á΋¦Lq#;¢‘¢ßÁÞÞ¶ðM0AÁ €mm¹¹q«ð’’ºÎÎ^SS½W^qƒþCŠ ˆ¤¤Ì˜˜‹úúZqq ‚ƒ½ÈŽh¤«®n‰Š:ûûïÐ÷Š4ŠLœèâà­šÁˆ+!$ýÕÀ*NƒþªT^ÞÈf'çäTB×*ª¹x± :ú“Iß¶íÝ·Þò%;œ‘Kþ·ï¿¿=i’ë΋ kÕÑÝÍû÷¿¯8æïï”°ÈÝÝ!´cÇoûö]‰«W#œÍÉ  *+x\nï`¾J¶?Að=¨ÃצM??~[(!„ úgŸÍœ0Á)*ê,‡ÓýÍ7ó kÕT\\qº¤¤.,lzHÈØ¹sÿ#! ºµµñÕ«ðñ,µ¢‚Á"A£!¸˜ŒXP°‚ÓÒÂݲå'8xðýZ°»›—›û8;»";»òîÝj§ÇÀ@{âDhà?Ü%'çüë_§$§0t‚@Ó§Ž_hggLV`€\<ž`Ïžk{ö\36Öikë„x:“I òLL …ÊC]É<`` åëë€[ úû;™˜¼ðàÂÂ'›7_ˆïéi3aŠƒ‚ AÉÉ9›6ýÌåö˜˜èmíw‘‡Ÿâ¡¨¸¿Pø߃ÊbÙC5pï^í[oý?>_ y!ÑР;9™ß¸ ï/غõ—C‡ÒE¢ç~ÑÐé´¯¾šýÉ'3ÈŠ ¨’äàììÊêê„¥¥þ&ËÎ××aÔ¨þ$&Þ‰Ž>K§ÓBC_c³Có” GP°‚),|òùç?=|XO¥LVÖF{{©Ùz{wïöÙÀÜ8ssè¯>8œîàà„§OŸ "©Ñé´mÛÞ]½z*)Šxü¸yúô<ž@öG4-))lúô1ª K<@}’ƒîÜ)ëêê•;“I74ÔÙ´éí… T!P%(X4‘ˆ8vìV|üo<_vl¢ƒA{ð :¤Ž@7Ïœùmww/.Xét:ƒAãó…šš ??§à`Ï€g;øòU€þ~曓S™™Y~ûö£ÆFN£ÑèBá_õ+†/[6‰Ü8ÅíÚueß¾ërÇC#„ð•I“\vìø«õ/P?ϬÝÝÝmmm$FHWSÓó¿ÜÜj„hõóÇÌÁƒKüýí‡4mmmcãÁöEjkkëîîVJ<€Ï®Zu²´´ÿ†5Šéãcãïoïçgçãc­­­Av€/ÆØØX[{°7€ëêꔌډˆŠŠæ¼¼'µ¹¹OZ[;étDˆÉdüðÃ{îîðmÞÍ`Nõu6­[w.#£Bñ6ÆdÒÃÂ^yï½@øì„z̨ç ÖÆÆÆ’’2B”Ÿßðý÷Eø¿4n¨Ià'¼R ú‚£çÎõÒÌÍͽ½½¹’ââ⦦&¥ÄÌÏË{êáaâéi6z´©““!ƒ1Œ?¥ëååea1Ø!×éééʈeÄilìzø°åÁƒ–’’f‚ bb¦ééÁ]ùámúôéƒ\C_gSXØe.—'÷G FCB¡—3tëÐP–®.¤Ó°'™Qr:Ÿ >áÀ05}:úüóÅ<ž ®®ÿ«­m«¯o¯©i{ü¸ùéSŽxƒA‰DÍÍ´!Í–ââbe­J)…/èéá;9ù¨Í—¬*±ÐTJá;’={ÖÕÓ÷´4$;ð’”xÃKölzò¤•ËMÑÐ`0tO€#14KK#ggS3{{{{SKK¥„È%›Qð=¿@š¦&ÓÉÉLnQÒÙÙ[[Û†kÙúúv.Wþx ®´´4Ô¦Z”bh¨cÅ*èCUU‹¿¿“““™ƒƒ‰ƒƒ©‰ƒƒ‰µµ<÷Q `/@Ww”‡‡•‡‡Ù)¦NuŸ:õ3²£$ƒ¿N¥AÁ ( V@iP°J‚µ¬¬ŒF£É}¡@uuõêÕ« ‚X±b…žžÞÐ…7H öïB~~>“ÉŸ ˆ“'Oz{{‹D¢~ƒQp_°`A[[ÛáÇB---rç<|ø°­­í•+WšššRSSÝÜÜðÛ§8‹¸\®dÝÙ¤Ê;¬ÃâlÈÄ\] Š%¹T`C”N„¼Œz™‚µ­­ÍÎÎŽÅb‰7éí혘(žáûï¿Wü{½··÷þýû\.W(þþûïâƒ>þüÖÖVBÞÛ\XX¨`A„P^^A<Oê5ža̘1õõõx…©©©ãÆËÍÍÕÓÓãñx_|ñEtt´††F[[[BB›o¾‰—e0â*çüùónnn’‘àב‘‘¡‡Š÷]¼ ˜H$š;w.ƒÁX±b…ägŒ¤?þøÃÌÌì%Ž›ô_!‰žì›%¹Aœ>}ÚÍÍm€û+7BéééA…B’ÜMÈ(w…b*.XUØ­­­»víjkk‰DB¡Pª`UÉ ,ž"›ç’;(7¼~×IJJKºSeÁ*›]„¼÷Kr/F}þüyüÓ’’ñkÙ¥äæU_‹«Ùeoý“O>ùꫯ‚8yòäÌ™3 ‰‡•rO ÅûÒo`ÀÊÊêúõëA¼ùæ›ñññ FÁÅ¿yÅÈÓÇÇ'))I|N:…ß>ÅY$eèÎ&U¬ÃâlÈÄ\] Š%¹T`C”N„R† „ŒŒŒÂŠ‹‹×®]‹§TTTŒ7N<‹ÅR¼MMÍÒÒÒY³fùûû'&&â‰\.—ÏçË]d̘1}-ˆéëë#„ð-tÉרãÇ­­­ñÇçgΜYYYéçç§««›““sóæÍ·ß~ÛÏÏïæÍ›iii³gÏF544…BWWW¼¸››[MMd$XNNÎôéÓcccûÚ…¤¤¤ôôô7nœ={6%%E|­¬¬ðÍI’+àqÃäþšGòÞ, ?âÇ»SSS3Àýí‹ BˆN.¤6¡`"E¨ ±ÓÒÒ233íìì¦M›vëÖ-©ƒ†úËd¤ðÊæ9’h"¡ úZ'‰)-I Lî™(÷ýBŸtUUUâÝñôô|çwúZJn^É]\-/³¡… ž9s† ©G¥ ²‚}é70ƒñî»ïž?¾¹¹ùÚµkË—/H0 ,Îpqrç,//÷ññ/âåå¥xû:õàl곉èã.’”^]Å(•äbªL§—)XŸ{ölôèÑAAAW®\yøðatt4BÈ¢··÷EÞMÙ¶V}½YxmAAA=ÊÎÎvwwß´iÓ÷W<4öðáÃííí}p¹›èk» ¨rH€j»»»[KKëìÙ³MMM‡ÒÒÒêîî–  “X<›Ü<“žâu’•ÒªI0• ›]„¼÷KêÂÂb±ŠŠŠŠŠŠ¦L™òÑGõµ”ܼ’»¸š]f%·þñÇ{zz $ª~÷Eq`A KKËãÇ0˜X¹sîÝ»×ÎÎîÿû_ssóõë×GM£ÑúÍ"BUg“ʆPóljjjB=zôÙ³gøþ+ñüïMÙ«ßÀ¯®”JrÕ¤¡”1¬{÷îõõõÅÝ~þùgkkëÖÖV·uëVggg==½É“'ã±5 ~KñïÿÛÄÄÄÞÞ~ÿþýK—.566Æ£š°¾®Y² ZXXÈ=jR¯9ÎêÕ«MMMÃÂÂðxÿööv&“‰G7wvvjjjFFFŠ7ÔÚÚúÞ{šZ[[þùçR……äëîînèèhÉ]HLL5j”丫ììl:~öìYü_.—»~ýz---WW× 6L›6mñâÅ/tÜÄ»/÷O¹o^Û‘#GÍÌÌ>ýôÓîîî~÷—ÏçO:UOOOÁA&žOY©Môµ]TY°ª&± ‚8}ú´«««¦¦æ˜1cRRR¤é‹g“›ç’dóGÁ:y<‰)­‚SYÁ*7»yï—ä‘éé鉈ˆ°±±144\ºti[[ž.÷]–Í+ÙÅ¥ÞP5¸ÌJn===!ôÝwß $ª~÷Eq`Xxx¸¶¶6‡Ãx0?°²s …ÂÝ»w»ººΚ5+%%ÅÜܼß,êwg•u6©¬`¥æÙDDLLŒ‘‘‘««+~šO<ÿ{Sêê÷BWWj&¹Ü×ÊJ'BYºê—ì>ƒèííÍÈÈê­¨àÝ‘»‰—Ø.Õú°’žØCÀîÔ¥´²lÄöaJ½lÙ2•mîâÅ‹âÿž={VêS•/GYgÓˆíêÞ^4É••N„²>t†ˆ¦¦&nÛ€z€”j©§§§¢¢âرc}ô‘Ê6ZXX¸bÅŠ¼¼¼®®®ÌÌÌ7~øá‡*Û:iHIrŘdTÍÀÀ`Íš5ªß„ ¶«ö†âÇ÷ +++ëwÞY»víôéÓU¶ÑÈÈÈ®®®yóæ555¹¸¸|ðÁJIx8›€\/—äCšN4BbdcccII‰*Ï@À‰õöö¦Èz€šIOO÷òò²°° Èz¾”U?ÀÙ0ÙŒ‚!€Ò `”+ 4(X¥AÁ (MN[«ºº:ÕÇ€¬žž---e­  öövü5âŒL\.WY«‚³ y%§`---UI0ôOYkGGGGG‡RV€,øse³ Èõ\V¨ưJƒ‚P¬€Ò `”öÿŸ×'†7AëèIEND®B`‚XQilla-2.3.0/docs/simple-api/functions_0x7e.html0000644000151400015140000003356011653571063016372 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- ~ -

XQilla-2.3.0/docs/simple-api/ATGDayOrDerived_8hpp__incl.md50000644000151400015140000000004011653571063020203 0000000000000041575fd1ce561e28898a9af345cbc7ffXQilla-2.3.0/docs/simple-api/classxercesc_1_1DOMNode__inherit__graph.md50000644000151400015140000000004011653571063022714 00000000000000648180f51ca8527ad682532bab2f9d04XQilla-2.3.0/docs/simple-api/classXercesConfiguration.html0000644000151400015140000003352711653571065020533 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

XercesConfiguration Class Reference

#include <XercesConfiguration.hpp>

Inheritance diagram for XercesConfiguration:

List of all members.

Public Member Functions

virtual DocumentCachecreateDocumentCache (xercesc::MemoryManager *memMgr)
virtual SequenceBuildercreateSequenceBuilder (const DynamicContext *context)
virtual ItemFactorycreateItemFactory (DocumentCache *cache, xercesc::MemoryManager *memMgr)
virtual UpdateFactorycreateUpdateFactory (xercesc::MemoryManager *memMgr)
virtual URIResolvercreateDefaultURIResolver (xercesc::MemoryManager *memMgr)
virtual ASTToXML * createASTToXML ()
virtual Node::Ptr createNode (const xercesc::DOMNode *node, const DynamicContext *context) const

Static Public Attributes

static const XMLCh gXerces []
 The "Xerces" DOMNode node interface.

Member Function Documentation

virtual ASTToXML* XercesConfiguration::createASTToXML ( ) [virtual]

Implements XQillaConfiguration.

virtual URIResolver* XercesConfiguration::createDefaultURIResolver ( xercesc::MemoryManager memMgr) [virtual]

Implements XQillaConfiguration.

virtual DocumentCache* XercesConfiguration::createDocumentCache ( xercesc::MemoryManager memMgr) [virtual]

Implements XQillaConfiguration.

virtual ItemFactory* XercesConfiguration::createItemFactory ( DocumentCache cache,
xercesc::MemoryManager memMgr 
) [virtual]

Implements XQillaConfiguration.

virtual Node::Ptr XercesConfiguration::createNode ( const xercesc::DOMNode node,
const DynamicContext context 
) const [virtual]
virtual SequenceBuilder* XercesConfiguration::createSequenceBuilder ( const DynamicContext context) [virtual]

Implements XQillaConfiguration.

virtual UpdateFactory* XercesConfiguration::createUpdateFactory ( xercesc::MemoryManager memMgr) [virtual]

Implements XQillaConfiguration.


Member Data Documentation

const XMLCh XercesConfiguration::gXerces[] [static]

The "Xerces" DOMNode node interface.

Use this as the parameter when you call Item::getInterface() to have a xerces DOMNode returned, if the Node is of the correct type. If it is not of the correct type, the method will return 0.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/DebugListener_8hpp__incl.md50000644000151400015140000000004011653571063020062 000000000000001e8d9f550f5911e97f72760dc1a61247XQilla-2.3.0/docs/simple-api/inherit_graph_24.md50000644000151400015140000000004011653571063016353 0000000000000095df3212056140d1c326c6b4f105feb9XQilla-2.3.0/docs/simple-api/Item_8hpp__incl.map0000644000151400015140000000025511653571064016325 00000000000000 XQilla-2.3.0/docs/simple-api/inherit_graph_35.png0000644000151400015140000000276411653571064016474 00000000000000‰PNG  IHDRu(Ov"ÂbKGDÿÿÿ ½§“©IDAThí›_HSoÇŸãþµ1JÍLWÿ0RB(ØEm")Ñ]Ñ”)z¡z‘^Èj È¼ ï# !¥)( ë"2Æ2t^ØÊI‘GD#Ź؎îÇóvqèüŽº¦;q”ŸžÏÕ{ž÷yÏóìË÷¼çp¶a!รnà˜#èË/‚¾ü"èË/böÃáhkk;ªVŽ:®¥¥…9Ü¡ïÊÊÊèè¨Á`8ô®Ž  ìˆxoÒàààaõsÜ(--Ýö_~ôåA_~ôåA_~á¢/A&“)##C.—k4‹Å c=ÉÜ܆aû¦=zôðööv}°Ä?.‰}ëëë?}ú444ôãÇžž›Ívÿþ}˜ŸŸOJJвo6›£BY­VµZ=00À¡O¤«Ø@,èö#>>Þét2‡‡C­V#„p¾|ß„]|ùòðwïÞÀ÷ïß¾[¹Ç`0 v„‹OŸ>ÝÕÕåñxèCN·¸¸W¯^€””:þúõë+W®(ŠÔÔTúg'0W"I’‹E­VŸ;w®ªªêׯ_L!«Õª×ëoܸ‘Ͷ0†aýýý999‰‰‰?þ[9††††ššzL„B¡p¹\022’››{êÔ©ÌÌÌ—/_ÂÎýaï,Øbпoß¾½pá‚L&+..îèèXXX ãl¿ø|>©TZ]]ýóçϾ¾>X]]e'0㎎­V;==ív» L&@QTFFƳgÏBÍÍÍZ­–iîÞ½ëõzŸ?'z9‡ÃqöìÙ­­-„P__ŸV«¥(Š ™LÖÝݽ¼¼ÜÓÓ#‹ ‚`–Dœåà_.ú"„H’t:­­­—/_‰Dýýý»ô …Bß¾}#b{{ÛápŽãõ½téÒðð0üúõ+3v:b±xmm !455n·›Ñ×n·#„Âá0}æèåH’LIIyÿþ=BèÖ­[ííí¡õõu‰Dòäɯ×KQ”ßïßÞÞf–Dœå oÌûÃÆÆ†Õj€‚‚‚–––éé馦¦ìJ“J¥³³³7oÞÌËËëíírÂÅÅEFCsrrnß¾M­V+I’III†ååå{‹P©T ‘HRN$ݹsgxxxmmmtt´¢¢ìv»Óé¼xñ¢^¯‹‹ûOè³1«ý~?†a.—‹‰|üøñüùó»ü»¹¹)“Él6EQ@þîßÌÌÌ‘‘:èr¹ÚÚÚhÇ¥¦¦vvvúÿÐØØ¨Ñh(Š¢ý‹ã8ãeÇ÷-g·ÛU*ÕÓ§O‹ŠŠ˜?|ø€ …B½½½"‘Èãñ0K"Ά•JeUUUYYÙ›7oæççÇÇÇM&“Ñhd‚€P(‡¥Ri °X,à÷ûÙ •••ÍÍÍ333333÷îÝ£o•ccc«««Ê?”——ã8þùóçˆ]E)Gsýúu’$[[[+++é†a%%%CCC>Ÿ/K$…BÁäGŸXýK›ëáǹ¹¹r¹<==Ýl6„ÐÖÖÖµk×”J%ÖÙÙ™˜˜˜––ÖÕÕe4“““Ù ŒS‚Á ÉdR©TgΜ1^¯!T[[[RRÂ.JQTVV–ÙlŽè߈åv=ŸÕÕÕÉårŸÏÇþ¼YYYR©4;;Ûf³¡—àÞYþåxû?ÒÔÔT^^Îk‰½úFx¿~üƒKKK/^¼xõêÕ!—>ïw&''óóó««« ¹ô‰ð¯^¯___?’Ò'¿Gˆ /¿úò‹ /¿úò‹ /¿Dx>+..>ü>Žn·[§Ó±#;ôMKK~|ö/èt:ú; ÿàaÿåA_~ôåA_~ù @¿6æùNIEND®B`‚XQilla-2.3.0/docs/simple-api/classATDateOrDerived__inherit__graph.map0000644000151400015140000000077211653571064022465 00000000000000 XQilla-2.3.0/docs/simple-api/functions_func_0x62.html0000644000151400015140000001155611653571063017322 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
 

- b -

XQilla-2.3.0/docs/simple-api/inherit_graph_27.md50000644000151400015140000000004011653571063016356 00000000000000f450be65f0f396c21a7e44c728f59fd7XQilla-2.3.0/docs/simple-api/Result_8hpp__incl.map0000644000151400015140000000003511653571064016701 00000000000000 XQilla-2.3.0/docs/simple-api/DocumentCache_8hpp__dep__incl.md50000644000151400015140000000004011653571063021017 00000000000000cba6acc6143fa7711789056647365140XQilla-2.3.0/docs/simple-api/classATAnySimpleType__inherit__graph.png0000644000151400015140000001415211653571064022553 00000000000000‰PNG  IHDR³`ÛbKGDÿÿÿ ½§“IDATxœí{TW‡oHP@0<òÀHQ”ŠÖµ«.eAjÚª  ÖªÛE¶=.]W°î¶]é®Jµ§µžÂ‚hkmyâc—U09ZQÀòJ[ÁDˆXb^³LMǼaÊp§÷;þqçÎ;¿™Ï¹“LB.Ã0€÷8PaÈ Op€<Á‹¸péÒ¥´´4ª¢ ˆ„‡‡ïܹӰø„§îîî²²²ØØØ1O…x‚k×®yxxkX¦òóóÇ*Â÷Üs§N¢$Fss3ƒÁéVv^OW¯^•Ëår¹\"‘®]»ÖÊs÷ÎÎÎ'N466Ú·/Rèíí}öÙg]\\òòòªªª~÷»ßÅÅÅ?~ô=Ëd2‡3ú~¬cæý“-p¹\ooo€··÷þýûù|~OOÇ3ÛxhhàëëkwÊÑ“šš‘/>ýôÓ]]]}ôÑ /¼0Êžõz}ooï¨ ÷'GGÇ &°Ùl|Q£Ñ¤¤¤ðù|—’’¢Ñh,XÀ½šm€/^ôõõ½råŠiƒÁ8qâ„P(ôôôÜ¿?@«Õ¦¦¦úúúr¹Ü7ÞxãÁƒ–ú¾óÎ;ÄØ©©©GŽÁË<ظq#‡ÃñññINNV©TÄщX61ìÑétºôôô™3gº¹¹………UVVÚs–1yyyF5fÔÕÕõ÷÷÷÷÷wtt¼ýöÛ›6m2¬Ý·oßêÕ«ÛÚÚ$ÉܹswìØÑÔÔDìÖRƒ_|Q$ ˜6Àw£P(²²²½½½éééÁÁÁ‰D*•Ο??99ÙRÿ …Ð××géˆÖ­[yûöm‰D²k×.bfbÙ4ưGwðàAWTTÔÙÙùïÿ[  {’ccccccŸ8çÄÛ=quumll4¬ ’Ëåx¹´´tΜ9FGb©D"±Ôß©X,Æ0L­VšššfÍšUTT„7kll4”M7ïëë( ³‡£V«™Læ7ðÅ¢¢¢€€+žŒb {t3gÎ}ÚŠ'F³hÑ"WWWK{×jµééé“&MZ¸p!~}[?æža(ÈÏÏ·þŽ16àŸ??DÏ÷ày‚ä '8@žày‚ä '8 ¡§ÊJÕÈÇÌç¹K—.û$"“Íðñ¹;a‚šê ö#•JÃÃÉ5Oxzê©§`ÿrùÐkhÈY­öæóû©Îb?áááøÇÄ4{š—ž^òñǦMóºví}ª³ ÝîO×­­½7ovR…Lhå©¶¶­½]ptdVS‡Lh婸¸†Åb4]AÁu½ž>C:}<étú“'¯kµ:|±§§¿ªŠ>/ÐéãéÚµf…â†EGGæ©S5æ!úx**ªa±~:FwútF££0‰ÐÄ“Z­=s¦N«Õ+•ÊG—/ߢ*¹ÐÄ“Htshè‘Q%‹Å(*¢É«>šx**ª6ýZV«ÿÏêÿ÷?ˆ  ƒ§G.4ètzÓU®¬Ì®ï5Ž3èà©´´A­ÖZZKW}tðT\lÑ„^‰Å7•Ê¡±Ìós@‡ç°íí â ·paÚž=«¢¢ž6Ôx{³'N´ó/òÆ p§Çñññ0ªárݦMó¢$ÌÏƽ_È Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁÁ8ú;µýë_duUVVÖÕU5ú~¢¢¢ðiK¨Çú„c YGäèÈsp˜HJWyyyTŸ•_ã)çE­îÖéT£ï‡ê“ñãËÂÈ Op€<ÁòÈ@æ‰Á`477S‚ ód@&“q8ªSŒ°zÒëõ½½½T§;`õ„O?áíí/j4š””>ŸÏãñRRR4 €Á`äää…B.—»wïÞãÇûùù±Ùì;wRÝ>Fÿ|…,€ ÏÀãi†¦FÞ·oßêÕ«ÛÚÚ$ÉܹswìØ7Ž‹‹S*•ÙÙÙ€5kÖ(•ÊÌÌLÀýû÷IÉ3fÐÄSPP\.ÇË¥¥¥sæÌÁ×ÔÔ`¦V«ÊÄù´G“gÌGŸkŒ†–––)S¦Ùl6^pss8::•¡Öû“Çp‰( |u:·§¼°jÕª¿þõ¯­­­‰dÙ²e‡¦6éÀêiúôé‹-2ŒuiiinnnÏ>ûìoûÛÙ³gïÛ·Úx¤Ùý {üñ‹ÅúöÛo õnnn999999f[)ì×Ó/ ä '8@žày‚ä '8 ¡§û÷¨Ž@>ãë}îÅ‹§ùòK1ƒÁ|ùå-¤ô¶fͪÏÊŒ#O¤PXX £¢¢¹·—Vw)ZyêêzXY)€qút-ÕqÈ„VžNŸ®e2½ËÏ¿Nu2¡•§‚‚ë:À0L*mok£ÏÇèãI&ëilìĶÄdÒj裧S§jX¬ŸÞ3étXA}†>úx*(¸®Õê ‹†57ß»ySNa$¡‰'³w#‹ie d¸ ‰§ââGGãEZ­.?¿ ƒðÛ¦ÐÁ“^<ùF£3]ÕÝ­¬©iûH¤CO••²žž~³«X,æ©StúèàéìÙZÀ„ ,Óz=væL-qöwH_ÏËí#$Äç½÷^1,8p~ùòÙ3gzj>òôœDE4Ò`Ðã6KD Øš‘±aÅŠ9T!:Œ{¿'8@žày‚ä '8@žày‚ä '8@žày‚ä '8@žày‚ä '8@žày‚ä '8@žày‚ä '8@žày‚ä '8@žày‚ä lùº¼¼<ªcŽ7·EŽŽÐL]k‹‚ü}n~~þÏ÷—ÉÁƒml9O±±±v…AX¤  ÀÆ–èþÈ Op€<Áòä{Ú³gƒÁØ»w/åÑÜÜÌ`0,­ÍÍÍe˜£®®ŽÄ vC²' Ãrss}}}GóÖØl'2™ŒÃÕ»Www÷wß}×ÒÚW_}U.—Ëåò«W¯ä ÍNIÃöç¶´¬¯¯g0¥¥¥€~øÁ–MlìÄhêŸ1Û†a±±±6> ùzÊÍÍ]¼xqTTTPPñj`0'Nœ …žžžû÷ï$%%½ùæ›øÚ—ÚÚZ+,X°àíý㯀=xð`ãÆÇÇÇ'99Y¥Rá{ÉÉÉ …\.wïÞ½Ç÷óóc³Ù;wî„qO«Õ¦¦¦úúúr¹Ü7ÞxÃúÌ+fsâ]>}zÖ¬Y</))éÑ£GF“’’Âçóy<^JJŠF£!ëÄ’y=éõz??¿ÌÌL ÃÞ{ï½àà`Ã*@LLŒB¡ÈÊÊôöö^ºtÉËËK£Ñ`öÕW_ëõz+ý7_·n]ddäíÛ·%IHHÈ®]»ð½ÄÅÅ)•ÊììlÀš5k”Jeff&àþýû†ÒÓÓƒƒƒ%‰T*?~rr2ñ(Œvd6'Þ&::úÖ­[x€}ûö­^½º­­M"‘Ì;wÇŽÖϘí×™ž***X,Öýû÷1 «®®H¥Òw€X,Æ0L­Vššš´Z­··÷Å‹1 {饗öîÝk½âéS«ÕL&óÆøbQQQ@@¾—ššÃ^ˆå¦¦&C³fÍ***·mll4”qŒ<™Í‰·‘H$†óƒ ’Ëåxeiiéœ9s¬Ÿ1Û=‘ù;‰¹¹¹Z­–x·ÏËË ÁËàèèˆ/2™ÌU«V…††–••áÿë‡í§»»[§Ó͘1_ hooÇËnnn†½ËDZ[[ñ²P( …VÊRN€¡“   <@KK‹aŠl›Í¶Òóˆ íþ¤Óéòòò<Øÿ˜¿üå/yyyØãßatp0ÞWllì©S§òóó-ZäããcK'8|>ŸÉdÊd2|ñöíÛS§Nµ=ª@ hiiÁËuuu~ø¡õö¦9qð« pëÖ-ü!‡Ãijj¯…BQQQa{ªa°å¢³eÜ‹ÅL&³»»ÛPóÝwßǃ~Tx½¡¬Õjy<ŸÏ?zôè°à'¥¿¿¯ŒŒ”ÉdR©488øƒ>°´CÙ0 ¥¦¦†††J¥R©T–@<Ó×{¦9ñ6MMMUUUx€¤¤¤˜˜˜–––úúúùóçoÙ2Ì4TÜŸ£££‰5z½~ÆŒï¾û.fù þñtvvV*•Ãv¢Ñh-ZäêêŠ×÷õõ­_¿ÞËËkÊ”)[·n²²#O*•*99Y °Ù츸8…BAÜ£Ù×åF9ñ6ÙÙÙÓ¦Mãp8úÓŸðJ¥rÓ¦M^^^›7o´~Ò¨yaûÛßâã㎞ÉÅ('Yﱨy1"T*UgggNNÎ7ß|CU['9){[YY9oÞ¼ßÿþ÷K–,¡*ƒ-˜Í9yòäÄÄıŒAÙõ´xñâ¾¾>ªön;fsòx¼ŒŒŒ±Œ>×€ä '8@žà€†žôzºÍhééС2L$dŒ-o†¡ú~9ƒÏO˜0Ágø†ãŸGØ4¯ÐÝ»wÉ|ôûsrëÖÃÇ~óþÚµ3¨Îb>>> .¶ÝæúóŸ¿Éϯrssºq#ÍtfIx¡ÕýI¥Òàsà ¨D¢›TÇ!Zy*+kT©´‡ÂÂjªã ­<~Çd2:þÂ…ƒƒ¨NDôñ¤T‰D7µÚ_‘kµºÿþWJm$¡§’)ñmƒÁ(,üŽÂ<äBOOXÑéôß~ÛÔ×7HUr¡‰§{÷ú+*šMŸ;WOIÒ¡‰§³gkMÿð“'¯S’‡thâ© àºéŤ×cÕÕ­íí J"‘ <µ¶öJ¥f¬0™Œ3gjÇ>éÐÁÓ¹su–ž~iµ=^õQö=ijê úé[Ý]]ÝÝ]œœ~ú"{OO?—ëFQ:r ÛsX€@°5#cÊs¨B&t÷~ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ<ñ÷„—.]JKK£0 )45Íôö–»¹õSdT„‡‡ãÓÀá<ñ÷¹ÝÝÝeeeãüú‡Åϯ ÕRc444xxxkÌüujjêXåA˜g÷îÝF5èþÈ Op€<ÁòöÿnΗ_~yôèÑ„„„øøx¼F$íٳǴeVVV@@€ÙMFÄÐÐбcÇ._¾Ü××Çår###×­[7aÂ„ŽŽŽ×_],Ûw Ö7ö Æ;=a&‰x<žX,6œô°°°ÂÂB€\.ß²e ^Lž<ÙÒ&#âÓO?íîîþûßÿÎårÛÚÚ>ýôÓþþþ¤¤$WW׸¸8ûdX¬Ô˜aç¸wçζ¶¶íÛ·777æž8q¢§§§§§§»»;Àó1,ËÒ&#âÊ•+ îîî¡¡¡IIIååå6›½yófûdX¬Ô˜a§'‘H4{öì_ýêW¾¾¾"‘h4›DDD”••mذaÅŠ¹¹¹€C‡íß¿_;44´lÙ2|~M—ââb¥R‰¯ Å'þèè興ˆ0ôVRR²aÆ×^{í믿¾páB\\ÜË/¿œ““chY^^¾~ýú•+W:tH£ÑCjµÚŒŒŒ•+W®\¹2##Ckù©†Ù–ú·½[KØã Á"##ááá¶Ü¬oråʕÇ'&&fffö÷÷/^¼¸¼¼\§ÓÊË˧L™‚ß RRRjjjbbbRRRòòòº»»ÍºúóÏ?ß¼ysVVÖµk׎9òÖ[o?~Ü ¸¸¸øŸÿüç?þñÊÊʯ¿þš¸íÉ“'åryffæjjjŽ=jéˆ,…4Û¿íÝZÂOßÿý½{÷ÂÃÃááá---wîÜÍ&¯½öš««ë /¼P*•!!!,K"‘ÊÊÊ¢££ñß~7o^^^Þ'Ÿ|òÌ3Ïœ?>>>þâÅ‹¦ûZ»v­‹‹Ktt4 >>ÞÅÅeÙ²e€þþŸÌ¾õÖ[>>>B¡ðøCii)qÛ’’’wÞy‡Çãùûû'&&VUUY:"K!Íöo{·–°g‰D:îÕW_5ÔˆÅb???»7áp8ÈïààðüóÏ_¾|Ùßß¿ººzÛ¶m•JuõêÕ%K–…B¡P¸~ýúcÇŽeddà×(CoIJÃí¾¾¾===ÄU]]]«W¯6,Nš4ÉÒ™ i©Û»µÄˆ=éõz±XüöÛo¿òÊ+xÍÑ£GÅbñ¦M›LñØÆML7\²dIZZÚôéÓŸyæ.— À0,--Í××^ ÆsÏ=wöìÙ‘æ´··ûûûîÞ½ëååE\Åf³?þøã©S§¬ÏkÒRÿ#êÖ,#÷$‰B¡Xºt©óc¢¢¢ÚÛÛ›››IÜ$44T§Ó}ñÅøðpvvŽŽŽÞ½{wEE…\.ohhøüóÏM/&[øì³Ï:::¾ÿþûììì¥K—W=ÿüóYYYÝÝÝ2™lûöíÅÅÅVú1 i©ÿuk–_O"‘hîܹø‹TœÀÀ@@ ‹ÉÚÄÁÁ!<<üüùóø- gûöíÇÏÊÊêèèðððˆˆˆØ¸qãHó¢¢¢¶mÛ¦R©ðwÊÄ¡ïÍ7ßüì³Ï Fxx¸õI§Í†4í¤Ýšå‰Ïsóóó×®]k÷{rÉÎÎîêêzÿý÷Iìs”O.L1 IVÿ»wïær¹ùùù†šñø|O­VËåò’’Ãýl2Æ!Ç£§›7o&&&¾øâ‹sæü›É“&MZ¾|9)]™ IbÿFŒßqï— ãÂä '8@žày‚ä Ì<7JNNû"2™,**ŠXó„§§žz*66vl#!Ìàïï¿`Áb ç¢%èþÈ Op€<ÁÁÿláoäA}(IEND®B`‚XQilla-2.3.0/docs/simple-api/DOMXPathNSResolver_8hpp__incl.md50000644000151400015140000000004011653571063020675 00000000000000e0c098a58835ddb7e90b420f08947e36XQilla-2.3.0/docs/simple-api/closed.png0000644000151400015140000000017611653571063014605 00000000000000‰PNG  IHDR à‘EIDATxíÝA @! PŠ­iš/`Є.È?,!ƒu zlÞ–Jh1ߘ+výRLé§x@‘Ù (*79HÑ þl)¡ó²‰IEND®B`‚XQilla-2.3.0/docs/simple-api/Timezone_8hpp__incl.md50000644000151400015140000000004011653571063017120 00000000000000bb8267e29c2494cbc8ea47d33cc7e9bfXQilla-2.3.0/docs/simple-api/ATBase64BinaryOrDerived_8hpp.html0000644000151400015140000000520611653571064020675 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATBase64BinaryOrDerived.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <xqilla/items/AnyAtomicType.hpp>
#include <xqilla/framework/XQillaExport.hpp>
Include dependency graph for ATBase64BinaryOrDerived.hpp:

Go to the source code of this file.

Classes

class  ATBase64BinaryOrDerived
XQilla-2.3.0/docs/simple-api/classxercesc_1_1URLInputSource__inherit__graph.png0000644000151400015140000001415611653571064024447 00000000000000‰PNG  IHDR¸Ã¾´L’bKGDÿÿÿ ½§“#IDATxœíÝyTSgúð7fa­€l² Žˆ G¥ÕvF;G© ‹èÔä ‹ ­8*xƒ¢èttpëxDP@lÁ¡Adu9Uc-ÔŠG‰pI É%÷÷ÇõÄH|¡¤öùÿ¸ysŸ7Ï}óõæÐH’D¼Ë}7~ ( ` , Îõ·¿ýíúõë:œü^^^»víÒÕlº J}}ý½{÷>ýôSÎ †ç‡~°²²Òᄺ BèÓO?-,,Ôíœ`–/_®Û á` ,€‚°@PÊ@wîÜa0gΜQŽ”••±X¬úúz„F›=E$9;;{zz&''+ÝÝݵ}ùòå>úˆZ)G’äÔ©S‹‹‹©{ïÞ½«ÜV¯ …L&óðáÃ"‘H¡Pôôôô÷÷k+„B¡X²d NˆˆP§±aÆíÛ·“$™ŸŸïçç§רuoMM I’}}}¶ûúúètzCCUU\\ìææ¦zøAŒ?žËå’$¹hÑ¢ýû÷¿³ÿ÷!($IîÙ³‡N§wvv*GŒUÏsÔJõõõQ÷Ö×׫ϣ^E’deeepp°™™Ù¼yó.\¸0Hù òòò,,,þýï—––*Ç©§öÚµknnn …"00033“T ŠÆ–”÷jÜæóù!©TJ òxB($$¤¤¤¤°°pîܹÎÎÎïœSçF;( …bÍš5±±±W®\©¨¨ Æ—-[¶}ûöGñx¼€€€ôôtÕªÈÈÈÄÄƆ††††7>zôH[Fó÷÷?{ö¬X,îëëc2™¦¦¦ÚÊ»»»©‹Õm’$cbb<==©ëÇ-[¶ØÛÛÇÆÆªöC§Óƒ‚‚bbb~ÿûßÛÙÙ©Þ5øhÄd2CCCãââZZZvîÜ>`Ÿyóæ±gÏžÈÈH¼•Ö5žpNwÇŽûðé3jII‰ƒƒƒP($IR,¯^½ÚÊÊÊÚÚzíÚµ½½½Ô¹—ª’Édl6ÛÑÑÑÂÂ",,L$QãêU$Ir8œI“&±X,ww÷²²²AÊUB¹}êÔ)##£û÷ï+{þñÇÇŒSTTDª¼p\»v !”žžNí£רô¥‡$I¡Pimmíàà°yóf©TªÚeݺu&&&b±XWÏÅÐHÝý¸õø<ÊILLlmm=}ú4ÎÎ:.tüÁ%0d2Ù“'ONžùdÍš5óçÏ×WpFùøì³Ï„B¡~{€3 ÀAX ( ` ,”?µ·‹ôÝ…ÁÑñ—Çׯ_÷óóÓ휣ìùs„Ís}7ò³Ô××{yyépB]eΜ9:œM_š›­i4ÚäÉýúnägñòòÒíÓ¡Ëïõ¼þ÷¿'>>‡B\îV}·c@àå-ååµ Æƒ^QQ«ï^ å ’$ ª BAýUp®UAyã§ŸZŸ>SÛâÛ·[õÚŽa ¼QZZÃdÒ©m&“^R2ê?aÀ (¯„¢¸ø¶\þú‹¹¼¿¸ø'‚Pè·+ÃAy­²òAw·Lu¤»[vãF£¾ú14”×JJn3o­ƒA+.¾­¯~ !„d2ù¹suñÖ›l¡8w®N&“ë«+ƒAA¡+WîÊd„ú¸L&çrïŽ~?‚‚BgÏþD§ÓÔÇétÚÙ³ðêƒ!ÔÓ#»zõ¿À!—{W"y5ú] ºx±^ùU±:¹¼ÿâEÞhöc˜à›‚H$ê‹ß|aœ˜XŒÚ·o™rdìXc++3=tfHàÇ5••™jÌÌX¡ ¬õב!‚—€‚°@P ÀAX ( ` ,€‚°@P ÀAX ( ` ,€‚°@P ÀAX ( ` ,€‚°@P ÀAX ( ` ,ÃüKÿüç?uÞŠ8s¦!â¤ïFFÊÚµk‡Q5Ì Ðh~‡âûN·@õ÷w뻑‘2¼g|ø/=‡|DAt黋Ááp†ýtÃ5 ÀAX ( ` ,€åWÖÔÔ¤ói% ›Íž8q¢‰‰ÉäÉ““’’d2Ù»Ë Û¯:(ºÒÜÜlcc£¼SsöìÙ¶¶¶œœœ²²²øøx=¶§P(/^¼PÞ,--MII™5k–­­­——Wjjjyy¹ÛÓ‰‘ Jyy¹“““H$BL™2¥··!$—ËãããííííììâããårySSFãr¹...×®]KJJrqq±µµŠŠêêê¢fS¯BUTTxzz»ººæåå!„‚ÐXN=„ú¶*vúôiqãÆ,‰ EOOO¿¶òAŽB5(ßÿ=I’}}}Ô¸jc$Ir8777œ $IDUUÕž={¦OŸN§ÓOŸ>MÍL§Ó¨}Š‹‹Ÿp¨k2øÁ’’$÷ìÙC§Ó;;;•#ÆÆÆªç3 jQúúú¨{ëëëÕçQ¯"I²²²288ØÌÌlÞ¼y.\¤|£P Êýû÷UǩƤR)5XWWgll¬ú¼>xð@=(‰¤  € ê¦B¡Øµk—““I’|>_uB7ø„ÃX“Áýœ ŒàÅ,ŸÏOKKóõõݲe‹rÐÆÆFù܈D¢ªª*jœÉd"„[[[©‘ÚÚÚ}ûöi«’J¥ …âÌ™3B¡0::zñâÅB¡P[9¦1c4¬õœ!„wî\sssªœ ˆäädOOO“ßþö·Û¶mS¾Ü…ÂÈÈHkkk‡Í›7k›pØk28ýFùES¿Dý¥3Ðkð> h5vìØ˜˜}wa( (ZÙÙÙeddè» CAX ( ` ,”^¾ì{ù²Oß]ư+¹\®ò³ºn yzZè»Ý»}ûö°kág7.$‘HTªïFFÊðžñažQ†÷`†ïùsÉÌ™ÿ‡­©I2nœ™¾Û1 pò–‹yÔ÷¿.\àé»ÃAy ‡ó#I"„HçG}÷bX (oðùÂ;wÚH’T(PMÍ#>_¨ïŽ 劊Z:ýõ‚Ðé´ŠŠZýöcP (oÞ"ˆ~j› ÈÂÂ[úíÇ @P^»¿ãÁƒ•òÁƒŽû÷;´üÊ@P^++»Ã`ÐUG zyù}õch (!D’ä™3o^w(Ñ_Xxë}}Çh¨ (!T[Ëoo©··‹êêø£ß‚  „PiiÍ€× ƒA/-­ý~ õ÷+ŠŠ¾îP¢¿¨è§þ~Åèweh (¨ªªY$zÉ`ÐY,Æ€ ](ì­®nÖwú7ü¼7Œ1‰‰Ÿ+ož;W‡úüóUwÐC[f˜3xÅÄ|ÊÌ\©ïF ü_X ( ` ,€‚°@P ÀAX ( ` ,€‚°@P ÀAX ( ` ,€‚°@P ÀAX ( ` ,€‚°@P ÀAxÔÿ$û¯œ‰‰»‰‰»¾»Ð?‡£š ¿Ã-))iôÛe÷îÝF4eþüù£Ñ 0`êAk€‚°@P ÀAXÞÏ x{{···kñV±`Á‚7655 R«mðç“J¥'Nœ [°`ADDDnnn__ŸÎE'~¥¿ ?--ÍÁÁ!ôòåËüüüÝ»wóÍ7£ðçáÁºuëÊÊʨ›©©©{öì±µµmkkKMMíé鉋‹é6†áý<£¼“¥¥å¸qãÆçìì¼nݺÇwwwÂã* ±X¬¼YYYùå—_Nž<ÙÒÒÒÓÓ3..îÆ£ÐÆ0 9(7oÞ îééAq¹ÜÈÈH™L†""##céÒ¥K—.ÍÈÈ ¢½½ÝÛÛ»¦¦&44´¶¶6777444000%%E"‘P³©WQíïï¿bÅŠK—.!„úûû5–S¡¾=$t:Á`˜™™aîïíí}åÊ••+WþùÏþöÛo•}ãÆÈÈÈ¥K—;vL.—kìmýúõ¡eË–Q㦦¦¥¥¥Êèxzz*¿‹"‘Höïß¿dÉ’'NôõõiœpØ‹{ö,##ãÀ·nÝ*((¤Ÿ¡.2þ‘* ç¥'66¶¦¦†Íf/Y²ÄÝýõ÷Ï.^¼¸iÓ&;;;WWט˜˜|ý'ë×®];sæL.—»fÍWW׉'nÛ¶mÚ´iÚªär9I’R©”ÅbTTT?^c¹™™ÙŸþô'õíwúâ‹/-Z´hÑ¢àààK—.…††iÍÍÍ,X€Ržþò—¿8;;{xx|ñÅ—/_Æ™ç“O>áp8G1cÆwß}·bÅ .—‹"âêÕ«±±±®®®«W¯|¡.ò–2œ‹YssóÏ?ÿü믿þꫯ”ƒAAAÊ›Ê3¹‹‹ B¨³³ÓÙÙ™™0a„ ´U}ðÁGŽ)**ÊÍÍ2eÊŠ+fÏž­­|ª‡Hýoåçç;99!„^½zuòäɃ¦§§ã?B666!ã­ÕSvèââòìÙ3mÍ(Éd²›7oΟ?ßÃÃÃÃÃ#22òÔ©S>>>"‘H¡P8::R{:99 >áPÿH•†”§OŸ–””|üñÇÇß±c5haaqäÈjõ%‰P(|ý BÈÚÚº££câĉ¡¦¦¦ªªªˆˆU¯^½R(ÉÉÉAp¹Ü;v”––j+ׯÎή½½]¹jmmmt:ÝÎÎN}O##£€€€sçΑ$‰ÿUÆ=?~ìêêŠâóùÖÖÖÔ`?Nþü¹úþ$IîÝ»×ÅÅÅÍÍšów¿û]EEBÈÊÊj̘1€z²Ÿøàƒèèè´´´/¿ü’F£yyyÅÄĨ¦><<\&“ÅÇÇËd²9sæÄÄÄPãêU,kûöí™™™OŸ>uttLJJb±XÚÊ»ºº>L]š¨nGEE™˜˜œ8q¢³³ÓÚÚÚÇÇg3­­­©©©X,655¥F6nܨºÃ÷ß³2¾¾¾[¶l‘Éd>>>ááá,+::úøñãùùù6løÏþƒ?~üŒ3‚‚‚.\¸€Úºuk^^^VVV{{»•••··÷ªU«¨Ù6mÚ”––¶nÝ:&“ùÇ?þQÛ„ªðçpxëo †††b® PjooˆˆxŸÖÍÛÛ›Ãá,_¾\9ò+}à EÌÌÌ/^¬ï.FE,--ÿú׿껋‘AX ( ` ,€‚°hx xÿï··ÞÂçóùUUUzìŽ9sæüæ7¿QÞ¤iü¨À5 ÀAX ( `ùŽ*öÃ_f.LIEND®B`‚XQilla-2.3.0/docs/simple-api/inherit_graph_30.map0000644000151400015140000000027711653571064016455 00000000000000 XQilla-2.3.0/docs/simple-api/DebugListener_8hpp__dep__incl.map0000644000151400015140000000024011653571064021144 00000000000000 XQilla-2.3.0/docs/simple-api/classVarHashEntry__inherit__graph.png0000644000151400015140000000777611653571064022157 00000000000000‰PNG  IHDR­u³ öVbKGDÿÿÿ ½§“³IDATxœíkPS×ÚÇŸ˜¼ @lDm‘ µ3èxáêñVQ”"ZQ‘j­TÑRÁJ«õRÛ ¹Õ^$‚œj*°Và-‘bßTëKh@¹­óa³ONBL8„™¬ß§g¯gíÿ³÷?k¯•@6 !«ÇÆÒƒâñC|@`˜“<{öìþÒA0Ÿää䀀ÓrÍò@ ˜:uêèÑ£Íé„Ð/¬_¿Þät³|Û¶m[¾|¹™̇F£™“Næâ†ø€@|@Àˆjkk FAA)..f2™"‘h4š———ÖWqóçϧÑhüñÇ@ký_bí>ðóóÛ½{÷–-[ÚÛÛàï¿ÿŽOIIñññÁ =zô믿Rí%‰P(´ŒÖÿ%ÖîHNNvttܹs'$%%¹ººîرƒÚª9Z”””˜ü™Ý ™äççhP\\ìææÖÖÖ†:w—Wgg'BH.—'&&:;;;99%&&Êår±X `ôèÑeee{öì=z´££ctt´D"Á½éf!„JJJ|||X,ÖØ±cOŸ>R(zÓñ!t·BwïÞe0_|ñ‹Å‰DšæææŽ7N­VãÈ‚ rss@,÷& gMœ8ÑÑÑqÿþý§OŸ3f̈#’““q'‰$&&†ÃáŒ5jûöí2™L³|??¿µk×â–¶¶¶555æ_‹>ÒMÎ4òØï½÷^LLÌÓ§O¹\nUU~ùå—K—.mll¬««{ûí·“’’ð‰˜?þ7RSS½½½ëêêD"‘¿¿bbboY,ëøñã---¹¹¹ £³³óСCzÓÛÛÛ³³³u·1III––¦Uàýû÷]\\jkkq–Ý‹/(èJÂY+W®”J¥999°|ùr©Tš™™ /^¼@­Zµ*$$äÁƒuuu“&MJMMÕ,¿´´”Ãá( „P^^ž··7åB3¯…¡t“3<¶D"qwwçñx©©©Tpâĉ---xûúõë“'OÆ'¢®®!4a„¢¢"¼÷·ß~£¶u³ÚÚÚ† røða‰D¢V«;::T*UoéP«Õ‹/¦Óé«W¯Ö*P,oÞ¼y×®]¡¼¼¼Ù³gSq½’ð^ü–ËåZÛb±X.—Óéô{÷îᬢ¢¢qãÆi–¯T*]\\~úé'„PXXØúÔ¿BŸ}öNöìa³Ùš÷&{{{|"ð¸Êf³5gY¡ÊÊÊeË– :tæÌ™¥¥¥Ò pæÌ{{û›7o²ÙìË—/k(‹ËËËñ­aÉ’%™™™HÃz%Q{õn755€L&ÃÁºº:6›­Y>B(>>~óæÍ­­­L&³©©É˜»çΫùVsww§ÎŽD"ihhмa{xx\¹ro×ÖÖRcµnVWW—P(DõôôœŸïéé©5_)++sssËÈÈ6,žbPû@¥R…††îÛ·¯­­ÍÅÅ¥¤¤Ç·lÙ²lÙ2¼$ó÷÷OHHÐ<)))<O$‰D¢éÓ§¯_¿¾·,™LÆf³ [[[³²²Øl¶L&ë-]ïü@­V/X° @¥R!„är9Ç[¹r%U ¾Šññño¾ùfPPV\WêË¡¨¨¨‡ŠD"ooï={öhù@©T:;;s¹Ü'Nô×µè#ÝäLcŽ}ìØ1___<Üñù|WWW¼vJ¥±±±'..îåË—š'¢»»;11ÑÍÍÍÞÞ~åʕԄ_7 !”ŸŸïééÉd2'NœX\\l ]ïzáäÉ“,ë÷ß§4ß¹sÇÆÆ¦°°i\¹òòrÈÈÈ  Çq½’úôA[[[tt4‡Ãquuݶmµ^ÐOtTUU½óÎ;k×® °ƒ’ñ`ÐÐÖÖ6À%ã€ø€€!> 0Ä⨪zhi –ÇÜucZZZvvv¿H±zº»71™rK ±$fù ""¢¿tX ™Œ!“ÙÊå.\n‡¥µ˜EDD„9ÿhJCÖý»8‡]=zôÚopnßN¶´Kbí󃂂_àÿø«¡¡ÙÒZ,‰Uû ¶¶ññc B¿t©ÚÒr,‰Uûàòåƒ …ª àµÚzo‘Öë•J]Xø‹R©Â/[[;îܱÞ¤õúàöí?$’.êå!t>¿Æ‚z,‹õú ¨¨†ÁøOù …ª¸¸F¡PYP’±RÈåÊ’’ÿS*ÕšA©´G(üKI²,Vêƒ7d²­ ƒA+*²ÒUƒ•ú ¨¨ÚÆF»v¥R]ZúkW—5~Àl>èìì¹v­^¥RëîR(TAýÀK²8Öèƒë×ëåreo{­sÕ`>¸|¹×+­V£²²©T6zÖø=ÓãÇ͛´iiûö…‡†¾EE\\ìY,ëúKnëªãîî qrþÆ‹ˆ$Xã}  ñ€ø€€!> 0Äâ†ø€@|@ÀˆâñC|@ > `ˆÄ ñ€ø€€!> 0Äâ†ø€@|@ÀˆâñC|@ > `ˆZ¿ƒñðáC@`))D <}zÇÒ*ÐÐÐÿ¼Ö|Èo~~¾å„YŒ!CœmlX–V1ÐDDDôñ|ç²²²—EHöîÝ«!óñC|@ > `ˆÄÌ+ÿž*ŸÏ?{ölAAFÄЊ+"##ÃÃÃûL ÊËË5j”ˆ1èÍ Òm9`Ëà7nìÛ·O7îííýìÙ³3gΰÙlinnމ‰Ù¹sghh¨¦f;;;·eËWWWØr^ÙÇŽ»wˆÅâÖÖÖ€€€þÖf éééø$öIKKËÆ‹‹‹ûëÐÓ§O¿téî9!!o€Mllìùóçcccq$++ë­·Þ ÑÔŒ’H$999Ÿþyzzú«–c&¯ì‡)S¦”——S> …<ÿOËÁ¥™Á`x{{ú駺»tËÁL™2%''çÊ•+[·nõòòz÷Ýw§L™BÝqŒÇÄç/ûí·|ðP(\¸pá¿úb0?~|øða™L†ßú¯¿þ:µ­»^0>|øð£Gž8qbüøñQQQþþþxž‘hÕl`éáèèˆÒ[QX¤ÍÌ™3…B¡‡‡GuuõöíÛ ºº:--ÍßßëÖ­&L0áD@hhè©S§‚ƒƒµâ4³’âp8kÖ¬Y½zueeåéÓ§¿ùæ›#GŽà7’ñ˜øùÁ´iÓº»»Áƒð;zzzRSSW¬X‘••õá‡j¶7pö)ô¦÷ôô¨ÕêÔÔÔ+W®„……íÞ½»££ïzÕ‹Ñg{Jd```EEž ;99ÀÈ‘#ÇŒS__/‰Œ¿è`š‡úD"‘þøãO>ùÄ××W¡P0 ÃE¶··k ׆çÛ2™Lwxçñx*•êÔ©Sqqq8âééyôèÑ?ÿü“ÏçGGGOŸ>}ñâÅãÇ7²4“鳄Puuuqqñýû÷ÃÂÂÒÓÓM[¸™þ\žëׯk~Ö1lذM›6¥¥¥ÙÚÚFEE…„„ìØ±ƒZ ÷‰Þt>Ÿ¿k×®ÌÌÌçÏŸ»¹¹¥¤¤0™L$$$hEzûàÅÅÅÅÇÇgéÒ¥¥¥¥Z»lllfÍšõã?âù/ÅØ±c?ú裸¸¸«W¯îÝ»÷«¯¾âr¹FVg}–SQQ‘ŸŸž’’bÌ Ûÿõœ®‹/FFF’¿C€œœœ§OŸ&''÷Ö!¤V«étú@ªÒ ¯šµwï^''§‹/Ròý‚6r¹¼¥¥åêÕ« ,0ÐŒF£YÜ`ÜÄˈ´ihhذaÃüùó'Ožli-‡5>·Ï0¾¾¾%%%–V1Ðñ€@|@Àˆâ€ÞõÂ?ü0ð:Iss3þÞ„BŽ92PzÃ××Wóå}®L°ZÈü€@|@Àˆ˜Óü`¡uIEND®B`‚XQilla-2.3.0/docs/simple-api/XMLResourceIdentifier_8hpp_source.html0000644000151400015140000003742311653571063022213 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

XMLResourceIdentifier.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  * 
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  * 
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: XMLResourceIdentifier.hpp 527149 2007-04-10 14:56:39Z amassari $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_XMLRESOURCEIDENTIFIER_HPP)
00023 #define XERCESC_INCLUDE_GUARD_XMLRESOURCEIDENTIFIER_HPP
00024 
00025 XERCES_CPP_NAMESPACE_BEGIN
00026 
00027 class Locator;
00028 
00095 class XMLUTIL_EXPORT XMLResourceIdentifier
00096 {
00097 public:
00098 
00101     enum ResourceIdentifierType {
00102         SchemaGrammar = 0,
00103         SchemaImport,
00104         SchemaInclude,
00105         SchemaRedefine ,
00106         ExternalEntity,
00107         UnKnown = 255    
00108     };
00110    
00115     XMLResourceIdentifier(const ResourceIdentifierType resourceIdentitiferType
00116                             , const XMLCh* const  systemId
00117                             , const XMLCh* const  nameSpace = 0
00118                             , const XMLCh* const  publicId = 0
00119                             , const XMLCh* const  baseURI = 0
00120                             , const Locator*      locator = 0);
00121 
00123     ~XMLResourceIdentifier()
00124     {
00125     }
00126 
00128 
00129     // -----------------------------------------------------------------------
00130     //  Getter methods
00131     // -----------------------------------------------------------------------
00134     ResourceIdentifierType getResourceIdentifierType() const;
00135     const XMLCh* getPublicId()          const;
00136     const XMLCh* getSystemId()          const;
00137     const XMLCh* getSchemaLocation()    const;
00138     const XMLCh* getBaseURI()           const;
00139     const XMLCh* getNameSpace()         const;
00140     const Locator* getLocator()         const;
00142 
00143 private :
00144 
00145     const ResourceIdentifierType    fResourceIdentifierType;
00146     const XMLCh*                    fPublicId;
00147     const XMLCh*                    fSystemId;
00148     const XMLCh*                    fBaseURI;
00149     const XMLCh*                    fNameSpace;
00150     const Locator*                  fLocator;
00151 
00152     /* Unimplemented constructors and operators */
00153 
00154     /* Copy constructor */
00155     XMLResourceIdentifier(const XMLResourceIdentifier&);
00156 
00157     /* Assignment operator */
00158     XMLResourceIdentifier& operator=(const XMLResourceIdentifier&);
00159 
00160 };
00161 
00162 inline XMLResourceIdentifier::ResourceIdentifierType XMLResourceIdentifier::getResourceIdentifierType() const 
00163 {
00164     return fResourceIdentifierType;
00165 }
00166 
00167 inline const XMLCh* XMLResourceIdentifier::getPublicId() const
00168 {
00169     return fPublicId;
00170 }
00171 
00172 inline const XMLCh* XMLResourceIdentifier::getSystemId() const
00173 {
00174     return fSystemId;
00175 }
00176 
00177 inline const XMLCh* XMLResourceIdentifier::getSchemaLocation() const
00178 {
00179     return fSystemId;
00180 }
00181 
00182 inline const XMLCh* XMLResourceIdentifier::getBaseURI() const
00183 {
00184     return fBaseURI;
00185 }
00186 
00187 inline const XMLCh* XMLResourceIdentifier::getNameSpace() const
00188 {
00189     return fNameSpace;
00190 }
00191 
00192 inline const Locator* XMLResourceIdentifier::getLocator() const
00193 {
00194     return fLocator;
00195 }
00196 
00197 inline XMLResourceIdentifier::XMLResourceIdentifier(const ResourceIdentifierType resourceIdentifierType
00198                             , const XMLCh* const  systemId
00199                             , const XMLCh* const  nameSpace
00200                             , const XMLCh* const  publicId
00201                             , const XMLCh* const  baseURI
00202                             , const Locator*      locator )
00203     : fResourceIdentifierType(resourceIdentifierType)
00204     , fPublicId(publicId)
00205     , fSystemId(systemId)
00206     , fBaseURI(baseURI)     
00207     , fNameSpace(nameSpace)
00208     , fLocator(locator)
00209 {
00210 }
00211 
00212 XERCES_CPP_NAMESPACE_END
00213 
00214 #endif
XQilla-2.3.0/docs/simple-api/ATDateTimeOrDerived_8hpp__incl.map0000644000151400015140000000003511653571064021150 00000000000000 XQilla-2.3.0/docs/simple-api/ResultImpl_8hpp__dep__incl.png0000644000151400015140000001063211653571064020525 00000000000000‰PNG  IHDR€ÃÅŽ^bKGDÿÿÿ ½§“OIDATxœíkPW€Ïš%( J‰µ‚P‹Z;Ug¼”Q)µ8ŠŠ¨u ´õ2…*ŽE[?¥ÖÖ…r³#J¹‚ 8jk•‹€€£p¨-‘Hä¶É~?öûÒ˜ûañ<ÃÍ9gϾ9Oöìf³Ë‹‘$ ð;€7$2HdÈàÚ*Ö®]kÍ8F=7nܲÓv„aØÜ¹sY,–%£z#èîî~üø±¶qÖº‚‚‚>øà‹õ&qûöí“'Oj«EÇÈ A ƒ@ €ŒI|UøðÃ÷íÛ÷ôéS³„Åãñ|}}‡Ü"ÇiÝš‚©{@\\‡Ãáp8©©©l6ûäɓ潼ÚÙÙ¹aÃ3v8Ò0U€£££³³³³³3›ÍÞ³gO{{{__ŸY"£P(ÀŒŽ4Ìy `08ŽÛÛÛS/ ‚HLL LLL$pïÞ½°°0??¿ÒÒRðú´ 9E|þùç€M›6inÎ××·¤¤d×®]7n¼råJiiippðÇœ––¦ìêîÝ»;wî ¼pá‚L&Ó|MMÍöíÛׯ_ùòem«Ú§>˜*@,‹D"‘HôòåËÔÔÔµk×ÚØØPU¹¹¹III?üðC]]]zzºX,>qâÄÆýõ×;wž={V,ëî?!!——7dmmmíO?ýžœœ\QQ‘ššºwïÞK—.)w.—{æÌ™Ó§OWUU]¹rEdžªªª’““£¢¢RRRt¯®Ÿú`ª€Ý»w¯[·nݺu[¶l)--ݶm›²ª¤¤äàÁƒ,ËÃÃ#""¢ººZ&“‘$)‰˜L¦¿¿aa¡­­­)[ß¶m›ŸŸ $$ÄÎÎÎßßÐßßO5Ø»w/›ÍöööÞ½{·¶Ëaª]-_¾|ØÕõïSt] Ò‡ŒŒ www€D"IKK;{öl||777==}öìÙ!!!K–,QíÍиÇqµe%l6›Zxë­·^¼x¡£«I“&0 vuýûÔS(±µµõ÷÷/**"I’z'N<þ<¥G(öööJ$…BqâÄ ‚ ÊËË£££¹\.µº\.g0===抇¢½½ÝÃÃÐÖÖF ±6Ô†^Çêú÷©æ<ÛÛÛŠD"êåŠ+’““Ÿ?ÞÚÚÅår1 ‹ŒŒüý÷ßd2Žã¶¶¶€ÒÒÒÁÁAms½²OC‰‹‹ãñxþùgJJŠÚ/×®]0bu}Ùö€‹‹‹@  fƒ°°°¸¸¸Ï>û ð•+WFDD0™Ì£G&%%uwwO:5&&†Éd2™Ì°°°„„„ŒŒŒ/¾øâÎ;ª}ººº¾óÎ;›7o...6"¤5kÖ:tH,¯^½zûöíª3ƹsç.\¨©ß´3º™Q+ÀÞÞ~ýúõæ]ÝÄ>‡dÔNA#4hÈ A ƒ@†ÞzzD/_y•b„ ë4ÔÃÃÃÉÉÉÊ„PÈ88´ÃD|>¿µµÕà[ƒ‚‚,’Ù¨­eaæáÁ„È0,^¼X[•Ö=`äóäIÇêÕßÊË£¼½Ý`‡c$4>\½ZãcpœQXX;ã¡«’$33«BAòÌÌJúîÇtPSó¬»û??.¨­}5ã¡«.·ÎƆA-ÛØ0òóÀÇhh)€ yyµ2™œz)“ÉóòjB7*ã ¥€?þhîë{톢¾>ñÝ»-°â1Z ÈϯÅñ×"Çq,/¯V<¦@?b±¬¨¨ 䪅¡(*j‹M½QÐúÐO@YÙc±˜Ð,‹eåå­‰ÐO‡SÃ` qƒq8ô›…h& ¿_|óæ“!OxBQ^þX(”X?*S ™€’’‡Ê³OMd2yII£5ã1š]Œãó‚O@Ëüç?ÿ>=0aÂX'']7»4Ìyk¢pr²W_{{&`útSï…ͦ Ñ$2HdÈ A ƒ@ € $2HdÈ A ƒ@ € $2HdÈ A ƒ@ € $2HdÈ A ƒ@F¯'dZ[[ËÊʬ¡ääðAAî°‚5kÖPÿd}H=ÈÊʲ|ÀÆÀ`Ld0&ÂŽbh²²²ô[Q¢×Ódp2Á cdÈ A ƒ@ €ŒÙT–»ººÞ¸qC­qBBŠ+t×¶´´(7­º,•J>Ìb±\\\>,•J©Ú²²²iÓ¦-Z´(44”jÙßß?nܸºº:õw@||¼§§§££ãéÓ§•ýs¹ÜÙ³g»¸¸ìß¿_,Y8ì8@@’ä‘#GÊɇ$I>Ÿxñâ…ZËŠŠ gggݵÚ|÷Ýw›7oþçŸß}÷Ý#GŽPµ}ôÑÍ›7‹‹‹'MšDåÍÈȘ7ožB¡Pç‡èéé¡zðóóknn®¬¬œ9sæ‰'†,v  P(6l`0;vìPRCÜÓÓ£ÖøÞ½{“'OÖ]«M€——Wgg'µ|ãÆ… Rµ$IáêêZ^^N’äºuëbcc5Cܾ}›$I¹\NMGª=PïzæÌ™C;ú 0óièåË—oß¾}óæÍÜÜÜ‚‚ªÐÑÑÑÕÕµ¾^ý_l×××{yyé®U-!U®>{öÌÍÍ Ã0 ÃÖ®]û×_QåÔ* cÓ¦Myyy===eeeÚN:0fÌkƒ0kÖ,eWííí: Í‚9ttt8pàûï¿_¹reLLLDDÄË—/©ªíÛ·ûí·Ôg œ™™””4RײЋi–5C Èʪ&I™•U ;ã¡«€¶¶Þþ!IR¡uu·µõÂŽÈHè* °°žÁø_ð Fß”Ât}_™L Èììûpã1Z hjêjnîR) ››»ššº´®0‚¡¥€‚‚8ÎP-ÁqÆÕ«´L)L?$IæäÜ×Hæ)ÏξOÇï4ôP_߯ãñ5Ëy<~CC›õã1ú àrëÔæ gp¹uÖÇDh&@.WäæªÏ?!ÏÍ­‘Ëi–Øœf*+[ùüAg0™¸ÚŽ3z{ªªZaÇh4Ë%‰ãcŽ P¾,*j,Pm!, ñÕP@DÄ/€¤¤]°1š}^FHdÈ A ƒ@ € $2HdÈ A ƒ@ € $2HdÈ A ƒ@ € $2HdÈ A ƒ@ € $2¯=!£Ä¸q^‘èO؆ꘫ?#öå—_.[¶Ìºñ¼ATTTœ?^µD]ÀÒ¥Kƒ‚‚¬Ò›…æyè$2HdÈ ±”€§OŸRß*4LìÐ «[3ϧ¥8::~õÕW#¹Ã‚¥Lž<966v$w8B0LÀÕ«WÝÝݩ䃙™™³gÏP(qqqÞÞÞãÇ_¶lÙ­[·¨]XÇ._TT´hÑ";;;77·!‡µ°°ÐÇÇgìØ±—.]¯Ï!†¥¥¥y{{»¸¸ÄÆÆ^ºtiÆŒ'N<~ü¸²eAAÁœ9sX,Ö$‰jç2™,22rÊ”),+22R&“iPZZ:sæL''§3gÎhësØ é…¡™O>ùä“]»vuuuM™2¥ªªŠ$ɤ¤$‹•——×ÑÑqíÚ5*m2û“æ‚@ `2™¡¡¡ííí€îînÕM…B[[ÛÄÄÄÎÎÎÔÔTÇ…B¡j:)@pp°@ HIIlݺU $%%árrR«k&ÕÌc¡<ŸšÙx ÀçóÙl¶rcóæÍ»xñ¢²Á/¿ü¢[€D"yòä‰P(”Ëå¿ýöÐÈëÛÛÛkccsîÜ9>Ÿ¯P(úûûår¹š*=­T*U[Ö““*ÑLªöÅò|j 0øàèèþèÑ£½{÷R%­­­ .T6ðññÑÝ“Élnnö÷÷_¼xñÅ‹•åØÿqrrºuëVee%›Í^µjÕ;wÔòmÆþŸ9RuY‰Žô›Úªbµ<Ÿ hkk‹‹‹[³fÍ¡C‡¨ww÷††eƒGéîA$mݺ522²®®.!!AY®üPˆD"…B‘““ÓÛÛ¶~ýúÞ^ƒÿ5´Žô›Úªbµ<Ÿ† P(¡¡¡û÷ïÏÌÌ,+++,,„††FFFtuu]¿~J謉D"•J™L¦H$Љ‰ô÷÷«6À0ÌÏÏÃá©Tjcccgggàû|úôéýû÷£££wìØ¡ZµiÓ¦£Gþý÷ßþþþñññ€”””¾¾>#úÔ±!½P›ût.\¸°`Á*S|~~¾››[oo¯T*ýæ›of̘áàà°lÙ²+W®Ç’$üñGggçiÓ¦%$$³X,͹ÒÓÓ“Édzyy¨­ŒÍÉI5ÓLjJŸåù4ÃAxXŒË~iF,€¹ò|šá Œ0/£P€%ÒoZ0ϧêîÌ1!t€¦ $2HdÈ ¡÷½¡4…Ôvohvv¶ÕƒyÓ¡wþ€Q:@ € $2ÿh Ôî~¼‘IEND®B`‚XQilla-2.3.0/docs/simple-api/Sequence_8hpp.html0000644000151400015140000001110211653571064016213 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

Sequence.hpp File Reference

#include <vector>
#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/items/ATDecimalOrDerived.hpp>
#include <xqilla/framework/XPath2MemoryManager.hpp>
#include <xercesc/util/XMemory.hpp>
#include <xercesc/util/PlatformUtils.hpp>
Include dependency graph for Sequence.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  Sequence
 An eagerly evaluated result of a query execution. More...

Typedefs

typedef std::vector< Item::Ptr,
XQillaAllocator< Item::Ptr > > 
VectorOfItems

Typedef Documentation

XQilla-2.3.0/docs/simple-api/structStaticType_1_1TypeMatch.html0000644000151400015140000001055611653571063021334 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

StaticType::TypeMatch Struct Reference

#include <StaticType.hpp>

List of all members.

Public Attributes

TypeMatchEnum type
TypeMatchEnum cardinality

Member Data Documentation


The documentation for this struct was generated from the following file:
XQilla-2.3.0/docs/simple-api/classxercesc_1_1XMLFormatTarget__inherit__graph.png0000644000151400015140000002753111653571064024565 00000000000000‰PNG  IHDRu“gxµbKGDÿÿÿ ½§“ IDATxœíÝwXWÛ0ð³l¡7)+  )*hÔâ›ÇWc ‚Š=–÷ò¡(*BüðQDÅÄŒ-ÆŠŠŠ`4¢X# ‚°¢<‘.H[ê²Ë¶ùþ8Éf³A¸xÍΞ{ΙÙqnæÌÌAj¥ÑÓ ú ȯ€úA~Ôò+ ~”žnt—©S§öt@?’––&ù‘÷ú*‰4vìXkkëžnèã***žéô÷÷g±XGEùúú²X¬Ã‡#„êëë;m¶˜ÔL%¸ê}ûöYYYݼy“Éd¦¥¥ 2‡+úÅUÙÍ‚HLL”- ùÐg©’_›šš äêê-žéääT]]§ÓÒÒÜÝÝñÑ–Á`ñÉ'Ÿ\¾|ûêÕ+ñ´lTcc#•Jݽ{wSS“H$jmm …ŠÂ•¬…T~åñxd29??¼|ùò!Cä.¶£££  €Íf …Âû÷ïãEIåW))))ró«ìÚ) —Û<É ˆsrrðºHMvÚl1©™JqÕ...gΜ—?{ö,Wô‹+ÿiÄäæW¸þ è׌ŒŒ–/_þÝwßI¾ü¤¬¬ÌÂÂBüÑÐÐO899!„ÊˡŠç8;;;;;+Š266¾{÷î¾}û¢¢¢FŽ1}útE᪫­­ …øã!C*++B²‹¥Ñh¯_¿^¶l›Íöðð»´ÂÂB|'&÷veEÛD6¼²²RnóÐ_Ó××GQ©T©i›-—’@\uqq±‹‹‹xæ°aÔ¯Ýû€ë¯€~­¢¢âÀS¦L Ï455Ÿ2655=yòÏÇ ÀÒÒ²¬¬ ÏÉÍÍݾ}»¢(.—+‰.^¼ØØØ¸dÉ’3f466* WN'“É%%%øcqq±•••ÜÅr¹\__ß°°°œœœC‡½kE’m›‡§ÅT¹.7[I ®ÚÖÖöåË—â™ïºvªƒü è¿D"QppðÚµkÏ;wûöí””<öìÙååå ÃÇÇçàÁƒ’Q›7oÎÏÏÏÏÏ_³fMyy¹¢(‰äíí””Äb±x<•JÕÑÑQÞÒÒ‚/FJM#„˜Lf*•êçç·nݺÒÒÒüüü-[¶È]lGGÇ£Ñh\.7** !ÔÚÚÚµm¥|›H’Û¼wªKI³ñµÛ.b«W¯¿uëVCC¾”ŽïoR´vʫ넊ËðÑA]Ý¿¿››Ç#âÊ•+A°X¬Å‹›˜˜,_¾œÃáH^koo µ´´444ô÷÷ojjÂóe£‚HLLtpp ÑhNNNÉÉÉJÂ%«P~‰” ˆÆÆÆÀÀ@ ‹õë×s¹\E‹Ý»w­­:äïïonn.µpÙ›§ä^•»vrÃå6Oêr¦d ÜiÙfóùü &èééÉmª˜òõ …ñññ†††>>>ÉÉÉfffr×NnuŠÈ½þ ïôYðþW %55ÕÚÚÚÍÍ LJJЉ‰yþüù{.Þÿ  _c0 ,ÈÉÉikk{òäIddäÒ¥K»©.¸@ÞÖÖ6kÖ,&“ioo¼bÅŠnª ò+€þ‚B¡ÄÄÄÄÄÄ|€º P?ȯ€úA~Ôò+ ~_õƒü ¨Œßè³H$Òˆ#ètú‡©N(Ôàru¹\mcã& EÙëÇAS[[ûâÅ ©| Ï¿ú¬yóæuëò q¹T‹ÖÚJc±¨\.•DB::‚I¼n­ô*ÆÆÆ’¯ÞÃàüÞÁÔ0 FeVVé«Wo‘‰——««µ——³³%•Jîé6‚^ò+(Ãåòž=+ËÌ,a0*ŒŠÚZ––ÕÓÓçTW×AtºÞÅ úȯðA¼~]›•UŠsjIIPH Jwuäåeïéiçà`N¡ÀÍ¡ _µ´´ef–2™™¥yyoX¬ví1cì]]¹ºZ»¹Ù˜›ë÷tÁGò+ ?‰ˆüüJœSŒÊââ:‘ˆ:”îåeçéiçêj=dˆ9™ '© ë ¿ú‹ÆFNvvYffiffIAA›Ýal¬;zô`Üñëîn£¯¯ÕÓm}äW@ŸÅç Ÿ?/Ç÷%ee•–—7hh\\yzÚáœjkkÒÓm}äW@ŸR_ÏÎÈ(¿/_¾mk㙘è7çÔáítu5{º _€ü ø¸ñx‚ÜÜ7øÔÌÌ’ÚZ•Jvw·Á¤zyÙÁó3 G@~||Þ¼ixú´çÔ‚‚*>_8hñرøT—A::´žn#èï ¿>íí|ñ©xMMŠ««µ——½—— òz!ȯ€Þò€ïKÊÌ,-)©DŽŽñ©^^vÆYÁ  7ƒü è-X,îÓ§%øÔ¼¼7uu­ÚÚ´Ñ£ÿ5¡5nÐÓm@U_=Fj$Bñ 0!è ¿>¨ææ¶¬¬?G"ÌÍ}ÓÚÚnh¨ƒ¯¡zyÙ»¹ÙÀ  /€ü P†Ï¾ç ×$G"”äF"}äW€||¾0!án^^åÑ£‹Þ5¶¡“SŽG"|õªŠÃé0@wÔ¨Áxtßaìôô`ÐÇQzº€Þ(#£8$ä|YY½¾¾A$IyyñH„²ƒ<,Xð)ŒDú!8üCUUsxø…ôô ’HD „>Œpp0—-YYÙ”‘Q„HÅ#ššê}ú)ŒDBpþ  E wwï¾)ˆB8¹jhhdg—ãüÚÑ!ÈË{ƒHŃ<Ðh77kWWë¥K?‡‘範ÊÎ. 9_TT‹Óª…Bž<ÙÙÉÉ";»,7÷ ›Ýad¤3j”­‡‡í¨Qƒ=_T_ßV_Ïe29Lf[}=·ºšÃdrØl>\hh44HB!š8q^HÈnåKûî»ï>D£»$11±wþ‡» .øùùÉý žÏ ÿ¢R5,,ô,,ô2“œ/õõm¥Þ6&³Mê¦b@§ ¿¤‘É$:]—N×íé†ðƒ1µõƒü ¨äW@ý ¿ê×7óëóçÏ)Šäƒ¼ÉÉÉ4íÅ‹!‰4tèP©Ç•¦OŸN"‘ŠŠŠ>t[ÕÉlåñ=ÝŠCaaáäÉ“ïÝ»'žóûï¿O:«2qâÄ Hí6l˜8qâÛ·oq)) Ï\³f žFtGuﯥ¥í×_—.=ËÌ,}ýz‡¶6M-‹í?ºéÀõøñc;;;‚ Þ¾}»nݺµkמ?^nɪªª3gΔ——Kž:URRâååU__š9sfuu5B¨´´tܸqx!db¢¶w KV×e}3¿"„¶lÙråÊ• 6>|xãÆáááâo§L™rñâEñnzíÚµ/¾øâÆ=ÔØwÃã îÜ)HJz––öR(„ü¡C€"><|øpHHÈO?ýdbbòÍ7߈¿5jÔ½{÷ÄùõñãÇîîîOŸ>U¾L##£tc£ÿ"‰X,žÖÔÔÔÔÔDq¹\„Pw4@²º.koçߺ•ñâ³û÷ÿ‰`íºn:p™™™ 8!daa;cÆ E%ñžfcc#ÛÝD"QCCžÖÖÖÖÖÖF±Ùl„Pw4@²º.ëJÿðµk׬¬¬šššBçÎsttäp8!>ŸF§ÓÍÍÍÃÂÂø|~QQ‰DºsçŽÍ½{÷¢¢¢lllÌÌÌ‚‚‚š››ñÒd£B)))®®®ZZZööö§NB ¹á¸ ÙiöóÏ??~|ÇŽ'Nœøù矩TªxðUâÿä—.]š;w®ø[¹M"‘HÇwvv633Û¹sç©S§ììì ###qTssó¢E‹LMM ÚÞÞ.¹ú#GŽ\²d .Éf³uttž?þN›Ï¦¤ä:tã²e'~û-ŸÏŠDD¯:T=~üxîܹ­­­¡;wî¶··#„ABBÂ×_ýõ×_'$$‚·oßNœ81''ÇÏÏ/77÷ĉ~~~³fÍÚ±cþ?#7 W±dÉooïùóçߺu !$ å†ã*d§)ÊÆoܸqæÌ™7nlܸ‘BùûÍ/¿üòÞ½{â­zÿþý/¾ø¢k[ƒÍfïܹsæÌ™óæÍûñÇy<žäZ¿xñbâĉ7nÜX¸pá¬Y³Îž={ëÖ-ÿ¯¾úêøñãx Ë–-óññ™3gÎÙ³gBß~û-BhöìÙÊ«– ”¬šÁ`\»vmÑ¢E_}õÕ¿ÿý ¼qd7¸ŠÕÉÕÖÆ»x1kÁ‚Ÿ#V­:uïÞ‚^·ÇbÅ1 uÏK ™L677WÔŒ±cÇ"ò™òƒá£G:mUjjª‡‡‡ŽŽŽ……ÅÎ;U¯Z6P²ê‡&$$ 6ÌÀÀ`Ò¤I©©©x½d7ŠÕ)וüú¿ÿû¿S¦LY¿~}mmíúõëOŸ>­««‹Š/--}öìÙ;wÒÓÓ·nÝŠËïÙ³çäÉ“÷ïßOJJº~ýúÝ»w_¿~½}ûvü­l‡Ã™7oÞêÕ«ËÊʶlÙÌápöíÛ'7ÜÌÌìÈ‘#²Ó¡Q£F…††nÚ´)22ÒÅÅErÆÏf³q¿_KKKzzúÌ™3Åß*Z‘Û·ogffîܹ3"""55•Á`ÄÅÅÅÄÄà?sÖ¬YSYY™™™yãÆß~û-66Vrõ·oßžœœŒ3Drr²½½½øPåQZÚ˵kO;;oZ±â—{÷þÀiµw^¾7nܨQ£<ØÔÔtðàÁÍ›7kii!„.]ºT]]}øðá={öäääœ8q—¿páÂÆóòò}zÕªUGŽinn>tèBèòåËJ#7P²êÂÂÂS§N­^½úìÙ³T´ÁU©N Ÿ/LK{¹fÍiW×-ëן{øðµ@ $ˆ^ºÇbË1­;\!‡Ãf³[[[ÿøãÍ›7*ÚPOž>>_~ù¥¦¦æõë×å†ëêê~õÕW²Ó!‚ ÊËË544Ä…Å444>ÿüsÜEœ‘‘1bÄU.gJîx¡ÿüç?žžžéééÇŽÃ×e/^|øðaün¼Ö¸¤ŸŸŸŽŽŽ··w\\Üüùóutt|||öìÙÓÚÚJ§Ó;fnn®©©‰O)ðIU§h4š¢@\õþýûW®\ééé‰5jÔâÅ‹cbb”üL*êèÐ)+35ê»úúV2Y'T‘Hþ{þüS*õ]Ÿ¢P:ï9ÿ(Žij?pápÉ¿õ $3z§¤ÎRRR¦M›¦ü`ˆK*i•M^^žµµµ¶¶¶µµ5B¨¥¥E•Æhjj* ÄU¯[·n×®]Ó¦MCM™2eÛ¶móçÏ—»éÄÝû·‘‘ÑòåË¿ûî»´´4ñ̲²2É[< ÿ¼ÝdËËËñì!ggggggEQÆÆÆwïÞÝ·o_TTÔÈ‘##""¦OŸ®(\‰3gÎÜ»w/==}Ú´isçΕüC!4oÞ¼¥K—nß¾]ªEÉŠèëë#„p?³ä4B¨¶¶V(:88àC† ©¬¬”\}2™<{öìË—/»ººÞ¾}ûðáÃÊŸ–öòõk‡‚ !Ôéè¯11)Ê ¨…ŽŽK§eôôôþõ¯xð`<¡ègRÅ“'UUU¶<ž&B­¡NÏV7o~‡sâ÷D£YuZæ£8¦!u¸°ÂÂB|ÃA[[Û¾}û&Mš$yRðr©X±ÊÊJåÃN[E£Ñ^¿~½lÙ26›OvU¤$W]\\,Ù—9lØ0<¡hÓ½§.æ×ŠŠŠL™2%$$_K@™ššÞ½{oëææfñ™5Þj–––eeexÝrss¯_¿¾yóf¹Q\.W$]¼x‘Çã;wnÆŒuuuŠÂ©ªªZ·n]\\Ü矵bÅŠ &Hþ­7a„ÖÖÖG¥¥¥Ie;E+¢N'“É%%%ø+..mÅ;ͼyó† 6aÂq>PdêÔáµííäiÓ–ž>ý¤¼¼žJ%óùòOBÏŸG€û‡I$BžÊËÔÕÕ]¹reÔ¨Q‡Ú´ižihh· ›ÍnllÄóq.111©©©ÁGü¢¢¢'Ož,X°@nTGG‡H$ŠŽŽwîÜÙ´iÓÕ«W…+ÒÐЀOà\]].\¸gÏ©“Ô#F´µµ½xñâÙ³g!!!]ÛVÆÆÆÕÕÕ8ßWUU™ššJ®u§:::¢£££££?ýôS>Ÿ¯úm,JqÕt:½´´T|->˜*ú™T1v¬åo¿èêZLœtáÂ³ŠŠå{lqqì»X•‡Fzÿ1 SïKŠŽŽÎ²eË6oÞ\WW‡ç …"ûLšª •ãr¹¾¾¾.\˜1cFGG‡ørÒûâªmmm_¾|éêêŠgà‰÷ßtruåú«H$ ^»ví¹sçnß¾’òç™ÓìÙ³#""ÊËË †ø¢¸yóæüüüüüü5kÖˆÿKËF‘H$oo襤$‹Åãñ¨TªŽŽŽ¢ð–––£GJM±bÅ WWW|ŽB§Ó×®]+ÙÜÓ²bÅ ///܇&¦|Eä¢R©~~~ëÖ­+--ÍÏÏß²e î‘ôÙgŸ ‚mÛ¶)¹¼!EKK¸zõ䌌ÍwïnX·nŠ……BèƒõªuA»víš={vdddvvöãÇñüÏ>ûìÈ‘#µµµ%%%áááW¯^•Œòöö>zôhiiiiié÷ß_[[«(ŠD"………=xð€Ãáðù| …¢©©©(œÃá\¿~]jš ˆ={öØÛÛãîb___ccã~øA²=¸‹xïÞ½ÎÎÎFFFRëØÜÜÜ(AѦ P('Nüᇪ««KKK;ö®/çóùøèÆãñð‘¢­­ …oãìB 6k֬Ç?{öŒÅb=þüçŸÆHÑϤ¼:I::‚Ÿ§O·Ü½»aùò/MLôB ùVüÃëýÇ41õ¸0&“YSSSSSóæÍ›ØØXkkk333¼çÿòË/,Kê?ˆrª •ëèèàñx4ËåFEE!„ð-“识»ˆ­^½:<<üÖ­[ éééÑÑÑxÏW´é”Wש®ä×C‡1™Ì 6ÿøã¸Ç!£¯¯ïáá1iÒ$777ñ5m,""ÂÛÛ{Ú´i&L°±±Ùµkž/¥¥¥uòäÉ 6XYYíÝ»711QKKKQ8“É\¶l™Ôô/¿ü’––öÓO?ihh „¨TêÑ£GÅb¾¾¾R},®ˆ"°´´ôôôôöööööŽˆˆ*€»ˆY,–dœŠ>ùd`HˆOVÖÖ«W׎34ÔF½ò°uõêÕææf}}ýõë×ïÝ»ïßK–,Á¯_¿ÞÁÁaÅŠ’Qžžžaaak×®¥Óéâoe£h4ZDDÄáÇçÎ{ñâŨ¨(¦(¼¹¹y÷îÝRÓ·nÝzöìYhh(þE¡PÂÂÂÒÓÓ¥ž#œ8qbyy¹ÜÎá5kÖÌ‘ dküßÿýŸ©©éÊ•+ÃÂÂ<==ßõ(£§§·jÕª˜˜˜   Nž<9<<|àÀ#FŒP^¯Ü@ɳfÍòõõŸ?þùóçW®\‰;Äd7¸*ÕÉõÉ'7oþW^Þ¶«W×70Ð"‘™ÜK´éýÇ4Iê=p!„Ægaaaaaagg—––vñâE SSÓ˜˜˜‘#G.Z´è¶¦ C匌ŒöìÙàää4xð`ŸÁƒO˜0AùSær% |ûí·!!!ß~û­ƒƒC\\Ü®]»p¯’ì¦S¥ºN‘¤:Öñ+ˆáýêÝdóæÍeeegΜQ¥°’ߢ½Ÿ–öòÒ¥gwïþW !D|°þax¿z‘‘ann.¾BöàÁƒS§N½Ó]-r}÷Ýwfffr÷X§ã·ßò/]zöðák¡@ˆøÀýÃð~u€JMMµ¶¶vssÓ’’bbbÞõQI)øýêr/Q÷ÞžÆ>¦½½½ªªêøña 7ËIDATãâ‡4Þ‡–uÆ ÷3ÜY,2._Î&‘zé™è…JJJŽ9accS\\|üøñY³fukººš³gš={TS'%%ïòåì3’ FDDÄÉ“'œœ FddäêÕ«»¯:ȯÈÓ§O¿þúëU«V©÷äÏÀ@û›oÆ|óÍ5.ôyß|óM{{û–-[š››-,,¦OŸ®dÈõ26Ö 4îÃT€¤ððð¶¶¶Y³f1™L{{ûàà`©kUêùõùâ‹/ÞénLº™L^²d‰Zžðà#B¡PbbbðÓÞt*êùP?ȯ€úA~t®­ßÓMà#÷7þDDKK“ÙÆdr™LN}=·®ŽS[ËihàZXèíÚ5©§ÀÇDN~-))ùé§Ÿ>|S€”’’ñ±½Gvvö{Žzq8„øß–Äá öö?Ÿ’ÇÏ¦ŠŸ˜'‘¦&;55Uù2«ªªÌÌ̺µÙ]vçÎñKúP£ììlE_É¿éâÅ‹Ýß$ ü:åžnÅß`L€>ƒB`h8‰FÃï™uv©ˆhi¹ÝÖö²ÓÅö¶=ƒýt7¹ã7IçW@ÿ‘–ö244±±‘Óéëäîßß8t(ýô €¾îo ÿš:uxFÆ–+&jh” ¾¯­M#“á€wç¯ôêUÕ¿ÿ}.?ÿ­H$}@ ‘Hè64° Ð5j°‡‡ÍèуÝÜlôõµz¤©|, ¿Bˆ ˆK—žmÙr¹­'Ù]L¥’×­›²`Á§™™¥™™¥ FEnî>_H§xyÙ{zÚ¹ºrw·¡Ñàaþò+àoLfkttòÕ«9¤¿²,éÌ™å':‰Ë´µñòó+ŒÊ¬¬Ò'OŠ™ÌV*•ììl‰síØ±ÖÖzªýô_Ònß~µqãź:–@ "‘HùùÿÏØXWQáÚÚ£23³43³„Á¨èèÐé®®Ö^^vžžv®®ÖZZÔÙxz ȯ9¸\Þ¾}i‡¥[Z=}©bŸ/,(¨ÂÝÈYY¥åå І½½¹8×~òÉÀnm6½äW€B¯_×2k×®ÍÉÉIJJzóæÍ±cÇ’““ÃÂÂB%%%¦¦¦Êc[[[G••›qæÌ™©S§ …B¹åe—ùøñãêR×z)©zæÌ™¸®Ç#„ÄU>¼;ªS xþ>2W¯^½yóæÈ‘#Bfff?üðC``àþýûE"QCCƒòØmÛ¶™™™Ý¹s‡L&#„§M›æâârâĉ¥K—Ê–—]¦™™ÙÀÕ·6 IV­­­­­­b³Ù¡îh€*[ïÀù+üíÚµkVVVMMM¡sçÎ9::r8„ŸÏ £Óéæææaaa|>÷¸Þ¹sÇÆÆæÞ½{QQQ666fffAAAÍÍÍxi²Q¡””WWW---{{ûS§N!„ÜpÉN]ÉiƒC‡‰“ÁçŸ^^^Ž;v,ú+÷…¸¸8GGG}}ýñãÇ?}ú>}úôÖ­[qrÅtuuÃÂÂNŸ>-·:Ée*ÑÜܼhÑ"SSÓAƒ…††¶··KnŸG‘H¤ãÇ;;;›™™íܹóÔ©Svvv†††‘‘‘x ©©©:::;wîT½jÙ@ɪ>|˜0lØ0ƒI“&¥¦¦âõ’ýiT¬îÐo „•— Z¸paMM Núô)ž;gΜ7oÞ0Œ‘#Gnܸ±°°!4}úôôôôèèèáÇ3Œ/^Œ3&44TQ›ÍÖÔÔLHH¨®®>vì…Ba³ÙqqqrÛ››9";ýÛo¿YYYijjN:5..®¬¬ ÏÇMÂÓ{÷î577¿|ùrUUÕõë×---Bøï&“)µÊ¿ÿþ;N— OKÎÄ077·UŸÏ'" `òäÉÅÅÅ ÃÅÅ%::Zrûà“N‹uôèQ„¯¯/‹Å:|ø0B¨¾¾žÅbÑh´àààÊÊÊÓ§O#„êêꤪ–]G‚ ”âª÷íÛgeeuóæM&“™––6dÈ®èU¾o`‰‰‰ª”„ü èGTɯMMMƒ ruuŽŽÏtrrª®®ÆÓiiiîîîøpÌ`0‚øä“O._¾Œ¿}õê•xZ6ª±±‘J¥îÞ½»©©I$µ¶¶ …BEáJ‚'OžlÛ¶ÍÅÅ…L&Ÿ9s†øgîqttüùçŸÅåOž<©$¿fdd˜ššª˜_¥¤¤¤ðx<2™œŸŸË\¾|yÈ!’ÛæääÁãñ¤¦ ;:: Øl¶P(¼ÿ>ž©J~Uˆ«vqqÁ;{ö,Wôƒvºå ȯ K•üJĶmÛÈdrmm­xŽ–––dR144ćc‡¿}ñâ…ìrd£‚xôèÑܹsuuu?ûì³_ýUI¸\l6ûܹs‰D‘‘‘VVVÄ?s¶¶vnn®8êùóçø«¦¥¥I-óÇœ6mšdøëׯå×ÂÂB©ðŠŠ „—ËÅ †–––äö‘ ”;œœŸ?aÂ===\&..nÈ!ºººŸ~ú)>?Ãál6;$$ÄÅÅEGGgøðá111mmmø«˜˜###‡ääd\^r™„‚þa‚ MLL,,,Ö¯_Ïår•t,ËÞ»w­­:äïïonn.UµìvÀd%Ë…ÂøøxCCCŸääd333¹?ÜêäR±Þ¯èGH$Rbb¢¯¯oO7| ©©©ÖÖÖnnnøcRRRLL ¾Ýe.\ðóóë4{Bÿ0€>‹Á`,X° ''§­­íÉ“'‘‘‘r‡Ñè0~€>+<<¼­­mÖ¬YL&ÓÞÞ>88xÅŠ¦jȯú, …ó᫆þa@ý ¿êùP?ȯ€úA~Ôò+ ~0~ ¿?€÷Ôiö„ç_ýÈ… zº  ¿€óW@ýàú+ ~_õƒü ¨äW@ýþ?óìA’üµê•IEND®B`‚XQilla-2.3.0/docs/simple-api/UpdateFactory_8hpp__incl.png0000644000151400015140000002265411653571064020217 00000000000000‰PNG  IHDR¨u å„ÓbKGDÿÿÿ ½§“ IDATxœíÝy\gúð7!Ü w8Ä‹CÅ —`u+rˆrX èRÔnëŠh»ö³+Z¶[­ÚÖ®Ÿ¶nůµ ¢ˆJµ rZð@¹$ArÍï×IWHy¾…aŽç}ç™y’É› Ašªê g355577ÖM”.õ0òàËø7nÜX¾|ùâÅ‹úé'>Ÿ/‰~ùå—åË—/\¸ðã?~ðàžùæÍ›«V­ ŠŠ:qâBhíÚµ¡wß}Ï ’““/^¼xñâääd@ gÓÒk …‡^ºté;ï¼³sçN‡#½ ‡³k×®E‹ÅÄÄìÛ·Çãá&/]º4>>þÛo¿Åsr¹ÜÐÐÐêêjéMÅÅÅEDD?~¼·N9Q=À(…€‘êܹs;wîܱcÇíÛ·Oœ8qæÌ™S§NÅÇÇ;vlùòåÉÉÉ¡®®®-[¶8;;§¦¦®Y³æÀmmm?ÿü3B(##¯'==½±±qÿþýßÿ}qqñáÇñôîîn®¡P(smééé;wîܳgOmmmjj*BHb?üðCKKKrrò7ß|SXXxòäI<ýôéÓ›6mZ¹rå7„B!BèÆ¶¶¶NNNÒí½}ûö6nܘ’’B^Nè9\ê`¤Z³f½½=Bè¯ýkJJ …BIHHðõõEYXXÄÇÇïܹSGGçàÁƒt:]WW—N§#„:;;%Ö“››»gÏsss:¾zõêäääU«VáՊ϶cÇéµåää¬ZµÊÁÁ!ôé§Ÿ>þ\býàÚµkÄ#>øàƒýû÷!„âããD"F+++óôô¼råJHH…B‘nïÒ¥K æÌ™ƒêèèÙ xµßÿý¡õ4£ ~ÔA2_c¸¶!„ÆßÒÒB¡PÄ?(ãJL£ÑêêêvïÞÍårenåÅ‹QQQ䟆††øEjjêØ±c%f–^[SSÉ„ &L˜ ±›Í‰DvvvøÏ±cǶ´´‘#„¨Tª¯¯oAAƒƒÃÝ»wׯ_/3N „Ä{‰N3€Aá@MÑéôúúz²†=þ\KK ÎÆêêêpu¯­­µ°°ÐÑÑyüø±££#þoMM B¨§§gëÖ­[·n={6ŸÏÏÍ͕މ‰Éž={pçp8,«·d®ÍÂÂâÅ‹“&MB=zôèÖ­[Ë–-_ÊÌÌŒJ¥666â÷ –––ø_4ÚëS¿¿ÿöíÛ'Nœ8}út+++™[—y@¢äL`ð?j*44ôǼyófcccqqñ×_¢­­MΰwïÞúúú‡¦¤¤GFFîÛ·ïÆ,ëÎ;‡Bñù|@@£Ñx<þò¾«« /Îårñ __ß455=yòdãÆçÎë-$™k IIIyúôéÓ§Oøá‡¦¦&r~¼ ðã?666>}úôàÁƒø‚¼8777¡PxôèÑrbNNŽô$:AÎDŸøPS+V¬Ð××ß·o_SS“……E`` Ä'é   õë×wwwÆÅÅÑh4>Ÿ¿oß¾ÖÖVGGÇ/¾øbíÚµFFFkÖ¬Ù¾}»¾¾þ{クqãÆôôôéÓ§GEE]¸p!´råʽ{÷®ZµŠB¡øùù­^½º·d®íôéÓÝÝÝ6lèîîž5k^ÜÆÆF|Ÿ|òÉÞ½{´µµçÍ›'qžJ¥úùù]ºtÉÏÏœ¸{÷nò«™$:¯Vbâ`z€Ñ‹"ýÅ!`X-Y²¤¥¥%))iÐk¨¯¯_¶lY^^ž£R¹”””/^|þùçýœ_f' ¢gòóó¿üòK8Í—ú*ÆãñsssÃÃÃU £~FCCȈUG¡0¨¯ªªYY%YY¥UU/ŒõæÏw føùM611Puh!dg÷÷ää÷##p»=âryW®T¦§åç?¤R)~~SÂÃÝÃÂÜ tT#~Ô‹HD=ÍÊ*½r¥âÙ³Vkë1áá!!Œ™3tuÕëj ?éÕ«®Ë—+²³KóòÐhZ¾¾“££½CC§kkk©60Ô“zGÐX<žà×_ÿÈÊ*¹ví‹ÕéäDŽöf¸ºÚS©UG§ÖLL bb|bb|ØìN| !á?ÆÆz!!Œˆÿ©ðqð‰Ujoç^ºt?;»ôúõêîn¾·÷Ĉà`Æ„ ª­ojò‰_Zcc[NNYVVIQQ©©A` KLŒÏÛo;Ã[(~T‚¬LÅÅϨTŠ¿ÿÔðp÷€KKÕÙë?µ-ü¤º:öÅ‹åééEeeµ¶¶¦ ºED¸ûøL¢PàÐ\PøPž²²Z&³B|°^D„ÇÛo;Ðñhê_øIüñ";»äܹ{7Ûۛ͟?="Â}æLUÇ€ @á`x ¢›7]¾\ÁdV<ÞjmmîÂxë-‘=Èf~~pæÌÝšš—“'ÛDD¸¿óŽ—£#]Õq X/0p𹹡ªCS#šVøIlvgNNYZZaQQ‰‰~Pдˆyó\4í»0BAáà5‚ Ÿ2™•LfEUÕ‹1côñG:ͬ7P[øIä¯9ŠŠj¬­ÇàÑpK` æ ðMÇç óó2™ùùëêØäÝ5p°Þ@Aá'ÕÖ².]ºŸ–VX^^7v¬Yh(ܨ/(ü@Cq8=yy˜ÌŠ+W*ÛÚº`°Þ @á—†o |ölñ“'-ÎÎÖ‘‘‹y99Á-Â4KssÇå˯ë ÂÙ³‚ƒ!!Œñãa°Þ€Aá—Cú¡pK` & ððøqóÅ‹åx°ž®.-0pZPд  iff0Xoð ð÷‡ÄCbb¼££½­­MTÐ\PøÁ¨%1XÏÒÒ(4tzp0Ã×w²žž¶ª£  ð÷ŸøCX¬Nü»ÐE‹<­¬ŒUÐ8PøÁhCÖËË{X_Ïž8Ñ2,Ì=8x ÖS8(üƒ@> 3ó^Wß82Òs̸%0P(ü`”àpzrsË®\©,(¨joçNŸnƒõ†þ¡  ›[Îç ñ½",p32‚[ƒá…ŒlMMíYY%LfÅ;OD"bÖ,Çà`Æüù®ãÆ™«:´Ñ ¿Bˆ?€ _ßÉááîááîp÷0L ðƒéÑ£æÌÌb&³òþý:}}yó\`°žòAáW,ñ‡èëkã‡=Â-ÂAá#¬—•UzåJųg­VVÆóç»Â`=‚Â?LÚÚº˜Ì×04Ô žáàB£Á  ðt) îÈÁz×®=hhhsp° ÷€Áz`355ˆ‰ñ‰‰ña±:/\(KK+üË_š™,\èí ·CŸøšêèè¾x±œ¬çí=1$„Ä€Ázê>ñ+ ùP€Â§vv¦ ¸Á-Á AáꥩéUVV)9XÏßjp0Ãߪ½½™ªC’ ð+_m-ëüù{§OVW7gé¹d‰³³µªã# ~ ª«›ÎŸ¿‡ëèwÚ155Puh WPøUHü¡ø–Àï¾;cÒ$+UÇF(ü@e$ëÑéÆ!!®ÁÁ ?¿)ºº0úd€Â¯ð;€ôô¢gÏZñ;€˜xö ?P6 Ö ð«!ñ‡°Ù]^^""</ö²°0Ruh@]@áÃëÅ‹WÙÙ¥YY%÷î=£P(x°^@ÀÔ±ca°Þˆ…_ …¢ß”–VxéÒýžÜ ðƒaQUõ"+«Ö34ÔÅwÚñó›lbƒõF°>:öàA#ùg}}›¹¹¡¾þë»'ÑhZG®´µ5UQt@¶žAAÁë‡B?¿)ááîaaîpK` …( yÖ³¶î˜9Óë{ö\Þ½;··s†““uAÁ&åF? =½èâÅrM+(hZt´7ÜXAáCE>d Ösr¢/ZäÌpuµ‡Áz£Ì³g­úÓ×2O4šÖ¦M ×®§ü¨À@µ·s/]º ``  ·Ö4PøÁ ‘ƒõ®_¯îîæ{{OŒˆðfL˜¿#Í,ø¾¬¬Nú´A¡P ·ØÙÁuþ‘Dü¡ÆÆúaapK`…_ÓuuñôU_cc[NNYVVIqñ3*•âï?5<Ü= ÀÅÒÆ k„ƒ ¾ü2S ‰O¤R)^^ΟÿDUQ!"áÕØÚšà[÷ó@EEý¸qæcÆè+!N Pø5Ÿ/üê«óAlßþnŸ3—•Õ2™YY¥UU/Œõð`½¹s§ÀÑ®i^¾äxzn ß8ohiQ¿þ:jÅŠ?©** (õõìÜÜrüP€qãÌCB\—,ñ™>Ý^Î"ññGKKŸ=úשSm•' (üêÙ³Ö•+UV6ÐécîÝÛ*ó}½@ ºyóÑåËLfÅóç­ÖÖ&ááî0XDGÿ|ûöc¡ðúµ´¨¥¥_™›ª0* XÏŸ·fe•à‡à.^<ÃÁAò–À]]<ã3O ££ýñ‘‘ž*‰ ~M”šzóóÏ3D"B "„rrþîé9žüoWïêÕJü\«ÓÙÙ:2ÒëÒ©SwÖ¯ÿE$z}êÐÒ¢úú:Ÿ8‘ Ú¨À0Á·ÎÈ(~úôõC¢£}È¡<w×­;.Q"ââfíØ ?PsPø5KggϧŸ¦={!„÷¼Ž-!ÁÓ¦0r / Öòutt»º~Îç ñŸ åÇß‹ŠòVmT`¸‘¨­e‘·þÇ?Nþúëäå--ª‹‹í¡C+áqšê ¿©¨¨_¹òpc#›Ïcd–½½¹‹‹ío¿UñùBŸIó细†N‡zäøðÃCW®Tà!~ºº´ŠŠ¯án0B ]¿^•™y/7·œËå‰D„ø—>!MËÐP÷À÷çÌ™¬ª |Pø5EJJÁ¶m™"’8J1_ßÉ‹{3à†Þ ?²³KŽŠD¦:ýßÿ~_Õeãñ;vd§¤ü&IžR¨T …‚6m ûè£@•Ääƒ!Z£ß«W]Ÿ|r‚ɬìíMž¶¶–Ÿßä?ÿù-%F®à`†žžvWO(FEÍPu8@tthååuÉ8«àñ;vd—•ÕíÙ WƒÔ ܧi”»{·Æßÿ›k×ʹ´Ãç ³²J•étui¡¡Ó)¤¯¯ãï?UÕáhié¸}û 9ÆSA Üܲ  ïª«›”èÓŸø¹\.›ÍVU(@áÒÓKvï¾*q¯™ÊËkËË«-,ÔîçXúúúffC%Äf³¹\®B⤀€Iwƒƒ§´¶6«:–QÈÎÎnˆkhhhPH$½9s¦Tê¿$@ôìÙ˰°=ß~»hæÌ ÃO<£Þ(üUUUJ('üÏî߸QÛgÕ§P•J ‰ôôßÔîÈ´²²záohhhiiQH<€db"26Ö™6ÍNÃaè…¸÷˹swe^ç—@ˆÃéÙ°ál\Ãß_íÎ0š£×Âùûû+/0lBB^«áó…]]=<ž°«‹';;{ø|QWWŸ/ììì EN@ ?ÞÜßßEµ1K¨¨¨PÔª¬¬¬ †¢Ö°¿ýX»vÜÝA±š››+++²ªiÓ¦Ñét…¬JTŠ‘B:£`pßè§­­ebb ê(À(´zµ?T}FÜ$¸A#~@ƒ@á4~@ƒ@á4È0þGá§¼K¿ãùóç|ðAË–-32RßûÆËi n½{÷h4ZZZ9=33SGG§¼¼ÿÙÙÙ¹qãFwww##£™3gîܹS  AõEEµ´O åÑ£GJÛœÊ %±´!%t,•xæLœ8qÅŠ#âÎ ï½÷ÞĉŒŒ|||Ξ=;ˆ• ®Ÿ5-í• ŸÇHoÇ]N¼ ÅÙÙYâ6¦ ,PùÞTrÃXøMMM?ýôÓ.uîܹwÞy§¡¡áøñãŠú1«’á&xzznÞ¼yݺummm¡W¯^­]»6))iúô顎ŽooïÛ·oïÚµ«¸¸xÓ¦M©©©!!!B¡ppýöûï¿7¾I±zò䉥¥¥b×9B %±‡#ž¡ §P]]ÝáÇÛÛÛ½¼¼pꪉ$lmmõôô4008uêÔ;wþüç?ÇÆÆ^ºtI…‚¡sŒˆïúÞÀþœxB555¥¥ÿ»C9›Í.((PpKÔ!¦©©)//P´êêj¼!ò…aaa]]]ý™SµäDˆ›@DOO««k||{!T]]=ä6É#'†áÛúýû÷ïß¿¯>ë‘0ˆÄÐú•°[ɨ$¶%‰üüü¶lÙ2¬[(‰~þ裖.]*>CbbbPPÐ@W;¸~¾½£¨óp^^^SSÓÐ×£4rŽ™‡˜ÄÄþœxB¡¡¡›7o&—:räÈ‚ ”p¬É7¬HgÔ€?ñŸ?~ìØ±ø–þ'OžœÆ ÖÖÖt:}Æ |>öìÙ{öìA±X,*•š˜˜ˆ …fff999¡¶¶¶¿üå/–––ööö‰‰‰ÝÝÝ‘ïœ=<<^¾|)Þ„ŽŽÎ‘#G:´sçÎÇ9rD[[/•ššºeË-­ÿý ÚÐÐpãÆÇD¿ hgáõgffN™2…N§¯[·®§§§Ïö:;;“{DÚåË—œœÌÌÌvîÜIî2‰Mô¶]5¡œÄFeee¹¹¹ééé988;v !$’’’ÆoeeµbÅ ñÏÙ‹de2êGþ÷• …’€$+7dÆ,Þ3â¯qx⥎?îââbnnþí·ß"„ÄO ¡3gÎ|òÉ'âa'%%Mü÷jzzztt4ùßÁ_òOž^^^+W®Äsr8ƒ{÷îI復“ü÷2­X±âý÷ßñâ…µµõíÛ· ‚Ø¿?NÏÈÈhhhÈÉɱ··GI"_´··ëèè|øá‡uuu©©©¡ææf‚ :tìØ1âÍ·røõ‚ ®]»ÖØØ(sA„Plll{{{JJ BhÉ’%íííû÷ïÇ AÄ7ß|õüùó²²2//¯M›6}õÕWaaaAdffŽ3ÆËË‹ ˆ¢¢"==½ÎÎN‚ âââ?~\VVæêêºuëVñHJJJB"‘ˆ¬ú8Z² ¤M›6!„¶oßNNÁGZKK‹DÇÞ¼yÓÜÜ|ý†*))éxSo; ¯-$$¤ªªêÖ­[NNN[·níg{eæB(<<¼½½ýÌ™3¸Ãen¢·íÊ¡äOüJHl‡£««›œœÜØØxðàAÆáp¾ûî;ƒQVVV^^þÖ[o%&&âx¤;–•ÉD_ùßgT„¬………¦¦¦øµtnÈŒYú°%W>ÐÃ/Íf³8€jmm_'>ˆX,–Ì])³ÉCïgq×öÊüÄ/󄬶‹Ÿ ¶nÝ*³¥—P¶Ë9ù÷gbN¼A „>|hccsïÞ=‚ ÚÚÚ ðg6œÿƒ8¾ˆ¾Nž.\°°°àóùA¤¦¦2 ‘H$±#†/Y5˜ÂÏf³íííÝÜÜÈM2Œ#GŽ3=zTþù±§§çÁƒG(þúë¯d§GEEá#Yz7—••ÉY!T\\LÇ“xg˜:ujcc#^!“Éôðð(**222âñxÿøÇ?6oÞ¬­­Íf³¿ûî»… âeµ´´Èj‘‘‘áää$ ~½qãF„ÐüA¶l&‰-Z¤¥¥µlÙ2ñ$3FÜï¿ÿnii9ˆ~“ó–Nzg‰·‚ ˆS§N999õ³½2ó!”ŸŸO„P(Ä!É܄̉2WHRráWBb³X,mmíÝ»w³Ùl‘HÔÑÑ! §L™’‘‘7QYYI¾–îXBV&}åŸQr ¿ÌܳœÂ?ÐÃ/…OGäœâëd±X!6›-sWÊlòÐûYÜð¥½2 ¿tβÚ.ÞŠÞºQz©e»œ“&öçÄKü7Ï?úè£ÿû¿ÿ#"55588˜ËÿA_}ž<ÍÕ«W ‚X¸pá®]»¤wÄð¥¡Ký!SSÓøøøŠŠŠ5kÖà)Ož<ñðð gpss“¿ªªªÐÐÐ3f9rOäp8|>¿·G±M:µ·1ccc„¾¤#þ«©©±µµÅƒ–ƒƒƒŸ>}êééihhXXXXPPéééYPP——†jjj …ŽŽŽxq''§ºº:ñH°ÂÂBÿ;vôÖ„ãÇççç_»v-===33“ì@üZ\II‰øÊûÙo˜ô÷Cä¶$v†/ÝãæÔÕÕõ³½½ÁÏ}¢RßH'‰MÈ™¨&”Øfffyyy·nݲ··Ÿ;wîo¿ýF¥RŸ={Fv‹‹‹ËâÅ‹ÉJw¬t&ãérò‡B¨ººçƒÌÜ3F¼ù~t ‡§xóÅç$™™™Y[[KŒÿ-,,ôññéêê’Ùd…ô³¸Qö2ϽµŸ zëFé¥úŸí½e#Ñ˧ ý<ñ’bbbÒÒÒ‚¸Î/§ír¸Ï“§––ֻロ‘‘ñòåË+W®ÄÅÅÉl…2Ói0…¿¶¶vïÞ½AAAëׯÇSÆŽ+>N²Ï‡ªq¹Ü%K–lذ¡¸¸øçŸÆ/^¼ÚÛ"¸—e.Øø“4®ˆl6ûÖ­[T*uáÂ…™™™UUU^^^óæÍc2™¸ð[[[kii=yò/þøñã±cÇŠG‚eee%''ÿòË/yyyÒMhhhX·nÝwß}ççç—””´zõêÖÖVü¯¸¸¸mÛ¶á7w¡ØØØ“'OîÚµ+66v ý&ŸôÎÂð;G„PUU•]?ÛÛ™ßyKlBÎD5¡„Äær¹"‘(--Åb­\¹2""‚ÅbÙÙÙÕÔÔàJJJ¾þúkr…Ò+É}¶k‡Aûöí“s,Èè®FðUIDAT‰ÿ*µ¾¾¾ÏÀúl”ÄIPBddä÷ß/^RSSù|¾Ì&+¼ŸGAÚË=gÎü¡4¥¦“ü Ò„BaPPжmÛX,–Íùóç ‚Ø±cN?wî\cccnnnŸ_…²Ùl …’››‹ËŽ*..^¶lY}}=ÞJo× e.H¼y¡RæëuëÖEGGãr¼õÖ[ü1AiiiFFFøR“É422b0dKß{ï½ÀÀÀ'Ož”——3Œ-[¶ôURRÒäÉ“¹\®xD"QxxøÜ¹s…B!A<ÏÍÍ-66ÿ÷Õ«WS¦L ¸xñâü±yóf„Nïééh¿áfJÿœ¯·…×P]]}çÎgggˆã‹èëäI„@  ÓéÖÖÖ‡&'*'…|ÇÿÓO?¹»»ã_Gœ={ÖÖÖ–Åbñx¼¯¾újÒ¤IFFF³gÏ>qâ„üó#Aÿüç?ÍÍÍÇ÷óÏ?ÇÆÆš™™á/×±ÞJ¬ô‚t:]f¯I¼nooÿàƒÌÌÌ,,,âããñð½¶¶6†Gtvvêèèlܸ‘Ü‹ÅZ¾|¹………­­íßÿþw.—Û[T\.wòäÉ›7oo‘#GtuuÅ¿þ¿sç•JMOOÇr8œõë×»ººêéé9::~öÙgsçÎ]ºté€úl¾Ì·t2w^[JJÊ„ ,--ÿö·¿q¹Ü>ÛËçóçÌ™cdd$§“‰7SVb½mWe~å$6A§NrttÔÑÑ™:ujff&AÝÝ݉‰‰vvv&&&±±±ä÷ÖýÏä>ó¿Ï¨Ä3gܸqqqqâ5C:7z‹yûöí¦¦¦ŽŽŽøúªœÑ(‰$$¢¦¦&::ÚÎÎÎØØxæÌ™dé’n2Nî~VTÚ+­ðËÌyBVÛÅ3¼·n”ÙcýÉv'‘ÒY$¾ë%Ž;‰ÅåŸxɽ–ŸŸú׿þ…çâñ%ÿä‰%$$èëë···“S”“N„¬Œ¢bÇ|sssee¥¿¿¿ÌBÒ=’¾;èÇ+..Æ?\>JØ;271ˆíâKë cˆñ(j=Ø@E¥½¢ÎÃùùùÓ¦M£ÓéC\PˆÏ>û¬¦¦æøñãýœ_Qé„dem@˃a¥££3ÜU€2uww744:tèäÉ“ªŽå5xHÆ3fÌêÕ«•¿ %l‚´2ݾ}ÛÛÛûÃ?ÐUœaM§a¹Ô€B¨Û¥~”.õÅ’Î(øÄh(ü€Âh(ü€Âh¿ãohhP~HëîîÖÓÓSÔª ±ÁˆÀápµª¶¶6|Ó{ É¤3JFᯪªRJ0ôMQ…¿£££££C!«`¤€7»@& ÜÐð? A ð ? A ðäÿ GÜ*,;5IEND®B`‚XQilla-2.3.0/docs/simple-api/classModuleResolver-members.html0000644000151400015140000000466711653571063021152 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ModuleResolver Member List

This is the complete list of members for ModuleResolver, including all inherited members.
resolveModuleLocation(VectorOfStrings *result, const XMLCh *nsUri, const StaticContext *context)=0ModuleResolver [pure virtual]
~ModuleResolver()ModuleResolver [inline, virtual]
XQilla-2.3.0/docs/simple-api/classxercesc_1_1InputSource__inherit__graph.map0000644000151400015140000000167711653571064024061 00000000000000 XQilla-2.3.0/docs/simple-api/classContentSequenceFilter-members.html0000644000151400015140000001575011653571063022447 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ContentSequenceFilter Member List

This is the complete list of members for ContentSequenceFilter, including all inherited members.
atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)ContentSequenceFilter [virtual]
attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)ContentSequenceFilter [virtual]
commentEvent(const XMLCh *value)ContentSequenceFilter [virtual]
ContentSequenceFilter(EventHandler *next)ContentSequenceFilter
endDocumentEvent()ContentSequenceFilter [virtual]
endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName)EventFilter [inline, virtual]
endEvent()ContentSequenceFilter [virtual]
EventFilter(EventHandler *next)EventFilter [inline]
namespaceEvent(const XMLCh *prefix, const XMLCh *uri)ContentSequenceFilter [virtual]
next_EventFilter [protected]
piEvent(const XMLCh *target, const XMLCh *value)ContentSequenceFilter [virtual]
setLocationInfo(const LocationInfo *location)EventFilter [inline, virtual]
setNextEventHandler(EventHandler *next)EventFilter [inline]
startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding)ContentSequenceFilter [virtual]
startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname)ContentSequenceFilter [virtual]
textEvent(const XMLCh *value)ContentSequenceFilter [virtual]
textEvent(const XMLCh *chars, unsigned int length)ContentSequenceFilter [virtual]
~EventHandler()EventHandler [inline, virtual]
XQilla-2.3.0/docs/simple-api/classDynamicContext__inherit__graph.map0000644000151400015140000000057511653571064022511 00000000000000 XQilla-2.3.0/docs/simple-api/inherit_graph_33.md50000644000151400015140000000004011653571063016353 0000000000000018359680333341a8c15cbd471e2f2121XQilla-2.3.0/docs/simple-api/XPath2MemoryManager_8hpp_source.html0000644000151400015140000013164011653571063021626 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

XPath2MemoryManager.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef __XPATH2MEMORYMANAGER_HPP
00021 #define __XPATH2MEMORYMANAGER_HPP
00022 
00023 #include <algorithm>
00024 #include <assert.h>
00025 #include <cstddef>
00026 
00027 #include <xqilla/framework/XQillaExport.hpp>
00028 
00029 #include <xercesc/framework/MemoryManager.hpp>
00030 
00031 XERCES_CPP_NAMESPACE_BEGIN
00032 class DOMNode;
00033 class XMLGrammarPool;
00034 XERCES_CPP_NAMESPACE_END
00035 
00036 class VariableStore;
00037 class VariableTypeStore;
00038 class DynamicContext;
00039 class Collation;
00040 class CollationHelper;
00041 class XQillaNSResolver;
00042 class ATDecimalOrDerived;
00043 class StringPool;
00044 
00045 class XQILLA_API XPath2MemoryManager : public XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager
00046 {
00047 public:
00048   virtual ~XPath2MemoryManager() {}
00049 
00051   virtual void reset() = 0;
00052   
00054   virtual const XMLCh* getPooledString(const XMLCh *src) = 0;
00055   virtual const XMLCh* getPooledString(const XMLCh *src, unsigned int length) = 0;
00056   virtual const XMLCh* getPooledString(const char *src) = 0;
00057 
00058   // from MemoryManager
00059 #if _XERCES_VERSION >= 30000
00060   virtual void* allocate(XMLSize_t numElements) = 0;
00061 #else
00062   virtual void* allocate(size_t numElements) = 0;       
00063 #endif  
00064   virtual void deallocate(void* p) = 0;
00065   
00067   virtual Collation* createCollation(CollationHelper* helper) = 0;
00068 
00070   virtual XQillaNSResolver* createNSResolver(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *resolverNode) = 0;
00071   
00073   virtual VariableTypeStore* createVariableTypeStore() = 0;
00074 
00076   virtual ATDecimalOrDerived* createInteger(int value) = 0;
00077 
00078   virtual void dumpStatistics() const = 0;
00079   virtual size_t getAllocatedObjectCount() const = 0;
00080   virtual size_t getTotalAllocatedMemory() const = 0;
00081   virtual const StringPool *getStringPool() const = 0;
00082 };//XPath2MemoryManager
00083 
00084 template <class _Tp>
00085 class XQillaAllocator
00086 {
00087 public:
00088   typedef size_t size_type;
00089   typedef ptrdiff_t difference_type;
00090   typedef _Tp* pointer;
00091   typedef const _Tp* const_pointer;
00092   typedef _Tp& reference;
00093   typedef const _Tp& const_reference;
00094   typedef _Tp value_type;
00095 
00096   template <class _Tp1> struct rebind {
00097     typedef XQillaAllocator<_Tp1> other;
00098   };
00099 
00100   // Should never be used - for compiling on AIX only
00101   XQillaAllocator()
00102   {
00103     assert(false);
00104   }
00105 
00106   XQillaAllocator(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr)
00107   {
00108     _memMgr=memMgr;
00109   }
00110 
00111   // define a copy constructor, because we don't want to copy the singleton object
00112   XQillaAllocator(const XQillaAllocator<_Tp>& o)
00113   {
00114     _memMgr=o._memMgr;
00115   }
00116 #if _MSC_VER >= 1500
00117   // Needed for Visual Studio 2008      
00118   template<class _Tp1> XQillaAllocator(const XQillaAllocator<_Tp1>& o)
00119   {
00120     _memMgr = o._memMgr;
00121   }
00122 #endif
00123   pointer allocate(size_t _n, const void* = 0)
00124   {
00125     if(_n==1)
00126       return (pointer)_singleton;
00127     //std::cout << "XQillaAllocator::allocate(" << _n << ")" << std::endl;
00128     if(_memMgr)
00129       return _n != 0 ? static_cast<pointer>(_memMgr->allocate(_n*sizeof(_Tp))) : 0;
00130     else
00131       return _n != 0 ? static_cast<pointer>(malloc(_n*sizeof(_Tp))) : 0;        
00132   }
00133 
00134   void deallocate(void* _p, size_t _n)
00135   {
00136     //std::cout << "XQillaAllocator::deallocate(" << _n << ")" << std::endl;
00137     if(_p) {
00138       if(_p!=_singleton) {
00139         if(_memMgr)
00140           _memMgr->deallocate(_p);
00141         else
00142           free(_p);
00143       }
00144   }
00145   }
00146 
00147   void construct(pointer _p, const_reference _v)
00148   {
00149     new ((void *)_p) _Tp(_v); 
00150   }
00151 
00152   void destroy(pointer _p)
00153   {
00154     _p->~_Tp();
00155   }
00156 
00157   size_type max_size() const
00158   {
00159     return 0xFFFFFFFF;
00160   }
00161     
00162   size_type max_size(size_type) const
00163   {
00164     return 0xFFFFFFFF;
00165   }
00166 
00167   bool operator==(const XQillaAllocator<_Tp>& o) const
00168   {
00169     return &o == this;
00170   }
00171 
00172   bool operator!=(const XQillaAllocator<_Tp>& o) const
00173   {
00174     return &o != this;
00175   }
00176 
00177   bool operator!=(XQillaAllocator<_Tp>& o)
00178   {
00179     return _memMgr != o._memMgr;
00180   }
00181 
00182   char _singleton[sizeof(_Tp)];
00183   XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* _memMgr;
00184 };
00185 
00186 // ---------------------------------------------------------------------------
00187 //
00188 //  Operator new.  Global overloaded version, lets any object be allocated on
00189 //                 the heap owned by a MemoryManager.
00190 //
00191 // ---------------------------------------------------------------------------
00192 inline void * operator new(size_t amt, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr)
00193 {
00194     void *p = memMgr->allocate(amt);
00195     return p;
00196 }
00197 
00198 inline void operator delete(void* ptr, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr)
00199 {
00200   memMgr->deallocate(ptr);
00201 }
00202 
00203 template<class TYPE>
00204 class AutoRelease
00205 {
00206 public:
00207   AutoRelease(TYPE *p)
00208     : p_(p) {}
00209   ~AutoRelease()
00210   {
00211     if(p_ != 0)
00212       p_->release();
00213   }
00214 
00215   TYPE &operator*() const
00216   {
00217     return *p_;
00218   }
00219   TYPE *operator->() const
00220   {
00221     return p_;
00222   }
00223   operator TYPE*() const
00224   {
00225     return p_;
00226   }
00227   TYPE *get() const
00228   {
00229     return p_;
00230   }
00231   TYPE *adopt()
00232   {
00233     TYPE *tmp = p_;
00234     p_ = 0;
00235     return tmp;
00236   }
00237   TYPE *swap(TYPE *p)
00238   {
00239     TYPE *tmp = p_;
00240     p_ = p;
00241     return tmp;
00242   }
00243   void set(TYPE *p)
00244   {
00245     if(p_ != 0)
00246       p_->release();
00247     p_ = p;
00248   }
00249 
00250 private:
00251   AutoRelease(const AutoRelease<TYPE> &);
00252   AutoRelease<TYPE> &operator=(const AutoRelease<TYPE> &);
00253 
00254   TYPE *p_;
00255 };
00256 
00257 template<class TYPE>
00258 class AutoDelete
00259 {
00260 public:
00261   AutoDelete(TYPE *p)
00262     : p_(p) {}
00263   ~AutoDelete()
00264   {
00265     delete p_;
00266   }
00267 
00268   TYPE &operator*() const
00269   {
00270     return *p_;
00271   }
00272   TYPE *operator->() const
00273   {
00274     return p_;
00275   }
00276   operator TYPE*() const
00277   {
00278     return p_;
00279   }
00280   TYPE *get() const
00281   {
00282     return p_;
00283   }
00284   TYPE *adopt()
00285   {
00286     TYPE *tmp = p_;
00287     p_ = 0;
00288     return tmp;
00289   }
00290   TYPE *swap(TYPE *p)
00291   {
00292     TYPE *tmp = p_;
00293     p_ = p;
00294     return tmp;
00295   }
00296   void set(TYPE *p)
00297   {
00298     delete p_;
00299     p_ = p;
00300   }
00301 
00302 private:
00303   AutoDelete(const AutoDelete<TYPE> &);
00304   AutoDelete<TYPE> &operator=(const AutoDelete<TYPE> &);
00305 
00306   TYPE *p_;
00307 };
00308 
00309 template<class TYPE>
00310 class AutoDeleteArray
00311 {
00312 public:
00313   AutoDeleteArray(TYPE *p)
00314     : p_(p) {}
00315   ~AutoDeleteArray()
00316   {
00317     delete [] p_;
00318   }
00319 
00320   TYPE &operator*() const
00321   {
00322     return *p_;
00323   }
00324   TYPE *operator->() const
00325   {
00326     return p_;
00327   }
00328   operator TYPE*() const
00329   {
00330     return p_;
00331   }
00332   TYPE *get() const
00333   {
00334     return p_;
00335   }
00336   TYPE *adopt()
00337   {
00338     TYPE *tmp = p_;
00339     p_ = 0;
00340     return tmp;
00341   }
00342   TYPE *swap(TYPE *p)
00343   {
00344     TYPE *tmp = p_;
00345     p_ = p;
00346     return tmp;
00347   }
00348   void set(TYPE *p)
00349   {
00350     delete [] p_;
00351     p_ = p;
00352   }
00353 
00354 private:
00355   AutoDeleteArray(const AutoDeleteArray<TYPE> &);
00356   AutoDeleteArray<TYPE> &operator=(const AutoDeleteArray<TYPE> &);
00357 
00358   TYPE *p_;
00359 };
00360 
00361 template<class TYPE>
00362 class AutoDeallocate
00363 {
00364 public:
00365   AutoDeallocate(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mmgr, size_t size = sizeof(TYPE))
00366     : p_(0), mmgr_(mmgr) {
00367     p_ = (TYPE*)mmgr_->allocate(size);
00368   }
00369   AutoDeallocate(TYPE *p, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mmgr)
00370     : p_(p), mmgr_(mmgr) {}
00371   ~AutoDeallocate()
00372   {
00373     if(p_ != 0)
00374       mmgr_->deallocate((void*)p_);
00375   }
00376 
00377   TYPE &operator*() const
00378   {
00379     return *p_;
00380   }
00381   TYPE *operator->() const
00382   {
00383     return p_;
00384   }
00385   operator TYPE*() const
00386   {
00387     return p_;
00388   }
00389   TYPE *get() const
00390   {
00391     return p_;
00392   }
00393   TYPE *adopt()
00394   {
00395     TYPE *tmp = p_;
00396     p_ = 0;
00397     return tmp;
00398   }
00399   TYPE *swap(TYPE *p)
00400   {
00401     TYPE *tmp = p_;
00402     p_ = p;
00403     return tmp;
00404   }
00405   void set(TYPE *p)
00406   {
00407     if(p_ != 0)
00408       mmgr_->deallocate((void*)p_);
00409     p_ = p;
00410   }
00411 
00412 private:
00413   AutoDeallocate(const AutoDeallocate<TYPE> &);
00414   AutoDeallocate<TYPE> &operator=(const AutoDeallocate<TYPE> &);
00415 
00416   TYPE *p_;
00417   XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mmgr_;
00418 };
00419 
00420 #endif //__XPATH2MEMORYMANAGER_HPP
00421 
XQilla-2.3.0/docs/simple-api/ATNotationOrDerived_8hpp_source.html0000644000151400015140000002043511653571063021657 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATNotationOrDerived.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _ATNOTATIONORDERIVED_HPP
00021 #define _ATNOTATIONORDERIVED_HPP
00022 
00023 #include <xercesc/util/XercesDefs.hpp>
00024 #include <xqilla/framework/XQillaExport.hpp>
00025 #include <xqilla/items/AnyAtomicType.hpp>
00026 
00027 class DynamicContext;
00028 
00029 class XQILLA_API ATNotationOrDerived : public AnyAtomicType
00030 {
00031 public:
00032   /* Get the name of the primitive type (basic type) of this type
00033    * (ie "decimal" for xs:decimal) */
00034   virtual const XMLCh* getPrimitiveTypeName() const = 0;
00035 
00036   /* Get the namespace URI for this type */
00037   virtual const XMLCh* getTypeURI() const = 0;
00038 
00039   /* Get the name of this type  (ie "integer" for xs:integer) */
00040   virtual const XMLCh* getTypeName() const = 0;
00041 
00042   /* returns the XMLCh* (canonical) representation of this type */
00043   virtual const XMLCh* asString(const DynamicContext* context) const = 0;
00044 
00045   /* returns true if the two objects' URI are equal (string comparison)
00046    * false otherwise */
00047   virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0;
00048 
00051   virtual int compare(const ATNotationOrDerived::Ptr &other, const DynamicContext *context) const = 0;
00052  
00053   virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0;
00054 };
00055 
00056 #endif //  _ATNOTATIONORDERIVED_HPP
XQilla-2.3.0/docs/simple-api/functions_0x6e.html0000644000151400015140000002436711653571063016376 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- n -

XQilla-2.3.0/docs/simple-api/ATTimeOrDerived_8hpp__incl.map0000644000151400015140000000003511653571064020352 00000000000000 XQilla-2.3.0/docs/simple-api/XMLResourceIdentifier_8hpp.html0000644000151400015140000000455611653571063020634 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

XMLResourceIdentifier.hpp File Reference

XQilla-2.3.0/docs/simple-api/functions_func_0x74.html0000644000151400015140000001663411653571063017327 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
 

- t -

XQilla-2.3.0/docs/simple-api/inherit_graph_42.map0000644000151400015140000000044711653571064016457 00000000000000 XQilla-2.3.0/docs/simple-api/classUpdateFactory-members.html0000644000151400015140000002151111653571063020740 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

UpdateFactory Member List

This is the complete list of members for UpdateFactory, including all inherited members.
applyDelete(const PendingUpdate &update, DynamicContext *context)=0UpdateFactory [pure virtual]
applyInsertAfter(const PendingUpdate &update, DynamicContext *context)=0UpdateFactory [pure virtual]
applyInsertAsFirst(const PendingUpdate &update, DynamicContext *context)=0UpdateFactory [pure virtual]
applyInsertAsLast(const PendingUpdate &update, DynamicContext *context)=0UpdateFactory [pure virtual]
applyInsertAttributes(const PendingUpdate &update, DynamicContext *context)=0UpdateFactory [pure virtual]
applyInsertBefore(const PendingUpdate &update, DynamicContext *context)=0UpdateFactory [pure virtual]
applyInsertInto(const PendingUpdate &update, DynamicContext *context)=0UpdateFactory [pure virtual]
applyPut(const PendingUpdate &update, DynamicContext *context)=0UpdateFactory [pure virtual]
applyRename(const PendingUpdate &update, DynamicContext *context)=0UpdateFactory [pure virtual]
applyReplaceAttribute(const PendingUpdate &update, DynamicContext *context)=0UpdateFactory [pure virtual]
applyReplaceElementContent(const PendingUpdate &update, DynamicContext *context)=0UpdateFactory [pure virtual]
applyReplaceNode(const PendingUpdate &update, DynamicContext *context)=0UpdateFactory [pure virtual]
applyReplaceValue(const PendingUpdate &update, DynamicContext *context)=0UpdateFactory [pure virtual]
applyUpdates(const PendingUpdateList &pul, DynamicContext *context, DocumentCache::ValidationMode valMode)UpdateFactory [virtual]
checkUpdates(const PendingUpdateList &pul, DynamicContext *context, DocumentCache::ValidationMode valMode)UpdateFactory [inline, virtual]
completeUpdate(DynamicContext *context)=0UpdateFactory [pure virtual]
operator delete(void *p)xercesc::XMemory
operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
operator delete(void *p, void *ptr)xercesc::XMemory
operator new(size_t size)xercesc::XMemory
operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
operator new(size_t size, void *ptr)xercesc::XMemory
valMode_UpdateFactory [protected]
XMemory()xercesc::XMemory [inline, protected]
~UpdateFactory()UpdateFactory [inline, virtual]
XQilla-2.3.0/docs/simple-api/classSequence__inherit__graph.md50000644000151400015140000000004011653571063021222 00000000000000d5d44a7bafeea624841fd6b03c796da8XQilla-2.3.0/docs/simple-api/SchemaValidatorFilter_8hpp__incl.png0000644000151400015140000006250511653571064021660 00000000000000‰PNG  IHDRxu°[SbKGDÿÿÿ ½§“ IDATxœìÝwœ\u½?þ3½Ÿéu7Û’ÝM1‘Є„¢ÂDš¢ô¸ A½¿Ë¹z/\ŒJ‰o(zA©’È¥ˆEªA HÙMÙ¾Ó{ï¿?Þ»ŸœÌ–l6»;[^ÏGû8svföÌdÊ9çõù¼ß¢r¹ÌÀáW{f*-ã„ `œ´Œ“´Ú‡çÌ3Ϭö&À4²eË–joÀœ&*—ËÕÞ8 "‘hñâÅ6›­ÚUæóùvî܉ýy€êÂŒ€™çâ‹/>ýôÓ«½Peo½õÖ=÷ÜSí­˜ëУ`œ´Œ‚€qBÐ0NZÆ A À,”N§7lØp饗ž}öÙW\qÅO<‘ËåF¹þÊ•+ûúú&ic6mÚtÑE•Ëe¶¦\._rÉ%/¾øâ°×ïëë[¹r¥pa¤+¹•Ã9ä¼çªNZí €‰÷ÐCy½Þÿøÿ°Z­ÝÝÝ=ôP<¿õÖ[«²1§Ÿ~úÃ?üÙgŸ-]º”ÖìÙ³Çï÷ŸvÚi£ßP«Õ^z饇õ·Ün÷ 7Üð‡?üaì7Y¿~½Ó鮑H$ww sf´ÌBï¾ûîµ×^ÛÜÜl0–-[vë­·¾÷Þ{ÕÚ£ÑxÌ1ǼõÖ[lÍÛo¿½lÙ2³Ù<ú õzýu×]wX«T*Åb±Ãº‰Á`0lèßÇÝÀ `R«Õ›7ofÙÀ²eËž}öYŽãŠÅâOëõziý /¼ðöÛoß{ï½?ÿùÏ{zzžzê)v“­[·nܸñÎ;ï|ôÑG)¡yá…Ün÷¯~õ«Ÿþô§Û¶m{â‰'èš}ôц ®»îº7~ðÁ=öØ7Þøä“OÆb±T*õÿþßÿknn~ê©§n¼ñÆ7F"ŽãV¬X‹Å>ûì3Žãº»»{zzN=õTŽãFº~…ßÿþ÷Ï>ûìu×]÷ä“O^yå•<òÈH·ýå/ÉqëþòàƒúýþGyä¿ÿû¿ÿþ÷¿?ýôÓ´þ¹çžûþ÷¿ßÜÜÌq\&“I ‹Å¡Pq·#=3»úÜr·yóæ{ï½÷¿þë¿¶nÝʦaWÀt† `:öØcŸ}öÙ|péÒ¥¯¿þúe—]öæ›or÷Ê+¯|ûÛßnjjjllüÞ÷¾·dÉv“K.¹D­VŸrÊ)ÇÅãqŽã^{íµÛn»Íf³555]ýõ~ø¡ðšguÇq—]v™Z­>çœsèVr¹ü±Ç»õÖ[Íf³Ífã8.™Lr§ÕjO<ñÄ¿üå/ǽóÎ;Gu”Ñhä8n¤ëWx饗n¸á†+V˜ÍæN8êzò¶…BáÏþóš5kœNgSSÓ·¾õ­-[¶Ð¯®»îºåË—+•JŽã®¹æš/ °‡9Š‘žáÝ }n9Ž»ñÆkkk-ZtÍ5×° v%LgÒjoL°L&óþûïŸ~úé‹-Z´hÑ•W^ùë_ÿú‘GYµj•×ë­­­¥«Õ××××׳[QÇ‘HÄÖx<ž /¼]Ôh4´ V«9Ž“J¥Ë´ÐÛÛ»nݺt:]1±ãŒ3Îx衇֬YóöÛoŸwÞy‡¼¾ßï_°`»ØÔÔ4–Û†ÃáR©är¹èbMMßï§åºº:vµ§žzª¦¦Fxþ¾¾‘¶„ŒôÌïVhèsËqû¨««c6ìJ˜Î´Ì6årùÇ?þq]]…"‘è¸ãŽû¿ÿû?ŽãÌf³Çãillä8nïÞ½ûÛß®¸â ºUE Àqœ^¯ÿùÏN!D"‘…B‡üÓÙlö‡?üáøÃ“N:)ŸÏ¿öÚkìW'tÒý÷ßÿÆoìÛ·ævŒ~}!‡Ã±oß¾ùóçÓÅÎÎαÜÖh4ŠÅb·ÛMyR¿Åb¡_±dh|FzfFºÛ¡Ï-Çq½½½”õôôP3ÒJ˜ÎP: `¶Q©TguÖ=÷Üó·¿ýÍívïØ±cÆ «V­â8ÎzôÑG;:::::|ðAÖ»eX+V¬Ø¸q£×ëÝ¿ÿwÞ¹yóæCþé|>_(¤Ri.—£Î%©TŠ~¥P(N9å”õë×/_¾Ü`0òúBÿò/ÿ²aÆ÷Þ{/ }øá‡?þøè·M§ÓÇI¥Ò•+W>ôÐCn·»££ã±Ç[½zõXŸÄáÐÝŽå™yå•W†­&´~ýú¾¾¾Ý»w?úè£gžyæ(+`:ÃŒ€™$ˈD‡Þ…»óÎ;Ÿ|òÉ7öõõÆ•+W^uÕUÇ]~ùå™LfíÚµ™LæÄO¼þúëG¹“«¯¾zýúõ×^{­H$:õÔSG¿2Ñjµ7Þxãüc•JuÙe—­ZµêÎ;ïÜ´iývÕªU[¶lY¹råè×_¿~}ÅÝžþùù|~Æ Á`pþüùwÝu×M7Ý4ìm_xá…¥K—^xá…¯¾ú*Çq·ÝvÛúõëo¸á™LvÆg\~ùåã«Çåp8„w;ô™ Âë¯[·î¨£Žb%ņµzõêÛo¿=“ɬZµŠmXÅÊql*L1Q¹\®ö6Ì …B)™Ì$ÙL&ŸLf ™L¦JeãñL&“O¥rl!‘XˆÅ2Ùl>•Êq—Nïºí¶O?ýôj? §¾¾¾+®¸â/ùË!WŽî­·ÞúÏÿ|èž×ëÕjµ\£Qh4ržWiµJµZ®V+x^9ÑÛ•0£`LR©\6›Å2©T.“É' ñx&™Ìf³…x<“JeÓé|2™M&³™L>‘.d …Òлåy¥R)S©ä<¯R©äJ¥L¯W©T2½^¥Ó©Ôj¹R)Óé”B©”iµ ­VyÜqË8îÄ©`’JO>ùA4šé¦Ó „.:’ç•*•\£Qhµ žW f3 ½^¥V+4¹F£ày6*•|êÀL„ f¹B¡ Æ3™B&“FSÙl!“ÉG" ÑhêP¿Êe³…¡w+‘ˆµZ¥R)ÕëÕJ¥L¡  6o0¨”J™B!ÓëUJ¥ŒâZÃ~¥TÊÆ÷ˆŠÅè‘=%Peæ¼óÎËÊCÊf»~úÓ¯›L“Im4jJ¥r6›Ïdò‘HZø’ŽFÓÂõÑhÚëÑzzÇãéRi˜™îô¾ȅ¯äŠõtQ©”šLZ™L2Îg`¦AÐ3C,–N&³©T.™ÌÆbéd2Ç–i–Óé|&“ÅÒ™ÌÀie:¿<ì}jµ •J®VËu:¥R)§y$õõf¥RF§ŒU* ü§i%jµB¥’Ñ„¥R¦Ñ(¦øI€ÙÁ`0|÷»ßËÊC’Ht_ü á…Bêpèm6ž…”ˆÔÕ™ívž.šÍ:©T\qW¹c4:ð&ba [ïõÆØz &‡n˜B!U*å”D ãFÆ ]O¤N§‹E‡û<T‚˜:Ñh*•Ê%“¹T*$©TŽÖÓÅh4JQ rÐú¡÷&“IÔjªz$§"H<¯ây•ÝÎó¼J¥bõ¸dJå¼D«=P†kêŸq(•Ê@"ˆ»ÝÑ@ îõÆäòyÕÞ(˜. …èöí? ‡“áp2N…ÃÉP( &B¡d8œêê †ÃÝ´^8aE©”£Qm2iL&-͆¡5´àpè-rét‡nñR.—)ø¤°3ÏÄãzÏ&*µG¿ŠFÓÁd²?•ÊF"éT*›Ï‡Þ!.S«<¯Òj”kjµJžWétJFNoa½^¥Õ*µZ…V«Ðh”èFU„ ƪX,ñ± x²~øê[ÃV%ÒëUTzkôjESÿð'O&“÷zc>_Ìï{½Ñ@ Á2Ÿ/$ŠÅÞJ¥Ìfãe2su7¦“²Å¢µX´‡¼½=Yé0ªæõƼÞh__dÇŽ~zÃúýqa$ÃÞ¤z½jp¢ŒŠ.ÒÓn×;z½^=ŽMÏç‹,[M&³ÉdŽ&®Ñr<žI$2‰D6‘ÈøýñX,C¿M$²étnè½Q+#Jet:%Ëi4Ï+u:Ket:Jq”hEA ÀÜRѰäÃaŸa º:óHÕØúY–Œ"Ÿ/ö÷G¼Þ¨×ü7°¦ÂáT.7ðÄÊd—Ë`³ñ‡¾¾Þr MTÊnçívÞhÔÈåRŽãD¢»8î+U}L0ó(•2¥Ro·ëyÍh4åñÄ„yL4š¢Wìöí=tQ˜ÿqç1,€±Ûyv‘*ƒUüu™Lb0¨ †ñ„4ÜÁÑ‘°𣬧'$ìº & …ÒлnÿÐjfÔl©¢Ͱå×`nBÐ0óLlX"“IL&ðd" K*N2ÒüáÉǹ–Œ¢\.û|±H$íóÅ<ž¨Ïóxb‚å¨ð9§&œ,[6ìvžÎJãù„é@¯We† }ÎPÊ=¼ÞØöí½Ñh*J ëƒ ÍcôzµÃÁWt”±Zù±´i{tT±ÙÔ·I8¹‡%1,¶‰FÓ]]Aöá‹¥ËårÅ]ÑéHb„sï†mx^%¡ À¬‚  Êb±L2™I$ÚÄbiZN$.Òr2™‰Ç³±Xšjé íîNMݵZõl§ï‹Žú—ð¼R£QÒ²^¯¢+¨ÕrƒA¥V+d2IUûLQ(”úúÂÂi(¹)ÂfàR©¸¦ÆHg[[§žÚB ý34 ö¾`–cÎÁ Ê…yL4šno÷z½ÑŠ<†ã8Ê#+&İ’.Z,:‰ä°ç” &Ü8ÚrÊiØtŸŠØÆë±x[8_Mh„ª‰jáDÀŠl›Mh€i;ë#“ÉS/X,gS©¬àb†e',)¡ì$ËTÜ5i§ÎÏ<¯Ôh:ÒåÒk4vƒa ù³N§T«å<¯Òhƒ9 †H‘X,ãvG„SR„iJ4šb×äy¥Ãa ³½--:L½+~|*ÆM«=nåÊÿnl´65Y-ÖÆF‹Ói¨övÀò˜ÖVÇ(W«h!3˜b\¤É%O4K oE)+SÆòaG“I;!Yò8&Ћ¥D"4žañ9û H$²ôÛîîP"ÑŸLf#‘t2™ZßL*k4J½^E_:’µ¢áùåÁ• ½^M¢L ÑÐ)ðs\4šŠÇ³Â>ÌCϋѯèÜÙHçŨë2;)F™))ÑjN„QŽBëõz•V«DÑÿÉP,–¨·|E‹”H$UQÝK"[,Zá4vwúT÷‰DMM 5W>¯.•ä:]Wµ·h4å²$“1«T¾joȘd2F™,%‘d«½!c‡{{swß½¡£#°¿¿³3@]âÕjyCƒ¥©É* `¬V]µ·wTä1ƒoáÊŽ2>_\x˜Ãf'ÄTt”q:õÓgÊ%÷Éd6M±œž¾Œb±/&Šðc±4å÷ñxfheH…BJé Ï«x^¥ÓÑ7ÎÀ} Q63x5%b{€q@гY:‹Å2t*ÏP@BˉÄ@%®ÁSTÙÁ••SL8ŽãyÕ`20ׄ.êtJŠRôzv…“V8W5ʼnl__¸¢¨×°SR4EMQ8 …šÏOç))±Xº­ÍCÿÚÛ=[·îÊå$ÇÉåE&¿xqpz¾ÖŠE‘Û­íëÓ–JÜ1Çøäòâ¡oSmlK¥¤v{ª¶6®T΀ æ8î¹çžcËÑhª«+ØÕìîvuÛÚOiÊŒkíóÅÛÚÜ4U…N‚G£)‘HTWgjiq,[V;ýc¡™±QܲnÝ÷íó­ZµxíÚ/~îs5ÕÞ¨ Fé ½ähúËÞ½ÞT*Çqœ\.mh°Ð”—úz3¥/õõæjorÕd2yJ\B¡D(” …R¡P‚E2Á`"LTä1R©Øh<½X,Z“Ik2Q6£¥xÆdÒ¨Õò*>®#4öx†­ ÅâAñ e3J¥L¡ g)•2¥RZ1ˆVZ,:|•Àtƒ ŽÔHZF¨[’ª("/‰x^5ÒùáJ:Ãê–Tëñ¸‹¥@ APüþ¸Û âO4 å„0J1›µ‡ÞjÕÙl¼ÝÎ[,:§So± ¬œYQŠP ص«¤X¥¥ÅÑÒbomu46ZgÜTªÙ±•Jå7ßÜù“Ÿ¼¶sgÿªU‹ï¸ãœ¥Kk«½Q“+MÑË’ko÷d2yŽãx^ÕÐ`a¡K}½¹µÕi³Í†¾/(“ɳx¤zeÃöa“ðhªGÅE«•Ÿ5ÞX3Š^„OÔH™ME…7N0ufh³aW*•²™5Çf-P©\.ÇbéH$=8Ñ$¦ÙÁ¿ÌàÕÒg@d2 à¢Î%ƒšçU4õäàUîâùvBFR(”(;¡Åïy<1Vò+ˆ³±ÌjµÜé4X­:»§Ÿ6Ï2‹E[Ý2QB¡äŽ}± ÇqÔ$ƒÅ* Öý.˜}‹Å-ëÖýñ³ÏúV¯^|ûíg/[6¯Ú5¥¼Þ(E/¬øØþý>*¥×«Ù”—™›N½h4åñÄX¢àóÅ„£Ñ´Ç¡Î:Œ^¯¦è…ål2ߌhs$‰l2y •š°ÝZ2™LŠÍ²õ±XºâNôz5ÏT ¥‰°<¯ÔéT<¯¤_ÑÞ­ÑéTZíìù€)€ `–+K@|Øþ·ÃÍA©œnÂqœL&1™4ÓMh|hE¡Ì5™ †4G‰ Û(E*×Ô+ª{Mó†óG.‘ÈîÜÙ×Þî¥d¥½ÝãõÆ8޳Ùt­­NªÖÚêhh°Ìšó¡³;b*—Ëo¼±ó§?}ýÓO{W¯^üÝïžýùÏÏ­¸Eˆ ýÑ”šõÒÞîéí S’ÊÒê'T_ož?ß6[_“Gؾž²já7Í›©èc_Ñ"…ª)V\œ;mQõH³Éd† ¡† %¡5ô[ᡱX,ÒéTTtTÀPZÃŽÐZ˜Ñ…àà!h˜‘Òé Hb±aªu±‹ñxšjî ±>ð:J¯?0Ë„Vò¼Ê`P ¯0GNÊ7\Ïùƒûϧæx”"”Jå>û¬wh¬bµê.tRkqã?+Ÿ¹±QÜò³Ÿ½þÉ'=+V´üà_>꨺joÔt!L_èMÑÝìé Ñ”GJ_èAÅÇ,°ãÄô‘£<¦¢:‹ÃébEg–ǰ$†ÆI/ÎÙ>(Â|kHíÓCOQ(¤J¥|h5Ô‘jšÍÜ `ÖCÐ0]$Yv‹¥…GòCCÖÊ‚°“&<¯¢ƒy:¼§Ú\Â…~ΚRï0¥RÙïS”2lÏù9¥¥Ó¹O?&V1›µ‹»f}¬"Ä"•J¾fÍêK/=a.D,Þy§ýÞ{_ùç?»W¬hùþ÷¿¼|9â–áQúBoV|¬»;DÇ z½šÞ5¬õKK‹Ó"'\2™ ‡S@<J†BÉp8I Á`B¸FƨTr“Ic6kÍfɤ5™4&“ÆfÓѲ٬µX´³ffÞ9†¦MÅ$$npn¤YÂÔ N©”!›˜æ´L–±´ˆiDäHÕºF Y­ÇÓÕ‹)J ‡S,¨Óh55F6ŠyŽG)B™LžuUio÷lßÞC±ŠF£X¼ØÕÚê`ÉŠÝ®¯öÆND,Þy§ý¾û^ùøãî+Z¾÷½/}t}µ·hfÈå šòÂÒ—®® 78UŽB—ÁÖ/ŽùómRé\œ]1Å"‘T(” …¡P2Nƒ –Ä„B‰`0ĉ,»¾L&a¹‹Õª,ë(˜¡‹U|DÓ3™ÌÀD™aw……^+&$q‚á5C§È°Eú­4›uxL6-‡'ÏD"©H$„(Ô¾âP™æT|ÆRQoaR¢×«,Ó0\FQ,–z{à ʰUûu:¥Ói (Ån×. ,#¥#Ùl¡­ÍÍb•övO__¸P(©Õò%Kjæl¬"„ˆeï¼Ó~ÿý¯~ôQ×qÇ5Þyç—N>yAµ·hFŠÅÒºtuÛÚÜ>_œœ]ÇÒ—–GK‹£¶Ö87k[UÝÐbeì;ˆ.ºÝ‘x<î?l¥2ú¢Ý§SÉ1£«˜43J¿=šCãóÅ+vA7›™³µãÆ A Çq\,–‰D’ápj0D¡åÀÅHdàb¡pРBjgÂV‡^ÄâÆ®P(õõUF)l9M±kò¼Òá@”rr¹ÂîÝÃÄ**•üsŸC¬R Ë}øáþŸüäµ÷ÞÛ{Üqk×~ñ”Sš«½E³A4šbS^è=ÛÑá§“ø,}¡7,M™7τژÓ „­b*. Ãèõ*šU9´mŒÍÆ‹DøÏ“X,§?3±X:ÏPc?Z^G8Q‰¨TržWÒ!6Nˆ:ü±5ì"ÊÒpZ`v‹F)2I F&IÁ²p}JX“A, jƒAm4ª µÁ 9øâAË8æ‡q£Öc‰RØÉ&D)ãP,–öîõQ BV::üù|Q©”µ´ tU¡ò55FWBÄ2~¸ݺ?¾ûîžãŽk\»öœSNi©öÍB,}¡7uWWpß>_2™å8N.—:zzG³âcuu&|YOCVû„¥Ùt™ŠªY#…1‹V+ÓýãP*•ãñt$’f‘ÌÁ?3Ô;3Ñhº¢æ-ÇqíÙOê (\Éó*žWVå‘L-0ÃD£)'v¸]OD"‘ͦK˃A£PH«øa6I&³½½avÎh¤(…^ŸC6’QÊØ•Jå={¼Cc¹\ºp¡±Ê!b9B~¸ݺ×ß}·ý¸ão¹eÕ™g.©öÍ~”¾Ð¬*>¶g7Îq§PHëë-­­Añ1ÌW›1*vü|¾»8´Z&784öîØ×¨0ŒAQ¬ ‘ËØœ˜X,‰¤(Œ¡3TAWx1“É o.‹†‹ah~Œzh`£VË«õHÆA LétŽ®RçUªÜ%œt ïÞJ*N1Ñ<éDÖFµÁ ÁÐ9˜ ‰D¶¯/LµPèì`9ÊÒ>±XdµŽ¥ Þ·‘b‰D<¾Ê-[6¯¥ÅárÐ÷h,*"–Ë.;§·ÆíÃ÷ÿâÞ²eâ–jñz£4å…µ~io÷Ð _½^ͦ¼Pô²p¡ » 3Ô!ÛÆx<‘Xì ¶1ƒ¹‹Z¯?Ð0†e3&“_®¢Ó •ÉèW•ÂÉLD8¥‰þã”J™B!và”Ù¬ÃX ˜bZ`ÒåóEJPÂád0˜“¡P"NÑÏ@  %Ãá ;%R©ØdÒŒR³‹bƒA­ÓáœL®X,ãvGŽ0J15r9¢”#U.—»»C«´µy¶oïíì är±X´~6TÌ IDAT`MU±Ól•¦&+Α.±¨Õò[nAÄ2aþþ÷ŽõëßܲeDZÇ6®Yƒ¸¥Ê¨ý….¬õ˾}>:¥+L_h\S“M«Åt®¯T*‡BÉP(Azüþ-‡BÉ@ AC|B¡›£PHM&­Ù¬±Zuf³ÖdÒX,:«Ug2iL&­ÕªµXtø„œl#3k²Ù|&“¶ü!Cƒ™ŠéìJ¥L¡ÒJ€#‡ Æ/K»ÝQá¡NÅøÁŠ>Cëw ‡¢xT ½’¥H$âÚZ£ÍƳò#Â(£_'\E¬ÒÞîíìôÇbÄ*ËøÇ?:~øÍ-[vsLí·®^½z1º†LÔ1‹¥/ô±ÓÛ®H_è3§¾Þ<¾ Åôf¥X,ÄYã÷Çi„P0˜ðùb4Tˆ…1J¥ÌlÖÚlIŒÙ¬µZyZ°X´”Ê òçTc0Cs¹Ê3‡ fp¨£CÐÃÈç‹¡PBX¡¢ ÃÐ&(¬6;q8xV“‡%P]¥RÙïSÊTúû#~¬¿?Äû6äy*㮳Ûõ6›Ž2‡Coµê=Î>O*v~s0V Äbi‘HTWg¢@…ê€56Z0=h¢ b™b}ÔõÐC[ÞxcçâÅ®[o]}GÜ2m±ô¥­ÍÓÞî¡é/==¡R©Ìqœ^¯¦)/¬øXs³]¥ÂÛgöËå áp’ÎݳŽkÂäŠ2eÃöŒa ƒÊfãñ90õ(•¶jÙÐ`¦¢{0ƒ±8s‚€9'—+ –Mˆ³ú]¡ÐÀx½p8IƒøØá„X,25F£ÚdÒj£QC÷èŸp}u@$’òzcnwÄç‹÷÷‡ýþxÄ狹ÝÑ@ ^( Tú¦(Ånçé§ÝÎÛl?=ŸNŸ/ÞÖæ¦3˜”¬D£©ŠX¥µÕÑÐ`Eׄɀˆ¥ŠvîìðÁ-/¿üÉ¢EÎÛn;qË ’ËÜî(E¬øXwwˆ©ìvž¦¼°ô¥µÕ‰!&s›ZASc+æ|Óh¶§-—KÆóõlÊlEc·ë«ûˆ`Øé2Tµlh0sÈ3ªeh00k h˜UŠÅ•5À@¹° &‚ÁD gƒìD"‘Ѩ6™4F#ýS³Òœ þJ@0”Je¿?FƒF½ÞXWWf¨°ñ¤tµŠ^)õõfVìËáàõzuuÅœå÷ÇwﮌU8޳ÛyjV?«Xx^Uíå±L»võ?ðÀ–—_þdáBç¿þ+â–,›-tvÚÛ=Ââc^oŒã8©T\Sc¤Ð¥¾ÞL)rm­Q"ÁYÔ¹.“ÉW¤/OŒÎ×ÓzáÉzvš¾"}¡¹2z½Úå2 máô‘Jåb±t4šþŒFS±X:ÍV¦hæÉ1J¥L¯Wñ¼ŠçUzýÀ?v‘çUƒš~RNS­‡ ´Ì$Ô«“"Ÿ/N};ýþx p`=»²V«°ÙxÊN¬V5ó4›µlÁdÒ ë#L7¬ó|EŽâõF…µ+ZÍ£WÊt &vîì«X­º… --ê°ÒÚêÀ ‚©„ˆeÚµËýÀzùåO.tÜpÃÊ /<_ͳC4šbS^ºº‚mmž¶67 v‘É$.—Òú<¬«3Ï›gÂ=TˆFSé‹p–L4šv€Æ«øÚíz—Ë€¤ikì f*ª7s(b0m h˜¨ø(ƒÚ„»Ô¬¥ü°ƒÚhå`ÚbUïGï<¯Ó)NCEŽR_o¶Ûy4û™n‰ìÎ}ííÞ¶6Ïöí=,V±X´‹¹«LˆX¦¹Ý»Ý¿üåŸ7mÚÖÜl¿ñÆ•_ýê1˜ñ0+ Ó ¡÷ï÷%YN¾Ðg&««3ažŒ"›-D"‡Ñ0†ÎÈ §Â°0£UfŠR©‹ ä.‘HŠ…1‘KeRáð@*C/ŒT*¦H†b˜Še–ÍP-;N.-“®X,qá1ÏBQá¸$:¿WÆjå1'A ÀÈç‹@œn{½1Ÿ/î÷Ç<žX0÷zcÁ`2α+«Õr«Ug±è„G,f³ÖjÕšÍTÔKƒ+0ý”£x½ÑP(I-^©6½°E Ú¥Ì8©Tî³Ïz‡Æ*bñbWk«ƒMXA«Þé†E,âæ›W!b™)ÚÛ=ë׿¹iÓ¶ùóm7ߌ¸eŽŠFS½°âc{öxi’çU ºÔ×›[[6›®Ú› 3U.W¨H_ØB(”ôzc¡ÐAÇ2¬:±Å2p c2i½Ù¬1›µ6n13רS¿?^ÑZfì©ŒÍÆc®ÌJZÆ„¦žøý jMéñDüþ„×óûc~<J²kêtJ»·Xt‡ÞbÑÚl<f³ñf³F¥Ây.˜Êå²ßŸðùbnwÄã‰z½1·;êóEûû£~,h¤RÉN½ÍÆþ4Øl:öÃg–L&Ϻª´·{¶oï¡XE­–/YRƒXe¦@Ä2 ìÙã}øá76oÞVSc¼ùæU_ÿú R)â–¹ÎëRô"hýâ¦YÑz½Z8奥žh‘ ç»a¢¤R9¿?Ä©O$%1@Üç‹S0‰¤Ø• ) &£e´@‡B‹–F•á<ûL—Lf)waÑK8œ¢0†-°ßVœtây•Á ¦e´`0 ÿµ‚`fAÐÀ•ËeŸ/ÆzK ›FP™/Véˆã8žW9za#½^…ú0se2ùþþˆÏëë {½1'êñD=žu¤§‰)2™ÄnçƒÝÎ;z‡ƒ·ÛõƒÓS <ó83U6[hks³X¥½ÝÓ×.JJ¥¬¥e üWK‹cÙ²ZÄ*3"–Y¦«+ø‹_¼ùÌ3[].ã-· nJ¬í¥/ôIÞÛ.Kœ }ii±Sñ±¦&›V«¨öVÃì”ÉäYyäÁ“ivHåñDc±4»rE·˜Š£*Lz˜e¨© ë+ÃÂáT$’¤î2´^8wŠã8•JN‰‹ÑHÓb4© KkðÉÓ‚˜X«ùŠ.‘Cû̳JG¬?аuºÂL”Lf{{Ã9bWWÐë†Ã©\®À\ãk°i Ú¥Ì6¹\a÷îab…BÚÚêd±JK‹£¦Æˆ“¹3"–Y¬»;¸~ý›Ï<³Õé4¬Y³q ŒN˜¾PÕÇîî`OOˆêüPúBŸù4ýeÁ;>.` PY*Ö·’vJÙšŠjT¬; £!>ìÍbÑ¡¬â¬4zù2öjaG1ÌØk—aüL-0KP—'ÆÚÎq‡Ê|E¸0J1›u6›ŽvÐN½Å¢µÛõV«Îfãm6J{ÁŒS*•ýþ˜×KñɈÍçu:¥Ói°ÛùúúƒúÏ××›1kö)K{÷ú(PÙ¾½·½ÝÓßÉç‹r¹táBÄ*³ "–9¢§'ôðÃo<óÌV‡CÝu§ã_ËQSÆŠ¥/½Pñ±îî êõjú^s`˜L±\®'…ó`*¦ÈTtk§F8F8EÆå2Èd’*>˜lcï(ãóÅ…'¾ÆÉ π fŒB¡ ÆÝî¨Ïs»£~¼¿?Äûû#~Üï³kjµ ‡Co±èìv~0>á­Ö¦)‹óÐa&ª˜˜"ÌTØ.±X4ožihóyš¤‚3&³X©TÞ³g`ž 5®ïèðçóE‰D<¾ºªP¬ÒÔdÅy‡Y£"b¹üò1V`Öëí ÿêWo=ùäû6›îºëN¿òÊ/ „=Œ[.WèèДaënpª+….”¾´´8æÏ·!˜‡êŠFSó`„SdhL »²B!Ì`ÌŒa N'êßÎñx†J“Q’GË‘H2>P͌꘱љD£QPôb4ª  «W6¸ ¡‹F£ßÅÀ!hi¥T*ûýq:,•O§•…sÉy^épè<2•ïpè­VÝÎã4ÌPcœ˜¢Ñ(jjŒ¬´×àôÞnçM&-ΡÏ#Å*b±hÁ;b•¹ËGqËSO½o±è®¿q L¤X,ÝÙ`¡KWW°­ÍíóÅ9Ž“É$.—¥/ôES[kĈo˜>Y Ìë±+£U TÈdòƒ¡ õ’9°,l*¦ãñŒð†ÔNÆhÈ]ŒFj'£¡5Â`{泂˜jÙlÁ편ÝѾ¾°Ç¥ W8› ®Ñ(œN½ÍÆ;«UëtR¬¢§@óaæJ$²ì5_11%JÒ(<‘Hd³é(DNL¡e”ùškÊårwwˆb•¶6Ïöí½\®@˜¨Y=b•¹ 0}}áGyë©§Þ7›µ7ܰòŠ+NÂL’h4%œòÒÖæÙ½ÛMç…éKK‹ƒZ¿Ì›g‹qz¦£P(ăÁ¤Ï£*: %¼ÞX ÈdòìÊ<¯´Zy‹Ek±èl6Ù|`ÁjÕY­:=Øç®ak—±zw¬pYEÉ;îà¹V#.ÃAÀL„ &E&“ïï¸ÝQ·;Òßñx"}}jG$è:2™Äfã].ƒËe°Û)PÑÑO—Ë€úò0s•Jåžžp2 -ww=ž(›ÎNLT´K±Ûy£QƒÊûsVE¬ÒÞîíèðÇã‘HTWg¢@…*é76Zu:”¼˜C‹òæ›Ï@Ĥ¿?²aÃ_~ûÛ´ZÅõן~õÕ§"n©ÁÒš^ÙÕܿߗHd9Ž“Ë¥N§ž¾³Xñ±º:&Àô—Lf}¾X >_<ˆ³…@ á÷Çb±ST*¹Í¦£0ÆéÔ›ÍZêúi6´Å.=pC":<ÚK&H‹"™Cö’¡ãG9LZ`ü²ÙBooˆÒáô' %é:2™ÄáÐ;†šƒÃ¡w¹ .—‘¬VFºÁŒæ÷ǽÞ¥‰^oŒ^ü´†Í%—Ë¥4 ‹ºÐSÉ/§Sïpè=ö‰ã¸ÁST±Jg§ŸàYUŠU¬¨$>g #–Ûo?ûk_;ŸP!HüêWo=öØÛ·|ûÛ+ÃAUPúBßh4ýeï^o*•ã8N¡Ö×[hÊ K_êëÍÕÞd€Ã“Ë‚Áé/Á`ÂíŽ ª€$¼Þ(ÅD¯WÛl:‹EK=DY*ãpèÍf­Å¢Eå=ª¨}GÌÐHÆç‹ OåɰjxtU¦&‚84¿?Þ×îïôõ…{zB´@-èé 4fÍáÐ×Ô „(´àpèm6F®ÁÌU(”ü~JPbO´¿?ìñÄúû#OÔã‰RÿyŽãx^åtê].ƒÍ6¥ÐÁfã­V]uL7^ol°XO{»·³3‹¥9޳Ùt­­NªÖÚêhh°ð¼ªÚ Õ‡ˆ Å-?þŽZ-¿áÄ-0]D£)Š^Xñ±övhÒëÕÂÐ¥¥Å¾p¡  `¦‹FSÂÞ0¬œ-Ï’ ûÄÐ?½^Íz1º\œ‡¡b±t(”dýcÂáåp8É.†Ã)Öã“ÈåÒÁæ1Ô9Fc2 ü¶–15 0>Z`@.Wèë ÷õEúú½½á¾¾ÿX¥#›MçrkjŒ55†ÚZ-8› §’a¦*—Ë>ß0ýç+Ê|©ÕòÚZÓÐþóõõfÏ…QøýñÝ»Ýmm&¬ÐÕª[¸ÐIµìi ^HP Œ[0˜xä‘·ü•Jö­orÝu§£Ì L7…B©¯/L¡ ¥/mmžýû}ÔÉ@˜¾ Z&Ì>¹\!NF"iÖµQ˜Êx<au2ÖÏc°«‡J˜ÊX,:̉‘”JeŠ^"‘T(”LeR‘H2N…BÉP(I©L:Þ%. f0’9ð+¤€´Ì9©T®§'ÔÝìé õô„(J¡ÂGt…B*HSŒµµ¦š­Q(pŠf¤b±ÔÛ$(1ÁQÍ4…ç• VvÜ"ìE“à0Á`bçÎþ¡±ŠÙ¬]¼Ø…XÆ LˆP(ùÄïüÏÿüU&“|ë[§\{íé˜%Ó\>_ìï°ô…êjöö†©iK_ZZìÔúeþ|Z‘ì$¬Åúy°ã—þþH>_dẀᩉzE*SÅ3k$C¯´Šªeô: …’Â×7øòÚE†½ •Ù¬“JÀœ€ eÖÊf ¥P¬ÒÛK ¡`p ½Á ž7ÏT[k¬©9(MÁô˜¡ØÁ9g¨°=B‘Hd³é„ ‡PGzt†Ã’HdwîìÛ¾½·"VÑh‹»Z[,YÁ!.Œ"˜p·lÜøW‰DòíoŸríµ§¡,!Ì,lÆ1Ðô—žžP©Tæ8N¯WÓV|¬¹ÙŽŠy0ëe2y6ßë­¬Q&ì©.,M¦×«*j”ÕÔµZ¤•pX# `*ºÈxÃ`8(nyòÉ÷¿÷½ç[[›6­©øÀL'L_h £ÃOCøYúBÑ MAú ”Í¸Ç ã^oÌ狃q' ¤2™Lž®)‘ˆ-™£ÑrV+ïpð‹ÎéÔ[,:ìÿÀÄbí‹„ÊØä-º(,'—KÆ‹•¡`.-SÊïïÛçÛ¿ßOÿöîõvu©G·N§¬¯7³y*”¬¸\ìÓÃôG}Súû#nwÄíŽôö†Ýî¨Ûéë §RƒJ´Z…Ëet¹ v;_Sct8ô‡¾¦Æ`·ë1T&U6[hksU$ñüù6*ÿµlÙ¼–šWÁŠÅÒ\°~ÏO¡PÒëU}ôCšÔ‚ˆ¦•d2ûë_Ä-_ÿú ·ÞºšfHçóÅãÿŸ/&‘ˆ›››6Ý‚zè0ë±ô¥½ÝÓÞîíê îÛç£Ar¹ÔéÔÓ V|¬®Î$áH `‰DÖã‰úýq·;$Üîˆß÷z£>_ÜëÒ”2bµê,­Ói°ZuưŸv»­•`2PéJRX(‹¬VU÷b-è©u Æ€ÀH|¾x__xùòº‰ºÃb±´w¯oûö«ô÷Gòù¢X,Z°€¦ªØéDIS“/K˜$‘Hê‚ Þ¿ßOR©äŽ;Îùæ7¿€ˆ¦§d2ûôÓ[ׯ#‘È^zé‰kÖ¬~õÕíwÝõb±Xâ8N&“46Z6mZƒ¶0E£)«ÁŠíÙã¥Ú<¯jh°Ð~/¥/--»ŸÔí ‹vRÿÀˆFS׎>°L»ît5šm@§³Y)i:µm·ëQÑ&U&“FS‘Hšµ/¢‹lŠL4š …B‰®É1À!h™¥R¹·7ÔÞîÝ»×·¿¯£Ã¿w¯ßër'‘ˆkkÖùómóçÛšš,MM¶š‚nV6[¨â°¡]è©ÿ¼p@‡H$²ÙtÂ^)ƒ™ŠÞéÔ£¨Œ]*•{ä‘¿¬_ÿæE{ÿý_ßP¬B 5®ïèð#VêŠÇ3]ô‹]»úÙqÇqjµB¡ŠÅ¢n8ýª«NÑhUÜB€aE£©G}{ãÆ·9®\.s‰D†%Èd’¦&+jˆ¯7JÑ‹ õ‹›Z êõj6奾ÞÜÒb_¸ÐÅóÖ“ù´Óî;ê¨y·ß~N]y¢î`º¡†Î¦JP´àvG¨ÊÑëÕ [ž†SÕ‹Å’¡Y&΅é`0AMbB¡d8œ …’@‚ÚÉÐEvP0Ø9Fc6kÌfí`çÅ¢µXtf³†ÖÌ Â6xUT˜AËÖ­ûO8¡i¢î­X,Q1ß={¼4bzï^ k2›µÂ@¥©ÉÚØhÁ©g‹Ï>ëûÙÏ^·Ùt÷Ýwñdÿ-ÚO%Má8®¢óüpÿ=÷¼tã+¿øÅ¥Ód“ªk–-{öx¿ÿýþþ÷Ž}ûþ{|Ã’ÉìŽ}tF¯½ÝÓݤ=faq —†#±m[×OúÇ·Þj+—˧ÖúôÓ7LÈÝÆbéÎÎíqÒh»ÁyÙQpÇ V<`5¾l6ÞáÐ×Õ™‘¦À$)—Ë/¼ð{ï}%H‹EúþQ«å{öÜ7tž¬ko÷P°‘b•ÖVGCƒuÇŠŒ[*•ûÚ×6lßÞ-œËÂètÊüãn¯U˜Ör¹ÂñÇÿG / yK¥’%Kjžþ¦qœ ˜ƒòùbdpÊËÀ±dOOˆRLJ_hO†¦¿,X`§n^#éê žtÒiY&“”Jå¯ýø;î8q Cí7†f0´ì÷ÇÙ0…BJ¡ËàOž-;úÉèLöï<ýÜsç8nÅŠæï|çì  ³ ‡vŽ¡õÂJeÔ6†¥‰CÛÆ8ü ŽyõÕí×\ók‘ˆ³Ûù[nYuÉ%ÇcTÌq³6hI&³?ûÙŸþçÞ*—Ë¥Rùµ×¾ûùÏÏ;ä­J¥rwwð³ÏúvïvÓˆiv^¯¦ÆÐÜlomu47Û[ZœÍÍvœ×ƒ#Q.—ßxcçlùøã.©TLß— –÷ßÿÿÆ~'±X¦³ÓÏÒA•iŠN§ll´MSìv^©”MÊcÎì»ûîÍ;vô‰D\Å@é>ºÛáÐww‡h(CïèðSe»§fõƒ±Š=™aÊf W\ñ?[·î¯˜ËÂH$â;î8ç¶ÛΜâ 8,ÿû¿ïÿÛ¿½Pñ)ÍÈd’%KjŸþFEŒK_(z¡áPÝÝ!:*×ëÕ´·#(>æ`{ìo½µû²Ë~%¼7™L*qW^ù…Ûn;½[)—+„ÃÃÄ0tR›ÍBã†Ä0ì6ý_Ûó‹.úåûïïá8N* åæfÛ-·¬ºà‚c¤RÌ€±†1´PÑ6&H_Æư¹\ƒjh6s$Ûó›ß¼w×]›èðG*K¥’‹.:ö†V65Y'àÑÖ¡è IDATÌ@³0h)•Ê?þÎý÷¿–ÉäèäµD"þѾzÕU'½r<žÙµ«çN÷Î}»võïÞíI&³"‘hÞ<Ó`¦âhi±77Ûq< ¥\.¿üò'?ûÙëmm^©T$ø¬TÊöï¿¿âú‰D¶¯/LÍçGJS´Z…ËedÍç…鑦@ÕíÞí¾ë®Mï½·G&çóÃŒôÿÜçjüþ8ÍôW«åÍÍö… ô³¥ÅQ[kœòM8<…Béºë~½eËgÅâh»U<¯ú裻±GÓV>_<ñÄ{<ÑQ$ñI'Íê©ëP¡`¢„BÉŽÿ¾}þŽúèèðS…BÚØhml´46ZS©ìoû7Ö'œ‘Ë¥"‘èškN]³f5Æ jCu h>[îï°w¿®è Ö­V~Ø'ŸüŸv‘®c·ëo¼qåWœ„Ãv˜(¬ËÑHaLÅÔ®C†1£$‹?ýéë?¼%—;ðÅ$“I …Òg,ú×=ó˜c¦àñL+³-hùøãî;ï|nçÎþr™ã¸‡F™êÏ~öõl¶ÐÖænkólßÞKµh¢ÑÇqV«î¨£êXqƒIR,–^|ñ£õëߨ³Ç/‹JC«rpÜC]‰¤ûúÂnwÔíŽôö†ýþ…1ÔˆÞå28z—ËXSct:õ.—¡¦Æh³ñÓÏÿÉO^}æ™­"‘x¤aþr¹äóŸ¯;ë¬%T ¬®Î4ŽbUT,–n¹å©—_þ„ ’É$"Ç?î¹çük¯=mj7`¬ž}öÃï|çiŽãD"‘L&)ËÅâ0݉øÔS[~ýëk°Ã 0y|¾øþý¾ŽÿþýÎÎÀþý~™L²kWÿР…Èdb…B~Ûm«¯¾úTœ±˜p¹\Áç‹{<‘@ ávGD$ˆ»ÝÑ@ î÷'ع5Fátê-Ó©·Zu‡ÁjÕ:†o|c#5÷‰D"ÇóÊ«¯>õÚkOÃÄ}˜‰D6ˆ³V1^oŒºÅq¿?Níd„ß5z½ÚbÑšL³Y+lc±hŸþï/½ôÏ¡_LR©¤P(.^\sýõ§}õ«Ç } Ì-ét:WqkÆA¥RFŽãB¡äÝwozñÅmb±xè1¡ÍÆÏ›gÚ½ÛLf9Ž««3/Zä\¼Øµh‘ësŸ«áyq&“©ÂÖÜ¡ÓéÿøÇ>¸¥£#0´n’L&v¹ŒT+@Ø‘^£áÄâaNáLOù|ñ¹ç>þÕ¯ÞËf Þ}f$ñ¹ç~Ξ²m;£Ñ¨RÑÑN8N§Óµ=0 •ËåþðµW^Ù!‘ˆ¤Rq.W¢=+¹\ârékk .—Þå2¸\|MÁåâÑ£¥Â‘¿Ë8ŽëïïŸR©ìõÆÝî¨ÛëïøÙ×ñùÊPˆÅœL&-JÅbé”SšÖ­»ã<`.ב6|Æ»[hÍšç?ø sôëPå5kN=çœE8±0•²Ù‚ߟˆÇó©T¹¢4™ÇÅqD ‘Hd2ñå—ŸtÍ5_ɆÏS¦L"‘ “‘H:N%…TªHŒßŸã¡P’Æ8¼×i¿X,*—9—ËðíoŸ|öÙ 0f+áïAA‹ÏçÛ¹sg56iü¬Vë¢E‹k…åG1-‰.¹äøeËæ-^ì\¸ÐU1¥zÇŽ~¿J¶æœb±¼ukßË/wtv†D¢CÏ!{üñoŸsÎÒ¡ëñ*…$‘È=þøö>rS¡0©T\*•GÉõÿùŸ§OÝöÙâÅ‹m6Û‘ÜÞ¹³Þÿþï§Û¶yÌfµÃ¡±Ù4V«ÊjU[­ƒõÁÆäÈßeǽõÖ[±-0¢r™ ‡Ó~ÊïOé@ íñ$ÃáTc£á†ŽFÖ#9ýôÓððîºõÖ-@j¤ßŠD"*J\.sF£ò¤“j¾öµEr9¦L)«ÕºdÉ’Š•årùã»Ï=÷±ÜƒR)]µªþ‹_œo2av L þª9Ž ‡“—_þ«þ³g,wb0(Ï<³áÜs›e2ì7Âl#Ü㦶ò‘ïO™;vìÚå»õÖWÛÚÜ¥Çj… U.—/»ì„cmé #}p¡]»úÝî6«UçóÅS©¼T*)—Ë# ð—J%>_|¤»Â«fsÏ=«X,uuwíêokó´µy>û¬¯»;P,–Åb‘\.Íç‹ìàõ¦O;í´éV1l¢Nîà;‹•Ëå“O^êIã6§P'$°€‰2øðî&ù|1~I¸F*•pW(ÅbQCƒõè£ë–-›·lYíâÅ5Z-Â~€*رcǰëE"ÑHEÿˆ\.-Š¥RÙnç=vžÃ!]²dyk«cr6à0Œôªæ8ÎhÔ„Ã#Æÿ …,Ÿ/”Ë\k«ã„êìvÑ5ל¯'˜e†îñÎà&–‘Hê—¿üॗv^”†H¥’O?í%h˜$‹¹.¼p!"z½Ñ?ìøðÃŽ÷ÞÛÓÖæ)—Ër¹”¾{ˆX,êë›aåûF"‘ˆ›š¬MMÖ/ùó´&Ÿ/¶·{ÚÚ<»w»wírïØÑïõFËår*•s»£.—¡º p¸¨Eµ·f¿ÞÞP±X‹Å¥RI$¹\†åËë>ÿùyK—Ö.]Zk4jª½0'*sÂ&­2™$Ÿ/ŠD¢ÖVǪU‹?¾qùòz‹EK§í²ÀŒ &„i<¥X,Zº´öä“›O=µåØcT*9½ª‘²À\0ƒƒ–`0±h‘M¯W¦Ó’ýûýþ@`à.—KD"q.—gç¯ËåÒ'ŸôVm[8Žã8»]ÞyGwÞQÇùýñ>êüûß;¶nÝÿé§½ù|Q©”e³…þþHµ7`²Èd’%Kj–,©ak‰l{»§­Í=Íf³L#ápê+_Y¾lÙ¼eËæ-]ZƒŽÙ3‹×+—9…B–ÍæE"Ñ‚ö+šO8¡éÄç[­ºjoÀxäóÅd2'•JD".Ÿ/º\ÆÓNk=唿“On¶Ùðª†9j-óçÛV®œÏq+É’J庺ÁÎÎ@WW`ß>ÿ¾}~Ÿ/Z*•‹ÅòÇwUu{bµêÎ9g)µcÉç‹Û·÷üã[·î}N1À,£Õ*Ž>ºþè£ë«½!Ó×ÑG×oØðjoŒS0˜X¶lÞI'Í?é¤Çߨ׫«½EG*JÚlº/|¡yÅŠæ“Onž7ÏTí-¨¾´ ¥VË-r-Zä®Ì狽½¡ÎÎ`OO¨Z0:™LrÌ1 ÇÓpýõ§W{[`Âüà_þÁ¾\í­˜Hv;ÿñÇ÷T{+¦—Y´ K&“46Z­ÕÞ˜mÄÕÞ€™ AËÄÛ»w¯H$vaÝÝÝßúÖ·¦bûµ¢áLøŸ‰D{÷î}Íá¢çy,Ïö7 ޽¨ÊåòW\¡Õj«½9#å5Cáã?–J¥Ï?ÿ<[ÿ‡?üA.—úé§ljD¢ææær¹,¼á¿øEöŠö¥%|544|ãßðûýüÀ&Þ¶sÞ¹c|çNÔW¤ð®T*ÕÉ'ŸüÏþóïsbá6áw¯ï»”ãþ»qì©NÁ+‡mU"‘¸ãŽ;U*UssóÝwßÉdªµmëׯ¯©©)•JlM¹\®¯¯øá‡‡½~µþñÖž xwOÚªÉxZ÷¶ÂÃäaõTnLÿe—]ÖÐРÕj;î¸M›6ïï‰ÃÚf>Ì£¿a'Uż£€ÃÝÓ˜JxUO†1~9Žô=>ì)Ö±ëU†OÔ§èØoUqÍ{î¹Çb±Ð{çòkTø\éõúsÏ=·££ã°þÄHŸBSù™ê eÿþý‹eŠÿè3 ßûÞ÷÷V›7o>ÿüó'c{Æøœ 7àý÷ßwlÊ6fzQõ÷÷ÿö·¿Ý¹sgµ7g<è!,_¾üßþíßn½õÖH$Âq\4½é¦›î¾ûî¥K—ÒÕ:;;?ùäv«p8üöÛoòÎéÖÛÛûÄOÄb±£>šîúÀÛvnÂ;wt“ñÉîsûöíÍÍÍ—\rIűߑÃÛyZ÷^ß8v2'ê¿~òöTÛª5kÖlÛ¶í÷¿ÿ}ww÷c=ö‡?üaíÚµÕÚª‹/¾Øãñ¼ÿþûlͶmÛzzz.ºè¢ÑoXÅÿ_˜(xwOÚªñY%|®Ø}Žã0yBŒ{c‚ÁàòåËÕjõ³Ï>ûá‡~ýë_¿ôÒK_ýõ‰Ý¤Cý?JsÓXÞ°SóÚ˜¼£€iµ§S`”ÿa?ÆG¹ùaëMåax>Ÿ¿ýöÛkjjt:ÝÙgŸ½oß¾Š+¬[·îزe {ïL6z®úûûÿú׿–J¥+®¸bjþîšê ¥T*ƒÁ)þ£SÌb±Üwß}‡{«?ýéOguÖdlÏŸsáX­VÇÁ¦l3`6¡U:æ8®®®®Ú›3ì}ñïÿþï‹…¾A¿ÿýï;Î;3]mõêÕÂñ2/½ôÒi§vÈ;§7ZMMÍÊ•+7mÚÔÔÔôóŸÿ|Äøám;7á;ºÉøŠd÷ÙÜÜ|ÿý÷···Oø7¼§•qïõc's¢þë'oOõH°­Ú¼yó½÷Þ{ôÑG[­ÖSO=õ¡‡z饗ªµUv»}ÕªUÏ=÷[óâ‹/žzê©N§sôVñÿ& ÞÝ…¶j|GÖC Ÿ+vŸã8LžãÞ˜»ï¾{åÊ•>úè 'œ°xñâÛo¿}Íš5ëÖ­›ØM:¤ÑÿSð¡47å ;5¯É; ˜V{0Fùðöc|”›Ö±ÞT†ÿò—¿Ü¼yóæÍ›÷îÝët:¯¾úêŠßþèG?zýõ×—/_>Cè¹r:GuÔÆßÿýX,6e}BvÐrþùç÷»ß¥ål6k4_yåŽãòùüÚµkív»Íf[»vm>Ÿ/ wß}w]]ÕjýÆ7¾AIò‰'žÈq;+‰D®ºê*‹ÅR[[{Çwd2šæóæ›oÖÕÕ½ûî»ö@ØK/½TSS‡9Ž{úé§[ZZ’Éd©TZ¿~ý¢E‹t:ÝI'ô—¿üå“X_~ùe‡ât:Ù»1hþÿöÎ=¨ªêíãKà‚w41ñŽ9J˜†VšfXÞ/¡â…fÔ4Qï™ÆÈhQNcI:©aŠ·;::¥Ð˜áe¼à­È fà5°s`@<°Þ?ÖëžÝ^k_Îùü~þÚ,ö^ûÙÏú>ÏzÖÞçìãï_¿~}"ò¤qŸBêÕ«—žžÞ¹sçÆòÉ'„óùºvíêëëûì³Ïnݺ•7@ çš¡ÐK|Ÿ•••))):thРÁK/½tâÄ E?¼mÚûñÇÃÃÃ5j´jÕ*òäKgf³¹cÇŽÍ›7OHHxôè‘°ÑÈE¹¡J‰ž²²²øPEDúF:‘‰J>ô ÿ« ôæÍ›;wîܬY³Õ«WoݺµmÛ¶AAAË–-S3¬W¯^ìEQQ‘‡‡Gbb"!¤²²RR©ÁTC)MLLìÖ­ÛƒÈãÂÛÛ;--móæÍ«V­úæ›oÒÒÒL&“äùÑ£GïÞ½[úTž={t?µª ^½zÓ§OgÖ úYžmäÛø lkDní\ ¹aiiir#í-uL&“··wPPšßÔô¬}¢öíÛY8?mæžQ¦VY CŒ!¥zµ\Êkoí­[(¿RÂ)GÍ{º D·~ LMM•½}ûö½yóf Ú»gÏžÊÊJögFFÆØ±c5öwÙø’ÿRÛC› ºëztëºÅšVêSÞ˜ Ý`*))ñóó;{ö,QY&×”1{÷î={¶Ü’åË—oÚ´IM³ Ú®ªO±èÀò¡FpÏÔg—6tGM¨^,Jªy`o¥aPÞjPµªZ˜±…w€5n±ê®õþ÷,*œî‰hâ>räH||ü /¼œpæÌiç-[¶,\¸ðàÁƒQQQR#o­Ú„¥fC7«3<== !6›¨ÌqÂF5\#TÆÝ»w=J5Ù¹sç3ϧ”BFU\\üõ×_Bþùç¹ÏKJJ|||Ö¯_ûöíM›6yyy1'Ë „œ;wÎú_¨=C¯k†ð,Ìu^âû\³fÜÿ!!!rÿ mÓ!äÍ7ß´X,{÷î%„|øÐÏÏÝðe’–6G)O:Õ°aC¶Í¬›QåÛø"l9¹ˆ\aä §HÞ0I±º¥Ž¼Ï‚‚‚3f°ßÈÑ–¯g#îÒí¶6ÎûqÃ(VVÂtÊ—”Â\ª},C['wïÞÕ.íºR^9BïQ½b¤~þá‡BCC}|| ’’’ŸŸÏÚkʶââbŸììlJé•+W<<<îܹCU¦K—¯+çP#ëJ# ºŸòèÖv‹ÆI5jZÞç”Òììì&Mš°åí¶mÛ"""Øð)–ɬ0¨cØÍÇ¢¢"µ@à <»p íªú‹,ä8å•Áü醩Ï.mèŽ߃n&¬ÖU€]•†qy«5BÕn¨jaÆ6ªÝb5¾Ö“v°7‹ªÝõNÜ ›ÍVPP0wî\¶6'„$''›L¦°°0¶ÔÕ°V8aiØ =Jk±X®^½:bĈÈÈHvjá§VùðÒª¾áµm÷ƒ–ÒÒRÿ“'ORJß~ûíÅ‹³öN:ݾ}›mgffvëÖ­cÇŽ¬åòåËl[~ÍžžžRÄfdd„‡‡³rssµÍ`¸øAKqqq«V­ºví*9:"""--MÚaË–-DóAË£G®\¹RRRRYY™-‰läÈ‘RÍÄ{Ò¸Ï)¥„6ˆ¬¹Ï‹ŠŠL&Ó§Ÿ~Z\\\UUeµZ+++Ôž¡×5Cí,Ìj^âûìСƒ†ÿ…¶iŒ’••E)e?”l–vÞµk/QÖ(VÌ\y»–W)Õóƒ0T…G õ£v¸$*~bçÕè3gÎÐ'-ßf;ð†>}:  ¢¢âý÷ß_²d‰Éd*..NII‰‰‰¡R Ûf_%þã?$¿Éã‚RZUU5tèPOOÏ &È}Î ›9s& ŠmÛ¶ 0€Êfa¡Æ7JZ„ëfTE]k¯)–‘‹ÈF®pŠä cÛFJEo—/_6(úDÏÝe¼[ÅU»óüh°7Œ2ae% 1¾¤æRíc©AêŠv])¯¡÷¨^1R?SJm6[NNNRRR—.]<==ÓÓÓ5±ºm£”>|æÌ™”Òäää~ýú±Æš_Õ:‡ºòA ¢›ÖÝèÖv‹ÆI5jZÞç”R›ÍÖ¢E‹Ÿþ™R³zõjŘRYaP#ÆBŠ‹‹©¡„g´]UŸbÑåƒWÞ’vÃÔg—6tGïAWÕº  öTÆå­ÖUKî£jaÆ6jÜb5¸Ö“v°7‹ªM÷‰›‘’’ »qãÛ³Q£F¿ýö[DDÄ»ï¾+ ÞZµ KÍíiT~&“éå—_fû ç8ʇrT_Œ8áA ¥tܸq ,())ñ÷÷ÏËËc¾¾¾rùúú^¸pAq¬üšoݺE)++cæææúúú²***tÍ .ÐB)MJJòôô”ÊýúõëŸ;wNú/û†fò«6›ÍÑÑÑݺu›2e ÛÙjµ2Dê„÷$5ìsJ)‘ÝoÎgÇŽ5j”¿¿Ÿ>}:D)U 6©8× þ,òÞKÂ>µý/´MC`„é¢ä6K=þ¼$QE£Ð]®¼]K9•R=?CUxéGx¸\Tü$$ù_m %%·yÃ*++ƒƒƒýõ×ÈÈÈœœœ¨¨(³Ù³nÝ:j Õ°íW_}õ•W^™4i Œ­[·eggûúú~ÿý÷R;3,+++<<¼ªªjذa6l z…߸}ûö=z¨¬›Qóòòˆ¬®µ×‡aËÈEä‰\ÞEòm#¥Ž¼ÏÒÒÒyóæ½øâ‹*Ô³Awév[çGãý¸[”Q•ÊŠ1¾¤æRíc©1Aꊯ”Š”£æ=Ý¢]?—””ìØ±Ãf³±?«ªª–-[ZS¶±vïÞl³ÙzôèÁÒ‹;Œ¯¶œ8‡ºòA Et×ÝèÖu‹5-ïsÆŒ3fΜyÿþ}ooï[·nñþ‘l®c(¥¬j’ÄÉ“'###KKK…ž]8ÐvU}òµ¯ŽŠ 'yKÝ[>¸ò–4u¿Ôg—6tGM¨^ AVë*ÀJà¼Õ¡j©Å}T-ÝrÑNã·X¯õ„‡ó-B™ñ—IU&n‰ÂÂÂ9sæôîÝ›ý733“RzêÔ)///¶­áUá„¥fƒö4ÊÆÎq•ßCõům»£…|xРAÒ>¼'‰aŸ³vÕa-++«ªªúî»ïŠŠŠÞyç·Þz«¨¨Ha€Î2C¡—„}†……iû_Í65 \‡E!$//}£M­ÑàUJôü ªüQBý×;¯Æ@kÃæáác6›óòòºwïÞ¯_¿ÌÌÌ_~ùeðàÁÄpª9pàÀúõëwîÜyôèQþ RRRúöí»|ùòiÓ¦)~Ê/::Újµ;v,33sذaÆ/‡A)ýꫯ4 ÖȨì•ÆO‡°u«°%ˆÜZ¹ 䆱m{K??¿É“'_ºt‰>ùDš z¶÷DOa ¹g”ñ••ÁæRÝcuu¢[(¿R¯5Ÿk [?SJÇwáÂ餯¿þ:›kÄ6ÆàÁƒKKKÓÓÓÏŸ??|øpÝýåTÓøòÔÐ&ˆnBHÝnm·hœÔšvôèÑûöíÛ½{wtt4{%¸Z]T#ÆB† òÙgŸI!dÛ¶m?öóóÓ€âìÂæ 0^õaùPS¸gê“£­ #£Æ«WCÕº °·Ò0.oµF¨ZjtUÛuËE#(Œ¯õŒ ”™F’çE2yòdö~é–-[Nœ8QRxXX!$22ráÂ…ñññÿþû¯†µü„¥;ÑèfuÂ9Ncââ²qdR8p`qqñòåËããã¥Æ#F,^¼øæÍ›¹¹¹ƒ Z·n]\\ÜÒ¥KÙÃÏ÷Þ{ýNƒ½oÑd2;6!!áÆ/^üàƒÆï€=®¡ªª*>>~Ö¬Y;vìøé§Ÿ8@‰Ÿ?¾Ùl¾sçÎáÇÙû5xôèQEE…··wYYÙòåË !V«Õl6:TÚ‡÷$1ìsS3Ÿ×«WoàÀ{÷îµX,&“ÉÏÏOa!äþýûwþ kw–xI¸çôéÓåþÿðÃ;èÚ¶qãF)e¨1{öì«W¯ž:ujÉ’%&LÐh¬q„*%z~P Uþ(¡~„‡ó¢â1>Ð „—“ššÚ³gO“ÉÔ¿ÿ´´´6mÚ´iÓ†N5þþþ;v\´hÑôéÓËËËå—@)6mZ×®]ÙÏ|Í›7/88xÖ¬YòÃ===GŽ9mÚ´¨¨¨æÍ›+:WÄ”¼±   ;;{øðá7nÜ`¿›*4Xèç† B¾ýö[‹Å²víZ#ÞÓð¡Ûê‘[#—oâ@©hµZ¥¸S“BÏO¤Û­D 4·2¾²2bÂ\ªq¬ÁÚ[·P4~¥jØ5iøDnU@@ÀĉÇŽ{ðàÁëׯ?~<11166Vc«Õ6ö/??¿aÆ͙3§_¿~Íš5ÓÝ_N5/©s¡MÝu=ºµÝbïI…5­ÔاO›Í–””ÇZÔê¢1†’œœœwüøñÜÜÜ>úhíڵ춠ñzC8Ðj&9\õaùPݸmêÓÅx-Ê£­™j]Ø[i8;Pµ›¨Zã–‹Z¢Ó ƒk=#e¦‘äy*++,X——WXXøùçŸ÷îÝ[±Ã²eË‚‚‚Ø}*5kù K×ݬ®@8ÇéN|5#T†ñ/sM:5 @þûK‹eÊ”)5jÒ¤ÉÔ©SKKKËËËCBB‚‚‚bccÙëD?~ÀŽ***Š‹‹kÒ¤IË–-çÎ[VV¦ö5!®|u¹ÖÕ9ÖIDATØ_|ñüóϳï¦íÛ·¯eË–EEEIIImÛ¶ èÕ«×öíÛ‰Þ«ÃÖ¬YÓ¸qãÖ­[§¦¦ÆÆÆ6jÔˆ½Œ^‚÷$k7âs*úF¶Âç»víj×®··w§NÌfsEE…Âm8Ë ¢ùõ7…—š7o.ìÓf³¥¤¤„‡‡ûûû÷êÕ‹=M•{›·Mã[xü6ÛyãÆmÚ´iÚ´é¬Y³$‰*Å¢y‚Ë^@$T)Õóƒ0T…GQN?Ââ~­’ap ÛBÃ>|èååÅ~æ®´´ÔÛÛ{Á‚Ò‰´S|»¬¬¬C‡K–,‘_BZZšüG Nž<éáá±gϹaYYY„öÖ#y»0 ä¶nÝzüøñr‘ð« ÓÊ•+6lØ®];³ÙLdßÔvÀ‡[ˆ\D®väÊÛ5Ü¥[ê("«²²200½!WC¼žµO¤g7 4—½:Ì=£ŒÁWV|ˆñ%¥0— µ·öÖ-\)Ûó™€Ûºõ³Íf[±bE×®]ëׯ¶páB&?×ÛÆR"ãСC,(ä¦ÖìøºluÙ«ÃÝu;ºuÝâ@M+õ©p ¥túôéõë×·X,”Rá2™uëzc$òóóGÒ Aƒ¨¨¨ýû÷Kÿâ æs~ …&éŠV÷ê(Wä(ZêÞòÁe/YrÏÔg—655A*,©ŽU€½•†ñ“ÁŒ U×Ô„ÎßræL¡©£k=µÃ©,Ê_&UŒÕj4iR«V­‡ Â^ü¥8ãéÓ§½¼¼<¨æU*š°´mP›Fù‹•ÎqÚ•kb„×v=*K"÷îÝ»|ùò+¯¼Â§÷„}½(""ÂMú¹zõjûöí©(/ƒÚˆp@嬬¬çž{Žÿ”„]8K¥Ômœ¶‘ Üw(6Üj~tb?<å8quÖºÑ \ÉÒ¥KóóóÓÓÓkÚBÜ̘ºSŸS*ÿZw_¸!P5p%µqÂrVŒðÚör–‰µ‹òòòÂÂÂÍ›7ïØ±£¦mq/c50añ8øÃe< N›6ÍH#ÀM@Ø‚:;è@¡ žZNœ8ï¸v+cžú@ݪ®¡öNXÕ#xu˜3û@^@@m‘ @uƒW‡PWÁ«ÃO!xɨ{@ÕhÀkßhpSäý*¿ŸVKöüüü¦M›.^¼øçF4/ÇŽÛ½{71Âf³·nÝúKIeR‡CŒ˜á meeåææÛõõõðgÝÃÃãêÕ«0XWWfkkëçç÷èÑ#T©T999îîînnn999*•J+-†aAAANNNׯ_¬[·°råJ}à“®©©ÉÛÛûíÛ·ºbæææòóó½½½]]]322à&JL«yV&$$œ9s433C¥RŸ={fŠl¨üðáð¿[*** †««ë‘#G”J%ñ1­iã8^RRloo]__aiД‚xòäÉ©S§ˆSÈÏÏ/++ƒm™L¶oß>///6›===mtuˆÉu{ê“aJmCt·é;tggçÄÄ„\.ÿüùó–-[.]º„ã¸\.·±±ÉÌÌ …åå倱±1…B±lÙ²’’‘HTVV¶téR…Bãøµk×víÚõåË>ŸyîÜ9üç­˜˜(•JKKKãããZ{€nØ!..îÕ«W"‘HWÌ7BBBø|¾@ ˆŠŠb³ÙøÏ[‹¦]YYéíí=??ã8Ç£Ñh*•ÊÙöövGGGÃ:£££{{{[[[™L¦&¨%£´´ÔÓÓóÅ‹b±¸±±‘ÉdHƒF ¢P(d2Yii)BÓ–J¥‰D¢o¹ÓÓÓcbbø|~hhhAAÑÕ!¶MïIZ[£VÔÚ¡hh"öööp9gffzzz …Z­niiË,‘H¬­­oÞ¼)•Jççç'&&Ôj5Žã"‘&lll Çu ÝÜÜŒãøìì,ŒkZ7ìÀçóõ‰ ¨©©·twwÃ6i}'''—/_ÞÖÖ†ãxJJJ^^ž¾Aqc†6¬–}ÕªU¤2BCC+**4i?~ š2)‰ •JI?µ²²úøñ#¼¬©©a2™¸±ÕÑ2´‰=Ikk]C“ü-‡)ôõõÁA©TEGGÛØØôöö²X,…B{R©Ôæææ¢¢¢üüüÈÈȼ¼¼¸¸8ÀÐЇ‡‡&¡ƒƒƒî(4 `mmMªA_†ÀÀ@©˜ááaØ Ò7A …Ïårƒƒƒëêê>|ø`xPÝú0 ÷h”À…$ÞŽÿ»k „††jâÁÁÁú‚F ¢*•êîîÞÝݽ~ýzM°½½ýèÑ£---‰D­VkæÂd2…B!l^"zâ„ýÑÄÚæwÏÐ …Åb}ýúullljj*999''§£££¸¸v˜šššŸŸ¯®®–H$ؾ};Ü\\\4»šT*mmm%·Ä<}`áHÅÐh´¡¡!Øîìì¼|ù²ü©©©\.·¶¶võêÕó™"Çñ{÷îmÛ¶Íð-psôööúøøÀöÜÜàÛ·oðÒÇÇçÓ§OšÌ===ú‚F b€;vܺu‹è­òòr•JE¡PÜÝÝ­¬¬a|``ÀÓÓ¶ ¯ÒžZ35 ÿ× nצ9à[*‘H4<<œM§ÓÕjµT*Å0ìùóç“““¹¹¹€ŽŽŽ©©)[[[.—+‹ïß¿okk;55…ãøÉ“'‡††ººº¢¢¢Ž?Žë9´ÚÐ0¨›øü"“ŸŸ&Á† X,þïS¦%f€ßýýý>|¨™»>Ùš×v¯_¿Ž÷òò’Éd†uÆÆÆöõõµµµùûû_¹r¾º.++ûñãÇÎ;¡Œ»wïzyy544|ÿþ½©©) Ã0Ò Ñ‚à„s³V{llÌÙÙ9==ýÝ»w]]]€úúzøiZZZLLÌàà @  oo ¯ŽÖ‘C«'éLõÕÖ¨Í|†^²dIXXXkk+üèöíÛNNNt:½¸¸855ÕÍÍ ¦e0666<ö”Ëåû÷ï§R©ÎÎÎYYY“““¤“'¶U*ÕÆíììôeÐZ?]1ÓÓÓl6›F£988¤¦¦Âƒ#1­V†¬¬,;;;ø-Ö°l t:===}ttÔÀ-p”ÊÊJ___77·ììì™™Ç  ǃ2Ôjõ;w †ƒƒÃ?ÿüÃãñ\]]Iƒ¦DßáÇñ¡¡¡ÄÄD¶bÅŠµk×ÖÖÖj>’H${÷îuvvöðð8}ú4Ü ¯ŽaC“ÎT_m cC#þuuušK.—N\ u‹®¡Ñßrü§áóù{öìéèèP*•­­­.\8xð ip±•þWXà[Äß!77W©T&$$ˆÅb??¿ÌÌÌC‡Hƒ†Ž€UUUðW ‹(0 Ã8Nrr²&‚Ž‹aQ C#, dh„E °(¡É{èØØØ¿¯0 ?šN§£l‡ø?"))‰N§#ú5 Â’@gh„E °(¡24¢ø¸CH8.‘»IEND®B`‚XQilla-2.3.0/docs/simple-api/inherit_graph_28.png0000644000151400015140000000274211653571064016472 00000000000000‰PNG  IHDR€(¹ebKGDÿÿÿ ½§“—IDAThíšKHkÇ¿¹qlL|5‰ZDj"Yˆˆ‚´é¢*uQÕ¨U ZA‹‚ 6¢à tc-]„vQÐÖ…¯¢X ¢ˆÝG-_­%FPÉ$¤&&ß] bf´jm†{ßjæä;çü=ÿÌŒó)!,ÌñÓn:¬ ÃÀ0¬ àsÞÙÙ9;;ˈ”›€B¡hmmõŽø°²²²¾¾.—Ëý¨ê¦0??/|‚¾ärùðð°_$Ý, ©AöÀ0¬ ÃÀ0¬ ÃÀ0W4A©T곑———‡ ÈæææE*lnn"rÙÈî$AAA™™™z½þâ⯦ê/qõ+àÛ·oËËËä©ÅbñçÜÜÜœÉd2™L†I¥Ò¢¢¢ÿè¶îÕ ÈÎÎ!OÇÆÆîÝ»w’.DTT”X,‹ÅR©ôÅ‹ƒáààÀoݯ‘« R©†‡‡ÉïÝèèhAAùéÑÑQYYYddäíÛ·Ÿ?þóçO·ÛÝÓÓ“˜˜’™™¹¸¸N_ò´—¿ËåR«Õ"‘H(ªÕj—ËEU‚¢h```XXØ9)ãããÉÉÉ\.÷Î;>|8K$YS©TÖ××ÇÇÇÇ`bb‚¶8!{jj*..N§Ó]zŽð4*•J¥RÁßX__‹ÅKKK££#wxxØØØ€–––Þ¿kk ð¤¤¤ŽŽŽW¯^ …BF³··711C,&5ÇÞÁîîîüüüÝÝ] ÃRSS›ššˆîz½ÇqÇFcuuuyy9©šb³ÙnݺõæÍ“ÉôîÝ»€€›ÍF+’l=88çñx „Z­6&&ÆårÑ'Ròòò¦§§‰²gA;Û«°±±QSSÓÜÜ !ÈÉÉ!ãN§“Ãᬮ®‹5D"ILLìëë#+ô÷÷_Ä™Lf2™ˆãÉÉÉ””H¹×ýú•¬LM1›Í(о|ùÒb±x<ÇÝn7­H²µÝnçóù_¾|?&mq"ðßíú ˜™™‘H$G©T¾}û–Œÿøñàp8ˆÅ†q¹Ü   ½^OVXZZò1À`0P àr¹Þ³ #» ìv{CCCFFY™6E§Óðùü»wï~úô BH+Ò»uIIIcc£Ífãóùƒá¬âDŠÓéüíÐhgûGïYYY8ŽëtºÉÉI¥RIÆE"‡ÃÙÞÞ&N·¶¶bccããã½kZ[[#ONNF£‘Ú"22’œµÅbYXXðYÀãñÊÊÊÖÖÖà¯+ƒšâp8<ÏÈȈÙl®¨¨xøð¡Ùl¦é]ùñãÇ£££ccciiiR©ô|=(Š^z|€?|ãp8ùùùUUUéééB¡Œ£(ZTTT[[»³³³ººÚÒÒRZZúìÙ3µZ­Õj÷÷÷?þÜÖÖ¼ÿÞjµ¾~ýšÚâÑ£GÍÍÍß¿Ç0ìÁƒ½½½Ô5¡¡¡8ŽÛl¶³RÉÍÍýøñ£Õju:(Šòxq³ÙüäÉ“ˆˆˆèè躺:‡ÃqrrÒÓÓ#‘Hø|¾\.'¾;®®®ððð„„­V (· «ÕZ^^."""*++ív;<} ‚ºÝîÐÐÐsR†††e2™V«%VREz·†VVV{?Z©Å}RÎv¶<ýL#ö¬Ù¿ü hgËî1 kð0 kð0 kð0 kð0 ÍÆÍÎÎæääø_Êÿž••…Báô5 ##Ã_zn …‚:^ß½ ?Ã>†5€aX†5€aþõ”¦“±}ÃIEND®B`‚XQilla-2.3.0/docs/simple-api/inherit_graph_6.md50000644000151400015140000000004011653571063016273 0000000000000064ffa9dd14d38e075c1f60b25dfa83dbXQilla-2.3.0/docs/simple-api/classEventFilter.html0000644000151400015140000007601611653571064017000 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

EventFilter Class Reference

#include <EventHandler.hpp>

Inheritance diagram for EventFilter:

List of all members.

Public Member Functions

 EventFilter (EventHandler *next)
void setNextEventHandler (EventHandler *next)
virtual void setLocationInfo (const LocationInfo *location)
 Recieves a LocationInfo object that is owned by the caller, and will be updated with the current location information as the parse progresses.
virtual void startDocumentEvent (const XMLCh *documentURI, const XMLCh *encoding)
 Handles a document node as an event.
virtual void endDocumentEvent ()
 Handles a document node as an event.
virtual void startElementEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname)
 Handles the start of an element node as an event.
virtual void endElementEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName)
 Handles the end of an element node as an event.
virtual void piEvent (const XMLCh *target, const XMLCh *value)
 Handles a processing instruction node as an event.
virtual void textEvent (const XMLCh *value)
 Handles a text node as an event.
virtual void textEvent (const XMLCh *chars, unsigned int length)
 Handles a text node as an event.
virtual void commentEvent (const XMLCh *value)
 Handles a comment node as an event.
virtual void attributeEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)
 Handles an attribute node as an event.
virtual void namespaceEvent (const XMLCh *prefix, const XMLCh *uri)
 Handles a namespace binding as an event.
virtual void atomicItemEvent (AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)
 Handles an atomic item as an event.
virtual void endEvent ()
 Called when all events have been reported.

Protected Attributes

EventHandlernext_

Constructor & Destructor Documentation

EventFilter::EventFilter ( EventHandler next) [inline]

Member Function Documentation

virtual void EventFilter::atomicItemEvent ( AnyAtomicType::AtomicObjectType  type,
const XMLCh *  value,
const XMLCh *  typeURI,
const XMLCh *  typeName 
) [inline, virtual]

Handles an atomic item as an event.

Reimplemented from EventHandler.

Reimplemented in ContentSequenceFilter.

virtual void EventFilter::attributeEvent ( const XMLCh *  prefix,
const XMLCh *  uri,
const XMLCh *  localname,
const XMLCh *  value,
const XMLCh *  typeURI,
const XMLCh *  typeName 
) [inline, virtual]

Handles an attribute node as an event.

Implements EventHandler.

Reimplemented in ContentSequenceFilter, NSFixupFilter, QueryPathTreeFilter, and SchemaValidatorFilter.

virtual void EventFilter::commentEvent ( const XMLCh *  value) [inline, virtual]

Handles a comment node as an event.

Implements EventHandler.

Reimplemented in ContentSequenceFilter, QueryPathTreeFilter, and SchemaValidatorFilter.

virtual void EventFilter::endDocumentEvent ( ) [inline, virtual]

Handles a document node as an event.

Implements EventHandler.

Reimplemented in ContentSequenceFilter, NSFixupFilter, QueryPathTreeFilter, and SchemaValidatorFilter.

virtual void EventFilter::endElementEvent ( const XMLCh *  prefix,
const XMLCh *  uri,
const XMLCh *  localname,
const XMLCh *  typeURI,
const XMLCh *  typeName 
) [inline, virtual]

Handles the end of an element node as an event.

Implements EventHandler.

Reimplemented in NSFixupFilter, QueryPathTreeFilter, and SchemaValidatorFilter.

virtual void EventFilter::endEvent ( ) [inline, virtual]

Called when all events have been reported.

Implements EventHandler.

Reimplemented in ContentSequenceFilter.

virtual void EventFilter::namespaceEvent ( const XMLCh *  prefix,
const XMLCh *  uri 
) [inline, virtual]

Handles a namespace binding as an event.

Implements EventHandler.

Reimplemented in ContentSequenceFilter, NSFixupFilter, QueryPathTreeFilter, and SchemaValidatorFilter.

virtual void EventFilter::piEvent ( const XMLCh *  target,
const XMLCh *  value 
) [inline, virtual]

Handles a processing instruction node as an event.

Implements EventHandler.

Reimplemented in ContentSequenceFilter, QueryPathTreeFilter, and SchemaValidatorFilter.

virtual void EventFilter::setLocationInfo ( const LocationInfo location) [inline, virtual]

Recieves a LocationInfo object that is owned by the caller, and will be updated with the current location information as the parse progresses.

Reimplemented from EventHandler.

void EventFilter::setNextEventHandler ( EventHandler next) [inline]
virtual void EventFilter::startDocumentEvent ( const XMLCh *  documentURI,
const XMLCh *  encoding 
) [inline, virtual]

Handles a document node as an event.

Implements EventHandler.

Reimplemented in ContentSequenceFilter, NSFixupFilter, QueryPathTreeFilter, and SchemaValidatorFilter.

virtual void EventFilter::startElementEvent ( const XMLCh *  prefix,
const XMLCh *  uri,
const XMLCh *  localname 
) [inline, virtual]

Handles the start of an element node as an event.

Implements EventHandler.

Reimplemented in ContentSequenceFilter, NSFixupFilter, QueryPathTreeFilter, and SchemaValidatorFilter.

virtual void EventFilter::textEvent ( const XMLCh *  value) [inline, virtual]

Handles a text node as an event.

Implements EventHandler.

Reimplemented in ContentSequenceFilter, QueryPathTreeFilter, and SchemaValidatorFilter.

virtual void EventFilter::textEvent ( const XMLCh *  chars,
unsigned int  length 
) [inline, virtual]

Handles a text node as an event.

Implements EventHandler.

Reimplemented in ContentSequenceFilter, QueryPathTreeFilter, and SchemaValidatorFilter.


Member Data Documentation


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/globals_func.html0000644000151400015140000000536311653571064016156 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
 
XQilla-2.3.0/docs/simple-api/classxercesc_1_1LocalFileFormatTarget__inherit__graph.map0000644000151400015140000000057311653571064025745 00000000000000 XQilla-2.3.0/docs/simple-api/inherit_graph_0.png0000644000151400015140000000316011653571064016373 00000000000000‰PNG  IHDR£(yÝÌbKGDÿÿÿ ½§“%IDATxœíœmHSmǯµ¥k­—q¬ùR‘,ွÓT 8ûV-L­L‚‚Ѝ6¨(BÔ Õ—úÐ ~ g‘L" RL,Ü,¡Ì¥ ]Ë<‡<‹ÙvõáОÓ9Û™Ó¥Ïóœû÷içÞuÝ×ÿ¾ÿç¾ÏÙ«  æÌ¶Â AœV Äi¥@œV áÁ‹/jjjfK !µ´¶¶ ÿpÚçó=þ|ÿþý3+‰b<Ogg§¨Q#kjjš=„¿ESSSqq±¨‘\§•qZ)§•qZ)§•ÂÔ®®®V©TW¯^M‰Ž‘‘‘ÒÒÒ•+WêõúÍ›7777§¤ÛdQ©T?~Œ÷,"Ÿ|>_²Â¦V'¦StúâÅ‹ˆHÓtUU•TJô1EQ`4ùv–eËËË)ŠÊÉɱZ­Á`333;::„ýs744$“ 4M †ÚÚZi¡P(d³Ù–.]ºdÉ›Í …Gvv6Ã0ˆøàÁƒ¼¼<¿ß/Êú”°DßÓiÑ™XVVVXX800àr¹V¯^]YYɲ,ðÄDš‚ˆ`±XX–½w ÕÖÖîÛ·ïóçÏ.—kãÆ.\@ÄÇ———ùòÅh4¾zõJ*Oä´|‰xÂzzz8Žã8nxxøÄ‰2ªü~zzúíÛ·½^o]]F£ñûý1#gaMwvvj4šoß¾!âëׯ ··'át(R«Õoß¾å?~¼jÕ*†a€eÙ˜µb¦ "´µµñ¼=¢‰ iÚëõò[[[ׯ_ˆ,Ë.[¶líÚµ¼+˜Èi™2„èõú¾¾>U ÃÌ;÷Úµk,ËF"ŽãÂápÌÈYpúÌ™3¢ñ\¾|Y4k>|:íñx€ßåÑåriµZD4íííÂ]]]›6m ñR„÷1ÖjµB…‹-âÛ«ªªÔjuôÂ)ï´L aÑ€Õjݶm›¼ª—/_Z,–ùóçïܹóéÓ§ñ"§étÒ÷ÞápØn·ß¸qƒû͹sçìv;þ>þü ÃÃÃÒ\£Ñ¨V«Ýn7800““{öì¹~ý: DCCÃÄÄ„N§‹—sæÈ‰ÏÈȈÎ8˲üg;çÖ­[f³ÙjµNf°2%d„EÑétGŽy÷î]thRUÁ`0‰<|øa˜£GîÞ½›ßäbêŸ ÏmmmÂ5ˆÝÝÝðæÍ›ÑÑQ¨««ûþýûÞ½{A°¦9ŽãƒKKK Ýnwooo~~þ•+WñëׯE•••µ··;ÎÊÊJxòä‰L ü¹ø¢ .ZèôéÓ‹eppÐétnݺõÔ©SápØl6WWW3 “™™ÙÒÒ"•'íVZ":ð„ÂqhhÆÇÇã© ƒZ­öÑ£G£££wïÞÕjµü>!I•!5»÷ñãÇwíÚ%l‰D"&“éüùóˆXSS³xñb“Éäp8ø®&&&vìØ¡×ëù`†a:DQTVVÖÙ³g£»ßàà ÅbÉÎÎ^°`Á–-[xdR¤6ˆ WTT Š¢Ž;nÞ¼¹nÝ:þv·¹¹9++‹aQVRN'†ˆápxáÂ…Ÿ>}Š§ŠŸv“É”––FÓ´Ãáˆ)’*C*_eþͤæ:MøBœV Äi¥@œV Äi¥@œV Äi¥@œV Äi¥ã7EEE3¯ƒBø/ºˆøÃéåË—“eý0 4M‹UHþýBë´R N+â´R N+…_S¿PâúY‹IEND®B`‚XQilla-2.3.0/docs/simple-api/DOMDocument_8hpp__incl.md50000644000151400015140000000004011653571063017444 00000000000000aba3634ed6441d31c7209a02e8ec41b6XQilla-2.3.0/docs/simple-api/classATUntypedAtomic__inherit__graph.md50000644000151400015140000000004011653571063022464 0000000000000090c1f1d24817a3c7074ac8b68034e43eXQilla-2.3.0/docs/simple-api/InputParser_8hpp__incl.map0000644000151400015140000000003511653571064017677 00000000000000 XQilla-2.3.0/docs/simple-api/classContentSequenceFilter__inherit__graph.md50000644000151400015140000000004011653571063023723 00000000000000a1e15808ba22f097de233748b4d5b562XQilla-2.3.0/docs/simple-api/classXercesConfiguration__inherit__graph.png0000644000151400015140000001405211653571064023543 00000000000000‰PNG  IHDR•ÃÄòbKGDÿÿÿ ½§“ßIDATxœí{XW‡OÈ@ƒÜ)ÊEQêºVûX¡¶²õ‚@ne [û¸Rk…®(ºÊ²ÖŠ\DhE-‚\÷+x)mÅÛ’*µH,Š „@Èõ|Œ_šæ&1;Óó>þ1sfÎÉïÌ›93LB„EO×ãù#6ȱAþˆ ¦nÃòåË_e„fvïÞíéé©\®Ö_mmíâÅ‹íìì´™ 1*ŠŠŠ¶lÙ¢r“Z€íÛ·h'b P(u›ÐõØ Äù#6ȱAþˆ ™ý566bVTT$+)//§ÑhL&@¡PœßûúúR(”¼ê¬/ ™ýÍŸ?×®]Û¶mëïï ÄÄÄ$%%Í;ßá×_½sçŽl‡SWW§›¬/ ™ývïÞmff¶sçN@bb¢••UBB‚l«üÙYQQ¡òÇÿ4P €ÂÂBu[!„åååÖÖÖ}}}Â3gÎ8;;óx<¡P(Œ‹‹377Ÿ6mZ\\œP(lmmÔÖÖÚÙÙ]¹reÏž=vvvfffaaaoM¹„°¢¢bîܹt:}ÆŒ_ý5„P$©¬Ž¿„ò2„ðöíÛ†íß¿ŸN§3™Lùæææ:99I¥R¼dåÊ•¹¹¹€ÖÖVu‘ðZ...fff©©©_ýõôéÓ'Ož¼{÷n¼‡Î`0lllvìØÁçóå»?þüˆˆ|ÏÁÁACCƆ ù….^Þ„ðƒ>úô©……Å7ðƒ®_¿þÑ£GÍÍÍúÓŸñøúú^¾|999ÙÕÕµ¹¹™Éd.Z´(..N]-G§Ó333»ººrss1 ãñx‡RY½¿¿?''Gy'11’’¢ÐÁŸþÙÒÒ²±±¯õÚk¯õôôÈü)GÂkq¹Ü'N¸\nVV §§BâííÝÖÖÖÜÜìææ–œœ,ßýªª*ƒ!‰ „®®®²w´åÃáØÚÚº»»'''Ë ]\\ºººðåšššyóæáhnn†Κ5«¤¤ßzïÞ=Ù²r­¾¾>}}ýÇs8©T:88(‘HÔU×€T*]³f •J Uè`kkkllì'Ÿ|!,((X¾|¹¬\e$|+~Æ…B…åÖÖV¡PH¥Rúé'¼VII‰“““|÷Åb±¥¥å¥K— „ùË_8ðÂüP{þ „ÿøÇ?¨Tjww·¬ÄÀÀ@~|611Á;€?òƒ˜†ZÂ~øaÆ “&MZºtiUU•†ê8uꔉ‰Éwß}g``PVV&ßÁÖÖÖ«W¯âC¨ŸŸ_VV”ó§2’l«ÊåÇø|>^ØÜÜl`` ß}aLLLll,›Í¦Ñh?M´åïÑ£Gæææï½÷žü[ÛÖÖVÖ+‡ÓÒÒ"Arpp¨¬¬Ä—ecšr­ááẺ:¡@ ÈÏϧR©½½½êª«ãÉ“'¦¦¦ÙÙÙÂÔÔT |”ƒÿÄÅb±……E]]ݤI“ðw¡ÌŠr$ø"øùw÷î]¼°´´ÔÑÑQáz|åÊkkëcÇŽ-[¶LsxZñ'‘H|||öîÝÛ××giiYQQ—oÛ¶mÆ ø­ù¢E‹þö·¿Éw ))ÉÝÝÉd2™Ì%K–lÙ²E]->Ÿo``P\\Ìf³³³³ ø|¾ºê*¯R©tåÊ•žžž‰B( ÝÝ݃‚‚dÄ~LLÌìÙ³½¼¼Ê•#Áùƒ{{{³X,&“éêêºgÏb±ØÜÜÜÂÂ"//OÃ᥋—÷wôèÑ7ÞxJKK­¬¬ð{Q.—»iÓ&SSSƒ±uëÖ¡¡!ùŒŒŒÄÅÅY[[›˜˜Én •kA i4š‹‹Kyy¹†ê*ï?óóóétúýû÷e™oÞ¼©§§W\\ åŽøÕ«WÇŽ“u/Wé…þúúú †••ÕöíÛe÷Ÿò‡.::ÚÐÐËåj8¼£t1Þëâ%صkWppðè÷×àBÓßoÎÈÈHggçÉ“'Ïž=;! ’üùËÿ7nÜøóŸÿñÎ;ïLHƒèü{¥xzzöõõM`ƒèü#6ȱAþˆ òGl?bCr7n°tA»húü’’’““óÊ¢hËÑÖö1&Ôum¡ÖŸ¿¿ÿ«Ì¡ ø|ŒÏ7 --,ue\øûû«û" ’÷ûÓ‡U§§_´·gÔ×ïÖumAæë_QÑ-@{{oKK§®³h Òúkl|ÔÑÁèëSÏŸÿ¯®ãh Òú++kÀ0*@$’Ý’JÉy™ §?‰DZ\|K,–à«löàÍ›äü ANõõ8œaÙª¾>µ´´A‡y´9ý•”4`Øo]‰$åå "‘D‡‘´ ý …⊊&±X*_Èå êê~ÑU$íAB—/·ðù…B £””ð.”„þJJþ«§§Ø/±XZUugx˜lÒÈæÇ\¼xW"‘*o‰$µµw_}$­B655w…B±º­ä» %›¿²2µ†¤RxåJ —Ë•y´ Ùž_wtpäÏ·ÞJÙ»wÏY‰¥¥ NžÿuGžžàØÚš*”L›floÏÐI˜WÙÆÏ?ȱAþˆ òGl?bƒüäØ Äù#6ȱAþˆ òGl?bƒüäØ Äù#6ȱAþˆ òGl?bƒüäØ Äù#6ȱAþˆ òGl?bƒüäØ ÄFÅ÷7Y,Vmmí«¢%jkkŸ>½©ë€ƒƒƒb©ò”:………ºˆ§ôõÍõôèºN11øûûaþ#’}/žè¨,G×?bƒüäØ Äù#6ȱyI†ÉJÊËËi4“ÉÄW‡††Þxã ##£7ß|355U,-kíÌ™3šý577«Ë©²Öèã½ðP«ó7®Ï§OŸ¾zõêåË—‹‹‹ËËËñÂ)S¦XZZ655)ìÜÔÔäâ⢡5öË/¿¬X±bÁ‚ùùùx¡©©©……Ž{÷ä÷¼uëÖÂ… ‡‡‡»»»%‰££#^îää„ß§¬­­úúú^±­­ÍÍÍM¶:gÎ…àïâãùUæTÉ8㆗÷×ÙÙ¹mÛ¶C‡yxx$%%EEEõööâ›BBBöîÝ+‘<Ÿ/#((èìÙ³ ÒÐ ŸÏˆohhÈÈÈ•¯^½:--MþPˆD¢×^{Í‚J¥²XÏçÆikk³±±yÞ1¥Ÿ WÆÞÞþîÝß~Ѽ¥¥E¶ŒÚyòä‰üþøáV—S™qÆʧähÆO©TºråJOOO‰D‚îîîAAAøÖY³fyyy]¸páþýû»v혛›  ã'‡Ã¡P(ÕÕÕøgG@CC„ðÙ³g #$$äǼsçNrr2à?ÿùþZÁÁÁÞÞÞ,‹ÉdºººîÙ³7-”€úñíèÑ£¶¶¶ß~ûmOOÏ¥K—fÍšE¡PØl6 77w```íÚµ !ÕåÄwTØy”ñ4m8á׿üü|:~ÿþ}YÉÍ›7õôôŠ‹‹ñU·cÇ777GGÇO?ýÔÓÓ300Póýç¿þõ¯©S§ÚÙÙedd™››ãå¿þúë† ¬­­ß|óÍŠŠ Ùëöõõ………1 ++«íÛ·ËnðFãO"‘¤§§;::š˜˜¬X±¢¼¼|Ú´i”””)S¦8::â¨ôñ@9§H$zûí·ŒŒve<ÍGjïþsô‚úúú ovÿüsùUEsæÌyçw^]ÄQð‡®Äù#6ȱAþˆ òGlÆæ¯µµÕÛÛûêÕ«²’üqùòå²)–µMoooJJÊÆ}}}£££¿ÿþû±¶!Ü·oŸ¯¯/àÉ“'^^^Zˆùm·ÆêÏÙÙ944ôèÑ£<044”žž®zj—‰†ËånÞ¼™N§'%%eff.[¶lïÞ½·n퇑{{{kkk¿úê+€‘‘‘æ)Í_‚®®®5kÖàËÚh_1Ÿaaa&&&YYY€ììlƒ±qãF-SA^^ÞüùóãããgÏžmoo°nݺ±Îö#æææ“­[·NlH©TÊårñem´¯À˜ýa–˜˜X]]}úôéêêêÄÄD {þ@,gff®]»víÚµ™™™b±@›ššòòòýüüRSSñ3Xe-Àµk×"##ß}÷Ýààà‹/â{ÖÕÕ­_¿^>Lxx8>;€Çã8p`Íš5þþþÇ …//¯ÚÚÚðððÕ«WóÍ7€˜˜Àºuë€Üø!¬¨¨øë_ÿúþûïÿýﯯ¯÷òò’ýdËò=b2™õõõ[¶lY±bÅúõëÏœ9£®ýÑÇ+/sÿ2sæÌÀÀÀ'N|ðÁ3fÌ•wuueee¥¥¥544äååáåçÎKLL¼sçN]]]jjjzzúãÇ ÔÕINNöóóûæ›oÂÂÂþùÏŽŒŒðx¼¾¾¾×_]>‰¡¡!~&Ž9Âf³333ŸO£ÑV¬XQYYI§ÓñÇë Ee$±X|ùòå>úÈÊÊÊÁÁaÓ¦M555ø&???##£÷Þ{ Ù8þ|ttôÂ… MLL,X°iÓ&ÍGïÑäÉ“sss·mÛÆ`0ð·ÑÐÐ6âiàe~¿µ¶¶¶©©)===>>ÞÓÓsÉ’%xùÓ§OåÇ·I“žÿL*~ÒtwwÛÚÚâ%ööööööêj§§§çååÍœ9388xÑ¢EÆÆÆ¦¦¦ííí2ñ€Ÿþùßÿþ÷‘#G¸\®T*µ¶¶ÆËmllØl6¾lff ò*éìì”H¦OŸ®°ƒÂgðaÖÑÑqøða>Ÿïì쬡}‡3žxsµÞÞÞ£GFGG»»»‡‡‡§¥¥Í;wòäÉ“ôôt>Ü= 0Œ§OŸâ‡éÁƒׯ_ UYK H¥Òääd±X|éÒ¥]»v•••/Y²¤°°ðóÏ?—…555b±˜N§›ššêééuuuáo‹ÎÎNü¸õ§¬<>”ÝE··ÿö3牄J¥öôôüî¨a@ $'''''¿õÖ["‘¨ººZ]û㌧±Ÿ´´4‡÷ß`jjúÅ_à[—.]š““ÓÝÝÍb±ÊÊÊäë¾ûî»'NœxøðáÇ9ÒÝÝ­®…B‰¯««‰D†Ñét@ddä;wöïß÷î]‹õÕW_•””lÞ¼€a˜——×_|ÑÕÕõðáÃÜÜ\ŸÑ÷ËÏÏ/++ëöíÛ\.·±±1??ŸB¡.^¼8<<¬|=ˆD"±XŒa˜P(Ä/öÃÃÃø&>Ÿ/¿ç8ãi`lçßÅ‹oß¾}òäIü]ƒaX|||LLŒ‡‡‡‡‡Gddä—_~¹eË …âáá%ÿ¶ ‰Y¼xqTT^®\‹F£}òÉ'YYYÏž=³¶¶NJJ¢Ñh€)S¦dgg?~<))‰Ïç¿þúëûöí[¼x1ÞÎÇüå—_FGGëëë/[¶,$$dôýòóó“H$ééé®®®ÑÑч211‰ŒŒÌÈÈ(((ˆU~V`ddôᇦ¤¤{{{'$$Ï;wýúõUUUò;'ž~÷û× %))éø÷¿úúzsssGGG|µ®®îÔ©S999ºM¥//¯Â€€|=ÿ‹µoß¾ÖÖV@pïÞ½“'Oâˆÿ}È6À˱qãÆ‘‘‘Ý»w÷÷÷[YYùúú®ZµJסFòT*522222R×AÆ ?‰ òGl?bƒüäØ ‡Üß %j¿ÿpîÜ9]eBŒÙ#_@úùÿHºþäØ Äù#6ÿœMË®”l¸IEND®B`‚XQilla-2.3.0/docs/simple-api/InputParser_8hpp.html0000644000151400015140000000576311653571064016737 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

InputParser.hpp File Reference

#include <vector>
#include <string>
#include <istream>
#include <xqilla/framework/XQillaExport.hpp>
Include dependency graph for InputParser.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  InputParser
XQilla-2.3.0/docs/simple-api/classItemFactory.html0000644000151400015140000024415511653571064017000 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ItemFactory Class Reference

#include <ItemFactory.hpp>

Inheritance diagram for ItemFactory:

List of all members.

Public Member Functions

virtual ~ItemFactory ()
virtual
AnyAtomicType::AtomicObjectType 
getPrimitiveTypeIndex (const XMLCh *typeURI, const XMLCh *typeName, bool &isPrimitive) const =0
virtual void getPrimitiveTypeName (AnyAtomicType::AtomicObjectType type, const XMLCh *&typeURI, const XMLCh *&typeName) const =0
virtual AnyAtomicType::Ptr createDerivedFromAtomicType (AnyAtomicType::AtomicObjectType typeIndex, const XMLCh *value, const DynamicContext *context)=0
virtual AnyAtomicType::Ptr createDerivedFromAtomicType (AnyAtomicType::AtomicObjectType typeIndex, const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
virtual AnyAtomicType::Ptr createDerivedFromAtomicType (const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
virtual ATDoubleOrDerived::Ptr createDouble (const MAPM value, const DynamicContext *context)=0
virtual ATDoubleOrDerived::Ptr createDouble (const XMLCh *value, const DynamicContext *context)=0
virtual ATDoubleOrDerived::Ptr createDoubleOrDerived (const XMLCh *typeURI, const XMLCh *typeName, const MAPM value, const DynamicContext *context)=0
virtual ATDoubleOrDerived::Ptr createDoubleOrDerived (const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
virtual ATFloatOrDerived::Ptr createFloat (const MAPM value, const DynamicContext *context)=0
virtual ATFloatOrDerived::Ptr createFloat (const XMLCh *value, const DynamicContext *context)=0
virtual ATFloatOrDerived::Ptr createFloatOrDerived (const XMLCh *typeURI, const XMLCh *typeName, const MAPM value, const DynamicContext *context)=0
virtual ATFloatOrDerived::Ptr createFloatOrDerived (const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
virtual ATDecimalOrDerived::Ptr createInteger (const int value, const DynamicContext *context)=0
virtual ATDecimalOrDerived::Ptr createInteger (const MAPM value, const DynamicContext *context)=0
virtual ATDecimalOrDerived::Ptr createInteger (const XMLCh *value, const DynamicContext *context)=0
virtual ATDecimalOrDerived::Ptr createNonNegativeInteger (const MAPM value, const DynamicContext *context)=0
virtual ATDecimalOrDerived::Ptr createDecimal (const MAPM value, const DynamicContext *context)=0
virtual ATDecimalOrDerived::Ptr createDecimal (const XMLCh *value, const DynamicContext *context)=0
virtual ATDecimalOrDerived::Ptr createDecimalOrDerived (const XMLCh *typeURI, const XMLCh *typeName, const MAPM value, const DynamicContext *context)=0
virtual ATDecimalOrDerived::Ptr createDecimalOrDerived (const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
virtual ATDateOrDerived::Ptr createDate (const XMLCh *value, const DynamicContext *context)=0
virtual ATDateOrDerived::Ptr createDateOrDerived (const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
virtual ATDateTimeOrDerived::Ptr createDateTime (const XMLCh *value, const DynamicContext *context)=0
virtual ATDateTimeOrDerived::Ptr createDateTimeOrDerived (const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
virtual ATTimeOrDerived::Ptr createTime (const XMLCh *value, const DynamicContext *context)=0
virtual ATTimeOrDerived::Ptr createTimeOrDerived (const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
virtual ATGDayOrDerived::Ptr createGDayOrDerived (const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
virtual ATGMonthDayOrDerived::Ptr createGMonthDayOrDerived (const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
virtual ATGMonthOrDerived::Ptr createGMonthOrDerived (const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
virtual ATGYearMonthOrDerived::Ptr createGYearMonthOrDerived (const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
virtual ATGYearOrDerived::Ptr createGYearOrDerived (const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
virtual ATDurationOrDerived::Ptr createDayTimeDuration (const XMLCh *value, const DynamicContext *context)=0
virtual ATDurationOrDerived::Ptr createDayTimeDuration (const MAPM &seconds, const DynamicContext *context)=0
virtual ATDurationOrDerived::Ptr createYearMonthDuration (const XMLCh *value, const DynamicContext *context)=0
virtual ATDurationOrDerived::Ptr createYearMonthDuration (const MAPM &months, const DynamicContext *context)=0
virtual ATStringOrDerived::Ptr createString (const XMLCh *value, const DynamicContext *context)=0
virtual ATStringOrDerived::Ptr createStringOrDerived (const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
virtual ATUntypedAtomic::Ptr createUntypedAtomic (const XMLCh *value, const DynamicContext *context)=0
virtual ATBooleanOrDerived::Ptr createBoolean (bool value, const DynamicContext *context)=0
virtual ATBooleanOrDerived::Ptr createBoolean (BoolResult value, const DynamicContext *context)=0
virtual ATBooleanOrDerived::Ptr createBoolean (const XMLCh *value, const DynamicContext *context)=0
virtual ATBooleanOrDerived::Ptr createBooleanOrDerived (const XMLCh *typeURI, const XMLCh *typeName, bool value, const DynamicContext *context)=0
virtual ATBooleanOrDerived::Ptr createBooleanOrDerived (const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0
virtual ATAnyURIOrDerived::Ptr createAnyURI (const XMLCh *value, const DynamicContext *context)=0
virtual ATQNameOrDerived::Ptr createQName (const XMLCh *uri, const XMLCh *prefix, const XMLCh *name, const DynamicContext *context)=0
virtual ATQNameOrDerived::Ptr createQNameOrDerived (const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *uri, const XMLCh *prefix, const XMLCh *name, const DynamicContext *context)=0

Constructor & Destructor Documentation

virtual ItemFactory::~ItemFactory ( ) [inline, virtual]

Member Function Documentation

virtual ATAnyURIOrDerived::Ptr ItemFactory::createAnyURI ( const XMLCh *  value,
const DynamicContext context 
) [pure virtual]
virtual ATBooleanOrDerived::Ptr ItemFactory::createBoolean ( bool  value,
const DynamicContext context 
) [pure virtual]
virtual ATBooleanOrDerived::Ptr ItemFactory::createBoolean ( BoolResult  value,
const DynamicContext context 
) [pure virtual]
virtual ATBooleanOrDerived::Ptr ItemFactory::createBoolean ( const XMLCh *  value,
const DynamicContext context 
) [pure virtual]
virtual ATBooleanOrDerived::Ptr ItemFactory::createBooleanOrDerived ( const XMLCh *  typeURI,
const XMLCh *  typeName,
bool  value,
const DynamicContext context 
) [pure virtual]
virtual ATBooleanOrDerived::Ptr ItemFactory::createBooleanOrDerived ( const XMLCh *  typeURI,
const XMLCh *  typeName,
const XMLCh *  value,
const DynamicContext context 
) [pure virtual]
virtual ATDateOrDerived::Ptr ItemFactory::createDate ( const XMLCh *  value,
const DynamicContext context 
) [pure virtual]
virtual ATDateOrDerived::Ptr ItemFactory::createDateOrDerived ( const XMLCh *  typeURI,
const XMLCh *  typeName,
const XMLCh *  value,
const DynamicContext context 
) [pure virtual]
virtual ATDateTimeOrDerived::Ptr ItemFactory::createDateTime ( const XMLCh *  value,
const DynamicContext context 
) [pure virtual]
virtual ATDateTimeOrDerived::Ptr ItemFactory::createDateTimeOrDerived ( const XMLCh *  typeURI,
const XMLCh *  typeName,
const XMLCh *  value,
const DynamicContext context 
) [pure virtual]
virtual ATDurationOrDerived::Ptr ItemFactory::createDayTimeDuration ( const XMLCh *  value,
const DynamicContext context 
) [pure virtual]
virtual ATDurationOrDerived::Ptr ItemFactory::createDayTimeDuration ( const MAPM &  seconds,
const DynamicContext context 
) [pure virtual]
virtual ATDecimalOrDerived::Ptr ItemFactory::createDecimal ( const MAPM  value,
const DynamicContext context 
) [pure virtual]
virtual ATDecimalOrDerived::Ptr ItemFactory::createDecimal ( const XMLCh *  value,
const DynamicContext context 
) [pure virtual]
virtual ATDecimalOrDerived::Ptr ItemFactory::createDecimalOrDerived ( const XMLCh *  typeURI,
const XMLCh *  typeName,
const XMLCh *  value,
const DynamicContext context 
) [pure virtual]
virtual ATDecimalOrDerived::Ptr ItemFactory::createDecimalOrDerived ( const XMLCh *  typeURI,
const XMLCh *  typeName,
const MAPM  value,
const DynamicContext context 
) [pure virtual]
virtual AnyAtomicType::Ptr ItemFactory::createDerivedFromAtomicType ( AnyAtomicType::AtomicObjectType  typeIndex,
const XMLCh *  value,
const DynamicContext context 
) [pure virtual]
virtual AnyAtomicType::Ptr ItemFactory::createDerivedFromAtomicType ( AnyAtomicType::AtomicObjectType  typeIndex,
const XMLCh *  typeURI,
const XMLCh *  typeName,
const XMLCh *  value,
const DynamicContext context 
) [pure virtual]
virtual AnyAtomicType::Ptr ItemFactory::createDerivedFromAtomicType ( const XMLCh *  typeURI,
const XMLCh *  typeName,
const XMLCh *  value,
const DynamicContext context 
) [pure virtual]
virtual ATDoubleOrDerived::Ptr ItemFactory::createDouble ( const MAPM  value,
const DynamicContext context 
) [pure virtual]
virtual ATDoubleOrDerived::Ptr ItemFactory::createDouble ( const XMLCh *  value,
const DynamicContext context 
) [pure virtual]
virtual ATDoubleOrDerived::Ptr ItemFactory::createDoubleOrDerived ( const XMLCh *  typeURI,
const XMLCh *  typeName,
const XMLCh *  value,
const DynamicContext context 
) [pure virtual]
virtual ATDoubleOrDerived::Ptr ItemFactory::createDoubleOrDerived ( const XMLCh *  typeURI,
const XMLCh *  typeName,
const MAPM  value,
const DynamicContext context 
) [pure virtual]
virtual ATFloatOrDerived::Ptr ItemFactory::createFloat ( const MAPM  value,
const DynamicContext context 
) [pure virtual]
virtual ATFloatOrDerived::Ptr ItemFactory::createFloat ( const XMLCh *  value,
const DynamicContext context 
) [pure virtual]
virtual ATFloatOrDerived::Ptr ItemFactory::createFloatOrDerived ( const XMLCh *  typeURI,
const XMLCh *  typeName,
const MAPM  value,
const DynamicContext context 
) [pure virtual]
virtual ATFloatOrDerived::Ptr ItemFactory::createFloatOrDerived ( const XMLCh *  typeURI,
const XMLCh *  typeName,
const XMLCh *  value,
const DynamicContext context 
) [pure virtual]
virtual ATGDayOrDerived::Ptr ItemFactory::createGDayOrDerived ( const XMLCh *  typeURI,
const XMLCh *  typeName,
const XMLCh *  value,
const DynamicContext context 
) [pure virtual]
virtual ATGMonthDayOrDerived::Ptr ItemFactory::createGMonthDayOrDerived ( const XMLCh *  typeURI,
const XMLCh *  typeName,
const XMLCh *  value,
const DynamicContext context 
) [pure virtual]
virtual ATGMonthOrDerived::Ptr ItemFactory::createGMonthOrDerived ( const XMLCh *  typeURI,
const XMLCh *  typeName,
const XMLCh *  value,
const DynamicContext context 
) [pure virtual]
virtual ATGYearMonthOrDerived::Ptr ItemFactory::createGYearMonthOrDerived ( const XMLCh *  typeURI,
const XMLCh *  typeName,
const XMLCh *  value,
const DynamicContext context 
) [pure virtual]
virtual ATGYearOrDerived::Ptr ItemFactory::createGYearOrDerived ( const XMLCh *  typeURI,
const XMLCh *  typeName,
const XMLCh *  value,
const DynamicContext context 
) [pure virtual]
virtual ATDecimalOrDerived::Ptr ItemFactory::createInteger ( const XMLCh *  value,
const DynamicContext context 
) [pure virtual]
virtual ATDecimalOrDerived::Ptr ItemFactory::createInteger ( const MAPM  value,
const DynamicContext context 
) [pure virtual]
virtual ATDecimalOrDerived::Ptr ItemFactory::createInteger ( const int  value,
const DynamicContext context 
) [pure virtual]
virtual ATDecimalOrDerived::Ptr ItemFactory::createNonNegativeInteger ( const MAPM  value,
const DynamicContext context 
) [pure virtual]
virtual ATQNameOrDerived::Ptr ItemFactory::createQName ( const XMLCh *  uri,
const XMLCh *  prefix,
const XMLCh *  name,
const DynamicContext context 
) [pure virtual]
virtual ATQNameOrDerived::Ptr ItemFactory::createQNameOrDerived ( const XMLCh *  typeURI,
const XMLCh *  typeName,
const XMLCh *  uri,
const XMLCh *  prefix,
const XMLCh *  name,
const DynamicContext context 
) [pure virtual]
virtual ATStringOrDerived::Ptr ItemFactory::createString ( const XMLCh *  value,
const DynamicContext context 
) [pure virtual]
virtual ATStringOrDerived::Ptr ItemFactory::createStringOrDerived ( const XMLCh *  typeURI,
const XMLCh *  typeName,
const XMLCh *  value,
const DynamicContext context 
) [pure virtual]
virtual ATTimeOrDerived::Ptr ItemFactory::createTime ( const XMLCh *  value,
const DynamicContext context 
) [pure virtual]
virtual ATTimeOrDerived::Ptr ItemFactory::createTimeOrDerived ( const XMLCh *  typeURI,
const XMLCh *  typeName,
const XMLCh *  value,
const DynamicContext context 
) [pure virtual]
virtual ATUntypedAtomic::Ptr ItemFactory::createUntypedAtomic ( const XMLCh *  value,
const DynamicContext context 
) [pure virtual]
virtual ATDurationOrDerived::Ptr ItemFactory::createYearMonthDuration ( const MAPM &  months,
const DynamicContext context 
) [pure virtual]
virtual ATDurationOrDerived::Ptr ItemFactory::createYearMonthDuration ( const XMLCh *  value,
const DynamicContext context 
) [pure virtual]
virtual AnyAtomicType::AtomicObjectType ItemFactory::getPrimitiveTypeIndex ( const XMLCh *  typeURI,
const XMLCh *  typeName,
bool &  isPrimitive 
) const [pure virtual]
virtual void ItemFactory::getPrimitiveTypeName ( AnyAtomicType::AtomicObjectType  type,
const XMLCh *&  typeURI,
const XMLCh *&  typeName 
) const [pure virtual]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/inherit_graph_29.md50000644000151400015140000000004011653571063016360 0000000000000011f8e16c7d7236832e6ca73adc6c2062XQilla-2.3.0/docs/simple-api/PlatformUtils_8hpp.html0000644000151400015140000000745611653571064017271 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

PlatformUtils.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <xercesc/util/XMLException.hpp>
#include <xercesc/util/PanicHandler.hpp>
#include <xercesc/util/XMLFileMgr.hpp>
#include <xercesc/util/XMLMutexMgr.hpp>
Include dependency graph for PlatformUtils.hpp:

Go to the source code of this file.

Classes

class  xercesc::XMLDeleter
class  xercesc::XMLPlatformUtils
 Utilities that must be implemented in a platform-specific way. More...

Namespaces

namespace  xercesc

Functions

 xercesc::MakeXMLException (XMLPlatformUtilsException, XMLUTIL_EXPORT) inline XMLSize_t XMLPlatformUtils
XQilla-2.3.0/docs/simple-api/classRefCountPointer.html0000644000151400015140000003660611653571064017640 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

RefCountPointer< T > Class Template Reference

Super class of all the reference counted wrappers for Items. More...

#include <ReferenceCounted.hpp>

Inheritance diagram for RefCountPointer< T >:

List of all members.

Public Member Functions

 RefCountPointer (T *p=0)
template<class T2 >
 RefCountPointer (const RefCountPointer< T2 > &o)
 RefCountPointer (const RefCountPointer< T > &o)
RefCountPointeroperator= (const RefCountPointer< T > &o)
 ~RefCountPointer ()
T * operator-> () const
 operator T * () const
T * get () const
bool isNull () const
bool notNull () const

Protected Attributes

T * _p

Detailed Description

template<class T>
class RefCountPointer< T >

Super class of all the reference counted wrappers for Items.


Constructor & Destructor Documentation

template<class T>
RefCountPointer< T >::RefCountPointer ( T *  p = 0) [inline]
template<class T>
template<class T2 >
RefCountPointer< T >::RefCountPointer ( const RefCountPointer< T2 > &  o) [inline]
template<class T>
RefCountPointer< T >::RefCountPointer ( const RefCountPointer< T > &  o) [inline]
template<class T>
RefCountPointer< T >::~RefCountPointer ( ) [inline]

Member Function Documentation

template<class T>
T* RefCountPointer< T >::get ( ) const [inline]
template<class T>
bool RefCountPointer< T >::isNull ( ) const [inline]
template<class T>
bool RefCountPointer< T >::notNull ( ) const [inline]
template<class T>
RefCountPointer< T >::operator T * ( ) const [inline]
template<class T>
T* RefCountPointer< T >::operator-> ( ) const [inline]
template<class T>
RefCountPointer& RefCountPointer< T >::operator= ( const RefCountPointer< T > &  o) [inline]

Member Data Documentation


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/inherit_graph_26.map0000644000151400015140000000046511653571064016461 00000000000000 XQilla-2.3.0/docs/simple-api/classAutoDeallocate.html0000644000151400015140000003130211653571063017423 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

AutoDeallocate< TYPE > Class Template Reference

#include <XPath2MemoryManager.hpp>

List of all members.

Public Member Functions

 AutoDeallocate (xercesc::MemoryManager *mmgr, size_t size=sizeof(TYPE))
 AutoDeallocate (TYPE *p, xercesc::MemoryManager *mmgr)
 ~AutoDeallocate ()
TYPE & operator* () const
TYPE * operator-> () const
 operator TYPE * () const
TYPE * get () const
TYPE * adopt ()
TYPE * swap (TYPE *p)
void set (TYPE *p)

template<class TYPE>
class AutoDeallocate< TYPE >


Constructor & Destructor Documentation

template<class TYPE>
AutoDeallocate< TYPE >::AutoDeallocate ( xercesc::MemoryManager mmgr,
size_t  size = sizeof(TYPE) 
) [inline]
template<class TYPE>
AutoDeallocate< TYPE >::AutoDeallocate ( TYPE *  p,
xercesc::MemoryManager mmgr 
) [inline]
template<class TYPE>
AutoDeallocate< TYPE >::~AutoDeallocate ( ) [inline]

Member Function Documentation

template<class TYPE>
TYPE* AutoDeallocate< TYPE >::adopt ( ) [inline]
template<class TYPE>
TYPE* AutoDeallocate< TYPE >::get ( ) const [inline]
template<class TYPE>
AutoDeallocate< TYPE >::operator TYPE * ( ) const [inline]
template<class TYPE>
TYPE& AutoDeallocate< TYPE >::operator* ( ) const [inline]
template<class TYPE>
TYPE* AutoDeallocate< TYPE >::operator-> ( ) const [inline]
template<class TYPE>
void AutoDeallocate< TYPE >::set ( TYPE *  p) [inline]
template<class TYPE>
TYPE* AutoDeallocate< TYPE >::swap ( TYPE *  p) [inline]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/structQueryPathTreeFilter_1_1StackEntry.html0000644000151400015140000002560511653571063023345 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

QueryPathTreeFilter::StackEntry Struct Reference

#include <QueryPathTreeFilter.hpp>

List of all members.

Public Member Functions

 StackEntry ()
void addNode (const QueryPathNode *isn)
void addChildren (const QueryPathNode *isn)

Public Attributes

xercesc::XMLBuffer prefix
xercesc::XMLBuffer uri
xercesc::XMLBuffer localname
bool matched
bool nonElementChildren
bool attrChildren
QPNVector children

Constructor & Destructor Documentation

QueryPathTreeFilter::StackEntry::StackEntry ( ) [inline]

Member Function Documentation

void QueryPathTreeFilter::StackEntry::addChildren ( const QueryPathNode *  isn)
void QueryPathTreeFilter::StackEntry::addNode ( const QueryPathNode *  isn)

Member Data Documentation


The documentation for this struct was generated from the following file:
XQilla-2.3.0/docs/simple-api/classEventSerializer__inherit__graph.png0000644000151400015140000000544711653571064022705 00000000000000‰PNG  IHDRxu ˜²[bKGDÿÿÿ ½§“ ÜIDATxœíkLK€§RªB=X.P8j€ˆ‰*Æ;’?ãQñ¯5“É! †“¨x$FŒxA±‚ (Rƒˆ(¨5Š!Š •j)´e—î÷cüö”Þ ejýæùµ™¾óöÙåívÙvELÿ3ÀÚ ü¿€E#‹F¦¾Ž²²²ääd”©ü$$$„„„èìÒ+Z,—””DFFö[V¿W¯^åóùúzõІ\¹rÅÒùü¶0 ½¸F#‹F,X4"ú*š¡ ‹d¦1Ëû÷ï ·˜Ëû÷ïaþHX#§w¦PQQ1jÔ¨¾ÇQ§¾¾~òäÉ_¿~µlX+bÑnnnîîî}£ŽJ¥úöí›ecZ—þªÑ‹/Þ¹s'ÜV*•çæÍ›‚ Á°aø\®@ À`0.\¸àïïïìì|àÀÀ”)S&î¿Â   }ûöÁFí˜ÝÝÝ)))~~~C† ™>}úãÇ5âhç ‹H$òöö.//ï“J999ziÏŸ?oï EQ—/_öööV©TEåçç{zzAQÔþýû#""jkk'L˜°k×.dÙ²e‰$33ðíÛ·ºº:õÙµgÔÕÕQ%•JY,ÖÆ³³³­­­:c>|˜Ëå …ÂÏŸ?ß¼yÓÓÓ¡'ÒÎ öΛ7¯´´T&“U‘““£··ï¢uŽGGǪª*Š¢V®\Ç3¦¹¹nß½{700¹wïEQ]]]ðÅk‹ÖŠV*•oÞ¼‘ÉdÝÝÝeeet»vL??¿¬¬,:æ¹sç4Dkç{kkkz Œ‰¶@®««óññÑhtppX´hQnnîØ±c ž={Û?|øàááAsrr‚ðø²··7qúTÅb½{÷ŽÏçËd²   õ§hÄüôéS`` Ý 1…¾ÜÆŒ£/+ÓéÇó訨¨ÜÜÜ7nLœ8Ñ××6ºººÂ#Ž¢(‰DRYYù3½ÌD.—/_¾\ ÔÔÔœ>þãǵµµáááiii"Ëd2£³+•Ê®®.‹%—Ë“’’°‚k³eË@ŸŸßÒÒrûöíÄÄDfåf6újJk4$::šÍf«¿H¥Ò 6p8—èè莎„>”à6A3fÌ`³ÙêóÒ-‡vvvöòò:yòdTT—ËÕ“$É””GGÇ©S§ÂV½Fkç¦ñVaTE?¾bh ‹Æ×:E#‹F,X4"°hD`ш°=Ñ’¦&‰µ³0#WïæÌ™ƒ&ÓùúÕàêjcÿåÒ+ÚËËë×¼ñ®¾Þ…Á`øúv[;M"##½¼¼ôõ2(›újÅ›7Ÿy¼€Hçïïatü¯ƒÕè7ž3™˜L»‚‚çÖÎŤ¤ª°ð…BAX++³° Ñ%%¯ R»]¡ D¢×èóé¶!úÚµ§vv:îb¶³c\»fÕÃD··+JKßè<Á I•HôZ&S¢ÏÊ\l@tQÑKú¬N‚è.*ªE™Oï°‹JI‡Túï‰Ýß ÿü³”nùãAŽ£23 ÜMÚßp8ŽêY€?ÿt±^F½ÁJÇï,X4"°hD`шÀ¢E#‹F,X4"°hD`шÀ¢E#‹F,X4"°hD`шÀ¢E#‹F,X4"°hD`шÀ¢E#¢Çÿ§OŸ¶b*&rõj 2r¸µ1Ntt4½ÝC4šõúˆ »û‡µ1Žº[ͯV$%%Íž=i:¿#÷ïßß³gz ®ÑˆÀ¢E#‹F,fs644T»ñÞ½{–Hæ_äryVVÖƒÚÚÚÜÜÜx<ÞêÕ«Y,–Ñ'655­Y³F_>t¯áaýAo¾¢œššª¾0ŒEhnnÞ²eK~~>|xüøq±X¼wï^77·†††ãÇ···ÇÆÆÃf³£¢¢,5Ì‚ô¦t :Ô¹'}ÏC¥RI¥Rúayy9ŸÏ÷õõ:th@@@llìÇM‰ãää¤þÁ·Ã,ˆÅjtBB½°A ,€ $™žž¾dÉ’%K–¤§§“$  -))Y·nÝÂ… /_¾ ضm`éÒŸ¿Yààà——G«€Ë•è ØÔÔZSS³bÅŠÛ·oÓÅíÑ£G|>?<<<""ââÅ‹êÙ§Àí°ÿñ×_цgyùò¥¹~z#Z¡PÈ{àñxeeeðÓý“'O ÈÍÍmnnÎÈÈ8tèPMMÍÙ³gaòòò´´´˜˜˜ŒŒŒööv¸“„B!ì…K2-[¶L äääˆÅbzv}¯\¹²k×.z­¨ÎÎÎÄÄD__ßììì­[·fff~ÿþ]çË).....¾sçÎÌ™3.\hÖ,¦ÓÑ›7oþOOÓ¦M“J¥oß¾ˆD¢ððp;;;@QQÑŽ;¸\îèÑ£cbbªªª`Å‹³Ùì¹sçÔ‹dÒ¤I999ÇŽ7nÜ;wV­Z%‰`—¾€ÑÑÑAAAƒ ‚Y,Ö™3gbcc]\\¸\. ££ÃÀ‹*,,lmmݾ}»Y³˜NoÞ ³³³‡×¼J9pàÀéÓ§—••9²¢¢®"hii‰ˆˆ ‡9:þüå WWW“©#…BQQQ1{ölÿµk×fee¥§§óx<½½½{¼0&³±±ñàÁƒr¹ÜèX__áÂ…ÔÔTzý1g1Kþ0 Ç;q℟Ÿßˆ#`£““Ó‘#GàŽ‘Édmmm°ÝÀ%YŠ¢’““½½½áºz #88¸  Àp@}¦T*wïÞ½{÷î©S§QTT¤o:¹\žœœ÷½Y³˜NoJÇ÷ïßÛzÛƒƒƒe2YVV,&™3gfffŠÅâúúú¸¸¸¼¼<‘a¹33³©©‰Ãᄆ†®_¿^_@‹-³Ùì­[·&''ûì³á·åÊÊÊŽ;výúõÝ»w¯^½š æääìÛ·o```ïÞ½S¦L Ü´i“ñØ™¸ç(¸ººFDD:t¨§§GT(ßÿ}tt´³³³»»ûæÍ›óóóóòò¢¢¢/^loo¿`Á‚ˆˆ²òÅ‹cbbØl¶»»{dddyyùð^Ö­[gmm½hÑ" ƒ¯½öš«««··÷«¯¾šŸŸ¯'8ј¸ç(Éš5k~øá‡ÄÄÄ¡P¨R©8¹èââÒÛÛK£Ñ¸\®z+www²ÐÝݽvíZuü±ÇÞ…½½=Ðh4Í ««+Y˜6mZoo¯žàDc¢¥Ñh;wî ?þ<a2™fff]]]Ó§O€ÎÎN‹Å`0ššš<<<È:---dÁÖÖöàÁƒ... ‹u¾ÏÒrIÒÞÞN¾,ÚÚÚHå÷ N4&ô¨KâììüÚk¯>}š\477÷÷÷ÿä“Oºººnݺuüøñ€€€^xáÈ‘#W®\ååå'Nœ +/^¼øØ±cwîÜinn~óÍ7srràÂ… ƒƒƒú;MNNîèèøå—_ÒÒÒ–/_®'8јèç(ÉêÕ«üñÇk×®‘‹111ÉÉÉQQQ ã/ùKhh¨¹¹¹\.?räH¿‡‡G||ü믿¯¼òJrrò–-[h4Ú’%K"##àÃ?ôóóÓ9« رcÇÐÐвeËBCCÉ1V+hüý4»388¸··w"ÿ´££cÆ Z77tGÄßß?###88Ø  ŽÀC0êbÆ6ªÍc=¦þTª?81ÁFµ±³³Û¾}ûh‚l5°QÔÀFQE l5£¿üÒOu &‚‚»€ÕÕÕ<Ï”=*–B¡—ƒC•);¥ S]¸p¡‰{€¶6›žg–¥¥Žï0www777Sö¦¿¯K îimíß¾ý9oåȵrпŽÖÕu¶¶öÀ™3Tçb Ð7š™yÁ @[› ªª•êtŒâFU*"#£B.W€¹9='§’ꌌâFËÊš1YV(”gÏ^S*UÔ¦dl7š]inþû> ƒ%%MæcP6*—+sr*ŠßOJsszvöu S2(-.¾)K5# …2/¯Z&3é§Rƒ²Ñ¬¬ëtºö77ýu¨°ðJò1 È”^¼Èþ>ÈÌÌ,3åY£uä‡-”JÕwßÕJ‡¯Bdfg_¿ßýM™L‘Ÿÿ³iÓ1h‰$……7õܲÎÎFöVšwê¥REw÷=õbAA]||VIÉ;ênæêʤ"5£ópüJb¬Lšd>}úï¿4rp°Í 9ê>Ê`£¨¢6ŠØ(j`£¨¢6ŠØ(j`£¨¢6ŠØ(j`£¨¢6ŠØ(j`£¨¢6ŠØ(j`£¨¢6ŠØ(j`£¨¢6ŠØ(j`£¨¢6ŠøEð§Ÿ~JUF¥¶Vèî»»;9áíoP—•q13›Ä`°©ÎÂXiJÔþÕ¾égnÃ<Ãeáë(j`£¨¢6ŠØ(j`£¨1f£4 f̘±qãFrÖò Nggçúõëg̘1yòä§žz*;;{Ðh´ÆÆFÓl5nÆsŽ^½zµ«««½½ý³Ï>‰DóçÏ¿{÷®Á3{š››Y,–z±¿¿Þ¼yÖÖÖååå/¿ürHHÈ¥K—(ÌÐxŒç¹€NNNàââòì³Ï>ûì³|÷Ýw ÛøQ©Týý¿O}—àï–F.Ι3§»»ûÃ?|î¹ç(JЈ<èu”F£EEE]¸p\¼{÷îßÿþw‹åêêÊãñ††† EBB´iÓ6nÜHžÍ4ÚoÏ×,Óh´'Nx{{;88$%%}ùå—3gδµµ'+ÈåòØØXGGG6›+—ËÉ­Nž<éíí=uêÔýë_ð¿ÙÙÈ—dffÆÄÄh¦püøq²|þüyò vvvNJJ9“|÷Ýw\.—ÉdîÛ·OOJZhmEîrnnîìÙ³Ùlö¶mÛ¤R©Îàx”hÝ×ÍÈÈ ô š‘ŠŠ ;;;²ºlÙ²¦¦&>Ÿ?wîÜÄÄÄøøøðùüššš ðx<‚ Ô]k– $$D$‘çSpp°H$:zô(ôõõ±ÿþµk×¶¶¶òùüùóçÇÅÅ‘[ …ÂcÇŽ@¿f›B¡Î݉DáááíííéééÐÓÓ£3g²£U«V‰D¢ÌÌLý)i1­­ÈôV¬XQ___ZZÊåruõ» "((Hë¾®!Êd2:^[[KƳ²²¸\îìÙ³³²²ÈH]]YÖc´²²’lJ«LvêååÕÕÕEVÎÏÏ÷óó#·*,,Ô¬©Ù¦@ ¡P¨sw¤Ré7Äb±R©,..&7×™3ÙQQQAJ¥RJZGLk+2=>ŸOVÈÈÈàr¹:ƒú]ºŒàùº pçÎ¥RI–€Ëå¶··€§§'ñööööö>Hh.ÚØØƒÁÐ*“´´´8;;«mmmɇÃѪ©†Éd:::ÖÕÕýùÏV+**^ýõââbkkëúúú-[¶ˆÅâyóæ‘koß¾}¿œÉŽÌÌ~¿ZÝ/%M†o‡ÅËË‹}×/½ôÒ[o½uûöm>Ÿ¿råÊÇë©,ÿ6cÚÞ½{‹‹‹Ã®^½Êçóß}÷ÝO>ù„ô$•Je2™………D"IHH€9)¥´´´{÷îéÙ bbb+**víÚµaÃ=Á±¡5âæ:ªÆÍÍ-44ôÎ;êµ ,,ÌÞÞÞÙÙù7ÞH$CCC<ÃáØÚÚ†„„¨¯g{öì±³³óððÈÍÍë¨úõ®³,‰6oÞÌd2ííí#""uÖ”Ëå‹-šŽG³444ŒµÁÑc¹gd`£Ó¦MÛ¸qc__ŸVÜÞÞÉÅsçÎùùùYYY999íÛ·O«‚ú¨ÉåòÝ»w»¹¹±X¬°°0¡PHnîäätõêUÍönß¾M–…Bá¦M›ìíí]\\vìØ!‘H‚€ôôt///&“¹ÿþá)Éd2Çf³x<žL&ËÍÍåp8€ ˆ¯¾úÊÓÓS,km¥ >|ØÃÃÃÎÎîƒ>PïHNNάY³¢££‡††tõU*^ºtÉÅÅeÒ¤IË—/?pà@KK ×|i‹D" ‹ðððöööôôtèééѬ .8pÀÇLJÏç×ÔÔ,X°€Çã! €<Ð: ]¶lYSSŸÏŸ;wnbb"A( ;ýýýZgÛþýû×®]ÛÚÚÊçóçÏŸGÄÆ7mÚÔÝÝíèèXVVFŒtŽ®ZµJ$eff@__YyÅŠõõõ¥¥¥\.711QgPÿQ¥Ò(A …¢´´ô½÷Þ›;w.N?yò$ñÇ!•Joܸ!‹•Jeqq19Xé4:{ö쬬,2XWWG–¨ÏW-d2N¯­­%³²²¸\.APXXHVÞ#A^^^]]]d9??ßÏÏ ¡Pèêêêëë«>èú¡T*5»àóùd…ŒŒ .—«3¨ÿRfT,Ÿ:uJ¡P‹*•*>>ÞÅÅ…v rss-Zäçç·yóf=F---kjj†wäèèxåÊÍHyyù“O>988ØÖÖäHKŸÏ·´´$nÞ¼ùÛ>ë2jii©ùöÂÖÖ–Œ¿÷Þ{t:ýÎ;Z¹ êëë‡w¡N¦ººÚÒÒRgPÿ“QC¾×%býúõ555ä"F{î¹ç …V5‰DY™’’¢§A‡ÓÒÒB–«ªªöîÝK–_xá…>úˆÐxÖszzº\.·¶¶vtt¤ÓéÍÍ¿=†¾©©ÉÅå·‰dÍÌôí,‹ÅR¿¯ …¥¥¥ÐÖÖ–œœ°cǎѺH…P__Ïápô Ã(ÍrÔÝ´iÓ¬Y³ÎŸ?ßÔÔtåÊ•… þóŸÿ$þ÷Ò F»xñâààà›o¾ •••šÔçABB‚¯¯oMMMMMÍÿýßÿmÙ²…쥧§ÇÞÞ>44ôÊ•+ÕÕÕ‰‰‰pþüyríúõë—-[ÖÜÜ\SSããã³{÷nâoDAã"{$bÛ¶m---ÕÕÕ ,غu«R© xÿý÷““S^^žÖŽqìØ±»wïj6;¼ ÿ†††òòrOOÏÝ»wë ê?ª@áuT¡P$&&úúúZYY͘1cçÎäð"—Ë-Z4yòd²ÚÇø`Ò¤I555긓“S~~¾Vå”””Å‹ë_«9½fY&“ñx<6›íààÀãñd2¹¶  ÀÍÍmÞ¼yááádÍ++«ÊÊÊá{tøða;;»>ø@Ý~NNάY³¢££‡††tG<è%"..Ôã-AB¡z{{µj–””L:UÿÚûÝ¿ÿÚµk[[[ù|þüùóãââȵýë_¿ÿþûo¾ùÆÞÞ^.—‘žžîãã£R©†ïѪU«D"Qff&ôõõ‘-¬X±¢¾¾¾´´”Ëå&&&ê ŽxÐ1ªR©^|ñE:¾aÃutÖ××§UùêÕ«,KÿÚûõòòêêê"Ëùùù~~~äZ>ŸO„B¡prrº|ù2AÏ?ÿ|RR’Î=***"B©T’#°f Adddp¹\Áƒ1ŒRóéåäÉ“EEEßÿýÙ³gsssÉ ““SU•öÓ©«ªª¼¼¼ô¯ÕŒÿMjiiqvv¦Ñh4mùòå·nÝ"ãä&t:ý¥—^ÊÊÊêëë+(( Õ™-‡Ãrª.5žžžê¦Ô³>ê š ŒvvvnÛ¶íÀK–,IHHˆŒŒìïÿí©ñ¡¡¡ï¿ÿ>y6@HHÈ©S§’’’BBBF\ ä'™ŽŽu_äéK¾x…Baii)g0d!(((;;ûôéÓ‹-ruuÕ™°ÎYWÉ“êëëIå÷ šÞò0Ò¨«R©V­ZµtéR¥RI„L&óõõ !×Þ»woöìÙþþþß~ûíÍ›7wíÚl6[*•ê_ÛÛÛ Ç¿wïÞš5kÔûµmÛ¶ÀÀÀ–––êêê lݺUsL&B¡P°ÙlGGÇÏ>ûL}:‹ÅŠŽŽ–H$:ƒ#.ŒŽ©TZRR2¾µ£a×®]ëׯ}ýᯉûGÄF‚¹$,,,.\8¾µúêììÊ`£¨¢6ŠØ(j`£¨¢6ŠØ(j`£¨¢6ŠØ(j`£¨¢6ŠØ(j`£¨¢6ŠØ(j`£¨¢6ŠØ(j`£¨¢6ŠØ(j`£¨¢6ŠãùEpAAAsóÃôHéÚZ|úé§T'26ÜÝÝǼÙ8f暘EÖƒ™Ù$ƒMucf|3ÐóWûAAA†}7F “žŽ|E l5°QÔÀFQE l5¨7ÚØØH¾S^xÀM°9Fkllw_Æ€z£vvv;wîœÈ >\Po”Åb%%%Mä.Œe4//ÏÅÅE(À©S§fÍš588¨R©’““½½½mllžyæ™ÂÂBrÔÒ3Ê?~Þ¼yÖÖÖÎÎÎ:=;wÎ×××ÒÒÒÝÝýË/¿„?›4íĉÞÞÞIII_~ùåÌ™3mmmãããÕ5sssgÏžÍf³·mÛ&•þáIÊr¹<66ÖÑÑ‘ÍfÇÆÆÊåòá |÷Ýw\.—ÉdîÛ·ï~mŽØ‘!ß}Ý   «mܸqÓ¦MÝÝÝŽŽŽeeeA=z”Ífgeeuvv^¸pÁÕÕÈ4†D"‘……Exxx{{{zz:ôôôhv!‹'Mš”ššÚÕÕuüøqsss±X¬Þœ  ‰Diii,‰Ž= }}}dÍ+VÔ××—––r¹ÜÄÄDÍÍ÷ïß¿víÚÖÖV>Ÿ?þü¸¸8­}€U«V‰D¢ÌÌÌÛÔ ê?z0ÞûºF4* ]]]}}}ÕÙûøø|þùçê _|ñ…~£R©ôÆb±X©T“•5» ãÃ? …*•j``@©Tj­¬¬$B&“i•Èš|>Ÿ¬œ‘‘Áår57÷òòêêê"Ëùùù~~~ZûEEEA(•ÊÛÔ ê?zã6jÄë¨]DDÄÏ?ÿüÚk¯‘‘ææf???u___ý-XXXÔ×ׯ\¹ò‰'žøüóÏÕqÚÿ`2™………¥¥¥®®®K—.ýñÇÍÌ´÷ÈÆÆ †VY§§'Yðòòjoo×\ÕÒÒâììLöµ|ùò[·n O’ÃémæêIDATá€V¿:ÛÔÓ‘1¢Ñ¶¶¶ää䀀€;v—êêju…Ÿáañ‰$88866¶²²2%%EW¿%‰J¥:sæŒ@ xå•WV¯^-Æš'y@}}=©G ‹ÅR B¡°´´tøæ:ßèlSOGÄXFU*Uxxxttô©S§ Î;ááá±±±¹¹¹ÝÝÝß~ûm\\œþF¤R©L&³°°H$ 000 YF£­X±"33S$Éd2ƒamm=ÖTcbb+**víÚµaÃÍU/½ôÒ[o½uûöm>Ÿ¿råÊÇ@ZZÚ½{÷îÓ˜¾6õtdHÆ1Ræ:zèСÇ\&“‘íìì,d2Ù{ï½7sæÌÉ“'?óÌ3_}õ轎ññÇO:ÕÍÍ-%%%$$„Ífku”‘‘áááaaaáåå•››«µ9h\z‡—ÉšiiiÓ§Og±XÑÑщDss‘H´yóf&“ioo188ø mjõ@˜€ïŒFDóØQ‚1ÐÙæ8:·Qêï0` Ë#mtÊ”)‘‘‘&hÓÝñÌ÷ ø{FF…F£edd‡zL<Òç(’`£¨¢6ŠØ(jŒó;õÍÍÍÝÏHÆiôúõë&û€…hÎ?ú(ƒ¯£¨¢6ŠØ(jü?€åéýIEND®B`‚XQilla-2.3.0/docs/simple-api/inherit_graph_45.png0000644000151400015140000000412611653571064016467 00000000000000‰PNG  IHDRÈ(4~"KbKGDÿÿÿ ½§“ IDATxœíœ[LÏǧÊBÑŠ -caX à XXVÀ°†–¡°är¹››[cc#mimmåñx$I8NDD„ÙWïÉÉÉghhM@&k8“ÌÐГ3Í¢xzzÆÇÇ 8éëÂ4\Â2Ö–-[ŠŠŠòòòfff?þ”J¥ÅÅÅ7nD¾~ýúæÍz>EQ===—}ýúõøŸØš9<<ìçç‡Æ«W¯¾|ù²™Ñ™( …"""âèÑ£Kõç'A}}½™e‰2??“ !ÌÉÉÙ¶m›N§C—(**¢'Ëd²ääd€R©DЀ‰U£-”J¥e­íG™˜˜LLL8w¡)¹@}}=Ó²àŽÕÖÖ¶nÝ:Š¢uuuëׯ×h4½^_PP  ýýý ôz=j¿!!!]]]ÅÅÅ!!!k×®ÍÈÈ@½Äª ½½],ZSS0 VÝ™ž9æñx2™¬ªªª¬¬¬ººZ&“¹»»Óo!55µ¡¡þ·455I$’…Ö†Ãá>ŽÆ/^¼Ø¼y3ÊL¡P@7lØÐÜÜŒ®ÒcK/•Jåîî~÷î]Š¢L&Ó¯_¿ŒF£-w;˜L¦Ã‡s¹Ü'N˜•@©Tæææ^¹rBX[[›””z²%,[÷$ ³³B¨Óé¯Ca ‘HÔÑÑ!þÜŽ»jjjAww7AOŸ>ýß@©Tvuu…‡‡›L¦”””@'„eëŒøøñ#sšCaA¥Rinnîää$ǵŒ¢Ñh.^¼·ÐZŽŽ´Z-òR(A0£§§§_ºtI­VóùüOŸ>ÙZœ¹}q°FFFüýý÷ïßÏlAAAtQ(Šzÿþ=óÍ„††¶··£±\.§O–^¿ÿîééÎÏÏËd2.—;==mËÝccc>>>²²2¡P855E—@©T ¡PØÓÓÃçóÑíñÿ‹¾ä¼°:;;ËËË÷îÝk+ I’+W®D-çk…:Ö»wïÐÌ–––°°0fôöööÐÐÐÇïÚµ‹ŽeûâaÆ}ûöݸqC¥R‰D¢¶¶6dÏËË“H$è/ùØØØsçÎ13+..‹Å$I’$Ÿ••eËK«ÕÑÔÔ499YQQA„V«µånõŒe2™:”`4!„:N,§¥¥Ñ%@”J¥QQQ{öì1³‹O¬é‡-a¡C˜™°è“™Á`ð÷÷ …ÕÕÕÌía ëÛ·o€ÙÙÙÕ B˜žžž˜˜8< XQilla Simple API Documentation SourceForge.net Logo

ATHexBinaryOrDerived.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/items/AnyAtomicType.hpp>
Include dependency graph for ATHexBinaryOrDerived.hpp:

Go to the source code of this file.

Classes

class  ATHexBinaryOrDerived
XQilla-2.3.0/docs/simple-api/inherit_graph_7.map0000644000151400015140000000024411653571064016373 00000000000000 XQilla-2.3.0/docs/simple-api/structBaseInteractiveDebugger_1_1BreakPoint-members.html0000644000151400015140000000771211653571063025550 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

BaseInteractiveDebugger::BreakPoint Member List

XQilla-2.3.0/docs/simple-api/tab_s.png0000644000151400015140000000027511653571063014424 00000000000000‰PNG  IHDR$ÇÇ[„IDATxíÝë ‚P@áKg"%(IE|¡%¦I¡7iÚlmÐ" ÓäÛC¼ÞòÛ“\.dåOZ̤ÅBr‰/¿‰(ŸˆÎ#a6⟂ôŽ› 8q÷ØÇëÐaF-û°Et¿Aó4¯fçÖlŠ]±¶äJjJC¢%Š!¿<Å#üÀÄ«IEND®B`‚XQilla-2.3.0/docs/simple-api/ContentSequenceFilter_8hpp.html0000644000151400015140000000476011653571064020730 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ContentSequenceFilter.hpp File Reference

#include <xqilla/events/EventHandler.hpp>
Include dependency graph for ContentSequenceFilter.hpp:

Go to the source code of this file.

Classes

class  ContentSequenceFilter
XQilla-2.3.0/docs/simple-api/classxercesc_1_1InputSource-members.html0000644000151400015140000002120111653571064022460 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

xercesc::InputSource Member List

This is the complete list of members for xercesc::InputSource, including all inherited members.
getEncoding() const xercesc::InputSource [inline, virtual]
getIssueFatalErrorIfNotFound() const xercesc::InputSource [inline, virtual]
getMemoryManager() const xercesc::InputSource [inline]
getPublicId() const xercesc::InputSource [inline, virtual]
getSystemId() const xercesc::InputSource [inline, virtual]
InputSource(MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSource [protected]
InputSource(const XMLCh *const systemId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSource [protected]
InputSource(const XMLCh *const systemId, const XMLCh *const publicId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSource [protected]
InputSource(const char *const systemId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSource [protected]
InputSource(const char *const systemId, const char *const publicId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSource [protected]
makeStream() const =0xercesc::InputSource [pure virtual]
operator delete(void *p)xercesc::XMemory
operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
operator delete(void *p, void *ptr)xercesc::XMemory
operator new(size_t size)xercesc::XMemory
operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
operator new(size_t size, void *ptr)xercesc::XMemory
setEncoding(const XMLCh *const encodingStr)xercesc::InputSource [virtual]
setIssueFatalErrorIfNotFound(const bool flag)xercesc::InputSource [inline, virtual]
setPublicId(const XMLCh *const publicId)xercesc::InputSource [virtual]
setSystemId(const XMLCh *const systemId)xercesc::InputSource [virtual]
XMemory()xercesc::XMemory [inline, protected]
~InputSource()xercesc::InputSource [virtual]
XQilla-2.3.0/docs/simple-api/StdOutFormatTarget_8hpp__incl.map0000644000151400015140000000003511653571064021165 00000000000000 XQilla-2.3.0/docs/simple-api/classxercesc_1_1LocalFileFormatTarget.html0000644000151400015140000002454711653571065022743 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

xercesc::LocalFileFormatTarget Class Reference

#include <LocalFileFormatTarget.hpp>

Inheritance diagram for xercesc::LocalFileFormatTarget:

List of all members.

Public Member Functions

virtual void writeChars (const XMLByte *const toWrite, const XMLSize_t count, XMLFormatter *const formatter)
virtual void flush ()
constructors and destructor
 LocalFileFormatTarget (const XMLCh *const , MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 LocalFileFormatTarget (const char *const , MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 ~LocalFileFormatTarget ()

Constructor & Destructor Documentation

xercesc::LocalFileFormatTarget::LocalFileFormatTarget ( const XMLCh *  const,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
)
xercesc::LocalFileFormatTarget::LocalFileFormatTarget ( const char *  const,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
)
xercesc::LocalFileFormatTarget::~LocalFileFormatTarget ( )

Member Function Documentation

virtual void xercesc::LocalFileFormatTarget::flush ( ) [virtual]

Reimplemented from xercesc::XMLFormatTarget.

virtual void xercesc::LocalFileFormatTarget::writeChars ( const XMLByte *const  toWrite,
const XMLSize_t  count,
XMLFormatter *const  formatter 
) [virtual]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/nav_f.png0000644000151400015140000000023711653571063014423 00000000000000‰PNG  IHDR8³»fIDATxíÝIB1 Q;uÛ¿@ÑÏh;áÚ ±aË !ŽÐ‹V½CÈíþ âŠÅÆ|c±˜¾™¶¶3èsÑFÐFP»S{PšSšsVãlN®F.F.“ã2’ˆüµ¤ï_U¿Œ¾˜Ïþ«‰ÈH Ým”°•IEND®B`‚XQilla-2.3.0/docs/simple-api/classBaseInteractiveDebugger__inherit__graph.md50000644000151400015140000000004011653571063024167 00000000000000ebaafa89c2258bc2b40f4a62b0e8d3edXQilla-2.3.0/docs/simple-api/XMLEntityResolver_8hpp__incl.md50000644000151400015140000000004011653571063020705 000000000000006b1c0dc5e9176ad982a9842561a57d57XQilla-2.3.0/docs/simple-api/inherit_graph_41.md50000644000151400015140000000004011653571063016352 00000000000000c37f3ec9eac1ede5e915a00a6e9109ffXQilla-2.3.0/docs/simple-api/StdInInputSource_8hpp_source.html0000644000151400015140000002215511653571063021256 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

StdInInputSource.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  * 
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  * 
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: StdInInputSource.hpp 527149 2007-04-10 14:56:39Z amassari $
00020  */
00021 
00022 
00023 #if !defined(XERCESC_INCLUDE_GUARD_STDININPUTSOURCE_HPP)
00024 #define XERCESC_INCLUDE_GUARD_STDININPUTSOURCE_HPP
00025 
00026 #include <xercesc/sax/InputSource.hpp>
00027 
00028 XERCES_CPP_NAMESPACE_BEGIN
00029 
00030 class BinInputStream;
00031 
00032 
00043 class XMLPARSER_EXPORT StdInInputSource : public InputSource
00044 {
00045 public :
00046     // -----------------------------------------------------------------------
00047     //  Constructors and Destructor
00048     // -----------------------------------------------------------------------
00049 
00052 
00059     StdInInputSource(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
00061 
00064     ~StdInInputSource();
00066 
00067 
00068     // -----------------------------------------------------------------------
00069     //  Virtual input source interface
00070     // -----------------------------------------------------------------------
00071 
00072 
00075 
00083     BinInputStream* makeStream() const;
00084 
00086 
00087 private:
00088     // -----------------------------------------------------------------------
00089     //  Unimplemented constructors and operators
00090     // -----------------------------------------------------------------------
00091     StdInInputSource(const StdInInputSource&);
00092     StdInInputSource& operator=(const StdInInputSource&);
00093 
00094 };
00095 
00096 inline StdInInputSource::StdInInputSource(MemoryManager* const manager) :
00097 
00098     InputSource("stdin", manager)
00099 {
00100 }
00101 
00102 inline StdInInputSource::~StdInInputSource()
00103 {
00104 }
00105 
00106 XERCES_CPP_NAMESPACE_END
00107 
00108 #endif
XQilla-2.3.0/docs/simple-api/SequenceBuilder_8hpp.html0000644000151400015140000000507311653571064017534 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

SequenceBuilder.hpp File Reference

#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/events/EventHandler.hpp>
#include <xercesc/util/XMemory.hpp>
Include dependency graph for SequenceBuilder.hpp:

Go to the source code of this file.

Classes

class  SequenceBuilder
XQilla-2.3.0/docs/simple-api/functions_func_0x6c.html0000644000151400015140000001526411653571063017403 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
 

- l -

XQilla-2.3.0/docs/simple-api/AnyAtomicType_8hpp__incl.map0000644000151400015140000000003511653571064020151 00000000000000 XQilla-2.3.0/docs/simple-api/LocationInfo_8hpp__dep__incl.md50000644000151400015140000000004011653571063020701 000000000000004704b07ab6f8be86bc64e009132be75dXQilla-2.3.0/docs/simple-api/classDebugCommand.html0000644000151400015140000003522211653571063017067 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

#include <InteractiveDebugger.hpp>

List of all members.

Public Member Functions

virtual ~DebugCommand ()
virtual const char * getCommandName () const
virtual const char * getCommandNameCompat () const
virtual const char * getBriefHelp () const
virtual const char * getMoreHelp () const
virtual bool matches (const std::string &command) const
virtual void execute (InputParser::Args &args, BaseInteractiveDebugger &env)=0

Static Public Member Functions

static bool matches (const std::string &command, const std::string &toMatch)

Protected Member Functions

 DebugCommand (const char *name, const char *compatName, const char *briefHelp, const char *moreHelp)

Protected Attributes

const char * name_
const char * compatName_
const char * briefHelp_
const char * moreHelp_

Constructor & Destructor Documentation

virtual DebugCommand::~DebugCommand ( ) [inline, virtual]
DebugCommand::DebugCommand ( const char *  name,
const char *  compatName,
const char *  briefHelp,
const char *  moreHelp 
) [inline, protected]

Member Function Documentation

virtual void DebugCommand::execute ( InputParser::Args args,
BaseInteractiveDebugger env 
) [pure virtual]
virtual const char* DebugCommand::getBriefHelp ( ) const [inline, virtual]
virtual const char* DebugCommand::getCommandName ( ) const [inline, virtual]
virtual const char* DebugCommand::getCommandNameCompat ( ) const [inline, virtual]
virtual const char* DebugCommand::getMoreHelp ( ) const [inline, virtual]
virtual bool DebugCommand::matches ( const std::string &  command) const [virtual]
static bool DebugCommand::matches ( const std::string &  command,
const std::string &  toMatch 
) [static]

Member Data Documentation

const char* DebugCommand::briefHelp_ [protected]
const char* DebugCommand::compatName_ [protected]
const char* DebugCommand::moreHelp_ [protected]
const char* DebugCommand::name_ [protected]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classNode__inherit__graph.png0000644000151400015140000000724311653571064020453 00000000000000‰PNG  IHDRÃ0nîbKGDÿÿÿ ½§“XIDATxœí}PTåÇŸÃî"Û†,»°):¥N…ÊÚhs/NÆK!Õ•4§b*(š.A͈›™E£&PÝò@y»zB5B°xÙMœV aÁuwqYZÛ·sÿ8µ—7]NœýžÏøÇó<ç9ç|ŸóñëãããjHfÚ²eKhh¨Ï#ذaÃ,·l·ÛµZí¬Î×'@àéé)‰¨ªÅbÉÎΖJ¥‰$;;Ûb±¬Zµ !Dy´5œ>}:$$äÛo¿Ø!DÄ‘#G–,Y²`Á‚={ö „¬Vk^^^HHˆ¿¿ÿóÏ??:::ÕöBÇŽËÌ̤ÇÎËË+))¡Ê£££[·n‹ÅÁÁÁYYY7oÞ¤ÏNôòÄ3ŽÎf³ÉåòE‹ …Âèèè––WŽ2I£¬¬Ì©eRBccccccƒƒƒ»víJKKs,-,,LHHP(+W®ÌÉÉéîî¦ovªO<ñÄ™3gŒFãÄÔNõzýáÇBZ­V.—/]ºT¡P(•ʨ¨¨¬¬¬©¶¯×ëB:nª¥¦¦®[·®··W¡P,[¶,??Ÿž™^žcÆÑ}øá‡‰¤²²rhhèĉ2™lƃœ”””””tË1§Wnߟ®®.ÇÒÅ‹«Õjª\__¿|ùr§‘LÕA¡PLÕÚiCCI’f³!ÔÝÝýÀTVVRݺºº剫ët:„^¯Ÿt8f³™ÇãýøãTµ²²2""bON1fÝ¢E‹¾øâ G‡/¿ürîüðÃããã¿üò BÈd2Qí …ÂËË‹žù矦{rŠ1ãèæÍ›×ÑÑáèÐÞÞî‚§Ù^Ÿ¼½½·nÝzéÒ%òóL,;,êõú .8­2U@0}[ÒÊd²¾¾>ªÜÑÑñþûïO³ú¦M›öîÝKÒ&ƒ¯¿þÚb±x{{K¥R§R©¨öÞÞÞ   ªlµZBƒƒƒôý:Řqt¡¡¡Ž—.]šfõ)¡Ksá|"I²¿¿!d0¨ê+¯¼’˜˜Ø×××ÙÙõÒK/9ýs¡ƒÓN©r^^Þƒ>¨T*•Jetttzzú4«_»vÍÏÏ/55µ©©©³³3??!tüøqj•-[¶¬[·N¥R)•Ê¥K—¾óÎ;!TRRrãÆÍ›7#Úùäƒ ?666ÕÞ÷ïß/‘Hª««ÕjõÉ“'ÃÂÂf<ÈÌÏ{$IÚl¶»ï¾ûÊ•+TÕ`0¤¥¥ùúúúùùeddŒ;ip¡Ã¤èæÍ›YYY2™L$¥¤¤8.?“®N’d___bb¢L& …>úhmm­c:î¹çžóóó |õÕW©9°  àž{î ¯©©™Æ“ÅbY³fÏT{·Z­r¹<""bþüù«W¯¦ÎïéðDOI› ÊË˧ÇŠ™¨ÏŸèâû{0Àž`€=Á{‚öì Ø °'pÐSK‹ŠíÌ3Éç¹?þøÜç`•*<8øOO3ÛA\G©TÆÄÄÐ[nñtï½÷Bÿr¹ÉÄ7™æ™ÍRéÛY\'&&†ú˜ØÁ±»yrùÉ}û¾Y¸Ð¯¹ùßlga®]Ÿ**."„úûµ—/±…I8婽}àêU=BH à;öÛq˜„Sžª«Ûø|BÈb±UT\´Û¹3¥sÇ“Íf?zô¢Õj£ªÍXk+w^ sÇSss^ÿ«£*ðªªÚXÌÃ,ÜñTYÙÆçÿ9‹ÅVSÓf±ØXŒÄ ñd6[kk;¬V;½Ñ`øíܹŸÙŠÄ,ñtæÌe“é7§F>Ÿ¨¬äÈ«>Žxª¬üaâ×ê¬Vûÿþ×ù므o 9à‚'£ñ·o¾¹d³Ù'.²Xl§N¹ô½F7ƒ žêë/™ÍÖ©–rãU‘H”››Ëftטýý¦@·qßýñ˜a§G#&$$ (Š•+WæääPSRR Cqq1B(99Ù`0:t!týúuFòÌñ´xñbµZM•ëëë—/_Nunkk#IÒl6;•éÏÓžMž9Ã>ט }}}ŽªH$¢ B¡!$œÊà€z}rB,;N½^O=CKÀöd4©ÂSO=õÖ[oõ÷÷+Š7~úé§ìc¨žBCC׬Yã˜ë „BáŠ+âââzè¡ÂÂBvã1°ëùÇÇw|>ÿüùóŽv¡PXZZZZZ:içiÊP€z>ýÝÀž`€=Á{‚öì Ø 8èéúu#ۘǽÞçž>}zttt–©¨Œðòâ1ÉMp/O³ÿ)€‡Ç]IFSS…Ét™‘Hn‚Í{Œ|NóŸÿ4ïÿx‰‘­%''³}T~Ç<1±c? D\¸Ð£Õrê*Å)OÃÃ7ZZT‘55ílÇaNyª©içñ„ÝN–—_d;“pÊSEÅE›D‘$©T^àÎǸãI¥Òtu ‘|¶Äãqjê㎧ªª6>ÿÏ÷L6YQÁ©;ž**.Z­6G•$Éžžk—/«YŒÄ ñ4éÕˆÏçMódXpÄSuu›@à|£Èjµ•—·’¿ 1.x²ÛÉ£G¿·XlŒÚÚúç>ãpÁSK‹J£›tŸÏ«ªâÂÔÇOÿýo;BÈÓ“?ñŸÝNÖÖ¶ÓŸþ÷º_îË–¿ýö?Õ½{ëâãZ´(ÀÑrã†iÁ‚ùlDc ‚—Y:2Ù«þkÓ¦åla.Ì{°'`O0Àž`€=Á{‚öì Ø °'`O0Àž`€=Á{‚öì Ø °'`O0Àž`€=Á{‚öì Ø °'`O0Àž`€=Á{‚öì Øù;u³!))‰Ù …k†]ÈöArç?EFF2mkSêêꪨ¨`jk.ãž$Éc=Æv ·_Ÿ`€=Á{‚öì `<ÅÆÆæçç“´¿388{›«ßQg7Œ'„ÐÙ³gØNÁ<ÅÇÇôÑG:Ží ,àïso“¤¤$•JµwïÞ‚‚‚ 苌FcQQQss³§§g\\ܶmÛø|~yyù‰'´ZmXXØ“O>Iõ´Z­ÅÅÅuuu¡ 6lß¾ÏpDtàáá‘““³}ûöººº7Òíß¿_§Ó}}}TA$íÛ·/((!d4¡¼*6ïQ¾øâ‹åååT•ÏçÇÆÆ~üñÇjµúÊ•+%%%ëׯߴiÓšššt:]kk«ã‘âk×®=|øðÈȈJ¥zã7ª««ÙÇï|¢ˆ?þü÷ßOU333‹ŠŠvîÜ)âââRSSù|¾Åb9pà€V« ÏÍÍݵkBhÛ¶mEEEéééAÄÄÄìØ±ƒÕqÜ.ìÿ}ØäädF“——ÇnŒ©hll|÷ÝwY?J 罿!Ø °'`O0Àž`€=Á{‚öì nqߨ±±±±±‘ín û÷𛛝^½Ên†aüÇ w ûž0·¾>Á{‚öì ÿ’²ÕW<fIEND®B`‚XQilla-2.3.0/docs/simple-api/inherit_graph_37.md50000644000151400015140000000004011653571063016357 000000000000004205dced6ac6131c7641fc087369786eXQilla-2.3.0/docs/simple-api/FunctionRef_8hpp__incl.map0000644000151400015140000000003511653571064017645 00000000000000 XQilla-2.3.0/docs/simple-api/xqilla-simple_8hpp.html0000644000151400015140000001752211653571064017240 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

xqilla-simple.hpp File Reference

#include <xqilla/simple-api/XQilla.hpp>
#include <xqilla/simple-api/XQQuery.hpp>
#include <xqilla/context/DynamicContext.hpp>
#include <xqilla/context/ItemFactory.hpp>
#include <xqilla/exceptions/XQException.hpp>
#include <xqilla/utils/XStr.hpp>
#include <xqilla/utils/UTF8Str.hpp>
#include <xqilla/framework/XPath2MemoryManager.hpp>
#include <xqilla/ast/LocationInfo.hpp>
#include <xqilla/context/MessageListener.hpp>
#include <xqilla/events/EventSerializer.hpp>
#include <xqilla/events/NSFixupFilter.hpp>
#include <xqilla/xerces/XercesConfiguration.hpp>
#include <xqilla/fastxdm/FastXDMConfiguration.hpp>
#include <xqilla/context/ModuleResolver.hpp>
#include <xqilla/context/URIResolver.hpp>
#include <xqilla/runtime/Sequence.hpp>
Include dependency graph for xqilla-simple.hpp:

Go to the source code of this file.

XQilla-2.3.0/docs/simple-api/XMLEntityResolver_8hpp_source.html0000644000151400015140000001702611653571063021414 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

XMLEntityResolver.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  * 
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  * 
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: XMLEntityResolver.hpp 527149 2007-04-10 14:56:39Z amassari $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_XMLENTITYRESOLVER_HPP)
00023 #define XERCESC_INCLUDE_GUARD_XMLENTITYRESOLVER_HPP
00024 
00025 #include <xercesc/util/XercesDefs.hpp>
00026 #include <xercesc/util/XMemory.hpp>
00027 #include <xercesc/util/XMLResourceIdentifier.hpp>
00028 
00029 XERCES_CPP_NAMESPACE_BEGIN
00030 
00031 class InputSource;
00032 
00099 class XMLUTIL_EXPORT XMLEntityResolver
00100 {
00101 public:
00104 
00105 
00107     virtual ~XMLEntityResolver()
00108     {
00109     }
00110 
00112 
00115 
00153     virtual InputSource* resolveEntity
00154     (
00155         XMLResourceIdentifier* resourceIdentifier
00156     ) = 0;
00157 
00159 protected: 
00161     XMLEntityResolver()
00162     {
00163     }
00164 
00165 private :
00166     /* Unimplemented constructors and operators */
00167 
00168     /* Copy constructor */
00169     XMLEntityResolver(const XMLEntityResolver&);
00170 
00171     /* Assignment operator */
00172     XMLEntityResolver& operator=(const XMLEntityResolver&);
00173 
00174 };
00175 
00176 XERCES_CPP_NAMESPACE_END
00177 
00178 #endif
XQilla-2.3.0/docs/simple-api/MemBufFormatTarget_8hpp__incl.map0000644000151400015140000000003511653571064021116 00000000000000 XQilla-2.3.0/docs/simple-api/functions_vars.html0000644000151400015140000004612111653571063016557 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
 

- _ -

- a -

- b -

- c -

- d -

- e -

  • element_string : Node

- f -

- g -

- h -

- i -

- l -

- m -

- n -

- o -

- p -

- q -

- r -

- s -

- t -

- u -

- v -

XQilla-2.3.0/docs/simple-api/inherit_graph_9.png0000644000151400015140000000422111653571064016403 00000000000000‰PNG  IHDRÈ(4~"KbKGDÿÿÿ ½§“FIDATxœíš[LMǧ”B+¤@¨,)B94BÀp#¨Ôh5ƈ4Aå F#ˆM%à…F¢ƒ(WF¡ŠšQ #A­Fk‚ZB )¶ å ´÷bò퇻Ê¡öåÍü®v&ÏÎóžþwwºY„`0˃½`þ›`cal6Æ&`cal‚#i\VVÖÖÖf)˜•‹P(,..ž9C6–J¥úüùsLLÌ_T…YÙ¼~ýÚÃÃ4I6 &&æþýûEæ¿Àþýû©“x…± ØX›€…± ØX›€…± K2VYYF»téÒÒuÐfÀb±6mÚ$—Ë—¾ìܨÕê]»vyxxøøø$&&* [d1 ùùù,+88øÂ… “““˵¸]úf ‹7„°¶¶–Çã‰Åâ¹#{zz8μ ¾zõJ£Ñh4¥R|àÀ›~yÑßß¿qãF.—ÛÚÚúôéSÛÙٹ쉲²²d2ÙÇûúúª««%IAA°º-ób£¾-Uü“ääääädh …‚F£577¾|ù2GdWW5 @WW1 Y£dqdffîÙ³Çl63iii©©©ËžÈÝÝ]*•Ã/^ðx{öL«Õ677¡ÔHajjjZZÚàà ··÷›7o „“““ƒƒƒhýÑ‚wîÜÙÚÚj0¨‚ç(3!!A­VK¥Ò   TZSS—ËuvvŽ¿råJoo/µWÛB’a±´…öÍ`08;;WVVj4šêêjGGGƒÁ`1r‰w¬EK*•:::Cß¿P©TÐ cMMMÑéô?¢á£G‚‚‚ eOàêêÚÙÙI¤777¯_¿><<üîÝ»DÀ½{÷P j$„P¯×ûùùEDD _B800@6"e'+•ÊÙÏQ&: B(‹QiB£Ñ(•JKKKÃÃÃét:R>o[H Z,m¡}Óét £¼¼\¯×›ÍæÑÑQ“Éd1Ò>ÆÊÉÉ!•tîÜ9R³Ôj5ÕXýýý€‰‰ 4T*•L&þ¹WËËË‹ŽŽ&Ò1™Ì™¹ÜÜÜX,–B¡ Ð_!‹‘( ´´”N§›“ÉÄd2e2ÙÌ¢t:ÝLÁSSS³ ž£L"R¡P0™LƒÁPSSc4ѤÙl...ær¹Ö´e¦ŒÙJ[hß „íííIII...±±±Ož<™-Ò{,“É$‹¯^½J<>rssÅb1üßd4è®@ÂÛÛ›N§÷ôô aww7—Ë%ŬZµ*==½££ƒXÃáíÓëõR©Ôßß¿££ƒ8åÓ§O³Eúûû¯_¿———‡ÂD"QUUÕ̼¤¿· cnÁËD¿@­V¯Y³B˜’’¢R©Ð$FÛ¾};:Ñʶ ³•¶Ð¾MLL˜Íæètº£GîÞ½]Nó.¾`¬q‰çϟϼú!„ïÞ½Èd2­V ¨®®þõë×Þ½{ÁŒK™x¤ˆD¢žž•JvþüyHùwƒ¶·###h˜””ÔÛÛ«P(6lØpòäÉŠŠ ??¿¦¦¦ááá–––ÐÐPf1Òd2ÅÅÅ•••ét:Ÿúúz´¦\.wqq),,T(>|())‰ŠŠb0²û¡ ž£Ì­[·vuu½}û688•–––ÒØØØÝÝýòåËèè蜜kÚB’A-m}›˜˜`2™uuuZ­¶ªªŠÉd¢Û$5’$o–íQ˜™™™0sÆl6óùü¢¢"áÅ‹ÝÝÝù|¾D"A}™žžÞ¼y³««+ Öét‡öôôôõõ=}ú4*ŒÔ “ÉÄf³¿}û††###žžžÇ3™L×®]ãóùnnn;vìH$«W¯¶YQQ‰(?öõõÕéthY™L&‰Øl¶@ 8uê”Á`ˆŒŒ„cYL-uûöm‡“••…"FcIIIDD‹ÅZ»vmQQšŸ·-$ÔÒÑ7¡X,æóùNNN@"‘ÌI’7˹Dz; r¹œÖÕաͬY–÷R+‘e~e_”Jå¡C‡d2Ùøø¸T*-..>v옽Eaþ…/HW………ãã㉉‰Z­600ðÈ‘#™™™ö•Äf³í®áß þù.}fŠ?MÆXEϬÔG!æ_6Æ&`cal6Æ&`cal6Æ&XxÕÖÖÿ÷¥`V(*•J(’&ÉÆBß b0Ö# ©¶!¿ Å`–¼ÇÂØl,ŒMÀÆÂØl,ŒMø™-]ÑÈÀIEND®B`‚XQilla-2.3.0/docs/simple-api/ATNotationOrDerived_8hpp__incl.md50000644000151400015140000000004011653571063021152 0000000000000024dab564c509edec8a26247223ee5d2dXQilla-2.3.0/docs/simple-api/classAutoDeleteArray-members.html0000644000151400015140000001025211653571063021220 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

AutoDeleteArray< TYPE > Member List

This is the complete list of members for AutoDeleteArray< TYPE >, including all inherited members.
adopt()AutoDeleteArray< TYPE > [inline]
AutoDeleteArray(TYPE *p)AutoDeleteArray< TYPE > [inline]
get() const AutoDeleteArray< TYPE > [inline]
operator TYPE *() const AutoDeleteArray< TYPE > [inline]
operator*() const AutoDeleteArray< TYPE > [inline]
operator->() const AutoDeleteArray< TYPE > [inline]
set(TYPE *p)AutoDeleteArray< TYPE > [inline]
swap(TYPE *p)AutoDeleteArray< TYPE > [inline]
~AutoDeleteArray()AutoDeleteArray< TYPE > [inline]
XQilla-2.3.0/docs/simple-api/ATGYearOrDerived_8hpp__incl.png0000644000151400015140000002757211653571064020511 00000000000000‰PNG  IHDRmuRýžöbKGDÿÿÿ ½§“ IDATxœíÝw@׺ð³l¡#é]E ½#4×X¯%Š&Q„ÄĆ [@“kŒÁE…X –TÀ‚¨€‚ÞË‚ËÒ¶Íûcr÷­Û\¶Á÷û Ç)ßÌ|¾=3ç,Ã0À;RSt@%A ¤u$Ô‘@$EPmYYY±±±ŠŽÈVzzº¢C(#¨#ÒÜÜ|ëÖ­)S¦(: ---%%%ŠŽ ¤ Ž ‚mÛ¶): ™™™;vìPt%ïGi@ ¤u$Ô‘@PGiÀxm€üœ9sæÔ©S_~ùå²eËð%wîÜÙµk—àšÇwrrª««;|øpqq1™L;vìÊ•+B?þøãƒΞ=«¡¡¯ßÐÐðÙgŸmذaúôéR‡×××—˜˜˜——רØhcc3iÒ¤O>ù„H$ò­6uêTîÏfffnnnaaaúúú’¢¾¾~ùòåR)tS§NMJJ²´´”z· ¨#r‚aØ;wLMM322¸uäĉSSSBk×®ÅFéééµ´´|ýõ×Dݼy3<<üÈ‘#¶¶¶«W¯ÎÊÊ:wîÜÊ•+ñõ;6vìØÀÀ@©Ãëéé 300X³f……Eee寿þšŸŸàÀ55þG7‡677çp8µµµ©©©!!!'OžÔÑÑyëQttt–.]*u Tà¹6@N*++kjj¢¢¢ÊËËëêêð…êêꆆ††††xžá‘H¤¤¤¤÷Þ{oݺuÎÎÎÎÎÎß|óͤI“~ûí7„®®îÚµkÏŸ?ßÜÜŒ*..¾ÿþÿüÏÿ©Ã;s挾¾þÁƒ}}}­¬¬&Mš”ÐÔÔôÇ®¬¯¯ohhhllìáá±k×.ssó””IŽ2bĈ©ƒ¥u$@NîÜ¹ãæææååeccsçη®ÿäÉ“E‹ñ–†aaaK–,Áž6mÚøñã0 ûùçŸ.\hooÿ‹ÅJHHX°`Á‚ X,BèáÇ_~ùåÌ™3-Z„£õõõS§N}òäIPPгgÏÒÓÓ?ýôSÞ®G O>ù$==oM¾8 ¼yórrrDwó›7oâÅ·lÙräÈ|&“9wî\|‚›s8œóçϯX±bÖ¬Yk×®}ñâ…ÐË•ŸŸÿüsî¶—.]jll>>B7OMM½páBHHÈÙ³gW¬X‘ ôŠ=zôèøñãQQQ'Nœ ÑhøÂßÿ}ïÞ½{öìyôè^=‹ZR€: ÿýwKKK@@B(  ªªª²²RÌú4 Ã0î0šY<¸ëXYY-[¶ìòåËaaaZZZÜåüñÇ·ß~kjjêàà°fÍšÜÜ\ …ò믿†‡‡™šš"„º»»ñ•CBB<<<¸âC 8Ž$kŠ9ºÐÍßÿ}öòåK„ÐíÛ·gΜ‰èÜüêÕ«¡¡¡“&M222òóóõX<((HKKëƒ>@uuuá 쬬\\\¾øâ‹ôôt1 @ 0Î wîÜa³ÙóçÏç.ÉÈÈà>‰dhhH¡Pêêêð<¼ÿ²««kÞ¼y¼«MŸ>ýôéÓÓ¦Mã]ØÔÔ´hÑ"î?µµµI$R]]]|||oo/_‡¢ BHGGÇÐа¼¼ÜËË‹÷ËËËGÅ»¦PuuuÜŽRÁ£ Ý\]]}âĉYYYvvvÙÙÙǵ9‹Åâí(uppƒ‘‘Bˆï Q+++îÑ[[[Å,)@ 9‡“‘‘ñÕW_Í™3_rêÔ©ŒŒŒ•+WŠC <==¯_¿þÝwßq > Ç7çÛɈ#~øá|:N¥Rûûû·oß¾}ûö &0™LÞ¡3$Ò?ÍàôéÓÏœ9ãááÁ}E²¯¯ïܹsÜªŽ»& î^½êïï/êè¢6 üé§ŸœœœFÅ­í7‰‰yõê>áB¨ªªJÔ\XWW‡×µµµx¡)j!Hžkd®¨¨¨££cÆŒšÿ5}úôºººòòr1[}ñÅýõ×Ñ£G+**ÊËËOŸ>}ýúuQůI“&?~¼¹¹¹¢¢"**ê÷ßg2™,‹D"1 ü…Åžž¾­>ûì³ŽŽŽuëÖåææÖÕÕÝ»w/,,ÌØØ˜·•«³³“J¥¶µµnݺµ±±‘;Hðè¢âôññ¡Ó鉉‰¼ë7Ÿ7oÞ/¿üòàÁ*•š››{òäI|Í7npŸÎ‹røðáúúú¿ÿþûĉ3f̳¤ý‘™»s玧§'ïLÝÎÎÎB‡­à:”põêUcccŸC‡­]»ö­‡[½zõáÇ¿üòK°fÍuuõ°°°ØØXMMÍeË–FEE>|˜w+--­cÇŽ:u*!!¡¡¡ÁÜÜ<00pñâÅd2YðÜ0LMM]]];Æ}~-xô¶¶6¡q’H¤É“'ß¾}{òäÉb‚'“ÉL&ó—_~ioowttܺuëW_}…ŠwwwçW¨éÓ§¯_¿¾¯¯/00088ŠÍ·ð­×D!à£@:/^ È´Yúµ7R|›NffæŽ;à/@(x® ¤u$ AÚÚÚsçΕd!H êH‚ôõõ×­['ÉBÔ‘@PGi@ ¤u$Ô‘@PGiÀ÷"ADD„$«aÉÔf2õH¤>uuª¬£Äf««©1 ŽüÍ ÃH¦¦¦ÆïA ]]6êêt2™¦¦Æ”p«ŽŽ™FPiPGÄÚÚzñâÅbV`0ˆ]]ä®.uL§S8…¶´ì¶´Ô³Õ Ã0ÔÔ¤]U¥gmÝeeE—ç¡UVê57kÛÛ¿63ë‘ÛAûû‰/^Q©$ #hj²ôôzz ]]†–Ö[jJ///ùDP9ðýÚ€AÖ×ÇÌË«ÌÍ­(*ª+,¬iiéÒÔ¤x{ÛùúÚ»ºZ»»Û˜˜èÊ9¤ÂÂÚõëÏ——·DFÎ ™B&埾>æÏ?ß>tè–››M|ü’Q£FÊíÐ,§¤¤>7·²¨¨6'çU]]‡–eÜ8KWWk__û‰ µå @ÕA /_6ÕæåUææVVT´°Ù˜³³™««•¯¯ƒ½££)‰¤˜·±{z{÷Þ8}ú¾¯¯C||±Bª¤¤!"âBqq}HÈ”ÈÈ™Š57¿ÎÍ­ÄËÊ‚‚&“mkkäãc߸Q£Ì‚ü£¨ ¨#Òàít,*ªmn¦ih}|ìñNG77SSyw: º¿,*êb[[WLÌüà`%,‰X,Nbâýýûÿ×ÔTïûï—Lœè¤À`º»û‹‹ëñyy•=ººîî6¾¾ö¾¾ÞÞvšš†PBPG$U]Ýž›[Áítd±8£FT†NGA=11WRSÿë_ã÷î]df6BщSSÓ})+ëep°ÿÖ­ótu5b³9åå-Ü>æ²²f"‘àà`êëkïãcïçç`cc¤èŠu$@¤þ~Vaa ^Iv:ººZ›™é):F!nÜ(ܲå2‹ÅÙ³gÑܹîŠGR×®lÚ”J"©íÚµpÎ7E‡ó†ÖÖ®‚‚š¢¢ÚÜÜÊÜÜŠþ~–™™þJ¥½‡‡­Â_9(Ô‘€7ÔÔ´?zTQTT——WYRRÏbqx_˜SªNGAMM¯7lHIO/^¾|ÂæÍsFŒÐRtDïæõëžÝ»¯'%=œ1cܾ}››ËuH»„xGê<|øª¾þŸ‘:¾¾¾¾öÞÞv0R€áêH†;ÁNGuu’««5^¸ºZ)ùCa†aÉÉ9±±×tu5öï_ÃAúú˜ü™áéiäìl¦èˆ$Â;R'7·òõë7FêøøØkh#`0A À°À`° T¾ÓQ›ÍIHÈ8pàO£øø%ÞÞöŠŽh0×GD\()iPàÄ@R?RÇßßÑÚÚPÑ1 êH†¬ÖÖ®œœWøG¼ÓÑÊÊÀßßïttq±Põ±ÏžÕ­_þå˦¨¨”avqYàN dmm·ÄËËNÑIIèH¼“ÒÕÕ Fê ¢ Ž`è`2ÙOŸVãO«ss+š›i ÉÍMå;1¬¸¸›ÇŽe¾÷žU||И1抎H¶ª«Û££SîÞ-Už‰‚;R'/¯òáÃò¶6:ŒÔ@EA €jkk£?|XŽ?­..®ïéa˜˜èúû;â³ó NGAÙÙåZ[»¶m›¿l™¿’CD×®lÜx‰L&ÆÆ.œ=[¹&©€ê‚:#ØéH&ÝÝmð§Õ¾¾öC¦ÓQÞ¿sgZrrN@À¨ýûé°ÛÚè;w¦]º”¯Ì „àH== 77©€’‚:ÐÞNÏÎ~£ÓÑØXgÂ'üݲñã­´´T~„ò[ݼùlãÆT&“µwïÇ*4»¸,ܹó"::…FëU‰‰¤&t¤Îر–xÚÃH”Ô‘(£áÜé(¨½¾iSêµkì½uë<Ås·Âõö2ü+!!ÃËË..n‰ªL 4--]……5ø0¢¢Z©€2€:eA¥v?~\…ÿ™,)ièîî72ÒyÿýáÕé(()éáîÝ×µµ)ûö-ž>}¬¢ÃQ.øÄ@ÿݸvm`xøŒáSH1™ì/DÔññ±××W±¯2@EA €Âp8ØóçuøÓê¼¼ÊêêöáÜé(¨¾¾cÆ”ÌÌ¿W®œù‘žžjR–|b }ûnØØÅÅyyÙ*:"€‘:( Ô‘ÈUGGw~þކ†Ú^^vx'ʸq–ÚÚꊎQñðÙÅüËÒR?>>È××AÑ)»êêö¨¨‹÷ï—ûÇÄÌ×ѾYD§÷—”¼1RÇÄD×ÝÝÆÕÕ Fê0è Ž@¶;ÕÔãÇ[áO«}}lm‡Ý cñJK›"".Ö„‡O_»vººº*}‰‹avéRþŽid2i÷î…³f¹*:"ÅÃGêà/Õ•–6‘HjÜ‘:&8YY(:FTÔ‘ ¾ÎΞÿv‡T¼xÑ@§÷h{{C§ã[0™ìï¿ÿãØ±Ìqã,rq±PtDª§µµk×®«øÄ@û÷/9rX¿ÁFê0è Ž`@§ãÀ=yRq¡¦¦=:zöçŸ@"©):"vûö‹Sh´¾-[æûÃÛ‚xGêdg—··ÓµµÕÇŽµ€‘:¼¨#Òë×=xᘛ[YPPÓÕÕ§¯¯…‹Œýر–ÃùµwÒÝÝ¿cGÚo¿åLœèüý÷K æ܉¼½íâₜœL‘Rã©C M¹¯TÂHD:IaVZÚÌ}×êÕ« àÓq€²²^nØB£õîØñï?ö†¿ÖƒëùóúõëÏ—–6 ·‰‚Nïú´ÿ5ô¨‚Fëå©ãëëïìÀu$âÐh½Uðv:Ž¡åëûOáèîn£« “ÑH‰JíÞ¸ñÒµksæ¸ÅÆ.25…ÙÅe‚Åâ=šÓÁÁ$..ÈÓs8N $5ñ#uÞßÉÒFê€a êHÞ ØéÈá`ÎÎføÓjWWk''S"^ݨ””¼ØØkD¢Úþý‹ģèp†¾ªª¶ R<([¶l¸O 4ÍÍ4üSennEaa-ƒñÿ#u|}íÇ·ªßQ €(PGðF§caa Ö§§§éç玲ÐÐÐrûö‹à`ÿ-[æêéi*:¢áŸhûö4 …´gÏ¢>zOÑ©6©‚: OÐé¨vòä½øø?ŒuããƒüýÑpÄhî\÷Ý»ë(:¢!¢ººoO`¤V ŽÃEo/#?¿ oè jZ[»x;ÝÜlàk÷dª¼¼%"âÂãÇU¡¡Sׯÿ|§ˆbݺU²q㥮.˜H&`¤> ŽCÙË—Mø„޹¹•-l6t:*“É>t(ýðáÛ£G›84nœ¥¢#ñL äãc·ÄÑ&’ 1#u|}í'Lp‚.a Ò ŽCJ_“Û^Ö´´tijRð/’quµvw·11AÁrUPP³~ý…ŠŠ–ˆˆ™kÖL…ÙÅ•ÍãÇUª«Û¿þzL $0R 1PG•Ç×éÈbqFÉ}-ÉÑÑj…èéaìÝ{ãôéû~~qqAvvÆŠŽÇd²ËŒ¿éà`äáa£èˆ†‹Þ^Ƴguø+•”Q©Ý¼#u|}íGŒ€‘:@ÙA To§cQQms3MCƒŒšwuµvs³™îÞ½Ò¨¨‹Tj÷Ö­óàõ;•PUÕ•’]¶l™ÿ¶móá+àåFêUu$P x ŽÊ¯³³'&æJjêã™3ÇïÙó±™™ž¢#’âN ¤££¾oßâ©SÇ(:¢á«««¯  æ¿#u^Ñh}¦¦ºnn6øëÝnn60R( ¨#’êïgÖà…£`§£««5(JèúõÂ-[R9l÷îEsçº+: ––®ØX˜H‰ðŽÔÉË«¬®n'“‰..0R(¨#©­¥æä¼Âë””Ô³X[[#|lµ¯¯ýر–Ð騴šš^oØ’ž^¼|ù„Í›çÀ{]ª.=½xãÆKÝ݌͛çÀ› J¥¹ùuQQŒÔJêH H « àNGuu’««5þ𹫫•™ÙEÇÞðääœØØkzzû÷/‡¡CFWWß÷ßÿ‘˜xß××>..ÈÁÁDÑ~‚#uttÔ]\`¤¨#¼ÕÕu<|XŽ7|/^40™lkkC??¼ÓÑÅÅfQB?þø—‡‡íäÉ£ù–WT´FD\ÈË« ºn݇šš…„d'?¿22ò¢˜‰vîL›7ÏÃÝFy+žÐ‘:ÜsG©èÁu$9ÁNG …äæŽ*#3óïààc#Gޏwo£–Ö?•"›ÍIHÈ8pàO[[£øø //;…ÆdŸ(.“i||oÉøøqÕ¼y‡LMõnÝŠ02‚·ô”w¤Nnne~~Uo/FêY€:ÈDkkWNΫÜÜJn§£••¿¿#t:ªœÚZj``\ww?‘Høüóvî\€**ª]¿þBYYsdäÌ)p7‡ƒªª¶ÈÈ U|öÙÑѳ´µÕ™Lö´iû«ªÚ‚··CJJ|A”rb±8¯^ý3R'7·²¦æ‘:ï¿ïŸ€Ô Ž!ÔÛËPW'äíl&“ýôi5þ<%7·:‡†Þ^ÆÌ™*+ÛY,6Bˆ@@.|••õòèÑ 77ëøøOàIÙ°‚O ´mÛïzzšûö}œ—WyèÐ-6›ƒ"ÕV­š´cÇ¿#x;Þ‘:5L&{GêP©Ý††Úƒ-PrPGtÿ~iddÊéÓ«Gz·š ­þða9þ´º¸¸¾§‡ab¢ëïïèãcïêjõÞ{V𶜪 ;sãF^D"„ˆD‚ŽŽF_sýú™¡¡ð%‡ÃTm-5::åîÝR Ã8œ7þ‚üç?Ë/öQT`@ ==ŒçÏùGêxxØâ3¬ùù9èéiJ¾7óôܶzu@hèTxL1L@9¬µµÑ·n½œ–ö!ÂK–.õ¿¾`§#™Ltw·ÁŸVûúÚC§ãP’˜ø`óæT¾&‚H$.[æ·ÿbEE”›Í™6mUU;“ÉæYLPW'þñǺ1cÌÞo|(+kVS{·‘:/_6MºŸ@@öö&ÿùÏ2xmz8€:r˜ÂIÄÇßd³9,‡DR[¸ÐûÇ— ®ÙÞNÏÎ~£ÓÑØXgÂ'¼Óqüx+îÀ 0”äæV,Zô3þÈ’‘H¸qã;WWkùG”Ä©S÷¶n½Â׉"‘ˆ#GêݺùNX@9ñŽÔÉË«ìëcš™éá½>>öîî6 ÿH³g³7mJe³9jj C xîܹsmPGGOŸÖ|÷ݹòòfÞ?66F99[Bl6§¸¸o8 Óqxjn¦MŸþ}GG`¡€"‘ˆ&ééðÜjxjhèœ4iOo/Sèÿ’HÄ€€QgÎ| ³a%ŽÔùöÛä+Wž°Xÿ|þ$‰šš¤˜˜ù0•ýuäðÒÕÕ·sgÚo¿åjÎ]MáÛog×?yRÝÞN×ÖV÷ð°ñö¶÷ô´õò²50€”ǃ-[–ðða9“)¤3’+&f~hèy”ȪU'ÿüó™˜?jj„M›æ|õÕ49äðW¯Z?®zô¨âñãªòò55ÂèÑ#ýü®^-loïzsu€y{Û<¸ÔÑÑT1Y‚:rIIÉÛ±ãêë×=BV"D03Ó åéiëãc?zôH˜ÂcxŠ¿ùã öDª©ˆD5&“­¥EñõµŸ:ÕåË/'+$B @¯_÷ìÚuíÁƒ²š*BˆH$p;Ÿx‰„sçÂ>øÀYîyëììÉϯÊϯÌÎ.ÏϯFHøC …‡O:•=PiPG uu6¤ddüM}ÃÉdÒÚµÓ"#?’oh@¹\¿^¸fÍin–‰D ãp8˜™™^`àX??__[[#Å ”>Î7/¯òÖ­OŸV1l2™Èfcøƒ55‚¦¦ú­[-ÃÇŸ>_µêW15‘¨fooüÃKaüÍPòFYÑÛÛÛÑÑ¡ÀhÀ ãp°ÔÔÂÿü'£¿Ÿ-þ3@ðö¶þå— wÚ¿¦¦¦ÁÀbD½½½Ü ¸ººÎ¥KO÷ö2ÔÔfh¨íãcãáaåáaåà`4¬^o200ÐÔÐH‘a•Õ½½ÌçÏŸ>­{ü¸öùó†þ~žB£G›&&.‡þ'e`aa1Í%É矾—””÷æ~~@@Ÿ|â6IS“<€ñ¶oÔ‘---%%% Š ¾înÆ©SEyyÜÝH$B6›#´¤ÔÐ þúëœwªLLLÆ7À8‹‹‹[[[¸0@ýýìmÛîöö²ÆŽ53ÆhÌ#3³áûRìØ±cMMô.×°Íj6«ªzýòe{II[YÕËË<$Ä]ÑA4eÊ”l.I>oß~¯´”*¸œ@ ‰„‹…áO½‰D5GGý°0ÏáÜȨ4ÞRÈ×k0Û€R™=ûC„PkkW}}G}}GCCgm-µ¶–Z]Mmhè Ñþù|I$ª¨¯ma1Fòo()..¬8¥ÑÖF¿~ÝÏØ¾ effÊ~ «BUUmææúðUÎ 4X=Dâó™ÉdWWÿ/‘HÀ0„¿]M  ´,,ô­­ -- ¬¬ ÍÍGXXè[Y˜˜èÁp~ÕÅ×BÂïö°`b¢kb¢ëîn÷¼¯Y[KÅëËúúŽººŽŽŽn…D*H vvÆŠÈ•J_¶ÌoäÈú––úææúðJÃpuä°¦¡Avv6sv6St T˜™ÙˆÝ»):  0± Ô‘@PGi@ ¤¡òudMMÍÊ•+ߺZyy9>‹2÷ÞÍŸ>}J"‘RRR¸ËÓÒÒ(ʳgÏd3;;»O?ýTü4]†-_¾\GGÒѵ¡¼¼|0"U ‚÷šï¦ …g»^[ùs.&swwwTT”›››ŽŽŽ¯¯ïÞ½{Y,’꺄¬3}«a•ØÉjIÖ8nSü® š„º»»###ÝÜÜtuu}||öìÙƒç-¯óçÏ ÍÉK—. ä ˆÚmAAÁÀÎé ÏJ˜Ï2Ê(9g:©|ùûï¿ÿûßÿú_ÆÆÿL9¡¯¯¿aÃQ›{xxlÚ´)<<¼³³!ôúõ믾újÛ¶mï½÷žì"ç•ÝØØXWWwêÔ)æéé‰G"TCCCrr2Ì/Ѝ{-ž *}m%Iæ®®.ooïGíÛ·ïÉ“'ÑÑÑIII~ø!›Í–îºá©ËkpOŠ9:µd#IDAT÷·x8HVs·•éÅämŠß©A“$*lóYÇ’™6Î|-ä;÷G^½zÕÒÒÿîsçÎ5ª»»!Äd2###ÍÌÌLMM###™L&Þù|ûöm›ÌÌÌmÛ¶ÙØØ˜˜˜|úé§ÜϦ‚[!„®]»æêꪡ¡áààpöìY„‹Åºy[[›¶¶¶¦¦&oG7÷g„ÐÈ‘#‘ˆ>sîæ! …’˜˜xòäɽ{÷ž:u*11‘L&‹ rOM@ ½qㆨýðž—„ûü믿œœœ öîÝ˽iii£G655 ïïïºPÒ´=¡‰Çáp>ìâ⢫«;a„ŒŒ ¼3_̇ëׯ{xxhii™››ïÛ·_ÈÍÁœÁïòýû÷…nH Nž<éââbbb²oß¾³gÏÚÛÛ1bëÖ­ø ‚·o„ ?üðBˆJ¥ª©©EDD „Øl¶~Ó;;;?ÿüsccc++«ˆˆˆ¾¾>¾Hð=cáîîÞÖÖ†$N椤¤˜˜"ñÿ'ÖÖÖŽŠŠJNN–⺽ÓÍ•`âÏ×ÙÙñd;UOlùdµÐ&‰h£ÞšÒBÞôãÃ×  †*ITBó6222))IèoÞ«'Åﬨ˾zõjüg:®¥¥õôéSQù&Én!Ÿqʜϸg”Æ‘Édî®C|ÿÉÉÉ...†††ßÿ½˜}ò‘_:ñÖ˜~jùôÓO?û쳦¦&33³Gá ÷ïß¿hÑ¢ššš¢¢"OOÏèèh¼~ÿè£îܹ³}ûöqãÆ={öÌÏÏ/""BÔVt:]]]=!!¡±±ñ×_%‘Ht:=..Nèæ'Ož<{ö,öæg¡Ÿo„.änΊå](ÓSÄ}nÈËËÓ××tüEí“BhΜ94-55ÿ Á÷ðᇖ––æää899mß¾]èBñ™ çþHÁÄ;zô¨©©éåË—nܸaee…_L¾{ÍýF£Q(”U«VÕÕÕ%%%!„ZZZ0±‰„ß寯F¡"„–.]J£ÑNœ8Z²d F;zô(~1a·oçγgÏÆ0,--MOOÏÓÓðüü| îîn ƒƒ_½zUTT4~üxî­Á#Á_Éâp8Ü"V’dÆÛ÷ÖÖV¾ ûðáCCCC)®B¨   ëM¢n–¨“ä|…æƒì[žý‘òÌj¾>ÁäÄÞ–Ò¢ÞôÓ  õ­Q‰ÊÛ˜™™ñf ·õãÛ'ï?¥øº ò²²ŒŒŒ˜L&†aIIIãÆãp8¢òMÌn¹É(ŸåÙ9ôò'£Œâp8K–, Åÿ)Øâûÿøã;::Ž?Žjoo¿OnT2J'L …”¦Žìèè°²²ruuå=Þ˜1cñŸÓÓÓÝÝÝñøŠŠŠ0 =zôåË—ñÿ-))áþ,¸•J%“Éñññ§««‹Íf‹Ú|Ñ¢ET*“¶ŽänŽãp8óçÏ'‰Ë—/ç=_™žö¶:RÔÑñ%¢öÉ !”™™‰aþ.QYYoü†]¸pÁÉÉIèBL,9ב‚‰7nܸÄÄDî §OŸßBõ÷÷¿xñ‚N§³Ù쬬,î•“Høµ!BèÉ“'†1 ¾Ÿño_~~¾ŽŽƒÁX·nݦM›ÈdrGGG\\ܬY³ðm‰D"÷j\¾|™ïÖà?GEE!„^¾|É=wI’ÿ{Ì-=¹²³³¥¸nHQ7Kh‚Ix¾BóAv‰-Ï:RžYÍw1“{[J‹jpxÓOLƒ&4Ô·F%æó7o¹÷'þ¯þ»þΊÚ-‹Å9räíÛ·1 ›5kÖ¾}û0y.~·ÜÀd”Ïò¬#‡^>ãd”Q þþþ}}}˜ˆÆß?~û$Ü'7*¥6ðçÚ!}}ýâââ°°0*sss|(ÓŒ3*++ñåcÆŒAUWWãϧB... ,µ•AFFFNNŽ••ÕäÉ“ïÝ»§¦¦&ts:Îd2 øÂÃDüyã#¸yrrrffæ;w.]º”––&ŸS[YY™£££ø£ã$ܧ……Bˆï¿¸a3¦®®NÌB%!˜xîîîÜ\]]ÅïB¡”––Μ9ÓËË+11_(*‘pø]º!NWW!„?8æý'xû<<<´µµóòòîÞ½;oÞ<»wïfddÌž=!ÔÜÜÌf³¹wßÉɉ{ðHpyyyS¦LÙ³g¨SšÌúúú#GŽdZPPÀ»s ¯Nðî±[ $`ž¯(C ±’Õ8Qm‹˜”Úà¼õXÜML"‰‰JLÞzyyá?K’-\ïú;+j?D"qáÂ…—/_nkk»uëVpp0÷¿óM’ÝB>#UÈgAÒeTQQÑÞ½{/]º¤®®ŽÄ6þxb¼k–Ê-¤©#kkk><}úôõë×s⟠ñ?$999ørüÌ-,,ªªªð%»wïµUoo/‡ÃIII¡R©«W¯ž;w.•JºùÍ›7gΜÉ> D}}½$gÁ·yCCCxxx\\\@@À¶mÛÖ¬YÓÞÞ.‡S ð_~ù¯*Ä'á>…¾‰‚A•––â 'j¡’L55µY³f¥¥¥•––zzzN›6-==ýîÝ»ø733#‰øæ¯^½²´´äwíÚµ„„„óçÏgddž‚˜dÞµkw”ëÒ¥KÏ;·oß¾¥K—¾ëuOh+LÂóe$¶B²'¾mu,ÁGü±x4IIhTÁÁÁ;wîäÝÝݽÿ~îq%É ½ÓeY¼xñ•+W.^¼øÁàOlq‚ù&Én!Ÿ‘Ò糄F§ÓƒƒƒOŸ>ÍmñÄ4†‚ÝCJ•Nï\Gr8œU«V}óÍ7çλuëÖµk×ðå .ܸqcuuuQQÑÌ™3þùgÞ­V¬X±yóf¼c|íÚµÕÕÕ¢¶"~øajj*Fc0d2YKKKèæiiióçÏÇ÷£¯¯:sæ F;tèï¡étºÐáÝð5kÖ¸ººâ/M¯_¿ÞÌÌì›o¾‘éá+·¶¶655Õ××gee-X° ²²rݺu’]Ô>Oœ8ñúõkñ·òÛo¿-//ÏËËÛ´iÓòåËÅ,TBoÕªU‘‘‘iiiMMM7oÞÄߣ¿¿ŸÁ`P(”ÞÞÞmÛ¶!„ºººx3á6”$l¡·oÖ¬YGŽñóó#“ɉ‰‰¶¶¶¶¶¶!2™^YYùüùó-[¶ðvrpikk=::::44´¯¯Oòdމ‰ijjš1cÆŸþYZZêàà°lÙ²¾¾¾/¾øBºÓÇS—ÝJ “ð|¹¿ÅC,±’ÕÜ‹)¾mJhƒ#x,Q š˜DULLLKKK``àÍ›7ËÊÊ®\¹âççgiiÉ×Û=(Þé²à£ÈwîܹbÅ Þå‚ù&t·Ï‚”0ŸHh`_ýõ_|1yòdîj6†bö©°tâ} %É[?ýô“››>È•+WÌÍÍñ×h4ÚÊ•+ ŒŒŒBBBº»»y_ èë니ˆ°°°1bÄÒ¥K;::ðå‚[aváÂGGG …2f̘´´4¡›3 ü}2®ØØX}}}GGGü)†aL&óƒ>ÐÑÑÁÞ¨àÛ<11Q]]÷m³ÜÜ\55µK—.ÉúÔ°7ŸÂ[[[ó¾y þèböÉý°"ø3¾‡'NØÚÚóÍ7½½½BŠOy¾)4ñ ÆÎ;íííutt&L˜ðÛo¿!±oÞ`vðàACCCkkë#GŽ,]ºÔÀÀ€7„¾S+tCSSSìmב$ ÓÝÝM¡P¢¢¢¸¢R©+V¬022277ÿî»ï¸·F0ªÞÞÞQ£FmÚ´IòdÆ0ŒN§¯_¿~üøñŽŽŽ›7ož-‹Ð7hÅ¿Í&Åï¬ÐÝâBCC555i4ï:‚ù&ÅÕ¬|–Ûû‘C2Ÿù*øOé2 !D¡PÔy`ÂÃwݧÒ h! ϯ}KKKIIÉ”)S„þyCFyy¹³³3öf‹/t¡xøŠOÆ;Xû‘âBˆÁ`¡ðõD@ ð~$Ô‘@PGi@ ¤ñÈñéÊÍ)©²IEND®B`‚XQilla-2.3.0/docs/simple-api/Collation_8hpp__incl.png0000644000151400015140000001566711653571064017377 00000000000000‰PNG  IHDR¸u³©c:bKGDÿÿÿ ½§“lIDATxœíÝy\GûðI¸D… €xGAÄ£V>^ hU¤Ø"*Bõõ¨ oÅ*ªPEQ)*ŠŠ ?¥P*žPDP©âñAµŠ÷(háäÚßÛædsò|ÿZ'»³ÏÌÎ>™,ÉHÂ0 Œ¬ì@ÕA¢ Q€ (@MeTÑôéÓ•B·‘““£ì@§#Á_½8‰ôÅ_Ðh4e¢Òª««=zw:€% æåååää¤ì(TZ~~þ/¿ü¢ì(@W€g” $J%ȉd€D 2@¢í÷éÓ§ððð… Κ5ËßßÿÆRv®¨¨pvvÝIþ=%qvv®¨¨èH H” ÝX,ÖŠ+tttBBBâââ¦M›v÷îÝV[UUåááoS©TooïG @GÁ÷(A;%&&Ž=:88ÿç€ Fjjê—_~Ù‘j‹Å· W®\ÙÑ@è0˜Q‚vº~ýº§§§hÉ’%Kèt:¾ÝÐÐéáááååuøða‡CXÉ­[·~øá‡™3gzzz¦¤¤ „V¯^úî»ïÐç½ +tvv¾råÊ’%K¾ùæ›3gΞâÞ½{>>>îîîÉÉÉÂ:ÿúë¯ï¿ÿþÛo¿=pà—Ë%,TH/ž%h††ƒaee%Z¨««+üÕcLLLMMM\\Ü®]»îÞ½{úôiñJššš¶mÛfcc“””´jÕªcÇŽÕÖÖ:t!”‘‘ÑjgIÄÆÆúùù9r¤¾¾^ü,·oß>vìNÎUÏž=»sçÎ;vܾ}OÐ’ @(Aûà?p&‘H„¯òx¼«W¯®Y³¦_¿~ƒ^ºt)áÊÚÚÚÇèÓ§žaÛZáܹs©Tê×_æAQ ,ÐÓÓ›4iBH˜IW­Zeii9bĈ+V«",A¢íÓ«W/ccãׯ_‹>~üØßß¿¥¥…Éd sss¼Ü¢¦¦F¼MMÍwïÞÑéô•+WfeeI9” MLLðª$Û§O$–Ó---ñ +++aU„… H” Ý&Nœ˜šš*ºvNNNÇÓÑÑ166&“ÉUUUxyee%žÎZiii ]¸páÑ£Gúé')ç’R¡¤Y­áïÞ½Ã7Þ¾}‹gRI… H” Ý–/_^RR²cÇŽ‡¾xñâäÉ“+V¬@ijj:;;ïß¿¿ªªêåË—Çwuu¯Ëåòx ÖÖ4¥„º)xF :‹@€ÅÆæNŸÅã ²³ÿû_eeI„†ù¿ÿuÉÊZÏã ¦OŠÍ`Šä3JÐ)^½úRRò†NŸåç笩©*oÉ\.ÿèÑüÝ»/;8XÅÄ,8`EaZD  ðääÂíÛ3ûö5Œ‰ñ=ÚJö1]îþý7k×&øÀÚºõŸ 2—Ij%P¤÷ïëÖ¯?sýú“U«¦ÍÔÑQÝ¿¶´ðöìÉ:|øê”)Ãöí[Ø·¯¡²#ª %P˜´´»[·þÑ»·~LÌ¢/¿¤ìpär÷î˵kSŒÆððïæÍ§ìp€Š‚D €ÁhÜ´)ýÂ…Ÿ Û¶yP©:ÊŽ¨ êë›ÃÂÎ%'Ι3jçÎy½{Kû?$€z‚D :*;ûþ›†yß¾…NNÕN;åç?^¿þ Ÿ/ؽ{þ×_Û); Z Q‚ö««k¢ÓÓΟ/öõuܲÅÝÀ@WÙu‹Å?Ÿ”tkÞ¼q;vÌë^óbЩ Q‚v*(xº~ýé¦&Nd¤×œ9£”ŽÂœ?_¼iSºžžvtô¢‰­•P (A›55qBCÏ&'~ýµÝîÝóML¨ÊŽHÁjjê7lHËÎ~àã3!4t®žž¶²#J‰´Í;/Ö®M©­eïÞíåîî ìp:ÑùóÅtzš±±Þ¯¿z?XÙáe‚D äÅåòwï¾|äHÞ„ ÖÑÑ -,¹¶jª¨`®[w¦°ð™ŸŸ3>KKKCÙå€D äòàAE@@òÛ·Œµú) þC£Ðгô‰‰ñ±³³PvD@ Tå¸@eñù‚½{³ÜÜ¢Œô®\ öõuTŸ,‰"‘H¾¾Ž¹¹tCC=7·è½{³ø|²ƒ] f”@šçÏ«ú)¥¬¬bË÷eË&“Éj”"[°„„ááçGŽ´ˆ‰ñ<ØTÙ®3J@ìßEÒöp8üììÀ+¦¨s–D‘ɤ+¦dgr8|WWX¨M½ÀŒ¨¬¬]·îtaásU[$Mðx‚#GòvᄅÛ"iª_¨í—_2mlÌbbÙØ˜);"Ðf0£ìáø|All®›[´¡¡nn®Ú-’¦ þ]¨-˜BÑš1cOll.,ÔÖíÀŒ²'{ù²fíÚÓ¥¥oa‘4U \¨ÍÞ¾ÿþý‹4QvD@^0£ì™0 ‹¿î꺇ÃáÁ"i*B¸P[K ×Å%*>þ:LSº ˜Qö@UUµëן¹yó,’¦š„ µMœh³wï‚~ý`¡6U‰²§IJº~ÎÌÌ0&f‘ƒ,’¦ºð…Úª«ë·lq‡…ÚT$ÊžƒÁhܸ1íòå2gX$­[.Ô6{¶}d¤WïÞúÊŽƒDÙ°XÍ—²²ÊèôßzõÒ‰ñ†EÒº|¡¶††æÝ»çÏœ9’p)—txzÕmp8𼞪ªªöÇ“Ћ߶´p…ÿ¸–yèо—.­×ÒÒPnxê>z«ºˆˆ Ož¼fI„@€q¹|==mÈ’=X¿~Fzz:\._˜%B\®àÉ“÷;v\Pb`ê ¥JËÎ~pìØ5¯õ <?7÷Ñï¿ßSJT  ¤§ß»zõoÑ7H'8zôZvö¥D¥¶à£·êúðåäY_ß,:§"‘•J¹qc3Ö«ëcªºº~Ҥ̈́w'™L20ÐÍÏß—¾ËÀŒRE ØêÕÿ×ÔÄ!Ì’!2™\_ßœ ou= †aAAgšÉdâÛS ÀZV­ú?Ic(œFhh¨²c¢£ÿLO¿×jáB ’¶¶&Ÿ/00Ðuuýbùò)Ë–M64„ÿEºG!‘HãÆ ²±1ÓÒÒ|ÿžÅáðtt4úì Q À*+™d2ÉÑÑZy‘ªøè­Š®_âí}äß/…45I\®@OOÛÉi¸“ÓðÉ“‡ÂDÔÇëןnÜ(ÏÏœŸÿ¸©‰£¥¥Áã „cãôi¿)Sà+´î³DÉf³™L¦£¡ÚZöüù‰ F#‰„" ÔÛÑqÐøñƌ鯫«¥ì躚®®®±±q+a2™l6[!ñ(›Í-*z{çÎë[·^¾|ÉÀ瘽{ëÿöÛR##ø?ÙÌØØXW÷½úY¢¬®®~ôè‘2¢ÿÀ0lïÞ;ϟ׎ejggjgG32ÒQvPÊdjjjkkÛÁJ>|XSS£xTDmm˃Õee5¥¥5C†އÿáC±¾øâ &ü'ÁJ\NNN]ø‹Õc;dMö®jàáÃ‡ŠªJ! W¥ÌûÏÆóçÕ¦¦°¶åçç·*% U‹F{ö ÿn—ø†oÞ¼Yºt)†a¾¾¾T*µóÂë )mÁ›pÿþ}MMÍ´´4ayff¦¶¶vYYþÏÆÆF:>jÔ(*•:~üø;wòx<Ô®~#QTKe"‘HÏž=ë²Ó© |ÉÜMÒ ‘sv*ÑÑ8pàÀÅ‹Kÿ6k[ïú®x˜(ŒŒ6lØÐ֣Ξ=;wîÜÊÊÊääänúíw¼ £GÞ¼ys@@@mm-B¨®®nõêÕ!!!#GŽDÕ××7îöíÛ‘‘‘EEE7nLJJš1cŸÏo_¿Ý¼y³êsŠmÔ‹/LLL['E„/‰^ I£EžAØðaùîÝ»ÄÄD‹5fÌ<B*}×c">|ø——‡)ÚÓ§Oñ 7¤psskjj’gOå’!Þ ÃZZZìììV®\‰a˜¿¿ÿرc9¾OPPÐäÉ“y<žð¨†††ÆÅʼnŸBfo „ž>}Úá6I#%†Î;ûƒNONNnG¿µébáõgff6ŒF£´´´Èl¯ðŠˆûóÏ?­­­wîÜ)¼d­N!é¼*‚°¯ÑÈí–üüü+++SSÓÅ‹ §KâG!„Ο?oooO¡P|êÔ)„Ç#<\8ŠDƒp[üîhÕ9a§6M‰Dò÷÷Ço.ÂzDÛ%g]7ðD³¦œ3ÊÅ‹/Y²äýû÷fff·o߯0ìÈ‘#4-##£²²òâÅ‹–––!ñ ‘pƒÅbikk/[¶ìÝ»wIII¡êêj ÃN:…}þÞ‚oÏš5ëêÕ«UUU„"„¼½½Y,V||£lO¢d2™–––öööÂóÙÚÚž8qB¸ÃÉ“'¥'Ê–––¿ÿþ»¡¡Ïç_»vMØ¡žžž # ¥¥¥RDaÆápZmã; >¼ªª ¯0''ÇÁÁáÞ½{T*•Ãá¬_¿~óæÍZZZL&3**jöìÙø±»+##ÃÚÚZ4|›N§#„ž„VÄÄ>¿$„ÛÊg? 644äóùfffýõ׸qã ÇŸ™™9{öìØØX ÃÞ¾}‹b³Ùx=¥¥¥ E4|ÛÙÙÙÉÉiÉ’%øn¢MÀ:uÊÐÐðÚµk åìÙ³Âò¾}û^¹r¥U¯:thÒ¤Imí7LÖÚV ¯MØ´’’ …"g{ ëG•——‹v8á) %ÅŒëúg”­ú #9¢ÝB¡PÊÊÊÄë? ð‚‚‚yóæéëëOž<ùÒ¥K’—t#”——Ë“(å„Ú4ŒhX¦¤¤Œ;VúÙ…;Ö)ªóžžQ"„Þ¾}{ðàAWW×ÀÀ@¼Ä¢¤¤D¸ƒÌE_Ølöüù󃃃‹ŠŠ:„feeÍœ9SÒ!øƒÂåÏÔð63™ÌÂÂB2™<{öìÌÌÌòòò1cÆL›6-''çúõënnn!333 /^à‡?þÜÂÂB4ÜùóçãââΜ9“——'Þ„ÊÊÊ€€€¨¨¨)S¦„„„øùù}úô ÉÇÇ',, 'Dy{{Ÿ>}:22ÒÛÛ»­ý&øÅÂá£!T^^nnn.g{%!|¨ÚêR Ua_‰¼ïssóW¯^á%ÅÅÅ’Žb³Ù --Á`,_¾ÜÝÝÁ`.~#àß«¨¨§òÂNmšx`†>|¿¿¤œ'g]7ðD³¦<3J>ŸïêêÆ`0úöí{îÜ9 ÃvìØA£ÑΞ=[UUuùòe™Ï(™L&‰Dº|ù2þ]B„PQQ‘¯¯oEE~Â÷LIbrÌ(æÍ›÷êÕ«’’’¯¾úêÇÄ0,--J¥NŸ>ðœœ*•jkk+lé¢E‹\\\^¼xQVVfkk»mÛ6IQ…„„ :”Íf‹6A Ì™3gêÔ©øG‡cooïíí¿ZWW7lØ0gg第¬'OžlÞ¼!D£ÑZZZÚÚox3Å¿$éb çÂOŸ>½sçŽ þ‡HyÚ+|ôyìØ±ÚÚZINx Iç•¢+g”„}…œV—ÞÞÞ¾¬¬¬¬¬lâĉ?üðƒ¤£Øl6…BIOO¯©©9zô(…Ba³Ù„‡‹Ž"ü‹‡Ç¯««ûöÛoEÇ~-ĉüƒ°S›†‰ ËwïÞåçç{xxXZZ ‡ô³Kª³kž>z8p`Ô¨Qøäü?þèׯƒÁàp8Û·o4h•JuttLII‘ž(1 Û·o_ïÞ½û÷ïèÐ!ooocccüá NRJ?F£vY«m‹µtéRccã>}ú¬\¹ÿsMmm­¦¦&þ„»±±Q[[›N§ OÄ`0¾ÿþû>}úôë×oݺul6[RTl6{èС›7om‰'tttD_Þ¹s‡L&§§§ãÿlhh ´³³£P(C† ùù矧Nº`Á‚6õ›°ù„o„ ¯->>~À€&&&kÖ¬Á‡ ôör¹ÜI“&Q©T)Œ}>^[BÒy¥èÊDIØWÑÈí–æææ   sssCCCooo&“‰—Ž·ÔÔÔ!C†hkk><33“ðp‡#:Š0 7222dHff&~^ÑkÑj´:\ú ìÔ¦aŸËþýûûøøˆfég—Rg <ñDI°ÂyÇî}öì™ &á’p8œ¢¢"üK§ ®á)Úq^üŽBV8WH=@Å)jàåçç·Zá~ë­B´µµ;;KÚ¥Ú100ðóóëúStÁyšë¼×)½Pøè ”>z@›A¢ Q€ (@H” ƒ¦xQeee×Ç€¸æææVK't¤*Ø Ý%¾H ª@Q‰_£S!U5D‚€tðŒd€D 2@¢ Q€ ÿuˆ-±ŠCwIEND®B`‚XQilla-2.3.0/docs/simple-api/classATQNameOrDerived.html0000644000151400015140000003575011653571064017603 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATQNameOrDerived Class Reference

#include <ATQNameOrDerived.hpp>

Inheritance diagram for ATQNameOrDerived:

List of all members.

Public Types

typedef RefCountPointer< const
ATQNameOrDerived
Ptr

Public Member Functions

virtual const XMLCh * getPrimitiveTypeName () const =0
virtual const XMLCh * getTypeURI () const =0
virtual const XMLCh * getTypeName () const =0
virtual const XMLCh * getURI () const =0
virtual const XMLCh * getPrefix () const =0
virtual const XMLCh * getName () const =0
virtual const XMLCh * asString (const DynamicContext *context) const =0
virtual bool equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
virtual int compare (const ATQNameOrDerived::Ptr &other, const DynamicContext *context) const =0
 Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.
virtual
AnyAtomicType::AtomicObjectType 
getPrimitiveTypeIndex () const =0

Member Typedef Documentation


Member Function Documentation

virtual const XMLCh* ATQNameOrDerived::asString ( const DynamicContext context) const [pure virtual]

Implements AnyAtomicType.

virtual int ATQNameOrDerived::compare ( const ATQNameOrDerived::Ptr other,
const DynamicContext context 
) const [pure virtual]

Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.

virtual bool ATQNameOrDerived::equals ( const AnyAtomicType::Ptr target,
const DynamicContext context 
) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATQNameOrDerived::getName ( ) const [pure virtual]
virtual const XMLCh* ATQNameOrDerived::getPrefix ( ) const [pure virtual]
virtual AnyAtomicType::AtomicObjectType ATQNameOrDerived::getPrimitiveTypeIndex ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATQNameOrDerived::getPrimitiveTypeName ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATQNameOrDerived::getTypeName ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATQNameOrDerived::getTypeURI ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATQNameOrDerived::getURI ( ) const [pure virtual]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classAutoNsScopeReset.html0000644000151400015140000001660711653571063017756 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

AutoNsScopeReset Class Reference

#include <ContextHelpers.hpp>

List of all members.

Public Member Functions

 AutoNsScopeReset (StaticContext *context, xercesc::DOMXPathNSResolver *newResolver)
 ~AutoNsScopeReset ()

Protected Attributes

StaticContextcontext_
const xercesc::DOMXPathNSResolver_oldNSResolver
const XMLCh * _defaultElementAndTypeNS

Constructor & Destructor Documentation

AutoNsScopeReset::AutoNsScopeReset ( StaticContext context,
xercesc::DOMXPathNSResolver newResolver 
) [inline]
AutoNsScopeReset::~AutoNsScopeReset ( ) [inline]

Member Data Documentation

const xercesc:: DOMXPathNSResolver* AutoNsScopeReset::_oldNSResolver [protected]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/ATAnySimpleType_8hpp__incl.map0000644000151400015140000000003511653571064020413 00000000000000 XQilla-2.3.0/docs/simple-api/classXQilla-members.html0000644000151400015140000002745711653571063017377 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

XQilla Member List

This is the complete list of members for XQilla, including all inherited members.
CompileDelayedModule::compile(const XMLCh *queryFile)XQilla [friend]
createContext(Language language=XQUERY, XQillaConfiguration *conf=0, xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager)XQilla [static]
DEBUG_QUERY enum valueXQilla
EXTENSIONS enum valueXQilla
Flags enum nameXQilla
FULLTEXT enum valueXQilla
Language enum nameXQilla
NO_ADOPT_CONTEXT enum valueXQilla
NO_DEFAULT_MODULES enum valueXQilla
NO_OPTIMIZATION enum valueXQilla
NO_STATIC_RESOLUTION enum valueXQilla
operator delete(void *p)xercesc::XMemory
operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
operator delete(void *p, void *ptr)xercesc::XMemory
operator new(size_t size)xercesc::XMemory
operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
operator new(size_t size, void *ptr)xercesc::XMemory
parse(const XMLCh *query, DynamicContext *context=0, const XMLCh *queryFile=NULL, unsigned int flags=0, xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager, XQQuery *result=0)XQilla [static]
parse(const xercesc::InputSource &querySrc, DynamicContext *context=0, unsigned int flags=0, xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager, XQQuery *result=0)XQilla [static]
parseFromURI(const XMLCh *queryFile, DynamicContext *context=0, unsigned int flags=0, xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager, XQQuery *result=0)XQilla [static]
UPDATE enum valueXQilla
VERSION3 enum valueXQilla
XMemory()xercesc::XMemory [inline, protected]
XPATH2 enum valueXQilla
XPATH2_FULLTEXT enum valueXQilla
XPATH3 enum valueXQilla
XPATH3_FULLTEXT enum valueXQilla
XQilla(xercesc::MemoryManager *memMgr=0)XQilla
XQUERY enum valueXQilla
XQUERY3 enum valueXQilla
XQUERY3_FULLTEXT enum valueXQilla
XQUERY3_FULLTEXT_UPDATE enum valueXQilla
XQUERY3_UPDATE enum valueXQilla
XQUERY_FULLTEXT enum valueXQilla
XQUERY_FULLTEXT_UPDATE enum valueXQilla
XQUERY_UPDATE enum valueXQilla
XSLT2 enum valueXQilla
XSLT2_FULLTEXT enum valueXQilla
XSLT3 enum valueXQilla
XSLT3_FULLTEXT enum valueXQilla
~XQilla()XQilla
XQilla-2.3.0/docs/simple-api/classATFloatOrDerived__inherit__graph.md50000644000151400015140000000004011653571063022550 00000000000000621279007dea3b51a0048c9f3f2c26dcXQilla-2.3.0/docs/simple-api/classATNotationOrDerived__inherit__graph.md50000644000151400015140000000004011653571063023276 000000000000000a821715a2551aed5d0448df3047bd8aXQilla-2.3.0/docs/simple-api/ATTimeOrDerived_8hpp_source.html0000644000151400015140000003433511653571063020766 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATTimeOrDerived.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _ATTIMEORDERIVED_HPP
00021 #define _ATTIMEORDERIVED_HPP
00022 
00023 #include <xercesc/util/XMLString.hpp>
00024 #include <xqilla/items/DateOrTimeType.hpp>
00025 
00026 #include <xqilla/framework/XQillaExport.hpp>
00027 #include <xqilla/items/ATDecimalOrDerived.hpp>
00028 #include <xqilla/items/ATDurationOrDerived.hpp>
00029 #include <xqilla/items/Timezone.hpp>
00030 
00031 class XQILLA_API ATTimeOrDerived : public DateOrTimeType
00032 {
00033 public:
00034   typedef RefCountPointer<const ATTimeOrDerived> Ptr;
00035 
00036   /* Get the name of the primitive type (basic type) of this type
00037    * (ie "decimal" for xs:decimal) */
00038   virtual const XMLCh* getPrimitiveTypeName() const = 0;
00039 
00040   /* Get the namespace URI for this type */
00041   virtual const XMLCh* getTypeURI() const = 0;
00042 
00043   /* Get the name of this type  (ie "integer" for xs:integer) */
00044   virtual const XMLCh* getTypeName() const = 0;
00045 
00046   /* returns the XMLCh* (lexical) representation of this type */
00047   virtual const XMLCh* asString(const DynamicContext* context) const = 0;
00048 
00049   /* returns true if the two objects represent the same time,
00050    * false otherwise */
00051   virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0;
00052 
00055   virtual int compare(const ATTimeOrDerived::Ptr &other, const DynamicContext *context) const = 0;
00056  
00060   virtual ATDecimalOrDerived::Ptr getHours(const DynamicContext *context) const = 0;
00061 
00065   virtual ATDecimalOrDerived::Ptr getMinutes(const DynamicContext *context) const = 0;
00066 
00070   virtual ATDecimalOrDerived::Ptr getSeconds(const DynamicContext *context) const = 0;
00071 
00075   virtual const Timezone::Ptr &getTimezone() const = 0;
00076 
00080   virtual bool hasTimezone() const = 0;
00081 
00086   virtual ATTimeOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const = 0;
00087 
00091   virtual ATTimeOrDerived::Ptr addTimezone(const ATDurationOrDerived::Ptr &timezone,
00092                                            const DynamicContext* context) const = 0;
00093 
00097   virtual ATTimeOrDerived::Ptr addDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime,
00098                                                   const DynamicContext* context) const = 0;
00099   
00103   virtual ATTimeOrDerived::Ptr subtractDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime,
00104                                                        const DynamicContext* context) const = 0;
00105 
00110   virtual ATDurationOrDerived::Ptr subtractTime(const ATTimeOrDerived::Ptr &time, const DynamicContext* context) const = 0;
00111 
00112   virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0;
00113 };
00114 
00115 #endif //  _ATTIMEORDERIVED_HPP
XQilla-2.3.0/docs/simple-api/StackFrame_8hpp__incl.png0000644000151400015140000002520311653571064017456 00000000000000‰PNG  IHDR«uæÒ?ÐbKGDÿÿÿ ½§“ IDATxœíÝy@GÛðI€ˆÜ7*—rƒˆVÅ–K„Ro«ÕWÁ£(‡Zñ³"RëõzT¬¶Tk‘VÐZOJ­ *àÈ©E”¹Ârí÷ÇöM#$²!y~Á²»óÌΰy²3»KÂ0 @ʉ€ FÒ2@É´oß¾ÌÌL¢£|;vìpqq!: Ààƒ W………Ož<±¶¶&:I–‘‘áççGt€!Ƭ­­wïÞMt’,##ƒèCæÒ2@AH#Èi à^ Ẻºâââ233›šš´µµÝÝݽ½½)ÊÀöVUUåã㓞žÞc¹››[ï•{¯6ÜÜÜâããõôôDP@’@$ܱcÇêêêöîÝ«­­ýúõëcÇŽµµµÕÔÔ&&&VAÇ=zô`í †Œ wçÎ??¿ñãÇ«©©ÙÙÙݽ{!Äáph4Ú ¤¦¦¦ñ®AÜ9 :È€„SPP¸zõ*÷ÃÞÎÎîüùó¡õë×#„>ÿüs|yvv¶ŸŸŸ——×¢E‹Îž=‹b³Ù§OŸ^ºté‚ <ØÞÞλ[ ÃNœ8±víÚÖÖVAEWUU¹¹¹ååå-]º´°°°w!77·ëׯ¯ZµjÁ‚gÏžMNN^¶lÙìÙ³cccñX,VddäÂ… .\Éb±zôðáCooï¹sç&$$p˽{÷îŠ+.\øóÏ?3™L¾ ?ìІ7È€„Ûºuk^^ÞâÅ‹·nÝzþüùºº:|yDDBèòåË¡ÎÎÎ]»v?>>>~ݺuÑÑÑ---/^ÌÌÌuêÔºuëΜ9ƒg-/^¬©©‰ŠŠúá‡òòòNŸ>Ý»Ž¹¹¹ÑÑÑ!!!111Ü\çêÕ«üî»ïrss¹ ß…ép“'O>þüÑ£GmmmoÞ¼¹|ùò[·nõX‡B¡œ:u*((HSSSGG!ÔÑÑqíÚ5___ccãqãÆmÛ¶÷'Ož<þüîÝ»UTT¸ ×®];‹Çýû÷ñåþþþ'NTQQé]¾ÂÒ¥K<==BË—/WPPðòòBµµµ!„®_¿¾iÓ&cc înyá{øä“O¸[!„Ö­[§¯¯oii¹víÚ””! Ò fIF§ÓïÝ»çêêjiiiii¹bÅŠ¸¸¸ÈÈHwwwÞÕdee+++9ÒÕÕ5~üx|a]]¾¾>þ³‘‘‘‘‘wýgÏžÙÛÛÇÇLJ††röž_UU…244TNAA_¡ÇϸÚÚÚE‹qUTTì]MMMM„‰Dâ]È ÞÐа¡¡AÈB€t‚ H2 ÃöïßohhhjjŠ"‘H}ôQRRRÕº»»÷ìÙ³gÏGGG&“yýúu„¦¦fmmí¸qãBeee999>>>øúß}÷]CCÚ5k>ýôÓ‰' ÿ8ç[D_¨ªª†‡‡ã¹E{{{SSSïuz|öã*++BoÞ¼ÁSA Ò F€$9r¤§§çÿûßœœœšššâââ'Nð^èêêB1™L‹%++Ë`0ðöÎÎNOOϘ˜˜òòòòòò£Gr' „äåå –/_þã?2Œ¾D·ˆ¾lèää]WW÷òåË«W¯"„®]»ÆDäøñãUUUOŸ>‰‰ñðð² àp!!!gΜ‰ŽŽ®ªªRWWwss[½z5BhÔ¨Q¶¶¶‹-úûï¿•””Ö­[·ÿþ‘#G._¾ÜÝÝ=$$ä?þ Óé[·n¥ÓéÓ¦M è±g|JÁÙ³gñ Ç·ˆ+W®¼wÃ5kÖ?~ÜÏÏD"9;;ãa9rÄÞÞžïˆ×Ì™3·lÙB§Óñ‡ á×ü{,|oé FÂ0Œèˆ%K–444ìÞ½›è@Äß zš¡pnnnçÏŸ_²dÉ  0 H#È4ŠŠŠsçÎíËB€4ƒ I£¦¦öõ×_÷e!@šAH#Èi ¤d€4‚ FðT`0Œ=yò$88˜ÍÉ`(Y/ªbI,ÖYYº¨ŠC!K^%¶µQ(­ Dâ uYÂA†¥¦¦uu;##µ¦&y:]FF†cn®"+;äŸ[L&™JUïì”›<¹ŽDѵÙlòýûºÝ&&Ͳ²CU(“I.,Ôjl4$“1†šZ·ª*}ñbcƒ!*@,x/6h´®Û·ŸeeQ³²¨ÊÊò®®NNfNNfFF¢xÑmfæ³ â••åOž\mc£'‚¹rs_®[÷™LŠŠZ5iÒØ¡+¨££;/¯"3“š•E-(x3r$eòä±ÎÎfNNf¶¶ú|_C ¦ bÁ`åæ¾Ä?Š‹«ÈdÒ´i&ø’••ž¬¬ˆ&²p8XxøÍŸ~J™5ËîÈ‘¥ÊÊò¢)—WSSGPPBfæ³mÛf­_?CÆõõm¹¹/²²¨·n•ÖÔ´hj*MŸnêädæêj¡¯¯>Ô¥†d@ì`VXX™•EÍ̤>|øª«‹aggàädæìlæà`¤¨8BÄñ´´t%ܾýlçÎykÖ8ø=ðS§²öíûÓÍÍòèÑeªª "+º¢¢¿úrûöSnd¤‰_}qv6e€AUUÍééO³²¨ÙÙeoß¶¥:s¦•““ÙÔ©&::ÊDEõèQE@@™L:yrµ½½!QaðÊÉy±nÝYYrdäªI“ŒD\:‹Å))©Â󳜜fm­‡§S§S(0µ€a2@$‡ö…‹‰ÉÜ¿?iútÓãÇ}44‰ç_í7&Ü»W¶cÇ\/Ktv2=z…ÑVÊËËq' ØØè“É0i±5&““ó‚ð¡}áh4úæÍg““‹CCE4èÞ_†ED¤……ýíáaýÓOËTTFOCC[N΋¬,jZZiuõ¿“\\Ì 4ˆ Àd@x‡ö=zÕÙIðоp¥¥5~~§ÛÚè+?þØ”èp„¹w¯lÆ3rr2‘‘«D=" ˆ INNfjj0iqBÍÍwî<ç½È?}º©³³™““¹©©ÑÑñwölηß^²³3ˆŒ\9z´Ñá¼_ccûW_Ågg¿Ø±cîÚµÎD‡ó6›S\üï¤6›cc£g~S¦“ d`±Ùœüü×OÓÓŸ>yò†L&Mš4?éO˜`(&ùùêêblÛváÒ¥Gë×ÏØ¶m–8‡ÚwDÀÓÓ:<œø¾zL1Bö£ÆÁ¤µµ­O32žffR[Z:ÇŽÕru5wuµøøãñâv‘Ÿ¯W¯ÞúùÅUV6=ºÌÓÓ†èpâîݲ ~ST”?yr•µµHXÔ_ÜIééO«ªš54?þx<ž&?)¸¶6zFÆSîE~UU+ëiÓL´µ »o’’òƒƒÏ›˜èœ<¹zX?ëæíÛö ÎÜ¿ÿòÛoÅnD@žIÏh´.î¤O>¯®.F÷_ y ýÃÓ—œ\üøqBÈÑÚ7³¶Ö“‘6WÎqL&{ïÞ?cc³|}vì˜+#Ól6ç§Ÿ’ÃÓ,p8tè‹aqÇ;i 7÷%‹Å†I )È@Ÿ´´t¦¤§¦–àë=ZÍÝÝr¸Q{ó¦) àW*µ6,ì‹Å‹'Î`ºsçùW_QVyòä*KË1D‡Óo]]Œ‡aÒC 2 ïûEE•²²2S§{xX{xX‹Ããz>PFÆÓ¯¾Š×ÖVŽŽþRloLøµµ­¿=yòzðõöm{vvYV5#ãiee³’Òˆ‰ðlÀÎÞ[ÀÀAzª®nIK+Ňf[Z:Ç×õô´qv6›ÿ|Ñáˆï¤û÷_vwÿ;iÀÕÕBYYžè d¨¢¢1-­äÖ­Ò{÷ʺ»Y¶¶úîî–3fXÙÛHü×ýbb2Hš2Åø—_Vhi)ޏ`±8‡ý‘¶hѤC‡¾Œ[<úˆNg>xPνǕL†I@zA !ðô¦¤gf>«¯oÓÕUñð°–æ÷±vv2¶m»påʣ͛=ÿïÿ<¥-õé‹ää¢M›ÎéêªDE­27Et8hjê¸{÷9~màõëFÞI¶¶úÒÝÔÅÅÜÕÕB:§õ½×­[¥AA £F©œ<¹ÚÄD_ó#øˆÀ©S™>>Žû÷QáN¸sçyss‡¶¶ò´i&NNf3fXÂÀF #ÏŸ×%'%'çåUÉ$WW kgg3CC‰z2ÿàb2Ù{÷þ›õŸÿL=pàsyy9¢#ö®_/ܼùœ‘‘fTÔ*Ÿ4pÿ~ùƒåéé¥ííÝ<“ÌUTF Â@@0ü ¼ÜWòèè({zÚxxXüñxI}në ª«£­[÷Û“'oÂÂñÅGD‡#9ÊËüý}ýºñðá¥óæÙÎðÀbqJJþyîPvv†!kk˜4ÄdĠѺnÞ,JM-Áo=²³3ðð°òð°–†gô–¬,ê† g””äOž\mc£Gt8’¦»›µÿ?#,‚°~ioï~ü¸ŸBXPð& ñ€Há·ïÃuþÄá`áá7ú)å³Ïløá?ðTסsíÚ“-[~;V;*j•„½'Zdêêh÷ï¿ÄgöÔÕµji)9:š:9™¹¹Yèé©j 9¸Î?¸ZZ:ƒ‚nß~¯ù—/üüâ*+›~øá?sæL :œá;…0#ãi[& bA0Tº»YYYÔ›7‹RRŠêëÛ 5ñÛ÷Má‚ê€=zTÇá`‘‘+§L1&:iÄÆfùú:íÚ5:ð‡ã4“ó‚ÃÁ¸“¦N5†»0€h@0Èš›;RSKnÞ,ÊÈxÚÕÅ´·7ðò²õô´‘Îç®®˜˜Ìýû“¦O7=~ÜGCC‘èp¤Î¥KCC/ššêDE­‚q«AÔÑÑ—÷螺#)“'ä  Ž‚‚7))ÅIIO¨ÔZ%¥^^¶ø‹yàöýAA£Ñ7o>{ófÑ7ßÌ^¿~œ‰òâE½¿\UUó?ügöl|õõm¹¹/²²¨©©%µµÿNpuµÐׇI`A0pÜþ””âׯÿàwr2ƒ»Ò ½½;;»ÌÃúÇòÒÒ?¿Ómmôˆˆ•lJHl€‹NgîÜyåìÙA#))Ž € IÎÎfªªðÕ Èú­½½ûúõî|&&:^^¶V“'“æ×ñ}¸ÐÐ üñàúõ¯yGLΞÍٱ㲭­~däJxE›ø¸páÁ7ß\43µÊÀ@ƒ»üܹœàà?~ÿ=ÐÉÉŒÀð$ LC2€¾ª«kMJz’’RÌûÞ™3­a€PÜ»WöÅ!CCÔÔ­ŠŠ#ººÛ¶]¸téÑúõ3¶m›o?7eeõþþquu´cǼÝÝ-B¥¥5^^?°Xl•¬¬íJJ#ˆŽQñN(,¬”——ãNòw‚ƒ€ à=¨ÔÚ¤¤ü””’¢¢J2~?ÜÈ;¸ÚÛ»œ¾khhãp0YYó½{üúúuÓÑ£Ë?ýÔ†èt:sÇŽËçÎåúú:ýßÿyzyýP[ÛÊfsääÈ Nþé§eD(ḓnÝ*­©iÑÔTš>Ý¿·÷ ‚@Àß³gµÿ]pýzAQQ…"ëä4þÓOm==mtt”‰M}óÍÅ„„l‹ƒÿJ&“äååôôÔ££W›™Á%q›õßÿ&êêªÔÖÒX,6¾D"9ã7c†%±±Iî¤Û·ŸÒhÿNÀ|ä_½ëãã'•¼£ àÍß\»VðâE½²²¼»»ÕgŸÙº¹YÂõÌ¡“ýbñâã=º!™LJHpq1'((Ð?ûö%EF¦óžLÈd’ººâ;ßÀœ5c³9ÅÅü' L™b*(x3gÎQî·.YY™Å‹'ÿøã‰ „:;½âN1Bö£Æ Ÿ4púô]»® „ÈdÒÎó|}`n“´  ®Ž¶~ýo'N¬zïåzƒuûö3|Œ¿µµÓÔTgþü‰sæØÃÌ>QÚ½ûJlì]6»ç‡BHNNfÒ¤±.¬‡,÷õ=ÝÚÚÉÛkedÈ :47wde=çp8ŽŽ¦³fÙyyÙêêª*àâ½þO¡È2,55…E‹&{zZÃ3ΆµÆÆö´´Ò«Wó23©†‘É$‹C&“´´”³²¾QV–':@ ÌüùG>¬ò¡@"‘¦O79vÌÐ)Þɪ«« ¥ïÆŒƒÿðË/·Â®aê1–L"‘deeÜÜ,fͲóô´î};ìp©©Db±8Ë–Å•—7"„äœMÝÝͧO'åßø¹½zÀĪW74´§§SoÝ¢>~\Éá „°Å‹'††Î$:.1"n-N§3]\ŽñÑÉ‹D")*Rvîôrw‡??=zÝ;ç\*•*Ú`h̘14}ãÆøÔÔ¾é*†al6ûÈ‘¥ZZü¯ö—šJ¤K—žÖÕÑœœ ¦Ncg§#+KF«¨xIt\ûðÏqëÕööJöömm6ÕäæV'&>17im­Mt\âBÜZ¼°°¾ÇÇ?™LÂgÿaâþ ðööîÝ»¯Ý¹S²d‰¥Œ Œ 'Â2„•••ŽŽøÞøQ___RRRZZ³zuLmm‹ð«U7oz{; ZAÌk*©8LQÑ(<ÜžóÏ…÷êAÙ•xöê¹sB¨££ûùó:{{C¢Ã!žx¶ø;I!Ššš‚††’––¢––²ºº¢ºº‚ºº¢¦¦’††¢ºº¢††‚ºº" Õ ;|{ÝðkÅÜÜê“'¯3,áW«0 KJz"$„ “I}4Žè(GÀÇ¿8Û¼Ù34t6¤æRe8eL&ûûïSÏ{ˆõ'‘ŒÌ?ï&'‘>=•DBøu6›s÷îóÖÖNx()¼<³A §  ¾žæâb:z4ÙÌÌ!„aFÇÿÔÕÅ`0X! C­­]<›´Aô6œ2==u9¹±ÊÊ®®öDÇ o0äH#Èi4„@YY™4<<’[ÍÞ?ñúõë/¿üÃ0%%ñ}D±ºàUxüø±¬¬ì… ¸Ë)Jaa!þkGGGHHÈ„ ”””¦L™rðàA‹…tÜHü VMß‹D"•••‰¬8b}H¯Í?>^Êv‘ª n« '¨×õñœ3¤xO>cÇŽ]¹reCCƒõû{’q¯„ àåË—ZZ|^¡¦¦¶mÛ¶ß¿˜X5¯^½º`Á‚êêê„„„Áº3XÄð*Lœ8qûöíAAA---¡ÖÖÖõë×ïÞ½ÛÖÖ!ÔÖÖ6yòäÜÜܰ°°¼¼¼ÐÐÐøøxOOO6›=°ãvïÞ½šw n¥ufió!½š»íL¼,Þ%Ðvâ¯w«qñ6Ÿ î×—sŽàg¡ÊÊÊÓ§OÓh4<¾Äý$ñHOO¯««Ãúéùóç=ö3têêêÒÓÓ?|?«©pÜãЗ2{öìÎÎNQº!^ ú»»mllüýý1 œ4iƒÁÀ× vrrb±XÜ­ÚÛÛÇŽÙ»ˆ÷ „ÐóçÏ?¸N‰aèJ—°^Ý{Û¡À-‹Û.ƒ^œt¶øêÑCxñm¾ ûrÎj=z‡ÃqvvÞµk— õûÛ-EÜëú} ))ÉÎÎN^^ÞØØøÌ™3¡iÓ¦!„F…þwÑæÖ­[†††qqqÜ 8$)!!ÁÒÒRCCãûï¿ÇHdd¤•••ŠŠÊŒ3þúë/±2øóÏ?õôôš››BçÎ333ëèèàp8Ç·´´TVVvttLOOǯ؉ü¯¿þš8q¢‚‚ÂèÑ£ÃÂÂð…oß¾UTT9r¤ Cwçξ’H¤ØØXKKKmmí°°°3gÎŒ7NUUuçÎø L&sëÖ­ººº:::[·ne2™ŽŽŽááᡦ¦&2™Œb³Ùêêê×®]Cµ´´¬^½ZKKK__?88˜N§÷ˆß3†aÁÁÁöööoß¾å­BˆB¡ÄÅÅÅÆÆ¶!¤¨¨’0€ãÖ¯ÆÂ÷Ÿ˜˜hnn®££ÔÝÝýÞúŽ?žÛ"½%''›ššª««y‰¸×õ/hjj’““;räHss3‡Ãikkc³Ù½[®  {·ñBxÙ ?‚666 Ü=Ÿ={VÜ2€ææf}}};;;¶¶Ž‹‹ã®ð믿 ?Wvww—––¶··³ÙìÛ·os»Î¢E‹ššš0~?t‚6Dåååaÿ;Œ¼?ã+XXXÔÔÔà;LII±··øð¡’’ƒÁøú믷oß.''×ÜÜ|øðáY³fáÛÊÈÈá›\¾|ÙÔÔ´w#†„„ „ž={Æ­;· 8‡3þ|ÞÈ÷ÄzïÞ=--­7!)lïÆâ­†açÏŸ755íc}ùö„PFF†al6‰o|òÝ!—¤öê³wçÄÞ×¥ùžp°w»Ÿ  `Åõ8V’Ú⿃Ã[ ssóË—/ã-))áþÜ{+¾ $hs!ç½¾,ìË9g¨«†½/T:¾DÐ>y‰¸×õo@]]====''G__ßÅÅ%++‹Læ³ ‹Þ ñWq¯Õ¼xñÂÆÆ†ûW++«~E"jjjþþþÅÅÅë֭×¼|ùÒÞþ߇ÙÙÙ ß…B¡R©^^^“&MŠ‹‹Ã¶··3™Luuu¾›à‡Žï†8eeeô¿ÃÈû3îÕ«W£GÆç©zxx”——Oœ8QQQñÁƒ™™™óæÍ›8qbfffzzúìÙ³Buuul6ÛÄÄßÜÔÔ´²²’7܃\]]¿ûî;AUHHHÈÈÈHKK»xñbbb"÷Ž5 ÿVÍ+??Ÿo~Üp|OÓˆ_cáð«úxu*++ûX_Að>Ü£Ï÷(BÈBq@H¯Æõîœør!]šï §/e ¬¸Þ$²Å‘àƒƒÿTTTp«cii¹páBA[ñm ¾› j5LðÛÝxõñœ3ÔUãÛóçϹ§A¥ãú¸OQöºþe]]]çÂ… MMMkÖ¬™;wnSSSïÕøþGõ¨‘‘Qqq1÷×ÒÒÒ~E"oÞ¼9~üøÌ™3·lÙ‚/ÑÓÓ{òä wÞøùêêêZ²dÉÖ­[óòò"""ð…7nÜðòò´ ~èønØøwkü£±¹¹9''‡L&Ïš5+11‘J¥:88̘1#%%%33Ïtuuedd^¾üçͼ/^¼ÐÓÓã—””ùûï¿§§§÷®BuuuPPÐáÇwïÞÐØØˆÿÉÛÛ{ß¾}x2‹Z¶lÙ¹sç–-[Ößã&\ïÆÂá™2BˆJ¥Ž3¦õ„ïÐx"„,„ôj\ïÎùÞhùžpúRÖÀŠëM"[ >8øÁ˜1c^½z…/ÉÏÏ?pà€ ­ø6ßÍ{·~WpUUU_jÑ÷sÎV­w`†8q? )×Ç}в×õ/ ‘Hžžž—.]¢Ñh CNNNA៧·÷kW6l INNnllćgÄj& ‡Ãñõõݸqã¹sçRSS“’’B¾¾¾[·nMLL¬­­½qã> %Dww7ƒÁ P(]]]»wïFµµµ%&&Ο?ö%ìÏ?ÿü›o¾©¨¨(((ðòòúå—_B³fÍŠˆˆ˜:uªœœœ»»{\\œ‘‘‘‘‘BHNNnéÒ¥AAAåååEEE;vìðööî½[EEEssóÐÐÐÀÀ@:Î[ ÃìììÖ¬YƒÚ²e‹®®îÆñ¿îÚµ«¶¶ÖÃÃãæÍ›T*ÕØØxùòåt:}íÚµ«~CCCí»€ÆÂmÚ´©¬¬ìÁƒÛ·o÷ññéc}¹9&&¦µµUø1ïQ„…„#¤Ws&ßÎ)ߎðÿ )IG‹£÷œ+V|ûí·EEEEEE_}õUEE… ­ø6ßÍy[MMM !ôÛo¿Ñh´cÇŽñ-ès¤ïçœ!­¾2~ªªªº}ûöÂ… ËËË¿þúë¾”.hŸDö:Þ ª}U:þ¼‰‰ …B±°°HLLÄ0ŒÉd~òÉ'JJJ˜€±ìݱüg6›nbb¢ªªêå啘˜¨­­-¼hL„ãg?ÿüó„ ð;L®\¹2zô覦&ƒ±wïÞqãÆ)))9::âs„Œ˜böã?jhhDDD,[¶L]]€Ç :\½7ÔÑÑÁøÆ?Óh´/¿üR]]]SSÓßߟë×ÒÒ"++‹Ï—éèè P(!!!Ü‚šššV¬X¡©©9zôèÍ›7wuu Šª««ËÌÌlûöí¼Uˆ‹‹1bïû÷ï“Éä‹/â¿¶··oÙ²ÅÆÆF^^ÞÄÄäÛo¿uqqYºti¿Ž·ú|;0߯Â÷cdd¤¥¥µqãÆ®®®÷Ö—·3¿÷€ó-BP¹BHj¯îq0ùvÎ÷vé'ƒÁ[Rœ4´8Æïàð¶/N3fŒªªê²eËš››ñå|iïO„Þ›÷nµýû÷«©©™˜˜àð1Ÿ#ø=6~ÎÒªaïž… ¼½½y›@xéBöIT¯„ç LRRR~~>÷׋/âSu„«ûh…ÌBtwwgggu)"h¾E  \èÕÃ…D¶8sCÚë{/@AAO^^^gggNNÎÎ;…_ƒB¡à÷È ao éìì\°`ACCƒ±±±¯¯o@@QÁÉ£¢¢2Ô=Šo"(ZˆÞö:Æ3°‘‘‘aee¥££óáû"õõõ%%%®®®¸ñ¯)Ы¥ ´8=¾½Þ H#Èi ¤d€4êy7`KK þ¸fñÔßg !æ5Òzµ´¢Ç·×õ̪««E ñ¤§¦@z@¯–6ÐâàC¼ó<H ˜H#Èi ¤ÑÿUçDN`ÖÑIEND®B`‚XQilla-2.3.0/docs/simple-api/classBaseInteractiveDebugger-members.html0000644000151400015140000002656211653571063022716 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

BaseInteractiveDebugger Member List

This is the complete list of members for BaseInteractiveDebugger, including all inherited members.
BaseInteractiveDebugger()BaseInteractiveDebugger [protected]
breakForError(const char *message)BaseInteractiveDebugger [protected]
breaks_BaseInteractiveDebugger [protected]
changeFrame(unsigned int number)=0BaseInteractiveDebugger [pure virtual]
checkBreak(bool entering)BaseInteractiveDebugger [protected]
commands_BaseInteractiveDebugger [protected]
currentFrameLocation(std::string &file, unsigned int &line, unsigned int &column) const =0BaseInteractiveDebugger [pure virtual]
disableBreakPoint(unsigned int number)BaseInteractiveDebugger
enableBreakPoint(unsigned int number)BaseInteractiveDebugger
findCommand(std::string &command) const BaseInteractiveDebugger [protected]
getStackSize() const =0BaseInteractiveDebugger [pure virtual]
interrupted()BaseInteractiveDebugger [protected]
listBreakPoints() const BaseInteractiveDebugger
next_BaseInteractiveDebugger [protected]
outputCurrentFrame(unsigned int context=0) const =0BaseInteractiveDebugger [pure virtual]
outputCurrentFrameQueryPlan() const =0BaseInteractiveDebugger [pure virtual]
outputLocation(const XMLCh *file, unsigned int line, unsigned int column, unsigned int context=0)BaseInteractiveDebugger [static]
outputLocationFromString(const XMLCh *query, unsigned int line, unsigned int column, unsigned int context=0)BaseInteractiveDebugger [static]
prevcmd_BaseInteractiveDebugger [protected]
queryCurrentFrame(const char *queryString) const =0BaseInteractiveDebugger [pure virtual]
queryStarted() const BaseInteractiveDebugger [inline]
queryStarted_BaseInteractiveDebugger [protected]
readCommand()BaseInteractiveDebugger [protected]
regexFind(const char *regex, const std::string &str, int groupNo=1)BaseInteractiveDebugger [static]
run()=0BaseInteractiveDebugger [pure virtual]
setBreakPoint(const std::string &file, unsigned int line, unsigned int column, bool temporary)BaseInteractiveDebugger
setDoFocusOptimizationsn(bool opt)=0BaseInteractiveDebugger [pure virtual]
setDoLazyEvaluation(bool lazy)=0BaseInteractiveDebugger [pure virtual]
setDoProjection(bool opt)=0BaseInteractiveDebugger [pure virtual]
setNext()BaseInteractiveDebugger
setStep()BaseInteractiveDebugger
stackTrace() const =0BaseInteractiveDebugger [pure virtual]
step_BaseInteractiveDebugger [protected]
~BaseInteractiveDebugger()BaseInteractiveDebugger [virtual]
XQilla-2.3.0/docs/simple-api/InputSource_8hpp_source.html0000644000151400015140000004537411653571063020324 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

InputSource.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  * 
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  * 
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: InputSource.hpp 527149 2007-04-10 14:56:39Z amassari $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_INPUTSOURCE_HPP)
00023 #define XERCESC_INCLUDE_GUARD_INPUTSOURCE_HPP
00024 
00025 #include <xercesc/util/PlatformUtils.hpp>
00026 
00027 XERCES_CPP_NAMESPACE_BEGIN
00028 
00029 class BinInputStream;
00030 
00031 
00062 class SAX_EXPORT InputSource : public XMemory
00063 {
00064 public:
00065     // -----------------------------------------------------------------------
00066     //  All constructors are hidden, just the destructor is available
00067     // -----------------------------------------------------------------------
00074     virtual ~InputSource();
00076 
00077 
00078     // -----------------------------------------------------------------------
00091     virtual BinInputStream* makeStream() const = 0;
00092 
00094 
00095 
00096     // -----------------------------------------------------------------------
00108     virtual const XMLCh* getEncoding() const;
00109 
00110 
00117     virtual const XMLCh* getPublicId() const;
00118 
00119 
00128     virtual const XMLCh* getSystemId() const;
00129 
00138     virtual bool getIssueFatalErrorIfNotFound() const;
00139 
00140     MemoryManager* getMemoryManager() const;
00141 
00143 
00144 
00145     // -----------------------------------------------------------------------
00148 
00160     virtual void setEncoding(const XMLCh* const encodingStr);
00161 
00162 
00174     virtual void setPublicId(const XMLCh* const publicId);
00175 
00192     virtual void setSystemId(const XMLCh* const systemId);
00193 
00203     virtual void setIssueFatalErrorIfNotFound(const bool flag);
00204 
00206 
00207 
00208 protected :
00209     // -----------------------------------------------------------------------
00210     //  Hidden constructors
00211     // -----------------------------------------------------------------------
00215     InputSource(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
00216 
00222     InputSource(const XMLCh* const systemId,
00223                 MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
00224 
00231     InputSource
00232     (
00233         const   XMLCh* const   systemId
00234         , const XMLCh* const   publicId
00235         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
00236     );
00237 
00243     InputSource(const char* const systemId,
00244                 MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
00245 
00252     InputSource
00253     (
00254         const   char* const systemId
00255         , const char* const publicId
00256         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
00257     );
00258 
00260 
00261 
00262 
00263 
00264 
00265 private:
00266     // -----------------------------------------------------------------------
00267     //  Unimplemented constructors and operators
00268     // -----------------------------------------------------------------------
00269     InputSource(const InputSource&);
00270     InputSource& operator=(const InputSource&);
00271 
00272 
00273     // -----------------------------------------------------------------------
00274     //  Private data members
00275     //
00276     //  fEncoding
00277     //      This is the encoding to use. Usually this is null, which means
00278     //      to use the information found in the file itself. But, if set,
00279     //      this encoding will be used without question.
00280     //
00281     //  fPublicId
00282     //      This is the optional public id for the input source. It can be
00283     //      null if none is desired.
00284     //
00285     //  fSystemId
00286     //      This is the system id for the input source. This is what is
00287     //      actually used to open the source.
00288     //
00289     //  fFatalErrorIfNotFound
00290     // -----------------------------------------------------------------------
00291     MemoryManager* const fMemoryManager;
00292     XMLCh*         fEncoding;
00293     XMLCh*         fPublicId;
00294     XMLCh*         fSystemId;
00295     bool           fFatalErrorIfNotFound;
00296 };
00297 
00298 
00299 // ---------------------------------------------------------------------------
00300 //  InputSource: Getter methods
00301 // ---------------------------------------------------------------------------
00302 inline const XMLCh* InputSource::getEncoding() const
00303 {
00304     return fEncoding;
00305 }
00306 
00307 inline const XMLCh* InputSource::getPublicId() const
00308 {
00309     return fPublicId;
00310 }
00311 
00312 inline const XMLCh* InputSource::getSystemId() const
00313 {
00314     return fSystemId;
00315 }
00316 
00317 inline bool InputSource::getIssueFatalErrorIfNotFound() const
00318 {
00319     return fFatalErrorIfNotFound;
00320 }
00321 
00322 inline MemoryManager* InputSource::getMemoryManager() const
00323 {
00324     return fMemoryManager;
00325 }
00326 
00327 // ---------------------------------------------------------------------------
00328 //  InputSource: Setter methods
00329 // ---------------------------------------------------------------------------
00330 inline void InputSource::setIssueFatalErrorIfNotFound(const bool flag)
00331 {
00332     fFatalErrorIfNotFound = flag;
00333 }
00334 
00335 XERCES_CPP_NAMESPACE_END
00336 
00337 #endif
XQilla-2.3.0/docs/simple-api/EventSerializer_8hpp__dep__incl.png0000644000151400015140000000646511653571064021551 00000000000000‰PNG  IHDRu.­ÿÞbKGDÿÿÿ ½§“ êIDATxœí}TSåÀŸÉ6P6Aš4ŒÕqbÆT†;CâTxB¾d¡@tÏÉ3ÂÞD¥½É$h³Ö¥e¼ †")°‘°_âA 8d ˆ6܆{ýýqÝÆ6ƃñ¬çó×s¿{î÷ùÞûÙž{¹»ãL&@ÀÃ"w€p$ 20È@ ƒh¾°iÓ&wÕ°Ã… ð6Áü,‘@ <òÈ#4ÍU!l022rýúusGD‹©©©7nœ×¢SséÒ¥C‡™GÐ1 20È@  ƒ $ 2,ϧ…ÅbY›››]QÌ?¨Õj@ðÃ?Èd²àà`6›½}ûv2™<튃ƒƒ;v옪üUûÝœ…Åb•——‡††º$›}œàr¹!!!®­C*•¾úꫵµµØâ±cdž‡‡>|ëÖ­cÇŽ)•Êœœœióøûû§¥¥¹ªÛd&S"…BY6™Ù×a4 ¾ØÚÚš‘‘A¡P˜LfNNN[[›#y233]Õmâ²cØ;ï¼S\\Œµu:]bb¢X,èõú’’’¤¤¤¤¤¤’’½^`±XMMM»víÚ¼yó7ß|xíµ×ÉÉÉX__ßšš\!“É …XÛ:áàà ‹Å’H$[·n=wî>iÿôÓO )))§N2¯[kÇÿM\\´?ʵk×,6¿££cûö퉉‰'OžÄó·µµíܹ3))©¨¨H§ÓÙ :»Ÿg"L£Ñ¨'`³Ù---ØE”+W®x{{GGG¾ûî;©TZZZúÑGI$’¯¾ú KÒÚÚzüøñ¬¬¬ÒÒR¥R‰É®ªªÂ^åp8‰äÅ_äp8B¡pxx}ª„ß~ûm^^^DD¶xïÞ½÷Þ{/""¢¼¼<;;›ÇãÙÜœÆÆÆÆÆÆóçÏoذaóæÍN‚ÓÞÞÎãñrssù|>þ>«©©9räÈ|ÐÞÞŽ¿clg&ÂöìÙóìdO<ñ„B¡øí·ß"‘(!!ÁËË ÐÐаoß>ž••õóÏ?cI^xáÿgžy`>b<þøãB¡ð³Ï>[³fÍùóç·mÛ&‰°—¦J˜™™¹nÝ:l‘L&Ÿ8q"'''00»::>>ng£êëëGFF^ýu§FÁÙºu«¯¯ïSO=P*•X0;;;,,ŒÁ`ìÙ³¿€k3è839é°yFäííýä“O¶´´<øàƒ—/_æñxX|hh(%%ïæçç‡5‚‚‚D¢4ÍåË—7nÜÈ`0 ÆÎ;AII ›Í¶“pÅŠ“6ŒH(,,T«ÕÖ úûûOž<ÉårI$’ý²-FÁ ó`XX¾ÖŸþi'è836l6»¨¨ˆN§¯^½/+ à“O>Á«T*™L†Å-¶Í“ÉTPP°bÅ :ŽõŒŽŽ®««³ŸÐÂýÄÄD~~~~~~LLŒN§khh˜j8µZ]PPpàÀì=äÔ(867g`` <<pûömÌèTAǙɔ866&› ŽŽV©T›$16lØÀãñ†‡‡ûûûssskjjìdƇ‹/Ž?tèX,–J¥ÝÝÝŸþ9öñr<¡N§ÓëõD"Q«ÕbG {÷îÙìùé§Ÿ>÷Üsk×®5N;ÊÙ³gíϱ.—;88øë¯¿òù|ü»F›AÇ™É' Ÿèq°¿@‰Dbll¬H$ŠÅ_Ú½{7—ËÍÈÈ O?ýtVV–Íœ÷Ýwßš5kRRR¾ÿþ{@nnnYYǤR©,ëå—_ž*áèè¨uBÿììì‚‚‚Å‹oÛ¶Ífçæær¹\ëž/^,--5L;JaaaTT>UÚ$..nÿþýûÛ-‚vV·‰å˜D߇Í›WRfpyû>Ìܺ–HØœàçç—˜˜èHÐY°9B¡¼ñÆŽ ƒ $ 20È@  ƒ Ï6:ªþë/µ»«˜,¯t„‡‡S©T7äTª0€¿ÿ€» ™-r¹¼¿¿Ê[µSSS罤9¡³“F Âç¿igá³~ýzóE‚çýdöÆ;lö"Q.ƒáâ›…ÜŽÃΜù…H\D$zÕÕýâîZ\§ 3™Líz½Q¯7TTˆ=oþð4a7GFþ‡Èð°¢³ó¦[Ëq=ž&¬¦FB"yamÉ«ºú¿î­Çåx”0½ÞXUÕ©Ó°EÎPUÕ¡×Ý[•kñ(a­­=wïjÌ#wïjÚÚzÝUÏ\àQª«;‰ÄI[D$ªª:ÝUÏ\à9Â4]}ýU½Þ`ÔëõõW5§ïˆ^°xް¦¦ëÞ:®ÑèD¢ëó_Ïá9Â*+;¼¼lÜÍéåE¨¬ôœYÑC„)•š‹oØ>n4¹\.ƒÁX²dILLLss36¥Ø™‚êëë×­[çëëbSC]]“Éôññ /++“ç4ðå—_2Œààà£G–••­Zµ* àÝwßÅ{ÖÖÖ>üðÃ4-''gbbÒ?QÔétgùòå4Ãáèt6þñlcc#N§R©GŽ™*ç´Í G.œ.M½ôÒK»víZ¾|y{{»Éd*--¥ÑhUUUwîÜ9{ö,ö°ûÞÞ^lPë†B¡ “Ééééåå們‘ó!T*•··wII‰T*=qâ‘HT©TøêXiii …‚Ïç¶lÙ¢P(°'jŽŽb=ããã{zzÄb1NÏÏÏ7_ýÃ?LII¹uëVWW×c=–——g½žþy…BQYY9mN‹ #—¦ráP'„Éåò°°0&“‰÷è£ ¼Ã×_m_ØÄÄÄ7T*•Á`hiiÁ:›!“ÉH$Raa¡\.7J¥Ò`0X“H$&“I«ÕZ´{{{±ž]]]Xg¡PH§ÓÍWŒŒ”J¥XûÂ… QQQÖûáÒ¥K&“É`0L›Ó"hï9.ÌeÇ0 …’™™ÙÝÝEúûû£¢¢ðL&Ó~2™ÜÓÓ“°~ýz@€Ç C¥R›››ÅbqXXXllì?þ¸h‘eýK–,H$‹6NDDÖˆŒŒ˜ô€±›7o†„„`cmÚ´é÷ß·.òþûïXŒk3§fƒË„ݾ}›ËåÆÅÅíß¿‹„††^½zïÐÝÝm?ƒZ­Þ²e ‡Ã‘H$ÅÅÅxs©Õj£Ñxúôi™L¶{÷îÄÄD™LælØÛÐÓÓƒí}œ   ü3-—ËÅb±õê6À6sÚh6¸F˜ÑhLOOß»woEEESSS]] ==ÃáÔÖÖ ;w.//Ï~’‰‰ ­VK&“ÕjõÁƒJ¥Ò¼@ˆ¯¬¬T(Z­–D"ùúú:[ê¾}ûúúú®\¹òÖ[oíØ±Ãü¥äääüñÇ]]] Çðùü»w§ù^ÍfN;Í GæM0Ý1¬¨¨híÚµZ­Öd2UWW‡„„Èd2­V{øðáU«VùûûÇÄÄœ:u Ø=†™L¦?þxÙ²e<ð@qqqZZF³žëzè!2™Y[[k±:0;ìY·±ž|>åÊ•AAA{÷îU«Õæ«+ŠW^y…J¥fffŽÏ&§EÐþvÃIÇ´˜ï·0ØÌ9ƒÜpÒ˜þE–.]š••59çb päc`»§:Ð”è± a„AHd8ú°‘H4666§¥ü›éìtô‘tžyo=¤8ä‘Nˆ…:†AHd añ?'RkªLˆyIEND®B`‚XQilla-2.3.0/docs/simple-api/InputParser_8hpp__incl.png0000644000151400015140000002221111653571064017706 00000000000000‰PNG  IHDRÝu„g¬bKGDÿÿÿ ½§“ IDATxœíÝ{ Téûðwfk’[.i“’’R}‰Ú®Kº(¢,±ÝÓ}Û\V$j‰R[ûM¶6•ÝX„jÒEj£›ûJtºÉ=„q›™s~œ¾ó›cnx>cÎyŸ÷=çßÌ™3'22RKK‹ï›e=–••522Ú±c‡††[áÒº :à®—ÅNyyùÒ¥KÙ—„††&$$ÄÇÇÿöÛo8ŽŠ*6€@^;†544°/2dÈСC•••õôôÜÝÝŸ>}ÚÜÜ,ªð‚yY æÌ™sûöíU«V-Y²$&&!ôáÇ9sæ<|øÐÅÅÅÖÖöøñãt:XH¬Âz¼eË„вeË8n™L&#„˜L&B(==}Æ VVVvvvÿý7k#¹¹¹iiiëÖ­³´´trrJNN&¶À`0Nž|xñâExx¸………¼¼™Ó …ø¼Jw´µ Áq iéZ„°­XWWWRRG Àý1ºeùòå‚n‚F“,*Rb0È“'Wt'{¾{§ÐÔ$5nÜÇnnÿÙ3eyùvÆ^EÉII‰bY™¼¤$¦ªÚ¢¦F“—ïÁ/•L™2…ïñÐ×Áõ²è55µíßOýûïŒéÓG<¸ü›oT¾ºJUU£¹y€››ÕæÍs¾údBXØ_½™–¶GMM¡wñrPYÙ˜˜“ùìY™––’Íd3¸Õ'¼€¼,b7nx{'´·3üý—ÚÛOåx³ãÎ||’“Ÿ>xà=hPwßñ´µ1¦Oœ?B` ç_ä‹üü÷qq9—.ý[_ß|hï·†zÿ¾öÛoƒ°sr𯗠ò«¾QSÓdd4ÜÙÙ ê`à€¼Ìg%%Õ±YY¯W¯žáé¹@AAº÷Ûlii77?°h‘Q@?¿ªçãsñúõü´4ïžÎÕ&KK+ŠŒLOJ* “I––†ööSçÎ5èéÄmúÈË|Ã> .$dÅÔ©#ùµå°°;¿ýv+-ÍGYYž_ÛD}üØdf°s§å–-sù¸YAøô©91ñqddz~þ{¨o€~ò2äå½sw-*ªòðà}GõõÍÓ¦lØ0ÓÍÍŠ_Ûd9|8)<ü^FÆž!Cdù¾qA ê.dUW7B}ôW—{‹Fk ¾þçŸLMuCBø~xõÂ…¬´4A|;ŽFk37tp0ñö^Ì÷ Ô7@ÿy¹WRS_xyÅ74´ìÛgÓËip••ÕOŸ¸gõºu3ù»e–ðð{\}øÐ[Ccˆ€š¢¾—ýzØ0E;»©NN¦#GªŠ:.zò2>~lòöNHL̳¶žôË/ËqSc„‡Ç…‡_ݽëÅÇÂHt:sæÌ o¿sèÐ 5!……qqÿ_ß°·Ÿjo?µ¯gèòr bG¯^UÎ{èèQG{û©j‚ŸóÓOÑwîxŽ­.І¨oÄÅe_½úÇq¢¾1gŽXÍÑà« /÷LIIµ§ç…ŒŒâ5k¾õðX0x0¦Áueƈ7ojnÞt#“ûµ7 ÃçÏ?2r¤Ê¬hCBÓÐÐråJ{}ÃÑÑTWê o€¼Ü]L&vòdÊ‘#7ut”CBVüç?|›ÇÑ¿ÿ¾µ¶>ö×_zzwfÞܺõtõê3W®ü8eÊ!4'4¯^U^¸—UUõ¹¾ag7EIINÔqÀ äånyüø½›[Œ ¦ÁuÅÎ.”L&ÅÅmtC,öö'pOHØ&´…Ãð‡_ÅÅe_»–aÔ7€˜ƒ¼üìÓàZ!œÏúïÞ}éätêêÕÆÆ:BhŽ›ûÖÚú·èh×™3õ…Ö¨±×7ÔÕ/žèädj` )ê¸øäenîÞ}éåW[Kóõ]²rå4áÜÞ ÃpKËÃÇ=wnšc·zõ™ÒÒÚädwAW´E®¨¨ŠJÍÍ*-­#êË–M:ê@,@^欶–¶{w|bbÞ¢E–©«ZÓTê£íÛ#SR~5JMhŠŠªæÎ=ê¼d‰±› öú“‰Íš¥oo?uÁ#¨oÑ‚¼ÌAddúWed¤‚ƒ8 Ž#:ùí·Aff£Žuf»,?ýž^|ÿþn!ÔÐÅGCCë•+ââ²srÞ¨©),^<ÉÑÑtÜ8¨oÑ€¼ü…ÒÒ:/¯¸ÔÔB˜ÇQDÄÃýû©ii>Æ) ¹iBEÅ'só@?¿¥«VMI¢EÔ7.\È~ÿ¾ê@T /FLƒûõ×dmm¥&&¼ÿ€ÏššÚÌÍìí§îÝ»Tø­³ìÛGMHÈIKÛ3`ïĪo\¿žÏ`|®oXYMPï!€A^F¡Çß»»Ç¾zU)´ip;–|êÔÝŒ EEQ~¸¶–fn°yóÜ´aâ ¡¡õæÍ‚øøœ^õï¿7?^KÔq~n çåææö  kþù`âÄá!!cÇöö§óxVSÓdn°uë|è#++ú_inn77X¶lŠh+*âÃðœœ×ññ9/þ õ 84/³¦Á-\h¸L]]4²±|øP7cÆñù´-"âá¾}—<ðÖÒRu,b‡½¾¡ª*ommìà`bhõ À1/ÇÅe$R(䃗 y\W~ú):+ëujêÏâsåE§3gÍ 65ÕÕŒ½>¡¤¤úÒ¥ãârÞ½ûõ À/+/—–ÖíÞ—’BLƒ³zß>ñ¹Wγge~~—>|%!Af00ö£žšê%ªÀú´²²úK—þŒLûöóü+LTUò£½ ïêÛyùܹû>>—Â)Òõ뻈Xˆip8ŽÚY[OuŒ_Àq\W׳­Ñù_ ™DBGŽ|¿|ù„X.d»»Çà8b2±Îÿ4H¢¤ä¸}JÙ‡ðVß(+«¿~=ýú™B‹ˆJ¾ÏlZZÑÞ½—"^WÈÛ¶û¶æ‡NïÜ=¾áƒÞâ–”Beeõ“2BÇq+« 66“…G66ÆVVºzÍnkc”—rHý Qß8thEAÁ/aa.¡M›þ22Úëéy!+«¤«µââ²÷î½´kW Îb°@úêõryyý¼y! ­öù‚ŽB!««+’H((È^8¿UʃÔÔNN§8ý‡´eËŸÅâsŠãx@@âï¿§þï•ï ÑÑ›fÍê·?7%|D}#**ãÍ›Žõ ÇML~ùð¡ŽB!Oš¤óçŸëáî£ýXŸ¼^nog¬Ys–Fkc%e„“‰UV~:sfØ&e„PQQUç÷ª$iÿ~›={¬Å')#„H$’¯ï’ýûm:G%!A)*ªä¸à¦æ­[祥ù$%í21ùÛo·&Oöwpø=11¸:ÎÌ,ùð¡!Ädb¿›5+øñã÷¢Ž Åßß_Ô1ôØž= wî<ïðaBHB‚üâE¹ƒƒ‰X%8vqqÙ¥öù ”DBd2éØ1GsÑÖ•É“Gèè MN~¾B!kk+Í›'¾¯}—ºº¢…ÅøU«¦ki)=~üî?îFGgÖÔ4¦¦¾,)©&Ž ÃÛÛ11™ß|£"S?ßõ½¼›uèP+µ±Ã0¼¬ì“†Æ±ý†Õ‰·ß½«%“É$ ÊÙ³kŰÎnüx-CC­k×òBDÑ ÃpiiISGÖ $9qâp'§iNNÓdd$ããs?~Ï^VÆqÃÐù­­ô3F‹í…àM«/¿xQ¾`Á¯]}tFPPIKóÏ{ÇúÖÖ6!„(ò AçÏo43ÇiË¥§»¸üÑÞÎ Þ¦(+Ëü"ê ŠØØ,7·Ž×"d2ÉÊjÂñã+;Ïß}W_ª/74´®ZÎdr<:É !¤¨(cf6ª¨¨JèÑ}]CC+‘”%$ÈŠŠ²W¯îì+I!df6êêÕƒËJHPB?656¶Š:¨"66««a~óæÓ… ÕgÐ?ô™ïû1™ØÚµg**>1ŸßÍIJRèt&‰DÒ×6}úh“‘&&ºêêƒE'¯_W#„ÈdòСrqq[GVuD=3v¬ÆÅ‹[W¬«©¡aöúu5|cMÞ¾ý˜™YÂå}-“É,.®´²:ò×_u„/òrKKK]˜¾êž9“ž–VD”ÑH$ÒÈ‘C§Nal¬ef¦7fL¯ŽE¡õ:;ûBH[[ñ÷ßää˜eee=Z]FFFI©W·¨ïi‹ÉË£³g6mŠ--­ÏÎ~©¢"‚û<ô~Äù8ïìüùŒ¯ ìãGš­í­çÌ-œÀu8ª¿ÈË………BéëòòªÎœÉÒÓ:~¼Š¾¾ò˜1Cee?GN§7örãBëõ£GÅ£F ñôœöéSù§Oå=]]UUµ—ùˆ_Ýôõ5;x0ýÑ£¢Q£Dð~«÷ã ¶Ç9G¥¥ãÆ©©™NÇÚÚ>¿_¤ÑèÄÔrooÿ¼p÷î+ã-ê3õ1@èpTs8¯fÏž-¼pºGG§zëV»Î3Ÿ>}ʯ&„Ðëׯ)®‘—Äúüêé¸qãÔÔÔz¿Ù³gÆÇgÏžýmï7Õ#}kóE_‰ð¬óQÝ7êËýã.ìkÖ;‹ Ž‚‚têb¥/ÍÇ€ò2ˆÈË ^ /€x¼ âò2ÿõÑûÈôÝÈEˆ5hpñîÝ»5kÖà8îìì,//Ž÷r!pé Ñ…GIHHÄÅű–S©T))©‚‚âOæéé9qâDyyy“   ƒx7'üêéW‘H¤¢¢"á´%ì¼\RR¢¢¢"äF¤«¾ 2äçŸ~<½Ç=òþ´ïøˆ·Ý}ùòe›²²²¨¨¨gÏž "0A#º`llìíí½cÇŽúúz„ЧOŸ¶lÙâçç7a„PccãÔ©S333ƒƒƒsss½¼¼"##---™L&oã–––Vþ%þvJLraçe Ã>~ü(äF¤«¾¨¨¨ ?žÞãyÚw|ÄÛîNNN¶´´liiAéèôÉ›Z]@íÙ³GEE…H²^^^žžžÄsöï߯ªªzçÎ Œ3fÙ²eYYY¯_¿çmÜTUU‡}‰¿“ƒ¼ÇyÙÆÆf×®]Äã¶¶6%%¥k×®!„ètº‡‡‡ºººššš‡‡Ng0~~~:::ªªª?üðñr:mÚ4„k4ëëëW¯^­¢¢¢­­íîîÞÚÚJ¼—ùçŸtttxð óÞG]½zÕØØXVVVCCƒu’H¤³gϨªªŸ?~äÈ‘ŠŠŠ¾¾¾¢és®\¹¢¥¥EÜF#::z̘14 ðÐÐP33³””â½-—=Èqjjjäääddd¸ )o£×yG˜™™=z!T[[K&“ÝÝÝBL&“uævóÄqÜÝÝ}Ò¤I555ì]@IIIEDDœ={6((èܹs’’’ÄZ‘‘‘{÷î¥Pþÿ›ºrrržžžQQQ<Œ[v±}*•ª¯¯¯¦¦¶cÇŽ¶¶¶¯öwôèш-Auœœ¬§§§¤¤ÄÚešèªÝžÁÙTVV¦¤¤à\ÅÄÄèèè`†ã8•JÕÔÔ¤Óé8ޤååå¼^ç±ÿþE‹á8N¥R©ˆ°Ù—#„ˆ···ç°¡¡aTTkËÿý·æåõç´÷ÛÚÚž?ÞÔÔÄd2ïÞ½KôÇq„Pnn.þ¿aL<;aæåºº:mmm###Öy5~üøˆˆÖþüóOîy¹«A°³³«­­Å9åebHy½Î;"''G^^¾½½}×®]ÞÞÞ’’’uuu!!! .Ä»q‰ºÄË—/Y}gu€aØÒ¥K)г³3ûr|¹MKKSQQáaܸ\YvÞYÑØØX==½nö—ãñ€JMMÅqœÉd!ql‚ãBŽdé|T÷¸Ž!++»téÒøøx–˜˜¸fÍbù›7o444ˆOH-,,^¿~ýöí[âMBÈÀÀÀÖֶæ*++™Læ¨QŸï}¥§§WZZJ<;vlO(%%¥”””ŒŒ mmíY³fÝ¿ŸLæ0tÃÖÔÔD±ÞÙ²þ;nœ8þJ^OûÛyïKIIZYYM™2%""‚}-ô¿a,n† ²qãÆ§OŸnÞ¼™XRRR2iÒÿÿè—‘‘÷-p„¦¦&:ÞÕ-ñˆ!åyô:ïccc99¹ììì{÷î-Y²ÄØØøÞ½{)))‹-BÝ>³³³gÏž}àÀ®º•ššzçÎøøx*•ÊÀaÆW ìòòò¸Ÿà\ºßùÅ›ÕV‡E`¥ ±cÇ–––ö2ççr‡s¡C\v/Ÿû9::ÆÇÇ_¹reÊ”)¬æ‰@ÖkWFF†¦¦æ›7oˆÿæååvØŽºº:…B)))!þ,..ÖÒÒ"‹Û‰ÚÒÒ‚aX\\\mmíºu묭­kkk;?cØöâˆ#Øoõüùs¾GÛ{=íoç½ßÒÒ²bÅ ÜÜܰ°0á†Ïïß¿ ýî»ïÜÜ܈%ZZZ?f=á«7·ã8IIIVVV]­B )Ï£×yGÉä… R©ÔÂÂÂÉ“'Ï;÷Ö­[÷îÝ#òr7ÏÁÄÄÄ“'OÆÄĤ¤¤tîBYYÙŽ;BBBfΜéçççêêÊúèlåÊ•¿üò q‰rttŒŽŽvttìé¸q×ygˆ«W„Paa¡¦¦fc(ÕH2IDAT/sÇ‚x‡&¸,ì>^ò²¥¥e]]ŸŸßÚµkY —-[¶{÷î·oßæçç[YY8qÂÅÅÅÇLJ¸Dß¶mÛÛ·oYOnjjBIJJ:88ìØ±ãõë×Ož<Ù³gÏÊ•+yˆGH$’¥¥eBBBCCC{{»¤¤¤¬¬,ñ/¢/Ý·uëVOOÏäää?Þ¹sÇßß_|>÷céi;ïý¶¶¶ööv))©––???„Pccoï”-L†­]»vûöíÑÑÑ·oßNLLD­]»ÖÃÃJ¥VTT$%%U.8•J]ºt)+v'ìÎ;!´pá°°0SSSIIÉyóæEDDŒ1bĈ¨Ûç œœœ¾¾¾——צM›Z[[Ù»€ã¸«««‘‘ѺuëBnnnêêêÛ·o'þ»wïÞŠŠ ‹›7oêêê:99µ¶¶®_¿ž·îWWWW| u±³?þøcQQQvv¶···³³s7ûË:ÈÃÃÃ?}úÄ}Ì;4Áea°¿#èfÝ Çñ7ÊË˳.×ÐаfÍ%%%eeå7Òh´ÖÖVwwwMMMEEEGGǺº:ÇétúŒ3äå創jkk]\\”••544~úé§––.õ΄YmŒ5j”””ÔØ±c©T*þe_: ‰Çˆíñ˜Éd=ztÔ¨QŠŠŠVVVT*UUUõ«­ ¹¾Œ÷¤¿8§½ãø¯¿þ:tèÐáLJ……9::ª©©áœ¤óc.„¶Ç?>qâÄöövÇ/]º¤¡¡Q[[ÛÞÞ¾ÿþ‘#GÊËË›™™Ÿ p©“âAII‰(ìº:l:¯ØÍÑã¸#êëë%$$ˆOäh4š”””§§'«!îç ûã–––1cÆx{{³w!""bРAì¥ç¬¬,2™OüÙÔÔäææfhh(--=jÔ(ŸY³f988ôhÜXÝç˜Á8î,bkááá#FŒPQQÙ¾}{KKËWûÛ!AqpŽMtÕ.|øÜO¬3/óKbbb^^ëÏøøøI“&}u-áäeñ'V{¼G×€¥­­-==]Эaïpl‚‡vùð¹è¥üü|ggçÜÜÜæææŒŒ ___îïéèg¤¤¤ˆ‰Û +}ã÷JúOOÏææf›êêj]]ݵk׺ººŠ:(ú›Áƒ úÌâØ_Ú…¼,lD¥/ @Ô€Þ"楊: À™ššÚÉ“'…ß_Ú…:ˆÈË ^ /€x¼ âò2ˆó1ÊÊÊ„oZ[[¥¥¥ù²)1ï5¿zZ__OüŠO5pö88:Õòraa¡°âá~¥âßk¾ô´$£³ÇÁÀÑá¨&ÁL+P_ñyÄ äe/—@¼ü³£áð»¿7ÝIEND®B`‚XQilla-2.3.0/docs/simple-api/StaticType_8hpp__incl.md50000644000151400015140000000004011653571063017417 00000000000000d4b605f0cb1553e4d35a82e46dcf8ab5XQilla-2.3.0/docs/simple-api/XQException_8hpp__dep__incl.map0000644000151400015140000000023011653571064020616 00000000000000 XQilla-2.3.0/docs/simple-api/RegexGroupStore_8hpp__incl.md50000644000151400015140000000004011653571063020432 0000000000000048508a6941ea2ddfaa74e139ab891a93XQilla-2.3.0/docs/simple-api/inherit_graph_48.md50000644000151400015140000000004011653571063016361 00000000000000957ccf1f4e0331e24fd6791a37a5b1b4XQilla-2.3.0/docs/simple-api/ResultImpl_8hpp__incl.png0000644000151400015140000007742011653571064017546 00000000000000‰PNG  IHDRe¿dK_bKGDÿÿÿ ½§“ IDATxœìÝwXS×û𛄽÷ÞBØ "ˆÔ"ÎZÄYT÷¶ZmÕjU[­¶*Pq‹‚[EÁB‘=”½7a†Œûûãö—/eDF’›ñ~ž>>i¸9÷ ÷†ûæœsßC@Q D¼| òEÀä‹€È;bxÀPuttÌœ9ï(„‡””ÔƒðŽ!ÀýÑ@е¶¶ÊÉÉÙÚÚªªªâ‹À«¬¬,..nmmÅ;|úX´h‘‹‹ ÞQ¼'Ožœ>}ï(ð˜¿Ø|°ù"`òEÀ䋀Ȩ˜ØÅ”)SÖ¯_ÿùógŽ´\VV6qâÄ^÷XVVÆoÍù"!§OŸ¿xñ¢žžÞ¯¿þÊÙú£žžžlà/¢¤¤¤¢¢¢¢¢¢§§·zõêÒÒÒ¦¦&¶Ïd2) øä‹@D‘H$111YYYìétú¹sç¼¼¼¼¼¼Î;G§ÓyûöíòåË'Ož¼hÑ¢¨¨(ä¿cÄ=Nj׮]‹ ÈìÙ³{înâĉOžœu7wÿ_ÞíÉAD8[¯^êì¤WW7VŽïpèÐ>¼#¤²²2Ÿ—/_rðåƒkóÉ“'§OŸþj_&‘ý‹€¯1ÌÚÚæÊJJu5¥¢¢©ºšR^ÞXSƒýÛ\[Û‚m&!¡‹oœ€ƒ|àJ¥WT4VUQJK뫪(Mee UUMååMµµÍ ÛLAAJKKICCA[[ÑÒRGSSA[[ICC^QQÂÜü¾oaˆdeegΜÉÙ—±M€Æ£ttÐJK*+ÿ?¤”—7–—7VU5±º ÅĈêê ººÊÚÚŠZZŠ::ÿf‡Ø¿ÒÒ½¶ÜÚÚ*''wøðaÁæ0  'è_ÖÔÔVZÚPVÖPRR=Àþ­©ù·¬´„„+?Þ\[[QGGYSSAWWI]]Hì¥R pù"¤ššæââºÒÒ†ÒÒú²²†²²Æâ⺲²†–*¶ŠŠ¬žžŠ®®ÒÈ‘F³g;êê*ëé)ki)ª«Ëã9òEðT*½¸¸®¨¨Žõ/ö ­­A‰¨¡¡ §§¬¯¯2y²žž2–êë«ô5| Áù"øŸª* +Äþ-*ª«ª¢`“\•”d U UÝÝ­ T U Tut”ÄÅIx.‚|QDÕ×·Ô|þ\]PPSPP›Ÿ_SPPƒuŠ‹“tu• TÉd-k,544TUPÆ;jÀ ‚x}}«Š »ÚàD ä‹ÂBé((¨)(¨ÉϯÁòÂüüÚ¦¦6AÄÅI††ª&&®®f‹16V74TÕÑQ"‘`¡HÑ%&fdc³[SSÁÎNßÙÙØÉÉØÞÞ@RþV€è‚z:B…ÉDKJêóòªrs+?®ÎϯÉϯƪÕHD==eccuccuSSuìžž²¤†X=SSSEEÅÁµÀdJ´µiÈÊ–ùq@Q¤­MWF¦Š@ ±©ÚÚÚÚÚæÛ·c?~,øø±05µ„J¥ËÉIn0r¤ñˆ†ŽŽ†ÊÊÐõ¢òEÆ`0KJêss+ss«°óòªÚÛ;ÑÐ73Ó41Ñ06V71Q31Ñ04TÖ‰†T*Õ××wp¯mi‘(/—­©‘&Q;»ZYYgcë*/OY\œidÔÄñ–[[Å?}R'Pmí6f æPZ“””¼rå ö˜Á`~þ\šZ’˜XPðùs“‰B×#ˆÈF{{g^^UN+;¬,+k Ó™RRâd²™¬in®…M:41QÖÔSÚÛ;ÃÓ.]z“‘Qfi©³zõOO îæ=¾¾ÔÔäOœXÈÆ[Z¨7n|8sæEM ÅÝÝjëÖ)ööúßKssGJJqBB~jjiBBASS›¸8ÉÒRÇÉÉØÎNÏÅe˜¾¾ Çw w/ò¯²²†ììʬ¬òÌÌòœœÊ/_ª;;éââ$##52YËÔTû×ÔT*×ô_IIý… ¯nßNhkëœ6ÍnùrWggÞìš«ù"¦³“ùÏ_Eçç×89¯_ïîáaÍ¥}uëzÌË«BÑÿt=nÀío@¾È/ZZ¨99™™åÙÙYY™™åJ;‰D42R³¶Ö±´Ô13Ó$“µ„xX™«PÏ z“©¤$ãç7ÎÇg´¦æ ç;òE “‰ÆÄdž8•’Rlk«çïï6gÎHn/œÓµëñÇ| ¥½k×ãèѦzzÊ\ ÷@¾ˆööδ´ÒÜܪœœÊÔÔ’ÜÜ*ì†eCCU2YËÎNLÖ"“µ† ÓøûQðÕÖÖyíÚûK—Þ|ùRmm­»råx =÷Šgù"KBBþ™3/¢£3,,´×¬™8kÖÞ|Ùè«ëÑÙÙK¡ë ä‹•|úTòéSqzz•J—’·¶Ö±³Ó·²Ò±¶Ö57ׂ©‡‡¢èóç™AA¯ß¼ÉÓÐPX¾ÜuÞ•¤¤76¶‰‹“¬¬tììôííõíìôÍ͵ø'_byyU¯"#ÿéì¤Ï›çäã3ß¡ç^ñC¾ˆinî¸y3áÌ™˜úúVOO‡õëÝÉd-¼ƒBètæ—/ÿëzÌÍ­Dº€@¾80(ŠæåU}üX˜˜Xðñcá—/ÕbbD m{{;;={{}KK¸¤ñLסgMMÅeËÆÍŸï¬®ŽÿÐs¯ø'_Ä`ÅwNžŒ.,¬4ÉjãÆIŽŽFxõ?ÕÕÍŸ>ýÛõ˜˜XÐÑAƒ®GÀ ä‹_×ØØ†Ýæ™Ÿ‘QÖÖÖ©ª*7fŒ©““±³³±••.ÜÂÌ{MMmaaï®^}_XXëêJöñÍWCϽâ·|ƒß9~üYjj V²qÒ$+»ÅwŠ}×£³³±· €(ƒ|±(ŠææVa§ÄÄ‚¢¢:`f¦‰U!vv614TÅ;FÑ•“Syñâ눈d:9wîHþzîæ‹,¬â;Ø‚7^^Ž|ûE¨ªŠ’šZÒµëQVVÒÊJÇÙÙÄÙÙØÑÑHEV¸N‚|ñÊËãârß¼ÉKH((.®#±ñß ÈñÄ`0?N {Ÿ§££´téØ F V>Ï1©©%AA¯ïÞMÒÓSñ÷wóñ-%%ŽwPìtízľÝ!bh¨êädŒ\C×# ¨ç‹moÞäÅÇçÅÅåæç×HKKŒebk«7r¤‘³³±¢¢ Þ¤±±íêÕÿ =ûû»}ó%‰Ä§]_lD¾ˆÉήxù‚‚ôÒ¥cýýÝå³PUÕ„­mŸšZB¥Òåä$--ÿíz9Ò—*B èD1_ljj{ý:7..7..·¨¨NBBlÔ(77²«+ÙÚZWa••Uwï^2“‰Î™ã¸xñX]¼ƒ<Ê1¥¥ çÏÇ^¿þžH$,X0jݺo´´© ÎÌÌü·Ä6h€@×# Ѝä‹T*=!!K32ʘLÔÖVÏÕ•ìæF9ÒŠfó:ùäIjPÐëÄÄ==å•+'̟鸞 w\C%pù"¦¾¾5$$.88¾¥¥ÃÓÓaãFSS ¼ƒ ö]NNÆJJ‚ч ¼'äùbiiCLLæ‹YïÞ}ni¡ªªÊgææFvu5‡•÷øPCCkpp\XØûêjʸqfþþnîîVBÓ$ ù"[†ûüùØŠŠFww«Í›';8àÔàÑhŒ¬¬r¬ëñÇü’’zº oB˜/2Ì Ÿ?ÏŒ‰ÉÌή'5lâD 77²••¿ ˜¬¬ò³g_Þ¿Ÿ"&F\¸ÐeÉ’±ډņ@ç‹‘ð"'§+¾ãáawPеëñÓ§’ÎNº¼¼ÔðáÎÎÿ¦‚2}¸DxòÅ–ê‹™Ož¤ÅÆæ45µihÈó•»»åøñrr’xGzG§3ïÝKºx1.5µD__eÅŠñóç;+(HáWA¾ˆÁʤŸ:óñcµµîÊ•ãgÏvš‰¿]»ß¿ÿRZÚ@"‡ Ó°³Óê%Éšðµ j>_ljj{ö,ãñãÔW¯² ¦££Ñ¸qäI“¬ììôào:?ÃfÅ……½«®nž4ÉÊßßmìX3áš|‘+Ùøüy¦¡¡ê²e®¾¾c$%ÅðŠÃªªš °ôº"KPóźº–'OÒ=úôöíg0~¼ùôévS¦ØÀŒuþ—”TtáBì³géØÐ³Ÿß8u¼ƒâáË1YYgϾˆˆHVV–]¼xÌŠã…àæ¤^µ·w¦¥•¦¦–&&¼{÷¹¶¶º"BÀòÅææŽ§OÓ""’ãârÅÅžùÆrÆ ;ww+yyáÁ&ØÔ7lèÙÔTcåÊ žž"uà„5_Ä””Ô_¸ðêÚµ÷bbÄùóׯw×ÔTÀ;(îêÚõ˜’RL£1¤ìíÿíz5ÊDXóf€Œ|±¹¹#2òŸÛ·““‹dd$¦L±™9søøñæÂ6ø%”*+›.^Œ»};¡¦¦ED†ž{%Üù"›fpñb\[[çwß ß²e²±±Ht·µu¦§ÿÛõøöíçº:èz¾ÎQML,¸y3ñáÃ*•>q¢Åwß9xxXÃý+‚âãÇ‚ÀÀ×OŸ¦IKKøúŽY´h”ˆd½…|ÓÚJ½~ýùs/++›ÜÝ­¶nbo/k|s ›®Ggg¨ù 8|š/–—7Þº•pûöÇÂÂZ''ã œfÌ.¬·Í *•~ûvbXØ»ÔÔ2YËßßmÖ¬å‹N¾ˆÁf œ9ó"7W¨Šï Tk+5#£¬g×#V$ÜÎNºü¿òEñøqêµkïß¼ÉÓÒRœ?ßyÞ¼‘¢Ü#%p**ƒƒãoÝJ¨¯o>ÝÎÇgô¸qfp-ĈZ¾ˆa2ј˜Ì¿ÿ~ž”Thg§¿nÝ7ß~k/ʧ«ë11± =½”ÉD54äíí X#×RRâxÇÝñK¾X\\öîÆMMíÓ§Û-Zä"šSÜW\\nXØ»§OÓde%½½G{{»©áÍ|‘…U|ÇÜ\kÍš‰³f'áΰ®ÇÄÄ‚„„‚¤¤ÂúúV11¢‰ÉÿºÍ͵ðŽ÷|‘Á`ÆÄd^¾ü666[CCÁ×wŒ·÷h yCÒÑA»sçã•+oÓÒJ-,´—-sõò!++êCϽñ|ƒ-䑬¥¥¸råoo˜ÉÇRTT—\C×#€¯à–/¶·wÞ¸ñáüùWÅÅucƘ.]:nêT[11!Y"B”•5„†¾¹yóCccÛ´ivË—»:;›à_ƒ|‘¥¸¸.0ðõÕ«ïdd$üüÆ-[檬,‹wPü¥¥…š™ùo×ãÇ… ÐõÀùb]]KHH|HH<•JûþûQË—»Â EÁ—ôúÅ‹,éE‹\||Fªâ”€|±›ºº–ÐÐø  8:ñý÷£Ö¬™¨££„wP|ªg×£¦¦‚>Öõèìl"|+ëø OóÅ’’ú3gbnÝJ”““ôós]ºt,t*ööÎðð¤Ë—ߤ§—YZê¬^=á»ïà*Õ/ö +¾söìËÚÚfOO‡õëÝÉdè9c§k×cbbAcc›˜ÑÊJ×ÉÉØÎNoÔ(øþà0å‹ee ÿýüÆZZŠëֹϟïqHiiÃùó±·o'¶µQaèyÐ _d+¾sêÔóüüww«'9:á”`Àº±ôñóç*V×#6rmoo_êCÇõ|±  æÈ‘Ç}22RÛ±cúŒöp׳ @Q4>>/(èuLL¦’’ŒŸß8ŸÑššŠxÇ%¨ _ü*¬øÎ_E''a%'M²åâ;ÕÜÜ‘’RŒ\'$45µ‰‹“,-u°®G—aúú*xÇH\ÌÛÛ;Ï‹ýûïh¹ &y{»@ù AÑÖÖyíÚûK—Þ|ùRme¥³jÕOOX}qˆ _ì?Vñ íÕ«'xy9ÂÍpÅ`0?®NM-ÁºóòªPô?]ÇÀ‡ÐO\ÉQ½{7éðáGÍÍ›7O^¾Üþ* ìÆÕÛ·ÚÛižžþþnvv¢µ’÷@¾8P™™åçνŒˆHÖÑQö÷wóñ óX}×ãèѦzzÊxÇà_œÏ öí‹øô©dÁ‚Q;wNWW‡bŠEÑçÏ3ƒ‚^¿y“§¬,»téXŸ1šš xÇ%ØBCß„…½e2ÿýˆÕÕµ‰Deeì‰D↠ø(ŠŠê‚‚^_½úNNNrÉ’±þþnŠŠ2x%Ø ë0PœÌÛÛ;y|ñâkGG£¼ _J `w§††Æçç×8:­\9~ʸTpħO%Ó¦ýÙ×O BBÂ]]èÔé—ÚÚ–K—⃂â Æ‚£Ö­ûFK ¦Òr…ÒñéÓ¿]>äS(í¬®Gggc—aðµÀ±|ñÍ›ÏÛ¶Ýhk묠ÈË« |ùOG =s˸q¿Ôôü‰„‘#""6â”ki¡Þ¸ñ! àE]]‹§§Ã¦MÆià”Pé«ë[`ÆÎNÏÁÁf¢ ‚8/R(í>¸zõýœ9Ž¿þ: J*â++«ÜÒR‡Í]‡ž55—-7ož3¬ÁÈ%'ND<E£1º=O"žëã3—¨V|ç￟Ô¸»[mÞ<ÙÁÁ ¯ÃÃ?:8š˜À¢ƒQSÓœ’RœšZ‚-3ÓÞÞ)##am­‹\mª¦&‡wŒ^j¾˜’R¼re(ƒþþû|wwKN…EÑýûïß¹ó19y_¯MMmaaï®^}_XXëädìïï6uª-tpUaaíØ±¿õü”‘HÄôô0o(°â;'OFýóO1V|ÇÃúÛ64ÃÉéWƒy÷î33M\ât:óË—êÄÄläº)ƒÏQ xqôèãÉ“mNœX(//ÅÙÈÀ€ÐéÌ-[®Ý»—Œ È_-š3gdןææV½ŽˆH¦Ó™sçŽôñ CÏ<3yò±ŒŒò®4‰8~¼yXØJ£&Xñèè Ý+ÆÏžíH"ý[|çæÍ„­[oˆ‚‚ôÝ»ë-,´ñ U˜TW7úôo×cbbAG­k×ã˜1¦ªªƒïz¤Ó™mmTi ŠAæ‹­­Ô;nGD$oÚä±uëÖ_g€‹ææŽ%K‚>~, Ó™LÖ|ùr‚ óñãÔ°°wññyÚÚŠ~~ã,ãG<øjÿþû “õ ‘H8}ÚgÖ¬8F%|ÒÓË.\ˆ½w/Y__eÙ2W_ß1bbD—ƒåå(Š’HDIIñ[·ÖŒaˆw¤B¨[×cnn%‚ CézLK+]¼8ð·ßæN›f˵¨0˜|±ªŠâí}¾¢¢éÔ)ïo¾1hœÕÕµ,Xp67·ŠNÿß$¹ë×W¥§—aCÏ®®dŸÑ0ôŒ—ª*Š£ã>VUA¤¤Ä32JKKà•°ÊÌ,?s&æÁƒ]]å±cÍ®_ÿÀúG"$%ÅoÞ\+ r[Ï®GYYI++ggggcGG#•¯Ls }³k×%L˜`ñÇ󠌸p¾˜™Yîí}^EEîÚµ•°4î kçÍ ¨ª¢tMÅÅI ÕÕ”iÓl—-ƒµžñ7{ö™„„|&“‰ ˆ¸8iút»³gã”0+.®;wîåÝ»I--دC$Åʼnaa«ÆŽ5Å1<‘Òk×£¡¡ª““16rmc£×s‘صk/?xÂ` bb$A7mòذaÔùGËSRŠ}}õô”¯\Y Ú¸ËÊ*Ÿ?? ©©£k²ˆ!‘ˆo±µÕÃ%0ÐÍõëïüñ66$M ¡¡þ=ïÌœŸ»`Á¹ž߈D‚˜éÊ•®®d\qUU”ÔÔ¬ë1!!ŸJ¥wíz9Ò«°1bį••¬W‘HDmm¥ãÇÀQ/Èsr*gÍ:eo¯ñ¢Ÿ¬¬$WÃ_•˜X°hÑùŽZ׉q,ââÄ=~øa*ï=Q(í66{°´^^^*=ý Ì à¶¹s>|øÒ맃H$HÄË—WŒoÎûÀKk+5%¥äãÇ‚ää¢ ZÅĈ––:ÖÖz7n¼ï¶1‘H@QÄËkį¿ÎÊ4€Áéo¾XRRÿÝw‘ÉZaa+áR‡»çÏ3ýýCètf×±¶n”•eRRöÃÁ⋾|™M$çÏwúãùx‡#äRSK¦NíseA‘H ò›2ņgQö¾|©NJ*JJ*|÷îË—/Õ½^›ÄĈ’’â{÷zz{»ÀªðR¿îk®­mY°à¬ºº|Pä¸{ð ÅÏï"Æ`“,"ÒÐÐöäIÏ¢ìyy9¢(J§3<=‡ã‹ð;w.AlþX¡(Š¢èÊ•¡/_fó0.Àΰaóç;=:oòd뾎ÎlmíܱãöÌ™aS!¼ñõþE&õö>Ÿ—WõàÁ&mm¥^·ÉÉÉyõêÂÝ%&6<~\…¢(€‰‚AQ¤ëí·‚ AR’`a!ïåÅn­.!“É&LôËétzpp0çÂá 4ó÷ßs%$HÛ¶™ Y·ˆ˜˜Ø²eˆÒB}}}GG§âAQôñãÌòò¦ÚÚ–ššÖššæªªæ¦¦vƒu£4‘D"‰*•F$›åê:ŒS{***RRƒ/¸ÛÖÖÖØØÈfƒeË®¦¦V »k€ˆ‰‘V­ëãã$&ݘŒŒŒ’Rï©à+_Ï^üþû“‡7ÛØèöµMHHÈ/ ?deddì„Î`´3™í(ÚÁdRQ”Êdb:˜L*“Ù¢T&“ŠcœK—. ôË[[[åä„p~’’Òt&³•B¶oV²²²---Ci!--­®®ŽSñô EѦ¦rç)° IDATΦ¦ŽúúÖ¿uu í­­ôÅ‹mFŒÐâjÂÄÖÖVUUuÐ/¯¬¬ÌÎî³[—Á@—-{H£õ2xB"ƒb—- ¨(ao¯éëk###>èx¾´´´,,,ðŽ|ÝWÊ$&9òhï^O6É"fè× f̘Á‘v>|È©¦øDLL–ººœ­¬²aÆ¡·× À`0âââ†Þ‰DruuíõGii¥4“D"²îU'ii)ê뫨êê*ëë«èê*ëê*éê*Ãü(A—–“¦»|‘NgnÛvsôhS?¿Þ?Ø€þ?ÞÎ`J¥ùû»éé©`¡®®²ºº<ÞAØæ‹!!qÅÅuW®¬èYL0P,ðU#GiŒw€îú¼€54´þùgÔòånƒŸ§]Ÿùbpp<€¬_ïÎËh¿é=_¤Ré¡¡ñ~~ã””dxà+½ç‹ÉJûâÅcy à7½ç‹aaï¦M³ÓÔTàq4˜ÏŸ?c =õ|ÀFqq±ŸŸßPöËj@ |þüy(M±ÑŸ÷ÒûPõññéÍB®¾A~3”Óipk xpâÁ‡#.¬àzÑ\/7ô’/–—7&'Í›çÄûh0JJJ;vìè«"""fÍšÕÿíóóóÕÔÔ†ÒÂàö5¸wÇ^yyùÕ«W3339Û¬pÊéÄzmϳ…ƒzžx\ÝЃ#.Ràz1Pp½ƒÓK¾øìYšœœ¤««ï£Á¨©©9rd ¯ŠŠŠštpp‘‘ÑÖÖf}jkkeee¥¥¥ûÚàÁƒvvvRRR&&&W®\AÄÅÅA--­ž-ôª±±qéÒ¥jjjzzzÛ¶mëèè Óé{÷î500PWW_¼x1kEÔžtÝW×w׳MAÂÕ«W---UTT~ÿý÷ž‘ôÜ Û{éµÙn¢¢¢LMM•••>ÌŠ*22ÒÜÜ\CCcãÆT*µ×'ûúýðoN'Ök»ý†i4ÚöíÛ555544¶oßN£Ñ!ÁÁÁ–––êêêG޹r励±±¢¢âž={°Wõ< ‘>N<Žì®8â8âqÄáz× ÀwÐÿ¢Ó¦¦;._~ƒDpp°¬¬ìW7[¼xñ’%K*++555?|ø€¢èùóç544îÞ½[^^þèÑ#===Aòòò°Àz> P(Ë–-+-- C¤ºº àÊ•+}mÐÒÒ"))yîÜ¹ŠŠŠ‹/Љ‰µ´´°Úd½¬leÒ¼¼¼nÁ{{{»»»ùò%55ÕÆÆfß¾}üñ‡µµujjjZZÚ¨Q£¶mÛÖW]÷ÕõqÏ6±½Ï;·¡¡!00Aºººn!õÜ Û{éµÙ®ùöÛo)Jxx8‚ µµµX “'OÎÍÍ}ÿþ½©©é¾}ûz}ò«GyúôéK—.ýêfl` K>|øýf<8z¾sôèÑ9s槦¦Ž1bçÎ(Š"²páB …„ Èüùó)Êùóç±ßp¯'!Úlj7ôÝuû]qïˆ÷ó³Ï^jjjVVÖW7ƒ#Žû§Óé/_¾ì¹»©¨¨xýúõW7ƒë*׋~~ö?èž/¦¥•jkoÎÌ,P+ý¼f444èééÙÙÙ±N#kkëÐÐPÖ—.]bÿù§R©YYY--- ãÕ«W¬OÅœ9sêëëûÚ ¾¾^\\üرc L&³¹¹™Á`tṵ̂Z@{ûüwvv’H¤ôôtìïÞ½kjjjnn~÷î]ì™ÌÌLìq¯ôúùïµMlï/_¾Ä6`EÒíóßmƒ®í÷ÕlW‚ÄÆÆ¢(Ê`0º¶ššŠmpóæMSSÓ^ŸüêQæY¾ÈƒÓ©¯ìÁ¢¢¢{=|øpEINNFÿÿ¸t}Ü×Iˆöqâ }wÝ~WÜ;â¼Ìáˆã~Äy™/Âõë䋤ûxtRR¡¬¬$™¬…p’’ÒÊ•+322Ö¬Yƒ=“ŸŸ?|øpÖvvvì[ÈÍÍ:uª££chh(ödKK FSVVîkeeå—/_¾ÿ^OOoüøñqqqDâÞx×zUUUÅ`0† †ý¯©©iiiiQQ‘™Ù¿³<---½¼¼ú  ÿmbuttïëµl6`ÓlϺýXoÇ‚õª^Ÿä<8úRXX¨­­M ‚‡‡GAAö¼¼¼<òÿÇ¥ëc¤“°?ûÜîz‚#ŽÀ¨#׋¯¶‰=†ëàîùbnn¥¥¥‰Ä•…nKJJNŸ>=iÒ¤~ø{FWW÷Ó§O¬ 222Ø·ÐÞÞ>þüíÛ·'''`O>}útêÔ©l6hoog2™·oß®¯¯_¾|ùÌ™3ëëë»6Ûµ…^ijj’H¤üü|ì¿|ù¢«««££SXXˆ=“’’rèС¾è›ØãnËžØlÀ¦Ù®zñƒ}AD$77ûÑדü€§S_ÔÔÔX_ßÞ¿ÿÕh{= û³¯Áí®'8âq:âp½øj›Øc¸^Þè~×s¥¬“É\¶lÙ† ®_¿þüùó ²lÙ²íÛ·GFFVVV>}útçÎì¡R©ííí{÷îE¤¹¹922ÒÓÓ“ÍaòäÉááá ¥³³S\\\Fæßuk°¡Ï®-`jjj*»_°`ÁÆ ÒÓÓwïÞííííëë»k×®ôôôôôôõë×õ@×}±ôÚæPË}7ÔÔÔÄþµ›6múüùsbbâÏ?ÿìããÃæIÜñætê†ugÏžýÓO?¥¦¦N:õÌ™3_ ¸×“;†¸;Žxoàˆ Ê‡ë\/ßé6>=~ü‘?þx2ÐQíþÌa:uꔽ½}gg'Š¢÷îÝÓÖÖ®¯¯ïììÜ¿¿±±±œœÜèÑ£¯]»†°‚¢èŸþ©¢¢¢¯¯°páBeeåéÓ§wÝQ· 444P½yóæ°aÃ$$$,,,"##Q¥ÑhãÆ“““ëìììÖB¯¿¥úúz___UUUmmí-[¶´··wttlÛ¶MGGGQQqáÂ… }ÀÚW·÷Ò³M´ÇÔ“^ç£t{ÜmnMÿ›íÖBPP¡¡¡ššÚ† ÚÛÛ{}ò«'oæ/òætbmÙõ¢(J¡Püüü”••UUUW®\ÙÚÚŠ~í7Œö8 {=ñ°-9²;ÞqžÍ_„#ÎGœgóáz!"× ˜¿(@ºç‹¦¦;®_?ÐV8rÍ@{Lú<Óëo~p‡ƒg÷»|œNlpêˆóò~—¯‚#ÎGŽ8/ïwù*8ÜxáàõòEòŸñhÑÚJUV–íù… ˆ¦ÿä‹íí‚ÈÈHà À‚‚ªU«úó$pÄE qÀ)p.‰¦ÿä‹mm8独‚R€Ç444Î;ן'œNlÀ5ÂwÄápãEøÎ%ÐÿÉ;:h‚p|%@ ¸þ“/b™bg'§`ßùO¾())† • ù"ø×òEqqè_ÿñŸ|QVV‚D"R(íxE8D¢RPÐëøøÜºº–¯o @ýçÖ‰¨ª*[]Ý<ˆ†ètú… 8`ÅÅÅCoçéÓ§eeeCoG0(ƒJHpeÙwöÞ¾}K")½.)©GQT]]ÞÂBÛÒRÛÒRÇÂBÛÜ\KJJ¼?í´µµ•——s;Z0DœºEQ8ÜAŽŽqñ~ý‰¸ë~+´šš|MÍ`òE*•*µ—$$ô¥¥Í›šžs¶Yqq iis %޳Íò§‘#G½‘Ó§O½‘!#ÈÊ—‘±¯«»Éd©ß@ HCl¤/22vòòcZ[SÚÚR˜Ìnì‚ YYÙ÷ïw·´Psr*²²*²²*ÒÓËnÝJlll#‘ˆªVV:ÚZ––:††ª$R/y-…B¡P(<Žà…Édæææâà òòòx‡ú…Ðíûâ¢Eç55NœXˆW@øºvíýO?Ý™6ÍîÔ)oqq[NJ*œ5ëÔñãßÏŸïÄÁf÷df–ïÚþñc¡··ËÏ?«  =”Öþþûùõëïß½ÛÍ©ðºjm¥^¿þ! àE]]‹§§ÃæÍ“MLÔ¹±£©¬lÊήÈÌ,ÏÉ©ÌήÈÍ­¤RéRRâd²–¥¥6™¬ee¥ca¡¥©©ˆw¤¾¢{¾¸kWxzzYdäF¼Â ÆØµ+üÚµ÷ûöÍò÷wãÆ.vï¾{çNblìN--¸@òµššæ'o~ðàlŽä^»vÝÍÈ(‹ˆØ0ô¦úB£1""’ÿú+º°°ÖÝÝjëÖ)ööúÜÛÝ TU5åæVåäT¦¦–äæVåæVvtÐÄÅIÆÆêvvzææZd²–¾¦¦Þ‘øîùâÅ‹¯OžŒNK;€W@¸è줯ZuéÅ‹¬£Gç}ÿý(.í¥½½ÓÝý33ÍK—ü¹´ 0D4ãÂ…ØS§b¥œíáaÍ©–W¬%‘çÎ-áTƒ}a2ј˜Ì?ÿ|öéS‰““ñöíSÇ#s{§ƒC§3ËÊrsÿMsr*?®b2QEE2YóÿÓG=kk]YYI¼ƒ‘Ö}þ¢‰‰F]]Kcc›’’ .ñ…Ò±lÙÅì슫WWgƽIKKüñÇ‚ùóîßOùî»áÜÛœØØì={î•–Ö¯_ï¾ví7ÒÒœ\³²²iÄC6Ø"‘àáaíáaüø³ùóÏ:9¯_ï>i’@àAý'&F44T54Teåå--ÔüüꜜJ¬÷1**»ýNSSÁÎNŸLÖÂòH mX† x©{ÿbqq‹ËÁû÷7ŽiŒWL¼TZÚàí}žNg^¿¾ÊÀ@•{ܶíæÓ§i±±;ÕÔäx°;Ð¥¥ »v…GGgÌœ9ü§Ÿf©q|ÎÎû—.·ví7o™½„„ü3g^<žia¡µzõD//G11n£´¦¦¶œœÊÔÔÒÜÜÊœœÊŒŒ²¶¶NlÛÜ\‹LÖ$“µ°<’ß²a&ÝóEAlm÷lÚäÁ¥9||%#£ÌÇ為ºüÕ««ÔÕyt‹VssÇĉG]\†>íÛ=6¨TúéÓÏ^êé)<8ÛÕ•+C·(Šm?~üû¹s9pçø deUœ=û"""Y[[iÅŠñ>>£ûYæ†UU5±ÒÇÔÔÒ/_ª ¦¼¼”±±:™¬ig§on®ei©ßÇ€ƒzÉ-:¯¦&÷÷ßÞ¸Ä3IIE‹¦qù²?ßcb²|}//›:Õ–—ûÝDGgìÝQ[ÛüãÓ—,ËÙ;⻪«k±µÝsëÖ|§–”Ô_¸ðêêÕwrr’K–Œ]±büoúæ4#?¿&7·27÷ßnÈââzýw$–>’Éš¶¶zœ`"¥—|ñèÑǧ¾zµ—€xãýû/‹::/Ãå*²aÃÕøøÜØØŠŠ¢2O”¯äåUíÞ}7>>oÎÇ]»¾åvI—¬¬ w÷ßccwÉZ\ÝQÔÖ¶\ºÇ`0,µ~ý7BVцBiÏήÀn ÉÍ­ÌÈ(«¯o%‘ˆzzʬÁk;;}SS^+Aè©—|ñÙ³ôå˃ÓÓ ë-/Ïž¥¯ZuÉÓÓáÏ?¿Çë‚ÑÐÐ:aÂÑI“¬_€K"«¥…zôèã˗ߘšj<8gôèa<ØiTTºŸ_p^Þ~éâji¡Þ¸ñáÌ™ ­ß}7|Ë–ÉÆÆø—lä’nu|rr*¨Tz·:>d²–¡!/f0€ ê%_¤P:¬­w;·xÆ {\bâªG>­]{eÞ<§£GçáÛ»ðàAÊêÕ—¯^]9a‚ŽaˆEïÜùøÛoÚÛ©Û¶M[ºtÏîü¸páU@@LJÊ~Þì®ÿ:;é‘‘ÿœ<]TT;c†ýÖ­SÌÍñïå¶~Öñ±²Ò•“ƒ:>€ ½æ‹‚L›ö爆‡Íá}@\õøqêš5—,p>rd‘ˆÿÝ”+V„~úTüâŸ,q[VVùîÝw?|È÷ósݺu²²²,/÷¾kWxFF9W‹uV²ñøñgii¥“&YmØà."åXš›; jXu|RRбeQ55°®G¬ÒÜ\[RêøDQïùâþý‘¯^åÄÄüÈû€¸'::Ãß?Ä×wÌ^|Rz£®®e„£ß}çpèÐl¼cZ ­‡?ºqヽ½þ¡CsììpXòdÑ¢óò'O.âý®ûEÑçÏ3OŠùø±€oK6òL?ëø˜™iòÃ7Oà¶ÞóÅØØloï ÉÉ{…f"<–,úû»íÙóÞ±üÇ;7o¾vçÎ:^L¤) 3$$þÏ?Ÿ‰‰÷ìùnîÜ‘xe?cÆš7Ïi˖ɸì} º”lÔ^½z‚À•lä’þÔñ±°ÐæYe.à¥ÞóEak»gçÎK—Žå}L÷âE–ŸßÅï¿uäÈ\>ì/ñ󻘗WõüùvÁ-‰Ç‡’’ ±%›—.·}ûT ÇÐhŒaÃ~üë/o/¯xÅ0YYågϾŒˆHÖÑQö÷wè’Ü€Õña-„›[YTT‡ H·:>66züs“ Zïù"‚ «V]jnî¸vm⸤¤¢… ÏN˜`qöìbþ,ŸQUÕ4~üQŸÑ»wÏÄ;aPSÓ|àÀýðð$ggãC‡æXYéàOQQÝèÑ=Úâà`€o$ƒP\\øúêÕwòòR‹Ž’\ÒµŽOjjIVVyK ùïb†PÇ  úÌoÝJܱãVzúAYY¾#+«ÂË딋˰ÀÀ¥Ü«ÆÿB¢èÂ…ç+*£¢¶Á ˜ƒóêUΞ=w‹‹ë7lp_³æþ¼råí¡C²³ãÈP57wܼ™pæLLCCÛüùN›6yèê*ã” éºM×:> ÒææZXss-kk]AýjV}æ‹‚x{Ÿ#]ºäÏË€8¥¦¦ÙÓóo55ù[·Öļ«’’úo¾ù}Õª Û¶MÅ;SZÚ°kWxtt†»»åþý^üVwzÏž{))ElÆ;Îèì¤ßº•ø×_ÑÕÕOO‡õëÝùaÑŪãƒÝI“]Ñk2YK þˆ„»|ñÖ­ÄíÛo¦¤ü*pãh­­Ô¹sÏ´´Pïßß(@Á½Þ¿?òÑ£-¶¶zxÇ"¨TúéÓÏ^ª«Ë8àÅ'ÐÝÌž}šLÖsæE^^Õ¤IV7z8:â”0èVÇ'=½¬½½SLŒ¨««Œ¥PÇ€ vù"…Òng÷ËÑ£ó,pæeLCÄ`0—/IJ*¼#¿u5±Çd¢³gŸniéxòd+?϶äÑÑ{÷FÔÔ4oÞì±|¹vÀ (ji¹ë§Ÿf,Y" ¥ºÁJ6þý÷ó¤¤B(ÙÈ ³´´ÂîZÇGNNÒÄDƒµ½½†Ôñp»|AÕ«/WV6ñíº½Ú·/âÒ¥7wî¬Ä/_ª=<ŽmÙ2yÆIxÇ¿>®Þµ+<..wîÜ‘?ý4C[[ ïˆúTZÚàì¼?2r£““0ßÉÄ*Ùhi©½jÕ„Ù³ù|ưà‚:>\|%_üð!ßËëTTÔ6]žÅ4¡¡oví ¿pa‰à.~}úṯcOŸ=ûAVò¨–êÑ£/_~cb¢~àÀìqãÌðŽè+¢¢Òýü‚sr‹Â’™™åçν¼w/YOOyùr7_ß1pó`CØìëø`µÄ%$àpé+ù"‚ '=zØo¿ÍåM@CŸ»hÑù=ú–:9sæI‰¹:iXP½sçãáÃZ[©Û·O[²d¬@ ÙŸ<uóf»w»ñ„wŠŠê‚‚^‡…½UP^¼xÌŠ¤ðJ´@Ç}=_ zýûï““åó’‚‚šéÓON˜`à+賲ʧNýs÷î™+VŒÇ;¾•U±{wøû÷ùsæ8îÚ5S€Šÿ­\J§3ƒƒ—á¯ÕÔ4_¾ü&0ðŠ"‹]»v¢Ýy&dzÖñÉË«BQTAAÊÈè‹ZY騪Êá,€O}=_¤PÚö8àµh‘ ob„ÎNú·ßžd0˜‘‘›ø<¯í§ãÇŸ¼Œ‰Ùnd¤†w,x¢P:þøãÉ¥Kñd²ÖÁƒ³n•í±cóò!ÐÞCÑÜÜqùò›€€—T*máB—5k&êèðïdSÑÑ­ŽOVVymm Ò¥Ž«’?o#ðÞ×óEA6o¾–“SùäÉV48{öÜ»yóóg?Ö ÑlÐhŒ©S++ËÞ¾½VлK‡ÉDƒƒãNœˆ"½{=çÌ)pDZ[©ææ??/À³i9¢­­óÚµ÷çν¬©iöôtذa’™™&ÞAÿ€:>öú•/&%Μù×Ó§[íìôyÓ@ED$¯]{%0p©]•ÓÓËfÌ8qðàl_ß1xÇÂkII…»vÝÍÈ([ºtÜ?LQR’Á;¢ÁøçŸâ3NÄÇÿlb"$_c†+ÙxútÌ—/ÕîîV›6yŒ!x DÎ,+륎6 ’UEÜÎN_€&‡†¢_ù"‚ &ut4:~|·¨¢¢º)SŽÍš5BÈê!c|påÊÛ/~…×jk[öï Ort4:th¶@—.Ž;vìiFÆAÑì!ÆÄdþõWtrrV²‘?«¬ƒnØ×ñùÿôQÏÚZWVVfºéo¾xãÆ‡;nÇÇÿ¬¯¯Âí˜úFc|÷Ý_ óÁƒÍBY¹£³“>yòq==å°°•xÇÂut:344þر§’’b»wÏœ;w¤ §Yk×^¡PÚEáØ V²1::ÃÆFwÅŠñP²Qàt«ã“™YÞÚ u|ZýÍi4Ƙ1‡&O¶9th6·cê¿£GŸ?ûøñ m¼cá–¤¤BOÏ¿OœX8ožÞ±pÑë×9»wß-*ª[¹r† î ÒxGÄ£FøþûQ[¶LÆ;þ•‘Qvþ|ì½{Éúú*Ë–¹.^<r ÁÕ­ŽOvvEgçêø`“ ÉdMAÿ*€êo¾ˆ H`à«ß~{øáÃ/|²ðTFFÙ´iþú«—Ÿß8¼cá®Ý»ïÞ¹ó16v‡––"Þ±p^YYÃÏ?‡GGgŒo~ðàìaÃ4ðŽˆ3ªª({oÞ\ãêJÆ;~WXX{ñbÜ•+oÕÕåW­šàíí"- k“¼~Öñ±´ÔQSƒ:>ð»ä‹ííÎμ½]vîœÁÕ˜úƒFcLú§ªªÜÍ›«…þ«j{{§»ûffš—.ùã 'uvÒOzðRUUöС9B6íÙ³ôå˃33ƒjÕýT]Ýø*$$NJJÜÏoÜòånzŸè …ÒQXØKŸn‹ÚÚêÁøÍòEAþüóÙù󱉉¿à>\xêÔó'¢bb¶ MöÞ¼ù<~ÀÙ³‹¿ûn8Þ±pÆó癿ür¯¢¢qýz÷µk¿¾ËÃþý‘¯_ç>¾ï@L}}kHHÜÅ‹q4ãûïG­];‘Ÿ×CÄÂ6xmg§ojªÓ[À×ÀòŦ¦6'§ý›6y¬[çν˜¾*/¯ÊÃãØ?LÙ°aŽaðضm7Ÿ>M‹ÝÙuì†Fc "+ã±Õýò˽èè ë_%¬É'O>6z´é¯¿ÎÂ;ÔÚJ½~ýÃÙ³/kk›==6nô05’‰ € VŸÿ_ɰòóç*&íVLJLÖ24TÅ;XDËÀòEAöî¸?åÇÝ8NK_°àlu5%*j›`åICÔÜÜ1qâQ—a§Oû`Ϥ¦–lÞ|íàÁ9cƘâ[?µ¶Ry|ùòCCÕC‡æñľ††V[Û=AA~S§Úâ‹ÃJ6ž:õVVºÂ±²|kÀùbeeÓ˜1‡öì™éççÊ¥˜Ø‹ŽÎX²$("bƒ³³ .à(&&Ë×÷Bpð²‰-ð‚ÉDøaê?LÁ;´¯»};ñðáGÍÍ;vL_²d¬pçúOŸ¦ùû‡¤§„xC‡•l<}ºµÛœt ¥ã?ž\ºojªyðàlA7ºI“þ;Ö &/rCZZi`à«{÷’ÍÌ4׬™8kÖ6}ÕÿüSlc£+ÜÙ ›®u|°<²¸¸EQyy)cãÿÕñ±°ÐVWç‹Úp„Áä‹‚\¸ðê÷ß¿y³‹—‹‡67wŒsÈËkÄþý^<Û)ÿˆŠJߺõfSSƒÁìö£ððõ£GÃ%*Abc³}|. (zøð¼Å‹ÿ]êšÉDƒƒãNœˆb0Û¶M[ºtœ˜˜¨ÜÞXVÖàä´ÿÆÕnnæxÇ"´rr*Ïœ‰‰ŒüGSSaåÊÞK62™¨›Û##ÕààeP\”u«ã“™Y^W×K=a+Ô§ 2_¤Ñnn‡'L°8|x.ÇcêˉQçν|óf—¨wmk니df–ûíI*•Ž¢¨ŒŒö")©h÷îð´´ÒE‹\¶m›Æ'ÞyæêÕwûöEfd„…ÛJKΟ½ví½ŒŒÄÒ¥cýýÝÿ7aôéÓ´eËBˆD‚««ihè ˜ÍXºÕñIK+íè !ÿ]ÌêøÐÕ óEAnßNܶíflìÞT@ìè 99í_²dì¶mSy°;¾B£1~ûíá… ¯zÍ dÔ¨awï®ç}`••MÇššÚèt&‚ bb¤™3íUTä.]Š6LãÀÙãÆ™ñ>*Ü-_L£1._^w ¢¢®®%44žU²qݺo°9²“&ý‘]Ád¢$qøpƒë×WÃ-´ Wìëø`½Xi` ÂÁ" fGMVNK Ÿ/2™è”)LJ Ó8wn1gcêUh蛃ïü¸Wdo8Ï[¹2¤¥…Š%g]‰‹“rsð¸û¤½½óÛoÿÊË«¢Ó¬' ‚ššüîÝߊì½4ÃÚz×Î3–-瀀ÈÂJ6¼¨«kñôt7޼yó5ÖOI$¢½½þk eýÑWiss-¬Ž¹¹–µµ®ŠŠì ÷’]1gÎé­[§,^,ä%#€|¾ˆüÑÈÈMŽŽ†Œ©'&uu=W^Þ¸|yHzziÏ)Œ÷îm5Šw†Põ÷‰ŽÎè–¼’HDSSçÏ·‹ì λw_æÌ9ÿ³‰‰H¬<ÄoÚÚ:¯^}wî\lcc[g'½ë'…D"ÚÙéݸ±F^VhÖÏ:>d²Vÿï>ŒˆH^·.Œ@@tu•ðš<Ù†›ï€!R¾ˆ Èüù55ÍÑÑÛ¹z7Ctt†ŸßÅׯ‚k0ÎfgW¦§—Õ!Hï'ª˜QZZbûvÑ*^ øòEAÂÃ?nÚtíÁƒÍCo­› ŽŽ3ì·ßxWèQ°„…½ûùçp:±sçŒ'qoGmmß~{2;»ARRb &“)%%nm­ëà``o¯ooo`b¢.š·EcÆŒ94}ºÝîÝ3ñDtÑhŒ¯Õ–—7ÔÕµ²îw!‘ˆ$‘ÉD» Rlmunß^§  W´@”aÃì·! úú*û÷{ÁðÀgòEEçÍ hm¥>z´…³éBaaí˜1‡úyóoZZZ]]÷.(²³ëNžL46Vܱƒ[w™ (ròdBbb…˜ÑÀ@ÁÌLÅØXÉÄDIGGN D[[[UUÎÌJL,ðôü;6v™¬Å‘‡‚Á`ÄÅÅáþšš¨uuíÔ††öººŽ††öê궦&j[ Acc¥Ÿ#+‹çrš€ãH$’«ë Z͘1ãñãÇœŠ§W226ŠŠß H¿ú;:¾47ÇÑé\ ÌÇg̘ÑíIÎTì#{÷zNŸ~âÞ½¤9sFr¤M̳gé**²#Gõs{%%%]]] ¬­‘‰Gîßÿ˜L¶àÒÆììª3vì˜al¬&ƒ#L&3++‹ƒ Þ¹óÑÆF—’EyyÑZ\§ÿh4Fuusuu³œœ”™™¨^&•••Cog„ k×®z;}¹{· >¾ªkÉ'"‘ &F¤Ó™L&Š %% ]]----i [uõïá‹ à6*•êëëÛë8VáÙÖVoÅ ·½{#&L°àà/±±Ùnnæý/æ'%%¥®.ŠúÕÕ‘+WV3L.å‹êêê®®BUŒÁèåæÙAëè EF&oÝÊ_‹)**rª÷T(éèðQr8…Á`p$_422š7‹oÜ8Íd¢D"ÉD ‚††‚••¶¥¥V ÜÌL³¼×ÚÚÚ×8¹"ÈÎ3bb²¶n½qé’?G¤Ó™‰‰ûöÍâHkBH$‰°B>¢¢2ÚÚ:gÏvÄ;€`00Pup043ÓIJCXð9Næ‹bGΛ3çÌÇŸ8rolffY[[§³³ñЛ€«îÞM;ÖLM+%¥Âçĉ…x‡Àpx"š‹Ë0_ßÑ;wÞ®«kzkŸ>•ÈËK™šj½)¸§²²éŋ̅ GáÀœ¿qa×®™RRâ¿þ9ô¦rr*Éd-¾ýˆ‚K—Þ¨©ÉOŸ.rõ&ˆÎç‹òòRGοsçã³géClêóçj33è\|­³“önÑ"á¸mè‰+W8wwËo¿µÿå—{ÍÍCi§¸¸Nè×Ð,..öóóûêfŸ?&]t}ù?ÿü#&&vûömÖó‘‘‘iii܈¹BFFF‹/®©©a³=Š¢>>>rrýêG >þ̉H¹âÑ£Ô¦¦6oo¼ᢞ§_·ó°WØÉ9ÐÃÍ{lÞ ëãÙõ$—––;vlJJ ›6ùä]———/Z´ÈÈÈHNNÎÉÉéÞ½{¸„Ñëo˜Ï?לŸ ø Ÿ|‚¸Õ#rìØ&ݺõÆP©®¦hj*p*$þ1kVï7€ççç«©©a•””vìØÑ×Ë~þùç7666"ÒÔÔ´víÚ½{÷ÚÚÚr/ò®Þ¾}[QQQZZB¡PFŒEÒ«òòò«W¯fffò&6n {;q¢¥¶¶ÞpQ_§{ØÉ)Ї»ëÇ;É+**RSSÍÌÌ,XÀf±~x×uuu2227oÞLHHøþûï.\øìÙ³¡·ÜõOèø!ð êBP?A(×¼ÿEOoë;‰ƒ{yk+U[{sttFÿ_’ššš••5¸ÝáeÆŒmmm½þ(//¯çêö$ëåT*ÕÆÆfåÊ•(Š®^½ÚÑѱ³³“kQÿ‚ yyy¬ÿe2™nnn¿üòK_Û÷ú¾úß>§Ðéô—/_ÖÖÖ¥‘ôôR-11™œŠŠS8òîzb»þDìäèáæ=6²>_ÝNªª*AªªªÑ&Ϭ[·»$³lÛ¶mÒ¤ICoy ï®×í¹ô¹FQ´¢¢âõë×CldúôéK—.åH<]Á'Ÿ ¾ýµ´´ òðáÞ?â⌫Q£LV¬pÛµ+¼´´a/ooïDDZšÃKïß¿¯««ÛÐЀ Èõë×Éd2V’F£mß¾]SSSCCcûöí4 ëމ‰100ˆÝ»w¯ººúâÅ‹Yg=_… ȃìì줤¤LLL®\¹‚ Nïõåµµµ²²²ÒÒÒ]{›Y]\\ÑÒÒBúèŽf½A ‰ÐÐÐàààLJ„„„††Š‹‹÷$ßZOaõêÕ=ꫮ﫟mFEE™šš*++>|˜õÛø¿öî;®‰óø“„dï=dR­Ê·N_ÅqVœ´ ¢âÀRµXÜUëD, "‚ÆÑ¢XqÕ".Ge82!Ⱥß÷ý¥1$! ä|ÞøŠÇ=wŸçòCËåáá±gÏ„PMM ™L Cñù|===¼ÖÖÖΛ7ÏÐÐÐÒÒ2,,¬©©I,|Ɇ………õëׯªª }Ú¿ÄP©T¦££#-$±F.»Þ»wObw#‘H‰‰‰ÎÎÎúúú?ÿü3’¾'‘X<%%å»ï¾ ;22òĉøgiÛÿ«èç–a´Z;>Ÿãè訥¥õÍ7ß\VVvâÄ ‹#±xlll||<ö鯉?@%NZ·nBhëÖ­¢;´j˜¤_9>ÔÕÕ•½vü¯Ò–) !4iÒ$&“™’’‚ªªªÂ—0nܸüüüÌÌL‡-[¶Hœ(£|þ¸¼¼2 ‹U—/g·{ GÎÚµì GŽ166NMM---½zõª¥¥%þýŠ5?á&“I£Ñ,Xðþýû„„„ÐÇ1™moxeee "„üýý™LæñãÇB3fÌ`2™GŽÁ¿zLR‹ŠŠŠš8q"†at:][[ÛÝÝðG©©©544`0zôè7oÞäääôéÓGØZðHðû¨ðP‡G+Ú¿BÙÙÙõõõõõõ>|X¶l~cNv#—1‹Åj9¾R???ƒqìØ1„Puuµ´=IËâxSSS#í«—¶MD¿)aÝÅÂhµv»wïmEæææ-5Ô¯1Åž_„=¨‹õ ç;ü|o^^™­íšn´µ`i)ÃÌìûGŠä/"g¾È`0,--]]]E·ZïÞ½ËÊÊðÏéééýúõ÷rNN†aNNN©©©ø__¾|)üܲTMM •Jݹs'ƒÁõõõ|>_Zq___¼9¶/_Ç ooo …(Zß­ÖZ¾(míøiË…ºuë†aøü DãÇ0,))ÉÁÁAâDLºÏÏW¯>;rd4Ÿ/h÷:ŽœµkÙ\\\âââ„3œ:uJöÑ®¹¹ùÕ«W,‹Ïçß¾}[Ød´mü;’V!ôäÉ Ã8ŽØg|†–-êÑ£GšššgõêÕT*•Á`ÄÄÄxyyáe)ÊóçÏñ"©©©b­ÿŽÊËËÖ]´‰ýÌÖÔÔ|ùòß›d7r3›kËð•fddˆV¿M½!Ä`0$~ï2¶‰è7%¬»X­ÖÎÑѱe+‹¡ƒú5¦Ø|z=¨kõ "óE øѳgØË—¥m*Åd²Í̾¿uëù‹ÈÿbTT…B½yBMMM´5ëèèà[¿ PMM-77·årZ–Â0ìÞ½{~~~Æ ûý÷ߥ¯¯¯Ÿ2e þY´õäççË“/ŠÇÅÇÇëèèܾ}[MMíâŋЩ&)_<}úô€d¯]8³ÄeŠBåçç‹® _›ÍÆ'>{öLMMMâÄ–KúÌ|±¼¼®gϰÄÄ¿ÛW¼£É_;±¾Ð£GììϘ>}úTöÑÃ0:>tèÐ~ýúá! ¤µmц'± öis’ø¹e‹âóù&&&ýõ×À333 D§Ó½¼¼<ˆaØ»wïDFNNްµà‘àŸG5räȹsçⳉõ/ÑHBCC‡ "ük«\v”8¾RáÑ M½ß&¢³eee 8°¡¡AÆ6Á§÷BÃhµv[‘XÌÔ¯1…ß¿=zPWêAÄÜ¿(<ª›Å‹ãX¬6\5×ÐP%“IL&û‹ÇóîÝ»Œ3&44T8ÑÐÐPØš Fff&>¿ ÐÜܼ¸¸Ÿ’½mÛ6i¥Øl¶@ HNN®©©Y¸páäÉ“kjj$OKK?~¼h`<!ôáÃyj!V¼´´4$$$&&føðá‘‘‘ÁÁÁÕÕÕ ¨ZËÀ0 ûõ×_'Nœ({í89—)ñÖ¼ „òóóñÓõÒ&v„={®ééiLŸþuÇ­BZö ‹gÏž gxñâ…ì%°Ùì3f¬Y³æÉ“'‡Â'¶lÛ¢ð†'± |øìÙ³²« ®®>oÞ¼/^`ÿÖDv#—1ƒ0i3ÉŸì¢åï­¡)S¦ìÚµ 9µ“ÀårÕÕÕel‰{!±0Z­]Ïž=åiEJØ¯Û zp±ÐƒðÏ]¹ÉH3¿ ÊÊúþý#ƒ‚Ž m¸x×·ïÆãÇoË?¿<çù|þ˜1c~üñÇššSSÓK—.áÓCBBüüüŠ‹‹Ÿ={6xðà+VˆþˆŒŒtuuÍÍÍÍÍÍýæ›o¾ýö[i¥Øl¶ššÚùóç+++=ª¦¦Æf³% üðáÃÿoŸJ„Љ'êêê¦M›†D~€Ö××c’~•Š“&M1b~1—ÃḺºúûû+ j†!‘çéܺuËÛÛÛÒÒ²¶¶VžµK[æ±cÇ„K@-~" ÎdeeõêÕkóæÍ'Êh Ÿs~1/¯ÌÒrõÙ³ÚQV1ä©Ä¾°}ûvccã‹/–••ýñÇ­Þ}Å`0H$ÒüÑÐЀ_zòä‰hã”vFbAL޳#-[†aÉÉÉšššcÇŽÅ0,==]SSÓÅÅEXÓÙ³g=º°°077×ÅÅEØZZFéèèÈf³E«  †a%%%!&“‰ÿWv#oß «/oÅ0ìãÇýõ׳g϶lÙ‚DN´Ü&÷BÃÝ5I\û¾}ûD[‘¾4ôkL硵Œ zPgïA_Æýý÷k+«ÕÇŽµ!ÿ›2e_DDŠüóË“/þòË/nnnøIì .˜™™á7X0™Ìùóçëéé,^¼¸¡¡A´9655………™››ëèèøûû ïihY ð¤¤${{{Ö»wo:.±8‡ÃÁo Úºu«®®®½½=NÇ×Ëår‡ª©©‰µØËˆ‹‹SUU½q$++‹L&Ÿ?¾£«†}zcŠ••U@@€è…~Ùk—±L»<| Ç·±±144\¹r%›Í–8QFKøœ|qÑ¢“£FíhÇ(.…‘§vû‡Ã‰ŠŠ²µµÕÔÔôðð8}ú´ì£†a»wïÖ××·²²:tè¿¿¿žžžhã”v\iYÐØØ“ãh'±eÖÖÖª¨¨à#½h4Zxx¸pE555sæÌ100033[µj•°µ´ŒŠÍf;::FDDˆuO±£ŸÏ×ÖÖ.**ÂÿÛj#oÇ «ß¦ÞŠaXqq±ŸŸŸ¹¹¹––Ö Aƒ„?%nLÒ^Hb¢»&‰kçñx111øÙšV¿Ü/Ò¯1æ‹ÐƒZF=¨³÷ ù" “þÀÌ/nÿþ»v¥¥¤,8ÐVžùCB««Y‰‰Ár.?77—J¥öîÝû3bÀëׯ{õê%Öt%N”Ïçß½{·oß¾m{‡ÐãÇ%“'ï=ujÑØ±.m*¨Hí®˜¶nUÚí‹ôk„PyyyAAÁ°aÃ>'˜‰'ŸþÛ{÷ò·o¿ÒêÌ..æjjÔÌÌ7  t"ÆÆÆ‡–gâ—Åd²7lH™5kð Avº"å?©‹è(@·@T¿îPЃ€ÂttRt¾ˆúê+óýûθpá‰ì9i4•Q£z_½úLöl(ÆŽ`¶iÓd¢Š€|!äååº|ùèÕ«Ïdg¿•=ç¸q}þúëu}½\÷;Ðqž>}{êÔ½M›¦èêª  PÄä‹¡ðð ƒÛ/Yò[UKÆl&ô¥PÈ©©- XdäÅmýü  h„å‹ ùðá „Ðœ9G9ÒfÓÖîáë; 6ö.ÜtøpFnî»;¦K|ž>е–/"„tuÕ“’–––Ö.Zt’ÇH›- À£  âï¿aÔ ÆãÇ%ÑÑWøaš““)ѱ 2_DÙØœ:µ(+«píÚdió¸¹Yýç?»v¥)20p,VóŠñžž_ý‡èXb¨ê×Ïz÷nÿeË~ëÝÛôÛoGHœgÝ:¯)Söß¹“7|¸“쥕—————w@˜ ›Úºõ‹Õ¼cÇt¢iÜÜ\¢C€ åó×–dm E‡BÑQQÑÁ?ðxUµµ×>?˜n…LV£P´¹ÜD>¡Ð÷Êpôèí¨(úþý>>$Îtìý{Ƶk¡TªÔA]]‡#õVHZÒÑÑ¡ÑhÒþš””µjÕ™ØØãÇ÷UdTŸðª*xÐ=è¦H$’¡¡áç,áÞ½{eeeÒþÊfó««›ªªšð«ªšª«›kk›ù|ŒDBººª††ª= U­¬4{÷ÖýœHº¡>ž?_3„è@º¯¡C‡š™™‰M$þü"nñâÍÍÜD„Ä”1*jš§çÏGŽÜZ±b´´…èèèt`ˆ ›ÉÌ|~nåÊ1.YD‘H$###¢£ ³:t(BˆÍæT””T¿}[]RR(+«ãpx!kk;;óQ£ ¬­ ll ll ttày[ŸK ȺxñíôéòªN¦,ù"BhåÊ1õõMß}wZE…ÜÑÚÚÀÑÑ´gOCUU%:€ÐÑ”«¹¯_?±ªŠõÝw§õô4† sûëÒ¥£’“nß~å×_ƒ toéÒø=hûöÍ&“á:t|¾àý{†èùBÑÔPKKÍÖÖÈÆÆ`Ø0ÇÀ@ü ¢¹¹®Œû è&”+_$‘H1130 :vâÄOOgÑ¿ª©Q·mó <:eJÿ :ß%BÐ)`¶jÕ™þ)¥Ó¿ÓÓÓ :@;±XÍ……Å®&—–Ör¹|2™de¥Ÿ2œ<Ù ®&Ð*åÊB y÷îYÚÚ=æÎ=¾w¯¿¯ï'¯Ó5ª÷¼yß„…%¹»Û˜˜h$è¶m»rõjNRÒRxÚ"†aoßÖH;eØ£­W/WW«É“ûá§ ÍÌth4¥;ü Ì”±ÃH¤-[¼y<ÁêÕgUU©“&¹‰þuýúIþùjýúó'Ṅ—m€/+))ë×_3vïž5x°ѱÄ55qóóË¥ @11Ñvt4…S†teÌB$iëÖi iéÒß4>^¡IDATjj|E•¬©©ºoßìéÓ=z;8x$q1‚®æÚµçkÖ$…†þwæÌADÇ@w‡@Á3B|Šð”!…B¶´üd ¤†t4%ÍB$)*jšµµADÄù‚‚Š~˜*y0x°Ýúõ“¶n½üÕWæ-‡ÅÐéé//Ž[±bÌêÕÿ%:ºÙP45UíìŒa „SÞ|·hÑpUU•ˆˆ”¦&nt´…ò¿.Y22+«pÅŠ„ë×CMLోà³ @ ëQ–÷¶êÕ«²  c4šJ|ü·vvÿ{qE^^¹·÷>//·Ý»gè¤nßÎ[° vÒ$·Ý»gÁ¯ÚJöuGG''S<)„S†@IIY6¤¼~½ƒè@À':Íï9gg³‹W÷õ=pêÔ"WW+„““é¡CAsçïÛ×bþüaDÇ:™{÷ò,ˆ7Îe×.Hh…è<5ÌÏ/¯¨`"€@7ÐiòE„……²dÉ)Ÿ?ÿ<Í´§§sxø„-[èVVcÆ|EtŒ ÓøãÜåËã'NtÛ»×’E„ä€"z5 Ðåu¦|!¤©©zò䨨K+V$<~\¼eËT*•²r嘂‚ŠààSIIK´%:FÐ <øçöíW—.µaÃ$¸gt[2 H$kk€øŸN–/"„¨TÊ?N>Ü1$ätVVѱcózö4Ü³ÇŸÍæ=~yß¾–DÇ”—@€EF^0x<è› :È•Sç¾Ü ªª²k×L''ÓmÛ.çç—ïß?;9yÙìÙ‡'OÞ—œ¼ÌÑє貨¨¨›7ïćŒ³g—öëgMt8´@€½{'õj2 @(@ç>¿(”•Uü•JÞ»w¶‹‹ùÌ™‡kjXIIKmmˆ ïï¿ß,YrJSS-1qqÏž†D‡€Tr@S†  ƒó‹Ê©sŸ_4ÈîÎu?þxiúôCCââÿ6uê/‰‰Á}úX Œ@€ýôÓÕC‡nNžì¶k×,üå@ :—®³÷ÑÒRûùçÇ;­]›|÷nþÎ3Ož¼7uêþ£Gçyz: “É^¹2ñÖ­vì˜èAt8 ›âñ>0òóËñ÷ H€2l˜c` þ68eP6]'_ÄMšä6h]hèÿÃß~;rÄˆÞ ÆîÝ;ÛÛ»?Ñ¡…ÊË+_¸0¶¾¾))ié!öD‡º‰Pð«Éð@§ÖÕòE„±±Öo¿}›˜˜yÑÆÆpÒ¤~Ë–Å¿~ýqõêqðdænâÊ•g«Vqr2MN^ff¦Kt8 «‘=ECCÕÞ º”.˜/"„H$R` ‡››ÕŠ ii¹ÞÞýöî½þæÍÇ={üUU»f•ŽÏìÝ›¾gÏ5oïþ;wÎìуFtD sklä¼~]o@ts]d|´4MMÜèè«'NÜíÕËäÝ»;;£cÇæÁ£»ª’’ê•+_¼ø°yó”¹s¿!:ÐɈ%… ˆO65Õߟ|q0>Z9uñ|WXX¹ví¹ õõ58»vÍœ2ngìR0 ;qâîöíWÜܬ~ù%ÐÒR舀ò àa^^y~~ù§PÔzö4K -,ôTTÈD@·ù¢rê?ŽíìŒÎ[vþü£-[èd2yÉ’ßîÝ+ضÍn'ê**˜«Vù믂ðð K–Œ¢Pà¸þ§¾¾©¨Hò2™de¥P@Ý"_D‘H¤éÓ¿9²÷?^:þÑ™3ž>}»ÀÊJŸèÐÀg¹~ýyhh’ŽN:=^ÜÒmÁèPÝâz´˜´´ÜððäÚÚ µØØð°•N‰ÍæìØñû±cw¦Msß¾ÝO[[舀"H€RVVÇáðà (tp=Z9u—󋢯ï;t¨ã?\<}úŸß?¿¯cbfÀ‹:—;wòÖ®M®©iØ¿¶¯ï@¢ÃBƲ……ž££©è)C€¤;ž_*(¨Xºô·—/KÕÕi»vù{{÷#:"к²²ÚuëΧ§¿ðó¸y³·¡¡&ÑÏ%:O óòÊKJª` Ýœ_TNÝ:_Ä¥¦>?רÈquµJL\l`ù‡’°ØØ»;w¦ik«EGO‡×¢PÈË–y†‡{‘Éð&åRPP±f͹Nj—,µzõ8x·’“=E]æà`"vÊ ä‹Ê òÅÝ»WÇ`4ÚØìÛ0h-Ñ„âpxGÞÞ»÷º¹¹nLÌÌÁƒíˆŽ|‚ÍæH€‚K á”!@ ›Íùø±^øß«WŸíÜ™–‘±V8¿_™ˆÐÀ¿ _ü—Ëß¼ùB|ü}ûúkÛèèéÎÎfDÕ­¥¥åFE]ª¬¬ <†%«¢¢.?¿BÆkkGGS''S€SYYí×_G R³//×ãÇç+2$Ðä‹TTÔ…†&ݼù !4hݶm>..DÕí<~\¼iÓ…ÜÜ÷óæ ý¯®.œ‘R>_ðþ=CÚÕd--5[[ñ(p5ÐnS§þòèQ‘´”ñèÑy“&¹)8$ òE©îßýý÷gJKk1Làåå1ÑÖֈ蠺ˆººFW$?~¬ßºõRJÊã#œ~øaj¯^&ŠŒ­»a±š ?ÂÎœÉ Oæó-ÿ¤®®úòåV¸¸D8ÈeijâîßãÀ$ !ôÍÊ•cŒµDçápx󿨳gÖýûoTTÈ“'ÃCyZñâŇ9sŽ¥¥…ŠmI„—Ë¿¿sgšš5"b’¯ï|˃ÏPJ‹Éd÷鳉Çã‹M§Ñ(Ó¦ ܳg!QQ/¶®¸¸jãÆ”›7ÿQUUAˆè±lÙ(33]ü¯§Og†…%YYP©äâ⪘˜þþCˆ X™½xñÁÇç`}={Ù2Ï' §cvéRöŽ¿øÀX¼xäªUãÔÕat;Á@§3wîñ›7_µ<Ř”´tØ0GBB¢ _”×Ó§o·n½”™Y¨¡AkhàLšä¶fÍ;;#­ïÞÕP($>C‘H¤M›¦,Y2’èx•Ñ“'%3gjjâóù|MåÑ£HCCM î\yóGqqÕ¬YƒW­'ÌÅA«êêóòÊñ1(Ò à¡££©££) @(§K—²—-ûMìFÍgÏ¢à wÊòŶ¹{7ÿ‡èyyåššªõõM}úXææ¾Û„d2)(hèÖ­Ó ‰‹MBT*eéÒQ#FôÞ¾ýòÓ§o}||÷ÝX{{c¢Ãl³÷ïjjÔŽ~Í @tml6§OŸl6W8…J¥ÌûMTÔ4£B/¶—ËOLÌܳçZc#§¹™ËãI¸?—L&y{»ïÛ7^Y†ûÿd‘'z­J¥ðx‚!CìÖ¯Ÿ8p`ç{Ú凌½{Ó“’=:oüø¾_j±0Ð=­X‘pùr6—ûï]ŒW®|ïînC`H@òÅvjhhÞ°!õܹ,i3P(äQ£z;6.ÿ=}úvÆŒƒbÉ"BˆB!ûø¸ïÛ@T`íV^^·o_zBÂß!„° Ús†aoßJ€Ò£­W/ñ(ff:0HÐUýùç«9sŽ!ô¿´ÄÒR?+k±!!8ö´“††jqq%…B–8þ!Äç nÝúgÖ¬_ããkjª*8<å'‹l6O ßP|¾ -íECC³†F§Ù>%%Õ;wþqñâS á_=•J).®”]ª©‰›Ÿ_Þê”É“Ýà”! Û1ÂIGG­®Ž¢R)~~‰Žü òÅvzô¨(+«Hö<<žàñãbŸ_Ξ]ª¯¯¡˜À”ŠðÌbËdÇf7'$ü¿Èb±Øl¶––Òµmmmívvè믭Åþ$` Fceece%ëíÛºŠŠúY Ü!C¬¹\þÝ»%³fõ£Pºòs›šx7n¼™2å+## CC ccMCCu-­Nv¶°°’ËôêeTPPÅfsI$D¥R8 £q%%Õ/Ð(íq§ûðôìõòe¥¥ew¹§„0 «ªª²´´¨Ôù"BHWW·wïÞDGÚfÀ7¢Cø\...!„aXaaeNÎûìì’Û·Ÿ¿}[ßÔÄ¥PÈTªJSŸ™B!—”TFdÀ€/Ž;ÄrqAzz&..ð†Ïçß½{Wl¢²ç‹‹D"ÙÛÛÛO™âv÷®ž‹Kƒ—“óþÙ³wYYEyyeÏW)t#GB²¨t _  Èdþ"füÁ`|¾ ?¿"'ç2ï>ä‹´…Bvv6sv6#: Á#?€,/YºQ¾øúõk‰$ñƒ oß¾?>†ašššŠ´]dÔ¯ÂÓ§OUTT’““…Óét:FËÍÍÅÿÛÐÐîææ¦©©9hРŸ~ú‰Çã¡vm7’$_ª¦­"‘H¯_¿VØê€X]æ8…"‘H½zõ{2ô„ Ù±+U0)2’n”/êêê®]»¶­¥.^¼8uêÔÒÒÒÄÄÄ—/_vD` ¯Bÿþý#""BBBjkkBuuuË–-‹ŒŒìÛ·/B¨¾¾~àÀ<ˆŽŽ~òäɺuëÆÇçóÛ·Ýîß¿_ö©/[©ÂÂBCCÃ/»L茺Ìq ÿ\\\üìÙ3០Æ;wŠK¹‚!V7Ê £££ÛZêúõëãÆc³Ù!kkñ§sw xB7n444Ä“¿uëÖ™™™…‡‡ãóDEEݼys„ ŽŽŽ>>>YYYEEEÇoßv3222ýÔ—­”@ ¨®®þ²Ë€Î¨+§BcÆŒ½véÒ¥#F—rC¬NŸ/^ºtÉ‚Á` „Μ9ãèèØÐÐ 8àì쬥¥åáá‘‘‘Ÿ³•qUôÊ•+ýû÷WWW733¦GUUU=zô2dBOzðåüùçŸÖÖÖ÷îÝ“XD"ÅÆÆ:;;EGGÇÇÇÛÚÚêèèlÚ´ ŸËå®Y³ÆÄÄÄØØxÍš5\.×ÃÃcÏž=¡šš2™†âóùzzzW¯^EÕÖÖΛ7ÏÐÐÐÒÒ2,,¬©©I,|Ɇ………õëׯªªJ´ !ûÓO?}ú¹sç„WÏŸ?ïçç'Üø7W«u‘˜»»ûÂ… ñ9Y,–ººúÓ§Oå FÚ†MLLtvvÖ××ÿù知͉aØáÇ¿úê+mmmOOÏ+W®à‡ZÙ­H¸ …w¼Ã”XNNΫW¯Z-((hîܹååå&&&<À0ìÈ‘#ÆÆÆ©©©¥¥¥W¯^ÅßiSPP€×·å&“I£Ñ,Xðþýû„„„ÐÇ1 ‹Søy„ 7oÞ,++“X!äïïÏd2?Žš1c“É}ŠaXmm­ºº:žVHŒJžºÈì÷ß700àr¹†%$$¸¸¸‚Vƒ‘qôóóc0ÇŽCUWWKœóرciii•••éééø×'»±X,Ñv¨Èã]WÈ †¥¥¥«««°þ...qqqÂN:%;_lnn~õê‹Åâóù·oß¶K__ßššLR?ÌÉÉ‘Q!ôäÉ Ã8ŽØg|†Þ½{—••á LOOïׯߣG4559ÎêÕ«#""¨T*ƒÁˆ‰‰ñòòÂËR(”çÏŸãERSSD#Á?ã×—óòò„uV'¼½½)J`` èv*Q÷ïß744lÇv“ñˤå—%Z Ã’’’䬯Äö€ºuë†a|>Iâ*$N”¸@ä‹tí>î`’vì¢û''§ÔÔTü¯/_¾~nYª¦¦†J¥îܹ“Á`‚úúz>Ÿ/­x;Nák_¾|ùúõë1 KHH;v¬pºÄ¨Z­K«ñx}…áôéÓø×'»‰Qäñ®Ó_Féêê.^¼øÅ‹K—.ŧöë×O8ƒ«««ì%Ðh´üüüñãÇ0 ..ŸÈb±¸\®žžäWžão•X‡¿®¿à+úW\\lff†;vlQQQÿþý544>|xçÎ)S¦ôïßÿÎ;'NDUTTðù|{{{¼¸ƒƒÃû÷ïE#Á=|øpäȑ۷o—V…ÄÄÄ[·nݼyóüùót:]¸MMMñ_~¢²³³e¿DUFõñn#Ö¬‘¤/ ‡__Æ«óþý{9ë+¹¹9BˆLþ¤y‹­BÆDM⮬原ŽïµJJJ„;ggçiÓ¦I+¥§§—‘‘‘™™iii9bĈ»wï’Éd‰Å»äq !4}úôääd ÃÄ®ÿÊØÈ2êÒj` ÅÇÇ'55µªªêÆò#cÃâÇ aç|óæMŸ>}„E¾úê+Ù”vìSØñ®+ä‹ïÞ½;pàÀ˜1cBCCñ)¢š^¼x!{ l6{ÆŒkÖ¬yòäÉ¡C‡ð‰iiiãÇ—Vo Ê?o‡'R #33“L&{yyÑéôüü|wwwOOÏôôô;wîàýÐÄÄ„B¡âÅß¼ycaa! îòåˇ>{ölFFFË*”––†„„ÄÄÄ ><22288X8d$ àÇÄ  „üýýÏœ9íïïßÖí&[Ë/ ‡ÿúAåçç›››ËY_i$Þp)¶ @6‰»²–;v|:¾×277/..ƧdggoÛ¶MZ)6›-’““kjj.\8yòäšš‰Å»Þq 7tèÐúúú{÷§ ÇMËÞÈ2ÈØôéÓ/\¸pîܹ¡C‡â÷°µŒŒ +–½IœÓÆÆF49yõê•ì J;ö)ìx×éóE@°`Á‚•+Wž9sæÆ—/_F-X°`Íš5t:½¼¼<-- ¿cO†ææf‡C£ÑØlvdd$B¨¾¾žN§{{{·£ Œˆˆ ”³¾, ÿpüøñºº:ÙÛ\l2&€ ÒvewìBsæÌÙ°aÃóçÏŸ?¾bÅŠ’’i¥H$Ò¸qãRRR˜L&‡Ã¡R©êêê‹w±ã”…Bñõõ 4h±±q«QÉ&O`Æ ãñxQQQsæÌ‘3ù7¬Ä9—/_~ýúõêêjüöV<ókµ‚„ïd\À&œ<÷‘üòË/nnnð .˜™™ÕÔÔp8œ¨¨([[[MMMü¶÷áa¶{÷n}}}++«C‡ùûûëééá7dàZÞ"ü“XAcccLäN iŸ™Læüùóõôô /^Œß)\[[«¢¢‚Dihh ÑháááÂÕÔÔÌ™3ÇÀÀÀÌÌlÕªUl6[ZTl6ÛÑÑ1""B´ qqqªªª¢·Œdee‘ÉäóçÏãÿe±X¡¡¡}úôQSS³··ß°aÈ#fΜ٦í&¬¾Ä–&ñË—vüøqCCÕ+W²ÙìVëËår‡ª©©)c# ?K\…´õJ÷/дû¸ƒIÚ±‹îµšššÂÂÂÌÍÍuttüýý >]âá ))ÉÞÞžF£õîÝ›N§K,ÎápºØqJtí·nÝB¸ @wÇàz4h3È€,/Y _²@¾d|È¢ìÏ_¬©©yöìÑQ€”ùÉS€/Ž; ›“x¼Sê|QGG‡L†3 @YÑh4¢£t 8î€$ï”úyÝ€pð+ Èù"òE ä‹@–ÿaÜÅR$/€VIEND®B`‚XQilla-2.3.0/docs/simple-api/ModuleResolver_8hpp__incl.png0000644000151400015140000001114211653571064020402 00000000000000‰PNG  IHDRåu>ͱbKGDÿÿÿ ½§“IDATxœíyTWûÇoBÕ K] ¢D–WÑ*B„XÄ•¢ò"ÐÖb7<•EK« öj«§•"±‚KE .G9ÈÒŠ ¼TÄ¥¢ Ue BÉüþ˜v~!™Ä`aèýü5óÌÜû|ïïܹ3Ì‚ !dm €@†ô+„H@¿Bˆô+„HPµ-ìÛ·¯¢¢BÛ* jÁáp´+@û~­¯¯¯««sttÔ¶ˆ*ÚÛÛ\‘X^Ÿòòrôl¬®®ÖÕÕ={¶ =?ÿüóÎ;§M›&§ÿöíÛ™™™ñññYYY< &''ïß¿ÿöíÛ§OŸVåɯd2yáÂ…è”àæÍ›3gÎ?~<ºi``àúõë[·nµ´´´µµ]¿~=‡Ã¹xñbTT”§§§™™™‡‡GDD„:Y®^½ºmÛ6ƒakkYUU…Æ7lØàïïïïï¿zõêâââ   EÄb1‚ B¡F£ùùù]ºtIWWW$VÉ|Àãñ=z())ñóó£P(*ôDDD¸ººêééÉé Ò××_°` §§ nÜ¸ÑÆÆÆÁÁaÆ XRÜà(‡H÷[ooïC‡…‡‡ËMº»»¥R©••ºjmmÝÑÑA"‘°›3€­­­\m¸ß½|ù200[Å.ú¹¹¹ÖÖÖ‘H”}ðàÁüQYCCÃ#GŽäççŸ8qÂÞÞ~ݺu¸"±RºººóçÏ///Ÿ2eJeeeff¦j=“&MÂí"333€Ü  V KŠå̯3gÎìíí­¯¯¯©©‰‰‰Áâ&&&d2¹­­mòäÉ€ÖÖVsssÆÆF;;;tŸgÏžaûK$ …ÒÙÙ©˜ÂÈÈèÈ‘#¨5ù|>—Ë•ÛAWW×ÏÏïòåË‚ ¶P,"‰¤RiRRÒÀÀ@IIIBBBaa!®HÙš}||Ž=Êd2ííí13)ÓC¥â;ÜGÍÍÍèéúâÅ ÔÐÊ‚£"ÍÀßS‚Ç;88cq*•Êb±~øá‡¶¶¶§OŸ?~Ü××wÅŠÇŽ»qã—Ë­ªªÊÎÎÐét@qqqoooAAb OOÏÌÌÌW¯^555ÅÇÇ*îc``ÐÛÛ+ •!‘Hqqq@,S©T]]]\‘²ÕΞ=›Ïççääøûû«¯çÊ•+@u¿¥¦¦¶´´üñÇYYYl6[Ep”C°ñÀb±ŠŠŠäâÛ¶mKMMŠŠÒÑÑY´hQHH•J‹ÅÇŽëêê²³³ÛµkצM›ŒŒŒÂÃÃÓÒÒrss7oÞü믿ÊÕžššúù矓H¤… FFF*j˜0a‚¾¾>ÇÓ××Ç-B£Ñ¾üòËŒŒŒööv++«ÄÄD†+RöBL¥R½¼¼JJJd§:Š•Ë]¾ýö[lž€‹¯¯oLLL__Ÿ–T.¨Nçk’Ö¿ç^»vmGG|ÿu˜hii ---}kP5èû¯Zw Áæ9ЯcƒåË—«$ЯcccãíÛ·«$Я"ý !Я"ý !Я"ý !£âï±uuu±±±ÚVQEww·¶%0ü:wî\mKÐ<55¶¶oLMû´-D“¸»»k[Â(x`LbeõEzú'+VŒÜçeÿàüB$ _!DúB$ _!DúB$ _!DúB$ _!DúB$ _!DúB$ _!DúB$ _!DúB$ _!DúB$ _!DúB$ _!DúB$ _!DúB$ _!DúB$ _!DúB$ _!DúB$ _!DúB$ _!DúB$àïkk†Í›O=|؆­¶´¼6557N]¥R)'O†[ZkIÝØAûÿ¿`lÀdZÖÊžû==B٭ЬÎ4ÃG¹@ÂÝD¥Rþûß9#¬g¬ýª&O6sv¶&á9V"‘®Zå6âŠÆ&ЯcõêÙŠ|’É$w÷ÉVVp2  _5ÆÊ•nŠ7¯$iõêÙZÑ3&~Õææt¦â»lÙ,­è“@¿j’5kþ#;ÄR(dOÏi¦¦Z”4Æ€~Õ$þþβã«TŠþG‹zÆЯšÄÐPÏÇç}*õ¯^¥Ñ(K–8kWÒúUÃ|ô‘»TЍT ›í¤¯OÓ¶¢1ô«†a³õôt‰$0PûÿÐzŒýªatu©~~3I$0nÍÛ{†¶åŒ5½?  »»»µ%eÌÀbM-(ø›=½««]ÛZϸqãLLL°ÕA~íééihhqIc ##©¡!íý÷é°3ÿ9&LPêWooï‘“3Fٺٴi™Œÿ DMîß¿/ó×a!2Òšu8€~tt(Ú–06~… èW‘€~… èW‘F¿>yò„D"á.¨àùóçëׯG$44”N§Ÿ¼ˆŠ¶ Møý÷ß©Têùóç±xQQF«¯¯GWA||ü¬Y³ètúœ9s’““À;õ Mµô­H¤'OžŒL®aü>ÖØØxÇŽC-UXX¸jÕªÖÖÖ¼¼¼?ÿüs8„ 7h\]]¢££Ùl¶±±ñ›7o6mÚ”˜˜8sæL@OOÏœ9s FJJŠÝ½{÷víÚÅáp8λõ[eeåÔ©S‡¡5ÑÔÔ4gΜÎÎÎáK¡ˆ ¯^½*--E4ÍãÇÑDØ‚ –.]ÚÛ۫ΞÚE…B´ ‚ˆD"''§ˆˆA¢¢¢ÜÝÝûûûÑ}bcc===°R|>Ê”)éééŠ)ÞÚ€Çÿã6©B…†áË~ïÞ½{÷îÉF†<¸xñ¢µµ5úšÁ™3gìííT*MMMupp044œ7o^ii)zPqUº|ù²«««¾¾¾¥¥eJJ ììì4007nÜܹs'N_ KJJ&MšôÛo¿á$‘HÙÙÙ&LHII9uêÔÔ©SŒŒvíÚ…î ‹ãââ,,, F\\œX,ž7oÞ‘#G\.—L&ÇÆÆ$‰‰‰É•+W¯_¿þôÓOÍÍÍmllbccûúúä”`'|ll¬‹‹ :ö`MÐh´œœœìììäää'Näääèèüõ ¹¹¹»wï¦Pþÿ1­A|||^^Þ;ôÛZQQÑôéÓ Ftt´H$zk{§M›†EŠ‹‹™L¦‰‰Irr2vÈäR(Ë;4dÍ«æøúñÇòÉ'/_¾´°°¸}û6‚  £   µµõÊ•+666Åá[àñx4í³Ï>knnÎÍÍ´··#’}êÔ)dðÙŒ./Y²äúõëmmm¸ÁÁÁ</++ °víZ—‘‘èììDäÀÏŸ?¿{÷®››ÛÎ;÷îÝ»téRAŠŠŠÆïææ† HMMžžž@ @$$$ÄÇǧ±±ñîÝ»NNNIII²JîܹJ¥˜YQµX0vîÜ øæ›o°j ŽŽ¹Ž½y󦩩é;ôàÎ;=ƒQv°ÐÚ/^ÜÐÐpëÖ-&“™””¤f{qýX¶lÇ»páÚá¸)”åUâøú.~íîî¶±±qvvÆò9::æää`;œ_,˾Œ#ËŒ3”D144 \Ùe”gÏžYZZ¢7Îl6ûéÓ§®®®ÕÕÕ+V¬puu­¨¨(--]ºt)àÕ«W‰ÄÎÎ-Îd2›››e• TWW{{{ïß¿_YòòòÊÊÊ®_¿žŸŸ_TT„uàĉÑK–;wîÈV®f¿¡(Î ±\r ½¾£ÍinnV³½Ê°²²Ƀì$—BEP}Þů/^¼HMMõõõ‰‰A#ÖÖÖuuuØНÕÈ! ×®]W[[›––†¯]»æç秬j>܂ꀎ[ØsëÖ-2™ìïï_TTÔÐÐàææ¶hÑ"‡SQQúÕ‚B¡455¡Å­­­e• \ºt)==ýìÙ³¥¥¥ŠMhmmŽŽ>tèÐÂ… ###»ººÐM!!!ûöíC$@ppð™3gRRR‚ƒƒ‡ÚoªQ.—;qâÄ‹/"²ÿ~ƒQXXØÖÖvõêÕ·Î_»»»I$ÒÕ«WÑg€ÚÚÚÐÐЖ–4‹â|³šbAdð-*îrttôêÕ«Ÿ={VWWçáá±eËAΟ?O§ÓÙl6‚ ‡N§;::b-]·nOSSS}}½££ãîÝ»•©JLL´·· …²MJ¥Ë–-óòò’H$‚ô÷÷;;;£[ß¼y3}út‹uíÚµG%$$ †H$j¿¡Í¬¬¬lŒ²ƒ…ÖÆb±?~\UU5mÚ´Ý»w«Ù^lZœ™™ùúõkeŽ›BY^h`þzôèÑY³f¡Ïe~ùåKKK.—Ûßß¿wïÞ©S§Òéôyóæ>}Zµ_9|ø°©©é{ï½—––lbb‚NÝ 7s’+È`0p»Ln™Çã­_¿ÞÄÄÄÌÌ,""½£zýú5•JEï„F‹Çq¹Ü°°0333KKË/¾øB(*S% íííd›““£««+;µ­ªª"“Éùùùè*ŸÏ‰‰qrrÒÓÓ³³³ûꫯ¼¼¼‚‚‚†ÔoXóqG"܃…Ö–••5yòdssó­[· …·¶W,/X°€N§«èdd°_åR(Ë«ÍÜo½•Ñÿôtt"‰nÞ¼9ÜYFàèà¦x‡¼š¹ß‚ 4 }ð Qô뿎ñãÇGFFŽ| äô{ðííí<€ßoAF èƒ&GGG,ÇW‘€~… èW‘€~… èW‘Àù¾ µµuäu@ ŠôõõéééÉFpü õ 2zó+üœ"ç¯"ý !Я"ý !ÿ¨[ißyMÇIEND®B`‚XQilla-2.3.0/docs/simple-api/EventSerializer_8hpp__incl.md50000644000151400015140000000004011653571063020441 0000000000000067cc82f3361813bca7e54c90134d3118XQilla-2.3.0/docs/simple-api/DOMDocument_8hpp__incl.png0000644000151400015140000003327711653571064017566 00000000000000‰PNG  IHDRãuƒ ²ÇbKGDÿÿÿ ½§“ IDATxœíÝy|SUÞ?ð“4ÝÒÒ}ßí’Ò¦ HHÙÚ#UE\QœgTÐñ7Š:ƒ>n㈂¢À àòˆ<”‚,ÛR”M MhZè¾ïMÚ¤m’ûûã8wB’¦¥K’¦Ÿ÷«¤7¹'ßÜœ“Üoî÷ÞÃa†X ®¹¸2U°,ÈTÀ² SËÂ3w0ˆ·ÞzëÌ™3掌ùË_þ2gÎsG`=©Xº‚‚‚üü|¡Phî@À°ìììgžyÆÜQXdªã€P(ܲe‹¹£Ã²³³Í€µÁyª`Y©€eA¦ –™*Xdª`Ypí_+1oÞ<ö¶¯¯obb↠ÜÜÜØ…J¥rÏž=—.]ª¯¯ ‰D?ü° ]700pïÞ½‡}üË/¿|ñâÅ}ûöÚ¸…›7o}!憙*€õضm›¿¿¿F£©®®þá‡Ö®]»k×.gggBHOOφ ÜÝÝ×­[P^^þÕW_ýúë¯|ð—Ë%„444ܸq#22’6%“Éòó󇨏…¨¯¯_¿~}FF†¹€‘Bõ/€õpssóðððòòš:uê[o½åïïÿý÷ßÓ»þõ¯¹¹¹}øá‡wß}wPPH$Ú±cGCCñcÇè¦M›¦=/è/¿ü2eÊ”!6n!4MWW—¹£€Q€LÀ:q8œ{ï½÷üùóô_±XüØcÑ甃ƒÃÃ?,‹é¿sçÎÍÎÎf†þ›““3gΜ!6.—Ëßyçûî»ïÁܾ}{__ŸZ­Þ½{÷C=´téÒ­[·ÊårBHmm-[E¬}{Þ¼yÇŽ{üñÇ—.]úõ×_Ÿ#„wî\||¼‹‹ËPQ©T?ýôÓÆýýýÃÃß|òI±X|ôèѧžz*<<üŽ;îxùå—…B¡ñFzè!>ŸŸ––Fyä‘Gø|þ¢E‹!2™ŒrìØ±?þñ>>>áááëÖ­»xñ"]kéÒ¥ÎÎÎ .$„ Z÷KŸböìÙl³„ 6ÅÄÄ<ýôÓìáeƒ À”pE%«USS@qvvöðð(++›6mšöÊÊÊûïܹsß{ï½5kÖ/ýÕi¼½½]£ÑÐÛ„ÀÀÀææfBHPP]ª³:[fLñù|BÇÓ¹M544,_¾œý×ÉɉÞðòòÒy¤žžž„í‹kBÃh!˜Ž©X'†a>>¾§§§  à×_¥Ç‡Ò¸»»;—Ë­¯¯§wÕÕÕyyyyzz644Ð%eeeÚÕ¿jµšÒÒÒ2ô×âêêºoß¾¬¬¬¬¬¬ÌÌLZåKôÒNã >¸¦¦†Þ¨®®¦©ì@ À”©XŽŽŽ¶¶¶–––üüü×^{­¾¾~ÅŠô®Ç¼½½ý…^¸xñbMMMnnî† ¼¼¼î»ï>vuZüá‡ÆÄÄèÏ•:Pã<oÞ¼yÿøÇ?êëëéä7)))iii_~ùeyyyyyùÇÜØØH¡SÚœhkk«Ý¼yó222–-[v[ÿñܶmÛúõëmmmçÏŸ¿jÕ*‡£T*7mÚ¤T*g̘±nÝ:Bˆ««ëš5k>ûì³}ûö=÷Üs¹¹¹C|]kÖ¬Ù¶mÛ3Ï<Ãáp’““ikúüüüâãã—/_þã?BÞÿý)S¦°A”’’òâ‹/*•Ê ¬ZµŠÖúê,b0Š8:g €¥Y±bEssó–-[̈U©­­]½zuVVÖ  5oÞ¼ï¾ûŽ=| #‡ê_°,ÈT`"rrrJOOÊB0=dª0¹¹¹½ð CY¦‡L, 2U€‘êììà Ff©‡÷Æy[¶\vuå ¾ÑÑ~¡¡ž!!ž¡¡žaaÞ..æ`üA¦ 0" £yî¹ØððøŠŠ–ŠŠÖ‚‚š#Gò;:z!\.Çßß-,Ì3$Ä+,Ì34Ô+4Ô3,ÌÓÕ•oî¨,2U‹Ã0LMM{IICII}IIÃn..Íæ ŒÐDFº¬X1]{Q¿º®®£ªªµ²²µ²²µªªõèQIii£BÑG±³ãùû»Òã®ìب(_GG;3½Ë‚LÀü:¥Ò†k×ê¥ÒÆë×ëJKåò^Bˆ·÷¤èh[[¹„ÛfkkC³P‘è–å=lîZRÒ ‘Ô>|µ«KAïuuåÓµ_À/4Ô3,ÌËÅÅÑ /À¬8¸€)i4Lii£TÚ •6H¥%% ååÍýýj‡â!ø ~oBBpx¸·­­ !dÅŠ§N áS÷÷;)•ÎεRßÉdÁvvr;»Î¡o¥Ë—/÷Ýw+V¬ö“j§¯ìššvµZC´ÒWíc°ÁÁ\.gØÏ`ápL` 1 SUÕFóÒ’’©´±¼¼Y&SB|}]‚SS…ôD–Ÿ©j«¬lÍÍ•ææJÏœ‘vvö„†zŠDúçæfA×ïFýpP» ¦U …L`¨º»{‹ŠjéÉ¥ô)ÍKù|;¡00:Ú=dêëëjÊÀ;33ó33¯æåUr¹œ¹s'/Y’¸`A¬‡‡“)âñ•©²ÔjMQQ-MYÏŸ¿¡Ñ0Ba H$HNLŸngg‰gÓè×WV¶Þ¸ÑÔÝÝKP? – ™*€a E_AA ÍK鉦´ÀÒÁÁ–^ôˆ¦¦ A&ÎKYeeMybqqaa Ÿo·hQ|zú”Y³¢,<Ó§™ª¶žž¾Ë—+Μ‘ææJ%’jGG»¤¤ßʃããƒ8K¿Ð‘Á°••­ô^ƒ`CC=Í3L4ÈT!¤·WEÏ/•J»0/­œ´³ãMžìÏæ¥_` ;g¶šI†a.]*‹‹é)”ÞÞ“î½wjZšðî»Ãíí-ñ°ž>+ÈTµ55É.\¸‘›+‹‹»||&MŸ! RScÍõÆðôöª**Z¤ÒÔ€%@¦ ‘Z­)+k¢©DR#•6ÔÕuô÷«¹\Nd$MJ}i^ÊNc^*•æÜ¹²“'‹Nœ(¨©i÷÷wûýïÒÓ§M w©‚•eª,†),¬¡åÁ.ÜìëS ~©©ÂädÁ8úAÇ0ê‡#"|œœìÍ8Œ{ÈTÀú :…iBBE奬¾>UNNIfæÕÓ§¯µ·w ~éé‰K–L±„Kø›µfªÚо_ý­<¸  ÆÞžw×]wŒ£òàA¬®ªj£;¨€‘C¦ ÖFg S‰¤¦¢¢¥¯OE õ¤)­æ½ãïI“ Oaj^2™òøñ‚#GòÏž-U*û“’ÂÒÓ§¤¦ ­c_"dªÚZZäçΕåæJO*nhèôòrž93R$,XãïïfîèFSo¯ª¡¡³ªª•žÚMÓ×ÚÚv•JC±·çùù¹Òˆúa2U÷»$’jvž˜ŠŠæ®.%!ÄÇgRt´?=díæeá³J65ɾ"]¼xS£aæÎœš*œ??& Àªò™‰–©jcç¼Éʺ&—÷²sÞÌ›ãìl³ë‡oÞl’ˬ÷±Ö­C‡LÆ™–ùµk¦0õôtŽ `ç‰1Ù¦#WQÑrôhþÉ“Eyy•¶óçǤ¤Ä¦¦ -jºÎQ4‘3U–RÙéR9-.,¬ár9S§†¦¥ E"A\\—;î˃5Œúá+(œ€!B¦ M.ï-.®¥=ÒÎKœìccÌ8…éÈI$ÕbqQff¾TÚàââ–—ž>E$88Øš;´±…LUGk«ü—_Êrs¥YY×kkÛ=<œfÍŠ‰sçN r7wt&ÅÖÓÜ•ÖðëÔÓÜ•üOó^‹Æ2U° ==}……¦0ut´‹Šò|‚Çi^JÑ9f23óO*ª¬lõõu]²$qœ^ÂwØ©Á–gg_—É”lyðœ9“]\,ñœj0X?\^Þ,“) ꇬ2U0¥²Ÿ=R*•6H$Õ4/µ·çEG[Ц#×߯Îξž™y5+ëzk«<"ÂgéÒ©©©Â Rç©™êP¨TšââZ:ç͹se„ØØ@‘Hœ,˜1#¢®Pm.¨°nÈTÀDè¦I5ÍKÙ¢>nD„=Rš,ø¸YÇŽxwwïO?]‹‹Äââ®.ERRXZš0%E8®ç˜9dª·«½½ûìÙÒÜ\iNNIuu›““ýï~Igj ±†ËA¢¾>U}}§ÎØ’’úÞ^!ÄÎŽçï請 ~>ãú‡0k…LÆÄ@S˜r¹œÈHz°Ô×2§0¹®.ʼn…GŽäçæJU*õÌ™‘©©Â… ゃ=ÌšE@¦:lypNNIW—‚-NNŒ—Kˆ™žJ¥©­m¨~˜ÇãºëÔ[ìV2Uì¦ô)›—r8œí)L­øü±††Î#Gò33¯æåUr¹œ¹s'/Y’¸`A¬‡‡“¹C³,ÈTG…Z­)*ú­<øüù #¢<øö¬®®nÓhP? `~ÈT`8ØËrÒ³LÙ£¾¾.´‚—楖?…éÈ••5edä‰ÅÅ……5NNö Æ¥§O™5+ŠÏ·3wh ™ê¨ëîîÍË«¤sÞH$Õ|¾Ý´iaÉÉ‘HlîèÆƒõÃRiƒRÙO ÕÓ [ý%»L™* ®¹Yvýz=;…iIICW—‚âåå3.§0!z _±¸X,.’J¼½'Ý{ïÔ´4áÝw‡ÛÛóÌ¥C¦:¦ØòàÜ\iGG¯¯‹H$HMŠDk¡×4:;{èslúZQÑÜÕ¥¤÷úúº~ÚékX˜÷„½\3À¨@¦ ºÚÚº‹ŠjÙ¼ÔঠA'/e©TšsçÊNž,:q¢ ¦¦= Àmñ℉6ÇÌÈ!S5 ò`µZD˃§O·³ÃO*£`õÃÁÁðŠßÀL`¢32…i\\ ÍKÇõ¦#××§ÊÉ)É̼zúôµöönÀ/==qÉ’)ü¾Ã†LÕôzzú._® åÁ5¶II¿•ÇÇáÄËÑe°~¸´´Q¡è#¨2dª ;…©DR£—êLaš4aóR–L¦<~¼àÈ‘ü³gK•Êþ¤¤°ôô)©©ÂÐPÌ 2"ÈTÍ«©IváÂÜ\©X\ÜØØéí=iÆŒ‘H’ëç7ÑGý˜bÀÒ+¢WV¶VT´Ð3)È¿ÀÒaÔdªÖ­¯OõïóK LaJ+xé…yÝ1£ ÕÔ$;|øŠX\tñâM†™;wrjªpþü˜€7s‡f%©ZŽ’’†S§ŠÎœ‘^¼x³·Wê™’"Äצ„úa€ S°jµ¦¬¬‰f¤ôi]]Ç™ÂtäÊË›üQròdQ^^¥ƒƒíüù1))±©©B\„fÔ!Sµ@Jeÿ¥Kåly°½=ï®»î@y°¹ô÷«ëê:tê‡ËÊ{zú!¶¶6n:õÃQQ¾ŽŽ¸Þ8Xdªã•FÔ–þv¤ÔȦ ÁÈKHªÅâ¢ÌÌ|©´ÁÅÅ1-M˜ž>E$àœ±±ƒLÕµ´ÈÏ+ËÍ•ž>}­¾¾ÃËËyæÌH‘H€Ê³Ó9«}%vrë؉3OX1dªãÃ0UUm§0¥WãК§6 ‚Î1“™™êTQee«¯¯ë’%‰¸„¯É SGØ9o²²®É彡¡ž"‘@$Ì;yÒ$|ÎXƒõÃ55íjµ† ~Æ3dªª©IVRR_RÒ ‘TK¥ì…7¼½'Mžì?§0¹þ~uvöõÌÌ«YY×[[å>K—NMMÆÅa§Í”©ŽG*•&/¯B,.ÎÍ•Öp¹œØØÀÔÔXŒ Ë4ŒúáÈH_>õÃ`A©X„ÖVyqqþ¦ÎÎö11 ÁÈK‡­»»÷Ç%§NŸ9#íêR$%…¥¥ SR„˜cÆ\©ŽwmmÝ?ÿ\š›+Íʺ^[Ûîáá4kV=ÐänîèÀƒ`++[é½ú`?__óÆ 2U3èîî-*ª¥'—ÒC¦4/åóí„BLa::ºº'N9’Ÿ›+U©Ô3gF¦¦ -ŠÇž´Ù!Sµ&lypNÎõ®.%[{¶47Wš“SR]Ýæädç¡©©Â´4aHˆ§¹£ƒ¹Ýúazü1À8…L`D覴‚—極µí*•S˜š½„¯X\,I¥ >>“ÒÓ§¦¥ ï¾;ÜÞžgîè`@ÈT'­òà’®.[œœ,ÀY÷V£·WÕÐÐI¿õë‡ííy¡¡^ÑÑ~¨€Û‚Là6 :…iBBòÒ±¦RiÎ+;y²èĉ‚ššö°0¯{îILMÅ3ã2Õ‰I­ÖýV|þü †Ay°u3X?|óf“\ŽúadªÒ™ÂT"©¡y)Ñ›ÂôŽ;¼1µàXëëSåä”df^=}úZ{{·@à—žž¸dÉ\ÂwÜA¦ ==}—/Wœ9#ÍÍ•J$Õ|¾Ý´iaÉÉ‘Hlîè`l¬®ªj£{¤ë‡CB<8Ì„0á SøÆÆN‰¤†'¦¢¢¹«KIññ™íO™FGû……y¹¸8š;؉B&S?^päHþÙ³¥JeRRXzú”ÔT!N|¿©‚¶ªªV𲿿J;:z|}]î¾;<%%6%%ÖÝB›(hý0Í]éÕ«ªZéÙ4„{{žŸŸkHˆ'½0>M_q­«‡L&®–ùµk¦0õôtŽ `ç‰Á¦fÑÔ$;|øŠX\tñâM†™;wrjªpþü˜€7s‡·­®®ã‰'¾R©Ôô_…¢¿­­;0ð?oellÀ¶m«ÍX íòà nªT길 Z<}z¸N>Ÿp†Q?îãìŒúa+L& ¹¼·¸¸Vû)ÍKœìcc0…©…(/oþñGÉÉ“E—/W8:ÚÍŸ“’›š*tsÃã[ròÖ²²&ƒwq8䥗ÿéOi& ,™BÑ÷믿•Ô88Ø&%ýV„BÐ õÃ2U°N==}……¦0ut´‹‹ D^ji$’j±¸(33_*mpqqLK¦§O‰¶æ FÇgŸýôÎ;Gi!Ÿ‡sáÂkAAî¦ Æ…æfÙùó7rs¥bqqcc§·÷¤3"D"AJJ¬Ÿ>Àá7}}ªúúNíܵ¤¤áæÍ&úaš»b®8€q™*X¥²Ÿ=R*•6H$Õ4/µ·çEGc S Eç˜ÉÌÌ‹‹ªªZ}}]—,ILOOÄ%|­R]]Ç]w½©ÿÃårâノ{Á,QÁ¸SRÒpêTÑ™3Ò‹oööªèœ7©©ÂäähÌMúT*Mmm»Nýpyy³L¦$Ô㉖™*Œ?}}ªë×ëÙ¼”ÂÔÆ†áC”&$ ~n˜ù`¬1 #“)‡~‰©þ~uvöõÌÌ«YY×[[å>K—NMMÆÅq¹(Ͳféé¿r¥J£¹åK‡Çã¾ñÆÒ§ž™+*§”ÊþK—ÊÙò`{{Þ]wÝò`"ÔŒ ÈTÁÒ 4…)—ˉŒ¤K}1…©¹ttôlܸÊ”_\hü‘Ýݽ?þ(9uªøÌiW—")),-M˜’"Ä3Ç?ÿùók¯Ô)¶±á\½ú¦§§³¹¢+ÐÒ"?w®,7WzúôµúúOOçßý.R$Üî5ØŠŠj++[ÿû„± ,™~ýpee«TÚ TöBììxþþ®:`££ýq0`ì S…‘ºpáfP{`àèœcÆNa*‘Tkç¥'$ÄC{ S\ßÏì._®|úé]²¨(ŸœœW >¦¥E~üxX\”›+U©Ô3gF¦¦ -ŠÇI‰P[[wbâëjõ2UîŒßÿ¬£+SYÙJ'¼Éʺ&—÷Òò`‘H0wîäAK:?øàøœ¸ÿþiûÛrLE¬ÆÆN©´Q;}e'±ãñ¸îf¬V«58_¬2U¾²²¦ÿþïC§O_ûä“UË—' ¯úƒ%{–){öˆ¯¯ ­à¥yiX˜·‹ α óÑG'>úè$!FC9{öÕðpoö GŽägf^ÍË«´±áΙ½dI₱˜qB[¹rÇÙ³¥l²Êår>øàᇺۼQUR©4yybqqn®´°°†ËåÄÆŠD‚ÔÔØ¤¤; žk°xñGùùÕ<×Ý¿mÛj‘H`ú°a¼0X?\]ÝFOp0X?ì1ê'¹<ðÀ§3gF<óÌ\ì#UB¦ ÃÑÒ"ÿýcûö£çllØ0ïÕW— eŦ&YII}IÉo‡L+*Zºº„//ç˜La:>46v­_ÿÏK—ÊÙy<î+¯Üóì³óËÊš22òÄââÂÂ''û… ãÒÓ§ÌžåèhgÞ˜ÁB8ðëý××lϱµµ),|/±ÖÖÖýóÏ¥¹¹Òììë55íN³fEÑ­l}GGGO\Ü_hçär9 C–-»ówDñ Ý0ꇿ‘\å>"âe…¢ŸÏ·ûÃæ?ýôtW°2ÈTáöÈdÊüãÔÎ9 Ãô÷«éÂyó&ïß¿NÿÁ­­òââ::OŒö¦ÎÎö11¿Maš„¼t9s¦dýúuw÷²ï>!„Ãᄆzº¹ñóó«íçÏY¼8aþü|e‚¹¼7.î/}}*BÇMMûê«'ÍL,lypNÎõ®.%[Ü×§zþùýÚûD<ž§§Ó§Ÿ>ú»ßEš/^°ô,ÝÒ©&„¸ºòéoôlú:Ä:²ÖVy|ükô¶ ×ÖÖfÍšä v¬2U*•J³gÏÙ>8.—÷jŸiFñõu¹rå¿»»{‹Šj1…©µR«5ÿûIíŠß[q–-›zÿýI"Q”./Z»vϱcjµ†Ãá|ñÅã÷Ü“hîˆ`‚R(úΟ¿yæLÉ™3%ׯ7øù¹´´Èµƒ#„ØØp5æ‘Gf¼ùæRÔ†ÀèyýðåË•éé×nÓÆ†kggóÔS¬c?hIDATÉ7¦ ¬2U’ÌÌ«[·©ªjc¢ßg8Nd¤OEE ½$oHˆ'MJ'Oö|£¢|‘ºŒwú¿:x<î›oÞÿijLŒ;ǬY³‹aŸoWTôW\6,AS“,-íý¦¦.ƒ÷òx6ÁÁÛ·?šlâÀ`¢éì쩨 ‰kKEEkeeKeek}}ýòus㇅y…„x†…y†…yUV¶~òÉ)ýïeëèh·v휵kçâô ×©Â ŠŠj_ýÐùó7¸\ŽÎ¡TmË—'ÍžESSüðlerrJ6lø—\Þ«R©z —Ë>=ü‡ž3e`0õöª„Âÿ§PôÝÿ´O>Ymîp!¤ªªuÆŒ·<€Ç³aÍúõó7o^ŒéÐÀô´ÀÒ*⊊™LikkCϧÐÇãqù|û<õ”;f0NÝ’©*Šööv3F¥½½çóÏÏ<(ápˆZmì‘\À½Î’1 ³o߯۶å¨Õ„A~Õ²±áœ>½Ñd禌dõööv…B1ZÁÀmyó͇K¶m{pÆŒ0sÇ2A¹»»;:ÿL6ëûÜÎÈüõ¯'ªÑðöÛ÷ÞÆ4­0Á9::º»hb6ƒ#Ža˜?ÿ93+Kj|Ã!NëÖͺ÷ÞxóÙ€¥ÓÙ»»¥ìJ&“I¥RÓÆªººë‹/®”—wj4 ‡Ãáñ¸jµf ð66Üë×ë‡÷DèuK¡PíÞ-¹x±Îø· K­f¾ÿþçY³‚Æ:0j„™j]]]ssóh·E(tÎʲwuíÅØ7—ØØØ‘dªÖ÷¹}òd¡ö÷\.‡Ã¡×¶gÔê[ŠÏ ë׬Ù÷Ì3Sâã}L'ŒGÞÞÞ#ÌTqååMÆ¿ ml8 ÓÚÚýÁ§Ïž½öØc |>N¸‹f,S¥æÎk¢XÀ²=úè½}}ªÒÒÆÒÒÆë×ë¥ÒÆ¢¢ÚÚÚFÃårììxýýjZÜ߯.*ªÉs¡×Y¦Å‹Sè †aè|BÝÝ}ýýêþ~uOO/!¤³SAéééëëS©Tšà`÷¤¤;Æ:ª¦¦¦âââ‘·ãíí- GÞÜ®äd†ÃñX°`ž¹™ ²³³G¥«ùÜV«57žš4ÉÑÕÕÑÍïååìééìæÆwsã»»óÝÜœ´nóÝÜp¥z¸ EEE£Õ”þˆkkë,±µå©Õj†™4É!)éŽ;ï IHNH•,ÁòÜ»Ã/+`ŒO(  Ù%½½ªÒÒF:ëÌ¥KÒ›7Ûš›»†))æ1U8Ió ÁÈq¹œuëæš; €ßØØp Œ¤ `оŽ… —Ëåô÷«y<›èh¿¤¤°„„ ÄÄÀµ¾`©Âí±·çÅÅÆÅBŠŠÂ!‚ÒÒÆ7š†¡ÅRÆáš4#Q[Ûã?ujHbbHbbðäÉþø\ëƒLFÊÁÁ6>>(>ÞDg'Lp‘‘>§Nm2wc …`Y©€eA¦ –eÜgªUUUO>ùä +++£ûaoh¯~åÊ÷ý÷ß³Ë322ììì Æ"f-aaa=ö˜ñi†Y½zµ³³óÐÛ/++Há7{N×I³ƒv‰îîîM›6%&&Nš4é®»îúÛßþ¦R©è]'**йuêÛÅ‹³Ý€Ãá<øàƒÚ¸­È‡þ`t¼Q7Þ;Þm}ÐYí˜gÍšuõêUS>;FÐ(Âð1¥o¿ý–cˆ)GA½ãn£nüŽ8ãIö󺺺.Y²¤¼¼|ˆÁìfGÊmm“‘oÕÛbâÁ2î3ÕC‡-]ºÔà]7oÞôòò¢·ÝÜÜ^~ùåVŸ:uꫯ¾úüóÏwttB:;;Ÿ}öÙ-[¶ÄÇÇ]äÚ~ùå—úúúšššÝ»wwuuÝyç4ƒêêêöïß?*óIÂðéu£Õ¬‘.!“É’’’.]ºôî»ï^¾|ùÏþóþýûSSSÕj5}@EEE~~>Ûl{{û™3g´ŸèÀß}÷ݨÇcm¼w¼Ûú 3 ío ŠÆ\__/‘H¢¢¢zè!/0|Æšöð¹ï¾ûèÀùå—_!õÿ†)¬'Žñ;âM èóÖÕÕåääh4šÕ«W­þwŠAì ë¶·Ëmb`ÑÒØØ˜••ÅŒ+÷ÜsOOOÁ»JKKu^ þBvõÞÞÞ¸¸¸µk×2 ³~ýúiÓ¦õõõYÔ· „”––²ÿj4šäää×_} Ç|]Coް«éu·û¾iÖx—x饗D"‘J¥b —ËÃÂÂvîÜI×]´hÑ«¯¾ÊÞ»gϞŋ³mBÖ­[çááQ__?ŒÈ‡þà±ëx£ÒgF¥÷šØxïx·õAg:S'æÆÆFBHcc£i‚»”••5ÂWÏmýf1|†²ÓevŃ=¥Q7®Gœ‘¤@çykjj!£5þbdámÆVÉaâ½»Û>¦zøðáÀÀÀöövBÈ7ß|#º»» !ýýý›6mòõõõññÙ´iS?=}úôéììì-[¶„„„x{{?öØcìoúkB233ÂÃÃ÷îÝKQ©TWoiiqrrrttÔ>ðÍÞž1c!ÄÏÏ pdœ]bgg·gÏž]»vmݺu÷îÝ{öì±µµ(ÈQ|iú8Îúõë=:P;Ú¯kˆmžúïƒ>ø¿ÿû¿Ì¿ü8pàÐnðOúÓäÉ“éG°Îsé?ÐË4¸u ã¡ã ´mu×Þàv0øQ?”—ipãs8œýû÷ÇÄÄxxxüÏÿü¹õ[CŸ­­­««+ý÷È‘#S§Nåóùþþþï¼ó‰N› ÃìØ±#66ÖÅÅeþüùGŽ¡a[ýÂðÁðѧý^Ÿ={V-]ºô…^ îííuww§/Óx·9{ö¬Á}!ƒƒt ãz¸Œ¸QqF’ô)h]±~Ó:Ý̈Ƃ‘^=Ð40ý·Cg|éÄfÒÁ2h.«ï±Ç{üñÇ|}}/\¸@¾ûî»Ë—/¯ªª’H$wÞyç+¯¼BóõÅ‹ÿôÓOo¼ñ†P(”H$Ó§O饗ZK.—ÛÛÛïØ±£¾¾þ«¯¾âñxr¹ü½÷Þ3¸ú®]»öîÝËÜúÛ{{Ð…ìê¬W^y…òöÛok/Ó—ÆúqâÒ¥KnnnÆŸÞ;P›Ú!K–,éêêúá‡!---´…´´4©TzþüùÈÈÈ7ÞxÃàBã=Á”¿Z`¯ûðÃ}||ŸßÒÒBným^*•:::îÞ½›¹uPè?ÐËÔߌ:!]Ç3å1Ut¼Ñíx7¼Áí`ðS}(/Ó`w%„<ðÀííí;wî$„´¶¶êÿþ}õêU™L&“ÉjkkŸ}öÙ'Ÿ|’ÞÕÕÕegg÷ÔSOÕÔÔÐ]Ÿ¦¦&ƒmîܹ300ðøñãÍÍÍb±822Òì#ÈdÇT1|&òðÑ"ö_ú^×××ë¢o¿ý6$$D£Ñ0 “‘‘Ðßß?h·illÔï ©‘cªØSˆÓiÓ`RÀ~/tuu•••ÝÿýIIIÌ_ úß):ÝŒ¹õ‹†Å0ŒÁ±`üY Žñ¡¦ÿvhwÌÂÄ{wÃÉTÛÛÛƒ‚‚´ŸròäÉl1¡X,ž2e Q"‘0 }ðàAzoqq1{[­¶¶6[[Û÷ß¿½½]£ÑÈd2µZ=ÐêË—/okkc†›©²«Sæ¾ûî³±±Y½zµöëÓ—Æ ö 4гÓ%µ©’Í0 ­Î/--ÕŽŸa˜ï¾û.22ÒàBÆ(S~þZ`¯{öìaƒùç?ÿIéëë³±±a7ËÁƒéf$„äåå1 Ó××§s›¾ûÚ½qŸ¿çÎóòòb×}î¹çþüç?3 ³oß¾ÔÔTí6Ùü±‹‹KUUÛ£ oðeÜŒ:!]Ç3e¦ŠŽ7êO¿qƒÁÜFvµ¿LƒÝ•B;ûHý½ mÎÎÎÅÅÅô®ÞÞÞk×®ÉårµZ““£ý2uÚŒ‹‹Û¿?Ûæ×_möd²LÃg"ý'bÿ¥ïµÁAÔÝÝíäätñâE†a~øaºA Æ Ý”ÁÎ`°}#™*ö”0â´Û()ÐþR°µµ3gNé¿ †íoúÝŒÑû¢¡†18Œ?‹Á1>h`ß®®³L¹w7ÌóTß|óMí¯:íMìêêJC¤…Ýúíè¯Å0ÌÙ³gxà'''‘Hôã?´ºL&»÷Þ{émí-.•J¼aì íÕ©½{÷ºººæää888:tÈ4/14ؾþúëiÓ¦vöÁÛÔF‘J¥ÚÏE[P(ta~~¾ƒƒƒÁ…ú­i3ñÙ–Öë¯^½ÊÞuåÊBHuuµöf”H$t3j¿Ëú·uz£ñ.áçç'‹uÛ¾}ûÂ… Ùu³³³###5ÍÒ¥K?ÿüsÆÐZ­ž3gý¹‹ö(ƒÁ|™mFmc×ñL|ž*:½=ZO¿qƒÁÜ?ê}™m|BHII‰ö#õ÷*ئº»»_|ñÅ3f°÷fddÌž={Ê”)ôB”ìËÔiÓÑÑ1??Ÿ]‹^ût ´Ý2åyª>ôö>úOÊþËžògp=òÈ#›7o–ËåNNNì0Þm˜ö…ôÛ7’©bOIÛqÌÀIþó²íoúÝÌxƒÇ‚‘ghŒÌàÛ¡3¾´Ý`óTiÛ¶m[JJÊ‹/¾È.ôòòb7t{{ûùóçérZØPQQA—\½zõ¯ýë@k) Fóý÷ß·µµ­Y³&==½­­ÍàêÇ_´h‘v`´L¼¶¶v(¯BgõºººçŸþ½÷ÞKNNÞ²e˺uëZ[[MðÒôcfûöí÷Üsñg§†Ø¦Á«WÓ>D‘J¥´c …–À{]XX˜ö…㊊Š!¾¾¾6667oÞ¤ oܸ8è«ÓïÌÚtºÄªU«Þ|óMöúu„îîîwß}W»…Ù³gËd²³gÏŠÅâ.¾ÇårwïÞýóÏ?ñÅt‰Áà ¾L2XϤÐñÐñ†Ò¸ÁàÚŒä6?ê©Þ2.w¨_‚|>ÿ‰'ž(**¢ßÍ …bÅŠ›6mÊËËûì³Ï´©Ófhh(;j!×®]3’¶ñ>‚0|0| ¢ïõ@ƒhåÊ•8|øð´iÓ¢¢¢ŒÇÀ6¥ßŒ RƒÆûp#q£7âŒ$b»­édôÇÂPžEgŒºŠ‘·c ³sM:XÍeu¨Õê”””·Þz«­­ÍÏÏïðáÃtùóÏ?ÿÀЋ>OŸ>ýøƒv¾¾eË–„„„‚‚‚‚‚‚Y³f=óÌ3­¥P(8ÐÜÜüÅ_888( ƒ«¯^½º¶¶–¶CçPúꫯ:;;—-[F´~Z ÕÞú¿7h¯®Ñh–,Y2gÎZ:Û××—°råJ¼4ºÓÃ^h;;;û¾ûî êèèʳÔæÎ;ÙˆÞïR´…yóæ•––^¼x1**êõ×_7¸Ðxg0Ù/…–Ùë>þøcŸC‡Õ××;v,<<œ>õ#<²`Á‚›7o…BºõßíÛÚÍ2ƒu‰ÎÎÎèèè9sæ;vL*•Íáp É4#È4ÇT1|&øð¡tŽ)iÿ;Ð ¢‰ŠŠÒ®ƾÁöµ×žƒghÄO t¾XFú›ÁïýÑ­>F,ïÕÇøPÓ;tF®÷în;Sýä“Oéáàÿû¿ÿó÷÷§%ã]]]O>ù¤»»»§§çÚµk»»»µ_¤R©|饗\]]W®\ÙÞÞN—ë¯Å0Ìwß}agg7yò䌌 ƒ«÷õõýþ÷¿×ìí·ßvss‹ˆˆÈÈÈ ÏÛßß?{ölgggF/SÕY}Ïž=öööl Ã0/^är¹ë—ÆÜZ¡¼jÕ*í}ãÏn¤M#£¶ðå—_†††zyymܸQ¡P\h¼3˜ìó×2{J¥zï½÷"##œœfΜI§d¦­­íÑGõôôô÷÷ÿÓŸþÄþ1Ð;R\\¬Ó™w †aärù‹/¾Ççó…BáÛo¿Í^ žm<;;›òé§Ÿê,×ùÕh4©©©ìFÓ~ —ip3š¦ã™,SEÇÝŽg¤qýàÚŒúõÆ_&½=Äîªý­Áè µZíââR^^NÿýðÃ=<<‚ƒƒ?û쳕+WúøølS­VôÑG®®®‹-ÊÈÈðöözHÚ·Gk™&SÅð™àÇ2’©2 "†aÖ®]ëìì¬}—áí é·¯½ö”Œ8C#ÎxR ó½ M¿¿ùN18ºYl›úcÁx¯68Æ LÿíÐ_¦,û9G{555Ï;×àV«QVV¥3< .4ŽVqŒp"oôº‰c´:Þ¨ô™Q齃:räHpppbb"ý÷‡~xûí·éÉZ·k´FPvvvll¬Ï0b ð¹ V{JC4¦{wÃ<Ç%‘HV¯^——×ÓÓsþüù×^{íé§Ÿ6wPãÏÜ€¸¸¸¬[·n( F:L@›7oîééYºtisssxxøSO=5ì`2nC4¦ƒÕ¿0|¨i³@õ/ÀH úÀd°§0D¨þ€q™*Xdª`Y©€eA¦ –ÅÀ,5uuu¦Æ#¥Réàà0*M¡×ÁÐÉåòQiG©T¢ã †À °§0D÷î dªR©tìƒ+1ZŸ¿èu`z2™L&“™; €ñ ŸÛC=%€a»e>U³Ãyª`Y©€eA¦ –™*X–ÿõϹÁFžIEND®B`‚XQilla-2.3.0/docs/simple-api/classAutoVariableStoreReset-members.html0000644000151400015140000000635711653571063022577 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

AutoVariableStoreReset Member List

This is the complete list of members for AutoVariableStoreReset, including all inherited members.
_oldVarStoreAutoVariableStoreReset [protected]
AutoVariableStoreReset(DynamicContext *context, const VariableStore *store=0)AutoVariableStoreReset [inline]
context_AutoVariableStoreReset [protected]
reset()AutoVariableStoreReset [inline]
~AutoVariableStoreReset()AutoVariableStoreReset [inline]
XQilla-2.3.0/docs/simple-api/inherit_graph_29.map0000644000151400015140000000026511653571064016462 00000000000000 XQilla-2.3.0/docs/simple-api/XMLFormatter_8hpp_source.html0000644000151400015140000011600111653571063020352 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

XMLFormatter.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: XMLFormatter.hpp 698579 2008-09-24 14:13:08Z borisk $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_XMLFORMATTER_HPP)
00023 #define XERCESC_INCLUDE_GUARD_XMLFORMATTER_HPP
00024 
00025 #include <xercesc/util/PlatformUtils.hpp>
00026 
00027 XERCES_CPP_NAMESPACE_BEGIN
00028 
00029 class XMLFormatTarget;
00030 class XMLTranscoder;
00031 
00041 class XMLPARSER_EXPORT XMLFormatter : public XMemory
00042 {
00043 public:
00044     // -----------------------------------------------------------------------
00045     //  Class types
00046     // -----------------------------------------------------------------------
00124     enum EscapeFlags
00125     {
00126         NoEscapes
00127         , StdEscapes
00128         , AttrEscapes
00129         , CharEscapes
00130 
00131         // Special values, don't use directly
00132         , EscapeFlags_Count
00133         , DefaultEscape     = 999
00134     };
00135 
00152     enum UnRepFlags
00153     {
00154         UnRep_Fail
00155         , UnRep_CharRef
00156         , UnRep_Replace
00157 
00158         , DefaultUnRep      = 999
00159     };
00161 
00162 
00163     // -----------------------------------------------------------------------
00164     //  Constructors and Destructor
00165     // -----------------------------------------------------------------------
00177     XMLFormatter
00178     (
00179         const   XMLCh* const            outEncoding
00180         , const XMLCh* const            docVersion
00181         ,       XMLFormatTarget* const  target
00182         , const EscapeFlags             escapeFlags = NoEscapes
00183         , const UnRepFlags              unrepFlags = UnRep_Fail
00184         ,       MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
00185     );
00186 
00187     XMLFormatter
00188     (
00189         const   char* const             outEncoding
00190         , const char* const             docVersion
00191         ,       XMLFormatTarget* const  target
00192         , const EscapeFlags             escapeFlags = NoEscapes
00193         , const UnRepFlags              unrepFlags = UnRep_Fail
00194         ,       MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
00195     );
00196 
00197     XMLFormatter
00198     (
00199         const   XMLCh* const            outEncoding
00200         ,       XMLFormatTarget* const  target
00201         , const EscapeFlags             escapeFlags = NoEscapes
00202         , const UnRepFlags              unrepFlags = UnRep_Fail
00203         ,       MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
00204     );
00205 
00206     XMLFormatter
00207     (
00208         const   char* const             outEncoding
00209         ,       XMLFormatTarget* const  target
00210         , const EscapeFlags             escapeFlags = NoEscapes
00211         , const UnRepFlags              unrepFlags = UnRep_Fail
00212         ,       MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
00213     );
00214 
00215     ~XMLFormatter();
00217 
00218 
00219     // -----------------------------------------------------------------------
00220     //  Formatting methods
00221     // -----------------------------------------------------------------------
00231     void formatBuf
00232     (
00233         const   XMLCh* const    toFormat
00234         , const XMLSize_t       count
00235         , const EscapeFlags     escapeFlags = DefaultEscape
00236         , const UnRepFlags      unrepFlags = DefaultUnRep
00237     );
00238 
00242     XMLFormatter& operator<<
00243     (
00244         const   XMLCh* const    toFormat
00245     );
00246 
00247     XMLFormatter& operator<<
00248     (
00249         const   XMLCh           toFormat
00250     );
00251 
00252     void writeBOM(const XMLByte* const toFormat
00253                 , const XMLSize_t      count);
00254 
00256 
00257     // -----------------------------------------------------------------------
00258     //  Getter methods
00259     // -----------------------------------------------------------------------
00266     const XMLCh* getEncodingName() const;
00267 
00271     inline const XMLTranscoder*   getTranscoder() const;
00272 
00276     inline XMLTranscoder*   getTranscoder();
00277 
00279 
00280     // -----------------------------------------------------------------------
00281     //  Setter methods
00282     // -----------------------------------------------------------------------
00288     void setEscapeFlags
00289     (
00290         const   EscapeFlags     newFlags
00291     );
00292 
00296     void setUnRepFlags
00297     (
00298         const   UnRepFlags      newFlags
00299     );
00300 
00305     XMLFormatter& operator<<
00306     (
00307         const   EscapeFlags     newFlags
00308     );
00309 
00314     XMLFormatter& operator<<
00315     (
00316         const   UnRepFlags      newFlags
00317     );
00319 
00320     // -----------------------------------------------------------------------
00321     //  Getter methods
00322     // -----------------------------------------------------------------------
00328     EscapeFlags getEscapeFlags() const;
00329 
00333     UnRepFlags getUnRepFlags() const;
00335 
00336 private :
00337     // -----------------------------------------------------------------------
00338     //  Unimplemented constructors and operators
00339     // -----------------------------------------------------------------------
00340     XMLFormatter();
00341     XMLFormatter(const XMLFormatter&);
00342     XMLFormatter& operator=(const XMLFormatter&);
00343 
00344 
00345     // -----------------------------------------------------------------------
00346     //  Private class constants
00347     // -----------------------------------------------------------------------
00348     enum Constants
00349     {
00350         kTmpBufSize     = 16 * 1024
00351     };
00352 
00353 
00354     // -----------------------------------------------------------------------
00355     //  Private helper methods
00356     // -----------------------------------------------------------------------
00357     const XMLByte* getCharRef(XMLSize_t     &count,
00358                               XMLByte*      &ref,
00359                               const XMLCh *  stdRef);
00360 
00361     void writeCharRef(const XMLCh &toWrite);
00362     void writeCharRef(XMLSize_t toWrite);
00363 
00364     bool inEscapeList(const XMLFormatter::EscapeFlags escStyle
00365                     , const XMLCh                     toCheck);
00366 
00367 
00368     XMLSize_t handleUnEscapedChars(const XMLCh *      srcPtr,
00369                                    const XMLSize_t    count,
00370                                    const UnRepFlags   unrepFlags);
00371 
00372     void specialFormat
00373     (
00374         const   XMLCh* const    toFormat
00375         , const XMLSize_t       count
00376         , const EscapeFlags     escapeFlags
00377     );
00378 
00379 
00380     // -----------------------------------------------------------------------
00381     //  Private, non-virtual methods
00382     //
00383     //  fEscapeFlags
00384     //      The escape flags we were told to use in formatting. These are
00385     //      defaults set in the ctor, which can be overridden on a particular
00386     //      call.
00387     //
00388     //  fOutEncoding
00389     //      This the name of the output encoding. Saved mainly for meaningful
00390     //      error messages.
00391     //
00392     //  fTarget
00393     //      This is the target object for the formatting operation.
00394     //
00395     //  fUnRepFlags
00396     //      The unrepresentable flags that indicate how to react when a
00397     //      character cannot be represented in the target encoding.
00398     //
00399     //  fXCoder
00400     //      This the transcoder that we will use. It is created using the
00401     //      encoding name we were told to use.
00402     //
00403     //  fTmpBuf
00404     //      An output buffer that we use to transcode chars into before we
00405     //      send them off to be output.
00406     //
00407     //  fAposRef
00408     //  fAmpRef
00409     //  fGTRef
00410     //  fLTRef
00411     //  fQuoteRef
00412     //      These are character refs for the standard char refs, in the
00413     //      output encoding. They are faulted in as required, by transcoding
00414     //      them from fixed Unicode versions.
00415     //
00416     //  fIsXML11
00417     //      for performance reason, we do not store the actual version string
00418     //      and do the string comparison again and again.
00419     //
00420     // -----------------------------------------------------------------------
00421     EscapeFlags                 fEscapeFlags;
00422     XMLCh*                      fOutEncoding;
00423     XMLFormatTarget*            fTarget;
00424     UnRepFlags                  fUnRepFlags;
00425     XMLTranscoder*              fXCoder;
00426     XMLByte                     fTmpBuf[kTmpBufSize + 4];
00427     XMLByte*                    fAposRef;
00428     XMLSize_t                   fAposLen;
00429     XMLByte*                    fAmpRef;
00430     XMLSize_t                   fAmpLen;
00431     XMLByte*                    fGTRef;
00432     XMLSize_t                   fGTLen;
00433     XMLByte*                    fLTRef;
00434     XMLSize_t                   fLTLen;
00435     XMLByte*                    fQuoteRef;
00436     XMLSize_t                   fQuoteLen;
00437     bool                        fIsXML11;
00438     MemoryManager*              fMemoryManager;
00439 };
00440 
00441 
00442 class XMLPARSER_EXPORT XMLFormatTarget : public XMemory
00443 {
00444 public:
00445     // -----------------------------------------------------------------------
00446     //  Constructors and Destructor
00447     // -----------------------------------------------------------------------
00448     virtual ~XMLFormatTarget() {}
00449 
00450 
00451     // -----------------------------------------------------------------------
00452     //  Virtual interface
00453     // -----------------------------------------------------------------------
00454     virtual void writeChars
00455     (
00456           const XMLByte* const      toWrite
00457         , const XMLSize_t           count
00458         ,       XMLFormatter* const formatter
00459     ) = 0;
00460 
00461     virtual void flush() {};
00462 
00463 
00464 protected :
00465     // -----------------------------------------------------------------------
00466     //  Hidden constructors and operators
00467     // -----------------------------------------------------------------------
00468     XMLFormatTarget() {};
00469 
00470 private:
00471     // -----------------------------------------------------------------------
00472     //  Unimplemented constructors and operators
00473     // -----------------------------------------------------------------------
00474     XMLFormatTarget(const XMLFormatTarget&);
00475     XMLFormatTarget& operator=(const XMLFormatTarget&);
00476 };
00477 
00478 
00479 // ---------------------------------------------------------------------------
00480 //  XMLFormatter: Getter methods
00481 // ---------------------------------------------------------------------------
00482 inline const XMLCh* XMLFormatter::getEncodingName() const
00483 {
00484     return fOutEncoding;
00485 }
00486 
00487 inline const XMLTranscoder* XMLFormatter::getTranscoder() const
00488 {
00489     return fXCoder;
00490 }
00491 
00492 inline XMLTranscoder* XMLFormatter::getTranscoder()
00493 {
00494     return fXCoder;
00495 }
00496 
00497 // ---------------------------------------------------------------------------
00498 //  XMLFormatter: Setter methods
00499 // ---------------------------------------------------------------------------
00500 inline void XMLFormatter::setEscapeFlags(const EscapeFlags newFlags)
00501 {
00502     fEscapeFlags = newFlags;
00503 }
00504 
00505 inline void XMLFormatter::setUnRepFlags(const UnRepFlags newFlags)
00506 {
00507     fUnRepFlags = newFlags;
00508 }
00509 
00510 
00511 inline XMLFormatter& XMLFormatter::operator<<(const EscapeFlags newFlags)
00512 {
00513     fEscapeFlags = newFlags;
00514     return *this;
00515 }
00516 
00517 inline XMLFormatter& XMLFormatter::operator<<(const UnRepFlags newFlags)
00518 {
00519     fUnRepFlags = newFlags;
00520     return *this;
00521 }
00522 
00523 // ---------------------------------------------------------------------------
00524 //  XMLFormatter: Getter methods
00525 // ---------------------------------------------------------------------------
00526 inline XMLFormatter::EscapeFlags XMLFormatter::getEscapeFlags() const
00527 {
00528     return fEscapeFlags;
00529 }
00530 
00531 inline XMLFormatter::UnRepFlags XMLFormatter::getUnRepFlags() const
00532 {
00533     return fUnRepFlags;
00534 }
00535 
00536 XERCES_CPP_NAMESPACE_END
00537 
00538 #endif
XQilla-2.3.0/docs/simple-api/classxercesc_1_1XMLDeleter.html0000644000151400015140000001037311653571063020524 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

xercesc::XMLDeleter Class Reference

#include <PlatformUtils.hpp>

List of all members.

Public Member Functions

virtual ~XMLDeleter ()

Protected Member Functions

 XMLDeleter ()

Constructor & Destructor Documentation

xercesc::XMLDeleter::~XMLDeleter ( ) [inline, virtual]
xercesc::XMLDeleter::XMLDeleter ( ) [inline, protected]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classDynamicContext-members.html0000644000151400015140000011200311653571063021114 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

DynamicContext Member List

This is the complete list of members for DynamicContext, including all inherited members.
addCollation(Collation *collation)=0StaticContext [pure virtual]
addCustomFunction(FuncFactory *func)=0StaticContext [pure virtual]
addExternalFunction(const ExternalFunction *func)=0StaticContext [pure virtual]
addSchemaLocation(const XMLCh *uri, VectorOfStrings *locations, const LocationInfo *location=0)=0StaticContext [pure virtual]
addTemplate(XQUserFunction *tp)=0StaticContext [pure virtual]
allocateTempVarName(const XMLCh *prefix=0)=0StaticContext [pure virtual]
CASE_INSENSITIVE enum valueStaticContext
CASE_SENSITIVE enum valueStaticContext
clearDynamicContext()=0DynamicContext [pure virtual]
CONSTRUCTION_MODE_PRESERVE enum valueStaticContext
CONSTRUCTION_MODE_STRIP enum valueStaticContext
ConstructionMode enum nameStaticContext
createDebugQueryContext(const Item::Ptr &contextItem, size_t contextPosition, size_t contextSize, const VariableStore *variables, const xercesc::DOMXPathNSResolver *nsResolver, const XMLCh *defaultElementNS, xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager) const =0StaticContext [pure virtual]
createDynamicContext(xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager) const =0StaticContext [pure virtual]
createModuleContext(xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager) const =0StaticContext [pure virtual]
createModuleDynamicContext(const DynamicContext *moduleCtx, xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager) const =0DynamicContext [pure virtual]
createSequenceBuilder() const =0DynamicContext [pure virtual]
createUpdateFactory() const =0DynamicContext [pure virtual]
FLWOR_ORDER_EMPTY_GREATEST enum valueStaticContext
FLWOR_ORDER_EMPTY_LEAST enum valueStaticContext
FLWOROrderingMode enum nameStaticContext
FTCaseOption enum nameStaticContext
getBaseURI() const =0StaticContext [pure virtual]
getCollation(const XMLCh *const URI, const LocationInfo *location=0) const =0StaticContext [pure virtual]
getConfiguration() const =0StaticContext [pure virtual]
getConstructionMode() const =0StaticContext [pure virtual]
getContextItem() const =0DynamicContext [pure virtual]
getContextItemType() const =0StaticContext [pure virtual]
getContextPosition() const =0DynamicContext [pure virtual]
getContextSize() const =0DynamicContext [pure virtual]
getCurrentTime() const =0DynamicContext [pure virtual]
getDebugListener() const =0DynamicContext [pure virtual]
getDefaultCollation(const LocationInfo *location=0) const =0StaticContext [pure virtual]
getDefaultElementAndTypeNS() const =0StaticContext [pure virtual]
getDefaultFLWOROrderingMode() const =0StaticContext [pure virtual]
getDefaultFuncNS() const =0StaticContext [pure virtual]
getDefaultURIResolver() const =0DynamicContext [pure virtual]
getDocumentCache() const =0StaticContext [pure virtual]
getDoLintWarnings() const =0StaticContext [pure virtual]
getExternalFunctionResolver() const =0StaticContext [pure virtual]
getFTCase()=0StaticContext [pure virtual]
getGlobalVariableStore() const =0DynamicContext [pure virtual]
getImplicitTimezone() const =0DynamicContext [pure virtual]
getInheritNamespaces() const =0StaticContext [pure virtual]
getItemFactory() const =0StaticContext [pure virtual]
getLanguage() const =0StaticContext [pure virtual]
getMemoryManager() const =0StaticContext [pure virtual]
getMessageListener() const =0StaticContext [pure virtual]
getModule() const =0StaticContext [pure virtual]
getModuleResolver() const =0StaticContext [pure virtual]
getNodeSetOrdering() const =0StaticContext [pure virtual]
getNSResolver() const =0StaticContext [pure virtual]
getPrefixBoundToUri(const XMLCh *uri) const =0StaticContext [pure virtual]
getPreserveBoundarySpace() const =0StaticContext [pure virtual]
getPreserveNamespaces() const =0StaticContext [pure virtual]
getProjection() const =0StaticContext [pure virtual]
getRegexGroupStore() const =0DynamicContext [pure virtual]
getRevalidationMode() const =0StaticContext [pure virtual]
getStackFrame() const =0DynamicContext [pure virtual]
getTemplateRules() const =0StaticContext [pure virtual]
getUriBoundToPrefix(const XMLCh *prefix, const LocationInfo *location=0) const =0StaticContext [pure virtual]
getVariableStore() const =0DynamicContext [pure virtual]
getVariableTypeStore()=0StaticContext [pure virtual]
getXMLEntityResolver() const =0StaticContext [pure virtual]
getXPath1CompatibilityMode() const =0StaticContext [pure virtual]
isTypeOrDerivedFromType(const XMLCh *const uri, const XMLCh *const typeName, const XMLCh *const uriToCheck, const XMLCh *const typeNameToCheck) const =0StaticContext [pure virtual]
lookUpExternalFunction(const XMLCh *uri, const XMLCh *name, size_t numArgs) const =0StaticContext [pure virtual]
lookUpFunction(const XMLCh *uri, const XMLCh *name, const VectorOfASTNodes &v, const LocationInfo *location=0) const =0StaticContext [pure virtual]
lookUpNamedTemplate(const XMLCh *uri, const XMLCh *name) const =0StaticContext [pure virtual]
LOWERCASE enum valueStaticContext
NodeSetOrdering enum nameStaticContext
NONE enum valueStaticContext
operator delete(void *p)xercesc::XMemory
operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
operator delete(void *p, void *ptr)xercesc::XMemory
operator new(size_t size)xercesc::XMemory
operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
operator new(size_t size, void *ptr)xercesc::XMemory
ORDERING_ORDERED enum valueStaticContext
ORDERING_UNORDERED enum valueStaticContext
parseDocument(xercesc::InputSource &srcToUse, const LocationInfo *location=0, const QueryPathNode *projection=0)=0DynamicContext [pure virtual]
putDocument(const Node::Ptr &document, const XMLCh *uri)=0DynamicContext [pure virtual]
registerURIResolver(URIResolver *resolver, bool adopt)=0DynamicContext [pure virtual]
removeCustomFunction(FuncFactory *func)=0StaticContext [pure virtual]
resolveCollection(const XMLCh *uri, const LocationInfo *location=0, const QueryPathNode *projection=0)=0DynamicContext [pure virtual]
resolveDefaultCollection(const QueryPathNode *projection=0)=0DynamicContext [pure virtual]
resolveDocument(const XMLCh *uri, const LocationInfo *location=0, const QueryPathNode *projection=0)=0DynamicContext [pure virtual]
resolveModuleURI(const XMLCh *uri) const =0StaticContext [pure virtual]
setBaseURI(const XMLCh *newURI)=0StaticContext [pure virtual]
setConstructionMode(ConstructionMode newMode)=0StaticContext [pure virtual]
setContextItem(const Item::Ptr &item)=0DynamicContext [pure virtual]
setContextItemType(const StaticType &st)=0StaticContext [pure virtual]
setContextPosition(size_t pos)=0DynamicContext [pure virtual]
setContextSize(size_t size)=0DynamicContext [pure virtual]
setCurrentTime(time_t newTime)=0DynamicContext [pure virtual]
setDebugListener(DebugListener *listener)=0DynamicContext [pure virtual]
setDefaultCollation(const XMLCh *const URI)=0StaticContext [pure virtual]
setDefaultElementAndTypeNS(const XMLCh *newNS)=0StaticContext [pure virtual]
setDefaultFLWOROrderingMode(FLWOROrderingMode newMode)=0StaticContext [pure virtual]
setDefaultFuncNS(const XMLCh *newNS)=0StaticContext [pure virtual]
setDefaultURIResolver(URIResolver *resolver, bool adopt)=0DynamicContext [pure virtual]
setDocumentCache(DocumentCache *docCache)=0StaticContext [pure virtual]
setDoLintWarnings(bool enabled)=0StaticContext [pure virtual]
setExternalFunctionResolver(ExternalFunctionResolver *resolver)=0StaticContext [pure virtual]
setExternalVariable(const XMLCh *namespaceURI, const XMLCh *name, const Result &value)=0DynamicContext [pure virtual]
setExternalVariable(const XMLCh *qname, const Result &value)=0DynamicContext [pure virtual]
setFTCase(FTCaseOption option)=0StaticContext [pure virtual]
setGlobalVariableStore(const VariableStore *store)=0DynamicContext [pure virtual]
setImplicitTimezone(const ATDurationOrDerived::Ptr &timezoneAsDuration)=0DynamicContext [pure virtual]
setInheritNamespaces(bool value)=0StaticContext [pure virtual]
setItemFactory(ItemFactory *factory)=0StaticContext [pure virtual]
setMemoryManager(XPath2MemoryManager *memMgr)=0StaticContext [pure virtual]
setMessageListener(MessageListener *listener)=0StaticContext [pure virtual]
setModule(XQQuery *module)=0StaticContext [pure virtual]
setModuleResolver(ModuleResolver *resolver)=0StaticContext [pure virtual]
setNamespaceBinding(const XMLCh *prefix, const XMLCh *uri)=0StaticContext [pure virtual]
setNodeSetOrdering(NodeSetOrdering newOrder)=0StaticContext [pure virtual]
setNSResolver(const xercesc::DOMXPathNSResolver *resolver)=0StaticContext [pure virtual]
setPreserveBoundarySpace(bool value)=0StaticContext [pure virtual]
setPreserveNamespaces(bool value)=0StaticContext [pure virtual]
setProjection(bool enabled)=0StaticContext [pure virtual]
setRegexGroupStore(const RegexGroupStore *store)=0DynamicContext [pure virtual]
setRevalidationMode(DocumentCache::ValidationMode mode)=0StaticContext [pure virtual]
setStackFrame(const StackFrame *frame)=0DynamicContext [pure virtual]
setVariableStore(const VariableStore *store)=0DynamicContext [pure virtual]
setXMLEntityResolver(xercesc::XMLEntityResolver *const handler)=0StaticContext [pure virtual]
setXPath1CompatibilityMode(bool newMode)=0StaticContext [pure virtual]
testInterrupt() const =0DynamicContext [pure virtual]
UPPERCASE enum valueStaticContext
XMemory()xercesc::XMemory [inline, protected]
~DynamicContext()DynamicContext [inline, virtual]
~StaticContext()StaticContext [inline, virtual]
XQilla-2.3.0/docs/simple-api/ATAnySimpleType_8hpp_source.html0000644000151400015140000001755611653571063021035 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATAnySimpleType.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _ATANYSIMPLETYPE_HPP
00021 #define _ATANYSIMPLETYPE_HPP
00022 
00023 #include <xercesc/util/XercesDefs.hpp>
00024 #include <xqilla/framework/XQillaExport.hpp>
00025 #include <xqilla/items/AnyAtomicType.hpp>
00026 
00027 class DynamicContext;
00028 
00033 class XQILLA_API ATAnySimpleType : public AnyAtomicType
00034 {
00035 
00036 public:
00037   /* Get the name of the primitive type (basic type) of this type
00038    * (ie "decimal" for xs:decimal) */
00039   virtual const XMLCh* getPrimitiveTypeName() const = 0;
00040 
00041   /* Get the namespace URI for this type */
00042   virtual const XMLCh* getTypeURI() const = 0;
00043 
00044   /* Get the name of this type  (ie "integer" for xs:integer) */
00045   virtual const XMLCh* getTypeName() const = 0;
00046 
00047   /* returns the XMLCh* (canonical) representation of this type */
00048   virtual const XMLCh* asString(const DynamicContext* context) const = 0;
00049 
00050   /* returns true if the two objects' URI are equal (string comparison)
00051    * false otherwise */
00052   virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0;
00053 
00054   virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0;
00055 };
00056 
00057 #endif //  _ATANYSIMPLETYPE_HPP
XQilla-2.3.0/docs/simple-api/classDateOrTimeType__inherit__graph.md50000644000151400015140000000004011653571063022311 000000000000003dd38bfc3f4e81750777e04dcb3aa5f9XQilla-2.3.0/docs/simple-api/classxercesc_1_1XMLFormatTarget__inherit__graph.md50000644000151400015140000000004011653571064024450 000000000000008e19f6ac9fc81829b367db9ef4654deaXQilla-2.3.0/docs/simple-api/classxercesc_1_1XMemory__inherit__graph.md50000644000151400015140000000004011653571063023067 0000000000000083920df8c63e82344c4321f752f05875XQilla-2.3.0/docs/simple-api/classItemFactory-members.html0000644000151400015140000004452211653571063020423 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ItemFactory Member List

This is the complete list of members for ItemFactory, including all inherited members.
createAnyURI(const XMLCh *value, const DynamicContext *context)=0ItemFactory [pure virtual]
createBoolean(bool value, const DynamicContext *context)=0ItemFactory [pure virtual]
createBoolean(BoolResult value, const DynamicContext *context)=0ItemFactory [pure virtual]
createBoolean(const XMLCh *value, const DynamicContext *context)=0ItemFactory [pure virtual]
createBooleanOrDerived(const XMLCh *typeURI, const XMLCh *typeName, bool value, const DynamicContext *context)=0ItemFactory [pure virtual]
createBooleanOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0ItemFactory [pure virtual]
createDate(const XMLCh *value, const DynamicContext *context)=0ItemFactory [pure virtual]
createDateOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0ItemFactory [pure virtual]
createDateTime(const XMLCh *value, const DynamicContext *context)=0ItemFactory [pure virtual]
createDateTimeOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0ItemFactory [pure virtual]
createDayTimeDuration(const XMLCh *value, const DynamicContext *context)=0ItemFactory [pure virtual]
createDayTimeDuration(const MAPM &seconds, const DynamicContext *context)=0ItemFactory [pure virtual]
createDecimal(const MAPM value, const DynamicContext *context)=0ItemFactory [pure virtual]
createDecimal(const XMLCh *value, const DynamicContext *context)=0ItemFactory [pure virtual]
createDecimalOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const MAPM value, const DynamicContext *context)=0ItemFactory [pure virtual]
createDecimalOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0ItemFactory [pure virtual]
createDerivedFromAtomicType(AnyAtomicType::AtomicObjectType typeIndex, const XMLCh *value, const DynamicContext *context)=0ItemFactory [pure virtual]
createDerivedFromAtomicType(AnyAtomicType::AtomicObjectType typeIndex, const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0ItemFactory [pure virtual]
createDerivedFromAtomicType(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0ItemFactory [pure virtual]
createDouble(const MAPM value, const DynamicContext *context)=0ItemFactory [pure virtual]
createDouble(const XMLCh *value, const DynamicContext *context)=0ItemFactory [pure virtual]
createDoubleOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const MAPM value, const DynamicContext *context)=0ItemFactory [pure virtual]
createDoubleOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0ItemFactory [pure virtual]
createFloat(const MAPM value, const DynamicContext *context)=0ItemFactory [pure virtual]
createFloat(const XMLCh *value, const DynamicContext *context)=0ItemFactory [pure virtual]
createFloatOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const MAPM value, const DynamicContext *context)=0ItemFactory [pure virtual]
createFloatOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0ItemFactory [pure virtual]
createGDayOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0ItemFactory [pure virtual]
createGMonthDayOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0ItemFactory [pure virtual]
createGMonthOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0ItemFactory [pure virtual]
createGYearMonthOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0ItemFactory [pure virtual]
createGYearOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0ItemFactory [pure virtual]
createInteger(const int value, const DynamicContext *context)=0ItemFactory [pure virtual]
createInteger(const MAPM value, const DynamicContext *context)=0ItemFactory [pure virtual]
createInteger(const XMLCh *value, const DynamicContext *context)=0ItemFactory [pure virtual]
createNonNegativeInteger(const MAPM value, const DynamicContext *context)=0ItemFactory [pure virtual]
createQName(const XMLCh *uri, const XMLCh *prefix, const XMLCh *name, const DynamicContext *context)=0ItemFactory [pure virtual]
createQNameOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *uri, const XMLCh *prefix, const XMLCh *name, const DynamicContext *context)=0ItemFactory [pure virtual]
createString(const XMLCh *value, const DynamicContext *context)=0ItemFactory [pure virtual]
createStringOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0ItemFactory [pure virtual]
createTime(const XMLCh *value, const DynamicContext *context)=0ItemFactory [pure virtual]
createTimeOrDerived(const XMLCh *typeURI, const XMLCh *typeName, const XMLCh *value, const DynamicContext *context)=0ItemFactory [pure virtual]
createUntypedAtomic(const XMLCh *value, const DynamicContext *context)=0ItemFactory [pure virtual]
createYearMonthDuration(const XMLCh *value, const DynamicContext *context)=0ItemFactory [pure virtual]
createYearMonthDuration(const MAPM &months, const DynamicContext *context)=0ItemFactory [pure virtual]
getPrimitiveTypeIndex(const XMLCh *typeURI, const XMLCh *typeName, bool &isPrimitive) const =0ItemFactory [pure virtual]
getPrimitiveTypeName(AnyAtomicType::AtomicObjectType type, const XMLCh *&typeURI, const XMLCh *&typeName) const =0ItemFactory [pure virtual]
operator delete(void *p)xercesc::XMemory
operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
operator delete(void *p, void *ptr)xercesc::XMemory
operator new(size_t size)xercesc::XMemory
operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
operator new(size_t size, void *ptr)xercesc::XMemory
XMemory()xercesc::XMemory [inline, protected]
~ItemFactory()ItemFactory [inline, virtual]
XQilla-2.3.0/docs/simple-api/ATBooleanOrDerived_8hpp__incl.png0000644000151400015140000002341111653571064021045 00000000000000‰PNG  IHDR£uõ$bKGDÿÿÿ ½§“ IDATxœíÝyX×Úð6‰²dQAA”ÝZ[Ù€VÐâZÛ Úkõ»–R[—§öVz[Û{«Wq…V­Pq´XQ‚ÖZŠ,¢©"‘Ű–$óý1½sÇd"„l¼¿¿Â!sæ™7ó&“9'4 ô”ŽªÀ‚Jh3¨ô€6ƒJh3†ª`XvíÚuýúuUGTé“O> Pu¨/¨ô@³UTT”••¹¹¹©: k×®Uu¨5¨ô@ã¹¹¹íرCÕQÕ(((Pu¨;øžÐfPém•ÐfPém•Ðfpï=E¾ÿþûÔÔÔµk×.[¶ oÉÏÏßµk—ä3>L»Åd2}}}7mÚdbb"ÿêž>}ºbÅ ‡3̰q½½½iiiEEE\.wÒ¤I~~~o¾ù&N{ZPPñØÒÒÒÃÃcýúõr†=ü€){ :qâ„Í» Tz0Z`–ŸŸÏb±8Qé_ýõ3gÎ „¸\î† ðÇ¡qãÆ!„öíÛgee…aXKKËÞ½{¿ýöÛíÛ·«$øžžžõë×›šš&$$X[[?zôèèÑ£ÅÅÅ{öìÑÑ¿2‡‡-‰ž}ZžµÇÇÇ+:v€ŠA¥£E~~¾‡‡‡Ï¤I“òóó_vq:njjŠ?îêêJNNŽŽŽŽ=pà@¿´F‚@ HIIY´hÑ¢E‹RRRBè·ß~[»vmXXØâÅ‹øáü™AAAW®\Y½zuTTTzz:Þ˜——·jÕ*òÇwƒ7ß|3//ïéÓ§AAA%%%K—.­¨¨ ›F£EEEݺuKZäÅ/]º„_üÿä“Oöïß/200Àf³ñ$‰Dééé+W® ß°aÃýû÷)÷^qqñòåËÙlöÉ“'BøJýõו+W.Z´hïÞ½”/{˜’ ÒƒQ¿tŒò÷÷—ó«èÞÞ^>ŸßÓÓóäÉ“#GŽ„††âíÿþ÷¿›››SRR¾øâ‹¢¢¢S§NIk$dffr¹ÜƒîÙ³§¤¤$55µ§§gûöíNNN'NœX¿~ýáÇÛÚÚð'߸qã?ÿùOBBÂÁƒ;;;»ººx<ž£££XxŽŽŽ?Æÿøã[¶lqrr’Ü [[Û††iaP.|íÚ5 ÃBEEEúúú3gΤ\üÌ™3ñññÇ_¹reJJ åž¼}ûöáÇ“’’Ž9ÒÑÑ7ž?~÷îÝŸþùíÛ·‰7:”€á€JF…?þø£©©Éßß!äïï_WW÷èÑ£A—z÷ÝwÃÃÃ#""V­ZUUU…¿Qùùùï¿ÿ¾••Õ”)SÖ¬Y“——GÙHî*77wÓ¦M,kÊ”) ………zzzGݸq£¹¹9‹ÅBuwwãO^¸p!“Éœ?>Bˆ¨‹’h4šH$ÂÇÇÇ{yyÈÞ"É0(íµ×:::‹[XX „ð{BL&ÓÌ̬¦¦ÆÇLJü´ššgggüñ¤I“¤mE}}=˜d”‹ëëë¿þúë×®]³³³»yóæáÇ¥-.ȦL™Bƒ¹¹9BˆF£‘mmm‰µ»‹²0Péö‰Dç½÷Þ‹ŒŒÄ[RSS9Κ5kÄj4úúúGŽikk355ÕÑÑár¹“'OF544XXXP6’{066þæ›oð÷ øÕø¾¾¾;wîܹsöìÙä{ë$£ ùþûï½¼¼ˆ¯ê{{{O:EÔ]âm ò³³_}õUiaH[<88xïÞ½ŽŽŽÎÎÎDõ•\|ûöí>tppÀŸPWWGå~®¯¯Çßýã?È÷@P6†>Óí—ŸŸïííMž=ÆÉÉÉÚÚšÃáPÞÂFذaþ€F£ÙÛÛïܹÿlºiÓ¦}ûö­[·NWWwîܹ˗/§l$_|~çwöíÛ·víZæï¯¯¿~ýúÏ>ûÌÐÐpÙ²eÁÁÁIIIçΣŒd̘1‡JMMMIIihh°²² ŽÕÕÕ•6‹Årww?tèq•^2Œ––Ê52Œ€€€«W¯ÈØ ]]Ý<þÜÁÁaÛ¶mï½÷B諯¾òôô$ÖK)$$äƒ>èíí &v—X£ŒÅr¢á·× ¡–,YÒÜÜ ¿O¯Y(§ÒÚ }AAAÄE €$¸zh3¨ôe322b³Ùò4†*=@ÙLLL6oÞ,O#`ø ÒÚ *= Í ÒÚ *= Í ÒÚ *= Í`6\ ñÊÊÊU€@Àìí5a2ëUƒ õ÷3¦ÁsUÇ •h6âWÚ”¯·—ÑÔdØÒ2¦§‡¡¯/tu5ÔÕ*9Ï ¶ÖØ×·QÉë%kh0ª«3now26î33ã[XðõôDJ[û”)S&Nœ¨´Õ ‰`Þ{^ΣGÍgÏþž“SVUõlòdó˜ßÈHÏ©S'¨$˜ììÒuë¾khøF%k'ô÷ nß®½|¹2;ûNss§³ó6ÛƒÍötvVÍnA¥@.홙ŧOWU=?~lT”›íáëk¯£#×/Ü5©ô¡Pôûïu99e.”66vLžlâÆf{ÌœiOùõ%€J€,--]çÏ—ää”þþ{‘‘~t´WLŒ¯®w³ª[¥'ˆDXqñ£¼¼{/–ÕÕµLœh6oÞt(ù¨Tz(tuõåæ–gfß¼Y£¯Ïwg³=¦êé©×­-j[éÉl²¶6™;×54Ô-(È•ÁP‹wKh=¨ôüŸßáBÙ… eׯ?‰°À@—˜ßÐP7]U‡FM#*=/ùyy÷ÊËŸ˜š»²Ùž.ººtU‡€6ƒJü‘“SzùreOO_Pkd¤Ç¼ynÆÆcTÚ 4«Òþüóy^^eNNiqqݸq†¡¡ÓÔó’ Ú*=½0 +*z”™Y|ñby[[¯¯›íé1a‚±ªC“—†VzB}}ë¥KxÉ70Ð3Ç)2ÒcÁw&S_Õ¡ = ÒƒÑ¨°°6'§,7·¼¡¡mÆ ÛØØ™aa3lmMU×KÓôJOàrÛ®^½Ÿ—WÉáÜg0è~~Α‘óçÏ7Î@Õ¡ ñ ÒƒQ¤¶¶ùܹ¿†ÂÛÙY,^ì£Â¡ð ¡5•žÐÚÚ}åʽ Ê þ Ñh³fM u‹Žö?~¬ªC@SA¥Úïñãç§OáÞÒr\LÌ̘_.ðí«ô„ööžË—+¯\¹wõê½¾>·÷d6Û“Íö°´Ô˜ïVPPéÖ"…755Z¸Ð[æºQ,-®ô>¿ÿÆêœœÒK—*zzú}|ìæÍs‹ˆð°³³Puhh¨ô@Û‡Âꆅ͈ùÚkŽj2×b†JOèë\¿þ '§ôò廽øœ» z;8°Tj *=ÐbCáÃÂfÄÄøúù9«íPx…U•ž@̹Kžf?4ÔÍÝ~ê Péf# …¿ÛÓÓ…Ÿ?ú¸q†ªMFg¥'¦Ù/kll‡iö •h$ Ãnܨ>}ºèÊ•{íí|__»ØØ™FªM©Fy¥'ˆDØÝ»õyy•gÎü^W×bkk:þ (ùà Ò C ?s¦=›íînmm¢ê¸T*½$|Îݬ¬;55MVV&ÁÁ0Í>í ÒÍððaÓùó%ÙÙ¥ÕÕS¦Œ_´È~þA¥— ¦Ù•¨5òPøI“Ìcc}5}®Å‚J/ÇŸ_¾üÂ4û¡¡nÁÁÓÆŒÑSuh(Tz ŽÈCáÍÍ™QQ^Ú7^! Ò¿”§O[ss+ð¼ÒׇiöÁh•¨‘ÎÎÞ¬¬;§O•”ü9fŒ^t´WLŒ¯V…W¨ôCóüyW~þ}|Î]š¿ÿT˜fh1¨ô@õzzú/^ük(<®îÎf{úûOÕׇß0TúajkëÉË«ÄK¾H„ásîÂ4û@Ë@¥*C ÏçºÄÄø†„L34„oOå•^Q::ø×®=ÈË«ÌÍ­èí€iö6J”<¾£ƒÿúëN11¾¡¡n&&cTšæJ¯p½½¿üR•“SúóÏw»»û¦O· öÆ>ööãUC•(>þ§ŸÊŸ=k÷õµc³=#"Ü­¬FéPx…€J?rðiöñOùÏŸwásîFG{;:Â4û@Ã@¥#îáæôôÂìì;OžðYK—¾å5q¢™ªãÒPé•€˜s7'çNSL³4Tz0Rþüóyfæ_Cáíì,/ö¡ð •^™D"¬¸øQNNÙÅ‹eÏžµOšd Óì •(XssgVÖ|Ȳ…“ÍöŠõ…O?#*½JÓìŸ=[òèQ³iXØ ˜ò¨-¨ô@1ÈCá -òŸ@¥W9|Î]|žf33£¹saÎ] v Òƒa!…g0è Ì`³=¦êéÁPxe€J¯>ÞÞ~üoxÃPxõ•^Cñùý7nTç䔿æVðùý>>vl¶gd¤Ç„ 0Í>P<¨ôàšš:³³ïdf——?±´4މñ‰ñ…¯VÚÞzë¨@ Äÿäóx¼n›ÿÍ(P¨ôà…¡ð¦¦c¢£½a(¼:ó÷ß]SÓDù/ %&.øûßç)9$0|Ä4û—.U´´ü5Í~T”—““¥ªC*ýèE …¿víž=,lFlìÌ×^s¤ÓuTeÿþüää‹Hò_4íöím¶¶p#…#¦Ù¿p¡´±±ÃÙyBh¨[hè´W^™¢êЀ¦‚J?êCáóò*i4ZD„;›íéï?U_æºÑ m3g~*ùÊÕѡ͘a››»Y%Q…#¦Ùÿé§r.·mâD³yó¦Ã4û` Òk6>¿¿¼¼~Ö¬Áßì …¢üüû99¥yy÷zzú]"#=æÏŸ1n íÕN+-ý†hk7¼äããbäŸf¿ºº1:zïþ³"(ÈEi¡õ•^Sq8Äǧñùý"–ŸŸäâb%ö|(|VVI}}ëÌ™öl¶gD„»•• eo@³ðxÝÛ…ÂÿUz:]çÕWNŸ~O…QeúóÏçyy•øœ»ÆÆ†ø4ûÒ~râ_ÿºüå—¹¡÷ßýðÃ0¸g´J¯yD"l÷î‹û÷ç#„0 ÓÕ¥ÇÇ~üq$þ_òPxÖ›o¾å5q¢™JCŠ—rãF5Qìuth{ö¼¹té+ª (yš}Ý9sœ"#=ĦÙ÷óK~ø°!D§ë¸ºZ=ºÎ £ Tz ÓÞÞ³nÝ÷ׯW‘‹5îçŸ?ÈÉ)ŇÂOžlã sÝh·ÌÌâÿû¿ˆ¯êuuéwï~ªf mùù÷óò*9œûäiö›š:üüvOÓÕ¥è8°rî\WF ” *½&¹Ÿ»zõágÏ:ˆ‰SººtCC½ f,\è=gŽ\Óz]]}Ó§Òß/@1:¡¡Ó]£ê €Z¨¯oýé§ò‹Ë~ÿ½ÎÐPoòdóªªgä»:ð[÷ß~Ûoûö(øQÝÑ*½ÆÈÉ)Ý´é‡!ùÛYœ®.#(ÈåСÕð«ð£J||Znn…P(¢Ñh‡­ŽˆðPuD@½46väæV$'_ììäKžéétoïɇ½ei9NÑåO~@ mÛvnݺïûú’e!40 ¸}»VGŽæèòÆ>"‘!dh¨â¦êp€Ú±´7w®KGE™G …¢’’?¿¸~ýÒCJµAݵ´tÅÄìKM½a˜Œ 0íí=7oV+30 rAA®††z4Z°`L|(]ºtWƘ{¡PÔÙÉ_¶ìàž=—ĦgÚä…³ŸÏommUU(@Rmm˦Mg¸ÜŽAŸ©£C;uêWGGeÿö¥¡¡¡©épç^mmmåóù ‰g´ qÉÎ. šÒÐРêX4’©©©¡¡á0;QçæL¡P(«„ã~ÏžŸ kvíŠ`2õe<h kkkòŸ/TúÎÎΪª*寤ª¬lII)áñzåy²H„]¹òÇâÅvòÏ™¥ãÇ~¥ohhhnnVH<£›“ÃÑ76îƒWîÐL›6mø•^mw~[[_e%WΛ±nÞ¬}ë­ïþö7e` '«Òã• )0ýío1ªŽB–ÊÊJEu5~üx77ø¦ù¥ùûc4šYppªÑHŠêjÚ´i,KQ½) ×}ê”=þØÐP¿c—É4ÀÇæÒhˆFÓ)±µISSÓ½{÷Äá»=4˜Ž-!!PÕQ5effäçç¬ê(€êÁyh6 *= Í ÒÚ *= Í ÒÚLã+ýãÇ׬ü‡=jjjðu ¿sçƒÁ8}ú4Ñž••¥§§WQQ11‹¡‘ØÙÙ­ZµJöàr ÃV¬XÁd2å₩¦F‘jÉc-vÐ)á™ Ï3‡O,iwíÚE£Ñ’““‡Ó§B:#{o¤§§Ó¨”––*0È^ù³÷eÏ Ê'c[ä<www'%%yxx0™ÌW^ye÷îÝ i¿Qf¯¢¶tPJNl¯ôçÏŸ_¸p!å¿jkk-,,ðÇ&&&}ô‘´Å½¼¼¶nݺqãÆ¶¶6„P{{û{ï½·cÇŽ3fŒ\äd7oÞär¹õõõ©©©ÞÞÞx$”Nž<)9bà¤kÙðL –%'‘“ðôôôI“&edd ¹CÊN†¿ ²÷dtt4—Ëår¹7oÞDqÿ æEŽád¯FŸä9wvvúúúÞ¾};99¹¤¤dË–-'Nœ˜7ožP(Ú~ÃO¼dŠÝ¨=¼Œ¤±±‘Ãá`%""¢§§‡ò_ÕÕÕb(ÙH,Þ××7}úôøøx ÃÖ­[çããÓßß?bQ¿!T]]Mü)‰üýý·oß.íù”Û%ÿ t÷îÝ»wïªO?bˆ%ÏK¤—ÝÉ/…¼®²²2–——‡zðàÁÐ:¤ìdD7lDW4rÙ‹a‡ÃillTŸ~Ȇ½J;âC&#ByNʼn‰‰~~~€Xª««ËÎÎ.%%ErƒîM-±`”¹vÊ:þÒŸé³³³mllðéñO:åììÜÝÝøðÃ---Y,Ö‡~800€_<¹zõê¤I“ vìØ1iÒ¤ñãǯZµŠøÀ*¹B(''ÇÝÝÝÀÀ`Ê”)ÇG ÊÅ[ZZŒŒŒ ÉjˆÇ¯¾ú*Bh„ HÊ•bq„žž^ZZÚ±cÇvïÞššš––¦««+-Hnš$¶nݺ‹/J뇼]röyùòeGGGSSÓÝ»w{#++kêÔ©,kãÆ}}}”ò¦ÅÈ£L<‘H´oß>WW×±cÇΞ=›Ãáà×Äd\…»pá‚——ט1c¬¬¬ˆkÝ’‰$¶“)&F;v옫«ëøñã“““?noooll¼mÛ6|)ÊCCÎ:„Pzzz@@@HHˆ‹‹ ù9F;yò¤«««™™Ù?ÿùO„ÐÆßyçü¿]]]cÆŒ¹s玌NÄ6¡­­í­·Þ²°°°µµMLLìíítˆ½!íH‰2NiÙE¹cÅ@ödg¯ä?GݸqƒrÁAXòèÌž=û›o¾Añx<ÄÄD„P(455ÅOY’i& Þ3†a‰‰‰žžž---HîSñ‰'¶oßN§ÿo ##£¤¤¤“'Oa¿½ÔÁ’–`²·×ÉÉ ‘^ƒb”šØƒ¾´jÕªÕ«W?{öÌÒÒòöíÛxã_|±xñâÇ———{{{oÙ²;³`Á‚üüü;wº¹¹•——WTTÌš5+11QÚR]]]úúú)))\.÷èÑ£ £««ëË/¿¤\üرcÇÇ^|ëDùžŽ²‘Xœ°eË„ÐgŸ}FnÑMèÞÜ™˜˜È^;þ_i}’!„"##;::Μ9ƒjiiÁ{˜7o^UUÕ­[·wîÜIÙ(;”ü™^2ñ<Èb±Îž=ÛÐÐpñâE[[[|gŠkâAGG‡žžÞÛo¿]__âÄ „PSSF•HboÆ%†a¡¸¸¸ŽŽŽ#GŽ „–,YÒÑÑqðàA|'K;4䬉DöööÄ0ìã?vss#ÖˆЉ‰imm=|ø0Bèùóç×®]377À0ìĉnnn"‘HF'b›°|ùòààà‡–——OŸ>?¸²7èAÚ rE”qJË.ÊK6rÙ‹)÷3½2³—xŒŸ£¸\.傲>Fut>ýôÓˆˆ ò²²ÆçííaXqq±Aww7F•fäHð{8D"Qæñhå9㥷¹¹YlÇþöÛofffCØo¡ÒÒÒÎI;XÒLží¥Ì‡‘KlÊ:>”JßÚÚjkkëîîN^¥‹‹ —ËÅçååyzzâ!–——c6uêÔ³gÏâÿ½wïñXr)§««ûÕW_µ¶¶ŠD¢ÎÎN¡P(mñÅ‹óxú’GÇËËËÈȨ¨¨èúõëQQQ^^^ׯ_çp8Hfšá‘àŠŠŠ?ÿüsi›@y*611™0a‚äÈŽÒÒRrçrî7œä7åĺ$k’H09·We&öP*ý“'OöíÛòÁø»*â Ñ­[·ðvÉ’%~øaIIÉþýûñFÉD’$û(H[—ä¡!¯K(fdd|ýõ×Ä•ÃÍ›7gdd§É7m±±±çÎûñÇçÌ™ƒ_ì´œ¥¥%N¯­­Åÿ|øð¡Í ›@–äÒHƉ“Ì.yv,d/nÙ‹Ÿ£(”‡äÑÑÑÑ ÏÊʪªªòööž;wn^^Þõë×ñó•Œ4#¿ÈÉÉIIIIOOçp8’› ãT¼|ùò]»vá‚Bqqq§NJNNŽ‹‹{Ùý&eC &çöJ£ÔÄôS¿¡P²k×.7a„ììl¼}ãÆ111uuueee³fÍÚ°aùÂÅŽ;ÜÝÝ+*****^ýõµk×J[ŠÏçdff677:tÈÀÀ€ÏçS.¾bÅŠ§OŸâýàÐ=ÚÞÞŽàÀþ{åÿêEò’yq‘H€__íïïwww‹‹S¦ágdb”]AAAtt´­­m[[›311qppÀ¯ö`6000gÎ&“)yøÅOKKÓ××'oTXX¨££“™™9Ò›†½øÙkâĉ˗/'Ÿ5d¯]FŸƒžÁ92yòd ‹÷ߟÏçS6ÊNeVzÊÄëïïÿôÓOííí™LæìÙ³øáÙçJ þþúk33³‰'îß¿?..ÎÔÔ”œ Ä3ÉɃI9šƒž(ÅXÖ%$$Ì›7¼"‘ÈÁÁá£>’Ñùºuë ;::íDlx<ÞÊ•+ÍÍÍ­¬¬þþ÷¿ï2å©ôÒ’\l§‘‰Å)-»†°c•½˜+½’³“8(b ²X,Lަ<:mmm ¿W®»»[OO/))‰X‘dšI‹ŠÏç;;;oݺUþS1†a]]]|ðÁôéÓ >þøã€€€¥K—¾Ô~#6_’´ƒ%-Ádo¯ØkP9‰­°;ò€¦£<5S6ʦnã釰 gëÖ­Ë–-Suƒ‹S‡FQÙ‹©Ùxúѽ#¡¯¯ï·ß~éµ(áè(*±)ë8ƒò} @Ýôöö644;vìÔ©SªŽEM‰h===|" ƒÆÏ† †`ܸq ò4õqûöm__ß·ß~;00PÕ±ÈB§³ ²(ŸlD›†‘¾®hjjºwïžšŸG€úÀïþ<çŠê€—RPP0mÚ4‹¥&ý0|”u>ÓÚ *= Í ÒÚ *= Í ÒÚŒb<}CCƒò㚨··×ÀÀ@Q]AâÍÕÖÖ†ÿîªÕÕÕ%ÙHQ髪ªF> %Uéñ_gQHW(¼Oêì…ñôÐ2ð== Í ÒÚ *= Í ÒÚìÿžpŒ¬þìÉ#IEND®B`‚XQilla-2.3.0/docs/simple-api/classReferenceCounted.html0000644000151400015140000002746311653571064017773 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ReferenceCounted Class Reference

Super class for reference counted classes. More...

#include <ReferenceCounted.hpp>

Inheritance diagram for ReferenceCounted:

List of all members.

Public Member Functions

 ReferenceCounted ()
virtual ~ReferenceCounted ()
void incrementRefCount () const
 Increment the reference count.
virtual void decrementRefCount () const
 Decrement the reference count, deleting if it becomes zero.
unsigned int getRefCount () const

Protected Attributes

unsigned int _ref_count

Detailed Description

Super class for reference counted classes.


Constructor & Destructor Documentation

ReferenceCounted::ReferenceCounted ( ) [inline]
virtual ReferenceCounted::~ReferenceCounted ( ) [inline, virtual]

Member Function Documentation

virtual void ReferenceCounted::decrementRefCount ( ) const [inline, virtual]

Decrement the reference count, deleting if it becomes zero.

unsigned int ReferenceCounted::getRefCount ( ) const [inline]
void ReferenceCounted::incrementRefCount ( ) const [inline]

Increment the reference count.


Member Data Documentation

unsigned int ReferenceCounted::_ref_count [protected]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/functions_func_0x7e.html0000644000151400015140000003336411653571063017407 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
 

- ~ -

XQilla-2.3.0/docs/simple-api/classxercesc_1_1URLInputSource__inherit__graph.md50000644000151400015140000000004011653571064024333 000000000000002f07b49eaa8e72afa0ac3e08e5904d5cXQilla-2.3.0/docs/simple-api/XPath2MemoryManager_8hpp__dep__incl.md50000644000151400015140000000004011653571063022107 00000000000000bfa48f9e5826609ef8a4e428830fca4dXQilla-2.3.0/docs/simple-api/classDocumentCache__inherit__graph.md50000644000151400015140000000004011653571063022154 0000000000000034e7a7d5ea713c7a5b247e82e1c87f8dXQilla-2.3.0/docs/simple-api/ATDoubleOrDerived_8hpp_source.html0000644000151400015140000005403511653571063021301 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATDoubleOrDerived.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _ATDOUBLEORDERIVED_HPP
00021 #define _ATDOUBLEORDERIVED_HPP
00022 
00023 #include <xercesc/util/XercesDefs.hpp>
00024 #include <xqilla/framework/XQillaExport.hpp>
00025 #include <xqilla/items/Numeric.hpp>
00026 
00027 class XQILLA_API ATDoubleOrDerived : public Numeric
00028 {
00029 public:
00030   typedef RefCountPointer<const ATDoubleOrDerived> Ptr;
00031 
00032   /* Get the name of the primitive type (basic type) of this type
00033    * (ie "decimal" for xs:decimal) */
00034   virtual const XMLCh* getPrimitiveTypeName() const = 0;
00035 
00036   /* Get the namespace URI for this type */
00037   virtual const XMLCh* getTypeURI() const = 0;
00038 
00039   /* Get the name of this type  (ie "integer" for xs:integer) */
00040   virtual const XMLCh* getTypeName() const = 0;
00041 
00042   /* returns the XMLCh* (canonical) representation of this type */
00043   virtual const XMLCh* asString(const DynamicContext* context) const = 0;
00044   
00045   /* Promote this to the given type, if possible */
00046   virtual Numeric::Ptr promoteTypeIfApplicable(AnyAtomicType::AtomicObjectType typeIndex,
00047                                                const DynamicContext* context) const = 0;
00048   
00050   virtual Numeric::Ptr add(const Numeric::Ptr &other, const DynamicContext* context) const = 0;
00051 
00054   virtual Numeric::Ptr subtract(const Numeric::Ptr &other, const DynamicContext* context) const = 0;
00055 
00057   virtual Numeric::Ptr multiply(const Numeric::Ptr &other, const DynamicContext* context) const = 0;
00058 
00060   virtual Numeric::Ptr divide(const Numeric::Ptr &other, const DynamicContext* context) const = 0;
00061 
00063   virtual Numeric::Ptr mod(const Numeric::Ptr &other, const DynamicContext* context) const = 0;
00064 
00066   virtual Numeric::Ptr floor(const DynamicContext* context) const = 0;
00067 
00069   virtual Numeric::Ptr ceiling(const DynamicContext* context) const = 0;
00070 
00072   virtual Numeric::Ptr round(const DynamicContext* context) const = 0;
00073 
00075   virtual Numeric::Ptr roundHalfToEven(const Numeric::Ptr &precision, const DynamicContext* context) const = 0;
00076   
00078   virtual Numeric::Ptr invert(const DynamicContext* context) const = 0;
00079 
00081   virtual Numeric::Ptr abs(const DynamicContext* context) const = 0;
00082 
00084   virtual Numeric::Ptr sqrt(const DynamicContext* context) const = 0;
00085 
00087   virtual Numeric::Ptr sin(const DynamicContext* context) const = 0;
00088 
00090   virtual Numeric::Ptr cos(const DynamicContext* context) const = 0;
00091 
00093   virtual Numeric::Ptr tan(const DynamicContext* context) const = 0;
00094 
00096   virtual Numeric::Ptr asin(const DynamicContext* context) const = 0;
00097 
00099   virtual Numeric::Ptr acos(const DynamicContext* context) const = 0;
00100 
00102   virtual Numeric::Ptr atan(const DynamicContext* context) const = 0;
00103 
00105   virtual Numeric::Ptr log(const DynamicContext* context) const = 0;
00106 
00108   virtual Numeric::Ptr exp(const DynamicContext* context) const = 0;
00109 
00110   /* Is this xs:double not a number */
00111   virtual bool isNaN() const = 0;
00112 
00113   /* Is this xs:double infinite? */
00114   virtual bool isInfinite() const = 0;
00115 
00117   virtual bool isZero() const = 0;
00118 
00120   virtual bool isPositive() const = 0;
00121 
00122   virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0;
00123 
00124   virtual const MAPM &asMAPM() const = 0;
00125 
00126   virtual State getState() const = 0;
00127 };
00128 
00129 #endif //  _ATDOUBLEORDERIVED_HPP
XQilla-2.3.0/docs/simple-api/ATTimeOrDerived_8hpp.html0000644000151400015140000000654111653571064017405 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATTimeOrDerived.hpp File Reference

#include <xercesc/util/XMLString.hpp>
#include <xqilla/items/DateOrTimeType.hpp>
#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/items/ATDecimalOrDerived.hpp>
#include <xqilla/items/ATDurationOrDerived.hpp>
#include <xqilla/items/Timezone.hpp>
Include dependency graph for ATTimeOrDerived.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  ATTimeOrDerived
XQilla-2.3.0/docs/simple-api/LocationInfo_8hpp__dep__incl.png0000644000151400015140000001316211653571064021012 00000000000000‰PNG  IHDR€÷MëkbKGDÿÿÿ ½§“'IDATxœíkPW€OÈEA"@¡V@/¨µÓêÔK©J±#U±hZ+¶ Žb§Š/íg[¦-(x©(•› ŠŽÜlmpÔrÁ"H‚¹ï~?¶ß~!÷„ÀÉêy†»gÏyófŸìÙlö¥á8ð°Àë$2Hdª+ .„•ÇkEQQ¹LS}D£Ñ&NœÈáp`dõZðüùó‡ªîs†ZÐÐÐ÷ßP“z¸qãÆ·ß~«Ú‚ÎA ƒ@ € “´µµ D*€¶¶¶€€SGéO Çñï¿ÿ~Ñ¢E‰fqà\.wÉ’%IJ½½}XX˜eã¿xñ¢¸¸øÌ™3– k)à À0L ËQQQ–/•JV{ui"‘(!!aÉ’%¡¡¡¿üò‹L&S*•§NZ¹råÒ¥KãããE"ÑóöíÛ_}õUPPÐòåËÏŸ?ذa $$ô‚4cŠ‹‹W¯^ýñÇÿöÛoš™hvP¯+¬UUUáááÁÁÁçÎ#³ú믿>ûì³eË–9rD.—km4c×YFÀ¡C‡:;;“““Ìår›››ÓÒÒ,X˜ššÚÜÜÜÜÜ|èСgÏžär¹B¡`02™ìÔ©S€—/_1Åb±êChiFªjè {åÊ]“!IRRR[[ÛßÿššJ~q¢µÑ´”̳qãFÕÕ²²²Í›7'%%­[·ŽÉd~ðÁááá4M"‘ÄÆÆJ$’™3gFGGìííׯ_¿ÿ~[[ÛU«VÍŸ?Û¶mÙÙÙS¦LY¾|yaa¡jX͘f¤ª‰Ö°‰‰‰Ó¦M6l˜ž ,زe‹D"™?~xx81á¨5š‘ú2{÷îEߨÑÖÖQVVf°Ñ Ä÷ªûþ…Øk`˜aÆÓhH€a¿ùæcÍ € $2HdÈP[@W—øÅ ±á~VŒú•°——›Í†˜IˆD{û§°1>Ÿÿøñc?M ô”úEu5‡F£yy±`'b3fÌP]¥Q÷_”=jŸ?ÿG@IÉ6??wØé˜ …Ï—.Õ06 ½  v.æCU8ŽgdT(˜B¡ÌÈ(§îqLUUU-ÏŸÿû}ï³g‚êê¨é˜UäåÝe2éÄ2“I¿xñÜ|̆’ ,7·Z.W«r¹27·J¡Ààfe”ðçŸ ==Õ–žÉ_5Âʧ?PRÀÅ‹Õ FŸÌ Znn5¬|úõH$òË—k ¥j£B]¾\+‘˜óã@¸PO@qñC‰D¡Ù.‘ÈKJ~>ý„zrrªèt-?œ¢Ói99Ô›…(&@(””–>Òú†G¡ÀJJŠDÒÁϪ?PLÀÕ«÷ÉwŸšÈåÊ«Wë3ŸþC±ãøü^àÿo@wíÊ|ÿ}Ù2bÄP6[ßܬ ü:z0a³‡©îßaÃX€1cÌùU¬•@±)èÕ € $2HdÈ A ƒ@ € $2HdÈ A ƒ@ € $2HdÈ A ƒ@ € $2HdÈ A £ó?dŽ?>È©˜AVV 4t4ìD £«4‹Nïo Ð饲v"†ÑµŸõMA.\À­…¢[¡è†….\¸ g'£sdÈ A ƒ@ €L¿ÐT°µµ}ï½÷jj,sɦ¦&­"4­©©ÉÚÂö‡þ·nÝâr¹\.·®®nܸq+W®Ä-zó‰Çk-õõÊÐß{E¸¸¸¸¹¹ÜÜÜ~øáWW×ÎÎN –.Å0ìÅ‹–Šf…XòÀd2Y,–ƒƒ±*—Ëccc]]]9Nll,Ql´  ÀßßèС^^^gÏž}§Í)bæÌ™Â±4íäÉ“~~~... gÏž;v¬ƒƒÃîÝ»ÉPùùù&Làp8111D][]\¿~ÝÇLJÍfÇÇÇënjL£Ðu Œø(PSS# …Ba[[Û† Ö¬YCn=xðàòåËÿù矺ºº·ÞzkÇŽ"‘hÈ!ÉÉÉ\.7--Á`ˆD¢ÆÆF2 rYs|ÄÆÆFr9,,L ¤¦¦V¬X!RRR]]]ÄÀÀÀÀ†††òòrŸ}ûö©ES »xñb@““cp¸Z£‘Eè܇zv®1T±··øð!¹Õ××—ËåËEEEÓ¦MãñxL&311‘(ª) •Jeܽ{Çq¢&°êrcc#1°®®ŽÜ >>>zܸqÇq¥Rip¸Z£þ]„Ðß)ˆÜ½½½ÑÑÑ‘‘‘䦖–wwwâ=ÒÂ… ›››ÙlvYYYyy¹‡‡Ç¼yónÞ¼icÓ'M©ú>|8€Édª-“5[}}}É›Z!J¬ªå£u¸ñ1Ábç;;»/¾øâÁƒäNtvv&õðùüòòr±XŒaXVVÇ[»vmpp0Ç#:+ @[[›¥ò! ^³€††²Š­V´¾=Õ:Üø˜Æ`É“ðˆ#„B!Y½<$$dçÎOž<©«« :zô(F ÌÉÉ2™ŒÉdÚÙÙ9::~ýõW@pøða­‘ɘ¦²y󿦦¦ÊÊʸ¸¸ˆˆÕM©©©==¾HÐ:\OLsÐ57ãÎäkœ˜@GŒÑÜÜL¬ ‚5kÖ°Ùl''§¨¨¨ÞÞ^bBôööf±X¾¾¾ùùùDÏýû÷;::z{{çç烾S¿\.Ÿ={¶½½½æ#ê_&"¤¦¦Ž3ÆÙÙyÓ¦Mb±Xõ`öpµFý»Г°5£ë|ÛŸáæÅØ“0¢Ÿ¼²FŒAT‘¶àð~ÆÔŽ®CP| ²ÐdÕ A ƒ@†Ú^¾”½|)ƒE¿Ð÷…LIIIww÷ ¥bµµ=4ð÷w€ˆ>ª«õ•• öoCGŽ\Šã€ÏσˆatígG€®ÖCW—húô=КšD#GR©f€*>\½ZG|–UXH±ªªPXÀ… wp€_¸pv.æCU­­¼{÷þÁqÃÀÝ»OZ[y°32ª ((¨¡ÓÿMžN§Q·¤0UdfV’Åô <3³n>fCIõõ * xCCG}}‡ÎV %äçßc0èª- ýÒ%J–¦ždz²*5Šy*33+­ÿÚEê ¨©imkãk¶·µñkk[?Ÿ~B=yywÕæƒž—wwðóé' TbÙÙêóB¡ÌήR*)VØœbÊËóù/ :‹ÅPûc0è<^oEÅcØ9šÅjI26»v-&W/_®,^ÐÙÙ©ÖóöíÛ#GŽÔ¿U—ÍJ¡ÄÖE‹•––:99ÉårÇÓÓÓ'Mš„a˜ú3ÈžÐ`¶dÉ:A6»¸««K­ó­[·œõoÕ%@³R¨j¥M…BáææVRR‚ãøG}” ™*ÈžÆ °ðÛÐsçÎݸq£´´4;;›(‹ptttssÓ¬v^SSãëë««j ®rk#ÍJ¡D;1„N§‡„„äæævuu‡‡‡kÍVOU,) ½½=&&æÇœ;wîÞ½{£££ÉbØáááÿùÏˆ× ,,,###!!!,,ÌàV ­Ô§f¥P¢¬¦zñâÅÌÌÌÙ³g{xxhMVÏ>s˜3a¶xñâyóæ)•JÇe2™¿¿XX±µ§§g„ ×®]«¯¯‹‹p8©Tªkgg' --­§§gÙ²ed111Ÿ|òIKKKmmí»ï¾»qãFµ:ƒ …‚ÃḺºž:uŠl‹ËÀ]]ý¬ô7Ò¡ð9 +«’N§16YYT-£¨+ ·WzíÚ}¥S(°«Wë¨[ØœªŠ‹Êåÿ~ƒ&—+‹‹ÀÍÇl¨* ;»JeÖw•JPRŸß{ãÆßöïû7 ÃÊÊþæó{áfe”PXX§öîÇÁÕ«÷aåÓ() ;[óm®­‘PO—Û}çN 9ÿ`^QÑÜÑÑ++³¡ž€K—j´^÷Òé´K—¨WØœz²²*•J-Ÿ(•¯È(& ¥¥ëÑ#®Öϯp<|ØÞÒÒ5øYõŠó¬®nñó…aÿÖ¬íî~ pt´#Vmllª«[Þ|ÓZ~¦ƒŠyB†bSЫ$2HdÈ A ƒ@ € $2HdÈ A ƒ@ € $2HdÈ A ƒ@ € $2HdÈ A ƒ@ €LŸÿY¸p!ÄTÌ £cÀÍ­v"¦QTTD.÷@£ÑŒ¼ÍÂ<ˆ[_õù·0óî÷Š0Í{£sdÈ A ƒ@f 4557zÕ\ègÀA>˜u>J€££ãöíÛ­9 •0Pœ¬9 •`š€K—.=š(>˜‘‘1~üøÞÞ^ Ã’’’üüü†>kÖ¬²²2âÖsÈ_¾|yúôévvvîîîZwkAA¿¿ÿСC½¼¼Îž= úÎ!4íäÉ“~~~... gÏž;v¬ƒƒÃîݻɞùùù&Làp8111R©T5¸\.uuuåp8±±±r¹\3ëׯûøø°Ùìøøx]1 >Q¨^•#®„?ÿüóÕ«Wwtt¸ººVTTà8ž’’ÂáprssÛÛÛ¯\¹B”­#«?i.‹ùôéÓôôtÀóçÏUB$ 2$99™Ë妥¥1 ‘H¤ZN &RSS+V¬)))ÀPMNb¸f!Pµç¬Î§æ•°Éø|¾‡‡‡¿¿?ù`“&M:}ú4ÙáÌ™3úH¥ÒG‰D"¥Rùû¾<Éd&&&òù| ÄB¡R©T@”§•ÉdjËúkr-š…@Õž#°:Ÿø(ÂÑÑ1**êÁƒëׯ'Z?~Àêx Dùͬó©z8ô•䃦 « € $2HdȨÿ4qÊ”)®®®zµyöìÙýû÷U÷yŸú¡¡¡ƒžÒë›ÍöõíSö’Úõ^Ð92HdÈ ù/r2ô?ì™C¡IEND®B`‚XQilla-2.3.0/docs/simple-api/classATGDayOrDerived__inherit__graph.png0000644000151400015140000002042611653571064022441 00000000000000‰PNG  IHDR]±uyibKGDÿÿÿ ½§“ IDATxœíyT×âÇoH‚€ !DD…bUÜ­€ú@ŸÚV Tp©ËħøSA­­â©ôÔjO[«(ˆ>Y”gŸV¶C[AY•'`D²Ä†` Ûüþ˜šÆl‰w¼ŸÃwfîÜûù0K&Ë¥`ïÓñܽ©©éòåË=ê__„ÐÞÞîååeff–’’RRR²jÕª   _~ùeà-s¹\ƒ1ðvt£áõ“>ØÚÚÚÙÙìììŽ9Âb±Z[[™L¦ÆÊ"‘àääÔï”'::zÞ¼y øä|ÐÜÜüí·ßþýï`Ër¹¼½½}À{€ëN766¶´´Ä'%ITT‹Åb2™QQQ‰dæÌ™Ü«Æ ø© 77×ÉÉé÷ßW¯ P(—/_öðð°¶¶>rä@*•FGG;99ÙÚÚ®[·îåË—ÚÚ¤§§oß¾]9vttôÙ³gñòË—/ׯ_Ï`0###»»»•ÏNÊeõ½nL&;zôèØ±c-,,fÏž}÷îÝþìeL‰””•9TTTtvvvvv>þ|Ë–-6lP,=|øðŠ+ØlöäÉ“÷îÝ[SS£Ü¬¶ ‹-ÊËË …êðNW®\ÉçóãããíííGõôôd³ÙgÆŒ‘‘‘ÚÚçóù€ŽŽm[´zõj??¿'Ož°ÙìñãÇŸÍf›˜˜(g®®®Vö¤£×­355­¨¨PT(//^ŸÌÌÌÖ¯_ÿðáCìõqÆ`0ù|~qq±Ê*Ú*ÐétÝŒŒÞHëààPWW‡—+**¾ùæ«/Y²äرc˜ÒÉ ))I"‘˜™™±X,*•ÊårñùOž<1b^–J¥€çÏŸ+÷«£×­svv®¬¬TTxøð¡ŽÕµ¢,­Ç†aõõõ@€OFDD¬\¹²®®®²²rÆŒ[·nUùëG•Nñrttô„ 8‡Ã™={vHHˆŽÕ_¼xacc³zõêÂÂÂÊÊʃnܸ¯ìççÇår9ާ§çZ[[gÏžýã?–-[”Ž'•xøÎÎNm½ÿý÷L&óÚµk<ïæÍ›cÆŒéu'ÞÃ0L&“ 6ìéÓ§ø¤@ ذaÃðáÃmllBCC»ººT4ô£‚ÆÔÝÝéàà`ii¤¸üh\𺺺•+W:88XXXLŸ>=++KÑcGGÇÚµkmllìííwìØŸcbb¬¬¬\\\®_¿®Ã“D"ñöö677×Ö»T*=zô¨««ëСCgÍš…ߺ÷°º' ¦t*HMMÕýŠ18àï?)¿ˆžïÁòÈ Op€<ÁòÈ Op@BOwïr x4¼Ÿ;þüÁÏA \®‹£ã3cc±¡ƒô‡ãëë«<ç O#GŽ„ýÃå"M$2‹íX¬NCgé?¾¾¾øÛÄ (${šwôèÍï¾»=j”MQÑW†ÎB$d»>¥¥•êëÛ«ªš …HH婼¼¡±‘ Ó©éé÷ ‡HHåéÚµ2 Hdii¥r9yNéäñ$“ɯ^-•JeødkkgI ynÐÉ㩨¨–Ï¥˜¤Ó©™™eÌC,äñ”‘QF£ýµ9‰ìúõ2‰DfÀHBOb±4+«B*•+Ïz~ýµÚP‘ˆ…$žòòªD¢•™4%#ƒ$w}$ñ”‘q_ýcuR©ü¿ÿ­|õ âH ÈàI(ì¹}û¡L&W_$‘Èrrúõ¹Æw 2xÊÎ~(Kµ-%Ç]<]»¦Õ„\ŽåçW ¢ÁÌó6 ÃsØÆF¾òIoÖ¬˜C‡–ûû ˜cgg9dH?¿‘÷ŽwzGÇá*slm-F²1H˜·Î{ïÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁÁ;ô=µ3gÎÕTNNNssÉÀÛñ÷÷LJ-1<ºäLˆÚ":id4„¦RRR ½WþäÝ:ï²_Ä♬{àízg¼Á»å ¡ ä '8@žày‚ä  óD¡Pjkk Â@æI—Ëe0†N1xÀêI.—···:Åà«'|ø ;;;|R"‘DEE±X,&“%‘H %11ÑÃÃÃÖÖ666öÒ¥K£G¶´´Ü¿¿!£÷?_!  Çs#ðz˜a•¡‘>¼bÅŠ††6›=yòä½{÷╃‚‚ABB 00P œ>}ÐÖÖFHžAƒ$žÜÝÝy<^ÎÎΞ4i^¹¬¬ Ã0±X¬RVO{ ywè}PWWgoo¯˜´´´Ä :®R†X¯O*0 Å!Âçóñ1ÔÉÜž„B!^X¾|ù_|Q__Ïf³.\øÓO?6áÀêÉÙÙÙÛÛ[q®‹‰‰±°°ðòòúÛßþ6qâÄÇ6á@v}Â^¿}G£Ñ~ûí7Å| ‹ÄÄÄÄÄD•u”aÖãé}y‚ä '8@žày‚ä Hè©­MhèÄón½ÎÍÍÍ}ùòåIK{þé§v&&TB"½#¼[žþU#£!LfhaašHTEH¤w„wè¼GÈû4/æS(Ô?ÞJHk†Þ+òy"„ôôûPŠ‹kÛÛIu•"•§ææ?îÞå€@¹~½ÜÐqˆ„Tž®_/§R)¹KM-5t"!•§´´R™ `Æá464çƒcäñÄå¶>zÔ„½~o‰J%Õ©<ž23Ëh´¿^3ÉdXZyN}äñ”–V*•Ê“†ÕÖ¾¨ªâ0ēƫFÕ12\ÄÓµketºêƒ"©T–šZ‚AøiuÈàI.Ç®^½'‘ÈÔµ´ÊÊê?áÁÓÝ»ÜÖÖN‹h4jf&N}dðôŸÿ”Œiêr9–•U®<ú;¤¼[ÏËûÇøñŽ_~ù‰bòر_>ýtâØ±vŠ9ü!²¶jˆh„A!ÇeV‡qqŸ/Y2ÉÐAˆ„ ç½÷ä '8@žày‚ä '8@žày‚ä '8@žày‚ä '8@žày‚ä '8@žày‚ä '8@žày‚ä '8@žày‚ä '8@žày‚}~†.%%ÅÐ1û€……7ÍÐ…ú(èÃ÷sSSSß^Ü÷“ãÇëY³žú¡•´´4=k¢ë Op€<ÁòÈïéСC %66Öà¨P[[K¡P´-MNN¦h¢¢¢‚À ý†`O†%'';99 䥱ÆF¸\.ƒ1 W¯VVV{öìѶtéÒ¥<ÇãݹsÀ{§§ç@:% ýŸGèS³²²’B¡dgg?~¬Ï*z6¢2õÛcÐ:Â0, @ÏçOÉÉÉsæÌñ÷÷wwwW>(ÊåË—=<<¬­­9ˆˆˆØ´i¾T(š™™•——ëhdæÌ™;»?ìåË—ëׯg0ŽŽŽ‘‘‘ÝÝÝx/‰‰‰¶¶¶±±±—.]=z´¥¥åþýûÒyO*•FGG;99ÙÚÚ®[·N÷È+sâM]¿~}ܸqL&3""¢§§ ‘H¢¢¢X,“ÉŒŠŠ’H$DíX"'¹\>zôèÓ§Ocöå—_zzz*V®\Éçóãããííí666‰ð¤¤$OOO¹\®£•óÕ«Wûùù=yò„Íf?þàÁƒx/AAA !!(NŸ> hkkS´pôèQOOO6›Íápf̘©¼*ỉ×Y°`Auuuqq±««+àðáÃ+V¬hhh`³Ù“'OÞ»w¯î=¦ÿñD¤§ââbÖÖÖ†aØýû÷çÏnÈÏÏÇ0L,jjj¤R©]nn.†a‹/ŽÕ݈òî‹ÅT*õÁƒødFF†««+ÞKYY™¢årMM¢…qãÆeddàë>zôHQÆQñ¤1'^‡Íf+öÀÝÝÇãá3³³³'Mš¤{éï‰ÈßILNN–J¥ÊWû”””ñãÇãeNÇ'©TêòåË322&L˜““ƒÿ×÷ÚNKK‹L&sqqÁ']]]ñ²………¢å²2õõõnnnxÙÃÃÃÃÃCÇFiË P4âî««S ‘ °´´ÔÑrŸ ìú$“ÉRRRŽ?Þùš;w¦¤¤`¯‡ÑÈHµ¯€€€ÌÌÌÔÔToooGGG}Áa±XT*•Ëåâ“Ož<1b„þQêêêðrEEÅ7ß|£»¾zNü¨TWWãÿ… £¦¦?ø|~qq±þ©zAŸƒNŸó^~~>•JmiiQ̹wïx}òÁ· Ÿ¯(K¥R&“Éb±Î;×k#øNéììÄçûùùq¹\‡ãééyàÀm½(ÊŠZttô„ 8‡Ã™={vHHˆò†¨ßï©çÄëÌ›7¯¦¦¦¤¤ÄÍÍ ±råʺººÊÊÊ3flÝÚË0T¸>………-X°@yŽ\.wqqÙ³g¦}nÞ¼ÙÔÔT ôÚˆD"ñöö677Ççwtt¬]»ÖÆÆÆÞÞ~ÇŽ"‘HG/*žº»»###,--ƒ‚‚ø|¾rïËUrâuFÅ`0¶mÛ†6l>|¸MhhhWW—îf˜ûˆ~°oß¾ààà·Ñ2±¨ä$ê5–aî#úDwwwSSSbbâ•+W •AÞ‘œ{{÷îÝ©S§nܸqîܹ†Ê s6,,,l0cìxš3gNGG‡¡z×9™Lf\\Ü`Æ@ïkÀòÈ Op@BOr9ÙF ¤ôôã9$HH}^ Cõùr ‹blìØ{Åw=ŸGè5®Ð³gψ|ôû6©®þã§Ÿ~ôë³Ï\ E/gÍšÕk5²ÿôÿw%5µÄÂÂäÁƒõ‘%á…T×§în >žPØ—Weè8DB*O99º»¥##£ôôû†ŽC$¤ò”ž~J¥d2ùíÛººz ˆ0ÈãI ååUI¥Þ‘K¥²[·8†D äñtó&Gùe…BIO¿gÀ<ÄBOiioX‘Éä¿ýVÓÑÑe¨<ÄBO/^tת?1ºq£Ò y‡$žþóŸrõïb`võj©AòI<¥¥•ªLr9vÿ~}c#ß ‘ˆ… žêëÛ9œç¬P©”¬¬òÁD8dðtãF…¶§_R)FŽ»>ƒ}Ž…@jjZÜÝÿúTwsóVVf&&}½µµÓÖÖÂ@éˆlÏa;ââ>_²d’¡ƒ Î{ïÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòZ¿OXPP3Èi¡¦f¬Ï¢ÓÐAúŒ¯¯/>ô›:Z¿ŸÛÒÒ’““ã˜îÓ§·@`¸¡ƒô¢¢¢áõfîå{Ô©©©DçAh&00PÇRt}‚ä '8@žày‚ƒzR²ÞÙÙyݺu­­­ÕÕÕ5qâD ‹iÓ¦ýë_ÿ’J¥*u’““)š¸zõªúo¼é¶f+**¶M‚€ß7ºsçÎèÑ£e2Yuuõ÷ß?yòd‡cee¥±2—Ë>}z[[›Ž;;;§OŸÎb±>ýè£ð2ð={öô{s´5kccÓï6 @÷X ½Ž'”†ÕÄ0L.—ûúú⃔jDŸ###}||¤R©bŽP(tvvŽïw›ýà-5« ÝcJ|}¢P(›7oþùçŸñÉ7nxyy™™™ÙÛÛÇÆÆfΜ °³³Ã+h¸>))éÀʇÎСC£¢¢’’’jkk)Jnn®““Óï¿ÿ®1^G‘'11ÑÃÃÃÖÖ666öÒ¥K£G¶´´T<žÑ@#›6mÂËB¡ÐÌ̬¼¼ïëúõëãÆc2™===}jV_´ ìßñ„aXii©••†aÀØØxãÆIII€/^¨ü“ª\Ïçó­­­*²X,|õE‹ååå …B|‘J›Ê“€   @ øØßøòê4¶ƒaXAAD"Á0,))ÉÓÓS.—ãu,XP]]]\\ìêêzðàAÝÍjC÷ñô=õôôTUU …B™LVPPÞlG}àzmžŠŠŠðQ¹l6[y‘nOø€Øb±X¥ŒÇV ­Y©Tjgg—››‹aØâÅ‹cccuyRRR\]]u7« ÝžˆÿÄšš€±±quuuHHˆP(ôòòÒXY}àz+++;;»ŠŠ åšS¦LÁËîîîúç±°°Ðét•²¶ÚÚ¡R©Ë—/ÏÈȘ0aBNN~P⸹¹)‚566ö©Y=!øú„aØ©S§>þøc€H$ ŒŠŠ*++;yò¤Æú®_½zõ×_-“ÉÕººº>¼páB|RyG´™™™ššêíííèø×SøQ¨®®vppèk³ú@€§ÖÖÖæææçÏŸ,[¶ìéÓ§;wîôôôˆÅbccc‘H èìüó=!¡Pˆ–/_þÅ_Ô×׳Ùì… þôÓO€¼xñÂÏÏïÖ­[555™™™3fÌ1bDxxøÀÓª 1€6ð»Ð¯¿þzíÚµÊó·oß^[[[ZZºoß¾5kÖôµY½ÐvBÔÿú¤`äÈ‘«W¯niiQ,=~ü¸µµõÈ‘#Ož<Äd2%‰···¹¹9^AÛÀõB¡p×®]ãÇ733óôôŒ‰‰yõê¦å^Y÷õIñ­±¬-€¶¾6oÞljj*”ë$$$Œ5ŠÁ`lÛ¶M$énVo÷>â}cß¾}ÁÁÁŠI_c ö}YéîînjjJLL¼råÊà÷ŽžÃêËÝ»w§NºqãÆ¹sç*f6,,,lzGÇ“¾Ì™3§££Ce&“ÉŒ‹‹„ÞÑñÈ Op€<Áò$ôt÷.×Ј§—ûòùóçNár]Ÿ‹ ¤op8___mKµz9r$Œ.‰h"‘©XlÇbAö=___üÍnmü§£Go~÷ÝíQ£lŠŠ¾2t"!Ûõ)-­P_ß^UÕdè,DB*Oåå øèžt:5=ý¾¡ã ©<]»VF£Q‰LãH­ðBO2™üêÕR©ôÏwë[[;KJÈsƒNOEEµ|þ+Å$NÍÌ,3`b!§ŒŒ2í¯Í‘Hdׯ—I$2«@I<‰ÅÒ¬¬ ©T®€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<Áòȼñ=µ3gÎ*±äää47—:Å@ñ÷÷3fÌŸʃ84aÐéL#£!†NA)))ZÇ×ˆŽŽV—a(æÍ›§<‰®Op€<ÁòÈ Op€<ÁA?åâÅ‹çÎ Æçäåå:tH½f||¼««kccã‰'>|H§Ó?øàƒ 6àcì‚7o@Y,ÖĉÃÃí¬¬ú‘ª»»ûüùó¥¥¥<ÏÉÉÉÇÇgÕªUÊã¼ÇçÏŸ¯Y³&??¿ñÒB<,,ÌÁÁáéÓ§gÏž½wïÞ±cÇÔš¯ß=š››õ)!ôç¼÷ôéÓ†††Ý»w×ÖÖâÃ/† bmmmmmÿcZ¿†F£%%%}øá‡;wîtsssssÛ¶m›Ï¿ÿýoEƒVVVÖÖÖ ÃËËëСCöööiii}MuñâE++«ãÇOŸ>ÝÑÑÑÇÇ'..®¹¹ùæÍ›ê•ûÝ£¥¥ehhh_³ œþxÊËË›8qâ”)Sœœœòòòz­_VV¶bÅ …¢˜¨±2…BY²d‰b碢¢… ®X±Wûã?9r_*‰.\ˆŽš½nÝ:åCÇÄÄdÕªUÙÙÙÏŸ?Ÿ7o^YYÙgŸ}Æápt÷(•Jãââ–-[¶lÙ²¸¸8©Tª¼ú­[·ðÓæW_}¥d["‘|úé§x ê«Ëåòäääµk×.^¼xëÖ­UUU½î1uúì ?éùùù|}}{=ÏJ$’¦¦&ggg|R$‰D"ccc||m8::655^½zuàÀ77·¤¤¤ðððøøø—/_Ι3§°°U¼°°ÐÞÞÞÕÕU(vtt¸ººª4åêêÚÐЀ—SSS÷îÝ«‹]c€«W¯òx¼Ó§O;v¬¬¬ìܹsW÷óó+((ÀŠ–––2dÚ´iWOOOOII ½téÒÚµkû7îdŸ=ýïÿ{ñâ>ޝ¯o]]ÝÓ§OuÔLJn611Á'+Ñk_ÆÆÆgÏžˆˆ°±±a2™€®®®ñãÇÓh46› ÈÉÉY°`ò‘ª…B‘Ëÿüi¾ÐÐP///EmܼysûöíL&s̘1aaa%%%Wÿè£Áãǹ¹¹ .ÄoXÔWÏÊÊÚ¼y³ÍŒ3úwÚìó}D^^žL&[ºt©bN~~þèÑ£µÕ·¶¶666nllÄÿñ㯳³sÉ’%ÚVillÄ6ÖØØøí·ßŠD"Å?²‘‘‘ϯ¿þ:f̘û÷ïïÚµ `nnnmm][[;eÊå¦jkkÇŽ‹—œœzíÐÜܼbŠŢ¡C‡j\}È!³gÏ.((pvv¾sçN||¼¶Õ¥R©òþ×[}¡ožäry~~þ–-[>ùä|ιsçòóó7lؠퟚB¡Lž<ùÆ;vìPÌÔq¶Ä0,++  ©§§çàÁƒœ5k–D"QÜÌ;7&&ÆÙÙùÃ?´µµÅgúûû_¼xÑËËKq‰êîî¾råŠb¯Ñhš7V¹G€¥¥åwß}7bÄ~:Õ¶ºŸŸß?þèêê:vìXGGGm«8pàÉ“'Š×!uuuÚ¶]};ï±Ùl>Ÿ?þ|Ó×øûû766ÖÖÖêXëÿøÇíÛ·OŸ>Íårkkk/\¸pãÆ åÍ~ùòeGGG[[[eeåþýûy<~—!‘H¤R)F‹ÅøuâÕ«W€ &Èd² .,X°@ÑÈçŸÎçówîÜYRRÒØØøÛo¿…‡‡3 åC¿×>>>ñññ---\.w÷îÝ×®]Ó¶]Ó¦M …çÏŸW>‡«¯¾dÉ’S§Nvtt”””$&&ê¹·•éÛñ”——7yòdå—„nnnùùù¯Ï8...?üðC\\\VVƒÁ˜6mÚ?ü°uëVEE™ÉdN˜0áÌ™3øÙÆÜÜ<<<<&&ÆÔÔ488ØÏÏo÷îÝ™™™FFF¾¾¾¿üò‹ò@qfffgΜ9wî\\\\SS“½½½ŸŸ_@@NW¤­GÀ¦M›Nœ8B¡P|}}ÃÂÂÚÚÚ4nqNžï¿IDATF›3gNnnîœ9s3ÕW§Óé‰äÔ©Sííí...û÷ïß²eKo{Z•7~Ç—B¡Àò>aBBBssóW_‘jÐ4eæÍ›—’’¢8Êá{¾'‹y<ÞÍ›7×È÷øÁòÈ Opðÿ|ú»V´É€IEND®B`‚XQilla-2.3.0/docs/simple-api/MemoryManager_8hpp_source.html0000644000151400015140000002126311653571063020576 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

MemoryManager.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018  /*
00019  * $Id: MemoryManager.hpp 673975 2008-07-04 09:23:56Z borisk $
00020  */
00021 
00022 
00023 #if !defined(XERCESC_INCLUDE_GUARD_MEMORYMANAGER_HPP)
00024 #define XERCESC_INCLUDE_GUARD_MEMORYMANAGER_HPP
00025 
00026 #include <xercesc/util/XercesDefs.hpp>
00027 #include <stdlib.h>
00028 
00029 
00030 XERCES_CPP_NAMESPACE_BEGIN
00031 
00032 
00039 class XMLPARSER_EXPORT MemoryManager
00040 {
00041 public:
00042     // -----------------------------------------------------------------------
00043     //  Constructors are hidden, only the virtual destructor is exposed
00044     // -----------------------------------------------------------------------
00045 
00048 
00052     virtual ~MemoryManager()
00053     {
00054     }
00056 
00057 
00070     virtual MemoryManager* getExceptionMemoryManager() = 0;
00071 
00072 
00073     // -----------------------------------------------------------------------
00074     //  The virtual memory manager interface
00075     // -----------------------------------------------------------------------
00078 
00086     virtual void* allocate(XMLSize_t size) = 0;
00087 
00093     virtual void deallocate(void* p) = 0;
00094 
00096 
00097 
00098 protected :
00099     // -----------------------------------------------------------------------
00100     //  Hidden Constructors
00101     // -----------------------------------------------------------------------
00104 
00108     MemoryManager()
00109     {
00110     }
00112 
00113 
00114 
00115 private:
00116     // -----------------------------------------------------------------------
00117     //  Unimplemented constructors and operators
00118     // -----------------------------------------------------------------------
00119     MemoryManager(const MemoryManager&);
00120     MemoryManager& operator=(const MemoryManager&);
00121 };
00122 
00123 XERCES_CPP_NAMESPACE_END
00124 
00125 #endif
XQilla-2.3.0/docs/simple-api/classxercesc_1_1MemBufFormatTarget__inherit__graph.md50000644000151400015140000000004011653571064025163 00000000000000d8719a86ccab360ca8f9b823b3063e1fXQilla-2.3.0/docs/simple-api/ATGYearMonthOrDerived_8hpp__dep__incl.map0000644000151400015140000000041611653571064022463 00000000000000 XQilla-2.3.0/docs/simple-api/classDateOrTimeType.html0000644000151400015140000002177511653571064017412 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

DateOrTimeType Class Reference

#include <DateOrTimeType.hpp>

Inheritance diagram for DateOrTimeType:

List of all members.

Public Types

typedef RefCountPointer< const
DateOrTimeType
Ptr

Public Member Functions

virtual bool isDateOrTimeTypeValue () const
virtual bool hasTimezone () const =0
 Returns true if the timezone is defined for this object, false otherwise.

Member Typedef Documentation


Member Function Documentation

virtual bool DateOrTimeType::hasTimezone ( ) const [pure virtual]

Returns true if the timezone is defined for this object, false otherwise.

Implemented in ATDateOrDerived, ATDateTimeOrDerived, ATGDayOrDerived, ATGMonthDayOrDerived, ATGMonthOrDerived, ATGYearMonthOrDerived, ATGYearOrDerived, and ATTimeOrDerived.

virtual bool DateOrTimeType::isDateOrTimeTypeValue ( ) const [virtual]

Reimplemented from AnyAtomicType.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/inherit_graph_35.md50000644000151400015140000000004011653571063016355 0000000000000016ca6bcb27e25c0a65acdba988f6cfa2XQilla-2.3.0/docs/simple-api/annotated.html0000644000151400015140000005371111653571063015474 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

Class List

Here are the classes, structs, unions and interfaces with brief descriptions:
AnyAtomicType
ExternalFunction::Arguments
ASTNodeEventGenerator
ATAnySimpleTypeThis class represents the atomic types (ie, the simple types which are not list or union types) with type annotation xs:anySimpleType
ATAnyURIOrDerived
ATBase64BinaryOrDerived
ATBooleanOrDerived
ATDateOrDerived
ATDateTimeOrDerived
ATDecimalOrDerived
ATDoubleOrDerived
ATDurationOrDerived
ATFloatOrDerived
ATGDayOrDerived
ATGMonthDayOrDerived
ATGMonthOrDerived
ATGYearMonthOrDerived
ATGYearOrDerived
ATHexBinaryOrDerived
ATNotationOrDerived
ATQNameOrDerived
ATStringOrDerived
ATTimeOrDerived
ATUntypedAtomic
AutoContextInfoReset
AutoContextItemTypeReset
AutoDeallocate< TYPE >
AutoDelete< TYPE >
AutoDeleteArray< TYPE >
AutoDocumentCacheReset
AutoMessageListenerReset
AutoNodeSetOrderingReset
AutoNsScopeReset
AutoRegexGroupStoreReset
AutoRelease< TYPE >
AutoReset< T >
AutoStackFrameReset
AutoVariableStoreReset
BaseInteractiveDebugger
BoolResult
BaseInteractiveDebugger::BreakPoint
Collation
ContentSequenceFilter
BaseInteractiveDebugger::Continue
DateOrTimeType
DebugCommand
DebugListenerA class used to listen for debugging information
DocumentCacheExpression Context is a storage for contexts
xercesc::DOMDocumentThe DOMDocument interface represents the entire XML document
xercesc::DOMNodeThe DOMNode interface is the primary datatype for the entire Document Object Model
xercesc::DOMXPathNSResolverThe DOMXPathNSResolver interface permit prefix strings in the expression to be properly bound to namespaceURI strings
DynamicContextThe execution time dynamic context interface
EventFilter
EventGenerator
EventHandler
EventSerializer
ExternalFunction
ExternalFunctionResolver
FastXDMConfiguration
FunctionRef
InputParser
xercesc::InputSourceA single input source for an XML entity
InteractiveDebugger
Item
ItemFactory
xercesc::LocalFileFormatTarget
xercesc::LocalFileInputSourceThis class is a derivative of the standard InputSource class
LocationInfoA class that gives records a location in the query
xercesc::MemBufFormatTarget
xercesc::MemBufInputSourceThis class is a derivative of the standard InputSource class
xercesc::MemoryManagerConfigurable memory manager
MessageListenerA class used to listen for warnings or trace information
ModuleCache
ModuleResolver
Node
NSFixupFilter
Numeric
QueryPathTreeFilter
BaseInteractiveDebugger::Quit
XQillaAllocator< _Tp >::rebind< _Tp1 >
RefCountPointer< T >Super class of all the reference counted wrappers for Items
ReferenceCountedSuper class for reference counted classes
RegexGroupStoreThe pure virtual base class for accessing regular expression group values at runtime
ResultA scoped pointer wrapper for the lazily evaluated query result
ResultImplA lazily evaluated query result
BaseInteractiveDebugger::Run
SchemaValidatorFilterWill modify the incoming event stream by validating it against the schema definitions found in the DynamicContext's DocumentCache
Scope< TYPE >Used inside VariableStore to implement variable scoping
SequenceAn eagerly evaluated result of a query execution
SequenceBuilder
QueryPathTreeFilter::StackEntry
StackFrameA class that represents an item in a query call stack
StaticAnalysisRecords access to various parts of the context during static resolution
StaticContextThe parse time static context interface
StaticTypeClass that represents the static type of an expression
xercesc::StdInInputSourceThis class is a derivative of the standard InputSource class
xercesc::StdOutFormatTarget
StringPool
Timezone
StaticType::TypeMatch
UpdateFactory
URIResolverThis is an abstract class used to resolve URIs in different ways
xercesc::URLInputSourceThis class is a derivative of the standard InputSource class
StaticAnalysis::VarEntry
VarHashEntry< TYPE >The class that stores the values of the variables
VariableStoreThe pure virtual base class for accessing variables at runtime
VariableTypeStoreThis is the wrapper class for the variable store, which implements the lookup and scoping of simple variables
XercesConfiguration
xercesc::XMemoryThis class makes it possible to override the C++ memory management by adding new/delete operators to this base class
xercesc::XMLDeleter
xercesc::XMLEntityResolverRevised interface for resolving entities
xercesc::XMLFormatTarget
xercesc::XMLFormatterThis class provides the basic formatting capabilities that are required to turn the Unicode based XML data from the parsers into a form that can be used on non-Unicode based systems, that is, into local or generic text encodings
xercesc::XMLPlatformUtilsUtilities that must be implemented in a platform-specific way
xercesc::XMLResourceIdentifier
XPath2MemoryManager
XQException
XQillaProvides factory methods for creating XQQuery and DynamicContext objects
XQillaAllocator< _Tp >
XQillaConfiguration
XQQueryEncapsulates a query expression
XQilla-2.3.0/docs/simple-api/XQException_8hpp__dep__incl.md50000644000151400015140000000004011653571063020524 000000000000004056f397709085151cb1ade06b8d4b62XQilla-2.3.0/docs/simple-api/classSchemaValidatorFilter.html0000644000151400015140000005743011653571064020764 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

SchemaValidatorFilter Class Reference

The SchemaValidatorFilter class will modify the incoming event stream by validating it against the schema definitions found in the DynamicContext's DocumentCache. More...

#include <SchemaValidatorFilter.hpp>

Inheritance diagram for SchemaValidatorFilter:

List of all members.

Public Member Functions

 SchemaValidatorFilter (bool strictValidation, EventHandler *next, xercesc::GrammarResolver *grammarResolver, xercesc::MemoryManager *mm, const LocationInfo *info)
virtual ~SchemaValidatorFilter ()
void reset ()
virtual void startDocumentEvent (const XMLCh *documentURI, const XMLCh *encoding)
 Handles a document node as an event.
virtual void endDocumentEvent ()
 Handles a document node as an event.
virtual void startElementEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname)
 Handles the start of an element node as an event.
virtual void endElementEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName)
 Handles the end of an element node as an event.
virtual void piEvent (const XMLCh *target, const XMLCh *value)
 Handles a processing instruction node as an event.
virtual void textEvent (const XMLCh *value)
 Handles a text node as an event.
virtual void textEvent (const XMLCh *chars, unsigned int length)
 Handles a text node as an event.
virtual void commentEvent (const XMLCh *value)
 Handles a comment node as an event.
virtual void attributeEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)
 Handles an attribute node as an event.
virtual void namespaceEvent (const XMLCh *prefix, const XMLCh *uri)
 Handles a namespace binding as an event.

Detailed Description

The SchemaValidatorFilter class will modify the incoming event stream by validating it against the schema definitions found in the DynamicContext's DocumentCache.

It will add typing information, as well as default values and attributes, and will normalize values according to the schema normalization rules.


Constructor & Destructor Documentation

SchemaValidatorFilter::SchemaValidatorFilter ( bool  strictValidation,
EventHandler next,
xercesc::GrammarResolver *  grammarResolver,
xercesc::MemoryManager mm,
const LocationInfo info 
)
virtual SchemaValidatorFilter::~SchemaValidatorFilter ( ) [virtual]

Member Function Documentation

virtual void SchemaValidatorFilter::attributeEvent ( const XMLCh *  prefix,
const XMLCh *  uri,
const XMLCh *  localname,
const XMLCh *  value,
const XMLCh *  typeURI,
const XMLCh *  typeName 
) [virtual]

Handles an attribute node as an event.

Reimplemented from EventFilter.

virtual void SchemaValidatorFilter::commentEvent ( const XMLCh *  value) [virtual]

Handles a comment node as an event.

Reimplemented from EventFilter.

virtual void SchemaValidatorFilter::endDocumentEvent ( ) [virtual]

Handles a document node as an event.

Reimplemented from EventFilter.

virtual void SchemaValidatorFilter::endElementEvent ( const XMLCh *  prefix,
const XMLCh *  uri,
const XMLCh *  localname,
const XMLCh *  typeURI,
const XMLCh *  typeName 
) [virtual]

Handles the end of an element node as an event.

Reimplemented from EventFilter.

virtual void SchemaValidatorFilter::namespaceEvent ( const XMLCh *  prefix,
const XMLCh *  uri 
) [virtual]

Handles a namespace binding as an event.

Reimplemented from EventFilter.

virtual void SchemaValidatorFilter::piEvent ( const XMLCh *  target,
const XMLCh *  value 
) [virtual]

Handles a processing instruction node as an event.

Reimplemented from EventFilter.

void SchemaValidatorFilter::reset ( )
virtual void SchemaValidatorFilter::startDocumentEvent ( const XMLCh *  documentURI,
const XMLCh *  encoding 
) [virtual]

Handles a document node as an event.

Reimplemented from EventFilter.

virtual void SchemaValidatorFilter::startElementEvent ( const XMLCh *  prefix,
const XMLCh *  uri,
const XMLCh *  localname 
) [virtual]

Handles the start of an element node as an event.

Reimplemented from EventFilter.

virtual void SchemaValidatorFilter::textEvent ( const XMLCh *  value) [virtual]

Handles a text node as an event.

Reimplemented from EventFilter.

virtual void SchemaValidatorFilter::textEvent ( const XMLCh *  chars,
unsigned int  length 
) [virtual]

Handles a text node as an event.

Reimplemented from EventFilter.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/URIResolver_8hpp_source.html0000644000151400015140000001644111653571063020216 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

URIResolver.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _URIRESOLVER_HPP
00021 #define _URIRESOLVER_HPP
00022 
00023 #include <xqilla/framework/XQillaExport.hpp>
00024 #include <xqilla/items/Node.hpp>
00025 
00026 #include <xercesc/util/XMemory.hpp>
00027 
00028 class DynamicContext;
00029 class Sequence;
00030 class QueryPathNode;
00031 
00037 class XQILLA_API URIResolver : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory
00038 {
00039 public:
00041   virtual ~URIResolver() {};      
00042 
00048   virtual bool resolveDocument(Sequence &result, const XMLCh* uri, DynamicContext *context, const QueryPathNode *projection) = 0;
00049 
00055   virtual bool resolveCollection(Sequence &result, const XMLCh* uri, DynamicContext *context, const QueryPathNode *projection) = 0;
00056 
00060   virtual bool resolveDefaultCollection(Sequence &result, DynamicContext *context, const QueryPathNode *projection) = 0;
00061 
00069   virtual bool putDocument(const Node::Ptr &document, const XMLCh *uri, DynamicContext *context) = 0;
00070 };
00071 #endif
XQilla-2.3.0/docs/simple-api/inherit_graph_23.map0000644000151400015140000000025411653571064016452 00000000000000 XQilla-2.3.0/docs/simple-api/LocationInfo_8hpp.html0000644000151400015140000000651111653571064017037 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

LocationInfo.hpp File Reference

#include <xqilla/framework/XQillaExport.hpp>
#include <xercesc/util/XercesDefs.hpp>
Include dependency graph for LocationInfo.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  LocationInfo
 A class that gives records a location in the query. More...
XQilla-2.3.0/docs/simple-api/inherit_graph_43.md50000644000151400015140000000004011653571063016354 0000000000000021cc8f645afe281abc8bd2856cc54282XQilla-2.3.0/docs/simple-api/ATGDayOrDerived_8hpp__dep__incl.png0000644000151400015140000001331711653571064021305 00000000000000‰PNG  IHDR¨Ã™ÍzbKGDÿÿÿ ½§“„IDATxœíyTSWþÀoÈ¢"ÊBƒ‚ÂØ²9Nu* äP:?å€EEG,P:ŠÇƺk+Z{NE qcÊe§Å‘M¦C ¢©D- PÂ"ƒ‰†@B¶÷ûãu21 QbÌCïýþ¸ùrï÷~ßûäÝ÷²“0 ø°!º1 ñ‚ÄC )ÝuuuGŽ!ªÄ+eß¾}!!!ڛψôèQUUÕâÅ‹­]âsõêÕøøxÝŰÓÁƒ­UÂJ\½zU/‚Îñ‚ÄC )H<¤ ñbäªþ9þü™3gâãã×®]‹Gjjj>ýôSÞÙÙÙl6[(¦§§ß¹s‡J¥þîw¿Û´i“§§'ÞaÉ’%Úή®®~~~IIIfT%—ËÏž=ÛÔÔÔÛÛëîîôÁÉd½n/3cww÷úõëkkkÍ(ÏD†%K–äææN›6Íì´cÂLñ†ÕÔÔ0ŒÚÚZ­ø÷Þ{¯  ÐÛÛ»e˼ ˜:ujÿ_þò—àààãÇ._¾œœœœ‘‘1cÆ ¼Ozz:“ÉÔh4]]] 999vvvcªjxx8))ÉÑÑ111ÑÍÍ­££ãôéÓׯ_ÿꫯllô×6³g´³³‹‰‰Saã3—úŽŽŽ‡¦¦¦ ¡Pˆ'L˜àäääää„:Nÿ…B¡äææ¾óÎ;;vìðòòòòòÚºukPPÐwß}§MèàààääD§Ó>ýôS&“yñâűVuþüy‡ãÇÿá`±XAAA™™™}}}†ÍžÑÞÞ>!!a¬µ7Ì_SSãçç7oÞüðÃ+W®deeµ·· ‚sçΕ——ëîÇ'OžˆD¢æææýû÷÷ööâ—~J¥R¥RQ(…BŸk‡‡‡¾¾¾jµúܹsáááÚ$7n‹Å;vì¸víšP(üñÇ“’’ètºîâôÜAAAÙÙÙ=jooOMM-..m»æÏŸ/•JÏž=«{Ú2¾råÊo¿ý¶¾¾^$]»v-''ïùý÷ß ™ÞáéééÝÝÝwïÞåp8K—.5c>âkjjuŸëðòòrss«­­5zÑ„ãééùÍ7ßdff–––ÒéôùóçóÍ7[¶lÑvж †¯¯ï©S§ðÖÎÎ.))éÈ‘#“&MZ»vmhhhjjjQQ‘Mppð?ÿùOüRÇÖÖöÔ©SgΜÉÌÌìééa2™¡¡¡QQQT*Õ°¤ÑflÞ¼9===>>žD"'&& Ý. …R]]­ûÃáT*U©T~ûí·?öôôÜ¿ÿÇ 8v옿¿¿v^£„……íܹS.—‡††®[·_Øõ‚&†I÷íÕùùùkÖ¬y™ç¤¬ ‡ÃéëëÛ·oÑ…¼*Œ>ÁgÞó†K–,ár¹ºŸ_Ëçê EoooEE…ö:1V^Kñ---‰‰‰ï¿ÿ¾¿¿?ѵ¼B&Ož¼bÅŠ šù/ÒˆŸŸ_ii)ÑU¼rvìØñ"A3x-xÄ˃ÄC )H<¤ ñ¯øÙãÇ2¢« #çvíÚeý:¬TÊØÙ ‰.„ž?}úô¨¨(¢J±27n0H$’‡èB¬‡‡ÇôéÓu#$8¿ ¥¥¥'4ôK@uuª“èrÒs|iéM ņB!—•Ý$ºb€Q<†ayy*•F¥Rçå5À¹æÁ(þúõÎþþßÞÊøè‘äÆNBË!Åó¨Ôß>[C¥’‹Š~!¶B€N¼J¥),¼¡Tªñ›J¥º°ðºJ¥!¶*ëøÿ»õéS¹näéSy}}Qõt⋊nP(Ïl5…B*,¼AT=D—x¹\Y^Þ¬R©uƒ*•¦¼¼Y.7çƒH¯/p‰¯ªúU.WÆåreuõ¯Ö¯‡@à_PpL6ò¡2™TP×j‘øÁAyMM‹Ñ x•JS]ý«T:býªˆ"ñ·´â Q*Õ|kÖC,½H#I$ÿ{ ·wo!à³ÏVk#S§Ntt4õ¡–7‰×òíÕæáè8Y×ëäÉ4ÀŒæ|âð ¢¥¡ )H<¤ ñ‚ÄC )H<¤ ñ‚ÄC )H<¤ ñ‚ÄC )H<¤ ñ‚ÄC )H<¤ ñ‚ÄC )H<¤ ñ‚ÄC )H<¤ ñ‚ÄC )H<¤ ñb±oÄhoo¯ªª²H*ëpñb7 *jÑ…Œ°°°Ñ~‚|Ì`‚ËåZ¦ kA&Û“ÉöDW16¸\®¥|Yø«P0h¾QÇúýuy³AçxHAâ!‰‡$RxHAâ!ÅÚâI$’@ °`6C,•ܼz,¸u¯ÂŽøööv:þòy~úé§Þg±~ ¯#„}—­F£yüøñËçqqqyë­·ˆ­áu„°#~Á‚­3¥R™’’âêêÊ`0RRR”J%€D"åääøøø¸¸¸¤¥¥]¸paÖ¬Yöööû÷ï7¼¼¼< ÀÖÖ–Éd¦¥¥T*ÕÁƒÝÝÝ]\\6lØðäÉÞäóù»wïÆ;ÇÄÄH$‡ˆŽŽ–H$YYY€¼ÃÍ›7uP*•‰„F£ÅÅÅ …ÂÜÜ\@ÿ—_~9wî\>ŸëÖ­wß}w×®]†5¬[·.44ôþýû|>ÿí·ß>tèÞáý÷߯©©ùᇜ•J%†a¹¹¹sçÎÕh4†[·|ùr‰DRPP€‰gommmhh`³ÙÚ´zÁÙu|®~¼ˆ÷ööîííÅÛ•••þþþxg‡a˜B¡ÐkãI ïÇeee###---R©T­V×ÕÕáçÌ™SXXˆçÿõ×_ñ¶n …‚L&ß¾}¿YXXÈf³ñ|>Ã0•JõÖ[oUWWc¶lÙ²´´4£[wõêU ÃÔj5>¯n|/é¥Õ_d×ßi̦³³“Éü߯:ÛÛÿöºÙ”)ST*U¯­¥­­Ífëekmm—J¥xäÁƒ^^^xÛÇÇÇÇÇGoÈ£GÔjµ§§'~“Íf …¿ý´¼··7€L&¯^½º°°Ð××·ªª _x qssØØŸqòäI³sŽŒŒ( &“É<ŒÝ»wïíÛ·oß¾½eË–èÕ@¥R׬Y“œœÜÑÑqûöí}ûö­[·N/sPPJ¥:|øpll¬6Èápž>}jº¤mÛ¶ ‚¦¦¦={ö¬_¿ÞDÐzXêœ1Ös¼R©\´h‘—H$›6mrtttvvNHHÒíEe),,žð‡§/Ž“Óÿa8y²˜èBˆ¢ß×e`@pRsóa''X~3^HÏñ|üuŠ~à] 1@*žË½†aŒË½Ft-Ä£ø®.Ñ/¿<Ä0L£<Þƒ®®1?û£ø²²›dòoN&“ÊÊn[!À(>?¿I¥Rãm• ËÏo"¶B€Nü½{}­­}:¬µµïÞ½¾Q¼¡@'¾¤ä …¬¡PÈ¥¥F>ñf—x Ã.^üß:£R©óó›`{>.ñ7ovuw‹ ãÝÝâææ.ë×C p‰/.æé­ó8 ¹¸˜gýz"ñjµæÒ%ýuG¥R_ºt]­ÖX¿*¢€H|CC»Xäóù»wï6ÜË—/—H$ÏÍ©4½÷¸\®%}Y,Ñ ˆ‹Å,Ë××W»‘sçÎ={ö¬¶Ã¹sçL‹iii‘J¥jµº®®ï¬;…H$¢R©ÇŽ‹ÅfppP­Vë‰çñx†) ½v[[Þ“Ïçã¹\.›ÍÖîííÝÛÛ‹·+++ýýý ÷ÃÕ«W1 S«ÕÏÍ©4½÷,+Þªçx‡„„„;wî$%%á‘öövm___Óh4ZkkkDDļyóΞ=«“þ‹££cmmmCC‹Å ùñÇmlô·qÊ”)*•ª×Öâåå…7¼½½…B¡î¿:;;™L&>×Ò¥K;:: ‹tssèÍk4§‰‰^5VßÕÕ•žž¶sçN<2mÚ´ææfm‡;wî˜Î “É¢££SRRx<^FF†6®½#Ëd2FsñâE‘H´yóæ+VˆDcþéXüp´¶¶âµÐétí#‹ ‡½@1šÓÄD¯ë‰×h4qqq[·nÍËË«ªª*++ÄÅÅ¥¤¤”””ôõõ]¾|y÷îݦ“ŒŒŒ( &“É<Ôí@"‘ÂÃà $‰B¡ R©¶¶¶c-uÛ¶m ©©iÏž=ëׯ×ý×êÕ«?ùä“ðùüˆˆˆ“'O8ÎÓ§OÍÈib¢WŽ¥Îàyçø'Nøùù) ÃŠŠŠ˜L¦H$R(‡ž5k–ÝÂ… ¿ûî;`òaØñãÇœœ¦OŸž‘‘Ã`0ô&âr¹žžž4ÍÛÛ»¤¤Do8й,0lã=9ÎŒ3ètúÖ­[e2™îp‰D²iÓ&GGGggç„„„¡¡¡—É©4½‡_㋻碻‹ áU`4§½Æwˆñÿ S§NMLL´BÎW1ÑØ°ÔÒ,±Ô#L€–z„@â!‰‡$RxHAâ!ÞÏν¦XÊ—Å>B•ŸŸo©T+ïïÇC:ÇC )H<¤ ñòÿE0ýsEIEND®B`‚XQilla-2.3.0/docs/simple-api/ItemFactory_8hpp__dep__incl.png0000644000151400015140000000631211653571064020653 00000000000000‰PNG  IHDR€u ~6bKGDÿÿÿ ½§“ IDATxœíLS×ÀO¡í PÁºÑá1"nY2’‰vhÓ½I& ¨›¤Ø%H2Wd››da÷ØŒ³SÅI@ù ë¦ èF¥¼É‹cA"nüh«ŽJ)¶´·½ïûÞ}å¶+´Eçó×¹_îýžï½î=·ím Çq€€‡ì–:HdÈ ¡[.\½z5??V)K„ÇoÞ¼™\œ!@¥Rµ¶¶nÙ²e¡‹Z2tttdddXFèÖ+9rd¡êYrtttP"h € $2HdÈØ¸ šWQQ8/ðx<ë`{{û¼$w‚ùÝ»YqF‰B¡Ø¿CCƒ‹EH$‡·X¸$Àl6k4׋ðóó[¹r%Ü`áÒðî»ïˆE Ê‹‹ãããããã‹‹‹1 ðx<™L¶gÏž;vœ?þÒ¥K©©©o¾ùæéÓ§í'¿~ýzFF†@ HLL<þ<Àd29s&%%eÇŽZ­Öº­V[XXøÖ[o%%%:uÊ`0ŒŽŽòx¼ÞÞÞ””¡PøÅ_kêt:@pçÎë®{zzvíÚ÷Ýw߈ o¿ýv||ü‰'ŒF£Í ÇÐ%'OžÔÖÖ‹/^T(%%%_~ùeooï™3gˆ¸\.?uê”P(,--½~ýzYY™H$*//'ÿsõz½Î“ÉôøñãO>ùdíÚµ"‘¨´´ôÑ£G/^¼víZAAÁ±cdž‡‡+**¬k8~üøƒŠ‹‹=zóæÍÊÊJ"^]]›››žžÞÙÙi2™',,Ìz¿º»»KKKsrr¤R)Yd}}}AAÁçŸÞÝÝMüCüUÐ!æó.H&“egg³Ùl.—›™™yãÆ "ž’’âååÅçó;wîôòò€ÉÉIb…}ûöýÂ7n0™Ì²²²øûû³ÙlÀÔÔTKKKZZ—Ë =tèкuë(`våÊ•¬¬,‡Ãår÷îÝ{ùòeâOB¡pãÆ¯¼ò Nïëë´¶¶òù|f½#DÁ¯½öše‘"‘((((""bß¾}dZ›A‡pi   T*ÉEooo¢áåå Óé”6‰Í»Ž‘‘‘¢¢"N·víZ"¢R©‚‚‚ˆvHHHHHeµZm6›Ÿ}öYb100ðÁƒD{Íš5M›6]»vËåÊåòƒÚÜÅ Ùõš5kÈ´6ƒ1Ÿ|}};FJ­V;>>îtªééé¼¼¼¼¼¼èèh£Ñ(“ÉþþþJ¥244088ØÕÕµ{÷nË­X,–‡‡‡B¡ ÜŒ"•oÙ²%??ÿ¹çž[¿~ýªU«lönó´ár¹€ááaÂÐ_b.A:ŽhlÚ´©´´T¥Rݽ{7''§¾¾ÞéœF£Ã0:n0ˆ±äñãÇ|>_*• ?~\¥RQj Óé<ï믿V(CCCeee[·n¥dŽŒŒ4™LçÎ#.‰---SSSöK’H$£££¿ýö›T*ݶm› C¸t<óÌ3ëׯOLLüþûïééé‰$##ƒF£ÅÄÄdff:ÙÇÇG$åçç?ýôÓ;wîŒÍÉÉ©®®Öëõb±X¯×¿úê«D~J ÙÙÙ‰dÿþý ãõ×_ßµkåÊàááóã?ÆÄÄÁ¢¢¢¨¨(òši“­[·ï‚?6lhlltt+??¿÷Þ{o.A'XZgÀ" € $2HdÜ[ÀǺ?ÿÔÁ®Â%l܆¾ÿþû _‡shµAŸØ…8Ï ÁÁÁIII°Jq¹œM£Ñ¸\&ìBæ —Ë ¶ŒÐÜ÷+Jýýc±±ÿ´µåDD8ù™>tÜx hlü…N÷ Ó=›š~]‹ó¸«Ç++»1ÌŒa¦ÊÊ.÷=ÝU@OϽû÷ÿûq¹J¥‘ËïA-ÇyÜU@}}/ƒáI´ ϺºÁ­ÇiÜR†™kkåF£‰X4Mµµ=f†[•s¸¥€Ÿ˜˜Ð[F&&ô6±Zü¸¥€º:9>£r:V[+‡U+¸Ÿ½ÞØÜ| ÃL–A 377ßÒëy8.î' µõW½³Žëõƶ¶_¾q?55=žž6œòô¤ÕÔ¸ßUÈÍLNê¯\é·yÃaæ¶¶_µÚé…¯ÊÜL€LöoòîÓ£Ñ$“õ-d=®ãfoÆ©ÕSÍÿo@?ú¨ðÙg ddÅŠe,–½ÜnöX ‹åmy|½½™€gžŠ]$¸Ù%èï$2HdÈ A ƒ@ € $2HdÈ A ƒ@ € $2HdÈ A ƒ@ € $2HdÈ A ƒ@fÆ7d¾ýö[ˆ¥8Á… £€¤¤špg¾ …d{†›?Û¾˜ñôô˜L° qŒ_ Ã-TUUáˆ'FUU嘣12HdÈ A ƒ@æI $^UX7\L¸›Óh´ÁÁA§ûrˆ'%ÀÏÏïСC‹9á"áI (,,\Ì  Ž hll T«Õ€ÊÊÊ^xajjÊl6K$’ˆˆˆåË—GGG···§°S¾¹¹yãÆ^^^ÇæamjjŠŒŒ\¶l—Ë-//3¯!4íôéÓ«V­*,,,// õõõýøãÉ5^|ñE6›}àÀéé?"d4ÅbñêÕ«Ùl¶X,¶9 ê¥K—ÂÂÂX,VAAÁ_圵£9aù²Ìá­ˆwÞygÏž=J¥rõêÕÝÝÝ8Ž—””°ÙìÚÚÚ±±±––bzEbšXÇ­†Éd¦¥¥ŒŒ3¢Þ¿ß² ­VûÔSO+в²2:®ÕjÉ͉:SSS5T*$''k4š’’Àlj5ù|þÀÀ@WWWXXX^^žåæGMLLüã?úúú^zé¥ÜÜ\Ê>¶oß®ÑhjjjfÍI :úV„ÃÔjuPPPdd$ÙÙºuëΞ=K®pîÜ9û¦§§ûûûµZ­Édºzõ*±²eããã £¨¨ˆ˜œsrrÒd2Qôööâ8n0(í;wîköõõ‘ûf¹yxx¸B¡ Ú—/_ŽŠŠ¢ì# ££Çqbâ[û9)AûGoÞ òóó …·o߉DDäîÝ»–ÓrEFFÚÏÀd2ÁË/¿|öìY2Nû,«½½½««+((hóæÍ?ýô“‡µÎåË— ¥MBÎÁ>22c‚{÷îq8¢¯mÛ¶ YILÉJé×fN;͇ K$bE"xëÖ-r…Û·oÛÏ Óé’““Åbqoo/13ùO¡ÓéÌfó… ÆÇÇÓÓÓãâ✘˜•œ*{``€œà– €<çÔjuWW—õæ60›9ít4`6›ÓÒÒ²²²*++[[[›ššiiib±¸¡¡A©Tþðù¹¹ö“LOO &“©ÓéŽ9,&M& Ñh|>¿¦¦F£Ñ ƒAÌBìÙÙÙƒƒƒ7oÞüðÃ)³Þ&$$|ðÁ¿ÿþ{__Ÿ@ øæ›oR©tbb–Ïlæ´ÓÑœ \ûì'NœØ°aƒÁ`Àq¼®®ŽÃጠ†O?ý444ÔÇÇ'::š˜ÙÛ΀ãøW_}µråÊààà“'O¦¦¦²ÙlëkåóÏ?Ïd2ÃÃÃ(›‹aúM¬)•JCBB²²²t:åæfïÞ½,Ëßß_(NMM¹’“´7ÌË <+–» …'Q€ÍœNt„>Ytü ¬X±Â•¹¤çžs~:²<úLø ƒ.A‹$2HdÈ ¡þxw[[Û£G ”²Ë©SL¸÷³¡nÊŒcŽ»Õü?Ð$2HdÈüoàöõœCîIEND®B`‚XQilla-2.3.0/docs/simple-api/classVariableTypeStore__inherit__graph.md50000644000151400015140000000004011653571063023056 00000000000000e732790de6a7305d4bdbcc3735cd0650XQilla-2.3.0/docs/simple-api/classxercesc_1_1LocalFileInputSource__inherit__graph.md50000644000151400015140000000004011653571064025523 00000000000000b80aff30739d76ba2ce327fadd426b5eXQilla-2.3.0/docs/simple-api/inherit_graph_13.md50000644000151400015140000000004011653571063016351 0000000000000045879c42a2319a891b899aac2087429bXQilla-2.3.0/docs/simple-api/XQException_8hpp__incl.png0000644000151400015140000001614311653571064017650 00000000000000‰PNG  IHDRƒu#ºõbKGDÿÿÿ ½§“IDATxœíÝ{\Léÿðg¦©& J‰éF¶Dåçö¥¤bɽURÄ¢Û—]¿Y—VYÒ.I¥ˆ.ø …´+ÔºF´ »[R¤‹Š)5™©fæüþxö;;Õt‘š35Ÿ÷_gNç<Ïçœçé3ç6Ï¡€TT²ÈD ™@>ÈDòÑÈô ²CFßÿ½……ÙQô‰ú‰7n|õÕWjjjd"E2337lØ@výd¢þcùòå³fÍ"; )’™™Ivý\'2€|‰äƒL d"ù I‹—/_ZYY ßî¹wïžMQQþÈáp"##×­[7oÞ<„„‡ÿd)Šb.++ûŠ,--ËÊÊz*Ð{à.¾´Ð××wvv>räȤI“ FCCChh¨‹‹‹ŽŽBèÓ§OJJJ®®®ÅÅÅ111Ož<9xð •JE………©««‹!ÎŠŠ ww÷””„ƒÁpttC¥€tpL$EV­Z5xðàÈÈH„PTT”ŠŠÊŠ+ðŸNŸ>­¤¤:eÊMMÍ™3gFDDTTT¤¦¦â”””†´ÔKAòùüºº:<=xð`WW×^ªHÈDR„F£¤¥¥%$$¤¥¥Ðh§§§¯^½þ`t:}ÅŠ7nÜè Àû÷ïóÍ7õõõ¡›7o®ZµŠÃáðx¼“'O:88,Y²$((ˆÅbá…¹\nDDÄÒ¥K—.]ÁårñÉ×½{÷V­ZµtéÒ#GŽ477{zz"„–-[†Zž±X¬àààÅ‹/_¾üرcMMM!KKË7n¸¸¸,Z´èìÙ³"ƒ|üø±““ÓÂ… e¶ªTäÌ/ÛÙàó@&’.cÆŒqppˆŽŽ^½zµ¶¶6žÉb±˜L¦žž^«…õõõ‹‹‹ñ4‡Ãa·„š>}º™™ÙÑ£GkjjŽ=ºmÛ6:ž””tûöí   ÐÐзo߯ÇÇã’’’***"##CBBrrrNž<‰ç'''íÛ·ïálj‰‰ááá¡‹/¶ æçŸ®®®ŽˆˆØ¿vvö™3gðü»wï=zÔÍÍ-22çÄV>|xüøq??¿èèhÁÑV«J;˜ Ä2‘t!âÍ›7T*µ¤¤¤ÕŸ(JÛ…GIëׯŸßž¿iÓ¦œœŸÅ‹ „RSS¿ýö[mmmCCC¼dZZÚwß}§¦¦¦££ãææöèÑ#<ßÃÃCSSsܸqëׯOOO6—˽uëÖ¦M›ÔÕÕuttÖ®]+XrÉ’% cîܹ!A¢æàà0`À€3f „©Jd¥]‰ô¸b-]nܸ‘››êëëkaañ¯ý !Ä`0† RXXhjj*¼paaá¨Q£ðt||¼††FÛ Æ‚ N:‚çTVVjjjâi------<ýîÝ;;;;ÁŠŠŠŠxB°ð¨Q£ª««E†]SSÃçóGŒ?jhh–TUUE N3ÛRQQAmò¬ÈJ» è%pL$E>|øpäÈwwwccc—ÁA„µµõéÓ§ù|>þ¸gÏž›7o&&&ZYYu\fUUÕ¥K—ÌÌÌðYBHEEåÝ»wxº°°Ppv6xðàøøøŒŒŒŒŒŒ+W®–/--Åoß¾ÅY£-eee*•ZQQ?–——ã„Dʵ"r‘•v%ÐK I ‚ BBBtttlmmBöööÊÊʇÆuqqa2™>>>ÙÙÙ¥¥¥êêê{÷îmjj #„jkk™-á2üñÇeË–mß¾ýÉ“'÷ïßGÍ™3'::º¸¸¸¸¸øçŸ®¬¬Ä%Ìœ9óøñã•••EEE~~~ÉÉÉx~XXXYYÙ_ý-e _‡ Ñh–––‡®¨¨ÀOX[[··¥©©© ï ‘•Šœ ÄÎΤÅõë×?~|âÄ |Œ@£Ñ|}}===ÍÍÍÍÍÍ uòäÉcÇŽ•••©ªª:;;?{ölß¾};vì@mܸ±UÉÉɵµµŽŽŽ4mË–-‡?~¼““‡Ãñõõåp8S§NussÃ˯[·.,,lÆ  ÅÜÜÜÍÍíýû÷!kkkooo‡ceeåää$##3~üx;;»k×® W÷Ýwß………¹»»ËÊÊΞ=ÛÉÉ©½-=xðàĉg"µªŸ‹µšÙ½ º‹oê(ÊÎ;{v|".—[PPðÕW_õ`™ÂÊÊÊœ322z©ü®WÚ½H,--Ï;gooߣJ)8;í¢Ñh½—†™FQQqáÂ…’P))‘a‰i”””¶nÝ* •’ ™@>ÈDòA&2€|‰äƒL üÚ£ÿˆ‹‹»zõ*Yµóxò22ÍñÅV#—K§Ñ8b«ô*ÈDýÄòåËI¬½¦F>?ˆ†käHc•õ†OŸdÿ}¨†KK«®³_ã÷‘#G’Sw¿¿;_¤¹™·{÷å'î89Mݳg™¼¼ø¾Û.^|âç÷_##ÍÈÈÕÆ [½ 7@&ÝWUUïî~êéÓ·ÁÁß,_þâ °°jýú“>°ÂÃWÍœ9Fü€ž™tSvv±›Û):]öøñ5††"†s«ÑÛûìµky›7ÛlÙ2—J%éT |ÈD ;޽¹ÿµ9sŒBC¤“аmÛ…Y³ Žq4HìpÀgƒL>O]góæÄôôó==gw:x«Ø<|Xäî~JAA.&fí¸q#È|ÈDà3üõWņ ±õõìcÇ\¦MÓ%;œÖ>|`yxÄegíÛgçè8•ìpÀg€Lºêòåß½½Ï7"*Êeøp ½WÅåò÷ï¿~ËÎÎìÇíétY²#]™t®¹™·mÛ…øøÿþ·•¿ÿ|MÒÍ¿~ý¹—W¢––ÊñãkF‚·tô‰@'*+?ººžÊϯ ]9oÞx²Ãéªââêõëcß½ûælii@v8 ’þåÈuûv¾µõÁúzNjê–>”†BÚÚC¯]Ûòõ×ã£~øá*Ÿ߸ މ€h|>úëO?¥ÛÚN qPT”';¢n:>ÛßÿüôézaaÎJJȈ™ˆðñã'/¯ÄÌÌ¿~øÁÎÙyÙá|©gÏJ7lˆåryQQkLMµÈˆ™´öçŸåëÖÄÿ·'Ž";œžQSÓ°qcü½{…ß¿pýzs²Ã­A&-œ9“xaÊÝððUC†tôÕ>‡ ˆðð[AA©K—šýøãr9²#ÿ€LþÆá4ûùý÷âÅ'[¶ÌÙ¼yŽŒLÿ¼›qï^¡‡Ç)5µAÑÑkGV%;ð7ÈD!„JJ>lØ[RÂ<|x¥!Ùáô®òòZ7·Ø‚‚ÊC‡VØÚN ;€ÜÅ¡ŒŒ¿æÍ •‘¡Þ¸áÓïÓBhÄ¥ 6ÚÛOvu=µ}û¥æfÙ8&’n|>”~kåÊ©{÷Šuœ3I€ÇZ›0aä±c.jjÉGªA&’^ïß³<=O?yò†¬qÎ$k­®Žå2i’6ÙáH/ÈDR*'ç«k¬¬¬ÌñãkŒHçLà±ÖÒÒòüýçÿûßVd‡#¥ I£èèÛ{÷^±²÷ÓO+%aœ3ÒsgÏžËóç<؇(ï» I6»ÉÏï|rrޤs& ðXk =:zíØ±ÃÉGº@&’"¯_¿_¿þduuý±c«§O×#;Iôþ=ËÓ3î÷ßß„„8,ZdBv8RîâK‹ÔÔ§sç†((ÈýòËVHCíQUe$&º­Y3ÃÃ#ÎÏï¿pƒ_là˜¨ÿ¼’ÌÓsvŸçLà±Ö Ôáej♨Ÿ«ªª÷ð8•—Wzà€ý’%¦d‡Ó—W¯_²ªª^¦&‰ú3üJ²Áƒ¢£×êꪑNßÓØÈýÏ’Οφ—©õ6ÈDý~%Ùüù}{œ3Iÿàûï/ZXŒ…—©õÈDý~%ÙÍ›ôqÎ$kJ¥ÀËÔz d¢þ¿’ŒÅjŒŒ\=y²Ùáôx¬µû÷ áej½2Q¿‚_Iff6úèQgÙáô7‚±Ö–-ƒ—©õ0ÈDý~%YbbVÿçLܽûÒÓ󴺺¼L­A&êð+É *¥aœ3I€ÇZ+*z/Së)ðÍÙçݹS`m}°¡¡1-m ¤!ñÀc­-[f/Së)pLÔ‡ ^Iæà0ù‡ì¤mœ3IpáÂcÿóS§êÂËÔ¾õqq÷y<~«™uuìµkc޽uèЊƒ ‘ÂÎnRZÚÖ·o™ÖÖrrÞ´]àÒ¥œº:¶øësdvíÚEv  #™™yxœæñø3füóƒƒ?ÿ,··?öáëÌw¸NA.Æòåÿ——÷vß¾Tƒ.üfÇœœ7kÖDWUÕÏkDb„}d"‰ÖÐÐhoþéSÓ£GÅÆÆšøgÎd}ûí‰É“µããÝFŽBvŒÉÉÑ,˜0p }ÏžËEEÕ––²²2Lfòea,çÅ‹ò)Stà.[Çà:‘Dóõýï¹s¹\>…‚äåe/_þ.**óÒ%çLBee½òð8­¢ÂˆŒtñö>›“ó†ËåS©HUuÐÝ» üæ¦]‰$×;+VDˆF“6l‹Å9|Ø î‘I¬²²W×X.—÷Ç‚«{4šÌªUÓ~øÁŽÜØ$\±–PŸ>5mÞ|Fø ‡ËåUVÖ͘¡iH’ih(»¹Ízþ¼\ø&—Ë‹½ûèQ‰I8ÈD*$äתªºVªp¹¼kמÅÅÝ'+*ЩׯßoÝz®í|*•â啨ØÈH}d"I”›[™ÑöÎ=Bˆ ˆmÛ.ææ–ˆ?*Ð)6»ÉÅ%º©‰Ûö¢G”•ÕüôÓuR“|‰$—Ë÷ö>×ÁÕhïî~žR‘@»v¥¼|YÉåŠýšÇ㇅ÝÌÏ'æ¨úÈD'22#?¿¢í&#++C¡PLMµ6l0‡[ ’† ˆÙ³Ç-Zd¢  G¥RÚù¥>áå• òhWÊÁ½3É’ŸÿÎÚú€pO¥Ñ¨|>A¥R,, -šhcc¿*p<ÿÉ“×W®<½páqmí'YYZsó?—‡¨TÊþc /›m2‘!bѢù¹ox<‚F“¡P—Ë75ÕZ¼ØdÁ‚ ÇÃ&ú§ùæÍ?®\yšžþ¢±±YNŽÆá4#„äåi™™ZZð¬ã?Zd"6›]SSCb4R.))788!D¡PÆW·±1°¶;t¨Tx¦   ¬¬ü%%HB¯nläÞ½ûêÆ‚;w^áddb22*ÊAšŸMmÕ²-2QUUÕüAFT}øÀö÷¿5bÄÀéÓ5§L¡¬ ¯«G¡¡C‡~ÑóSÕ«›šx¹¹•”?}Z¹zµÑ¬YZ¯ÓOµjY?àž5k–øÂÿóâEÙÝ»ÓáLØ‹/zª(ÉéÕsæ „‡Óüøñë3ôɇm[†’††d‡Ä‡N—•Ú4$ÜÅ2€|‰äƒL d"ùz1â·ÚNt ¤¤díÚµA8;;3’ûP_Û‚7á÷ß§ÑhçÏŸÌOII‘““{öìþØÐÐàçç7aƒ1yòä   .—‹ºµß(¢ôÔ–vŠB¡Š­:r}I¯îFá–Ùq7c±X>>>ÚÚÚ úúú;wîäp8†! ΖíÅL¤¤¤äïïÿ¹k%''/Y²¤¼¼}êÊ’äê B¼ A466¹ººáîînffÖÔÔ„—ñññ™9s&—ˬÅb±FѶŠN÷BèåË—_¼Mé †Þ«ýùóçÏŸ?ÿÂB$§Ww\N§3Û+³ƒn¦¤¤”••%Xå·ß~5jTË'ÄÛ²Ÿ}Ltùòe üCž3gÎŒ3¦¡¡Ï燅…7nàÀÓ¦MËÈÈÀÇua^½zÕÄÄdÀ€êêêÁÁÁxæû÷ï¦NŠ>|8úß‘êÍ›7Gu÷î]‘+R(”'NŒ7nèСÁÁÁqqqÚÚÚƒÞ¾};^ ¹¹Ù××wذajjj¾¾¾ÍÍÍÓ¦M E1™L*•êããƒâñxÊÊÊ©©©¡ÚÚÚ5kÖ¨ªªjjjúøøp8œV‘R¹Ïĉß¿/¼ !99¹ØØØ'N$"22RMMíâÅ‹ååå©©©ššš¡¶_‚‰ºº:99¹o¿ý¶´´4>>!TUUEĉ'ââ∖9OÏ›7ïÖ­["WD9::ÖÕÕEGG#„ìííëêê"##q›±ÿ~;;»’’’¼¼~ü˜Á`455mݺ500PVV¶¦¦æÀóçÏÇëÊÈÈvÖÅ‹õôô„#ÁÓ~~~¡üü|Á¶ 6ãóù‹/–‘‘qvvÞ‚)ìþýûªªªÝØo|Ç´m,á­ âܹszzz]Ü^‘ý!”™™IÇÃ!‰¬BäL‘ ˆ3‘Ò«;Éd2eee.žÆ^¿~­®®Žo*ÙØØ›˜˜(**fggß¾}{Ñ¢E&&&·oßÎÈȰµµEUVVòx<]]]¼ºžž^ii©p$Xvvö¬Y³öíÛ×Þ&$$$dffÞºu+)))%%E°‡Ž2„åææ ÞÅý†µ=ŸÔÕª±0|¶…7§´´´‹ÛÛž#F „¨ÔÝ©UÌ”bîÕDׯSVVÎÈÈÈÊÊÒÔÔ´°°¸sç•Jíb7khh8{ö,BhÊ”)Û·oÏËË Äßmµ×ÊbkÙîd¢·o߆……Y[[{{{ã9OŸ>,ÐéO¨Ùl¶½½½¯¯oNNNxx8žùË/¿|ýõ×í­‚ÓŠÈ»kàÑššš¬¬,*•:þü”””‚‚SSÓÙ³g§§§ß¾}g¢aÆÉÈÈýýZ˜W¯^ihhG‚]¹r%""âìÙ³m7¡¼¼ÜËËëÀæææ;wîtssœ±;99íÙ³Õ „Ïœ9ìèèø¹û­cm Ãßc¡‚‚‚#Ftq{Û#òÒI«*:˜) ÄÖ«ñ³eee]‰ŠÍfóùüóçÏ3™ÌuëÖ-\¸Édv±›±råJÁS# eîܹ¸ö¶Úkeñµ¬ð·hWŽcy<žµµõž={˜LæðáÃ/_¾Lľ}ûÔÔÔ’““+**ÒÒÒ:=£®©©¡P(iiiø™„PNN޳³sYY®Eä!k{+-/ò‹œöòòúæ›o^¿~ýôéÓ)S¦lܸ‘ ˆóçÏ3 ‚ ÒÓÓ †¡¡¡`KW®\ieeUTTôìÙ3CCÃ;v´ÕÎ;ÇŒÃf³…7Ïç/X°ÀÂÂN755;::â¿~üøqìØ±–––¿üòK~~~`` BHMM­±±ñs÷Þ̶wñÛk,\š¥¥åË—/=z¤¯¯¿cÇŽ.n¯àòÓñãÇkkkÛÛá"«h¯ÞˆíìL<½ººº!óñãÇ¥K— ¯ŽwlÛ2Ùl6NOJJª®®ŽŠŠ¢ÓéŸÕÍ\\\ÆŒsõêÕW¯^Ý»woêÔ©›7on¯RŒ¬–ýìLtäÈ‘ &àÛ„—.]RWWg2™MMM»wïÖÖÖf0Ó¦MKLLì¸Í‚8tèÐ!CFŽîè訬¬Œ/Ð`íýÏ·]QMMMä.k5]WW·víZeeeWWW|Mº¶¶–F£á‹| rrr~~~‚Š˜LæªU«TTTÔÕÕ·lÙÂf³Û‹ŠÍf3&00Pxbccååå…/!=zôˆJ¥&%%á,ËÛÛÛÈȈN§ëêênÛ¶ÍÂÂÂÁÁá³ö›`óE~Ljl,\Ztt´–––ªªê¦M›Ølv§ÛÛÜ܇"ZîX‘ež;wNWWWNNÎÀÀ %%¥©©©ëÝŒËåîÚµËØØXAAaôèÑþþþxŸ‹¬#«e{åy¢®n‚466>xð ·kC눬¢õJÔóDЫ‰ÞlYøÝ™‘““Ãz m IAƒ¹¹¹‰¿ 1Ô z[ﵬˆõ%gÄ_ åðíªQzµDiÛ²pL d"ù È™@>ÈDò‰xóbyy¹øã -‡C§÷Ì[¹¡WK”¶-+"ˆ+:ÑS™zµ¤iÕ²-ž'RÀu"ù È™@>ÈDòý?qÎSJH³WIEND®B`‚XQilla-2.3.0/docs/simple-api/classxercesc_1_1DOMDocument-members.html0000644000151400015140000007261011653571063022327 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

xercesc::DOMDocument Member List

This is the complete list of members for xercesc::DOMDocument, including all inherited members.
adoptNode(DOMNode *source)=0xercesc::DOMDocument [pure virtual]
appendChild(DOMNode *newChild)=0xercesc::DOMNode [pure virtual]
ATTRIBUTE_NODE enum valuexercesc::DOMNode
CDATA_SECTION_NODE enum valuexercesc::DOMNode
cloneNode(bool deep) const =0xercesc::DOMNode [pure virtual]
COMMENT_NODE enum valuexercesc::DOMNode
compareDocumentPosition(const DOMNode *other) const =0xercesc::DOMNode [pure virtual]
createAttribute(const XMLCh *name)=0xercesc::DOMDocument [pure virtual]
createAttributeNS(const XMLCh *namespaceURI, const XMLCh *qualifiedName)=0xercesc::DOMDocument [pure virtual]
createCDATASection(const XMLCh *data)=0xercesc::DOMDocument [pure virtual]
createComment(const XMLCh *data)=0xercesc::DOMDocument [pure virtual]
createDocumentFragment()=0xercesc::DOMDocument [pure virtual]
createDocumentType(const XMLCh *name)=0xercesc::DOMDocument [pure virtual]
createDocumentType(const XMLCh *qName, const XMLCh *, const XMLCh *)xercesc::DOMDocument [inline, virtual]
createElement(const XMLCh *tagName)=0xercesc::DOMDocument [pure virtual]
createElementNS(const XMLCh *namespaceURI, const XMLCh *qualifiedName)=0xercesc::DOMDocument [pure virtual]
createElementNS(const XMLCh *namespaceURI, const XMLCh *qualifiedName, const XMLFileLoc lineNum, const XMLFileLoc columnNum)=0xercesc::DOMDocument [pure virtual]
createEntity(const XMLCh *name)=0xercesc::DOMDocument [pure virtual]
createEntityReference(const XMLCh *name)=0xercesc::DOMDocument [pure virtual]
createNotation(const XMLCh *name)=0xercesc::DOMDocument [pure virtual]
createProcessingInstruction(const XMLCh *target, const XMLCh *data)=0xercesc::DOMDocument [pure virtual]
createTextNode(const XMLCh *data)=0xercesc::DOMDocument [pure virtual]
DOCUMENT_FRAGMENT_NODE enum valuexercesc::DOMNode
DOCUMENT_NODE enum valuexercesc::DOMNode
DOCUMENT_POSITION_CONTAINED_BY enum valuexercesc::DOMNode
DOCUMENT_POSITION_CONTAINS enum valuexercesc::DOMNode
DOCUMENT_POSITION_DISCONNECTED enum valuexercesc::DOMNode
DOCUMENT_POSITION_FOLLOWING enum valuexercesc::DOMNode
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC enum valuexercesc::DOMNode
DOCUMENT_POSITION_PRECEDING enum valuexercesc::DOMNode
DOCUMENT_TYPE_NODE enum valuexercesc::DOMNode
DocumentPosition enum namexercesc::DOMNode
DOMDocument()xercesc::DOMDocument [inline, protected]
DOMNode()xercesc::DOMNode [inline, protected]
DOMNode(const DOMNode &)xercesc::DOMNode [inline, protected]
ELEMENT_NODE enum valuexercesc::DOMNode
ENTITY_NODE enum valuexercesc::DOMNode
ENTITY_REFERENCE_NODE enum valuexercesc::DOMNode
getAttributes() const =0xercesc::DOMNode [pure virtual]
getBaseURI() const =0xercesc::DOMNode [pure virtual]
getChildNodes() const =0xercesc::DOMNode [pure virtual]
getDoctype() const =0xercesc::DOMDocument [pure virtual]
getDocumentElement() const =0xercesc::DOMDocument [pure virtual]
getDocumentURI() const =0xercesc::DOMDocument [pure virtual]
getDOMConfig() const =0xercesc::DOMDocument [pure virtual]
getElementById(const XMLCh *elementId) const =0xercesc::DOMDocument [pure virtual]
getElementsByTagName(const XMLCh *tagname) const =0xercesc::DOMDocument [pure virtual]
getElementsByTagNameNS(const XMLCh *namespaceURI, const XMLCh *localName) const =0xercesc::DOMDocument [pure virtual]
getFeature(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNode [pure virtual]
getFirstChild() const =0xercesc::DOMNode [pure virtual]
getImplementation() const =0xercesc::DOMDocument [pure virtual]
getInputEncoding() const =0xercesc::DOMDocument [pure virtual]
getLastChild() const =0xercesc::DOMNode [pure virtual]
getLocalName() const =0xercesc::DOMNode [pure virtual]
getNamespaceURI() const =0xercesc::DOMNode [pure virtual]
getNextSibling() const =0xercesc::DOMNode [pure virtual]
getNodeName() const =0xercesc::DOMNode [pure virtual]
getNodeType() const =0xercesc::DOMNode [pure virtual]
getNodeValue() const =0xercesc::DOMNode [pure virtual]
getOwnerDocument() const =0xercesc::DOMNode [pure virtual]
getParentNode() const =0xercesc::DOMNode [pure virtual]
getPrefix() const =0xercesc::DOMNode [pure virtual]
getPreviousSibling() const =0xercesc::DOMNode [pure virtual]
getStrictErrorChecking() const =0xercesc::DOMDocument [pure virtual]
getTextContent() const =0xercesc::DOMNode [pure virtual]
getUserData(const XMLCh *key) const =0xercesc::DOMNode [pure virtual]
getXmlEncoding() const =0xercesc::DOMDocument [pure virtual]
getXmlStandalone() const =0xercesc::DOMDocument [pure virtual]
getXmlVersion() const =0xercesc::DOMDocument [pure virtual]
hasAttributes() const =0xercesc::DOMNode [pure virtual]
hasChildNodes() const =0xercesc::DOMNode [pure virtual]
importNode(const DOMNode *importedNode, bool deep)=0xercesc::DOMDocument [pure virtual]
insertBefore(DOMNode *newChild, DOMNode *refChild)=0xercesc::DOMNode [pure virtual]
isDefaultNamespace(const XMLCh *namespaceURI) const =0xercesc::DOMNode [pure virtual]
isEqualNode(const DOMNode *arg) const =0xercesc::DOMNode [pure virtual]
isSameNode(const DOMNode *other) const =0xercesc::DOMNode [pure virtual]
isSupported(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNode [pure virtual]
lookupNamespaceURI(const XMLCh *prefix) const =0xercesc::DOMNode [pure virtual]
lookupPrefix(const XMLCh *namespaceURI) const =0xercesc::DOMNode [pure virtual]
NodeType enum namexercesc::DOMNode
normalize()=0xercesc::DOMNode [pure virtual]
normalizeDocument()=0xercesc::DOMDocument [pure virtual]
NOTATION_NODE enum valuexercesc::DOMNode
PROCESSING_INSTRUCTION_NODE enum valuexercesc::DOMNode
release()=0xercesc::DOMNode [pure virtual]
removeChild(DOMNode *oldChild)=0xercesc::DOMNode [pure virtual]
renameNode(DOMNode *n, const XMLCh *namespaceURI, const XMLCh *qualifiedName)=0xercesc::DOMDocument [pure virtual]
replaceChild(DOMNode *newChild, DOMNode *oldChild)=0xercesc::DOMNode [pure virtual]
setDocumentURI(const XMLCh *documentURI)=0xercesc::DOMDocument [pure virtual]
setNodeValue(const XMLCh *nodeValue)=0xercesc::DOMNode [pure virtual]
setPrefix(const XMLCh *prefix)=0xercesc::DOMNode [pure virtual]
setStrictErrorChecking(bool strictErrorChecking)=0xercesc::DOMDocument [pure virtual]
setTextContent(const XMLCh *textContent)=0xercesc::DOMNode [pure virtual]
setUserData(const XMLCh *key, void *data, DOMUserDataHandler *handler)=0xercesc::DOMNode [pure virtual]
setXmlStandalone(bool standalone)=0xercesc::DOMDocument [pure virtual]
setXmlVersion(const XMLCh *version)=0xercesc::DOMDocument [pure virtual]
TEXT_NODE enum valuexercesc::DOMNode
~DOMDocument()xercesc::DOMDocument [inline, virtual]
~DOMNode()xercesc::DOMNode [inline, virtual]
XQilla-2.3.0/docs/simple-api/xqilla-simple_8hpp__incl.map0000644000151400015140000001011011653571064020177 00000000000000 XQilla-2.3.0/docs/simple-api/ATStringOrDerived_8hpp__incl.map0000644000151400015140000000003511653571064020722 00000000000000 XQilla-2.3.0/docs/simple-api/classATBooleanOrDerived__inherit__graph.png0000644000151400015140000001513411653571064023174 00000000000000‰PNG  IHDR›(‘tbKGDÿÿÿ ½§“IDATxœíyTSWâÇoL"Kƒa aQ6…âQ±ZpP Vkgt,«•é°9O-XgZí9 UO[;‚ X—‘€€b{œK~¶U!QZ Dd ²$4l!ÛûýñÚL²!¯÷søã¾›ûîý¾÷áÝ—¼,€a@@ÄS@L3È(l £°ŒÂIo‹Ã‡ÿý÷3¡—?þxýúõºÛè7Êáp~þùç5kÖLS*Ä)**Љ‰ÑÛL¿QÀš5k Ž„00‘fè< È(l £°ŒÂ2 Óf” ‚……E```}}½Žö†½ýöÛ eºL®®®¨¨¨E‹Q(”Õ«W—––š$FssóŸÊêe:ÑÛ·oóù|>ŸÏf³½¼¼¶o߮㮮®K—.566Nc€ÉÒßßïççgiiÉd2kjjvìØùÝwßÞ3Ç£Ñh†÷3&ôzt‚ØÛÛ;::=êààÐÛÛK§Ó56¸ººNc€É’––œ››‹/¾üòËÝÝÝŸ}öÙÆ ìY¡Pô÷÷p*ë>>¶¶¶GÈd²´´4WWW{{ûÝ»w hëP\\¼oß>ÕØiiigÏžÅË{öì¡Ñh...ÉÉÉb±XunT-¡wëärù±cÇ/^leex÷îÝiÛõ˜> ƒÁÐÛ P__?88888ØÙÙ¹wïÞèèh壙™™aaammml6{åÊ•är¹ª£kkðÆoTUU o€. srrýýýÇŽóõõe³ÙÇßß?99Y[ÿB¡ ´mÑÎ;CBBZZZØlöÒ¥KÓÓÓU3«–ÇÇлu'Nœ Óé%%%]]]ß~û­³³³^&“©_„Þ7ª …BillT>êííÍçóñryyùŠ+Ô¶Y[6›­­>(‹ÅÂ0L"‘¸\î’%KJJJðfÊòøÕ@(j܉DB$>|ˆ/–””xzzê0ªCïÖ-^¼øÜ¹sÊ_ýõl4Êårñòððð| |ÔÜÜ\Õ7•JUÛfm $‰¶ø ?V `nnÎápÆÇÓ¸ºƒƒÃ­[·T›ÕÔÔ¬Zµjxx¸½½0::Š×³ÙlsssÕÌMMMªFÕbèÝ: ‹úúzeƒL—Q£œG---÷ìÙóèÑ#ì·c—F£)} …ÂêêjµU´5 “ɺÌ™ó»MpvvnmmÅËõõõŸ~ú©ŽÕ·lÙrüøqLe‚¹xñ¢T*µ´´tpp ‰<¯oii™?>^–Éd€ÎÎNÕqÕbèݺE‹544(gèÝÃ1JÀô}º3""€Þ59Édâ:t€®ëÂ2 È(l £°ŒÂ2 È(l £°ñ¢½{—gê3Ä„>Ãðý÷ßoذÁØQŒ‡D2·£c»{‹©ƒÌúâoÇ?×´·[ŽZXXØ››ËLeê0Œ èm¦ÿº.ikëß¿crò&Sg1:ðŸG»ÚÚúEEµ¦Î2Ào´¸ø™L´· êëÛLÇè@nT¡À˜ÌZ©T ‘ˆW¯Ö™:‘ÑÜèÝ»<`/Ëdò+WîÉå ÓF26--­#‘þ·Áð;¿†Ù¨T*¿zµN&ûßAI"KKï›0Ò ³Ñ›7 ©ÖÈdò²²‰ä9~Uª˜–”Ü'Õ¿ð52"f±~6Iž™Z£ÃÃc7n°Ç?š3gNq1Ì/´F+*ñ-jÈåŠÿþ÷áððØø‡àZ£¥¥÷µ]ß”HdååÓ÷öYœFE¢Q뱎KÖ¥¥Ð^j€óJýؘ¬»ûåbEEã¡C%wî|¬¬!縸ؘ"šÑ™ÎïxÏÌÌH Ú)íí­ª5ç¬û"ƒŒÂ2 È(l £°ŒÂ2 È(l £°ŒÂ2 È(l £°ŒÂ2 È(l £°ŒÂ2 È(l £°ŒÂ2 È(l £°ŒÂ2 È(l £°ŒÂ2 È(lÌêoóx¼ŠŠ ÃûyøP8sæŒá]bcc§¥#1«¿µ_XX¸}ûvÃû™3ÇŒH¤J¥=†w˜Í{ <³®Þ»ùéE.K$Ï ï‡Édšzgèç90Š˜È(l £°ŒÂ2 È(lÀ`”@ 477›:Ål£Jx<F3u •Q…BÑßßoê&*£ø-ÞñE©Tš’’âàà@§ÓSRR¤R)€@ äååùøøØÛÛgdd\¸pÁÍÍJ¥:tȔѧïüª›Þf.—‹a—ËUmŸ™™ÖÖÖÆf³W®\yðàA¼qdd¤H$ÊÍÍDDDˆD¢ììl@__ß´ä1-³:ŸF½½½ù|>^.//_±bÞ¸®®Ã0‰D¢VÆ;1}Êf³7mÚôÕW_™6ØÌ•ÑE‹­]»V9Ó9rÄÊÊÊÏÏïµ×^[¾|yff¦iãÍ 0œG±ß>T@"‘~øáe½••U^^^^^žÆÆ:ÊÏ5P£€ŒÂ2 È(l £°ŒÂ2 /ŠÑ¾¾!SG˜!žƒ+ †_E,–óMwxø|û¹ÿ9¸¹ðs`4..ÎÀ,,|¨ÔŠŠL ƒöÖÀJfõ¬1-onÞœH .^ü¿iéÍÔ{E³Úè´Ðß?t÷n3¸oÈ®~£W¯Ö@«®nQ½q0¬Ào´¨¨V¡ÀD"¡¬¬ÞÔqŒäFŸ>íçp:ñ“Ÿ\®(*ª5u"£¹Ñk׉¼ŒaàÑ£N¯×´‘Œ äF îÊd å"™L¼zµÎ„yf˜þôSWkkŸjT*‡~â…Ùhii™¬¾OŸö?|Øi’<3´F1 +,¬•JjõÐO¼Ð½¿µ§G4¾Ÿxñ×3P­ÑÒÒd2QãC½½ƒ55¼Î3cÀiT.W”•ÕÉåØÜ¹¤ñ€ëס½Ôð¼÷2Fâフ‹MMÝׯ7|ðÁFeÍK¦È5Ìê_‘›.ÊÊêãã¿îê:iê 3œ³î‹ 2 È(l £°ŒÂ2 È(l £°ŒÂ2 È(l £°ŒÂ2 È(l £°ŒÂ2 È(l £°ŒÂ2 È(l £°ŒÂ2 È(l £°ŒÂ2 È(l £°ŒBÇ”f–Á`˜:ûD!“iVVkMb0™Ì){1èwöïß?]›a|’L`BDDD²ºAF,Xð©/è< È(l £°ŒÂ2 3dôðáÃ!##Ãä¨ÑÜÜL ´=ZPP@ÐD}ýìýYÁ™0ŠaXAA««+“ÉœÞNx<F3$›µµõ‡~¨íÑ­[·òù|>Ÿûömÿ7|}} Ô¸r͈Á`L¤eCC@(//<~üxjÃiì„Ëå² gÆÂ0 vÍh&ŽÑ‚‚‚õëׇ††z{{«aáÒ¥K>>>¶¶¶G$%%½ûî»ø£CCC–––<ÐÑI@@ÀÑÑ_سgFsqqINN‹Åø(yyy>>>ööö.\pss£R©‡*³®L&KKKsuuµ··ß½{÷ÀÀ€Ž-Ò˜ïêÚµkK–,¡ÓéIIIccc©Tš’’âàà@§ÓSRR¤RétíXÍLùa‚ǨB¡pssËÎÎÆ0ì£>òõõU> …999€þþþ›7oÚÙÙI¥R Ã.^¼èëë«P(tt¢vèìܹ3$$¤¥¥…Íf/]º4==%22R$åææ"""D"Qvv6 ¯¯OÙñcÇ|}}Ùl6‡Ãñ÷÷ONNVÝ µ4æÄÛ¼þúëMMMÕÕÕžžžx€ÌḬ̀°°¶¶66›½råʃêÞcÀ°cÔèF«««I$R__†aøÝ9ίcÀb±0 “H$.—+“É+++1 Û¼ysFF†îNTw´D"!‰>ÄKJJ<==ñQêêꔣ¨–¹\®²‡%K–”””àë666*Ë8jF5æÄÛ°Ùl¼ “ÉÄx{{óù|¼²¼¼|ÅŠº÷˜Fþ‹É2™Lõù “É\ºt)^vvvÉd|‘H$¾õÖ[%%%Ë–-«¨¨À$½à<{öL.—{xxà‹žžžxÙÊÊJ9ŠjY•§OŸzyyáe¥-'@Ù‰··7 µµÕÉÉIÙ€J¥êèÙpŒ{•ËåL&óĉƒ¿±ÿ~üð×áç¨`0¥¥¥………k×®uqq™H'8D"‘Çûõè[ZZæÏŸÄ-d[[[ñr}}ý§Ÿ~ª»ýøœ8ø‘ hjjÂÿ_i4—ËÅ ¡PX]]=ñTSaÊG÷Df]‹E$Ÿ={¦¬¹wïømê÷¯W–e2NwppÈÏÏ×Û ¾ûñú¨¨¨Çáp|}}SSSµ¢,+§Ó´´´eË–q8‡£º!ãŸëŽÏ‰· ær¹555^^^x€¤¤¤ðððÖÖÖ††ÿÄÄDÝ; Ìæóh\\Ü믿®Z£P(<<<>üðCLû¾Ž·°°‰Dz;‘J¥k×®¥P(x½@ صk—““Óûï¿?::ªc5£b±899ÙÙÙ™J¥FFF …BÕ5¾zQˉ·ÉÍÍ]¸p!F{ï½÷ð"‘(::ÚÆÆÆÎÎ.66vxxX÷N›ÕF§Æ?ÿùϨ¨(cô<½¨åœ®×¬]÷’‹Å]]]yyy—/_6u]Ìæœ³ëJýÝ»wW­Zõ׿þõü£©³èBcÎyóæ~yÙ]Çèúõë©SèGcN:ž••e’<ªÌ®ca8È(l £°ŒÂÆ‹b⎪ñB•˧NUš:Å aЫ—¢¢"Ò™=Ìëbcóƾ}¯ÿ‘:õ»UÞ¹sGùvÕ,§  åÎgÿûË‹[›:Ë„X°`ÁÔÖ…ÿþ£R©Ü×÷£¡¡±íÛýOžÜaê8Fþóheeãððàúõb±‘?ã3 €ßhIÉ}ü}õÑQiee£©ãÈŠ¿ûî¡\®‰„ââû¦Ndt 7ªÔ É••"‘Ø´‘Œ äF¯\¹§º(—+nÜ`›*Ì̳Ѿ¾¡[·šÔ®©9†˜~ûm¿»¢P`wî4÷öš*Ò ³Ñ¢¢Úñ—s Âõë³÷›e†­ÑövÁƒm㯟(ŠÂÂZ“Dš 5zýz=‘¨áš3†§£­­æ#Í Ð½råžL¦Ðø†aO¼³ë“cÓEOÏ ‰DôöþõÛ&b±t``ÄÑñ_8inî1Q4£ÿ•z@YY}|ü×]]'Md&€vÖ}aAFa… d6QØ@Fa… d6QØ@Fa… d6QØ@Fa… d6QØ@Fa… d6QØ@Fa… d6QØ@Fa… d6QØ@Fa… d6QØøÝw¼7lØ`Â(ÆcpЪ»ÛÉË«ÉÔAŒBPP~¿cœßýCEEÅË/¿L§Óg<•q±°º¹ e2Sç0=²±±Q­Qÿe ƒ1Ëïp…På“O>Q«AçQØ@Fa… d6Qؘâ¯È?>???&&&** ¯©ªª:|øðø–999111ÊE …²jÕª}ûöY[OâÖ+o¿ý6‹ÅšZZ5Äbñ¹sçjkkù|¾««ëºuëvìØA$Õš+ËË—/OHH˜`lÃO¹‡©Å0¬ªªŠN§³X,¥ÑÀÀÀââbŸÏOLLÄË€yóæN:åää„aX__ß—_~ùÅ_¤¦¦NahÃIHH°±±‰‹‹svv~òäÉÙ³gïÝ»wüøqü–ªà± E{{{qqqlll^^…BÑ; …B‰ŒŒ4Îèa*³î“'OÚÚÚ8ÐÜܬ¼-“™™™­­­­­-þ_lû$ `mmmkkkgg·dÉ’ØØØššši܆Iqþüykkë'N¼úê«...ëÖ­ËÊÊêîî¾qãÆøÆxlæççwøða''§¢¢¢‰ŒB¥Rccc§;û„˜ŠÑªªªåË—¿òÊ+®®®UUU“]H$*/s eddlݺ•Á`œ>}Z"‘h«T"“ɲ²²¶mÛ¶mÛ¶¬¬,™L¸sçNLL̦M›ÂÂÂþýïã-ƒƒƒ+**Þyç-[¶à•ååå»wïV=ÍÍÍwìØQ^^ÞÙÙ\WW·}ûv‡£›@ lÙ²¥ººZ[ ÕÕÿóŸÿà“öÇü¯ý _E*•þùÏÆ{¿ºB¡(((صk×æÍ›úé§ÉîXœIŧÜ@PPÐ'z±X<:::22ÒÞÞž››«¼€üùçŸ÷ööfeeeffÖÖÖâ·®×X©äÊ•+|>?;;ûøñãuuuùùù###©©©^^^/^LHHÈÉÉÀÿøã_}õU\\\vvöàààÐÐ@ ðôôT‹çééÙÖÖ†— <èåå5~+\\\ººº´ÅиzHHÈÍ›7ñ‹çµµµfff«W¯Ö¸zqq1“ÉŒ½pá®]»¦|KðIýùçŸ{zz‚‚‚AAA­­­Ož<Ñ»Ößþö·Í›7¿ùæ›»wïnjjÂÿ!d2YUUÕ{ï½çäääîî]^^®±Rµ«7nìÛ·N§»»»ÇÅÅÕÔÔÌ;÷ìÙ³IIIvvvøEéááa¼ñ_þò …²qãF€H$Ò@ (¿þ¼rll¬ŸŸŸ¹¹¹î-CãêøÃD"ÑãÇ•••›6mŸ‚_½¬¬,>>~ݺuvvvþþþSž´'ý̨ªªJ.—oݺUYÃb±ÜÜÜt¯uñâÅùóçÆÆÆ®\¹²ÿþ‚‚¡P¨P(œñ6óçÏïííÕX©ÚUwwwXX˜rñ¥—^"‘HŸ}öÙèè¨Ú±E£Ñø¹@¡Plmm›››_yåÕfÍÍÍ‹/ÆË®®®Ú¶¢££Cl| «›™™Þ¼ysÑ¢E·oßÎÉÉѶºL&S<ÜÝݵÅÐÍäŒ* ‹µwïÞ?ýéOxM~~>‹ÅŠŽŽžàHÍÌÌÞ|óÍÜÜÜ›9sæðùü… ºººh4šÆJÕ¨TêÉ“'ñÿ|KOOOOO_³fT*U}Ž3>Uhhèùóçýüü”§R±X|ùòeåþUêWð²²²€€m1´­òå—_zzz.^¼ØÅÅEÛê©©©---xƒÖÖÖ‰ìÏñLnÖe³ÙB¡pÆ ¿ÚÑÑÑÜܬ{Å@ zzz._¾L§Ó­­­I$Rppð_|ÁçóñW¡¡¡+U»Z·n]NNγgÏx<Þ®^½*•Je2‰D’H$øùlddD[’wÞyG(îß¿¿¦¦¦££ã‡~HHH Ñhª³ŽZì¾¾¾†††C‡ñùüˆˆm1´¸zõê¡¡¡sçÎmÞ¼YÇVlÙ²åôéÓ·nÝ555yyyºw©6&wŒVUU­\¹RõU¶———³³3‹ÅÒøTBIbb"^ nnnéééøÑ³oß¾S§NÅÇÇ“Éä×^{mçÎ+U'Þwß}÷Ô©S111!(((..ÎÌÌ,!!áÈ‘#QQQ!!!(--Õ˜ÄÒÒòÌ™3ùùùYYY]]]NNN!!! ƒL&ëˆM§Ó—-[væÌåì:>F__ŸÆI$Òúõë+++ׯ_¯c+Èd²T*=}út¿‡‡Ç¡C‡öîÝ«c—jãwŸa iiièýÑçˆO>ùÄÞÞ¾°°PYƒ®ëÂ2 È(l £°ŒÂ2 È(l £°ŒÂ†ú5#wwwµOÝ#f3</44TõšÑï®ë2Œ„0wwwåÛA8/ÄýG_(Ðy6QØ@Fa…ÿ‰ê OMHIEND®B`‚XQilla-2.3.0/docs/simple-api/ATGMonthOrDerived_8hpp__dep__incl.map0000644000151400015140000000041611653571064021642 00000000000000 XQilla-2.3.0/docs/simple-api/ATBase64BinaryOrDerived_8hpp__incl.map0000644000151400015140000000003511653571064021645 00000000000000 XQilla-2.3.0/docs/simple-api/LocalFileInputSource_8hpp__incl.md50000644000151400015140000000004011653571063021361 000000000000006801f4aa8d2e841aee02552cd8a65b0bXQilla-2.3.0/docs/simple-api/inherit_graph_27.png0000644000151400015140000000257611653571064016476 00000000000000‰PNG  IHDR…(_:®[bKGDÿÿÿ ½§“3IDAThí›K,k]Ç÷ùZU%ÞŠx <’ „„Ha&´‰ Æ^!a€#BD"ñŠbPDDãÕtÐm ¸©ˆWâRU©£ÒV»¿ÁNNzÏ£\zëˆó›íµwÖúïõ?{ŸVƒÖðßW àøÎvÁùÁ.8?ØŸ4îííU©T_"åg¢T*݇d?ŽŽŽNNNòóó}(é‡ruu¥ÑhHA²€üü|¹\îI?¹\^SSC rïvÁùÁ.8?Øç»àü`ôðÔÔTÒß"+**0 ;==õ†°OA•qzzŠaØWéy??ççç:ŽšÍf6‘ moogš=;;‹ŒŒô¥&>îGIIÉÒÒ1\]]-**ò†¤Bddd?Ó¬Ëå2™L¾ÔÃÄÇýÉdr¹œ¸²–——¥R)1ëp8Z[[£££Åbqkk«Ãᬭ­eff …¤¤¤™™´’6¸¾¾ž-‰bccQ!„ãããéééÁÁÁÅÅÅëëëèþ¡-DÅý¾¢VÌËËÄÄÄxaØÜÜ\ZZZxxøàà ÓJTh{{;11Q­Vÿu[áŸÈd2™Lßprrsxx!|||‰D÷÷÷ƒÁ!¨®®¾¼¼Ôëõ9998ŽûûûßÜÜLMMñù|Çiƒ‹E 444\__ÏÎÎîîî&''ãââ677F£R©LIIAâ©…<$ƒÀ`0 õ´‰YSN©Tj6›'''&“‰v%JUQQ±³³ƒã¸‡...Rûÿq? CKKKgg'„pvv¶´´Ô½‰äææ-V*•YYY~~~CCCf³Ùår===9NÚ Íf;>>ÆqÜétîïsss„€ùùy´j!Ï~ÐV$ùÁ”swwBh·Û=l¥ÒëõoöÐû~ìíí¥¤¤¸\®ÊÊʉ‰ ÷F…B÷S!T«ÕR©400°°°pcc¥¢ *Š‚‚‚¬¬¬úúz”3 @§Ó´Z-Ú m!~ÐV$ùÁ”óׯ_îÛ§]‰RÙíö7{è}?^__£££U*U``àíí­»Ðøøx¢#f³ùøøØjµªT*¡Íf›žžæñx&“‰)èïï¯P(\.×ËË Ê)‘Hæçç  h3ÔBУ´I~¼™ÓÃ6I©<@ëǧ¾òx¼êêêæææÜÜ\±Xì>UUUÕÙÙyqq¡×ëËËËGGG1 +++[YY±X,v»ÝÏÏO$Ñm6›Ýn///ÝÝÝ€§§§–––¶¶¶­­-“É´³³ÓÓÓƒÞÏÔBH€Ñhüí!Œ¶"šÂqœI,,,""¢©©éùù=ÉÉÉ@"‘( â1¡‡‡‡ÃÃÃÆÆÆjkkÅb±ÓéINN )//W(QQQL…¨Ûtl©GAAAPPZÀ”“z>¨+?y>>è‡ïY[[ÓjµÄpyy½f¿/Þ¿¯|‰^¯¯««;88°Z­¦«««±±ñ«EyšßÙI[[›Õj­¬¬4III ÍÍÍ_-Êû|?ø|~_____ßW ù·|›ûê‡ÀùÁ.8?Øç»àü`œì‚æó®J¥*--õ½”ŸÆíí-5HöýRÆáÂÂÂ$ )ˆAîÿÕØ÷þ`œì‚óƒ]p~°‹ÿY ÄÓ0·IEND®B`‚XQilla-2.3.0/docs/simple-api/Sequence_8hpp__incl.md50000644000151400015140000000004011653571063017076 000000000000000e61897032a9be09864da5b2f3442c84XQilla-2.3.0/docs/simple-api/InteractiveDebugger_8hpp_source.html0000644000151400015140000007374511653571063021771 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

InteractiveDebugger.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _INTERACTIVEDEBUGGER_HPP
00021 #define _INTERACTIVEDEBUGGER_HPP
00022 
00023 #include <string>
00024 #include <vector>
00025 #include <map>
00026 
00027 #include <xqilla/debug/DebugListener.hpp>
00028 #include <xqilla/ast/LocationInfo.hpp>
00029 
00030 #include <xqilla/debug/InputParser.hpp>
00031 
00032 class XQQuery;
00033 class DynamicContext;
00034 class DebugCommand;
00035 class InteractiveDebugger;
00036 
00037 class XQILLA_API BaseInteractiveDebugger
00038 {
00039 public:
00040   struct XQILLA_API Run {};
00041   struct XQILLA_API Continue {};
00042   struct XQILLA_API Quit {};
00043 
00044   static void outputLocation(const XMLCh *file, unsigned int line, unsigned int column,
00045                              unsigned int context = 0);
00046   static void outputLocationFromString(const XMLCh *query, unsigned int line, unsigned int column,
00047                                        unsigned int context = 0);
00048   static std::string regexFind(const char *regex, const std::string &str, int groupNo = 1);
00049 
00050   virtual ~BaseInteractiveDebugger();
00051 
00052   unsigned int setBreakPoint(const std::string &file, unsigned int line, unsigned int column, bool temporary);
00053   bool disableBreakPoint(unsigned int number);
00054   bool enableBreakPoint(unsigned int number);
00055   void listBreakPoints() const;
00056 
00057   void setStep();
00058   void setNext();
00059   bool queryStarted() const { return queryStarted_; }
00060 
00061   virtual void run() = 0;
00062 
00063   virtual bool changeFrame(unsigned int number) = 0;
00064   virtual unsigned int getStackSize() const = 0;
00065   virtual void stackTrace() const = 0;
00066   virtual bool outputCurrentFrame(unsigned int context = 0) const = 0;
00067   virtual void outputCurrentFrameQueryPlan() const = 0;
00068   virtual bool queryCurrentFrame(const char *queryString) const = 0;
00069   virtual bool currentFrameLocation(std::string &file, unsigned int &line, unsigned int &column) const = 0;
00070 
00071   virtual void setDoLazyEvaluation(bool lazy) = 0;
00072   virtual void setDoFocusOptimizationsn(bool opt) = 0;
00073   virtual void setDoProjection(bool opt) = 0;
00074 
00075 protected:
00076   BaseInteractiveDebugger();
00077 
00078   DebugCommand *findCommand(std::string &command) const;
00079   void checkBreak(bool entering);
00080   void breakForError(const char *message);
00081   void interrupted();
00082   void readCommand();
00083 
00084   std::vector<DebugCommand*> commands_;
00085   DebugCommand *prevcmd_;
00086 
00087   bool queryStarted_;
00088 
00089   struct BreakPoint
00090   {
00091     BreakPoint(const std::string &f, unsigned int l, unsigned int c, bool t)
00092       : file(f), line(l), column(c), temporary(t), disabled(false) {}
00093 
00094     std::string file;
00095     unsigned int line, column;
00096     bool temporary;
00097     bool disabled;
00098   };
00099 
00100   std::vector<BreakPoint> breaks_;
00101   bool step_;
00102   unsigned int next_;
00103 };
00104 
00105 class XQILLA_API DebugCommand
00106 {
00107 public:
00108   virtual ~DebugCommand() {};
00109 
00110   virtual const char *getCommandName() const { return name_; }
00111   virtual const char *getCommandNameCompat() const { return compatName_; }
00112   virtual const char *getBriefHelp() const { return briefHelp_; }
00113   virtual const char *getMoreHelp() const { return moreHelp_; }
00114 
00115   static bool matches(const std::string &command,
00116           const std::string &toMatch);
00117   virtual bool matches(const std::string &command) const;
00118 
00119   virtual void execute(InputParser::Args &args, BaseInteractiveDebugger &env) = 0;
00120 
00121 protected:
00122   DebugCommand(const char *name, const char *compatName,
00123                const char *briefHelp, const char *moreHelp)
00124     : name_(name), compatName_(compatName), briefHelp_(briefHelp), moreHelp_(moreHelp) {}
00125 
00126   const char *name_;
00127   const char *compatName_;
00128   const char *briefHelp_;
00129   const char *moreHelp_;
00130 };
00131 
00132 class XQILLA_API InteractiveDebugger :  private BaseInteractiveDebugger,
00133                                         private DebugListener
00134 {
00135 public:
00136   static void debugQuery(const XQQuery *query, DynamicContext *context);
00137   static void outputLocation(const LocationInfo *info, unsigned int context = 0);
00138 
00139 private:
00140   InteractiveDebugger(const XQQuery *query, DynamicContext *context);
00141 
00142   virtual void enter(const StackFrame *stack, const DynamicContext *context);
00143   virtual void exit(const StackFrame *stack, const DynamicContext *context);
00144   virtual void error(const XQException &error, const StackFrame *stack, const DynamicContext *context);
00145   virtual bool doLazyEvaluation() const { return lazy_; }
00146   virtual bool doFocusOptimizations() const { return focusOptimzations_; }
00147 
00148   virtual void run();
00149 
00150   virtual bool changeFrame(unsigned int number);
00151   virtual unsigned int getStackSize() const;
00152   virtual void stackTrace() const;
00153   virtual bool outputCurrentFrame(unsigned int context) const;
00154   virtual void outputCurrentFrameQueryPlan() const;
00155   virtual bool queryCurrentFrame(const char *queryString) const;
00156   virtual bool currentFrameLocation(std::string &file, unsigned int &line, unsigned int &column) const;
00157 
00158   virtual void setDoLazyEvaluation(bool lazy) { lazy_ = lazy; }
00159   virtual void setDoFocusOptimizationsn(bool opt) { focusOptimzations_ = opt; }
00160   virtual void setDoProjection(bool opt);
00161 
00162   unsigned int getCurrentFrameNumber() const;
00163   void output(const StackFrame *frame) const;
00164   void report(const StackFrame *frame) const;
00165 
00166   const StackFrame *stack_;
00167   const StackFrame *currentFrame_;
00168 
00169   const XQQuery *query_;
00170   DynamicContext *context_;
00171   bool lazy_;
00172   bool focusOptimzations_;
00173 };
00174 
00175 #endif
XQilla-2.3.0/docs/simple-api/classxercesc_1_1DOMDocument__inherit__graph.map0000644000151400015140000000033211653571064023702 00000000000000 XQilla-2.3.0/docs/simple-api/functions_eval.html0000644000151400015140000007014211653571063016533 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
 

- a -

- b -

- c -

- d -

- e -

- f -

- g -

- h -

- i -

- l -

- m -

- n -

- o -

- p -

- q -

- s -

- t -

- u -

- v -

- x -

- y -

XQilla-2.3.0/docs/simple-api/classEventFilter__inherit__graph.map0000644000151400015140000000134411653571064022002 00000000000000 XQilla-2.3.0/docs/simple-api/classXQQuery__inherit__graph.png0000644000151400015140000000635611653571064021150 00000000000000‰PNG  IHDRuüýõ†bKGDÿÿÿ ½§“ £IDATxœí{LS×ÀOÛ ­ÈÏÊÊ«<¦ݘŒŠ‹ {±£8ÙH6§¢0 ™ àcÙBÖ¹naJÑmJHFÜ ÀtL]¬<–A(1 €¶sl–áÄG1`ËJ¥XÚžßwëj ÅiK9Ýùüu{¾÷Üó=÷Ósîé¥ôR „³è¡º;Ì}=¡ö„ØÖ/’““ݕƞ‚‚‚ÄÄDrûO2™ì™gž wGV˜{¨««ËÉɱ¼$lÂùùùiii ›f(ŠõK|}Bì °'4ÀžÐ{BOó400@D]]¥¤©©ÉÛÛ[¡P( ‡Ã±¹õœ’’B¡P†††:×´P[[ çÃ? Öh4‰‰‰ââb2 b``À²³Z­öññ(•J÷¤;6.Ù²eËÈȈ\.ê©§Äb1™hJJJGGGaaaLLŒ\.W(ñññ"‘h®Z:ŽN§———«Tªêêj‚ t:ÝáÇg­>11QYYi¿M"‹–ÏÒÁ_ý588˜œú&&&|||ÆÇÇ-žìS"k¥§§kµÚªª*@ZZšV«­¨¨ŒC_ýõ¤¤¤ßÿ].—?ùä“………ÖÝoiia±X333Â'NÄÄÄXÞ%.ô¤Ñh¸\naa¡¥0::Z¥R‘Ûíííqqqd¢r¹BøøãK¥R2úË/¿X¶ík©Õj//¯#GŽh4³Ù<99i2™æªî³ÙüÊ+¯Ðh´ÌÌL›*•ʽ{÷¾ÿþûÂ'N$''[ÊgM‰Œ’#À`0Øl+•JƒÁ@£Ñ~þùg²–T*ŠŠ²î¾Ñh þñÇ!„/½ôÒÇ}šœú^}õÕŠŠ håiÖ”€Õ*Ã~ûÚµk½^OÊårƒaÝ}áž={öîÝ;66æíí}íÚµûéÂÃz |ñŭߪaaa–ì5Íàà õ#""âûï¿'·,s‘}­©©©®®.áÝ»w?N£Ñnß¾=Wõ¹¸q㆟ŸŸD":t(((ˆœàßgÖh4uuu-]º”|·Yξ}Jp>OäxºtéYØÐÐis½ììì 9zôè /¼à8y åÉd2ñùü¢¢"µZÜÜÜL–¿õÖ[[·nýã?.^¼ÿæ›oZ'zàÀ.—«P( ÅóÏ?Ÿ““3W-½^Ï`0êëëÇÆÆ$ ƒÁÐëõsUŸõúd6›SSSM&„Ð`0p¹Üôôt›³¼gÏž'žx‚ÇãÙ”Û§4«›íŒŒŒ¤¤¤ááa…B³ÿ~OF£1000((èØ±c÷§éá<•••­Y³†Î l6›\ûiµÚ7ÞxÃÏÏÅbåææÞ¹sÇ:Ñééi‘HÂd2ÓÓÓ- 6ûZÂÚÚÚÈÈHooïèè覦&Õg]ï?~œN§ÿöÛo–œ{{{©Tj}}½õ™=}ú4àèÑ£6g|Ö”æõ¤V«³²²X,›ÍÎÏÏ·¬÷¬OÝ®]»–,Y¢Õjç54« üœ»8ùàƒ222î¶'Ä8ééé›7o~ùå—ß|óÍÄïG,6zzzÖ­[·sçÎ 6<ðAðxr9‰‰‰jµú!‚Ç`Oh€=¡ö„Øx §žžaw§à|l×åÅÅÅ•••nIÅY G†…]óö6¸;gr§mÛ¶¹+g¡×zýƒ!8(hÒݹ<Û¶m³þ¢?zÖÿ}>ÜZZÚ¶bëìÙwçâL<íúTWwpõêíÁÁ›îÎÅ™x”§‘ë×5//Úwßõ¹;gâQžû ‚˜™1ÕÕ3›=gJ÷O&“¹¾þœÑh"_ŽMöözÎÝs<=;¤ÑLY^zyÑúݘsñORi?AüÓ™SSSÿÌŒÉ)9ñd0››/fëB­önW×ew¥ä\<ÄSGÇ ^צ (R©‡¬ú<Ä“TÚG¥ÚöÅh4·´\œšò„HžàI§»ÛÖvÉd2Û‡ffL2Ù¥…OÉéx‚§ööKƒq®¨g¬ú<ÁScãœ&ÌfØÙ9¨Õê2Wà ÷a¯_×XOzÏ>[\TôŸ¿ÚR̤ÓÑþfÚÙ“„…ùÙ”üoÅ –[’qž0ïýÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì °'4ÀžÐ{Bì \þj‰ÄÕMØ#“ÉFG{²E>Ÿáœþ ûçD,0^^T*}uõsIâÿ>8ð0,Xüðxê8j]b}Û~tttË–-<Çã‰D"•JE–“U¨TjBBBWWןþÙ××ÇçóÛÍÆýë=ÀíÛ·ËÊÊvíÚÅårAIIIllì²eË|>¿¦¦&..Ž"EEEÏ=÷Ü©S§222æL&F·´Åd2KKKCCCÁßó*Yn¹"nذ¡¸¸xåÊ•±±± wâþñ!,))‰ˆˆxùå—iii~~~Ÿ}öjµZ$;wîúõël6»¸¸Ø`0;;ˆúúúÚÚÚ¦¦¦¤R©¥¹„„„ÊÊÊ[·n ïÛ·¯±±Ñ&.—k2™¾úê«7.Ð)¸Üï©­­íüùó"‘ˆ¼ñî»ïvtttuu|||$ ‡Ãùâ‹/„BagggffæŠ+<è8Êd2…Bá矞““³iÓ&KsB¡ÐÇÇ''''???222//Ï&*•º~ýú©©©õë×/ài˜—ÿŽ/…Bqúß FãåË—W¯^ýÑû¡ªªjtt´ à~ŸÈÆãñjkkÓÒÒ¸Åyqÿxz‚p ÁqÔ1ƒA¥Rµ¶¶¦¦¦>hv.IO®cpp0///%%%..ÎݹÜâXï-Ö¬YÓÜÜìî,f'4ÀžÐ{Bì °'4Xˆõ^__ŸN§[€†<—~+ÚÕ7;®þ~¹'<ÿ鿾>¡ö„Ø`Oh𠨕šlR¿ëIEND®B`‚XQilla-2.3.0/docs/simple-api/FastXDMConfiguration_8hpp__incl.md50000644000151400015140000000004011653571063021324 0000000000000057dbf9331abab2f53ae6dfec80fd8b95XQilla-2.3.0/docs/simple-api/classSequenceBuilder__inherit__graph.map0000644000151400015140000000053711653571064022635 00000000000000 XQilla-2.3.0/docs/simple-api/functions_0x61.html0000644000151400015140000005603511653571063016307 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- a -

XQilla-2.3.0/docs/simple-api/classATDateTimeOrDerived.html0000644000151400015140000011642311653571064020273 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATDateTimeOrDerived Class Reference

#include <ATDateTimeOrDerived.hpp>

Inheritance diagram for ATDateTimeOrDerived:

List of all members.

Public Types

typedef RefCountPointer< const
ATDateTimeOrDerived
Ptr

Public Member Functions

virtual const XMLCh * getPrimitiveTypeName () const =0
virtual const XMLCh * getTypeURI () const =0
virtual const XMLCh * getTypeName () const =0
virtual const XMLCh * asString (const DynamicContext *context) const =0
virtual bool equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
virtual int compare (const ATDateTimeOrDerived::Ptr &other, const DynamicContext *context) const =0
 Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.
virtual ATDecimalOrDerived::Ptr getYears (const DynamicContext *context) const =0
 Returns an integer representing the year component of this object.
virtual ATDecimalOrDerived::Ptr getMonths (const DynamicContext *context) const =0
 Returns an integer representing the month component of this object.
virtual ATDecimalOrDerived::Ptr getDays (const DynamicContext *context) const =0
 Returns an integer representing the day component of this object.
virtual ATDecimalOrDerived::Ptr getHours (const DynamicContext *context) const =0
 Returns an integer representing the hour component of this object.
virtual ATDecimalOrDerived::Ptr getMinutes (const DynamicContext *context) const =0
 Returns an integer representing the minute component of this object.
virtual ATDecimalOrDerived::Ptr getSeconds (const DynamicContext *context) const =0
 Returns a decimal representing the second component of this object.
virtual const Timezone::PtrgetTimezone () const =0
 Returns a timezone object representing the timezone component of this object.
virtual bool hasTimezone () const =0
 Returns true if the timezone is defined for this object, false otherwise.
virtual ATDateTimeOrDerived::Ptr setTimezone (const Timezone::Ptr &timezone, const DynamicContext *context) const =0
 Setter for timezone.
virtual ATDateTimeOrDerived::Ptr addTimezone (const ATDurationOrDerived::Ptr &timezone, const DynamicContext *context) const =0
 Returns an ATDateTimeOrDerived with a timezone added to it.
virtual ATDateTimeOrDerived::Ptr addYearMonthDuration (const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext *context) const =0
 Returns a date with the given yearMonthDuration added to it.
virtual ATDateTimeOrDerived::Ptr addDayTimeDuration (const ATDurationOrDerived::Ptr &dayTime, const DynamicContext *context) const =0
 Returns a date with the given dayTimeDuration added to it.
virtual ATDateTimeOrDerived::Ptr subtractYearMonthDuration (const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext *context) const =0
 Returns a date with the given yearMonthDuration subtracted from it.
virtual ATDateTimeOrDerived::Ptr subtractDayTimeDuration (const ATDurationOrDerived::Ptr &dayTime, const DynamicContext *context) const =0
 Returns a date with the given dayTimeDuration subtracted from it.
virtual ATDurationOrDerived::Ptr subtractDateTimeAsDayTimeDuration (const ATDateTimeOrDerived::Ptr &date, const DynamicContext *context) const =0
 Returns a dayTimeDuration corresponding to the difference between this and the given ATDateTimeOrDerived*.
virtual ATDurationOrDerived::Ptr subtractDateTimeAsYearMonthDuration (const ATDateTimeOrDerived::Ptr &date, const DynamicContext *context) const =0
 Returns a dayTimeDuration corresponding to the difference between this and the given ATDateTimeOrDerived*.
virtual
AnyAtomicType::AtomicObjectType 
getPrimitiveTypeIndex () const =0

Member Typedef Documentation


Member Function Documentation

virtual ATDateTimeOrDerived::Ptr ATDateTimeOrDerived::addDayTimeDuration ( const ATDurationOrDerived::Ptr dayTime,
const DynamicContext context 
) const [pure virtual]

Returns a date with the given dayTimeDuration added to it.

virtual ATDateTimeOrDerived::Ptr ATDateTimeOrDerived::addTimezone ( const ATDurationOrDerived::Ptr timezone,
const DynamicContext context 
) const [pure virtual]

Returns an ATDateTimeOrDerived with a timezone added to it.

virtual ATDateTimeOrDerived::Ptr ATDateTimeOrDerived::addYearMonthDuration ( const ATDurationOrDerived::Ptr yearMonth,
const DynamicContext context 
) const [pure virtual]

Returns a date with the given yearMonthDuration added to it.

virtual const XMLCh* ATDateTimeOrDerived::asString ( const DynamicContext context) const [pure virtual]

Implements AnyAtomicType.

virtual int ATDateTimeOrDerived::compare ( const ATDateTimeOrDerived::Ptr other,
const DynamicContext context 
) const [pure virtual]

Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.

virtual bool ATDateTimeOrDerived::equals ( const AnyAtomicType::Ptr target,
const DynamicContext context 
) const [pure virtual]

Implements AnyAtomicType.

virtual ATDecimalOrDerived::Ptr ATDateTimeOrDerived::getDays ( const DynamicContext context) const [pure virtual]

Returns an integer representing the day component of this object.

virtual ATDecimalOrDerived::Ptr ATDateTimeOrDerived::getHours ( const DynamicContext context) const [pure virtual]

Returns an integer representing the hour component of this object.

virtual ATDecimalOrDerived::Ptr ATDateTimeOrDerived::getMinutes ( const DynamicContext context) const [pure virtual]

Returns an integer representing the minute component of this object.

virtual ATDecimalOrDerived::Ptr ATDateTimeOrDerived::getMonths ( const DynamicContext context) const [pure virtual]

Returns an integer representing the month component of this object.

virtual AnyAtomicType::AtomicObjectType ATDateTimeOrDerived::getPrimitiveTypeIndex ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATDateTimeOrDerived::getPrimitiveTypeName ( ) const [pure virtual]

Implements AnyAtomicType.

virtual ATDecimalOrDerived::Ptr ATDateTimeOrDerived::getSeconds ( const DynamicContext context) const [pure virtual]

Returns a decimal representing the second component of this object.

virtual const Timezone::Ptr& ATDateTimeOrDerived::getTimezone ( ) const [pure virtual]

Returns a timezone object representing the timezone component of this object.

virtual const XMLCh* ATDateTimeOrDerived::getTypeName ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATDateTimeOrDerived::getTypeURI ( ) const [pure virtual]

Implements AnyAtomicType.

virtual ATDecimalOrDerived::Ptr ATDateTimeOrDerived::getYears ( const DynamicContext context) const [pure virtual]

Returns an integer representing the year component of this object.

virtual bool ATDateTimeOrDerived::hasTimezone ( ) const [pure virtual]

Returns true if the timezone is defined for this object, false otherwise.

Implements DateOrTimeType.

virtual ATDateTimeOrDerived::Ptr ATDateTimeOrDerived::setTimezone ( const Timezone::Ptr timezone,
const DynamicContext context 
) const [pure virtual]

Setter for timezone.

Overrides the current timezone. (Not to be confused with addTimezone().

virtual ATDurationOrDerived::Ptr ATDateTimeOrDerived::subtractDateTimeAsDayTimeDuration ( const ATDateTimeOrDerived::Ptr date,
const DynamicContext context 
) const [pure virtual]

Returns a dayTimeDuration corresponding to the difference between this and the given ATDateTimeOrDerived*.

virtual ATDurationOrDerived::Ptr ATDateTimeOrDerived::subtractDateTimeAsYearMonthDuration ( const ATDateTimeOrDerived::Ptr date,
const DynamicContext context 
) const [pure virtual]

Returns a dayTimeDuration corresponding to the difference between this and the given ATDateTimeOrDerived*.

virtual ATDateTimeOrDerived::Ptr ATDateTimeOrDerived::subtractDayTimeDuration ( const ATDurationOrDerived::Ptr dayTime,
const DynamicContext context 
) const [pure virtual]

Returns a date with the given dayTimeDuration subtracted from it.

virtual ATDateTimeOrDerived::Ptr ATDateTimeOrDerived::subtractYearMonthDuration ( const ATDurationOrDerived::Ptr yearMonth,
const DynamicContext context 
) const [pure virtual]

Returns a date with the given yearMonthDuration subtracted from it.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classATGYearOrDerived__inherit__graph.map0000644000151400015140000000077311653571064022620 00000000000000 XQilla-2.3.0/docs/simple-api/classURIResolver-members.html0000644000151400015140000001211611653571063020350 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

URIResolver Member List

This is the complete list of members for URIResolver, including all inherited members.
operator delete(void *p)xercesc::XMemory
operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
operator delete(void *p, void *ptr)xercesc::XMemory
operator new(size_t size)xercesc::XMemory
operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
operator new(size_t size, void *ptr)xercesc::XMemory
putDocument(const Node::Ptr &document, const XMLCh *uri, DynamicContext *context)=0URIResolver [pure virtual]
resolveCollection(Sequence &result, const XMLCh *uri, DynamicContext *context, const QueryPathNode *projection)=0URIResolver [pure virtual]
resolveDefaultCollection(Sequence &result, DynamicContext *context, const QueryPathNode *projection)=0URIResolver [pure virtual]
resolveDocument(Sequence &result, const XMLCh *uri, DynamicContext *context, const QueryPathNode *projection)=0URIResolver [pure virtual]
XMemory()xercesc::XMemory [inline, protected]
~URIResolver()URIResolver [inline, virtual]
XQilla-2.3.0/docs/simple-api/inherit_graph_13.png0000644000151400015140000000370111653571064016460 00000000000000‰PNG  IHDR­(°íbKGDÿÿÿ ½§“vIDATxœí›kH]ǟɽi›®yK¼¤­’ˆÕ![ÁRê[·Å¤pûPT–ŠfŠREá‡.R`I-¥Â.l-¶™®–䚦ëJjìŒÚÞæ¼ï0í®ë–a/¼ç÷éœãó<óvþsvpf)„þ÷,ûÛÿ ˆÄ ñ@ÀŸhµÚššš¿%…°”(ŠÊÊJnú“ÌfóÓ§O•Jå’«",)¯_¿æ¯܃ZZZ–Jáï°gÏ—r@ > `ˆÄ ñ`1>8sæ EQçÎ[¤‚+W®DEE±,Ë­ „V¯^}ùòås)Šú¥¿zO†aŠ‹‹ãããýýý«ªª~üø± ¡xøûûoÚ´©»»ûO_ ¿é„PSSSlllss³÷È¡¡¡ÐÐP/J¥r||¼³³“[éêêËÉÉYP†L&+--õQ³tuuµ¶¶ŽŽŽÖ××k4š’’ð¡éìì4™L&“É`0$&&ªTª?òÈw±ò|R‘ôôôPÕÑÑ?~ôi4¬™••UPPÀMËËË322|‘á‡^PL&ÓëõÜT«ÕÆÆÆú’è `4¹©Ùl³Ù¼È²èå)•J¥RÉ_ùÍý ©©)##cëÖ­IIIÜ–Àßr¹qZZ¬Zµ ¯ÿþ=???444::º¸¸o¹¹¹¹÷ïßw:8¦­­M¥Ráñ£GÖ¯_‰¿ƒpågÏžÅÆÆ644pGtÄ466Êåò°°°Ã‡ÏÎÎò»°Ûí%%%ááá%%%v»ëêê&''qŒB¡ñ¥¾0N籸 B¡P$yÑóðáÔ”‰D²fÍšÛ·oÏé"ï—á›ÂÇý€eÙøøøëׯ#„N:µnÝ:wKrcŸæååmÙ²åÓ§Oƒ!99¹ºº!4==-‹µZ-B¨¿¿Ù²eããã!‹Å"‰8ðåË—;wîÀÄÄ.¸}ûöçÏŸã/Wï‘™™™z½>!!¡¬¬Œ¯çüùó»wï5 6l(++C=yò$**J,gee]¸páóçÏ/8÷FøÂ†ñXº»»iš¦iúëׯGŽQ«Õ\M÷†aÄbñµk×L&S}}½@ `Æcä"÷ƒßñ^¯ß¾}C½}ûz{{‘>°Ùl~~~}}}xÚÖÖ–€Ç;wî}:99ÙÏϯ±±Ñ—F\籸ËE(•J?|øÀ}°î)SSSB¡ðâÅ‹ÓÓÓ,ËÒ4ít:=FþºôSQQáòI ¸û`ll æææðÔ`0H$ `ˆÏ”••µô:KIoo¯B¡à¯ü䃘˜òãÆÿ …¿¿ÄA‘§  ÷ ñ€ø€€!> ü HP%1EÍIEND®B`‚XQilla-2.3.0/docs/simple-api/inherit_graph_3.map0000644000151400015140000000023011653571064016362 00000000000000 XQilla-2.3.0/docs/simple-api/ATGMonthOrDerived_8hpp_source.html0000644000151400015140000002337511653571063021266 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATGMonthOrDerived.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _ATGMONTHORDERIVED_HPP
00021 #define _ATGMONTHORDERIVED_HPP
00022 
00023 #include <xercesc/util/XercesDefs.hpp>
00024 #include <xqilla/framework/XQillaExport.hpp>
00025 #include <xqilla/items/DateOrTimeType.hpp>
00026 #include <xqilla/items/Timezone.hpp>
00027 
00028 class DynamicContext;
00029 
00030 class XQILLA_API ATGMonthOrDerived : public DateOrTimeType
00031 {
00032 public:
00033   typedef RefCountPointer<const ATGMonthOrDerived> Ptr;
00034 
00035   /* Get the name of the primitive type (basic type) of this type
00036    * (ie "decimal" for xs:decimal) */
00037   virtual const XMLCh* getPrimitiveTypeName() const = 0;
00038 
00039   /* Get the namespace URI for this type */
00040   virtual const XMLCh* getTypeURI() const = 0;
00041 
00042   /* Get the name of this type  (ie "integer" for xs:integer) */
00043   virtual const XMLCh* getTypeName() const = 0;
00044 
00045   /* returns the XMLCh* (canonical) representation of this type */
00046   virtual const XMLCh* asString(const DynamicContext* context) const = 0;
00047 
00048   /* returns true if the two objects are equal 
00049    * false otherwise */
00050   virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0;
00051 
00054   virtual int compare(const ATGMonthOrDerived::Ptr &other, const DynamicContext *context) const = 0;
00055  
00057   virtual bool hasTimezone() const = 0;
00058 
00060   virtual ATGMonthOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const = 0;
00061 
00062   virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0;
00063 };
00064 
00065 #endif //  _ATGMONTHORDERIVED_HPP
XQilla-2.3.0/docs/simple-api/functions_0x68.html0000644000151400015140000001427311653571063016314 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- h -

XQilla-2.3.0/docs/simple-api/inherit_graph_33.map0000644000151400015140000000027011653571064016451 00000000000000 XQilla-2.3.0/docs/simple-api/classAutoVariableStoreReset.html0000644000151400015140000001653611653571063021147 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

AutoVariableStoreReset Class Reference

#include <ContextHelpers.hpp>

List of all members.

Public Member Functions

 AutoVariableStoreReset (DynamicContext *context, const VariableStore *store=0)
 ~AutoVariableStoreReset ()
void reset ()

Protected Attributes

DynamicContextcontext_
const VariableStore_oldVarStore

Constructor & Destructor Documentation

AutoVariableStoreReset::AutoVariableStoreReset ( DynamicContext context,
const VariableStore store = 0 
) [inline]
AutoVariableStoreReset::~AutoVariableStoreReset ( ) [inline]

Member Function Documentation

void AutoVariableStoreReset::reset ( ) [inline]

Member Data Documentation


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classxercesc_1_1MemBufFormatTarget__inherit__graph.png0000644000151400015140000001555211653571064025300 00000000000000‰PNG  IHDRÕÚ­ÃRbKGDÿÿÿ ½§“IDATxœí{\SGÚÇ'$$´‘ ·ê h±õÒ]íZ/x«ÖödïTPñò±D«’mÙE«•m ¢À~ ¢@Õ},R?"XA/mA¬¢I —„ÜÎûÇÙ÷l–$H¢8`Ÿï‡?æÝ°aC||¼Yá·ß~»qãU_*•–——ãÉu ú{.vîÜéàà°mÛ6„P\\œ³³sll,uvΜ9ú³cQQ–÷2WEEE®®®R©!”““3f̘ÎÎN„Z­Ž‰‰áñx\.7&&F­V×ÕÕÑh´ÒÒÒ#F”••ÅÇÇ1ÂÑÑqÅŠäÌdÔ !T\\ìëëËf³ÝÝݳ²²Bƨ;°Ìd2333ÓÓÓ322233­­­©&åææRK°@  ¤ÎM‰F£¥§§;ÖÑÑqÏž=YYY£Fâp8»ví"½d2ÙªU«ÜÜÜ¢££•J¥~ó'NœNÖìèè°±±©©©é‡Áyq˜@_¿ùgΜ±··W«ÕAdgg{{{ëtº2ýÄ€ÖŸT*ussóõõåóù”ÑËË«±±‘,Ÿ?~üøñäˆD"‚ Þ|óÍüü|òìíÛ·©²¡—D"±¶¶Þ¿¿T*ÕétíííZ­Ö”{/ètºE‹ÑéôeË–õh`mmmTTÔöíÛ ‚ÈÎΞ;w.e7šy¶ººš •JÕ£\[[«R©ètúÍ›7I¯üü|OOOýæk4''§ÒÒR‚ >øàƒ={ö<3ô× Ÿþ9Nonn¦,l6[þæp8ä¨T*ò¬X,6¼Ž¡A—.] ´µµ6mÚ™3gzqï…¬¬,‡sñâE6›]XX¨ßÀÚÚÚ²²2OOONçïšJèéÏhJÔY£å††„B¡ "‘ˆÍfë7Ÿ ˆ 6DEEµ´´0™Ì†††¾4ôgœp¹Ü÷ß_jqss£FE*•Þ¹s‡Òâîî^\\L–kjj¨5ÑЫ«««¼¼œ ˆîîîÌÌL:ÞÖÖfÊÝ=²³³;räA‰‰‰<\%‰ÿWŒF£áñxååå¶¶¶ä«ˆR•aJijôGηnÝ"úÍ'â‡~pqqINNž5kVïÉS€þŒ ÕjçÌ™óÅ_H$''§¢¢"Ò¾yóæÀÀ@òÑÆäÉ“7nܨ?ñññ¾¾¾b±X,O:uíÚµ¦¼ ›Í---GŽa³Ù …”»ÑýŸN§ûðÃg̘¡Õj ‚P©T¾¾¾!!!TIõlذaìØ±~~~=ì†)ÏÒA¡¡¡³gÏ®¯¯‹ÅÞÞÞ»wïî¡?FÃåry<^FFÆ‹‹þcàêïàÁƒo¿ý6¹¬8;;K$‚ ärùêÕ«íìììíí#"":;;õ@©TFGG»¸¸p8œ©TJÚ ½‚8yò¤‡‡“Éôòò …½¸ë‡ Ê™™™,ë—_~¡r®ªª²²²„žbÊÊÊBÉÉÉTÃI»Ñ”ž©?‰D²|ùr{{{ggç­[·*Šú#bݺuC† ‘Ëå/j,ú«?ÀbvìØÚ÷úÇççOŽR©|üøqzzzNNî\úÄÀ}þ X@eeå;ï¼³fÍš™3gâÎ¥OÀü÷J1cÆ ‰D‚; 3€ùÀ èÀ èÀ èÀ èÀ è﹨¬¬ÇÂàçó—„„„´´4Œ ƒП%äçW3ÿé:µZ+V«ÕZŒ) R@f£RiŠŠ®k4:}£\Þ]^þ+®”/ ?³¹páŽBÑÝÃÈ`Ðòóá.Øl@f“ŸÍʪg¿i4º3gntuÁqæú3ŽŽîsçniµ:ÃSjµ¶¤äÖËOiPú3óço©TSgá.Ø\@æQXhRa:ñÃwärÅËÌg°Ÿ?0‡¥ú‹ï»ï&|ñÅ’9sÞ¢,NN þ«°¯@O™‡››]‹£ã°‘#í±$ó ë/€Ð€Ð€Ð€Ð€Ð€Ð€Ð€Ð€Ð€Ð€Ð€Ð€Ð€Ð€Ð€Ð€Ð€Ð€Ð€Ð€Ð€Ð€Ð€Ð€Ð€Ð€Ð€Ð€Ð€Ð€Ð€ó¾²¤¤¤¾~hê¿())ijªÂÅ"""Œڄ9¼?ýb±¶æZY±pg1°0KQfÿnPPPnnnä vrssƒƒƒÍrý€Ð€Ð€Ð€Ð€Ð€“ߣþjjj F^^e …L&S,#„h4ÚèÑ£{ü,Ù‚ h4Z]]Y,èC3Fÿ78qÂhèëׯ¿„èÏÏïQ&LرcÇæÍ›e2BèéÓ§6lˆ÷ññ!+üöÛo7nÜ êK¥Òòòòg^öòåËÿM?å___ïàà@–-ZDƺ|ù2Bˆ íííÝá^8¿Gý!„vîÜéàà°mÛ6„P\\œ³³sll,uvΜ9ú³cQQÑŒ3žyMGGG§ÿ¦?2Gétº¶¶6²vìXGGÇ={ödee5ŠÃáìÚµ‹¼Â÷ß?aÂggç={ö „¦L™‚z¦¾ õCÿøã)))o½õÖk¯½6kÖ¬ï¿ÿžìÃïc8 1÷ýß   gV[±bÅÊ•+›ššx<^ee%iÜ»wo@@ÀƒD"ÑĉãââjkkB ,¸páŸÏ÷öö‰Db±xòäÉÑÑѦ¼:::X,VJJJccã±cÇ FGGǾ}ûŒºËd²´´4Ã2I\\B(!!A߈úù矜œjjjH/›ÖÖV„Pmm-Y,ôðº~ýz»jµš ˆ°°°Ù³gß½{W$7ŽÏçë·º££!"—Ë=ŠZºt©\.OMMEµ¶¶Êår&“¹fÍš‡fgg#„žèÏÐØÐЀR(ä¡H$b³Ùú­îáh´, ß{ï½ñãǯ^½ºïúëÅ‘ =dÈ7nP•ÉûeÂô0õ¥KŠþ»yóæÍ›77nÜxÿþ}S^4mÞ¼y§N’Ëå*•ÊÚÚÚÆÆÆ”ûÓ§OÉ}•~™ ˆÈÈH__ßððp„ЧŸ~Êãñ6mÚ¤ŸNˆŒŒüÓŸþÄår{´±¥¥¥IS]amm¼yóæ{÷îݼysçÎaaafufww·J¥b2™ …">>!ÔÞÞNž"÷Ž8’DEEÅÆÆž;w®­­Ü“÷¦†©÷p–c–Zû2ÿz{̘ÿ|7ÙÓ§Š×_·Å‘Ú >ÿò\¸¸lMIYù?ÿ3w"ƒXœ€þœ€þœ€þœ€þœ€þœ€þœ€þœ€þœ€þœ€þœ€þœ€þœ€þœ€þœ€þœ€þœ€þœ€þœ€þœ€þœ€þœ€þœ€þœ€þœ€þœ€þœ€þœ€þœ€þœ€þœ€þœ€þ¬èÿðÉ“'q§3È6ì=kkÜY &‚‚‚ô%gäûŸããã_~Zƒ™Ù¸4äååõ°ÑßÌ™3_F.Àï‹/ö°ÀþÀ èÀ èÀ èÀ èÀÉ«ùû[~~~®®®YYY42nÛ¶­ªª*;;ÛÕÕÕâËRå¡C‡¾óÎ;[¶l>|¸ÑÊAüýï¿téÒÙ³g{øRüðÖeÒw.\¸ðÅ_ÚÓÒÒ<==û;ú3y5õ‡jjjº{÷.ÕÅííí7nÜxþË:tÈÙÙ™ ˆÖÖÖƒ~óÍ7»wï6Z³­­­¤¤Dÿ‘>éûü9<“ÆÆÆuëÖ …B„ÐÔ©SO:E7nÜH–B¯½öZ„3—WV“&M*++£ôwùòåñãÇWVV>çe‡þúë¯#„ìíí#""vìØaªfww7BˆËåúö7:N.—“e‹Åb±B …!Ô è‡3³÷—/_ looG•––._¾\©T"„4MJJÊâÅ‹/^œ’’¢Ñh=zäççW]]|ýúõŒŒŒàà`ÿÄÄÄŽŽòj†^dˆðððyóæ…††ž;w!¤Õjº“! Ë¡™3g–••Q¿®xñâÅ3fPgÆõóó;{öìÊ•+ýýý?~îܹ… ¦§§í :nggg* 6 „–,YÒ{vttìÙ³gÑ¢EAAAß~û­J¥Òï7±Xü̬***Ö®];þü€€€ãÇ÷=´¡£~h‘HTTT´jÕª… ~òÉ'd» »®áŒb¶þþüç?Oš4)99Y*•&''öÙgl6!$SSS¿úê«êêꌌ ²~nnn\\Ü7ÊËË“’’²³³É³†^J¥’ÏçûûûŸ8qbùòå_~ù¥R©F݇mXF7N¡Pܽ{!ÔÙÙY]]=uêTꬩl¯]»öí·ßFDD¤¥¥UTT;vlýúõYYYÔë[©T*Š®®®†††£GÎ;×TG>|!”ŸŸOYH_ ­V‹úúë¯[ZZRRRöîÝ{õêÕœœý~=ztïYuuuíÞ½{ôèÑÙÙÙëׯOKK“Éd†¡ 1꨺¶¶6+++**êøñãaaaÉÉɦº®/áLaÉýï¦M›ª««£££-ZäååEÏž=»eË.—ëîîYUUEÚ#""&L˜PZZºfÍww÷Q£FmÛ¶ÍÛÛÛ”—Z­&B¡P0™Ìùóç³X¬Ó§Ou·µµ]¸p¡a!dee5}úô²²2„PEE…þŽÇT¶ÁÁÁ666óæÍC…††ÚØØÌŸ?!DÎ÷¡?þøƒ>X¸páŠ+~ýõ×Ù³Íxó—ô¥¨ªªÒh4.\Ø´i“³³³»»ûêÕ«ÏŸ?¯ßoäk»—¬˜Læ±cÇ6oÞlooO®õ}I¦G2ôéÓ§×­[÷Ç?þ‘ÃáLš4iõêÕ½weX²ÿ:tè‡~øÏþ󫯾¢ŒMMMÔ¡­í¿ƒyĈ¡ææf777Ò2räÈ‘#Gšò6lXRR’@ ÈÈÈ3fLhhèäÉ“M¹÷ÎÌ™3÷íÛÞcñí%[„ƒÁèQ¦ nŸ»»»Á'Ÿ|râÄ ý ½üž²á­wKK‹N§sqq!]]][ZZÈ2ÙoÏÌŠÁ`<|øpÿþý …‚œ,ûH/ŽdèÇ5Š2þá ¦ºÎ2,Ñß“'O &MštøðajÎáp’’’ÈþíèèH$ÿÀ` „ìí훚šÈöÔÕÕ]¹reÙ²eF½º»»u:ŸÏ×h4¥¥¥;vì(,,4åÞ;>>>]]]b±ø§Ÿ~úôÓOõO™Ê¶ï°X¬… =z”Z¶´Z-NommíûEìì쬬¬ÉWÔãÇþýi®º7Eww7ŸÏçóùï¾û®Z­&Ÿõ<§#šÇãÝ»wÏÝÝ4Þ¿Ÿ,<×écöúKÄ—_~¹dÉ’]»v]»víòåˤ}Ú´iiiiÍÍÍõõõ±±±………ú^óæÍ;zôè½{÷îÝ»÷õ×_777›ò¢Ñh111åååjµšÁ`°X,Sî§OŸ6,ÿ»mVVÓ§O?pàÀرc{<¥ë=Û^Éd‰D"‘|èС¡sçÎuuu™µ b0~~~ß|óMccã½{÷Ž;6gΜ¾»#„ÔjµF£a0*•ŠÜÅvuu‘§È^ IüýýSSSúé'¹\^SS“™™I>L5Õu½‡3…Ùó_aa¡L& a0[·n=pà€Ï°aÃÂÃÃ:´víZ6}úôÈÈHý™ ,,L©TÆÄÄ(•Ê)S¦DFF’vC/&“¹}ûöÔÔÔ'Ož¸¸¸ÄÇÇ3™LSî2™lÿþýä¶O¿Láçç' /^Ü£†qûØü7’6jÔ(>ŸO£Ñ8Nxxøádz³³£¢¢~üñǾ÷ç–-[:´nÝ:kkëY³f………QKp_:tèúõë† :{öìØØX@àããpæÌ³:DUð÷÷×jµIIIOŸ>õöö^·nݾ}û±®c0Ï g šþ~%77788ø%<”>\.×ÃÃ<,//ÏÊÊJKK{žkþõ¯uttÌÍÍ¥,ðþ/`œúúú¿ýíoµµµÝÝÝ·oßNOOï±¶¼^Ù÷?€çä/ù‹R©Ü¹s§L&svv^°`ÁG}ô£€þãÐéôðððððð~ë/€Ð€Ð€Ð€Ð€Ð€#Ï_Œþ§¼‚‚‚ôÿëý·†††+W®¼ô”€ßnnnï¾û.uHëåójÐßÀþÀ èÀ èÀ èÀÉÿmÑ•!ZpIEND®B`‚XQilla-2.3.0/docs/simple-api/ContentSequenceFilter_8hpp__incl.png0000644000151400015140000001034311653571064021706 00000000000000‰PNG  IHDRÕuV>3:bKGDÿÿÿ ½§“˜IDATxœíyTç×ÇŸ°DP›²%+òJÁåU«´¤* ²¸• Tz^=Áåô”jEܪ¢(Xµà’Š"­kÕê‹Õjõ Å1 j$óûc~“IH"ñ½Ÿ¿&7Ͻó;ßÌó„€AL˜á¼Ó€ÿœ€ÿœ€ÿœXš0iÒ$SèÞ¾úê«O>ùDÿñûïÌ™3C‡uuu54xë9þüÂ… J1Ø¡˜˜˜#·›óçÏšë?'à?'à?'à?'à?'Æ|ÿÕ‡ÖÖÖÜÜÜ[·n½xñÂÛÛ;66688ØDûÒL&Û¿ÿ… D"‘‹‹Ë„ bcc™LæëW¢<O3XTT4wîܪªª¦¦&rãwQTTäááñ*Ez“øO,'&&~ôÑGééé,«¦¦æÛo¿ÍÈÈ5j”þE„BaJJJYY™A»VËÚ±cGKKËÚµk]\\=z´cljD²dɃj¾N²³³ÝÜÜT#æææsæÌQ×™7“øoß¾}AAA|>Ÿ|éíí-‰AþS*•b±ØÐ]«e]¼xqÓ¦M¾¾¾!‡%K–ddd¼ÉþspppttT &%%©¾4®3o&&Yÿ]¸p!**J5—––FnK¥Ò 6„‡‡ÇÄÄäææÊår„Ç;sæL\\ÜôéÓ9‚Z´hB(22’ÌêîîÎËË›1cÆŒ3òòòº»»õÉb±X¥¥¥ÔÙ Ú qüøñ¸¸¸)S¦,^¼øúõë<¯©©‰šU·õÔ£P(öíÛ7kÖ¬ˆˆˆÌÌL©Tª#Õ’ôØ2¥¶¶vÖ¬Yüñ‡ZÁk׮ůÆN›6íàÁƒTýK—.Í›7oÆŒ;wîìêê¢ ê<çFÒûþ“J¥"‘ÈËËK5hmmMݲËÊÊzöìY^^ÞÆ¯^½zøða2~ñâÅ]»v%''ïÞ½["‘äää „JJJÈw‹‹‹…BáîÝ»¿ûî»ÚÚÚ}ûöé“Åçókkk£££ù|¾@ hii¡$i¬¨¨øá‡ çÏŸŸ™™©ã0õÔS\\|áÂ…ÌÌÌmÛ¶566éNïèè© P(4w­gg~üñÇ•+W’×~UjjjòóóÓÒÒ ¨Ofiiiffæúõëkjj:¤#Ø»ô¾ÿȪ í»ÝÝÝçÎKMMussãp8 ,¨¬¬$ߊˆˆ°µµýì³ÏBšóËÏ?ÿ¼téRWWW‡“œœ|åÊ}²FŽ)²²²† öË/¿|þùçgÏžÕVðرc)))ÁÁÁNNN£GNLLÔq˜zꩨ¨ˆçp8>>>+V¬ð÷÷מ˜˜8E*n„’¤¤¤   +++µñ³fÍb±XãÇGI$2øå—_zzzúùù%&&Rg„6Ø»ôþúÏÎÎŽÍf?|øê5Bèîݻ۷oÏÊÊ‹ÅJ¥ÒÝÝŒ{xx<{öŒÜvvvFYXÐKjnnVÓmllzÌêèè¸|ùrHHˆŸŸŸŸŸß¼yóöïߟ——7aÂÚ‚ÝÝÝ\.—Šp8µ‚ª¿« §ž––OOOrÛÛÛÛÛÛ[wºæ—Ó¦¦&Ú†ô¨Dm ¢prrBJ¤——uFhƒ½‹I¾Œ7N ¬Y³†:ÈÊÊÊîîî~ýú±Ùl333¡PHž‰'Ož' i¿d’ØÛÛoÛ¶<7äßcAëÖ­óòò"]Å`0FU^^®­àêÕ«ÿúë¯Aƒ‘{öÿ¾f=}ðŸax{;x0è¨P(#"†¿vE}ðŸÁDG27Wï›™cÄoww˜| üg0ááÃ5¿´1ŒèèQXôôiÀãìl;z4Wó8uê‡XôôiÀÆ3RõhnnìëèhƒQRüg S¦¨^ÿ”J"*j$F=}ðŸ1ØÙYM˜0ÔÂâ¿Ýc2ÍÃÂðJꣀÿŒ$2r„RI „,,Ì'Mú‹‰[QŸüg$“&ù[YY"„ ETÔÜrú*à?#é×Ïbòäa ²¶f†„ Á-§¯òÒý_™LÖÖÖ†KJŸƒÇó))ùÿI“>hm}Š[KŸÁÚÚšÍfS/_òŸD"©««{í’ú*ööJ;;æÐ¡¶Ð4ýqqqÑê?’×'§“šJ,Zô©™ý €·oßV‹Àúï•HNó½ à¿WÂÒÒ·„¾ øÀ øÀ øÀ øÀ‰ ýW__Ï`0h7tðèÑ£ ˜NUPtôúî F}}½îˆ¡}Ö§ÛzJ2&ôŸƒƒÃŠ+ Í*--ˆˆ0…ž††gggƒ\¾|Yø2¯MÆ;‚ ÿÒÙÙyÆ †f>}úèÑ£¦Ð£T*[[[ àââ2`À,2Þ ¾þ8qÂÃüM|øðáÁƒ···+•Êììl???;;»±cÇVUUõxý?yòdPP‹Årss£lúüùskkk„PWWŸÏïß¿¿««+ŸÏïêꊈˆX¶l9²³³“ÍfWTTÐŽD1Œƒúùù9::nÚ´ !4fÌ„å§òòò€€+++‡SXX¨)@½+C7´]Ò¬©P(6oÞ>þñãÇEEE¡§OŸñý÷ß’{Ù¸qcTTÔ£GnÞ¼9|øð•+W9rÄËËK©TQVVæîîÞÕÕE;’|8>::º­­-??!ÔÚÚJí ©TÚ¯_¿¼¼<¡P¸wï^ ©Tª&!ôûï¿K^† ˆ^”A»²u:º¤YsëÖ­ªýwwwWí?­6òݰ°°sçΑǮ*iêÔ©b±øØ±c¡çÏŸ“ƒCCCëêꪫ«¹\î7ß|CÔíœ[·nݺuë¥}á¿¶¶6OOÏ€€jþþþû÷ï§8p@·ÿ:;;ïܹ#•J ů¿þJu<**J$‘E† " ÉíÊÊÊÀÀÀööv›+W®1{öìU«ViI6‘<¹\NÖW="‘ÈÒÒrË–-mmmJ¥R"‘( 5Ú>®½(CÛ^Ènhë’fÍÁƒëè?­6òÝ›7ojž_„Ðùóç ‚P(ªš©Á€ËåÒéó/šþ3fýçàà””´fÍšÊÊJ2ÒÐÐH èáat&“YWW·páB©TD¥RiWWõpăÜÜܨ{{{‹^\\ XQilla Simple API Documentation SourceForge.net Logo

LocalFileInputSource.hpp File Reference

#include <xercesc/sax/InputSource.hpp>
Include dependency graph for LocalFileInputSource.hpp:

Go to the source code of this file.

Classes

class  xercesc::LocalFileInputSource
 This class is a derivative of the standard InputSource class. More...

Namespaces

namespace  xercesc
XQilla-2.3.0/docs/simple-api/SchemaValidatorFilter_8hpp__incl.md50000644000151400015140000000004011653571063021542 0000000000000081c575ff1e15278d4f9a9fc795a140cbXQilla-2.3.0/docs/simple-api/inherit_graph_22.map0000644000151400015140000000022411653571064016446 00000000000000 XQilla-2.3.0/docs/simple-api/inherit_graph_12.md50000644000151400015140000000004011653571063016350 00000000000000461e8bbac47b462b1c28ee1d1c706454XQilla-2.3.0/docs/simple-api/inherit_graph_25.md50000644000151400015140000000004011653571063016354 00000000000000a5c35120a1316438b08eeee07461b3faXQilla-2.3.0/docs/simple-api/classxercesc_1_1DOMNode__inherit__graph.map0000644000151400015140000000031111653571064023006 00000000000000 XQilla-2.3.0/docs/simple-api/inherit_graph_31.png0000644000151400015140000025745511653571064016501 00000000000000‰PNG  IHDRÈ}À7Ç“bKGDÿÿÿ ½§“ IDATxœìÝwXS×ÿðF0aï%YEADÐV묂³­,RG±¢¶j¿U#R+~® ®ÖV­m­Z¡E'ô«µ‚›¡E 2ÙB„ŒûûãÖ4e‰p“(¾_øÜÜÜsÎû†ç!ŽçÞË¢(Š@çh¨;@W€Â€(¬€Â€Zê ,/^\·nºS!„ :tÕªUêN \(¬ ËzòäɹsçüýýÕäu—’’bll¬îJ‡Âº¸¸¸8uGxݨ;€*`5PX0…5PX0…5PXBÈÚµkY,ÖÆå{bbbX-IKKk­É Ë–-ëÑ£‡ÃqqqY½zuCC!$''‡ÅbuøDÚnþÜ“€Ca @(ŠŠ‰‰±··•ïœ0aBqqqqqñ•+W!Åϸ»»·Öä…,Z´èÖ­[‡zøðáž={y<!ÄÈÈ(44”‰ÓjAÛ'ûXÌÌ̬¬¬3gÎøùùegg»ººB8‡Ã!„Bˆ••Õs›¼#GŽ$%%y{{BÌÍÍ·oß>cÆŒï¾ûÎÌ̬óàÏÕöI@g`Æ€ÄÄÄ 6Ì×××ÍÍ­3Э5a±XÑÑÑ={ö411‰ŒŒ$„,^¼xΜ9ô»€ËåÞ¾}›b``°sçÎŠŠ ú­¡C‡¯å`±X¿üòKÏž=ÍÍÍ7nÜxàÀ=zÒ§LLL|óÍ7-,,/^,‰CŠÅbgiiiaaÁãñÄbqk§ÓbÈÖúo·¯Öðº£uB¦L™ÒžÂºí&GŽIII‰ŒŒ ­¬¬œ:ujbb¢D"!„$&&:::zyyB~úé§ääd[[ÛQ£FmÞ¼™®ª›;wîܵk×6nÜvüøñŒŒŒM›6­[·N^‘ïܹóøñãÇŽ;uêT“©îmÛ¶åååݸq#99ùüùóááá­Qk![ì¿ýݼ^(€.Š®wŸ{Xjjª––Vyy9EQ7oÞ$„dff*Àçó›ôÓFBÈ… (Šjll$„ðù|‰Dbee•œœLQÔ¸qã6nÜ(ïG"‘¤¦¦®Y³ÆÃÃCSS3::ºÉp„[·nÉ{SÜæóùô‘òóuvvVlîææV\\LoŸ={ÖËË«µ“j1d‹ý·Ým‹üýýýýýÛ>  ÀŒ5¼îbbb$‰™™‹Åòññ!„\^^~îܹ   BˆP(Œ‰‰!„¼ýöÛ«V­ÊÈÈøòË/—/_Þ|,}}}yoŠÛr...ô†››[aa¡â[ùùùÖÖÖô}?üüüòòòZ;£C¶Öû»x­ °€×šT*ݺukí3K–,‰¥(ªÃM44š~½úûû'$$ÄÅÅ <¸{÷¢¦OŸž™™IÀb±FM¯ÄxQô¼2!$;;›®éåÌÌÌø|>=—VUU•ššÚF?ÍC¶Öÿ u ðú@a ¯µ?þø£´´4((Hï™éÓ§óùü6îëÜ&C† ‘H$kÖ¬™1c½GOOoæÌ™Ó¦M;qâDnnî•+W–-[F/Ú~QŸþyNNÎõë׿üòË>úHñ­É“'‡……dddŒ3fÇŽmôÓýË/¿ôðð 6lØ×_ÝS òõõ7nܘ1cÂÂÂßZ·n¾¾~ß¾}GŒѧOŸˆˆˆ6úi1d‹ý¿P·¯VÿÕðJ‹‹‹›6mÚKòM·råÊüüüèèhûÌÉÉqqqað›„dªÿ€€BH\\\gó¼Üð€åjhh(**úå—_<¨î,­z%B¼ä°@¹®^½Ú¯_¿àààáÇ3Û³Á¼yóéªÅ öð:ÀRè²^ª¥ ¯3,×f¬€Â€(¬ Ëª©iÄ7¨ î ]Ðýû%?üp!>þV·nŽêί ü]Jzú£™31"òúõ¼I“zˆDêN¯ ÖÐEܹóxöì=ãÆm+/ìÛ7çÒ¥°Áƒ-)J¬î\ðºÀRxåUoØpŠ%µ¿¿¿ãmèС Pw ¥ÃbàUuõjnhèïU.\8rþüá[݉െkxõ<}Z·ví±ƒ¯þ毿~booªîD(¬àU“’ò`Ñ¢(‘H²cÇG'z«;ÀßPXÀ+C,–nÝzúûï“ß}×móæ-,ôÕà(¬àÕPZZ²/3³ð믧 P¼Hàe€Â^—/óçÏßojªwæÌR'' uÇh/»#Gnívw·=rdªjxi¡°€—Ú/¿ü±paÔìÙƒûmž±±®ºã´ KAàåyêÛoÏ®X1nÑ"_ugxÖð’Ú²%é»ïÎmÙ2íÃßVw€çCa /£o¿=ûí·gwíšùÞ{}Ô ]PXÀKçÀ+›6ŠˆðGU ¯\¼/—3gî|ùå¡åËÇ Tw€€Â^"—/gÏ»oÖ¬A‹ãjExŰ(ŠRwBÉÍ-ûàƒoûô±Û¿®–¦~àƒÂ^ µµ |ð­¶¶æáËôôtÔà…áâEP?‰D6wî¾úzñáà QUÀ+ …5¨ßúõÇ®_Ï;zt1ž­¯.Ö f ·~üñâÖ­º»Ûª; @ÇáÒP§û÷K–-‹ýä“¡Ó¦½¥î,‚‹@mjkFÞbggrðà| –ºãt f¬@mx¼ØúúÆï¿ÿU5tXc êwýرôýû?17×Ww °5xô¨ò«¯Í™3Ä×·#ž;w.77—‘®@•BBBÔ€1Xc ª&•Ê&Nü®¾¾ñäÉ/Ølf¦x~ÿýwFºUB] ÖX€ªýðÃ…;w wîœÁTUMó÷÷§àÕËàOàe€ÂT*;»dóæ¤%KF»ºZ©; “PX€êÈdÔ²eqo¾i½`Áug`.^ÕùùçKéé“’–jiafºü^)(¨ˆˆ8ùÙg#{ö´Vwæ¡°Ù¸ñ„¥¥Áâžê X ªpéÒýÄÄÛ„t릭î,JkP:‰D¶zõ‘‘#{ŽÙSÝY!díÚµ,kãÆò=111¬–¤¥¥µÖä…°X¬œœœÖö(ŽÈáp $·y[¡PÈãñúô飯¯ß¿ÿ 6H$’G”spp˜9sfYYY;Óæää°XzÈ|ç{x¡°¥‹‰¹š›[¶jÕêB!EÅÄÄØÛÛ+ÞGy„ ÅÅÅÅÅÅW®\!„?ãîîÞZf]¹r…1##ÃÅÅeÚ´iTKON©­­íׯßõë×#""nÞ¼íçç'•J[ë³°°pïÞ½555ÞÞÞÕÕÕí cddÚÙSxý`)(W]]ã¦M§>úè—äÆÕ™™™YYYgΜñóóËÎÎvuu%„p8‡C„++«ç6a–¹¹9=¨••Udd¤¥¥eYY™……E“ÃÖ¬Ycnnžœœ¬©©Iquu=z´‡‡ÇÞ½{?ùä“Öú´µµ>|øðá÷mÛöÿ÷Ï cffÖá¹y€×f¬@¹vïþ_CƒxéÒÑêò·˜˜˜aÆùúúº¹¹µsºµ&,+::ºgÏž&&&‘‘‘„ŋϙ3‡~W p¹ÜÛ·o¿hBmmm6›mhhØü­¨¨¨ððpºª¦éêêòx¼¨¨(zõErr²½½ýåË—›4d±XóçÏ?qâýR,óxŸßä˱&„ .PÕØØHáóù‰ÄÊÊ*99™¢¨qãÆmܸQ~$ŸÏWìVqO“¯f==½¿þú«ù‘UUU„²²²&'•’’bffF'ÏÈÈhmÄëׯÑÛnnnÅÅÅôöÙ³g½¼¼›Ë?¡P¨««{íÚ5Š¢>üðð°°Öš»ººîÛ·O>ÖþýûŸ[cТ´} À«k¬@Yjjöì¹´h‘¯GÝYþ#‘HÌÌÌä{bcc=<<:ÜÄÆÆ†¢­ý÷=555'Ož|øðaOOÏsçÎíÞ½[ÞŠR( ©fÅ4ŸÏwvv&„ÔÕÕ…‡‡§¤¤49ÆÈÈÈÊÊ*--Í×÷_÷OKKóññ¡·ÝÜÜZ;>ŸïääDoççç[[ÿó˜ù²“&͹\î„ âãã{õêuìØ1ù²–æÍ§Ò===[‹Ð…a)(ËÏ?_ÔÒÒüøã!êò7©T»uëÖÚg–,YÛ¼Ìm ¦ß¤þþþ qqqƒîÞ½;½ÓÞÞ^ñ–yYYYZZZvvvÍGär¹³gϾ{÷n‹©‚‚‚Ö¬Y£x¡P1fÌú¥¼Äo‚¢¨]»v?ž~IÏpÓslUUU©©©­5 Œ?zô¨‹‹KkÍÒÓÓå­îÞ½Ûb €® …5(…P(úùçK³f ârÙêÎò·?þø£´´4((Hï™éÓ§óù|Å›Fw¾É!C$Éš5kf̘!ß9{öìE‹?~š9sfóUÔ4ƒÚÚZúþ$M„‡‡—––Ž92))‰Ïç'$$¼ýöÛ¶¶¶ ,h~pYYYIIÉãÇ/^¼8iÒ¤¼¼<ù•ˆ“'O +((ÈÈÈ3fÌŽ;Z;Q£FUUU­^½:88X¾³yóùóçóx¼ÄÄÄ’’’¤¤$ù¢m€×‹:ÖŸ@×·ÿŸËJKkT3\{ÖXÏ›7oÔ¨QŠ{d2™““Shh¨|O“5Öm7!ÿ^'-ßž?>‡Ã©©ùçÜÅbqddä›o¾Ù­[7GGÇ•+W …Bù»äßë¡¥R©A^^^‹ï ‚¥K—zxxp¹\ww÷uëÖÕÕÕ5O®ø]oggôäÉù»555ü±±±±©©iHHˆP(TlÞ¤«===@ÐFs‰D²iÓ&ggg]]ÝÒSà-þä°ÆºÕúÿt؈‘}úØmÛ¨šá!qqqª®m+W®ÌÏÏŽŽVw—Z\\\kÏÁxEáâE`Þ¥K÷ïß/Ù¹sÆóíZŠŠŠ~ùå—ƒª; ¨ÖXóöìùãí·ÝܬŸh×rõêÕ~ýú>\ÝY@Õ0c +*ª>>ëûï?Rw56lXee¥ºS€z`ÆwÍÄDwüø>ê R(¬€IEÅÅ]ÿàƒ¾ZZøŠ€× ~ë“nÝ*ÈÏ/÷÷ï§î ª†Â˜täÈmKOÏž)е¡°ÆH¥²cÇnOšä­î j€»‚c®_Ï+-­ýàƒ¾ªš¢Xäÿøãª:ææÍ›êŽÀ0ÖÀ˜¤¤LWW+GGsû¿ÿÝ»}Û¢¼¼lÞ¼y*@…50&99kìØÞªñîÝÇÿýï‘ÔÔÜÀÀ!K—®³´4TåèŠPX3òóË<(õõí¥šá„BÑÆ'ýõÏ^½lúì­·U3.@kPX3ΟÏ22âúø8¨`¬+Wr–,‰yú´>22Àß¿¿†Kƒ´ …50ãâÅûƒ¹hj*÷~SèË/ãããoŒßç믧š™é)u8€öCa HdW®ä|õÕûJåÞ½â9sö–—×nÙ2-0p€RÇxQ(¬€wî …¢œ”7Äñãé_|q°oß7bctïn¬¼:…50 %å™™ž««¥2:‹¥+Wúí·Ô°°ñŸ~:‚ÅŠjx¡°ܺUàãã Œ’·²R¸paÔõëy»vÍ|ÿ}/Æû` k`@ZÚÃ3Þa¼Û¢¢êiÓv‰ÅÒcÇ>ws³f¼)÷Úmx”— ?®êÓÇŽÙnïÝ+7n«ŽŽªjx% °€ÎJOÄb±˜-¬ïÞ}°ÓÎÎäСÏÌÍõì@IPX@geeÙØq™êðÞ½âiÓv½ñ†iTTˆ¡!cÝ(ÖX@g=xPêädÁToEEÕAA?º¹Yïßÿ‰®®SÝ(f¬ ³rsËœœÌ骬¬vêÔ66FÌEU ¯ÖÐYyye=z0PX …¢Y³~ÖÔÔØ¿ÿ‡ÝùT KA SjjêËË/¬%Ùüùû‹ŠªŽýÜÄD—‘lª„Â:%7·ŒÒÉ¥ E}ñÅÁë×óÙÛ›2 @¥PX@§äå•kkkvïnÒ™N¾ýölbâ­={‚{ö´a*€Š¡°€NÉÏ/ïÞÝDK«ãí\¸po󿤝¿žêççÎ`0ÃÅ‹Ð)Ož<µ¶6ìpóüüò ~ ¨Œ'¢¨ kè”ÊJ¡©©^ÇÚÖ×7Ι³·G³µk'1› @õPX@§TTLM;x/îÉ“§?ÿü1›¥‰ðÊÃ/2蔊 ¡‰IGf¬û-51ñöo¿Í³µ5f<€êaÆ:¥c3Öáá óæ 2ÄU©T3ÖÐq2U]]÷¢k¬e2jáÂ(ggË+Æ·x@\\Ü´iÓ˜]¿¿\\œºS´ …5tÜÓ§uR©ìE”¸oß匌G§N-iû&}¨Ÿ ‰­[·ª;@[PX@ÇÕÔ4Bôõ9ío’Ÿ_¾~ýñÏ>Ù«×sžãïïß©pÐåüþûïêŽÐ¬±€Ž‹¥„6[³ÇSÅãžñ†é_ŒRf.5ÀŒ5tœX,!„hk·÷Û$**åÚµ¼'¾ÐÖno-ðªÀŒ5t=cÝÎç™WU ׯ?>{ö`[%çPÖÐqÏ–‚´kÆzóæÓŽöòåc• @=PX@ÇÑ…u{Öuäå•EE]YºtŒ®®Žòs¨ kè¸öÖ7žtt4 |›ñ k×®e±X7n”‰aµ$--Mñ¥±±q@@@YYã‘ÚÖZ†œœ‹¥Œ…B!ÇëÓ§¾¾~ÿþý7lØ ‘HÚæàà0sæÌö8¯¼ÓPÖÐqÏÖX?§°¾q#ïØ±´/¿|OS“ábbbìíícccå;'L˜P\\\\\|åÊBHñ3îîî„+W®={¶°°pÑ¢EL%‰ŒŒ|óÍ7 g̘QWW'ëÁƒ†††999ò=-f022 e$Œ¢ÚÚÚ~ýú]¿~=""âæÍ›aaaÑÑÑ~~~R©´ùÁt°Â½{÷ÖÔÔx{{WWW·g%…xÅPuéÒ}këÿTU Û>ÌßÇ„ ÛÛß-]%·çÈôôt‹uöìYBÈýû÷›¼Ëçó›ôCáóùò——.]244l°6lÛ¶­wïÞ·nÝJOO÷ññáñxôþ††Åq•—¡EË–-2dˆD"‘ï?ýôS“#›“ÉdC‡ W^6EÍXÍùûûûûû«&@`Æ:޾lQ$ja]Ü•+9—/óW­ú@bbb† æëëëææ¦8iÝNšššôöñãÇûöíËår­­­å KŽ;æééÙ­[7GGÇÐ;Åb1dz´´´°°àñxb±˜²}ûöo¾ù¦oß¾žžž “'O¦ }ë­·Ú“Aq-‹ÅŠŽŽîÙ³§‰‰Idddk é&ÉÉÉöööÞÞÞsæÌ¡\.÷öíÛ„¨¨¨ððpMÍþWAWW—ÇãEEE)6¿|ùr“`,kþüù'Nœhí¬›ïÛ·?qâÄ%K–ÐMD"‘±±1ÝCóæR©tÓ¦M®®®úúúƒ ºzõê üä^Nê®ìàvëVµõ>¬hã˜éÓð÷ßñBݶsÆZ&“õèÑc÷îÝE­\¹ÒÝݽÉ-ÎX§¥¥ÕÖÖÖÔÔÜ»woøðákÖ¬¡(ª¦¦†ÍfFEEBJKKŽŽÎ?üP\\¼gÏ---@@QTDDÄ”)S>|˜‘‘áíí½bÅ záÇ7ß|ãäädll|¸¨¨èĉ666Ïý¡cÆ^r(¬ ãþúë±µõrrž´vÀ;…ÖÖÿ9wî¯ê¶…ujjª––Vyy9EQ7oÞ$„dff*Ðba­ÈÀÀ€.%E"QVV–@ J¥/^¤KÌÊÊJmmíÍ›7WUUÉd²ÚÚZ©TJQ”››[qq1ÝáÙ³g½¼¼ !&Làóù÷îÝ:tèìÙ³óóó»wïþ×_Qÿ^eÑZ†&…õ… (Šjll¤Û¶˜n’‘‘AQ”D"±²²JNN¦(jܸq7n¤(ªµÂ:%%ÅÌÌL±9Õl)õïºùY+6—‡ …ººº×®]£(êÃ? k­¹««ë¾}ûäcíß¿…5¼êðäEè¸ç.ùé§‹®®V#F¸)cô˜˜‰Dbff&ßëááÑv+>ŸïììL©««ûæ›oFŒQPPÀf³³³³çÎ+úöíKill|áÂ…o¾ùfõêÕÞÞÞaaacÇŽ%„äçç[[[Ë;444466&„üðÃVVV„õë×O˜0!;;{ùòåvvvôd°P(‰D:::­eh’“žÁÕÖÖ¦_¶˜æææFÑÔÔœ³dÉ’ØØXªÙ”pk¸\îܹs=zTZZZ__ÀãñnݺµsçNú€úúz™Löûï¿WVVΙ3çý÷߯¬¬$„Ðs½ôUUUUjjªžžž¹¹9=»Lgãp8W¯^]¼x±¾¾¾¾¾>!ÄËËkåÊ•mdhò–†Æ¿¾£[LH“ßþþþ qqqƒîÞ½;½3((hÍš5Š÷ …cÆŒiÒ¼ Š¢víÚ5~üxúeó³n­y```||üÑ£G}||\\\Zkîààžž.ou÷îÝc¼BPX@ÇÑ…uccË…õWôõ»Mžì£Œ¡ÿøãÒÒÒ   ½g¦OŸÎçóéžm(+++)))))yøðaDD„¹¹¹H$jlld³Ùõõõ«W¯&„ÔÖÖ²X¬Q£F:t¨¦¦¦±±Q[[›ËåB&OžVPP‘‘1f̘;v°X¬>ŸçÎ7}útÅqBø|þæÍ›ÛÈÐvì69†¾ûÇš5kf̘!ß^ZZ:räȤ¤$>ŸŸðöÛoÛÚÚ.X° µçñãÇ/^œ4iR^^žüJÄægÝZÔQ£FUUU­^½:88X¾³yóùóçóx¼ÄÄÄ’’’¤¤¤ððð¶?€W€Jž@×R[Û`mýŸó糚¿%•ʼ½ÿŸ¸ IDAT»~ý±tÛž5ÖóæÍ5j”â™Læää*ßÓök OOÏÔÔTú­­[·š˜˜ØÙÙíܹ300ЂNâääÄf³ÝÜÜé#kjj>þøccccSSÓ¡PHQ”H$Z¸p¡¥¥¥µµõÒ¥Këë뛌ÛâkÅ MÖX7¿=_ó„ÍOpþüù§¦¦Fq§@ Xºt©‡‡—Ëuww_·n]]]]óÏG1˜]PPГ'ÿ¬žo~ÖŠÍ›t¢§§G_ëÙZs‰D²iÓ&ggg]]ÝÒSàMÌÿ†5Öð’cQíþ/3€æÞxcÙ¶mͧ¥/^¼øÃŸ~Ù£Çsæb›‹‹‹›6m¾¡:`åÊ•ùùùÑÑÑꢄ¸¸8uh.^€N16æVW×5ßÃË˾U5tLCCCQQÑ/¿ürðàAugxMa5tŠ‘‘nUUÓÂZ(:•1uj?µDz=]½zµ_¿~ÁÁÁÇWw€×f¬ SŒŒZ˜±NJÊ‹¥&ôm± (ðaÃè›–€º`Æ:¥Å¥ G¦ âjjª§–HjÂ:ÅȈ[U%TÜS_ßxéÒý÷ß÷j­ @—„Â:¥ùŒujjnc£ôÝw{ª+€Z °€N177()yª¸çÿ»çæfea¡¯®HjÂ:ÅÊʰ´´F*•É÷\¸…éjx ¡°€N±²2”Hd/³.(¨ÈÉ)>üMõ¦P=Ün:ÅÊÊ€òäÉSzíGjêƒnÝ´û÷wì|Ï,ë…Ž×ÑqèÖÍééÓäÎ /-uGh kè++CBHIÉÓÞ½»BnÞÌïÓÇNG§Sß/|¡ÇVçäÔœ8ñ0/¯ÖËËdúôOØlÍÎŒ/³îÝ»«;@«PX@§p8lŽüúÅôôGï¼ãÜÉ>íìììììÚsäÝ»×­;vñâý¡CßܹóOÏvµPÖÐYVV†OžÔBD"ɽ{Åóç¿«‚A…BÑÖ­§þùR¯^6qq vUÁ m@a eccTXXIùë¯"±Xêå¥ÜicŠ¢âão¬_L&£6ož6uj¿]   (¬ ³L³²Š !ii 8fÊ«¨¨zÅŠß““³¦Ní·jÕffxj:¼,PX@gÙÙ™ž>}—r÷îc[åÍ'%e.]kjªÿÙÀNJ cPX@gÙÛ›ùd¯¿¿£G£ª€—f¬€öö&÷ï—hjjг×'KCC¿¾qãÔ  Œô  T(¬€NNYYÅææúŒ\VXW׸paÔ… Y;vÌxÿ}¯Îw X  pv¶(-­eä®ÒB¡((hwjêƒßÿU5¼B0c pr²¨©©35íÞÉ~jk¦OÿáÑ£ÊÄÄÅ..–ŒdP ÖÀGGs™Œâp´;ÓImmÃôé» «âã:;[0• @5PX-X,BHÇŸ¹ØÐ Þ“—W»U5¼ŠPXôôt444¥k.“Q‹GÿõWq|ü§={Ú0› @5PX3X,R[[ß±¶+Vü~þ|V|üg¨ªàՅ˜AQ¤¢B؆?ü𿃯þòK°——=ã©T·ÛP%“Qeeµ/Ú0!áÖÚµGÃÃ?ðósWF0•Aa hl”RU[[_Só«AòòÊV¬ø=(hÀܹÔ— @5PXéÊÚÙD ÍœùsÏž66LUZ.ÕAa hhB´µ5<(mg/¶ªJ¸k× --|@W€‹€2™ŒbmmÔÎÂ:::åøñôƒçY[)9€Š °°X,BˆM» ëG*W¯>2oÞðÁƒ]™ °víÚK—.1Õ¨ÌÙ³gÕ€1(¬€tammmxÿ~IÛGRõŸÿüæèh¾bÅxdffÞ»woàÀ ö JõèÑ£ÔÔTu§` k`€†‹bkk|êT¦LFÑ/[tà@Êù'O~ÁøÒêÆÅÅ1Û'(O\\Ü´iÓÔ€I¸^ Ÿ±nhU·vØãÇUë× îîn«Âtª€Â@OQ[YBÚXf½víQSS½%KF©.€ª °°ÙZô¿ÆÆº­Ö·n;–¾jÕ[µéT…50€ÃÑ&„Ô×7:9Y´øŒŠ¢V­:´f¬€††œÚÚ3MM ÅÕ þÉÿ믢ŋ}Õ˜MQLL̰aÃ|}}ÝÜÜ'­ÛISSÓ‚ޮ®®ž={¶™™Y÷îÝ—-[ÖÐÐÐÚN9±XÌãñ,---,,x<žX,&„?~¼oß¾\.×ÚÚZ^ѲX¬èèèž={š˜˜DFFÒ;£¢¢ÂÃÃ骚¦««Ëãñ¢¢¢èÕÉÉÉööö—/_n›ÅbÍŸ?ÿĉ­ÅPl¾oß>z!Çĉ—,YB7‰DÆÆÆtÍ›K¥ÒM›6¹ººêëë4èêÕ«/úÁt(¬€œ§OëÙl­îÝ ëÝ»ÿ7p “|[½èu „)S¦´³° … ¶¶öþýû+W®œ1c½áÂ…………×®];uêÔéÓ§#""ZÛ)·mÛ¶¼¼¼7n$''Ÿ?><<¼¶¶vÊ”)ÞÞÞ|>óæÍaaaòÅÐGŽIII‰ŒŒ ­¬¬¬®®.))ñòòjÏËËëÞ½{ôö–-[öïßß·oßægáââòàÁƒÖb´Ø<00ðСCEBNŸ>ÍårGÝbóíÛ·oÞ¼9""";;{åʕ˗/oÏ ÐÕPL Ù²¢¨  Ý FÑ;>¬°µýâĉteîïïïïïÿÜÃRSSµ´´ÊËË)Šºyó&!$33Sñ>Ÿßä˱É÷¦ŸÏ§(ª±±QSSóÎ;ôa‡vvvnq§bŸnnnÅÅÅôöÙ³g½¼¼D"QVV–@ J¥/^$„ÐýB.\¸@Dשׁª"„”••59©””333z”ŒŒ ylº¹ëׯµC±¹<°P(ÔÕÕ½víEQ~øaXXXkÍ]]]÷íÛ'kÿþýÏ­1è¿jÚ>àÕ‚5ÖÀ ÎÇ„''‹7òè^57×5ÊC­Ñþ#‘HÌÌÌä{bcc=<žÏç;;;Bêêê¾ùæ›#F³dÉ’ØØXªÙ´tk¸\îܹs=zTZZjii©©©™››K¿õàÁ[[Ûw*ö@O-Ó“[UUU©©©õõõ<ïÖ­[;wîTF€®ê¥øM]½Æšâèh^SÓPU%LIyP\\íïß_ÝÑþöÇ”––é=3}út>ŸŸ––Övò²²’’’’’’‡FDDØÙÙ™››kkkO›6mñâÅyyywîÜùꫯ‚‚‚ZÜ©ØÕäɓà222ÆŒ³cÇ‘HÔØØÈf³ëëëW¯^M©­­m-IxxxiiéÈ‘#“’’ø|~BBÂÛo¿mkk»`Á‚Öb?~üøâÅ‹“&MÊËË“_‰ØþxO^Þ&MM '§åß~´jÕáyó†/\8R£BâââT00"..nÚ´i¨C +ÁR`†™™!¤¼¼VKKÃÚÚ(%%§¢B0zôËrÙ"€²¡°f˜šêB**„{{Ó[· Í]\,Õ @EPX3躼œ.¬MòóËGŽì¥îPªƒÂ˜¡¯ßMGG‹.¬MMõ„ÂÆÁƒ]Ô @uPXcLMõè¥ õõ„PýúõPw"ÕAa Œ13Ó§ 뢢§„‘H¬îDªƒÂcfö÷Œunn)!¤¨¨Z݉T…50ÆÔT¯¼¼¶±QòàA)‹Å*)yªîDªƒÂcf¦WQ!¼¿D,–qPXÀkEKÝ ë /^ÌÌ,ärÙ66FÅÅ*-¬/]ºäççGo …ºººBUŽ/êÉ“'êŽÀ0ÖÀSS½²²Ú¿þ*rs³65Õ+.VÝëBd2R^Î),Ô¯«ÓîÛ·TWWO¾¼ŒÝÜÜÔ€I(¬€1¦¦z âììK­œœR• <Ÿ¢zíßÿ§@ øÉ'CßxÃTe£ÖÀ 33=BHnnùàÁ®b±4%å D?þø¿Ÿ¾$Kƒ‚Ì;ÌÖÖXã4ÂC?Õ¼¤¤ºG³òrAU•rW9‹D’ýûÿüî»s"‘8$døÜ¹C ¹J  (¬€1ôŒµLFõèa.•ʪ«ë(Šb±XŒ$I~þùâ®]Äbéâž³f ÖÓÓa|€‚ÂÃá°ut´E"±½½iE…@"‘ "}ýnÌŽò¿ÿÝ[¹òð£Go-Y2ÚÆÆˆÙþ:…50IW—MQ”A7##.!¤ªJÈ`a]ZZ»zuBbâíaÃÞö§O/íÙÓ†¡˜ÌCa L’ɽ„Åbq¹l@Ôᮊ‹«/޾v-oÕªæÌ¢Œ»‹0…50I&“‰ÅRz[GGK$êàCÅn……ýnjªìØçžžvÌPÖÀ$±XÒØ(¡·ut´$/ÚEQ[·žÞºõÌ{ïõÙ´)ÀÀ€ÃtF¥@a Lª¯‹D™ŒÒÐ`u`ƺ®®ñóÏ;{öîæÍ”@PXc(Šª¯S%4ptt´¥íoþèQåÇ難:´ÐÇç ååP u€®C Éd2òì.{ݺ½ÀŒuVVÑl§(rò䨪àU„ÂSSSÿl£¼Èë””“&}ߣ‡YBÂBkk<¢^I(¬€1t=M!ZZšbñó ë«WsgÎüiÐ çƒçãRExu¡°Æ44ü½ð£¾^L‘H¤ÚÚšm7¹|9;0ð‡±c{ÿøãlú‘¯(ÖÀùŠêº:!D"‘iiµUX_¿žüËÈ‘½¶lùPS_IðjÃo1`ŒH$!„hkkÊg¬µ´Zý¢yð töì=o½å¸sçŒçNl¼üPXcèk.W§®®‘"K[›±./|ôÑo¼aúã³QU@×€ÂÓÐ a±XݺiÓ‹­[[c-‘È>ýôW‹uàÀ\.—­ò˜JËD€1"‘˜ÍÖÔÒÒJeäïëfp¾úêPzú£“'¿05ÕSyFeAa Œihëèhkh°(Š"„H¥²æ3ÖG¦ýúë•ï¿ÿÈÉÉ‚©qsssÏ;ÇTo JŽŽŽ¾¾¾êNÀ ÖÀ˜ÆFI·nZ,Öß…õÓ§õzzÝ(.®^±â÷Ù³MžìÃà¸7nܘ7oƒ‚Êøûû£°†.…50¦¡AÜ­ƒ%“QR©¬¦¦ÞÄDWþ.EQŸ~ÐÄDwÕª”1:]ÍÃ+$ @ݘ„ÂÓÐ ÑÑÑ’Hd2U]]'“QÆÆÿÖqq×SSss8¸`º ÜÓØ(‘?=±ªªŽbjúwaýäÉÓÕ«,áãó†Úò( k`ŒH$ÖÑÑnl”°ÙZ••Bˆ|)Ȇ ' ¹Ÿî§Ö€J„¥ À‘HÒ­›VCƒ¸[7­ÊJ!!„^ ’™YxèÐ;gâ®ÕÐ…aÆCßnž·®ªêéé°ÙZ„µkõéc÷þû}Ô@‰0c Œ‰$::Zô¿……Uffú„k×r/_Î>th!‹ÅRw@%ÂŒ50F$³ÙZb±TGG;7·¬G3BÈ·ßž<Øeà@'u§ûÛÚµkY,ÖÆå{bbbX-IKKS|éàà0sæÌ²²2¦’ääätì ¡PÈãñúô飯¯ß¿ÿ 6H$’æ‡u&|‡³1ØÀ+…50¦¾^¬­­EÑÕÕÉÍ-ëÑÃ<#ãÑ… ÷>ûl¤º£ý¢¨˜˜{{ûØØXùÎ &_¹r…RüŒ»»;!äÊ•+ÅÅÅ………{÷î­©©ñöö®®®îp€ÜÜ\333zÛÈÈ(44ôE{¨­­íׯßõë×#""nÞ¼íçç'•J›ÜáðËðšCa Œ©­­g³5!¦¦ºyye=z˜íÜy¡O»aÃÞTw´¿efffeeíÙ³'---;;›ÞÉáp¬¬¬¬¬¬ÌÍÍ !VÏhkkBÌÍÍ­¬¬lmmß}÷Ý„„GGÇmÛ¶u8€L&«¨¨ ·ÍÌÌ'ÎÛiÍš5æææÉÉÉcÆŒquu €ÇãݺukçÎmtkii©©©™››K¿|ðà­­-½M¯YW´fÍÅ{€…ˆˆˆ1cÆ(ŽþÜðfff|>Ÿ¢(Š¢ªªªè5*-6 Œ?zô¨‹‹KkÍÒÓÓå­îÞ½ÛÆ)tI(¬€ôë²2ƒƒÙõëyOžÔøû÷Ww¨üñÇ¥¥¥AAAzÏLŸ>Ïç§¥¥µÝ°¬¬¬¤¤äñãÇ/^œ4iR^^}1Ÿ‘‘!ä×_­©©Ù¾}{ó†"‘¨±±‘Íf××ׯ^½šR[[K¿%ÔÖÖž6mÚâÅ‹óòòîܹóÕW_µ–'<<¼´´täÈ‘III|>?!!áí·ß¶µµ]°`AûÃB&OžVPP‘‘1f̘;v´6â¨Q£ªªªV¯^,ßÙ¼ùüùóy<^bbbIIIRR’|Ñ6Àë…50ƒž±~ò¤ÚȈ[]]§¥¥ùò\¶H‰‰‰9r¤………|···““Ós/a|çw¬­­»wï>cÆ ==½›7oÒ«&ÌÌÌÖ­[·téRooïÙ³g7ohdd´eË–   777‡ÀÀÀ1cÆ888 ñàu€kø›ŸŸŸº#€š={¶ÃmsrJ555tt´ëêDX¯#Öð·sçÎ 0ÀÎÎNÝA@ =z”ššÚ™23q¹låA| IDAT‹¥©©1dˆ SÁ^È?þø¢Md2ÒÐ år5•‘ž+77×ÑÑQÝ)ƒÂþñÅ_ÐBƒ× ýäÂÎô‘ñ¸®N,“I{÷îÎf«çËeÞ¼yí<’ÅÒd³í»usîÖÍI$*¨®>¥Ô`ÐÖЕ °df>’J¥„É“}T?z@@@{þ& EçÏg<™qþ|–@ òö¶;ÖsÜ8O3„€.…5tVAAEmm›­ÙØ(}ï=/uÇiª¦¦áôéÌ“'3.^¼/KtZ±büر½­¬ Õ ºÖÐY))9,‹¥66F66/ËöêêÏœ¹“˜xûÂ…{E öæ† SFò01ÑUw4èšPX@g]¼xŸ¢ˆ†ëexà¢@ :u*ãøñô‹ïkjjŒïùÓO³‡ qíÖM[ÝÑ ‹Ca uéÒ}‹%“QãÇ÷QW±Xzñâý£GoŸ>}G(½ý¶ãÿýßÄ÷Þëcjª§®HðºÁbà…­]»–ÅbmܸQq§@ X¶lY=8Ž‹‹ËêÕ«!111¬–¤¥¥±X,Š¢ääää°X¬vÆhûàíÐé>Gvvöøñã­¬¬&Nœ˜žž®ŒQ^f%%O«ªê(Š21Ñíß¿‡êܾýð«¯{{ÿ78xO^^7öæÍÕ‡-œ5kªjP%ÌXÀ‹¡(*&&ÆÞÞ>66vÅŠòý‹-*((8tè]VVÖâÅ‹+++¿ûî» &BòòòÞyçz›bjjJ‰ýðÕõÊ•+=z0\çåææ¾õÖ[åååôËG½óÎ;“'O>þ7‰íߙҭ›öرžJùë¥Ewï>މ¹vòdFIÉÓÁƒ]ÂÃ?=ÚÃÀ€£²M °€“™™™••uæÌ??¿ììlWWWzÿ‘#G’’’¼½½ !æææÛ·oŸ1cÆwß}Çáp8!D B¬¬¬{›7oÞgŸ}6|øð&ûannÎx·2™¬¢¢BþrýúõƒÞ½{7=Þ·oßšššˆˆˆýû÷3;îs“¨Q|üMBˆH$;¶· †«­mHL¼ãúõp1+«håÊÃýû¯Yµê°••áþýŸÜ¸ñßÕ«' ª€—@QEBbccÛ>F&“õèÑc÷îÝE­\¹ÒÝÝ]þÖéÓ§mmmuttüüü6mÚ”ŸŸß¤-ŸÏoò;‡Âçó³³³9ÎÞ½{›4räÈdddxxxü÷¿ÿݺu«……ÅáÇ‹ŠŠNœ8accC1eÊ”‡fddx{{¯X±‚î<--­öߨgëXd2EQ‰‰‰666b±¸N¦NZUUõÓO?B***644hhh”””Ð/› Ôþ>[<’hìØ±çÏŸ/..f³ÙÁÁÁ………QQQ„ÒÒÒ&ŸgóK±@ÐöO–þ©ícZ´~ýqkëÿxx|õé§¿v y{…¢ß~K?~›µõ† ÛøóÏŸ>­SÒXÁ¢šÍ4÷ã?ª;Bäèèèëë«îÿ`±X±±±m?¾îêÕ«ƒ.))155½uë–Off¦‡‡ý®T*½qãÆ™3gâââ²²²~ýõ×éÓ§ËÛæä丸¸(þÎa±X|>ßÙÙyûöí«V­ºsçŽH$¢‹Å'==ÝÝÝ’°|ùr /¿ürÖ¬Ytó_ýuÖ¬YEõìÙóÂ… ôÜí¹sçx<ÞíÛ·[¼T‘¢¨ºº: ‹ .ôïß?00°G6l „´ÖÉ… †.‹Ùl6]ªÊÏ¢¨¨ÈÖÖ¶¶¶VOO>ÅÚß§³³só#ÿýw—ŒŒŒÞ½{766æææÚÙÙq8œË—/6¬I’?®S§NÉ{xîOŸ~¤y¾œCëêÄ„Pqq v}Ñæm (êòe~TTÊ™3w´´4'Mòþ裞žv À,¬±þöî;®‰óøs „½ Ù‚€(î-¢µNdˆ¸¿´Z'¨ˆ[PA¥?[G­»B%H©‚q(DY‚€ìVÖýþ8›¦Bd…ñy¿øãryî¹Ï]Ž»O.Ï=ˆ¿¿¿´Cè†<==;Ub-‰èèh.—«¥õïøÏ4ÍÞÞ¾ºº:!!ÁÓÓsРAƒ Ú´iÓÖ­[×­['œX‹±|ùò¸¸¸~øáàÁƒÄœ¢¢"gnnN¼´°°ÈËËÃ0ÌÉéßQý¾v™œM¥RóUU¿§Gä¬"ë¢P(Ó¦M‹íÓ§OBBÂË—/ÅWBÜ—•m¤ d===yyyƒÑ¯_?ôO2]^^®¡¡ñ­u6UÒÆÆ!$''—‘‘±xñb‹E¬KD£»K¸†vrï^zM [KK¹mÛp8¼¸¸”S§ÐéŸz÷Ö^¿þ{//ÕÐùAk ©f €oâéé)íô›ñx<!hð°fÍÁ1{öì´´4¢$†a&Làr¹ÖL"‘N:õðáCÁo#ºººd2933“xùñãGSSSáÎìÞ¼yCLhii1 "Œòòòäädñ«óññ‰ïß¿¿¥¥¥øJH¤&Ï“$iܸq"¿ç·;—¼Î¦JÉwmm­——W``à‹/>Ü0’Fw—p ídݺó!GîîýÛ¤7C&³öàÁ¤w¬]m` ³ôþý %KFCV è ±Hêþýû_¾|ñõõUúÇìÙ³ Fjjª’’Ò¼yó¼½½/_¾œ™™ùèÑ£€€É+733Û·oßþýû‰—²²²ÞÞÞ+V¬ÈÊÊzýúõ¦M›|}}—,YxñâÅÂÂÂk×®mÙ²…(ìî“C§Ó'NœxèÐ!b~qqqáóÝÜÜÊËË·nݺhÑ"AMUÒ(¢‡„PhhèÙ³gׯ_O§ÓSSS·oß~ìØ1A.+yâKÖ×׳Ùl99¹ÚÚÚ­[·"„ªªª„#itwI²Û[ãóç²ÜÜR55JiiÕÌ™ý[YƒQ´bE”ƒÃ–ƒ“æÌ’’²íĉEÇ[µSïãÐ.:ö&èªܱnkžžžÄØ(ͪ­e·w0„f?e777á9|>ßÜÜ|ýúõ8Žs¹ÜmÛ¶988(((˜šš®_¿¾¶¶V¸pS/ ×6~üxA™²²²¹sçjjjR©ÔÕ«W×ÖÖr¹Ü½{÷ZXX(**2„¸­‹ã8“É\¸p¡ººº¦¦¦ŸŸ_uu5ÞD[aÁºüüü”””„ékªA„Ä4‡Ã>|¸’’’`Á/^Œ7NEEÅÆÆfåÊ•,ËÑÑñ›êl´¤ÈˆÐÐÐ022:|ø°ŽŽŽH$ wWÃ.F ^üî»ýTê*W×½îî¿~Ó‚"Þ¾ýüã­±³ Þ»÷jqqUkj)‚‡D$y¬ |bgÆÄÄ4U€ÏÇ“’Þ=z—JUýõ×v¿ûˆàSîÙ¾õáÅ’–ƒÃf ¥WMM}tô’‘#­[°ÒÏŸ+öí»vþü3## ?¿ÑÞÞ. r-¨: xx€N§ªªŽF{zäÈí G£Fµ$e ]ÍžýBÈÖ–ÊáðZUWTÔüúëÍ“'ïi=:Â{2š&º1³´”Õ†«`2kËËk**¾þ•—×TTTÓ ¶m¸"Ð¥¤d¿~¯¬Ü+55÷С¹ß´,“Y÷ë¯7Oº¯££òË/¾“';B+j@·‰5ÒÇåò¯^¥ÿöÛí—/sedH‚”šP^^#~q>dÉ••Â3ñW-ü’Ïÿ÷·~ SS£¨©QÔÕ)ªª ƒˆŸß„³³iVVɤI.…ãøùóÏwï¾T_Ï]³f¢E#äåÛ±Çèxpm¦©ñ8Ú|E«W¯~ôèQ¯^½¼}ûvGGÇ6_KǨ¨¨‰Šz|ò䃢¢JbŽHVM”IL|#¸Çüߤ¹¦¬¬šÉ¬./+K&ÒeâOCC©woA-4_QEEAxA ƒÞÊAóΟ^PP¡¥¥üøñÇ;fÈÈHÔ„##£pÆØgϲæÏ¶nÝw"ÇtXƒ¶ôèÑ#33³¶­333sàÀ%%%ÄËOŸ> :ÔÝÝýÖ­[¡S§N1"99¹OŸ>m»Þf#i¥º:™‚Åþý·³Ù\O4™VSÃ^´è¤––’ª*EUUAM¢ªª`n®£¦¦@ÌÑÓSÕÑQ!^Â-@Ю8Þúõ1!KK²²j_ßÁÍ.RUU·sgüŸ&jy÷î†Þ½µÛ?LH¬A[ÒÖÖ&ÆdnC|>¿´´Tð244tøðáG%n÷ë×Éd†……9s¦m×Ûl$­ñ÷ß/^½Òâpȱ›m_ŠãxJÊVÕ6Y5­±fMt]ÇÔT+99óĉ…Í>q˜˜ø&8ø/&³.$dæ¼yCI$hN èÎà)lÐî¦OŸ¾fÍbº¾¾^]]ýòåË!‡¨«««££ÈápB†EEEÙÚÚjhh„‡‡#„ŒäëIII+V¬nv²oß>AýÖÙhÉ>`–””dllüàÁƒK—.õë×B¡P©Ô={ö4Œ¤¢¢bÁ‚ZZZ†††uuu"5ˆÙ'3f8XèèX¼nÝw˜‘ÉB¨W¯&o6×ÖJ:„!íçåËœ¿þJÁ0ÄáðÝÜì&Nì+¦pyyõ²egçÏ?Þ¿¿éýûA  ƒ¬ÐíAb ÚRuu5ë¿B>>>ýõÑØúúõë e„ ¡Ÿþ9++ëùóçIII·nÝŒ¢wá…LJ‡‡¯_¿¾¬¬Œ„3¯¾¾>33ÓÎÎŽ(I¬B^^ÞÜÜœ˜#abJîß¿ÿÌ™33gÎtvvf0ûöí *..Ž!´|ùò¼¼¼§OŸ^½zõúõëaaaÂ5ôë×Oü¾Â0¤¬Ì^µÊíâÅ F¶ô‡Föé£a†!YY²páòòê(´ ÇçÏ?îâbVZZµmÛt1…##úôiÖŸú92O[[¹Ãâi’âà4  AŒ¼ØÔV]]­¨¨øôéSÇgÍšD”·±±)(( ¦œœˆJnß¾ã8›ÍF1 áÑãòóóBUUU ×øMu6Z’XNÇq¼¾¾þÝ»w,‹Çãݽ{·a$l6›L&¿~ýšxgaa!\C³šy1'§ä?.ZtÒÂb=•ºÊÈh •ºêÎ÷’ÔÙJ’|Ê »jväÅu뢩ÔUvvMLJjªXqqÕâŧ¨ÔU+VDUTT·C¤8þO´ »’pTZ:!hc ÚƒÁ°°°™I¡P¦M›Û§OŸ„„„—/_ó³³³©Tª ˜ªê×6Äúúú!YÙFÚEèééÉËË3 â~0Žã¡òòr o­³©’666!99¹ŒŒŒÅ‹³X¬Fï=ñx<Ár ‹¼¼<áZÌØXsîÜ¡sçårù©©9wï¦ß½›Q[ËnM’ 9vìXǬ t*EEEbÞ}ñ";2ò B…ÒËÖVÉ’1‹Oݸ1¶W/Ù³gýÆk÷nÑÅ \ º®ˆˆi‡@ËAb :‚ÏÊ•+œœú÷ïoiiIÌÔÒÒº}û6‘ˆWTTšXHM¶P"‘HãÆûý÷ß9"˜)|ïJò:›*I$ßµµµ^^^111S¦L©¯¯?uê”È⺺ºd2933“èäãÇÂ5´žŒ iÀ³ÌÖ®Ø&6ËÓÓ³cV:!uuõ¦¾r¹ü Nà8nn®SXXócÃÖÒ……•´»wÓ—,³v턎éŽØnéüùóÒ€–ƒÄ´¥ââb%%%á9Ä£~nnnååå[·n ¼åîî´oß¾ÊÊJ???—_ýµ©šY,Qshhè°aÃTTT|}}ù|þÅ‹ãã㹬äu6,¹råJÁ»õõõl6[NN®¶¶vûöí¡ªª*eeeA$²²²ÞÞÞ+V¬8vìXuuõ¦M›|}}[¼ß: ¸ÿµbETI KEE!3³øôéÿ™šj‰¸téÕÆ±J¯sçü‡·’JÐÀË - :”ú_Ä|999OOÏ‚‚Aáeeå~ýú;ÖÑÑQððŸSSÓáÇ ªrtt¼ÿ~JJʈ#|||ÊËËïÝ»'èÄZÂ:›-©¦¦¶ÿ~___SSSŸ‰'ŠDrðàA}}}77777·   –î6:¯?ÿL¾pቄq8\?¿QãÇÛ ¿›]âí}dÉ’3S§öKJ „¬ÐÃax; Œº Ãh4š———´é>ˆ 7‰Ag–—W:dÈ.¯®N±¶¦ÆÄü(g‘Ãá9rûÿþ™Vx¸Wÿþ¦XLLŒ··7\¿º%87‚. š‚hŸO™ò+ÇWRꥡ¡tòä"AV}ï^ú† ±¥¥¬;fÌž=:¨$Ö1gÎïEE•½zÉ((ÈEFú©©QBÙÙ%aaWRGŒ°:wn‰‰‰¦´Ã€NÚXµwïÕ;wÞ“H˜Š åâÅ&&šeeÕ›6ŵ‡NÏ;rd^ʪwî܉a1~*!::kLjj*†a>|^¼áIW«®®îååU\\Œ"ÆgmýF5T]]èè訬¬ìââ²k×..·‘[…3557o˜$Z|ûm>$ÖþãÆ×?ÿ|!D¡ôúóO? ¥ÐÐK..;’’Þ<8çþý )Sœ¤£¤pŽŽ666î—sÚ´i=BüC0ªk›xôèQAAÁçÏŸóòò~úé'„ššÚúõëÛp-„ªªª<{ö,,,,%%%(((**jüøñ<¯©ÀòòòN:Åd2+**$YK;@wMAüëÇ¢… O"„””äi´¥¯^}š;÷XMMýÊ•ãøa$…"'í¿MZZÚ»wïnܸ1~üøŒŒ +++„‚‚‚‚‚BˆÅb¡zmsÚÚÚDÍT*5,,lÊ”)!---á{çmeÇŽÚÚÚIIId2!dee5aÂ{{ûS§NýðÃMf``0zôèÑ£GÿüóÏD¿¢âµSðt'pÇÀW••µãÆíÃq\YY~îÜ!‹ Š2ÅéñãM+V¸v¹¬!=jÔ(WWW›Ö„Îápuuuutt9N||¼Ayy9BèܹsVVVÕÕÕ $“É:::è¿m!0 ‹ŠŠ²µµÕÐÐ'f^ºt©_¿~ …J¥Y,±HRR’±±±³³óÿþ÷?¢$‹Å¢P(ÄX¶‘‘‘[¶l!²j‚¢¢b```dd¤ðâ< ð%K–\¾|¹© ^üôéÓDðÓ§O_³f ±H}}½ºº:QCÃÅy<ÞÞ½{­¬¬”••‡ öäÉ“V~trX@!‡×¿ÿ6‡+'G®«ãž;÷dΜÁ/^lÛ¾}ººº¢´£k ¢ˆBhæÌ™&ÖÕÕÕ,!ÂoýüóÏYYYÏŸ?OJJºuëÖ–-[¦Nêêêºzõꢢ¢Õ«WGFF*** ×SUU•žžº0 „h4š´£èV<=====¥ÿ27ß@¥®¢RW9;o=vì.‹U'툚D¤ÈÍKNN–‘‘)))Áq<%%!”––&\€Á`ˆÔÓè…’Á`ïÚØØÓ‰‰‰NNN8Ž———:88lÛ¶­©zTTTˆJ„׈º}û6Žãl6›XK}}ý»wïX,Ç»{÷.1“X„N§ã8Îårõôô’’’pŸ4iÒž={ˆBÅÅÅ"›ÿøñc---áʼn• 6‡ðìÙ355µ¦6PxqAðÕÕÕŠŠŠOŸ>Åq|Ö¬YAAAM-neeuúôiÁºÎœ9ÓìçFÐ¥Ak ©¤¤$ pÁáðeeá·Q™™™½{÷–v .—åÊ«åË£¸\™LÞ¶mš¯ï`yyYiÇÕ¢££¹\®–Ö¿c°Óh4{{{ñK1 ÁKá^,²³³c¯"„TUUBjjj~~~Û·oOLLl´žšššÿû¿ÿ;vlNNŽÈºôõõB²²_÷¶œœ\FFÆâÅ‹Y,–ÈÝe„™Lvww‹‹spp¸yóæÑ£G‰ôôôRSS]]]…IMMíß¿¿ðâMm¯¹¹¹˜ l¸8…B™6mZlllŸ>}ˆæ(.Îf³…o¥;884Ý$Ö@R¿ÿþû·.Ò«—1…Ò·W¯Þ¥¥ç9œÂöˆªKƒÄHWaaeTÔã3g•”T!„ÔÕ)¯^íŒÓÕñx<±xñbbÎÖ­[i4ÚŽ;ZÜã›––ÖíÛ·‰t™h€úôéÓÁƒ]]]×®]{öìÙ†KQ(”Å‹ùòEä-é?{»¶¶ÖËË+&&fÊ”)õõõ§N¼%H¾===}}}ûôé3|øpCCCb¦¯¯ïŽ;ÆŒ#hf]]]¶råJ‘ÅEà8~äÈ‘ï¿ÿ^Ì6º¸ÏÊ•+œœú÷ïoiiÙÔâîîî¯^½rtt$ ¼yó¦Ñ0è6ºÉ ´·oú¤¼¼úøñ»cdžkh¸÷é3tóæé……Úç'—® ÆìRÁåòR½½ °ýäÉûDVÝ¿¿É›7¡Ý&«FÝ¿ÿË—/¾¾¾Jÿ˜={6ƒÁHMMmqîîîAAA999t:}âĉ‡âóù‹-úé§ŸÎ;wóæÍ„„AáâââÂÂÂÂÂÂÜÜܰ°0###mmmñõ××׳Ùl99¹ÚÚÚ­[·"„ªªªDÊŒ1‚ËåîØ±C¸Ñö–-[¾|ù2nܸk×®1Œ¿ÿþ{РAK—.m¸"°üüü»wïΘ1#++Kð$bà l*T77·òòò­[·.Z´HÌþY²dI``àÅ‹ ¯]»&h´ @·%íÔt/>þ¥—×aCÃ5¶¶7mŠ{õ*WÚAÐ#aÂ~¢Qõôé¿¶w„mK’6ÖþþþnnnÂsø|¾¹¹ùúõësmc-ÒYx“É\¸p¡ººº¦¦¦ŸŸ_uuõ¯¿þêèèÈf³qÿûï¿©TjYYþß6Ö$ÉÁÁ!99oÐÆZP³`:""BCCÃÈÈèðáÃ>>>::: ƒ\²d‰‚‚“ÉžÉb±Ö®]kooO¡PìììBBBjjjn£p`FFF¾¾¾EEE‚wn ðâ"Uùùù)))±X,1‹s¹Ü½{÷ZXX(**2$99¹ÙÚXƒ. ÛxVÉåä”FF>Ž}þå søpË9s†¸¹Ù÷ê hwÕÕõkÖD'%½}ý:¤©†Ñ<ÿÁÆùóÏ.]z¥¨ØËËËEEEáàÁ›µµ„››ÝéÓ¢]wr111ÞÞÞ=öúœ%í@Ú…——B~Ð]¤> åêê8±±ÏÏŸ–’’­¡¡èí=hÖ¬ææ:ÒŽ €žâÇ/óçÏÍ-åóñ[·ÞMšôõɰß~»£¯¯6uªÓ»w±±Ïââ^3‡ ³Œˆ˜åäd²}û…ÄÄ·áa[·Nõ÷-Õß ®®îóçÏ'Ož}úA||juuý¤I§NýoôhYYróKÚHtô“õëÏóù8Ç'“Iqq)DbvåÀDmmå½{¯~üøÅÅÅlíÚ “';ÊËË>|+ €ÆãñÂÉdìäÉÿß–ƒxƒööäÉ“3f,]ºtôèÑÒŽÐH¬Á7¨®®ÿûï‘‘éôOFF?ý4næÌzzªÒŽ €ž…ÃámÜ•Œ†Žâñø7o¾ýô©lÙ²³ÏŸç „Š‹«ÆŒ±9qb¡••Ñßc¿ IDATŸ_¸ð"<üjQQ%›ÍÅq¤¤$ùò*KK]io ø6£F*++“v€&Ab $rÿ~FdäãÄÄ7<âľÁÁ“‡ ³$‘ZØe Å>}*[¸ðDFÑÚ¿Œ¹\î°a¡\._0‡É¬µ²ÒKJz·kWBzz¡’’<‘UÏœé1~b€6‰5§´”ý„F{úáÃ[[êŽ3¦LqTU¥H;.z¨»wÓýýÏÔÔ°…hŽ#.÷?óݸñfÊ”ÿKIÉ16ÖÀqÄdÖÊÈ÷íóöòréÀÛRUU]~~ù§Oe‘ÉJÒDAb ÁãñoÝzûüúõ×22$w÷þÎqp0’v\ô\|>þóÏ×þù1ݰŽ#áØD±‹)¹OŸÊqïÝ[;6vY—h»UTÄÌÏ/ÏÏ/ÏϯÈË+ûô©Œ˜®¬¬! ((ÈÈÈhJ7HhkðyyågÎ<Œ‹K)(¨pq1 qŸ6­Ÿ²²¼´ã G«¬¬Y¶,òÎ÷¦ÔbTTÔ „äädCBfÌ™3¤}¢k!&³.;»8'§´¨ˆYTÄÌÍ-ÍÉ)ÍÉ)dÏŠœ¡¡†®®Š‰‰æÀfÆÆšºº*ººªúújÿý—·÷>éÆ Ab BˆÃá]»–ùøáC†ª*eöìÁžž¬¬ô¤èò~ÿýwi‡Ðåן;—WVÆnÙâ––º±±Ë´µ•Û6* ñùø§OeEE•©3‘I hSS-Í#¬<{–åâbÖ&«®ªªËÊ×~CAAÎÈèkû‘#­„Ûo´y?$uOžžžÒ€‚ĺÇIKË;{öQ|üËšöwß9O:Ô‚L½è´Þ¼)×Ðp¯©©—°|zzá7%Ö8ŽçævêöC† !¯»1CCCi‡@ AbÝSTTÔÄÆ>}N§21Ñüé'Wºº] €°êêú²²ºúúòòÖ.Â`6:¿ë¶ß02222‚~Š$ÖÝŽã0"#߸ñÃ0;vL0À Æv ‹RTìUS×<«ÖÐPäóþILû yyY"]i¿A¥ªÂ 98cv[%%,íɹsO23‹ûôÑß¹Ó}êT'iÇh•’’ª—/KÂÂB†‰ofM"a§O?8qâBHV–¬¯¯f` nm­çêÚÇÐPÝÀàë_¯^p9€Ö‚3iwÃåò¯^¥ÇÆ>¿s罜œÌŒ·Ï…±]è6´´”ÝÝM÷ì9jo?ýÓ§Rñ…1 iíêÚÇÀ@ÝÈHCGG~­€ö‰u÷‘›[zöìã¿þz^XX9b„ÕÁƒsÆ·ƒ~¬èf>~üråJ®ŠÊˆÜÜR2—ËSXF†ìà`4}ºs‡…=ôÑåq8¼„„Toï#C‡†FG?™9sÀ½{A4ÚÒ)Sœ «]ÈÎ;1 Û³gÔ+ñáÃ1ݺEGGcIMMmÄ™›ë¬\Ù·¸øìþýÞz÷Ö!“——k¬{,/¯¬" ¢™Æy 3{÷îó©S^±XucÇÚzx €±]@gƒa˜$ýXã8nooÏb±444^¾|Ù²u5ZIffæÀKJJZV'B¨¤¤dß¾}M%ëµµµ•••¡¬¬¬¡C‡ó555eeÛë›mLLŒ···àìÍdÖ¦¤ä¼x‘ýüyvJJ6‹UO"arr²uul„Є ö§Ný¯" ’°®§ººþï¿_c»ª/_>Öݽ?•ª&í¸h¹´´´wïÞݸqcüøñVVVmU ŸÏ/-m¦!²xZZZbn+((((( „X,BHOO¯5ëj…1clÆŒ±Añù8ƒQôâEö³gÙOždfg—äå•w|HÐ3AS®äéÓÌuëbœ·ÿeb¢I£-MNÞ¼lÙ8ȪAW=jÔ(WWW&˜aXTT”­­­††Fxx8BhÅŠÿûß×û¯,‹B¡nN7ZÉàÁƒ‘P¾[QQ±`Á---CCÀ€€ºº:b-'Ož´µµÕÖÖÞ³gÏÙ³gÍÌÌTUU7oÞŒ„š‚p¹Ü­[·kkkÏ›7¯¢¢BÌ5'QÕÅ‹­­­uttV¬XQ__âp8ººº:::§Å{’D¬­õ||GDÌzøpã»w¡¡¡î-® À·ÁA§WZÊ:xðæ¨Q{¨ÔUC†„ÜÐÐP’Jºººd2933“xùñãGÉCÕ××ÏÎÎ&¦SSSCCCÅ—o'¸oÊÈÈ ¾6hii1 ânGyyyrr²äQè< ±n_YYÅ’ËÎ. ½äâ²}É’?B‡Ï}ùrûÎ3`ÄDÐíÝ¿ÿË—/¾¾¾Jÿ˜={6ƒÁÓôˆ#¸\îŽ;æÎ+a%D—²²²ÞÞÞ+V¬ÈÊÊzýúõ¦M›|}}%uîܹÁÁÁ¯_¿~ýúõòåËsrrÄ—o'aåÊ•>|xöìÙÆçÌ™ƒrww ÊÉÉ¡Óé'NÜØØ˜è¥DŒ†q|}}]]]'Mš4qâD"€eeå~ýú;ÖÑÑ1,,Lò¨šÂçãéé…çÎ%‡‡_m}m$Ä´—S§lÞ‡ãÈÃcÀ³EÞ}ó&ÿÌ™‡ññ©55õß}çàá1`ôhYY²TB ýH8@Ì· ÎÎÎŽŠŠjÛjÛœHœ>|°´´lýYWd€ÁH1OŸf¥¤d×Ô°BÎΦ—.­låHn‹¶=‡·nÝùóçŸòù8BèÂ…;vLWU¥ „X¬ú ¾Žíbl¬ùÓOãfΠ§* ©ºººÏŸ?Ÿ{–•œœùòeNYY5†!2‡Ã# ɘ™™–øJ´H¬Û“Y·pá‰gÏ2‰¬!„ãx\Ü ÈÈÇ7n¼æóñ‰ûO6Ì’D¤-]Γ'Of̘±téÒÑ£GK;qSEEÅßß¿•5WTÔ¼{W¡¬Bá8dÕ!2™l`H@ĺ-åå•Ïšu$7·”Ëå fr¹üÝ»/³XuÆÆš+WŽ÷ö%‚ž ®Ž“]B&+·mµ£F*++kÛ:ÛC£qêèèüöÛo­¬™ÇãggWQ(ÎÏžeý3§É¶%|>n` ÞÊ5$Öm&55××÷(“YÏãñEÞb±êvïö˜;w(ܢݎ㹹e¹¹¥99¥99¥‚‰ÊÊ„…â í»¡ª*N]cútÏÇ3kjØ Ï9\.ïäÉûOžd¨††ê††êŠŠ½:2`è! ±nññ/—/äñðFK’•%¿{WY5èÊË«³³K³³K²²Š³³K²²JrrJJJX! èTU33-{{ƒ)SMMµLMµúö5“vÈݺ:¥¤¤ŽB±»qã­$å5™ÌÚ·o?çç—WUÕ3ÕÔ(Džmd¤a` n` F¼ÔÕUiÏØ ›ƒ^AÚÀþý×""nˆß“о“B‘ë°¨h .—ŸŸ_ž‘Q˜‘Q(¸ýùsÑ~WQ±—¹¹Ž‰‰¦±±¦‰‰¦‰‰¦••®®n#á¶S¯ =ÜÏ?Ÿ OÁ0ѱ!›2uj¿ß~›‡âpxŸ?WU1¿-1óòʈ.DBªªâ3ÕÑQÑÓS!>bSS-…öÚè.àŽu«ðùø¶mŽ¿P3ßOjjØW¯ÒgÎÐ1 ¹ÚZ6ƒQ$ÜŠC8‡VV–73Ó61Ñ8ÐÌÊJH¹ˆ^n€TTW×ß¹SÀá|‘—7âó›l"LCC‘˜•%Ÿ`Ã2••5‚<›H»Ÿ=Ë"Rp¢@¯^2zzª‚¯R::*ÄKCCu2†D„Dë»w„H+”.‡ÏÇòòŒªªT0 á8Â0ÇÅ5öذá÷ß~“t4Š‘#GnÞ¼¹-Âì:ç±—˜˜(íÚXuuýÇ_„s茌BA椫«B¤Î#GZ ò'È¡;EÅ^S§š<~üN¬Ã]ó#·«ªR( G{­¯çV ‘gçä”Þ¿Ÿ‘—WN´í–•%kh(êêª ~ÁÐÕUÑÕU17×éÈ–Üó$ÑÓ®w"vîÜyïÞ=iGÑsmÚ´iÔ¨QmXá뢢¢›7ozzz¶á º±/_UU1MÍJ„Œ Ž.#ƒ#„ddø†Èdþ?ó‘Œ ïŸi‰Ïüø±ºzÏz¿³{Ÿ>}JNN–v­ÂdÖeg§§fd‰LžüÞÞGÞ¾ýŒ"ºïx÷î3þéüùg¡¡—üýÏLœakleµaâĈ¥KÿˆŒ|œ“Sjm­·|ùØ£Gç_»¶æýû]o¢Ñ–†‡{-[6nÊ'#Ȫä<=].]Z¥££"#óo«zõ7Öž>ýÃ?3ñ£Gï®[C§ò÷õðáF// “——©«ãúúþ¾wï5iÅ/u;wîÄ0lÏž=‚9ÑÑÑXcRSS1 óôô~ · Oã-®ªºº:00ÐÑÑQYYÙÅÅe×®]\.·a1ám1557o^qqq{ÇÖ†5ßzè¶øÓŽ=ñZرѣG ètº¥¥¥···˜gÿ?þõöíÛ–ÙJKKûõëG¡Ph4ÚÓ§OgÍšåããsýúõÖל™™©¥¥ÕúzZ€É¬‹Ž~"Ý£Gé°ÝžššëáqÈÃ㞇jضÃÐôé¿Lœ±råŸÑÑO>.·´Ôýᇑιti¾³a CCƒÖëÛ×ðÊ•5ÎÎÆÄï'²²2S¦8"„ÜÜìââ–))Éÿ½ÃæÍSÒÓ §OÿuäÈ=Çßóóuýz ““ †a8Ž~þùº‡Ç¡oj®Ý=à8mllL£Ñ3§M›F\Ô=z„*ø‡B(66V¸°xÍž„ ¨©©­_¿þ[7¡ªªjÀ€Ïž= KII ŠŠŠ?~<×Hcâz——wêÔ)&“éìì,a¿ò-‹ ´ŸºßôéKra…c¯y¸â£Â›ƒb0‚—EEE¡¢¢¢¦Ê3 IªmWË–-#²€€WW×Ö×ü­['IyOOOâI£êê8 © 72ZC¥®JO/|íÖ·{í}PÑh4uÿÓúú« ×P©«šú36^»lÙY:ýSeemûÅ@£8ÞöíôõWS©«^¾ÌÌó&ÿíÛÏÄô‹97þegll¼vÁ‚ã7o¾}fcD,շ力Š)…ß–$<‡à8þêÕ+ ÈqUÓÓÓEÞmxnAùûûkhh4UF| ßZ Y#FŒàr¹‚9,ËÔÔôرc"%E®×|>äÈ‘[¶liÍÚ%×úë]O ùhÁ¡ûMŸ¾$ŸWw:öpGÑh´¶]u«ºâ'ÈÊÊÊÉÉ©ª~€€Ãáêêêêèèr8œÁƒ#„ôôôš*@ܱOJJ266~ðàAÃ! ⢢lmm544ÂÃÃB\.wëÖ­ÆÆÆÚÚÚóæÍ| jtñ¿þúkåÊ•ÂaoݺõĉÄtEEÅ‚ ´´´ êêê„DžnF³[ÇãñöîÝkee¥¬¬DÎN—.]"~/¥R©Ä/øÂ„¯/ «B]tB‘‘‘[¶l!“ÿm¤¨¨)r=‰ð%K–\¾|™x)þr|úôi"¶éÓ§¯Y³†X¤¾¾^]]¨¡ý®w Q-8t…‰|úâLÔÄ…޽æ gÙ’ß5LMM­ªªªªªÊÏÏÿñÇ.\(x7,,læÌ™¹¹¹t:ÝÙÙyÆ "ßš*ðÝwßݺu‹Åb5,@¬ÔÃã¼¼üرc¡ÒÒÒ½{÷ÚÙÙÑéô´´´Aƒ4Uyy9B¨¬¬¬©-òõõ7nÜÇétº½½ý¶mÛ„cžnF³[¡££÷ùóçË—/ëëë7»“…¿¿r8¼7^/_~ÖÜ|¾þjcãµ"wLáŽ5ÞØn' ûøø0™ÌãÇ#„¼¼¼˜LæÑ£GB%%%âWôÛoÈË[††&x{¶± ¢RWéë¯23 44ÝÿTêª3~mÝÖÐZÕÕõ–,,¬}ZPàÌ™3žhž<ùH³²Ú@\öšjЉ5Þô1óâÅ üŸKxZ俽Ùx>}*»r…veöìßúô ¦RWéë¯îÝ;hãè¸ù›7©âñø÷î¥ûù60Xcd´š8¤ŒBiÇÕržC’““eddˆ¯Ö)))¡´´4áb²“¨¨¨äææ Ê4{ù¨¯¯÷î‹ÅâñxwïÞmxÕ_ÞØE§©äæñãÇZZZ"×SñÉøË± ¶êêjEEŧOŸâ8>kÖ¬   ¦oñõN|™îMÂ=КCW@ðé7{dâ}¾ÝìØÃÛ'±naw{ ÃÂÂ!TSS³eË–E‹=~ü˜x+;;›J¥ J šˆ4UÀÆÆF|âû‡¬¬,ñ2''ÇÒÒ’˜¶µµµµµmjquuu]]Ý·oßúϞ=ûñÇïÞ½[VVÆãñÌÍ͉ùyy‚þªj0&³HÍn›ÍvrrÌqpphtAÂÂʼ<¥¢"ÅéÓ•‘!í=ãý6´vm4…"Ú×[—STTD"µ¼)ESÇŒ²²2úçÞþV††ê††êß}×—xYXX™––G§JMý”šš[\̪®®WTìòŸè9H$lÄ«#¬ÒÓ ÏœyùˆËåµçĉE'ö•vtí(::šËå ?¡E£Ñìíí%Yvùòåqqq?üðÃÁƒ‰9EEEâ/rrr‹/f±XýúõS¹˜ªD.:jjjzzz©©©®®ÿš*55µÿþÄ´àzÚƒÁ¬¥ÙË1B¡L›6-66¶OŸ> /_¾ljño½ÞɵæÐ|ú’™ ?_8ö$ÑÚ6Ö eÁ‚oÞ¼dŸÄ·"m///ONNY¤©‚³FSH¤ÿD«¯¯ŸML§¦¦†††ŠY|êÔ©û÷ïN‘###9…BÑÕÕ%“É™™™Äü?ÓD2ùùùÂë £Ù­355}õê• À›7oÄ,Žª®®Çñoè#FYYAMÒÕÿ(‘Ñ.¾I³G]»‚î¤@×em­·k×Ì÷ïw»¸˜â8Z´èäwßEܺõoðãd7Àãñh4ZDDDÕ?Ö¬YCܯ’dq‰têÔ©‡þþûïÄ1—Bmm­——W``à‹/>,¦r1U5¼èøúúîØ±C¸†êêê°°°‰'/›ºƒ€ãø‘#G¾ÿþ{âe³—¿v£ IDATcŸØØØøøøþýû niµþz$ÔÊC— üéKrd6zxÀ±×<áÛ×-ë$''!Äd2‰—+V¬ðððÈÎÎ~õêÕ Aƒ–/_.òãB ˆ¬”˜Þºu«ƒƒCZZZZZÚ°aÃ/^,fñ/_¾hjjúúú>|øðÕ«WÛ¶mC]ºt‰XdöìÙãÆËÌÌLKK³³³Û²e ÑÛâ‰'*++g̘„š‚ˆ„A_UUÕÔÚ8 ££sáÂ…‚‚‚«W¯öîÝ»ÙLü0ôéSÙÁƒ7 ÚA¥®"š@Sôߦ bv;ÞØ‡ÕpZÂxMA¼¼M®W >h º‡íÛ/R©«¨ÔÕTêê!CBŽ»[WÇ‘vP’’ärûöm2™,܇ÕóçÏÑ?íÄÍþž~äÈâ±*âeÃˇðÙ©¼¼ð«W¯VWW¯[·ŽX—páÕ5¬ oâÜUYYimm=jÔ¨«W¯fddÄÅÅÙÙÙ 6¬®®N$~$ÔåÙ;w¦M›fhhXQñµ=½øË±H›uuuKKKá_ÛÛðz'¾L÷&Éhñ¡ÛÔ§ß쑉7qaíNÇÞ©ÚX Ÿex<žŠŠJVVñ’Éd.\¸P]]]SSÓÏϯººZd_· ÞØÉ¥®®. @___UUÕÇÇGЄºÑÅqÏÎÎöððÐ××WVV8p`||¼`eeesçÎÕÔÔ¤R©«W¯®­­Åq<$$DMMÍÜÜüâÅ‹bk‡3|øp%%¥¦ÖÎår÷îÝkaa¡¨¨8dÈâk™ø=,òoöþ}Á¾}Wû÷ßF¥®22‚‡8Ž7»ÛñÖ%Ö‚‡gÎìã㣣£#\@xu^‰š:w±X¬µk×ÚÛÛS(;;»ššš†ñ ßG322òõõNÎÄ_ŽEªòóóSRRb±Xboýõ®’d´øÐóé‹?2ñ¦³©nsìáí“Xc¸ÐÆÇÄĈêt ///„PLLŒðL.—ÿàAÆß¿¸|ùUm-[F†L4¼¾sg½••^ãuêØ+*b.YrèÉ“B„H†Ä%+KööîÕQÑо¦L9’’úñÇqÕÕu4ÚSUU…µk'Κ5HF¦ zhm'ê$×èõ®G= E†Ñh4â#h+÷, DÈÈF¶9p`ö›7¡G.;Ö¶3_äº4]]ó/_Nùú!‘0áQ£ÅbÕ§¤ä”–²:&<ÚU|ü ## „Б#I††êÉɛǷ۸1vܸðë×_K;:èÔZØ+¢^½d&Ovœ<ّɬ»r啪*EÚuO<^ÕÞ½^+V¸8ý„L&s8܆Å8~BBê… /B**ò&&ZffZ¦¦_ÿÌÌ´tuE;Æ 3Ã0ìÎ ŽŽ[X¬º]».ËÊÊ„‡{­\9þÀÄÿýïdß¾†›6M6ÌBÚa@g‰u¦¢"?kÖ iGÑÍiìÛçíï?:<üê•+t2™ÄåŠt}ˆß¸¨¯¯š“Sš“Sš›[šž^xçNzvö&³!$+KÖ×W36Ö41Ñ41Ñ$&,-u䤲E4KAAöÞ½ ..;x<þöíåäd,î5sæ€x/¯Ãßï°mÛt}}5iG $Ö4ÏÒR÷رïßìÛwíêÕ4’ gq ÃLM5ä(FÂKUVÖ²mbâþýŒœœRâ]UUŠ••®µµž ÛîÝ[GI :žžjT”ŸÏo8Žÿ¥¡A™:µß A½ããW^½š¶k×¥Q£ö¬Y3añâQÐ&  ±@R66ÔãÇ>|øa÷îK/^äÈȹ\žº:¥©{Ϫª”†Ù6“Y›]"’múTÆçãÄ"‚ÛDÚmjª­¢Òò¡sh±‘#­'…‡_‘•Å~ú)JM2r¤5†a“&9¸¹ÙŸ>ý <üÊÙ³vïö5ÊZÚÁ@§‰5¢¸\>×d߯Y\º´êÖ­w»w_~ó&ßÌL«©’RQQpp0ɶÙlnAA%ÑŒ$#£0'§”Nÿ”—WÎãñѳmቖm’[µjüíÛïž?ÏRV–_ºôlbbÑüCF†ôÃ#]]ûlÜø×ìÙGç̲uë4 Z7z:H¬…ãø™3ºº~£Fí12ÒÐÕU¥RUµµ•©TUmm*UUSSiìXÛ1cl®_‘QÔú5ÊÉÉóˆV‚™ïóç ÁíÜÜÒÄÄ7™™_ˆQîUTLMµD²m##  Æm).n¹½ýæÊÊMME?¿ÓqqËåä¾^8LMµþüÓ?>>uóæ¸{÷Ò÷í›5z8H¬%+Kž?ßêéÓ§ …Á("‘0‰Äçã|>Ÿ(€a˜ªª¼††’¾¾šÆÞ½WÇŽíÓ¿¿I›‡ñO¶ýï̆Ùöýû'OÕÖ²Brr2Tªª±±¦••ž õ¶¡¡:™ ­`A ‘ɤ„„£G‡••U×Õq¶lù{ÏOáS§:mïéyhʧ={<ÔÕ¥-]KaaeU•œ²2[Ú€6‰µ4±ÙÜÚZv}=¯W/2ôš×©ÉXyù•¥KO'$¤òx|>ÿ?=à8^QQ[QQ›™YL"a8ŽfÎÐ15šm#„*+kÒÓ 32ŠˆlûÙ³,í ‹Uë–ÄÊJÏÜ\§3þe'ì†k¨“¤Ôþþ£ccŸ¿y“od¤±fMt¿~ÆTªh_{S¦8 bëë{ÔÛ{àöíÓUT:8ÎÎsê×»ÌÌâ°°+—/¿25Õڻ׋FÛ{ïÞ=8t»ÿ$ÖFFFžžžM’ST佯VS#ц È22ê‚9#GŽ>ƒääd>}L’þχ=”§§§‘‘Qóå¾ÖTºZ‰Ë凅]9|ø†!ñ÷;G²ŠŠòïÈØÀ· ¿zà@bÃò€¦qqË¥UjØ `nninn±Éí× ÑÎB aÖyš‚ÐhÏV¯þS^^¦¾žwúôÿÆ·kª$“Y•ìêÚ',ÌSOÆ=Çÿã‡aaWUTäW¬ïí=PV–,í @»€Äº}ݸñú§Ÿ¢êê8‚ñDDH¤ðpÏÙ³{Ê÷õ®kÿþk×þ»hj*­\9Þ×wp÷I±a'€¹¹¥mÛ $ÖM霉5Bèûï~ù2×ÈH!ìÎõâûk×Ò‚‚bù||Ë–©îîý1 º¬=ÑÝ»éÁÁ1ׯŸ4þ0H©»7H¬ÛÝçÏþþg^¾Ìiô¾5‰„8àûý÷òò²ø&‡%íÚuYð/C"aææ:£GÛDE=VPûᇑ Žèöƒ¹4ì–$=½P|'€ÆÆMeTX7¥Ó&ÖîäñøŠŠ½–,½víDñå™ÌÚ={.ÿñÇ£!CÌwïö´°Ðé˜8è **jvîLˆŽ~2b„Õ®]3¥þ4èXw.—àÀˆˆ"ÍBH$L[[¹¸¸J^^vÌÛ ì]]û¨©A÷ ב#·CBˆÿ ÃŽ™7uª‹UýäС¤ªª:ŸÁ?þ8¦ás]Ý[Ãl;'§”Áh¾@H¬›Òik„Pxøµ®+(ôâóùl$†ŒïÝ»Ïë×Ǧ¦æÌŸ?|ݺ»ù÷OB0V¯>ÇçãÛ·OŸ<ÙQÚဉuÇyð€±dÉ&³ŽËýÚ,„L&Oññxï^Fbâ›k×ÒjjØöö†ãÇ÷™:µŸ¥¥®túõ×›{ö\ÁqœJU}òd‹ ÓºšöŸ&9r»¤¤jÚ´~+WŽ77ïÑ7çØlnnnYVVqvvIvvIVVIvvI~~9Ñ,JEEÞÔT›L®¹vmW#í`;ΜX××s6UU±•”äÜÝû‹tkÝæÌÃðð+** «W»yy „îÕAwUWÇÙ³çòñã÷¦Më·{·GÇw¤ëURÂúñdz1÷­Ÿ<Ùld¤AL××sŸ>ͼqãÍ¥K©EELMWW»)S]\Ì mb§rôè;âwhÑ‘·jk¿¦×ÅÅU.Ë—53ƒßþþÅåòóòʈ<;'§äáCzRÒ>Ÿ+~©Fÿ6þúu^bâ› ^~üøESSiÌ›)SœF¶‡:‰sç’§Ms¦Pr‹ÃáÅÆ>;xðVnnéŒΫV¹AÓºFIØðG™™™ ÏÔÓÓkͪ333XRR‚*))Ù·oßž={¾©ᨪªªBCC?~üþýû¦¾çççæääKRygN¬ù|ÜÙykq1‹DÂ.±cÇôoZ|ø ¸7,Á¯^åJ;Ð)@S.¬W/™#¬v’²íÚµ5îÞ}?}ú¯ŽŽ[V¬ˆJL|Ãf7ÓÙèx#FXÅǯ—Ÿ_.í º"—˜yöë¯p±cÏ…§×wî¬;|Ø?%åÕСÛvî¼A¡ÐÅW¯¡¬¬Œºpá…B9t蟚sçÎ }ñâÅ‹/V¬XQVVÆ}ªÙ-¥Éd²¯¯oPPPIIÉ‹/6oÞìïï/`<ŠŠŠõõõܧOŸ¾qãÆ²²²¼¼ `´¸c=$Öý]YYMJÊËë×sž>-•–&»¹ÁÊŽ=ÂÛ·_¶n½šžþzÒ$»°°ïuuUÄ‘H@bÝ–Þ•X_¿žpÞÂB[EEöÕ«ŠÅ‹G®]ëÝ=‡./¯MHx’𴸸ÊÉÉpæÌ!žžƒûêçˆ]nS͟×@KXƒ|úTwçNAJÊË»w_s8˜£ãÀÉ“í'M²ÓÒRwhý†aIIÏwì¸N¥6®Y3~Ñ¢‘}íjcH¬ÛÒ»k:½ÉÔtÀ µµ´åË=NŸÎÈÌ ÕÐPèΞ=+½téIRR…B2Äpʇ‰í45»3з}þüÍÛ{ŸµµÞ… K`öh $Ö ¹oßþþ»0%ååíÛ/êëææZ“'ÛMšd?hPYйw¡Ó›Ž»søpš©©Fd¤¯ƒƒ¸#&H¬ÛÒ»k„»{ÄÛ·Ÿ%$ˆ{öøFF&{yYíÞ=³ûÃàp°§OK®_ÏMJÊ®®¦š›kùø ™9sˆ¦& €.ijb͘q´¦†šœ¼ZIIVÜသ kÐ&¸Ø±çxÿ¾fÓ¦Ëéé¯gÌpÚºuªªªœ¸#H¬ÛÒëë]»n;vÇØx€µµÞ°aÆ[¶\ÉÈØ`h¨.®x fZÚ«¤¤ç©©¯ØlÎÈ‘æßïàím­¨(#®@¯¶qcÂ¥KO®_ÿÙÒ²/_÷ºkоf;ªªÊk ;v¿””—6$ÐéM›6Mò÷w&zý¿7X·¥×%ÖoüüN˜šjVUÕggoõôŒtq1Ù»×WÜq!*µñ¯¿^$%=¿{÷5BÈÍÍì»ïlÇ·QW—wh ×¸}ûÅÂ…¿ýßÿÍ™5k¨¸c=$Ö càbGñ¢P‘‘ÉçÎÝ6Ì("b–©©†¸#êH¬ÛÒëëúz†…Å&IIRc#+))¨¤¤:$$.33TO¯§\GH¡0RS_þùg^zúë¦&Ö°aF&ØN˜`W:þ**êÆŒÙ3mš£Xf7^kÐIÕÕÔôô‚7rÛºØ155•»4tàééillÜ=ÇÊÏ/ ‰ó¦bÅ •+={ïïX·¥×%Ö¡á÷øðUKKÉ×wØš5ã]]wz{ÛlÛ6­;c(..NMMå_‡Éä¼}K+(¨/,¬olÄtt¤‡ QvpPîž/cccOOOqGÁ†a~~'?|øšš,##)øŽýí Øz–ïÎÕh@ŸÔêÊŽ¹¹ï}||DßÏ{n^'¯±‘™-éèŽýí ØøÜ[º@Ï¡¤$;y²ýäÉö4Zczúë[·òÏœ¹·oßmCCŸøøxqغº³¤¤Dp°÷Ô©Žë×ÇOž|pÁ·uë&((ôÊ 9}`²8@YY馤444WUWSýý]L‰ŠºÜM÷´æÂà7Þ çÿ óîÝ—íÛ¯Žqr2ìÄîýç Ø~ž‚Ä ¾þÙ¤IvL&;+ëÝž=[ÅQßgjª‘°üÒ¥§Û¶%ݼ™»mÛ´I“ìÄT¸¸¸À‰§-ÎÎÎâ¡cÖ¥ÓËÊj$%%ÒÒ^ùú[°ÀíìÙ{cD½#¢°iÓe==•µkÇ‹;Л@b „L&i~ø0KÜô aÖ¬¡ÞÞ6‘‘É?ýtáìY£ˆ33MqÇ%}}}}}}qG„¿”–ÉdÛÚêß¹Sàë;lþ|×£GÓââýøã(qG@Çܸ‘›™Yô矫¥¥ÉâŽô&}m!7ú'EEéíÛ§%$,ÿú•æí½ß¾Ûtz“¸ƒý‹žž ™L’‘!ëè(gd¼f2Ù(øú;w.æf€Þ…NoÚºõêŒClmá?Ð1XÐw nœ’¼aÃwgÎüíæ¶;!á)$4 ÛHD5uuy C #'ç=Bhñb÷ââªû÷‹Äpüxz}=cóæÉâô>XЧɤ%KÜŸ> ›3gxHHÜèÑiiâ ôªÉÈH––V ¨–’ò!djª1t¨QLÌCq‡€ ÊËkI[¹ÒsÀqÇzH¬èƒää¤Ö®õNI 8PmÞ¼Ó‹GTˆ;(Ð÷éë«bzóæ³··Í¹x¡¿¿srr~u5U¼±  }ûn  °x1\:k N±±±„Ö$$$À-غÎÔTãÂ…%qq?UVR¼¼"/UŠ;(Зij*Òhøõ‹¥¥Õø¿s“'ÛËÉIÅÇ?wtÍmß¾@ „‡‡sKÚúFÊÉÉAÑh´uëÖÙÙÙÉËË6l÷îÝ,Ö?—hü–Ìܦ޾}+¢/1bgg§  0tèÐ]»vqÃàÅ¿¡¡á¼y󪪪=}ý¾}³óóË==÷Ξ}"=ý5Ö“ÆA¯¦®®€ÒÑQ)-­öö¶)(¨(-­F ¬cc£wõj¶¸üŸØØXwwwOOO AF𣣣ÃÂÂH$·DNNnݺu111øæêÕ«-,,–.]ÚòuãÆ YYYmmmîÏýûfk5Œèèhük3--ÍÀÀàþýûÍb 7oÞl«qÞÝÏ;‡mN:uÍš5ø.***x -wg³Ù‘‘‘æææ ®®®=ä]èiŽ»£¥¥4cÆîg7ឈûXwü,‰5!&ÖÙÙÙ†5555{Œ-,,¸?¿¦¤¤ØÛÛsÛ9qℳ³3ƒÁÀw!‘H/^¼ÀŸJLL455ÅÛOOO¼ÍVõÆÄ——÷á§Ÿ.è믱±Ù¼wï­ªªzqGz±ÚZš¶öªåË/ŽaØîÝ7¶°Xl ÃÊʪutVgd¼i&ÖYYYxBðìÙ3„P~~>o…Vk¼>¯¨««c<¹ÎÁƒß¿Ïm¡±±±  €J¥²Ù쌌 nÍN|³ñÉïÕÕÕñ#æååá…ü3•–óîÎ žF£ÉÉÉ=~üðٳgoܸ±­ÝÍÍÍÏ;Ç=Öùóç{]b}òäÝAƒ6ÒéMBiMÀW×Ñ®ˆñ}g[ílÍZàsvuWÁÏò°¤9èBd2¹Ùc\ii©¶¶6wSII ——·{÷îÌÌL)))„Pee%›Í611ÁŸ555-//Çãÿ­ Òfßcc£wìØÜM›&>qòdúáé'Ú.Xà6t¨‘¸C½‚‚4@––Ào®çë;ìðá´{÷ G¶00P³µÕ»~=wÔ¨AâÅÆÆ²X,Þ+ºââ⬭­Ûª¯¬¬¬¥¥•““ãááÁ[ž““caaÁ[²bÅŠÄÄÄÅ‹9r/‘””,,,\²d •JupøÏ%qýfã†áééÙ, '''üq³xxq¿ÛúŠk¶»¬¬ì”)S|ýúõçÏŸ·µ{SS“½½=·ÄÖÖ¶­0z& â£L›æØÍ ˜w´+¶ŠûÎòél\>»Aw̱½þ¿/þŸbmmmVVBˆJ¥úûûŸ?^WW¯¦©©I"‘Š‹‹ñÍwïÞqŸ"›Zm³ÓÓSùõש/^ì8|Ø¿¼¼vÊ”C®®»ŽM«­¥‰;4ЛHDyy)‰X[Kãp0#£NN†ññOðg'O¶ONÎc±8â ’ÍfÇÅÅíß¿¿þ_kÖ¬ÁÇ¢øìåïï¿}ûvîÝ üüüþøãððp???ÞjD"1***33óÔ©Sx NŸ5kVHHHvvö±cdzÕo!ÿmÛ¶ñÞTF£EDDx{{㛼¹/ ÃŽ?>qâD>·º»ŸŸ_BBµkלœœÌÌÌÚÚÝÐÐ077—»×Ë—/¥=ÁãÇ%oß~™7oDw´s]±ÞwVÎ&¢³tW.H¬A¯7}úô7–••åååy{{=z!´|ùòÅ‹»»»s«‘Éd__ß   ’’’/^lÞ¼Ùßß¿Cmöy’’“'Û'%%&®°±ÑÛ³'ÙÙyGhhâ›7ŸÅè5e"°X …Žòñ’œœ÷åK=BhÒ$»ÚÚ†‡ߊ7Â{÷î}ùòÅßß_þ_sæÌ)**Âgj¶%,,ìóçÏ^^^·oß.,,466ž3gƒÁX¼xq³šFFF{÷îÝ·o¾ÙØØØÔÔ$))I§Ó·lÙ‚ª¯¯$ÎV¿…¾|ùâááqëÖ­¢¢¢+W® >\WW÷§Ÿ~jÙBUUÕçÏŸ?~ü˜‘‘1mÚ´’’î¥]‚Å7®¶¶vË–-‹-â[```HHHRRÒçÏŸoݺ&Èkì9bbÚÛXZêtçA;×QÛï,ŸÎ†ÏcF";»AwýAæ‹Ð BœcÍý_³ÕÇ eáÂ…***jjjK—.¥Ñhø³’’’R<0 ûúõëܹsÕÔÔ´µµW¯^M§Ó;Ô&¨×α棲’ràÀm'§­ÚÚ«&Ng7¡Ÿˆ±>Ô]?˰Žüâ€àfÍš…Šw Ý@ ÄÅÅá/¹ïÉËûýðÊ•ì¦&ÖèÑ3g™0ÁVB~ï­˜>ýˆ¡¡Zlìã«WWfŒ:|8õðáÔ§O·(*ÊDF&'&>{øp³ˆŽÏÍt»ASSSvv6~;3ÐQ=çqófîO?]ÈÉÙ¦ª*'¬6{ΫB!øYN€vØÚêïÙ3ëñã_~ùåûòòÚ€€ó£Fí>x0åãÇZq‡zyy)&“ƒª«kÀK,p#‰.<@¹»*+«))éÒ Ì=‡¤¤$dÕ}@rrþ!FB̪A‰5@ **r‹JK IN^3zô “'ï¾}ÆŒ#ü‘E¡0Äè)¤¥ÉL&‹H$0ÿ,<¡  =oÞˆÓ§3 ¦££¡‚‚ôߊ7H¸˜LvjêË lÄè# ±tŒþ®]3_¼Ø‘˜¸ÂÄDcëÖ$+«P_ßã—.=ihhwt@̤¤È KRR‚Á`q üqä·oôßÏ’ :;›Ü»‰5è)23‹êë'Lèe÷=$րΠ ÆïÙ3ëÙ³­ø‘ɤµkc‡ݶqcBfæ[6[Ì·Tâ"%%ÑØÈ”’"76þo©dMM¥ÀÀÑ‘‘·êêFŽ4¿¿zè!RR^ZZjë驈;ÐG@b èyy©™3‡DG/ÍÎþuõêqûøutÜ vÿ$%Ef0˜ÒÒ,ÞòeËÆ’H„#GÒF2§PèyyåâŠ^÷ïÝæ2%t$ÖáPW—_¼xTZÚº¿ÿÞ¸`7ÃÞ´)áÁȰû <¥n6bRT”Y»Öûôé 6›£¡¡™Y$®મ¦¾}ûÅÅÅTÜ€¾–4™©©ÆêÕãV¯÷öí—ë×snÜÈ9w.SMM~Ü8kooëQ£IIÁ7OŸ…§ÔÄ–+,ΟïzùòÓM›.;;›>yR"–ðàõèÑ;"‘0l˜‘¸}œÞ¢ÂͰ‹‹«’“ónÝÊ‹{$##9v¬å„ 6cÇVT”îtã;vìb´¢°yófÞå?û)) ƒ…a@hö‘Hسg–·÷¾1c?^&–ðà••Ule¥« Ðù/"šÄˆPqqñ©S§Ä?cãË—{,_îQW×’ò25õUHH<Þääd8nœÕ„ ¶ÆÆ:Úfeeejjª(ŠK—.-Y²DÜQt7|ÄšL&‰Ík„ÐàÁ:k֌߿ÿ6‹Å)/¯ÑcðµÓ+‹7†'OJD7\ÝîNgËÈDtt .XzöìY@@€¸£=ˆ²²¬ÏPŸ¡ ó޽””—'OÞݹ󆹹ÖäÉv^^V¶¶új°'/lÖrȶ?’’hldIHÚzõ+VxÞ¾Ÿ—WþäI‰ˆkøÚé-Ä›X3™ì‚‚O‹Qû|΀’’º ÎD¢\UÕE„`ì>k *=9ãb'-Möò²òò²Ú¶mÚß¿INΊº¿oßm mooOÏÁöö­y‚NZZ¢±‘)#Cnëÿ âÉ“ \]w>œ:mš£p>kÖ,AÖ!ôöm%“ɶ²ÒEãmSR^:”úìY©——UP—“ÓyQˆ$Öq’–&g=nœ5›Íyô¨899ÿÊ•gÿ÷©©Émááaéî>HE–î5¤¤È,#Û¼ë”ÚÈ‘æ¯/^|0wîˆî ®—/?‘É$SSÍî9\nî‡;oÜ¿_8l˜q|ü277³î9.èfXz‰8b„鈦۷O+/¯½{÷õ½{…ë×_ª¯g˜›kyyYeîìlB&ÔÄMJJ‚Éd³Xl2™ßí\Ç·~øðíæÍ‰FFênnæÝ\¯^}43Ó솯”šjxøŸü‘5l˜q\ÜO#GB‡ïË ±ô8zz*?üàòÃ.,';»4%åÕ½{…G¦)+ËŽi>r¤¹—×`qÇZ'%EFÑhM²²’|ªYZj76²¦Lq˜?ÿ·øøŸœœ »)>þUXXii)’y \MM¬Ã‡SO×ÕUùã@H©ûH¬=—„qØ0ãaÃŒBééwîlÚ”°i24”'Èâ4'--b0˜22ükü÷÷™3‡ÖÕ5,^uåÊJCCõn „Bee5ŽŽE×þãÇÅ6$””T-[6vÅ þŸÐgÀÊ‹€ÞÁÒR{Ù²± Ë_¼ØyìØ¼0ŒÙî^ÁÇÇÃþwÝýÛ·o¿_G‡*ôïˆ5›ÍáŸF¨ªÊ©ªÊ•”T>½P[[yÆŒ£¥¥ÕÝ#ˆÃÁÊË¿ê뫊¢ñ¦&ÖŽ×gÌ8ª¡¡x÷î† U÷XzEEéI“ì&O6°~BBB\\œHC\Üe5ùOA™™i¾{÷E^^*66PCCaæÌ£ee5¢„ªª¢46²D‘X?~\ìî~áBæþý³ccTú!@O‰5  X¾|ùçÏŸÅH¿ ++…?‘ig¢Ž©©fQQ%BHQQ&66PMM~êÔCŸD"}øð!$ÜÄð#GÒ||Ž©©ÉߺµÖÇg¨½$Ö€>nõêÕK—.å‚«««[°`ºººžž^pp0ƒÁ`³Ù‘‘‘æææ ®®®=Âk2™ÌMMM &³ýY(ý“’’ þ@AA†MSS·o+ÿÝKöÊ••ƒëLž|ðÎцBŸ>ÕIHµ´”„Õ Ö¸téùÈÈäÕ«Ç]½Ô‰ÕdAß/ú8‰tîÜ9;;»óçÏ/X°€÷©+V|þüùñãÇ4mΜ9 ŠŠŠ{÷î=qℳ³óóçϹk’8p ¤¤äéÓ§x.¶{÷n1¼˜›X++·“X©ùRO§7áÓOee%ÏžýqÙ² ?þxöÀ¿©S…¼v ¼ªªêUUåH$á /~^¸ð,‹ÅþóÏÕVVºBiôR0b èûÌÌÌÂÃÃþùç>p ™LfllìÁƒmll¶mÛ}âĉ={öL›6M[[û»ï¾ãfÏQQQGŽÑ××·±±‰ˆˆ¸uë–˜^JO'))A&K „ÛI¬uuUBŸ>ÕqK¤¤$NŸ^¸téèåË£wï¾ÉáÀRÏ@TjkTUå…ÒÔíÛ/&Mú?¥ää5UH¬ýŠ+/^ÌRYYÉf³MLLðMSSÓòòò>ØÛÛs÷²µµÅ”––jkkàååURRÒÍñ÷"²²d‰Øîm´µ•Ñk„‘HظqâÑ£?œ>1oÞ骪z ú±šªªª–t=sæï%K¢&N´‹ŽJƒ ·ƒÄÐ/‰Ä¨¨¨ÌÌÌS§Ná%ššš$©¸¸ß|÷î®®®¡¡ann.w¯—/_âÔÕÕ‹ŠŠ0 Ã0¬¶¶6++«›ãïE$%%¤¥Û¿Å¸ŠŠ¬´4¹Yb›:ÕñÊ••žž‘0åˆÂׯ´®çÁ{ö$oÙruƉøqï‡ú9H¬ý…‘‘ÑÞ½{÷íÛ‡o’Éd__ß   ’’’/^lÞ¼Ùßß?000$$$))éóçÏ·nÝ Ã+OŸ>}ãÆeeeyyyÞÞÞGßëèéÈd’„DûËDmm劊Vk„þÝ»ëÇ·þá‡SAA1 MÂôkµµ4•Î'Ö¶n]üÑ£iGŽü°lÙX!z;H¬ýH@@€§§'wóÈ‘#:::C‡7nܸqã6nܸ|ùòàà`SSÓmÛ¶ýþûïxÍ;v(((888Œ;ÖÎÎ.""BL¯   d²@'¥ŠŠom=«  ½gϬS§¤¦¾òöÞ÷òåGáÅú;­QN®“‹¶°ÙœµkcããŸ;6wÚ4¸ÊüürèËšÝb@ üõ×_ÜM• .4Û%88888¸Y gÏž={ö¬(ƒí#0 x³-­6G¬¹&M²³¶Ö]¹2úûïyþôÓII8s®¢Ó™[ ðàฤ¤ç/.9Ò\èÞF¬Æfs©§¡¡P]Mm·š¡¡ú•+Ak׎?|8ÕÃ#òÞ½Â.Gú;:½I+šÁ0l͚ثW³/\X Y5h$Ö„‰Åâ0,Aj*+ËÖÕ5RSB‚¸lÙØ6;8Ìž}bþü3øÊyt÷êvõòå§'NÌwsƒ¬´kÂD§3´VR4±Æih(:äñâ’¢¢JOÏÈãÇÓét¸¨tƒÁêèˆu\Üã³gïíÞ=süxkEúH¬ ‡ƒQ©V]Ýþ-¨••e)zG‚;Ö2=}ý’%îûöÝ1bçùó™L&»³ñ‚~ Ã0"‘ xýû÷ ×­‹ß¼y²¿¿‹è¢}$Ö„æÛ·‡ƒ*)©n·²²² ‡ƒQ©ŒŽEJJ"8ØûéÓ-?üà²k× gçÑÑY,&v€"š_ÙÌGIIÕÒ¥ç}}‡ýôÓ‘FúH¬MM !$##Y\\ÕneeeY„Pmmfƒ4Û}íZï»w×{z ½<~üÞ7raô† `^ÝÐÐôãQÆÆ¶oŸ.â@_‰5¡Ág€¨ ’X+*Ê „¾}ëdbÓÖVŽˆðùûï66zç]\v;v‡B¡w¥MÐçG¬·n½úùó·S§ÀÚŠ@Xšš*‘H05Õ(-m*ˆœœBˆFˆªýßÿÍÉÌ 6ÍéСT[Û°  ˜7o>w½eÐ'H¼úêÕ옘¬#G~ÐÑQ}P /€¿Mu5UIIÖÂBûêÕçíV–’"#„™Â:úÀj¡¡“FŸ?Ÿyþüý+W²ëêîS©…Õ>袸¸¸Y³f‰; „±®¨¨ Mœ?ÄØ±–B >>Þ××WèÍ‚N|Î=Xz1///q‡þãëWšššœÞþýQ( EEi>•edÈ!Ch‰5N]]~íÚñ+Vx$&>]° nõêÕ..p'ñë!)5Në ”•e·l™*º0âããE×8ÐÇ8 ¬Ö ±ôJúúú>>>⎂}}}qGÑݪ«ë P°¶ÖÃ0ìåË..&|*“É$"‘ÐØ(Ðj2%%%áçç$%%Úú®¤¤êüùÌuë¾Ã{2‰5¡©©¡ªªÊ#„FŒ0­¬¤´{7k"‘ÐÑ%Íè:>?•„‡ÿih¨îïïÜÍ!¾kÂÁbqjkiøT;;yy©‡Û´|„HF¦õÄúõ늛7s×®O"A‚:ú ᨫkàp0üt ¢““á½{…üw!„|I~§mß¾@ „‡‡sKbcc ­ÉÉÉ¡R©ÁÁÁFFF222fff[¶la0|ûö-@èDT4-$$ÄÎÎNAAaèС»víb±Z™9Þ¡¡á¼yóªªÚ_ù²‹± ±…î'--Ùjb}èPªµµÞ÷ß;tH|t¨s"„ 'Nœ¨¢¢¢¥¥5uêÔÜÜ\îŽ]é*Í@çl$Ö„_ϱFo“–VÀ uIÈ0 ‹500ˆ‹‹ãN™2¥¢¢¢¢¢âÁƒ¡ŠYYY­\¹2;;ûòåËïß¿ÿí·ß’’’BBBBÅÅÅêêê-ÛWVV^¿~}G£ª¯¯2dÈ“'O"""ž={¶qãÆ˜˜///6›Ý²òƒ***ÊËË£¢¢(Š££c]] Gé\l½´4™NožX—–V_¿ž³lÙ±„Ô–ŽvÎ>Œ1BWW÷Î;ÉÉÉ#GŽ|õêwßNw^Ð9Û„Âpï^¡¶öªêêz|óóç:Õýõ‚Ï.Æm;z4Mt!!„âââÚ­–››K RRRBoÞ¼iölQQQ³Ó¥²²rVVw3##ÃÀÀ Õš]»ô9Ö±±±îîîžžž¼ã‚mQTT}ZWW÷Ö­[UUU)))¦¦¦¡ÚÚZ„PUUU³`233555y§R©è¿ƒ‚†=yòDYY1cÆŒ÷ïßçåå9::nذ¡ÕØðùøHgRR’ŽŽ“Élu÷ýû÷khh$&&~úôéæÍ›:::ü;¥C IDAT‚¤‚¼ÝæçŸc~øá$oÉÅ‹Œ×}ûÖÐ=8JÚÑÎÉ`0ˆDâçÏŸñÍzx Ÿ®B¡P$%%-ZT^^úòåKFF†ššÞ¢££­¬¬8NëœÂ±†Ä€pìÝ{ËÝ=œ·äÓ§Z=½5·nå·µ‹“ÓÖãÇÓE’ É\VV–„„Duu5†aÏž=Cåçÿ'àVMf±XYYYÛ¶m³¶¶&‘H111Xk‰u^^^³r„Pzz:†aMMMxÎammïŽûý÷ßù$Ö>TWWçmã›-afaaQQQ?NII±··o56&''÷øñc ÃfÏž½qãÆ¶v777?wî÷XçÏŸïu‰õúõñ3gá-ùî»ýË—_ì¶Læ:Ú9?~üˆâM£› ¤òé*T*•Ífgddà5Y,–––VZZ†aß}÷]xx8†a}¬s 7±†%ÍÇ·o JJ2¼%ÚÚÊ®®füñhüxëVwa±Ød²˜ye±X¼ÆÅÅY[·0BˆF£]¿~ÝÇÇgøðáÇß¼yó–-[Ö­[7gΜ–•-,,Zâ£hd2ß|÷îïáŒRVVÖÒÒÊÉÉñôôäÝ7''ÇÉɉO㸢¢"“Ö“/--ÕÖÖæ>¥¤¤Ôêî²²²S¦LIHHþ~Æ·ÔbG;§–––´´tQQ‘ƒƒBÿÜr§¶¶VUUµ­]¸]ERR²°°pÉ’%T*ß!D"‘¦OŸž˜˜hkk›ššzòäI“¯ž5‘@ïE¡Ð›%Ö!?¿áw¬¤´º “É‘ µúT÷`³Ùqqqû÷ïçþb¾fÍ|`µ­]0 ›3gN~~>¾I ÆßêÆOöÌ‹HüÏÉwàÀ/_¾änàüýý·mÛÆ{›áííͧq<ÂãÇOœøOšˆ"âÃiµµµYYYmíîçç—píÚ5'''33³¶v744佃oð½…´4¹¡á‰õ•+ÙššJ®®fb ©¥NtN"‘èááqêÔ)ÞB>3³y» NŸ5kVHHHvvö±cǸu|||®\¹ïææ¦§§‡Bçl“°†¾ôs œiùc:Þ4hÐÆcÇî´º‹¹ù†˜˜‡¢ µ7ý ==D"UVVrKž>}ŠÊÎÎæ–´œ 2þ|ssó7n¼{÷.33ÓÙÙyÕªUÜšøñ-§…pCâ¦øãÇëééݾ}»ºº:--mРAø5ß¾}4h»»{rrraaabb¢•••««+ƒÁhâ¹£ÙÝ»w§L™¢§§WWW‡?4sæÌÒÒÒÜÜÜáǯX±¢­ØðËÂÌÌÌxLo¹ûÁƒ544®^½ZQQ‘œœlll,H:Ñî{Ѹ=bÄNˎÐÐËÝ€ Ó:×9srräääÖ­[—››ûüùó­[·:::’ÉdüY>]¥¶¶–@ $''Óh´uëÖqÄb±444455£¢¢¸GéKæX艦O?¼iS+ÙÉöí×¶45±Z>el¼.6ö‘èBj7™ 7no ‡Ã111Y¿~=·¤eîÂb±¶nÝjkk+##chh¸~ýz:Ža“Étss“——Ç:’X³Ù옘˜())y{{'%% 0¯@¥R×®]kmm-++keeµcÇŽ†††–!ñŽ—éëëûûûófc eáÂ…***jjjK—.¥ÑhmņaØÒ¥Kååå©T*ŸÝY,Vdd¤©©©œœœ‹‹ >ÊÈçÌ ²ç$Öǧ;9mÅ¿~]¡­½êá÷Ý€ É\ç:'†aÙÙÙŠŠŠ?ÿü3•Jµ³³ÃŸâßUöï߯ªªª¯¯ìØ1??? ¼<00PFF†B¡ð¥ÏtNH¬ôD{ÂÃo¶,¯¬¤·š@¬½|ù©èBêQÉ\[®_¿ž““ÃÝLHH°··c<"Ò£Þ‹¨¨ûVV¡øã£GÓìíÃxoüÜ „›Ì‰Ú¦M›æÌ™#î(Dîc  '¢Råä¤Z–kh(LŸ>äÈ‘4ç?ÃWÆbqÈdqαî òòò~øá‡ìì솆†¬¬¬_~ùeñâÅ⪓––à^¼x÷#Í{È" = ƒÁ(..>{öì’%KÄKï‰5á Ó›ddZ¿biÉ’QÅÅU©©ÿ¹ˆÁ`b&+ÛJ.Þ¯¬[·nÊ”)S§NUSSûñÇ-Z î ú8iirc# !D§7=yR-mldÙ³îÒs¸»»ýúUÜQô&0b @8ètf[‰5BhË–)ee5/frKBm r :ÒÒd„Î|ò¤ÄÀ@MSSIÜ>kBÐÔÄb³9|²dµyóFìÛw›Baà%0b ÄO¬ fvv™ƒƒ¸Ã}$Ö„¿ŒÏˆ5B((È‹Éd?~ßü7±îïs¬A÷“’Âë¦ìì2GÇâôX&“⿌¢ºº|p°÷±cw *ŒXñÁ'ú—–V×Õ58:Š;Ðw@b @ð… ˆÄvîYö㣮\Íd²étH¬xà7×{ñ⣤¤„®¸Ã}$Ö„¿Gu»÷& ûöÍ~÷îËéÓtz‘H’‚ûSî†wÔ‚‚OƒëHJBB €` 0b26°b…Çþý·×¬/##)ê…9|}}}}}EzÐëà½îÝ»*=±‡"ådec‹F{.Æx@×Ab @œ ‚[¹ÒóÆÜ ˆzH||¼HÛâìì,îþ'´¥¥ÕÓ¦9Š%—øøx CoÞÔ=xPùâÅWYY‰1ct<<6Š% ,X ç‚”XKJJDEý8vìQ¯gîãã#ÒöA¯VW×`f¦)–CKJ*~ú¤üÇÞ¿¯qq19rdâwßÙŠúãº$Ö„€L–@áËD ÂÐPÝÃcðÍ›¹—/?1cˆ(C ¥þìþÄúõëŠ'Ò¯\É–‘‘œ9sȼy#Ì͵º9 :X«<`€|hhâ!Fª‰,4šÃY‘‘‘ÔÑQff¾=qâÎ;¯-,´öîõýþ{¸r·ïw€à)‚à#Ö¡††&33m ¥aáÂß®^ RT”Ytü>gI__EÔ×Î"„ØlÎÍ›¹Ç§çæ~ps3»xqɘ1Ýp\ p»=B@&“$$ˆ±¦R•”¤££¨TÆüù§;””Ðuúú¢ý„ÃÁ’’ž±bEôÀê·n­‰_6v¬%dÕ}$Ö„CJŠÌ`4 ^ŸFk”——ÖÐPˆ‰ xýúsPP ~3lD _(ÔÐPT‰5†aÉÉù^^‘Ë—_´±ÑKO_âÄ<[[}ôXYYÉX××3äå¥BffšÇϽu+ïÞ["‹€ÿ¡Ñ¡Õ…Þ2†aׯ猳géÒsNN†n>vl®‰‰†Ðz&˜c @8TUå¾~¥ ^ŸJeÈËKáG¶Ø³gÖÚµ±Ä5kÆ‹&@þñù3!dd4@¸Í––V‡†^NOíáayèÐ¢î‡ ± jjòÕÕTÁëS©ÜÄ!äë;Œ@ ¬YóÖøË/ß‹ @þñáC-BÈÌLhÉtzÓ¡C©Ç§›šj\¹²røpcaµ zH¬‡šš|MM‡kobš5k(†akׯ„Í›' ;@þñéÓW„®®J×›Â0,!áéÎ×9,2rÖÌ™CàÚÄþ k¡®._PP!x}*µŸcÍË×wX]]ï¿&)+Ë®Xá!ÔøÇÇu$‘Dêê•f……ŸùåJff‘¯ïðM›&ª©É %<Ð{Ab @8TU;0bÍbq fËÄ!0šÍæìÜy£¡¡)$ÄÆÿ€ÐUV~“’"w¥;u*#<üæ AZ×®ýìè8PX±^ kÂ1`€Be%EÀÊøm¤Z}vÙ²±ZZJ«Wÿñþ}Í~d2IhQ€PUUA¡ó •”T­\óâÅÇÍ›'/Z4’H„ÿýÀ? ± FFê ½¦†*ÈâTj#BHN®Íäfút'éÀÀ _¾PŽŸ?²!¢P :yë3gþÞ½û¦©©ÆíÛk Òn` ·ƒûXCCu„Piiµ •ëë¡f/6ãåe•˜¸¢¸¸j„ý/_~J0™ì††& ÅŽîØÔÄZµê÷­[¯ÎëríÚÏUƒ– ± ºº*’’%%%Ö4Z#B¨ÝŸãíìô““×èè¨|ÿý¡ÄÄgBˆô{u†::b]]Mõñ9öçŸygÏ.Úºuª”üæZ‰5á  ªee%ÖÿNá7b0@áÒ¥e?üà²reÌŠÑ £«‚þ ÿßÏÆFWð]rrÞ{yíýöþ×_ÁãÆY‹,4ÐëAb @hŒŒ8b]_Ï ‚$Ö!2™ôë¯Sÿ= 3³ÈÓsÏÇïº&è×òóËB––‚&Ö))/gÍ:ff¦yåÊ |¾mĀИšj¼yóYš4Z£””D‡n§àî>(-m¥¥ÎÌ™G×­‹§Pè ôk¯^}B¨ RùÏ?ó/Žòö¶ùý÷9‡z=H¬Áë× MíÖ¤Ó™22’m_UUîüùŇÍINÎww¿v-§Sa‚~­¨¨’D"ª«·Ÿ™¸¸Çç.t;xpŽ„¤L }ÐK½½>›Íyõªý;xÐéM22\¡cÆŒ!ÆŒ±\¶ìÂôéG^¼€†€øð᫚š\» ]¹’·xñ¨-[¦À*E@@X5¹ÜÜíÖ¤Ó›de;už=+[°à7çÐÐIÝèà.Œ„ÉÆFïöííV£Ó›ºžX#„ˆDœ9ÎÓ¦9ž9ó÷Ñ£i.<˜7oÄ¢E£44ð Û·oÿûï¿»~ ÐE)))â!„ž>-F9¨­ %%U œ5Ê|ûöé‚4˜‘‘±cÇ¡Åz•–½kÂ4|¸ñ‘#i_¾ÔsSÛVÑéÌNϱnIFFråJϹsG\¸ðàìÙ¿Oœ¸;cÆ€wss­üüüׯ_»¸¸ëX £>|ø••%î(þñøq)jû&Ö M‹ÕÐPkB6z´EFF!›ÍáSG#Ö¼‚‡‡å¥KË®ÝQ@ïòêÕ'&“3fŒE˧ *~ý5)0pŒ‡‡e÷ú H¬Ùèу¾}kÈÉyϧŽpçXóA"aÝpÐ+$&>EùúkVÎd²ƒ‚bllô6l˜(ޏ@߉5!33ÓÔÒRº{÷ Ÿ:¢± ¥ÌÌ·RRzzÍ3ß·ïVYYõ‘#?ÀòŠ ‹ 20i’ÝüÖohèüÊ‹tNaa¥‰‰F³Â/>?ž¾aÃD==˜Z º kÂçã3ôÍ›Ï|VŠé™#ÖÛ·o'áááÜ’ØØXBkrrrÂÛ·oywoYÒ=Þ¾}Ë»:`ËW!ôCôF/_~¢Ó›Æ³æ-d³9kׯ:8 \°À­bèPCNœ8QEEEKKkêÔ©¹¹¹Ü ‚™™†ýg¦Ó„ ºØ [Ý70CCÃyóæUUUu®}bgg§  0tèÐ]»v±X¬VÃèô»ÞW»Ò$Ö„ÏÆFÏÂB;!ái[ !¬¼(\†ÅÆÆÄÅÅq §L™RQQQQQñàÁ„PÅ¿¬¬¬:Ú~qq±ººº0#nM«¯¢ë‡VVV^¿~}—£§Ó§ï"„,på-ŒŠºÿúuÅž=>D¢ÈÿmèhûðáÈ#tuuïܹ“œœl``0räÈW¯^q÷---åMµkkk;±’€}ãÁƒåååQQQ ÅÑѱ®®®£Çª¯¯2dÈ“'O"""ž={¶qãÆ˜˜///6›-Ä#Š·¯Bb @$¦Nu¼z5›Él唉b±ØdrÏ:åççüöÛo999………x¡ŒŒŒ–––––Ö€BZÿ"“;<…ÃáÔÔˆü%­¾Š®Z]]]¸CàÝ/=½@MM^CC‘[RYù-22yñâQææ­ß€O¸:ÚÁvîÜéæævòäI‡C‡MŸ>=""‚Û §§ç¥K—¸›×®]swwïhTöhiiéêêŽ3æÊ•+ÆÆÆèè±¶mÛ6`À€´´4ooossóéÓ§?~ü¸´´4**JˆGo_íY_júŒéÓ¾~¥ed´~ #“É– usHüÅÆÆº»»{zzZXXðŽ)v@ˆ‰‰±´´TUUݳgBÈÙÙ!¤¥¥… úñÇñšT*UVVöùóçøÐIIIƒ ÒÐÐ jllD1™ÌMMM &“Éf³###ÍÍÍ\]]=zÄÿUð!TWW·`Áuuu==½àà`ƒ|öìYKKË„‡‡_¼xÑÈÈHIIé—_~AÝ÷×_™ššª¨¨ìÞ½»ÕÀB``àÍ›7ñÍ7n888ÈÊÊjkkãm«Ý!F"ýïƒ/''w°´´4ƒû÷ïó?bËOïîçÎÃÿhS§Nåþ¹UTTð:ôê0 É“œkõ)=½5‰‰Ïº!Ÿv«q8##£“'ObjeeÕ¬BQQQ³“&B¨¨¨¨­„ÐÌ™3kkkOŸ>ª©©ám!##CMMÉdbmeeÅápð ãÆ+,,ÌÊÊ255ݺu+†a3fÌxÿþ}^^ž££ã† öï߯¡¡‘˜˜øéÓ§›7oêèèà-·õ*šïïïïááñîÝ»¼¼ÄžX³Xl3³õ––›¸%MM¬Ñ£Ã}|Žv½q_]G;ØÇB¼it³!Qü}Y¾|ùÆ1 ‹ŽŽöòòâ–óy—ùtK¼ÂÝ»w1 Ãç=ãý™OšÛØØXPP@¥RÙlvFF^³ÕîÝVbýðáCuuõfŸbÝòÁ»;÷Ñh499¹Çc6{ölüÕêîm} øhë}‡© DÅÛÛÆÀ@íôéŒfå,!D&÷ © ±±±,K]]@ 899!„ù±ãÉx0¬ùJ4ø¸W«³±I$ÒôéÓ«««SSSýýý¹O™™ý3]Á¢¼¼!TZZª­­ß!ÁËË«¤¤äÇöööÜ]lmm•••l6ÛÄÄß455Å‚RPPàÌû˜WYY7BKKËiÓ¦ñûõ ii¯¨Ô¦©S¹%¿ÿžõîÝ—_Úm1t´ƒiiiIKKã9"ú7ûúõk³j>>>—.]Â0¬Ù<>ï2ŸnÉ[Hä—"áKJJz{{;99;w¶Õî­¬¬¬¥¥…'óÊÉÉÁÿ ! ‹VÅlvDÔÚ'¢ÕÝeee§L™’@£Ñ®_¿¾pá¶voëÕ X‰øã#ccýJã-g±Øø³bŠ«96›·ÿ~î¯íkÖ¬‰‹‹k™+ó200à½1YAA„„„¾¾>·„jâããsåÊ•øøx777===n97—*,,ÄS|<O­jkk³²² yoñòåKÁ_…¦¦&‰D*..Æ7ß½{§««ÛÞ_ètttJKKñÇ999;wî|_q9r$ !lÎg|³¦†þç‚n––:Ý@':‘Hôðð8uêoaË\ÜÍÍ­¾¾þþýû)))S§þïÿ>ï2ÿn‰j÷Ns†?~|âĉ!:>kÖ¬ìììcÇŽqë´Ú½ýýý·mÛÆ{áíío¶•îóµö‰hkw??¿„„„k×®999qÿ!ðÕIüº€® ÑÝ·ïo!…B×Ö^•ž^Ð 2$==D"UVVrKž>}Šþk9$,,ÌÄÄäúõëÅÅÅ©©©‹-â>‹þ;-„û›;÷Ç}‹¥¡¡¡©©Å{ˆ1cÆ=~üØÌÌ,,, ð   ™3gâ÷V>|øŠ+<¨¡¡qõêÕŠŠŠäädccc„ŸWÑìÐsæÌñðð(..ÎÏÏ·²²ÂÒ2à–Ác¶eË[[Ûüüüüü|WW×%K–´ûˆw*HyùWÕ®®;¹%+WF;:n¥RBi_W×¹–““#''·nݺÜÜÜçÏŸoݺÕÑÑ‘L&ãÏrߣeË–YZZŽ3¦Y¹€ïr³¾Ñj7@<7¿»{÷î”)Sôôôêêê0 «­­%ÉÉÉ4mݺuÜÕ²{cöíÛ·Aƒ¹»»'''&&&ZYY¹ºº2Œ–3RÚ:"ÖÚ'‚wwÞÇø5‹fff¼3=ü@ñOaŽ5ñرãºÍf:½‰[RWGÓÖ^•‘ñºŽ.Hb0nÜ8Þ‡cbb²~ýznI˼‡ÉdîÙ³gРAÒÒÒÆÆÆ¡¡¡4ûlË…Édº¹¹ÉËËsëÊÈÈP(ÞCœ9sfàÀêêê+W®¤Óé†Q(”… ª¨¨¨©©-]º”F£±X¬ÈÈHSSS999|ÄŽÏ«hvè¯_¿Î;WMMM[[{õêÕøQL¬ Fpp°ŽŽŽ’’’ŸŸ_mm-ÿ¿-&îÄzÍšXmíÕ11ñMüšE!ÎïäÕu®ƒa–íáᡨ¨haañóÏ?S©T;;;ü)î{t÷î]„ÐÑ£G›• ø.7ëm%Ö\úúúþþþ¼ÿ$ìß¿_UUU__ÿرc~~~xy³î£R©k×®µ¶¶–••µ²²Ú±cGCCCË—Ïÿˆ-?m%Ö†-]ºT^^žJ¥òÙ½ÕTëïå¿Úzß ßß¹€.úô©nĈ;vLÿἄB¡[XlŠ 5j¨>kÖ,„P||¼¨Ô ¡¡¡¥¥¥111øæÛ·o[®¥×ÄÇÇûúúŠåu•—×:;ï’"åçï••d2ÙãÆíÕÓS¹xq©°!ÆW×Ã5ëÞ}L[ï{O™ß ¯ÒÑQ^²Ä="âÏúzÆ¿e„PNE FqqñÙ³g—,Y"îXú²cÇÒäçç,++‰ŠŠº_ZZ½}ûtqÇÕÇõçî ‰5‘ûùg/"‘½MñË IDATpüx:¾‰_ÕŸù=zôÿìÝw\S×ßð“„²do- Š ˆ¨±Xô'PDTÜ'î⤵ÚážXA׃¨P÷­€ZD(KC˜÷ù#mJYÆ%áó~õäæž{>!—úåäÜs{ôè1iÒ¤þýû‹7ª¨¨LŸ>¾PÒ&/ïcxøƒº‹žnÙ7kÖ“f¿±|WçéÝFÈФŸ’’ܼyî6ÄŽ笯¯*Zv  ×Õ¤_¿~µ—NÓÖÖÞ½{7-y¤Ò®]—)Š>¼»¶¶2!dýúØöífÏv£;—ô«óôn#0b -Áß¿·žžêæÍq#ÖÐü23ó¸NY°`!äüù´S§îoØ0B4' ™ °€–Àf³–,|òä½ôô\ŒXC³¢(jÁ‚c  p55ÕÊÏ/ Šöósþö[[º£”Ca -äÿ³ïÒÅpñâh¡"±†f›rÿþ«víd-DY¹ò¤‚‚ì÷ßÿî\ ýPX@ a0¿üâ÷ðá›C‡®B!݉@ •–Vÿ‹Åœ3Ç­}{…C‡®ÇÅ¥mÛ6FEEžîh ýPX@˱°Ðž?ÐO?ýÁ`0*+ùtÇ)´cGâ‡\KKí™3$'g­^ý ~Û§ݹ M@a -jöl·Nô¡**xtgi“–öfûöD¡ÚºÕ—Ã)Ÿ1ã÷¾};Ο?ˆî\ÐV`¹=hQ22Ì­[Ç ¸ùòå'>>Ž-Ðãµk×ÜÝÝ[ #¨S^^^ËtÄåVN™rˆÉdúùõìÜYßÏo/!äçŸÇ2™Œæîºñ'ŸÏ.-Uäó™mt¡:ÉRßYÂZZ§NúòòìøøGÙÙE††jÍÚW¯^½šõøðIjjjÖÖÖ-ÐÑš51ùù}}µU«†ÎŸôÁƒWÇÏÒÔTjÖNŒŒ¼½½¿®my¹ ‡#÷ñ£,‡#WQÁb2)UÕJ55\Ô+ê;«¸(Z^·nk(Š22R?uj›Í¢;H¼ Mœx@VVæ?:t=**éèÑÎÎætçúÊJ~RÒ‹¤¤IIYþùª´´R__µwo ''3GGS m st%F¬€òò2ß}×5"âΊ'7oö¡;H¶ÜÜóçc2Ë—{^¿ž~û·ßƵ’ªšÃ)¿{÷ERRVRÒ‹‡³+*xVVºNN¦£Fõpr2ëÐAƒî€Ð”PX deeä~ûÍoâÄÝ»ûúbÂ|¥ÊJ¾¿ÿ^§ÂÍ­3Ÿ/X·î̺u^Çw§1Ò‡¥7of\¿žž””•™™OQ”­­¡££é”)}œÌttThÌÍ …5Ð@AA¶¼¼ÊÝÝfæÌoV¬8Ù¹³Ý¡@òP5uê¡§Os;wÖ53Ó =¿}û8Zªê7o>\½ú,)éErrÖ«W…l6ËÞÞØÝÝfýúáööÆÊÊXE»M@a 4PVnWRRAY¾ÜóÑ£·S¦úãEêêŠtç óË/ÿRUU°·ïpàÀµmÛ|[¬ª¦(êáÃ줤¬ä䬤¤yyyy¶££é¸qÎŽŽ¦¶¶† ²-“Z\¼4˜2å›ÍÚµkÕÏoššââÅ4‰ðömÑwßm«ª((°utÚ8 §§Ú„Ç/åqýzú“'ïx<–ò€ÏÂh ¬,_RR^}KŸ>–?ÿ±¨¨´c³YïßsØGVVæàÁI«Wÿß”)‡V¬2kÖ€‹ÍŠ¢¨¸¸G‹Eúû;¯X1¤öwîdnÚ—”ôB^ž- mm Nœ˜­¢ÒNôê«W…ׯÿ»”‡¬¬LÏžfC‡Ú99™a)  k ƒÁÐÐP*((ix7‹¹aÃssíÕ«OgdäýðÃÈví°hƒdËÈÈ 8•õž*<üvPÐ`6›%~õúõômÛ.ܹ“ijªÉ`0ÊËy³g»-[öÝ£Go«/å¡¢"ß³§¹h).] qV@+Âè¡¥¥ÜðˆµX@@SSÍ9sÂíó›ðùŸ~Šÿí·‹C†ØmØ0ò+î-¯¤¤bݺ˜£GïRoÑÑ¡ƒfe%?/¯˜¢ƒÁ°·7š:µ¿³³™ŽNÍ«Z3Ö@-[âÏžM½reé—6LJz±hQTQQéºuÃGŒphŽlÐTââ.YýñcŸ/l`799ve%Åbjk«ìÞ=‹—ƒ„Âü$ ‡¡¡Ú›7¾b|ÇÉÉìâÅ _ß^óç3f÷“'ïš#4Òû÷Ü©SÃ&O>XTTÚpUMa2 ›Íš;wàõëËQUƒäBa ô04T+/¯úð¡ô+ÚÊÉɬ\9$6v~AgРŸ–.=^XøY×ABË¿íìòÇ!âK`i©síÚò%K+(`}`Xèah¨Nyóæƒ†ÆWN•¶³3ºpaqxøíÍ›ãbbœ8±O}•Ù‹/.^¼øõqáó””ðbcsÓÓ¹ ùüo#X,–_›ˆsOM›ö—ˆaŽ5ЃÇ˜šíÚ5~èPûFŠÃ)ÿõ׋aa7dgÍr›0¡wí…£££GÝÈŽ a²²úíÛ”‘Q#äËÖlÑÒRIHX,­7JĹ'‰¾®Bƈ5ЃÍféè´ÏÎ.jü¡TTÚ­Z5tÆŒovîLܼ9n×®KÓ¦õó÷wQQ‘¯±'†“ZŸ/LJz1kÖŠ"ÚÚæzÜD ÀZ×-ÄÐPÍЫ¥Uæâbae¥‹ªÚÖ@ssm&“‘‘‘Gw€&€Âh#/Ï64ToU…5£“ñãÇ4þ°¥¥¥AAAvvvÊÊÊŽŽŽ?üðŸÏ¯±Odd$£.'Nœ`0¾lYèÏ9lJJJãÞS“)((©ªªùÓh³Ö¯_Ï`06nÜ(ÞÒð'˜žžîé驦¦¦««ëå啚úïE ÃÒÒ²Æ2ƒf0ÏŸ?ÿê„õ5ÿœ“œ4îWìùóçù]h’#4 …5ÐÉÂB»UÖ„[·nåäädgg:tˆÃátïÞ½¸¸Þ5û^¼x¡©©ÙðKJJzô葜œzÿþýåË—GDD¸»» ‚ê» 6,'''''çÖ­[„œ¸¸¸,]ºô«ßN}‡µ±±ùêc6 .·òøñd_ßÝkŠŠ¾æÎöÒ‡¢¨ÈÈHcc㨨(ñÆ>Á7oÞôîÝÛÀÀàÒ¥KqqqÆÆÆ®®®ýõ—¸íË—/«—ÚEEE×®]ûÒTMx’‹|ѯXuªªªù]h¸xèdi©sófÝ)þCKKKWW—b``пÿþýûoÛ¶míÚµuî, >àºuë´´´Y,!ÄÊÊêÛo¿µµµ=tèД)SÄ»µk×®]»v„.—Ke©>~ù¥8,-ªªø‰‰ONž¼—ðX Rîœò¯‡>yòäÂ… îîîéééVVV¤ÁO0$$¤OŸ>{öìÂvëÖÃᄆ†>|X´ÃÀ?noÿ÷ÍMÏœ9Ó¯_¿¸¸¸/JÕ„'¹ÈýŠU§©©Ù˜ß…€k “¥¥NffPØJK+ƒ1cÆŒsçΉžž={¶[·n zzz¢à{õêEªÕ:</((HGGG[[;((ˆÇãBÂÃÃE‡ˆ¢¢bPPPxx¸è‹éÄÄDccã7nÔ™¡ú—× ãàÁƒ:uÒÒÒÚ¸qã‘#GLMMÛ·oÿý÷ß7 N“'O=ær¹ <õÓ±cGmmíÀÀÀÊÊÊ/:l}x‰‰‰Õç6lÙ²eáÂ…â§ÞÞÞÑÑÑâò‰'F%~µ¸¸xâÄ‰ššš†††‹/®¨¨ „0ŒˆˆˆN:©««oÚ´‰Ô:É !.\°°°PSSûñÇE[¾ú$¯ñ+VûL«Þ<,,Lôf½¼¼Äo³²²RMMMt„ÚÍÁæÍ›­¬¬”••]\\îÞ½ûÉŸj£Pô¹s'SOoþë×…ÍÝ‘¨Lùän„ŒŒŒê[’““UUU)Šâp8²²²“&MÊÎÎ'„äççgddT?lhhèÈ‘#_¿~––Ö½{÷eË–B jttóæMQóÁƒ_ºt‰ËåŠ^ªqÌêO !¾¾¾gÿþý„‡³gÏBÈû÷ïë Pçq(Šºzõª††Ç£(*<<ÜÆÆF(Šö4hPzzú;w,,,Ö¬YÓðaëãíííííÍã .\x4gÎsó%zz ŒŒééͯý_nnñ'(¹>óÜ …¦¦¦{öì¡(jåÊ•6665v¨ñ VTT0™ÌÜÜ\ÑÓ’jD[!OŸ>ÕÕÕ}ðàEQÅÅÅ ïß¿Ÿä~~~nnn™™™iii¶¶¶¢Ïš2jÔ¨¢¢¢}ûöB kôK2d‡Ã9yò¤èÄû¢“¼_1ª®3­zsÑ´rêŸ 3B¡¢¨˜˜}}}Ñ™\»ùÖ­[µµµO:õîÝ»sçÎéëëò³øÌÏ«N˜ têÔIŸÁ`<}šcd¤Nw–O““KMM522j×®‘‘!äãÇš c:tèòå˺ººFFF¡¡¡AAAõM e2™âé§¡¡¡]ºtùÌAAAÊÊÊãÇŸ2eʲeË”••¦OŸ^TT¤¡¡Q;€xL±6›}íÚµ=zÔßß_<ð¹eËKKKBHHHÈÊ•+W¯^ýù‡+-•yÿ^ÁÉimn.‡Édˆ¾”àóë˜qK9yò¾ŠJ»Ïü Hœ{÷ò>gŽ@RRÒ›7oFŽI1bDHHÈ£GlmmëÛ¿°°P(***Šž*++‹_¢þ¢f±X#GŽŒŽŽ¶··?{ö¬‹‹‹†Æßw¸äñx‘‘‘©©©fff„uëÖ-Y²dõêÕ„Ù³g«ªªN˜0aêÔ©>ÔqoÔÅ‹+++{yyBŠŠŠê›ý'yí3Mô½Š¨¹ø¢É¡C‡Nž<ùÞ½{ŽŽŽÇŽ›0a‚ŒŒLÍËÊÊ6mÚ4|øpBˆžžÞ?þ8a„OÆøj(¬€N**òffZ))¯ÝÝi¾–®>æææ„YYÙôôô©S§r¹ÜnݺչóË—/õôôÄOÛ·o¯ªªª««›’’2pàÀê{¦¤¤888ˆ[[[~QýÄf³k<®/@}Ça±X#FŒ8uêT×®]/^¼(öUÕ¢`ÙÙÙ_tX‘„„Çé饥2„p!Ÿœê³aClÃ;H:ãÓWdd$ŸÏ¯^¤FEE5PXëêêÊËËgddˆÎFQ1]TT¤®þŸ¿Q½½½§L™RcH^^ž@ Û„ ÑgM ëV?¯jíÀdþý×B#Orñ¯©ÿL«Ñ\AAaذa'Nœèܹsllìƒêk^UU%žbNéÚµk}1š k Y×®†©©oèNQ7Š¢víÚåééI)//÷ññ‰ŽŽ:theeå¡C‡jﯩ©yùòe BHqqqnn.!ÄÏÏoݺuß|óxjiiihhè¼yóDO¨`¾Têãíííçç×¹sç>}úŠ·gddˆÓÓÓE%Ô–âînÓ­[^EëÛo§DDÜ~ù²ÍfñxuWBoÞ¼çÏŸ'''¯X±bܸq_zX1yyÁìÙn·n­º|yi`à@==UB›A½:\¿~=??ßÏÏOécÇŽÍÈÈhx¹ñ#GŽ,]º4---%%eíÚµûöí«QƒŠfƒLŸ>ÝÉÉI[[[¼Íf=:000++ëÑ£G«V­òóók /ñI^§/:Éëû#_r¦ 4¨¨¨hõêÕ“&Mo¬Ý|ÆŒAAA111¹¹¹ñññÁÁÁ ¼‹&ðuS³šÊíÛÏõôæ¿}[Ô¬½|þÅ‹bFFF~~~yyyâW·nݪ®®ndd´sçN___mmm×§O%%%Ñ' @MMMCCcÚ´i¥¥¥¢í\.wÑ¢E¶¶¶ 6666l(++£j]Ž&Òðŋ⠿ê|\_€úúš1cF»ví8Nõ}öïßß¡CMM͹sç–——7|Øúˆ.^¬¾E Þ½›¹rå)këåzzó«_Ȉ‹§OŸ>hРê[„B¡¹¹ùÒ¥KÅ[êüÿüóO777kkëyóæq¹\;;;ÑKâ³âÊ•+„;vÔØþáà ==½ ˆ>ëÚçU“¼¾“ð3Oò†ÅjŸiÕ›×8Ô´iÓ”””ÄWýÖÙœÏçoÞ¼ÙÂÂBQQÑÙÙùÎ;Ÿü,sñ"ƒÂ27@«ÒÒÊŽ—ïßàáñ¹ð}…èèèÑ£Gã_½V®\ùòåˈˆÑÓçϟ׾Wß×ñññ!„DGG×~©¢‚—ðøÄ‰{—/?åó…„Pm`*Î=‰Ñ˜Ï _ÇÍåÌÌ´ÒÒ²›µ°†***Þ½{wðàÁcÇŽµp×òòì¡C퇵çpÊÏŸO;uê>ƒ¹© pýºv5JM}MwжåîÝ»=zô˜4iRÿþýÅUTT¦OŸÞbTTÚÓ3:z–¶¶ò§÷hõ0b ôëÒÅpçÎKt§h[úõëW{‰bmmíÝ»wÓ’@ `ÄègggTPPòúu!ÝA¾ k _÷îäädnßΤ;À×Ca ô“••éÞ½Ã;(¬@‚¡°€V¡gOó»w_ÐàëáâEhzö4ûùç ïÞëë«Òš^QQi^çݻ₂’·o‹òó9oßs8'OΖ‘Á0H ÖÐ*ôèaÂf³’’^xyuo¾^öîÝÛ|§ÅƒÅ::rúúíj¿TZÊ¿{·ÈÈHÁظœ\K¯¯¸˜ÇáðKJø))D^^ÝÃã§üü’÷ïKø|¡h&“Ád2…B¡PHÙÛwh;Uµô{Òêþýû_Ý…5´ ŠŠr¶¶wï6oaÝ’‹4· YY Q¥¥)%%·)ªªÆ«ŠŠÝTTúBñx…UUoªª²«ªÞ …å͆ÅRißþ99SBEér¹¬÷ï³kì#RB¡€"+Ërq±h¦$­ô{Pni­Åúõg._~zéÒºƒHŠ¢Öäær´´”7oö4ȶƫS§†?ŸFa³Y¢acccõo¾±îÙÓ¼W/³æ¸‘xBÂãÅ‹£>|(„ ï>mÀ€NM€.(¬ µ¸páQ@ÀÁ‡׫«+ÒE’üðÃÙ;/SEQÔ A¶7ŽÒÕý·\.+«úöÛ-/_V/sÙl–@  )uu…Þ½­œœLœL»t1d0M‰Ã© =vƒÉ$AÝ•“Éxòäeeù&é 5@a ­EQQi×®Á»w÷ô´£;‹$ÉÈÈë×o£è±Œ “Á` tg³Y¢OŸæ ¼µªJPç?úâ"ÛÉÉìÔ©9LfÓÔÖ„¤¤óæ}ó¦H(¬cèZKK¹¼¼ª[·NN¦NNf={šÉÊb†*H6Öš5kèÎ@!íÚÉ^¹ò¬¸¸Ìã ÝY$‰††Rllê‡\ò÷ fêîݱ±©]»‰–XÑÔT64T‹K«³¹Pøw½2ÂÂB§ ƒ¨çÌb1’’²X,†PøoY/+ËúöÛ.#F8¼Ï=w.õ÷ßo–jj˜’…5´"iio<<¶^¼Ô¹³>ÝY$É»wÅŽŽëjÿ›.#ÃTQi÷㣆µçñ#FlOM}]½þ&„0 55…7V¨ª*4_ª*þ/¿$üöÛE&“QU% „rdª­­ÁcÆì×ßl6«[7ã'Or Õ6míàС¹s ®¿}[´v­×5äó…ýõV4]äÚµôË´´”ííœL]]­lm ›ð²K€¯ƒÂZ—˜˜sç†?z¢¢‚…ؾÀÇe]ºóù‚Û™LÆ€vìð/l·mÛ…-[â)Šb2ÊÊínÞ\!ׯ?sòäý‘#Ö¬ñjýË ÂçÏó““³’’^ܺõüÝ»b!Æ$¿ IDATEE¹îÝÿ^`ÄÉÉLN Œ PX@ëòñc™­í÷{÷N<kƒ|ÿ}W®<Z‹fI,_î9{¶[õ)p̘Ýwïf …Ô–-£ÇŒé)Úž˜ødùòã••üU«†z{;¶xü¯÷êUaRÒ‹ä䬤¤¬ôô\yyv—.†NNfNN¦={š©¨Ôq¿w€æ€ÂZ¡CéÔIoÓ&ºƒH˜3gÌœyDô/;‹Å”•e¨íß`e¥[cÏÂB®›ÛfKKèè™Õkîòòª­[/ìÞ}¹gO³M›|ÌÌ´Zô 4…¼›ÍÒÒR>p`RHHlFF~\Ü‚ê÷b¹ÿ•––’±±Fíãy’õðaöôéý,ôE¥ykV}‘ë×Ó‹‹Ë45•D7Wwt4íÖ­ƒäÒ½PX@k´jÕ©+WžÞ¸±‚î ÒàÚµgãÆí7oТEß~i[¡:|øfhè9UUÅ‘nnš#!°À4!ÖÐݼùÜÛ{ÇÕ«Ë,-uèÎ" Ž»³xqôöíã†ïþÍ?~, 9qÇÍ­SHÈH)ž\c6›Õ©“¾««ÏÂZ#@(ºc`à@º³H‰U«NEDÜ>qbÎWßæîÝË–õªPÒ/jüLµ17×Ý Œ@PX@+µ`Á±§OsââÒDJÂI“¦¦¾>wnÚׄÇ>|sãÆs:h„†z÷èaÚ´![-.·òÁƒWu.0Ò·¯U‹«@„ÂZ©„„Ç'HJúþ««@¨Ë­6ì¡:sfžøFŒ_áÕ«Â+N\¹òLRîÔØ´°ÀÔ…5´RUU|[ÛUË–yNšäJwéñæÍOÏm]»>#B(¤22òD ŒÜ¾ùömikPX@ëó`Μ𔔵Jtg‘*·—,9þÛo~#F84þhwîd._~âÕ«Â9sÜfÏvCù(Rcfç΢FœœLÛ·W ; 4=ÖÐzq¹•]º¬Ú¸Ñ{ôh'º³H›µkcÂÂnDFÎìÙÓ¬ñG ©“'ï­]#++³|¹§··cã)MòóKRS_'%e]¿ž^c‘Þ½-ðw£Ô@a ­š¿ÿ^&“yøðºƒHŠ¢æÏ?ÿðôé¹;ë7É1‹‹Ë~úéC‡®÷îm2k×I´Àˆh!¿»w_TUñÅ Œ¸ºZuèЦ§ÓH:ÖЪ=zgÅŠ“mPR’£;‹´áñþþûž=Ë={v^.½’’òzÅŠ“¿?ÞeÙ²ï¥öƒóññ9~üxcŽÀdʱÙú²²²²²²:7?ÿ`SŃåãã#~ŠÂZµJííƒwî?dˆÝY¤PIIÅðá¿ ˜˜À&¼­ Ÿ/ »±eKœ¢¢üÚµ^ÒúÙùøø¼yófá¦Yj½ªJPTT¥£ƒ›;J Ö a¼¼~32Rÿí7?ºƒH§¼¼žž?›˜h=:]V¶)¯;ÌÏ/Ù°áÌÉ“÷ì¼~ýpé[3DTQEGGÓèÁ`0jÖZÀ xyuXQÁ£;ˆtÒÑi1ýÑ£·óæmÚá6mmå_õ;yrö›7ú÷ýé§øÊJ~ µAa ­ÝСv••¼K—žÐDjuì¨{ðस¸‡›6Å5ùÁ{õ2‹[8wîÀ;.õë·ñìÙÔ&ï •@a ­††R¯^ægÎ< ;ˆ4ëÝÛâçŸ}ýõâ¡C7šüàrr2  ºrei—.†Ó¦…y{ïxò$§É{  kÿû_·„„¿JK+é"ͼ¼º/Y288øt|üÃæ8¾±±Æ¾}ãâVV ÜQPPÒÐ…5H€ï¾ëÊç ÿ¢;ˆ”›7Ï}üøÞ³f¹ÿU3uagg3w÷îñ·n=wvÞðÓOñUU˜x R…5HuuEË3gRè"ýÖ­Þ¯_Ç öee4S cèPûk×–ÏœùÍöí‰ß|³éâEéÿ“iýúõ cãÆâ-‘‘‘Œº¤¤¤BÒÓÓ===ÕÔÔtuu½¼¼RSÿž›>kÖ,CCÃÒÒRñq233eee#""¾:ƒÁ°´´¬qéêàÁƒ ÆóçÏsØ:›—––ÙÙÙ)++;::þðÃ|~\Uÿ™˜˜˜Œ?¾ àsÏÉçÏŸ3Œ¯NþÕG@a ’áÿ³OLü«¤¤‚î RŽÅbîÜéojªéç·÷ý{nóu¤  »h‘ÇÍ›+:Œ¿oôè]yÍ×½(ŠŠŒŒ466ŽŠŠo6lXNNNNNέ[·!9ÿ°±±yóæMïÞ½ .]ºgllìêêú×_BBBBx<Þ¦M›ÄÇY¶l™³³óرc“ðåË—âÚRTTtíÚµ/=È‹/455Þ§¤¤¤GÉÉÉ¡¡¡÷ïß_¾|yDD„»»»@ ¨½ó­[·rrr²³³:Äápºwï^\\ü9ITUU—.]ú¥ù› >~,36^tòä=ºƒ´ ……ÜÞ½C¾ûnkYYe twãFÆ€›Œ­ZuŠÃ)o›„·····÷ç왚šÊ`0!Ïž=«ñjFFF’lúôéÆ  …â-&L?~¼èqDD„¼¼üË—/)Šºy󦌌ÌÇóF!+V¬o _¼…Ë嚘˜ìÛ·¯vªêÍ…Baß¾}ƒƒƒ??OcÔþPj#„DEEUß‚k **íúõëˆÙ -C]]ñÀ€ÌÌ‚E‹¢„Âf¿—œ‹‹E|üÂ¥K¿‹ŽNrsÛ+mŸrddd¿~ýhmm]}к>‰‰‰Õ§"lÙ²E|‹G___—%K–PµpáÂÀÀ@[[[ÑK</((HGGG[[;((ˆÇãBΞ=Û­[7===Ñ\Ñ<‡ÄÄDccã7nB¼½½£££©fƒœ8qbÔ¨QâÞ‹‹‹'Nœ¨©©ihh¸xñ⊊ BƒÁˆˆˆèÔ©“ºººh½W¯^„]]]qà .XXX¨©©ýøã¢-áááÁÁÁ,K¼¢¢bPPPxxxíTÕ1Œ3fœ;w®¾wZ½yXX˜è§çåå%þ¹UVVª©©‰ŽP»¹@ ؼy³•••²²²‹‹ËÝ»w?ù1Õ¡ù*}€¦Ô¡ÃâËèÒV\¹òT4ŠÜb=æçs.Œ40Xàåõ냯Z¬ß¯ó™#ÖB¡ÐÔÔtÏž=E­\¹ÒÆÆ¦Æ5G+**˜Lfnn®èiI5â}ž={&''7wî\==½?Š·‡††Ž9òõë×iiiÝ»w_¶l‡Ã‘••4iRvvvxx8!$??_ÔãàÁƒ/]ºÄår !OŸ>ÕÕÕ}ðàEQÅÅÅ ïß¿'ÿŒûùù¹¹¹eff¦¥¥ÙÚÚ®Y³†¢(BȨQ£ŠŠŠöíÛG),,¬=b=dȇsòäIBÈû÷Š!5~7oÞÔÑÑ©ªÆ€wrr²ªªj}ï´zsѳ°¾s玌ŒÌû÷ï)Šºÿ>!¤ÆÌõèÛ·o !â2º¾ñÐÕ«WBŽ=Z}£µµuNNŽèqBB‚½½}eeå“'O¸\®@ ¸zõª¨Zõ˜––&î"##cöìÙË—/§(*<<ÜÝÝ]¼½ªªŠÅb=zôH´ó©S§,,,D¯^¾|™¢¨ªªªê‡‡!„\¹r…¢(Ñü錌Œú ëÛ·okjjÖ™ªúnÕ ëÚï´zsq’ÒÒREEŤ¤$Š¢ÆŒ#zƒu6·²² ÷uøðá¯(¬1$†²²|ÿþÖ¸SLKòðèòÃ#þùž=WZ¬Sssí={&DGÏÊÉ)î×oã’%ÑÍzes‹ŒŒäóùššš ÃÁÁÒðl]]]yyyQiHþ©í>|øPc7???BȘ1cªo|ùò¥žžžh% ww÷¬¬,YYÙôôt‡°°°ê;[[[Wêíí}üøqŠ¢jÌÉËËæææ¢§ÙÙ٢Ǣa]6›]ß{íÀdþ]pªªªêêꊆ“«KIIýdj§ª.##C£ö;­³¹‚‚°aÃNœ8QZZP_ó7oÞØÛÛ‹víÚµ¾ @a ’dذnׯ§•~zWh"þþ½/öX·îLTTRKöÛ§å,Ú¾}ÜÕ«Ï\]ܱ#±²RòV¼QQQ[·nOçX¸p¡h˜³¾&L&ÓÍÍmïÞ½Õ7Ö®ÅEsˆk, '÷ÕâEEEwîÜ)//÷ññ úóÏ?wîÜY}çqŸ>}JJJnܸ‘àåå%Þ®££Ãb±^¼x!zš™™i`` ŽÚðÛ¯½bŸŸßºu몯RZZêááQg*1Š¢víÚåééYß;­¯¹¯¯ï‰'Μ9ãàà`iiY_s“êë¢<~ü¸á·V'Ö IÜÝmX,f3Ýê³pá·S§ö]²$:1ñIKö+ZñúÊ•¥sæ øõ׋}úüpüxr%i+týúõüü|???¥Œ;6##£ö¨mu!!!GŽYºtiZZZJJÊÚµk÷íÛ×ÀÀ°Øˆ#–/_þêÕ«´´4;vTVVVUUÉÊÊ–——‹f””Ô}ÃK‹5räÈéÓ§;99ikk‹·³ÙìÑ£Gfee=zôhÕªU¢Áòúˆ¦G×'888??ßÍÍ->>>##ãôéÓ={ö400˜9sfí rssß¾}{õêÕáÇgee‰¯D¬ýNëëqРAEEE«W¯ž4iR?¨3fÅÄÄäææÆÇÇ7ð.êÕðÜ€ÖfÒ¤¾¾»éNÑæ…Âyó"LMƒîÞͤ%@a!wÕªSFF ¿ûnë;ôd¨ásæXOŸ>}РAÕ·…Bssó¥K—Š·Ô¹²ÛŸþéææ¦¢¢bmm=oÞ<.—kggW}‡:[q8œ€€555 iÓ¦•––RµuëVuuu##£;wúúújkk×·.Þ•+W!;v쨱ýÇþþþzzz ,(//§þ;Zô˜ÇãõéÓGII©Fó¹\î¢E‹lmmlll6lØPVVVûU¯WŒŒüüüòòòx§Õ›×8Ô´iÓ”””¸\nÍù|þæÍ›-,,ECàTƒH­9Ö J¢þìˆ8eÊ¡{÷Vëê¶§;KÛRUÅ÷óÛóôinLL ™™-ž?Ï_¿þLBÂcww›µk½LL>q;’fåããC‰ŽŽ¦1ЈÁ`DEE‰NL ãæÖ¹}{,hÝòdeeœld¤>zô®·o‹hÉ`a¡}øð”ƒ'ef滹mÞ¼9ŽË­¤% @m(¬@°Ù,OÏ®§Nݧ;H[¤¬,5SSSÉËë7ºjkBˆ‡G—Ë——®\9äÈ‘[½z­ß³çŠ$^×Ò…5Hž#ÒÒÞ<{–Kw¶HYY>"bº’’ÜèÑ» ê¾ ®°Ù¬I“\ïß_³l™çމk$tÙ&(¬@òôìifd¤ƒ­é¡®®xüølƒáë»ûãÇ2“°Ù¬qãœoß^5sæ7¿ü’àâ~›ÏÒ Ú2Ö y †—W÷'$lå5i¢©©5“Ã)7n_YY½aåfÏv»}{Õðá«V0 466ç´<Ö ‘Fê‘]tïÞKºƒ´]úúªQQ3³³?¨ª¢†††ÒÊ•CnÜXÑ«—ù¬YG<=NHøš{||5Ö ‘,-u:wÖÇ%Œô25Õ:|xJjêëùóñx‚O7h~††j›6ù\¼dd¤>aÂþaÃ~½{÷Ý¡ ­@a ’jć˜˜­¤žk³ºv5úý÷© çÎZËäæŽu÷ì™;ÅbþÛèÑ»?~Kw(~(¬@RéPRRqåÊSºƒ´uNNf‘‘3.]úkÆŒß[Õ…ƒ&'OÎÞµk|vvÑwßm[¼8êõëBºC4Ca ’JG§½³³ùÉ“˜ B?“£G§_¹òtáÂcBa+ºjÁ` ÖíÊ•¥7Žºq#ÃÕõÇE‹š²¼>~ü8Úª:Î7\3 ’+2òîòå'RS׫¨ÈÓHRÒ‹±c÷ jÿÓOc˜Ì:Êz …Ô¹s©[¶Ägfæ{zÚ ¶°ÐnÌoß¾ÝTñ@õêÕËÈÈHü…5H°’’ ;»à½}|é΄ríÚ³ öë¼aÃð:‡ôhW£¼^¼ØÃÒR‡îP %XkÖ¬¡;ÀW’““yüømJÊ›Q£zÐ!¤CM{{ãõëÏ—}ó5ÝqêÀ`0:vÔ0ÁÅÊJ÷Ì™”mÛ.<{–km­§¡¡Dw4x(¬@²±XÌ;/ùúöTVÆlVÁÄDÓÌL;$$–ÅböêeNwœº‰Ëë®]ΞMݲ%>5õ••޶¶ ÝÑ@‚¡°Éfb¢yøðM6[ÆÙ¹•ÖpmPÇŽº&&šßª¢‚çêjEwœz1 ssíq㜻v5Š´mÛ”×Ð(¬@²±X̼¶òqk&“acc0a‚‹««å½{/CCÏŸ?ŸÊb1;vÔ“‘ÁÝ?àPX€4¨¨à‡…ݘ2¥/›Í¢; üGÇŽº––:›7ǽ{Wxp—ׯ wìHŒˆ¸]ZZikk 'Ǧ;´^(¬@tè ¹sç%ssíNôéÎ5YYévéb¸qãù7o>¸»KLmMÑÒR<¸ë¨QŽ\nåÁƒ7öᅳŸ_Ò©“– :á1 %&NèåÕ½uÞ—ñ“ ¹aa7¼ÁåV ÖmÎ7++]ºCAë‚k²²2;v$Žƒ­[)SS­Nô7mŠËËã´þkkSPíÝÛÂßßYQQîÿþïÏÝ»¯¤§ç«ëè´§;´(¬@Jˆ´VPíÙÓŒî,P7 mkk½ϽzU8h$Ž[Ëɱ{ö4 pÕÓS=w.mûöÄ«WÓdÍ͵Y,\ÝØÖa*H•+O]½úôúõå7ڦܺõ|âÄý={šíÛ //Ùצ¥½Ù¿ÿZL̃víØÞÞNÓ¦õÃò|m k©©oÞ;ßÁ¡ÝY !))¯ÇŽÝÓ©“ÞáÃS•”äèŽÓXùù%Ç'……ÝÌÉ)vq±œ2¥¯D¬-M…5H7·MŽŽ¦7zÓ>áÑ£·¾¾»ÍÌ´Ž™¦¢" Ó⫪øgΤ>|ãþýW]ºúúö>¼[ûö tç‚–ƒÂ¤ÊΗ~ý5!%e¤Ï1h ž?Ï=z—¦¦Ò±c3ÔÕéŽÓd>Ì>zôÎéÓ÷++ù]FvêÛ·£$N(‡/…¤JnîGGÇu;wújOwø´ìì"Ÿl6+:z¦”-¯Áã ®\yz⼸¸4EEù¡CíÆw±µ5 ;4#Ö müüöðù¨¨™tÏ’]4zô.6›5SGG…î8M/+« 22)::)?¿ÄÉÉtôh§ï¾³“ŽÙ/P k6ññ'O>tóæ Mº³ÀgÉÏ/ñõÝ]VVyôètSS-ºã4 >_xùò“ÈÈ»‰‰O âîn3rd:±Ù,º£A“Aa Ò†Ï::®=ÚqÙ2Oº³Àç*+«š2åЃ¯žìä$Í+‘WTðŸ8qïÊ•§,ÓÝÝfÔ¨ß|ÓIFË`K<Ö …BBÎ?žtïÞ+„ÇÌ‘ðxÏž v¦;N³ËÎ.:}úþÉ“÷ÓÓs5†ï>dˆ &aK0Ö …^¼(puý1,l²»» ÝYà PµvmÌ×7nåççLwœòèÑÛ“'ïÅÆ¦¼{Wlb¢9dˆÝ!v]»Ñ ¾ kN#Gnoß^áàÁIt/¶cGâ?œ[¸pТEtgiQÏžåž=››šžž«®®8`@§¡Cí1KD‚ °ét⼅ %'¯–Ê…&¤^XØÍU«NNœØgݺáR¶ôúõë¯]»Öð>ååí8œöŽJU•¬²2ÇØøuËdkËV­ZÕ¯_¿FD¦I¢´6C†Ø}ÿýé“'ïÍš5€î,ðÅ&NtÑÑQ™5ë÷¼<Îöíãä䤧byøðáÓ§Ošè¢¦Fôõ+ )(-e  µ‹×6?~|êÔ©?Žôœ¦ÕÉ˳‡ïvôè™3¿a0¤jȳ<¸ËÞ½gÌø}Ú´°]»Æ+(ÈÒ¨É8;;GGGÓþÕTÿ‹À”Z¾¾½^¼(HN΢;|%ww›ãÇg=xðjäÈíùù%tÇøÖ µºt1ìÒÅðØ±»t¯×½{‡„„Å|¾ðÛo·<|˜Mw€† °iæëÛ+&æ‡SNwøz::íOŸžÛ¹³þˆÛŸÐ ^(¬@šáÀ`0ΜI¡;4Š’’ÜáÃS½¼ºìÿý÷[tǨ kf**òžž]»Cwh,æ¦MÞóæ¹/_~âûïOc½`h…PX€”óñqzðàõ“'9tÆb0‹ylÛæûûï7gÌø½²’Ow¢f·~ýzƒ±qãFñ–ÈÈHF]RRR!éééžžžjjjººº^^^©©©¢V³fÍ244,--'33SVV6""¢1ñJKKƒ‚‚ìì씕•øá>¿Ž¥zN“ñãÇ|fÏŸ?oä’?ÂçCa RÎÅÅÂÔTë÷ßoÒš†ãþý‰‰Mšt€Ã© ;N3¢(*22ÒØØ8**J¼qذa999999·nÝ"„äüÃÆÆæÍ›7½{÷600¸téR\\œ±±±««ë_ýE áñx›6mgÙ²eÎÎÎcÇŽýêx%%%=zôHNN ½ÿþòåË#""ÜÝÝAíoݺ•“““}èÐ!‡Ó½{÷âââÏéEUUuéÒ¥_²¥QÒnÏž+K9œrºƒ@“yø0ÛÁaMß¾?feÐåËx{{{{{Ξ©©© #!!òìÙ³¯fddÔ(ä¦OŸ>lØ0¡P(Þ2a„ñãÇ‹GDDÈËË¿|ù’¢¨›7oÊÈÈ<|ø°1odñâÅ®®®|>_¼…Ë嚘˜ìÛ·¯Æž„ŒŒ ñS¡PØ·oßàààÆôþùjÿ j#„DEE5¾/ŒX€ôóöîÁç NŸþ“î Ðdlm .^ ÒÑQ4hË<¢;N³ˆŒŒìׯßÀ­­­«Z×'11100°ú´‡-[¶,\¸PôØ×××ÅÅeÉ’%E-\¸000ÐÖÖVôÇ ÒÑÑÑÖÖ âñx„³gÏvëÖMAAAOOO4E4§"11ÑØØøÆáááÁÁÁ,KÜ¢¢bPPPxxx=käd03fÌ8wî\}½Wo&zG^^^â÷RYY©¦¦&:Bíæ`óæÍVVVÊÊÊ...wï¶à‚›¯ÍZ¿9s ØDw hb<ž`åÊ“úú ¶l‰£;ËçúÌk¡PhjjºgÏŠ¢V®\iccSc‡±L&377Wô´¤ñ>Ïž=“““›;¤4  IDATw®žžÞÇÅÛCCCGŽùúõë´´´îÝ»/[¶ŒÃáÈÊÊNš4);;;<<œ’ŸŸ/êqðàÁ—.]ÊÎÎ&„ÔüºàæÍ›:::Õ÷är¹ä¿#ÖE%''«ªªÖ×{õ梹ãÔ?³bDãñ111úúú<¯Îæ[·nÕÖÖ>uêÔ»wïÎ;§¯¯ÿÉŠ—4ш5 khîÞÍÔÓ›ÿþKºƒ@Ó;rä–±ñ¢™3//¯¢;˧}fa}çΙ÷ïßSuÿþ}BH™5 ë·oßBÄet}£¨«W¯&„=z´úFkk뜜Ñã„„{{ûÊÊÊ'Ožp¹\@põêUQe,ê1--¢¨¢¢¢: ëÛ·okjjVß“ª5„úoa]»÷êÍÅo³´´TQQ1))‰¢¨1cÆ,_¾¼¾æVVVaaaâ¾>Üb…5¦‚@›àädfm­wä–@–BãÆ9GEͼ~=ÝÛ{§ÔÜù<22’Ïçkjj2 BHóAtuuåååEe(ù§ŽüðáCÝüüü!cÆŒ©¾ñåË—zzz¢U;ÜÝݳ²²deeÓÓÓ=<<ªïlmmMQUUÕÕÕ 'W—’’"J+Þ³Næææõõ^gs…aÆ8q¢´´4666  ¾æoÞ¼±··7ìÚµk}1š kh+ÆsމyðñcÝA éõêe;¯¤¤ÂÃã§ÔÔ7tÇi,@µuëVñtŽ… ІTëkÂd2ÝÜÜöîÝ[}cíZ\4_¹Æòs¢1fQ-^TTtçÎòòrŸ   ?ÿüsçÎÕwf³Ù¢~~~ëÖ­«¾Hiiihh¨‡‡G=k (j×®]žžžõõ^_s__ß'Nœ9sÆÁÁÁÒÒ²¾æ&&&âu !?®3Fs@a mŨQŽ ãÔ©ûtfab¢yúôss­Q£vœ8qî8rýúõüü|???¥Œ;6##£öqu!!!GŽYºtiZZZJJÊÚµk÷íÛW_u[݈#–/_þêÕ«´´4;vTVVVUUÉÊÊ–——‹f””Ôü* 888??ßÍÍ->>>##ãôéÓ={ö400˜9sfí. rssß¾}{õêÕáÇgee‰¯D¬Ý{}9 TTT´zõêI“&5~ÆŒAAA111¹¹¹ñññÁÁÁŸü 4™ÆÏ&óçíÛ÷GºS@3ªªâŸÖÓ›¿bÅɪ*þ§´¸Ï™c=}úôAƒUß" ÍÍÍ—.]*ÞRç*rþù§›››ŠŠŠµµõ¼yó¸\®]õêlÅápÔÔÔ444¦M›VZZJQÔÖ­[ÕÕÕŒŒvîÜéëë«­­]»-—Ë]´h‘­­­‚‚‚͆ ÊÊÊj÷R½ò422òóóËËËk ÷êÍkjÚ´iJJJ\.·æ|>óæÍŠŠŠÎÎ΢!ð†उæX3(ÜÚŒû÷_ úsLL ££)ÝY %$<ž;7ÂØX}ÿþcc ºãü‡!$::šî ð/ƒ%úhSA  qpè`kk€K¥ž»»M\Ü>_8xð¶«WŸÑÚ Öжøù9ÇÆ¦ãF)gjª;ÏÕÕrܸ½?ý/â+zhv(¬ m9²›Í:~<™î Ðìåvïžðã£~ýõb@À§œîD åPX@Û¢¤$çéiwìX Þåh5nœó¡C“““³†ßþòå{ºã€4Ca mŽ¿ï§OsîÞ}Awh!tŠ‹[Èd2<<¶ÆÆ6´b@c °€6§{÷ݺqqi¹¹é-GNN&$ddTÔŒÄÄ'ýûo¼w/‹îD mPX@[äåÕ­}{…ˆˆÛt–Ö§ÕÅ‹‹­­õFŒØŽÕB i¡°€¶HVVfôh§ððÛ<ž€î,ÐÒ44”ž<ì·ßnjٕ—‡/. iÈЀþþ½wï¾üdž ±£; ´4ƒ1eJßž=ÍfÎüÝÍmó¶m¾îî6-Öûµk×ÜÝÝ[¬;h1¸¥9´]þþ{+*xÇϦ;ІéX²$úìÙ”™3,Y2˜Íf5w[·n½sçNs÷_jÁ‚ÎÎÎ< kh».^üküø}—.-±¶Ö£; Ð)<üvpðiSS­_kcc@wT˜c m×€Œ5ŽÁ%ŒmݸqÎW¯.SWWððØr¶ªŠOw"H(¬ íb2þþÎÇ'•”TÐhfd¤=ëÇG:týÛoJK{Cw"<(¬ MóõíÅã NŸþ“î @?ƒ1nœsbâ55Å!C~ 9‹Ecà‹`Ž5´uóæMK{séÒƒAwh„BêàÁë6Äš›kcÖ5|>ŒX@[7~¼Ë³g¹II¸üÉdL™Ò÷Ì™@¡Pø¿ÿýzàÀ5ÜG>F¬ÈàÁ[MMµvîô§;´.UUü­[ÿصë²ÁæÍ>º††aÄ€øù9Ÿ?Ÿöþ=—î кÈÊÊ,[æyõê²öíÛ ôS``DQQ)Ý¡ õBa @Fꡤ$wøðMºƒ@kdb¢yìØŒÝ»Ç_¹òô›oBO¦;´R(¬ˆ¼<ÛÏÏ9<üV€ú jãÆŠ¡C»-XpÌßïë×…t'‚V…5!„L˜àRXÈ=w.•î Ðz©¨´[¿~ø©Ss²³‹ú÷ýé§xü%ÕáâE€¿M›–“ó16vÝA µ«¨àýòKÂΗ:uÒ_½z˜³³9݉ UÀˆ5Àß&Mr½ÿeJÊkºƒ@k'/Ï^ºô»K—–èéµ9r{@ÀÌÌ|ºCýPXü­W/ó®]ÂÂnÐ$ƒ¹¹ö¡C“ÏŸ_ðñcy¿~#òò8t‡:±Ö¬YCw€Ö‚ÅbìØqÉÏÏYQQŽî, tuÛûø8š˜hFF&íÙsY($:éÉɱéÎ4Àk€UTðzôX;uj¿yóÜéΦ¢‚·ÿµ;.Q”pòä¾S§öSUU ;´(Öÿñã碣““’¾g³YtgÉS^^qgçÎK>”úø8.\ø­®n{ºCA Aa ðïÞ÷êµ~Çÿ¡CíéÎ’ª´´òðá›»w_.+«š0ÁeÚ´þ::*t‡‚f‡Â ¦iÓ JNŸžKwleeUGŽÜÚµëÒ‡¥ß~Ûeòd×^½°0Ÿ4Ca PÓ;™#Fl_ص«ÝY@âUTðþ¿½;kêJÿ~BHX4le)²ºV­‚0¶ÖQkm+Xµ—è0VüZ+Å¥?[kkG…;ë ԺˆFÐb ²X0,*D…$ä÷Ç3)›,‹øy¿úÇÍÍ9ç>ÄöÕ‡'÷ž<):|øÒo¿Ýsuå¿óÎä¹s}ôõué® ´Á  Ó¦}êãcDw!0pdd9réܹ›\.;$düòå“Ð~=À X´áر+[¶$egG˜™Ó] (ee511—˔ɞN›6rñâqÓ¦ÔÕÅ£Ek€645)ÆŽ ¿yóLºkèÉ“¦ääÜ„„¬ŒŒBÏhÁ‚1ÁÁãìíÍé® zÁ m{öœ;|ø¢H´ÍÀ@îZ``JKK»víw±øÑµ55r[[¶ŸŸ¹Ýu½,|}}GŒ¡Å¬ÚöàAÃèÑÿܱc^HȺk)((èøñãÔ±žž5›=R&ËåUôVõò …AAÚü¾‘ ж!CŒæÎõù曋‹g0t—S```BBÝU¼Œzã?jtÊ´kåÊ)Iå… ¿Ó]¼¬Úåìl5i’ã¡Cè.^ÖY¹rê/¿ÜÎÏ¿Gw!Ðß!XtdÚ4gGG‹#G.Ó]ôwÖa0ï¼ó—ãdz««ëé®ú5k€ç mh¨ìغ €~ Áà9 ô–,™päÈ¥ÆFݵÀËkûöí c×®]ê3ñññŒ¶üýïoó|bbbÏï1'“ɇ‡‡±±ñ˜1cvîÜ©P´ñß…æuíìì–-[V]]ÝÉKö°Îž¯Ð=ÖÏ·bŤGžœ>}îBà%¥R©âããmmm…B¡úäìÙ³¥R©T*ÍÈÈ „HŸùÇ?þÑæù‰'nÞ¼¹'eÔ××=:;;;**J$…‡‡;vÌÏÏO©T¶œ‘‘!•JËÊÊŽ=ZWWçíí][[Û™«p¹ÜÖI< àù,,8³fy~õÕù Fãa1Ð÷òòòòóóúé'??¿‚‚'''Bˆ!¤¡¡bii©obbÒæyÍ ïnˆŒŒ433KOOg2™„'''77·£G¾ûî»-›™™Q—æóùS§N:uê¾}ûþùÏ>÷*<¯‡uÒ;Ö:5?_zåʺ —Q||ü”)S|}}57­»D³A‚Á`9rÄÅÅÅÌÌl×®]ß}÷ÝðáÃ9ÎÖ­[©r¹\ XXX˜›› ¹\N‰‹‹‹ˆˆ R5ÅÐÐP ÄÅÅQ‹§§§ÛÚÚ^¾Üò.: #,,,99¹½Å5§ÇÄÄPuΙ3gýúõÔ”ÆÆFSSSj…ÖÓ•Jett´“““±±ñĉ¯^½Ú½¨‡¬:eÔ(ëqãFàa1Ð÷¨>àà`BÈüùó»¬[HKKËÊÊÚµkWxxøÙ³gsss£££wìØñàÁBȾ}ûŠ‹‹srrÒÓÓþù爈ˆÚÚÚŠŠ OOÏëxzzÞ¾}›:Þ³gOll¬——WëË9::Þ¹óß¿—¶^¼ÍéÁÁÁ'NœP©T„sçαÙlÿ6§ïß¿÷îÝQQQ[¶lÙ´i“V>¢.S@ç$'ß:t]aa%Ý…ÀøÜa™™™ººº÷ïßW©T"‘ˆ’——§9@"‘´êZœ×|I¹víšJ¥jjjjq,‘HT*•³³³T*¥§¦¦zzzÖÔÔBª««[\åÊ•+<Z<77W½>µŽZvv6—Ë¥Ž[/®9]]§L&344ÌÊÊR©T‹- ooº““SLLŒúZ±±±ÏM¹„¡PØñ˜®B5@gùû» 6äÈ‘Ë<îZà%¯P(x<žúŒP(tssëá²ÆÆÆ„‹Õâ˜RRRbee¥~Éáp¸\®¥¥¥X,öõõÕ\G,ûøøPÇÎÎÎí]N"‘ØÛÛ··x›ÓÙlöìÙ³GŽyæÌ™ëׯ·7½©©Is+ÝÝÝýù?/@+@g1™:o¿=)>þjmícºk—…R© …{÷î­fýúõÔVk¯^—Ú„¦6bkjj233 !!!!‘‘‘š÷‘ÉdQQQÔKÍh®I¥R}ÚÇÇÇÑѱ½évvv7nÜPϺuë–>‚®C°è‚ààñ,–Î÷ßgÒ]¼,.]ºTUUbôÌâÅ‹%‰X,îÕëΛ7/<<¼´´4777 àÀ„ˆˆˆªªªéÓ§§¤¤H$’“'OŽ7ŽÏç¯Zµªõ ÕÕÕååå.\˜;wnqq±ú›ˆm.Þ¦3fÔÔÔlÛ¶mÅŠÔ&N:UQQ‘’’¢nÚîcÖ]`d¤¿hѸýë¢\ÞÆ{´.>>~úôéæææê3ÞÞÞöööÚú c{vìØallìåå5mÚ4¨¨(Bˆ‰‰‰H$=z´@ ðôôܺukpppjjª¾¾~ë^}õU+++kkë¥K—‰D"uËG›‹·IOO/00P*•.X° ƒÚV¯^-6nÜèààùý÷ßkûóèFoÿ`€)+«yõÕ_|±ôÍ7[Þ K‚‚‚! tò2b0B¡ú#ÐìXtµµ©¿ÿ¨o¾ù…îB A°貕+§ˆD¥"Q)Ý…@?‚` ÐecÆ ÷ö†MkЄ` ÐË—OúñÇ<©´–îB ¿@°èŽÙ³½x<ãýë"Ý…@` Ð,3,ljlì¯552ºk€~Á ›BB&èë³¾ý6ƒîB _@°è&6[ï­·&>|ñéS9ݵýté.à¶bÅ䯾:Ÿ˜˜³dɺkRQQÑ¡C‡è®´Á ûx<£ÀÀ1_}u~ñâñ:: ºËH$ ¥» Ð<Ò GJKLš´óë¯ßš9ÓîZ€Nè±è‘aÆŒúâ‹tº š!XôÔêÕÓÄâ»W¯Ñ]Ð Á §<=mÇ·ÿòËŸé.è„`  «V½––öÛï¿WÐ]ÐÁ@ |}G:9Y|õÕyº Ú XhƒÁ {-)Itï^-ݵ=¬´cÞ<33ã#G.Ñ]ÐÁ@;X,抓¿û.£®î)ݵ ¬´fÙ²‰ #..ƒîB€ÖZcd¤¿dÉ„ýë¢\®¤»èkÖÚôÞ{yð !)IDw!Ð׬´É‚3þèÒ››Ut×} Á@ËV¯žVTTžþÝ…@ŸB°Ð2{{óéÓG<ˆ‡Å¼\¬´ïý÷§efÞ‰Jè.ú‚5€ö7ÂÓÓö›o.Ð]ôk€^ñÞ{S’“s‹‹«é.ú‚5@¯xóMÏaÆìߟFw!ÐG¬z“©³zõ´¤$QYY ݵ@_@°è- Œ177ùúë_è.ú‚5@oa±˜+WNùþûÌû÷è®z‚5@/Z²d›­wøðEº €^‡` Ћ ôÞygòÑ£—êêžÒ] ô.k€ÞµbÅ_!qqt4 bÀ‹)!!¡«ܺ½ñ神˜ Zºtâ×_ÿ²bÅäAƒXt—}müøñëׯ§» èš   nÌB°èu+WN9|ø¢P˜õÖ[é®úšM`` ÝU@_@+@¯333^´hìÁƒçŠfºk€Þ‚` ÐV¯ž.•Öž:uîB · Xô>ßtÎïýûÓš›Ut×½Á ¬]ë{çNUZÚ-º €^` ÐGÌýýÝþßÿK¥»èÖ}gíZßë×ïþúk!Ý…@´}ûvƒ±k×.õ™øøø6o±,‹5_ÚÙÙ-[¶¬ººº«W,,,d0Ý.¸Åt™L&<<<ŒÇŒ³sçN…BÑzVO*ïaÁZY¡Ö}ÇÓÓvòd§Ï?O£»èwT*U||¼­­­P(TŸœ={¶T*•J¥„é3®®®„ŒŒ ©TZVVvôèѺº:ooïÚÚÚ.]”ËånÞ¼Y+õ×××=:;;;**J$…‡‡;vÌÏÏO©T¶ÜíʵXpo@°èSk×ú^¼øûÐ]ô/yyyùùù‡‹ÅÔIKKKKKK333Bˆå3,‹bfffiiÉçó_{íµ“'OŽ1bß¾}]º(ÇÓÜ ï‰ÈÈH33³ôôô€€''§yóæeee•””=z´õànW®Å‚{‚5@Ÿš4ÉÑÃÃæàÁótýK||ü”)S|}}57­;‰Á`„……%''S/år¹@ °°°077r¹\¡PlÛ¶ÍÖÖÖÌÌlÙ²eÔ±f_ƒÁ8r䈋‹‹™™Ù®]»¾ûî»áÇs8œ­[·RΞ=ëååÅf³­¬¬Z§Û¸¸¸ˆˆ&“©>chh(ââ⨫¤§§ÛÚÚ^¾|¹«•kN‰‰¡ ž3gŽúy–¦¦¦Ô ­§+•Êèèh'''ccã‰'^½zµ«Ÿmç!Xôµ>ðKN¾QTÔåŽX¨¨>àà`BÈüùó»¬ !ŽŽŽwîÜ¡Ž÷íÛW\\œ“““žžþóÏ?GDD|öÙg'NœHNN>þ|AAÁÇÜz…´´´¬¬¬]»v…‡‡Ÿ={6777::zÇŽ<¨¯¯Ÿ?¾···D"Ù½{wxx¸fctmmmEE…§§g‹===oß¾MïÙ³'66ÖËË««•·9=88øÄ‰*•ŠrîÜ96›íïïßæôýû÷ïÞ½;**ª  `Ë–-›6mêÆgÛY*èsþþ{V¯þŽî* ×>wXff¦®®îýû÷U*•H$"„äååiH$-b!D"‘hžÉÎÎær¹Ô±³³³T*¥ŽSSS===_y啤¤$êÌo¿ýFk.K¹víšJ¥jjjjq,‘Hóóó”Jå… ¨“êé555„êêê?ו+Wx<5,77·{•kNW_Q&“fee©TªE‹…‡‡·7ÝÉÉ)&&F}­ØØØÎ`BˆP(|î°t{1³@;Ö®öíºu3ìíÍé®è¯P(x<žúŒP(tssëÒ"‰ÄÞÞž:.))±²²R¿Åáp©—......­W066&„P ܚDŽ==½‚‚‚÷Þ{¯¡¡¡õ®3—˵´´‹Å¾¾¾šçÅb±uìììܽÊÛœÎf³gÏž˜˜8räÈ3gÎ\¿~½½éMMMš[éîîîí•Ñsh Á̙_|‘Nw!@?¥R) ÷îÝ[ÿÌúõë©íÒÎ/¢R©<øúë¯S/©}bjµ¦¦&33sèС%%%Ô»b±¸ÍV(-}@½llT°Ù‚` @3}}Ý÷Þ›²wï¹°°©C†Ñ]´M¥RUUÕ••Õ”—×”•Õ”—×–•=,+«)/XW÷”Âb1‡åòù¦|¾é˜1í­Mù|Óèèÿ£»pè;Öô[¾|ÒÁƒç¾´iÓ_é®åeWW÷¤¤äþ³]ç:õ&ô£G !:: ›Á¶¶C,,Lœœ,ýü\‡ bnnbiiÂá°[¯öùçŠ>ÿ €6Ö]VTT”––¦Ý5GôÕWélv©žm]¹#FŒðõõ¥ëê}I©l.+«i¯ƒb` gc3ØÂÂdذ!³fyPIÚ‚ceÅÑÓC|‚¶áß €.ËÉÉ Õîš::úºº¼µk˵»l—°`ýøqÓzøPöÂõoL˜0î ï XÀóUïÛ÷ÓÉ“¢æfbii¢3Ä~¤jIDAT•5++ý9:ÿ7ISýL¦Žµµ)µëßÔÂB; $ý‚5@oa0 ,HHHPßm­°°ÐÑѱ÷îÓ×óõSSo}öYêõë¥T§GëHMa0Ÿ|’üÊ+V&&Ó¦¹ € XôªÄÄD¡P¸hÑ¢¾¹—Ëݼys÷æÖÕé—”˜¼õÖ¿tt„¥²HMa±˜ûÛŒ?ôëf•mMx„††®^½º¢¢¢o.ÇãñvíÚÕ‰åå5êB b57«ttLf»Ï*UsEÅ£îW 0@!Xô¢uëÖ9;;¯\¹²E{Faa¡fˆú˜Á`9rÄÅÅÅÌÌl×®]ß}÷ÝðáÃ9ÎÖ­[©r¹\ XXX˜›› ¹\NMOOO·µµ‰‰¡–R(Û¶m³µµ533[¶lYmmmÇuòù¦vvuîîÕEEŸ^¹òѾ}ÁË—OtqJ­Æb1utþ—äòæ’’ûZú„´‚ô"&“ãáá»|ùòÎLIKKËÊÊJHHx÷Ýwƒ‚‚rssÿý†þío2dȾ}ûŠ‹‹srrjkk—/_ñÎ;ïBöìÙ;xð`j‘Ï>ûìĉÉÉÉ ãÝwßýøã£££;Y3u³ŽÀÀ1„®]+‰J²³‹Åâ?žùdîܹ„üüüÛ·oSÇ ¢~´ö(Í¿ÿ.ÍÎ.¹v­äö튟~ÚÐÅ `€ÃŽ5@¯[³fMRRÒ»ï¾ûÅ_´~·E@766&„°X¬Ç”’’+++õK‡C8;;k.RZZêèèH»¸¸¸¸¸ôü§ÐÕÕqu建ò—,™PPÐG]ã/k€^§££sôèÑQ£F:tHó¼B¡ÐÕÕ-//ïüR<ïüùó„ÚÚZõ×"5Ã7!dèС%%%nnn„±Xœœœ¼eË–žüêž«W‹Äâ»FFƒòò¶÷dA€Á / >|÷îÝï¿ÿ>õ’ËåB¾ýöÛ ìß¿¿óëÌ›7/<<|÷îÝ=Z¹rå˜1c>üðÃÖÖ.]ºeË;;;BÈš5kFŽÙÕ‚Õ99ÅW®Ü‘Jk !L¦u><í %k€>š”””ššJáñx;vìØ°aÃÎ;÷îÝ{òäÉN.²cÇŽ?üÐËËKGGgþüùQQQ÷îÝk=,<<\&“ùûûËd²™3g~úé§Y\.×IM½%•\¹r'7·¬±Q®£Ã „ÑÜüß{ZS©ZG‡agÇëdÁ/|y Ë:ùåÅHyyŸß–ÚZ}¢±-Ý==抓#"f÷Uu/ÜÇŸoêêúÀÞ¾ÖÊŠ«R©4ïZÝšJEî߯ÏÊ**/¯ió™ç/'´‚!„0*++Y||Dzúo;wžýý÷J&“ÑæÖµ\ÞüÃ×E„]]KKŸojc3˜Ï7}öׯf°^ŸÿtB°€ÿÑÑaøù¹úúŽLKûíÓO¼u«\G‡ÑÜÜ¢éE•’²‘ÏçVTÔUUÕ•–>(-}p÷ŒÂªªº?þxH×××µ´äØÚ±°0±°àPϱµÂç›êêâwæ0!X@K ÃÏÏÕÏÏõÒ¥‚?>“›[Ö¢ñšÏçr8l‡ýÊ+–“'ÿinS“B*}t÷ŠGêØ]|ï^­\®¤Æp8luζ°0±°06lÈðáfÆÆƒúòÇÐ.kh×äÉN?þ¸>%åæž=)ùùR]]¹\i`ÀâpØíMÑÓÓ¥Bsë·=z¬ÞÞ¦v»/]*()©®«{J àpØêœ­»966ƒut½õCh ‚5t„Á`üõ¯£ÜÒÓówïþ17·ÌÊŠÛ½¥8¶»;ÛÝݦÅù§Oå••uwï> bweå£ÒÒ—.¨»Jôôt­¬Úè*:”Ëb1{úh ‚5<ƒÁðõéë;òâÅßsrJ´»ø A,*+·è*‘Ë•÷îÕVV>Ҍݹ¹eüñðÉ“&jL›]%vvf&&è*¾†` ]ð—¿¼ò—¿¼Ò7×b±˜Ïí*©¬¬£b÷¥K%%÷ëêžPÔ_¤V077¡^ÒØU²}ûö‹/Òriè¤>úhÊ”)ÝžŽ` ÐM‡¢»í(*’=}ªÌÏÈç[ææþÁá°õõu XFFƒ˜Ì~zûŽ®v•”•ÕP_¾d±˜C‡rÕ9[»mm{ýþ€yyy·oßž0aB¯^ºíøñãï½÷^OV@°è¦ÐÐPºKÐ]]®©é›ºº£< {ÿü–޾>ËÀ€¥§§kbbÀfëéë³¼¼l?úh]Õv¬K]%¿ÿ^QVöðñã–]%ææ&––&T춳㙘h«¼ &$$$hk5Ð.£§¿Ê@°è²      º«Ð¦G/[ö¯œœâiW(šŠF™¬‘rï^-urÊ”>jÑ¢çv•P-%ÔK²³‹©N h¯«ÄÚÚ´ßîè-¬€p8ì'ÖüýïÇÿý﫪áúÏtu™K– ¨fª«¤õùÆFEEÅ#j{›ÊÙì*±±Ìfã©“/#k „]]èè ++ÎÞ½?©T„6âµ®.3 Àmð`Ã>¯Žúúºíu•<|Ø ÞÞ¦v»/]*ˆ‰©¢¶öɳ®õ]J¨ØÝÔ¤£§×Æ#âaÀ@°€ÿb06X[Þ¸Q¨R‘VO2' …rÉ’Wi©­ÿ`±˜ N‹¯NÊåÊŠŠGåå5ee5eeËËkËËk23ï$&æ<}*'„èèX¾úê=šª†¾€` ²páØ¡C¹o¿}¸©I¡Phî°2¸\ƒµkãÞ|Ó+$d¼³³m%öK,ÓÆf°ÍàÖoÝ¿ßP^^#léûª /¡ãZš<ÙéÌ™¿™šj>×PW—>ÞÖÖV(ªOΞ=[*•J¥ÒŒŒ BˆôWWWBHFF†T*-++;zôh]]··wmmm”Z__?zôèìì쨨(‘H~ìØ1???¥²¿qu»H.—»yófm×®}ÖÐ6 NRÒšQ£¬Y,&“©3c†+õµE&Sgòd§¯¿~+;;bíZß‹ üüvì‹»¢þöôD^^^~~þáÇÅbqAAuÒÀÀÀÒÒÒÒÒÒÌÌŒbù ‹Å"„˜™™YZZòùü×^{íäÉ“#FŒØ·o_”iff–žžàää4oÞ¼¬¬¬’’’£G¶Üí"y<žææ}¿…` í255àà`BÈüùó»¬ !ŽŽŽwîÜ¡Ž×¬YSVV–••õã?ž;w.**ªƒ‰GŽIII9{ölZZÚöíÛ5ßÚ·o_qqqNNNzzúÏ?ÿQ[[[QQáééÙbOOÏÛ·oSÇ{öì‰õòòê¸ÈÖ‹·9=88øÄ‰Ô­ÖÏ;Çf³ýýýÛœ¾ÿþÝ»wGEElÙ²eÓ¦M]ùüºK U7nÜ„#Fl²³Û¸reÌÅ‹¿777Ó]ýŸ;,33SWW÷þýû*•J$Bòòò4H$’Ž"‘H4Ïdggs¹\•JÕÔÔÄd2oÞ¼IOJJrppÐ\A}LäææRç…BáðáÃ5G:;;K¥Rê855ÕÓÓ³¦¦†R]]ÝâG¸rå Çk±`E¶¹¸ætu2™ÌÐÐ0++K¥R-Z´(<<¼½éNNN111êkÅÆÆ>7÷B„BaÇc:†Û퀖¹»Û|ú©ÍGÍ:}Zsyáƒ#F˜[¸pgDwuý]||¼B¡àñxê3B¡ÐÍÍ­K‹H${{{BHee¥R©¤Ž !eeeš#U~Ц£ã/AEUÍ·JJJ¬¬þwE‡Ãår---Åb±¯¯¯æH±Xìãã£^ç¹E¶¹x›ÓÙlöìÙ³GŽyæÌ™ëׯ·7½©©Is+ÝÝݽ½2´­ Ð+LL –,™šº1!á}ww›èè”qã¶øá÷W¯©:|júËL©T …½{÷Ö?³~ýzjµó‹¨Tªƒ¾þúë„ &“YTTD½uçÎ>ŸOS7Å+/ÿÓ]¨½aBHAAÁ°aÃ4ߢ6¡©­ÙšššÌÌLBHHHHdd¤æ=@d2YTTT@@õ’úneÇE¶·x›ÓƒƒƒOŸ>íãã£þk@ëévvv7nÜPϺuëÖs?·žC°€^Ä`0&Mrüò˥ׯÿ_xøë7o–ÍûùäÉŸ8^YYGwuýÎ¥K—ªªªBBBŒžY¼x±D"‹ÅO¬®®®¨¨(//¿páÂܹs‹‹‹©/ù±X¬… ~ðÁÅÅÅ7oÞüè£BBB¸\.!äÛo¿­««Û¿¿æ:6l(,,ÌÎÎþÇ?þ±|ùrÍ·æÍ›^ZZš››pàÀBHDDDUUÕôéÓSRR$ÉÉ“'ÇÇçóW­ZÕù"Û[¼M3f̨©©Ù¶mÛŠ+:¨-,,L œ:uª¢¢"%%EÝ´Ý»zÒGÐU;vœqsûˆÏ_ôeBBÖãÇtÕ:Óc:cÆ Í3ÍÍÍööö›7oVŸi³ÇZÍÆÆ&$$¤²²RýîÇ—.]:dÈ++«uëÖ=yòD¥RíØ±ƒËåÚÛÛŸ:uŠhôXÇÇÇÛÙÙ™››oذ¡±±QóZuuuo¿ý¶©©é!CV®\)“ɨó 6lpssc³Ù®®®;vìxüøqë:;.²õâm6‚SV®\iddÔÐÐÐÁt…Bíàà`hh8aÂj ¼ãŸô¸Çš¡Âïb ÏÉåÊ_~¹˜˜óã¹l¶þ›oz.[6ÑÍOw]½(((ˆ’@w!Ð6ƒ! ©?¦îÁ—€,ÓÏÏÕÏϵ¢âщ9qqWâ⮸»Û,X0zÁ‚Ñ\.›îº =Ö@'KKÎêÕÓýuË?¬uw·þä“d/¯m¡¡±—.à÷êðbÁŽ5ÐOG‡1v숱cGP7éûöÛ_.<8|¸Ù¼yÞ‹ãóMé.àù°c ýu“¾Ÿ~Ú˜’²~Ú4—#G.·}áƒgΈåråóçÐ;Öй»Û¸»ÛlÚô×~¸544ÖÚÚtá± ޳¶Æ6ôGر€þËØxÐÒ¥¯&'¯KOß0êÈ‘ËãÇo :xâDΓ'MtWð'Öðpq±ŠŒœ{ýúÿ}õÕ[ƒé®[÷oOÏm6³²ðGè/Ð / ==Ý7Þðxã ºº'§O‹Ïž3çsKKÎüù£ƒƒÇaFwðRC°€õÇ%K&H$• ÙÇg8NÝ{þ|SSCº „—ž¼/¼æfÕ¯¿JŽÏNNÎmnnž1ÃmÁ‚ѯ½æ¢«Ûº^ƒ‚‚.^¼8jÔ(º ¶¥¥¥õðÉ‹Ö0p¨[D²³‹-,8o¼á±xñx+ºë"„½{÷fffÒ]tdݺu&Lèötk€Ô-"UUõh¾` Ö Ñ"‚5 |UUõII¢„„¬Û·¥vv¼ÀÀ1 Œ¶±Lw]0  XÀKäÆ?²øáZmíã±c‡Ï›çóæ›ž›îº` @°€—Ns³*'§811燮=~Üäãc8fÎo##}ºKƒ‚5¼¼/þž˜˜“’’§£Ã š°§Nuf±˜t—/kR[ûøìÙÇgçä”p8o¼á±`Áè1c†3 ºKƒ‚5Àÿ”•Õœ:uíûï¯W[[›Îží½xñ¸áÃñ°tx>k€6äæþqüxÎéÓ׫«ÿ{'ì9s¼y<#ºë‚þ Á ]JesFFáñãÙ?þ˜÷ô©üÕW,ýúël¶Ý¥A¿ƒ` ð|OŸÊSSo%&æœ?Ÿo` çïï6k–'ž5š¬ºàîÝII¢¤$Qaa•­íY³<ß|ÓsÔ(kºëú!XtGnî§O‹ÏœÿñÇC;;•°]]ùt×´A°è‘߯8{V|êÔõª¡C¹ý«û¬Y¸UßKÁ@;¨„ýÃ×ïÜAÂ~!Xh•°Ož¼VTTÍ盌BÂ~ Xô*a'%]£7ãï?jÖ,±cGÐ]ô k€ÞÕܬºzµèÌ™ëÉɹÕÕõ#G5ËsæLwGG ºKmB°è#Jeó•+wNº~êÔµ††Fó™3ÝgÎtww·¡»4Ðk€¾¦T6‹D%gÎÜøÏr¥ÒÚÁƒ §Ms™5ËsêTg‹IwuÐMÖt¢ú°Ïœ¹QPPabb0eÊ+¾¾#gÎt74Ô§»4èk€~¡´ôAjê­3gÄ99%úúº“';½ñ†‡¿¿›‰‰Ý¥A§ Xô/÷îÕþüs~jê­_~¹Ýܬòö6k–ç¬Yž&t—A° GZZZQQQêëå·o7äç×—–>&„ n8c†¹¹9ZD´Ã××wÄmÞúPW‹k@ç:tèøñã©££¯¯?\&sÈÈøE©lèåº^B¡Á`€ LHH »Š—Qo<SGë+¼„¬´Á@ ¬´Á@ ¬´Áà°}ûvƒ±k×.õ™øøxF[Äbq›ç {~9™L&<<<ŒÇŒ³sçN…BÑz˜æuíìì–-[V]]ÝÉKô¼N­ü¤Ý€` Ðß©Tªøøx[[[¡P¨>9{öl©T*•J322!Òg\]] !Ò?ëÆu‹ŠŠx<žúe}}ýèÑ£³³³£¢¢D"Qxxø±cÇüüü”Jeë¹TeeeG­««óöö®­­íÌE¹\îæÍ›»Q-íð€€þ.///??ÿ§Ÿ~òóó+((prr"„B!–––šSÌÌÌZœ),,ìêu›››%„œ={ÖËË‹Íf[YYQÑvüøñD#²ÇÅÅEDDP©šbhh(âââ¨î‹ôôt[[ÛË—/·¸ƒÁ KNN¦^Êår@`aaann.är¹æô˜˜ª‘cΜ9ëׯ§¦466šššR+´ž®T*£££œœŒ'NœxõêÕžDÝ€` ЯQ} ÁÁÁ„ùóçw2XËd² -:¡×¬YSVV–••õã?ž;w.**ª¾¾~þüùÞÞÞ‰d÷îÝáááÕÕÕ™™™„ŠŠ BHmmmEE…§§g‹ yzzÞ¾}›:Þ³gOll¬——WëzïܹCïÛ·¯¸¸8'''==ý矎ˆˆhszppð‰'T*!äܹsl6Ûßß¿Íéû÷ïß½{wTTTAAÁ–-[6mÚÔ™HûT@‡ÀÀÀÀÀÀçËÌÌÔÕÕ½ÿ¾J¥‰D„¼¼<͉¤E¨kùΜ9£ÖÔÔÄd2oÞ¼I NJJrpphllÌÏÏohhP*•.\ „H$Í•kjj!ÕÕÕ-Ê»rå Ç£Fæææª H$šÃ²³³¹\.uììì,•J©ãÔÔTOOOÍéê‹Êd2CCì¬,•JµhÑ¢ðððö¦;99ÅÄĨ¯ûÜ”K …é*ôXôkñññ …BóK„B¡ÐÍÍ­ãY‰ÄÁÁAóŒºÇº²²R©TÚÛÛS/ÊÊÊôôô Þ{f††6·œ¹\®¥¥¥X,öõõÕÿÉ“'AAAàÚµk_~ùe›CBB"##5ï"“É¢¢¢¨—,«Í‰*•êàÁƒ¯¿þ:õ’Úá¦vykjj¨†“6§'&&ž>}ÚÇÇÇÑѱ½évvv7nÜPϺuëV—>mA°è¿.]ºTUUbôÌâÅ‹%‰X,îöš,káÂ…|ðAqqñÍ›7?úè£ÆÆÆ¦¦&==½'OžlÛ¶R__O§î:B‰ˆˆ¨ªªš>}zJJŠD"9yòä¸qãø|þªU«Z_¥ººº¢¢¢¼¼üÂ… sçÎ-..VqÞ¼yááᥥ¥¹¹¹h¯Ô3fÔÔÔlÛ¶mÅŠê“­§‡…… ‚S§NUTT¤¤¤¨›¶û‚5@ÿ?}útsssõooo{{ûÞä‹/¾:tè˜1cf̘1cÆŒððp.—»gÏžggg;;»ààà€€;;»I“&©û.LLLD"ÑèÑ£§§çÖ­[ƒƒƒSSSõõõ[_âÕW_µ²²²¶¶^ºt©‘‘‘H$R·|ìØ±ÃØØØËËkÚ´iQQQíÕ©§§(•J,X >ÙzúêÕ«ÁÆ"##¿ÿþûž|8ÝÆèÉï Û‚‚‚! tò2b0B¡ú#ÐìXh‚5€ Xh‚5€ Xh‚5€ Xh‚5€èÒ]ÀË«¨¨èСCtWÚ` @‘HJw x¤9€ Ç@ ¬´Á@ ¬´àÿ†ÈÐ~)MIEND®B`‚XQilla-2.3.0/docs/simple-api/classNode__inherit__graph.md50000644000151400015140000000004011653571063020337 00000000000000d1c87a04757436d6d43e2f81f27ea29aXQilla-2.3.0/docs/simple-api/URIResolver_8hpp__incl.png0000644000151400015140000002122711653571064017621 00000000000000‰PNG  IHDRUuèWƒúbKGDÿÿÿ ½§“ IDATxœíÝi@W×à›…”5"àˆ¢¨* Z\PQÁ"¨u·¶µ_+ZK[õµ‹TÛú¶R‹ ‚5ŠHDq©V« ‚ˆ (¸TT´* ‹€!!@–ù~\ß4&“ $çù†YÎ{2's'“¡=CÕv€@ý  þÐGPÿè#º¶ Køú믳²²´…~ùòË/'Nœ¨í(€þ‚úB•””ܺuËÝÝ]Ûè‹ÌÌÌ+Vh;  × þðš»»ûæÍ›µ…¾ÈÌÌÔv@ßÁõ?úê}õ€>‚ú@Aý  þÐþþþåååò¦øKxçw>üðÇv`ÎÎ(//÷÷÷WɪY{ÐpÿªÛ»wo„PSS“ÉüÏþóûï¿S(”ÎÌ P8ÿ@•,--­­­­­­œœV¯^ýüùóW¯^urN€:@ý@]h4N733kïœ ...$$$$$$..N  „®^½ºlÙ²)S¦,X°àüùóxN‡3kÖ¬ÐÐÐß~û­µµU¼Î/¿ür÷îÝø5ŸÏ¾víéÊñiaaáüùóKJJ¤b+((ˆˆˆ>tèúßøjNNÎÂ… CBBvíÚÅçóI'vv÷ fPÿP¥ææfÇãñ^¾|™0yòdƒöÎÉb±*++÷ìÙóã?&&&677oÙ²eöìÙGŽY¸páöíÛ›››B?ÿüsMMM\\Ü÷ߟŸŸŸœœ,^@@ÀåË—ñ®óó󌌼½½IWŽç?zôèÆ]\\¤âÌËËÛ·o߆ âããÙl6žxâĉmÛ¶}÷Ýwyyy‡V0€. ®ÿ JË—/¿611ùí·ß:0çÙ³gwîÜimmÍ`0V­Z÷î»ïÁãñ ƒ‚‚&Mšddd$.]º”€¯#.Y²dÏž=x%o½õÖöíÛïß¿ïæævñâÅ   FºòiÓ¦!„V®\9pà@Ù8çÏŸojjêçç‡jllÄßÿ}'''ÜŠøøx¼Q©‰‹/îè^@ þÐ>øŒJö5Æd2B---û÷ïß¾}û¯¿þJºs¾xñbîܹâ9ÍÌÌ,,,vîÜÉb±]]],X0vìØúúz‘Häàà€gstt¬©©/eddäëë{ùòåþýû_½zuß¾}òVŽ_ôíÛ—4N„ÔspÃK‰7J:€. êíÀ`0ÊËËÅú§OŸÒh4ƒ!;§‘‘QPPÐéÓ§ ‚Pü­NÙ9{öì¹sçN\9N]]]KK‹H$Ú²e‹@ ¸xñbttô‰'¬¬¬¨Tjeee¿~ýB¶¶¶’kصk—³³³«««8fÙ•ãét:ùÑ€4øçÏŸã“ÅgÏžá)o"]\ÿ ‚‚‚~ùå—ÜÜÜÊÊÊÂÂÂo¿ývÊ”)ò®ð™™™555ñx¼6W+5çøñã÷íÛWUUUVV¶aÆ'NP(”õë×geeq¹\>ŸO§ÓŒŒètº¿¿ÿ/¿üRYYùøñã„„ñà'æííÍáp’’’𧼕KsæÌ.—«8àØØØòòò¿ÿþ;>>~òäÉ &ÐeÁùí°hÑ"|­®ªªÊÆÆ& 22RÞÌvvv¦¦¦l6ÛÔÔTñj¥æ\¶lYllìŠ+(Ê„ V­ZehhøùçŸïÙ³§ººÚÁÁaóæÍ†††¡?þ866võêÕo¿ývDD„äÀ#NŸ8qâÅ‹%3+»òÚÚZÉ`~øá‡‘#G*þÚj``àºuëš››Ä•š¨¸ÉhEöz(,,¬¦¦žÿצòòòÈÈÈŒŒŒ6'*æï’¦êPŒÐGPÿí`ff¬ÌDº8¨€v°´´üôÓO•™@õ€>‚ú@Aý  þÐGPÿè#¨ôüþ¯Ýºu+**ª3kàóÍ[[-ÌÌ*UR!·¶ö41©¡PDÚŽ•úB7®Ã˶¶RkjL««M¹\cc»»)•ª¡Ÿ¬«3.+ëéåU¥Ö­TW›=xГÃq¶·o²·ç :¿ÎöéÓ§óë Ãà÷?è .·åøñÂÔÔü7žXZš†„Œ õòðÐè1ýäÉ›«W¨¨Ø©î ÕÖrRRòÈyþ¼ÞÛ{Àòå¦Nõ Óá èÆ þÐ>Adg?HMÍÿóÏÛÍÍü  áóæyMœ8ØÐP £)«˜HDää<ˆÏú믻 †Ed¤ÏâÅ~¶¶æšÙ:ªõeýóÏK&3÷ĉÂòòzwwÇùóÇìÕ«‡CÒpý++«INÎc2s›šZ‚‚†GFúŒïªáè$¨´ArœÓÊÊìÝwÇΛç5x°½¶ãBH{õãpZNœ(LL¼rï^¥‡GŸÈHŸ¹sG›˜j%Ú êäð8'“™{á¡P„Ç9'Mr30 i;´i·þ‰]¿^–påìÙbSS£ÐPï+&ôík£Ýh|ÿiOžÔ:tíøñ Æ9nÝ2cÆKË6žá®ÏÆŒ8fÌÀª*6‹•Ÿp%1ñН¯Ëòå‡R(mG98ÿà5ÉqNkk³ùó»Ð8§<]äüOŸ/ðétAPÿ€¾ëãœòtÁú'VRòüàÁ«ÇŽÝ R)!!žK–ø â í øÔ? ¿ð8gZÚÊʆáÃ.|«Ûsvåú‡±ÙÍG^Ïzúô¥‡GŸeËÆÏžíÙ->[õèü­E&3·¸ø™­­y·ç”§ë×? ß8ÈdæþñG±­­ù¼yÞK—úõîm©í¸€^ƒï¿}!Š.]ºÇbœ?[$"‚‚†ñÅŒ·Þr¦ÑàGLÔŽJ¥Œï:~¼+>ç>|øÚÞ½™pã Ð.8ÿºOrœߦ<¢gÏî4Î)Ow9ÿ“ÒÒ"8y²hϞ̻w+† s\´Ènšõè,ÉqN;;‹°°1ÝwœSžnZÿÄŠ‹ŸÅÇg¥§™˜„†ŽY¾|B¿~pã Ш@×ÈŽsFFúèê8gw¯XuucjêõÄÄì/^ùúºDFúL›æ¡“ýº¨@w<~\søpÞ±c/^¼òöê­3ãœòèFýÃð—øø¬ììýúÙÀƒ@Ý þn¯¡¡‰Å*`± Ä㜡¡^®®:5Î).Õ?±‡«È9r$O \½ÚèP¸q¨Ô?Ð] ¢ŒŒ×㜠eÆŒ¡¡Þº:Î)NÖ?¬±±9=½(!!ëþýpã P¨ ûÁß‘çœ9sd&ÚŽK t¸þaâ_ç9{¶ØÚÚ,4tÌ’%~pã P¸ÿtõõÜcÇnàqNÃ"4tLX˜·‹K/mÇÔˆBy}ãà‹¯ÊML̆ªÀùèê$Ç9©Têôéz8Î)ΟÿIimüùçí}û² ;;3-ò]°`œ©)Ü8:êèºîÝ«8|8ïôé[UUú>Î)¾Õ?±ââgLf.‹U``@›5kÔŠa$´Ô?ÐåÔÕqÓÒ^s:9YÍŸ?fæÌQpt#¥·õ«­å¤¤äýþûÕòòz¸q´Ô?ÐUˆÇ9ÿüó6özœÓ××…J…¨Ê¥çõÃ?®Ÿõ×_wûöµŽŒôY°`œ••™¶ã]Ô? }wïV$'ç>}«ºšíåÕ?4Ô{æÌQ=zk;®nêŸ$üLf.×:sæÈU«&¹»;j;(ÐuAýZ#;Î9k–§³3CÛqu'Pÿdáß}ML¼rï^%þ¹óÐPo##ø®;õhš@ :{¶˜Å*¸|ù>ŒsvÔ?®_/KH¸rî\‰¥¥iXؘ÷Þóut´ÒvP  ÏD@sîÜ)?räúéÓ7««ýü\vì{çá0Î Ôd̘cÆ ¬ªb³Xùû÷gÇÅe¼ýöåË'øù¹P(ða ÀùP¿—/9GŽä¥¦”–¾èÓÇ:,Ì{ölÏAƒ`œSàüOI|¾ðܹ&3÷Ê•ÒAƒ‹û†‡533Òv\@› þuÁG<ÎI§SçÌ=ož——×çT!¨íuûvùï¿ç¤¥Ý Ñ¨³fZ¶l‚Ž=(êP½Û·ËSR®Ÿ:UTSÃñós™7Ï Æ9Õê_ǰÙÍ'OíÛwùáÃj??—ÈHŸ©S=èt¸qP¿Àõ? 2’ãœ}ûÚ,\øVHÈèí´Òzô0Æ· æä<`2s׬9hgg1nÉ’ñÖÖpã ¾€ó?ÐYâqÎÌÌ¿ h0ΩIpþ§OžÔ:tíðák\nË;ï [±b‚—×mÔêè8|)åôé[¯^ñð8gPÐp çÔ¨*ÔÒ"8y²hïÞËwî”ãçÍó266Ðv\@] þvÃ?ºˆÇ9ûõ³‰Œô™=Ûî¬Ò ¨ê€\;55ßÂÂxþü±‹û:9Azë ¨@Y’㜆†ôOçÔ¼ŠŠ†÷ÞK„øO_WÇutü÷y°C‡:ÄÆFj):RSÓxôèõ¤¤œÊʆ€€¡pã îúÚVRòüàÁ«0ÎÙEL˜°íáÃjÒQ((*jê'ŸLÑpH:L(]ºt/>>+;ûÁ€¶áác.| Â¥ þ¹dÇ9CBF;8X¶½$P§Ý»/ÅÄœD²ÿ¢P(yy_Á`:TrœÓÄÄ`ölçì6êê¸#Fl ÿ­4uܸA©©k´•Þjmüùçíøø¬üüÇR7žþøÈxYZvwe·6tèPòú‡Mš4I£á€Î™4 -[¢í(ÔâÎ;ªZ•®fõ„ …bà¯í@Ô¢ººúîÝ»_»;\(33SòO¸þ@7F¥RV­š¤í(è– þндÝÔ?úê}õ€>‚ú@©±þ=|øB¡¾PàéÓ§K–,!"22Òܼë>ÉSA[pŠŠŠètzjjªxzzzº¡¡aII þ“ËånذaĈæææcƌٶm›@ @Úo2ªji›(ÊÇ5¶9íêLV+3gçám!„(Jhh¨äÜ·+ågÖ«Ð q'*&/ •9Q(©çL:U뽩ÉÔXÿ,--?ûŒüã œ8qböìÙ‡RÉ­?š‡›0jÔ¨èèèµk×644 „^½zµf͚͛7>!ÔØØèåå•——SXX¸qãF&“9eÊ¡PرývõêÕÊ7©¶Qeee¶¶ðèêNeµxYµîL¼-üšÅb¥¤¤¨iC@}$;QŠdòÈËFeA¡'OžÜºuK¼T}}}VV–Š[ÒŪªª222U{ðàÞø…Ó§OojjRfNíR!nA---Æ [¹r%A«W¯=ztkk+ž'**jüøñ@¼‡Ãéß¿\\œì&ÚÜ¡tºMŠ(ˆA}[¿}ûöíÛ·;¹’®“ղ˪ƒx[¡U«VY[[WVVv`»ÊϬ¾PIß©$‹4L*a$‘ö‹ÔDeA¡   èèhñRIIIS§NÕÀÁD1µ‘‘QUU%þ³Ýç'OžtttÄ?¨˜œœìêêÊårE"Qllì!C,,,|||222ð9¬‚ñ“Ó§O5ÊÔÔ´wïÞ111xbmm­™™™‰‰É¸qãBöööè§ö/^ìÛ·ovv6é‚ eÿþýC† ±³³‹‰‰9xðà€zöìùÕW_áø|þúõë{õêÅ`0Ö¯_Ïçó}||vî܉ª««£R©QQQ!¡PheeuæÌ„PCCÃ{ï½gkkëääÕÜÜ,‰øDTTÔÈ‘#kkk%›€244LJJÚ¿ÿ¶mÛ“’’ ^?cÉdnÚ´‰Fû÷Î-33³ 6:t¨û­]…ןžž>xð`ƒ±víÚ–––6Ûëââ"îYçÏŸwvv¶²²Ú¶m›¸Ë¤6!o»]f²Z¼¬dz#²äDJ¤ô©S§<<<ŒxðàA©má??ùä777|ø“ U¶»…BáŽ;\]]-,,|}}óòò„'E'‘µ]òM‘™™¹yóæ¾}ûÚÙÙ-Z´Ÿf‘.…ÈúK ..›0Hb„SöØ(Õ%A¡ÐÐУGŠsƒÅbÍ›7Oüߎ¥¥âȧ§ç²eËðœÇÔÔ´¨¨H¶;4—N’µQÉO[‹-Z¼xñ‹/zõê•——GÄž={ FZZZEEÅ™3gœœœB²Å/Øl¶¡¡áÒ¥KŸ?Îd2BÕÕÕAìß¿ÿàÁƒÄ›gðë©S§^ºt©²²’tA„Pxx8›ÍŽG………±Ùì={öàl âû￟;wîÓ§O‹‹‹===7nܸuëÖéÓ§‘žžÞ£GOOO‚ Œ¹\.A=*..6lØ–-[$#¹yó&BH$‰‹ŽVܱ7"„¾ùæñü6«©©‘Ú±¹¹¹ÖÖÖØo¡›7o6¾I^gáµM™2¥´´ôÚµkÎÎÎ[¶lQ²½¤ù€š1c›Í>vìÞᤛ·]4yþ§É¬–ú´.›œD[)ÍápŒŒŒâââ*++èt:‡Ã!ÞL?mii©‰‰Ibb¢Ôve»û§Ÿ~’l/þÕMyáIR_hòüO6²¶K¾)¶lÙâîî^\\\RR2vìØ¨¨(yK‘ö׎;HWpTf¢2‡ ‚ Bÿý·½½}QQA ¦¦¦øC<>ýê@ZmFþøã>ŸO“Étww‰DR¡¾t"dÎÿ:Rÿêë뜜<<<ÄÛswwOJJÏpàÀÅGŠ–––{÷îq8¡PxùòeñŸ;wn]]AÖÇÅÅÅ DÑÚÚ*õÏàææ&ºpáÂÈ‘# ÌÍÍ[[[?ýôÓèèhƒúúú;vL›6 /K£ÑÄo›´´4gggÉHðë 6 „îß¿/n»¸ ˜H$š5kF‹ŒŒ”Üât‘tõêU[[Ûì7Ÿld;K²A¤¤¤8;;+Ù^Ò|@eff! qH¤› HºB1MÖ?MfµÔΔMN¢­”®««300øá‡êëëE"Qcc£P($ÞL?q?ÿüs=ž>}*Þ.iw»ººÊ¶W^x’Ô—š¬² @µ]²ƒNKKÃÿ½{÷®øµìR¤ý%oq‡Ae&*s"þ—|ðÁçŸN“Éœ_Þý»¹¹É[³°°@á³{Éר“'Oz÷î¿9yòäÇ5ÊÌÌ,???++kæÌ™£FÊÊÊÊÈȘ>}:B¨ªªJ(4/îììüüùsÉH°üüüI“&}÷ÝwòšpèСÌÌÌK—.±X¬ôôtñ´··ÇgT’nÞ¼)¹r%÷&;b.Þ–Tgax<7çùóçJ¶W|®@¥¾‘NR›P0±+ÐJVc²É‰§+Hi++«ŒŒŒk×®999Mœ8ñÊ•+T*UÞ¶>üðÃQ£F-_¾\œ¤ÝýìÙ3ÒöÊ O’N&’ßvü¦øçŸÄÍ2dHHHˆ¼¥Hû‹tqyHÈù˜+EÉCXhhhjj*ARƒŸ Ú® -Û<ŒÐh´9s椥¥ÕÖÖþõ×_¤­ÐX:u¤þ={ö,66600pݺuxŠ£££ä÷ˆÚüÙ~¶~ýúÂÂÂÝ»wã‰çÎ ’·ÞŤ *ŸWáÂP__íÚ5*•:mÚ´ôôôÒÒROOÏ·ß~ûÂ… YYY¸þõêÕ‹F£•••áÅ=zäèè( vêÔ©¸¸¸#GŽdddÈ6¡¢¢bíÚµ;vì˜0aÂæÍ›W­ZõòåëGôEDD|ýõ×øB(<<<999&&&<<¼½ûM1ÙÎÂð§'„Pii©ƒƒƒ’핇ô’˜Ô&Lì ´’Õ˜lr¶-ljD©©©uuuË–- ®««“·-*•š˜˜˜““³wï^<…´»û÷ïOÚ^eÂÓÉ@òÛŽßOž<ÁSnÞ¼ùí·ßÊ[Š´¿H—íD|[Tyy¹2­Pþ„ùùù566fgg_¸pAê§HKe#¡¡¡Ç?zô¨ŸŸ¾¦ Ksé$yÆ ÌhƒP( üúë¯ëêêìííOž¬øHAÄO?ýdmmݧOŸÝ»w‡‡‡[YYá o˜¼J#» ƒÁ ÝeR¯Ùlö’%K¬¬¬lllV®\‰¿áÒÐÐ@§Óñea.—khh¸aÃñ†êêê.\hccÓ»wïO>ù„ÇãÉ‹ŠÇ㹺ºFGGK6!))ÉÈÈHòÒàõëwþ¯²@IDATשT*‹ÅÂr8œuëÖ 6ÌØØxРA_|ñÅĉçÏŸß®ý&n>é'ÒÎÂk‹ïׯŸ­­íG}ÄãñÚl/ŸÏ÷óó377W°“‰7óUjò¶«€ÆêŸ†³Zjg’&g›)’’2hÐ CCC77·ôôôÖÖVÉm2õO$Mžø+ˆîîîY du÷¥’¾SIÝ™™9tèPƒÿ„ó?úê}õ€>‚ú@Aý Hîÿ«¨¨Ð|Èjnn666Vɪ «»#‡£’õàÛÎT²* KHê_ii©æã€”ªêdµ>ÃOÄÔv Ëyãþ?@OÀõ?úê}õ€>‚ú@ý?óvär¢òIEND®B`‚XQilla-2.3.0/docs/simple-api/classATDecimalOrDerived__inherit__graph.map0000644000151400015140000000075711653571064023151 00000000000000 XQilla-2.3.0/docs/simple-api/ATDoubleOrDerived_8hpp__dep__incl.map0000644000151400015140000000041611653571064021660 00000000000000 XQilla-2.3.0/docs/simple-api/classxercesc_1_1XMLFormatter__inherit__graph.map0000644000151400015140000000035711653571064024117 00000000000000 XQilla-2.3.0/docs/simple-api/classATFloatOrDerived-members.html0000644000151400015140000007501411653571063021273 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATFloatOrDerived Member List

This is the complete list of members for ATFloatOrDerived, including all inherited members.
_ref_countReferenceCounted [protected]
abs(const DynamicContext *context) const =0ATFloatOrDerived [pure virtual]
acos(const DynamicContext *context) const =0ATFloatOrDerived [pure virtual]
add(const Numeric::Ptr &other, const DynamicContext *context) const =0ATFloatOrDerived [pure virtual]
ANY_SIMPLE_TYPE enum valueAnyAtomicType
ANY_URI enum valueAnyAtomicType
asDecimalString(const MAPM &value, int significantDigits, const StaticContext *context)Numeric [static]
asDecimalString(int significantDigits, const StaticContext *context) const Numeric [protected]
asDouble() const Numeric [virtual]
asDoubleString(State state, const MAPM &value, int significantDigits, const StaticContext *context)Numeric [static]
asDoubleString(int significantDigits, const StaticContext *context) const Numeric [protected]
asin(const DynamicContext *context) const =0ATFloatOrDerived [pure virtual]
asInt() const Numeric [virtual]
asMAPM() const =0ATFloatOrDerived [pure virtual]
asString(const DynamicContext *context) const =0ATFloatOrDerived [pure virtual]
atan(const DynamicContext *context) const =0ATFloatOrDerived [pure virtual]
AtomicObjectType enum nameAnyAtomicType
BASE_64_BINARY enum valueAnyAtomicType
BOOLEAN enum valueAnyAtomicType
castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const Numeric [protected, virtual]
castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
ceiling(const DynamicContext *context) const =0ATFloatOrDerived [pure virtual]
checkDoubleLimits(Numeric::State &state, MAPM &value)Numeric [static]
checkFloatLimits(Numeric::State &state, MAPM &value)Numeric [static]
compare(const Numeric::Ptr &other, const DynamicContext *context) const Numeric [virtual]
cos(const DynamicContext *context) const =0ATFloatOrDerived [pure virtual]
DATE enum valueAnyAtomicType
DATE_TIME enum valueAnyAtomicType
DAY_TIME_DURATION enum valueAnyAtomicType
DECIMAL enum valueAnyAtomicType
decrementRefCount() const ReferenceCounted [inline, virtual]
divide(const Numeric::Ptr &other, const DynamicContext *context) const =0ATFloatOrDerived [pure virtual]
DOUBLE enum valueAnyAtomicType
DURATION enum valueAnyAtomicType
equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const Numeric [virtual]
exp(const DynamicContext *context) const =0ATFloatOrDerived [pure virtual]
fgDT_ANYATOMICTYPEAnyAtomicType [static]
FLOAT enum valueAnyAtomicType
floor(const DynamicContext *context) const =0ATFloatOrDerived [pure virtual]
G_DAY enum valueAnyAtomicType
G_MONTH enum valueAnyAtomicType
G_MONTH_DAY enum valueAnyAtomicType
G_YEAR enum valueAnyAtomicType
G_YEAR_MONTH enum valueAnyAtomicType
generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicType [virtual]
getInterface(const XMLCh *name) const =0Item [pure virtual]
getPrimitiveTypeIndex() const =0ATFloatOrDerived [pure virtual]
getPrimitiveTypeName() const =0ATFloatOrDerived [pure virtual]
getPrimitiveTypeURI() const AnyAtomicType [virtual]
getRefCount() const ReferenceCounted [inline]
getState() const =0ATFloatOrDerived [pure virtual]
getTypeName() const =0ATFloatOrDerived [pure virtual]
getTypeURI() const =0ATFloatOrDerived [pure virtual]
greaterThan(const Numeric::Ptr &other, const DynamicContext *context) const Numeric [virtual]
gXQillaItem [static]
HEX_BINARY enum valueAnyAtomicType
incrementRefCount() const ReferenceCounted [inline]
INF enum valueNumeric
INF_stringNumeric [static]
invert(const DynamicContext *context) const =0ATFloatOrDerived [pure virtual]
isAtomicValue() const AnyAtomicType [virtual]
isDateOrTimeTypeValue() const AnyAtomicType [virtual]
isFunction() const AnyAtomicType [virtual]
isInfinite() const =0ATFloatOrDerived [pure virtual]
isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicType [virtual]
isInteger() const Numeric [virtual]
isNaN() const =0ATFloatOrDerived [pure virtual]
isNegative() const =0ATFloatOrDerived [pure virtual]
isNode() const AnyAtomicType [virtual]
isNumericValue() const Numeric [inline, virtual]
isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
isPositive() const =0ATFloatOrDerived [pure virtual]
isZero() const =0ATFloatOrDerived [pure virtual]
Item()Item [inline, protected]
lessThan(const Numeric::Ptr &other, const DynamicContext *context) const Numeric [virtual]
log(const DynamicContext *context) const =0ATFloatOrDerived [pure virtual]
mod(const Numeric::Ptr &other, const DynamicContext *context) const =0ATFloatOrDerived [pure virtual]
multiply(const Numeric::Ptr &other, const DynamicContext *context) const =0ATFloatOrDerived [pure virtual]
NaN enum valueNumeric
NaN_stringNumeric [static]
NAN_stringNumeric [static]
NEG_INF enum valueNumeric
NEG_NUM enum valueNumeric
NegINF_stringNumeric [static]
NegZero_stringNumeric [static]
NOTATION enum valueAnyAtomicType
NUM enum valueNumeric
NumAtomicObjectTypes enum valueAnyAtomicType
PosZero_stringNumeric [static]
power(const Numeric::Ptr &other, const DynamicContext *context) const =0Numeric [pure virtual]
promoteTypeIfApplicable(AnyAtomicType::AtomicObjectType typeIndex, const DynamicContext *context) const =0ATFloatOrDerived [pure virtual]
Ptr typedefATFloatOrDerived
QNAME enum valueAnyAtomicType
ReferenceCounted()ReferenceCounted [inline]
round(const DynamicContext *context) const =0ATFloatOrDerived [pure virtual]
roundHalfToEven(const Numeric::Ptr &precision, const DynamicContext *context) const =0ATFloatOrDerived [pure virtual]
sin(const DynamicContext *context) const =0ATFloatOrDerived [pure virtual]
sqrt(const DynamicContext *context) const =0ATFloatOrDerived [pure virtual]
State enum nameNumeric
STRING enum valueAnyAtomicType
subtract(const Numeric::Ptr &other, const DynamicContext *context) const =0ATFloatOrDerived [pure virtual]
tan(const DynamicContext *context) const =0ATFloatOrDerived [pure virtual]
TIME enum valueAnyAtomicType
typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicType [virtual]
UNTYPED_ATOMIC enum valueAnyAtomicType
YEAR_MONTH_DURATION enum valueAnyAtomicType
~ReferenceCounted()ReferenceCounted [inline, virtual]
XQilla-2.3.0/docs/simple-api/classDebugListener__inherit__graph.md50000644000151400015140000000004011653571063022206 00000000000000583ac9e30584754a4275969fe64c6255XQilla-2.3.0/docs/simple-api/ModuleResolver_8hpp_source.html0000644000151400015140000001222111653571063020774 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ModuleResolver.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _MODULERESOLVER_HPP
00021 #define _MODULERESOLVER_HPP
00022 
00023 #include <xqilla/framework/XQillaExport.hpp>
00024 
00025 class StaticContext;
00026 
00027 class XQILLA_API ModuleResolver {
00028 public:
00030   virtual ~ModuleResolver() {};      
00031 
00034   virtual bool resolveModuleLocation(VectorOfStrings* result, const XMLCh* nsUri, const StaticContext* context) = 0;
00035 };
00036 #endif
XQilla-2.3.0/docs/simple-api/classASTNodeEventGenerator__inherit__graph.png0000644000151400015140000001334411653571064023673 00000000000000‰PNG  IHDRµÃKJÇ"bKGDÿÿÿ ½§“™IDATxœí{TSWÖÀw A@žŽ€£Ö¶Œµ(–ƶ¶3â e*NÁÇ(,;bíúlÁ©®UEíH­â0Ž:⌳H$b³ÙOŸçÙaàûÃÁÙÙÙÕÕ\]]÷ïßïââÒÖÖÆápôËd2àr¹F-±? ûÛßèÕ™3g6778pà­·ÞzÊÌjµº½½ý© |†˜xþÁb±¬¬¬ìííéU…BïââÂápâãã Å+¯¼´OzèKnaa!—˽víÚÀ`0gÏž1c†££ãþýû@©T&$$p¹\ggçßÿþ÷ƒå€óçÏÇÅÅi—pâÄ z¹³³sݺul6ÛÓÓsûöí½½½Ú£€öòÀ2†Ü;•J•””4mÚ´ &øûûߺuëÙœ‡Á¡ Dzzúp²@YYYwwwwwwccãæÍ›£¢¢4îÛ·/88¸¾¾^(Ο?çÎUUUÚi xûí·ù|¾T*@w"‘HRSS ½½=))éÅ_ …ååå ,ؾ}û`ù% ttt ¶G<¯¦¦F(Κ5+11Q»fíåe ¹w‡âp8ÙÙÙMMM_ýµ»»û944444tÈ1LLà‡6vvv•••šG§OŸ.‹éå+W®Ì›7Oç    ;EÉår¨ªªúõ¯M‡UVVj–nÞÑщDïîÈårKKËû÷ïÓ«ÙÙÙÞÞÞ?tÊrï¦M›vêÔ)MÀéÓ§ù~TUUÑË===úÓŸ^yåÍ£ÖÖÖÚöØÛÛëÁÁärù`t§ßÿ½vÖÖÖåååËÓ»¹‹‹Ëõë×µÃJJJ^~ùåžžžÇ€L&£Û…B¡µµµvÍ>ÔöC§Œ!÷ÎÆÆ¦¬¬Lp÷î]#ûaÊù‡­­íºuë***¨ÿ]WØl¶Æ‰DR\\¬³É`,‹`aÑoOÝÝÝëêêèå²²²½{÷6 :xð ¥uñKKKS(¶¶¶...–––"‘ˆn¯©©ñðð —•J%466j÷«SÆ{7eÊ”{÷îi***›? %Ú(®E=zôºººèÕØØØººº{÷î-X°`Ë–-:ϰQètJ/'$$Ì™3§¼¼¼¼¼Üßß?::š°ykk«““SDDÄõë×ïÝ»—˜˜ùùùô&ááá<O$•——¿øâ‹Ÿ~úi[[œ8qâÇ\µjh]?tÊ ‹ïîî¬÷Çs8œœœ±X|éÒ¥©S§y9ã EQ*•jâĉµµµôjWWWTT”ƒƒƒ““SLLLOOÎéE¥ïÄôöönß¾ÝÝÝÝÞÞ~íÚµšé…ÞÍ)Šª«« qwwŸ0aÂo~ó›¼¼ …*7·T¡P™°$3ý¹\™—W¦Tªµ»ºú®^}hª’Ìôøü2YŸN#“ÉÈÎÆÿbЀìì;?–¢Tª¿ùæÞO?=Ç7Ú ÂX÷C*íûöÛ •J=ð!…BUP`ôÏ#™cÝ+W*ärå`â1cÝœœA P«)àAW—̘õ˜cýõ¹†‰öà²pážÏ>[½téLM‹««ý¸q&ø3aìî9§§îWQ;;O˜<ÙÉ$Ř!c}|AÈ  ô!~ $Єú@?èBý@H  ô!~ $Єú@?èBý@H  ô!~ $Єú@?èBý@H  ô!~ $Єú@?èBÂßSPP =7_W]PPÐÜ\bê*†ELLÌ3ïƒzö|øÛßþÖÁÁÁÕÕuåÊ•÷îÝ{½ü20#?àÆâþ<}N‘HÄf³5«?~õÕW=<<ø|þ¥K—¸\îâÅ‹+++Ÿ¾£‘Vò\`^ß¿îìììêêjØœjµº½½]³ºwïÞE‹?~œ¾8ùúúvuuíÛ·ïôéÓ†íwÈJž Ìëú¡—•+W~øá‡ôr__ŸƒƒÃ×_ …">>ÞÅÅ…ÃáÄÇÇ+ `0gÏž1c†££ãþýû€þ1zv………±±±Ú#×4ù‡™Soduu5ƒÁ(,,är¹×®]ËÏÏ÷õõµµµussûüóÏVÒÙÙ¹nÝ:6›íéé¹}ûöÞÞ^ ÏúÀ #Ü  Îýu(++ëîEQçÎãr¹jµš¢¨ÜÜ\www…BAQÔ¾}û‚ƒƒëëë…BáüùówîÜI' ‘H$©©©ÐÞÞ^UU¥ÙÍÞÞ^ ‹ææfzU§£áçÔIwôöÛoóù|±Xleeµ~ýú†††´´4hmmÕ®„¢¨ˆˆWSS# gÍš•˜˜¨A*•Ž}}Ägb䘗zõíéé?~|II EQï¾ûîÇLÇOŸ>],ÓËW®\™7oD P%—Ë ªªJû¬466€Æ†Ï“aæÔIw$ )Šêëë{ðàT*U©TEEE+‘Ëå–––÷ïß§W³³³½½½µ31šæ5ÿ¨ªªòööÖi´µµ]±bEVVÖÌ™3/^¼x÷î]º½®®ÎÍÍMfooO/¸»»‹Å˜ßÕÕÕÚÚºªªÊ××(ЉDâèè8ÒœƒENŸ>¬¬¬>|-•Jé¾thiiQ©T^^^ôª··wCCƒv3á9˜ÀÚµk³²²òòò^zé%º‘ÍfÓOeŠ¢$Iqq1Ý>ðÇ(5XXXðx¼¿þõ¯ÚÚ¯…?ç`‘´C2™lÍš5ñññ¥¥¥GX‰‹‹‹¥¥¥æm1555ÚÌóò£­­­¹?tû›o¾)‘HÖ¯_¯ ^½zõÇüèÑ#¡P¸lÙ²¯¾úŠY*•Ò {÷î=sæÌG}$ ËÊÊvïÞššª9%ÃÏIŽìëë“ËåVVV2™,!!º»»µ+a±Xaaa±±±µµµ÷ïßßµkWDDÄH—10Âö”󚘘;;;íY[WWWTT”ƒƒƒ““SLLLOODó´¦— Å¢E‹ììì4–––òx¼‰'NŸ>=..N*•Î;wD9õFêL?:äèèøÂ /=ztíÚµG§’ŽŽŽÈÈH'''77·mÛ¶Éd2 Œ6ÿ0Æï®Y³222žuGc‡ŒŒŒ°°0#œ;ó_sý@H  ô!~ $Єú@?úñÃRS—`^éõ9‘H¤óª‡y’™Ù¸|¹«µµ¥© ‚;wî©'#Ü£}^>ka1ÎÕu«Í S2\ŒpîŒqýyáìÙ›ññþþ>™™›M]‹¹€óŸ9þ£¸¸º½g!O@?žÐÜüã­[" €‘›{×Ôå˜ èÇrsïZZ2@­¦22n›ºsýxBfæm•ŠŠ¢ÊËê럳"<#Б¨­²²I3U·´Ä!æ èÀ… ¥LæÏ÷Ýù¼ƒ~€ÞÙ“i™“Sj’zÌ ôrrJY,ÝêJ¥*#£oŽu?Ôj*+ë;…B5ð¡––®ÒÒGÆ/ɬë~ܺ%jkëÖû“iyáÂXbƺ/Þ++æÀ?µšÊË»«R©M]£)1¯ÏߟY³<ÿïÿ~§Y=xðòòås§Mûù;H~üQæè8Þ¥™øúm?ÜÝ·¥¤¼4ÏÔ…˜ c}|AÈ  ô!~ $Єú@?èBý@H  ô!~ $Єú@?èBý@H  ô!~ $Єú@?èBý@H  ô!~ $Єú@?èBý@ˆhÿ ý«îc™ ±XlSWaJBCCµ•Ðóýc Æ/Ëœà™º“‘™™©Ó¢Ç×^{͵ æGQQ‘N Î?èBý@H  ô!1úï×þÇ?þqòäÉèèèððpM£L&;uêÔÕ«W;::œy<^DD„••ŸÏÿì³Ï&IMMŽŽ^²dIBBƒÁ ß{ï=@0œ2ÈÁ‡™yD4449r¤¢¢‚ÅbÍœ93**ÊËËËཟQúAQŸÏçp8@Ûäää–––?ÿùÏÎÎÎõõõÉÉÉÝÝݱ±±þþþçÏŸ±X¼eËz&NœEEEàõ×_êÝÑÑ#GÜÜÜ ›S,oܸ177—^mmmýãÿpèÐ!ø÷¿ÿ{ôèÑÉ“'¶ß!+18£_jkkëëëwìØQ]]ÝÐРi¿víZtt´Ï¤I“æÌ™{ýúu7nœ£££££ã¤I“Àñ0™LX¾|ù_þò—ŽŽCì‘.“&MrìÏÓçT«Õ]]]šÕ´´´Ù³gøá‡>>>>>>[·n]¼xñ?ÿùϧïh¤•œQúÁçóçÎûÒK/q¹\>Ÿ¯i·µµÍÉÉÑTwî\ddä;ï¼³eË–БJ¥2%%eÕªU«V­JIIQ*•„wíÚuôèQzY¡P,_¾¼¸¸x°$ï¿ÿ~PPйsç`óæÍ°zõj:Ciiipp°f|€M›6­Y³†PØÀœz#KKKÃÂÂÊËËoÞ¼½lÙ²àà`Ú?J. Cž Fã=¸ðx<ÐÎãããKKKCBBâããÓÓÓ[ZZ†U„…ÅÎ;ïܹsùòe‡>ÜÖÖ–’’²oß¾Û·oÿë_ÿ:þ|zzzLLÌ™3g"##SRRèȬ¬,±X|üøñƒ–––žýôSŸ´´´M›6¥¦¦vvvjW¢÷pigðññÎéèwjFºü÷¿ÿmmm €€€€ºººÚÚZú¡—_~9==ýðáógϾ|ùrxxxaaáprzzzÆÄÄ|ùå—­­­šF¥RÉçó·nÝêææ6uêÔ¨¨¨+W®äååmܸqñâÅNNN ,ˆ‰‰¡ƒ/]ºÇáp¦NºaÆ’’ºýƒ>x§?ðꫯvuu}ÿý÷PXX¸lÙ2KKKB’•+WÚÙÙ½õÖ[ s=ïêê¢(ÊÚÚš^ÕéhD9‹Œ‰‰ñõõ8qâ‰'bccœœ8ôôôhW¢÷pigÐ9|F3?åóù*•jÅŠš@ð«_ýª··÷Ư½öÚŒ3f̘yêÔ©””úJ3$«V­ºzõjRRR\\Ý"‘HÔjµæ‰èááÑÖÖÆ`0¼½½5[M:•^hnnÖ´ÿäG}ÒÒÒ<<}:??_sJ†Ÿ“©P(”J%“É”ËåôÔä§Ÿ~Ò®DïáÎa'0b­ø|þüùóéSi|||ÜÝÝÏŽ;Μ9“ššÚØØèàà¸nݺå_¾|ùþóŸï¾ûŽ^‹‹;räÈÆY,Ö믿Ád2 űcÇÚÛÛ½¼¼>ùäzÿ‡?üáÈ‘#ÑÑÑ # `Æ t†-[¶ètA?¹™Læ’%K —,Y¢yh°$:¸ººÎž=;88ø›o¾//¯äää”””¼¼<6›íçç—œœ¬éw˜9õFþðÚGíìì6mÚ´gÏ›ððp·cÇŽ¬¬,íJ.Í3:úýþ\FFFXXس¸½ˆ<ìÞ½ÛÙÙYsý|ý!ƒ~ $Єú@?èBý@H  ô!¡çþºÞ÷l"c„ÐÐPíÕ~÷×?~L¿ ³xzz.\¸P³Êø–>Ñ€ó„ú@?èBâÿ¾²Js]Þ=£IEND®B`‚XQilla-2.3.0/docs/simple-api/StaticContext_8hpp__dep__incl.md50000644000151400015140000000004011653571063021111 00000000000000baeff8950f5b9a5059190d387ae819a1XQilla-2.3.0/docs/simple-api/nav_h.png0000644000151400015140000000014111653571063014417 00000000000000‰PNG  IHDR ,é@(IDATxíݱ 0 A½2°ÁU¶— !kÜJrª¯ƒžZýÿÆo‡üèIEND®B`‚XQilla-2.3.0/docs/simple-api/ExternalFunctionResolver_8hpp__incl.map0000644000151400015140000000003511653571064022435 00000000000000 XQilla-2.3.0/docs/simple-api/ExternalFunctionResolver_8hpp__incl.md50000644000151400015140000000004011653571063022340 0000000000000072467bdfc9167c36f1eb56a0eb04537aXQilla-2.3.0/docs/simple-api/classXQilla__inherit__graph.md50000644000151400015140000000004011653571063020644 000000000000008de3c917e518d3ba085af959ba8ed093XQilla-2.3.0/docs/simple-api/XQQuery_8hpp__incl.png0000644000151400015140000057551611653571064017035 00000000000000‰PNG  IHDR ø­€$fbKGDÿÿÿ ½§“ IDATxœìÝyx…•.üê}¯ÞÔ{K²d[Þ°°ÁK°d3¸$À€ ÃØ1Ûw'“’ËÌ„Ùø287$ˆ$,!$3Ü$d™8ƒ-ï²ñ"Û²%uK½wWõ¾ß?N«\nɲlk÷û{ôø©®.uW[[W½uΑT«UNM:Õ;0Ý!T8 „j§P à4äS½pùú׿þî»ïNõ^Ì0o¿ýöTï T€I´wïÞ={ö,Y²dªwdf…Bû÷ïŸê½†A¨“lÉ’%<òÈTïÅ̰iÓ¦Ç{lª÷3ÕN ¡Ài T8 „j§P à4ªÀôrøð᫯¾zÓ¦Mš͛7üãïéé¡›¹\îÙgŸ]»ví'?ùÉûî»ï•W^)—ËÂÆ£ß;®ºê*¿ß?¡OSN>Õ;p’ùóç¯Y³æ©§žZ±b…^¯O§Ó6l¸ë®»Z[[†Éd2÷ÝwŸÉdZ¿~½Çã9vìØóÏ?¿cÇŽ'žxB*•Ž~ïT¿2˜ÁpDÓÎwÞi4Ÿ}öY†až{î9«ÕzÛm·Ñ]?ûÙÏL&Ó† .¹ä¯×»jÕªgžyfppðw¿ûÝiï8kÕ`Ú‘Ëå=ôÐ[o½õÊ+¯¼õÖ[=ô\^kµòöÛoö³Ÿ—©ÕêÛn»íwÞý^¿ßÕUWÑJñr©Tzæ™gnºé¦›nºé™gž)•JtïÎ;o½õÖõë×ÿû¿ÿ;m™Íf¯½öÚÇßáíÛ·ßqÇ×_ý+¯¼"<þæÍ›ï¼óΛnºé©§ž*‹#®ÿÿ;˜Õ`:jkk»õÖ[7nÜøÙÏ~¶¥¥…V¦R©X,6oÞ¼ºçÏŸìØ±Ñï=ÕýêW¿|öÙgŸ|òÉ;w¾øâ‹´þõ×_衇֮]»yófšÊ¶yóf—Ë5üñ†Ùºuëüã/ùË7näyžV¾ñÆ?þø·¾õ­­[·¾úê«£¬€é¡LGÕjµ··W*•öõõÕÝ%‘H†o,T§~ïpo½õÖç?ÿy»ÝÞÚÚzÏ=÷tvvÒúõë×/_¾|åÊ•r¹¼««‹a˜wÞyçŸøÄðÇgæÖ[oÕjµW\qÃ0Éd’VÞwß}^¯wÑ¢EëÖ­{ûí·GY ÓB5˜ŽÞyçÝ»woذá/ùËæÍ›i¥^¯·X,GŽ©ÛøÈ‘#MMM£ß+^S­V…å@ póÍ7_uÕUW]uÕƒ>888HëéS¤RéªU«Þ}÷]ŽãvìØqÍ5׌¸·V«•–çy½^á¡Âáð(+`ú“OõÀÄ*Ë™Lž–y>W©T†ÉåŠù|‘a˜r¹šJåèÞT*_*•†)JÙl‘a˜jµÊóYº7“) e†aJ¥r:-<`–ò©\®˜Ë†©T*ÉdíÞd2W©TªÕÚ½Õ*“Ï;[ZNŸ$E£Ñ§žzêÞ{ïmoo¿ë®»ž|òÉ¥K—²,Ë0Ì5×\ó³ŸýlÙ²eT|öõ¯ýòË/õÕWo¿ýöÓÞË0L¹\–Éd‘HDx.£Ñ¸aÃÇà µ—¤õ·+¯¼òßøÆœ9s–.]j³ÙFÜáË×|>_kk+Ã0ýýý”ºj%LÕ&ÏçªÕJ¹\M&s ÃäóµÌ)•Ê—Ë•jµÊqY¦–x†Éd Åb‰a˜R©’J ¡TV”•†©TN¤\ét¾Tª0µ ¬@+ !Ë‹å³Þ©T¢Ñ(†©VFÁ0 ÃTe2™L&-—+R©T*e*•jµZ¥5´Ÿår¥R©T*L¹\)•*•J¥nŠÓ?uµZ}òÉ'[[[ÿöoÿ–a˜[n¹åOúÓ÷¿ÿý¯|å+ ÃÜu×]÷Þ{ïƒ>ø÷ÿ÷.—Ëår}ãß0™L´ñ(÷¦Ói†aþøÇ?~ô£ýÏÿüOáéV­Zõãÿø¾ûîK§ÓO<ñÄÂ… o¾ùfñþ´··—ËåŸþô§ëׯVþîw¿»òÊ+u:Ý(/ä?øÁ¿øÅd2¹qãÆü㣬€é¡Ìr•J5™Ì2CEZ”]‰£¬B¡Ä U\•J•t:ÇÔê®J äR9JŒ†²±Z|•Éä‹Å Ã0—a¦X,§Ó†a²ÙÚž)F©TʆQ*eZ­’a‰D²º—eÕ #)—ËÂf S5ØB¡,“I$iµÊ %FQ(”*•Jµ*©V«…B™aª”o•Ëår¹Z,– …R¥RÍç‹Åb9Ÿ/•J!«ûÊÑ2™<˪%©Z-“Ë¥Z­V¡iµJ…B¦Ñ(U*¹Z­P©ä*•‚ )¥}¥R¹\f …Ú³‹¥wß}÷´ÿüã·oßþ /Pù—\.ÿÒ—¾tÿý÷¯^½zõêÕZ­ö¹çž{ñÅô£ùýþ†††5kÖìÝ»÷[ßúÖW¿úÕÑï]»víÓO?ýòË/?ðÀï½÷=ÝÚµkðƒ|îsŸ“H$«W¯¾çž{Äul ÃH¥ÒÕ«Wÿ×ý×êÕ«…•O<ñIJeËFÕ®¹æš/~ñ‹¹\îꫯ¾ãŽ;¨ÙcÝÊÓþoH$òB¡4ôE€)#÷‘˜dTΕÍóy ºòB|ÅóÙJ¥šÍ …R±XÊd •J•çsÌPýÝU(”2™BµZ»‹ç³Õj•ÒgqO„°J¯WÉåR†a 5µ45 ÃH¥µˆK.—êt*†a”J9Õr©Õ µZÎ0ŒV«”H¤ÅbI©”—Ë•B¡¤V+²Ù"ÃPWµP(Êdò\®@El”i•Jå|¾DµhÙl?úß ªµJ¥Bÿ'£ÓëU2™L§S%^rF¡TÊÕêZÖ¥V+hŸ)·“Ëe:Š^ŽL&5Ô‰„eÕB˜g2i†aYM©Tá¸,ÏgOþ7“Hœ¸)¾·.V”Ë¥,«aYѨéï?l³|ä‘GÆøu£R©ÔÝݽxñ⳸w,6nܨTn,ü~ÿš5kþüç?Ÿvåè6mÚ´aÃ_tºe èTr“IëpÖhÔZ“Ic4jFɤÖØí숽(àáJ78%ažu¤ùXÉd¾R©Ðð-Ê~¨6‹J»¨!ÅBB£Âd2W©Ti³B¡œÉªÕ e`§EY…@BØc0¨¤R)ÕHét*›Í ºK-“Iè³([’H$”Šéõ⻤år%Ÿ/V*’jµJ½)Ù¢Zæ¸L.Gq×Iø|ñ¡¬˜Ë‰ õf…B!ÓjUj5uH¹„ÄËhÔÐúQ¶Ö3 #ÞìL¿¬¡ŸHd9.C¯"‘Èp\-$㸠ÇeEkFxiF£V­–‹ãœ¹sí#Jf6ú½£+ Ñhô­·Þzøá‡ÏvïÎI&Óõ‹_|?‘ÈÄbiáßćúãñL<ž®û±¬ÚlÖ™Í:“Ik6kM&Å¢5™´&“VXI Sòrf.„j3µ+¤.!£a]Té•JåÊåj*•/—ËT¿%d`ù|éT¥Qc ½¨Šr Jw”J¹F£P(d:J&“47[™¡’/F¡RÉ©:J"aD˜” ª(v’HQ&?ÇehDY©TN§óe³…|¾DÓÅè%'ÙX,LæèuQ F/z9r\V<™ìTXV-•JFT*5ÔÑ©Õ “IK©2ÌhÔP•|)•rÚL¥’kµ*…BF9ŸN§¦¸ R©TÅyX"‘•eâñ “ ¯{ÓëUTIF%esæ47…•FcíChJy>8pàÀÃ?|à 7,[¶l쟥Ó鮿þú±¬<-…Âù½ï½ír½^‹ÛmZ²Äãv›¼^³ÍÆ ßQÓ:äƒA^¸éóÅöíóÑwB8œ¤Ñw„JßFŒBFÓi´ÛY“Ic±è Ù™î6Àìƒö“ŠÂ­D"K±%[TõÅqYе¨ä+ÎQϽbñÄ–TEÅ^ô§}Æá-ÅõOB¦Õªär©^¯¢I½¨œ…e5I-£îˆøŒâWAçú‡W€Ñ q\öF/±ÌdÒÖ•vÑgõµâê±x<3¬Œ,›H¤i¹.¥ú<ªOª K(£õBfV—_Nœ[n¹%{ûÇÙjÓ¦M?þãý×§~Âï‡B<c2™Ông½^³ËeòxLn·Éã1»\&·Ûd³F|´T*Ÿ(w£B7Ê_ãñt<^[H$2âìM¡ +tÓšL:ªx3›uKmA¥Â•»0›áý.Àh¨ö«X¬ ÅZE!+•NZY,–y>+.J§O¬L§ § ‡ŒF-ÅZ”ëètJ¹\FÙOCƒ^Hƒ4Å©Faу0 c4R¦‘JO3Z‰ ÝFÉ·‚A~x&ô <ÓL&“êõêÛ‡ƒ=mÿCj'8=°±(Jñxz¤.‹§ï»8¼®hÁ£ÓÉÚíìèaF+yäSâ5— øPˆïíööFƒAnß>ÿïßå÷ÇK¥ mc4j››­ëp°ÍÍÖ¦&Z6z½æÆFËiŸ”ê){’6 áB!¾»;@÷Ö•{jµJ³Yg6k­V}]ÞF œÕª7›µ4’`ÆA¨³%aóp\¦P(e³EžÏæó¥L¦LÖŠkÅ’É5^+vªg‘Ë¥:]-ÒéTr¹ÌhÔÈåR½^Mù­4™42™L¯WQ8¤Ó© ÚR¦ÓÕê«F©ú:]&ó8.›Nç{{£BÅ[6[ÌçKC©½¨"5EL¥rõQ6ʉëÀh™^¯’ɤ,«q¹ŒTá¤×«iæ¥\C­Õr¹”eO´FÔëU …\«UžÑ+²ÙÂPö@MGɨõ"ÇTÄ0ŒÁ ¦<ÌlÖÚùóℬ.E“HN“’ÂùÀhÔÚ œ«VÕßÅq™¡¤ù¾¾è¡C÷ÞëîïÑ7žB!³Xt‡±¹Ùj·³N'ÛÔd¥øÍng…o0zŠ9sFß“r¹BIºÅãéX¬ö§Â]åò‰ß¥J¥\œ·Y,:‹…jàtf³Öb©­ÄÔ7˜nªÀôB…Sö$“¹l¶˜Ï× §òù5Ìf‹É䉄¬P(¥Rùt:ŸÏ“É< ñÁ)¢î…T¦Ó©¨Êé4 +…Z1JL&­LvÒJÚò,^PåF‘ØÀ@¢T*'*zËd Åb‰Ò¾T*ŸÍ …ÏgK¥r2Y+‰£qb£O;cY û¢ ŒeÕr¹Œ’‡ƒ5Ôr¹ŒVÒ0F¡Ñ(‡€IYV#‘HL¦Ú ±³x™³F*•§¨,‘¨uÆ'g¢åt]I™N§åd§Ó¸p¡“R !'š1NZßE˜¡L¦¿Y¾ü‘ööÆövo[›³­ÍÙÖæ8U¼j4jÛÛµííuë‹År,– ùÞÞh__” ݶm; rÁ OÛ¨Trš£æt…¤Íá`ç̱Q!ìp2™´¡AßР?í«ÈçK‰Ä5šÁ pÒÍH$%Žß†Wg:F‡ƒ­'Ž&B5t´n†–Ðã2#Ž×â¸,UJ ït'f4j…vF£Fèh4jìvÖdÒ ¿K<(ë»áñ|6—+e³…L&Ïq™¾¾h¡PÎd(+ó|¶P(¥Ó óx>W*•“Éœ¨®Ìó¹Ñ Â(íÓh*•Ü`PS™½·Û¬PH ÍPIœšr/¥R®Õ*)3µ …L§SžEÅÛyˆç³ÃS±áiY"‘)ËâOdY UÏÐÇ¢E.£Q;4kJ+¬7™´ø*œJ6[ÈdКòÌd³‡n¾ù½{}/¼ð×x<Í0ŒÛmZ²Ä³t©wÉÏ’%î¦&ëiD¡9F‡Ã8“ɧӅd2›Læ2™B:]H¥r<"0£ðlÄ®‰Z­R§Sét*–ÕètJN¥Õª„„ÌdÒP2IJ•J®Õ*õzµZ-§.‹”ÅK xOh™Éh6˜Ð’Ò2ª£&ù|‘^W¡PJ&ó™L¾®ŽA 4T©äz½Z§<…J¥`YPßF­…—Fu`F£F¡á¬ëD«Tªá0Q™T*±Ù c‰ÊL&J…îã/Ooß~¼³óXggÏ©TÞlÖ­X1§££eåÊ–oû_b±Bµ1ª Õê‹åžž0l]]ýûöù³Ù‚L&õzÍmmNŠÙ–/oK{Æ3EÃÛhrÛPKI.â}¾8õoãð¶‰F×Uˆo„B| À×ý …’âÿdj;YWèF¿C¨C¦É¤±Z r9êÞÎ/Õ¦#ŽËP•¸¢¸¾êëG.®¢3›Tj34ŸF#Db£¯?Ó=Ÿ’&Â>OhHGÙlA(%Vb’ŽÅÒÑh*‘È­ç}—Š?Ìf­ÉTëÇh±œXÖëyNªJ¥ºoŸ¯³óXWWÿ¶mÇz{£R©ä‚ ¼+W¶´·{;:Z››Oô'¼å–[ÞyçÖÖÖ)Üáj•c¦3ö-Ç"v©Õq™l´™ˆuâñxOOÏÜËåÊ‘#¡îî@ww «Ë·kWo$’bÆá`ÛÛi[{{ã(#ÙÎ݈ÃÛ¨ÐM®”J¹Ë5âð¶–ÕLÐŽŽçs±X*M ¿…âñt4šŽÅR±Ø‰Ò7ñ¼7µZAõmC%n:‹¥Vý&Z£Ã߀١ÀÄ¢![TÆóYžÏ%“9*½J&sÉd–º)RIY:§ ³[)J$–Õèõ**3ÔÔ&Q§Séõj–U %eF£†–µZ•ɤ9£9[…B)›-P;Äl¶ÈóÙl¶Ëy>—Ér¹b2™K§sÙl‘^B.WÌd <ŸÍf);}HF©TÊÅM U*¹FsRH•JA¯Th©V˧êd+Œ]*•ÇÓÑhJHÈ„“ÑtzšnŠÇËI$j¿&´b£“Ôf³®n\Ùxu´ƒq‘Hd¶m;&.G3™´+W¶P9ÚâÅžSE›ßýîw·lÙ2É{[çøqc¡ mk‹²MµÊtuÙŽŒÓ™—'-e;wÚK%©Õšs¹’FcaìŸûú믟ݓƒ\W—¯»;pèP «Ëwøp°Z­²¬zÁõŠ\°À¹h‘{r¦Ž8¼-ä '“µ QÞ&Ln£B7¯×<êƒé‘ÑëÞ‚A¾îO!½(»­«¥(óÞf„jg`( £,Çe“Éœ™ wq\–糩TŽçsÃ*j4J –XVc0¨´Z cY 5Ôë©Ñ"…gJ£QKËZíéꚘLæ³ÙB6+κNÌ £l,•Ê¥Óù\®˜JåS)!$ËV*#¼?¤^x>wðàõŠìî80P,–ëF²]pw2w‰a˜r¹'}¾ØÀ78˜ðûã~|pˆ‡BIÚF¡¹\&·Ûäõš=³Ûmr»Í´< +SÇÒs2àx>+þ¬³·º”6+•NRçL¡œ§Äý…3\âæŠâð —+år…ám ‡Z&žë¦7 }OµKÔ2k,Å Ùi»&ÊdRÊ·h—ÆÞ2q,û 3Ïg¹ºoxª9ÕÄ2™LÚР¾Ã…J‹ºðÌhÔNáë‚ñÂqjêØÙyl÷î¾d2g4j;:jM—-kš‰yù;ïì¿ë®[¶|¥±Ñ2ú–;wöþÝß}ï׿þŸ—\2ÎÍ*»ºú7n|÷Í7w©ÕŠ[néX¿þ£§Ý™‰P7’íÃý™LýH¶eËšl6Ãäï)J‰ÁAŽ’¶Zäæ÷Ç…ö°,«ñx(`3y¦¸Œ¢/“I+ôNÔhÔ;Q§S©Õ ½^%±¬Z­V iÞù¦Z­†B|]'þ½^e6ë¬VýÉÓËt‹Öb9qâÙùix9Ëj.¹¤uF—£ Ïg/¼ð«ßüæÍ·ß~éX¶ÿùÏ·<ôЯ¶od⪵ …Ò›oîzöÙMû÷,Yâ¹ë®Ü|óÅÓäbˆG² ê… ]íí 8ÛÚË–5)•ò©ÞÓ“p\&àil[ooTÞ|¾x¹\aF¡Y,:šÙ64¿mn¶Î™ccÙùÝ^*U(r ÛRâ1–ô÷"M ³ëˆÉ¤¥˜ò¶†=ýE°Xt zºkš|+LÕ`’PUÇHŨ††23 Ï„ êò†a(cYɤaYѨ­‹ÄL&íPf¦1Tr¹LÜJQÜ/qx›Ð_ñTM¥R‰Á 7u¤Ú5q_ÇS­GJcW*U(‹ÅÒ‘H2=q&4I w•JáSt:ÕЙPÊÉ´‹ÞlÖZ­zºIšB!›Â×ÓÍùPŽv*/¿üÁ#¼±{÷ccL s¹âE=zÏ=W~þóŸè}ëììyþù÷Þz«ËhÔÞvÛ%wß}…Ûmšè'=#ÉdîÀ!fÛ³§¿P(MùH¶±£6ËÁ ßÛíë‹ ÁÛñãaá 6kj²67SØV Þ<ó,¨ë*˹Åã™h4‰Ô®ÉˆÅÒ‘Hjèr”¸n^£QZ,:›Í@aÅot“®Õ°Zuè÷ ç„jpöJ¥J"‘I$2—‰Ç3´,|p\†ãrC)Z}X¥PÈXVCA-PgEZ`Y …d2™D­V”ËUžÏ 3ÆDsÎFÌN5ÿŒ@«kç(ž‚&̯G0ç¨\®D"ÉD" ñ'„»'ß<éÇÄ`P»\¦ºÖ‹èÄgç³[·öP9Úž=}<ŸÓh”+VÌéèhéèh½ð¦Z s¦>õ©ï»Ý¦ýè³cÿ”G}㷿ݳuëÓ4öõE_zéƒW^ù Î_{íÒuëV¯\Ù2 Ï{FÉÆ0ŒÃÁRÀÖÞÞxá…Mvû”d»\®(j#É Á›ß®c0µ¢6’,oÍÍÖÙ) ¥x<}ªaot3M‰¯ĺ% IDATðÞb ƒ6‡Oz³ÛÙéÐ8à\ T€zù|)‘HŸ’e‰4-‹××5R(df³ÖdÒ™LÚ¡¼êDT¦Ó) ¹T*•HªÕª¤\.'“¹T*ŸJå‰l:K&ó©T.•Ê%“ù3ꦨөŒFV«ÔéT:ŠeÕ:Z§Sêt*ª]£»ôzËjp6Æ]±XHˆÇ•‰§—Ql&NË$‰Ýnqt™ø&38G§*G£¦Ž+W¶Ìâr´Séé _qÅ·^~yýÇ>¶hìŸuüxäŠ+¾õ ÿø‰O\0qûV'Ÿ/ýæ7»ž~ú¿ ´·7®YsÙg>³R¥š^]‡£v‘³íÙÓ 0’mþ|‡T:“þs\f¨$/o½½QaŒÙ©ŠÛÜnÓ쮦$òTþ8.;8˜¿W‚7º@DˆßÄþ¬VÃ,¨€Y ¡Àù¢nØF4šŠÇÓ’Q‰Œ˜årEñ'jµJ É„½^­Õ*Õj¹\.•Je2™D"‘”ËÕb±ÄqÙd2›Jå“É\:O&s<ŸM&sÉdNÜJˆcÏ(úÒëÕz½J¯W³¬F¯Wét*­VIwQZ6˜©¦Ûì˜Åh0Ï(—êו—ÉåR«U_wm~ÝM³Y‡ïa˜ Ùlaûöã=B9šZ­X¹²¥££eÕ MœÿóÞ~á…÷vìxôLÏÚßvÛ32™ä•Wî™ õ„üýﻬVÝg>Ó±nÝ*‡Ã8ù»qv‚A®»;xèP€b¶#G‚•JýH¶ /lšþaáˆNUÜ60ÞóŒXÜæp°çOÍÖP{íÑ µÃád¥râÜ…”v;{ªBíYŸVÀt†P `Æ«V«”“ féh4¦âñ ɈÇÓÑhZ¸žš j³YˆÇ:R¥RH¥R‰„©V«¥R…Þ'ärÅ¡ig§l«¨PÈ,ÝðžŠuÃÆÐP¦•³èǨTÊ]®ÑNó¡#L>*Gëêêß¶íXgç±£GCår…J‚¨mî\;Ê>W_ýK/mýæ7o>ÓO|ë­½ëÖ½øÞ{ÿÒÚj›ˆ;­ãÇ#¯¼²å¥—ÞÏåŠó7ÜsÏ•]Ô<%{r.êF²uuõçó'd[°À¹t©×dšñÝG,n ¹P(I'a„â6¡²‚·ÆFË´H7¡N{ K,–_ž…n“0UªLk—‰FkåeB…™QZFÉ™ø:%d:J¥’+r‰DÂ0U©T*‘Hh&Y:O&³#ŽⱺÑbB3º33¤0 ‹eúa ùh4¦C!Ž~Žb±t8œŒÅÒéô‰æ¢ôÍO ‹EOËV«¾¡–õ‹áLB9ZW—o÷î¾p8).Gkoot8Ø©ÞÇéèÈ‘ÐêÕ¿þúýW\1ÿL?·\®\vÙ7®¿~ÙÃß0û6FÉdîÍ7w=÷ܦ#GBíík×®ºé¦‹gîï%ñH¶îîÀÞ½¾D"Ü<’m–}?çó¥@€ëë‹\(Ä Á›Ï£qtÌPqeEÔF’‚·ÆFËÌj›9î¨èrÊ»M žG·I˜XÕ¦ Ïç"‘d4šŠÅÒ‘H’ÎòG£©H$ %c±T<ž)•N\“+—ËÔj¹B!—ËeR)S­2•JµT* å\._©Ô?¾F£¤nŠƒše5ƒJ¯¯µXdYj±¨60Ô,«ÖëÕh§3B:…øH$¦B¡d$’ŒFk?GÑh*NÒ™Y¢TÊ­V½ÍfŠÇtts(EÓ[­:£qÆFÀìFe=TŽÖÓ*•*ÍÍÖ•+[PŽ6vO=õÎsÏýe÷îÇÎn’܆ ܸñÝ;ò^…•JuóæÃ7¾ûÎ;ûívvÍšKÿñW™Íº©Ý«q!ÉÖÕÕ ò ÃÚ¶6‡³Í¸‘lcDÅm”QI ÞúûcÔQ¨–>y~ÛÚj×ëUS½ûÓB¥RÅÒ±XJ| ­¡7 t³P8qa™Z­°Xtv;kµê¬V½Å¢³ÙXZ°Zõv»ÁbÑi4çcí œ B5€ ‘JåÃaž³h4Õ× ùH$E)ÇåÒé\¹|"“ɤ2™T"‘T*Õr¹R99"“H$Ô­Ñ`PƒAc4jt:•Á ÖëUF£–¦ŽÑM½^m2it:5N°Â Åó¹ÁÁ„p5ºø²têÍ(®³T(dn·‰Z2 ¡‹›Aa€ÌP¹\qÛ¶cT޶gO_(”T©äíí­-ííÞ4Xkš¸þúïÍ›çØ°áïÏîÓC¡äÊ•}ç;·ÞrËÊñݱ³vôhè'?Ùüê«[*•Êõ×/»ÿþ-\èšêO—9t( Äl4’M¯W-Zä^°ÀImNgîH¶1*JƒƒÍlj#Ƀ|OO(•ªÕ[ øDóÛŒMMV¯×|vòì–JåéZŠß¢Ñ”p3®½W¿ÓÐj•C›žÊÙôC ]¯£ŸÝß„ †P àÌ”J•@ Ñ×íë‹û|1ºú5I%žÏ¦Rùl¶X(”Fù +•Jt:•N§bYÅ¢³ZuF£F£QQ‹Eñø1¡éâd¾@€ U©TÃa~ÄÞMC3TNŒ1“J%6›A’9l]~†˜M†—£55Y©©cGGËâÅ\-qÖÂáäòå¼øâÚ|ÉY?Ƚ÷þÌç‹ýö·ÿ<Ž;vîx>÷úëÏ>»Éï¯\Ù²nÝêë®kŸ•QJ*•ß¿ßßݤŸÉ&—K[[íÂH¶ .ðÌŽ¢½± 9d¢6’µàÍç‹Ó•[ÔÙ˜f¶ µ‘d››­sæØXV=Õ»?ÝjÌ›pÅ0!ÐÛqoɺ«|0ã `v@¨ç»B¡§…Yè‰D&Kƒ‰@ Åq™d2ÇqžÏe2ù|¾X,V†ÿé”H$r¹T¥’«ÕJ½^Ų“IkµêívÖí6Z­z*/CHçƒb±<089$ËRy­á¸]Qd .G£fwJ¥ü QŽ6þ^}Ûÿþ߯øá7µÚ³ïäöÁGo¾ùo½õ¿.¼°q÷m\T*Õ?ýiÿÆï¾÷^÷œ9 wÜqéw^βš©Þ¯ T*UŽ #ÙöíóÇãiæä‘lmmÎæfëTïédK&s‰þþØÀ@b` .,\±Xfj׬°·Ûäñ˜<sc£Åã1{<&4C;ñA„´‰ßöÐza{¥Rn6k놺սóÁï|€é¡ÌB…B)Ïp\†ê`âñL2™å¸l2™ã¸l$’ŒÅ2‰Dšç³™L!—+Ò¤Šá$F¡k4 *,3™t :³Yçr™<³ËÅz<–†=Ëjfål€:Õj5âëB2Êφ7fD‘À©ôöF;;{Äåh^¯ùÒKçR9Ú¢En̶œ÷Þû³D"óÚk÷žãã\}õ¿/[Öüä“·ŽË^M„½{}/½ôþ/¹M¡ÝxãEë×_9ož}ªwj’ˆG²uwz{£Ìy3’m,*•j(Äû|±„ߟðûã>_Üï $(dÆ`Pel&ÇìõZ<Sc£ÅfcÏÛÿ·s‘Ï—‰úàM\¯p<Ÿ¶W©ä&“vxÒF5pF£Öå2¡Ê`j!T€ƒã2ñx­˜L´œN$jk‰ -g³ñ'ÊdR…B&‘HªU¦\.Ó%ºD¡ j‹Eg6ëívƒËet»M^¯Ån7P©™Á€£V8_”J•h4yòô2þ䋯O4fT*å.—ñTEfN'‹KÝù|iÏž>JÑPŽ6%J¥ÊÒ¥á ŸX¿þ£çøP/¾ø×¯ý7;w>j2Mëßrápòõ×;Ÿþ½PˆÿÈGæ¯[·úškŸo­çFɦөæÎµ‹c6\áÁ0L±XŽÅRÁ ßÛOn;z4”NŸ˜Ü&šÙÆ65Yé&þ⟣\®8b‰›¼ &’Éœ°ýèÁ›Ãat¹Œ(ô˜8Õ`*Ñ1¤•ч8*¯ÿÍ’H$ƒZ§SªÕ ¹\Æ0LµZ-ʹ\!•Êg2µPM*•44ìvƒÓi´ÙX—ËhµêìvÖf3X­z‡Ã¨×«¦æ•LžÏ…B|$’ …’á0¦.ME£©`FS¹\‘¶T«V«Þn744,Ífhh0X­:ú²XôV«³FÑ×ݺµ§«Ë·mÛ±ýûý¥R¥¡AÙeóV®lio÷.]êÕhξ !œ©íÛÝpÃ÷ÿò—‡æÏwœãC¥Rù‹/~ôÁ¯ýÜçÎ5Ÿ›ÅbùØûÜs›vìèmmµýÃ?\qÇ—ž·ß{étþèѳíÝëËåŠÂH¶ œmm΋/žc±œ/#ÙÆˆã2BÆ&ŠÜ8¡±¡J%w:BÆf·³tÓë5ÏÊÙ~S‚šFIKB $ÄRð&.qPðæv›P pvªÀøæxU•eéêËS•¼¥NcL&­V«Éä2“Ï—‹ÅR6[L§ó—ÇÓ<Ÿ>W¸HÓá`é¸Q¼ŒKá¼’NçƒA>I†ÃÉPˆFÓÁ '£Ñd ÀG"IáG§S9lCƒÁá¨eÌ6›Áf«Åf6›A§CÞ pf†—£)²eËš¨©cGG ÊѦÐw¿û_¯½¶µ³ó«ãòhÿò/¿úË_mÞü¯3¨ð«««ãÆwßxc§V«üÌg:î½÷JÇ<Õ;5Å„‘lÝÝÁîîÀŽÇc1Œd;ù|)àÄEn>_¼\®0¢É©u‘[c£å\F©Œ¼ÑB,–%x„&‹ÁÀpÕà ¤Rùx<§ãñŒøßD"§‰L,–¦afâÏR«&“Öl֙͵-ɤ3›µ:ª\.çr¥T*ÏóÙH$å÷Ç.H„BIút•Jn·³‡q¨à¬ö¯ËejhÐÛl†©øŸ˜lår%©ïÍ(žm&üÜI$»Ý Ê›k§HœN#õkB›&€ñÒßÛ²å(•£80P,–­Výå—×ÊÑ.¸À‹ÇÓħ?ýÃÆFˆ ?.Öݸêªíµ{W­j—œ4Á ÿòËï¿ðÂ_9.sõÕ‹×­[=ã^„q$Ëj,p 1Û¼yvT_î¬;IΙÓÀ²š©ÝùÙ­P(E£©h4'£ÑT,–¦+±b±t,– ‡S‘HRhøÁ0ŒJ%·Xèº+½Õª·ÙèJ,Íf°ÙX«Uoµêðãç!„jÀT«Õ¡x,M©X,–¦-!-£ðL|m£T*1›u¢´L{òMÅ¢3›µ&“¶Ze(*ä†23Îç‹Óõ’ôhV«Þé4ºÝ&·Ûäp°™‡ƒæ3KÆK.WŒD¨ c2¢R³•šE"©`;¹¯©Þj58,– eg zêí3µ¯`¶*J»w£m†ÉåŠ þëw¾sËg>³r¼󦛞²Zõ7Þ=^8™ …Ò›oîzæ™?80¸t©÷Î;/ÿô§W ¸8žÏ<8(ÄlG†ÊåŠB!ki±QÀ†V®g $§¿\®¦Âád4Z; …8Z¸h4‹¥„CB‰„Þ‘êéJG«UOoG--X­z• ÓÝ`¶A¨0›QZ‹¥…ò2!-ÊÏjÕf•ʉ?’ŠÉ¬V½™LZ³YKåe”–‰‹]Êå …dÁ ß×¥:HÚŒhµJ¯×âp°ÍÍVq«FŒ7‡ó„ðc"4á¡“J´g …ZoF¹\êñ˜)««6C_S€ÉçóÅ?øàˆ¸ÍbÑ}ä#ó©mÉÚ¥Nsýëá[nyzûöGÜnÓx=æoìü§zeëÖ‡]®q{ÌÉ×ÙÙóüóïýþ÷]‹î–[:Ö®]åt">¥b±ÜÓ¦€­««ß>6[ ‘l 8ÛÚíí]Ôlµê§zOgt’œYòù À·L¿ÅDRô…cF©”Ó‘#½§5µ&“FüÎÓÝ`ÆA¨0Sñ|.æ…xŒ>¢ÑT]Í™ø÷¼F£¤<ÌjÕ[,:³Yg6ë,­Å¢·Xtôa6ëF9__.W‚AÞç‹ù|q¿¿öáóÅ}¾8µs‘ɤ6›Áã19&—Ëèv›].#-8,Ž—`Ö£k{ƒA>âé_¡Oc0Èg³µR3™LJðÒH3¡¯iCƒÞá0Úl\Õ 0…†—£I¥’ .ðRŠÖÑÑŠK3ˆ |íµ­[·><ŽY,–W¬xìÎ;/ðÁkÇña§Äñã‘W^ÙòòËd2ùk¯]º~ýG/¾xÎTïÔ @#Ùº»ÝÝ®.ßνÑhŠdkks¶µ9ÛÚ3höÞtƒN’3Çe^ñ¹Ï}t|y` qÉ%_úé;¯¿~Ùø>òªTª›7Þ¸ñÝwÞÙo·Ö¬¹ìî»WY,ø‹v60’mJœu'ɦ& ¾ÓJ.W¬«o£Ò7!„¿-ÞdÒédÅ¥oV+.ý€qƒP `œQ—’P( ò4Ï9I…B<•šQœ&l,—K)³Z 6›ÞjÕ[­z»Ý@ ›Ë¥ñÙlA¸„óøñh__¤¯/ÖßËåŠÌPUÍPÍÙ‰1¥f¥b±LQY8œ¤Øl` 'o [Òq¸ÍÆÒa¹¸U£ËeÂOÀŒ‰¤>øà5uüðC&S0™´+W¶P9ÚâŽåh³Í±cá|ä[ÿ÷ÿ~~"ZÞ}÷ó©Tî—¿|`ÜyÊõô„_|ñ¯?ÿù–R©rà Ëî»ïc‹¹¦z§f¶G²ÑlmmNŠÙ–/onhÀH¶ N’³Ò5™¤ÈM\ß&á<3ÞÀ!T8cÑh*I…Ã|0ÈG")Å %C!>IF"'ÎÈk4J»Ý`³± z§“¥IfâR³‰˜d ò½½áp±·7ÚÛ …’t¯Õª§cÅææ†ÆÆZxæñ˜Qy³I¹\‰D’Ô›qp ‡ùÁANX‡SÂûŸ¡ËWëtÖþª6c1Ø `¦C9üÇlÿ_ÿëµîîÿ"~¥oÚtðöÛŸýïÿþòÂ…³3pâùÜë¯w>÷Ü&Ÿ/¾re˺u«¯»®Ý ÇE¹\ñùâÝÝŠÙvíꥃÉFÃØÚÛ1’m “ä,vº&“ žÏ £É$ŒB5€zÙlº½QN¦¹h4 ñT|&\ï¦PȬV=5|³Zõ.—©¡Ao³¨U£ÓiœÐù+<Ÿ=~ü¤ð¬¯/ê÷ÇK¥ Ã0ƒº¥ÅÖÜlÿšš¬n· ³1`vH¥ò~|øl3ú—ú—2C-LéÜ]t,^6µSû*`"D£©÷ß?©ÍhÔvtÔR´eËš õTï#LžG}ãý÷üñNăW«ÕU«¿òÊ…ßøÆÿ˜ˆÇŸ&*•êŸþ´ãÆwß{¯»¹ÙºfÍekÖ\†¿¡ãŽF²uw tuù†F²©,pQ¯È œ ºp%ܤA'ÉóÁ©šL ¥oâ&“”ºÒd²¡Á€ËÎÕà|DÍß¡Prp0 ò7TÈ’H&O\­fµêô6½EÖ;Ɔ=µ€kh0LZ{–l¶ÐÓ>z4ÜÓ¢üìøñH0ÈÓïp“‰•4áYs³Õí6á =Ìt‘Hê伸g#åÇ ÃhµJ—Ëd³Ün5f´Û ´Æå2â¤À¬7¼M"‘ÌŸï ¦ŽííóæÙñ7ñ¼uë­?òxÌßýîmôøÏ<³é{ßû¯;;zïÛçÿÙÏ6ÿêWÛåré7^´nÝê¶6çTïÔ¬Å󹃨WdwwðÀb±\7’í‚ ¼çÃ7Þt3¼“$ºù|±L¦@Û “ä¬Áó¹p˜§^5Á ‹¥¢ÑT ÀÓd‡PˆO¥NLC×h”Cç ôN§Qt®Áéd hƒ0; T€Y‹:4úý êùFW&B¡“š¿Ñ 3·Ûd³±t¥¡Ëe¤áIV«~òëº*•ªÏëé =:z4tôh¸§'<0¨V«R©Äëµ 5o<‘¢áØ f®b±pGñ¶ßùÁÁÚÍB¡Vp¦V+D½k]®Úì„–„Àô4¼e5—\ÒŠr4¨³|ù#÷ÜsÕ½÷^9AÏóÙåË}ì±׬¹l‚žbº‰DR¿øÅÖ^øk0È}ä#ó×­[}Í5‹Ñm¢Õd£ß{u#Ù–-k²Ù S½§ç5ê$)4“"7ŽËÐè$9ûäó¥H¤6O]©ÓlˆT0ȉS7–ÕÐÕºv;k³†šÜP䦷Z r9®˜ªÀ V*U‚AÎïû|q*5 ¹@€Á /4iÔh”n·Én7¸Ýfñ‰x:A?…T*•j¬¯/zèP »;ÐÛíîPï~©TÒØhij²¶µ9,p67[ÛÚ‡qªvà\ð|np0!Äf”sÓÍp¸6íO*•Øl§Óèp=“Ãat¹ŒB†äÊåʇú;;¡ Æ.O/Yò•W^¹çª«Nܳ|á ?ß»×÷Î;_š¸§˜†ŠÅòþ°÷Ç?~wûöc--¶»ï¾âöÛ/EÕÔ¤©ɶ{w½§r8ض6§³a$Û4Aïýþ¸ßŸðùbýý1ZÂ6–Õx_ÌïOô÷ÇB¡ZŸµZÑÔdõzky›×k¡¼Íá`§zßaÜ ¥x‘H*IŠ[JF"©P( Õ†½ §vÕjÅPKÉ“àN£Õªs8Œv;‹¡nã¡L¶\®Hýý1:Nˆ $b±4m V+<³Ûmr»M^¯™–].Sc£E­VLíΟJ¥Ríë‹<8ØÝÜ¿àðáÀ‘#¡b±,“I›š¬ :ÛÚœ ºZ[m­­6»Ât–ÍüþÄà`b` á÷Ç©OãÀ@bpn…Bf³Ün³ÓIU¡&‡ƒõxÌër™p¨g$Ooß~R9šF£\±bNGG FÁ9úæ7»iÓÁ·ß~p¢Ÿè¿èüò—_ß±ãÑó¼W[¡PzóÍ]Ï<³éÀ%KÿùOôSOO=Ï?ÿÞ[ou™LÚ[o½ä˜Ðœp‚A޶®.ßž=}¡Ð#ÙæÏwà-ßLAa›Ð€Àó|Ž6Â6êõBõm--¶i2+&N>_ŠD’‰¤.IÒ÷I4šä"‘¤¹)2«UO‡{v;ëp°V«Þå264èQè †P ÎU¥Ríï¯ÅfÂÛwqÛF–UÏ™cSÐÂ̺*‘ÈìÛçïî<8xð` »{çs‰¤±ÑBùM)˜?ߡѠÛL<Ÿ=~<">´êÑ¢[#ËjæÌi.bÚ6:F2À8—£80JåÕjÅÊ•-Tކò˜ ŸúÔ÷/¸ÀûÍoþIx®¯}íÍßþvÏk¯Ý÷ê«[^zéýd2wùåóõ«û'á©§­¾¾èK/}ðÊ+¤Óùk¯]ºnÝê•+ÏDZs3BÝH¶#G‚•JUüL1Û…6áýáŒÃqñl…¡°-ÂóYÚ€Â6ñá@s³uΜ–ÕLížÃ¤ÉçK‰DZá râoc,t3µ^¯‘pž@¨g¦X,;>r$ÔÓ>z4täH°§'×:7:lc#Åfz;ÞÔdu:3î Ç@€Û»×·oŸß>ß¾}þþþÃ0^¯™º8Ο_«ECÃz˜rÉdîØ±°œ8çÌ`P·´Ø„Ce»u:”Ÿ¡#L”£Át°bÅcÿø«î¿ÿcýD•JõÕW·üÛ¿ýªTªH¥R£»d‰ûí·¿4ÑO=ý¥Óù_ÿzçóÏ¿{èP ½½qíÚU7ÞxÑ ººîüD#ÙD1[>ÒH¶ œK—zM¦i7ÙƈÖ]K‡´Ñ¨NžÜfœÚ=‡ÉGÑ,ÇeÄÁ-p\&J ç–U*¹Ói¤ãM»5™N Þl6vÆB5M$’:|8ØÓ:z4täHèÈ‘Ï+•* ø\¦¹sísçÚæÎµ o²gè újµÚÛÝ»×'i‘HJ&“¶¶Ú–.õÒÇxY1`Ê„BI¿?î÷Çk£ÎhæY8œ¤3wR©Äfc½^“Ëer¹LÔ³Ñí6y+J‘Hjp‹F“ó¡P2ä£Ñäà ‰¤ …Úq®J%J܆ŠÛŒv»ÖX,º©}!bÕÎ_ÙláàÁÀþýþ?ôïß?xàÀ@2™cÆí®• Í›ç˜;×>w®Ýã1Íô‹ÎŠÅòþý{öôïÛçÛ»×wðà 50Y´È-Ô¢-^ìÆ˜<Ÿõûã>_Üç‹ùý Ÿ/N7C!žþ.+•rÇìñ˜=“×kñzÍÙë5»Ý&¥ߥ0•8.CM;;íÞÝ—LæN.Gó¢1LG†V­züOúÒ¢E£e6ç¢P(ÝvÛ3;v++ÃïU©äÇŽ}g‚žz¦K&s¿øEçÆïöõEW®lY·nõ'?Ù>bÿÃþé‡?üï×^»·½½qò÷ƈã2‡„˜F²éõªE‹ÜÉ6»q\Æç‹û|ñþþ}ø|1Ÿ/.Ô'™ÍºÆF‹×knl´ˆ?0| Èð‰nâeqoI¡%©PÜ&,»Ý&\` “ ¡Ày$à>üp`(E8v,R.Wô‹{–,q/^ìnksÎkŸ5sÂz{£»võîÚÕ·kWßÞ½ýù|I£Q.^ìJÑ,pâLœL¦päHP˜v&ôNF=ËdR¯×,žO tP™¡T`zŠDR gßc­Z­vw×ÊѺº|G†ÊåŠ×k¾ôÒ¹T޶h‘OaÚ¹³÷ïþî{Û¶}Õã1Oܳ¤RùO}êû‡‡«I$’ÞÞ'P¬9ŠJ¥ºys­'dc£åÎ;/»ãŽËÄÀJ¥ÊŠ…üZ­xé¥õ—_>o ÷Æ.•Êïßï¯É&—K[[ííí^ŠÙV¬˜c6£ôdÖJ&st¡¶Ñ‡¶Y,:!`óz-–¦&Kc£E£™%§#`\œ]äf4jNV¨{ózÍq`|!T˜µŠÅrww`ÿþýû>üpàÃýñxšŽd-r]pgñbÏâÅîÙÔø>“)ìØq|ûöã»w÷íÜÙ¦¤RɼyŽåË›–/o¾øâæ \8¯ãNÜÿ¤·7*¤hW;bÔéTsçÚ…AßBŠf±èq&T2™ûö·ÿ‡?ìݾý‘3úÄáåhJ¥ü QŽ3ɦMo¿ýÙC‡7&v,n4šºîº ƒƒÜð\mÿþobHÌX=úÉO6¿úê©TrÓM­]»zÁ'Ã0o¾¹ë^ªTª‰D*•üð‡kn¸aùTï,œ±R©rôhHɶoŸ?O3'dkks67[ÏåY¾õÖÞ{î¹õpÓY±XH— “ÛNÕFR|âTï;L;…B)?eä'雊ú¾b6qäæñ˜gôp˜Õf•žž0ÕfíÞÝ·w¯¯X,³¬šÂ³Å‹ÝK–x.tͲcŒD"³mÛ±-[ŽnÝÚÓÕÕ_*UìvÃòåÍË—7_tQó…6Nôi8¤ÓyñU–Ô³Ñï‡ÃIÚ@­V46Z†·mt:Ï`òýîw{zèW±XºZ­ž¶XgÄr4›Ípé¥sW®lA9ÌD¿ùÍ®x¹¯ï‰Ihc~üxäoÿvÏçÊå“ú@nÝúpc£e¢Ÿ}Öàùìë¯o{öÙM‰+®˜¿fÍe?üáïÛ磳¢ôe|üñÏ|ö³—OñŽÂ9dëîÐHÎsÉöË_nûüç_u»M_ûÚM×]×>aûBÛÆ8³MX0'õÂ…T*f¦àùÜPÌÆ…BIÊqÚr6[ ÍäriCƒÁé4Úl—Ëh³Õ"7—Ëd·³6›~Z C)—+2®˜zÕf¶|¾´sgïûïÙ¹óø®]}‰DF©”/]ê½øâæ+ZÚÛ½MMçt¹ßô r[·ölÝÚ³eËÑC‡Õ*3¾£££eåÊ–ŽŽÖs¼Â “)ô÷Çúú¢CíJâ4 KÓ&“–•x<æ¡Íäñ˜­Ö³ï®0Ž~éK¿Ø¶í¸DÂP…ǸæÆ/ªÛŒç³tIJgç±={úx>§PÈ–-k¢¦Ž-¸*f´Ÿÿ|Ë£¾yèÐã“ót{öôßtÓSù|I|ˆ=¡Ýf«|¾ôÆ;7n|÷ÃýÃï•H$÷ßÿ±û·¿›üƒ‰3âH6jö ŽÙFoþÈ#o¼øâ{år¥Ze::ZüÓøé› …Òà Ga›·õõEûúbôËvİmΜ–ÕLÄþ|á ?O&s>xíÂ…®‰x|˜4Åb9KªÊ-I WɈ«ÜhXÃTÍrK¥òŸøÄ<ð±Ï|f%F­L-„j3O¡PÚ¹³wóæ#[¶Ù¾ýx>_²Û ­_Ïó,V(Tm^ÇãqsçÞºõÝ7jÆz‘ÖViii£:Í–›[#‘ÈÛ Éççìü!Ù&NÜõôi6M àU*ôÝwû¯[7ÉÍÍÞûzX›d›º?Iu²M=ÂÖ?“m2¹[=ÙL˜°ëÙ³ ;6rõê±Z3W­­Òúz^c#¿¾ž‹µlc±øê¶n‰›ÍÒÒ‚J%»»;`96W¹7ìE½w›TRÒ8tè×8âìl·lÙÈ9s’`¬8Œ’jôUUì[·^ÞºUðàA‰X,óñqIL 80 110 €bìèzDmmËÇ%–<~\VQÑL$bc}4(xÀ?3ëÇôŽ’g <©T óöv†äÀ ܽ[´zõ©†nû{Ð~~®ÑÑÞOŸVÔÖ¶àp¸€J\œo\œß€þt:º‘fé÷ß}ù¥áZªaΞ}ºbÅïê«ì#G>5*̘ÆFA\ÜÆ6Ýiªáñ¸‰ûïÚ5 ÎÖúõlL&‹Élxö¬ë@B=$îL?~§H$Ó\ÐÂO à—-¹lÙ(¸xì#¤RECÃk’mÒö¿á®ýý)ÌDE­on baW(TIIAëÖMˆ‰ñéÙ½&FÇXnšc«#ÿLîb‰7uC7 …ü¦†Ü»Çœ1c/6ma·° ¼÷^Ò²e# o ’j˜4EŸ>­øóOÆÍ›%%d2iذ#B‡¥{x8;º!‘È=*½sçåíÛ/‹‹Yø¨(ïAƒ‚Ž÷‡ÇçšïCò Ч47 ?ÿüÌåË/°[<íg ð‰‰þññqq~qq¾NN¶íçÀÌ?þhÆ Læ7ÞîŽ×¾û.AP<ùé§¹“'·íytÆöí?þxCÝâ¶= |rrȯ¿.ÐÝ% 0?XŽ-?¿6/¯&/¯./¯†Ëé˜Çyz:®[7q„ƒ LMûd›º3Il­É¶€7ÍÔd2…¿ÿÍû¨D"^.‡Ôø‰DÞ¾?Il¢¾ž+H°Ù,--œœl4Ólm¦Û¯ùÔ©'ÿùÏql”AŒ…AI“bþóŸ1þþæù´=¦ ’j˜¨ììªôôìK—rêê¸ÁÁԷߎ1"4>ÞßÂÂ<Ÿ%/)i¼}»ðΗ™™¥‰< €2lXÈС!ƒé½É<èíPmhàa—C••ìÊÊf¬Wý¦&6™lM£9{{;ûø8cƒŸa?=Ô±>‘J…t(}èÐoogcGL‚D"ÇÒfêüYe%»ªêÕEŽ¥¥…³¯¯‹«¯¯ËßÉ3'côE7nÜ(++3vÀ 8Ù¥Kõå庞ÐÇȈnƒ»èqë£FÒã Я'¯[w¾¸¸‹I5±XÜÒÒÒµe ÕÊ•ç23ËW¬6o^B×VÒI$ÉÉÉ©;kèΞögϪ¿úê—+ emz€$ðA¥ÅþJýùçéÝ' t“§gw¯X»Y÷ïðÛou?\‚Çã}ï½øý+ÉÖ± CüêjNuu‹f¦ÅâµébT€W*UIIë×O¢P +ðÆ Us³°±Q RY©Gqú54ðy<‘ƒƒµHÔáStD"A¡P½õV¿•+Çxx@n`PNNN$RßzŠ’j˜©Tñ矌“'³îßg’ɤɓã¦M`®½ÔֶܼYxófÁýûʼn<"‚6ztøÈ‘aQQ^0¦KŸ¥P¨jk[ÔÝq0™ LfƒºçFïåå¤î¹Q=É34MŸ>ýôéÓÆŽ‘H!“ß²°pÅãÕwU‚"AڎЀ¢*©´¢¥%]L›6íÔ©Sz\!úõ矌?ü­¢â»®õóÜØØXPPÐå­K$Š-[DE¹MŸÚå•t…B ïκ¹§=M"Q´¶Ê…B™Pˆý– …²ÖV¹@  e|¾L$’;9Y/[G&[½~u g >¼›kèf9ܶíÑ‹¬Žîo©±‚øç>Š¥PàRh×Qy>v,óÓOÏt4Ö#Ç¡(ï9eJˆ·7¹GâæNk ”Hä üë¯"Ñu'‡Ã!íöÎ;t:žVæææfì( FjÀ˜P½¿8--óÚµ<• MI‰<~üÿ 2¿Ü’L¦øë¯¢ë×óïÝcVV²ÉdÒÛo‡ïÜ9kÈ`Ö¥¯áó%MmF>««ãbÏ[ÙÛ[ûûS|}]ÆQ§Ð`Ø3: ’}Sk«´¶¶¥®Ž[_Ï­«ãÖÔ´TT°kk9,«Zñx‚<<"9œ‹úÚèôéÓõµ*zˆ““-Š¢\®ˆB±ïòJº“*4hÈåË9Çìò^+??__«ê~RôMúMÊv¹®Xq ˨YXà-,2™B¥Bq8…bL r  ºP¼¼œÍuHÐ}ºËsUkަõ¿x<ŽH´Jåx<®¦Fðè'9yŸŸk ÌŽhmMljâw”QÃákk¢D"Çá:ÝJ%YY9ÇÇ'ÙÚÂã& ÇݹsÇØ!$Õ0ŽÊJvZZæùóÏê긑‘^›7¿;aB´ù5»áñD·n½¼q#ÿ΢––Vww‡Ñ£ÃG KN¦ÃˆâfO©TÕÔ´´ º²’Íã‰ÁãqÞÞÎX›³¡CéÐø ºÌÖÖŠNw×:‚‡ÓªÎ´ÕÖ¶…R;;¸´}…““ ‚ --­ÝIªu™l=kV¢Q6 @ŸÒÒÒÚÜ,°··öósí×ÏK¡Püý)pÕ ô¨¢‚­Ùó‡‰2™‡ÃùúºÄÅù&&ÆÇûºÝ¿7,,ÌÍ 2j@Ÿxšx/“)lm­ LN¦‡†z‰„;wî„……AF €žI5 J$’;÷ìôé'ÏžU89ÙΜ™8uê€sG”Åâedä]¹’›™Y¢P¨¢£½?ø yôèðˆÖ˜ŸæfaYYcyysyySyysYYSU[ B à==}}]##½Æöñqñóƒü‚³³­³³mx8ÍØ`ÎÎv‚p8­FŒN}0kkbnîf;cÌ\ee#‚ D"A.WÚÚZFEùÄÇûÅÆúÆÄøP©ÐÓ#èY …ŠËi&Ò 800!! &ƺöÀÀ ©€!`Ý<ž>ýäÚµ<‘H6vlÔ¡C biiVßÁòò¦+Wr¯\adgWYXÚ¼ùÝ1c©Tc‡ô‰ÃiÅ’geeMX ­¼¼ ËŸYZZøúºP’“ƒ}}“üü\}}]h4'8Àa-Õ¸\‘±ô,É’D²|ý|t‹‹ý¼yƒbc}cc}ÝðxxlNs³ÀÍœàŸ˜8p``Hˆ;”@ŒÈ¬nè`‚§Og<™URÒê±zõØ bÌé!&…B•™YríZþµkyÕÕ*•<~|Ìš5㬬 †éÝT*´ºšƒuÛXTÔÀd6h~fggàF§S'Lˆ†Î`jˆD‚««]u5ÇØ0ÇŽ}dì@ßåîîðüùFcGxnyÐ#T*ôþ}æï¿?ÎÈÈÅãqãÆE}õÕ”Aƒ‚ÍæAEŸ?¯JOϾr…QSÓâéé8fLĘ1IIAÐ&©7BQ´ªŠ£öŒÉl`2êëy2™A[[«À@7__—„:Ýògèètw&“eì(æ’jèY]÷ĉÇ'OfUWsbc}6mšüÎ;ýÉdkcÇ¥7/^T_º”“žž]SÓ@™2eÀر‘‘‘^0bD/RYÉVçϪªØEE ••ÍR©AÉ28˜êëë2~|Œ¯¯ N q‡üz#:šŸ_gì(æoì0"‘,--3%凾9eÊîØØII[fÌØûÉ'§/\xÞÒÒš˜ðÉ'ÿïСþúëÓ­ÿÙ¿ÿýµkÇÏ™“”5ú¦’’¬no?¡CUUÕ‚ _'¨ƒ …«W¯ö÷÷'‘HÁÁÁ6lH$oº¶Îì~]]ÝìÙ³ýüüìììâããÏŸ?ßÅÐõ‡Ã•””; Œ&8˜Z\l*-Õ:S€NÒãáF½ªª0õr ê>8ô„N–ÃŽN¥4Ëž‰DîöK8q§Öð´Vq©÷Z[[SSS£££íííããã¿úê+…BÑ~7u‡jÆŒ{N®—#W—‹zçug7‹J­¶w«Â6àª` ¥Ý••UvæÌÓ‹³%yJJäÚµã6Ÿn‹Š.]ʹx1»´´‘FszçØ bcc}ŒÐŽÏ—”4–”4––6––6–”4–—7aC ¹ºÚSýý)#G†ùûSüü\(0î #ŽŽŽŸ|òÉ›.uáÂ…wÞy§››.++KHHhnnîæRê`–/_^YYyöìYooïÂÂÂ+Vp8œŸ~úéµÒœáµo›ÍŽ0aÂÉ“'ííí¯\¹2kÖ¬‹/Ž3¦;{ÑsKкq¹"6[èâ¢å¶léè+Ùµzh¥—ÃÞW…iS::éq‹ÀXtžÎœBh.þðáCAÁÖ­[g̘ñòåËŽîÛÖÕÕ;v¬²²R?»Ñ±I“&Õ××#R^^>hÐ lA}mB $$$P©Ôo¿ý6 //oݺuׯ_¿qãFCCƒavÓÄþœüN€ß4˜7*ê]gÅzW…\màv*]Äá´?þèôé§LfCx8mݺ‰&D›M›žæfá… ÏOŸ~’›[C¥:Œ½cÇ̸8?xºÖtˆÅ²âbVQQ“ÉÂúr¬¨hâó%‚ØÙY…†z†„¸O›6€Nw§ÓÝ==a¬;Àquuýæ›oÞt©k×®>}º››V©Tl6»ûK©ƒ¹páBFFFÿþý¡P(?þøãܹsúé§×nHs†×¾!6lxë­·8€ýÖÐÐðý÷ß¿Ñ哾ö€ §áp¸œœê‘#C ¶Ñ޾’]«WVz9Üè}U˜6 £c·ŒEGáéÌ)„æâ ÅÝÝAww÷mÛ¶Q©Ô¦¦&777­+‹Å‚øøôø£®$‰D"!" ±Øô¾‰M›6Q(”›7oAètú˜1c""":4|øpÄ »iâ NþF'ÀoÌõ.€³b½ƒ«B® 6Ðý#oEÑ{÷˜}t¸ÿ?ÿ|+9™ž‘ñŸë×WÏ™“d5™Lqùò‹÷ß?·ñ›oþè×ÏãÔ©ÅÏžmؼyò€þQ3E++Ù÷î1¸»fÍ©3öÆÆn ü$%凕+_¾œ#‘È““é_|1ñÂ…å……[™Ìo.^\±mÛô¥KGŽîëë5&==F£µ´´ rüøq:ÞÚÚªR©vïÞjooŸ””tûöm¬wÕþåË—cccmll<<<ÔÍÍͶ¶¶$I¡PlذÁÇLJB¡Ì›lì(¤ IDAT7Ëåb3p¹Üùó绺ºzyy­^½ëm‡Ã;v,44ÔÙÙyÛ¶m‚ 8Ѹq#—ËSSS©Tª››[jjª\.׺m–Rƒ ™LÞ³gúcèСØSÏmi¿Sš3¨ßŽöîìÙ³ÿþ÷¿5ߥ 6üú믆ß÷6®]»äääôõ×_«wäâÅ‹!!!nnn+V¬J¥Z_ìèÓ qq±ë×Ïãþ}fÏmâÒ¥KQQQÖÖÖGE´U7oÞôññùí·ßÔõjû¯?Š¢ûöí #“É#FŒ¸|ù²I{k­|mÕ”æ.ß¹sGk…Ù~)DÛ;ÙQ}«Y÷_ ÑVŸw¿æª4µÿ€tTžØ"êé6urGÇ DÛ¡Aë »ü–¶a‡Ó,‡¯-ZÏ©:*{‚‰DKKK‡ŽâÔ}ÜoCë9›Ö/Ò®¼éj9vìX`` …BY¼x±H$Ò\Dëž––¶~ýz,£†±µµMMMMKK3ïÓÜ“wt Ò\§îÓÑ6s>«-úíÚµ<©Tnì¸ú(±XöâEUzzö÷ß_Y´è·1c¶‡„|æáñ±‡ÇÇAAŸŒ³}ùò´Ý»o¤§g¿|Y@mÚ´iÓ¦M{ílóæÍ{ÿý÷¨TêãÇQÝ¿¿››Û¹sçêêêþøã///AŠ‹‹±Åö|>ßÒÒráÂ…555iii‚466¢(zðàÁ£G¢(úÝwß…‡‡3ŒÜÜÜÄÄÄÕ«Wc›~ï½÷FŽYZZÊ`0"""6n܈¢(‚ S§Nmiiùå—_a³Ùê a¾ýöÛ)S¦TUU1Œþýûúé§Z÷¢ÍRê`P½zõ*F³²²=zôwß}WQQ½®¹ˆÖÒœA=­uï°ë‡ÓÑÛnÈ}ׄ Èøñãù|þÙ³ginnÆf~ûí·™Læ£G‚‚‚6nܨõEÝ©“å £[¿þü¨QßuaA‹uûömÝó…B++«}ûöÕ××ÿúë¯B¡°}Õ1vìØ[·na#Ç`¯·ÿúÿòË/4-##£©©éúõëAAA¹ZÏËËËËËëÂÞiêÌž¢Ú*T[5¥¹Ë7nÔz8h¿”Öw²££‰º†×ºTG)­ñk,°cŸzZký¬µòÄi¸Ätt Bµt¬ðMßÒ6_Ï:Y~^«÷–Ã×­/¶){999@ ÔÖÖ.Y²dÁ‚ê]îhïÔ3h.ŽQf­_­»‰j+$êM´Ù¢Ž³¦#F¨ O›PÛïvúÔÔÔÔæS~ðà•J5Êé¾ÊóíÛ·Y,–îy pNÞÑ1Hó½Õ}:ÚfÎY³fñù|¬ ÎôéÓù|þþýûÕ¥EkEÔ¢ÞɃ¬Ö õ5+vñ¿¶’×%® ;Ú»>xUˆv®¼™Hªðz•.YrÄ×wuxøÚ ÎÖ;"½a±ø»v]xP|ôhfFF.‰Dœ<9îÇßëßßרq™?¹\Y\Ì*.fÖ³ ë««9J¥ÊÂïååL6,dáÂäÀ@·  7;cÇ 0CŽŽŽ‹-úòË/¯_¿Ž½RVV£ž!**J÷,--™Læ‡~( ccc±…B¡\.wrrB¤²²288{=44444A‹¥T*±×ƒ‚‚jjj°iOOOAˆD¢ÖÍUTTxxx¨ÿĺˆi¿š4ƒimm½téÒ´iÓ¿øâ‹ 6¬Y³föìÙ¯Ý)­´î““•J-((4hzÎ'Ož,Y²ä¯¿þâp8Û÷ö°Màñÿèõ]½ ýúõS£õEz»„„A²²ÊRR"õ¾r''§Û·oïܹsÆ ýû÷ÿì³ÏÆŽÛ~¶~ýúµ±Í׿´´4""Býß°°0½GÛMZ+­Õò÷.k­0µ.¥õÔº¸f ¯u©Žêóöñk®ª=­õ³ŽzÕ–ÛÐq ÒqXÔºÂ7}K;Ú£Þ~80Ár¨Ik1h¯ýâÅÅÅXûT‘H´~ýú… fffêÞ;MêÅ1ê¾Ú´~tT\Z I{:Κ4 O}}½æ¿Ú££»»{NNΨQ£4çÌÉɉ‹‹Óƒ”gœ“cÚƒÚTݧ£šìííÕsjNcÚÄÝ,ê¯=Èvò×Éø‘7)-P¸*„«Â¾ ÆT -ôïQÓââ6îßgÊ”¸¬¬uû÷¿ŸœL7ƒŒZmmËÖ­—û÷ÿrÆŒ}\®h÷î9¹¹[¾þz*dÔz‚\®,*jHOÏùþûŒ?ü-9ùëÀÀ5£F}·lYÚ¥K/™4)v÷î97o¦––n{øpíáÃÿZ·nâìÙ £ÐA&Sðx".WTYÉ®¬dÖ3ÕI§–ª®®Þ½{÷¨Q£V­Z…½B£Ñ^¼x¡ž!??_÷ÄbñôéÓSSSŸ?¾gÏìÅŒŒŒ””lÚÓÓ³¢¢›ÎÉÉÙºu+‚ T*•@ ”••a¯—––Òh4lZ÷½ìQeìq°–––GiÝ MšÁ (:{öìÜÜ\ìO7fÌ…BÑ™ÒJëÞ!2qâÄíÛ·k^Û§¥¥ÉårCî{{ZGAÀBD„Édb×W½@oçèhãó矌žX¹X,V©T§OŸæp8|ðÁ„ °'”ÛÐz‹¤Í×ß××W³ú-,,Ô{´Ý¤µòÑZM!ïrGfû¥´¾“Z׬áµ.ÕQ}Þ>~ÍUµ§µ~ÖZObÇ”ÚÚÚöóë8é84h]᛾¥íƒ1à –CŒŽbÐžŽ²gcc3þüüü|õEg>ÜŽhý:訸:9”£Ž³&ÍÂãëû› Zwä½÷ÞÛ´iÖrÓÚÚúí·ßêønêµw•gœ“c4AZ êkÓ¨Ôþ#îfQ×QVßè×y/-P¸*„«Â¾ ’jü‡ÓúóÏ7““¿ž9óUÂéÙ³«V¥xx8;4=xü¸lÙ²´Áƒ¿:zôáÿûQ7n¤ž<¹x„"‘ðú…A'ˆD²¬¬²´´ÌuëÎϘ±76vƒ¯ïê·Þúöã¿q£€D"Μ™ðë¯ 33¿(/ÿîÁƒÏýuá'ŸŒ›4)64Ô>ÌŠ¢<žˆÇ{•ëÊÍ­a0ªïßg޻Ǽ~=ÿÒ¥œ‹³ÓÒ2ÓÒ2÷í»óóÏ7øáêÖ­—·l¹´fÍ©5kN-[–öÑG‡.<8cÆÞ3öŽ·#%å‡áÿMJÚ’°)4tmhèZŸUžž+ýüRCC׆…­MJÚ’”´eäÈm))?””¼þh¥R©.\¸|ùòãÇ߸qãÒ¥K‚,\¸055õâÅ‹ Ÿ~ú©î•H¥R™Lfii)‹7lØ€ ˆ@ ¸xñâ¤I“°æÎ»víZ¬S²eË–aã?‰Ä3f¬X±¢¼¼_¬÷5ãp¸·ß~ûìÙ³|>_&“‰Dì_mªŽ×Zºtéš5k®]»Æf³±Q :ywÛ0:ª|ÚWSšKuTa¶_Jë;©uqÍ^ëRZës­ñk®ª“ÚÔ“ŽŽŽ‚9r„Ïçÿøãšsb@Ç1Hë¡AÇ ßô-EÌñp`šåðµÅ =ÝeL& 'Ç´~tT\ÝY-ö¯U«V© Ïüùó5—Òº#ëׯoll9rdFFFqqñùóçi4ÚâÅ‹ÛlÔÌʳaÎÉ5½¶ziãMbˆ¶¸›E]kYíÌŽt!xŒŽÒ%°=¸*„«Â>­›ÝG`îÞ-Z´è7lÔ´-[.•–6;"½‘HäÇ?1â['NÜuêT–X,3vPæ@$’¾xQuêTÖ_œ›>}OLÌzl 4?¿ÕcÆl_¾_Ìå¶ÖÔp**š j_¼¨zø°äîÝ¢ŒŒÜôôì“'³Ž}øË/íÞ}ãûï3¶l¹´~ýùÔÔ“üû¢E¿ÍŸ`úô=ï¾ûÓ˜1ÛGŽÜ6pàæøø/ûõû<$äS¬ÐýC£­ì×ïó~ý>0àË7''5fÌö1c¶OŸ¾gúô=óçX´è·Å‹¤¦žLM=¹ysú–-—¾ÿþÊîÝ7~þùæÑ£}xþü³ôô쌌ܻw‹îÞ-zñ¢êÅ‹*&³¡¢¢yÒ¤¯ãê§Ÿ~ŠŽŽ–Éd(Šž?ÞÃÃÃáÈd²M›6ùûûÛÙÙ%%%aùè¢à‡~pvvöööÞ³gϬY³œœœÆ§ÞŠD"Y½zµ§§§ƒƒÃ¬Y³Ô}Ês8œ¹s纸¸xxx¬\¹R,£í†:(..–ËåC† ±³³ûûóâ/X°ÀÉÉÉÅÅeÑ¢E­­­Z÷B½”L&Ó EQ…B±qãÆ¨¨(‰äçç÷É'Ÿ`›n³¡6;åææ¦9ƒz÷;Ú;E+**¦NêééiooŸžž®þ—aö]sUMc;ràÀ___WW×åË—‹Åb­/ê.K0¦èEø|q@Àš#G¼ÑR×ääÉ“–––ýúõ»xñ"úϺEÇÈ4m¾›J¥rÇŽ)))/^¤P(¯ÝºÁÆTÓZù Úª)ÍÝì¨Âl¿ªíl¿xû¾ýR¨¶ú¼}ü,«ÍªºPy¢(ºeËGGÇÀÀÀ‹/b;Þ¦Nîè„vphh¿Â.¿¥†9rL5“-‡º‹A›S©ö‹k~:(Š*•J2™\^^ÞQœ:FjÿJû¯ƒÖÝD;.0¨¶qzÚ¯›çĉ~~~nnn«V­’J¥š j}ÃQ …«V­Šˆˆ°±± ß²e‹H$j¿ÑÞUž_;ÂaÎÉÛ¼‡í *úºÓQÝG®6Óm>b.—ÛÍ¢ŽvPVuÔ“otV¬9­£usñ¾\᪰/\¢}uL5ú†ýÏ`N¸\ѱc™§N=).f%'ÓçÌI3&ÂÒÒLÆlj9òàðá|¾dòäþ‹  õxýb@‰DÎd650™,&³Él¨­mQ(T>0Ð-*Ê+$ÄNw§ÓÝ==¡Ùz¤P¨Z[%R©R,–‰Å2™L!J•J—+R©P@"—+D"™D"—H­­…BÅç‹•J”Ï+ÊÖV™D"—Jå­­R¹\%ˆUª×œùX[­¬ˆÖÖÖÖDKK ÉÒÒÒ‚D"ZZll¬,,ð¶¶ØokgooÃáÈd‡É$Amqp !B&“p8™lÇ㬬ˆÖÖ¯¨ ;¦OŸŽ È©S§º¹ž’’’àà`8E4WZ?ß.|èú*oƲeiÍ—/ÜùE †ÞcAýÃåË—½½½£££±?Ïž=»eË–ììlÝKa]3…‡‡wgÓÞÓ^ÊüŽú:è«ü@9ÝajåùÎ;aaannnÝY‰ùU;¦¬›ï6”@Ðëè«Ð"z*o½Ž™$xSÍ¿ývÿĉ,¹\9qbÌγcc}Œ”ÞpàÞù>>.«V™1#k[`<(ÙµëÚýûÅþþ”­[§LŸO"Y;¨^EÑÊJvAA]AA]^^maa]u5A2™æç7gNN qwpx³îæè]T*T ‹År©TÁ㉰,Ÿ/–J"‘L3U&•*‰X,“J<Þ«T'–É"‘LÇ&°¶_íÓ`ŽŽ6¶¶VZÓ`xìEKlk ‚½=¤´xcd2ù£>êÌ‹˜“ädºŸŸëÁƒ÷¶nbìX´[³fH$zçwššš.\ßJ“b~õ$€9ò º©›¥J èu Ðvtÿú O”––™––YSÓ2n\Ô$'$;(}ºŸ¹cǵÌÌÒ„„€Å‹ß=:7¡±ÍM ›-|þ¼ëÑ‘Á¨)/o’Ë•VVQQÞXGŽXŽB½Ž@ ‰db±ŒÏ …R‘H&Éø|qkë«éö©2¡P"•¾J•ÉåÊŽÖŒ¥¸IXVÌÎÎ ËxY[­¬,Èd’••–ô²²zõºµ5ÑÞÞÚÊÊÂÆÆÊÆÆ›ÍïF_ÝñC‚òzãÇ}öÙÙÇ¿ R:3¯èŒºFÝ?sbRï>J èúfyƒ–jÀü1™ ܽpá9@˜3'iΜ$__c¥7J¥êܹgûöÝa2&OîãFjX˜§±ƒ29*Z\Ìb0ª±ÑŒj‹ ˆ››}t´Ï„ ÑØph R© %T$’bðt×ß¹1™zK’ …R>_,˰™µ®ÓÁÁÆÆÆÒÆÆÒÖÖŠL&YYll¬Üݬ¬,ìíIØàaööšY1™LÂÆ³··¶´´°³³2ðûè×”)¶mËøñÇ&ÛX `ú ©ÌŠ¢7n8p÷þýâà`êúõ“&Oîokk>÷…±tÚž=·JKßy§ÿž=sCBÜ”©‹e¹¹5 F –H++k ¥––ýúyÐéÔ¥KGBC4ÐÓþ·I‰@ ù»Ý˜T$’q¹X>L*Éx¼WÓ­­R>_‚u«Ø~mD"ÁÆÆÊÁ¤™sr²¥Ñœìì¬íí­±×íí­íì^M“É$[[+lÚð»˜KK‹O?·zõÉ9s…†z;@¯I5`†ø|ñÑ£{TYÉ5*ìĉÿ2$‡3Ÿ¾QýãÆÎט̆‰c÷í{Òi|¾¸  .?¿6?¿®  îåËz™LA"Yöëçé5cFBX˜gh¨'™ #07† &Jø|1Ÿ/¤B!–-“ O$HZ[¥XòL(”òxb¡P¢TªÚ¬G3†MÛÙY{y9é·98°QÄŒ²ï€9™:uÀÿ{çë¯/9ò¡±côJTf…Åâ:tïØ±GB¡dò丘__ˆ÷î1¿úêr~~í´i ,ðós5vDÆÑÜ,ÌÍ­ÉË«ÉÍ­ÉÍ­©¬d#âééN>üpØœ9IÎζÆJÏ>,ùúëËÙÙU³gÿžBÁÑûÊq8 '§I­­Ï¥Òò.,N"õst#•VˆDùRi9Š*õaçáp–îîKPT¡P°åò&¹¼I¡h’ËÙ(*íÌâT½™l½w)wíÝ{{É’ºgf2™†‰ªËô•T3ý=}”C`6 C Œ J = ‡¢¨±càÍÈåÊ žïÝ{»¨¨aÔ¨°¥KG$$˜á=¹\ùË/íÜyÍÖÖjõê”3-,Ìmx0©T‘—W“]•]™]UQÑŒ ˆ——SLŒOLŒOt´OT”—½=dÑL‘R©jiµ´´¶´´bΫÍWZZZUªe°ñư¶bXc2’ÆŸ6êW°?ͯá)oD"‘3™ ••ìª*,…Æ®ªb××ód2‡óñqöñqñõuñõuQO #Ü––Öû÷‹³²ÊŸ<)/,¬“Ë•tº{B‚|¼BB€¯¯KO ‡Ó:mÚ±XvöìRG½¯EÑuëÎ>üàÇß›<¹ÿ›..—+ïÜyyæÌÓ+W$’å˜1Ó¦ÅëÁ ¹\É`ÔÔæç×Ô¿|Y'J±¢ææF óôñq~mkzî~ùåÅC‡>5*ÌØ±z HªÞD,–;öè¿ÿ½Ãbñ'MŠ]²dD¿~ƪGœ>ýä›oþäóÅ<úƒ†šM• -)aegW½xQõüyv+ÖÕÕ.&Æ':Ú;:Ú'&ÆÇÕÕÎØaöir¹R31Æf 5ÿliiåpDN+'Ò\ÊÆÆÒÉÉÖÙÙÖÅÅÎÉÉÆÉÉÖÉÉÖÙÙÆÉÉVÃ&¬¬ …4Úñù’ŠŠ&uþ¬¨¨Édaß5ïåå„¥Íèt÷wwwC~¡ªªØ—=yR~ï³²’M$bb|ü£¢¼©T²Á"Ñ­¥¥uÚ´=­­Ò³g—yzê?£†QçÕvîœ5eÊ€®­„Åâ_º”süø£ÂÂú  ·3¦OO0úO<ž¨¨¨Á¨a0ªŒšÒÒF¥RE$üý)QQ^!!îtº{l¬/¬yX»öìñãÏŸ_Ý':Wt$Õ@ïÐÒÒzðà½C‡îK$òY³~ôÑp//'cÕ#^¾¬_·îÜÇ¥S¦Ä}þùxwwcGÔ]ÍÍB¬!Ú³g/^Tñù{{ë¨(/,…ãc®¥IQ(¹Ñ IDAT(Tl¶ët‘Åâ³Xü6}066òxm:`$ ÎζTª•JÖìhÑÁäîîàæF†~èE«ª8š-ϰ ,fkkè¦ÙòÌÇÇÅÓÓ‘H4ô(e*š—Wƒ5GËÊ*c±øÖÖÄøxÿ„ÿ„„€þý}mm­ Òkq¹¢iÓö’³g—Òh={pQçÕvì˜5ujój£:--óÂ…çb±|Р 9s’RR" ÿ‰kÅç‹óóë ëòóë j_¾¬—JÞÏÏ5<Ü3<œêîÙ-0¹\9{ö¾ÚZîåË;;Û;@/I5`êÉw÷ᅢ¢èܹƒ>üp(•ÚëóLZñù’ï¾»røðýèhïM›Þõ1vD]$“)rsk³³+³³+Ÿ?¯¬¬dãñ¸à`jÿþ~ññ~ýûûQ¡O?ýâp^5)c³…lšÃ²Ù­Žkd&‘ÈÕóãp8u{2''ggì·‹‹­úElÂü:À¤REQQ½ÖΡRÉtº»á;oÔpVVYVVYVVyvv¥P(uv¶<8Ë¥……ÑL¹NàñDÓ§ïårEgÏ.3Ìã*ššzêÌ™'ÿýïü1c"º¹6‰D~ýz~ZZæýûÅŠÝ„ ±³f%†…yê%T}Q(Tee……õyyµµu,AggÛˆ¯ˆZd¤WDÍߟzÐ[p¹¢qãvØÛ[Ÿ>½Æî¼$Õ€éjm•|Ÿ@ ,[6bþü!f|}ÛÐÀ[»öì•+¹S¦ ظq’‹Kï¤D¥B‹Š=*ÍÊ*{ü¸¬¡G àétj\œöH´Mgp8­ÍÍ‚¦&!‹Åc³…,¿©IÐÜ,hhàc­Íär¥zf{{k ÅÞÅÅÎÙÙÖÕÕžB±Ç†1suµÃiÎζp〥»óFÉ28˜j 7êVTÔ€uêøäIy›Ò¢£}ÜÜŒ<¬×› ¥³gﯮæœ;·Ôߟbà­£(úÉ'§Ïœyúûï ¨¯ÕªTèƒŧO?¹|ùŠ¢o¿1gNÒ!Á&~lU(T¥¥ F5“Éb2ž?¯d³…‚P©ä¨(ï¨(¯¨(o’ ˜ ²²¦É“ q?ztŒÿ Ð’jÀ´¨TèéÓO¾úê²P(]°`È’%#Ìxx…BµÿííÛ¯úø¸lÛ6-!!Àؽ†L¦ÈÉ©ÊÊ*ÇzãóŶ¶V±±¾Xƒ†¸8?;;³Í}v™P(e±xÍÍÂÆF,[&lhà±ÙÂÆF>‹Åg³ÿ—3³°À»¸Ø¹ºÚ»»“]\ìÜÜÈ®®ö..¶ÎÎvnn¯i––p—ÃQ(Tµµ-UU좢&³K¡©G$“I~~®¾¾.t:UÝ‹£‰4>k¯ýid²ubb V‡‡ÓzïÃ+­­ÒÙ³÷WU±ÏœYèf”T*téÒ£·nž:µ$:Ú[¿+çóÅéé9G>ÌÍ­ñôtœ<9nîÜ$ŸÞÑ‚A‹Ç`Ô`i¶¢¢†âbŠ¢êîN§»‡„¸;L§OËgÎÜ7jTøîÝsz]§ƒ¤0!7n|ýõå’’Æ÷ß¼|ù( ¥—=)ÿF²³«RSO–”4¦¦¦,Z4ÜÔ1¨ ììãÇe99UR©‚JuHLô÷7õñu K•Õ×s±ßMM‹åÌùš#™¹ºÚaÍËÜÜÈ®®vTªƒ««úOWW;o€ ¥eem:o¬«ãÊåJ<çííl²7ê ‘È± <+«üùóÊÖV©‹‹Ý AA½b€´N‰dï½·¿¬¬éìÙeAAÆÉ¨aäråÂ…¿fgW;·ŒNï‘QQQÙ3OÄåŠââü¦M‹Ÿ2%ŽD²ì‰mõœº:n~~­º»Èª*6‚ 4šSD ë.2*ÊÛÝÝ_òøqiffIffi^^-Š¢!!î ø%$x{;;@ƒR*UX;³†^S“û]_Ïkn~õ[ÝÔÌÊÊ‚Ju RÉnndõoWW{*•L¡Ø¹¸Ø›Áýkz;Ý7Z[±6gš)4‡^ÔH”Ãi}ðà¤)•hp0µ× ÖI‰|þü_sskΜYjüƒ©P(1cOc£àÂ…å4šSmE&S\½šwæÌÓÛ· ml,'NŒ:u€é7vïŸ/ÎË«ÍϯÍË«ÍË«-)aÉåJ77ûÈH¯¨(o¬5›‡‡£±Ã}H^^íÌ™{CBÜþú`´I5`dÅŬo¾ùãÊ•Ü#B?ÿ|¼ f˜ô+;»ê㯫ã~òɸ †¦’eáóÅ—=|X’™YšŸ_‹ Hx8-))pР ÄÄ2™dì{–B¡jlä×Ö¶ÔÕqëëyµµ-uu- ¼º:ns³P©Ta³ÙØXº»;P(öîîêÌ™»û«ü™é7[ OQ*U55-ê´“ÙÀd6¨;o´··ö÷§hæÏèt*•Ú+éÐ1@ZLŒ¹6û–Jóç`0jNZN3v8¯´´´Nú³B¡JO_ÑÓ‹wæÌÓcÇUT4ÓéîÓ¦ ˜1#±·U¦TªJJŒj¬ÇÈÜ܉Dnggê©’-8˜ŠÇCÃnЃrskfÍÚN;xpaïíÐC ©Œ†Ë}÷]ÆÑ£"#½Ö®0hP±#êY"‘lãÆ ÇŽ==:üÛo§Q©dcG„ðx"u"­  AˆZRR`RRPbb ™lmìõL©T55 jj8õõ<,sV_Ï­¯çÖÔp››Xæ ÇQ(d//GGGÍÉÍÍÞÝÝÁÕÕÞÃÃn¬`šZ[¥¥¥Ú;oÄáp>>½²óFärevvå“'åYYå Fu›Ò""¼llzY—€oJ&S,XðkvvÕ©SK""L%£†ápZ'LØåà@:{v©aúfd0ªÓÒ2ÏŸ.“)†ï7uꀱc£Ì£m´B¡*-…0‚º3özx89ò¡)œ´L$Õ€ÈdŠŸ~º±wïm Å~ӦɣG‡;¢÷èQéÊ•Çy<ñ·ßN›0!ƈ‘ÈåÊ'OÊïÝcÞ½[Ä`Ô éõw"-ÀÞÞi|¾¤¶¶¥¦†SSÓR[ÛRSÓR_Ï­©iijâ+*Ap8œ››½‡‡£‡‡ƒ§§“§§£úÇÍ Ch`ÊÚdÎ4;o´°ÀÓhNtº;Ö…coì¼Q‡ö¤yz:”ïäf:MŸ{šL¦X¸ðà“'å¿ÿþqq¾ÆG‹ŠŠæ võïï{ðàBƒ}.$##÷Ì™§÷ﻹÙ3{öÀÐPÃlÝ0ÚäØŒj©Takk96 ,oΜ_š›‡ÿ+*ÊÛØáL$Õ€¡]º”óõ×°ÙÂÔÔ±ï¿?Øì2™bóæK‡Ý=:üÛo§»¹§®—/ëïÞeÞ½[ôèQ©H$ ¦&'Ó‡ 80°÷&ÒX,>–6Ã2gê,Ÿ/Æfpp°¡Ñi4'oogOOGwwÍ ›0û‚@oצóÆ6ù3;;«€·6ƒŸyz:šÙW›Í>|XÒGHë$¹\¹xñ‘»w‹Žÿ¿¸8?c‡Ó¡ÇËfÎÜ;þ &xÓ¥¥. A• Ý·ïö¶mWâãý¶oŸi°¥åreVVùíÛ…·oÖ“H–‰‰X£´ÐP¿•&‘È5ïªWV6cJ¥ AˆD‚:gæååìíýjšFs2³¶)˜1>_üòe=“ÉjßøŒ@À{y9©ÓfX/ŽîîVVæÐy£š¤½xQÕØ( “I‰‰}g€´NR(TK—½u«ðرE ƧS¶o¿ºk×µ“'—$%+OtéҋÇäç×úûSÞ}·ÿôé }áÁ&>_Â`T¿xQ•]•“SUWÇEÄÏÏ5&ÆK°EDxY[&èPݳçÖ7ßü9aBÌ?Ì„b@I5ÐãîÜyùùçgÙláºugÏØº(/oZ¶,­¨¨aãÆwÞ{o RYõõÜ[· oß~yïS „„¸úÖ[ýâãLó~4‹ÅkÓ¥[U›Åâcÿuv¶ýgÛW__‡¾3b½J…VWs:ê¼ÑÆÆ2(ˆjö7êÀçK?.ÍÊ*ÏÊ*+(¨km•ÒhNII}p€´NR*UK—¦]»–wøð¿’“鯧³P]¼øHffiFÆ<< ƒQ}úôÓsçžñx¢Áƒƒ§N0aBLßI’ÂÂ:l0¶¬¬òª*6‚ ¾¾.ññþØxlÑÑ>¦yÊLÄÕ«y+V óÜ¿¾±ºs˜HªÔÔ$øâ‹s—.åL:`íÚñTªƒ±#2„î~ýõ”ŸžLí¹ …ÒÛ· ïÝc޻Ǭ¬d;:ÚŒ6zt¸©õîÈåŠJK›ÊÊËÊšÔ?b± ù»ñY›^Ý||\zï0oôAb±¬¸¸ÃÎlètjHˆ{_è¼Q·ö¤EFzÅÇû'$ø'$ø÷‘CdרTèªU'.\x~øð¿† 1v8oF*ULšô£B¡¼téß$’ñÊdŠ«WóΜyzëV¡­­Õĉ1s犌ô2v\†Æbñ°ƒQóìY‡ÓJ$üý)X Ѩ(ïà`j_x ¼‘’’Æ ~årE»wÏ6¬—ÕE}¤è)çÏ?_·î‘hñå—ïLœcìp ÃiMM=yõjÞâÅ#RSS,-{äygOtófaFFî_ :Ý}Ĉ~#F„&&½‘‡D"//o*-m*/o*+k*)i,+kjiiEÄÊÊÂÏÏÕߟ@ñ÷wõó£@ã3z>_RQÑTYÉf2°.ÕÏðxœ··sßü¬3Úfiií ëëêjgì{• ]½úäùóÏú`øð~Ƨ+jjZRR¶òóÏsËÿÔ×sÏ{–––YYɦÓݧM0sf¢‹K-“,/+«<+«œÁ¨ÎÍ­‘HäööÖýúyDEy'$øØÇ‡3jB¡tÍšS/f/\˜¼~ýD£Ÿ{ ’j@ÿê빟~zæÖ­Â?ºjUŠ­­•±#2„ë×óW¯>I àüqö!ú¾ž›‘‘—‘‘ûèQ)‚ ƒ§¤DŽêåå¤÷mu‹Å/.n(*jÀ’geeMuu\E‰D‚K@–?£øû»úûS<=á‰oz Ý7’H–ÁÁ}ºóF4HËÉ©jj88Ø`mÑâãý##½L¡­R/‚¢hjê©3gž:ôÁ[oõÊŒæÞ=æìÙû×­›¸hÑ0cÇò*úôiù™3OÏ{¦P¨† ™:uÀرQ}÷‘±X–—W›“ój0¶ŠŠfH‰õÅÆc §Au×—¡(úË/w·n½4p`àÏ?Ï…Ç#èk ©ôI©TíÛw{ûö«ÁÁÔ;g…†z;"CP©Ð;®îØqmذ;fëq”EŸ<)¿téÅù••l77û·ßŽ=:<9™nøAPLf}QQ“É**j`2¸\‡óöv rS7Aó÷§xy9Aû3z ‰DÎd6´é¼±¾ž'“)!“­±v¥>>.ê^ûrã3­4HËϯ‰d^^NÂiÝ…¢èúõŽy°ÿû))‘Ƨ»vî¼öÃW_ýäÉ“r*ÕaêÔï½7ÐÏÏÕØq—+ÊÉ©Ârl/^T56 ¬­‰QQÞýûûÄÅùÅÅù¹»Cß­}QvvÕâÅGø|ñ¶mÓÇ6v8äЛÚÚ–?þýÑ£²>žš:¶ öÞÜ,\¾<íáÃ’/¾˜ð¯ ÅáôÓ‹Á¨NOÏùóOFEE3•J~û툔”ÈÁƒƒz¨KÉ6T*´¸˜Åd6`=¼5”—7ÉåJ++‹ìÆ:îN§»CÛz@R^ޤΟa9rè¼±kêê¸c-ÒJKU* Mÿ6l¸pèн}ûÞ7.ÊØ±èJ…Λ÷K~~íÍ›kLjèÓ6Š‹Y§N=9u*«©Iå=gNÒäÉýûH¯ÑÔ$ÈÉ©b0ª³²ÊŸ>­‹ed²ut´OB‚?ÖW$T›}Ÿ/Ù°áüÉ“Y3f$lÞü®|Mè ©ôã?^¬YsšB±ß±cVl¬±Ã1›7 ÿýïcnnä}ûæÑéîÝ_aQQCzzö… ÙååM>>.&Ĥ¤DÆÆúôtlj‰¼¨¨!?¿¶  ®  îåËzu+´à`·:Ý=$Ä=(È n«`úP­ªê°óF,;Þ¦óFÃäì{/¤ J‰ñ±··6vŒfeãÆ ÞÛ³gž95áóÅo¿½=4ÔãСŒËk(•ª‡KÒÒ232r­­‰cÆDL›?dH°¾2 …ª´´«Œšâb t‹ŠòÂl^Ð÷µÙ»{·håÊJ¥ò‡fjìp=’j »¸\Ñ'Ÿœþã+W¾½bÅè>ÒnI.WnÚ”~ðà½Ù³nÞ<¹›12Õ§O?½z5·¦¦% €2yrÿñãcBBô¥ë‹ÅËϯ+(¨ÃieeMJ¥ÊÁÁ&"Â3<œêÙ¯Ÿ¤Ð0}Ø-]&³AkçööÖþþ”6ù3Í©/–ôF`€4cÙ¼9ý—_þÚ½{îĉ1ÆŽEÏŒê v­_?ñƒ†;–Nil¤§g?þ¸°°.0ÐíwbgÎL¤ÑŒ6ž«)kl¼xñFlvvV¡¡ž  þø99™n EÐÍÍÂÔÔ“7n|ôÑðU«ÆÀ¡óI5Ð-™™¥+VS©Ð]»flìp ¤ªŠýÿw„Éløúë©Ó¦Åwy=,ïüùìôô윜*»ñã£'NŒML ÐûCÍr¹’Él((¨+,¬ËϯËϯåpZñöv§…‡Ó""háá4//¸G€éjÓy#6Q[Û¢P¨p8œtÞ¨|¾øñã2ÍÒ¼½`€4ƒÙ¾=cÇŽk?ü0kúô®aMÙ®]×wì¸öçŸ+ÃÂzÓгØ@gÏ>åóŃÏ™“”’ÙG¥ê‚öØPõõu‰ÕKdx8 *3sîܳõëϓɤo¿–œL7v8€žI5ÐEJ¥j×®ë;w^{ë­ÐíÛgººÚ;"¹|ùÅêÕ'h4çýûß rë¤REFFî©SYwï2mm-ÇŽš4)vȺ~ÛŽTWsž?¯Ìή|þ¼*7·Z*U‰„à`*–?Ãid2I[è…îÎ-,ð4š“ Ö)ëÿgï¾ãš8ÿ€_&IHÂÞ2DKpµn­Ô…Z÷¬«Ž:ªÖmmuÛºª¨·XE­ˆâ@PDPPd‹ì²çÝïó›¦Â8>ïW_}…Ës—Ï]žÄË}îù~¬xò$]=A†a:ÁiÄøõ×;?ÿùóÏߌ@t,ME±qã–– ##—}æH÷æ'“)ïÜyöôÑ£÷\.38¸ëÔ©½¼¼ˆŽ«¥ËÍ-{ñ"çùóì„„ì7o>*•¨¹¹±ŸŸ‹¯¯³ŸŸ‹··LÇeø|ÉÖ­gÎÄÐqçα¶¶ðÏ’j !Š‹ œzþ<{Æ‘S§öl%l¨K>Θ´n]p}/a«ThTTêÅ‹ÏïÜy¢Ø!CC{ôìéÖX÷)óùÒW¯rrrð2ed2ÉÍÍÆÇÇÉÇÇÙÇÇ©C;¸£€E©D?~¬ÈÍ-{÷®0-­O¡VÊdJAŒÚµ³®R¼ÑÞÞ>ÈŸðä伸¸,|IQßÈˆŠ—h p… ÒˆòÛowwï¾µgÏøo¾ $:–¦•ŸÏëß÷èÑ~Û¶&:–ÊÏç]¹òâôé§¹¹e]º8†„øãå ëB"‘¿zõáÅ‹ìçϳrJJ ¹C»ÀÀO_A‰Ñw‘‘É?üpQ¥BüñëÿVòC €Ö’j Þ¢£ß.\fmÍýý÷i ª¥²³KçÍ;•]²gÏ7Çw­×º¼‹Ÿ‡‡Çgd·kg=n\·;;ÓÏ I¥Bß¾-xñ"çåËœ—/sÓÓ‹P³²âx{;ùú:ûú:wíêÄåÂuaZ¡P–™Y\¥xc~>O¡P!R%sÅ›‚\®LLÌŇ£½|™SZ*45eáÃÑ‚‚Ü==í![I¬}ûþÙ±ãæ®]c'MêAt,Íáüù¸eËþ:wnnïÞDÇÒp(Š=~üþÂ…ø¿ÿNR©ÐÁƒ;…„ø÷ëç … ë.'§ìùó,¼älZZ†aNNøÄ®îî6’ÑG|¾dçΛ§N=éÖ­íöí!M:S2 ™AR ÔƒJ…îØqóàÁ¨#|vïglÜZ*Õ\¿þrÅŠp''‹#G¦ººZÕq- ÃbbÒNž||÷îcc£#|Æëæççò9‘¨ThrrÞÓ§±±ÏžeðùRƒÖ©S__'g__gGGóÏÙ>à3é.ÞH¡Û´1ÓÌŸ¹»Ûº¸XBñÆ&RY)Ž‹ûtµúõ뉿Z ¤µ4Fmݱe˨™3{Kó™=ûäë×y÷ï¯Ò»"ÕñùÒë×_^¸Ÿegg:z´_hhgg ¢ãÒ3b±üõë<<÷ÿìY&Ÿ/a±è^^ø8ÚÀ@W(Ü­_22Š×¬¹ôøñûÑ£ý6m C90 TuUY)þî»sQQ)?ü0|Þ¼¾­ä¶Y©T±reøÅ‹ÏgÎì]÷’|¾ôÂ…¸“'gdûù9OžÜkÄŸ_4W*ñDZzllƳg™ÔÖÖ¤W¯ö=z´óósquµ‚ÑB¥Bóò*Ôi³´´Â´´BuñF‹îæfÅ›_^^ÅÓ§0Aš>9q"fݺ+7Ž˜=»ѱ4«Š QPÐöñã~üñk¢ci4ii….ˆ­gO73¢cµCQìÌ™§Û·ÿÍdÒ×®>j”o+ù €ƒ¤¨“´´ÂiÓŽI¥ŠC‡¦ºN3ÉÊ*™;÷Ï*~ù囡C;×e•øø¬£GÞ¾ýšÅ¢OšÔc„ÀºlÓ¤T¢¯^}ˆMú4#..S(”ÙÛ›öìéÖ£G»=Ü\\,°M@ƒ‰D²ŒŒ‹7r¹LKww[(ÞØütOæããÌf·–qÕúèäÉÇk×^Z¿þë¹sû Ξ]½úÂÍ›Ë:ur :–ƤP¨¢£ß^¼øüÖ­$‹>hP§±c»¹—+*ªÄÇÝÆÇg%'çafcÃÅÝ´íܹ ¤jZ²²2á®]·ÎžíÚÕqÓ¦‘ŸY¸Ã}vJ IDAT@,HªÚݼ™´xñ™^½Ú80¹õ\š¼r%aÕªpÛC‡¦¶iS˽À†Ý»—zøðý'OÒÝÝm§LéÒ­ó™•• £¢RïÝK‰Ž~ÇçKÌzötëÙÓ­{÷vPC €æQ%s¦Y¼‘L&9:šÃäg-\®|ö,3..3..+11W š™ñE{üúrÇŽT*ÔuÔ§N=ùᇋëÖûí—DÇB ÃFŽÜ§P¨""¾3Èb¤EEüˆˆÄsçbSS ÜܬÇ7.ÀÊŠCt\úM &&æ>|˜—ùêÕ¹\Éá0¼½z÷vïÖ­­··%…[¢ÌÌ’¯þóOJPûæÍ£`¢5ô$Õ€.†ýôÓßFÍŸßoõêay¹§:‰D¾jÕ…K—^ÌŸßoåÊ¡ºkµ)•èõë/ˆzû¶ _¿ß~Û¯gO·z½†a¯_ü矔{÷Rsi4JÏžnxõëç ‰4šN•âUòg ÍÝÝŠ7¶(:&H r‡/L½ötÕª Ë– Z¾|ѱéíÛ‚ÁƒÞ¼yÔÔ©½ˆŽ¥ %%} {zõj‚D¢èÙÓ-4´Ç!áõóñùÒøø¬çϳž=ËLLÌ•J\.³[7—nÝ\Úúø8Ü-MDDâ–-×KK…3f-\ØßÔîË@Ï@R ÔH"‘/YrîÎ׿ü2aÔ(_¢Ãi&¹¹esæü™™Y¼k׸‘#uí5Ÿ/ùã§N=áñÄãÇ̟߯^U‹‹w‰I‹‰IãñÄîî¶z ØÑ××XиÄbyzzQÍÅ..Vêü^ÅŸµ>”ÇÆfÀi†çâÅçK–œ]¼xàÊ•C‰Ž…x[·Fœ>ýäÁƒÕ¶¶Þ¥¥RÅÝ»ož>zôÞÊŠì3qb §§=Ñq…BõêU®ºJdE…ÈȈêççÒ£‡[Ïžn¾¾`k)¤Rʼn¸§TªæÍûröì>ÆÆ­¥’j@»òrÑ´iÇÒÓ‹~ÿ}ê_´–90îÞ}³xñY{{Ó£G§µm[ã\h …êèч‡EUVJFö[¸°»vÖu| >_rëVrDDbLLŠb~~.tìßß®(Ð(ø|ÉÛ·iiEÕŸ‘H$''(ÞØÒ¡(öú5Lfà._~ñÝwg,è·zõWDÇÒ"Ò>}vôéãñë¯ˆŽ¥™df–\¹òâüù¸¼¼Š.]CBüCBüaÈN#Â0ìýû¢'O2ð zKJ`ki$ù™3±ûöý#—«fÍ š;÷Kø½I5 ENNÙ¤IG”JôÌ™9uOé5…Bµví¥°°§3göþñÇàšæ¢@QìÚµ—;wÞ,+Ž×íÛoûÕ:ÝN(”ݾ|ýzâƒïéÛ·Cpp×þý;Âõ#E±Êk*ÞH¥’]]­=LËÍ-£PÈ^^øwlŸ>\.“è[/‘Hvòä£}ûþ¡Ñ¨óæõ=»œ«ÐÂAR T—9mÚ±öímþüsV+IùUÎ{êõë¼]»ÆíWS³ˆˆÄÝ»o}øP>kVŸ… ûÕet‹J…>zôþâÅç7o&)•ª  ÷¯¿ö2¤\¼ î$ùû÷5od³\]­aò3½Ãã‰cbÒði©©ù …ÊÝÝ6  m·nm\a‚4ÃrÐÛÛqݺ`õ’k×^.\6wn_Í…7bÄ^*•|éÒB¢!Ÿ/¹~=ñôé'ÉÉyöö¦£FùMžÜÃÉ ¾š$ØZ Š ÑÁƒ÷177þî»&¶’©¬ÐGTÿ‘¸hÑ™>}<žÂdÒ‰§9<|ønþüÓÖÖÜßŸææ¦}XÞ³g™[·^OLü0aBàÒ¥ƒììLkÝlNNYXØÓK—žVvíêâ?r¤¯…»±ÃÀ ðùÒìì’œœ²´´B¼„#o4$¹¹eÏže⤥§!¢1Aškõ!M@¯%&æö+‚ ³fõÞ´i$‰Dº}ûõœ9'CC{lÝ:†"U—üÛÉ“3ô":¼{WxñâósçbyµKÇê Þ¿/Z¹2üùóìyó¾\¶lüÌ™ØC‡î—”ð‡÷þöÛ/;wnÓd±Ðr Ò¬¬ÍüYZZaQÖÆ†ëîn Å RE…èÑ£÷øˆ´””J% ¤µr‹¹ví¥R©R/!“IÆu9xp dUu›=ûdVVÉݻ߷†;œê.)éCXØÓ+Wäreß¾BBü‡íRS_Z¹2<2òõÙ³s;urhæ8 †aiiEOž¤ÇÆf<}š^Z*42¢úû»ôêÕ>(ÈÃÛÛÒäMêÇòßpöl,…B?>páÂ~-€pTkíP[³æâÙ³±ûö…ŽáCt8Íáèч[·F|ñEû}û&™™Wopúô“¯98˜îÞ=>0PW­!…BuæL쯿Þ eß|0wn_''¸v †a¹¹u*Þù³–ïåËÜŸŽ ›SßsrÊbbÒââ2ãã³rrÊh4Š··S@€k@@Û.]a‚´Ö,/¯¢G­*Ze9žW;p`2 EÕáÕ«C‡þrúôœþý=‰Ž¥Å¤‘‘É/>ôè½µ5gøp{zÚi¶‘J:­“Hä4õС)C‡v&*ZãN°%&æÆÆf|øPÎå2{õr òèÝÛÝÕÕŠè Vy¹èĉ˜cÇbÄbù×_{/]:¨m[8Ú’j­šR‰.]zîúõ—û÷‡×RÞÐH$ò•+/\½š°zõ°ùóûU¿\"‘¯^}ñâÅç ö_¾|°îâ‘‘É[¶Däå•OšÔ}éÒÁVVœ¦Œ€ÿP©Ðæ¹7\©D32ŠÓÒ µod2éíÛÛ@ñF=%Évî¼yüx ŠbqqëÛ´1ÓÝ&Hu´aÃÕ'iSS#“IÁÁÞû÷‡ÂèBC—É., :–+#£øêÕ„¿þŠûø±¢KÇÐÐ#Gú²ÙF‚„‡Ç/[vE1 AÒ·ßö[³æ+2†ý5¾’AllFLLZTTj~>Ï‚ݳ§[P{ß¾jý4€H$;wîÙáÃ÷ +¿úªë²eƒ=<`ÚfIµÖ ð•+/„‡ÇíÛZë„aàýû¢Y³NTVŠœÒ³§[õoßÌšuB(”ÖÔ@­°°rݺˑ‘ÉÆuY½ú+¸34§¨¨Ô={"·låççÒ¸[®^¼17·ìãÇ ¥E„Ëeº¸X:;[¸»Û¨«8Âà3ý•ºlÙ¹²2‘J…’ɤ½{'íW½™TªÀShê Òð˦0A¨IE…ÈÏo“TªÐú,•J¡PH‡M2ÆÕèÑ£´qãýý÷R'¢ciÑT*ôÉ“ô°°§‘‘É yà@¯ÐлwßJHÈAÑçó<¸Óþý¡0U“ÂÇ.ÇĤ=xð–Ï—:;[¹¹÷îí^ßS…ÔÔ| ޵5ܬ¦Tªøë¯¸#GîçåU ÞuΜ¾ðE@3ƒ¤Zëµ~ý•“'92­5ƉˆH\¾ü/OOû#G¦ÚÚj™Š 22yÉ’³ÎΖü1Mw ÇS§žlÛacÃýùçoºukÛd!PÕ£Gï·m»ñêU.‚öïמ© ÝÅÉd’££9o4`ùù¼+ÂïßKúß)•J™0!pçαxƒ*¤©TXûö60A¨£Ý»oíÛ÷žŒ×D£Qètê¼y}gÌÒZ{hêßw‡¶L&:ýPPÀ ?>.;»AHòŸ_7T*¹];›3gæØÛ›aë¡T¢))cbÒ>L‹Í@QÌËËÏ®ºê.[³æâåË ¿üòͰa]š!`=¥R¡7n¼úã 9>>N3f}ýµÔ  y@R­•Z·îòéÓOŽ™jð·Š+ªÍ›¯?3~¿U«†iTqüxÌúõWÆüé§1FF5þÚ‰d+W†GD$.\8à»ïêh @ãº{÷Íž=‘ÉÉ)’J…ÒéÔE‹,_>¸Ö•JôãÇŠÜܲwï ÓÒ ñZaa¥L¦D„Á ácÎ4Shvv&u¹æôŠbÇÇìØñ·B¡R(þSšÏÉÉ|ýúÏžeÆÇg½~§RannÖݺµ tíÖ­­‹‹%Q1ý"Ê||6ŠDRÍ…4…N§-Y2`êÔ/ð} V§N=Ù°áJbâ&¸¡¡î0 [²äÜ•+/ªçt©TЉ óÌ™9]º8[ë$Ë_¼È~ø0-&&-99Á ùû»ôîíäÞ¹s›êeØqþþ›òóyB3Æ÷§ŸB8F3‡­_22ŠOž||öl,F;6`öìÞ0Á3M ’j­ÑÆW9thÊW_u%:–¦UTT9oÞ©ÔÔ‚ß~›8xp'­mvíºµwïÝ-[FMŸ¤cSii…³gŸäñÄGŽLíÞ½]ÓÄ @U§oß~#!!‡J%«¯R(¤Q£üöî¤ÙR(”efW)Þ˜ŸÏÃs'£m[+Íü™»»–Q›ÀP¥¥.Yr.)郺*Ú‘8z÷înøˆ4//˜ 4ÀáÃÑ?ý¡þ²¢Ñ¨FFÔテtZ½‰ÅrŸ +W9³7Ñ±è • õñÙXZ*Ðú,…B¢R)Ni Z âbÁ³g11i÷î¥ð,-Ù=zh™€-#£8(h;þ˜J%s8Œß~›4`@G‚¢Ö|¾$<<þÈ‘è‚^¯^ígÍê=`@ÇšÒ–€ÏIµVgÏžÈÿû¿;ÿ÷CBü‰Ž¥iÅĤ͟ÚÚš{ôè´¶mµO{¶gOäo¿ÝÝ·oÒÈ‘¾:6õæÍÇñã99Y?>CkõHÝË—¹[·F<}šN¡Tªª_Ôžžöß?$;»47·,;»4'§,/¯¿Íá0œ-\\,œ,\\,]\,œ-ííM)˜ûª•’Ë•»wG>|ŸDBªàÀ‘HÈ‘#S‡7üù5AÓ‘Ë•~~›ÊÊ„‚P©d6›±lÙà !AÛ0+V„'$dß»·’è@ôƃï&L8R¥ö£&2™„aȲeƒ–/Òœ*Ô°EG¿þ€­OððøÍ›¯©ÿ©Âß²‰7mÅbÁ¬xµP©Ð¨¨Ô£GÆÄ¤¹ºZM›ö|Ð ©ÖºüþûƒM›®mÝZ˨,pìØÃÍ›¯ÚeÏžñ5ÝìØÃõë¯þòË7ãÇèØTjjÁ˜1ûÛ·· ›%h@3HNÎÛ¼ùÚãÇ隣Ӫ`0hJ¥ÊÁÁÌÝÝ/áÅVÉÉy †ef–¨TÚûŽF£ÌÛwÍšáÍ0<çÏÇ-]zŽDBX,£¹sûΞÝJ~ޏ¸Ì‘#÷ݽû½——ѱè‡ùóO_¿þ²†Á¸ÿÚã§ŸB´–ÍI,–ÇÆfà°½}[@§SÌÌŒ‹‹ùUÞD …ܦÙáÃS»v…êu›qìXLdd²©)kÒ¤îS§ö²³ƒ h4TkE._~±hÑ™5k¾Z° ?ѱ4!™L¹jUøåË/Ö¯1kVE“¢¢R§N=úÃ_ÍŸßOÇÖŠŠøÃ‡ÿ_›6faastÜéY\\œ’’òYq€ EE¢7²ïßÏ ‘HºS $éÕ«Í––l­Ï¾y󦤤¤ibzC*U^¼øööíL• £PH†è¼ÖLrs3Û¼™°û-úöíû™[?~|cĆde5™LæˆDÏÅâD•8þü¸qãjzðÀÀ-#Fø®]«Ùîæ?/’ËU«WGóxRAd2e­¿o:w¶Z²$€É„ÛP𛕕•——Wõå%%‚û÷ß._þ—Öó …Œ ؼyýV®J£Qôñ<§cÇŽÖÖÖÍùŠ?Vœ8ñèìÙX@Ú¯Ÿç¤IÝûõë¹d>ü’l-nß~ýÝwg¿ýöKÃÎ¨åæ–MŸ~¼¬LpùòBÿ¶55ûð¡|þüÓ#FøèΨ)ªY³Ž3´'fÖ¥vŠÖkÔQddÊÖ­1 A¢;©†aXI‰ ¦¤‚ \.×ÑnènÕø|ÉĉVƒûV–”‹ŠEE‚¢"~I‰@,Vàmh42•J!‘H2™";›×¾}:ÒÌqVVVæåå5ÖÖÂÃÃkS ^Þ¿¯ÌÈà÷íkÏ`ô!:ý #†#‘HÁÁÞׯ¿ÔǤ®™Ï‹nßî¢ù§L¦”É(Š…2AD"™J…Êå*™L‰¢˜@ år-ÜÝ›5É>|øPÓSVVkkNM'?øòƒ£>|wèÐDßÎsÞ¼yÓü/êà`¶n]ðŠCÿþûÕ¹s±Ó§·¶æŽßm„îÎÎÍ’j­Â‹9óçŸ ñ×ßë2uñèÑû¹sÿtq±ˆŒ\®cæ3Å–-;çà`ºgO-cvíº•’RpóæRSÓ:°²²Ò>su1yroo‹ùb±Ñ«Ws““ó¤R™L¢Ñ(2™R³1‰„ää”zzÚÕ´5###è­œ•Ò®“Ö§Äby~>¯¸˜_PÀ+*âTðòóy<žÊË˶™ãlÜócÇŽmÄ­@¬aú:tÿÍ›zZþUëxöáÃw4E¡PÕÔð””üAƒv/^Ü«7è`uadD=Úoôh¿¢¢Ê‹Ÿ‡…=Ý»÷Ÿ.]CC{Œí3ÕÐT3|™™%S§þÑ£G»]»Æ‘H$¢Ãi*ÜÛ¹óæ˜1þ;vŒ52ÒÕ±‰‹Ëºys)ƒAÓÑ,..óС¨;Çzx4÷%fÐj‘É$GG//¯Ñ£ýQ©Ðôô⤤¯^}xù27%%_&ÃslT¹\™]Ft¼@_±Xt77k77¢@‹æëëdoozóf’ž&Õ¨—»wS´fÔH$F&“IBR©P±X±cGtllîáÃí¸\˜í¸®llL,èÿí·ýž?Ϻxñù† W·l¹>b„ÏäÉ=;wnCttèHª8O.*ªüë¯y&€J%{zÚyzÚ@t,šÃ°a]ŽIO/†¡¥À°±ÙŒ{÷Všš2MLXµÖ$ħ(ÓQìÔÊÚš³`Aÿùóû={–yölìªUV¬0 cHˆÿþ õ^L™è@SÁ0lá°””ü³gçÙØp‰§I$$ä ò‹H$»uki]2jEE•ááñ ög2uýV¤{÷þ3oÞ—ŽŽæ,@ýºZZ²oÝJ":š‡Ãðô´³³3…Y¾š‰DêÞ½ÝÞ½“7ÿôÓ˜òrѬY'ºv]¿zõ…¸¸ÌÆôƒI5ƒõÛowoÝJ:rdª¡ÞÚ|ûöë±czzÚ]¹²ÐÅŲ.«;cbÂüæ›@ÝÍNŸ~¢R©fÍêÝa4…B<¸óÍ›T4!.—1qb÷Ë—&'oY³fxjjÁÈ‘û|}7ýøã•¸¸L¢£ e¤šaºvíåîÝ‘7Ž¬Ëø-}têÔ“Y³N„„øŸ>=ÛÄ„U—U Õ_=›6í ##]UO•Jôøñ˜I“z˜šÖi³ú+77wúôéµ6KOO'‘Hšª¬NÒ`bb2|øð¬¬¬êíuÀ0,44”Íf7pOª!‘Héé麗 5ïZ}7n𪨺±:v0MÍplµö[—)S¦”””4éK7Šüüü‰'º¸¸°Ùìnݺ]¹r¥iØqnm=º}ËÝ~ðàNIIyEE|¢!L£ëõï~£¯^—mâÁ¿|ù’J¥^¸pA½üÚµkt:=99ÿS$­\¹²k×®l6; `ûöíJ¥ièSk!=¿5î[fxÇG“™™qhhk×?x°:4´û½{)#GîëÛwçÏ?Gæä”-$Õ ÐË—¹K—ž›:µçŒADÇÒøPûñÇ+kÖ\ܰaÄÎc)”ºöáèè·å墱c»énvÿ~jAAåäÉ=?;Ò–îêÕ«#GŽÔúTff¦¥å§Á¦¦¦«V­Ò½ú“'O òóó..î›o¾™0aÂíÛ· ŒÐ€A·' tûêzõr£Ñ(¥aýóØOª„„ïãã³f͚ŋãŸÓÊÊÊùóçoذ¡sç΂ÿgÏžíØ±#!!aõêÕaaaƒ R©T-p›œò}¦öím–/òäÉÚÈÈeAAî'N<êÕkÛˆ{}XQ!"::ˆI5CSY)ž;÷¤··Ó¦M£ˆŽ¥ñÉdʹsÿ {räÈÔú–gŒŒ|ݵ«c›6fº›]ºô"  mëIêµ;wî 4HëS(Š–•}ºÕÒÒrÇŽºW·²²²µµµ³³óööþã?žt{MÐíõ¨Û÷êåch#Õü<Ö½ëÖúæÖÚ‹ª‡§£UžN§ŸŸäÈAJKKñÞ¿¯yäÕKtïšÖcXåMDdøðá|>ÿÒ¥Kø+â«4(---66ÖÍÍMs•…µöׯ_¿~ýºÖfµêòÈ‘#ÖÖÖ—/_ÎÏÏÿûï¿Û´iƒº*J÷›‹iôzuËêÇÓÖÕñ–:ú@­QaÚ:I||¼©©)þ¸z'ÔsMݸÖ.ZÓN…„„TTTüñÇ‚”••in¿î\^^®õ­ÔºËŸœ55]ϯã÷g­ÎŸ?_—³èöšGº=QÝßøùóçkm†{ú4ÝÎnINNiÛ®ÁçEÍóy¬{×ÕñŽã«ëîE:NtlSóc‹[½z5‚ [·nU/Á?%%%UéÓ§OÍÍÍpÄ45]ÏoÎóœÆý²Ò¤õûD·û÷ïÕ{?[6O7eÊNNË¿Ÿ2åðð¸ÊJ ÑqÐä ©f8nÝJ²·_zæÌS¢i|))½½7ôë·«°×°-üý÷«6m– …RÝÍŽ‰öòZ‹¢h}·_Ç‹GmÚ´éÒ¥‹æE‡:àïÞ½ëííÿòOJJÂ0ÌÃÃãòåËø³)))êÇÕ×*//§Ñh{ö쩨¨@QT ¨TªšV3f ~™²aI5õê†iäèÖ§OŸ*é+™L–šš* U*Õƒð«c5]éËå E}¡äòåËnnnšÅ„„¼q•ÇøK78©¦õVy‰ŽŽÆ0L¥Riî‹:¼óçÏW_¨¥OüW3'ÕªwH//¯“'Oªüù矺¯fj}s1R¯nYýØbÚº:V[¨5*LgvAk'Ô³Ž vº»hM;…¨[jn³¼¼AŠŠ ­o¥Ö]þü㬩éz~3'Õ Ûk èöDu{¬žI5¹\Ù®Ýʳgõæ¯ÁçEÍóy¬{×ÕñŽãKt÷"§@:¶©ù±Å0 EÑ#FP(”ÐÐPÍC§5óäÉKKË1MM×ó[HR­_Vš´~ŸèfI55È®€ÖÊ?ˆœœ²¥Kÿúæ›À‰»K#‹Í=ú€‹‹ÅåË llL¶‘ôôbGGscc#ÝÍž=Ë tÕQ0ç3™ššÎ™3çÍ›7ß~û­zavv¶‰D"‘HÌÊÊ—wèÐAœœœöíÛãK<==GUÓZfff÷ïßmÓ¦MŸ>}bbbÈd²ÖÕ…B¡B¡03«:½öß YMª¯®¾š —Ë£££ÝÜÜ4ÛÓéô´´´!C†øùùPkTZ½ÿïxZ;¡Ž˜qUº™î.ZÓNá»_¥3ãÌÌÌlllRRR4ÆÇÇwëÖM,kÝåF9Κ £çC·×Ý^_º=Fñ÷okxÓªõy¬²‘ZO*t¼¹Z{étœÕ´ÍêÛ3gÎDGGGEE]¼xñÚµkêCgkk›˜˜Xe_5Ï—êxĪk!=¿‰4ìËJ“ÖãÓj™˜°ÆŽíö石ž?ß°iÓH‰D¾lÙ_>>æÎýóúõD±XNt€42ø%`¤RÅÌ™Ç-~úi ѱ4²þI ýÝßßùÌ™¹&&¬oçÇrGGóZ›%%åùú:7øUêƇýû÷0`ùòåê…ø ÅxRª¢¢"66_Žÿ¼···ÏÎÎÆ—$&&nÛ¶­¦µ$ Š¢.\(//Ÿ9sfpppyy¹ÖÕ###‡ ¢>ÚÇë²ÕW×M"‘Œ7nÅŠ ÔÝØÆÆ†B¡dffâfdd888àµ^rÕÊÉÉ)=ýß+©©©T*ÕÑѱ.¡V?†Õ›iM»â7A#’––†_j©iaËQ½C:88¼zõJÝàÍ›7º· õÍÕì!uï–¸êǶ¦ÈçDU†a‡úꫯ:¡Ž˜ëõñѽSº/Ï}ýõ×?ÿü³f#,,L¡P°X,­»ÜèÇÙ0z>t{5èöúÕí{õr{üø}£o–XD}ë§Ž7Wk/Rß½¨ã¨¦mVùØæçç/^¼x÷îݽ{÷Þ°aÃܹsËÊÊð§&Mš´eË|°‚ &L8wîÜŽ;&L˜ c_êxVÖrz~ókð7°²âLÚ+<|þË—›6lQQ!^°àt§Në¦M;ö×_ÏÊÊ„D@〤š!زåz^^ù¡C“Œ¨DÇÒ˜®_Oœ9óøÐ¡]Nœ˜ÅbÑ?gSeeB ¶î6J%ZXXéèhñ9/¤Š¢3fÌX´hѹsçþù矈ˆ|ùèÑ£øá‡œœœ¤¤¤!C†8p@s­É“'¯]»¯r³p᜜œšÖ"‘Hƒ ºtéŸÏ—Ëå4Åbi]ýÚµk#FŒÀ·cjjŠ È©S§ø|þÞ½{5_Ÿ½¬:ÍÕëB&“Éår:.‘H6lØ€ ˆ@ ¨é%h4Úøñã/^œ••õúõëuëÖMš4©î¯…›6mÚ¢E‹nܸ‘••uïÞ½ÐÐÐ)S¦ý;N±¦]Óz 9zôhee¥îýî»ïÒÓÓããã׬Yªca ¡µCΘ1cŊ׮]+,,ŒŒŒÄ'qÑA뛫ÙCêÞ-k¢ûÒ°¨p%%%………?~|ðàÁ¨Q£²²²–-[†ÔÐ µÆ¬ãã£[½vJÝ]·mÛöàÁƒÉ“'?yò$))iÓ¦M{÷îÅsZwùó³áõ|èöÐík ©Åvû=Úñ33K}ËD!ðóXßPu¼¹º;¶ŽS š¶©<†asçÎíÒ¥ËÌ™3Y¾|¹Í¢E‹ðgׯ__XX8pàÀÛ·o§¥¥¹ººNœ8Q*•Κ5«¾G iÁ=ÿ3ÕtʧCƒ¿€š¥%{Ê”žááß&&nÂoú\³æ’·÷†‘#÷:t?;»”èø~¬°³[ŸÙ€í×eî}ûöuíÚU.—cvåÊ;;;| >Ÿ?}út333 ‹9sæˆD"͉¤Ré÷ßoooobb2aÂõÔ2Õ×Â0ìüùóíÚµ£Óé:t¸víšÖÕårù°aÃ4Ûºu«©©i»víðšB†)Š/¾ø‚ÍfcÕf㨾:RÃdš{ñË/¿˜››;::yòd ;;»¥K—J$’* 4_Qëc…B±k×.ƒáêêºvíZüøèÞ5¼AõcXë+â«=zÔÙÙÙÒÒrÑ¢Eꘫ,ÔÙA0¬yçÑÚ!årùæÍ›Û¶mËf³{ôèqöìYDçd6Xµ7×Ì̬J©K·Ä[j=ÎZ»z­} Ö¨4ÿtttœ4i’æd'Õ;aM1WÿøÔ%¼:î”fwÅegg‡„„ØÛÛs8œ€€€ëׯ«Ÿªþ)kêãÜX=¿9çTƒnÝþ3s#~á#õ™S Ã0¹\éâò}xx\ÝW!PƒÏ‹šçóXe†­†½ãx3­½HSõ^ªc›UβNžãǯ׳¶¶þœãP¯žßœç95j6Ö—UõÇ:öœju¡Tªž=ËX·î²¯ïF;»%›×­»üðá;¹\IthÔ «ólC ÊË«0`÷ˆ>;wŽ%:–ÆtèÐý­[#–-´|y=Ê ê0vìWWkÝGéù󬯿Þûüù{{Óún¿¸¸8%%¥oß¾ è­ôôôöíÛWù.Õº°Vx+//¯Ï ©±¶Ó°½­DcõüÆúþ ?~üçwWèö@‡FüÂ'‘HçÏŸ7n\ÝW>üÿ¼½¶n]¯"Dc}® ÿ<6EMºSr¹ƒ¢˜¯¯sÿþûõóôò²'ÕåWÍË@’1­Ð‹9»wßÚ¸q¤‡‡-ѱ4Å~øáâ¹s±¿ý6qÌÿÆÝ¸µ5·¸˜ß¸Ûgmm}øðáº,Ô;nnnPÔÄP{>t{ ±Ý¾S§6"‘ìÇrËfx¹–€ðÏcS¼¹úø=i¨_ø …°·7>ý‹éÓ¿É”qq™¦]¾übÇŽ¿MMYAAîAAîzÙØ@5ÐR@RM/‰Åò¥KÏ~ñ…ûôé_KãP*Ñï¾;sãÆ«ýûC¿þÚ§Ñ·okk’”ôAw¸-–»» ™Lzû¶ õ$Õ­Š‘Ï¢­];<'§,&&íîÝ7?þxyõê :µ r8°£¿[2~¶"ARM/mÛQZ*¼xq¡aÄË•sæüùàÁÛcÇf б)^ÂÆ†[XX©» ~01 3Œ£ CÂdÒÛ´1OK+2¤3ѱ@Órv¶pvîÚC*UÄÇgݹóæÚµ„î™›÷êÕ~À€Žƒy™˜Àìk€TÓ?QQ©'N<:rdªµ5‡èXŠb«V]xðàíï¿Ok¢Œ‚ 66Üâb¾îiH¸\‚ <žØÌ̸‰Â@„Lf¬]¿o_†™™±™ËÜÜXýŸ™™±™™úKóÔ¥}{ëôô"ÀfÆ`Ððák›7LN΋ŠJ½w/uÙ²¿(r@€kß¾½{{Àìk 9ARMÏTVŠ—/?ììMt,ðU«.\¹’pìØŒþý=›î…:urÉ”ii…žžö5µ±µ5A¤°I54) C‡ qlÛÖ£¢B\Q!*.æ¿}[PV&¬¨‹D2Í–&&ÿ¦ÜrsË_¿þ¸wï?Æææl33ž33cÑh¢öš‰DêÒűKÇ%KUTˆ}|˜öðá»ØØ ¡PÖ¦Y¯^í{ötëÕ«½½=‘ÿ¼=I5ýðèÑûñã:5»ÿæËB5‘õë¯üùçãC‡¦ Ö¥9_W"‘wîüã¦M#'MêQS›C‡îÿþ{ôË—›š300`‰¼¤D€ÿWPPYV&,*âãù³ÂÂʲ2¡úÒ<‡Ã°µ5±²âXX°i4 …B–Ë•b±¼°°2'§œÏ#B"‘¸\FEQT,–K¥ A(R›6æNNÎÎÎÎêú5“Jaaå¯""_¼È666<¸Sp°wïÞ-!ë°víåÔÔüË—†L¦|øðÝÝ»o"#“KK…îî¶ÁÁ]¿þÚ§}{bkNr¹ÒÅeʼn3 ¯[ Ëù|Ie¥Dý>_Êçÿû''ÆK$r±X^e8…Bf³Ž‹edlLg³ ™ÃaP(d6ÛˆJ%3¨Tü1ÅØØˆF£°Xt:ÊbÑÕ™Lº‘•ɤá›ÿPôˆz¶˜˜4OleÅéÞ½]P{·nm=dg—fe•fdçä”â×™L:NQ©P‰D®Ra‚8:š»¸Xêà3ÒÓ‹¯]û”K³¶æûèE.MÍÌŒ…þiÉcS<äÝ»ÂþysçΛ©Sšš² èh`Ù5ƒùŒæ¤Ö¾¬hxY׺·Ç ÀÖ§½Ró_ú¿>_R^.âñÄ••uÂŒÇW¹äÄ`ÐLMYff,–©)ËÎδcG{ ¶…O•ákªˆ«I"‘§¤åä”áõ³³ËÞ¾Í/-"B¥’$"‘|½A¡Ìœ-ÜÝm=y’~ûö&“Þ©“C@€k@@Û€€¶Í¼GU‡|¾E±šžR§âäòÿ¤3‚Ok©Óu••¼->Á-†!|¾A• ÅGÊ¢(*Èበ…J$’#R—i/«c2éøàc‹N§SÿÕ¡e2itú§Ù1ñä>&•Jf³ÔS`â9?&‰Db³ ¯¯ËdÒŒ(º@!5î½N ñxâ/¾øiìØn6Œ :–†»~=qÁ‚Ósçö]·.˜èXA0 Úþå—ž[¶ŒÒÚ@$’uì¸ö×_'Œí×̱ žTªàó¥B¡”Ï—RO,ü›-Óü?Ÿ/©¬”…Ò*%Â11aq¹ ¦©©±¹9ËÔôSÎÌÌŒejúéOüqõêCu!ËÓÓÿÍŸ¥¦¼{WˆO8D¡™L:†a‰¯$Æfµmk]¥x£ƒƒYõam­G\\æÝ»)wï¾IK+´±1>¼kppWÿ¶ú{LZZaß¾;ïß_åáaKt, ‘ŸÏ‹ŠJ½{÷Íýû©T*%(È}øð®ƒwn”ù½šß¸qÛ¶µÚ¹s,Ñ@+…¢Xjj~llƳg™qq™ÅÅ:Úµ«c` k@€«¿¿ ~3J«¥Îêá“_"£÷ðï‚àÓa""Ë ‚ "‘L©T!ÿ++Ë ¥zšL©TO„‰'óT*T a†çütëhÒhdcc# …Ìf3ÔSTâï^·glLLJÜÑhT|þH¼Ò&•J16¦34##š±±Fæp˜ú{j€ÏIµ–kÅŠðèè·®Ö¬–®_¢¢R§O?öÍ7;v„H-åŒóàÁ¨ýûï%$l¬éró¸q-,؇MiæÀzD,–K¥ @*É$…X,¤>ŒLû”ÃSh|¾¿j ‰Ãap8 .—Éá0¸\›Íàr™\.ÓÄ„©¹œÃaªÿ߈{!É22ŠÕù³¤¤¼ŒŒbü¾c …L§S•JT¡PâÚÙ™´mkÕ ‹7ÖQ\\fDÄ«»wßäæ–ÙÚš|õ•ÞçÒÔŠ‹ÞÞë¯\YèJt,Ÿ¥¢BôÏ?)7n¼ŠŽ~K"‘]ô1ÂÇÊŠCthõ0vì77›íÛCˆ‚ HFFq\\fllæ³g™¹¹e$ÉÍÍÚÏÏ¥[7??—öímZÎaC…´d*Š'çð\žÃÓrø@:¥ e(Š Rõ8¼ÊJ|u)ŠbB¡T¥BñI4k?/†‰§ëþ—o£S©.—I¡¹\>º/z‰Àãr ™Ëe²XF,Å2ârL&½aw€(Tk¡^¾Ì þ¿ýûCuÌþÕÂ={–9qâ‘Aƒ¼˜Ü¢.)–• ¶¬YóÕÌ™½µ6 {úã—“’¶Ô¥$@ÉdJ©TÎãI¤R…D"¤ê$™P(“Jå"‘\(”J¥ ±X^Y)Á“WVŠ%9>ÚLëfY,:ž÷R'Àð YõćÃ01aª'®h*úáCyVVivvÉû÷Å))srÊJK…*J"‘(Šbx ƒæìláæf£9ÿ™½½©ÁLIÕˆ0 ‹ÏŠˆxuçÎëÊ]\,ÇŒñ8ЫS§6-ê¾Ï¤P¨œ¿?qbæàÁˆŽ¥qTVŠ>L»{÷Í­[ÉR©Â××98Ø{øð®¶¶zPßr̘ý:ØmÛ6†è@TUPÀ‹Ï~ñ"ûÅ‹ìää<…BebÂò÷wöõuéÖÍÅÛÛŸ~ èüW>±ŸD"—Ë•B¡L¥B++%**HñtD¢É”"‘T©Dù|‰R‰?¥ÂbÈd |^Mãáù9cc:“I76þ”ic2é\.ÃØØˆÉ¤Ó9&‹õÿìÝw\Sçúð“Å&BH€@#ìåÀZgUÜÕöÖÚZýu··­ÚÚ^»´Uo{;îm­µ^[[Ûzµv(NpÛ:paï {È>¿?^šRDDàù~üø á$yN8'9ç}Îû<ÞÞ”.99__OTBƒ’jîÇñyóþãéI>pàYWÇÒG¥¥-<°-++z×®ÇÝpvÓ¦C?ýtíòå7º½"L¥2ff¾ p: ǨÍêñ€.)E÷ètí®×·;¸NgBŸÚí¸Á`²ÙìƒÙf³½¾#IvÛ³Y//ŠŸŸ—ŸŸ§—Å××ÓßßËË‹âííA£y{{S¼¼(Tª7º¤ÇzyQüü<}}½Ü§æ¡Tªkh74ÈÊÊDåå-B¡R¡088@ °?ºn ?ÔùŒË †Ég½çÌ¥8QÚÒ¢ær‹ÊÉÉ¢Õ{#6öÕ÷Þ[¼lY–«ég&“õÂ…š¼¼â'ÊŒFsJ ;;;iáÂÑÑÑ W‡vK ~šœþ\€žtnÃÆç·ÔÔH0 ãpècÇrÓÒ"²²¸ÃìÐKv»Ã`0u*za1™¬ßÕ/ ³Éd5ÍΓ½Þd6£³º"°Ës¢Ç4𷇝¯‡'æíëëéããáããànøøxø ¾¾4š7š?ç’÷Òàzwôã×JJ„ë\HÕÕÉþö·ÉÉá_~ù˜{¢=õÔ}»wÿ¾wï••+'ÞüÛ  ß â,‚¤½¡×›‡Éd3™¬(¡…ýÑõK°Ù¨¢ Êf¡‚*è¢NgÝÔ<Ìh4£ë:‰1”*ë9͇@èhQN¥z£6 $ÑßßËÃÌáø¡óLg’ŒJíH’Q©Þ^^oo æíl“>äèt¦†Y]¼¤DXY) U2™Öb±cF t\:C¡"#é\.#!!”Ë F“ÏBCiCt•]Å™K;~¼´µUÍX¶,kxçÒœ|4š6WGÑÿ¼¼(ÙÙÉÙÙÉf³­°°!?¿ü›o~ÿðÃ<+77=77ƒÇs»?n[›ÅÇg¨€‘ƒD"ÆÇ³âãYË—Ç0L P\»&¸qCPXØøË/7ìvƒá?ztÔ˜1Q£GG¥¥±‡nÓpGH$"æs—±étíííV“ɪӵ f”¥CÕæ ³ÑhFwŠÅZ£ÑŒþ¡õ7ŸXyx}|f ×µ©©o¬Y3û±Ç&¸0ýH*Õòù-|~saaãµk‚öv …BJL ;–›–ÆNK‹àñ˜nra™P-J®]¯ïH¿iµí:]ç<\»Á`ÒéL:]»VÛŽNo;?ƒ§'™FóvæØÐ?*Õ›FóA7þü qÕʽI5÷ÒØ(¿ï¾÷ßzkÞÊ•“\Ë3›m=ôEc£üàÁ"#é®çö6m:ôÃW.]úG·3ê^ýÀ… µçϯ‡ã9Ð™Íæ0Mmm³Ù¦Óµ£`:]»ÅbGýY,6TìÞl¶¢Ðõ€f³Í`0µ·[Ìf;ê v+¨³Wçz††Ñhÿ£{PB‹@@u ~~^$ÑÏÏ“D"úúzR($O …è|¸§'ÙÛ›‚a˜[õýˆÝ‘þö[MI‰°±Q!kU*£ÅògþŒL&ú††Ò¸ÜàÔTvj*;2’àžõu‡:g.íôéJ•ʘ–‘4bsiN«WM¡¶o_áê@\£ºZrøpñ¡CŵµÒ  ßiÓss3¦NMü}ÐáÀ¹ÜuŸ|ò·… G òK¨ŸßÌç·\½ÚXVÖâpàTªwzzDV7--b̘¨À@_W‡ Àm f”`ÓjÛþ¸ÑŽRqZmº¡Ñ´ëtɹ.§R½œ9¶€ŸÀ@ßÀÀ?ÿðqÞ 'D\’jîeÕª¯êëå'O®r£Þv»cÕª¯/_®ÿå—çC]N¯ètí÷ÞûÞÒ¥cß|sþÍ¿­¬MŸþÁ?>;aBìàÇšì¥Õ¶ fçEvz½I¯ï¸¼N§3éõ&ƒÁä¬}ÑÃT0T®ÐÇÇÃÓ“L¥z£i[Tª·‡É××Ó××ÓÃŒZyyzRÐ>>¾¾]¾H$¢¿¿'@„ õÛÃ×ÕÉ®\©çó[jk¥­­*µº­½Ýâü*öð ÓhÞL&-::8))|ìØ¨¤¤0˜|6¬VûÙ³UyyŧNUªÕƱc¹¹¹ÙÙÉθFd¬Y³O,ÖüðÓ®ÄŪ«%'O–çç—_»& Ñ¼gÌHÊÍ͘2%~ÐÚÊdúŒŒ7xöÞ{áà†?…ÂPTÔTT$¼q£©¸¸I§3‘ÉÄÄİQ£8ééééqq¬!7t@v»Ã™xÓéÚ5š¶Î?ªÕF•ʨV·i4mjµu%pòõõ ô ð ò ð ò ðE÷øý™ƒ’ªú$ÕÜÈ… 5Ë–mß¿ÿ™‰ã\Ë{íµ{÷^ùá‡'‡Ö(ÏW_]xçƒgϾÊå2nþíìÙÅÄ0¶m{dð}`µÚU*ãÇÜÆN©²v½UÿKªÌ`0wy‰ˆ2£Į̂¼¿¿§ŸºÓÛßßËÓ“ìïïåíMñð Óh>hš(æ’µn«­ÍRW'­ª’7UWKš›ÕJ¥ÁdúKþ, À›Å ˆ‰a$'‡•‘9hCóqæÒNž¬ÐjÛÇŒ‰ÊÍ͘93yHÌ·Lï¾›wñbÝÑ£/¹:wÑܬ:q¢,/¯øÚ5—eâĸœœô9sÒüü<ôuKK[fÍúð÷ß_ïö¸À0æpàõõ²¢"aQQSq±°¢BdµÚ½½=RRÂQ‚-##2:šuVÀðf±ØÔjgŽ­M£1ªÕmdÝŒèNtÛl¶u~`@€îääK§ûûýñ£îìä ½ßô$ÕÜ…ÃÏœù¯ÐPÚž=O¸:–;öùç§7o>üùçÌ›—éêXîŒÕjŸ2ekFFäçŸw“9Û·¯ð•Wö_¾¼!44`ðcNV«]¥2(•F•ʨRTª6µÚˆŽ¤U*ƒZݦTP­ó£¼½=PÏd”!û#+æ‰Ú)£TY@€s/Ô6 €;‚ã¸P¨ •MMʪ*Ie¥H(TÊåúÎõ‰DæÃbÑbcCRSÙãÆE§§G@þÌ…œ¹´‚‚ ®#—6{v*›èêÐÜÔ§ŸžÜ»÷ÊÅ‹ÿpu nG,Öœ:UYPP~öl‘H˜<9>''}Ö¬Ôšv\PPþè£ÿ­­ÝŠú_Éšš”…… ¨[yyk[›…B!q¹Œ´4vVVôرܸ8&ÌÎ#V[›MnS«ÛÔj£R‰Œ*•Q¡0(•è¶Ájµ;âããäË`ø£d›3ý†RqAA~ÁÁþPZI5÷±ÿÕuëö:õJllˆ«c¹3?þxõÅ÷¾÷ÞâÇ›àêXúâÔ©Ê+vîÛ÷ôÍm6ǽ÷¾;kVê¦M ]ÛH€f*•Q.×+Ǹr¹^¡Ð«TF¥Ò PtºöÎ ô òE%Ôƒ‚:ꪣ«Ì:[÷…B( ß™LÖšIS“R(T66Ê++ÅÍÍ*¦í¯¸ 4šWxx`\3!!lÌNJJ8Ôot‹íܹ꼼âüür½Þ„ris椆‡C.í6¾ýöâÖ­G**Þsu îK­6žj'77cÞ¼Ìÿ~|•/¾8»cÇ™¢¢wúñ9 ‹­¢B„l%%Í55«Õä‹f°¥§G¤¤°™L*T×  ΤPè»Í·¡¡ •ê/5')îÇ`ø‡„øûû‡„øÓé~!!TßN÷£Ó}aÂ( {Ts íí– 6Ïš•²eËWÇrgΫ^±bçÿýß” r]Kß½ðÂ÷—/ן=»þæ‰J;wžÛºõhaátºŸKb ³D¢•Ëõb±F¡0ˆÅ¹\î‘Jufd2ÑY~Á ¢ë‚‚|CB:n£„\n VÛÖÔ¤ljRÖÔHjj¤r@i0tôÐ& 8Žá8N$ jllHffDjj‡CŠbÀՋÍräHÉáÃ%¿ýVk6[GŽÊÍ͸ÿþ´°0˜…Ü[‡?óÌ·Bá‡ð |[:]û¹sÕåÇŽ•¶·[Ðö6wnZ¿Ìz_»v_S“âÇŸ½û§0Œ™Í¶Š QII3ʱÕÖJl6‡Grrxj*;5•–Ɔ~lô’ÉdU©Œ …MwS( 2™N¡0(z©T§T”Jƒó:K2™H§ûÑé~L&58Ø?8Ø/$„úGŽŠ¦¾Á5 uTs ÿþwÁöí§ÿýC+sSVÖºhѧsç¦ôуCúJµÚ8yòÖe˲nN ¶µYÆŽÝøøã׬™í’؆„öv‹H¤‘Htb±F&ÓI$Z™L/•je2½D¢mo︪‹L&Òéþ,5$„ÊdRÑ!&J˜9óg®]0ÙlŽÖV5*Þˆ¦ 55)¥N׆a@ðô$;8ªåèáAæpèII¡))lÅã±ÂÂ(’«WtÏh4=ÊG¹4«Õ6~|lvvrå6FÔöµ²ò=˜vÙ{&“õÂ…š¼¼âüü2ÎÄã±rsÓ,Ó÷šóçÿ'99lóæ!v ×2™¬å墲²–²²ÖÒÒ–ª*±Åbóô$'%…¡[j*;11 kèÇ•J£RiËõ2™N©4Èdz…B¯Pèe2½\®W*ÿ¬3I$Pj-$äϱ&“Ædvü­ÝÀýARÍõd2ý„ ï½øbö³ÏNwu,w@"Ñæä|üÃOƒÎ@ßéõ×:qbMBBh—_mÞ|xïÞ+—/oáýK´Ú6±X+i¤R­H¤‹5‰V$ÒˆÅZ­¶ -C¡ ÿÐЀà`¿°°€à`ÿÐPúŸÁ ÂYÀµ¬V{s³ª©I)(œY´¦&ªæA"}|<‚ÉdE)´€Ÿ¤¤°èhÇŠgñxL&“æê•·g0˜ã>\ráBÍf¿ï¾ÄœœôéÓ“ m7øüæÙ³?ºxñQQÁ®Žeè±XlW®4äç—:T$—ëQv-;;9--⎞Çñää ëÖÍ^¹rÒ… `„Jµ¨V$ŸßR\,”Ëõ†1™Ô´´ˆ´4vZZÄèÑQpì@?R«r¹^©4J¥ZÔç¢sE´"4šJ°¡+’Y,ZHˆ?“I ñg±hÞÞÐ \’j®·aÃÏÇŽ•þþûëCèj£Ñ¼pá§f³-/ïïTª·«Ãé8Ž/Xð©Ñh>vìå.èét¦{îÙ´jÕä5kf¹*¼AcµÚE"MK‹º¥EÕܬjnV¡äYk«Æ9áÌÛÛ#,,€Å¢††„…0™´ðð‹Æb0~CzÎ"p U]&Ÿ55)Qö—H$0™To2™h±ØÔê6¥Ò€a•êÇŠ ‰‹cÆÅ1#"‚ íÄ¢×›Ž/=|¸äüùj‡Ÿ:5!''}ÆŒ¤À@êB¡òž{Þ=zô¥ŒŒHWÇ2„ÙíŽë×yy%GŽ”H$ÚÈHzvvrnnúرÜÞ|{Ö×Ë&MÚräÈK™™ðWÐop¥¥­¥¥-h6›Ri “‰qqÌ”vRRú7´Êê0´X­v…B/i ½X¬U(ô"‘Ý–Ëu …Ááè¼õ÷÷b±hèjfÃÅ  ñ  d2©0ß$Õ\L PL™²õý÷—.[–åêXzËfs¬X±³ºZräÈ‹,Öð™·!*³³ÿõðÃ÷¼ùæü.¿úä“üíÛÏ\¾¼aØ ÎZ­v±XÓܬniQµ´¨„ÂŽšD¢µÛ†yyQ""‚Øì@+ ,ŒÀbÑÂÂBCiPû ¸©T+tL>h"šJeÄ0Œ@  Ëú|}=¼½Ý‚ “:8æÏŠg%$°ââXqqL&“êêU}¡Ó™NœèšKËÎN€Oªþ¤Ó™^Û»÷©)Sâ]Ëpàpàee-å¿ür£¡A8{vêÌ™ÉãÇÇöÐÞæÀkk×î«­Ý Ã%”X¬A…"ËË[+*DB¡ ÇñÿÄİääðÄÄФ¤°ØX&|08l6‡BÑÑ™^"ÑÊd:‰D'“é¤RTªU( h5üF=£4[h(ºù6èOTs±çžû®¬¬õÔ©uCh>Äš5û¼ñË/ϧ¦²]K?ûßÿ®¬]»oÿþgî½7¶óýF£yüøw|pÜë¯ç¸*¶>“JµÎù:(yÖÒ¢‹;’g4š›ˆRhè6› ×!÷¢×›ågž …ÊÖV5êM¥zEE1Øì@// …B2™¬2™®¡A.•ê°?JÙðx,ÏŠŠ SlG2¥ÒpìXiAAù¹sÕ8Þ‘K›93²þÇqgí§Ÿ.Ÿ??ÓÕ± 7ÕՒÇ‹óòJjj$AA¾Ó¦%ææfLšpóÀdž ?_¿.8vìe—Ä `IJZí rT+²¦FRQ!B•œå"Q³á¸8&TûÀ%´Ú6”fkjRJ¥Z©Ýе¶ªF3ZÆÓ“ÌbÑ"#騅‡ƒnP¹\†¿¿—kã€!’j®T^Þ:kÖ‡;v<:wnº«cé­/¿<·qãÁ/¿|ìþûÓ\Ë€xòÉoŠ‹…'O®ërT±mÛ©ÿ»àÒ¥ n[õ¢½ÝÒÔ¤D-£:%fsGw¨¨¨àÈHúi3”E òóÑ›mñƈˆ ÈH:‡Cçpè¾¾žV«]«mohWW‹ëêdV«ÝË‹‚º ÅdzâãCy<&›…I‡…Âðë¯7òòŠoÜh"‘ˆS¦ÄC.mФ¤lX»vÎcMpu ÃVS“²  ]yøpÉÙ³U8Ž;ئM æÍËtÛIó"•j‡ñ55Òêj±Ùl£PH\.£ó‘|d$¤ÙpGZm›ó´ÝYXR ët&´æƒNÛÿ¨'IåpèÑÑ!P 0B@RÍe.ü”B!íßÿŒ«é‘H3wîÇññ¡ß}÷ÄH¿þè£ÿùÏÉC‡^HK‹pÞ‰ãø‚Ÿzz’识ãxk«¥Ðêêd ²†yk«ÚáÀÉd"›ÄåGG‡DG3пðð@˜ŽÜMÏÅI$"›èL›9o ™”2™¾¼¼ý«®–Ô×ˬV;…BŠe¢vèIIa‰‰¡L&ÍÕk –TªÍË+AÓt||¿™Ïoil”[­vrzzD|<‹Çc¥¥±Ãüý½º  [âÈ‘’üüòë×¾¾ž³f¥äæfLžïé •lÝË?þñse¥è矟su #jj{ýúÛΩi&“õÂ…š¼¼âüü2ÎÄã±rsÓçÏâÚP€¾AåæP¹ÈšIMD(Tá8ŽªÌñx¨< ŠF0„X,6±XÛ¥’M]´­Í‚a˜§'™Å¢uLˆ‰ ñõ…T:ÀÝARÍ Ê{l׉kRRÂ]ËímÞ|x×® ¾0$¢í_ׯ /Þö 3^~y–óN¹\?yòÖ³qãÂne±ØªªÄMMÊšT>^"(,@ˆŒ B§è” ÛÄ.t§Åyz4Ã0±XSU%Aâkj$uu2£ÑŒaîÏŠ ‰gÅÅ1ãâXÐû¸ž‹7úùyFG÷T¼±[ƒ¹´´…Ïoæó›KJš8ŽS©Þ©©áÉÉáÉÉá))á±±PÎqDkhÿòËu”K£Óý,5sfò¸qÑKs;wžûüó3EEo»:G¡0Œýö,[ºtl‹9³kGŽ”H$ÚÈHzvvrnnúر\¸œÀð Ó™ùÍi6 …Äå2âãY<]ÆB" ÿfð 'r¹^(T¢d›@ hl”74(Ôj#†a ‰Ír–wŠŽfp¹Ááá°›\’jƒíäÉŠGýïñã/§¦²]Ëm\¿.X²dÛSOÝ÷ê«÷»:WZ·nÿ¯¿ÞÈËû{BB(†a:]{E…èå—ÿ§Õ¶ÇÅ…TWKÑ$:Ý/11 ÇÇÅ1yf2©î6MíÆ¦’áÊ•“œ÷´¶ªï¿ÿãñãc¶o_1’/pV©ŒEEM¯¾zÀ`0ÅÆ†ÔÕÉtºv ‚|5šöÔTöãOŒgq¹ ‰¸iÓ¡õëŽÀU¼¹ù–ÅÉdbxx *â<èd±hwtnÙÖf)/oEÑøü–úz™Ýî`0üÓÒØ©©©©ì´4vxxà€­"bjk¥‡¡\ZHˆn.äÒ†°üü²ÇÛuæÌ«f³U«m×hÚÌfÛ’%c\×0‡ãø´iïgfr>úèÁ><e× *øüæÀ@ßéÓss3¦NM€Æ+•ÊX]-©­•¢ÿkjÄ2™Ã0ÔÎ<.ŽÍ@ÿ`ð€¡H¡046ÊäòÆFºªGzyQPÝH.—Œæ­Â0 ßARmP>]ùÈ#;ÝpšÚ?þñó×__X²dÌ,óô$·µYæÏÿÃ:ôˆjŠJUTˆP-ÇÊJ‘@ °Ùhì‰JõZ¹rRrrx|<‹N÷›6íŸb±îâÅ×##éee­«W-*·m{dáÂQ®^0üõ\¼Ñßß‹ËeÜiñÆnÙ펚iqqÓÂ7šjj$v»ƒÅ¢¡üšŽÆbÑ`ÁVS#ÉË+F¹4&“š““¹´¡È`0?öØ.™L«Óµ ftšÚÙ”)ñ{÷>å’ØFŽS§*W¬ØyæÌ+<ënž§©IYPPž—W|횀Jõž<™7cFÒܹ齟ý QMêwŽþ¯¯—‰DÇ BXX@t4#&†Í`³¡ C’Tª­¯— ŠÎÉ64BÂ`øóxL”V ‰e†…¸:^ÀÐIµÁƒ¦©1~{ö<áêXþÂfs¤¦nÐjÛI$"Çܽ{õÛoÿzõjãÑ£/³ÙÃ|ÆI{»¥ªJRQÑZQ!*/UVŠôz†alv`BBh||hbbhBBh\³±Q>oÞ¿çÌIûøã‡4š¶¥K?¯¬ÛíŽÑ£999ï¾›‡Êss3>ÿüW¯V®x㭈Ś¢"áMEEM|~‹Ñhö÷÷ÊȈ=:*332==2$Ä¿ŸV +…… yy%'O–75)™LZNNznnú˜1\è?t­\¹+?¿¼ÛcE‰´aCΓONô F–ü‚@Àú1yÙÚª>v¬´  üÒ¥:2™4i/''}öìT¯þz ÀÍÙlŽÖV5:½B5å„Bes³ÊáÀ1 c2©< X¡mi`ˆÒjÛPyX4Ò¹cXXÚÁQÉØX&\mè=Hª ž3gª–/ÿòر—ÒÒ"\Ë_œ:UùÈ#;1 Ç0ŒL&‘ÉD‡ß³çÿ&Mâ¹:´~æp൵RÔÿ }›¢ÌDPorr8ÇB3o¢£ÝNè9r¤äÉ'¿Y³fö¾}…b±Æjµ“HD”K³Ûh__¯ÊÊ÷ g 胞‹7zyQЩ]çZh(Íã(†¢¢¦ÂÂÆÂ†ª*±^oòô$§¥EdeEgeqÓÒØL&ÌEÝÃqüêÕÆ¼¼’‚‚r¡PÉbÑæÎ…\ÚðqåJÃÂ…ŸÞê·gϾz—Ó§@Ϫ«%Ó¦½¿{÷ªììä~r•ÊxêTÅáÃ%gÏV‰„ɓ㳳“gÏN öë÷×ÜŸÅbklT :«ªËåz ÃÐø{—BúÐ:€¡H§3 ò?rlÒêj êjuJ¨£==>>®'Ü $ÕÏ‚Ÿzz’÷í{ÚÕtõì³ßååÙli!ÔAí™g¦½öÚÜ¡>$j4šËË[ùü>¿Õy0ÍD"!6–™–ÆŽg¡DZï[·ùöÛ‹F£Ùjµßj™Ÿ~îž{búi ÀðÔsñF*Õ+*ªkñÆððÀþMÖ …J”E»zµ±¶Vêpà †f&gÔ(ÎèÑQéé~~#¨ô+¸SÎ\Z~~Ys³***xñâÑ99ññbn¦Oÿ ºZŒ.ÜîŒÁð/)Ùè’FŽU«¾‰4G¾4 ÝmµÚ¶üüò“'+Nª0›m£Fqrs3rsÓár @«ms A“]jk¥íí Ãh4çÉšé2¢Úg0<èõ¦º:Ym­´¶VZW'­©‘67+m6@àpè£FqCããCB‡}5/@ïARm\¼X·dɶ_~y~ܸhWÇòmm–ää˜Í¶.÷‰„©S>ÿ|•:”Ê¡,Zii ŸßRVÖZW'µZí )6–™”–”–œ–”Þ·«°ËË[xàsƒÁl³Ý2£F¡þïÿ¦lØ{+†çeP7o$ ý_¼ñVìvGuµäÊ•ú+W $-‰DLL 7.fôhÎèÑQAñºÀýI¥Ú߯[´hôm—tæÒNœ(miQs¹ŒE‹FA.mxûßÿ®¬Y³¯Ëá"™LZ¼xÌÇ?誨F‚âbáܹŸ|õÕã³f¥ Î+¶·[~û­6/¯øøñÒ¶6ËèÑQ3g&ß—ËèÍÃëëeííÖ””ðŽp!4¡­¾^ÖØ(¯¯—××ËäJ¥Ã0 …Ãàr\n0‡¥#Z¬V{Cƒ¥Ùª«Å••âÆF¹Íæ R½x¼Ž61ññ¬¤¤°€€½¸?Hª ’¥K·;Žžuu ]>\òä“»»Ý H$bt4cÏžÿ‹Œtß²š‹ÖŒihÖ¶¿¿WJJxJ ;)),99<>žÕm9Ç;ríZãƒî0›­ÎJ·rþükwùr`Èé¹x£··G\s€Š7ö@£i»zµ±°°ñÂ…šÊJ‘Õjð™4‰7v,7+‹›˜v÷»ê~ÿ½î‰'¾öóóºrå[-ãÌ¥;Ɖ411! dB.m„°Xloj4íï$ Û¶=2~¦«¢ V­úJ(Tåç¯ÐijÝ2›mçÏW”;VªTx\,•êx]©RÑ$È¥d‰vìØÎ£KL ;yrk£Æl6ÇŒDEïÞ½ÊÕ±tp8ðk× *Ž)A3g¦äæ¦;³k••¢éÓ?@ “H$:Ýw×®ÇGæ¸4jÀíX­v‘HÓ9ÍV]-ih¡«—<=ÉNp|<«óifDDÐPïvÀH ‘h««%¢êjqU•¤¦Fb2Y=<È ¡))áÉÉá))áIIaÐy€á’j®ºZ2mÚûÛ·¯˜7/ÃÕ±tõ×_yåG4¢Š‰D‡Ã±páè·Þšâß·§åó›¿ùæâ‡.ëÛÃFsiiKqqsI‰Ïo8ŽÓh>iiìÔÔŽ,‡CälŽã'OVlÚ”W_/%èâ²n‰„I“x{÷>5˜á o~ô(̘(k ²§=oôññˆíZ¼1,,ÀµS¾p/-m¹p¡æüùš7šŒF3›8uj¤I¼qãbú¼ÿ‚‘àêÕÆU«¾ÒjÛ­Ö?;D†‡nÞ¼8/¯øÔ©JµÚ8v,wæÌä3’!—0 [½úë‚‚r´ÁP(¤§Ÿ¾¥`Á@Ø»÷ò+¯üxòä:÷Üûª«%‡=1;;¹¸XøÙg§œ)$‘@ ¼ùæ¼Õ«'»6ZÀýÙlŽÖVu—³Ñúz™ÑhÆ0ŒB!……t¹š3>>ÔÓs`[ î†ÝîhjRVVŠÊÊZËÊZÊÊZ¥R‘HˆŠ F kP¦Á€¡†$Hª ¸—^Ú{õjã¹sëݰ9í¢EŸ6:óC$‘Áðûàƒ§OOìÛêt¦-[ŽìÙó;‘H¨©ÙêåEéÍ£¬V{e¥¨¨HX\,,)i®­•Úí*Õ;##Ò™HãpÜ¢¯›Ã9R²iÓ!‘HƒãXç݇@øso¢PH••›}|`Š÷ÝÂqn™õ\¼MÕw“ÉgÝÒéLgÏVž;WóûïµB¡ÒÏÏsüøØ â&NŒKL uùÔRàæpÿüóÓ[·Á°næÝ.78''=''#%%Ü7uùrý¢EŸ9>žmmæ.Ë„ìì¤ÿüça*ÕÛ%AC—ÕjoiQ J@.(…@ hjR¢óV//JTT0*ÙñDÊ/à¶ôzSe¥U᪩‘¢¶÷þþ^ ¡¨%ÇÌȈôð€|9C$ÕVK‹z„÷¶lYò·¿ÝãêXº’H´£G¿ƒ62™ˆãøSOM{ùå™}®ö{ð`Ñë¯ÐéL¨BÔ¡C/ŒÃívI‹ÅV\,D_$Îöž¾cÆD ZEÇ»aµÚ÷í+üç?i4F»Ç°ŽˆL&¢¢ öõ׫fÎLqi˜CÞ™3U›7./‘H|çù?>鎞¡‡â$‘ÍtŸâ·%* ÊOœ(¿r¥ð¬,îĉ¼‰ãÒÓ#Éd·KØ÷¤Óµ?ÿüw'OVvûÕO¡~xüæÍ‹?00$LŸþAuµØáÀ½¼(ÕÕ[ ;ãyê©o‹‹…gμ2„º/œ8Q¶rå®nE¡™Ì€Ý»WuiÙ€>p8p±X#(›šB(T57+…B•Ri@ ù¢Š‘ómlv ÓànPW6g³›ÒÒ“ÉJ¡¸\†sh4%… ×ëàžàku`}ùåY:ÝoÉ’1®¤GŽ”†ˆD—ËøðÃe·ÊÝVU•xÍš}ÅÅÂÎSµ®^8ŸÐáÀkk¥|~óÕ«……r«ÕîåEIMeOšÄ[³fVV׳h]P(¤åËÇ/X0jÇŽ³Û·Ÿ¶Xì6›D"S¥R-†a$¡  ’j}–—Wü¯¯­•‰†á8މ„ÆFÅ­–ï¹x£¯¯gLL‡COK‹ÈÍÍp“â½aµÚÏž­*((?¾F(T2™´œœô矟>v,·—Ó@pª¬=öØ.‰Ds«‹i¬VûéÓ•ƒBV®œ¸~ýD"áž{bÜÿósˆ:{¶êС¢]»B5 Ãjk¥ ©s9Y'«Õ!kæÌùè7 $p·ˆDBxx`xxà„ ©àlÕ&‘he2]S“²´´åÈ‘¡P…þi4‡ÎdR™Lªó¢ÒØXæà×+†à`¿A~QÜ…BŠgÅdzx`,†aíí–Š 1*YZÚrèP±ÅbCˤ¥EdfFffrx<\T €›€™jH©4demZ·nÎSOMuu,ݘ=ûC>¿ÅÃüò˳ž~ú¾¾  æ­[ìÞý@@Ô"‘0}zÒÊ•ÿ(ê(”Éô†EEgdDfdDffF¦¤„­1£n©ÕÆmÛNïÚuÁl¶’HÄuëfôQ¾Åbg0üJJ6º:º¡çÂ…š÷ÞËãó[œÓþœî»/áûïŸÄq\"Ñ¢œª€!*¥ZmÄ0ÌÇǃás8ÁQQôÈÈà¨(zTTpxxàÐÿ5›mçÎU8Q~òd¹\®Š ž939;;eܸh8~}ó×_{í€Ãwþ îÖéÓ¯$$„NT`h1™¬oêt¦M›®ZÙ‘þ'—ë§M{ÆŒ¤?~ÈձܙììUT´öpJ*/X0úƒ–ÂŶÀ ±Xlb±¶Ëå§\§3¡P²­KûðððÀ;ñ\ºôsoo—_ž•ž1@/À0`µÚkj$ee­|~ Ÿ/,+k5›mÞÞ©©ìŒŒˆÌLNzzDTT°«Ã`䂤Úú÷¿ ¾øâlaáþþ^·ZF£Ñ455 fTˆX¬_µêçÔTÖ‹/Þzg]18†ayyů¿þ“FÓÖí(­·7¥½ÝÊdRÓÓ#32"P.- ÀsÝZ•ªmïÞ’cÇjx uÚ´˜-[Î66ª?ÿ|>—èêІ´E]¼X·yóá7šnN§!tº_P¯P¨4›m†1þ‘‘ô¨(”?£GEs8Á!!C¸Å«Åb;w®úСâüü2£Ñ\ráBÝî˜:5!''}æÌäž»»•——£qÐâCÔéÓõÅÅ¢¶6+ú±½Ýb2u”hÓéÌè†Åb³X: Þ¸qDŸÁÊåò¤¤¤>?ÃpýŽÃ0L"ѯ[wtÏže®d ˜ÍfN7uêÔÁé¼úâ‹{÷ï¦K5§Á·téÒK—.?¾—ˋž4t8I"9þ¸cF$â$’ã÷xx8Øl™ ' ýýáöïßïê@ IV«½µU-väØZZT­­š–•TªCÉ62™ÈdÒÂÃä(î IDAT#"‚ÂÂP¾- ""(<<ÐÏϳ7/ãxTÔ:T2šL&Úlx|<ó™g¦-^<†HüËØ@¸çž{""`6¸3ÍÍÍ—/_öcÝ6›£¾^æìÇV\,´ZíTªwzzDV7--bÔ(uV@T(=ÿüw—.mïi®züáÇûvýBiiÙ¡C»v]³Zí=—#°]»Ÿ=;õæ_¹j­™Je òuun­®Nöæ›ûÎkèåçÐÕ«oö¼C !mm–#GJP.Íf³ßw_bNNzvv2šÍy[ååå†%''p˜Œ8gÏží—¤ÚpýŽ;uªrúôDWG1P\õ·++kÍÍýäÉ'§®_?w_úfK—.Å0 3Cüí ­¶M"Ñ¡nm¨Œ$jÞÖܬB—YS(¤°°€*‹EC•$Qÿ¶˜˜_ß?óm*•1%eCçg& 8ŽÅÄ0ž~ÆÂ…£e' ¾}ûÐW½·ÿþeË–´±n®Ïo.*–”4 E" ‰Däñ˜éé‘‘cÆDÅdzî~š) 3²«¶¾ùæ÷iÓ’Ü6зŒZIIó /¬­U`F¡‰Äî›Ò# ùƦn“j#dÔnËjµI§û45ËÊZL&+™L$ ÎI3]J·Ý§zÉáÀ/]ªÿõ×GòÕjcFFäºusrs3Øì¡½^€bgÔ\E§3=ñÄèW^¹ßÕ±tƒFó¡Ñ|âãY“&ýå~®ÍfkmÕ´¶ªE"uK‹úÚ5LÖ1¹B!1™Ôðð@6;(<<úŽD¡œ\Cƒü¥—önÝzôé§ï[±â^«àP©Þ'ò&Nä¡e2}IIG‚íý÷ªTF??ÏÌLNVwôè¨Ñ££†Må'\¾¨„@ ¸r¥á»ïžpu ý,5•½iS¶LfôðliQµ´¨ZZÔ¢¥Em2uÔóð “H‹ÅnµÚ \0ps‰‰¡G쌱ÉÉÉ^W'åó[JJš¯_TVŠÌf…B$:rlA »¼.VŸ ýõÆ¡CÅR©6))ìé§ï›7/#2’î길ŒÃÿýïßëõ¦O>y¨KÕ#7G¥zS©Þ‰‰¡]î·Ù‰V$R77«Z[5"‘ºµU]VÖ"*»}”Z“H´o¿ýëgŸzî¹é WÐG!!þÙÙÉÙÙ•¤RŸß\XØxþ|ͧŸž²XlL&5++zìXnV7%… §!ô|K ˆýû¯²X´)SzÛ¶}¨  tº/î{sÑ9•ʈŠn·´¨QÃ[@.(ìvL1½A$x<ÇZ²d †av»£¶VZRÒ\RÒrõj}MÔjµ Ý‚»-ǯ^mÌË+9r¤D"Ѧ¥E<ûì´9sR‡ú|;ýbË–#çÏ×üòËs¡¡®Ž ÉD6;ÍÌÊŠî|ÿ7ßüþÆ¿ØlÝW¦ÁqÇ1¹\ÿ替0+ÏŸçæZ¼½=%d†-&“ê̱µ·[JK[øü–«W?ù$MbKL ËÊŠÎÊâŽM¥z»:^†Hªõ?Ǹº`AæˆJõùù¦§CYÐ?H$bBBhBBè²eY†ÙlŽšI{»ÅÕqõV]lß¾ÂC‡Šš›U\.ãá‡ïÉÉɈg¹:.îâÈ‘’Ï??ýá‡ËÒÒàð ßH¤¹U/"‘@¡Ìf‘ˆÅLJ]½zÄß?S§3AR €~äíí‘••½zõd Ãšš”…… W¯6”þùi"‘’•Å;–›–CXô’jý¯´´¥¥E=~¦«`ø “‰IIa®ŽâöÌfÛ‰e{÷^>¾†Fóž;7}Á‚QãÇÇŒ¨;€Ûºx±î¹ç¾[½zòƒŽsu,ƒ¡µUíp8œ?’H$w88æ=aBÜ=÷Ädeq“’ÂÉd"ðJfæ3L&Õ…Ñ0ìq8t‡þÀc1 “H´……×®5^»&Ø·¯Ðjµs¹Œ1c¢Æ‹?>†Ëe¸:XÜ ÔåëùùåApÑñ0# W®\yÛÅêêêÐ…WÎ^TTD&“üñGçýôðð(--Å0Œ@ ÄÅÅá8Þù çÌ™C êêêúmMîœËp8Ž_¹Ò°ví¾ôô7^xá{*Õ{÷îU%%?ø`é„ ±îŸQ»y»í²w mÕ8Ž/_¾ÜÏÏo0í“Ö¥—;¦FËÉÉillìåK÷~ßq«Ýß­‚é–ûD2îf÷ìÍ’wÏùýH xàÎ[ÎÐû…‡Ápõjã#ì\°`ÔÛoÏwu, 6à› ƒ è›æf•ãoÌà`ÿ¹sS7mZ˜Ÿ¿¶¬ìÝÿþwåêÕ“ÓÒ"Èä~¨¼›£‘~|õ»ÑùpÅÉÛÛ{„ ÅÅÅw$vë8ïò¸e€ž ‹6o^ÆÆ }©ªjóO?=·lY–Zm|çƒ&lÎÌ|û™göìÙs±®NæêHp TëùùeÓ¦%º:Š?544»:Š!ï×_]°`A·¿êü¼úê«·zxffæë¯¿þ /h4 ôZí3Ï<óÖ[o¥¦¦¢ÅAII‰óQjµúüùóý¼& _•–¶¼ñÆ/£F½½hÑgÍͪ>XVUµyÇŽG³³“)’«£ë­[m·=C[µH$úþûï+**"°ÖËóâÅ‹b±X$;wÎáp,_¾üVOØ›Ï[­VûÈ#„……=üðÃJeG§@·ÚýÝ*˜învOçcôH ó÷ãöíÛ7@/4lTTˆydçĉqï¿¿t’F®0œ‚ƒý}ôÞO?}øêÕ7ùü_|ñèÊ•“RRÂI¤œ¼›£‘¾½boƈú :9‹Å|>?..nÙ²e]®†¼K0„0 óöö?>æ…f|ûíÿUWo¹tiÚ5³ìvÇ?ÿytòä-qqë—-Û¾m۩«µû‰ {Tëg2™¾¼\tß} ®äO‡Ã9h ú,??æÌ™Ýþªó;¼uëÖ¾aÆàà`tPµ~ýúÐÐÐW^yŹ،3:O—9tèД)Súq-@‘ÉôÛ¶š:õŸ³f}xêTÅêÕ“¯]{sß¾§ss3¼¼(®ŽîŽÝj»íÚªÛÛÛ1 ‹ŒŒ€¸\/wLƒÁb±BCC322vîÜyñâEN×íöæóöÁlii9sæÌÕ«W•JåÓO?îw«Ýß­‚áîf÷t>v@:?>ùä“Ï>û¬D" ×š›U?üerrØŽ¡k/ú 6`8íÚõøæÍK-8h/z7G#}{ÅÞŒõ9trÊb±âââÞÿýšš¹\~—Ïß !‚›q8ôåËÇïØñhYÙ»—.mxë­ù>Û·ŸY°àÓ¤¤,[¶ýÃ_¸P 60¢@R­Ÿ6H„ âúñ9,XðòË/£Ûf³900ðÈ‘#†Y­ÖuëÖ1™ÌuëÖY­V›ÍöÖ[oEFF2Œ+V Y÷Üs†a,VG{IFóØc³ÙìµkךL&4ûÔ©S‘‘‘¿ýö[?F~7:®V«1 Û»w/Ç3XwkÝ9þ³gÏÞütû( ÃòòòÒÒÒ¼¼¼¢££÷ìÙƒaX·o †a …Â×××ÛÛ»óÔuçíÎïp·sÛÇ0ÌÃÃc÷îÝ_}õÕ–-[¾þúëÝ»wS(æ`xàýû÷;¯3:pàÀ’%Kœ¿ív-ÂW_}•˜˜È`0¶nݺgÏ.—K£ÑÞxã ô¨žÿâ£FZµjZÒ`0øøøÝüçÈÏÏ Ü²e‹s5<ò /˜ÍænïìÓß}Ù펓'+V¯þ:+kãG姤„ïÝûÔo¿½þì³ÓCC\]WÝîD‡ã³Ï>KLLô÷÷?~ü™3gPá…fK>|833ÓÇÇ'44Ôy>àܪoÞþ&Ý>ð¶[ìÍÛùøñã?þøc ÃT*‘H\»v-†av»ÝùaØË5Ç×®]›‘‘¡P(°;Ù1;#‘H†Ùl¶nß™.Ÿ·ØMûŽÕjÍÏÏ߸qc|||LLÌÆ?Ž–t«Ý¿ç`nõ—ýþû‚Þÿý[-‰ãø_|‘””D¥R§M›vøða´íõüÙ~ówÓPÿPœÝ³Ûï)¬¯›ÓÍ_šØ_÷# Ã^z饄„„'žxâæ foÞívû|Àãñüýý'L˜påÊ•Âëbˆnr¹~Ù²íL&u÷îÕCñ 'Ø€Gæ ¸Á<A§$»wï¾y8ëî<èVcD}8Æn:\éŒB¡xxxÐh´~ó!P·ãZN7ŸÒ:õÿºÀáÐÕm‚íë¯[¶l{bâëΛÅbsu¤ 0ô«7ÞøyΜz¿¼T*=sæLÏËüïÿ‹ŒŒt88Žm0z¦¬¬¬¬¬¬÷+ØçµÆq|ÅŠ>ú¨D"a2™W®\AwÞ¼Öãûí·o~º}”Á`ðôôüâ‹/Äbñ®]»Èd²Á`èö Äqü«¯¾Ú³gþ×7Óyû¶w:î´~ýz ÃÞ}÷ÝÎwbVUUÅb±ŠŠŠp×h4>>>hô¿¶¶¶Ûµ@z衇t:Ýÿû_ Ö.]ªÓévìØa˜B¡Ào÷?zô(NG[Ôwß}—œœŒ¶´.åääètºŸ~ú =-z†™3gÖÔÔ\¾|966Öù´]î¼í_¹_¶¨AÐÐ Û¼ùpFÆ[¡¡/ææþû‡.étí.Œ§—ïÛÍ;ÑŽ;BBB~þùg‘HtäÈ6›6°.Û­ó†N§óððxüñÇ[ZZ¾ûî; Ãd2ÞãN6-±XÜío»ÅÞ¼oܸqîܹ8ŽooÞwl6[mm-Úãpߺukzz:îf»ÏÁÜj“À0lÉ’%jµzçΆ)•Ên—ܹsgxxøñãÇåryAAAll,zÇzþlïòÝ4 JgΜ‘J¥·]¬}þŽ¸Ý³Ë–هͩÛ/Mü¯û榦ÆÛÛû믿îòº7o}ôQçõ »ÕÆÐå­¸  —»¾ÑhŒsç~<~ü»‰v€^¢_<ðÀ¨µXÏ`và ¸—;Àýa¶oß¾ž—´£‘Îç•è¥;$Ü|ÔíÞ§saü¦Ãtrª×ë[[[ŸyæÔæéåÀWÏCX7ŸÒ¢ÒÛÆßÃñL·ß:B¥¼{^ô;«Õ~ãFÓ¶m§–/ß÷jhè‹ññ¯­X±sÇŽ³UUbWGÀ€€š~6gÎGo¼ñsï—ïÍðÑhôõõ-,,ÄqüÁ|íµ×Ðý bqÇgSAAAFFF||üÏ?w¼zEEºÝù;Ìb±H$çXüÏ?ÿ‹àóù½ x0“jjµšÍf§¥¥uþÖ¼y­;Çßí;Ðí£T*…Bù׿þ¥V«‡^¯·Ûí·zøâÅ‹U*ÞפšóáˆÃá˜?>‰DZ¾|yçõE+Ï>û,ú÷ÝwÙÙÙx§ƒ˜›×âÿٻ︦Îõà‡½!H 3ì nTDU;ÔV­Û¶¶µµÞëÕŽkk­«ÖÑÚºPp0ª(ЏXÊ6a…„’0Bæï£\~‚8Ix¾Ÿ~úÁñrNrÎû¼ïó ¿ÍÏÏ—J¥à•ŸËËËÿñ‰D$éöíÛR©4,,ìûï¿ïÿF r÷î]©T*‹Ñ§}eŸ¹téRÿ ½ñµïîK2žTkkë8yòÞœ9?™šn8ñ?Gޤ76²±J*òß­ÿAäêêzæÌ™Þ;üù矃_fôôô”••uttˆÅâ{÷îõîƒè>ðº¾ÇJÚÏsssuuuÁöíÛwîÜ©¦¦Æf³÷ïß&ÂÇú3ZΑJ¥önûÐÌ^jjj3fÌ@ãpû_¼rìôþŠÃá|þùçd2ý ÈÔá?x0ƒ¼³è{oÞÓÍÍíüùó½‡ . ±Á?Û_1ªJc–TËÃó•=s»Ó€_šÒÿõðË/¿èëë×ÖÖö¾î€{#…B鿽¯ ¯¯ÑÛF/©ÆbqgÍú¯—×7tzËh<ÿbbv`Ü!©@a CHªÙÙHßëJô™_I•½r4È=ßôZXÚït¥/]]ÝÒÒÒÞíâÀ×Û$Õ‰ó™ßßQ:‚¤æzlË—ÿfg·ÃÔt«·÷î­[/\¿žßÚú 9#Pþq$ …â’’/¯î-¤­­ßÙÙ™””ôÁ ·ÓétSSS%%%%%¥àààêêêšš‡•'.\øÊS1™L±Xlgg‡þÓÞÞ¾¾¾ýÙÉI†úÀ¡p8ÜG}TRRÒÛsh«ÑÛÑø_÷èÿ(CCÃŒŒŒÇ[XX̘1ãþýûÊÊÊ>¼££C(¾Zò[:´f°ý~þüù»wïÞ¹s'>>>!!á•ûÇÄÄÄÅÅI¥ÒWê­ ²ízzz‚ ÕêúþŒ áWQQ‰ŠŠºzõjKKKzzúòåËÜ tþµ²òÿûÄèý[999õ>í€7Ê©Tzÿ>míÚ?}|þõÝwS(ÄK—Ö?|ø•l–yDÿƒ¨ªªÊËË«÷ƒ?ƒºº:F õõõ=sæ zãë ºk ø@Ô {,2Ð~îíí­££““““™™9þ|ooïÌÌÌŒŒŒyóæ!CþXËÉÉ üöÛo_· ƒ˜½WàîÝ»èâªA6°¯‹/º¸¸´´´äääx{{÷Þ.S‡ÿë‚dÃÑí `À{VVVº¹¹õ>ÄÅÅeð |Ýw“|(arx¢†±; ø¥ùº×Ú¸q£··÷š5kz¿(ÜëêêÜÞ×…×—|íÕÕÍóæýÌç ““·’ÉxLbq°ŸMcv6Òÿ’ä•á W®ƒñ¦×Âýƒé½8íìì\»víªU«yø€§@ƒlÈ[Ƽɩ œ)*UUeoo«?žyîÜGTêw))ÛW¯žÞØØ¾yóy7·¯'OÞ»cÇ夤gPÉÈ7Hª¤ªªf¡Pìäd:âϼlÙ²øøøÄÄD__ßÞ¯ccãÞoS6›ýøñc333:ŽþöÙ³gûöí{åyˆD¢ŠŠJUUúÏÊÊJsssôç¡|ý±ººº#GŽÌž=û“O>é½±ÿV£·£ñ¿î/ÐÿQÝÝ݉$..®­­mõêÕmmm><%%%44´o`h;¥†††¡lÅ+ollܼyóþýûvïÞ½víÚWzÀN›6Çãeee¥¥¥-X° ï¯^·íƒÊ;síڵ˗/O›6 -Ð߀%ÈÑIC‚Ðh4ô|èu7Ê6»óøñ»AAÿ]²äײ²ÆÏ>›ûèÑׇ-Ÿ>¢¬üÚ:ì2«ÿAdnn^PPÐ{‡’’’ÁŸ¡»»{ñâÅŸ}öY~~þ±cÇÐû}¡»Ö€Šþû¹²²rXXXBBFóññ™9sfZZZff&šTâÇZRRÒñãÇccc322úoÂ?˜CüËô×ÿØ9pàÀîÝ»“’’N:ebbÒ÷W2uø¿.˜A6ü•+¢ïI&“ûîueeeƒoàë¾›àC “Ã5ŒÝiÀ/Í×½–²²òüñàÁƒ'N · ¸7Z[[¸½C OŽv€²²Æ… h_¿¾ÙÜ|°\‘|xœìÀ€Ì³³‘¾—$½r4lýÏ"95ÒÖÖ~ÿý÷KJJzcCødCÞÞÐO]àth}út‘H´gÏž•+WöÞxêÔ)‡3ø“oÙ²¥¢¢"''gçÎ+V¬äF¹]µiÓyŸýøãMrbâæÌÌ/?þx& ‡uhÃ4àA´jÕªÏ>û,!!Á`¤¤¤ ]ÄÑÓÓ#ÔÕÕ»»»wïÞ Çë»W¿Ñ‡ö€ûyXXرcÇ&Nœ¨¦¦6kÖ¬3gÎÉd2™Œ ùcMGGÇÑÑñ‹/¾X·nŸÏÓó6ðuŸ‚p8œ]»víÙ³GKKëùK½¿•‘Ãð`†þÎxÏ 6ìØ±#55µµµm„‰^Mýã*؇&‡gïž9ŒÝiÀ/ÍA^ËÆÆæÇü駟и7®[·®ïö~óÍ7ƒ„'§;@^^MTÔQ++ã+W6ëŽñ«ØÇÉ Ȭ±?d8h@ƒ\¾Nÿ³ˆÁ/½õõõy<Þ çHž eC†úè#]]]´­:ŠËå~ðÁ†††x<þ£>êììäóùŸ~ú©™™™Á²eËØl¶T* …Ó¦MÓÕÕEÕÖÖ¶råJ<ojjºmÛ¶îîî×Õ8ИõT;|ø°§§§@ J¥×®]355E«H÷ßê¾ñøðQR©ôÒ¥KvvvêêêNNN >\  }›zíÝ»‡ÃÙÙÙ¡â¤ÿÿ/üJêW~æÌ ¾]²³³•••ããã¥}jUß½{A£G¢÷é½}À­@þ…ëþ?å_·n––—Ëí½eð§EŸáÔ©Sd2ÙØØxÓ¦M½Oûʃ¿ËRè©ÖÒÂ;r$}ò佦¦[/>–˜ø”ÏbÏ åï6àA$öìÙccc£««;yòd´£Õà…Ô8`dddiiyìØ±eË–öÝ«_W/¾ÿ ‚t{ì€ûy{{»ªªêÞ½{¥Rigg§ººúŽ;z_hð¼ïÏÝÝÝ eçÎÃ80û뿯|ÞößÀ¬¬¬¿ˆeóð]0CgûßS,ÿüóÏvvv¡¡¡ &&&nààÕüGïCilzªñáùÊž9¼Ýé•/Íþ߯,‰$88¸7Ôþ{£H$Ú¿¿½½½ŽŽÎäÉ“Ñ=à o¤v€‘í©–™Iµ³Û±té¯=#õœc`(}¹`–ÍzªPÈ?õTû«]é@ÃAÒ¾Ù#ðž¯üüÊYD{{ûà§+b±X__¿ººýç¾Ü×wýcÌÒ!œÏ¼åÃßètzªÉ¡PüäIåþý7ÃÃZXl·°Øþóþý7³³«D"1ÖÑ0%),±9Ÿ}v¹¶¶õÒ¥õÿ|×—X,Viii``à¨5ÂÐåó®®®oó$r·Õ 﫯¾¢ÓéçÏŸâý+**^ùôðÆ4"{Ô0H¥Ò¬¬òs祤©««.\è³bÅdË1cØFêï6¼w (’7=üßRrr²¥¥¥§§'úÏ+W®ìÝ»÷éÓ§où´#ø¡t÷î]—WV ¾‘‘úŽƒÃsèFjÁó“Û·ËÖ­ûsâDÛ“'ß×ÒRû'3‹/FäòåËoù<°ÝHíÀ#õÞ˜SRRºtéúÕ6lp62–Þò¯=R§C—/_^²d ¼éòˆËí~ð "3“zï•NoÁá´BB\p8m¬£àUªX PX,. u¼>ŸßØØøûï¿_¼xëXÆ›ÝyáÂãØØìÊJ–««ù¾}‹"#½õô4±Ž €±†Éá_XXøå—_þùçŸNNN………»víÚ°aؽ:cã·ßîîÝ›ôÎ;“öîRSSÁ:iúúZsçºÏëŽ Þ’ž^š–V²eË©Têçg3{¶Kp°«ƒë0x’j#©¹™go?ò Õ=Ož¾·¾¾|ûbU6…';åÁØ{Ë÷ŽÅâ­^}šNoýý÷Uþþ6#ÚØ‚ò Þ; cDÊ?‚qèòåË«Vý×Ðp†X,AoÑÐP51Ñ# ŒuI$cc=AHÔÇãõLM ŒuÕÕaÁ‰|¨©iMK+IK+yô¨BEEyÂÛ€Êܹ¶¶&X‡Æ#øàI>‹ÅÅ ýõàúõ|¡PãèÐ;°4 Àh(,¬{ÿýÓúúZII[¬­±€ñ¨³3ËÍiiéhmå55qZZ:X,.‹ÅmnæQ©ŒÊ™L.Çï½?§M$ê“HD¢¾©)Ž@Ð333$ôMM ŒõTU•1ÜЙŒG—¯±ÙYYåii%‡ßÞ·/™LÆÏžíâ:i’ÔÞc2@#I ihÀÑ ÆººW¯æ;÷¨°°ŽLÆoÙ¼xñ=¬ã ˜nÝ*޲弛›ÅÉ“ïê`ã—²² G è9;› x>_ˆfÚZZ:šš8Íͼ¦¦v&“[PPÇdrÛÛ»zŸÇÄDD2  LM }33šo35500ÐÃmÿch¨ááÅç ³²ÊÓÓKnÞ,<}:“D2˜=Û%4Ô}út d×Àhƒ¤ÚH‰$ªªpЀ™¦¦ö3gÄÆ>imí˜>rúôªà`W˜X`”…â={ÿýþÊ•“ÿóŸ(¸x@ÆijªYYá­¬ðþ–Ï2&“ÛÔÔÎbñÙ,ïùó¦{÷¨ ‡Ï¢wÓÖV·°025505Å™›ãÌÍ I$33œ¹¹¡ŽŽÆnÍø¥©©6{¶ËìÙ.‚””4¤§—¦¦Ÿ?ÿXOOsηðpÏ3¡¤%°c$MMµÞÏVÀXÊË£Ÿ<™yóf¡¶¶Æòå“V¬˜ Õ·Œªçϛ֮ý“ÅâýñǪ7¬Ã¼-MM5kkã×)q8] ·¾žÍ`´75qêëÛêëÙ99Õ ìÞ1a}}-33œ……!‰d`jг°0´´4rr2Åá`qÛhqu5wu5ß²%˜ÍîLO/MN.X³æee¥€ÇðpÏ9sÜõõ5±Ž(Hª$®.ÖQ0Žtw Ο|æLVUU³¯/ùÈ‘¡¡î°PÀh»z5ïóÏãIçϯµ°0Ä:œ·"•JëêÚ**XT*ƒÁÐ&‘º°Ž Sc£ÎŽ—íí‰ ÑÞžhnŽSRRÂ:(Åa` m` íèHêÿ+6»³©‰ÓÐÀnhhojjojj¯¬dee•76¶ "Aôô4-,Œ,-¬¬Œ¬¬ð––F––FFïA††:11þ11þíí]ii%ÉÉŸ~zé³Ï.Ϙáì:w®;¯‹uŒ@@Rm$ik«CR €±Q_Ïþí·»qqÙ]]‚ |Ž[éáa‰uP_w·àóÏãâãsW¯ص+Bî*Š…âššVQQÁ¢R›**X¬înªª²•¾§G ëÁðI¥J439¹í¢­­noOtp :8íí  ‰LÆÃÜ#€Ñ`h¨ch¨ãâ2@#7‹W_ßVW÷⿊ VFÆóºº64Ù†Ãi£ 64ßfañ"妭­>æ¡8p8m4»Æát¥¦–$'|ýõÕ/¿Œ÷ñ!GDxEFz›˜èa#cJR©ëDzeÇI$ƒŸ^6ô‡°X¬ÒÒRCC¹™àÜÙÙi``àêêú6O"w[ FÏ0ö¨û÷i§NeÞ¾]ŠÃiðÁ´+¦‰ú£¡l*))áp8:::X€¢a³Ù...aØÏßqòK tvvr´ä#“É9p`YX˜ÇX…6|--ee55­T*ƒFcÐh &“‹ ¯ëâbF&ã)’£#‰B!‰‚,^¼833ÓÝÝ}T£êêÒæó5ŒÚFõUd‡TªÜÚŠ××oWWÅBñEEE—/_F„ÇãWW7£ÙSI¥2*+Yb±A"QÍ®¡o½££) d‹’’’»»;‘HÄ:Q$+#ˆ’ŠŠ¸ï‰Š’’øí×™K¥Ê"URÅ!_6ÛPMM¨£Ó9ª¯ò¦˜LfQQ‘¼ŒuK¥R‹[[û"Ó†þP_ßÖÐÀ Å‚ë’ÉÆÖÖÆÖÖx´"%™lll ­†‰Ëí¾wš–VrãFaOͮ͟ï 'Ã` ©6’¶omll]7ô‡p¹ÜºººÑ i4èëë[Z¾Õ’ yÜj0z†¸GñùÂøøÜ¿þzP\Üàìlºn]Pd¤·Ü­)uuu\.ë(PL–––úúÃOÕÃwœ¼džG\\ή]׌uOž|ßÙy€)¨Ø’J¥µµmhæìeÉát!B&ã­¬þ—?st$ ÜÑáÀ?¥ù|UK‹ÅÒæóUµµ…^^,eåQz©×ðü¹‘£c«––øŸï=r::ÔŠ‹E"e==ÐelÌWS•&Mš´}ûö%ŠÛÑÝÝ7**˜h m2î ‰B!YZ)+CÝH˜Y¼x1Ö!Œ.OJ520èqp`÷Þ(‘ ¥¥ÆZZ";»ö·|þâbcMM±½=ûŸïú/ÑÞ®¡ª*14äãñ|CC¾ŠŠ¬Œ0£sŒä—X,a08uum55­ÕÕÍtzKuuKuusGG‚ ººd²±1™llmG³nff88yºöö®[·Š““ŸefÒ™1ÃqÞ<Ϲs= ':Hª¤LIL|š™ù%Ö PššÚÿ=ëÒ¥'lvWX˜ÇêÕÓ'L°Å:(ã“ÉÙ±#.=½tåÊÉ_=_WW눉DZ^Τѵµ/ògtz —Û­¬¬dii„¦FÐ4 ™Œ] mlÔÔ´ÆÇç$%Ðh 2íáE¡ Јb´Ñé-S¦ìKIÙ>ö%£%innuRRÁµkyíí]¾¾Ö^ ø`;טÉä ëØÐDìóçMÍÍ<AÔÕU­­Ñ,º¬ÍÉÉtÜÎdFD"ýùç[¦……yüøã=½ÿ âoÝz!=½ôÆmVVø·|•ÔÔâU«~ß½;òÃg¼åS ‚ÍîLO/MN.¸w*KÐu?ááž$’Áè½èxÖÜÌ£Ó[ªª^¤Ùèô:½™Ëå#¢®®jee„®f³·'ÚÙˆ°ëq¹Ý·nÿýwaFF™²²Rp°kT”ïÌ™ÎpÞ þ$ÕFÒ¥KÙ;w^)/ÿf0"rs«OžÌLI)ÒÖÖX±bòŠ“Éä·=¹†N*•ž>}ÿ»ïþ63Ã<¸Ì×ד0zzDTjSßj~ÕÕÍB¡XEEÙΎЛü PH66Æ2rØÖÖyõj^RÒ³¼<:§½p¡oD„§ŸŸ †çÉL&ÇÛû_ׯoÂpvŽ@ ºwš”ô -;3eŠ}t´_X˜‡Žö™ZA8œ.4GûrgcÔÖ¶I¥R5533º¡ËÚÜÜ, ÏðFX,ÞÆgŸ<©Ú·oÑŠ“ûþêÔ©Ì={Ο_;}:eD^ëçŸS¸õçŸkfÎt‘'Dw· +«<)éÙ­[Å<ŸB!EDxΟïíà È¹ôàAùºuAŸ|2GSSml^·«KPQ®b¢‰ÆÆv¡P¬¥¥îà@ì[¦ÏÌ 'kWzÝÝ‚äätÎ²ŠŠò¼y^3f8ÊBªÃérvþ*6v]@€#Ö±ÈÍ¥;—˧Ókφ–EW³A¿wàu23©7žÓÕÕ<~üÝWÍß¹SöÞ{§vïŽ\³&`¤^N*•®_63“zãÆ6kkã‘zÚÁõôˆ²³«RSK’’ž²X<2?{¶kD„§¿¿ÒÛwŠCÆátõVƒGËZ¼îü Úë¾¢½½+9¹ ..'7—n` îí;0è’j#I 98|qøðŠùó½°Ž¹ÄãñccŸüñGÞ2q¢íš5¡¡î**0À˜’J¥çÏ?þÏ ýÑ^ ÖÚÚQZÚøòº—A£1˜L.‚ ººÎÎfhþ ]‹F$Ên-©Tš•U—“šZÂãñ§MsˆŽö›3ÇM__ ëÐþ§§GdcóÙ™3«CBܰŽåÚÛ»ÐìZVV¹¾¾Vp°KLŒÿ´i2{é>x{¶Þ¢£èx••‘Ìn06ÄbÉÁƒ©¦Í›ç¹ÿâ¾%©®n ;áùßÿŽp'¹®.ADÄ/"‘89yë+/:ÚÐÂ×ii¥7nVW7››9»9ÃJ)Lp¹Ý¬òrfy9ý¡®®U$’())™›ã(’““©£#ÉÉÉ”B!ih`?sõõì„„üØØìÊJ–¹¹á‚>K—N°³ƒU4àHª°ÀÀBB\wî Ç:ä “É9y2óܹ‡|¾háBŸÕ«ÜÜ̱ ÀxÔÔÔþå—WÒÒJV¬˜¼k×wP«©i}ÙíEB‚ÃéBþÿ¤Q4-m#´¡+.n¸t)ûÆÂ¦¦v77óÅ‹'Ì›çajŠÃ:®H¥R ‹O~ýuåüùÞXÇ2€ÆÆö7 ãârŠŠêMMqaažòÒGö•ölee--‚èéiÚØ˜ #Ñ=ÜÞžó¥ŒL&wãÆ³99ô½{£^)ùˆ —Û=oÞAA/6výh¬V¯¯gÏ{Àßßæôé°šæB¥2’“Ÿ¥¥•ÖêÌšå,;e Æ3¡P\UÕ\^ά¨`>ÞD¥2ªª^”—'“ñÎÎfNN$GGS''Skkãñœ ¥Rññ¹ññ9L&—B!ÅÄøEGû‰úXÇ0IµöÅqÅÅ ÉÉ[±¹‘Ÿ_óË/i·o—š˜èoØ0sñâ úúc:… @õôˆ~ûíî¡Ci$’ÁwßE¿eO ‰DZW×ÖwAOMM+‡Ó¥¤¤dee„&z—õÈK ­W]]ÛåËÙII4ÃÒÒhñbÿðp/GGÖqý[Ûß³x±?Ö {ºr%NoA»’,Zä7f…›FÊPÚ³¡û¿½=Ú³PH÷îQ7m:§««ùÛoï¹»[¼ò[±X²råÉêêæ7¶êŒR OžT-^|lëÖmÛBFé%†¨¶¶55µ$)éYn.]SSmÚ4‡ðpÏ9sÜaHv0™œÂÂúÞ‹*µ©§G¤¢¢laaØ÷äÍÉÉt¼åD…BqFFÙÕ«y©©%b±$0ÐiÑ"ßà`W--8‰§ ©6žnÚt®¤dß/¬@îH¥ÒôôÒ#GnçäTS(¤ f.Xà#k}D‰H$ijjoh`s8Ýíí]èN›Ý%‘H;:ø"‘¤«K Š|¸¾¾–––š¶¶ºžž¦®®†––º¶¶º¾¾–¡¡Ž¡¡Ž¡¡6§Ãià@~¥¦ÿë_ --¼­[C>üpÆ›~%‰Å’Š š<@—ìÐé-HEEÙÎŽ€®?£PHd2ÞÆÆD~Oy<~BÂÓ¸¸œ¼<ºŽŽFd¤wt´ŸŸŸ²²|”øsqùê‹/æ½ûº¸¸ÜÄħÍÍ<Ëèh¿ùó½å·ï´g0~ˆÅ’ï¿¿qìØùó½öï_2`僽{“ΜÉJLÜââb6ªÁœ>ùÍ7×ûí½ðpÏQ}¡!jmí¸s§,9¹àîÝçJJJ'Ú»FDxÁêYÓÙÙC£1ËÊ©TÆóçMTj‹ÅCÄÀ@{ 77 77sssC¬#;<ÿæÍ¢«Wó<(×ÑQ_¸Ð÷w&õO™…IµÆ`p|}ÿ}öì‡3g:c 2J(_¿žüøÝ²²ÆéÓ)kÖÌšå"/ƒqò‚ÇãÖÔÒhŒúzv]][SS»H$A«¥¥ŽÃiãpZh&LUUE[[]M ýÿÿf‰DâÎÎôg§[$wtôðùžQG_,–°Ù\.¿ïëjh¨âp:x¼ Çëâñ:ÆÆz&&zFF:‚¾™ÆÈ2¨¢‚õÍ7×îÝ£.ZäûÕWC¹žïî”—£Åî˜h"­±±](kjªõNá´²ÂS($[[˜2"ŠSRŠâãs33©‰44Ô=:Ú/ ÀQî:.øøükݺ >šu o@,–äåÑããs¯_Ïïîúøcbü##½å75Û«{¶òrfw7´g ߘLΆ çž>­ýþû蘘×Ç_¼øøÓO/Ÿ<ù~X˜Ç„ôé§—Ÿ&&nqr2ƒ—"§+3“––VrófQw·À××:$Ä5,ÌÃÆÆëÐÀÀØìÎÒÒ&*µ©¨¨¾°°¾¼œ!IŒŒtÜÜ,ÜÝ-ÜÝÍÝÝ-¬­ÇÃ9“ɹ|9çâÅ'tz‹»»Å;ïLZ¸Ð–]ŽTyóæýìädöÓOK°™ÃåvŸ²qã¬O> ›¨„BñâÅÇšš87oŽb©Éaãó…÷ïÓ’’ž¥¦–p¹Ýhùëà`W2’q"‘¤²’UXXWXX_XXWRÒÐÕ%PSS±±1ñð°ðð°ôð°pw·P쉅…uçÎ=ºv-_ ¡SgÎt†sT…Iµ‘wôèícÇ2 ö(Ò o‰Áà=zçòål‘HòÎ;“Ö¬ “ñX¥ ž>­MM-¾s§¬¸¸AKKmêTOOKww 77sSSÖѽÐÕ%`08솆öúzvC»±±½±‘]_Ïæó…è}ðx]33œ¹¹¡¹¹¡……¡©)ÎÊÊÈÚÚ‡“ס[€,ãó…ýõðرÛb±ôË/ç-]:±wÍ4“É}¹næÅê§ AAÏÑÑ´·B…B$ 0݈QTYɊ;~=¿¡mgGXºtÂÂ…¾ff²òµ2l3gþ74Ô}ÇŽ¹XòV¸Üî[·Š““ 22Ê´µ5BB\#"¼‚‚œõꣷ=zTÖÖ¶¾®=›ƒQ±GmÈ2±Xrð`ÚÁƒ©!!®,}Ý$¤ÆÆö°°“&Ùýúë»c¹ ‡ÅâÍ{ÀÁxþüG2;â.ÐOJ*øûïƒce…vˆð”£bãã™@ *+k*,¬C×±••5 …b Ugg3 __k¹ëÖŒ ƒ“œ\”ô,7—N$êÏ›çáéïo£ð%w¸Ün:½=fkk[iÏæìlfl¬‹u¼ÞòñÇgi4Æwß½¶ä#‚ ÝÝ‚ÈÈCÊÊÊׯoûb-EEõ‘‘‡V­šþõ×cüÒoJ"‘×§¥•$$<­¨`áñºAAN^N ¶F_ …âçÏ›ŠŠê‹ŠêóókÊÊE"‰±±.š]óó³öô´’»!¬D£1ââr/\xÌátMê°bÅdÅ+,Hª’Ù³÷{{“÷ï_Œu `);»êèÑ;·o—ÚÚšlÚ4;2Ò[]]Ѿ,1ÁåòJ;wîQO0<ÜkùòI“&)f ¿¥¥£¦¦¥ºº…No¡Ó[ПÛÚ:QSS177D“md2ú<™Œ×Ñ ÿ3 ø|á‘#·ÿøã>—Ë·²ÂkjªÕ×·ñx|e;;ÂË.hDGG’µµÉ¸*ˆßÑÑsýz~\\N^][[}ÁŸèh?…œuÄÙÙtß¾EX2ÂêêÚŸÆÆfWV²,-æÏ÷^ºt‚ë¸ÆŽP(®ªjF×±A{6cìúõüÏ?³´4:~ü={û×~ÿJ¥Òµkÿ|ü¸òÆíX-a‰Ïݲå‘#+.ôÁ$€a Réé%©©%¹¹t}}­€ÊìÙ.sçzèêÂ忚]«©i¡Ó[éôf:½•Áà _gÆÆº¶¶;;‚‰ÁÞž`e…‡9AŒO|¾°wý•Úôôimkk‚ **JŠ©««ÙË,ÉÖÖd|~P…â»wŸÇÇ禦K$ÒÀ@§èh¿7Å›1Úëw~#‘ XŠu £…JeÄÇçÆÇç2™ …ãíO$êcD"ICûeŽ Ú³]]‚/¾ˆ‹Ï]½:àë¯#?‰:|8ý§ŸnÅÅ}ìïo3fö·{÷õ¿þzpíÚ&//+ ÆúzvJJQZZÉ£Gªª*Ó§S‚ƒ]CCÝaUº<¢Ó[òòèùù5¹¹tt›……!º‚ÍÏÏÆÙÙL1 ›—–6ž?ÿøÊ•ÜÎΞ™3—/Ÿ4k– œv*HªŠöö.oïÝß}½téD¬c`ìˆD’„„ü_Í(+k  ¬_àˆuPŠ£¦¦uƳϞÕ.Y2ñ‹/ÂLLô°ŽH†ôôˆÐÕlÕÕ-UU¬ªªæŠ &‹ÅCDUUÙÒooO°³3y™o#ð×@Ñtvö””4ôíºÔÐÀ‰$::D¢~K ¯££gêT‡­[Cüýmã mؤRiNNu||nrr‡Óíçgãî9&j¬Zõ»¦¦Ú±c+±dtI$ÒÜÜꤤ‚ë×óÙìN__눯¨(_(ÁÝ¿=[MM+‚ О À0”–6®[÷gssÇKçÎuüΩ©Å«VýþÓOK—,™06὎X,y÷Ý“4óæÍíršŽb³;ÓÓK““ îÝ£ŠÅrD„Wx¸'‰¤° [W—   ./ž›KÏϧ·´tèêjLœh;u*eêT{WWsyŸ©Ïç ““ .\xüøq¥¥¥Ñ{ïM}çIãáâKARm´lÙr¡¨¨þöíÏfá*ƒèéÅÆ>ùõ׌ÆFvd¤ÏúõA..fX¥P22ž¯[÷§•þ§Ÿ–xxXbŽ|àñø••h‚UUŪ¬l®ªjF+AéëkÚÚlmMìí ¶¶{{‚­­ÉØW´ ‹Å£R›ÐañššVÁdr16Öuv6C‹¼Y[—•5^¼ø¤¶¶uÁŸíÛçØÚš`8ƪ«›/\x’__϶µ5Y¶lbd¤Ï¸j ýñÇgù|á￯Â:1"ˆîÝ£&%=»y³H(Ϙáî9ož§¶6¤‹^èßž­¢‚)‘HUU•ÍÍ ÑÅ¬ŽŽ$ …èìleHô:u*sß¾$ËcÇVš›ÿÃÙTYYÓüù¿,Y2aïÞ¨± opíí]aa?ë]¹²A® 6tw ²²Ê“’žÝºUÌãñ)RD„çüùÞD¬CÃG§·<~\ùàAEVV9“É10О<ÙnêTû©SIr=ÒN§·œ?ÿøÂ…ÇüÐP÷+&OŸNÁ:(0T-••¬3¾?}zÕœ9nXÇÀ(joï:}:ó÷ß³Äbñ‡Îx÷Ý©°‚jÄÅÇç~òIld¤÷?.¾toC*•66¶WV²*+_dÚªªšØ‰TIIÉÂÂÐÎŽ@¡íí‰èx¼\ÎÚ@ÁH¥ÒÚÚ6íEþ ûæpº”””¬¬Œúy;:’ ´a±xüq Kò IDATÿ¯¿öô—,™ðá‡3Æyýúæf^BÂÓøøÜÂÂ:½Å‹'DGû9:’°Ž Û¶]d2¹.¬Å:±Æç ÓÒJâãsïÞ}®ªª2{¶Kt´_` “\£’þíÙh4Ÿ/Dú´gC?v¬¬ðО Æ¡öö®íÛcSS‹·m Ù²%äK ´¶v„…ýìà@üóÏ5²Sö­¼œ~0*Ê÷»ï¢±Žeôôˆ²³«RSK’’ž²X<2?{¶kD„§¿¿ |SË5&“›]uÿ>íÞ=j]]›ŽŽ†9 €2}:ÅÍÍBNW°¡×Nœ¸——Gww·X¹rJt´Ìó–/TEï¼óŸ/¼zu#Ö0* ÎÑ£wbcŸ¨©©¬^=}ժ醆㽦Ðh¸~=ãÆs}4c×®ùp.8zzDUU¬Š VE«¼œYYɪ¨`¡ Úp8m{{¢ƒÑÎÎÄÁèà@´´4’« ’X,©¨`¡)4YSÓJ§7s¹|ee%{{âË.hDGG’µµ±¾¾Ö+§R'NÜ»r%‡ÓZµ*àÝw§Œçª=7nÆÇç>|X¡©©6w®{LŒÿ”)öãùslçÎx*•qåÊø=?ooïB³kYYå8œö¼yÑÑ~0Þ4¸þíÙÊÊ;:zÑ×ײ¶6F?”Ð?´gÅöäIÕ† gÅbÉáÃ˧Mûç%&B¡xñâc,ïÆ­èô/Ù‘’R´zõß½rå¬c1hì´´Ò7 ««›ÍÍ ƒ‚œ‚ƒ]a.‘¼“J¥ÏŸ3<(ð üÑ£J.·›D2˜6ÍaêT‡©Sä±ö†T*}ø°òÌ™¬[·ŠŒõÞÚŠ“¡Z»¼€¤Ú(zø°":úèÕ«'M²Ã:FRUUóÁƒ© OñxÝ?ž¹lÙD ¬ƒRLEEõ¿¼ûî”={bË8"•JëëÙ••¬òrfE«²’E£1ZZ:QWWµ³3é]ÊfgG°·'@φ­§Gô²Šã‹ÂkÕÕÍB¡XCCÕÑÑ”LÆS(D´Ë‘­­É —Áb±äÁƒò'îedtK•{B¡8'§úβŒŒ²²²&uuÕ‰mÑ›³³)Öѽ¡Pœ’RtüxÆÓ§µ–«WO‡AWYIµÑUVÖ¼ÿĉ÷ÃÂ<°Ž€·’—WsèPZzz©››ù§Ÿ†ÎšåižÑöï'\¼øäÞ½/ˆD}¬cDUUͽKÙ*+›++Y/ŠAÙÛˆöö;;…B²²Âÿc©}LKKGYYãË!fÆ`2¹‚èéi:9™ö6%¢PˆD¢Á›>9Ÿ/¼q£ðâÅÇVâñ:ÑÑ~Ë–M· Ééô–+WrŸ•—3­­-òŒô‘ÍÙИ;t(=6öÉÇ_aˆ,*,¬‹‹ËML|ÚÚÚáëkáµ`ϧáƒõoÏF¥6õôˆÚ³A"dVVmÓ¦ó‚ ±ä#êÁƒŠwÞ9¾cÇÜ ffto«³³'"âUUå„„Ír·ÄçMµ¶vܹS–œ\p÷îs%%¥‰mƒƒ]#"¼`ÔE146¶ß¹SvçNYV­££ÇÒÒ($ÄmÎ×I“ìåe@F*•Þ¹óüĉ»÷ïÓÈdüš5+WNµ•2’j£nýú¿ ë32vÀäTZZÉ‘#·srª}}É›7Ïží2nWŒ%ƒ3iÒÞ]»"V¯À:ðØhW6´=[y9‹Éä ¢¦¦bmmìàð¢b$úƒžL‹ B*•ÖÖ¶õm8D£19œ.AÈd|ßõŽŽ¤·l&QTTñâã«Wó;;{‚‚œ–.ì:>gðµ¶v\»––ï36ÖŒô‰‰ñóð°Ä:.™vâĽãÇ3òóÿ…u ²K,–äåÑããsžvu ¦L±Žö ó€Zß#mφÎ3@ç ÒžÍÁ“Ø[B¡ø‡n?žètðà;CŸkB§·„…ýê~àÀÒQpDÔÖ¶†…ýètäÈ ¬c#NWf&--­äæÍ¢în¯¯uHˆkX˜‡ Ö¡ Š?®LK+IO/¥Ó[ ´gÎtš3Ç=(ÈI^ÆaÊÊOœ¸wíZ¾¡¡Î‡¬X1VÊHªºæfÞôéß}øaÀ'Ÿ„b o@,–\½šwòä½ââ†à`× fN˜`‹uPãÈÞ½IW®ä>~¼KCòñòËåWV²**˜¬Š fy9³¦¦U(#B$88Њ‘èš6ssùk® Æ!‰DZ^Îì»ö‚Noár»•••,-Ðúè¸0™Œ©~ì '9¹àòåìââkkã%K&,Y2Dzã%n  «Kð÷ßè[55•°0˜ÿ)SìUTäcö%¶þüóÁ?Ü(-݇u r §G”™IÏMI)RQQž>íê>>sØ£ŠÉä uq_Y× íÙ[¥¥|¶¡ýí·‹bbü‡þ@.—qPOOóÊ•òrEÿ>mùòßvîŒX·.ëXÆŸ/¼Ÿ––V’’RÔÒÒ–Âv…™j £¼œ‰f×rrªUT”"#½ƒƒ]å¢w[[çÅ‹OÊd³»æÏ÷Úº5ÄÖò¾2’jcáäÉ{ß~›|÷îPÓÈ‘HríZÞ±cw**X ú|ôQ t­c"‘ÄÏï_+WNd¼B Åuum4£wM[E‹ËíFDGGÃÎŽ`ggB¡Ð5m¶¶&°Ð`«§GD¥6½ì‚ƤRÕÕÍB¡XEEÙÎŽ€®?Ci66Æ#¾»2™œ¿ÿ.LL|–›[­££1gŽÛ’%§L±‡k¦E"IFFYRÒ³ÔÔâ®.AP3´‚†K—²wî¼RYùÖÈ.·ûÖ­âä䂌Œ2Íà`—˜ÿiÓÆáa8fú¶gCÓluumО ÆŒT*=}úþ¾}InnG®°²zƒÑ<‰Dºzõï……õ7on—¯fÛÇßÝ»7ñ¯¿>œ9ÓëX0€.ÖOJ*øûïƒce…vˆðôó³…㊡½½+5µ$1ñéýû4åY³\æÏ÷ v•ýK(!áé/¿¤Ñé-³f¹lÝâím…uPã$ÕÆ‚P(þÑÔÔàÂ…µpñ d™H$¹z5ïèÑÛ••¬ÐP÷Í›gÃÜLdeÑ/þõáשּׂ±ŽŒ‹‡VŒDW³UV²Ú¥R©ŠŠ²¥¥‘ƒÑÁhggboO´·'ê`/PX]]‚Š fߑܯÆv¡P¬¥¥îà@ì]*A¡ÌÌp£·`…ÉäÞ¸Q˜ø,'§Z[[=$Ä-"Â+0ÐI^¦úŽ,´Ózyïïoáî9>Wé½½Äħ|¶¾þÖÈ%&““”T”ô,7—N"„…yDDxB%ƒ±!ˆª«[Ðå—ËÚ =Œ ‹·eËù¬¬ò­[ƒ·l yÓVL?üpãĉ{ׯorw·¥GÏöí±7oݼ¹msi55­ññ9II4ƒLÆGGûEDxQ($¬ã’o©©ÅᅳNß‹€ßF]][bâÓØØìÊJZ%iÑ"¿ñ<ú†‰þíÙJK;;{10Ð&“ñО †áöí²mÛ.¨©©:´|êTû7}øõëù6œ;|xyT”ïh„7ÚzzDQQ‡y<~rò6(‡€ •ÊHO/IM-ÉÍ¥ëëkPfÏv™;×–‰+†æf^JJQJJQf& ‡Óž?ß+*Ê×LJ,ËKb¤Rizzéá÷ss«§Nµß²%xÚ4 ÖAGT;?ýtëØ±;ééŸBÓK SzzDgÏ><~<£µµcÅŠ)ë×™™á°j¼‹Š:âà@üᇬ²E"‘ÖÕµ¡#{×´µµu"¢¦¦baadkklkK°±1±µ5¶±1177„4ÐWMMëË.h t-‡Ó… ‘¨.>C‹‰9:’FªÚP…â'O*32žß¹SF¥2ôô4gÍr‰ˆð r’ýB£¡­­óêÕ¼¤¤gyytN{áB_(;3‚23©K—þü[}}-¬cQT*#9ùÙåË9uum–ÑÑ~óç{ËW©+óJ{6*µ‰Åâ!}Ú³¡{Éd¼££éøœ¯¯#ˆþóŸ¤ß¿éýý÷1ÃH)=}ZuxÍš_}>Ž &“;wîOOËÓ§WÁùg¯úzvJJQZZÉ£Gªª*Ó§S‚ƒ]CCÝu± Œ&“{íZ~\\vYY™ŒŠò]²dÂÕ}{ÅÅ ‡§''89‘Ö­ ŠŠò…Ûc ’jcG(‡†þ„Ãi_¾ü1ìå@@:Mf¹¹}ýÉ's>ø¶‚ÖÞÞUUÕ\]Ý\UÕ\UÕ\]ÝR]ÝÌãñQWWµ±1¶µ5±±1±±1¶±1±³3!¡dܸ€¦`Ñ hþ¬¦¦•ÃéRRR²²2BShhþŒLÆe ­W}=;#£ì⬬òÎÎggÓ  ç  ç ld¼ìÆ(éî$'$'Ü»GUQQž7Ï#"ÂkÆ GXP5²²³«,8üô鿉D}¬cQ‰47·:)©àúõüöö.rLŒd¤·žÌpÇÞàíÙЯtY›««¹ŽÌ»ŒSÏŸ7}üñÙºº¶o¿]ã?Œg`08sçðð°üãÕòž‹ÊË£/ZttÓ¦ÙŸ|2ëXd›Ý™ž^Šž´‹Å2ÔfW$%% qq9W¯æµµu8®X198ØU–¯OËÊš~ýõεkù†«W¼ûî¸~TST*#,ìç÷ߟºk×|¬cãZo:­­­sùòÉdj é4YÑÕ%°·ÿüìÙfÍÍÁˆhnæõfÚª«[Пù|!‚ ::h‚ ý¿½=ÁÚÚ‡éuòM,–TT°z{íP© :½E ©¨(ÛÙú.M°±1Áp˜»½½+;»êѣʌŒç4COOsútJPÓÌ™ÎãökH*•fe•ÇÅ夦–ttð§NuˆŽö›3Ç ÖQ’‚‚º¹s¼µ)hÑ¢£=‰‰[£0àåË9Û¶]<~ü݈/¬c‘QÝÝ‚¬¬ò¤¤g·nóx|´ öüùÞÐKE…âÔÔ⋟ܻGÅãu–,™¸lÙDY.u^VÖøË/éÉÉÏMwî ‡áÄ1Iµ±víZþÆçNú`î\w¬cãŸ/wt„ît£ˆÏ¦¥•ÄÇçÞ½û\KK=$äEDhÿ)›„Bqccû?¶gC—µYZÉû èÅfw~úé¥ÔÔ’­[ƒ·l ö÷ÔæÍçïÜ)»qc›Œ×‹{#_}uåò圤¤-NN¦XÇ"ÓzzDÙÙU©©%IIOY,™ŒŸ=Û5"ÂÓßßF–[s¡hjj;t)»¾¾mæLç5k¦O§ÈìÛZUÕ|àÀ­ë×ó½½É;vÌ>z­"Hªa`Ó¦óe))ŸXXb Gø|áéÓ™'NÜãñø«W¬]¥ŸeŒ÷1#KêëÙtzKMMkM úÿÖÚÚV´z¤ŠŠ²™ŽLÆ“ÉÆh²LÆ[[cS*p<ëèè)-m@ןÑhŒÚÚÖ†¶H$ÑÑÑpq1CG9Ñ,𹹡, XK¥ÒÊÊæì쉴ÚÚVMM5//«É“í&L°õõµVŒÙ»ÃVW×vùrvRRư´4Z¼Ø?<Ü >ðÇLMMëäÉ{SR¶{xXb˸ÐÞÞ…fײ²Ê ýðpOc’¯kϦ®®jmm íÙ àáÊM›Î#rèÐò©Sí‡ý<ÇßýöÛ¤ ÖN›¦PCØ"‘dÙ²_kkÛnÞÜnd¤ƒu8r-ˆ–VzãFauu³¹¹aPSp°k` ÓxžJ¨$iFÆóS§îefÒ(âêÕ‹ùÊl%†úzö¡Ci±±OH[·ÃbÓQI5 …â%K~miá%'oFãSÞšNûí·»=N“}ÏŸ7Íœùß»w?§P`Œ`£µµÍ®¡i64߯`p$)òrÒúË5m/~05ÅÁuˆ`2¹/» ½è…Æát!bb¢çädŠæÏÐE²ÓO*•ÖÔ´ÖÔÖÕs¹|}}M›‰í&N´õò²‚݃Çã'$<‹ËÉË£ëèhDFzGGûùùÙÀ‚1Ædr½½w_¿¾iÂ[¬c_ÛoÜ(ŒÏ-,¬³´4š?ß{éÒ vv¬ão {¶ÚÚ6©Tª¦¦bf†ƒöl9"Š÷ìIüý÷û‘‘Þßó6Csii%|pzÏž…«V)`Ot6»3,ìg++üùókeaöž¡RÉÉÏÒÒJ ë ufÍrv5ËE[[F31`(h4ÆéÓ÷ããs54TW¬˜üᇲ[ý«¶¶õÈ‘Û/>ñò²Ú¼yvp°+Ö)Hªa£¹™7wî …töì‡**ðµF ¤ÓäQUUó´iߦ¥}êêjŽu,ü@ ª«k{eM[MMkW—Aee%}ss‰d`f†37745505ÅYXš˜èÃØ€¤Rimm:.‰ŽQÖÔ´r8]JJJVVF}G'I2µ@üe­¾°°ŽËíÖÒRwq1óô´ôð°ôô´´·'À‚ B¡8%¥(>>73“*‘HCCÝ££ýaUV¸Ün'§±±ë±ŽeœBǘ®\É£Ó[(RLŒ_t´ŸìÌoä•ölT*£ªŠ%I~íÙM uŒ7uum›7Ÿ/(¨ÛµkþûïO}›ÅÓT*#"âàÂ…¾?ü3‚Ê”ÒÒÆùóy÷Ý)ß|‰u,r©¶¶55µ$)éYn.]SSmÚ4‡ðpÏ9sÜa•…üjoï:wîÑÉ“÷x<þ²eׯŸ)³µè ëöï¿yûvÙ¬YÎ_~îâb†uDŠ’j˜ÉϯY´èÈÊ•SöìYˆu,@A:M~µµuº¹}}ùòÇÓ¦9` ÿŒÅâÕÖ¶46¶75qØí §¡¡½¹™‹®lSQQ61Ñ37743ÑH†¦¦8SSssC½ñ“w‹%¬Þ‘ÇššÖêêf¯¬¬doßÛèèH²¶6‘©K,¡PL§·ÐhŒÊÊfQ^ά¬duu 44T]]ÍÑ,š‡‡…ƒ ²§½¤RiVVy\\NZZ)—Û=mšCt´_Hˆ«L%GÇ'@dmýÙ™3«CBܰŽe¼+,¬‹‹ËML|ÚÚÚáëkáå Õ¥ä]ßölè|‘Š &:ÿÚ³dÁåË9»v]51Ñ;qâý·_æpºæÍ;H"\¼¸N±«2ܸQøá‡gXºdɬc‘c­­wî”%'ܽû\IIiâDÛà`׈/"QëÐÀpðù‹Ÿüúë&“»p¡ÏæÍÁ¶¶&X5°ÜÜêÿü')/é½cG™¬8­1I5,]¹’»y󅯿ŽX¿>ëX€â Åqq9¿ü’Æ`pbbü·l ¶´4Â:(ðÄb‰­íŽƒßY¸ÐëX>¡PÌdrÙí½)7ƒÓØÈnnî@O?TU• }sói6SSœ‰‰ž©©±±ž™N®+cðùÂÞñÄÚÚV*•Q]Ý,Š54TMÑ!E++<…B²µ5‘‹p©TÊ`pjkÛjjZ++YL4~¡P¬ªªL&;9™:8 ã¡D{{¢ìD.;*+Y±±Ùׯç74°íí K–LX¸Ð×Ì ‡u\à,,¶;¶rþ|o¬‚ b±$/Ÿ›ð´§G4c†cx¸ç¼yžrý^¶gC+×Ô´>ÞÔÜqâîÕ«›¼½­úÞ.ŠáŠàMq8]™™´´´’›7‹º»¾¾Ö!!®sçzÈlJ B(_»–äHzMMëŠS¶n –Ù‚÷ïÓöîM*)i˜7Ïó«¯Â­¬ µöV ©†±¿þzøå—ñ0ÝŒ±XŸûóÏ©MMí‹Oؼy6¤ÓäÔŒ߇…y|þyÖ0*„BqSS{S§¾¾Áà46rØL&‡Áà¶´ðÄb z7mmu33œ±±ž©©‰‰ž©)×52ÒÁãuuŒtd§3pggOIICïˆammkC[$’hk«»ºš¿ì‚F¢PHææ†2²œ«££-àY[ÛÚç‡6@„ ˆšš ™ŒïÍÿ98@ í°X¼¸¸ì¸¸\A$êGGûGGû9:BkL™pèPz}}›D"åñøB¡(7—nd¤«¬¬Äç {z„B¡81q‹µµ1ÖaŽw==¢ÌLjRÒ³¿ÿ.Ddöl—èh¿À@'øäQHNWoÝãÁÛ³¹¹Y@†ðö®]ËÿòËx##C‡Þñó³yû'ܽûú… 7;;‹rj‰ôƒNÖ¥¤lï-ÚL¥2Ö¯ÿëúõMúúZ؆'§ø|áýû´´´’””¢–– …áìêáa‰uhàÍH$ÒøøÜýÿÇÞ}‡5‘´ßTRHè])JSн#`A± Þ©(vïlgW{W,XÏ.ž¢b ¢¢bÇŠ‚RE@ ´@*©ûý±^¾„¢„læ÷øø„ewö]²³™ì»3ÇdrgÍòœ? zV †cb’ƒƒcŠŠª&Lè4ŒjöË@R }Û·GŸ>ý4,ìOoog´c4•T GGÜ»÷î·oåcÇv_¾|(H§i´9sÂÄbé™3 ¨šT —•±KKY%%Õeeìââê²2VqquY»¤¤º²’‹¤| ÑÐjbB34¤êQ uõõ)È?ƒ/¨TåYVÆþò¥XöÄ}ff ƒÁ‚ ÈØX·CKÙü1ŽŽfèÎÄáþý3V!ÿ——sþ}]Íå ÕLMimÛÙØÙØY[Y[ÙØ™›ë!¹š‚Ãܺ•ñöýû< …8fL×qãºwïnþzjåàÁû{öÄáñXdª§ZÚ´1|ófƒê£êÃbñïÝû“œðYW—4rd§qãº÷èaל9oõÇbÕäå•ý›ccdd”ää”"ÏÙÔšžÍÙÙBmŸ@ UWó‚‚"¢£?N™ÒgÆQ4šFY¿x1qÕªˆÓ§gúúº5¿4MÁáüüÒhäÈÈùD"þîÝÔùó/ÔÔˆöí›Ðíè4Òq?::966¹¤¤ÚÚÚÈÇÇÅϯÛDÜÙ IDATøZ¡Yñ™3Ï~AЂgÏöRÏþ÷|¾04ôéÑ£ \` ïÔ©}ÕäÁ_Í’jè“Já%K.ÅÆ&_¸0§_?{´Ã4ŒD"½|ùõ‘#‹Š˜'öZ²ÄÇÊJM§Çšnß¾»7n$½x±í@@í°Ù5ååìÊJ.ò¯¼œ]^Ω¬äVVr**¸••ܪ*.‹U#¿ €30 èëSõôÈúú:L§“tuIt:IO"{M£‘i4òO¶- Ãùù•ÈCôß¾U ÕWWó BRP²ü™““¹j¦Ëª®æñxBOXUÅ«¬äVUñ˜L^UÉä2™ÜÊJ.“‰¼æñùBd<kdD37§›šÒÍÍõLMéfft33ºµµ‘µµ¡útøÓ "‘äñã/‘‘ïîßÿ$•¾¾nãÆu÷ôtjæ8B@ )-ewë¶YÖ V€›;×{íÚ‘ª hƒQýñÝ»ü04ôI›6†ÁÁc½¼œÐŽH±ÊJnHHÜÅ‹‰íÚ™nÜ8jà@å\![TS 0 ¯\yíÆ÷çÏÏöðp@;@3 v÷ï¿—]ÐkáÂA`<\­qûöÇ .dgï÷gàH$Òª*òÉäUWÿÿuUÍ®a³kX,>‡#¨®æ³Xüºm!ƒÃa¥RH*•J¥0‘HD]]D§“ÍÍézzd"‘€ é€Çcuuu "ñMLP …bYƋˊDä5’®ƒ H$’ðxB‹äÏ8œGÀã e[Éèèàõõ©††Hç<ª¾>ÅÈHW_Ÿ‚Œ“ia¡gbB76ÖO8* Ãoß~Œ|“\]ÍïÞÝvüø#GvÒ×WE>hŽ)SN=y’¡0¯½´[7Õ‡4]a!3**éÊ•799¥ÈÈHãÆõS¬·Nµ¦gûü¹¨¼œAF²³3AFŒDÒlöö¦8xìZ/¡P¼m[ô™3φ q ™ ¬!ξg~ o_ûcǦ¶Î\þï–.½ ìY…Á`×ûQJ—‘QòàAÚýûiïÞåÑédOOÇÁƒ;æŽ|÷Ô\qqÕ¦M·bb’=<ƒƒÇÚÛ›¢‘byyå;wÆFGìÖÍfóæßÀ×¢¦I5u!IæÎ=÷âEÖ¹s³z÷nv8€º‹Žþxð`ü—/Å#Gv êèfmÑ*yyå}û\з/è½ -E gdgd”|úô=/¯<+‹QXX)Kñxœ¥¥¾¾>ÅØ˜ª¯O¡ÑÈŠNMP$’p8‰DÊbñ¥R†!‹AX,A†RÄ|¾¨)»&q²b("ð#}N§“‘ïæxl©¯7CY;*êCdä»””š¿Ïqãº;9Y4X,íÜySe%G~!€ èµk×x´¢~T ¿{÷5::ùÖ­¤ª*^ß¾öãÆu>ܽ4gÍ:ûêUΙ3ôìÙN•¡¨htz6dèf#0=h‰DzâDBHÈÝnÝlœ¤ÄÉæaž=;ìíÛ¯wî,kwœãâR.¼ IjMR‹Á@66Æ/_®C+°ÖƒÉä>x“Œ Àе«Ÿ_ç‘#;5úØPFFÉäɧNšÞµ+臤jŽààÁû'O>8°CHÈSS5mxˆÅÒ ^îÛwW,–¬X1lÆ 0ÑZÃ@RM½H$ÒÀÀ+7o&92Åϯ3ÚáêåÕ«œ;cß¾ýêáá°jÕðnÝlÑŽhAë×ßHLÌyøp%Ú@Ëb0ªù|‘­­±r‹-/ç|þ\ôï,h%™™%  ‚ äìläϹÐÌÌ@Ç…ÖèÁƒôyóÎ b‰DzåÊ‹%ò /^œ;`€3Z!Í$ŠŸ<ɈŽþ—*‘Hû÷w7®»¯¯[­#ØìW×õb±‹ÅlÛöûŒýÐ @KÝéÙ²²Ȉʪ™žíóç"ð($¨@^^ùâÅ—RR Ö¯÷ûóÏþÊ­Ëû÷ßûûï‘‘ó»w·Sb±šâôé§›7ß‚ H*U|ùáà,TTëÅç Ÿ?ÏŠŽþxïÞ'6»{Ô¨.f ×?xðþž=wq8Ìúõ~sæxµÎ‘KÑ•œ\°hQ8ƒÁÚ°aÔ”)}Ч^,Ïž¸óç_8:š£5$ÕÔŽT ¯]yñâ«­[›9ÓípµšZ¸}{ô³g™½{·_½z8¸¨µ¤OŸ~:)i¸ãh+6»æøñ„'Ö¬1{¶WsŠúö­"?ÿGþ ¹Y†LNfccdmm$ËŸ99™ëé!/Z;©Þ¹3öرG!ãƒùùu>rd Ab±4!ásd仸ø4‰DêííýtË–(ÿž»vSçj´´ÏŸ‹víºóàAº««Õúõ~ýû;¢ "|¾°C‡u»wŸ0¡'Ú±€’‰D’óç_„„Üåó…‰tÒ¤Þ{öø7q[©ÎÊbdf–ü›Ecä啳X|,Ó¶­¡üÔ)66F …ÔÂbñçÍ;÷ôi¦ü3¶::øsçfÅǧÇÄ|d0X=zØßcÄw*Š¡-aÔ¨¿“’òwÇ ævòät´ƒ”©ªŠ‡dמ?Ï27×>ÜÝϯӮ]qoÞäÈj=€³µ5>~¶ºÑê¦éÓ³98˜‘ÉMÍËUuテÁ@ìç×eݺ‘J‚˜LnPPÄÝ»©K—ú,^ì£ô{hŸ?õ÷¤I½·l£Ü’5N||Z`àU&“‹Œ©+ÏÐP79¹Þ1Õ–† ŽŸ~çNÊׯeVV8ûø¸x{;Uõé³]¶&€£RuNœ˜Vk¬@5îÞM]ºô’ƒƒyhè 5Ÿî7>>mÆ›eeìùó,Z4˜HÄ£‘zI5õ•ðeîܰ®]mOšA§“ÐPµ¼¼ò;ccc“-V­>xpGÐA»µñ÷?®§G v  4‰ôòå×{öÜa2y²ob;[ß¹³LáúB¡øË—bùiQ¾~-‰$8¶}{S¤ÿr“ËÎÎ4ò€†ee1¦L9U\\]k@,c`@ÅãqcÆt;¶»««Z--"âí²e—‘ä ƒ9vlêèÑ]Ð hÙÙ¥·n%ݼ™ôõkÕúÊK àtt¡¡3¼¼Àí$ !,?/¯É´!OóÔ7=[‡–ÆÆº IHø2yòIä5‡…axâÄž+WÃQ€R<}š±bÅU±Xzà@@K\ÕËË9Çïwr2 ›2F±X5{öÄ……=Ã`0ò©5 sõê<ð 8ÊìÚÝ»©qq©ß¾UXXè·kgòúuŽüLx8†¡eˆ,[6‹wU­¨¨ê?ÎT;6UÍÛ¢\®àÀû¡¡OÍ÷ìñïÒÅíˆÔHª©µôô¢©SCõõÉçÏÏ}-[Š Îß?8þ…¡¡îÒ¥>'ö½[§ÈÈwW’’6)þŠš%:úãαùù0üŸ1C¨TRVÖN‚x¸0?åÞ½Oó矉¤µ2jáp˜îÝí"#€%Z¯¦FäêºÇ@„ÃaÓÓwÐhàÁ5-·iÓ­³gŸÉßHB ¹5kFÌŸ?<¸4H$ÉÍ-“ï1ßèôl§N=Ù±#Z$úÿ§€Ã`0³g{-Z4ˆN'£w4 ÙX¬š­[£._~=t¨kHˆK|k ÅãÇ«¨àÄÆ.c`ÈKM-\¾üÊçÏEòÁû­ëÁƒ“Ð —ž^—žXZÊ®{ÿ‹ÅôèawâÄt33:*áµflvÍÂ…á9ztêȑЧ99¥«WG$&æÌ˜á±zõ]]´#R ©¦îJJª§N -/gŸ;7Ëݽ-Úá-‹Ëœ<ùøÄ‰ÂâѧMë§£:^´^|¾°sçM+Vø6sº)@Ýë×¹[¶D¥¤`±˜ºw6!:Ô5?¿";»T$’¸öíMÌDš½½™½½)è…ü2†ƒƒc{„ÁÀRgA‡IJÚbb¦Ð~«WG\ºôZ*•zx8\¹òÚá-nȽééßë«ûX,føðN‚)Ö€_'ˆsrJ³³™™ŒìlFVViNN©P(† ÈÌŒîà`VVÆÉÉ)­ûH%‘K–øüù§'˜¼~VllòÚµ×q8ìž=þƒwl¡½,[v9..56viûö¦-´ Í%KÞïÜ#K‘ç(â§OÛÁM­0¬®]7×wó ‰"©Þ¶íöéÓO÷î Ó¾Äǧ­Z!‘Hׯ÷?¾•Î.)$Õ4“Éýã3Ÿ?Ÿ>=ô¤ÖV55¢þyzäÈ#‚.øÇý›>L? Å¯¦¤Äǯ@;øE_¿–mÜxëáÃt"Ü`RÈÇÇ¥{w[{{3''skk#<t”ƒÇ.Yr)..E~µºp8ìæÍ£ÿüÓSehyÿþ›ŸßA Ú¾}ìÌ™h‡´¬ÜÜ2à†×A¦X;wn–­­±j¢´žD"-(¨ÌÌ,ÉÊbdg—Þ»÷©ªŠWßÊ8ÖÀ€4lâÄ^ ýMQQÁY»öztôÇ)Sú¬_ï×rÝ=Ïœy¶iÓ­ðð9j>>ºòòÊW­Šxþ< ƒ¤R84tƈêÞí¦U¹páåÚµ×ëÎ'ƒÅb!^¶lÈÒ¥CÀ¸ªwôèÃààØuëFΟ?íXÇbñCBîž=ûÌÛÛyçÎq­|ŽXTÓ B¡xÉ’K±±ÉAAÃ,C”h±XzåÊëýûïUUñþüÓsáÂ`T@æÍ›Ü1cÇǯpqQÚ?<ÈÍÍUViP>_òôiùë×L‚Îg`±˜áÃÍ»w×ÿ…½ <¸]»v¿"A Fh5KtéRaIIM£kb0…iÎ;DÕÒÚµk7xðàfÂd2ù|¾RâQCcÇþ“ŸÏŒkjªÍ}---›YBQQ‘R"AÑ?ÿ$ž8ñ¢)_xi4ÒÞ½cºuã‚h-kÄ€³Ù‚V@¾Ü·kg¼|ù€^½lm/ð³ ÈdÍ}4&&yíÚH¿gÿ AZnG}ž>ýôÚµ#ÿúk€R äóùL&S)E©¡{÷>ïÝûÉä{z¶ß¿ÿw´ÃÑd2ÙÀ Y³üœ:uª)«]¸Ÿ›Ëmʽ{{êØ±Vd2˜d¡EÌ™3§¾_Ü}ß¾ Ê*³´´4==]Y¥©!OtåJúÓ§G¡RÁÀK011qqqiN MÉd`0D3³yLûŸIE¢Êêê»"Qysj8ÿ²ÿ½ƒÍ8°ŸP">_¸oß½“'÷êÕnß¾‰66FhG„0C‰&™2¥O§NmçÌ óõÝwâÄ´ž=›õl>€®çϳ‚ƒc’“ FŽìö'¡PƒÁô>yòñʕÔ8Û‡Rn¹@£`.(¨LO/Bþ%'UÁ0L `±XœP(B– vðà±×¯'ülùÊz$ Ôà_¡hÐ\ÍÌ1ËkþW}µÕµk¯ˆˆ·ÞÞZ;Ú§oÛiÜ-×ZšŸG´º5âõëÿô†Çb1D"A(I¥0³·7qskëädîâbåìlnfž°TDã›Oܱ#†J%^¼8wÀç݋ş>ý´½½IpðX¥®ÝLÇû$%}ƒa¸[7[´cQkiiiJ)§ÑL ÖãÇ_[Iúú‚("€#pŠAzzd "“‰` ó–síÚµ IÏ/_>´¢‚;kÖÙˆˆùQ}Èdâúõ~ãÆu_¶ì²·÷®+|çÍÐÚ†uFø¹µ¹ÅòåWÆ;ºd‰Ï²eC±Xð›†IM-ܾ=úÙ³L‡ØØ¥;[£ ÖfÌèwäȃ‹gÏÖògêíƒÁ`¬­¬­|}Ý%\®àË—bYŽ-3³„ÇB”]Šj¤´"t:yÚ´~hG@«•Ž63ÓëØÑÒÍͪcGKgg‹víLÁ$jÐ(£:((âÁƒôÉ“{·t5‚$é¼yçyáá‰Û·GÓh¤‹çx{·l5Äα¯_çFE-Ö”›Úh:cĈK–\¼xq®¦t¡Áã±  òôtZºôò°aû7n=yrïV2˸{¥‘0̬Yž.ÌNJú6rä¡ää´#Á`°‚‚®yyíJM-w®÷ºu×'O>Å`°ÐŽHÀ , æééôàÁ #?¿ƒ{÷Þ‰$hG(Àbñwìˆé×oG||ÚŽcŸçèÑ©gÎ<óñÙ º¬©‘HrîÜ /¯]gÏ>›5ËóÉ“5S¦ôà ¿föl¯ôô¢ZS€v`0Xsæ„]óõu_áé餚ýWýñÇ?ÞÞÎAAÃU³G…fÌððôtZ±âjMíX~š»{ÛVôž5ëìܹ窪xhGÔ‚@RMøùuŽ_ajJ÷ó;¸cG 貦îÜI0`÷Æ7}}Ý^¼X·zõˆ–žPÐn]ºX{x8„„Ä¡( Ã.¼ôòÚ•œ\pñâ܃'ééQT³k>_8cÆ?FFºGŽLÑ”yŒÐV æàÁIUUÜ4lH‘ˆ_·nä•+½{—çã³÷åËl´#j) ©¦%¬¬ ®^<îìÙg¾¾û>}úŽvD­×‹Ù¾¾ûçÌ ëÛ×>1qýÎãÌÌèhhƒõëý^½ÊOC;ÿÈÎÎF†3­û¢ùùù3gÎlʚ͇ìKöã¶mÛ0Ì®]»dK®\¹‚QäãÇq¹Ü   N:éêêöìÙsçÎb±ÙƒÁŒ?^~LΖ;".—»råÊN:Ñh´=zËÂ'¿­­í´iÓÊÊÊš¸‹æ¯° “­µ­¨º´»FÈÿh``àïïßô ¡ÜcõBS4§^4g¿H >|Àãñ²åQQQD"15õǘ$ \ç9Ί+ìììÈd²ƒƒÃ¦M›jjjš’¼Vuh÷µ­…Ÿ®Š¶×ÐZø ^$' ²oÆ›‹ zþ|퀪˜A ÃðÒ¥—‹ŠªÂÂfQ©:*Ûo3¡Û¸‚Zøüüµ:ÕpH0 O™2EWWW)¥i úTj¹÷E­ÞqSSÚŠÃNœHÈÎ.E;–_äáápï^`ÇŽ–'ß¿ÿžD"E;"åI5íÁ`¦L齃ÁŒý÷?ÿ<•JÁôK*õùsÑ„ ÇÇ?J£éܹ³lÏKK}´ƒ´‡»{Û#ÜwíŠU«ª­¯¯¿jÕªŸÝêÖ­[cÆŒ‘m›››kllÜÑý_Èk†¯\¹bmm}õêUÙ £G......~ùò%AÅÿrqqa³ÙÝ»wýúõ®]»’’’V¯^>dȉäG‡àÈÈHù¢ZÆÛ·owïÞýþýû5kÖ\¼xÑÇÇG†¼—/_ž={–ÅbuíÚµªªª){ùµ·¨E»kôï VTT_XX¸hÑ¢гQ ^hæÔ‹¦¯_·â %téÒeíÚµ‹/FÞôêêêùóçoÚ´ÉÍÍ ú÷Dªï:¿hÑ¢¤¤¤ëׯçççÿóÏ?QQQ+W®T¸/ aÚ}m­àgiw€@kø\®`Æ›~~õõÉ A  Rñ”G>º{7õôé™mÛªr¿Í„nãêg÷û³ûj‰:UTTtñâÅôôtå«4ëS ¡õ­ñéÓûÙÛ›nÞ| í@~±±î¹s³¶mûýðá'JKÙhG¤l0 u„BqppŒµuàÈ‘ÒÒ¾£N«PRR½hQ¸•Õ²÷<}šv8€ÖÊÉ)mÛvùÍ›ï›SÈøñã‘'¦•+++ ùL‘½hÀˆ#x<^Ým[‚ü¾’““1L||<Aµ«jÝ0V¬XÑ¿±X,[ÂáplmmOœ8Ã0AsçÎ544,..nÑ©/ŒÐÐÐZkB”••%ûQ*•zzznܸQé!)¤ððk…¤\]½zµ™…€ÑôQëÝ|úô©žžÞOí]‰‡ê…BÊ:Ÿ?}úôéÓ§æ—SKsêEÓ ¯[‚@ puu3g ÃóæÍëÖ­›P(DÖiø:¯¯¯ÿêÕ+Ù¯ž}ú$$$ äèìÓ¥K …baa!1¦¼¼œJ¥’ÉdÙ¶½{÷† ÈÜÜYA$­\¹ÒÌÌÌÔÔtåÊ•"‘‚ sæÌ™:˜˜˜ìÚµëÂ… vvvzzz6l@¶ŠŽŽvww'‘HíÚµ»páB­}!?^¹rÅËËkðàÁÎÎÎMyf<<<|ãÆ8Üÿ–¤R©AAA/^D~\¶l™³³3r£¶)ÇÞèQ(|øÐÚÚúùóçµbÀ`0óæÍ‹­¯pùÍ÷c̘1Ë—/G6H u7—H$!!!ŽŽŽ4­_¿~¯_¿Vøg¼ÿ¾½½½ÁÎ;¡‡’ˆŠŠrrr255]¼x±@ P¸°Ñ7He@P‡Ã™šš"¯«ªªf̘allܦM›+V Cä)\(£ð¸ê«8/^ìСƒ¡¡áž={… ^ N5õ¢¾êžáµ*Ž| D"1,,ìÌ™3;wî<{ölXX@@Vkø:O§Ó;VQQüÊÓÓóÛ·ou÷UßYÔè{§é§¸6"@k\ F(Z 7o=õ¢>L&wÅŠ«“'Ÿrp0½w/püø*A®–/_Š. Ÿ2¥ÏŒýT¼ëúhPãJ¡ºÕY,oÚ´ÉÚÚÚÄÄdÚ´i²ÞŸuß—üÑ)¼D(¬ïòê®PëX¾ò 4½jë§B)»«EÝÞñÞ½Ûûø¸ìØS·©YìíMcc—á>}úé n¶ôýLÕA9©´°Û·?¸¹­ïÔiõkoÐŽEÛˆD’ÐÐ'..ëW9ò€Ç Ð*TÚØ¬¸páå/—ÐÄ~ Ó¦M›>}zII‰™™Ùëׯa>yò¤©©é7ŠŠŠbccÛ´iAPÝG™d/X,‘Hüã? ÃÃÃ!*--…aøÌ™3.\P¸ b÷îÝcÇŽÍÏÏOIIéÚµëêÕ«a† ( €Åb>}‚ ‹uòäI‚ÊËË9ŽŽŽÎ‰'Š‹‹ÿùç<Ïápä÷ðT*µ³³;yò$ ÃëÖ­sqq©uȵÂ@ZŸeeeµVKLL444„ÿ}”)33“L&Ÿ={¶)ÇÞðQ(<öúÂxñâ…™™²ÇaÆ=zôˆÃá@už®zûö­¾¾~}XùÍ‘YaàGøAžŠŠ²´´‰D 7ß¿¿ü)aiiY·]AÐÈ‘#Y,ÖõëבÃDv:dÈÌÌÌW¯^ÙÛÛoÞ¼YáÂÎOYá*ë©j²Ó?²Ùl‹õåËooï­[·"¿šþ†¯ó0 ‹ÅâW¯^mݺÕÕÕ‡Ã]¼xnB%mÊ{×r§*SàÚZ °z_aP#@kÔ EÐJª½{—çãbc³bïÞ8>_¨úB¡x̘¿ûôÙÎdrU¶Ó&^‹4¥qU·Ê(¬ÎNNN7nÜ@–¤§§#¯ 0©¦°LXQ}¯RÝä˯¯Xy-ZU–TÓ¾O%YÍß]Ý¿g ½ãÍIªÁ0Ÿ/•J#""*++ÿüóO??¿ÊÊJù}I$’«W¯îß¿Ÿý¯åË—#v5PìäÉ“·mÛ†<©AP@@ÀåË—wíÚ ¿‹={öì‹/N:ÕÀ±7…ÂcŸiѽ¨N ûsÆQ[¶DMŸ~šÅR0£¡fh´/ e¾~-›5묅ÅÒiÓBÁhMT^Î^¹òªµu`Ÿ>Ûoßþ€ ’( Åžž;§M ý…m›28˜D"‰DŠŒŒ,++;uê‰DâóùòûJHHÀápòƒœ¼{÷úw€ZñÈTWW;99 0àîÝ»k×®… ÈÔÔT Àu†¼8~ü8Ò«ïØ=ŠúŽ ÃËË+...33óÆ...ýúõ«©©©3A/_¾,...,,|üøñèÑ£Û´iSUUUßVá 0 #3«;88È QwóC‡ÉŸíÚµCJ •í´îa";0`@VVÖ›7o6nܨpa½'¨ÜñªføGP#d…#'Xqqñ·oßÛ¶m‹ Ê1iÒ¤Aƒåææ¦¦¦º¸¸ o_Ý…òeÖ=®Ÿª8 ^(¤ÊáUS/® ð —¯8ò%H¥Ò‘#Gzyy!çªP(twwGrfpc×ùéÓ§;::ÆÄÄäää¼xñ¢wïÞK—.…›PIë{ïTs¨l°;pmD€Ö‚:_aP#@kÔ ET6üã—/ÅþþÇ,-—-]z©¼œ­‚=6ìùó,këÀî©~×M¹iJã þoMGÀŠªó¦M›ÜÝÝSSSSSSûõë7{öìúß—|RxÝPXß¾âÕªò ‹UYTÍðÚ÷©$¿Uów«êoæð0 ß¾ýÁÊjY^ž6ÌC&ïåËlw÷ ÁÅhÇò+@R­•JNÎÿí·ÃVVË- /)©F;õ%IÎ{áæ¶ÞÁaÕ÷~y+PºgÏ2,,–>xþ³6å–ëáÇ;uê$ a¾yó¦……Eee¥P(ܺu«®®nŸ>}.]ºÔpó †áýû÷¶mÛöرcÇ—íE¶¦H$òððÐÕÕE–³X¬™3gÍ™3‡ËåÂMh]½zµ}ûöD"ÑÙÙ9**J(ÊïkîܹC† ‘?F©TÚ¾}ûU«VÕG‡Ã tuu%‘HíÛ·_·n——ׄ j…èããSß±›šš6å(»| ÅÅÅeûöí<¯nÌœ¶mÛNž}ú ƒ5z˜ÈŽNŸ>mcccll¼hÑ"Ù¶Z áÆ4úE¢)@@4¥FÈŸ`X,ÖÝÝýÕ«Wȯ*++§Njdddaa±lÙ2äí«»P¾L…ÇõSÔ‹ºT™TSM½¨»rVÔ:Ãa¹ŠSël ÓÑÑÉÈÈ-yóæ ‹ŒŒD~là:/‹7oÞìîîN&“mmmW­Z…¼VÒúÞ;Õœ*K!€k£ h-4°9ê­P#@kÔ y*Hª1¬E‹Â--—œÈÌ,iÑ}5Ñׯe;®ûë¯ó¨<'Ý”k‘¦4®`EÝUaEÕ¹¦¦fÅŠ–––zzzL&³¾ä¯iòǢ𺡰¦4¥úÈâoz±p T@Õ$Õ´ïSI~M¥ìN5ïxó“jB¡¸sçÁÁ1Í)D=åæ–°»C‡µ ŸÑŽå§aà&÷Ü´O||Ú¦M· Öô_ºÔ‡JÕA;"õ’ðeëÖ¨ììÒI“z¯XákbBC;"øY³Î¦§=~¼ŠHÄ7}+‚®]»Ö̽ggg;88´Â¡P˜””Ô»wo´ÑT Ïœ_;0ÌÕ«W‘Sú—¨eÕ eÏÈP0...Í,GCëEó¯ó¿vàÊ: JKKÓÓÓ½½½jïu=~ü¸cÇŽ¦¦Íí\CÏæ­…fRbkÔ@k(±^(å|®@ >räÁñã &&´­[óñinsB)Øì?¿C ñÆ…¨L禬k¸Œ E‰P)-m¥|§S”õŽ_»vMö Õ/Û³'."âíë×°XcTj4.Wtíöí›6ž5Ëíp~˜S­Uóñqyòdõš5#.\xÙ¿ÿÎððD‰DŠvPjáýûy²zàÀkÖDŽ{ôíÛ¯h…¦ÂBæÜ¹çFú[ GD,8yr:º“è@,-õgÏöúûïøòrÚ±@SÑéô¹sç6e!´ ^h™_{ïÀi2 :@]j^/ÒÓ‹¦L9pÂÉÉüéÓ5AAÃ("ÚAý°oßÝG>‡†Î03ÓC;@S©y”N­Þq[[ãNÚ^¿þ^õ»VÉ“û\¸0;..uܸ£šq‡ ÿüßçÏEk×^ý:wÀç  á:µE;"•âp‡ÅŸ9óÌȈºaè‘#;!³ˆ€:ãó…;ûöµ?|xr7QÖà`€:µþÔº ÿ B­»Ôu)÷|þö­"$$îÖ­¤^½Ú­];²[7[¥«,·n%-X~èФq㺣†²®E€PŸáPÊð?žpèP|JÊÖŸšÿE³|ýZ6uj¨T Ÿ;7ËÁÁ ípzªÿסƒåÍ›‹¢¢ …âaÃöO˜püÇ|´ƒR‰DžØ¿ÿÎsçž/_>äÉ“Õ~~AF Ðd21$Äÿúõww廉 ÐZTÎ{®_¿ß¿3oÝZtýúBu˨}ü˜¿|ù•9s¼ÐͨКa±:Û·G_»ö6%¥€ÏþZ!£Gwa³ks”›Z±³3¹~}¡¾>å·ß«ÿ@zZ›Û~Yv ž=Ëܵ+vĈýû;®_ïçæÖí¸ZÊË—Ù[¶D¥§ô  F4ÎÀ~û­ëš5‘}ûÚÓéd´Ã´YUïôé§'O>62ÒýûïÉcÆtÅbÕî¹ä’’ê™3Ïxx8lØ0 íXh½°XêÇ顡OD" ‹iÛÖÐÉÉÂÑÑÌÙÙÂÑÑÜÁÁLG§ñ¥¥¾‹‹åýûi^^N*ˆ-ffô7.Xpa„ãÇO:Ôíˆê’j€býû;öïïøìYæŽ1¾¾ûî¸jÕðŽ-ÑŽK™22J6n¼ùìYfŸ>íïÜY¦Å‰C@ëmßþ»—×®àà˜]»Æ£  JJªOž|žH àV­>}z?‡vP …âÙ³ÃôôÈGNUÄ­‡X\™°J$’äæ–ed”ddgf2ââROœH‹¥8ÖÚÚ¨C GGsggs7·6¶¶Æ ‡O<Ø%"â펿«þT‰D"œ>=388ö?ÎlØ0jÞÀW IÜäÉ}z?|˜~àÀ}/¯]=zØ­\éëááˆvh?!9¹`ýú?æOœØ+(h˜‰ íˆ@™‚ƒÇ°ûÀ{«WhxÍÜÜÜS§N©&*@•8 ‘ˆ!Õ«©Ñr°XâÖ­ïOŸ.07§[XèÛÚÙÙ™8;[´mkˆÃýÄÔµÃú=‘¦ÖrssÅ⮋]41Ñ57×76Ö53Ó31Ñ55¥ëëS~ª¨ššš¢¢¢ŠhQGYEUUU‰Åbe•¨5~Yy9çÚµ7áá‰yyå®®VÇŽM9²“ú¥øàAúÖ­Q6ŒòôT»™‡@ã € ¨¦¦†DjjJ,3“ñömnJJav6£°Édrx<‘T Óh>¬ªªjÑP%•ÂêM@×û÷2Ez³ß‚ ±Xš•Åøô©0-í{ZÚ÷û÷Ó¸\AppÌ­[Innm»vµîÚÕÆÑÑü§î~h–#:‘ÉĹsÏÕÔˆŽ™¢VÏs``F;@ó¼y“»wï½çÏ3{ô°[¸pÐàÁÕ°¦¼ÒRöÎ1oûöµß²eL‡Z59È?ž°kWìýû+œœÌë[Çßß?""B•QuáñtºwUÕ]©”¯Äbõô|ÈdÇšš>?C øAR%®†p8½öíçH¥@,Kÿû+,‰D Ruôõ)úúd##] =ss½6mŒlmÍÍéúú‰¡T$R{NŸËý‰¯  R»éè´a2ïÀ°H)¶ݺÍrqéUYÉa0Xå圚š="obB37×36Ö55¥ëR uMLtŒt u ©²o)iiieeeè ÞÞÞÍ,áñãÇJˆÔ¨PKÇŽMMMþŠÏ>zô9*êý{ŸˆDü˜1]§LéÓ©S[Gøk22JF:4jT—´cùÒÒÒôôt´£Ô…‰‰‰‹Ëf¢ÉϯLIÉOO/ÊÎfV1ÕL&O #÷í1 ‰DÐÓ£XXèµkgÒ¡ƒÅ’%cÅb43j žJíL¥v-/¿*‘T£‰FPVþ%88æÂ…—üÑÿãÇü÷￱X| …èîÞ¶Kë®]mºt±±´ÔWÊŽÔJRÒ·É“OuëfsúôLä6Ž:I5à×½y“{ôè£Ò;t°˜;×û÷ß»©anœË<ÿÏ?Omm·lÓ¿¿&u­€Ÿ%‘HÿýHM(&f©Z=ÁÔÂáüüêê’®__ Ä©X¬š{÷Rcb’=úL¥‡ qõóëW´p8‚ÒRVy9»¼œÃ`°*+9eeìÒRve%·¢‚SVÆf±þŸÚ×Ó£ É6##]cc]ccš¡!ÕЊ¼62¢ê‚ÐJ,ÿþý´¸¸”„„/"‘¤gO»ß~ë6fLW]]i³XüáØšÒ¯^ý ´X5$I>}úž’R˜‘Q’—WV\\]^Îæpj„B1ò]ƒðx…B44¤ZY:8˜º¹µéÑî}{Å)p´ÄÅ¥Ç|ûV>iRï•+‡é¢Qkñþý7?¿ƒ/_®³µ5† ˆÁ¨NI)|óæë›7¹©©…55"äìláîÞ¶gO»>}ìµä­ÉÎ.õ÷?fn®wéÒÜŸ‚¥…€¤Ð\oÞä>üàÑ£/®®V‹ 6ÌMMîÞÂ0ùnçÎX¡P¼zõ0}ÐJW òûïݶoÿíX€†äçW ~`Ð Ž‡MRzá%%Õ11É‘‘ïRR ,,ô‡w÷÷ïáæÖFé;Ò,B¡¸¨¨ª €™—W–Ÿ_QTTÅ`°««¹UU|6»†ÇÔêîV ’~C2pt:YOŒüH¥êÐé$L¥uuIT*‘N'ëê’¨T O£‘[É€›6ݺyóý³gkôô”ÖÆe0ª§M;Í`T‡…ÍêÜÙZYÅòD"IE§¢‚SZÊ®¨àTVrËÊØåå?²n¥¥¬Š .Ÿ/”­O§“Œi††ºFFT##]“‰7#£Ù8*…BDñˆhº¼¼ò„„/ññi/^dAäáá0|¸»¯¯›ÆÝ%‹¥S¦œÊÎfÄÅ-“}(’H¤_¾”¼{÷5#£¤¨ˆùý{Ui)‹Í®‘u;ƒþXEOln®oggÜ¡ƒE‡–..¦¦zèߨ/²·m»ýéSá¤I½—.¢•ý¢Ô™P(vt\³oß„±c»×ú'LN.HJÊ{ÿþÛ‡ß ‹±·7ëÑîOŸö}ú´·°Ðì7+?¿b„ãt:ùòåy††T´ÃI5@I>}ú~øðƒ;wR,-õÿüÓ3  †æœ™ïßÛ¸ñFJJáŒCÕöô‡ô IDAT$‰ ªqõê›ÀÀ+—.ÍUÃAäyOŸfL™rjýúQsæxµÐ.22Jbb>FD¼Ëϯpt4÷óë4~|kk£Ú¦«©UWó VIIõׯåß¿3‹ŠªJKÙÕÕüª*Ne%O"ù‘uÃá0ž@Àáñ8‚a$B¡X¶‚<<K¥’H$‰„§ÑHD"žJÕ!“‰::x:L$â(2™ðïx …H¡è‰8==2€§PˆX,†N'A¤«KR“'WjIO/:t_Hˆÿĉ½”[2—+˜?ÿÂÓ§‡M5ª‹r šˆÇ–—³ËÊ8••œÊJni)«¼œSYÉ-/ÿÑé­²’#Idëëèà ¨H² I¿P (T*ÒãÍÀ€:€*jjD‰‰9}NHøœ›[F§“½¼œ†u<Øisj¢-[¢.\xµØÅÅ íXí'KËÊX?ää0rsË +‹Šª˜L' %òÉ32™¨§G66¦ÙØ9:š¹¹µuw·23S÷äY]ééE[¶D={–éáá°~½Ÿ»»f «}|}÷÷îÝnóæ1 ¯VXÈLJÊKMýžœœÿþý7>_hccÔ»wû>}ì{÷n§¡7…¾gúûÇã±×®ý…z%I5@™ÊÊØçÏ¿8{ö9‡#5ªó‚ƒ˜Ø©…”–²·o¿}ýú{//§-[Æ88˜©8Póæõ*ûÎåà¹!5wâÄã;¢ÃÂf Ô¡åö"•ÂïÞ}ŽN¾yó}U¯[7[?¿ÎcÇv30@ÿé "ˆËËÙ%%¬Š 6ƒÁ*-e——³KJªËË9¥¥¬²2¶lò*<«§G¡ÓIúú2™H£‘ttD"ŽD"°”@À‰ÅRO(Iªªx"‘„Çòx‘HRUʼnÄ<ž°áHÈd"‘ˆ'q ƒÁÐéd‚ètƒAruIÅÑh?~…Åb("€‡ ù-AXìm!¢ÑHH:¤p‚ò!’í¢>0 sX*…oß^Üs¬J$Òo……=_¾|H` ¯ÒË”‚ÅâWTp*+y••&“Çdr™LnEWöce%—ÉäÊ÷EroTCC ÒÑ IÅ! (úú¤W¨zæ’@ƒˆÅÒÔÔÂÄÄì/²s±««Õ€ÎvèÚÕ×ìÚ‹ƒ‚"BCg îŽv,€ö@Ær((`fegf2 *KJª««y\®P$Ën¨c0€£RIKK}£öíM-ºvµiøk”¦(,dnÛv;66ÙÙÙbÓ¦Ñ`bt^ÍÏ/ˆXÐôM$ivvéÛ·_Ÿ=Ë|þ<‹ÉäëvébÓ³§]ÿþŽ®®m4hp$¯F$â®]›n§dT”O(GE}8vìQf&ÃÃÃaÖ,ÏÁƒ;¶Ä]¶ºû=|øÁñã &&´­[óñqi|ÐRx̘¿ù|Qtôt» ¼ó1:z‰£c‹?… ŠŸ<ɈŒ|w÷n*ƒñòr7®»¯¯W)ØìƒU^Îf0Xeeì²262—UIÉ­dý؈D<2g•©)ÍÈHר˜fb‚¼Ð53£ê’H†««ù"‘„ÇH¥0›]A‹Å—Ja$!'Šù|¡T ³X5±Ùÿÿ•@€üJÊf ­`æñ„B¡‚ dÃ_;F„Åb!BºÖ! 9Ae%ÇÞÞœL&@¤£ƒ—Ÿ=˜Nÿÿ˜²|^­Ò Âã± ÌØA&ß¼ùý±gO»1cºápÿiTÐéäúZx<®Áb LjH§“ëk½4-Ð6»¦²’Ãdò«ªxÕÕüàÌ™gÆÆºë×ûÑIƒ²/ÚêÌ™g{÷ÞMOßñk›‹ÅÒ””‚W¯r^½Êyó&—Ū13£#=ؼ¼œll4 ƒÁúý÷#::øÈÈ(Ž ’j@ zó&÷èÑG¤ÛÙϘá1eJù»lÊýqçÎØŠ ÎʕæOïnÀ÷ïL_ßý=zØ>=´{Ô™@ ;öHu5?6v©Êdc±ø÷î}ŠŒ|÷üyF2Äeüø*x¢Õ’JáòrNEÅ[E·¬ŒU^ŽÌeõã…üzFFºFFºFFTSSº±1ÍȈjb"˽ÑLLhÍÏH¥0›ÍG^³X5R) A'‰Ä!]èÕX¬«q85 AŸ/ ÅÕÔOœxÜ®™§ç'‘¬Óô#¥÷ãµPøŸ~x²Ò ‹%\® ¾Pù|¡@ ‰$|¾‡Ã"]ôþ» Р”ƒ@ÀQ(-›1%°õ }Y_*—Dú[‡­ïÑ]]R­ô3BG‡ °A.f¶.*•¤°‘ˆGRé24Ú†¨Åáj§Ÿ)ùV:ééýçƒD"*}Ú?> |—dÄb)’*+/g—•ý˜-ÉŸ••±KK«+*¸X¶>rî _)䙉‰®••¡­­±££™ƒƒy›6––ú­çf£P( }rìX‚D"Y´hðô'“Áƒkj!11gìØ#II›ÍÍ››Í•H¤ééE‰‰9‰‰Ù‰‰9,ßÎÎÄÛÛÙÛÛ©_?u~T±¼œ3v쩾qc!ZýÕ@R hqÉɧN=މI66¦ÍœéÐK¹Þ~þ\¼iÓÍ—/³'Mê8õ1U@}<~üeêÔÐÀÀ¡K—A; !¥¥l_ß}NNæáásT<ÊYQQÕ;)W¯¾IKûni©?l˜ûĉ=Á<hÄUUܪ*~i)«¤¤ººšÏ`°Œÿ¿¨¨àÈ÷àÑÓ£˜™ÑõôÈææz¦¦t}}²™™²DObee ‚ÞTëÖݸs'ùéÓ5ªéûáCþŒ§i.ÌnÊð¶b±”Ë­©ï·|¾Hþ»t- äêD")Wo h9B¡¤î_é|Éå ù|!—+àó…<žU•ÇòùBOXS#Bþ¯©ŠDµç>D†N%“ñ$‘HÄX‰ˆä±H$‘ˆ'‘ÿþˆÇãqd²€%p¿vséªðWÕÕ|…',]‹X,­/Íf×(œåQ ˧½e¤R)Ò#¶.GP«ï ¢9Ý^›N–h”ï!J"tt~äóh4¤Ï«ü¶ò ?*Uÿq L_ÿÇ x%h´Õ¡Õš\ƒ’l6‡N÷Í›,`Ù¶&“µæ‡¹]]5r“Éj2ÕíG§«“]÷溽¾Nt:ún-;fœ]-ÿkbóÎXïI¬%Pøðxý •J¢Ñ(8³«¬õØtkàÖéÌ@EC#Š8G¥’y<ŸÏàó™<8ŒFËc×¹¦`«ˆœÎ‡JžÝno̯àRUÝÇ_·”,Fi È1ÏUê0^6› =€…DâÓr¼Nçœ9;ÓÓKNœøÐߟßÈj!-³Ùf0˜QԤכÕjƒF£"™«xÆbhКÁ Óh2™H p8§Åb7›­F£œx¡åãà  E"ŽHÄ ‚Èý¨¸7ŠW­:z÷nebb÷¥KGÁwVˤS§åŸ}6ú­·z¿¤ý –Ì̲K— ΜÉ.,”ñxŒøxq|¼xàÀ?¿ô’¨®V¿öÚ/\.=9y>—Ëhæg‡¢¤Yq8œgÏ>ضíÒ•+…AAÂ7Þè5eJ¯çÈ?u:ÉÉkÖ³ÛŸ|2jÊ”žpÑ(ò$6o>·fM꯿¾=fL´»k<ýûo~ôÑï¿}òäžîªÁápfd”¦¤d9rG¯7wï%àÌ¢‰x6›&AB ØƒA!“I,•D"°Ùôz5®NÕÃæ+A¾"‘H`³©¸''7B ŠšœNÖ«óVà-Nìu‘¶˜í(|˜¼‡eÞ‚=€ w 5º*|OÈ®à_Ô;àÃ#‘,ÍÕ;B"ØlPæX,*™LäpèàÎ`Ž›Ç£»Zô v‹ÉdU©ô m’J¥¡Ü`u…FcÀ$4ÐݶÁcA/O6›ÆåÒ)›MŸÒJ%1&“F¥Y,ø|oCƒÞÅ8¾1X,¶¢"yQ‘,?_ZT$/(–”(¬V;‘H õŒŒôíÒůsg¿ÈH¿—× kñ[ßÇ×äp8@_°‚Án¯[B ³Éd5›­ NË×jM‡,e0™l&“µ1ê‰D`2i@z¬?J juµº¬¬6>^ Þb°v¡~L=€ét öQ ö€-‰hþIضŠ^o¶Ùìà_N ‹VkÒéLz½ ƒÁ‚¢F—±I¯7=ÒL— ‚7x<:—Ë R‰D"Ñf³ÛíN«Õ´d1(:l¥ŽHĉ¸AAB//Ž·7§^?ãúøp_paû!/OòŇ/_.xõÕ+VŒíÖ-ÐÝAžÈèÑ?öèúÅã^ö9ÎÜ\É… y.ä§§—Ølö¨¨€Áƒ#‡ïÒB–·Ê‹½wïžûòzN=(ªAÜCI‰bß¾›{ö\7,ÇwyóÍWããëZMO/Y¾üPa¡lÑ¢Áï¾;¨%g¼B -„O?MNNÎ8p`^llˆ»k<ÓÖ¯?µmÛŒáû¸·³ÙvéR~JJÆ©S÷ |¿~“’bGŒè Wóµt:³\ŽíM.×ÖÖjU*}m­N¡x8µ„‰ ® …lOOÐæååÅ Y·o—mÞ|áØ±÷¢£šÿ·0›mï½·÷äɬ￟œ”Ûü@ Ϧ®éx°4i€ $€õ„ƒŸÁ`¶Z`*¤D>É<÷(X£8àÃÒº°~f`æŒ1o„k¨›]סÍU’a±¨.kãñNP>ÚY ÷„ÖnØŒ³+m~Æ(yz}Ýô46eÄã6‹ Öà›Luws:à(j.L`ãà |L:s¹t ÌC ›M#“‰O‘åèt “Iápè •N'7Oê/ò¬8N…B+—£ ÄÁ³•J§Pèjkµ®N*•$°<µxñ¦Ý9ÒZ={0˜ÛÂz­Îj`: WŸñÌ8ÜCYεÑ‚Ôå€aSl8—p0×ÔÄG—–CZ) ‡«sâ@#§Óét:ÁT,,Ü"‘@"H$"ðG’H"‘À`PI$‰D “‰d2‘Å¢Q($*•D"‘Èd‹Eq©À5fœ;¨wX<&ri4 œ*…<ŠÍæP(ÐêjµD‚H¥HuµZ*E%MMF.G±)~2™l÷^^0kƒÀ@(dyx°Ý’Ç€¢¦êjuU•ªªJ]]­®¬T- ˆ@L&54Ô3$ijCO±Ø;,Ì+,Lß®äæÖŒûÓ¤Iq«W'>ýžf³Íd²`GI ,¶(ˆL˜ùX£Á6Ú°(88­HM¸z½Êdz|Æf+[Fƒ)‹à£„ƒ Oà¡÷¢ ëýôT ¥.·_©¬Áéõf‰Q(´‰F¡ÐÖÔhjj4‰¦ºZ£P àXC$<=Ùþþ__®ÏÏïëËóöæúùñ½¼ØðKhÓ¢Ó™7nLÛ±ã2›M[¶lLbbl{n&׊X·îxZÚƒ³g—¸åÙNgvvõ™39ii9÷ïW1”Áƒ;ÓmðàNîZíqçNŤI›‡ ‰Ü´iZ³½†¡¨q?N§óÊ•Â;¯œ9“ÃáÐ'MŠ›2¥§Xìíz‹ÅöóÏÿnÙrÞýjÕ„¡C;»«Z¤•b·;Þ߉Yþ9»oßpw—y"v»cæÌí÷îU¤¦~ТÌ««Õ‡ßÞ¿?½¸XîçÇ?>fÊ”ž¡¡pqC;åãœ9“³eËÛF£¤Mb]Áe²:Ç›ëªUááñ£›@&³XS ` Ìç[Vvðà­%KŒ³~ýëÐI ¸GýsV«ãÑèK°È½ÁFÎü¨¹J£i¬!òÜ`]” zã{œÅb·Ùì6›]§3ãˆÕj·ZÁÜ´ÅjuØlv»Ýa·;€ÍÎápÚí›Íáp8ž Éáñx\#§#ˆD“I¥PHL&é@:‹J"A_ºªÀ;B§S@ì‡Cch°k]«Je¥J*E$¤¦F-“¡®óïx<ÞË‹íí͉¸þþ|oo.6ùîéÉqccB§Ó©Pè T"Ajkµ ¢P ÕÕšª*uuµ <8ŽÃ¡ûûóýý:x†„x††zvèà)qÝUv« ¶V7jÔÁÁ{÷ÎkiÇ˜Ó ô9fÃýw-ËËxìp.V9“‰Ãá^ƪƒÁ‚ fµµºšum­®¦F„4l]‰D Ù@6óõåùúòÁØßŸïéÉiiÿÖ6‰ÍæØ¿ÿæ÷ߟ6Ì‹™93¾-™_Û<;w^ýöÛ¬vw!8‰DsæLNjêÝ7J¨TÒ!‘îR×._.˜6í÷©S{®Y“Ô<ÏE5H ¢¦F³gÏõýûÓ%M÷îAS¦ô;ö‹úï¿V®üG"Ñ,\8xÁ‚ÁÍœ‘ ´¬Vû¼y^¾\°gÏ;qqЯÖrÑéÌ&ül±ØŽ]Üc¯òó¥))ÉÉér¹V,öž81vÒ¤žž/«‹¤rûvùرúé×^ëþ”»i4†ÚZ–3©TêT*B¡Å6ªTz×ûs¹  ±ñùL€ééɘ˜än>6óùòå‚Ù³wDGnÛ6ÃÓgy,v»C§3étf¬›èõf51"ˆQ£1"ˆA¯7kµF΢כU^I$…B"“I$‘L&àñx‰àp8‰DXÉšîX,6«Õö$ï›Mc0(À-ÇbQ ƒAápèLfݘËeùá³Ù46›ÆáÐZà)Y[Âd²–—++*”ååJ0c gÎÎË— ¶m›1p`„»Ë<™ 3fc@€`ÿþy-³µ²ÝîÈÌ,KIÉ8|ø¶ÑhíÝ;,))vÔ¨¨§DøBÚv»côè l659yÁ‹ï äLj4F0'… ÆGo*ZW—ƒkÔ$èaîíͱÙ[·^äphß~ûztt”Ö ÈcжÇét¢h]72§³.*„€#Ⱥ´Ûí:Ùáp‚gÐcŒm6»^ÿ°m•‰«kWS§ë8×=¸ ‰ÀdÖ}Bâñÿé÷Ú±kÃ<:ý¡•$4‚1Ö«‡Ãx×Þ'í äƒ1Ö…‹£Pˆ`åÖº4–C£VkBQ£VkÒjMZ­Q«5£¨\´ZŠšt:Šš´Z£N×Ð Åq84ƒÆ`Ô…•‘ÉD@$‚ÍfÃápv»S§3 “É ÜxblÐ(¨^`£³X4‡nr¹ ‡ÆfÓÙl*áx<XýÓât:¥R¤¼\YQ¡r‘Ðjår-¸ƒ@À­’À5øúòíàø’p8œbÐh Q£1 ˆA­6€-bÄÆ`åf®e0(¾¾<¶×Ó“ííÍþ9OO¶·7*gMÈì;y2+5õƒ°0/w×Ò6q8œ Úٌͦùø@Ù¬•qëVéW_½}»|̘èO>ƒgZ)÷îUŽùõk˃ƒ=Ü]KC íñãYÿ‘™Y xíµî&Ä4ˆ£{yüòËÙµkÿüóÿXþÛ$@Q ÒBÑéÌ«VÛ»÷:…B2-ÞÞÜÄÄØiÓ^ º»4¤uc·;>ÿüÐîÝ׿ývâ”)½Ü]ä‰äçKÇûiàÀˆÍ›§µäìx“Éš––“’’qáB‘H:´sRRì€p"©­ò×_×V¬8”–öq³ëtæÚZ-ˆ”T©ô dݰ±ëT5€Çüm:Þ€ŽÏg@i ˆÁh´ Τ՚ƇÎ'£Ñ¢Ó™µZ#¸Š ³Á`5Ìb4Õó†Á É$Ð-ˆFD"žÅ¢áñxWý d‚±«¶„Ãá8ÖËô›cß&Öív&;9N­öa4‚±¹׆y@hc“ÉŠE–¹ª‰ $C×Ä3Îôhªg#Á$@ëˆÃáðx“Çc€ímx!ˆÑh).VË eEE²ÂByq±ü•(’¿??(ˆg` h· ÑQÔœ‘õvI³ÑhEƒ‹]ÒÄ3Æ V€ÖŽA$¸\:Ç.—Îã1y<:ÇÀ$4Þcô&gÇŽ++Wþó×_sàòÐD£1(ZÛ.—£‰F¡ÐØF‰Dƒ&ˆD‚‡ëQÁ <û»´´vêÔž\.C¥Ò¨I ¿©Tz׉] …Äç3‚ºÉM¡ðáŒ'6Ñ ¦>Ýø{A í Oç‡ZmpÝÆ¶ËH ƒËeÐéd:ÂfÓØl*N¡Ó)\.Dü±XT6›N§“i42…Bb0(ͦbò Á˜Llâò²1,Vkìd2Õµ]ÙpuHÝôáÃ$@ ‰Ãá'hF… q.=á¤Î&¨Õš€Åë§Ó™Lh0˜øÏž<O$ˆD<‘H “‰ ‘’L&°XtÇ;i4²Ó‰³Xl6›‡Ãï£Ýî”L&««›HÄ3T&“ pƒÃ¡yy±&›M ™B!ëIžB c?roF¥R©+,”É‹Šd`PU¥v:d21 @. ò ä ^^›Í5X¹H³z½´è7¬‹½@“?ìÎØOµZ“^_1Š Æ'ý£ ^ÿù@f±êì†|>Ì`\/¡1Ú°äÙê¸r¥`êÔß–,¹hÑw×Ò¢q8œà¸¶V+—£J¥^.Gkkµ hiØ»ƒ@À{z²½¼8 ÂÛ›ã:öð`CÙ¬ P[«ûöÛ¤ûû ¾ürÜСÝ]äE1›m!!KþüsvËÿo:Î7Š““o=z×nwŒÙõ7^íÓ'ìåM9Î9svܸQrüøû/ÕÉE5HË¢¸X¾bÅ?.ä Öåÿþo|PÐC_šÁ`9vìî¾}7ÓÓKD"Îøñ1‰‰±]ºø¹±Z¤U³eËù¯¿>6eJϵk“ ©¨Årà@úì[»6éí·û¸»–ÆRU¥>räöÞ½7KKaa^ãÆ½’˜Ûs ÏÁ‡î¿p!ïÒ¥ÏX¬jó²Xlï¿¿ïøñ{?þ8åÑÌÆ VëU*ƒZ­W«õjuÝHnØMW; €ÇÔ5ÌdLo ¶ÃR¤ áh/¤Tê$Mm­î¿š™Q£14°1q8t€éj Á. …Ë¥ÓéƒÂbÑX,*»ë„´j0…Ïh´‚}`lÂÕyøêŒw(jt8œf³M©Ô©t€«wIšŒF ÐrÌæÿHe$‘L&’ÉD©®÷‰D´XlžH$ »Ýét:Ífë‹‹|O‡Å¢‰ P Ô¸çÀjµÛlv«»8€~‰Çã <@ ñ6›³<>7À?ŠEŒb7§Á P($<ÏáÐ\»âÑédƒÊbQY,ÐBÌåÒ *¶mۥݻçöíîîZž¬¬ÊääŒ#Gn×Öꢢ’’bÇyI§Mf 3³lìØŸ6ož6nÜ+î®åi8Î~8ýÃg>üpØGx¾€fo h£š½aÄàÚUÀå2D"NýRw:—Ëàñè`£HÄ7…B6tÃ@Ú F£$GÉåZ¹úYm­V"AÀÔ6¯G§SD"ާ'›Ç«sp¹ 4³:­Ï–BZ5bP(t*•Lp+•:¥Rf½ëóŠõØ + YB!ËÃ-0Y,*˜ì ™>><<"Ž5#0—(¨R©Çˆ˜ÍVì©Y,ŸOg³é˜Ý ‰ø|‘HxtÖÇl~˜äÙL&h³„½ß­V;€çr,¡uAAžlöÃe7L&ÕõG£‘]•<2™è*Љ ÓɈx<ºÄ 5ó#›M;thÖâ±Mb·;jkµØù§\ŽJ¥¨ëɧFcÀÖ~“vž ‚¹\z}ïa:ÇlÛ.ÈS°ÛûöÝüñÇ3Z­ñ½÷†Î˜!µ1bb¾œ7o`kŒžÊʪܳçÆ?ÿdZ,ö bæÌééÛäÏ"“¡£Fý.Ú½{îKúö E5H‹àÔ©û+Vü£Réß{oè¼y(”Føóó¥))ÉÉér¹V,öž81vÒ¤P€@ž‰ÌÌò™3ÿ`³i»vÍ ]j["N§óÃ÷?~ïàÁùݺº»œgÆnw\»V”œ|ëĉ,³ÙÖ»wXRRìèÑÑð´¾ua³9†_/²œïîZÅ\úâ‹Ã“'÷\·nâ˱€öÖ@l7AŒR)Ò A •J3ž®b—‹OÑE"®·‘§CÈËtX‘HêjuM¦¦F#•"@?}–‡[$âxyq<=Ù@Bóöæzx°½½¹-ÖÞ 4'‡k *—×)mÀÐ 6*(È·Äápx<ÞÓ“%q½½¹>>\‘ˆëëËóòâøúò¼½9\.Ã`°Èdx¸L†€–Hr9*‘ `çØózz²==Ù¾¾wÞc㩬T>œ|ëþý*ooîèÑÑ Ñqq!ð<‰{÷*çÍûÓd²þüó}ûŠÝ]¤!Z­))i“Åb;th!ŸÏtw9MFVVerrÆá÷•J]TT@RRì„ 1PÙm!\»V4qâæ_}+!¡›»kyN¤RdêÔß4ÃÞ½ïDDø¸»œfå±É“Í¢Dƒë Ÿ|´÷ØâéÉ!à™UKÁb±Èòò$yy’ÜÜš¼<©D¢Ááp$Áß_Сƒg‡^¡¡^¡¡¡¡^>>\xV ´UT*}ffYVVeVVUVV¥L†8aPÏg8N“É*—k‹Šd`…Bòñá ƒ‚„"G$â …þþ|báp8år´²RUU¥®—ÜÔà&&<€G ƒƒ…^^°ë9䙑H4£Fý°cǬƜfØlŽzy èaz1ÖëdØv=8íò0›MÃÌýAÝz#.—Îç3êƒëâáAÒ¢°Xl¿ÿ~qÓ¦s$aéÒQ¯¿Þ†ô¶&Oþ5 @ðÝw“Ü]HÓ£Vë·o¿üûï‰DââÅC¦Oïû‚Kvt:ó¨Q?xyqöï· ×BQ Ò|˜Í¶_~ùwÓ¦sAAÂÕ«{÷k¶§ÎÏ—¦¦Þ=|øNq±ÜÏ?bDW5< “ɺzuêöí—gÎŒ_¹r,<-ki(•º ~f±hÎoc !-ÛÅ‹ùÇŽÝ=~<Ënwôïßq̘è1c¢[£;ªÍ`µÚ‡ [ïçÇß½{®»ky!ôzóìÙ;22ʶm›Ñ¿Gw—Ói¤ü† †ÚZkSÜ# \ƒ°#L~`Û­¦G"ÑdgW?xP$´’¹Íæ RIáá"±Ø;"Â'<\æ(„|¤mƒ †ôôRW ‡ÃaÑ¢¢ü##ý=u´ZíõÚ˜ª²R]U¥ª¨PUVªd2´ùd±¨~~| ®ùùñA†d@€ÀU*Óh UUêòòÚòreE…²¬LYQ¡¬®Vé‚N§`26 B[äI–ñã6™¬;v̲Û(jDQŠĨÕ5#Šë½ezpŠ‚µ ÉÄz_>“ÏÇNHZóëýút{@ZN§3%%ãÛoO*•º Í›7°©²ò ­…·Þú] `nØ0ÕÝ…¼,ôzóÎW~úé_2™øî»çÌéÿ"½Örs% ¦OïÛ„Ög(ªAš‰sçr?ÿüPm­véÒQo¿ÝÇ]ß꺢ƅ Ý&MŠ ¹¥¤%³oß+þ‰ŒôÛ´éÍ€»Ëü‡šÍøñ? wï~§MÎG ¨éôéû©©÷ÎËe2)ÆuIHè6hP'ø·ùÙºõâš5©.|Òb9­Vû¢E{NžÌúùç7ÆŽ}ÅÝå´b  Xô-Ç“Ôj=¶\£1€ŒA 2™Èç3@8×ðIl ¶s8t.— Çb·;Š‹å99599ÕÙÙÕÙÙU*•žH$„…yEDøtêä.Šˆð ÂL¤=PS£IO/¹u«ìÎòœœj«ÕÎ`P¢¢ºu èÖ-°[·ÀÀ@áóíˆmUUªª*ue¥ª²RUQ¡ªªRÉd(XWÁdRƒ‚„!!žAAB$âáãÃÃLE6›£¦F]Q¡,/W± 4‡Ããñ"ÇUf{ƒAmÎŒ¢FpA£VkB#Š>m AŒ55³ÙÚàá$ͦs84.—®l&ÔW` e¹\F¸ríZÑ×_»¿jÊ”ž|0ÌLJçîŠ n`æÌí4yóæiî.äåR]­^¿þTJJFX˜××_'öéóüþœ}ûn,YrpÇŽYC‡vn’Ú ¨yéÈåÚU«Ž:”9xp§¯¾šÐfåìvÇõëE‡ß9q" AŒ¯¼8jTÔ¨QQ-¡6¤åPX([°`Wy¹òË/ÇM™ÒËÝå@þCi©büøŸ_y%hÛ¶m¸ùTФ¦ÞKIÉÈʪ)¾“&ÅuíêïîºÚ R)Ò¯ßÚ™3ã?ýt´»kiœNçW_ݺõâÊ•cßyg€»ËiûØl ®aÂÛE¸:e¬1oà~c2©OΜlGÙ¶8‰D“™Yž™YvûvùýûU&“•L&†‡‹¢¢ºvõŠòŒô…Ž^¤`·;òò$@HKO/©©Ñx±Ø;..ä•W££ÅbÑKÕÔ­V{M¦²RYZZ[V†]”Fc]†dP08Ø“Ù:tðò÷细桨±Ìæjkãpè¡¡ž¡¡ž:xuèàââ ’–†ÍæÐëMÑ`0ëtàbBQ£^o`,àwGQ#ð>bp8t‡t2‡ÎfÓÀÍœœê ò/ÊáÐØl—Kg³é <ÒAÚ;¹¹5_~yäòå‚„„n}4\,övwE·1oÞŸ‡sëÖéî.¤9((®[wâôéìñã_Y¹rÜsw’zÿý½iiÎ["q_¼*(ªA^"‡ó¯¿®­[wœÃ¡­ZõÚðá]Ü]QC¬Vû¥KÇß;}:[­ÖGFúŽ5rdT§Ní«á ò$çöí—¿þúX·n6LÂs‹âîÝŠI“6ÑuÆ©m¾¡ð''gTT(Åbï„„è‰ãž{ñ5¤‘ÌŸ¿+3³ìâÅOi4²»kiJ6m:»zuꂃ—/ãîZ ÿ¡ñ” …¶ÁÜ\ã›Àyx°[¸‹Ëd²feUÞ¾]‘™Y–™Y&•"x<¾CϘ˜ W^ ŠŽèÔÉ·MÚ”!ÈcQ©ôW¯¦§—ÞºUš›[cµÚù|fllp!qq!]»ú·Y]&CÈlee 5áp8 ²¼ÂÃE@0kTlm¥¥µ%%ŠÒREI‰¢¤DQU¥²Ù8N$âvèàêâ ö#m› !ˆQ¯7ëõfά՚´Z“Ng[€ û)Š~f6Ûì ˜ÃX,*‹Eä2`)c6›Ö@E{lIii93füñå—ãgÏî÷òÿH«A&CW¯>vèPfçÎ~+V$ôí+vwE7³hÑ­Ö´sç,wÒ|üûïƒ+©Õú%KF¾õÖódà–#~˜)) ^üû Õ /‹Ì̲¥K“KJäoúômï¾;°Í‰žŽÃáÌÈ(=vìÞ?ÿdj4†î݃º%&vçó™î.­ råJá¤I›ÿøcæÈ‘]Ý]KÓsà@ú’%c¿ûîux o¥´1Îb±ef–_»VxíZQff¹Åbãph11Á11A11AÝ»q¹Œf(´œNgAìÖ­Òôô’[·JËË•8N,ö*Z¡AA­c]‘R©+,”ËKJ……²¢"9¦“ùúòBC½ÂÂ<ÃÂDaa^b±··÷c–#ˆ¡¼\™Ÿ/-(g[a¡ ¸â¸\FPP,uìè $Åbï6¶ ¨‘ ¨É`0 À%†Í(j4,˜¾xñ,Šj¦G¥Òùåá¿ÿÎìß¿ãš5‰­ÎÚÔµ´´YY•|>sðàN Ý ˆhùº òò0›mß}wrëÖ ýúu\»6 vYk9üóÏí… wøáð>îîZš‹Åvñb~JJÆ©S÷ñx|ÿþ“’bGŒè ?¨› «Õ>tèúÀ@Á_Íqw-/‹Ó§³ß}÷¯þý;nÙòVûœƒkW´LÎb±Ý¹SqõjáõëE™™å&“ÕÛ›ûê«zõêгghX˜¨Í»!†Ýî((Þ¸Q’™Y–ž^RU¥&ðáᢸ¸piu_«‹Õj/-UÉ‹‹åÅÅò¢"yE…R©Ô;N‡.‹}ÂÃE;z‡‡‹üýùîÁb±••Õ+[ii-°µI¥‡£ÑÈÀÊ.‹½Ã¼ÂÂD­Å׫՚ ‹Á¼bf Œß6FQ“ÑhÁLcØøÑ½‰àc0(L&•ɤr8tƒÂdR˜LGg2il6(dÀ7´17ž©TúQ£~ôóãíßÿ.<¥‡@p8œÍæØ¹óʆ gðxü'ŸŒzýõð­Á˜={™Lܲå-wâärí’%ΟÏ}çK—Ž|Ö÷Åï¿_\µêè?ÿ,îÞ=èEÊ€¢¤)q:{öÜX³&•N§¬[—ÔT­ÿÜENNõÉ“÷OœÈÊË“…¬#ºŽѵoßðÖr^49yy’?>“S½páàE‹†P(ð½Ð"8xðÖ‡î{ç+VŒuw-Í ŠOŸÎNIɸr¥Í¦ Öyâĸ¾}Ãáò½dóæsß}wòüùOÚÆÞ“¸~½xÆŒm;ûíØ1›Ã¡¹»H‹@¯7?Io{TŠ€0èt W§·±Ïg€1¸N¡ÐÞ¹SqéRþŃ%(HØ«WÖ¶ßq¤N§3/Ozõjá•+…7n£¨‘F#wëØ£GHllH\\p;±¨ –ÂBY^ž¤ @š—')(UW«q8“I ‰Å"±Ø[,öŽŒôõõå=i¥¥u[Q‘¼ @ZT$×ëÍ>0P. ´±ÙMÄw:(j4™¬àa6ÛL&+8j˜ÍÖ§n7<¥ˆÃáH$‚PÈ¢ÑÈT*;h42•Jk8ž¾½5.²ÙS§þVY©}Âzõ ‹Šò‡F‡¢¦ÂBi^ž$?_šŸ/ÍÏ—ÈåZÇå2:wöˆð‰ŒôŒôíØÑû)ýäÄr#óó¥R‰Ãá8zp°Èr]@€sëõf“ˆ¢F½Þâ26?2¶€1¸‰¢ÆGkÀãñɤLJC¾1ƒ Jý¸ÎUÆfÓX,*“éNÓXóóùç‡öï¿yôè{‘‘¾î®q37o–|ýõÑ»w+§LéùþûÞ´˜ÒΙ4ish¨çºuÝ]ˆ;))Q,\¸»¨H¶aÃÔQ£¢ÿ@™ 2ä»1c¢×®Mzîg‡¢¤ 0›mëןںõBçÎ~ß|3±kWwWô²Ðh —/¤¥åœ>­ÕšÄbï„„è¡C;wíê]vEQ‘|Ù²¿¯^-LJŠ]¶l´Hô˜ffß¾|ðÝw~þy‚»kq'ùùÒ””Œ””[2*{Oœ›”'qÜ]WkbîÜ÷ïW?ÿI;™Í©¬TMú›ÅbÛ»÷¼Ü]¤M‘›+9s&ûôéì{÷* |—.¾ÝºEFúzyqPÔø$KœJ¥oàk|¥§'†FB - §Óyÿ~ÕåËé饙™e*•žËeôë'ŽÇÅ…„‡Ã¬×ÿJ¥ð úÁInn̓5ùùR‹ÅF$‚‚„;ûuêäÓ©“o—.~~~|§Ó™A”"ŠëÇ5ÖÖj%MMF*EU*‚ +çÄãñD"Ç5øìÅb½¸\:P˜L*X÷~ÄåÒ *Ðϸ\ØWE4†]»®}úiʶm3Úd_¤ñ”•Õ~ñÅá´´œ!C"—/OxŽ~QöÃØ±?uëðÕWÜ]ˆ›±Ùß|sbÓ¦³o¾ùêêÕ‰_™”––3}ú»wÏ80âùžŠjåüù¼eËRT*ýŠc§NíÕN¾˜Í¶ôô’3grNœÈ’H4þþü"†í [¯AÚW®¬XñOy¹rÖ¬~ï½7´©:TCž›-[ίZuôÓOG¿xÏÕÖŽÃáÌÈ(MIÉ8räŽ^oîÞ=xâĸñãcà«ôrî\î›onݹsÖ°a]Ü]Kó¡Ñ¦Mû½¸X¾kלî݃Ý]¤uc·;nÞ,ZZy¹ÒÃ5|x×!C"{ôi|ÈAÓ6‰¸"§üÆç3aŒ3òR©¨P^ºTpùrÁÅ …–áõïÒ£GHçÎ~ÏÔ‚±}b³9t:‚Ak1΄ T*CMZ*EärA Z­èaxüç¸ê0 ƒQ'Œ1™T<<‹Y£1¨Õz™ ÕëÍ8ŽÁ {tìèéáëáÁjÖ_¾ÝpíZÑ”)¿.^<ä£F¸»Äm(Úï¾;yà@ºXì½r娸x±»+‚´t†ÿ¾_¿ŽË—qw!-‚½{o,[öwÏž¡›7O {¼~÷Ý¿nÞ,¹pá“ç Ûƒ¢äù©©Ñ|öYJZZNRRìòå íÓ`·;nÝ*=s&ûÔ©ì²²ZOOöС‡ï/n' ü!í«ÕþçŸW¿ûî$ƒA]¶ltRR,tmº—_~9»fMê²ec.ìîZZf³íÒ¥ü””ŒS§îø~ý:&%ÅŽÑ.€ÔÖê\'‰ÌfÛÀß„‡‹þüs¶«r ƒeΜ7o–üþûŒç^­iÏ8Î;w*޹“’’¡Vë#Gv1¢k\\ÈK:×éÌ ß›FcÔhôXeýëg@Q“ë‰DBƒÆo.)”;Àq¹ € ?3!FRS£9w.÷òå‚ôô™ e³i½zuèÑ#$>^ÜÎ…4uÕÆÌZ­ lq‘ÊÌ(jtÙh6- vB&WŒÍ¦±Ù4‹ÆfÓ@¬"‘ˆ×hŒµµZ¹­¬TÉd(‡ãr‘‘¾QQþ11AQQAAÂÿY§R©ËË“Éòò$yy’¼<)‚p8œ§';"§S'ŸˆŸN|ÅbÑS’'!¤¼\9jÔññâ-[¦Áo‘ö‰^oÞ°!mçÎ+óóÏFŽn'^ȳ¢×›i42v"1`À7 Ñp9ÆÝ»sæì¤ÑÈ{÷¾ hÌCÔjý€ß ÞåÛo'=Ç3BQ ò<ØíŽ;®¬_’Çc~ýõkC†Dº»¢AAôÌ™œÓ§³ïÜ)§PH½{‡ 9hP§Æœ»C ­¹\»~ýɽ{oDE¬Z5ú<ÜË®]×>û,eÞ¼öžÙ1œ9““’’qåJ!‡COHˆNJŠ‹ iç_àccÿoøð®Ÿ|2,ÎÚ¸1í§Ÿþ½xñS¾»Ksf³mþü¿ÎËݲå­#`¤±ääT>|çèÑ;••ª¨¨€aÃ:ƒlpw×õo€S*u6›Ãõ±À‡™Þž”? ¡!í‹Å–ž^ráBþåË99Õ>**àÕWÃúô ëÑ#´í:N`«ÕšPÔ¤Õ]®MØ0ÁL§35õŽ«6Fe³itÃ36›$4p³ñëVQÔ˜•U••Uyÿ~UVVUYY­Óéäñ11A¯¼Èå2¹«¼< èÍ–•UùàA p³‰DÐ’­cGo±X—Õ>z½yܸŸH$âáËàŸÒ±ÛûöÝüá‡ÓƒeÑ¢Á³fõƒoÈSXºôàÞ½7x<†§'Ûß_pçNyTTÀ¨QQ"G$âˆD\>ŸÑÎS(Ôjý[oý^Q¡Ú½{n#¿‹;vwÞ¼¿öì™;`À3/«…¢䙹s§â“OÈ-¼`Á`ø¡ÿ( …öüù¼sç\¼X€ †¼† ‰4¨SÏž¡íüÒ¶¹~½øóÏH§M{uÉ’‘¹‚49ûöÝX²äàܹýW®çîZZÕÕêÇoïߟ^\,÷óã3eJÏÐPOw×å¤R$&æKÏáоøb|¯^¡~»`Áà>îîÒ܆ÝîXº4999ýûï'Oœçîr -š¢"ùá÷¹S\, õœ0!füø˜6Ó–Ïh´ ˆQ­6£›Z­W« j5è506h4z³Ùæú@‡.0ù|ŸÏŽ7>¿ÁM†@À|¾”¤EQVV{þ|Þ… yW¯ –N|ú÷ïØ»wxÏž¡l6ÍÝÕ=:ùQaÌE63jµ&×±VÛP!£PHͦs84‡ÎåÒ1I fõj Ì8œfý¡¨);»êîÝŠÛ·Ë33Ëe2Çwèà 4¶î݃#"|H¤Æúe2$+«ª @šŸ/-(ååI,‰Dðóã‹ÅÞQQþ@lƒÝòž‚Ãáœ={GFF鉶ϵ\vαcwׯ?U^®œ3§ÿ‚ƒx¼FiüöÌ?ÿÜ^°`v“L&âñ8»Ýi·;p8ÿ÷ß%:ù¸¯ÀŠßzk[~¾tÏž¹11AyÈôéHÏž]ò¬t(ªAb2Y‹Šä]ºø=ú#­Ö´jÕѽ{oôé¾vmRûœ‚|Vòó¥ÿþ›séRÁõëE8î•W‚† ë/ŽŠ pwiHÓc·;víºþí·'œNÜüùgÍê×öç¶Ž¹³hÑî©S{­]›ÔÎÍXO"?_š’’‘œœ.—kÅbï‰c'NìáåÅvw]ÍljYsæìt:x<Çóù ‰xíÚrg´iÓÙ5kŽ/_>fþüAî®Òâ0›m©©w÷ì¹qóf‰—gܸn&tŽn×çu˜N.G¥RäIî7¹\ëúÝóÑÞo˜û ,¹7 Ÿ„´€ñýß\¿^T[«óöæ/îÛ7¼å¬'ÓjM®1°®~2,_\k4F­ÖØ /#€g³é<Xǹ®“Í€„ÆfÓ¹\:•ÚÊVŽÖÔhnß.¿}»,3³üþý*“ÉÊ`P¢¢bb‚zö íÑ#¤‘&6€VkÊÏ—äæ‚¸HɃéáÁŠˆðíÔÉ'"Â;2Ò/"§Õý¡^ëןúå—³ÉÉóãâBÜ] Ҭܿ_µjÕ±«W »òÉ(??(*CXûØ‘H„Þ½Ãöï·y+j¡˜LÖ3þÈʪ:|xQx¸èÞ_&Cû÷_;gNÿgÍÒ„¢¤!‹íIO/½téÓ'|ÉÉ·Ö¬IµÙ+WŽ…m“žµZåJáåËgÎdËåÚ  a|¼8>^|Ûh´öî–”;jTT{ød^³&uëÖ‹KË„H$8Î×^‹ùâ‹ñ®ÖÚ'›7Ÿ[½:uþüA°ù3#=½|VØíÎÄÄîII±±±!ðÓõ™@ƒTŠ>%|Èr ÜoÊoX ¥«çáÁnÏ « /›ÍqýzÑ¥KXºc¯^úõÒ¹cGïæ©Ánw`5ƒF£wƒ›û)‚EëÀ1†Ib˜ÆãÑ1o™ëv«íŸ¹bµÚ<¨¹}»üöíòŒŒÒòr%€ïØÑ»W¯=z„öìêíýÌ©¶‰&/Oš›[”¶‚©Õj'‘áá¢ÎýÀ¥K¿vëM9räÎüù»~øaòë¯÷pw-H³aÙˆŸÇ&É——+׬IMM½÷ê«>ÿ<¡[·Àæ/ÒªéÙsUe¥ê±?:tha¯^š¹ž‹Éd<ù×òråÑ£‹Ó_mÇŽ+_~yøìÙ¥aaÏ:E5ÈرãòçŸÿC àæÏüÙg£ÁÆâbù§Ÿ&_¿^?ÿüï¦M炃=Ö­KêÑ#ÔÝ5¶5*+UçÏç]¼˜wõj!Šš‚ƒ=úõ÷ïѧOl5i(•º_½°mÛE¡õþûÃ&OîÙøv&!--gîÜãÆ½²~ýdøÇo !5õ^rò­ŒŒ21ztTRRl\\ÈSæ¤6m:{äÈÝ;gùúòš³ÔÁét†‡f0˜ýs:q  †&­#Gî,^¼g̘è߀oŸvˆZ­ß½ûúöíWT*ݘ1Ño¿Ýž ·(¬V;èëz¼i4•JïÒN6ªÕz“Éêú@6›Æç3‚]߀Á]ß„BVëj‹i,ÛÍ›%gÎäüûoNy¹’Å¢Ø ä‹ ¹³ÙºªT•JW¯™ýÇL. ^™ ¨Âõ¯FÖ‰°Áööà§o ˆ!=½ôæÍ’›7K²²*­V»HÄéÛWÜ·ox|¼øEÎúPÔ˜—'ÉʪÊʪÌʪ*.–Ûí2™âååߥ‹Û ÒW(´£Fýر£÷ŸΆÞbHãÔ©û³gïp8œþ믧OïƒÃáÌfÛ¶mùåF^¶ltbb,\«ynÊ\¼xOƒÐf¿mÛôQ£¢ÜSS ¦¢B9vìÆ¸¸Ðߟþ?ï|÷nŘ1~ýõí1c¢¹(ªAꨨPº^¯7ƒ7'‘Hðõå±XÔ’ÅÂ…ƒ.-&/›òreZZNZZNzz‰Ùl ÒyذÎ=z„Â?>¤µS]­Þ¸1mÿþ›ÁÁ‹ §’ÍÌ;o¼ñ[—.~;vÌ‚³0§ªJ}äÈí½{o––*¼Æ{åµ×º‡„<¦Ÿh¿~k‹‹å\.cÇŽY={¶Ž9÷âby|üÚÇþÇ%&Æ~÷ÝëðèƒÃáþý÷Áܹ;ããÅ[·N‡öCffùÖ­NºÏfÓfÌèûöÛ}a&j«Æd²ºŠm˜ü®ë59½Zmp]üK&&Ü–PÈX@rãó™|>ÓÃÅç3Û[V^›D¥ÒŸ;—{öìƒK— €)màÀˆ"úö»þ  x)•ºzÙL¯R—–^©Ô˜Á`qݹ«ÆåÒù|0“Õ f0/½%c4Z23˯]+ºzµðîÝ «ÕêÙ·oxß¾â>}Â^°£žÕj/)Q-+«2;»Úh´‰¾Xì d¶èèÀÖÞú×b±%%mV*u'N¼ mŒ‹óß|s«Ãá³ìíÆ•©©w7l8£Ó™-2sf~út‡b 47w44´56¶56¶ÕÕµ66¶áñm mõõ­x<Œñ?u‹Á P$‚`YYq]]SS5}}¬¬¬mY¡œœèXúMssGrrQrrQ||>×¢¡!çâbäìl8i’ wÛU]]kVV9.2+«¼®®Ydžx×,-5ÆŒQç«ï «Vîß?ÝÇg2¯e¸I]]ëôéþ8\+}Ü/ =wîØ óD0ÀH%2òë¶m‘1| F`×.Ï­[Ýx-¿óógݤIÿ\¸°dîܱìS’H”‰ÿ±²Ò¸zuy¯Ù§Úh';»ÂËëBÏ5j4P(èúõ3gZ¥TöÉÔüüªä䢤¤¢””"‘¬¥…¬`3tq1–’{ª† ••M7o¾ ý,!!¼råøõë]ø|Šå ¦¦yÑ¢ííÝ!!ŒUx-Î𦼼ñÒ¥7|éù'AA´¨¨ÐíÛkÆ×zÁz…H$ëéí¥PþÕþ¨I“L®__FÙSQ_¸ð: Ãaa›µ´äy-€ ”•5;öäåË;;;§‚ešž@s°!Ž7Ä!„àñ툣ˆ@øÿÙh´½ƒMAABNN‚懣¹âÑ\™õøq CT*õíÛ=ƒjEttZëëÛðø6<¾½®ŽÐÐІǷ74´ÖÕµ"ÕB„)5R|EE ZÎúzB~~Íׯ¥%%u“&™¸¹™ººšÊÉ5Ç€A„L¦~ýú+!!?1±   FBBØÉÉÐÝÝlʳÁðF]ß¿W#û±egWã`Æb¥,,4ýØlmµy¸ÎYÇãé9Æß¯dƒ¶¶îÙ³/ázzÔPññ»ML@§À5*+›ìí!Ç¢¢‚GÀ•œ°sgxrrarò^# <{–µqcðË—Û-,4اNµQ ßîêzº¡¡6¬F a0h‰¢¤$õñ㾚è ÑÙILK+EâCææV¢P($žû„ †ãÆé‚%À€aACC[pð‡€€$†,°ÿã·á¾ 7ŸÓÞÞ½qcpJJÉõë+ÜÜLy-ÎðfÛ¶ÑÑLûQ( òõ½nÝ„¡Œ=™™åÓ¦‡  {µe‹ë¾}Óø?à?€Ã–,¹A t…‡o›Îk„®K—â“ôôž¶ùð?]]¤––ŽææÎº:Bmm Ìág}}+mmm’ÉdRZZTYYZIIŠ“h“0 ¿y“áBü·oe‚‚$Ò¿ÝÆððÍÎÎý iÃp]aÇ2ä€E³¥¥ƒ–^P­ª*CÛ«Œ>#­D шDòû÷…ññy‰‰ß«ªšTUe<=-ÜÝÍìíuAÌFÀÐS]ÝüömÁ›7ùII…$ÅÞ^ÇÓÓÂÃcÌàÅ3 :¿¯¡ùØŠŠj!B|löö:vv:ææêC¶Ë#Ð9}úiiÑG~/ `$A&SW® HJ*b: Š €š8Ñ$$dýP ñX[ûâp ½v­³¯ï,^‹3<¨ªjrrúûðᙫW;÷šxÖ¬K‚‚訨-ì“§Úè…B¡ÎŸ-=½”~(™ÏH"Q„„0VVšŽŽz¶¶:vvÚ`íȰ‡kIN.þø±89¹¨ººYJJÔÁAï·ßôõLMUÁh)€Ïihh |ô‚à•+–.uÐÔ A 2™ºTXXÊßÏ[¾ü7^‹3\éì$ŽóWG‘M Z²Äáï¿çswÅÀ¹wïÓþýQ( …‚›Ã‰e  ÑÜܱlÙ­òòƇ7™™©ñZ@Ÿ!Éï/_N–=th†——%ˆsI0löVWG`øY]ÝL¿ÆKXó?Û¼VââÂÙÙ±±ß~ýÂc0(úÐ&(êÒ¥%óæ¥T× IDATÙö¼{kkWuõ¿Û˜!›Ìõðvtw“‘Äýp˜õ$=½T]]‹•ÆáZâãóããó>|(îê"ÙÚj»»›¹¹™)s£^€B&S32Jcc³ž=ËÄáZZònnf3fXÚÙé ªjiéÈήLM-AÜl8ÐÓSB±!ÿR~ …ºlÙ­¢"ÜË—;À¤IÀH†ámÛ>z”N¥2ñ¨ c¨TQµŠŠRÑÑ[ôô”†\FÀˆeëÖÐGÒ OŸqkóÎÑÀÎáYYåoÞìî5ezzÙÌ™CB6LšÄnPàT½?þôúõD‚ÄÄ„‰D™L••7NÏÞ^×ÎNÇÂB¯†ÿ}¥¤¤þÇâOŸ~|ùò£®®UJJdÜ8==GG=ssu 8Ø|JkkWpðÇ€€÷mnnfëÖ9o†;†ýý_;÷jËצƒJîÏŸg­_ A½˜R(4nœn`àþ 6µmÛȈTYYñà൶¶`û¨>ƒøÕJK<ØØk\_‘”TxøpLYYÆ ÿøÃ „<ŒBH$ ߆Çw »‘!ññøöÆÆöÆÆw#kllg;õ^ÀÒRÃÔT…BI$Jw7±¹¹³¡¡ ÿÏ…ââ ÿRQQÙN^^BQQRAABNN|àq56o¾›©  Çw PиqzH=¤À·H”ÏŸ¼x‘ýêU.GÐÑQœ>ÝÂÛÛÎÀ;Ø·†a¸¬¬1+«"+«<;»2'§²µµKLLhÌuKK [[[[mee®m{ìØ“ààO11Œ£Î­<~àäÉgW¯&@„B¡DD0d2q¡)(H+«)*)ƒ% ®žº}ûÃyól/_^ÊkY†éé¥3f\|õj''*iåÊÀÚÚ–¸¸lÊþãTj£}YY/‚(Bww‰TM$V“ÉM¼–k$ÃC6×’šú Ùƒ­¼¼ƒ05ý7D¤Î ÍJ• '$ä&%'ik+,]ê°l™#=„‡§îÙ1gŽÍ™3 ùs.E^^^}}=¯¥`Ž¿jZZ ‡‰•”Äwì°×Ô”T‘8dÏž·$uï^eeîoì1b055URb9«´½½{ùò€üüê‡7Y[k¥`€þÑÜÜqô蓈ˆ¯îîfÇÏew ô‰£1?¿¨€€¤ŽŽnZÉž P(†‘Âh4JTTXJJDNNBQQRYYJEEZEE†æESPäîÆÏBW\\NLLÆû÷ßa@Q©°½½ÎŸºOœhÔó-ŽˆˆX¸p!8ÄÛÛ;""‚韨TøÛ·²—/sbb2ª«›ml´¼½ífͲ–‘¢^• ÿúUŸ•U‘•U‘‘Q–“SI$’UUelmµÇŽÕ¶±ÑÈdë¾ìÚ~åʲ¹sÇrWìaJ]]]~~>¯¥pׯeC$))¨®.­©)¥¡!¥¦&¡®.).>DU‡ŠŠŠfffÉØç40EÅU H¤:^ËÂ3ú7Æ>aÂ)ããÇçôšòû÷7·3·n­š6Í‚UF§ÚöíÛû!`ÑÝMIH¨ÒÐÐÑ‘”•AçóçÏçÏŸç“U¡4Ûû÷…xšƒÍÞ^gÜ8=îöu€“›[uïÞǨ¨4 F`öl›uë&‚>\æÅ‹ìß™0ÁèêÕe|¸}f^^^ww·†?.*.®Ãã;zO÷?DE-,x-°£ƒ¸oß““'gHJ‚o>KòòòØ;Õ "Éë×}üX¼~üxý!“ ÐW` ýrâD¬¤¤ˆŸŸ·«« ûô O…tv’S‹‹É(TïKÇÐh¹sÇ^¼¸úo´I¦ñëêZiý d›7Z˜Gii1ee)úðªª2½Žàgf–|ú4FM™b–šú«ªêß¹¡Œ™ «©ÉlÜ8qÉú]£§+ß0HøûûkhhôÚð¨TøË—ŸÑÑéÏže‘HooÛuë\ôõ‡:^…Býñ£.;»âë×_©©¿Š‹q($P$ÐÈÐËá¸vzzÙ¼yWÖ¯w9xÐk°Å. Nµú<§µµ;..OWWA__QZ¬BãˆŠŠ aaá;Õ€}N#2²ÄÛ[—×Rð†Œ±Ÿ=–’–æËIbŸûÕ {˜+>F§Zxxø‚ ú!`Ò…ã§ † k?}úñùóÏÏŸàñí¢¢B66šãÆé§kc£Å‡cë€QKCC[xxÊÝ»jjZœœ Ö­›àæf f*q‘oßÊ׬¹-''´–ߢrçååAúŸ\¤«‹$(ˆm²çÝ»w½:Õ "‘(ë×%'¯sr2Ù}¢­­{÷îð§O3,°óõÅÉôÐ'ŒN<_½z×É“II…™™d2EXC$R˜öbÆ7ˆŒôá$Ûînrss;ƒ§ ‡#àp„ææŽ––ΚšæÖÖ.ZzV{¼IJŠäæVÅÅåäçW[[k®X1~Ö,kA ‹¿ÚèïˆBA(JTTpÑ"ŸI**2¿öÈ#D•pîÍíì$†…¥Ü¼ù¾¢?eŠÙþýÓy¸)`uusZZizziFFivv%‰DQS“;VÛÖVÛÎNÇÜ\•1Y]ÝþùÛoLözN5Àˆ’’ä”)fS¦˜ATWךšZ’’R’’òóÅ‹l …ª¢"ãà kg§ëà kh¨ fŸ†GG=GG½ššæ‡SÂÂR“ììt–.uœ9Ó ,ÁBB˜óç›™©ùúÆÖž<9‡]w`øÕ¶n ]¾< `¢@<¤£ƒ¸{wø“'ßþøÃmçN ;ú˜˜ÐĉÆ'8àÕÖÖ’Ròùó¯_Q©ð vRSK|}còó«—/ÿÍÇg²ªªLÏ4¿~Õ_À>4M¡ Z¤¤\^¾ÌaÃà7P(”——åÔ©æïÏ{óÍÏo¾ƒƒ¯å‚ RR’œ1ÃjÆ +‚êë[¿|ù™šúëë×_wî$Ã0¬®.wùòggÃß~Ó1oÀ?hhÈqnaÌu½Û·“€S ô%%I//K//K‚Z[»ÒÒJSSK¾|ùyôhLw7YJJÔÎN{ìXm{{]++MúÍÀ€ÁFEEfÇŽ©;vLÍή ù|à@ÔÞ½îîæË–9‚•"aݺ X¬Ô¶mkjš¯^].%¶_z¸ti©€€ÀúõAÀ¯Æ[jk[V® ¬­m !.#!!ìêjâêj2¨w©¯oõõ‰‰Éps3}ûvžËí-ëë[™žÂ‰d4ZÀÎNgüx}{{ݲ²ôåË—xz>4©€AAPíã3ÙËËòÀGóæ]Ý´iâ¾}ÓùjÞ›¢â¿¶ØØÌM›îÍ›g‹Á$%…„|F£ÌÌÔœœ \\ŒìíuAÜ~ðYY±æfÆÈálX½ÚÉÇç~ee“ºº,߀Jœ"))2i’ñ¤IƉäì슴´²¯_K‚ƒ?ž>ýƒ03S³³Ó±µÕ±·×QV–æµ¼€Ñ‚……ÆéÓ‡Í|úôÛ½{.¼n`€]°ÀnéRG1^K7,™1ÃJCCnõêÛžžçW›˜¨ðZ"`€F \¸°X@µnÝÝ€€Uîîæ¼–h4’šZ²fÍuu¹×¯wb±À†¡¡ŸOœx&..´¶×icc;íXHC&S¨TXCCnÂ#''ƒß~Ó§E•¬©ÉD¡€AFSS>$dãGiû÷G}üøãÚµåººŠ¼ê?ÔìØ¶l™ã?ÿx#gªªš>þùñcñ“'ß®]{+""ho¯;a‚á„ F¦¦ª à † ÝÖÖÍyz1 aa)»vy0üi°b¡üøñÙu©çÊËËW¯^ Ãð²eË$$øw‘8›² Eøö탉ŒŒ¤òä‰PNNA(:¤¥¥½¼¼~ýúÅá­Q(Ô?8Li``@ÛJÁÓÓ“ó¸_ Ãþ‘d¸ $„±µÕÙ´iâíÛk¾};š™yìöí5nn¦……µÛ¶=°±9biyxåÊÀsçâ’“‹º»É¼–0ò‘’Y¶ÌñÕ«ÑÑ¿[Zjœ;÷ÊÁáøQéée 'XYi¾}»GKKÞÓÓ?4ô3¯Åá±O8I9p{Ñ~?~…Bùùù $O®dÂûÚ C1#3“›cš|¨»ÑhÿEsæØ¬_ôêU.¯Åu<~œ±`Áu;;èèßùÄ£6ÊûDÐ;>¢¢¢ãÇgÿà“RWWW/Y²D[[[BBÂÎÎîñãÇ<ƒi óá§[àñík×ÞÙ·/jáB»÷ï÷q25¡¡áß•j 3gZ;·èë×Ã))9³`Ö,k¦û´q`Np `Nô‰yól_¿ÞÃð´iþ ½>JÛV­ ´´Ô8qb.í¤ššìüù¶çÏ/þúõpf汋—hjÊݹ“ìî~ÖÐpß…ׯ^MÈÎ®à¡ØÃ``c Œ6ƒ¼>¹/}뼪Á^¤¾¾>üÜ–ú½\Píím•ÖóOƒåT“‘‘Ù»wo_¯Š‰‰™={vuuuhhh~~þ`6Ø E°¶¶>pàÀÖ­[›››!jiiññññõõ3æßîŸ>}ª©©©®®~ÿþ=•J]¶l« KJJØß´¥¥eùò媪ªrrrK—.mllDΗ––feeÑ’555%%% ´„ý…¯„pd¶;=ÂÃ7çäŒÜ²zµ ÷o'/\x}̘C‹Ý8wîÕ»wß „N^ É P(½K—–ffÝ»wúׯ¥3f\7îøéÓ/þ¬ãµtà YYñÐÐ »w{ìݹukhW‰×qØ'´k9QÍý¹r ÃpXX˜¦¦fxxx¿3dšÉÀ‹À¾&gÍšUSSSSSóéÓ'‚jþ‡™ÙÈŠˆF øû/ž;wì† Aqq9¼gòù?B.´XÍ?ñ¨GyŸ9F:>555ÙÙÙ .d3Ù…JÝØØhmm-&&žššºhѢŋ¿zõjà9ªúî$$LžüO^^õ£G[Ž™-..ÌÉUZZò~~ÞÉÉû³³_º´táB{55Æà<ƒ0'€91ôhk+ÄÄü1i’ÉÊ•·oóň ‰DY»ö.-°ŠU\Jd¶Ó§¤¥ù~þ|èÈ‘Ù22b—/'xxø[YÞ¸18$ä3Çé&7ƒ``ô‰¼>œ§ïùPúšCÿîÕ¿Ò±‡^nÑÔÔÞ׈VÓ§[–—7ææV1þ¦‚ ððp˜«#w¡°aúô霤ä-l$DŠÃpww·¹¹ù† `Þ´iÓØ±c‰D"’‚ ââbÚ%•••µ´´pr/†k<<<&Nœøýû÷?~L:ÕÛÛIéááqàÀZ²   OOO¦9 6|% SU¤ã1H™ó9T*µ¨¨öáÃ/;v„¹¸ø©©mWUÝ>a©mÛÌÍ­$‘(¼–0ÂÉË«:r$ÆÊ갊ʶéÓÏß¹“ÔØØÆk¡†oÞ䛘pw?[^Þ8ôwÏÍÍÍÍÍåz¶ý°Oz^;Ðß+++ …BÅÇÇCTXXØ¿ ™f2d¶Ö ÞhPuwbb"‡ë÷åT*uÿþHMÍÏŸgqQ*+Þ«ªn?y2–+¹>‡pÒ'bxOq8Al^.~(õ–-[9»vírssxÎ}-Óôƒ÷éãUŸ…L¦œ<«ªº}ëÖP¡sî2H¥æ0'ØãííŒÏp*•zõj‚šÚöÓ§_p=ó¾²o_¤¾þÞüüª¾^ØÕEJN.ïGæ=sàzU¼y³©¯ùóóûäɧOzÖ§K¨TªÍ‘³g_2œïÛJµ§OŸª©©555AôðáCCCÃööv*•zåÊIIIGGÇÄÄDd•›Å†Ïž=Cœó***´è ââ⢢¢)++Cÿ[´˜ ©©ùáæ¢P¨;w˜(**úùùÝ¿_GGGZZú¯¿þBH¤Ý»wc±X%%¥Ý»w“H$GGÇóçÏC„ÇãvíÚA…B‘••}þü9AÍÍÍ«V­RPPPWWßµkWWWƒ$HÎ0 ïÚµËÊʪ¡¡¾ ݹsçÔ©SwïÞ dZh4‚ 2™Ì´fèkáõë×úúú²²²§NBJ÷úõëcÇŽééé;v,..Iéííÿo¦FTTÔüùóiùô¬N*“}ÍØØØ¬]»IÙÖÖ&&&öíÛ7N„aõdCCCMLLäääNŸ>Í*% Ã7nÜ055•’’š+˜ÊÉJ·2­XøVw£P¨“'ç-[öÛÆÁg öíF9'O>óõ9thÆ^CsGÐ'â¼OÄ€   ´´4+‘zýÀ2Àê Ìð‘dõ¥bzù£GþüóOz±}}}oß¾³ªä¯ôÇ=Åèµt åÌ™3†††’’’ãÇOIIaÚrøöÓ×p¸–¹s¯Ü¹“|ùòÒ‹—HJŠðP`Nsb¸¼S(ÊÇgòÝ»k¯_OüãP‰Â+I‚ƒ?Þ¿ÿéòå¥&&ª}½VXãädxà€×‹Ûss߸±ÒÄD%4ô‹‡‡¿••ï¶mž>ýÖÒÒ1bó-ÀÀ00úÍм>¬ôTÇ …MëEèÙXµ.ö¾úÒ±ÒË=Ûééµ1Í–þlK µ¤¤NOO©OW¡P(WW“ÄÄ÷°Ax}W¬X±råÊÚÚZ,›’’ÃðÍ›7•””¢££«««Ÿ?®®®APOg/í€@  ­Y³¦²²2$$‚ ºº:†ïܹsÿþ}ø¿þOäØÓÓóíÛ·555L/„ hñâÅ!00‚  „›7oBÔÐÐÃð?ÿü3oÞ¼òòòììl›}ûö;vlúôé0 ?yòDJJÊÆÆ†á´´4‘ööv†—.]êêêúóçÏììlssó#GŽÐK‚ê¥R©´;"-­4öíÛAЉ'ê933³µµ•@ üøñcîܹ¶¶¶¬j¦çJ5///ðèÑ#¤€d2¹¸¸˜D"! üüü,--‘”ß¿WVVþöí ÃÍÍÍbbbˆBÜÅ=«…“Êd_3/^¼——G„ 133Cf±†U“€ hþüùMMM5662M ¦¦W__¯¯¯ÔXÏÒ‹ÚÖÖÆðP*Iìîî^TTôåË}}}ZaN²eàѽR=µµÍ¯_çž8;sæE-­]**ÛŒŒö-XpíìÙ—¯_ç65µóZ@À¤»›ôúuî† Ašš;utvoØôúu.X1É ííÝë×ßUWßqöl™­­­UUU>>>Èn.¬Ìõ^ÐìyV_`†$«/UÏË‘±<Ïêѳªú'E+;ƒ½–Îßߟ¾©ªªöìD Þ§oèû,II…ææ‡&L8U\<Ðïm¯pX:`Ns‚»æÄ ­T£‘–VjjzpÁ‚k­­]ƒwV$'ihì8w.Ž»Ù–•5Ü¿ÿiÆ ƒ½**Û\\üNœˆMJ*$ÉܽÑÃáJ5``cäC¶Rm^¦ ˜ªc†‡ÂÐz{.äêÙ˜¶®^}ôǬô2Cûa©×Æ4[†‡ÅŸcìÅÅ8•mYYå}½ðÑ£4MÍÝÝ$ú“}vª555©««[XXÐÊiffDK̾vww´µµQ(”÷ïßÓÛ¼yóKÏ¦ÍæB‚222`&‰ ÇHccãšš$Ãøøx++«´´4 "‘¸cÇŽ 6559sfÚ´iȵh4šöÂGGGëëëÓK‚ïÙ³úoüZ¨Tê¬Y³Ðhô²eËꙆ   ‹‹ "'Óötª½{÷†a …Âð¶´´ìÝ»WKK ©ä¯[¶lÙ¿? Ã!!!S¦LéÞ“žÕÒkeöZ3d2YYY9!!†áiÓ¦ùùùÑÄf# ›'‹Ø4˜¦477 ¥ÕÃëY@zQèY± ‰ÃÃà K;Ù37€SZZ:ß½û~î\ÜÒ¥7¨¨lÓÔÜéáqn߾ȇ¿äçW·€»TU5]¾üÆÅÅOEe›£ã‰³g_þø1è:#€ˆˆT}ý½ç~ýªš;rh‚¥} šû¡Oñx¼  àÙ³g›šš¨Tjkk+…BÿkH|ùòƒÁ }Èôôt‚rrr?õÔ¬ô/«Lè‹ÀT¹÷ZZFFFÑÑÑȵùùù´c†ºb*'+ÝÊ´béTÝͧ ÃT*õðáÇêê;¢¢¾<77o¾SSÛ~÷îîf úD\ìAÿEBB"??Ÿ–’•¹ÞkÚÍê Ìð‘dõ¥êy9‡ ¨©©‰ésgS'ôOŠVv1z-¡¡aÏVÄ Ãà}ú†¸Ïrÿþ'MÍK–ÜÀã‡".7‡¥æ0'¸kN ¶S †á¬¬ò1cÍ{¹¥e°¢§2åׯz“›6^¨Æ®.RRRቱH—ÍÄäÀ† A÷睊i¤;*:Õ€cÄCæT‚ׇi¦ê˜á¡0´Þâÿ:Õ˜6¦­«Wßí˜^fh? "±o`¬²exXü9ÆüÑÐp_?†—óó«UT¶TÓŸÄ@}DFFfÆ GE¢iCTRRb>mu IDATeeEK`aaÁ>!!¡¢¢¢õë×·µµY[[#'ÛÚÚH$’¬,ó]…Y]ˆ )) A_‘þ¡´´TEE…öSZZÚÚÚZ\\üëׯIIIW®\yóæMRRRbbâôéÓ!Âáp EOOI¯¯¯l{F“áëׯ'Nüûᅢ‚‚˜!44ôÝ»woß¾:uêüùógÍšEûSqq1² ª×šé 2¡@@à?¡;>|¸{÷n¯_¿***ÒÎ{{{¯[·îäÉ“ á™VK¯•ÙkÍ Ñè¹sçFGG[XX¼yó™ºÒ«0l Ž–&Ó”?þ477§]bjjʾ€ô±ç½*ÖÀÀ€v­°LOˆ””ˆ‹‹‘‹‹A0 ÿøQ—‘Qöí[Yffùƒ_H$Ѝ¨¹¹š¥¥†••¦¥¥†®®"›õÚ@¯¨ªÊüþ»ëï¿»fgWDE¥Ý¿ÿéܹWffj3gZÍœi­¥%Ïkùoo»qãt·l qw?û÷ßóçÏ·åµDÿÂû¡úTVV611ñÂ… ¾¾¾666û÷ï÷ôôd¸WXX™L¦ßÜ8<<œ¦ïô#+ýË>6ʽ}…PVVFS‹&&&&&&lêŠÐS·²ªXzø_w£P¨£Gg‹Š nÛöJ…½½í†ìÖ#žë×OžŒ=~1Ojô‰hùôÚ'¢u|:::>¼f͚ϟ?³‰¡È½Úó¬0|$Y}©z^.++‹Åbóóóûí7ú2úøø¼ÿdzªø¿Ã| bôZ:"‘ÈI+âÿO{H$ÊÑ£O‚‚>lßî¾}ûT>2é9Ì 6Y±:É[,,4ž<Ùºpáuoï«l”——‚›]+Wjk+œ?¿xðzåÂÂggCggý ª¿¿}[pð࣢Ǝ՞<ÙÄÍÍÌÄD¥÷Œ†ÀÀ å zÁ Cðú0MÀTÓgÛ«Àê¥èÙº8ô°Éê­ý°OÀ&Ûž9ð[[úð¡ÈÖVƒéÛnh!#„xcãÿ³úœKEEÅ•+WÜÜÜvî܉œQSSËÊÊ¢%ÈËËcŸCggç‚ vïÞ‘‘qíÚ5äd\\œ‡‡«K§ÈôBNPPP ¹[›šš¾|ù" 0mÚ´'OžÙØØLž<9>>>)) ù¾c±X4]Ròï¶1?þTSS£—!66öÆaaa‰‰‰=‹P]]½uëÖ3gÎL˜0Á××wãÆý¨™žô4Yüýý}}}cccé=j999µ¶¶~øð!>>~öìÙì«…½xg5ãííýøñ㈈'''d]m¯Â°)8ÃëÇ4¥––}«+((`_@V_ ¦¶ â6‡ ¨¨¨ù"°: à"ÈNl Úûùy¿|¹£¤ätbâ^?¿ùYY»wG8;ŸÒÖÞ=qâ?[·††„|.,¬¥RÁfl€~ba¡qìØœÌÌc‰‰{'N4¾s烣㉉ÿ9w.îçÏ:^KÇhjÊ?~üÇÆ·m{°qc0ÐÉk‰ ˆGö B?ôigg'•JŒŒÄãñk×®1c§¿…B ÷÷÷oý;vì@¦æ! ô#ÄLÿöš åÎ ªªª¥¥¥ÈqffæÉ“'Ù§ge'ôÔ­œTìpÑÝûöMÿã·;Â""¾ñ­G*÷ï:q"öøñ9¼òS‚>-[ö}"zÄÄÄV­Z•——Gû õúš÷jϳJÀð‘dõ¥bzùÌ™3Ï;Gÿ© !‘HbbblêÙ!»ªªŠþ¾=¿ÕìK§­­ÍI+.Ÿ>¦TV6yy]xúô[dä–;=øÊ£s˜t —w ‚ ÅçÏ·S(ÔiÓΗ–6 öí(ªÏ½ææŽ€€U"",Çd¹‹‰‰ªÏ䨨-¹¹'®__¡««tçN²«ëi‡‡E'%òpc9î Z¶ÀÀ@ŽÁ9Cðú0MÀTÓgÛ«À´0m]œ¿§lûöÃ>‡êžÛR{{÷›7ù^^–ý¸VLLHLLoÿÏYúekPoK))Š››ÛñãÇñx¼²²òÓ§Oaþûï¿•””bbbjjj^¾|Ùk|Ò¦¦& õòåËöövd1oFFƲe˪ªª»°ZßÊôB¸ÇÅžÇ[·n?~iiiVVÖ¸qã~ÿýw†###%$$ „ñññôáÅ—,YâêêZRR’““cffvøðaVRùúúvvvÒJ¥zyy¹¸¸ áˆD¢……ÅâÅ‹{ IÓ"÷jmmeU@d²‡ÐAŸÒÇÇÇÄÄdÒ¤IœTK¯•ɾf`&“ÉJJJX,öîÝ»´“ì…áüÉ2MyùòeuuõW¯^544$$$¡P(¦d5  ¹¹™Ua‘Ä“&M*..NMM500 –ádÏGÉÿÈ]ÈdÊ÷ï5©‡EÏœyQGg·ŠÊ6}ý½3g^}CÐgIN.43;èéé_UÅ<þÕàÁIé€9s‚ÛæÄ„¤ÑÒÒ1cÆEKË¿òó«{O=Nz¦¥µëë×’A½ '”–6¼_°àš†Æmí] \ x_]=ÔŸá$ü#00zJ Œ`` MøÇ¡y}˜&`ªŽéJÏÖûéÓ§:`f €iëêÕw@ß’9×Ë*k6Ùòÿ{ttº†ÆŽ††Ö~\ ð‘ѾOôgúæT»|ù²¥¥%‘H„aøñãÇ***x<žH$;vLGGGBBÂÑÑÙÑŠM…aØßß_NNNCCãÚµk‹/–••Eâê"°ú’ö¼PII æàûN V¯^-+++//¿aÃdWÌææf sâÄ †ÛÛÛ…„„öìÙC»_¾|¹¼¼¼ŠŠÊöíÛi/CO©:;; 8@_„   aaaúÈ¿©©©QQQpO?== H"‘œœœ$$$XðÇPèS¾{÷‚ «W¯rR-½V&ûšAØ´i“¨¨(M™q" çO¶gJ …rþüy===iii'Ož(**2- ƒ¨œ|2µ´´þøãZaN2}”ô§Ú B"ýÇǦ¥µKEe›¡á>z¯e KhÞµ1cѼk¥¥ ¼–‹¿¨©i^¾ü–†Æ?¿çƒ´y8'&øÛ' ª¹ú4<<\OOOHHÈØØøÉ“'D"‘þ^7ntww§/#•JÕÓÓÛ»w/›Ìô/›LŠÐS¹÷ZZmtuuíÚµKUUUZZzñâÅ ûô4zÊÉJ·ö£b¹¨»éÃðñãOÕÕwÄÄdp=çÑCVV¹žÞž]»Âo èÑn4À>Ü£ãC¡P¤¤¤~ýú…üìÕ\ïG¦Ågõ¥bz9 Ã¥¥¥óçÏWUU•””´··GÆeXÕ Ã'Nœ‘‘ÑÓÓ{òä ›1¯^Õ™L>s挾¾¾¸¸¸££#2±½×‡Ë­Oß öY¨Tj@À{MÍ7µµu Ò]ØÀIé€9s‚‹æÄP:Õ`niéœ=û’…Å_99•ƒt‹èètUÕíáᩃ”ÿhll‹ˆHݰ!ÈÐpÒq;q"6%å'_͵åÄ© ŒžRcCãTš×§gä5aPÇ0–gPÍHY€™5V­‹½ï€¾,œëe•u_³…A±öÏ^¥R©“'Ÿöñ¹×× i—kjî|ô(þ$ ¦{–(*<<|Á‚=Ÿ.çüøñÃÀÀfÖD£„ƒ–––†††Ííž={¦¡¡aiùïúÍG8qâÛ·oÌ–iKî_󎈈X¸p!x)†‰RRRŸ]‘]™]‘™YN"Q°X) u ++MEEI^‹ Ntu‘òŸ>Í|ó&ŸD"[[k¹¹™zxŒ10ÀòZ4~!66óÀGÂþþ‹õ¸›9¢ÁÌÌl€ùŒûdˆõo¿a“‹†‹ºûÝ»w¦¦¦JJJ—ŠÓ§_^ºñâ’yóøeKÂaDiiƒ—×;;Û·× ^Ô8Ð' /¸õé¼> GضíÁ‡ÅûöMóñ™Ì“}‘¹UºÑðjs‚‹æ¢J""".‡tv×­»›’Rrùò2OÏ1ÜÍüÛ·ò¹s/¯X1þèÑÙ½§æííÝï߯Çç½y“ßØØ¦­­0uª¹››Ù¸qºýØD‡»ÔÕÕåççOœ8q€ùŒ†¯€OàÖÇ+=z`Ÿkx>Æþñão﫯^í3F½÷Ô=ÀãÛÍÍ…‡ovv6¤Äô##€]]]ÕÕÕwîÜyøðáÝ4;;{ÿþýÁÁÁÆÆÆÙÙÙýõ×–-[†ìî~CPmd¤ld¤Œl²B"Q ªSSegWÄÆf?ÿšJ…é}lcÇjËɉóZj_#""8}ºåôé–Äøø¼/²/_~sêÔs==%1žžc¬­5y2<Ä?̘aå訿”·÷Õ%KŽ™-&&Äk¡F<Ñ¿ý`¸È9¨ìÙãI¡P·m{ˆB¡æÎËkq†--+VhiÉ_»¶œßöa¬xü8cÿþHÉØØ?­¬4y-€ÃEM9y‚¨¨PHÈÿWëÖÝõñ™¼ÿtniÌÚÚ–5kn;9><“+ââÂÓ¦YL›fA¥Â¥¯_çÅÇçݼùNFFÌÝÝlútË Œ„…Á@(Œ.nÝzçè¨×?AùùU«ÐŸºÀMRRRæÌ™³yóæÏ¾áœ={ötttÌž=»¾¾^WWwÍš57nx¶RRR=óazÀÏ ¢-,4,,4ŸmÙÙ•YYåYY¡¡_Î{…Á`ÍÌÔÌÍÕMMUÇŒQ“–ã­Ì¾ELLhÖ,ëY³¬)jzzi||~\\ÎÕ« 22bnn¦S¦˜Mžl"..Ìk1yƒ‚‚D@ÀªððT_ßÇéé¥.,é·½è<Ñ¿ý€©œ\Ô­ÃEwïß?J…ÿüó-0k–5¯ÅH”M›îµ¶v=|¸IT¸í€ÿ‡o?}ííÝû÷GEE¥­];áàA/AÞÊè`N°ÉŠÞ)A¡P;wz¨«ËíÙQVÖpñâ’ëÍ®.ÒªU·ÅÅ…¯\Y†FóxÉ' lmulmuð*+k|ù2çÅ‹ìÕ«o‹‰ Mžl:mš…«ëèí¸2Ü?†þ·m©°°6!!ÿÖ­UýÎ!-­TYYš!ì÷Ã?@øG¾‡#dgWäæVååUåæV•—7B¤®.kf¦fn®ff¦ff¦¦¡!Çk1|Maaí›7y¯_祥• cœ §L1ó𣠠ÁkÑxCMMóŽa?¯^í¼k—‡¤¤È3äVøG O ^øG†ÿúëñýûŸnÞ\éáÁåèL#’LJ„|މùƒ6Qfð}"Àè„»}–””’}û"kjZþùÇ›f€€' }øGz’’ 7lÖ×Wºvm¹¦¦ü@²Úº5ôõë¼çÏ·éé –i447w ‘!ò»»É66Z3fX͘a‰ÅJÁݹþvðOøGÀ Ý‚×ÚÛ»cc·õ{é¶§§¿¹¹ú™3ÿi~`¥½`±RS¦˜M™ò¯j§ß-)©èúõÄŽ¢  ZGG‰ia¡nn®âÚèAÂnÙâúëWýË—9¯_çíßõ×_Ñ&yx˜»¹™¶=üTTd>ÜŸ·Tdä×;¦®Yã µ  P¨ãÇçP©ÔƒV¹»›óZ"¾&<<õöí䀀UCàQ¤©©ýøñØððTÝÐЪª2¼–¥L˜`ôôéÖuëŸó÷_4mšEÿò¹~=ññ㌠ÃÚ£AŒŒ˜····]g'ñÃ‡âØØÌÓ§_93v¬6R[[×2€›>“}|&74´ÅÇçÆÅåîÛE¡DXZj¸¹™¹¹™š›«ž­×¦L1?Þàüù×ÇŽ=yô(ÍÏÏÛÒ …ÿ…B<9J…ׯ \M›á` '§rß¾È]ú=† …žzêÔsÔ… ‹çÏ·=–ÀŸ*ÇÅí<|øñºuwçͳ=ztv_7Ï;y2öàÁ..Fƒ$äÐ#**„L®mmíJHÈñ"ÛßÿµŸß ;;dK60FBç±cO—/ÿÍÄD¥÷Ô,¸uë½¾¾’³³!ÃyàT–`±ÒS¦HÓ:[Z: k7[llÖùó¯©T‹•24T¦¹Ù °`QÎ(GAAbñb‡Å‹:;‰ii¥¯_ç…„|>s楬¬¸““››©»»ÙhغOLLèàA/OÏ1û÷GÍœyqóæIüá¶.èA¡P§NͧRáuëîÞ¹³ÖÕÕ„×ñMMík×ÞqpÐ;xp¯eìxý:÷￟—•5¬^í´mÛT)©Æ\ALLèìÙ…îîfûöE¹¸ø;6gί-,¬Ý²åþÂ…ã6ož4¨Bò II‘Ù³mf϶éê"%&~ñ"ûìÙ8_ߘ±cµgδòò²TVŠÈ üý_‘ÉÔ]»<úCq1îÑ£´3göœ(œjÀ)ÒÒbööºööºÈ϶¶î’’:š›-4ôsWIBBØÄDÕÈèÿÝl`WöQ‹¨¨³³¡³³áñãs­×’’Švî ƒaÈÌLmÊÓ)SÌF|(3­/¶ß»÷ñŸ^„„|Þ±cêòå¿ ¢y-À/ P(??ï®.ÒúõwïÝ[ïädÀk‰ø‹}û¢H$Ê… KÐh^˘@¡PŸ=˺q#1'§rÞ<ÛÐÐ jj²¼ 0âînîà âÄÓ߉Šúzøð,##eö—àñí+W)ÿý÷¼¡’‡ˆˆzzŽñôC¡PÓÓKcc³._~søðcCCå3,çΫ££ÈkÐÞ¾-H:~±¬lß–hÓ€aØ×7ÆÈH…ÏŒàT€~"!!la¡aa¡|^»ºH5yyU¹¹•yyUÑÑéD11!335ssuÄÙ&!VêŒFh[¯ÕÖ¶$$ä¿}[pãÆ»sç^«¸ºšN™b:v¬öH2F£V¯vž5ËæâÅø£GŸ&8à5}º   ÎŸ_L¥Â+WÞ¿¿þ·ßôy-¿pïÞ§/²£¢¶`±R¼–0ÒÝMO½q#±¬¬qâD£W¯vš™©ñZ(À))‘Ó§,X`wôè7·3‹Û¹s*Ë|%™Lݼù™L¹}{­°ð(9D£y´GŽÌB¼kÁÁÏ{…x×æÍ³û®ÿS^ÞèãséR‡ ˜øÃ8$<<59¹(&æ¦ÉF‘jxˆ¤äxw÷³JJR  ’JJRòò⊊’ŠŠRòòòòâ#u0}T!""hm­im­‰ü¤P¨¿~5äåUåæVåæV¾|™S_ߊB¡44䌌”ULLTŒŒTôõ•ÀªQ…²²ôÒ¥ŽK—:‰ä””’7oò_¾Ì¾z5AZZÌÙÙ`âDc£9Å[NNüèÑÙ›7Oò÷åãsOOOéàÁnn¦¼– à Ðh‹—P(!+VÜ¿¿ÁÑQ×ñžâbÜÑ£O¶nu7N—ײ€ÿPZÚò9<<µ¹¹cÆ «€€UÀ lmuž>ý366ëÔ©gáá©sçŽýýwW==%†dÇŽ=IK+}òd«’Ò(ÝAx×ÞB"Qª«›kjš++›ª«›1y^K6H”Í›ïiiÉ?>·ß™Õþõ×ãõë'Œ«Í4 †áÿÿæŒó}2¹‰LnìÓUh´4AJKŸ.Á`¤»»Ëû&€B )*.#“I¤F2¹Ln$“ñ0Láµ\œ""¢wèÐ…††V<¾½±± ‡#àñíDä¯(yy yyÄß&)//¡¨(©¨()//¡  ¡¤$%//1ªf‡TZ[»~ýªGÂEÕT74´AD¿+›‘‘²‘‘ xÜ£ÒÒ†ÄÄïïß~úTÜÖÖ­¯¯äâbìâbôÛoúbbB¼–ŽûäåU<ùìÝ»ïÓ¦YlßîÎ~$.//¯¾¾~Èdh˜šš*)1Ž1 *$eãÆà‹>Üdc£5”·æ7H$ÊôéçEE…=úƒê‰G(–@£%Ñh)4Z’öDªonŽbax …1C ¼#‘êx-`( `€H$¿z•{ÿþç‹%.·t©ƒ¦æð䊈ˆX¸p!Ó? ˆb0²Œ,-‹ÁÈb0rmm_:; ‡X -),¬ÝÑ‘ÃkAØ!.>VTÔˆDª'“ëI¤2¹žJíæJÎÞÞÞ\ÉŠ»H”¨¨¯—.½©¨ÀO›fñûï®´¸ô!!Ÿ÷î¼ukåôé–¼’¯èê"½}[ðôiæ›7yÝÝdGG=//+//K99Ž‹ÕÕÕåçç¶¢¨¨hffÖó<‘H®«k­­mÆáÕÕÿúÏjjš«ªšêêZ›DH£¢"™ÔÕõsÈÿ‚‚XQQCAA•ÆÆHbi/†6ö*A~~ÏoßN~ùr‡¾~?»óííÝÓ¦|úôOV#´ÿqªEFFöïN€þÃÐË—¯_WNªîéÙ·mu‚‚Š ZµÊóK^¼¨xó¦rÞ<Ýñã±}”èê¢|ýZ_SÓQ]ÝQSÓÞÕEA£QŠŠ¢**bªªb**b**bòòÂüìöööf8ÓÑAlhh­¯oÃãÛÛêêZÛÛÚêë[ñø6<¾Dú×q(!!L[ÖFs¹!î7ä@^^œŸ‹`JKKÍÇVXX›“SÙÕEDëè()bg›–éZcÀȃJ…ss+““‹’’о|ùI¥ÂffjÎΆ&:8è°E>8ñ,;»ÂÅÅhËWV[I„înî j}BJJJXx¨ö’H”õ냾|ùñðáfÚÒçQÈ©SÏïÞM~ýz× Nojj¯®n®ªjª¬lªªjªªj®®n®¨À×Õµ =$4%##,##$'',++¬®.ni9<ü§²²ýË\ZZ=‘H51‘>]SUUŒ×B†‚ž}*þòågttú³gYmm]ãÇ,_þÛÔ©æÃË,©¨¨øòå …76vápuu8\g]]W]]g{; ‚ IIA%%Q䟙™,+Êk‘G))uþ04”Y¼XOV–O#á—–¶æç7UUuTW·ãñÝÉÉ «©‰«ªŠ©©‰«©‰÷{´A]]ÝÑÑ‘Ûòr 2™úøqú¥Ko~þ¬³³ÓY»ÖYVVbÙ²››7OÚ·o:¯¥ãS:;‰ ±±™ññy ÕÙÙpÖ,k1’’"l®êîî&C&$À'tw“ëêZ[ZºÛÚ(8‡#ÔÕp8×RW×ÚÔÔŽ$RS“QV–VQ‘QU•Áb¥ÕÔdTTd°X)EEIˆ§>‹êêöŒŒ†oߺD¬­ÜÝÕ„„†“4òèi¯ÒOݱ#ìÊ•esæØô/s‰²nÝÝŒŒ²çÏ·±™=†bïÙ m6}ûV~æÌ‚yólûzùÆÁݼ¹²OW&9³hѸS§æ¯^ˆ+¢¨WXX›]‘Ÿ_ÝÞÞÝÓahˆî~¦înrss{ssg]¡¶¶¥¥¥Ñ=--ÍÍuu„êêfšãMX###†ÅJc±RÒÒ¢ÒÒbÊÊRJJR22bX¬+%//9ôÓ½œC&S«ªšŠŠj³³+æýãŽJ…%%Ett ±FFʆ†Ê––š£6 Ǩ¢£ƒ˜ž^š”T”œ\”]!&&4v¬ö”)fîîfÃeV8'¤¦–\½ú6>>ÏÄDeÓ¦Is挟)À(1âSRJÂÃ7[ZömÒÕÈ =½töìËÿüã½d‰ÃÀs#:KKÊÊ‘n|yycYY#×B›º„Á¨©ÉjjÊkiÉc±RX¬´––¼¦¦<+%""8p†maa)aa©?Ö™šª®Zå4s¦•”ð.ŒF`þúõWTTÚ³gY--¶¶ÚÞÞv^^–22ÃýJ¥Âø¢¢Ú¢¢Ú²²F¤í`ò IDATóØÒÒA¤¤ˆ±±Š‘‘²––<ÒmTU•Ö½cþ'?¿úÏ?üüY·sçÔÍ›'óù|A‰RRRŸ]Ì}ÌÍ­jjjGFÈ"††Ê66Zòò¼–”›dgW&ÅÄ|£P¨ÚÚ aa›44äx-¿C$’ß¿/ŒÍ|ñ"»»›lc£åím7k–5{ï0’ P¨ ­ˆ™ WÒ75u‰d‚PŠŠ’Èpåÿþýÿ±œœ¿iaÄ ŠÍŠ‹Ë©ªjÒÓSš=ÛÚËËÊÈH™×¢Øñôi¦Ï½¼||&÷/2™ºaCPJJÉ£G[ŒUؤN5ÞPPP³ví‰rçΚ1cÔû‘Cÿœj½}[°iS°ö­[«¤¤FަÇáZhË}ŠŠp߿׉dš+ÂÂBÃÈHÙÄDUAaD¾]]$š§ 9hnîlié@ÔXKKmÑ4AÒÒbˆËæiCÎ ÊÊRÒÒãŸ{6îÆÄ±cµ/\X<¼ö£BFh‹‹q0 ÓÇð·°ÐÁE::ˆžžþ--(ª¾¾ÕÕÕtݺ ÎÎ}4jéê"ÅÇçEE¥½{÷]@5a‚‘——åôé– “ f6ƒ·ŒvŒÌV†¡ÛŒÙÙ‘‘i¯_çVT൵æÍ |iÃ…/_~.Yrsɇ'ú¹• ÃÛ¶=|ù2;<ܧװ1À©Æž=ËÚ¾ý¡……ú­[«ú=¹©ßN5‚ ª—/”¹woýH|„L.Cf&"ζòr< à ®ˆ1cÔGømÏån4—«ån ž6d¹›´´(+ &rò†ËËñÕß¿×|ÿ^SPPóëW=™LDëë+©˜˜¨«*khÈ ÷N€)ÝÝä””ŸÉÉÅ?çäT¢P¥¥ÆøñNNvvºÃ}7¾ÂÂÚë×ß>~œ!!!2wîØ%KLLØÍ F0]]¤+ j"#}ØO‘a8õìYVbâ^¦FrKKGYYãÿf„º:ò“ÖŸËÎúJeeSpðÇèèôššfggÃùóm==-$$ø4>`PÁáQQ_##ÓŠŠj±X©ùóíæÏ·åÃQ$°mX“ž^¶}ûŽð×_3—.u¦qeZ[» ªisrs«:;‰ººJÈhƒ……ú°›õÃðºuwSS½x±]AA"::ýîÝùùÕHLHOO ð*qBKKÇë×yÏže%& bÜÜLçÏ·8ÑÔ€Ÿ!‘(ÕÕÍ£ÇmÆ”Ÿ?ëbb2bc³ŠŠj••¥çͳåO+ÀŠøø¼M›îMj~åʲþ ‡R(ÔC‡¢<ørçÎZWW“^Ó§ÚB¥Â§N=¿víí’%ÿ=o Ÿ›8Õ ÂáZV®¼]Y‰¿sg½½n¿ÅFß¿× †oQQm^^ߎŒ¼ “ËFùæUôËÝO[m-Õr7aaŒ²²4}`Iii1iiÑÿUR’¦¤a‘H.*ÂTÖæçWÿ^S[ÛAˆˆ ñ´éë+)ki)€¨z#ŒÎNbZZiRRQjjIff9ýlööÃØÁV[ÛòàÁ—°°”ÊÊ&­¥Kfδ#¼€QGg'qÅŠ€ÂÂÚÈÈ-£¤G—’R2oÞ•³g9:ê±_v&--¦¥%Os˜a±RÈO°…CH$J\\NHÈç‹edÄ/vX°ÀÎÀ`øí» 8mmÝññyOž|KL,@¹»›Ï;vòd>£y/ÊÊG2~ ²þ |† ´%kNNçÎ-RU•áµD…>†?²  ‡#@„ÅJ!6 CCeMM9~î#Ÿ;÷êÒ¥øÈHú¢””’»w?¼|™---º`ýÒ¥::Š<rQ^ÞóíÉ“Œ‚‚eeé™3­æÍ³í_œ*`à·+~ýªŽNG|iJJ’3fXϘaik«3:G†‡/AAÿú+zÙ2Ç'æ¢Ñýùìê"mÞ|ïÝ»ï×®­ðôÃÉ%À©6t>>÷““‹Nžœ·lÙ@7ª S ‚ ööî-[BÞ½û~þüâ~ïÝ7¬ÁáZh“ËŠŠp……5ÝÝd†PéX¬¯%å ˆDrSS;C`IVËÝ„„0²²b ž6Úfo`¹Û ÒÜÜQTT[T„+.ÆÕþø?öÎ;,ª+ã—^g¦Ðû  EPìŠ+–D¢Q³é‰‰Énê–ìo“lb6ɦlbIŠ…h°ÅHïehS(Ó‡é}îï£× f€óy|xÇ™#ÊåÜó~ß÷môôHqrr'å˜F£DFR"#ÉÎÎãUw @¥ÒUU±A[}}·‹‹c||`ZZø¬Y´ôôˆqúíVWÇÍË+9y²Òh4/Z—››‘™eˇȈ#—k7nüF ì˜ÇŽø½`&çñd—.5f£ñövÚÎFKtèPéñãå"33*77cÑ¢8¸˜„(•º‹ j._n6›Ñ3¢V®LZº”aÅXi“ÉÜÞ.`2y@S·´ ùúzÆÄøíZÐ&]¯¼ò“H¤x÷Ý~Ù@¥¬½¢Ñ”S“Ékjê‹•ŽŽöáád °1A‰‰Á$’unÄjk¹«W¹aCÚ®]9~$˜x;~¼ÂÉÉaåʤ͛gÄÅŒÍ"'­­¼ãÇ+òó˃”““²zõÔñ¸µƒX ‰D%*D"%Ÿ/‹•|¾\$RˆDJO&+E"¥Éd„²ÙÁçË k k*+Yžž.+V$åä¤$'‡Â³ÇqŠVkxë­ãÇŽ•¿÷Þª§žš5¼'éìnÙ²G§3:ôÌr; ¨6Õ¿üò!ºgÏÖ‘Ú)Žˆ¨ÈË+yûíãkצ|üñz8îg‰B¡íê‚3&“×ÒÒ'*;14ÜæEGûÁñÞA2$»‚  ÚÍÒîfYöæçGÀãݬø×¿ ´¸¥­©©W¥Ò!wµ0¥ÍöƒJ EÑÖV^qqû­[¥¥B¡w›6-|Ú´ðiÓ"ŒÀqtÍGQ´´´óèÑ[EEõJ¥.55lÅŠ¤åˬuúŒ%r¹fݺ¯ÕjýÉ“/ÚæÿyE¹¥íìÞ¶3''/`; !‚»úà`"•Jpqqlkã/\øÉ_ÿš½}û0o‡ DSSï?Ü((¨Q«uK–0rs3¦O„g“ ±XùóÏVÓÒ,-h`À »8H¸èh?hA›Ì”•u¾òÊO‰êÝw³'žeíàóeàœ6€q^ ¾ @bdd$y ®Õ"‘rÉ’Ý¡¡ÄÇŸä·^__ÿáÃ¥‡•òùòŒŒˆÇ›¶t)c2tÕ&“¹¸¸=?¿üìÙ:ƒÁ4gNôòå ÙىЂ‘˵\$Rr žµL(Tðùr±X‰•9:Ú‰žD¢'•Jðõõ$‘ðd2Î×G¡à¡lv_°‰¢ÊJ–»»óâÅñÙÙ‰³gÓáYµ•÷ÔSûe2õ7ßl™1#rxOrêTÕ_þr,"‚üÃÛ)”¡I6PT]°µ Ò>ü0g¿]GPTCäêÕÖgžùN÷Û·oœ”yXŒØþ‚Fb‰˜AâÑj ”¶‡ÚÝ,•6*oYöF$â`‘Ø ÁQAë{ss¯H¤Dw %™-8˜8™«Ç;|¾¼¬¬³¬¬«¼¼«¾¾ÛÁÁnÊ”€ÔÔ°´´°Y³hãeÜd2WV² kOª‹•4uݺ”œœ”¡n€ ñ…X¬\³æ¿NN'N¼`ÅïVFÏáH0Áì^Û™™Œ³ÌiLÛŠ¢99_éõÆÓ§wÀŸ/#…J¥ûù窼¼’º:nH177^*'!*•îÒ¥æÂšK—šŒFÓôéQÙÙ K–0||³þ~@ çñd2™Æ²Õ AOOï{»T°S/(Á‰Duòd倉¢Y³è¶½ 6/6½ôÒ!¯½{·††úãT*Ý›oÿùçÊW_ÍÚ±#kGÇPTE í‹/æ]¹Ò2"%jYQ A––¾Í›¿wtt8xðOä‘zÚ‰ –9`Ä !ÀöwÊÿIxc0ªÈdêJ&ÂÉdš¾¾~…B‹=ØÅÅñÎ^ä®ö†½ãååF&ãáÎõ^L&3—+Ålmm|&“ßÞÎW*u‚x{{€b¶¨(Jd$%<œè gÞÇÝÝÒÒÒð«³Sèì옘 ""SRÂÆÅh›F£¿x±©  æÒ¥&“É`4ü43Þp'›ñ®f†µ¢@ÍìQ*u¿þZ÷Ë/µW¯¶¢(ºxq|NNÊÌ™4ø…(•ºÿû¿‚¼¼’uëRvíÊžOº­ÿÜsº»¥»wo\º”1¼•@Qm´`³Å۶퉔ß}÷ä´iá#þü#.ª!ÂçË·nÝËb‰öìÙ:}ú0““,-ÔVÕÕqù|9‚ X’fhƒWóQåìn`CÃçË,ó¦ïµ» ØÖÀ#Œž)Ø0±­¿_ ˆ³³cx8)"‚ ÞFF’#"Hpôx¼ (JK;nÝê,-momåÙÙÙÅÄø¥¦†§¦†¦¥…Û~¶R©;¾áôéjpt8mZxVVÜ¢Eq!!Dk/ azz¤«Wê{ðàÓ>b©Vë¹ÜûØÎúúdzýmÛYp°&˜…„Üužà^«5df~0k}÷î#õœ“©Tuøpi~~“É‹‰ñߺ53;;þ,žTÔÕq/\h,,¬e2yx¼kVVÜÈf< …Š––>6ûv~8‡#4G ŸA äQ(´à¤,;;ñÃsआ\®iié³HŒäêtF<Þ•N÷ÃÚ߇zȰwﵿÿýÔÞ½Û-Š‘EVV²Ž-+(¨V©ôsæÐ7l˜–• ÓÕ Š¢ee]ùùå¿üR£RégϦ¯_ŸºhQ<´ÔØ çó–ݧ$‘¨,³¼ï;Õ 5³QE¥Ò=[÷Ë/µ×®µšÍ(ÈV]´(¶ÆL$Îkxãc»woœ=›>Œg0Íß~{ùÓO‹h4êwß=ù(§FPT®]k}öÙ!!Ä}û¶ùùÊqähˆj‚ètÆW^9|ölÝ'ŸlX·.udŸ|r#Aª^]4WŸ²`ï Ä6˜§7öÜkw³4àóxýrùýínØ‘¥ŸDÂOÎA½ÞØÕ%+ॹ¹ÚœCC}-C~""ȣꮀ<:ýýêòò®Š VYYgm-W«5øû{¥¦†¥¦†¥¥…ÇÄøÙ²%Q§3–•už?ßxæL-' òÉÊŠËÊŠMO€º8dÂÐÕ%\½úË)S~øaû`ªÌf”Ë}ˆíÌÝÝ90ð>¶3??œ…}úiÑwß]½yó__hë(ŠÞ¸Ñ–—Wrî\ƒ££ýš5ɹ¹ Fµ×#Ìf´¢¢«°°öÂ…FGL¡–/OÈÎNHN}”ÙF£¹£ãþ40,-hÑãòå–×_?j4š>úhÝâÅñÖ^Ž-2`–·ºš-)±„U0ÅË`Q(ø?z†ß~kÞ²eÏë¯/Þ±cáÈ®M«5œ9S{ôhyqqï¶jUÒÚµ©ÉÉ!#û*Pº–—WRTTooo—•—››c!GƒÁ$‘(…B%Ÿ/‰B¡B ‹Å ÕL%ÈÁ01ÀÝÝ™LÆ“H8__O*•@$z’Éx2G$zR( ¥Ð±D¯7ž;×püxÅõëL£Ñ4wnÌòå Æ5ÒbãÈåÚ?üåÇ‹³²bÿýï ûs¬©áìÜy„Ãÿã«<ýOq¡¨6ò|õÕ¥?<»fMòǯ½+é(‰j‚ (º{÷¹O?=·}û¬÷Þ[59u‚QŲ”˜Éä·´ôéõFOO—ðp2h4jBB0™Œ³öJ';ìn˜Ëí¾v7AÀüѽÉׂàîïï…ùZñ¯3–`Z2›-g1ðµ"ܱf (ùÀëŒm2êê¸åå]ee]L&ÏÑÑ«a›>=ÒfƒmFó­[çÏ7œ?ßÀf‹)BVVì¢Eq™™QpZ2hnî]»ö«éÓ#¿ýv þ®Ré::˜`zÎ9f;³·· uÛÙPéííÏÌüà•W²^~yµÖ0~ ÇŽ•ýôÓ­ÎNajjغu©+W&MžÍÆ$Çd2——wÕ5p8b¯E‹â—,‰KOF'„@ hm}F£! ZÐ cƒ\®ù׿ eí£ÖÁ³Ñ‡‚ÕcƒÄHPKî¼@b$N‰ñúwW—péÒÿÌýÕW¹£'ÕtwKOž¬_.‘¨Äb¥H¤´ÔÌ\\I$…B =)<‰„#=©T‚¯¯'‰„#“ñîî#ãÿ†< ƒéÊ•–šóç mffTNNÊ‚S Åyâ¢h~~Åûï¢(ú׿®žH.×~ñÅ…ï¿¿°{÷Æèh¿G_ÕFF¿sç‘3gj?ø gÄKÔ0z¢àÈ‘[o¼‘¿hQÜ_l‚ÞäQL™b6 ¶q8½»³fqqð'· ‚ÙÝ0¥í÷v7™\®Á r&-•6*o @$â†q2.0L½½ýàÿ9Èkié ÈHq °S›˜x&hƒ°X¢òò.ð‹ÉäÛÛÛÑéÔiÓ““C““Cm6k±¹¹ïüù†sçjk¹nnNsçÆÌ™N²öÒ !ƒÙÎJK;>ûì|@€wx8ä7b¶3—ˆ2&˜ñŒ06¶³¡òê«?ݼÙvýúÛp¤wðæ_­ËË+).nÇãÝ<}ݺjíuAÆ©TuåJëÅ‹W®´J¥*ºxqÜ’% #p'ã:èg÷ZÐÀÃÒ‚à=Q·¦qÁ¥Kͯ¿~AÐ?^¿pa¬µ—3ž£6 ÷ËËqrr #ÅÄøÝ¼Ùîååvôès£”«4€¶6~AAõ‰•,–ˆÁÊÉIYµj*´§žövÁéÓUùùŽ˜ÁÊÍÍXµjê¸èÀär­H¤‹•@ @* åb±J,VJ$*lÚÞÞŽHôôññ =}}qD¢'‘èáãã |f@Eƒg¶ŒÑh¾|¹¹°°æÂ…&¹\“’š¸lcl®f±§¼¼ëwN0™ü—^šÿüóó†in2™¹õÑGgu:ã+¯dýéO³Gjs EµƒË•lÛ¶¯»[úÍ7OÌ™=Ú/7Ú¢‚ 7n0Ÿzꇨ(ò¾}ÛI$èš;@`:4c2y=‰ ¹ÓK ‰Œ ÈH²-ç°A;#Q`{ÒÀl”H¤‹U U@¥Òawss&=Èd<Øç‘H8__‘èòÀno"¥ëÈdê;3Ñü;é‘}:AÁlwÒ#©dx¬c;ÈdêòrVEEWyyWm-W­Öûúz&%…-!!Èoóø|Ù•+­—/·\¿Î”JUÁÁÄÙ³ésæDgfFÁ'ˆ­¡Tê:;ïc;ÞAìííÈd¼@ &.[–`#¶³¡R[Ë]¶ì³/¿Ì]½zªµ×2>àpÄ–œ8QÁçË33£rs3²²â 9áAQ´©©÷ҥ招ª«ÙöééóçÇ,X0%,ì!"|¾Ì3 ° ¹º:aÃLЂ±ed2õ_ÿú󉕛6¥ÿío+mp‡9^y9µµœ¼¼R 1 (:à„aT;)L&óõëÌ“'+ýµÞd2/Y¿zuòìÙô‰t{;ª_αcå.4ºº:­Z•´~}ÚÔ©9WÓd2‹DŠûFõ÷«Á(38=àp®~~^‚›e™™e’à=ã³½y³-?¿üÒ¥f©T•š–¸dI|@4¿NXzz¤»wŸ?v¬,55ìý÷×ÄÄøãI.\h|ï½Ó\®äé§ç¼øâ¼‘ÝëBQmd¸q£íÙg$“ñûöm;öˆj‚tu ss¿7™Ì<`­ˆe˜“ÉÂ4Ã2Ói4jp° Úwhµ±XÉçËÁ&¹ÝÑáT‰ë¼E„@p'‘<}|<‰D Þ!q$ÒmùÍfùƒZ­ïìvv ÚÛíí‚ÎNaG‡èŽ.¡¡¾áá¤ÐPß°0ßÐPßðp2LIµØlqYY'˜„­©á & Ÿ–žšÆ`&&Ûš?†Í_¸ÐxáBã­[F£)..pæLÚ¬Y4ؾK€í Ì€‹«ùéÐ÷ÚÎ@ƒÑµk­›7ïÙ²eÆ{ï­²îßex¬]û_£Ñ|êÔKp÷ò` SQQ}^^ÉÍ›mD¢çúõi=6 Úm'<âüù†ë×™7n´I¥ª¨(JVVܬY´´´ðû*©Z­ègLæmÿ´ A& ……5o½uÜÝÝy÷îÇ23£¬½œqÌ¿þU¸gϵ'^ˆŠ¢¶´ôbµõõÝZ­‡s #a‰‘ññÃð<µZ_TTòdåõëL77ç%Kâ³³gΤÁMø éïWŸ>]Ÿ_^UÅŽŽö{üñôµk“Ç]䊢Ü2æçÞê l?ŒÜ‰·y@É=Ì&$(Š–—wÖž=[×××O£Q×­KÉÎN ¶Ñ˜Ȉ )¿øâÂÅAA>o¼±tÙ2Æ0îÛÚøüë™3µééÿüç길€_'ÕF€¯¾ºôÑGg-ŠÿÏóð£É©±Õ‘JUÛ¶íklìùæ›-óçÇŒöËAƒÑhîé‘2™˜ÆÆ™éx¼N­lt:566ÀÇgœm­ ÷E§3ö÷«°ãìëëW(´Øã'XÎ$'‹%ìêuu‰X,¨ºWi #= ‘2¨Õú††îººîòò®ÒÒ¡PáæænÎÓÓ#‚‚|¬½Æ»ÈåškטW®´\¹ÒÒÛÛO$zΘ™‘9cFTd$ÙÚ«ƒL mW—ðÁ¶³  L0–2O¥â:LWTTÿôÓ?¼úê¢W_Ír¨» IDAT“¿Íˆqî\ömû v$'Oä!ëG¤¥¥ïС҂‚j©Tµd #77cúôHT0±éì^¼ØtéRÓ­[&“yêÔùó§ÌŸû»³p1±´ õôHFó½´ÐP_<ÞÍZd¤‰”o¾™ÿë¯õ›6¥ÿýï+Çìàe"ñÓO¥¯½vô‹/6åä¤ ø-£ÑÜÑ!À:)jk9ÂÁÁ>0ЛF£2`ŠwdóÞ5ýÅ‹MÇW\¹Òâà`?s&mùò„eË`íÅ a±D'NT9RÆãɦOÌÍÍX¼8ÞF´I¹\Ó×'û£š ™L-•ªÁ=òÇ‚™¥á f“²²ÎÂÂÚ¢¢úžiDyÕª¤åËéthö˜àô÷«¿ýöòž=×p8·×^[´qã´a]²ÙâÝ»ÏöóÏ•o½µìùççå˜í˜‰j‚èõÆ;T¿÷Þê­[3Çà!CØÌt&“‡µUQ(xPUª‰ét?˜4QÑj ÷ÎvlðŽX¬4ÍØã]\ïLuÝ?DÂ^úÇ£¢#-O”Z[ûär-rgS&²Áh6L´f3ÚÖÆ¯®fWT°ªªØL&E‘ðpRBBPbbpBBP\\Àh À&“wý:óæÍö’’™LM¡àg̈¬‡<“ÉÜÝ-}°í €ÿ‘ílØ/}âDÅŽ‡ß~{ùóÏÏ¡¿Í¨c0˜fÏþ0>>pl¶²ãµZòde^^I]78˜øÄkצP©k¯ 2ZÈåšë×™W¯¶^½ÚÊåJ¼½=æÌ¡/X;gÝÛÛã,hvvvÁÁ>`ŸC§SÁUZÐ ›Âš7ß<ŽÃ¹~öÙcÖ^Îx¢²’“óß'ŸÌüûßWæñ2™«d««ëîè˜Lf¬÷/DGûH…@ øå—šÓ§«+*X^^îK–įX‘8}z¼š ‹——WRTTïãã‘““ºiSú¨Þ¼èõF‰D%•ª°Æ2ð¡H¤ å ÏL,Va§Ížž.$k2#“qà"ÑÄíL°’ È£P_ß}ìXùùó \®$4ÔwíÚd¨¥Mø|Ùwß]=x°ØÑÑá¹çæ>õÔ¬aœ±X¢]»Îœ9SøÎ;ËgΤÆR1 ¨6|zz¤Û¶íc³Å_}õÄØ[¸ÆRTCEÑÝ»ÏíÞ}~Û¶™ï½·Ê–Ú!l òz4½££}@ÀíY3 ¶jl:ÄÖÐj ”¶þþ»¦7™L-*ÌæÛ?œ½½ÝïM!Ç8??‚­ >C¥ÍÆQ(´µµœª*NM §¦†ÃãÉìÁ9ÐØbcl䆊Í_¿Î,+ë¼q£Ç“‰žÓ§G¦¦†¥¥…ÅǨºÉŒ\®e±„˜`®6|¾L"QÛëžílØ=ZöÚkG>ø góæé£ô#Ë¡C%o¿}âÊ•7Ú5Ùhhè9pàfAAµFcX¼8>77cÆŒ(¸U›æšöÕ«­W®´ÖÔpIL ž3':&ÆÏÃÃ¥­„4Ì‚æææE4D(Tüå/ÇΟoÜ´)ý½÷VÙÎx–-Ó×׿dÉn#臞ÞσÁÔÙ)“Ékhè‘JU l45))Ä×÷‘šzz¤5Õµµ\ooE‹â–-K˜5 &C >_~üxù¡C¥l¶8%%tݺԵk“‡ô b2™¥RµD¢”JÕ‰J"QŠDJ©ô¶f&‘¨@9…Ry·w%q>>àh…šÖOakE¤£CpêTUaa-“É£P99)99)PK›$0™¼O?=wæLmHˆï+¯,\¹2iövÁwß]ÉÏ/ðÞ¹sÑÊ•IcíEµaRYÉ~ê©ý‚ÛþýÛ¬r0Æ¢   zÇŽÃ3fD}ûíX<¾À#ÆVW× #-cÓÁ¬‰Kª&/z½Q*U PÚ,ƒx¼~ Q@Τ¥Ò†åL‚܆G´_ŒPi³Y mss/мu«„ÌDDA xkõ £Ñ\WÇ-.n/.n/+ëT«õ¡¡¾Ó¦…§§G¤¥…A=`¢r_Ûø«CÇã]CCI˜`®$ êÒ*×½½{¯ýýï§¾øbÓš5ÉcÿêCÂ`0Íœ¹kÁ‚)ÿú×k¯ÅVÉÔùùÇWÔÕqcbü¶n™0z*,ÄZ (Z_ß}ý:óÚ5fyy—VkˆŠ¢„‡“ðxW•JßÝ-e±Dr¹æ^ F¡P U¹KaaÍoä“H¸ÿüçñ¤¤`k/ǦÑhô+W~a0˜ vàp®#õ´|¾ øØ@!E[EQˤ#hØ#¼l¶øÌ™Ú3gjkj¸8œkVVì²e sæDÃÜÁPWÇÍË+9q¢ÒÉÉaÅŠÄÍ›gÐéÔÞÞ~0\ Rm„ÜÈdêþ~5¶Ëµ··#‘p÷Î×Â3ÈÈ"L–F&ã²³“²³RRÂà<Ù$¡¢¢kÏžkgÎÔù<÷ÜÜ Ò†!§Ý¼ÙþÝwW.]j '=ûìÜ ÒÆ,*ŠjÃáðáÒ·ß>1o^Ì_l²–¶dQ AŠŠ®­[÷‘Éøƒÿäïï5ƯA°Y3&“êÙø|9‚ X¤N¥Ñ(£ÔN ¿€œIK¥ s¿õ÷«-[‚–9“÷­öõÅq=ŒÙŒöööƒ†6KÔÙ)d±D]]w{Ú€ÆB ÂÞñv£ Š¢ÂšNM ·¦†ÓÐЭÓÝÜœcc‚‚ŒÀˆ²u›„ Su5»¸¸½¬¬«¢¢K©Ô‘ɸÔÔðiÓÂÓÒ¦L €rì¸C.×°X¢¡ÚÎÀ‡6xް{÷¹Ï>;ÿÕWO¬X‘híµ<ˆƒ‹ÿñÓ%%ï’É“}ŽEÑ7ÚòòJΟopp°_³&977ƒÁ²öº #Œ\®¹y³íìÙº›7Ûy<™ƒƒçf2™A!®»»sd$…F£ÐéT χ†’ðø;ø†@&*|¾ü/9vùró3ÏÌýóŸýú}AQô™g~¼~½íÌ™WÂÃGq LË­®Ž ’r<=]ÂÃÉXbd\\àPûÒzz¤gÏÖ9SWQÑåîî<þ”eËæÏg£Ñ,+Ô•ÙžžþÎN¡X¬°ì€@w¥R½@cÙ€þuìC8ÖU8q~~9ÐÒ|}=W®œ µ´I…Á`*(¨Þ³çZm-—N§>ûìÜœœ”¡õ ¦ÂšÿýïJ}}÷Œ‘O?=gþü)cü_ŠjCÃ`0½óΉÇKǾDmÖÕa±DO<ñ½R©ûñÇíð¶"#±}pSS¯J¥ÃÚ‰i4*Ø GFZù\bûXæL¥Ç“[ºßD"¥Étws¼nºˆ±w¼¼ÜÆ`:ÛRi®6[ÄሧÍÎÎŽJ%`&¹Q(øÑ^ØäÄ`0µ´ôUWsjj8µµÜ¶6žÑhvwwŽ‹ s¯ññV¿±Ùâ²²Îòò®²².&“çèh?eJˆˆÌÌŒòöö°âÚ –¯6&˜ñùòûÙÎÜBC}mÇv6l>øà—ÿýïÊÞ½Û,˜bíµÜƒÁ4}úûK–ÄÿóŸ«­½k"+¹uôhY{» >>ð‰'¦¯X‘u” ƒF£olì½|¹¹¸¸Éäõ÷kîÜtۑɸ¨(rt´?´ A Š¢‡•þ󟧼?ÿüqx:q/_~yñßÿþ5/ïéY³ècùºXRHŒÄFx)<ذ†Ažªñù²³gëÏž­--ítvvœ9“–•»paìD Ú1›Q¡Pä±Ý Þõ–!âèhO$z¸&ܵZC]÷êÕVθ`Á”-[fdfFÁ4{ÈØ#( ª k*+Yžž.+V$åä¤$'‡ÂÆÉŸ/;t¨ôàÁb¡P1þ”íÛgΜIêåˆË•äå•üôS©D¢Z¹2éÙgçÆÇŽÒ‚ Õ†€P¨øÓŸ~hiéýòËÜ… c­»+Šj‚ô÷«ŸzjM ç믟ÈÊŠ³Ê cˆtÀ#A;ñ€ätPê`í•BÆ2™z€Ò6`ÂÜwîÍ™JâF5gR¯7öõÉÀq<–!ÙÙ)Qò §LÆS©ËIøM1²˜Læövæ¬-/ïêïW;:Ú‡‡ÛJV$‹%*+ëºu«³¼¼³½]àä䘒:ujhJJ(4v ÷µ±Ùb™L ¾a1Á 8ÏlÖv6ýôlk¯åné;ØÒ·´ôéõF<Þ•N÷Ãbr³Ÿ‹•.4ž?ßxõj«NgHJ ÎÊŠ[¸06:Úolþ"ŽVkJUýýj©T Þ]eXŸ™X¬‹W]æà`J˼½=||<|}=}|<±&3"Ñ“HôôññxÀWO§3ž?ß—WrãF[x8iãÆ´ ¦=b2D"å©SU@Ksww^¼8>;;qöl:ÜMÌfôòå–C‡J.^ltwwY·.uÛ¶Ì¡Vi ¦¢¢ú={®•—wx?ù䌜œTëÞQBQm°ÔÔp¶oßïáá¼ÿöˆ²µ—ceQ AƒÁôúëGOž¬|óÍ¥/¼0ßZË€Œ% 1³±Ã‘ ( #ÆÆ`ÆÆxxÀÊ=È£¢ÓûûU÷*m ùý¾9“^^î–JÛ÷‘ˆÁt¾Umàîn)pàÐË2[T•Œƒ‰ÉäÕ×w××w×Õu75õj4zwwçØØ#(.. 4ÔwÊÿ,"‘²¼¼«¬¬³¢‚UWÇ5LT*!99499499$>>pÂè7Vaض³â$‰²1™Ì/¾˜wùrˉ/ÄÆX{9¿ØÔ²²âÞÒµ©õôHøáæÏ?WöõÉ23£rs3²²â`7̸C­Ö··óA´¸±XB¹\kggçââh0˜L&³çÔ©ÁYY±‹ÅOT bkËÚ{ï&~þùãqq¶õãÏ*47÷­XñùªUSÿýïõÖ^Ë}ÐFQUÅ‹•`f؃p5™Ì••¬ šŠŠê;:D¢çÜ¹Ñ ÆÎ›c•ãƒÁ„‰dýýj©T%•ªûûÕ‰ ûü®Vk°üƒ8œ+Æ0ÙŒHôôõõúöÉ‘ZgG‡àÈ‘²£GoÉdš9s¢srR–.e@«dđ˵ÕùùåUUlÇ¥KÙÙ‰³fÑáîwRÁãÉ~úéÖáÃ¥½½ý=6mÙ²„¡ž‡twK+;v¬œÃ§¤„mÙ2=;;ÑDY(ª Š£GËÞ|3?==â›o6{yÙĉŒÕE5APýúëßví:óØcé|°N„MBärMKKHŒd2y=‰ AË‚b:íg ×;ÈļY*mÀý†ebˆÅJËùûæLZ¼‘ÉøG‰ÂP(´\®hl\®øÎ;ÐÖæììè}O[æ}="ÀÇV_ßÝÐÐ]_ßÝÐУPhíììBBˆññqqqq±±Viok[]]7¨p !¦¦†1Aiiaqq0;þ¾ü^0“ òIh;6&“ùùçÞ¸Ñvòä‹6å‚:t¨äwN–”¼ãç7Yì›F£ù×_ëòòJnÞlóññذaÚÆi¶0Ÿy(–4&“Çf‹™L°Ñ{x¸øùy¹¹9iµzO®Ph ÷ŒŒˆĮ̀3¢lê›™Tp8â;”—w=ýôœInY‹•K—~à}ôèsãåë0 &§½o6£– ¨¢`³Å.4+ ‡\¸0váÂØG41 (*ÜÍ`ìïW[––ýQ #‚ NN>>àNsÀ'V]²­µkÕj ……5?ýtëÖ­ÎðpÒcM[¿> × ŽR©ûõ׺_~©½zµEÑÅ‹ãsrR23£àxñ¤B¡Ðž=[wâDeqq™Œ_¿>uãÆi¡¡¾Cz­ÖpölÝ‘#eÅÅmÞÞ«VM}ì±iS¦øÒš‡Õ‚Ñh~ûí㇕>ÿü¼7ß\j;ã¶ ª kvì8œ–þÝwO£aŸ/ÃZÙ˜L~kkŸNg‰‘`âl¨áéÈ#‚åL£Çb'ö£ÐÙÙÑÛÛ}€Ò†™Þw¯¡úŸPåñd˜À†InX¾%àää~}‚‚|<=¡ãs˜XÆË`÷ä8œktôÝx™ÄÄà±ûÙlqEEWU»¬¬«¥¥Ïd2“ɸ¤¤¤¤ÄÄ ÄÄ`<ÞmŒ—d] Sooÿƒmg3 ?©lgÃÆ`0=ù䞦¦¾S§^²‘@Z`S[°`Ê®]9Ö^ËXÀf‹óòJŽ/‰”K—2rrRæÌ‰/'›“´ÖV‹%ÒëöövAA>452’boH¥j6[TSÃU©t‚{ZZXFFäôépB±€eíÿ8E§S?ÿ|Sdädb0Lë×ÍåJ~ýuçøõË*•ºÎN¶¥olìQ«õXØÒÇÅ °pI$ªK—š.^lúí·fF¸pá”… cô턬|€Tfñ™ß©eö¾¾ž´1*O&ãmD*ÂÇK+“É4Ë–%lÞ<===ÂÚ‹‚Œ?Ôjý™3µ¿üR{íZ«ÙŒÎ™½|y¢Eq“íöv’c0˜®\i9q¢âüùF;;»%KâsrRfΤ ILAQ´¢‚•Ÿ_^PP­Õ.Œ]·.eîܼ‚¢Úƒ‹•O?ýCm-w÷î+V$Y{9¿ÃvD5A*+Ù[·îñõÅýøãSAA>Ö^ư,(b8ÝÆã]CCI ÕN§ÆÄøÃ©(ˆµÐëR©j€Ò†¹ßd2M__¿B¡Å? gÒòV œøûøxæç½Vk¸)ár%\®”Ë•p¹©TàííqGió ò ô &ù¸»Ã!¯¡Ñ߯nhènlìmlìilìmoç &<ÞuÊ”€;>6:Æ»4•JW]Í©¨èª®æÔÔp„B…]X˜obbpbbpbbP\Ü ŠC¾¶999øû{Ýk;£R 0!dØh4úÇûŸ/;uê% …`íå ‡—¾õÖñ’’w'vË ý>~¼âæÍ¶€ïÍ›§¯]›B¥ZÿëÁ0›Q.WòÌÁµÈÒ‚A©æÁÁDo@VUŹ~ÙÔÔc4ši4jZZXjjXZZ¸ÈÕä^X,ÑÎGª«Ù¯¿¾øÙgçÚÎlôØðöÛÇ+?}úe[K~D€• ÌÌ 8‚  ô+ÓhÔðp2‘è.“ie25‹%..n««ëîìéõ·ssttÐé ¤2{{; w_™åœåø’ʆŠÙŒÞ¼Ù–—Wröl]PϦMé7N#á ä!€š«ãÇ+®_g¦¹sc–/OX¸0ÖF2Þ cƒÁ`ºy³­°°¶¨¨¾¿_ž¾~}ÚÒ¥Œ¡Î£×Ôp ª jz{û‚6nœ¶jU’-ÒBQíinîÛ¾}ŸÙŒî۷ͦ܅›ÕápÄO<ñ½L¦Þ¿ÿ©¤¤`k/b»(Ú®.!˜8c2yÍͽ"‘±HŒ|G12f È™ÄLoØ;‰j@ÁÛ0wË‚7쮌DÂÿÑH;ðî×Î} Ûœýü~WØDˆà`h ƒ©¥¥¯©©·¡¡§©©§±±G.ׂ ‡èhjLŒt´_t´ß=årMm-¤DVW³± cZZxjjȵñ«¢F£çp$˜`†ýÆlgvvvd2ÚÎÆ¹\»víFÓÉ“/Ž`Ç00™Ì3gîJOؽ{£—1ª47÷îߣ  F£Ñ/^Ÿ››1cFt/Y•J×Ñ!x€F£†„F ¸«TºêjvYYWiiGe%[£ÑxgdDL›žž£;!ñ‚ÙŒîÛwý_ÿ*ŒüüóÇÃÃIÖ^Ñqà@ñ[oÿþû'—.eX{-#ƒÉdî1pvçµ@ çr%==ý‰R¡Ðj4†ÐÎ!ܽ½=íµZƒTªR*uîîÎQQÔ„„ÀŒŒ¨ÐP¢‡——»µš˜mKtèPé‘#· í¢Eq¹¹™™Qð2`H*,¬9¾Q¡Ð¦¤„®[—ºt)ÃÇÇš·1Æ`0ݸÑVXX´´„„ ììÄ+’½‡ô½¼n§M:8Ø©ÕÎ )ï(mÒž)öÇq8×€ïÀ@ï€ï€oLo#“ñðNrà*Ü@lãp$(zû¶hlàþÜÍmÔïL&sw÷íɃººîª*¶X¬ñ•`—ÁäJPåp$–Y£÷ÚÎÜÝïc;óó#8;ÑÞqCk+oÍšÿ¦¤„îÙ³uì÷f••ìììÿœ:õRZZø¿ôh •ª.Íϯ`2yqq›7ÏX±" ‡ÉQ£È,h8œkt´° !Íßßë¾ÿÉ%Ue%«²’U^ÞUSÃÕhôx¼[jjhjjxZZXbb°GìB G¡¥¥oÇŽÃíí‚·ÞZ¶}ûÌñxx÷`ärmvö ^©›b“É,)†§“999øøxüQQÙ£HeÃ;UÅlMM½*•ÎÉÉ!$Ä—BÁétF6[,*¼½=23£fΤÍ5A¥RwêTÕ7zŒ ÜÜŒµk“Çà®b]P-/ï*,¬={¶®¯¯?*в~}jvvâ IqF£/-í¼zµ¥¸¸½©©×ÅÅ÷%¾L IDATiölú¢Eq Æ)ŇÅ]¾ÜòÛoM7n´æ””P ¥……ïdf(ªÝ…ÉämݺÏ`0îÛ·=.ÎÖ‡/lYTCäìÙº—^:°ÿvª q@b$6wÖØØ£Vë‘;5Å4ˆmÑÑ~ðÌ2ñ„ðÖ/—ßI ¼ápn..ÎÎN&“I¡ÐJ$j¥R'‘(»º„˜¹ {ð€Ú¶  Ÿ ›3Här-‹u·²©©([ a\…Œ 1È­5™Ìí킆†î††žúú¹\ãììíë?eŠh(Q&ÓZ¦†‚QKÛYp°&˜AÛÙ„¤ºš³aÃ× Æ~ùeî#?ûì.W|æÌ«cù¢#Š¢7n´å啜?ßàê꜓“²n] ´¦÷Zкº„ƒÉÁÁ>"‚L§SÁeê¾4K SSSoU«ªŠSYÉb±D‚ù¤¥…§¤„N›N£Qá5dò,küëô鑟~ºÑßâä•™Íèöíû*+YgÏî|¨wD¯7Êd¹\Ó߯‘Ëo‹dýý*ËÞ²;ŸTk4zË?ëììèååæåå cà.hc^^–ï¸Ûþ€5ˆ¦ÀrÚÚø(Šâñ®nn.R©J¯7úû{Í3kmΜhØ»† H]7/¯äĉJ''‡+·oŸE§S­½(ÈÈSVÖYXX[TTßÓ# '­^=uùòDøo=I@Q´¹¹ïÊ•–«W[ËÊ:u:cp0qölúüù1³fÑ?¡ÓKK;~û­ùÒ¥¦ÎN!à>{6mÞ¼) L™02ÕnSTTÿòˇ‚þ÷¿'ÇÅ¿®‹j‚TWs¶nÝãîîrðàŸ`§7d´±Ìj««ëîè˜Lf $@l ö™xc‰Ƚ_ÆTyoo¿Á`Âïääàêêäääàà`o6£Z­A£Ñ›Í(‚ ŽŽö$>8Ø'(È' ÀÛÏÏËÏèM¥¼½ÇÁœÊh Õ˜L^ss_kk_SS_{;¿··AÁ=2’Eo£¢(AA>C*pU*u,§ñ^Ûè´ÏÀ@oE%Ÿ/g±D =R©j@KeRRÈØôÃA¬Îùó O=µÿ¹çæ½õÖ²Ñx~“ɬRé,+ÿïÿ NŸ®.)ywܶ˜Læ³g뎯¸r¥wÛ¸qÚ† i‘‘pPlø(Úææ^`A›4ðƒÆÒ‚ügƒ·É*•ºÆÆžšNe%«²’Ý××ïèhí7ujHRRHRRpdä¨;†!ÈøÂ`0}ñÅ…ÿüç¬Y´O?ÝH¥¬½¢Èåw50ì­…·Ìò­Z©Ô øã8œ+ï†Ç»yy¹áñn‚å[wËñx7_üG掓ɫ¬dݸÑÖÙ)Ðj‚88Øùúâbc,˜2gNôné{(ee{÷^/*ª÷ññÈÉIݲe,ÙttNª*,¬e2y !''%''ji“…B{åJËõëÌë×™l¶ØÉÉ!==bÖ,ÚÌ™´¸¸ÀÁïŸY,Ñm7n´·‰DJÌLÚœ9ô¹sc(ü¨þ¬ËdÕ í‹/æ]¹Òòþûkm|LI"QYº Þyç$‚ ï¿¿û çjƒ;•J÷üó¯\iùä“ ëÖ¥Z{9É‹\®iiésgL&¯±±G"Q!B¡àÁø3v¸ 5 Œ o|¾¼··ßh¼+¼ÙÛÛÙÛÛ¡(b2™Ágœœì½¼øeÙ²„7ÞXêêê8fýd“™L]RÒqî\Cyy—+Ó‡ö~~„ääÐéÓ#étjBBðdó²s8âƒK޽%—k—-clÛ6+99ÄÚ‹‚<KtâDÐÒÈd\vvRvvBJJ¼œØ¨ÕúÊJVYYç­[••lFO¥fϦϙ=s&mðG4==Òââöââö7Úzz¤..Žiiá³fÑfÍ¢ÇÆL’ÿE“BTÓj ..Ž÷f¾±ÙâmÛöJ$ªï¿2%%Ì*k<‡•üùÏÇð€O>Ùðøãéc¶žÁc2™ÿþ÷Sû÷ßxþùyo½µlÀ·–NgìïWQ(67™ððù2¬•Éä·¶öétF¬‰Á=ðdy0÷ÞúúúE"¥H¤ ‰ ÓØàìì€Ç»{{»“H¸À@o??BD%))8$Äw¼Ç‘ŽÁm =íí|G,)ï¸íEÄÎ!‘pTªWHˆOp°/h¹#“ñT*~¤ÚÎ0ï¸64ôh4zWÉ`1±±“<ás‚±ÿwß=ùá‡9O<1ûdYYçG=qâÅGyfO6uê?ìííÌf„JÅgdDÕ——ÿ}\ˆèƒ©¨¨>/¯äæÍ6¯-[f¬Y“ìç7qJwFѰ aˆÅʪ*v]ÝmÏ—ÛÙÙEEQÀ u„@ ÃF§3~òIÑ·ß^ž;7úßÿ^?øC F/—k -0YzÈ,fà“r¹Æ2ûA''‡ß»ÇîzÈÀ/à!ïX–“=óÌ……56¤}ôÑ:ggGO¶dÉgQQ”ÇŸ™$;g›¢£CpæLݵk­µµÝ*•ÖÎÎEQû€ïÔÔ°èèÉ•¡×Ïœ©Û·ïZe%;!!èÉ'3W­š:ÙôÅqŸ/;~¼"?¿‚É䉞«VMÍÎNHNRt d|!+ËË»JK;ÊË»êë»F3…‚OK OK Ë̤ Þ•Ø××óf{qq{II;›-vt´g0‚€¹---|ŽtL QíwNúùLÈ^»Öúì³""H{ölŠŽL¦Ž‹ûëK:::Ô×ÿs¤Î×Fƒ={®½÷Þé¥KŸþ8ö†¢èsÏ4L{÷nµîò ,ÞÉäYº7€œÑhÔ„„`2y´*‘ ‰Š¥ð&+ûúdl¶ˆÃK¥‰D¥Phôz#H’İ··sqqòôtÁá\‰DO??B` OX),Ì7 À{H¶«c2™»»¥XNã}mg8œkX‰BÁ{{»»º:™Í(ð§‚ ÎÎŽ¡¡¾ $’F£†„ét¿Ñ¸SÕéŒ--}MM=½MM½MM½r¹ÆÉÉ!*ŠããG§Sm0+ 2$>ý´è³ÏÎÿ÷¿¹«VMEäÒ¥æíÛ÷éõÆ“'_LO~d7‹%š>ý}ìC''GƒÁ°eˌի§Ú¬4Ëb‰*ÍÏ/“JÕ‹Ççæf̘Gjî‹¥ øÏØl1¸”‘H¸èh? ý†!—kêë{{{êê¸íí“ÉL ¸'$%&%$'&A±Œ¥¥¯¾ú“L¦yá…y FL¦Q(4˜f¦Phù|™Z­×j@!S(´D2;;;ˬEÁw#\ÿ(tÑÝ}8nZ¹\ÿ®Á`²··c0‚öìyò™gˆÅʳg_õò²Ýƒ I›-¾~yíZKqq‡D¢rqqtttT«u“0 ¢£CðÃ7ú©ÔÁÁ~åʤ§žšE£Á Aë#( ª k*+Y.‹Å­[—:}z$ÔÒ&$f3ÚÐÐ]VÖš†ù|¹½½]\\àÌ™´´´°ÁŸjšLf&“_UŪ¨`ݺÕÉb‰œ“’‚32"§M OI µÙ›»±aâ‹j55œåËÿƒ¢èÁƒOÏ›>ùÕW—>üðìúõi»v­GY.Û¶í»x±Ñh¨«9:Ú/\gûºÔåË-Ï>û#FÙ·o;è9üøã_?ÿüŠ¢ÇŽ=—™I³ö!ß¡Ph»º„­­·[Ùš›{E"%‚ ‚;ÖÊF£Qââ‡w_@,Ñj ,–¸©©›Ã‘twK»»%|¾B.W+:FïL‰½½››àA"yúøxû†…ùz{»{y¹ƒDDÏ1ÞÀEÌ@èŸ/“HTX>L` 7–Ó8HÛYoo{;¿­ÏdòÛÛùL&_,V"âîîAŽŒ$ÓhÔˆrD),Œ4bޏ¹¹¯±±hlŽØlFñx7:J§S££ýh4jt´ß$™ÃH¼÷Þé}û®ïÙ³U¡ÐîØqØd2;:Ú/X»oß¶a?gKKß¼yø¤½½=Š¢îîÎë×§¾ôÒÛQd5ý‰•yy%uuÜÐPßM›ÒsrR'vôÿP‰”Íͽ`ÀÒ‚æèhþ¨4ŒîniccOCÃm!Ë• ‚Ç»ÅÅÄÇ&&'$MæÒ2xŒF3Äd2µ¥0vç­V©Ôö÷«-?o⢧§‹§§+ï†Ã¹âñ.uu=ööv99©^^n8œïz§´Ì‡»Z²ƒ‹ßyç8rttpss2M;bcÆàÕ!ƒÄd2××wƒT´ÒÒµZïííáëëi0˜x<™Vk˜$i …öèѲ={®uwKf̈ÊÍÍXº”õ›±G$Rž:U´4wwçŋ㳳gϦ£“pÈ 1LMM½UUìòò®[·:ûúúì§LñOK Ÿ6-<--|BšP¨¨®fWV²«ªXµµ\¥Rçååžœ2ujhzzÄÔ©!Њ1ÁE5ƒÁ4oÞÇ]]"5»¸8ýúëÎà`Ÿ;œ=[gû%j÷òË/µÏ>ûã€Y~Aìííþ÷¿-Ë–%XeUC¢¹¹wóæ=ö©T*Ù€ÆÖÞÎïééGQÔÎÎÎßß+<œ~EDÃÃI>#›d4š{z¤–åp--}z½xé°~Jìsoø6Äv0™Ì/¼WUÅêé‘bß8vvvÅÅï„„‡÷œµµÜ%KvÿÑïNròä‹£z__ßøÐ‡56öüøãÍ‚‚jƒÁ¼vmrnnƒ4z«<À‚F&ãèt?à?Bڣ؅5}}}7Èr¬«ëîêãEdäÝDG:jË d @QT kµFxpo™NgÔj ƒ/$óòr'Ü\]\\œ°N2ðIÁÝËË­©©÷í·O¨Õú>Z·xqëÿX g:m>_VVÖÙºíììÂÂ|ÃÃIžž®¾§§Œ©áñ®tº–‹ÃøÿöÎ;>ªb{às÷nï›MÝô’HGAiÒTžŠ€ñ=+"ú;¨ " Š"ò{vŸŠøA¥**ˆ"„„ôB’­I¶÷½¿?î[7›Í’²içûÉ'Ÿ»³sçÎÌÞ©gÎ9ãû€ ¤²R³~ý‘­[ÿt¹ÜwÜ1øñÇo0ÀÏTíàÁâÙ³?3gÔêÕy}ÛHæ5átºßygïÂ…“Úô k2Ùþ¹`Ïžs¿ÿ~‰¢¨ñã³î¾{ø¤IÙ<˜Vê PUR¢Â3ê“'+‹ŠêN7ŸÏ6ìš`55º3gªÏœ©ÎϯÆÒ¸èhɰaIC‡&š8p`¼3ÁЗ…j55º±cW;ÿ;¬„ýÁîܹ055²3Öžzjó®]ùÞ&¼™LrÆŒ¡ÿ÷÷vc®®•S§*óò>r:ÝÞ›8<ëèÑ—ÁäЫq:ݼ­Œ÷—U*Bˆ¶“†xçæÆÊd‚îÎ,ô ´Z“Zm¨¯oV©ôJ¥¾¾^¯Vëkk•Jƒ·¼É$I’ðxÛíñx<>Jáø|66$— 䉉á11’ØXYd¤X*å…‡‹zà^–u]U:QVWëjjtµµXö¯PH± ­zÖYËWÜz{©Äghñ~hff x©ì.\.Ï3ÏlÙ¹ótK|>çܹåí“p>|éÿøÄ'Á D"î¾}Ï%$t•T•¢¨U«~üè£ ºÿþÑo¼1Ã'”lÚtlÿþB’dLŸ>´_©¦Ñ^c[ª aG/¥‚†ñx¨ÒR-B+)Qâ¹PD„hðଋ–‘'ëÝ&Áà#3›mFãÿÄc&“Íd²6|¡×[pdï ‹EŠD>¦}þs¥R>ŽƒCB#]Ø¿¿pÑ¢o8–HÄ))Qa‹‹ ÁçsX' A|X»vß¿þµßår·üŠÁ ¦LÉýàƒ9à’ a2Ùóó«Oœ¨À26›Í%ÎÍKMàñ؇»¬LuæLµNg¢í-c[δZS†Ù=*dâ+£Ñ¶{wþgŸý^Zª80~îÜ1Ó§ó>ç——÷ѱcå¡Ûn»î£î[V!•Ê0wî—gÎT½ÿþì™3‡ûc±8~üñÜž=ç¾äñPãÇgÝ~û [nÉíŸçÆúƒµ àòÙ³5ùùÕgÏÖb£ŽééQƒÅ?xpBNŽ¢M+ .—§´T…­¬Ö?_§×[x<öu×Å –ˆiஸôe¡Ú¬YŸü÷¿e>Ó’düóŸ^zéoÝ•«rèPñ½÷þ!ï_زe~/R¼S«·ÞúŽVkòqÇb‘3f _·îÝ•1è °ÅH¼§\PP[XX‡•M½ýãåŽ+›®Zµ'33zÆŒapª è™X­&“ì–Õ‘Á`­ªÒúx;S*õf¶%±Y¡èhI¼9®†=ÞéÆJ*¸6BØ~#ÞXÇŠw(ôjj25””¨.]j¸tIY\ÜÐÜl!"!!쪀-:--*55²Í3˜×Ê–-Ç'MÊÁÎ\ŒÓé~â‰M?ýTàñøz+D1Ä[oåÍžÝ3éû÷>ðÀçÞ!H’ܶíŸ×_ŸÒÎì¶…Édä‘õÿýon¶|>ûüù•ø|ec£yË–ãß~{²´T5fLÆÝw¿í¶þ޵‡Ú¾ýÔØ±™~žL­6^ºÔP]}Eš^S£óQAËȈ‚´Ž« al6gi©êÒ%å¥KJ¼V×hŒ¡ÈHQNNlNNlnn\nnlRR8ÌO GátºM­˜R´ÚíN›ÍémtÑfsÙlŽ&¹\‡Ãô6¨ˆm-z[YärY\._tK©ƒ¤©É¼páæC‡Š}”¹ ŠÛ¹óÉÎ5¬Ý&E]ýʺº&¿ß1xpü{ïÍî½gÇû9‹»A:uªòÔ©*£Ñ&— ‡O1"955Â墪ª®8z÷>£†µRüúžP«7Ý´ê™g¦Ì›7®Í•×ûïÿZ[Û¸xñÔyGö¶ )š3gÔƒŽ–Ë…/ÖOš´Ça2C‡&nÜøh0Æëú0'OV>ôЃÍãñŒŸµiÓ£Þß:î½{ÏoÛvêÈ‘R§ÓuóÍn¿}ÐäÉ9]jèR<ªªJKû2/*ª¿|¹ !””Ž} œ›Û¶#F³Ù^TTáB}aaÝ… —‹‹ìv—HÄÍÎVàiyNNlVVLˆÇ²¾GŸªýôSÁ¼y_ú-A|ßw y¦:—Ë3pà+ÍÍ:D*åŸ?¿²'ìÓƒÅâ¸óÎ÷JJ”~ÏX±gÏÓC†$„>c2T*=í•­ à26’æm1²Ý¶ÔÇŽ}³¬L»bÅ]7Þ˜ÖEù€v`2Ù7l8òÉ'·m{"++¦‹žâmQ¥Ò«T,1R*õôXÌKJ oÓÛEQ Û“Ôh z­Öˆÿ××ëµZ#­2Îf“aa‘ˆÇ㱘L’Á`²ZF£Ýb±ët¦k¼EDˆ»eÓY¥ÒWTh++5š«ÿµ‡‹vÒ†+-1Qž˜ž ‹;a}‹·þñF|qqCi© ë*ÒÔÔÈ´´¨ôô¨´´ˆ´´¨èè™q6lyS“ù±Çn~ì±›;%ç}€;Ï<õÔfŠB´ðØ¥¤Dþþû‹ípéñý÷g{ì?ÞÇ¿‚øøãûï¼sp‡rÜ: ͳf}ŠýráƒX»ö …tÓ¦cûö] 9³f¼çžééQ]”‡keÿþÂ×_ÿ¾´Týõ×óÇÏjw:v» ËÏ‚QA‹•uÊÊÙét—–ªJJ”ÅŠإbMë¿&%…“›‡ei ‡ ¡Änw™Ív£Ñæ­=f2ÙM¦kÖ ¹´)E€#q…BŽHÄ“HxB!¾æ :ŽPÈí-®(‚§¨¨á–[ֶܵ IÆOLxñÅžÒ>~¼|ÆŒZ†“$)“ñ×®ýûäÉ9¡ÌÐu¸Ýž’åñã§OW8Qqùr‹EfeÅ š8dHbff4EauðËô]¼“€lØ(ÎéÓÕ÷ßÿ9I±±²Õ«ï<Óxä‘/ú©€Ïg?ûì-Áá:‘‹ë¿øâ;O3ÄÌ™ÃÍ¿üržÎ1™dzzÔ·ß>.—‡HÚ×£ ( û3BˆÀgàH’QP°B&8îC‡Šøáì/¿¶áÓòòFL:0, Œ!õ>ŒF[QQýÅ‹ /Ö]¼X_\Ü€uFFtnnlv¶"''6776°Ò!mÒÛb¸+}S¨f±8nºi•FcliÐ!„Áå2÷î}6##:Ô9ë –.ݾiÓ1<Ò°ÙäìÙ7®Zåkâ¦gBQÔ‚›vî<ÓZ&“<8a÷î…}Æ(×s IDAT/+´‰·‘4,l«©i¤(J$â&'Gà3h™™ÑYY1Õ,œNwjê .—›Á`x<ž ²—/ŸÇnÇ`°þûß¿úé!›ÍávS7>:q…©×[h+ìJ Ä[É!&“+£fØáv~ÖYÇ¢m6§^oÁzo*•ËðèkµÚHϯÄbžL&JyB!!‚$ „§Óe4Úl6—ÑhõŽŒzŒàÍã¡êêš*+5Úª*Me¥¶ºZW]­ÅâI™L”$Ç5œ”Ž/bb¤Ì­PH¤(RÚ+[FFTvvlÊFv»+%e1EQ$Iðùœ§ŸžòÐC£{øéøÐ Tê׮ݷuëqƒámWCÄ×_·ÇÂwß|æ™-ô œÁ žyfÊsÏÝÚ 9öGaaݬYŸêõï"0DLŒ´®®iذÄ{ïyçCz޳®?ÿ¬X¾|÷¹s5A0IJeÓæÎä½*•+˜ú¨ q¹,ºit® BÈl¶ÖáöèmË{D£M¹fdDsè8´ê˜–þˆUÊôz«ÍvåÛþ¦=2œN÷”)©ý=i÷Ùnž}vëöí§¼G:’$)Êóàƒc/¾  õU<ª¬L•Ÿ_sölÍéÓUÅÅ .—G,æ”0thâ! C†$z<,`óÞI 9‹Ãã¡ð¾ÚÈ‘)o¼‘—™éÿsøðåõõÍ!ƒ ¼òÊwß=<”;rMM毿>¾~ýµÚàÓâ˜L2.N¶mÛ Eÿ2Lg0Ø,Øxà@‘÷ž6I2žyfŠ^oýᇳJ¥>33úÎ;‡L›6$%%¢³ \n·§¦FWTÔ€Ñ.^¬¯­m¤(J"áçæ*²³csrbsrÑÅÛz½ËÏðÿââ•Ê@’Œääp,„ÃGÜB¦~Úoé›Bµ•+¿ÿì³ß}¬ bH’AQ6ù SCŸ·Žsòdå´iïÑ¿ÿþÉáÓ»1?Áãryöì9»yóñ£G˘L†Ëåiùúúøãû{©!t ƒŸþÆX……uf„mçï^]wÝ_|‡7L˜ð6ý‘Éd¸ÝÔŒC_~ùNpUt J¥þÃlÚtÔã¡ð.“I®\9ýn æö`ÔÎ$>Þ>Ƴ¨(qçî&·›¦&³ZmÄÙV« XòwõZo³9q4‹”Ë…‘‘"©”/pÅb^ÁáryÌf»FcÄ[f­ ÞhIÁ8©”)î¢Å°·D“¾À~ÚÐ_ú"!!¬Ý™ÁnáðV>VÄ)+Sa#º´{6¬‹“‘í÷AEEõ'®¡?2™ >Ÿ³páÄG×÷ŽÕ·ƒÚÚÆýkÿ–-2™„Óù¿™3“É3&cóæùךà¦MÇ^ziÞa2wÞ9äý÷gwÑÛxà@Ѽy_:¿ö6lxdÊ”trÿøñò•+8{¶†$ ¼Ha±ÈY³nX½:¯edZ ¯–½Ï $$„ÅÄHÓÓ£:] !dµ:Ο¿ÜR„†åv´CÄŒŒèN|(ôI\.v0f±ØM&;Ö!3¬øúêG›ÙlóúÖf6ûQCI$|€-rñ‰„'pV‰xB!G(äðùW´Ç„B®HÔµÇBÆüúæ›?µ¶WÆ`R©àСB³_iµ:®»î<ùÁºîº¸µkÿ‘“‚ =ì!µ  öäÉÊ'*±)H±˜7hPüõ×'?|xI2Š‹-ú¶´TEßHˆ¢PVVÌÌ™ÃFŒHöÞF0mYYKèWÁ <”›»jÕŒ#BºÍ¸fÍÞ>øµå1/’$ÃÃÛ·/è?¢£K—”<ðY}½Þg~Ë`IIr¹àŽ;ßzëuÝâܸ&œNwy¹º´TUR¢*-U•–ªÊËÕx”OL”çä\QDËɉ ük65™½EhÞîŠ33£ÓÓ£23crr(À³fˆéƒBµ‚‚Ú©S×ùè¨aYƒAÜzëuyy#ÆŽÍì½SLŠ¢†_ÑÐÐŒЉ‘ž:õj¯ÓëR«ßŸÿÕWGÊË5L&é=T’ÉøÇŽ½ÒÏM'Ë婬Ô5_ùÃv–ØlfFFÔ€ŠÌÌèìlEU•véÒ>]:‹E1oÞ¸§žšÜ\Èý„úúæuëömÝz‚ ïžÍ&çÏ¿ÙÇ­é_fÝ£vb ÖfS*›µZ“R©×jM*•A£1h4F,DÇœ¨(qD„(<\$sù|ŸÏ¦(Êí¦(Êc·»µZ£R©Ç‚7<·Æ°ÙL™Œï£âÖu‚7,úò³UWëJKUV«!Äá0££%Þb6,k÷ϧR鱘ïû_ºÔ VBb17))"1Q.#LÄáÃ/^«ÆóçŸ~ýõï7“I–ðí·Ot‘¡.Y²¢_»L&ãÑGÇ¿üò]ñèkåâÅúeËvý÷¿¥,é³[tà É;w>I·Z­®®Éåòø¨ ÅÆÊΫùàƒßæÎûÏNèxÆ\.ÏåËø¡EE %%ʲ²+Kýøø°ŒŒ¨Ì̘ŒŒè¬¬èôô(ïs<ÐOp»=Z­Ñfsaõt¬7†}a¯c-]‘µ¦7F„XÌÃÚ`XE +á¹¥>¨Žu#:iâÄ5jµÅbºÝn¿£ ‹EÞpCÊÖ­‡ÀxÀ®]g,Ø„³Ád2x<öë¯Ï˜9s8x©ìçh4ƳgkΜ©Îϯ9{¶Ú`°1™ l(r×®|lSÝ<í§(ŠÃafeÅ`…‚ –,Ùî“$IÇ3uêÀe˦…Frc·»† yµ¹Ù7ÏWóɸß}÷Ïþ EÞ³çÜSOmníăAœ=»Ôz&V«KÎð1ÐK—”55:—ËÃ`qqaéé‘ÑééQééÑééQ­i{¤†Z|œ¼´T%— «ÃágîÅd2$þ /L5ë†Þâè¥TVjÞ}wß®]ù$ÉhyÔšÁ nº)}âÄìË—ëêšêë›ëë›5#þ–ÃaÆÆÊbce …4..,.N+U(d±±²Þ{¦8XTfÐjQ©Ôët&¥R¯Ñ˜4ƒJe Ý‚†‡ ££%áá"¹\(²¹\6—Ër¹<‡Ënw67[±zœ^oU© ´¨!tuó.à­#öÜWMM#6‰:âÿøÅàp˜Øn$Ve‹¿òØ^¼_(Šº|¹©¼\0eeêÂÂ:£Ñ†b0ˆÔÔHú¡Þ"">>lÉ’Ûo¿}P¯;ŸÔœ:U¹bÅ÷§OWáñxX,òþûoZ¹rú5%òᇿ½ýöÏE…‡ ÷í{>°áâöáñP¯¾ºkýú?¼=·µD*åŸ;·¢{W›UUÚ7ÞØóãL¦›!±˜'pðQ9‘ˆ›š™š™–™’‘–™’‰{?·Û³}ûé·ßþI©ÔSš3gÔ[oùÑo ŒZm,/WWT¨++µååê²2uMç*&Fš‘••“‘••¥HO‚ƒ8@_Âd²[,«Õ¡×[¬V§Åâ0™l&“ÍbqX­N½Þj±Ø-‡ÅâÐë­V«ãj;¾n™ Pȹª(vEi ‡øÓ!ãb'dX‡,ôeÚMuµî?J¾tèÐ%“ÉÆf3].·)¶§ŸžÜuöifÏþô÷ß/1„Ëå™:uàÊ•Ócbú—)< M(Š*+ScéÚŸVÕûÆ`EedDOš”­R .—–ª Âíö¿‡À`0æÍ÷ôÓ“»ÚŒö7ßœxöÙ­v§I’àpØ_ýèõ×§tiNº—˳|ùîõëÿ@µV$ÉXµjæý÷ßÚ¬¾PU_ß\Y©­¬ÔTVjJJTeejlÈ‘Éd$&†gfF§¥]‘¢¥¥E¶v4Íh´UUáD´UUÚòrME…±U(¤ééQWÑ¢32¢Û±Lºš¾&TûÏ޾øâw!.—e³9ÂfÎ>}ú°´´>åXˆ¶eôÛo‹ ˆéîìt½Þ²cÇé7p¹L›ÍÅb‘GŽ,‰ëî¬@ï@£1>úè†'*[ëÒ ‚ ”˜¾|ù]“&e‡8{@ ¬Lý¯ý²kW¾všaaìK¡ÅÆJãâ°M¡vÅæ{ŸÄd²+•z­Ö¨VÔj£FcT©ô:©¡A¯Ó™´Z­iÄf3±yɈ‘\. Éd|.—Éá°¢¬V§ÇCVì Ÿ²W*õÞ'[ý Þ¢¢$Øø¤DÂŽ_Óq%Š¢ôUUÚš]U•¶ªJwùrcmm#-[‹¹qqWl r|vM{‘sæüû÷ß/¹ÝƒÀþ$Z›í^µr£xå•;ÇŒÉþ}Š¢~øáìªU?Ö×7¹Ý>ŸsîÜòkÚIY»vßÚµ{îÞ½Ït…_O§Ó½hÑ·Û¶ðø±òîˆ s§LÉíô<ƒZm\³æç­[ÿ Ü%"„–/¿+;;6--Ò¯­f—˳uëŸk×îÕhŒue“eäÈ´;ž¦Ùl¯¨ÐTThÊËÕååj|%Í\.+%%ÿ¥¦F¦¤D¦§GÂ*èáØlN‹Åa4ÚÌf»Åb·ZÍÍ,3›mFãñ˜Á`5›íV«Ãlv WÄcøÍo‰PÈáóÙ<["áóùl…M&òxl%‘ð°v¸@À¡ÅfØúbß8¤ Ýî:y²òÈ‘’ÇK .cE›Í…E’Äöí ºt—_£1ºÌí¦ââdo¾™×qÏÄ@ŸgÿþÂø"ÀÁ#‹t¹<3f [¾ü®+vïØq&ÀD…$2ñâ©÷Þ;²ë”#'Mz§¨¨>ðî4ƒAp8̯¾š7ztze£ÑhŒóæ}yêTµ'à— ˆ#’víz2dBJ¥¾¢BSU¥­¨ÐTV^¹À*é'))<552## ÛfoMÌd²ã± _à%0—ËJNŽ ççééQééQ`¼­Wp BµsçÎuiV:Nc£õ‘GvX­N¡sóÍ)&¤df†_ÓÑãAƒu0ÍÍÍÕÕÕL$~x;A_|1#ÏJLL”J;tªººº¹¹¹Íhåå{÷–þö[™Õê¼é¦Ä—_¾¹#í :þ†ýŠ ßüNá¾û¾Õj-mÇChÔ¨„yóFÄÄ€èT*Ó×_Ÿûí·2·»íET”8?yrÕoñx(­Ö„ÍBb›ZmÐéL:I¥2ètæÆF­1C„\.Ë…r¹02R,— årL&àñ˜,Óã¡l6§ÕêĶ%½oÍÃÿö(iÁ›Š-x‹‰‘´¹eïtºM´!PÚŒ$6‚‡²ؖV@ããÃZ®ð33—þ È`Ĉ¸š’zËåÙ¿¿ì«¯Îèõ¶'žuûí™Áßûå—§·m»°bŤaÃ:ßDÙìXµêP~~=A ƒAQ”_«\‚ n¾9eÑ¢1žÀ8î]».nÙR@+•æ½÷îHO—ãk©Tš˜˜ˆ¯±8mݺ}*•¢þ²b‹Œ=»_›Íöòr5¶ƒÛNU•‹Æy[,æÑ¡¯ #„rU³Ùyþ¼òÌ™úÓ§/××Baaü?ž&w•Ï®]¿øâT^ÞuÿøÇ@6»×XúêøÐnÞ}wß{ïýê×;£ Çc*•Æ`’ÍÍz≑IIo Òh´oÝZ`0Øôz{S“Õ`°«õ/“(ƒÀÊš$ÉX²dü7&tz6º‘Êʦ×^ûU­6·!ƒØ´é™,¤Ç¡úO‹V©ôUU:¬:F‹¾°Î:}%'‡ÓÿSRÂýšuij2×Ö6â99-Ãò3‹ŒÃ'Ûp ÉÉ …Œ¦ôR®ÁžRSS“X,æpz®1Í›ÏÝxcâÍ7§G’×öFÚívƒÁÐv¼¶p8MMM]îBsÊ” ‚@Lf—[ÄÒh411U†3™L‹E,ös×›ÌÌÈÌÌÈÇùßÿVýøcñŋڣ;øè΢³Þ _ä›ßq¬V§Nçg™ ‡t»)¼‡Î㱤R)ïÜ9ULŒ< Çí¦Š‹µl6/­©iöx(‹áñ ZYÊÎäv{À i×Á`‘‘¢ÈHQv¶¢µ8MMf­Ö¤Ó™Ôj£VkÔéLQ£1ž;W‹mNšÍv:2ŸÏÆNÝärazzTd¤X.`Ç0L&étz,»Éd§oÕÕ:½ÞÚÐÐì­„àM%‰Š’ ïU‹ÅQ[Ûˆÿ°NÛùó—ú©‘ö<'•òiÓ‘ôŸÉä_/Á§¢X,¦Óéòx(’$eaaü’]R’¼mZuL&ºãŽì[nÉܵ«ðÀòiÓ²ƒ_é9ž n¼á†Ä®ÈØñãYYÆŲX$‡Ãär™L&C(ä0„PÈf2I.—Éá0ÙlŸÏî.g3çÏ«M&Ç€‘eeZ£ÑŽb³I‡ÂâaÕ× ˆB <±w»=[¶üùÿ÷‹R©÷§a´ZÓk¯íÂVkkñ/— SS#srbï¸cPJJdjjDRR8›Ýlç]Öi¶ÙœÍÍV»Ýi³9}\‹Ñ.Ǽ½‹á˜8šßdY,2,LÀå²8–·±ˆ¹Tʣù\—Ë7c@ÈVU‘H˜£G'ŒÒéÌùù ùùu›7Ÿ]°àÆ.ÚµX\Ÿ>36¶ýæ¸CO§ì í&?¿Æéôíxy<E!‡Ã…O#q8¤B!‰•;æG%€ 6›t»=xêÂç³ãâÄ11âS§ê )ŸßÉ=°LÆ|üñQ>e4Ú »^o½zaÇUÆÆJRSå›îÂd²8P1p`ŒÓé;Q´Z6› ÕÕúPšxé“-º±Ñ\[ÛXS£ÃËLúOZØlfRRxJJĸq™>8_ÇÄH|úy“É^TT_[ÛXSs%…ššÆË—ñ*˜ ˆØXirrDVVÌÔ©SR"SRÂããå° ×—¸MµC‡eggGFöP;ŠE9îv»]Q«Õ/^?~|³ÑYé´IU•!””ÞÕê”ß½°°!”““sMw™LöžãÑ!d¿,Зhß›ßNŸ®¾ãŽÿ#IÇr8Üø`šTÊ0 &##«¢§§GuÄ=´‰Ëå¹x±îĉÊsçjŽ-Ç^‚X,ÒǓЩSËŠ~qÒ­÷b³9µZ“Jehl¤UÜLXö†¥qfo¹©XÌ‹ˆ…… ÂÂr¹_‹D\‡Éf³\.—Åâ0›*•A¥ÒãÝXµÚÐР÷>EÛ¦àM¡Òºf³¶]¹5ÕÖ665yÆ“‘š~ýõ "‘çî»'¦§GŸçÖhj2³XÌàçcµ>’ÑþŒR©/,¬/,¬+,¬;w®–öµÀd’v»“¢“ÉX¸pÒ¢E·!„ =ª¸ØºnÝ/ÕÕ:‚@ôðÒÓ£ ˆII‰Äg]SS#À„#,Ã6M&›ÑhÇ aØ…˜Íæ4l´_1ƒÁjµ:­Ö+­Vgk½uŰ˜XÌãñX<[,æaãŠØµ—Ëúë·\>Ÿ/>,!!,.îþ âãÃú•cøþIßù ‚èWïkÄiÝNÏ‘¨@çÒ¥†ˆQfftVV ö†š‘%“ º;_@ÿ‚Éd Oï§WThNŸ®:}ºê·ßÎ74˜<Š$n·§¾¾ „j=.—'‹‹ dàë%47[i5üQ­6”–ªôz«^oQ«Þ‡·°À k$dfFGE‰‹Å`2™E¹\‡Â.âôzkuµN­6Ô×7{ e±àÍÇ©[v¶âÆÓ$^T”D,æ]¸P÷÷¿¸€E•–j\.÷´i)Ä€Á\ëP5o¢£%ÑÑÚŽÙl/*ªÇb¶üüšÒR•Ãá*+Sãoóóëþýïee:‚ ü*¨y³lÙ´ À³N¿€¢(ƒÁеÁŒF›Ýî²Xìf³Ýáp 6›Íi·;õz«Ãá²X&“ÝápaßcØ£›µ¦.ÖBÆ ¹ … J$W¾¥Åf[,æq¹,¦DzV«cʔܤ¤ðÄDyrrDb¢¼¥µÛÂÂ+’€òrÍàÁ ´-==*!AÇ€v Õš¾úêÈ”)¹×]ú§»\•J_W×tùrS}}s}}S]]óåËuuÍ´³p¹\ˆ%g&d{‰Ðd´Q«ÕQ_ßÜР?v¬¬¡A¯T6×Õ5744«T/çß<,-92%/o8-?»&ÿÓ@_¢I¡ú*yy#î½wdwçþv´›—7âСˆÄÄ´º:ëéÓUgÎTëõm›æz>\.‹Ë•ÖµÛ]ÍÍæ–‚7½ÞR]­;q¢R¯·h4Fou‡-‰ŒK¥üÄDyx¸H$â2EQAx<”ÝîÒéLZ­±ºZ§ÓUkµ&z±„b2IÛú:X^QY©ÛºÕ&ÿþè£ãºËT Я8Ç'žŒ?ºÝžòrus³!”Ÿ_óãÅf³KÔ¸\¦Ëåñk1!Äd’ÕÕÚÐåh/F£Íáp™Lv‹Åáp¸ «Íæü«lìáv» [MÄšaWo´ûh{Ó-ñr¹,¬Ìçs›ÍLL”Ó20‘ˆç#! ¹BáŲWÐ¥ðxìwÞù{‘'MÊž4)»Kóôy.]Rþû߇¶m;étz»T¨ÖÔd®¯o®¯¿"0«¯oÆ‚4µÚ€m¨0™Œ¨(Il¬,6V:aB¶B!‹“aùžó¶úú憆f¥RútµRyEx¦Têñ„!Äb‘ÑÑ’˜©B!=:]¡ÅÆÊâãÃâãepœð„j½8PôpöèÑq£G§wwF€Âá0±§´ÀÑôz‹RiÐë-z½›ˆ¤åp—õz‹Vkò¶6I ÞRS#‡M‰xb1‡Ëe{<”Ëå.*jØ»÷|0Ù“ÉxãÆ%Κu=HÔ€n$Wœ’ðòËBYš‚‚Ú‚‚˧OW?Ùíöp8Lì G&ª²RÓmùîÓ\U s¶ôæãBŒö.†åd´1›Íe³µªÆd2.í kßâ ‰„)néNìê·àQ €EQ‡—|ðÁoG–‘$ÏýñGI^ÞðŽ$ëtºÕjCCC³RiP*õXQ¬®®I¥2444Ó“+©”¯PHcce¹¹q·Ü’‹¯cceQQb‹Å¡Tê5cCC³FcúïK5cCÕ‹ÅSàrY …4:Z¢PH³³c££Å±±²èhIt´422tþê€ÞÕ€nC"á>÷gµ:t:³FcÄîÜÍZí•ëÊJVkÒjMf³=ÈÇ¢(Äd’‰‰r.—lj²À©C çÀb‘™™Ñ™™Ñyy#Bƒ ØÎž­9q¢J­Ö#„œNOYÕ|Áª±­ ðī¹Ùê# û«¨¬UaƒAˆDŸÃá0E".˜áp>ŸMßâšè!Ô×7üñÁ¯¿>îp8=DýÕ0A æf³ÇCét&­Ö¤V4£VkR©ôôGü}‡ÃŒ‰Á¢2é7¦ÆÄHe2‡Ãd2I‚@Í͕ʠәt:SE…V§3êt&ÎLÛ/a±Èðp‘B! æä(ÆËŒ‰‘\ EDÁm6ÐÕt¹P­ §ß¸ïIDAT¬¬,==½ _Û×~;A¥¥¥iiiÎ`ÿ¢Ï×›ß&ÀKHQÔ}÷Ý·k×.“ɪ<@¦¦¦fÙ²eëׯïáM#@»ÆEøòË/ ‚HKK+))ñžNÝvÛm{÷î }OØ£2ã—>?@}¼*‹‰‘¦¦Fª±ÙL—ËMQ(++zäȤèhtãóÎÓRË‹wõ™.÷É'Ÿ1bÄ–-[òòòpøîÝ»óòòNŸ>}Ýu×!„ÌfóòåË÷íÛW^^ž=}úôE‹1™ÌvÔ›ßr»××J(»Ê¢¢ú/¿<²sç«ÕáñüÏê‚C¿˜Ív—Ë­×[=Ê`°:n‹Åµ¾Ìf;-3mN§ËbqX­NZ<¦×_‘œÙí.«Õiµ:h›–~ 9$IJ¥<ƒ!qÙl&ÇÂB¯ðp!–I$<¬&sÙl¦@Àù«lŒ)ó`Wo:2d/]º´#\A⽜é¢Afþ@/‚n£µÖ¢ƒœ¬v)ÞS‘ÄÄıcÇ®]»6"¢Õ3R׺WÙ¥-º  þ›o~Ú»÷<ƒœNÿ) UWëŸ÷za…3…B’­àrYl6“$Q.e6Û° ’šÝ©S•:™Ö3CñùìˆQx¸H.ÆÇ‡ –(— åraD„P.EDˆÂÃ…]QXžž®©&•J_xá„PEEÅõ×_¯Õ‚Sî¶éóuÕ‰¬¯¯ß¼ysuuuÇ“€¾Á®]»îºë®^Ý4pðuUUÕ¹sçŒ?655>|¸»2Ö£2}­ÖwåI’ |’233zâÄì±c3† KâóÙjµúâÅ‹ØmuÇ¡§¬×DŸér‡ ²dÉ’'Ÿ|ròäÉR©T¯×ÿóŸÿ\¶lÞ¤0×_}ddäêÕ«SSS/\¸ðÊ+¯ìß¿ÿþýí«·£G&''wAi®Ð½si³Ù¾sç™/¿¿ÉhÙ"h¼›FkM;˜ÉjÀÓW·Û]RRò¯ýkèСçÏŸ—J¥~#÷ÕÁ‘#¥«W=^‹¢(ÊíÙårÏšuA.—ÛfsšÍަ&sc£¹¶¶ª©Éâ}ÏgËd¹\&Ë…ÉÉááᢈþ%–Ë…0z>=]¨¾zõj„ÇãÑétÝÞAŸ¯«N, ÕjE%$$tJjÐøå—_¾ûº:Ôk›.¾ž4iÒwß}G˱¾ÿþûqãÆýüóÏÝ’±•諌“¾wïyƒ I†Óé8cƤ›5n\FrrZÌ£§¬×D_êr_~ùå;w¾ð Ÿ~úé‹/¾³xñbgÅŠ I!”‘‘qË-·äææ~þùçóçÏoG½EDDDGGwnA¼é®¹ô™3uŸ|’ÿãN§ «¥]•¨ùòÞ{¿J¥<“É~ÕX¢Ýápû5–àq|>›ÅbŠD&“‹yL&C àp¹,©”Ïç³Y,R,æ1„DÂc2I€ƒ¥_‡Å"E".“IŠD\‹Ø  Ñ‘!›Çã…`‡Ê{9ƒéó›<€–-‚Æ»i´Ö´ƒ™¬†zú;~üøñãǯ[·nùòå~#÷„½Jlm›Å"¹\¦ÕÚöq.«Õ¹cÇi™L€ec2?>>L&ãÓ!aa‚°0¶ñ‚ü@WÃèÜäöìÙ3dÈ>ŸãÓ—QõÉ'Ÿdgg‹Åâ &ìÙ³k¿677?øàƒáááqqqÏ?ÿ¼Íf+++#â·ß~KHHذaŽ6räH„÷úù—_~IKK“Édo¾ù&!býúõ ˆˆˆX½zõÆ“““%É+¯¼Ò¹Åì8~+ê‡~8p —ËMIIÙ¸qc€@§Ó¹hÑ¢¨¨¨ÈÈÈE‹9NïJKOOG­+oZÖ[Áår-[¶,!!!""âþûïonnÆá-kÀûep»ÝkÖ¬ÉÈȉD7ÝtÓŸþÙZ òWo-ß+1ßÿ}lllSSBhË–-f³µÕÌ:ä·½´¼ ùkD­57­V+x<žwÓð~î‘#Güv_mv¿-36jÔ¨uëÖ!„ ÆóÏ?r»Ý2™ìÇDmGŽÁ)SõüóÏ<O£‹€¿ÍËËûöÛoéSQÛ¶m»ûî»éÊ÷[]m–%pƆ:wî\Ód2ñùüüüü`2ÓZÅnÞ¼yÀ€aaao¿ývk1[a¿EtÒø 8òîÝ»333###Ÿ|òI»Ýî70¨wBŸÏa2Æ%=ýô”~xº¸øõëç>øàM퓨ùí¢=Ï|0`À‘H4jÔ¨ƒ›Fkéømà}¬Ëe³Ù6lX¿~ý›o¾ùå—_nذź"eÙ´iÓ«¯¾Š%j@°xñâÍ›7·£Þ®éÇj­Ë \ÞkšKwJWyâDÅ‚»_xáçíÛOÛlN·› l[,?¿æÏ?+ª«u: !$— å7Ü2vlæœ9£~xÌÒ¥·¯^÷é§üç?ó¾ùæñ|fïÞg{ùäÉW‹ŠV•—¿U_¿®¬ì­¢¢U'N¼zôèÒ½{ŸÝ³çéo¾yü«¯ùôÓÖ­›õöÛ÷¼üòK–ÜþÄçÏ?gΨ¼¼wÜ1x„cÆd œ››˜(W(¤Xù,ð¯ÐÕ„fȦïõÙIhß²ÂïnÏrÓ)ófþ@kôÌ= ï–ë·%úmÚANV»´h-!â±ÇÓp¿éø4ù`ÒìôMQèäÉÊ¢¢F«ÕImÛÒöxPYÙ['O¾ºoßs_=ÿÃï[¹rú³ÏÞòÐC£§M2ztzv¶":Z5 ï@ÍÁƒU*U€ƒÍf?üð×/_Þ´iBH­V—––â§|öÙg±±±{÷îÕh4û÷ïÇ–^)Šš={öĉËËË rss_{í5|Ëm·ÝvàÀ³gÏâht:´/ÄÛo¿Ý`0lß¾!¤Õjqà¬Y³ Ã矎ºçž{ çŸ~JG€J¥:xð`ðµÑ‘tüV”Édâp8Ÿ|òICCÃ_|Ád2M&“ß@Š¢Þzë­™3gÖÔÔ :ôÅ_ô[i-ñ[oiów† .\¸p!pœ5kÖäääœ?þ†nxþùç)Šò[Þ/ûï¾¹cÇŽúúúüQ¡P „üR­×[0Eè¬7èWóæSuÿý÷?ðÀJ¥2**êÏ?ÿÄ›ùk¯½Ö²½ø½Ëo#òÛÜ(ŠZ¿~ýÆ©¿v¹ÞÏmhhhÙ}QAt¿-3¶bÅŠ¿ýíoEíÞ½[,:”¢¨S§Nq¹\³ÙL7:x<z{×§8WÅÅÅÑÑÑùùùE577óù|¼\ZZê7WÁ”%pÆ~úé'¹\ît:)ŠÚ´iSNNŽÇãi33~Ç|×ÝwßÝÔÔôÙgŸ!„t:ߘ­°ß"< Ð´ pä)S¦”””?~<--.¬O`à7¼SÆ’ÆF“Ùl&f#{Ë.úÓO?õžfÄÅÅá†ì3e¥/Zkà}¬Ëżøâ‹¡×_Á;2Ƨb;ÖŽzC={ÖøWZû±Z벂\€´¤ëºÊýû-[¶åŽ;þûL\ܳIIÏÇÄ<ÝÚßÑ£eSèK´{UÕuC¶ÏNB;–­íöø,gð²¥ãó©+˜ù÷[úÒE0ÁLV»ºh”W[¦9yò¤T* ütümkizÓ¥-úôéKŸ}öûÝwð\LÌÓ‰‰Ïµ6Au¹ÜS€¾Dg Õìv{QQ‘Édr»Ý¿ÿþ;î2èŽ 77wóæÍt䯿þ!äp8H’¤;ô;v¤¥¥á[ ¨Ö§,¡C‡Qåv»é¾ !tæÌŠ¢‡ÏµOçÕ’P ÕüVTcc#‹Åzçwššš<Ñht»Ý~)ŠÊÊÊjhhÀ©íß¿ðàÁ~+­%~ë-0!ªeffîØ±__¼x_û­ïfddlذN䫯¾Bù ¤Z¯·`ŠB5 9amjjŠ‹‹8p ÷„&p3÷Û^üÞå·µvûÌ™3)sSü\¿ÝD÷Û2c§N …‡ãÙgŸ]²d ‹ÅjjjZ³fÍÔ©Sñ½ÁŒØ\Ã¥K—èz£‹@]¹>ñÄ/½ôEQ›6mšþøãt`àfî·½ø½Ëo#ò{»Édr:2™Ìo&ñsôó»ß–2dˆ@ 8yòäáÇï¼óÎ!C†>|øàÁƒûÛßPУÃÉ“'ÇÿÆoà~‹——÷ÝwßQåcn1@%(K›#IrÆŒ;vìÐjµ¿þúëìÙ³ƒÉL€ŠÅ6¿1ýް ØÚ`áw€ _•¬¬,º°~ OÒ²‹®¨¨ð;Íh ¿Í¶Ov¹›7o>tèжmÛ¶{÷nº£££±î—7gÏž 9Yíê¢ùÍ[ii)= ¼Wdš!hÑ\.k̘Œ¥Koÿõ×EG޼´råŒ ðx,„I$É8Á§½Î”¬X­Ö{î¹gÑ¢EgΜùè£|¾MLL,,,¤?!„¢¢¢H’¬¨¨Àååå±±±øºMaXÛö\{*~+Êjµz<žï¾û®±±qîܹwÜqGcc£ß@„>Ø‹7šššŽ?Ž F‚ØcëM¡PTUUáë³gÏ®Zµ µR-Þw%%%;wŽþˆß1¿¨õz€î¥¶¶öƒ>˜4iÒsÏ=Gnæ~Û‹ß»ü6"¿·ïÝ»÷Ö[om-“ø¹ûù´ÌƒÁ˜:uêîÝ»KJJ†:a„ýû÷>|ïð9:üðß|òÉÖ­[<ØZFm49²ÿþ»îº+p®Ú,H0ËËËÛ¹sç·ß~;zôhld¦Į́XŸi±ß˜~GØlm°ð;@àãl¡’’í7~öìÙ+W®Ä'gB³fÍÚ²eËêÕ«gÍšu­õ¿ã)jÑeud‚BØUòùì¿ýmÐ{ïÍ.,\õí·ÿœ5kdT”e³P À—n²1íXVø]¦ó¬ö=®%0óÐc÷(\.B¨®®.˜R?YíÒ¢µÌEQü1ž‡x:&È4CÜ¢““#zhôW_=R\üæŽ .œœ›¤°ú)T³Û퇃Íf[­ÖeË–!„ŒF#ýíO<±xñâ_~ùE§Óa‹´A°X¬¿ÿýïO>ùdeeå… ^~ùeŸCý>˜L¦NÌpwá·¢‚˜2eÊöíÛ ƒÃá`±X|>ßo BhÆŒ/½ôRuuuAAÁ­·Þúᇶ| ]WŸþ¹^¯eÛÇ}÷Ý·téR¬Š¾`Á‚êêj„Pk5€®ð±Ç[´hÑîÝ»•JåÞ½{_}õÕÖQpõ!Æãñ<üðà .ܲe˯¿þúÃ?àðÀ¯«ßöâ÷.¿Èïí»wïž6mZàÜîçà·8S§Nýè£n¸á‹5qâÄ 6$&&&&&"„‚Affæ‹/¾øØcÙl6¿E IræÌ™óçÏ¿þúë###ÛÌU`‚ÉØ˜1c\.׊+î»ï¾ 3|Åúéw„ ¦€Á O=õTYYÙÉ“'—,Y2gΜÐ÷ðÛE?üðÃÞÓ ì˜!~›mër)Šš?þÀç΋zî¹ç¢¢¢.\ˆ¿}õÕW•JåäÉ“÷íÛWRR’’’rï½÷Úl¶Gy¤}Å×h4Ê¿‚ZOQ‹.+Èò^Ó\ºK»J&“1ztúÊ•ÓÏœYþË/Ï?÷Ü­r¹°Ý©ôIºeȦGŠv,+ü.ÓO:ò8Ô†3 ·Ð3÷(¤R)Bè?ÿùÁ`xï½÷¼ÝÚ^qð“Õ.-ŽŒ§¯uuu¿ÿþûôéÓ+++Ÿ}öÙ`žÞZš=¤E³XäÈ‘©‹ßöóÏÏòx즽‰à-EcùÝwß ‹ÿè£fÍšIÛu»ÝëÖ­KMM•H$·ÞzëîÝ»#""(Šjll¼ï¾ûäryLLÌ3ÏÕ(EQÔ7ß|“ššÊf³³²²vïÞcú 4 =ôL&“Ëå>ú¨Ùlö®´`êŠ ®Z¨úT³ÙlÏ?ÿ¼B¡H$³fÍjjjÂá-kÀ»€.—kÍš5iii`Ô¨Qø@‡ß@ª­z øTÚA0oþûï¿?hÐ ‡ÃAQÔÎ;cbb°ÉïÀ¯kkí¥å]”¿FÔòv‡Ã=ë`üöÿÝW›ýŒßŒ5773™Lì"Øl6³ÙìÅ‹Ó rt (Êjµfdd,Y²Ä»ÞO?tèBèÃ? &Wm–%pÆ0=öÇ3 Ág&øŠm³µ¶ÍN/paqäÏ?ÿ<111<<|áÂ…ta}©€€g gÌÈî·‹v8+V¬HNN …£FÂ^ 8h¡Z4[™LÖÇºÜ 6p8owk'Nœ`0Û¶mÃM&ÓsÏ=—››ËårSSS—.]:nܸ¿ÿýï×Totñý®hüþX­uYË{MséÎê*ƒôqÐi÷ªªë†lŸ‘¢}Ë ŸešÏŠÌ;f§<fþÕ›÷((Šzýõ×¥Rijj*¶ÜHýµiø´hŸÛOV»´hÔ_§¯ñññ³gÏön&m.Û[KZ4t#´næ¡C‡²³³}ŽùÏž={âãã „?nß¾ýõ×_ÏÏÏo_jŽZ­¾xñâøñã{H:=‡þîlf!''§“2Õ ô½_}àÍÚÇÒ¥K«ªª6oÞšÇuÑ[VV–žžî3Oð˜NG Ó鬑½@9Ž3gÎŒ9²KŸ‚_§³ºJ˜3´Fgõ0dfþý˜oô E@WÓ™æSPP0gΜ3gÎX,–ãÇ¿òÊ+M¾@¯Ãf³UTT¬_¿~Þ¼y!{(Œ°ô:ØlvWKÔ Óa†ìI‹/¶X,wÝu—F£IIIyøá‡çÏŸ²§@øóÏ?§OŸþøã‡R±µ‹FX±XÜ2¿=“tYÐU}Π/-ºšÐ™ìá€ùÇÖó˜¾÷Ë! ¼ùÐqúöüè½ÀÈô(`ÎÐÐCö"`æßÃÖ\Т 5Bgþz) T€6¡´Õ  @¨mB5hæ5Å®®®nhh袬t/‡£S;wî\'¦Ö7Ðëõ½ºZ:÷ ú½ýÍèÛ@ ôÌf³D"éî\ôP`U´&€Žs Bµˆˆˆ®ËG·Ãd2ù|~ÇÓár¹}¬¢"""¸\n‹Å’™n¤³Þ _ÑÞ|è82Ž@§Ó÷æl@¯F"‘À´À/Ð=ö"`æßÃÖ\Т 5Š¢º;УŸjÐ T€6¡´Õ  þòö×M!P{OIEND®B`‚XQilla-2.3.0/docs/simple-api/classxercesc_1_1StdOutFormatTarget__inherit__graph.md50000644000151400015140000000004011653571064025232 00000000000000b54f61bc5151c07a741a7f82220c6c7bXQilla-2.3.0/docs/simple-api/classxercesc_1_1StdOutFormatTarget__inherit__graph.png0000644000151400015140000001604411653571064025344 00000000000000‰PNG  IHDRÍîÔNbKGDÿÿÿ ½§“ÙIDATxœíyXTGö÷«é¦»µEvD€ƒ‰q4“8Š ÑhQ(J@4(ÄÁш‚ˆ0B ,²FpAG´QI^D–Æf馷ûû£æíéÐ+/¢çóøGÝsëÜsªêÛUuïÅn A^1ZCðV:Ètè ™ÁæÏŸOf8@5QQQsæÌ!'©:+++›5kÖ¸qãÈ ($77wÍš5¤…#Ug¡7.[¶Œä €< …Ìp°?Ètè Ð@ 3€ @g£¦¦†F£åææJ-EEEt:½¶¶!D¡P&MšÔïO-ZD¡PÈÎõut60¶lÙÚÙÙ‰zñâźu뢣£íììp…ܺuKZŸÃáTTT M®¯ ³ehh¸iÓ&„Pdd¤™™YDD„ô¬³³³ìlW\\LÚ3÷ׂDBÙÙÙ**™››wtt‘™™9iÒ¤îîn‚ AXX˜±±±‘‘QXX˜@ ¨¯¯G•••7îܹsÛ¶m7nœ¡¡¡¯¯/‡ÃÁW“÷"¢¸¸ØÎÎŽÁ`Lœ8ñøñãA…B…î8„|™ ˆëׯÓh´¿ÿýï £¶¶V¶)))ÖÖÖ‰[–,Y’’’‚ª¯¯W–ö²±±144Œ‹‹;~üø;ï¼3jÔ¨¨¨(|‡³jÕ*ƒ±cÇ~ûí·<O¶ùþþþ¸fWW—ŽŽNuuõŸ‹ÁåõÒA+W®\µjÕ³gÏLLL®^½Š;wîtsskjjb³Ù|ðAdd$îèE‹={6&&ÆÖÖ–Íf×ÖÖΜ93,,L™Www7ƒÁHLLlnnNII¡ÑhÝÝÝ»wïVèÞÙÙ™œœ,_ÆDFF"„bccû5ð·ß~355­©©Á^ºººmmmRɧ„½¼¼¼¸\îÑ£GBË–-ãr¹III¡¶¶6‚ |||œœœîÝ»Çf³§N#ÛüS§N…B‚ 222lmm¥*ÿ“c1ˆ¼v:ãp8ööö111R£Mss3.—––N›6 w4›Í&âÝwßÍÏÏÇgïÞ½+-Ë{utthkkïÙ³‡ÃáH$’®®.±X¬Ì]‰ÄÅÅ…J¥®X±¢_ëëëCBB6oÞLDFFÆüùó¥v…)á³xýÊõõõ€J¥Þ¾}{åçç[[[Ë6_$™šš–——ñÙgŸíرCmþèŒ ˆíÛ·S©Ô––©…ÉdÊ®õ, w4^w˜L¦ìâ¥Â‹ ˆK—.¹»»ëééÍž=ûÔ©S*ÜUžžÎb±.\¸Àd2 eX__þüy¼tººº&%%2:S˜’ô¬Âò£GB<Ùl6“É”m>AëÖ­ imm¥Óé=Ò¤ o»ÎšššŒ?ýôSÙ©ÂÂÂBÚû§®®NvÃdiiYRR‚Ë555ÒµLÞ«···¢¢‚ ˆ¾¾¾´´4*•ÚÞÞ®Ì]Ož<Ñ××?räAqqq&&&xu#þ¿2D"‘‰‰IEE…žžþ´HÕ#Ÿ¡Ngx>»sç6XYYõÛ/ž;wÎÜÜ%B΂ðöövrrjll¬­­µµµÝ¶m[?‰D"ccc“ÔÔÔÁ‹ÁåõÒÙO?ýôþûïãå   ÀÌÌ ß{r¹\???}}}ƒÀÀÀžžÙŽæóùaaaæææ,ËËËKzÃ(ïEDvv¶••N·±±)**Rá®ð~3--Á`üþûïÒœ«ªª´´´òòòeœ?!” m8¶+LI­Î:::|}} ÌÌÌ6nÜ(½ß”íºàà`.—;Xc1¸¼^:^š-[¶x{{k^Ÿä± ûïA‡Ïç?}úôرcYYYC‹Rà}À°çêÕ«~ø¡¿¿ÿܹs‡:¥À|6ì™3gNGGÇPg¡˜Ï2d:Ètè ÐÙ€¹zµq¨S~ý\#66699™ä ƒKc£•…Å#:]0Ô‰ 'HÕ™‡‡™á^<ÇÓLMLº†:—?…‡‡™_tB!à{CÂîݧããÏL˜`PY5Ô¹ '`60rs¯!„>l¯«{:Ô¹ '@g ¦¦éñcBH[›zâÄ¡Ng8:……Õ4!$Šss¯I$°åÐЙ¦ˆÅ’¼¼k"‘¶¶vUUÁMiJee‡Ó+=ÔÖ¦Ta>à Й¦äçWÓhÿë.¡P\TT-Ї0¥aèL#QqñM‘H"kärû**þßP¥4¼iÄÙ³u<^_?#FÉχ»NiD~þ -­þ}%INºÕÛ / Ô:SOwwß™3wÄb‰ü)¡P\Vv‡ü”† 3õ”–ÞDÊÎÂ]§&€ÎÔSX¨TI qî\—Ë#3Ÿá¼GWÏãÇÙEó£bøa©³ó{R‹©)‹Á€ÿ9¦ èõXXè÷³œ0Á`H’¦Àº è Ð@ 3€ @g€Î2d:Ètè Ð@ 3€ @g€Î2d:Ètè Ð@ 3€ @g€Î2d:Ètè Ð@ 3€ @g€Î2d:È@ý÷ì•••56ÂÌü²²²gϪ†:‹×ˆÀÀ@55u¼?Î:¸hkki1†:‹× µ*Òè{C=<ø 22²¾¾!´hÑ¢³gÏÆÄÄØÚÚ²ÙìÚÚÚ™3g†……)óêîîf0‰‰‰ÍÍÍ)))4­»»{÷îÝ Ý;;;“““å˘ÈÈH„Pll¬¬!ôÛo¿™ššÖÔÔ`/]]ݶ¶6„P}}=®€ ý¼nÞ¼Ù%ƒP($ÂÇÇÇÉÉéÞ½{l6{êÔ©111²­îîîFyyyq¹Ü£G"„–-[Æår“’’Bmmm\.—N§ûûû?~ü8##!ôüùs|…~ ô3ªpÄ¡ÿñŒ;ö_ÿúWkkkii©µµ5vW6Lj ˆììlMjšÎ8Ž………½½}LLŒÔhccÓÜ܌˥¥¥Ó¦Mà `³ÙA¼ûî»ùùùøìÝ»w¥ey¯ŽŽmmí={öp8‰DÒÕÕ%‹•¹«@"‘¸¸¸P©Ô+VÈÚ±ŒBBB6oÞLDFFÆüùó y)ÓY?JJJ•J½}û6®“ŸŸomm-ÛjìX]]M„@ èW®¯¯ïëë«««ëîî‹Å.\ÀFMt¦Â‡ž:uêÏ?ÿ,­Ÿ™™‰Ý• “Úþ$È×AÛ·o§R©---R “É”‹… ðÙÚÚZùëÈ{qéÒ%www==½Ù³gŸ:uJ…» ÒÓÓY,Ö… ˜Lfaa¡ÔއäüùóÖÖÖ‰ÄÕÕ5))‰Ð@gòÆG!„x<>d³ÙL&S¶Õý–‹ŠŠ>ùä“iÓ¦ùùùi®3Ž8´ŽŽÎ­[·¤•ñý)¡|˜4éR²uÖÔÔdllüé§ŸÊNÒNäp8uuu² °´´,))ÁåššéZ&ïÕÛÛ[QQAD___ZZ•JmooW殌'Ožèëë9r„ ˆ¸¸8“¶¶¶ÿöBõõõ"‘ÈÄĤ¢¢BOOZ^Bgx>»sç>,((°²²ê7lªuÖÛÛË`0ŠŠŠ$ ÇÓ\gjmll233¥õ³²²ð)Õä u68÷‰Äß߯ YYYeee%%%ؾtéÒÍ›7?|øÍf/\¸0!!AÖË××÷»ï¾»}ûöí۷ׯ_ÿðáCe^ eÁ‚'Nœàr¹@[[[WWW™û‹/ð¾G¶LDPP½½}@@BèÛo¿511Ù°aƒl>T*ÕÍÍ-((è/ù‹±±q¿6¶¶¶>“AYWhkk{zz†††Þ¿ÿöíÛQQQ>>>ê̾¾>@@§Óy<^tt4B¨«« ŸÂ{»—pÄ„„„DDDœ9s¦½½ïñ}€²aRn`¨U¢&óÙO?ýôþûïãɹ  ÀÌ̬££ƒ .—ëç积¯o``ØÓÓ#ûAáóùaaaæææ,ËËË‹Ãá`»¼þÜXYYÑét›¢¢"î²!¤å´´4ƒñûï¿Ks®ªªÒÒÒÊËË#d&•óçÏ#„p$3ŸÉ÷R4ŸÑÑÑáëëk```ff¶qãF7 ùŒ ˆ}ûö3fܸq‡òòò266 …Ÿ|òɈ#dÉÏ:ò޲uÄbq||¼••‹ÅZ¸paQQ‘‘‘‘ÂWN!C°?^sJJJnÞ¼)=ÌËË›6mÚŸ¼&©ë&0,`³Ù+V¬¨®®îíí½råÊÖ­[¿úê+rBkôwÛÀ›ADDDoo¯««kkk«¥¥¥¿¿PP9¡Ago4-66666–üаnd:Ètè ÐÙ€ik¼§äo Ýo6669räU§2\ÈÍ}òùç¦L&u¨y-¸qã†FõÔ>É…ï×EK‹ajºAGgÊP'òz¡VEBÑË;@?ÿ\žóñÇ“rs× u.à ؟ Œ'n D¹r¥¡½vit6ž={qõj#BB”¢¢š¡Ng8:EE5T*!$‘99׆:áèläæ^‹ „Aµµ›šóž½Ù€Î4¥±±õîݧÒÛ&*–Î:Ó”‚‚jíÏÌÄb"7–NMiJnî5‘H,=$¢¡áy]Ý«ú¢ƒ7 ЙF(ÜÑhÔÂÂê!ÉgØ:ÓˆÂÂjmíþ/šD"qNN<èÖЙz$"/ïºP(–?ÕÒ­®~H~JÃЙz®^mlmíRxŠF£ÀÒ©ЙzJJjBt:MþŸDB׈Œ¡ÎñuþŠz¦Nµøî»%Òý{ÿýùçïOžü¿ïlzñ‚7fŒÞP¤6l€¿×0ææW}ñÅ´¡Nd8ë&@ 3€ @g€Î2d:Ètè Ð@ 3€ @g€Î2d:Ètè Ð@ 3€ @g€Î2d:Ètè Ð@ 3€ @g€Î2d:Ètè Ð@ ²?Æ™=Ôé FŽüD[Ûp¨³xÝñðð•–‚ï§ŽŽ&?­á†ÓP'ðZ“››ÛÏ¢@gsçÎ%#àÍåÂ… ý,°?Ètè Ð@ 3€ ÞÌßÝáñxiiiFFFNNN>>>t:]…Ë“'OV¬XqîÜ9„ŸÏOKK»víZssóøñãgÏž½|ùr*µÿï"*ÄÑÑQÞˆ/ûJ9{öì?ü oONN¶¶¶~ÕÑÕòfêìÀ---Û·o722jjj:pà@WWWhhhssspppQQ‘ ßÞÞÞµk×êëë™››ß¿?%%åúõë{÷îÕÒR0ýË_óàÁƒfffƒß*•¡?þøã'N`ãúõëq!4jÔ¨Wn ¼™:»téÒ®]»&Mš„=zthhè?þ*‘H¸\®jßãÇ=zß¾}XU3fÌðóó;}úôâÅ‹åëË_sôèÑcÆŒ¼Ö(E64ƒÁ`0!‡z hÒ{ÊðþìòåËîîî]]]¡òòr___>Ÿ‰D‰‰‰_~ùå—_~™˜˜(‰ž½jÕ*WW×ÌÌÌ3gÎxyy-^¼øØ±cø •••kÖ¬Y¸p¡››[ff¦æ¡åeC³ÙìâââÕ«W/^¼ø›o¾©¬¬Äí’ Ã)dÀ:ûë_ÿ:}úô„„‡“ðÝwß1™L„P^^^sssRRÒÞ½{«««SSSqýœœœÈÈÈ[·nUTTÄÅÅÅÇÇ?zô(##Ÿ•÷âóù111®®®X»víâóùyyy ÝG&_¯®®vwwÏÎÎniiÁöC‡!„òóóB'NœÈÎÎ LOO÷õõMLLDuwwwttÈoh¬­­›ššvˆì51|>Ÿ'ƒX,Fíß¿¿µµ511qçÎ×®]ËÊÊ’í<õÞ¸qãðáÃÉÉÉ•••)))k×®MOOçr¹½½½Û¶m›4iRFFÆÚµk“““;;;åCË£ÐQ6t}}}zzzHHHff¦OBB‚²¡Ñ$œ2^æ~sÆ ÕÕÕaaa...666Øxúô鯿þÚØØØÒÒ2((¨ªª ÛÊËËýýý---'Nœ¸iÓ&[[[e^B¡ G§Ó.\XRRÂ`0Nž<©Ð]OOOº–É–?üðÃìììýû÷ÛÙÙýûßÿööö.//ï׊âââàààÙ³gÌœ9300PE“)ŠD¢é¹~õÕWŸÉPUU%‰Îž=»aÃ333KKK??¿ÒÒRÙþÁŸUOOO]]Ý  „¼½½uuu.\ˆêêê¢Óé)))¡¡¡ÆÆÆ¡žžM’QáˆCŸ>>///55uòäÉÞÞÞ3gÎTæ®>Ÿùòå¹sçN™2eÊ”)¾¾¾iii‰‰‰NNxùÝÚÚ*;oYZZâ¦3¦¡¡aúô鲕&Ož,kQñ»¥cÇŽíK"‘˜››ãñcǶ¶¶ÊöFWW!D£Ñú•qáñãÇ{öìáñxxòÓŽ8ôÓ§O'Nœ(5¾óÎ;¸ l@_Ž—ÑÙóçÏ ¦OŸ~èС-[¶`#‹ÅŠÇý‹WŸÿ ÑBÏž=Ãíihh¸råÊŠ+zõõõI$’˜˜‘HT^^¾eË–ÂÂBeî !"66vüøñXF eÆŒ%%%ýª™ššÞ»wÏÊÊ >xðœ?îàà Ý¢ñùü¬¬,i§‹Åb*•ÚÖÖ¦yéëëkii577ãOÈÓ§O eûG-}}}111111}ô‘P(<}ú´†¡U8âÐ&&&÷ïßÇ3„ÐÇqAÙ€¾^7 ‚صk×Ò¥K·nÝzãÆË—/cûìÙ³“““[ZZ#"" e½,XpôèÑû÷ïß¿ÿþýÒ “¼…B ¯¨¨èéé …4Á`(sïéé9yòd¿²ŽŽÎ‚ ¾ÿþû+W®477ß¹sçðáò“¾#ûâ‹/>üŸÿü§£££ªªJºÝ^µj‡Ãùæ›oªªª?~|ñâŵk׺¸¸Œ1!tæÌ™ÞÞÞ~Û|MeÐh4GGÇ477ã%ÎÎÎêv¡P(‰h4š@ À{ßÞÞ^MB«pĸºº&%%]¿~ËåÖÔÔ¤¥¥Q(¤|@U‡SÆ€ç³ÂÂÂÎÎN///¶qãÆ}ûöÙÙÙ92 ààÁƒkÖ¬¡P(ûÛß‚‚‚d?ñ>>>|>?<<œÏçÏš5+((Ûå½ètúæÍ›“’’ž?nnnM§Ó•¹wvvîÙ³oËdËéééÉÉÉOž<Ñ××wtt\½z5BÈÔÔÔÎÎÎÍÍíÔ©S®®®B¡ððáÃíííVVV[·nÅ÷SºººGŽIMMMLL|úô©™™™“““‡‡‡¶¶6‹Å 8tèPFFFHHÈÅ‹û]SE¿}ýõ× ÖÖÖž7ožtéÔ„#F¬]»666VGGÇÛÛÛÉÉ)"""//Omh…Ž”Vpuu‹Åñññ/^¼°µµ Þ½{·Â¡¡Ñhš´T!ø}ôœœOOO^¯•••ÆÆÆÒýCEEþˆþ™k~ÿý÷FFF999R ¼ß|ÛillüñÇëëëûúúîÞ½{ìØ1…£ÿ$oæû@s–/_Îçó£¢¢:;;ÍÌÌ-ZôùçŸzÐÙÛ•J x¥Q`ÝÈtè Ð@ 3€ @g(x®¡ð/Ü`@xxxÈþá½Ó£G®\¹BzJÀˆ……ÅG}$=¤¨ø;*,`è Ð@ 3€ þ¶’îå›ét;IEND®B`‚XQilla-2.3.0/docs/simple-api/classATStringOrDerived__inherit__graph.map0000644000151400015140000000060411653571064023050 00000000000000 XQilla-2.3.0/docs/simple-api/classFunctionRef.html0000644000151400015140000003762011653571064016771 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

#include <FunctionRef.hpp>

Inheritance diagram for FunctionRef:

List of all members.

Public Types

typedef RefCountPointer< const
FunctionRef
Ptr

Public Member Functions

virtual bool isNode () const
virtual bool isAtomicValue () const
virtual bool isFunction () const
virtual const XMLCh * getTypeURI () const
virtual const XMLCh * getTypeName () const
virtual ATQNameOrDerived::Ptr getName (const DynamicContext *context) const =0
virtual size_t getNumArgs () const =0
virtual const FunctionSignature * getSignature () const =0
virtual Result execute (const VectorOfResults &args, DynamicContext *context, const LocationInfo *location) const =0
virtual FunctionRef::Ptr partialApply (const Result &arg, unsigned int argNum, DynamicContext *context, const LocationInfo *location) const =0

Protected Member Functions

 FunctionRef ()

Member Typedef Documentation

Reimplemented from Item.


Constructor & Destructor Documentation

FunctionRef::FunctionRef ( ) [inline, protected]

Member Function Documentation

virtual Result FunctionRef::execute ( const VectorOfResults args,
DynamicContext context,
const LocationInfo location 
) const [pure virtual]
virtual ATQNameOrDerived::Ptr FunctionRef::getName ( const DynamicContext context) const [pure virtual]
virtual size_t FunctionRef::getNumArgs ( ) const [pure virtual]
virtual const FunctionSignature* FunctionRef::getSignature ( ) const [pure virtual]
virtual const XMLCh* FunctionRef::getTypeName ( ) const [inline, virtual]

Implements Item.

virtual const XMLCh* FunctionRef::getTypeURI ( ) const [inline, virtual]

Implements Item.

virtual bool FunctionRef::isAtomicValue ( ) const [inline, virtual]

Implements Item.

virtual bool FunctionRef::isFunction ( ) const [inline, virtual]

Implements Item.

virtual bool FunctionRef::isNode ( ) const [inline, virtual]

Implements Item.

virtual FunctionRef::Ptr FunctionRef::partialApply ( const Result arg,
unsigned int  argNum,
DynamicContext context,
const LocationInfo location 
) const [pure virtual]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/Numeric_8hpp_source.html0000644000151400015140000007116711653571063017445 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

Numeric.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef __NUMERIC_HPP
00021 #define __NUMERIC_HPP
00022 
00023 #include <xercesc/util/XercesDefs.hpp>
00024 #include <xqilla/framework/XQillaExport.hpp>
00025 #include <xqilla/items/AnyAtomicType.hpp>
00026 
00027 class DynamicContext;
00028 class StaticContext;
00029 class MAPM;
00030 
00031 class XQILLA_API Numeric : public AnyAtomicType
00032 {
00033 public:
00034   typedef RefCountPointer<const Numeric> Ptr;
00035 
00036   /* is this type numeric?  Return true */
00037   virtual bool isNumericValue() const { return true; };
00038 
00039   /* Get the name of the primitive type (basic type) of this type
00040    * (ie "decimal" for xs:decimal) */
00041   virtual const XMLCh* getPrimitiveTypeName() const = 0;
00042 
00043   /* Get the namespace URI for this type */
00044   virtual const XMLCh* getTypeURI() const = 0;
00045 
00046   /* Get the name of this type  (ie "integer" for xs:integer) */
00047   virtual const XMLCh* getTypeName() const = 0;
00048 
00049   /* returns the XMLCh* (canonical) representation of this type */
00050   virtual const XMLCh* asString(const DynamicContext* context) const = 0;
00051 
00052   /* Promote this to the given type, if possible */
00053   virtual Numeric::Ptr promoteTypeIfApplicable(AnyAtomicType::AtomicObjectType typeIndex,
00054                                                const DynamicContext* context) const = 0;
00055   
00056   /* returns true if the two Numeric values are equal 
00057    * false otherwise */
00058   virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const;
00059 
00061   virtual bool lessThan(const Numeric::Ptr &other, const DynamicContext* context) const;
00062 
00064   virtual bool greaterThan(const Numeric::Ptr &other, const DynamicContext* context) const;
00065 
00068   virtual int compare(const Numeric::Ptr &other, const DynamicContext *context) const;
00069 
00071   virtual Numeric::Ptr add(const Numeric::Ptr &other, const DynamicContext* context) const = 0;
00072 
00075   virtual Numeric::Ptr subtract(const Numeric::Ptr &other, const DynamicContext* context) const = 0;
00076 
00078   virtual Numeric::Ptr multiply(const Numeric::Ptr &other, const DynamicContext* context) const = 0;
00079 
00081   virtual Numeric::Ptr divide(const Numeric::Ptr &other, const DynamicContext* context) const = 0;
00082 
00084   virtual Numeric::Ptr mod(const Numeric::Ptr &other, const DynamicContext* context) const = 0;
00085   
00087   virtual Numeric::Ptr floor(const DynamicContext* context) const = 0;
00088 
00090   virtual Numeric::Ptr ceiling(const DynamicContext* context) const = 0;
00091 
00093   virtual Numeric::Ptr round(const DynamicContext* context) const = 0;
00094 
00096   virtual Numeric::Ptr roundHalfToEven(const Numeric::Ptr &precision, const DynamicContext* context) const = 0;
00097 
00099   virtual Numeric::Ptr invert(const DynamicContext* context) const = 0;
00100 
00102   virtual Numeric::Ptr abs(const DynamicContext* context) const = 0;
00103  
00105   virtual Numeric::Ptr sqrt(const DynamicContext* context) const = 0;
00106 
00108   virtual Numeric::Ptr sin(const DynamicContext* context) const = 0;
00109 
00111   virtual Numeric::Ptr cos(const DynamicContext* context) const = 0;
00112 
00114   virtual Numeric::Ptr tan(const DynamicContext* context) const = 0;
00115 
00117   virtual Numeric::Ptr asin(const DynamicContext* context) const = 0;
00118 
00120   virtual Numeric::Ptr acos(const DynamicContext* context) const = 0;
00121 
00123   virtual Numeric::Ptr atan(const DynamicContext* context) const = 0;
00124 
00126   virtual Numeric::Ptr log(const DynamicContext* context) const = 0;
00127 
00129   virtual Numeric::Ptr exp(const DynamicContext* context) const = 0;
00130 
00132   virtual Numeric::Ptr power(const Numeric::Ptr &other, const DynamicContext* context) const = 0;
00133 
00134 
00136   virtual bool isZero() const = 0;
00137 
00139   virtual bool isPositive() const = 0;
00140 
00142   virtual bool isNegative() const = 0;
00143 
00144   /* Is this floating point value not a number? */
00145   virtual bool isNaN() const = 0;
00146 
00147   /* Is this floating point value infinite? */
00148   virtual bool isInfinite() const = 0;
00149 
00150   /* Is this floating point value infinite? */
00151   virtual bool isInteger() const;
00152 
00153   virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0;
00154 
00155   virtual const MAPM &asMAPM() const = 0;
00156   virtual double asDouble() const;
00157   virtual int asInt() const;
00158 
00159   enum State {
00160     NEG_INF = 0,
00161     NEG_NUM = 1,
00162     NUM = 2,
00163     INF = 3,
00164     NaN = 4
00165   };
00166 
00167   virtual State getState() const = 0;
00168 
00169   static const XMLCh NaN_string[];
00170   static const XMLCh NAN_string[];
00171   static const XMLCh INF_string[];
00172   static const XMLCh NegINF_string[];
00173   static const XMLCh NegZero_string[];
00174   static const XMLCh PosZero_string[];
00175 
00176   static void checkFloatLimits(Numeric::State &state, MAPM &value);
00177   static void checkDoubleLimits(Numeric::State &state, MAPM &value);
00178 
00179   static const XMLCh *asDecimalString(const MAPM &value, int significantDigits, const StaticContext* context);
00180   static const XMLCh *asDoubleString(State state, const MAPM &value, int significantDigits, const StaticContext* context);
00181 
00182 protected:
00183   virtual AnyAtomicType::Ptr castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI,
00184                                             const XMLCh* targetType, const DynamicContext* context) const;
00185 
00186   const XMLCh *asDecimalString(int significantDigits, const StaticContext* context) const;
00187   const XMLCh *asDoubleString(int significantDigits, const StaticContext* context) const;
00188   
00189 };
00190 
00191 #endif //  __NUMERIC_HPP
XQilla-2.3.0/docs/simple-api/ATQNameOrDerived_8hpp__dep__incl.png0000644000151400015140000002656311653571064021471 00000000000000‰PNG  IHDR³«„1æbKGDÿÿÿ ½§“ IDATxœíyXçºÀßö‚²„ ›A±ú(ØÓª­K¹¨õ¶Ús­Dœ#hࣂµV…VërÝî©\Z©6 «õXEÚGÙ”j@­ÙDH0lsÿ˜ž˜†°H0ïïá™w¾å™_æ›Ì EQ€ 0ÐvˆŽ‚f dÐ „ š1TÉÎÎÞ¹s§¶RA´KFF†êìÌxúôiffæ»ï¾;¨!Ú¦¡¡áÁƒjAÃÎ墢¢%DW¸qãÆ_|¡Äó „ šA32hBÍ@Ⱦ›ôï¾ûîôéÓ«V­  #ׯ_ß±cGç’±±±§½½ýÛo¿ÍÏϯ­­=zôÌ™3?þøc&“ ^^^sæÌ‰ŠŠb0t•'Ož,[¶,++«ÏéuE{{û™3g êêêFŽ9kÖ,eªxyy)§ííí§L™²fÍ++«žtñç“'¶àååïääÔçf{EÍ (êúõël6;++KiÆ;3””uuuk×®¥§`ذa/^¼ ·lHHˆ““SyyùÉ“'ïܹ³ÿ~ÈÎÎÎÊÊú¯ÿú¯þX©.¡Ó°¶¶ utt¤Ó¸}ûöè4T9r䈃ƒƒB¡¨®®NJJ 9uê”……E·½XXXøûûÌ }MÊËË«ªª6mÚÄçókjjè ‰‰‰ ýÙ²ù†††ß}÷••Õ¡C‡¦M›æììeÊ”7Þxcäȑׯ_ï¶|FFÆòåËU?—¦¦¦üqff&=ëãã3räÈt~^$''gÕªU ,X²dɹsçè ——×åË—W¬Xñ?ÿó?çλzõª¿¿ÿ|pêÔ)º€L&‹‰‰Y¼xñâÅ‹cbbd2™†4222ž˜››/X°ZZZàòåËëÖ­c³ÙcÇŽ ÍÏÏטB¡ §CBB<==MMM5¯KW«Uûí·E"Ñ£GàÚµk , Ou;WOOO_½zõ¬Y³lmm§M›ÖÕ`D¯òÌ™3•« kÖ¬qvvž0aÂ?þñå]1b°Wôå ôúõër¹ü¯ý«2’••5f̘®Ê[XXØØØðùü©S§ªÆù|þÈ‘#U#‹/þùçŸ÷íÛ·nݺßó34¬©©Ù¿[[›ÚGÙÜÜœ. 6MS__¿dÉåìk¯½¦Lã7ÞPKcܸqô´Z>ªÔÔÔ8::vÕ8±º‰‰É;3=zôè[·nÅÆÆvU]&“©ÌÆŽKÌÁÖÖ:}Æœ•½?{öLC°WôÚ …B‘••õÉ'Ÿ,\¸Žœ>}:++kåÊ• JæÎûÝwßyxxЉ;v¼ýöÛçÎS~¯¡a0Ÿ~úippð?þHG:::¢£££££g̘!•J‰§ŠD†~èÐ!ú;=Ž(ÓðôôT«ÚÛÛÏŸ?¯ÜOªn©BQTzzúôéÓ54N¬îíí}øða‡3nÜ8åÞê\}ûöí?vuu¥ TTTÓ náššÚ¤êêjZ®‚½¢×£ Ç …óæÍ3ûsçέ©©áóùj­X±B DDDÔÔÔ888ìܹS"‘|ðÁj%Ö¬Y“@ÏJ¥R™Lfhh(‘HèáüÅ‹=ÉsÖ¬Y±±±OŸ>-++Û´iSjj*†P(ܰaC~~~MMÍ/¿ü²fÍ‹¥züSÒÜÜ,ïÝ»·mÛ¶ºº:___ yóÍ7Åbñ™3gÞÿ} ¹}øá‡Ç¿yó¦@ ÈÏÏWžG_ºtI9zvÅ‘#Gž~üø“'OX,Ö²eËŠŠŠvíÚµ}ûvµÂ‹-úå—_nß¾ kÖ¬Ù¹s§™™Y@@€··÷¦M›RRRºÍóïÿû‘#GV­ZÅ`0fÏžªšFLLLmm­ƒƒƒ···‘‘QçÖ®]KO°ÙìÉ“'óÍ7ÊQ£sãÄ4 çÌ™síÚµ9sæhÈÍÈÈH*•?~¼©©ÉÕÕuÛ¶mŸ|ò ìß¿ßÃÃCÙ/‘¹sçnܸ±½½ÝÛÛ;00;Ô‚Ýn®Î0T¿%&$$øùù Ä•G"2™¬¤¤äõ×_œî^=ˆ—Jûp–~>Cíz6: ÞQ¼öÚk‹-êI° C++« 6ô$ØÐ „ šA32hBÍ@È /ùí·&m§ C®ŽGDD ~ZG&3 Ýíìîj;-  ;ÿ`†‹‹‹Ï`å£[TW[64X::Ž35•i;- öd¨Ý7Ñg¦OßYUÕ´aÃ{ ´‹N€çÔVU5@bb¶sÑÐ €¤¤ÛFFL¨®ܽ[¥ítt4 ŠË-Jå`hÈLM-ÔvF:šyye˜ž–Éä.Ü–ËÚMI@3 %¥ÐÐðåvZsrk1AßÍJå©©…2Ù˃„¡!3%åŽSÒôÝŒììGbq‡jD&“§§ß“Hôñª†*únFrò&SýQý/Ú³²~ÓJ>ºƒ^›ÑÚÚqù2¯óù¦AR’¾(zmFfæú˪r¹âêÕâÖ֎΋ô½6#%åNW÷$YFÆýÁMG·Ð_3D¢¶¬¬Gn¥¤èõ%/ý½£ÖÑ!«¯®œÍÌ|°m[rNÎVe„É4pv¶ÖFj:Aß§k¨cbb8jÔ˶³³Õˆž£¿£ ¢4!ƒf dÐ „ šA32hBÍ@È 4!ƒf dÐ „ šA32hBÍ@È 4!ƒf dÐ „ šA32hBÍ@È 4!ƒf dÐ „ šA32hBÍ@Èèâ/«dff–•• r§ÅÅ"øæ›o¹_˜;wîØ±c¿ßn t­¼}ÇÀÀÄȈ=øý—ËÕö&' ‹Ç ðññIHHÐvƒƒ¡þ;µ:žg dÐ „ šA32hBÍ@È a3 †¥òëØ|>¿ç_{^˜Á`ðùü¾¤8”ÂfÀ… ¸\®¶³x5Úf„††þóŸÿ¬¯¯×v"¯ CÛŒõë×»»»‡„„PÞ¸ÐÜÜü·¿ýÅb9;;GDD´··Ëåò}ûö7ÎÒÒòwÞÉËË£KJ¥ÒÈÈH{{{6›)•J;wtõêU‡cmm½{÷nøÏH”––6~üx6›ÞÑÑA ô@´}yž€}¡(---))133;}ú4EQ¥¥¥Ê5 ôöö~üø1Ç›4iRttôÁƒÙlvrrrmmí¥K—éÂ{÷î]²dIUUÇ›:uêæÍ›;w´páB‘H”””tGóçÏ/))ÉÍÍåp8ÑÑÑÄ`OÖB7ï› y3(Šú׿þ5lذªª*¥‰„ÉdÓ%“““9θqãΜ9£¬þí·ßÒ…ÝÝÝëêêè`FF†‡‡GçŽnܸAQ”\.§;¥;âñxt.—ËápˆÁž¬…nš1´Gšµk×zzzþãÿ þ3¦<}úT.—»ººÒ³§¦¦¦ººÚÃÃCYkòäÉôDEE…ƒƒƒÁ`0óæÍ+//ïÜ}€10øÃærss£'ÜÝÝkjj4‡"¯‚§OŸ¾yó¦òé {{{&“©|ÈãñãÇNNN£G¾wïž²Öýû¿¿&ÅbÑÇŠ¢„Bannnç.ˆßo郔””Ðêt’hõˆE¦·£ ÍñãÇéýGÏx{{—••Mœ8qûöíÿú׿Ølvjjj]]ÝåË—é‡e(Š _ºtiEEŽ{÷¦M›¶víZŠ¢bcc›››;w*£‰——Wiii~~¾››ÛöíÛ‰Áž¬…nŽ&¯Ž …bÞ¼yJ3APP­­­ƒƒÃúõëÛÚÚd2Ù¾}û8Îk¯½6cÆ úØ@Q”H$Z¹r¥µµµ­­mHHHkk+E²Auš– ..nÔ¨Q,+,,¬­­ìÉZ覺ø†=___Ðå'wø|¾›››Ú¦#»…Á`p¹\z•uŠWá<ÐŒ¾0lذÐÐО‡.hF_`³Ù111= ]Ð „ šA32hBÍxIc£XÛ)è:ú?jeeeƒü/¦ííò¬_ºÔi0;ÕetÔŒ;wî òµ3³ Ç{gf¡ü¸Mÿ¡‹WǵÂÒ¥ÇnÝ*Ý¿ß/ `º¶sÑ ð< ©Iœ—Ç`$%ÝÑv.ºššZÀ rs××?×v::š˜X PPÀd2ÒÓïj;Í€Êʦ¢¢'ôù–\®HL,ÐvF:šii¿2™¿?ÌGQpÿþ“²²gÚMI@3à‡òd2…rÖȈ™šZ¨Å|t}7ãáÃÚŠŠFÕˆT*ÇÐŒ””B##õPYÙT\üD+ùèzmEQ R©B-Ž è¹wîT44ˆ:Çé…þ«·èµ))¿1‰‹ž=kÉÏì_«Õ)ô× ¹\‘ž^(—SÆÆ†ÿàâE½¾ä¥£÷Zææ«W{)gKJê/^¼·qã{ʈµõkÚÈKWÀ{­¿“ž~wõêokki;]AGD3hBÍ@È 4!ƒf dÐ „ šA32hBÍ@È 4!ƒf dÐ „ šA32hBÍ@È 4!ƒf dÐ „ šA32hBÍ@È 4!ƒf dÐ „ šA3.èíëµï@adIJ´œ©í, ŸÞîè¾üN×úõëg̘ÑïÙëáÚN ÿ9xð`jõÅŒéÓ§ûøøô¡"¢ûP Ï32hBÍ@È 4!3 f0T=zôòåËŸ=­­ =z´……Å›o¾™’’Ò‡F ŸÏœZÊ@3nݺUWWWSSsúôi‘H4uêÔæææê«o”••±X,ålSS“§§§¹¹9—ËÍÏÏÿøãýýý¯\¹¢Å µË@ý"½Ýˆ#ÀÉÉéÝwß}÷Ýw:ôÅ_ Pw}@¡P455)g£¢¢¼¼¼âââèÙ×_½¾¾~ÿþýï½÷^ ¼â ÆyƒÁX½zõ¥K—èÙæææ¿ýío,ËÙÙ9""¢½½]&“EEE9ÒÎÎnùòåôÑ…Ïç3¿¿QušÁ`œ:uj„ vvv{öì9{öì˜1c†¾mÛ6º€T*ŒŒ´··g³Ù‘‘‘R©”®õý÷ßO˜0ÁÆÆæÿ÷`úôé@ë IIIëÖ­SM;**êäÉ“ôô?þHQöìÙÄœi®^½Êáp¬­­wïÞ­!%5ÔjÑ«œ––6~üx6›ÞÑÑA þɽÓ%}¸oÂår»-SZZª)((°²²¢§½½½?~Ìãñ&Mš½oß¾‰'òx¼¢¢¢iÓ¦EDDPUZZªLOuüýýE"ýùöõõ‰D'Nœ€ÆÆFŠ¢öîÝ»dÉ’ªª*7uêÔÍ›7Óµ–.]* ccc ©©IµM¡P€¸:"‘ÈØØ888¸¦¦&>>ˆ9Ó-\¸P$%%%iNIm‹©Õ¢Ó›?~IIInn.‡Ã‰ŽŽ&»Ýe>>>}¸o2ØfH$&“Y\\LÇ“““9Îøñã“““éȃèi fÒM©MÓº»»×ÕÕÑ…322<<<èZYYYª%UÛ  ‰«ÓÑÑñðáC±X,—˳³³éêÄœéŽnܸAQ”\.ל’ÚS«E§Çãñè\.—Ãლ÷ÕW3éÍ7¥¥¥®®®ðôéS¹\NO‡Ã©©©777:2a„ &¨U§þx×ÒÒŒŒŒÔ¦i***”³Ã‡§'ÕJ*±¶¶¶··ðàÁÛo¿­ |òÉ'ÙÙÙæææ%%%«V­‹ÅžžžôÒÊÊÊ®r¦;20x9Rw•’*kÊfqww§7TWÁ~g0Î3(Š:~üø|öööL&³¬ì÷W”=~üØÉÉÉÑѱ¢¢‚ŽÜ½{÷«¯¾RÖ•ÉdðäI/Þ‘Éb±”G,¡P˜››KÇÕ6º~øáTŒ—J¥æææmmm¾¾¾‘‘‘………ÇŽ£—jÈYyJÔmJªt®ôAJJJhuº ö;eƳgÏêëëŸÿüóââââââµk×VVV€••|÷Ýw"‘è믿îy×}ôÑgŸ}VYYÉãñ,XpôèQ …Åb1=ñÕW_eggݺu‹Çã}ñÅ_ý5½¿;::$‰±±q[[[TT´´´sîUJqqqÏŸ?×¼.ëÖ­ãóù[¶lY¶l™†`ÿÓÛázvž¡ÄÅÅ%00ðéÓ§Ê¥ ((ÈÖÖÖÁÁaýúõmmmíí펎ŽÃ‡÷÷÷WŽ÷;wî´²²ruuMKK•ó åç8-‰V®\immmkkÒÚÚJ,)•JgΜiaa¡L¬¢¢béÒ¥ŽŽŽ–––o½õVzzºrÑÁƒmll\\\Ž;æïïÏf³»ÊùϤ¤:MâââFÅb±ÂÂÂÚÚÚˆÁnwYßÎ3zý5ƒÁår}}}ÿ¤‘ˆfø|¾›››ÚÞ!»…ÞY ½ª…÷M2h†Ž2lذÐÐО4CGa³Ù111= hBÍ@È 4!ƒf¼D¡xeÿ¯ ¿#—+޹¦í,t‰Þ^4Õv¾…±±³½ý*Âm­W€Á¸ ßÛ‹¬C…~xœ“ótçÎãÆYi;—þÇÙÙ¹·Uz}ßä•D*•Oœø¹XÜáç7íСµŽN€ç×®=hm퀋mo'<¤©‡ ÉÉwèçzÚڤ׮=Ðv::š--íW®Ëå `2IIw´‘N€f€R É×®=‰Úµ›’.€fÀ… ·UgårÅåË’˜˜¸jÕª~l°ŸÁmÆŒ¯êK“t£Ÿßó…ç4!ƒf dÐ „ šÑ‚b±8""b̘1fffnnnQQQíí½~;ŸÏïöl¼¶¶6 `ôèÑo¾ùfJJJ_Sî7 ŸÏ×v=B f„……&%%UUUýôS …›šš<==ÍÍ͹\n~~þÇìïïåÊ•^¥ÚmJýXKçèíK¡5àããÓ“·L[YYåææ*g³³³GŽIQTii©æ|º- Ê?ÿùO???ÕHDDÄܹs{X½=ö¤”––ö¶Áž\.·?ìǶzhÆÈ‘#—/_ÞØØ¨·µµ{{{zöâÅ‹fff#FŒØ½{·ZåÖ—J¥Û·owqqa±XAAAB¡®>bĈ[·n©¶ßÒÒRYYIO …Â+VØÚÚ:99mܸ±­­¢(ˆwww·¶¶Þ»woç”$IDD›Í¶³³‹ˆˆH$iiiŽŽŽ€¢¨sçι¹¹‰ÅbµZªÀÑ£G]]]­¬¬víÚ¥\‘ÔÔÔqãÆÙÙÙ………µ··ƒš·ê«`Æ•+WœœœLLLæÍ›·oß¾ŠŠ :®úQ‰DÆÆÆÁÁÁ555ñññÐÐРZ@9½oß¾‰'òx¼¢¢¢iÓ¦EDDP% €ÞaD½½½?~Ìãñ&MšMQ,]ºT(ÆÆÆ@SS“Ú§ïÞ½K–,©ªªâñxS§Nݼy3EQË—/_±bE}}½½½}^^ÕÝ1cáÂ…"‘()) éÂóçÏ/))ÉÍÍåp8ÑÑÑÄ æ­ú*˜AQ”L&ËÍÍýòË/'MšÄd2¿ÿþ{ê´££ãáÇb±X.—gggÓa¢ãÇONN¦ƒ< §(jH$&“Y\\LÏ&''s8Š¢ ++‹.йGŠ¢ÜÝÝëêêè錌 Š¢„B¡³³óäÉ“•;O³7nÜ (J.—«vÁãñè\.—Ãლ7é7C,Ÿ?^&“ѳ …bÛ¶mNNNT§ š––6sæL•+Wj0ÃÔÔ´¨¨¨sGööö7oÞTäççÿå/imm­®®z¡(ŠÇ㙚šR=¢ƒD3LMMUOцNÇ¿üòK&“ùôéSµÜ:%%%»P&sïÞ=SSSbPó†íw3û» EQEEEô,ƒÁxï½÷d2™Z±¶¶6__ßÈÈÈÂÂÂcÇŽihÐÑѱ¢¢‚ž¾{÷îW_}EOøá‡ Tž1ˆ—J¥æææöööL&³¬¬ŒŽ?~üØÉɉž¦ßß,Kyþ( sss ººúÈ‘#sçÎݸqcO¶ñË6­”””8::jƒm†……ÅòåËýüü.]ºTVVvëÖ­ˆˆe±X ‰ÄØØ¸­­-** ZZZT ( úüóÏ‹‹‹‹‹‹×®][YYIÇ¿úê«ììì   [·nñx¼/¾øâ믿¦½122òóó ////..Þºuk`` †œ•=~ôÑGŸ}öYee%Ç[°`ÁÑ£G EpppXXØùóç333/^¼Ø¹V\\ÜóçÏ5o–uëÖñùü‚‚‚-[¶,[¶LCpðèÇãOÏ3d2YttôäÉ“ÍÌÌFýé§ŸÒ‡M©T:sæL ºØÁƒmll\\\Ž;æïïÏf³U (Øíí펎ŽÃ‡÷÷÷W=·¨¨¨Xºt©£££¥¥å[o½•žž®\$‚‚‚lmmÖ¯_¯ün¢<$ÐÓj)‰D¢•+WZ[[ÛÚÚ†„„´¶¶>|xÊ”)‰„¢¨””@ V«s³ªÓôŠÄÅÅ5ŠÅb………µµµƒš·*ô÷hÒŸÏtùúú>ŸÑ+ø|¾›››Ú^ 5Ã`0¸\.½ ú¼o‚A3´Ì°aÃBCC{dÐ -Ãf³cbbzdÐ „ šA32hBÍ@È /ÉË+Óv :D?ÿÚÏ?ÿ èµ™™è/«jÈ劫W‹[[;:/ÒôÚŒ””;]ÝHd÷7ÝB͉ڲ²i¸m”’¢×—¼ô÷ŽZG‡¬¾þå?ff>ض-9'g«2Âd8;ÕŸþóôóóCÃQ£l•³vv– Ñsôw4A4ƒf dÐ „ šA32hBÍ@È 4!ƒf dÐ „ šA32hBÍ@È 4!ƒf dÐ „ šA32hBÍ@È 4!ƒf dÐ „ šA32hBÍ@È -ü²Ê7ß|3øvKq±t5·±cÇÎ;w°{íÇwÌ÷Á^Þa``bdÄÖvd|||7içטú÷Ýö¯6ÚÚPxžA32hBÍ@È 4!£‹füú믆††‰‰‰ÊHZZš±±qQQ=ÛÚÚºiÓ¦)S¦XXX¼õÖ[»wï–É^¾¨FóÒ€Á`ðùüíB þ%àr¹šËlÛ¶mĈB¡¢¨ææfGGÇ;wÒ‹D"‘»»ûìÙ³ÿýï?zô())éõ×_÷òò’ÉdÝ.¸5*-- Æ}||´r¥KGÍèèè˜4iRHHEQ«W¯~ã7$ ½(""bÖ¬Yª{Z,=:&&¦Û¥šÑO]öÀ Š¢nß¾mhh¸k×.“¢¢"e|Ĉj…;6kÖ,ÍKKKK•ÇHÕi‰DÁf³íìì"""$ ½433ÓÅÅÅÓÓ388˜.ÙÒÒbffVXXØyŽ=êêêjeeµk×.eû©©©ãƳ³³ koo'»ÝhÍ›7€r¡(J(À³gÏÔJæä䨨Øh^Ú•{÷î]²dIUUÇ›:uêæÍ›é¥ÿýßÿ}ýúõÿûß¶¶¶R©”¢¨øøø‰'*ŠÎk´páB‘H”””t óçÏ/))ÉÍÍåp8ÑÑÑÄ`·ÍPG¡Püõ¯e2™Ë–-Sé}ßØØ¨VøÖ­[,KóÒ®Ìpww¯««£§322<<<è¥<¢(™L6bĈk×®QõþûïïÙ³‡¸F7nÜ (J.—Ó#‹j Eq¹\‡C v»´e†.~7¡ùþûïoܸqýúõ .¤¥¥ÑA++«#Fܽ{W­ðÝ»wÝÝÝ5/UP*·|+** ƒÁ˜7o^yy9§«0™Ì>ú(99¹±±133300˜­££#üa{º¹¹)›ª©©ÑÔAtÔŒÚÚÚððð}ûöÍž=;***44´©©‰^¸cÇúÓ þþþçÏŸß³g¿¿·K€þûäÉe_ôá„þ …ÂÜÜ\:nddDOøøø¤¤¤$$$Ìœ9ÓÙÙ™˜0ƒ¡þjO PRRB«ÓUPüÃt7š(Š… Ι3G.—S%‘H&OžìïïO/}þüùøñã½¼¼~úé§GmÙ²ØlvGG‡æ¥Ïž=€“'O>þ|ñâÅÊu_ºtiEEŽ{÷¦M›¶víZÕ±†¢(™LÆf³íííOŸ>­ ÆÆÆ677+×H騌&^^^¥¥¥ùùùnnnÛ·o'»Ý\xžñ’3gΘ˜˜}zß–j¦½½½¶¶öÔ©SçÏŸïkvC=Õòòòþò—¿¿ûî»=¯5lذÐÐОu–Wä˜1pÌ™3G ô¶›Íމ‰éIPgÁcBÍ@È 4!ƒf¼¤±Q¬ítí|7¹víZss³VºîŠövù?Ö/]ê¤íDÔ)++;v¬:ü‹kZXÉ`f6aĈµ †‰¶! /×@uSŽ¥KݺU#  WK_1ð< ©Iœ—Ç`$%ÝÑv.ºššZÀ rs××?×v::š˜X PPÀd2ÒÓÕ ÓOÐ ¨¬l**zBŸýÈåŠÄÄmg¤ –ö+“ùû³z÷ï?)+{¦Ý”t4~ø!O&S(gŒ˜©©…ZÌGGÐw3>¬­¨hTH¥rPÍHI)42Rß••MÅÅOˆåõ½6ƒ¢¨„„©T¡ÇôÜŒ;w*Dãô€BÕ[ôÚŒ””_Œ˜ÄEÏžµäç— r>:…þš!—+ÒÓ årÊØØ°ó\¼¨×—¼ô÷ áææ«W{)gKJê/^¼·qã{ʈµõkÚÈKW`èæÏÁ'=ýîêÕßÖÖÒv"º‚þŽ&ˆfÐ „ šA32hBÍ@È 4!ƒf dÐ „ šA32hBÍ@È 4!ƒf dÐ „ šA32hBÍ@È 4!ƒf dÐ „ šA32hBÍ@È 4!ƒf ]0@ïMñññÑöšõ##–¥åLmgÑkúý=êJðwº¦OŸ¾aÆk`×v½À××wà@3\\\†Ü‘Q‚ç4!ƒf dÐ „ šfðù|ƒAœø“ BuƒÁçóûÜ—¶fXYY}ú駺Üà«ÇÐ0ƒÅbíÙ³G—|õЦéééNNNB¡Ο??nܸÖÖV…BqäÈ‘ &XZZΘ1#++‹>k8zÿøãžžžæææÄý}ñâÅÉ“'›ššŽ;öìÙ³ðÇá€Á`œ:uj„ vvv{öì9{öì˜1c†¾mÛ6eÉ´´´ñãdzÙìðððŽŽÕÆ¥Ridd¤½½=›ÍŽŒŒ”J¥¸zõ*‡Ã±¶¶Þ½{wWmvÛÑ`3@WÝ}||zòžûåË—¯X±¢¾¾ÞÞÞ>//¢¨'N°ÙìäääÚÚÚK—.9;;@ii)jç ‘Hdll\SS ª]ˆÅb“˜˜˜ººº“'OŠÅbeuŠ¢Àßß_$ÅÅÅ€¯¯¯H$:qâ466Ò%çÏŸ_RR’››Ëáp¢££U«ïÝ»wÉ’%UUU<oêÔ©›7oV[GX¸p¡H$JJJê¶Mµ æ­yßDËf…BggçÉ“'+·ÂĉÏœ9£,ðí·ßj6£££ãáÇb±X.—gggÓ…U»FFFû÷ï … …¢¥¥E.—«™QXXHQ”D"Q›.--¥Kòx<º0—Ëåp8ªÕÝÝÝëêêè錌 µu€7nP%—Ë»mS-¨yë ¨Z>ϰ²² ¹ÿþš5kèHYY™‡‡‡²ÀäÉ“5·`ll\RR²`Á‚7ÞxãÌ™3Ê8ã?X[[geeåææ:;;Ï™3ç—_~10P_kKKK022R›VâææFO¸»»×ÔÔ¨.ª¨¨ppp ûš7o^yyyç$@­_b›:d´lFuuõ‘#GæÎ»qãF:âäätïÞ=eû÷ïkn¡­­Í××722²°°ðرcʸÒý¶¶6…B‘˜˜(þþ÷¿/Z´H ô6Oú %%%ônVÂb±”G)¡P˜››Û¹:ñ$‰Ø¦†Žmš¡P(‚ƒƒÃÂÂΟ?Ÿ™™yñâEŽŒŒLKK«¯¯ÿé§Ÿ6oÞ¬¹‘ŽŽ‰DbllÜÖÖ---ª Æüùó“’’D"‘D"122277ïmªëÖ­ãóù[¶lY¶l™ê¢>úè³Ï>«¬¬äñx ,8zô(ÄÅÅ=þ¼mjèh° Qª'燞2eŠD"¡(*%%ÅÁÁA H$’/¿ür̘13fÌ8wîh<Ï (êàÁƒ666...ÇŽó÷÷g³Ùjq¹\WWWcccww÷´´4µê rjÒyš.7jÔ(‹ÖÖÖ¦Z]$­\¹ÒÚÚÚÖÖ6$$¤µµõÏ´©Ô¼á>íÕ} "b›}èh@ÍWºÁÍè†aÆ…††B›ÑÑŸa ÞÊI?¢˜0#4 ƒËåÐÓ xÌ@È 4!ƒf dÐ „ šÀÿQKLLü3ÏZ"Úe ®gäääh÷&²ž0}út—hy Ì@†:xžA32hBÍ@Èü?¤ÎÔÌ[IEND®B`‚XQilla-2.3.0/docs/simple-api/Timezone_8hpp__dep__incl.map0000644000151400015140000000061211653571064020205 00000000000000 XQilla-2.3.0/docs/simple-api/functions.html0000644000151400015140000001276011653571063015526 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- _ -

XQilla-2.3.0/docs/simple-api/SequenceBuilder_8hpp__incl.png0000644000151400015140000002267611653571064020530 00000000000000‰PNG  IHDRu¤‘LGbKGDÿÿÿ ½§“ IDATxœíÝy@gú8ð7 ÷@ä9Ä( àµ@¨@¤ˆÖªõhíº[«Öµõ¬-té¶?­U[ÏV¬QŽ ¨¨x «ˆœ¢© r†ÛrÌïñ;s0ð|þ ü3ϼóÌ<™y“ Ã0­DÖt ê4 ½ NÚ ê4 ½t4ýUhh¨¦C½6}úôÍ›7k: zê4}tùòåÑ£GS©TMUVVfii©é(è¨Óô]LLL`` ¦£ŠÚ¾}»¦C ×`|Ð^P§íuÐ^P§íuÐ^P§P!‡³oß¾¸¸¸3f,\¸ðÈ‘#ÝÝÝšJ¦  cûöí---²f®®® }!k†ÞÆP]]ÝÛV `ð½,Th÷îÝuuu;vì°±±yþüùîÝ»ÛÛÛ׬Y£é¸dÚ³g†a?ýôÓîÝ»·lÙ"uN“¸¸85‡À ×Ó¨PnnîòåËÝÜÜ,,,¼¼¼Ö¬YsëÖ-M%……Å!C¬¬¬<<ÿþýQQQQQQû÷ïçóù†¥¦¦.^¼8,,lõêÕ………øM`âî±èkÉæ¡   Ë—//^¼xöìÙ'OžD ‚#GŽÄÆÆFFF&$$tttÈi.†B¡àOï’ƒämm¡PxòäÉE‹………}úé§=’µ.¼mAAAlllii©Øzóóóããã ÆñãljݺukÑ¢EQQQ?ýôÇ“:±ïû -÷½P¡õë×÷ÝwÑÑÑÞÞÞþþþC‡ÅÿÅd2_½zõË/¿ttt$&&9rÄÎÎî÷ß_»víèÑ£+**ä,Y²ùòåËB¹¹¹?ÿüóõë׿ÿþûðððóçÏ߸q#!!D"%%%%''¯ZµJNs.—Ëáp0 kjj:xð`¯ža~æÌ™S§Nñ'%%É 5,, !túôé7º¹¹‰-çîÝ»¸ÿþ–-[ >1---!!¡½½ý›o¾133 ‘œ¸xñbÅ£ ¿€ëiTÈßßÿÔ©S»ví;vìÅ‹,XpåÊü_YYYÿøÇ?¨Tª‹‹ËÊ•+óòòΜ9³jÕªiÓ¦YYYMœ8ñ£>’³dÉæøôÈÈH“3f „ÚÚÚÎ;·téRggç/¾ø‚F£ÉoþÑG…………‡‡ðÁåååÁÁÁŠolFF†hüÄ]qYëZ±bŸqã Ä–kdd4uêT„P{{;>ñã?vttôôôü裲³³åL`€ëiT…ËåÞ¾};00ÐÓÓÓÓÓsÑ¢EGÝ¿?^üjkkçÍ›GÌlllÌçó]]]‰)...b Ä0Œx-ÙammÒÑysh×ÕÕ9::⯇>|øpùÍ“““B]]]L&síÚµøýs©1ˆihh¿¬u999I]Ž••BˆD"‰N$¶ÂÉÉ©¡¡AÎD¨Ó¨ †a;wîtrr«‰D?~<‹ÅÂÿknnþã?âE±££ƒÍfoÚ´ééÓ§#GŽÄg¨ªª"%(Jcc#1E²9>]¬¼YYYÕÖÖ:;;#„***îܹ³páB9Í úúúááá$¾š%ƒ[[[©ñËZñfBŒØ&à^¾|‰þ/^à…\ÖD¸ï €ªÒéôíÛ·ß¹sçÕ«Weeeûöí#î$O›6íÀuuu•••6lHKK›5kÖ¾}ûnݺÅf³óòò~ýõW„‰‰ BèÒ¥K¯_¿>{ö,±pÉæRc Óé|öìÙ³gÏvíÚUWW'¿yKK ›Íf³Ùõõõ'Nœ R©²b3{ölÑø>¬`¨çÎëìì”ß™{öì©®®þóÏ?EGÍ¥N`€ëiThÆ ÇŽ;pà@uuµ¥¥ePPЇ~ˆÿkÙ²e{öìY¾|9‰Dš>}úÊ•+)Š@ øùçŸ[ZZð¡Ü;wš››/[¶lïÞ½ÉÉÉ«W¯¾y󦬿Rˆçr¹ëׯçr¹“&M"f“ÕüÓO?Å_H$ggçmÛ¶‘H$Y1ˆ‰ŒŒäñxûöíkjj9räæÍ›?ùä©ë»(ÿþûï}||ˆûáR…„„|þùç\.7888>>¿Ë-6±çý@?D’3ÚƒD"mݺUu¿?]]]½p᜜-¿¿Ú}ëœíÛ·ÛØØœ>}Z© ZpßÐ^P§ZÍØØ˜øµü‰ HP§ÐRpÓ!daa±víZE&0 A´Ôi@{A´Ôi@{A´Ôi@{ÁóÈè#‰äââbii©Äebâñ,ø|#£Z%.Vû …z޵¡a#™Ü­ºµTVV†„„ÀóÈ@ÿÏ÷ bbb”µ( #µ¶ê7665ðxd3³n#e-¼·ØlƒÊJsÿ:5¯ôñã!mm.––]66¯­¬¸d²ò/!\\\&Mš¤ôÅ Rp= €Ætvv?_’™Yœ›û„ÇãOžìJ ÷²³³Ð`TE«VýVSó£š×ÛÝÍ¿~ý1“™áB)™L¢ÓÇDGûyêèÀðÔàzuëèèÊÊ*ÉÌ,¾y³œÏy&&F2DÞF xzz:¡¡´ÐPZkëk«8%åÞ‡¢RM#"|bbü½¼†i:@4®§P“övî… ¥™™Å7n< ±ÀÀQÞ!!£--µ«{ö~këk?¿11㣢|õ5êu• Êóõë1¬”g‚¶ÕiBWÿÆ7Ø 94”Ø`0€ñi”©±±#-­€Å**(ø‹B!x$%ͧÓiææÚ^žµŸ¾þ›ì––×™™Å))÷/>hkkî;aÌM€JÀõ4JÐÐОž^ˆ—g}}°0¯ÐPZ@€‡™™¡¦Cë5­½ž–ôäI]FFaJJþóçMîî¶11þ11¨TSMÇ€2A ïêëÛ32Þ”gÝY³Æ2>S§ºêi:´¾ëGu‡`3™ùiiïosŽö÷62êÇ{Ôiz­®®Å*b±Šî߯24ÔÃËó´iM ú]&tuñ/]zÀdæçä<24Ô›1cLLÌø)SÜÈd’¦C ï`|EÕÕµ²XÅxy62Ò›9sì§Ÿ˜ò<èëë0> †þFŠÉÌÝgggæ7qôh{M@_Àõ4=¨ªj€;ÑÚÚDÓqÐ P§®ªªñÌ™|«¸¼¼ÖÌÌ€Nàå™0ê4ŽÀNM-àrß `GDx÷ë€Áê4o©¬lHM½—g++“ÈH_:6q¢‹žÞ/Ï„W§ \./;» À62Ò£ÓÇÄÄŒŸ:ÕD‚l ½ N€Ðÿ=¢/ÏÖÖ&sæø2Þ~~#(”A÷ \§ µµ­™™Å§Oç=xPmooå·`ÁDggMÇ€P§Á †/ÏTª)ƒ1nЖgÂ`¨Ó„Çk™Ìü””¼úúv/¯aÑÑþQQ¾VV0€ ´Ôi0•—ײXExy:Ô,"ÂÊ3aPÕiœ@ ¼}»"%åÞùó%<ž 0pTt´ÿÌ™cuu)š ¨Ó`0ÉË«ÌÎ~˜]V^^;t¨yD„7ƒáíïï ߯5ë4ÿM3&3?7÷‰©©Nƒl qP§ÁÀ——WÉbgg—=Þ„?ʳƒ¹N^½j9w®ääÉ»Ö8:ZΙã?iÄkMÇ#¨Ó``Â0ìÞ½g,Vñ¥K^¼`a=ož_D„‡‡­¦CÓvP§EáاNÝmlìÀ°çÎõ2D»~2 lP§Á€B”ç‹K_¾lvv¶™;×Ês¯@–D `Ÿ;W"<`¨ Ôi0åùÂ…Òêêf›¨((Ï}uZügÅñl33CÃ;:ÚÂMDzÁòè0 áÏ™b±Š³²JjjZ\]©ï¿?Ê3P33ƒ˜˜ñ11ãkjZRSïÿñÇÝääÿººRçÌ=~øp+M ¸žýŸ/ÌÉyÄbåäüÙÔÔáæ6töl(ÏÊ×Ó½RRò"%%?-­ ¹¹ÓÏoDLÌø9sÆ™šh:.0p@ý'¸víO«èêÕGlv§—×°ÐÐÑPž•êttwó¯_Ìdæ_¸PJ&“¦O‡l 4pßh;¢<_¹ò¨¹¹süxçþ“Jƒ{Œ@{èé鄆ÒBCimmœ‹0™ù«VýnnnØà]Áõ4ÐRDy¾|ùak+Ç߃áC§Óœœ <«\O+ÅË—ÍééÇß©ªjtw·e0¼çÏŸ0lØMÇú¨Ó@»å9;ûa[Û›ò 4éõëîsçŠ33‹ssŸtuñüüF¬[73,ÌËÞÞBÓ¡ LÄvkëk«8%åÞâÅñ‡ÌÏŸ?~ìXGM´\O èìì:¾$3³øæÍr>_äJ ö´³ƒò¬yp=­õééLfþ_5¹»ÛÆÄøÇÄL RM5Ð:P§útttee½Už#"¼ƒƒGÃÓ’µ ÔiuŸÕÃdæ§§vvvM™âíæel Øà ¨Ó@åðß ÌÌ,¾qã±PˆŽŠˆð mi åYAÖˆ®.þ¥K˜Ìük×þ¤PÈ¡¡´èhÿ÷Þó„ßDP§ªàOB+Ï¡¡4 #M‡ä:­Y--¯33‹SRîÝ»÷ ÿÖ÷ߟ@£9h:. 1P§’55ude•fg—]¿þÃÞ”g:fnå¹€:­%ÊËkY¬¢Ó§ï½xÁưçÏŸ`c؃Ôi ii,VQAÁ_ 9 À#"Â{ÆŒ1ff†š ô ¦¦åÃñùüO‡Çfw:8üï3}£GÛïÙ³PCÑ vÄvZZ‡ÃûÛß\££ýÃýŒô4P¨Óà44´§§âåY__',Ì+4”àå¹™>=¡¢¢^ê¿H$´nݬÏ>£«9$ †Ëåeg—1™ù99ŒŒôèô111ã§Nu#‘Hš ¨ÔiÐõõíoʳî¬Yc Ÿ©SÝ á=~¿´wïÕÄÄs|¾Pò_$éîÝÍð<8íQW׊»´ô¥½½ET”_\ÜDMÇTê4èüÁbÝ¿_ed¤7sæXÃgÚ4w]M‡ÞIMMËøñ;$Ïd2iìXǬ¬µ‰ È÷øq-“™Ÿ’’W_ßîå5,:Ú?2Ò×ÚÚDÓq%ƒ:=H={Öàì¬èðÚÚÖÌÌ7åÙØXÆŒ1Pžãÿ> ß:!èè·m‹\ºtš¦¢= ±[·ž¤¤ÜËÊ*årß `GDx÷xs‹Å*òö?l£ý NFGŽÜܱƒ•—·YþgG«ªÏœÉÏÎ~øàÁK¢26Ö§Óiò°§Mû¶¡¡ãС¥S¦¸ª9TÐ+P§—ÎήµkOff!DJLŒ^´èo’ó<{Öpöì}«¸¼¼ÖÌÌ€NÃ`øxèéAyÈØìNoï-Áÿê4…Bž4idJÊ'Œ ô~ìÔ©¼²²jËÈHß &ŠÝ?{ð šNÿžL&‘H¤;¢–,™ª©hA N"EEÏ—.=ÜÔÔÁã H$Ò„ #RS×ÿ­¬lHM}Sž­­MæÌñe0¼ýüFÀ㸸ý¹¹OˆRM&“þóŸ÷cc'h6*ÐgøöéÓy o°çÎõÃÓ»ysêï¿ßâñ!2™î½k×ÉÒNP§‹ääÿ~ùå¡= nom大àåÙÆÆtöìqPž-&3ÿŸÿüƒ¢ÖÕ¥BHG‡:æÐ¡%š (MSSGzz!“™_Tô!BoüuuuÌÌ ~ûí#_ßᚊHuz€«ªj\²äPEEƒ@ û™L9’ºyóìéÓÝaìàV¬8š•U*I$Ò¯¿.÷ÖtD@ùâã½yó±ä×å)2‰DJJšƒZîmd,VQpð¿Ÿ>­—,Ò!¡{ú´ÞÇÇ Š4 Ìë' B††º!!4M‡”¯­“›[.õ™6Ï~öÙ‰õëOKhÔé‰Ç|õUêªU¿s¹|9ljDºx±T-äih¨G"¡Y³ÆÂ È€tþ|‰@ ç6*†:yòî‚û[[_«-* Ç[Ç!‡ÃinnÖT(@Yš›_ñEFAÁ‹çÄ0!“™¤½ÃQ†††––ïúÁ–ææf‡Óó|!„PHȨŒŒ’  —ššMÇÒoXZZ¾Ó3íÕ–¥ÇŽÝ{š$@˜›ûdæÌÿìÚ5ÏÑÑBþÌ@D3ê­:ÝÞÞ^^^®‰€ÒTW·ïÞ_]Ý®ÈÌB!ÊÏÿ«°ð±±–>—ÛÆÆæÝëtMMMCCƒRâ h4“œ}só.8(nôèÑïX§Õ“¥\.¿«‹3lØÿpÔÝ-À¿EÌ ü¿põõí+Wþ±zµŸ«+|\ÝD3JÊ}­ÀÀ@µ†”->žA¼æó…\üugg7~@ …Âöv.1‹ ÕÄD_ÍA*¢¬¬LY‹²±±¡Ñ`´U!Ó§c$Òàà MÒo\»vM)ËQO–Μ¢êU€w$–Q0þ4ÀéèÍÍð×Ä ä “I+Wj: Àð92€8]]ЦC¼uÐ^P§íuÐ^P§í¥Â:]QQÿ>¹ä 9ž?¾dÉ Ã.\hb¢½¿N/g[ðM(,,ÔÑÑIII!¦§§§ëéé•–¾yþWggç† ¼½½MLL&L˜ÀçóQŸú$²¶´G$©¢¢Bm«Ó¸wIluÄ×SêÉɬx÷<ÁûY‘ÞV0$ðŽÌjYGŠ"§J‰äææ&ö;³fÍÒøÞTg*¬Ó_|ñEo[¥¥¥EFFÖÔÔ?~üáǪLÕðM7nܦM›Ö¬YÓÒÒ‚jmmýä“O¶nÝ:vìX„P{{»¿¿ÿÝ»w 6nܘœœL§ÓAßúíöíۯަܪ¬¬´¶¶Vî2û©wIlUģ஠@Ù2ÉÉjÑ|uÈ(rªDUUU­š››oܸ¡ä-Ñn*¬ÓÖÖÖ‰‰‰½muéÒ%:Ž??ÏÉÉIq©¾ ¡¯¾úÊÚÚOÐ7ÚÙÙmذŸgÇŽ666W¯^5k–»»ûܹsóòòž={vðàÁ¾õ›íÛ”»QB¡°©©I¹Ëì§Þ%±U‚»F4Ud dÈ $'«EóAÖ!£È©!"zµ‘‘ Ä­Ð~½®ÓøcÀOœ8áîîÞÙÙ) ÷ìÙãééijj:yò䜜œoOeffŽ7ÎÈÈÈÎÎŽØ…ÆÆÆ†††“&MBá§|9W®\qrrÊÍÍ•ÚD">|ØÓÓÓÆÆ&11ñرcÎÎÎæææ›7oÆgàñxëׯ:t(•J]¿~=Ç›|8!!áÈ‘#GÕÕÕÅ[%''oÙ²…Bùß·T7lØpüøñ>ô[¯v¾üôôt*•ºfÍš®®®·×ÍÍØ#’.]ºäêêjii™@ì2±UÈZ¯–POb#i©¹víZ|ή®."%çD‘H¤ãÇ{zz2äßÿþ7BHô`A±X,///—cÇŽI ‹rÃOÖQ,¶L@””äîînjj:eÊ”»wïŠ-G26©)¡¿'ªÔ,E=õõk×¶nÝêäädccóÁà—­R[!iùÃçó¥6'’Jôˆ ^KžÃŶEÁS%B(&&æôéÓÄ­o&“MüWV~ʯòOw¾¾¾Ë–-Ãçìèè022*,,”ÜêK'LD]]]NNÖ“>ø`ñâŵµµC‡½{÷.†a¿üò •J={ölMM͹sçBOž<Á—/ù¢­­MOOoéÒ¥/_¾LNNFÕ××cvøðácÇŽ‰ÎI¼ž5kÖÕ«W_½z%µ!B(..®­­íàÁƒ¡ùóç·µµýòË/x6`öÝwßÍ›7ïùóç%%%¾¾¾7nܱcGxx8†aéééfff¾¾¾†åççtvvbüôéÓ’’’1cÆlÛ¶M4’¢¢"„P($Š4-± „7"„vîÜILÁ³††±Žýïÿ;dÈ>ôB¨¨¨¨ým²v¾4:^^^~çÎWW×mÛ¶)¸½Ró!ÑÖÖvæÌ¼Ã¥®BÖzåxðàÁƒäÏ£—£†ÄƤ¥âÉ“'œœ„B!†aéééööö<O꜆!„¢££›››8€jjj=X:::ôõõ÷ïßÿêÕ«C‡éèètttˆ +[”†Ôµà]'§—$—ùÃ?ˆö¿½½½hÿKM4iñm IE‰š““SWW×c‚É×ç,Åzê‡mÛ¶Ñh´’’’ÒÒÒ‰'®[·NV+©ù“””$µ¹œÓµ"9Ub†úóÏ?mmm 1 kii122Â/Šðt’•Ÿò+‚üÓÝùóç­¬¬ðüONN¦Ñhøq!˜ŠÒ “Ȩ¾ÔéææfGGG///b}4íèÑ£Ä ¿ýö›üÓYWW×£G:::Áõë׉Ÿ7o›ÍƤíã’’9 B†uww‹½Æg5jÔ«W¯ðfggûøøäç盘˜tww¯]»vÓ¦MºººÍÍÍIIIaaax[ …B6gÏžuuußœyüø1±íÄ&à„Báœ9s(ÊÂ… E;HQ·oß¶¶¶îC¿Éy&¹³D·ðS§N¹ºº*¸½Ró!tíÚ5 Ãð_¹~òä‰ÔUH(u5×i5$6&-;;;óòò0 {ÿý÷ÿõ¯ÉšÃ0„~é-ºkØl¶®®î÷ßßÜÜ, ÛÛÛX²²E‰aÈZ ÞrÒXl™îîîrú_jlbi&Ju‰ªÎ:-™¥XOýàááqöìYü¿>$^K¶’š?²šË9]+2Q‘S%†aøžZ½z5žÉÉÉ¡¡¡Ät©[õTz<Ýñù|[[Û+W®`–˜˜(¹#T—N˜DFõe|ÚÂÂbÅŠeeeü1>¥²²ÒÇLJ˜ÁËËKþôôôÊËËgΜéççwôèQ|bGGÇ“õãH£F’ÕgjjŠÂï–ˆ¾ÆUUUÙÙÙám }öìÙ¸qãŒïÝ»wãÆÙ³g7îÆ999áá᡺º:@0räH¼¹««ëË—/E#ÁÝ»w/00ðÛo¿•µ Ç¿víÚÕ«W™Lfzz:Ѷ¶¶øª¨¢¢"Ñ…+Øo86¾9/_¾Tp{eÁ/tÈä·ÒIlr&j õ$¶d*Í™3‡Édvvv²X,â´’sâÓñÞMo‚¥¥eNNÎ;wnÞ¼I&“%ÓRj¶(1 ©k‘ßKR—ùâÅ ùý/+6YI;Uê-¿þúë/bs<==£¢¢dµ’š?R›Ë:]c2Þ¢‰QðTIˆ‰‰IIIÁ0L즷œm—Sz<ÝQ(”¹sçž={¶±±ñòåËñññR·BméÔ—:ýâÅ‹={ö„„„|þùçøÑÏãõø3Ggþüùëׯ/((Ø»w/>ñÂ… 3gΔÕïb© _§âç‹æææ;wîÉä°°°ôôôòòr__ß÷Þ{/;;ûÆx:t(…B©¬¬Ä›?}úÔÁÁA4‹ÅÚ¿ÿÉ“'srr$7¡¦¦fÍš5IIIÓ§OߺuëÊ•+‰VÄÇÇýõ×ø1„P\\܉'ãââzÛoòIî,þ.!T^^noo²g“gIDAT¯àöÊ"u¼Vlr&j õ$¶d*"„âââ˜LfFF†ŸŸqHKIœÄ …)))l6{Ù²e ƒÍfË?²D)+ ù䤱Ø2GŒ!¿ÿeÅ&+i@¢J=¢å÷ƒ½½}UU>¥¨¨è›o¾‘ÕJjþHm.™Tø×J«««Ù ÅO•¸©S§¶··çææfgg‹}Â\Ö¶Ë¡Èé.&&&55õôéÓS§Nż$©/Dßð*rß[ „„„|ýõ×l6ÛÖÖ6##ðo¿ý–J¥¦¥¥½zõ*++«Ça¼ææf‰”••…‡!TPP°páÂêêj|-Rï™Èjˆ‰Ü‘õzÍš5ÑÑÑøçû'Nœøé§Ÿb–’’bbb‚ßEÉÎÎ611¡ÑhÄ–.X° 88¸²²²´´”F£mÙ²EVT[·nuwwçp8¢›  #""ðÝÝÝ^^^qqqø[[[=<<‚‚‚.\¸ðøñãM›6!„¨TjWWWoû ßLÉoÚÈÚYøÒ‚‚‚žpà@KK‹¬—º Yë•C÷½Õ“ؘŒTÄ?·åææ&z›WꜲzß5ÇÀÀ€Éd644üúë¯bi‰ÉÎ%†!6ƒØÅâ]»v‰ö¿‹‹ zû¾·dlb·ßÕ“¨j»ï-5K±žúaëÖ­^^^¥¥¥¥¥¥S¦LY¾|¹¬VRóGjsѤÂ6ûСC­­­øÕ6ööCòHQüTIìµO>ùÄÓÓ3((Hlº‚ù)öZþéÃ0>ŸO¥R‡zäÈb¢zÒ {÷ñéŸ~úÉÛÛ»»»ðÔÔT;;;6›ÝÝݽcÇggg“É“'ÿñÇòOg†ýðÃC† 6lØÞ½{ãââ,--ñaœ¬Š(ÙJ¥Jí2±×mmmK–,±´´´²²Z±bþI±––üc zzz6l VÄf³-Zdeeegg÷ÙgŸq8YQq8ww÷M›6‰nÂÑ£GõõõE‡®óòòÈd2“ÉÄÿìèèøüóÏÇŒc``0räÈ/¿ü2 66¶WýFl¾Ôw`Rw¾´ƒ>ÜÚÚúïÿ;‡Ãéq{y<ÞÔ©SMLLät2öv¾Š­BÖzåPgVObc2Rð+V˜˜˜ˆ~ôI꜒½-¶kN:5räH==½Q£F¥§§www‹ +[”†œ:-ÙK²Žb>ŸŸ””äêêjll|øÄ‰šŽ!øŽAÈÌÌlåÊ•ê_…Ö @¯@¢©îÞ½ëïï¿téÒ^Ý]V]:©ä¾7J¡m÷½ î{åË(¸ž´Ôi@{A´Ôi@{A´—”ïO×ÔÔ¨?$q¹\e- h9ÈR •”:]^^®þ8JYušø d´d)ŠA´ŒOÚ ê4 ½ NÚ ê4 ½þ? Zèè™/Q-IEND®B`‚XQilla-2.3.0/docs/simple-api/StdOutFormatTarget_8hpp__incl.png0000644000151400015140000001220711653571064021200 00000000000000‰PNG  IHDRu.ˆ¨÷bKGDÿÿÿ ½§“~üx||<qâÄÐÐPøêùóçW¯^mnnnggQ^^®>ïââÃ`TT”ƒƒÃ²eËä]V Œs±X|íÚ5777‡àààììl6›íááß­¥¥ÿIogg022}zåÊ•¨¨(SSS???###À… ^¿~­°†mö…Bqwwß·oǃ×U===ߪS]]]ÝÝÝ E"‘dee^¿~­Ij5!L&355µ¢¢B(Þ¼y3;;NeWW×´´´æææ†††¸¸¸¼¼<…tgÏžíu–””ÔØØxïÞ½ôôtù9Tc ˆ‹‹ãp8iii ÃÝÝ}É’%€!C†Œ7ÎßßÿܹsL&³««+%%åå˗ÇÿþûïáUvðàÁ¬¬,6›ÝÔÔdiiéáᨫ«K§ÓÃÂÂ’““srrV®\yåÊ…6ÕHZ½zuRRRdd¤®®î´iÓ‚‚‚Þêèoddµe˃… zxxÄÅÅ@K „æÌŸ?_,oذ¡µµÕÒÒrÆŒ3gÎü÷Í*·£28€@K „@K ¢_€ € 4ÈBƒ € 4ÈBƒ € 4ýå2¨ƒÁжD!úÃÜë7µ-A;44ììZµ-D (<®-úÅ€°DDü 55DÛBˆ :@d¡A@d¡A@d¡A@d¡A@d¡A@d¡A@d¡A@d¡A@d¡A@d¡A@d¡A@d¡A@d¡A@d¡A@d¡A@d¡A@ô1}JnnyZZ±L&ƒ›|~`ð`C¸I&“—/Ÿ:oÞd­é#ýâ?ˆÄ Ckj‚ÏŸ åå‰?îSA„-ú”#,ÆŒ±"‘HÊ/‘H¤±c­ííÍû^‘AèkutT »Ž90йïõd€¾†É/?À#“ÉüüÆ÷½‚ƒ Ð×XXÐ?&“ßX‘ɤɓ‡YX Ò–*‚  œNH$R@Zÿhd-ðÕWŸ*À××Q[zˆ 2€ Ói_~9ŠBùgð)²›Û(:¦]UÄ@;L’Éþ¹)“a“´«‡° h/¯±Tê?w!©TÊôécµ«‡° hêþó …B¦Pt¼½ÇPµ­ˆ  h &s‚TŠI¥R&]þ×o< $‰¶¤ cCC*`ôh㦦&mË! ÃÀÀ@¾ù†ÚÚÚjkkû\qqv©¡¡^ÛBĘ1cz4ÄÍÍ­ïä=½H$ðÙgõ-„()DÐãÐÚdÊ;mK :ÈÚDበD߃®! 2‚Ð   2‚Ð x<~ü844ðE‹i[NÔ×׫ü*0øonÞ¼I¡PNœ8!s¹\*•zçΉD1b„ÂOx̘1ƒD"Õ××Ã`Iï¹cï•ùp xäåå1™Ì¦¦¦Ã‡×ÔÔh[λ»0~üøõë׳X¬ÖÖVÀ«W¯V¬X‘0nÜ8¸ÛÇoß¾-¯%Š‹‹{müÚµk¼7ù@½hhh055U.÷s¼.\¸àåå%‰¶¶¶Ú–ó.À.6lØ`jjúí·ßâãã---ãââä»yzzâgΜùòË/{mÜÌÌlÈ›|€€L&{ùò¥r¹ŸóÖ8s挵µ5|dèèÑ£#GŽìèètuuÅÆÆZXX˜››ÇÆÆvuuÁƒþÅ‹mmm‹ŠŠlmmÍÌÌ/^ ?äTÖäçç;::êëëÛÙÙq8@ww·Êê/^¼044400øì³ÏðÝÅç-))ùõ×_ÇO£Ñ,--·oß+’H¤ÌÌL33³íÛ·s8œaÆÑéôï¿ÿ¾'aŸþùž={|>ŸL&ÇÄĤR)ƒÁ8{ö, µµuÉ’%¦¦¦666111b±XA lð˜˜''§/^à» R©ÙÙÙ™™™Û¶mËÊÊÊÎÎÖÕÕ•|``àñãÇå« “'O¼íÛéUj¯ã£<ªø·_îunÈGFÎ… ìíí ƶmÛäo(—Ë5j”¹¹9‹ÅêììT|—±Àp477b½±xñâgÏžYXX\¿~wìØáïïÿøñ㪪ª &ÄÇÇ×ÕÕf̘qéÒ¥7Ž;¶ªªêÎ;S¦L‰‰‰é©V{{»žž›Íæñx ¥½½=11QeõÌÌL‡ƒãø¼<J¥.]ºôéÓ§999€çÏŸÃ9´`Á¡P˜žž˜;w®P(LMM¼xñB¥°Í›7ûúúbÆår 4a Ã***ôõõ;::0 òðð¸ÿ~UUÕ'Ÿ|²qãF¼’[·nd2™|ö+tAN||<`Ë–-ø àÞ½{C† ¹yó&†a­­­4 Z¨®®î µnݺՆ£«««W©íííêÇG(*ªò[ —¡~n´··+hþꫯ„Bá©S§`:¸³——WmmmYY™½½½\°B°×©[XXØÜÜüF:ü††666ŽŽŽø”£Gæñx°\PPàää%VUUa6jÔ¨Ó§OÃWkjjäeåZ|>_WWwçÎ@&“µµµI¥Òžªûûûóù|L•`ÞÎÎλwï¶··K¥ÒË—/ã§Kee%†a‰D¡ wPVQQadd$‘HÖ¬Y³~ýz]]]@˜˜èããëêèèTWWÃ*§OŸ¶··Ç+e¸¤ùûï¿åã&ïD&“ùùùéèè,Z´è÷ €ººº•+W®[·𜜜éÓ§c¸yß“ÈÏÏïUj¯ã£rTÕ@ýÜPÖ\TT„a˜T*Å·,ß977WY0 *·¦Àû1†a›7oÖÑÑÁ·¥¯¯h:%J$øê;w”ÛQ®…aXIII@@€¡¡¡««ë¹sçzªÞÖÖ6kÖ,XV}˜Ã0.—ëâââääªrº¨,+ “J¥W¯^4iRYYÙäÉ“¹\®Ï0 {òä @$ÁvªªªôõõñJ`ÙÝÝÝÍÍ-$$D¹ ‡C§Ó/_¾¬¯¯Ÿ——'CaEEEööö2™ŒÉd¦¦¦b@9Ø«TMÆGyTÕ@ýÜPÖ\[[‹Ow– ¾}û¶\°BP¹5” ð.'ÁOžJNN^°`¹¹9¦Á!^¥°ÖÖV …OO;::¨Tj\\œ<ŸÏ611±´´üæ›oD"QOªD"ÑÈ‘#ׯ_ïBvv¶žžþô ¼¼œL&ŸÑ×]Ø›K åw¨Zõ*U“ñQÕ®®.### Ãðå^çF¯éàÎéééC‡555ŽŽ– V*÷Tå%Ðÿðüùóššô…D¿¢¾¾^ù.¸Ê`¯3ðð7ˆ2¢¿3hРˆˆM‚ï2¢¿cnnÎf³5 ¾ÈBƒ € 4ÈBƒ € 4ÈB£âwÐïT"ˆƒ  ŸEÒÛÞLF þ—@çBƒ € 4ÈBƒ € 4ÿ4ñ¥þX~t}IEND®B`‚XQilla-2.3.0/docs/simple-api/classSchemaValidatorFilter-members.html0000644000151400015140000001710011653571063022401 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

SchemaValidatorFilter Member List

This is the complete list of members for SchemaValidatorFilter, including all inherited members.
atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)EventFilter [inline, virtual]
attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)SchemaValidatorFilter [virtual]
commentEvent(const XMLCh *value)SchemaValidatorFilter [virtual]
endDocumentEvent()SchemaValidatorFilter [virtual]
endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName)SchemaValidatorFilter [virtual]
endEvent()EventFilter [inline, virtual]
EventFilter(EventHandler *next)EventFilter [inline]
namespaceEvent(const XMLCh *prefix, const XMLCh *uri)SchemaValidatorFilter [virtual]
next_EventFilter [protected]
piEvent(const XMLCh *target, const XMLCh *value)SchemaValidatorFilter [virtual]
reset()SchemaValidatorFilter
SchemaValidatorFilter(bool strictValidation, EventHandler *next, xercesc::GrammarResolver *grammarResolver, xercesc::MemoryManager *mm, const LocationInfo *info)SchemaValidatorFilter
setLocationInfo(const LocationInfo *location)EventFilter [inline, virtual]
setNextEventHandler(EventHandler *next)EventFilter [inline]
startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding)SchemaValidatorFilter [virtual]
startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname)SchemaValidatorFilter [virtual]
textEvent(const XMLCh *value)SchemaValidatorFilter [virtual]
textEvent(const XMLCh *chars, unsigned int length)SchemaValidatorFilter [virtual]
~EventHandler()EventHandler [inline, virtual]
~SchemaValidatorFilter()SchemaValidatorFilter [virtual]
XQilla-2.3.0/docs/simple-api/classLocationInfo__inherit__graph.png0000644000151400015140000000457711653571064022161 00000000000000‰PNG  IHDRhu-63³bKGDÿÿÿ ½§“ 4IDATxœí[LÛÇ¿+ÐP („P bŒÆøD¢ VñA!@ÔDÁB|oÛ ÀCb ¢€ Qˆˆ\ÜloÁËVN»'b õV6r±-´Ði{fgN¡e9ÐÁ¬ßÓš5«_ÿý1k:cÇÂh4fþ8Ø;ÀR‹C‹C‹C„cºðôéÓ¼¼<{Ea9gÏž £g‰–H$[·n]ìP¬§££#%%Å´‡c>èÂ… ‹•gÉÐÑÑ1§ïãÁâÁâÁâÁâA'‹‡††B144$‹çû*Û‘ŒFãÅ‹wíÚõsÑfÁŠ-N¡PDEEQm—˜˜ÈlýÑÑQ‰DróæMk²BœÁ`P*•TÛÍÍ-55•ÙúÓÓÓ  ¬É˜8µZ]PPwíÚµ™™½^_]]ŸŸ¯V«©‘¯^½JII‰ŒŒŒ½}û6ddd@LL Ìžªæ5@,K$’ƒîÙ³çÎ;æIַ̘Vv¾0&®¸¸xdd¤¬¬¬°°°«««®®®±±ñÙ³gùùù—/_þôéSmm-LMM?>88¸¶¶6==ýúõëW¯^€æææïÖ¤ú_¼xQZZš––V^^®R©ÌÃÌ0§¾µ²ó‚q$I>yò$33ÓÇÇG$%%%µ¶¶>|ø099Y$œŸïàà P(¨ÅÏŸ? /_¾P=2™ŒšªÓÓÓ¹¹¹{÷î­¨¨8vìØ|kRm‚ lç±1ÀFÙy(nbbḃ#‹KJJ …\.¯ªª ˆˆ¨¬¬”Ëår¹¼¸¸xxxt:I’gff¦ºº¦¦¦¨šÆô-,ÖDK»e§êÑ£GMÛÛÛ³³³¯\¹räÈ.—»mÛ¶ýû÷¡Õjsrr´ZmhhhZZðx¼ôôô¼¼î?z8Çñþý{g± Åƺº“¤$õuuìœl÷úõû¿ÿþ燂áaew÷{»Æ± Åýþû.בjs¹Ž÷îýǾy,Â:q$ihnîÖéôÔ¢N§on~M’û¦2‡uâ^¼èûöMkÚóí›öÏ?ûí•Ǭwï^7‡3+‡C47wÛ+5Ø%N«Õ=xðIêM;IÒðàÁ_Z­Î^©,Â.qI¯VKš÷kµº¶¶ÞÅÏcv‰kjzíèhá·dGG¢©‰]³•EâT*í“'ï,~’¤¡­­W­ž^üTÖ`‘¸ÇÿK…˜£Óé?–.fÛ°è$||R©üÿÈo¿5ÀÅ‹1t«ër>…’Y‚™«•Ï_aêeÅ 'ð÷÷°_"[°hª.-°8D°8D°8D°8D°8D°8D°8D°8D°8D°8D°8D°8D°8D°8D°8D°8D°8D°8D°8D°8D°8D°8D°8D°8D°8D°8D°8D°8D°8D°8D°8D¬^‘900 ‘H9) C·ÚŽÂÃÃE"‘åuF+Ô××/nȹ8:º9:ºÙ7C}}½5?ß¹”•=W/>¶ïR‡÷qˆ`qˆ`qˆ`qˆ`qˆ`qˆü¬8ÂggçÍ›7÷ô0sà ™Lfñ€€ ™LÆxÙùÂÀ÷òåK…B¡P(¤RipppBB³Gh·ê]Pø¿\žžžÞÞÞàíí}éÒ%//¯‘‘oeo0FGG™ªÆ ïã¸\®“““›Û?§J:.''ÇËËK(æääèt:¸ÿþ† –/_.‰jjj`öô1ŸJ¡¡¡@ýmæ@Ä7Ö®]ëééYPPPSSàæævîÜ9ºTKKËš5k„BaVVõ|f°}®jm- ôôô¨T*•J544”‘‘‘””D¯-,,Œýøñ£T*Ý´iÓ©S§Ôjõ²eËÊÊÊ EUU‡ÃQ«Õýýýô{ÑmóýŽýýýt;11Q©TVVV@||¼R©,//€¯_¿R/Œˆˆèëëëìì ÊÍÍSÍöG³q®Ê€8Sx<^oo/½6$$D¡PPíÖÖÖ7Žq¹Ü¢¢"êfí*•J¯×ÿŒ¸7oÞFê™ ¦íþþ~ê…R©”þDAAAL‰c`ªÒcrr2---99™^õþý{ê;wÇŽr¹œÏç···wvvúúú†……=þÜÁaVó?†mV®\ \.wN›†¾‡HHÈà cw£crçâârèС·oßÒ^ ÐZÇÇÇ;;;5Á`hhh;|øðîÝ»ÇÆÆ¨Á$Iã¢61èë룟Fðó0üåàêêªR©è§¬ÄÄÄœ>}úÇR©422²´´” ˆˆˆˆ¦¦&¥R933Ãår]\\ÜÝÝàÖ­[J¥²¤¤Äbeºæ|ÉÎΖÉd]]]gΜ9pàZ X›Ã?¾£·)£Ñ¨×ë]]]år9µ¨T*“’’ø|¾‡‡Gjjêää$U900ÐÉÉ)$$¤¥¥…™——çîîØÒÒ³wm:nË–-<Ïüm·© •••þþþ 33S£Ñ°åËÍü¸#‹Ø‡ÏUù•ŹººROßX~eqB¡°¬¬lŠÿÊâ,,,,‘ïüCfEEÅâäXr|GÜÂ-uXtÿ¸¥ÞÇ!‚Å!‚Å!‚Å!ò?’_v\sbYIEND®B`‚XQilla-2.3.0/docs/simple-api/ATGYearOrDerived_8hpp__dep__incl.map0000644000151400015140000000041611653571064021455 00000000000000 XQilla-2.3.0/docs/simple-api/XQQuery_8hpp__incl.map0000644000151400015140000000300111653571064016775 00000000000000 XQilla-2.3.0/docs/simple-api/classInteractiveDebugger__inherit__graph.md50000644000151400015140000000004011653571063023374 000000000000008ecf9e29ed8486bba66019f0bc3091ccXQilla-2.3.0/docs/simple-api/ATFloatOrDerived_8hpp_source.html0000644000151400015140000005447211653571063021141 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATFloatOrDerived.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _ATFLOATORDERIVED_HPP
00021 #define _ATFLOATORDERIVED_HPP
00022 
00023 #include <xercesc/util/XercesDefs.hpp>
00024 #include <xqilla/framework/XQillaExport.hpp>
00025 #include <xqilla/items/Numeric.hpp>
00026 
00027 class XQILLA_API ATFloatOrDerived : public Numeric
00028 {
00029 public:
00030   typedef RefCountPointer<const ATFloatOrDerived> Ptr;
00031 
00032   /* Get the name of the primitive type (basic type) of this type
00033    * (ie "decimal" for xs:decimal) */
00034   virtual const XMLCh* getPrimitiveTypeName() const = 0;
00035 
00036   /* Get the namespace URI for this type */
00037   virtual const XMLCh* getTypeURI() const = 0;
00038 
00039   /* Get the name of this type  (ie "integer" for xs:integer) */
00040   virtual const XMLCh* getTypeName() const = 0;
00041 
00042   /* returns the XMLCh* (canonical) representation of this type */
00043   virtual const XMLCh* asString(const DynamicContext* context) const = 0;
00044 
00045   /* Promote this to the given type, if possible */
00046   virtual Numeric::Ptr promoteTypeIfApplicable(AnyAtomicType::AtomicObjectType typeIndex,
00047                                                const DynamicContext* context) const = 0;
00048 
00050   virtual Numeric::Ptr add(const Numeric::Ptr &other, const DynamicContext* context) const = 0;
00051 
00054   virtual Numeric::Ptr subtract(const Numeric::Ptr &other, const DynamicContext* context) const = 0;
00055 
00057   virtual Numeric::Ptr multiply(const Numeric::Ptr &other, const DynamicContext* context) const = 0;
00058 
00060   virtual Numeric::Ptr divide(const Numeric::Ptr &other, const DynamicContext* context) const = 0;
00061 
00063   virtual Numeric::Ptr mod(const Numeric::Ptr &other, const DynamicContext* context) const = 0;
00064 
00066   virtual Numeric::Ptr floor(const DynamicContext* context) const = 0;
00067 
00069   virtual Numeric::Ptr ceiling(const DynamicContext* context) const = 0;
00070 
00072   virtual Numeric::Ptr round(const DynamicContext* context) const = 0;
00073 
00075   virtual Numeric::Ptr roundHalfToEven(const Numeric::Ptr &precision, const DynamicContext* context) const = 0;
00076 
00078   virtual Numeric::Ptr invert(const DynamicContext* context) const = 0;
00079   
00081   virtual Numeric::Ptr abs(const DynamicContext* context) const = 0;
00082 
00084   virtual Numeric::Ptr sqrt(const DynamicContext* context) const = 0;
00085 
00087   virtual Numeric::Ptr sin(const DynamicContext* context) const = 0;
00088 
00090   virtual Numeric::Ptr cos(const DynamicContext* context) const = 0;
00091 
00093   virtual Numeric::Ptr tan(const DynamicContext* context) const = 0;
00094 
00096   virtual Numeric::Ptr asin(const DynamicContext* context) const = 0;
00097 
00099   virtual Numeric::Ptr acos(const DynamicContext* context) const = 0;
00100 
00102   virtual Numeric::Ptr atan(const DynamicContext* context) const = 0;
00103 
00105   virtual Numeric::Ptr log(const DynamicContext* context) const = 0;
00106 
00108   virtual Numeric::Ptr exp(const DynamicContext* context) const = 0;
00109 
00110   /* Is this xs:double not a number */
00111   virtual bool isNaN() const = 0;
00112 
00113   /* Is this xs:double infinite? */
00114   virtual bool isInfinite() const = 0;
00115 
00117   virtual bool isZero() const = 0;
00118 
00120   virtual bool isPositive() const = 0;
00121 
00123   virtual bool isNegative() const = 0;  
00124 
00125   virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0;
00126 
00127   virtual const MAPM &asMAPM() const = 0;
00128 
00129   virtual State getState() const = 0;
00130 };
00131 
00132 #endif //  _ATFLOATORDERIVED_HPP
XQilla-2.3.0/docs/simple-api/classBaseInteractiveDebugger__inherit__graph.map0000644000151400015140000000023511653571064024266 00000000000000 XQilla-2.3.0/docs/simple-api/EventGenerator_8hpp_source.html0000644000151400015140000002353411653571063020766 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

EventGenerator.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _EVENTGENERATOR_HPP
00021 #define _EVENTGENERATOR_HPP
00022 
00023 #include <xqilla/framework/XQillaExport.hpp>
00024 #include <xqilla/framework/ReferenceCounted.hpp>
00025 #include <xqilla/runtime/ResultImpl.hpp>
00026 
00027 class DynamicContext;
00028 class EventHandler;
00029 class ASTNode;
00030 class QueryPathNode;
00031 
00032 class XQILLA_API EventGenerator : public ReferenceCounted
00033 {
00034 public:
00035   typedef RefCountPointer<EventGenerator> Ptr;
00036 
00037   virtual ~EventGenerator() {}
00038 
00041   virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context) = 0;
00042 
00043   static void generateAndTailCall(const EventGenerator::Ptr &generator, EventHandler *events,
00044                                   DynamicContext *context)
00045   {
00046     EventGenerator::Ptr gen = generator;
00047     while(gen.notNull()) {
00048       gen = gen->generateEvents(events, context);
00049     }
00050   }
00051 
00052   static Result createResult(const ASTNode *ast, const QueryPathNode *projection,
00053     DynamicContext *context);
00054 };
00055 
00056 class XQILLA_API ASTNodeEventGenerator : public EventGenerator
00057 {
00058 public:
00059   ASTNodeEventGenerator(const ASTNode *ast, bool preserveNS, bool preserveType);
00060 
00061   virtual EventGenerator::Ptr generateEvents(EventHandler *events, DynamicContext *context);
00062 
00063 protected:
00064   const ASTNode *ast_;
00065   bool preserveNS_, preserveType_;
00066 };
00067 
00068 #endif
XQilla-2.3.0/docs/simple-api/inherit_graph_34.map0000644000151400015140000000026311653571064016454 00000000000000 XQilla-2.3.0/docs/simple-api/MemBufFormatTarget_8hpp_source.html0000644000151400015140000003075211653571063021531 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

MemBufFormatTarget.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  * 
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  * 
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: MemBufFormatTarget.hpp 553937 2007-07-06 16:02:19Z amassari $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_MEMBUFFORMATTARGET_HPP)
00023 #define XERCESC_INCLUDE_GUARD_MEMBUFFORMATTARGET_HPP
00024 
00025 #include <xercesc/framework/XMLFormatter.hpp>
00026 
00027 XERCES_CPP_NAMESPACE_BEGIN
00028 
00029 /*
00030  * The MemBufFormatTarget is a derivative from XMLFormatTarget, which user code
00031  * may plug into DOMLSSerializer to retrieve the serialized XML stream (from DOM Tree)
00032  * in a memory buffer.
00033  *
00034  * The MemBufFormatTarget is initalized to have a memory buffer of 1023 upon
00035  * construction, which grows as needed. The buffer will be deleted when
00036  * MemBufFormatTarget is destructed; or will be reset when the reset() function
00037  * is called.
00038  *
00039  * The MemBufFormatTarget returns a NULL terminated XMLByte stream upon request,
00040  * through the method getRawBuffer(), and user should make its own copy of the
00041  * returned buffer if it intends to keep it independent on the state of the
00042  * MemBufFormatTarget.
00043  */
00044 
00045 class XMLPARSER_EXPORT MemBufFormatTarget : public XMLFormatTarget {
00046 public:
00047 
00050     MemBufFormatTarget
00051     (
00052           XMLSize_t            initCapacity = 1023
00053         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
00054     ) ;
00055     ~MemBufFormatTarget();
00057 
00058     // -----------------------------------------------------------------------
00059     //  Implementations of the format target interface
00060     // -----------------------------------------------------------------------
00061     virtual void writeChars(const XMLByte* const toWrite
00062                           , const XMLSize_t      count
00063                           , XMLFormatter* const  formatter);
00064 
00065     // -----------------------------------------------------------------------
00066     //  Getter
00067     // -----------------------------------------------------------------------
00075     const XMLByte* getRawBuffer() const;
00076 
00084     XMLSize_t getLen() const
00085     {
00086         return fIndex;
00087     }
00088 
00095     void reset();
00097 
00098 private:
00099     // -----------------------------------------------------------------------
00100     //  Unimplemented methods.
00101     // -----------------------------------------------------------------------
00102     MemBufFormatTarget(const MemBufFormatTarget&);
00103     MemBufFormatTarget& operator=(const MemBufFormatTarget&);
00104 
00105     // -----------------------------------------------------------------------
00106     //  Private helpers
00107     // -----------------------------------------------------------------------
00108     void insureCapacity(const XMLSize_t extraNeeded);
00109 
00110     // -----------------------------------------------------------------------
00111     //  Private data members
00112     //
00113     //  fDataBuf
00114     //      The pointer to the buffer data. Its grown as needed. Its always
00115     //      one larger than fCapacity, to leave room for the null terminator.
00116     //
00117     //  fIndex
00118     //      The current index into the buffer, as characters are appended
00119     //      to it. If its zero, then the buffer is empty.
00120     //
00121     //  fCapacity
00122     //      The current capacity of the buffer. Its actually always one
00123     //      larger, to leave room for the null terminator.
00124     //
00125     // -----------------------------------------------------------------------
00126     MemoryManager*  fMemoryManager;
00127     XMLByte*        fDataBuf;
00128     XMLSize_t       fIndex;
00129     XMLSize_t       fCapacity;
00130 
00131 };
00132 
00133 XERCES_CPP_NAMESPACE_END
00134 
00135 #endif
00136 
XQilla-2.3.0/docs/simple-api/StackFrame_8hpp__incl.map0000644000151400015140000000003511653571064017443 00000000000000 XQilla-2.3.0/docs/simple-api/classxercesc_1_1XMLFormatTarget-members.html0000644000151400015140000001206111653571064023164 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

xercesc::XMLFormatTarget Member List

This is the complete list of members for xercesc::XMLFormatTarget, including all inherited members.
flush()xercesc::XMLFormatTarget [inline, virtual]
operator delete(void *p)xercesc::XMemory
operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
operator delete(void *p, void *ptr)xercesc::XMemory
operator new(size_t size)xercesc::XMemory
operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
operator new(size_t size, void *ptr)xercesc::XMemory
writeChars(const XMLByte *const toWrite, const XMLSize_t count, XMLFormatter *const formatter)=0xercesc::XMLFormatTarget [pure virtual]
XMemory()xercesc::XMemory [inline, protected]
XMLFormatTarget()xercesc::XMLFormatTarget [inline, protected]
~XMLFormatTarget()xercesc::XMLFormatTarget [inline, virtual]
XQilla-2.3.0/docs/simple-api/classXercesConfiguration__inherit__graph.map0000644000151400015140000000055511653571064023537 00000000000000 XQilla-2.3.0/docs/simple-api/inherit_graph_40.md50000644000151400015140000000004011653571063016351 000000000000000488f80a21436cf3acf610d6acb3e032XQilla-2.3.0/docs/simple-api/inherit_graph_26.md50000644000151400015140000000004011653571063016355 0000000000000012ac5b03209b8e7af19f92b0dc6a9129XQilla-2.3.0/docs/simple-api/structStaticType_1_1TypeMatch-members.html0000644000151400015140000000516111653571063022760 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

StaticType::TypeMatch Member List

This is the complete list of members for StaticType::TypeMatch, including all inherited members.
cardinalityStaticType::TypeMatch
typeStaticType::TypeMatch
XQilla-2.3.0/docs/simple-api/InteractiveDebugger_8hpp__incl.md50000644000151400015140000000004011653571063021250 00000000000000058d490ae5b0120e093369a88c121cfcXQilla-2.3.0/docs/simple-api/classXQillaConfiguration-members.html0000644000151400015140000001466411653571063022123 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

XQillaConfiguration Member List

This is the complete list of members for XQillaConfiguration, including all inherited members.
createASTToXML()=0XQillaConfiguration [pure virtual]
createDefaultURIResolver(xercesc::MemoryManager *memMgr)=0XQillaConfiguration [pure virtual]
createDocumentCache(xercesc::MemoryManager *memMgr)=0XQillaConfiguration [pure virtual]
createItemFactory(DocumentCache *cache, xercesc::MemoryManager *memMgr)=0XQillaConfiguration [pure virtual]
createSequenceBuilder(const DynamicContext *context)=0XQillaConfiguration [pure virtual]
createUpdateFactory(xercesc::MemoryManager *memMgr)=0XQillaConfiguration [pure virtual]
operator delete(void *p)xercesc::XMemory
operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
operator delete(void *p, void *ptr)xercesc::XMemory
operator new(size_t size)xercesc::XMemory
operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
operator new(size_t size, void *ptr)xercesc::XMemory
populateDynamicContext(DynamicContext *context)XQillaConfiguration [inline, virtual]
populateStaticContext(StaticContext *context)XQillaConfiguration [inline, virtual]
testInterrupt()XQillaConfiguration [inline, virtual]
XMemory()xercesc::XMemory [inline, protected]
~XQillaConfiguration()XQillaConfiguration [inline, virtual]
XQilla-2.3.0/docs/simple-api/inherit_graph_43.png0000644000151400015140000034546411653571064016502 00000000000000‰PNG  IHDRum¼À$ÏbKGDÿÿÿ ½§“ IDATxœìÝw\çÿð'„!3ì ‚‚"ÊR†Õ"në Š­¶Eûµj­ WE­¶¸+*­Õ¶.´AA± *ˆˆ¨D,AÙÊ ‰@Öýþ8iÊÃÈø¼_ýãryƇóʇ{îîyH†!ˆ•ÑCäW@ü ¿âù?i¢ÉàééIt@Ì’““?\ã$x~zƒD"9;;ƒòòò¬¬¬š!¿@¯H$*•êããCt @ ¢££}}}?h„û¯€øA~Äò+ ~_ñƒü ˆäW§ªª*%%%‡+W®“É 255•——777 kkk#$’Þ u¥¸¸˜D"!„’ò+ˆM}}½‚‚•JÍÎÎþôÓOýüü’’’úÔHII‰¦¦f_»îPkíÚµ?މ‰yõêÕï¿ÿÜ×6Rfffõ©ªª††† —éß‘! ÌßböÑG:u ÿ8vìØšššxyyõ¾>Ÿ___ß×®;Ôºzõjbb¢½½=BHKK+""" àèÑ£}mvÀhiiéêêvØ.ü±G†(pý b³~ýzá=aaa¿ÿþ;¾ÝÔÔôùçŸkjjá¶$)**ÊÊÊJ]]}ß¾}!ggg„ Ùp8œàà`mmíàà`‡Ó›Z***‘‘‘‚läîî^VVÖ]ƒ|>ÿرcVVVÊÊÊ...iiiÂóè¿#´½Œ‡Ë内…kii-_¾¼©©IDõ.uîñÈàURSS322úð/÷!`z!D¥REhllD544tW`éÒ¥Ó§OñâF³¶¶Þ±cÞì’%KOž<‰ª¯¯§Ó鿜÷îÝ»xñâW¯^Ñh4{{ûM›6õ¦VRR’œœœ§§çþýûKKKE4xâÄ mmíØØØªªª„„CCC„pƒÂÛ½ŒgÿþýãÆ£ÑhùùùNNNAAA¢«çææ¶áp8‚N;ot×^`Ö¬Y·nÝb2™"þ±¨Tê‡Î€_ Wz̯ ¡ÆÆÆ.¿e³Ùd2ùéÓ§øÇØØX333¼Ù´´4¼žÕ:dKKËêêj|;99ÙÖÖ¶7µ0 ãr¹YYY»ví²¶¶&“ÉQQQÝ58nܸӧO *ž9sFD~íeö‹ÿR( îî0ü zùºPPP™šZxçÎóœœRÿzxX88Œ’“ƒ'CAÏ ¿À;oß²32ŠRRž¥¦VW7éêR>úÈÊÃÃÂÕÕ†A_A~ k†åçW$'$'?+(¨”’"Mjéé9†Á{‚ü ޏ\~vvIjê³””gtz-…¢àá1æãÇ~ô‘¥††ÑÑ¡ò+`a2Ûoß~ž”ô45õYSÓÛ1ct§O;}úXSx©ˆäWÀÐW\ü:))ÿæÍ‚ÇËÈd)1sçN˜6Í .UÁ‡ù04ñùXNÎËøø¼””‚²²z--e//kOÏq®®æòò²DG†>xÊ0¤`–›[žwýzÞ«Wõºº”3ÆyyŸ2ÅLV~ãׯ€¡Ã°ÇË®_ÏKHÈ«¨h41Ñœ3gœ96&‘H$¢£ÃäW€ãpx·o?ÏMIyÖÔôÖÁÁtÞ<Û3Æë5€`_’‡Çãgg¿¼~=ïÆ Zmm³¹¹ÎܹæÎ`e¥Oth¼ù 10 ËÉ)‹{’W[˰´Ô›3gÂܹÆŒÑ%:4:‚ü ¹¹¯®]{ríZnUU“¹¹Îüù¶óçÛ™›ëÝ‚ü ¤0 {øðe||^BB^MMóøñ†ÞÞ^^ÖFFêD‡@Ï ¿ìì’øø¼ÄÄüÊÊÆÑ£µ?ùÄnî\[’Þ µµÍW®<‰‰É)(¨ÔÖVž;×vþ|[SxÁH"¸~ŒÉlÿûoZLÌ£{÷è ²³gÛ,^<ÉÅe4™  ù@ŒÖVöõëyׯçݹó´´ÔìÙ6ÞÞ“'›AZCäWÀ€Â0,#ƒ~éÒÛ7 X¬öiÓ¬æÎàå5^EeÑ¡ N_äÙ³ª‹üý7­ªªÉÚÚÀÇÇqîÜ ºº¢ã"Æo¿ýFt)00èz ò+àÃzýºåÒ¥ìK—rŠŠjttT–,qX²d< mõå,ȯ€‚Åj¿qƒvùrNff±¼¼Ì'ŸØ/Y2iÒ$S))È+!D"‘¨TªÑHŒèèh___ ÊYð~@œ¸\~ZZáåË9ÉÉ<êTËÈÈ€3¬åäà· ^àŒˆGIÉ›˜˜œØØGeeõºß~;cÑ¢‰††jDÇ1 ¿Þ “Ù~ýzîÅ‹>|©­­¼`ýâÅmlŒˆŽ ‚A~ô>9ðÅ‹®_Ïc³¹3fXŸ9óå´iVðö*8ȯ€¾)-­‹ŠÊЉɩ­e¸ºšÿøãâ™3Ç++ÃÛ«üäW@¯¼}ËŽ}téÒÃGJõôT—.u^°ÀÞÌL›è¸¤`$Ѓìì’h{û°­[ctu)/®ÎÊÚ¶qãLH®‰Dòöö~#¥¸¸Xðâ,“É 255•——777 kkkTìL¸îû&¢}1v$Ñàúеº:&•ú :ú!^kmm°mÛüyó&P( DÇ5¼\¾|™J¥~úé§¿Z»vmYYYLLŒ‘‘QaaáºuëŽ=Š›™™ijj*\^ZZ:44T\õ¦ý’’GGǺº:qu*Y ¿þƒËåÿý7íüùû™™ÅмŸŸóo¿}Ó-eÕªUkÖ¬™:uª®nÇ‚«W¯&&&ÚÛÛ#„´´´"""ùUKK«s•ððpqÖ›öù|~}}½¸z”80> xçùóêï¿¿âà°sÍšs#FÈDF<~¼cëÖ¹\ ´aÃKKËÀÀÀÎ󩨨DFF ˜»»{YY™ˆ¦ö׮]300hllD]¼xÑ‚Åb êvé‹‹3fŒ¶¶öºuëÚÛÛ{l_ÀÙÙ!$HÃ'88XGGG[[;88˜ÃáàURSS322úr`$äW†;6›÷ÄÏï×?ÞãíÓOîÞÝ|æÌ—óæÙÊÊÂÁÈdòéÓ§SRRΜ9Óá«“'O¦¦¦̘1ãÀ’+‹Åb ár¹‚¯æÏŸÿñÇoذ¡¶¶vÆ çÏŸWTTCddäõë×ãããÿþûoÁªˆö²²²B555øÇÇ¿|ù2'''55õÖ­[Û·oÇ÷ÿûï¿700èPQX‡l·k×.2™\[[Ûù[A/øÎÖÖw§G^^Þˆ#zl¿»ü:bÄ^’¦P(x6›Ý›#&qùƇFÒÓ‹V­:cgöóÏÉŽŽ¦‰‰ß%%m\¶Ìf‡䤤¤þüóÏ{÷î VÅ0Ìßß???ÿH"‘¼¼¼º¤íRyyù±cÇ>þøã7 ïÇ[¨¬¬Þ‰gA„PQQ‘¾¾~¿ MMMAVnllÄGB222ýns0ƒü €ãñøÏžUõX¬¡uüxª»ûO¾¾¿”•Õÿðâ'OvîÛç³KSSÓßÓÓSð{›ËåîØ±ÃÆÆF^^ÞÄÄ$44T0‹DŽß=zt„ ø¨ì•+Wôôô0 Û½{·ªªêèÑ£ãââÐï©S§FŽ©©©¹víZ¼ Ñí 68Ž«««’’^€Á`¬X±BMMMCC#00Åbu@MâÆ‡a}u$R]séÒ_Ÿ=«æñøqqëL;|K¥>¸xñAIÉ77‹eË\`ÖÁF"ÖW/..677$iÖW|pÏžUùúþÊ`¼åñøÒÒäßOÇó+†aôóçï'&æ+*Ê-]êâí=ÉÂÞ^%—˯«k©¨h¨©aTW7UU5IKkø° ¿ a23‹?ûìT{;—Ëå!„¸\^BBÞÓ§•qqObcUW7¹¹Y;¶ .X‡Ã«©iÆÓgM £ªª±ºº¹¦¦©²²éÍ›ÓÖVÖÕU%“%`¦I•U«V…¤‚ÿý$W®<^·. Ã0>ÿßQ2))Òܹ‡Édòüù¶Ë–¹LœhB\€C†a¯_3jkeeõµµŒÚZFmmsm-ãÕ«úššæööwï*)Ééë«é訌©ai©«£C9RC[[EWWE03‰´±û~ mmí_ý•è($äW$ÆÁƒ‰‡ÝDu¸ÅáðÔÕ32¶ªªÊÚÂçcoÞü'‰âéóõk†pUQab¢…'Qww mm]]J‡$ †3ȯH.—z鯿²º{¶£¡ámnnÙÔ©–—ãñøBWŸŒ×¯ñ„ÚÜØø–Í~—DutTtt(::*cÆèΘ1O¢ÆÆ::*#F Í·6¸@~`°kme¯^}öÖ­BN’ÉR§Og@~í€ËåWV6 ]}þ›DX!D"‘´µ•ñ!\S]]<}êèPtu)pôœ: j Fëòå§?.<Ó%—šZX[ËÐÑQ°Ø ‡WUÕ$H¢‚Aݲ²úææ·x))’‘‘:~õÙ!‰êéQ`ð!ÀY$þ®ýÆáÈ”•™´·Ë‘H˜`á/ #u.)++­¨(›’R°t©Ë€†8PX¬öŠŠFÁÕ§ðÍQA%“¥ Õð$êæf±d‰ ~sTGGE]]IF†Lì†ȯ@‚¥¤¤8;; ÍIþø|Ri© …Â'“Yd2F&óÉd¾´4’’âKK󥤰§OŸØÛÛœ;÷»’Ò2y(ÌuÚÒÒVUÕ$:‰JKK¨áWŸ66FxúÄÿ“¸$šššÚÔÔDtãÑ£GD‡Ð70`1·ƒÿàÑÑÑDÒ7 Fkii`·Ë÷[d Õÿ?qRItäH!óhn‡¥ÈA/IP΂ëW†2‡ûˆD"ùø8 X§ýxIÔÑÑ´Ë—D‡0 Ê  ¿04µ·s/^|päÈÍÚZ†¿¿³Øó+¼$ €h_jX¬ö³g3Min~‹_#UT4ô¯©^¾$J¡(àC¸ð’(_:jkÇŽ¥FEÝçry\î¿ï󔗋ʯïù’($Qºù€¡ ººéðá›ý•aXç7ekkð’( þ‡C\—OiŠýÑ’.{¡ÓéøÚ™tÍ’’7‡']½ú„D"á+êtöö-ÛÜ|“`8WEE^O¢¯¯:nœ§ç8}}Š®®ª¾¾ªžžªŠÊˆ$ÃäW0ôeffšššö\®/JJJëêêDô"--*ºÖûhm%WT¨xx„#„DÏî„ š9a‚‘®.ÅÀ@MAAV,D€ü †>---]]1¯1Îçóëëë{ì%<<\t­~ËÈ ?®ÉbI#Ä—‘!óº¾pý—­­‘««…XºôÆP˜ó€~øä“O¾ûî;|»½½]MM-!!!Äáp‚ƒƒutt´µµƒƒƒ9BˆD"EEEYYY©««ïÛ·!äì쌶‹‹‹;Œw¨Õ¹/¼Jjjª±±qFF†ˆÆ]]Ííìj]\ª®^]2kÚ4+%¥!2Yªó\NRR¤ÊJ˜'€ù },‹ù_!??¿˜˜üžhRR’‚‚‚——BèðáÃ/_¾ÌÉÉIMM½uëÖöíÛñF®^½zÿþý}ûö…††644dee!„jjjºë…ËåvޤC­îú:xðà™3gìììzüÑÈdÌÑqÔš5ÓÏŸ,(Øÿí÷ßÏ÷ò²ÖÐPBII‘ð‡’H$RMMs¿  ?0$BˆJ¥öX¦ËÓžÅb)**fggcöé§ŸnÞ¼/oiiY]]o'''ÛÚÚ⤥¥aÆf³Bt:N§ ÿïÓ¹‹øøxA™ÎÝõ… Ñh½ùñ½½½½½½»ûöÕ«ú˜˜œ-[.»¹ýh`°!44º7mÄî¿‚¡N§›™™uØ©  °`Á‚Ë—/;6>>þÉ“'øþÒÒR===A1 …‚oèëë#„ddº}ѳs/ÅÅÅ¢ë®/KK1,ãjd¤nd¤¾hÑD„“Ù.úX€ØÁø0¾üüü._¾|íÚµ‰'š››ã;555ét:þçgcc#>¢‹’’ÿÿ,Ýõ%"‹$äW0ô½yó¦æ¿ðý3fÌhll [¹r¥ ð¢E‹6oÞ\VVF£ÑfΜyüøq-ã·rûJP«O}õUyyCl죭[cÜݲ´Ü|挨§¥bãÃ`蛟L–ÒÓSíwË€~€õ_ƒõ_ÛÚ¤6<|øò޽Ⲳ:>“‘‘æryþ¿–’">ìçí=pKÔàú‰”‘AòD‡Å’Îɹ #CÆgáGq8]¼Äçczz” €áò+ÉÕÕÜÒ²®²RåÍ¥Þ”ô¨ŒÍæéë«ê뫪¨Èèð_Tòò<3³Æä䃧OgüúëíövŽðštDD¤´¶²ñmY5]]ŠžßÐÕ¥ªéêRÔÔ*|†8ȯH6 ¥gN={ö^DD*‹ÕÆçw|¨BQQŽNg³¹,|M:|qºW¯ê32è¯_3**+K×ÑQ9RC°Xº¾¾ªŒ yÀ>$äW†eåkÖLÿüs׋DD$74°0ìßeøtuUB²²Ò::ŠQ‡ê¯¡Ù!õþóOMzzQ‡Ô+È»øº°x64TST”ÈŸ€Áò+’ŠÏ'q¹R/^¼f±Ú››[™Ìv«]F†¼b…kf拜œR6›‹¿‹T[Ëpwÿ),ì“éÓ­ºlJF†Ü]êE57¿^½¶¶¹¬¬>=½¨²²Q0"Ý]ê50PSR‚Ô †#ȯ@"µ´´ee½–V':ÂÔÖ2 ÕG¸¹ý$Ø)%E’’’’’"!„0 #‘ŸBLf{IÉ›‰Gö¯/ EÁÆF¡Ë¯ºK½UUM‚Gš©Wwñm-XÎ a_Ähkãää¼ÌÈ ß»GÏË+Ç0$'×Ï„1è訌W_U¥XQ¡Éãññ!\>ãó»X –DB¶¶#UU»Î‘ïCtê­©a¼~ý.ïâ ˜F«¨¬ld±Úñ2rrÒøÍÝ©wäH EüÑ0 ¿‚A­½›]r÷nQzzQAA%‰„ììF:;›…„Ìž4ÉDAa¸<êë³.\8°jÕ™‚‚JKK“gÏ?!„( EaÌ]7·Ž_u—z«ª™Ìÿ¤^ÁÓUƒÏÚÚ*Ö%Ö  t‰™”`þ&0èp8¼¬¬xN}ö¬’ÇÃÆ7ts³pw·°³)|3D"?^GG‡Àh ”ŸŸïîîÍåò¹yèÐM|6Ä. '%o0ÀöC[ºª¦¦ùÿ0£¶–QZú†ÁhÃË ¶ÔK"‘6lØàââ2Àý‚Þ¸ÿþáÇ!¿‚á‹ÏÇž>­HO/º{·èÑ£Ò·oÙFFêcÜÜ,œGki)wYkØÎŒ(àììüÝwßáÛE«WŸc0Þv¾•••–‘!O›f5kÖøéÓÇ*+Kä]ÏîRoYY}só[¼Œ¬¬´žÞ»Ô«­­¢««"|62RÇïL‹Ý0Ÿ§s‹ŽŽöõõ…ü †­<;ûåÇ/33‹ë뙺ºWWsGÇQnn#Gjäih`­_•–ö\øXò’%“œG§¤<»u«°­co?rÞ<Û9sl†Ì¤ÿxêŇš_½ª|~ýºÿ-'#CVWW<Ø,œz ÕÈäþ/&ùu0ƒü †‘ŠŠÆÛ·Ÿ§§=xðâõëyü:rªX`•µm[,Ÿq¹ø³N¤³g¿üøã±¡ææ·7oüýwþíÛÏ9ž££éìÙ6sçNÐѲ³··skjš»L½oÞ´àˆRoçY5 Ô¤¥{H½_3ȯ`ˆkldedÐÓÓ‹ÒÓ‹ÊÊêåä¤G¹»[¸¹YŒgð>— Kyyå«V©®nâpx22äÂÂd… ´¶²oÝ*üûïüää«ÝÉiÔüùvsçNÐÐèÕlÆCC—ZáƒÏåå ‚1€'´‚ü:˜A~CƒÑvçÎsAN•‘!;;vw·pp0µ±11B†è‡8«}Ë–˜K—º»[üõ××Ýãñø•ÆÇç]¹ò¨©éíĉ&óæÙΛg«££2Ñ6--mUUMÕÕM55Í••‚Æêêf£/#''­§§ª«KILüåôé0ȯƒäW0Dtx†Ïÿ÷Ñ_{û‘0…ÞÀ»v-—Ãá.^<©Ç’oß²““ â➤¥òù˜‡Ç˜ ìf϶‘——í±î°òö-»²²±¦¦¹ºº߈ˆØræÌȯƒäW Áð×i²³Kð'•ÚÚ8#Gjà÷S'O6VãCCKK[bbþµkOîÜùgÄ™9s&,Yâàâ2ú=|;ôr|˜Åbíܹ3))éÅ‹cÇm zN IDATŽ]¸papp°´´˜'!~=IEEÅÍÍíèÑ£¦¦¦½¬K§ÓÍÌÌ{þúë/??¿Î%Ÿ& ¿‚>øçŸš‡_¦§á¯Ó¨ª*¸¹Y„…-€G‡$•w‰öÅ‹×11bc?âÄ‘‹;,\hóöÉ®]»´´´nݺ…gS ///kkëS§N­ZµJ¼}iiiéêê"„ôôôNžŸ“››ÛÒÒÂ`0Š‹‹-Z4iÒ$ à †¬¬ìÊ•++**Ο?zýúµpwxݹsç2Œ˜˜„P]]à«%…#a2™Cí2~áð8Ž ñν9L&SÄÁ§R©De:È¯àææV<§zx„l00Øàåup÷îø»wÿa±Ú‰Ž F%%¯w¶Þf`°ÁÇ'òÚµ'Ãóϯ^æWát…ËÌÌÔÔÔì.¿ZZZVWWãÛÉÉɶ¶¶ø·4 Ã0.—«««›ššŠaØìÙ³ÃÃÃÁÈÈÈxxxÐét ÃÚÛÛ ™L&Ç»sçBˆN§wί·o߯0ŒÇãá_u™_ñHº µ»¯ñâãã{̯¢…hæW¸ÿ:¬±ÙÜJ3és¹|#OÏq[·Î8ÑD]]‘èÁ fjªµuëÜ f\½úøÜ¹ÌU«Î˜šj­Z5ÕÛ{¼Õ#LUUUWW777wúôéÂûsss---…÷`B¨´´TOOOð‘By÷Ø ^…L&/Z´(66ÖÆÆ&%%åĉ‚’žÆÉÊÊ}õÕWL&ÓÎή»PõõõBRR½ºu(¾ËP»‹¿sxÅÅÅ¢;}(-ȯÇÃ{ò¤ìá×wïåä”¶¶² Õ¦Nµ\³fš“Óhmí®gÒ ; ²þþÎþþÎ4Zùï¿§oß~eß¾Ÿ}6åóÏ]»[˜aZºté?ü0uêTü†¨ŸŸßüùóÃÃÃÏÍr¹\iiéÊÊJAMMÍ´´4<555ÕÔÔàûedÞÍÍâíí½téÒ±cǺººŠ µµÕÇÇ'::zÞ¼yíííþùg—Åú´ú ’.Cí.þ~èñP Nð|Ó°€aV~üxª¯ï/cÇnýä“£‘‘iªª ;w~rÿþ¶ììíûöùÌ›g ɼ£#Gü³³·¯Xázþü}GÇ][·ÆTV6× °}ûöššOOϤ¤¤¢¢¢Q£Fùûû·µµ}ùå—ªªª¡³gÏ2ŒˆˆA•E‹mÞ¼¹¬¬ŒF£Íœ9óøñãÚtssãr¹»ví è1€ööv6›-++ÛÚÚ†jiiÁ¿ÂŸ ~]†Úcü=öþMƒQi00ÊÊêÎË <=~ü6=½oÇŒÙxúܹÌçÏ«y<>ÑÑ¡¬­óçŸ;7~ûí…ÒÒŽ·‡ÔÓýW“Éܸq£µµõˆ#F½uëV|êƒÝ»w«ªªŽ=:..Nðk™Á`¬X±BMMMCC#00Åbu¸+‰aØêÕ«ååå †p0Â÷M…:tH]]ÝÈÈ(22ÒÏÏO[[›ÃḺº*))u®‹zqÿUð±s¨Ýíì2¼Î·];Ö›CÑï¿ÂüMCMuuSjjazzQvvIm-CVVÚÉéÝLúcÇô¸bÄáðbcýòKÚË—o>ÿÜõÛo=ÕÔ†àMý~ÏïÏf³?~Œ¿‹Ò?[·n---ŠŠêw CÌßÞikã;–º~½'¾.G/55½Å§Ñ̤okk¼d‰ƒ»»Å¤I&𤠊Œ Ù××ÑÇÇáúõ¼Ÿ~J8þþÊ•nëÖ},¡ ¼‹¬¬l¿“k[[[UUÕüqñâEñFÄòë ’“óríÚ¨²²zww GÇQ¢ ·´´ee½ÈÎ~)<“þܹ¶0“>lH$Ò¼y¶žžã~ÿýîÑ£©W®< žµdÉ$X—ð}yRÆd¶«¨È{xŒÙ¹ó˜I ffÚ±±ßÄÇçnÝ÷xëÖyÞÞD€˜A~%Lffñúõjk† %W„âñ0_ß_x<þ„ Æ_|á>eйƒƒ©œüc!eÞ<[gçÑaaWׯ¿œ\ðãK45aµ`0tÀ¯l¼}ËÞ±ãjTT–´´T‡ÌŠ“‘‘š3Ç6<|‰’Œ›¡LKK922`ñâIÁÁÔ>ÚûÓOKæÎ@tPˆÇ{å×’’’””q…2LhhXíÝ›VSÓŒa‡ÓErEq8¼çÏ«†srMII))µÏÄæã?5ª‡'Ò 4}ºÕ½{[~ü1aÕª3Ó¦Y8à«£C!:(Þ×{åלœ±¯ <„‘Hd%%G'>¿çÂÏŸW3m**Ãô5Áß~ûíÒ¥KDG1tP©ÔÁœ_Bòò²?ü°ÐÕÕ<44ÚËëà¾}>3fXïE ãÃ0Top8¼C‡’¸(//ÓÖÆãñþͱd²™LBˆÄãñûù|,+«x8ÿŠñööŽŽŽ&:Š¡ O3¶ËËËÚÑÑtóæ˜Ï?ÿÝÇÇa×®…**òDÕ+¾¾¾¾¾¾DG¸ÿ:@ddÈ¡¡³7mšsü8ÕÇǧ¥¥­¾žY_Ïlh`54°ÛuuÌ7ošëêXMM¬ôtúpί`xRSSüõ×å¾¾ŽAATW×Ãýg϶!:¨À‚ K_‰¡¬<âÿÉÈÈvŠ÷¬JœG_½ºöܹ@&³}Á‚ˆ "’’žòùp_ Ø{ R©½i!”››Ûò_†ýõ×_ÆÆÆ|>ð¸¸8}}}‡ƒaØÞ½{/^üêÕ+foo¿iÓ&¼‘%K–466žý‹ºz[ÓÎ Ì©…âñx9997oÞŒŽŽ.,,<{ö¬¿¿— ŸÅÅÅx;]ž‚^ÅÝ8qâôéÓ·oß–““ë±—&‰D¢R©>>>=–JJÞüñGztt6‡}ò‰ýòå“'L0":(0L ÐýW<ŸuØ©  °`Á‚Ë—/;6>>þÉ“'øþÒÒR===A1 åÝJUøÕ¤ŒŒL/{üò•••-**úꫯ˜L¦p•m–——ÛÚÚ ¾µ±é8ñiw±YZZvŽÍæ9’¬ªêõøq‰„zü«¦¦†2|'5¥P”ÔÕ{õŒî‡>µX,V||¼···“““““Ó¶mÛÂÂÂBBBðüÚËóAÄØFûé§ŸîÝ»‡'×Þ÷B£FiíÞ½(4t6•šýçŸ/fYYéûù9-Z4Q]]‘èèÀðBðüÃ~~~ëׯ·µµ8q¢¹¹9¾SSS3-- ÿ¥ÙÔÔTSónÆ)©~Þ-nmmõññ‰ŽŽž7o^{{ûŸþ)øªC›&&&yyy&¼[á¹   CSÝÅ&"ëãde¥ƒƒg…„Ìùé§ßX,K—¶´´’Éä.×WG£¿¾/?åòþ[â:µ0 ó÷÷·´´Äÿð"‘H^^^¿ýö›è;œ"ÎÀ˜LæÒ¥KÏœ9c`` ØÙï³nØRVñå—î_~éþÏ?5—/ç9’¼cÇÕ)SÌ—,™4ožíˆpÜÀ@ ç›Þ¼ySó_øþ3f466†……­\¹RPxÑ¢E›7o.++£Ñh3gÎ<~ü¸ˆ–™Lf½···³ÙlYYÙÖÖÖ°°0„~w¶³Õ«WÇÅÅÕÔÔ$&&nß¾½C>ÅÖlÔ(•~XH£í:}úË låä¤I$™ }ôÓ‡>µ”””–/_îëë›PRR’™™äçç×§{®Y³æË/¿ôððÞùÞgÝð5fŒîÖ­s= ûóÏ/TU‚‚¨¶¶a!!ÑùùD‡†÷¹yÛûç›Dô¨¤¤$üŒƒÁX±b…ššš††F`` ‹ÅÂÁVls8WWW%%%áúì9t躺º‘‘Qdd¤ŸŸŸ¶¶v—mr¹Üýû÷›™™)**º¸¸dee¡ÿ>ßÔ9¶Î§ˆ>ž4ime_»ödÙ²ß ¿30Ø``°žoÂúò|ÓœZ\.wÇŽ666òòò&&&¡¡¡­­­Ý5(|>ow>»|¾ !$+++'¤Ç^zs”†ÃóM½QQÑpøpÒäÉ{ôô¾1ãÀ¡CI/^¼&:(0d ÄóM@@Ä“&ÕÕMW¯>¹téáóçÕ‘&N ãð¬¦X «ç›zðœœÒ«W_¿ž÷æM‹µµÁ‚vóçÛ©R`ý×ÁBOOõë¯?úúë^¼x}õê㊠˜€‚D"98˜:8˜îÙ³˜F+¿t)çÔ©»{ö\·°Ð7oÂÂ…GÒ":F0@~tFÖÞ¸q&ÑQ0,ØØÙØmß>ÿîÝ¢kמœM‰aØÈ‘#=Úeùââb|:*ÁFwÞ©+= )àºg°˜8ÑäÖ­½{oœtú—\B::”yól÷íóyô(ìþým¡¡³B&ÍœyÈÖvûªUgΟ¿_YÙ(Ö`]PQQ‰ŒŒ¬¯¯Ç?º»»ãÉ•Ë内…kii-_¾¼©©IPåæÍ›fffjjj?ýô¾‡Ãáëèèhkks8„‰Dúã?¬¬¬´´´ÂÃÃÏ;gjjJ¡P¾ÿþ{¼Öõë×íììôôôÂÃÃñ~~~—/_æñÞÝ?ŠL°Ðeyœ`x–Çãíß¿ßÂÂBYYyÊ”)<è®®³³3BHWW/ÐÔÔôùçŸkjjµµµám¦¦¦gddtyô: wh¶ó‘éM³ÀÀÆåòòò^;–²|ùIsóP=½o¦^»ö¤¡IttH„•J]&))ÉÀÀ@NNÎÓÓsÿþý¥¥¥øþýû÷7ŽF£åçç;99 Úœ;w.ƒÁˆ‰‰AÕÕÕa¶wïÞÅ‹¿zõŠF£ÙÛÛoÚ´ /éççÇ`0N:…òñña0'NœÀk1 YYÙ•+WVTTœ?!ôúõk ÃåääîܹƒaXaa¡””TMM †a]–§Óéxjl:tH[[;66¶ªª*!!A__!$º.néÒ¥Ó§OñâF³¶¶Þ±c^`Ö¬Y·nÝb2™¡ÜÜÜ!§sší|d:4+ú_‡J¥Lîƒü:Œp8ïr­O¤±ñFƒ áx®mnn%::$Coò+†a\.7++k×®]ÖÖÖd29** ð1cÆÄÆÆâž={&ØFݾ}Ã0ü“N§cfiiY]]HNN¶µµÅK>~üÃ06›Ýa›N§···2™LwçÎAS†-\¸pÍš5†íÙ³gÚ´iøÎ.ËwÎj§OŸühgΜA‰®‹GE&“Ÿ>}ŠŒ533à Ðh4ÁÞA|||ùµó‘éЬh–_áù¦aDZZJðÂÏÛ·ìGJïÞ-JO/ºp!‹D"Á ?ˆ‹ÅŠ÷öövrrrrrÚ¶m[XXXHHˆ¿¿YY™¹ù»§­¬¬¬¬¬µð‹B)©ïÙ•––êéé >R(ïV¾SVVFÉÈÈtØFÉÊÊ}õÕWL&ÓÎÎN8*??¿µk×9r$66600°ÇòÂÊËËmmmmllzS·¶¶–Çã=ÿhffVQQo[ZZ Šu¾ÿÚã£ÔÝáf¸ÿ:L)(¼{á'1ñ;í‡?þX)xáÇÊj‹¯ï/& ?ô†aþþþùùùøG‰äååÅårBúúú¥¥¥øþÜÜÜ={öju~ESSSpõÙØØØ›%_Z[[}||‚ƒƒ?~)üÕœ9sX,VTTT^^ÞÂ… {,/ÌÄÄ$//Oð±   7uuttÈdrII þñÅ‹ø¶à‚þéîȼg³b—)©«+zzŽóô‡zýºåÁƒééETjöÁƒIŠŠröö#ñ~Æ7”èwÑJJJË—/÷õõ=tè••UMMMPPŸŸB( `ëÖ­&&&¡o¾ùfìØ±"ÚY´hÑæÍ›8ÐÜÜèààÐã>íííl6[VV¶µµuçΡ––w‹Ñ*((|òÉ'ß~ûí´iÓ´´´D”ǯ‰…­^½:88˜B¡899åæænß¾]t]&“©¤¤$##ãëë»nݺ“'O²X¬mÛ¶-]º´¯SÞl—GfýúõïÓò‡2cÐ@B•–Ö;—¹víy[Û0=½oÇßxúܹÌÒÒ:¢C€0¨÷_¹\îŽ;llläååMLLBCC[[[1 kkk Ò××§P(~~~‚6d‚mƒ±bÅ 555 ÀÀ@‹Õ]IáíC‡©««EFFúùùikk ¢ºqãBèÔ©S¡v.ßù®'—ËÝ¿¿™™™¢¢¢‹‹ ~½Øe]‡ãêꪤ¤„7ÞÐР¡¡¡§§·aÆÖÖÖwR…Îth¶ó‘éЬhvÿÞ½RVVŸž^”ž^tçÎ? F«ŽŽŠ£ã(77‹éÓ­ôôT‰Ž€Ó›÷_Á`6`ï¿Âø0è•‘#5FŽtY¶Ì…Çã¼[uàûïcCBþ]uÀÍÍBUUèH`P€ü ú†Lþ÷!çÖ[^ IDATä¶6VþðáË»w‹¨Ôó‚UMa5=À0ùô߈2ŽŽ£Guxá'2ò™L;öÝ ?NN£deáL /ð[ˆþ¾ê@}=33³8=½(9¹àøñTyyÙI“`ÕÀðùˆŸ††Ò¼y¶óæÙ"„jkÙÙ%ééE§Oß۳纒’œ¼ðú ¿‚KGGEk!?~kÏžëZZÊÎΣÝÜ,<<Æ©)ˆäW0p!óù^ûðáËôô¢Ý»¯…„´á!;8˜º¹YèêRˆŽÞäW@))Ò˜1ºcÆè.[æÒÚÊÎÎ~™‘A¿w~ñâ M˜`4eй««ù¤I¦#F ® Ï — ¿‚ÉËËzxŒ©­ÍÛ¶í;IZVVÿÎãû÷õ#"tëë/±ÙÕD8Á¬2 ȯ`¡R/¶ Ž¢â2€§û÷ï>|˜è($ÞîÝ»Ož(x?H’«W¯&&&ÚÛÛ#„´´´"""Ž=Jt\ÝÒÒÒÒÕÕEéééíÝ»wÞ¼yÝ•ÔÔÔ ÀÐ\¿I¢¢¢Y__tww/++÷9Npp°ŽŽŽ¶¶vpp0‡ÃáóùÇŽ³²²RVVvqqIKK#‘H£¬ÂÛ«#„H$RTT”•••ººú¾}ûB\.7,,ÌØØXKKkùòåMMM"ªw@&“µµµ;ô+bX˜Çãíß¿ßÂÂBYYyÊ”)<è®/¼njjª±±qFF†¸Ž6à½` T*µ7gcRR’œœœ§§çþýûKKK_íÝ»wñâů^½¢Ñhööö›6m:qâ„¶¶vlllUUUBB‚¡¡!BˆN§ :Þî\Ã0„Ð’%KñÉðêëë÷ïß?nÜ8–ŸŸïää$ºznnnKK ƒÁxþüùÔ©SwíÚÕ¡_ÁvçC‡ ǯ¯¯ïïÜ^eÖ¬Y·nÝb2™ïœïþOƒBïïs¹Ü¬¬¬]»vY[[“É䨨(|¿¥¥euu5¾œœlkk;nܸӧO *ž9sFD~í\Ã0„PZZ†al6¯;fÌ˜ØØX¼Ø³gÏÛÝU¦¢¢B§Ó±^çW ‹ÎñwÙ^…F£‰ñ8Þ܃ÅbÅÇÇ{{{;99999mÛ¶-,,,$$Äßß!TZZª§§'(L¡PØl¶­­­`M‡1¡ع:¾_5Êȼ[&¯¬¬ÌÜÜß¶²²²²²]N§›™™!„Þ¾}ûóÏ?O›6M0 Ý9†ÊËË»Œ¿»¾fJU@/ÁýW 10 ó÷÷ÏÏÏÇ?’H$///.—‹ÔÔÔį1 kllÌÊÊ200ÈËËT/((lãµ*++{:WÇ÷KIýçÿ}}ýÒÒR|;77wÏž=¢« (((|õÕWååå¯_¿î.†LLLºŒ¿»¾ȯ@b())-_¾Ü××7!!¡¤¤$333((ÈÏÏÿvÑ¢E›7o.++£Ñh3gÎ<~üøÊ•+ƒƒƒãââjjj7mÚ„RUUE={–Á`DDDï\½Ë¶nÝúôéÓ§OŸ~óÍ7‚‹Ñy󦦦¦¦¦æÕ«W{÷î522ÒÒÒê.†V¯^-ÿöíÛû*€`< @—zy_ËåîØ±ÃÆÆF^^ÞÄÄ$44´µµÿŠÁ`¬X±BMMMCC#00Åb±Ùì]»v™šš*))¹¸¸\¸pïb÷îݪªª£GŽ‹‹tÚ¹:†a!Á•"¾ÝÖÖ¤¯¯O¡PüüüEW’’²±±ÉÊÊÂËwŽ¡óýW.—»ÿ~333EEEü:µË¾„oèŠå8Þ ƒõ Á íëëûAÏÆââbssóa~ÂÀqà`|?ȯ€øA~Ã…™™Œ‹ äW@¼†V^^=ÑQ€8Áü€0l6÷æÍ‚Ë—sÒÒ eeI$¼¾ : ¿TV6þùgFTT“Ùæînqôè2&óùÒ¥]̉ ò+P99/Oº{ãMMMqÅ ×€==U„PttÑ¡€8A~äÖ­Â#G’>|9q¢É‘#KçÎ #C&:(øP ¿‚ ð„ZDDrAAÕ´i–qqëL‰ >8ȯàzð dçθ¼¼ò9slò³¶6]¾Ãã ¹ ¿‚¢´´nÏžë y®®‰‰ßo(º¼‹‹KttôÀÄæbÖÖÆùù盿ü’ff¦³mÛ¼>‚EIÃäW N·nnÝÓÐÀ ™õùç®d2L`¦`|ˆ“Ù¾eËåË—sæÏ·Ý¹ó Ñ‘ ¿1xøðåÚµQ­­ìsç§O·":  ß÷Âåò÷î½±hѱѣµRR‚!¹î¿‚þc0Z¿þúì½{Å[¶Ìýê+wx»`|ôS~~ÅŠ¿+(ÈÞº2j”ÑáÀàãà?RS ½½#ŒÔ¯\Y É:ƒü úìÒ¥‡Ÿ~jöl›èèÿih( F0> úæÄ‰Û»v]ûî»7Î$:¼àúôÁo¿ÝÙµëÚÚµÓ!¹€hðü0è­¿þz°q#uóæ9ß|3èX`°ƒñaÐ+TjöÆÔÝ»®XáFt, `|ôìîÝBC/}ýõG\ —`|ôàŸjæÍûyΜ ‡} 3H@/A~¢¼yÓ2{öáQ£´¢¢VIKÃhôüÆÝâpxÿûßYò/¿,‡ä }Ï7níØq•F«¸~ý[uuE¢c ùtJÍ>}úÞéÓ_˜›ë Hô]xú´rÓ¦Kÿûß4OÏqDÇ žo±ÙÜ™3))ˆ‰Y##C&:H0> :úé§„ªªÆ””H®Ðo_Á$'üöÛãÇ—ª H0ÿzó¦eúô}®®‘‘Üõ;wvïÞ=À[ÉÉÉD‡ÀÐׯà_Û·_!“¥vï^4ð]×ÖÖ¦¤¤x{{|×ÃJyyyVVÑQ0,@~ïܸA»v-7:ú¾íMT×ÃDtt´¯¯/ÑQ0,Àû9!„š›ßnÙrÙÇÇaÊ3¢c€¡ò+@¡Ý»¯c [@t 0DÀø0@99//^ÌŠˆXªªª@t,0DÀõëpÇáð‚ƒ£§O»hÑD¢c€¡®_‡»ßO//o8>è@`Hë×a­¦¦ùСÄo¾™n` ³I„˜˜˜,_¾üÍ›7DÕ³ªª*%%%‡+W®ô£‰T\\,öØä×amÏžëêêJ«WDt }™™Y]]]QQñçŸ2 {{û¦¦&¢ƒú’’MMMÁÇúúz;;;*•šýé§Ÿþ{wÕú>ü Šd_²F¢B7QÚ¯h_q%Ú—Û^—n»ê¶ï·ÅmQ!%{¶²f× »‘=ëÛlç÷ÇÜß|݃3Ïç¯3gÞó¾±<Þ÷¼ç}mllÞ½{ÇÁlãÃÃWjj©Ÿ_êãÇ›Fät,ý ++;vìXA”””æÍ›7oÞ¼[·n={–ÓqýFkhh`¼trrš?¾‹‹ ýå¤I“jjj®_¿nnnΡìý×áëÂ…éÓÕ—.Êé@Žo×®]¡¡¡ô—ÍÍÍ›6m’‘‘QVVvppèìì¤P(NNNªªª²²²öööôžnQQý’îÇ|||OŸ>ÕÑÑ‘••½|ùòóçÏÕÕÕÅÅÅO:E/@&“ååååääÉd2ýª/^èèèHII]½zAcccAèÿ âççwàÀîa;99=yò„~BïÝ*((\¾|Ac¦ ×ÐД”¼téR/!¸ †¥·o?+*JK+ãt ÿòòòbæ§AÂÂÂîgRRR$$$èǶ¶¶ .,..ÎÎÎÖÓÓ;sæÌµk×tuu³³³?þ|AAAAkkëýû÷—––âp¸“'OÚÚÚÚÙÙ8q‡Ãáp¸½{÷âñxA$$$qww'wîÜa¾é5kÖ;v Çggg[XXÜ¿¿—ÂD"‘~páÂ…˜˜;;»„„„ììì³gÏÞ¹s‡ž5»ººH$’PGG‡““‚ ­­­=ÆŒIH¶âи4àŒšš– ŽÜ¾Îé@¾ÇüýW[[ÛÚÚZÆ»vvvÒÒÒ ‡êèèèììtppPTT·±±aÜ=þ¼„„Ä„ ‘n÷_}Á ÂæÍ›%%%¥¥¥wìØÑÖÖÖcI2™ljj***ʬ¬¬lݺuŠŠŠcÆŒ122 b¼uóæM)))ggg99¹ŸÅÌ|HƒÿœƒÇ‡þ÷oÚŽ÷}ó&;>þÄèÑ#9ËÐ÷%…ŸFVƒÏ¶ñáa¤ººùåËäÇ-¸-¹ÀÐùuùûcÅmlfp:ú ¿MžžÉ»w/àt,0ôA~.<ø //W`X_bX¨©iyñ"ñôé\Øy­«k}ý:ÝÅ%[@@ŒÓ±f ¿ |”½~½ §ùE##ó\]ãbcóGŽœ4I A¾_<xŒ}µµ7·ø]»æÉÿNŘš^Ú´É…B¡Ýºe“•uÎÖVƒJmáth€®øƒ Xêñã ‘gq:¤´ô›³ó‡€€´#~ûÍhÓ&S55™¾/ùuˆkh ººÆ>lÎÙÎknnÕ;ïCC³Æ“>{vÕš5Ó„……8°ä×!ÎÝ=AHh„Ý̾‹²FnnÕåË¡‘‘y:: ÷ïoX¶LŸŸÿ§÷YÍÌÌØÛ0T[[Ëé. ¿e$ÅÍ-ÎÎnæ˜1£ØßzEEÓÕ«oüýÓ´µ\]·þú뤷aPQQ±´´dgxÓ¤¤¤¶¶6§£`X€õ‡‡²—/“NœðKIq’‘eg»­­7o¾{ö,NNnÌ‘#KÖ¬™ÖKŸ†$è¿Y(Š>~³j•!›“k``Æ™3íí]þ¹dëÖÙBBð3Žàoß“_PPûÏ?ölk±¼¼áÈŸ Ö¬™vòäryyX/0|A~²=Š15ÕÔÖV`Os>>)§Nù+)Iúûï1c<{®ùuhÊË«ŠŽþòüù6´U[ÛrèЫøøÂ#GïÜ9ÄX´ ¿Q..'N»`ËgŠÆÅìÛ÷BHh„·÷nè¶t5† ººV?¿ÔmÛæôò< &=ŠY¿þ¡‘Ñø÷ï!¹@wЂž?¶²šÎº&ÚÛI‡y¾}ûùâÅu6pѶÀ% ¿5dW×x{û™¬{0æÛ·V;»Ç••M/^ì05È¢V€§A~j‚‚2 „{{V-ˆøõkão¿= RiÁÁ`u~ø¸ÿ:Ô<{öqÉ’)òò⬨‡«\¶ì¶¤¤ÈÛ·‡!¹@/ ¿)ÙÙ_³²¾ÚÛ³d+º‚‚›ªªÒ/^ìaE0dÀøðòüy¢¶¶‚‰ÉÌk.*ª³²rÖÕUruÝ:j” æõÀýסƒ@è H³µ5Ƽf<¾ÁÒò¾ººì³g[ ¹3 ¿~~©‚XZa[mSS›Ý#991w÷í°):0 òëÐáá‘°b…˜–[½¶·“Ö¯H£¡žž»8²‰,ð(ȯCDjji^^5æå9âÇ7<{¶UJj4¶5ÀÐ󛆈çϧNUÑ×WŰN7·ø×¯Ó_¾Ü©©)aµ0@ÿu(hjj ʰ³Ã²óúéSÉéÓÇŽ-3G Ãj`˜€ü:x{§Œ%´zµ!VÖÖvìp53Óݽ{VuÀ°ù•ç¡(ê陼j•V“{©TÚÞ½ÏEDFÞ¼ù«wà€¡ ò+ÏKM-+(¨±µÅl›ë×ߦ§—?y²YLL«:`¸ùM<ÏÓ3YOOIOO “ÚŠîÞ}ñâ:EL*€á ò+okkë ÎüóÏ%XÕvøð+ss=Öm¿3x%%%ïß¿çtÜhÇŽœð?_y[XØg‰²ví4LjsrzÝÑAºvÍ“ÚX$55uçÎœŽ‚A~€«@~åmÞÞ) N’”Ä`ñ‡¨¨>)’’£.œ4øªÎž ¢Ñh/®|Uæ](Šz{§¬^m(((0Ȫ"#ó¼¼>¹ºnÅdœýWÞ•’RZVVoe5ØÝè:;ÉÇû.[6ÕÌL“À _y—·wʤIŠƒìõÞ½Èææö¿þZƒITè ¿ò¤ŽRppæà;¯ÅÅuwï¾wt\,'7“ÀÐA~åIaaŸ;;ÉkÖ ö±×“'ý54ä7m2Å$*®ÂÇÇWTT„am?ªrÀó›xR@@ÚìÙedDSIx8.&&ßÛ{÷ˆCù߬’’##£úúúAÖ“ ®®ÎÙ<ò+ïùö­5::ÿî]ÛÁTÒÕEqrz½lÙTSSM¬ãN4­¡¡aðõÈÊÊŽ;–³1xÈPî¸ U!!Y£F r!gç¨oßZÏœY…UT\ËØØAFj$“ÉŽŽŽòòòrrrŽŽŽd2A>>¾§OŸêèèÈÊÊ^¾|ùùóçêêêâââ§Nê½ò…Ë—/#B¡PœœœTUUeeeííí›››Œ¡¹¹yÓ¦M222ÊÊÊEEE|||‘‘‘ªªª†††[·n¥—$‰""",ùh,…^³bÅß¿ÿî>˜ÊËÔÕoÜx‹UHìäååÅÌÏ-‚ ………(Šv/åÊ•µk×–——ggg=z”^ØÆÆ†@ ¸¸¸ beeE >|ˆ H}}=½@fffk7d2™@  mÙ²¥¢¢ÂÃÃAºººk×®éêêfggþüyÆŒ?Æ`kk»páÂâââììl==½3gÎÐ ,^¼8**êÍ›7ÒÒÒd2EQ]]]†Ég`'øä1åå ŠŠ‡ÂÃqƒ©äÀÓ¦ioïÂ**vd~ÕÖÖ®®®¦GDDèëëÓ §§§£(J"‘¾;¦Wòã?¦ÁÁÁ]]]yyyD"‘J¥ÆÄÄÐ kiiùûûÓëÏÍÍ¥wD" àpÿ~ýýý544è²³³Q¥P(cÇŽŒŒDQtÉ’%—/_Æê3°Üå1AA"óæi¸†œœJ_ßÔ‡7 a¯(++SPP`¼§Œ3AAAÁïŽ 544¾«­  `ûöíD"ÑÀÀ€~Çkjþ{K[GGGGGç»Kjkk©Tê„ è/544***èÇÚÚÚ‚¬Y³ÆßßÊ”)ïß¿§w£<î¿ò˜€€ô%K¦ fMÄ+WÞ¨.]:èxˆŒŒ ½KŠ¢hSSSRRÒ€«êèè°²²rttLOOwvv¦ŸTTT,++£gff^¸pừäååJJJè/‹‹‹•”þ]$„‘Ñ---¼½½MMM•••!€ƒ ¿ò’üüšÜܪU« \CBBÑû÷¹Ç/Ç0*ž@$ékÖ¬9vìÏÎζ°°¸ÿþ€ëìêê"‘HBBBNNN‚´¶¶ÚÙÙ8q‡Ãáp¸½{÷âñøïb´¶¶Þ¿ii)‡;yò¤­í÷SÁgÏžM¡PÎ;ggg7àðœù•—eŒ+nb2aÀ5\¹òfέÁÔÀsÔÔÔLMMcÂçÏŸ3fŒÁ‚ ¦NzåÊ•×,!!qãÆ [[[mmm555 ‹cÇŽ-Z´ÈÜÜÜÔÔTUUõêÕ«?ÆpïÞ=EEÅéÓ§/Z´hÑ¢EÇŽû®fú1@X»v4€Wñ¡°O5@QtÖ¬‹ffºgÏ𡚈ˆœM›ž„…š2EÛØØEÑ;wÜÜ<änOœ8QVVöâÅ f Ó÷WòŸ ¼æ7ñŒ¬¬¯eeõ¦ÑÐK—B—-›Ê‹Éµ¸¸.>¾(>¾0!¡¨¡8b„4§#b¡ÎÎΪªª§OŸzzzr:ÀÀA~å¯_§««Ë¨ìrÿ´ââº'O6cë´·“bbòé‹8ÖÔ´ˆ‹‹˜˜L8xЬ­­ôÀÛœŽŽ…’““W¯^ýûï¿Ï›7Ó±ò+o Ri66Æ»œL¦Þ¼ùnÍšiêê²Ø†¹ªªæˆˆœˆˆœøøB …6mšÚÖ­³MM'êé) ð#âí]ÃéYkîܹœŽ0X_yCZZYm-aùò>Tãã“RYÙôÇØF…¡†b``†¿Zz:^Ttä¼yÚW¯Z-\8IJj4§C€€üÊ‚‚254ättp-™L½u+ÜÚÚHYYóÀ©³“üîÎÏ/5:ú‹Ð ‹É‡››šj ÁO&€·Á_1€¢è›7ÙÖÖÜMÝß?­¶¶eÏž…ØF5HMnnñîîñíí¤Ù³'Þ¼i³xñäÑ£Gr:.ÀäWž^^SÓ2°—¨TÚßG¬Ze8nW̹EQ4>¾èÙ³áá9ŠŠ˜­]û‹¼¼§ãŒA~åoÞd©©Éèé) àÚÐЬòòw÷í˜GÕ_$oïW׸‚‚ÚY³4?Þdf¦KŸ²CäWn‡¢hHHÖòåú¸–FCoÝ _ºtª††æ1¯½äîžðÏ?QDb—•Õô‡7Nœ8ÀÊ=z„IlCCZZ§C|ò+·ËÉ©úúµqÉ’)¸6""§  öþ}Ž­aÛÒÒ~ï^”›[??ÿöís¶n#!!‚IÍ;wîĤ`X‘Û]¹òÆ×7õÓ§S|||ý½vÉ’[²²cÜܶ±"°ÞQ©47·ø[·Â;:H7Îúý÷22¢ì8ú¯Ü.88sñâÉH®11ù™™å!!YUï>}*9q¿°°vëÖÙ»w/–†Ì v ¿rµ‚‚š’’o7nü6€k£fÍÒ04‡yT½øúµñäIÿˆˆœuë~qwߦ  ÁÎÖ€{@~åj¡¡ÙòòbÓ§«÷÷ÂÌÌò ¼½gET="“©..±·o‡KIvuݺh‘Ûš.ù•«…†f-^<™Ÿ¿ßƒÃOž|ÔÕU25ÈŠ¨~TVV¿gÏóÜܪ}û~ݳgáÈ‘ðsîàéCîUVVŸ›[µdI¿—•uÌq IDAT¨ªj ÊØ¾}.+¢ú‘‹KìüùW(ZD„ãáÃæ\þ+7{û'!!2cÆøþ^èê'%5zõêî˼¦¦¶?þðŠˆÈ9xÐìÀE#FÀ¿kð/ȯÜëÍ›lss=AA~]ÕÖÖõüyâ®]óú{a¥§ãwï~ÞÙIrwß>¾6KÛž.UWךž^6€YBÞÞ)d2eãÆY¬ˆŠÁß?míÚ{jj2‘‘G ¹À ÿÊ¥¢¢rGŽœ7O«_WÑh¨‹Kìºu¿`µLÒP½t)ôþý¨]»æ?¾ €A~åRoßâLM5………úuUDD_ÿü9«Vó'“©‡ygþý÷úuë~aQ+0@çƒutbcó-Òíï…E/\8iüxYVDÕÖÖµaãwïpîîÛ!¹@ï ÿÊ>~, ‘(ý½ùš—W•˜Xüò%K¾'»ìì}ùRãë»gêTV4C äWnôî]޾¾ª¬ì˜~]õäÉG-­±óæa?Û¨¹¹ÝÚúŸº:BpðÎnu¼Ƈ¹•J‹ˆÀõ·óÚÜÜîaƒ æñ45µYY9×Õµúúîä L‚þ+×ÉÈÀ××ÍÍû—_}|Røùù,-° ¦©©ÍÊꟆ¢ŸßÝÖ€! ò+×y÷.G]]VKk,ó—Ðhè³gqkÖL…a$mÖÖÿûUT¤0¬†<æ:áá83³Iýº$.® ¬¬~Ó&S Ãhll³²r&;ýüöBr€þ‚üÊ]JJ¾Öö÷æ««küôéê“&)bFCÑÊʹ½äë»GYY«j`ø€üÊ]Þ½ÃIIîךþM9.ˆØÑAڸх@èðôÜ¥¤Éî¿r—¾Ì«Õ¯E_¾L’’½|¹>&ÉÔmÛžUT4¾~½Ü8iLê€aú¯\„@èLN.63ëDzM$åùó›˜ì–C¡Ð¶owÍÌüêí½[MMfðÀ°ýW.W@£¡ýÚŽæÝ;\SSÛúõƃoEÑ?þx_èí½{âÄ~Ì^ð#ȯ\$**ÏÀ`œ¸x?¶¾yù2iÎ-UU r/^ ÌððØa` :øÚ`˜ƒñan¢hddî‚ýè¼–•ÕÇÆØÙÍ|ëÎÎQ|xðÀÞÔTsðµaËÊÊŠôŸ··7§¿u kÐå¹¹Uµµ„… ûñä«·wŠœÜ˜~ݯ푧gÒ… !—/¯³°˜<ȪXÄØØøðáÃœŽ‚—XYYq:†;ȯÜ"22O^^\OO‰ÉòT*íÕ«äµk1bPƒ!!YGŽø8:Z`ÒfKKKNGýãÃÜ"**oÞ<->>>&ËGGç×Ö9³)5µôÀ—¶¶Æ.L=¾ù•+45µ¥¥•-X Ãü%žžI3fŒÌšûåå ›7?={âÅ‹ë\ €A~å ±±üü|ÌoÝZ_OŒˆÈ±±™1à[ZÚmm©ªJ=x`ÏÏÏl§“àþ+WˆŠÊ›6MmÌfw¿ññIðšM mçNwúò£F ¬½€þ+çÑhhTTóƒÃ(о|™´zµá€S£“S@jj©«ëVyy±Õ w_9/+ëkCqáBfókZZYqqÝ€‡Ÿ=‹ss‹¿sÇvòdåÕÀøøø455Qí~rñâÅ|||EEEÌÔPTTô³ùe½¼ÅPUUµ~ýz555QQÑéÓ§0ywÌG àr_9/**WAAB[[Éò^^)::ŠS¦¨  ­Èȼӧ6_²dÊ.çreeeYYYŒ—MMM±±±ìiº¡¡ÁÀÀ@DDÄËËëÓ§O¿ýö›Í»wïØÓ:€ ÁýW΋ŽÎŸ;—Ù's:;ÉÁÁ‡[  ¡üüšÝ»ÝW®48thh>ó믿úøøèëÿ{[:((hîܹaaalhÚÉÉiþüù...ô—“&Mª©©¹~ýº¹¹9Zp!è¿rЙ•UÎüÌá7o²;:Èk×NëoCm7ºLœ(ãÆoÌ?eË[,--½½½Cľ¾¾ëÖýïÑ£æææM›6ÉÈÈ(++;88tvvR©Ôk×®Mœ8q̘1³fÍJNNFþ;Üã°0™Lvtt”———““stt$“É‚øùù8p {1''§'OžÐCBBè½[…Ë—/#B¡PœœœTUUeeeííí›››†‡‡khhHJJ^ºt©—\ò+‡ÅÆæ£(2ož“å}}SçÍÓ––íW+4ºÿ‹®.Ê£G›F޲ƒ³fÍ"‰ô!â–––¨¨¨•+W2ÞÝ»woEEŧOŸÂÂÂÞ½{wåÊ•;wî\¿~ýÊ•+'Nœ8rä3­Üºu«´´4555222**êôéÓÍÍÍ555ÚÚÿù'ITTTUUAÖÖÖµk×^¿~ýرcß¾}»}û¶ŸŸ_hhè‡ .\¸À¸0,,,##ãÉ“'Çohhè±EL>.k¡€£½–-»Åd᪪&%¥CAAýmåÚµ°ñãäæVö÷Bn`iiiiiÙg1A ÷ìÙsìØ1E=<<ÌÌÌçI$’€€‡£ö÷÷×ÐИ8q¢««+£777zaÆïã¸ûImmíêêjúqDD„¾¾~cc#‚ MMM=ÖÕÕ•——G$©TjLL ½ ---zÜÜ\Æ1‚ ÑÑÑ(ŠR©TzÉ[dæÓðòòê³€u ÿÊaÑÑ_æÎevp8 }ÌáE‹ôúÕDTTÞíÛáýµZGG±ÿòKKKE¿®­­¥R©&L ¿ÔÐШ¨¨øúõ+ãf-‚ S¦|?ç ýïldº²²2ú5fff¥¥¥’’’òòò¹¹¹Ý‹¥¤¤LŸ>½½½]HH¨  ÀÂÂbÚ´i®®®ôwñx¼¦æ¿[éèè¬^½šq¡¢¢"‚ üüÿûÝü±Å~.¶ƒüÊIÅÅuMsæLd²¼OÊŠúýàýúµqï^KËé˜ìÁÎýLMM[[[ãââ"""V­ZÅ8//// PRRBY\\¬¤¤¤¦¦Ö}¾qNNã˜B¡ RYYùc222ôn%Š¢MMMIII‚¬X±âÆÝ󱇇™Léèè°²²rttLOOwvv¦¿«¨¨XVVF?ÎÌÌì>>üãß[p9ȯœ“/&6ÊÐP™Â8\e~~ͺu¿0_?™LݵËMYYòòåá²ùŒ€€ÀÚµkwîÜidd$''Ç8/((hmm½ÿþÒÒRwòäI[[Û]»v9::ÖÔÔ¼}û–~_SBBAwwwpçΛX³fͱcÇðx|vv¶……Åýû÷¹páBLLŒ]BBBvvöÙ³gïܹCÏš]]]$IHH¨££ÃÉÉ AÖÖV;;»'Nàp8·wï^<ßËÕc‹nÇ¡qi€¢(joÿxóæ'Lvr ˜5ëB¿ê?yÒ_KëhII]ÿCã"ýºÿŠ¢htt4‚ ÷ïßÿî|cc£´´´‚‚¡C‡:::(ʵk×444FmbbBï¢(zþüy ‰ &"?Ü%›7o–”””––Þ±cG[[ý|YYÙºuëÇŒcddĈíæÍ›RRR***ÎÎÎ666rrrŠŠŠâââ666Œ{·Œh»ÿ¬ÅÞ? ¸ÿ gñ¡=Ýal@"Q&M:qòäŠM›fõY˜B¡:mÜhúÇÌ>Oéç—ºoß‹‡7x™b.Aß*ÜÛÛ›Óð>>>///Øe‚ñaŽIM-ko'1ùdNLL~CC›•Õt&+/,¬=zÔwÛ¶9¼ž\€GA~嘘˜üqã¤ÕÔd˜)ìë›2}ººŠŠ3…;;É{ö<×Ð;yrùàbä (:4Wà m_9&&&î\¦:¯mm]áá9«W2Yó¹såå nâá¥$ðø—X++çôôï!œÂÃyZ}=‡«Ø¿ÿWf ‡…}¦P¨«V0S888ÓÕ5ÞÅe³ªªôàbä ®2883""çË—j ‘ tTU[a’€ç@~匸¸~~>SSMf ¿~>w®–¸¸HŸ%kk[Žóµ¶6â¹íq k33Š‹ë”•%—.zþü#£ñ#Fð[Yq::è7ȯœ“¯¯?NLL¸Ï’õõÄØØü[·lú,‰¢èž".¬Å"FvhllóöNññIÉË«’—[¶LÿömCÃqCuÀðù•3âã --™š –-(8ÂÜ|rŸ%Ÿ<ù˜˜Xt@DDhÐ²Š¢‰‰Å‰oÞd ,_®îÜj“ üüVCäW(+«¯¨hbrrÓë×é¿þ:ITtdïÅòòªÎŸ>thÑÔ©ÙwmÚÚº^¼Hrw/)ù6}ºúåËë–/×=º¯xäWˆ‹+=z¤Á¸>KÖÔ´$'—nµŒ³U||!3Ý»ÂÂÚüüš¥K{^£¿«‹røð«Ù³'ÚØÌÀ:À~@QÔÅ%vîÜËDb×û÷Ž»w/€ä _Ù§³“œ’RÊÌÍ×,yy1#£ž‡ïÝ{_]Ýrõª—\èì$ïÝëáäôÚÆÆ80p?¬ÄßñaöIM-íê¢0Ó ɲ°˜Üãc®òï¿#NZ¡¢"Å‚™RSÓ²eËÓ¯_=ä÷ßçkk+°&Æ>\¿þöÐ!Ï}û>z´‘û·˜΂û¯l’šZF¡ÐŒ'ô^¬¬¬‡«<~|Ùo]¸,&6êàÁE¬ °7 í?^¤Ý½k»ví/ìxäW6IL,š0A®ÏÇUCC³$$D~œcœ˜Xìíââ²yÔ(A–ÅØ³®.Ê®]nÑÑ_ž<Ùbf¦ËæÖ€GA~e“ÄÄ"“>:¯‚„„d™›ë}÷ )…B;qÂoáBÅ‹'³,Àž‰]›7»dgW¼x±“™›Çèàþ+;‰]YY_{œ²Ô]mmKvvÅIÔÍ-®´ôÛ¹s«Y`ÏÛ¬¬œ¿|©ññÙ Éúú¯ìšZJ¡ÐúLQoÞ|9oÞz©­m¹z5l÷îjj2¬Œñ{ÕÕÍ¿ýö ­­+ `,ýù•‹ÕÕeû¼ùöyþ|íï¶¹p!DJjô¾}¿²2ÀïÕÖ¶XZ:S(4_ß=lÎë04Àø0;$&÷ÙymnnOJ*Z¼ø?ËJ$$ùù¥;·šÓšêêZ--GŒ>Éò+˵·“²²ÊûœÜ‘# À¿pá$Æ ={6pΜ‰ìœµ[[Û²zõ]AA?¿=²²cØÖ. 10>Ìr©©¥d2µÏüöyÖ,MQÑ‘Œ3ÞÞŸ¾|©ŽŒ<Ââÿ§¶¶eíÚûBBÞÞ»¥¥EÙÖ. =Ðe¹ÄÄb55…Þ–no'EG±°˜ÜýÌ•+aë׳mnQm-aÝ:ç#||ö@r€A‚üÊr E}>™“O&SÍÍõg<øÐÑÑåà`ÁâèþUW×jiyŸŸŸÏÇg·Œ $W,f­övRff¹ÝÌÞ‹……eŽcÜשּׂ%üóχÌØÓ$:6n|ÜÑAö÷ßËÁ{®ýõWll,§Z>Nž<9wî\NGÀÐù•µÒÒÊÈdê¬Y½õ_ÉdjxxN÷……oÜx+))²};;þvv’íí]ˆ¾¾{8¸§,‚ Ÿ?þò勉‰ cò|||¶oßÎé( ¿²Ö§O¥**R½ß|MJ*&:¾~ùRíé™|çŽíÈ‘,ÿîH{{<¾>0p¿ªª4«›ë“‰‰‰··7§£Êøøø8ÃäWÖJN.éóÉ×·o?ëè(2úŽ.Œ[µÊ€Õ±ÑhèÁƒžŸ?Wøûïå†ä C Ìob!2™šž^fd¤ÞKEÃÃs3›bcó£¢¾89­`C?ãÔ)ÿ°°ì§O·èèpfCY ÿÊB8\e{;ÉÈh|/errª*+›,,ô¡ÑÐK—BýuÒ´ij¬ŽÍÙ9êùó—ÍÌìê ¿ ¿²Ð§O%22¢ãÇËöRæÝ»ÏÊÊ’S¦¨ œ‰ÃUFEÙ²:°W¯’/\¹rÅrÑ"½¾Kè?f¡ää#£ñ½ô†‡çÐ×D$“©/†XYijʳ4ª˜˜ü?ÿôÙ»wᆠ0SXò+« (úéSIïƒÃÕÕÍ8\寿ê"òêUrm-áðáE½”¼/_ªwìp]¹ÒàèÑ%,mˆuˆD¢ƒƒƒººº°°°¦¦¦““Sgg'ãyõê_OfΜ©¬¬ÜÖÖÆ(Y\\,$$ôâÅ Aº—_¶lYii)½Xµqæk äWV)*ªkll›1£·üúþ}®°° ©©fGéæÍp[[%%IÖ…T]ÝlcópêTÕ7~ãÝ?ÙûöíKOO÷óó+//òäI`` ££#ãY¹reuuuuuuBB‚ Õÿïõë×d2ùêÕ«Œ’G511Y¿~=ýeBBBuuuUUULL FÛ°a£$ý­îØüEJrr‰¨èH]]¥^ÊDDäÌž=qäÈF˜±.žövÒ¦MODEG>z´QPP€u ±Úëׯ߾}khhˆ ˆ¬¬ì;wìììî޽˩x„……………!‰‚Œ;–ñÖ­[·¶nݺeË–qãÆ%$$¼~ý:##ƒñŸ¬¬,½°‚‚ÂãÇ••• ‚˜˜X÷·¼ ú¯¬’œ\b`0nĈŸ~Âíí¤¸¸ÂE‹t[[;ïÞ}¿y³©œ«Ö&¤ÑÐýû_TU5{xìaQ+ì!&&æììÜÐÐ@9gÎ< …BqrrRUU•••µ··onn¦hnnÞ´i“ŒŒŒ²²²ƒƒCgggQQ_`` –––œœÜþýû»ºº!“ÉŽŽŽòòòrrrŽŽŽd2ùÇÖ¿}ûÖÞÞÎd¨666³fÍ:r䊢‡Þ¿¿ž^ÏÊè_“5÷+ G@~e•>o¾ÆÅH33=—X2™ºgÏÖsùrèû÷¹..›Çãùu$?~©¤¤´hÑ¢ëׯӓ+‚ ·oßöóó ýðáCAAÁ… èç÷îÝ[QQñéÓ§°°°wïÞ]¹r…~ÞÙÙ9$$$888,,ìòåË‚ܺu«´´4555222**êôéÓÝÛMIIÙ´i“®®nKK “¡òññ9;;8p ¼¼ÜÉÉ©û»mmmD"±µµµ¸¸xÏž=¿üò‹””T÷·ºû®æ¬¬,uuõ#GŽ0îÚ¸ X ²²IAáàǽ”ùãWK–ÜljjÓÒ:zíZë‚yþ>žqC·¿èšX4a»¶¶6''§¢¢ÂÐÐ>Í À% ¿²DrrIïËGDä(+KÆÇ ²h: …¶}û³‘#G|ØÜÔt"¶5è/ȯKK+Ó×WíåyÓÀÀ Ewïžm»Db×ÎnFFê²vYùö­µ±‘%‹lGÀø0ÆRSËV®4øÙ»µµ„¯_çÌÑRPÀ¶Ý“'ý„Ž;wöòóóÒÆ®äðpœ¯ojtô>> #£ZNGØ€üŠ¥úz"ßÐËä¦û÷#9yr9¶íúù¥úø¤º»o;VÛšY'/¯ÊÃ#ÑÏ/µ­4{öÄ[·l<=¯ññÁÓØ€!ò+–ÒÓËéer“Ÿ_š´´¨ž^o›®÷WIÉ·£G}7m2]¸PÃjY¤«‹òúuº‡GbZZ™ŠŠÔîÝ ­­§ËË‹#âåÉ0t@~ÅRjjÙøñ²?ÛÀ<%¥¾aÁ IDAT¤©©ÍÞ~†-’ÉÔÝ»Ÿ«©É89­À°ZV¨«kus‹swO :.œäá±cÞ<íïF³cccÍÌÌ8!`ò+–z_YâÊ•·‚l܈e~½qãmAAMhè!!!îýVæç×8;G½~.*:jófÓM›L{œ;mllÌþ؆KKKNGÀ°À½”y…BËÌüºzõ´ß-+«OJ*’’­£óÓGwú+5µôþý¨3gVbX'¶òóknÝ  É?^öÌ™U¿ýfÔËž}‡fglÀR_1“—WÕÑñÓ•%\\bGŒX´H«æˆÄ®={<æÎÕÚ²e6Vub¨¨¨îúõ°¬‰ÇþóýÒ¥Sykb3 äW̤¦–Љš8qìo55µ½|™L&S1œ‚ô×_ABçÖ,Ú¸{ÀêêZoÜxë除¦&™0lA~ÅLjj™Á¸s‰‡G"* À?gŽ&mEFæyx$Þ¾mCŸyË%ÚÛIÎÎQ|yáÂZã#`À0ù3iixKË_~SV–’–3ƒ%Šš›Û¼–,™bi9}ðµa%<wâ„kkÇîÝ víšÏŠ}÷€‡@~ÅF]]kyyÏ+K¤74´vu‘×­ë!ûÀ©S4íòåu˜Ô6x••M'Oú‡‡ç¬Y3ÍÉi%æë*/‚üŠôô2~~>CÃq?¾åîol¬W°`7_CB²üüRŸ=Û*-Íù4†¢¨«kü… Á ÞÞ»gÍÒàtDÀ- ¿b#5µLSS^LLø»óåééx[[“ÂBñI“Ù ‘ØuútÀòåúææ˜ÍC°ÊʦC‡^%$îÜ9ïÈ‘%#GÂÏüüMÄFZZYƒÃnnqS§ªäç×Ì›§5ø‰¾—.…R©´+W,YÏà…„dýñÇ+iiÑ€€}Ó§«s:à:0½d253³üÇ'_ˆ¯_gXZþ’‘Ÿ?°ƒÃqq…®®q—.­ûÙú‹ìA&SÏž ܵËÍÊÊèý{GH®Ð#è¿b '§²«‹òcÿÕË듈ˆ¸¸2wî ö<ïê¢=êcn®·dÉ”ÁÔ3Hx|ÃŽ®55-^^p·zùiie"rÝOÒhèóç ÖÖFqq…úúãÄÅÕéüûïˆúz¢Ÿ'ç ''—lÛöLAA<(èÀ¸qÒŒ¸Œc 5µÌÐpÜw·W?|øòõk£½ýÌò,ÐLý99•÷î½ÿóÏÅòòbƒ‹t༼>YY9Ïš¥É˜ýW ¤¥•ÙØ|¿÷‹›[Üœ9Z人ֹsž_©TÚ‘#Þúúã6n4\˜D&SOœð{ù2éÌ™UÛ¶ÍáH Às ¿VMMKEEÓôéjÝOâñ QQyOŸnùðዤäè©S¾#˜«kWùîÝYÅ—@èØ¹Ó-=ïæ¶'öo.ãÕ–V& À¯¯ÿŸ•%ž?OPV–úõWݘ˜üÙ³'85ÖÖ®^ Û¶m޶6v «¬lZ»ö~^^•§ç.H®Ð/_+-­LKk¬¨èHƉâíýé·ßŒH$ʧO%³gk¸r'§ GÇÅXDÚ?yyU˖ݦÑÐÐÐC=®K _+5ÿÝ“¯oßâš›Ûmlf¤¦–vuQ|ó5:úKPP¦“ÓÊQ£1´ŸM/_þ÷¤IŠÁÁ””$ÙÜ: _…L¦âpÿéÞyx$˜™éÊË‹üX¨¦&£¬<üD&SÏœ \¸P‡ý¼elÜèbf¦ëêº ¶Á€ü:(¹¹Uäîýײ²úøø"útâ LM88üäÉG<¾þ¯¿Ö`'óÜÜâ÷ìñؼÙÔÙÙNPP€Í­ÀùuP23ËÅĄǗeœñöNQPŸ?_»¹¹ýóç SÓ,ÛT[ÛróæÛ]»æ«©É`lßœ£Ž÷ûý÷ùNN+¿Z2 gð|Πdf–O™¢ÌHET*íÕ«dkk#þ„„"E6¹éüù))ÑÌ0 ¶—.…Þ»yúôŠ;ç±³]’ ¿JVÖ×… '1^FGç×Õllf W ««$)9º¿u&$ùû§¹¸lfÛ´& =vÌ×Ó3éÞ½ «W²§QÚ ¿\[[Waaí˜3Îxz&™˜LPU•F$6¶ÀÂbrë¤ÑÐsç‚fÍÒ\¼¸ß× †9âííýéîÝ +W°§Ql•””¼ÿžÓQ°ÛŽ;8 7_‡«¤Riúúªô—uu­áá¸Û·×#RQÑTRòmöì~ß|õòJÎË«ŠŒ<‚q¬?A¥Òöï’uÿ¾Ýòåúìis©©©;wîätìù.ó›.3³\Vv ãñP?¿ÔÑ£G-]:AøøÂ‘#GOèW…Db×åËoÖ¯7þn+¡Ph{÷z„†f»¸læÝäÊ€^^^œþ°}ƒþëÀef–3FQôåˤ5k GŽ ÈÇÓ§«Ó™÷àÁ‡®.²ƒƒö±öäìÙÀ7o²ïÝÛ`f¦Ëž`ø€þëÀee}:õßÁáÌ̯ÅÅuëÖMGEÑ úûdNUU³³sÔÞ½¿JK‹bë.^ qw=WàBР¦¦6<¾qóÕÇç“¶¶‚*‚ ùù5ß¾µö÷æëµka22¢Û·ÏÅ>Öœ9óÚÕ5ÞÍmÛ¼yƒÚ˜ÀÏ@ÿu€²³+PÕ×WA„D¢¼~±fÍ4ú[?HHˆL™¢ÜŸÚ¾úø¤;¶¬¿CÊpóæ»§O?:;ÛArÖþëef–++KÒÇr?|øB t0òk\\áÌ™ýøßåܹ CCµU«Xþx̽{‘7o¾»yÓ†ýËÀ°ý×ÊÌ,g ûù¥OPT”@„L¦&&õëæktô—„„¢#G³zIBŸ”K—B_fe5¥ €ü:@ŒüJ tDDä¬[÷ ý|FžHìš3‡ÙüŠ¢èÅ‹!“¼“bbò¼öî]¸{÷–6ĵˆD¢ƒƒƒººº°°°¦¦¦““Sgg'§ƒ Y0><55-µµúäáààL~~~úc¯‚|üX¨¢"Õ}ÅÿÞ¤ùRýàÁFVÅŠ ‚|úT²yó“ f;¶”¥ q³}ûöáñx???•¼¼¼ýû÷766Þ½{—Óq†&è¿Dff9??}“¯oª™™î˜1£èoÅÅÌœ©Ád=d2õÊ•7––FÌçã(,¬Ý¼ùé‚:çέb]+Üïõë×—.]244”••3gÎ;w‚‚‚8`È‚ü:™™å&È3 oøô©tíÚg6µ¶v¦¥•1ÿdÎË—Iß¾µ::²pA‰ÊÊ&kë44äîÝÛЯ)WC˜˜˜³³sCCýåœ9sðx<ý˜L&;::ÊËËËÉÉ9::’ÉdvïÞ=1cƘ˜˜|øð¯¨¨ˆq¼ûñ—#ÂÇÇ÷âÅ ))©«W¯"B¡PœœœTUUeeeííí›››{¹Àë†õÜËÌüJ¿ù&##:¾ý|rr •Š2™_;:H·o‡ÛÛÏ;VœEq67·ÛÚ>é꺕m»ñp­ÇGFF*))-Z´èúõëŒäŠ È­[·JKKSSS###£¢¢NŸ>íââò×_]¼x±  àÔ©Sööö½Ôüãåôó¯_¿NLL¼zõêŸþÙØØxûöm??¿ÐÐÐ>\¸p¡÷˼³+©ò"¦­}üéÓXEçν|ì˜ã-'§€ ®0YϽ{ï'N<ÚÐ@dI”(J"Q,-õôN–”Ô±¨ .A_—™’ %))éܹszzz/^¼ Ÿ×ÖÖ®®®¦GDDèëëëê꺺º2.tssC¤°°ÑP÷ã/GQA> (J"‘è×jiiùûûÓ‹åææ2Ž{¼“¯ÀA0¿©ßðø†––ö©SUq¸Ê‚‚šk׬o}üXÈdçµ¹¹ýîÝÈ;æJIõ{ƒX&98xeg > ®Î›»¼¢­­-88ØÒÒrÆŒ3fÌ8yò¤““Ó‘#GÖ¯_ HYY™‚‚£°¸¸8‰DÒ×ÿßÊ‘S¦|ÿ¸0Š¢Œã/§(**""(øïÈ×Ôüw–¸ŽŽŽŽŽNï—xŒ÷[ff¹  €®®RPP†²²ä/¿¨ÑÏ×Õµ~ùRÍ䓯..±üü|¬[ ñîÝ÷iØkjʳ¨ Þ‚¢èúõë?þLÉÇÇgnnN¡Pè/edd éÿr655%%%)))eee1.ÏÉÉaÓ¯ª¬¬dœùñrúy~þÿü~)**–••Ñ333ãÃ?»ÀÓ ¿ö[ff¹¶¶‚@PPæÒ¥S“\’’ŠøfÌßg ÍÍíÇüþû|11aVD˜qùò'§•°"ƒ¨¨¨½½½µµuhhhIIIBB‚ƒƒƒ ýÝ5kÖ;v Çggg[XXܿ˖-ŽŽŽ555oß¾=zô(‚ ‚¸»»„;wî0*ÿñòc°³³;qâ‡Ãáp{÷îeÜfòráÄ 4o[¹òΑ#Þx…ƒiieŒóŽŽ^Ë–Ýf¦†‹C&O>ÙÖÖÅŠðÒÓñêêŽÇû²¢rîÄäýH …ræÌ™)S¦ «©©ýùçŸô·ÂæÍ›%%%¥¥¥wìØÑÖÖF"‘Î;§®®.**jbbòòåKzçÏŸ—˜0aB`` £Ñ/GQAF¯”~ÜÙÙéàà ¨¨(..nccÓÔÔÔËåƒÿzœÅ‡v»úD¡Ð´´Ž?¿º¨¨.$$+)é$£ÿjjzqÉ’)Ç/ë½†ÆÆ¶3þÚ¿ÿ×}û~Å<¼úzââÅ7Ç“öôÜ%((€yýÜÉÛÛÛÚÚš¥?ÉEEEššš\òˆ¯0x0>Ü?……µ¤©SU3–/×g$×ÚÚ–’’o&&}¯,ñäIì¨Q‚[¶ÌÆ<6*•¶gÏsAA—ÍÃ'¹~ûÖš‘Ñ ÀŽMs€y0¸²²ÊED„ÚÚºªªšW¬øßüÒÄÄbAA##õÞ/oiiwq‰ýý÷ù£GÄ<6'§×YYå¡¡‡$$D0¯œ«Ô׋‹Š jøøø9üä×þÉÌ,×ÕU ÉVW—2E…q>1±xòdå>³¦‹K,??ÿÖ­s0ìÕ«dW׸§O·L˜ ‡yåÜ ³“œ”Tý%&&¿  V@€oÊ• ´_ZU•½yó-–¶®¡¡ã±€~üÚ?™™_ŒÆeX[u?Ÿ˜Xdn>¹÷k „ŽÇc¶oŸÇX¬»¨Êó=xpÑ¢EzØÖÌqyyÕ11ùÑÑ_’“‹»º(:: N:wnõ´ij""Bô2ÞÞ¹œ ~ùµH$J^^•™Ù¤ÚZcÃAjk[ŠŠêΜ™ÐûåOŸ~DìŸy­¯'nÛölέÇͱ­™Sh44#šõæÍçòòQÑ‘³gOüë¯5 èÐ7ÙîùµrrªÈdjm-AMMfòdeÆùää’#øŒz{òµ£ƒôäÉÇM›f‰‰aÙy¥Ri{÷z üý÷z~~ÖnÏÎjT*-9¹$44;,,»¦¦EAAÂÂBÏÂb²±ñ„á3] 0d@~í‡ìì¯cÆŒŠ‹+\²ä?«åÑo¾ŠŠövóÕÝ=L¦ìÙ³Û®] ûô©$4ô OÏiÊÎþê㓘^_Oœ8q¬¥åôÅ‹'OªÂ˜ž <òk?dgWŒ/—•U¾xñòkBB‘™™n/’ÉÔ‡£7l˜‰í×·o?ß½éìl§£Ã“³g«ªšýýÓ|}S jƓ޸qÖªU†Cu~`¸üÚŸ?9RPAAÂÐP•qòÛ·Ö¢¢ºS§Vôr¡Ÿ_jSSÛÎó0 ¦¼¼áСW¿ý6cåJ «e2™’åé™”P$*:jÅ ý«W-§OWdoõÑ£GXEÈåÒÒÒ8 o_™E"QòókääÄ-Òíž ‹ùù{[v˜FCïß²´œ.+;«`Èdê®]î**’/®ÅªN6¨©iqwOxñ"±¡8¾öƒÍÌtGŽÄæ‡pçΘÔ˜€üʬüü2™ZYÙ´xñžÃIJ*ÒÓSêeà7,,¯÷ðØa0ýT\\÷öía¬’KQ©´7o²=<ãã åäÄv옻nÝtyy1¬ê·²²²²²ê»°üuæ8\… à¡ïALL,^°@§— ïßZ²dê¸qÒXE‘óäÉÇ[·l¸cW*•œy÷îû¼¼êI“¯\±\³fš°°§ã–ƒüÊ,®räH_ÔýY‘úzbAAm/kúÇÅde}½~Ý«0jjZô´´üÅÊj:Vu²™Lõ÷O»{÷=ß°r¥ÁÅ‹ë˜Ù¹† ȯÌJK÷µuý08L¿ùúÓ•%þùçìYš“&a3¿—J¥íÚå.-=úÒ¥u˜TÈ ¤§O?>|M$vÙÚšìÚ5OII’ÓA»A~e •Jûò¥zĈóçÿgÇòÄÄâI“¶dD~~MttþóçÛ± ãîÝ÷øƒÜ9ÄJ¥Ò<=“oÞ|רØfc3c÷î**Rœ 8ò+SŠ‹ëH$ÊŒã¿Kl‰‰Esçjýìª>hk+ô~w–yiie7o¾;zti÷¥£¸Gtô—sç‚ kûmƘ+Î鈀“`ÿW¦df~EdõjÃî'ÛòókLLz®«k Hß¶ ›}^[[;÷îõ01ÑØµk>&b(-­lùòÛë×?ÔÔ”=zíš$W€þ+S""pÂgnþŸÝiè7_{ÞSÝÝ=^\\xíÚ_0 àìÙÀææ_ß߸j‘áÖÖÎóçƒ_¾LÒÐ{ñbçwƒç0œA~eJz:^RRX^þ?ݲÄÄb…o¾vv’ÝÜâ7nœ%$„Á'Ž{ù2éÁ{®š(‘sô¨/•J½xq­ñˆ0ÿùµo(ŠÖÖ¶Î;ñ»ó E¦¦š=^F$vnÚd:øÖ¿}k=|ø•¥åô+¸eÄêêæ£G}##sÿ}Áá˸s²pä׾ůÐh´ïÖôollûò¥ÚÑÑâÇò(Š>z³r¥ŒŒèà[?rÄ[XXè¯¿Ö ¾ªÁCQôÅ‹¤óçƒdeÅöMŸ®Î鈀KA~훯o*‚ «VýgrSrr blÜÃä¦ jíßôë×éáá9^^»°Ý5v`¾}kupðzÿ>wÓ“'—c» 1_û–œ\,&6ê»í]‹´µzÜuõÙ³8##u…A¶K†µ·ŸijúýÐ4ûÅÅîÛç |^^»¸!àr0'¥--í••MZZß'Ëää’—mÂã""r¶m›3ø¦õ•–=}º·ïØ€L¦ž:`mý‰‰FlìQH®À è¿ö!&&E‘yóþóäI[[W^^Õ¾}ÿÇÞ}Æ5‘´Ÿ$tiJ T©6<=EE=» Ø{/ bÃóôÎzDQÔDP@¬ tPz/!”Ô}?¬o.G -ÔÌÿwÂfvf­y˜ÙÙg,Ú–÷òú¬  5¾AÛ·º%88)22Ãß×À®*+«ß½Û+!töì²M›fôr‹V‚ þãk'ÂÂR“'kpŒ'2™HÛ›¯ÍÍ4ŸØ;fõòa•ÊÊ'§g›6͘>½ý‡kûLJÙ»vyIK‹……ÐÓSÀž@ 9p~˜Abb~`0 UJÂoßòG–m»<øÅ‹ä–šÝ´^¶{êT´´Øñã‹zYO1™¬óçC׬qŸ;W/2ÒW‚ î‚ãWn¾/!“[¤¤¤þ³Žéë×¼)SÚÙmíþý÷‹ÉÈô걜ðð´d?¿53\QѰk×?‰‰¤k×l¬¬õ.xAƒ¿r%$$`l¬ÊyNg&$Úîfš”Tž^ÜËœdr³“Ó³Õ«§t”¹¢¯ååU.[v=7·òÉ“0¸BõŒ¯ÜÄÄd `õõÿ_ÓÒŠš›iS¦´N­ððáG##5õÞ´øçŸ¡X,öÌ™e½©¤Ç¢£³.¼*++ñæÍávèAPÁøÚ¡ÆFêׯùMM´V7_¿~ÍÇã%G–ã±ÇÍÑéÌ#GžÎ™£»x±Q+é*•áèè˜pâÄo»vÍîçÖ!‚†%_;óCNN€ÇK²"—·ÿ\Î’‚øø|Y±ÂDDD°ÇÍݺUXXãí½­Ç5ô ™Ü²u냤$Òƒ›çÎÕëçÖ!‚†+_;%))ª¦&Ãy07·²¦¦±Õ½É¸¸¼¼¼J =n+7·âÚµˆ£G*)I÷¸’(*ªµ·¿[_ß´>„AÄCðþkû ªss+ÛÞ|ÍnŠ||bÕtt”zÜ܉ZZø­[gö¸†ˆÍ7¨PxøáÁ\­­­1P÷ùûûôÿ:^½ýÇÚÚz ÿo·ǯíûü9GHH ¢‚¬«ûŸ¨ùí[¾±±:gz¦ºº¦ÐÐäóçWö¸­çÏ?~Ì 9П[”GD|ß±ãŸiÓÆº»¯oµuÁ djjzèСîÅP2¿kø¼zû««ë@w¡0¾¶ïóç]]åädR«ñk\\ÞÊ•ÿYĘ $$°ti7?§P¨gϾX¹r’±±ZÏ»ÛM/^$ïÝë½fÍÔóçWögPï1UUU++«îõ¼zûÁÓ§Oº íß­âÇlEE) uõï¿–—׉U­2Køø|Y²ÄxĈoÝŠjj¢ž:Õ›äܽ³sç?GŽ,¸xÑjHW‚ ¡~½¶#'§¢¼œŒÃa´µ1;Æ|ýš/(ˆ31Ñ`II)ÌÌ,]³fJÏÊË«ts{{äȶ©ŒûÈùó¡gÏŸ;·b÷î9ýÓ"A‚óÃíøø‘ %%VZZ¯¯ÿŸU?ß¾åëé)‹‰ý›Ø×7V[[aâDž5ôÇ/45åׯŸÞ›Þv‹…œ:äåõéÚµµ«VMê‡!‚ø¿¶ãÓ'ÂÔ©c~ü(mµ$øë×|δˆÍÍ´  DÓžµõúuúï¿/ÇáúüÿƒÁÚ¿ÿ±·÷ç›7íap… ê0¾¶Æb!Ÿ>tu•(ªžÞ¿ñ•B¡~ÿ^ÌùäëË—©--ô+z’³‰Ng:;?Ÿ7O¿òøS©Œ-[„…¥xzn^²¤¿“CAñ'_[ËÈ(©«k9R ‹ÅŒ¯È>ž@d±Îøêç÷mölžÝ:õòúL"UŸ9³”=æŠB¡ÚÙÝùò%çñãísæèôusˆB¡888Œ=ZTTTKKËÙÙ¹¥¥¥»•äääpÞqoWIIÉÚµk544ÄÅÅ'OžÔÓ.CÐOœÏqjhh¬[·®²²²š†×|ßñµµ rrõõMjj2œ«‚[í©^PPýéaõꞬlª©i¼|9|Ës YÞtºÍÍ´ {{o35Û§m ¸½{÷&&&Ü¿?88ØÑÑ——'+Ëí÷ÌY@ZZúèÑ£\ WWW‹‰‰ùùù}ýúuÍš5666¯_¿îVW;íÏâ‚H¬ºzõÍ®]^<¬ê±ÏŸ?—––=xð€L&›˜˜ÔÕÕõC»|uÍ÷3¸¾©µÏŸ ¦¦c33K[e–hµ§z@@¨Q#æÌÑíA..á""Ìëm_¹¢Ñ›7?ÈÈ(yölw«…ZÃÒóçÏÃÃÃMLLrrrׯ_···¿qã‹Åª®®ær"gYYÙ .p)ìììü믿޻wýQWW·¬¬ìÊ•+óçÏïzW;íÏj«¼¼þŋ䀀øÔÔ"0::ŠŸõ=999€²²ò¬Y³fÍšuõêÕßÿ½¯Ûå‡k~ Àñë0¬¯_óÐøÊ¹¸©Õžê‚øù}]±b¢  ®»Mdf–üóÏç£GöiÖ$*•aoï‘’RÀÁ ))éææÆþ×hnnN"‘¦¦¦ô› Šþ1®¨¨ˆ~­p`Ï•1 ggg55599¹uëÖ±Gû÷ïçl×ÙÙùþýûè뺺º 6ÈÊʪ¨¨888 Ô ÆÇÇGGGgÔ¨Q—.]jÛ%:îèèˆÇãåååétú‹/”••kkk¾¾¾ãÆkllluVwUT4Ü»÷ÞÂ⊱ñ™sçBÒÒŠ =«ê; fÇŽaaa€}ûömÞ¼=N¡†.†J IDATPÄÄÄ’’’@{×hïòFKzzzêèèÈÉÉ]¸pÁËËkôèÑRRR§NÃúšxÄ!-­HQñ@BQIéà«W©ìã DEÅyyè_¾ä(*ÈÌ,éAVV·.te2Y¼éq{¨Tº»ŽÎñôô¢¾k¥ßXYYYYYuZìõë×ÊÊÊÂÂÂsçν|ù2‘HDöuN&“…„„6mÚTTTäíí ¨¨¨à,À~}ùòe==½ÔÔÔ´´´©S§:88 ‚þ㯩©é¨¶¶¶sæÌÉÍÍMMMÕ××?sæ ‚ €U«VÕÖÖzxxª««9[DäâÅ‹+W®,((HMM5119vì‚ ëÖ­[¿~}YY‹‹kõA:ðóóC„LnöòúüÛo×””ªªRV>¨¨x€ó¿Ù³/v±N¨ºxõç‘oß¾IKK####C§ÓñööÖÓÓc±XH{×U»—7Z񮮠L&£cPkkk2™|çÎ@UUÕð¸æ»ø{îg0¾þÇÝ»Ñ'¿~ÍUT<@$V±ß¾ýÎÈè4ûG¿Ù³/õ þ—/S•”ÆÇç÷¾«¡Ñ7Þ×Ò:Oì»VúS×ÿå0ŒØØØ³gÏêëëãp8ä¿ÿD©Tjff&…Ba2™111è—Z»ñU[[;00=˜‘‘¾®©©ÔÖÖ¶Û:FÃápéééèššš‚Þ½{‡hÛ"‚ ãÇ/--E_GDD!R[[«¢¢bhhˆ~a!ÝŒ¯Œ ƒÃM{û»ªª‡•”ª¨jVa|í½¯ CAA!** A… ^¸p}J«ëªÝË-™˜˜È.ÉùšójÒ×üàŒ¯ðþëÄÅåMš4:#£TBBDMmû8çžê--ô/’êÆ½•Ê8{6xÙ2ãç£èƒÁÚ½ÛëÇl_ßí'ª÷Q+ƒPcccHHˆ••ÕÔ©S§NzòäIggç#Gެ]»–³˜PvvöÖ­[)б1·”Ñ$IKëç£S::::::€‘#GâñøŒŒŒ_~ù…]òÛ·o»v튉‰©©©a2™cÇþ\G¦©©YTT„¾VRR ¶¿=0‘HTTü÷&¨””@ZZzÛ¶m¿ÿþ{DDD·~t:óæÍ(yùM>>9 A“Ùá$paa’ÒÁn5u?RK«¶'ôZÂáp+V¬ 444ŒŒŒDǨV×—Ë[BB‚]’ó5§¡{ÍZ0¾þ A¸¸¼={ædf–ŒÿofDAâã‰;wÎFŒˆøÞÔD[¶Ì¤»õ{z~(/';9ýÆËNs`±Ã‡ŸDFfüóÏö_|Aµk׎?ÞÈÈ€Á`æÏŸ÷îÝVÅš››­­­ýýý/^L¥Rîç÷uôhG HM EMíð“'qÝ­üÌ™ç')”^ö˜Ãñãjj‡ÃÃÓú¨þÔÅ;+ ãÌ™3†††¢¢¢GmnnF„N§›™™‰‹‹£Å\]]G¥ªªêææfcc#//ÏY€}¿§¥¥ÅÁÁAIIIJJÊÆÆ†óþ‘H\µj•’’’„„Ä”)S^¼xÁ~«¦¦ÆÞÞ^FFFQQñàÁƒhÇ­5ôu«.‘Éä7Ž9RFFfÛ¶m7nܘ0aFC$((HQQ±¦¦¦ÕYÜÿ¯oBµ´Ðß¼IßµËK]ÝAYùªê!xÿµtýþ+›ªªª­­myy9g;vˆŠŠ’ÉdÎSZ]WH{—wG%Ù¯‡Ç5?8ï¿þ¼=öíó)/'_¼hõË/çCBö³ï’=ú4+«48xàŸ>ÿþ{pJÊÙn=]SRR7}úùcÇmß>«:\]_»º¾®‰ûÑ­Âýýýº#C ƒñóók»ËzU%$$) 1)‰$(ˆ£Ñ˜:: QQG¤“ü€WWï‰'ˆD¢/:5 Îo 8?ü¯ØØÜÕ«§ff–b±·_ã㉳fi£¯æÎÕí®®¯ee%6l0ãewÿïÞ½÷®®¯oݲïñïÿ•߸qÆÆ3 kž?O|ö,^@ ÛÏpCý©¥¥¥¤¤ÄÓÓÓ××w ûuÌ/ñSqqmQQíÔ©c22ŠÕÔdØ›Ð54´üøQŠŽe ª¿}ËïnB¡ÜÏïë¡Có„…yÿ×LhhÊ™3ÏOœX ƒ+Ô-ªª£ö‰9æé¹i ûq7iÒ¤M›6Íš5k ûu¿þOÀ«=xð33brr‹… ñ544ERRtÖ¬ñݪÙÅ%|ìXykëîÁÎE\\ÞÞ½Þ[¶˜ïÜù+Ï+‡ø„²rŸ,¸ƒxeæÌ™èC¨Ðǯ?ÅÇõô”GŒÎÈ(i59¬¢2]-üòeê‚BBÝø£$-­($$ÅÑђ盼ff–¬_ï±x±‘³sŸoÂAuŒ¯?}û–?yò膆–‚‚·sˆè³¤$Rub"©»Ó°.„™˜¨-Z4·½-.®µµ½kd¤îⲦӽ¥ ‚ þã+47Ó23K&MÒøñ£Aöü0‹…ÄÇ'MÒ¼|™:räˆ_~ÑìzµŸ>å¼{—uäÈBÞö¶¾¾ÉÎŒ¸‡Ç†l00´ÐéÌ–x‚ ¡~s@JJ!Μ8Q#22CBBDUõgfļ¼J2¹ùÿ7_“çÏ×ïV<»téåŒãfÌàe¶*•±q£gc#5$d¿„„kTš›iïÞe½|™™ÁdŽ46î§½¦!‚xÆWHH *(H)+l•1!(**¤««TTT›œ\xø°e×댈øO|ù’—™]9|øIFFqPÐ^<^Ї5õõM¯^¥FGÿhn¦¨lß>+*êÑ@÷ ‚ ¨Û`|€øx":Hýþ½ÄÀ@™ó¸¡¡Š  .,,EJJ´ë#Q ¹p!láBà TyØO—×!!É>>Û9W`  ¯_§½|™úùs‚ ¦¦c_4¾šKòË—{ÝA‚ nƒñˆ»vÍa±¬¬RkëÉœÇgÏÖ„†&Ï›§×õÉáÐДììr7·u<줯o¬«ëë¿ÿ^kf¦ÅÃjPK =<<ÍßÿÛ‡ÙBB³fi_¹²zî\=ii±V%Ÿ>} —qAC¼zû‡••Õ@w¡5_‘XUUE™4I½  º±‘Ê^ÜT_ßôãGÙ‘# Š‹k öí›ÛÅ Y,ÄÕõõÒ¥ÆÚÚ ¼êdBéøñ€;fYYMî¼ô ÷í[¾¿ÿ·¤ÆFš¹ù¸›7íæÏ×i+«ƒÂ9ƒŸ©©é@w‚WoÿáÜYh€ñ$$…„ Uß¾ÍÄ`0ÚÚ?w%LN.DdÒ¤ÑAA Â3gjw±Â/’òò*>ÜÌ«–”ÔmÞ|ßÜ\ûäÉ%¼ªs@äåUúúÆÄ—•ÕOž<úäÉ%‹O’j=ZmeÚ´iýÓ=â9xõò3_Abbžž’@FF‰šÚ(vnáøx¢ººŒ¬¬xhhÊܹú]L+Áb!W¯¾ùí7# Yžt¯©‰¶~ý½Q£ÄoݲÇb‡ä,•Ê Iö÷ÿöù3ARRtùr“U«&« t¿ ‚úŒ¯ 9™dl¬ÈÎ.c^ ĉ5ÊÊêˆ]O@øêUjnnŽ{yÒ7Aöíó)-­{ùò`w7 ªÿùçó“'qõõͳg븻¯Ÿ7O¯[ ° ‚†(~ÿ¦£ÑééÅ›7›²²Ê,-õÑã,’˜H:ztaXXʈ¿þªÓ•Ú¹zõÍ‚†ZZxžtÏÕõuDÄwÿ]jj2<©° ýãáÃQQòò’7š­]kª¨(=Ðý‚ ê?ü_32Jèt¦‘‘ÆÈË«?þçø5'§œLnž4Iãôé 9st»¸õMddFfféõë¶<é[pp’«ë›óçWN:†'ö:˜àîþ.;»|æLí{÷6ZXè À4añ~¯ÉÉ…’’¢£GËfe•2,öüpBqÄáQ£F|û–çÎú.ÖvíÚ ]Îíwz,3³ÔÑÑoõê)6Lï}mý ¾¾ÉËëËýûïkk›V¬˜xçÎúqãx¶|‚ hÈá÷øš’R`h¨ŠÁ`²²Êqššòèñøx’¡¡Ê›7颢Bè#°Š‰ù‘”Tƃ„MdróæÍžÚÚŠ/•ý55wïF{z~ÀápööÓ6o6G·‚ âgü_““ æÎÕüøQ:fŒ;ƒD||¾¥¥AhhÊœ9:¢¢B]©êÊ•ð™3µ{¿,–ÉdmÝú°¥…îé¹i§ï¯ª¢¸»¿{ôè“°°ÀÞ½7Ί‹° ‚ú_ÇW …J ”;:.deý»x¸®®)'§BWWñöí·7nØu¥ªÏŸsˆ!!û{ß«ë×#ccs÷ÈÉIô¾¶>B&·\¿ñðáG11¡ƒç­_?}ÄY!‚þÅ×ñ5=½ˆÅBŒŒÔ?~”Z[OA'%êêš±X¬……nWªºvíÍ/¿h¢IŒ{#::ËÅ%üÔ©%½¯ªÐéL/¯Ï®®¯™LäСù6˜‰‰ui|AÄWø:¾&'âñ’JJÒÔŸã×ÄD’šÚ¨ØØÜiÓÆveXöõkÞÇÿ]½ìOaaÍ®]^¿ý6aûöY½¬ª¼|™ú矡Åŵ›6ÍØ»×¢m¢`‚ Å×ñ55µP__]Îb!ì‡sˆÆÆêoßf SǺuë­‰‰z/ÓîÓéÌ;ÉËKº¸¬éM=}äDzS§?α²šìï¿KI >Ì AÄ _?˜˜–Vd`  øñ£TLLÍဠHrrÁ¨Qâdr ºô‰»¬¬ÒÈȌݻçô²3¿ÿœ“SqÿþÆÁv#³ºš²oŸÏœ9—°Xltô±«Wm`p… êÿŽ_©ùù•質?~”iiáÑì¾ùùUuuMuu”q㺒5ÉÍí­¦¦<;ñSÏ<{ïéùÁÝ}ýرò½©‡·˜LÖƒ]\^‹‹ ?x°¹+m@A(þ¯YYe,¢§§ÈÊ*eO'%‘„„’“‹º2KJꂃ“Ο_Ù›ýóò*Ož X¿~ú’%F=®„çÒÒŠNœLN&­[7ýÈ‘’’¢Ý#‚ ¡„ãkFFñˆÂêê²€¬¬2sóŸÛÏ%&hjÊgd”te尧燑#Å8·dï.±}û£Ñ£å~ÿ}Y+á­¦&Ú… ažž¦Lóúõa¤£‚ â7ü_Ktt”°XLmmcyy=çøU\\däÈ“'æ^CCC‹—×çíÛgõfCgççÅŵ‘‘ŽƒdW™÷ï9ò´®®éÒ%k›©½—Cñ³Añ> ÒÓ‹ ”?~”Їsh4Æ÷ïÅcÆÈÍš¥Ãu²øËÏï+“ÉÚ´iFûðâEò£GŸ<<6 †CUU”'BB’íì¦8ñ[§ÛžCA\ðéúa ÉÌ,ÑÕUde•IK‹)(HÒÓ‹étfnn¥…E'ky –‡GŒ•Õä?ZTT{ôèS[Ûi‹MèY <äíýeÆŒ¿I^^Û.]²†Á‚ ¨—øtüJ"U55ÑÐÅÃÙÙ¥ÚÚ?wzIJ"‰‹ ·´ÐgÏϽ†—/S‹‹k·m›Ù³0™¬½{½•”¤Ï[ѳx¥²²áر§¯^¥Y[O>sfLAÄ|_ÓÓ‹q8,_³²ÊØ7_IââÂúú*ànß~;¾þèÑr=ëÀõë‘))…¯^êâβ}äÕ«´#Gü…„?Þ>kV'R@A]ǧóÃ%£GËŠˆ23KÙ;•&&ÔÕ5wºrøë×¼””Â;~íYëß¾å_½úÚÙy){ÜÜÿjk·o´y³ç‚11Ç`p… â->¿fdü¼ùZ^^__ß„Ž_kj ªt_ÝÝ£'NÔètq»êêšvîügá ëרÆé‘‘O0Œ·÷¶.în Au ŸÆ×ôôâ ¦²²þ]<œœ\€ @MM†=œmWNNÅ›7éwî¬ïYÓŽŽþX,æÒ¥Ù8½©‰væÌsŸØyóô._^-++> Ýà•¹sçt˜¹¹ù©S§ºµƒãkMMciižºx¸—Dõ ™›æÌédðúèÑ'eå‘óçô éÀÀ„W¯RŸ<Ù9 é„ò;þÉϯüãå7š ƒg[###MMMUUUº#ãË—/#GŽè^@Ô>~Œ¯ÅvfDö¶ê±±y4sÎnó¥ Õßÿëóº}뺨¨ÖÉéÙŽ¿ör§žñ÷ÿvüø3]]å7o45Q–ã^:xð µµõ@÷b`ð퇠!ãë÷ï%²²âx¼àDz©SÇIJ"áp˜iÓÆr9×Ï/ŽÉdÙÚšv·Q Ù»×[EeÔ‘#]ÚóއÈäæƒ}ß¼ù~ìØÂ]»fƒa+AÐàÇñ•½¸ Aœœr;»i©º©‰¦¯¯,**Ôщ‚xz~\¹rRfw==?$&’^¾<ØÏyH;w>¢ÓY~~;ùE³?›† âgüø|Nzz1:9\TTK¡PчdI`,-¹ÝUýø‘@$Võ !âeçχ:4½éÛ?¹wïýÊ•7µ´ð‘‘0¸Bõ'¾‹¯t:3'§Ý†@(Ç`0èjáwï²@¸?úàÁGSÓ1Ý}h•NgîÛ磧§Üû=Ø»®±‘ºg÷™3ÏwîüõÑ£­22C{0AÐÃwóù¹t:} ';»—”|ýš+,,0aB‡+Q k""¾»¹Ùw·Å7"óò*#"z°$ªgrs+¶lyPQÑàí½ &Ž€ |7~ÍÎ.Çá°ššxPŽ^i4FQQÝøñŠ\öÌñöþ"//¹`a·šKN.¸ví“Ó" Ù^ö¼‹üü¾ZX\–}ûÖW…Bqpp=z´¨¨¨–––³³sKKKw+ÉÉÉá².ìÉ“'˜ö$''÷®ï a|_ „rUÕQhÖßìì²qãð€””"A¸ì™C¥2||¾ØÙMëÖ´¥…¾ÿã3ÆmÜhÖûžwŠNg9âð ï–-3÷  ¤¡½{÷&&&Ü¿?88ØÑÑ——'+ËíÎÒÒÒGí¨äÒ¥KKKKKKK?þ (ý?=½Nva‚ hã»ùa¡\K @$;»ÌÚz2 ,,°b…IGg…„$S(Ôuë~éV[×®½)-­óòÚÚÄÕnÝú€@(ws³_¶¬Ã‡ž?nbb““»~ýº½½ý7X,Vuu5—9 ÈÊÊ^¸p¡£’¢¢¢¢¢¢ …PP°´Ò ü8~Eãky9¹¡¡þô‰ ""Èe3œ‡?þöÛ„n­JN.¸uë­³óR55™Þw›»øøü%Kþ®©i Ú ƒk+’’’nnnìHinnN"‘¦¦¦€#†††‹‰‰)**¢¡”³{~˜Á`8;;«©©ÉÉÉ­[·®®®ŽKÓûöíÛ¼y3úšB¡ˆ‰‰%%%¡UkkkËËËïÛ·J¥ètº££#———wtt¤Óé}óû€ ¨ŸðW|e2Yyyh|ÍÎ. óù¹UcÇv˜Ò(9¹ 1‘Ô­9^:yøð“éÓµÖ®ív&Šîzò$nÕ*7mm…ׯ¨ôusCއ‡GTT”²²ò¼yó®\¹‚W@ll, ¬¬ ÐÐаråJpåÊ''§ÊÊJÎl×®]  {÷î]vvöùóç¹4½jÕªàà`ƒ3fŒ‘‘ú–››[hhhHHÈ«W¯Ðp~õêÕüüüøøø¨¨¨·oßž>}š÷¿ ‚úÅ×ÂÂ*•.nÊÎ.—•9rDII]K mÆŒszy}ÑÓSž8Q£ë ݸYPPsù²uŸÎ ÓéLGGÿÇý-?Þ·Fo×¼yóH$RLLÌŒ3=z4vìØÇ·*#,,œ’’rýúuEEE4›q}}}»µÝ»wï?þ000Ð××ðàÁ/¿p»e0}útAAÁ÷ïß?~looϾ®\¹¢¥¥5uêÔóçÏ{{{:aË©¹¹ÙÚÚÚÑÑ111ÑÍÍK…JJJD"}œœÌ}~`eeäïïoff¦¢òïì=@@_dgg+))dee ‚ ‚ÔÖÖ¢³Ó ]ü_sr~Þ|dgÿ\蔕U¢¢Òá&_Ç.Yb ý ¨?ñ×øUSóç²£ìì2--ü·où ææÚm gd”$$Ö®Ú•š?~$<}ÿûïËDE…xÙc¤–8  IDAT>~$XY¹ihÈøûï„Á‚ há¯øŠN×Õ5UT4hiáß½ËL:¦má'Oâ44dgÌ×iµ4ãØ±§sçêÍŸ¯ÏÛ?žhk{gÖ¬ñ~~;»8Œ† ‚ >Нyyèøõÿ™‡>|ÈÆ`@Û;¦T*ãÙ³øU«&u%)’›ÛÛòròùó+xÛ[—ðÝ»½÷í³¸}Û^Hˆ¦ñ!‚†~ùâni¡—–Ö£;ädg—KJŠHHˆ‰U²²mÓö¾y“N&7[[Oé´ÚÜÜŠk×"-••;ÌPÑ] ëÈÿ¯çέèŸc‡" IM-ÄáàÀ Rü_ ªÑÐ?oÄâˆ,Ònf‰'OâfÎÔæ’Ô‰íĉ@MMùíÛåU?[Zè;wþóãÞ½––p©pkõõM11?¢¢2߽ˬª¢ˆ‰é t ‚ÚÇ/ñ•DªÆ`0èV¬èØØØ\Ûöækii]LÌ;wÖwZgppÒ‡ÙAA{xõÀkCCËæÍ’“InnwÕb0X_¾ä¼Ÿñ=;»L\\ø×_uŽYhn>N]]v {AÔ>~‰¯Db•¬¬8šF˜@(Ÿ>]3,,•Édµ½ù”(%%6o^'‹•(ê￯X1qÊ”v–Gõ@u5eíÚ;ååõ{à6® …úáCöÛ·™QQeeõx¼ÔìÙ:ŽŽ–ææÚ"ìbçÎóððÀ~ ´´4ssóîAíãŸøZŽu©%%uêê²ééÅ 04l_ýý¿-^½ÍVÑKyy•ÖÖnRRbOžìh7“?Èϯ|õ*íÕ«´¤$’ˆˆà¯¿ê¸¸¬ž3G—û¦ñþþþýÖC‚ ná—øJ$V¡K™rs+q5‚“'nUìÙ³ø±cå'Mj}¼gç --… x°¸÷û÷bwuuYoï­RRÜbÉðC§3ccsß¼ùþúuZQQ­¢¢ôÂ…†§N-ž8Q‡ã£'Ç –ø"¾2™¬ÂÂtüš“S¡ª:*)‰„ ˆ¾þnsÒéÌ  „N£æË—©?üýwõ~YS||¾‡‘‘š§ç&11ç~´ÐõJááiáá饥ujj2 ZZLž<†U‚† ¾ˆ¯¥¥õt:SCC›[1v¬ÜׯDahøŸø󣺺‘ûc¯MM´Ó§ƒ/623Óêe¯Þ¿ÿ±i“ç̙ڷo¯ã‡ t:óãGBhhJxxZmm£žžòÚµ¦ À-â!–†ÿ×:€H¬ ë›rrÊ Uêë›0Œžž2g±gÏâ§LÍ}yÑíÛoëêšÎœYÚË.½z•¶sç?Ë–»¸¬Þƒ6:ó#,,%<<½¾¾iÂÕÝ»g/Z4A]]f »AÔ‡ø"¾’HUââ²²â‚äåU¨àpXUÕQœyÉͯ_§;Ç-ÍaAAõ­[o÷îµèeªý§O¿>üdýz³³g—u%ãPD¡P_½J Mùð!›Á`þú«ÎÙ³ËæÌÑ5 &R† ˆ/ðE|%«ÑÌeeõMM´úúf áVOæ„„$c0˜%KŒ¹Ôsöì EEéÝ»g÷¦3Ç=útûöY'Nü6ü‚+•Êxû63,,%"â{c#ÕÄDãØ±E‹ò0$AÐÀñ•Dªbß|‰Õ4ËÀà?“Ã/^$Ï™£Ë9¢måË—Ü—/S=<6ôæ^©»{ô¼8~|ÑîÝsz\É „ H\\Þ³gñ¡¡)JËäÉ£Y°hј‚ >Åñ•H¬BÓ æäTJJŠet:“3GRyyý§O„{÷6vT“É:u*pÎE‹&ô¸çχ޾ýöÏ?W®_?½Ç• 6By``B@@|QQíøñŠûöY,_n·ª… â‹øJ"U£«irs+¤Ðýé8ãkhhЏ¸ÈìÙ&‹úôPîîÞyR⎸¸„ß¾ýöÂ+;»i=®d𠑪Ÿ=ûöâE2P®¡!»zõ”eËLÆŽ•è~A Ã?¾ÖÕ554´¨ªŽäæVˆˆˆ‹‹HI‰rîXœli©ßÑÄ/…Býë¯0;»ièö±=àêúúêÕ7W®¬^³fjÏj$jkBB’ˆ#GŽX¶ÌäÆ Û¶9&!‚ á_ k**?㫘˜¸¸0ç൰°&!xàÀÜŽjpwG§3ô¬üñÂÃ#ÆÍmÝ’%F=«a0HJ*xü8688±¹™nn>îúu[KKþɉAÔ]Ã?¾–”Ô”•¥[ZèÅŵ’’"`ôõÿ]Ü’,#3¢£ýàŠ‹kÝÜÞ=º{"ÜŽœ;r÷nÌ­[vC4¸Ö×7$øøÄff–hjÊ80oÕªÉòò|š$‚ ¨ë†|-.®5j„¨¨Pff)‹…ÔÕ5c0Îñëó牖–%;¼|ù•¢¢ô¦M3zд‹K¸»û;WWîý B ëÕ«Toï/Ÿ?çHI‰Úؘº¹Ùkk+ t¿ ‚†Œá_KJê””¤¹¹X, ‹ÅbÇW¡<=½øôéöó1¥¤>{ïá±±ÓíêÚBﹺ¸¬±¶žÜ›þ÷³ŠŠ†§O¿>~—Ÿ_9yòèË—­/6B÷Í… ‚ºnøÇ×¢¢Z4¹Ann…¸¸ˆˆˆ û¹Ì/’ñx©_~Ñl÷Ü?ÿ 8QÃÒ²“½ÖÛºzõ«ëk—5«WsËfÜÜ­æ®_¼téÕåËÖ66¦½î{_il¤%þóϧôôâ‰Õ/_^½t©±°ð0¿ ‚úÙ0ÿV-/¯g2YÊÊÒ  ‹Å°X{üšòÛoÚN77Ó.^|¹v­éèÑrmªìБ/¾¼tÉjíÚA\I¤ê‡?úúƲXÈòå¯^µiµCAÄ+Ã<¾×”•G¢™ýedÄ©T†šÚ(@NNÅe.Xµ=ËÓó…Òrø°e×òñùráÂË'~³µŒé?}ʹw/&"⻪ê¨C‡,׬™*)ÙáNAPï ûøZ'(ˆ“——ŒŠÊÄá°"ãÆI¡ë•^¾LÅã%'OÝê”ÚÚÆ7¢¶n)++ÞÅV|}cyzôèÂ]»zµuÏ‘ÉÍ^^Ÿ}|b k.4 Ü3eʘîA_æñµ¤¤—Äá°99倿f{r8,,eþ|ý¶“ÃׯG áº)CCSŽyºk×ì}û,xØó^ÊÉ©¸{7úùóD,koÿ‹­­)ºCAÔ?†}|­C7}ÿ^Ìd²*+ÐÅM$RuZZÑÉ“‹[•/-­{ôè“£ã‚.fTˆŽÎÚ½ÛËÖÖôøñE<ï| ™qïÞûOŸcÆÈ>½tÙ2qñ!™"///22r {1lÛ¶m »Aüh˜Ç×ââŸÉ›²³Ë±X ƒÁB3¿z•6jÔˆiÓZ§•¸v-BJJlãF³®Tþí[þæÍV¬˜ø×_«ºûŒ,Ï57Ó||b=ú”—Wia¡ëë»cút­vŸë*âãã·oß>н`|… 1ÌãkYY½™™ƨª¢HI‰Òh tÒ°°”¹sõZåÎÍ­xü8öÏ?WŠˆvZó÷ïÅöösæè\¹²z`ƒkqq­»{ôÓ§_étÖÚµ¦máL 1Ô!2Ð]ÂüýýW¯^=н€ >5ÌãkEYNN‚DªFD\\XAÃaKJêIû÷·ÞîúõH•‘]É ‘›[acãnb¢~ë–=×þÆýàÇì{÷ÞGEe()I;8,°¶žWC Ã9¾²XHUU/‰>œƒ ÀÀ@ðúuš„„°¹ù8ÎÂBy``ÂåËÖ¦,.®]³Æ}Ìùû÷{’÷¿÷X,$"â»»û»¸¸<WW›eËŒ;Ú‚ ÃùK¹¦¦‘Á`ÉÉI~ú” ¨¬$£7_ÃÃÓgÍß* ¹º¾Öе²êd¯›ÚÚF;»»#GŠýóÏVQÑþÞ]œFc<{ïîþ./¯rÞ<ýçÏ÷Âçm ‚§á_++É<^29¹@£1 Të뛾|ɹ~Ý–³dFFIHHòµkk¹OöR(T[Û»L&ëéÓÝý<[^N¾y3êéÓ¯ ËÆÆÔÇg»ªê¨þìAÔ-Ã9¾–—“òò’99UèhU[[!,,ƒÁÌž­ËYòêÕ7cÇÊ/_nÂ¥6:¹mÛÃÒÒº  ½]O=Ñ{¹¹ÿñâEòÈ‘#àMV‚ ¡b8Ç׊ŠQQ!II‘ŠŠ:11aUÕQ‚‚¸7o¾O:†3D¥§¿|™zû6·•J‚<蛘H Ú×o‰HׯGDEeŒ#wù²õÒ¥ð&+AÐ1`k_ûºx¸¦¦‘FcâpX:ùömÆÜ¹zœÅ._~¥££¸x±—ªœœž…‡§ùúîÔÑQìã^A""¾/]z}ñâk55lŽŽ>fe5×va0˜œœîG¸ÈÉÉéÍãU˜öô¸6‚†“áü•]QA–——üñ£ ÐØHÕ×W‰‹Ë#“[æÍÓg—IL$ED|¿wo#—¯Å[·¢?޽“±±ZŸv˜Je<}úíÁƒYYeºpùÒÀÊËË›2eJUU÷bŸ?=ºukÞ6AÐP4¼ãk/›hi¡¨¼x‘4nœ‚ºº »Œ‹K¸‘‘Ú‚Uâç÷õÏ?Ã.^´j5êå-2¹ÙÃ#ÆËës}}³Ý/÷îmìÖÖxP_`±XÕÕÕ“““SPPèÓ& Іçüpc#•Éd•—×3ÌÄÄ€€VOO)44ÙÂâß•M±±¹ïÞe<8¯£ÁkttÖ‘#þû÷ϵ³ë«]çjk]]_OŸþ§›Û»E‹&DGûãå0¸ò:÷¬­­-//¿oß>*•Êd2/_¾88IWWiÉc¬«ëë‰ÕÑéÛ·™³gëpÖ––V´mÛÃU«&;:vc#Ø®++«¿}ûÏÁÍ6nœ1jÔˆ¾hˆÏ¹¹¹…††ÖÔÔØÙÙÉÈÈHJJ^¹rÅÝÝÝÔÔ4))iëÖ­€†††•+WÚÙÙ…††FGGÛÙÙmÞ¼966VKK«¬¬ ­çêÕ«ùùùñññh<}úô_ýhll¤P(ìæDDDš››ÛÖöèÑ£€€€°°0 ³eË–óçÏ_¾|¹U{öì)++ûúõkccãÚµk%$$lmm...=jii±··¿s玀€@ppð˜1cŒŒ¸-€ h€!ÃÈÅ‹/*+TT<Àå?%¥††§œŸ+*x÷.AââZeåƒ'O0L´ª¼¼ }ý“6Ücá!"±ÊÑÑO]ÝÁÄäÌÝ»ÑMMTž71 øùùuåú„v@jj*»BMMÍqãÆ=|ø]øÑ£G*•š™™I¡P˜LfLL Zz:»äøñãKKKÑ×FFFH{¹‘CBBÚ­M[[;00==##}ÍÙFÃápéééèšššœÁ`(((DEE!²pá .ðêwAP_Vã×3Æ]»ö†Å꤂€ÊÊh\BÑÈHíÉ“80|ÌË«¼{wCSÍÖö®††¬›Ó '%\»ö&**CSã†í¢E†ô7ƒÂç61OKK }1~üø¢¢" Ã9ì344 eggoݺ•B¡·Û ‘HTTüwõ¸””ú‚@ hj¶Þˆ©mm$‰ÝV§”——3™Ì±cÇ¢?jjj±{Àáp+V¬ 444ŒŒŒ¼sçN‡¿‚auÿuòäÑ]ÏYˆ €Á`^»öfÒ¤³nnïX,‹…|ø@˜;÷²;‡}ôhK×kCsYpññcöÒ¥×-ºZUÕðàÁæwïŽ,^lƒkï©©©q>“™™)  ªªÊ>‚ÙÙÙJJJ)))ìw¿ÿhnn¶¶¶vttLLLtssk·!YYYö@¹¶¶666¶£.µ[›’’‘HD_'''Ÿ?¾ÕYx<‡Ãååå¡?æææ*++£¯nèdeeäïïoff¦¢¢ÂõAÐVñU@kj:‹íƇb2‘¦&jSý‘Á`Öfg—:4¯ëwC¯^}³iÓývßBþÿ0«µõmaaÁçÏ÷†…œ;W>%É+6lØ»wohhh~~~TT”ݺuë„…ÿÝR~ÿþý999ß¾};~ü¸ÝŽ;ƒƒƒËÊÊÂÃÃOŸ>  R©4MHH¨¹¹ÙÙÙÐÐЀžÎ¾·ºbÅ '''‰”ššjiiyëÖ­ŽºÔnmööö'NœHOOOOOß³g‰Db—G›\½zõ¾}ûòóóÓÓÓOž<‰Þ|å4cÆ ƒqöìY{{{žüö ê;Ãj~0kÖø÷ï³»u ƒáœVd2YX,fÿ~_ ³l·Œ‰(7··—/‡€ÄÄü˜9S›}œÉd&ܹ™Y fí;§Nwpp ‘HJJJ666Çç,`kkkaaÑØØhccãää$((H£ÑJKK ?~ljj*--íââbkk;bÄ'''KKËââb333EEE4Öž;wnÿþýÆÆÆX,våÊ•/^ì¨KíÖVPPÐØØ8þüÆÆÆ… ^ºt  ¡¡ÁÙÄÍ›7÷ïß?yòd!!¡5kÖ899±§ˆQèñ£GV®\Ù'¿M‚xÓö~ÕöãGÙ¯¿vøÅׇa±Úý`0pèмǹ-¾~=òâÅ08vÜ8…ÈH Ã`°‚‚ÜÜÞæäT,_n²cǯººJÝþ$|ݼ7×gNNŽ––Ö0»ÂOœ8A$}||ºR¸÷¿C‚zl¸_µµddÄ««)‡Ã`±XXLfÛ/ A€‹ËkaaÁ={æ´{ú­[Q/¾D¿»˜LVVVé›7ß k<Ž `êÔ1çϯä2úôöþrüx@»÷´p8ÌÇ`|m‹FcÖÔHÕ……Õ5$RUAA šf ƒÁ((H©©ÒÖV˜;WWUUFMmTjê—íÛ¹å „ ̆a|Åã¥ÔÕe‰ÄJ΃ @"‹Ä>~¼]WW)88‰\q8,/ù×_«¸çñˆ?zôiGï2™¬””¢èè¬Y³Æóà“ AÍÍ4¡Œ–•‘+*ÈœCR«¢2RMMF]]ÆÈÈ}¡®.#%Õξ²§vËËÉååäVCR¬²òÏ©]sóqܧv!‚ Öñ5---++kÚ´¾Úî´ß””Лš°XD\œ®©É*,”ÐÑ©•‘`$  @bìØ:…F F€N©Òh¸ª*I%¥&aa†ˆSD„)$Ähµ"<ü_¾|9rdÛã55·n½õôüÀb±èt¦  ¶  ËJ¹Oíb05µQhø\¼x‚šš :Ó;PS»wïÞíÿF‡„„„îñ¯v&ñ¦M›æïïßÿ]á­ää‚ðð´U«&IJŠÉËKÔÔ4ræni¡‹ˆ`÷ºÂÚÚºÕ‘²²zW××¾¾qX,†=#M§³òó+Ú­¡Ý©ÝÒÒz”ÑÐk5µ«¨(%$4ˆ¦v‡Ó¬ñ•AôMÊ[FFjFFjì[%ëüÁµ•òòz—×¾¾q8–Éd1ÿ›<#/¯25µ×m;$ÒÒ««ËŒ§0„¦v­­­Ûþ…A4T Ûø:l ‘õÉ“¯X,`2YLf;ÛÛÕZZº¤¥ÅÔÔdÔÔF™™iÙØLE_«ªŽTCR‚ ~¿v/[\,>mÚy:ÙnXec±?¿]&¨JJòò0AÔc0¾Roßf&&ÊÓh8èïh+&&ƒ+AÐà1¬öWNfÏÖ™2¥lâÄò7l×­›n` " €  µ^Ç‹ÅbH¤êè&AÔ¾á_“’’ž>ý7‘app°PZZƒÁ´ÝtÁ‚ &''§¿ûÊ•¨(cåÊIçέxýúpnî۰ƒ§O/Y²ÄXCCƒÁ`0QQ!tt[Pã+AÐ 2<ç‡?¾oß¾¹sçJKK×××ïÚµËÙÙÙÀÀ-@$SRRŒŒŒÐkkkV AAœ±±š±±ÚÆ@&7''$%$$‰Ýz‚ êkÃ3¾Nž<tôèÑ;wî;vLQQñÈ‘#ìw-,,ž>}ÊŽ¯/^¼˜9sæ«W¯¨³=!))jn®æzÉ-Û‚ ˆSOæ‡_¼x¡¬¬\[[ ðõõ7n\cc#€N§;::âñxyyyGGG:ž““ƒÁ`¢¢¢ÔÔÔ¢££ÕÔÔäääÖ­[WW÷sWó¶gBBB EDDÆŒãåå`0힎6ÑöµÐÇ===ÿúë¯<|øPPðßg^­¬¬üýýÙSÄÏž=[µjûÝv»„Á`<==uttäää.\¸àåå5zôh)))vþººº 6ÈÊʪ¨¨888´´´p~|“Í›7£%)Š˜˜XRRR~ù‹› ‚俬¬¬¬¬¬Î¬[·nýúõeeex<>..=xñâÅ•+W¤¦¦š˜˜;vŒ@ ,XðöíÛ3gÎèé饦¦¦¥¥M:ÕÁÁ¡£³(а°°»»{iiéýû÷(ÊåË—Û=½®®ÎÃãíkÔ±cÇçÎã<ÈÊÊRPPHJJBÏ«ªª„v»„žeccC&“ïÝ»°¶¶&“ÉwîÜTUU!bkk;gΜÜÜÜÔÔT}}ý3gÎp~ü—/_ÊÈÈÐétA¼½½õôôX,÷_rÿ_@AƒPãkmm­ŠŠŠ¡¡á™3X IDATgØÇ_ZZŠ¾Žˆˆ022BLjj*‚ ÚÚÚè»ì×mϪ©©¼råJmm-‹Åjhh`2™Î‹ÅZºt)‡³³³ûÏg€@ ìÞ½ÛÉÉ Aooï¹sç²·Û%ôÝÄÄDAh4Z«×F£áp¸ôôtô¬ÀÀ@MMMÎÏ`0¢¢¢Y¸pá… :í?Œ¯ACWã+‚ gÏžÅápåååì#""ÿ™¢”’’B FCßMKKk[OÛ³ùøñãªU«FŒ1cÆŒ—/_r9 ///))©˜˜‘çÏŸÿû™ ÑÑÑššš,kÙ²ewîÜA8âk»]b¿ÛîëÂÂB@ss3z055UDD„óã#²k׮ݻwWVV vÚ_!‚†®>ŸSXXxóæM ‹Ã‡³ÊÊʲ£Nmmmll,z½ñ©¤¤D$Ñ#ÉÉÉçÏŸïè¬ææf‹õôéÓšššÍ›7/^¼¸¦¦¦£Ó;RRR²o߾˗/›››;;;oß¾½ºú?O°˜™™544|üø1""bÙ²eœouôA¸Àãñ8.//ý177WYY™ó㬬¬‚‚‚üýýÍÌÌTTT:­‚ ºz_Y,Ö¦M›öîÝëëë‚_±b…““‰DJMMµ´´¼uëçYööö'NœHOOOOOß³g‰Dêè, 3oÞ¼€€2™L£ÑÅÄÄ::½¾¾½!ÊùAíÛ·¢KŠ>ŒÇã÷îÝËÙ·råÿØ;ϰ¦’.O½·Ð{EŠ"*¢KQì ¢"ö†°‹¢¬Š ¢®Šu±¡kc»REĆ(HGz ¡'¹ßë—ÍBA˜÷áÇe2sæÜ;ss2gfÎ8lذÁÔÔTFF†ñ#Ö7ÂàìììééYPP™™éëë»lÙ².y¦M›F¡P\]]Ù{Òùié2žeÇ'4~üxÔíyçÎ99¹ºº:AH$ÒªU«ÄÅÅ%%%ׯ_ßÜÜŒ:HÑRmmmÞÞÞòòò¢¢¢...õõõhz÷R‚DDDhhhðððèêêFGG³(ÎXýúòå˼¼¼_¿~¥ëüöí[,{ëÖ-„Á»›8}ú4š‡žÎT%ÀÒ?Œ H]]«««¤¤¤œœœ——Wkk+£n(7näçç'‘H¬Ÿ0ûm@ á ùo#ôD°pþëðd÷îÝ………aaaìd†m@ ?/#6¾Äp£­­íû÷ï—.]  ù$RÜ @ Ãh_‡ˆ7oÞØÛÛoÚ´iÆŒØ%>âÌ™c_ÂÉ8оÓ§O¯«PˆàÎNjffYZZÑû÷…ïÞ”•5  °T,£¬,Á)U!2p }Ö´¶â£¢ÞøP”œœ÷í[•JÃã±T*>iÞÙIE/”•%¹¦%@ºíë0%>>ëí[ÙŽ܇ax<–B¡¡éô Fh4DEÚWFŒÌó_G––zÆÆUJJMüü,¶÷fjjjohhÅ Âpü:|Áãi**¤øøÓ—/'ýõWl{{'ÝÜ·téYôB^^LYYREEREE½ EˆDÑ¡Õ@F;оwyÝÝ­V®4¿|9éäÉØŽJg'¥Kñk×Ö×Õ–”Ô×}úTrÿþ§ÆÆ#Z"QDIIRYYBYYRYY½–—Ãá @…k_ÓÒŠŸ<ÉX¼x‚ˆˆ€ŒŒp]]³„„ ýÓ¶¶N>>‹âà Ôʺ¹™_¹‚ZÙDz ÐÐAÿº”êì¤~ÿÞP\\[TT[TT[\\ŸUTTK·»¢¢Œ#]ôBAAvv×ÉÉéæÍ›ÜÖâç "" Na„~84ÂAºÄhb„‰}}ñâ…Í`ê3¨··óž>ý”‡§MM­ ¦Fš—·]D„„~Z]-ƒÃQÄÅëØyã(BU‹¥ððt<–D¢àp•Ÿ¿“ÊÇGåå¥ðñÑxy)x<“õ½ýÂisHHúúÎß´é—3gž_¼ø¢½Ò×ͯ¢¢¢¢::²Ýí.Ýâ¢ïÞ”–ÖS©4//^VV´Ë䮚š´°ðÅRRRrttšº #333Ø… œ‚ÅÈ¥«}ãƒÇ3RR.Ñÿ-.–Ø¿ßþ÷ßoegK>íºp¡`öìãŸ>•dfJÙØèïÛgßëþÑøø¬•+/R©4ô™R©˜ÖV|[@À"È¿ûPx%¯\Y3Øf$%…|}çoÜøËéÓqššDŽÈ0000PbLìâd®¬l,*ª}ù2§¸¸}ÝÌ22"**’?—@8ËÈœMJÊÅb±4Ú¡$•J={6€ ˆ‡G˜  ¯µõ˜•+Í·n½ H||V||–›ÛÔ;f‹ˆð÷$ÓÒR/4tåÚµS©ÿþlA¤£ã?Žâ¶6Ѝ(ßíF•’òó[8¨Uôädno§TT42Nî¾|™såJ™üÃÀtrWII‹…Ó`dä32íkLL&ݸ”–Ö¡T*uÕª‹.¬\¸Ðh÷îÛ--í¨óóêÕW‘‘ïv옽j•yO«jgÎ{åÊ:7·Pú(¶;4Í×wþ ÜÓ°ƒ—ßÓän'szzIYY=ƒ‡/'×Õɬª*Åâ— üŒŒ@ûZRRWZZß%‘öA•Ь[wùÂ…•&o;:(h2¹Ýßÿîõë¯Zlf¦ÁTø/¿èž;ç¶~ýe3 ‹ÇãLLT&NTãð-ýT0u2S(´ÚÚ¦ÊJ£Ý}ù2§¤¤ŽFû×ÉL$Љ"t»«©IàáÒ}@ È€ö5))‡Ã¢£RF0@wëÒh`ݺ˻wÏCëÿAh4ðí[Õ¢EÁVVcXÄtRvöìqgϮظñJwK¡PÝܦrônFx<–H%E»ØÝúúæââºââÚ’’:Ôî¾z•ñÏ&pJJ?öìÖÔðKIµrI}é3Ãn›ãÀIHøÊ4Ñ¢‡Ë8ð@VV´Ë–Ô0'&fOŸ~888î¿øsçŽ?}zƒaܯ‚Çc%$==Ã<=Ãrs+9q+#qqÁñã•æÏ7ܼÙòÐ!Çðð¯^í*(8òþ½ßíÛ[Žq¶·7––Îή “ÙÈb0˜¼¼¼žR0 ðóóO:5--­9B^^܈ é7Ý{øaìfÐ3ôÚu9® ™LöööVSSãçç×ÒÒòóókkkãx-ƒÁH¿ÒhHbbv÷Á+ÓœX,RUEÂb1TjWW/…B£Phþù°e‹U÷â ¶¶vlÝzƒ±ÈÙ³n­­'N<›>ýÐĉjÛ·Ï67ר F°XŒ¼¼˜¼¼£—žSÛ:“““ÕÔÔMMMpvvÎÎÎfú­Á~NdÄ@ïötðx¼ÏP꟟ojjZSSƒþëááQTT¥¤¤”••åééYWW4”*õ‘f_³²¾“Hìþ´¡Ñ‹P™ŠÀ`0X,&0ÐÑÅ¥Ç ÁÎΦ4ÍÛ;Akl¬‚ZSý·oó}êä2q¢Ú–-VÖÖcà÷ò0AZZZVV ++H$«««edº†¾êSNdÄ@ïöŒ:th(u ÑhµµµôïÞ½ûäÉcccT½S§N¹ººþöu¤ù‡_¼È!pìç§Ñ]-‡åççùçŸ ,Œ+Š‹‹ÙîÝó0 •JÛºu=ÝÔT=2rÓÝ»bb+W^œ9óØÍ›ïÐ…<á@àááíýðƒ.9;;;·oßN$edd¶oßÞÙÙ ¸ÿ¾Ÿººúµk×М +W®”’’RTTôööfôkÙÙÙÑ·›···‹‹‹?|ø©pÔ/§¬¬œ””ÄÙ‡¡sïÞ=…úúz@xx¸¶¶vss3è­Eüüü”••¥¥¥W¬XÑÐЀJc³“P(¦Å±½:f»w³žÄ>xðÀÈÈH@@@NNŽM«É´v¦wǃ ÓÓÓ“ ¤Ë‰ŽŽÖÑÑ‘‘‘ñôôloogz›h\º™ ¡[\ ‹¢¢¢žnœ©À~·×iöõùól ¥¯‘ ÿcöðx={vÅ´iÚìÞ¼ÙÒÛÛÖÈHyút.™šª_¹²öÙ³mzzr[·Þ°¶>róæ;¦¸B†Œææf2™L&“¿ÿîëë»lÙ2^^Þ¾æ}zøðaº|—¨¨(tÜÓ§OfÍšÅT8šÿرcW®\122Ôç3šY°`µµµ——Wee¥——×õë×Ao-’˜˜õðáÃçÏŸçää8pý”ÍNròäI¦Å¥¥¥/\¸Ðýš)Ý»S±MMMÆÆÆ¹¹¹GݹsguuuQônB¡0Y€Ââ™0r÷îÝׯ_úøøÔÕÕ¡‰!!!<¸ÿþãÇ{2ð)))€ŠŠ ôß .ÄÅÅ)((Ìœ9óèÑ£tãÊôÆY<¥¾¶ Q삌 ÚÛ;UT¼åä~cóO^ÞKYy«–ÖïÚÚ¿£)ŠŠ[mm/ZldäWZZÇ~Õ¬3dg—{x\WRÚ:iÒ¾ ÛÚ:v¯£GGGGGÇ^³rss{JéÒù…„„¾|ùÒœºººåååèuLLŒ¡¡a]]@8zôh}}=Fkjj¢R©8.33ÍyûömMMÍÜÜ\ô½knn|ûö-‚ K–,Ù¹sgOÂÑ"éééì<(@DD;9Gì<™úúzEEEz"ëÑÑѹ}û6úé—/_è×lv’žŠ³¸‹.=œi7c*¶½½=++‹L&S©ÔÄÄDT½C"Ìöôß¿Ÿž1g÷»Cº½AÏŸ?GÕc¬ˆÞ#""_FùŒ‰( %%%% `ìØ±8.,,¬§g!°¯íź!Ð[`mCG”}MNÎc߸ÊÉyih숌|ÛÞÞyìØEÅ­ [—-;G&·‘H­66G¦O?ÔÐÐÌY ‹Šj|}o«ªzì Žmiiç¬ü ûö5''‡þ/f„ñ§_777oÛ¶ÍÌÌŒ±,›9ùøþrYTTA¤¤¤Å‹ N›6íÑ£G‚”””Z[[ÑRééé|||ŒïÿÒ¥KwìØA&“éjwŽéèè`çAAûÚl>™€€WYYIOaÝ"|||Ýå°ÙIz*Îâ.ºØW¦Ý¬'±ÑÑÑæææ†††«V­bj_»Gz0{Lï®ËôõëWF±hqºžŸ>}êò:ääät¯ˆL&‡‡‡S(ô_¶gÏ…žnœ…À~´kzµ¯#Ê?üòe®×•D"QdË«ÖÖN~ü’%“Yµjê•+ky……ù®][ßÚÚ±jÕ¥övæî‘þ¡¬,¹oŸ}BÂï³f=r䉹ùÁ [[;8XÅ(GYY™q‡@VVWRRêžS@@`åÊ•Ÿ?Fz ÒÝ=§””ý{¤¾¾>%%¥µµ•F£Ý¼y³®®nÍš5óçϯ««#‰8.??-õíÛ7FÉ...·nݺw‰‰––VOÂÑtÆstJJJ‚ƒƒ­­­·mÛFOdÝ"òòò………hJZZÝßÈf'é©8û0ífLŶ¶¶:99mß¾=555$$¤¯1ÒÓ3a‹eb_PSÈÉÉ‘——G¯Q/tYYY÷ü‚,]º4##ýƒÁÌš5 ÍÏâýb*°¯íÅæ£`Áˆ²¯‚›7ÿbd¤*..ˆÅbp8,:ÏÁ`$%…oÞÜ — ^öîß®]s­­Ç>üˆFCäåÅ®^]·oß"zdD"Q$"bSnnå† WØÙíÓ'TT$RR|çÍøð£‰Ž{RW×ÌÙZF'+W®ôððxðàAAAA\\ÜòåËW¬XÑÓ «ˆˆHSS™LîUl—œ‹-Ú¹sgQQQzzº­­íéÓ§1ÌÌ™3£¢¢H$RGG@ ÎÎΞžž™™™è$.£Ø™3gÖ××ûùù­^½šžØ]øž¤Ðh´Õ«W{xx„‡‡ÇÆÆÞ¿MgÝ"®®®»wïÎÌÌÌÌÌܲe }vÍNÒSñÆÆÆÐÐÐî×€êêê ˜v3¦bÛÛÛ;::xxxZ[[ýüüMMMý{Výþúk^^Þ»wïvíÚµ|ùr111ÀÕ«WI$Ò©S§s¢¯›ÐŠ+œ>|˜ŸŸŸœœìíííââ`zã,¢°ß^ý{2ÿ¡×!ðÏ™ÜF¡P- rs»àævA^þ7¯¦¦¶I“öùûߥgËÈ(•—÷ºwïcOrRS‹44vøøDžªuuäcÇžŒë«®¾c×®[……5ƒW×O ›þáÎÎÎÀÀ@t‰æîÝ»››ÿuòƒÿº¿¨TªˆˆHAAA÷OYç$‘H«V­—””\¿~=ZEDD„††®®ntt4š³®®ÎÕÕURRRNNÎËË«µµµËÜÒúõë…„„Èd2=¥»ðîÓQ,Ð?ܽ>™   ñãÇ£^Ä;wîÈÉÉÕÕÕ!½µH[[›···¼¼¼¨¨¨‹‹K}}=šÎf'é©8ÓyD„™¯aÖÍz{üøq %%¥™þù‡™Þ]Oo`ð‡††ª¨¨HIIyxx ®Ýýû÷‹‰‰ihhDGG£ò;;;ÍÍÍ…„„Ðâ ÅßßßÀÀ€ŸŸ_UUÕÇLJîî~ãLö»½XÓ«ôÁF›6]íè ª<øp÷®Glì—>%'ï¦çY·îrnne|üŽžu‰‰ù¼fÍ%Ÿ9îîL¢LpŠÎNêÝ»©!!ñ99•ÖÖcÖ®µ`sõòè/ÉmE†; &""ž²Þød¸K^^ž––ÖH²8‘‘‘ÎÎÎ,îhDù‡»@$ŠTU‘ÌÌÔ||„Ì̲™3õ kòòªèy¼½móò*££?ö$ÄÆFÿàÁÅþù0"âíà©J à'ÆÇï¸qc#ÀÙù̬YÇnÞ|Çq×4@††‘l_edDªªš´µ‰AA¾ŒŒRccUágÏ2éyttd,0:zô ‹m©Ë–MþõW›;"²Ua 3mšö•+kŸ>ݦ£#»uëiÓ††¾hkãÀNgá""""6là¶CÊH¶¯ÒÒÂUU$QQ^^•JÍÈ(Åb1––cbb>3f۾ݶ¤¤6*ê= QÛ·ÛΟo¸q㕬¬òAÖÆS45 8vìICCËT @ ƒŒŒÌÙ³g¹­Å2’í+‘(ÒÞNill!Eš›Ûsr*ÚÛ)3gê¿_ȸXWMMÚÁa±cOÐ3ј‚Á`Nœp16V]ºôlaaͨTT$÷í³ûv›ÛÔK—’&N سçNYY×£m!2 ÉöUFFPYIÒÔ$vvR)Zvvùôé:<<ø¸¸/Œ9·m³­¬$EF²ša%pW®¬ÕÕ•[´(¸¸¸–ENÎ"))´m›í»wøøÌyú4cÒ¤}nn¡iiÅC¦@úÁÈ·¯UUMFFÊ>>BFF)??™™ú³gÿq+*Š/Y2éäɦ§½Ò!p.¬’•]²äle%iP•ï‚€ÏÚµII» ªçÍ;¹zõ¥·oó‡R°ÏH¶¯â⮪Š4nœ@RR(3³0{¶Alìg2¹1óÖ­3kkÉaa½Äìâ [ÏË‹wq9[_?Ô!xxðK—š%$ü~ñâêúúf;» Y³ŽEF¾cý³@ CÏH¶¯ FZZ¸²’¤¡!ƒþ›‘Q °µG¡Ðž?ÏbÌL$Š.]jvêTL¯‹uÅÅoÜØØÒÒ±|ùù.FzhÀb1³f½sÇãÕ«]¦¦ê»vÝ7nÏž=wJJê†^0e$ÛW€ŒŒHu5IEE ‡Ã65µfe•S(4))!SSµGÒ»döô´!‘Ú®]KîU,‘(zãÆÆïßW­ ål€â>¡¦&½oŸýÇ{·oŸýìYæäÉûÝÜB_¾Ìá–>¡3òíke% ÇJK “H­mm¹¹•€9s bc¿t122ÂË–™…„>7­¬Ždf–/þÜÇÎÎWÈÀñöUŒJ¥UV6jhÈP©4©íóç2 Ì›7¾¾¾ùõë¼.E„„x==­/_Nb?NÓÌ™c\|ñâËxßÀÀ póçFG{Þ¼é.''êånaqðüùD©ÛªA ܇B¡]ºôrêÔ??NÿóO‡øøвB8ÎßߟÛ: " æüùĹs 44dΜyÞÖÖÙÞNY´ÈD\\PTTàÉ“Ìæævkë1]J§õ!?¿zîÜñlVd` ¤  ¶gÏ 3y²§ïc (+KØÙ;8L “Û/\H8w.¡´´^^^ ÁŒB^¾ÌY½úbtôÇ•+§ž;·ÒÔT ZVgáãW<[VÖ ))$" ‡A£LfÏ÷ôi&:œe„@ÀùøÌ¹{÷czz ûu-Y2éèQçcÇžœ<ùŒc7ÀQTT$ýü~øàÿÇ ?~,²±9:þÉÈÈw\Üb =õõÍîîלϨ«K'$øøúÎë˜ œg„ÛWK$Š~ÿ^ÐÒ’áã#HI gdü˜‚]´È¤¢¢1%å[÷‚ (þùçÃ>U·dɤ#GœŽ}ÂþôíÐ#(È»|ùägϼ_¼Øif¦éçwwÜ8ß;"?.ã¶jÈ óøqÆŒ‡_½Ê½tiõÅ‹«UU¥¸­dÄ2ÂýÀGÒùù VVcÞ¾Í/)©àíè ,^< &&ó¥±±ÅÚZ¿K) £¨(~üøS33Mee ö«7NQVVÔß?š@ÀMš¤ÎÉ;á4‚Ú®®“EE>L?u*öÍ›|~~55éa²×á ›6]ýë¯X{{ãË—×êë+p[#ÈgäÊË‹•–Ö44d(jkk%eÁÃ>1]U;c†î´iÚûöÝëî@fÍÒ¥fއ? Š òC€¨¨ÀúõÓ_¼ø="b“¸¸€»ûµ‰÷îß?/¯ŠÛªA ãÅ‹¯3gÍÈ(½tiu` “°0tC‘o_ÄÑ3S54dššÚkk›ëë›é§¨ÚÙ××·$%å2-{à€CVÖwÖçÖ1eٲɇ;:ô(88n Ê ÝhôîߺuÓ?ΰ°8¸pá©7Þ47s!Æ2Â)9}:nÙ²óS¦h%$ü>kÖXnk-Œ|ÿð·oUOŸfº»[ÑhÈåËI‚`±33 MM"@X˜/1ñku5ÉÖv\÷²‚ÕÕ¤K—’\]§ððàûT¯’¨(@À=>>‚©é°v3"(Èkjª¾fÍ4ýïßΜy—•UÎÇGPU•‚ ,!?-ëÖ]Žˆxwô¨³Ï>>·5‚Œ"F¾}­©iºqã͆ ¿HI ʼn‹ ððàħLÑD3´´´_¹’¼~“KJà IDATýt¦“Ž&&ª.$R©4z~ö16Vá߷リ¿±±Ê@ïdh!EmlôW¬˜"##’˜øõÂ…Äû÷ÓZ[;UT¤y¹­Ò;yyUK—ž+)©¿zum—H¨È0òík[[çµkÉ&22"·n½å§P¨`ìíÑ ŠŠÁÁqJšš2Ý‹óñp8ÜÉ“Ï/ž "Âß×ÚMLT……ùüý£ÅÅŒŒ~2 àã#©¸¹Mµ´S_ßråJRHH|jj‡UU•ÂãqÜVaNRRî’%g”•%##7ii¹­d42*æ_ß¿744¤yxmŒKœdd„ÍÌÔ££?ö$aÍširrbGŽ<îŸë×Oß¶mÖܹqãMÿ$ ŒŒ”qúüùÀÅ‹«ÅÅ·n½¡§·kÆ+11LbLB Üåúõ×..gçÏ7ŠŒÜ,--Ìmu £”‘o_ÅÄDE k2­­­­UUMô< ={–ÙÒÒÁT€Û½{Þ­[ï?}êC¸ F¶nåå5sÛ¶ˆá@±¯8ýS§–}ü¸70Щ­­sõêK'îݳçãO„‹„„ÄûøÜ\³fÚáÃŽxüÈÿŠƒ [F¾ððá'aa¾3tKJê>ü Rss-55i4ƒ’’DHH¼®®œŽŽ,S ZZÄW¯r¿:;›öO‡)S4¥¤„öî®­m¶´Ô>'íô^^¼¾¾‚½½±½½1€{ø0=88îÞ½´ÚZ²””¤¤·„ŒRNŠ=xð¡ŸßÂmÛlö· ò³3*ìkRRnm-ÙÎθ¹¹ýúõ×cÆ(47·©©IÓã?ðóó¼{W“SiggÜ“mmÙÀÀǺº²ÚÚÌmp¯*«ªJ>ª¨h´²32^~qqÁ)S4׬±˜1C¯­­óÖ­§OÇ=z”ÞÐÐ"++*&&Àm!£ˆýûïÿõWÌñãKÜܦr[dø‡ªª’EE?üÃee KBŒâìlÿ…ÑiÜ##e“={î d?è¢E&¡¡«"#ß¹»_aGÅ™˜¨Øüèÿü¹Ïœ97n¼™2åÀŒ‡{òí Utöï¿æÌó#Gœúíd‚@8Ë(±¯REEµ‚‰"ÂÂ|""üdr{—Øý¶¶ãxïÝëq•`Ïž--íŒ-þΘmñâ éé%ÙÙå,D­]k¡©)³woôUš4IýæÍÍÙÙåNN!õõÍ”6œááÁÛØè-ûòåÏ»w=LMÕ¯\y5cÆá‰v숄Û{ äÇ¢µkÿvu²uë,nëü‡Qa_eeEùøô-:ß¾U›˜¨ñðໜÈff¦®¢"yûö¢ðxìÞ½v±±_bc¿ P+¥;w<**ÏÔÔ(møƒÅbLMÕ÷í³ûöˆˆMVVzOŸfº¹…š™íóõ½””3Â&¤!C@m-yݺ¿'NTó÷·ã¶.HWF…}Å`0JJôñkIIÒÒŠ»d[´ÈäÖ­÷T*«•¹¹ö¼yãÿøãÎÀ%×Ò"Þ½ëA&·ÛÛ•—7 PÚÏ6MûÐ!ÇÔTÿ¨¨-³g<{–éätfܸ=îî×îÝKkjjã¶ŽŸ Ù²å:þÂ…• %vŒ û PU•*,¬hjÊP©4EEñövÊû÷]²9:N¬¬$½~ÍäÄuFüýíªªHçÏ' \1eeÉ[·ÜY¸ðªáè‡ÃNž¬Žh_¿öõõO&·{x\×ÓÛek{üر'¹¹•ÜÖ2| |ôömÁ߯éGàRdèÛ™0?/**’©©Euui,ÃÇG pee -Œ{4UU¥Œ•£¢Þ››k±&//¶iÓ/ÁÁqNN¦D¢Èu“—»{×ÓÅå¬Ý©ððMzzrÈöíÛ÷âÅ‹ËQWÇ“ÉÂ……'N;öTL¬^A¡¬÷b!Ä××wúôéÜÕ!))788nÿ~‡¾¾/666ƒ¤d´ÓË^’Ñb_UU¥Ð‰U>>‚œœXQQ­¡¡ò»w¥Ó¦i3ætp˜øçŸ÷ÿüÓŸŸ‡…@ww«7Þîß?(hÙÀÕ“’ºqcãÒ¥ç\\Î\»¶~Ü8ÅËb222²³³'Ožy’I?`‡)||„Ç—/?oggle¥7p %%…nÝr_³æo‡àÐÐU:—9ÄLž<922’ÛZ@—áw, º¥¥=0Щ޼¼œœúYDFF:;;÷šmôÌ¿JŠ‹kÚÚÄÜÜJ33u*•–’’ß%§˜˜ÀŒº·n½ëU¦¥¥ž­í¸={n|¡а0_xø;;ãeËÎ_»–Ì™È#))çÚµ×{÷ÚKHr[„£Å¾*)IàpXt‘–1/¯ÊÈH‡ÃvYBŒâà`’˜ø•`Cû÷/ª©i Šå”ž8öðaÇß~³ññ¹yàÀN‰…@F Í×÷ÎŒ:¬ÝKÈp`´ØW<‘(òÿñ«lkkGM Y]]º¾¾¹ººkÌáÙ³ ¤¥…ÿù§w÷º¼¼Ø¶m¶AA±yy ±‹Á`¶m³=~|ɹsϽ¼Âaø„εkÉEE5.æ¶"HïŒû ÐÒ"¢aù´µe1LNNÅôé:`ºŸêŠÇc&ܸñ†õFX”µk-ttd}|"á ¶K–L:ujÙíÛ¶l¹ÞÑÁÿ3òSC"µ?þtÍ eeInëôÎ貯è~Jaa>"Q$7·rút]W¯òºg^ºÔ¬²’ŸÕ«XèôömÁÝ»¬ÎèvvÆaa²ÏŒìŠ;\¸@¥Ò<<¬¸­Â£Ë¾æåU¡£LmmÙÜÜJSS5 ¼~Íľª«K›™©‡‡¿aG²¡¡²«ëdÿ»$R+gu67×zút[m-ÙÚúh—hŽ?#ÁÁÁ 4Ú¿^ATTT‚‚‚Ø)ŽÁ`òòòX§ôOšØ¾Jî77nÜ`ªÀ”)S››ÿýuõíÛ7ž°°°.:‹ŠŠÎ›7¯  `8ÜÎ`@"µž?Ÿ¸qã/¢¢ðPa€Á`´´´ºøÌfϞݿ7‚Q,qqq''§êêêž2#²|ùr!!!zÙTÝd2ÙÛÛ[MMŸŸ_KKËÏϯ­í§‰ï6ºìkSS[e% ü ±°0‘(ÖS ¥KÍbc?£ù{eÇŽ9‚=ú„“PQ‘¼ÿW55){û vÆÓÃGGÇŠŠŠää—F§¦¦–””,^<,¦Ó’““ËÿKO9óó󥤤8XõÂ… ÑчCWàîÝ»ôœ¿ÿþûäÉ“—.]ʨó÷ïßi4ÚòåËûq;?ÿ„ÅbW­2ç¶"Ã…ÂÂÂOŸ>Ñÿ­¯¯çH€zЉ‰)--õððè)ç÷ïßþ|h$ö.ty¹<<¸(®èÏq¶¶¶»ví¢§\¾|yöìÙl÷.Å_¼x!**ÚSæ.}•S]®‹X11±””ú¿‰‰‰ÊÊʯe€DDD°ó 0ŠÆ¯RRBââ‚èhU[[¶©©­¢¢ÑÖvàÕ«Üîùyyñ‹™„‡¿AØ[¸äà0aÖ¬±žžaÍÍœ?Ò•@À<éâã3g×®¨={îÐhœ\K5”¸¸¸Üºu‹JýqTÎíÛ·éÛ´~d2+_]]ÝÒÒÒ=)...S§Nݱc‚ [·nõôô;v,Óœ8@¡°»®Ojp—{÷ÒZV¯¶’ºî)((Ô××ÂÃõµµQÿ|ggçöíÛ‰D¢ŒŒÌöíÛ;;;›>!!ÁÏÏOYYYZZzÅŠ ?Žëè^ 0ë– …iq´Šî×GGÇÈÈ—UÞºu‹ÑÄ´^ séÒ%===iiéC‡]»vMMMMTTtÏž=L‡“‘‘éI Æ·  Ý_´Ttt´ŽŽŽŒŒŒ§§g{{;;bEDDBBBjkkÑ-,,ŠŠŠÐ놆†•+WJII)**z{{·µµ1Øïfâƒmç‡ ü….ô­«#ËÉý–][K–“óZ¿þo¦ù¿|)““û-99Mùºº»öî½Ë)…»öZYy›»ûµ¶¶ÎÁ«¥°9~­¯¯çååMLLD$++ ‹ÅVTT B"‘xxxV¯^]ZZzýúu@UUúKvöìÙñññd2––ÖÄøÿOf¦ÅÉd2//ïÙ³gËËË/^¼ˆÇãÉd2‚ €yóæ‘H¤¨¨(@MM šØExSSª3`ñâÅõõõ.\ÔÖÖ2þÄfTòÑ£G’’’‚\¿~]__ŸF£1ÞþÛ·oÝÜܤ¥¥¿ÿÎôù0ýú•——×ÃÃCNNžÒCu&‘Hyyy‹-š0aB—ºß˜˜ôÛ$??¿×†c¬tèdzgß°á GD±£ÿŠ+ÜÜÜ***ˆDâ›7oÐÄÇ;88§§§ÿþûïŒMïïﯯ¯Ÿžžž‘‘1iÒ$ooïžJ1í–GŽaZ¼¡¡áÂ… ݯÙÙÙ²²²?~D?¨©©¡¿ÝëEK¹¸¸H¤ÐÐP€““‰D:wî\÷·€D"eggϘ1# ùo·¤_³¿öôÊÌœ93'''%%ESSÓßߟ±OŸ>UPPàååµ±±9räêÈAY¶l™••Õ·oßÒÓÓÇŽËZ`_›‰uasü:ºìë¶m7- B¯Çó=>A]Ý'ôTdöìã×Ù¯âúõd¯wïúð…ÕW^½Ê3f÷ìÙÇË˯–¾Â¦}EÄÞÞÞÝÝAXZZ¢‰íííYYYd2™J¥&&&¢ï*úb¤§§£y˜þ@D_i¦ÅëêêÂÑ£Gëëëi4ZSS•JEå$$$ ‚£Q ,~}ž?Ž HGG£bè§ŒJR(YYÙ¸¸8AæÌ™sèÐ!4OkkëÕ«WMMMŒŒÎ;×ÝÔÑéÉóìççøçŸU%Ó§Ogü‚cçÇtYY™ŸŸŸ¢¢âüùóŸ>}Š>Ö ½}MO/‘“û-)‰3învô¯¯¯WTT400ð÷÷§'êêê–——£×111†††ŒM¯££sûömôÓ/_¾Ð¯»—bÚ-{*Îâ.rssÝÝÝwî܉ Èõë×mll#×½^ôÓÔÔTäÿ=™ñšé[ ""‚¦÷þ2}eèïrDD„¦¦&;b¡P()))cÇŽÅápaaa¨d—™™‰æ¹}û6k}m&ÖÏÚW&œ=û|Ü8_ôÚÁ!xûöA/VPØÚeœAçêÕWjjÛšÙ¬‚F£9;Ÿ±´<ÜÑAáˆÎL)/o°µ=6fÌî—/s¯–>Á¾}ŒŒ$‰ ÅÄÄäܹsôôèèhsssCCÃU«V1¾“hÀrþµ{qA’’’/^,((8mÚ´GÑKåäät‘Ð]8c-_¿~eÌßý5¦+¹yófww÷êêjž’’äÿÃD77·7oÞôÔÍèôd_srr]г֙ýÉ°ŽŽŽÈÈHsssmmíââbÖ™‡Þ¾îÛwoòäýTj/ŽMØÔ? ‡ÃUVVÒSøøøm¨¨(cÓóññÑçÅé^ aÖ-{*Îâ.rss455i4šú*ÑÛi½]L`÷kÆÄæææ())Ñh4Æn‰vE¤7ûÊô•immE?}úÄÇÇ׫X2™N¡üø.¥Ñh{öìQPP@¤¤¤„Q`zz:kýh&ÀùW&hikjÈè^RmmbNN%ÀÚz,Fûð¡ˆi‘… 0Ì;ìîmÅ`0GŽ8×:ű ‰Ý‘•ŠÚ2eŠæÒ¥g/^äÀ¢Á¡dîܹÍÍÍaaaŸ>}²··G[[[œœ¶oßžšš˜Ÿ@ ô*“iñÖÖVvóæÍººº5kÖÌŸ?¿®®ý¨¯›U°Ø^Þº’ŽŽŽwîÜAÍ•¢¢"@ZZz̘1ÉÉɯ^½¢Ï÷ôTáAÚcSYYùùóçÒÒRccc~þáu–*†Ü¹“ºh‘ ;tû‹JJJ‚ƒƒ­­­·mÛFO”’’¢Ûúúzúñ)hÓËËË¢)iiiè©ÓnÙSqÖ˜››755%%%ÅÄÄØÙÙ1~Ô“¶ì# °nݺ’’’ªªÁéЩý²2¶6 2}ePSÈÉÉ‘——ïU,‚ K—.ÍÈÈ@ÿÅ`0³fÍBó‰D—Ÿÿ#€ü·oßXìk3±s½2êì+eHçäì<ƒwî|`ZDD„ßÎÎ]µËf-JJÞÞ¶§NÅdg⎞óçÝ||æøùÝݱ#²³“:xuq;;»ß~ûÍÒÒRZZMlooïèèàááimmE}¡èô*›0-ŽÁ`fΜE"‘:::‚€«­“ÕÕÕÿ…u¥è”p¦M›F¡P\]]Ñ”ñãÇ?þüöíÛ_¿~ÕÖÖ^»ví‡Ì;géõvh4Ú³gÏìííÍÌÌyõêUxx8g÷ œwï ÊËæÏ7²i4ÚêÕ«=<<ÂÃÃcccïß¿¦/Z´hçÎEEEééé¶¶¶§OŸf,åêêº{÷îÌÌÌÌÌÌ-[¶Ð×àt/Å´[öT¼±±+ír‚Ãá6lØ`jjŠ.D¢ÃZ[лMqqñáÇ•””¤¥¥ÅÄÄW¯^%‘H§NêÛeà×_ÍËË{÷îÝ®]»–/_ÎB,úr ­X±ÂÙÙùáÇùùùÉÉÉÞÞÞ...àìììééYPP™™éëë»lÙ²^õd¿™ú}ÿ¡×îH‚J¥ihì { ÈË—9rr¿UU‘ÑÔô™1ã`O¥²³Ëåå½²ûTÑüùÍ™sœBé}Bk€DD¼UQñ^²äL}=»NìÁ€}ÿ0‚ =„††2&?~\BBBII)$$ÄÅÅEFF¦× Œ)Ý‹#¡¡¡ÁÃã««ݽ`oþµKþÎÎNsss!!!„™GwãÆüüü$©û×××?~\CCƒq™#=ù‡™¦w Œõú²ßºuËÌÌ,,,¬½½©ž$¥ØÏïδirP`¯ú?u'Þ¹sGNN®®®A‰´jÕ*qqqIIÉõë×77736J[[›···¼¼¼¨¨¨‹‹K}ý-ÝK!̺eOÅ™N(" MŸ8}út—t¦õ2íùHo‹500 ïÙ¿¿˜˜˜††Ftt4`Ã?Üåͪ¢¢"%%åááºv»‹e|¹¡P(þþþüüüªªª>>>tŸp]]«««¤¤¤œœœ——WOûÝL,€ó¯Ì±±9âïAÊJ}ÑĬYÇUT¼YÌÙÛ¹¹…öô)Srs+UT¼ÏK Âìðþ}‘‘Ÿ©i@zzÉTÇ”>Ùבͮ]»–.]Ê"•JE×súœqŸbû:yòþC‡rPàëA¼-ã\ο2‡…XFFXLLu[XhutP²³{ô®\iû=~‡M45e6múåèÑÇ}*Õ?LLTããwhjÊÌ{âôé¸Á®Òmmmùùù—.]Z·n‹lX,Ç™V=ÁÎÄ6w)(¨.,¬±´Ôã¶"H½ö ­-›—W X°Àõ¾§RsæÈȈ\¿þºOumÛf«¥Etw¿ÎÎ9<DLLàúõõ>>s|èî~­¥¥c°k„tçÍ›7&LX½zõŒ3¸­ËH !᫈¿‘‘ · ‘ 6p[‹¡f4Úײ²zÔüЗ8ééÉãñØ„„ìžJáñØeË&ÿóOJ{{ŽŠÃã±ýµìóç²økÞ+ ÆÝÝêÊ•uÏŸgÛÚë)®2dð˜>}z]]›‹?!½òæMþ¤Iêxü¨ûšyÈÈÈœ={–ÛZ 5£®ãjhÈÐhHAA5`ËâpX%%ÉœœJ'­._>¹©©-:ºo‡ÐijÊøøÌ9zôÉ—/ߨ9›XYéÝ¿ÿ+‡µ³ zþ¼Ç_ ÈðçýûUnkô“Ñh_ \VV9@[›XUÕÔÐИ2EƒB¡¦¦2ß EfÏ6¸|¹—(¸ÝY·núĉj›7_ëÓØw hhÈÕˆÅbNœp)/o8vŒó§×õ„  opðòsçÜ®]{5wî t¼üD¤¦ápXCC8ù ùYuö ¯¯€zkåäD…„xÑpÆÆ*‚ÄÄ|fQpÒ$u==ù~ a•”$üü†„ħ¤|ë·Úý`îÜñm¥ÑY³Ž±X½ CRS‹´µ‰BB¼ÜVé'£Ó¾Êgf–0ŒŽŽ,eIAA\TT 7· u÷ĪUæwï~¬©a¸‡5K—šYYñò ŒÓëX ®.ýàÁoÎΓ<<Âéì<d0øø±®†üÔŒFû:fŒBCCË÷ï ]]yú¶× TÉÉy,ÊÚÙóòâoÞ|×z[ÒÜÜ~àÀý~”¼¼ø}ûìOž\úèQú‚§àºbÈð‡FCÒÓK áä+ä'†û›Ü‡}}y óùs™¼¼˜ŽŽìÓ§?‚GOœ¨þâEnRRΜ9=•âur2½|9iݺé}Ý6 %%äïoçéfi9ÆÚzÌ€î¡ï89M42RÞ´éê¬YÇ|}ç¯ZeÎñ`ñ/^¼°±±á¬LÈ褴´®¹¹]OO~0„ïß¿=—´O †L":ùøÚC+ÈODe%[£”Ñh_EDøÅ?.³±Ñ×Õ•­©!×Ô¥¤„ŒŒ”;;)Ožd8àÀÂölÞüËÕ«¯îÝû¸h‘I_«^´È$))wË–ë±±ÛÅv}FK‹øäɶsçžïÝ}çNjPÐ2UUŽs733ã”(ÈpÆÑÑQIIi°kùÿ!2½æì+ŽŽŽ}-ÒÜŒ¯ª¨®èèÀ)+“ääúpòdD"..®««Ûk6 Âö±0#‰Õ«/áñØóçWVW7ÿGdäfss-©m̘]4ã­¯¯À¢øæÍ×¾~­ˆõîǰ¥¥ÃÖö˜¤¤Ð­[î8wüóiiÅa••ü±pùòÉ\ÑaÁ… ‰AA±ééû¸¨CII]däÛèèyyUêêÒ..“&ÈÊŠrQ%ÈÏÅhœèëËþü --,))ôõk9@D„OCCF@€‡õ*bÀÆ3²²¾¿z•ÛªxÎ[™–Vü×_1ý(Î •cb¼'ùøÜ\¾ü|e%‰[š@ Lùö­JS“È­Úß¼É߰ኹùŸgÎ<74TŽŒÜôâÅNww+h\!}bÔÚW…¢¢2¹ «+ûõë%NÆÆ*ÂÂü±±¬vÁ ”¦NÕ<{6¡µëéÉíÚ5ïäÉgïÞôOÂÀáã#ìÛgºêÓ§’9sN°ˆ =yyUššœw³¦½rãÆ›£ööAÕÕMÇ/IK 8uj™¹¹öPžî1Œ^ûJ£!ÙÙß::rô%ƆÊMM-iiÅUU½L±lØðËóçÙtÃÜWÖ®µøå½M›®²Þ4ØÌž=.>~‡¡¡ÒÒ¥ç~ûíî*Ðùö­JCcèìknn厑ãÆùúû4åJƒ IDATGϘ¡›œ¼ûöí-àî[È@¥öUQQ\TT 3ó;@WWîë×rtÚÈH¹¥¥Ç>žÅZ‚••ž–ñܹ„þ)€Á`Ž_B¥Ò¶oìŸN!--|ñâêë×׿z•gf¶ÿúõ×£sJ2| “Û++IêêÒCP×ׯ›7_³´ |þ<û×_m^¿Þ½{÷<®ûƒŒfF©}Å`0cÆÈ}ùRÐÕ•mjjC·ÃêéÉóñÔÔdz‚Å`0ë×O¿}ûC¿'/%%…NŸv}ü8ýŸRú'ƒXZê½xñ»«ë”ß¿¹lÙùÒÒznk½””ÔÔÔ×¾~ùò}ݺËVVÙÙåÁÁËSR|ÝÝ­ÄŵRȨb”ÚWÀ˜1?¢$êèÈa04â?€;VQLŒ?1ñ+‹³tP/ž ..ð÷ß/û­Ã”)š7þ²gÏáóŸŸg÷îyÿü³!?¿ÚÚúÈ?ÿ¤À,„+”–Öc0±A’Ÿ””³pá)kë# ááããw,\hÄ­ÅüÌèíRúúò_¾|§RiÂÂ|òòbèb€±±rcckssûë×½Ä æáÁ»¹M½r%y Aw옭®.íéÖ«9,,tâãw89Mܱ#ÒÁátVÖ«Ð)-­“äççá¸äŒŒÒåËÏ;9éì¤^¾¼æÞ½_§MÓæx-Êh¶¯ mm5à¿KˆŒT¾}«ÒÑ‘íu1`åJs …ñ¶ßjððàÏŸw+(¨öó»Ûo!œE@€' ÀþÉ“m mÖ¬c¾¾·I¤Vn+E”–Ös<úJee£—WøìÙÇ››Û¯__ÿè‘×Ì™c9 adôÚWY‡NÁêèÈ¡Qþ††ÊÔqãz‚ˆ‰ 89M<>q g¬ª©IŸ?¿òúõ×Ãa"–ÎØ± ÷îy^¼¸úÙ³LSÓ}¡¡/à9²¡¡´´^QQ‚SÒH¤¶={îKO/ ßx率¥¥§„C ,½ö•‡¯©)ƒF™ÐÑ‘ÍÍ­¤RiI))!ÁââZv¶ß¬YcQZZÇŽ1f……ί¿ÚìÚõéSÉ@äpýÄÄß×­³8pྭí±7oò¹­däSRRÇ‘ñ+…B }1yòþ{÷>=êã ½Á¡dôÚW€žž<:~ÕÓ“oo§֠醆Ê55$ ÁØØÞ­¦ºº´µµþéÓqTfëÖYææZk×þ]W×<@Qœ…ŸŸgÛ6Û'O¶IH:8{y…ÃÕÅA¥¬¬^Aa ö5+«|Á‚¿öí»gooœàãè8ƈ€ 1£Ú¾Ž¯ôñc1@K‹ˆÃaé.âñã•?}*±´Ô‹‰é} àímûñcq\\/[fYƒÅb‚ƒ—ãpØM›®¢#éa…ŽŽldäæÐÐU©©EææþñÇ~‚ ôJkkGM YI©ÿþáÎNêñãOmmž=óÞ¿Üuá £Ú¾*×Õ5—”ÔñòâUU¥èöÕÔT­¨¨vâDõ ÙMŽ«`i©{âÄÓê#&&pñâªwï NžäZhbÖØÚŽKHð ZûÅÄÄÇŽHhe!œ¥¬¬A~Û×””oÓ§:sæùþ¦£#ËYõ öÕöuìX<›–V ~Dqúw 1‡ `±˜Äįìˆòòš•šZôòeÎUÒ×WØ»×îĉ§ññ  fþ|Ãøø;v̾w/mÆŒCçÎ%´¶vp[/È¡´´пù×ÐÐÎÎg$%…?Þº|ùd¸<Â]Fµ}åççÑÒ’E—éêÊÒǯBB¼ÚÚĬ¬r íû÷ÓØel¬2mšö‰Ï®•«ëGljîî׋‹k.màã#¸»[¥¤ø:;›>65ÝwìØÓá6s ù)-­ááïS©ÖÖ°}ûîýþûÜ»w=†þl¤;£Ú¾ •Ññ«¶¶laaM{û &&ªïßΛgøüyVSS;¢¼¼f¦¤|KIé%*;8à ++âî~½³“:piƒ‡˜˜Àž= >} øõW›þI12òóô ËÉéç™ ´´®¯›srr*fÎ<öæÍ·~Û´é‰ 2LíÑÐP)=½„J¥éêÊQ(´¼¼q MLT?}*¶¶C£!lºjÍÌ4ÌÌ482„à9wÎíë×rŸ›—6Ø ñ®]k‘”´ÓßáÛ·ÖÖG6mºš‘QÊm½ ?%}Ýüšmg$&ÆïÞ¯ãÆ)žbH_öU™Lnÿö­JMMš‡OwO˜ ÚÞN).®›:UëÁƒOlJóòšùòeGNuÕÖ– ]uëÖ»ààîüøùyV­šöêÕ®ààåùùÕ³f[´(8:úã0‚C†EE5ì/nº?ÍÍ-ÔÒRïömxø9d¸1Úí«®®!-­ÇjjÊЗ8©«KKH~øP8w®A||VK [ëw¦MÓž8QíÔ)άþµ°Ðñó[xèÐçO39"pÀá° =}ºíöí-²²¢žža&ì=tè!Ü2 a“Ü\vO~½p!qãÆ««WO ZF à[1¤¯ŒvûJ àôôäÒÓKzzòôñ+ƒ16Vyÿ¾pölƒÎNJ\[ažž6qqYèœîÀY³ÆÂÕuÊ–-׺8ûff!!®>ø¯]kqçNêäÉûÝÜBãâ²h4x&¤GjjÈ$R«†Fï'Ó]ºôÒß?zÓ¦_þøc\' žŒvû 04Tùø± £óïb€‰‰ê‡…‚“'k>|È®‹ØÊJÏÐPùÔ©XN©`od¤âæú3î4•’òð°~ýÚ÷Ò¥Õ4ÍÍí¤Iûþüó;'!£üü*@¯'«GE½ß³çÎŽ³}}çCã ¶@û LMÕ23ËZ[;´µ‰ee dòÃæLLTËÊê+*çÎó…M1ÀÓÓúéÓLN8 Üùón~ÍšKÃä »¾‚Åbllô¯][Ÿ’²gÙ2³GÒùåðÌ™GÏKè÷éôI~~5??¼<«“_>üôÛoá[·ÎüõW›!S éx†vii½©iÀíÛ[Ä'MÚw÷®‡©©:€Ln×ÓÛuæÌŠÉ“5ŒŒüΞu›3Ç€4bi8v¬BpðrN)ùí[Õܹ'gÏwâ„ §dr‘ oÞ|ù¦£ƒ¦¦&`i)­ Ð·ýŽN¡®®nmmÍm-~pàÀƒçϳbc·÷”áÍ›ü%KÎ,]jvà€g«ÎÏÏå˜Û 2b°¶¶VWWïga‚ FF~ÁÁ±4MGgçß'ÑÓ­¬ýýï"²xqð¦MWÙýQQqkvv9•LLÌVRÚzáB"er Çǧ%!±@è}¾ 2H8::r»#üËš5—Ö­û»§O+* ö8;Ÿéè p¼êˆˆn7d8ÑïNýÃü?šƒÑÕ•côëNœ¨öþ}!`Μñ11ŸÛÚ:Ù¸`¡¡¡òþý÷8¨¤……ÎÎóöí»ÇÎÁï?B½remíÝŽŽ*~QBØÇÑё۽à?|þ\¦«+Çô£ŽÊêÕedD._^3x«…¹Ý áÅ»´¯ü)@_ÿljuôôŒŒÒŽÊܹãÛÚ:ÙŒEŒ²{÷¼¸¸¬ää<ê¹iÓ/ mØpåÇ"Š…@†ÕÕMEEµ&&ªL?Ý»÷Þ·oUçÏ»ññ†V/¤Ÿ@û &¨ÔÔ‹Šjõôä³²Êé{H&LPíè dd”ÉÈO˜ Êþ*b€™™†……ÎáÃ8«ê‰.Ó§ë,[vöË—ŸlÇš´´b cd¤Üý£˜˜Ï—/'<訦§ ? о€þÇÂ1cä[Z:ŠŠ~´®¢")))„mçÍÿìYfŸVðîÚ5÷ýû˜˜Þig⪭-·|ùù²2´2røô©DMMª{dÿ††–;"œ&ÚÛsE1¤@û <<ø±c>|(ÔÕ•Ãb1ô¡!eµ¯sçŽ'“Ûûä"60Pš7oüÁƒ9TpùòAAÞeËÎ76¶pP2ÂE>~,22RéžîãsÇØ½JÈ@€öõFF*©©E<**RYYÿF™˜0A]â$++jh¨üøqFŸÄúøÌÉË«¼sçgµ• [ßÐмjÕ%ú™?ÈÏ ‚ ?*uIò$ãþý´C‡……ù¸¢Òo }ý™™zff™Ü®¯/ÿùó–8•—7|ÿÞX°ÀèñãŒ>¹ˆÕÕ¥'>æxheeÉððM_¾”mØp…J¥qV82ÄÕ64´ŒÿûÚÔÔ¶sç­%K&YYéqK1¤ß@ûúSSu yÿ¾]âDO74TÆã±èvÑ"“ææ¶gÏú6Ÿêí=«¦†öš³ ôôä.^\“½{wÇ…‚ƒƒh´= ¢¢¢ÔkÙ¼¼<‘ó˜~ʺÈ70ÌHKKcãVXA&“½½½ÕÔÔøùùµ´´üüüÚÚØ:rx$‘œœÇÏÏ3nÜìë‘#{÷ÚqI©Ÿ’~t'zÏÇ`0yy¬¶<ôš¡ŒÔWÚ×HK «©I½y“¯¯/_RRG"ýh]==yt VJJÈÜ\ûöí¾9{‰DÑ•+§?þŒy‘ƒLªùçŸW¯&‡†¾à¸p®ãèèXQQ‘œœLOIMM-))Y¼xq¯eÅÄÄ|||8¨ÌÂ… ËËËËËËQ}Êÿ¾¾þ%{xx¤¦¦FEE_¼x1::zûöí€üü|)))¨þ3÷eêTM^^<=%+ëûåËI>>s g¸OüÝ©‹2=éü³íë¿Lš¤ñæM¾žž<‚ ÙÙÿî~™0áÇîX€½½q\Ü—úúæ>Iöô´¦Ph/Š \ºÔÌÛÛÖßÿî­[ïC>!‰VVV‘‘‘ô”Û·ÿÇÞYÇE•½ üL0¤„tw ÒR"® ¶‹Aˆˆk¬¶‚„ØŠº&! ˜?DtE)%iAš!'îûÇÝwvf†šPÎ÷ÃwΜó<Ͻ÷™ûpO<'ÖÞÞ^^žy F¤¤¤:ÄAcåääää䤥¥rÿß`—cÞ¿ÿàÁƒfffÒÒÒööö'OžŒÐh´ºº:˜>ì!“©¯^}¶·×e,ôó»od¤ìêj9TVý¤üîÔÍV6ÿìÀøú/VVYYeÒÒ£DEß¿ÿ7¾¢Y&ÐiD3fáñ¸‡‰ý’,&&´zõÄsçž÷70÷‘-[¦mÚ4uãÆ[·n¥qCþâîîC¥þ³I{ll¬››züàÁSSS!!!yyy4”¢Ý\III***W¯^¥wöö¬‰róæMMMMiié?ÿü³­í?3±Éd²¯¯¯¬¬¬ŒŒŒ¯¯/™Ì2u—··÷Š+Ðc‰$$$”Z§««+##ãííÝÙÙÉJ¬¨¨èÙ³gé{{û²²2€µµ5@NN-ollôôô”’’RRRòññéèè`<ß”””¾Û<Üx÷®”Dêœ4I^’óæÍ—`±Ãh{œøøxEEņ†ÀíÛ·uttZ[[³ÛÊxk^¼xáçç§¢¢"--íááÑØØˆJcz¿ŒŒŒ444®_¿ P(L›3g0÷ŨTjhh¨ŽŽÎ¨Q£ÆŸžžÞód1ÌÍ›7õõõGÒ— LÝž©Ý|›•Í€µÛw8à Î]†8ýÔp¢´´V^~SzzÑܹ'}}ÿÍ9YRòC^~ÓÛ·%èÇÕ«¯Í›wª¿Â[Z: v8ð€SÖöäÀJJ[bcßqOg}ÈíÙÐÐÀÏÏÿòåKA °Xì÷ïßinn&^^^•••7nÜÔÔÔf̘ñüùstX”}ÍÉ“'þü9--MKKkÇŽh!ª÷ðáà ,(//'‰fff;vì ›ÄX A—/_JJJ’ÉdAnܸa``@£ÑÐ:S§N¥Ë÷÷÷g%öéÓ§ŠŠŠüüüŽŽŽ¡¡¡¥¥¥L-^¼xÊ”)EEED"ÑÐÐÐßߟñ|I$›Yáââ2òïÚ3eJýckk§™™ÿ¦M·xiš¸×jË–-ûþý»¬¬lzz:ZØóÊ3Þ"‘˜——geeåããê‰Dâçç?þ|UUÕåË—ñx<‰D eÚ¼±±ñâÅ‹=ûâNG•‘‘‰ýöíÛÇЯ………h€³³sCCÃÅ‹uuu½V`êöŒzéÇÝ|›•Ík·g*°¿¼×ÛÝ—g»ænùKbfæòdâ®]1³g£Òh4#£½§O?C?>}š§ °¹¼¼®¿ÂÏŸOVW÷­¨¨ç˜¹= ŒWRÚ—Í=¤¾;oÞ¼uëÖ!Æ×††%%%###ô&”žWžñÖèêêÆÆÆ¢ß~øð~ܳU}}=_XXXCCFkii¡R©¬š³¡WwÒÑѹzõ*½þµkטÆ×äädAºººèåì+0uû¾ÄWV6³q{¦û{Á{½’0¾r’Õ«¯-^|áÆ7ššÛ¨T½|Õª«K—†£Ç]]”1cvŸ:õ¬¿ÂÉdê¤I‡—/¿Ì1s{@£ÑvîŒVQÙú¿ÿåsO §è£ïFEEÉÊÊR(ssó .ÐËãââìììLLL–/_ÎøóîêêBþûfU³½½­››+ ÀØD@à?sjÄÄÄèz{>Ö®]»nݺ?~„ŠŠ znò™Š%‘H·oߦPþÙ†F£íÝ»WQQ±›¢ŠŠ FD"‘n0z¾ìmfÅpˆ¯©©_äå7Ñ7›ª¨¨×ÐØvæLÍèc|E$ ‡ÃUWWÓKz^yÆ[# ——×SÓû•’’âìì,,,º“  `NN½Uvv6ÓøúéÓ'ú1ÓøÚ­B¯?«ÏŸ?÷Œ¯llfãöLà‚³gñŽ¿þ++ÌÌ]]9Æ,‰€qãÔ32JÐ4L||¸™3îÝËê¯p<0÷É“¼~%ê &8x››å\IJ*à’3kÖ¬ÖÖÖ›7oæææÎ›÷OŸöövWWW__߬¬¬³gÏ2Öï6áˆMMô7 øüù³ªê2IIIÑŸ# iiì¶]\\îÝ»egg§¤¤ÄT>Ú×S,‚ ‹-ÊËû'o ƒ™6m…Ò}µ´¬¬,‡+..F?)**v;ß~Ù<|¸q#ÕÜ\UW÷Ÿ¡¸½{cÕÔ$W­úmHbIEEÅéÓ§¶nÝJ/duåÑ[£  PZZŠ–äää³jÕÞÞN£Ñ¢££ëëëW¬X1gΜúúzVÍ™ÒGwRSSËÍý7›úû÷Ì×b±½¦zº=µáëׯ=ë³±™Û3Øß Îþ쌯ÿaÜ8õ––,‹Åb§8YZª77·úôýèînUPð-'§¼¿òíìt üüîS(ÜÊÁ`r™3ÇdåÊ+¯_s~¥ïš;wî¦M›&OžŒÎÝtvvvuu„ööv???@KK ÓæljnݺõË—/™™™»víòôôdl5þü;w–••‰ÄéÓ§Ÿ9s†…&L P(K—.e,߸q#]þ’%K˜Šñððpss{øðaqqñ›7o|||ÜÝÝéBH$€ÏÍÍÍÛÛ»¤¤$??Ïž=‹/îfF¿l&45µ=|˜ëîn~|þ¼àéÓüýûçáñÃñÑD£Ñ¼¼¼6lØpûöígÏž%$$ åì¯üÒ¥KwïÞŸŸŸŸŸ¿~ýzúÌž­0ÌÔ©SïÞ½ÛÜÜÜÕÕÅÇÇ'$$ĪySSÓ¥K—º÷ÑÖ¬Yãëë÷ýû÷'OžìÛ·ƒW©›Û‹‹‹þúë¯æææ“'O2ÖDac3S·g#°¿œƒgÍœ¿ùþ’Ðh4ƒÝ.¼?>8$作B¡jko¿zõß­×ííîÜ=%%?TU}""^qÀ\ÖP(Ô5k®ihlKMýÂUEƒô¹ïåÑ£G€K—.1=ztôèÑÊÊÊgÏžuww—‘‘a:0ææ;wÔÔÔddd¶nÝÚÙÙÉØ¤¹¹yùòå’’’«V­jmm¥ëíÙ?Œ Èš5k›››ë\ºtIUUUJJjÆ hS± ÅßßßÈÈHPPPMMmûöíhe2™lgg'""‚ʬ¯¯_ºt©¤¤¤¼¼üæÍ›ÛÛÛ»YÂÆfV yÿðÕ«)ÛššÚéì$ÛÚÿñÇ•!±¤/ýçN266F;!ïÝ»'//___0»òŒ·¦££ÃÇÇGAAALLÌÝݽ¡¡-gz¿"##555 ‚žž^\\›æ¬¼½/îD¡PBCCµ´´„……mllÐ79¤G÷oÏcöX¹}PP¸¸¸¦¦f\\ª¨›o³²aæöLø‚³§ïÏ(æÍÜòWå?®xx\\¹òЧçžæ ž[·î:ýãéÓÏôôvut "00^OoW}=i°¶²¥³“ìî~^_W^^%W ˜Aúî°b×®]‹-¢dƒ‡!C_)ª­mð¶mQèdzgŸkjnûúµaHŒéûø+„?‹Û÷A>£†c'ÌÐbk«•ž^¤«+ßmƒÕqãÔ32Šé]\,[[;ž>Í€ŠM›¦ ày:X[ÙB à#"¼ÆSwv>“™YÂU]#™ŽŽŽââ∈ˆ•+Wµ-?ä–—×­[7P]ÝtìØÓ?ÿœ¬  >ÔvA œÆ×îØÙi77w *+š›Ûéå––•• h¢€ŒÌ¨‰u£¢2 BD„Û¶×®½fLtÌ ø""¼fÎ4rq9Ûß }$==ÝÂÂÂËËë·ß~£ŠŠŠ®^½zèŒú @äÔ©g3fŒUQ‘:ôHTTðÏ?' µ]ݾ0¾vGKKFVV´®®Aÿææª||8ÆWXWWË/>Ò#n¿ps³;VÉÏï,f ‡=rÄÍÓsüªUW£¢2¹­n2qâÄúúún³:eddΟ??T&ýüý÷ç‚‚ªÕ«'ž?/ˆŒÌ š/$Dj» º}7`|탱µÕÊϯè–%QP0v¬cGëôécÅÅ…ú›î‹ÅÎ{ýúËÀz˜ûƒñ÷Ÿ»cÇÌÍ›oGD¼â¶:¤W¨TZ@@Üœ9Æææªm[·Þqs³œ>}ìPÛp_™0~¼vFF©žž\AÁ†`--ÕÓÓÿ}åãÃÍžm|÷î³ê››«99™úûßçøÖ°LY·nJ`à¼}ûî=ûœê 6Äļýò¥f×®Ù?¿ûX,vÿþyCmÂa`|e‚­­V{{—””h)N?V1ʺ»[úô¾»NÙ»wÎ-/¾Œµ}ÇËk¡C.<~ÀHOZ[;Þ,\h¥¢"™˜ø>&æm@À\QQ¸ äWÆW&¨©I)+¦P(?V¡9›P¬¬4 {­£++ÿõ×&Rú€¼¼øÊ•OzV[K¤Í}dÉ›3g–†‡¿Øµ+†ñÔ žú˜DêܺuzYY݆ 7/¶ž5Ëx¨‚@8Œ¯Ì±¶Öüþ½¹­­«¼üßM GÖÐfœâX¼Ø&!!§©©­‡Œ>áíí &&´Ü ÌíNN¦gÎ,½y3mãÆ[¼éš†@è¼{WzéÒßsÅÅ׬¹¦¢2:0pþPpüP0L±³ÓŽ‹ËÆá°yy•jjRôr++ŒŒÿ¬%7Ï, .66kùr»($„„¸º»Ÿwr2up3X»ûÆìÙÆüüø5kþªªjŒˆðäÞž$%%Ñwg„ðžââb ž©#“©»wÇZ[k:;[ìÝ{ïóçêG6óó£§Pxxø % øñ£sôh?Œv®… KtñkQSÓ¬ °yܸýÁÁ Œåw©ùtvþ'mÓ–-w&OAÁêÕWÇÛßÚÚ9!ý¥ à›…Å~këÀ¢¢^ê¥3Ô¾^æo JÐÔÜVTTsñâKEÅÍäôÞ†W ù›+Àϯ>j”ÍèÑóåäþ”—ßÄϯƹ[J“¿ ƒÀÇ úºÈ ·o¯¡––ÖÚÚÇÇ{[X¨Ó ³²ÊfÏ>þèÑf•骩i±·?àéi·cǬÁÚÝ*+–. oll»~}•¡¡"/UCF‰‰ï==/Ÿ;çA¥ÒÖ¯¿qø°Ë’%6Cʪæ IDATmÔéè ‰™™%%DbEuu3??ÞÈHÙÒRÃÒRÝÈHIVVl¨m„ =ègf¸1q¢nttfmm+c¡šš”¬¬XFF c|53S50P¼y3mÀñUFf”ÏŒÀÀøùóÍutäewPR’ˆ‹Û¸rå•ùóO9³ÔÑÑ€gª!#Šº:ÒöíÑNN¦ŠŠnng=»¹¼}ëǘuõêk”«WW0V¾xñeXØ“ììýN@C¡Ð¦M “”‰ŒüƒáéÈ ‚ G>=zôk×NÞ¹s Ç œ„L¦º¸œ­®n:tÈeÕª«vvÚááž8ÜpŸ\ÙÜÜžž^L$V‰•¹¹å55-‚‚ 5KKu##e##eYYÑ¡¶2¬ï¯,±´Ô tv’óó+ãë¸qêÇŽýAÆ(èìlqðàÃèèÌeËÆL qur:•éæf9XëûƒÙºuº¦¦ÌæÍ·ËÊjOœX$(ÓÔA8‚ ë×ßøø±j÷îÙË–]š;×ôÈ‘…Ã3¸¢/©™™%ÅDbeQQ †hkË)ùøÌ7N]SSfxnL žÀøÊ~~¼FFFI^^åÔ©†ôrKKõ††ÖÂÂjÆŽ\ á ,._þÛÃÃvÀoŸææj«VMÜ·ïž½½Ž¼<¯w™;×LJjÔªUWÝÜÎ_¾¼\Zz €ü’œ8‘øø1qûö™þþq³g·àÚØØ–™YB$Vdd”ää”·´tˆ‰ YZªÏ™cli©al¬_@ ìfÇ… /|8q¢ÞµkÿöS©4}ý]ûö9u@úðᛃChTÔŸvv:ÖØÞÞ5eJ¨¶¶ìµk ÜîAPRòÃË+¢±±ýÂKKÞ­Ü€ü’}G¤ff–|#“©**’è‚T˜ä2Ü€ñµwll‚jk[ 28ð 1ñ}ròöžõ—/¿ÜØØvïÞ†AêmnnŸ4)ÄÎN»çD*Þ“’R¸aà 0'O.š0aà¤!¿*OÏKÿýINN<6v=§8;:Èô©èKª€ßرJ0!døãkïlÝyûvZ~~ðèÑÿ¾G&'\²$<77 g÷Wzzñ¼y§<Ødf¦:HÕÿýÉÝýÂÎ%fäÇŸÈgÏ>,Zd½wïïp]णƒ, À׳<..Û×7’Dêœ6ÍðÒ¥åƒYßÂ&¡¥¥Lòù‰€ñµw23KœœNÏ_¾|½°µµs̘ÝgÎ,eùfÍ:¦¢"yîœÇàµûúF=~LLNÞ>L>$&¾ß¾=šB¡/àF dØÒÑAvs;çççÄøã»w¥Û·G| \ºä9i’þ$75µ¡c¨%¹¹åÍÍŒ™Udd†…óC ýÆ×>¡¬¼ÕÖV32r-c!«!X@lì»M›n¥¦îQTøB”¶¶.‡P]]¹+WVô^›'47·%ܸ‘êèhâ;è~U**êoßNß¶m€J¥yy]NLü`jªúðá&@uusppÂÝ»ïøø° £oÝZŸS2{h4¤°I&B˜äò+ãkŸ°´ hié,(f, JHN.HJÚÖ³>™Lµ¶š7ÏlÏž9ƒ×þêÕç… ÏŸ;·ô÷ßM/S%%ù2mõéÓ÷É“Cþúkå”)™TÙ“Û·Ó|}£¢¢ÖÚÚeR'VÐhHttæñãÿûö­qþ|soouué¡6 ÒWÈdªOäÝ»oÿ¿˜8VGGއ&y–em­‰vü* Áýƒ!_ûŒ“ÓÉwïJÏœYêäôï$£ÄÄ÷žž—Y Á/¾ÐÒÒïÍ)3Ö¬ùëíÛ’¤$ß¡MêÄ IJúö$?ÿ«ƒÃ˜-[¦+µQ^ ‘:—-»”ž^Ô—àJÇÝÝzútC˜äa œóÙWLMU„…ù?&2ZYib±˜ôôbV­6nt|û¶$%¥SfϧRi~~÷9%ã`±GGƒG6Ÿ:µ¸¬¬nÖ¬ckÖ\{÷®l¨í‚°¤¶–4ujhjjÿ‚+êêZ `p…@˜ãk_14Tjkëzö¬ ³“B/00PLMýª•¥¥†¥¥Æ™3½hõII‘°°…ÑÑo£¢˜l7|Àá°óç›?¾íÜ9¯_æÌ9>cÆÑ¨¨LÆ«¼{WjeXZZ@ïÁÇÒb‰Š ¶¶vÕÕ‘¸l ò³û‡û º×:ƒé¶™e@@Ü«W…‰‰>¬&&¾_¶ìÒãÇ[8ØMòøÜ¹çññy³ó×à).þqåJÊ;éX,ÆÉÉô?ìutä†Ú¨‘‚ 'O> yÜLJ€ŠŠÄ„ zzzrººrzz ÜÛù5€ñµ¯P©4ÒÒ£Æ×>rÄ^ž˜ø~ùòËyẏ`™6툺ºô… Ë8e †¸»Ÿ¯¨¨òdë0Ïìêêc±‚BB†BBFåMM‰CkØ-!1ïÓ4 3eŠÞÂ…ÖL—¢ýJDEE¹¹¹õ^2ˆŒŒtuuŒ„AíQ:¢Àá°úúòX,öéӼÇ]èÆ­¬41LFFÉ´i†Lb0˜5k&y{ß,.þ¡¡Á™ù´X,æôé%S§†ùúFr0ls kkë-[¶Ð?ÒhHg'UPpåš©«ëÌήíè ¶µ‘ÛÚ¨MM] MM]è,ƒ¡Ñ(•Š 9›ddÄ~ùàJ'**j¨M€ 1ƒŒ¬(0¾öƒ±c•²³Ëëë[ß¾-±¶ÖD EEÆŒQHMýÂ*¾œœLÞœ;—Ê{†"-=êÌ™¥nnç®^}íé9žSb¹²²²‹‹ËP[éAjjš+*ê+*<<ÖL›6+-­­ªjzû¶d¨­ãÐ]!ÎoêcÆ(””üÐÒ’yü8±ÜÆFóÍ–Sœ8våʉÑÑ™ÕÕM´ÇÖVkݺÉqß8(2bÁ`0²²bê󿙑H™®®wîü™–¶·¬,,>~ãP[üdÀøÚŒ•[Z:,,Ôß3–ÛØh}øð­©©M[77KþË—_qÖ$_ß––^^ì´C ƒDTTp¨M€@~2`|íúú ^^^¬´´6/¯’^nm­ÈÈ`×&$DX¿Þ!"âUm-'×3àpØK—–xOÏËd2•ƒ’!2`|í||8…úúVuuéû÷³èåbbBúú lVÁ¢,[f+,Ìþ|2g­áˆð*(ø”ÀYÉ00¾ö•œœò9sŒãâ²—6ÙÚj½ySľ­  aÍšIW¯¦pö ©)sòäâK—þŽŒÌà¬d _û‡±±Ê‡ߦOûí[cVÖ¿9ÿll4ß¿ÿÚÜÜξù²eã…„.¼à¸aÓ¦z{;ìØ›[Áqáƒùò¥—.Š@"‘|||ÔÕÕµµµýüü:::8®2Òè鮌%ÇŸ““æ-«ÂÁókû?Œ¯ýÃÄD™L¦b0mmÙøø=ÒÚZA6‰ˆQ„„kÖLºr…ã°(>>Ó--5V®¼R]ÝÌqáNQ\\,%%Eÿ¸aƬ¬¬»wï–——_¾|9..Î×—ùvLÃÒÒÚcÇþ·víõ¡6ÒoÞ¼ySUUUUUE$µµµÝÜÜx“kèWòÿ^ñµhiÉŽ%“S>{¶q||6=º¸¸®®|ZZ/]ÄOO;!!Bxø ŽÛ†Ãa/\XF à—/¿ÜÑAæ¸|G Ñhuuuô÷ïß?xð ™™™´´´½½ýÉ“'ããã‡Ð¼¾P]Ý|ñâËéÓØÚ‡†>ùø±j¨-‚ôiii999999mmíÏŸ?ÿøñƒzÿï;0¾ö,3v¬RNNùìÙ&ÕÕÍ™™ÿζµÕJMí=¾ V¯þ-"â7£‹‹ ݾ½¦²²~åÊ+T*ãò¹D||¼¢¢bCCàöíÛ:::­­­2™ìëë++++##ãëëK&“¿|ù‚Á`’’’TTT^¼xáçç§¢¢"--íááÑØØˆJëÙ `dd$  ¡¡qýúu…BaÚUÑó˜ sóæM}}ýÑ£G‡„„ÐkÆÅÅéêêÊÈÈx{{wvv2emm “û'ý²¨¨èÙ³géO{{û²²Æ===¥¤¤”””|||:::˜ ð5é/55-—.ýíàfjê”—÷З]~1~:wí>>> &Ö×}F¦ÿÒOã'M:Œ Èĉ‡víºK/ÏVRÚÒØØÚ«„ææv}ý]!!¸daff±ªªO``<—ä÷ —^«yxx,[¶ìû÷ï²²²éééhááÇ,XP^^N$ÍÌÌvìØQXX˜1cÆóçÏýýý ˆDb^^ž•••«V$‰ŸŸÿüùóUUU—/_Æãñ$)44”ióÆÆÆ‹/ö<Ò.^¼¨««C ›:uêçÏŸÓÒÒ´´´üýýÑB´ ý˜±A§OŸ***òóó;::†††–––Ò¿Z¼xñ”)SŠŠŠˆD¢¡¡!{ý½&½Þ@dd$‚ ÍÍíׯ¿™=û¸‚Âfeå-ŠŠ›åå71þ¡?‡_ƒÈÈȾ<.wíYÈÉÉiiiiiiùúõëÚµk—/_δ&«æ#ÇÿŒ¯ý£$RGXØccã½ -¯¯')*nNHÈé‹°°'ÚÚÛëêH\22..[Aaó_½æ’ü¾ÓÇøÚÐР¤¤dddäïïO/ÔÓÓ«ªªBMLLÐß‘HDDWW766ýöÇôãž­êëëùøøÂÂÂh4ZKK •Je՜ݞ/ÉÉÉ‚tuu¡åŒ†!©¥¥Õ—ç ‚  %--- ÀÐЇÃݼy•ŒÃáòóóÑ:±±±ìö÷š°?YA0>ŸÓK—†++oUPج¤´¥[XÉñõçrמ%ÝÞ²DDD>|øÀ¦mÏæ¿¼ÿs$¾ÂüÃýÆÄD…J¥åçur2;räiZZñøñZ aÅ””ϳg÷*äÏ?'ýõ×ë£GŸÍ熑¿ÿn’›[¾wï===ùqãÔ¹¡‚³ˆ‹‹¯Zµjÿþý‰‰ÿî«SZZ*//OÿHï¿ÒÓÓ”••ikk£%úúúúúú¬ZIHH$''?~ÜÏÏÏÌÌlçÎ3fÌ`Õ¼(((øøø éõôô*++¿B˜MimmMHHpqq±²²²²²Ú³gŸŸß¶mÛ-ZT]]M¥R55ÿIs­¥¥Å^`¯ ›S#“©§O'ÉÈxݼùƒùg‹-*•e?pMM‹‚Âf6.p8Ñ^ëüîÊè!=ݯ°°PKK ÐÖÖ¶oß>//¯ÔÔÔ^eÒù…ýŸƒÀøÚo”•GKI‰ä䔯^ý›ŽŽÜÇ9h|L˜ Ó-51+„„ÞÞñ+WNTU•䆻wÏùò¥ÆË+">Þ[]3ûöpŠŠŠÓ§O;88lݺpHII%''£OÆÆÆïß¿£åè¯ZAA¡´´ÔÐГ“óðáÃÝ»w3mÕÞÞN£Ñ¢££»ººnß¾=gΜššVÍûËdîBaaáØ±cŸ?F@ …‚Çã¿~ýÚ³>‚ ‹-ÒÓÓ311`0˜iÓ¦…‡‡deeq8\qqñ˜1cEEEŠŠŠlö÷š°95>>܆ ;w®š>}õû÷mm]||¸®.–ÙÁÄÄ\ÀFàODjjê¡C½§þ¢òåËz°)((ÀãñÊÊL¶ òôô G¤ï÷¿°ÿs’A¾ÿŽL/¾°fÍ5AΜIÒÓÛÕÙIFË_¼ø(/¿©¼¼®/Bºº(ÖÖ7Þäžmmsæœ03óÿúµ{ZØÓ—þa*•êààX__/''ÿÏȱ···³³siiinn®••Õúõë;ˆüüüŒŒŒòòòòòòÆ¿råJV­ÚÛÛbbb~üø. ÐÞÞΪyÇ_»£†Mš4©°°0##C[[{ß¾}è„ÌË—/755Í›70tgµ´´ Í—-[¦££óàÁƒ¢¢¢×¯_[[[oÚ´ ýjÑ¢ES¦L)..ÎËË300`/°¿×¤×ˆŒŒ¤P¨ééE>>w45·)(lbÚK<Òú‡ wÝ·oŸ¦¦fBBBqqñ³gÏLMM½¼¼è§þÛŒN)jnn¦K_½ƒ‚ŒTÿïµZ/BÙ~dúØÆ&Aïß•”¶<|˜‹–·µuªªúܺ•ÚG9wî¤+)mùø±Š[†"H]i„“&njjãž6ô%¾ž:uÊØØ¸«« A{÷îÉËË×××#ÒÜܼ|ùr IIÉU«Vµ¶¶2þ–:::|||ÄÄÄÜÝÝþù¢g+A"##555 ‚žž^\\›æLÇx¾=_.]º¤ªª*%%µaÆöövA‚‚‚ÄÅÅ555ãââPQd2ÙÎÎNDDmN¡PüýýŒŒÕÔÔ¶oߎ6D¤¾¾~éÒ¥’’’òòò›7of%pÀׄ=Ýž/äÿý/ݺ몪>ŠŠ[”•·ŒØøúS¸+™L ÑÕÕE'!ïÞ½›ñ¦w‹¯T*UTT´¤¤„þmÏ×°îÿÃôjBØ“˜øÞÓór~~ „„°«ë¹Q£ø/_öB¿rq9#--zöìҾȡRiS¦„jjJÓ›sƒoßÿý„ššÔ­[« ^ ÛÿòV£}q¿Ò¯ ƒÁDFFöÜeº¶–”}÷nVvvÚo¬§'÷üù¶!1’ãDEEñ,Ó¯ÄÈñÿ~׿AˆÄJ€³³Å³gZѯììtRR>÷ÑÏp8ì¶m3?Î{÷®¬÷ÚEAAüÆUïßóö¾EOˆ ))‘åË'ts³ œüàÚµ×ÜÖ@ #_ˆ¨¨€šš}3ó¹sÍJKkÑp«¥%£  Þ¯.b€Ï4*9>™ó¶öÀËkÂÆŽ{öÄÆÇgó@Œ@`|8ô)NSSÅ[·ÒÐvvÚ}Ÿâ„"&&äíípî\òׯ 6”Û¶ÍX±b† 7rz¯ @ ~ãëÀAã+}©ëÂ…–÷ïg‘H;;ìì²þvözyM— }Ìy[™áï?×ÛÛáÏ?ÿºs'7!däóû寯¶òòz4Aÿ‚AA 溹YN˜ C¥"iiEŽŽ}ÈLJ۾}æºu×W¯ž¤¯/ß{ƒA³uët¾­[#ÛÛ»–/ŸÀ%-ÑÑÑÛö »B8Œ¯gìXe>>\nn9_ÅÅ…¦O{ëV𛛥¬¬¨ŽŽlJJa¿â+`Îã‹_ìØ}ÿþÞüÈ×­›‚Á`öì¹G£!+VØs\þæÍ›]\\8.¬­­‡Ú^cccóËçò„ô‘Áû?Œ¯‡Ÿ¯£#—“Sþûï¦hÉ¢EÖnnç>þ®£#gg§óêUÿ†` æÀç™3ݹ“îîΣ§ÛÚµ“q8ì¾}÷©TdÕª‰œnccÃY÷PVVfº‰2àøë `Ì2°³ÓVS“ŠŒÌL˜ ýéÓ÷êêæþÊ;Viñbë  ôœÆ<`õêßv܅ /x¦@~a`|&&Êyy•Tê?y—0Œ‹Ë¸èèL2™jk«Çc_¿HÖÃ;ga±˜°0î&%îÆÚµ“÷ì™àÀƒ_i `|&&*­­_¾ÔÐK.´lhhKL|/"Âol¬2€.b€˜˜ÐγþúëÍû÷_9glïüùç¤Ë——_¼ørýúýÊ?@ nÀø:(ttäøÞ½+¥—ÈË‹Oœ¨{ûv`Âí—/? LòÂ…V&&*;wÞåñ«äôécoÞ\”ôañâpt­@Œ¯ƒ‚gb¢’™YÂXèêjùòå§êê&;;ïߛмÿý‹Å8° ;»Œ¾3ϰµÕºß»¨¨ÆÕõl]‰ÇÚ!äׯ×Ábn®ööm)cÉôé†ââB·o§[X¨ ó÷7‘±c•–,± Jhnn瀡ýAOO>&fm}}«“ÓÉý@ #_‹……Zqñúúçúø¥KmÑìùVVýMD̈¯ïŒÎNʉ‰0´Ÿ¨«Kß»·^P0{öñ7o¾ðÞù©ñu°˜›«!’]ÎXèáa[_ßúø1ÑÖV+5µˆFàêèÑÂ~~¿_¸ðâíÛ’ÞksypzBq IDATyñ‡7M™2ÆÍíÜ•+¯xoü¼Àø:X¤¤DTU%§8deÅ ®\I™4I¯¡¡•¾ÍÎX¸ÐjüxííÛ£‡dB/€?yrÑŽ3÷î½·wï=úJ$°ÆW`a¡ÞóýÒÓs|zz1@QQ")éÀ…c0˜C‡œKJj‡jGt ³nÝ”#Gþõ×ëµk¯ÃIÅÒ`|åææj99åÝÞíììttuå®^}ýÛozÉɃ‘¯®.½eË´cÇþWXX=8KŽ››eTÔÚ””ÂéÓ|*3 ägÆW`a¡F"u~úô½[ù’%6±±ï¬­5ss+jkµÐeÍšI::²Û·Gaf%++gÏ|¤¥GM›väÌ™¤¡2@~ `|åúúòÂÂüÝVé\\,©ªjÄá°ÿ=ÀD(x<6$Ä53³äæÍ´ÁÈ$òòâÑÑë6nt""üœË cmm­¬¬<€¶d2–LÆ Q8nd˜ššjcc5Ô†üË`<é;iiiÝâ)Œ¯œ$)©`éÒ𜜙QL+˜˜øuu‘?|8ÀA¥ß¿798„:8Œ9~|Å2ƒÁDFFºººr[äguŒá_¡ÇBx@TT”››[·x Ç_9‰¹¹*ƒÉÊ*eUaþ|³ÆÆöœœr*•“;qbqtôÛ»wßrP,@Œ¯œD\\HSSšÕ'€··#ƒÙ¿?޳z§LÑ÷ô´Û±#¦¸x-×@ ‘ Œ¯ÆÜœy– qq!uuÉŒŒŽB?¿ßÕÔ¤Ö®½WÂ@ ÈpÆWca¡–›[Á&ÈÍkŽÃa8¾?9€_V\\sèÐCÎJ†@ È€ñ•Ø›«ut?|`’eeòd} …“YYÉáýêêÒ»wϹpáEJ g²DA dÀÀøÊattäDEØt›˜¨HI‰ œ;—ÌqíË–ws³Z¹òZYYÇ…ÿdggãñøèèhzI\\@ÈËË`0mmín“g̘Á`¾|ù‚V@Á0ƒû§îܹÃTuNN´CxS¯ _¾|¡»(S¢W`¬ÉÊ6èü¬€ñ•Ã`±SSU6Sœ°XÌ„ :£G ߺ•Z]ÝÄqX ¦&¹bED{{Ç…ÿ˜ššîÚµËÛÛ»±±ÐÔÔ´víZ??¿±cÇ¢JKKssÿÝ˶¡¡áï¿ÿîUì›7oªþ —ì/..–’’BœœP]oÞ¼ÐUpC§¨­%]¾ü7œ(0|èé½âââÛ·ops.ÙùÓ9?Œ¯œÇÂBííÛ6&MÒ¯¨¨ÉqíüüøK—–ÿÞäë;Œ–!+öìÙ#%%…>>vìØ!//¿mÛ6ú·Œo·ñññ'NìU¦´´´Üá†åVW÷Oç„   ªKZZ@WÍÇÇÇ uƒ¤¥¥#**ÓÕõ¬©é¾½{ïQ(0¾zz¯””Ô¡C‡ÜœKvþtÎã+ç15U­¬l¨©iaUÁÞ^—B¡Mž¬{íÚëº:Ç PT”8Þ#..›÷ØÅÇÇ+**644nß¾­££ÓÚÚ “ɾ¾¾²²²222¾¾¾d2íwJJJRQQyñâ…ŸŸŸŠŠŠ´´´‡‡úfÉ´ !!ÁÈÈH@@@CCãúõë …Â´9c×ã1@¸zõjDDÄÁƒ¯\¹rõêUÆß¤‹‹KTT½‹8&&ÆÙÙy`W£±±ÑÓÓSJJJIIÉÇǧ££ƒñ¬SRR0LDD„¾¾¾´´ô¡C‡®_¿®®®.&&FO1øàÁSSS!!!yyyôygmm èõÖ³!£êW¯^?~̘1¢¢¢“'O~ðàzqz^ð>ªcCg'åÑ#âòå»7o¾•’RH¥£œ6?…Ç2¥§w±ÛÓz…©v¦g×wóF óÂiššÚ7?|˜Ë¦ÎôéG¶l¹c`°ûðáG\2ãØ±§**[32Š9(ɾއ‡Ç²e˾ÿ.++›žžŽ>|xÁ‚åååD"ÑÌÌlÇŽ………€3f<þÜßßßÀÀ€H$æååYYYùøø°jE"‘øùùÏŸ?_UUuùòe<O"‘BCC™6oll¼xñbÏc”;v‚‚‚ºàÇåää²³³ÑVBBBµµµ€ÂÂB´zЭUNNN d2AÅ‹O™2¥¨¨ˆH$úûû3ž5‰D¸»»777_ºt àêêÚÜÜ|áÂ@mmmss3@ðòòª¬¬¼qã ¦¦•ÐÍ€n…l¢ª?®¨¨øäÉ“?~$&&jii¡ÍYÝ&öwœŽ‹‹‹‹‹ zÜÕE‰Ï^º4\Ee‹¢âf%¥-òò›ÿÚÚ:û(v0üËÔëzzS±½zSï¥W`¬ÙóìX5gjÞ¯íü‘‘‘=+ÃøÊB÷îeSáØ±§&&û~¨¯¿«¥¥ƒ6Ðh´+"ÌÌüühá”̾<­”””ŒŒŒüýýé…zzzUUUèqbb¢‰‰ ê»D"A]]ÝØØ.ׇèÇ=[Õ××óññ………544Ðh´––*•ʪ9h4𓓇[²dI·,,,\·nÝÎ;¹qㆣ£#Âð€c_»‘ÐÕÕ…ÃáòóóÑ:±±±ZZZŒg6ÌÊÊB¤«««ÛqaaagggAA‰D¢R©/_¾D ûòˆaÓUmhhxóæMzý[·n¡ÍYݦ^¯'Š‹‹‹³³ëÿþ—¿aà MÍíòò›••·v «Ã0¾íéuL½‹©Ø^½ˆ©÷2¯=ÏŽUóèüLã+¾çÕ ++Œ vC°Ó¦†„<¶µÕŠˆH ±eË4ŽÛ€Á`ÂÂܦM;âí}óúõ•8ÆÄÅÅW­Zµÿ~Æ­$JKKååÿÝáGLL =ÐÓÓ”••ikk£%úúúúúú¬ZIHH$''?~ÜÏÏÏÌÌlçÎ3fÌ`Õœ 7oÞ|ñâÅóçϧM›æìììääÄø­‹‹ËüÜ÷ÎáÂÂBôa:•••T*USSý¨¥¥UYYÉxÖ(£F ÔŒÇðùóç•+W’H$SSÓ¾˜ÑkCTuQQ‘¡¡!½p̘1è«ÛÔJJ~”•‰ÖÔ¿~} ǡëlY=<.b±\÷I¡÷½ª~ íFuu5Sïê)¶/^ÔÓ{™NWfuM ó³Ž¿r++÷ï¿’H¬*èë+(+NK+^¿~ʹsɵµœ…ˆ‹ EDxef–p<##***NŸ>íàà°uëVz¡””ýð†††´´4´ý9)((”––¢%999ÁÁÁ¬Zµ··Óh´èèèúúú+VÌ™3§¾¾žUsV|ûöÍÛÛ;44ÔÞÞÞÏÏoõêÕÝf1ØÙÙµ´´¤¤¤$&&Î;w`×AVV‡Ã£‹ŠŠϺWÚÛÛ]]]}}}³²²Îž=ÛwÕl¢ªUUUß¿O/,((@Xݦ¾ÐÚÚ…  ïÛ…ˆ‰ ‰‹sý€ÞgQ í Sïb*vÀ^Ô“¾»ÇHs~–ôñåÒ/ª«›åå7½xñ‘M]»bC[[;ŒöÄqϘääeå-áá// ôÖÛF¥RëëëåääâããÑrooogggté‹••Õúõëû^üüüŒŒŒòòòòòòÆ¿råJV­ÚÛÛbbb~üø. ÐÞÞΪ9ÓÑ,6{öì‰'R©TAºººŒŒŒÜÝÝé'ˆþÆÖ®]«¯¯?iÒ¤nå Çj„E§1‚ ‹-š2eJqqq^^žÁ¾}ûºõ816ìyÜÐЀÁ`?~ÜÚÚŠÎpÎÊÊB%´´ü§Ï¿›X6 Ñ §NRRRzúôimmmRR’®®.ƒas›º©c:þúñcUXØc ‹ýòò›†ÿðð÷X„…×õô.¦b{u¦ÞË´¸çÙ±jÎÔ¼_Ûùáø+O±± a7w)9¹@Aaó·o /¾TSó©ªjäž1/¾TTÜüôiÞ åôú´:uê”±±qWW‚ ÷îÝ“——¯¯¯G¤¹¹yùòå’’’«V­jmmeôøŽŽ111ww÷††´¼g+A"##555 ‚žž^\\›æŒ*èÇW¯^åççÿôéÝæŒŒ ,ƒ0üÎ_¼x8sæ ýÄéñµç¨¬1õõõK—.•”””——ß¼ys{{{¿1‚=ztôèÑÊÊÊgÏžuww—‘‘!“Évvv"""ŒŠzõlÈX‡J¥;vLSSSLLlúôéqqqÒÒÒL/8Su¬`œß„ Hnnùîݱúú»äå7 ÛùMÃßc^×Ó»X‰eï }¯LÏ:? Œ¯­ ? 999ô111è\•AÒ-¾¢tt>ÌõòŠPQÙÊ8‘x˜ÄWÈHƒKÎÏ4¾ÂñWnae¥‘•UÆ&I nâD½ÄÄ|¿iÓÔ7RË˹˜Ô00p¾©©êâÅáß¿s>iäç‚H$.Y²$++«­­---mïÞ½üñ—tñóãgÎ4º|yy~~ÐÑ£î66š8/òçA Lá¥óÃøÊ-¬¬4::ÈDb%›:ŽŽ))…mm]nn–ŠŠÇ'²©>_!C/ÆW.2nœ:ûU°Âffª‰‰ïóæ™ijÊ=ú”«&éèÈ…‡{ÆÅe8·‰…@ .ã+±²ÒÈÈ(¦Ñؽ)Nj”ôA»i“cBBNaa5W­²·×½xÑóÂ…ä'¸Ø @ #_¹ˆ¥¥Fccûx9yò˜êêæÜÜ Àï¿›*%pÛ°©S p y|ãF*·uA ÈÈÆW.2fŒ‚¨¨@FF1›:úúòªª’X,&(hÁ³g^¼øÈmÛ–,±ÙºuÚŽÑ Ãh;bùe€ñ•‹àpX335öC°€Y³Œ>ügCossÕÙ³ýýã(·ÍÛ²eš—ׄõëoð œC~RH¤Î‚‚ªÄÄ÷11o‡Úä'æ÷ç.ãÆ©ß¼ÙKìôé†gÏ>ÿø±JOO°{÷l{ûCQQ‹YsÛ<ÿ¹55Í«V]‰Ygd¤ÌmuaKss{EE}eeCEE}EE}yy]IÉoßé9´­¬4œ-†ÖHäç×ip•ÌÌ'§“¯_ïRW—fU‡FCÌÍý—-¿iÓT´$ .&æíë×»Gà¶…ä… Ï—•ÕÞ¿ï­ª*ɾ2ƒ;v¬¬¬,·­‚pI¤¦F–JÅS(XÁ"È?9ÐMµ»=0DR²NVö;{™yyyöööQQQ\±x@@…ð†êêê¼¼¼nñÆWîB&SõôvÎcÿ2ºm[‘XùäÉôcss»­mð²eã}}gðÀÈææv7·sµµ¤ØØõÊÊ£ÙÔtuuå=€ àëW‘²2±>>øøhòò­**Íì«Y[[oÙ²…öqè±^ÒíŸK_¹Ž«ë9YYÑS§³©óüyÁÒ¥32ö**J %—/ÿü %e—‚‚8Œliépw?_UÕt÷î:55)h„ jjšçÌ9QQQß—Ê11ëlmµz¯@p~°±Ñ|ó†ÉfÅŒØÙi‹ˆð?y’G/ñ刻ú˜ËÖýèQ·n­‘“uv>SVÆÅ4Èa…ŒŒhZÚ77Ë^kJJŠ hme¹¥1錯\ÇÆF³ªª‘}Ð"ð“'ë3ÆW>>Üž=s¢£3‰Ä îÛ¢¢·oÿ)##êì|†«; @† æØ1÷€€¹¶Y÷1àârFOo×”)¡Û·GGFfVÃÞ/„ °˜ëtuQôôv8°`áB+6Õâã³×­»‘›0z´0Z‚ È￟$p11ë0ì~œ£¹¹ÝÕõ\}=éîÝ^Æb!¿Ožä­^}éŽOx<îýû ,óþýW"±23³$5õKm-IHˆ`` hd¤ld¤dc£¥¤$Á{³!a Œ¯¼ÀÙùŒ¢¢Ä‰‹ØÔimí44Üsø°««ë8z!‘X1kÖñÐPWö±™³ÔÔ´8;ŸÆb±ÑÑk¥¥GñL/dÈy÷®lÑ¢ómmTê X,ÐÐÙ´iª““)÷O§WuuSFFIFF ‘X‘›[ÑÕE‘•52R¶´T7NÝØX…Ÿ.ÿƒŒh`|åGŽ<‰ŒÌÈÈØÇ¾Ú’%á>"‹±pûöèr_½ÚI¯åÕÕM œ¡Phwî¬ÓF……Õ..gëëIŒNnÜX™œüéúõ7ÒÒ£V¯þméRÛn±“L¦|CcmFFIyyN__aÜ8u##%##e]]9žŸ 2ÄÀøÊ ^¿þââr&=}/û×7R÷í»—Ÿ$$D 65µÙÙœ=ÛøàAgî[ú/MMmK—^úò¥úúõUææª¼T Zª«›.P©´ÌÌkkMVrrÊ÷í»Ÿ•U:¾ù¾}NRR"ý•ÿåK ‘X‘™Y’‘QRXXÅb45eÐ![KKuCC%ÿC p_yDJÊgW×s™™û蚘RSÓbfæ×³‹°{÷Ý{÷²^½Ú))Ù¿§ØàA$8øÁ¹sÉ{öÌùóÏI<ÖÎ òàAn@@|KK‡ÏtOO;<~€«ê[Z:rrÊÑnäÌÌ’ÆÆ6~}}KK KKuss5^Nñƒ@Œ¯<¢½½KOoב# {Ý„dîÜS**£OžìžO±¥¥ÃÞþ ƒƒAhèФT {rôèÓ­[§mÙ2 ˜Aijj;räéµk¯ w×ÑáÀlá²²:z¬Íϯ¤ÑUUItÈÖÈHÉÔT•7x-÷€ñ•wÌ™sBOO¾×èxéÒßaa‰ÄÀžƒ^7o¦îØóèÑæ±c•¸f&;"#3¶ovt48~Ü]X˜Hl€ [ ª¼½o~ùR½}û¬U«&r°k—Dêüðá+Úœ•UVWGæ3FíF¶±Ñêo×4Â`|åaaObbÞö:ûý{“…Åþ«WÿppÓí+t¢…BMHØ4à^¸AòáÃ7OÏK||ø«WWhkÃm¿ ÿB¡]¸òØÐPñĉÅZZ2ÜИÚ"'§œL¦ÊÊŠZZj ËmMLTzþo ð_yGjjÑ‚§ÓÒö¨¨ô²Íê￟ÔÔ”f:Ù¸¤äÇ”)¡7:nÜèÈ3{çû÷&/¯ˆòòºóç=ììt†Ê ȰåÝ»²M›nUW7<¹xúô±\ÕÕÖÖ•Ÿ_I$V‰iiE•• Œ©-¬¬4zý¹A \çïï?Ô6ŒääÄÂÃ_hjÊôÚ»ÛÜÜ~ýzêêÕ¿ÑsÑÑ‘æãÃ9òtÆ £¡êpvWTTßÜÜnk«5T/Óቂ‚¸»»UmmK@@‹±¶ÖàÞ€=NQQÂÌLuÆ £•+'.Ybce¥‰Çã²²ÊnÜH½páÅ©©©Eß¾5$%Eðx8jûìÝy\Lûÿ8ð3MÍTJ¥}ÕFE;²Üd'.²´ÜT\!.WW·Å®.¹¸ÖÏ¥„‹Phn”Ê–„ÊTº´hS´MËÔÔÔÌùýqîo¾s[¦©f«^χ?¦sÞËkμg^Îö>€O`ÿ•¯œCääF»±/VYÙ0eÊÁ°09s »¯¥ÓË–ýODëÙ=óSJÊ?¿þz›HýßÿÖLª+ÀH€pŠÍòòº5c†~p°ÛèÑ|îuÖF©âÓ§¯¢¢"0µàȯ|ôäÂ…Ô÷ïöù­^ºôŒêÉ“N=®Íϯ²µ=¹ÿòmxf?ÔÕQ|}#ó¶l™ãç·.é]¤¥nÚª¢"î¡¢"#ÀH¾}k"‘ʱ’ß¼ùÜÖÖ¡¤$mf¦…Ýn;uª.ÿÿ†7ȯ|õþ}ùâŧ’“ý UÙ— N J~ÿþ`o‡^ÿ;$$õÉ_Ï¿¢hhèËÀÀxmmùC‡V͘¡/Øx€°))©ýñÇË4Zgtô655YA‡ƒ =ÍÚȜڻN vmÁàA~å+:ab²ßÛ{ц }ìw–”ÔΘq82r«µõ¸ ttÐ.<¡  ¹U~JKëüýï=~œkggáïo'Ø= lšš¨..ªª£¢¶êè( :œ®ššÚÞ¿ÿwj‹ŒŒÏ­ÒÒâææÿÎÚ8eŠŽ¬,ÌÚú ò+¿mØp…Á@¯^ÝÐgÉE‹NkôvˆAÌÌR;»?ùütXö^½*Ú·ïÎçϵ6Øìرî‘LMMm®®KKk#"~êóøu™µ±°ðëÔ0k#àäW~»zõù±cóò÷yiÒùó)ÿû_"‰tÍÍ|÷nß~šºKxöi´ÎÔ?ÿLTV–ñö^´b…%üLSS›‹Ë…Š òƒ;„ä@qŸX§¶xû¶„LnaµÑÒr,ÿç+CäW~ûôéëìÙÇ<ð²°Ðb_²²²ÁÊê`s3Q(ísç32R Ý G‰™¾}k<{öIXØ«±cå½½-]jY B¥Òì탚›ÛâãŠÊaÎÚØãÔ0k#`ù•ßPµ´ pwŸ¹}ûü> ¯\yVUU–ýý<ïÞ•¬\yvÿþå›6Íâ^˜”””T\\Ìü³©©ãùóºÌÌyyÂòåªp}æÐ6þ|]ÝÁÞˆõí[ÓÒ¥g45Çܾ½…?-ëC j IDAT]¼x‘Ͷ¶ÒËË[¿|i+/§VVRÛÛââxMM uuqssYYÙž>†%–¢€ï¶m»áèÌIÉÐкº~JûbÇÿ=v¬O^ÞnD7(ÝÇ?ZFf>/,G°Á€EDDpeœHåúú;½½os¥µ>ñeÛàDE$%ed(*®ãÉÄ@hõ8ð`Ú°¶—‘QÜÖÖÑgÉeËÌ;;éIIØÛ±c¡‰‰ÆÖ­78i“׺ ²ÎÎÆ††ÄÎÎÞÿââ 11Ñ r½uëuDD›eƒ[ÿ3裣£¦¥%§¡áquõ5í»Â"""¢·QùUfÎßÞÞùî]iŸ%ÇŒ5sæø{÷2Ù9wε²’|ôè.Åo-\hìé9×®¨ÜÜ/‚Žž€ü*êêrZZòiiœ^±Â299¿¡¡•}±±cåûmÅ¥KÏ’“ó¹#<÷믋Œ5¶o†ã.päWÁ˜3Ç0%åNJÚÚšàñ" 9}–tvž¶l™™·w™Ü2èà911|HÈÚªª†' ÜùU0ll H¤òº:JŸ%¥¤ˆóçO¸w/‹“fsÀãqÞÞ½ž@¨¨«Ë:´*$$%=½HбÀe_ÃÚz/òò%§‡ˆ_¾,¨©iŒŒä©S?j;;;¬¯´´4A˜]Oœ8‘Ý äW17×’••|úô#'…¿ûnœššltôWS“ Y—öj1Ž\ûöíSPPعs'‚ »víRUUõóóc®?>ëÞm\\ܬY}ON©¨¨¨ò_¼ˆAƒQWW×ýµ0Á<¸òåËBσŒLx}ÂF¦ªªêäÉ“;–ÐëåÜT*A--­.uù<ª%$$°¾av-&Ƶ9)¹òÅü*0x¼Èwß{öŒ£ü*"‚[µjRdä:ÁaûÖÖãwìX¸o_Ìû÷僓ûâââÔÕÕÉd2‚ ·nÝ?~|KK ‚ ¾¾¾ÊÊÊJJJ¾¾¾………8îÉ“'ZZZ©©©þþþZZZŠŠŠk×®Åö,{¬… H||¼©©©¸¸¸®®î7éììì±:ÖE÷×!44ôÊ•+G޹zõjhh(ëW×ÁÁ!22’y¤.::ÚÞÞ~`[£¡¡áÇTPPÐÐÐðññikkc}×/^¼ÀápW®\122RTTtb©‘îúõ—zz~ííœþô髪êŽ/ 8oŸNg¸¸\˜<ù·º:Ê@cì‡îó#v·víÚuëÖ}ýúUYYùõëרÂcÇŽ­^½º¬¬ŒD"YZZîÚµ«  AÅ‹'''Lœ8‘D"åääL:ÕÇǧ·Z …H$†„„TUU]¾|YTT”B¡?~¼Çê —.]êþ³k×.AY"òÏ?ÿ¨¨¨deeaµ$%%kkk)((À `/ºÔÊÎÎnfÑÑÑ¢¨‹‹Ë¼yóŠŠŠH$’±±q@@뻦P(‚8;;755ýõ×_‚8::655]¸pAÚÚÚ¦¦&àîî^QQ† Huu5ÖÖ/ëë>72…Ânœ ¼Ÿe°ººÉÀ`׉ Üm–“È…Lö9ðº÷‹Õb3~P–‘ÙÔÔôÏ?ÿÌž=ûàÁƒèGóu—á$¨QÍÔe!›ŠX×gΜQWWOHH¨©©ILLÔ××Ǫ÷öAs2º°ù{\ùUÊÊêú•2mmOîØq³_]É-S§ru½@§3ú`¿q˜_Éd²†††©©i@@s¡¡¡aUUö:11ÑÜÜâ$ EQƒ˜˜l퇘¯»×ª¯¯;qâ™Lf0ÍÍÍt:½·êl0 ;;;<ïêêʺû9Û¶mÛîÝ»Q [°`Ê’V{˯]ÄÇÇÓh4<Ÿ››‹•‰‰‰Ñ××g}×XÅÌÌLEi4Z—×íííùùù …N§?}ú[È&¿²ßÈìñ!¿¢(œ¬£ã[VVÇÅ69‰\øÇdŸ¯{¿h_ãí62G-ç0¿ dT3uYȦ"Öµ±±qxx8³üÍ›7±ê½}Ðì? äWá5cÆáß¿Ïaá¿þzª¯¿³ÏÇét‘•U:v¬ÏéÓú]¿q˜_Q=xð ÿöíÿ¦Agý¢ÊÈÈ`CœF£aksrrº·Ó½Š¢/^¼°··5jÔÌ™3>|Ȧ:7nÜ‘‘yúô©¸¸ø½{÷˜Ë±/mjjª¾¾>ƒÁX±bÅ… Pòk÷…ååå‚P©TìO‰$..Îú®»Tìñull¬µµµ¹¹ùúõëû̯ì72{üɯííÓ§nÙr‹mr¹É>^ýö9~X¶´´>|XSS“Á`°ŽœOŸ>õ–_2ª™º/ì­"Öµ„„Äû÷ï™…±ë{Üt\ɯpþUÀfÏ6àð'AV¬°¤Ñ:=ÊíWææZ+NœHàðv >(//?wîÜüùó½½½™ ˜_32™œžžŽ-ÇN|ª©©•””`K²³³>Ü[-*•Ê`0¢¢¢êëë7lذlÙ²úúúÞª÷¦²²ÒÓÓóøñã666þþþ›7oîr±ƒµµussó‹/W¬X1°í ¬¬ŒÇã™OÌ-**RWWg}×}¢R©ŽŽŽ¾¾¾™™™ÁÁÁ}–g¿‘… zì˜CllŸ‡«ðI ›×[´œ“””Ü´iSyyyuõ¿·*tvv"òåK?žÁÀÿQÍIE¬ë±cÇæåå1æçÿ;[ûà7] ¿ ˜AnnEmmß%""//5{¶atôÛþö²nÝŒ%KLwì¸YUÕÐÿ¹ŒÁ`¸»»oß¾ýÖ­[IIIñññØòU«VíÞ½»´´”D"ÙÚÚ±ÖrssÛ»wonnnnnîÏ?ÿ\ZZÚ[-·páÂ;wî455Ñh4111IIÉÞª766bg€X_£(ºyófSSÓ 6 âíí­¬¬Üå¦<¿zõêÍ›7[YYa׃°ª©©ùÊ¢·M!&&æäääééùùóçÜÜÜ}ûö¹¸¸ôkc¶··Óh4@¥Rýýýinþwž/ì,W—×ì7²˜9s¼­­‰¿ÿ½Ž:zþ1ÉÄfà øÃeײ²²cÇŽijj***ÊÊÊ"rýúõ¦¦¦?ÿü“óÉ·QÝ¯Š˜mÛ¶ùùù=~ü¸®®;ƒŽ]ßÔÛ¦cß]ß8Ùÿ¼ÓØHÕÔü566‹ÃòqqYêê^••äþvD¡´ÍûǬYG©ý­Ë9NŽŸ={ÖÌÌ ;\s÷î]UUÕúúzE›ššÖ¯_/'''//ïááÑÒÒÂzˆ¦­­ÍÇÇGMMMFFÆÙÙ™Lþw t¯…¢hDD„žž@044ŒeS½ÇC©¡¡¡D"ñãÇ̘322DDD¢££Q–CX©©©‚ae^Nham"=ICQ´¾¾ÞÍÍM^^^UUÕËË‹J¥²9×ãëS§N3FSS388ØÙÙYII©££ÃÚÚZJJ EQÖ×}ndö¾Æ””Ôjkû\¸Ê•ÖúŒ\øÇ$ÊÁÀë±ß>Çë@155MOOÇÊÊÊÊêééÅÆÆ"Fy?ª™ºÞîYËÐéôÓ§OëééÉÈÈØÚÚÆÆÆ***ö¸ézì®GpþU¨­Xñ§—×- S©4ƒ]ûÝ)/¯75Ý¿fMHg'}Õ9ÁùùW0äð3¿¢(úÇÇÛùõkãà›âsä@hÅÇÇggg3ÿŒŽŽÆ® 8ÿ*ÔæÏŸ””Ç`ô°ßÓ¸¸Ø²eœÎ•ÈJCCîòåõ/_>?€êðÓöíóåäF=ú@ЀáƒD"¹ººfff¶¶¶¦§§ïß¿ãÆ¼ëò«àÍ;¡¶–’›[Áay7·éùù•ïÞ•  ¯É“uNœp I½q#mÕàqq±Ý»¿ŠzC" ×)`èòóó³³³[±b…¼¼ü† ÜÝÝ7oÞÌ»î ¿ ž‘‘ªººÜ“'ù–75Õ46V¿ys€O ³·Ÿ¼}ûü}ûb^¾øœàðÅ´iz^^·ùv¡ÞDEEËÊʨTj^^ž¨¨(ﺃü*æÌ1LNæ4¿"âì<-66³¹¹m`ÝíÚµdñb“M›®–”Ô¬ø‡Ã;çúå ù?þt,ôäW¡0w®Qvv™ÜÂaùÕ«'£(—5°îp8Ü™3k´µÖ®½ÔÔDX#ðŠŠÌþýËΟO~óæ³ c  ¿ <^$5•Ó‰&F_²ÄôÖ­"FD\\,$d-™ÜúóÏapð ³5k¦MŸ®çëÙÒÒ.èXèȯBAR’`e¥ÛÏCÄS33K?|¨p§ZZòW¯º¿|Yèåu‹Ã«—à?wö¬k}=e×®hAÇ@?@~s祤äsžç¦O×ÓÑQ¼}{à»°‚Lž¬sýú¦ÞïÞ ¿\@x©¨È\¸ðcllæÕ«Ï œâá¥S _æÍ3:x06;»ÌÒr,'åq8œ³óÔóçSöî]F$üsüî;ýu›6]UT”öñ±p;LÅÅÅ/^|;°š>]ÏÓsÁÁƒq––Úffšý­þäÉæVà¢wïÞõºnSW.š6íЉs^¾ººIKËûÞ½ÌÁw‘¡¦æuñâ`§£sppàãÀü&ØY:;énnMM÷þ\ӝЂÞl`øëqàá`ð ={¢³³Ë>ôâ¼ÊºuutÐoÞäÂ-ÒgÏ&=úðÌg‡)ƒo ^hoïüá‡óUUqq¿()I :Øó¯BdÎ#©¼¦¦¹ï¢ÿŸ““Õ³gËÊêú.Ú—íÛçoÙ2ÛÇ'"%EXc@D¢è_­ÇãEÜÝ/·¶Òì@~"ÖÖãÄÄðýzìåÂ…ÆÊÊ2¡¡/¸À¾}Ëìí§lÜxõí[¸×)yy©ðp²²º~»·0ƒü*D$$S§ê=yòó*¢¢"®®ÓoÞ|M¥ráÿò8îèQûiÓt7l¸ZTT=øàmm…»w·WV’—-ûßׯ‚€žA~.¶¶&Ožä··wr^ÅÅe:•J‹à\N]ˆ‰áÿúk½¦æ˜U«Î}úÔëƒÁ,==¥ØXÏÎN†ÝŸ0Í'N_…‹­­qk+íåËΫ()I/^lzå ×î ” DFnÕ×WZ¾üÏìì2n5 w©«ËEEm%DW­:÷î]© Ã +ȯÂEEEÆØXýñãÜ~ÕúñÇïrs¿deq-JJnÜð06Vÿá‡H±@h©©ÉÆÅy©®^}ns­Àu_…ÎÂ…Æåõ뾩iÓôŒŒT¯]ãÎUNIIÂõë›LLÔø!„‹™î’“æáëkëë¹}{x[[‡ #à__…΢EÆß¾5’Hœ>n³víw÷îeÕÕQ¸ 3Å:;ŸÏÌ„ão@Háp¸mÛæýõ×úÇsÏÃ¥y@H@~:ÆÆêššcóúUËÞ~2‘(‘ÁÝ`$$ׯo25Õ\³&Nqa¶h‘ñƒ^­­íóçN¦Ó‚ŽŒt_…Ñüù=êß)ØQ£ˆöö“oÜHãú“p$$×®m45Õrq „š¾¾Ò£GÞ{÷.;yòÑÂ…'Þ¿/tD`Dƒü*Œ,˜˜—÷¥¿³2¹ºN/-­{öŒÓ‡ÈrNB‚p劻‘‘š«ëEøÍ Ù¸Ñæþý_DEñvvž9ó¸_w»ÀE_…Ñwß“–OJêÇD‚©ÍžmœÂ‹¤¤ˆaaææšööA0"rFFjxùù->>ÅÆæH\\L´ø è@Wx¼Hnî—*íí'÷«¢¼¼ÔéÓmmM””Fs=*AtåJ˯_û-vÌ)ss-®w·ˆˆà¦LÑY»vFccÛáÃ÷rôõ•55Ç:.0‚@~R4ZçåËÏ6l˜I$Šq^K[[ááÜòòúÅ‹Mx•ˆnÞ<#­óÈ‘T*mÆŒq""8^tWˆ‹‹ÙØŒ·³³ÈÍýrèP‰Taa¡%++)è¸ÀˆùUH©©Éž?ŸT*+ËhhÈ :40¬@~^ÒÒâÉÉÈäÖ… ûUQR’P^^÷næúõÖ¼¾þ‡ÃYXh-[fþèQî©S±´‹ÇÃq ìp8œêÚµ3&LPþüÓ©S>ÌÁãEôõ•ÅÄð‚Ž _…Zc#õ֭׳û›&ÇŽU8{6iâDõqã”y+9¹QŽŽVD¢èŸ&EE½ÕÒ’×ÓSâC¿ ‡7Nù‡¦®Z5©¶–ôäܹ¤ââš±cá` Üv-ÌÊÊê¦M ŒŒÜjm=®¿uœÎwtÐcb~æE`½©¨ 8p7!!gþü ¿ý¶BGG‘Ÿ½0Huu”ððôk×^~ýÚ8sæxgç©¶¶&D¢¨ ãCì¿ 5É„„ÜÖÖöyó&ô·®ŽŽÂñã Ó§ëóóžúÑ£%ìì,ÌÌ´bb2ÿü3©ººÉÔTnàC…¤$aêTÝ l Urs+ΟO¹råyyy½œœ¤šœýû¯ÂîÌ™ÇW¯¾ÈÌ ÀIÍիωŠâ#"~âE`ìutÐoÝz}úô£ææ6Ù[¶Ì=Z‚ÿa0UU wŒÌ(,¬ÖÕUtp˜âà0EMMVÐq¡ò«°+.®±¶þýÞ½íVVºý­ûüù''§óqqž“'ëð"¶>µ¶Ò.]z’Ê`0ÜÜfxxÌVRÌ9-n(Í3åàà)è(†§11IÉ ââ­­ÙÍͯ¸ŠúÌž_‡€Ù³ÍšeðÛo+P×ÎîOYYÉk×6r=*ÎQ(íׯ¿¼téiCC«““•‡Çl]]~Ÿ—Åáp^^^Ó§Oçs¿pêÔ)MMMȯ<2˜‘ÐÙÉèìDÅÅáêâ‘îÕ«W§OŸî3{Âyû!`éR³[·^Ø à¿ÞÛ·Ï_»ö‰TnjªÉ‹Ø8!%EܺuîÆ6/> {5{¶á† 6³gðs·rÚ´i|ënÀ¢¢¢Â07TFZî—Â}ŠCÀ÷ß›VU5 l–™ùó'˜™i%s=ªþÂ&–zölׂ¸¹]œ1ãðñã——× :4à>ȯC€‘‘šžžÒǤUß¾}þƒï?~üÊݨ‡ÃÍ™cæñìÙîÅ‹MÂÃ_MŸèì—ÝÖÖ!èè€k ¿ ‹›Ü¿ÿ~`'Ë/610P ü.,+]]ÅìÞ¾ ¸zuƒ””¸§g¸±ñ¾M›BcbÞ55Q äסÁÖÖ¤¬¬îŸªP‡ÃýôÓÜ{÷2KJj¹Ø ‰ŠŠ,X0ñÒ¥_¿Þïïo×ÒÒîåuËÄdÿ?„\»öòÛ·FAùuh°°ÐÒÔsçλU·³³PW—û㿹)+vs›qóææœœÀ3gÖÈÈHÆ[Zþ¶té™3g¿}ûžÏZ ¿ 8nùr‹{÷2Œ"ÃïÙ³466+3³”ë±q×èÑâ+WZ^¸°.7704tƒ‘‘ZDDÆòåN˜°gíÚK.¤æå}ØF`/++KTT”õÚÝØØX““ƒýÙÒÒâççgff&%%eeeuäÈ‘ÎÎNA ±« »¿€G(ŠŽŽŽ„„ĸqãüýýÛÚÚØWa–---¾¾¾fffÒÒÒS¦Lùý÷ß±ÁÌ \Oõf8sûöí»ÎÎÎæCï÷ç +WZ=yûöó&š@äûïM--µŽÿûÖ­-\ˆDÑ &.X0Aòòú—/ ^¼( Iùí·Ø1cF͘¡ol¬ab¢an®)'7jðÝYXXìÙ³ÇÓÓsÁ‚²²²[·nõ÷÷711A¤¹¹ÙÊÊJIIéèÑ£zzz¹¹¹û÷ïOLLLLL”••ݹsçà€sÛ·o/--½s玦¦f~~¾§§g}}ýÙ³g‹‹‹­¬¬jk٠³²²ò±cÇtuu™ƒ9)) ïáÖÞîm¦¥¥éèðcÊÖ®íì쪪ªùüùóŒ3°×‚ÈËËó¢;î@ÁÐ1{öÑÝ»£\ýÙ³ªª;ž?ÿÄÅøïãǪ+Wž¹»_¶°ðWUÝ¡ªºcúôÀ-[®…„¤¤§µ´´÷X Aˆˆö-···{xx (ºeË–I“&Ñh4l•ÏÌ™3;;;™…)ж¶vHHsIAAö…b¾‡Wìq2„Ÿ¬¬lzz:óϧOŸjii¡lÇsUoƒùÒ¥Kì+b)((àÊ»èSog߯þv×£ˆˆNJB~JNzdl¼¯£ƒ>àƒ—,9Å`0¸•}ûÖ”˜˜wòdºuaéVCãWss{ûs;wF^ºô45õŸòòzƒÁá¯êÛ·oEEEÿýw"‘˜““Ã\®¢¢’˜˜Ø¥pppðÌ™3»§UÖoi||¼¹¹¹„„„ŠŠÊ‘#G8yS_yªÏ‘«¦¦V__¢èÍ›7ÇG¡PP¥Ñh>>>JJJŠŠŠ>>>4 û “’’455SRR8 ©©©  àææF&“±Öº×BQ4..ÎÄÄ„H$êèè\¿~EÑŽŽŽ«³Ž%Ö×ZZZk×®­­­í<¶3§¬¬Œ¢hggçü1nÜ8))©3f„……aÕ{ÌAAA³fÍê±;Ö6ÑÞó+™L^·n¼¼¼ººº··7•JeÝ>ÏŸ?Gäò分† G޹~ýº¶¶öèÑ£÷íÛ‡µÐýËÒ¥ëîÛ¡·Š¬]?{öìüùóFFFÒÒÒsæÌ‰Çªwÿhzì®G_‡¡ÏŸkÔÔ¼RRòÜBvv™šš×£G9}‚¾}kJJúôÄËëÖÒ¥g ÷`;¸zz~£GÏáp¯e×®]‚2—ÉdAjjjº”|õêÕ˜1cØäצ¦&àîî^QQýºUWW÷äWžâäZk×®]·nÝׯ_•••_¿~-s挺ºzBBBMMMbb¢¾¾>V½·”ýØÀ@~ž/>õË/áƒiaÓ¦«sæ£Ó‡É.,{55Íii…ׯ¿×ã$¿2 ;;;<ïêêÊ\ˆý$ußWHKKSPP`“_Û]"$ IDATÛÛóóó) Núô)‡Ö ¿ò'ù•L&khh˜šš0VUUa¯ÍÍͱšD"¡(j``ƒ­ýðáóu÷Zõõõbbb'Nœ “É £¹¹™N§÷VÎÎÎôôôƒãñøððpô¿¹güøñ¡¡¡Ìò×®]c“__½zÅ:˜Q¶ùµ‹øøx†Çãsss±2111úúú¬Û«˜™™‰¢(Fëòº   Ç/ 'ù•ME¬kccclã`nÞ¼‰UïíísË£çW¸~xˆY±ÂòáCÒ`¦:òö¶-(ø/¼Ýq‘‚‚Ôôéznn3ÚÚŠ8)žšššœœ‹-”••UQQé~™bvv¶¡¡!›Ö§OŸlmm'Mš: w@VVÖÃÃ#//ï§ŸþïÙŽ%%%ªªªØ5« ,øüù3¶¥¥¥ãÆÃ–­\¹²·Zrrr)))ééé³fÍzþü¹ˆˆHoÕ{ÔÒÒrûömA¦Nºÿ~‰´gÏ??¿.ÅÊËËÍÍÍ™ššš"ló¤I“X—ô˜J1]þ›¸téÒoß¾Ñét===¬€¾¾~EEëöÁHKK#"&&Öå52ˆ/ ›ŠX×EEEÆÆÆÌ…&üû,íÞ>P.‚ü:ÄØÙYP©Ož|p *ŽŽV‡ÅQ©4.6 TVVzzz?~ÜÆÆÆßßóæÍuuuØ*—C‡ÑétìOggç[·n=zÔÙÙ™MƒT*ÕÑÑÑ××733388˜çopIyyù¹sçæÏŸïííÍ\ˆíÞa…L&§§§c˱ ¡¦¦VRR‚-ÉÎÎ>|øpoµ¨T*ƒÁˆŠŠª¯¯ß°aòeËêëë{«Þ#E׬Yüs ‡Ã-Z´¨û 6ÚÚÚïß¿gþ™——‡½pqq9xð s0#ÒÒÒrìØ1[[[ìO¬©/_¾p¸¹QVVÆãñÅÅÅØŸEEEêêê¬Û§Oþ²°©ˆu=vìXæ{G$??{ÑÛÊE_‡eåÑÓ¦éÞ»—5˜Föï_F¥vœ:õ˜[Q (ŠnÞ¼ÙÔÔtÆ ‚x{{+++oß¾[{àÀ¯_¿.X°àÑ£GŸ>}ÒÕÕ]³fM[[ÛÆìü×ÞÞN£Ñ•Jõ÷÷G¤¹¹™ï ƒÁpwwß¾}û­[·’’’°ËaYµjÕîÝ»KKKI$’­­mPPk-77·½{÷ææææææþüóÏ¥¥¥½ÕÂáp .¼sçNSSF“””ì­zcc#v¶’õµ””ÔÚµkœœ>>jjj222ÎÎÎÌ €»×BQ4""BOO@ ÆÆÆ²©ÞÛõ榦ÚÚÚ;wî¤R©(ŠvttX[[KIIaeŽ?®¯¯?jÔ¨éÓ§cûgXuæ`–””œ8qb```kk+¶*00PVVVOO;?Ò¥M´÷ë‡ëëëÝÜÜäååUUU½¼¼˜×³nyfÅ_wÿ²téºûvÀt¯ÈZ†N§Ÿ>}ZOOOFFÆÖÖ666VQQ±Ç¦ÇîzÄáùWx¾úÐÓØØjjzàøq'GÇ)n„Ng,ZtRQQz¨L71H8.""ÂÑÑ‘‹mÒh´ÌÌÌiÓ¦q±MA° áùê<‹‘„Ùýû÷555ÍḬ̀?ïܹ˜•5¨C€‘‘‘NNN}fO8><ôÈÈHÚØŒ‹ÔøÀãE~ÿ}õ³gŸóú. zB ¸ž\ÜE"‘\]]333[[[ÓÓÓ÷ïßÏþ´ÁüˆC’“ÓÔ-[®UV6¨©É¸++ÝåËÍýýïÙØ‰0ߟ_kkëŠ+jjjtuuÝÝÝ7oÞÌŸ®aÿuHZ´ÈXVV2&f€Óa:p`yMMóÅ‹©Ü „ލ¨h```YY•JÍËËóññåÓîä×!IL oggqûöëA¶£ª*»eËìsçžÀ“V€» ¿USŠ‹kÿ¼¹mÛæÉÊJúúÂÕ4ÀM_‡*ss-##Õ¨¨7ƒlG\\ìÜ9×ääüððW\ ùuH[½zòÝ»ï3W"fÊõëg<÷å ™+€ü:„98Lim¥=~Ì…löìù^AAú×_oÃýÐÀ_‡0EEiƒ¨¨ŒÁ7%!AøßÿœÓÒ #"¸Ð˜¿ih‹‹ËÚ¶-ìíÛÊÊ2ƒoÍßÿ^DÄëä䃹­V8a3Ž0 ­‘„YŸÙfÚ-2‘’¿sçÝÖ­sßšŸßâGr÷ì¹sõªû0ûZéJCCCÐ! [Ck$€! ö_‡¼]»¢ÒÓ‹SSwr¥µ´´BGÇà½{—ýôÓ®4#œòV¯žüéÓ×÷ï˹ÒÚŒú»wøpü³g¹Ò ŒL_‡¼É“µÇW¹ví%·ܺu®­­Éöíá0© ä×!‡Ã­[÷ݽ{™ ­ÜjðÔ©F"nÝz£³“Á•6`¤ü:88Lü\NL£GK\¾¼>;»üøñ¿¹Õ&Œ(_‡))¢åi\¼ZÍÈHíÀåAAORRþáV›0r@~&~üñ»ÂÂêW¯Š¸Øæºuß­Xa¹ys臕\lFȯÃÄĉêffš7n¤q·ÙÓ§--µ×¬ ©¨€©‰  ¿nn3>$ÕÖR¸Ø¦˜þüy·Ñ£%ÜÝ/77·q±eÞ ¿+WZJJ#"ûÐõ.ääFݺµ¥¡¡uíÚKT*»Àpùuø ¬Z5),ìƒÁå9¹ÔÕå"#·––Ö­_eðÀ‘òë°òãß••Õóbê%mm…ÈÈ­yy_Ï76rçF[Æ ¿+ãÆ)Ož¬Íõ«œ0úúJ÷ï﨩iZ¶ì•• ¼è† ȯËËô¤¤<šÚpìXùˆˆŸ:;ööAEEÕ¼è†ȯÃÍÊ•– Ò—.=ãQûZZòqq¿()^ºôð è ä×áFL ÿãß……½jiiçQ RQQ[mm]]/^¾Ì«DC> @Ð1.34T¹p!UVVÒÒr,ºÀãElmMÑÀÀûùùU³g‰¢<ê †"؆dd$§\ºôŒNçíÓo¶m›ñÓÛ·Ÿ-:‘™YÊÓ¾`hü:ÖÉë`HÀqñ‰+@¨üøã寯ֻw·ó§»¨¨7û÷ßUV}øð*këñüé„ì¿[³^¿.æÛa[‡)©©;UTdœœBvì¸Y_ߟ~@8Áþëp¶dÉimm…à`7~vzï^æo¿Å¶µuþüóÜM›fpÝ`$‚ý×álÆ™÷ïgùÂ×GË­XaùìÙîµkgœ<ùÈÆæèýûïùÙ; ØÎh´N+«ƒNNSwïþžÿ½WU5üñÇßÑÑoŒT==,Yb*"‚CäСCÏžÁ]³Bgß¾}³fÍtBmÁ‚‚pYbb"ï‡ü:Ì=›tþ|Êë×û¥¥Å@nî—³g“t ˆººÜá댌êðä×áOZZ|ãF›TÁîÂÀˆùuDظqƒ^¿þRÐÀHùuD=ZÜÝÝúÂ…T*•&èX`D€ü:RlÚ4‹J¥……½t ÉÊÊŠŠb.‰%999ØŸ---~~~fffRRRVVVGŽéììD¤°°‡Ãõø‚ÊÊÊ5kÖhkkKIIM™2åîÝ»ý EQWWW))){ ^·ד5Åþ[ÀÚ¾¶¶öÚµkkjjXÃ7n\—‹c/^ŒÃá ±?aØóäבBVVrýú™AAOÚÚ:Kß,,,öìÙãééÙÐЀ HccãÖ­[ýýýMLLinnž+((`¯yÑ>‡¾|!_¹"ø å„\ZZZÕq^—õƒfÿ-`vTQQqõêÕ¦¦&KKK¬$¦¤¤äýûÿ›=L&³ÎëÞP0bTW7éêú]»öR°a888888ôY¬½½ÝØØØÃÃEÑ-[¶Lš4‰F£a«|||fΜÙÙÙÉ,L¡P´µµCBB˜K °áÍ|Ñ›mÛ¶a·Á1ùøøÌŸ?¿?ï©ï^‰×í#ÑÛÚº:Jhè‹ï¿?­¦æ5~ü.Þ…!äØo%f™‚‚‚wÑåƒfó-èÒƒÁ°±±9pàs­­­íž={˜BCC/^̬Ã>""‚×òëȲŒ™Ù~ ¥M€1p˜_Q}ûö­¨¨èï¿ÿN$srr˜ËUTT»ž9sf÷´Êú777—PQQ9rä³µ´´4Ö¦š››KKK±×d2yݺuòòòêêêÞÞÞT*EQA åääŽ;†¢¨¼¼<‚ ÊÊʬ=2ŒóçÏIKKÏ™3'>>ûucÆÓ%Ȥ¤$MMÍçÏŸw³Çö9¯O=f ¥-:ú£c°†Æ¯ê꿪ªz©ªî7n'' KƒÉ¯=޽¸¸8"‘¨££sýúuô¿4¦·oA÷ŽnÞ¼9iÒ$æÚË—/ëëë3 lÉÒ¥K/_¾Ì¬Ãò+ಆ†#£=G>` œçWEwíÚ… H`` s ™LF¤¦¦¦KÉW¯^3†M~mjj"îîîaaa‚TWWc­Õ××÷€‹‹Ë¼yóŠŠŠH$’±±q@@Š¢‚ØÛÛ“ÉäK—.!RWW×ãÏÇ¥K—ÔÕÕjjjõõõÙÿÐ,^¼899¹ªªª{œ=Öâ<¼>·3kæ PÚ"#3V¯>§®î¥¡ñ«ºº—ªêæ?ȯ}–ÉÎÎnfÑÑÑÑãØ£P(D"1$$¤ªªêòåË¢¢¢ ¥Ç=¶îß´§üúæÍYYYæÚþùGEE%++ Eц†IIÉÚÚZ¬ {ò+à…  '::¾_¾çù•Á`ØÙÙáñxWWWæBì§¡¶¶¶Ká´´46ùµ½½=??ŸB¡Ðéô§OŸbßùúúzAÈäž·FÃãñ¹¹¹ØŸ111úúú(Š"’’’‚ÀÚéñ‡ÀØØ8<<œÙÚÍ›7ÙÿÐH¤Þâì±çáõ¹©¹yóv\\–›Ûűc½±ÌÊšV!¿¢ç×.âãã{{bbb'Nœ “É £¹¹™N§wϯ=~ PòkAAÁ¶mÛvïÞ¢hXXØ‚ ˜ËaØ£|ɯðlÎgÛÐÐ'N$œ:õƒ céCxxxjjjrrò¢E‹ìíííìì‘••UQQÉÎΞ7okáììlCCC6­„OŸ>mÚ´‰B¡XXX` åä䔕•?|ø0cÆ fÉ7oÞlݺõéÓ§õõõt:]OO[®¯¯_QQ½VSSCDLLŒMEEEÆÆÆÌ?'L˜Ð¥úߟc,þãìÑ·oßÓ‡•£GÛ8ð®¥%¡ÓXt=¦ÑèNNç9ivø‘`7À˜ °6V=޽”””3gÎøûû[ZZîÞ½;?ÚEß‚ÞúeŒƒƒÃÆ>mooÏ\Þ? ¿Ž8D¢è®]ß{z†»»Ï46Vt8½ª¬¬ôôô<~ü¸¿¿ÿæÍ›­­­±ó1...‡š={6GÄÙÙyùòåGey!•JuttŒŒŒ\¶lY{{ûÕ«W±åË—/?yòäôéÓ™Wÿ‡……uttHJJЉ‰áñøââbì7¢¨¨H]ýß-&"Ò÷µ÷cÇŽÍËË355ÅþÌÏÏg®êììýòå kyìw¡·8»SVVLxE[ZÚ„Ó;p8DVV’ÃÂà Šv¬bŸ)•Je0QQQ4íÖ­[Ë–-«®®îR‘Í· [lèùóç¿ÿþ?O¢´¶¶nnn~ñâEbbâ… XWðaÏ'<Ý;‰Á`ØÚžtq¹ Þ99>Ì`0–.]:kÖ,:Ž¢(F355uvvÆÖ666Ì™3'!!áãÇ{öìADII©½½Íña2™ŒÃáþþûoìÞYA233Q­®®–——wqqyùòåû÷ï¹ÿ>Öך5kæÍ›W\\œ““3qâDìúL„åèÒû¬³gÏjhh?A"""Þ¿/Û»7f„=ªª;àøpwÈ@¯oêñ3¥R©âââÑÑÑ555/^§R©¬4ûoÂrNjjª††FCCC—0¶nÝjdd4gΜ.ËaØÃùWÀ+ii…ªª;ž>ý‡ÿ]s’_CCC‰DâÇ™K222DDD¢££±?)Š···±±±¸¸¸žžÞÞ½{gÍšåääÄþúáS§N3FSS388ØÙÙYII [^RRboo¯¦¦&--meeÇì·¾¾ÞÍÍM^^^UUÕËË‹y¥"'?4t:ýôéÓzzz222¶¶¶±±±ŠŠŠ(ŠÊÊÊêééÅÆÆv²Ç8;::¬­­¥¤¤ºæ0¼>?ÖÌA§3^¿.òñ¹­§ç§¦Ö5ÑB~í³L¼Ç±¡§§G  cccQeý Ù Xw“455]\\¾}ûÖ=ŒÔÔTA‚‚‚º‡7‡=ò+<ÿuäZ·î¯/_ÈûˆˆðuVìñ™\þ+FËÌÌœ6mw›Œû÷ïkjjš™™aÞ¹s'000++K°Qõ¨Ç'›¶´´'$äÄļ{þüŠ"ØRRÄOŸŽ *NÁ‚ç¿rb¨ {xþ+à¡]»¾ÿøñëýûÙ‚„;‚P%WAH$’««kfffkkkzzúþýû7nÜ(è úaÔ(âêÕ“ÃÃ7gg \ea¡5˜ÙþÀ1Ô‡=ÁõM#—‘‘ªƒÃ”€€Ø¹s'HIÎ0äçç×ÚÚºbÅŠšš]]]ww÷Í›7 :¨3fÔºuß­[÷Ý—/äGrjÃfØÑÈäkë#«VM:th%ß:åÑña0pä“°•†8> xKNn”ŸßâÐй¹_ú. €c_G:7·ffš~~‘ É®ü:Ò‰ˆàìH¤òèè·‚Ž†ȯ™gd|&‘Êß¿/§Ñ:••G›šjZYéL™¢cf¦E$ÂÁ0¢A~½Ú·/&""ãÞ½í'ª :ÀWuu”ƒ㢣ßâp8\aáQög ::èùù•X®ÍÈø\VV'&†72R›2EÇÔTÃÔTÓÀ@…oÁ $ ¿‚^utÐ׬ ))©{øÐKQQZÐá~{ù²ÐÇ'BNNòáC¯~Uüö­‘DªÈÈøœ‘Qœ“SÑÖÖíÚššjXYéNž¬-!AàQÌȯ€ææ¶eËþG$ŠÞ»·~G ŽzNN…¥åÀo~íìdU¿yó9#£˜Dª((ø†Çãtu•°ÃȦ¦šãÇ+ÃER`X‚ü úðñã×eËÎÌ›7!(ÈMD~Á TW7¿_F"•“H¯_75QG73Ó²²ÒÁÎÝÂ]a`Ø€ü úöìÙǵkÿrq™~øð*Adž:QXXM"•¿yó9#ãsAÁ7œžžvÊÖÊJÇØXþK†.ȯ€#‰‰y7^ݺuîÎK žš›Û²³Ë°ÃÈoÞ|nhh•’"©YYéZYéLš¤ÍÓi±à:ȯ€S·o¿ööŽØ½ûûŸž'èXÀðWZZÇ̵¹¹ :v¬ýí·Ø_~Yàç·XሄBiÿðá v93³´®Ž2jqÂ5ì0òôéú072B_Aÿ„†¾Ü»÷ÎæÍ³öï_—}`Ú";»¬£ƒ®¬<ÚÊJ»ÝÖÜ\ æõÂò+è·ˆˆ ?¿È%KLOŸvt8`Dkm¥åæVH$RyzzQE™uj‹©Suµ´ä#¡ ¿‚x÷®äÇ/+)¾vm#Ì: „ëÔ$Ry{ûfm45Õ„ÿ¾ü èãǯnn ôÂ…u“&i :ºbµ‘Dªøô髨¨Lmøò+¸úú–_~ öìÓž=K=‡Ÿ×ÁüM`È Ñ:³²Ê^½*LK+zýº¨£ƒ>jÑØXÝÌLÓÔT³²2wûöûÏ4mÒ¤I3f̸páÂO?ýôæÍ›W¯^‰‰‰!âëëûúõë””<þß)d[ZZŒwíÚµyófökyúÆ™°ù%à;+T°¹ úœ_‚ÍÀ㵟þ¹¶¶ööíÛÌ%¾¾¾ÙÙÙ‰‰‰œ7RXX8nÜ8Þ=ž¶ÏágÄ}üOé ^{{GvvÙi;wF~ÿýiß±cÅæûìÓÛ·oEEEÿýw"‘˜““Ã\®¢¢’˜˜Ø¥pppðÌ™3Ù¯-((`~•X_Óh4%%%EEE†­MJJÒÔÔ´°°pwwÇJ677KHHdff²ö_…çûF½ <öã$%%åÀššš nnnØpµP‹‹311!‰:::ׯ_ÇJª¨¨¤¥¥±FÒÜ܌퉢(J&“×­['//¯®®îííM¥RQE$,,ÌÐÐPNNîØ±c(ŠÊËË#¢¬¬Œ² rƒqþüy###iié9sæÄÇÇ#Òã×õ=þ<>>ÞÜÜ\BBBEEåÈ‘#½µÏyxÜúŒ¸ ¾«`8èè ]ã<÷ìÚµ AÖtd2Aššš.%_½z5fÌök{˯ǎ[½zuYY‰D²´´Üµk¶vñâÅÉÉÉ>”——ïèè@Q4,,lâĉ ƒ}Ø_…P¿~»»<´¯q0qâD‰”““3uêTŸÞjQ("‘RUUuùòeQQQ …‚ ÝúúúÞBrqq™7o^QQ‰D266@QA{{{2™|éÒ%Aêêêzä—.]RWWOHH¨©©ILLÔ××gŸ_±wTUUE ÜÝÝ+**©®®îíKÄax\üŒ¸¾«`˜à<÷0 ;;;<ïêêÊ\ˆý ÕÖÖv)œ––¦  À~mo? †††UUUØëÄÄDsssl-‰DBQ´³³SEEåÉ“'(Š.Y²äèÑ£\|€o8ÿíîqà¡}ƒ˜˜l퇘¯»×ª¯¯;qâ™Lf0ÍÍÍt:½¾¾Aæ^o4 ÇçææbÆÄÄèëë£(Š HJJ VK™=rccãððpfk7oÞdŸ_±wÔÞÞžŸŸO¡PètúÓ§OÙ´Ïyxì·¼ ò+\? FœðððÔÔÔäääèèèØØXl¡¬¬¬ŠŠJvvv—ÂÙÙÙ†††ìײ.AYN •””¨ªªâp8·`Á‚ÏŸ?c˱*x<~ÕªU111µµµIII...Ü}›@Øô8ð¾ÆIiié¸qã°%FFF+W®ì­–œœ\JJJzzº††Æ¬Y³ž?."""''§¬¬üáÃÖHÞ¼y3eÊ”ÖÖÖoß¾Ñét===l¹¾¾>v‚ jjj‚°?C\TTdllÌüs„ ]  ÿ=ŸŠ½#ðéÓ'[[ÛI“&…††²iá äW0²TVVzzz?~ÜÆÆÆßßóæÍuuuØ*—C‡Ñéÿ>xÀÙÙùÖ­[Guvvîs-‚ ؽ:_¾|aö…íÚbÿ“%“ÉéééØr悃ƒÃÝ»w###­­­544xþæà°xìljššZII ¶$;;ûðáýբR© #**ª¾¾~Æ Ë–-Ãv^—/_~òäIÖTÖÑÑ!))©¬¬ŒÇã‹‹‹±åEEEêêÿ>ªYD¤ïì0vìØ¼¼<æŸùùùÌ×Ý¿ÌwD¥R}}}333ƒƒƒÙ´?Èðÿ»Ìð'ÇN ÆÒ¥KgÍšE§ÓQ¥Ñh¦¦¦ÎÎÎØÚÆÆFƒ9sæ$$$|üøqÏž=‚())µ··³_[SSƒ ÈåË—±Ý ¬AOOO{{û’’’÷ïßO:õçŸf=†¢hgg§’’’²²òÕ«W¹õŸqrì‘ýÀc?NüýýMMMsrrrrr¾ûî»M›6õV‹J¥Š‹‹GGG×ÔÔ\¼xQ\\»¨ººZ^^ÞÅÅååË—ïß¿@äþýûX;kÖ¬™7o^qqqNNÎĉ8€¢(ÂrÐéýøíÙ³g544=zT[[ûäÉ×ãסË%K8îï¿ÿÆn(G$33+ÐÜÜÜ¥0‡á þ3âø®‚a‚“ÜJ$?~üÈ\’‘‘!""ýI¡P¼½½ÅÅÅõôôöîÝ;kÖ,ì–ökeeeõôô°ã~Xù¦¦¦õë×ËÉÉÉËË{xx´´´tɯ(ŠnÙ²EBB¢©©‰[ïð'¿ÝìûqÒÖÖæã㣦¦&##ãììÌ<“Ú½Š¢zzzÁÐÐ066–Ù]II‰½½½ššš´´´••U\\sU}}½›››¼¼¼ªªª——ó]Nò+N?}ú´žžžŒŒŒ­­mll¬¢¢"ÚÓסËÈ?uêÔ˜1c455ƒƒƒ•””:::¬­­¥¤¤ºæ0¼ÁF¼÷¿‚a‚G÷†Òh´ÌÌÌiÓ¦ `-'öîÝ[RRÎIa¸ÿU ìÞJ!pÿþ}MMM333ìÏ;wîfee 6ªîõ …CØ@`“>Ù¯e¯­­­¸¸øÊ•+›6mht‰DruuÍÌÌlmmMOOß¿ÿÆ”ùýŒ×¯_¯\¹ò§Ÿ~š={¶ c` üüüZ[[W¬XQSS£««ëîîη¹Ìþ_;wl1P´aa9OÁN¬àY®¸öJ_è½pô¥8‚¾ÂcŒïñN8Tk-""b÷ /åû0ÔÓW¨§¯PO_ ž¾@=燹ʜs÷´ÖÚ=?dæÝït™Ù{~]}å*®ßñ¼µ–÷r[úê}D¨çÿ+ÔÓW¨§¯PO_ Þö”a#ÊãìÿIEND®B`‚XQilla-2.3.0/docs/simple-api/XQQuery_8hpp__dep__incl.md50000644000151400015140000000004011653571063017673 00000000000000060aa8a5801f179b9ac5a66696cc5b3aXQilla-2.3.0/docs/simple-api/UpdateFactory_8hpp.html0000644000151400015140000000505211653571064017224 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

UpdateFactory.hpp File Reference

#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/schema/DocumentCache.hpp>
#include <xercesc/util/XMemory.hpp>
Include dependency graph for UpdateFactory.hpp:

Go to the source code of this file.

Classes

class  UpdateFactory
XQilla-2.3.0/docs/simple-api/classxercesc_1_1StdInInputSource-members.html0000644000151400015140000002242111653571064023427 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

xercesc::StdInInputSource Member List

This is the complete list of members for xercesc::StdInInputSource, including all inherited members.
getEncoding() const xercesc::InputSource [inline, virtual]
getIssueFatalErrorIfNotFound() const xercesc::InputSource [inline, virtual]
getMemoryManager() const xercesc::InputSource [inline]
getPublicId() const xercesc::InputSource [inline, virtual]
getSystemId() const xercesc::InputSource [inline, virtual]
InputSource(MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSource [protected]
InputSource(const XMLCh *const systemId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSource [protected]
InputSource(const XMLCh *const systemId, const XMLCh *const publicId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSource [protected]
InputSource(const char *const systemId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSource [protected]
InputSource(const char *const systemId, const char *const publicId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::InputSource [protected]
makeStream() const xercesc::StdInInputSource [virtual]
operator delete(void *p)xercesc::XMemory
operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
operator delete(void *p, void *ptr)xercesc::XMemory
operator new(size_t size)xercesc::XMemory
operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
operator new(size_t size, void *ptr)xercesc::XMemory
setEncoding(const XMLCh *const encodingStr)xercesc::InputSource [virtual]
setIssueFatalErrorIfNotFound(const bool flag)xercesc::InputSource [inline, virtual]
setPublicId(const XMLCh *const publicId)xercesc::InputSource [virtual]
setSystemId(const XMLCh *const systemId)xercesc::InputSource [virtual]
StdInInputSource(MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::StdInInputSource [inline]
XMemory()xercesc::XMemory [inline, protected]
~InputSource()xercesc::InputSource [virtual]
~StdInInputSource()xercesc::StdInInputSource [inline]
XQilla-2.3.0/docs/simple-api/classATDoubleOrDerived__inherit__graph.map0000644000151400015140000000075511653571064023023 00000000000000 XQilla-2.3.0/docs/simple-api/inherit_graph_28.md50000644000151400015140000000004011653571063016357 000000000000005a7d8d54bfa2c98664a60074a639235cXQilla-2.3.0/docs/simple-api/classFunctionRef__inherit__graph.md50000644000151400015140000000004011653571063021674 0000000000000077faa2af905b8ea108ff66c04d16e794XQilla-2.3.0/docs/simple-api/Sequence_8hpp__incl.map0000644000151400015140000000003511653571064017173 00000000000000 XQilla-2.3.0/docs/simple-api/MemoryManager_8hpp__incl.map0000644000151400015140000000003511653571064020166 00000000000000 XQilla-2.3.0/docs/simple-api/functions_func_0x76.html0000644000151400015140000001126411653571063017323 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
 

- v -

XQilla-2.3.0/docs/simple-api/Node_8hpp__dep__incl.map0000644000151400015140000000076711653571064017313 00000000000000 XQilla-2.3.0/docs/simple-api/inherit_graph_34.png0000644000151400015140000000233511653571064016465 00000000000000‰PNG  IHDRh(&(šbKGDÿÿÿ ½§“’IDAThíšMH*]€Ï|]ÒJòV¨•)ôGÖ¢ZH? ¡¶……‹Œ‚¢Eµû¡d"ZB›(¢MEXˆµˆ~@iU1I†dQô‡N™:9w1bj];øuo|󬿼¼ïœwž9sFE„¢(ÀðyþùÓ |Wq0â aÄAò#p`4GFFþT+9ƒƒƒ•••þáq×××[[[ …âË»úÛY^^nkk ŒüMZZZúª~¾ ‚E˜=F$Œ8Hq0â GŠ¢‰$...;;ð——èÎÎÎBßY$гD0G~KWW—Ýn_YY‰D‹¥»»ûþþ~bbÂf³•––ÞÞÞF«9“É$‘H¢u¶(C Óé‚"aùùóçÞÞžh4Åb1EQV«5’ò Þ«X­ÖÏží? Óé#0jbbâÔÔÔÝÝ=¬¨¨°Ûí€òòr@jj*_[[+..ŽOKK$‰a˜X,æñx*•êññ1è¢(*•J?X³ôs½½½-‹wwwC§ 2;;›ŸŸÏãñFGGçææ$ —ËÕh4t‚×ëU«Õ€Ïç«Õj¯× !fÅmll…B‹%—˵Zíùù9\;‡#66¶µµõòòr~~pss£Õj p?::*++CQÔ_åóùüÖü7ùððЀ×륓kkkwvv®®®B§  •J¥Ãᘙ™4448Žééi}ò±±±úúú‹‹ ÇKJJúúú VŒ8Š¢H’ÜÛÛ.,,Œ‰‰YXXçv»- A¯¯¯F£`µZsssWWWé„ããcú˜®êé霞žö„Á` “qo ºpŸ¢(ÇtL'äåå]]]ѳlnnJ¥Ò¯GÄââ"I’ôÐçói4¡PH…ìVz½^&“I¥Ò––ºi6›}tttBºªºººªªª¹¹9°×Ð=ŽNöx<ïMTö˜ÍfÞ.—ûñ%SQçt:988ðGvwwõVÜóó3‹ÅÒëõ>ŸÏårÑMgee :áàà`ddÄ_EÄÉÉ ‹ÅÚÙÙù­¸¦ˆD\FF†?øðð`±X>¾d**/‡£R©×××m6›ÉdBQT©Tú‚¸ÝnÇër¹0 8Φ¦¦³Ùl6›;;;éW MBBBnnn___GGG„Ÿ ÃNIa]]]¿ÝnÇq¼¦¦frròSþ%Ðb„{I’CCCEEEqqq™™™½½½.—‹¢(¯×+“É86>>žœœ,‰¦¦¦”J%ŸÏyyAQ4==Ëå*•ʇ‡‡ Eär¹rrr0 ‹dÅ…"’çp8ZZZ’’’RRRÚÛÛŸžž VäËáÿF¨8æ»*$Œ8Hq0â aÄAˆƒ„ #F$a~:—Ëå_ßÇ·ã8‘HÄüq$, …B$FŠù++Ì #F$Œ8H~¹x+IEND®B`‚XQilla-2.3.0/docs/simple-api/NSFixupFilter_8hpp__incl.map0000644000151400015140000000003511653571064020125 00000000000000 XQilla-2.3.0/docs/simple-api/classSequenceBuilder__inherit__graph.png0000644000151400015140000001420211653571064022636 00000000000000‰PNG  IHDR uÖhSbKGDÿÿÿ ½§“7IDATxœíyX×ÞÇÏ$!¬Ê@dq»Tµ.P«r }ЏEö- (^pWªô[k}ÄD”(Uí"Väb«Ü·@ÁDH02ïÓ›Æl Û@r>œ™ó;ß9g¾™3ÛEQ@$@À[2®@¤H:‘IðÇ;w¢££ñ’2A9pàÀòåˇáèÑ£%%%#¥2Lììì<ÈÿùCš››‹ŠŠ\\\Æ\ÕD%+++((h˜Aª««Ÿé¢«««ÿ!×ÂãñÚÚÚ†‚ÐÑÑÙ½{7`Ïž=‘‘‘ü¥«W¯< óY„±a$ÏCœwìØ¥{zz455¯_¿èë니ˆÐÓÓ£P(}}}A._¾<{öl--­ï¾û°dÉÀ ÍvíÚ5kkkƒØØX,S4fÿ±cÇf̘1iÒ¤eË–Ý¿_(ލ6l vëÖ-ccãÒÒÒ‘išaSPP`hhÈd2ééé3fÌèììé/..>|ø°±±±®®®··7öï.¶ °°ÐÊÊJIIÉÌÌ,-- ÀårŦ ¦ÉdrjjjJJJLLÌ… RSSø›àââ’™™Éheggoܸ‘¿TÒN’’’2{öl]]ÝØØØ´´4SSSuuuþS!ííí¾¾¾:::FFF»víâp8‚›?þü€€lM6›­¢¢RQQñÑM @§Ó…rĨ¬¬ìøE322Œy<Š¢ùùùS¦LéëëCQôßÿþ÷† ^½zUUU5þü={ö`A6nÜÈd2“’’mmm555‚µ‹Ö¨©©AQ”Åb‘Édÿׯ_Óh4À»wïÄÆüá‡(JNNÎÛ·o¯_¿>eÊ,¿"QmØR‡_ý•ÍfØt:}À“Ž‹‹‹‹‹Ë€«y{{ûøø455éééÝ¿0ú£¢¢,--«ªªª««/^¼k×.I¥Øl¶¢¢bBBBccãùóçI$›Í>vì˜ØâíííIII¢iŒ={ö¢££…êÉ“'úúúX)•ÖÖV~ŸJÚIÜÝÝY,Vrr2ÀÕÕ•Åb%&&Z[[QõððXµjÕóçÏ«ªª>ù䓨¨(ÁÍ¿qㆶ¶6¶Òh4KKKlçü¨¾¢CÄ:­³³SUUµ¬¬ Eѯ¿þzïÞ½Øú³fÍjllÄÒ7oÞœ7oäöíÛ(ŠöööbÍ$êQ°Öìééyüø1›Íîïï¿sç?_4æŒ3RSSù1/^¼(äQmØÒªªªÛ[‡0™L###++«¨¨(~¦tý3gÎÌÉÉÁ–>zôˆŸ-Å`0¾ÿþ{&“Éãñ:::úûû%—Ç[»v-‘HôôôÌÇš=,, Û+h4Úš5køùb%aKËËËÑÿu¨`º¦¦¦··—H$>xð+•““caa!¸ù\.W__ÿÖ­[(Š:::ÆÆÆ¨Ä‚m•(›6mŠŒŒd³ÙªªªÏž=Ã2•””÷ruuu,ÈÓ§OŠ:D¨Áœüü|›yóæùùù :D(¦²²ree%?v¬HT¶´··wÀv@ÇÖ!(Š9r„H$677ós¤ëWRRª®®#¶GJKK7nܨªªjkk{ãÆ )Å¥––¦®®~çÎ%%¥¼¼<~>ÖìÅÅÅ<ÏÙÙ911èSI; ¿ÇEÓ €îîn,³ªªJIII¨ûBCCÃÂÂZZZÈdrCCÀúEûb„»»ggg,X°`úôéX¦ŽŽÛ˜Læ½{÷°|aˆµwww»ººFDD”——Ÿ={Vp‘PÌiÓ¦ ^?yøð¡P(IÚÐㄆ††Ó§O¯^½zçÎüLéú§L™R__åTVV~ûí·’Juwwóx¼¬¬,ƒðÕW_1 IÅ%ñöíÛðððcÇŽÙÙÙ>|888XèÒ‹MGGGiiéÍ›7IÚ)èéé‰Äºº:ìçóçÏ 7àââ’›››™™icccdd4`LQ†¸¶´´4}–oooÏd2>ìïïÏ_yýúõ{÷î}ùòeUUÕ_|qæÌ)‘Ùlö€µ÷ôôôöö’Éäîîîǰ³QBBB"""òó󛚚~úé§C‡ ­ðQÚp„Çãùûûoݺ5==½¨¨¨°°Ë—®ßËËkÿþý¸8ÞÞÞ¥¡¡‚—°ñ†,?Ò7y²²h¦““5ƒÑµÿU}ýÉîîãô±óѦ½½ËÃ㜪*ùòå`!{ =‘e‡HÂ×wYCC[dd–††ªƒÃ¼åŒ5=‰=áZZªxËïÈò(K (Šnßž^PP™™¹yáBS¼åŒ}}ýžžçª«_çæn9s¾>)óÈéõ AŽs[²ÄÜÇç|mí;¼åŒ<ú¯]ùãz í1HäÔ!â¹s¾FFšnnñoß¶ã-g,8x0çÚµ?|àÓÁ#¿¨©)^¹¬¤¤àéyŽÅêÆ[ÎèrêTÑÅ‹wOœp_½úxk™HȵCÚÚj—/SÛÚØþþ)½½\¼åŒW®Ü‹½qôèºõëà­e‚!ïL›¦séRП6„‡_ûøDçÚµ?wïÎ ýÜÏÏo-è˜;wjb¢Ï?V8po-#LIÉÓ°°4W×EûöÁgþ‡1** o ãSS]혘ÊÊ Ÿ~*#׫«_{y%}þù?NžÜ4ä/Ë9òxÇPë×/xýšùí·×tt&¹º~Š·œáRWײiS¢¥¥á©Srþ®ùp€ù€ððÕ­­t eÒŠ³ð–3tš›Y‰ê/ =™ù(äôžºx³À[‹ì"3ôi4jyyý¿þueœGŠOŸ¾uüø×ööŸà­E¦€€ùóMâã½ +ccoà­E"tzÙÑ£‘‘..þ6ÎxÞSss …29:ºP]]e>7^TôhëVZ` ÝîÝŽxk‘AàÃAáá±´±ñ}TTžžÞä¯¾š‡·œ¿)+«£RSׯ_pèÞZdèÁ²k×Lfç–-4 [ÛxË€GÞz{'}ö™Åwß¹"ˆ˜¹w!ÃÞùúûyTjjiiMNÎÜç´mh`89Åked„À©ìGèƒÃéss‹õŠQX¸ÍÈH/--kׯ‘ɤÜÜ-ššp¾’Q:ä£a2;×®C$??—©¥Øì—3mmì‚‚múúêc/@®€W{?MMU:}sgg§ç¹®®±ž'»·—ëç—üæ “Nß í1@‡  Z[ûnóæ1'»¿Ÿr©²²áÒ¥ SSÝ1«Wž"³f¤¤øß¹ótïÞì1«tÿþ«¿þúøÂ…€yóŒÇ¬R9:dè|ö™E\œGzú½ãǃêŽÿ‰FûýäÉM66ÓÇ :¼2,œœæ1ûöeki©úùÙŒ^EÉÉ%Çÿ³qíZëÑ«" tÈpñõ]öú5ãС\=½É£ôݦ‚‚Ѝ¨¼íÛí}|–F|ˆàÕÞEÑ;2òó+22B-2ÙàÅÅO||’½½—=ºnd#CtÈÈÐ××ïë›\YÙ—·uút½‘ ûÇõ®®ñ«Wÿ#>Þû dŒ™ð©««+**Â[p8¼ ^öõñ6o6UPK Üøø:--Eooci\؃J¥â-a¬™ðÉÌÌtssÃ[Å_‰ªd²Iw÷£‘ ¨¢2—ÃyÂã—×€'úÞ2däLýöíÛxKqŠ‹‹¿ùæ¼Uà¼H:‘t" èDÐ!ˆ4 C iÈÈÕÞéîîNMM-))a0ººº«V­òðð “ÇéëÝ+W®ä§ÕÔÔ.\¸mÛ6 ±+¿yóÆÓÓóöíÛü„¤FQ±ì"/‰‹‹knn>r䈮®î«W¯âââ:::ÂÃÃñÖ%‘Ó§O (ÚÚÚzêÔ©¸¸¸C‡‰]SMMÍÝÝ}ŒåÉò2Ê*-- š>}º†††••UxxøÝ»wñ% ---mmí™3gR©Ô²²2Ikª««Ëáà c†¼8DEE%//Åba?­¬¬èt:–ær¹ ëÖ­[·n]BB—ËEQ477×ÇÇÇÑÑ1,,¬¢¢båÊ•oÞ¼á~Ó¢Å+W®,**òññqrrÊÈÈô÷÷_¸pÁÍÍÍÙÙ9&&†ÍfK).‘HÔÔÔª—ŸÌÄàñx^^^ŽŽŽ[¶lyüø±¤º°²ååånnnÕÕÕ#ÕÚ²„¼8$""¢¼¼|ãÆt:½¹¹™¿(;;»±±111ñøñãååå.\¸~ýú¥K—ÓÒÒ¼½½cbb¤D-Žå—––ž9s&88811±££#;;»¤¤$&&æÄ‰ 4Mzq‡ÓÝÝÝÕÕÕÐМœ¼fÍšÁoìÕ«Wét:•JMKKóòòJHH^Wffæž={¦O‡¯.ŠA^²páB:~òäÉ9sæüüóÏ›6mºuë¶èÇܶm…B133 .++»zõjHHˆ­­­¶¶öâÅ‹¥D-Žå;;;«©©ýóŸÿ°X¬ëׯûûû›™™™ššîÞ½ÛÒÒRzñÀÀ@GGÇ/¿üÒÛÛûÙ³g«V­üÆêçÁ$ÕE¥R­­­•””_…ü gêç·ß~[±bÅìÙ³gÏžíå啚šš€ívMMM6l௬ªªÊår-,þþ‡™™ðKQ‚¸ŠÇ:::é¯nnn62ú뫈&&&&&&Ò‹Óh4CCC@OOOvvöŽ;°ÑšX B´´´ˆÕ/©.cc8/„DäÂ!(ŠFGGcû ‚ Ÿ~úiaa!¶T]]ýĉØîÈf³ ƾ}ûž?nnnŽ­P__ÏÕßßO$[[[ù9¢Å±|¡‰tµµµ›ššLMMµµµ÷îÝóôô”Rœ¢¢â—_~™œœÜÞÞ.IƒúúúbõKª‹ocˆ(r1ÊRVV¶··ÿæ›oîÝ»×ØØøðáÃøøxþ¸ÅÖÖ6))©¹¹¹®®.222//ÏÁÁ!>>þîÝ» £¬¬ìܹs555À/¿üÒÕÕ•““Ã.Z\¬{{ûäää/^¼xñâäÉ“ü!IÅÛÛÛ ƒÁx÷î]zz:…BÑÐФA'''Aý)))%"ˆ¼üyDFF¦¥¥%%%½yóFSSsåÊ•¾¾¾Ø¢€€€Ó§O!bggL$ûûûÏœ9ÓÞÞŽ Ù£££ÕÕÕΞ=K£ÑÂÂÂþóŸÿH*.V€‡‡‡Ã‰ˆˆàp8K–,á¯&©ø–-[°‚ ¦¦¦QQQ‚HÒ „³³s___|||[[›¹¹ùÁƒCCCÅÖ%å@Á‘w Gõ†1¼' þ÷ÕDß[†€\Œ² !H:d` å|ˆ%Ï@‡@ Ò€@¤H:‘t" ¹§~íÚ5¼%È8OŸ>Å[>ȈCŽ?Ž·ˆl2áŸ:@FxH:‘t" èDÿZvèïÁyi~IEND®B`‚XQilla-2.3.0/docs/simple-api/ATDateTimeOrDerived_8hpp__incl.png0000644000151400015140000004300411653571064021162 00000000000000‰PNG  IHDRxu{ÏbKGDÿÿÿ ½§“ IDATxœíÝy|uúðoŽÞ¥'M¯ô¾€B9*r)‡‹(Ê­‚¬+*»«€Ü TŠ «û[qQ@¡ Š.BE¡…B[Ζ^IzÓ¤M›6Í5¿?¾:†\¤mHÚôó~ùò•†Ìä™Ì3“É3߃Ã0 °®£çBØ `3(4€Íð€lÚ´éìÙ³ŽŽ:©Q£F­[·ÎÑQ8 »ÈÏÏÏÍÍMNNvt Ðé\»vÍßßßÑQ8  INNÞ°aƒ££€Nç7ÞptÎc4€Í Ð6ƒBØ `3(4€Í`Ö >ûì³Ý»w¿ð ³gϦϜ>}zÓ¦MƯܹsç /¼ÀþÜ¿ÿÅ‹ûùùµûÝÍ½×Æ7nܘ™™Ùî5B”Jåž={²³³+++###GŽùÌ3Ïðx<ƒ—=òÈ#ìã¶nTyyùܹs;§É5<òÈ#{÷î o÷jÀPh0Ä0ÌéÓ§Aff&[h>|ø¡C‡!•••/¿ü2}Lñññ!„¼ÿþû¡¡¡:N,:tháÂ…»víòöö6¹þÊÊÊE‹9rÄ\æÞ‹a˜Y³fudÓš››/^ìïïÿâ‹/†……•””|òÉ'/^üç?ÿÉå¶slÓFéóööî`œÐu¡ë€¡’’‘H´bÅŠÛ·oK$ú¤››[@@@@@½«ð;>ŸOñóó èÙ³çÀ7mÚzðàAsë×étr¹ÜBæÞ+00páÂ…Ù´Ï>ûÌÏÏïwÞ2dˆP(9räŽ;ªªªNœ8aüâ6m”>__߯ ] †NŸ>Ý¿ÿÔÔÔÈÈÈÓ§O·uq‡óä“Ož?žþù믿¾ð &L˜6mÚ_|AY²d !dêÔ©ôfÇŽS¦L™2eÊŽ;4¹5———³=yä‘'NÌŸ?òäÉ_|ñÅÿþ÷¿Y³f=þøã»ví²°Ú“'OΛ7O¿ñ‚»»û3Ï>Þ`=ñññ"‘ˆ>>pàÀÊ•+,l”…˜ ;vì?þÈ0 !$;;ÛÍÍmðàÁ&?tèЗ_~¹páÂÏ?ÿüÙgŸÝ±c‡ÉM¾páÂÎ;W¬Xññdz­B¾þúëôôôÍ›7_¸p–rÌ= v€BÀ]nÞ¼YSS3jÔ(BȨQ£JKKKJJÚ½6WW×O>ùdéÒ¥€¢P( ^sâĉ¿þõ¯ 66öÅ_ÌÊʲråO?ý´§§ç£>J™={¶§§ç„ !mZ-‡ÃÑétôñÂ… èîînù­Í­Ü`ñ‡zH.—ߺu‹rêÔ© &ÐQ'?zôè¢E‹FŽøàƒšëyA7yĈìfB/^, {÷îý—¿üåäÉ“ž;À`w9}ú´V«}ê©§Øg233cbbÚ´‰DFáóù‰dÛ¶m---&› Bªªª¦M›Æþéååeå»xzzÒ·0xlnµÞÞÞ·oßNMMÕ_ÏíÛ·éãÈÈÈ{n”…˜ wss>|ø?þýË/¿ìܹÓÜâF¿©Ell¬É !GÿI¡PȾ{mm­…'ÀPhøƒN§ËÌÌ\²dÉOŸ¯R©è@ÍÍÍt‘––ú`äÈ‘;w®...^±bÅ×_m“m1¹ÚùóçËd²W_}5++K"‘üôÓO‹/îÙ³§~ Ž{nT›b`@¤£#2«¡¡ùÖ­*¶ôPXXÍ0Lp°M€””ˆÔÔè€/G‡i–Á€”l§ ã)Ù2¤{B¡,¡ý1ö =z¸ÇÄüQP`Ø8¼ À’J—.•²Å…êj¹«+¿ÿöWe|¼ ³Ý'„46*7m:úÅçz(!=}Z\œÀÑYåÆŠ•+3.]*={èºuO:¼=ˆ5äò–›7+-ÔŒê$]B,39 %í”!Ku:†ââ ð¢ý/ ¤|8ÖŸ ` @ˆSXJ¥šþb¤}"ª«å\.'>>8%E8dHìàÁ1±±AŽjÁ Ãdd\|ë­c:³nݓӧ?е~þÑø7m:ÊãqW¯~bÆŒÁŽŽ¨märåÍ›lÝáöíjÀ‘AA=fÛ444WT4H$ÒÊʆÊÊúòrYEE=ýO¥ÒÐ×z‡†ú††úED„…ù …þaa~AA>hm‚B@÷Â0LM\$’ŠDub±T"‘‰ÅR±XZ^.£¿]\x¡¡~þBa@DD@DD@dd PèâÛ oûS:sõª$+«„þ2ìœC-X©  jõêC.?÷܈eËþÔ ë8VjhhÞ¶íûÝ»:4.=}zBB°£#j§ÆFå–ê))ÁÁ>޳ýjk+*êõ«ååõ‰´¦FÎ6‚ õ£¥‡ðpÿðpúX(Äh”` NK*UˆDu"‘T"ù­¬ IÅb)½©_P "#++tæ‚‚>ý¡®_¯P(ZýüoÞðU«w‚ߥMM­×¯—³u‡¢¢­VçëëI•¤é—”âè0mÃ`0㎮®üÐP_vJv4¡ÐßËËÍÑá€Ã ÐÐå56*%)m¤@ÿOÿT(Z !\.'$Ä—6LˆŒ  í"#CB|»Ö¸ôuuM99eyy⬬’Ü\±\ÞâæÆ§÷“iŸˆÎ3ãc;üðÃõuëK¥Šuëžœ={¨3µT×ht{öü¼u뉀¯´´icÇövtD¶Dû±CKææŠU*GRR[wHL îZ_îI¥ÒTV6°ƒPÒnVÕÕòòr=íŒF н¡ÐÐeл‹ú(ˆDu•• ´…ŸÏ ÷go*²ºnÛû–U~>g¡„âØµ†Z°’D"[³æÐ?\Ÿ6-uíÚ'‚.ÖùßJÕÕò·Þ:–‘qqüøä·Þš&ú;:¢ûB­ÖײmmòòÄ­­÷¤¤P¶îìÄ¿´Ñ Pc£²¤¤Ö  PUÕÐÚª!„ðx\¡Ð© ,µZ{ùrÛ(µ8dH ý‘Ö§O¸··óüQ«µÿþ÷ÉíÛ3#"6ožöÐCñŽŽè¾ûå—Û«VeH$²%KYºt¼Ô‰,3¨;äçK”Juî½zu—º«# "#œ¬I€ÓC¡Àah£ký‰èô'zàr9´{ÇÞ ósšŸg ÃT³?î]+onVuõ¡¬ôÓO«VeTU5¬\ùøüùÃfŸÞ“Z­ýôÓs[¶|⛞>}äÈDGGd?®¨¨†Mø«WË[ZT^^n}ú„ÑlOJ éÝ;¬û$ÕîF “B¡à¾Óhtåå2ýæ 3Gêרv ¡¡¾®®|ÇF~?ܹÓtùrYVVIVVñ­[•r¹Ò™†Z°Æ;Mo¾yäСKcÆôJK›æôÛkRYYÝÚµ‡NŸ¾9mZêúõOõìéíèˆÀ î@ m..¼˜˜ ¶Ð6`@¤Sž¬F] 6£Ó1b±Ô ¿CM¼¢¢žÎéãã¤ßßÊèææÌ?$š›U—.•feÓ_SìP C†Ä “’'èZÃR¶›V«Û½ûçmÛ¾óñqë­iãÇ';:";yòÚš5‡ärå²e,Ñ%¦;¹´ZÝíÛ5UUyy’ìì’úúfƒºCÿþ‘Î}º°Atr(4´GYYÁ}6‘¨Ž-(x{»ÅÆ Ø‚{·Í †Q°†J¥¹rEd0ÿ_TT -+8ßP Vº|Y´råÁ›7+—.·dÉüÚ!„–Õöí§ÿýïzõ ݲeÆÀ‘ŽŽ¨©®n`£K—J¥RŸÏ°u‡””wwG‡Ù‰ @'B€%r¹²´Ô츌® Áú¬N3.c›èµ]rãF…Z­õ÷÷zàh§jÁ2™bƯ¾4|xBzúôØØ GGÔé×®Z•qî\áìÙC×®}ÒÇÇÝÑuFúu‡œœ²ºº&ƒºCß¾BÜ®7 ì …BôÆe‰êªªä55rýaœoæÈŽ«©i¼p¡ˆNl'‹ÔÔè€/G‡Ùe¨ÕÚÊÊúŠŠz‰D&‘H+*êËËeååõú¯°0¿ðp¡Ð?<Ü?<ü·Ç ÐÍ¡ÐÎÉx\Fý‚‡Ã‰Œ Ð@Á—–œiæÈŽkmÕäæþ6ÔBvvIYY!$11„m§Ý=‡Z°†BѺeË·Ÿ}v®oßð-[fôë'ttD]L~¾dåʃW¯–Ï›7|åʉ^^H³6cëÕ·nUT‘»ëƒEvÇÉ>:®¾¾¹¼\VQQ/Kiõ¡¼\&‘Èjkål/Œ°0?¡0 <ÜO( ˆˆ •|Å@÷BtyJ¥Z$ª‰¤bqH$eËåJBˆ›?220"" 22@(  #"pgϘNÇVÓ²BVVIII­Z­ ðJMe‡Zˆöqt˜Ýñã¹6|­P(×®}röì¡\.nl¶‡NÇ|ñÅù´´£~~^iiSÇëã舺¶††æ[·ªØ&……Õ Ãè× ˆ êáè0»6Ú‚¶z‹¥´Q^.“H¤tX.—C} ý…ÂÚüA(ôˆÀè°àdPh€.C£ÑUVÖª«åä÷a""iS…ÈHz)?Œ-‰ê.\ømâÉ7*ššZ1ÔB»‰ÅÒµkÿðÃõiÓR×®}R ÀÏ¶Žª©iLK;zèÐ¥qãú¤¥MˆptDNB.o¹y³ÒBÝUEÛjmÕTU5жut<ÚÔN"‘iµ:òûP”Æíì„Bÿn>í+tQ(4@§cyŒËØA2™ââÅRƒ¡úöC``¨…vP©4ï½÷Ãöí™ééÓ‡ ‹stDNå×_‹V­Ê‹¥K–<òÊ+ã\]ùŽŽÈÙ46*oܨ`ë·oWëtLp°ObbÛ[*) ãeØžZ­•J›Øº;/FQQ ÓÅ…àÅÖ0t(4€Ã0 C&èOYS#¯¨¨W«µúÃ(èò>®mŵ]’•UL€èµœŽ>ðqöì­Õ«UWË_}âüùÑŸ÷ƒZ­ýôÓso¿ýmp°Ozúô‘#‘3kjj½~½Ü îàãã‘”Â6yHL Æx‡÷•ñ|œlkú:­;„„øÐ¯Ëèè Ì  `r¹²´´V¿y‚HTWYÙ Ri!=z¸ÇÄéß®‰Œ õÅ}Ëö¡C-вB^ž¤¸¸F£Ña¨…û¡¶¶qíÚÃÇŽ]yâ‰þo¼194ÔÏÑ99‘¨ŽvN™4i@ZÚTŒ)` EëµkåìÐ’7nT¨ÕZ÷¤¤P¶îŒáHìãž½0|}=Ù™81'8 `K--ªÂÂjö& z=ØÍ­[Uloý¡† ‰2$&%Eˆ¡lK«ÕíÞýó¶mßùúz¤¥M?>ÙÑu#'O^[³æ\®\¶l‚#ЃÝÎÔjmqq-{ÂÉÍ«Tš=Ü{õBÝÁ‘ŠV‰DF'ãü}J™D"«®n sax±3qFF²CQúûchd°= =´ZDbvã^tt«ÀÀèüo+R©âÒ¥»†Zàñ¸ÉÉájÁrrÊV®|iĈÄÍ›§ÅÆ9:¢n­¸¸vÕªŒsç §NM}ãɸ1ÛÔòó%J¥ÚÅ…Äž¬ ˆÄwDgP[Û(ÓꃔNÉ)ËÄbiK‹ŠâæÆ§³AÓÒýdd€@àƒ.pO(4ÀoššZ‹‹k †Q¨ªj w<ÜÝ]h?Oôz°­VwíZ9-+°C-z•’"2$¶ÿG‡Ù]0 “‘q1-í!$-mê¤IüæØ±+k׿pÈš5“¦O?:FWTTÃÖ®^-oiQÔú÷tsCÝ¡ÑBÿfƒH$¥?Øq(Â'**06Vàíb7ü…€nÇòä‘\.'"°× öÁ0LAA5{E~ýz…BÑêááÚ·o8†Zp¬[·ªV­ÊÈÎ.yî¹Ë—O@}§³‘Ë[¶nýnÏžŸŽIOŸŽ‰;-­Vwûöu‡k×Ê›› ë))îî.ŽŽLP©4••& b±”‰0€…B€ÓÒé±XjPP¨®nJ´×ƒ{t4z=8X]]SNNY^ž8+«$7W,—·¸¸ð ˆd/¸1Ô‚c)­[¶|ûÙgçúõnÙ2£oßpGGfåçKV­ÊÈÏ—Ì›7|åʉèIÔùÑá~ ~Ë6;»¤¾¾™ÏçÆÆ غC¿~B ƒÒÉé ô'ÂÐ/@L„{N…g`yòHׄ„`ƒ; ø‚w”–ÕÅ‹¥tâI“C-ôí+ôôÄUu§pìØ• ¾nmÕlÜøÔ´i`ýÎO§cº¸qã77þ›oNyâ‰þŽŽÚ¦ººá÷A%%—.•J¥ ÷[Ý!))$%Eˆ/¯®B­ÖVTÔÓn˜55röú„‰ÓÍâ«·3q8 ºvòH‘¨®ªJÎ~m£×Cg¦Vk/_.c/‹Šj´Z µÐÙ‰ÅÒµkÿðÃõiÓR×®}R Àèë]IMMcZÚÑC‡.×'-mjDD€£#‚vÒ¯;\¾\vçN!$8؇móõÀÑ´ËikB ð¡FD à ÐU ÐÐYž<’âããÝÓ ×CX˜Ÿ‹ ϱ‘1jvBöðp}àè!Cbèõ1†Zè´T*Í{ïýðÁ§£¢ÓÓ§ç舠~ýµhõꌲ²º—^óÊ+ãÐ)Ì è×®\ÕÖ6’»ëƒEz;:Lh§¦¦V±ø·ù/$©X,£¥R}¯¯'ù‚N‡AKè'Ð ¡Ðà`jµ¶¼\ÆJKïÐJB—Ë¡m####â‹V…Jmmã•+¢¬¬’¬¬â[·*år¥ÁP ˜F¾KøñÇ[«Wª©‘¿þúÄùó‡£r×Õ©ÕÚO?=÷öÛß >ééÓFJrtD`KúuÚÜ]w0 2(Í‘º¼æfsŠÎÄ)KE"©X,•É~+@x±E¡0€V""#1› €¡Ð`? Í´ Àþ'ÕUTÈ4!ÄÛÛí÷ñ™{Ò²BTT Pè»pSCC3;ñ$†Zp••õ+WfœtNv" z=+ðöF ›A¡ ý†‰ çÔIÁ š€¡»v¨…ìì’¬¬’’’ZµZëééššŠ¡œÇ¥Ke«V,(¨~啱/½4ÖÝÝÅÑÁ}¤Tª?øàÔ{ïJL NOŸ‘šåèˆÀ~äråÍ›u¤¤¶ÉCbb0º%:±ÖVMUUƒ…Ë6Z€Ð›ÿÂ'**0>>íÚ…«èO÷`<$ô;))D¿¬â‹Î]NMMã… E´OÄÍ›•j¡kkmÕ|òÉÙ%KÆÿ“TªØ¸ñëÇ/‘˜ž>-&&ÈþáC””Ô®ZuèçŸ ¦NM}ãÉ&ç,ؾýôóÏÂ9܉56*oÜø£îpûvµNÇøø¸'%…¢îÐÝ(•jÚäA¿QZZ+—+é ô ìƒðp>×f¡Ðp—{6R09ݾlº®úúæìl³C- Ó»wFìº^ziïW_]:p`ñˆ‰ì“ ÃìÛw~óæã..¼´´©“& p`„à(ÇŽ]Y»ö°Z­]½ú‰9s†êÿžüé§‚§ŸþpêÔÔ÷ߟëÀÁžššZ¯_/7¨;ôèáÞ«×u‡„„`̭حСµª«åÕÕrö𰍍F¡h¥/0Y€ ýqC€ ÐÝ™R©.(¨2h¤PUÕÐÚª!„ðx\¡ÐœOk«&7÷·¡²³KÊÊê!AA= ˆÄP NfûöÓ›7gpöìJ: ÊÍ›•«Ve\¼XúÜs#–/ ûº;“Ë[¶nýnÏžŸŽIOŸN»ë«Tš‘#Ó%‡CV¯~Âdspz EëµkåìÐ’W®ˆÔj­··[ïÞahàÖÍ©ÕÚÊÊz‘Hª?ÿ…HTW]-§¿ª¼¼ÜèüúpFFøøx8:v»B¡ºvº‡‚‚ª‚‚j£F îÑÑAé°0?ÜÇv:SXX]’•Uœ—'¡C-øøx<ø`,;C†Zp>ÇŽ]Y´è3úÇçs_yeÜâÅcÞ~ûÛÏ>;—’"LOŸÑ·o¸£c„NáêÕòU«æåIæÍ¾råÄ>8ýþû?ÐÉ€8ÎŽóÐæÔjmqq-Ûö-7W¬Ri¼¼ÜââtPɔထԹ;S©4‰L,–ÒÿD¢:Z‰¨©i¤/ Íè<åló¤ 8+À©h4ºòr™¹Žh¤Ð…46*ÿùÏïbb‚æÏÞŽÅËÊêhY!/O|ãFESS««+¿ÿ܉ê&nܨ|üñw[[5ìwÇ ñ«¯o^¶lÂóÏB_'ЧÑè>þøì?ÿù¿¿We¥L«ý-m8âææòÍ7ïÝ;Ô±B§bPwÈË·¶j\\x11AlýºÿÈŽŒñ±bÅ F"ñœ€R©¦^ˆÅôÒTJ'àllTB¸\Np°/-@DDЫӀ¨¨@Àãƒ@W‡BØ’J¥±[]V.W––Öš›BÒÛÛ-6V€F ]Ã0_}•³nÝa™¬yòä۷ϳf)™Lqñb)†ZBH]]ÓøñÛîÜi¤7¥)>ŸçïïyâÄßÃÂütf²Ç{W&kÖh´ì“|>·gÏ'O. ôv`lЙi4º¢¢ö (?_¢Tª ê))ÖOjÓØ¨ìÕk5—KæÏ±|ùÜqJspÒ%%µ´AÌ `·Bär%zBG Ð¶qéRÙ–-ßΘñÀÌ™ƒm»f­V'‘˜m¤Àårh84Rp7oV.[öååËeôÌÞä+•J5½ª£}"ª«å„  C‡Æ “’"ìÝ;¬G|Av;jµvêÔ÷óòÄ´æ¨Ãá|ðÁÜÉ“9$0èü¾ú*çå—?7¾,rqᥤD>ü2Š•` ƒºÃÕ«å--*:;[wè×OèáavÆÄó狦N}ŸÂçs==]׬™4{öP´Âë&ØÞ¾ú—¾åå2Z:wu准ú\÷FGÝŠÀ¼1vlŸ¿þu|X˜ŸÍWÝ ÐQ¹¹â-[Žÿøc!œW_}tÙ² í^Uc£²¤Äl#ÚÒ ²ꋾmÎA*UlØðÕáÃ9\.G«ýíF4‡ÃÉÏßàEÑ阫W%tâɼiiS£¢;t.÷¯ÿÅ•cÇþƒ>æó¹ C&O¸lÙcH?° ÐW®ˆÒÒŽýòËm>Ÿ«ÿ˰_?á÷ß¿¦ÿJ…¢µ¨¨Æ\#ׄ„`4RèÎrrÊV¬8xãFÃB OG®®|.—˜’"2$vðà˜ØØ TÀ¤K—ʦLyO£Ñ'!„Ïçiµ:†a¢¢z~óÍßh3J*ULœø®HTÇårx<®q¿B‡Cø|îW_-4(Êþ‚³R«µ……Õtd‡¼<Éõë--*OO׿f•ñ‹]\x:óÜs#V®œèååfÿh¡«èxÿ‹ï¿¿º`Á.ýïSš~Ï<3äµ×&„„ uÜ Ð6yyâM›Žž;w›Ïçé—Ey{»½ûî,ýóZy¹Œ­)ÐÓÙï'µžtd]Ôº-¶¯Ç1nÈ@q8œ‘#öï_lçØ Ë)+«{ôÑmMM­ì—ŸÏÓét:ãëëñÐC Æť¤ûô ÷öÆÕ9˜ÖÔÔzýzy^žä×_‹~ù¥°¡¡…Ëåp¹\öËŽËåxy¹ÿï¯ážÜ'./OýLLÖS*Õô],–²=/Ä⺦¦VB—Ë õcgß,)¹sìØe•ÊðRŸ¶n˜5ëÁ×^û:S€ewZZZd2™£NËÃã¼¼ùí·¿=}úÇ5.1°\]ù½z…4R ñÕéÔÈ.`}ÿý­[O74´Ü³Öéëë~êÔ+6ÀßßßãCõe2YKK‹­âŽhmÕ,X°¯  †¶±âp8QQþýû SRB““Ccb»É jÈjÒju%%Ò«W+òó+ss%ee2†ah‚%& vïžÓ‘™ ÁÎÂÂÂ:¸†ŠŠ ›DbÜÜòçŸÿÂòk8Â0dȨ×_`ŸÀÀ)………ÕÕ5ÑŠƒH$e+2™¢¹Ye²y!„ÏçBh뭶ɾ!C§¦¾½«ÐPSSsýúuG„ZMMó7ß”ž:u›ÃájµfK Ô7ßümà@ÍJ‘]@i4ºƒož:UÒܬ!„p8>ŸÃ0ŒFc¶âðÞ{Úxô¾>}ú‚ެáÚµkµµµ¶ŠÚa˜>¸tõê¸8ÿÄÄ€øxÿØX?îø#Y}ÿ´´hŠ‹ë ¥Òââú~ý‚^z)ÕÑAµ~øá®áÌ™36ˆÃ:ß_¼wï5“#ÚBx<! ™ìµ`AJJJ‡|èÎÌsæ|”™yÓò²ÇÝÿØc±'Æ{zvǯ]0¦ŸQ&r¢ã§cp&çÎÝþ׿¾(+«gÆÅ…Â5÷åGápHEE½ÉB…ìBȸqc!2™B,–ŠDR‘¨N"‘–•Õ•”Ü©¨Ñvz..<~çÎiÎÝ=(/Oœ]òË/E¥¥µ:CÛMéw£àóù¥¥–NL,/¯””ƒç««D")—„–!**ê!t žž®žžÝ½Êv†ÂÜ?ùùâÀ@ïØØžññÁ±±A¨)€ýétLyù]ýÙÊÇí×O˜šMgH‰‹üüóÙ>}ú ÊÆPh«ðùܤ¤¤¤:³W}}sn®87Wœ—'ÎÉ)«ªjàpˆ§§[K‹J$’::XèÚ‚ƒ}ƒƒ}Žqt övâÄk«¶V®Vk餪„€ïÔÔ¨Aƒ¢ú÷0 ÒÏó̓Up"ƒöðóó=:iôè$úg]]­;\¹"ji11!ܪ àp55£F% I+ ˜ÌÚç2°À@ï1czÓÛÑ@ûõë'Ü¿‘££€.¯[ÌøöBØL—/4ˆD¢ Üóe·oßæp8úô¿|ù2ŸÏ?xð ûü‘#G\]]óóó !'!!aý>öØcçöíÛôô¾¦¦¦eË–ÅÄÄxxx$$$lذA©TZa»™ ÃYïPk>@º»;þQ[ƒÍLŽžèèèyóæÙdšz…B±|ùòþýû÷èÑcðàÁ›7oÖh4¯Ù¿?Ç”ŒŒŒŽ|æV{åÊ•ŽmÓ]ºU>“Ž¥4Ã0sçÎõöö¶G íba[¬9 B ÅŠ+ú÷ïïíí=dÈôôtšðíøÜLf¯­¶ôžºUbw¡5µiÓ&‡³eËö §;›œÛ;¸™‹[ó½@:ö­Ôñýbr 8.p\X£Ý›C£«è*GÇ}ºÀ¶;gT—/4|ýõד'O6ùOÅÅÅ={ö¤ýüü^ýus‹8põêÕK—.­¯¯'„444,Y²dÆ ýúõ£/+--ÍÍÍe—’ÉdgÏžµØ+¯¼’““sèÐ!‘HôÉ'Ÿ9rdùòåQé3!˜Ô¾‹învYsûÂ&ô3ó—_~©¬¬”H$»wï–Ëåƒ ¢™f’5Q566>ðÀÙÙÙo¿ýö¥K—V­Zµoß¾ñãÇkµZý—=õÔS••••••¿üò !¤òwÇïH²™[mrrr»× I銊Š}ûöÙj®x;³æ$LþÂ… [¶lÉÉÉY¹råÞ½{}ôQ­V۾ϒúl»Q÷õÜÒ…t­5Ã0û÷üòË/ÙX>ݵéÜn’ ¿ú­ü^ Ú9®U:ÇE›Xs1o.¤«÷éÛ 1zª««333™.åñÇonn6ùO………hü$»xkkkß¾}.\È0Ì¢E‹RSSU*} !d„ «W¯f—Ú³gÏc=F),,¤/ ôùùù?žýóÇŒŒŒ4•M˜ Ã&®^½zõêÕ®ä>eûyZóÁdËýÛúïe°_t:ݨQ£Ö¯_onAk¢Z¶lÙÈ‘#5 ûLSSSttôÎ;Û½Îv¸¯àýËg†a233«««;¸›ÆÚ‘Ò÷uGØ„…­9 ›Kø;v¿Å=?ûšZÁØóÝ,«—½ôß+77—Ãáœ>>Û·o¯««£Ž5ª¬¬ÌdTô#Ú³g!‡ÃÙ·o_ïÞ½þñB†Ù±cGŸ>}|||ÆŒsüøq“-sþ÷¿ÿÅÇÇûûû§§§³ë?räHRR’@ Xºtikk«É'-o‹Ý˜Ì.N÷þûï÷îÝ»GÆ ËÌ̤Í~,´M:~üøÀ===CCCÙÆ~ÆÙ¢¿/ˆ™läp8»víêÝ»wPPЖ-[>ÿüó˜˜__ßuëÖÑ¥ŒÓ•ÜZ8΢E‹¾ùæs¡ZÕÞ½{ׯ_ÏãñØÕzyy-_¾|ïÞ½úIõóÏ?›ü|ô?½{n ÉLZºtéóÏ?O755yzz^¾|Ù\¾Y³Ú®žÏÄ^)mî¬òóÏ?›\°;}ذaï¾û.!D*•r¹ÜeË–B´Z­¿¿?Mæúúúçž{®gÏžB¡pÙ²eJ¥Òd*2 ³lÙ²ܹs‡X}6™ð+V¬Ø·o_;>·6í,s fy{ˆÞQl «'¶³ž¨÷ïß?zôèqãÆõêÕKÿæ­• ÎíÆqš¼’iÓÙØr>·û{áž‘›¼V™>>~ãÆ&Ÿ´¼ÇíÙ¢Á8»>úè#@pøðኊŠo¾ùF(ÒÜ`‡²är¹««ëŸÿüg‰D²wï^BHMM c*[ ÊÆÙÈ0 !dÖ¬Yr¹üã?&„Ìœ9S.—ôÑGô6™®ÌÝ©eœÙÙÙ~~~æB½gTôL][[kðÑ;w.88X?©h0Æ[ªÿ§å 4÷±˜\í?þ¨V«†Ù»worr²N§3—oVËvŸò™±ï½_{¦4s÷Y¥²²Òä‚íØéo¾ùæã?Î0Ì‘#G||| Ä0ÌÅ‹ÝÝÝ Ã0sæÌ;vlQQQ^^^ß¾}Ù]£~Óétl•FkÍIØ\Âÿúë¯íøÜ!W®\i¼›¹e.Á¬Ù^“ùpÿÛY³Ú>'jNóÑG1 ³fÍšäädƒM¾ç[FïÜn2N“W2ÖŸ-_´é{¡­‘›ÌmÚœ^§Ó1 säÈ‘°°0zò7^üwÞÑϰ°0{^ÀØóž-Ž Æâqaá²ÜÂw–É¥S'aÆÔõ3 pttäè îÓ¶N§›9sæ¢E‹èŸVf»åu²QÙ3£ÚShÉdB¡0%%Eÿ-{õêUYYIŸLÿõúõëìc㥤R©‹‹Ë¶mÛd2™N§kllÔjµæŸ6mšT*eÚ[h`§t:ÝSO=ÅãñæÎ{×gDHaaáK/½´jÕ*†aöîÝ;~üxFïdj|b¢4Íùóçß|ó;}ûòx¼}ûö™ŒŠ~D©Iw„J¥¢+ïÛ·/]œúâ‹/LžŒÎœ9Ã0 íuVXX¨¿~†a¾üòËøøx“O¯Ïž…ãìJNNÞ³gû‚O?ýÔò™¨µµõÆMMMZ­öÇd÷Žq¶œŒ³‘aBHNNóû¾Ð\XXh2]™»SËÂ÷–ÉPï•…ß]={ö4Ø¿”åó … 4÷±˜\­F£ 9uêÃ0'Nܲe sw’3zùfaµl`÷)Ÿûþ$³gJ3wàælÇN¿xñ¢···J¥zõÕWW¯^íââ"“ɶnÝ:qâDº,Çc?ÇìúxÅŠäîÆ·Öœ„i³µ Ö/¿üÂ&|›>7bйe2Á¬Ü^“ùpÿÛY³Ú>'êóçÏóù|šf—.]"„äççëor[ Æqš¼’±þllùû¢Mß mÜdn+ //¯¬¬,†ažyæzdrñÄÄDãÜ0ˆóþöü)…ã‚io¡ÁÂw–É¥Lž„S×Ï84,ÀÑÁtàè îÓöŽ;†ªT*™¶d»åu²QÙ3£Ú3¤ŸŸßÂ… ¯]»¶xñböÉÒÒÒÐÐP:äæøñãKJJèó½zõ"„”••Ѧ¤„Þ½{O™2ÅÜRþþþ™™™çÏŸ …£Gþé§Ÿ¸\®ÉÅ›ššÔjµ¿¿¿AxŒ™ëHÆ‹ïÛ·ïÌ™3§OŸÎÈÈ8räˆÁëg̘qðàA†a¬é7¡P(öïßOyðÁ×­[———·zõjz‘mŒ~Dh]“m9\TTÔ·o_ö_ûôécrUt).÷®ÝÊ~t½zõ’H$žì Œ³«¸¸xÀ€ì RRR,¯ÁÕÕµ  `„ ©©©{öì¡OšË}ær¸Gä÷}¡ÿ˜b2]ïù^………qqqæB½gT~~~!!!ÆS<\¹r%55•>6™TæXØ@ ‹17uêÔÇß¹sç‡~˜3gûOÆùfÍj Ÿ‰ƒRš&€…këN8p ——WvvöÙ³gŸ|òÉž={633óñÇ'„TWWkµZšÕ„øøxv/è§bvvöÃ?¼yófs›`ò$l!á-ç¹…Í7. ³ïeüíFŒÌÊí5Ç ÛùNÔû÷ï×h4={öäp8ôDÚŽVâì¹Ýdœæ.„ôYØ Ëßü^°¹ÉÅ===ŸzꩌŒ …BqìØ1v’ãÅÅb±5¹ã‚tƒã‚ep­~Ïï,NÂ×Ï84: ç;:¬Ñ¾ ì¼¼¼ôôôŒŒ 777Ò–l·°N}ǫ̈öÄbñûï¿?nܸ×^{}’Öé›L&;þ<}žn|XXXii)}æÊ•+o½õ–¹¥ZZZt:ÝÁƒ¥RéóÏ??iÒ$©Tjrñï¾ûn„ úѹjÊËË­Ù ƒÅ+**–.]ºuëÖQ£FmذáÅ_d‡W FŒÑØØøóÏ?ŸNùàƒ¾üòËú­G6lØ’’’ŸŸŸŸŸ?|øð^xÁÜR---îîîµµµÿùÏÜÝÝ[ZZL.>wîÜòòrº:Ïí'Ÿ|ÒÐÐ@ï0¿7_¡o›Óè/®Óéžxâ‰Ñ£GÓ†1*•*%%eÖ¬Yô_Éï·¿–,YÒ»wïGyÄàyb4YÃ0óçÏOLL<~üxQQѹsç†ú·¿ýÍ\TŒQc6Kèã÷Þ{O(~ÿý÷wîÜ9uêTRR‡ÃafçÎõõõæ–¢ë|ä‘G ³²²Ö¯_oòIË;Ýn]'Lf×æÍ›Á×_]YYyâĉ{vâ’Édçĉ …‚¶"ÉÉÉÑßÝ‹°Ý³³‘1õ©ê?6™®úïÅ襇D"9sæÌSO=% é^3ª5Q544$%%=úĉ‡NNN>|¸R©4nÇÈÜ«e—… 4€ÉÕ2 £ÑhAppðîÝ»õ_cœo&WkŸ|fìØÈÜÎ)m©åý¡IDATðØä‚L{wúÁƒ½½½iDZ“'Oz{{ë÷×={öرc‹‹‹óóó“““Ù]cÕ†  ŽË'ašð<òÈwß}wëÖ­Õ«WBAkkk[?7ÆÔ›ž´Mî,s fÍö²G±}ÛY³Ú'êÌÌL§ÿé]¼x‘MƒxXÎí&ã4y%cýÙØÂ÷}™õß mÜܱLºKHHÐoÿl¼øÿýßÿéçFll,]ƒ}Ž »5ÇqÁ®Ü\vY¸V§ËÞó¢HÿÅÆ'as›ŒCÃôí»¼7xSã?Ûw­5oÞ¼ýë_ïb}¶;öêÚc4¼÷Þ{ýû÷§³Ž}õÕW¡¡¡´³Š\._°`¿¿``àÂ…  …þg­T*—-[æëë;kÖ,™LFŸ7^Ša˜/¿ü2..ÎÕÕµW¯^GŽ1¹¸J¥¢}ƒYiii~~~qqq´Á-Ã0jµzĈÞÞÞŒQò,¾gÏ777ýžÃYYY\.7##C—œ9s†òÁèïÆTe—aF³qãÆ””èèè×_½¥¥Å\T̽RS«Õ¾ûî»qqq¾¾¾&L8räHPPÉWê?¦ëüøã£¢¢zöìùÊ+¯´´´˜|ÒòN·[¡Ádv©Tª7ß|3&&ÆÛÛ{ذat| g"†aÞy瀀€ˆˆˆíÛ·Ïš5Ëßß_w³¯Ôߌ™l¼çi ]3S?1"""æÌ™£:6U XÃ0MMM¯½öZß¾}===“““ÓÒÒèt;ÆßúÆO¶é¦Q¡P¸ºº®X±‚}#©Túì³Ï†††þýïgwqT---‰‰‰«W¯¶þ$Ìè%¼»»{\\Üš5kFýôÓO·ésc7ßäIÛäÎ2—`–·×à(¶Ob;kVÛáDýâ‹/>úè£úÛ¨Óéâââ^ýuãxX–ÏíÆqš¼jÓÙØ8Ÿ ¢²ò{¡­‘[8Ã,\¸ÐÛÛ›xØäâfëÖ­ñññ^^^Æ £wØî¹½¶:.ìöS Ç»r Ùe|­~Ïï,s—ÍÆ'a ›ŒCÃ$ôí8:ŒßÔøÏ{¾…¹À\]]Ýô0mÉvÇ^]g‡Ñ;®jjj®_¿þðÃèdŽ?Ñ¿úç¡C‡ÒÒÒ._¾ly©Û·o'$$0wŸ:M>imΔœœÜƨïb«ìjGü`OkÖ¬)--Ý·oýÓ†ûËVùL9sæLŸ>}AGâ±ÉqAÒí¥R©rrrè,V÷öŽ­Y ÎÄVÇ…­®=lr|á¸€Ž³áµŽ ÷9£Ú3FØ_^^Þܹssrrš››ÏŸ?¿nݺ¿üå/Ž à.J¥²¸¸x×®]/¼ð‚£cççêêz¿« Ð>|GVY±bEssóäÉ“kkkcccÿüç?¿øâ‹÷\ÊÇÇÇøe&Ÿè¸ .L™2eñâÅúµLæòìÏ †Ä0†ãÀ$`[÷5£Ðuî­Suè¸NÕÈÀ&ÕÆ:Uãp€NGغNÀ}„BØ `3(4€Í Ð6cbzËŠŠ ûÇ™R©tww·Éª]àL”J%Rœ ²œISS“­VU__¯Ñhlµ6‡ÃѶeœQ& v º[]àL€-!«LBÀ`‡aGÇNc4€Í Ð6ƒBØ `3ÿn÷~æãBþIEND®B`‚XQilla-2.3.0/docs/simple-api/functions_func_0x6a.html0000644000151400015140000001045311653571063017374 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
 

- j -

XQilla-2.3.0/docs/simple-api/classxercesc_1_1InputSource__inherit__graph.png0000644000151400015140000003753511653571064024072 00000000000000‰PNG  IHDRKÈwd2 bKGDÿÿÿ ½§“ IDATxœíÝy\×ú0ð3„@ØA a‘MWªâ¢Þ[ªU‹,ŠVm«àÏ+Ô½Pª×k¯ˆ îPDDEÔjYk)·BÀ A@@% !HBæýcú¦¹d†çûé3gæ9óÌótÎLf0Ç tTÐ/ ÂPNPá('¨p”“ª¢ 9ß~ûíÍ›7P6Û·oŸ9s¦x T8À@+//ôè‘›››¢Ê#==}ÕªUÝ¡ÂÀÍÍíܹsŠÎ( Ã$á:å€r‚ @9A… œ ÂPNPá —0 «ªªê몪D÷bÒˆV_s`r#p8œˆˆkkk {{û¨¨¨ŽŽŽ>ßJ__ À UTTdmm-Þ¢ªªºiӦ̡ººzòäɯ_¿&fÃÂÂjkk322,,,>|Î`0:4)õT8¤Œ‡Þ­qÏž=™ƒP(liiÍ^ºtéúõë®®®DzqqqÁÁÁƒ¶ÂÁ(%`0º|ù2Fc2™¡ÔÔÔ‘#G¶··#„ø|~dd¤‰‰ •JŒŒäóùÄx]nn®¥¥eAAATT”¥¥¥±±qHH‹Å"z“ŒBeee¹¸¸P(›3gÎ „Ôpñ!Á·²X¬åË—™››GDDtttÈêöÊ•+ãÇ×ÔÔ455íaÝ’ºu©{'ð””GGÇaÆíÛ·OÔOffæ¨Q£¨Tjxxxgg§ÔÝœ:u*BHThuuu9"ªyîîîµµµ²v\j‡½þ¼z€åççççç÷ÖÕBBB–-[ÖÔÔdbbRRRB4îÝ»wñâÅÏŸ?§Óé®®®›7o~òä BhþüùyyyÑÑÑ£G¦ÓéåååS¦L‰ˆˆÅápÔÕÕ;¦ªªÊápbcc¥†³X¬ÄÄDÉi„Г'Oº¥èááñôéS:îìì-µ[6›­¦¦¶bÅŠúúúääd„ÐË—/‰}u^ZZÚ&†Ïç‹V_Srïºå†òõõe2™‰‰‰¡––"ÜÛÛ»²²²¸¸ØÎÎ.::Z¼O©ÂqüÆ4M]]ÝËË+66¶¦¦FÎŽËéð]?¯·þµ „ÒÒÒº7¾5 úV+“É477wqq‰ŽŽ5:88466ÓÙÙÙãÆ#¾1ét:Žã£Fºpá±ôÁƒ¢iÉ(ƒA&“÷ïßÏd2…Ba[[[WW—¬pY$+Ç#‘HÄì… ììì¤vÛÙÙùðáC‡ÓÕÕõ믿]u«pÝdeeI-<’{‡KT¸üü|"=ñ  Çñ´´4;;»žT8ÇAqqqLLŒ³³3‰DJII‘µãr:|×ÏKþC… =¬p8ŽÇÄÄH¤ææfQ …BÿÒ×ÓÓ#¾1y<±´¼¼\²É(Ç }}}µ´´f̘qíÚ59á²HV¸ºº:„—Ë%fét:…B‘ÕmffæôéÓÇ*µÂIž J-/ù¤V8¸¤êêêâãã===7nÜ(j422}q3™Ìââb¢L&#„ÌÌÌjjjˆ–ÒÒÒ]»vÉŠâr¹B¡0==Á`¬\¹ÒÇLJÁ`È ï9‰T]]MÌ>}ú”F£Ií–Ëå.Y²$22òÞ½{GŽy× ‰“uLÄ©¨Hù¶'Š B¨²²ÒÌÌŒ˜¡††Éõq_ºtiyy91‹aØÜ¹s‰õ¥î¸œßõóêá¡è¾×½ €~% W¬X–ššš“““••E´/Z´hË–-µµµt:}Þ¼y‡ Þ¶m[EEEEEźuëD7AHFaæíí‘‘Áf³y<™LÖÔÔ”ÞÚÚš””$9zõêU“2™ìïïþìÙ³ŠŠŠíÛ·Jí¶³³“Çã©©©q¹Ü¨¨(„P[[[üc"Çúõ뫪ªnß¾½uëÖ   }}}„ÐéÓ§Ùlv\\œøš!¤­­âïïõêÕêêꢢ¢ˆˆˆ€€„Ô—Ó!¡çŸWïŽ ŒRZOF):4vìXb,ëâÅ‹¦¦¦ Çq6›j```hh¸zõêöövñ¡°ŽŽŽˆˆ333==½€€&“I´KFá8ž––fkk«¦¦æàà™™)'\êõ$\Ú¥2Ç Fpp°¡¡¡©©é† ¸\®¬n80lØ0 ‹#GŽP©ÔÞRJÝ;ô¿£”ݦ‰ð¤¤$+++##£°°0b€qçÎúúú¶¶¶™™™Dÿ|>úôéÚÚÚD¸@ ˆŽŽvqqÑÐÐ1bĦM›D#“’;.µÃ^^ò!i£”˜Ô úÏ’%KBð~8ªªª²··W¦ï ÃÒÒÒˆ?-¥ œ ÂÀ£««»fÍEgÑï ÂÀC¥RE¿ƒ @9A… œ ÂPNPá('¨p”T8Ê Þñ P€›7ozyy 仺Híí:8ŽëéµävA… 4âµÑLJ£Ædª³X”¶65„p*•k`cWJÈÏÏÏ¢[#<— lêë™×¯—ggß¿{·†Ëåc>cÆH//'WתªPÞ†¨peÐÕ%,-­ËɹŸ—÷°¢¢A]]uêTÛ9sgÏv°µ¥*:; Pá°ÖÖ7sräç?d0ÚGŒ0òðpš3ÇÑÍÍ–B!+:; `Pá¡¿sçYvöƒììû••MÚÚê³g;zz:Íšå`l¬£èìÀ ðaà󻊊ª®_/ÏÉyÐÐÀ¤RuæÌqòðptw¥£CQtv`0‚ ÔÚÛ;óò^¿^ž›ûÍæº¸Xx{öôt3ÆÃ0Eg5¨p€ÁèÅ Öµkô¬¬Ò{÷jI$•™3G}üñX§aôø`@… "uuŒk×èׯ—ß¹S£¦¦:sæ¨yóÆxy9@aï *@ñ˜YYeW®”þùçs]] oïÑóæ™5k”††š¢S0¨p…yúôå¥K÷²²Ê*+›¨TŸñ>>c'N´VQ l @… ´êêW/Þ% ›±±Î'Ÿ@aý*`€°Ù×®•?§¸ø©––º—×èO>7k–ƒš< ô ¨p€þÅçwåç?ÌȸûË/8Ž<</žèá᤮… ô/¨p€~!óófe•Þ¸QÁåòfÏvôõèå5¦ T8@«©y‘q7#ãNMÍk[[êâÅ-š`ii¨è¼À£€¾ñæ ïÊ•²³gKJJª µ,p]´hÂøñ–ŠÎ ]px_wî<;{öVVV)—Ë›3Ç) `Êœ9Žd2IÑy¡* —jk[’“ÿ¸pánc#ËÅÅ"(Èí“OÆéêj(:/þ£”€w#ss¤¦–äå=ÐÐPóñ÷¯Mž8ÑZÑyМÃzª®ŽñÓOÅgÏ–¼|Ù6eŠÍ¿þ5åãÇjjƒµÀ çp€·„99÷““ÿ((x¤¯¯éï?90ÐÍÆÆXÑyðpéÑ£ÆãÇ»|¹ôÍ›Îùó]‚‚ܦM³‡gkT8@wÄ•¶ää¢üüGúúšK–L t³µ¥*:/Þ T8Àß^¾lKIù#9ù¦¦Ö©Sm‚‚>úç?]ú鹑999ÕÕÕýÑ3j<==mll$Ûá:!„JJªOž,¼v®¡¡¶dɤivvý{Òöã?¦§§÷ë&À‘––ГÙþÓOÅ))ŵµ-Ó§ÛÇÇÍ›7fÀ~¬íççwîܹÙPV&óÂ0T8†¨û÷Ž-ÈÊ*¥PÔ‚‚Üüý'÷÷I *C‹PˆçäÜOJúí÷ßŸØØoÙò±¿ÿ$==MEç@߃ ÀPÑÖÖqölɉ…ÏŸ·xyNKû|Ú4{9#<|è Â ü>lüᇼ˗KµµÕCC§O£Ruý*J««Kxí=)éæíÛÏÍbc—,X0¾Ÿný`‚¿u”Pkë›ää?’“ÿ¨¯gþã.—.…Mž,å^j”›Š¢ô¥ªª—_}unÒ¤˜øø¼?WX¸õèÑePÞú†aöööÝžž1þ| ꪪާ[ƒ%K–¼zõJÖÊ8Žikk‹bßgÓ²p8œˆˆkkk {{û¨¨¨ŽŽŽ>ßJ‚s8”Žã99’’nþþû[[ê×_/X¸ÐU[[]Ñy 555eeeãÆ#f™LæÍ›7߿ۢ¢"kkkÇÂÃÃÃÂÂΞ=+uÍ/^¤¤¤ÔÖÖ¾ÿFÅUWWOž<ùõë×ÄlXXXmmmFF†……ÅÇÃÃà ơC‡úv£}*6.——’R|òdá³g¯==RS?‡‡#ŸibbB¥R###ù|~UU†a¹¹¹–––QQQ–––ÆÆÆ!!!,‹èM2 !”••åââB¡PlllΜ9ƒRÉMHN£ÿÿpÑ@åùóç}}}EK¥nðãÇ;::ïÙ³çÌ™3ÖÖÖzzz;vìz(H$•J••ÆÔ©SBD9ìð””GGÇaÆíÛ·O•™™9jÔ(*•ÞÙÙÙ“nuuu9"ªyîîF‹µ|ùr###ssóˆˆˆŽŽ©öúcê%𡩬lÚ¸ñ¬•UĘ1Û÷í»ÖÔÔªèŒzÃÏÏÏÏÏï­«…„„,[¶¬©©ÉÄĤ¤¤„hÜ»wïâÅ‹Ÿ?N§Ó]]]7oÞüäÉ„Ðüùóóòò¢££GM§ÓËË˧L™!+ŠÃᨫ«'$$466;vLUU•ÃáÄÆÆJ g±X‰‰‰’Ó¡G >üÏ?ÿ$ijj#{Ož<‘º]"* €Íf'%%!„–,YÂf³=Šzýú5±Biii[[›Í~ôèѬY³bbbp'ö”Ø´hZ¼‘ˆ%6MLûúú2™ÌÄÄD„PKK ±²··weeeqq±]tttOº½qãFSWW÷òòŠ­©©- ôððxúô)Nwvv–ßá»~LòÿBBiiiÒÉ *EEU!!‰ffÜÝwÿôÓ|EgÔ{=¬pL&ÓÜÜÜÅÅ%::ZÔèààÐØØHLggg7Žøê¤Óé8Ž5êÂ… ÄÒˆ¦%£ ™LÞ¿?“É …mmm]]]²Âe!ÊÉÚµk·lÙ‚ãxrr²——.Vf$·K,½wïŽã<¯Û4ÕílDWW—hïE…ËÏÏï\üXá8ž––fggדnqÅÅÅ111ÎÎÎ$)%%…è™D"UTTë\¸pA~‡ïú1½õøC…àÖÑÁ?s¦hΜ½ffBBKJž*:£>Ðà ‡ãxLL ‰DjnnµP(ño===â«“ÇãKËËË%û‘ŒÂq¼°°Ð××WKKkƌ׮]“. Q6 ììì„BáÂ… =Š‹•©ÛíV„$§ÅÛÛÛwíÚeaa! Å+GeeeO*ÜãÇÅÛ‰•¹\.ÑXVVF¡PÞÚ-‡ÃIMMĬP(ܱcFÃq¼®®N¼C:.¿Ã^|Lò¿¬ ×áP$.—'ëÍwß]Ÿ<9fÇŽ }d_X¸åԩφÔÝÿuuuñññžžž7n5‰¾Á™Lfqq1ÑN&“Bfff555DKiié®]»dEq¹\¡P˜žžÎ`0V®\éããÃ`0d…Ë7}úô¶¶¶ÂÂÂììì… Š/’•mÏijj®Zµª®®îåË—D‹@ @544ô$\EEÊW=QlB•••fffoíÇñ¥K—–——³†Í;—XßÄÄ„D"‰Þö÷ôéS&§Ãwý˜z²RA…@a¾ýöòÞ½×d-­¯gîØqqÒ¤˜cÇ~ ùèÖ­¯¿ýöSkkãÌPá„BáŠ+ÂÂÂRSSsrr²²²ˆöE‹mÙ²¥¶¶–N§Ï›7ïðáÃâQÁÁÁÛ¶m«¨¨¨¨¨X·nènÉ( ü½½322Øl6Ç#“Éššš²Â[[[‰kfݦ $iñâÅkÖ¬™|¸[»Ôí¢ŒRЍ¨¨¸¸¸ëìܹS__ßÖÖ633õ`”²Û4±rRR’•••‘‘QXX1À(Ù-ŸÏŸ>}º¶¶6.¢££]\\444FŒ±iÓ&ÑÈ$ƒÁ644455ݰaƒ¬{ý1ÉdRb¸ÄõL@¿ ñÿûìùó·…B\UUeÝ:ϯ¾šþÿ¯¶ããsoß~æêjµ~½—‡‡“2ÝúßÍ’%KBðÔWUU%ù–†aiiiÄŸS7ð‹o”@ \»öÌÕ«eB!NÌ&&Þ\¹ÒýâÅ»'NÖÔ¼öôt‚ÇHÐ' Â0pá—_žþùçr¢¼::xîîÿikëøÇ?Æ9ÿüTvöý®.¡x{W—Çë*(ØdcC• @¢R© ŠÎb À½” O°|yRvö}@(¹ôÍ^qqõÀg€rƒ @¿ëì,[–ôÛo•RËBÃÐÁƒÙâC—€÷€þÅçw­\y¢°ð‰¬ò† ñº:Æ/¿T db’º Ÿ𡃠@?êì,[–˜Ÿÿ [ñÀ0LMM•L&!ô÷Μ)ðÿÂã Nžü}ÆŒÝý]äÞ¼áUV6åå=<}º¨¾^»_·@÷;M¾ýöÛ>yqèîîî²^¥¡^^^ŠNáC‚ã*ÏŸ[r8c®ª* “ùd2L¨ªò‰YUU>™,xù²ÂËë|?%“-µx½ÜÁƒÙ ÇQSS+fðþ›{ù²­¡IüW_Ϭ¯g440XLf;BˆDR11Ñmo§˜›sÞ[Èҽ•——?zôÈÍÍM!Ùqüñ‡A|×ô¡œœ''§nO$²´µéS(mm†ª*QÃø**]²Vî’¹ä}½|ùòÁƒ’í­­oâãóNœø­³S :u««cô¼Â±Ù55¯jk[š›ÙÍÍìçÏ[jk[jk[Z[ß+èéiZYZYÚÙ™xx8™˜èš˜èZYêéi"„–,YR]]ýã?öÅ^ …”_ ¸¹¹ÁS©?ÑW8??¿Y³f): ð ¾ùæñ–W¯ÚâârRRþàó…]b¥UEkh`v '®>ÞÒÔÔúò%›¨aÄlg§€ˆ²°fiihb¢;cÆÈ  C++Cb–B!ËÏíîÝ»Cä‡Y@!à÷p !ÍÍìøøÜää"¡çó»Ÿ6ªª’nß~F&“êë™ ¬úzF}=³¡Éfs‰ µÍÍ Ì͇Íëla1ÌÜ|˜¹¹¹¹qNö®àÿ¤Aƒ ÀÐÔÔzàÀ³go!„éC¢]]‹ïedܵµ¥#Š“'[[Z#½+c(T8”—‹ëêΘ:u§@Ð%ÿ'w]]B''³sç¾$“I–ý~-€2ãñº<à‘ɦ!¡'“IªªòþÕ75µByJÎáPfjj¤ Ô¯\9÷ú5^[ÛrëV5^_TTõèQ#Žãjj$ ÿþ \c# Çq SÚWö€!E9ÏáþüóOUUÕôôtQKff¦ššñþu Ã$ß4þ| ꪪ:W0àfÏžÝÐÐÐçÝr¹Ü~ø! `îܹAAA'Nœàñx}¾•÷aeeèç7éÛo?ÍÍ,-ýæÄ‰•«VÍš8q„º:!¤ªJ"‘Tx¼.£]Ñ™Ð7”ónüøñ[·n ÷òòÒ××ommýòË/£¢¢ÆŒC¬PSSSVV6nÜ8b–Éd~¸¿sïèà߸Qáädfoo¢è\†–ÆÆÆÏ?ÿœxy1B(..®¹¹9&&ÆØØøùóçqqqmmmáááŠMRcc¹sçÎuF ÂîÞ­¹s§öÎgõõLCCxÚPÊy‡Ú¾}»‘‘ѦM›B›7o655ýꫯDK===ÅÏð._¾ùäìÙ³¢5ÿý÷àààO?ýôСC|>_jW_~ù%BhÑ¢ED»¦¦æ¥K—D5ÏÅÅ%--˜æp8{öìY°`ŸŸß?üÀãñ¤vØëcª7î“O>ñôôܰaCssó† ’““µ´´Bßÿý³gÏîܹ“›››——÷õ×_ë÷Ýw§Núõ×_322®^½šŸŸ_YY¹k×.b©dT{{»ŸŸßÚµkkjj¶oß¾bÅŠöööÿþ÷¿RÃ%§B&LˆˆˆØºuëŽ;œÅwaÚ´i§¬¬ !ÔÚÚš——·`ÁÑRY;’““sëÖ­={ölÙ²åÊ•+t:=66vçÎ---¡uëÖÕ××ߺuë矾qãÆÞ½{Åw×®]™™™Ä÷Qff¦hŒ´'ˆÂöÕWç¶.\ŸšZÜÖÖlï[ùè£&L˜pøða&“yøðámÛ¶Q(„Ðùóç=úÝwßÝ»wïĉÄúçÎÛ¼ysYYÙÍ›7wïÞýý÷ß×ÕÕ%''K%£:::¢££.\xöìÙààà}ûöuttœ?^j¸¾¾~DD„ät7………‡^³fÍÑ£G‰ÚŒºtéÒîÝ»ÿóŸÿ”””üôÓOR9‚ºpá1yïÞ=__ßÈÈÈ´´´ææfÑš|õêUBBÂÞ½{oß¾šš*ç¾ë1‘ÿ‰0”õr”òàÁƒ¹¹¹ÞÞÞ_|ñÅäÉ“‰Æ'NÄÇÇ[XXŒ3fï޽ׯ_'Ú÷îÝ;{öìÔÔÔo¿ýv̘1ÎÎÎ'Nœøè£dEñx<¡PÈáp(Jhh(“ÉÔÐÐHJJ’®§§÷ÙgŸIN#„pøð!‰DzôèQ·üI$ÒâÅ‹‰G*\¹reÚ´i†††¢¥²v$22RGG'$$!´yófÐÐP„“ÉäóùgÏž=xð Í˜1cbbbD_IÄî{{{“ÉdâjßO?ýÜÃÛÕÊËëwì¸èêúÍÂ…‡Îž-ikë@—ó… »wï^DDÄ‚ ˆÆŸþyýúõT*ÕÆÆfÍš5·nÝ"ÚW¯^=~üøÜÜÜ+VØØØX[[oÚ´iôèѲ¢ø|>Žã\.WMMmÞ¼yYYYêêêW¯^•®¥¥õÏþSrº›… jkkÏ;!$:ûâ‹/ÌÍÍ?ûì3YÏ,îfâĉiii3fÌ7–.]š››‹yyyaaa¦¦¦666¡¡¡ò;|×cÒíHJ–IDAT“Üšzy§‰¾¾þêÕ«¿ùæñ«555¦¦¦¢Y===b‚øš«­­µ··'ZeEäççÿ÷¿ÿŠŠruuݲeËüùóe…Ë‘’’RPP——7wî\___ñ³4„ŸŸßgŸ}¶k×®nC”rvDGG!DŒvŠO#„š››»ººlmm‰Y;;»úúzñÝ'‘H‹-ºpá‚‹‹KNNÎÑ£Gå'Ïd¶76j77kÎû‰¤B<WNaÛ½ûjBBþÛÉûÒ֞؃u´?þøãS§N}÷Ýw¢Æ¦¦¦Å‹‹f‰“~„¥¥%B¨¹¹ÙÜÜœh±²²²²²’¥££óý÷ߟ?þĉ#GŽ\ºté”)Sd…÷‘‘BHUõþ-ˆ:´´´|õê•ø¢nwá:::ŠŠŠfÍšEüqŸ!tðàAâS–õùçŸGFFnÛ¶mìØ±|>_UUU]]]Vx{{{AA18)>Ýñññ7nlkkKJJòòòÒÖÖFýòË/3gÎ]x#p¹\ ooïo¾ùfíÚµVVV ã‡~ððð@©ªªÎž=;..ޏÿèØ±cžžžr:|×c2h€Âõæ:Ü‘#G^½zµiÓ&ƒ~øaÍš5Ä}•;wîÔÑÑ?~üœ9sÆŽ+ºÕ‚°eËooï¹sçNŸ>ÝÒÒrß¾}D»d…B9uêÔ¦M›h4ÚÒÒÒ(ЬðW¯^­ZµªÛôéÓ§³³³üñG„™LNJJJKKËÈÈOiÉ’%>ì6DùÖ‘%>>ÞÌÌlÒ¤IÞÞÞÞÞÞ[¶lé¶1PÉf³Å¿Üßjøp½Ï>sÿùç—”ìØ¼y¾…Å0„ªê }®Ò¥K—X,V@@€ŽŽÎ† 8@Ü»±råJMMÍU«VmذÁÖÖ¶Û S'Mšfbb"Z*¥¦¦¶eË–£Gúúú¦§§GEE©©©É g±Xû÷ï—œî b|bóæÍ“'O ÔÓÓ[¹rå‘#GV­Z5oÞ¨~ƒT¸RRRòé§Ÿ~ñÅ}u¤ªª2gŽãœ9ŽÄS»ÌÍ ú¤[ ¥¥E\W:º=µëÇ—ÃcM€r€ 7@fΜÙO·½Q(ä Æ÷GÏC“¾¾þ¿ÿýoEgÑï^½j»w¯öΚ¢¢ªû÷x<ŠŠ Žã8ŽÃÿ-¥€!¡£ƒûö³[·ªKKëîÝ«a2ߨ¨`$’ Ÿÿ×ݹÄ;tÔÕUá±Ë@i@…@™ñx]wïv.qpØÊã ÈdŽÿõL¡ »ÿødøp=E¤ @¿PÚw Bjj$''5>¿QtÆ&ÿ‘o¦¦ú<<Í( 8‡@Éih`löo Ù§N<˜Ãåòˆ‡ÀI"“I••Í#FDª««®giiheeheeH¥ê³ÃTTàõßàƒ€!A[[}íZå˧§¦–<ø ‹ÅíêÂúŸÉa¶`Á¸©SmXõõŒº:ƽ{µ—/—²Ù\b==MMŸF3°°fn>ŒFÓ77F£P©:ŠØ'Þ*Cˆ––úgŸ¹/]:õ§ŸŠãⲌvÿûÑÏ|~×ĉÖ>>ÝßëÄçw½xÁjnnmnf?ÞR[ÛòäIsaᓺ:—Ë#ÖÑÓÓ$Nø,- MLtMLt­¬ ­­ut(½È³‡oÞC ñ^Ïw ‘RánÞ¼éååÕG)Þ+//wwwWtÝ9sæÊ•+ŠÎâÃÀå š$R'‰ÄSQéTUåa˜.qÕ§©©öÙgîË–MKK»µÿϯ_sˆ:'ë§d2‰¨^’‹Z[ßÔÖ¶ÔÖ¶47³‰ú÷Ûo•55¯ÅOûDO¬þéYZ“_Æ6lØàææÖÛÊæÀ½ˆê^á¦NÚÉ€>àîî>Ø>???E§ð! ±†±XŸÄ`®¦&TSë¢Pjj]êêB2¹K]½‹˜Æ°þz°Ö„ $ÉdRPÛâÅRRŠÊyýº Ç‘™™þ;õ¬§§éâ¢éâÒýâ|Ñ _mmKsskmmËo¿UÖÕ1ˆ×öª©©ššê‰ ž¨þÑhªª*¡©S§ÂßIOOïET÷çRúPg§ 44é×_wûw†aqã>Ÿ/] ›=Û!%E1ORæñ?ýTòã¿ý¶…DêÇ[¬[[ßÔ×3˜uu b¢¡Y_Ï|õ꯷«kh¨YX »s'ýøñ¯ˆG³€zûÌd¸@?RWW=ujÕÊ•'  ÿø ÇqÉ›òƒƒ?Øìþ¦¦¦º|ù´à`·~-o!==M==ÍÑ£iÝÚ;;õõ×¼’’¤~M Páè_d2éĉÿ÷©—.Ý“u›>†avvÆsç:pnÝôwy“C]]ÕÖ–jkû×›¿úªJQ™e¿ø ß‘H*ÿýoÀ¢Eäü˜,<Ü n  oA…` E.8ØM²ÈaÒÕ¥¸ºŽPD^(3¨p  Ãþóße˦u+r†‘H*3gîþüóÓeeuŠJô9‡amm­¡¡aooÕÑÑ!?¤ªªŠ8•Ç0¬ªJÞPí[Wè^ä<˜A…`à`¶sç¢ÐÐâ’ºº”[·v;¶‚ÉlŸ?ÿÀܹߥ§ß–ÿôHðA »wï^FFÆóçÏ;–™™‰ª®®622Rtvé–Œ¬œ?PPáP†ÅÄ,\¶ì#âLNU•´r¥»¦¦º—×è´´/nÜØ8jÔðÏNŸþŸ¤¤›oÞð/è½K—.íÞ½ÛÕÕÕØØØÝÝ=..îòåË!¡PØÒÒ¢èìþÒ-Y9  Â0Ð0 ÛµkñŠ3B$FLÆŒ1‹ ,,Üêå5zÏž«®®Q;v\ljjU\²ƒÔåË—i4ñ¸–ÔÔÔ‘#G¶··#„ø|~dd¤‰‰ •JŒŒäóùĸ_nn®¥¥eAAATT”¥¥¥±±qHH‹Å"z“ŒBeee¹¸¸P(›3gÎ „ÔpÑÐb·i]]Ý#GŽˆê‡»»{mm-úÿÖ>|8B¨««+66väÈ‘:::Ó¦M+))‘ÜY ÃRRR‡ ¶oß¾ž¬@¤‘™™9jÔ(*•ÞÙÙ)5OñdääŒb±XË—/722277ˆˆèèèÚa¯x¿À “uQÖÒÖVnbâ¯ãÇGYZn K~ü¸q sS,„PZZšüuBBB–-[ÖÔÔdbbRRRB4îÝ»wñâÅÏŸ?§Óé®®®›7o~òä BhþüùyyyÑÑÑ£G¦ÓéåååS¦L‰ˆˆÅápÔÕÕ;¦ªªÊápbcc¥†³X¬ÄÄDÉé7nÐh4uuu//¯ØØØšš¢H‰˜>pà•J½pá‹/®^½jffF,B=yòDt4|}}™Lfbb"B¨¥¥å­+›ðöö®¬¬,..¶³³‹ŽŽß®hZ¼QNÎ8Žzxx<}ú”N§;;;Ëïð]ø[ÿ$üüüüüüÞºZ7PáP¤7o:å¯Àã λ5sæ3³ !!‰7o>˜Ä«'ŽÉdš››»¸¸DGG‹ÿú_ìììqãÆ_¸t:ÇñQ£F]¸pXúàÁÑ´dƒÁ “Éû÷ïg2™B¡°­­­««KV¸ ¸¸8&&ÆÙÙ™D"¥¤¤àÿ[TFŽyòäIÑú§N’Záòóóqçñx¢vù+ˆï5Žãiiivvv=©p²ræñx$©¢¢‚XçÂ… ò;|×þÖ# ¥% oÞ|’hjúÞÞûÏ»Åçw):©~Ô“ ‡ãxLL ‰DjnnµP(ÿó*===â —ÇãKËËË%û‘ŒÂq¼°°Ð××WKKkƌ׮]“.‡ÃIMMĬP(ܱcFÃÿ·¨hhh”––Š¢þüóO©îñãÇ¢i©®Û Ä&¸\.ÑXVVF¡PÄ·[YY)Yáää\WW'Þ!N—ßa/¸|½«pp€†a3fŒÜëÿñ®'}€A‚Íæ&&þ:yr ¦l—èÐÛF):4vìXb(ìâÅ‹¦¦¦ Çq6›j```hh¸zõêöövñ‘´ŽŽŽˆˆ333==½€€&“I´KFá8ž––fkk«¦¦æàà™™)'\êå(ÇAtt´‹‹‹††Æˆ#6mÚDŒòñùüéÓ§kkkëÄÆÆÚÙÙiii¹¹¹g3¸Ä ¤ä´üˆ4’’’¬¬¬ŒŒŒÂˆMïܹS__ßÖÖ633“Øx2rrÆqœÁ`šššnذAV‡½>àòõn”ÞžÀ‡M(Äss$%Ýüí·JggZHÈ4_߉ YÑy½ ÃÒÒÒàí9½VUUeoo¯L_ï½{{ŒRðaSQÁˆ_‹ggGŒgùõ×'OŽÙµëJc#KÑ© `PáP£GÓöí[rëÖ×kÖ̺páîÔ©;׬9u÷n¢ó  ««»fbÞ¦;¨@…@©i¯]ëQ\¼=>>èÅ –ÏÁyóÀƒ.‡*•š è,*JˆL&ùøŒËÊZýú¿GŽ4‰ˆH›4é›ï¾»Îd¶+:5T8”™‹‹E\\à­[_¹?^èêžòèQ£¢ó` @…@ù™˜ènÜ8¯¸xûÖ­ß¹Sãéz¬°°R™îµ@T8† ʪU3 ·?¾¢½çïŸàî¾çÇmm}£èÔèPáZTT0ooçs羸{7jáÂñ‡常|½fÍ©ß~ƒS: l Â0D ®·qã¼»w£âãƒX¬7þþ?¸»ï9|8—Å‚S: $à™&„*)©>y²ðÚ5º††Ú’%“BB¦ÙÙQ•Œè½šˆøùù½ë3M Âþöòe[JÊÉÉ45µNjôÑ?ÿ颦¦:Ài¤§§ðÁàgnnîææöN!PáÝ ÂÜÜÉÉEùùôõ5—,™èfk«°S:z*@¦—/ÛÒÓo%'ÿQ[Ûââbäöé§®ZZêŠÎ € x @˜“s?9ù‚‚Gúúšþþ“ÝllŒoÐSuuŒŸ~*>{¶äå˶)Slþõ¯) x Ì+Wʲ²Jÿü󹞞†—×èyóÆÌš5JC z*`©¯g^½Zvýzù;5jjª3gŽš7oŒ——“–¢S¨p€ÁèÍÞï¿?ÉÊ*½q£¢­­cäÈá>>c}|Æ9\Ñ©T8À ÖÞÞ™—÷ðúõòÜ܇l6×ÅÅÂÛ{´§§Ó˜1æ†):;0¨A…|øü®¢¢ªë×Ësr440©T9sœ<<ÝÝGéèPŒ Â><ÏŸ·Ü¼Y™}ÿ×_ ]ÎÎæ3fŒôòrš4ÉNì€T8À¬µõMAÁ㜜ùùŒö#Œ<<œæÌqts³¥PÈŠÎ(T8€2èê––ÖåäÜÏÏT^^¯®®:uªíœ9޳g;ØÚRP ¨peÓÞÞYTT•}?/ïá‹,CCí>²óôtòò­¯¯©èìÀÀ ¤¼¼¼Þ³GšmmZíí:\®&B¸ž‹Fkè“ôÀ€qwwß±cG/á§€A*''gêÔ©ïÝ“!¦@ÐÊbQp700èƒäÀ@ùã?zý‘A… ^6lX²d‰¢³Šô>*}˜0x@… œ ÂPNPá('¨p”T8èG†UUUÉjÁÄhhhL›6­´´TN¬¬Æ÷Çáp"""¬­­544ìíí£¢¢:::ú|+ *(RQQQccccc#N···÷÷÷˜qTWW‰fÃÂÂîÝ»—‘‘ñüùócÇŽeffFFF@ý ~Šdll<|øp„ÐðáÃ÷íÛgbbòêÕ+*µßŸ¥) [ZZD³—.]º~ýº««+‘R\\\ppð¡C‡ú;~çp€ÕåË—i4“ÉD¥¦¦Ž9²½½!Äçó###MLL¨Tjdd$ŸÏ¯ªªÂ0,77×ÒÒ²   **ÊÒÒÒØØ8$$„Åb½IF!„²²²\\\(ŠÍ™3gB@j8± ÉéwB&“ÕÔÔôôôz¸>†a)))ŽŽŽÃ† Û·oŸhÓ™™™£F¢R©áááRs›:u*Bˆ(®!]]Ý#GŽˆjž»»{mm-1Íb±–/_ndddnnÑÑÑ!µÃ^ä~„À „JKK“¿NHHȲeËšššLLLJJJˆÆ½{÷.^¼øùóçt:ÝÕÕuóæÍOž XQilla-2.3.0/docs/simple-api/functions_func_0x75.html0000644000151400015140000001173511653571063017325 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
 

- u -

XQilla-2.3.0/docs/simple-api/inherit_graph_2.png0000644000151400015140000000360611653571064016402 00000000000000‰PNG  IHDRµ(7É,cbKGDÿÿÿ ½§“;IDATxœí›oHS]ÇÏÜf+gnÚÌIa˜¤ZÔ*™/úCPSt©Q½(©±•¡eA`/‚ _’6GŒ„zQ1ÂeE±¶U¬¹Mmsé¢ÙÔ¦›»çyqhÜvï®k¥<Ïù¼ºçÜßýï=÷{ç^weAƒ¤…€YÔ``˜ÀþÀ0ýa‚CnèõúÖÖÖ…’‚Y H¥Ò .Dš¿øcttôéÓ§2™ì¯«Â, ^¼x‘ššJîáPƒ´ZíßÒƒY\TTTDõàç Ø&°?0L``˜ÀþÀ0‘¸?._¾Ìb±®^½úïE°H¬^½º¶¶Öëõþn’‹EÞX h4Û¶mËÊÊšššŠDÚíöäääÎÎNð네¤¤ìÛ·Ïét¢0ÚlN‚þ€j4šìììîînæH‡Ã!æLh0<ËåºsçŽßï/..OLÛ|§rf8àñx<Á`x~òàÁƒP(týúõHdccãÖ­[«««QMÈÈȈ^¯'âСC‘H´‹Ì¿É$.6ŒƒwïÞ±X¬ÞÞ^€Õjeˆ´ÙlsæØl¶H“ ©TzñâÅx”PŠgÄßJ8/P³uvvòx¼ÁÁAa__‡Ã1›ÍhWÔ„¸\.À÷ïß©»æ™L&“ÉÈ= ÖFSZZºsçμ¼¼H !öȶD"¬\¹õ>|X dee)•Êééijr‹uâĉG¡f(R©Tééé*•* >|XTT´lÙ2‘HİÆQ‡›miiÉÎÎ …µµµ‘*EM¥œVF^¯÷ÇqÎaUUÕöíÛÏž= !T( ´‘l60;;gæß’1d³ÄY?‚X³fM{{;„°©©)??õ“o‘Xw³\.ß±c‡Ýn7™L—.]‚t÷Äëׯù|>Ú¾víÚÁƒ‡‡‡M&Sqqqcc£ßïONN>räˆËåº{÷.`llŒvDêp7nÜÈÏÏ7™Lf³yË–-J¥BÈœ0– ²àW¯^ÕÕÕ …‘‘ÚI£­FV«uÉ’%§N‰D¨< F£qbbÂï÷ ”——oÚ´)j™¨´½½½ÈćƒVL,¨õ#ô÷÷s8œ¯_¿Bß¼y@…qNƒA6›m±XPS§Ó­]»Îå¼¼<Ç9ó™™™?NNN†Ãa½^§ŽH;ܺuët:êùðáÚfNK„0tttlÞ¼¹¨¨¨½½z©"ÄZ­ZZZ]]]äNò ÌårKKK#ó3çMŽp»Ý---YYYû÷ïüøq8Ž%ŒÌüøãôéÓQúš››á¯SðéÓ'ª?>þ ¨i2™x<¤óGWWׯÑ6Ç#•’’!ìéé)))),,¬¯¯åÚáx<^d™'Ã0– t›ÖÕÕ½|ù’ æI‹å4QQ‡S'$ž]T‚Á V«-))ÉÍÍž3~ž?Âápww·Z­Ž7…BÑÝÝ Z-“n·›zlFF›Ív8¨i·ÛW­ZE ƒÞ¾}{ïÞ½¨)"3âóùúûû@EE…J¥zûöm[[[,©´Ãeff¢£ÑxåÊ@< ©2„Báúõë C___Âo[è)í½£ŽŽŽ¾ÿÞår/]º4 ¿íçÏŸÉåòå?©®®¶ÙlF£‘Ïç:::ü~ÿÍ›7ÉGMNN¸\neeeCCƒÓé´X,ÍÍÍr¹x½Þ/_¾¸Ýn½^_VVæt: ÚU^^~þüù¡¡!“É´gÏž[·nÍÌ̃Áäää@ €êóÄÄU*íp555MMM‹Åb±œ¶k×®¿¯³0›ÍR©”Üó‹?Äb1þçÛÿ3R©}5…mÁ0€Ÿ?0L``˜ÀþÀ0ýaâ¹Õw)äÕ-IEND®B`‚XQilla-2.3.0/docs/simple-api/inherit_graph_20.md50000644000151400015140000000004011653571063016347 000000000000002f802801bbba9a434b5f9c11d12c4ad2XQilla-2.3.0/docs/simple-api/ATDurationOrDerived_8hpp__dep__incl.md50000644000151400015140000000004011653571063022133 000000000000005940f59821bf8d60474c23f1c0165980XQilla-2.3.0/docs/simple-api/ExternalFunctionResolver_8hpp.html0000644000151400015140000000501611653571064021464 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ExternalFunctionResolver.hpp File Reference

#include <xqilla/framework/XQillaExport.hpp>
Include dependency graph for ExternalFunctionResolver.hpp:

Go to the source code of this file.

Classes

class  ExternalFunctionResolver
XQilla-2.3.0/docs/simple-api/classAutoRegexGroupStoreReset-members.html0000644000151400015140000000643311653571063023134 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

AutoRegexGroupStoreReset Member List

This is the complete list of members for AutoRegexGroupStoreReset, including all inherited members.
_oldRegexStoreAutoRegexGroupStoreReset [protected]
AutoRegexGroupStoreReset(DynamicContext *context, const RegexGroupStore *store=0)AutoRegexGroupStoreReset [inline]
context_AutoRegexGroupStoreReset [protected]
reset()AutoRegexGroupStoreReset [inline]
~AutoRegexGroupStoreReset()AutoRegexGroupStoreReset [inline]
XQilla-2.3.0/docs/simple-api/classATBase64BinaryOrDerived__inherit__graph.map0000644000151400015140000000060611653571064023775 00000000000000 XQilla-2.3.0/docs/simple-api/MessageListener_8hpp__dep__incl.png0000644000151400015140000000663411653571064021526 00000000000000‰PNG  IHDRuÛStnbKGDÿÿÿ ½§“ QIDATxœíkPW‡O0 Š ¤@ µDP¨…b™NË´E‘Ò±´ ”‹µ’ ÒV‘ÑÑ[[m¡òA`H‰JŠ6r©Ø´\ÚP_q¨ÐX4\¼4Á@¹¿vÞ¼17$@‚‡ó|ÚýïÙs~»Or6,Åi4€€;[@Ì È+œ ¯p‚¼Â ^w¥½½ýèÑ£¶Š‚˜ aaa‡Ö®>æõÞ½{'<<ÜÚ¡³£··—D"éVð†òòò¬•179rD¯‚®¯p‚¼Â ò 'È+œ ¯pb‰×ˆˆˆ´´4½_ìß¿?""bhhhŽ‚YŽaŒ¡¡¡ˆˆ[åÁ°òɱðý:::ú÷ßkWÇÇǯ_¿>G‘æGGÇäädS[GFFÞ}÷]kæ±z ikkÓ®^¾|988xnÍÎÎΦ¶ªÕj±XlͶÑõÚ˜ê366ÖÑÑñÍ7ß`VLµÌÈÈØ°aÃÒ¥KõzNJJrppxýõר+••E¡P>üðÖ–3Åaäþ𞟟O£Ñô&aÀèèh||¼vuùòåNNN………ÕÕÕgΜY»vmJJÊ+¯¼b´ˆÇãAAAT*վ䇇‡}||´>÷Üs¦2ŸÙèˆzmLõéææÀãñÓ¶|öÙgŽîêê ÀápºE …¢ÝëÁƒfŠ3Âr¯“““7nÜèîîÎÎÎÖÝäìì\XXèå嘘˜ …2™L­V3 ¥RùË/¿ŸŸ““SWW‡ÃáètzGG‡D"Q(x<ÞÞÞÞhQ¡P(•J</—˱+Öäädll,“Éìîî‹Å×®]+//ÇΑá@X€±±1¡Ú`FGÄ6I¥RSáMi[^¼xQ"‘˜?EEECCC·nÝb±X›7o6Sœ–¿_õõõqqqzuVTT´sçN–™™I$8Àd2ïß¿¿jÕª¼¼<"‘0,‰Ä¬¬¬£G.[¶,%%eÓ¦M999µµµ*•ª°°ðÑ£GëׯߵkW~~¾Ñ°Ÿ|ò‰nžÊÊJlÁhŒ•+WÆÇÇ755™éÓÖ>ÔmPPPlþê™=55µiÓ¦ÔÔTlÖÕ+>™ÇÀéÞ6b³ÙIII­­­t4¯p¹\2™¼fÍlµ£££¢¢¢¬¬Ì¶©fÉÐÐPZZšÞÙ6Zœ–#Gޏ»»³Ùlmåé¸?Ìçó¿üòËþþ~™Lö×_>}zË–-¶µ ™Õàîî~üøñŠŠ ggçÇk[Ö×ׯ[·ŽL&ïÙ³G&{ì{ã N÷ðð “Ét:]¡Phnnöõõ%‘HÇŽ3Õç´Í1³¹?>®R©ô¼òx{ö,‡Ãill¤§§ÓéôúúúÑÑÑŸþ977×|'2™L.—‰D©Tš——ìÁ¼8.**ª¦¦F,Ëårààà0Ó¨{÷î¸zõêÁƒÓÒÒt7mݺõÀƒƒƒ===ÑÑÑÅÅÅ‹õèÑ# ú43ÐcÙôý$×ד'O¾øâ‹r¹\£Ñ\¸pÁÓÓS(ÊåòÏ?ÿÜÇÇÇÑÑ144´ªª ˜½¾j4š'N<óÌ3ÞÞÞ%%%ÉÉÉd2Ù0Ìš5kˆD¢¿¿}}½Þî@ç’l¸Œµd±X«W¯vssÛ½{·T*ÕÝ],ïØ±ƒD"¹ººfddH$’Ùô©W4îç¦iÑ=ƒ6a>íÓ‚îç&„­Xì^W¬X‘™™i…>çc 3Xøü6›””dÙ¾ˆ'ûû&6›mÁ¾‹ýý +È+œ ¯p‚¼Â ò '³ú{ÿï¾ûn®r áóùT*Õ²}gåÕš?-N,ö óó_3èú 'È+œ ¯p‚¼ÂÉ…Ïc†IEND®B`‚XQilla-2.3.0/docs/simple-api/StaticContext_8hpp__incl.map0000644000151400015140000000153711653571064020227 00000000000000 XQilla-2.3.0/docs/simple-api/EventHandler_8hpp__dep__incl.png0000644000151400015140000001154511653571064021010 00000000000000‰PNG  IHDRÃâ>¶bKGDÿÿÿ ½§“IDATxœíkPW€OLW…"‚A¡ :¶Òª´ƒ"툣R°xQAZÁiD[ uúUm­þ ZQ iUŠL½P 8J”‚@¡Š‰†`îÙïǶÛ%7Iˆ'=ÏðcóîÙ÷¼Ù'{v³I8 Ã&˜»Äè@  ƒ $ 2hÚV,^¼x<ë@¨pùòeqж«D …òòË/3™LSV…ÐÀ£GîÝ»§Í‹Ö# õÎ;(„v®^½úå—_j[‹Îa„AHd aa°w5a¬ÊȽôööꎌ–ÞÞ^<ÉØ 6¼€1£ë²^233ÝÜÜŒR A__ßÖ­[Ùl¶qÓZ† srrrvv6J)J¥R 7§Å`’sØçŸž••…/Ëd²ˆˆ‡ËåÙÙÙ+V¬X±bEvv¶\.¼ûî»W®\Ù°aòeËΞ= øè£+W®Ô§¯›7onÙ²%<<<22òÌ™3xP=§R©<{öìºuëÞÿýmÛ¶µµµ©äQ¯ 0›ššV­ZuçΕö·nÝZ³fMDDÄéÓ§Á?cìõë××­[·bÅŠŒŒ ™L¦18Öú7† ‹Å¢áBCCëêêð›+ÖÖÖsçΜ?¾¯¯/''ç»ï¾kjjúá‡ð$×®];zôh|||NNÎàà .»´´T[/Düùóç_|ñ…¯¯oAAABBBnnîÓ§O5æ,)))**Š‹‹;uêÔºuë²³³Užˆ¶ÚŠ‹‹SSS}}}UÚ×××çææ¦¤¤äååãAYYÙþýû¿þúëúúzâÕ£18f ¶yóæ÷‡xë­·Áýû÷555áááT*P]]½}ûv&“éããßÐЀ'Y¾|¹ƒƒÃ’%KC•^ˆ8N?~üxRR’‹‹ ~ÛshhHcÎòòò­[·.X°ÀÅÅåÍ7ߌ‹‹SéB[mqqqAAA666*íW­Zegg7þ|Ààà LHHðððð÷÷ß¼y3q÷VcpÌz+((pwwW Z[[¿ýöÛuuuÓ§O¿qãFnn.ïï$šÙÛÛã ®®®Mk1*½—v4­§§çСC"‘Hå PÉùøñc‹E¬õññQéB[mžžžKrqqP(rÐÃÃØêñãÇ:‚cÆPaÚ ÍÈÈ`±X3gÎ$*vttcÆ üagg§J*mµi{i¬¹§§)twwãFµÇŒ¡CâÓ§OyÃÁãsçÎ …ùùùälÁ‚¹¹¹ýõWGGGJJJYY™ŽÌäs•6d2™\.§ÑhR©?ë<þ\cËeË–;vìúõë<¯¡¡áĉ* F¬­ªªŠoµ‘™™ÙÛÛûÛo¿ååå(j ŽC°mÛ¶©Djkk4-$$¤¦¦&$$„XµiÓ¦ÌÌÌ-[¶P(”… ÆÇÇkÌ9eÊ”×^{-22òâÅ‹º{wppHHHøê«¯lmmW¯^š’’ráÂõ–Ë—/—ÉdÇŽ{òäÉŒ3öîÝ‹_‹ê¨m``€ÜàСCÄP©‘E‹íرC,‡††®Y³U‚ºŸÑˆèú3-- }¦'½½½k×®Å_¬ºƒ#‚¦Í º—H˜q°··ˆˆÐ'h H˜qprrúôÓOõ Hd a„A–)l`@ôäÉÈw¶`D׃1ΡÐààÐcîBÆŸÏïèèõWµ£¢¢LV’ɹ}›I¡P||èæ.dŒÌ™3GÛ*­G¼´µýú- ¦&ÅßßÈ_2;x+/o¦Ñ&ÐhÔŠŠfs×b|,M†a……õr¹R.Wr,oü°4a·nu>zô÷·BþúKpûv§YË1>–&¬¬¬ÉÊŠŠ/[YQ/\øÕ¼õ‹&—+KKoËd ü¡L¦(-½%—+Í[•q±(a×®qŸ=“#Ïž‰¯_`®zLE »pá66ìÑh”ÒÒÛæªÇXŽ0±XVYÙ"—+ÈA¹\YYÙ"úéËvåÊ=±X®‹e55÷Æ¿a9ÂJJnQ©¾ÜI¥RJJ,gT´aƒƒâŸnÓxA(—+kjî …’ñ¯ÊXˆ°êê;ÄÕ¼:2™¢ººu<ë1ró—Ïþ½ ÿì³RÀÿþ÷ï/Ì&M²a0t}iLõcˆq†Á°'û°·§¼¼ ýåÁ ˆ… ‰ÿ0È@  ƒ $ 20È@  ƒ $ 20È@  ƒ $ 20È@  ƒ $ 20È@  ƒ $ 20È@  ƒ $ 20È@  ƒ $ 20È@  ƒŒa¿ÀüþûïÍXŠ9w®¥:O¤g;&lÌÓB½hP©Ž…♹ 1Ã~ÖŒ‘aˆ†¢¢"GèHd a„AHdŒZEF/K(îܹÓÛÛÛÖÖÖ××7--M,¼ííí:ê!Öên6Z(J{{»±²éf,ÿºèÆÞÞÞÆ­£££ã7Þ &vMLLìêê*))™6mZ[[[RRÇËÈÈ1““Ó®]»ŒÕìE„ü¦ èñÆðàÁ£¿C|ðà¹'''‡C<¬««óôô4z/ÆÂDû3éçåË—ó=J$ƒQUUÉdÉÉÉ“'Of2™ÉÉÉ2™ @¡PNŸ>íïïïììüÍ7ßæÍ›˜2e žaÒ¤IYYYOž<Á.\¸°«« _VOˆo555žžžùùùÄXWYYdggçæævàÀrµä!Ñæ¬¬¬ˆ î^®]»¦òô/]ºÄb± Æþýû‰ül6{Ö¬YL&3))I"‘h ŽzG«¼Rô9𛛇ƒaØÙ³g===•J%†al6{êÔ©2™ ðƒFFF>|ø°µµuöìÙ©©©x’>ø€Ïççææž­-!¾mkk+F2!‘HÚÚÚ„B¡B¡¨««SéE½»ìììyóæ‰Åb}zQß'W¯^Å0L¡P;"±X,AÝ{Û8´׫W¯NII …ööö\.ÚØØÕ:::âIîß¿ONHÞƒB¡°°°P.—ã•JåÞ½{ÝÝݵ%Ä·•J¥Øpl6{þüù7nÔ-¬¥¥ÅËË«§§‡ˆèîE}ŸÏ—Ü‘H$"òÛØØh êÞÛ¦½ùsþüùòòò9sæøúúâAWWWB0ŸÏçp8x|­]ãîïܹƒ?¤P(K–,‘ËåºZYY‘“ˆD¢èèèää䦦¦¬¬,e …Â5kÖœ?---66–h¼råÊÝ»wwuuµ¶¶†‡‡=zTGf¡PpppX¿~ýªU«ªªª:::nܸ±sçΘ˜˜Q%”H$R©”N§‹D¢´´4Ààà Æ–üñæÍ›CBBÈÁ{ÉËË{öl„ÏÛ¶oßÞÞÞÞØØ¸gÏžµk×ꎕC{Ìç0œ¸¸8ò9Y lܸ‘Á`¸¸¸ÄÅÅ aÃÇU|Y&“ÍŸ?ßÁÁÊåòôôô€€[[ÛéÓ§ïÚµ‹IÔ’Ç7òòáǧM›–••Ãd25‰:nMbÄ^4>ò2Þ8//ÏËËËÕÕ511Q$i êÞÛF8‡!ôAã¾1¼ D`Bf&Mš¯Op´ a&Édfggë-Hd a„A–)ìùséóçRsWaT?q®©©yúô©YJ1"--Ï(àhîB åömÕ©ê,ó»õÎÎË1 ðùeæ.Ä8Ñ´­€—aPÐPÚÛ…ÎΖ0g <‡UW·â÷H/^´YùÈX °¢¢ `EE æ®ÅøXš°înÞ¯¿>Ä0L©MM]ÝÝûl)ñ°²²°téëäf(ËP,é Š >þ$ 'gƒ¹ 1>òºûAHd a„AHd a„AHd a„AHd a„AHd a„AHd a„AHd a„AHd a¡×/0¡ûÇ—¶¶~‘è7s2:ôq¡ïoœ?ùä“àà`ÃêAhåæÍ›GŽѧ¥¾ÂæÍ›e@I]èÿKstƒ $ 20È@  ƒŒñFLQ®¾``ÂqØœB¡´··¹/£0ÞœœœvíÚõ"'|Áoa®®®x‘¾àGXyy¹»»;ŸÏΜ9shhH©TfffúûûOœ8188¸¶¶Rt A•••AAAvvvnnn5TTTØØØøøøœ:u Ó(ʉ'üýý_z饜:uÊÛÛÛÑÑqïÞ½DK6›=kÖ,&“™””$‘HÈÉe2YrròäÉ“™Lfrr²L&S/àÒ¥K,‹Á`ìß¿_[Î;2}&§zL¼~ýú 6ô÷÷Ož<¹¾¾ðœœ&“YZZúçŸVUUyxx€æ 'Ï‘K,:ÛÓÓSPPxôè¹ ¡PhmmÝ××wüøq& Ufdމ‰yyy€èèh@““À[†……q¹\‡Ãb±ÒÓÓÉ›ã&é–‘‘ñúë¯K¥R Ã.\¸àææÆãñ¤Ré¾}û¼½½‚ƒƒÏœ9tžÃ0 ;|ø°³³ó´iÓ²²²bbb˜L¦úX?cÆ :îççÇf³U6¤Óžú2Þ2//ÏËËËÕÕ511Q$‘77nd0...qqqCCC†äT êÞÃf¸èò®1 ¦(@cÎ1td†‹Äøð6iÒ¤øøøqÈiŠŽþEŸÃcHDè ‰ Hd a„A–ùÝzHÑÇ…^_Õ...6¸„q°ÌùÃ,tƒ $ 20È@ ãÿýÑîEÆ­kŠIEND®B`‚XQilla-2.3.0/docs/simple-api/classResult-members.html0000644000151400015140000001043511653571063017447 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

Result Member List

This is the complete list of members for Result, including all inherited members.
get()Result [inline]
get() const Result [inline]
getEmpty() const Result
isNull() const Result [inline]
operator->()Result [inline]
operator->() const Result [inline]
operator=(const Result &o)Result
Result(const Item::Ptr &item)Result
Result(const Sequence &seq)Result
Result(ResultImpl *impl)Result
Result(const Result &o)Result
~Result()Result
XQilla-2.3.0/docs/simple-api/InputParser_8hpp__dep__incl.md50000644000151400015140000000004011653571063020571 0000000000000048e156ea6b33d79a136be6f9fdd906baXQilla-2.3.0/docs/simple-api/classXQilla.html0000644000151400015140000011235211653571065015736 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

XQilla Class Reference

Provides factory methods for creating XQQuery and DynamicContext objects. More...

#include <XQilla.hpp>

Inheritance diagram for XQilla:

List of all members.

Public Types

enum  Flags {
  NO_STATIC_RESOLUTION = 0x1, NO_ADOPT_CONTEXT = 0x2, DEBUG_QUERY = 0x4, NO_OPTIMIZATION = 0x8,
  NO_DEFAULT_MODULES = 0x10
}
 

Flags used by the XQilla methods. These are used by bitwise OR-ing (|) their values together.

More...
enum  Language {
  XQUERY = 0x00, XPATH2 = 0x01, FULLTEXT = 0x02, UPDATE = 0x04,
  EXTENSIONS = 0x08, XSLT2 = 0x10, VERSION3 = 0x20, XQUERY_FULLTEXT = (XQUERY | FULLTEXT),
  XQUERY_UPDATE = (XQUERY | UPDATE), XQUERY_FULLTEXT_UPDATE = (XQUERY | FULLTEXT | UPDATE), XPATH2_FULLTEXT = (XPATH2 | FULLTEXT), XSLT2_FULLTEXT = (XSLT2 | FULLTEXT),
  XQUERY3 = (XQUERY | VERSION3), XQUERY3_FULLTEXT = (XQUERY | VERSION3 | FULLTEXT), XQUERY3_UPDATE = (XQUERY | VERSION3 | UPDATE), XQUERY3_FULLTEXT_UPDATE = (XQUERY | VERSION3 | FULLTEXT | UPDATE),
  XPATH3 = (XPATH2 | VERSION3), XPATH3_FULLTEXT = (XPATH2 | VERSION3 | FULLTEXT), XSLT3 = (XSLT2 | VERSION3), XSLT3_FULLTEXT = (XSLT2 | VERSION3 | FULLTEXT)
}
 

Enumeration used to select a language to parse.

More...

Public Member Functions

 XQilla (xercesc::MemoryManager *memMgr=0)
 Constructs the object.
 ~XQilla ()
 Destructs the object.

Static Public Member Functions

Parsing Methods
static XQQueryparse (const XMLCh *query, DynamicContext *context=0, const XMLCh *queryFile=NULL, unsigned int flags=0, xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager, XQQuery *result=0)
 Parse the expression contained in the given query string.
static XQQueryparse (const xercesc::InputSource &querySrc, DynamicContext *context=0, unsigned int flags=0, xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager, XQQuery *result=0)
 Parse the expression from the given InputSource.
static XQQueryparseFromURI (const XMLCh *queryFile, DynamicContext *context=0, unsigned int flags=0, xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager, XQQuery *result=0)
 Parse the expression residing at the given URL.
Factory Methods
static DynamicContextcreateContext (Language language=XQUERY, XQillaConfiguration *conf=0, xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager)
 Creates a context suitable for parsing an expression with.

Friends

void CompileDelayedModule::compile (const XMLCh *queryFile)

Detailed Description

Provides factory methods for creating XQQuery and DynamicContext objects.

This class calls XQillaPlatformUtils::initialize() when it is constructed, and XQillaPlatformUtils::terminate() when it destructs, so there is no need to seperately initialize or terminate either Xerces or XQilla.

Examples:

simple-basic.cpp, and simple-context-item.cpp.


Member Enumeration Documentation

Flags used by the XQilla methods. These are used by bitwise OR-ing (|) their values together.

Enumerator:
NO_STATIC_RESOLUTION 

Don't perform static resolution or any optimization.

NO_ADOPT_CONTEXT 

Don't adopt the context and delete it when the XQQuery is deleted.

DEBUG_QUERY 

Build debugging hooks into the query to enable the use of DebugListener.

NO_OPTIMIZATION 

Don't perform optimization.

NO_DEFAULT_MODULES 

Don't automatically import the default modules.

Enumeration used to select a language to parse.

Enumerator:
XQUERY 
XPATH2 
FULLTEXT 
UPDATE 
EXTENSIONS 
XSLT2 
VERSION3 
XQUERY_FULLTEXT 
XQUERY_UPDATE 
XQUERY_FULLTEXT_UPDATE 
XPATH2_FULLTEXT 
XSLT2_FULLTEXT 
XQUERY3 
XQUERY3_FULLTEXT 
XQUERY3_UPDATE 
XQUERY3_FULLTEXT_UPDATE 
XPATH3 
XPATH3_FULLTEXT 
XSLT3 
XSLT3_FULLTEXT 

Constructor & Destructor Documentation

XQilla::XQilla ( xercesc::MemoryManager memMgr = 0)

Constructs the object.

In the process, XQillaPlatformUtils::initialize() is called to initialize XQilla and Xerces.

Parameters:
memMgrIf provided, this is the MemoryManager used to initialize Xerces.
XQilla::~XQilla ( )

Destructs the object.

In the process, XQillaPlatformUtils::terminate() is called to terminate XQilla and Xerces.


Member Function Documentation

static DynamicContext* XQilla::createContext ( Language  language = XQUERY,
XQillaConfiguration conf = 0,
xercesc::MemoryManager memMgr = xercesc::XMLPlatformUtils::fgMemoryManager 
) [static]

Creates a context suitable for parsing an expression with.

Parameters:
memMgrThe memory manager used to create the DynamicContext.
Returns:
An implementation of DynamicContext
static XQQuery* XQilla::parse ( const xercesc::InputSource querySrc,
DynamicContext context = 0,
unsigned int  flags = 0,
xercesc::MemoryManager memMgr = xercesc::XMLPlatformUtils::fgMemoryManager,
XQQuery result = 0 
) [static]

Parse the expression from the given InputSource.

Parameters:
querySrcAn InputSource which the expression will be parsed from.
contextIf specified, the context to use for parsing this expression. A default context is used if this parameter is 0.
flagsA bitwise OR of the Flags constants, that control aspects of how the XQQuery object is created.
memMgrIf specified, the memory manager used to create the XQQuery object.
Returns:
The object that represents the parsed expression.
Exceptions:
XQExceptionIf a parse error occurs.
static XQQuery* XQilla::parse ( const XMLCh *  query,
DynamicContext context = 0,
const XMLCh *  queryFile = NULL,
unsigned int  flags = 0,
xercesc::MemoryManager memMgr = xercesc::XMLPlatformUtils::fgMemoryManager,
XQQuery result = 0 
) [static]

Parse the expression contained in the given query string.

Parameters:
queryA string containing the expression to parse.
contextIf specified, the context to use for parsing this expression. A default context is used if this parameter is 0.
queryFileThe name of the file that query originates in. This is passed back to the user in an XQException if an error occurs.
flagsA bitwise OR of the Flags constants, that control aspects of how the XQQuery object is created.
memMgrIf specified, the memory manager used to create the XQQuery object.
Returns:
The object that represents the parsed expression.
Exceptions:
XQExceptionIf a parse error occurs.
Examples:
simple-basic.cpp, and simple-context-item.cpp.
static XQQuery* XQilla::parseFromURI ( const XMLCh *  queryFile,
DynamicContext context = 0,
unsigned int  flags = 0,
xercesc::MemoryManager memMgr = xercesc::XMLPlatformUtils::fgMemoryManager,
XQQuery result = 0 
) [static]

Parse the expression residing at the given URL.

Parameters:
queryFileThe URL of the expression to parse.
contextIf specified, the context to use for parsing this expression. A default context is used if this parameter is 0.
flagsA bitwise OR of the Flags constants, that control aspects of how the XQQuery object is created.
memMgrIf specified, the memory manager used to create the XQQuery object.
Returns:
The object that represents the parsed expression.
Exceptions:
XQExceptionIf a parse error occurs.

Friends And Related Function Documentation

void CompileDelayedModule::compile ( const XMLCh *  queryFile) [friend]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/DocumentCache_8hpp__incl.png0000644000151400015140000024227211653571064020147 00000000000000‰PNG  IHDR ø]ÚX 0bKGDÿÿÿ ½§“ IDATxœìÝyx[å™6ð÷,Úw˶äM^’ØlÙ:…–”e`X i¡C)ÐÐÌš°”B†}(ÊRè”Ò†¾iÒ’P(K(q!Žã}‘¼I:ÚŽ¤³|¼öɉ,g±ååþ]¹rɯ¥WYŽåsëyFUU3[è ÀþAÐ 0à è˜aôÌ0|¡7pàþö·¿Ý~ûí…Þì·Ÿþô§_ÿú× ½ € A/Ì`¡PhóæÍ'tR¡7ûá­·ÞºüòË ½ €™ A/Ìx·ÜrK¡·ûá­·Þ*ôf<Ìè˜aôÌ0zf½3 ‚^€†/ô&ÝŠ+´Û>ŸoñâÅ«W¯v»ÝÜÒD >öØcŸ}öY4­®®¾è¢‹N<ñÄý½“+V<÷ÜsSðU0ePÑ sÂ#<òâ‹/nذaíÚµ‰DâŠ+®ˆÇã…ÞÔ>z{{¿ùÍoj ‚ðýïßd2ÝrË-?þø7¾ñÛn»mëÖ­Ü!L¨è€9ÁívBŠ‹‹—,Yòÿñ6l¸ôÒK ½¯½EAûð™gžYºtéO~òúauuõÐÐÐúõë—/_^  À4‚Š^˜s†9çœs>øàúa<¿ûùÍo®Zµê±ÇËd2²,?óÌ3^xá¹çž{×]wÑÚßîîn­´þöŠ+^{íµK.¹äÜsÏ}þùç_ýõoûÛgžyæ¯~õ+z€$I?þøyçwÞyç=þøã’$ѯڼyó%—\rÎ9çüþ÷¿'„\uÕU„o}ë[ô«Þ~ûí•+Wê·}É%—¬Y³†Þ~ÿý÷/¿üòÓO?}åÊ•Ï?ÿú袋.:ûì³ûÛߎ³¥9_EŸò{ï½÷Ýï~÷¼óÎûùÏžÍfó.äßL‚^˜‹*++{zzèí‡z¨¿¿ÿñÇ¿çž{¶nÝú»ßýnãÆo¿ýö]wÝõàƒvvv>÷ÜsãßÛÇüØc]qÅO>ùäûï¿ÿôÓO¯^½ú7¿ù ­Ðݸqcooï/ùËÿþïÿþä“OžyæúUï¾ûî£>zå•Wþò—¿ŒÅb¿øÅ/!/½ô!$ ý£X,–ÒÒRBH2™üÙÏ~¶`Á‚çž{nõêÕO>ùd$gÏ~øá“O>¹fÍš§žzjü-éþ*BÈÿýßÿÝu×]wÞyç‡~Hæ±`R!è€9M’¤¿þõ¯ÿþïÿ^VVVWWw饗nÚ´éÕW_ýÞ÷¾WWWW[[»víÚ#ýôÓW_}µ×ë¥Ño"‘gÏt{'œp—niô“Ò!dõêÕ•••‡~ø÷¿ÿýM›6³“ 3z`.êêê*//'„„ÃaEQèmBHEEE?!¤²²’®TWWWWWç|9 b5V«•Âó|Îm* ê›0Ûl6z£¸¸8çHÃáðx<íííú¼ö‹/¾øŸÿùŸ‡zÈd2uuuÝÿý©TjÁ‚ô³¡Ph¬={½^²ol<Ö–ôFÑý±ú5Ö"L*½0稪úÇ?þñøã'„x<–e{{{i2ÚÓÓS\\¬ªj0¬­­%„477ðÁ_|1ýZY–9Ž˜øÃ¹\®|°¢¢‚Œôd¦ëcìR_ýêWׯ_¿nÝ:í°M›6I’d2™Òéô­·Þzë­·~å+_Éf³¯½ö!Äëõ޵çÑ4Ö–ôòn¯«««®®ŽÒÙÙI“à±`R!è€C,O˲,Ëj,&BD1›Ng !‚RU’ÍʉDš’Lf²YYUUAHBDQÅ,!$eY‘$…–JeÒi‰¦!™Œ”Jeè£H’âpŒ—•êE"‹Å¢(Jww÷† z{{ï¼óNBÏó+V¬xøá‡¯»î:QŸ~úéSN9…a˜§žzÊï÷Bz衚šBˆÝn'„¼þúë_ÿú×é$Ý :ñÄŸ|òÉÕ«W'‰ûï¿ÿ°Ã»úê«Ç:8•JY,BÈe—]vÉ%—Üyççž{®Åbyçw^z饻’Íf%Iây>“É<û쳄d2yÚi§Þó~méÕW_=餓òV÷jyä‘k¯½6‹=õÔS§žzê8‹0©ôÌZZ†šNË#á¨(ËŠ,«ñ¸HtêH+%“BH"±O›NG°‚RU–•xœ&µélV&„D"ûD°ûÅdâÍf#!Äá0qË0ŒÓiY7B³Åbd¦ºÚK1™ tÝn7ñ<ÛÔôùÖ­z ýèGôFiié¢E‹žxâ -Ѽæškyä‘üàƒáßøÆE]Ä0Œ(Š?ùÉODQ<þøã¯¼òJBˆËåºì²Ë~ñ‹_<÷Üs?üáßyç >ÇË.»ì‘G¹üòˆùÚ×¾Fïm4¿ß¿pá•+WþéO"„¸Ýî'žxâ±Ç»å–[R©T ¸ãŽ;h²Ýn_½zõí·ßn±X¾óïœ|òÉkÖ¬yá…Fïy¿¶tÿý÷/Y²dü ÷”SN¹öÚkEQ<ùä“/ºè"Ú¨9gq‚,p0˜œIph¥Ó’(fD1+Š)oÅ,MXE1K3Tº¢¿Ž¼þCýñ¢8ÜNË2‡…b6«4IÕrV³Ù0²Î›Í-g=Èã÷k“’¤Äãb4šŠÅÄXLŒÇEíÆüãw¿[·yóËûu‡pº»»/¾øâ7ß|óK¿ÔŠ+Ö¯_ÁÒ Ì-¨è€¹H’”DB$#í³Y9™LBATU5®L¥½‚i˜ªªÃ¦R™Lfo'aíàD"-IŠ,+´XVKj!µ_å4%„8f–e8޵ÛÍ#ëè÷»hÝ9ì/|˜´òÖq’W2Æ×IJ^Épªj?yu¹,>Ÿ3gJkÞƒ‘¼*™Œ'´t–þuë mG-æ‰lY–))qп,­¦–F¶9‹4²Õÿµ|)žw>üðg?ü!Ädâý~Wi©säwg àõùœ>Ÿ«¢ÂÃól¡7 0M!è8@é´$Š™¼•¬I^ÉDcÚýH^FÞb1Ž_É:ñäUûp¬ƒa²I’28‹D†‹hµšZÙŽ^ëŒÑÈ{<Ö}{#;µ6Èt‘þSA¡-L IŠ®[·ìè£OìëzzÂÁ  F{{#;vt÷öFµ‘Ìf³¡¬Ìí÷;ËË=>Ÿ³¬ÌUVæöù\îâb2`˜ãôÀì‹‰Š¢Ð¬TkDL¸&“™LFÊfåd2£UÊÆãiIRhr&˪66›•eY‰ÇÓÚ}f22‹¥EÈf´¶Ã6›Ñ`à8޵ÛÍ„»ÝÄq¬ÁÀ¹ÝVBˆÃafY††µdxþëðW†!#Óa&ϲ¬Ãa"„Øl&žçx~xæ«ÍfFò1mE£Éœ6È4××Ú§Ð–çY¯×NƒX“‰×Úæ,Î…È6‘H·µ 47 …ÞÕå2.[V÷s´*=ÚÛC!!B¡èöí]¯¾º­§'¢Íئ¥ÀZù¯ÏçôùœÕÕ^ŸÏYRâdYf Ÿ@ è€)•ÍÊÉdš‰¤!Éd:›•3)•Ê*Š–¹Š²¬ÒÂVIY!¥ªj*•¥m"‘&„D£)BH"‘–$9–R©¬ª*‚ Nd'gµš!n·…bµš Îhä-Ë24U-)q ϳ6Ûp.Ëó,Ïs6›‰Œä²&Óp.ëtZf¸ˆ–aˆË5œË¸3Ûd³òÐPœ¦³4—ÕÚæ[ÌÙ2 ãtZÌf^_hxiÛjý" kéâ,NmÇ'©ÖÖ¶¶á_­­mmý}}1BHQ‘©Ð»ƒCÌhä}>—ÏçZ´¨jôg£Ñd0(ôõÑ8J“দP[Ûý&BFÆEû|®êj/m­µ†®ª*²ZSû„&~Ì&É湎3ù5oóáýûJs/²oàœ¶Ã&ïrYòv§ç0¦½ÂXEíïè¿g­¦V×yŸEú¯:ojKS%}d}¡­ËeÑúfÏ…BÛƒ!ËJWW¸£c°½}p×®`SS°£c°·7šÉH ÃE€·ºÚ{ê©GÐÕÕÞ¿üå• /,ô¾a ¹\V—ËÚÐà?ñÄÜO‰b––ÿ†BBGÇ Íƒ;7oººÂ²¬h÷@Ëi)0-Ö>œêçp ôÌŠ¢Æb)BH4šRÕáVZÛšNK©T†öÖº ‚¨(*-–¥É«$ɺºX­ŽvŸÞÅ_J+l¥-…­V£ÁÀ œÕjd†6¶ÙL<ÏÒ<•㇃š9Ž¥Y,Ïs´É0­©£¾ôÚîUkƒLß /´µ˜'²å8¶¸ØNß% /´u»-9‹4²ÅÐâ&IÊž=}4Êmoloìè¤yY–©ªÎt¿öµú@À[_ﯩ)6™p=Æc6hü?úS´¤ôÞjàÆÆ®žž0ýIFÚAkå¿~¿Sk ]QáAo|˜VðÂà £[“ÉL&#Óš¿lVI&ÓZ/b¯ÆãiY–S©l:-e2R*•‘$%‘H«ªJ[Çbú€VŬ$ ÷(`µvÁ‡™eY›ÍÈó­#4ùêj;ŽW‹e8s¥-ˆéWÙlúÞÅ,Íh3Ç1f³ù L%IRc‘Èp­¾ÐvŒÅ<‘-!dd`íÞ6È>ŸÓd2h…¶t‘†µ(´<¢˜mj Ò(7'Óå8¶²ÒC£Ü³Ï^R]í ¼ee®ýíy~Ýu×MÒæg:UedÙÄóêi?©R©E1 1ƒ!1õn0p´tÞÏÒRàŽŽÁ`0Ú×'ÐRà­[[C¡h__LU‡Ç±»\Öœò_Úº¼ÜM¿iL%Fû0ûÐq°ìH¼Ÿ‡M¨1!Äå²’±; k}‰õ†÷ë°Iüã8hɸ(fµšÚ}Û ï]¤ÿËÆJmyžõzíã´AÉtѹÀ‰ôž=}úL·©) „žgëêJüZ×å@À[^î6¸ƒyÄ÷ßÿÁÿü·ÝöÇ¢"Ûwž¿bÅaŸ#wîìilìjlìllìjj r;o^é¢E•‹U-ZT¹xq`õˆF“´üWëMµµ hcŒFÞã±jå¿~¿“¶†Æ 8Hz`B$II$DYVc1‘f®Š2|›ö¦¿ BŠ®¨*‰Å†¡¿Ë²’H¤i§bÚŽ˜67þÒ öK›Ó±ÇÚífBˆÛm!#CaiòJã¸}’W§Ó̲ ;ÙzÓ,+1ZÅ®/´F“c/æ)d7¸¢"›–ÎÒÊZ­¦6ï""Û™HR_|ÑKÓ\­T—fºV«qþ|Ÿ>Ó­¯÷Õ &è˜cÖ}ï{'^uÕ7Õ†BÂw¼¼qãG§žzäÝwŸ_Væ>T÷|¢Ñdcc×–--]Ÿ~ÚÑߣ•ßZî»tiõLüN­ªj__,ŠƒÑîîH_ŸÐÓ £Á`´·7¢6y¿ßå÷»ÊËÝeeôw·ß直p£¾‚^€Y…NŠÇõyjF’äd2CË^³Y™–ÏêÛëËg³Y9™Ìd³Ã'Y–µË‘ã “_]. à g±‡‰VÇrk³™xžþÎÙlFÍ ¼>ˆ¥QÖµ˜~Êb1NÁŸÀL—NK‘HbŒ6ÈË´ ù8…¶ÇÛó¶A¦UïúB[m©íì“3IWŸéÚí¦ººRšéÖ×ûüÕÕ^Ú ¡tZš7oÍ/yÉ™g.>´÷¼yóç7Ýôb4š¼îº3.½ôŽcíý¼P(ªû~üqÛÐPÂ`à?¼|ùòZý.Xà›ñg<žîíÎ}{z"¡P´»;BWâôƒ+)qTTxÊÊÜ~¿“Þ(+sUTxJJÓð廬^€©C‹bG‚ȰXý1„ýk0pV«iüù¯™‹±“M’”ÁÁX$2<ÂV_S;ÆbžÈ–2’ÔîmƒLÿÛê msñ?z®QUµ£c('ÓÕúÍ:æšššæj¥ºÈt§ÆîÝ¡¯ýîM›®;òÈŠC~碘}ôÑ7~xóᇗß{ïªE‹ªùCBúÜwË–Öh4i·›?¼œû.ZTU_ïc˜ŸûæˆF“9ó€é‡]]CÉd†“3˜öùœ55%N§¹°û€)ƒ `LÑhRUI4š¢Šil6K{ËÉdf$jÍŠ¢DËdikâd2ÉÈ©T6“‘ôå³ôøñ”öæ8Æá0Ó&à Ch«a·ÛJFÇÒòYÚ|Øá°°,ãp˜Y–¡“bõå³V«Ñhä,£Ñ8cÆÝÌôÔ!ŠY}¡m4:ÖŽ±˜'µÕ÷F¦o¼ÐjjÇZDd 9EíìÎtwí 65;:{{£™ŒDñùœtž®¾ý22ÝÚ´iÇ%—<µ{÷Ý6›i’bçΞ5k6lÛÖqÉ%'\ý¿LÞB²¬47÷Ñз±±sûö.QÌ:憆2šû{l]uµ·ÐÛœ\£GÓ ¸»;œH ÷_;.¦/)`Ö@Ð ³íW,¢¢¨4¥d!%ËJ©wÈI’²gÏÞÜwÛ¶ÎLFòùœZ±ïÒ¥ÕÅÅöBosꌕ÷ô„µ90 €G’`ÌÕ˜yôÀ¡Që8‰µ‚¶ ·5þ’~Å´ö ›kY :̲¬ Äè©F_S&Ç^ÌsÂ1ygoodí¤¡ïœ³ˆsZ¢˜¥i®¾ý2ÍtY–©ªÚ›éÖ×ûëëý~¿ËdBw‡à§?}i۶Η_¾f «¯/vûíܸñ£SO=ò®»Î//wOÁƒN†lVniéolìܺµuË–Ö={údYÑç¾ÇSãñØ ½ÍÂÅl($tt ƒÑ‘$X…„¶¶~Aé14.-uê’àá ¸´Ô9ûúcÌz ×~Í‘ÕFL"K1™x³Ù¨Õ®äøX¤)sG:-E" }dz Ò mG-æ)´å8¶¸Ø®´šZ·Û2ºúV[Äy¦R2™iné3ݦ¦`($B8Ž­¬ôÞúzCƒŸ–ê–•¹Ð±æúîwŸp»m?ÿùESöˆï½×|ýõúû…ë®;ãÒKOà8vÊz’$é;ºµù¾ÍÍ!EQiî{챵˗×uT¥Õj,ô6 LQÔþ~¡»; F{{#==‘ÞÞhOO¤·7 F³Y™æñØÊÊ\žÊJOY™»¼Ü]Yé)/÷ø|Nƒ+ìS˜ãôÌt‚l,&Ò¡°t:l,&ʲ¦F²[I³Éd&›•A”eERŠ¢ÄbiI’‰áÎÆôÆ8‡Ã̲,ërYéY–eœN DZv»‰v$69«Õ8’¿·,6™x«Õd0ÐI´¬Ãaæ8:‰…sš¾7ò¨6ÈÃï)ÑÚæl !#IíÞ6È4—ÕÚæ,"²…i%O·´ôÑLw×®`SS¨½}0MBxž­«+mhðëÛ/——»‘µÌ2'žx×¹ç.½öÚÓ§òAE1ûè£o<üðæ†ÿ½÷^°dI`*}²ÅbâÎ=ZîÛÔä8vÞ¼RZìKÇ÷=UUûúbÁ`4Œvw‡{z"==‘îîpww¸¯O$…²Li©³²²¨¼ÜU^ðTTxÊËÝååž9Õ4 €ôF"‘–$9MÑ¡°Ù¬œLfè¼Øx\”e5MJ’§i¶A‡ÈÒ‰³‚ êÛ '“iííöy¹\VŽc³ÑÈ[,F:Öá0óÀ ƒ f¡h4™w¾¬6£Q7;vüà6SP DZv»9gj¬Ûm5126ïLYÌz€)#ËÊÀ@,odzJÔÚŽó£‘÷xööFÖÞk¢ïœ³ˆS̪ªvt •éÚí¦ººáL·¾ÞGGêº\ÖB撚wßÝ}Á¿hl¼­°Íoûûc·ÝöÇ_üø”SޏóΕžnfŠésß­[[#‘¤Ýn:üðr­És}½3GöW&#õöFiùïHú+„BBkk,&ÒcL&~ßô×…fãCÐ Óˆ ¤Òi)™Ì$“éLF¦m?E1‹™Œ‹4M$DIR´¦Ç™Œ”JeiûâXL”$ERã<ÊHÕ¬Ál¦“b9§ÓÂó¬Ãa¦-‹i›b:8Öå²òÀ!ƒ `&¡]:µü€Æ®ô—ä|6g*íøCgµ‰³9eµò¯œq³9ÃhÑÒf™LF ‡÷öFÖηúÞÈû.æ9Dz,SRâÐÞÚ2º ²~ït˜bÉd¦¹9”“éÒf¡,ËTUíÍtëëýõõþ²2—ÑÈz×0ËvÚý_ûZÃOzv¡7’KUÕ?Z·îãg®Zµ¼Ð;šv’ÉÌgŸuió}››CŠ¢êsßc­ÅûB&•,+ýý±®®¡®®pw7ýéìêêŠÇÓôÇVQᮨðTVUUÑÛ”bÀL„ `ŠÄb" K{ë;ÓÓi)•Ê&b:­ £ÍÒ´#‡ÉÑhr¬ûÉh f3ïp˜FÞf3Y­F£‘w¹,´¹±Íf4y§ÓB£Yz˜Ýn¢#i].‹Á€‰³0;I’28Ó·1Ð÷F½8VßÚ®@kƒ¬µ"Ð÷FÎYDd 0MÄãé––>åîÚlj µ·ÒWÇVVzo}½_©[^îFÛO(ˆúúëö³o^|ñW ½‘ü"‘äw¾òÛß~pÊ)GÜqÇÊÊJO¡w4}ÅãéÏ?ïÖrßÝ»C,ËÌ›WJC_ú;^'L™LFêíÒÀÚ›{B!¡³sHßZkØ Í®­-A ;L[z¾œ¢¨±X*™ÌÐѳÉd†F°ôF<.&QÌÄãéxø`ÏÚµººÂ?þñiW^¹?ŒL„ ¤¾ø¢·±±këÖÖ-[ZB!ž‘´ÜwÉ’zD4šÔr_-nkë‘àrYµÜW»"†a »y˜ãôÀì—ÉH©TFDQ̦RAH¥RYQÌ Âp¿ÍH$E;Óœ©TVR©T&–¢Ñ-ÀÍ{Ï‹Ñl68f«Õh6ìv³Íf2™x‡Ãl³™ÌfƒÝn²ÙÌf3o³™ìv³ÁÀ9fÚ¨Óé4 ¼ÝŽòY˜Ó²Yyh(NÓY­á¼¾7ò¨Å<‘-Ã0N§…v<ÎÛY[ÔúÌ#µ˜5B!ÎÓÕ·_¦™®Åb\°À§Ÿ¤x+*n˜>÷ݺµ5IÚl¦#Ž(ך<××ûP<:Md³rOO] `:@Ð “E’”DB+‹Õ_÷תµ´›cMF¤h@×q²XÄ´,“‘Âá„ÖYöc1OdËqlq±];'ëÛ ³ˆS4(ŠÚÙ¹7Ómj 65ƒÁ(=Ï8æÚÚšæÖ×ûéetdº0k<ðÀ_^|ñã÷Þ»±ÐÙ?/¿üé7¾Èóì7žµjÕòBog6…¢[¶´nÙÒÚØØùÙgÝ©TÆá0vX™–û64ø ½GÈcŒ.Ђ¢ŒÕºªªÜpôÀx’ÉL2™I$Ò±˜˜L¦“ÉL,&ê§ÏŠb–.êoèû$ç½[“‰7›9AlÎ ‹Åh2ñN§E×Ùd2ñô†¨L$)ƒƒ1ý{nô½‘ó-æo‡02°6dº¨µF@¡-L,+]]ᎎÁ]»‚´sGÇ`OO$›• !N§¥¡ÁßÐà×·_F¦ ³Û5×üŽ;VNÿÖÓ3ˆ,+ÍÍ}´Ø·±±³±±3–œNËâÅUÇ[»hQÕâÅÒRG¡· cRUµ¯OèìêîŽtw‡»»Ã]]áÎΡîîp,6<Øí¶VTx*+=UUEôWeeQU•ßõ`|zf9YVâq1K§R™d2#©D"Mã[AH%“™d2Ó7CÚx\L¥²Éd†öÁM7}Öd±¬V“Ýn2› 6›Éá0›Í«Õh·ßp:-f³Áb1èo ßÀÐ7´Ï×yï¢Ö !ojËó¬×k×÷®Ïiƒœw± Of“tZÚµ«WßuYŸéæLÒE¦ sÖ9ç<¼paåw|«Ð9@~زví†ÎΡ«®Zqõէ⺓A’”={ö澟~Ú‘ÍÊ>ŸS+ö=úèj¯×^èm„BJŸûvw‡;;‡ººÂýý1z€Ãa®¬,ª¬ôÞªª"šWVz<[awÓ‚^€i-ïÚ}¯àç_§õqNß㜬ÑMõ3kq¡àPÉfå¡¡8MgµöúÞÈ£óD¶ Ã8m¬¸–Îêg^ÄÉ&[*•Ù½;”“évw‡%Ia&(ÊÉtkjŠNK¡w 0-,^ü³ýèäË/ÿz¡7rà²Yù‰'Þºÿþ?×Õ•Þ{ïªeËj ½£Y.›•wîì¡Mž»š›CŠ¢êsßc­Åûff"­ ôèo¦„ƒ+/w—–:ý~—þ»je¥g¦Lø€CA/ÀÔ¡Õ´ñxšvBŽÅDz;™LG"©DBL$†›$Ó#‰L"! ‚˜÷Þ³Õj´XŒN§Åf3Z­F«ÕätZ¬V£Õj´ÛM‡Åb®©µÙL‹Ñj5ºÝô=8´Eíï´¹ãú6Èc/æy/}#ÎXmsÞ‚ƒB[˜&‰ôž=}Úeè]»‚MM!Ú†e™ªª½™n}½¿¾Þ_Væ2ùBï`šŠÇÓõõ×ÿú×ß?õÔ# ½—ƒÕÖ6pà ß~»iåÊeëÖ‹êÃ)§?ÿ¼{¤És×îÝ!UU««½Ë—×ÒèwáÂJ‹ÅXèm‡BBgçžE¦ðù\9­2**<<`BÐ °h‰m<>œ×&éh”†²éD"-b,–¢ym<ž„Tù¾·ÞZ[_ï/ô^—_þô¦›^dY榛Î^µjy¡·3 ‚øÅ=4÷ݺµµ½}çÙººRZì»hQåâÅ“ ï¿™ ÌMz`îÅl<žŽÇEAH B*KÇbb<>\h&µšÚX,-):Ë6™ÌŒ¾+‹ÅHÖ:zƒ¦¶ú3-½Õâ[›ÍŒÓ“G’”ÁÁXN‹{­7r¾Å<‘-!dd`íÞ6È4—Õ mG/"²€™.šš‚9׋i¦k2ñ e9—‰‘鯽¶ýòËŸÙ³çÞÙ¼ Bê¾ûþüÌ3ï|å+óî¾{Õ¼y¥…ÞÑœ Eµbßü£}` n0pµµ%Z“ç#¬@ãßY&'…„PHhni¸\.«~žBuµ·´ÔY]íÅ53‚^˜ dY‰ÇÅH$EcZšÔÆbb,–ŠFéâÞWR‚ Æãb6+çÜÙlp8Ìv»Ùá0;{kjN‹ÃaÖ2Z·Ûjµšl6£Ýnv8L‡…e™‚ùäß>ùäÖBoäÐÛ²¥eíÚ ííƒ?üá7®¾úT¼5dšÐç¾}Ô'l6ÓG”kó},ðáŠÇl¥€ƒA¡¯Ohoܳ§/‘îH—7ŠÐú`ZAÐ ÓKNo̼ 3÷]³afÞKöh˜ PpÙ¬<4£ r*>É_hË0ŒÓi1›y}M-=ó³ˆS=ÌeŠ¢vvî“éîÚlo çX›Í4o^©v1·¾Þ×Ðàw¹¬…Þ5ÀܲfÍ --ý7þ°Ð™Ù¬üë_¿w÷ݯVW{ï¹gÕ1ÇÔzGKË}·liýøã¶d2ãp˜;¬LË}ëë} ƒÜw–Ë·´ôi#Ér`ŸÏéó9çÏ÷Y­€ A/L®tZŠFS±XНFS‚ŠFS±˜HWAëœ, ‚HKr8ÃU¶ôw‡ÃìrYìv“ö¡Ýnv¹,Úm‡ÃŒ—S@–•˜(¿ùFßyìÅÌèÔÖhä=ž½½‘éÛt´šÚ¼‹ˆlÆ!ËJWW˜F¹´sGÇ`oo4“‘!‡¹¶¶„¦¹ÚH]dºÓÁªUÖÔ”Üwß…ÞÈ$jo¼ñÆo½µkåÊe·ÞznQ‘­Ð;‚üdYinî£Å¾Û·w‰bÖé´44øi“ç㎛WZê(ô6aŠH’ÒÛéìêê wvuu ÑÛ==aIR!WQᩪ*¢éo Px/þL6½°EÅR‘ eS±˜¨qidK£\m…^KÒs:͇Åé4;Ú™®¸\mÅáØâ:–‚ÓÍ™¤‹L`ÆI¥2óç_ÿÔS—žqÆÂBïe*Bê¾ûþüÌ3ïü¼»ï^5~i¡wû!›•[Zú·nmݲ¥¥±±«¹9¤(ª>÷]¾¼ÖíÆ÷ 9MßZ»ÑÙ9Dà¼ýŸëëýø‰`!è˜mEÍé“©/ÃÒ.è ‚‰$!•óå´¾ŠÖÑÒß÷lÍn·U¿‚÷ßL*UU!%ŠÙœ“9 kÇXÌ“Ú \Q‘¦³f³Ál6h5µc-âl€J$Ò{öôi×Fwí 65…蔆ah;Díòh}½¿¦¦ØdÂ+s€™mçÎÞ“O¾÷¯]sØae…ÞËÔilì\³fî]½?úÑÉÿþï§à"à •H¤wìè¦Å¾]»w‡TUõùœÇ[·|yí¢E• VZ,˜±$“‘z{£úè·½}°µµ?é9°VŒº€± è˜îTUíëò…µyâÛÑWö}>§¾èJù>§£&®éL¶LF ‡÷öFÅáÊZýY}ßÅ<'v–eJJ£Û ›Í³™Ï9çk‹8ÃL[±˜ØÚÚßÞ>ØÔlj Ñëž4ÓeYF›uW_ïohðÞ²2‚€Yéµ×¶_~ù3ÍÍ÷̵Wn’¤<ûì»÷Üó§ÒRç=÷œ õ…Þ,A¿ø¢GË}›š‚ÇΛWJ‹}-ª\¼8€÷'^ÞòßîîáÀF#_VæÊé\2o^©Íf*ôÆ A/@!E£Ép894”‡“áp"I†Ã‰p814Dô¢¿ö¦6Ša˜ÑÁíè§ÓBoêÙÌb²¬ Äò¶AÅá¶£3£S[£‘÷xööF¦ïÂÉ9·ç,ε ³‰ ¤¾ø¢—¦¹ÚuLšér[Y驯÷××ûµ‹˜åånƒ+ô®`ŠüâýÕ¯Þùè£[ ½‘Âèè¼ñÆß|ó‹•+—Ýzë¹EE¶Bï™PHhl줡履vô÷Ç ®¶¶DË}—.­Æ÷;-›•{z"9å¿¡P4èyË++=ÇvçS A/À¡—ÉH4¸ù=ASÛp8©­D"Ép8)ËŠöU´©¦ÛmõxlÕã±ÑG§¹N§¥€Ï`öI§¥H$¡ï”@çÚæ´OÐ-æ)´åyÖëµÓ2!g‘–ä"µ˜•TUíèʹ.©eºf³¦¹ú‹’ÈtàºëÖ··lØðÃBo¤6mÚqà “ÉÌ7žuÑEÇ£Yë¬ Eµbß?nJX­Æ#¬Ðæû.XàcYüÕØÒi)Ìíÿ¼{w(•ÊB ®¼ÜSþ[SSâtš ½q€I `?$“™ÁÁøÀ@\+½Õg·Zš›H¤õ_åp˜ijëñXGr\[Q‘Õí¶y<Ö¢"]±ÛÑlà`e³òÐPœ¦³4—Íéx?j1OdKq¹¬9mi.›ÓDA¿ˆÈ`nRµ³sŸLw×®`{ûýþbµçÏ÷ådºžG¡ ä:ÿüGëêJî½÷‚Bo¤ÀA¼ï¾×ž}öÝåËkï¹gÕ‚¾œTU½ýö—×®ýô±Ÿô¹ï–-­ÑhÒn7~x¹–ûÖ×ûùÃDäíÿÜÙ9¤(*£ü¯Ê`@Ð 0,bCC‰ÁÁøÐP¢¿?Fo %âôS¢˜ÕŽçy–´Z|[T4œæÒu­6oÌ8Š¢ö÷ £Û ÓVÉ9sÊG󤶴_MgÍfƒÙlÈé”0z‘-ä%ËJWW˜^:ܵ+ØÔìèìíf2!Än7ÕÕ•jWëë} ~ R€‰;úè[/¿üë«W¯(ôF¦…íÛ»Ö¬yáóÏ{®¸â¤Ÿüät}¦û»ß}píµë/¼ð¸ü×î&ƒ,+ÍÍ}4ômlìܾ½K³N§¹¡¡Œæ¾ÇWx ½M˜IÂáDGÇP{û`g'~‡èôßlV&„˜L|uuquµ·ªªˆ¦¿UUÞÚÚb\€A/Ì ápbp014×§¶4Óíï¾M¯ÎPV«Ñëµ—”8hvëõÚ‹‹÷ÞözíEE6‡í>&*“‘Âá½½‘Eqx®­¾7ò¾‹y"[–eJJ´ˆ6g0ùèE³Ù@KrñãIRöìé£Q®VÒÓ¡×smm rµ¢dºp0’ÉÌ‚×?ýô¥§Ÿ¾°Ð{™.$IyöÙwï½÷OÅÅŽ{îYuâ‰õ„ø?ýÓíñxša˜;îXùoÿöÕBo&ýv¬å¾Û¶uf2’ÏçÔŠ}—.­..¶z›0óȲÒÓÉIÛÛãôŸÏU[[\]í­©)®©)®®öÖÖãÅLOz`ÆËd¤xootp0Ö×ëëh‚«/Ï•¤½£pívSI‰S—àÚµìV w‘ ŒE’”ÁÁX$2\D«ÕÔÒÈvô¢(J¢˜Ú¼ÇcÕÚ Ó¶9#Ésqr€É ŠÙ¦¦`N—?-Óõùœtž®¾Ñ.óÀ!·sgÏÉ'ß÷æ›kü…ÞËô Fo¾ùÿ½úê¶³Ï^rç+o¸aã_þò=E³,ó›ß\±bÅa…Þ#L‘lVniéolìܺµuË–Ö={údYÑç¾ÇSãñØ ½M˜Á‰t{û`[ÛÀȯÁööžžˆ,+„·Û:ú–h°Ïç,ô®a®CÐ Ó,+ñÁÁx0ˆ÷÷ ¡00…¢ñ¾¾X4šÔ¶ÛM>Ÿ+'µÍ¹ .šh4™Ó™Ž°ÕÚ§Ð–çY¯×NƒX“‰×ÚŽ³Xç s\2™iné3ݦ¦`($B† Šô3ÛéÀTzõÕmW^ùë={î5™pÕ"—^úøÖ[ÿ¯²Òóé§Ú"Ë2V«éõׯ­©).àÞ P‰ôŽÝÚ|ßÝ»CªªÒÜ÷Øck—/¯=ê¨J«Õx`wþ£=÷¯ÿzÜ ',8´{†J›þÛÔlj µ·¶µõ ‚H1¸òrwÎkÈyóJm6S¡w s‚^(°lVî鉄BÑPH…„h4Io„BB(Õ' Ô–:|>—Ïçt¹,ôýårYý~'.ÁÀ\–ÍÊCCqšÎÒ\V_h›o1OdË0ŒÓi¡ó¶AÖi«d¤¶0mÅbbkk?Ítwí¾$Gß$ʲLUÕ>™n}½¿¦¦á У¾ñì³ïmÝú³Bodúêí ŸvÚápBQö^Ð6Øêê’?ÿùÇœçÁ¬‹‰;wöh¹oSSãØyóJi±/ý}‚?½&“™úúëE=óÌEëÖW^îžìÍÃL¤¥¿ú®0C4ts¹¬º—š¾†MM±Ói™ì]‰b–eT:Í)zæ¢xùŽ,Ë9ë<Ï|òá¿úÕ÷†)ÈÆ`z¢/h“çmÛ:úúb<ÏÖÕíÍ}—.­6¸¼_»eK˹çþœÂq,DZ?þñi?øÁ ¼x€‰H§¥`0ÚÔ¤“Aè«Ó®®0mþ¬Oµ@Ñ!<}½ûîþíüÇißþöqcý ‡YA/ÀÜ'î¿ÿ/Ÿ~Úþê«ÿyÈï\ŸæƒÑîî0r»»Ãýý1úÍŒe™’Gy¹Ûïw•—{ÊÊ\%%Ž’í·\\lgY¼(€Y%“‘Âá„ÖY‡GØê{#ﻘ'²¥'OZD«/´u»-ã,"µ€Ù'§fBŸéò<[Qᩯ÷ëGê–—»q… f„o}ë‘ |÷ܳªÐ™¦¶oï:ãŒôµ¼z,ËÜxãYW]õ)ÞÌ ¡PT+öýä“öÁÁ¸ÁÀÕÖ–Ð&Ï‹U-XàÓ.Kþò—oÝyç+t4!„ãXÇzóÍç¬Zµ¼pÏf0ÚÒ2çEìîÝ¡T*C1ù²2WÎ++=ÇÀcýæ7¿á†„ŸÏyà g}ë[Ëp½}ÖCÐ 0Wd2Ò“Oþí^ÅŒÁÀïÙsÏ}«P5¢!n”†¸£Ó\ÚcYKsËËÝee®òrwy¹Ççsâ: ÌP’¤ Æ"‘á"Z}¡í‹y"[BÈÈÀÚümé"k‹B[˜¶‰ôo|~Î9K'éþUUíèʹÖÖ6 )BˆÙl i®¾™.ÌhK—Þzå•'ýà'z#Ó‘¢¨gžù?Û·wŽôBX–Y¿þª¯~uþTn f(YVvïmÛÖ¹m[Ƕm;vôd2’×k_²¤jñâÀâÅUÏ?ÿÁæÍ;dyï¿7–e…|í]w­jhðpó0›D£ImÂ}¹ÛÚÚ‹9úwÁŸÅò%mê×­ûÃ3ϼ“ÉÈ Ã0 )-uüøÇ§ûÛÇX3‚^€ÙO–•ßýîûïþ“ ¤$iøhï¼süy¥ãa4šìè™.0Howu Ñ·³Ñ4·¬Ìí÷»**<#Q.Ò\˜TU„”(fµšÚ}Û ï]¤smÇJmyžõzí4ˆ‰o÷iƒœw± OàPÅì³Ï¾÷ÐC›,Ã'ŸÜzðwaí– IDAT¨(jgçp¦»kW°©)ØÑ1ØÛ¥^¬Vãüù>}¦[_ïóù\ÿ¸ÓG"‘®¯¿á™g¾wÚiGz/ÓÑν×^ûûÏ>ë–$™ç9EQF'¾,ËØí¦Í›×TVz ²I˜ÑÚÛ·li¡%¿Ÿ}Ö­ªª(fGÆóœªªÿöo'¬Ys†Ãažú}Â\wôo{û ý,mþL‡þҗǵµ%úßýîo¼±SûeU%µµ%kמqÖY‹Ñâ~VBÐ 0ËmÞüù-·ü_{û€¢B†ÿ¿3 óÄ—œyæbí°xkkKKKKkk?ýBß,Ï0Li©³ºÚUW{«ª¼ÕÕ^Z­‹4¦ƒlVŠÓt–æ²úBÛ|‹y"[†aœN‹ÙÌë mi.;Î"R[˜S²Yù¹çþ~ÿý‰F“Š¢2 ÓÒr¯É´óêdYéê ç -ëé‰Ð÷’Úí¦ººRšéÒ«WÕÕ^—Ë:iO`ºøüóžSN¹ï­·ÖÖ×£RpL²¬47÷mÝÚúá‡{>þ¸½­m€aƒ£o "#=ü_ý:$pp0úú¢K—®'7á8Öí¶þìgçœþ1ˆÍ`j„BB[Û@[ÛmrCE"IBDZååîêêâšoMMñ“Oþ-r¾œ–¤uTùO~rÆ©§Yˆg“A/ÀxÂáp*•*ô.öÇã±X,„;{n¾ùÿ½ÿþ–ehGeÑÈqÆ¢ùóK[Zú[[ZZúi¦k4ò55Åfs¿Ñ˜**²ÙŠŠìEE6žGc€Cã”SN©««ûÒÃAt:çâÏ¥Š¢ö÷ ¢8\D«oƒ<öbftjk0pEE¶±Ú ÓVÉf³…¶“§¥¥eóæÍ…Þ¸+®¸Bÿa:-=õÔßy䯱˜¨({¸'“Å,MsõµZ¦ëtškjJôµÈt`.{å•m«Wÿïž=÷ûñî™ÉÐÓÓSØ L\WWdÛ¶îíÛ{>þ¸³½}HQT–eE=唆»ï>§Ð»›%ÊËËæËgâ•UBÈÖ­«W¯ÿ†!ªJ–/ÜpÃiŠÈ¡<O&£¶µ ¶·´¶gÀ­­}}ÂX©DZ²¬}tõM7½dIy8žâ=Ã!¤??#èÏŽ;úûû ½‹ýsÄGb¹í¶?¼ôÒ'Çj½šõX–)*²Ùíæºº’ÚÚ’ºº’ºº’ÚÚ⊠DZ\pÁ† ¦~çsÁúõë/¸à‚±>«ªêÛo7=ýôÛ‰DúÅ4•› é´‰$Æhƒ<¼(ŠÃsmÇ*´å8¶¸ØNGØêkjÝnË8‹Hm î…^¸ð ½ 8pÚµ‚LFúßÿýûϾyp0®ïD!„yöÙïvÚQÉd¦¹9¤Ït›š‚Z%Ïç¤ótõí—‘éè=òÈÿû¿ïmÙò³Bo„¼õÖ[…ÞÂH¥¤ææpSÓà_ µ´„Ï;¯á¬³0¬÷8餓æËgâ•UBÈ+¯4¯_¿3§lFÃó,!ª$©d¸¢õ{ß[¼paÉÔî€qÄ¥¥¹“;;‡Ž;î¶ñ¿ãXEQO:iÁ¿üKeE…cÒ6“K~.ð{Ħ¿’’’#œ1Ý ^{móC½õüó[U•¨ªš7å%„(Šjµÿþ÷›ÆºŸU«V½ð “¶M€9jœ~>‘Hrýú-O=õvOO˜2¾o ÷õå$IŒE"Ã#lõ5µc,æ‰l !#k÷¶Aöùœ&“A+´¥‹4¬E¡-À,€7ÏDZH/IÊïÿáü¹¯/F¾È9ÒhdïºëÕÛn{¹£cPë½\SS\[[²jÕòÚÚâšš’ÚÚb¿ót¾DKKmít Šò†3ˆ¢¨--ýóæ• §îÁèëëûüóÏþ~fÖ•Uê¹çZeYµZ,ˤÓ}‘c2¢ÚÚý{×ï~Ͱ8TÆzSNkë—¼µ‚eY†aTUyóͦ;{î½÷Û§œrÄ¡ßL¦Ñçgœ†f UU_yeÛÍ7¿Ù×—¤ÍCÆ×ÝÎd¤‚w˜ãTU}÷ÝÝ¿þõ{ùËg,ËÐ!´›ú$=¢ ¤D1«/´F‡ÃÚ1ó¤¶úÞÈZä@À«¥³#™.z#ÌD̆ [xà/C„EÉÿÓ…ªŽcÎ8cIMMqmmqMMqI jDkkÿa‡•z³Ë2óçÏà  .Š}t`þüR­I P\ZŠ90ìÙÓÏó¬$í­GçyN–UU9Ž]¸°rÙ²š†}½¯´ÔØÖÖ|ÒIHygd<³„¢¨K–¾ÿý%’dííMîØÑ³kW0‘ aÌfže™d2£?^–Õææ¾#Ž8¨IpÀ¢ÑäsϽÿ›ß¼ßÑ1ÄqŒ,+²®?‘HOäN²Yyh(>FäT4:Ü*yüB[†aœN‹ÙÌëkj¯ÙlÈY¤a-]Dj 0[íÚ-.þ×k®yžfßF͹²YÙëu¬YsÆ”í `¶jk8ýô……ÞBÈË/_]è- ¶¶YViÖË0LUUÑÒ¥Õ‹W-\X¹pa¥ÓiÖŽìëë+à>áÐBÐ 0Kp[UUtÔQ%ú;¡ÐÔܵ+ØÔܾ½k÷î¾d2Í0ÄhäÓiiçνSoçΞ§Ÿ~祗>–$E–BTYν„šLf^ý³D"‹‰±X*MÅãb,–ŽÅÄx\ŒÅDAH ‚‹Z°Æb1:&»Ýìp˜N‹Ói©«+q8̇Ùá°8&ºh·›“Ãa¦GNÕ³€i-‘HÇãÙL¦ç+_9nÇŽžT*òŒÙlÅlÞºÞ={p…à`ÅãéPH¨«›.­›`†2ù•+—-\X¹hQÕ‘GVØí¦B廬^€ÙÌçsú|ÎO¬×V‚Á(~wí æ  “D–³¹îÑG?on~ŸeYYVÆ9XQÔË.{¦¸ØžÓ¹ªªÈía«/´ÕQh Ãf3-[V,ûãߢ3·oïjlìllìܾ½+O³,c±E1K_Ì„BÑlV6¸Bo`ko „LŸ½0CÝtÓY…Þ‚^€¹Åïwùý®¯}­¡Ð˜s6mÚaµ.niT•pÜ—½„wÞ¹±¦Æ;5{Î8œ?¿ô¼óŽ&„¨ªÚÞ>ØØØÙØØõé§Û¶u%¢,«ÝÝáššâBo`kiéç86(*ôF`æAÐ 0N?}áÐÐÿ{ä‘ßÏ›·|Ó¦Ïßxãó]»‚,ËBò†¾’”Û“ €†©©)®©)>眥t¥£cpÛ¶N£Jkë@y¹§S8l¡7³\ss3Ã0yoŒ£££ãÒK/UUõâ‹/¶ÛíS±Ñ2Îs¡OáÿøÏó6lÐÖÿð‡?ÆíÛ·B—ËuÖYgµ¶¶Nð¡†innžà‘ ,PÕ}fªqÆ¿‡ChZm&¯ÉÞ Ç1Ç[wÓMgýõ¯k>ýtÝüë?ÿóQV«‘’Óó0'o3ËÁ¼¤œÈ‘>!„a˜U«Vé_íì×&~ðtxùxÏ>{Iy¹»°Û˜éZ[ûÑ·ù€iß‚Ç7ÖKˆ ^½™ž—2 ¾)†kŒ¸Æ8m7“×ôÙÉÀÏk£Må?½ÖÒÒR\<›¹ÝîµÿŸ½ûŽkâì~I{¯0öQ–‚õuµ®úÖZ÷žÕ*Òi€Š8ZG[ŽWëq´V¤8«‚Š€ „ ’ IÙ÷þq¾×”-#à÷ýøG w¹ß]Æ=÷üîù=kÖ¼ïZ×®] .++;þüÛ·o»"°®†í‚¿¿ÿúõë¿üòËêêjAÁŠ+6nÜØ¿l±¿ÿþ»¼¼¼¬¬ìþýûJ¥rΜ9ͽ`[>*`îܹvvvæææ³gÏ®ªªÂž/,,LKKÃãóù<èè¶—FC,++£©S[˜‘±åìÙ¥sæü‡N7CDK‹‚ ˆHTOt€€¦èH“_·KÞØ¶°ÇW®\¹xñbm@ÏSPPéâÒ“»†º”ê)¸ÕSsm‰6öÞ@W†&€>Fècl@£‚éåàzXè€`J¥?SöH–––;vìxßµîܹ3vìØúúzAº ®.‡í‚ ááá–––ØéjíÚµ¶¶¶«W¯Æ³²²²±±±µµõóó;zôèßÿ- ›|Á¶|Tf̘Áb±’’’RRRªªª–/_Ž=?zôhÕ;þ®_¿>bĈî`»iT0BOO{Ô(¯­[C’“#?^¿iÓÄ?ô”J¡t3ðNGš”øº]ÚðÆÛ~‚,[¶,44”ÍfwѶô0NN0¢·TOÁ ¨žú›kK´±÷º24ô1BcL/×kÄ‚D/üí·ßb%‰™™Ù­[·‘Édßÿ=F³¶¶þþûïe2™\.߸q£ƒƒƒ••Õ¼yó°Û¯>øàAlll°W¨®®^°`¥¥%N_µj•X,ƪ$&&:88Aß~ûÍÃã¶¶V©TÆÄÄxyy <8)) +PÐB5ƒ›7oúûûëëëÛÚÚâ'ƒÊÊJ===ÕƒÓà84¹"‰D:qâ„———••ÕŽ;Ξ=ëììlbb-ÐøM*‚ܹsÇÍÍÍÌÌlûöíØÞݹs'**ÊÓÓÓÕÕ5**êöíÛØ’S§N½té^’âÊ•+S¦LÁ_§ñaiËÁlùÈ,^¼[²¦¦F__?55µ-Á4÷Ξ?ÞËËËÜÜüÇlnIE:Ô·o_ccã‘#GÞ¼yûì5ÞÁ–¿V ,¶p||¼§§§µµõ—_~)‘Hš|²É·õ}9;[-Z4ì×_¿=ºo§¼  ±ÔÓ¤Ä×mКj_èÆ>>>ººº...gÏžm°-ì¿ß|óMŸ>}–.]Ú ”ÒT J¡PìܹÓÃÃÃÈÈhÈ!Ïž=k!¼ˆm´è55’Š ‘³s·ÑÛäéiíÒûÞ½{ûÄš\ iêlÛd—ÒÔéQ©«Ù¸[©Á¾´½÷F£úUTõ€Æô1B#ô1jì7®×ºÍõ hÞëׯ_¿~Ýò2.\pppP*•(ŠÆÇÇÛÙÙÉd2Eøá‡É“'§§§¬]»vçÎÞÞÞéééƒ ZµjŠ¢999ªßÄÙ³g5*///==½_¿~›6mÂøïÿû×_ÕÔÔ´LRR‡Ãéà^O:«Sß²yóæÍŸ?ŸÍfÓh´gÏž¡(zøðakkëØØØ²²²[·nÑétAðlü@(jkk/Z´ˆÅb;wA.—‹¢è‰'Ξ=‹þûਇòòò&WDdæÌ™B¡ðرc‚L›6M(>|û5G›zS¢¢¢Æ¢h||¼±±q@@Š¢ÏŸ?×ÕÕ­­­E[{G^½z… ˆR©Ä[`X´ø.àÖ®]‹ Htt´ê“‚¼zõJ$ …ÂÜÜÜ6wd|TùôÓO…BáÕ«W±”Ëå999ØÇEÑ;vøúúbKfeeÙØØ¤¦¦¢(Z]]­¯¯5srrš<,m9˜-™ßÿÝ æÜ¹sÞÞÞØw¤å`šûH 2eÊ>ŸôèQAªªªš\òèÑ£ööö·oß®¨¨HHHpssÃŽXãlákÕøÀb ;–Éd>}úÔÍÍ ßÙO¶ú­AäâÅ‹­.ôX-¬VSg“²AkªM ššC‡•——?~\KK kH¨¶ý°h™L¦žžÞÉ“'l·q jÏž=ªûkgg×\¦Á¡ëºFKß;"#ƒekûunnG;s:K[z–Ÿ¾ÑÖ.½7mÚÔ¸O¬Éµš<Û6Ù¥†¶ØƒÔ–'ÛÞ{£9ý* ëº ‡“””Ôêb-kKÏ* }ŒÐÇ}Œïÿ íx ßq¸^ÓÀëµÆï\¼Ð’¶4Gjkk ’““Q1cƺuë°çûôéS^^Ž=NHHðóóóôôŒÅžyûö-öXõwD*•R(|‹±±±nnnØééém X‰^>ŸO§Ó}||ðŸooïS§Ná œ>}ºå_y‰D’™™YSS£P(îß¿· &OžÌãñЦaØqhnEA^¾|‰¢¨T*mð[ ñ›òüùsCCC©Túí·ß®_¿žJ¥òùü;w~òÉ'hÞì1V&%;;ßw|0J¥râĉ eΜ9ªÇQA¥RGŒÅÙä6n„Ý»wEQ…Bï F ¬Y³ÆÑÑ;Ø_CCC±ç¹sçÆŒƒ?ßäaiõ`¶zdär¹Mbb"Š¢Ÿ|òÉŽ;ð°[¦…w;{á4¹d¿~ýΟ?‡_ý;bw°…¯UãÛ`á‹/6þbbO6~µÆ/‰^½D“…êlR6hMµ£ Äãñ¨Tê®]»ø|¾R©‰D …ýwÛà—_~166...Æ·Ûd ÊÃãñþ6žª®k´@¢Ô)>>•ÁøV*•È;méYj|úF[»ôn²O¬Éµš<Û6·z =Hmy²í½7šÓ¯Ò °®ëÁPg¢úQèc„>Æ÷ü†ª-Ñ ×kx½Öø½ƒÒÍt”¾¾þĉ¯\¹R[[{ãÆ… bÏÚÚÚ’H$‰4f̘‚‚‚¢¢"wwwì¯^^^“&MjðRG¡P¸ººbÿussc±XØã>}ú¨eoÞƒ©©éÒ¥Kß¼yƒOÒŸŸïçç‡/àããÓò+hkk3™ÌqãÆ 0àÔ©SØ“5552™ÌÌ̬ÉU°ãÐäŠ###A°º%ª1߃”””|öÙgþþþŸ¿qãÆE‹áO†„„¬[·®¨¨(==}ܸqû÷ïŸ;wî† °¢%+W®,**®©©A„J¥NŸ>ýË/¿,((xýúuxxxs÷ëN©T.Z´(,,ì·ß~»{÷î7Y´hÑ÷ßÏf³oß¾ÍщD"•Jµµµëëë7n܈ ˆH$ŠŸ8qb;VlKØßA>ùä“ 4ˆJ¥Ž5êÔ©SŽŽŽŽŽŽH›ßOOϵk×~ñÅb±XuP]¶l™ÏâÅ‹ùî»ïh4ZXXX»wû¨4I DDDDEEéééeýþW …2yòäeË–Y[[·zXZÖ–#3lØ0¹\5wîÜj.˜¶¿³M.ºzõê;wîTUUa3agÓVwðرc å]þꫯrssSRRÖ¯_?gΜž@Ò¤Ä[Síh‘H¤±cÇ^½zU(J¥R*•ª¯¯ß¶œwíÚµ{÷nì¿M¶ ¾øâ ÕýŒŒl!±Æk5y¶mruÕS°©©)‚ gΜ …{÷îUÝts)ïÛ{£!ý*=¯1}Œª ú5ê ×kÝæz­åZÏôrmœIEÑ¥K—ªÎ¸. .\hfffaa±téÒÚÚZ±X¼jÕ*;;;“™3gòù|Ee2ÙСC ±µx<Þܹs-,,lmm¿ùæ›úúúµé[¦¶9z÷íÛçëë+•JQ‹‹³µµåñxR©4**ÊÙÙÙÐÐpðàÁØì-èGQtÏž=æææ ãÀ3gÎ433Ã&®À49™J“+Z[[£*ö›{ÜøMAQ´ººZKK+::EÑÚÚZmmíÕ«WãjùQ}\__ïáá±~ýzÕ]8uê”ŽŽŽêÔÉÉÉd2ùÊ•+ ‚l ñ6ø¨4ÞÁG5ù#/yïÞ=Aöïßß–ÃÒêÁlËgõ‹/¾ÐÓÓ …ø3­Óöw¶ñ’ …â§Ÿ~ruu5117n\||¼••U“;Øx2’v[øØ±cŽŽŽ–––aaaøÎ6x²É·Rsôè5Ú2Ï«š›” ZSík]¼xÑÕÕU[[»OŸ>ñññR©Tu[h£žR©3f jã”\.ß¹s§›››ÁàÁƒ±;ÁÛ^g5Z`Ž^P'_߈ÇïÅ?ZíYjòô¶véÝdŸX“k¡Î¶M®ÞømjjêêêŠÕ³Eÿ}êoЄh°z{o4ª_¥ÉÇØƒ¡¶9z¡±qTÐÇ}ŒM¾•ªÔ3G/\¯iæõZã÷Ž„¶mÒz'l$¾··7Ñ´Õ½{÷úöíÛà^ª÷5mÚ4A.]ºÔÁ`rssÝÝÝáG¦7Û°aCaaáùóçÕ³¹›7o2 ___ì¿W¯^ŽŽNMMíàË6ùInßÇ›D"]¼xûŠ=Û¥K—¦OŸÞñ¦ 4)Û®³-õÞh•H$öô\wæÌç£G÷%:–w:¥g t–÷íWéÄ .—ûöíÛ?üð½Öj ³zV¡A ±ŽÿVwÊw¯çûè¬@ã÷J7è|b±8??ÿĉŸþ¹Ú6šžž>gΜ—/_ÖÕÕ=}ú4""bÉ’%jÛ:ð^rs¹‚¸¹AV4DH¿ úh•Ñèž={6iÒ¤åË—wü¾°¶[½zu]]]pppEE…‹‹Ë¢E‹–-[Öñ—566nü:M> @ h´@·“—ÇÕÖÖb0̉hœöõ«@cô<ÐÇzŒ®û@éfZ¥›J7èÁd2›-(/¯./”— îßO¾|9Z.xoPºÔæ‡~ÿãŒ{÷ÖÈ? t3ÀhTéf@šSº¨_ã÷Fôh“úziYY5›-,/¯.+«æp¥¥Õl¶€Í®ærEØ2 ÙÒÒHWWA&ë- áòò¸®®VDG€n ½ÞQ(”,ŸÃp8Âââ*6[Èå ‹Šª8Ÿ_'•ʱŌõœœ,i4cÍ80ÐÉÚÚØÆÆÄÚÚØÆÆØÄDy7*”K讚./;jT_¢£@7‰^è]d2EYYuqq›-øWÈá9W+“)!‘HÖÖF4š‰££E` ³±ƒƒfL£™ÐhƺºT¢wèÞ”J´  ÒÕŠ$ ý Ñ =PM¤´”ÇåpþIè uØ2 ™N7ÃÆãæÐut´ ÑŒÍÌ ´µá‚è*¥¥|±Xææ‰^´\·@w%Ôáé[<¡‹ Õ•HÞ•Y¦R)vv¦Øx\–ÇÅþ™›R©bwèòò¸‚Àˆ^t$zh…X,.++#: uËÏÏ?räÑQt9Oª§GÑÓëòÎM@fbå ÐJ%ZQ·à£é IDAT!T‹—\VÍæêØÙ™aãqƒ‚œ±’˪“æbïÞƒœFÓ!*ð^ ´¢BRRò†è@ WÈËãš›˜švšnNuuµ\.': @°šššNyÞÙ³ @w_Ïî¨ñï3$zh…H$‰DDG¡n/^¼X¶lÑQt>2Y‡Jµ¡Rm´µm¨T2YO Hª«Kë² ’tu] P(æ\î1•µu5’–©é¸šš™ŒÓò’zz^ ETZÒòbŠ‘Ñp¡0I©·1¨“B¡d±ø*ãq…xÉe>¿N*}×Ùjb¢Çõô´;Ö+¹Œ ÕÕIsy¼ÚŒ VFë÷ß™ÖÖ wì`*5\î1¢ãBÑÓó22ú€Ç»&—ó‰Žått…Â{r9èXmm; ‹i(ªci9sõêKýûÓû÷§{yÙéè@×t¾¼<®fç…~ЉzgÏ*Ý“É$:Ð H(Št•úzéóç…ÉÉùéé¬ôôG¨­­åëËðña9cƒ]ºb»uuÒ_}zäȽÒÒêÑ£û††Ž ri㺉|îÜ#ÙÙ츸0«– ‰ñò²ÝºurË‹ñxµ'î54Ô¹r%ÔÀ†ÔÄÉeeÕøx\Õ’Ëø¤¹d2ÉÊÊHu<.–Ç¥ÑL4'›‹S*ÑœNzz ÖÖÊÎf …õ::Z>> †ÝLJáâbExuèÂÂʯ%$¼ùì3ÿÍ›'vQ °}=bnØ[R :’ð·X ¨ËÎfcohz:+'‡ƒ¢(Vô{Cýý-- ‰ z†iÓÒéf{öÌ :tcèô(XocJJ–ÜÍÏçÊåJ¬[*(ÈÙËË®K»9ALÌ_—.%K¥ò9sþ³hÑPgçV’µªärå矟|ü8çÒ¥~~­.?sæ!{{³]»¦·ºdqqÕgŸýÒ¯ýÔ©%ZZ䶇€÷¢P(+*D¥¥|6[P^.(/¯./”•U³Ù6[€Í56Ö³µ5±·7£ÑLììLlmMmlLììLmmM¬´Üª™Ý¬¬r‘H¬«Kíߟ®Q™]Ÿ_»}û­ žùú:lÝâãà :¢&(•èÕ«Ï£¢®ki‘¿ûnܬYÉ$¢ƒzG(ge•áyßÜ\ŽRù¯¼¯¯¯ƒµµÑa@·4`ÀæÅ‹‡­X1’è@ÐA¢ÐíUVÖÚ³çO*•>aÊ”ÞþêvíúóôéGýúÑ·l 0À‘舚PS#yû¶Ïûæåq %–÷õð°ñð ùø0<=mˆºÚZ‰‡Çº'}üq?¢c@7‰^@÷#ËÒÓKRR °ä.‡#¤R)~~xo£››5…¢¾ÞÆ/ŠöîMHL|K£™,_þÑŒƒ ÛS9<<öÌ™ÇÇŽ-;¶­—yË–FQôÈ‘m\þñãÜÙ³ñŇk׎oG„@oÃç×b©ÜÒÒêòòê²²êÒR>ö@&S`ËXZÚÚšÚÚšÒéfX*×ÞÞÔÆÆÄÆÆD[»ûÍl*‘ÈÓÒŠñL^AA…L¦0338Ð khyxØÐéfêlkµCrr~DD\v6;,lÔòå#õõ»GZAÜ\nDDìƒÌÉ“DD|fe¥Ñƒekk%yy\¼ÔsZZ‰T*76Öóô´Á[æ4 O±!^¿.;v׃ëÜÜ4qš^tèt(Š2™<¹‹df0Ì rÁº¼½íÕ?õ,Š¢wノILI)ðð° ÐîB…{÷ÞýñÇßùeÖäÉÛ¾Ö—_žêOŸ^ÒöUâãSCCÏnÚ¼dÉð÷èi”J´¤„Çá8aqq›-ÄfÏU7—B!Óéfø\¹ŽŽØcGG M.³ÜFõõÒŒ žÙÅZ†ŽX¢ÎLJ®Q“Ú¶¬´”uýæÍ´‘#ûlÞ<ÉÅå=&ÑÐ oÂÃc‚ú°°QK—~¨9¥°[&“)òó+ðÊÞ,±Xfd¤Û§-ž÷uw§iNaj P||jXع¼¼»Ë<4S÷»ÁÐKðxµ/^&'$'çgg— …b==í&Lð%¼ÃQ&S\»öòС¤ÌÌòaÃ>ÕÀ@gñâaóçµ´4ì”W~ú4oÖ¬ÃÁÁ»wOo_å矾sùòóÇ×·c]™L1oÞѬ,ö_Ñéfíx K‰DⲲ꒖ÊÅ—•ñÙl\®D„D"Y[ÙÛ›ÙÚþ“ÊÅ’»VVF Á…@Ô©¨¨ŠÉd«fv±Ê(*™];cc]¢Ãìd"‘øÇÿ8sæ±»;-::äƒ\‰Ž¨ ÉåÊS§íÚõ‡¾¾Îºuã§LØ‘yC4“jÞ÷ի⊠‘jÞ×ÓÓÆÇ‡ÞfÅAPuw_»ysðìÙƒ‰ŽÝ$z]K&S¤¦a]6))EEUø€’  —À@gM(ÈÜœçÏ öíKLL|kkkºlÙ‡3g20è´ñ¬)Söîyèмv÷DŸ9ó÷öí·23·¶oõšÉäÉ1‰üÚµ0SSè5@¹\Éå Y,^i)66—_ZZÍbñJKùB¡[ÆÈH×ÞÞŒN7ÆçÚÙ™2æ¶¶¦66&=¦Bï{Q-‹’ž^Âdr‚: …ìêúÏPHªŒÒé”Jô×_ŸîÞ}[.WFF~6yò@2¹§e=›Äç×îÙsçÔ©GÎÑÑ!=».‹jÞ/9N£cŸpÆ€NææD‡ íÁf 6ÅÆ®ìÙw)@ Ñ è|ÅÅUÏžåc=2oÞ”ÖÕIÍÌ tÂ’»¾¾> EÑ»w߯Ä$¦¤øú2V¬9n\ÿÎíGÎÍåNš´ÏÓӿܹ¥ººÔv¿Î­[iK—ž.*ÚÕîdyUUÍgŸí53Ó¿ti…¾>TÆÐ%”J´¤„‡Ï˜[TTUTT…ͤ+ÔaË길XÓhÆ4š±££>u®iïÌæªR*Ñœœ2»ÙÙåB¡X[[Ë×—'½\\¬zÉzñ¢0<<öõëÒ †®Zõq/♑Á }ñ¢0$dÀÆ-,:§ØŒ†ê²³Ùxê7'‡ƒ¢¨jÞ×ÏÏ¡7fô åL›v -- ~¸ÐAèt¡°þÙ³|ÕÛíU{ƒ‚\-ˆŽ±M$ùÙ³Ÿ<ù¨  bÌïÐБAA.¾‹?qâ^kk£K—Vu(çýäIÞäÉ1¼8,,¬œ8q¯ŸŸÃñã‹4vt5€nA$T`Ü¢¢*<³[VV-“)¡PÈtºžÄut´pt´°¶6¶±1î…éº(ÊÜ\.Þ¸ÊÌ,«©‘èêRû÷§÷ÂÌ.®¢B´eËõ«W_ ä²eË$oo{¢#" Š¢W®<ߺõ†D¢øî»,ÚÛZqB¡8+« Ïûæær”Êå}5sRÀœ>ýxûö[YYÛˆÝ$zí¡T¢¯_³’“ßͶ›—ÇU(”6X¯JP³——]÷êy ë½öìß<^mppÀÒ¥öë×%]‡¢àà}ZZ丸°Ž×šËÎfôÑIIk<=m:ò:¯^Oz 88`çÎi @§P(Y,~ËÃsŒt­`xnÛI$ò´´b$$F$ÇÇicÓ # **D¾¾‘W¯®<¸£óú$&f.\x쫯Æ~÷ÝÇ @ÐxxnQQ‡#àñjaxnljÅ2|À.žÙ55Õ töð°Á²SnnÖJ/ÍìªJLÌܸ1®´”¿rå¨+FêéÁdÿRPP±qãµ»wߎãÂ`˜ñjk%oÞ”2™œìlvzzIZZ‰T*76Öõô´Åó¾îî´^2µ3@Íž}ØÂÂpïÞÙD€n½€faý))Xr—Ã’ɤ~ýèݽó‘ÉdÇÄ$ÆÇ§ê.Z4tÁ‚¡]:ÙD"Ÿ=ûpn.çÚµ/œ,;å5år¥“ӪÇçïÛñW‹}v>::dá¡5Ý…P(.-å³X<‹_ZÊ/+«.-å³X|.W¨P(¡R)4š±½½nnoojggfooF§›ÙÛ›ê~·QW'}ýš…gvóó¹r¹ÒÂÂ0 À*Í6§¨¨*22.!áÍ”)×®oggJtDšëáCfxxlI /4tdhè(]]*Ñi™L‘Ÿ_¡rkE‰D"74Ôñò²Ãó¾ÝýÒн|ðAôÌ™ƒ¾új Ñ ÛƒD/àJ%š“ÃII)HNÎÇû­¬Œ>øÀKîz{Ûô„þÜ””‚˜˜ÄÄÄ·NN–_}5fâDmm­.Ý¢\®\¼øDrrAll¨——]'¾rß¾Ö­?wî:åÕ~ù%a×®Û‡ÏÿäŸNyAšƒËa ÝÒÒj‹WRò.³+Öc ˜˜èÛÙ™ÒéxB×ÔÞÞŒÁ0·²2‚üG;ðùµÏŸb¹%&“Íbñ ¥••‘ŸŸdv[US#ùá‡ßÏœyìâbµeKÈСîDGÔ ÈdŠÓ§ÿøãïFFzk×~2uj Ñi(¹\™—÷Ïد_—Ö×K t\]­ñRÏ~~]}èµ$¹«ëêC‡æúi'ܱ €^½ôvUU5/_%'$'çge•‹Db]]j` sPsÏëT(”±±/Ž˜ž^âïïðõ×cG꫆ŠmJ%úå—çoßθxqù€NûâC‡n›:5°oŽŒŒ;wîÉ… _¹tÖkP¹\Éf JKù%%<|.‹Åg±x‰A2™dmmÌ`˜cCr± †9 Ïí¸ÊÊšÔÔ"<{Äáqt´ðð°ÌnÛ¡(zåÊómÛnÕ×KV­úïüùC`^ç÷Âá¶n½yõê‹ÿüÇ5**ÄËË–èˆ4]ƒ¼ï›7¥uuR*•âìl…s}|0HÐY²²ÊGŽü11q5üD ã Ñ @¯#‘ÈÓÒŠÓÓYØÈ]¬ ³›-(È90ÐÙLJáêj­¥ÕÓFíH$ò³gÿ>qâaQQÕèÑ}CCGª3‹¹~ý•_}væÌ’áÃ=;ýÅ'NÜëãÃØ²eRg½ R‰~ñÅéÇs¯] sw§uÖËè\ŽàßSç¾›IW ¨ÃÀçÍup°ptĦÑ5vt´€Ùs;‡#ÄÊÀâ™]‰äîNÓCžž6pÀßKjjqxøÕ´´’… ‡}ûíX33¢#ê®RS‹#"bÓÓKfÌ´víxss8’ïÃàUÖ_¼(äñjµ´È..ÖøW»_?º¾>Ì h§[·Ò–-;›ûÜA€ŽƒD/=Š¢L&Ÿm·  B&S`ÂaÉ]//;##]¢Ãì*AݱcΜù›Ï¯ X¾ü£Î­œÜªÝ»oÿôÓ˜˜9ÁÁ]ñú¡¡gëëe'N,êÄהɳgÉËãÞ¸ñL†R(”,ÿÿ©Ü2»l¶žK¡ét3•Tî»Ì®‰Žídx› +ÅÌd²ñæðôOŸ>vÆÆ=¶YÕ¥*+k¢¢âcc_8EGOòñaQ·§T¢W¯>ß²åº\®üöÛ. 5ØÛG5ZTYYC¡]]­==m°RÏ:ÁM €¶Û»÷îùóOž=‹ :ôè gÂç„KN.HK+ Å::Z>> FPsPso(XVV}ð`ÒÅ‹ÏÈdÒܹCæÏB§›©9†Ã‡ïmÞ¿}û”ùó‡tÑ&¶m»yï^Ö;«:÷eE"ñ¤Iû”J4.n% E€®V_/-.æq¹Â¢¢*<•Ëå Ëʪe2‚ Øä‘ø¨\<³knnUm»Žjf7=½$;›-Öc <³Û·¯=”¼î ¹\yêԣݻÿÔÑ¡lØ0aÊ”$R—ϬÑ{u»výyúô£>}l££C`nŽŽSÍûâEÚi4c¼Ès@€£……!Ña4×W_ýZQ!úõ×eD€ž½ôR©üÕ«b¬¯!%¥ ¨¨Jµr`P³——]ïéÎÎfïߟŸjnn:rúô B†,_¸ðì»ï.~ÿý¸¯¿Ûu[9sæï;n½}»µÓ_™ÃL˜ð ƒaþë¯_À°0è"‘¸  ¯´Œ Õ…zËšC©DsrþÉìfe•‹Dbmm-__^ŠÙÕÕÚÀ2»æÞ½¬Èȸâb^XبåËGB9Ü.’›ËŒŒ»?ûÓO}##?³·W÷í=‡#`29ÙÙlì§#'‡ƒ¢¨jÞ×××ÁÚÚˆè0äÓOö÷wìÄ ˜Ð›A¢€n ïMHI)ÈÌ,“ɦ¦úÎ>>ô  __†±±Ñ1ª[B›cÇ¥+^º5±XV\\URÂ/)á±X<‹WRÂ+)áUVÖ B¡­­ét3:ÝÌÞÞŒN7··7Ãþ CB‰"‘ÈÓÒŠñLAA…L¦ÐÓÓî×ÏÏ캺ZkiÁíM]¨¶VòóÏ Ç? ÑŒ£¢&ãMtD½ˆX,Û¿?qÿþ¿llLÖ­?a‚Ñõp"‘83³ ÿÍÉÍå(•¨±±ž§§ þ›ãáAƒråôUU5ýûG\º´|èP¢c@O‰^4šB¡|ó¦Oîæåq ¥ƒƒEP3Ö/Я½—¸‹eçÎ=9qâaQQÕèÑ}CCG>ñXZZÉÔ©û?úÈëÀ¹j+•Ê]]×<8ïÓO}»h o/>±fÍ'¡¡£ºh á$yqq–Äe±Þ¥uKJx"A(²­­ ƒaÎ`˜3Ø{{S[[S J¸úziF ϲäçsår¥©©~ÿþt,Ëâæf …+Ôæòå”;~‰êW¯þdþü!ð!Dyyõöí·®\y>t¨Ç–-“`€©ÚÔÔHÞ¾-Å~‘˜LV–ÉÈH·O[<ïëîN#ðŽU@WKNÎÞ÷âÅF[[S¢c@O‰^4NI ïéÓ<ìâ«hl¬7h vÙïãC§ÑLˆŽQ#TW×?þàôéÇ"‘xΜÿ,Z4ÔÙ™øŠL&;$$Æ×—qêÔµu\=}zP—Î|îÜ“5k.ïÙ3cúô ®Û N ¨Ã*-ã%—‹‹«ØlD"GD__Û͆ϛ‹Õ^† t5Muu]F Ÿá»OÎÜÜ`À'hM+3³,""îÉ“¼É“lØð)¼ „{ü872267—;oÞÕ«ÿkd¤KtD½ŽL¦ÈϯÀ+6¥§—H$rCC//;¬Â³‡Íßß'ùí·§‘‘טÌí0”½¯¾^úüyarr>^™L&õëGÇfÛ…Q&•–òºwáÂ3 …üùçÃçÎbmmDtP‚ %%¼‰÷2æ.|¡§§¾‘Ösæ133Ø·ov—ne×®ÛûöÝ=yrñÈ‘^]º!P¡°¾°°²¹„®–ÙÞÞ ÏãBBWÃUUÕ¼|Y¤:·‚ VVF~~ÙÕ<^펷.\xæáaòÁ®DGÞ‘Ë•.<Û¾ý•J^µê¿³f}cI Ô ï›‘Á‹eT*ÅÙÙ ÿ5óõu€É•èÖ¢£oþKWWë®Þ´P(.,¬PMèr8BG(Ô!B¡éô† ]ÍØÜÜP£Î& 9EEUL&[5³K"‘ÜÝixªÃÓÓÒóèÙ³üˆˆØ¬¬òùó‡®Zõ1¼G.#ƒûüyáäÉÂÃ?Ó’9§P(Y,>þcøüy!Ÿ_«¥Evq±Æ ½½í 4åFX@“† ÛìÿÝwãˆ=$zè*b±,=½$%¥KîªöH¹:»ºZkiAAæVÈåʸ¸GÞýº40ÐyåÊQ£G÷Õ´™lêê¤Ó§`±øqqaNN–êàŋ ~yö,‚Á0ïêm‰Å²éÓr¹Âøø¯ û ~-'tÉdƒaŽ't­­mlL,ììL!¡Û (Êdrð´.“ÉêÈd’›Û?™Ý>}lÕ\?¼‹¿aÃÕ„„7#FxnÙâæ÷‡u(ŠÞ¼™¶y“458 IDATs|uuÝòå……ÖÖ†*Áš‹Ãür_VjjQee òïò8™›&à2™ÂÍmÍ/¿Ì  :ôè Óà’Xr+Èlnn0`€SPs` ³——‘‘.ÑavõõÒóçŸ?þ€ÅâOš°dÉpÑA5A*•Ï›w,=½$6veŸ>¶„ÄPW'õô\wäÈ‚ÿþ·¿6Çç×ïÓÒ¢ÄÅ…ÃGÐ%d2EYYuI Åâ•”ðJJxÅż’‡#P*QA t sÕ † 쎰Y-ðÌnvv¹P(nÙ…vTw!‘Ècbî8dii2fŒ7Ñ÷VW'=xð¯}ûét³Í›'åEtD MTó¾iiÅ\®ùwÞ×ÏÏÁÊ îÔ€HùùC‡nûóÏïú÷§ zHôÐ!<^í‹…ÉÉÉÉùX§¤¶¶–¯/ÃLJää ™Ûϯ=qâá©Skk%³g^¼x!ÃdÛB¡P.[vúþýì‹—8ÉðáÛ?ûÌÕ*5U*/¯ž0ággËóç—Á8@UUÕó°ºÅÅï†ê–—WËåJAtu© †¹ƒƒ9ƒaN§ÿ“Öµ°0$:pÐ~ …27÷Ÿ‰'±Y-¨TŠŸŸƒ§§‡‡  í¦nÜxµ}û­òòê•+G­X1¦íÖ *6mŠOHx3fŒ÷æÍÁÛ ÍÁò¾L&;;›=@NgΠь‰€Þ%!áÍ‚ÇsrvèëÃ)½¼©TþêUqz:+%¥ 99ŸÃ"‚uGbÉ]//;(Ùn,ÿðá{.<£R)‹›?¨¥¥F÷ã¯]{ùÂ…äsç>:ÔƒØH–/?SW'=}z‰Ú¶˜•U>iRÌGõ‰‰™C&kV1m€f’Hä%%¼¢¢ªââÊâbVx¹¤¤ª¦F‚ …B¶µ5qt´`0ÞM£ëà`Á`˜C•øžoAaÉÝ‚‚ ™L¡££…e°v”‹‹4¢º¯ìlvDDÜ£GÌ)S®];ÞÎΔèˆ@çxø[XX9oÞ5k>14„Û/º+¡°>+«ÿÎÉá (jb¢ïáAÇ=ýxýú«¿ü2kÊ”ªÏ?}šè Aô µµ’¼<®j6·¸¸ŠÍH$rA´´Èööf0H··áókŸ?/ÄRL&›Åâ+Jssƒœþ?û#F3!:LÐUž?/{ó¦tÁ‚¡ß~;ÖÌ̀舀:¼zUûêUqHÈ€Èȉ>Í h7™L‘Ÿ_fHK+‘Jå:®®Öx©g??mm-¢# ›ñö_µjÜÂ…C‰=$zAïU\\õìY>váúæMi]TOO{à@§  gèšìRõõÒóçŸ;ö ¬Œ°té‡ýúÙT³¶l¹~çΛ˗WØØ¼û<\¿þ*4ôìòå­_ÿ)±±5ðñÇ»££CÔ¿é­[o9rïÌ™ÏGŒðÄž¹x1yÕª‹Ç/;¶Ÿúã´›R‰–”´4H×ÄD¿A6éö••5©©Ex¿?‡#DÄÒÒÐßß2»½ —+ŠŽ¾~õꋜ¶n éߟNtD@­”JôêÕç[¶\—J«Vƒ‘ܽAƒ¼oFK,–Q©gg+ü÷ßLJ¡«K%:R4ZeeOÄ¥K+`št"Hô‚^D(¬ö,_µw’L&¹¹Ñ‚‚œ¡œ ðùµ'N<ÿ|¸ƒƒÑAµ¤¶Vâë»±¾^J£™ÄƆ:9Y&%e-XplÆŒA;vLÑ´ÉÉ""â’“óÿüó;õoEÑo¿½pëVZllX¿~ö?ýôçÎ’Hè!î—.­P<€¶ Å…… é–•UËd Aôô´ÝÝi º4š1ôáö*Ž0=½¤Af—F3Æûô!³Û#UTˆ¬¬Œšü“T*ß·ïîÁƒI††:6L€¹Z{3¡°~çÎÛ§O?rt´ŒŠšôÑG}š\L*•‹Å2cc=5‡º”\®ÌËãâgì¶i--²‹‹5~vè×®¯¯Mt¤h–'Oò&OŽQÿŒKèÙ Ñ z2¥}ýš•œ\ :Ï6îKîöíkoh™;Aaa¥““e äçWüüóë×_è,Z4tÁ‚¡ Š!k¦cÇlÞ¯P(µ´(::ÔÈÈ ›6Åë½ÿ\2Yãº5±¡Æ™™ÛùTËdŠ ޽yS6`€ãŸ¾V*ß\’’ÖxzÚ¨?N.W––ò›¤K"‘Ì¡ê2@EQ&“ƒ—bf2ÙŽD"¹»Ó°Ž{OOdv{¶¼ýxÇŽß33·zHô‚ž¦¢Bôôi–Ü}û¶¬¶V¢££åãà r r†q']áçŸïœ?ÿôÉ“ð&»oRS‹þùNbâ[''˯¾3q¢w™ÉI¡PF±ÙBA¡PÈd2ÉÛÛ>..LGGwÍlºpá‹áÃ=  ¬¬zôè"Q½BñîÌ¢¥E™7oHtô$Bâ ’É¥¥üÂÂÊªŠªââªâ⪺:)‚ ZZd;;3 s,›Ë`X8:Z˜›CÇk/¥šÙMO/ÉÎf …õª™]zŸ>¶0¯÷àókÇŽÝ]ZÊÿè#¯óç—âÏçäpÂÃc>dŽÝwóæ`gg+ƒ(!áMDD—+\¼xø×_10xwÓ!—+<8º¾^:{öà;§$P'G€YÒÓY/_UUÕ ÿ.àØ-nü s…‡Ç¦¥•ܸñÑ GD/èöÄbYzzIJJ–ÜUzäè ™»Ôöí·bbI$dß¾9“&àÏ£(z÷îÛ˜˜Ä””‡¯¿;jT_ Û‚Û·3/>¡úI&“H$ÒÁƒó>ýÔ—¸¸Z2jÔ#FxFFNTÿ¦+*D³fÎÎ.—Ë•ªÏëéQÓÒ¶ÀÐy:X,+,¬,*ª*,¬ÄþU±X<ì;hl¬ëädåäôn„®ƒƒ…ƒƒ…½½œ{9¥ÍÉù'³›•U.‰±™,ðÌ®——‘‘.Ñ‘Ô×K'Nܛ͖É$éäÉEcÇö‰Ä?þøÇ™3œ,££C† ó :L ¡ÄbÙñã~þ9ÁÈHwݺñXYïåËÏܺ•.—+ÈdÒÚµãW®Et˜€ªyß´´b.W„ü;ïëëë`mÝtÅxz’éÓÚÛ›íÙ3ƒè@У@¢ãÆW4šqPK;ÖÅú(SR ’“óÓÓYùù\¹\iff0p –Üõõu06†Ê.§T¢«W_ºpá™R‰’Ɉ³³õƒkI$’\®Œ‹{qøð½ÌÌòÑ£û††ŽlßM¸àà½/^)Ê?M"“‘œ6kÖĄբ-[®'%eýõ×j5o7/;}úA.W$—+ü‰B!oÛ6yîÜÿ¨9$z ¥-)á5Wx™B!Óéf6žž6XN×ÖÖ¤»ÔN-HHx3ztßN€*“)RS‹˜LNv6/vB¥R¼¼ì°Zš>>t˜É ‚¢èÒ¥§oß~­P(!“I66&ŸmÛv“Ë._>2,l”žÔj­Èϯظ1.11sÔ(¯ààaaçð?‘H¤æNœèO`x@C¨æ}™LvQQòÿ¼¯‡Ç»RÏŸü%'‡C¡]\ Ð ›>ÿ|ÄòåzHôu+(¨øþûKÿ6zݺñm\«ªªæåË¢ää‚ää|lô‰¶¶–¯/ë  rqtl8èRr¹2,ìܯð©XI$äèÑEeeü£Gï——W|ñÅG}ûÚg»ef–½³É_H‰„ è¶mSæÏ¢þÀZöð!súôƒÏŸo´³3UÛFss¹“'ÇTVŠš<ŸÉ$wwZRÒµÅ@÷…M¦‹Mq‡§uËËR©A==mwwšê4ºvv¦T*…èÀA'ËÎfoØpõï¿sÿþ{CãyR[&‘ÈÓÒŠñô‚‚ ™LMcœrq±‚ h`÷îÛ?ýto×!¢¥Evq±öñ¡oØð)L}ÞËãǹW1—+Äoš$‘*•àHlx@ÓuÙÙlüÌ•“ÃAQÔØXÏÓÓ?syxÐÞ÷Χ}ûîîÜùÇÒ¥~ýõX¸Ÿ h¡PܧϺ³g—ŽåEt,èQ`´P±X¶wïÝ}ûî¢(‚ ¤””üÆ»)±‘»ŽAú„ ~AAÎ^^vÐGI™Lzî?ÒU{ÉdrddleeÍÔ©Ë—ÔÝo>rä>…Bn<>A*•¢§G­¯—)•¨¦£4ÈE__ûÁƒì3©m£æË–}øóÏ b±´AÝfA”J4;›ýüyÁÀÎj €Nqÿ~vqqUG¯«“æærTGèW••UËd AŒŒt­-°žMl¨®‰‰~WD4ŠPX¿sç'O>"“Éd2)#ƒÕj¢·¾^š‘ÁÂûDZJ'ººÔþýéÆy„†Ž„Ì.hÕÕ«Ï÷ì¹Óàþ6¹\YPPqöìçåïkÈ·9sþ§z±€¢ˆR‰ÎŸôÏ?W©ó–D ùLLôƒ‚\ð*PB¡8+« ;¯=|È>ô |±Yuœ,ut 1¤¤¬õ믖”T¡*¹6¹\‘šZŒ WûâE!ÖÁž^‚u[›™ è4a‚/6£!nM&Ð……•³gU*›Èò""“)nÝJ»?{ÄOõǺ¯~¸%‘Èšü“\®ÌϯX²ää¹sKáW ´…¡¡ŽêxßÚZI^/õ|öìßR©œJ¥8;[ýÿqº¯¯C];]"‚¢Š¢yyÜI“öÝwÛ¶)tºq;z¯œŽ««dyÐé`D/èB‰|×®Û‡%‘H¤Æ%p)²¶6¥¾^fl¬ëïïàèççàhaaHH´ U55’Ù³§¦5™åÅH¤GÖ9;wãºÍ‰ÜÏ/R ¨Çþ«¥E!‘Ð¥K?Z¾ü#ssbck ¯ÖÏ/rÿþ¹&øCNç‡~ÿý÷t …‚ â×Ò¢|óÍØo¾KTH´êéÓ¼èè/_iiQðs…BÊÏßÙxŒˆR‰–”ü+§›Í.*ª”Hä‚èèhyzÚÂdº -Š‹«6lˆML|K¡W’ÐÕ¥::šçæVàcvû÷§÷ïO÷ñ¡»»ÛÀ˜]ÐAµµ’ñãÆÊ}7· ‰Dòð Ý½û=ää@ef–»S©l©§D"­\9jݺñjŒ ôL"‘øõëÒŒ öïk` Ã`˜ge•7^žJ¥H¤°°Q+Wކ›í€šÍŸÌÐPgÿþ¹D€ž½ «$&f®]{™Í®V(šþŒiiQ† qŠ vs³†Ér4_]töì#ÏŸ4î†VE"!óçÙ¶mŠÚët/&÷Ý¥¥R) …rÆŒAß|3ÖÞ¾;Ýô=cÆ!½Ã‡ .•üèsãÆk™™ll4¿¹¹ajê&Ht ”‘ÁŠŠŠü8—J¥`%sU%%­‘HdÍM¦k` ãêjÝ §koo8ЪÚZÉÏ?'=zE‘Æ<ܬYüç?nýûÓ]\¬ Ó:‘B¡œ7ïèƒÌM;mm-2™$˱·7óósðñ¡Ï™3ØÌ¬Üî4Á«WÅ7o¦¥¥§¥•ÔÔHÈd’®.U,–©ÖvB„D"ýôÓÌiÓ‰ŠôHuuÒ·oK32XW¯¾ÈÈ`5wz%“Ivv¦Ÿxk,è…Žž>=èë¯áîgt2Hô‚ÎÇåŠ6oŽ¿ví%‰„4¸žoÀÕÕúáÃuj ´›H$ž5ëð‹Eòî %‘HZZd ‘Ë•ø»L&“LMõ­®\ í¾÷Gù#v÷÷ðáë×êãà :¢÷vþü“ÈÈkééQ„W™–Ë•¿ýöôǯªªEäĉEãÆõ'6$T½}[¶}û­¿þʤPÈ+O`LLô°!þ::ZŽŽ–ŽŽÎÎ–ŽŽ–NN–ÎΖööfpûh‡„„7ë×Ç–•ñ[nŠ“HÈñãðË ºÄÆ×޽ ˆ¶6AHR©œD"Ñéÿcï¾£¢¸Þ>€Ï²4A¤*½- R;jìFÑ(¨1‰šÄØÑhb4&šDÆJ"ĨأHYdQºt)Kg˼Ì/ûn`A¤ì,Ë÷srr`˜òÜÙ{g®û̽£íâbæäô¿ãx_8tPvö6;7))ÍÎMLÌ­¬¬c0%O ™L…ààO‡ ±¢;LC+VüuõjBKÁ`0H’ôñqرc¦™™Ž4cƒž©¾žgm½á?MžìLw, oþ“è-..NII¡1èîH’Ï<>µ¶–Ç` £õD¯‚ãøñIªª2—ÔÓÓsppèàN’““KJJ:%zÕÖòvï~òòe9AÊÊL--•>}Tutzõé£Âb™ZZö×ÕÕè×OKG§·®®F;Þ7sÿþýκ½^¼x³cÇ#KË>óç;  Û¾tJýéˆòògçoôŸ6Í¥s÷ܾZ]_Ï¿víå•+é¶¶:›6 íÜÚgÔ¨Q܃LÕ[h‡ÆFåεklEE…VS**2}}ÝgÍr77×í×OK|þ ôš }Š‹kþúëy\\!ñï·Ì­¬¬¨¨0mšÍìÙv]UÇï\hÝKxxæ©SlƒÐÓS³¶Ö¶´Ô67×27&sÝru¼·pþüù¹sçvF,r‚ÉÔTRÒÿ÷?CU¡°þÍ›s|~9Ý¡A[u|¨€tfóÒ×ÿˆÉÔ|ÛZ$A0H’_][SK’|)r¦í-"9ùµÏO÷ïo`± »4$è$üKžÞütk|¾PK«ÿàÁ^¿®((àæçW¾~]‘—WQ^^Ku™LEE&I y^ ÒôäÉ“ýû÷wÊ®¾üòK//¯NÙ•Dõõ‚ŸŠp ƒÉdA½\A¡©©¬¯ßËÀ@UW·—®®Šžž‡®®*µ@½k‹HO/RRbZXèu]HÐcIHôêé¡ÛíׯŸ«kÓ…üׯËssËòòÊóòÊssË22JrsËÊʪ33+'M’­*W\\ÜY»RQQ‘ƒ%…"hjjÊȉںõýî¡ëOGøû{}úééׯË;ýíÂí®ÕzzzX…d;†}w¢N|aìÔ[x'jj #GZ™˜h—– rÒÒ y<’’‚¢¢b}=¯I il¼zUÔÊÞPà]éé––M—árë23K³²J32J23K8œ¢¬¬*û›ž^ÒÕÕ¬ï\hÝ‚ž±b…1ÝQÈ´Î}½‘¯¯o'î €.Ø.† Ò¥íâéÓ ’|J„‚C__ËÊJÏÚZßÂBÏÂB×ÂBÏÌLïÝ€Ž{בž^„º]ss4(++ZXè5t‘ÇÔÔ4Ѐ|›8q`ß¾êgÏFõÕºcùz³¼A¨««ØÛëÛÛëSCy<‡SH½A0!!'%¥ ±‘¯   ¬Ìlhà‘$‘ž.Oo€|ÓÔìåìlâìüŸ0•ýÍÌ,áó…ŠŠ tÅнèéõþóÏ¥Èé‚LápŠll èŽä½@'%%fŸ>jtG ‡””˜sæxþýwÔ_ø0™H´HI‰éà`äà`4oAŸ/LO/JJÊKJÊ‹‹ËJM-(*â"Í´˜ý€ÖYZêYZb† -ééEï½7î(@>!Ñ Ÿüý½¾wï^ªÞ˜ÐVŠŠ ööýìíûÍ™ãA„@ |ù²¸sçð€žƒÇdf–`D/t OOff:^^VþùÝtcL¦‚­­!&ý€öÉÎ~Ãã è€.‚D/€ÜúôÓ±÷î¥&&æÒ@O”ž^Ä`00£8t‘nŸèÍÉÉY¼x1I’þþþt‡Ó¢—/_2 ‰¢Š@ƒÁ°±±i2?ä{ï½Ç`0^¾|)(ÅÈT0ÉN$®•ÚÒ‘ÍåøŒuî~ÒF¶sv69tè.ݼ3‰Õ¸•¦!ûwVˆÊÕü‡VˆîíFí!>>^QQ188X´<,,LYY9))‰úµ¦¦fýúõÎÎΞžž?üðŸÏ§þT]]½víZ ‹^½zÙØØlÛ¶­¾¾¾#!‰ëî­ï]u¤tð®ÑFMªÜÎ; ÆîÝ»EKΞ=Ë$!!hµ"1 ___ñ.Gו¨¦¦fݺuÎÎν{÷öððصk—( qâñ›››/\¸°¤¤¤‡èxð÷€!O-BüWmmí9sæ´½‚Q:·ŒhÝÚEëÐ.D!õœv!ß‚@÷é]Èxsxñ¢ÀÔ´¯ºº £w•Ö IDATÝ€|êö‰ÞK—.͘1#???(((%%…îpÚƒ*õsVVVbb¢èOååå>¤).Ù Ú®OŸ>6l "##CWW—îpºù>QŸ}6öúuvFÆ»}S&xæ»õ]@Ôf߉ø½£-šŸmj...›7o^½zuEEA•••Ÿ~úé¶mÛHDUU•»»ûÓ§OwïÞ·qãÆÀÀÀñãÇ ‚ V­Zš““sâĉ°°°uëÖI<¼UGªt.ûâUŽ$ɳgÏšššž;wN´ÂôéÓ ?~LDÁ¿Z¯HA„„„ˆïª‹PaÄÄÄìÙ³çÙ³g›6m òññ…!îñãÇyyy§Nâr¹®®®Ty«ö}”Є|·âß –ŸŸž——·jÕª.Šó­Ð.º´ ©A»è.ä»Q û$OÒÒ Y,Cº£ùEŠ)**Šˆˆ »•É“'×ÖÖ¦§§7)‹¬i%Bª$I1qâÄÍ›7‹þðÞ{ž.¥@ÿ%SÁHÔu‘<þüùóç4î§³ês“ýtú‹ˆˆ(**’ý´[+'¼'­³êOg„£Fíþꫳ²·Î-]+g^âŸÞu}‰:ëN×õVTжGtïx×7ßCCCƒ££ã²eËH’üä“OÜÜÜ©uÖ®]ëííÍçóE[UWW›››9r„$É>}úDEE‰þôàÁSSÓ6ÆÿV]z»é”šÜE½¦ŽTƒ.í‰+11‘Á`„‡‡‘––ÖdÍæa´^‘‚X¾|yß¾} º´ -…qìØ±&k6©~B¡pĈß|óM§‡$‘Äâ£EÈS‹hòi>|øPKKëŽÞ‰EC»¨³ê3•ƒéø~š@»íBbH¨³ê3AçÎëø~ÄÉe£@÷éH¿ûôN-bԨݻv]í¢HÞyDïåË—ŒŒÊËË ‚8sæ ‹Åª©©!‚Çã­[·ÎÀÀ@__ݺu<š8åîÝ»¦¦¦÷ïßß¶m›©©©žžÞÂ… EÏô5ߊ ˆ+W®899©ªªZZZž>}š >Ÿ/qóÒÒRuuõ^½z 2„ CCCâß [¨ã>zôèêÕ«...jjjýúõÍÃ`0Nž>¾-Á´tbƒ‚‚ìííûöíûã?¶´&I’GŽ0`€¦¦æ˜1c®^½JͱÓz-C‘Û·o[[[kkkÿðâ>,,ÌÖÖV__õêÕ ¶©®K‹Ä3IiéDµþ™P«‰· J“3F´¡þȉg©ùµ¢¥…­W-â¿'J\ó“Ö½((0>þxdhhlNÎé±¥+vóF¼Š ‚½{÷²X¬Þ½{6ìéÓ§--$$} Ík;í$Þ.…BáÁƒííí{÷îíååAÍ'ÖÊLe+¿ø½£­£É)߃²²r@@ÀÉ“'øá‡S§N())Q«~óÍ7L&Sººúúõ냂‚‚ÐÔÔüý÷ßß¼ù_Õ1bDvvvócµÔßze–ƒ‹¼tªhÛ·žy¢ —}‰WÑ&Ý•³gÏŽ9rܸqvvvmJÒzE"âË/¿´³³£ž6hKÙÛÑ‘k)ŒuëÖ¶Þß`0Ÿ|ò Õß“¸s‰wá3f¬Y³†Ú¤¡¡AÔcl¾yK׺&Ð"Dº{‹h‚ÉdêëëS?7ïãµ´PDb¹ÚÞQG» Ú…Dh7ï!í‚‚î“Ü4O‘Qbk+CÿVy#žõmã“Ë .\´hQaa¡ÁÓ§O©…{öì™5kVNN›Ívuuݸq#õ<Ý{ï½wïÞ½íÛ·;88°Ù줤¤Áƒ¯]»¶¥­ª««UTTŽ9RPPpâÄ EEÅêêê½{÷JÜüäÉ“§OŸ&ÿûìžøq ”••?ú裼¼¼ÀÀ@‚ Š‹‹©Nð¼yó¸\îñãÇ ‚˜3g—Ëýã?‚(--•ØŽ;&OžL’dXX˜¦¦¦««+I’±±±ªªª555$Iúùù;öÕ«Wl6ÛÑÑqûöíâ‘PoX …¢,o“"PQ½xñÂÐÐ0>>ž$ÉŠŠ 555*L=„Ø<ª¶”¥õÀ®_¿®££ÃãñH’ tpp …o †Ëå¶tbgÏž]^^~ìØ1‚ Þ¼y#qÍcÇŽݼy³¤¤$<<ÜÚÚšúøZ¯EÕÕÕâõ ˆ)S¦p¹ÜÐÐPª°ÔÊãÇçp8QQQÖÖÖ¢Â6YØz —æˆ^‰çGTŸ[:Qm©l¤¤½MÎÙ†úÓ ©è•x–$^+$.$ßVµDg¬9‰'­u²6¢—$I>_0jÔîÅ‹Ot|Wm)Ä+¶ÄF¼ŠîÛ·O__ÿÂ… ùùù×®]ëß¿?A’- m)‚4Gô6¿]þñÇâ%266¦.ªMڬ臖.¶¢{GÛ[G“S$~÷¡lܸ‘ ˆï¾ûN´„ú~­¤¤¤I¹žžÄ…âûl^®¶wÔÑ.Z"å½h$ÚEwhÒÑ‹Fî)ÛÍ|—‘–VЯßÏŸçµee€vhO¢·¼¼ÜØØØÉÉI¼ëcgg'š1&<<|РATW‰Íf“$ikk{áÂê¯)))¢Ÿ›oUVV¦¤¤ôÓO?•—— …ªª*@ÐÒæ³fÍ*++#%%z©ã644¤¦¦VWW ‚ˆúAÄÅÅ‘$ÙØØØägj…æÅÆÆjhh466®Y³fóæÍJJJååå{÷î4iµ-“É}GváÂkkkñH¨Ÿ×¯_Oüw–QÈ{êŸ}öÙ¦M›H’ ôññ-—Õ[ËòÖÀø|¾¡¡áÝ»wI’œ4iÒîÝ»ÛL+'–ªB¢$®éèè$: ÿý7õñµ^‹š âþýû$IRï†IOOo²ò¹sçšV´°ùÞÄI3Ñ+ñüˆê³ÄÕÆÊFJJô69cdÚB+¤–è•x–$^+$.$ßVµZÉJ :T7oéZ'-BnZÙlÜ•¦¦&U‰}¼V:~-•«íu´‹–H9Ñ‹vA¢]t‡v!ÍD/ºO¤l7ò]ZDXX¼±ñšúz^[Vh‡wžº™ ˆ>}ú,[¶,99yÅŠ¢…YYYýúõc0 ÃÇÇ'33“ZnggGDvv659*Aööö3gÎli+mm툈ˆ¨¨(ccã‘#GFFF*((HܼººšÇãikkK ’:®²²2‡Ã™8q¢››[@@€ø ½{÷&‚šRüç–sqqQWW‰‰yøðá´iÓ\\\>|1yòd‚ ŠŠŠ••µ¹µµu^^žx$”˜˜˜Q£FíÚµ‹úUb|}}ƒƒƒI’l2Ur+'¹•²¼50&“ùþûï_¸p¡´´ôÎ;~~~m ¦•K=G) @⚯^½rttm2`À€Ö (~›KAá?ÕXTUìììD…•¸P´r&‰NT+›DÏXëmAHŸ¯««Ë`0ÜÜÜ‚h}úÁÖ+’ø’•+Wº¸¸,]º”ü÷ÿNìȵU ¢Õ›BzzºèÎÛÆ{ŠššÚôéÓCBBjjj®\¹²xñâ–6oéZ×Z¥»·Šè«ðššš 6Œ3†$I‰}¼V:~-•«íu´ vAA»@»A£@÷Ižš‡Shf¦£¢¢Ø‰ûמÔEnnîÁƒÇ÷ÕW_‰ROóQÿ0+//ŠŠ¢–S½ÆþýûgeeQK¾ÿþû–¶ª«« …ÁÁÁeeeK–,™:ujYY™ÄÍoÞ¼9qâÄ–‚¤Ž[WW7gΜuëÖÅÅÅýþûïm/cóÀ&MšÆáp\]]ÇŒþðáC*Ñk``Àd2322¨Í_½zedd$ åÊ•+GŽ9{ölDDDKE>|xUUÕ£GÂÃÃg̘ÑzTo-H[óõõ½xñâùóç‡NÍ€ôÖ`Z9±M:Ð×433KNN­“ššÚz[Ê;J|õ0&A‡êÓ·´P´^E%ž¨6V6‰Zyƒ‘,“x–$^+$.$Þ½j‰ë¦'­¹o¿ÁáÇtõ$^±[úhDÌÍÍE¿R5_âB¢]CZ4¿]I,QK$V~ñ{GÛ[‡øn›Ü}òóóW¯^½wïÞ#FlÛ¶mùòå¢×îúùùíܹ“zž ˆyóæ9sf÷îÝóæÍ#IrþüùIIIÔŸ Æ„ ø|~óR´ôy½õÊ,yB*Õ %íh)+ø±Á¹sçöíÛWõ¯5kÖPãrZÙm+I|5…S§NýóÏ?Gm¥ìm!±ì~~~;vì…ADMMÍž={D¥ké¦@’äáÇ©._K;—¸ù¼yóBBB._¾ìææ&úö°ùæ-]ëš@‹ ÈA‹§¦¦öñÇçææKìãµÒñk©\mï¨h²í¢ ´‹–6ï9í‚@÷IŽšCZZ¡]¿NÜ!@Sb£{Û4E•@ 7nÜÎ;ËÊÊ /_¾L-_½zõìÙ³³²²¼råJñ™g¶mÛæää””””””4lذ?þ¸¥­êêêTUUCBBJJJŽ=ªªªZWW'qsÿׯ_Sû?–øÏååå ãÆ555Ô0#jvBìya‰?7Œ$Éàà` jãððp ñ«ÌŸ?ìØ±IIIß|óMKQmÛ¶ÅbÕÕÕ‰AüèŸ~ú©½½ýèÑ£ÛÕ[ËÒz`$Iòù|}}}êÍ.m ¦í'Vâš066¾uëViiéÝ»wmmm Æ[kI’ÇŽ«¨¨h©°ÔÊ£GNOOŽŽ¶±±¶ÉB²UÒœºYâù•º¥ÕÆÊFýPUUE-—X=ÞZZ!µ©›%ž%‰× ‰ É·U­&'ªõjöÖâÈæÔÍ”5kÎ:;o-+«~ûª-hKé$^±%~4âgþ×_Õ×׿téRAAÁ7,-- ‚¸lõ¢R›ºYâír×®]â%zëÛÅ$V~ñ{GÛ[‡øÙ߃P(œ2eÊÈ‘#©)朜¨<.I’•••¶¶¶£G¾yófZZÚæÍ› ‚Ð××ohh IrÑ¢E,ëêÕ«¯^½ú矆 òÅ_ÍÚTKŸWó+³t.ò¤'ª•N5hé²ßŽnƒÄÊ#~¬ˆˆ&“)^ùcccEÝ€&ñˆ´^‘š\]>L}%×RÙßZŠ–ÊN…1räÈ7np8œ .888 6¬¾¾¾IÌA<~ü¸   //ïþýûÓ§O766UζÜS¨Ÿ´µµmllħl¾yK×:´RN[„¨‚dggõÕW&&&ÔE¸yOâBñ}6/×;5´ ‰¤9u3Ú…hçh2Þ.¤6u3Ý'Ynä»´oï]?þx½-k´Ï;'z8àììÜØØH’äÅ‹ûõëG½t„Ëå.^¼X[[[GGgÙ²e555âµúúúµk×öïß_KKkÞ¼yåååÔòæ[‘$yîÜ9+++eee;;»°°0‰›766R/Ç¥´ÔA$Irß¾}}ûö511ùý÷ßçÍ›§¯¯O¶¡ƒ+1°ŠŠ EEÅï¾ûŽ$Éššeeåõë׋TVV¶`Á~ýú}ùå—¢oÕ›GUWWÇb±6oÞ,^ñ£ß¿Ÿ ˆC‡µ%ª·–¥õÀ(Ÿ|òI¯^½¸\nÛƒiû‰m¾¦@ Ø¿¿•••––ÖĉÃÂÂôôôÞZ‹ÞZXjåãÇ›™™éêê®ZµJTØ& ÉVI3ÑKJ:?¢R·t¢ÚXÙx<ÞðáÃ544¨åÏÞ[ëO+¤–è%[¨oͯ--l½jµåD‘m;'¤l'z++ëÜܶøáñvï¡-¥ké‚ßü£?ó|>ïÞ½ÖÖÖêêê^^^Ô#Þ’m¸V´Bj‰^‰·ËÆÆÆ;vXXXhhhxyyQ/Þnå+*²Yå×ÖÖnrïhcëí&7Ѐ€ñ—ÇGGG+((„„„P¿VWWõÕWŽŽŽªªªVVV[¶l9räܹsI’äóùÛ·owrrêÕ«—¹¹ù† ¨ l“6ÕÒçÕüÊ,‹<)Å´–tªAK—ýöušTž&fùòåãÇ/£P(´²²Ú°aCóxĵR‘š\]…B¡OKeïHGN< 555‡ï¾û®¶¶¶yÌ„???ñöÞú%¨É®–-[¦¡¡Q]]ÝÊæ-]ëÐ"H9mâLAAÁÉÉ)**ŠúSó>žÄ…âû”X®wj8hÍI3Ñ‹v!Ú9Ú…Œ· ©%zÑ(DÐ}jesÚ»Oml <“5aaqo] Ý¤Xo¬¸¸8%%eÔ¨Qô0[¶lÉÊÊ ’Îá®^½jbbâììLýúÝwßÅÇÇwp·/_¾´±±!ÿû ‰ [GÍùãààÐÁx:¾Ÿ.:Qåþýû Ð××—‘ýȈΪ?]$2’óÁG^0mšK;6—ñÒµEgÝé:¥Þ¶ã% ãâ↠Òî=´¯àu‘':©&wV]ê¦Õ ã:^‘z8´€æ:«]tV}>þ¼(%ÓhÐÕ.:«>3ŒsçÎÍ™3§#;é±ݧêÄîSjjþر{#"6ØÚ¾s¸mÓžwô‚<©¯¯ÏÈÈ8yòäÇ,µƒ²Ùlÿ¸¸¸ÚÚÚ¨¨¨­[·.]ºTjGïFp¢ Óy{³üü†lÚZRREw,Ð])++ãÛ%è8T$€w‚îS·“–V¨¤Ä´´Ô£;gŠt4{úôéÌ™3W¬X!Í‘Üëׯ¯­­1cFII‰¥¥åG}´|ùòŽïVSS³ù~$.ì.ºèDA÷õ×ÓîÝKݲ%ô?Qor²ö]™åï"ÐhÍ¡]4‡v "ýæ–Vhi©§¤Äì¢ý©›š’©›e¦n–¨[|îqæÍûcӦɟ~:æ6ì¥kLMÝ t‘©‰jh‡Є¬MÝ djêfÚµ±E,^|BEEñÈ‘EÒ‰ z&LÝ Ðã ÎÚ¾}ú®]WÃÓéŽ@¥¥²Xx;/t-$zz¢%KFÌŸ?ä³ÏN§¥Ò €\©¯çåä¼±³ëGw çèè¡vî|ŸÅ2\¾üϪªzºcééEB!ik‹½Ðµèè¡TTOœXÌåÖùû­®n ;9‘–V¨ªªdn®Kw çèè¹ ´.\X™›[6kÖÁŠŠZºÃii…––zL&¾z€®…Þ@fn®úYqqÕܹ‡++‘ëè(§/è)Pl¾èþýûR@¶èééuÊ~JJJРÚ"%%%%%…î(:MgÕ©±°Ð Z6{ö¡?<´\MM¹••Q«Eä¬Þö4ÕNÑ@> EtƒÑ‘­µ•”ô•” ””ô«ª76¾î´Èdƒ¡¤®î\]GBºc‘sJJúÚÚ“y¼7|~ŸOý¿Œ$yRcîܹsçΕòA[  ¤¤£¤d ¤d¨¤dP]S_Ïÿ³¢b_SeeS.7B ¨¢%DCQUÕ¦®.UÊÇUV6b0˜ 9R>®0ðc#ºÃsü„„6;ÍÎe³ó23Kx<ªªÒÀÆNN&NNÆNN&VVúŠŠrøÒ¥ÆFþÎWNžŒœ9Óu×®Yšš4dÑz¸¢¢J§(-­Ã)LK+LMͯ®n BKKÍÌL‡Å2°µ5d± Y,CSÓ¾›N¡LO/b³scb2££3©&¦££áêjFµ/''Í¢¢Êðð”ÈHNttFQWKKmÄ–·7ËÛ›ef¦CWðÉɯýýijª.31é+ýnÜHZ»öœž^ïß_0`@éÐ­ÅÆfN›ö[tô7ÆÆÚtÇr‰^ø••µK–œb³sY4fŒ=Ýáȉ™]E*á$ß™]q))ù+WTþø£ïÔ©ƒèþG<õ›ý&%%ÿÍ›j‚ 45{™›ëv‹Ô/I’NÕ¾Øì\*{­¥¥æéiñofרÀ@‹ ˆªªúû÷_DFr"#9ÙÙo”•¶¤ò»FL&ÍmðþýË– h|òäGZZ´ vÏϯXµ*0..{Ë–©K–xËæ‡.›þüóŸÝ»¯§¤|‡“] ‰^øúzÞªUAwî$ïÛ7oæLWºÃèÞŠŠ*ãârž=ËJLÌIJÊãrë™L++}QÚÉÑÑXMM™î0¥D($¾÷ÓO7]]Í~ýÕcÝd™@ ÌÍ-{ñ¢ =½(-­0=½(=½¨¾žG„¾~o«Ÿ­­á€ýììúkhtô>íVRR•‘–VÈåÖ5yxÂÚZ_”¸åp #"^DFr¢¢^ÕÖ6ZYé{{Ûx{Ûf-;ÃÊCCc׬9;eŠóþýó”•é †Ïþüó̓ïNšäôã¾4f»—ƒ9œ¢ VÒÈ?$z )¡üî»ËGŽÜ_¼Ø{ûöéJJ-¾¦ š¨«kd³óâⲩÿ *‚°°Ðsq1uv6qr2qt4RW§-+F£‚‚Š/¾8óôiÆ×_ct`·$’¹¹eN!‡S(ÊþÖÖ62 SÓ¾ô0 ¿½}ÿú›™étÝç[^^›%¶[TÄe2Œ<<,$‹¯ªªô(=""5"âÅë×庺ÞÞ¬#l½½Yýû÷é¢ ÛíçŸoîÛw{ÍšñkÖL6òäÉ«•+™LÆ‘#‹\]Í觘:õWgg“ï¾{Ÿî@@þ!Ñ ’…‡'¯Zdf¦süøbZ^ Ð]de•FGgÆÅe={––VÀç µ´Ô\\L]]Í\\Ì\\LûöU§;Fš…†ÆnÙjlÜ÷àA;»~t‡F4á3›Ëᥥ44𕔘z¶¶†,–““‰³³©¾~ïv¢®®1))Í΋‰É¤^£Ë`0ll DÃâš><Áã ¢¢^=|ȉŒä<ž§¨È9ÒÖÇÇÞ×î¶ŽÇlس{¾«Ó IDAT·ïüùCè§©ªªúµkÏ]¿Îþâ Ÿ/¿œ   +Ih$’,ÖÆ;fÊàçò‰^hQFFÉ’%'KJª^èíÍ¢;Y!SS ž>}EM[TÄUTT0ÀÈÕÕÔÅÅÌÕÕÌÒROvFãÑ«²²výúàk×W¬³víDš§¢….Åã 22J¨Q¿lvõº_‚ ´´Ô¨¤¯““±­­¡­m¿VjB“·YgdóùBMOOKjØ®]MMÕæTܽ›J½y·¢¢ÖÆÆ`üxÇ#Xîîæ½zÉôéÕÕ |*::ó÷ßL˜àHw8’‘$yâDäΗ¶:tÈ_O¯ýÉ{ù–•U:tè÷ׯ9h)ݱ€üC¢ZSYY»reàÇœíÛg,^<œîphSQQ“ÉIMÍçñFFÚ^^VNN&žž‰Ï ”Ç_~þùßB!ùË/óðà`ÏÄåÖ½xQ õûüù뺺Æ&C~¹Ü:6;—jb™™%<ž o_u77sѰ]-‰û Þ Oæp 54TF¶÷öfÉòàÝ& +ýüŽ–”pÿüócYO &&æ._þ''8rd¡‡‡ÝáÈ¢k×?ùä¯ôôݪªJtÇò‰^x ¡Ü¿ÿÖ/¿„ïðÓOsµµ{úăÐsÔÔ4ÄÄdFE½zòäUBB'03Óñð°pw·ðð°°µ5Äü¥-iläïÜyåäÉÈ™3]wíš-qü%ô@|§(9ùõ“'/órrÞÔÕ5Rb2ŒŒ´MFŒ°7ξ¥Ì.¥¼¼æþý´»wS2rÝ@€D/´IbbîgŸ®¬¬ûùç¹ãÇËèdbÇåÖGGgDE½ŠŠzÅfçòùBËpèP+//kOOKMºì’“_¯\XXÈýñGß©SÑÈ„’’ª„„6;7::311—Ë­SVVtv6±±1ÔÖî%oÞT¥¦¤¥66ò55{99hjt‡ó„BrÿþÛû÷ßZ´hØöí3””˜tG$C/>¡¢¢xäÈ"º€‰^h«úzÞ÷ß_=qâáìÙî»wûª©Éôk®Ú®¦¦áñã—ÿü“þäÉ«””|@hm­?t¨õСÖ^^ÖxeÛ …äáÃ÷~ú馛›ù¯¿Î72Ò¦;" MyyMllõž]6;·¨ˆ« À°¶6ðô´ðð°pr2±´Ô“˜ ,*ª½ 766«¼¼†ÉTPSSnlä74ðûLžì2fŒ§§e·~åó¥Kq_|qfâÄ¿ý6_Y¹[äÁƒ´O>ùËÔ´ïÉ“¡±‹ ¼sþü!ŸîCw Ð# Ñ ïæÒ¥¸CŒŒ´ô··ïGw8í$s>L{øóìY'07×6̆Êïbän;T|þù™è茯¿žºd‰7ƒy­{–ººÆ¤¤<6;/&&3::£¨ˆË`0ll DïÙ0À¨íó*s8…ááÉ·o'ÇÅe1 ##mUU墢ʊŠZEEKK}Ñn4îÕ«›=„úóÏ7÷í»½bÅè-[¦të–’•Uºxñ‰ÒÒê£G?ôò²¢;úq¹uöö[–øø8Ð ôHôÀ;ËË+_±â/6;wÕªqŸîƒyº » I2))/2’óð!'66«®®ÑĤïÈ‘¶ÞÞ¬¡C­ut4è° ݲ%ÔÄDçàA[[CºÃihlä'$äˆFßfdóùB=½Þƒ™RÃvíìúijöz§>xžÉÉÎ~£¯ß{üxGooÖˆ,-­ÿÍl,>Þ7..ûÍ›j&SÁÊJßÉÉØÖÖÅ2ôð°åiù|á¦M!gÎDmß>céÒt‡Ó jjV¯ºs'e×®Y~~^t‡C³§O3fÎ<»­ÿ>tÇ=½Ð$IEíØ¦££±wïÜáÃm莠Euu¥GD¤Þ¿Ÿ–•Uª®®2dˆ¥··­··]¿n=œNTTÔnØ|íZâŠc֮حgÓ…Ö …dzz›“™™YÂã ´µÕÝÝÍEãk ´Þu·••µ¤…‡§DD¤–•ÕXXè7`ܸC†X½õ¡Rñ¼o||vii5AšT0NN&nnæ}ûª·³À­®®ñÓOO?xvèЂ÷ÞHw8†$Éß¿÷Ã׿Ïòý÷³zò£À§N=úé§›ÉÉßÑôHô@ûUnØžìç7dëÖi½{«ÒÀÿ{õªøÞ½Ô{÷R£¢^ñxgg“Ñ£í½½Y®®f=9ѹþùçå_ü-’¿þ:oøpÝá@çKK+½g755¿ººAUUià@c''OO OO‹vdv)¯_—ß¾ýüæÍçQQ¯‚<ØjìX{KK½öíP ¾zULMÍfç&'¿®®n`2¬­õ 24ÈÔÕÕÌή]Í¿´´zÑ¢c99eKÝÜÌh‰¡KǬ_ÞÃÃòرE¢Ø=ͺuç32ŠCCWÒôHô@‡$yúô“ï¿¿¢££±g¯·7¾Ý:q¹u·n=¿s'åÉ“—¥¥Õýû÷3ÆÞÇÇaØ05µnöOרÈß¹óÊÉ“‘ï¿ïöý÷³45ñÌŸœ()©JHÈa³s££3s¹Ü:eeEggÑY++}EE…vï?55ÿæÍç7o&%%åijªŽm?qâÀÑ£í;½ …dFF ›ËfçÆÇç$%åÕ×óTU•]\L]\L]\ÌÌÌt:÷ -yõªØßÿ¨‚‚BPÐ2ss]éTúââ²?üðxß¾AAËŒŒ´é‡“'ïwu5ß¹s&Ý@OD/t‚üüŠo¾¹xý:{Æ ×mÛ¦hÒô,ee5·n%ݸ‘ÉáñNN&cÆØm?h “ÙþŒ´$9ùõÊ•EEÜ={|§NDw8Ð!µ11™¢a»EE\†µµ•Öõô´°·ïßÁQ°ÔËw¯\IˆˆxñæMµµµþôé.>>ŽŽÆ Ò›;=;ûMttUÌÄÄÜÆF¾ººÊ€ý©öàÁ–¦¦]’÷ŽÎøðÃÖÖþ¹D[[Væ‘î"EE•þþÇòó+–xxXÐŽT B›ßÿþ¼yCèŽz $z ÓDE½Ú¸1$7·ìÓOG¯^탠«åçWܼ™tã;**CI‰9r¤í{ï9c¯««AwhrK($¾·wïMó_~™ß3íuwõõ<*­“QTÄ%‚Å2½gwÀ# •Žˆaõjâ£Géõõ¼°‡Ì+P]ÝðÉ'>yòêÈ‘…>>t‡#=¯^{{ÿpãÆggºc€ž‰^èLõõ¼_ ÿý÷{ööýøa¶‹‹)Ý€¼!I2&&3<<%<<™Ã)Ô×ï=uªËøñƒ[*++ÒœËϯøâ‹¿££3¿þzê’%Þ †ôÆbBG46òr¨‘¬lv^FF1Ÿ/ÔÕÕpq1û7¹kÒ‰³òäçW\¿Î¾r%!..[A1j”Ý”)ΣGËôññ9Ïže={–ÍfçÖ×ó45UÝÝ-ÜÜÌ=<,\\LÕÕÛ“ù>y2rÛ¶K ݱcfš]€ÏnÞræÌÓ;f.^<œîp¤äÊ•„Ï>;ÍáìVUU¢;è)è€Î÷òeñæÍ!¥Ožìüõ×Seá}%aañ—/ǧ¥êêjL˜0ð½÷z{³0ˆtÇlÝzÁÄDçàA[[CºÃÖ…dzz‘hØnjj>'ÐÒRóô´ Û50Ðê܃fg¿¹~}ëÖógϲ””˜#FØNœèèãã £#»ùÝ–P“<ÇÄdFGg¦§‘$if¦ãáaáéiéáaÁb¼õ)¡Ü¶íÒ©S‘Û·ÏXºt„t–5‡ÝݵëÚGyûí iÎÑM—={®_¿Î~ð`#Ý@‚D/t•k׿ÿþj~~ÅÒ¥#>ÿܧwoUº#€n)7·ìÊ•„K—âž?­««1uê ©SyxXô¨áqôª¨¨Ý°!øÚµÄ+Ƭ[7#§eSZZ¡è=»©©ùÕÕ ªªJþ/­ëéiÙEÏ_ff–\½šxõjbRRž¶¶ºÏ€ ŽeÛ«—œLS\XX›õìYVllVRR^c#¿_¿>žžƒ[ bikkØ<é[_Ï[¹2ðîÝ”ü§Lq¦%lqúôã-[BgÏöØ»wŽÜ_´-:®¦¦|øðBº€‰^èBB!ûý÷W+WŽY¶lÜ@ef–\¸ðìÊ•D§ÐÀ@sÊ”A¾¾îNNxñ¡´Ý»—ºfÍEEæ/¿Ì>܆îpàÿ•–VÇÇg³Ù¹ÑÑ™‰‰¹\n’sÐ S*³ëädbe¥¯¨Ø%©5jõ+WÃÓsrÞ˜™éL™2ÈÇg€»»…|Üllä'%åÅÆfEE½zú4£¢¢V[[ÝÓÓÂËËzð`K#EE…7oª?üðxffi@Àww ºC¦ßíÛÏ—-ûsüx‡C‡È÷¿=ÑÑÑ ;œNvâÄÃýûo?þÝ@Ï‚D/Ð 5µà—_n_¹’àíÍÚºuš££Ý bb2ݸ‘DÄäÉÎóæ öò²ê±)‘ýfÕª ää×ß~;ÃÏo>Ž®&’ééETZ7&&355ŸÇ¨©)»¹™‹†íJ-³KåwoÜ`ççWXYéϘá‚ünëþÙºõ‚Ÿß￟Ådþç½È¢éïÞM-(¨ >Ü#XÞÞ¬{ZËÈ(™3çw55åsçVÈÙÈ×5kÎææ¾ þŒî@ gA¢hñbÏžë))¯gÍr_½zœ……Ý€4ðx‚°°øãDzٹööý,öþû®Â+ ŸìÜyÙÌLçàA Y½®’–V(š955¿ººAEEÑÉÉ„Jë:9™X[ë7IJGFFÉÅ‹Ï.\ˆËÌ,12Òž<ÙiÊg77óž–Œ|'B!¹mÛ¥“'#¿ývÆÒ¥#ZYS &%å=~üòÑ£ôèèŒÚÚF33áÃYÞÞ¬#Xr9›±DYY¥sæü®¢¢ºRž& xï½}žž–ß~;ƒî@ gA¢èD’äÅ‹q?ÿ|+'çÍôé.«WÃWŠrìõëò#GîG76 fÏv÷÷÷rr2¡;( ‚(/¯Ù°!øÆ¤/¾ðY½Úïí\¥¥ÕññÙlvnttfbb.—[§ À°¶6ðô´ðð°pr2±´Ô£ñœW]¾ñâ³øø=½ÞÓ¦¹Ì˜áêêjŠüî[54ðW­ ¼uëùO?Íõõõhû†<ž ..ûÑ£ôþIö,K($]\ÌÆŒ±3ÆÞÑÑXAAÎÏ|~~ÅVVV ýLKK2Ü|¾ÅÚøÃ³çÎõ¤;èYèú‘$yçNÊþý·r¼½Yë×Ors3£;(èLIIy'OF^¼§¡¡2þE‹†iÓüÏÝ»©_}u¦W/åüÜÝ-èGTTÔÆÄdІíq †è=»Fêê*ôYZZ}éR\HH,›«££1c†ëÔ©ÎîîrŸeì,\nÝ’%'“’òŽ_<|8«ÝûihàGGg<|ȉŒä°Ù¹êê*C‡Zûø8Œk/g“‹{ó¦zÖ¬CŠŠ ò‘ëMO/9r÷­[_ hLw,г Ñ ²B($¯_gÿúkxJJ¾ÃçŸû¸¸˜ÒtÔ³gÙû÷ߺw/ÕÑÑhÉ’3f¸ª¨(ÒüO]]ã¶m—‚‚¢üü†lÝ:­woUº#ê®êëy¢´nLLfvö‚ ôõ{låáaáädlg×_SS&NoMMÃõëìØÇ_ª¨(Nšääëë1t¨5-“Ew_yyåþþG««ë—ÙÙõë¬Ý¾xQñ"""õéÓ ¡4ÈtÌûѣ휜Lä/_XX9cÆ==³gWÐþÜC……ůZøòåeeÜà@ªèÙBîýõ×ð¸¸l//«+ÆŒkY㺣˜˜Ì}ûn=xæînñå—ãG¶£;"ø¤¤¼U«‚JJªöìñ2Å™îpºOŸMevÙ켌Œb>_¨­­îîn.¶k` Ew˜ÿÇÜ¿ÿ"$$6<þ::øÑô8Hô€Lãp ޏpá™ŽŽÆÒ¥#üý‡ÊÈ”w Q\\ö®]W?~éåeõå—†·¡;"h*+«tÕª ””üo¿áç7S§´"-­P4!ó‹UUõÊÊŠÎÎ&Ô€]''++}™MMW?}ñâ³ÔÔ‚þýû̘á:k–›½}ºãêÞNŸ~¼eKèܹƒøa¶ô?úŠŠÚÈHNxxòÍ›IµµŽŽÆ>>¦Ms±±1r$+%%Ö¬CcÇÚÿö›_7¡ÚÑñëU«Æ-_>Šî@ ÇA¢º¢¢ÊãÇ#OŸþ‡$‰9s<—,ñ67×¥;(øÂÂÊ]»®††>>Üæ‹/Æ{yYÑHødçÎËææºø±X†t‡#sJK«ãã³EÉÝ¢"®‚ÃÚÚÀÉÉØÓÓÒÃÃÂÒROI‰Iw˜­„÷ï§;÷ôöíd55å)SœßßÍÓÓ²›æÏdI’»v];tèîW_MX³f½OHp¹õ©7n$ED¤VW7 h2ž­”šŠŠÚ˜˜LñÌ.A,–¡è=»ihHczÞŽËÌ,9{6:88¦¤¤jÔ(Û9s<'LpTVîÆï=•<ž`ݺs/Æýøãœ¹s=éçÿñx‚þI¿q#éڵIJ²WW³éÓ]¦M$ƒ³ˆ¿ÕÍ›IK—žÚ¼yʧŸŽ¡;–wsëÖó>:™šú½¦f/ºc€‰^è~¢£3Nœˆ¼qƒmd¤íïïåççÕ§<¼ž  Û„gÎ<ýùç›pëÖi³f¹cÔ lºs'嫯Ϊ««8àçæfNw8tª¯ç‰Òº11™ÙÙo‚ÐÓë=h)5l×ÙÙ¤{ekÊÊjΜ‰ Žåp .6uª³|¼½Uú^¾,Ö×ïݤp¹õK—žJLÌ9vìÃ#l銭uB!›yåJbXX\ii5‹eèëë>{¶‡&Ý¡½ƒ¿ÿŽZ·îüþýóæÌñ ;–wðóÏ7CCŸ=~¼…î@ 'B¢º«ôô¢“'#ƒƒc””çÍó\°`¨……ÝAô 99o¾üòLttæüùCÖ¯OGGƒîˆz´×¯Ëssˆ i:cvmmãöí—‚‚¢üü†lÝ:­woUZ£'ˆÏ¦2»lv^FF1Ÿ/ìÓGÍÃÃB4l·;äó…©!!±·n=×ÐP™7oÈìÙî¶¶˜Ž»C|}çÎ}*òžŸ_áï´²².0ðãnñ†ãúzÞÝ»)—.Åß¹“,’#GÚΘá:~¼cw˜¾mÛ¥¿þúçܹžž–tÇÒV~xBEEñ?ÑôDHô@÷ÆåÖ9óôôéÇ™™¥Ã‡Û,\8tüxGLEÐÕþþ;jûöK––úû÷ϳ·ïGw8=Ÿ/œ>ý·Üܲ‡7ŠÏt’””·re`iiõ?úNžìLc„Ò$’ééE¢a»ÉɯkkUU•ü_Z×ÓÓ²û¾Ê” ˆ¬¬Ò  ¨ÐÐØÒҪѣígÏvÇÍâîÝÔ Ž)(0¦Nôûïþ #9ùµ¿ÿ1MMÕÀÀe&&}éðÝTUÕß¼™ÉQQQœ1ÃuÁ‚¡Ó×[…äÇŸŠŠÊ¸qãKSÓîÑNÝܾýðÃa«V£;è‰è9Áfç> }¦¤Äœ6mÐ’%#0  +¼~]þå—g££3¾þzêGyc®fYðóÏ7÷ï¿Í`0&Ntyò£n=viiõùóÑgÎ<}õªØÙÙÄßßkÆ WuuÙà[_Ï›9ó@uuõk_jjÊú$%%UÎÎßüý÷òQ£ìèŽz"$z@®qÏœ‰ Š*,¬3Æ~Á‚¡£GÛ1™ÝûK=Ùqùrü¦M¡ºº¿ýæçìlBw8@ñègîÜ#Ô¿î ƾ} l¹jU`JJÁ·ßÎðóÂ`Èa2¾´´:>>[”Ü-*â*(0¬­ D³1;:«©)Óf' IòÑ£ôàà˜[·ž …äÌ™®þþ^NNh}ìØ±;v\„Ô¯ ¡¤Ä3fÀ¡Cþ½zÉCE"þ}4öÒ¥¸ÆFÁ„ Žþþ^ÇÛÈæõáõëò‰÷¹»›Ÿ8ñ‘Œ?Ntÿþ‹ùóÿ`³wêêâý@$z@ Â{÷RŸÜ»—ª§×{Î>ln®Kw\ÝXc#Ë– ÿµtéˆM›&«ª*ÑA”•ÕŒµ»¬¬F(¤½„’SUU¹_?­ƒýŒè "7·ÌØX»ƒù¤ÊÊÚèèLñÌ.A,–¡(³koß_ÎÞ@\]Ýpñâ³ÀÀ'IIyF|àùþûnÚÚêtÇ%‡ÊËk<=wÖÔ4ˆ/d0ˆ#GM:ˆ®¨º—[•’’ïìl²hѰ÷ßw“Á©¿ïßFBQÚ IDAT±`Á± &­\9–îXZsàÀ€€ž=ÛFw ÐC!Ñ ò¬²²öÊ•ÄS§"SS œœLfÏvŸ=Û]üÅuÐEEÜ%KN¦¥îß?oÊ”žòª×naÑ¢ã/ø|h‰¢"S_¿÷Ç›daýøâÅg$IÌœÙ=^­Ú­}ýõ…Ó§óxñ… ¡¨È ùÌîÀºTBBÎ_=¾pá™¶¶Ú’%#.ª©Ù‹î þã?î÷Ý•óç?õò²¢;–-_þgC? ` Ý@…D/È?¡|ø0íï¿£nÝz®ªª4}ºË vu5£;.€îáÕ«b?¿£ÊÊÌcÇÛÚÒü¿¿þz¼iSHó×3Œ'­Z5Ž–¨DÂÓ7m )*â’$ùÛo~ï¿ïÖúú<ž >>›Êì²ÙyÅ|¾PKKÍÓÓB4l×À@ž_I[QQôäܹè—/‹=<,–.1~¼£ŠŠÌ µ”3YY¥ÞÞ?ˆ&mÇd2z÷îuãÆ33é&\nýùóчÝ+/¯™6mÐêÕ>ÖÖútõÿV­ zðàExøZ™mûC‡~?k–ÛW_M¤;è¡è€¤´´:88æï¿£^½*¶¶ÖŸ5Ë}Ö,wccmºã]Ïže/\xÌÖÖ0 `‰¬ öêáRSó'NÜ×d ¢“©påÊ烙J9*JZZáÆÁÑÑ †‚P(TRR\¸pèÎ3›¬F’$‡S$¶›œüº¶¶QEE‘­K%w­­õ™LZJ!M©©OBCcêêx“&9-Z4lÈÙÂ(g>üðxDÄ‹–šA––ú7o®ÑÐP‘fTRÖØÈ ‹?pàNFFÉØ±V­ëî.ã˜kjÞ{oŸž^ïóç?•ÁK—[go¿åÔ©Æw¤;è¡è€žèÙ³¬Ø°°x.·nð`K__É“åì¥n—óÁ‡¶:zôC +”)<ž`âÄ}N¡ÄaˆA((0¬¬ôÃÃ×JùÕ›ÕÕ {ö\xÄ`0Ä'”vr2¹ys Aii…¢Ìî‹UUõL¦‚ƒƒ‘‡Çÿ†íZYé+*Ê\:§‹ðùÂ[·’NžŒ|ò䕱±ö‚C?ø`°ž^oºãêAž>›6M¶³ëGwPDBBÎôé¿­];‘öY š{üøåìÙ‡bc·õï߇îX ‡B¢z®ÆFþÝ»©ÁÁ1wï¦0™ &8Ξí1r¤mÏùn IIysævs3;yò#)' á­vî¼|ôè‰Y^EE@HŒúïÞíëæöìÝwXSgûð“‚²WØö‘ ¢uÑÖ-nUëhÕÖõÖ:jkËëjíR«7ܫЫ* HP™‚€6„MØYç÷ÇyKù¡‚Jà0¾ŸË«W'ÏóMê“û<÷Ó~ÛUœ9½yó•ŠŠj©´i06›éçç’˜˜“‘QL‡£Ñ·¯yß¾f®®æ®®fÚÚ½Ú-dQZZ}üxä‘#òó+ ²™?ßgÄ'ª¸íF&“º==½P.ÿ÷Ã16›)“‘žž–sçzÕ§{þô»uëÙ–-¥¦øû÷_½úCÚ{ =úpÆs/.ïhûïìÛwo×®; ßÓº/zˆòòš‹cÎ{üäI†žžÚèÑ}ÇëçáÁÅgmÐmåæ–}øáNGG“#G`-oGsëÖ³¹s4~;Ou4•É䆆šÜwäH'w÷Þ={*·[$ªWsT”€É$×Ìswï=p 5UÙ52꾫ßÂÃSƒƒ#CCzõê1s¦W@€WÞÿµƒ;~<ò«¯ÎPc™LIêê=fÍ4mÏʪíSK ¹œ<{öñ?^/*ª\²äƒeˆ©ª¶ß”&H’œ3'H (¾ys1^µlÙñ’’ª'Ѻ/zþ•‘Q|áÂÓK—bRS ŒµÆs7ÎÍÅÅŒî\íª¦Fp2ľO£]¯TkÔ«™xu!o6›¹e‹ÿÌ™^í™­C‘Jå×®Å8-èÝ[oî\ïiÓxØ÷šF55bïûÒÒ*ee¶X,up0š;×{ÂwüÐkL"‘;öpÇŽP5µ7Ž;Ö•®$ùùåC‡nŸ6÷í·ãéÊðª!C¶Õçë¯?¦;t_(ô¼FrrÞÅ‹1—.Åde•XZêßoÜ87ݹÚÃ×_Ÿ½|9ö¯¿¾ìÝ[ïMÇ”——gff¶g* ‚$Éo¿ý›ÏÏ&BO¯×€¦îî&}ûõì©DKžèèÜ]»V·x$›Í9ÒfÙ2zµ´´,,:VûÖæÕ×KOŠúã»ÙÙ¥ƒÛΛç3l˜ã›:ÇŒ1¢ãu[EEœÂB}ƒÔÔ¬ÐÑ)QU­¥;Ínݺõ¦o•”TmÙò×É“QÇ;nß>™ÃÑlÏ` Ξ}üå—'Ο_ÊãYÒ ‰š±Ý×{öÌ3†¶ú7 ½oD’äÓ§Y—.=½r%V(98}ô‘ËG¹88Ó  ­\½·hÑ‘ãÇbßÌa………IIIúúúí ‚¸y3-<\àînÒ¿¿©©)=µ–•ׯ§äæŠòòDyy¢êj1u¿’‹Á $y“z÷ÖÞ¿R+'‰DNNN­§}VþþûíÓ§ù‰læL¯ ·Ø¥™Á`xzz𙡣LÛ‹YÉÉ:µúúÕlvwÿd,;;ûÑ£G-~BøäIƪU!ÙÙ¥+WŽ\²äZ¶¹™;÷@ZšðÎ5**ô\ÝÒØ“'cÆüúðáúf.Šhk(ô´L&“GE¥_»ýzB~~yïÞzTÅ×Íͼ»#´©²²ê!C¶}ðÃÏ?OoþHªÐ;dÈvÉ€HT—•U’™Yœ™Y’•U’ž^”ž^TX(ú§Ÿ3ƒÍf¤¥mkå–ÏÏž=#¢ãzssËöî½wòä#eeöüù>sæxë驽Í FHHÈ”)SÚ:a7WUUÍ NŸ>=uêÔ·ù„°¶V¼}ûõ  °>pضm²¡a{_n’›[6tè¶yó|Ö®¥¿[ò¡CÛ¶]KNÄ[B Q«Þ_t,sà@ë­øabJJÁíÛÏnÞ|¶gÏßZZ=‡w3ÆÕ××NY¿U ÓÛ±ã:ƒAlÞ<î Ðùhh¨ôécÒ§Iã;e2y^^9UúÍÌ,)+«nÿÊP;ËË+ÿí·[!!|uu•¥K‡Íë­¥Õ“îPЪ¼ïGUUyÓ¦qcƸ®ZujÈm;vLiç®Å&&Ú+VŒÚ¶íÚĉ†í9õ«sÛ[t€&ð‘4À»±³3´³3üüóaÙÙ¥7n$^¹;wî%oo›Ñ£û~ø¡ >6€NêùóüààÈ;¦ª««Ðº‹if¦cf¦C6tgis5¿ÿ~çàÁp^ß}7aÊŽÐ]@áúõ³ ]µiÓ…E‹ŽÜ¿Ÿòý÷TU•ÛmöO?õ={6zÆ §O/i·I_+!!{à@kz30éÐY™™é,X0øÒ¥åÑÑß|÷Ýx‚ V¯qvÞ0gNЙ3Ñ"Q-ÝÞÍ/¿Ü²·7š<Ùƒî LUU}`àUw÷ïÎ{¼yó„ÈÈ ³gD•º°=Ø[·N>rdÁõë ¾¾[££í65›ÍܶmòƒiW¯ÆµÛ¤¯‹¥))}ú˜Ò˜€ÀŠ^€Ö36Ö ð ðÊË+ M¸v-~åÊSJJ¬¡Cí?úÈeÄ' Uº3´@ (ºz5öÏ?ç2™èB ð¶¤RùáÿþzK"‘­X1rÞ<Ÿö\Ú@¯#œ®__±dÉÑÉ“÷lß>eÊ”vºN¨îر®?üpeħVnûýÞRR $™³3 ½@3zÆØXkÞ<Ÿyó|JJªnÜH¤*¾AðxÜaÜFŒp´²2 ;#Àë9òÀÔTgÔ¨>tè4?¬]{6-Màõå—#õõÕéNÐÞÌÍu/^\¾cÇõ+N>{–»qãX6»=Ú®[7Ú×wëÁƒáK– m‡é^•Ó³§²µ5ÞßÍк@ñtuÕfÌð ^¿90pR¯^*?þxÝÇgËÀ›6] O•Hdtgø—L&¿páéôéX,zÞ$¾xñ‚Á`¼öF3²²²>ùä“·9²õ¨¹¾üþûï ÆÖ­[[3¦Bi¢ùWãÔ©SŒ×‰U`ƒñâÅ Ø••U¯Z2nÜï÷î}8©VyqZ) N«æ))±Ö­¼ðôéèI“vV¶Ã¤ff:ŸþÁo¿Ý./¯i‡é^•˜˜ãà`L×/M€øç@ÒÔìàuøðü””-¡¡+'MrŠJŸ6m¯­íÚ©Sÿ ËÉ)£;#•^TT9zt_ºhii}õÕWïú¨‹/Ž?¾á±ééézzzmîß¹¨Û$Iž:uÊÜÜ<$$ä½|í ­ Í¿’ãÆËÏÏÏÏÏøð!Aùÿprrjͤ݊L& óòúáÁƒ´Ã‡çŸ8±ˆËÕ§;Ôëá´¢à´jC‡Ú_¿¾¢²²ÎÏï§§O3ÛaÆÏ?¦ªªôóÏ7Ûa®W%$ä8;›Ð25@c(ô´‹éâb¶j•_hèʨ¨ß?QK«çöí×x¼Í^^?lÜxË|€F÷î=·µ5¤q‹==½÷XwóæÍ‘#G6…†WC*•nÚ´ÉÜÜ\__öìÙåååÍüŸzmNj¨K—.ÙÙÙ,_¾¼¾¾þM/l7oÞ´¶¶ÖÖÖÞ²eKCª&C½iüŽI"‘ýôS¨ŸßN%%fhèªo¿¯¦Öƒ–$8­pZuäÓJCCõÈ‘S§z,\x8((¬­§›1c€¡¡æï¿ßi뉚xù²°®NâìŒB/t$ÐM.—ÇÅeíÜyãã61Yaa±zúô½†½|YHw4èúÄb©…Åê³g£ßéQB¡ðîÝ»-6{öì9sæp8œ¨¨(’$÷íÛg``pþüù¼¼¼¿þúËÔÔ” ˆ´´4êýé«7D"‘²²ò¼yórrr‚ƒƒ ‚(,,$IòàÁƒÇŽ{íC(Û¶m›4iRVVV|||¿~ýÖ®]K’$AÓ§O‰DAAAAL™2E$íÛ· ˆââ⪪ª=zìÝ»7??ÿÀl6»ªªªñ\$IÊår.—»oß>’$ׯ_ïääÔ0#Aþþþeeeû÷ï'¢¤¤äþýûººº‰„$Éàà`'''¹\ÞÌ MžÂÌ™3‡ öòåËøøø>}ú|ûí·->…†vìØáääŸ0`À€Õ«W7þÿÒd¢×椎9rdjjê£G¬­­©¯}a#bôèÑ"‘èܹsS5êMã7/11111±ÅÃëÁƒ4/¯×_¾ÓÖsÒü18­pZ)ö´¢Šâ-öN‚ƒš™­\±â¤X,UìÈMœ8in¾*+«¤MgiâÜ¹Çææ«êë%í9)Àk¡Ð бWž>Í_´èˆ½ý:#£/û÷ÿnÅŠ“.<)*ª¤;tMÅFF_ÆÆf½Ó£Þ²Ð[VVfjjêââÒPlprr:|øpÃGŽi¾"U__Ÿœœ\UU%“Éîß¿OL’ä¤I“JKK_ûн½}~~>uûÖ­[®®®$IñôéS’$Åbq“Ûiii¥¥¥JJJ?þøcYY™\.¯¬¬”Édç"IòÑ£Gl6»¸¸˜$É'Ož‘@}‹ ê5iP*•Þ¹s‡$É>úhëÖ­ÍÒø)ˆÅb‹ÕPÔ<þ¼µµu‹O¡a;;»óçÏSMJJj¸MiòZ½6'uL||ÿ|Ø¥K˾߳g–‹‹é•+±S§þáà°nêÔ?v゚-—“-ðÿÕ×K••YmQÇ’ËåóæÍ[¶lÙÉ“'oß¾}åÊ‚ æÍ›·fÍšK—.„††®]»¶¥xõb±XYY¹¶¶vÓ¦MATVV^ºtiܸq¯=¾ªªŠº1qâį¿þ:333>>ÞÏÏo÷îÝ-f0#GŽvìáÂ…‡© }œÖ/\xøØ±‡í³‡t §NEYYýç]õ6{ôþþûï}ûö‹Å$I^¸pÁÈȨ´´T,oÞ¼™Ë媩©yyy8q‚hv3Q’$wîÜ©££cff¶gÏžéÓ§kkkôÑG ³4)‘H¼½½ÕÔÔ¨ûE"Ñ'Ÿ|¢­­­««»páÂêêj’$‰ö"}Óí+++eee{{ûK—.‰ÅâÆs-Z´häÈ‘Ÿ£\.·²²úꫯš|ñâŪªª"‘¨ÅAš<…ÒÒÒY³féêê­X±¢¶¶¶Å§ÐðjÔÕÕ­^½ÚØØXSSsúôéeeegl²™èksRÇYXXèéé-[¶Œ ð/ìk‡zÓøÍkÓ=zÅbé?^77_5zô//_¶Ñ,Í#ZÚ£§u§•O«6Ú£·±‚‚Š!C¶zx|'µÅøõõ’¾}7nß~­-o"$„Ï宑Hdí0@‹$‰¥?žX,åóaa)aa©‰‰9$IØÚr´öô´òô´Ò×W§; t\ׯ'ÌŸ03óG%%ÖÛ?ª°°0))iÈ!­œýÅ‹666]ûéúõë322Ž?Nw4É©Àÿ5¯êýƧš;99µ>UññÙ+VœŠÖ¬ùpáB_‹žh #$$dÊ”)­§UÇÑ)N«Ó§OO:µ­ÿÂ…S¦üQS#>wîsss]…ÿÓO¡‡?ˆŽþFE¥éæÊеaÃùØØ¬«W¿lÓYÞ›î ÊÊloooo›u눲²êˆˆ´ÈȾ8|øI’66//+//kOO+Gƒî°Ð±P»ó–—×à …«««ËËË;xðàÉ“'éÎҜΒ³TW×÷Ý¥ãÇÕçĉ…Ž&݉ 9å¯kgÉÙn8Í3g>Ÿ4i×äÉ{Î[jjª­ØñçÌñÞµëÎùóOfÌðTìÈMÄÅe£o3t(ôt5Úڽƌq3Æ• ˆêêú§O3ùüt>_pòd”D"ãp4x íÞãH$²ÄÄœ€¯6à]¡u3@wQS#~ò$ƒ*úFE¥‹ÅR}}uOO+}º9’$íì¾þöÛñï´ JQ­›Þ‰[7 …ßåâŧ~~Γ:H×…´nx'íÓº¹Aqq•¿ÿºóç—*¶‡óóçùÆí8qb‘¯¯‡m,))oøðwîüÇÁÁ¨¦x'XÑ Ð]ôì©ìãcëãcKDm­8!!':Z–x¥¾^ª§§ææfÁãq}|lQôèV †á³g¹th'‰,((ìçŸoôꥲ{÷¬qãÜèNÐèé©?¾pÒ¤Ýsæ]º´\CCUQ#ÛÛ dýçŸ÷ڮЗճ§²­-§ÆxW(ôtGªªÊ<ž%gùùçÃ*+뢢Ò=zùèÑËmÛ®^52Òòò²rwï=`€¥!‹Å¤;/´-//ëÐкS´‡+Wb·lù«¨¨òË/GÌŸ?XEE‰îDÝŽ‰‰ö… K'LØ5kÖþS§«ª*+jäO?õ;÷@jj­­¡¢Æl,>>ÇÉÉï ã@¡ »SWW>ÜqøpG‚ ª«ë££½ŒŽüðÕÚZ±ººJ¿~ýûsy<®››…šZºó€âyyYïÞý·PXÁáhÒ ­äå•ûíÅ«WãFŒp:qb‘b÷€wbd¤uáÂÒ±c›3'(8x¡²²b>¢6ÌÑÂB÷رÈ￟ ›ˆ‹Ëîß¿w[Œ ð~Pè€õêÕcÈû!Cì©/33KøüôèhÁ•+±;wÞ IÒÂB×ÃËãYzxpmm9èð Ð5 h­®®rõjÜüùƒéΠx5»wÿ}à@¸±±VpðÂ>p ;FFZÁÁ 'Lø}ñâ£û÷ÏUÈ2Y&“àõÛo·Ö¯­ðõúb±ôÙ³Üyó|;,@k Ð oda¡ka¡;y²A"Q]\\ŸŸÎç ¾ùæB]D]]ÅÕÕœÇû_Ý:¯Ï6·] IDAT=Ø}ärñâSz¡‹©«“<þûïw bÕªQóçîÑŸ„tvv†Λ1cßwß]Ú¼Y1kp'OöضíZhhÂøñý2`ƒçÏó%Yß¾fŠ 5ðöÞŠ††Š­-AR©üåËÂèhŸŸ~æÌãŸ~ºÁf3M<<¸<×ËËZOOî¼ðn&NtŸ2eORRž££1ÝY ¾^tÏž»r9¹téŸ|âÓ³§ÂöEñô´Ú³gÖ‚‡ŒŒ´–,ÚúõõÕ?øÀáÔ)¾Â ½qqÙêê*VVŠ 5$IÒ:1’$_¾,zò$ƒÏ&¿þ:ãm.,,LJJÒÖÖnëTUWWkjj:995sŒL&?y2ê—_nVVÖ-_>|Îo5µí–°• †³³3‡Ã¡;!‘(UW÷$¦–VÝY:–ÚZU‰DY]]Ä`t‘Ô„BaBB½Ÿž8ñhÍšÓ¿ü2j&ÔJ7n$ΟðÑ£¦¦Šü%µfÍéôôÂsç–*pL€VŠ^hƒamm`mm0u* ˆŠŠšÇ3Ÿ>͈‰Éºr%®¢¢¦W¯ÎΦnnænnnnæ&&( tPsæ 򫎠 côõÕ[>¶\kkƒNÔ—eÑ¢#AìÛ7§æ EgÏF9ò '§ÌÅÅ, ÀËß¿¿ŠŠR;LÝ…‘$¹|ù‰›7/^\æàÐÚM~øáÊ•+±‘‘˜L†BâÕ×Kmm×þúë …w„h z ýdf–ðùéTé7..[,–r8TÑ×ÅÅŒÇãjjö¤;#@·vôèÃo¾¹±N±í.ÚN]$88òÏ?ï•”TÏ›ç³hÑ==5ºCuh‰ìÑ£—|~:Ÿ/xú4³ººÞÄDÛËˊdzôñ±µ°Ð¥;à{jÏB/E.'½{ëµ[€®§®Nâï¿»´´úúõ­|_ðòeáàÁ[CB{{·v}0%&&ë㎈Xgi‰‹H A¡è!ÕÅÇg=}š›“%V()±úô1qu5wu5ws³°²Òg0s>¼%‰D6dÈ6gg“½{Û¯Xð~jkņïÛw¯¾^ºp¡ïܹ޺º(ñ¾^}½”ÏO KåóÓŸ=Ë­©››ëlëáÁåñ,;oq·±ö/ô6((¨8wîñÁƒBaÅ A6^~~ÎJJ¬öOÒU~øáNKKý'³Ù­ZPþÑG?ÛÙþüót…;|øÁÖ­%'â t((ô@‡Ÿ_““›—]UU¯®®Ò§IŸ>¦ÎΦÎΦ«y @çuïÞó3ö…„,iý.‰mD$ªÝ¿ÿþ¡CR©üÓOò‰ŽN/ºCu8uuª'sxxjrržD"³µ5äñ¸>>¶<—ÃѤ; ‚ÑXè¥H$²ÐЄààȈˆ4u9s¡;Â{HLÌ7î·9s~ó͸֌¶cÇõøøï{ô`·>ÕÊ•§rrJOŸþ¬õC( ½ÐáÈådZšÚÙ7!!çÙ³ÜêêzUUeGG#ggSªôkoo„umäÓOÇÅeݾ½FCC•î,ÿOyyÍîÝ=ú€Éd.]úÁìÙƒÔÕUèÕˆDµQQé|¾ <<5))W&#M=<¸<wÀ+uº¶!Ú ½ ‚¢'¢Nž|T^^C-ðýè#\°øNÎ{¼lÙñ_~™1eŠÇ{"ŠÜÝ¿=xpÞÈ‘}ZiذC‡ÚoØ0¦õC( ½Ð …Ôξññ9±±YEE•A4Þß×ݽ7–ò(Jiiõ°aÛûõ³8p`ÝYþ§¬¬úàÁðÂ¥RÙ'Ÿø,Z4¿ú)åå5áá©|¾ :ZðìY.I’}ú˜RËvÝÜ,ºÏŽÅ§ÐK‹¥7n$R |9I“úÏ›çmd¤Ew®NcÓ¦‹ÇŽ=¼xq™‹‹Ù{2aÂ簾:¿ÿ>³•ajjÄvv_ïÞ=kìX×V X(ô@çÓ¸îŸ-Šˆÿ_÷íÛ×¼k¯Yhkaa)3fìÛ±cÊôéžtgî.?¿|ïÞ{ÇGª¨(Í›ç3ož–VOºCѬ¤¤êáÃT}÷Å !‹Åtu5çñ,¶us³PSëAw@t´Boƒ/ CBøÇGVW×ûù9xy{Û`Ÿ×ÉdòY³ö¿x! ]õÞWu:¾eË_ññß«¨(µ&ÌãÇ‚±c‹ŒÜÐ56´€®…^èÜH’ÌÌ,¡š<ÇÇg'$ä”—×0ŒÞ½õœMúô1ut4vt464ìjÑ´µï¾»tìØÃ7VYYк©¸¸ì;oܹ“Äåê/_>|üø~Ýyã†Üܲ‡_DG ÂÃS33K”•ÙXòx\ϲ_?‹^½ºcq·±[è¥Ô×KoÞL Ž OårõgÌ0}º'V¥7¯¼¼æÃwš™éž8±ˆÍ~ŸÞ×……•îîßîß?×ÏϹ5IÛ¹ófbâ÷¨Ð@GƒB/t5YY% 9Té7))·°°’ mí^NN&ŽŽFÆŽŽÆØâ Euu’?Ü©®®zþüÒ÷û„à½EG ~ü14<<µo_³•+G æÈdvÇúJVVIXX*ŸŸ-ÈÌ,éуM-Ûõðà:;›ªª*Ó°éà…ÞññÙÁÁ‘.<•Hd£Fõ ðòñ±¥;TÇ•””7vì¯sçz¿÷æ¸þþ»9Ý»gµ&Æ_œ(,<¹¸5ƒ´z ‹«¬¬ŠRR ¨>ÏÏžåÖÔˆ‰Z=ÛÚÚÚr\\Ìll8Ýód€f$'çý«¿ÿmÛ&Óº’$oßNÚµëNt´ÀÛÛvõêQ<ž%Ý¡ÚI’©©BjÙ.ŸŸ.ŠÔÕU<=­x<®­££ ®ºx“ÎRè¥TUÕ_¼øôȑϞåZ[LÊ›9Ó =É_ëÚµøO?=¼gϬqãÜÞãá‡? ¼’ЪîÍC†lóóë³víÇï=@A¡º†-~SS…))iiB’$ÕÔzXZPE_S''´@ âîÝçsæì_¹rÔ—_ޤ; teT‰÷·ßn?y’1p õ²eÃ}}íèÕNH’LHÈáóÑÑ‚¨¨—……•šš=©e»<ÅÝ·Ô¹ ½ ¨¾çÎ=‘Ëå#GöY°`°‡—îPΆ çCBø7n¬²´Ô×Ç …"w÷o˜7jTŸ÷›½¦Flg÷õÌ=ºïûÐvPè€îN(%'ç%%å={–›œœÿâ…P*•+)±ll8ŽŽÆÆNNÆvvFŽÝIèqâÄ£5kNÿúë ÿþtg.H,–ž;÷øÏ?罹 GŒpZ¶l¸»»ݡڜ\N&&愇§òù‚˜˜Ìââ*mí^ÞÞ6>>¶\kk ÅÝwÓI ½‘¨îòå˜C‡Â““ó]\̼&L臋H¥ò ~¯ªª»~}å{,Ì?þ÷Þ½uùeÆûÍÎç§ÿ{TÔF33÷ í Ð ðÿˆÅÒ””‚¤¤¼ª¿yeeÕAhiõ´·7²³3lø/Úë@÷ñÝw— ?qbñ AÖtg®£¬¬úèч‡…——×N˜Ðoñâ¡vv†t‡jC‰,&&3:Z–“YUUod¤5h5géãcka¡KwÀέSzP |Ïž}¬¤Ä7Îmî\oGGcºCu™™%£Fý8a‚û–-þïúØ={þÞ³ç︸ÍïwýÄÞ½÷öí»óÝ{< ­¡Ð С°"%¥ 99?5Uøüy^jª°ººž GÃÎÎÈÞÞÐÎÎÐÞÞØÆ†£¦†…Ð5ÉdòO>9ðäIæéÓKœœLèŽÞóçù{öü}éRŒŽŽÚ‚>Ó§{êèô¢;T›‹¥QQé|~:Ÿ/xò$£¦Fljª=dˆ½‡—dzDqWºF¡—RQQsæÌãƒÃ32Š©¾“&¹«ª*Ó‹fW¯Æ-\xø?f¿ëf½))C‡n»rå w÷Þï1ïâÅGkkÅGŽ,xÇ´5zÞYEEMJJµÅojjÁ³g¹¥¥ÕAhjö´µåØÙÚÚÚÙ:9™tÕ­ ª«“Ì{ !!ç̙ϰ Þµï®]w¢£66œ¥K‡禬̦;—‚Õ×Kùüô°°T>?=11·¶Vla¡ëãcëãcËãq9MºvM]©ÐK‘ËÉÒ‚ƒ#CCTU•ÇŽu?p×^õÞ¢U«Bþú+îÖ­ÕïÚEÙÓó‡ ú}õÕGï1©§çS¦x¬\9ê= ÐÖPèh-©Tž™YœœœŸ’R’’ÿüy~FF±T*g³™zööFööÿ+ýr¹úJJ,ºó¼'‰D¶`Á¡¨¨—§N-qu5§;t&õõÒ3g¢ŽHJÊóðà.]:lØ0G&“Aw.…‰ê¢¢^òù‚ððÔ¤¤\™Œ´±áðx\wÛM×+ô6(,¬rΜ ‹yðà¼wškΜ UUå½{g¿{L€ö€B/@G!—“ÙÙ¥iiÂÔÔ‚/ ÓÒ ÒÒ E¢Z‚ ÔÕU¨U¿66++++ Ýî¹7t‰låÊS—.= œ4kÖ@ºã@‡ •Ê/\x–ãîn±páλ“hNNÙ½{ÏùüôèhAff‰²2{ÀKËãYº»÷ƶ Pw+ô6ÈÈ(>~üÑ©SQåå5Z/X0xøpG£ël€ýZ%%UÇïðõµûå—oùÇlÙrõÙ³ÀwZýìâ²ñ³Ï†-^<ä}R´=z:4¡PDU|ÓÒ ^¼(LM-(,¬$‚ÍfššêXZê[Zê[ZXYés¹ú&&Z]þs=è8H’ܹóÆO?ÝøüóaëÖ}ŒŸ?ÝYEEMPPXppdIIÕ‡ºÌŸïÃãYÒꥤPËvùüt¡P¤¢¢äáÁ<ØÖÃëìlªªŠân‡Öm ½‰Dš‘fa¡;s¦gg_IߢððÔiÓöîÛ7gôè¾os|FFñÀ—.-÷ðà¾å¹¹e›ÏŸ_êé‰ÞÐA±éÍáp48 oïw “HdyyåYY%TÏç””‚[·žee•’$Éf3ML´ÍÍu-,t-,t©¶Ïff:L&ª/ x cÕ*?-­ž›6]¬ªªûᇉh2ß ¥§íÝ{÷âŧL&sÖ¬^ºt‡z[$I&$äðù‚èhUÜÕÐP0ÀjÁ‚Á>>¶ŽŽ&ÝjßSèÔ””XcƸŽãúòeá©Sü={înß~ÝÏÏ9 ÀËÛÛ¦K^ˆããc;}ú€µkÏ `©¯¯Þâñ½{뙙鄇§¾}¡766‹ÍföíkÖº¤m+zº‘¨6#£83³$+«$3³$%¥àùóüÊÊ:‚ ””XÆÆZTÑ·¡ÌáhкŽë×>ûìèÀÖ{öÌÒÔ|Ûí¡³‹‹Ë>p ìÒ¥^sçzÏš5PG§Ý¡Z&—“‰‰9áá©|¾ 66«¨¨RK«§­‡—Çã:9™àz…Nª›¯èm¢¾^zófbppdxxª••Á´i¼3<µµ;ÁúN*+ë† ÛîädrèÐü·9~ÅŠ“™™%çÏ/}Ëñ¯Þ¹“ô÷ßÿiEF€¶…B/@×$“ÉsrÊÒÓ‹ÒÓ _¾,LO/ŠrsËär’ ##-++ýÞ½õz÷Öãrõ{÷ÖãrõTT”èN Õ³g¹óç’Hd|âêjNwhC‰ìêÕ¸ƒÞ<Étu5Ÿ?ßgìX·¾¯D"‹‰ÉŒŽ„…¥ÆÆfUVÖéèô4ȆªïZ[ ¸Û ÐûZ©©ÇŽE†„DI$²‘#ûxùøØ¶ü°Î#""mêÔ?öì™5nœ[‹Ÿ;÷xåÊSÉÉÿ}Ëm¶'OÞmf¦»sç´VÇh+(ôt#õõRªô+§§ed EB¡ˆ ƒah¨ii©×»·>—K€õz÷ÖÖ„ð–Êʪ—,9õrÛ¶)S¦xÐ/;»ôÏ?ïŸ9×JåÓ§{Ι3ÈÚÚ€îPoÔ¸¸ûôifuu½±±ÖÀÖ<ž¥m'ê/ o …ÞfTUÕ_¼øôèщ‰¹¶¶†^Ó§èÕ«ݹcݺ³—.ÅÞ½û•A œ…BQ¿~ß?¾pÈû‡•ËI‡uë×™={ ‚’( ½Ý]æ¿™™%Tóç””‚ôôB©TN„¦fOªásÃÖ¿Ô ºS@G$“É·n½¶gÏß3gzþ÷¿þØß´k Iòöí¤  °ÒLL´?ýÔwÊž†† ݹ^£¾^Êç§óùé|¾àÉ“Œš±™™Ž¯¯‡—dzÄ/¯® …Þ·Ÿyþü&“1~|¿9s99™ÐªµjkÅÃ†í°±á9² Åƒ}}·Žá´aØLKúún ]éâ‚=z ãbÓh¦¤Ä¢*¸>>ÿÞY[+ÎÈhXõ[œ‘QüøqF~~9õ]G“ËÕãrÿ·ö×ÂB×Ü\s‹Å\¿~´­-端Îäç—ÿòË ]]5ºCÁû«©Ÿ8ñèðá xøpÇ“'dÃd2èÎõÿÔÕI¨e»|~zBBN]ÄÖÖÇãxñx\G“‹‹Ùöíf6Œ½|9æÐ¡ˆààH³€¯‰Ýß²›q¤ªªüë¯3&NÜuæLôäÉ-ô“ðö¶ˆH{›acc³TT”Œ‘ ­`E/¼­º:‰@P,4T‹‚âüü ꟔šš=ÍÍu¨%¿ffÿÞèà7@[xú4ó³ÏŽÕ×Kÿ}¦·· Ýq॥ ÷ï¿éRŒ\NN›6à“O¼--õéõ/‘¨6**Ï„‡§&%åÊd¤³³©‡—Çãòx–ŽÝXÑû¨¾gÏ>VVfëöÉ'>Ft‡zOTçû÷×êé5wÑÕ«qK–}þü¿-v®^¿þ|\\ÖÕ«_*4&€‚¡Ð ­R_/ÍÊ*ÉÊ*ÍÊ*ÎÊ*¥Z@gg—VVÖÁd2 5©nÏff:Ô ss,±èòêê$W Ÿ7ÏgãÆ1ÊÊh(Õ 4îÒleeðé§¾ãÆ¹©«wˆ.Íåå5áá©|¾ :ZðìY.I’}ú˜úøØòx\77‹æK;РÐûÞD¢ÚË—cƒ‚ÂRS ¨¾þþýUT”èÎõnª«ë‡ ÙæímóóÏÓ›9¬¸¸ÊÅeãÉ“‹}}íšpôè_úö5 œ¨Ð˜ †B/´‰ÒÒê À% 7rsË$A=z°ÿ©þê6^ÜAÊ  (W¯Æ­^ba¡ûdz;Ô’Ph¢¢¢&88òøñG™™%Ç;.X0¸#ti.-­~ð ªï¾|YÈd2\]Íy<ËÁƒmÝÜ,ÔÔZXÝ ½­D’dDDZppdhh‚¦¦êÔ©¼:×ÎÖ÷î=Ÿ9óÏ“' Ü\wàÀÀ‰ÝW¯ökæ±XjkûõŽSZì @/z ýÈdò¼¼ò¬¬Òìì’ÌÌ ÀEE•ÔZZ=ÍÌt^ýÓb{=è°ÒÒ„‹ÍÍ- œ8iRºã@S))„]¼ø”ÅbxÍœéÙ»·yrsË>|-OÍÌ,QRbyzZQ=™ûõ³À¯xz¥°°òÌþ±c‘99¥ƒÙxùù9w–8/>“u÷îWÍl9üå—'òò*NŸ^ÒÌ8ññÙ~~;þ¶¶6hƒ˜ ƒB/Я¶VL5|nò§¼¼†:@G§Uñ55Õ63Ó15Õ¡V7ó)tb±tǎн{ïŽé´mÛtÙíd2ùµkñÁÁ‘i¶¶œùóß®5²YY%aa©|~zt´ 3³¤G6µl×Ãۧ)~ÔÃÛ@¡W±äròÁƒ´ààÈë×ãuuÕüý=æÌdjªMw®V¼eîÜAk×~ü¦cŽÜ´éâóç[Øl曎9räÁ–-%'2476h ½ÐqUUÕgg—æä”fe5.—UTü¯¬««Ö°ê×Ô”º¡mn®Ûé6–è’“ó–/?‘]²aÃØ€/ºãt_55â³g:žš*4Èfþ|ŸáÃY¬7<ÚHJJµl—ÏO Eêê*ÔÊ][ãβ|:zÛˆPXqöìãÇäç—S |?úÈ¥ýb¼½C‡Â7mººÊÑÑøµ¤¦ ²-4t¥‹‹Ù›Y±âdnnÙéÓŸµYLÅ@¡:‘¨.'çu߆pNN™HTK ««fb¢ml¬ejªmjªcl¬E}ÉáhЛ ›«­ÿðÃÕÇ#&Ntß¼y¼¶v/ºu/iiÂ#Gœ=-“‘þþý?ùÄÛÖÖ°Ýf'I2!!‡ÏDG ¢¢^Vjh¨úúÚyxpy<®££I3«ëZ„Bo›’Éä¾޼v-^__}Ò¤þóæyiÑë5ärrܸ_I’¸|ù‹†ÆóòÊÓÒ„¾¾vA$éä´aåÊQ  ®­'%åÅÇgÇÆfs¹znnnnæª|°}Ø0ÇõëGÓúTZ†B/t"Q-UñÍÉ)ÍË+ÏÍ-ÏË+ÏÉ)-*ª”ÉäA(+³ML´ML´LL´MMµML´ÿ©ëôèÁ¦;>@w‘ºbÅ©ªªúo¾3mÚ4Ælk‰ìúõø£G>|øÂƆ3gÎ  •v˜Z.'sÂÃSù|ALLfqq•¶v/oo[®µµAG^\Hÿþ0¹\N}YZZM„ŽÎÿ.a2™Ÿ~:xêTmùº¨ŒŒâãÇ…„DUTÔúù9xy{Ût´ãÉÉy£FýôßÿúxÕÔˆ÷ìù{×®;¾¾vGŽ,¨ªªOLÌY»ö IR©,3³D.' ‚ðô´ŠŠzIA0Œµòó+¦LñðêÓÇDYÿD€Ž …^èú¤R¹PX‘›[–›[ž—W–—Wž“S–›[–Ÿ_QVVM£¯¯N-üm¨kk¨Ó Kª«“ìÞ}ç·ßnÛÛ7'w/ IDATýøãTggSºuM))„]¾#‘È'Mrðj¦U©¢H$²˜˜ÌèhAXXjLLfUU½®®ÚÀÖTqׯ†Ó°Æ 5ÒÒ„¾¾[›9 ,ìkkkƒvËÓ­H$²ÐÐj“ïÞ½õfÌ0}ºgC•½#X·îìå˱«VùýôShyy­\.WQQÒÕí•—WA’¤’S.'e²? xæ ¿¾^J}É`,S*•³XL[[ÎÀ67ŽAÅ: z [«­çä”ååý[ÎË+ÏË+ÏÍ-««“¡¤Ä22Ò22Ò46Ö¢n˜˜hji¨w´%,Krrþþ—=gŽ÷×_ܳ§ò«ÇTW×WW‹qÉÅ;¡j0AAaÑÑΧŸúŽ몡¡Úv3ŠÅÒ¨¨t>?Ï<}šY]]ojªíéiÅãYúøØZXè¶ÝÔÐ ¾#99ÿÕ¶ †££ñ­[«iIÕ­¤§<uò䣪ªúQ£úxùøØÒŠ âÊ•¸µkOWTÔR v) ñÚÏA Æ–-“Ö¯?O5€yÕìÙ·nÜFQZ…^€×+)©ÊϯÈË+ËÍ-ËË«ÈÏ/ÏÉ)ËÏ//(¨HdA()±¨Š¯±ñÿ*ÁÆÆÚ††šÆÆZúúêX²ð6¤Rù¾}wúéFïÞzÛ¶Möðà69`ÇŽëýùòíÓj¸Ãª®®ïÑC©Å]lsrÊŽypæ ¿´´úÃ]¼ ²i£GõõR>?=,,•ÏOOLÌ­­››ëlëáÁåñ,QÜ…v°oß½ÀÀ«R©¬Éýl6kÆ1 úÒ’ª‹¥7n$G†‡§Z[LÊ›9ÓKK«g󪮮WVf+)±æùóü Î?|ø‚Åb¾R¸eÄk>50Pß½{öäÉ»_ý“Ihk«=|¸^]½[ÿ€ …^€w#—“EE¢ÜÜòüüÿ­ýÍϯ V‰¨…#JJ, cㆰ¶†‘‘&‡£ah¨‰ÖMdd¯[wîþýÿþë×iX¿+V ðƒD"åñ¸!!ŸuÛs§¸¸jöì?W®ô>ÜñµÈdòk×⃃#¦Ô²Ý~ý,tuP’PˆãÇ#×®=Û¸C/‹ÅܶmòŒž4¦J||vppäùóOX,æ¸qnŸ|âíà`L}+<øúë   Ð ÐÑWQ»—”Tåç—W …¢ÂBQQQeAAE]„:ŒÅbêé©5Ô}Œ´ôôÔ8  }}uGCUU1{à´ƒ»w“ö¿úŽ•Á ~üqêôé]|­I’7^?](©¨(yxp¼<<¸ÎΦ¸":ÿþwï&S·årÒß¿?½yൠÆàÁvƒÛ …¢χ†&Ä¿?â©NËË–ŠV­òkýtvv†7n¬ž1coJJAÃA&“‘””àuèPøË—EÔýl6ÓÌL— ss]&“Ir‚ d2y`à$Ty ãC¡ sSRbq8šަák¨«“…"¡°B(ýó§B(ÅÇçTTÔV6,šìуmh¨i` ñÏ5nki©h4³v@Ξ}œž^øêöŠAIŒÅ‹ž=ûYÿþÜöNÖöD¢ÚÙ³÷?y’ñÚ§Ïd2++뛯ò>xðâË/O…"™Œl\G‘HdýžúâE!Õ–yêTž§§•‡·W/´e†NläH'ee6ÕßBY™=b„݉ 9zzj|¾ q[~ IAîÜy#7·|ûö)lvkw£00P¿|ù‹… ß»÷œú‰Êb±’’ò&Mê¿}û” vQ‡q8šÔ\ff:Ôµql6Ë××vÔ¨>­ ÐPèèâTT”,,t-,t_ûÝÒÒꢢÊÂB‘P(**ª +Š‹«òóËŸ?Ï +D¢º†#µµ{ü»=°¦®n/]]5}}u}}u]]5,…¨¯—nÛvMÞ´ð/¹œ”Ëåsçøë¯oú‹ÝIeg—Nº7'§´qGÓÆd2ù½{ɹ¹e&&Ú¯~·ªªþ»ï.ž8Åd2št+¥Uúû÷ß²ÅÁÝÝ+Õ ËPUý¿öî<¬©+ïøIB„@–¤,jܪ¢àŒË3N¥uÔ.V_éPÔŽÚQ»HGAê¸T_Ç…Ž3íÓê A‡Öªã¸•Z«U+h;ÖÑŽ""¾EQdKHBH„$÷ýãØ;nBİ¿ŸÇ§Ïåæžíž{OšürÏýêWC޽B/!a(žJïæòò~¬©©wô*Ãþó‚JUÿ׿¾úè])‹>ùäµÕ«ggÿ‹Æb±äçß%„Œ9ujÌñã…V«•ý\ïÞô§o/#cæ# Ð9èx¬úú9y¸¦†®l¨ªÒ©Õ†ÊÊ:µº¾¸¸Z¥ª¯­5˜Íöà€_…Â?0P,Q(üƒ‚$¥2 (H$ ‘H¥âÎjx0•ª>9yÌU×®Ý++«µXlßÛÛ«©ÉÂ/-›^oš93óر%AA’®­°»\¿^‘˜¸M§kàŒÑÚá<øŸ”” -öž9óã’%{kk Ã8ŠÂüìgOþâÑn©0@÷1mZÜ_äb›6-¶«ëmصë_±Z`³1¹¹ÿ7sfæîÝ ýÿþÆ3 ÿÍ›3 sýzÝ¿jÕó_]H/22„$„Â{óÍñœ?¦è†xLë%\c6[´Z£Ngª«k óB³:]C‹E‚‰ÝìÐ2™X*õ¥ëK¥¾˜ Ú***ºº nc±ØîÜÑ””Ô–”¨oݪ-.®©¨¨³Zm_ à›Í–YY¯øúzüéçÏßNKûœÎ=+ðù|Çc†Ç#V+a›ýLΡ¡Òœœßòù÷ï£Ñ¼eË™ƒó áXÕØžP(HLŒ]²ä™l —°0î%Æ¡«ô¤Q‚²Xl&l%„œ:õÖ£OùÛݸë2™LZ­Ö-Yµ›Zm˜:u;ûcðù>Ÿnól6ÃöÇ.²ÌÌİ0©[Š>v¬híÚcV«íøñ7‚ƒý!Û¶}·cÇ÷ééc !63fÌû …äÀùÞÞx6†B|}}årļº5z c±‹×Õ™hô·ªJoV©êÙ –Hä%—‹¥R±R TH¥b™ì¿ñ`¥R&ÃÑÎåååuu:Åb«ª2–—×——ëïÜÑ——ëÃÂü÷»Ÿ{th§°Pµo_‘H$ b±ÐÛ[  ||¼è†X, ùB!ßÏO( ¼½¾¾Â±@À#„TU¶m»TRRdžFø|ž@ÀgÆjµµþÄß»w@FFgzããã;¹Dp®GŽû[>!¼ßþvXWWÄýÜuÕÔÔ¹%«vkj²ªÕ f³Õhl6›­MMV“Éb2Yšš,MMÖ††û;ëë›-f³M,özãJ¥Ÿ[J¿~½öϾ°xñˆaô2©©ß,\;tèý‡z—,9õê«C‡Wº¥¸ $$dð`,z Эáçiбœ/LÑëU*}m­¡¶ÖXS£W« A¥ª¿{W“ŸG­6èt ìÁB¡€]80ÐO.÷“ËÅr¹_P„þ( |Ü ~ê©§ EW×¢“45Y!ýôU|°ûüó<Ž(/x|€îN((•R¥Rê|úÀÆÆæººº`p]‰ÎMÿ,+«½rånM¾²²e”«Å²Á-&‹¦û ]<3peeÝûïýá‡'bæÏÿe{j :š··WD„œ}j  çaW­p‡Ë<½ÐCøø}|¤J¥ÔÉ1V«M«mÐjZ­Q£¹ÿ_ößíÛµZíºß>•X,úéQ`?»G„ÅR©X&{à_ÇEôz!ÄjeŽ+8zôJT”âõן™>}„°ƒJ€î ^xŒüà`Ip°Äùa6£ÕµÚÆ@ñ¶Ö ÑµÚ†»w5t²h®Áb±Ù' ðµûÊåb©ÔW&óûiƒÝ)~Øm]I à[­6›!„ܺU“ž¾ÕªC3fŒxíµq<ñ°§<½-ñù¼  IP„‡+³Ø)£kjôUUuuu&véŠ ]QQݣћ›­ö ½½½d2±Tz?ÌÎM÷ü4¡´/]KX§kxV» l6[c£mß¾‹»wŸí³hQü”)1]>Å4tz ;e´óÇjÍf‹VÛ@ŸÖét:ÓOFº}ófÍO{ìòù<™LìϹ” Åb%„\½Z¾hѧ¡¡Ò¹sÇ>ù¤­õaÐÃà·ÞA$òR*ú÷bäÈÈI“†$&þ|Á‚qéé“7nüŸÌÌÙ{ö,üê«%çέ,*ÚPQñAQцsçV~õÕ’={nÝ:+55!<\F'mæd±X†©¨ÐmØðåÛoŸøãO¶Xf¸}nÞ¼I£Ë­7œ¸sçÎܹs†™5k–DÒÆ,Ù]ÈI[h._¾ìååµÿ~vNNŽH$ºzõ*ýÓh4¦§§6L"‘Œ9rÓ¦M‹…´ë¼ñ¸¸«¥mâñx7oÞì´â 'y”Q•#-‹täuŽ;¨ã°Ý眣ËÏÅÁ¼CÙêO>ùäœ9sT*•“ãöÝ—ÀcOôt;t5_û=—/—µX˜Åçó¼½½L¦f??ÑÓO çÏœ9Z.÷sG5dï¼óÎæúüóϧM›VQQ±{÷î²²²G¯Fç£Mˆ]±bEJJÊĉe2Y]]Ýo¼±fÍš¡C‡BêëëGŽ©P(222¢¢¢ W¯^}òäÉ“'O¶ï¼;w®oß¾КûJJJFŽ©V«;®x =Ê(Á¦íЋ“–e¿÷‚iÝ},û~ttº2˜w:¼[­Öâââ?ü0..îêÕ«2™Œó`~÷€Î‡'z<€Fcd˜žè‰¼x<ž—ô訥K•›ûÎïíØ1÷Ùgû(•þn)4888##ãaS8qbÒ¤I&“‰Ò»wo·Ô¤“Ñ&BV­ZLãË—/ MOO§Ç¬[·.$$äôéÓ“'Oîß¿ÿôéÓ/\¸PZZš••Õ¾óòăÜÛ(›ÍV[[ëÞ<e”`ÓvèÅÉÞÎ,Ü ¤u÷±ìûÑÑuèÊ`Þ èðþÌ3Ï>|822òƒ>pt°G¿{@çC ÀЩ˜½¼>>BBH` ß / ߺuÖåËÿ{àÀ›o¾9Þù Áö¾øâ‹ððp­VKÙ»woÿþýF£ÍfÛºuë AƒüýýÇŒ“››Kgƒt2±ê—_~+‹CCCÙoØÕjµŸŸŸ¯¯ïèÑ£ !4ZIóùæ›oz÷îýÝwßq&äñx;wî4hPHHHFFÆ®]»úöí+•JW¯^Mhnn^¶l™R©T(Ë–-knn3f ý®\£Ñðùü´´4BˆÕj•ËåG%„ètºßüæ7ÁÁÁiii-jBsf&--møðáôÉ0¶ „‘H”½sçÎM›6ýýïÏÎÎ …4ÕgŸ}öî»ï ö„øùù¥§§ïÞ½»çí¡:‹æŸ““3`À…B‘’’ÒÔÔÔf{ûõëÇöHk'NœˆŽŽ–Ëå›6mb»¬EŽÊ…ž§sF 6­ýpA¸nvâÂqäÈ‘˜˜ŸÈÈÈ]»vµ(˾Vn)®…sqv=á:KöÃK^^Þš5kz÷î2gÎNGsã<·­{Êb±p&o}©»É™[¿Ë´h‹‹ƒy‡6­5·hÑ"ú&Å™O‹ëÓ•<{ÌåíÁ@·÷Ë_nìÕké´imÙrêêÕr›ÍæèÈÜÜÜêêjç¹Í™3çÕW_­ªªR*•ÿþ÷¿†ùøã Å¡C‡***Ž=A¹qãýØØzC¯×‹D¢yóæ•——öÙg„šš†avîܹk×.û#ÙíÉ“'Ÿ>}º²²’3!!$))I¯×geeBõzýÇLQ«Õ ü÷Þ{3f̸sçNAAA\\ÜòåË×­[7uêT†arrrâââ†ùá‡|||ŒF#Ã0ÉÉÉãÇ¿uëVAAÁ!CÖ®]k_“üü|BˆÍfc£¼´¶lXË—/'„¬_¿žÝC£ *•ªÅ‰ýþûïÛqÞ!ùùùõrÔY4·I“&Ÿ?>::zíÚµ.¶—óz „<÷Üsz½þàÁƒô„sá¨\'ª««sss¯»öÃÃu³3m ƒÁÛÛ{ûöí•••;vìðòò2 ̃·3­­[Škq®<år1·Ö]Ïp%ûáeíÚµƒ.((¸zõê¨Q£ÒÒÒ¥âì©Í›7s&wò†âÊNWóŽncwá±.^¼(“Éœ—N_u”§½Ž»ü ]^ðí·?Ö×7ºr¤+!­VÃ~Ï;xðàììlö€O>ùÄy§©©éúõëƒÁjµž9s†ý"{ÆŒ†áú ¾  ÀIBBÈ¥K—†1›Í-¶é¬¬¬¤ž#k/??ß>sÏÅ="\EÑ©˜isÊËË]l¯#aaa„>ÿo Zád'ô<]2JP­ovºßÉ!—ËsssÏŸ?1nܸo¿ý–Ïç»RVûŠk­'ÝAœcŽ£³D‡—²²2¶]ƒ z饗¥âì)Î䎺qð˘\Ì;ºiœu»qã;V;*r1ÏžtùÀÃB à±s÷îÝ­[·N˜0!55•î ¿rå {Àµkלç`2™—-[véÒ¥ÌÌLºóøñã Ž’Ð gBWÐ'eiT«Õž?žÏçO™2%''§¸¸8..îÙgŸ=yòäÙ³gi W©T ‚’’šüÖ­[áááö5¡Ž9²}ûöüã¹¹¹­›PQQ‘’’²yóæ§Ÿ~zÍš5 .¬­­¥/%''ÿá OPB’’’öîÝ›‘‘‘””ô°ç͹ÖEÑdz!ÅÅÅaaa.¶×ÎeV[ád'ô<]2JP­oö6kk2™l6Ûþýû5ÍüùóŸþyFãJYí+®µžtqŽ9ŽÎ^ÂÂÂnß¾M÷äççoذÁQ*ΞâLÞºû, !äÞ½{®´ÂõÁ¼C›Öºb ÃlÛ¶¾O9)r1ÏžtùÀÃB àñb³ÙæÍ›·xñâ½{÷ž:uêÈ‘#„yóæ-[¶,''§ªªêøñãt!C'šššÌf³H$2™LkÖ¬!„Ô××çää¼øâ‹íHèJµ§OŸþûßÿ¾¬¬¬   !!á/ù !dÊ”)™™™£F …ãÇÏÎÎîÓ§OŸ>}!B¡ðå—_NII)---,,\µjUrrrëlýüü °|ùòE‹566Ú7a˜… ÆÄÄÌŸ?Ÿ’ššªT*/^L_}÷Ýw«ªª&Nœøõ×_GFF¾òÊ+¯½öZûš¯R©ªDtõöÛoß¼yóâÅ‹+V¬˜5k–‹í5 t#++«®®Îù9oQ„“ÐÃt•){÷IDATÉ(Á^œœ7»s<oÒ¤IÔëõf³Y(ŠÅbç#Ò£GzîähÌq~–fÏž½råJ:Óï[o½UVVæ(gOq&·ï>™LFùôÓOõzýG}d_4Û-¸>˜whÓèÁtx¿wïÞ™3g^zé¥ÒÒÒ¥K—ºRº£<{êåíáöÉ   µ¹úæ–-[† f6›†9|øphh¨F£1›ÍëÖ­ëÛ·¯D"3fÌž={ˆÓÕ7†yÿý÷{õê•™™™””$—Ëéâ¸çꉜ  óà*†œÛz½~îܹr¹<((hÁ‚F£‘aNçååµ~ýz†aŒF£H$JOOg Òh4³gÏ ]²d‰ÉdrT+“ÉÔ¿ÿ+VØ7!;;ÛÛÛÛ~ùÞ .ðùüÐ? Cjjê!C|||¢¢¢V®\9nܸ—_~ù¡ÎÛ|ÎìœEsËÊÊêÓ§OppðâÅ‹M&S›ímnn;v¬D"qr’ÙmÎ"•ëÖèힺÛ(Ñââä¼ÙÛ"öíÛ%‰˜““c6›í˲?Ò-ÅyâäJnœ]Ïp%ûŽnllLKK “J¥IIIZ­–îç<·-zŠ3yëî[¿~½L&‹ŠŠ¢³.3öc‹Ë¯Erçƒy‡6ypxïÕ«Wrr²ýÝç¼t'yvÂå‡5z<qme ðyyyO=õ”B¡x”LnÞ¼Ù¯_?|`|Xf³ùÒ¥K£GîÐR:¡w8‹hG¹555EEEñññn®<Œ­{ÞA¸îºüèôìƒvsýÀ­0u3€{ˆD¢ŽŽòPôx’€€€… v~P.@Ï€;º.?€Ç ¦nèQÜ2)+€[`ªØî £„§ÀÔÍÐ…0u3€GÀ½^ƒ@/€‡A Àà Рàa¼ººàf:Îb±tu-ˆÁ`èê*7Œ¡#î ŠŠ ·ç =Rcc£OW×Ú€@/@OƒïñÀ9Œ­âââ®®x zº?Ã0]]xX£Àà Рàaèð0ôx˜ÿ$ý–ëÈÖ!IEND®B`‚XQilla-2.3.0/docs/simple-api/inherit_graph_9.map0000644000151400015140000000024411653571064016375 00000000000000 XQilla-2.3.0/docs/simple-api/classQueryPathTreeFilter.html0000644000151400015140000006342111653571064020455 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

#include <QueryPathTreeFilter.hpp>

Inheritance diagram for QueryPathTreeFilter:

List of all members.

Classes

struct  StackEntry

Public Member Functions

 QueryPathTreeFilter (const QueryPathNode *qpn, EventHandler *next)
 QueryPathTreeFilter (const QPNVector &qpns, EventHandler *next)
virtual ~QueryPathTreeFilter ()
virtual void startDocumentEvent (const XMLCh *documentURI, const XMLCh *encoding)
 Handles a document node as an event.
virtual void endDocumentEvent ()
 Handles a document node as an event.
virtual void startElementEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname)
 Handles the start of an element node as an event.
virtual void endElementEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName)
 Handles the end of an element node as an event.
virtual void piEvent (const XMLCh *target, const XMLCh *value)
 Handles a processing instruction node as an event.
virtual void textEvent (const XMLCh *value)
 Handles a text node as an event.
virtual void textEvent (const XMLCh *chars, unsigned int length)
 Handles a text node as an event.
virtual void commentEvent (const XMLCh *value)
 Handles a comment node as an event.
virtual void attributeEvent (const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)
 Handles an attribute node as an event.
virtual void namespaceEvent (const XMLCh *prefix, const XMLCh *uri)
 Handles a namespace binding as an event.

Protected Types

typedef std::vector< StackEntry * > FilterStack

Protected Member Functions

void checkAncestors (FilterStack::reverse_iterator s)

Protected Attributes

FilterStack stack_

Member Typedef Documentation

typedef std::vector<StackEntry*> QueryPathTreeFilter::FilterStack [protected]

Constructor & Destructor Documentation

QueryPathTreeFilter::QueryPathTreeFilter ( const QueryPathNode *  qpn,
EventHandler next 
)
QueryPathTreeFilter::QueryPathTreeFilter ( const QPNVector qpns,
EventHandler next 
)
virtual QueryPathTreeFilter::~QueryPathTreeFilter ( ) [virtual]

Member Function Documentation

virtual void QueryPathTreeFilter::attributeEvent ( const XMLCh *  prefix,
const XMLCh *  uri,
const XMLCh *  localname,
const XMLCh *  value,
const XMLCh *  typeURI,
const XMLCh *  typeName 
) [virtual]

Handles an attribute node as an event.

Reimplemented from EventFilter.

void QueryPathTreeFilter::checkAncestors ( FilterStack::reverse_iterator  s) [protected]
virtual void QueryPathTreeFilter::commentEvent ( const XMLCh *  value) [virtual]

Handles a comment node as an event.

Reimplemented from EventFilter.

virtual void QueryPathTreeFilter::endDocumentEvent ( ) [virtual]

Handles a document node as an event.

Reimplemented from EventFilter.

virtual void QueryPathTreeFilter::endElementEvent ( const XMLCh *  prefix,
const XMLCh *  uri,
const XMLCh *  localname,
const XMLCh *  typeURI,
const XMLCh *  typeName 
) [virtual]

Handles the end of an element node as an event.

Reimplemented from EventFilter.

virtual void QueryPathTreeFilter::namespaceEvent ( const XMLCh *  prefix,
const XMLCh *  uri 
) [virtual]

Handles a namespace binding as an event.

Reimplemented from EventFilter.

virtual void QueryPathTreeFilter::piEvent ( const XMLCh *  target,
const XMLCh *  value 
) [virtual]

Handles a processing instruction node as an event.

Reimplemented from EventFilter.

virtual void QueryPathTreeFilter::startDocumentEvent ( const XMLCh *  documentURI,
const XMLCh *  encoding 
) [virtual]

Handles a document node as an event.

Reimplemented from EventFilter.

virtual void QueryPathTreeFilter::startElementEvent ( const XMLCh *  prefix,
const XMLCh *  uri,
const XMLCh *  localname 
) [virtual]

Handles the start of an element node as an event.

Reimplemented from EventFilter.

virtual void QueryPathTreeFilter::textEvent ( const XMLCh *  chars,
unsigned int  length 
) [virtual]

Handles a text node as an event.

Reimplemented from EventFilter.

virtual void QueryPathTreeFilter::textEvent ( const XMLCh *  value) [virtual]

Handles a text node as an event.

Reimplemented from EventFilter.


Member Data Documentation


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classStaticAnalysis.html0000644000151400015140000013161111653571063017474 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

Records access to various parts of the context during static resolution. More...

#include <StaticAnalysis.hpp>

List of all members.

Classes

class  VarEntry

Public Types

enum  Properties {
  DOCORDER = 0x001, PEER = 0x002, SUBTREE = 0x004, GROUPED = 0x008,
  SAMEDOC = 0x010, ONENODE = 0x020, SELF = 0x040, UNDEFINEDVAR = 0x080
}
 

Properties that allow optimisation regarding sorting or not.

More...

Public Member Functions

 StaticAnalysis (XPath2MemoryManager *memMgr)
 StaticAnalysis (const StaticAnalysis &o, XPath2MemoryManager *memMgr)
void copy (const StaticAnalysis &o)
void release ()
void clear ()
 Clears all the information in this StaticAnalysis.
void clearExceptType ()
void forceNoFolding (bool value)
 Overrides all the other flags, and never allows this sub-expression to be constant folded.
bool isNoFoldingForced () const
void contextItemUsed (bool value)
void contextPositionUsed (bool value)
void contextSizeUsed (bool value)
bool isContextItemUsed () const
bool isContextPositionUsed () const
bool isContextSizeUsed () const
bool areContextFlagsUsed () const
 Returns true if any of the context item flags have been used.
void currentTimeUsed (bool value)
void implicitTimezoneUsed (bool value)
void availableDocumentsUsed (bool value)
void availableCollectionsUsed (bool value)
bool areDocsOrCollectionsUsed () const
void variableUsed (const XMLCh *namespaceURI, const XMLCh *name)
bool removeVariable (const XMLCh *namespaceURI, const XMLCh *name)
bool isVariableUsed (const XMLCh *namespaceURI, const XMLCh *name) const
bool isVariableUsed () const
VarEntry ** variablesUsed () const
void add (const StaticAnalysis &o)
 Sets the members of this StaticAnalysis from the given StaticAnalysis.
void addExceptContextFlags (const StaticAnalysis &o)
void addExceptVariable (const XMLCh *namespaceURI, const XMLCh *name, const StaticAnalysis &o)
bool isUsed () const
 Returns true if flags are set, or variables have been used.
bool isUsedExceptContextFlags () const
void creative (bool value)
bool isCreative () const
void updating (bool value)
bool isUpdating () const
void possiblyUpdating (bool value)
bool isPossiblyUpdating () const
unsigned int getProperties () const
void setProperties (unsigned int props)
const StaticTypegetStaticType () const
StaticTypegetStaticType ()
std::string toString () const

Static Public Attributes

static const int HASH_SIZE = 13

Detailed Description

Records access to various parts of the context during static resolution.


Member Enumeration Documentation

Properties that allow optimisation regarding sorting or not.

The values are OR'd as flags, so they must be distinct bits

Enumerator:
DOCORDER 

Results are returned in document order.

PEER 

Results do not appear in the descendants of other results.

SUBTREE 

Results are members of the set of descendants of the context node.

GROUPED 

Results are grouped by the document they come from.

SAMEDOC 

Results are from the same document as the context node.

ONENODE 

Only ever returns one node.

SELF 

Only ever returns the context node.

UNDEFINEDVAR 

This is a variable that has been undefined.


Constructor & Destructor Documentation

StaticAnalysis::StaticAnalysis ( XPath2MemoryManager memMgr)
StaticAnalysis::StaticAnalysis ( const StaticAnalysis o,
XPath2MemoryManager memMgr 
)

Member Function Documentation

void StaticAnalysis::add ( const StaticAnalysis o)

Sets the members of this StaticAnalysis from the given StaticAnalysis.

void StaticAnalysis::addExceptContextFlags ( const StaticAnalysis o)
void StaticAnalysis::addExceptVariable ( const XMLCh *  namespaceURI,
const XMLCh *  name,
const StaticAnalysis o 
)
bool StaticAnalysis::areContextFlagsUsed ( ) const

Returns true if any of the context item flags have been used.

bool StaticAnalysis::areDocsOrCollectionsUsed ( ) const
void StaticAnalysis::availableCollectionsUsed ( bool  value)
void StaticAnalysis::availableDocumentsUsed ( bool  value)
void StaticAnalysis::clear ( )

Clears all the information in this StaticAnalysis.

void StaticAnalysis::clearExceptType ( )
void StaticAnalysis::contextItemUsed ( bool  value)
void StaticAnalysis::contextPositionUsed ( bool  value)
void StaticAnalysis::contextSizeUsed ( bool  value)
void StaticAnalysis::copy ( const StaticAnalysis o)
void StaticAnalysis::creative ( bool  value)
void StaticAnalysis::currentTimeUsed ( bool  value)
void StaticAnalysis::forceNoFolding ( bool  value)

Overrides all the other flags, and never allows this sub-expression to be constant folded.

unsigned int StaticAnalysis::getProperties ( ) const
StaticType& StaticAnalysis::getStaticType ( )
const StaticType& StaticAnalysis::getStaticType ( ) const
void StaticAnalysis::implicitTimezoneUsed ( bool  value)
bool StaticAnalysis::isContextItemUsed ( ) const
bool StaticAnalysis::isContextPositionUsed ( ) const
bool StaticAnalysis::isContextSizeUsed ( ) const
bool StaticAnalysis::isCreative ( ) const
bool StaticAnalysis::isNoFoldingForced ( ) const
bool StaticAnalysis::isPossiblyUpdating ( ) const
bool StaticAnalysis::isUpdating ( ) const
bool StaticAnalysis::isUsed ( ) const

Returns true if flags are set, or variables have been used.

bool StaticAnalysis::isUsedExceptContextFlags ( ) const
bool StaticAnalysis::isVariableUsed ( const XMLCh *  namespaceURI,
const XMLCh *  name 
) const
bool StaticAnalysis::isVariableUsed ( ) const
void StaticAnalysis::possiblyUpdating ( bool  value)
void StaticAnalysis::release ( )
bool StaticAnalysis::removeVariable ( const XMLCh *  namespaceURI,
const XMLCh *  name 
)
void StaticAnalysis::setProperties ( unsigned int  props)
std::string StaticAnalysis::toString ( ) const
void StaticAnalysis::updating ( bool  value)
VarEntry** StaticAnalysis::variablesUsed ( ) const
void StaticAnalysis::variableUsed ( const XMLCh *  namespaceURI,
const XMLCh *  name 
)

Member Data Documentation

const int StaticAnalysis::HASH_SIZE = 13 [static]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classAutoNodeSetOrderingReset.html0000644000151400015140000001601711653571063021432 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

AutoNodeSetOrderingReset Class Reference

#include <ContextHelpers.hpp>

List of all members.

Public Member Functions

 AutoNodeSetOrderingReset (StaticContext *context, StaticContext::NodeSetOrdering ordering=StaticContext::ORDERING_UNORDERED)
 ~AutoNodeSetOrderingReset ()

Protected Attributes

StaticContextcontext_
StaticContext::NodeSetOrdering ordering_

Constructor & Destructor Documentation

AutoNodeSetOrderingReset::AutoNodeSetOrderingReset ( StaticContext context,
StaticContext::NodeSetOrdering  ordering = StaticContext::ORDERING_UNORDERED 
) [inline]
AutoNodeSetOrderingReset::~AutoNodeSetOrderingReset ( ) [inline]

Member Data Documentation


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classMessageListener-members.html0000644000151400015140000000537411653571063021271 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

MessageListener Member List

This is the complete list of members for MessageListener, including all inherited members.
trace(const XMLCh *label, const Sequence &sequence, const LocationInfo *location, const DynamicContext *context)=0MessageListener [pure virtual]
warning(const XMLCh *message, const LocationInfo *location)=0MessageListener [pure virtual]
~MessageListener()MessageListener [inline, virtual]
XQilla-2.3.0/docs/simple-api/DateOrTimeType_8hpp__dep__incl.png0000644000151400015140000001632111653571064021265 00000000000000‰PNG  IHDR ¸è»bKGDÿÿÿ ½§“†IDATxœí{TWþÀï€PÄ`P1(EÐöW=>9*W]«,(âcÅd⮟õ±ÖV¬–={´T_•Š( €š®ˆâ¶*AˆÚ@%TJ $òšßÓ¦1™„G ‘›û9üqçrï÷~3ŸÌG2 Çq€€K'€è[`ÈA‚! †ª~ÕܹsÍŸ¢WÈËËÓ©Áô¢1 ûàƒ˜L¦¹²BôoÞ¼yö왾M’-6kÖ¬>O Ñ{üë_ÿÒ¯Gû`ÈA‚! †$r`È!?Šî”   MÙÕÕu„ ±±±NNN&fÓÞÞ~öìÙ’’¡Pèéé9}úôeË–Q(í6·oßþì³Ïôûîß¿ÿþýwîÜéÙІÂ&''³ÙìžÅÔ'(((55uøðá½°Sz(püøq‹¥V«ëêê233£££OŸ>íàà@ÚX(®_¿>;;ÛHÀ¶¶¶ØØX:ãææöüùóS§N=|øð«¯¾²±ùc¦™:ujff&sÆ D€ãxDDD_Ž¡°C† éqÌ÷ž vrrrvv0Œ€€€üã—/_^³f icµZ-‹üöÛoœœîîî}ôÑš5k¸\îüùó5Í 0`À€L&9DGG÷øå Û¯é}0†aþóŸ ‰Å¬[·.$$$44ôÂ… €¿ÿýï€%K– ”Jå‰'/^¼xñâ'N(•J@^^ÞªU«´7Ö.[¶,//ïÕ«WAAAeeeK—.}üø1iD¢ÄårW¯^ýÉ'Ÿ\¸páæÍ›óçÏ?}ú´‘H9vìØ—_~I”e2YHHHUU1Ö½{÷V®\¹xñâcÇŽ)Š.†}øðaddäÂ… ¿ûî;MÚ:¡ Åï½våîî^__hkkÛ»w¯··wjjjlllrrrsssbb" ++‹hœ‘‘! “’’¾úꫲ²²3gÎH$’¦¦&ý½›Í~ùò%Q¾téÒŽ;¼½½»’Oiié7ß|œœüàÁƒS§NÅÆÆž?ž˜Hô0gæÌ™÷îÝS©T€{÷î±X,M’W¯^=tèÐ_|QTTD¼»¶¨¨(99yÛ¶m)))šYM?”¡ÊîÒûGÑvvv§NŠ‹‹sqq!.hK¥R6\.wÓ¦ML&ÓËË+&&¦¸¸ØP4 ÃÔj5QŽŽŽ 8p`WÒXºt)F ,_¾œF£…„„Z[[»•À¸qã¨T*Çܺu+88Ã0â_±±±îîî¾¾¾ûÛ߈«ü] K$6mÚ4M2¤¡ Uv—žïƒunnn*•*Ž=*“É mm ¡¡¡šE{{{ggçêêêI“&i·¬®®3f Qöôôìz>4HF§l(Cqlll¦OŸþ¿ÿýÏËË«´´tË–-š¹»»k{ûömú¸¸4ïC¡ Uv—ÞŒãxNNÎäÉ“ÄË”)S —ËÕoïèèøïÿ›8[ &gÀœ9s¾ýöÛÀÀ@Ín¸½½=--M³Ê´ ™i†˜5kÖÁƒGŽ9~üø¡C‡jê—— ®®ŽÐÖ•°:j …2TÙ]z>E777755566VTTìÙ³G(†‡‡ …R©¤R©r¹œØ µµµ]ˆTÀôéÓ“““_¿~]SS³mÛ¶«W¯V¯^-‰6oÞ\\\,~øá‡ØØXƒ±hÑ¢'iÒ áïï¯R©Î;GLøŽ?þêÕ«Ÿ~ú)%%…ø4ìõë×õwR:è‡2TÙ]z¾Mlذ(0™Lÿ“'O3’ƒƒCllìÁƒ ´|ùòÙ³goÛ¶-##cüøñ¡¡¡7nܬ]»öøñãëÖ­Ã0lÆŒ111vòäÉ3gΜ8q¢¾¾žÅbÍž=;,,ÌÖÖ¶ÇI‚4CØØØÌ˜1ã¿ÿýïŒ3´ëçÌ™³eË–öööÙ³gGFF {ôèÑ€€#{ýPÄ„¬¿à¿oß>ôy°6))) Ÿ~ú)±øêÕ«+Vôøª™6¤¡zŸøš¢!MÑV  9H0ä ÁƒCŽu nl”ýú«ÌÒY˜òÓ$///:n‘„ú‰Äàà °t"½H$ª©©éÒ­+aaafIÉ”–21 óò²³t"}‚Î'­$[0¬TVÖÏž}Ÿ¿Í×—eétÌ„íƒsrÊ©T*•’›[né\̇µÆq<-­H©T+•ª´´Bë™·¬EðǵoÞüö ·×¯Å¥¥µMÇ|X‹à«WËlm»CÂÖ–råÊ#Ëæc6¬B°R©ÎÊ*U(TÄ¢B¡ÊÊz¨Tª-›•y° Á?þÈoii×®iii¿w¯ÊRù˜«|åJ)•úÎ+¥R±¬¬RKåcNàÜÞ®¸v­B©TiW*•êk×*ÚÛ{x?H?~Á·n=ko'¹G¨½]‘ŸÿÌüù˜øgf>¤PH¾kN¡`™™ðÏÒ nmm¿}»’ô€Y©Tçç?“H:ÌŸ•9\0—ûXsv¤B¡âryæÌÇü@þaƒH$‹ÿ8AÚ½; ðùçK45C† ¤ÓÝsÐßéµÛ¹ÞOèt{mööv€#zx#Wò)C 9H0ä ÁƒC 9H0ä ÁƒC 9H0ä ÁƒC 9H0ä ÁƒC 9H0ä ÁƒC 9H0ä ÁƒC 9H0ä ÁƒC 9H0ä¼s‡ÿÉ“'-˜Š¸|ù ,l¸¥é[´uÿŽ`Ò'ŸÂ…âP©Z,HßòÎÏràZÒÓÓqD¿%==]Ç)ÚC 9H0ä ÁƒC 9=üÙgŸa¯©¹xñ"FFyy¹öâÈ‘#W­Zõöí[ÓS—J¥g„ ƒþ裾øâ ¥’ägƒM½ººÚÄk¤0 «®®6%l×é‰`Ç/^¼èééIœu,Z´H( …Âû÷ï„¿ãçç¸ÿ¾P(gΜ‹Å'Nlnn6¿¦¦†Á`Ï¡µµõÃ?,))9|øpiiéÎ;¿ûsçªT$?=ڭѵqrrÚ¾}{WZ¾¿hŸƒ®]訨¨À0,//ðóÏ?ëü·ªªJ?lUU•fQ­VϘ1cïÞ½†âëGÐgëÖ­Ó§OW*•š‰D2räÈääd–ݽw!}-:)õ"½s¡ãâÅ‹3gΜ3gŽöFÜE0 [¿~ýõë׉Åk×®Òh4‹EÌù“'O 6Œh P(8Ž««+“Éäp8 …ššºwï^ …¢ kooÏápRSS‰Y1??ßÓÓóÇ4>º~píîgÏž%&ØO>ùdóæÍD—ŽŽ:NDÐï®R©Ž92f̘ÁƒO:µ¨¨ˆt%ܼy“ÍfÓéôC‡ßgòììì±cÇ2™Ì¸¸¸ŽŽÒÊî®ínoÁjµzÔ¨QIII8ŽïÞ½ÛÏÏO§A§[0Žã%%%NNN8Ž‹Åb;;»¨¨(@šš xóæN„LJ††¾|ù’ÇãMœ8qÇŽ"‘ðöí[¡ïÝ»çêêJtŸ7oÞíÛ·%‰‘ÑIƒkw///Z»$µZãxvv¶›››B¡ ížÀd2³²²êëë¯_¿îææȶà ˆÅâÌÌL@cc#1hpp0ŸÏ/,,d³Ùû÷ï'­4nG î¶àÂÂB*•ÚØØˆãxii)àñãÇÚ º%¸£££²²R"‘¨Tª»wï-u"øøø…B¢œ——`Hðƒ ÑÇãu::ipíîšL¤R©½½}qq1ŽãË–-Û¹s§¡îcÆŒ9{ö¬f¬sçΑ .((Àqœ8bмdMÎééél6›´7оànÿ^ôÅ‹•J¥öAPzzú¸q㺤ªªjôèÑ;;;>Ÿ¿nÝ:‰DHÚ¸¶¶–Åúãa¡ŽŽŽNNNÆ +//Ÿ3gŽvËòòrÍ#V}||:48iw¶hÑ¢ŒŒŒ>ø 77÷Ñ£G†ºËåò€€M¿¿?iÄ–mcóÎ.ÒÛÛ[3º@ 0RÙuº·V©Tééé ­¿³yófb£ïzÇ¿ùæ›ùóçd2Yxx8‡Ã)++KLL$mOl”ÄûQ$"##8 }Ì,•J>B,ÚÚÚv:º¡à¤Ý#""222rrr&Mš¤YéúÝGŽYQQ¡éõôéSÒ4HϾˆMÀçó‰w€¡Ên 3uŸ¢ïܹC¡P^¿~­©yøð! ¬¬LSC:EkNT -ZäîîÞÜÜL¬ ø\®T*ݶmŠˆÐÚÚJt‹‹ûË_þR[[[QQññÇoذÇñ–––±cÇΜ9“Ëåòùü¬¬,??¿©S§¶··ë$`dtÒàÚݵËı•···ö ¬ßý?ÿù“ɼzõªP(är¹^^^D„äädÍ @k¯´¦è   ªªªââbooï½{÷’V±ƒ›¾މ‰ Ö®Q«Õ£GÞ¾}»¦†T°ÈÈHí·HBB‚³³³‡‡GbbbDD“ÉT(Ó¦Mspp ˆÅâ5kÖÐét—èèh©TJÔK$’-[¶Œ7ŽF£ùùùßÓÆºîMrvþÇHtÕÒ‰ô-ÚN©†þ’ÀÀ½`ÕÕgg˜Ÿ¬탹\qíýÆ ÈŸú­ NO/Æqžž^lé\̇µ®«kzôè%Žãj5(+{QW×déŒÌ„µÎÍ-§P~{± –›[nÙ|̆µ¾t©D©üíû=J%~éR‰eó1V!øçŸøü­ œÏoøùçƒ Â*gg?¢R)Ú5T*%'ç‘¥ò1'ð Æqüòå?æg¥RuéR Üçýð ./¯{õJ¤_ÿꕨ¢¢Îüù˜ø_½Z¦3?P©”«WËÌŸ™\°J¥ÎÈП ”JUFÆC•Jmþ¬Ì ä‚ kD¢6*•bgGÕù£R)MMÒ¢¢KçØ·tûÞ¤þ•j³{÷Íâµk€ &h7°@Zf³†#I 11çII«-ˆù€üý‹@‚! †$r`ÈA‚! †$r`ÈA‚! †$r`ÈA‚! †$r`ÈA‚! †$r`ÈA‚! †$r`ÈA‚! †$r`ÈA‚! †$r`ØééÃØþxZ?bÐ ŸAƒ >vöýÄć öÂot\ºtÉô RÂÃÃMŒÐ ‚ÃÂÂL‚è#Ð>r`ÈA‚! †$rÌ!ðêêê^Œ¦OoïY>½øêz³nÁ555 Ãô8÷ïß¾‹ùsè/˜õÇHÕjõ¯¿þjzœ¡C‡6̲9ô̺Ož< q£P(8Ž««+“Éäp8 …€aØéÓ§}}}‡þüùQ£F9::îÙ³Çxðk×®Òh4‹P*•ûöíóôô:tèªU«ˆ‡nêäÐÜÜü׿þ•Á`¸»»oݺµ½½½ººðüü|OOω'®]»–h)‘Hh4Ú£G$Oz¸yó&›Í¦Ó釲³³ÇŽËd2ãââ:::H+{c¥v†é×¢;m¨ªªÂq¼ªªJ»ýáÇCCC_¾|Éãñ&Nœ¸cÇ¢qDD„X,NII„‡‡‹Å⤤$@cc#Ñ ¼¼¼U …B!‹íì좢¢Ajj*àÍ›7GŽñóóãñx?þøã·nݪŸCddäìÙ³ùå7nܸýû÷ æÍ›wûöí7n¸¸¸( ÇSSSýüüÔjµþ«[°`X,ÎÌÌ$’$"óùüÂÂB6›­ «SÙ•UgâµhK öññ …D9/// €h\VV†ã¸\.×)Aôߣ¹¹¹•••‰D¥Rݽ{—hŽãúÓŸâããI_]AAŽã*•ŠW;±–tÂj*»²ê,ÿaC©­­e±XšEGÇßë;xð`€­­­NYCUU›ÍÖ‰Æçó×­['‘H‰š/^x{{e______.¯_¿V©T£G&Ùl¶@ Ê>>> …²dÉ’¬¬,ÿ[·n‰>nnn›wöwš¡}||4aI+ûKž3 b£Äq\$ö8”L& çp8eee‰‰‰D¥››[mm-Q.//ÿüóÏuz¹ººR(”ššß~Õÿ—_~>|8QÖ¼¥Â®\¹réÒ¥iÓ¦¹»»“ŽNzžFl²>ŸO¼ Uö),‘HˆÂ’%KvîÜùâÅ òõ×_÷8fGG‡\.·³³“Édûöí´¶¶®\¹r÷îÝOž––fé\zú°ÁEEE~øaTTÔ¬Y³ºÞkÈ!111]©4¦lþV2E[`ò¶`ÈA‚! †$r¬K°æÈÅz°.Á……5Ð?OV‡^¸ÐaÙ¯Du GÇ @KËK'b>Lz¼l]])™• ß½»ÃðƒÿBé7oÊÉ“'{xxô¸»I[°‡‡‡)c›™Û·+e²BpWWÿ  ~va±¢}ðåË% F¥Ú\¾\bé\̇µ–J;¾ÿþ±J¥V*Õ\.¯­MnéŒÌ„µ¾uë™B¡"Ê …êÖ­§–ÍÇlX‹àŒŒ‡ZKØ»‹0c‚E"iAÁOjõoç jµúΟD"©e³2V!øÆ žÎÙ Ž.÷±¥ò1'V!8#Cÿ°'«„ø …ÍÅŵšù™@­Æ‹Šž74tòÍH€_pNN9éu+ ËÉ)7>f~Á—/—¨T$—cU*µ5\ñ€\pmmce¥ôz;ŽƒgÏêkkÍŸ•9ük³¥¥µ¾¾njµšXlnn89шE›ÒÒÚ‘#a¾ܤO“ú11çII«-ˆù€|ŠF ÁƒC 9H0ä ÁƒC 9H0ä ÁƒC 9H0ä ÁƒC 9H0ä ÁƒC 9H0ä ÁƒC 9H0ä ÁƒC 9H0ä ÁƒC 9H0ä˜t‡ÿܹs{13ÐÐà6¬ÞÒ‰t¼¼¼÷5I0†a&þ\5Â8ÄO®›ô3–}.Â8¦?[íƒ! †$r`ÈA‚!ç}\]]M<`K¿`b@3tÇ0¬ºººÇcõ)ï‹`''§íÛ·¿Ïû)ï‹`ƒÿ>ì§ô­àœœœáÇ‹D"@ZZÚ˜1c¤R©Z­>~ü¸¯¯ïàÁƒ§L™rçÎbŠ32%^»v-00F£±X,Rm¹¹¹þþþôòò:þ¿°°Ífïß¿_»ûáÇCCC_¾|Éãñ&Nœ¸cÇýõ°`Á±Xœ™™ÙiLJãkÏô+Y}.X$¹»»ûûûk^ŒŸŸßÙ³g5 Î;g\pGGGee¥D"Q©TwïÞ%kÑÔÔdkk{ôèQ‘H¤V«[[[U*•Žà²²2Çår¹N¹ªªŠhÉãñˆÆééél6[»»P($Êyyyúë¡  Çq•JÕiLJãk¯\ªtrrŠŽŽ~úôill,QSSS iàïïo<‚ŸÏ ™4iÒÙ³g5õØïÐéô;w»Ïœ9ó‡~°±Ñ}]ƒØÚÚê”5x{{@ ý¯ÚÚZ‹EŒ5wîÜçÏŸë'éææÐ—4¦‘ú‚>\WWwüøñ9sælÙ²…¨>|xEE…¦ÁÓ§ŸOØÒÀ`04s†H$"}¢.éiL#õ}+X­VGEEmܸ1--íÖ­[¹¹¹€¨¨(‡“ÝÐÐðý÷ßïØ±ÃxŽŽ¹\ngg'“ÉöíÛhmmÕn€aXpppff¦X,–Ëå¶¶¶4­»©nÚ´©ººº¤¤d×®]+V¬Ðþ×’%KvîÜùâÅ òõ×_RRRZZ:y*iL#õ ¦Ìï ³}ð±cÇ&L˜ —Ëq¿rå ‹Åjjj’Ëå5j”ƒƒÃ”)S.\¸ŒîƒqOHHpvvöððHLLŒˆˆ`2™:¥§§=ÚÎÎÎÇÇ';;[§;ÐÚmë—‰–)))#FŒ`07n”ÉdÚÝÅbñš5kètº‹‹Ktt´T*5%¦N¥ñ5ܲ:E{UZ„¾H€4fêYË‚ƒ!C†ÄÄĘ!f_ Ô9¦lþ}e§AS4¢`ÈA‚! †$r`È1õÖ•ñãÇ»ººöbBm^¿~ýøñcS™ôüà°°0Sº#:…N§ûøø˜Áºžl… }0ä ÁƒC 9ÿNå‹~•™IEND®B`‚XQilla-2.3.0/docs/simple-api/inherit_graph_2.md50000644000151400015140000000004011653571063016267 0000000000000044f51e6ffbcb20da990b5c71bccd316eXQilla-2.3.0/docs/simple-api/ATDateOrDerived_8hpp__dep__incl.md50000644000151400015140000000004011653571063021223 0000000000000034b6bff20e75cddbc493640463b2f902XQilla-2.3.0/docs/simple-api/classDebugCommand-members.html0000644000151400015140000001220611653571063020514 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

DebugCommand Member List

This is the complete list of members for DebugCommand, including all inherited members.
briefHelp_DebugCommand [protected]
compatName_DebugCommand [protected]
DebugCommand(const char *name, const char *compatName, const char *briefHelp, const char *moreHelp)DebugCommand [inline, protected]
execute(InputParser::Args &args, BaseInteractiveDebugger &env)=0DebugCommand [pure virtual]
getBriefHelp() const DebugCommand [inline, virtual]
getCommandName() const DebugCommand [inline, virtual]
getCommandNameCompat() const DebugCommand [inline, virtual]
getMoreHelp() const DebugCommand [inline, virtual]
matches(const std::string &command, const std::string &toMatch)DebugCommand [static]
matches(const std::string &command) const DebugCommand [virtual]
moreHelp_DebugCommand [protected]
name_DebugCommand [protected]
~DebugCommand()DebugCommand [inline, virtual]
XQilla-2.3.0/docs/simple-api/classEventFilter__inherit__graph.png0000644000151400015140000002574711653571064022026 00000000000000‰PNG  IHDRsÃf‡bKGDÿÿÿ ½§“ IDATxœíÝi\WÛàˆ² ¢TÑjUDA-uÁ WDq«K]Z—nÒZÛJkµÕºýêÂãZ­Åª€FPE¬¥‚!ˆ ¢(‹‚ Y²ÌûaÞ'Oš Ià} “™sîœ337™Iî°(Š"ÀuЮ ³0 ™€IȬLÒUwjóÃ?\¿~]ÝQh™„„u‡ éY¡ãÊÊÊzðà›››ºÑ………7oÞTwZ™:477·ððpuG¡ÂÃÃÕ€À}V&!³0 ™€IȬLBf`2+@#Xò´F/yyyÊ—4W^^ÝHk Šà[7KIIéÓ§³mæçç1¢¬¬ŒÙf@íY×­[·îÝ»3Û¦H$*//g¶Mи  "ŸÏ>ûŒ~\__offKáóùÁÁÁÖÖÖVVVÁÁÁ|>ŸÂb±Nž<9`ÀssóŸþ™òî»ïBš˜°/\¸0tèPCCC›­[·Ò eÛ …Û·owtt4665jTjjªT;²±Ñ׊¯\¹Ò«W¯7n034ÐQùûûûûû7º!$##£úß(Š:}út¯^½D"EQ111=zôàóùEmÛ¶möìÙOŸ>år¹Ã† [¿~=݈ŸŸ_EEÅáÇ !ååå¹¹¹’ l/„ÜÜ\Š¢ªªªôõõ—,YòìÙ³°°0BÈ‹/ä¶¹k×.++«¨¨¨¢¢¢ØØØ=zЈ;’~vÚ´iW¯^åñxJÆáÌ™38c4Ž踚žYåþKZSSÓ¥K—´´4Š¢æÌ™óÕW_Ñë÷ïß¿¸¸˜~œàììL7’””DQTCCíd3«,:³Ö××ß¿ŸÇã …ÂäädñrÙ6?.nó·ß~“ʬ²±ÑÏr¹ÜFÇ™ ‰pŸ q¹¹¹öööR ½½½###ßyç‡sçÎzyAAx5úýROO¯‰½ˆ?Ы¯¯Ÿ““³lÙ27tèPÉM¤Ú,,,tvv?ëää$Õ…¢Øú÷ï¯(*h.ÜgP]PPPddäùóç]\\è…–––ô{JŠ¢***Ä¿£££âáV[[œžž*ù”T›vvv™™™â?³³³¥šR›’|Í…Ì Ð¸—/_–ü½|òäÉ!!!K–,¯ìëëûÕW_=yò„ËåN:uÿþýJZæñxö^__ßÐР¯¯_[[B¡ïÂÊZ¹repppLLLIIÉ¥K—6nÜ(µB³bÕ ³4î½÷Þ³ù7z¹¾¾¾¿¿qq±ŸŸŸxåÍ›7:t„ C† Ù¶m›Ü6íììF-ymVSSÓ;wΛ7¯ÿþvvvAAAS§N•»æªU«‚ƒƒ×­[goo¿iÓ¦?þøCj…&Æ-Á¢|t Ý  „à÷Y›ˆþ}Vœ1…÷¬LBf`2+“Y˜„Ì À$dV&!³0 ™€IȬ'55_Ý!€êð[7С]¿~ÝÃÃCÝQHËÏÛÖ¶P_¿AÝüKii©ºCÐȬÐq½ûî»êAŽÚZÝÚÚÎ Ý­­å—ÝW333üØ@S n0€fÙ¾ýâîÝñ½{[üý÷7êŽTû¬š%"â!äÉ“òû÷‹Ô ¨™@ƒÜ¹óôÙ³ BˆžûìÙÔ¨™@ƒDG§ëê² !|¾0"â–H„›5Ú™@S…¢ÈÈ[þóåËê´4|ý@û ³hŠ¿ÿΫ¨x#þSO}î\ºãÕ ³hЍ¨t]Ýÿ’|¾0&&Ϫ1$P2+€Fhhœ?Ÿ!ˆ$VUÕ_¿ž£®@5ȬáêÕûµµõR uuYQQø„0€–AfÐQQÿèèH(..óÍÍ*sÊ!³¨WŸ-ŠdŸâ󅉉Ùm¨ ™@ý²ŠžÅ'„´ 2+€úEG+Ì"•”t¿ªª¶-〖@E~õ{ö¬BòR°›Ûæ~ð4éñ’îÝM:uÂ/Sh«êgkk&µ¤[7ãÞ½-Ô ´®0 ™€IȬLBf`2+“Y˜„Ì À$dV&!³0 ™€IȬLBf`2+“Y˜„Ì À$dV&!³0 ™€IȬLBf`2+“Y˜„Ì À$dV&!³0 ™€IȬLBf`2+“Y˜„Ì À$dV&éª;“˜˜˜ŸŸ¯öJJÒÔÀòåËÕØ;€VcQ¥î4K@@@DD„ÐÓ³ _‹DõjŒg•á=+€ãÆ QwêqíÚµï¿ÿ^ÝQh1Üg`2+“Y˜„Ì À$dV&!³0 ߺPÑøñãe&%%µA/aaaóçÏOJJzþü9ý€ÙN %YT·oß>fÛ,..^¹reLLŒ’^ØlvPPò­@]YTgjjjnnÎl›"‘¨ªªªÑ^¤ªÊnê‚û¬ ûæ›oBCCéÇ|>ßËËëæÍ›„@pàÀY³fÍš5ëÀ€2~üøÄÄÄ÷ßæÌ™§OŸ&„|ôÑG„___%]<þ\ê*±ÔV²}Ñ›¤§§fee1ÿ²à¿YTWWWWûo„‰'&''ÓuwoݺթS§áÇB"##‹‹‹<¸sçÎôôôcÇŽÑܸqcÿþý+V¬8xð`uu5•£¢¢õ" e#‘ÚJQ_áááëׯwpph½1\ PÝ| µ$))é½÷ÞûùçŸ>|Ø¿ÿ+W®L:•ÍfB.^¼¸{÷nsss++«+V8p`Ù²e„##£)S¦ìرCî]©^~üñÇ^½z)L¶¯éÓ§B–/_Þ·oß–¼dh2+€êÂÂÂzöì)µ°S§N£FJNN¶³³KII9|ø0½¼¤¤döìÙâÕºtéB?°´´$„èê*<e{yþü¹òÀõÕhJ€–Cf`Þĉ÷îÝkooïèèhkkK/411Ù½{7#y<Þ«W¯èå,‹ñõ¥$SpŸ@u•••¯þ^>|øpwüøqú,m̘1‡.--ÍÏÏÿâ‹/¢££•´Lß²m.ñVÍê ˜…`T·zõj©%tÑ]]]ww÷+W®¸»»‹ŸZºté¾}û–-[Æb±ÆŽ»bÅ ¹mvïÞ}ðàÁ³gÏŽ‹‹kz$R[ÉöUVVÖì—*aÑŸ`±€€€—/_vð_>Ç™@e¸ À$dV&!³0 ™€IȬLBf`2+“Y˜„Lбœ={[_¿‘ݾ¬¬ó“'¢ÐP!DOØØ0V×·¸˜TWSŽŽ 4XVF••›ÝòÆþ§¡Ü¼Yjdôî–-!µµ BW/Š!åå5%¢(ª²²–"RK—ŽY¸ð=&ƒÐr¨Áˇžˆ‰¹ÓÄ•ùü—••±AeËûÕ×ïal>»ººnôh??×I“Þ13ë"^çÖ­ÇÞÞ{!zzlÃcÇ–¸¸Ø©Ü£HD…„D=z]Ñ ::¬””¯{õ²P¹ å¦LÙ‘],ÉùâŽËÁ¡ûéÓ+­­»¶¼£ÒÒ×Ë—ÿ–žþD(™™femÖÑùW≨۷'$Ü‹Í,(({ë-óÉ“yy AŠ…™Ú Š¢nÝzy;6–[YùÆÕÕÎËËyÆ 'S¹+ö]ii•‹‹Ý‘#‹É:û÷_ùñÇXÙJW—=uê C‡µ¼ E8œŒ•+OÈvÍf³GŽì{âƆŒ]…D?ÿ·ÿÕ ܶnõW²æÃ‡%.dÄÄÜÉË{acc:qâãÆõWôñ1€v™´^ZZ>‡“yñ"·¨¨ÒÁÁ: `øÌ™CßzË\ùV›7sjjê7mšÅà‰þ÷ßSÖ¯$„HVÎÇ-yOÜ(¡P4bÄ%%•’ݲÙ:“&½sðàû-üî\W¯Þ711tqéÝ”•>,IL̎Ͼuë±™Y—‰xy9#ÅB;†Ì Ú*/ïÅ™3iNÆÓ§å}útóõæééܯ_÷&nþæMƒïäh|¾pΜiiùEÑ7\Ùl{\ºô9³É ½úÓO±âéè°z÷¶ÿ|ÚO?]„"Åb±öïŸïã3¬µ{¯ªªuv©«ãBX,Öûï¿ÇåWÅĬµµ5kíÞ›«¨¨2.Ž›ý÷ßyººì1c==‡L™2¸kWu‡ÀdVÐ¥¥UNFdäm.·ÐÒÒÈÛ{˜—×W×>RŸ Q‘ˆZ»öä¥KYgÎ|äâÒ;9ùáâÅGëëùææFééßµÍeÏ/¿Œ8yò&E‰–-s ñæñêýüö——óbbÖöì©qÉ•VQQ“˜xïÂ…Ìk×°X¬‘#ûzx ôöÚ­¾ Z ™4Zy9ïܹt'㟠ºtéäí=ÔÏÏÕÅÅŽÍÖ¬òa6DþñGꉌÛ^rûöã¹s­Z5áã=Ú&†ÜÜÒqã¶}þù”Ï>›B/)/çÍšµ—ÍÖ‰ŠZ-ùÑh ôúõ›øøìÄÄ{W®Ü«¯ ÖÛËËÙËkˆµµ‰ºCh6dVÐD<^ýÅ‹ÜÈÈÛ))yzÓ¦ öòr;¶_§Nšø»‡Û·_ܳ'ñàÁ÷§Ow’\þàAq·nÆ-©èÔ\))yï½g/¹¤¸¸ÒÛ{¥¥qxøGFFZp;³®ŽÿçŸ9NÆåËwkjê ²õðxÇ××¥OŸnê  ©YAƒÔÖ6\¸yáBæõëE"jܸþ~~® ôÔšBÿùOÒæÍœ]»æŽPw,ò=~üÒÇg¯££uXØ Íü×D®úzÁõë²/]Ê*+ûÿO^^ÎŽŽê¿§ 2+¨]}ÃɈ¿ûæMÃøñ<=‡Lž<ÐÄÄPÝ¡5âÔ©›ëÖ…¯_?}ÍšIêŽE™{÷Š|}÷½ûîÛGŽ,V¹|£ºHxêÝÛbÒ¤¨>š ™ÔF(]½zŸÃÉHL¼÷úu­««¿ÿð3œ4üŽ ‡“ñÑG¿¯X1î›o¼ÔKãnß~È@Cf…¶FKâp2cc3KJ^ÞÇËËyút§=äKÒX×®=xÿý##¶mó×–wN Ù|plþ|·-[f«;––’,ðdaa4~|TŸÍÌ m'+ëYxø­Ë—³ž=«°·· Ñ”bIèÖ­Çsæððº@»Þ-;—¾fMØgŸýïóÃÚN²À“©©á¤Iïxy9»»÷kÊSM„Ì ­îñã—QQÿеìì,gÏviV±$M“ý|öìý®®vÇŽ-ÕÆwHÇÿµaCdHˆ÷ŠãÔ “ _]¾|—.ðd` 7z´ƒ§çxµ@f…ÖòôiyDÄ­ÿKêêééìïïêäô–ºãj‘'OÊ}|öÚÙYüñÇŠÖø±Õ¶±{wüŽ—vî œ3g¤ºca^QQåÕ«÷²“’î£À¨2+0ìåËꘘ;tmsó.šV,©%JK«||öDF®ÖöÓô?œ?t(ùÀ…3f Qw,­ž@]YÕÕu11w""n¥§?14ÔŸ2e¿ÿð÷Þ³×´bI*«¬|ãë»Ïž;·ÆÒ²íŠ?´Š¢‚ƒÃ#"n8±ÌݽŸºÃi]¯_¿¹~='!!ûâŬº:>]àÉÓsH÷î(ð­™Z¤¦¦>.ŽK×v`³u¦OwÒäbI*«©© üOiiULÌZíú ³B¡è£~OJº±jÈí¾JßDr <ÍšåÒ·/ <“YAtm‡ÈÈÛ ÙB¡ˆ.–4iÒ;Ú{ëQ‰†Áüù‡<(ŽŽ^ÛÎNÁ|¾pÑ¢#™™…QQ«;Tm£úzAZZ~||vLL: <ãY¡QRÒ}'#!á^MMKR™@ Z¾üø9áá9;÷Rw8Ì«­m˜3ç@aá«èè5½zY¨;œ¶&Qà)³´ô5 <#Y¡qtm‡ÈÈÛ±±ÜÊÊ7t±¤éÓÌ͵£X’Ê(Šúä“SçÏß [1j”}ãh§ªªÚÙ³÷×ÔÔGG¯µ²ê ŸîxŠ‹ã>~üž %YA™´´|'óâEnQQ%],iÚ´ÁûcŸŒû曨'þ:rdñäɃÔKë*-}íã³×ÐP?*ju;¾ÑDt§óç3rsKQà T€Ì r³¼ý¶•ÏЙ3‡:8X«;®6µgOâÏ?ÇýòËÜÙ³]ÕK[xò¤ÜÇg­­ÙéÓ¢ºM\àéöí“Î(ðM„Ì ÿSPPvöìívS,©%N ‰Þ²eöâÅ£ÕKÛyð Ø×wßàÁ¶¿ÿ¾ ÉC’ÜOÓ¦9iÅOÞBÛCfòâEõùów"#os¹…í¦XRKDG§¯^öé§“?ÿ|ªºcikwî< ;ÖñСEíæ»È *.®¼rå~BBöµkØlx¹Y;®òrÞ¹sét±$3³.>>í§XRK$&Þ[ºô×%KÆ„„x«;õ¸q#wÁ‚CÞÞCwïÂçc‘,ð$Qtõ‰™3‡vØ€$dևǫ¿x‘{áBfròC}}öÔ©ƒÛY±¤–¸yóÑܹ}|†íÜØ‘“ÊåËw—-;¶råø <Õ‹¦«ªªMN~ˆO ™µ£¨­m¸p!³ÝKj .·Ðß?tìØ~,Äÿ·>ùäÔ† 3V­š¨îX´ƒ¸ÀS|üݪª:ºú ÚkkùãÆõÇm!¹rsKgÍÚ;x°í‰Ëðå Ú¯¿þùí·ç¶móŸ?ßMݱh“†Ajj~||öùów^¾¬¦S¬‡ÇÀŽüÙ…Ž™µ}‰¨¿þʈ¸•˜xÇëÅ’Z¢°ð•Ï^++㈈Uø´§¤mÛâöîMÜ¿·÷PuÇ¢}Pà©ÃBfmWèbINf\·¤äµ««nù4êåËjoï=úúºQQ«Û}U)„„D?~ã×_—Nœ8@ݱh+‘ˆº{÷YBBvTTúãÇ/{ö4›:uðäÉÝÜìuu;ú}‡v ™µÈÊz~ëòå¬gÏ*:`±$•½~ýÆ×—.ì·ÿÈEQÔgŸŽ‰¹sêÔÊ‘#ûª;­'YàÉܼ˄ Pà©ýAfÕn¿ŒŠú‡®í@KÂïu4Ý›7 ÿ),,Ž^kgg©îp4Ÿ/\ºô×´´üˆˆUƒÛª;œvâÉ“ò„„lºú <µ3ȬZ©´ôudä툈Û99%½{[øù¹vØbI*ãó… ær Ïž]=`€ºÃÑtuuüyóæä”FG¯yûm+u‡Ó®<{VqéR <µ'Ȭڤ¬Œýÿµ,-¼¼†vðbI*‰¨5kÂâã³OŸþÐÅ¥·ºÃÑÕÕuþþ¡eeÕÑÑkmmq£yå弫WïÓÕ'ttXcÇöóô2eÊ ®];«;4hdV-P]]s'"âVzúSSCKj¹¯¾ŠÅÅ•>>{»ví|öì*¼—jm’žjk\\ì¼¼œgÌp²±1Uwh  2«Æ¡k;DFÞNHÈf±X3f X“BC¯nÙra÷î €€áêŽE[”y{ïqp°>yrv˶!·À“Ï0ÜóÖLȬšB %%Ýçp2î½ySbI­á?n‡£b_ËÝ¿_äë»Ĉ>G.Á72Û Ýiút';ìöm’pæÌu‡ÓþYX̶²ú k×±zzÖmп¿?Õ2í`¯00èknîÃbµégm:ÎÈwé2ÌĤƒÞ·ÖØYf³Mºtja`m½œ¤ÕV'µ'È9ׄ‡‡·}XGMÀÐP—ÅšÜ}íÚµ‹©¦ÚÅ^1·Ízê#¿BÝ´5­˜åêj¾±ñ¤Vjh²{‚œÌêïïß&Á@«‹ˆˆ`ª)ìÍ‚‘ï0Ë@“Ýp€IȬLBf`2+“Y˜¤bf-**š;w®‘‘ÑðáÃÏ;ÇlXMÄãñÖ­[×§OŸÎ;;88„„„ÔÕÕ©%’¦`É“——G—?ÐR,‹þF—x‰ä+R2Sʇ…‘ÀÚñ°Ójjj¾øâ‹!C†1â§Ÿ~Œ÷"9€&&&žžž?nú¶yyy’KNŸ>-wj222Z^û›èæžëdœAûöíëÙ³§H$/¡(ªwïÞ{÷î•»~£³ÐþŽwU2kyyùСC Ïœ9“––6gΜ   Ë—/7«‘üü|KKËæv-µÕš5kÒÓÓÏž=ûôéÓ£GÆÄÄ7·Í¶”’’Rüo¦¦¦_~ù¥ä:ªŒ&ˆŒŒTôµwå3Õ”ai‰ö=ìÕÕÕ®®®©©©[·nMOO_¿~}XXØäÉ“…B!ã}Ñ#YTT”œœ,‰æÏŸ¯hÍFÇÓÛÛ›ž‹””BˆxjØÂðÚåDkÔ¹Îßß¿¤¤„ž8Zzzzaa¡Ÿ_#E.U8®U˜/Ø d«4Z4dÕªU’KÖ­[7iÒ¤fUÉÍÍmJ_Ê·255½yó¦øÏäää^½z5·Í6CÉÍÍUô¬ø¥©62rùûû3U#¦ÑÕ!+V¬077/..¦—H¾%3¥|XZ®í‡jÛ‘_·nݘ1cx dz³³;pà@ "5’Ïž=#„¼~ýZîÊRã©d˜ùö}|ÃHÀ IDAT5÷\×Ú‡•‡‡Çš5kÄnذÁÝÝ]ÑÊŽ¹’š;_r¼«òžõìÙ³ü±ä’£GÒ+++-Zdiiikk»nÝ:ú’‹Å:yòä€ÌÍÍþùgBÈ»ï¾KéÞ½;½ŸÏ¶¶¶¶²² æóùMÙªk×®¡¡¡åååôŸcÇŽ}ò䉢E"Ѿ}û `llìææ–””$uÕQòqã!!!½zõêÖ­ÛÂ… +++•l.—ìÕ‰FG†ÞäÊ•+½zõºqãF3f®•}úé§ýû÷_¾|9%SŒZÉLÉ%–óçÏ÷ìÙ³¢¢‚rêÔ)GGÇšš¹³F?ˆ‰‰éׯŸ••ÕÚµkëëëm_L{‡=,,lãÆl6[¼¤K—._|ñÅÉ“'›¾{K¾ºaÆ-]º”^“ÇãÞ¹sG¶_ºGú²ó… èëX666[·n%2ãI‰···733ûé§Ÿ”¼©q–{(uÀãKѤèDä ¸¢ÓÚ¯¿þ:`À€nݺmݺõ÷ßïÓ§‰‰É·ß~Ko%;¹„   ÈÈHñu‘¨¨¨ÀÀ@%ëÓÄÓ! ·oßîèèhllǽzõJÑ óæÍ›8qâ£G¸\î Aƒ¾ûî;ú<ëççWQQqøðaBHyy¹Ô¿ Û¶m›={öÓ§O¹\î°aÃÖ¯_ß”­._¾Ü³gÏN:yxxlß¾½  @Iƒ´²²ŠŠŠ***еµµ%„H6(ù¸‰ñlß¾}àÀ\.7++käÈ‘ëÖ­S¾yFFFµ>Ÿ/û?T£#C¯0mÚ´«W¯òx<%“ÕÆïYssssrr:wî|ìØ1©¢d¦” EQ .|ÿý÷KJJ¬­­SSS¥Z–·É“'çääܼyÓÞÞ^¼ïµñ°Sm8òôñøòåK©åÿý·¹¹yÓwoÉWgaaÁçó)Š 8p H$¢$F²ªª*//Ï×××ÕÕ•¢¨ªª*}}ý%K–<{ö,,,ŒòâÅ Ù÷¬žžžUUUgÏž%„”••‰Ÿ’ZSjœåJðøRt):ÉpEãTUUuäÈBH@@@UUÕÁƒé­äN.EQ:uJNN¦(êþýû:::%%%Tc;ƒøÁ®]»$ÏÆ=zô „4eG’Í/Ró¥!Ç{³3ë«W¯!rŸmhh`³ÙwïÞ¥ÿŒŠŠ²··§'/))‰^>K½°þýû‹¯"&$$8;;7e+Š¢ÁÍ›77mÚ4hÐ 6›}òäIE 8ðøñãâ ûí7%™µ‰ñôë×/**Š^íÞ½{âÇŠ6—ÂáprÙ¦è¸\®¢9kûÌJQÔ/¿üÒµk×§OŸJ½E3¥|X(Šª¨¨°µµurr¢3%¥4³Š‡åÌ™3â}¯‡jóÌ*™¨h)))–––Mß½%_@ èÞ½û•+W(Šš>}úÖ­[é5%ÇPOOÏÝÝžñúúúû÷ïóx<¡P˜œœ,÷P%„\»v¢(ú]Žäõ:¹™U<Îr¥x|Q Ž E§ ¹®hÜÒÓÓ©ÿžÖ$çææÊ\º…Y³f­ZµŠ¢¨-[¶L˜0^¨|g?ptt”=7º#ÉÍ/Ró¥!Ç»*÷Y­­­ÿúë/É%iii®®®555………„ÚÚZz9—Ë500 _íÇů\öÀ300 “F·âñx§Nß^‰Dß~ûmÏž=5عs猌 qô.ÉsrrÄ›AVV–ì)Ú\ö@£S.Û½BCCƒ²I¢(JM™U(º»»Óïé •Ï”òa¡mÚ´‰Íf—––Ê>+î…^(Þ÷233Åû^;Õ¶#ß½{÷ÄÄD©…¡¡¡£Gnúî-õê>úè£U«V½|ùR__¿°°^(w$i111£Gvvv^¼x±Üœ’““#·¹™U‰ÜC©£_JŽ E§ ¹Þè¸É},;¹ô áááÖÖÖÀÅÅåàÁƒâ®•ì ârÏÆÊ·¥(Jn~‘š/ 9ÞU¹Ï:sæÌ;wRÿ„……ñù|CCCkkk6›ŸŸO/ôèQÏž=éÇ::Êú¢ÿ¿¦cª¨¨¸yóf£[Q5wîܬ¬,úO‹5eÊñ— dìÙ³gff¦xóììlñcz«çÏŸ77ž=zÐ322¶lÙ¢|s(jJOOOå6[•ŽŽÎ±cÇþúë¯C‡ÑK”ÏT£ ÷íÛ7iÒ¤Ï?ÿ\r¹ì¬‘ÿþ«DÉÉÉ¡/1©F‹†}Þ¼y?üðƒøŽWPPЩS§¶nÝD/iúî-~uþþþçÎ =z4}ßD‰ÚÚÚ€€€àààôôôÐÐPE«5ëÛâHä†ÚÑŽ/%G¢S‘7à*Œ›’É1cFMMÍÉ“'333gÍšÕèú’ìììdÏÆn«$¿´p¾ß Tɬ[¶lINN^°`AJJ —Ëýþûï÷ìÙCϨžž^``àÚµk?~|÷îÝo¾ùfÞ¼yJš¢/‹B|}}¿úê«'Ožp¹Ü©S§îß¿¿Ñ­ŒŒŒ.\›ŸŸŸ’’²nÝ:ñÙD¶Á%K–ÇÄÄ”””\ºtiýúõ„SSSBȉ'ªªªöìÙ#ñ,X°à믿¾{÷îÝ»wW¯^-þTN³^ƒ#£!úôé³cÇŽ;wÒ*Ÿ)åD"Ñ’%KÖ¬YsêÔ©ÄÄD‡CÏ!äã?ÎËË»uëÖ† ”|'Dmö7–””xxx\¾|9''§oß¾sçέ««ûàƒTÞ½éoÚ´iÁ‚P__ßÐР¯¯_[[B©®®¦Ÿ§Êä†ÚÑŽ/%G¢S\*¼X%“khhèããóÉ'ŸL˜0¡[·n®/iåÊ•’gã7*ß–ž¯ææ—Fµân ù¶éWü üüüzôèallýôSú;‘¹ÈÀçóGmddD/¬ªªZ¼x±™™™……ÅòåËkjjš²•@ øî»ïœœœ:wîlgg÷å—_Š/È6ØÐаiÓ¦>}ú¹¹¹ýñÇô‹Ý¼y³©©éÛo¿#~ùMŒ§®®nݺu=zô011 ß~nts1Ù«ŽŒÔu %Ôr5˜&‰<<<Ä*™)åòwïÞ!C†Ð×dÎ;gccCzNvÖèMŽ9Ò»woKKË5kÖÈî{²í·Æ°Sm~ŽÇã}þùçƒ 200xûí·¿þúkwwwú«qMܽe_ÝÊ•+;wî\UU%^"w$i»ví277ë­·BCCƒ‚‚¬¬¬¤ÆSöØo+÷j°øO¹‡R<¾AŠNAr¼‰§5©Ç²“+Ž*..Ž>è$C•]_vÁöíÛííí»téâææF¿G”»­Ô|ÉæÙûšp¼³(‰‹ºáááôÑØÒt­ òòòÚ÷‹  -þQemÙ+4jBÕ>ò éééôW Tóõ×_œ+“Y˜„Ì À$dV&ýšïÿ4IEND®B`‚XQilla-2.3.0/docs/simple-api/NSFixupFilter_8hpp.html0000644000151400015140000000627111653571064017160 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

NSFixupFilter.hpp File Reference

#include <xqilla/events/EventHandler.hpp>
Include dependency graph for NSFixupFilter.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  NSFixupFilter
struct  NSFixupFilter::ElemEntry
struct  NSFixupFilter::NSEntry
XQilla-2.3.0/docs/simple-api/ItemFactory_8hpp__incl.map0000644000151400015140000000421011653571064017650 00000000000000 XQilla-2.3.0/docs/simple-api/NSFixupFilter_8hpp_source.html0000644000151400015140000002311611653571063020534 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

NSFixupFilter.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _NSFIXUPFILTER_HPP
00021 #define _NSFIXUPFILTER_HPP
00022 
00023 #include <xqilla/events/EventHandler.hpp>
00024 
00025 class XPath2MemoryManager;
00026 
00027 class XQILLA_API NSFixupFilter : public EventFilter
00028 {
00029 public:
00030   NSFixupFilter(EventHandler *next, XPath2MemoryManager *mm);
00031   ~NSFixupFilter();
00032 
00033   virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding);
00034   virtual void endDocumentEvent();
00035   virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname);
00036   virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname,
00037                                const XMLCh *typeURI, const XMLCh *typeName);
00038   virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value,
00039                               const XMLCh *typeURI, const XMLCh *typeName);
00040   virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri);
00041 
00042 private:
00043   struct ElemEntry {
00044     void set(const XMLCh *p, ElemEntry *pr)
00045     { prefix = p; prev = pr; }
00046 
00047     const XMLCh *prefix;
00048     ElemEntry *prev;
00049   };
00050 
00051   struct NSEntry {
00052     void set(const XMLCh *p, const XMLCh *u, unsigned int l, NSEntry *pr)
00053     { prefix = p; uri = u; level = l; prev = pr; }
00054 
00055     const XMLCh *prefix;
00056     const XMLCh *uri;
00057     unsigned int level;
00058 
00059     NSEntry *prev;
00060   };
00061 
00062   NSEntry *findPrefix(const XMLCh *prefix);
00064   bool definePrefix(const XMLCh *&prefix, const XMLCh *uri, bool attr = false, bool redefine = true);
00065 
00066   XPath2MemoryManager *mm_;
00067   unsigned int level_;
00068   ElemEntry *elements_;
00069   NSEntry *namespaces_;
00070 };
00071 
00072 #endif
XQilla-2.3.0/docs/simple-api/classDocumentCache__inherit__graph.png0000644000151400015140000000712011653571064022262 00000000000000‰PNG  IHDRuüýõ†bKGDÿÿÿ ½§“IDATxœí{PׇOH áa&&á%eJ/µÓŽ8–Ò¾Z+(‚h@@Àj"ЭTt´ciA!b5ÅR0 PµÔ.Dª½X¨‚Lhò:÷íÍ–`Üô|=»g÷·ûåœ=lBB€Äs‰¡ ò„'|€<á’æÂ¦M› •1“´´4¬ü„§††///'''C¤B06O$©¼¼\]SUUeffÆçóÁÍÍMëÑó¶mÛÂýû÷ŸuÖ§j(++ƒ8çØ±cL&S$AÇÆÆìíí³²²°U‰ÔÑÑ¡ÞX(ZXXzzz w´\[¤¥¥Ñh´””@jjª]rr²z­¿¿¿fo«®®VÿÍÿ\£ÃáLªªªìíí…B!„°´´ÔÍÍM"‘@e2YRRN_¾|yRR’L&ëéé444899]¿~===ÝÉɉF£íÛ·{¥ÏÚ BX]]½zõj2™ìâârñâE¡\.Ÿµ9vˆ™eáíÛ·I$Ò‰'Èd2ŸÏ×|ØÕÕõÚk¯¥¦¦bA·mÛvíÚµÌÌL®®.>Ÿ¿~ýú¤¤¤¹ZI$2™\PP 8‰D’H$§OŸžµùØØ›ÍžYÆHMM¨G<õ Þ»wÉdbCßØØ˜……Åèè¨ÚÓÌHX«ÐÐP±X\\\  ‹Å………€ÑÑQaxx¸ŸŸßï¿ÿÞÕÕõꫯfffjž~MM •J•ËåB.—ëáá¡~•,¡'‘Häèèèéé™™™©®twwX¹¾¾~íÚµXЮ®.áË/¿Ìãñ°µ¿þú«º<³•P(455=sæŒH$R©TãããJ¥r®æ:P©TD"qïÞ½Z'ØÓÓ“˜˜øñÇC¹\î¦M›Ôõ³FÂÖb=@&“i•{zzd2‘H¼sçÖŠÇã­ZµJóô “Éüé§Ÿ „ï¼óÎÉ“'çÍï BøÙgŸ‰Äááau …BÑK­­­± Ø¸A¡P4­ „7oÞܽ{·¥¥¥··wMMŽæ:¸té’µµõÏ?ÿL¡P*++5O°§§çÆØÐXXX5<Í hÌ2f–ûûûR©«ìêê¢P(š§!LHHHLL133ëïï_È),ÖÓÇétú–-[4_ªŽŽŽêô"‘èîÝ»š7 WW×~ø+wtt¨Ç¢™­&''!„ÓÓÓ.\ ‰?ž«ù\Ÿ¿qãÆ˜˜˜¹ZI¥R …RQQ122RTTD¡P¤Ré\Íg½?©TªíÛ·ûøø(•J¡L&óôô ÕºÊ ¯¼ò ‹ÅÒªŸiV7Zå°°0??¿ÞÞ^>Ÿïáᑞž®åI¡PÐétƒQRR²0M‹óôõ×_¯Y³ëÎW¯^µ³³Ãæ~b±822ÒÖÖ–J¥ÆÆÆNLLhššJJJ²···¶¶ UOØf¶‚–••­\¹ÒÌÌÌÝݽªªJGóYç{.\ “É¿ýö›:sKK‹‰‰IEE…敽qã //OëŠÏi^OB¡pß¾}T*ÕÎÎîÈ‘#êùžæ¥;pà€¹¹¹X,ž×Ь.ŒðïÜç“O>ù$,,láÛk¹Ð~Ÿ¡w¦¦¦ÏŸ?ùò忽#|ñ¼ÑÜÜüúë¯GEE½ýöÛ{'¨?-9>>>B¡p‘;Aý  OøyÂÈ>@žðzjnî5tý£=/ÏÊÊb³Ù‰¢/z{W::ö›™É DŸ<á)88ØP9ô…TJ’JÍe2&ƒ1nè,‹"88Xóƒþh\ÿ÷yútíÙ³uÎÎÔ¦¦4CgÑ'Æv*/ocðTY9§ • ^¿~W,–>Ë@žðò„'|€<áä  OøyÂÈ>@žðò„'|€<áä  OøyÂÈ>@žðò„'|€<áä  OøyÂÈ>@žðò„æù?µ¢¢¢g“C¿444 µ:ÅÓáïïïêê:çêyåw˜šÒMLȆNñÔèþe“ùÿï3##c1?8€X,K÷èþ„'|€<áä  OøyÂzø>Í9%ƒÁX³fM||¼Íâ÷¼¤<~ü8??ÿÎ;þù§³³sxx¸··÷Óî„Åbq¹\‡¥H¨‰~úSnnî•+WÊËËSRR&&&bcc%‰^ö¬/A@@€zQ,ïß¿ŸL&gddøúú?~¼µµÕ€ u£Ÿï7²±±yñÅ4míÚµ~øayyydd¤^v®T*•X,V/–””¬[·îèѣآ³³³P(,++{ã7 pô";vì¸uë¶(‘HNž<œŸŸ/“É”JeIIÉž={³³³±ž÷èÑ#õø©Yf±Xµµµ¥¥¥uuu¡¡¡ï¾ûîùóç±  EAAÁÎ;wîÜYPP P(°V ;vìøî»ï €]»va­ƒ‚‚4cGDD$''c妦¦˜˜˜­[·•––fÍŒqûöíððð÷Þ{ïÛo¿Õi‘,É<ÂÑÑqpð¯ŸMÈÉÉ)((8uêTkkëåË—+**³³³Ïž=ÛßßÏåruï­­­-???66–Íf755q8œøøøK—.aý£¢¢B ~ñÅííí%%%X«›7oæååÅÅÅŽŸ;wÀãñ‰D(®X±Bó(æææt:099™žžîææÆårãããÙlöØØ˜ŽÌÍÍÍl6;99¹¸¸Xw¤Å°´ó=…BqíÚµ>øÀÎÎÎÕÕ522²¾¾þÇŒŠŠruuuqqIIIñððн“={öXXXlÞ¼faa±uëVÀøø8 ¶¶öðáÃt:ÝÕÕ5..®¥å¯ÇäVVV[¶lhŽxìù2@˜õpfffçСCT*3711¡#3ïÍ7ßœ7ÒbX’ïß°··ˆD"•J…•###GGG¬ÆÙÙÙÙÙY«¹Ösz ‰DÒ*c iŽ`–––XF£im©fÙ²e¶¶¶<мÜ÷îÝûòË/srrÈdòÀÀÀ™3g¤R©››¶vxxx®ÌT*X,VYY6Í z¾‡'|€<áä  OøyÂÈ>@žðÁüÏ#ÚÚÚž·7gÿ‰ßçËqŠîÏ—Ãï?ý@÷'|€<áä  Oøà¿×;Oxì¥-IEND®B`‚XQilla-2.3.0/docs/simple-api/ATDoubleOrDerived_8hpp__incl.map0000644000151400015140000000003511653571064020666 00000000000000 XQilla-2.3.0/docs/simple-api/StaticType_8hpp__dep__incl.map0000644000151400015140000000022611653571064020505 00000000000000 XQilla-2.3.0/docs/simple-api/classStackFrame-members.html0000644000151400015140000001403011653571063020204 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

StackFrame Member List

This is the complete list of members for StackFrame, including all inherited members.
context_StackFrame [protected]
contextItem_StackFrame [protected]
contextPosition_StackFrame [protected]
contextSize_StackFrame [protected]
defaultElementNS_StackFrame [protected]
getASTNode() const =0StackFrame [pure virtual]
getLocationInfo() const StackFrame [inline]
getPreviousFrame() const StackFrame [inline]
getQueryPlan() const =0StackFrame [pure virtual]
getTupleNode() const =0StackFrame [pure virtual]
location_StackFrame [protected]
nsResolver_StackFrame [protected]
prev_StackFrame [protected]
query(const XMLCh *query) const StackFrame [virtual]
query(const XMLCh *query, EventHandler *events) const StackFrame [virtual]
StackFrame(const LocationInfo *location, DynamicContext *context)StackFrame [protected]
variables_StackFrame [protected]
~StackFrame()StackFrame [inline, virtual]
XQilla-2.3.0/docs/simple-api/classStringPool.html0000644000151400015140000002632011653571063016641 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

StringPool Class Reference

#include <StringPool.hpp>

List of all members.

Classes

class  Bucket

Public Member Functions

 StringPool (xercesc::MemoryManager *mm)
 ~StringPool ()
const XMLCh * getPooledString (const XMLCh *src)
 Returns a copy of the given string.
const XMLCh * getPooledString (const XMLCh *src, unsigned int length)
 Returns a copy of the given string, with given length.
const XMLCh * getPooledString (const char *src)
 Returns a copy of the transcoding of the given string.
unsigned int getCount () const
unsigned int getHits () const
unsigned int getMisses () const
unsigned int getTooBig () const
void dumpStatistics () const

Constructor & Destructor Documentation

StringPool::StringPool ( xercesc::MemoryManager mm)
StringPool::~StringPool ( )

Member Function Documentation

void StringPool::dumpStatistics ( ) const
unsigned int StringPool::getCount ( ) const [inline]
unsigned int StringPool::getHits ( ) const [inline]
unsigned int StringPool::getMisses ( ) const [inline]
const XMLCh* StringPool::getPooledString ( const XMLCh *  src)

Returns a copy of the given string.

const XMLCh* StringPool::getPooledString ( const XMLCh *  src,
unsigned int  length 
)

Returns a copy of the given string, with given length.

const XMLCh* StringPool::getPooledString ( const char *  src)

Returns a copy of the transcoding of the given string.

unsigned int StringPool::getTooBig ( ) const [inline]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/URLInputSource_8hpp__incl.map0000644000151400015140000000003511653571064020266 00000000000000 XQilla-2.3.0/docs/simple-api/ATQNameOrDerived_8hpp__incl.md50000644000151400015140000000004011653571063020360 0000000000000037bec45b845d2b031e9494aebd2477b4XQilla-2.3.0/docs/simple-api/inherit_graph_50.map0000644000151400015140000000030411653571064016446 00000000000000 XQilla-2.3.0/docs/simple-api/inherit_graph_36.png0000644000151400015140000000362211653571064016467 00000000000000‰PNG  IHDR°(Ñàç'bKGDÿÿÿ ½§“GIDATxœíœ}HSßÇÏÝc£ÍÒÙV*£Ù ìj%Mª¿2™¢„YDŒ„Y,Ì@2ü§’B #¥Ùƒ –icMdA2›’Ô*Âl>̶«{p»ç÷Çå{÷z·9ÍÚ÷÷ë¼þ:ŸsÎçó¹ï{ÎÙ|À „øN¼@ü»@‚@0@‚@0@‚@0àÑ+f³¹ºº:^® âÂÅ‹Õj5UeâÇ]]]Ü+D|xüøñ‰'è-<¶Ñ£Gþ”?ˆ8ƒaØœt‡@0@‚@0@‚@0@‚@0@‚@0XŒ p×étiii"‘H¡P ŸÏ·ÐI>}úľⲹrå †a555‹ð3Æ%~qàæÍ›©©©AP-Âõë×߸q#–áX8êÃ’i´¶¶Îi ˱cÇöíÛ×××çt:Ífó–-[ÊËË!„Ÿ?NLLŒ2n066VQQ}!‚ 6mÚ$—Ë·nÝ:¯WlG,áЉÅ+6£££Çb±P-oß¾Å0ldd$–á€ÞÞÞïL"Ï›ähmme´Ð+1 båÊ•V«•ªšÍf¹\cx }BïÞ½Ã0ìåË—€>Ä>pqËý æÌ™3TU¯×«ÕêÇGŒÆK[‹92–/_^__?11AV÷ìÙ3<< عs' 99™löìÙ¶mÛÄbqJJ ¹çÓ ¨Í9  ¹\ž””TZZ:55E-d4Õjõþýû•J%)V ÃZZZ233®]»i9гgÏ?~œ,ã8.‹m6 ££#++kÙ²eééé<Ì#ƒÝ;Ç€^ÖjµOž< …Bdµ­­­°°0’cäÀîîn¹\ÞÓÓ%ÕìHÙ9$çÙ¾}{Ø ]1î/^¼HMM …¦¶¶öëׯlñºÝn@PVVöíÛ·ææf€Óé¤PåÚÚZ•Je·Ûrrrt:i@DZZÚ;w „•••*•Š®ë£Gº\®††ÀÄÄDôåÌfsbbâìì,„°¹¹Y¥Rã¸P(¼}ûö÷ïßïÞ½Ëãñp§†„í…NMM544nÐË.—K(šÍfáÐЇÞ‡ƒ¾zõ Çq@¿‡I¤HÙ9$çéììdÇ8ï£Krd@ƒÁ Õj­ªªÚ¼y3—ËmiiLAøýþ¡¡!ÇC¡Ùl8ް‚ظqc[[Ùøþý{ªlµZy<Þøø8„°¯¯000@…a2™ „@€œ9úrÁ`099¹»»BxèСššáää$ŸÏ¿~ýºËå"Âãñ„B!jHØÞè9ÉÏÏ?}ú4„ðêÕ«¹¹¹óæÁn·SáDzQÙ‘²sHÎ6Æya bÁGÆôô´Ñhäää\ºtÉn·ëõú .Ì1?~}êv»ŸÏ‹Å”}¤ÞŸ?666’6ô2@,>|øÜ¹s¹¹¹III1:F2666Ê$úS˜“ÃH1.º:b¼CƒÁË—/gee‰D¢ 6TTTx½^áììì®]»$ iVWW— “ÉêëëµZíš5k蔺}>ŸN§“J¥+V¬Ðjµ.— Bxòäɼ¼<ú¢Addd_Ö{v¹9/ЩS§D"‘Ûí¦Ç›‘‘!”Je{{;d¾sìÞ9ìO€€ÆÆFz㼎Ey.ìHÃæ0JŒÑKu©ü_D¯×ÅÛ‹ßËBcd "Ì/ÈüÿáóùFFFîÝ»÷ðáÃxûò»XªÿŠn½yófÇŽeee{÷î·/¿‹¥Šñ¯Ø!Ôjõääd¼½ø½,UŒÅˆ$$$$$ƒ0;5ÍŸ÷ñ/!™L†þ°ó¯¢  @&“Ñ[0ˆþ¥‚ºC  A  A  A ü'ÏHŠÌ‚\ÿIEND®B`‚XQilla-2.3.0/docs/simple-api/classAutoContextItemTypeReset-members.html0000644000151400015140000000647011653571063023136 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

AutoContextItemTypeReset Member List

This is the complete list of members for AutoContextItemTypeReset, including all inherited members.
AutoContextItemTypeReset(StaticContext *context)AutoContextItemTypeReset [inline]
AutoContextItemTypeReset(StaticContext *context, const StaticType &sType)AutoContextItemTypeReset [inline]
context_AutoContextItemTypeReset [protected]
sType_AutoContextItemTypeReset [protected]
~AutoContextItemTypeReset()AutoContextItemTypeReset [inline]
XQilla-2.3.0/docs/simple-api/classATGYearMonthOrDerived-members.html0000644000151400015140000004355411653571063022247 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATGYearMonthOrDerived Member List

This is the complete list of members for ATGYearMonthOrDerived, including all inherited members.
_ref_countReferenceCounted [protected]
ANY_SIMPLE_TYPE enum valueAnyAtomicType
ANY_URI enum valueAnyAtomicType
asString(const DynamicContext *context) const =0ATGYearMonthOrDerived [pure virtual]
AtomicObjectType enum nameAnyAtomicType
BASE_64_BINARY enum valueAnyAtomicType
BOOLEAN enum valueAnyAtomicType
castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [protected, virtual]
castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
compare(const ATGYearMonthOrDerived::Ptr &other, const DynamicContext *context) const =0ATGYearMonthOrDerived [pure virtual]
DATE enum valueAnyAtomicType
DATE_TIME enum valueAnyAtomicType
DAY_TIME_DURATION enum valueAnyAtomicType
DECIMAL enum valueAnyAtomicType
decrementRefCount() const ReferenceCounted [inline, virtual]
DOUBLE enum valueAnyAtomicType
DURATION enum valueAnyAtomicType
equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0ATGYearMonthOrDerived [pure virtual]
fgDT_ANYATOMICTYPEAnyAtomicType [static]
FLOAT enum valueAnyAtomicType
G_DAY enum valueAnyAtomicType
G_MONTH enum valueAnyAtomicType
G_MONTH_DAY enum valueAnyAtomicType
G_YEAR enum valueAnyAtomicType
G_YEAR_MONTH enum valueAnyAtomicType
generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicType [virtual]
getInterface(const XMLCh *name) const =0Item [pure virtual]
getPrimitiveTypeIndex() const =0ATGYearMonthOrDerived [pure virtual]
getPrimitiveTypeName() const =0ATGYearMonthOrDerived [pure virtual]
getPrimitiveTypeURI() const AnyAtomicType [virtual]
getRefCount() const ReferenceCounted [inline]
getTypeName() const =0ATGYearMonthOrDerived [pure virtual]
getTypeURI() const =0ATGYearMonthOrDerived [pure virtual]
gXQillaItem [static]
hasTimezone() const =0ATGYearMonthOrDerived [pure virtual]
HEX_BINARY enum valueAnyAtomicType
incrementRefCount() const ReferenceCounted [inline]
isAtomicValue() const AnyAtomicType [virtual]
isDateOrTimeTypeValue() const DateOrTimeType [virtual]
isFunction() const AnyAtomicType [virtual]
isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicType [virtual]
isNode() const AnyAtomicType [virtual]
isNumericValue() const AnyAtomicType [virtual]
isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
Item()Item [inline, protected]
NOTATION enum valueAnyAtomicType
NumAtomicObjectTypes enum valueAnyAtomicType
Ptr typedefATGYearMonthOrDerived
QNAME enum valueAnyAtomicType
ReferenceCounted()ReferenceCounted [inline]
setTimezone(const Timezone::Ptr &timezone, const DynamicContext *context) const =0ATGYearMonthOrDerived [pure virtual]
STRING enum valueAnyAtomicType
TIME enum valueAnyAtomicType
typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicType [virtual]
UNTYPED_ATOMIC enum valueAnyAtomicType
YEAR_MONTH_DURATION enum valueAnyAtomicType
~ReferenceCounted()ReferenceCounted [inline, virtual]
XQilla-2.3.0/docs/simple-api/classAutoNsScopeReset-members.html0000644000151400015140000000623011653571063021375 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

AutoNsScopeReset Member List

This is the complete list of members for AutoNsScopeReset, including all inherited members.
_defaultElementAndTypeNSAutoNsScopeReset [protected]
_oldNSResolverAutoNsScopeReset [protected]
AutoNsScopeReset(StaticContext *context, xercesc::DOMXPathNSResolver *newResolver)AutoNsScopeReset [inline]
context_AutoNsScopeReset [protected]
~AutoNsScopeReset()AutoNsScopeReset [inline]
XQilla-2.3.0/docs/simple-api/classATAnySimpleType__inherit__graph.map0000644000151400015140000000060411653571064022541 00000000000000 XQilla-2.3.0/docs/simple-api/XQQuery_8hpp.html0000644000151400015140000002247611653571064016041 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

XQQuery.hpp File Reference

#include <xqilla/framework/XQillaExport.hpp>
#include <vector>
#include <string>
#include <xercesc/util/XMemory.hpp>
#include <xercesc/sax/InputSource.hpp>
#include <xqilla/runtime/ResultImpl.hpp>
#include <xqilla/context/StaticContext.hpp>
#include <xercesc/util/RefHashTableOf.hpp>
#include <xqilla/runtime/ResultImpl.hpp>
#include <xqilla/context/StaticContext.hpp>
Include dependency graph for XQQuery.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  ModuleCache
class  XQQuery
 Encapsulates a query expression. More...

Typedefs

typedef std::vector
< XQGlobalVariable
*, XQillaAllocator
< XQGlobalVariable * > > 
GlobalVariables
typedef std::vector< XQQuery
*, XQillaAllocator< XQQuery * > > 
ImportedModules
typedef std::vector
< DelayedFuncFactory
*, XQillaAllocator
< DelayedFuncFactory * > > 
DelayedFunctions
typedef
xercesc::RefHashTableOf
< XQQuery
ModuleMap

Typedef Documentation

typedef std::vector<DelayedFuncFactory*, XQillaAllocator<DelayedFuncFactory*> > DelayedFunctions
typedef std::vector<XQGlobalVariable*, XQillaAllocator<XQGlobalVariable*> > GlobalVariables
typedef std::vector<XQQuery*, XQillaAllocator<XQQuery*> > ImportedModules
typedef xercesc:: RefHashTableOf<XQQuery> ModuleMap
XQilla-2.3.0/docs/simple-api/classReferenceCounted__inherit__graph.map0000644000151400015140000000736311653571064023002 00000000000000 XQilla-2.3.0/docs/simple-api/DocumentCache_8hpp_source.html0000644000151400015140000003547111653571063020543 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

DocumentCache.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _DOCUMENTCACHE_HPP
00021 #define _DOCUMENTCACHE_HPP
00022 
00023 #include <vector>
00024 
00025 #include <xqilla/framework/XPath2MemoryManager.hpp>
00026 #include <xqilla/items/Node.hpp>
00027 
00028 #include <xercesc/util/XercesDefs.hpp>
00029 #include <xercesc/util/XMemory.hpp>
00030 
00031 class DynamicContext;
00032 class StaticContext;
00033 class QualifiedName;
00034 class LocationInfo;
00035 class QueryPathNode;
00036 
00037 typedef std::vector<const XMLCh*, XQillaAllocator<const XMLCh*> > VectorOfStrings;
00038 
00039 XERCES_CPP_NAMESPACE_BEGIN
00040 class DOMDocument;
00041 class DOMNode;
00042 class DatatypeValidator;
00043 class XMLEntityResolver;
00044 class ComplexTypeInfo;
00045 class SchemaElementDecl;
00046 class SchemaAttDef;
00047 class InputSource;
00048 class GrammarResolver;
00049 XERCES_CPP_NAMESPACE_END
00050 
00052 class XQILLA_API DocumentCache : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory
00053 {
00054 public:
00056   static const XMLCh g_szUntyped[];
00057 
00058   enum ValidationMode {
00059     VALIDATION_STRICT = 0,
00060     VALIDATION_LAX    = 1,
00061     VALIDATION_SKIP   = 2
00062   };
00063 
00065   virtual ~DocumentCache() {}
00066 
00068   virtual Node::Ptr loadDocument(const XMLCh* uri, DynamicContext *context, const QueryPathNode *projection = 0) = 0;
00070   virtual Node::Ptr parseDocument(XERCES_CPP_NAMESPACE_QUALIFIER InputSource &srcToUse, DynamicContext *context, const QueryPathNode *projection = 0) = 0;
00072   virtual void parseDocument(XERCES_CPP_NAMESPACE_QUALIFIER InputSource &srcToUse, EventHandler *handler, DynamicContext *context) = 0;
00073 
00079   virtual void setXMLEntityResolver(XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityResolver* const handler) = 0;
00080   virtual XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityResolver* getXMLEntityResolver() const = 0;
00081 
00082   virtual bool getDoPSVI() const = 0;
00083   virtual void setDoPSVI(bool value) = 0;
00084 
00085   /*
00086    * returns true if the type represented by uri:typename is an instance of uriToCheck:typeNameToCheck 
00087    *
00088    * ie: to check 
00089    * xs:integer instance of xs:decimal, 
00090    * call
00091    * isTypeOrDerivedFromType("xs", "integer", "xs", "decimal") 
00092    * (except of course, call with URIs, not prefixes!)
00093    */ 
00094   virtual bool isTypeOrDerivedFromType(const XMLCh* const uri, const XMLCh* const typeName, const XMLCh* const uriToCheck, const XMLCh* const typeNameToCheck) const = 0; 
00095   virtual bool isTypeDefined(const XMLCh* const uri, const XMLCh* const typeName) const = 0; 
00096 
00097   virtual void addSchemaLocation(const XMLCh* uri, VectorOfStrings* locations, StaticContext *context, const LocationInfo *location) = 0;
00098 
00100   virtual unsigned int getSchemaUriId(const XMLCh* uri) const = 0;
00101   virtual const XMLCh* getSchemaUri(unsigned int id) const = 0;
00102 
00103   virtual XERCES_CPP_NAMESPACE_QUALIFIER GrammarResolver *getGrammarResolver() const = 0;
00104 
00105   virtual XERCES_CPP_NAMESPACE_QUALIFIER DatatypeValidator* getDatatypeValidator(const XMLCh* uri, const XMLCh* typeName) const = 0;
00106 
00107   virtual XERCES_CPP_NAMESPACE_QUALIFIER ComplexTypeInfo*  getComplexTypeInfo(const XMLCh* uri, const XMLCh* typeName) const = 0;
00108 
00109   virtual XERCES_CPP_NAMESPACE_QUALIFIER SchemaElementDecl* getElementDecl(const XMLCh* elementUri, const XMLCh* elementName) const = 0;
00110 
00111   virtual XERCES_CPP_NAMESPACE_QUALIFIER SchemaAttDef* getAttributeDecl(const XMLCh* attributeUri, const XMLCh* attributeName) const = 0;
00112 
00113   virtual DocumentCache *createDerivedCache(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr) const = 0;
00114 };
00115 
00116 #endif
00117 
00118 
00119 
00120 
00121 
00122 
00123 
XQilla-2.3.0/docs/simple-api/classEventGenerator__inherit__graph.md50000644000151400015140000000004011653571063022402 000000000000004d07b90c90c200ca7546e9a225eddaf5XQilla-2.3.0/docs/simple-api/Item_8hpp_source.html0000644000151400015140000002237011653571063016731 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

Item.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _ITEM_HPP
00021 #define _ITEM_HPP
00022 
00023 #include <xqilla/framework/XQillaExport.hpp>
00024 #include <xqilla/framework/ReferenceCounted.hpp>
00025 #include <xercesc/util/XercesDefs.hpp>
00026 
00027 XERCES_CPP_NAMESPACE_BEGIN
00028 class XMLBuffer;
00029 XERCES_CPP_NAMESPACE_END
00030 
00031 // forward declare when we can
00032 class XPath2MemoryManager;
00033 class DynamicContext;
00034 class EventHandler;
00035 
00036 class XQILLA_API Item : public ReferenceCounted
00037 {
00038 public:
00039   typedef RefCountPointer<const Item> Ptr;
00040 
00042   static const XMLCh gXQilla[];
00043 
00044   virtual bool isNode() const = 0;
00045 
00046   virtual bool isAtomicValue() const = 0;
00047 
00048   virtual bool isFunction() const = 0;
00049 
00050   virtual const XMLCh* asString(const DynamicContext* context) const = 0;
00051 
00052   virtual const XMLCh* getTypeURI() const = 0;
00053 
00054   virtual const XMLCh* getTypeName() const = 0;
00055 
00057   virtual void generateEvents(EventHandler *events, const DynamicContext *context,
00058                               bool preserveNS = true, bool preserveType = true) const = 0;
00059 
00061   virtual void *getInterface(const XMLCh *name) const = 0;
00062 
00064   virtual void typeToBuffer(DynamicContext *context, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &buffer) const = 0;
00065 
00066 protected:
00067   Item() {}
00068 
00069 private:
00070   // copy constructor
00071   Item (const Item & other);            
00072   // assignment operation
00073   Item & operator=(const Item & item) ;
00074 };
00075 
00076 #endif
00077 
XQilla-2.3.0/docs/simple-api/ATDateTimeOrDerived_8hpp__dep__incl.md50000644000151400015140000000004011653571063022042 00000000000000795762c83d1f257c3faa576b22e03a5eXQilla-2.3.0/docs/simple-api/inherit_graph_32.png0000644000151400015140000000336711653571064016471 00000000000000‰PNG  IHDR‹(AóžèbKGDÿÿÿ ½§“¬IDATxœí™]LRoÇäoAê€Pb%˜-¦Í›°—5‡ö².²µYA¶Ê­E/ƒ¬‹4¦Ý´.º°­­ò2½“måL·lµS‡´ƒLæÐá`)*#àù_<ÿÎŽ|É!žÿv>WçyÎï9¿—/çyáp „€…Á¤-u,sÀ*ÄtX…˜«Óù‡Öniiéíí]’PXW¯^ݱcµ‡®Ýnÿþý{EEE £bùÇŸ:uŠÖIWPQQñèÑ£”„Ä2 ‡ßÉ®CL‡Uˆé° 1V!¦Ã*Ät¨‡ŸÏߺu«ÕjMndñ8޽{÷fggçääÔÔÔØl¶Åð  ÃÚµkù|¾\.¿víZ(Z GódáïÐǽ^¯×ë%B.—>|xQÿ&÷x<[¶lÁ0¬§§çõë×R©tûöíýýýIw¤Óé,ËÓ§OÛÚÚÌfó¥K—n·[$%ÝÝÜÀé¨ÕjµZ çàt:ÉæÈÈ`dddÎ ¦¾¾~ß¾}±XŒìÑjµ&鎲²²p'›ïÞ½“J¥B§Ó_®ä0™LôNZ{a ùýþeË–…B!Ô ‡ÃƒaõêÕb±Ø`0„ÃáX,vçÎ 6¬Zµª²²²££eoi6›óòòü~?„°½½].—ƒA¡L&ëîî¦Æàóù¬V+üS»·oß¼ÿ>hµZ¡Pˆa˜^¯Ÿšš¢—¼F/^¼(..‹Å:Å/•J5Íèè(-e¡PH$¨9“2ŒøÔæSÕd*dµZÇÇÇÇÇLJ††Îœ9SWWGÞ½qãÆ ‚(//¿råʽ{÷0 {óæÏçëêê’Éd¨Lñ–BF£Õj‡‡‡%ɧOŸ „¡P(--mxx=œYë={öôôôƒÁ#GލT*—ËE„B¡0³(´sçN‡Ãã¸L&3ÂÎÎN Ö/_^]]}óæÍÚ@ÄL^È0¦–R…¨dddô÷÷“wKJJ¼^/ºîêêÚ´i“B¡xðàiÐÞÞŽ²·„üüüÒÒRT2áÐÐéAóNÖŽ a8ær¹_¿~E–Ïž=“Éd³(„FAM&“L&CבHÇñææf…BÁårQäÔ‡Ìâ…|`ÂÔæ¬ê¢Ìrz½^©T’wy<µˆ™™™|>ßf³‘hã—Ð477s¹\ra‹F£<Ïb±PcðûýÔZ£iÄãñ¦¦¦ A<Z\‡ÃAEZÚl6 >|‰DPg,kllÄ0 NWh/äl6Sj³W5^¡$œ‡V¬Xqüøñ¾¾>øç×-‰HýŽã………}}}äoß¾Íd ðx<·oß®ªªÒëõÈ,--M¥Rݽ{—ê×d2Q›ééé‰DÂårÝn7êt¹\†¡ëH$@¯# *+ÀápäååAkkkív;êäp8»víB©Ìâ…1Sj ¦ØÂv ?þŒ¡æ¹sç<800`³Ù6oÞ|öìÙÖÖÖüüüÎÎÎÑÑÑîîîõë×s8œ„–Ñh´ªªª¥¥Åï÷çää¼|ù=Ójµ®\¹²¡¡Áf³}ùòÅh4–——§§§Ã¸¢¶¶V¥R¹Ýn»Ý¾qãÆ¦¦&ŸÏhkkûõë×þýû媬¬t:Ÿ?–ËåMMMB­V[\\üêÕ+—ËõáÃ¥RyáÂÒžœiã½ÐˆOm>U]¬½\4?~ü@ͱ±±ºººììl¡Pxúô鉉‰h4zëÖ­¢¢¢ÌÌÌÝ»w›Íf±XœÐ²µµµ¬¬ ÍÏŸ?ÏÍÍEû:¡ÅbQ©T ¤¤äüùóÁ`°¬¬,^!¿ßìØ1¡P˜››{ñâE4]¿~=++«¨¨Èl6Sºÿ~aa¡H$ÒétÈ2‰ÆÒÒR>Ÿ¿f͚˗/£þß¿oÛ¶-##c&/´0âS›OU“¦ÐßÒÑÑvƈ'OžÌgå\TRp¾ù[*”¢ÿå‚8zô¨Åb™œœÄq¼±±ñäÉ“©qý'Á7ÖÅ ¡¡arr²¦¦Æçó­[·îĉõõõ©q=`Éc˜8ýxqèÐ!û|Iàp8&“ I@Â~}`:¬BL‡Uˆé° 1V!¦Ã*Ätœ‡z{{«««S KBè )•Ê%‰ƒ V« hô+ Ó`×!¦Ã*ÄtX…˜«ÓùªðŸñ x…IEND®B`‚XQilla-2.3.0/docs/simple-api/ATGYearMonthOrDerived_8hpp__incl.png0000644000151400015140000003040111653571064021500 00000000000000‰PNG  IHDRmuRýžöbKGDÿÿÿ ½§“ IDATxœíÝg@W÷0ð»…^¤#½«XèÍ ¢yŒ5j”(šDM(‰š7RĆ%6šÄhÄÅB,ˆË°¡‚"  Ò{wYØeÛ¼&ÏüW¶¸,eöü>Á°÷Ι™ÃìÙ;sgI†!zˆ,ëÀ u$Ô‘@PGiPe@^ܹsgçβŽ )))²п Žü«¾¾þÖ­[S¦L‘u `Ðkhh(((u€~u$à[·n•u`ÐKOOß¾}»¬£ô;¸?HêH ¨#€4 ŽÒ€:HêH€4NŸ>íëëûÇKRSS}…)..FUUUEFFΙ3gÁ‚›7o~óæ ÞêçŸ^´h“É$ú©©©™>}ú­[·¤ŽÍ××wÙ²e†ñ/\¿~½¯¯ouuuoºÚœÉdÆÅÅ­ZµjæÌ™ÁÁÁ \.WhsÂgŸ}¶gÏž¶¶6 W]]]íëë+uä¢zèå¨#=†aXjjª‘‘QZZ±p„ IIIIIID%ýµµuCC÷ß~khh¸ÿþèèhccãµk×–——#„V­ZÅápÎ;GôsôèÑÑ£Gûùùõ&ºº:¢TEµ··çææö´“ÚÚÚyóæ‰MgggPPЫW¯‚‚‚Ž=’’Æãñ_|ðàÁ¤¤¤ÄÄÄõë×wttÒétI"ÑÔÔ\²dIOã€þu$ ÇJKK+**"""Š‹‹«ªªð…***zzzzzz:::!½ÿ¡R©gÏž7nܺuëÖ¬Y3qâD|,SKKkõêÕçÏŸ¯¯¯Gåççß¿ÿÿý¿ÿG"‘z¡»»{zz:ñkFF†‹‹KO;áñx4MükNŸ>­££³ÿ~///ssó‰'ÆÅÅÕÕÕýõ×_‚/ÖÑÑÑÓÓ300puuýá‡LLL%‰dذa=úÔ‘€KMMuvvvww·´´LMM}ïë³³³.\È_†„„,^¼ÿyêÔ©cÇŽ‹‹Ã0ìСC ,°±±ÁÿÄápâââæÏŸ?þü¸¸8‡ƒzøðá×_=cÆŒ… âÅ(~Ñ6;;Ûßßÿùóç¡)S¦¤§§—¶ïܹ3yòdbít:}ïÞ½óæÍ[´hÑáÇY,BÈ××÷Ö­[_|ñÅܹsÏŸ?úæ›oB , >yò$ `Μ9 ø’”””Ï?ÿœLþ¿s©ªªêgŸ}–’’"?‰4wîÜG‰ÚRþæ7oÞįJoÞ¼ù·ß~Û°Ùì9sæà=6çñxçÏŸ_¾|ùÌ™3W¯^ýòåK¡‡¦Ûá+}ðàÁòåËçÏŸÿ믿²Ùl¡ ß{ЊêH@ÏàµñëΓ&Mâ¿´-›Í®©©±¶¶Æe0 CYYÙÔÔ_B"‘¾ÿþûyòdgggTT”ƒƒÃÙ³gCBBŽ;FÜexñâÅÈÈH„ÐØ±c ~i»££#;;{„ D·¿üòKccc\\\tttVVqUýþýû‡ :räH{{;^±]¾|™høøñãcÇŽEDD?~œF£Ñéô––{{ûn›loo_QQ!U7æææ555¢¶Ths??¿;wîàõqVV–ŠŠŠ§§§ÐæIII.\ uêÔõë×Å û&NœxìØ±úúú’’’ˆˆˆ?ÿü“Ífs8*•Êb±ð›;;;…¶Å/mïß¿ßÑÑŸBŽ£R©¾¾¾¨­­---ýý÷ß§M›&&ƒ!æ¯_|ñEkkëºuë233«ªªîÝ»b`` ôAmmm---MMM¹¹¹[¶l©­­%& n©¨5zzzÒéôøøxþ›Ï;÷ðáëTZª]_¯acóÖØ¸sÀVÚÕEyùR¿¥…Ša$55޶6K[›¥¥ÅRWï—šÒÝݽ?ºÈø~m@c2ÙYY¥™™%yyU¹¹ íjjÊÖ^^6NN..–††ZRnnehèùââ†ððS””(@7L&ûСÛÜrv¶Œ]rXq8¼øøûÑÑÿ52ÒþñÇÅ&ØË0˜ŽŽ®üüjüÃ@VVi[[§––ª‹‹¥————­‡‡µšš² ÃÈ!¨#’*/oÎÌ,!9ÞˆÃåaÐQP[[gTÔ•¤¤§ÿùÏØ={“uDâTT4GF^ºsçu@€Ï–-sµ´TeâryÅÅ ÄsQQ=…B²µ5òò²ñô´ñö¶µ´Ô—uŒÙƒ: RW'7·¯$œ,Œµe£7nänÞ|™ÃáíÞ½pÎY‡#©k×r6nL¢RÉ?ü°`ölgY‡óŽÆÆöœœŠ¼¼ÊÌÌÒÌÌ’®.ޱ±6~K¥§§««•Ìo9ÈÔ‘€wTT4?~\’—W••UZPPÍáðøo˜“«AGAuuoׯOLIÉ_¶lü¦M³‡ S—uD=óömç®]×Ïž}8}ú˜½{?51Ð)í⟩óðá›êêgêxyÙzyÙxxXëêÂLÔ‘(:ÁAGª““^89™ËùEa†a v¥¥½hêTGYG$½ŒŒâðð‹ÍÍíaa¯\9‘L–»Û:ù3u²²J_¼¨âñ0˜©€â€:ETUÕúða1>èøòe ›Íµ´ÔǯV{yÙŒm&ÏƒŽ‚JKÃÂ.df–û®[÷јÂd²÷íû;..ÍÍÍ*6ÖßÁÁXÖI„¦NfféÛ·ïÌÔñô´QUU’uŒ€¾u$ Åâää úAGA\./..mß¾¿--õcc{xØÈ:¢¾”Ÿ_v¡  F†’šø™:>>vz²ŽÐ[PG0d56¶?zô¿àˆ:š›ëúøØáƒŽŽŽ¦ƒ}nÄóçU¡¡ç_¿®‹ˆøXž.ÞˆYXèÅÄ,vw·–uDR:S¤tr2‡™: RPG0t°ÙÜgÏÊñ«Õ™™%õõ4eeª³ó tÄbqbbn=š>nœyl¬ÿ¨Q&²Ž¨•—7GF&Þ½[(?ê b¦NVVéÇÅMMt˜©À u$ƒ[SýáÃbüju~~ug'ËÐPËÇÇ:Ït”‘Qv¡±±}ëÖyK—úÈù4”>tíZΆ —””(;w.˜5K¾ Ô0S€Á êHÁAG%%Š‹‹%~µÚËËfÈ : ¢Ó»vìHNHx4iÒˆèèE ø(ì¦&úŽÉ—.=‘çõ†àLmmUgg˜©€œ‚:€A ¹™ž‘ñΠ£æøñöø½ecÇš««úÊïuóæó ’ØlΞ=Ÿ¢§‹÷‡ÔÔ—‘‘‰4cP<HjBgêŒm†§=ÌÔ@@ €P¬AGAgÏ>ܵ뺆†òÞ½‹¦M-ëpä þ` W¯jW¯ö[»vºâRl6÷åËQ3u<=mttÙW0HA €ÌðxØ‹UøÕꬬÒòòfEtT]ݺ~}bzú«+&†‡¬­=¸')÷üÁ@{÷Þ°´Ô‰ñww·’uD23u¨#P­­Ož¼3訧§áîn¢Œc¦¡¡"ëeºøþýÿ˜™éÄÆú{yÙÊ:"yW^Þqñþý¢€Ÿ¨¨yššŠ›EtzWAÁ;3u µ\\,œÌa¦}êHú—à #™L;Ö¿Zíåeke¥p“ŽÅ+,¬ »˜›[±ví´Õ«§©¨ ¦/q‘! Ã.]z²}{²’u×®3g:É:"ÙÃgêà7çåUÖQ©db¦Îøñöææº²Ž€Á êHú^[[çÿ†CJ^¾¬¡Ó»tu5<<`Ðñ=Ølî?þuôhú˜1fûöù;:šÊ:¢Á§±±ý‡®âŠŽ^4|¸BßÑ ÌÔ ÏA @€AÇÞËÎ. »PQÑ9ëË/?¤RɲŽh»}ûå† ‰4sóæ9>pw  þ™:ÅÍÍt •Ñ£Ma¦=u$Rzû¶/33Ksr*ÚÛ™::êø·ÈxzÚŒm¦È÷¨õHGG×öíÉüñh‡\ 5wŸ  äáaãooo$ëˆäZ·™:$ÉÎΈ¸¥fê Ô‘H ðÂÂzâ^«7o0 ƒAÇ^ºsçõúõ‰4cûöO>ýÔÞ­ûÖ‹Õ¡¡ç ëíÁ@½A§w={VŽÿ›?~\B£1øgêxyÙÂ=» Ž@ñøq ÿ ã°aê^^ÿŽ..–ZZð0)µ´tlØpéÚµœÙ³wî\hdOïïÈ‘´ØØ›¶¶†11þnnŠø` ©‰Ÿ©óÁöff0S(4¨#x‡à #‡98ãW«œ,ìí(¸u¯·³vî¼F¡££MŸ>FÖá }eeMë×'>xP´t©¢?¨7êëiø§ÊÌÌ’ÜÜJëÿfêxyÙŒk>T¿£Q ŽàAÇÜÜ ©­­æím ƒŽý¡¦¦-22ñöí—>›7ÏÑÖV“uDŠ0жmÉÊÊÔÝ»~üñ8YG4¸ÁLÔ‘@1Á £Lðx؉÷bcÿ20Њõ÷ñ±“uDŠˆx0М9.»v-40ДuDCDyy3~>™:@¡@ ƒÁzò¤ ?ÑçäT46¶ó::;[Â×îõ«â↰° OŸ–û††þ¾SD¶nÝ*ذáR{;<¨_ÀL 8 ŽCÙë×uø33KKJ¸\t”6›{à@ÊÁƒ·GŽ4Ù·ÏÌ3YGâ{0§§MLÌb;;x0P¿3SÇËËfüx{ƒÔ‘`Ha2ÙÄù:7·¢¡¡]MMÿ"'' KCC˜< rr*BC/””4„…Í ò…§‹Ë›§OËÂÂ.”—7ûíTx0Ѐ™:`ˆ: zÝ9ÞˆÉےì쌠v‘‰ÎNÖž=7Nºïímãomm 눀pl6÷èÑôØØ›¶¶F±±þ®®–²ŽHQ0¬çÏ«ð[*<(jiéàŸ©ãåe3lÌÔòêH0øð:æåUÖ×ÓTU•ðOóNNÎΖð$B™»w¯0"âbKKÇ–-sáö»A¡¬¬)""1#£héRŸ­[çÁWÀ<˜©#¨#Áà€ŸaaÐQþµµuFE]IJz:cÆØÝ»?56Ö–uD@Ră45Uöî]äë;JÖ)®övfNNÅÿf꼡јFFZÎΖøíÝÎΖ0SÈ ¨#œêêâäæVà…£à £““(rèúõÜÍ›“xþ¾——MLŒ¿­­¡¬#Ý ÎÔÑÔTqt„™:`à@ ZUUëÃ‡Åø‰ïåË6›ka¡çím‹:::šÂ“GäÐÏ?ÿãêj5yòÈnËKJÃÂ.de•û®[÷‘šš²LÂýçÉ“Òðð‹b ´cGòܹ®..0Ë[ö„ÎÔ!ž˜;räpY† ¨#A¿tTV¦:;à㠑žþ* àèðáÃîÝÛ ®þo¥ÈåòââÒöíûÛÊJ?6ÖßÝÝZ¦1‚~„?(&榽½Ql¬?ÉøôiÙܹŒŒ´oÝ Óׇ»ôä1S'3³ôÉ“2ƒ3u@€:ô‹ÆÆöGÞdf–ƒŽææº>>v0è8èTV¶øùÅtttQ(¤/¿üpÇŽù¡¼¼ÊÐÐ EEõáá3§ÀÑTeeMáá?.ùâ‹##gjh¨°ÙÜ©S£ËÊšH$’‡‡mbb|A”|âpxoÞü;S'3³´¢â™:|`Ÿ€Ô Ž!Ä`°TT”zsw6›Í}ö¬¿ž’™YƒŽCƒÁš1c_ii3‡ÃE‘HèÂ…oîÜy}äHš³³Elìgp¥L¡àÚºõOmmµ½{?ÍÊ*=pà—ËCQ(ä•+'nßþ‰¬cïÇ?S''§‚ÍæöáL––==>ŒÈ9¨#º¿0<<ñÔ©U#Fô¬&hj¢?|XŒ_­ÎϯîìdjùøØyzÚ89™gwË v!!§oÜÈËH„…BÒÔTe2Ù¡¡3‚ƒáKTeeKddâÝ»…†ñx#üòËÒE‹â_/8訤Dqq±Ä¯V{yÙÀ ãPÿ`Ó¦¤n§ …²t©wtô"YEä—Ë›:5º¬¬™Íæò-&©¨PþúkݨQ&2‹ ôÿ7>Õ“É=›©óúu¯o4‰„ll ùe)Ü6­ ŽTPø$‰ØØ›\.ÃáQ©ä <~þy‰à+››éï :hŽo:ŽkNL¼CIffÉÂ…‡ðK–ÝP(¤7¾wr²ø¨€œ8yòÞ–-Wº F"„¨TÊðáÚ·n…÷h È'þ™:YY¥L&ÛØX5ðô´qq±TVî>SçÌ™Œ“¸\™LÂ04¾ÛŽóá2÷Ðu¤"zö¬âûïÏ×ó¿ XZê?z´!Äåòòó«ñ :*¦úzÚ´i?¶¶v  !*•bkk˜’×­SMMÛĉ» ¶Ð¿R©”I“Fœ>ý5< {(‘p¦Îwß%\¹’Íáüûù“B¡¨©Q£¢æÁ£ì‡0¨#K{;sÇŽä?þxD"‘y¼w†šH$ÒwßMÏϯÎÎ.on¦kh¨¸ºZzxظ¹Y¹»[éêÂJEÁãaK—Æ=|XÌf Œ$DEÍ ž2PA9²r剿ÿ~.æ­ƒL&mÜ8û›o¦`P`à`öæMãÓ§e—<}ZV\Ü@&“FŽîím{õjnssû»/'‘H˜‡‡õþýKììŒd1èOPG*ÄĬíÛ¯¾}Û)ôb%B$ccíI“F¸¹YyzÚŒ9ᡘbcoþüó?‚#‘d2‰B!³Ù\uue//__ǯ¿ž,“ ½}ÛùÃ×<(ª¨hAQ($bð‰…B:w.äÃ<@0ÐÚÚ:Ÿ<){ò¤4#£øÉ“r„„_Ä ‘ÐÚµÓ„>Ê jPG*„ªªÖõëÓÒ^‘Dp%%êêÕSÃÃ?ØÐ€|¹~=7(è‘% Ãx<fl¬íç7ÚÛÛÖËËÖÊJ_¶Ay€ÏóÍÊ*½uëå³ge,WI‰Âåbø…2™¤¦¦rëVd‹âøûï+Wþ.¦¦ PÈ66?ý´æß %ï” £µµU†Ñ€>ÇãaII¹¿ü’ÖÕÅÿ™D"yxX>ìߣþÕÔÔtuu{#jmme0½ìô^UUÛ’%§ ™Lâñ0== OOKWWsWWs[[}…º½IWWWM­W3E*« ö‹µÏžU=}ZùâEMWO¡‘#âã—Áø“<055íMsIòùС{gÏf½;…¿;‰D"¡Ï>s ™¨¦¦Ô›€ ñŸ!ß©# dè{¬“'ó²²j‰ݨTB$.—'´¤TU¥üþûìU †††cÆŒéeœùùù½ìôRWwëÖ» gôhƒQ£ôGÒ76VÜ›bGmdÔ«{¹6«¹\¬¬ìíë×ÍMEE-îî&.²  )S¦ô¦¹$ù¼mÛ½ÂÂÁå$‰B!!„8 ¿êM¡íìtBBÜù$3¨ñŸ!…|½f/³ È•Y³>B56¶WW·VW·ÖÔ´UV¶TV¶”—·ÔÔ´Òhÿ~¾¤PÈ$b2¹¦¦£$ÿ†’üüü¾Š³OêQÐMMôë×½ àëÑPzzzŸôY*+k21ѯr–¡¾!ŸÏl6·¼ü¿ Ã~w5‰DÒÕU75Õ±°Ð33Ó57×31fjªcn®kh¨ Óù¯ngHøßV††Z††Z..–Ý–3™ìÊʼ¾¬®n­ªjmmíI„@æ ‚ýÁÚÚ@Ö!€ÐÒB_ºÔ{øða¦¦:ffº¦¦:&&:pKƒ"€:R¡©ª*98;8Ë:ƒ˜±ñ°]»Ê: ‡ªPªIDAT ð` ¨#€4 ŽÒ€:HcÐב+V¬xïËŠ‹‹ñ§(?ð7öì•JMLL$–'''+++?þ¼?bî†ÄÇÚÚúóÏ?ÿ˜. Ö-[¦©)éìZ‰T\\Ü‘‚ǺÛA Ï„žîÛ'f[$LæŽŽŽˆˆgggMMM//¯={öp8$Õ~# ÓW[ú^ •ؽÉjI^Ù{Ä©¸§'4 utt„‡‡;;;kiiyzzîÞ½Ï[~çÏŸš“—.]êÍÕmNNNï¶éÏr˜Ïý”Q` ÓiÐבþùç'Ÿ|"ôO%%%ÿ>rBGGgýúõ¢š»ººnܸqíÚµmmm¡·oß~óÍ7[·n7n\ÿEÎ/##£¶¶¶ªªêäÉ“4ÍÍÍ D¨ššš„„xb¼(¢Žµxx& ê}+I2···{xx<~üxïÞ½ÙÙÙ‘‘‘gÏžý裸\®tû O]~}»QüÿÅŠ¬7YM´í×É*îÑ M’¨ð¼ÍÊÊŠŽŽ~úôé† ¦OŸÎå¾óÕ)óæÍÓ0##!Dää„ ¤Ø{ïí*µÁ’Ïý”QC Ƨ¾¾>-- TfÍšÕÙÙ)ôOEEEÝ6Pp!Ѽ««kìØ±†»»»³X¬~‹ú¡¢¢"âW7iÒ¤¨¨(Q¯º]’÷߇^¼xñâÅ ùé§bGI²ÇðLèé¾xb"”$™ÃÂÂ&NœÈápˆVt:ÝÚÚ:..NpïÝý—Z‚Á äÚÓÒÒêëë{Ù‰üdµ`Ûþ@¬«?Nh¢òöرcR÷)…~Ýý—Ï}òή°ù<ëêýzrîv†ìñxäÕ«WÍÌÌð¯á>wî܈#:::Bl6;<<ÜØØØÈÈ(<<œÍfãƒÏ·oß¶´´LOOߺu«¥¥¥¡¡áçŸN|6l…ºvíš“““ªªª­­í™3gBGhó¦¦& 555þnâg„Ððáш1s¢9BHYY9>>þĉ{öì9yòd||¼’’’¨ ûpÓ‘H¤ààà7nˆê‡»$ìóŸþ±··×ÕÕݳg±7’““GŽidd´víÚ®®.¡ %M‹þ'4ñx<ÞÁƒµ´´ÆŸ––†拹âpýúuWWWuuu“½{÷â ‰LÌü(ß¿_hC‰tâÄ GGGCCý{÷ž9sÆÆÆfذa[¶lÁ_ xøÆÿÓO?!„ZZZÈdrXXBˆËåêêêâ½­­íË/¿400077 c2™Ý"Á{Æ0,,,ÌÅÅ¥©© IœÌgÏžŠŠ¢PþïáÀ Rì·,Q &~{_¶w3Ø{`²Zè)‰8G½7¥…žpøÓ¯›n'4ÁP%‰JhÞ†‡‡Ÿ={VèG7ü{OŠÿYQ»}íÚµ«V­Â¦ÓéêêêÏž=•o’t ùŒ“ç|Æõ>£TÿGII‰èJðdˆ÷Ÿàè訧§÷ã?Šé³›K'þSÂO-Ÿþù_|QWWgllüøñc|attôÂ… +**òòòÜÜÜ"##ñúýã?NMMݶmÛ˜1còòòž?îíí&ªNWQQ‰‹‹«­­ýý÷ß©T*N‰‰ÚüĉgΜÁÞý¬ ôóÐ…DsBdd$BhçÎü ûuÓ0aŸ²²²tttįÿ«¨>ù!„fÏžM£Ñ’’’ðÿ¼‡>ú¨°°ðÑ£GöööÛ¶mºP|& ðx¤`â9rÄÈÈèòåË5557nÜ077Çwf·cMü@£Ñ”••W®\YUUuöìY„PCC&6‘ð£\[[+´!BhÉ’%4íøñã¡Å‹Óh´#GŽàûvøvìØ1kÖ, Ã’““µµµÝÜÜ0 {ò䉪ªjGG†a~~~oÞ¼ÉËË;v,qhðHð[²x<QDâÑJ’Ìøù½±±±ÛŽ}øð¡žžžû !”““Óþ.QKT‚I²½Bó¡ÿ{ Ç#2«»©&'ö¾”uÂáO?1'4¡¡¾7*QyûàÁcccþl!Î~ÝúäÿUŠÿY¡ý`vçÎ}}}6›aØÙ³gÇŒÃãñD囘n‰Àú)Ÿr|øíÛ·1 ›9sæÞ½{1y.¾["°~Êç¬#‡^>ãú)£âââ|||˜L&&âä÷> û$¢ê§tÂz]!¤££˜ŸŸB,,++311Á§2MŸ>½´´_>jÔ(„Pyy9~} !äèè8þ|Q­tuuÓÒÒ=zdnn>yòä{÷î‘Éd¡Íét:›ÍÖÕÕí&âí­Áæ ééé©©©—.]JNN˜M[QQ‘øµã$ìÓÔÔ!ÔíODØ£Fªªª³PN&^II‰‹‹ ñ'''ñ=(++Θ1ÃÝÝ=>>_(*‘pøQÚ§¥¥…Â/óÿŒ<|®®®YYYwïÞ;w®««ëÝ»wÓÒÒfÍš…ª¯¯çr¹ÄÑ···'Ž .++kÊ”)»wïµ B“YGGgøðá‚“Lsrrø;—p¿áoÁ!Ö%x–@ &áöŠ2[&Yun“ÒBO8ï]qB“Hb¢“·îîîøÏ’d ¡§ÿ³¢ú¡P( ,¸|ùrSSÓ­[·ˆ? æ›$ÝB>£ÁÏ‚¤Ë¨¼¼¼={ö\ºtIEE‰=ùã‰ÑÓ,°t’¦Ž¬¬¬>^EE…ÿn³ÌÌL2™|éÒ¥þÞ4ìÝ«ðüwˆ_»˜>‰+‚?ã=?~ÜÊÊÊÀÀ`Íš5 CèBñÉ0÷G M<‹µcÇMMÍñãÇÿñÇHì7†íß¿_OOÏÂÂâ·ß~[²d‰®®.&½§VhC###ì}û‘mmmT*ŸÓÑÑ¡¬¬A¬¨¥¥eùòåúúú&&&ßÿ=qh£b0#FŒØ¸q£äÉŒaN ;v¬ªªªÝ¦M›&OžìïïߣýFl¾ÐSŠÐƒ%*ÁÄo/ÿñ{wx_%ö€Ý9ÀYÝmg MÎ÷¦t·Žà©Xü M0‘$‰ ãË[uuõ1cÆìܹ,‹Ð;hÅßÍ&Åÿ¬ÐnqÁÁÁjjj4ÿ5‚ù&ÅÞî«|°û#‡d>w[©à¯ÒeBHYYY…&ìdØÓ> 03$ ãû·ohh(((˜2eŠÐ·0d;88`ïžñ….¿BÑû‡ñöU?Rl@±X¬ììlü!ýgŽN_%vzzúèÑ£ŒŒz dµ‚Ø´iSYYYBBþk¯¾Êç>yg‡|ìú*À’Úg1'eeåþ."z˜LfMM͉'Î;'ëX™Aÿ½ˆ@ ÚÚÚAAA’, ¯ @‚Abƒôøñc•+Wòõõa¾A>ƒ>Ôé×µôäíº6}B®®kÐKru] ÝÎ0 ¤u$Ô‘@PGi@ ¤!äù‘555Œ˜L¦ªªj_u‰†Èj D}9pOA>¡„Ô‘………¤úªŽloo—ð«, «ÁPù „"Á×)Àý‘@PGi@ ¤u$ÆÿôËÊ®†ùðIEND®B`‚XQilla-2.3.0/docs/simple-api/ExternalFunction_8hpp.html0000644000151400015140000000533511653571064017746 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ExternalFunction.hpp File Reference

#include <xqilla/framework/XQillaExport.hpp>
#include <xercesc/util/XMLUniDefs.hpp>
Include dependency graph for ExternalFunction.hpp:

Go to the source code of this file.

Classes

class  ExternalFunction
class  ExternalFunction::Arguments
XQilla-2.3.0/docs/simple-api/LocationInfo_8hpp__incl.map0000644000151400015140000000003511653571064020007 00000000000000 XQilla-2.3.0/docs/simple-api/UpdateFactory_8hpp__incl.map0000644000151400015140000000003511653571064020175 00000000000000 XQilla-2.3.0/docs/simple-api/classATGMonthOrDerived.html0000644000151400015140000003740611653571064017776 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATGMonthOrDerived Class Reference

#include <ATGMonthOrDerived.hpp>

Inheritance diagram for ATGMonthOrDerived:

List of all members.

Public Types

typedef RefCountPointer< const
ATGMonthOrDerived
Ptr

Public Member Functions

virtual const XMLCh * getPrimitiveTypeName () const =0
virtual const XMLCh * getTypeURI () const =0
virtual const XMLCh * getTypeName () const =0
virtual const XMLCh * asString (const DynamicContext *context) const =0
virtual bool equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
virtual int compare (const ATGMonthOrDerived::Ptr &other, const DynamicContext *context) const =0
 Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.
virtual bool hasTimezone () const =0
 Returns true if a timezone is defined for this.
virtual ATGMonthOrDerived::Ptr setTimezone (const Timezone::Ptr &timezone, const DynamicContext *context) const =0
 Sets the timezone to the given timezone.
virtual
AnyAtomicType::AtomicObjectType 
getPrimitiveTypeIndex () const =0

Member Typedef Documentation


Member Function Documentation

virtual const XMLCh* ATGMonthOrDerived::asString ( const DynamicContext context) const [pure virtual]

Implements AnyAtomicType.

virtual int ATGMonthOrDerived::compare ( const ATGMonthOrDerived::Ptr other,
const DynamicContext context 
) const [pure virtual]

Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.

virtual bool ATGMonthOrDerived::equals ( const AnyAtomicType::Ptr target,
const DynamicContext context 
) const [pure virtual]

Implements AnyAtomicType.

virtual AnyAtomicType::AtomicObjectType ATGMonthOrDerived::getPrimitiveTypeIndex ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATGMonthOrDerived::getPrimitiveTypeName ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATGMonthOrDerived::getTypeName ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATGMonthOrDerived::getTypeURI ( ) const [pure virtual]

Implements AnyAtomicType.

virtual bool ATGMonthOrDerived::hasTimezone ( ) const [pure virtual]

Returns true if a timezone is defined for this.

False otherwise.

Implements DateOrTimeType.

virtual ATGMonthOrDerived::Ptr ATGMonthOrDerived::setTimezone ( const Timezone::Ptr timezone,
const DynamicContext context 
) const [pure virtual]

Sets the timezone to the given timezone.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classATTimeOrDerived.html0000644000151400015140000007151311653571064017475 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATTimeOrDerived Class Reference

#include <ATTimeOrDerived.hpp>

Inheritance diagram for ATTimeOrDerived:

List of all members.

Public Types

typedef RefCountPointer< const
ATTimeOrDerived
Ptr

Public Member Functions

virtual const XMLCh * getPrimitiveTypeName () const =0
virtual const XMLCh * getTypeURI () const =0
virtual const XMLCh * getTypeName () const =0
virtual const XMLCh * asString (const DynamicContext *context) const =0
virtual bool equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
virtual int compare (const ATTimeOrDerived::Ptr &other, const DynamicContext *context) const =0
 Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.
virtual ATDecimalOrDerived::Ptr getHours (const DynamicContext *context) const =0
 Returns an integer representing the hour component of this object.
virtual ATDecimalOrDerived::Ptr getMinutes (const DynamicContext *context) const =0
 Returns an integer representing the minute component of this object.
virtual ATDecimalOrDerived::Ptr getSeconds (const DynamicContext *context) const =0
 Returns an decimal representing the second component of this object.
virtual const Timezone::PtrgetTimezone () const =0
 Returns a timezone object representing the timezone component of this object.
virtual bool hasTimezone () const =0
 Returns true if the timezone is defined for this object, false otherwise.
virtual ATTimeOrDerived::Ptr setTimezone (const Timezone::Ptr &timezone, const DynamicContext *context) const =0
 Setter for timezone.
virtual ATTimeOrDerived::Ptr addTimezone (const ATDurationOrDerived::Ptr &timezone, const DynamicContext *context) const =0
 Returns an ATTimeOrDerived with a timezone added to it.
virtual ATTimeOrDerived::Ptr addDayTimeDuration (const ATDurationOrDerived::Ptr &dayTime, const DynamicContext *context) const =0
 Returns a time with the given dayTimeDuration added to it.
virtual ATTimeOrDerived::Ptr subtractDayTimeDuration (const ATDurationOrDerived::Ptr &dayTime, const DynamicContext *context) const =0
 Returns a time with the given dayTimeDuration subtracted from it.
virtual ATDurationOrDerived::Ptr subtractTime (const ATTimeOrDerived::Ptr &time, const DynamicContext *context) const =0
 Returns a dayTimeDuration corresponding to the difference between this and the given ATTimeOrDerived*.
virtual
AnyAtomicType::AtomicObjectType 
getPrimitiveTypeIndex () const =0

Member Typedef Documentation


Member Function Documentation

virtual ATTimeOrDerived::Ptr ATTimeOrDerived::addDayTimeDuration ( const ATDurationOrDerived::Ptr dayTime,
const DynamicContext context 
) const [pure virtual]

Returns a time with the given dayTimeDuration added to it.

virtual ATTimeOrDerived::Ptr ATTimeOrDerived::addTimezone ( const ATDurationOrDerived::Ptr timezone,
const DynamicContext context 
) const [pure virtual]

Returns an ATTimeOrDerived with a timezone added to it.

virtual const XMLCh* ATTimeOrDerived::asString ( const DynamicContext context) const [pure virtual]

Implements AnyAtomicType.

virtual int ATTimeOrDerived::compare ( const ATTimeOrDerived::Ptr other,
const DynamicContext context 
) const [pure virtual]

Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.

virtual bool ATTimeOrDerived::equals ( const AnyAtomicType::Ptr target,
const DynamicContext context 
) const [pure virtual]

Implements AnyAtomicType.

virtual ATDecimalOrDerived::Ptr ATTimeOrDerived::getHours ( const DynamicContext context) const [pure virtual]

Returns an integer representing the hour component of this object.

virtual ATDecimalOrDerived::Ptr ATTimeOrDerived::getMinutes ( const DynamicContext context) const [pure virtual]

Returns an integer representing the minute component of this object.

virtual AnyAtomicType::AtomicObjectType ATTimeOrDerived::getPrimitiveTypeIndex ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATTimeOrDerived::getPrimitiveTypeName ( ) const [pure virtual]

Implements AnyAtomicType.

virtual ATDecimalOrDerived::Ptr ATTimeOrDerived::getSeconds ( const DynamicContext context) const [pure virtual]

Returns an decimal representing the second component of this object.

virtual const Timezone::Ptr& ATTimeOrDerived::getTimezone ( ) const [pure virtual]

Returns a timezone object representing the timezone component of this object.

virtual const XMLCh* ATTimeOrDerived::getTypeName ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATTimeOrDerived::getTypeURI ( ) const [pure virtual]

Implements AnyAtomicType.

virtual bool ATTimeOrDerived::hasTimezone ( ) const [pure virtual]

Returns true if the timezone is defined for this object, false otherwise.

Implements DateOrTimeType.

virtual ATTimeOrDerived::Ptr ATTimeOrDerived::setTimezone ( const Timezone::Ptr timezone,
const DynamicContext context 
) const [pure virtual]

Setter for timezone.

Overrides the current timezone. (Not to be confused with addTimezone().

virtual ATTimeOrDerived::Ptr ATTimeOrDerived::subtractDayTimeDuration ( const ATDurationOrDerived::Ptr dayTime,
const DynamicContext context 
) const [pure virtual]

Returns a time with the given dayTimeDuration subtracted from it.

virtual ATDurationOrDerived::Ptr ATTimeOrDerived::subtractTime ( const ATTimeOrDerived::Ptr time,
const DynamicContext context 
) const [pure virtual]

Returns a dayTimeDuration corresponding to the difference between this and the given ATTimeOrDerived*.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/ATDateOrDerived_8hpp__dep__incl.png0000644000151400015140000001255011653571064021334 00000000000000‰PNG  IHDR ÃŠÍŽbKGDÿÿÿ ½§“IDATxœíiPS×ÛÀOÌ‚"  F¬j‹¢µj—ê }…ED+Çe\ îR»ˆS—"‚ X¥RPEÅÿ*ˆ"Ä"k H1ÑHÈvßצiÂHäp~㇓ÇsžóäþrϽÉ%¹ Ã^†˜ºDÿ‚C 9H0äÔ,Z´ÈTu ú¼¼ÿüs:nŠª}@ssó‹/Ô’4zøúú.X°À¨E!úŽÛ·oÿôÓOêt †$r`ÈA‚! †ͳènrþüù¤¤¤àààU«Vá‘‚‚‚ŸþY»g|||pp°ê¡­­í”)S¬¬¬z7µ ‰Drîܹ’’gooïææ¶råJ"‘¨ÑmáÂ…½ž½¡¡aõêÕ………½.Rg†… &''3¦×i»OocVPP@§Ó U‚çÌ™“žžàñx›6mÂÛ€‘#G¢££ †R©¬¯¯OOO ILL´°°Ð™ŸÇãmذ!++KO íííaaaT*544ÔÎήººúìÙ³=:vìØ!šËRfWÇÂÂÂßß¿ËnŸ2½Y¢«««ëêê"""8—ËŃfffÖÖÖÖÖÖøÎaý$ `eeemmM£Ñ\]]þùgƒqéÒ¥Îò+•J¡P¨¿†óçÏ[YY?~ü믿f2™nnn±±±MMM¹¹¹Ú{4»:–––!!!ÝéùÉÒÁS¦L™>}º½½}AAAO‡„eË–áŸÏb±4Ò²X¬ºº:¼––¶k×.GGG=³ëL®s¸»»û;wðKJJÌÌÌf̘¡sxzzzjjjHHÈ… cccunâââøøøˆˆˆ„„Õr•™™yøðáß~û­¸¸­wì>=üêÕ«æææyóææÍ›WSSS]]ÝÓ$*(ÊÙ³g·lÙbccƒÞÖÖ¦Ñ'77wëÖ­t:ÝÁÁ!44ôáÇe#J¥o‡„„¸ºº:T%×þÍ7ß…Âׯ_òóó===ñ³9íáÙÙÙ6lpss³±±™9sfg+üŠ+ÌÍÍçÎ hmmŃaaaL&ÓÙÙù‡~P]0Ðì>=>É*((P(ß}÷*RXX8~üø%ár¹vvv‰Äår=*‹uîm€¦¦&ÕÃáÇ[XXX[[s8œéÓ§«÷äp8'NÄÛööö]ή3¹ÎáfffsæÌ¹sçÎgŸ}vÿþýøøøÎ†Ëårõ¥ÅÁÁAg 666 d2™ªÙÿþûo=ÁîÓ3ÁJ¥²°°pãÆ^^^x$))©°°pݺuµêðìììY³f:::"#####gÏž-“Étž"YZZž8qS/ÎóçÏ»ººªÃ‰$%%Eµ¹ñ“;ý³w–\çpww÷“'O²X¬‰'ª6ºöð¼yóf„ x‡ššeèÜ\\.AÔ××㯀΂ݧgK4›Í‹-ö\.—Ãáèøþý{>ŸßÒÒR^^¾ÿ~çççÉdr¹œD"I¥Rüø×ÞÞŽ‹ÅxÃÍÍ->>þíÛ·UUU™™™€µk× ‚íÛ·?|øËåÞ½{7,,ŒF£©/-]ÎÞYr̘1C$;wnÉ’%ª öðeË–>}úÞ½{|>ÿálj‰‰xÏk×®i}4ˆŽŽnhhxõêUBB‚êÚ¼Î`÷éÙ\PP0mÚ4õO íìì ;[`q6mÚ„7ètº‹‹Ë™3gðÅÐÂÂ",,ì—_~6lتU«ÜÝÝ#""._¾üå—_úøø\¿~°~ýúèèèàà`0oÞ¼ÐÐP€¹¹ù™3g’’’bcc †»»»¯¯/™Lîþì:“·´´èÞR$ÒüùóóóóçÏŸ¯ j'“É2™ìôéÓïÞ½›0aÂþýûñ7G:uªj^xxxìØ±C"‘¸»»à ²FPÏph^ð?xð ºl|t~àÕ‹ÏÑðëÁêNÑgу >|éÒ¥Ý ö$ø“ÀÊÊjûöíÝ ö$r`ÈA‚! †$r—à–ñ»wbSWaT4?Érpp R©&,¨_‰˜ ®© é/AUUU§_]ñõõ5zIFåñc:@pp ˜º~Dã*aðü„ÃË—îî¿òó#œ¦.ÇH ¢cpvv‰4„D"æä”™ºã1Xc–’R,—+årEJJÑàY·‹àGjš›?þmÛÛ·ÂÇkLZŽñ,‚33KÉä_z “‰W®<1m=FcP–Ë•e2þP&Sdd<’Ë•¦­Ê8 Áÿû_Ňõȇ’{÷*MU1‚¯\yL"ýç™’H„ŒŒÇ¦ªÇ˜À/X"‘]½Z.—+Ôƒr¹òêÕr‰¤ÇßpÀ/øÖ­‰\;.‘Èòó_¿#¿àôôGD¢Ž¿2' ééð¯Ò nm•¼ÔyÂ,—+óó_ˆDƯʘ@.87÷©êÝ‘62™"7—mÌzŒä‚6¡ðß7H{÷f~ýÕ[9r(•ªïÛ^þFÇ@J®îoøp `ܸ…kàù@‚! †$r`ÈA‚! †$r`ÈA‚! †$r`ÈA‚! †$r`ÈA‚! †$r`ÈA‚! †$r`ÈA‚! †$r`ÈA‚! †$r ú†UUÕ­[·ú°šþæÒ¥€¯ïSÒ<<<:»Gm·À 55µïžˆ1 -‰DKSWÑ3RSS qÔ?á÷¯|˜–îß•¹3Ð1r`ÈA‚! †$r`È1†`Àápú0›6}•¼wõôá³ësŒºWUUÑh4ÃóÜ¿Ÿ÷_Œ_Ã@Á¨¿U©T*ß½{gxžQ£F=Ú´5 ŒºÏš5  r#“ÉÂÃÃmmmétzxx¸L&„ÄÄDggçQ£FEEE]¸paüøñ–––û÷ïןüêÕ«®®®æææ #** —Ë À3deeMš4‰N§oÙ²¥££Cg°/6jWþYt—Ý•••†UVVª÷?räˆO]]›Íž6mÚ®]»ðÎþþþB¡0!!àçç' ãââ---x‡²²²V5d2™P(¤P(AAA\.799ÐÜÜüûï¿Ož<™Íf?}útæÌ™;wîÔ®! ÀÝÝýÍ›7l6û‹/¾ˆŒŒÄ;|ûí·ׯ_·±±‘Éd†%''Ož»Û·oc¦P(ðyÕ3à[I#­*ØMgú‹ ½¦¦¦†Áø÷. ––¯óŒ1@&“5Ú**++Y,–F¶ŠŠŠàà`‘HäêêŠGjkkñ¶³³³³³³Æ·oß*Š &àY,—ûñÖÂNNN"‘èíí‘‘áâârëÖ-|!ÑÆÎÎ0dÈŽwª©œœTiuûS¾¦ÑhøN‰a˜@ (**êu*±Xìçç^ZZƒíììjjjðvYYÙ¯¿þª1ÊÖÖ–H$VUUáß¼y3fÌÇKŪ—”¯¯ï•+WÒÒÒæÎËd2uήó}¾Ë***ðW@gÁ~Å‚E"ÞðööÞ½{wmm-›Íöôô|ø ¿¤­[·r8œ’’’={ö¬^½ZO°1d}ïé1X&“Í;× …ÂuëÖQ©T›¶¶6õεՃê?~ÜÚÚzìØ±111þþþt:]"‘ìܹÓÎÎÎÒÒÒßß_ h×Àçómll ƶmÛÄb±Æ‰†a6l6l˜P(Ô~F:Ûx†„„„qãÆÑh´Í›7«Òj»³éÀIÖ@gÏž=«V­ê~í—HgÁ.1\0ä7å0‰DÒØØ˜˜˜˜’’bêZz ºØ ââ⯾ú*((hÁ‚Ý5räÈÐÐÐî!»ÿ Y¢M0x‰F{0ä ÁƒC 9ƒKp{»´½]jê*ŒJ¼>sæŒáIŒCyù¸¸ °o¯B6ÍÛ»^amýNÊ4u!Æòû«ÓÒ"ru=¡¼üµ5Ì÷ VgƒssÙøgïׯC~×ou‘àÔÔ‡ÀRSšºã1X××óŸ<©Ã0L©¥¥µõõ|SWd$‹àœœ2"ñã“% 99e¦­Çh Áii%r¹oËåXZZ‰ië1ƒBðë×MMj¬¢¢éõë¦N@Ä œ•õ„D"ªGH$bv¶Ž?a‡øcvéÒ¿ë3Ž\®HK+ ŸÀ/¸¬¬¾¡A oh”—׿#¿àÌÌRõ‡D"ff–¿#¹`…Byù²æúŒ#—+._~¤P(_•1\pQQ•@ÐN")’Æ?‰Èç·W™ºÆþò?›%‘†ìÝë¥zxõj9ÀËkŠz”eDÑÕ$@h耸¸µ¦.Äx@þúE ÁƒC 9H0ä ÁƒC 9H0ä ÁƒC 9H0ä ÁƒC 9H0ä ÁƒC 9H0ä ÁƒC 9H0ä ÁƒC 9H0ä ÁƒC 9H0äô wÝü”6Ì ¿2u!=ÃG†þFǶmÛfÏžm`DgŸÏ'“ÉGJ¥²µµU¡Ph.--Å0L*•j´+++ñžl6šÊb±Ô‡;99ñx<¼——7uêTíípûöm à E—95‚ú·žá‚ûýleeòüùó°°0×¢E‹ª««µ‹´³³hÌ«3§ž‰úƒ~\__íáá±cÇ<2f̘òòrU‡çÏŸëÏ ‹ýüüÂÃÃKKKcbbTqÕ‹T,+•ÊK—.ñùüõë×/]º”Ïïñ­ ñÝ PQQÛRA£ÑTk†@ (**Ò®óBgN=õý+X©TmÞ¼9%%åÖ­[999€   ðð𬬬¦¦¦7nìÚµK’ŽŽ©TJ¡PÄbñÁƒ­­­êÂâÅ‹ÓÓÓ…B¡T*%“Éæææ=-uëÖ­§¤¤dÏž=«W¯Vÿ/ooïÝ»w×ÖÖ²ÙlOOÏS§N>|øÐ‹œz&ê YßAWÇà“'ON™2E*•bvåʃÁçó¥Ré¡C‡Æoaa1{öì‹/½Ç` ÃŽ?nmm=vìØ˜˜:®1Qjjê„ (Š““SVV–Æp vØÖnã=ÆG£Ñ6oÞ,‹Õ‡ …ÂuëÖQ©T›¶¶6Crjõoáp’Õ%ê›Ò$ôG:söb¢p’…0-H09rdhh¨röÇD]cÈîúb‰Fè-ш.@‚! †$r`ÈA‚!gp}7i€bˆ#ƒ¾º’––fÈp„\÷„ c0ä ÁƒC 9ÿœ9ËÀðùœIEND®B`‚XQilla-2.3.0/docs/simple-api/classFastXDMConfiguration.html0000644000151400015140000002550011653571064020537 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

FastXDMConfiguration Class Reference

#include <FastXDMConfiguration.hpp>

Inheritance diagram for FastXDMConfiguration:

List of all members.

Public Member Functions

virtual DocumentCachecreateDocumentCache (xercesc::MemoryManager *memMgr)
virtual SequenceBuildercreateSequenceBuilder (const DynamicContext *context)
virtual ItemFactorycreateItemFactory (DocumentCache *cache, xercesc::MemoryManager *memMgr)
virtual UpdateFactorycreateUpdateFactory (xercesc::MemoryManager *memMgr)
virtual URIResolvercreateDefaultURIResolver (xercesc::MemoryManager *memMgr)
virtual ASTToXML * createASTToXML ()

Member Function Documentation

virtual ASTToXML* FastXDMConfiguration::createASTToXML ( ) [virtual]

Implements XQillaConfiguration.

virtual URIResolver* FastXDMConfiguration::createDefaultURIResolver ( xercesc::MemoryManager memMgr) [virtual]

Implements XQillaConfiguration.

virtual DocumentCache* FastXDMConfiguration::createDocumentCache ( xercesc::MemoryManager memMgr) [virtual]

Implements XQillaConfiguration.

virtual ItemFactory* FastXDMConfiguration::createItemFactory ( DocumentCache cache,
xercesc::MemoryManager memMgr 
) [virtual]

Implements XQillaConfiguration.

virtual SequenceBuilder* FastXDMConfiguration::createSequenceBuilder ( const DynamicContext context) [virtual]

Implements XQillaConfiguration.

virtual UpdateFactory* FastXDMConfiguration::createUpdateFactory ( xercesc::MemoryManager memMgr) [virtual]

Implements XQillaConfiguration.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/functions_0x67.html0000644000151400015140000013065411653571063016315 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- g -

XQilla-2.3.0/docs/simple-api/classATHexBinaryOrDerived__inherit__graph.md50000644000151400015140000000004011653571063023374 0000000000000033d1956ff2976453c2fd3a66a6d1da5aXQilla-2.3.0/docs/simple-api/classNSFixupFilter__inherit__graph.map0000644000151400015140000000037311653571064022256 00000000000000 XQilla-2.3.0/docs/simple-api/MemBufFormatTarget_8hpp.html0000644000151400015140000000543311653571064020150 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

MemBufFormatTarget.hpp File Reference

#include <xercesc/framework/XMLFormatter.hpp>
Include dependency graph for MemBufFormatTarget.hpp:

Go to the source code of this file.

Classes

class  xercesc::MemBufFormatTarget

Namespaces

namespace  xercesc
XQilla-2.3.0/docs/simple-api/FunctionRef_8hpp__incl.md50000644000151400015140000000004011653571063017550 0000000000000083cac2d976ea11e5bf863dd088da4bfdXQilla-2.3.0/docs/simple-api/classATDateOrDerived__inherit__graph.png0000644000151400015140000001774111653571064022500 00000000000000‰PNG  IHDR]±uyibKGDÿÿÿ ½§“–IDATxœíyT×âÇoL‚€ È’"‚€Bñ©¸¡±>Ðgí«EPp©ËÅcñW j„Vúhµ§§‹(ˆ>Å'‹ñÙÚW¶ÃkeITž€a È‚lóûc4M³ÂH¼Óû9üqgæÎ½ß™³d²\ †añÚ3ÁØz<ÁòÈД'ÊÊÊ’’’Œ¡L```||¼bòžºººŠŠŠBCCÇ=â”——O™2EyM½RNNÎxåAh&,,Leº>ÁòÈ Op€<Á!ž(J˜™™ùûû×ÖÖê¨aØÖ­[-,, I ®®®‹-ÊÏÏ7JŒ¦¦& …2Úµ <žnß¾Íãñx<›ÍöôôÜ´i“Žçî—/_~øð¡a}Boo¯¯¯¯¹¹yvvveeåæÍ›ÃÃÃÿóŸÿŒ½e.—kgg7övt£áõ“>ØÛÛ;88Ž?Îd2»»» †ÆÊ"‘àââbpʱ“°bÅŠôôt|ò7ÞèììüòË/ÿö·¿±e¹\ÞÛÛ;æ€#@Àõ‰N§›˜˜XYYᓉ$..ŽÉd2Œ¸¸8‰D²dÉîUcüTP\\ìââò믿ªWP(”Ë—/{{{ÛØØ?~ •J\\\ìíí·oßÞß߯­}@^^Þ”c'$$œ;w/÷÷÷ïØ±ÃÎÎÎÙÙ966vhhHùì¤\V1âÖÉd²'NÌœ9ÓÒÒÒßßÿÎ;†ìeL‰ììl•9ÔÖÖ <}útß¾};wîT,MII ikkc³ÙóçÏ?räHcc£r³Ú*¼ýöÛ%%%B¡P½ÞéÆù|~ZZ ··÷ĉ>>>l6›ÃáøùùÅÆÆjkŸÏçúúú´mÑ–-[‚‚‚?~Ìf³gÏž˜˜¨œY¹¬cÄ­;uêƒÁ`±X?üðƒ““Óˆ;944444ôû\yBOÊXXX<|øP±ÔËË‹ÇãáåÂÂÂyóæ©l‰¶ l6[[¼ÓÒÒR ÃÄb1 ±±qÖ¬Y, ¯öðáCEY}õ¾¾>ŸÏ׸9b±˜J¥Þ¿Ÿd±X:<©ÄqëfΜyáÂE…þóŸã穱±/~øá‡K–,Q,555U¶hee¥²%Ú*ˆÅbmðN=z¤ÀÔÔ”Ãá¨ÇÓ¸:“ɼuë–rµÊÊÊ… >yò ‰ðùl6ÛÔÔT9sCCƒ²'•#n™™Ymm­¢BMMžÆz}277ß±cǃ°—Ç™Â"ŸÏ¯¨¨PYE[:®»Â„ HëääÔÒÒ‚—kkk¿øâ «¯]»öäÉ“˜ÒÉ 33S"‘˜››3™L*•Êårñù?ž:u*^–J¥€§OŸ*÷«cÄ­suu­««STxðàŽÕµ¢,Í€ã ðÖÖV€@ À'cbb6nÜØÒÒRWWççç·ÿ~•ÿ8*¨tŠ—æÌ™Ãáp8Ž¿¿dd¤ŽÕŸ={fkk»eË–[·nÕÕÕ%&&nܸ¯Äår9ŽÏÑ£G»»»çÎûí·ßÖ¯_”Ž'•xøm½ýõ× ãÚµk<ïæÍ›3fÌq'ÞÃ0L&“Mž<¹¹¹Ÿ;wîœ2eŠ­­mTTÔàà Š*hÜACCC±±±NNNVVVáááŠËÆÕ1 kiiÙ¸q£“““¥¥åâÅ‹¯_¿®è±¯¯oÛ¶m¶¶¶ŽŽŽ|ð~LJJ²¶¶vww/((ÐáI"‘XXXhë]*•ž8qÂÃÃcÒ¤IK—.ÅoÝ{XÝS:äääè~ÅŠð÷Ÿ”ßDÏ÷ày‚ä '8@žày‚ä '8 ¡§;w¸ÆŽ@<ÞÏ]¹råøç .×ÝÙù‰‰‰ØØA ‡Ãá*Ïùƒ§iÓ¦Áþár‘ˆ&™‰ÅL怱³N`` þ6± Éžæ8qó«¯~ž>ݶ¼üScg!²]Ÿrs«­­½õõÆÎB$¤òTSÓÖÞÎÐéÔ¼¼{ÆŽC$¤òtíZ5FH$²ÜÜ*¹œ<§tòx’ÉäW¯VI¥2|²»{ ²’<7èäñT^ÞÄç?WLÒéÔüüj#æ!òxb±ªi´ß7G"‘TK$2#F"’x‹¥×¯×J¥rå™ÁðÿÛ`¬HÄBO%%õ"ѰÊLÂb‘ä®$žX¬{ê«“Jå?þX÷ü9ÄÁ“P8üóÏd2¹ú"‰DVTdÐç_3Èà©°ðX,Õ¶”w}dðtíšVr9VZZ/ˆÆ3Ï«€ ÏaÛÛùÊ'½¥K“ŽÛü†bŽƒƒÕĉ~#ï5îô8ÎÎSTæØÛ[NŸnk”0¯2œ÷þ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<Áò¯Ñ÷ÔΞ=KTSEEE•co'88¶Äøècü„ƒƒ>)‘Hâââ˜L&ƒÁˆ‹‹“H$ …’‘‘áíímooŸœœ|éÒ%777++«øøxcF7Œ±?_!  Çs#ðr˜a•¡‘SRRBBBÚÚÚØlöüùó9‚Wéé逰°0@pæÌ@OO!yÆ ’xòòòâñxx¹°°pÞ¼yxåêêj ÃÄb±JYy<í±ä7^£÷5ÆBKK‹£££bÒÊÊ /XZZètºJ:`½>©`gg§8Dø|>>†:™€Û“P(Ä 6løè£Z[[ÙlöêÕ«¿ûî;ã#X=¹ºº(ÎuIII–––¾¾¾ýë_çΛ’’bÜx„Ùõ {ùöFûå—_ó---3222224VÖQ†X§?È Op€<ÁòÈ Op@BO==BcG ž×ëunqqqÿÉÍ}ú¦TB"½&¼^žÆþU€ &2Q·nåŠDõ„DzMxÎ{„¼Osñb)…B}çý„´fì½ò‚×È!äåÝ€RQÑÔÛKª«©ìÀ^¾·D¥’êÔGOùùÕ4Úﯙd2,7—<§>òxÊÍ­’JeŠI ÚšžÕ×óŒ‰@HâIãÕˆF£ê.HâéÚµj:]õA‘T*ËÉ©Ä ü4„:dð$—cW¯Þ•HdꋺºÕÕ­ã‰pÈàéÎnw÷€ÆE45?Ÿ §>2xú÷¿k&&4õ?¹»~½FyôwHy½ž—ÆìÙΟ|òwÅäÉ“ÿy÷ݹ3g:(æüö›ÈÆf’1¢…—Yeœœ>HM}oíÚyÆB$d8ïý@žày‚ä '8@žày‚ä '8@žày‚ä '8@žày‚ä '8@žày‚ä '8@žày‚ä '8@žày‚ä '8@žày‚ä 'HÐçgè²³³sXZÐéÐ ]ª‚Q|?7''çÕÅýsrêÔ)=kŽÂShh¨AaZÉÍÍÕ³&º>ÁòÈ Op€<ÁñžŽ;F¡P’““Þˆ MMM EÛÒ¬¬,Š&jkk Ì`0{Â0,++ËÅÅe,/56ÂåríìÆôêÕÚÚúðáÃÚ–®[·ŽÇãñx¼Û·ox/ñññK§„¡ÿó}jÖÕÕQ(”ÂÂBÀ£GôYEÏFT ~uŒ[G†…††êù<‚àã)++kùòåÁÁÁ^^^ÊG…B¹|ù²···ÍñãÇ111»wïÆ— …Bssóšš,Y²ààðâWÀúûûwìØaggçìì;44„÷’‘‘áíímooŸœœ|éÒ%777++«øøx tÞ“J¥ ...öööÛ·o×=òŠÆœxS³fÍb0111ÃÃÉDÇd2 F\\œD"!jÇy<Éår77·3gÎ`öÉ'Ÿøøø(6nÜÈçóÓÒÒ½½½eee¶¶¶‰ðÌÌL¹\®£•ó-[¶=~ü˜ÍfÏž=;11ï%<<\ ¤§§ÂÂÂÁ™3g===ŠNœ8áããÃf³9ŽŸŸ_ll¬òV¨t¤1'^gÕªU x€”””¶¶66›=þü#GŽèÞcúODzª¨¨ Ñh===†Ý»wÀáp^t@ii)†ab±ÐØØ(•JŠ‹‹1 [³fMrr²îF”wŸX,¦R©÷ïßÇ'Y,–‡‡ÞKuuµ¢årcc£¢…Y³f±X,|݇*Ê8*ž4æÄë°ÙlÅþÁxyyñx<|faaá¼yótï1ý=ù;‰YYYR©TùjŸ={öl¼ìää Óéø$•Jݰa‹Åš3gNQQþ_?b#8]]]2™ÌÝÝŸôððhooÇË–––Š^”ËÊ´¶¶zzzâeoooooo¥-'@ш—— ¥¥E1D6ÀÊÊJGË£‚°ë“L&ËÎÎ>uêÔÀK<˜½üÆ Tû ÍÏÏÏÉÉ pvvÖ§&“I¥R¹\.>ùøñã©S§êÕÉÉ©¥¥/×ÖÖ~ñźë«çÄÁ*@CCþ_hgg×ØØˆ|>¿¢¢BÿT# ÏA§Ïy¯´´”J¥vuu)æÜ½{¼<ùà[…ÏW”¥R)ƒÁ`2™çÏŸ±|§ àó#""‚‚‚¸\.‡Ãñññ9zô¨¶^eÅ -!!aΜ9‡ÃáøûûGFF*oˆúýžzN¼ÎŠ++++===ñ1117nlii©««óóóÛ¿„a¨Œp}Ú³gϪU«”çÈårww÷ÇcÚ÷àÞ½{ÍÌÌÁˆH$’€€ |~__ß¶mÛlmm?øà‘H¤£OCCC±±±NNNVVVááá|>_¹G÷å*9ñ:éééÓ§O·³³{ÿý÷ñ`çÎS¦L±µµŠŠÔ½ÓŒsaüqDDÄ«h™XTrõË8÷£bhh¨££###ãÊ•+ÆÊ ¯IN£=‡½sçÎÂ… wíÚõÖ[o+ƒ>hÌ9yòä={öŒg £OË—/ïëë3Vïú£1'ƒÁHMMÏè} 8@žày‚ä HèI.'Ûˆ!€”ž¾ù¦ˆ ©¢Ï‹a¨>_Na2#MLœG®øz çó½Æzòä ‘~_% ¿}÷݃7ßdnÚänì,záìì¼téÒ«‘mü§ÿû¿+99•––¦÷ï'©, /¤º> Ið1ð„¡’’zcÇ!Ry**z84$L˜0!/㠩<ååÝ¥R)™LþóÏ÷‡ˆ0ÈãI •”ÔK¥/îÈ¥RÙO?qŒ‰@ÈãéæMŽòË& …’—w׈yˆ…<žrsÿ`E&“ÿòKc_ß ±ò I<={6PQѤþÄèÆ:£ä!’xú÷¿kÔ¿‹aØÕ«UFÉC8$ñ”›[¥~0É娽{­íí|£D"2xjmíåpžj|°B¥R®_¯ÿH„CO7nÔj{ú%•bä¸ë3ÚçX¤±±ËËë÷OuwvþfmmnjúûÙ»»ìí-”ŽÈöàäôAjê{k×Î3v"!ÃyïÏòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁÖï–••%%%sBhlœéàÀ³´0vQˆý¦ŽÖïçvuuÁ8¦ûâÅÝИbì ££¼¼|Ê­™GøuNNÑyš Ó±]Ÿày‚ä '8@žà`¬ž”‡¬wuuݾ}{ww÷Øc ÆÅÅÍ;×ÒÒrÑ¢EÿøÇ?¤R©J¬¬,Š&®^½ªþoú£­ÙÚÚÚ±mÓ˜ à÷nß¾íææ&“ɾþúëùóçs8kkk•¹\îâÅ‹{zzt4800°xñb&“™’’2cÆŒû÷ïÇÇÇQ©¿ÿ$ùºuëx< ¹¹ùÍ7ßÄË Ã>lðæhkÖÖÖÖà6 @÷X #Ž'”†ÕÄ0L.—⃔jDŸccc—-[&•Js„B¡««kZZšÁmÀ+jVºÇ”$øúD¡PöîÝûÃ?à“7nÜðõõ577wttLNN,Y²ààà€WÐ8p}ffæÑ£G•I“&ÅÅÅeff655Q(”ââb—_ýUc¼Ž"OFF†···½½}rrò¥K—ÜÜܬ¬¬g4ÐHLLÌîÝ»ñ²P(477¯©©Áû*((˜5kƒÁˆ‰‰U³ú¢M adžaUUUÖÖÖ† “]»vµ··gffž={¦òOª>p=ŸÏtww«ttëÖ-&“‰¯þöÛo—””…B|‘J›Ê“€ððp@žž øØßøòê4¶ƒaXYY™­­­D"Á0,33ÓÇÇG.—ãuV­ZÕÐÐPQQááᑘ˜¨»Ymè>ž^¡§áááúúz¡P(“ÉÊÊÊÀÆQ¸^›§òòr|Tn›ÍV^¤Û> ¶X,V)ã±ÕhkV*•:88c¶fÍšäädEEžììlÝÍjC·'â'±±±ÑÝÝ`bbÒÐÐ) }}}5VV¸ÞÚÚÚÁÁ¡¶¶688X¹fmmí‚ ð²———þy,--t:]¥¬-€¶v¨Tê† X,Öœ9sŠŠŠðƒÇÓÓS¬½½}TÍê Á×' ÃNŸ>ýÎ;ïD"QXXX\\\uuõ÷߯±¾Æë·lÙòùçŸËd2EµÁÁÁ”””Õ«Wã“Ê;zŒh  ÐÐÐüüüœœœ€€gç߇˜Â*@CCƒ““Óh›Õ}ú´¬¬lýúõÍÍÍ ‹Åb‘H”xñžP(Ä 6løè£Z[[ÙlöêÕ«¿ûî;ÀÑ£GŸ={ôÓO?566æççûùùM:5::zìiUÐ@ø]è矾mÛ6åùhjjªªªúøã·nÝ:ÚfõBÛ Qÿë“‚iÓ¦mÙ²¥««K±ôÔ©S666Ó¦MûþûïÃÃà †D" °°°À+h¸^(~øá‡³gÏ677÷ññIJJzþü9¦å^Y÷õIñ­±¬-€¶¾öîÝkff&”뤧§OŸ>ÝÎÎîý÷߉Dº›ÕÆ«½ø³ññÇGDD(& |5Þ÷dehh¨££###ãÊ•+ãß;z«/wîÜY¸pá®]»Þzë-ÅÌÉ“'ïÙ³gzGÇ“¾,_¾¼¯¯Oe&ƒÁHMM‡ÞÑñÈ Op€<Áò$ôtçרˆg„ûò•+WŽOárÝŸ˜˜ˆdtp8œÀÀ@mKµzš6mŒ.‰h"‘™XìÀdBö=€ÀÀ@üÍnmü§'n~õÕÏÓ§Û–—jì,DB¶ëSnn µµ·¾¾ÃØYˆ„TžjjÚðÑ=étj^Þ=cÇ!Ryºv­šF£$™Æ‘Zá…<žd2ùÕ«URé‹wë»»*+ÉsƒNOååM|þsÅ$NÍϯ6bb!'«šFû}s$YAAµD"Ó± DÄ“X,½~½V*•+φÿûßcE"’x*)©‰†UfÒh‹$w}$ñÄbÝ›0Au[¤Rù?Ö=Ù$Á“P8üóÏd2¹ú"‰DVTô`ü#<>‹U¿Å¦€w}dðtíšVr9VZZ/ˆÆ3Ï«€ ÏaÛÛùÊ'½¥K“ŽÛü†bŽƒƒÕĉp² îô8ÎΪ?7coo9}ºQ¿¦I4d8ïý@žày‚ä '8@žày‚ä '8@žày‚ä '8@žày‚ä '8@žày‚ä '8@žày‚ä '8@žày‚ä '8@žày‚ä 4|OËå)**êì¬4v ™1c†Ê˜JhY^ètÆ„ Âp4޲¡õ{Ÿ¥¥¥ãóÙgŸiœ®Op€<ÁòÈ Op€<ÁÁXåâÅ‹çÏŸŒŒŒˆˆÀç”””;vL½fZZZdd¤b’ÉdÎ;7::ÚÚÚzŒ†††.\¸PUUÅãñ\\\–-[¶yófåaÇqV¬XapïOŸ>ݺuëX^«Œ±…1yÂ0¬¤¤„Á`”––*<ùûûçååx<Þþýûñ2`òäÉ€o¿ýÖÑÑQ.—?yò$///***##ÃÂÂBcû<oïÞ½:2<þ<::zÊ”){öìqrrjnn>wîÜÝ»wOž<©þ‹|£ê] ‹ððð«½:ÆtÞknnnkk;tèPSS>3`âĉ666666ø¿ªÍKh4ÀÚÚÚÆÆÆÎÎÎ××÷رcŽŽŽ¹¹¹ÚÚ—Ëå@w†‹/Z[[Ÿ:ujñâÅÎÎÎË–-KMMíìì¼yó¦zåQõ®Œ••UTT”>5_còTRR2wîÜ ¸¸¸”””Œvu …²víZÅXÍååå‘‘‘«W¯ ù׿þØ·o`Æ x©Tšššº~ýúõë×§¦¦J¥R@aaáöíÛ•SSÓÍ›7>}útÅŠÕÕÕ›6mâp8º{Wo\yõŸ~ú ?m~úé§Š±µ%ɻヒ· ¾º\.ÏÊÊÚ¶mÛš5köïß___?Úý£Œážð“^PP 00а3¯³³sGGàùóçGõôôÌÌÌŒŽŽNKKëïïÇ÷‹ÅÂ+_½z•Çã9sæäÉ“ÕÕÕçÏŸ …}}}*Ízxx´µµá圜œ#GŽ(†`ר»ÆÆ5®TVV†ÿ^UUÕĉ-Z¤qõ¼¼¼ìì쨨¨K—.mÛ¶mŒÃMîéÿûß³gÏð¡p[ZZš›› nÍÄÄäܹs111¶¶¶ 088¨RçæÍ›`03fÌØ³gOe¥Ö'â E.ñ‹|QQQ¾¾¾¦¦¦ºhk\eõ7ß|S ÿàÁƒ•••ííí¿üòKtt´ò>bïÚ×È¢E‹„Bá… Ö¬Y£˜©¾úÚµkOŸ>}ëÖ­¾¾¾ÊÊÊŒŒ ýw¯:O%%%óçÏW~‘èéééääTZZªí¬…³ÿ~¼À`0æÌ™söìYü caa””dfftèС«W¯þå/ ùñÇ»wïþöÛo###)J`` >`·¹¹ùÙ³gÏŸ?ŸššÚÑÑáèèJ§Óõï]cã===7F£-_¾¼¸¸xùò劙ê«Óét‰DrúôéÞÞ^ww÷øøxüöÕ04üŽoNNΦM›Ðû„Fá³Ï>³··ÏÉÉQ™žïÁòÈ Op€<ÁòÈ Op õyÄ7Æ3§££ÃÞÞ^}¾VO'Ož|•yZ™;w®úL2Œÿôg]Ÿày‚ä '8øè=mX½‘2KIEND®B`‚XQilla-2.3.0/docs/simple-api/classATDateTimeOrDerived__inherit__graph.md50000644000151400015140000000004011653571063023177 0000000000000087e3bdd815b529dec68714e97bda4283XQilla-2.3.0/docs/simple-api/DebugListener_8hpp__dep__incl.png0000644000151400015140000000732511653571064021166 00000000000000‰PNG  IHDR­u³ öVbKGDÿÿÿ ½§“ŠIDATxœíkPWÇŸHÀÐB€p•K´èth§Ö))–*¡X®j«ÈÅJí j§µ´Ø6DC‹Sá.ˆbËÅ[­ jTÅK± D#—Ä\öýpæÝ7oHÂ%Àjs~ŸÎ>{öyþ{Î?gwÝHhAFç™GµÌ öûƒÀ>Àе9øÒ¥Kœ))mX½zuJJÊ´×ʽ½½õõõï¾û®6I0Ús÷î]SSSm2håDjjªöI0Ú°ÿ~-3àû ö}€À>À °0sãÂÂÂÒÓÓ‡††4ôïîîöññѲbww÷ÌæÔžñª^æh=ÈÌÌ,///--ݳgÏÈÈHLLÌðððÜ”F‡‡‡«Û+çRÏ‹ÆùÀÄÄÄÌÌÌÜÜÜËËëÀÖÖÖ¥¥¥sSÁ`0bbbÔí•ËåB¡p.õ¼hPp@£Ñ6lØÐÔÔ„6¥RivvvPPPPPPvv¶T*Eñúúúˆˆ6›ÍápÄb±âÂN¶ ‚8}úô§Ÿ~ÐØØ¨nñW<üêÕ«QQQ~~~µµµðÙgŸÀG}¤A’O}}ý'Ÿ|²aÆ¢¢"u=Q!ÚÚÚª$ãÆ‘‘‘ëׯ/(( UýñÇ›7o :räˆD"Qœ‘‘×5÷‰¶¶¶===¨]VV&rrr~øá———‡â555ééé7oÞüå—_Tæ©©©9yòäÎ; ###=:ai‘H”––Æf³‹ŠŠ6oÞœ‘‘!‰²²² ¢¢B³¤+W®=z4666''çÙ³gz–””ìÝ»×ÕÕU©úµk׸\nrrrnn.¹UVV¦§§óÍ7×®]+,,Ôœ=¨^8wîÜ_|Ád2œœbcc›››Q<>>ÞÖÖÖÝÝ}ûöí.\Pylyyy\\Üo¼Á`0V®\¹uëÖ ËI$‚ ÆÆÆ üýý«««çÏŸ?IIl6ÛØØøý÷ß4‹êzÆÄÄxyy½òÊ+J™CCC W­ZÈI°cÇòLëêê4gx¿0 ø|>‹ÅBíG“»ŒŒŒPÃÖÖ5ìíí'¿K×ÓÓ³xñb2îèè8aé p8œ²²²¼¼¼×^{-""ÂÛÛ[©:Iæææ@§Ó'ìioo¯²ú¢E‹€F£)Ï´¯¯OCpö Àè¢þæ›o¢MƒÁáplll`xxøÉ“'(ÎçóœœàŸþ±´´DA™L¦§§×ßß6---ÿúë/Ô >|8au±X,—ËÓÒÒ¤RiCC×_~YYY©ÔG$¥ùÓÐSÑ+ŠŒÏ t¦È(ꂳÇ]†††žÐÓÓ‹ŠŠŠŠŠ¢ZÈ4111IHH˜Lp¶y¹¯ ˜™û€}€A``°0ì¸`âNÿvfà¹111Qû$Ò×çijzŸNQ-dútvvúúúj“A+ØÙÙ}üñÇÚd œ±1zOÏ‚W_u³³{Fµ–éãääD¾¿Z½_øpøð9§ÖÁaQcãWTk¡]¿?(-½´µõP­…JtÚ·nýÍ瀾¾^yùMªåP‰Nû ²’G§ë€D"+-½.—ëî%Rw} “ÉËÊ®K¥2´Ù×÷¬¹¹“ZI¢»>hl|088Jnêëë:Å£Pµè®**xtúÿN_"‘UUñ$…’(DG}ðü¹ôôéÛR©\1(Š/_n§Jµè¨Οo+étZE…Ž>5è¨**nΛ§|îR©¼¦æÎèèsJ$Q‹.ú`xX\[{W&“ß%‘Èêëïν$ÊÑEÔÕÝ}þ\ªn¯n>5è¢*+Õδ\N\¸Ð&ŽÍ¥ž]|ÏÄç*^Þzëàùúz++Æüù/÷7¹§Šn-ÂÖVùOÐZX,pp˜õÿKú"£‹×Ìx°0ØöûƒÀ>À``Øì û€}€A``°0ì ö}€À>À °0ØöûƒÀ>À``Øì û€}€A``°0ì ö}€Pú;ǧJµÔ××?zÔLµŠ¹Æ××ý¤<¡¥ª(C_Ÿ9oÞ|ªUP@qq19õʧ¸¸8$$„Y˜¹„F£)nâû ö}€À>À °0ØÄ”}@£ÑŸŸŸŸ?>|øðÒ¥K[ZZZ[[½½½ ‚PLK¶‹ŠŠìííår9AUUU,K"‘¨,ª$qýúuÍ:׬YÓÞÞÞÔÔäââB•dp¹\›_ýµ¯¯¯®®ÎÅÅT'ááa¥¡þðÃ…Bayy9ô÷÷£Î~~~¤ª´´4•AÍ“8~®µõÁ… ‚xþü9Š+ù`É’%µëêê<==Q‡––‚ Äbq[[Ûðð°L&»téÊàææVQQ¹wïj«œ€‘‘##£ææf‚ ÂÂÂöíÛ§®(1‘4ë$¢¸¸xñâÅ*e,[¶¬  €L[XX*ƒ“)¤4Ô/^$B&“)¯¢*•A•s§”\Ó{¦©Âb±@___åÞ®®.kkkr“Á` Æ’%KÀÀÀ ½½=::zxxØËË ízøð¡««+j»»»»»»«+mhhXVVæááQ]]}ëÖ-ÍE•èèèpvvÖ|©ÍŸâáÄ_ÏþùçŸË–-#ãê‚ÈxÐð*ý¤˜¢*>Ÿ¯!8y´½Oÿ«gŠ˜››“ŸÂÁÁÁ¦¦&G¾ IJJâñxYYYh‹ÅêêêBíÛ·o:tHCþððð²²²Ó§O¯\¹’uE!âØ±cšA5hoowpp@m©T ÝÝÝhÓÁÁáîÝÿý´W[[›ºà„2•Ï®ŠªQÔ§€†µBÝz¢x]Pj#5Ïž=CÁ]»vmܸ±««ëÎ;ÞÞÞñññŠKëàà F;wîÜÈÈHrr2ðx¼ÔÔÔåË—·¶¶¶¶¶¾ýöÛÑÑÑÄa”V1º=tuu=qâ©p|Q$|n¼xñb`` ­­íÐÐfk×®íèèhnnvuuMOOGÿäðÓO?=}ú4((É8r䈭­ío¿ýÖßßßÐÐàææF£ÑT'‚ ¸\.©JÝðúøøª¾þúk•AÍ“8~®g؉dÕªUÆÆÆ(( ·nÝjjjºhÑ¢˜˜˜‘‘¥ÓþñÇÍÌÌììì²²²ÂÃÙL¦H$JLLd±X #<<|pp Å´JbbbŒï°Æ%þÿ+6vvv‘‘‘½½½AUŠŠŠ™LæîÝ»Åb1A411qvv®ªªB2d2‡Ãqvvf0þþþUUU*ƒ“É|ÌrssÌÍÍ?ÿüó±±1•AÍ“8~®§ìŒÕÕÕ·oß&7ËÊÊ<==Uµ¯¥d Á Qškü~A[ZZZ6mÚÄãñFGG›ššRRR¶oß®2HµRMèâïµÍ,ÉÉÉ£££l6»¯¯ÏÉÉiÛ¶m±±± 2¨% .ŸGepÊhX+0ÿb_0ãÁ>À``Øì Bù¹±¡¡KGQz–ÀèŠÏ4<ýÀ÷öûƒÀ>ÀüËlÛoMgIEND®B`‚XQilla-2.3.0/docs/simple-api/ATGYearOrDerived_8hpp_source.html0000644000151400015140000002336011653571063021073 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATGYearOrDerived.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _ATGYEARORDERIVED_HPP
00021 #define _ATGYEARORDERIVED_HPP
00022 
00023 #include <xercesc/util/XercesDefs.hpp>
00024 #include <xqilla/framework/XQillaExport.hpp>
00025 #include <xqilla/items/DateOrTimeType.hpp>
00026 #include <xqilla/items/Timezone.hpp>
00027 
00028 class DynamicContext;
00029 
00030 class XQILLA_API ATGYearOrDerived : public DateOrTimeType
00031 {
00032 public:
00033   typedef RefCountPointer<const ATGYearOrDerived> Ptr;
00034 
00035   /* Get the name of the primitive type (basic type) of this type
00036    * (ie "decimal" for xs:decimal) */
00037   virtual const XMLCh* getPrimitiveTypeName() const = 0;
00038 
00039   /* Get the namespace URI for this type */
00040   virtual const XMLCh* getTypeURI() const = 0;
00041 
00042   /* Get the name of this type  (ie "integer" for xs:integer) */
00043   virtual const XMLCh* getTypeName() const = 0;
00044 
00045   /* returns the XMLCh* (canonical) representation of this type */
00046   virtual const XMLCh* asString(const DynamicContext* context) const = 0;
00047 
00048   /* returns true if the two objects are equal 
00049    * false otherwise */
00050   virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0;
00051 
00054   virtual int compare(const ATGYearOrDerived::Ptr &other, const DynamicContext *context) const = 0;
00055  
00057   virtual bool hasTimezone() const = 0;
00058 
00060   virtual ATGYearOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const = 0;
00061 
00062   virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0;
00063 };
00064 
00065 #endif //  _ATGYEARORDERIVED_HPP
XQilla-2.3.0/docs/simple-api/inherit_graph_41.map0000644000151400015140000000037111653571064016452 00000000000000 XQilla-2.3.0/docs/simple-api/classLocationInfo__inherit__graph.md50000644000151400015140000000004011653571063022036 00000000000000ed7aca014b47e4f04b6287b6741a4a0dXQilla-2.3.0/docs/simple-api/Scope_8hpp__incl.map0000644000151400015140000000024311653571064016475 00000000000000 XQilla-2.3.0/docs/simple-api/XQQuery_8hpp__dep__incl.png0000644000151400015140000000617511653571064020012 00000000000000‰PNG  IHDR€u ~6bKGDÿÿÿ ½§“ 2IDATxœímLSWÀO¡t¤T¡‚5e„ ¶¬ê^c2Ô†—`&Ð2:ÊøàÌ6ʺÍÅesêöÀHCÀºù†ï.P,èšÀ¤<ÊÇßÀ‚ÃVJ¡¥o÷ùp÷ܧ´Ý¥”¡x~Ÿÿsî9ÿ{½÷´·— †aØ <ë A ƒ@†êJ£ÎÎÎãÇ/u*«Œ£GîØ±cÞf. —Éd;wî\lRÏ ÙÙÙ®´tIαcÇÜÍ癣££ÃÅ–h€ $2HdÈxLÀàà`\\œíì¯P(†‡‡ñ? Cyy¹@ صkWnnnee¥Åb!“×.|>tttI‡p…¼ %'***==½¸¸øõ×_g0ÓÓÓEEE™™™\.033“››$ CCCïÞ½{öìY¥RYPPàããC^ë© W&žÜ½C‡–——***‚ƒƒ÷ïßW]¸p!((¨¨¨è­·Þâp8±±±eee*•ª¥¥eÞÚÕ'P©T±X,•J+++¥R©X,¦Rÿ>ÃÚÚÚ222l_Îþþþû÷ï—Édäµ£££|>Ú–ÍfsYYYJJJJJJYY™ÙlÆk{{{ÓÒÒ„Báwß}‡·ÔëõIIIƒƒƒŽ ÷ôôsæL~~¾D"Ñjµx°¾¾þäÉ“'Nœèîî¾|ù2IÐ#xX†a÷ïß÷ññyðà]…BqlL¼êÉk‘J¥GŽa±X\.7''ç÷ßÇãB¡pëÖ­o¼ñ•JíëëÈd²ÄÄDÇþiiit:ýí·ßLMMáÁÜÜ\‡óÞ{ïµµµ‘=‚‡Èd²[·nuvv* <È`0Ö­[744d×xhhè…^ ¯µØ~{:66¶wï^>ŸÏçóóòòT*Ç7ñññ‰½~ýúää¤R©Œwšmpp0ppÏápˆ®þúë/’ Gð¤€'Ož¿ÿþû</33³°°8¯ããã/\¸`µZñ?¿þúëöööË—/ÇÅÅÍ[ À/&ÄX—.]’Ëår¹¼©©©´´³ÎÎ;oܸÑÑÑñÊ+¯¬_¿ÞiÂNO‹‘‘¼ððáCÜÐ?=‚Ç`VXXÈårßyç@jj*“Éüá‡ðÚÌÌLµZ——wóæÍ‘‘6›}üøq£Ñˆ7&©e0€ÖÖÖ™™™ÚÚZb¸ØØØ3gÎŒççç×××ÛåÃãñ,Ëùóç‰`KKËôô4ùŽ”””ŒŽŽþù矉$!!$è<& µµµ§§'//YQ©T‘HtíÚµëׯètzEEETTÔéÓ§\.OOO?qâym`` @ (--ÍÎÎNJJ"†t:=;;ûÃ?ܸqcNNŽýŽùølß¾}fffûöíD°  àéÓ§ä;ÿñÇ‹Åâ7ß|óàÁƒ$A@qå±”+W®¤¥¥Éår 0›Í/½ô’µ® ‘HÆÆÆŽ=êbûÑÑÑôôt»Ýtœ>Ÿ_]]šš:oK˜Ÿ3©T*Éñ%¯%Çh4ªT*©Tº{÷nw³[&Vçýþþþœœœ]»vmÙ²Åõ­’““] zÝ ZQlÞ¼¹±±q¡[}ôÑG®=Èê<¼$2HdÈ ñnú'Oô°³X xš——·ty¸‡NÇ0#°q—„……íÛ·o©Sq¥’E¡P¸\ìDìár¹aaa®´té^Ðʤ¿ÿQ\Ü¿ííù11lØé¸‰Ï·¨T*Õ·©éì\ÜÇ[`VUÕm6[ÍfKUU—÷žÇÞ* §çÞãÇÝ6>®U*ïAMÇ}¼U@}}¯ŸŸ/^öóó­«û7Ü|ÜÆ+˜ÍÖÚZ¥Éô÷³‹&“¥¶¶Çl¶ÂÍÊ=¼RÀo¿ LNl#““…ÂÉ£W+¯PW§¤RçdN¥Rjk•°òY Þ'À`057ß6›ç<;m6[››o ž|hpyð>2ÙƒÙ1n0˜ÚÛÿXþ|‰÷ ¨©éñõuò@•¯/¥¦Æû®B^&`jÊpíZ¿Ó7‹ÇËnÆi4ÓZíÿ߀~þy-à›oö‘µký™Ì™¹‹—=–ÂdØ߀ <Ü“OË.3^v Z} A ƒ@ € $2HdÈ A ƒ@ € $2HdÈ A ƒ@ € $2HdÈ A ƒ@ € $2Hdæü‡LEEÄTÜàêÕQÀ¾}¡°YB¡(ÏàôçÜW2¾¾‹ev" cο…a6ª««1Ä’Q]]mwÌÑ$2HdÈ A ³T†††ðOŽ…Ev¸ ›S(ÇuÍ–ˆ¥ôÉ'Ÿ¬äWK% $$äÔ©S+¹ÃÂÂ466†††j4@UUÕ¦M›¦§§­VkIIILLÌš5k¶mÛ&—ËñS˜ä”onnÞºu+Ng³ÙNkSSÇó÷÷çr¹/^s¯! å§Ÿ~Љ‰Y¿~ý©S§.^¼øÅ_-^|ñE‹õÁÌÎÎù!“É$‰6lØÀb±D"‘ÓÕQ[[[###™LæÉ“'ÿ©Ïyr ÛÅÀ…[™™™ccc6lèîîÆ0¬¼¼œÅbÕÖÖ>zô¨¥¥_v_>Ã0Ç‚V«¥ÑhYYY###—.]<~üØvN÷ÜsÏáK Ÿ={–J¥êt:bs<ÏhµZ‰DHMMÕjµø:ÆxËÄÄÄ®®®ÈÈÈ/¿üÒvóo¿ývïÞ½<èëë{õÕWÅb±Ý>vïÞ­ÕjkjjæíÓ.¸Ð[  Ñh8Ç#{ùå—Ï;G48þ<¹€ÙÙÙþþ~Ng±X:;;ñƶC¨Õj??¿‚‚FcµZ§¦¦,‹€ÞÞ^ ÃŒF£]yppoÙ××Gìsdd¤íæÑÑÑ*• /·µµmÙ²Ån†ákX’÷i$?z¸„/<~çÎÜÜ\<2<,))Á×VÄ#¡¡¡·oß&ܹs‡¼½^Ÿšš*‰z{{‰UPÍëB¯×[­Ö«W¯ªÕj@œœ¬V«š'±„öÀÀ~4 BBBˆsN£Ñtuu9nîtsÚ'É@®°0V«5++ëðáÃUUU2™¬©© ••%‰ÆÆÆ~ýõW±XLÞÉìì¬Ñh¤Ñhz½þرcÀf1e …’˜˜XSS£ÕjF£ŸŸN_à~#GŽ Ý¼yó³Ï>KOO·­Ú³gϧŸ~zÿþý¾¾¾¤¤¤ü ‘H&'çù^ÁiŸ$¹„ݵ|(..Þ¼y³ÑhÄ0¬®®ŽÍf«Õj£ÑøÕW_EDD0ŒmÛ¶á+~“̆}ÿý÷ëÖ­ +--=pà‹År¼Vnܸ‘F£EGG744Øml¦ Ç2ÞR"‘„‡‡‡„„>|X¯×Ûn®Õjß}÷]&“, §§§Ó§]lðÈ$ XQilla-2.3.0/docs/simple-api/inherit_graph_11.md50000644000151400015140000000004011653571063016347 00000000000000750d32a0abb5e43151a993578d1d94ffXQilla-2.3.0/docs/simple-api/Result_8hpp__incl.md50000644000151400015140000000004011653571063016604 00000000000000aaf8041a23a94c5125d31ad379b3be7cXQilla-2.3.0/docs/simple-api/ATDoubleOrDerived_8hpp__dep__incl.png0000644000151400015140000001303111653571064021664 00000000000000‰PNG  IHDR­Ã3>bKGDÿÿÿ ½§“ÎIDATxœí}TWÚÀŸHŠ(_!ˆ°bT¨=(ºÝÖU´.èa=bW=`ÑWô´×Z]{ê»+n«ž])¢Rt…–A­ö]O[>4jÔâBäËHP0Ñ äkÞ?î»Ó4 h`À<¿Ãwž¹÷™g&?fn&_,Š¢±{F0]2$@ô! ÛxaÁ‚LÕ >;vì˜7oiÿă²²²×^{Çã1Q2¨\¾|yýúõô"ÛduTTÔÛo¿=¨!LpùòeãEœ èB@ô! €ùó…^râĉcÇŽ­_¿~åÊ•$R^^¾{÷nóžG5~~âíí=mÚ´¤¤$77·>mñáÇ«V­ª¨¨xiЄ®®®ãÇ×ÔÔÈd2??¿ÐÐÐwß}×ÁÁÁ¤Ûüùóû]doÊèG†ùóççææúúúö;mïéE•——óx¼ŠŠ ÚƒÙ³g€L&KNN&m;v,¤§§óù|ƒÁðàÁƒÂ„„„ììlíE¼xñ"))ÉÝÝ=11ÑÇǧ±±ñ‹/¾¸víÚ¾}ûFŒ0=ö»H—˜˜˜ÙƒA¢?×…ÆÆÆ–––­[·J$©TJ‚NNNäÈã¿°Ùlpssóððàr¹!!!»wïæóù6Üž8qâ„››Ûþýûõ«_ ‚ÐÐÐÌÌ̶¶¶ .˜wîw‘®®® ¶®}PéåååÓ¦M›9s¦ŸŸ_yyy_‡³X¬%K–TVV’E•J•––öÎ;ïDEE:tH£Ñ<|ø>K· ¬¬låÊ•¿ûÝï8ÐÝÝmœV§Óeff.]ºtéÒ¥™™™:JKKW¯^mü¯?räÈwß}·´´”d‰D+V¬¸}û¶õ"Í“ÿæ›oH‘;vìÈÈÈ C´Zmdd$É`>Ü`0üë_ÿŠ‹‹[´hQrrrmm­Åcuí򵯯ØÈÈÈ/¿ü’>ß~ûm\\ÜÒ¥K<¨Õj-ûú ôÙrQ €¹sçöï¢(Z[[Iûïÿ{{{{ffæÞ½{kjjòòò¬ <þüßþö·={ö\¿~ýĉÆ«N:%“É>¼oß>‘HtìØ1•J%—Ë…B¡I¡PØÒÒBÚùùùÛ¶m›4i’õ"Í“[våÊòÖžšš''§7ÞxÃâð“'O&$$äääÄÅÅeffZÜߪªª£Gnݺ5++K©T’`qqñž={þú׿VUU}õÕWV‚½§ÏÜ»wïñãÇsç΀¹sç655566ö5 N§+//OIIáóùk×®---µÒ?99Y ýá0QðÂ… ›7oæñx‰‰‰ÕÕÕ=%a±Xƒ´BBBFŽi½Îž’› ÿõ¯­T*ÿóŸÿÀ¥K—"""È„Ô|ø™3g6lØêééùæ›oötYY±b…³³óœ9s ³³““’’èƒ@.‹ÁÞÓçybyy¹^¯çwèHEEÅ„ ú”D*•úøø€B¡0 ¤ ¾¾¾íííÆ=MÞ6'HÃÏÏïÉ“'Æ«ÚÚÚ–/_N/Ž=ÚÅÅÅÃÃC"‘Ìœ9Ó¸§D"™\ƒ½§o †ŠŠŠ7.^¼˜DŽ;VQQ±víZ“Z­@QÔ™3gÞzë-pww1b„L&ó÷÷€ÖÖV.—Kºéõz‡ŽŽã±R©”²x{{¯ruu=pày–E®~âĉzŠÐÕÕ•——G?*dk½Èž’[vðàA¡P8yòdú±1þç?ÿùþýû'N$ššš,–añ¨"JOÁÞÓ·ë‚X,V( ,õ_ÂÃÃ¥R©D"±>ðéÓ§r¹¼££ãÖ­[;wî”ÉdÑÑÑÀf³çÏŸÿüC&“‘'uáááä©ÚÅ‹_¼xQTTdœçСC>¼wï^VVVDD„ñªÐÐУG>zô¨¡¡aëÖ­ÅÅŰfÍ…BñþûïWWWK¥Ò«W¯&%%q¹\ãóÙK‹ì)¹EÞxã •JuüøñE‹Y©mÉ’%‡úöÛoåryuuuvv6éùõ×_?þÜúÁLOO§ý–‹ÁÞÓ·óAyyùŒ3Œï®Lš4ÉÇǧ¢¢ÂâT‹&99™4x<^ppð‘#GèSëæÍ›ÓÓÓ7lØÀáp~ó›ßÄÆÆ:::®[·.###77÷üãÕ«Wé<‹-Ú²eKWW×Â… £££=zD¯Z·n]zzúúõëY,ÖܹsÀÙÙùÈ‘#ÇŽËÌÌlmmåóùaaaQQQ§OEš'79QѰÙìyóæ]ºt‰~‹‡ÅáG«Õ:tèÉ“''NܹsçÆà³Ï>›>}:½]‹„‡‡ðÁ]]]aaa±±±ä*`´2Ü",ã 0‹ÅÚµk¾ÿ`ÈÒæÌŸ?ÿäÉ“ô __@ЃáÅèÑ£###{ì+èÁpÂÍÍíý÷ßïM°¯ z€Ð=@è€À½{O^ÞéUÇô¾rNNιsç)…)ÚÛ§»»ßc³»˜.„I~âATTSu0…ZÍnm3jÔ”ñã;™®eP ?~<½È²óïÅùôÓ \ô÷÷üþûL×Â$ö>?((¨€ææ'µµ­L×Â$víÁ-R©8‡ÂÂëL—Ã$víAq±ˆÍv­V_PPc0Øï%Ò~=Ðë §NÕètz²ØÞÞY]ÝÀlI b¿|ÿ½D¡xA/r8§O‹¬‡Yì׃¢"›ýãîkµú’‘V«g°$±S4Ý™37u:ƒqP©ìþ÷¿ë˜*‰YìÔƒòòZµºÛ$Èf³ŠŠìôYƒzPTtÝüóÎ:áüù[/^h)‰YìÑ•ªûâÅ»z½Á|•V«/+»;ø%1Ž=zPZzW£Ñõ´Ö>Ÿ5Ø£ÅÅ=>ÒUQQ«Tª³ž¡€=¾Î$•*Œ/ ³fýÏîÝËÂÃ_£#ãÆ¹:9õóƒ†)öµ·ÀÝ$âå5Æß¿ÏŸ }•°Çëbz€ =@Є€ èB@ô! z€Ð=@è€ ô@z€ =@Є€ èB@ô! z€Ð=@è€ ôˆïÁ(++khf_P[VVÖÖVÍt} !!ÁÆ)[3ì~̃ÃááÄt}ÃæÚ€\¢¢¢l^èÀ¡Ñ<Ò뻘®¢·œ£¢¢zs_êëë)Šª¯¯7.cï޽˗/oii‹Å3fÌØ¶mé£T*³²² ::Z©T>|:::H‡›7ov¡Õj•J¥££c||¼T*ÍÍÍ€Çúé§S§N‹Å·oß~óÍ7·lÙb^ClllXXØýû÷Åbñ믿þñÇ“¿ýíoËËËÏŸ?ïéé©Õj)ŠÊÍÍ:uªÁ`0߻ŋ+•ÊÂÂBR$ɰpẺºÊÊJ¡PH§5 Z?nä¾r/‹Þ3ä< ”Éd¤]ZZ:}útÒY$Q¥ÑhLÚ$‰¹ßgÏžíîî®­­U©Tz½þÊ•+¤ó”)SŠŠŠHþ~ø´kÐh4wîÜ!‹EEEB¡t‹ÅEétºqãÆ]ºt‰¢¨E‹¥¥¥Yܻ˗/S¥×ëÉv3PuòäI“´tÐúq ˜Ÿ˜ÐÔÔÄçóéEWWWÒ3f p8“6M}}½P(4ÉVWW·~ýz•JB"ÍÍÍ“&M"í      “!=Òëõ'N$‹B¡P*•’v`` 888,[¶¬¨¨(88¸¬¬Œœ–Ìñññ“_£7H§µd˜Ÿ˜ÀårÉ¿8EQ …¢²²²ß©ÔjutttjjªH$ÊÈÈ AŸ¦¦&Ò¾yóæ_þò“QÞÞÞô[(îß¿ïëëKÚ´yQQQ§OŸÎÏÏŸ3gŽ@ °¸u‹O\É êêêˆ(=™¡âJ¥"eË–}øá‡ÍÍÍb±8""âóÏ?ïwÎîînFãèè¨V«wíÚqqq}ôÑ;wîܹ“œœÜÜÜlR‡ÃY±bŦM›ïܹ³cÇŽØØX“Ì¡¡¡:î“O>‰‹‹£ƒYYYÏž=³^ÒæÍ›%IMMÍöíÛW­Ze%8ØØüJÓ×ùV«3gŽ‹‹ ‰+•ʵk׺»»{zz&$$<þܸsOmã 1û÷ï÷ðð?~|FFFLL ÇëêêÚ²e‹««kLLŒB¡0¯A.—ÇÅÅyzzòùü÷Þ{O­V›Lb(ŠÚ°aèQ£”J¥ùYl“ YYYþþþ\.7%%…Nk´~Ü^µyâpgûöí+W®ì}s“z ZÇ^æ‰CŸ®®®ÖÖÖììì¼¼<¦k±Ce~0Œ¨ªªúå/ÿöÛo÷~ÔØ±c{d<ô™yóæÉåò¾Žâñx™™™½ 2žô! z€ÐèèP1]ó È󅆆†#GŽ Dæ  àad丑#˜.¤W\¿~}@òÚüÎÔðú|ãˆNãÆ¥ŒeúªãÇæ‹²ôâ½ýðå—ß§¦æÏž=© `#Óµ0‰½Ï ¯°*+%OžØõ,Á®=hk{VUÕ@°JJ,¼ÇÐ~°kJJn88°À` òók˜.‡IìÚƒ‚‚½žŠ¢nß–¶´Øï[×í׃††ö~h¥§Év}i°_NŸ±Ù?Þ3Ðë©‚û½4د5:ž^¤(J"y\[Û‡OýJØ©gl¶Cq±ˆ‘zÇN=(.q8¦7’u:}~~µ}ÞX³G êÔ©kZ­Þ|Õ£GJ‘¨Ù<þÊcTU5´·wZ\Åf;œ>m—{ôàìÙàèÈ6ÿ3¨3gnèõ¦klìñ}ª¯¿.øè£Åôâ¾}ÿ9mòä¿;áÙ3µ‡Çh&Jc {½||ÞËÌ\³dÉt¦ a{¼. æ z€Ð=@è€ ô@z€ =@Є€ èB@ô! z€Ð=@è€ ô@z€ =@Є€ èB@ôùlûsäWg‡cÆÌáp¸LWÑ7lþËÉòýHùùù‘!ìß¿ßæ9ăáõÓ<ÃŽ‚‚›çÄù€ ô@z€ q$ ‹Å²Øø™ a8‹Å’H$ýÞÖ 3¤=pssûÓŸþ4”¾2 i¸\nZZÚPNøÊÀ€gΜñõõU(——7yòäçÏŸ †ôôô   1cÆÌš5«¢¢‚œW­œ‡Ï;âììÌçó->ºgÏž 9rd@@@NNüôÄÎb±²³³ƒ‚‚¼¼¼ÒÒÒrrr&L˜àêêºsçNºgIIÉ”)Sx<Þ¦M›º»»“kµÚÔÔTooo—ššªÕjÍ ¸xñ¢P(twwß³gOO9_º¡A¶·©Éë /í¶zõê5kÖ´µµy{{WUUQuøðaWTTÔÚÚúõ×_ ¨¯¯'ÙÌJ¥ÒÑÑ1>>^*•æææÀãÇ7¡R©œœœ233e2Ù_|Áf³U*=œ¢(ˆ‰‰Q*•YYY­T*> ¤çÂ… ëêê*++…BáÇl<|ï޽˗/oii‹Å3fÌØ¶m›É>ÀâÅ‹•JeaaáKs𭽍¨(›¿¾ÀŒ …B ÓûS(ƒ¡³³S¯×›x ‰(ŠÒh4&íúúzÒS,Óû% ‡Êd2Ò.-->}ºÉ>ÀåË—)ŠÒëõ/Íi´~ôÂfænnn wïÞMJJ"‘†††éÓü„àà`ëëêê"""fΜyüøq:Îú/îîî•••`Þ¼yW¯^1ÂtgÇŒǤM3iÒ$Ò ”J¥Æ«šššø|>ÙÖ‚ Í‹ôññ“íZÌieCƒ3 __ß[·nÑîÞ½k=ƒZ­ŽŽŽNMM‰Dtœ\­V †‚‚¹\¾nݺÈÈH¹\Þ×:É?+ÔÕÕ‘•†ËåÒg …BQYYi>ÜâäÆbN+ðÀ`0ÄÇǧ¤¤äåå•••={âããSSSKJJÚÚÚ¾ùæ›mÛ¶YOÒÝÝ­ÑhÕjõ®]» ³ó'?½Åb±.\XXX¨T*5 ‡Ãqvvîk©›7o–H$555Û·o_µj•ñªeË–}øá‡ÍÍÍb±8""âóÏ?€¬¬¬gÏžõ#§• ¶½Ìôf~pðàÁiÓ¦i4Š¢NŸ>Íçóår¹F£ùä“O&L˜àââ2kÖ¬¯¾ú ¬Î(ŠÚ¿¿‡‡Çøñã322bbbx<žy1'Nttt ,))1FS ó6陕•åïïÏårSRRÔjµñp¥R¹víZwwwOOÏ„„„çÏŸÿœœ&AëðÕ™'¾ã#ÎQ€ÅœýØÐ«3OD†èeÆŽ›˜˜89bCýÀƿۗŸŸ¿bÅ ÛæDLˆŽŽ[¿ Ïz€Ð=@è€ „ù<ÓÏy Òlþ‰1ß?xðàÅWÞÛ"fÍšeÄ6ö¦àü@z€ áÿVÅIYúhj›IEND®B`‚XQilla-2.3.0/docs/simple-api/inherit_graph_50.md50000644000151400015140000000004011653571063016352 00000000000000b141b214baece573a27825915c1e1e9fXQilla-2.3.0/docs/simple-api/classXQException-members.html0000644000151400015140000001311311653571063020374 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

XQException Member List

This is the complete list of members for XQException, including all inherited members.
getCppFile() const XQException [inline]
getCppFunction() const XQException [inline]
getCppLine() const XQException [inline]
getError() const XQException [inline]
getType() const XQException [inline]
getXQueryColumn() const XQException [inline]
getXQueryFile() const XQException [inline]
getXQueryLine() const XQException [inline]
printDebug(const XMLCh *const context) const XQException
setXQueryPosition(const XMLCh *file, unsigned int line, unsigned int column)XQException
setXQueryPosition(const LocationInfo *info)XQException
XQException(const XMLCh *reason, const XMLCh *file, unsigned int line, unsigned int column, const char *cppFile, unsigned int cppLine)XQException
XQException(const XQException &)XQException
XQException(const XMLCh *const type, const XMLCh *const functionName, const XMLCh *const reason, const LocationInfo *info, const char *cppFile, unsigned int cppLine)XQException [protected]
~XQException()XQException [virtual]
XQilla-2.3.0/docs/simple-api/ReferenceCounted_8hpp__incl.png0000644000151400015140000002006411653571064020656 00000000000000‰PNG  IHDRu·jÎöbKGDÿÿÿ ½§“éIDATxœíÝg\×Úð³Kï ½El¨¹šW,X°R ±ÆŠQS4J‘Ž%zQ0"à“ EK" j0R  Ò”&»°”]Ø2¿Í ³ *ìûü?íΙyÎÙ™yØ™Ù3 ÃÉC%;ä€ H(H ¡¤ÉˆÛ½{÷BBBÈŽ ¼ŒŒ ²Cà $‰ÓÐÐpûöíùóç“0oß¾}úô)ÙQ€á€„  ;0`îÞ½Hv`øk ¡ €„‚ H(H ¡à. @ÌÖÖ–ÿZVVvìØ±_ýµ¹¹¹°ú†………eggß¼yS,knnŽŠŠzòäIkk«‰‰‰‡‡Çœ9sÄFmmíÚµk³²² mmm Å„à*222%%%%%åܹsFFF"æŽmnn¾}ûöùóçÅa cË–-rrrÑÑÑ ,ÎÏÏÿø%××ׯ\¹òã—À߀Pêêê£FB5jÇŽNNN­­­êêê„•»ººB:::b ñ]qqqÖÖÖÞÞÞø[–˜˜øé§Ÿ~ä’y<ƒÁøèZàè)))iii%%%ü-‡Ã‰ŽŽvrrrrrŠŽŽæp8;wîD9;; «P[[kkk[PPàææV\\Ü»BÈÖÖööíÛ6lX±bů¿þŠâr¹qqqnnn«V­ ooo¶|„Ðýû÷]\\ÃÞ°aƒþº½½=""båÊ•«W¯ŽŠŠêîîÆCÂÿ*øºw}öŽÇãýúë¯ëÖ­sttܵk׳gχñÑ£GË—/¿xñ"¥wƒƒŒŒ þ§äääúúú3gÎ|ÿý÷qqq§OŸF¥¦¦ «€—_ºtiÿþýcÇŽV!;;ûÔ©SÛ·o?sæL[[[rròýû÷ÃÃÃOœ8Q]] lùííí4ÍØØX° ü/%?üðCcccttôáÇóóóùå}ïFŸ½KIIILLܶmÛ… Ö­[M¸ØÜÜܳgÏúøøÄÄÄð¿R\¹r%<<<,,,77÷çŸQÀÀ‚„Ú²e‹££££££««ë­[·ÜÜÜøºyóæW_}¥££cjjº}ûö¼¼¼m…Uضm›µµµ¼¼¼° «V­RVV^´hBˆÁ`\¿~ý‹/¾0553f̾}û¬¬¬„-¿>A¡PûÂáp233wïÞ­¯¯ojjºiÓ&ÑS§õ£ÏÞ]½zuÇŽsæÌÑÔÔœ9sæ¶mÛëææ¦¨¨hccƒjkkà ===ŒŒ,--·lÙŠ°€×€Pü[Vºººbcc9rêÔ)üOoÞ¼<ÙÂ?5Ä'¬ÿ?ta´´´BÒÒÿÛ2ŒŒŒð×&&&&&&𫍍hhh¼zõŠŸ$BÏŸ?ÿÏþóÃ?0 g``€—666 Üãúv0úì‡Ã¼EÊÔÔ”°¡¦¦&ê•¥ø466æGEXÀÀ‚ú&''·xñâk×®a†¼ÔÔÔNœ8§üÜK&Â*ð©Â*ô88jjj¾yóf̘1¡²²²œœœµk× k>{öìÄÄÄÀÀ@þB2228Žœœœ††•J­¯¯ÇSH]]~ˆGq¹\))©¦¦&Áõ û&!,xÿòòr333¼BUUaCÂÅÖÔÔà £ººÏ Xp ô‹’’Rgg'“ÉÄßΙ3çìÙ³ >>>W®\éQÿã+à.\SYYYYYùÃ?444ˆh¾yóæ¿ÿþ;,,¬¤¤¤¢¢âüùó©©©[¶lAIKKÛÚÚþøãõõõ•••çγ··WVVFݺu«³³“~_Ý_±bETTÔƒh4Z^^^ll,^óúõë¢Y[[ûüù󘘅 ,øúE[[[QQ‘Á`(**"„6oÞ¹uëV …2wîÜíÛ·÷øú*®×ÃÃÅby{{³X¬Y³fñ«6WWWÿé§Ÿ¢¢¢˜L¦±±qhhè¬Y³ð&_}õUddäŽ;ddd,Xàáá!++»yóæÓ§O'$$|ùå—üñ‡°îëééMš4ÉÅÅ寄k—‘‘a³ÙQQQÍÍÍfff~~~øCÇŽ›:ujïSd‚ìíí÷îÝËb±ììì<<<ð>= ûøxø ?í#Ò¥K—ÜÜÜzüH‚ðÄ…¢áÏ€}¼/8 ¤QRRZ¾|y  ººú·ß~ÛŸB$P@BA  $$P@BÁTÊËË‹ì„âñä(…Â%;ðx2aT*‡ì@ˆÑét²CÃ$‰3zôèÕ«W“1 £ÔÖ*UW«µÝFv8ÿ(/WolT01iÓÓk9O(i¦OŸNv`ø¹€ÀP‘””q££ƒååµdãFié!t~’Íæž?ÿàðá::ª«ìí' ß‹oüüRÿü³lÍšY^^KttTÈŽˆØ›7­aa×RRþ²±â˜4É(4ÔeÊ”ÑdGÔ·‡Ë}}SËÊÖ¯Ÿíã³DEEžìˆø@90 KN~vÃáùû¯pq™A¥É“ëDx<,%åQPÐUii©–ººÎý1†&H€¿>x0¥¸¸fãF/¯EjjŠdGô!ZZ:¿ÿþ÷øøìI“Œ‚ƒ§O7!;"Þ$ VÍÍíi©©͘1&4ÔÙÊÊìˆ>VII­¯oj~~¥³ótÿ•ZZÊdG@AbÂåòâⲿÿþw%%Ù€€•Ë–MI§M22JLa0X»wÛmÛ6_FFŠìˆè$ yy¾¾©¥¥ »wÛyz.PT”%;¢ÇdvŸ>yÇÈhTP“­íx²# Àફk L»víïùóÇ;›šj“Ñપj ¿žž^èà`ìdl¬IvD –înÎÉ“·£¢²45•CBœ¬ÈŽH|²³Kýü.¿zÕ¼yóܯ¿vPR’#;"@ƒ"3ó™¿ÿåÚZú®]v_~i'//CvDâ†ÿxøØ±›ŠŠrß}·Š‚¡`¯_7ûù]ÎÈ(qu±ÿRu²#"ÓÛ·mÇŽÝüù眙3MCBœ-- ÈŽ€@†ÅbŸ:uçÔ©LccÍ' ²#*ŠŠªL}üø•³óô€€•ššp«( €OåÖÖÆôñqܰa6ÜÙþËçôînîÞ½‹6m²‘’B³ÝÉ |,|*·Ê\\¦<¸LWW숆®ÎÎ̼ma¡ì4k–Ù‰ |8þTnææº¡¡Îp8ë§ŠŠÆ€€ËwîþsffÏ6 r?^Ÿìˆ€¤€ú…?•›Œ ÕÏoü¬iÀåä”ûú¦––¾Ù°ÁÆÛ{‰ª*£$¬¬ç~~©55ôÝ»ívî\  0§ïðçÌÐhžž¶»wÛËÊ­¢` A郞¦ùú¦fd”ØÙY;ò‰ÙI:þsfôõÕWÁW10€ €ÿéêâDFÞ>u*SWW5(È 4CJ]]KDÄõääGsæX;YXè‘ „JJÊ?|øFk+óë¯6ož+Ó÷ ÙÙ/ýüR+*ׯŸíã³DEn€¤+-}ãë{9;»ÔÕuÆwß-Õׇ‹Cÿ93 ²{÷.^³f• ?È€äâOåfjªâ2{¶9Ùþ¢Ó;Ž¿÷ǤIF!!ÎÓ§BvD`X‚ ‰øS¹uvv{{/éû‡©¢¢j_ßËýUåâ2ÝÏo…¶¶ Ùa€Äyú´îàÁ”¼¼J—é.×ÕU%;"ðáð\šÎbqvï¶Û¶m>ärÐ$ÖqèЕÔÔ¿¦Lê2uª1Ù?gæäÉ;FFNvv–dG†HŸÊíøñߥ¤¨þþ+\\fÀ•ѧ²²ÑßÿÏ™ r21Ñ$;"0ÔAùð©Üž=«‡éû%þœ™ºº–õëgïÛ稬,GvD`è‚0’ñ§r›1ã“ÐP—‰ ÉŽˆÿ93JJò,…¹»0F&þTnÊÊr.‡C€jhh ½–’ò×Ì™¦!!Î&r  WW¯>^¶l*á©||*·êjÚž=öžž a*7Éõøñk_ß”¿ÿ®vvž°RSS¹wºº–úúÖéÓMÄ •[ssû®]0}?¥¬ì­Ÿ_ê½{/¬BBœõôÔæÏ?üêU‡IKS§M3IJú~J&9  ' sñâã55t‡‹—P(”¹sÇÝ»÷ÜÆÆ"$f }Ã0ìÒ¥üððkÝK—NIJÊçñþw’¢ººÎ8qÂÜØ@68Þš5grrÊÏáJKSµ´TW-_>•ÄØÀ°ÓÖÆ »–˜˜Çb±Ë)Š¿ÿŠíÛç“+¸ÞðüyCII}YY#›ÍÃOñxØÖ­ÿ·}ûl²cCCCCAAÿöðöíÛ§OŸ’ pæÌã‚‚7Ÿ|¢ff¦1fŒº©©º¦¦BßÍFmmm+«ýUsIIIc#œë/.««k«¨h©¬l-+£×ÕµmÜ8yîÜÑdÇÀ„ tttøo¥{ט?¾øÂBtws,-§IøóKJJjQ’H$‡Õ×·~ì÷0@º»wïö(‹ÀC”¬¬´„ýÁA¥Ràè?RA  $$P@BA 5ˆ  ¬¬ ÿaï"¼~ýzÓ¦M†­]»VYyèþÐID_ð.<~üXZZ:))‰_ž––&++[\\Œ¿íèèðññ™2eв²ò¿þõ¯ððp‡ƒ>hÜ(Dª§}¢P(eeeb[„1;BˆB¡Œ;¶Ç¤K–,!eËRÁg$ƒ˜ÔÕÕ÷íÛ÷¾­®\¹²jÕªººº‹/Ó_¥á]°¶¶>pàÀž={ZZZB­­­;wî ˜4iB¨­­mÆŒ¹¹¹û÷ïOHHX¸p!—Ëý°qûóÏ?ëß5°ª¨¨ÐÒÒØeFÌŽ€¿®ªªúûï¿ù¢Óé÷ïß')®¡ ¹1hiiEDD¼o«[·n-\¸ÿá¾±±ñ Ä5èð. „|}}µ´´ð£ùþýûõõõ}||ð:AAAÚÚÚ™™™K–,±°°pvvÎËË«¬¬Œ‰‰ù°qÓÖÖÖ{×ÀvŠÇã577ì2#iG@ÙÛÛ ~¾zõê¼yóHŠkhC®÷NW¯^544ħ úå—_,,,:::x<^dd¤¥¥¥ŠŠÊgŸ}–••…‹q"âÚµkÖÖÖŠŠŠúúúüã]SS“’’’‚‚¬Y³BøQ _Î;wŒ³³³ R(”ØØXKKKmm툈ˆ .Œ3FMMÍÏϯÀf³½½½uuuutt¼½½ÙlögŸ}vâÄ „F£R©^^^!.—«¡¡qýúu„PKKËÆµ´´ŒŒŒ¼¼¼X,VHð%cæåå5uêÔ¦¦&Á. „deeãããcccÃÃÃãâââããeddðV þþþRRÿÌŨ¤¤äããsñâÅ·÷ú°ðå§¥¥7NGGgÏž=]]]}öwìØ±üO¤·[·n™››khh„‡‡ó?²«¶Þ!‚p¬Ñ–#8,wïÞ 066ÖÖÖ^¿~=þm°B(==}òäÉòòò¦¦¦.\@q8Âæ#lG@­^½úÒ¥Kü/ÉÉÉ®®®üÁ'®>û":°iÓ¦mÞ¼¯ÙÞÞ®¨¨øøñãþ#l`/^¼hii9jÔ¨#GŽ«‰aXttô„ TUU,XpíÚ5|_½ñÇO|;& ¡¡!++ ëËúõë7lØðæÍ]]ÝÜÜ\ ÃΜ9£££“ššZWWwýúu###„ÐË—/ñå÷~Á`0dee¿øâ‹ššš„„„ÐÛ·o1 ‹½pá‚`Mþë%K–dffÖ××6D¹»»3Œ˜˜„ÐçŸÎ`0Μ9ƒoˆ†>|ØÅÅåõë×EEEÓ¦MÛ¿PPÐÒ¥K1 KKKSUU6m†a=’——ïèèÀ0ÌÃÃÃÎή¼¼¼¨¨hâĉ‡Œ¤°°!Äãñø=-¿ |û÷ïG…„„ðKð£Lccc}øðá¨Q£>`ÜB………mïöaáK[¸paiiiNN޹¹ù¡C‡úÙ_Âí!´lÙ2ƒ‘’’‚8á*„­W„'Ožƒ±‹¹ººÒéô³gÏ"„š›› kž={ÖÐÐð·ß~kllÌÈÈ077Ç?>Ñ[Q{{»àv8x;TVVVCCÃ;ë|ÓÏ@§ÓŒŒ&OžÌ_Ÿ••U||<¿ÂùóçE'€®®®gÏžµ··s¹Ü{÷îñ·†m÷EEE""„ 0 ëîîîñ¯0~üøúúz|S§N}ô葲²rww÷·ß~{àÀ:~ôèQGGG¼­””ÿ¨‘ššjnn. þ?¥óâÅ ~ßù]Àñx¼•+WJII­]»Vpù± ?ÿüSKKëÆMDjïýa öðÄÄDssó~ö—p{@ݽ{Ã0.—‹‡D¸ ÂBÂò‰9ô+ŒhËìȸqãRSSñ¿>}ú”ÿºw+&##sìØ1:ÎãñÚÚÚ¸\®°æ#lGÀ×þå—_~÷Ýw†%$$888ðË £ê³/}Æápôôôîܹƒa˜££cDDD‚1°ø±‘a͉'^¼x‘??ÿü3þñ‰ÞŠz¼ªwøkêêêÛ¶m+))ñôôÄK***¦Nýç¡ä“'O½YYÙÒÒÒÅ‹OŸ>=>>/loog³ÙÂæþ?~¼°†8„~ŽEð5®ªªJ__¿=ÆÁÁ¡²²ÒÚÚZII)??ÿþýû+V¬°¶¶¾ÿ~VVÖÒ¥KB \.×ÌÌ onnn^SS# .??þüùaaaºpñâÅ»wïfff&''§¥¥ñPOOÿ×IPaa¡àÂû9n8|3í±!¢ ‡ŸÒÁ»SSSÓÏþ c``€¢RßÙœz¬BDáA8V½·¼–W¯^ñ{diiéää$¬•††FVVVNNŽ‘‘Ѽyóþøã*•JØ|Dî¡Õ«W'%%aÖ㔋ˆAÑ—>“’’rvvNMMmjjº}û¶‡‡G‚1°øF΀°fyyùĉùM&L˜ ºƒÂv.±íP’ª««###ííí÷îÝ‹— ^UïsG&“ùùçŸ{{{œ>}/üí·ß/^,¬ >î„ ûÿÏ?2Òéôœœ*•êè蘖–VZZ:mÚ´ dddÜ¿ßîuuu¥¤¤***ðæåå円†‚‘àÒÓÓ£££ýõ׬¬¬Þ]¨««Û³gÏÑ£Gçΰ}ûvþuTàà`<Ã#„ÜÝÝùå—ˆˆww÷÷7ÑzX8üß„Pii©A?û+ áE‹«Q8DŽUï-/LJÅÀÀ ªª /),, ÖŠÉdòx¼¤¤$¶yóæåË—Óh4Âæ#oGÀÙØØ´µµegggddðï=È"ô'°Õ«W_¾|ùÒ¥K666øyé>ƒ1°=Ç„5MLL~Ïž=ÝAa;—øv(Áÿûs ˆËåÚÛÛÓh4==½«W¯b¦££såÊ•úúú›7oöy €N§S(”›7oâ÷Â#„ Ö®][[[‹¯¥÷7_þØõnˆ |—özÏž=®®®øí_3gÎܵk†aIIIÊÊÊøÀŒŒ eee+++~O׬YcggWQQQ\\leeåïï/,ª€€ &“)Ø·lÙ²yóæq¹\ ú»»'OžìîîŽÿµµµuܸq¶¶¶¿ýöÛ‹/8€ÒÑÑéêêzßqûÙû6Pa¾4[[Û—/_æåå;Ößß¿Ÿýå_Z8{ölKK‹°'\…°õŠ ÎS@„c…m9=>úÉ“'Ïž={ëÖ­ÂZ1™LyyùäääÆÆÆŸ~úI^^žÉd6a;‚àÚwîÜiiiikkÛŸ¨úì‹èÀ0 ãp8:::ºººqqqý ¦ÿKXóäÉ“FFF¿ÿþ{SSÓ;wÆG¡PúÜŠ0qíPp àäÉ“S¦LéîîÆ0ìòåËúúú4­»»;((h̘1ÊÊÊŸ}ö~æKÄ Ã°ãÇ5jôèѧOŸvww×ÐÐÀÏ9â„ma½êèèY× cÓ¦MšššÛ¶mïnµ´´HKKã—g;::dee}||ø+¢ÑhëÖ­ÓÔÔÔ××ÿæ›o˜L¦°¨˜L¦……Å»/'''xV4//J¥&''ãoÛÛÛ÷îÝ;qâDyyy33³ƒΛ7ÏÍÍí½Æß}ÂÔNøaáK‹‰‰111ÑÒÒÚ½{7“É쳿l6ÛÆÆFYYYÄ cïn¯=V!l½"ˆ3ŽF´å ‹Åòòò200PSSsww§Óéx9áö–˜˜hff&++;~üø´´4ÂæÝÝÝ#lG\;>ý©S§úUŸ}nÇŽ £ÿÁô`{×är¹'Nœ033SSS[¼xqZZš¶¶vŸ[QŸ¨j`.÷©÷Çú£««ëáǃ½1|:„«ø€õŠù"0y8°fͱ­.==½°°ÿ699¿ ý‘j‡˜‹À`ÈÊÊâ÷}>‹Åª¨¨ˆÝºu«ØVZTT´víÚ‚‚‚ÎÎΜœ??¿-[¶ˆmí€à‘`dSUUݾ}»øW!†õÀ—››ëäääéé)ÎgÜúøøtvv®Zµª±±ÑÔÔô‹/¾m~ðv(‚‡ÂÃ3ÁßP1 …å0¬Ý½{·ÇCááH(H ¡ €„‚ H(‚Û@ëêêĽ±X,yyùZlØô@JKKÅ„*àÏHE0b¼ó;’®€„‚ H(H ¡þÔOx%Ÿœ¸IEND®B`‚XQilla-2.3.0/docs/simple-api/classAutoStackFrameReset.html0000644000151400015140000001632411653571063020420 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

AutoStackFrameReset Class Reference

#include <ContextHelpers.hpp>

List of all members.

Public Member Functions

 AutoStackFrameReset (DynamicContext *context, const StackFrame *frame)
 ~AutoStackFrameReset ()
void reset ()

Protected Attributes

DynamicContextcontext_
const StackFrame_oldFrame

Constructor & Destructor Documentation

AutoStackFrameReset::AutoStackFrameReset ( DynamicContext context,
const StackFrame frame 
) [inline]
AutoStackFrameReset::~AutoStackFrameReset ( ) [inline]

Member Function Documentation

void AutoStackFrameReset::reset ( ) [inline]

Member Data Documentation


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classxercesc_1_1DOMDocument__inherit__graph.md50000644000151400015140000000004011653571063023605 00000000000000a116c4514f218ad25f3de42f7e56ef0fXQilla-2.3.0/docs/simple-api/classxercesc_1_1MemoryManager__inherit__graph.png0000644000151400015140000001106411653571064024342 00000000000000‰PNG  IHDR¸ur'¼úbKGDÿÿÿ ½§“éIDATxœíiTWÇ/$„²‰¶€ Ѓ ¥´§‹BªR¬T‘U¶Z¡lõ ÇŠ€ ÇCE­Ê±çDEÄ¥"ˆ ²TéQÖTÁÅJÛ(h‹IHB¶y?Œï4ÍÆˆ¼!¯½¿Owî}ž¹ÿgæ?wfBŒZ‚d*´g[äÿh. Q ¸€Fà‚(½ÑØØ˜••5[R EZZš‡‡¶ù£ ÖÔÔxzzª[DÃhhhˆŽŽ–î!Êedd¨KDCihhéÏ(\@£@pÁ4 Ð(\¼žF¡Ñhááá2ïLNN¦ÑhOž<ù7‹™6¯§Q>Ä6ÙlvGG3m^[£¸¹¹IÐÔÔäââÅL›—6JSSS@@›ÍÔÖÖFDDðù|€H$:vìØ† 6lØpìØ1‘HôäÉÖÖÖÜÞÞ~êÔ©àà`__ßììl‡ƒîM> "**ÊËË+44ôêÕ«±X¬0B¾ ðôôlhhÀüÆÆFé¤ÎK£Ñª««7mÚäëë[XXxõêÕµkמŸŸ™™éëë{þüùˆˆˆýû÷óùüÒÒR…ésçÎMLL”oœœœx<ºàOLL´µµ}øá‡Ø¨2µ­­­G‰‰ÉËËknnÎÏÏ?{ö,‹Å>|xhhèØ±cûöí»sçNQQ‘tQQQ7n܋ŀ7nP({{û)Åp¹Üo¿ýÖÁÁ¡   >>>//oll º~ý:NÍÍÍe³Ù #¯\¹röìÙ-[¶†……ÑétÕ¢R^ö¼OçÖ“ÐÖÖ–˜˜¸~ýzGGG´³ººzÛ¶mæææT*566ööíÛhLLŒ««kmmmdd$•J]¸parrò’%K”e …BAx<‰Dòöö®ªªÒÕÕ½|ù²Âtƒµk×Ê·ÚÚÚ+V¬@üææfggç9sæ`£ÊÔëëë{yyBCCõõõ½½½l6[$ÕÕÕ%$$P(*•ºyóæk×®I×èîîN$;;;555^^^ZZZSŠ!‘Hùùù[·n%“Éæææ€‰‰ tÈ×××ÐÐð“O>°X,…‘/^Œ‹‹sww766vssÛ¼y3žÓ^Û/…‚¿õL‰¡¡¡Ï™3g<ˆu øûûc›hãÍ7ß Ο?í±µµµµµU–edd”““SZZzêÔ©·Þz+44ô½÷ÞS–®OOÏï¿ÿ>**Jf©W¡V__@$eÚ€ÑÑQ‰Dbee…nZ[[ Iר­­½|ùrƒA¥R[[[wìØG ‘Hìëë;pàÇ“¹ÐMMM¥(Œ|úôéÂ… ±” ¨.•: ¦c”gÏž]ºtÉÍÍíÈ‘#©©©h§±±qNN޵µ5€Ãá<þüÅD"€L&  %=xðàæÍ›ááá ³&''%Iff¦H$ª­­MMM-//W–®ggg.—ÛÕÕÕÒÒ"sÚ”©U‰‰‰¶¶v?jÓ§OŸ¢'HKOOϬ¬¬ 8;;›™™á399™™™™™™ùþûï …Âêêjl[TDZXXôööR©T4æñãǪ Ĥ¾,/}ëAdÿþý~~~ééé­­­MMMhÿòåËóòò{zz’’’ÊËË¥³¼¼¼Nœ8ÑÛÛÛÛÛ{øðáÁÁAeYZZZ;wîd0B¡H$êêê*KŸ˜˜¸|ù²|ûEmÚÚ+V¬8tèТE‹æÎ+=¤Z­BˆD"Fûá‡úûû{{{óóóW­Z%³téR±X|æÌôæ…GŒP(‰DD"Q  O\.W¡…‘¾¾¾¹¹¹---,ëîÝ»§OŸFí5UóÒF)// 122Ú¾}û¡C‡Ð7 ¨¨(}}ýèèèíÛ·ÛÙÙÅÆÆJg………¹»»ïܹ3!!Á•Ï"‘H»víÊÍÍ ())ÉÈÈ ‘HÊÒÇÆÆ8 ߯ Ñh?–¹ïL©VÛ¶m355‹‹Û¹s§»»{XX˜Lê.—»bÅ ùt…b ããã³²²>ÿüsKKË•+W&%%)œ]a¤¯¯oPPPNNNhhèùóçãâ⌧]  ´¤?1¼páBppp}}ý+îôß̉'ÒÒÒÔ3]ss³¹¹¹ºÉ`0Ξ=›——÷Š»¥ÑhÅÅÅAAAXÏkû›úýýýÕÕÕ>>>j›´§§ç»ï¾c2™“““÷ïß?yò¤ô«ß 2ÍGˆ<ÝÝÝéééëÖ­Sç§®7näóùiiiccc eÍš5Ÿ}öÙÿb"h”cÙ²e•••jž”@ DEEEEEý¯'‚·. Q ¸€Fà‚ h. QdæŒðf[…Æ¡àõXú[ÿB8œùCþÙ¢YüÃ(666³%EChm5×ÒÒ¢RI³-d6¡R©666Ò=Z𧹤éî~ºrå÷€ÚÚ¤E‹(³-Gƒ€Ï(ÿ ²²HÔ& UUí³­E³€FùAŠŠn‰D‘H\Tt®µÒ@£üMKË£gÏXh{pÕÚúhVåhÐ(S^Þ¦£C@Û::„K—îήå"‘¤¬¬U(£›B¡¸¬¬E$’Ì®*Íåׯÿ1>Ηîç߸Áœ-=š4Ê .]j%ÿq4ˆD­²²ÖÙÒ£i@£Ÿ/üé§‘H,Ý)I~ú©ƒÏΖ*jjîóù"ù~>_X[{_ýz4h¸x±…@Ð’ï'´.^„w Ql6¿®®[á ŽH$©­½ÏáLª_•¦ª«»°·by„Bquu§:õh&ð‚`tt‚ÅúûÅø›oÊß}ç‡õ̙󆉉Á,(Ó$à?×&&Ò>00 lmɳ§H·. Q ¸€Fà‚ h. Q ¸€Fà‚ h. Q ¸€Fà‚ h. Q ¸€Fà‚ h. Q ¸€Fà‚ h. Q ¸€Fà‚ h. Q ¸€Fà‚ h. Q ¸€Fà‚‹)~qéøñãj“¢!””<Z϶u£bt £hi)ø­Ä×Á ϶u£Ú Sÿ4WqqqPPÐÌéh.\VŸQ ¸€Fà‚ h. Q ¸€FàâUr÷î]"‘XRR‚õTTTH¤®®.€–ÆÆÆ>>>½½½8÷¬¥¥õàÁœ‘2¬Y³ÿf3ƒ¼ªQ\]]SSS·nÝ:66ÿꫯ222œÑ€¦¦¦þþþ§OŸ666J$’ððpe»êéé155U=ÝøøxDD„••Õ¼yóÂÂÂFFFÐþGutt`a£££ ãK›6%f¦˜[OZZš©©irr2 %%…B¡$%%a£fff––– ÅÅÅ%//¯©©‰Åb)ÜD"ÁN¼26nÜØ××W__çΑ‘‘øøx´ÕªUÒ«Zee¥‡‡Ç«6]4JÌŒ¨P\\¬:A––"‘¸gÏ]]Ý®®.ét&“‰mö÷÷FFF©ªªrqqÑÓÓ³´´ÌÎÎF„L&,,,°\:ngg7wîÜ={ö "´µµ pëÖ-###42??ßÞÞ^"‘ C>>>ùùùØì 11ÑÜÜÜÌÌ,11Q `YŽŽŽ¦¦¦ÙÙÙ?þøã‚ æÌ™“––†îdtttÓ¦Md2ÙÚÚzÇŽ<Édjjjlll\]]###ÑH6›­§§×ÖÖ†GŒ|áhVAA£££‰‰É¾}ûÐNùH‰DrôèÑE‹Ñh´ªª*ô Ê(-õ—_~Q}úŠ‹‹§vÂÃøŒ‚ HJJ ++K&½½½Íf³X¬øùù½óÎ;‚°X,‰Ù××WPPxöìZ›t®‹Åºxñ"`xxX$1™L¡PˆìÝ»wÙ²ehäo¿ýfiiy÷î]AÆÆÆôõõ‡‡‡±s³oß>ÿ?ÿü³³³óí·ßNIIA³BBBX,Ö‰'AAA,+77 A°°°•+W>|ø°³³ÓÉÉ)33U¸fÍšººº+W®ÉdTLAAÁ’%KPg¨£°p4+ `tt4//½–FæååY[[ÿüóÏCCC×®]³··G˜|ÒR9Žês§>£H$’õëׄððp™t ôÌMNNvwws8±XÜØØˆDy£444 "‹eV¦ñññääd[[[ì"f2™[¶lÙµk‚ «W¯F¤Ö3GGÇþþ~4÷Úµk...è(š.dÚL&S „{÷î¡Yeeeööö¨ÂÎÎNAD"‘¥¥emm-‚ Ÿ~úéÞ½{1Ù*Ä(,­¯¯— 0ÒÉÉéܹsØq(,,D˜|ÒR§QfæõøÜ¹s uuu¥¥¥ÒCØ  èE@"‘þøãooo77·Ó§O+Û­••@[û"‹ŠŠ/^<<<|çÎWWW¬?00°¤¤AÒÒÒ€€é”GQ(ôåkõêÕØ›—‘‘@GGG¦ ‹Åvvv覽½}__Úvtt??¿²²²áááššš°°0镉QQ8Z,&@aäÇœœ°”Å‹«.•:3¨öÀ±¢¶«ÑÑÑîîneûÇÚèŠò믿¢—.]²³³“QX__oeeE§Ó?þøcœb®P€ÂHGGÇÂÂBl®¢¢"T|2RU£ŽAØØØ¥K—FEEvìØaaa‘ :krrR H$—‘‘`³Ùè‡ÃQ–5>>žžž¾{÷n==½ßþ 6J üýýcccß}÷]ssséD??¿]»v=~ü¸³³ÓÛÛ›N§OY—ŽŽNppðÖ­[{{{ïÝ»—––&³f–/_.‰vïÞ!3¤LŒŠÂñ¢-[¶$%%]½zudd¤®®.33ýÂÐ4 |iTûLµ¢œ>}ZWW÷÷ßÇznß¾­­­]ZZŠ(_Q9tèмyólllŽ9bnn. ?úè#CCClj™‹ìúõë õc‘ :.³‹µyóf2™311¡pÿ2íçÏŸGDDÉd …²}ûvì­GºŠ¸¸8===‹%}ÄT‹‘/\™ùH±Xœ““cgggllìíí]QQaff¦°À_Qfì­çßIjjjhh¨Ú¦«ªªjooÇ6KKKÑóWD}³ÿBø|~OOÏÉ“'£££Õ6igggxxx[[—˽yófzzú—_~©ž©áÿR:MnݺµaÆøøxOOOµMš””Äår}}}‡††¨Tjdddll¬z¦†F™&ÏŸ?Wó¤D"1+++++KÍóø5N Q ¸€Fà‚ h.¦~ë©­­E¿½y]imm2þÛcÈ ¦p‚êa>£@pÁ4 Ð(\ü»wñŸ6üIEND®B`‚XQilla-2.3.0/docs/simple-api/AnyAtomicType_8hpp_source.html0000644000151400015140000005561111653571063020565 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

AnyAtomicType.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _ANYATOMICTYPE_HPP
00021 #define _ANYATOMICTYPE_HPP
00022 
00023 #include <xqilla/framework/XQillaExport.hpp>
00024 #include <xqilla/items/Item.hpp>
00025 #include <xercesc/util/XercesDefs.hpp>
00026 
00027 class DynamicContext;
00028 class StaticContext;
00029 
00030 class XQILLA_API AnyAtomicType: public Item
00031 {
00032 
00033 public:
00034   enum AtomicObjectType {
00035     ANY_SIMPLE_TYPE    = 0,
00036     ANY_URI            = 1,
00037     BASE_64_BINARY     = 2,
00038     BOOLEAN            = 3,
00039     DATE               = 4,
00040     DATE_TIME          = 5,
00041     DAY_TIME_DURATION  = 6,
00042     DECIMAL            = 7,
00043     DOUBLE             = 8,
00044     DURATION           = 9,
00045     FLOAT              = 10,
00046     G_DAY              = 11,
00047     G_MONTH            = 12,
00048     G_MONTH_DAY        = 13,
00049     G_YEAR             = 14,
00050     G_YEAR_MONTH       = 15,
00051     HEX_BINARY         = 16,
00052     NOTATION           = 17,
00053     QNAME              = 18,
00054     STRING             = 19,
00055     TIME               = 20,
00056     UNTYPED_ATOMIC     = 21,
00057     YEAR_MONTH_DURATION= 22,
00058     NumAtomicObjectTypes= 23
00059   };
00060 
00061   typedef RefCountPointer<const AnyAtomicType> Ptr;
00062 
00063   /* isAtomicValue from Item */
00064   virtual bool isAtomicValue() const;
00065 
00066   /* isNode from Item */
00067   virtual bool isNode() const;
00068 
00069   virtual bool isFunction() const;
00070 
00071   /* is this type numeric?  Return false by default */
00072   virtual bool isNumericValue() const;
00073 
00074   /* is this type date or time based?  Return false by default */
00075   virtual bool isDateOrTimeTypeValue() const;
00076 
00077   /* Get the namespace uri of the primitive type (basic type) of this type */
00078   virtual const XMLCh* getPrimitiveTypeURI() const;
00079 
00080   /* Get the name of the primitive type (basic type) of this type (ie "decimal" for xs:decimal) */
00081   virtual const XMLCh* getPrimitiveTypeName() const = 0;
00082 
00083   /* Get the namespace URI for this type */
00084   virtual const XMLCh* getTypeURI() const = 0;
00085 
00086   /* Get the name of this type  (ie "integer" for xs:integer) */
00087   virtual const XMLCh* getTypeName() const = 0;
00088 
00089   virtual void generateEvents(EventHandler *events, const DynamicContext *context,
00090                               bool preserveNS = true, bool preserveType = true) const;
00091 
00092   /* If possible, cast this type to the target type  -- no casting table lookup made */
00093   AnyAtomicType::Ptr castAs(AtomicObjectType targetIndex, const DynamicContext* context) const;
00094 
00095   /* If possible, cast this type to the target type  -- no casting table lookup made */
00096   AnyAtomicType::Ptr castAsNoCheck(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType,
00097                                    const DynamicContext* context) const;
00098 
00099   /* If possible, cast this type to the target type  -- not virtual, this is the single entry point for casting */
00100   AnyAtomicType::Ptr castAs(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType,
00101                             const DynamicContext* context) const;
00102 
00103   /* Test if this type can be cast to the target type */
00104   virtual bool castable(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType,
00105                         const DynamicContext* context) const;
00106 
00107   /* returns the XMLCh* (canonical) representation of this type */
00108   virtual const XMLCh* asString(const DynamicContext* context) const = 0;
00109 
00110   /* returns true if the two objects are equal (whatever that means 
00111    * in the context of the datatype), false otherwise */
00112   virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0;
00113 
00114   /* Returns true if this typeName and uri match the given typeName and uri */
00115   virtual bool isOfType(const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const;
00116 
00117   /* Returns true if this typeName and uri match the given typeName and uri,
00118    * or if any of this type's parents match the given typeName and uri */
00119   virtual bool isInstanceOfType(const XMLCh* targetURI, const XMLCh* targetType, const StaticContext* context) const;
00120 
00121   virtual void typeToBuffer(DynamicContext *context, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &buffer) const;
00122   
00135   bool castIsSupported(AtomicObjectType targetIndex, const DynamicContext* context) const;
00136 
00137   virtual AtomicObjectType getPrimitiveTypeIndex() const = 0;
00138  
00139   static const XMLCh fgDT_ANYATOMICTYPE[];
00140 
00141 protected:
00142   /* internal castAs method.  This one is virtual and does the real work */
00143   virtual AnyAtomicType::Ptr castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI,
00144                                             const XMLCh* targetType, const DynamicContext* context) const;
00145 
00146 private:
00147 
00148   //friend class CastTable;
00149   //template <class TYPE> friend class DatatypeFactoryTemplate;
00150 
00151   // class that implements the Casting Table
00152   class CastTable {
00153     public: 
00154         CastTable();
00155         bool getCell(AtomicObjectType source, 
00156                      AtomicObjectType target) const;
00157     private:
00158         bool staticCastTable[NumAtomicObjectTypes][NumAtomicObjectTypes];
00159   };
00160 
00161 
00162   // reproduction of the XPath2 casting table: http://www.w3.org/TR/xquery-operators/#casting
00163   static const CastTable staticCastTable;  
00164 };
00165 
00166 #endif
XQilla-2.3.0/docs/simple-api/ATGMonthDayOrDerived_8hpp__dep__incl.map0000644000151400015140000000041611653571064022300 00000000000000 XQilla-2.3.0/docs/simple-api/ModuleResolver_8hpp__dep__incl.png0000644000151400015140000000673111653571064021401 00000000000000‰PNG  IHDR˜u=z¿*bKGDÿÿÿ ½§“ ŽIDATxœíiPSW‡OÈæ°0N Ô´R¬ã8Ö*¤,e˜Ò-0*´#(`+e¦E«í´—ê´D–²H •FÙ;Hj¡ Ë[p,-‚Ò ²‰„@BÖ÷Ã}ßÛ˜Ä@RBàô<Ÿnþ9Ëó„s“KB*• –?æ€XHH@"!‰„’úÆÆÆÏ>ûÌ\QqôèQ___üæ"GGGëêêüüü;Â@öíÛ§^!i7JKK[¬<#ihhШ s$$ ‘€DB H$$#’ÍfGEEi\m?tè›ÍšÏCCCl6ÛлðÙq^{íµôõõÍ?¼q©Œ`þ«± èxù1FFFúûûÝÝݱ›SSS]]] —j8ƒÁÌÌÌ”””|òÉ'ß}÷@X´K#·Ö 6¨¿”innöññY˜DóÀÞÞÞÁÁÁÁÁÉd&$$ NNN.ÚìK#Eúùù544à»kcc£úå"‘H”‘‘ñæ›o†‡‡gggK¥R¥RùÃ?DGG‡„„8p §§<¹•éÜÖäryNNNXXXXXXNNŽ\.×NB$I$’•••ž.ÍÍͱ±±AAA»víª­­}ZH|Ì£GfeeaÇ2™,44´¥¥EçàXìÎÎÎÈÈÈÛ·okdkooß½{whhè÷ßÿŒMMMÑÑÑaaa™™™2™LgÑp!ÆŠ|á…Äbq?`zzº³³sË–-ø½_}õÕ£GrrrNœ8ÑÖÖVZZZVVÆårãâ⊋‹£££srræ3ËåË—‡‡‡sss¿üòËÎÎÎóçÏcu‰D"‹ÅbñÄÄDAAA`` ™L~Z‰D’žžþÖ[oa¤“'OJ$!ñyýýý±‡i[[•Jݸq£ž</^LMM]»v­FþÖÖÖ¼¼¼ƒæçç …B¬XQQqüøñ/¾ø¢µµõÂ… zŠa¤H ‹mÛ¶a»ë/¿ü²nÝ:[[[ì.¹\~ãÆÄÄDƒÁb±öìÙsýúõªªª„„„­[·:::nÚ´)..n>³\»v-))‰N§³X¬øøø[·naõ½{÷†„„„„„¼ýöÛµµµ‘‘‘zºÈd2•J%‹)Jpppuu5•JÕäå—_ …üñ€Çã‰D=yâââÖ¯_¿bÅ ü‘‘‘–––¯¼ò `jj +îß¿ŸÉdzyyíÝ»ŸTgÑ Œ|²ðóó;uêTll¬Æ¾*”J¥³³3vÓÅÅåÑ£Gf`±X£é|ÇÉÈÈÈŽ;ð›øþYRRâââ˜-,,þ¼‡‡Ç®]»6mÚ¤3$Þ‹J¥nÙ²¥±±ñÙgŸmnnÎËËÓŸç™gžÑ¹DŽŽŽgaL&ï…Oª³hÆ‹\·nÝÌÌÌíÛ·ÛÛÛ“““ñ:F³°°^½z5àáÇNNNd2¹¿¿ßÍÍ k300€·W(D"q||\{ ;;»³gÏbÎD"ŸÏ×h@¥RƒƒƒkjjT*¶^Ú]fgg•Jezzº\.çñxGŽ©¨¨ÐR}dÿÌÌLwww|•Ÿ–‡DÒ½Œ:ŸHbã`¦ŸV4ã/`»ë™3g¼¼¼ìííñ:‰Db³Ù_ýõðððýû÷ Þxãìì즦&>ŸëÖ­ÂÂB€µµ5 ¶¶vff¦¼¼\{Š­[·æå厎޻wïàÁƒÚm¬¬¬fffÄbñÓº„”””Ÿ~úizzZ&“‘H$*•ª3¤ú°7n‰DEEE!!!óÏsõêÕééiýëÆáp†††~ÿý÷üüüÀÀ@=Eƒ0þ7Àf³+++ÃÂÂ4êIII'!!L&¿úê«»wï&‘H2™,;;{bbÂÍÍíØ±cï½÷ž]lllVVVIIÉûï¿óæMqbcc9ξ}û¶mÛâããµ3¬\¹ÒÒÒR(ZZZêìB¡P>œ››;66æì윖–F¡Pt†TßÓH$’¯¯/ÇS?kh®±‘œ>}ÚÇÇßruœœ,‘HüýýñI5ŠóY| ê'§‹/FFFÖ××1bN†††¢¢¢4–WgqNØl6—ˈˆÀ+èZ+$ ‘‹‡••Uhhè|ŠF€D.ööö~øá|ŠF€DB H$$ ‘€DBü"ÇÇÅbs§09:.Ñ}ôÑG‹ŸÃtˆDL€µõ ¹ƒ˜–'Dººº†‡‡›+Љèè ‹bî ‹ÅruuU¯àþèyOÏCÿSï —ÃÜqLäçȪª_I$ ‰X]ý«¹³˜˜EªTªÒÒV¹\)—+JK[àÞ{`ÙÞ>06ö¿·<Ž ;:ÌÇ´À,²¢¢“L&bÇd2ñÊ•ÿ˜7IV¤\®,/ïÉØM™LQ^Þ.—+Í›Êt@+òçŸ{''%ê•ÉIISÓ]så15Њ¼r¥ƒDzâ§#‘ååæÊcjà)‘Èjjºär…zQ.WÖÔtI$Ƽ!é§Èººß$‘Hd<Þo‹Ÿg€SdYY;‘¨ãÍÁD"¡¬ ÎÝB‘SS’7zt>A•Ë•<Þo"Ñìâ§25мví6þªC™LqíZ÷bæY ¼h.L …¿ðøøãrÀçŸoÇ+¶¶+h4}o_Žü£ ,Mh4+uOVVÀêÕÆ|2fáÖú$HH@"!‰„$HH@"!‰„$HH@"!‰„$HH@"!‰„$HH@"!‰„$HH@"!‰„$HH@"!‰„$HH0øËß|󉢘ˆK—†áá.æbóüŠMƒE.»ï¤&í Å2ûfC½³µr¹\ÕòA.,—?6w àr¹FHAçHH@"!‰„$HH@"!Áœ"ûúú°W¥ÚÿpÀEèN úúúŒžkÁ1§H{{ûC‡-å—æéä䔑‘±”\F,¼Èªª*@(--õð𘞞V*•ÇËËËÆÆfóæÍõõõØÖ¤g+«©©Y¿~½¥¥%ƒÁЩ§ººÚÛÛ{ÅŠ,«¸¸<¹7„ÂÂB//¯•+Wfdd¯Y³ÆÎÎîØ±cxËÊÊÊçž{ŽN§ðÁ³³OüW™L–’’²jÕ*:ž’’"“éøÚµµµîîî4íøñãOsΉ C/ y\¢{çwÞ}÷Ý‘‘‘U«Vµ¶¶ªTªÜÜ\:^^^þðáëW¯2™LÀÝ»w±ÚB¡B¡ÄÄÄ –””ÆÆÆÔ§‰DT*5''gxx¸  €D"‰D"¼;–sçÎB¡0??! sssãããXË   ÞÞÞ––ww÷ôôtõî'NœØ±cÇ_ýÕÝÝýÒK/¥¦¦j¯Ã믿. ËÊÊæS£¨õ°KtóÔñwƒ;ÌC¤@ `2™ÞÞÞxè矾¨¨oðí·ßê9;;ÛÓÓ#‰ Ecc#ÖX} >ŸO&“OŸ>-”JåÔÔ”B¡ÐÙÙÙ©R©¤R©ÆñÝ»w±–ÝÝÝXc.—ëîî®ÞÝÓÓsxx;¾~ýºö:444¨T*…B1ç˜Eý«gœH“œ#íííãââîܹ³ÿ~¬rïÞ=¼···þ(Joooppð† ŠŠŠð:áÿÐh´úúú––&“éëë{óæM ÍŸÅÆÆ@&“5ŽqÖ®]‹xzz>ñ“ ›+00ðþýûÚ!óêSÏD …ID>xð€Ãá$''c—®®.¼Á;wô ‹#""RRR:;;³²²ð:þ‹ÅJ¥òÒ¥K|>?66644”ÏçšûuôööbVpœœœð=@ ´´´hw×y‚×9¦ž‰Š…©T*cbbKKKëêꪫ«111)))•••###?þøcjjªþAfgg¥R)…B‹Åiii€©©)õ!((¨¬¬L(J¥R2™liiihÔ¤¤¤¾¾¾¶¶¶#GŽDEE©ßµ}ûöÇÿùçŸÝÝÝÁÁÁçÎäççONÎñwMcê™hÁ0t/s#333_|ñE©TªR©®\¹Â`0ø|¾T*ýôÓO׬Ycmm½yóæ .½çH•JuæÌWW׬¬¬;wÒét‰¸\®››…Bñôô¬¬¬ÔèÔN«ÚÇXËüüüÕ«W;99%&&ŠÅbõîB¡pÏž=4ÍÑÑ1..nzzúŸŒ©QÔ¿ÂKèÉΜ¨/™Y0Ec1Ñz²ƒX|þ¥"mmmãããaLSL¤C…Ár{Ïβm­ÿjHH@"!‰„$Œù’3÷øñã‚Àèè0æ«JáÿìÇ2Å`/†v@,MÐ9HH@"!‰„„ÿ¯g7TÓ¨»EIEND®B`‚XQilla-2.3.0/docs/simple-api/EventSerializer_8hpp__dep__incl.map0000644000151400015140000000023111653571064021523 00000000000000 XQilla-2.3.0/docs/simple-api/classRefCountPointer__inherit__graph.map0000644000151400015140000000025311653571064022637 00000000000000 XQilla-2.3.0/docs/simple-api/classStaticContext-members.html0000644000151400015140000006626711653571063021003 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

StaticContext Member List

This is the complete list of members for StaticContext, including all inherited members.
addCollation(Collation *collation)=0StaticContext [pure virtual]
addCustomFunction(FuncFactory *func)=0StaticContext [pure virtual]
addExternalFunction(const ExternalFunction *func)=0StaticContext [pure virtual]
addSchemaLocation(const XMLCh *uri, VectorOfStrings *locations, const LocationInfo *location=0)=0StaticContext [pure virtual]
addTemplate(XQUserFunction *tp)=0StaticContext [pure virtual]
allocateTempVarName(const XMLCh *prefix=0)=0StaticContext [pure virtual]
CASE_INSENSITIVE enum valueStaticContext
CASE_SENSITIVE enum valueStaticContext
CONSTRUCTION_MODE_PRESERVE enum valueStaticContext
CONSTRUCTION_MODE_STRIP enum valueStaticContext
ConstructionMode enum nameStaticContext
createDebugQueryContext(const Item::Ptr &contextItem, size_t contextPosition, size_t contextSize, const VariableStore *variables, const xercesc::DOMXPathNSResolver *nsResolver, const XMLCh *defaultElementNS, xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager) const =0StaticContext [pure virtual]
createDynamicContext(xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager) const =0StaticContext [pure virtual]
createModuleContext(xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager) const =0StaticContext [pure virtual]
FLWOR_ORDER_EMPTY_GREATEST enum valueStaticContext
FLWOR_ORDER_EMPTY_LEAST enum valueStaticContext
FLWOROrderingMode enum nameStaticContext
FTCaseOption enum nameStaticContext
getBaseURI() const =0StaticContext [pure virtual]
getCollation(const XMLCh *const URI, const LocationInfo *location=0) const =0StaticContext [pure virtual]
getConfiguration() const =0StaticContext [pure virtual]
getConstructionMode() const =0StaticContext [pure virtual]
getContextItemType() const =0StaticContext [pure virtual]
getDefaultCollation(const LocationInfo *location=0) const =0StaticContext [pure virtual]
getDefaultElementAndTypeNS() const =0StaticContext [pure virtual]
getDefaultFLWOROrderingMode() const =0StaticContext [pure virtual]
getDefaultFuncNS() const =0StaticContext [pure virtual]
getDocumentCache() const =0StaticContext [pure virtual]
getDoLintWarnings() const =0StaticContext [pure virtual]
getExternalFunctionResolver() const =0StaticContext [pure virtual]
getFTCase()=0StaticContext [pure virtual]
getInheritNamespaces() const =0StaticContext [pure virtual]
getItemFactory() const =0StaticContext [pure virtual]
getLanguage() const =0StaticContext [pure virtual]
getMemoryManager() const =0StaticContext [pure virtual]
getMessageListener() const =0StaticContext [pure virtual]
getModule() const =0StaticContext [pure virtual]
getModuleResolver() const =0StaticContext [pure virtual]
getNodeSetOrdering() const =0StaticContext [pure virtual]
getNSResolver() const =0StaticContext [pure virtual]
getPrefixBoundToUri(const XMLCh *uri) const =0StaticContext [pure virtual]
getPreserveBoundarySpace() const =0StaticContext [pure virtual]
getPreserveNamespaces() const =0StaticContext [pure virtual]
getProjection() const =0StaticContext [pure virtual]
getRevalidationMode() const =0StaticContext [pure virtual]
getTemplateRules() const =0StaticContext [pure virtual]
getUriBoundToPrefix(const XMLCh *prefix, const LocationInfo *location=0) const =0StaticContext [pure virtual]
getVariableTypeStore()=0StaticContext [pure virtual]
getXMLEntityResolver() const =0StaticContext [pure virtual]
getXPath1CompatibilityMode() const =0StaticContext [pure virtual]
isTypeOrDerivedFromType(const XMLCh *const uri, const XMLCh *const typeName, const XMLCh *const uriToCheck, const XMLCh *const typeNameToCheck) const =0StaticContext [pure virtual]
lookUpExternalFunction(const XMLCh *uri, const XMLCh *name, size_t numArgs) const =0StaticContext [pure virtual]
lookUpFunction(const XMLCh *uri, const XMLCh *name, const VectorOfASTNodes &v, const LocationInfo *location=0) const =0StaticContext [pure virtual]
lookUpNamedTemplate(const XMLCh *uri, const XMLCh *name) const =0StaticContext [pure virtual]
LOWERCASE enum valueStaticContext
NodeSetOrdering enum nameStaticContext
NONE enum valueStaticContext
operator delete(void *p)xercesc::XMemory
operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
operator delete(void *p, void *ptr)xercesc::XMemory
operator new(size_t size)xercesc::XMemory
operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
operator new(size_t size, void *ptr)xercesc::XMemory
ORDERING_ORDERED enum valueStaticContext
ORDERING_UNORDERED enum valueStaticContext
removeCustomFunction(FuncFactory *func)=0StaticContext [pure virtual]
resolveModuleURI(const XMLCh *uri) const =0StaticContext [pure virtual]
setBaseURI(const XMLCh *newURI)=0StaticContext [pure virtual]
setConstructionMode(ConstructionMode newMode)=0StaticContext [pure virtual]
setContextItemType(const StaticType &st)=0StaticContext [pure virtual]
setDefaultCollation(const XMLCh *const URI)=0StaticContext [pure virtual]
setDefaultElementAndTypeNS(const XMLCh *newNS)=0StaticContext [pure virtual]
setDefaultFLWOROrderingMode(FLWOROrderingMode newMode)=0StaticContext [pure virtual]
setDefaultFuncNS(const XMLCh *newNS)=0StaticContext [pure virtual]
setDocumentCache(DocumentCache *docCache)=0StaticContext [pure virtual]
setDoLintWarnings(bool enabled)=0StaticContext [pure virtual]
setExternalFunctionResolver(ExternalFunctionResolver *resolver)=0StaticContext [pure virtual]
setFTCase(FTCaseOption option)=0StaticContext [pure virtual]
setInheritNamespaces(bool value)=0StaticContext [pure virtual]
setItemFactory(ItemFactory *factory)=0StaticContext [pure virtual]
setMemoryManager(XPath2MemoryManager *memMgr)=0StaticContext [pure virtual]
setMessageListener(MessageListener *listener)=0StaticContext [pure virtual]
setModule(XQQuery *module)=0StaticContext [pure virtual]
setModuleResolver(ModuleResolver *resolver)=0StaticContext [pure virtual]
setNamespaceBinding(const XMLCh *prefix, const XMLCh *uri)=0StaticContext [pure virtual]
setNodeSetOrdering(NodeSetOrdering newOrder)=0StaticContext [pure virtual]
setNSResolver(const xercesc::DOMXPathNSResolver *resolver)=0StaticContext [pure virtual]
setPreserveBoundarySpace(bool value)=0StaticContext [pure virtual]
setPreserveNamespaces(bool value)=0StaticContext [pure virtual]
setProjection(bool enabled)=0StaticContext [pure virtual]
setRevalidationMode(DocumentCache::ValidationMode mode)=0StaticContext [pure virtual]
setXMLEntityResolver(xercesc::XMLEntityResolver *const handler)=0StaticContext [pure virtual]
setXPath1CompatibilityMode(bool newMode)=0StaticContext [pure virtual]
UPPERCASE enum valueStaticContext
XMemory()xercesc::XMemory [inline, protected]
~StaticContext()StaticContext [inline, virtual]
XQilla-2.3.0/docs/simple-api/ATGDayOrDerived_8hpp__incl.png0000644000151400015140000002763311653571064020324 00000000000000‰PNG  IHDRmuRýžöbKGDÿÿÿ ½§“ IDATxœíÝw\SWßð“ÉF6²·Šƒ½¬ŠZÔ—:k•*ÚVÛ"´–~*C\¸p‚öy¬µX­¢B­"Z¯¶PE+ 3ìi$dÝ÷Û'o$à ä÷ý+\rïýÝ{~9÷œ†a€>"*;0$A äu$Ô‘@defΜ©ìÀ  ܼy³²£¨(¨#àæÍ›cÇŽ533Sv ` *; €ê‚:00/^|ØÎÎÏ¡C‡,,,ø|~MMMFFFXXØñãÇuuuûUwwwDD„¡¡áêÕ«---+**~ùå—üüüýû÷‰½oÚȽG]]Ý¥K—ö)0Pqp_ 8ÕÕÕ±±±eee4 _¨¡¡addddd„wìý™LNMM0aÂÚµk]\\\\\¾ùæ›)S¦üú믂 ™˜˜xzzîØ±ÃÂÂ"==½¯Q:uÊÀÀàÀ~~~ÖÖÖS¦LINNnhh¸víšè›åÞãˆ#ÂÂÂú¨2¨#Šsûömwwwooo[[ÛÛ·o¿óýOž|øðË/¿ ^´h^zþðÃûöíÃËd2ƒƒƒKKKB7nÜøä“O„»555?þøã7nÔÖÖNŸ>ýÉ“'!!!Ïž=“¾G.—›œœ¼páÂ… &''s¹\áÕ¯_¿Žßß´iÓáÇñU8μyóð-ˆ®Îçóûí·+VÌž={Íš5/_¾{àùùù¡¡¡óæÍKKKCá;}ðàÁŠ+.\øÃ?p8± ßyþ@:¨# ‚ßÔ B¾s¤ ‡Ã©««³··Çd2™L&“J¥ZZZJZÅÚÚº®®!ÔÝÝïââ’ššqôèÑŽŽŽ©S§>xð€Çã!„þbFÆãÿùŸñ»w/27¡ìˆ¤©®n‹;÷î«ÐЀ͛çëéi*;"ÄãñËÊš}Ì¥¥$ÁÑÑÌÏÏÁ××ÁßßÑÖÖXÙ1”êH€D==ÜÂÂj¼’ítts³17×WvŒb\½Z¸iÓ.—¿k×¢yó<”ެ._.ذ!ƒL&îØñáܹîÊç-ÍÍÕEE5¹¹¹¹å==\ss}|H¥¯¯ƒ§§Ò‡œ”êHÀ[ª«[=*/*¢ååU¼xQËåò…Ì©T§£¨††7ë֥߸Q¼|ùÄ玡­ìˆúæÍ›î;¯¤¦>œ9sÜž=YX(tJ»Œ„gê<|øº¶öŸ™:~~Ž~~>>ö††0Suu$êN´ÓQCƒìæfƒ—nnÖ*~S‡aXZZNBÂe==ͽ{¿ÿ¾«²#’_vvYL̹ÖÖÎèèV­šB$ªÜ°Na‚™:yyÏŸÓø| fê > Ž@Ñhí–áŽ/_Öq8<[[cünµŸŸÃرVªÜé(ª¢¢9:úlnnExøôµkg ƒé ,gÿþ?’“³¼¼ì’’B\\Ì•‘L„gêäæV¼yóÖL__MMвc $¨#P l6· `Èw:ŠâñøÉÉYû÷ÿakkœ”´ÄÇÇAÙ ¤ââÚèè³/^Ô)ñÁ@r“>S' ÀÉÆÆHÙ1ú êH†­ææÎœœ×ø G¼ÓÑÚÚ0 À ïttuµês#ž=£EEýöêUClìªðtñÁ x0Qbâoo{eG$'±3uðNJ77k˜©Àu$ÇÃ{ú´ ¿[›[ÞØH§RÉîîC¾ÓQ›ÍML¼þóÏw&L°NJ 3ÆBÙ ®ªªÖ¸¸ô{÷JTçÁ@ý!˜©“—WñðaYK fê0DA ÀÐÖÒÂxø° ¿[]\\ÛÝÍ65Õ pŸÎ3 :Eeg—EGŸmnîܲeÁ²e*> e]¾\°~ýy …”ðáœ9ªõ` þ€™: ]PG0Ĉv:R($[ünµŸŸÃ°étÅ`ôlßž™––8jïÞÅjø(ì–Æöí™çÏç«òƒúCt¦Ž¾¾¦»;ÌÔ@EA ÀÐÚÊÈÎ~«ÓÑÄDwâDg|lÙøñÖÚÚC~†ò;]¿þlýú ‡»{÷GCèéâƒáöí—qqét:sH<HnbgêŒk…§=ÌÔ@@ €*RçNGQ­­Œ 2._.øè#ŸÍ›ç›š*ÿ›»•ŽÉd8ðgrr–··}bâ’¡ò` þhjê,,¬Æ§éÕÀLTÔ‘¨Š¶¶®Ç+ñ“/^Ôuuõë¾÷žzu:ŠJM}¸sçêž=‹gÌ«ìpT þ` ¿ÿ®_³&(2r¦úRïåË:I3u|} †ØW0DA €ÒðùØóç4ünu^^EUU«:w:Šª­m_·.ýοW®œó¾þО¤ðßz`=^õ[IIƒº=¨?Œž§O«ð?óGÊét¦ðL??G³ €Ô‘HC§3=*ît1BÛÏïŸÂÑÃÃVOF#§¶¶®õëÏ_¾\0w®{BÂ"33xºø àrùGŽd%%]wt4ML ñòRÇÉMúL÷Þs¶²‚™:@­A À[D;ù|ÌÅÅ¿[íæfãìlF"ÁнþJOÏKH¸L"÷î]ûøqexøô¨¨ÿïQ®›7_¬_¾³ 4(`¦PPG‚áìÕ«ü޹¹ååM<t:*‡Ã;xðÆ¡C·F¶Ø¿?dÜ8+eGz0¯¯Cbâ''x0Р2SÇÏÏaâDgèCÔ‘`Xa±8‚öº°°º©©SK‹Š‘Œ››‡‡­©)L V¨‚‚ꨨ³ååMÑÑÁ«WO‡§‹«šÇ+££ÏVUµ~ýõûð` €™:`˜: y½:¹\þ¨Q#Ã’œœÌ vQŠînöîÝWOžüËßß111ÄÞÞDÙñ8ÞÏ?ßIJºîèh–”âéi«ìˆÔ“É~öŒ†©|ð ´­­Kx¦ŽŸŸÃˆ0S¨:¨#ÁÐ#ÜéXTTÓØH×Ô¤àŸæÝÜlÜÝmáI„Jwÿ~Ilì¹¶¶®Í›çÃð»!¡²²%66=;»tÙ²€-[ÀWÀ+ÌÔCÔ‘`hÀ[XètT}Ýññ32ßµë#ss}eGd%x0®®Æž=‹§O£ìˆÔWg'«  ú¿3u^Óé,33=ww[|x·»»-ÌÔ*êH ¢zz¸……Õxá(ÚéèæfŠ ºr¥pÓ¦ >Û¹sѼyÊÈ£©©3! ¤B„gêäåUTUµR($WWK˜©TÔ‘@…ÔÔ´å伯oë¼xQËåòíìŒñ¹Õ~~cÇZA§£Êjhx³n]úÅË—Oܸq.ŒëênÜ(^¿þ|W{ãÆ¹02A¥46¾)*¢ÁL " ŽÊÄfs ÞêtÔÐ »¹ÙàÃÌÝܬÍÍG(;Fð†¥¥å$$\Ö××Ü»w Ü 6:;Yûö]KIùËÏÏ!11ÄÑÑTÙÞDgêèêj¸ºÂL 8PGE£ÑÚ>,þ—/ë8ž‘¿¿#Þéèêj OQAÿþ÷ŸžžvS§Žîµ¼¼¼9:úl^^ExøôµkgiiQ•<ùù11ç¤<hûöÌùó==<`–·ò‰©#xbîèÑ#• † ŽƒN´Ó‘J%»»C§ãqçÎß¡¡?9âþýõÚÚÿTŠ<?99kÿþ?ì쌓’B¼½í•#Døƒ¯;;›%%…—ŒWΟÐÌLÿæÍhcc¥§B3urs+òó+™L6ÌÔƒêH0(š›;sr^çæV:­­ œ ÓqÈ©©i Jìêê!‘Ÿ}6yûö…¡¢¢š¨¨³¥¥11ÁaaÓàjªƒÊÊ–˜˜³•úé丸Ù::ïý÷÷VV¶Çôôø‚(ÕÄåò_¿þg¦NnnEuõ[3uÞ{Ï>¹A BˆÉdkhPú3:›Ãá=}Z…ßOÉÍ-‡NÇáÉdﯨhåry!=ûÕÝ»¯ŽÉrw·IJúüÁ@[¶ü®¯¯µgÏGyyÞäñø!‰¸jÕ”mÛþ¥ìÁ» ÏÔ)(¨æpx8S§­­ËÈHg£*êH€þú«$&&ýäÉÏGê[MÐÒÂxø° ¿[]\\ÛÝÍ65Õ pòõups³ž0ÁFË u§®^-‹H„‰DÐÕÕd±8QQÁááð%‡jª¦¦-..ýÞ½ Ãøü·þƒüç?Ë/öUV`@ÝÝìçÏ{ÏÔñô´ÃŸ°æï隷¯%ûÖø|ÌËkË矆‡O‡ÛjêHµÖÒÂØ¼ùBfæS„û÷/Yº4@úûE;)’‡‡-~·ÚÏÏ:‡“””7fôj"H$Ò²eþ{÷.VVT@ðxü÷ßß[YÙÊáð„44H×®­3ÆBi‘þþƇÒÒF"±o3u^½j˜>}/€LÿóŸe0lZ@©¦ðIII×y<>—Ë'“‰~èóï/}gk+#;û­NG݉ñNÇñã­/Àp’›[¾hÑø-Ë^H$ÂÕ«ß¹¹Ù(>* "Nœ¸¿yóÅ^‘!2™4r¤þÍ›1}êĪIx¦N^^‹Å17×Ç{ |}<Pª >[¶,ùáÃ2GLg¤@|ü‚ððiŠ ¨U«ŽÿñÇ3)ÿ:ˆD† s¿úê}ðׯ›?®|ô¨üñãʲ²&"‘0zôHÇK— [[;ß~;@À||ìXêäd¦œˆÁ`‚:R¤§çmÛvéÍ›n±7+"˜›ëŽòò²óõu=z$<ÂC=%%]ÿ÷¿ÿí‰$ $‘ÃáikSýü¦OwýòË©J‰(Ñ›7Ý;v\~ð ´ºº !D"OÂH$™3“'»(<@ hÝùù•ùùÙÙeùùU‰¿‰A  ÈÈbe†4¨#ÕÖ¾n]zVÖßÉœB!¯Yó~LÌŠ ¨–+W W¯>)ȉ„a|>37× ëïïèççhgg¬Ü *ÀçùæåUܼùòéÓJ6›G¡x< ¿ÑA$´´4nÞŒ†lQüñ|Õª_¤Ô$ÑÁÁäûï—Âü›áä­²‚Éd¶··+10àø|,#£ð?ÿÉêéáIÿÌ@ ||l~ú)¤OÛ×ÒÒ244ì_Œ¨½½Édös# ÿh´Ž¥KO2™l"‘ÀçcFF:¾¾¶žžÖžžÖŽŽÆj5¼ÉÐÐPK«_3EÔ*«™LÎóçõOŸÒ?®yþ¼®§‡‹§ÐèÑf))Ë¡ÿIXZZöguYòùÇ罹æ½=…¿7@  ?öŠˆ˜¢¥EéOH@‰„[È·êȦ¦¦/^()*0ðººØ'NååÕ º‘É„<_lI©©Iúå—¹}ªLMMÇ×Ï8‹‹‹›››û¹ÐO==¼-[î1™Ü±cMÆŒ13ÆØÜ\}ÅŽ;Ö̬_c¹Ô6«y<¬²òÍ«W­/^´”–¶y{[„…y(;(€¦M›ÖŸÕeÉç­[ï—”´‰.'$!Äåbø]o‰èädá¥ÎÌ&ÜBŠùzÍ~fP)sæÌB57wÖÖ¶×Ö¶×ÕuÔÔ´ÕÔ´UUµÕÕµÓéÿ|¾$‘ˆb±x––cdÿ†’âââŠs@êQÐ--Œ+WüMLàëÑÐ;wd;Õ¡ÊÊ ø*g%¨"éùÌáðªªþ—D"`ÂGWCCmKK#++Ckk# ‹––ÖÖ†¦¦ú0èêÕBÂß¶Z05Õ35Õóð°íµœÅâÔÔ´áõemm;ÖÞÞÞ¥”ÒA ƒ½½‰²CŠÐÖÆX¶ÌäÈ––VV†––0¤A@©Ö45)..æ..æÊÀfn>bçÎEÊŽ(<ØÈêH ¨#€< ŽòòuduuõÊ•+ßù¶²²2ü)Ê‚«?}ú”L&§§§ –gffR©ÔgÏž F̽„ØÛÛòÉ'ÒÓ…aØòåËuue]K ÊÊÊ"Ò¡AôZ÷ºèbá™Ð×s«xRŽEÆdîêêŠuww×ÕÕõóóÛ½{7—ËEr7‚8u¤ï¤V‰ÝŸ¬–åý'hŠûڠɨ««+&&ÆÝÝ]OOÏ××w×®]xÞ ûí·ßÄæäùóçûs$m¶   ÇôÈgÌçAÊ(Pd: ù:ò÷ßÿ׿þ%öWååå&&ÿŸ/éýbKöí çÏŸ?þ\u¶Ó‹àDÉrÆðLèë¹U<)Ê’ÌÑÑÑS¦Lár¹‚µ †½½}rr²è.Þy6/µDƒQäÞ³²²û¹ÕÉjÑuƒ`_ƒÑ IÊÛ£GʽM9 ê ¼|ÿìj›Ï Ø×`ÔÆ¹W ÙçþÈK—.YYYá_Ã}æÌ™Q£Fuuu!„8NLLŒ¹¹¹™™YLL ‡ÃÁ;Ÿoݺekk{çÎ-[¶ØÚÚššš~òÉ'‚Ϧ¢k!„._¾ìææ¦©©éèèxúôi„—Ë»zKK‹ŽŽŽ–––pG·àu@@BhäÈ‘HBŸ¹`u„•JMII9~üøîÝ»Oœ8‘’’B¡P$9€‡&Š@ „‡‡_½zUÒv„KÆmþùçŸÎÎΆ††»wïœÌÌÌÑ£G›™™EFFöôôˆ](kZ >±‰Ççó:äêꪧ§7qâĬ¬,¼3_ʇ+W®xzzjkk[XXìÙ³_(ÈÑœÁ¯ò_ý%vEpüøqWWWSSÓ={öœ>}ÚÁÁaĈ›7oÆß zù&Nœøý÷ß#„ÚÚÚˆDbtt4BˆÇãâ½££ã³Ï>311±¶¶ŽŽŽf±X½"Á·ŒaXtt´‡‡GKK ’9™SSSãããI¤ÿ8°ŽŽNlllZZšç­OKR‚I?^$”í½ õÄVLV‹m‘„6ê)-¶ÁN¿^z5h¢¡Ê•ؼ‰‰IMMû×Ñ‹ðÙ“ãoVÒiŒŒüüóÏñ× C[[ûéÓ§’òM–ÍB>ãT9ŸqýÏ(Íÿ¢P(‚M‰6†øöÓÒÒ\]]ŒŒöíÛ'e›½(.„kL?µ|òÉ'Ÿ~úiCCƒ¹¹ù£Gð…{÷î]´hQuuuQQ‘——W\\^¿ðÁ·oßÞºuë¸qãŠŠŠž={æïï-i-ƒ¡¡¡‘œœ\__ÿË/¿Édƒ‘˜˜(võãÇŸ>}{û³‚ØÏ7b Vˆ‹‹C%$$/ÔCÃÄ}nÈËË300¾wü·’¶) !4wî\:ž‘‘ÿ…à[˜5kVIIINN޳³óÖ­[Å.”ž îM¼#GŽ˜™™]¸p¡®®îêÕ«ÖÖÖøÉìu­/èt:•J]µjFKMME555aR ¿ÊõõõbWD-]º”N§;v !´dÉ:~äÈüxðÀÜÜ\8[­_¯m ÿ(Ç߬Øí`v÷î]ccc‡ƒaXjjê¸qãø|¾¤|“²YA`ƒ”ÏŠì~ùŒ¤ŒâóùK–, Çm ñíôÑGíííGEµ¶¶Jߦ ªAJ'L¤…”§Žloo·¶¶vssÞߘ1cêëëñ×7nÜðððÀã+**Â0lôèÑ.\ÀûâÅ ÁkѵÚÚÚ(JRRR{{;ŸÏïììäñx’V_´hQ[[&o)XÇçó,X@"‘–/_.|¼ƒzhØ»êHI{Ç—HÚ¦0„Ð;w0 ÃÇ•–– ÇaØÙ³gÅ.ĤRp)šxãÆKII¼áäÉ“Ò[¨žžž—/_2 w÷î]Á™—’Hø ‘´"BèÉ“'†±Ùì^¯ñ7ˆ^¾üü|]]]6›½víÚ 6P(”öööÄÄÄÙ³gãë’H$ÁÙ¸páB¯Kƒ¿ŽE½zõJpì²$3þÿXPz dgg›˜˜ÈqÞ8’.–Ø“ñxÅæÃà%¶"ëHEfu¯“)šœØ»RZRƒ#œ~R4±¡¾3*)Ÿy+¸¾8éÿõûú7+i³\.wäÈ‘·nÝÂ0löìÙ{öìÁ$ä¹ôÍ ¤|Vd9üò7H•œœÀb±0 ?¾}üòɸMATƒ”NXÿïk#„ Š‹‹#"" +++-,,ð©L3gά¨¨À—3!TUU…ߟB¹ºº.\¸PÒZ†††YYY999ÖÖÖS§N½ÿ>‘H»:ƒÁàp8†††½ÂÃ$ü{ëEtõ´´´;wîܾ}ûüùó™™™Š94±±•––:99Iß;NÆmZZZ"„zýJö˜1ch4š”…*B4ñÊËË=<<opss“¾*•ZRRìíí’’‚/””H8ü*‹]§§§‡Âo ¿Æ‰^>OOO¼¼¼{÷îÍŸ?ßÓÓóÞ½{YYYsæÌA566òx<ÁÕwvv\<\^^Þ´iÓvíÚ%éÄ&³ÁÈ‘#E'™o\Æó†‚#Ø—h+DLÆã•d$¶R²'©m‘’ÒbœwîKРII$)QIÉ[oooüµ,Ù"Ð׿YIÛ!‘H~øá… ZZZnÞ¼*ø•h¾É²YÈg4òY”|UTT´{÷îóçÏkhh ©?ž}ÍR…¥“ƒ4xé÷µüTí¾6B¥îkÐO*u_ ½ZHèò€:ÈêH ¨#€< ŽòóüȺº:Ådž"‹¥©©9P›‚Äà d5P’¾¸¯ ŸXbêÈ’’Ådž¨ª#;;;eüÆj† Èj0œ@>±ðõD@0>ÈêH ¨#€< Žòø?WÃÕï]îŒIEND®B`‚XQilla-2.3.0/docs/simple-api/ATBooleanOrDerived_8hpp.html0000644000151400015140000000727611653571064020074 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATBooleanOrDerived.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <xqilla/items/AnyAtomicType.hpp>
#include <xqilla/framework/XQillaExport.hpp>
Include dependency graph for ATBooleanOrDerived.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  BoolResult
class  ATBooleanOrDerived
XQilla-2.3.0/docs/simple-api/DateOrTimeType_8hpp_source.html0000644000151400015140000001362011653571063020670 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

DateOrTimeType.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _DATEORTIMETYPE_HPP
00021 #define _DATEORTIMETYPE_HPP
00022 
00023 #include <xercesc/util/XMLString.hpp>
00024 #include <xqilla/items/AnyAtomicType.hpp>
00025 
00026 #include <xqilla/framework/XQillaExport.hpp>
00027 
00028 class ATDecimalOrDerived;
00029 class ATDurationOrDerived;
00030 
00031 class XQILLA_API DateOrTimeType : public AnyAtomicType
00032 {
00033 public:
00034   typedef RefCountPointer<const DateOrTimeType> Ptr;
00035 
00036   /* is this type date or time based?  Return true by default */
00037   virtual bool isDateOrTimeTypeValue() const;
00038 
00042   virtual bool hasTimezone() const = 0;
00043 
00044 };
00045 
00046 #endif //  _ATDATETIMEORDERIVED_HPP
XQilla-2.3.0/docs/simple-api/classXQQuery__inherit__graph.md50000644000151400015140000000004011653571063021030 0000000000000049d6d0fda0c7848892c0a3bc808eb509XQilla-2.3.0/docs/simple-api/Item_8hpp__dep__incl.map0000644000151400015140000000056711653571064017322 00000000000000 XQilla-2.3.0/docs/simple-api/inherit_graph_36.md50000644000151400015140000000004011653571063016356 00000000000000b6308a5e45863e94a06477e163542011XQilla-2.3.0/docs/simple-api/XQilla_8hpp__incl.md50000644000151400015140000000004011653571063016520 0000000000000037997db0ec8c5bc6b021ee8cd08fef53XQilla-2.3.0/docs/simple-api/URIResolver_8hpp__dep__incl.png0000644000151400015140000000622611653571064020612 00000000000000‰PNG  IHDR…uï*µrbKGDÿÿÿ ½§“ KIDATxœí{L[ÕÀOá¶u Byt2Š¸ŠŒýL5‹âc y؉²pï ¶Ä¹DídË@§cü¦ÄQY+eC‡Cy öp†•!3­¿a“‘Îm-…±ÑìR¸ôýûãþ¼¿®/h ôÎç¯Û/ç~Ï·çCϹ¹}šÉdhðñtˆû@>àù€ ä.0óðT)‹“Õ«Wïß¿ŸzxŸ‘‘‰D²fÍšù.j±Ò××Çb±Ì#˜u£ÂÂÂùªg±S\\lAë\ p|ÀòÈ\¸â#))I¡PØ‹$™ñÊ+¯¼óÎ;ƒƒƒ.´t…B‘””4+©€­ç;wظÞu@˜œœ¬©©)..þæ›oh4š;- s2_s8œíÛ·Ëåò{÷î¹Ùr‘0ç뇯¯/†aþþþζÔëõB¡0#####C(êõzÀåË—sssÓÒÒ6lØÐÚÚJ¶T«Õ%%%¯¿þzffæÑ£GµZ-•sß¾}ä±N§KOOïêê²™œœâ¤RivvöŸþiQÛo¿ý¶qãÆôôôo¿ýü3þòË/›7oÎÈÈ(//×ét6ƒÎלø˜šš"‚ ˆ»wïVUU¥¦¦Òétg[644(•J‘HôÙgŸI¥ÒãÇOMM½ñÆß}÷ÝæÍ›KKK§¦¦_|ñÅèè¨P(IKK³·BøûûONN1mZ‹–/½ôReeåÈȈL&Û½{wss3Fãóù—.]š˜˜Ðét†1™L Ã’’’Ž9¢T*¯_¿^UUEMV$«V­R«ÕÕÕÕäŒd/¹E1çΛ˜˜p\°@ P(W¯^‹Å©©©‚3Ç•×Ç–-[ȹ~dd$$$$99yÓ¦Mö‡……ùùùá8îççç8­EËÜÜ\@ðöÛoÓh´Õ«Wççç3Œ={öˆD¢Û·o/[¶¬°°Á`víÚ%¶oßN§Ó_~ùå7šO†%&&¶µµ%&&RAëäwîÜ1/æðáÃñññŽ/ SRRÞÿý©©©äädªS‹ ã§l Í|ö¯««ËÎÎnoow6ËbC¡PlÚ´Éb lS\\VWWGEÐý+¸@>\Áßß?==}&AgA>\!((è½÷Þ›IÐY¸@>àù€ ä.¸X >®^½ëéf÷K>øàƒù¯ÃMFGãY¬«6åéBœC&“YÜm»ÏGdddffæü–4 64°dÉŠÈÈqO×â\.÷¹çž3ÐÀ÷Õþýïóee­QQ!û<]‹»,„õ£¾¾pãÆÝþþ!O×â.^ïã?nÊå*îÛØø»§Ëq¯÷ÑÜ,Å0_€Ng¨¯ï1½{úõnƒ±¡¡G¯7GGÇýUæÙ’ÜÄ»}tvªT“ÔC:Ý÷Ô)©ëqïöÑÔ$Űÿ?ÎÐÒ"Õé ,ÉM¼Ø‡V«?}ú?z½Ñ<ˆãšK—.\èÓjõöþê½WYÞ꣹Ùöö~Ÿþ‘â­÷år•ùd•pàãצ¤ü‹Š<üp “9'ŸÞŸS¼¯b‡e ˆŠrúó˰á­óÕBù€ ä.¸@>àù€ ä.¸@>àù€ ä.¸@>àù€ ä.¸@>àù€ ä.¸@>àù€ ä.¸@>àù€ ä.¸@>àù€ ä.¸°ñ}™L&‘Hæ¿7‘H$Ãÿzº 'àr¹?F&+¾ÿþ{O”çt:ÛLJéé*œ#33Ózðí~_ÍK¿Wè-deeÙŒ£õ.¸@>àù€ ä.¸˜sƒƒƒäfqÖn&œ‡Ói4Úlm9=CæÜGPPЇ~sB¨˜s¡¡¡%%%0'„ }œ>}:""B¥Rjkkcbb&&&ŒF£@ X¹re@@@BBB{{;ùzw0?œ={ö©§žòóó ·9ÊgΜ‰‹‹{à¸\î‰'ÀýF;vìØÊ•+ÃÂÂJJJNœ8±|ùòÀÀÀýû÷S-[ZZV¬XÁf³ß}÷]æ¾ß÷Óét|>éÒ¥l6›ÏçÛÜŽ¹µµ5::šÅbnݺ%ÈíZÉHDDÄ•+W¨}}Óü¨$AYYY|>_*•VTTPqꟅ £ÑX__?66–›››žžNmÄù¤V«5™L§N Ójµ}ôÑòåË|ðÁ„„„“'O‡ë‡Édúüóσƒƒ###+**Ö¯_Ïf³­‹yì±Ç FlllKK‹ÅéÀlɱ>&[ŠÅ⨨¨ÐÐÐ;wa~:ŽãÛ¶mc±X!!!yyyîä´:ÀÙ_ϧÅü™{„¹(ÀfN:šýõ1,d=ôP~~þ<äœÅŽlüþ.¹+½u1‹ïŸ›ïDO²_ÞòÈ\ p|À…ÝÏ'~õÕWóYÇbC&“q¹\ë¸]³~厰À¦oÝÿc¡‚Ö¸@>àù€ ä.þ ÂcœËu„ÆtIEND®B`‚XQilla-2.3.0/docs/simple-api/ATDateOrDerived_8hpp_source.html0000644000151400015140000003710611653571063020744 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATDateOrDerived.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _ATDATEORDERIVED_HPP
00021 #define _ATDATEORDERIVED_HPP
00022 
00023 #include <xercesc/util/XMLString.hpp>
00024 #include <xqilla/items/DateOrTimeType.hpp>
00025 
00026 #include <xqilla/framework/XQillaExport.hpp>
00027 #include <xqilla/items/ATDecimalOrDerived.hpp>
00028 #include <xqilla/items/ATDurationOrDerived.hpp>
00029 #include <xqilla/items/Timezone.hpp>
00030 
00031 class XQILLA_API ATDateOrDerived : public DateOrTimeType
00032 {
00033 public:
00034   typedef RefCountPointer<const ATDateOrDerived> Ptr;
00035 
00036   /* Get the name of the primitive type (basic type) of this type
00037    * (ie "decimal" for xs:decimal) */
00038   virtual const XMLCh* getPrimitiveTypeName() const = 0;
00039 
00040   /* Get the namespace URI for this type */
00041   virtual const XMLCh* getTypeURI() const = 0;
00042 
00043   /* Get the name of this type  (ie "integer" for xs:integer) */
00044   virtual const XMLCh* getTypeName() const = 0;
00045 
00046   /* returns the XMLCh* (lexical) representation of this type */
00047   virtual const XMLCh* asString(const DynamicContext* context) const = 0;
00048 
00049   /* returns true if the two objects represent the same date,
00050    * false otherwise */
00051   virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0;
00052 
00055   virtual int compare(const ATDateOrDerived::Ptr &other, const DynamicContext *context) const = 0;
00056  
00060   virtual ATDecimalOrDerived::Ptr getYears(const DynamicContext *context) const = 0;
00061 
00065   virtual ATDecimalOrDerived::Ptr getMonths(const DynamicContext *context) const = 0;
00066 
00070   virtual ATDecimalOrDerived::Ptr getDays(const DynamicContext *context) const = 0;
00071 
00075   virtual const Timezone::Ptr &getTimezone() const = 0;
00076 
00080   virtual bool hasTimezone() const = 0;
00081 
00086   virtual ATDateOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const = 0;
00087 
00091   virtual ATDateOrDerived::Ptr addTimezone(const ATDurationOrDerived::Ptr &timezone,
00092                                            const DynamicContext* context) const = 0;
00093 
00097   virtual ATDateOrDerived::Ptr addYearMonthDuration(const ATDurationOrDerived::Ptr &yearMonth,
00098                                                     const DynamicContext* context) const = 0;
00099 
00103   virtual ATDateOrDerived::Ptr addDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime,  const DynamicContext* context) const = 0;
00104   
00108   virtual ATDateOrDerived::Ptr subtractYearMonthDuration(const ATDurationOrDerived::Ptr &yearMonth,
00109                                                          const DynamicContext* context) const = 0;
00110 
00114   virtual ATDateOrDerived::Ptr subtractDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime,
00115                                                        const DynamicContext* context) const = 0;
00120   virtual ATDurationOrDerived::Ptr subtractDate(const ATDateOrDerived::Ptr &date,  const DynamicContext* context) const = 0;
00121 
00122   virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0;
00123 };
00124 
00125 #endif //  _ATDATEORDERIVED_HPP
XQilla-2.3.0/docs/simple-api/ATUntypedAtomic_8hpp__incl.map0000644000151400015140000000003511653571064020435 00000000000000 XQilla-2.3.0/docs/simple-api/functions_0x72.html0000644000151400015140000002646211653571063016312 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- r -

XQilla-2.3.0/docs/simple-api/MessageListener_8hpp__incl.map0000644000151400015140000000003511653571064020515 00000000000000 XQilla-2.3.0/docs/simple-api/inherit_graph_46.png0000644000151400015140000000411711653571064016470 00000000000000‰PNG  IHDR½($l—bKGDÿÿÿ ½§“IDATxœí›[L[ÇWí…I*R(åÒD FE0F}Àò I4 BA.‰$*$PL‰Áˆb|QˆE0D@”K| 5/€mj¹ŠQl¡-)´2sv2ߨ–ZæóóxüöïiÍš½f­½æß½§7I’€Á¬“ ÿt˜%X7&`Ý`˜€uƒa‡~ T*ËÊÊþ©R0¿3R©ôÒ¥KÔáwº™››ëîî–Éd¿¼*ÌoÍ‹/<==éŽý ¦¦¦_UæßAbb¢?ß`˜€uƒaÖ † X7&`Ý`˜ðêfppÃá477Sž¶¶6§V«€ÅbmÛ¶ÍæÛܘ˜‹5::Š ƒ‹†@ 8vìØÄÄŒŽŽ²X,Wª"IR.—{xxü—³£—dS§ÃÊ© ]/Õþ@Ý„‡‡_¼x177waaOŸ>­P(vïÞLNN¾yó†¯×ëŸ?þÃËö÷÷ÏÎÎÎÌÌ(•J‚ ärùCÆÇÇ…B!²gff‰D¢W¯^!çµk×âãã?|ø R©öîÝ[XX¨Õj &&æÙ³g¥¥¥;wîT©TjµúÀùùùkE™L&77·;wîÌÎÎÞ»wÃá˜L¦ŠŠ ‡á 555ö6¢°°ÊÊÊèNxûö­¯¯ïàà ŠrwwŸŸŸ­V‹ Ã&jhhÈh4 †ÑÑѸ¸¸}ûö‘$‰æH’¤Á`àñx™™™?~lhh€ÏŸ?Sgé#)))‡S©T»ví*--¥·Ëd2@rr²Á`¸{÷.$&& †êêj˜ŸŸwX'åq˜—2vØù—Éd2™ì»\ôu£×ëBCCKKK)gHHÈìì,²»ººÂÂÂP¡*•Š$ÉàààÖÖVtvxx˜²í£t:—˽qã†^¯'Âh4®®®®î‚ Nœ8Áf³årùwÐjµgΜ)**"I²¡¡!::š¤5}-ÝPp¹ÜÈÈH›;´²²222b2™VWW•J%ºÈZº±X,l6[£Ñ ÃÖÖÖ   z»PÆ4ØÆ^«Nuã°ÃΛùstC’äåË—ÙlöÜÜåáóùôæ T¨ÅbAgÕjµýuì£H’ìëëKHHظqã¡C‡ž>}ê$Ü õõõ@©Tòùü'OžügÂZ­¶··7((ˆ ˆØØØêêjÒÝØ;ÉïïP[[[DDDXXXFF†sÝLOO€ÙlF‡*•ŠÏçÓÛe“Ñ¡ ïß¿§*!ÂEÝ8ì°sìuÃä¹xzzúöíÛQQQyyy”S(RsÓëõ/_¾¤^àçç799‰ XQilla Simple API Documentation SourceForge.net Logo

EventHandler.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _EVENTHANDLER_HPP
00021 #define _EVENTHANDLER_HPP
00022 
00023 #include <xqilla/framework/XQillaExport.hpp>
00024 #include <xqilla/items/AnyAtomicType.hpp>
00025 #include <xqilla/ast/LocationInfo.hpp>
00026 
00027 #include <xercesc/util/XercesDefs.hpp>
00028 
00029 class XQILLA_API EventHandler
00030 {
00031 public:
00032   virtual ~EventHandler() {};
00033 
00036   virtual void setLocationInfo(const LocationInfo *location) {}
00037 
00039   virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding) = 0;
00041   virtual void endDocumentEvent() = 0;
00043   virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname) = 0;
00045   virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname,
00046                                const XMLCh *typeURI, const XMLCh *typeName) = 0;
00048   virtual void piEvent(const XMLCh *target, const XMLCh *value) = 0;
00050   virtual void textEvent(const XMLCh *value) = 0;
00052   virtual void textEvent(const XMLCh *chars, unsigned int length) = 0;
00054   virtual void commentEvent(const XMLCh *value) = 0;
00056   virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value,
00057                               const XMLCh *typeURI, const XMLCh *typeName) = 0;
00059   virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri) = 0;
00061   virtual void atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value,
00062                                const XMLCh *typeURI, const XMLCh *typeName) {}
00064   virtual void endEvent() = 0;
00065 };
00066 
00067 class XQILLA_API EventFilter : public EventHandler
00068 {
00069 public:
00070   EventFilter(EventHandler *next)
00071     : next_(next)
00072   {
00073   }
00074 
00075   void setNextEventHandler(EventHandler *next)
00076   {
00077     next_ = next;
00078   }
00079 
00080   virtual void setLocationInfo(const LocationInfo *location)
00081   {
00082     next_->setLocationInfo(location);
00083   }
00084 
00085   virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding)
00086   {
00087     next_->startDocumentEvent(documentURI, encoding);
00088   }
00089 
00090   virtual void endDocumentEvent()
00091   {
00092     next_->endDocumentEvent();
00093   }
00094 
00095   virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname)
00096   {
00097     next_->startElementEvent(prefix, uri, localname);
00098   }
00099 
00100   virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname,
00101                                const XMLCh *typeURI, const XMLCh *typeName)
00102   {
00103     next_->endElementEvent(prefix, uri, localname, typeURI, typeName);
00104   }
00105 
00106   virtual void piEvent(const XMLCh *target, const XMLCh *value)
00107   {
00108     next_->piEvent(target, value);
00109   }
00110 
00111   virtual void textEvent(const XMLCh *value)
00112   {
00113     next_->textEvent(value);
00114   }
00115 
00116   virtual void textEvent(const XMLCh *chars, unsigned int length)
00117   {
00118     next_->textEvent(chars, length);
00119   }
00120 
00121   virtual void commentEvent(const XMLCh *value)
00122   {
00123     next_->commentEvent(value);
00124   }
00125 
00126   virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value,
00127                               const XMLCh *typeURI, const XMLCh *typeName)
00128   {
00129     next_->attributeEvent(prefix, uri, localname, value, typeURI, typeName);
00130   }
00131 
00132   virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri)
00133   {
00134     next_->namespaceEvent(prefix, uri);
00135   }
00136 
00137   virtual void atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI,
00138                                const XMLCh *typeName)
00139   {
00140     next_->atomicItemEvent(type, value, typeURI, typeName);
00141   }
00142 
00143   virtual void endEvent()
00144   {
00145     next_->endEvent();
00146   }
00147 
00148 protected:
00149   EventHandler *next_;
00150 };
00151 
00152 static inline const XMLCh *emptyToNull(const XMLCh * const in)
00153 {
00154   return (in == 0 || *in == 0) ? 0 : in;
00155 }
00156 
00157 #endif
XQilla-2.3.0/docs/simple-api/EventGenerator_8hpp__incl.png0000644000151400015140000002213711653571064020371 00000000000000‰PNG  IHDRÐuè{A¿bKGDÿÿÿ ½§“ IDATxœíÝy\TUûð3+ ;²»±)   X¤ì à‚iX¾¨-¶ˆZÙ§$òõ}+KKÓ2^_L-üˆ–E&‚" Š¢•ˆÛ` !*‹ì0 3sÜ÷wgcXfƒçû×p¹÷ÜçÜ{Îðpï=ç’0 CšDÖu˜ø á€ÆAƒ„GÕu€¿]½zu×®]ºŽ¨òþûïë: $è‘–––‚‚‚°°0]ãr¹VVVºŽƒ z'%%E×!Å>øà]‡€¡‚g8 qp@ã á€ÆAƒ„£T0<áááò Ç}G ©©©\.—F£y{{¯_¿ÞÍÍmÜ÷2¾ÂÃÃ322œuà1p`RSSÇ·Ìæææ7feeá?¶¶¶¾þúë!!!û÷ïG]¼xqË–-‡š>}úøîwØH$$KKKkkëñ-S"‘ðx<âÇŒŒ __ßwÞy‡D"!„<<<úúúN:õÏþs|÷;l$€ žá`âø÷¿ÿ}èÐ!üóÐÐP\\Ü7B"‘(--måÊ•+W®LKK‰D¡ððð‚‚‚_|qùòåßÿ=BhóæÍ¡gžy/¡´´4>>Ï6p›6mzî¹çðÏj–©pÍÆÆÆðððÒÒÒÕ«WWVVþöÛo¯½öZlll||ü©S§ä#áóù{öìyúé§Ÿ}öÙÿþ÷¿B¡P¦™ãpëÖ­µkׯÅÅýôÓ’’’ï¾ûNº™ƒS\\|äÈ‘äää£GWJΞ=»{÷îO>ù¤¸¸Ok”-h$¤W_}uÉãBO=õÇ«©©A]ºt)66–B¡ „rssßzë-;;;WW×ÄÄÄ›7oâ…¬X±‚ÉdÆÄÄ „dnaðx< à þ£ÌŽFT¦²57lØàïïonn~ìØ±-[¶ØØØØÙÙ!„úúú¤#‰D—/_~óÍ7]]]ׯ_Ïáp¤K ‚$¬^½ÚÄÄdÑ¢E!<éAmÚ´ÉÅÅÅËËëÕW_%JP¸  ð Iá@ ##£… ^½zuÆŒ¿þúë‘#Gðå=Š'V355Å?ØÚÚ"„¨TßÖÖÖt:½¡¡¿~€éíí]¾|ùHËT¶æ´iÓð5öíÛ'ä¯U „ººº$ qeÅÙÙ¹­­Mºy666!é›A!b+¢… š JddäW_}åîîîééIü5µ°°8pàž ðùüÎÎN|¹ÌŸdi$) ''çí·ß&J¼U¿LekâIÉàààÎ;wîÜ444”››+³¹••™LnnnÆGÇ455á9 R’*)«WCCƒ««+BèáÇxF¢l!@à– ©»»»óqøòÀÀ@>ŸŸžžNÜû@9r¤¥¥¥®®.99ùìÙ³*JÆA½úê«ùùù‡®««»{÷îñãÇsrrˆ¿ñê—©zÍ¡¡!‘HD¥R…B!þxG¿t$T*5<<üàÁƒÍÍÍ÷îÝ;vìXTT”Ì.Ο?/s#F^jjjccãŸþyôèQ6›­b!@à é7ÞY‚_~ R©¡¡¡—.] %~õÊ+¯¤¦¦¾öÚk$)$$$11Qa™¾¾¾ñññ.\@¹¹¹:½GùëêÔRWW'ÿ&€: á@L:õÙgŸéVýý´ÎNFGƒÏ§“H˜³3útKM„7 ·nÙ»ºöX[è0 #••Méé¡Ñh++­í€¥å ™<š·:¸ºº>ùä“ã!“¼KƒÄã äåUTÿòËÎÎ>ww»˜_6Û; `•ªG·JœÞNK{qùò¹ºutð/_¾“S~åÊŸ†ùûO‹›7×ÞÞ\ס0)@€!¹{·5/¯2?ŸûÇ÷I$Ò“Oº±Ù,6›5}º®CSLBOOQQ-‡Ã½x±²¿_èããÂf{¯Xàæf§ëÐ˜È á@ß ‰oÜø+?Ÿ[PÀ½¿Ã„Íöf³YÁÁž––&ºŽnz˜pEEE57/¯ª­­×ÓÓÍf±ÙÞ3Ic|Ö ôT[[o^^Õµkµ×®Õvw÷ûùM öd³½çÍ›A¡èÑMÕô9á ˆÅ’ß¯çpªÏŸ/¯¯owq±Š‰ñŽf¹ëÕý) $è—ŠŠ‡—éærÉdRXØlüb†ÞÞ4QÍ i55rrÊ8œêŠŠ‡VV¦‘‘^l6+2ÒÛÄ„®ëÐ0lp {B¡èêÕ‡[TTûàA‡½½9þdÆÂ…†þwÎàƒùùÜìì²ß¯72¢-Zä±lÙœ˜_ss†®CÀ A€δ´ôp8Õ÷úõ;C¾¾.øÃ>>.dòy†Àp‚ôð‰ À‡·Ì±··ÐuhH8Ð* ÃJJîq8Õ×®ÕVU5Ðh”Yl6+,l¶‹‹•®£ á ðxüBT^^U_ß >¼åé§ÜÝax Ämàó os8Ü+Wþloç;8X,]:':š8“Á é:: šH apPtóf]~>7;ûÖÖÞéÓm¢¢Xqqs`x *@€55u_¸PÁápKJî ŠæÏŸÍŠŠbÍšå ëдdB&bxË… ÷îµ9;[…‡ÏƯWÑh]G€~„€q&I~ûí.>µTmí#&Ó(<Ü+*Ê;"ÂËÆ†©ëè´mb'Ò¤‡·XZšDEy³Ù¬ˆ/SS#]‡€^€„€ñ!3׸³³Ul¬ot4kÁW#£ÉûҢɓp>ìÌË«âp¸¿ýv—J¥{.[6'&ÆÇÜÜXס Kp0&wî´äçWåçsKKï“H((È]ÏçײI˜p:;û.]ªÎÉ)¿zµF,–àÃ[–-›ãàÃ[Àd #&3׸¹9#:Ú‡Íf-ZäaeeªëèôËdN8ðúõ;ÙÙeyyU½½žžqqsââæzzN–Gy@p >b®ñ¢¢Úžž~ûèhƒ›k\Ë áF oÉÉ)kiáÁð0©@ÂÀ0dæ×ÿ´êH8’H°[·îq8Õ¹¹uumNN–^0¼Llp 1×øÕ«5vN™bãìâia¡ï/hÕ+p «¦æQA7?Ÿ{ëV½¹¹qHˆgT”÷’%~0¼L0pð7鹯¡ŸßT|®qËnšŒ$êkhèºx±Rzx ›ÍŠõµµt£©Á„ ˜ìdæ§R)¡¡³ØlVHˆç´ipÓd¬ á…®®¾‚Ùá-K—ú9:Zê:4F0IÉÌ5noo_ÌX´ÈÃØØ°_ЪW á bxK~~÷¿á-l6ËÏoª®C`Ä á“ 1×øÍ›uB¡xB¾ U¯@Â1.D"Iii}vvyNNyKK o†0ñÉÌ5njjáå6{Ê3]G7ÁAÂ1¾$¬ªªÃáfeýq÷n« 3<|v\Ü\Þô$`Â’™kÜÑÑrÉ¿Éð‚V½ ‡æ(Þ²x±“ Ã[€>‚„L4Òsc6oÞ¤{A«^„C º®\ù ‰L&…„Ìb³Y11>pèH8ÀD 3׸™#,lö¤}A«^„C›ðá-Õ—.UЦGG³–,ñ›9sŠ®C`Èdæws³‹õe³½fP©0m†^€„C'†®]«ÍÎ.ËÏçòxÞô$ÀðÀ\ãÝ‹%¿ÿ^Ÿ]~þ|ù£G=Ӧٰ٬¸¸9óçÏ„aY@Ë á†Af®qssãèh¼ UÿA¡'ˆá-çΕݹÓbmmáÃ[€6AÂôÚ£G=Ï5îééÀf³à­=tÿ~‡ÃÍÎ.»u«Þؘ¶p¡Ç²esbc}Í̺ Ldp½CÌ5ŽO›A£QÂÂf³Ù¬à`O¸ibp áÐg]……oY°À•Íf-_îogÃ[Àøƒ„è ™¹ÆíìÌ¢£}ØlÖÂ…&&0׸¡‚„à tw÷s8Ü‚‚êË—o B|0ùâÅ~®®0¼ŒH8€Ž56våæVÂ\ã$†ÞÂáp/^¬loç71,pÕuhÀàAÂt@f®q:Š¿ 54tÖÔ©ÖºŽŒ'H8 1¼åÂ…Šææî©S­££}¢£YAAî0æŒ$@{ˆ¹Æ¯_¿ÓÕÕçà`/hà á˜jjåä”eg—×Ö>"†·„†Î¢Ó©º H8€ÆIÏ5.‘`óçÃ\ãÙ믟¸}»™ø±±±ÛÚÚÔØø/¯¡R)Ç¿âèh©£èÀ˜Hoa0h‹y,[6'&Æ×܆·€áAÂ4Bf®q&Ó(<Ü+*Ê;<ÜËÖæŸÈÈß·/WÙ÷Š»»}QÑ6íFÆ_{;¿°ðvNNù•+’H¤'žpe³YqqsííÍuÐ_p€ñÔÚÚ›Ÿ_ÅápùåN¿ÐÉÉrñb¿èhÖ‚®FFpõuR¸¿ã©§>VøÅB¥R¶m[²ys„ö£ÒÓÓ?Œuñbe¿ÐÇÇ…Íö^±"ÀÍÍNס½ Òs“H((È=$ÄnšLZ‹^QÑ ÿÕB"‘JJv89Áý” ˆÞ’—WÕÖÖK o œI"Áp3€$`ÔäægÓfX[Ã\ã“Ú±cE|%I¤’ɤ€€éçν¥«¨€vÃ[rs+ššº]\¬bb|G:¼E Ñ``ü @·nÝKM½œžþŠ:+ËÌ5îîn/hioçûûï‹ûn¡PÈÿ Oé** }øð§º¢â¡••id¤›ÍŠŒôv*¿o¿½~áByjêóðPÈD Ǥ&K,Ø¿ÿ¢XŒ¿¯l ù¹Æá­@µU«ÿ%ÿ}‘ƒB!——W¿&§:òó¹ÙÙe¿ÿ^od4üð–gžI½q£ÎÒÒøðჃ=µ-ÐH8&¯¦¦î Ž—•Ý—H0 …üá‡+Ö¯–^Af®q |Ðà`OKK]… ÂéÓ7·ný^"ùß× …Bö8uj£n£:×ÑÁ¿|ùÃ[$, `z\Üܸ¸9ööÄ:}~~ïK$™LÂ0´~}pJÊrx¥í Ç$•™yë½÷~‰ÄCC„™LzòI÷ÌÌÍèñ¹ÆE~~Sñ<ƒÅr†´5õöøøü{hHŒÿH"‘\?_·QýÁã ð‡À¤‡·<ýt€»»|¶êååxôèúiÓàzªaƒ„cÒáñ[·ž¾p¡!$}ò)ò›oFÕ”•= ‘HþþÓÙlï¨(–——£Îb†ìå—¿)(àâŽQ¹Üá%|@Ÿ?xùòíÜÜŠË—oóùƒsæLÅ0¬ªªAú *•bdD9p`Ͳest*#H8&—’’{‰‰éíí}"‘XæW$ÉÑÑbþüQQ¬ˆ/¸×Æ('§|ãÆã F¥Rbc}¿þúE]GôšP(º~ýNNNyff‰Ì'„Ü^™`.¦ÉB,–|ñEþù$IúQ>…B^´Èã‹/Öh?60!±Ù,ƒÖß/‹ÅññótÐwt:5"ÂkpPtúôMùßâwXŽ¿^\|÷èÑ—áquC·ä'…GzV­Jýâ ŽD‚)Ì6B"‘8/¯Š¸o ÀQcc}I$dlL ›­ëp€aÈÍ­ P”N¿!KjjZ¢¢>ËÎ.ÓfT`\?–pôööÖÖÖj= )†²³ïœ;WÛß/R¸™L"‘Hd2Â0„aH,Ʋ²nÒhzôÏè”)SÆøu ­Z‡,,$fftoo&œ]{Òæ¹«®nçóÉd†©z¼ÿÕ‰%åå÷ýÍÌàadý¥4áÀ………i/ aááaû÷#„Ÿ?(ûû…<ž@  C<ž ¿_Øß/ìïäñð…æúÓ¸\îx¥?•šlÞ|Û¼9æ¨Ö‰ñêAÞÞÞvvÚx›­mãgŸ9#„Œit:ÕØ˜ndDÅ?34##ƒAc0¨ ^©ÿZ[[«««¥—À9›,˜L#&ÓH×Q€I'11 ²  &gg]G4î~4F0pp@ã á€ÆAƒ„§Á„ãîÝ»$Iá}óæÍüã yyyc/úňŒ¥ûŒnÒ'ht{Ẅ:Â(LÀÖ…Iiii),,ÄÆÛ;wðTXºti¿:kê–Šñ*`688èãã³aà Ã6nÜ8oÞ<¡Pˆ¯“””,‰ˆ­ø|þŒ3ÒÒÒäw1ìÑ@ݹsgÌuREE šÛ{UUUUUÕ V­>uZµÌéniiAµ´´Œ¢L­yýõ×ñ?„¤¤¤¨¨¨±—<ÒÚ)\_Ï{Paa¡Šó;:£è>cÜÑxuGPŸ²ƒ3Æv¢ìPh®ùÉ÷Žø ǹsçœñ—S|÷Ýwžžž}}}‰$55ÕËËËÌÌ,((¨°°¿J£âúUNNþ?‡££ãž={ð…ííí¦¦¦ÆÆÆO>ù$BÈÁÁýÿ… K—.M›6íúõë 7$‘Hß|ó——×”)SöìÙsâĉ™3gZXX¼ÿþûø CCCï¾û®½½½Ý»ï¾;44tàÀ„Pgg'™LNJJB‰Åb++«óçÏ#„º»»_zé%[[[—¤¤¤™HˆŒ-))iîܹíííÒU@Ñéôôôôo¾ùf÷îÝß~ûmzz:F÷ÊÈÈØ±c…ò÷¦¦¦ÉÉÉ'OžÅqÑÉÂËÏÊÊš5k–Ý–-[‡­¯‡‡qFäåçç»»»[YYíÞ½›8e2»P¶_}­ZýV-ƒF£Ñét e!I×Zá 2ȯ€Š“'OzyyY[[öÙg!‘H”’’2mÚ´)S¦¼ð øuD…å#„~úé§·ÞzK:ì”””cǎ៕ü·ÒŸåövb±xïÞ½žžžfff .,..VØr ºi§ûH·“ôôôQœ ™5GÚ¹ÐØ:B(;;ÛÏÏÁ`¸ººž8qB&$ùƒ#Óº¤©Ž¤ME{ÍOu>¢Ð /¼ðâ‹/>zôÈÞÞ¾¸¸ðÇÛÙÙ9s¦©©éüùó...!ù4øÀãñètúË/¿ÜÐБ‘jmmÅ0ì›o¾9qâöx.†^¼xñåË—›››nˆJHHàñxGE=÷Üs<ïðááööv Ã>ýôÓøøøTTTlÛ¶íÃ?\ºt)†aYYYæææ†Ýºu‹Á`ôõõa¶víÚÈÈÈ¿þú«¢¢ÂÇÇgçÎÒ‘à·ë$ ñ½ŒGKT°mÛ6„Ю]»ˆ%xÏlkk“9°¿ýö›µµõ(ŽB¨¬¬¬÷qÊN^Ztttmmí7ÜÝÝwîÜ©f}¶„вeËx<ÞO?ý„p…»P¶_´y…Zµš­Zº±566nÞ¼<'’ÌÿUÊVÀàóùò+à;]µjUWWב#GB{÷îe±X•••O<ñDRR’²òñîÖÙÙ©ìÔ+;&ÒgЍ»LÃÖnÿþýÒ­¯„LzރԹ¡µî#ÿu¤þ ’Ys¤ àóùFFFiiiÍÍÍÇŽ£R©|>_axê\áP¿Šö#î4×üä¿{G“ptuu¹¸¸øùùûc±XéééÄ ÇWݶoß¾ÍçóÅbñÕ«W‰ã/ÈŸ†ŠŠ "„JKK1  …2ŸñfÏžÝÜÜŒÈápæÎ{ëÖ-&“) ßyçíÛ·Óh´®®®½{÷.Y²ß–B¡}õÌ™3îîîÒ‘àŸ“““B555D݉*à$ÉÓO?M¡PÖ­['}‰f-í×_µµµÅqS‘JÊŸ,éZ`vúôiwww5ë«°= „®\¹‚a˜X,ÆCR¸ … HÐf­S¯UË43&“Y]]M¬)’LËQ¶Ñ0äWÀwŠŸD¢ú³fÍ:sæ ¾Zuu5ñY~óÎÎN„PWW—Âó®â˜HŸ)¢î2a [;OOOùV$ƒž÷ u­uù¯#õOÌš#í\ØØ:Bgg'FÛ·o_WW—D"éíí‹ÅcI8Tį¢ýÈŸ;Í5¿q¸¥‚²´´Ü°a—ËÝ´i¾¤®®nîÜ¹Ä ~~~ªK Óéµµµ±±±óæÍKOOÇòùü¡¡!e/6œ={¶² qfff!üž…ôg\}}½££#þD1›Í¾wïž¿¿¿©©iIIIQQÑòåËýýý‹ŠŠ —.]Šjii‹Ånnnøæîîî Ò‘àJJJÂÂÂ>ùäeU8yòä•+W._¾œ™™™••E@ùGšËÊʤ Wó¸áäoÂû’9Y8ü ^††5ë« þ™üXs’Ù…Š…úZ5Qì°­šhl}}}‰‰‰/¿ü²Šdª¬l"e+àmŒ¨þýû÷‰¶äååµråJe›[YYÙÛÛË<µZRRØß߯â˜àdþ´È„1lí>|¨N+2ô¤µî#ÿu4¢$m¤kŒÁÊʪ°°ðÆ...¡¡¡×®]“9ÝòIÌXâG#i*Zk~£I8>|˜ššµuëV|‰³³syy9±Â°¯(Ï=÷Ü»ï¾[ZZzèÐ!|áÅ‹ccc•m‚J…ª¿r€7Ž®®®7nÉä%K–deeÕÖÖDDDp8œ¢¢"ü«ÙÞÞžB¡ÔÕÕá›ÿõ×_ÎÎÎґಳ³ÓÒÒ¾ÿþûÂÂBù*455mÙ²eïÞ½!!!)))‰‰‰ø¯Ö®]ûÑGá%B(!!á»ï¾Û³gOBBÂH›jò' ‡§«¡ÚÚZ'''5뫌Âû²2»P±P@«&ŠUݪ¥™˜˜¼ôÒK\.—ø®”iؘeP¶‚Ì·¡““S}}=þ¹¬¬ìã?V±ùòåË?ÿüsé/ôŒŒŒ¡¡!Ç¦ÞØØ(½_™0†­ÝŒ3ÔiE†Þƒ´Ö}¤ê(NúäOå;‚@ H$?þøcggç+¯¼‡_{SV‘±S¿©h¯ù©¾"O,GEE}ôÑGçÎÃ0ì“O>±³³;{ölsssnn뺺ºH$Rnn.>B¨´´tݺuø^”]S¸!&w­Iþó–-[V­ZU___^^þÄO¼ñƆýøãL&“ÍfcÆáp˜L&‹Å"jºfÍšÈÈȺººÊÊJ‹µcÇeQ¥¤¤ *ÍQIDATxzz é*H$’eË–…††ŠÅb ÄB¡ŸŸ_BBþÛžžžY³f…‡‡_¼x±¦¦fûöí!;;»ÁÁÁ‘7¼šòÃb•,¼´ððð;wîܼyÓÃÃcÇŽjÖ—x4äÈ‘#ÝÝÝʸÂ](Û¯ Z»¥­Z>*…­Z& Ãîß¿âñxøò!É\ÈÅ «Ÿ’’âççWYYYYY¹páÂ×^{MÅæ­­­666k×®ýå—_ÊËËwî܉ÊÉÉQvLÚÚÚBÇŽëééÁ¯(; 2ýB~ï_~ù¥t+ruuÅK3 4ì-íwŸÑ ™[*#í\cì€Á`dff¶µµ}ýõ× C (¬ˆÌÁ!Z×°1cj´|5í4¿qx†ã«¯¾š3g>¼óçŸvttììì …~øáÌ™3™LfPPЩS§T·- Ãöïßomm=uêÔC‡%$$XYYá·™qʾå7´³³SçLðx¼õë×[YYÙØØlذ€®»»›J¥âsöõõÑéôäädbGÏ?ÿ¼££ãÛo¿-”E%<==·oß.]…ôôt###éá7oÞ$“É™™™ø|>ëÖ­>>> ÃÍÍí_ÿúWhhèêÕ«Gt܈ê+L%ž,¼´£GNŸ>ÝÖÖöÍ7ßÃÖwhhhÑ¢EL&SÅAÆo¯2»P¶_´–p@«–Ja«Æä¾gÅb±¹¹ù½{÷ðåC’©é(VPXý¤¤$''' ‹„„â …›cV__¿jÕ*'''33³ à• ÃvíÚeiiéææ†ß Uvdú…üÞE"ÑÞ½{ÝÝÝMMMƒ‚‚ð+.Þ\½êAÃ&Úï>بNЈ™SÙÝÝ=ÆŽ€aØéÓ§ÝÜÜètúìÙ³³²²”U„ˆsDߺҟU´Ÿ1n>¢æ'ÿÝK¤þ\µ¶¶VWW‡……)ü¦¾»wïzxx`Jþe„Baii)>Js´pvîbûÅ/òX¬±­½êAW®\ñöö¶³³K!Ð}´iŒG{¼šŸüw/¼KEÐétMg€N@Â1阛›'&&jZØ/ô 0cl*šk~¹¥À¸Ð«[*ý¹¥&!¸¥€„ 4h$Ð8ªü¢¦¦&íÇ€¼ƒ1.EA«“Ðxõ îînü}¨ÏçË,QpÔÖÖj%†7^ ´j09K‚|Œ Ì5 Mƒg8 qp@ã á€ÆAÂû?KOÇÑ{€æ”IEND®B`‚XQilla-2.3.0/docs/simple-api/Node_8hpp__incl.png0000644000151400015140000011410511653571064016323 00000000000000‰PNG  IHDRàWýCYbKGDÿÿÿ ½§“ IDATxœìÝw\÷ÿðKÂÞ;,Ù„) ସ*j•8*h­ÝÖYGëªÕjÕºªµýV­£Zµ­ÖA´"8±â@«€(("K2Â6l2î÷ÇÕüR@D ¹$¼žÿ€óÆûÈ}.—w>Ÿ÷‡A’$ôaÒ@w‡ Í  44Ó ; ÓÕ«W×­[GwŠ3hР•+WÒ@KHÐtk|>ÿÒ¥KC† ¡;EHKK355¥; €6 AÄ7ß|CwаfͺChjÐÐ š!A@3$hh† Í €—:tèêÕ«I’”.),,:th7ïøÊC‡-,,|T4Ð!W¯^‹‹£; õ„ t—ËýßÿþWYYIw j 興‡­[·Êt¢ÔÖÖnÚ´iܸq»víjnn–H$G}ÿý÷G=wîÜôôtjM‘H´{÷î &L˜0a÷îÝ"‘¨õ’’’¦NÊår>L<uãÆ÷ß„ Û·o …m.ìê¿@×Ñ ;P L&sÙ²eŸ~úé… F%û_?ýôSeeåîݻ֭[§§§§§§wìØ±… z{{gggoÙ²…Z“ÇãïÙ³‡Êé8p`úôé-tûöí½{÷Þ¹sgÕªU\.—ZxêÔ©7ÖÔÔ¬_¿ÞÈÈhøðá­~øá‡]ÿgèèAeoo?cÆŒíÛ·—––JŠD¢Ë—/Ï›7ÏÆÆÆÅÅåã?Ž=}úô¬Y³BBBÌÍÍûöí;cÆ jåsçÎ-X°ÀÊÊÊÅÅeæÌ™ ­2yòd==½QSSC-œ={¶½½½——×§Ÿ~ÛÎBU„4ð &L˜píÚµ-[¶,X°€ZRUU%‘Hlmm©_íììÊÊÊ †›››t+ꇒ’’‰'J—ëëë·>„¹¹9A Cv¡½½=õƒƒƒCYYY; T4ð  Æ—_~ùÉ'ŸÄÄÄPKLMM™Lfqq±££#AEEEššš999®®®Ô:¹¹¹ÔÆÆÆ?þø£Aµµµm–n‘š¡<}ú”ÊòPœ-PEâ¯ÆÆÆföìÙǧ~ÕÐÐ:tè¶mÛŠ‹‹Ÿ|ìØ±»víºqãFeeeBBÂþýû©•CBBöîÝËçó?~¼téÒS§NqæÌ™ºººöºcÇŽÂÂÂGíÛ·/44´…ª=hà•q¹Üëׯ'%%Q¿.X°`ÇŽ³fÍÒÔÔ6lØÔ©S544„Bá®]»***\]]W®\9g΂ ¦M›¶cÇŽéÓ§3ŒAƒÍœ9“ ˆï¿ÿ>  ÍáNRÇ_´hQccã›o¾9uêTj@S‹…]Þ]…Ñz–Dè>Ž?>yò丸8ºy¡ÂÂÂ÷Þ{¯E„m.|©5kÖXZZJûþ( q 4ÝTs³(=½èÞ½ &S›îXÚ£¯¯Ïår;²°#š›YÏžÕË#.yÂ'€n¡ªª.+‹Ÿ]š“SJýPPP)K´´XÅÅG.\8Lw€Š°fÍšŠ òr]##''KGGs‡ÍáXs8ÖnnV,¾¼Ú H0€ºihhÎÊâgd”dfòóó+22JrsË››EL&ÃÍíáaíáaÃåxxX;:š_¸3yòVºCV7·ê}û–feñ³²ø™™ücÇ «I’42Òuw·rw·vs³âp¬ÝÝÙ=z˜1™mLø РPm¥¥5Åyy%™™%ùù……U"‘DOOËÍÍá°#"‚Ì9kKMMÝñÒLCCÒ§KŸ>.Ò%B¡¸¨¨:3³$3³$/¯âÂ…?üp¡¾¾YCƒiggJýé<<¬9¶··RÕ… €Ê‹%ÙÙ¥T†ê “—WAUTqt4§R \n5r‡Í6¦;^Õ ©Ért4wt4 õ‘.äóŸefR½J23K¢¢’ËËk ‚`³8kGGiÖÆšÍ6¢/vPHÐ(©úúæììÿŒTzò¤L(³XLWW+ëδilj¤’±±Ýñª6Û˜Í6 áH—<{VO½TÖæúõÌüüJ’$õ¨Œ•¯áp¬16 ^4J!/¯ây¿˜’¼¼ŠÌÌ>_@„¾¾¶··­‡‡uDD0õùßÖÖ#•ÏØX¯ÅØ( !7·\šA‹ŒLÊÎæK$¤––†““5* ˆ ƒ P´Tb0f©¤*ŒŒtýüzøùõ. Å—Q£¢23ù±±wìø»©I¤©É²µ5¡’5T_ww¶®®Á€²A‚ kÕÖ6=|XHea¨îEEÕB¡XKKÃÓÓÆÑÑ<4Ô›*kâädad¤«Èز²ø—.cñâÅŠ<.]?~ìå5þáÃ"ooۮؿ¦&ËÃÃÚÃÃZºD$’VI+'$<>x0¾®®‰x^ÎFZØËËÖÐP§+¢•À I’îÔI’ùù•Ò‘JT愈¯¶——-U/†ö‘J%%ÏNºû×_wîßjjªãêš«£#Vp IIl—gffŠ<¨XÌLK³ÄÖo¿4aB½½©" ÈV ÎË«xô¨¸¬¬† cc=i-ksGGsŇ´@‚à555‰¨ù­©ñ,yy¹¹eA#5R‰ÊÂHËÇ*CßÒÒšÓ§ïòxI©©––†cÇöŠˆ–¡£H¶¶_ìÞýáØ±Š?tFF —Äã%òùÇ:""8<¼7½“1I+K»Y¡1@wƒ @‡ÔÔ4¦§I;>äçWV‰DMi"æùH%K##%«R[ÛtêTrddbrrž®®æ¨Q=#"zàFoÙZ4‰„LJzÂã%EEÝ­«k rŠˆè=n\/%g$4ææ–ÉÎá•“S*K45YÎÎ–Ò ÄŽŽæ6ÚÚ(\ ò hI"! *¥uCdG*YXxyÙRÔ¨A(vv¦Ê8AP(>þ>—tíZ†DBŽÕ3<_@„žž–›ÛF*¹¸X*[µ×Ψ«k:{6•ÇKºy3[GGó­·”bJ¦× B ©æfÑÕ«ÑÑ÷ΞM‰$ƒ{„…ù‡…ùëêª|EÞÖˆ33K…L;;SÙJL>>vúúÚtÇ  † e'©D}ÛŸ—W‘›[.4­*¡r8l6Û˜îx»„P(¾rå—›&K† ñ  õQÝÞ ª˜ ‘/\¸“—®§§=b„—0l˜—Ê¥ÉÚAU –¦A[W –Žôð°±²2¤;^•‡ (—ÚÚ¦‡ eëeP#•X,¦««•úTjI’‰‰Ox¼¤˜˜”gÏþ’)4ÔÇÄDåO\¥4R|þ³èè”èè{‰‰O¬­ÇŒñW­f¯ªE⌌âÒÒ+Kg:Cb€×ƒ І$ÉüüJÙI‚33ùT_}}moo[ÙglmMÔi¤ÒKeg—;–pêTraa•¯¯Ý¤I}”yJ¦×  ©¬,þéÓwOœ¸“›[N•ïíè¨bå„_ógõÒÆ+[ØÐPÇÙÙ’ÊÚPMˆÚ‡ (HS“ˆšßZf¤R™@ÐÈ`0̨z1j?Ré¥òó+"#©)™ÍÃÃUbJ¦× f )j²óÓ§ïVTÔRå„'L477 ;.Åi§±­­ •¬¡úÚ¸»³Õ |€¼ A]¢¼¼6=½H:"?¿¢°°J$’hiixzÚH¿Wwt4wr²02Ò¥;^šUVÖ}·  ÒÍÍjòä>ãÇÚÙ™Òºm‚F*#£„ÇKâñù|Ÿ_ððàñã-,ºQ9á×PSÓøäI‡*»¹±»gÅP]HÐtSõõÍÙÙ|Ù¯¦‹Šª…B1“ÉèÑ#•䣴´&22!22)3³ÄÁÁ<"Bm§dz HÐP$2)é —u·¾¾yÀ·ððàÑ£ýôõQ+·C„BqQQ5u£nhYYü††f‚ Øl#êVF•Áòò²Eþ ”4ÝB^^…´'õå35RIWWËÝMea¨¹Tœ-0R “jj£¢îFF&Þ¹“kb¢7aBÚOÉô i¡©ItíZ—tþü}‹ê,¤1-F*¹¹I?r°©þ©ÔÄbÉåËÔ”LiõõMC‡z……ùÙ%“Û‡ÍKWŸ9“™xÿþS{{Óqã§LéëâbIw\j¢uâ‚‚J‰„ÔÔd9;[ÊÞ<=ÿ™´–MFFÉ£GÅ55„Lb*kÃáX£1¼$hM"! Ú©¤¯¯íím+û|okk‚]ôª«k:{6•ÇKºy3ÛØXS2É 4'4^¸p?&&%..ÝÀ@',Ìå„iÑ¢q~~E^^AFF:NN–T?Gê–îæfÅb¡.;´ €®ÕÐМ•E=µó©i_ssË››EA8:šSõb0RI …â+WñxI±±i cÌLÉ$gHÐÈŸÿ,::%:ú^bâ;;Óñãßy§««Ýqu_¯@ÌáXëèhÒ/($hä©´´†*Ób&W ¦‹‹•‡‡5õ=ª££¹““…‘‘.ÝñBK$IÆÇgEF&ÆÆ>¬«kÄ”L] š®•Å?}úî‰wrsË©rÂáá½Ùl#ºã‚–ˆóò*=*nnQˆ¥Éz‡íím‡ºBÝ4¯I,–dg—R½Ù©¯Ióò*¨‘JÚ^^©¤b<(M] š.•šZ™•\YYäÑ{ܸ^††È3*‘Öˆ³³ùõõÍ„L9›çYkdÙº$h:¤®®)'§T¶¿zQQµP(f0f²Ó¯zxX£ˆ¯ ÉË«àñ©)™\\,§Lé;vl¯=ÌèŽKý!A£b±äæÍìÈÈÄsçî‹Db”V~²ˆóò*>,ª¨¨%ÂØXOúC½ãôèa†JXj €6äåU<ïSBMtMTÒÖÖðð°‘V|tt4wr²ÄàUTQQû×_ÉÑÑ÷îÜɵ°0ˆˆèƒ)™ EjlÆÆ¦ñxIW®<ÒÓÓ õŽˆè=p ;Ê +¿U ÖÒÒpr²ŽœEb5€ twÒ‘JÒº¹¹åAA††:žž6ÒNæævv¦xüUaõõÍgΤÄĤ\½š¡­­1n\¯ðð`LÉD $hhQ]]“™˜””kccüÖ[~“'÷ñõµ£;.xACnny›ˆmmM¨d Õ×ÆÝ­««Ew¼ÐQHÐ@÷R[Ûôða!•ˆ‘©Äd2zôÀH%µÕæ”LƒyhkcJ&Ú AC¯§O«¢¢’MÈÉ)åp¬¹\ÿˆˆÞætǯC(?~\&ûMCFFqS“ˆ 6Ûˆzk£úÚxyÙ¢€ÒB‚ÔI’ùù•Ô«tºSªˆ¯ŽŽ¦ô Fjî gg LŸ¬~H’LL|Âã%9“ZSÓð|J&_ÌŸ¥  Q%<^RddByymP—ðöÛAffútÇÒñ Ä掎HÌ($h@M46 ¥õbžT* ‚°´4ôô¤ Ç`¤Rw‘“SzôhBTTòÓ§U½{;s¹aaþÖÖ˜’I‰ A£T$2)é —u·©I4x°GX˜X˜?Ȩ“ˆÓÓ‹ÊËk ‚02Òur²ýÒÂÝŸŠ‡ ¨¤òòÚôô¢çýbJòó+ «D"‰ìH%êYÓÑÑ#•º>_Àã%FF&ef–8;[¾ývàØ±½ÜÝÙtÇAŸ}öGzz±ô×ÂÂj33}]]MêW Öo¿M³±1¡):øWS“èÚµ /éüùûººZ#Føp¹Æy¡ú¬ZzQbMM–³³¥´±££¹‡‡ Æ„t5$h@ÙI$dAAÛ#•ôô´ÜÜØ²_ú¹¸XbúØn¨ªªîĉ;Ò)™¸Ü^Á~~=èŽ þãÇ/~ÿý¹={º¹±¯][¦Øˆ =ÏžÕ_¼˜Æã%ÅÇg±ÙFcÆøs¹þ}ú¸Ðt-Ù ÄÔl†ÙÙüˆ©Jm¾¾özzè` OHЀrihhÎÊâË>ææ–77·¬tH=²Ù±Ò­544ÇÄü;%“–küøÀððà  '|Õ¯œòò* XßæÃ§†kÙ²Ñsæ S|TðREEÕgϦ?žðàA!UNxâÄ`'' ºãé`bGGsOOKKCºãPaHÐJKk22Š¥#•23Kø|A,ÓÕÕêy¿ŒT‚ÿ‰$qqéÑÑ÷.^Lkhh5ªgxx0¦dR o½µ55õiëÇOƒ‘˜¸ÊÖã›”ZFFIL̽ÈȤ§O+©rÂ&š›Ð(šlbê<-­°Ebªî‡cíà`Æ` œ @‡ A "K²³K©!îT™¼¼ j¤’¾¾¶««•tR ÇÚÖÖ#•º[·r<<¬MM_>kLBÂãèè”3gRJKo¼áð¢už<);yòÎéÓ÷²²øÔ”LcÆø¡š¬**/¯íÕk•XüŸçO‹¹~}{(§æfÑÕ«ÑÑ÷ΜIÕÔdŽáËå êõ¢9ò²³K Ú8r¤ïöíïh+8ZPûlØŒC0ÿ('$hÔ\eeÝO?]Ü¿?žÁ`ˆDâcÇf‡„p:¾ymmÓÇ…²ý“©‘J ÃÁÁLvºMk”ºz5cúôBi- æçŸpwgóxI×®ehj²FêÑ{À7”*P355¾¾_S ‚`0Û¶½;qb0½Q|eeñOŸ¾{âÄÜÜr?¿ááÁNN|°WºƒAcΜa_}5†ÉDIø"‘¤°°J¶ñÇEuuMAëI9^£ñܹ‡Nž¼Ãd2LLô¾ürô”)ý^4€.HШ- aûö¿÷î½J5Mµ†kõêqŸ|Òæú$IæçWÊ>efò©"¾ÚÚ6ÔSÑó‘J–FF:Š<P$IîÜyyãÆ3$ÙòDWW³©I4`€ÛÛo퇡pjì“Oö_º”F¥ç´µ5ÒÒÖãÛlµ$KnÞÌ>yòÎÙ³© B‚ D"±ì L&cÈÏ;?À ´ª@,óñѣⲲ‚ uœ-¥Ï'íW 2dSf&Ÿú™ÉdXX.^>+êë› bÿþi#GúÒt­ØØ´>úõEŸ;44˜ZZ;w¾?b®x}|¾ +‹Ÿ]š™Yœ]š•ŧjiii¸¹YÙÚš\ºô°õV,S,– àöÍ7ãzö´WxÔÿ €š I2&&eãÆ3ùù­HêôîíÌá°]]­ÜÜØîîlLg кèL›ÌÌ RRÖ ?ØÌ{诿îèêj¥¥­×ÖÖ ;èZ3gþvî\j;ÍŸê˰pህ GvÅTƒÐ=  YYüÌÌ’ììÒ›7sRR ¢íÇ#‹)‘£Gû­X†ùÅ€FHÐt‰Ç_ºt‰î( )*j8¾4?¿žÁ ^v_g|õG[û>»¸¸ >¼s¾Ä¥K—?~Ü¥‡ݾ]yáŸ$_zqA|ü±£££ÊW›–K«©ªªjhhK÷î•êè°:8UÓåË™ùùesçáã±Z¢±EÜ»÷X"ya.ƒÐÐ`ŠÅ¤P(þãÄÄÄœéÓ{YY©ü· ü¼½½‘ PôPEª¬¬{ø°0-­(=½èþý§YY|‘HÂ`0tt4ššÄÒ‡ƒqøð鈈ÞÜí¤I“º,äÿˆˆˆ8~ü¸bŽÐ¥äØj,--}|Ô¶tå¼yäœ9ÃÔuŠåÒÒÒ‡Û(xñ¼½½­¬T¸€î!ÄçŸ+è­”í-â»ïîJëÓ3„®®¶X,njaeeäímãímçåeãåeëîÎÖÔD.P„+W®´X‚ €š03Ó83p ‡úU(ç䔦§§¥Þ¿ÿ4-­°²²Ž ’$³³Ki€ bæÌ!êšeóøñ¿?ººšîîl?¿^^6žž¶^^6&&è)Ê õ¤©Éòô´ñô´™0!ZRQQûðaQZZª€2ÀwÔ Â3ûøØyyÙ:8˜¡5(-$hº ssƒNH‡î@GGGsÑ"u®GjÓXÐ š!A@3$hT@vv6U̬õíÈÏÏÿøã;²fçQÇ’þúí·ß2ŒM›6I—=z”Ñ–{÷îQWW·téRƒ>}úlܸQ$Q2ŒˆˆÙ Ë»îŒêêê–,YâïïohhØ»wï 6HÃ%¿““Ó|PVVÖÁCt>ø6÷À`0²³³;³[5£ÞMFöWSSÓI“&uü ¤È÷ÑpTEgÚEgŽKíáîÝ»‘‘‘ÒåQQQZZZ÷ïß§~mç ¶¶vñâÅÎÎκººîîîß|óMcccgB’Õ­.õ¾7xœx¸+êÞ"ð´ð”¡] A LLL¾üòËWÝêÔ©SãÇ—nûøñc ‹.ˆîÿEýL’äÑ£GŽ;&]aܸqÅÅÅÅÅÅ7oÞ$¢ø9ŸšššàààÛ·ooÚ´)99yÙ²e‡1b„X,¦¶åñx²»ê"T‰‰‰ß}÷Ý;w¾úê«Ã‡‡††JÃuóæÍâââ§OŸ8p@ VWWwä(¯÷R«Rï&C<¿‹ŠŠbccŸ>}:oÞ¼.Šó¥ÐpTHgÚEÇ×oÝp¨=ôêÕkùòåóçϧ^ôgϞ͙3ç›o¾éÙ³'ñüBzÑÁ¼yó’““Oœ8‘ŸŸÿ믿FEE-Y²¤ÍcAûÔûÞˆÇ xUêÝ"<-¨(ºuë”ûn³²²¨ÝJhǘ1cêëë[oÛd•’’Â`0bcc ‚ÈÈÈh±fë0/^"‰¤KjkkœœvïÞM’$A3gÎ433+..îÒyQ{÷îm±&AYYYÒ_%É AƒV­Z%÷ÚÔæé·I¾"""¨o»TE-›L‹—ûÚµkÆÆÆ¯tt9žN›äu=?xðàÁƒßO ißyë=455ùúúΘ1ƒ$ÉY³f577Së´ÿF`bbrëÖ-é]½zÕÁÁ¡ƒñ¿T×]|>?..®óû‰‹‹ãóùß,µ¼7âqâ•(þq-â5àiAíÛEëë=hhsúôi;;»ªª*‚ Ž9Âápêêê$ÉŽ;¼¼¼ û÷ïGu«k§Ã^LLL¯^½ôôôlll¤ËËËõõõuuu¥Ûöë× kkkj¡P¸dÉ6›meeµdÉ¡PHƒÁØ¿¿———¥¥å¦M›þøãgggccã•+WR[EGGûùùéè踸¸üñÇ-ŽEýzôèÑÁƒ>ÜÓÓ³#_U:thÕªU,KºD__éÒ¥‡¦~ýâ‹/<==©gúŽœûKÏ¢Íso3Œ%K–:tˆúþý÷ßñññ-b`0³fÍ:sæÌ‹v.»ùÁƒ©—cüøñ .¤6ijj255¥öÐzs±X¼eˇchhøÆoܾ}»Í?ãÅ‹ÝÜÜLMM7nÜH<ï¢åááaee5þü¦¦¦6¾ôRh2mb±XVVVÔÏÕÕÕ}ô‘………½½ýâÅ‹©a m.”jó¼^Ô²>ìååeff¶yófj!íÓ.^´Bë+¼EÑ݃––ÖÁƒ÷ïß¿qãÆ}zèÐ!‚ JKKI’Ü¿ÿüÑæ&”ï¾ûnâĉùùù©©©Ë–-#I’ ˆ)S¦‚}ûö1iÒ$@°gÏ‚ ÊËËkkkµµµwïÞ]\\ü믿jhhÔÖÖÊ‹$I‰Dâìì¼gÏ’$W¬XáããÓâ”[„A½}–••µXíŸþ133#Ÿ'­333uuu8Бsoÿ,Ú<÷…qãÆ 6›Mñ­·Þº|ùrmm-Ñ*ž˜˜hbbò¢?¬ìæÔ yòy'U‰DB’dTT”­­­P(lsó~øAö’°µµm}i&Nœ8A&uÐ#FdffÞºuËÍÍmõêÕm.lçú¤(U4ê ÷îÝ«©©=2dÈÚµk©ÿš:uê›o¾™“““ššêëëK½¾­Êî³õyµÓ²ÂÃ몪öîÝKDEE΋(¸ÚE›+´y…·¸be¯vʲeË‚X·ntÉKß.\¸`gg§­­ºeË–ÜÜ\j…—6ÒŽ¼v]w(²¿îxœ •û®H¢Eàií¢-­¯g$hºD4UUUööö~~~ÒìããsðàAé ¿ýö[ûïMMMéééµµµb±øêÕ«Ò›Úĉ+++ÛÜ„âéé)íå@’$AÉÉÉ$I677·ø9++«²²RSSóû￯ªª’H$555b±XöX$IÞºuKCCƒzp¹sçA÷ïß—=å6Ÿ¨¨õeݼyÓ‚”éUøÓO?åçç¿ôÜÛ?‹6Ͻ; ꈩ©©ÔÂöß9Zï\vsiðuuuúúú $I¾óÎ;_}õÕ‹6çp8­/‰qqåÊ’$©¡¼YYY-b>v옛›[› É—Qª š Ùê‹_###êš››Y,–ôóüÉ“'ÝÜÜÚ\(»ÏÖçÕNË¢ž­¥'ˆ†ó" NÐ( ]´¹B›Wx‹+Vöj'IR"‘Œ7ŽÅb½÷Þ{²ñ·ÿF@’¤H$ºuëÖÚµk}}}Y,ÖáÇÉ4ÒŽ¼v]w(òã(îxœ •û®H¢Eàií¢-â \LLLf̘‘––6{öljÉãǤ+øùùµ¿--­ÌÌÌQ£Fmg¡ª@“¡HŸ]êêê¾üòËaÆ‘$ÉçóÅb±ôRtss{úôi› Û?¯vZu™IO GI( ]´¹B›W¸ìn[·¬Ã‡_¹råòåË</**J;ouuuG%¢oß¾+W®LMM]¾|ùÒ¥K[ŸÅ‹®¢—¾vjpàÞˆÇ Üe¡EPð´ Ší :ìØ±cøðá‹-¢–ØÙÙ¥¤¤HWHKKk “&MZ²dIrròÎ;©…çÏŸ5jTûRkê®]UUuëÖ­—FÛÐÐ ‘H"##+++§M›Æår+++e%‹;öÃ?Ô<·páÂcÇŽ‘­²ø²¦Núí·ßJ«¸O™2åÈ‘#›6mš2eŠìjL&óÀ7nÜøå—_Ú9÷ŽhóܧNºvíZÙbòuuuß}÷ôìdŸÉd‘$¹k×®1cÆ´³ó67Ÿ2e Ç;}útPPônÞzs''§Ž\m¢¦rùAdffRo-/Z¨*ÐdZÐÓÓ›>}zAAAii)›Íf±X?¦þ+''ÇÎῄíŸW;-«Å£ †£Ð.Ú\¡Í+\v·-ZVQQÑüùó·lÙ2hРo¾ùfæÌ™Ò²2í¼$ùî»ïJgãf0#GŽlsrÖ]E/}íÔà2À½‘ÀãîŠ2Ð"ZÀÓ‹6WÆvñ’>7ðZ:2ÄI,>üÛo¿­¬¬´¶¶>}ú4I’6l°²²:uêTqqñ¹sç^:D¶ªªŠÁ`œ;w®®®ŽúF199ù½÷Þ+,,¤ŽÒb“ššjùüùóÃÃÃsssSRRúöí;wî\ò¿½ [ÿÜÐР££ÃãñÊÊÊ~ù円ÙcÅÅűX,Ù~zIIIÄóžœ-â‘zö왇‡ÇСCÏŸ?Ÿ‘‘±|ùr‚ ¬¬¬šššÈVwíÚEÝ"_tî/=‹;ÆàÁƒÏ;—™™yòäIŸ7Þx£±±±EÌ„ÌüW®\7nœ½½}uuõ‹þ°²›ËþL-sww—íZÙzóŸ~úIö’pqq¡ö°wï^éA[Ÿ&u ¡C‡fee%$$¸»»¯ZµªÍ…/¼@ŸSž!Nh2ÒSW`qqq^^Þ¢E‹zôèAu‡~÷Ýwß|óÍÇß¿ßÇLJz}[/”Ýgëóz¥–…†Ó&EqRL»hs…6¯pÙ†#»‰D6xð`êZmnnöóó£ò/äËÞ>üðC‡“““sãÆ~ýú}þùçdé‹^;Å\ Ð{#Ê|W$Ñ"ð´€vÑÔ PŽ$h¶oßîïïOM2ú×_ÙØØTVV677¯]»ÖÙÙÙÀÀ ÿþþùgûï$IþðÃfff=zôعsç”)SLMMG-=ŠtM¡P8pà@j¹@ øøãMMMÍÍÍg̘QWWGvàY䨱c®®®ZZZžžžQQQÍÍͲǚ9sæˆ#dÏQ"‘¸ºº~ùå—­ã‘U[[»hÑ"___WW×+V E(,{Ñ›šr%’¹®{’W«©©©©©©‘Ë®@u!I -Ôƒ$IºcPIÕÕõééÅ%ééEgd L&ÃÁÁÜÛÛÖËËÆÓÓÆÛÛÖÁÁœÅêîc *¿ûîì©SÉÞÞ¶«V8Ð]Ž;/)y¸úĉ¹ýû»vrWÅÅÕ7ž9yòާ§Í×_s‡ ñ”K„¯-3³äë¯ÿºy3kÒ¤>_Í53Ó—ËnI’ts[¶aÃÄÉ“û´þ߆†æÁƒ7yxXÿþûtÊ=h:¤¼¼6=½(#£$5µ 3“Ÿ›[&42 ww¶‡‡õ Aœ¹sßäp¬íìL54º{:FŸ/غõüÑ£·ÝÝÙGŽÌ áÈýÖÖÆFF:YYüÎ'hllL¶m›º`AèæÍç¦Ný¥W/‡¯¿æöë×Ùݼ†ŠŠÚ5k¢Nž¼Ó»·óÅ‹‹½½må¸sƒacc\XXÕæÿêêjíÛ÷1—ûÓöíÏŸ?\ŽÇ€v AÐ’$óò*îßš‘Q’‘QòðaQ~~…X,ÑÖÖàp¬½½mÇôö¶ñô´µ²2¤;X%%4nß~iÿþëFF:6„¿óNß®K]¹ºZeeñ帷={>LNÎ[¿>úí·w„„pV¯ïåe#¯ý´O,–8¿uëí¦…†útÅQlmM‹Šª_ô¿~~=V¬à®[wº_?—>}1À   ‚‹%99¥÷ï?¥þ¥¥Rd̼¼lÇëååeãåeëìlñJ/ÕÜ,Ú»÷êÎqb±xáŸ|¢«Ûµ•’ÝÝÙrLÐPOœ˜{ýzæêÕQ¡¡[Þ~;hÅŠ06ÛX¾Gh!!áñŠ'³²øóæ½9{ö0=½®j;vv&í$h‚˜>}Ð?ÿdÏžýGlìby ­€v  tSB¡83³„JǤ¦>MO/ª¯oÖÔdyzÚøúÚûúÚúøØy{ÛhÓ©*!I’ÇKÚ²å\iiÍôéƒçÌjjªˆÏu?ÿü÷þýñwî|Ó;—HÈ3gR¾ýötEEÝ'Ÿ„Ì›7ÜÈH§+Ý\QQõš5Q11)Æy®];ÁÙÙ²K÷ý÷磣ï]½º¬už=« ýÅh=h » IòÉ“ò»wóîÝ+¸w/ÿÁƒ§MM"##]__»À@Ç÷ßàëkçîÎÖÔdÑ©ªºq#{ýúèÔÔ‚wßí·`A¨©ÂíæÆ..®»"uÂd2¸Ü€áý÷￾}ûßþykΜ¡Ó§ÖÒÂý䣹Y´}û¥]»â,, ìª1M-ØÚ¾¤ AÆÆzÛ·¿ñó¯¿^ÿôÓA ˆ  ;à Pg|þ3*s÷nþ½{ùAƒ¾¾vÏžö½{;MŸ>8  ‡ƒƒ9Ý1ªƒ´´ÂµkO_¿ž9p çÌ™/üý{(8ww6A99¥½z9tÑ!tuµ>ûìÍ©Sûÿüóåï¿?ðà Bß}·“‰nÐ)—/§¯ZõŸ/øâ‹Ó¦ ÒÑÑTÌqíìLëêšž=«76Ökgµ¾}].ùí·§{õr rTLl݆8Zin¥¦$%å%%=¹{7¿¸¸šµÔ«—C@€ƒ¿¿‡ÃF9ÊϯX¿>æÌ™ooÛ•+ÇvÅ$M!I\]—~ÿýäˆˆÞ 8\QQõÿþwñȑ۾¾v+Vpå;k8tùù+Wþ›üÕWcllLyôÌÌ’!C¾ûûï¥/-€-K""vVW×_¸°} º4 òøügII¹Ô¿û÷Ÿ67‹¬­ûôq vêÕËÁ××^[=ÅäïÙ³úï¿¿ðûï7lmM–/ ó§·DÅÈ‘[û÷w]½z¼ÂŽ˜‘Q²aCLllZHgåʱ¾¾v ;4¨ºÆFáÏ?ÿýóÏ—Í¿ýömZr|µ={®äñ>0Àí¥+ççW¼ùæ–iÓB–-£€Øº'|pÕ#KÒÓ‹ß¹“›˜øäéÓ*‹ÉáX÷íëüñÇûôq±·W\õ“n¨©I´oßÕ;.kj2ׯŸ8yreøRÝÇÇ.-­P‘Gôð°þí·O¯_Ï\·.zÔ¨­cÆø¯X†AsðR‘‘‰›6­­m\¾<ìÃß «ùé2ŒgÏ:²²ƒƒùÚµã—,9>t¨Wß¾˜u K AªA$’¤¤ܾsëVNBÂc QOO«W/‡ˆˆÞÁÁÎÁÁN††˜X§Ë‰Å’#Gnÿï++ë>ûlجYCõõ•e–+Ûóçï+þ¸!!œóçÆÄ¤lÜx&$dãäÉ}¾ür´¹¹â#å—‘Q²råÉ7²'N Z±‚ËfÑŒ¦&KOOK èP‚† ˆ)Sú=›úùç^º´Dy>€:A‚”WS“èîݼþɹ}ûqRÒ“úúf##¾}]çÏíÛ×Õß¿‡†ªÉ(Ntô½­[/ää”N™Òwá‘ÖÖÆtGô>>vÕÕõ……UŠœ=ŠÂ`0¸Ü€Q£z;–°e˹è蔹s‡)²Ú+(¿ššÆÍ›Ïýþû wwö‰ŸõëçJwDAFFºìACÙ´)bذÍ?þxñ믹]@·… (ŒŒ’ë×3/^|˜ø¤©IdnnЧó²ecúõsõò²A‰_ÅKM-X·.&>>“Ë Ø»÷#jÊ$eãímË`0ÒÒ Ÿ ¡hj²Þ{¯ÿ„ ÆÿôSìþýñ_|1bÊ”¾¸b»9’$y¼¤ b„Bñ÷ßOž81Xyfþ21Ñíx‚ ììL×®°xñ1.7@ñ“µ¨= ¥P\\}íZf||V||&Ÿ/03Ó8н·~ý\96½Õg»³ÜÜòÏÄĤôéãüõ×c•|’Ý~ýÖMšÔ{á‘tBðù϶n½pôèm«E‹Fr¹tGô¸{7ÅŠ÷ï?ý裋41ioBkÅ›0a»Ýºuo¿ÒV~¸¯  3:È4@›ââê¿ÿN¿~=óöíœÒÒCC!C¦;eg—nÙr.&&%(ÈiåJnïÞÎtGŠSQQ»fMÔÉ“wÖ¯»gO{º#jÃGýjd¤³mÛÔWÚêéÓª!C6Í›7|Á‚Ð.  {Â'P´´´ÂK—^º”vï^X,ñô´?>pÐ ~ý\õô´èŽˆÚÚ¦Ÿ~Š=x0ÞÀ@{ýú‰ï¼ÓWUjýx{Û8‘DwÿÏÍÍjÏž““óÖ­‹?~{X˜ÿW_qr² ;.èZb±äÀø­[/hi±~üqJxx°Òö46Ö­®®Õ­ìíM?ÿ|Ä÷ߟ3ÆßÍͪ+èžÐƒ¡¡¡9>>ëÒ¥‡—.=,.®62Ò<ØsØ0¯!C<éÇd‰D’£GooÝz¡¡¡iÞ¼á¢Z)³óçïúéôô J8¥×õ뙫WŸÊÎ.<¹ÏâÅoYYÒt‰ÄÄ'+VœÈÈ(™1cȼyoéÒÉc‘ IDATQ{V­ú+5õé©Só^uC¡P<|øgg˃§uE`ÝzÐ@ÊÈ(¹t)íâÅ´ää<‰„ìÙÓþÝwû††úøúÚ+O™L ‚$ɘ˜”Í›ÏTNŸ>xΜ¡¦¦útõÊ‚ƒ%òîݼAƒ<莥¥Nlì’'’6l8sòä?Y° ÔÀs«ÒÒšuëNŸ8qgÐ ÎåËK]]U k‰žžVmmãkl¨©ÉZ»v”)»¯]ËPÂæ ¢ ùËÍ-޾}ïÁƒBMMVß¾®+WŽ õvv¶¤;4hí[9ë×G''çOœtäÈ,{{zfAê< {{ÓädeLÐÁd2""z‡…ùïß}ûöKGÞ^° ô£ªÊ2x¡P¼m[ì®]qffúN õ¡;¢ŽÒÔd‰D’×Ûvð`1cü—-ã]¹ò¥–ž%äU 7Ož”EG§ÄÄÜ{ð ÐÜÜ`ôh¿E‹F ঄ãM€’ž^¼zõ©ë×3t?{ö 5˜770ÐñîÝ|º£h®®ÖgŸ½ùî»ývîŒ[·.ú·ßn,]úVX˜¿Ò–)öÅÅ=Z¹òdaaÕܹoΙ3LWW•Fjh°„Bñko¾fÍøû÷ÇÏš5D~At_HÐ@g%$<ŽŽN‰MËϯpr²˜81hûö÷<<¬éŽ ÚÃç ¶n=ôèm›cÇf«Ä$MÑ«—ãŽÓÅË™šê¯XöÑGoüôSììÙ¿ïÙã°b·Wºã‚WPPPùõ×'ccÓ†÷>th†*–ÖÔd‰D¯Ÿ ±µ5™5kÈ?œŸ0!ÕÄ: xM|¾à¯¿’y¼Ä‡‹,, Fö èßß•ÅÂx ¥&4nß~iÿþë––†?ÿüþ˜1þêT(0б¢¢6?¿ÂÁAfj·³3ݼyÒ'Ÿ„lØ3qâŽÎêÕã¼¼léŽ ^¢©I´cÇ¥Ÿ¾ÌfýöÛ§*4¦©…Nö !böìaþyk׮˫W—WTÝ4ðj…çÏßçñ’®^ÍÐ××3&`õêñÈ˨„æfÑÞ½WwîŒc2kÖŒŸ<¹¦&‹î äÌϯ‡¦&ëîÝ|•HÐP<=m~ÿ}úõë™ëÖE‡†~ÿöÛA+V„±ÙÆtÇm‹ŒLÜ´é¬@а|y؇¾¡ÒˆÉdtr"Gí… G~ýõÉO> Q¡F œ0Í6tˆH$‰‹Kçñ’.^|Àb1Gö‹ˆè=`€ò2*$I/iË–sååµÓ¦ š;w˜±±ÝAu•Q£~èÛ×eÍÕû>ŸšKkƘÒÒšO> ™7o¸‘ê7)‘ŒŒ’•+OÆÇg…‡/_fm­òI´Ý»¯ìÛw5)é›ÎìD(¼©·­['Ë+0€î =hà%JJž>ü—”—Wä´jÕ¸qãz™™©ÞÌÝV||ÖúõÑN™Ò÷‹/FØØ˜ÐQ× tHNÎ¥;Š×Á`0¸Ü€Q£z;–°yóÙ?ÿ¼5gÎÐéÓcŠÚÕÔ4nÞ|î÷ßo¸ºZEF~öÆntG$b±XC£³=€45Y‹üüó#³gusSÉÅ”žû¡m$IÞ¸‘uðà‹XZ½ûn߉ƒU± fw––V¸víéë×3¹Ü€mÛ¦º»³éŽHüýŽM Å*:öDS“õÞ{ý'Lܽ;nëÖ ÞX° ôÝwû©S© Bõ>Û°!¦¡¡yåʱj6-ºH$‘K/È ‚víŠûᇠ;w¾ßù½t[êó  òR^^»uëùÀÀ5ï¾»‡Åb><31qÕ¢E£Q!ùù3gþ6räÖ¦&Qtô‚={>ì&Ù‚ úöuilÞ»§Ô“m¿”¾¾ö¢E£nÞ\1t¨çòå¼1c~ŒÏ¢;¨nçáâ·ßÞñÅGBC}®][þ駃Ô);C„H$‘Ë1™Œùó‡GGßËÊâw~oÝzÐÀÿKM-øí·›§N%kiiLžÜûƒÞpq±¤;(x5µß}wöر{{³¦©îü2¯ÍÉÉÂÞÞôúõÌ޽鎥³¬­7ož4cÆ-[ÎMš´3$„³råX__;ºãR••u«WŸ:yòN@€Ã™3_øû÷ ;¢.!K:?ĉÂålÝzaçÎË?þ8E.;膠‚ ˆøø¬mÛbãã³üüz¬_ÿö¸q½tuµè ^MS“hß¾«;v\ÖÖf­_?Q-'iê ÜnÝÊ¡; ¹qs³Ú³çÃ3†¬[wzÔ¨­cÆø/_æèˆsº„X,9p þ‡.°XÌœ2qb°.«­m44”O!jƒ1}úà+N,[6s¼µê­ ¯Š$ÉØØ4.÷“&íd0‘‘Ÿ?¿ðwú";£ZÄbÉ¡Cÿ °~Û¶Ksç»yóë÷Þëßm³3A àž˜ø¤©IDw òäø×_󎙕•Å4hãÒ¥Ç+*jéJÝ$&>yë­Ö¬‰š818>þ«ˆˆÞjœ!¢¦¦ÑÐP[^{›4©·™™þþýñòÚ!@wƒ4ÝTs³è÷ßoþúëµÂªñã7ožìåeCwPð:¢£ïmÝz!7·|úôÁ³gÅ[A èÞÔ$JNÎëßß•îXä,$„sñââ£GooÝz>::eîÜaÓ¦ ÒÑѤ;.•WZZ³nÝé'î;?¿Ðǧ[Œ#«©i44Ô•×Þ´´4>úhàîÝWæÏ®¯/·¼@÷4ÝŽDB;–0lØæ5k¢zõr¼pañ¶mS‘QEIIOÆŽÝ6kÖï~~öññËW¬Cv†bkkâà`~óf6Ýt æ{ïõ¿ysÅܹöo¿ôÆúG,–Зª Å[·ž0`Ý͛ٻwpêÔ¼n’!þMÐÈgˆåý÷47‹"#“ä¸O€î=hº—k×2Ö®=•Å羇ÍÀÄL**7·|ãÆ311)¸ž9óy@€Ý)ÜnÝÊ&ˆ‘tÒUtuµ>ûìÍwßí·sgÜ×_ŸÜ»÷êâÅ£¸ÜºãR1qqV®úè 9î ›@šî")é —ûÓÔ©¿:ÞºõõwßE ;£ŠÊÊj–.=>xð¦ÇËŽù²3mzã ·¤¤ÜÆF!Ýt-SSý+Ââã—÷íë2{öïcÇnKHxLwPª¡  òÃ÷MºÇÑÑ<.îËE‹Fu·ì Aee5ææòÝç”)}=*¾{Wµç¹ 4ê/?¿bæÌßÆÛ®££qöì›7O²±1¡;(xeµµMë×Ç °þÚµÌ;Þ»paQH‡î ”×€nTºQ{{ÓÍ›'9ó…ŽŽÆ„ ;fÎü-7·œî ”WS“hëÖóƒozô¨ø·ß>=|x¦‹‹%ÝAÑ€$I>_`ee$ßÝ8x{Û9rK¾»è QgB¡xÇŽ¿‡ Û|ÿþÓÝ»?8~|NÏžöt¯L$’ìÛw­ÿu‡ýóå—£¯_ÿŠË PïÉe:ÏÆÆÄÉÉâŸÔ³ M›üý{?>çèÑYOž” ¼iéÒ㥥5t¥t"#ßxcýŽöÙ°«W—…†úÐmª«ë…B1›-ç A“'÷‰Šº[_ß,÷=¨7$hÔÖÝ»ù£Fý°uëùùóC¯^]Æå0øH¯bH’ŒŽ¾7tèw6ļóNß[·V|úé î<ö+éßßíÊ• º£P´Îùó‹vìxïúõÌÖ­_SSÓHwPŠÓNN*3³dÒ¤] üäDiêæ³_ñù‚ º"A3aBPc£ðܹT¹ï@½!A£†š›Ek×Fq¹ÿ33Ó»|yéüùÃñ‘þÿÚ»ï°(®¶À³»,éÒ¤ƒ(ÝBì£F슊»‰o4Å5ÑMÓ£16|Õ(‚±7 TŠˆôÞ« [çûcÞì·e¥îì.¿ûòʵ3ç<3gfã<œ¢˜xË—‡ðx©?}ô(30ð—•+ûû;üý÷¦Í›'öè¡-ç•Ú˜1}ž?Ï-/ïv½H˜LF` WLÌçÛ¶M }ìï¿ãС@ú2O;vD&&æË9Â.údæÌßù|a“íµµ_|q> àDz2Ι38ð>fà"º2Acl¬;b„ëÅ‹ñ^2€jC‚FÕ¤¦–L˜°'$äï;¦Ÿ9³Òή;έ ø|á’%G/]J8zô~“¥¤íŸ6m¯¥¥áíÛë0mPû ƊŠzEw ô`³Yóæùß»÷ùœ9ƒ¾ýöÒÈ‘ßEFÆ“$)¹ONNÅѳgÿ¡sÖ<|˜¹vmhFFéáÃ÷ÄI’ ‹6lWhèã/¾˜tóæÚ!C0sÓÿUki©ëëkuEá&xܽ›Ú­zot4*åÔ©GãÆýÄd2®__³pá`ŒiRX$I~üñ_÷î¥ñÓO×9œj{i)gõê“?46ò/^\}àÀûÎÎæ´FªÄ´µÕýýnß~Iw têÑC{óæ‰ÿ½ÉßßaåÊã'þüða¦ø§;v\b0§qúô½T %õêUñüù’$I’Ä®]— ª ‚HI)š>ý÷O>95t¨Ó½{Ÿcx`™™å&]ô¿‰±cÝE"Q·M´4*‚Ïnܶví™%K†]¾ü©““Ý,6„EFÆ …"‚ ù{öÜàp©Ešââröï_páÂ*??;ºÃTzcÆô‰Ž~Õ|ÌKwcaaðý÷³îÜYoeÕsúô½AAûSRŠbc³¯\ID"‘¨¬¬60ð—ŠŠ:º#mÊʺàà?y·nuëihš‰Èëד¢éä#(66kõ꿚$Ö¾}wÎ{*™f¢…d^^Eóé·A,/¯’Ïvi‚ÆÑÑÔÈH÷ñ㬮«@Å A£Ä’“ ƒ‚ö»¸˜‡‡ÿÇÄDîpà-¢£_ýç?Ç[SÈd2¿þú¢|#êFî“‘Q¦«u¢°°'ùùURÇ· …¢K—â7o—TmuíZÒ7ßD¶”K‰Èï¾»\ZúZÎQ)‹øø)ŠîßOô(SêO¡Ý °34Ôéæk9Iâr»v]5ítòÿD"òر‡DË/¦¶{õªø?ÿ9Ѽ¤†þ÷ß_“[HÊ%>>ÏÍÍ¢«g‡ñóëýä zд4J©ºº~Þ¼?­­{þ÷¿ËQ|yy•³fíãrÍû,0„º:K¼ÒíDË;8UÇb1‡uÂ('± žUW×I uu5KjŽƒÜ¾ýbxxœ¼ƒkŠŠº¹sðxM(†¦&›Åb¡©Éöõí½lÙð¡C0¾Tññù^^6]]Kÿþvååµ¹¹•]]€jÀt¤ÊG(-]z”Ëœ=»TK ÙEW^^;}úïUUõ$I°XL6›E­Ìd2,,z¸ºZ¸¸X8:š:;›;:šéëkÒ¯ 7®ßªU'+*êŒu鎅~AA¦MóÍÎ.OK+ÍÈ(MM-IM-ÉÌ,£#WWWc2|’$?ýô”ö˜1}èù_¸\ÁüùKJ^3 MM6õ4ih°ûôéåímãéiíáaíèhJej@*>_˜””<¨«+òð°b±˜II¶¶F]]€ @‚FùìÙs#!!ÿÒ¥OÌÌôeì&î”4b0ØFF3ÙlS‚ …ÂÚÆÆr R ¨¢þ â´B‡(ZŸ…€w6›uíZÒ¼yþ,*99¹¼¼¼S¢¢®.áå¥îåeC6"Y^þ¦°°–ú“›Ë).®ãñ„K—ùâ‹!tû?$IîÛ÷,!¡€ÅbØØôpr2´³3°³3°´Ôû§+P}qñ«ââW4ÚúôécjjÚ)Eed”r¹«N)M--u ‹˜  • Q211©?ÿ|cÏž9®®oÝùÓO?õ÷ïè)tDF§¶–on®ejªÕÂX•òðáÃ={öÐES::£F¹]º”Ðñ AúúúÖÖÖ/Gñ¿Îή¬¨¨ïÓ§‚$|33+Fê÷ñÇïÚÛwõü) %9¹3—Šð C__K> ÿÙØååaˆ@« A£Ljk?ùäÔ¸qýfÎìßšý 4sæÌ®Ž @LÑúΈz­Zu¢²²ÎȨ££œ444LLºpqbÅabbâááHwÿbbb2hÝQ(½Û·S†w‘Ï(0këžyyUr¨@`”¾2Ù½û:'øá‡Yt dFrc±˜˜* ±‘ÿðaÆðá.ò©=hZ ¥ñòeÑ¡C1_|1ÉÐP‡îX”Œžžæ˜1îáá±t@³Ç³¸\ÁÈ‘®ò©ÎÊʰ¨¨FaûÖ($h”ÆÎ—úöµlåà&hbÖ¬þdâ—ùÐÍÅĤÚÛ›XXÈiâçž=uyÕ(5$h”CBBþíÛ)Ÿþ“©Su(‘#ÝŒuÏŸFw tºq#9 À]nÕéè¨Q_Ï•[Ê å°wïmëaÃä4k€êQScz9ƒQNÐ}={–›™Y6c†ŸÜjÔÔdÑØˆ4o‡(/¯½v-iÉ’¡t‘‘A-²Ûüƒ yyy‹-jÍžGÕ%þë×_Í`0víÚÕ‘2;¥&d_Ó§O3¤‰ïÄ FFFF'¨DfÌðËÎ.þ<î@þOVgÁ“ÕJçÎ=uq1ww·”["I„‚,Ó à Q—.Åkj²'Nô¤+ƒ 6´õ¨ .L™2E|lVV–±±qD÷ÿuQŸI’<}ú´Mhhh» ”ZHÇOAö•œy²·<+¥¦f± x;$h”ÀÕ«I£G»ii©Ó€±±q;~Ý}ãÆ±cÇŠ‰D••]5?+Uõ9)))%%åðáÃñññiiií+Pj!?ÙWRKKËÜÜÜÜÜÜÄÄ„ ó°ÙìŽT b cÁ‚Ááá±oÞð莅 ðdáÉ’¯{÷Òªªê§Nõ•g¥uu\‚ tt4åY)€’B‚FÑ56ò?Îz÷Ý~^òÅ‹---««« ‚8uꔳ³s}}½H$Ú»w¯›››žžž¿¿TTÕo_FõK—.y{{kkk[XXˆß‘***ttt´´´ÄÇ4ˆ sssj>Ÿ¿nÝ:333SSÓuëÖñù|‚  Æ‘#GÜÜÜLLLvíÚuüøq;;»=z|ñÅÔQ‘‘‘šššöööÇoRõ×Ó§O>|̘1®®®’¿¥g0'OžtssëÙ³ç÷ßOÄêÕ«—,YBý´®®N[[ûùóç2 ir 555 .466¶²²Z»vmccã[OA|5ÁÖ­[mllLLL,XPSS#£¥¤ÆIáââbjjºzõj.—ÛÒ…mâÆŽŽŽ†††;wîGÕ¤¨–ÊWv3gúq¹‚ÈÈÎÛÒž,cÇŽMKK{ôè‘££#€Ô ÛäÆ˜8q"‡Ã9{ö¬dTMŠj©|Ù¨Wî·îF¯?üïĉ?·ïØ/^¼xñâ­»áÉ“չOVTTTiié[w“!;»ÜÒòÓ‹Ÿw¤v8xð®§çr®@I)ú«ìßåáÑžݶ&AS]]meeåáá!~Cpww ïpìØ1Ù¯‘\.7%%¥®®N(Þ½{—Ú™$ÉéÓ§WUUI=„âêêZ\\L}¾yó¦——ó³gÏH’äñxM>§§§WUU±Ùìü±ººZ$ÕÖÖ …BɺH’|ô葚šZEEI’OŸ>%"))I|A¢¢¢$ æææ·oß&Ir„ »ví’]ˆä)ðx<‹%~W?w£ã[OA\‚‹‹Ë¹sç¨c_¾|)þLir­¤ÆI퓘˜HíJ õÂJ""::š$I¡P(U“¢Z*_6¥HÐÜ¿ŸnañIJJQ;Žme‚Ož¬Î}²:ž Ù´)Ü߇@ ìH!í°yóÙI“~‘s¥J Cœ]nn…££in``°|ùòäää?üÚ’••ååå%ÞÁÃÃCv êêêiiiãÆóõõ ¡6ÖÕÕñù|CCCæääXXXPk©dggSÛõôô‚ æ†üL„¡¡aTTÔ£G¬¬¬†~ïÞ=&“Ù¤®Ó§O cccƒáëëK„äXŒ^½zIÈb±¦M›vîÜ¹ŠŠŠ[·n·¦Jii©P(tpp þêèèXPPðÖSËÍÍurr¢>»¹¹M:UƵj)N‚ Ä…¸ººR´ta%Q×Éü×ãß¼¨–6*;‡Þ½ØuUàÉ“%£¨–6vªªúÓ§Ÿ,]:ŒÅ’÷ÿôss+z÷îªI¬T 4Š®¬Œcb¢ßE…çççïÝ»w̘1kÖ¬¡¶XZZ&$$ˆwHNN–]BCCìY³Ö­[÷ìÙ³}ûöQ¯]»6nÜ8ÙS=H’¬®®~ôèÑ[£mhh‰DaaaUUUK–, ¬ªª’¬K(†††îÞ½»öŸ}öÕˆÚ¡É‹A3gÎ<þü™3g† B:yk!333‹•••Eý533ÓÒ² +×öêÕ+''‡úÿÍ7ßÈÞ¿yœê·ñA¤¥¥Q/‡­¹°Rç=i^TK•“ÉX¶løéÓ««ë»¨ ú(77WöþÍã¤|üñDZ±±›6mš7oÑÂ…=tèÐëׯeWѼ¨–6ª€Y³ú³Ù¬S§wEáx²Ÿ?dÈ]]]j;‡ÃY´h‘¡¡¡‘‘ÑòåËëë멘ſ£–ú944ÔÁÁŽ šâ IDATA]]ÝÕÕ5""‚ÇãIÖµbÅŠ±cÇJž£H$rppذaƒŒÂ?øà---‡óÖBšœBUUÕüùóŒŒ,,,>ýôÓ†††·ž‚øj466®]»¶W¯^=zô˜3gNuuµdMfÊ'µÏ¡C‡lmmW­ZEÐŽ +µ¨–Ê—M)æ ¡lÛvÁÏï+>¿mSr´f͹{7•î@T ž,EÉóÉzü8ë楀 &Èñ&‚ ¢£S«ªêÇï'ÿª”†8)ºãÇìØùêÕ·Rב¡S†8´‰ q¢Ìšµ_(ž=ûQ+÷ï¬!NmÒŽ!Nµµ?º¹Y=º¤ë“aÑ¢ÃoÞðBC1¾  µÐƒFÑyxX×Ö6¦¥•Ò€ Z½zÌÇ™OždÑ@'Û¸1L(ýòË\Zj/(¨¾s'%(ˆ†…½”4Š®_?«=´ïßO£;4dˆ“ŸŸÝÞ½·é 3?ÿ,"âùž=³õõµh `ß¾Û––†“'{ÓR;€’B‚FÑ1™Œícb è~8òöí”””"ºè%%¯·l9÷þûC† q¦%€ÒÒס¡±Ë– §eîå…<)©S}¢¢RÊÊjé@ßÏ×·÷×_GÒ@'hlä/ZtØØX÷‹/éŠáÛo/ëÎKÃÒQJ %஡Á¾t)žî@TÓæÍ££_a !(;’$?ù䯜œÊ£G—hj²i‰áٳܳgã¶l ÔÐP£%å…ÐÖVŸ1ÃïС¡PDw,*hà@ûѣݾýö²­?ÐÜ·ß^¾z5éàÁ÷ííMh  ±‘ÿé§§† s ô¢%¥†e¶•CqqÍ A;~úiöŒ~­<¤­Ër+8&S[[Û]Cö²ò,AtíMËbõ B(|Ý¥µ´€ad4‹Ï/jhHãó•ué.eüVILÌ?~OHÈ’€YKh'''———Ë-*1ÙËl“$¹oß]»®ìÛ7ŸÆäÈÖ­Μ‰ŠZonÞƒ®”z + ƒÉ“½ûíÖäÉÞl6«5‡œ9s¦«£’ÌLÎýû% •l6ÓÏÏ$0pº¦f«®@»…„¤±p! ókòx¢7 ž?¯¨¨ð56Öôö6òñ1îÕKGþ‘t7Ö'znÝzaØ0C3¬­­e¼$t}}}©ÛËÊj##Ÿ‡…ŽxQ°sç ³3/>?t(æ÷ßç!;Ð>èA£4Š‹k†ݹf͸?Iw,òPUUêÔ£“'åäT ênÓ™ø|á¨Qß[[÷üë¯tÇÝ]uu}BB~BB~||^BB~IÉk55¦‹‹Å;ï8â4p ƒ¾> _Íef–í·±1:yr¹––:Ýá(1$h”Lbb~`à/;vL›?ÿºcé4))ÅGÞ‹ˆxÞØÈŸ<Ù{éÒaôöQÌ E$"ãâ²##"#Ÿ—•ÕR™šéÓýz÷6¦;4“:{öÇŽ-•=[0@§«ªªON.LJ*HLÌÏÏË«$ÂÚº§··­··——‡‡•¢e@óƒƒÿ´±éºRWWƒîp”4Êç›o.…„ÜŒüØÕ•¶é:Ÿ/¼páÙáÃ÷ó­­{.XðάYLLôèŽK¡4bâLMDÄ³ŠŠ:*S3cF[[#ºCSz ÌÌ,¿sg½ŒÙ‚:ˆ$ɼ¼ª/ ’“‹’“ _¼(,.®!ÂÐPÇËËÚÛÛÖËËÆËËF‘´ÆÄ¤.[âéi}äÈdg: åÃç çÌù#/¯òÚµ5={*åú>ÕÇŽýö¤²²~Âyóüvb2e]p¥HЈ …¢§OsÂÃã.^|^WÇõõíèèef&}Íx«ÂÂêQ£¾Ÿ?ÿ-[éŽTŸ/LM-¡r1ÉÉ…/_r8AØÚ¹»[º»[öíkéînÙ«—Ý‘¶ÊŸÞݱãâ”)>?þ$ŸéÛT4J©´”3nÜn«Ã‡«©)ÍŒŒB¡èÊ•Ä'þýwº¡¡ÎìÙƒƒ)àØåJЈñx‚»wS##ã¯]Kzó†Gej¦LñQäßÀ+¬°°ØO?=þŸAƒèŽ”’HDæåU¦¤§¦¿zU’šZœ•UÎç Ùl–³³9•‹¡þ(ÈT2­Çá4~þyØ… Ï7l˜°jÕhCQrëÊ eõôiÎŒ¿OŸî÷ãAtÇòv4®™ÝJš ãr11©‘‘ñW®$r¹Û™3ûOšä­tïôZ²äHrrÑíÛëtt0vÞ®¨¨&5µ$%¥(-­äÕ«’ôôÒ†AÖÖ=Í\\,\\ÌÝÜz¹¸˜³Ù,ºƒm¿ØØì>:Áã ùeΰa.t‡ R Qbׯ¿X¶ìèǬY3ŽîXZ$^3›ÍfÍž=pÁ‚wœœÌèê-”=A#ÖØÈ¿w/-<<îÚµ$ƒ1|¸ËĉžãÇ{`¶ˆÖ(-åŒùÝŒ~Û·O¥;P,Ôô1ii%‰‰ùii¥©©%ÙÙå|¾Åb:8˜º¸˜;;›9;›;;›ÛÛ›(u:FŸ/ܾýâ‘#÷¦MóýöÛé´,± Ú Qn§O?^³&tëÖÉË—§;–©¯çž?ÿŒZ3»OŸ^ ™2ÅGYò*“ ãp®_qéRBtô+&“1l˜Ëĉž&x oˆlýõhư³gÿ3`€=ݱJK9‰‰ùii%©©%ii¥ÙÙåµµL&ÃÑÑLUÓ1M$'nÜöòeñ¶m“Ui A…‚Òûë¯Gëןùì³w?ûì]ºc!‰5³ù|áŒ~óæùÓ»fv;¨^‚F¬¦æÍ͛ɗ.%DE¥¨©±†už1ÃO‘‡›Ñ‹$É… ¿xQxëÖZCC¥œÚZî:5µDœ‘yýú ƒÁ°±éI%bœÍ\\ÌíìLºC/’ÚÚÆ~¸zôè}_ßÞ?þäèhJwD* UpøpÌ—_^øè£Ñ7N k¾FÉ5³mlŒæÏ÷ ¨¤ÓÓªp‚F¬ººþòåݰظ¸==ͱcݽFŒpUÕßÿ·‡Ó𣃃éÉ“Ë1ªJâó…™™eéé¥T:&%¥8'§B(éêj89™¹ºörv6suµpq177ïAw°r%‘GŽÜÛ½ûº¶¶úÎ3ÜéŽ@Å!A£"Žû{Ë–s“&yíÙ3Gν!òó«þûßgÎ<©®®?^áÖÌn‡î +.®¹|9122>..G__+  O` ×È‘nJ´:XW{þ}zíÜ9Ó×ז $hTJjjÉüù²XÌ“'WØÛ›tQ-••u§O?>yòQnnå!Nóæù×O•†ÆtÏX^^eddü™3±éé¥&xzöïo×{…¢™3÷••q®__ƒ™•Sc#_¦Gô‘"'§bçÎË—/'¸ºZlÝ:yèPgº#è^ Q5……Õ ¬ªª?~|yß¾–[¸xÍl--õyóügÏàà ‚FvóXjjÉ¥Kñ.<ÏÌ,³´47®_` g·]Ϩ¸¸æÝw<ØiÿþtÇD]÷åËBj‰kªLaaµ@ RWWsuµ 1TF¦wo}}ÕŸÊ·ƒJK_ÿôÓõÐÐ'––†ŸþÞ{ïy¢ë€ü!A£‚jk—.=—óÍ7ÓfÏØñëë¹§N=>~üAzz©»»åûïž:ÕG…û AÓ•©9{öiNN…µuϱcûΚտ_?+ºã’·§Os§OßûÙgï®^=†îXº—ÜÜʆ)ýÿ²JAèêj¸¹õrq¡ºÆ˜;;›÷êe J½ùä ¤äõ¡C1Ç?`³Y}4fáÂÁššlºƒ覠QM$IîÛwg×®+î{öÌnwþ””¢£GïGD<DÓ§û*ãšÙí€MKRSKÂÃãÂÃãJK_;;›zN™â£’½¨ZrìØß›7Ÿ=vlÙèÑntÇ¢šZš8†©dccD̓‘J—–V²Ô¹sOŒt—.6þ;ÝaÕpE†*{ø0såÊãl6sÿþmšÜ”Ë„…Åž8ñ011ßÉÉlÙ²á“&yéëkuY¤Š ÙD"2..;22!2òyYY-•©™>ݯwocºC“‡µkC/_N¼zõÓnr¾]ŠÇdgWdf–ee•gf–ed”ed”Q½cÌÍ{89™9:š:9™;:š89™™™©Âä´#IòÖ­—{÷ÞŽÍöñ±ýøã€Ñ£û`@€"@‚FÅUVÖ}üñ_11©6LX¹rÔ[çyU½5³Û šV EOŸæDF&DD<«¨¨sv6Ÿ9Óoút?ÕXÌ«% ¼I“~e±˜«54交½²+)y‘Q–•Už•UF}Èϯ Eêêjöö&¦öö&ŽŽ¦NNf¦èÍÑé¸\Add|HÈýgÏr´_¹rÔ˜1}ºóäߊ Õ'Š~úéú¯¿Þ9Òõ»ïfõêe uñšÙææ=-2c†_·ý}54mEejÂÃã""ž××s}}{zMšämjªGwh]"/¯òÝwwíöÛoÁx¿•ª´ôuZZinn¥xߢ¢>_Èb1L©•­©aJ¶¶F©ÔÕrr*Žpúô“úzn` ×¢EC||°x6€ÂA‚¦»xô(ó³ÏNWVÖ}ù夹s‰ß*›¬™½té°Q£ÜX,&½ÑÒ švãñwï¦FFÆ_»–ôæ ÊÔL™âcl¬Kwhìñ㬠 ýË—ß´i"ݱЬ¡—ž^š›[™–VB%ers+©aJÆÆºnn½lm0‰/-ùááqÔ`Uggó¥K‡Mžì®I šn„Ïþùgô÷ß_õô´Ù½{vqq µf¶¶¶zp°ÿœ9ííMèŽQ! AÓqü{÷Ò"#ã¯\Iär>>¶3göŸ4É[•<Žˆx¾råñ;g,XðÝ±È I’yyU╨¤Li)‡ tQ(YYågÎ<9s&¶´”3t¨óÂ…ƒÜ»yæ@ñ!AÓí<}š³|yHI ‡$I__»åˇÛSiHB‚¦54ðnÝzýŠÁ` î2q¢çøñººª°Lû÷ß_ýý÷Û'N,:Ô™îX:_]÷åËBªS •”ÉÉ©àñA˜šê¹¸XPýb¨¤ ºÆ(‚ÚÚÆ‹ŸŸ9›mjª7}ºßܹƒºÕ:kJ šn„Z3ûÂ…gB!iggüêU±¿¿ÃÎ3ñÏ÷A‚¦+p8 ׯ¿¸t)!:ú“É6ÌeâDÏ÷ÞóÔÖV§;´ö‰ÈeËŽ>z”uùò'J½¨“P(ÊÈ(£&‹ùgâ˜Rj˜’††•‹A×…Åç ¯]K¢Ò êêjS§ú̘áççg×ÝæwPvHШ>É5³]\Ì—,F4yö,wóæ³/_-\8dÍšw»Ï*Úo…M—ª©ysófò¥K QQ)jj¬¡CgÌð7®Ÿ’ö¿hhàÍœ¹¯ªª>"bµ‰‰rLŠ\_ÏÍÊ*§þPK\ge•q8Ahk«S *9:š::šQŸ•:‰¦Úâãó"#ã#"žÕxxXõŸ2ÅÇÐP‡î¸ = Qeâ5³kjÞŒ×oÉ’¡Ø7ÙçæÍä-[ν~ݰjÕèåËG(éKrçB‚F>ªªê¯\I ‹‹ËÑÓÓ;Ö=0ÐkÄW¥» 9œÆéÓ÷ ÂóçW(V×>_˜Ÿ_•™Y–™Yž•U–]ž‘Q^Zúš ‹iiihoobooâèhæà`boobiiHwÈðv/_ED<ŒŒÏÉ©°µ5š4É{êTWW ºã€A‚FI®™maa°páà3ú›™é·´CïÈ‘{?ÿ|ÓÌLÿ«¯¦Ží&Ïh4rV\\sùrbdd|\\NZcÆô ô9ÒMMMiæ4--}=iÒ¯¦¦z¡¡+éêoÂå RS‹©ùbš Sb±˜VV†Ô:Jÿ¬©dffÖƒ–8¡ÝÒÒJ.^Œ¿xñyFF™¥¥a` ç¤IÞ^^6tÇ •RYYrÿäÉG¥¥œ1cú,]:lð`§VNC]¾m[Ä͛ɓ&y}þùD[[£®ŽVa!AC—‚‚êk×’"#ãcc³ uFv›9³ÿ!NâUáYNNÅäÉ¿zyÙ>¼¸«SKÍWSÊË«,*ªáó…APóÅ`qk•‘˜˜õjÒÕ«Iii%ff=&Nôœ<ÙË×··R<ÐzHШˆ{÷ÒNœxxíZ’žžæœ9ƒ‚ƒµoÊÒ;wR¶l9WXX=oÞ;Ÿ| ,sjt.$hh——WæLlzz©……Á„ žýûÛ)øi\\vPгfõß¹sF'Ëá4¾zU$u5% Sjî^qR3øª¡P›}õjÒÕ«‰ÕÖÖ=Çï7~¼Gÿþ˜ú@e!A£Üêë¹§N=þïÿÎÈ(:ÔyÞ<ÿwßí«®Þ¡5³E"òòå„;/V X¿~‚±±ng¬ Q©©%—.ÅŸ?ÿ,+«ÜÒÒpܸ~žÍ§RR×®%-[òÁ#7ožØŽÃxé饹¹•ii%TF&7·’¦¤¦Æ´·7'b¨¤ r1*¦±‘ÿ÷ß×®%]¿žTQQçâb>~¼Çøñýúõ³¢;4èrHÐ(+ñšÙ"9mšïüùïtî¿àù|ah蓟~ºVWÇ]¸pÈÇèêjtbùŠ DejΞ}š“Saccè5kV''3ºã’âÊ•Ä>8¶rå¨ß“±›HDæçW¥¥ýoŒ•”)-åÁ`0llzÚØ9;›SËZÛØa˜’ +,¬¾uëåíÛ/ÿþ;ƒËå{zZO˜à1~¼‡½½ Ý¡€ü A£dùááqÔšÙnn‹ <Ù[OO³‹ª«­m

ý¤gO?9ož¿–=ëÔt‘ªªúÚÚFñ_7o>GÄ7ßLoÑÓÓìÙS‡†È "—™ù¼¬¬–ÊÔLŸî×¾©—:WC/;»â?¢ÏžóõíÍb1²²ÊËËk‰V¶¦Ò1ŽŽ¦vv&öö&VV=1«H÷QXX“z÷nZLLjMÍÓ€€>£Fõ8Ð=¤º9$häšÙ––† ¼3kÖZæî­ªª?zôÞÁƒ1"‘((hàªUcLMUd á“'®[wFÆ?þ4wî ¹Å­'Šž>͉ŒL¸páYee³³ùÌ™~3føÉg é&Ó÷JN£¡¡f` SVÆ1Âuüø~’+[9roÈ'ggs9DŠ ®ŽûðaÆÝ»©wï¦ff–ii©¿óŽÃÈ‘n£F¹)BJ4ŠK¼fvyyí„ óæù·~Íì.êàÁ»GÞg0‹]ºt˜ t-yýúMß¾_…"©?USc%%mÇl¬ N(=x{ýú‹úz®¯oïÀ@¯I“¼;+XWÇÍÊ*“:}/‹Åtp0•\GÉÆÆÈÒÒPMùÇÑ_}qûö)K– £Ê9s&öÓOOßïСE(&@”““úìY.Ÿ/ts³1ÂuÄ×í»ÃXQh+$h‘xÍl}}­Ù³¶{Íì®Ãá49rïС˜ÆF~PÐÀåˇÛÚÑT‡,^|äÖ­d iŽFMÐ÷ða¼K+ .W“íZRCßÇÇ60ÐkÊŸÖ/Föæ /#ãÿ×´¦Ò1T.†ÉdX[·múÞ¢·o¿øÕWS–.výú‹%KŽˆD$ƒÁ¸zõS¹Rù ’2f>x›]_Ï54Ô:ÔyäH×#\äÓ« ”4rRXXŸ_5hƒŒ}^¿~sâÄÃÐÐ'¸fv—jhà…†Æþùgt~~Õ„ |0ÒÛÛFö!55o ±+Ê¥K |pL$jú80™ŒÞï=OZ¢‚Žhläß»—åJ"—+ðñ±9³ÿ¤IÞúúš’ûP‹(Q”¨t •‹/¥dkû¿tL»—Rúóϻ۶] '‰H’PSczyÙ^¼¸º3OèÐ<)Ó³§ÎÀöþþŽþþnn½hïöÊ yxõª8(h¿““Yxø¤îðòeQHÈý ž‘$1{öÀ ÞQÌõƒ[òäIÖï¿ß¹y3¹o_ËeˆOꫦƔºçÂ…‡­­ ·m›ÂbIß.\®ÀÝ}ó›7¼&ÛµµÕ““¿ÑÐPÜ4¼UCïÖ­—aa±ÑÑ©AÚÙ™P³8VVSݦ¨¾0âJÎÎævvÆ<žð·ßn­];®ã³·nØpæäÉÇ$IJ~円~8t¨sKùkläÇÆfÇĤݻ—öòe¡@ ²±16ÌyèPçìÐSÚ š.÷ðaæüù64𠂸wïs{{ñþ½fv¯E‹†L™â£««¬ ¬>~œµÔ­[ɦK– ›>Ý·Éb±eeµ¾¾ÛD"ш®þ¹PÑ–’ýøã“.<çó…â-jj¬iÓ|~þy.QA;ˆDd~~Õ?”þ×A¦¨¨†j\ 5OÈdöö¦ƒ;M™âíêj¡¯¯Õ¼œðð¸Õ«Oúùõ>thqGæ²yñ¢pÊ”_ù’]´X,¦««ùk ô°‡¼¼J›öÄlž”qv60ÀIè,HÐt­¿þz´aш I’Íf-X0øë¯§kf×ÕqgÌð›7Ï_ef£ÈÌ,;xðnxxœšsÆŒþ qt4¥~ôË/7úéº@ TSc™›÷8}úÉtí¢£_Íû'AH>ŒS§V îB[Lð6$IæåUI P*‘ÌÅèéiÚÙ™8;›IÎàÛ£‡vMÍ››7“/]JˆŠJa³ÕÆŒé3c†ßˆ®MzÊÿy÷î+&“©¯¯uôèâþýíÚaVVù{ïí©«k ›~Ù2ÄÁƒ‹&Lðh÷éCkäåUnÙr>?%³«zÊIDAT¿2*jC›¬«ãÆÇçÆÆæÄÆfS×zõ2 Æ. ä P__  éB?ýtm÷î’WX[[}×®™aa±ÿneÕsþ|ÿ  ­Ÿ»T‰p¹‚‹ŸÿñGTJJ±‡‡õ¼yþÓ¦ùº³¸¸†ÚÅbik³[*{^yD_ÔÔ¼o10ÐNJúZÑFc)¸ªªúÓ§¯\9ªÓK–ÌÅü³šRIqñkO@„ŽŽ†ƒƒ)µšµ³³¹8óÖh¯\I ‹‹ËÑÓÓ;Ö=0ЋÊÔTW×{x|I­íEM#òùçï­\9ªM^**ê&LØSTT#IY#ŒÉdØÛ›DGoÄ4%]„ËìÝ{ë×_oQ혖¶K[[]Æþ$Ife•?}šûôiN\\NZZ‰HD:8˜øúö4ÈÁßß¡#}pdC‚¦K…¢-[Îý÷¿7¹ºL&C]åçg·`ÁàwßíÛñ‰-œHDÞ¾ýòÈ‘{11i={êTVÖKöOa0,sÏžÙÓ§ûѤ¤Í›Ïž8ñê|¡®Î ~ç›o¦Ñ”Òàpÿü3zÿþ;\® #ã;MMvGJ++«MM-¦r1TR&'§‚Ãi BKKÝÉÉL›]¡¦Æ„Íw`2¿ü2WqU»}ûE§A“Iðùÿúf±˜ÞÞ¶ZOŸæVW×ëêjxyÙöïßÛǧ·¯¯­A‡z`t4©  zÖ¬}U2²3l6kêÔn·0ÐáÃ1_}!ã²°X̾}­Ž_FûŒ<;vD<Cä²e÷l ¤7EÆå º»wïúúÆ&-«®ÎZ¿~¢ECÒÓK©JTïq.†ÉdX[÷¤V³vq1§7#Õ±coÙrNr|“$*m·rå¨'´uŠ¢º:î… Ïö_Åd2„BƒÁÐ×׌ݪ¼+¸)’$ÃÃã¾úê"‡Ó u4A††:}|}{ûùõvv6ÇôR P é4ii%3gªoé¥NLCC-!áëÖOc¡FŽü.5µDö>TŠS§>èÝÛX>QI•’R4zôAܾ½ÞÍ­µƒtº@túôãŸ~º^QQ+’ÿ^÷Š ‚Åbjq8Ôô½úúš½{›ØÙÛÛ›ØÛ›ØÙ™ØÛ›(x‡…É“‰‹Ë•ýõÈd2ýüz<¸ÐĤÍ+póùÂË—öïJJ*`±˜B¡hÓ¦‰}4º!wk¯^oØ—C„ŒVc0))ßH]R€vÿJÐ$$$ЊRKN.ݺõv}=ÉdHÁb1ÔÕÕttØššlmmõ… ½½½{u°RO϶°hN>-ž‘Q¹jUd“ ƒÉd0Tg’ B¡H$"uuÕ¿újLŸ>¦r¬%‹Ÿe0‡czà¦D"2#ƒ¿{÷õüü*ÉA:ÍÙÚöüä“wíìŒííM›ôŠª©©ÉÍÍíú`Û¯ªªaþü3RäæLMu¿újtïÞ†í«+%¥ìܹäò´´ØÇŽÍÐÑÁ|´mÓÐÀ {–$£ƒž¤ï¾çáÑtþ [[Û.ˆ  þ5-euuµ¾¾¾†ºÙ·Mm-76¶hÚ´¾ZZlmm¶®®º–›ú£££®­ÍÖÖfwîØ .—Ëáp:^Ž|ZÜÚÚðСé<žÇr¹ê¿|¾ˆËðùâ-Bê³@ ºz5ÍÒÒÀȈ¶cÇ:3„š&mý—'OrËȨnÍÎõõü  RÄãñª««MLL:5ºÎ”—÷ÚÃüùºØššjZZM§Ib³™·og{µo€R¿~½úõëUVVwñbÊÍ›™3fôk_ÌÝVFF)›Í>ܾ  ¦°°¶®ŽKA0ÔÕ™ ÁåŠ${x©©133«}|¬$Kàp8xØ@4ýW©•••©)”Ô A>ò¬®¬¬ìåË—RZ¼¹+Ì‚ w¤•¢áó…ÅżáÃm r}ö,7-­T RiG©s?WVÖ54ð´´ZìâîîÞ…ávŒ»»ûûï¿+߉‘#ŠD$“‰I©Û¦ÉT[Û˜“S‘“SA­Ëž™Yš•UYQQKõöÈÒR^“C’““å1@ ðkC€¦šiŽÍfyxXª©½1bA|¾05µ$))?)©àÙ³ÜW¯Šy2<ž€Ê×ääT´´–í €6c³Y}ûZöík9gA„@ JO/MJ*HLÌ‹ËNM-árÙÙåHЀ"PWWsr2sr2£;Y €ŽRScº¹Y¸¹YÌšÕŸ ¡P”™Y¦©Ùtºh 4ÐÉX,¦³sÓ…r@&Ýtw]• ÉÈÈ`0R?È——·hÑ¢ÖìÙqT]A0ŒŒŒŒ®¨¢ëJî¶Ä­&[KwuøóçÏÕÔÔÂÂÂÄÛ#""ÔÕÕ“’’º"æ&z÷î½`Á‚òòrû“$9oÞ<]]Ý֗߭|Õ´õÚÊŸŒsiåÍ\__¿~ýzOOO]]ÝìܹS íºn i:ëLߪ»ÝØÐ uU‚ÆÀÀ`Æ m=êÂ… S¦L›••elÜUëéPuInéÒê S4o51Éækéö£÷ööÞ´iÓêÕ«kjj‚xýúõÊ•+·nÝÚ¯_¿®‹\ÒƒŠ‹‹ Ž=Êáp|||¨H¤***:yòdg­ª®z:òU£Ô×¶57smm­ŸŸßãÇwíÚõìÙ³7ž8qbìØ±B¡°}׺u%uîIáKº³®JÐïÚµ«­GݸqcìØ±âcE"QeeeD÷ÿuInéÒê S4o51Éækéö¾eËcccêuãÆëׯﲨ›211177·´´9räùóçííí÷ìÙÓÒÎ AØØØÈ-<åÒ‘¯¥¾¶­¹™·oßnbbrçÎñãÇ;;;O›6íÉ“'ÙÙÙ‡jßu£n]I{Rø€î¬m š‹/ZZZVWWqêÔ)ggçúúz‘H´wï^777===ÿ¨¨(ª/ºŒÞï—.]òööÖÖÖ¶°°¿$TTTèèèhii‰4hAâw>Ÿ¿nÝ:333SSÓuëÖñù|‚  Æ‘#GÜÜÜLLLvíÚuüøq;;»=z|ñÅÔQ‘‘‘šššöööÇoR—dTR]7nÜptt444ܹs'ñÏ ‚ˆˆSSÓÕ«Ws¹\©ÛÔ.]Gj‹Ò.u·oß¶±±‰ŽŽÞºu«‰‰É‚ ÄÝC¤^Òæ $¤Þü!$ÆeH6ŸÔÛO²ÑÕÕÕCBBŽ9²sçΣG†„„°Ùì–‚ìÄSkŽÁ`|ðÁ—/_n©œ&·ekÊTö»Ž×WMó{†jåû÷ïK=ð­óæó÷÷§²oUUUL&síÚµA…BCCCªÑkjj.\hllleeµvíÚÆÆÆ&‘P%“$¹víZ//¯ŠŠ ¢Õ7ó‰'¾üòK‹%¾ :::ëׯ?yòd;®[›«¥Löù:99w{*pcÈBJˆŠŠ*--%eZ°`Áûï¿_RRbfföøñc’$8`jjzîܹ¢¢¢Ë—/[YY‘žžNÞü‡ÃQWW_¼xqAAÁ‰'‚(++#IòÈ‘#Ç—zå»ï¾›>}z^^^bb¢ÏÆI’$bΜ9çСCAÌš5‹Ãá8p€ ˆŠŠŠºº: ?þø£¸¸øðáÃjjjuuu’uQ%¤§§wJuM®A'Näp8gÏž¥v ª;vlZZÚ£G·mÛ&u£ìV(--ŠŠ’½Ok´¯ÅIi‡:‹ñãÇß¹sgÛ¶mîî‰III\»vmKGIm ~øAêáÍï²…»EêFÉF§lܸ‘ ˆ;vHnìÒS#%î7±ØØXÙµS?m©LIŠ×µ²y~Õˆ?S­\\\,õÀ·>þÍ›oûöíï½÷I’úúú>>>$IÆÅÅijjÖ×ד$>ž ‘H$ÎÎPѶæf¦2&åååM.ìÇ{öìÙŽëFD|||í¿µÔX-Ý`­9_©÷C×ÝØ/^¼xñâ…ì}ä Í šêêj+++ñ¿zÝÝÝCBBÄ;;vLö[—ËMII©«« …wïÞ¿¯NŸ>½ªªJê!WW×ââbêóÍ›7½¼¼H’$âÙ³g$Iòx¼&ŸÓÓÓ«ªªØlö?þX]]-‰jkk…B¡d]dË švT×ôâDtt4I’B¡Úª"11‘Ú!44ÔÑÑQêFÙ­ ÏMó'¥]ɳpqq9wîõÓ—/_Š?7?Jjµtxó;„lK‚F²ÑI’‰D“'Of±XóæÍ“<ß.=5òm š–j§¶´T¦$Å¿ëZYŽ<¿jÄŸ© ÒÒo}ü›7_\\œ®®.Çûì³Ï6mÚÄf³«««øá‡ &PDzX,qvàܹsMš†úL YJMMŸ{knf*AÓßÐÐPÆ999ÔÒ!ÙÙÙÔv===‚ ¨^ý’Ÿ ‚044ŒŠŠzôè‘••ÕðáÃïÝ»Çd2[SWûªk®W¯^A0™ÿºÎT7~‚ \]] dlTÍ[œhù⸺º‘››+>77·©S§¶t”Ô’zxK­F¶ðÞØDóÃOž<}çÎðððˆˆùœšÔØÒÓÓd×Nie™*p×4}ÕP­,õ@ŠìÇ¿yóy{{ëèèÄÆÆÆÄÄLš4ÉÛÛ;&&&**ê½÷Þ#¢´´T(Š[ßÑÑQÜ T$”ØØØ#F|ûí·-‚Ô›ÙÀÀÀÜÜœê“")>>^²ðV^7ŠÔ44Ñ·Ñìkåù¶D5nl€–´9A“ŸŸ¿wïÞ1cƬY³†Úbii™ Þ!99Yv ³fÍZ·nݳgÏöíÛGm¼víÚ¸qãdHýÖ—z+¨®®~ôèÑ[£mhh‰DaaaUUUK–, ¬ªªjM]í«®9©³>þ›o¾ié(© $õðæ­F­\XXØš³hrxQQÑêÕ«øá‡aÆmݺuÅŠ’ wÝ©5Œ$Éýû÷S¯ë2j§´²L¸ëš¾j¨V–z`k4o>&“9a„ˆˆˆ´´4ŸQ£Fݼy3&&†jq333‹•••Ež™™iii) %22ò?þ8}útTTTóSq3ýõ×T—‚ æÌ™sêÔ©]»vÍ™3§­×M6©ßD³¬•çÛÕ¸±ZÒ¶H$Z¼xñªU«N:uëÖ­ÈÈH‚ /^¼nݺˆˆˆ’’’k×®QS!ÈÀåry<žººzCCÃÖ­[ ‚¨­­ˆˆ˜ÊÍÍmé(© $õpÉV300 â¿ÿý/‡Ãùõ×_%«7_’‡“$¹bÅ %K–±fÍ33³U«VÉáÔ¨ËËËKJJ ïÞ½;uêÔìììÏ>û¬5µ·T¦ŠÝuM_5²lMØR›o„ ûöí8p ›Í=ztHHˆ­­­­­-Al6;((hõêÕÙÙÙ/^¼Ø²eKpppóbutt\\\6nÜøÁ466¶þfþòË/KJJ®_¿ž––foo?wîÜÆÆÆ¥K—¶ïô©[WÑò·ÑìkåùŠŸbÕ»±d‘ì¬þÖI~ûí7OOOG’äùóç-,,ªªªx<ÞöíÛíììtuuýýýÿúë/BæÄ$IîÞ½»gÏžÖÖÖûöí›3gŽ¡¡!5#E¼'ŸÏ2dˆ®®.µÃá,Z´ÈÐÐÐÈÈhùòåÔ›„D¯{©ŸCCCÔÕÕ]]]#""x<žd]’{vJu²w NíСC¶¶¶ÆÆÆ«V­jhhºQF+rœƒFj‹“Ò.Ždû666®]»¶W¯^=zô˜3gNuu5µ]ê%mÒ@RoÞj;vì000ppp tÿn¾&w]“ÃCBB444$gôxòä “É ïêS#ÿ= ËÚÚ:88X² d×.£L%ºëZSŽœ¿jÈf³Ÿ49ÐÔÔ”lÅã/õ6¨©©QSS£¦ï­¯¯WWW_¿~½¸¢ªªªùóçYXX|úé§â¦iUCCƒ³³ó¦M›Z3“$YWW·fÍš¾}ûjjj:88lÞ¼yøðáAAAmºnâÓ—ú©ÕÒ &û|›| ËçÆÆ4  ¤Ä?»£££ûôécjjÚ¦ONNNdëfén¤^œv\±²²²—/_Ž1¢ƒñtJ‹ƒ‚S´»®³ÊÁWMûðx¼gÏžQKŒw9´NgÝØÔX9ww÷NŽ Ú< (/uuõ®ÎÎ@; A#Wúúú+V¬hÍF€Î‚»äO7nlP1?Ä äCœ@þmˆ@§À'PèA@3$hh† Í  44C‚€fjMþž››[\\LK(Ðz<¯³ŠB‹C+uâ]GDBBB'–Ðnõõõ=zô ; €'hLLLèŠÚDMMM[[»ãå Å¡õ:ë®ÓÔÔÄŠ£GúúútG@0H’¤;€n sÐÐ š!A@3$hhöy÷O†™LÊIEND®B`‚XQilla-2.3.0/docs/simple-api/classxercesc_1_1StdOutFormatTarget__inherit__graph.map0000644000151400015140000000057311653571064025335 00000000000000 XQilla-2.3.0/docs/simple-api/inherit_graph_5.md50000644000151400015140000000004011653571063016272 00000000000000034086715ebd0fcd5c43a0128eb5502cXQilla-2.3.0/docs/simple-api/ATStringOrDerived_8hpp_source.html0000644000151400015140000003003011653571063021322 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATStringOrDerived.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _ATSTRINGORDERIVED_HPP
00021 #define _ATSTRINGORDERIVED_HPP
00022 
00023 #include <xercesc/util/XercesDefs.hpp>
00024 #include <xqilla/framework/XQillaExport.hpp>
00025 #include <xqilla/items/AnyAtomicType.hpp>
00026 #include <xqilla/items/Numeric.hpp>
00027 
00028 class Collation;
00029 class Result;
00030 class DynamicContext;
00031 
00032 class XQILLA_API ATStringOrDerived : public AnyAtomicType
00033 {
00034 public:
00035   typedef RefCountPointer<const ATStringOrDerived> Ptr;
00036 
00037   /* Get the name of the primitive type (basic type) of this type
00038    * (ie "decimal" for xs:decimal) */
00039   virtual const XMLCh* getPrimitiveTypeName() const = 0;
00040 
00041   /* Get the namespace URI for this type */
00042   virtual const XMLCh* getTypeURI() const = 0;
00043 
00044   /* Get the name of this type  (ie "integer" for xs:integer) */
00045   virtual const XMLCh* getTypeName() const = 0;
00046 
00047   /* returns the XMLCh* (canonical) representation of this type */
00048   virtual const XMLCh* asString(const DynamicContext* context) const = 0;
00049 
00050   /* returns this string as a set of codepoints */
00051   virtual Result asCodepoints(const DynamicContext* context) const = 0;
00052 
00053   /* returns the length of this string */
00054   virtual unsigned int getLength() const = 0;
00055 
00056   /* returns the substring starting at startingLoc of given length */
00057   virtual ATStringOrDerived::Ptr substring(const Numeric::Ptr &startingLoc, const Numeric::Ptr &length, const DynamicContext* context) const = 0;
00058 
00059   /* returns the substring that occurs after the first occurence of pattern */
00060   virtual ATStringOrDerived::Ptr substringAfter(const ATStringOrDerived::Ptr &pattern, Collation* collation, const DynamicContext* context) const = 0;
00061 
00062   /* returns the substring that occurs before the first occurence of pattern */
00063   virtual ATStringOrDerived::Ptr substringBefore(const ATStringOrDerived::Ptr &pattern, Collation* collation, const DynamicContext* context) const = 0;
00064 
00065   /* returns true if the two objects' URI are equal (string comparison)
00066    * false otherwise */
00067   virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0;
00068 
00069   virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0;
00070 };
00071 
00072 #endif //  _ATSTRINGORDERIVED_HPP
XQilla-2.3.0/docs/simple-api/ContentSequenceFilter_8hpp__incl.map0000644000151400015140000000003511653571064021674 00000000000000 XQilla-2.3.0/docs/simple-api/ATGYearOrDerived_8hpp__incl.map0000644000151400015140000000003511653571064020463 00000000000000 XQilla-2.3.0/docs/simple-api/QueryPathTreeFilter_8hpp.html0000644000151400015140000000736311653571064020371 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

QueryPathTreeFilter.hpp File Reference

#include <vector>
#include <xqilla/events/EventHandler.hpp>
#include <xercesc/framework/XMLBuffer.hpp>
Include dependency graph for QueryPathTreeFilter.hpp:

Go to the source code of this file.

Classes

class  QueryPathTreeFilter
struct  QueryPathTreeFilter::StackEntry

Typedefs

typedef std::vector< const
QueryPathNode * > 
QPNVector

Typedef Documentation

typedef std::vector<const QueryPathNode *> QPNVector
XQilla-2.3.0/docs/simple-api/classDebugListener__inherit__graph.png0000644000151400015140000000647011653571064022323 00000000000000‰PNG  IHDR•uÈ„4šbKGDÿÿÿ ½§“ íIDATxœíkPWÇÏÊ¥V©J„p1H´ŽètèôâÛZ,S E®¶¶ŠZ™vÆj§ :êÐÂØt¦Š mq*84°ØJJ}¡-" —!¡Sc¸„\öýp†I@róÄóûtöÙ³ÏóçüÙ³›Ín– I`e‘µ`Œû‡6Ø?´Áþ¡½1_½zõÈ‘#¦’òt²qãÆÌÌÌon”B¡ð7Þ0&ÉÓLGG‡‹‹‹1Œò’••e|’§“C‡™ÿÐû‡6Ø?´Áþ¡ öm,á_¨qqqÙÙÙ£££ú÷÷÷‡††Y±¿¿ß´9ŸL,´ÿ?~¼¬¬ìܹsûöíãr¹r¹Ü2¥!NNNñññúÖJ¥ÒˆˆKê1òÏÙÙÙÕÕÕÍÍ-88øðáÞžžçγLiFãr¹úÖj4™LfI=¦Â Ç?‚ ¶nÝÚÔÔU*U~~~dddddd~~¾J¥‚q¡P˜Àápx<žB¡Ðž©6I’•••üqxxøÞ½{õM’Ú›744$&&nÞ¼9!!áòåË€O?ýðþûï* ?ú裭[·–––êë µ´´ÄÆÆ¶··›aüÁ:ç/,ëîÝ»°-¤RiAAÁ±cÇZZZŠŠŠ`¼ºº:''';;ûŸþùùçŸuæ©®®>sæÌž={Ξ=»}ûö'NÌYzrròàÁƒ§´´ôÃ?ÌÉÉ™œœÌËË”——–tíÚµ'N$''<|øÐ@O>Ÿ¿ÿþ€€€…Ñü°þùç¥K—>ÿüsƒÁf³“““›››a<55•ÅbîÞ½»®®Nç¶eee)))/½ôFÛ°aÃÎ;ç,§T*I’œ˜˜ptt «ªªzæ™gæ)‰Ãá899½óÎ;8ßêëÉårƒƒƒ/^¼ !y LpýsH$&“ Ûÿý÷_TTµjéÒ¥°Áb±`ÃÇÇgxxX{sêž»wï._¾œŠûùùÍYú¹çžãñx ¨¨è…^HHH ™ÑGŸ$777€½½ýœ=}||æTb¬àŒK$6› ¸s玻»; ªÕj;;»¡¡!¸èîî~ûömØ Ð××7gu…B¡Ñh<¨R©jkk¿üòË .Ìè£OAóì©í±Y±Ðü9::zÿþý¡¡¡7ndffJ¥Ò˜˜¸êõ×_/,,‹ÅÔhžñƒ0æþA>Ÿ«ïäÂ4662 ¸X__æÌ™ÂÂBkéy\:D§Óù|þ‚3XÿüÓÄbñÑ£GE"‘B¡èììüé§ŸÂÃí-Ê¢XçüÓTÄÅÅMNN~õÕW£££žžž[¶lyï½÷¬-Ê¢ íŸ]bbbbb¢µ…X ´çO öm°hƒýCìÚØ¸»»­-Á¼˜àóCZZšñIÌÄæ¡¡¹µ…èF,¿õÖ[Æd0Ê?ooïèèhc2˜•Å®RéºgŸ½;ýUÔ“›Í¦¾‡YF]ÿ|Âù_nnãwßÑ|}“¬­Å\Øòñ¯C <èëìê²¶sa³þI[[e `‘ƒCgY™µå˜ ›õ¯ûÂ…EööRÙ!µ™ÛôT«;Íô­ˆãƒƒýÓwÙ¶éßÆÆ‰‘jq‘ƒC×ùóVÔc>lÓ¿®óçiÝA¤Q*»++©ÝÑ–°AÿÔSS³ÝRÈd½õõÖ’d>lпÛW®(§ï$£ ì캦ïZ³%lпÎòrbÖ3R­UW+ÇÇ­"É|ØšSr¹¸¦†Ôu¨S+•·„BËK2+¶æß­šÕÔ”ÎU$IvYüþZsckþupˆ$ûêêh>ç§[»~-“HHµšZ,|å•7f¿ù&Yêáa?ë#tAûþÁÙ,›õUÑ:æëk1ÀÖæÏ§ ìÚ`ÿÐû‡6Ø?´Áþ¡ öm°hƒýCìÚ`ÿÐû‡6Ø?´Áþ¡ öm°hƒýCìÚ`ÿÐû‡6Ø?´Áþ¡ öm°hƒýCìÚ`ÿÐû‡6Ø?´Áþ¡ öm°hóÈó›b±XhsOø …«R©µU˜ 6›ýÈO¾’ZüòË/ÖfXÏ.²©9&::ZÛ2ÏOÛØñ¶õÒ= ›úß| Áþ¡ öm°hƒýCìÚ,Ä?‚ nÞ¼ir)óçæÍ›³_å='„~~~;vì4y cúýO,Ã÷Ü›/­³³ó¾}û¤¡¡A*•J$’¢¢"™L¶~ýúÑÑQ“Ê´4¦÷O£Ñ ›5­››Û×_½€$t:ÝÃÃÃËË+44ôüùól6›Çã™T¦¥1Ö?‚ JJJ]]]srrð…>°ƒR©LOOwwwg0éééJ¥ÎKµµµ>>>×®]»xñbppð’%K<==¡+*•*++ËÇLJN§ïرî"Úi©™ÃáìÝ»R(...¿þú«Î¢:•§¤¤Àþ6)))ñ÷÷§ÓéŸ|òÉøø¸ö¤JµI’ÌÏÏ Z¶lÙ¦M›.^¼H„Îà|äñ ˜}ý“œ €H$¢ÚÛ¶mo]‰DÚI¾ù曨¨¨ÿý·­­mýúõû÷lÙråÊ©Têèè¸k×.‰DR\\ ¸wï^nnîêÕ«ÛÚÚÚÛÛCBBÒÒÒH’ÔNKµKKK}||4 I’L&S©Tê,:C6䯿þrvv6¬sÓ¦M===MMM+V¬ ‚3dzyyýöÛoƒƒƒ555+V¬è Î9 r¹ÜÀÈGGGϸþiÿêêêH’œšš‚ñþ­ZµJ*•ÂvMMͺuë`‡¶¶6’$ EWW—\.W«ÕW¯^…V®\Y^^7éìì„m766¶téÒææf’$ãââ8 ¯(9—†uÂÁY¾|¹NkÖ¬)))¡Òž={ 38ŸB˜íŸ ~ÿ“Édt®íííõôô¤i4l¬Zµ àèèØÓÓ“””$—˃ƒƒáª¾¾¾€€Ø ÔWzÉ’% ((¨ªªêúõ놋Î@$ùûûÞ„RÇ]{srúBÿ­[·Ö¬YCŃ‚‚ôçÇÅç/‹ ~AãææFý׌Œ455Á8ô{bb"&&&==½¥¥%//®b2™½½½°ÝÚÚzôèQùãããAeeå† ¨±ÖWT’$Ož<nx¸szzz|§V¥Rúûû᢯¯oGG•¹««K_pÎyl´wÆ…ÍŸ3Úð~øð! ~öÙgÛ¶mëíí½qãFHHHjjªö422BÄ¥K—ÆÆÆ222---YYYk×®moooooõÕW“’’ÈéÉ ¦ÕÎO[NŸ>M)œ]Ê£>?üñÇ,ktt԰ηß~[$577dggÃŒ?þøãƒ"##¡Œï¿ÿžÅbýþûïCCCµµµ+W®$BgpÎ1ŒYŽ3ÚJ¥òµ×^srr‚A™L¶sçN—矞ËåŽÍûí·ßºººz{{çååÅÇÇ3ŒÉÉÉ´´4&“I£ÑâããGFFH’ÔN;#—ËurrÒ>òÏ.J>ú¥¦··÷öíÛ l«”––úùù1Œ/¾øB¡P$yäÈgggÿŠŠ (C­Vóx<VQQA§Óuç3 0˜TUUµ¶¶R‹`ݺu:ƒFší¾þiÚÚÚ>øàƒ–––ñññ¦¦¦ÌÌÌÝ»wë š¼´­ýþ¼UÈÈÈçp8ƒƒƒl6{×®]ÉÉÉAÓòÈûø|~ll,‰ïyR÷¿ðù|*‚çO´Áþ¡ öm°hƒýCŸN:ey˜ù ‹Ùl¶vD‡æø˜‚13ü³µ÷ÿ=màãÚ`ÿÐû‡6Ø?´ù?/&—!˜œIEND®B`‚XQilla-2.3.0/docs/simple-api/globals.html0000644000151400015140000001234211653571064015136 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
Here is a list of all file members with links to the files they belong to:
XQilla-2.3.0/docs/simple-api/classxercesc_1_1URLInputSource__inherit__graph.map0000644000151400015140000000060711653571064024434 00000000000000 XQilla-2.3.0/docs/simple-api/classURIResolver__inherit__graph.png0000644000151400015140000000640411653571064021745 00000000000000‰PNG  IHDRuüýõ†bKGDÿÿÿ ½§“ ¹IDATxœíPÇÀ7äHŒ¥!„j,}´ØvêÐÖ±1;êS´ è¨Eí´uJ-:TCµUQ‡©B ÒC™¶ü(¿êàŒòC˜ŽiÃ3©µ>,mQLhˆ$ä×¾?nz/&ÅDÂ^÷ó×ÞÞîòÝýÜín¸0 „3ãñòt˜{Bì °'4 l=Æ‘œœ‘HD¦ïñÔÔÔôÒK/…‡‡{"*Ì=TUUeddP‡„Ýé]»v­[·nzCÂ8Á`Øâõ °'4ÀžÐ{Bì èæ©««‹ ˆªª**§¾¾žÅb)•JƒÁˆŠŠ²{ô¼lÙ2ƒqóæÍéŽuJ@q>üðC>Ÿ¯Ñh „###ààÁƒä)A]]]TaµZíëë èîîöL¸`ç‚n÷ '''((èƒ>dgg‡††îÞ½›:›`{·544PŸùg4“8t¤¾¾^ ¨Õjá—_~¥Óé „F£1++‹ÇãgeeÆîîn@SSSxxxkkë¾}ûÂÂÒÓÓÉ+Ýi-aCCóÏ>Ëf³Ÿ|òɲ²2¡ÉdrZüŽiá?ü@Ä'Ÿ|Âf³•J¥me2Ydd¤Õj%sV¬X!“ÉÀß÷“ÓÈZÑÑÑAAA‡*++›3gÎc=–““C6¢Ñh6mÚÄårÃÂÂÞ{ï=½^oÛýçŸ~Ë–-dÉÑÑQ¹\>ÕûiÊóÞÆ7mÚ400ÒÑÑAf9rdÍš5½½½ …â…^ÈÎÎ&]¶lYKK‹D"‰‰‰Q(J¥2...++k¢Z:ŽÍfK¥R•J%“É‚ÐétGuZ}dd¤¸¸Ø1M’  f<ªƒ¿üò ŸÏ'§¾‘‘__ßááaÊ“cHd­””­VûùçŸÖ­[§Õj‹ŠŠÃÃà6ÄÇÇÿúë¯ …â™gž‘H$¶Ýollär¹&“ BX^^C]%ГF£ …±±±‰„ÊŒŽŽV©TdúÂ… Ï=÷¨B¡€>õÔS555äÙŸþ™J;ÖR«ÕÞÞÞÇŽÓh4V«uttÔb±LT}¬VëÊ•+™LfZZš]»»»wîܹgÏayyybb"•ï4$ò,yF»tww·Ñhd2™?ýôY«¦¦&22Ò¶ûf³™Ïç777C—/_~øðáûÆ]÷!ü裘Læàà •ÃáplçR2PrÞàp8¶“Ï$µ „ß}÷ÝÚµkýüü-ZÔØØ8IõIøâ‹/üýýÛÚÚ8N]]m»»»/^¼HN}«V­***‚6žœ†lvŽé[·nôz=™©P(8Žm÷!„;vìØ¹sçÐЋźuëÖƒtÁUO½½½<ïµ×^³½T…B!½F£¹~ýºí‚ñí·ß’é®®.j.r¬566ÖÞÞ!/--e2™wîÜ™¨úDôõõœ>}BxèСrv‚¬Ùl ioo÷óó#¯6jôC‚÷óDÞO×®]#3kkkçÎk·^¶¶¶ ‚ÂÂÂ%K–L<…Kž,KBBÂÔj5ŸÏohh óß~ûíµk×þþûïW¯^‹‹{ë­·lÝ¿ll¬R©T*• .ÌÈȘ¨–^¯çp8ÕÕÕCCC§OŸæp8z½~¢êN×'«ÕºbÅ ‘Hd±X „F£1666%%Ån”wìØñôÓO‹Åb»|Çœº±K§¦¦ÆÇÇ÷ôô(•ʘ˜˜}ûöÙy2›Í</$$¤¤¤äÁ4¹æéäÉ“óçÏ'oçÚÚÚÐÐPrï§Õj7oÞÀår·mÛv÷î]Û@ CVV–@ ð÷÷OII¡6l޵ „sçÎe±XÑÑÑõõõ“Twºß+--e³Ù7nÜ b¾r劗—WuuµíÈ^¼xPXXh7âNCº¯'µZžžÎårCCCwíÚEí÷l‡.33ÓÇÇG«ÕÞ×S4üœ;3Ù»wojjꃗ·saÿ{BŒÛ1 ýýýgΜùꫯº>˜ittt¼øâ‹[¶lY¼xñC7‚ï§GŽH$R«Õ.6‚ï'4ÀžÐ{Bì °'4 ¡§ŽŽO‡à~ì÷å,..öH(g®Px‹Å2z:wr§äädOÅá.ôzB¯÷1ù!!£žŽÅ%’““mÿПéõŸGžËÏ??{6÷òåOÇâNè¶>UUuþøãÎõëýžŽÅÐÊSWWïíÛ€·7ó›o~ôt8î„VžêêäÁ˜L–ªªN«•>S:}|xåÊ•ÉÉɧN"¿©$''ç³Ï>#Ó&“éõ×_ÿþûï6Þ××'‹årùúõë•J¥{Á‘áÉ`0èõz½^çΙL–˜˜èíí=Õ’ÕÕÕ*•ª¨¨èøñãr¹¼¤¤Ä`0H$’U«V}ýõ×éééyyyƒðé§Ÿ I¥Ò#GŽtvvÚ~]j|||[[ù®»ÎÎN6›½`Á§“å+++³³³£¢¢éø€²>½ùæ›TÚÇÇçÔ©SQòܹsùùù<oûöíR©ô7Þ€êõz‹•””´xñb6›m6›[ZZd2¹ÎmÞ¼¹¨¨ˆz’ýÊ+¯äååݸq#::º¹¹9))‰Éd:m|ùòå€mÛ¶EDD¸{<œ0Mžl߯èøfFjG7>>~æÌ™¼¼¼ÂÂB§íLRr```Íš5TI??¿Y³fåççWWW—””Ì›7/555..N£ÑX­V@@ ¢j±Ùì… ¶µµÍ™3çÒ¥KÔWa96N&žx≇Ž©3žx<^__ŸP(${{{™L&Çs,Éf³“’’Ξ= !œ|çXÒßß???Ÿ´¨ÓéÔjõøø¸Õj•H$f³¹¹¹yïÞ½uuu^^^*•jöìÙ€þþþ   Û–ãããOž<9oÞ<*fÇÆÉ|‚˜¦ }:Ö§¤¤¤'N\¾|Y¥RÉåò?þxéÒ¥­@~~~ccczýýßèjWrÑ¢EÅÅŃƒƒ===»wﮫ«c0ï¿ÿ~{{ûÝ»wM&Al6› ±X|âÄ •JõÛo¿Éd2»_ß-X°@§Ó•––’3ÛD»0Ãt\7n$×’ÁÁA.—Ÿ––6Qáàà`___­Vëëë;y³v%·nÝZPP‘‘Á`0^}õÕíÛ·³X¬={öýùçŸ`ÿþý, ðÎ;ïdffz{{/Y²dÆ ¶SA"‘¨¹¹Y$Q™Ž»:.SÁ¥÷øVVV®_¿~&ŒŸ!äææWVV>t 3b_޹/Ø`Oh€=¡ö„Ø`Oh€=¡žGœ={ÖõFèMpp°+-¸ÁÓñãÇ]o„öÌŸ?ß•êtøþ§x}Bì °'4ÀžÐàÚ´‰5àèIEND®B`‚XQilla-2.3.0/docs/simple-api/classStaticType.html0000644000151400015140000016262211653571064016641 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

Class that represents the static type of an expression. More...

#include <StaticType.hpp>

Inheritance diagram for StaticType:

List of all members.

Classes

struct  TypeMatch

Public Types

enum  StaticTypeFlags {
  DOCUMENT_TYPE = 0x00000001, ELEMENT_TYPE = 0x00000002, ATTRIBUTE_TYPE = 0x00000004, TEXT_TYPE = 0x00000008,
  PI_TYPE = 0x00000010, COMMENT_TYPE = 0x00000020, NAMESPACE_TYPE = 0x00000040, ANY_SIMPLE_TYPE = 0x00000080,
  ANY_URI_TYPE = 0x00000100, BASE_64_BINARY_TYPE = 0x00000200, BOOLEAN_TYPE = 0x00000400, DATE_TYPE = 0x00000800,
  DATE_TIME_TYPE = 0x00001000, DAY_TIME_DURATION_TYPE = 0x00002000, DECIMAL_TYPE = 0x00004000, DOUBLE_TYPE = 0x00008000,
  DURATION_TYPE = 0x00010000, FLOAT_TYPE = 0x00020000, G_DAY_TYPE = 0x00040000, G_MONTH_TYPE = 0x00080000,
  G_MONTH_DAY_TYPE = 0x00100000, G_YEAR_TYPE = 0x00200000, G_YEAR_MONTH_TYPE = 0x00400000, HEX_BINARY_TYPE = 0x00800000,
  NOTATION_TYPE = 0x01000000, QNAME_TYPE = 0x02000000, STRING_TYPE = 0x04000000, TIME_TYPE = 0x08000000,
  UNTYPED_ATOMIC_TYPE = 0x10000000, YEAR_MONTH_DURATION_TYPE = 0x20000000, FUNCTION_TYPE = 0x40000000, NODE_TYPE,
  NUMERIC_TYPE = (DECIMAL_TYPE | FLOAT_TYPE | DOUBLE_TYPE), TIMEZONE_TYPE, TYPED_ATOMIC_TYPE, ANY_ATOMIC_TYPE = (TYPED_ATOMIC_TYPE | UNTYPED_ATOMIC_TYPE),
  ITEM_TYPE = (NODE_TYPE | ANY_ATOMIC_TYPE | FUNCTION_TYPE), EMPTY_TYPE = 0
}
 

Flags that determine what item types are returned from an expression.

More...
enum  TypeMatchEnum { NEVER = 0, PROBABLY_NOT = 1, MAYBE = 2, ALWAYS = 3 }

Public Member Functions

 StaticType ()
 Constructor for an empty type.
 StaticType (StaticTypeFlags f, unsigned int min=1, unsigned int max=1)
 StaticType (XPath2MemoryManager *mm, unsigned int numArgs, const StaticType &returnType, unsigned int min=1, unsigned int max=1)
 Constructor for a function type.
 StaticType (XPath2MemoryManager *mm, unsigned int minArgs, unsigned int maxArgs, const StaticType &returnType, unsigned int min=1, unsigned int max=1)
 Constructor for a function type.
 StaticType (const StaticType &o)
StaticTypeoperator= (const StaticType &o)
 ~StaticType ()
void typeUnion (const StaticType &st)
void typeIntersect (const StaticType &st)
void typeExcept (const StaticType &st)
void typeConcat (const StaticType &st)
void typeNodeIntersect (const StaticType &st)
StaticType operator| (const StaticType &st) const
StaticTypeoperator|= (const StaticType &st)
StaticType operator& (const StaticType &st) const
StaticTypeoperator&= (const StaticType &st)
StaticTypesubstitute (const StaticType &from, const StaticType &to)
StaticTypemultiply (unsigned int min, unsigned int max)
void setCardinality (unsigned int min, unsigned int max)
bool containsType (const StaticType &type) const
bool containsType (StaticType::StaticTypeFlags flags) const
bool isType (const StaticType &type) const
TypeMatch matches (const StaticType &actual) const
unsigned int getMin () const
unsigned int getMax () const
unsigned int getMinArgs () const
unsigned int getMaxArgs () const
const StaticTypegetReturnType () const
void typeToBuf (xercesc::XMLBuffer &buf) const

Static Public Member Functions

static StaticType create (const XMLCh *uri, const XMLCh *name, const StaticContext *context, bool &isExact)
static StaticType create (AnyAtomicType::AtomicObjectType primitiveType)

Static Public Attributes

static const unsigned int UNLIMITED

Detailed Description

Class that represents the static type of an expression.


Member Enumeration Documentation

Flags that determine what item types are returned from an expression.

Enumerator:
DOCUMENT_TYPE 
ELEMENT_TYPE 
ATTRIBUTE_TYPE 
TEXT_TYPE 
PI_TYPE 
COMMENT_TYPE 
NAMESPACE_TYPE 
ANY_SIMPLE_TYPE 
ANY_URI_TYPE 
BASE_64_BINARY_TYPE 
BOOLEAN_TYPE 
DATE_TYPE 
DATE_TIME_TYPE 
DAY_TIME_DURATION_TYPE 
DECIMAL_TYPE 
DOUBLE_TYPE 
DURATION_TYPE 
FLOAT_TYPE 
G_DAY_TYPE 
G_MONTH_TYPE 
G_MONTH_DAY_TYPE 
G_YEAR_TYPE 
G_YEAR_MONTH_TYPE 
HEX_BINARY_TYPE 
NOTATION_TYPE 
QNAME_TYPE 
STRING_TYPE 
TIME_TYPE 
UNTYPED_ATOMIC_TYPE 
YEAR_MONTH_DURATION_TYPE 
FUNCTION_TYPE 
NODE_TYPE 
NUMERIC_TYPE 
TIMEZONE_TYPE 
TYPED_ATOMIC_TYPE 
ANY_ATOMIC_TYPE 
ITEM_TYPE 
EMPTY_TYPE 
Enumerator:
NEVER 
PROBABLY_NOT 
MAYBE 
ALWAYS 

Constructor & Destructor Documentation

StaticType::StaticType ( )

Constructor for an empty type.

StaticType::StaticType ( StaticTypeFlags  f,
unsigned int  min = 1,
unsigned int  max = 1 
)
StaticType::StaticType ( XPath2MemoryManager mm,
unsigned int  numArgs,
const StaticType returnType,
unsigned int  min = 1,
unsigned int  max = 1 
)

Constructor for a function type.

StaticType::StaticType ( XPath2MemoryManager mm,
unsigned int  minArgs,
unsigned int  maxArgs,
const StaticType returnType,
unsigned int  min = 1,
unsigned int  max = 1 
)

Constructor for a function type.

StaticType::StaticType ( const StaticType o)
StaticType::~StaticType ( )

Member Function Documentation

bool StaticType::containsType ( const StaticType type) const
bool StaticType::containsType ( StaticType::StaticTypeFlags  flags) const
static StaticType StaticType::create ( const XMLCh *  uri,
const XMLCh *  name,
const StaticContext context,
bool &  isExact 
) [static]
static StaticType StaticType::create ( AnyAtomicType::AtomicObjectType  primitiveType) [static]
unsigned int StaticType::getMax ( ) const [inline]
unsigned int StaticType::getMaxArgs ( ) const [inline]
unsigned int StaticType::getMin ( ) const [inline]
unsigned int StaticType::getMinArgs ( ) const [inline]
const StaticType* StaticType::getReturnType ( ) const [inline]
bool StaticType::isType ( const StaticType type) const
TypeMatch StaticType::matches ( const StaticType actual) const
StaticType& StaticType::multiply ( unsigned int  min,
unsigned int  max 
)
StaticType StaticType::operator& ( const StaticType st) const
StaticType& StaticType::operator&= ( const StaticType st)
StaticType& StaticType::operator= ( const StaticType o)
StaticType StaticType::operator| ( const StaticType st) const
StaticType& StaticType::operator|= ( const StaticType st)
void StaticType::setCardinality ( unsigned int  min,
unsigned int  max 
)
StaticType& StaticType::substitute ( const StaticType from,
const StaticType to 
)
void StaticType::typeConcat ( const StaticType st)
void StaticType::typeExcept ( const StaticType st)
void StaticType::typeIntersect ( const StaticType st)
void StaticType::typeNodeIntersect ( const StaticType st)
void StaticType::typeToBuf ( xercesc::XMLBuffer &  buf) const
void StaticType::typeUnion ( const StaticType st)

Member Data Documentation

const unsigned int StaticType::UNLIMITED [static]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/MemBufFormatTarget_8hpp__incl.md50000644000151400015140000000004011653571063021021 00000000000000783aaa6464691527b2f9acbf820ec430XQilla-2.3.0/docs/simple-api/classxercesc_1_1MemBufInputSource__inherit__graph.png0000644000151400015140000001451111653571064025153 00000000000000‰PNG  IHDRÍîÔNbKGDÿÿÿ ½§“þIDATxœíÝyX×ÞðHX}Q+‚«P·ûh¯×…‚¨Uëò€U+¶®5(.-Ôz¥nõQAQ Z7Ê"ë£>UPä"‚V¬‰K+ˆ " ’ ²÷¹ïܼ„@¢pÞßçé3gæœùÍÌלIB1Fô0}þ+@Î 3@ä À"y°iÓ¦‘<èÜöíÛ§L™BæXDs–——7a„’<(èPZZÚŠ+ˆŽhÎB6lX´háƒu ƒäáàù 9$@Î 3@ä 9ÓÍÝ»wY,VZZÝ’mddÄçóB ÃÍÍ­Ý&Ìœ9“Á`TTT®µ7œéfôèÑ[·n]·n]SSBèÍ›7«V­ŠŠŠòôô¤vxöìÙ½{÷èý…Baaa¡~jíM g:Û¾}»µµõæÍ›B‘‘‘›6m¢·úúúª¾Úåääû̽WÃ!„RRR:Ù!;;ÛÑÑQ `ŒÏ;çææ&‰0ÆR©”ËåÚÚÚÚØØp¹\©TZ^^ŽÊËË8pàµk×¾ûî»Z[[‡„„…Bj4õ^㜜OOO6›=dÈS§NaŒe2Y‡Ý©C¨/cŒÿýw‹µk×.6›ÍçóUO0))ÉÕÕU©TR-³gÏNJJB•——k*‰êåîînmmsêÔ©>ú¨ÿþÛ·o§ …aaaVVVNNN7n‹Åª§?zôèeË–Q{¶´´—••½ÿ½è^½+gãÐÐа°°ºº:;;»ÒÒRªq÷îÝ .¬ªªâñxcÆŒ‰ŒŒ¤.ôÌ™3¯^½=bÄÇçóÇÏår5õ‰Dl6;>>¾¶¶6))‰Åb‰D¢½{÷vؽ©©)!!A}™‰Ú¹sg»üóÏ?íííïÞ½Kõ211yýú53õ’¨^AAAÍÍ͉‰‰¡E‹577;v !ôúõkŒñâÅ‹}||ž<##ƒÚúðáCzY½—@ 044Ü·oŸP(T*•--- …BS÷N(•ʹsç2™Ì%K–´;ÁòòòÕ«WoÙ²c|æÌ™iÓ¦Ñí–Dm¥^¤Ri»åòòr©TÊd2ïß¿OõÊÈÈpuuU=}¹\nooŸŸŸ1þì³Ï~üñÇ.ëÇ3ŒñŽ;˜Lf}}=ÝÂápTçzsssêBSó‡ÃQ¼:é…1.**ò÷÷7554iÒÅ‹;éÞ‰Ó§O›››_¿~Ãádee©ž`yyyAA5uΛ7ïØ±cX%g–Doíp¹ºº!$‹©FÇápTOc¼jÕªÕ«W744UWWks ÿí9«ªª²µµ>}ºêK…³³3}õ…Bá£GT˜\\\rss©å»wïÒs™z¯·oßbŒÛÚÚNž<Éd25uפ¦¦ÆÒÒòøñã㘘;;;jvÃÿ— ¹\nggWXXhjjJýk¡Ó£^î*gÔëÙƒ¨ÆÌÌÌ¡C‡¶{^¼v횣£c\\ܧŸ~Úyñ´ÿêœ) __ß~øA ØÛÛçääPíëÖ­ó÷÷§>2?~üš5kT/tTT”——ŸÏçóù'N\±b…¦^b±˜Ãᤧ§744?~œÃáˆÅbMÝ;|>S*•³gÏž2eŠB¡ÀK¥R//¯   ú©”¬ZµÊÃÃÃÛÛ»]»zI¸«œaŒƒƒƒ}||*++ù|þˆ#¾ûî»v9“Ëå¶¶¶vvv'Nœè®{ѽzWÎ>üñÇSÓAff¦ƒƒõÞ³¹¹yéÒ¥–––VVVááá­­­ªZ"‘p¹\GGGssó   ú £z/ŒqJJÊСCŒŒÜÝݳ³³;éÞáûÍ“'O²Ùì¿þú‹®ùÖ­[éééX%¡¸¸8úÄ©öKê2g $$ÄÊÊÊÁÁaÆ ôûMÕK÷ÕW_777w×½è^½+gàmݺ588Xûý ß Ò?çºD"yùòåÏ?ÿœœœ¬ïZ4‚ïú¼ÒÒÒqãÆ-[¶lêÔ©ú®E#x=ëó¦L™"ô]Eàõ 9$@Î 3@ä 9ÓYii¥¾Kè{H®±sç΄„Âí^••C«Œ¤ú.¤/!š³€€’‡ë b1K,6–JííìZô]Ë{  ù‹N~o¨.öî½tàÀåÁƒ­nÞÜ®ïZúx>ÓMZÚm„Ðóç½Ôw-} äLwïV½x!D2ÏŸ¿£ïrúÈ™²²ÊX,&BH&S¤¥ÝV*á‘C[3m)ÊôôÛr¹‚Zmhh¹u >àÐäL[7oV…oéUCCfff™ëé[ gÚÊÈ(c±þs¹d2Evv™L¦ÐcI}äL+R©<'ç¹\©ÚØÜÜVXøX_%õ-3­\½úH,nk×Èb122à]§V gZÉȸc`ÐþZÉåÊ‹ï½} _@u rÖ5‘¨íòå …R}“L¦ÈË{@¾¤>rÖµ+WH¥rM[á]§6 g]ËÊÒ˜$¥_»ö¨¹YL²ž¾¾GïÚ‹BÕIó“OvþðÃ_ßÿ¡[ìíÍÙlø?Ç:W§kÎΖíZllú l¥—bú(˜7 3@ä 9$@Î 3@ä 9$@Î 3@ä 9$@Î 3@ä 9$@Î 3@ä 9$@Î 3@ä 9$@Î 3@ä 9$@Î 3@ä 9$ôÈïÙ«¬¬ÌËË뉑{‰¼¼¼ºº[ú®¢G¸¸¸øúúvÿ¸¸¤¤¤t¡½†¡¡­[ßUô”€€€žˆDþÞP ¿ù¶¯Y´hQ Ïg€È rH€œ g€È rÖƒQQQÑíÊD".—;dÈccc77·¨¨(‰DÒíGéU g$TVVZ[[Ó«k×®-++;þ|UUURRRvvvDD„Ë#rF‚R©lll¤W³²²bbbÆŒccc3yòäC‡åääè±<ô–³œœ'''¡PˆJNN6lXkk+BH&“EDDØÙÙÙÚÚFDDÈd²ŠŠ ƒ‘ŸŸ?hР‚‚‚¨¨¨AƒÙØØ„††655Q£©÷Båææzyyq8—Ó§O#„äry‡Ý©C¨/«b0gÏžõðð0`Àž={è=³³³‡nkk»nݺ¶¶¶‡š0aBÈÞÞžjïß¿ÿ‘#GèäMž<ùùóçÔrSSÓ_|ammíììÌår%I‡¾ó5Ñ›žø2‹ú~³ËÝBCCÃÂÂêêêìììJKK©ÆÝ»w/\¸°ªªŠÇã3&22²¼¼!4sæÌ«W¯FGG1‚ÇãñùüñãÇs¹\M½D"›Íޝ­­MJJb±X"‘hïÞ½vojjJHHP_F•——ÓËþþþB¡0!!!ÔØØHæçç÷øñã’’WW×èèhª‘êB/«6bŒûí7'''6›=mÚ´½{÷>{öŒÞ´xñbŸ'Ožðx¼‘#Gv> ®×¤Ë;ÐCßoê3gB¡ÐÙÙÙËË+::šntww¯­­¥–¯\¹2jÔ(êšòx<ŒñðáÃ322¨­>¤—Õ{ CCÃ}ûö …B¥RÙÒÒ¢P(4uפ]ή]»†1–J¥T»jaÔY»ººj“3Œ±\./))Ù±cÇÈ‘#™LæÙ³g©‘™Læýû÷©}222:P×kÒùÉâ5gã;v0™Ìúúzº…Ãᨾܚ››S×T*•R[ù|¾ú8ê½0ÆEEEþþþ¦¦¦“&Mºxñb'Ý5i—³¿þúKµ*L,S÷îÝãp8ª±xüø±zÎD"Qrr²\.§V•Jå·ß~ëää„1®®®VÇãu>à;\“Îõ\Îôù> ºº:66Ö××wãÆt£µµ5}k…BaII Õnhhˆrtt|öìÕòÇüóŸÿÔÔK,+•Ê´´4@°|ùò9sæMݵd`ÐÁå¢n9BèñãÇŽŽŽÔ²\.GÕÔÔ¨ï1æóùÔ*ƒÁ˜>}:µ¿“ɬ¬¬¤6=yòÄÉÉ©“u½&:l÷Ò[ΔJå²eËÖ®]›œœœ———››Kµ/X°`Ë–-ÏŸ?çñx3f̈‹‹Sí²mÛ¶û÷ï߿͚5ôã³z/ƒáççwþüùææf©Tjhhhbb¢©û›7oÕ—µ±~ýúŠŠŠÛ·ooݺuÉ’%¡S§N577:tHuO‘H„233 ¼páBeeeqq1—Ë B®[·îéÓ§÷ïßß¾}ûâÅ‹;P×k¢ýIu¿žx‘ÔfÞ<|øðÇL½ògff:88ŒqssóÒ¥K---­¬¬ÂÃÃ[[[U'‰DÂårÍÍ̓‚‚„B!Õ®Þ‹*cèСFFFîîîÙÙÙtïð«Í›í–©=lmm½víZjÊÛ¹s§……ÅСC³³³©¡d2Ù?þñ333ª»\.ŽŽöòò266þè£6oÞLÏ• $$ÄÊÊÊÁÁaÆ š|çkÒ¹ž›7¸~155500°'FîU***ÜÜÜ>¤Ó¤~Î155µÛG†Ïi ³w׿ÿ•+W껊¾röîlmmãããõ]Eß9$@Î 3@ä 9ÓÙë×"}—Ð÷ôàÿ~üøñž\ÒÒjæÌ±çp˜ú.¤ûUVVº¸¸ôÄÈ=˜³ò³%¶­møibñ#}×Ò#z(g=ò½ÓììÙ›©'º¥¥­Òw-} <Ÿéæüù;1JJ*á)M3ÔÕ½)-­D#ÄÈξ«ïrúÈ™²³ï2™ „R‰SSo뻜¾r¦ƒ´´Û FaŒùüUU]vÈ™¶*+>|I¿mb2aêÔäL[™™e,Ö>3S(pZLÚ‚œi+-í¶\® W1Ư=ªÕcI}äL+>±X̬¬2½ÔÓç@δ’•UfhØþ‹&¹\‘šz >èÖä¬kJ%NOÿ]&S¨oª¯o.+{N¾¤>rÖµÒÒʆ†–7±XÌÌL˜:»9ëZnî]„‘Ký?¥çäÜU(”ú®±·ëÁŸ×ø`Œé¼mÛlzuÿþßæÌùxØ0{ºåÍñ€¦ú(­Ï€Ÿ×Й£ã†øø°Ï?¥ïBú˜7 3@ä 9$@Î 3@ä 9$@Î 3@ä 9$@Î 3@ä 9$@Î 3@ä 9$@Î 3@ä 9$@Î 3@ä 9$@Î 3@ä 9$@ÎXEJJоËéúõû‡¡¡µ¾«èíT£ÕÁï§ŠŠ"_V_ã£ïzµ´´´v-älêÔ©$j®ëׯ·kç3@ä 9$@Î 3@‡ùww¼½½œœNŸ>Í`0èÆÍ›7ߺuëÌ™3NNNï<,½lff6nܸõë×[XXt¸3Æx×®]EEE—.]¢ú¾Ï¡5‹Å'Ož,,,666>>>‹/622êÞ£¼¿öõ¬®®îÉ“'ôjKK˽{÷ÞØØØØóçϧ§§ïÛ·¯¡¡áСCšölllÌËËûå—_Þÿ ªjkkçÎK¯:t¨¼¼|ÇŽ)))›6mºqãF|||÷±[|°9;vlAA½Z\\<<<üÖ­[šölkkCÙÚÚ¾ÿAU)•Êææfzµ¨¨hÅŠnnn^^^ëÖ­»qãF÷±[蜳ââbÿ––„P~~~HHˆD"AÉåòøøøùóçÏŸ??>>^.—×ÔÔx{{—••þñÇ'Nœ œ7o^LLŒH$¢FSïEbùòå~~~ÁÁÁ—/_F)Š»S‡P_FM:µ  €þ+iׯ_Ÿ2e ½µÃãz{{_ºt),,lÞ¼yçλ|ùrPPЬY³~þùç/“É´´´ÔTƪU«B ,Pïèíí——öùçŸÿúë¯t¯7n„„„ÌŸ?ÿðáÃ2™L›aMLL²²²èäyyyÑ_ŠD¢üqîܹG•J¥øÎ·I':çìïÿûرcãââ„Ba\\ܶmÛ8B(==½¶¶öرcû÷ï/++;qâµjjjddä½{÷ cbb8P]]}æÌj«z/‰D=oÞ¼_ý5$$dÏž=‰$==½Ãî\.W}!4räH±XLM­­­eee'N¤·jªöÎ;G OHH¸yófRRÒ×_}úôiúFJ$±XüöíÛêêêÄÄÄiÓ¦iºPGŽAeddt¸µ¨¨(..nåʕǎ£þÑ"„²²²bbbvíÚUZZzîÜ9m†ˆˆ(++ó÷÷ˆˆHII©¯¯§÷ÇAƒ544t9¬D")..ž:uª‡‡‡‡‡GHHÈÉ“'ããã}||„B¡R©ttt¤ötrrê|@]o“6ç¨ê]röêÕ«ÌÌ̱cÇ9rdëÖ­T£¹¹ù¨{ ‰Á¿Àb!„¬¬¬êêê† ‚ª¨¨())Y²dI‡½ÚÚÚ”Jett´\.ÏÏÏߺukVV–¦îóôô|ûö-ŸÏÿý÷ß7nܨºISµÚc³Ù³fÍJLLljj¢Z “É|ýúµ6ÝU?p¡½xñÂÅÅ!T]]meeÕå°ã;w4ÈÕÕ•óoû[nn.BÈÒÒÒÀÀ ¶¶–ÊÊË—/©dkP×Û¤Í9ªÒyÞÄïÙ³gÁ‚ß~ûí;wŠ‹‹©öI“&%$$Ô××WVVnÚ´)++Kµ—ŸŸ_bbâÓ§OŸ>}zðàAú1B½ƒÁˆˆˆ(,,lmm•Éd,‹ÍfkêÞÚÚzáÂõ埛ÁäÉ“úé'vŸru^m'ššš@ xõêUrr²­­­………™™BèòåËoß¾Õô@¦ØØØššš?ÿü“zòëdX±XŒ266öóóûþûïKJJjkk˜+ÿý÷ßÛØØ¤¦¦Ò-ìç´ Wœõ ¦¦¦sæÌÑw=rÖ+XXX|óÍ7ú®¢AÎ 3@ä 9$@Î 3@Bß;©þ´ ï& @uõÿ}ïT]]]RRB¼$ðrvvþä“OèU†–?/Àû€ç3@ä 9$@Î ÿ ³”«;Ä*ÙIEND®B`‚XQilla-2.3.0/docs/simple-api/ATQNameOrDerived_8hpp.html0000644000151400015140000000735411653571064017513 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATQNameOrDerived.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/items/AnyAtomicType.hpp>
#include <xqilla/items/AnyAtomicType.hpp>
Include dependency graph for ATQNameOrDerived.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  ATQNameOrDerived
XQilla-2.3.0/docs/simple-api/DynamicContext_8hpp_source.html0000644000151400015140000004213311653571063020763 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

DynamicContext.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _DYNAMICCONTEXT_HPP
00021 #define _DYNAMICCONTEXT_HPP
00022 
00023 #include <xqilla/context/StaticContext.hpp>
00024 #include <xqilla/items/ATDurationOrDerived.hpp>
00025 
00026 class Sequence;
00027 class Result;
00028 class Item;
00029 class URIResolver;
00030 class VariableStore;
00031 class SequenceBuilder;
00032 class UpdateFactory;
00033 class RegexGroupStore;
00034 class DebugListener;
00035 class StackFrame;
00036 
00038 class XQILLA_API DynamicContext : public StaticContext
00039 {
00040 public:
00041   virtual ~DynamicContext() {};
00042 
00043   virtual DynamicContext *createModuleDynamicContext(const DynamicContext* moduleCtx, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr =
00044                                                      XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager) const = 0;
00045 
00047   virtual void clearDynamicContext() = 0;
00048 
00050   virtual Item::Ptr getContextItem() const = 0;
00052   virtual void setContextItem(const Item::Ptr &item) = 0;
00053 
00055   virtual size_t getContextPosition() const = 0;
00057   virtual void setContextPosition(size_t pos) = 0;
00058 
00060   virtual size_t getContextSize() const = 0;
00062   virtual void setContextSize(size_t size) = 0;
00063   
00065   virtual const VariableStore* getVariableStore() const = 0;
00067   virtual void setVariableStore(const VariableStore *store) = 0;
00069   virtual const VariableStore* getGlobalVariableStore() const = 0;
00071   virtual void setGlobalVariableStore(const VariableStore *store) = 0;
00073   virtual void setExternalVariable(const XMLCh *namespaceURI, const XMLCh *name, const Result &value) = 0;
00075   virtual void setExternalVariable(const XMLCh *qname, const Result &value) = 0;
00076 
00078   virtual const RegexGroupStore* getRegexGroupStore() const = 0;
00080   virtual void setRegexGroupStore(const RegexGroupStore *store) = 0;
00081 
00083   virtual time_t getCurrentTime() const = 0;
00085   virtual void setCurrentTime(time_t newTime) = 0;
00086 
00088   virtual ATDurationOrDerived::Ptr getImplicitTimezone() const = 0;
00090   virtual void setImplicitTimezone(const ATDurationOrDerived::Ptr &timezoneAsDuration) = 0;
00091 
00093   //  XQilla context specific accessors  //
00095 
00108   virtual void registerURIResolver(URIResolver *resolver, bool adopt) = 0;
00110   virtual URIResolver *getDefaultURIResolver() const = 0;
00112   virtual void setDefaultURIResolver(URIResolver *resolver, bool adopt) = 0;
00113 
00115   virtual void setDebugListener(DebugListener *listener) = 0;
00117   virtual DebugListener *getDebugListener() const = 0;
00118 
00120   virtual void setStackFrame(const StackFrame *frame) = 0;
00122   virtual const StackFrame *getStackFrame() const = 0;
00123 
00125   virtual Node::Ptr parseDocument(XERCES_CPP_NAMESPACE_QUALIFIER InputSource &srcToUse,
00126                                   const LocationInfo *location = 0, const QueryPathNode *projection = 0) = 0;
00129   virtual Sequence resolveDocument(const XMLCh* uri, const LocationInfo *location = 0,
00130                                    const QueryPathNode *projection = 0) = 0;
00133   virtual Sequence resolveCollection(const XMLCh* uri, const LocationInfo *location = 0,
00134                                      const QueryPathNode *projection = 0) = 0;
00136   virtual Sequence resolveDefaultCollection(const QueryPathNode *projection = 0) = 0;
00137 
00140   virtual bool putDocument(const Node::Ptr &document, const XMLCh *uri) = 0;
00141 
00144   virtual SequenceBuilder *createSequenceBuilder() const = 0;
00145 
00148   virtual UpdateFactory *createUpdateFactory() const = 0;
00149 
00151   virtual void testInterrupt() const = 0;
00152 };
00153 
00154 #endif
XQilla-2.3.0/docs/simple-api/ATUntypedAtomic_8hpp__incl.png0000644000151400015140000002227311653571064020454 00000000000000‰PNG  IHDR£uõ$bKGDÿÿÿ ½§“ IDATxœíÝyX×Úð“MÙÃê¸!«`«>0²ˆâT½ëWí׊´mµOm ­]n«U¬k¯Zá (F„‚JÝEdq©€€Ê" Y „$óýqÚiL&!BÈÆûû+LrfÞ3ó2o2“œC#@GÑÕTz@—A¥tTz@—é©;ÝÎ; ÔP¦?þ800PÝQ  ÒÝWVVVRRâîî®î@€räçç¿õÖ[ꎭ• îîî;vìPw@9òóóÕÚîÓº *= Ë Òº *= Ë Òº *=/ùÏþÃb±~ýõWrI^^‹Jee%‹Åª««o.½D5êêêX,ù§t/”¾ ùÔµÒ Òð‚ òòò˜L&‡Ã!¾ñÆiiiiii{öìA¥ým̘1¯ºþ†††¨¨(%L‰²ß´©©ittô€£¨TzþQ]]ýøñãøøøÊÊÊÚÚZ¼pذa––––––æææ!Ë¿éé½òp"‘¨½½]ÉAK¡ìÅÀ7mff¶~ýzeP)¨ôü#//ÏÛÛÛÏÏoÔ¨Qyyy\‹ÅºpáÂêÕ«çÍ›—œœŒÚ¸q#BháÂ…¡Ý»wýõ×ø•</,,¬¢¢_!¿|ùòÊ•+,X°{÷îÞÞ^„@ HJJZ°`Á‚ ’’’H$JNN^¹råܹsßyçû÷ïËï…ø¦B‰‰‰QQQK–,Ù·oŸÏÇgee­^½zþüù¿þúkNNNtttxxøáÇ‘ØÕ{¡PxäÈ‘eË–ÍŸ??!!¡³³“²û………111‘‘‘'Nœ ›KtMVJ•€¿à‹ÞAAA¡€€ñKßývéÒ¥Ÿ~ú)66vÿþý{÷îE¥§§#„/_¾, B—/_¶··;v,nuæÌ™„„„/¿üòúõëø^{jjjCCÃþýû¿ýöÛ¢¢¢#Gޤ¥¥¥¤¤¬_¿þرc+W®LJJ’ß ñM#„~øá‡æææ¤¤¤¯¾úêæÍ›'OžÄËoݺµoß¾õë×8pàêÕ«‡zûí·;&~= 55µ   !!áûï¿òäÉñãÇ)û~ýúõÄÇÇÓ€B"‘ˆÃálܸñüß–,YÂáp¤‹·8&“)þ[²Ç3 &“I.‘¨sfΜùÇäçç{zzÚØØËɯÑ=yò×K33³ãÇs8‡Ãf³÷îÝkgg÷ðáC²IMMâ½°°° Óé øÏúúzüŽDAVVVOŸ>Å+++e]½§ì»t×d-( TzB¨´´”Ë冄„ý-88¸¶¶¶²²RN«°°°üñêÕ« EEE_|ñEhh¨¾¾¾ümñx<üÀËËK(þòË/øj9iÏž=uuuþùçÁƒCBBBþþþhll¬ªªŠ?sæÌ¼yóöíÛwùòåÖÖÖ7nà/ÍõÙ ¼i===‹õã?644TWW:t(88Xñ}zðàÁêêêêêê~ø¡±±/ÏÌÌìêê’ßVºk²”®Þ€Byyy¾¾¾øwtظqã8θqãdµZµj•‘‘Ѿ}û­¬¬‚‚‚V¬X!g+vvvžžž‹-:þ>>äB“ÈÈH5F5x(»¦Ãý@sÀÕ{ û4ùê=è¸zÀ+Ïô€.ƒJè2¨ô€.ƒJè2¨ô€.ƒJè2  %%%qqqƒ½‘hgmhØÌ`ð{[š‰Ï7L [èô^uÇø Tz û¦M›6¨ëçóé--ÆÏžµ·0"GG3KËîAÝ"¥ÖVê*³)SU¿iR}½IMÙóçãÌÌz,-yÖÖ<‘Ò·âââ2räH¥¯]#çÐOÏÙì’ÔÔÂÒÒ'VV¦óçûFFzûùa0ÔsSììÙâ ~©¯ÿ^-['ñù‚ë׫rrîž={»¹¹cüx»ÈHïÈHŸñãíÔCTz^MssGFÆm6»øÖ­“a³g{DFúN00Pó2 ©ô$¡PtëV ›]rî\qccûèÑVÁÁî‘‘Þ¯½æL9u=`@¥@!--§O±ÙÅEE õçÌñŒŒô ˜0l˜¦ÜÓ´JO‰ˆÂÂêÜÜ{™™%55ÏFŽ´ õ€’€Ê@¥@žŽŽîìì²ÔÔÂ+W* ôÂý"#}üýÇê«;4I[éÅ=xðôܹâ3gn?|Øäà`>k–[Hˆ;‹å¦§¿`°@¥€BWWÏùó¥çΕ<‰ˆ™3'FDxÏží9b„¡ºC“I+*= —üÜÜ{¥¥O,,L‚‚Ü"#}fΜ¨¯ÏPwhè¨ôüãÅ ~ffɹs%üQ.Šp u733Vwh}Ó®JOzô¨%7÷.›]\XX3b„QHÈ$ ùÞ:*=¨·W˜Ÿÿgjjá… ÷ø|Á¬YnÞÁÁ“,,LÔÚ+ÐÒJOª­åfg—á’oh¨?cƸˆï9s¼LM‡©;4´Tz0táÏfçæÞkoçM™2&2Ò'"ÂÛÎÎLÝ¡õ‡¶WzRCCÛÅ‹÷ssïr8÷õôþþã5ÿÖ š *=r‡sŸÍ.¾páÞóçø¹s½ÌÕÚ€èL¥'q¹].Ü;w®$?ÿO6uªKHˆ{TÔd›áê m• AܼYÍf—df–<}úüµ×œ##}fÏö9ÒRÝ¡)‡îUzÒóç/rrî^¸pïâÅ{==_ßÑ‘‘>‘‘Þ¶¶ZyõƒJtYà³²JëëÛÆŽeFEMÖÉ!Ût¸Ò“x<þ¥KlvqvvÙ‹|?¿1¡¡îááÞcÆX«;44Tz ³nܨb³K~û­¬¶–ëìl³p¡oD„Ï„ ºVàIC¡Ò“zzØì✜;ííÝxÌÝùó}]]™ê •èšÊʦŒŒ"6»¤¼üéèÑV‹OÑíOR•žD޹+>Ì~Hˆ»—LÀ_ ÒQ]Ýœž~ x[Û>‘‘ÞS¦8ÓéCe¼Õ¡YéIbÃì—46>‡aö A¥Ú­¦æYZZ!.ð66ÃçÍ›<Ô 4l ³tTz q´qÆXM•¾ZZ:óòîã1wétZ@ÀÈ7 c ÒMÁãñÏûkÆX@Èb¹iÑŒ±š*ýµµ½Èͽ‹K¾HDà1wa˜}  Ò5#'”ËɹÓÙÙóÆã/ž¢u3Æj¨ôÊÒÞÎûý÷¹¹w³²Êº»{a˜} í Òõбc5Tz¥ëîîýãr6»ø·ßîtuõxx8…„LZ¸ÐÏÙÙFÝ¡ð  Ò•"gŒ½xñ~[Û \àçÌñtt´PwhZ*ýàÁÃìãOù--xÌݨ(ß±ca˜}  ÒU˜1ÖËkäâÅStiÆXM•^È1wÙìÛMM0Ì>ÐPéÁ ’˜1ÖÕ•9þä!2ߌêA¥W%‘ˆ(,üçÍë¨QV!!0Ì>ÐPPéÁ À3ÆæäÜyò¤u(Ì«  Ò«9Ì~zzQuu³££EX˜ç|h&¨ô@™†ìŒ±š*½Úá1wÏž-®¨h´´4™5 ÆÜ*=P˜1V@¥×<½pánNÎÝ›7«Í̓ƒ'AÉj•ôߣG-©©7q·¶6Šò…¯FPé5Г'­¿ýv³?|¸a`à„ààIsçz™˜À˜»@u ÒƒW†gŒÅ†››ÃŒ±*½&«¯o;¾47÷îÕ«•zz ÿñÞaažÃ‡Ã˜»`ÐA¥ŠŸ1ÖØØ ,ÌfŒÕ(PéµBkk×Å‹÷ćÙ qŸ3ÇÓÊÊTÝ¡•ô¡µµ+=ýÌ«ù Òkr˜ýß Šð˜»óæMf2a˜} dPé5 !„fÏöX¼x ̫ɠÒk)éR›]œ•UÆãñýü`dh dPéÁKdÌë1b„‘ºC’êëÛÞ|ó@ Äòx½­­]ŽŽæä &Mrسg…𢝠†Ùƒ*=@fŒÕZ ••M”OÑh(.nÎ{ï…ª8$0pä0ûÙÙeÏžý5Ìþ¼y“dzUwh@+A¥Ò`ÆXm·wo^bb¦@ ’~ŠF£]¿þ‰“L¤ÅÈaöÏ+nll?Þ.$Ä=$dÒ믻¨;4 M ÒEä„râ3Ɔ‡{ÙÛ›÷Ýh’úú¶×^ûLú¿˜N§yz:ee½¯–¨€Ò‘ÃìŸ?_ÚÐÐ6r¤eh¨ ³•^ëµ¶vµ·óÆŒ±îó•"qùrÅ©S7/^¼Ïåv½öš3Ì«"#ÿ}ûöc‘è¥d==ú§ŸÎ_»Ö_]QÁƒÇÜ=}º¨ªªÙÁÁ|ίÐP÷éÓÇêé): Ecãs[[øºß•^»=Z³æpD„×_,’õ‰c==–,y fŒÕ¿ürù“OÒ%.à3´ââÏà'Úº —|;»¬®Ž 3ÆêªÖÖ.oïíBá?•žÁ O›æzêÔF5FTéÑ£–ÜÜ»xÌ]33#<̾¬Q­þýïœ]»²B›6…lÝC[PéµÒ‹ü÷Þ;yî\É߇vòdl`àülié“S§ ñŒ±cÆX/Zä^·EG']ºTA{:öí·ÿ³lÙëê ¨žø0û††ú3fŒ‹ˆð–fßß?ñáÃF„ƒAwss8th \ÞÓyPéµOEEãêÕŸ&ÕÕUP鵆HD$$dîÝ›‡¢:j´¸¸ÐM›BàuhZ¿þhVV™P(¢Ñh?ÿ¼:<Ü[ÝÍÒØØž•U–˜˜ÙÑÁ“>0t_ßÑ?ÿü¦­íuD|ìÓmm/bböïÝ›Gå›3==zee”ù!káB?‘H„22ÒvWw8@ãØÚŽ˜5kb{;E™G …¢¢¢G3g~UPð@å¡A•^ ?f±¾ºt©RÎ@˜}‡Çã«20 9X,7## Í™ã Ó JÙÙwäÜÔ E¼åË÷ûm¶Äð @Û½tFàñx\.W]¡J/–oßžÙÓ#D¨ÿ½îîÞ´´+³fWM`˜‘‘‘…Å@Þár¹<O)ñ eÁÁÏž-e±\êëëÕ‹Ö³°°02è¬Nšv ÒÒn…òN#¸Àûío7nTîÜnj:L΋&sppÿó¥JßÑÑQ^^®Úx€LAdf><}úAO@Á&éé…NNƒ”$›Wúúúúææf¥Ä3”¹»›r8ÃÌÌzà¿xà&Mš4ðJ¯Q¢­­çîÝ¿˜uåJÕ›oþò¿ÿëçè8|°ƒA^¥ÇfΜ©¢X@_X,Ö7ßP, EÝÒËétº*[u÷î]e­ÊÆÆÆÝî.H@A£Y±ÔˆÖËÏÏWÖª&MšÄd2•µ¶hmí:yÒ?62Òǃꘚâ‘sÌÌŒh4D£ÑGŒ€gj·¦¦¦{÷îI,„ûyZ‰Á Ã|²@N‹©î(€†²´4ñ÷Wé­= 9àyèøñ@Tz@—A¥tTz@—A¥t™ÖWúǯYÓ÷d•••x"òxóÛ·oëéé:uŠ\ž‘‘a``PVV61K ‰3f̪U«äÿ¸œ ˆ+V˜šš*¾þÊÊJeDª¤µÄA§„3áU÷­êÉé‹‚ÉÜÕÕïíímjjúúë¯'$$Ô¯ýF£¢¬žöiH%ö@²Z‘WœÄ©xçÎ4-11q ëTÊJ$ÈßÉÉÉ”Y]\\¬ÄTŸºZ_éÏœ93þ|ʧªªª¬­­ñcssó>ø@VóÉ“'oÛ¶móæÍmmm¡çÏŸoܸqÇŽžžžƒ¹¸+W®444ÔÖÖ9r¤½½Ý××GB©¾¾þĉÒ¿˜˜¬c-έ޷Š$sGGÇ”)S®_¿ž˜˜XTTôá‡?~<44T(öo¿áÔ§ÜN‰ÿeÉj²í îLñS1AÉÉÉ£FJIIé÷ )W2ð.Èß“QQQ8¯\¹‚"³ZëGû Ä466r8B«„‡‡¿xñ‚ò©ŠŠ ‰J/$›÷ôôxxx¬_¿ž ˆ 6øùùñùüA‹ú%¡ŠŠ òO‘H°}ûvY¯§ì—âëW¢;wîܹsGsÖ#ÜQŠì1œ ¯ºoUON„Š$s\\œ¿¿¿@ [uvvŽ3&))Iz}îÁK-é`T¹u‡ÓØØ¨9ë׬–n;Ä·URRB£ÑrssB<èß )W¢²ÿÐAÝРþãPÖñWþLöìYGGG<<þÉ“'ÇßÕÕ…êííݺu«­­-“Éܺukoo/¾HrñâÅQ£FåççïØ±cÔ¨Q666«V­"?°J·B±Ùl///CCC—cÇŽ!„eógÏž™˜˜‰_!O›6 !dgg‡d\±!›#„ Ž=zøðá„„„#GŽ=zT___VJìš4¶aÆÌÌLYëï—‚ëÌÉÉ;v¬……EBB¹7222&L˜Àd27oÞÜÓÓC¹PÑ´|”‰'‰öìÙãææ6|øðéÓ§s8|YLÎÕ¹sçÎMž<ÙØØØÞÞž¼*Hf‚tÎà£|éÒ%ʆ4íðáÃnnn666‰‰‰ÇŽsvv633ûä“Oð ¤ßôéÓ¿ÿþ{„Pkk+N‹‹C …B |ÐÛÚÚÞ|óMkkk''§¸¸¸îîn‰Hðš ‚ˆ‹‹óññyöìR8™?¾}ûv㟟ݛ˜˜ÄÇÇŸ8q¢ûí•–¬“ßßqãÆ!±l— í‰­š¬¦<%"ç¨>Sšò„#ž~¡äääÀÀÀààà‰'Š"§Ñh'Nœpss³´´üúë¯B›7o^·n~¶³³ÓØØøöíÛrV"Ñéäé³ äÞUV(QÆ)+µ(w¬U§nŸï¤­ZµjõêÕOŸ>µµµ½~ý:^øÕW_-Z´èñãÇ¥¥¥¾¾¾~ø!~O4gΜ¼¼¼O?ýÔÝݽ´´´¬¬lêÔ©qqq²Zuvv6,))©¡¡áСCzzz»ví¢l~øðácÇŽ/¿ÿ¢|ÏK¹lNúðÃBŸþ¹øÂAíAõþîæÍ›æææò·ŽŸ•µNq¡ˆˆˆööö´´4„гgÏðBCCËË˯]»6vìØO?ý”r¡üLPñgzéÄÛ¿?“ÉLOO¯¯¯ÏÌÌtrrÂ;SâX“ÚÛÛ Ö®][[[{üøq„PSS!7‘ðQnhh lˆŠŽŽnoo?xð BhéÒ¥íííû÷ïÇû™ :|Ÿ}öYxx8A#FŒðõõ%¢°°ÐÐа««‹ ˆ˜˜˜   ‡–––zxx‡G‚ïŠD"²ÌãhIf\Qš››%vìÕ«W---û±ßBÅÅÅ/“u°d%˜"ý¥Ì‡ÁKlU~¦WeVK|N•NN¢¯”–uÂO?‘Häìì¼ÿ~‚ >úè#wwwr‹¡Å‹s¹Ü „ZZZ~ÿýw++«ÞÞ^‚ Ž?îîî.‰ä¬D¢ ÒÉÓgÈ5È*+”¢ŒSVjQîXqƒ—º„Œ:ÞŸJÏårœœ¼¼¼Ä·:qâƆü877×ÇÇGYZZJÄ„ ÒÓÓñ³÷îÝ#K·jmmÕ××ÿæ›o¸\®H$êèè …²š/Z´¨µµ•èo¥'›c"‘(**ŠÁ`¬X±B¼¿ƒÚ5¢¯J/këx‰¬uŠCåçç! ñ¶Äã'"%%eìØ±” ¹T\é¥ÏÝÝýèÑ£ä ~ùåùçÄžžžû÷ïwvv …ÂßÿÜór ïY BEEEAðù|‰ÇøÒ‡¯°°ÐÔÔ”Ïç¿ÿþûÛ¶mÓ××çr¹»víš;w.nË`0Ƚ‘žž.qhðãøøxôòuQE’WzòÍéÊ•+ÖÖÖýØor>|t:}îܹååå¾¾¾³fÍÊÍÍ-((ÀGÜÖÖ–Á`TUUáæ>tttc³ÙIIIÉÉÉGº r’9&&fçÎø“B(::úäÉ“‰‰‰ÑÑѯºßä£áˆoK(¦¤¤|÷ÝwäÝœ÷ß?%%…| (ýQdÉ’%§OŸþïÿ;cÆ |«¢Ï•`r’G²NݲHljI§–";VÕ©Ûç§~ B¡088xçέ­­vvvgÏžÅË7oÞ¼xñâššš’’’©S§¾óÎ;âW?vìØáååUVVVVVöÆo¼õÖ[²Zñxÿ³Ï>svv655>}ú¯¿þ*ÿœHÄwß}gii9räȽ{÷FGG[XXˆg‚¬š*ÝÉd TzÊ4hkkÓÓÓÃß•ëêê200ˆ'7ÔÚÚºråJ+++{{û÷Þ{<4ÒQñx¼ñãÇoÛ¶Mñd&¢³³sË–-†††®®®}ôQ``à²eË^i¿‘ݧüð@y°d%˜üþŠÿ÷¹Ã••Ø*«ô*Îj‰I™œ}¦´Ä Gâ\*ÞG‘HäêêúÁÈYù† ŒŒŒÚÛÛû\‰D¤“§Ï.{CÖ©[b§‰“ˆSVjõcÇ*+u %~#h;Ê$¦\(Ÿ¦ýž¾]Aôôô\½zu°·¢‚££¬ÄÖ¨ßÓ…¬Þ¶mÛòåËÕEß$âTâ¡QVê2ê¸å»rÀÐa``€¦ €Šuww×××>|øäÉ“êŽEm‰S­ ôÈ#bccY€²¨ Á ±µÎõë×§L™²víÚ™3gª;y(ãTbj vêÒ±›mMMM÷îÝÓð=4þVðÀG„VÖzPŠüüüI“&1™L YŠ£¬ãð™ÐePé]•ÐePé]•Ðe¿§¯¯¯W}@uww*kUx@÷´µµáù8PÎÎNé…•¾¼¼|ðƒ:BY•Ïc¡”U 9àý+Ð/ýž:îÓº *= Ë Òº *= ËþN 7~ªíhIEND®B`‚XQilla-2.3.0/docs/simple-api/classxercesc_1_1StdInInputSource.html0000644000151400015140000002112111653571065021774 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

xercesc::StdInInputSource Class Reference

This class is a derivative of the standard InputSource class. More...

#include <StdInInputSource.hpp>

Inheritance diagram for xercesc::StdInInputSource:

List of all members.

Public Member Functions

Constructor
 StdInInputSource (MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Since the standard input is a canned source, the constructor is very simple.
Destructor
 ~StdInInputSource ()
Virtual methods
BinInputStream * makeStream () const
 This method will return a binary input stream derivative that will parse from the standard input of the local host.

Detailed Description

This class is a derivative of the standard InputSource class.

It provides for the parser access to data via the standard input. This input source is not commonly used, but can be useful when implementing such things as pipe based tools which exchange XML data.

As with all InputSource derivatives. The primary objective of an input source is to create an input stream via which the parser can spool in data from the referenced source.


Constructor & Destructor Documentation

xercesc::StdInInputSource::StdInInputSource ( MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager) [inline]

Since the standard input is a canned source, the constructor is very simple.

It just uses local platform services to open up the standard input source as file, a new handleof which it gives to each new stream it creates.

xercesc::StdInInputSource::~StdInInputSource ( ) [inline]

Member Function Documentation

BinInputStream* xercesc::StdInInputSource::makeStream ( ) const [virtual]

This method will return a binary input stream derivative that will parse from the standard input of the local host.

Returns:
A dynamically allocated binary input stream derivative that can parse from the standardinput.

Implements xercesc::InputSource.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/ATAnyURIOrDerived_8hpp__dep__incl.png0000644000151400015140000001335211653571064021567 00000000000000‰PNG  IHDRµÃKJÇ"bKGDÿÿÿ ½§“ŸIDATxœí{TSWöÇOHŠ(¯ F­~::Ž£€,R–8£Pªèˆ-¨ uµŠc­Œµµ#}h×A#ZÅZAÐÖVJ;V5jq ò2¼½DyÝß×ÞÆ$ ‰²?‹?ÎÝ÷ì}ö¹÷›{Î}q$I"èK'X5 èÀúp°ôÊÊÊvìØa©Tk 99™^|BíííÅÅÅsçÎì¤ëàæÍ›ÎÎÎú–q¥mÛ¶ V>€u±}ûv Ì? èÀúp€>×Ç‘#G‚‚‚¾þúkÚRRRd ‰DÒ›K¿ jnnîÍ¢ßâ믿ž˜˜H·kìÛÝÝžž¾råÊðððU«V;vL«Õšl‘æÍ7ßܹsçýû÷û˜msssPPP¿;ù´ÆÁ¬˜8¿í $I–””p¹ÜÒÒÒ·Þz‹2Ξ=;77!ÔÚÚš˜˜H•B£FêÍåù’ššÊãñB=ÊÊÊÚ¾}û‘#G †AµG­^½ÚÙÙ9!!ÁÝݽ¾¾þàÁƒ—.]Úµk—ᆊ©Óéîܹ“››Ÿ™™éààðÔdbbbžW×,ÅõõõMMM›6m’H$R©”2ÚÙÙ¹¸¸¸¸¸899!„\~ƒÅbõæò|qrr¢Zäóù«V­’J¥<0®väÈ''§Ý»wÿéOâóùþþþééémmmgÏží-&‡Ãñóóûøãy<^NNN_’qttŒÖ.Yš꣤¤dúôé3gÎ?~|IIɳ¸/_¾|Á‚ß|ó BhÏž=Ÿ}öµV©T†……ÕÖÖö7C&“Éb±FŒa¼ª¨¨hÙ²eú‡Šaƽùæ›EEEÔ!]$EGG_¿~ÝÀ‘Á`,X° ¼¼œZÔh4ééé .\¸pazzºF£Ñwÿþûï©ÑaëÖ­iii”‹Z­Žˆˆ "»ëtºo¾ù&666<<<11±ººÚd×.]º´dÉ’ˆˆˆcÇŽ¡ß†¡ .ÄÆÆ.\¸pÏž=jµÚ¤±¿Û LÔHŒ (--}F—ÿþ÷¿{÷îMHHÈÈÈèêê ¼pá5!¸páÇ}I¬»»[©T*•ÊÎÎ΃Λ7ÍfÔQ(2™Ì8 @ hjj¢ÊÙÙÙ›7oöôô4n‚Ïç·´´På“'O¶¶¶fddìÚµK$:tȤ{pppYYõVUU•Ý«¯¾jÒ=77÷ĉñññGMOO7ÙÍŠŠŠlÚ´I(AóóówîÜùïÿ»¢¢‚žá™4ö‹èãÖ­[wïÞ @444Ô××?‹Ëßþö7‡×_!DÄ´iÓX,–X,F‡††Ï!LòöÛo‡‡‡‡‡‡ÿýï?wî\tttß;Å`0t:UŽ÷óó6lÞåìÙ³ëׯçr¹ •••&Ýÿò—¿ñ¿ÿý!tþüù°°0&“iÒ½°°pÕªUþþþ®®®¯½öZoÃStt´½½ýœ9sB]]]”qõêÕ|>ßÛÛûí·ß.**ÂûÅ@æ§%%%Z­ö¯ý+m)--8qâ€]8Bˆš¦ „lllüýýúé'Ë—/oذöÒÒøÉȬ¬¬±cÇ"„zzz233?ûì³½{÷Ôqpppqq‘H$3gÎÔ·K$’É“'SåñãÇ÷Ö©TêîîN•ÛÚÚ/^L¯¢Ç2w;;»Ù³g—••½òÊ+¿üòËzs×h4ú6“9¸ºº"„ ~3|>ŸnýÞ½{c¿è·>t:]iiéš5kæÏŸOY:TZZºbÅŠÞ~åOu1vœ;wîŽ;^yå•?üánnn”‘Ëå677Ó}njjb2™\.׸E;;»°°°3gÎ$i<$$äÈ‘#~~~ô¤»»ûøñãôÞ¢•jI’………þóŸ©EGGÇ/¿ü’R$5lõæ¼gÏ@0yòd:c÷ýë_·oßž4iU¡¡¡Ád&·³T*¥ôtçÎJ@½ûE¿Ç±X,—ËçÍ›7ü7BBB¤R©þņgwñññÑjµ_}õUhh(m ûÏþsñâÅÖÖV‘HôÉ'Ÿ„††Ï0(FŒñèÑ#¥Ri¼jùòår¹ü½÷Þ«¬¬”J¥?ÿüóêÕ«9Žþáæþýû2™¬££ãÚµkÉÉÉ­­­QQQÔ*ÿ´··×ÕÕmÚ´)??¿·î¼úê« …âðáÃááá´ÑØ}Á‚ûöí»pá‚L&«¬¬ÌÌ̤j~ûí·>ì-8Ejjjssó­[·„Bá¼yó0Æ~ÑïãGIIÉŒ3¨3X OOOww÷ÒÒR“º¹ØØØüðÃÔ”…bÙ²eÇß·o_{{»««kppðÒ¥K{ËÓÍÍÍÞÞž {{{ƒUöööû÷ï?tèPzzzKK Ç ŽŒŒ4)µÄÄDªÀår}||öïßO#+W®LMM}çw F@@@BBBGG‡ÉdX,V``àùóçi£±;›ÍV«Õûöíëììœ4iRrròš5kB_|ñ…¯¯¯És1š 6tww/Y²„M Œ÷Þ`èâÙÙÙÑÑÑ}9„Ba[[ÛÖ­[-ˆµÓÜܼtéRƒ½fÒøT¶oßîææ–M[¬ñþ‹J¥jmm={ö,=_,…5꣺º:!!á7Þðõõµt./#FŒˆˆˆè‹q ðþ‹Y™>}zaa¡¥³xaprrzï½÷úbÖxü¬Ð€ôà}8@ÐÇܺÕié¬ ç·7nü<¬„{÷|o±XÝ–NÄ2ÔÕÕ…„„è[žÐǸqã"##7%+B©dµ´Œ>|ʸq]–ÎÅ2xxxÐw§)ðÿ¥h>ÿüì—_ž›0ÁõâE¸éó˜üNNNB¨±±³ººÅÒ¹X  Ç\¹Ò$•ÊBl637÷²¥Ó±@ÉϱXL„Z­ÍÉ©Òé`ØEôA¡ÕêNž¬Òh¿Bwï^WeeeS²@!tñ¢D.D/²ÙÌS§DÌÇz} „P^žˆÅú}S¨ÕÚ‚‘ZmâÜ¡è©TšÂ«NßH=?ýTc©”¬Ð*)©V*{ Œ,#/Îb@åå]6~m_£Ñ}÷ݵGTIÉzêúP(zλ©ÕêŒW©ÕÚâ⛃Ÿ’U1ÔõQTtS¥Òô¶Îb†º>òó{U€NG––V„‰7ð†CýþœT*×\fÍÚññÇ‹BBþ¶ŒãhggOùC·ç|¾³ÅÍmä„ y•ù¥d¨/Ѐôà}8@Ѐôà}8@Ѐôà}8@Ѐôà}8@Ѐôà}8@Ѐôà}8@Ѐôà}8@Ѐôà}8ÌûÿaŠ‹‹ëê^°T]\\ÜÖVié,úA||¼£“æä…ûڛ͵±±³týì{ÐìãKdd¤Y;ð|Q©ÚµÚnKgÑWNœ8aîÝóèÀúp€> èÀaú`0‰ä9F3æyX>ϱwƒŒU胦®®ŽÃá<{œ_~ù¥õI?‡—ëúÿë:®³³óÙ㸹¹3Ʋ9¼X×ñƒúø;½kÕjuRRÒèÑ£¹\nRR’Z­F1ŒÌÌLooo77·”””£GNœ8ÑÑÑ199üÌ™3~~~ööö</%%!¤Ñh¶mÛ6~üx77·eË–Ý¿ß8‡û÷ïÿãÿàp8|>ãÆÝÝ݉„Á`œ?~üøñ3fÌX¹r%US¡PØÛÛ_¹rŸésçÎ ggç;w"„¨S¦Lár¹ëÖ­ëéé1i|õÙ0ëàÈÈȾ\_GÕÖÖ’$Y[[«ŸÒ§Ÿ~ºxñ⦦&±X}º§§§ººZ¡PhµÚ²²2ªò”)Sòòò¨ø¿þú+UÖÏA¥R1™Ì7nP‹yyy€ª ‹I’Ôh4cÆŒ9þßdë&O°©B¨¦¦†PoF búP(TaÑ¢Eï¿ÿ~cc£X, Û»wï€cöôô¨T*[[[¥R¹mÛ6„PWWWllì|pãÆ7n$&&666äÀf³£££×­[W__ãÆ­[·.Y²Ä ²¿¿¿F£ùè£bcci£P(|ðà>¥õë×K$’ªªª-[¶,]ºc´$f½ú;ÿP«ÕsæÌqpp ìA¬X±ÂÙÙÙÕÕ5>>þáÇú•{+ëõÙ½{·‹‹Ë¸qãÒÒÒbbb¸\nww÷ÆÝÝÝcbbär¹q2™,66ÖÕÕ•Çã½ûî»J¥Ò`’D’äªU«†N„qL–©B¡p„ gíÚµtX#~» •ùé‹Î–-[Þzë­¾×7VXoF èÀúx‚Ž…¥S°.Ì~þRWW·ÿ~s·ò¼ÈÉiŽˆ3lÓÒ‰ô‰Ë—/›½ ³^}{±Þ¿µ±±3fíðá†wq­³îAiꉡɱc“’²gÏöÌÉYcé\¬˜üNnîe„åå’ÎN˜…<ôñ˜¶¶u‘1 L(rrª4-½H’¤Dr·ººoe¾¬€>ÉÙ‹ÅÌÏY$«ôòóEl¶áuF›] ‡º>t:òäÉKjµÖxU{;!5Û‡C]u÷îu™\Åb1OêCÌP×ÇéÓWB¶¶,ã?Ž,,¼¢Õê,£%êÏ'O›Æÿàƒùôâ®]?DDLŸ<ù÷ÿòàÒÅe„%R³ àþí¸»¿›ž¾|Á_K'b- õñÀúp€> èÀúp€> èÀúp€> èÀúp€> èÀúp€> èÀúp€> èÀúp€> èÀúp€> èÀb¾OËP_ÿ~±9r›Í±týì_°7ûÿËÎÎ6wC™Ý»w›5¾Ùõñb}bì…#''Ǭñaþà}8@Ѐôàxaô!‘H †ÉÂ3wƒ!‘HÜ–yaôáääôÏþÓš¾”¼0úàp8)))Öð¥ÄÂú(,,;v¬\.G?~|òäÉ>Ôét©©©ÞÞÞ#GŽœ5kVii)u|ÆÏÏœ9ãççgooÏãñLîõÓ§Oûøø 6ÌÃÃãèÑ£èÉ‚Á`dffz{{»¹¹¥¤¤=ztâÄ‰ŽŽŽÉÉÉtÍ‚‚‚)S¦p¹ÜuëÖõôôèW«ÕIII£Gær¹IIIjµÚ8sçÎ ggç;wöó© Yó]º§î¿<µÚ²eË–/_ÞÖÖ6zô芊 ’$322¸\n^^^KKË·ß~ËçóBµµµT4ãA¶¶¶qqqR©4++ !t÷î]ý& …]zzzkkëÁƒY,–B¡ ÝI’DÅÄÄ! BQQQAddd „:::¨š¡¡¡555åååàÃ?ÔwÿôÓO/^ÜÔÔ$‹g̘±yófƒ>"„æÏŸODnnîScñ[/22Ò¬÷_,¯¹\Îçó}||èm1uêÔÇÓ¾úê+¼>zzzª«« …V«-++£*ë7!“ÉØlö_|!—Ëu:]WW—V«5ЇH$"IR¥R”kkk©šb±˜î—@ Ðw÷òòjmm¥ÊEEE¾¾¾}Dýøã$IjµÚ§Æ40â·ž¹õaùù‡““S||üÍ›7W¯^MYêêê|}ÿ‹>‚­­mMMMXXØÌ™3>LÛ¿áìì\ZZZ^^ÎçóþùgÃŽ9!Äf³ Ê4žžžTÁËËK*•ê¯jhhàñxT[óæÍ«¯¯7NÒÝÝ!dЮɘ˜†ËëãÎ;©©©!!!6l ,cÇŽ½ví]áæÍ›øJ¥2***))I$¥¥¥ÑvúG T*u:]NNŽL&[¹reDD„L&ëožÔ!TSSCíl‡C±äryyy¹±»Éɓɘ˜† ëC§ÓÅÅÅ­]»öøñãÅÅŧOŸFÅÅÅ%%%´µµ}ÿý÷›7oÆéééQ©T¶¶¶J¥rÛ¶m¡®®'>9È`0BCCsss ‚P©Tl6ÛÞÞ¾¿©®_¿^"‘TUUmÙ²eéÒ¥ú«-Zôþûï766ŠÅâ°°°½{÷"„„BáƒÓ0ßÐÕ—ùÇž={¦OŸ®R©H’š8q¢ƒƒÃ¬Y³¾þúk„$¹{÷n—qãÆ¥¥¥ÅÄÄp¹\ãd&MšdkkëååUPP`àŽô¦,Æeª¦P(œ0a‡ÃY»v­R©Ôw'bÅŠÎÎή®®ñññ>|–˜Fü|ùç§OEOXs$`2æzùç§€5úx:£FJHH„˜æhè1ã÷M³³³£££Í@EEE!s>ä ÇèÀúp€> èÀaö÷çžåO /˜õ E3^ÿ¸sçŽÉ;™Àó…ÏçÏš5ËLÁͨà%æÐ€ôà}8þ¹ÌpaúIEND®B`‚XQilla-2.3.0/docs/simple-api/PlatformUtils_8hpp__incl.png0000644000151400015140000002726411653571064020254 00000000000000‰PNG  IHDR8u$ûÆybKGDÿÿÿ ½§“ IDATxœíÝw`uÞ?ðïôdÓCH/¤NEIb Ù¨åÅCñ¹;ðПxâ)âsžå°  Gñ„¥Äižé†ô¶É¦l’-óûc|æ†mÙ$›my¿þZ&;3Ÿ™ý0»Ÿ™oáPEL ר(C¡&… ˜*`r¬Œ([°`±C˜pΜ9cìàŒú`j8NLL ŸÏ7v Bkkkyy9¾ L ž¨˜¢ìììäädcG1!äçç¿ùæ›ÆŽ”¡ ˜*`rP¨€ÉA¡&… ˜*f)…%==ýÕW_mjj"„444¤¤¤è²Š¢Þ~ûí… ê1¤††íKØêª¦M€C¡`®>ùä“Ç …Â?ü®:†]¥©©iÉ’%ô뎎Ž~øá믿ç0•÷;iÒ¤åË—`§`ÖP¨˜+WWWwww°°° 6”••õ÷÷k_E¡PˆÅbúõàà !Ä0ÓJ²÷ëââ²víZìÌ KÀår !r¹œ½ðÒ¥KÏ=÷\ZZÚ²eË8@yá…!>ú¨ÒkBHooï»ï¾»dÉ’ìììO?ýthhˆnšuýúõǼ¤¤$%%åĉ«W¯ÎÊÊ:pàÀéÓ§—/_žžž¾{÷îaÃcïKm‹¯‹/®Y³&55uÅŠ§OŸV»‘‚‚‚•+Wfffîß¿ŸÙÎO?ýôä“O.]ºôã?–J¥jŽèL€‰@¡`®$Iccãßÿþ÷ÈÈH'''æ¯ýýýþóŸÃÃÃ÷íÛ·nݺ;wvuuíØ±ƒräÈBû5!äÃ?lkkûì³Ï¶mÛvõêÕo¾ù†^~ðàÁM›6…‡‡B®]»öé§Ÿ®]»vçΗ.]Úµk׺uëöîÝË<-ÑDi_ª²eË–¬¬¬ýë_O>ùä{ï½700 ú¶Ë—/ïܹó•W^ùòË/™=;vìwÞùë_ÿzùòeºÓ´Ì sõì³Ï.Z´(==}õêÕb±ø7Þ`ÿÕÆÆf×®]ëׯ÷ðð ÛwõõõiÚ”L&ûñÇ_zé%__ß§Ÿ~úÌ™3ôŸÖ®];mÚ4;;;BÈã?îààššJY±b…ƒƒCZZ!¤§§g,"•J)Š’H$666iii¹¹¹¶¶¶ªo£÷>gÎö×­[ýì³Ï21«]æÅÊØÀ(íÛ·Ïßß_Ó_­¬¬êëëßÿ}‰DB?ÑB$) ???úŸþþþmmmôë   æmô–•^3(ŠRûZ;''§>ø@(îÙ³'""bÅŠ³gÏV}›‡‡!„Ãá°0q21«]æOT,Óààà–-[žxâ‰/¾øâ¿ÿû¿µ¿ÙÍÍËåÒB===é×J¥ˆ|>Ÿ=‚p]]ÇÓ¥³þàà B¡Ø²eKnnî¢E‹^{í5µh”JZ}}=ýâîÝ»t%£i!˜*–I*•Êd2++«¡¡¡={öB˜1Á$‰Ò›­¬¬RRR>ú裦¦¦Û·oïÚµkþüù#ÝcZZÚG}téÒ¥¦¦¦ëׯ¿ýöÛ©©©ÖÖÖÌT÷Kãp87n<þ|__ŸT*µ²²¢›~?~\Ks5Ú'Ÿ|ÒÐÐPYYùå—_.X°@ËB0/hú`™&Mš´nݺ­[·ÚÛÛ¯X±bÞ¼y¯¼òŠP(Œ‹‹[¶lÙ÷߯ôþ—_~ù“O>ùÝï~gmmýðï\¹r¤¦žzê){{ûO?ý´¥¥ÅÃÃcÞ¼y«V­¢ÿäãã£i¿„›W_}õóÏ?ommõóóÛ¼y³ !äý÷ßOLLtttÔ²Óùóçÿñ˜7o³Ò˜ŽîmˆÀ08ÎæÍ›“““ˆIkhhXµjÕÙ³g‡]¨]~~þ›o¾‰oCSƒ¦_`rP¨€YrttÌÌÌÔe!˜#*`–\]]ÿð‡?è²Ì 09(TÀä P“ƒyTŒopPV]Ý\QÑTUÕT^ÞèätŸ±#šX¬­ùÿó?§¢£}cbü‚‚<¸\ޱ#*§PPuuåå••M••MMwî´Ëå kk^h(?2ÒG&;Ɖ…Ç›têTÉG‘Jå6QQ¾ÑÑ~ÑѾQQ¾11~®®Æ`"B¡0¾ ª¦¦¥ºº¹ºº¹¸¸¾ºº¹¡A$“)ll¬¢¢|#"¼ŸxbVD„O||€·· ½ÊgŸ­6nÌÍÀ@íéÓ!--ÝôgTUÕüÏ^¼u«U.W8;ÛGFúDFúÐSl¬¿££­±C°|˜™@ÏZ[{ŠŠêè»ÕÕ-µµ­½½ƒ'(Èþ¥ááâemÍS»‡âææ6òsÝ(Šcg×>Æ£0ÜÞ^;»6+«Ñ­/‰jkkÕ~J¥òÚÚ¶ââ»ÕÕ-ÕÕÍEEu­­=„ooçøøÀˆŸˆïøøÀðpo´Ð;*cÒß?TZZ_]ÝRUÕLÿ¢íîî'„xxLЉñ‹ˆ ïÄ{GEù9;Ûé¸ÍÇ{lD1Péî¶mk³ï谗ɸ|~D„ÕÖºBBBº ¹Ó¾>ëÒRO©”ëì<äåÕïå%±²RŒb;ÔåmÝÝýUUÍÌS—ÒÒ‰dÈÚš7eŠW||ýÔ%11ÈËËi1 €Ë7o¶2·Ø‹‹ï¶´ˆ !vvÖÌýuº2aÚq™LqölEnná™3åb±$))8;{fzz¼››ãxïZ­çŸÿšòùç†n·¦PP·…‚œœ}}ƒ3fggÏÌÊš>iÒ¸7Ð’É ":èbµ¦¦…¢(v2ÄÇÚÙYw0… €FEÕÕu²†Þ¾Ý&•ʹ\NX˜7ó4"ÂÇßßÍÊÊ@¾SuõêíÜÜ¢ãÇ‹š›»gΜ’™™¸hQ¼ŸŸ«aÐÄX… cpPvþ|•PXpòd —ËIM*$%'Gijb7zznßncžº”•5tvöYYqCBøì„ rçpÐZ @*ÿÑÙÙWVÖPUÕL7쩪j‹%„>ß)!!ˆ~féÂ7ÀÝzU¥¥ ß~{åÔ©’úzQHˆ×Ò¥Ó33#"| ‰ZF/T]]ýyyE‡]-(¸ãêêž/$Íšb”`ZZºÙ-+*¥R¹³³]d¤/:èhB&®ÁAYUUs󻺺™nÇåà`ëÏüˆŒŒôqq1æµwî´>\›[T]Ýä‘”‘‘i*õ Ãt F}½('çúþý?ß¹Óî½xqâ²eIÁÁžF I©ƒ>ÓzP©ƒ~XŸÇäÌ0¡¡P€‰‚=L0}‡»¶¶U&SðxÜÐP>Óš=L°qµ´ˆss …‚ââ»^^N‹OËÌLHJšb²L™`¡Â(.¾{èPÁ±c×;:zãイGáînœÎ>P HZ²dš—×Dœ±D©ƒ~UUÓà rýØXü'µP¨L\EÕÕu²§VPîî5ëïïf¦ÓGèÝyšž…þݹpaœ¿¿›±ã29(TØärÅÅ‹7ºzâDÉÀÀ¯sG¦§'88LÜvPZ:èÓ[è'´QQ¾­¨…B`éèè-/W3L°Ò0>¡{‰.ØS L™âõè£Ó-x ½@¡¢3wäÙ³öö6<2533Ñ|çŽÔ/±XRYÙ„ú  ‹50 e•L´a‚Ç¢¥¥[(, §@ñöv’‚$Ô'º@¡¢]KKwnnQnnáÕ«·}|\ÒÓ{lf\\€±ã2-t}f¸tИÈP¨Xˆa‡ þ¿{“°{‰.ØS ¸»;.Y2}BM¢(TtT]Ýœ›[(üòK=wdvöÌ  Ë™;RèÖbÅÅwéËZEEc{{/Ç ¸§ƒ~x¸7þ«X*檵µ§¨¨ŽŒ«¶¶µ·wpb<½½ƒ'N …/Þ´··NK‹ËΞyÿýa˜ÃnP¨ŒˆBAÜÎÍ-:räZwwÿŒÁÙÙ3—,™æä4QÐtИ8P¨˜‡þþ¡ÒÒzö×3=L°‡Ç¤˜˜ :LðX0S œ?_ÅårÓÓã33z(ÒÖ]xG…ÊèÐsG …'O–p¹œ‡²ü¹#õHµƒ~]]'EQè `P¨˜"¹\qóf+]( ÌtyŸ°Ã{ ‰d(99*##á‘GâPÝé •1êîî?}ºŒž;ÒÅÅ>##A Hš9s f¥úåå}}ƒt}ö`†“'£­€©C¡`|&x¼)M2gN¸@´`A¬«+FÐ'*úÒÐ :vìú7ß\®­m p[²dúг§L™@sGê—–úLç=tÐ0A(TŒ ³³¯¬¬Œ«ªª¹ªªY,–Bø|§„„ ú™Id¤OHÒ$[ckÞ®\©ÍÍ-:q¢¸±±kæÌ)™™‰ééñ¾¾®ÆŽË2¡PÑ;zîȃ¯´µý:wdVÖtOÏIƎ˼1ôéGÖ……umm=è `‚P¨Œ»ÁAYUU}'=L°ƒƒMl¬?s?ÃëQmmÛÑ£¿NÊâ‰Y‹O t7v\…Ê8aæŽüþûâÁA=wdFFžèKww?}‰fwП4É6$„Ï4µ‰ñóð@‰`P(TôLÓ0Á<74”Ϛ Ãë{ ”É“=‚$LÑhH(TÆ[OÏÀÉ“%yyEgÏV88ؤ¦NÍÌL|øáh R§_2™âÖ­VtÐ0:*cÕÖÖSYÙÄ Æuûv[OÏ!dòd líí½ÇŽý:Š‡Ç¤Å‹§eg'ÅÇ;® …ŠÁ47wçå …ÅÅw}}]-ŠüñYS§ú;.‹%TV6¢ƒ>€¡P‰d¨¤DÍ0Áî±þ>ô—VT”¯³³½±ƒµpì)Pm/ž&$͘Œ»ËÆ‚BÅ𪪚óò *¨«ëˆˆðÉÎNfz{;;.˧ÔAÿÖ­V¹\áìléÃ<6Ÿ:5ÀÁÍóF… €6JÃWW7×׋är…­­Ud¤/† 6 ‰d(/¯(/¯èüù*»hQ|ffâܹ‘hƒat(TŒ…ž;R(,ÈɹÑ×7HÏ™•5£qŒÚú„oogúa ý}ú#‚Bà¿üÒA$ôM2Õa‚év\¡¡| l`R©>hbgB¾ýöÊÎç ýÏÎÎ>Bˆ»»#ýO.—ûÜs=þø,£Å„Ô׋rr®8pùöí¶°0þ’%Ó–-K ö4v\€úÃC¡‹¢(¦c {ºw¥a‚#"|ÜÐýÚt°§@‰‹ ÈΞ™–àfì¸@šš–¹sßÕò†óç_ ã,Т¸øî¡C99×ÛÛ{é¹#—.މAL :è(A¡–£½½·¢¢QÓ0ÁL_F lšêê:ºJ×'ÁÁžË–ÍÀ(faþüíMª_%'&ÆïÌ™ F‰ 4aÏ)“)æÎÌÈHÀÜ‘¦I©ƒ~QQ]k+:èÃÄ‚BÌ{˜`v;.GGÛ˜?f0.´ã2qì)P¼¼œ‚™Aê3òùçùo¿'“É•–[Yñ^=síÚ¹F‰ †%œ:U’—Wô㎎¶©©±ÙÙ3çÌ çpð“×t©í O·cš L›6ôÁb Pó iºw«¨( l*jjZlüý‡o¦EO°MOâêê•5=33!)i î š––î3ÞT(”¿J¸\εk[0¡‡ékjê:~¼øàÁ+¥¥ ~~® Æ/_>;&Æoؽ¾pa†Ý3"v}ú¶]MM :èƒ%A¡&ª¥E\\|Wi˜`‡~Ï0ÁhÇe:¾û®ð÷¿ÿæÅþÃÑôö(ÖÖ¼´´¸ìì™÷߆>BfméÒ®^½Ã®U¸\άYSŽyɈQÁHUU5 …BáÕ–1=wdvö,>ßIí›ûû‡ââÞ˜<ÙcïÞçt¹7†!ܹӯ{±–aÿþK›6 år³„ÇãnÛ–½bÅoŒŒ3wä±c×ûû‡è¹#—.îèxÏÜ‘G^é¥}„pœœl÷ìYó›ß„+`ÐN—ú±±þJŸïèÔÕuÖef&¢ }A¡#&“)ömÛ÷ƒƒ²[·¶¢­ÎЬ²²‰.Hèg֪ã—¹hmíyæ™ÝEEuÌïÔ“'ÿH¡(êÂ…šC‡®þðCyoï=Ê#Luv¶7jÈ gÝÝýqqfwS±²â•”üÝÃÌÚà ìôéR¡° ?¿’Çã.X+$¥¤DÓsÝ>öØŽK—nÉå ‡p8œW_MñÅyƆ7®ôsrn¬[÷ÏiÓ&¿õÖÒéÓ'Cø0á P‘9s¦ì7ŽÔ׋èf?ýôÚ”)^ÚW¡(ª®®“݈Vuºwúúèïï†éÞÍ˵k¿<ýô—]]æGªµ5oÍšÓÒâØS dgÏLOwss4n´0~ž|rç¹s•2™‚beÅMNŽúç?Ÿ3vP ]]ýyy¿ÎÉç;ed$Ι¾fÍn¥Æ~éé ÿûrŒfv”:è—–6H$CJôƒ¼¼Ô7d{÷ÝãÿøÇYŠ¢(ŠZ¼8ñõ×3Ñ,Æ… èêêÕÛ¯¿~¸¤¤‘Ë%ô÷‡C¾øâ·éé Jïìèè-/ÿÏ0Áwî´‰ÅDå† º—˜»ýû/½úêaŠ¢Øm~!¶ýýƒ!!^YYÓ³²¦c‰ 'çÆ‹/ \.gÇŽ'/žfì @ÏÊÊè&aR©B,î§ëRÇ óÚ»w-f=2kš:軸8°Ç­‰Tm»»råçùù•ôïJºçáòå³ÿô§E˜®F … ¯®®ã­·r¿ÿ¾˜Ëå°’Z[óÖ¯Ÿÿâ‹ó˜Ë† ž ¤Rùk¯ ¸LQ„5×íÛ[¹ò>ƒÇF#‘ ÅÆ¾>0 %„ØÙY—•mÅuK%—+’“·ÕÖ¶©þ~°²â:8ØîÞýÌý÷‡%6==·oÿ§ƒ~YYCg§úú‰‰›ÛÚzØëòx\{{›—_žÿÜssml0òŒ Ц§gà£~øâ‹|…Bù®9!„Ë儆òëëEÉ!$0Ð=*Ê72Ò'&Æ/2Ò7,Œ&©¡A´zõ®êê&¥û© kkÞòå³ß}7ÛÀq­[÷ÏãÇ‹ádd$ìØñ¤±ÃñRYÙôðÃïiú+—ËápÈ–-YkÖ‘‘¾NNËòýôÓÍgŸÝÓ×7 ©J¡9;Û•”lE¥:¡œ:UúÌ3» ¡öìY“š:ÕØáÀxy÷Ýã;vœÕò½@!„³bÅìwÞà"0ˆÅ••'N”|þy¾¦÷ðx\¹\qß}¡ùËÒØXFæížÇp‰D$+0……õÛ¶ýPSÓ®¶U[GGovöÌ1Î$%‰$ÉX¶†‘›[úöÛ§ärŰ÷7Äâï¾ûù¾û¦$®á¹¹¹ÙÛi¨1dé°¢£]m!QQ®ÆǤÙÛÛ»¹©#‡±Î0EQß~{y¸*…B8ðseeÃöíK\\0ÊŸ©¿+a@€««5]¨]‘^~ùrí#üϲe Ï??ÇÕ‰j(eé=¿/{zzª«« ˜Š¢ÎŸ¿›“SÝÚÚOÅår¬¬¸R©BÓ“7…‚ª®nŽ‹ ËNÛÚÚÆ²oE„ÂÊ'niÂ&^ñðŽkTº‹‰‰ã×3²T3gú©­½iì@L——× c}Y76öZYwwåçç254¤\½TT4?ûì¾—_žÉ磃¢I×+áµk5ŽÆ›X\.‡îæJQäÈ‘¢Âºµkýý‡I &¥,Us#<99Ùpá€éII!›7©T~ófKuuKeeSMMKYYÃÝ»"…BÁårlm­¥R9}GÃ!Mc,T!^^^±±±úÆKJJ²±C¥üü|½lY:,[Û@‡`î?íÊÊÊô²˜˜>ßCê­X‘aøÂØ÷•ð½÷nÈd¿*t¿ù¡!!ÄÊŠâåîîî.¬ ‰j–bPÏÚšíí·dɯcŒ ÉjjZjjZè¹KK›šD UUÕdÜPÀDÌžbìÀ(Šºy³…bkkÂõ£k’ÈHŸÀ@Ì£†BteccëÏîwãFq]]Wp°©ôCãÅTÖ`d2Å_ü¶…Õ]IDAT64”àÆáà:zƒBFÏÆ†æhì@Àh¬­yÉÉQÆŽ,Æ€ÉA¡&… ˜³/Têêêž~úéaßvóæMºwó‚½ú7¬¬¬:Ä,ÏÉɱ±±)))˜•pX‚ƒƒŸzê)íÓ5PµjÕªI“&é¾ý›71­ž ñ8Nxx¸Ò 6 .d>PµŸ,G1¨®”p¨z§—,%÷&•‹‹KFFÆíÛ·Gɰé¡úé=èŽ:3‘úe^×LMa¨v§#‚¬¦œ{zLíÌ7Q;P9vìXVV–Ú?ÕÖÖzzzÒ¯]]]ÿô§?iZ}Ú´i¯½öÚúõ뻺º!ÝÝÝ/¼ðÂæÍ›ãââÆ/r¶‹/655Õ××ïÙ³G,OŸ>ŽD­ÆÆÆýû÷———&6PË0‰wç΢¢"f-‘Htþüùac£Ó‰m¤G§#]ŽŒH/YJ¿¦“ª±±ñܹs …bÕªU#ŠéæuÍQÆŽn§`0¦œ{#]‹ðH™i¢š}¡rúôéÔÔTµR(ôkOOÏwß}WË꯿þº§§'£›6mòõõ}å•WÆ-je^^^>>>þþþ)))G ùàƒ4½Y"‘B‚‚‚ ¨2LâÍŸ?Ÿ}ÿæ»ï¾›;wî°±ÑéÄ6’#]ŽŒH_YJþ/©|}}wîÜyñâE±X¬{$H0¯kæˆ2vt;ƒ1åÜéZì€GÊLuÄ…Êwß}çïï/‰!ß|óMDDD__!D*•nܸÑÛÛ›ÏçoܸQ*•ÒÏÎþýïåççoÞ¼9((ÈËËë©§žb¨®EÉÍÍ·³³ Ù»w/!D&“©]½½½ÝÑÑÑÞÞžýœŽyý›ßü†BÿJSûô–YbccóÕW_íÞ½ûwÞÙ³gÏW_}emm­)H=š*‡ó»ßýîøñãš¶Ã>.·yúôé°°077·wÞy‡9999‘‘‘|>ýúõƒƒƒjêšão&!$;;ûàÁƒÌ³Z¡P(ôx5 ¦³ª”šŽ´««ë·¿ý­§§g@@À† !gÿþýÑÑÑîîîï½÷žÚ Í=Q-5K•ðx??¿;wîÐK ß~ûmMkI$…BqèСÎÎÎ5kÖdffvvvª]ýäÉ“iiiìÀè6Ó º…Òêëׯ߾}ûC=´yóæçŸžÝ¿jüM50Š¢>ýôÓôôtí{§é¸Mµ£+Ò D©®®¦ÛHhZh"&ZâÑæÌ™ÓÓÓsáÂ…3gÎh·DGª'P÷óC/×%=¼½½y<^mm-ýÏ[·nùûûÓ¯¹Üa.8¨™¥šH$’Ç{lãÆ×¯_ß±cûOš>kM«—½³Ç´)++SÚ”öB•¹'¤Ef£!¯™J´|kÚéäÉ“ÙyXQQÁ¼¶Ô¬£!÷tÏ=íkiXí)U{òµïˤ•]µèòDE.—ÏŸ?ÿ­·Þêììôññùî»ïèåëׯôØg³gÏþ¯ÿú/vÙ·yóæøøø’’’’’’xà¹çžÓ´–D"±³³ …mmm_|ñ…D"Q»úªU«èíÐìÚµ«»»{éÒ¥„UwÒ ôU eöê …"##cîܹt»©¡¡¡øøøåË—àÐ(Š"¬á‰óóó—,YÐÕÕ¥ËÞ5msçÎÌ«Ž'¬Â7%%¥¦¦æÊ•+áááþóŸÕ.Ôž †|¢2ùà^xá…èèè””¥åDeTMµ éåjO îçGKÎ()EQ+V¬˜7o^mmmIIIll,HªyH*Q vÑ"³”ÒüDE$q8œ'NôõõÑ£ß\¿~ÒüQj9XÕ]0Ktߡ~Èçó;ÖÔÔtâĉæ;R—‚2«+ç°Ym‘Ù8N×LŸ¨¨ž„awúñÇœ:uª½½ýßÿþwdd$‡Ã1JÖQ¸špî©]kØ€ÕžM'ß\UM¿>þøã„„úIÐÑ£G}}}éÖ{b±øé§ŸvssóððX»vm__û6lØàçççââ²|ùr‘HD/W]‹¢¨o¿ý644ÔÆÆ&***''GíêCCC‹-b¶uëVWW×ÐÐМœz¿R©tΜ9“&M¢TòOiõ¯¾úÊÖÖ–iE@QÔ•+W¸\®P(ïC£îm ¸råJö‡¤}ïZ¶©ú£º7Ÿ¾üòËÉ“'{zz¾ôÒK‰DíBíÉ`ÈBe&óÁåççBþñÐïa_ø”¨]H/W{u??jÓCí‘RÕÙÙùä“Ozxxøúúþþ÷¿g rÕœ4L¢ìëÙ"³”ÒÚôëoû›»»{``àŽ;–/_Îçó)Í¥–ƒUÝ{‰Ž{‘ÉdÛ·o stt¼ï¾û蛋ìS=ìåÔŒ®œÃfµEfã8]3u,TÔží;•Ëå|ðAhh¨‹‹KZZZNNŽ———Q²ŽÂ•ЄsOÓZÚV{r4|sITÕ,å°O_kkkyyyrr²ê KróæMÕ JÕ.ÔŽ~P;Æxôµ?£HqÚé("ÉÏω‰áóùc Y &uåÔKVÃxËËË LHH ÿyøðá­[·Ò½§t¤¯¬#¸‚f¦“¨ªYjö>˜ âââU«V]¿~½¿¿ÿçŸ~ã7ž}öYc Ì”ÕÊØ€8;;?ÿüóº, %=¨`R0R¯¼òJVVV[[[HHÈ3Ï<3ÒlAÖ˜r¢¢éŒš~Y@ƒ0)húF+!˜>4ý3€BL 09(TÀä P“£fxâÆÆFÃÇæh``ÀÎÎN_›Bâ‰C–‚^èëÊÙÕÕ%“ÉÆ¾€Á• IM¡R]]mø8ÀLé«PééééééÑË¦Æ ²ôE/WNüX£À• ‰3¢™í }TÀä P“ƒBL 09ÿ¯ÂÈ£µçìIEND®B`‚XQilla-2.3.0/docs/simple-api/inherit_graph_26.png0000644000151400015140000000430411653571064016464 00000000000000‰PNG  IHDRí( êßbKGDÿÿÿ ½§“yIDATxœíœmLSYÇÏ…¶(–—¾ÐUl TѲŽLt`#‰™ðE( HÀ£8ÌBAÀ ˆkÌÆåMÍXXÓ’!Ë ™’4L¢'cj!¸K V@(´…ÒÒöӹ´¥`[-tÎ/|8çÞsÿ÷9÷ù÷ö¹/Ãq ;?o€@xäc„/€|Œð¾‰Øéïﯫ«óV(ÛœªªªÔÔToGñNž<éí¼LJJʵk׬Ýu>ž™™éëë …Ÿ<ªíNWWWQQ‘·£ø¾¾¾äääèèhoâBCC‰KHöƒ¤Ré§ŠgÇ€a˜·C°¥´´4++ËÛQxû‰£úá #|äc„/€|Œð¾€+>Æ0lttÔã¡@FGG]¸9à<$Çsssƒ‚‚Ü m‡ؽ{÷±cÇär¹G”7Ê‘›Æp-õmq>§Óé°rùòeÏê¿}û¶³³sxxس²öLNÎ÷ÝÓ½—­óìÙ3•J¥R© Ell¬H$òìëÄÄy÷?=‹e~~¶étz}}½gõõz=€ËåzVÖÊÜœ¶·W.•þ<88ÅbQÏž=ö‘vô¡0Œˆˆ@DDDCC‹Åš››c2™žÒ'&λxì|¼¸¸˜ŸŸO§Ó£¢¢ÊÊÊVWWM&SMM —Ëe0gΜY\\„#=z”˜˜Èf³¡e“““ðˆ¿\ì5†uvv ‚°°°††ûHìõ7’ufU"y‘‘ñÄÄšêê+¿â8n±X\SûØÉd …B£Ñ`wmm­¼¼œÅb1™Ìòòòµµ5@ooï¡C‡víÚµoß>±X Ö§Ãþ{ßæÀÁ0ìÞ½{€Á`Ô×׋Å☘&C©žžž¸¸8&“YRRb0ÜšN@"‘Ø,q@©TÚ,ÌÉÉ9qâÄØØ˜B¡HHH¨­­mllþ|AAuí7222&'' ERRÒ•+Wt:]@@@ss³J¥º{÷.‰DÒétSc߰…ììlFÓÞÞÈÊÊÒh4---€÷ïßà ÓÒÒFFFž?ÎçókkkmÔœ  …BáºÉ;.ûØh4úûû Ánww7ŸÏ‹‹ëîî†K†‡‡aÛ`0¼~ýZ§Ó™Íæþþ~(åð`9Ô„{—Édp€5›#h3€¨¿‘ì¦S‹ÿ%•¾ÈËkårÿÊá”FE}K´ïöô1‘   ááaëÚøøx•JÛOž<9|øð™LnjjR«Õ‹E«ÕšÍfw|üòåKü·,ÛÖŒ( 8X"‘ðù|w|ì™úxffÆl6óx<ØåóùSSS€ØØX¸D …B)**Òét‰‰‰.h8€L&o´­“Nd7âÕ«_©Ô?×Öþ²²ò‚Dò3™,³Ùñ“Á`‰þé\Ð}¶ô†R©äóù€•••êêê¸jbb‚Íf[GÒh´ÐÐP™LvëÖ­ššš¤¤¤ŠŠŠS§NÕì?Î ¿eضbµG||ü¦YpŽg|Ìb±üýýÇÇÇ÷ïß‹ŒŒÄq|bb"!! —Ë?~\YY©×ë³²²¤RizzºÁ`¸ÿþiÂU~~›”õN8‘uˆÅ‚¯¬1 ÛzCB·:ÔUpüêðÀÀÀüüüÖÖVÇaK§Óe2tùâââ»wïôz½Åbéêê2>LOOŸ…››L&‰4==íÙY(•ʃFFFà©Çe\ôñÜÜñvlDD„H$*))ikk[^^®ªªÊÉÉÁ0¬²²rïÞ½€ .@ß £ÑH¡Pôzýõë×Z­~Xu:Q“L&Ûkº1Seýü°/¾à--ÉZZþó§~xõý÷?/-éI$“Él?> €ÔÒrÖý8ÓÚšÿ¡›P©T­V«ÓéàÑ>}útEEESSÓÒÒRqqñ‘#GÓÒÒ:::RSSF#™L „—­<ÈÌ̼}û¶Ce›ÄmK—.µ¶¶ªÕê«W¯æææº ð;Ä"cëõ±½ÈÂÂB^^^xx8›Í.--Õëõ«««eee‡F£egg«Õj¸ùÍ›7⣣ïܹ“Íd2×ÖÖŽ?dSrÙkÚaëc›¶MáåPvÓ)[ëQ“ÉüÓOÿýúkqLL9‡óMdäö½Î#^ƘÍf*•úæÍØÕh4¡¡¡áááÅÅÅËËË8ŽK$G¡Pâãã{zzàȺºº×ÓÓÖ—ÅÄÄá›e؆ ííí{öì¡Óé/^ÔëõîÔÇNð¥T*õø­rßÃ0‰DbóÚ«F³úãŠîî_ž>Ub†ã¸Å‚3™Árùß¼Ïbtt466Öe§Á‰_”ßÏAv(Tê.‘ès‘èsøD"y144½iíŽø {#¸°ðËÂÂ/''çe²ÿx;œ•J=wîœÑÉÓp¹áÛç¡ôv†Éd677{Pùá #|äc„/€|Œð¾ò1ÂppÿývØŽ ®®¾`ýdpp0%%…¸d£££Ñ»9D(n«Sûƒ§)%%þ+Š ½MðP}Œð¾ò1Â@>Føÿfžm•½@IEND®B`‚XQilla-2.3.0/docs/simple-api/ATGYearMonthOrDerived_8hpp_source.html0000644000151400015140000002346111653571063022103 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATGYearMonthOrDerived.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _ATGYEARMONTHORDERIVED_HPP
00021 #define _ATGYEARMONTHORDERIVED_HPP
00022 
00023 #include <xercesc/util/XercesDefs.hpp>
00024 #include <xqilla/framework/XQillaExport.hpp>
00025 #include <xqilla/items/DateOrTimeType.hpp>
00026 #include <xqilla/items/Timezone.hpp>
00027 
00028 class DynamicContext;
00029 
00030 class XQILLA_API ATGYearMonthOrDerived : public DateOrTimeType
00031 {
00032 public:
00033   typedef RefCountPointer<const ATGYearMonthOrDerived> Ptr;
00034 
00035   /* Get the name of the primitive type (basic type) of this type
00036    * (ie "decimal" for xs:decimal) */
00037   virtual const XMLCh* getPrimitiveTypeName() const = 0;
00038 
00039   /* Get the namespace URI for this type */
00040   virtual const XMLCh* getTypeURI() const = 0;
00041 
00042   /* Get the name of this type  (ie "integer" for xs:integer) */
00043   virtual const XMLCh* getTypeName() const = 0;
00044 
00045   /* returns the XMLCh* (canonical) representation of this type */
00046   virtual const XMLCh* asString(const DynamicContext* context) const = 0;
00047 
00048   /* returns true if the two objects are equal 
00049    * false otherwise */
00050   virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0;
00051 
00054   virtual int compare(const ATGYearMonthOrDerived::Ptr &other, const DynamicContext *context) const = 0;
00055  
00057   virtual bool hasTimezone() const = 0;
00058 
00060   virtual ATGYearMonthOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const = 0;
00061 
00062   virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0;
00063 };
00064 
00065 #endif //  _ATGYEARMONTHORDERIVED_HPP
XQilla-2.3.0/docs/simple-api/classxercesc_1_1MemBufInputSource__inherit__graph.map0000644000151400015140000000060711653571064025145 00000000000000 XQilla-2.3.0/docs/simple-api/classVarHashEntry.html0000644000151400015140000001536611653571064017130 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

VarHashEntry< TYPE > Class Template Reference

The class that stores the values of the variables. More...

#include <VarHashEntry.hpp>

Inheritance diagram for VarHashEntry< TYPE >:

List of all members.

Public Member Functions

virtual ~VarHashEntry ()
virtual const TYPE & getValue () const =0
 Gets the value of the variable (overload in derived classes for special behaviour)
virtual void setValue (const TYPE &value)=0
 Sets the value of the variable (overload in derived classes for special behaviour)

Detailed Description

template<class TYPE>
class VarHashEntry< TYPE >

The class that stores the values of the variables.


Constructor & Destructor Documentation

template<class TYPE>
virtual VarHashEntry< TYPE >::~VarHashEntry ( ) [inline, virtual]

Member Function Documentation

template<class TYPE>
virtual const TYPE& VarHashEntry< TYPE >::getValue ( ) const [pure virtual]

Gets the value of the variable (overload in derived classes for special behaviour)

template<class TYPE>
virtual void VarHashEntry< TYPE >::setValue ( const TYPE &  value) [pure virtual]

Sets the value of the variable (overload in derived classes for special behaviour)


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classSequenceBuilder-members.html0000644000151400015140000001776411653571063021264 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

SequenceBuilder Member List

This is the complete list of members for SequenceBuilder, including all inherited members.
atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)EventHandler [inline, virtual]
attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)=0EventHandler [pure virtual]
commentEvent(const XMLCh *value)=0EventHandler [pure virtual]
endDocumentEvent()=0EventHandler [pure virtual]
endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName)=0EventHandler [pure virtual]
endEvent()=0EventHandler [pure virtual]
getSequence() const =0SequenceBuilder [pure virtual]
namespaceEvent(const XMLCh *prefix, const XMLCh *uri)=0EventHandler [pure virtual]
operator delete(void *p)xercesc::XMemory
operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
operator delete(void *p, void *ptr)xercesc::XMemory
operator new(size_t size)xercesc::XMemory
operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
operator new(size_t size, void *ptr)xercesc::XMemory
piEvent(const XMLCh *target, const XMLCh *value)=0EventHandler [pure virtual]
setLocationInfo(const LocationInfo *location)EventHandler [inline, virtual]
startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding)=0EventHandler [pure virtual]
startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname)=0EventHandler [pure virtual]
textEvent(const XMLCh *value)=0EventHandler [pure virtual]
textEvent(const XMLCh *chars, unsigned int length)=0EventHandler [pure virtual]
XMemory()xercesc::XMemory [inline, protected]
~EventHandler()EventHandler [inline, virtual]
~SequenceBuilder()SequenceBuilder [inline, virtual]
XQilla-2.3.0/docs/simple-api/SchemaValidatorFilter_8hpp.html0000644000151400015140000001064711653571064020674 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

SchemaValidatorFilter.hpp File Reference

#include <vector>
#include <xqilla/events/EventHandler.hpp>
#include <xercesc/framework/XMLDocumentHandler.hpp>
#include <xercesc/framework/XMLErrorReporter.hpp>
#include <xercesc/validators/schema/SchemaValidator.hpp>
#include <xercesc/validators/schema/identity/IdentityConstraintHandler.hpp>
#include <xercesc/internal/XMLScanner.hpp>
#include <xercesc/util/RefHash3KeysIdPool.hpp>
Include dependency graph for SchemaValidatorFilter.hpp:

Go to the source code of this file.

Classes

class  SchemaValidatorFilter
 The SchemaValidatorFilter class will modify the incoming event stream by validating it against the schema definitions found in the DynamicContext's DocumentCache. More...

Typedefs

typedef XMLSSize_t XMLFileLoc

Typedef Documentation

typedef XMLSSize_t XMLFileLoc
XQilla-2.3.0/docs/simple-api/inherit_graph_4.png0000644000151400015140000000373011653571064016402 00000000000000‰PNG  IHDR½($l—bKGDÿÿÿ ½§“IDATxœíšoHS_ÇÏuj*šÓ9œRø#¤ùBMJKZ`ýÃþi¨•©ÒŸQ’&Ø ë…/ _”jÛˆJ(BÄJIÑ2Ó­(Ó­¡›c-t.×Ôm÷ü^ºÜî½›ófZp>¯ÎŸçžó`Ý`ø€uƒáƒ?£^[[ÛÝݽ*®`þf:::èU¦n4ͧOŸÒÓÓWÐ%Ì_ÍÄÄD__£‘©@zzºJ¥Z—0ÿ*•êøñãŒF|ƒáÖ †X7>`Ý`ø€uƒáÃo馶¶– ˆºººß÷ƒ ±~ýúS§NY,/öcccAüþ¼ËÂ’P(Û¶m“H$v»²Ôjµ---à×U =pàÀ—/_çhÎþº*Џ¸8¥RéÝR§Ó …ÂEìíí5™Lƒ¡©©Éf³¥¤¤X­V~¾ù8£ï!,;YYY&“Éd2õööL?yüø±Óé¼yó&eYYY™žžž——‡ªh•&''»ººH’.lnnîöíÛ+** „eeer¹<11‘ÓR \.—#/ÉE`èÈÇ|C’ä† !„UUUR©µÓwUfl©üüüÌÌL­V«V«¯]»¹¶Ë›7oÂÂÂPùÆGW«Õ)))•••ô1½÷r,ÂÞ½{Ÿ?>44D•M&S```QQ‘Á`hnn|ýúµ««+""ÂétB›››¥R)I’ô(^¿~]PP999ɹ’œ©qdddÍš5.\‹Å( CCCß¿·ÙlcccGŽIMMetÑa ÛÑÑvŽN§ãt†Î|ÃS7}}}þþþß¾}ƒ¾}û€r颺YXXïß¿GÕ‡þ÷ßp1Ý$$$˜L&TîèèHJJ¢é½—Ó`ÑÔj5£,++S*•ð§êщk4Ù׊D"@ ÓéPU«ÕÆÄÄ°Í „·nÝÚ¿?ª …BjQ¦§§Ïzïå4X4„€€êrTv8999åå僃ƒ Tovvö£GÐÏ ‘H‘‘‘›6mêíííééáýHˆn ÿг´ÙlþðáƒÁ`HII æ3CG¾ä›/^³ÙLµ ÑK—Û·oÏÌÌ>|Ðò •«óòò233u:F£‘J¥è¡ ОÃ_¾|™••%‘H¬V+ºD.—;vL¯×oݺõüùóômê©—š‘mà%Σ Ž ˆgÏžÙíöŠŠ d !t¹\QQQ"‘¨©©‰¾J¦¤¤D( xZLOù†³xÍ7ìçp†Ûínoo?tèPLLLuuµÑhôäe;§JJJöìÙCo!I2>>þÊ•+Âëׯ‡……ÅÇÇ·µµ¡ùœNgFFÆÚµk‘ñÔÔÔÉ“'#""Äbñ¥K—ЙE—rlll~~>ýGµÙl………ááágΜ±Ûíôee÷2fdx Á“n „õõõëÖ­‹mhhÈÍÍŠŠBí¥¥¥ÁÁÁ6›½VÓÓÓõõõñññ蹚Í2êfѤðàÁƒ´´´–––ùùyÎA8áÔ Á˜2''€¿¿YUUUz½½Òå„$I’$ýý9¾vZIœN'ýüõôý C'«É¿ÎÜÜÜäää;wîß¿ïÅÌÏÏÏÏoõÿ ä!O¬~0ÿ4ýýý©©©EEE;wî\m_Vœo~ ™L655µÚ^¬8ß`ø€uƒáÖ †X7>`Ý`ø€uƒáÇsxww÷îÝ»WÞÌ߉Ùlf72uƒ¾”Ã`(ÂÃÃÌÿ§0_À÷7>`Ý`ø€uƒáÖ †ÿ¢e©´IEND®B`‚XQilla-2.3.0/docs/simple-api/XPath2MemoryManager_8hpp__incl.png0000644000151400015140000003161111653571064021230 00000000000000‰PNG  IHDRuBÐ*bKGDÿÿÿ ½§“ IDATxœíÝw\SWûð“lE†Ì¢ÖUˆZÇ[µ*Š(Kж¶¯ƒZëúY«¾uu Å2D­Ú Šƒâ@\ Ò  Ê!’Üß§½p C<ß?üàÍÏ9Üsópî½çЂ@ ëèò@YA"ÐMHt$RÝÄw€Â7ß|“––&ï(€2Ù²eËäÉ“åô9H)¢œœœ'Ož899É; RSSƒ‚‚äôEH)(''§íÛ·Ë;  RSSåôQðŒ@7A"ÐMHt$R݉@7A"¥¬ <==E_׺sçδiÓ B"fÏžýÕW_•——K¸gÒÒR ×ôññi3ïõ—_~)ù¤H¡‚¡¤8‘H¤”•­­­ÏO?ýÔØØˆâp8‡Z±b…µµ5^!,,ììÙ³ ?üðAß~ûmG»*//Ÿ;w®øÃq8œÝ»w/\¸pΜ9»víb³ÙxyEEÅ‹/ÈÕžŠGñùüøùù 8pÀ€þþþ÷ïßÇkº»»§¦¦’7ÔþüóOщJø|~xx¸—————Wxx8ŸÏGyxx$%%­X±bÞ¼y'Ož¼zõª··÷ìÙ³£££ñV{÷î;wîÇüóÏ?·´´”––zxx<~üxñâÅ«V­úî»ïðš\.wÆŒ’Ó¾à8˜k×®­X±bΜ9¿þúkGkqñâÅ•+WΞ={ݺuééé” 5''§Í/¢MÅâ•ïܹ³|ùr//¯Ÿ~ú©µµ•r¡$çÙƒDJ¹ÙÙÙ-^¼822Ò××wÈ!¢577s¹Ü¦¦¦²²²ï¿ÿÞÞÞ^GG§©©iÛ¶m¶¶¶qqq«W¯Žˆˆ¨¯¯?räBèܹsä¶¡¡¡‘‘‘l6›N§ÇÆÆ’SÖdffš››ãŸ¹\.¾¡Æáp?~<~üxr? åååG=pàÀãÇ;†—?zôèçŸ^µjUDDDzzzTTÔêÕ«cccqÇØ?üP]]þ¿ÿýïÁƒ§NÂ[ýöÛo›6m ¸sçN ïܹcnnnccÓi0”Çݾ}ûðáÃÁÁÁGmhh \óòå˱±±Ÿ|òÉÉ“'—-[vøðañÄ¡ÚÚÚ¶ù}µ©X¼ðÂ… {öìÙ½{wFF™áQ. h ‘RnAÓéôW¯^µù(00pÖ¬Y³gÏ^±b›ÍÞºu+BHMM-**jíÚµ†††&&&!‡Ó~·‹/ÖÔÔœ0aB¨¡¡N§[XX¨¨¨455ýòË/‰‰‰_~ù%^“N§Oš4 ßPKOOwqqÑÕÕ%÷“””ôù矛˜˜X[[“ýXxÿÓ§OG-]ºTSSsÆŒøX|>ÿÆŸ}ö™¹¹¹µµµŸŸ_JJ ÞjÕªUÇ5jƒÁÈÎÎF]»vmúôé4­Ó`Ä|Þ¼yÚÚÚ~ø!BˆÍfS®yöìÙQ£Fééé9ÒÏÏO|q¨êêêâ+/\½zµ¥¥¥ƒƒC`` YXÊ… ̵§Ü®]»–••uèС7NžqâÄ´´4kkëG­_¿^ôˆ#¦àFFF¢P®YVV&Úá7xð`ñÄ¡¶GY±–––äVda)P4H)±ÚÚÚŸ~ú)$$ÄÕÕuÅŠhÓ!ÔÇÛ±cÇŽ;Æ×ÚÚš””D¹Z›oz„Й3g.^¼¸{÷îöé—‹‹KSSSNNÎÇÛ¤5zzz‡Âù\cc#‹Åê´Púúút:½¼¼ÜÊÊ !TVV†$’븻»ïÚµkðàÁ...ÆÆÆ’#¦àm K¹¦©©iQQùFdqq±øvô°ZûŠE•””à=¿~ýgZ- hàÖž²"âÀÖÖÖ³gÏF-Z´H__ÿÇ¿Ukk+ŸÏg0---øòU>.—ÛÑV'**ÊÏϯ_¿~¯þA~Šo¨|ø0::£3Œ7®Y³fÒ¤I“&Mêh+mmíÕ«WïÚµKCCcéÒ¥žžž¡¡¡ ... ,¸|ù2åVEEE<ï›o¾]xóæMògÄÄD//¯6„……Ñh´I“&KR´Ï?ÿ<,,,$$DUUuÊ”)Ë–-kso gKW®\¡,)e0”?þ|ûÍ)×>>¢)iG Åóðð8}úô¢E‹Þ1]·ö€’iii)//OJJúÏþ#³ƒ~ûí·<////::ßQÐÇÁ­= dž={¶uëÖ9sæÈrÔò%K–477oÙ²¥¾¾ÞÜÜ|æÌ™}ôÑ»ïVKK«ý~(PLpkOÁ­=Ð%pkänít$R݉@7A"ÐMHt$RÝãH)¨'OžlذAÞQH„ gH§óÕÔÞtiC¡PNo顨ºŠË5d0xªªò!„‚ÑÐ0PU•Ã`42\ Æ(‰”";v¬¼CHK ½²R«¢B‹ÇS±´lþÞË—5'ÚùøŒûðCg5µ.ôk>}Zêë¡££~âD••a—ŽÞ£‰éþýÂÇo\»–gi©4yÙ²±j=zDɵ¶ «™Ì &óï쪲’25Õuuhgg†³+[[S:&ï` O€D HäÁƒ¢ÈÈ´+Wž2ôùóG._þ‹‹eWw’’’»fM¬›ÛÀÈH?==Í®n.›D {ö¬üçŸo$&fêêj¬\9> `Rÿþ]XÈ.+&³â¯¿*rrJš›[µµûY[›à¤ÊÞÞÌÉÉÂÀ@KÞ‘@Ëm9{öQ\\zvök{{³€€Isæ ×ÕUïÆ®¢¢ÒvìH\¶lì®] ºwËL–‰VRRwôhêÉ“÷ètÚ’%cÖ¬ñ07ï/³£wŸ/,-­c2+²³_ãìêÕ+Amº¬llLTTà]H¤µ‚‚ʈˆ?/^Ìär[gÌp ˜8z´u÷vÅç 7oN8yòÞŽó'u;$Ù'R‹Å9vìVTÔ-‡7wîðµk§ÙؘÈ8†nc³¹ùùåLfå_Udg¿~ú´”ËmQUU2ÄØÕÕwY98 02Ò–w¤ ” ‘oáó…IIÙqqéwéùùMX¸p”©©n·wØÐÐ|<#£ðÇ—ΞýÞ»Ä&¯D ãpx§Ne„‡ß¬¨xãééøùçÓFŒ°’K$ïB –”üÝe…³«‚‚JÜeeggfggæêj‰S+UUy J)ð·ššÆãÇoÇÇß«¬dO˜`8iʇw¼TZZçëQSÓxìXÀ»§òM¤°ÖVÁ… ¾ÁdVŒ5äÓO=§Nu¤Ñ”øÉn6»9?¿Œì²ÊÍ-mjú·ËÊÞÞÌÎÎÌÍm±±Ž¼#E‰@·n1ãâÒ““s45ûùøŒóöcmmüî»ÍÊzåçed¤sâD T-R„D  ‰ë×ó~üñÚ£G/œ,V­š<þÈ^óÔQeå‘*ž?¯ ==MrÀ{{3{{ó~ý`:€DªÃ÷ªbcïT::X¹r‚—×iH”œœóé§q|`s䈯¶¶tö©8‰‰+aÐ ƒ€€I>>ãÔÕUå””544U“ÃYåå•q8<ÜeeooöOv5ð]îÿ€ò‚Dª/ÊÏ/޾•˜˜ÙÚ*X¸ð}Ÿq®®ÒûÀ䃯®\9~çN/)öÓ(`"…={VöóÏ7/\x¬¯¯åëûAPÐd]] yÕƒp—p!;»¤M—™]õ¾œÚƒDªim$'çDF¦=xP4p ¯ï‹‘îëZ­­‚/¿<óÛo÷ßñ=J ›Ha¯_³~ùåÏ“'難Ð/óé§SLMõä”,àaBÉrsKY,ƒA·¶6!“*;;³®Ž¿ J©>¡´´.&æÎ™3÷kk9³f¹úøŒ?ÞVêƒ_³ÙÜÀÀ˜¬¬âððS¦8HwçHá)¬¶¶1&ævTÔ­¦¦–9sܾøbºT8S.••oȧ׳³K^¼¨„ººööfd—•‹‹¥â ݉ToFÄíÛ‘‘i7n<ÓÓÓèê¤x]RXX½|y×äà0 '¡‰†Ÿ?ûù盕•o<=ÿûßénnƒä”Ü]VLf%“Y‘™Y\SÓÈ`Ð-,ôñ€ ¸ËjÐ ¥~ÿÐ7A"Õ;Õ×7ÅǧŸ:•QXXݽIñºäÞ½Ç48~< çîg)Q"…á±®TⱦMs’wP A´ËŠÉ¬ÌÏ/oiáëêªÛÛ›ã\]--55¡Ë  è ‘êmrsKM½t)KE…>þH©?HÞÞÙ³ׯ?íî>ìðai½ôGIé)쟱R=*vq± œÔ›ÆJŠ6]VOž¼ªªj@ÿLÆìêj‰ µ³3….+€¢Dª—hnnMHx(•Iñ$GÄÁƒW¼ºfÍ”M›fõtr ¤‰‰+ÁÊÊÐߢ¯ï=×G¨ìÈɘÿΪœÇãëè¨bLgåädÑ£‰;H)¥÷ú5ëĉ»§OgÔ×7Íœéú.“âuIssë_œº|ùÉîÝ }|ÆÉàˆÊžHayyeáá7/\xl` 4ÙÏo"ÜÀêî²b2+˜Ì¿³«ÊJ6ú§ËŠœŒÙÖÖTê¯P€xH)+@xù²4'Åë’ššF?¿¨‚‚Š£GWNžl/›ƒöŽD {õª6""->>]SSÍÏo‚¿ÿD}}-y¥LÈ.+<œUNNIss«¶v?kkr8+'' ¨U@Ï‚DJù°XœS§îÅÇß+.®0ÁÖÇgÜŒ.²œb¶  Ò×7B ž84l˜¹ÌŽÛ›) Ïoy«µ•ïí=6$ÄÝÂB_ÞA)%>_XZú÷dÌ8»zõŠ…'cí²²±1§ÓÒ‰”2yð (22íÊ•§j>>ã–,=t¨‰Œc¸sçy`à±!CŒŽ ñ¬ ½/‘Ây¿þšqäÈÚÚÆ¹s‡ò‰§½½™¼ƒRzl67?¿œ|7ðéÓR.÷ßɘq—•£ãCCiH èƒ ‘R\nËÙ³ðƒäxR¼yóFHk».9qâî–-g§Nu ó‘ý“=½5‘ÂðX ?þx­°°zêTÇÏ>ó|ÿý!òª÷„%%wYá쪠 wYáWñdÌdÙ¹ è ‘RhLfEddÚÅ‹™--=2)žä„Bbûö QQië׸n݇ry ½w'R+áûï¯ff¾ÂCOMêïü÷6»9?¿Œì²ÊÍ-mjú·Ë gåæ6ÈØXGÞ‘$RŠˆÏ&%ýý ¹……~OLŠ×%\nËÚµ'¯^}ºwïBoï±ò £/$R$­±‘WXXEg•›[Êbq ºµµ ™TÙÙ™YYÊ;R@‚DJnž=+?vìVbb¦@ ”ͤx]}kûö sç?xp‰‚$v}<‘šOŸ¾øð «qîÜák×N³±‘õ #¢“1gg—¼xQ%uu5ìíÍÈ.+K¸? @o‰”¬á·Ü£¢nÉrR¼.áó…›7'ÄÇß[·nº¼^У‰©¥…Ÿ˜˜ùÃ)/_Öxz:~þù´#¬äh«ÍdÌ™™Å55 ÝÂB¸€»¬ 2PœVè*H¤d§´´.&æÎ™3÷Y,ÎÌ™®>>ã&L°U´ hCCspðñ;w ¾ûnÑâÅ£åÎ[ ‘j•pèÐÕ¬¬¿ÇJ˜6ÍIÞAqD»¬˜ÌÊüüò–¾®®º½½9pÁÕÕÒÙÙ¦_@‰@"Õジ}» 22íúõÑÐÐüñÇ£m,ƒŽ´¶ 6mJ8}:㫯f¯Y3EÁŸÃ€Dª«þ+áz]]Óœ9n_|1ÝÚÚXÞAiâó…/^T‘]VLfEqq-j×eeccÍÐC ‘z'ðòå·&Å[´h´Îr*í{þÙlnPP̃E?ü°ô£Üä˜xeeõ+WFñùü_.·•ÅâXXü; ¥£ã€°09E§4ðX ߟR\\ãéé¸n݇ァY>è6››Ÿ_N¾øôi)—ûïd̸ËÊÑq€¡¡Üæî —Dª›X,ΩS÷âãï½~ÍRIñ:ÂdV|÷]Ò/¿¬ ïÕ«Z_ßH«ñرÀ‘#w¢I“ö<^Eù†6l˜ùßÿN—qHJ •pàÀ•ìì×0VBß!KJê˜Ì r2æ‚‚J‚ LMuñ+8»‚.+º ©.Óâ]¹òT[»ŸâLŠ'ÆÂ…‡ïÞ}4ùÿþo^’‘Qèïmd¤4hBÏ_qäȽ{ÿàó…í?¢Ñh[--õe•R»¿ðÀ+·n1]\,'ÁX } ›ÝœŸ_FvYåæ–65ýÛe…‡³rs¤€=ë(&H¤B¨¢â™Y'â65µœ;÷?H>jÔÀÀIŠ3)žII9Ç"¢íÞ½`åÊñçÎ=Z·î×Ñ£‡DD¬ÔÓSÐôHeeõ£Fíl–Òé4ˤ¤ur‰ªÀCO]»–geeèï?Ñ×÷ƒŽNæÊÊ7W®äúú~ ãÌàɘÉ.«6“1ãìjØ0sÅ¿Ü H¡Ó§ïïØ‘øàÁ¶Ž^¯c2+"#Ó.^ÌäóqR<1ššZÆŽÝU[ÛˆË4méÒ1§NeÌ›7BqfÐëÔG}Ÿ™ùJ(|ëDe0è;vÌó÷Ÿ(¯¨z‡üüò#Gn$&fš˜è»/]:¶ý˜Úß~ûû‘#7vì˜4Y.Akhh.*ª&‡³ÊË+ãpx¸ËŠœŒÙÕu ©©®¼#@!ôõDê§Ÿ®íÝ{!´{÷‚+Æ‹~Äç “’²ãâÒoß.°µ5 T¸Iñ:uà@ò?¤÷ÅètD§Ó-½oß"AOÔñãw¶n=×æîžŠ -+k'<0+%%uG¦ž:uO]]ÕÏo‚¿ÿD}ý¿_žg³›‡ßÎå¶Ðh´Í›gò‰§|Cr»¬ð€ ÙÙ%mº¬ÈìJ]]UÞ‘ }7‘jmlØðëÙ³„B!ÚàÁ†wîlÆéEyy}tôí„„‡µµ ;)^§^¿fM˜°»µU ºPE…Þ¿¿Fròz ¥y´ˆÅâ¼÷Þ6àßDJE…>vìÐ3gÖÈ1ªÞ‡Åâ;v+:ú6×êí=võjúÿýÕƒ¯â'étÚêÕS¾þú?òŽÈYc#¯°°ŠÎ*7·”Åâ0tkk2©²³3³²’Âó—ååõéé/¼¼F(Ýô}4‘âr[V­ŠIMýKôëùôéÕ¡¸¸ôää##EžOÇRRrÛ$R!CÅÊÊà?Ö)Qïš·wøíÛä/‹N§8°DÑæTîØìæãÇoGF¦±ÙÜ… ß¿t)‹Ín&?¥Ói«V¹oÛ6GŽ$:svvÉ‹UPWWÃÞÞŒì²rq±ÔÐèòdÌÉÉ9þþÑ..–»vÍWÀ @@}3‘ª­m\ºôè³gåäE!CÅÌL·¤¤î½÷®\9aîÜáJÝM}ÿ~¡—WXG¿\:6eŠCLL bŽ×Ð^BÂÃ/¾8I>&¥ªªòôé.¥I•Ç?}úþþýÉuuÑ?6Bt:ÍÇçƒ={@èH›É˜33‹kj º……>9à‚Ù AžE\ùᇂ „BbÖ,—­[ç(ø‹Æ ês‰TIIÝ¢EGJJêD³(ŒN§ÅÄLªôƒëÂiÓöTµù Ä >_àà`¶ÜÁÁ\öáuCc#ÏÙyKK !Ä`ЧMsŽŠò“wP½Ÿ/3æ›òòúöÑé´%KÆ|÷Ý"eIÄ܉vY1™•ùùå--|]]u{{s<à‚««¥³³eûwüü¢RRrñQ † AÞÞcBCgÁó‘@Q(Ç{[Ò’›[ºdÉÏoÞ4·Ï¢B**´'O^÷‚Dêĉ»Lfe›×ÜTTèB¡°Í¥K•`å6´µûMŸî”””#bþüòލ÷»t)«²ò åGB!ñë¯B!±ÿbÈ¥€$LMõLMõ&N´ÃÿmÓeuõêÓªªôÏÌ6®®–x°P;;ÓœœòR†¯Û§Ogœ?ŸùÅSƒ‚&+˫ǠwëC=Réé/–/ÿ…Çk:,²Vfæÿ)òĽb±8cÆìâpþ}®·øá‡Î+VŒÿà%}199' 𠦦Znî·ýúÁ´1yòÿ «Ú¤ã¢TTè³g¿æÃ`(åAÅŵyyeÏž•?{V–—WV\\K„‘‘vm-‡òKŠN§YXèoÙò‘bNoú”¾òm”’’Ãç Ä|1 „X,εky3gºÈ,0©;xðJs3!¤¦¦ÒÚ*45ÕY¶ìƒÅ‹G+ûàj\nËÌ™.Eõ´´4æóç•**t uô·–@ üý÷,uuÕƒ—@¿x4°ýdÓ2IDATmð`£ÁƒfÍrÅK8^~~ErröáÃ7(7 ‰ÒÒºààÑÑ·¾ùf¾³³… ãà-o}!q¹Üºº:y…Òs³¿ýö*N¡TThtº ~ÀQ($ø|!Bo}OÄÄÜî4‘ª««ãr¹=o÷½xQs[($ º»»í¼y®ï¿?ˆN§!Ä-+ë$à¼ãÑËÊÊÞqâM:ìâÅlë=†††¾þ;%½ ñx_|áQUÕP[Ë©¨`×Ô4ÖÔpx<>þ”NG CE…Æã ~ûí>›Ýðÿ7KI{:ûˆw?«‘̯{ææªzz :峞!|Ið hÆŒ^^®!!ôõ}ªÐ;èëëkhhÿ}+‘jhh`2™2©g]½Z””ôÂÂBGKKM[›a` cii¦££®££®««¡««®­­®£ó÷¿::ý$™5¥¬¬¬ººZÁwÕž=é:žžVãÇ[ji©!Ä{þ¼@Âmß=‘êé“ÇÉIûæÍ~zz¼=±±ñ;~åô‚v¤¦†FÖEè­¡«¹\~]]ó›7<‹‹ÿ­¯o®®æfe½ =覢ýR êÝÏj$ëÞÇâ._t:N§ñùBÄ… ÙÙÙ¯V­naS‚çèèØa"…¹»»Ë.œžçîî¾{÷ß?çææ"„œœ¤ð8¹±±±Tö#E,gÏž!#FXuuꪪ¼¼<©ÄàèèhbÒS±OšDÐhžž=´ôÏ"½¬å%ųZÆ×½ýû³pwFSWg´¶ ñóæjÖÖÆööf¶¶¦C‡šØÚšZ[+õ³­@‰¤¦¦¶YÏšôZZòŽ¢Ñé´à`wyG‚ *BúúšvvfÆ™ÛؘàÌI‰&f}$R@™ÀôqêTˆ‰®®Fçk ?HP8 ½* {ð¢ @7A"ÐMHt“t©çÏŸ¿ËTðmN£Ñž?þqõQ½»Þ(Ï1g A>>>ÚÚÊ:Å)Y´ö?ˆñêÕ+???Å/»˜²à"dff2Œ3gÎËÕÔÔrrrð9Nhhè{ï½§­­=zôè={öðù|Ô­z£Q‘VI;Õ»›­¼ôš†€¢Ñh¶¶¶mf˜9s¦\Î… †’,#Qˆ©þýûùå—¡ÂÂB###y‡£zw]I±teeeñññÒ(KöÈÖÑ%.\˜7ožR—aøðá›7o^»vm}}=BèÍ›7kÖ¬Ù¾}»‹‹ B¨¡¡áý÷ßÏÈÈØ»wïãÇ7mÚ7}út@нz»{÷nùÛ¤[¨ÞÝlP¯iøç—/_>yò„ü¨®®.--MNq)V0ò¥‰”‘‘ÑÞ½{BB¡°¶¶VÞá(‡Þ]WR,žÔbРARٛ쑭£K®^½:}út¥.;.BhË–-FFF8+Ú´i“¹¹yhh(^gçÎÆÆÆ7nܘ9s¦Ýüùóïß¿_TTÙ½z3666{›t Õ»›­êM !4uêTÑÞÙ‹/Nž|¸¦¦¦¹¹y›KAáááŽŽŽºººS¦Lùý÷ßqwe}}ýÊ•+ŒŒ,--7lØÐÜÜŒ{2¯_¿>hР˜˜¼ÚرcB¢¯«W¯ÚØØèëëïÙ³/¡ÑhÑÑÑÆÆÆ{÷î2dˆžžÞÖ­[»] =„²¢.]ºäêꪮ®nmm+fakkëÆMMMMLL6nÜØÚÚ*Zi¶¶¶èíºÕ¾ÞŸÏß¾}û AƒŒ}}}q¢*¾è™ öíÛggg§££3~üøŒŒŒŽ"ªJkR)‚‹/ZXXà)ùN:eggÇáp„BaXX˜ƒƒƒŽŽÎ¸qãnÞ¼‰{§ÅÜ`¢<Çjjj´´´444DË.zòܾ}›rÃNWûê7nÜ¡C‡B,‹N§oذ!$ôõõÿøãÔYÛ¿}û6Þ3A6lpss«©©-BHMM-&&&::zÏž=ÇŽ‹‰‰QUUÅ[ÅÅÅmÛ¶MEåßÑÅ´´´BCCããã»Qo]úeáý'&&ÚÛÛ›˜˜¬]»–ÇãuZÞ.5[ÊCtt\AYW¨³«Yjj*å•¡ýVˆêrÑÑ…¥—5„ÐÇüÛo¿‘7Ô.\HV>euuZñ1" ¯ÙØØ¨©©™™™)I0Ul||¼ƒƒƒÁwß}×Ñš%âÏ"²I²kP„ˆÊÊÊ›7ob±Ùl555ÿ’’’¸¸8„PUUUAAÞUDD„……ErrruuuJJŠ ^¾lÙ2OOÏ/^dgg;;;ïØ±o2sæÌ7ndee¡¿Ç±- !ôŸÿü‡ÍfŸ={ŸRx¡··7›ÍŽŒŒD-Z´ˆÍf=z”\AŒ§OŸ>}úTü:’d?”ÕØØØ¯_¿ðððòòò¨¨(ƒÑØØH¹ ˆÿýï ,xõêUvvöˆ#6mÚDYiíQÖ›’üÞ%qóæÍÊÊJ1+ìÛ·ÏÉÉ);;;''g̘16l ‚²ø¢gÂÁƒMLLÎ;WVVöÇà9)Wš„EÊ"a}úúú®X±¢¢¢ÂÔÔ4##ƒ ˆ£GŠÊÒÒ!DÆßþÊsŒ ˆèèèØØXâí%zò”——SnØiãj_½;wîœ={6A‰‰‰ººº#FŒ âáÇêêê‡¬í …BòËGK´iÓ&„Ю]»È%øÛººººMŦ§§t£ÞBYYY oëè—…÷6}út&“yïÞ=›;vHX^Êó¡}³¥>>¢HùwÂÝ»wŒŒºQoíþÌDdíµÿe‰–‚ ˆÓ§OÛØØH~­k¯}³¥<åBÊ’dœHµ¯+¢³«å•r+ÊËEG›÷²†€þÉ'Ÿ|õÕWAÄÅÅM›6\NU§eé40>Ÿoffvýúu‚ fÍšµwï^I‚S±øÚH@¹&e"ÑéYÔFÏ5¨ößt]¾µ§¦¦Æd2g̘1räȘ˜˜6Ÿ¾xñÂÙÙ™ü¯££#B¨²²R  :/´±±)))Á?6LüápOþVœ:::!ܽ/ú³B¡¬(}}ý›7oÞ»wÏÒÒròäÉ·nÝ¢Óé” B/_¾477ǯM›6­¨¨ï¤ÓJCÔ›Üã[!///ÔAˆnõúõk777ò¿®®®-DWšêß¿ÿªU«rssW¯^—Rª#”çXccckk«¾>õddøäÓŠÅ7®öÕ;|øp--­¤¥¥Í™3gøðáiii7oÞœ={6’¸í?xðÀÝÝ}÷?³‹·/B|||jjê7É 433ÃÊ‹ÊÊÊßFÄ¿ý_ä±Úü²0ò|6lXIIÉ»\ëPͶÍ!Ä,T”u%þjFye ÜŠòrA¹y¯l¡?þøÌ™3A´¹•&¦’Å”¥ÓÀTTTæÏŸîܹšššk×®-[¶L’`ÄT,>ÉÉ(פL$İ£Æ%³Õå/Z.—»hÑ¢7>~üøÈ‘#m>µ²²iüÙ³g!SSS•ÂÂB¼ðÅ‹øçN Y¾~,]”Åår…Bá™3gX,V@@ÀG}Äb±("„ð_Õøj^WWwïÞ=¼I²FŬ·¼|ùÿœ••õí·ß¢êDt«Áƒ‹¾‚O0Ê…¨ãJS@¯_¿ ›:uêúõëñ ÊBu„òKNNž1cFG›à“G|+£}õÒéôY³f%&&2™Ì#FL™2%%%%-- HØö/]ºþ믿޼y³}ÊÊÊÖ®]»oß¾I“&mß¾=88˜|^{Ù²eß|ó þ‹!äíí}êÔ©½{÷z{{wµÞÄkÿËÂðŸ³!&“9`À€w¹Ö¡šm›CˆY¨ (ëJüÕŒòÊ@¹åå‚róÞ×° &444ܾ};%%…|›O|%‹!I`üñùóçûí· &àç : FLŶIk(פL$İ£Æ%³ÕåDŠÇãµ´´¨©©q¹ÜíÛ·#„ÈO?ùä“ÐÐЫW¯ÖÖÖâ;ß4MUUuñâÅk×®-**zúôé–-[Údµm466v5*DYQ4múôégÏže³Ù---ªªªššš” BóçÏÿê«¯Š‹‹³³³g̘qøðáöG!ë*22òÍ›7²,`7,_¾ü믿Æ7>ýôÓââb„PGÅGÿ”.$$dãÆ‰‰‰ÉÉÉÛ¶mëh!’¬ÒP(ô÷÷ÿì³ÏN:uíÚµK—.!„üýýE …Ÿ ƒòKLLœ;wn76”$lÊê5kÖ‘#GÆŒ£ªªêééceeeee…’°íkiiÙÛÛoÚ´)$$¤¹¹Y´A»ººâ'^ׯ_ojjúÙgŸáO·mÛVQQ1mÚ´+W®0™Lkkë¥K—677v¯øÕÕÕoCü²°Ï?ÿüùóç<ؼy³„åíR³ms1 AGu%¾aR^(·¢¼\PnÞËIEEeÁ‚ÁÁÁ£G611é4*ñ$ lâĉ|>çÎË—/—0É+–rMÊDB’Ê­A‰vbKølÇÁƒ xäÈoooò´@ 8tèÐСCõôôf̘‘˜˜hllL‹ÅZ¾|¹¡¡¡¹¹ùÿû_.—Ûþ¦5A­­­&LÐÖÖ&;ÕÉô‰Üdm¿°ÍÏ‘ñ³í+Š ˆÓ§O:TMMmذa‰‰‰xMÊ…l6ÛÏÏO__ßÐÐpÕªUG´Ò$©+B²j‘Ù3RÍÍÍ6l0`€žžž··w]]^Þ¾ø¢¥ãóùûöí³±±ÑÒÒ7nþ+„r!ÑY¥uJfÏHýôÓOï½÷^KK AçÏŸ777g±X---;wî2dˆ¶¶ö¸qãð“bžõ!Úcúúúø™ Œ²•QnˆOÎNÏ¢öÕKD}}=ƒÁÀs855µÐÐPò@¶}‚ ¸\®ÝæÍ›E‹Ó¯_?ѧFîß¿O§Óðׯ_ïì쬮®>tèЯ¿þzòäÉ‹/îR½‘ŧ¼BRþ²ðÞ"##­¬¬ŒŒŒ>ûì3.—Ûiy»Ôl)ÑÑqÅåu²®ˆÎfGWÊó­ýå¢ýæ---½¬!ˆ=55!tøðaI¢ê´,âÃBBB444Øl¶äÁH^±í×ì(‘èôò.›%…‡ÍÅ»téRVVùß„„ü¼›‚q"¥,d–H)>Y>lÞ©.¥€€ÄãñÒÓÓ{ú(2øíP¢Ç…ëxG›7o^ºt©Ì×C‰„´”6/;;ÛÇÇçñãÇMMM÷îÝÛºu«ø>v.555}úüùó7–––VTTàF}}} 333„Åßtttdué[fffx«V­ª¨¨hjj’~ÙñãÇÍÌÌ~øá‡·ÞzËÁÁÁ××7..îåË—²–ieeåååµ}ûv[[Û3gÎ(Œ©©ittô›n@ @¥Qvv¶‡‡‡ÏСC³³³ß¤K@@À¥K—–/_>kÖ¬„„„О={¾ûî;ü,ŸÏ -))éi„ CGGÇØØXú)6›½lÙ2ñïï¾û.›ÍÆÌóòò.\XTT$Ñ‘F£Íš5ëæÍ›øO@7gΜ9sæÄÅÅ ñî™™™øÚû矾oß>Ü¥««+""/Aº»H$JHHXºtiXXØš5k=zD¹i¹¹¹‹/Žˆˆ8uêúû"ÿµk×–.]:gΜ={ötuuQ6öt0¨ô`ÀÁ×áB~~~ç »\½zõ§Ÿ~Љ‰9pà@ss³¿¿ÿµk×ðók×®ÙÚÚ:99)X{{;ŸÏçóùõõõGŽ ÖÕÕ•xMKK —Ë•^ ““ÓóçÏñã_ýuÓ¦M£F’^…ƒƒCUU~œ””T]]}àÀÝ»wçåå=z”²{``àåË— ‚@ݹsG__„ ”ÝÏž=›˜˜}âĉ¥K—ÆÅÅQnæ­[·:´qãÆÃ‡óx<ÜxáÂ…;v|óÍ7·nÝ"¿ AÙè)¨ô`ÀùóÏ?_½zåçç‡òóó+//úôé›t™={6“Éœ>}:BˆÇã¹¹¹éèè"„.]º"}¯Ò|6þü‹/.\¸Pñ¢Ñh"‘?ŽŽŽöòò200ß%##ã_ÿú‹Å9rdLLÌíÛ·)»ÿãÿàñx?Feee…††2 Êî)))«V­òõõµ´´œ8q¢¬‹ÿ .422š2e B¨¹¹7®^½ÚÁÁÁÅÅåƒ>`³Ùr=ßÈNvv¶P(ŒŒŒ$[8Έ#zÝÅÊÊ !„oç#„ètº¯¯ï•+WFŽy÷îÝõëד½ð'céÇØÉ“'íííBñññß}÷ÝO?ý$ñ&“iaaQZZêãã#Þ^ZZêììŒ:TÖ†TTTØÙÙáÇ/_¾œ7oùy§@¢»¾¾þäÉ“/_¾<|øðëׯ:tHVw@ ~±aäÈ‘”1XZZ"„$Þý888k¯­­•Óè)¨ô``‰Dç£> Ç-Gåp8+V¬õÉ»Û.Ò§NúÕW_ >|ܸqÖÖÖ¸‘ÅbUVV’Õëùóç ƒÅbI¯Q__?444-- é…?~ÜËË‹¼UßÞÞ~úôi²î’ï9$‘’’òöÛoã?MMMüñGüÞßÕ=00pÏž=NNNÎÎÎdüÒÝ·nÝúäÉGGGü‚òòrÊ0(÷sEE~gðâÅ üV@V# §àê=X ‚ƒƒ ÿTQQ!þãõ7ïâîî. þùç²144ô¿ÿýï7ª««óòò¾þúëé;ñ˜±±q[[ŸÏ—~jùòå ëÖ­»}ûvEEÅü±zõj+++ñK¤ÆÆF.—[WWWPP°eË–êêê à§|}}:TSSSVV¶qãÆ .ÈÚœ &´´´;v,,,Œl”î>kÖ¬ýû÷_»vËåÞ¾};>>¿2==½µµUÖ±½{÷VVVþù矇–Óè)øL–ììloooü;:lÔ¨Qvvv‡ò+l½ëB§Óýüü~ÿýw|k[¶l™¡¡áþýûkjj,--—,Y"+Nkkk###gdd$ñ”‘‘ÑÁƒ=WUUekkøÎ;ïP¾iX³f ~Àb±ÜÝÝÝ-"ÂÓß´žžŠ¯©I¥' …¢»wËSS ÒÒòkjxÆY¹FDxL˜0‚rŠz@?J€Bêë[ΟÏKMÍÏË{f` ;cƸˆO?¿Ñúúêr LÝ*=I$"rsŸ²ÙÓÓ ÊËë† ± qƒ’€Ò@¥@žææöÌÌ¢¤¤Üë×KõôtfÎtˆðôõu60 ˜ ^µÔ¶Ò‹{üøeZZþ… ÷ž$¨ô@³•—×=›‹ ¼µõ Y³¼Z' ðJO‰ˆû÷+ØìgÏÞ-/¯sp0Ÿ>}”|0A¥©¦†—ššgŒµ°0ž3ÇGµ3ƪ¨ôÒð˜»ÉÉ÷JK_ÙÚšÂ0û` ‚J4‰ÚΫ ÒËÃìƒ *=Ðê?c¬:€J¯ˆçÏë/^|m˜ýà`×ÀÀ±FFzª €þ•¨/ š1V@¥ï‘ÊʆŒŒ"|}H_†ÙÚ *=P;š8c¬:€Jß;õõ-ÙÙð˜»t:ÍÏo4äÐ2Péºàó;ÓÒþš1V ¸hÐŒ±ê*ýjllc³à’/xÌ]fh¨ô@ÅÈ å.^¼ßÒÒ1yò¨ùóÇkÜŒ±ê*}_áñø—/?f³ddµ·wÁ0û@ÓA¥ª¡e3ƪ¨ô}®½½ë?ŠSSóÿý~kk‡››Cpðعs}FŒ°VuhôTz T䌱YYÛpŸ1cœ½½¹ªCÓxPéûfʯ¯oÁcîFFz;9Á0û@@¥Ê 1c¬»ûùóÇkÓŒ±ê*½cÞ{õ †Ùš*=èG3Æ::²fÏö óÍ(Tze‰ˆÜÜÿ½y:Ô28†Ùj *=èxÆØ‹ï¿xÁ3ƪ¨ô*A³î\ÞÓ§µööæ¡¡ãìä @=A¥}iÀΫ Ò«s7%%¿¤¤ÆÂÂxÚ4s¨¨ô ÀŒ±ê*½úxüøå¥K.^|pçÎS33£  ±Pò A¥½÷ìY}RÒ\à­¬˜‘‘ÞPàU*½zñ‚ûûï÷ñ0ûƒøû ænl cîåJz Ï‹ 733‚cÕTzuVUÕøÛo…löƒ7Jut¾¾Îáá¡¡ã ‚1wA¿ƒJ%>c¬‘‘^hè8˜1V­@¥×\nkVÖCñaöƒƒ]gÌgiÉTuh@kA¥Ýàr[Ï» 3ƪ?¨ôš…fÿòåÇB¡¹;k–‹Ãìƒ>•PÃ3ÆâÓBhút·ùóÇÃŒ±ê *½†âó;¯^-IMÍÏÈ(âó;}|`dhÐÇ Òƒ×Ș1ÖÍÄÄPÕ¡IUUï½wD â?ùü..·ÕÞÞŒ|Áرv{÷.QQt Ç`˜}ÐO Ò„`ÆXåç·£´ôåS4ŠñÉ'!J ¼9r˜ýÌÌ¢ºº¿†ÙŸ5ËkÔ(U‡4Tú fŒÕtûöeïÜ™.ˆ¤Ÿ¢Ñh·nmqp€©ƒ49Ì~ZZ~M ÏÙypp°kpðØ·Þ©êЀ&J?‘ʉÏ;s¦»­­Y÷:©ªjœ0áKéÿb:6nœCFÆ:•Dú9Ìþo¿VW7bâÃìA¥×x\n+Ç>ܪÛWŠDĵk%gÎÜÉÊzÔÐÐ:a˜1V DDüçÞ½ç"ÑkÿÈ::ô/¾˜ýþû¾ªŠ ô<æîùóyeeµvvf3f¸‡„¸Nšä¤££è€55M66ðu¿*½fËË{¶bE|x¸û×_Ï“õ‰cÇsxç 0c¬Öøùçk[¶œ“¸€Ï`Ðòó¿„Ÿhk7\òñ •г_RR¹ç§Ÿ–ŒQZ¨@µ Òk°'®öÙY¡PdjjTT´]bˆ:²ÀgfUV6ÀŒ±ÚŠËmõðØ*þ¯Ò3ô·ßv9–Vð÷á£>ãï??[XøâÌ™\UU5fg?b³p8ćÙõŠç뻃|™®.ÃÀ@oÿþ¥Ó¦¹¨0ZÐß Òk˜ŒŒ¢?>ÙÙ)$ÇKÁ õÚÛ»LL CCÝ"#½¦LqVüë9@Óµ´t¸¹}ÞÙ)@éèЃƒÝŽY¡ê €Z¨¨høí·Âôô‚»wË õ† ³,.~)þ­üÕý÷ß÷ݺuLª«­ Òk ‘ˆØ±#}ß¾l„ÕQ£ÅƆ|üq0ü¯LÑÑÇ22Š„BF;xpùÌ™ªŽ¨—š^FFÑÎéÍÍ|éóƒA÷övðà{66&ªˆô/øØ§Û/>°o_6A”oÎtt襥¯ ÌXsçúˆD"„¡¡nP«ªÃjÇÆÆdÚ´1<E™G …¢¼¼gS§~{åÊc¥‡úTz Ÿÿ< àÛ«WKå\€„™™÷ùüNeÔG@€‹¡¡†fÌÓ J™™÷åÜÔ EÍÍüE‹ìÞ)1<Ðt¯ø|~CCƒªB”²²Š·nMïè"ÔÍÿ^{{×Ù³×§MsVN`˜¡¡¡¹ù›¼ÓÐÐÀçóû$ž,(hLJJa@ÀȪª*UÇ¢ñÌÍÍ ßtV'u;gÏÞ åFpß½û÷Û·K·oŸÉdêËy1Pgvvvâ¾Vé›››‹‹‹•‰ ˆôô'çÏ?îè(Øåܹ\‡~ J’µµõ›WúªªªÚÚÚ>‰g suer8ú¦¦ð_üæÆŽûæ•^­DccǃÕ ~1ëúõ²÷ÞûùŸÿô±·Ôßþ ¯ÒcS§NUR, ;ßOÑ.ŠZZÚ¥Ûétº2[õàÁƒ¾Z”µµµ«+Ü]~#~~f ê@4^NNN_-jìØ±,«¯–ö&¸ÜÖÓ§Gàdž†ºxP&ÓœcjjH£!nb?ÎÔl¯^½zøð¡D#ÜÏÓH æ“ètZLÌTUGÔ”……±¯¯RoíõßÈ@{À/Ò ÒÚ *= Í ÒÚ *= Í4¾Ò?þ|ÅŠî'ó(--Å9Ļ߻wOGGçÌ™3d{rr²žž^QQQÄ,&føðáË–-“ÿãr‚ –,YÂd2_~iii_Dª¤µÄA§„3¡§ûVùäl‹‚ÉÜÚÚºqãF&“ùÖ[oíØ±C  ^í7•¾ÚÒn ¨Ä~“¬Vä•oNâT¼}ûv¶sçÎ7YfŸ,D‚ü½‘@™Õùùù}ƒòSWã+ý… fÏžMùTYY™••~lfföé§ŸÊêîååµyóæµk×666"„ššš>úè£mÛ¶7®ÿ"wýúõêêêŠŠŠ£Gòx<..NzÝîþK-é`”¹v‡SSS£>Ë׋¬–îÛÄ×UPP@£ÑØl6Bèñãǽ[ åB”öÚ¯+ê×Ê:ÞãÏô)))öööxxüÓ§O;;;·¶¶"„ººº6lØ`ccÃb±6lØÐÕÕ…/’dee :4''gÛ¶mC‡µ¶¶^¶lùUºB(55ÕÝÝÝÀÀ`äÈ‘'Nœ@ ÊîuuuÆÆÆ†††âdÈÇo¿ý6BhðàÁHƲ;BHOOïØ±cñññ;vì8zôè±cÇtuueÙ‡›&F£­Zµ*==]ÖrÄ·KÁe^¼xÑÉÉÉÜÜ|ÇŽäÞHNN=z4‹ÅZ»vmGGe£¢iÑÿ(O$íÝ»×ÅÅeРA“&Mâp8ø²˜œ«siii^^^FFF¶¶¶äUA2¤så«W¯Rv¤Ñhñññ...ÖÖÖ;wî|ø|,Ý‹Ëåêêê~ÿý÷ "‘¨¹¹Y(Êê>oÞ<.—Kô¶Ò“Ý1‘HÉ`0–,Y"¾½ýºiDw•^ÖÚq‹¬eŠCåää! ñºÄã'"11ÑÉɉ²‘KÉ•^:ñ\]];F¾à矖NìèèxôèQKK‹P(¼|ù2¹çå$Þ!²:"„òòò‚èìì”xŒ_ }ørss™Lfggçºuë6oÞ¬««ÛÐаk×®°°0Ü—Á`{ãܹs‡?Þ¸q#zýº¨"ÉŒ+=ùæ€týúu++«^ì79¤e‚)¸½”ùЉ­ÌJ¯Ì¬–Ø™ÒÉIt—Ò²N8âéwóæMœfwïÞEá§B¸Ä ƒÎÊÊ"",,lçÎò"¾ ”ÉÓí&KuêÆ$öeœ²R‹rÇŠë¿Ô%úêê=BÈÌÌ,::úÁƒ«W¯&ËËËmmmñ׃ƒƒŸ>}ŠÛÇŒƒzöì¾ ‡rqq™3gެ^æææçæÍ›þþþüñN§ìÞÒÒÒÕÕ%=‘¡ØdMÒÝO:•“““”””œœ¬œM£Œ­¤¤ÄÑÑQþÚ1—‰ç5’xŠ {̘1rÕ„tâ•••yzz’/pww—¿==½âââÐÐPŸcÇŽáFY‰„á£LÙ4hB_ŒI>///ccã;wî\¹reÖ¬Y^^^W®\áp83gÎDÕÔÔ…Bòè;99‘GG‚ݹsgêÔ©ß|ó¬M Lf33³ÁƒK‹8??_|á î7Lúv#¹.é³’J0·W-Hl•d5&ëÜ"'¥)O8ëJHHVVV4ÍÇÇ!$~2r cîܹçΫ««»téÒâÅ‹Y&'yäÿWb²NÝ”dʼn¨RKþI[|?(-u{Sé_¼x±wïÞ   õëדø3þWohh¸yó&nÇû×Îή¼¼·äççýõײzñù|‘HtæÌ.—»råʈˆ.—KÙ=33344T<0üc¡ÊÊJE¶B¢{UUÕÚµkwíÚåçç·mÛ¶˜˜˜úúz%lšt`Aìß¿Ÿ÷å¬Sp™”wøðF„Pqq19Å!e£šN<{{û‚‚òÝέÇçó,X°aƼ¼¼}ûöáFéD‡˜”tùƒIDAT2eGEH>:–œœ\\\ìíí=mÚ46›}åÊ|Ämll FYYîþäÉ{{{ñH°ÔÔÔ¸¸¸„„‡#½ r’yñâÅÛ·oÇŸ$BQQQ§OŸÞ¹sgTTTO÷›|”g $•` n¯,ZØ*ÉjLþ¹EÖº¤O8âë …‰‰‰?üðy7gݺu‰‰‰ä[@é"ï¼óÎùóçýõ×)S¦à[Ý.““<Šuê–E:NL:µÙ±ÊNÝn?õK …AAAÛ·oçr¹ƒNIIÁík×®?~yyyAAÁĉ׬Y#~õcÛ¶mîîîEEEEEE“'OþðÃeõâóùIIIµµµ400àóù”Ý—,YRYY‰—ƒ€~äÈ‘¦¦&üÖŒøûÒ ¾q(}ýJ¼»H$ ÷÷÷ÇW¢:;;ÝÝÝ£¢¢”°i8wÉ_ÙåääDFF:88466*²vYË_ñdnjj=zt@@@ffæãÇ7oÞŒb±X=Ýo„Xꊓu°d%˜"ÛKÞþWNb+íê½’³ZbgR&§ü”¦<ሯ‹Ãá0 ñ­ÎÍÍ•ÿÿ"X,–ÍÑ£G»]ˆÄ&H'O·›@î Y§n‰F’ŽSVjQîXå¤.ÑW÷é÷ìÙãáá´sþüy[[[|{†Çã­X±ÂÜÜÜÒÒ2::ºµµU|Oµ··ÇÆÆÚÙÙ™ššFEE544àvé^A$&&:::êéé3&99™²{gg'¾¯IúꫯÌÌÌñµJ‚ ººº¦L™Âd2 ©\—è~ìØ1}}}ñ»ž·oߦÓéIIIý½iÄëïR‡ ²xñbñ—¿v9Ëì6×>!tT|>ßÙÙyóæÍŠ'3A---ëׯwss300pttüì³Ïüýý.\Ø£ýFn>å‡ʃ%+Áäo¯øq·;¼¯[i•^ÉY-±3)“³Û”–8áHœKcbbBBBÄ·Q$9::~úé§r¾jÕ*CCC×íB$6A:yºÝroÈ:uKì4qqÊJ­^ìØ¾J]¢¿‘4eS6ʧn¿§ïÅ&‚ :::nܸÑßkQÂÑé«ÄV«ßÓ„¬Þ¼yó¢E‹TE÷$âìÃCÓW©KȨã:”ïʇžžþ™2JÖÞÞ^UUúôiUÇ"¦Ä)‹Æ† zÁÄÄ$&&F‘FúŠ [ãܺuküøñï¿ÿþÔ©SU‹<”qöajõwêÒ±›m¯^½zøð¡šïq >ð·‚ß|Dè¾Z}"''gìØ±,KM–€â(ë8|¦´Tz@›A¥´Tz@›A¥´Åï髪ª”ÐDííí}µ(H< }ñ|(GKK‹t#E¥/..îÿ`€–è«Jç±è“E >àý+P¯ýžZîÓÚ *= Í ÒÚ *= Íþ£Xp¦1W>IEND®B`‚XQilla-2.3.0/docs/simple-api/XQilla_8hpp_source.html0000644000151400015140000004420611653571063017227 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

XQilla.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _XQILLA_07637_HPP
00021 #define _XQILLA_07637_HPP
00022 
00023 #include <xqilla/framework/XQillaExport.hpp>
00024 
00025 #include <xercesc/framework/MemoryManager.hpp>
00026 #include <xercesc/util/PlatformUtils.hpp>
00027 #include <xercesc/util/XMemory.hpp>
00028 
00029 class DynamicContext;
00030 class XPath2MemoryManager;
00031 class XQillaConfiguration;
00032 class Optimizer;
00033 class DelayedFuncFactory;
00034 class XQQuery;
00035 
00036 XERCES_CPP_NAMESPACE_BEGIN
00037 class InputSource;
00038 class XMLBuffer;
00039 XERCES_CPP_NAMESPACE_END
00040 
00041 namespace CompileDelayedModule {
00042 void compile(const XMLCh *queryFile);
00043 }
00044 
00052 class XQILLA_API XQilla : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory
00053 {
00054 public:
00056   enum Flags {
00057     NO_STATIC_RESOLUTION = 0x1, 
00058     NO_ADOPT_CONTEXT     = 0x2, 
00059     DEBUG_QUERY          = 0x4, 
00060     NO_OPTIMIZATION      = 0x8, 
00061     NO_DEFAULT_MODULES   = 0x10 
00062   };
00063 
00065   enum Language {
00066     XQUERY     = 0x00,
00067     XPATH2     = 0x01,
00068     FULLTEXT   = 0x02,
00069     UPDATE     = 0x04,
00070     EXTENSIONS = 0x08,
00071     XSLT2      = 0x10,
00072     VERSION3   = 0x20,
00073 
00074     XQUERY_FULLTEXT          = (XQUERY | FULLTEXT),
00075     XQUERY_UPDATE            = (XQUERY | UPDATE),
00076     XQUERY_FULLTEXT_UPDATE   = (XQUERY | FULLTEXT | UPDATE),
00077     XPATH2_FULLTEXT          = (XPATH2 | FULLTEXT),
00078     XSLT2_FULLTEXT           = (XSLT2 | FULLTEXT),
00079 
00080     XQUERY3                  = (XQUERY | VERSION3),
00081     XQUERY3_FULLTEXT         = (XQUERY | VERSION3 | FULLTEXT),
00082     XQUERY3_UPDATE           = (XQUERY | VERSION3 | UPDATE),
00083     XQUERY3_FULLTEXT_UPDATE  = (XQUERY | VERSION3 | FULLTEXT | UPDATE),
00084     XPATH3                   = (XPATH2 | VERSION3),
00085     XPATH3_FULLTEXT          = (XPATH2 | VERSION3 | FULLTEXT),
00086     XSLT3                    = (XSLT2 | VERSION3),
00087     XSLT3_FULLTEXT           = (XSLT2 | VERSION3 | FULLTEXT),
00088   };
00089                                                                                                                                                               
00096   XQilla(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr = 0);
00097 
00102   ~XQilla();
00103 
00105         // @{
00106 
00123   static XQQuery* parse(const XMLCh* query,
00124                         DynamicContext* context = 0,
00125                         const XMLCh* queryFile = NULL,
00126                         unsigned int flags = 0,
00127                         XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr =
00128                         XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager,
00129                         XQQuery *result = 0);
00130 
00145   static XQQuery* parse(const XERCES_CPP_NAMESPACE_QUALIFIER InputSource& querySrc,
00146                         DynamicContext* context = 0,
00147                         unsigned int flags = 0,
00148                         XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr =
00149                         XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager,
00150                         XQQuery *result = 0);
00151 
00166   static XQQuery* parseFromURI(const XMLCh* queryFile,
00167                                DynamicContext* context = 0,
00168                                unsigned int flags = 0,
00169                                XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr =
00170                                XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager,
00171                                XQQuery *result = 0);
00172 
00174 
00176   // @{
00177 
00183   static DynamicContext *createContext(Language language = XQUERY,
00184                                        XQillaConfiguration *conf = 0,
00185                                        XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr =
00186                                        XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager);
00187 
00189 
00190 private:
00191   static bool readQuery(const XMLCh* queryFile, 
00192                         XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr, 
00193                         XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer& queryText);
00194   static bool readQuery(const XERCES_CPP_NAMESPACE_QUALIFIER InputSource& querySrc, 
00195                         XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr, 
00196                         XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer& queryText);
00197   static Optimizer *createOptimizer(DynamicContext *context, unsigned int flags);
00198 
00199   static void compileDelayedModule(const XMLCh* queryFile, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr =
00200                                    XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager);
00201 
00202   friend void CompileDelayedModule::compile(const XMLCh *queryFile);
00203   friend class DelayedFuncFactory;
00204 };
00205 
00206 #endif
XQilla-2.3.0/docs/simple-api/Numeric_8hpp.html0000644000151400015140000000646511653571064016065 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

Numeric.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/items/AnyAtomicType.hpp>
Include dependency graph for Numeric.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  Numeric
XQilla-2.3.0/docs/simple-api/tab_a.png0000644000151400015140000000021411653571063014373 00000000000000‰PNG  IHDR$ÇÇ[SIDATxí» €@wçÉ¡œˆ˜*æ‚M˜ØIïÎF†ýL :®‡±nÌëN™ ¶±Á’„ØN&â¼_ ɭɾ}Õ¶8~î¾îOwv-ÿêA4Y)Ñ}IEND®B`‚XQilla-2.3.0/docs/simple-api/classATStringOrDerived.html0000644000151400015140000004515711653571064020052 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATStringOrDerived Class Reference

#include <ATStringOrDerived.hpp>

Inheritance diagram for ATStringOrDerived:

List of all members.

Public Types

typedef RefCountPointer< const
ATStringOrDerived
Ptr

Public Member Functions

virtual const XMLCh * getPrimitiveTypeName () const =0
virtual const XMLCh * getTypeURI () const =0
virtual const XMLCh * getTypeName () const =0
virtual const XMLCh * asString (const DynamicContext *context) const =0
virtual Result asCodepoints (const DynamicContext *context) const =0
virtual unsigned int getLength () const =0
virtual ATStringOrDerived::Ptr substring (const Numeric::Ptr &startingLoc, const Numeric::Ptr &length, const DynamicContext *context) const =0
virtual ATStringOrDerived::Ptr substringAfter (const ATStringOrDerived::Ptr &pattern, Collation *collation, const DynamicContext *context) const =0
virtual ATStringOrDerived::Ptr substringBefore (const ATStringOrDerived::Ptr &pattern, Collation *collation, const DynamicContext *context) const =0
virtual bool equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
virtual
AnyAtomicType::AtomicObjectType 
getPrimitiveTypeIndex () const =0

Member Typedef Documentation


Member Function Documentation

virtual Result ATStringOrDerived::asCodepoints ( const DynamicContext context) const [pure virtual]
virtual const XMLCh* ATStringOrDerived::asString ( const DynamicContext context) const [pure virtual]

Implements AnyAtomicType.

virtual bool ATStringOrDerived::equals ( const AnyAtomicType::Ptr target,
const DynamicContext context 
) const [pure virtual]

Implements AnyAtomicType.

virtual unsigned int ATStringOrDerived::getLength ( ) const [pure virtual]
virtual AnyAtomicType::AtomicObjectType ATStringOrDerived::getPrimitiveTypeIndex ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATStringOrDerived::getPrimitiveTypeName ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATStringOrDerived::getTypeName ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATStringOrDerived::getTypeURI ( ) const [pure virtual]

Implements AnyAtomicType.

virtual ATStringOrDerived::Ptr ATStringOrDerived::substring ( const Numeric::Ptr startingLoc,
const Numeric::Ptr length,
const DynamicContext context 
) const [pure virtual]
virtual ATStringOrDerived::Ptr ATStringOrDerived::substringAfter ( const ATStringOrDerived::Ptr pattern,
Collation collation,
const DynamicContext context 
) const [pure virtual]
virtual ATStringOrDerived::Ptr ATStringOrDerived::substringBefore ( const ATStringOrDerived::Ptr pattern,
Collation collation,
const DynamicContext context 
) const [pure virtual]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/functions_func.html0000644000151400015140000005172011653571063016540 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
 

- a -

XQilla-2.3.0/docs/simple-api/classSequence__inherit__graph.map0000644000151400015140000000035611653571064021325 00000000000000 XQilla-2.3.0/docs/simple-api/ItemFactory_8hpp_source.html0000644000151400015140000007627211653571063020273 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ItemFactory.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 /*
00021   Factory base class
00022 */
00023 
00024 #ifndef _ITEMFACTORY_HPP
00025 #define _ITEMFACTORY_HPP
00026 
00027 #include <xqilla/framework/XQillaExport.hpp>
00028 #include <xqilla/mapm/m_apm.h>
00029 #include <xqilla/items/ATAnyURIOrDerived.hpp>
00030 #include <xqilla/items/ATBooleanOrDerived.hpp>
00031 #include <xqilla/items/ATDateOrDerived.hpp>
00032 #include <xqilla/items/ATDateTimeOrDerived.hpp>
00033 #include <xqilla/items/ATDecimalOrDerived.hpp>
00034 #include <xqilla/items/ATDoubleOrDerived.hpp>
00035 #include <xqilla/items/ATDurationOrDerived.hpp>
00036 #include <xqilla/items/ATFloatOrDerived.hpp>
00037 #include <xqilla/items/ATGDayOrDerived.hpp>
00038 #include <xqilla/items/ATGMonthOrDerived.hpp>
00039 #include <xqilla/items/ATGMonthDayOrDerived.hpp>
00040 #include <xqilla/items/ATGYearMonthOrDerived.hpp>
00041 #include <xqilla/items/ATGYearOrDerived.hpp>
00042 #include <xqilla/items/ATQNameOrDerived.hpp>
00043 #include <xqilla/items/ATStringOrDerived.hpp>
00044 #include <xqilla/items/ATTimeOrDerived.hpp>
00045 #include <xqilla/items/ATUntypedAtomic.hpp>
00046 #include <xqilla/ast/ASTNode.hpp>
00047 
00048 #include <xercesc/util/XMemory.hpp>
00049 
00050 class XQILLA_API ItemFactory : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory
00051 {
00052 public:
00053   virtual ~ItemFactory() {};
00054 
00055   /* @name Atomic type factory methods */
00056 
00057   virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex(const XMLCh* typeURI, const XMLCh* typeName, bool &isPrimitive) const = 0;
00058   virtual void getPrimitiveTypeName(AnyAtomicType::AtomicObjectType type, const XMLCh *&typeURI, const XMLCh *&typeName) const = 0;
00059 
00060   virtual AnyAtomicType::Ptr createDerivedFromAtomicType(AnyAtomicType::AtomicObjectType typeIndex, const XMLCh* value,
00061                                                          const DynamicContext* context) = 0;
00062   virtual AnyAtomicType::Ptr createDerivedFromAtomicType(AnyAtomicType::AtomicObjectType typeIndex, const XMLCh* typeURI,
00063                                                          const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
00064   virtual AnyAtomicType::Ptr createDerivedFromAtomicType(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
00065 
00066   /* @name Number factory methods */
00067 
00068   virtual ATDoubleOrDerived::Ptr createDouble(const MAPM value, const DynamicContext* context) = 0;
00069   virtual ATDoubleOrDerived::Ptr createDouble(const XMLCh* value, const DynamicContext* context) = 0;
00070   virtual ATDoubleOrDerived::Ptr createDoubleOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const MAPM value, const DynamicContext* context) = 0;
00071   virtual ATDoubleOrDerived::Ptr createDoubleOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
00072 
00073   virtual ATFloatOrDerived::Ptr createFloat(const MAPM value, const DynamicContext* context) = 0;
00074   virtual ATFloatOrDerived::Ptr createFloat(const XMLCh* value, const DynamicContext* context) = 0;
00075   virtual ATFloatOrDerived::Ptr createFloatOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const MAPM value, const DynamicContext* context) = 0;
00076   virtual ATFloatOrDerived::Ptr createFloatOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
00077 
00078   virtual ATDecimalOrDerived::Ptr createInteger(const int value, const DynamicContext* context) = 0;
00079   virtual ATDecimalOrDerived::Ptr createInteger(const MAPM value, const DynamicContext* context) = 0;
00080   virtual ATDecimalOrDerived::Ptr createInteger(const XMLCh* value, const DynamicContext* context) = 0;
00081   virtual ATDecimalOrDerived::Ptr createNonNegativeInteger(const MAPM value, const DynamicContext* context) = 0;
00082 
00083   virtual ATDecimalOrDerived::Ptr createDecimal(const MAPM value, const DynamicContext* context) = 0;
00084   virtual ATDecimalOrDerived::Ptr createDecimal(const XMLCh* value, const DynamicContext* context) = 0;
00085   virtual ATDecimalOrDerived::Ptr createDecimalOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const MAPM value, const DynamicContext* context) = 0;
00086   virtual ATDecimalOrDerived::Ptr createDecimalOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
00087 
00088   /* @name Date / time factory methods */
00089 
00090   virtual ATDateOrDerived::Ptr createDate(const XMLCh* value, const DynamicContext* context) = 0;
00091   virtual ATDateOrDerived::Ptr createDateOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
00092 
00093   virtual ATDateTimeOrDerived::Ptr createDateTime(const XMLCh* value, const DynamicContext* context) = 0;
00094   virtual ATDateTimeOrDerived::Ptr createDateTimeOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
00095 
00096   virtual ATTimeOrDerived::Ptr createTime(const XMLCh* value, const DynamicContext* context) = 0;
00097   virtual ATTimeOrDerived::Ptr createTimeOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
00098 
00099   virtual ATGDayOrDerived::Ptr createGDayOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
00100   virtual ATGMonthDayOrDerived::Ptr createGMonthDayOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
00101   virtual ATGMonthOrDerived::Ptr createGMonthOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
00102   virtual ATGYearMonthOrDerived::Ptr createGYearMonthOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
00103   virtual ATGYearOrDerived::Ptr createGYearOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
00104 
00105   virtual ATDurationOrDerived::Ptr createDayTimeDuration(const XMLCh* value, const DynamicContext* context) = 0;
00106   virtual ATDurationOrDerived::Ptr createDayTimeDuration(const MAPM &seconds, const DynamicContext* context) = 0;
00107   virtual ATDurationOrDerived::Ptr createYearMonthDuration(const XMLCh* value, const DynamicContext* context) = 0;
00108   virtual ATDurationOrDerived::Ptr createYearMonthDuration(const MAPM &months, const DynamicContext* context) = 0;
00109 
00110   /* @name Other factory methods */
00111 
00112   virtual ATStringOrDerived::Ptr createString(const XMLCh* value, const DynamicContext* context) = 0;
00113   virtual ATStringOrDerived::Ptr createStringOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
00114 
00115   virtual ATUntypedAtomic::Ptr createUntypedAtomic(const XMLCh* value, const DynamicContext* context) = 0;
00116 
00117   virtual ATBooleanOrDerived::Ptr createBoolean(bool value, const DynamicContext* context) = 0;
00118   virtual ATBooleanOrDerived::Ptr createBoolean(BoolResult value, const DynamicContext* context) = 0;
00119   virtual ATBooleanOrDerived::Ptr createBoolean(const XMLCh* value, const DynamicContext* context) = 0;
00120   virtual ATBooleanOrDerived::Ptr createBooleanOrDerived(const XMLCh* typeURI, const XMLCh* typeName, bool value, const DynamicContext* context) = 0;
00121   virtual ATBooleanOrDerived::Ptr createBooleanOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) = 0;
00122 
00123   virtual ATAnyURIOrDerived::Ptr createAnyURI(const XMLCh* value, const DynamicContext* context) = 0;
00124 
00125   virtual ATQNameOrDerived::Ptr createQName(const XMLCh* uri, const XMLCh* prefix, const XMLCh* name, const DynamicContext* context) = 0;
00126   virtual ATQNameOrDerived::Ptr createQNameOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* uri, const XMLCh *prefix,
00127                                                      const XMLCh* name, const DynamicContext* context) = 0;
00128 
00129 };
00130 
00131 #endif
XQilla-2.3.0/docs/simple-api/ATUntypedAtomic_8hpp.html0000644000151400015140000000622511653571064017467 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATUntypedAtomic.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/items/AnyAtomicType.hpp>
Include dependency graph for ATUntypedAtomic.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  ATUntypedAtomic
XQilla-2.3.0/docs/simple-api/classxercesc_1_1LocalFileInputSource.html0000644000151400015140000003351211653571065022614 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

xercesc::LocalFileInputSource Class Reference

This class is a derivative of the standard InputSource class. More...

#include <LocalFileInputSource.hpp>

Inheritance diagram for xercesc::LocalFileInputSource:

List of all members.

Public Member Functions

Constructors
 LocalFileInputSource (const XMLCh *const basePath, const XMLCh *const relativePath, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 A local file input source requires a path to the file to load.
 LocalFileInputSource (const XMLCh *const filePath, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 This constructor takes a single parameter which is the fully qualified or relative path.
Destructor
 ~LocalFileInputSource ()
Virtual methods
virtual BinInputStream * makeStream () const
 This method will return a binary input stream derivative that will parse from the local file indicatedby the system id.

Detailed Description

This class is a derivative of the standard InputSource class.

It provides for the parser access to data which is referenced via a local file path, as apposed to remote file or URL. This is the most efficacious mechanism by which local files can be parsed, since the parse knows that it refers to a local file and will make no other attempts to interpret the passed path.

The path provided can either be a fully qualified path or a relative path. If relative, it will be completed either relative to a passed base path or relative to the current working directory of the process.

As with all InputSource derivatives. The primary objective of an input source is to create an input stream via which the parser can spool in data from the referenced source.


Constructor & Destructor Documentation

xercesc::LocalFileInputSource::LocalFileInputSource ( const XMLCh *const  basePath,
const XMLCh *const  relativePath,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
)

A local file input source requires a path to the file to load.

This can be provided either as a fully qualified path, a path relative to the current working directly, or a path relative to a provided base path.

The completed path will become the system id of this input source. The constructors don't take any public id for local files, but you still set them via the parent class' setPublicId() method of course.

This constructor takes an explicit base path and a possibly relative path. If the relative path is seen to be fully qualified, it is used as is. Otherwise, it is made relative to the passed base path.

Parameters:
basePathThe base path from which the passed relative path will be based, if the relative part is indeed relative.
relativePathThe relative part of the path. It can actually be fully qualified, in which case it is taken as is.
managerPointer to the memory manager to be used to allocate objects.
Exceptions:
XMLExceptionIf the path is relative and doesn't properly resolve to a file.
xercesc::LocalFileInputSource::LocalFileInputSource ( const XMLCh *const  filePath,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
)

This constructor takes a single parameter which is the fully qualified or relative path.

If it is fully qualified, it is taken as is. If it is relative, then it is completed relative to the current working directory (or the equivalent on the local host machine.)

The completed path will become the system id of this input source. The constructors don't take any public id for local files, but you still set them via the parent class' setPublicId() method of course.

Parameters:
filePathThe relative or fully qualified path.
managerPointer to the memory manager to be used to allocate objects.
Exceptions:
XMLExceptionIf the path is relative and doesn't properly resolve to a file.
xercesc::LocalFileInputSource::~LocalFileInputSource ( )

Member Function Documentation

virtual BinInputStream* xercesc::LocalFileInputSource::makeStream ( ) const [virtual]

This method will return a binary input stream derivative that will parse from the local file indicatedby the system id.

Returns:
A dynamically allocated binary input stream derivative that can parse from the file indicated by the system id.

Implements xercesc::InputSource.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/XMLEntityResolver_8hpp__incl.png0000644000151400015140000002143511653571064021020 00000000000000‰PNG  IHDRuƒ?ͯbKGDÿÿÿ ½§“ IDATxœíÝi\×Úð“…}ßQ‘Y¬U‘EA‰J©ŠZk.Uû»µ¶´×·ÚÞöÚºÔÛª­»XÁ D0(¨@ÑŠ€²·€"*û.[BH2ï‡éÆ$¬’•çÿ)9™sæ™™3ódf2'$ ÃäYÒ`Â@^ääu@~@^äUÒ œ¯¯¯¤C¢µsçNIG€¼¼¤Tffæ¬Y³ %‰¬¬¬M›6I: ääu ½BCC===%‰¬¬,I‡€|‚ûë€ü€¼ÈÈë€ü€¼ÈÈë€ü€¼dUuuµ··7ïϪïÞ½ëëë[SSƒòòò çû[£Ï>ûÌËË«¾¾ŸÁËK˜ÑS__?Ê)ùæ²xñâ-[¶<~üx”u'0Œ ]E)ϹYeee~èÐ!WWWuuõ¾¾¾ƒ®_¿ÞŸ ©©éÉ“'–––øÛžžžâââ›=|ø°‰‰ÉhhllŒŒŒLNNF©««¯ZµŠ¯p4séïïýꫯ~ýõW‰4šùÀ0à|Ȱµk×jii;v !tüøq==½wß}—øÔÅÅ…÷lþÞ½{NNN#¶©­­­ûª¡¦är¹ÝÝÝøk--­Í›7óŽf.fff‘‘‘uuu/_¾±Œò:aT*5:::555...555::šJýû”§§gVVq)>;;ûuF-õòòÊÌÌ\¿~ý²eË.^¼ˆŠŠŠB½óÎ;ˆç8oá¡C‡öîÝ‹Wg0þþþÕÕÕ‚-S(*•ª¦¦†¿e³ÙG :zô(›ÍFÝ»woãÆ~~~«W¯NOOǧìííýî»ï–/_úË/¿°X,¢Í;wþüóÏøëÁÁAvÿþ}¡ã‘?|ø0,,¬´´”/¶‚‚‚5kÖÐh´¸¸8b1ïÞ½»víÚ   C‡  -÷z¼&Èë@¶Y[[‡……Bˆ÷RÿðÈdòÂ… srr,,, ·oß.8—Ó§OïÝ»÷È‘#øGMMMÁÁÁÄ”jjjLHH8s挵µõêÕ«çÎÛÙÙÉårMMMñɦL™ÒÚÚJÔRRRZ°`Avv¶¹¹ù½{÷Nœ81Tãø‹iÓ¦ ]===„ßúÌÌ̈ZÄL…Äò:aíí퇊ŒŒtppX¿~ýøNÊíííûûûKKK xÓêøŒã÷êžžžß|ó¹¹¹½½½àJJJþþþ)))†áíkii}:B¨¡¡ÿÚAðöö>t襥¥µµ5‘tǡú²"t‘ëêêð‡^¼x'þ¡ â×á¬Â0ìÀK—.E­\¹RGGç§Ÿ~â¿ÿÃ?ØØØhkkóµÐÕÕÕÁCh!Q>Þð‚…çìÙ³~~~Cµ ¦¦ÖßßOTY¸pá‰'š››kjj>ýôÓ¤¤$‰´cÇŽœœœ¾¾¾ÁÁA*•ª¤¤D¥R½¼¼~úé§ÆÆÆ§OŸž:uÊÇLJ·Ù9sæôööÆÄÄðÞJlœ/˜ëׯ÷õõ ¿È‡®¯¯ÿóÏ?Ož<éëë;L!@üà|Ȫôôô‚‚‚Ó§Oãç”T*uÇŽQQQîîîîîîÄd^^^ÉÉÉAAA‚-lÙ²…÷í;w ‰rAÆÆÆöööÁÁÁ7nܪÿbqóæMÞø¨ªªvww«ªª"„6nÜxøðáM›6‘H$ww÷ˆˆEEÅÏ?ÿüرc---¦¦¦»víRTTD}ôÑG‡ŽŒŒTPPX´hÑš5kx/€S©T[·nñÞ€l¼­­7˜ýû÷;99×ç…òññÙ¾};“Éôöö&fÊW8Lu€H‘øä@JH¤]»vÉÁÿ¯Ÿoþ|K EŠžó”ò¼Nàp¸……µtzñµkZ[{ð¿lÙl++#I‡@ò:ouu—.å]½ú°¦¦uÖ,Ówß»lÙlCCñýÊ}ôd%¯ˆŸ’RÔÜÜ'x__[ø•;’yÈ!ƒ•’RœPp÷nµ––ê;︄†ºJy¾‘¹¼Nàr±‚‚§tzñõëÅMM/§O×óñ±¥ÑçÌ™A"IàˆLr×\yð &!¡àÚµ¢¾¾E‹lBB\/¶ST”qd7¯¸\¬¬¬.#£üÊ•ÂÚÚ¶©Suýüì Á f×¾ ªªÉÜ\Íš·ƒƒ]eë¡,9Èë¼*+›RRŠð; S¦èøûÛC‚@< ¯68ÈIK+ýýÞ½ÇÊÊ AAÎááó¤üzûPä,¯ðŸœüèñãí%Küülçͳ¤R¥èG‹ÈÈë@&UT4\¸G§?jmíus³ Ÿçëk«¬¬ 鏯O^ó:OðtzqUU“®®Ú¢E64š“§ç› I‡€\¼d S§ê®\9Gü¾ŠˆÜçu³gíåtzQ~þS5ooHðL$Èë@¾Þ¼YF¡HxÀW™àklìïåW:|Èë¼::únݪHI)¾sç*•²p¡u` £¿¿½††²¤C@ÚA^RáÅ‹ŽË—à;ÛÚNY¿~A` £¶¶ª¤ãÈëBuvöefV¤¤geýI&“ÜÝg:.^l¯© á ¯IâðU[[5(H|ÈëÃëêêÏÈ(Ç<‰Dš;×Â××vÅ g}}uI‡€t¼$ƒðµ¿ÀËK–|Èë£ÔÝ͸y³,%¥8;»’Ãá:;O§Ñœ–/Ÿm` ç€øA^bÕÚÚsùòƒË—ó««›etÀW¼>V +7·šN/JM-e2ñO£9iJ:4$ ò:Þ_UTV¬á_Eòú¸1™ƒ¿ýVE§¥¥•ö÷³\\Ìi4§À@Gø¾&'Èë@´ÊËëÏž½›’Rüò%C>|Èë¯o`€“SI§ݼYÖ×7`ggæë;+8ØÕÜ\_Ò¡ >×Httô%&þ5àë´izk×Î r15Õ–t\Ò òúb±ØÙÙ•å©©¥íí½ÖÖÆ4š£Ü 9 À𠯃‰ÄfsïÜù{À×à`—WW×ò4ૈ@^‡[XXK§_»ö¨µµOðË—;[ZJ:4Dò:˜Â| äu‘"<þ¨¥å¯O£9Y[K:4&äuðZz{’’&×€¯"y]<¸\¬ à)^œ’RÜÜürút=[Íñ­·,$ò:É<ૈ@^3<ÁgdT\¿^\[Û6uª®ŸŸæ8gÎ  nyŒÍóçíçÎý~õjaCC—Ý”uëÐhŽZZ“hÀW¼.A••M))E‰‰Ÿ>m53ÓY¼Ø<]×Á¨ð øºjÕÛ!!®3gÂ½É y]à >)éÑ“'-¦¦Ú~~¶óæYR©p! È Èë`ÿðõQ?+ À!$ÄÕÃcædðUD ¯K<ÁÓéÅUUMººj‹ÙÐhN^^6àôƒ¼„ãðuÆ ƒÕ«ç†„¸Á^¢y]:UV6ef–§§—çç?ÕÑQóö¶¡Ñœ<=ßTP H:4„ƒ¼^¾J äu)÷üy{zz9^TPP«¥¥âã3 ¾ ªªiút½ðpðU2 ¯Ëœ††®7Jèô¢ÂÂZ%%77«À@Ç%KÔÔ”$˜Ô ¯ORl675µ$!¡ ;»’J%¿ó ø*n~xî?‰·õõ]ººj**ý#•J9{v£‰ |Á’íí½·oÿ‘’R|çÎT*eáBëÀ@Ç€uuHð@ ¯O:OŸ¶ž?Ÿ—PÐÒÒíæfâºx±= ø*~¦ïߟ:Ôþgii”“-ÞˆÀëêììË̬HI)ÎÊú“L&¹»Ï t„ý ˆäõÉ‚wÀWCCÐзÂÂÞ‚¿ gÏÚçÏÿVèH¥R¢£—DE-T`Btuõgd”ã žD"yxÌôõµ °×ÓS—th@þA^—sÄ€¯éée\.¾J•€€%%u‚» ‰DÊÏÿ~å ^¾ìOO/OI)Îήäp¸ÎÎÓi4§åËghH:4 · ¯Ë&sð믓¿ú*hølx|µ·7[»v> ø*mNÊùê«d6›Ë[H&“œ§_»ö‘¤¢¢À`°rs«éô¢7JØx‚§ÑœŒŒ4GÙBCC|Õ£y]Æ47¿\»ödYYÝ©SïØ NÐßÏJL,ŒÏ/,¬ÕÑQ{÷ݹ0à«Ôjkë=ûKç•}B!ûmðºuó%)&sð·ßªèô¢´´Òþ~–‹‹9æD£9?èS?ËÉéË-[|¶nõ†QëÁð ¯Ë’ÒÒº5kŽwuõaò𘻙ø¿ÞŸŸž^¾ÊŸóòžp8Ÿ²S(äââ¯uuÕ$"Áß¼YÖ×7àâbîçg»t©£¹¹¾àÄ))ÅgI$äînýóÏë´µáÂäu™‘PðñÇ1 Ãs™L*,Üed¤ÕÒÒÿàÒ¥·ØØ˜¬Zõö˜.îɺtéÁöí¹Ü¿vC …¼p¡Õùó‘’ ˆÓÀ;'§’N/JO/ëîfZ[ÓhŽAA.Ä4›6Ť¥•r8\Š––Ê©SïÏ™3C‚1iy]p¹Øž=×þù6Bo.JXØ[ÝÝŒ´´22™´d‰Ã»ï¾5¾<€.[zz˜vv;9ø[‰ôÓO«ƒƒ]%‡[XXK§''?lkëÅüòåΦ¦Ú³fý‹Åbã“‘É$ EG/ŠZ×ä ÈëÒŽÁ`mÝ—–VJœÒáH$¤®®ìä45<|> ø*ÓÞÿtff9þë9%%jyù·0"é$70ÀÎÊú3%¥8#£¬§gÀÑqjIÉ ¾#™Lòò²9r$\SSERqéy]ª54t­Ysüñã‡#t:ý#sñ&XJJqdäY.£R)þþöǯ—tD@Z°X윜ªÿþ7£¤ä9ßs!Š‘‘VLÌÆY³L%Nð³ô*.~±xñ55C&uÊ… Ęp¾¾¶ÊÊ !‡ì"ép€QT¤º¹YUTÔ &u„Ðà §±ñe@Àqq¿‹?6 µ ¯K©«W.[öcWW/qçUÐà ')©Á`‰300á””¨þþö$RQQôô|SÒáé’]90ÀêS‡Ãfs>ýôò–-±p(¸WnÊ2ŒÎÎNI…çÏþ÷¿wøn§ ÕßϺxñ·Å‹mÄ•P***:::¯Óô:„—׌ÄÄB_ß™íí-’ŽE Gñ¹rå>™Œ†¸f‡Bø­ÔÄÄÂŠŠºýûWó0“ß^óJ^ïé驪ª{Hào\.völÉ;Ï)!²‚!¤¤D¥RÉ!UU*þ‹w--e„‰„jk몪†xN¤ ^ó( ½!¤¥ÅÕÐPœ5KVô(^l6÷öí*¾‘‹†RYÙ¼qcìæÍ³mlôD*|{Q{zzŠ/ `Ñ"/I‡0ZåååÕôº­[±¨¨E“ü1EèQ| Ö¯¿N#þïUMM‰J¥ „(²†Æ_…ªªJÃ) ä›à^G ""<'yR‚TTçÏ·”t@ÆÀïæ pʘ×ùy×ùy2Ÿ×Ÿ?¾aÆ'{üø1þÇGÄ Þê=¢R©ñññDyrr²¢¢bii©(bæCâann¾nݺÖÖÖa¦Ç0,<<\]]}ôí?~üx""C¯#‘HVVV|ß ñ­)ñä’4ô(¡[–÷褢¢²`Á‚¢¢¢×XPQª[ò­¨1!êòrÇÝ 8w™ÏëIII+V¬úQMM¾¾>þZ[[û³Ï>ªúìÙ³¿øâ‹mÛ¶uuu!„^¾|µk×.{{{ÑEÎëÞ½{uuugΜéîîvvvÆ#ª¡¡!..®¢¢B<±AâéuµµµÅÅÅD­ÎÎΜœœ ^ ¤¹GáG§ÆÆÆ’’++«°°09þ·0¡k›÷;Ô&.æææ;wî`2eéÒ¥ýýýB?ª®®æ[@ÁB¢úÀÀ€ÝæÍ›1 ‹ŒŒtqqa±X"‹ú¡êêjâ-—ËuwwÿòË/‡š^èr¾ý TVVVVVöš@¯ÚëBþþþ_|ñQ+&&& @t[s”Dô(AbëQB·,_ass3B¨¹¹yÜK*"Cu˱-G³¶ÇGœÇá1Ÿ¯_»vmÊ”)øðË.\°¶¶îëëC îØ±ÃÈÈÈÐÐpÇŽƒƒƒøõŠ[·nM›6-++k×®]Ó¦M300X·nq2*X !D§Ó”••-,,Î;‡b³ÙB«·µµ©©©©¨¨ð^!^¿ýöÛ!ccc4ÄÅ¢:BHQQ1&&æôéÓ{öì9sæLLLŒ‚‚ÂPANࢠ"‘H‘‘‘ׯ_ªÞåe›ééé–––:::{öì!ÖFrròÌ™3 ·mÛ600 ´p´ÝBÄ&a¯C…††^¾|ûß¹QBBBHHñ©Ð¥ ‘H§OŸ¶±±100øî»ïÎ;7cÆ --­ÿû¿ÿÃkuuu½÷Þ{úúúfffŸ|ò “Éä]cÎÎÎ7nħìííUUU}ôè‘àæõî„ G!„zÔh((((**jiiiÁÑÐoaǽ¶ gß¾}ÖÖÖ ,ÈË˦‰DŠ‹‹³±±ÑÕÕÝ»wïPk{¨M0|oÉÍÍå[{âÛqx“ü(¿ç®[·nýúõMMMFFFyyyxá÷ßüüùó’’ggçèèhü;N@@ÀíÛ·wïÞmkk[RRRZZ:wîÜO>ùd¨Z½½½JJJGmllwîöê÷)âõˆ…DuBtt4Bè›o¾á-é¢a¾Çåççkkk?wüÓ¡Úä… ìîî¾rå B¨­­ oÁÏϯªªêþýû–––»wïZ8|OçÙÕdëu¡?ÿüÓØØøÑ£G†uuu©ªª¶µµ½Ep)ðZ«V­êîî>yò$BhåÊ•ÝÝÝÇŽ÷;†akÖ¬ñöö~òäIII‰±Ýñ5vãÆ ==½ÁÁA Ãbccmmm¹\.߆]w GI´G ˆð¢¢¢žžžžžžúúú¨¨¨ 6ŸŽþ(7TǺ\c]Û¼ÁÿðÆ††‰‰‰ ׯ_755Å[ªVHHHggç‰'Bííí£ß#ö¾C±8ÃãÉëfff¼ó{óÍ7ñ×NNNx|%%%†Íœ9311ÿ´¢¢‚x-X«££CAAaÿþý\.·§§‡Ãá U=88¸££ïþ@TÇq¹ÜåË—S(”ððpÞåé¢a#åõ¡æŽ— Õ&/„PVV†aøÿ¸WWWóÆaØ¥K—,--…bÃçQx²õ:|K}øá‡Ÿþ9†a±±±¾¾¾Oo\ üÓ‡bÆb±ø^WWW³X, …Bl²ÄÄD¾íÎf³oݺ…aØ’%K¾ûî;Á !ºî„A’h*¯óRWW¯¨¨fu ]ða:žÐåëÚæ ÞÚÚ:&&†ˆðìÙ³xËCÕ» ±Œ)¯ß[פ؎Ã㼿þõ×_S(Þ»,ÊÊʼ›_KK ¿»£¬¬\ZZ*ØŽ`- ÃrssCBBÔÔÔ.\xãÆ¡ª÷ôô,[¶ Í»®ñ¿rÂFÚx«ãÎ;§¥¥•­¬¬œ””$žEÄíNçÏŸwqq~îÄÄBÛä…ªªªâÞƒÁÀ ‹‹‹•••… ¶ÆKÌwC'U¯Ã·TVV–¥¥%—Ë]±bűcÇ0žÞ"t)xû’àë/^ðnâ’’b»wa£¢¢>üðÃÖÖVEEÅ/^®=Ñu' z”D{”àˆ¯°¯¯oûöío¿ýöX|˜Ž'taDZ¶‰8UTTŠŠŠˆ‰ñIÃÔª¬¬ä]Ò1åõá{‹àšÛqx<¿‡ñâÅáÇ}||¶oßNêë뛿³³óþýûx9~wÇÔÔ´¶¶/)**úöÛo‡ªÅ`0¸\n|||GGÇÆi4ZGG‡Ðêiiiþþþ¼±Ùl„P}}ýh–‚¯zCCömÛöíÛçîî¾k×®ˆˆˆööv1,š``†ýòË/K—.~î¸Q¶)ôÁ ¼!„ªªªð«UCJƒÉÖëpnnn===¹¹¹|¿—¾ceddD¡Pjjjð·Ož<™2e ïC…††^½zõòåËnnnfffBÛ‘ƒî„ G ô¨©ªª¾÷Þ{åååØÿÎãG¹àÃt<¡ ;ÖµÍ[×ÜÜœ÷7ÿÄ U‹LÿCaÃ÷AâÛqx“üh¾çr8ŸÿûßÆÆÆ×®]ÃË·mÛ‚?G1wîÜ-[¶ð~¯Ùµk—ƒƒCiiiiié‚ 6mÚ4T-ƒ¡¬¬œÐÚÚzüøqeeeƒ!´zxxx}}=ÞþÀ÷©S§^¾|„x¾dõôô`¾yñVçr¹øEl‹åàà°jÕ*1,¾‡Ϲeee-_¾ÜÌ̬««k4sªÍ'N- ó6¼//¯êêêXYY}ùå—B ‡ï b;»š„½ŽØjQQQ666^^^|å‚Kt¾ŽaØêÕ«½½½k,ªî“ÆIDATjjJKKmmm‰íN¬j6›mhhhddtæÌ¢P<Ý ƒ%Ñ…xiÃa'ñÏž=CuwwiÁ1ao˜…ëÚæóÇ444LJJjllLMMµ°°Àåþ2üÚæ{=|oÁ$ws^?t裣#~áêÕ«&&&ø­îîî 6èèèèéémÞ¼¹¯¯w ™Læ'Ÿ|bjjª¥¥µjÕªÎÎN¼\°†a—.]zã7ß|óÍääd¡ÕY,Ö’%Kxûæ›o´µµßxãääd|¾ƒƒƒnnnêêê‚[ˆ¯zLLŒ’’qAðÉä„„Q/öꬩS§®Y³†÷Âàðs¦ÍaŽïx 'Ožœ>}º¾¾þÖ­[ †ÐÂá;ƒØŽÂ“°×[-++ !täÈ|¢\èRŒ˜×;::Ö®]«§§gbbòÏþ“Øî¼ ©¢¢B»Glv¢º=J¢=JèY_^çp8šššOŸ>Ó‚cÂ:žÐ…÷Ú&âd³Ùûöí³´´TSS›7o~=b-âõ0kŸŒ÷õˆgI‡I¼›³¥¥¥¢¢ÂÓÓSpyòøñcÁ‘§„¿Æekkû:Á@¯“6ÿú׿jkkãââF9ýDu'= L&¢;S'*D€¬c2™ §OŸ¾pႤcŒ“Ì# ÆASS3""b4…`RÉËËsuu}ÿý÷Çt² Ý €qÝŽ×áÁøÁUS0± G0V‚{ œ¯òò: ? ¯òò: ? ¯òCÈóë âÈ"&“É÷Ïã½ èQŒà^#$¯ã­ÀhLÔQzÀA`¬øöÒXz€Ô‚ûë€ü€¼ÈÈë€ü€¼Èÿôøç¦¡xìIEND®B`‚XQilla-2.3.0/docs/simple-api/MemoryManager_8hpp__incl.png0000644000151400015140000001411711653571064020203 00000000000000‰PNG  IHDRuüØ¢¯bKGDÿÿÿ ½§“IDATxœíi\×ÞÇO@*P6E6¯‚[©ú(–´qAЬ¢ˆl*Xe‘«(Úb­â­ÕŠÀM€(‚ ×â¬à£ n((mwVQ‚ ËÜÓO>i!è$“Àù¾šügÎ9¿ÿÉü2'³œ!  ¦ñŒB ¯ 쾂@°ú Á%¼(åååñññx«€ŒŒ’’Ù7 }5ÚÛÛKKKíííñ‘ˆ7oÞÔÕÕáÒ4ôÕˆ‰‹‹Ã[D"ÊÊÊ8€KÓðÿ‚=ÐWö@_A Ø}`ô‚=ÐWØC&“}}}…nhÞµk™LnnnËbD"?J0úJ*´µµ=}ú”ÿ±»»ûÑ£GPÌØúJ*ÌŸ?¿¬¬Œÿ±¢¢bΜ9PÌØúJ*ØÛÛ—••ñG_ååå_|ñ-‡ÃINNvuuuuuMNNæp82™\\\¼a×ììì«W¯zyy­Zµ*-- -ÕÓÓóã?®Y³ÆÝÝ=))i`` ¹¹™L&?xðÀÃÃ#((èÈ‘#è–,ËÑѱ¡¡A1•••ŽŽŽnnnÙÙÙhL&—––nذÁÙÙ977w¨-¹xñâÆW­ZµsçÎÊÊJ2™,2AA©µµµBÝuïÞ=''§3gÎÐoݺµ~ýzWW×_~ù…Íf‹ bôuaô•T˜5k‹ÅBG_L&óÁƒ‹/æ¯=þ|kkkJJÊ¿þõ¯¤§§£ñû÷ï'%%Q(”ÊÊÊÔÔÔÐÐÐÌÌLƒ8~üxGGGrròáÇïÞ½›““ƒ–:wî\LLL@@À­[·¸\.àÖ­[†††–––ÊéííÝ·oßÔ©S³²²BCC)JWWºêæÍ›‰‰‰ÁÁÁ)))ÝÝÝ"·üõ×_333·nÝšíã㓘˜(>ATêÔ©S…º«ªªŠB¡DGGS©T4Y@aaá¡C‡~øá‡ªª*¾áEåè+©@$—.]ŠŽ¾*++­­­'L˜À_[\\¼}ûv}}}ssóààà;wî q555€···ššš££# »»›ÃáüöÛoaaa†††æææþþþüÛIƒ‚‚æÎkkk«¤¤TSS(--upp ÊQQQIMM ×ÑÑÑ××0™Lt•‹‹‹††ÆòåË Cä–ùùù!!!¶¶¶šššóçÏ÷÷÷Ÿ *UUUU¨»ÐÄ—,Y‚&‹CCC'Mš4cƌ͛7ó“”CàýÒÂÞÞ>!!! @hÜhkksssãTWWGÔÔÔJJJBË:ÎãñŒŒŒÐÆÆÆ貉‰ €H$ÚÙÙݸqÃÜÜüþýû’ˆQRRjjj:zô(‹Å:Œèêê ¹eKK‹™™¿ˆ©©©øQ©ƒÑÑÑðP&MšÄ/ÅOVdP¾’ÖÖÖ½½½µµµ÷îÝÚË555;fll èéééìì¶6mmm"‘ØÚÚ:eÊ@KK ºß]ßÞÞ>>>ÞÔÔÔÚÚZOOO1ýýýû÷ïß¿ÿ¢E‹Ølvqq1•Ð^.rKƒçÏŸ›››£Û¼|ùR|‚|©Bµ…ÒÔÔ„ÖüúõkÔxCå8”èèë§Ÿ~š1c†–––à*;;; …ÒÞÞþìÙ³èèèÂÂÂakSRR"“É'Nœhmm}þüyjjê²eË„¶±±±ár¹§OŸFG’’ˆa³ÙGIIi``ýÔÛÛ+R€È-]\\RRRîÝ»Ç`0ª««i4êa¼|ù2À9'Ožlnnþã?¨Tê×_-&(‡@_I2™üòåK¡A @MM-00pÇŽÁÁÁ’Ô¶}ûv]]ݨ¨([[[¡ Póôöö.]ºTB1¡¡¡ñññ~~~'Nüꫯ¢££E¶.rK—uëÖ;vÌÛÛ;777$$DSSS’=Ê?A2Ë–-‹ˆˆˆ‰‰ùüóÏùÉŠ Ê!8Ï™äœ;wÎÃÃãúõëx *•ÚÖÖ+›æ*++õõõ-,,Ð7nÜÈÌ̤P(Ymss³¯¯¯P?‹ Š}þ —=¯F ­­­ÅÅÅ«W¯–Y£Ïž=;xð`CCC]]]ZZÚªU«dÖº<Ï[Œ~ÿý÷½{÷:;;Ëò^ OOϾ¾¾ØØØ®®.CCÃ+V899}|µêêêƒë”[à8pÈÿ8"B £ è+{ ¯ 쾂@°ú Áè+{àõ«‰· !ðxJD"Æÿq¹Ê$’ü>P(NÇ«iè«0yòdwww¼UHJCƒvw·òܹfpzzTjjt­¬:?ý´«:¥Êüùóqi^…ðxHDDna჌Œ@;»iÖŒ HllAVV%•êÿõ×31¬y”ÿ_6‰Ž>wáƒôôlM ññk==lÞœ~íÚïØV>š€¾mÄÅž;w')ÉÏÞÞJõ„C‡¾qvž˜~ëV£4š@_*Ž)NO¿™˜¸~Å kéµB$~þÙkùòY~~”ªªgÒkHq¾=?^râDÉÑ£NNR¿¥D"ž8ácg7mÃÊǯ¤ÝœÂ}5JHL¼väHqBÂ:ÏeÓ¢²2‰BÙhkkæé™\[Û$›Fè«Ñvë‡.8àâåµP–í*+“(kkcoï”úú6Y6-ç@_)o9²¯†ÚÚ&OÏd[[3ù7ÀÌL/;;äÙ³7þþiýý¼åÈx¼R êëÛÜܧOŸ˜•¤ªªŒ·I©«kùæ›ÄÙ³'Ÿ>½YEe =D W ÀÓ§oÜÝOYZêgd*©ÿø‡QVVÐýû/BB2Øl.Þrd<^É;¯^½[»ö¤¾þ„ÜÜÐ „ß ªÜ»÷ÜË+…L¶:uÊOIiLü”‰$—¶¶÷žžÉ::¹¹! j*ÀgŸ™¥§o*)y™Ëã‰ßqè+ù¥½áæ–¨¢¢”}óÀ"¼µH—1têSQèéé÷õý÷»w=ÛŒŒ´†/ P¬^=»·×sçΜ ÆïØ!ü~ñQô•|Ádö{{§47Ó ¶™šêâ-G*¬[gËãñ""Î*+“¶mû o9RúJŽèïçlÚ”öôé›óç·š™éá-GŠxz.`2û÷î½@"CCÉxËÁè+ya`€ãïŸZ[Û”—·eÆ C¼åH€€¥ï»ï.ª«óóû?¼å` ô•\ÀáðBC3îÝ{ž›:s¦1ÞrdDp°}wwßîÝçÕÕUÜÜ>Ã[–@_á‡ÃÛ²%ãÆúœœàyó¦à-G¦DF: p¾ý6‡D"º¸ÌÃ[f@_á ‡DFæ–”<ÉÈüì33¼åàÀîÝ«¹\ÞöíÙjj*³ð–ƒ ðúž u®°°Zï(P bc¼¼ÒJKëðÖ‚ ÐWxW˜—w'9YZï(PÐw)¸»ÛÑFÇ» ¯pãÀ"íæ©S~ŽŽR|G¢@ vwt´öó£Ü¾ýo9 ô>üüóU ¥üèQÏÕ«gã­E^ ‘ˆÇ{ÛÙMÛ°Z]­ØïR€¾’./^¼­¨Ø$&^KH¸’°nÝ:[\TÉ-è»,0÷òJ®©y-¸ AììÛx 1DšìØ‘kbQZZǤ¥ý¿‘Ñ*µGUr‹5àîž8kVì´¢“ghømYÙøj“x¼’"ííŒóçï²ÙÜ©ÿýïc@ffEllÁ¾}Î8¼£@QPUU>}zóÔ©îî‰ í<²cGnff‘H8q¢ouŸÃ—"ß‘J½Áfs ¼½fgßÿ::zÞÒ€îî>OϤÖÖ÷VV†7nüÉÐøÒ¥oçÏ—÷«çÐWÒ‚Á`ÍÇb±Ñ@ÂÂ…ùù[äjægy¦µµëË/ôôôq¹í¥ÊÊ$‡YÊF\u J‹¬¬JÁˆHUÕÓôô›8ªR úúØ;vä0™ý|SØlnqqÍ‹oq& ÐWRÍæ&%]çpx‚A‚ìÝ{B)ÇK˜¢Àdö{z&UT<êC‰DLI)ÃCÔ€¾’ EEÕt:Sä*Aöï/’ÿ=G˜Ì~ÿÔ;w^p8"¦d³¹¹¹U]]½²&9ÐW؃ ÈP§­H$"ÌÌtµá?Û¡@`kk¦¦¦<ÔtÙB£Éõpž·Àž’’'7R…ú•D"òxÈŒFqqÎcù[Éa2ûi´›Ç—²X\®ðhPCCõáÃjj*¸hè+ìqv>^]ýŠ¿+ðµk׊eËþOŽˆ¡ÜE$¿ÿÞÕß ŽÚÄ}…1÷ï¿pr:Ž.£Ž²²2Œ‰Y õ1 îúùçÒ¾¾¿ÜE €‰µªªöÊçÄÔÐWH+.®!‚Lžüid¤£‹Ë<I¿{…£³“™œ|=5õ‡ÃC¯aP©þ+WÚà­Kó‹Å¢Óé8ªQtššºÖ®¥òxˆ‘‘fpðbGÇ£ÞQãÇ×ÖÖþÈJèt:‹Å’pã®.VfæÝ³gï÷õqfÌ0ÈÌôûÈÖ1A¨þæ«7oÞÔÕ’6qF«yôèÍÚµÓ/ž$Ÿ/)Å==½™3g~d%Ož<éèèQ£ÿ?ÿi,)y¾k×"++ðñõƒˆù-ìííe'gÁáð -*ÕF>GüÒàÉ“'XUõþtv^þömOmmîO[î8o f()çà­bl¡««A&Ëãcå—‘%ÐWö@_A Ø}`ô‚= ï«W¯^ùûû»Ycc#zA°xuuµ’’R^^?^TT¤¢¢R[[+ ÍB055õóó1A___ I_ŽJ GÃd—#ý¢ïB;€H>¾ÇÞW………..."W={öLW÷¯W³iiiíÚµk¨âsçÎݽ{wxxxWWàýû÷[¶l‰‹‹³¶–ÑŒ™­­­MMMééé cÞ¼y¨‘´´´œ9s^ÁÿŠÅ3Ô %ÞWW¯^upý:M÷îÝ;tYWW÷ÇS<66VWWíú˜˜CCÃèèh©©FOOoâÄ‰ÆÆÆd2ùÂ… æææÇŽjcô–™É“[¿bñ µH‰ûêâÅ‹ÆÆÆèm„999Ó¦Mc2™6›e`` ¯¯Åf³Ñîµk×LLLÊÊÊâââLLLôôôüüüø?ƃK.]ºdcc£ªªjnnž™™ àp8"‹¿}ûV]]}üøñ‚wþòÂ… 'NCýùÅ***4---íСCééé4MYYy(‘¦6rùòå¡êÌKÂ:¯^½jii©­­}èÐ!~oMŸ>]__?<<¼¿¿_dPÒÝB& ÎT°+¸\nBB´iÓ>ùä“Å‹WUU –ÚΜ9caa¡§§ÚÛ+âÑc¡1‚“ ¶··_¿~}Ø9ýüü6lØÐÖÖf``PUU…>ìææöêÕ«šššyóæÅÄÄ444V¬XñÛo¿íß¿æÌ™555µµµ ,ˆŒŒªTOOϸqã’““[[[SSS•””zzzDOKKËÌÌDm ò—‡ ò‹ó‰‰‰ÄÇÇ ¥šzfCCƒ`‹wïÞÕÒÒß:ºv¨:¬^½šÁ`äççÞ¾}‹ÖàààP__ûömKKËýû÷‹ Šß?~üøñcñÛH‚$õˆÌT°+~úé'}}ý‚‚‚–––Ë—/¡+ô½£ _~ù%?͘˜¡¶÷ØHõˆ¯ètú¤I“lllûÝÊʪµõ¯ÙIKJJæÌ™ƒ&PSSƒ ÈôéÓ ÐµuuuüåÁ¥:;;•••=J§Óy<^ww7—˪¸››[gg'ò¡¾âGáñxkÖ¬!‘H¾¾¾‚ùJ55d8_ Õ:ªNAeee‚p¹\´-Aý‚œ={ÖÒÒRd‹,}%2SÁ®˜6mFãoúôi1¾LÓÌÌL¨­Á=6Rýâ+A¾ûî;‰ÔÞÞΨªª 555Ñеµµµƒë\ A›7o~óÍ7êêêvvv¿þúëPÅ»»»ÑeÁþ­¯¯—ÄW‚ÅQ233555ËËËUUU e“"ÊWÙÙÙóçÏß:c‘u ¨¯¯l ­Åb¡ÁG©ªªŠ ®MYú •©`WŒ?þáÇü«««ÅøJ|šƒ{l¤ú?ä¼ÅëׯOž<¹lÙ²ˆˆ~PWW—ßÔ8077×ÔÔT__?""¢¿¿®ÇFª_ÄóÂð¹ÆQOccãÔ©S‘¿[ZdP<èX “ç…1©/ëWøëˆ}5™0aBpp°$Aȇ}5Ñ××ONN–$ù0 ¯ 쾂@°ú Áè+{ ¯ ì1/gKK‹ìu@‘¾¾>¡Û‚?¦*ÅÝñ÷ƒ_¡÷ƒC ’€•¯º»»»»»1© „ú¾§Áøÿ Áè+{ ¯ 쾂@°ç5cà•ÏIEND®B`‚XQilla-2.3.0/docs/simple-api/classATGYearMonthOrDerived__inherit__graph.map0000644000151400015140000000077511653571064023630 00000000000000 XQilla-2.3.0/docs/simple-api/functions_func_0x65.html0000644000151400015140000002465211653571063017326 00000000000000 XQilla Simple API Documentation SourceForge.net Logo XQilla-2.3.0/docs/simple-api/functions_0x73.html0000644000151400015140000006323211653571063016307 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- s -

XQilla-2.3.0/docs/simple-api/classAnyAtomicType.html0000644000151400015140000020073611653571064017275 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

#include <AnyAtomicType.hpp>

Inheritance diagram for AnyAtomicType:

List of all members.

Classes

class  CastTable

Public Types

enum  AtomicObjectType {
  ANY_SIMPLE_TYPE = 0, ANY_URI = 1, BASE_64_BINARY = 2, BOOLEAN = 3,
  DATE = 4, DATE_TIME = 5, DAY_TIME_DURATION = 6, DECIMAL = 7,
  DOUBLE = 8, DURATION = 9, FLOAT = 10, G_DAY = 11,
  G_MONTH = 12, G_MONTH_DAY = 13, G_YEAR = 14, G_YEAR_MONTH = 15,
  HEX_BINARY = 16, NOTATION = 17, QNAME = 18, STRING = 19,
  TIME = 20, UNTYPED_ATOMIC = 21, YEAR_MONTH_DURATION = 22, NumAtomicObjectTypes = 23
}
typedef RefCountPointer< const
AnyAtomicType
Ptr

Public Member Functions

virtual bool isAtomicValue () const
virtual bool isNode () const
virtual bool isFunction () const
virtual bool isNumericValue () const
virtual bool isDateOrTimeTypeValue () const
virtual const XMLCh * getPrimitiveTypeURI () const
virtual const XMLCh * getPrimitiveTypeName () const =0
virtual const XMLCh * getTypeURI () const =0
virtual const XMLCh * getTypeName () const =0
virtual void generateEvents (EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const
 Generate events for this Item to the given EventHandler.
AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const DynamicContext *context) const
AnyAtomicType::Ptr castAsNoCheck (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
AnyAtomicType::Ptr castAs (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
virtual bool castable (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
virtual const XMLCh * asString (const DynamicContext *context) const =0
virtual bool equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
virtual bool isOfType (const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const
virtual bool isInstanceOfType (const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const
virtual void typeToBuffer (DynamicContext *context, xercesc::XMLBuffer &buffer) const
 Debug method to output the type of the item in SequenceType notation.
bool castIsSupported (AtomicObjectType targetIndex, const DynamicContext *context) const
 Returns true if (a) both the input type and the target type are built-in schema types and cast is supported for the combination.
virtual AtomicObjectType getPrimitiveTypeIndex () const =0

Static Public Attributes

static const XMLCh fgDT_ANYATOMICTYPE []

Protected Member Functions

virtual AnyAtomicType::Ptr castAsInternal (AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const

Member Typedef Documentation


Member Enumeration Documentation

Enumerator:
ANY_SIMPLE_TYPE 
ANY_URI 
BASE_64_BINARY 
BOOLEAN 
DATE 
DATE_TIME 
DAY_TIME_DURATION 
DECIMAL 
DOUBLE 
DURATION 
FLOAT 
G_DAY 
G_MONTH 
G_MONTH_DAY 
G_YEAR 
G_YEAR_MONTH 
HEX_BINARY 
NOTATION 
QNAME 
STRING 
TIME 
UNTYPED_ATOMIC 
YEAR_MONTH_DURATION 
NumAtomicObjectTypes 

Member Function Documentation

virtual bool AnyAtomicType::castable ( AtomicObjectType  targetIndex,
const XMLCh *  targetURI,
const XMLCh *  targetType,
const DynamicContext context 
) const [virtual]
AnyAtomicType::Ptr AnyAtomicType::castAs ( AtomicObjectType  targetIndex,
const DynamicContext context 
) const
AnyAtomicType::Ptr AnyAtomicType::castAs ( AtomicObjectType  targetIndex,
const XMLCh *  targetURI,
const XMLCh *  targetType,
const DynamicContext context 
) const
virtual AnyAtomicType::Ptr AnyAtomicType::castAsInternal ( AtomicObjectType  targetIndex,
const XMLCh *  targetURI,
const XMLCh *  targetType,
const DynamicContext context 
) const [protected, virtual]

Reimplemented in Numeric.

AnyAtomicType::Ptr AnyAtomicType::castAsNoCheck ( AtomicObjectType  targetIndex,
const XMLCh *  targetURI,
const XMLCh *  targetType,
const DynamicContext context 
) const
bool AnyAtomicType::castIsSupported ( AtomicObjectType  targetIndex,
const DynamicContext context 
) const

Returns true if (a) both the input type and the target type are built-in schema types and cast is supported for the combination.

(b) the input type is a derived atomic type and the target type is a supertype of the input type (c) the target type is a derived atomic type and the input type is xs:string, xs:anySimpleType, or a supertype of the target type. (d) If a primitive type P1 can be cast into a primitive type P2, then any subtype of P1 can be cast into any subtype of P2

virtual void AnyAtomicType::generateEvents ( EventHandler events,
const DynamicContext context,
bool  preserveNS = true,
bool  preserveType = true 
) const [virtual]

Generate events for this Item to the given EventHandler.

Implements Item.

virtual const XMLCh* AnyAtomicType::getPrimitiveTypeURI ( ) const [virtual]
virtual bool AnyAtomicType::isAtomicValue ( ) const [virtual]

Implements Item.

virtual bool AnyAtomicType::isDateOrTimeTypeValue ( ) const [virtual]

Reimplemented in DateOrTimeType.

virtual bool AnyAtomicType::isFunction ( ) const [virtual]

Implements Item.

virtual bool AnyAtomicType::isInstanceOfType ( const XMLCh *  targetURI,
const XMLCh *  targetType,
const StaticContext context 
) const [virtual]
virtual bool AnyAtomicType::isNode ( ) const [virtual]

Implements Item.

virtual bool AnyAtomicType::isNumericValue ( ) const [virtual]

Reimplemented in Numeric.

virtual bool AnyAtomicType::isOfType ( const XMLCh *  targetURI,
const XMLCh *  targetType,
const DynamicContext context 
) const [virtual]
virtual void AnyAtomicType::typeToBuffer ( DynamicContext context,
xercesc::XMLBuffer &  buffer 
) const [virtual]

Debug method to output the type of the item in SequenceType notation.

Implements Item.


Member Data Documentation

const XMLCh AnyAtomicType::fgDT_ANYATOMICTYPE[] [static]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/ATBooleanOrDerived_8hpp_source.html0000644000151400015140000003116711653571063021447 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATBooleanOrDerived.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _ATBOOLEANORDERIVED_HPP
00021 #define _ATBOOLEANORDERIVED_HPP
00022 
00023 #include <xercesc/util/XercesDefs.hpp>
00024 #include <xqilla/items/AnyAtomicType.hpp>
00025 
00026 #include <xqilla/framework/XQillaExport.hpp>
00027 
00028 class XPath2MemoryManager;
00029 
00030 struct XQILLA_API BoolResult
00031 {
00032   static const BoolResult True;
00033   static const BoolResult False;
00034   static const BoolResult Null;
00035 
00036   inline BoolResult(bool b) : value(b ? BOOL_TRUE : BOOL_FALSE) {}
00037   inline operator bool() const { return value == BOOL_TRUE; }
00038   inline bool operator==(BoolResult o) const { return value == o.value; }
00039   inline bool operator!=(BoolResult o) const { return value != o.value; }
00040 
00041 private:
00042   inline BoolResult() : value(BOOL_NULL) {}
00043   enum {
00044     BOOL_NULL,
00045     BOOL_FALSE,
00046     BOOL_TRUE
00047   } value;
00048 };
00049 
00050 class XQILLA_API ATBooleanOrDerived : public AnyAtomicType
00051 {
00052 public:
00053   typedef RefCountPointer<const ATBooleanOrDerived> Ptr;
00054 
00055   /* Get the name of the primitive type (basic type) of this type 
00056    * (ie "decimal" for xs:decimal) */
00057   virtual const XMLCh* getPrimitiveTypeName() const = 0;
00058 
00059   /* Get the namespace URI for this type */
00060   virtual const XMLCh* getTypeURI() const = 0;
00061 
00062   /* Get the name of this type  (ie "integer" for xs:integer) */
00063   virtual const XMLCh* getTypeName() const = 0;
00064 
00065   /* returns the XMLCh* (canonical) representation of this type */
00066   virtual const XMLCh* asString(const DynamicContext* context) const = 0;
00067 
00068   /* returns true if the two objects have the same boolean value
00069    * false otherwise */
00070   virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0;
00071 
00074   virtual int compare(const ATBooleanOrDerived::Ptr &other, const DynamicContext *context) const = 0;
00075   
00076   /* returns true if boolean value evaluates to true
00077    * false otherwise */
00078   virtual bool isTrue() const = 0;
00079 
00080   /* returns false if boolean value evaluates to true
00081    * true otherwise */
00082   virtual bool isFalse() const = 0;
00083 
00084   virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0;
00085 };
00086 
00087 #endif
XQilla-2.3.0/docs/simple-api/classModuleCache-members.html0000644000151400015140000001205011653571063020335 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ModuleCache Member List

This is the complete list of members for ModuleCache, including all inherited members.
byNamespace_ModuleCache
byURI_ModuleCache
getByNamespace(const XMLCh *ns) const ModuleCache
getByURI(const XMLCh *uri) const ModuleCache
ModuleCache(xercesc::MemoryManager *mm)ModuleCache
operator delete(void *p)xercesc::XMemory
operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
operator delete(void *p, void *ptr)xercesc::XMemory
operator new(size_t size)xercesc::XMemory
operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
operator new(size_t size, void *ptr)xercesc::XMemory
ordered_ModuleCache
put(XQQuery *module)ModuleCache
XMemory()xercesc::XMemory [inline, protected]
XQilla-2.3.0/docs/simple-api/functions_func_0x78.html0000644000151400015140000001263211653571063017325 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
 

- x -

XQilla-2.3.0/docs/simple-api/classExternalFunctionResolver.html0000644000151400015140000001331411653571063021552 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ExternalFunctionResolver Class Reference

#include <ExternalFunctionResolver.hpp>

List of all members.

Public Member Functions

virtual ~ExternalFunctionResolver ()
virtual ExternalFunctionresolveExternalFunction (const XMLCh *uri, const XMLCh *name, size_t numArgs, const StaticContext *context)=0
 Returns an new ExternalFunction object for the given uri, name and number of arguments.

Constructor & Destructor Documentation

virtual ExternalFunctionResolver::~ExternalFunctionResolver ( ) [inline, virtual]

Member Function Documentation

virtual ExternalFunction* ExternalFunctionResolver::resolveExternalFunction ( const XMLCh *  uri,
const XMLCh *  name,
size_t  numArgs,
const StaticContext context 
) [pure virtual]

Returns an new ExternalFunction object for the given uri, name and number of arguments.

The caller is reponsible for deleting the ExternalFunction returned.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/ATGMonthDayOrDerived_8hpp__dep__incl.png0000644000151400015140000001443511653571064022315 00000000000000‰PNG  IHDRËãÊr bKGDÿÿÿ ½§“ÒIDATxœíÝ{XWúðH@)Ê-DxàPA×-®r[ÐÒ>jWi°ˆèŠ•KWñ©Šµ®TÛº+n-}VA/°E¤€ ­®Üd»*ˆ¦±Z E 6¹Íïùí4 !!´ã}?Oÿ˜99sÎ;“/3Ã$X†aÒ˜Q]xÁA¹ a€\0@.ºæÊâÅ‹©ª¼0üýý“’’ˆÕ_$¬¼¼üÕW_e±XϽ*ð‚¸wïžf ]«—Ë |~ËǬÕ÷a€\0@.H $ È¥ý»ä0>}úĉ7n\½z5ÞRYYùé§Ÿî™™™Éáp„Bajjê½{÷ Æ«¯¾º~ýúéÓ§ã‚‚‚œsrrh4±Õ|pãÆÜÜ\ggç‘U4xó   by„ sæÌ‰·µµÁøýýý'Ož¬««‰D“'Oöóó{çwÌÍÍ—1â?~¼fÍšªªª”§gG†<#I†a•••,«ªªŠHØÂ… B"‘hÓ¦Mø2BhüøñùË_üýýSRRB—.]JHHHKK›2e Þ§£££©©‰Ãáà«===wîÜ1¶*‘HWRR¢¿[jj*›ÍV«Õ=*,,Œ‰‰ÉÎζ¶¶6j®¾¾¾øøx;;»ØØX''§‡?~üæÍ›Ÿþ¹™™öeaÄ3Z[[GDDUØ(4’«äÇÛÚÚvìØ!„B!Þhiiioooooÿ€ÚÿNÏÍÍõôôܺu«›››››ÛæÍ›ýüü¾üòKbÀyóæ]¹r…X½víš···±U©Õj‰Db°›­­­½½=“ÉôññùôÓOÙlvAA±s>}ÚÖÖ6%%å÷¿ÿ½‹‹‹ŸŸ_zzzGGÇÅ‹ÃmllbbbŒ­m´IÂ*++çÌ™3o޼ɓ'WVVìÏãñÂÂÂ4/‚ñññáááÄj``à•+WˆoªUWW¯J¥Òäää·Þz‹Ëå=zT.—#„‚‚‚ÊËË×­[·|ùò3gÎ „Þ{ï=„ÐÊ•+‰ oÞ¼¹lÙ²ýë_: £ÑhË—/¯©©ÁW¯_¿¾qãÆÐÐа°0üàðáÃÿøÇ?ðWe2Yhhhcc#B¨¬¬líÚµš§«1cƼóÎ;eee? âñx«V­º{÷®þ•JezzúŠ+V¬X‘žž®T*57¿té~‘ݽ{wZZ¾‰B¡X¶l>ÂàÍÕjõ™3g¢¢¢Þ|óÍM›6Ý¿_çŽk|Ò«W¯FEE­X±âðáà …Bg£ÎÑô3:aø%288!äïïoð.A¡P´··O:_•Éd2™ÌÂÂÂÉɉè3{öl™LÖÔÔ„êííåñx .$^ýç?ÿùäÉ“ôôôÔÕÕåååáíÿýï9›‘‘ÑÓÓƒ¿EEEƵµµ™™™;vìÈÊÊêôæââÒÞÞŽêëëûè£ÜÜÜrssããã333Ÿ={põêU•J…ºzõ*›Íæp8R©T,×t‡Ãikk×Ϟ=»sçN777=3"„¾úê+‘H”‘‘ñùçŸóx¼'NèÜ<88¸ººÿ ¬««³´´œ?¾ÎÍ óóócbbrrr¢¢¢ÒÓÓuîµÎ#sîܹýû÷ÿýﯭ­%®0:btÂB¨¼¼|É’%šgb-4M­VãË111>>>Ä^åâÅ‹[¶la±X®®®±±±7nÜйùþð‰DòÃ? „***BCCñ_)o^ZZççççààðÚk¯ u‘Õydâãã]\\<<<Þ}÷]â ël4ŠÑwú•••*•ê­·Þ"Zªªª¦M›6T{{{ ¡PˆÿDâ缞žžåË—kv üì³Ï6lØ u‰ìîîV«ÕÄ ÏÙÙùÉ“'ø2“ÉDÑéCƒBHO&BB¡œN§ …ƒÊd2âäaffæçç÷ŸÿüÇÕÕõÖ­[Û¶mCY[[ÛÛÛ ‚yóæi%f̘/Ož<ÙàŒ¡ŽŽŽ°°0â¥W^yEçæ––– .¬®®ž:uêµk×233‡Ú\©Tjž\]]]uÖ óȸ¸¸³Yg£QŒK˜Z­®ªªzï½÷–.]Š·œ8q¢ªªjýúõC½‘4mîܹ.\xÿý÷‰ÆÁ×VOOϾ¾¾»wïÞ¼y#qvvvfff"‘ÿų½½2átÀ0¬´´Ô××!400°wïÞ½{÷.X°@¡P÷ìûöí›:uª§§§££#ÞrúôiâV¬¿¿?//x¿‡Ê½æŒ!›/¾øp€_|‡Ú<88øðáÃgƌĻ>xó>ú¨©©‰xÔÒÒ2ü## ñD>zôàPF1î*Éçó»»»/^<öBBB„B¡@ гջï¾{ùò匌Œææf@pêÔ© .hDüB™’’âáá¡ù¸ˆN§:tH$áBBBôÌ%“Éôï³gÏÄbqWW×;w’’’D"þ;‡B¡P*•t:].—ã÷C}}}!///•JuêÔ©%K–ƒ¬[·®»»{ëÖ­7nÜ …ß~ûm||<“ÉÔ<µœ!äçç—™™ùã?677ïØ±ãܹsC•=þ|©TzòäIÍ»‹Á›/_¾üèÑ£W¯^‹Å7nÜÈÎÎÆ{~ýõ×½½½úLjjêãÇšæ_³Ñh´={öÀ÷ôdeeuttìÞ½›êBÈ¢óÑÿÈ>QøøãÏž=K´Àç’úÈår‘HtñâEâ¾ ¦Ïýû÷cccßxã|Æ`B^yå•eË– §qFøÉ÷KbΜ9¥¥¥TWA:[[Û­[·§qàÈ ä‚„rA¹ a€\0ãW“Ë•ee÷žo9¦¦D"«ªúAÏG·ÅÅðèÕøä[ŸeGÇOÄjyù÷IIEׯÿü§¹ææf..ðe'}à¯Ùô±´¤O™òó?âè8!¤Ù ‚«$ $ È ä‚„rA¹ a€\0@.H $ È ä‚„rA¹ a€\0@.H $ È ä‚„rA¹ a€\0@.H $ È ä‚„rA¹ a€\0@.Šÿ…ºcÇŽQ[€Qêë%ÈÔjvuu ¡²ŒRTî¹ñÌÌ, ÕU‡ËåRûSÿ¯læç燇‡S]Å‹i4X¸ä‚„rA¹ a€\0@.H — $ŒF£ ‚ßp´Á~«ÁGVÏo¸w£ $ŒÐÜÜÌd2ý8×®]ýÒó¯áåAý×áS«ÕOŸ>ýõã8::Nœ8‘Ú^¦tóõõEáP(‰‰‰&L`±X‰‰‰ …!D£Ñ²³³=<<“““srr¦M›fcc“””¤ð .øøøXYY±Ùìääd„R©Ü³gÏäɓ׮]ûìÙ³Á5<{öìÏþ3“ÉtqqÙ¾}{¿@  Ñh“'Ož;wî† ðžR©ÔÊÊê»ï¾<õåË—9ŽÝþýûBø%%%3gÎd±X :‹ƒJ>j?´BåççìÓØØˆaXcc£fÁ kkkãóùsçÎݹs'Þ9""B"‘dee!„ÂÃÃ%IFFB¨«« ïpûöí …B"‘XXXDGG …ÂÜÜ\„PggçgŸ}6kÖ,>Ÿ÷îÝ×^{mûöíƒkˆŒŒ njjâóù³gÏÞ»w/Þá7Þ¨¬¬üæ›o †a¹¹¹³fÍR«Õƒ÷néÒ¥‰¤°°/aÉ’% 555‡V«Ñàáår¹”.i sww‰DørYY™··7Þ™Çãa&—˵–ñAÿŒ?~``àþýûR©T¥RUWWãgΜYTT„ÿý÷ßãËš5Èårssóúúz|µ¨¨ˆÃáàø|>†aJ¥râĉ†½ùæ›ÉÉÉ:÷îÊ•+†©T*|^Í0 ËÏÏ×–h4xxGCÂLé>LKKK ›Í&Vmllð…qãÆ!„ †Ö2¡±±‘ÃáhÖÐаqãF©Têãヷ´¶¶º¹¹áËZ›üøã*•júôéø*‡Ã …ø²»»;BÈÜÜ|åÊ•EEE^^^åååø©t0'''„™Ù/îXˆ©ÝÝ݉au6Žr¦t¦…Édâ§% ú»»kjjF<”L& OLLäñxiiix£““SKK ¾|ûöí¿ýíoZ[M˜0ÁÜܼ¹¹_mjjrvvÆ—‰Ls¹Üâââ³gÏ.Z´ÈÅÅEçì:—à'-„PCCÁ¡G9ÓK˜T*ÅV®\ùᇶ¶¶òùüÐÐÐ#GŽŒx̹\naa!“ÉöìÙƒêé鉊Šúë_ÿZ_____¿iÓ¦ÖÖV­ ƪU«>|X__¿{÷îÈÈH­‘ýüü”Jå'Ÿ|E4feeýôÓOH¯-[¶‚ººº]»v­Y³FOãhGíEs¦P(-Zdmm·K$’õë×ÛÙÙ988ÄÄÄôööjvjY³QSJJн½ý¤I“ÒÒÒ"""X,VÿöíÛœœlll"""º»»× ‹£¢¢Ølöûï¿/“É´n1 ‹‹‹;v¬D"¼G:—ñ²²²¦L™Âd27oÞL «Õhððކû0H˜©Ûµk×êÕ«‡ßpF‡j4h4$Ì„ïôG¿þþþöööììì¼¼<ªk¡Œé݇™ÚÚÚßýîwÑÑÑÃßjüøñ±±±Ãi4 p#Q@@€X,6v+‹•žž>œF“ç0@.H $ È 3NW—”êL õ¿KVTTà_½ýúûU.t¼ý¶3Õ… Wss³««+ÅEPûÀ—â7ÒØ±'n¢Ñ,©.Ä/û3}Ó ÙÛo§]»Ö˜›{eõj_ªk1p6\OŸJkkÑ oQ]‹)„ ×¹s<„ha55M¾{°á*(¨S«1„¹9­´ô6Õå˜ Hذ´¶>½{÷1~רR© ꨮÈd@†¥¤ä;sóÿÿ®3†¡{÷77?¡¶$S –3gj•J5±Ê`˜Ÿ;Ç£° 3ìþýö––.Í…BÊa‚„V\Ìc0´TkëÓúúÇ”ÔcZ a`völB¡Öj‡ å0A ¸u«¥³S2¸¿PâÏ/€0Š‹¿c0Ìu¾ôäIÏÍϹ“ ÓG¥R—–òT*Ì‚>ø?„ÐùóðèÕ꿽3š={ÖD¬64tœ?g۶׉;»W¨¨Ë”ÐLëÛ Ô*-½wª½ý ª 1%p•ä‚„rA¹ a€\0@.H $ È ä‚„rA¹ a€\0@.H $ È ä‚„rA¹ a€\0@.H $ È ä‚„rA¹ a€\0@.H $ È $£ðÿmÉår©Þ{ã0ÌqãQ]…Ñòóó)|—)þw\}}}·nÝJm ÆK º#„‡‡S[Å ›4i’ÉÉ€Qà> È ä‚„rA¹^œ„ ¦sáWø6§Ñh`Äsf/NÂlmm?øàƒÑ<àËéÅI“ÉLNN;œF{ÂJKK»»»Byyy3fÌèííU«Õ©©©ãÆ[°`AUU~•ÑsUºpá‚••›ÍÖ™›óçÏ{yy3ÆÕÕ5''ýò2G£Ñ²³³=<<“““srr¦M›fcc“””Dô,))™9s&‹ÅJHHÐ\¡P$&&N˜0Åb%&&*ŠÁ\¾|™ÃáØÙÙíß¿¨1 N4Qø‰—Ëår¹»­]»vݺu&L¨­­Å0,##ƒÅbµ··ýõ×...¡ÆÆF|w/H$ ‹èèh¡P˜››‹êììÔœB*•ZZZ¦§§‹D¢ãÇÓét©TJlŽaB(""B"‘dee!„ÂÃÃ%IFFB¨«« ï¹dÉ’†††šš‡³wï^ÍÍ8ÖÖÖÆçóçλsçN­}D-]ºT"‘S«QÿÑCT.i ëîîvqqñòò"Žæ¬Y³Nž×âÅ‹>|8¸H'''„Ö¼:ÇÔ3Ñ(d {ôèQjjjHHȶmÛðggç;wîîÝ»§™Lž˜˜ÈãñÒÒÒˆvâçL&“©Õê‚‚±X¼aÆeË–‰ÅbcëÄO0¡††<.&“Iœ5»»»kjjo®ó&Rç˜z&…F{ÂÔjuttôæÍ›óòòÊËËÏŸ?ŠŽŽNLL,))éèè¸téÒÎ;õ200 —Ë-,,d2Ùž={B===šh4Ú’%K %‰\.g0VVVÆ–ºeË@PWW·k×®5kÖh¾´råÊ?ü°µµ•Ï燆†9r!”••õÓO?`L=F]1lx÷a‡ž3gŽ\.Ç0¬¸¸˜Íf‹Åb¹\þÉ'ŸL›6ÍÚÚzÁ‚_~ù%Ò{†aXJJн½ý¤I“ÒÒÒ"""X,–ÖDùùùÓ§O·°°pww/))ÑÚiܺ ^Æ{feeM™2…ÉdnÞ¼Y&“in.‘HÖ¯_oggçààÓÛÛûkÆÔjÔÕ÷a£=aáù^R‚ŒtŽ9‚‰(OØh¿JS û Œ?>66ö9ŒIÆDd£á'RJà_!?{ö,U¼ h4Z~~>…ßÖ‡s $ È ä‚„rA¹(þ›ï‚‚‚_ó]x0úQù<ìúõë£ÿË'/__ßI“&Q5;• /¸ä‚„rA¹ a€\ÿÿn´¹^úxIEND®B`‚XQilla-2.3.0/docs/simple-api/classAutoDeallocate-members.html0000644000151400015140000001073511653571063021062 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

AutoDeallocate< TYPE > Member List

This is the complete list of members for AutoDeallocate< TYPE >, including all inherited members.
adopt()AutoDeallocate< TYPE > [inline]
AutoDeallocate(xercesc::MemoryManager *mmgr, size_t size=sizeof(TYPE))AutoDeallocate< TYPE > [inline]
AutoDeallocate(TYPE *p, xercesc::MemoryManager *mmgr)AutoDeallocate< TYPE > [inline]
get() const AutoDeallocate< TYPE > [inline]
operator TYPE *() const AutoDeallocate< TYPE > [inline]
operator*() const AutoDeallocate< TYPE > [inline]
operator->() const AutoDeallocate< TYPE > [inline]
set(TYPE *p)AutoDeallocate< TYPE > [inline]
swap(TYPE *p)AutoDeallocate< TYPE > [inline]
~AutoDeallocate()AutoDeallocate< TYPE > [inline]
XQilla-2.3.0/docs/simple-api/classEventGenerator-members.html0000644000151400015140000001136011653571063021117 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

EventGenerator Member List

This is the complete list of members for EventGenerator, including all inherited members.
_ref_countReferenceCounted [protected]
createResult(const ASTNode *ast, const QueryPathNode *projection, DynamicContext *context)EventGenerator [static]
decrementRefCount() const ReferenceCounted [inline, virtual]
generateAndTailCall(const EventGenerator::Ptr &generator, EventHandler *events, DynamicContext *context)EventGenerator [inline, static]
generateEvents(EventHandler *events, DynamicContext *context)=0EventGenerator [pure virtual]
getRefCount() const ReferenceCounted [inline]
incrementRefCount() const ReferenceCounted [inline]
Ptr typedefEventGenerator
ReferenceCounted()ReferenceCounted [inline]
~EventGenerator()EventGenerator [inline, virtual]
~ReferenceCounted()ReferenceCounted [inline, virtual]
XQilla-2.3.0/docs/simple-api/ContextHelpers_8hpp.html0000644000151400015140000001044011653571064017416 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ContextHelpers.hpp File Reference

#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/context/DynamicContext.hpp>
Include dependency graph for ContextHelpers.hpp:

Go to the source code of this file.

Classes

class  AutoNodeSetOrderingReset
class  AutoContextItemTypeReset
class  AutoNsScopeReset
class  AutoContextInfoReset
class  AutoDocumentCacheReset
class  AutoVariableStoreReset
class  AutoRegexGroupStoreReset
class  AutoMessageListenerReset
class  AutoStackFrameReset
class  AutoReset< T >
XQilla-2.3.0/docs/simple-api/ContextHelpers_8hpp__incl.png0000644000151400015140000001724111653571064020410 00000000000000‰PNG  IHDRàuj¥†bKGDÿÿÿ ½§“VIDATxœíÝg\ÙÚðƒ@ RÄ^ ؽV½vT°® ¬»êO av‘nÙ]Q±‚Al+"È*WE‘"®‚"*EŠ”Òæý0÷ÍÓ@„L€çÿ)Lræ<çÌ™'Ã™É Ã0@ù¨é A€’‚ J 4() Ñøúú¦§§ç矞3gÑQ‚A‚î‰òòòrrrÌÌ̈H—––¶mÛ6¢£ÄƒÝC™™™y{{.--è€R€9hPR @IA‚% ”$hPR <Ÿ>}:pàÀwß}·xñb—¿ÿþ›0,--KKKå/UZZjii©àèp L,këÖ­ªªªÞÞÞaaaóæÍóõõÍÌÌüª•”——[[[mÕí+@7×A™ÂÃÃ-,,\]]ñ?XSS=yò䶯D °X¬¯­º}¥èfàÈ”žžncc#ºdãÆL&ÝØØhmm½fÍš'Np8„¥¥å;w6nܸbÅŠK—.!„¶oߎZ½z5^ŠÇã………­ZµjÕªUaaa</##ÃÖÖ¶¡¡!”’’²~ýúææf±RòI®Sø>×ñàÁƒõëׯZµêèÑ£\.Wjü“YYYk×®ÍËËËÈÈØ²eËÂ… nß¾-µÞ'Ož8::._¾<**JV]² - AékjjLLLDª©©Ñétüõï¿ÿ^UU”™™yñâE|ùýû÷;æìì|òäɆ††ãÇ#„âããñwcccËËËOž}šÉdž9sFx¼/Y—¬…´ 4Ô‰D’ú.Ç»{÷îŽ; † ²yóæäädü­•+WÒh´ÿûß!ÉiŠ›7oîÚµ‹N§2ÄÙÙùñãÇ¡;vdee1 kkëQ£FI­qëÖ­KD´ºNQ?üðƒ±±±©©éÖ­[ñ8eqrr²°° “Ɇ±Ùl*•ºhÑ¢¤¤$UUUÉÖ®]«®®>sæL„þ€Ôºd- U0 ¤ÓÔÔÔÑÑy÷îè=•^¾|ùÛo¿ýþûï,K âËŒŒªªªð×zzz! EúÐúøñ£è´‰††BˆF£-[¶ìüùó‡’Odd¤‘‘‘ðOÑ‹4¤®S”±±1þÂÄÄSVü?MMÍ#GŽÄÆÆ†‡‡1ÂÁÁaêÔ©’!éêê"‰ï0ɺd- U L3fÌˆŽŽþå—_„9(99™Ç㩪ªêè訨¨”——8!TVV†çe$û §¥¥uäÈ<Õâ³(¡ÊÊÊ+W®Lœ8ñøñã_§ÔuŠ*))2dBèÇxV•Uÿ^iii>>></%%ÅÃÃ#!!ASSSlµR[*Y—¬…´ ¦8€L[¶lÉÉÉñ÷÷ÏÏÏ/**:þ|||üÖ­[B ÅÒÒò?þ(//ûöíÙ³g­¬¬ä¬J8kuêÔ‰'¼½½Ùl¶‰‰‰ŸŸß´iÓðwwíÚêââÒ«W¯yóæ9::J]IÿþýÇŽkccsãÆ „Ж-[BCC·mÛF"‘fÏžíììœPWWgooO¡PvïÞ}øðá±cÇŠ•’OrÕÕÕ¢°²²Ú»wossóüùóñ8å¡R©ûöí;yòdee¥¡¡¡··7•JE½‰Ž¨ûÀ0,6ö‰O¢¦fo??¸ È ü?.—ÿÇÉÇŽÝ8P7$ÄnÒ¤ÁDGÔ=UV68p?y`kh't Á=}úŽÉŒ.*ªb0zÜ-5ñàÁkw÷˜ª*ƒ±N© AÔÐÐìë{5*êá¬Y#m Ò#:¢žBxòpÔ(ƒ  5ææ&DG” $èž.)){ÿþ+<žÀß¿{Þ__ùýóO¹›[Lvö»gº¹-¡Ñàä!ø/HÐ=Wii­‡GÜ;/§yz.ÓÒR':¢ž ?yøË/‰T*Å×wÕҥ㉎(HÐ=~ý#GnjÙMŸ>”èˆBUU5øú^‹{je5Úß߯ÈH‡èˆÁ A÷899\]£_½ú¸s§Õ?ÎïÝ»Ñ/dd¼vw)+«Û½{¡‹‹%œ<ìÉ A÷ MM-7Ο¿?~¼Ip°©)Ü SIµ´ðBCï=š2|¸~p°…œ<ì¡ A÷ii/ÝÝcY,ö/¿¬„ûëw oßV¹¹Åfd:8LÛ¿ßNö@ »¿êêFOϸ¤¤l[ÛI?ÿ¼‚N‡ûëw“‡½zQ~ýu%\fÓÓ@‚îÎþïþú·45{ûûÛÀ-5º¨ººÏþþ×¢¢ZYöó³16†“‡=$èn«°°‚ɼüäI±‹ Ü_¿;xøð›[LIIíž= -)8yØýA‚î†8^HÈ­S§ÒÌÌŒ‚ƒíÆŒ1":"Ð1¸\þ©Si!!·† £ÛM˜0èˆ@ç‚ÝÝÜ¿_èæSYÉrs[²iÓL8Îê~Š‹«ÝÜb<(tp˜æåµBSn7ØmA‚îz~ÿ=yáB3SSñçNÕÖ6y{'ÄÅ=;wd@€­‰‰.!áÅHJÊöðˆ£PT<<–­Y3Yò.<477ç“ui »˜ääüM›ÎŽctóæѧOÅÄd8D&«­“=D}ýg?¿kQQçÏ7õó³0 ¯ð­òòºY³´´ÔïÜaèèh$øðÿoWRTTõÃÿƒaX~~iDÄ}|á‡5ëÖÚ½ûâŠiin{--õà`»øøŸÞ¿¯™;7èС[\.kß¾X‡WUÕ°eK8' 6NÐnpÝe°Xl+«ƒ?Öóx|„•JIIqMHÈ:v쮉‰npðš)S†# ~òðàÁ[C†Ðƒƒ×”•Õ¹¸ü¾kS(*ŽŽÿ °!:FР»Û°átzzžB yÐ Ýwï>99Í…«èBèåËr7·˜çÏKUU)õõlá®M"¡µÓˆ ´$è®áàÁ[¿ý–,ˆý¯Jòô\öãóˆ‰ ( Üœ"þúë¹Ø´…BNHØ—åu90Ýܸ‘{äÈm‰ìŒH$tôèšš&B¢JèÉ“â7ò$'1 Û°áÔÇõ„DÚ ´²+,¬Ø±#Rê[†}þÌ9p IÁ!åÄåò÷î½$zmŸ/hhhÙ¼ù,‡ÃS|` Ý A+56›³eË9‡/k&ŠÇãGG?ÎÌ|«àÀ€:{öïׯ+ù|é×lp¹üçÏK}|ø •Úž=—Š‹?IÝåð§n“ɤ#úçå•(<4 \x½gÌ1}úÐ)Sm?æ¢**êssK?~ûàAa^^ Ÿ/ RÉ<ž@t ÅÄlŸ6 žsÖ|‘ Ùlvmm-Ñ¡'O>lß-`**H @}ûªO˜`baa4~¼ÑðáýzÎcÔÔÔtt¾õîšµµµl6»CâéZšssËssKŸ=ûŸÿ±¥…G&«ðùõ‹7ééÁ/ •ŽŽŽŽšššðÏ/teeå‹/ˆˆ |¡ºšíåuFë5zt¿áÃuFŽÔíׯ‡>r»_¿~ffßúÛÈüüüªªª‰§ëâó±X¯^}*(¨yõªFOOÍËk¦Ô™@ Ñ£GÓétáŸÉOÌ;WqáiJKk33çÁ#Žòóó;jU’è»“Š •J†Ût(•´´4±%R4 œ‘<2t.}ý>D‡Z×S¦2 Ë J 4()HР¤ A€’êÄýúõk‰$õ…ï߿߼y3†aëÖ­£ÑhÞ7’Ó¼ Ïž=£P(111Â剉‰T*5//ÿ³©©‰ÉdŽ?žF£M™2% €Çã¡võIšŽji«H$ÒëׯVá¾e`+"¾6#:` ´aÃ…]0Þ–N+++spp4hF›}²°°PWWŽŽ~üøñwß}gooÿ×_}U-Õc„ÁDTTT¤¦¦b­°°¯HøBŽ¥K—~þü¹-Ÿ$–œñ&`ÖÒÒ2fÌ''' Ã\\\&NœÈápðÏ0ŒY³fñx}ú‘#GB555*** !Äçóutt®_¿Žª««Û´i“žžž±±1ƒÁhnn‹Dø Ç`0ÌÍÍ«««E›€¢R©çÎ ˆˆèÕ«^*22rÿþýd2YØ!L&3**ªýöU _bbâÈ‘#étúÎ;[ZZZmïðáÃ…[DÒíÛ·‡ ¦££ ÜdbUȪWI(f`óxúô铨‘ä¨–Ú ±R¢CIfffjkkcvïÞ=]]].—‹aXdd¤™™™@ •œa)g¯F%µOð}¤¦¦FÖÆRd‰ê¼ÑŽI;‚nO‚®­­5667nœ°J33³ˆˆáΟ?/·´´üóÏ?|>ÿÞ½{ÂQbccƒoÉ››+§ B(++ Ã0‡#öÿÀ¨Q£ÊËËñ&''›››?yò„F£q8œ={öxxxôêÕ«¶¶6$$dÉ’%xY2™,Ü«ãã㇠& þšÉd"„^½z%l»° 8@`mmM&“×­['ÚÂoQzzzíè79_½’K´†EGG6¬í•:Biii†ñù|<$©UH](u…B NÐ Ø#GŽŒÇ×öâÅ üµÔÎÇ0 !„ï‘,¶$GµÔVˆ•¢r4Çëß¿JJ †aK–, ‹ª}{¥0*©}RSSƒª­­•º¥Üc¢:o´c2ÅÒÖÖvrrÊÏÏÿá‡ð%EEEæææÂŒ7Nþ¨TjAAÁ¢E‹&Nœ/lllär¹²î-9jÔ(Yqššš!|Aô5®¸¸ØÀÀ?[½`Á‚·oßZXXhhhdff¦§§¯X±ÂÂÂ"===55uéÒ¥¡ŠŠ >Ÿ?tèï™;lذ’’ÑHp™™™sçÎõ÷÷—Õ„¨¨¨´´´»wïÆÆÆ&&& ;°ÿþø1©¨ììlÑ•·±ßp’óbºÄ6Ÿ²À›SRRÒÆöÊbhhˆRQùb8‰U!g¡’PÀÀ~÷î°LMMW­Z…ä6¼cEG²(ÉQ-µ¢äïe¡ÂÂB<2™¼zõêøøøêêê;wî8:: ?#U»÷JœÔ>ÑÑÑÑ××»L 33sòäÉŸ?VdIRähoO‚þðáChh¨••ÕÞ½{ñ%FFF999´z26›mggçêêš••uüøq|á­[·-Z$«ÞãR ¶~dŠg®ÚÚÚ‡ª¨¨,Y²$11±  `„ óæÍKNNNOOÇ´¾¾>™L.**‹¿yóÆÈÈH4\RRRXXØ¥K—RSS%›PVV¶sçÎÙ³g{{{;;;úô ËÑÑÑ××ÿFÙÛÛ_¼x100ÐÞÞþkûM>ɅÿáB†††ml¯,RçdŪ³PI(``㯳³³ýüüÜÁ&–ÄHŽj©­%/Ã0ìĉø.€Z³fÍ•+W._¾†agܸqöööø»õõõ#GŽ´´´¼uëÖ«W¯<<<Bt:½¥¥åkû o¦äev²6¾6KKËÂÂÂÇ>?kß–ö §¶OŸ>]WW'«Ã¥V!«^99Å¡˜ííí=nܸ¼¼¼¼¼¼3flÛ¶ _.Ùù˜ìŽnÉQ-g‹ã¥DƒÁDFNIIIZZšµµµ±±±pËòx<:®¯¯.ZD,ªöí•ÂN“Õ'•••ºººŽŽŽ<ÈÉÉñññA]»vMÁ=†)j´c2}ôèÑñãÇã—‹]¹rÅÀÀ ¦¦†Ãáüú믃¦ÑhÓ§O¿pá‚üqŒaØáÇûöí;`À€ãÇÛÛÛëèèà“¿8Y©P² N—Úkb¯Y,ÖæÍ›utttuuœœðÓ€uuu ?}×ÔÔD¥R™L¦°¢šššõë×ëêêìÞ½›ÍfËŠŠÍf1ÂÃÃC´ ªªª¢ÓÓ?VQQ‰ÅÿlllÜ»wï˜1cz÷î=tèPOOÏ9sæ¬]»ö«úMØ|©_½R7¾¶3gÎ 8POOoÇŽl6»Õör¹Ü™3gÒh49Œ}9dŪU¯ŠLЊØÍÍÍ ÃÐÐPKKËÞÞ^8Ç*Ùù˜´ŽÛ ’£Zj+„¥8Žh0Ø—#gÀ€ŽŽŽb ÂÅÅEMMÅb‰‘ÜôíØ+…&«O0 +..¶µµ544ÔÔÔœ2e ž=ÙcršŒuôhǤ%h)OTùöö¿~ýzøðᘌÄdáp8YYYø%>G[Gjí¨ŸRè'ªtÈzzàÀöôô,..ŽŠŠ":åÕQ£!”––ÖúUQ¨TjgggÚ¨¹¹¹¬¬ìܹs/^$:–ž n–ÔãôéÓÇÙÙYñU( ^Ð=z4iÒ¤ï¿ÿž'_§ŽöN™â C(ÛJrŠŽ @IA‚% ”$hPR @II¹º¬¬Lñq ©¹¹¹wïÞµ*Ø Ë‘’  RuT‚Æï‘Ý!«@aH=êw«Ð…À4()HР¤ A€’‚ Jê~³`Ú“ í¼IEND®B`‚XQilla-2.3.0/docs/simple-api/classStaticType-members.html0000644000151400015140000005325311653571063020267 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

StaticType Member List

This is the complete list of members for StaticType, including all inherited members.
ALWAYS enum valueStaticType
ANY_ATOMIC_TYPE enum valueStaticType
ANY_SIMPLE_TYPE enum valueStaticType
ANY_URI_TYPE enum valueStaticType
ATTRIBUTE_TYPE enum valueStaticType
BASE_64_BINARY_TYPE enum valueStaticType
BOOLEAN_TYPE enum valueStaticType
COMMENT_TYPE enum valueStaticType
containsType(const StaticType &type) const StaticType
containsType(StaticType::StaticTypeFlags flags) const StaticType
create(const XMLCh *uri, const XMLCh *name, const StaticContext *context, bool &isExact)StaticType [static]
create(AnyAtomicType::AtomicObjectType primitiveType)StaticType [static]
DATE_TIME_TYPE enum valueStaticType
DATE_TYPE enum valueStaticType
DAY_TIME_DURATION_TYPE enum valueStaticType
DECIMAL_TYPE enum valueStaticType
DOCUMENT_TYPE enum valueStaticType
DOUBLE_TYPE enum valueStaticType
DURATION_TYPE enum valueStaticType
ELEMENT_TYPE enum valueStaticType
EMPTY_TYPE enum valueStaticType
FLOAT_TYPE enum valueStaticType
FUNCTION_TYPE enum valueStaticType
G_DAY_TYPE enum valueStaticType
G_MONTH_DAY_TYPE enum valueStaticType
G_MONTH_TYPE enum valueStaticType
G_YEAR_MONTH_TYPE enum valueStaticType
G_YEAR_TYPE enum valueStaticType
getMax() const StaticType [inline]
getMaxArgs() const StaticType [inline]
getMin() const StaticType [inline]
getMinArgs() const StaticType [inline]
getReturnType() const StaticType [inline]
HEX_BINARY_TYPE enum valueStaticType
isType(const StaticType &type) const StaticType
ITEM_TYPE enum valueStaticType
matches(const StaticType &actual) const StaticType
MAYBE enum valueStaticType
multiply(unsigned int min, unsigned int max)StaticType
NAMESPACE_TYPE enum valueStaticType
NEVER enum valueStaticType
NODE_TYPE enum valueStaticType
NOTATION_TYPE enum valueStaticType
NUMERIC_TYPE enum valueStaticType
operator delete(void *p)xercesc::XMemory
operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
operator delete(void *p, void *ptr)xercesc::XMemory
operator new(size_t size)xercesc::XMemory
operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
operator new(size_t size, void *ptr)xercesc::XMemory
operator&(const StaticType &st) const StaticType
operator&=(const StaticType &st)StaticType
operator=(const StaticType &o)StaticType
operator|(const StaticType &st) const StaticType
operator|=(const StaticType &st)StaticType
PI_TYPE enum valueStaticType
PROBABLY_NOT enum valueStaticType
QNAME_TYPE enum valueStaticType
setCardinality(unsigned int min, unsigned int max)StaticType
StaticType()StaticType
StaticType(StaticTypeFlags f, unsigned int min=1, unsigned int max=1)StaticType
StaticType(XPath2MemoryManager *mm, unsigned int numArgs, const StaticType &returnType, unsigned int min=1, unsigned int max=1)StaticType
StaticType(XPath2MemoryManager *mm, unsigned int minArgs, unsigned int maxArgs, const StaticType &returnType, unsigned int min=1, unsigned int max=1)StaticType
StaticType(const StaticType &o)StaticType
StaticTypeFlags enum nameStaticType
STRING_TYPE enum valueStaticType
substitute(const StaticType &from, const StaticType &to)StaticType
TEXT_TYPE enum valueStaticType
TIME_TYPE enum valueStaticType
TIMEZONE_TYPE enum valueStaticType
typeConcat(const StaticType &st)StaticType
TYPED_ATOMIC_TYPE enum valueStaticType
typeExcept(const StaticType &st)StaticType
typeIntersect(const StaticType &st)StaticType
TypeMatchEnum enum nameStaticType
typeNodeIntersect(const StaticType &st)StaticType
typeToBuf(xercesc::XMLBuffer &buf) const StaticType
typeUnion(const StaticType &st)StaticType
UNLIMITEDStaticType [static]
UNTYPED_ATOMIC_TYPE enum valueStaticType
XMemory()xercesc::XMemory [inline, protected]
YEAR_MONTH_DURATION_TYPE enum valueStaticType
~StaticType()StaticType
XQilla-2.3.0/docs/simple-api/classEventSerializer__inherit__graph.map0000644000151400015140000000021411653571064022661 00000000000000 XQilla-2.3.0/docs/simple-api/DocumentCache_8hpp__incl.md50000644000151400015140000000004011653571063020030 0000000000000043e4321de11bf252ff4aed13d7c01de9XQilla-2.3.0/docs/simple-api/ATGMonthDayOrDerived_8hpp_source.html0000644000151400015140000002344411653571063021721 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATGMonthDayOrDerived.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _ATGMONTHDAYORDERIVED_HPP
00021 #define _ATGMONTHDAYORDERIVED_HPP
00022 
00023 #include <xercesc/util/XercesDefs.hpp>
00024 #include <xqilla/framework/XQillaExport.hpp>
00025 #include <xqilla/items/DateOrTimeType.hpp>
00026 #include <xqilla/items/Timezone.hpp>
00027 
00028 class DynamicContext;
00029 
00030 class XQILLA_API ATGMonthDayOrDerived : public DateOrTimeType
00031 {
00032 public:
00033   typedef RefCountPointer<const ATGMonthDayOrDerived> Ptr;
00034 
00035   /* Get the name of the primitive type (basic type) of this type
00036    * (ie "decimal" for xs:decimal) */
00037   virtual const XMLCh* getPrimitiveTypeName() const = 0;
00038 
00039   /* Get the namespace URI for this type */
00040   virtual const XMLCh* getTypeURI() const = 0;
00041 
00042   /* Get the name of this type  (ie "integer" for xs:integer) */
00043   virtual const XMLCh* getTypeName() const = 0;
00044 
00045   /* returns the XMLCh* (canonical) representation of this type */
00046   virtual const XMLCh* asString(const DynamicContext* context) const = 0;
00047 
00048   /* returns true if the two objects are equal 
00049    * false otherwise */
00050   virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0;
00051 
00054   virtual int compare(const ATGMonthDayOrDerived::Ptr &other, const DynamicContext *context) const = 0;
00055  
00057   virtual bool hasTimezone() const = 0;
00058 
00060   virtual ATGMonthDayOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const = 0;
00061 
00062   virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0;
00063 };
00064 
00065 #endif //  _ATGMONTHDAYORDERIVED_HPP
XQilla-2.3.0/docs/simple-api/ATGYearMonthOrDerived_8hpp.html0000644000151400015140000000644111653571064020523 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATGYearMonthOrDerived.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/items/DateOrTimeType.hpp>
#include <xqilla/items/Timezone.hpp>
Include dependency graph for ATGYearMonthOrDerived.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  ATGYearMonthOrDerived
XQilla-2.3.0/docs/simple-api/ATDecimalOrDerived_8hpp__dep__incl.md50000644000151400015140000000004011653571063021704 0000000000000050a1df4ab831a3cb389d2332d7958984XQilla-2.3.0/docs/simple-api/inherit_graph_20.map0000644000151400015140000000021411653571064016443 00000000000000 XQilla-2.3.0/docs/simple-api/StringPool_8hpp.html0000644000151400015140000000542711653571064016560 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

StringPool.hpp File Reference

#include <xqilla/framework/XQillaExport.hpp>
#include <xercesc/framework/MemoryManager.hpp>
#include <memory>
#include <cstring>
#include <string>
#include <memory.h>
Include dependency graph for StringPool.hpp:

Go to the source code of this file.

Classes

class  StringPool
class  StringPool::Bucket
XQilla-2.3.0/docs/simple-api/classATBase64BinaryOrDerived.html0000644000151400015140000002755311653571064020775 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATBase64BinaryOrDerived Class Reference

#include <ATBase64BinaryOrDerived.hpp>

Inheritance diagram for ATBase64BinaryOrDerived:

List of all members.

Public Member Functions

virtual const XMLCh * getPrimitiveTypeName () const =0
virtual const XMLCh * getTypeURI () const =0
virtual const XMLCh * getTypeName () const =0
virtual const XMLCh * asString (const DynamicContext *context) const =0
virtual bool equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
virtual int compare (const ATBase64BinaryOrDerived::Ptr &other, const DynamicContext *context) const =0
 Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.

Protected Member Functions

virtual
AnyAtomicType::AtomicObjectType 
getPrimitiveTypeIndex () const =0

Member Function Documentation

virtual const XMLCh* ATBase64BinaryOrDerived::asString ( const DynamicContext context) const [pure virtual]

Implements AnyAtomicType.

virtual int ATBase64BinaryOrDerived::compare ( const ATBase64BinaryOrDerived::Ptr other,
const DynamicContext context 
) const [pure virtual]

Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.

virtual bool ATBase64BinaryOrDerived::equals ( const AnyAtomicType::Ptr target,
const DynamicContext context 
) const [pure virtual]

Implements AnyAtomicType.

virtual AnyAtomicType::AtomicObjectType ATBase64BinaryOrDerived::getPrimitiveTypeIndex ( ) const [protected, pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATBase64BinaryOrDerived::getPrimitiveTypeName ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATBase64BinaryOrDerived::getTypeName ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATBase64BinaryOrDerived::getTypeURI ( ) const [pure virtual]

Implements AnyAtomicType.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/inherit_graph_49.md50000644000151400015140000000004011653571063016362 000000000000009a443655779c352b3cb2968fb852c13dXQilla-2.3.0/docs/simple-api/classModuleCache.html0000644000151400015140000002227211653571064016715 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ModuleCache Class Reference

#include <XQQuery.hpp>

Inheritance diagram for ModuleCache:

List of all members.

Public Member Functions

 ModuleCache (xercesc::MemoryManager *mm)
void put (XQQuery *module)
XQQuerygetByURI (const XMLCh *uri) const
XQQuerygetByNamespace (const XMLCh *ns) const

Public Attributes

ModuleMap byURI_
ModuleMap byNamespace_
ImportedModules ordered_

Constructor & Destructor Documentation

ModuleCache::ModuleCache ( xercesc::MemoryManager mm)

Member Function Documentation

XQQuery* ModuleCache::getByNamespace ( const XMLCh *  ns) const
XQQuery* ModuleCache::getByURI ( const XMLCh *  uri) const
void ModuleCache::put ( XQQuery module)

Member Data Documentation


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/Scope_8hpp__incl.md50000644000151400015140000000004011653571063016377 000000000000006656607800e318ca19e75b90fc0af9dcXQilla-2.3.0/docs/simple-api/DOMXPathNSResolver_8hpp__incl.map0000644000151400015140000000003511653571064020772 00000000000000 XQilla-2.3.0/docs/simple-api/DebugListener_8hpp__incl.png0000644000151400015140000002152011653571064020170 00000000000000‰PNG  IHDR°u9œEÏbKGDÿÿÿ ½§“ IDATxœíÝy\×Ú8ð3I„ ;bPDET”EvµÞë‚J Ô­¸Ô¶¶ê­­÷ÓŠÖëµÅ¥-VÛú{µVªUo]º  ¢Ü7Dv”º°# [LIæýczçÙdy¾ “Ìœçœy’<ÌÌI0ÇÌê@=(  BˆAu˜6›Muà/<ê0!Ì2À˜0 óööf±XTbÖÊÊÊàÝEp†c[¸pahh(ÕQ˜µÜÜÜmÛ¶Q¦î!€‚  (€  ÀÍTðÆo$%%577ky~uuõÌ™3{Ùbuuµ~÷Ù{ªQ  LÑÞ½{O:•’’òÉ'Ÿ…ÂU«Vµ··3›øøxMÖÖÖΛ7Ϙñ L‘ƒƒƒ“““³³s``àŽ;†š’’bÌìííW­Z¥éQ¹\ÞÚÚjÌx†¦𘘘›7oJ¥Òýû÷ÇÅÅÅÅÅíß¿_*•ë³³³—,Y»gωD¢xΟ\ÆqüÌ™3o½õVTTÔÇ|ãÆ M×7¿~ýúÊ•+ÃÃ×,Y’••…zÿý÷B¯¿þº–fΜ™½bÅŠ˜˜˜_ýUÓ3‰†òóó/^\\\¬F^^ÞÒ¥K9ÎñãÇɨ®]»¶|ùò¸¸¸ï¾û®³³SíJ½Œ<f ú77·ššbùäÉ“µµµÉÉÉß|óM~~þáljõ»víJJJº{÷îÏ?ÿ¬v?G]»ví‰'–.]úý÷ßwÙ´X,Þºukll쯿þº|ùò]»v‰Åâ}ûö!„NŸ>­=¤«W¯~ÿý÷«W¯NNNnkkÓòÌßÿ}Ó¦McÇŽUjýÖ­[ظqãÁƒÉs©©©III_~ùå­[·Nœ8¡e%@wPÐÇœ;wîŸÿü'‹ÅòððX½zõíÛ·‰õ|ð›››——׻ロ““£vÛS§N­Y³fâĉöööÁÁÁo¿ýv—Íuvvâ8.‰,,,"""¸\®¥¥¥Ž!ÅÆÆÚØØÌ™3!D|œkzæªU«™L¦Òž/^555£F"×»»»wÙ´­­íž={Nž±¾ªªÊÃÃ!ôüùsb¥L&£Óé/^¼ þtqqùóÏ?‰§!„ž>}Úeë‰D.—oݺU*•^¸paóæÍ©©©JÏÑ’Ò¹–g* ŠT÷ ÔS¢bд ;¸d€)jnnæóù/^¼(,,üôÓOkkk-ZD<4mÚ´Ô××WVVnܸ‘üxþᇪ««Ó¦y2™¨Ž­^ý„Prò ª‹;¯\)çr Î+‹;ƒ‚Fr8±±AÎÎ6T…@?¦B*•߸ñ(+«43³¸ªJàêê0w®‡ãìN§›Ðí>”$²2ÈÈ(’H¤De4hTtPìåËŽ Êx¼Ò î B?¿ál¶wttÀ¸qC¨M=Ó)H"QÇÕ«\nÁÙ³EÒ  ‘ NŒ‰ ´³cR}P£µUœ™Yœž^xõj…DÒìÎᄇûŒ1ˆêк`‚‰ÕÜ܆͘1.:Ú?"b‚­-Tt Œª¾¾…Ë-är òóŸÒhXhèøèhÿY³¼úÐYnS.H­­¢ÌÌ¢2 Ñ°éÓÇEGûÏëgccIuh˜((0†GÒÒòy¼²’’ª-""&°Ù>3fŒ³³³¢:´në©¥åeVV©Reégm •¯€‚C!& p¹…ÙÙ¥OŸ6±X¶N`x¸Ï¤I––}xÆoß*HÍÍ/y¼Òôôœœû }Ú4Ïèhÿ¨(ÿ-¨ “zÖÙ)ËÍ}Àã•æä<¨®Œ582ÒÍö6µÉ=ÖG ’@ ÌÎ.ƒÊ%P B¡äâÅû<^ivvYsóKÓŸ,Ðc}½ ñù ÊNžÌ»v­ÂÒr@X˜÷‚!¡¡ã  S€‚€^!o^»r¥\*•M™2†Íöé“z¬ß¤ºº–ôôB.· /-3<܇à €Ê˜(è ò#$?ÿ)N#¦·ÍžííädMuh×ÿ RMMsFFQØÙY±ÙÞPóÝPQQæÌ=.·°¼¼ÎÖ–9gŽ/‡0uêX++3ºüÜ Ruµàܹb¢2°·· ƒÊôPÐ¥É..vÑÑý`²@™CA@ªªœ?_Ìåܹó§ƒÃ@¢2˜9Ó‹Áè÷‡  Ô#' \¼x¿¦¦ÙÃcðܹ~l¶wHÈ( £::*™UA@zþœŸ™YBTŽŽÖ³g{Aeú(x…P(ÉÈ(ÊÎ.»r¥¼¥EâîæÓÿ& ô˜y¤gÏš¸Ü‚””¼òòº!C죢ü9ÿ‰Ga˜Y—‰ €‚„zñ¢ýüùb¯Tq²Àœ9¾Ã‡;QšÉ1ó‚€ôða]zzÁ™3õC‡:DFúAeú4(€Y«­m>{¶Hi²@X˜·£cÿŸ,ÐcP(!*ƒÔÔ{7?Z •ès  æˆx'& ØÙ1ÃÃÍq²@AA  ‘Wü‘_YÙ8l˜cDĨ @0*“죣ý9ÿ  w¸/¬[  èQœ:u÷É“Ç;…‡ûr8þ“&yPÚ@Aú9b²—[“ó ©©}ôhVll ›íãëëfæ“z Ý)V#F b³} 2& Ð?µ·KÎ+ÊÎ.»|¹¼µ& è=ððaÝÉ“y§NåÕÕµxzápücbÇŽu¡:.þ _illËÌ,áñJ/_~(—ã¡¡ãÙlŸÐÐñnnŽT‡Ö@AÐcr9ž—÷'—[˜ž^P_ßJTóæâ:4  ý“'/Ξ-ÌÊ*ÍÏjiɘ=Û;,Ì& ½GV\†6¢2ˆ‹ öðLuhÀ|AAú°¢¢ç<^é' X?R“ ="+ƒ3gî56þU¼þzð¨QPcƒ‚ô1ä(WúìYùUqÁÁît:L0( A&“ß½û„Ë-LKËñ¢¨ æÏqww¦:4`.  }ƒÒd±c]bb`²%  0(²2HMÍojú«2X°`âÈ‘ƒ¨ ôsP“ÖÖ&>¾8=½ðÚµ ‘¨3$Äà `³}àÍ‘BP‡L&¿~ýQJʬ¬’övIp°;‡Àáø»¸ØS蟠 ¦¨¡¡íÌ™{<^éíÛ•äd™3Ç“¨‘utH/]zÈådf–…deàâbGuh _‚˜ÊÊÆs犲²JïÞ}bee1k–WX˜7›íãà0êÐÀÿ‚€*‰ôòå‡\nÁùóÅ/_v•ALL ‹eKuh ?€‚POq²€³³MDÄ6ÛgÚ4O&sÕ¡5   Yœ;W,wäpbcƒœm¨ ôaPjH¥ò7ee•fe•<·É}¦C,î¼r¥œË-ÈÈ(’H¤De4hT Û  FE^ ½xñ>Ÿ/$î ŽŽ€oîC  0AdepölQG‡4(häÂ…cbíì˜T‡ú (€1“®^­‹a²@ß)kmgf§§ææ>À0lÆŒqÑÑþlm¡2]€‚P}}+—[Àã•ÞºU‰ãM˜5ËËÕÕêÐ@ÏAAÐ'´¶Š23KˆÊ€FæOí?w®Ÿ%Õ¡пÇRSóy¼²’’ª-ˆ›§O÷´·‡É}Òo¿Ý>pà²\.'þäó…!'§¿~'‚F£½÷ÞôÅ‹'QЪ¥åeVV©Reégm •x@?p¿sçO¯ŒÇ+-/¯<ØvÎ_˜,Ð?TTÔϘ±SË._þü^Ÿékn~ÉãýUÐé´iÓ<¡2Š  ½BNÈÌ,®ª êé“úŸ°°Ý÷ïת¾]`æííÊã%Pè@˜]–ž^˜“sŸÁ •AT”ÿÀð«`f Ðäd î B?¿ál¶7LèÇ’“s¿ø"]*•)­g0è[¶pV­šAIT —ø|á… eéé…/Þ·°`L:vÁ‚9s|-,T‡(Y %Ý:[HÞÀ|õj…DÒI|QL0õõ-ÁÁÛärå·  »{w+|‡n_WW×’ž^Èåäå=±µe¿$:~Àº.›—”Tûú3tÀР 0_W®”øá‰¬¬õ]~ïi}} —[Èåäç?¥Ñ°ÐÐñÑÑþ³fyÁ—Ÿ˜•¸¸ÿçÎÅš€FÃ&Muúô‡Fô«¶¶ùìÙ"¢2°³³b³½»¬ ÛBB¶­[öÑGsà§Gû4(Ì‘L&ÿæ›ÌÿùŸ,ÇvíZ¸lÙµO{ô¨!- & €¿?~cÓ¦“2™œ\C§Ó¾újá’%¯Q0ššæŒ *ƒ#G®mÙr ÇÑÔ©cöï_áèhMIÀ ÷  0;Ïž5½ûîáû÷ke29FûÛ߯üþû?ÈG•& °X¶N`x¸Ï¤I––pYѬµ´¼œ0á3ÅÛ zqñv(û·ª*ÁùóÅDe`ooæÍáÌœéÅ`üu×pTÔÿ+(x†ãø€t{{«C‡Þ EmÌ g  0/éé…}tB"‘‘oët:­¤dÇÀ–¹¹x¼ÒœœÕÕ‚Q£GFú±ÙÞ0Y(Z¾üÀ¥K¤R9BˆÁ …†Žÿùç÷¨ ÉóçüÌÌ.·àÎ?­gÏöâp<=‡üío_Ÿ#4†ahÓ¦¨µkgS-è(ÌEg§lÛ¶3‡_Á0¤xð°0ïâ⪺ºwwçˆ߈ˆ !!£àZ P•–voíÚ£DþÐhؾ}Ëcb© [IIõ™3÷¸Ü‚§O›­ÛÚDDHÂ0Äá~ûí0±o‚À,<}Úô<¨S¼L ÓiîîÎqqAsçNðòr¥$<ÐWˆD>>[ÄâN„“9 ´ôs++xÇ7_……Ïßy秺ºVÕÏ:6|¸ã‘#ïzzÂTä>Î÷\nAXØ®‡ëU«„L&¯®¬];ªÐ%++‹9s| ƒAˆ˜Õ€™sr²V[ „d2yUUóܹßr¹Æ ô ýYg§lË–?Ö¬ùY$êTýJ’X,½r¥Ü˜¾+66H&Ãe2Yl,\,0w\n®ñÚ¢T*‹¥kÖü¼eË߀éxå¾q‘H$¨ èWccûÆiÅÅ5!í×… ,5õ¶··)þ¡•••££coöY­_^^ÖÖ¡ñãjjj¨§ÿptt´²²êÍH$ÒW<ºHI¹%•j{s!N:t¹¤äiRÇÞ¾Wz§”u¯mmmååðŸbP^Îß¿?¿¡áe—ϤÑ0™L~áƒùóÝ1Ó»pðàÁ½, «õnâÄ!a••¨¤_ñööîeAPSSÓØØ¨¯xºÔØø²¼¼!îB»{÷ÙÊ•G×­ 2¾ÍÌ„(eš™å¡¡¡Æ Fh(Zµêub¹­M,—ËÛÚ$2™\(”H¥²öv‰L&oo—H¥2¡PBÜ!hkˤ4je¥¥¥úÚdµYZÇ0ôÚk£©¤ÿÈÍÍÕË~ìã㣗]uI$ê˜6íïVVÊ¿e:`&ô ªY_5Óÿóðí1@_&Oö :@=++ ¸«´Ÿ‚Ð=ðôK0ËP  (€ ZéîV©©©±±±555Ç/++3D`†Ft!00póæÍëÖ­knnFµ´´¼ÿþû‰‰‰&L@µµµ…„„ܺukçÎùùù›6m:vìXxx¸L&ëÙ¸]¿~½öUúíTee¥³³³~÷Ùõ&« ZŠ«gkÒËÜ&vbè\%n€¾hyièrøtIH# Rºªªêðáí­­AAAD$j™ô§® ¾¾>''×·ŠŠ ¢!rA‹¨¨¨—/_êòLji‰èŽã‰Ä××wÕªU8ޝY³&88¸££ƒxNBB´iÓ¤R)¹U{{»»»ûþýûU›èr4B½î“6Zb0\ë%%%%%%½Ü‰édµÞcÐÄp/ŸÞç¶r•¤ßq0hä999õõõ½Ü‰^^/F¦å¥¡öð)­Ô%! M)1ärùôéÓ?ûì3MÏïnZ.ñT³®ÛgΜ93lØ0âËáùåOOO¡P(—Ë÷îÝëååekk;eÊ”œœâ,‡–stééé:tèÎ;‰•/^¼°¶¶¶²²zíµ×BC† Aÿ=GtáÂ…#F\½zU톆:tÈËËkðàÁ;wîŸF£%$$ „d2™££ãÙ³gBÍÍÍo½õ–³³³››[BB‚X,VŠ„¬¨^¼x¡Ø„……Å‘#G:”””tøðá#GŽ ð×·z;vì³Ï>£Óéä€X[[oܸñøñã=·n,bÿiiiãÆc±XëÖ­“H$]öwìØ±äQ•••5fÌGGǤ¤$ò)5¡©]S`œ¬FêòPmÓR©411qĈƒ~óÍ7Éÿ6T7W;ªª/bsÕCŒÂ0ìøñã^^^NNN»ví"žÉårýüü˜L¦‡‡ÇÑ£GU;Ò³Üîî! |”ôõ—xŠÕŽÿK½ùæ›+V¬¨««sqq¹uëŽãÉÉÉ,ëôéÓ555gÏžussC©þ E.´¶¶ZXX¼óÎ;UUUÇŽC544à8~èС£Gâ¯ÖPÄòܹs/^¼X[[«vC„P|||kkëÁƒB‹-jmmMNN&’Çñ¯¾újþüùÏž=+** Ú´iÓöíÛ£¢¢pOKK³³³ Âqÿüsr ñjlllTØ7n899õ`ÜBm¯Òt°ˆ½…‡‡———ß¼ys̘1[·nÕ±¿jó!ÝÚÚzêÔ)bÀÕ6¡©]-Œy†ÀY«ËCµMïÞ½ÛÇǧ¨¨¨¸¸xòäÉ š6×2ÔÄ&ŠËª‡Çq„Ђ ÁBMMMííí–––û÷ﯭ­ýé§Ÿ F{{;®ÜÆ»™«ÔŽƒR —ç¸qϨŽ3®yH‰—ÿÖ­[u<j“GÓqÔò†¯ËJ]ÒÐ]ÃÕýçÎí­jÚ§"Ã%žjÖõ¤ nnn~~~d{>>>GŽ!ŸðŸÿüGû[§D"¹ÿ~{{»L&»té9 óçÏçóù¸ºT(**Ò²!B(??ÇñŽŽ¥eâ ãǯ­­%vÈãñòòòlll:::>þøãÍ›70@ ìÞ½;22’Ø–N§“¯®Ó§O3F1byãÆ¡‡’}'»@ËåóæÍ£ÓéË–-S@²RQtýúugg猛–ROõ`)öÇñß~ûm̘1:öWm> „rssq'.WTT¨mBíJµ;$³ 0BVãêòPmÓãÆ;}ú4±\VVF.«n®e¨‰5ä²ÚCŒã8BˆòõÂçó ðõ×_ ¹\ÞÖÖ&“Ép}ä6ÞÍ\¥v”º`¸<Ç[¨Ž3ÞÕê~ Ô&¦Íµ¼áë²R—„4t×ð® M­k4íS‘áO?ŽãÛ·o§Óé侬¬¬ ÈGïÝ»§ý­Çñ´´´©S§·˜VTT´µµÅÄΦyAHuCüÕC¢v™É|åg{ìííe2™‹‹Ëµk×BBBnÞ¼9iÒ¤´´´ÈÈÈï¿ÿÇñçÏŸ#„D"±Ÿ¢¢"&“© ±¡Ë©‰D‹-Ú°aC~~þ¾}ûˆ•çÏŸˆˆÐ´ qAH톺 þó&ú,nÞ¼I£Ñ"##ÓÒÒÊË˃‚‚fÍšÅãñ._¾…rqq¡Óé•••Äæ?6l˜b$.—»ÿþ_ý5''Gµ 555ëÖ­Û½{÷ôéÓW¯^ÝÔÔD<´téÒ;v÷]ÇÇÇÿòË/;wîŒïî¸i§z°Dö „ÊËË]]]uì¯&j/«+5¡e¥)0NV«æ¡Ú¦]]]Ÿ ‰äryJJ ŸÏ_¹r%‡Ãáóù†ÎmUý Ï‘†÷MCJ¼üu?j“GíæªoøÄÜÔêêj]z¡{B´kªá8þÃ?Ÿ#ZZ'è¸Oã%žbu ËÿR2™,,,lÇŽ|>È!gΜÁqüË/¿d±X©©©µµµçÎëòj«@ À0ìܹsÄ|e„P~~þ²e˪««‰VÔÖ†š6Äu8C°nݺ “xz¸dðÝwßùûû'[þøã¡C‡òùüŽŽŽíÛ·5ÊÆÆfÊ”)'NœÐþÖ‰ãø·ß~ëää4|øð}ûöÅÇÇ;::ï š>zU7d±Xj‡Li¹µµõí·ßvtt4hЪU«ˆÛ››› qŠP(´°°Ø¸q#ÙŸÏ_¾|ù Aƒ†úÑG‰D"MQ‰D"OOÏÍ›7+váÈ‘#–––Š·ܾ}›F£>>^ hÚ\í¨*,ÅðT1®áPþöÛo£G¶°°?~|ZZZGG‡^rïf®R>ÆÉs܈ÚqÆ5)±•îWIµ›+eŽãŸþ¹ƒƒÃèÑ£ÓÒÒˆvÕ¾Šÿží×=! Ú5üÕ”>|øÒ¥K¥öÖµìÓ‰§·{´Sê0БD"¹qㆡ[1ÂÑQÛDÚ5©ï!0ͬ6ͨT:·)}å9nÆßCz@_‰§Ÿ{€XXXSTèg ·0}P˜;;»Õ«W¿ #´k†`T ”Œä9 „áÃ.444”••…††ör§èqc¿OovY L_nn®··7‹ÅêÍNôòzæC5ëà   @PAA„CuUMMñã@•X,Vúiƒ¬æ@,CªƒSS?6€)ÐWAY ÌA[[[[[ÕQ€¾ê•ï!€y‚{  ‚‚¡ÿ‹ôU‰¦ÈuIEND®B`‚XQilla-2.3.0/docs/simple-api/classQueryPathTreeFilter-members.html0000644000151400015140000002034611653571063022103 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

QueryPathTreeFilter Member List

This is the complete list of members for QueryPathTreeFilter, including all inherited members.
atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)EventFilter [inline, virtual]
attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)QueryPathTreeFilter [virtual]
checkAncestors(FilterStack::reverse_iterator s)QueryPathTreeFilter [protected]
commentEvent(const XMLCh *value)QueryPathTreeFilter [virtual]
endDocumentEvent()QueryPathTreeFilter [virtual]
endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName)QueryPathTreeFilter [virtual]
endEvent()EventFilter [inline, virtual]
EventFilter(EventHandler *next)EventFilter [inline]
FilterStack typedefQueryPathTreeFilter [protected]
namespaceEvent(const XMLCh *prefix, const XMLCh *uri)QueryPathTreeFilter [virtual]
next_EventFilter [protected]
piEvent(const XMLCh *target, const XMLCh *value)QueryPathTreeFilter [virtual]
QueryPathTreeFilter(const QueryPathNode *qpn, EventHandler *next)QueryPathTreeFilter
QueryPathTreeFilter(const QPNVector &qpns, EventHandler *next)QueryPathTreeFilter
setLocationInfo(const LocationInfo *location)EventFilter [inline, virtual]
setNextEventHandler(EventHandler *next)EventFilter [inline]
stack_QueryPathTreeFilter [protected]
startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding)QueryPathTreeFilter [virtual]
startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname)QueryPathTreeFilter [virtual]
textEvent(const XMLCh *value)QueryPathTreeFilter [virtual]
textEvent(const XMLCh *chars, unsigned int length)QueryPathTreeFilter [virtual]
~EventHandler()EventHandler [inline, virtual]
~QueryPathTreeFilter()QueryPathTreeFilter [virtual]
XQilla-2.3.0/docs/simple-api/inherit_graph_13.map0000644000151400015140000000024011653571064016444 00000000000000 XQilla-2.3.0/docs/simple-api/ATTimeOrDerived_8hpp__dep__incl.map0000644000151400015140000000041611653571064021344 00000000000000 XQilla-2.3.0/docs/simple-api/classTimezone__inherit__graph.md50000644000151400015140000000004011653571063021244 0000000000000035b717af90c1799fd2af7c28800453cbXQilla-2.3.0/docs/simple-api/classxercesc_1_1LocalFileFormatTarget__inherit__graph.md50000644000151400015140000000004011653571064025642 000000000000006411d0bbea304eb787327a6896a859feXQilla-2.3.0/docs/simple-api/DOMDocument_8hpp__incl.map0000644000151400015140000000003511653571064017541 00000000000000 XQilla-2.3.0/docs/simple-api/classATQNameOrDerived__inherit__graph.md50000644000151400015140000000004011653571063022504 000000000000003508af1864a6b30d296a6710d485746dXQilla-2.3.0/docs/simple-api/inherit_graph_24.png0000644000151400015140000000342611653571064016466 00000000000000‰PNG  IHDR¸(Â7§ÓbKGDÿÿÿ ½§“ËIDATxœíšKLSMǧÖÖÚ6´…ÒÒ‚]ˆ(Fƒ¨ !b7*Ñ…‰QVÒš°0j¢´*QSã#Q4.|ãÆGð‰)U7¾"!¾¦¹­¨ "A%ô’>RÚÒη˜|Íåö¶‘1ßüVs§gÎùçÜæNz/B„TÌøÓÄ(,ˆQX£°˜Éº>vìX[[Û‘B˜>èõúÇ3gØFq:?~,..žBU„éÅ«W¯ k’m@qqñíÛ·§Da:RQQ?IÎ(,ˆQX£° F!`AŒBÀb‚Fáq1¹ÊRòùóçXÑÿZ³>L1³gÏ^¹r¥Ãáøƒz~‡‰ï(/_¾O¢Èžž¥R9áB“®¦l¹\¾ÿþßQEQT^^^eeå_úºžãL233³²²p"£Ñèððð„ MºL˜²•JåÉ“'GUVVVcc£Z­R©T“¨sj˜ä3Jkkkvv6MÓ€æææùóçûýþ¢¢"@ì.†Ãa‹Å¢V«U*•Åb ‡Ãh#}úô©N§kooçñx7nÜX¸pazzzcc#ZõàÁƒ¥K—ŠÅbFƒyϘû3ë9ÅÊ?66fµZu:]fffMMÍÈÈ€)›¹|dd¤¶¶V©Tæää˜ÍæÑÑQΜñ¡P(“Éõ`·Û D"Ñܹs¯]»–¤"bãÆ{÷îEã`0¨P(>|ˆÓdœŽާ¼¼¼¼¼¦àp8¼ãA?ÕÔÔlÛ¶íû÷ïjµúÍ›7®®.f¡S§NmÞ¼ùëׯE-[¶ìÀ(`ýúõÏž=óù|€²²2š¦/_¾ öx߬Y³.]º488xåÊ•™3gú|>Ί1=7oÞÔétÑhBh³Ù´Zm8Æir’›Ëé‰%‘çhšÎÉÉ)((@„qFÉÏÏDãÇ¢Š¢bÉŸ?! …B€®®®`0øáßωD^¼x&Y÷ž…ÝnObVþ ´´´ _;::Иsy(âóù.— Í·´´Ì›73g¼*©TÚÑÑ‘¤n·[ œ9s†¦éh4êõz#‘gŘ¿ß/‘HÞ¾} !ܲeKCCf““0ÉFA½àäèÑ£|>ÿÇè’e‘HÄlŸL&C¡P(–üÓ§O¬B6›­¤¤¤°°Ðh4r%^3 ³³“ÌÊ/‰œNg’å±q?  yŠ¢D"Q"ÍLU~¿¿¾¾¾¨¨(I „íííeee‰dÕªU=JT‘©mëÖ­ûöíóù|‰¤³³³ÉIàôÀäÿÒßßáÂ…5kÖÔ××s(•ÊXûhš~ýú5š±˜3Æ ‹åÝ»wMMM¿¤gll 000Àœdå×jµ_¾|Ac‡ÃqâĉDÙÔj5ŸÏïééA—ÝÝÝÙÙÙœ9YˆÅâÚÚÚ÷ïßÃwšø>h4zçη۽}ûö 6¸Ýî$ƒáîÝ»­­­Ë—/ÏËËK”Í3›üKLÜ(CCCßLjF£&“i×®]ÍÍÍOž<±Ûí±xtølÚ´©¡¡¡¯¯¢¨uëÖ]¼x1e­`0 …„Ba °Z­¯×›r•\.\½zÕãñœ;w.IduuõÁƒ].—ËåÚ¹sg___¼l„@ ¨¬¬Ü½{woo¯Ëå:tèPUUUJ%ˆ´´4¯×›¤<¯´´ôÞ½{' ±Xœ²bii)MÓV«Õd2Å&'Ðäàl;ñ$Juþüù%K– ýíþýûÆív‡Ãá’’©TŠÖz<£Ñ¨P(222êêêü~?ëÙ;vl|öìÙôôô9sæ455 •J•òÑ!<~ü¸\.ÏÍ͵ÙlœÁh<::j6›µZ­L&3 4MC™²™µÜnwuuuFF†F£Ù³gz(pjf©ŠD"iii½½½‰ú!¼uëVnn®P(ÌÏÏ·Ùl‰*²:VWW'•J™GÔ”MN§xpü]Gß"ïQþÏpz€¼ë!`AŒBÀ‚…€1  bÄ(,ˆQX£° F!`Áñ…[[[ÛÚµk§^ ašàt:õz=k’môYáÿŒ^¯·û]À 9£° F!`AŒBÀ‚…€Å?™_¶4kšIEND®B`‚XQilla-2.3.0/docs/simple-api/files.html0000644000151400015140000004430311653571064014617 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

File List

Here is a list of all files with brief descriptions:
AnyAtomicType.hpp [code]
ATAnySimpleType.hpp [code]
ATAnyURIOrDerived.hpp [code]
ATBase64BinaryOrDerived.hpp [code]
ATBooleanOrDerived.hpp [code]
ATDateOrDerived.hpp [code]
ATDateTimeOrDerived.hpp [code]
ATDecimalOrDerived.hpp [code]
ATDoubleOrDerived.hpp [code]
ATDurationOrDerived.hpp [code]
ATFloatOrDerived.hpp [code]
ATGDayOrDerived.hpp [code]
ATGMonthDayOrDerived.hpp [code]
ATGMonthOrDerived.hpp [code]
ATGYearMonthOrDerived.hpp [code]
ATGYearOrDerived.hpp [code]
ATHexBinaryOrDerived.hpp [code]
ATNotationOrDerived.hpp [code]
ATQNameOrDerived.hpp [code]
ATStringOrDerived.hpp [code]
ATTimeOrDerived.hpp [code]
ATUntypedAtomic.hpp [code]
Collation.hpp [code]
ContentSequenceFilter.hpp [code]
ContextHelpers.hpp [code]
DateOrTimeType.hpp [code]
DebugListener.hpp [code]
DocumentCache.hpp [code]
DOMDocument.hpp [code]
DOMNode.hpp [code]
DOMXPathNSResolver.hpp [code]
DynamicContext.hpp [code]
EventGenerator.hpp [code]
EventHandler.hpp [code]
EventSerializer.hpp [code]
ExternalFunction.hpp [code]
ExternalFunctionResolver.hpp [code]
FastXDMConfiguration.hpp [code]
FunctionRef.hpp [code]
InputParser.hpp [code]
InputSource.hpp [code]
InteractiveDebugger.hpp [code]
Item.hpp [code]
ItemFactory.hpp [code]
LocalFileFormatTarget.hpp [code]
LocalFileInputSource.hpp [code]
LocationInfo.hpp [code]
MemBufFormatTarget.hpp [code]
MemBufInputSource.hpp [code]
MemoryManager.hpp [code]
MessageListener.hpp [code]
ModuleResolver.hpp [code]
Node.hpp [code]
NSFixupFilter.hpp [code]
Numeric.hpp [code]
PlatformUtils.hpp [code]
QueryPathTreeFilter.hpp [code]
ReferenceCounted.hpp [code]
RegexGroupStore.hpp [code]
Result.hpp [code]
ResultImpl.hpp [code]
SchemaValidatorFilter.hpp [code]
Scope.hpp [code]
Sequence.hpp [code]
SequenceBuilder.hpp [code]
StackFrame.hpp [code]
StaticAnalysis.hpp [code]
StaticContext.hpp [code]
StaticType.hpp [code]
StdInInputSource.hpp [code]
StdOutFormatTarget.hpp [code]
StringPool.hpp [code]
Timezone.hpp [code]
UpdateFactory.hpp [code]
URIResolver.hpp [code]
URLInputSource.hpp [code]
VarHashEntry.hpp [code]
VariableStore.hpp [code]
VariableTypeStore.hpp [code]
XercesConfiguration.hpp [code]
XMemory.hpp [code]
XMLEntityResolver.hpp [code]
XMLFormatter.hpp [code]
XMLResourceIdentifier.hpp [code]
XPath2MemoryManager.hpp [code]
XQException.hpp [code]
xqilla-simple.hpp [code]
XQilla.hpp [code]
XQillaConfiguration.hpp [code]
XQQuery.hpp [code]
XQilla-2.3.0/docs/simple-api/inherit_graph_33.png0000644000151400015140000000153411653571064016464 00000000000000‰PNG  IHDRH(Ò{+JbKGDÿÿÿ ½§“IDAThí˜AHò`Çßŧ©ˆ92]`—$è$e”.^‚Ù¡KÔ¡ó‚ÀºØ¥.AÐ9°SF霂A éJÍf ¬½­ö~‡Ø’¯¾¹ŠýN{ÞmÏþÿíyßí†z¤ï·|†1­¡[cdq*•* ¿"¥H’\[[ë‘+—Ë×××@àUõÊùù9Žã²A¹1@ Èd2?"Ib±ØÇAÝÎ1ØÖ0Œi …ư¬Vk0¼¼¼TEÐÍÍ †a½çQþÄÎÎÎêõz½^/•Jccc³³³ê6 ···.—Kñé]Þc_dhhˆ A[[[§Ñh¸ÝnÅ eˆ¢Øl6Ÿ®Î3™Lf³y``@ A iÚãñ¸Ýnš¦Aûý~‹Å2::º¿¿ÞWÝÇ œœœH÷NÊAyžçyþþþ>™LÎÍÍõ÷÷K»¶··Y–½¸¸899ÉårëëëBŠ¢–——«Õj2™L$Âçgððð LžòRœ˜˜hoÛíöb±Ø÷ööòùt”"BèííÍáp°,+…ÇÅãqÇ!„¡ƒƒŸÏg6›ÇÇdz٬t䯯†Óéôù|ÙlVS©T¤ AB¡ÝnÿTLW͘¬¸¥ÞF‹ý˜L³ñ­¨5 cZÃ0¦5 cZC·Æº´-…B!ÿ¼Å”Ëe’$eƒrcRߪ-H’ü([þ­¨t;Ç cZC·Æþ"|¯:p:´±IEND®B`‚XQilla-2.3.0/docs/simple-api/EventHandler_8hpp.html0000644000151400015140000001055111653571064017031 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

EventHandler.hpp File Reference

#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/items/AnyAtomicType.hpp>
#include <xqilla/ast/LocationInfo.hpp>
#include <xercesc/util/XercesDefs.hpp>
Include dependency graph for EventHandler.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  EventHandler
class  EventFilter

Functions

static const XMLCh * emptyToNull (const XMLCh *const in)

Function Documentation

static const XMLCh* emptyToNull ( const XMLCh *const  in) [inline, static]
XQilla-2.3.0/docs/simple-api/tab_h.png0000644000151400015140000000030011653571063014376 00000000000000‰PNG  IHDR$ÇÇ[‡IDATxíÝÛ ‚`€áÿ¥ºˆFŠ¢‚hšYÒ ÿÌ26@c´HwÍñì!ïÏ—K1ê^‰©HtO’÷ÄyG˜µD׎ k9¦ç?iðâ7zá„vPaŸž˜þãÏðJŒ}ÉÆ)غwV»‚õ®`ai–Ö¥¥™›Z‰ˆšŒP³éøC"àèP=€IEND®B`‚XQilla-2.3.0/docs/simple-api/classModuleResolver.html0000644000151400015140000001274111653571063017512 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ModuleResolver Class Reference

#include <ModuleResolver.hpp>

List of all members.

Public Member Functions

virtual ~ModuleResolver ()
 virtual destructor, does nothing
virtual bool resolveModuleLocation (VectorOfStrings *result, const XMLCh *nsUri, const StaticContext *context)=0
 Fills the string vector with a list of locations tht, once assembled, build the module referenced by the given URI.

Constructor & Destructor Documentation

virtual ModuleResolver::~ModuleResolver ( ) [inline, virtual]

virtual destructor, does nothing


Member Function Documentation

virtual bool ModuleResolver::resolveModuleLocation ( VectorOfStrings result,
const XMLCh *  nsUri,
const StaticContext context 
) [pure virtual]

Fills the string vector with a list of locations tht, once assembled, build the module referenced by the given URI.

If the URI is unknown, returns false, otherwise returns true.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/functions_func_0x63.html0000644000151400015140000005275311653571063017327 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
 

- c -

XQilla-2.3.0/docs/simple-api/classFunctionRef__inherit__graph.map0000644000151400015140000000041711653571064021775 00000000000000 XQilla-2.3.0/docs/simple-api/inherit_graph_12.map0000644000151400015140000000023211653571064016444 00000000000000 XQilla-2.3.0/docs/simple-api/inherit_graph_21.png0000644000151400015140000001030011653571064016450 00000000000000‰PNG  IHDRp]3>ª4bKGDÿÿÿ ½§“uIDATxœíÝ{PSgÚð÷äJ% W“(¡[ .UÚ©²«#u„Ñ:nµ-XVëT¬¶ug¬—Övz¡3¥ºEÛÕ:u]¿ÑÚ1¨u(tÆ)­VÛõcÑrSÔ $\Â¥$0—sÞýã|䋹Ã!9àóûƒ ÇsÞ÷É‘<œ÷=œ÷!0ƘÀ u€é €1PŒ„` Ïåû>úèÊ•+! °AUUU¨CS˜kB¹qãÆ;w²²²B ¡ŽŽŽêêêPG¦6ׄ‚ÊÊÊ*++ ~( ´ÊÊÊÖ¬Yê(ÀÔs(Æ@B0 €1PŒ„`L€ …p•ŸŸßßßÏH@A´´´0ÒT`ZZZ‚xУœOȬY³Ö¯_ïû„Ö ,øÊÕ«Wu:]wwwUUUggç¶mÛ Ë›ÖÖÖ˜˜˜ImV"‘¼ýöÛ4BŸÎÎÎãÇÆÌÌÌÁÁAFÀíO(R©4>>>!!áé§Ÿ.))¹páƒayCQÔÀÀÀ¤6óÉ'ŸÐ}B’’’ž}öÙóçÏ'''—––2&lÇÌ —Ë¥_WVVΛ7O$%$$8>™aaaÉÉÉ'Ož¤7Úl¶]»vÅÅÅÅÆÆîÚµËf³¹4KÄ©S§ÒÒÒ¢££?ýôS„Ђ BñññÞZ ‡?ýô“\.ÿõ×_݃±ÛíEEEr¹\*•®_¿ž¾ˆpnÖ1YµjÕ[o½Ewd±X¢¢¢¾ÿþ{¦#ã7èý}rêÔ)¥R)•Jß|óÍ‘‘çqã5ÆøÈ‘#ééé‘‘‘K–,©¬¬$ÂãFNÈþ“ð¾_^^^^^B¨¾¾Þd2Æ;wîdggøá‡c£Ñ( ;;;¿þúk„P__ŸÙl …GŽÑétÇŽãñxf³c\RRòâ‹/jµÚÆÆÆÌÌÌwÞy‡n¹¹¹ÙÑËK/½d0Ž=ŠhnnvŽÙ½z‡åË—_¼xQ§Ó¹³oß¾'žx¢±±ñÆóçÏß¹s'ÆØ¹YÇëÓ§OËårŠ¢0Æåå剉‰6›ÍŸ°i×®]“H$¾ã\²d‰Z­®®®NIIqlt ãèÑ£III.\èïﯪªJIIAyÜ8î ¡O»7*•Êýç€xBqIœ,ËíÛ·Íf3I’—/_¦?fz½žÏçïß¿ß`0Pe2™H’ħ¦¦êt:ºÁªªª¹sçb·„réÒ%Œ±Õj¥·»$÷è½óøãûí·ô!·nÝ¢_{ü$‡‡‡×ÔÔ`Œ_~ùå={öxë—P|lj1V©T³gÏöÆœ9sN:åhö›o¾AyÜèOG>@BçáY?577Ó¿GFF8°dÉF#Ôjõ¦M›Ìfó¼yóè=£¢¢.]ºtàÀ¢¢¢ÌÌÌ={ö,_¾!ÔÞÞžàhP,»÷’˜˜ˆâóùcðÖBjj*BÈc0æ±Ç£_§¥¥¥¥¥y{ƒ"‘èùçŸ?{ölzzzEEE]]ïNÝÏR©ô}ˆ#:8ŽÇ²öÝ»wçÌ™ãØžžžîmã¸'€ÉÆÀŠH$Ú´iSGGG__ßèèh~~þ®]»jkk>Lï0::JQÔ™3gôzýÆW®\©×ëB111ŽßêƒÁ㣮ޝ½µ@' Á$&&¶··Ó¯ëëë?þøcíœ={ö»ï¾{ê©§~ÂÆùå—+V¬ð}}ù€R«Õ …‚~m·ÛB]]]ô· …¢©©ÉÑòíÛ·½m÷„0ÙO(ýýý======Z­¶¤¤D&“I¥R‹ÅbµZÁèèhQQBÈd2‘››{îÜ9£ÑhµZù|¾H$B½ð {öìÑh4Ë–-;tèŸ]›Ífú…ï<óÊ+¯¼÷Þ{7oÞ¼yóæÖ­[5{³¹¹¹ƒ¡¨¨¨°°Ð±Ñ[§ô éêêº|ùòêÕ«ÛÚÚsºÞÙ±cGKK˵k×Þ}÷ÝW_}U"‘ „Nœ8a4?ÿüszŸ-[¶ìÞ½û‡~¸xñâûï¿O„Ç9¥0ÃeÀ ‡ÃÉÈȨ®®¦ÿé³Ï>‹ŽŽ–Éd‡.((ˆÅ«T*¥R)RSSËËËé=Fㆠ¢¢¢f̘±yóæááaì6‡âòÚf³-\¸0""Â[ .“,îÁÜ»woçΉ‰‰b±¸  À`0`Œ›uiaóæÍÎÓ™ÞÂvÉdk×®íííõqÝËéÓ§gÍš»cNjł1...–H$J¥²¼¼œƒ$ÉÒÒR¥R)‹—-[V^^.•J=nôç„øs(`âL( h***êëëßž={vîܹ7N°#H(`âàY¶kll\·n]mmíÈÈHuuõÞ½{_{í5C)žVl¬²{÷î‘‘‘U«Võ÷÷'''¾þúë!-ß?þÏÏÏGÁ!z H •$ÁÀ<ÛÈHWMÍoGbŠ u,€u`ÈÆAÙíý·nõ44ôÔÕuÔÔ j4ˆ¢Â¢£ŸÚ´)Ô¡Ö„\aŠÒ·´ô46öÔÕuþç?j5E’‡Cߢ÷'%…6HÀNPB Œ44¬ˆŒüæ/ékj²ß»G/Ekœ8—’¢H«AB!$'Ÿ‰ºûÞ‚®G\py<±\ÄèÀ”“²!„xaa.^\ÜÛ›[R.•òþi³µÿüóåâ↓'ÛþÙÐÖFzZfâòóó Àn.w„=\¡\¹r%''g2~>›õöö’g¬[÷Äš5M*Õ¿÷ïÀ!·»9˜¢xaaí—/utXM&„Áá<š –ËÅr¹D¡Ëdb…B,“…-»° 8‰lCÿ•‰3ׄB¯]BQQQô*\>ß‘V~Ý·oT¯Ç£û‡?Ï}ñEdRBˆ´ZÍ:Ý V;¤ÑÐ_›/\0´¶ZÍf„‡Ç{4)I"—‡ÇÅEÄÅIär±BAõ3*™L–——Çô{“Å5¡Ào@sM+ôÕ ÆˆNc«®p±B!V(ТE·ßr¤úk×µkÆÎNL’!žPïœ_$rytJ _$ úL‚IYà VÒV¯®=~¼æðaëð0¶ÛÃcc ŸëÔ „ÂÄâ°ŒŒ¸Œ çV³yH«Ôh†::†4š!­¶³ºº©¬Œ´Zé¾"gΤÇJ…B,—?2::úÈ#“øöÓ ¡€ññÃÃçoÝš¹aCí¿þUsèPôØJtJ!MO—Ž­/çà|9cîíîí½ÓÐ0 V'DF¶Ž­k¦H(À_üððùÛ¶ÍÛ°¡§¡Ù–=^ÎØ-–õÌv&Ü6F!ÿóŸƒÐO(´óàÞ Ly”¯e H(`šƒòµÁ LsP¾6˜ ¡€i…€òµ¡-_š¥lðƒÿ5 |-EùZ„J¥ºo˸ÿ[„J` Ê×­|­{BÛr`ºòµ!,_ s(`ºòµ!,_ < |mÊ׎;L T›CòµA+_‹`RL!P70A+_ëžP`ÈÀtÂòµp—€é&„åk]K‘ÀP—å‚P©TÎ+ËÂÀò¶pY rP«S_ß4wn¨ã 6L’Æîî!­vH«¥—}Òh†::FÆÞ ¥Ëq FG0$ŸR ¡€É‚)ÊØÑá¼ð=ýõÞÐB„X.§—¼ì¹çè…ïÃãâD3fpÆjû·²/€å‚šPZ[[üñÇ`ö8ý$''/]ºtÜÝ0I\nâ¡YM&C[›Kî0wwÓùááÑJ¥D.W,Z$Y»öÿrG|wª*yyy¾й··æÿ¸g4>wð ã½c’4vvz»è ¸ÜÈ™3é‹Å¢EŽš;a^ž…ÓO†ž‘Á’ÑJVVV{€„2U i4ÿvJ%äX*qPWVrúŽì F3¤Õ÷õ!„8<^dR’X.+ò… % …X&ËåDG‡â}€iÊÔcÒéþ·´ôæéÓÈK*A!‚øiïÞˆ„úB#%7—%`zƒ„2•ðl¶ÄÎÎþéOEa’D$émO.ŸŸµ}û‚¿ý-˜á eÊ0uwϺ{W<8H’$‡Ëå …v‹ÅÛΘ¢Lc 4l|80ø%ÝkY²°ì㣉‰-©©¿-XðFmíóÇŽ=³eËììlad$BˆÃåºÜ¯¥ìv}kkˆ"/–^¡\½zuöìÙ$IªÕêƒfffÞ¸qCrÿ=‹I廸dkkë3Ï<óûï¿-gqq99Êœ„e·¨Õ=õõº††îëך›1Ir…BÊflk IxàaÆÒ„B—hD%%%eggggg—––~ðÁA ÀwqÉIªn'MO—¦§ÿñ¯EÙ-–þ¦&]}½®®®¯© Sás x˜5~Ú&»D£ÇN¯¨¨ÈÈÈ KNN>yò$ò£º%òTÓãž*ûè†'&dff®øâ‹ /B6Á6ÁUjˆJ¥ò§GÜ{tb6›…Bá‘#Gt:ݱcÇx<žÙl·º%öTÓGðþ”}İh3`½©—P/Ñè±GÇ!z½žÏçïß¿ß`0Pe2™H’·º%öTÓŸà}ƒ„Xnj\»—h¤ïåää´M=\¢Ñ·¨¨¨K—.UWWÏœ9sñâÅ¿üò‹{a:o!¹×Äô¶g`e`›)Pð$—hômtt”¢¨3gÎèõú7®\¹R¯×»ìã-$÷ÔÃlÙG؆¥ %˜%{tpDBDnnî¹sçŒF£Õjåóù"‘ˆþ'?«[:c¸ì#lÌñ•ÿs(A(ш=­ÏâÁ9Ý-IEND®B`‚XQilla-2.3.0/docs/simple-api/VariableStore_8hpp__incl.png0000644000151400015140000002035411653571064020202 00000000000000‰PNG  IHDR uOŠ5bKGDÿÿÿ ½§“ IDATxœíÝy@׺ð“ …(›€XTDA­¾‚ uã‚"R×V\ª´Uàz½OQk‹­¶>•^Dmq)J‘€kÁµ.h+(Ze±!²Îûcî“!,f…ï÷W2™å;gÎäË,9‡‚aäP5-9ÈÈA†@ޮ逬™3gj:„~ÊÓÓsË–-šŽ-Bëäåå7ÎÌÌLÓô/<`±XšŽíB{yyi:Šþeûöíš­÷!ƒ €dä C 9ȺçÌ™3 .”îrðÌÌÌ.—­­­õööîѧŠAñx¼¤¤¤ÐÐÐ?ü0""âÈ‘# ËHzÁÛÛ»¶¶Vk‚ ¡{¼¼¼8NEE1¥ªªª±±qúôé].Ëd2CCC•Ïþýû«ªªvìØ‘žž{ãÆääd„P}}}@@€r·P'Ⱥ‡Åb¹¹¹S®^½êää4tèÐ.—522ŠŒŒTn<ׯ__¹r¥½½½±±±““STTÔ7B‰¤¥¥E¹Û¨d4cÆŒ+W®H$üíµk׈ A¿ýöÛÊ•+gÍštâÄ ôŸËDÅÅÅ!!!/^T0'.///,,,00pïÞ½|>_z»"‘(99yþüùóçÏONN‰D¡feeÉÀÉÉ)==!´víZ„Ђ ðé\.w×®]ÁÁÁIII@:°òòrÒ•Ë(** ÷÷÷?~ü8Q´7n,^¼xþüù …¤•Uóô+!t’‡‡GKK ~¡éùóç/^¼ðôôDµ··oݺÕÞÞþرckÖ¬IIIinnÆ9uêÔ¦M›ìííñ· æ<þü·ß~ïÞ½Ÿ~úIz»õõõüî»ïŠ‹‹9‚Љ‰)..^¸paLLLzzzCC>sbb"Bˆ¸;²oß¾ÆÆÆäääo¾ùæîÝ»'Ož” Œtå2nß¾’’{èÐ!"'eeeÅÇÇýõ×·oß&RéD@@†ÐIL&sêÔ©¡k×®¹¸¸à} éë맦¦FEE :ïÙ©­­ _$22râĉ «`ÎuëÖY[[;88|òÉ'ø&.\øì³ÏÌÌÌlmmW­Zuç΄ФI“ÒÓÓ÷íÛ7a„K—.………åççË,‰._¾¼~ýúaÆÙÚÚ._¾<77W&0Ò•Ë 8p »»;B¨µµŸ¸fÍ"`bµ¤=ý2éª3fìß¿ýúõW¯^õ÷÷Ç'Òéôššš={öðx<âtgcc#ýVÁœÖÖÖÄ"ýõ—ôG/_¾ "ÞvttܼyÓËËËÁÁÁÁÁañâÅGMNNöññ‘^°©©I"‘XZZâo­¬¬e“_¹|©ñ{- ¥³€‰Õ’Nôd]5mÚ´o¿ý6//ïÉ“'øoj„ŸÏß¶mÛ¶mÛ¦M›& /\¸@ÌO§¿µ¯ÌYSSckk‹zñâ…¹¹¹ôRFFF{÷îµ²²Bq¹\‡ƒaØÎ;mllìììB eòäÉ9992ѲX,*•Z__?bÄ„P]]‰‰‰L`ò+—/µLn˜¸]O:Ð#p•IW 0ÀÝÝ=!!aâÄ‰ÆÆÆøD¡P(‰ètº@ À¯ã···“.®`Τ¤¤ÚÚÚ?þøãСC³fÍ’^ÊÃÃ#%%¥¡¡¡ºº:666++ËÀÀÀÏÏoûöí·nݪ¯¯ðàARR’ô ÇCÑétooïýû÷×××?}ú455Õ××W&$ù•#„Î;G\þêLBB01ºéD@À9„óññÉÍÍ•þ;“É\³fÍÎ; ÂÂÂ|||bccä—U0çœ9s¢££;::üüü-ZDÜyF}üñÇ +W®¤P(žžž«V­BÅÆÆ¦¥¥¥¤¤ÔÖÖ²X,ooïeË–!„,,,&L˜tþüy„ÐgŸ}–°zõj==½3f„‡‡Ë\ü!]ùž={\\\H¯8|}}7nÜØÑÑáããC¬Vfbïk€~Œ"ý×\  (J\\ŒÑµµµ2·ÓI'viûöí¦¦¦§NRj€è6¸Ê€d Ã ‰ç¸Oôd ÃŒ7lØÐ‰€^€ €dä C 9ÈÈA†@þS­u(Š­­-Þ›·*H$ú|þ ƒ¿ºžU§tt Á0 ƒÑD¡Hz±xuuµ¯¯/ü§iÐ/“Ö VÑšù|zMá«W†tºÄÁ¡JUò‡Q]m4iRC׳ª@uµq}½!•*2¤ÃÔ”Çbñ)”ÐÖÖvêÔ©ª ]çýBiéó½{ÍÏhkkº~½o` «žMé[ÉÎ.]½úǺº½J_s7½yÓþë¯Ξ½_XøFõð=ožóܹÎêk*$tdˆ>îúõÊÝ»/Þ½ûÔÅÅæ‹/ü||ÆQ©$C,(…Æ3¡©©-/ïáÙ³÷/_þ]_Ÿîë;náÂI^^cU‘èÃà*Sß„aX^ÞÄ„ü»wŸzxŒÎÊZ?eŠ­¦ƒRË08xrpðä—/ßœ={?'§tÙ²ÔÁƒ fÎçïï©€n‚sˆ¾F,–dfÞKN.üãz_ßqŸ~:Cm¹A{Î!äÕÕ5Ÿ?_–“SZTôÌÈÈÀ×wœ¿¿‹··óÐ)È}Ÿ/JK»™šzµ¶¶)0ÐuÍoKu Í‚ðâçÒ¥ŠœœÒ»wŸZXÍëìïïþØcùr!C æ¬:š!xªÈÈ(úóÏ¿F¶ð÷wpµ³3Ót\h dÝóôiãÞ½¿fg—b¸víŒÐÐ÷ h:(„t?Cà$¬¨èiNÎý³gKZðT±`ÛÈ‘¦š uƒ ¡K*+_~÷Ý¥sçîaòùç3UôÇ·^ë‚@¤Šìì’ÆÆV€JA†ÐR öË/E))W**jgÎtTçßz­ÏgŸ/ºzõQNNé… åBW×þþ.óç»ÊÔth(d­#IΜ¹—”TPUÕ0¾kd¤×øñVšª[úO† tt¯]«ÌÉ)=w®L,–LŸ>fÞ<çY³& ÄÐth(d-ÒÑ!DÓAõX΢ò‚‚ßétÞù¼yÎÐ9Ð=!4ìÕ«ÖòNºC¡PV®ô\ºÔÝÄDW¯eC††÷@ž‘QtãF“9ÀÏoÑŠÑ@52„=_¼XÞÞ.€ÈJA†è½gÏ^ÿý¥ììRËðÓOµh4PM ¡N¤=/XàÖo U€ Ñ••/òÙìkë!Ÿ>3 `¢¾>ô_B3ðÈ32Š.]ª@Aä@‰ CôLqñŸûöåæç?´³3߸QKGÕÈšÕÒ»t©z J¢»th4PM ¡% r ,!º€aØÙ³÷òËËkte4PM ¡m rðŽ CtŠ ´²òå‚n:4¨¦@†ÐZõõÍçΕåä”=#z ÷öv Ó¡[Y d2£®];cìØašJ@†Ð~ò=Oþà{¸HA†xKKKGJJ¡®ª6uuÍË–¥ŠDbü-'äpÚ¬¬Œ‰ƳLHˆÐPt@¼òÓ§ï–—×@ä 3!þ­©©-1±à§ŸnôÑ@ÕÉÓ3þñãW¤Q((:zö_ø©9$Ð#Ò=[Y±fÍšàïï 7Û2Ä[£®[ç £öHbâå]»Î‰Dù(ÊíÛ[¬­Yê ôž*~ùåÞ³g¯¡r€ëËB(õUΖ-ël”Gb4P“AkÖôÑ@Õ©®®yòäò­ˆJ¥L˜`}áÂDÞÅ£G/32Š~ù¥èåË7x_®£FAäýQŸÍB¡xÅŠÃùù“’–L”ù” täHÓ¨¨¾6¨šùûÿ_IÉs‰ä­†D§S·m \±ÂCSQwDt+›“SòêU+ž*‚‚&½÷žIw/)yîâ2îj躾™!Ñò凯^}$‘`£F™]¹òw¢¥£:;ß°áÃ>9¨šýøã-[2e.4Ñh”ÒÒC‡Â½׋ÈÅbÉĉ[œll ÎhrõÁ ÑÖÆ =XZú'þE¡ C‡VÌš5ž tÒ¤‘11³<‚ÃisvÞ*ÿ7CÐhÔ©SG>½VƒQ¥Ã{ ÏÈ(ÊÎ.árù z ¿~½rÑ¢$jnn”–¶ÒÁ×U}-C´µñ?ú(¹¬ì¹Pøï/,*•jc3ÄÌlð;ÕS§ŽZ¿Þ×Û{¬fƒì{BC“¯_¯"’•Jùî»BB¦h6* "¤=ºÿ}ñÅÉÌÌ{B¡˜F£R(”øø ððišôNŸÊ\.ÿ£’ËË_…â·?¡¸º‹ œÿüq+BOVQ± ëóˆÈÏŸ/ãóE®®#‚ƒ'Ïš5aêÔííüÿÌEA¹îÞÂ`èi0ZÐ }'Cp¹üÄòòZâ\*•êæ6‚ÍŽÒH`ý—Ë?þBˆN§Îœ9>5u¹¦ƒêÓÜÜ~þ|›]róæãaÃŒjjš’}rÁÞÞüèÑOà/¨º¥ôÊÒÚÚ±hyz@I$’»wŸÞ½ûTýõLæ??Gü©b±[°ÀUÓµ2665=}Mqñ6;;sùîžD"IUÕ«™3÷\»V©‘Aïô… ÑÞ.ˆˆøWEE izÀÑhÔòÕU³`›D"Aèùú:j: ƒ1nß~Bz$ŠDb.·#44ù‡òûÌ¥‹>Oç3~kº¤ä9éßzB4E_ŸŽ–Ÿÿ°²ò¥šÃë?¼½ ô)4{ö„`Ľ~*?ÿaG‡¨³O%L"ÁâãÏ-]z¨¥¥CÞyëHæñxMMMš ¥ÚÚëÖe”—×êéÑ ô„B ñãE_Ÿnn>ØÚšeeÅ6ÌØÂÂÈÊÊxà@òÁ¶šššx<žï›|}Çfg—y{ÛÖÕÕi:Çb± ÞõŸêß§NýF¡ Åg –—÷pöì={÷.°¶6V4+P;KKKé·oeˆÖÖÖÊJ¹JÈã‰öï¿ÛÜ,pw··²bYY±,,Œ,,Œ¬¬XƒY¬Œç^WW×ØØ¨ºPû GGfAÁ##¾µ"­5nܸwÏjÞøêÕÇ2ÿ®ï̳g­ZubíZ7{{è¹K‹(Ê8///5ÅòÎll†!„•pÕÛÔÔT)ëéÏ<=1 eˆ·¦Ñy………ÊZÕ¸qãÌÌÔÔ¥’X,)-%ùß•J…GŸµß«W¯>|(3®¥¡R)«Vyi:  14ÕÈh ¦£Ê¤ówªVèK C 9ÈÈA†@2„ò=~ü°Hþ…ÏŸ?_¾|9†aL¦ö¼£ ,xJJJètúéÓ§‰él6[__¿¼¼ÛÖÖëììÌd2§L™/‰P¯êBFY%í…Byüø±Ú6×àM¨ËÙ:k!Ýl*%Ýß{ï½%K–(þ¯UOy5·:ugˆêêj“nb¨»Œÿþ÷¿÷t©¬¬¬ÀÀÀºººãÇË?•¬ð"Lœ8qóæÍQQQÍÍÍ¡7oÞ¬]»6..n„ ¡ÖÖÖI“&ݾ}{×®]ÅÅÅ›6m:v옟ŸŸX,î]½Ý¼y³þmÊ-Th±ÚoB¤IïˆÎšJwZ àm²¦¦æÈ‘#---®®®x$¤´ýǤ444`ªTUU%³ÑwQQQQQQ¡=ë‘A¶;¥ž;wn{{»rëGDˆÃ0>Ÿ?~üøÈÈH ÃV¯^íææ&ðy¢££=<äÈ‘£Gêéý{è˜cÇŽmݺ•Fûïß& ccc?Þ‹zëÑÎÂ×Ïf³ÇŒcffÅçó»,¯½½=’j±2~ýõW;;;‹Oì2™Mt¶]m@ZQˆ¬ÙH×Iaa¡ü¡MºB(''ÇÉɉÁ`ØÚÚ¦¥¥!„H¿T’n ÄkùCC¦,Ýl*-š< …²zõjüÈ"]ÌWbwÖ©ÖV×e‘ñóÏ?ÛØØH$ ÃØl¶¥¥¥P(Ä0ì›o¾ zþüyYY™««ë¦M›vïÞíèèXVVV^^þþûïGGGcr 3<<ÜÇÇçÉ“'eeeãÇß¶m>ÃìÙ³/_¾Ìår£æsˆ%K–,]ºôåË—æææ·o߯0ìàÁƒfff™™™uuuçγ¶¶FÉÿ&^´´´èëë¯X±¢¦¦æØ±c¡W¯^avøðá´´4ìíú‘®ŠúúzÒB¡¡¡---‡B-Z´¨¥¥åàÁƒøƒ‘í—;vÌ;Ã06›=xð`WWW ÃŠŠŠ F[[ÖÕN)--EI$"=àÑE lÚ´ !´sçNb þMÔØØ(S±¿ýöÛ!CzQo¡ÒÒÒÖ·u¶³ðµùùùUVVÞºuËÎÎnÛ¶mÝ,/i{@Í›7¯¥¥å—_~Á+œtmWužCÈWFÖl¤ëdÛ¶mò‡6éR\.wÀ€ÉÉÉõõõ©©©t:Ëå’~3` ‚îLìN TuÑ0²ßøwïÞ566V¼uüÓÎÖ)Mu­Žôû¿Ç¢­­ÍÐÐðÎ;†}ôÑGÿøÇ?ðécÇŽ­¯¯Ç_çææº¸¸Œ3&33ŸòðáCüµtuF|5gffÚÙÙá3”••)§æ ÑÔÔdmmíääDÔµ££ãÑ£G‰~üñGÅ‚Ïçÿþûï\.W,_¹r…hLAAA#; ðªèlA„Pqq1†a@æ5>ƒü~)**b2™`Æ ›7oÖÓÓkjjÚ½{÷œ9s°nìüull,BèÑ£GDÙ‰"à$I@@F‹ˆˆ®@"uI»y󦉉I/êMÁù%Ó´ÒÓÓíììºY^Òö€*,,Ä0L,ã!‘n‚t"é êÌò…‘5éRÚ¤Kq8==½={ö455I$’ÖÖV±XÜÙâ Ž‚îLìN TuѰ®2Dg[ǧt¶NiªkuÊɆ………ÅÆÆr¹\CCÃÊÊJ|"ƒñVÏ\FFF £¼¼\fYéêxñâBˆÇãáoËÊÊ >C7/ªÿ>ÄŽ;h4qÔ”––Ÿ–””(Ά±Ùlwwwü™ªªªÖÖÖ¿ýíoø§ò‡Qò bo7GÒ×òûE,›››ß¸qcÒ¤I·nÝš2e ›Íž3gÎ?ü€uc§à¯½½½½¼¼–.]ŠÏ&]\ZZš‘‘Ñ•+W FVV1ÝÂÂ"//O¦VÝÝÝ{ZoXW×dev¾6¢h÷ïßg0Ý,/éúBDû—>Ve6A:±³˜qj¾!SQY³‘®ÒC›t) î_¿¾páBCCCóçÏw¶xgGÞ=-ÖU†è~ TiÑ0²6yâÄ 777Å['f&]§4Õµ:å܇@…††fdddgg»¹¹áWiBøo@|¥MMM·nݲ´´|öìþiiiéW_}%³sssV]]¿}ò䉕•þš¸h¨U^¼x‘àëë»qãF|Š••Õýû÷‰}šÃá|üñÇþþþ‡tqù£º¶¶¶;¥è~ TiÑäÃ0,)) ?¸l×ÍuªµÕu™Cäá7¨ííí¥/°DEE-\¸ðÙ³g÷ïßÿý÷×­[çääT^^^^^þÁ¬\¹ûOÎ'.‡……ùøøTWW———;::nݺµGwöÕy!‹}}}¿üòK‡caa‘aØ×_mff–••U__áÂ….ïC455Q(” .àÿ @GDDÔÖÖâ[!ý¡ÔÙ‚X7Î!ä÷ †a§OŸf2™3gÎÄ0,77—Éd:::%U¼S¤_ÇÅÅ=šÇãIA"‘Ì›7oúôéø ²@ prr Å?}óæÍ˜1c¼½½/^¼øèѣ͛7#„ÌÌÌø|~Oë /¦üÓ®í,â짪ªêÎ;öööø&Ý)/ÑbSRRš››;«pÒMt¶]ÔvAZQY³‘Ùïò‡6éR<Á`ddd466þë_ÿb0<tqé&„ÿ 55õÍ›7óçÏ—n øŽo!Ýo*-&Õ&kjj ¬­­‰6£xë­S=­NiW™0 ‹ŒŒd2™ÒwQZZZ–/_Îb±†ÙÖÖÖÑÑmiiiddÚÔÔ„a˜P(twwg2™øRgñâÅC‡6lØ_|Áãñ´6C8pÀÙÙ?=sæÌ°aÃ8Ž@ رcÇÈ‘#™Læ´iÓNœ8¡8C`öý÷ß2døð቉‰¡¡¡, ¿€ëì»X~A333¬B~¿`ÖÜÜL§Óñ;xmmmúúú±±±Ä†ï™=zôèÍ›7KáèÑ£ ¾EqçÎ*•š‘‘¿år¹7n?~<ƒÁ5jÔ?ÿùÏéÓ§‡„„ô¨Þˆâ“þè!ÝYøÚ:4bÄ“õë×㇟âòÊ´XÅNº‰Î¶«€Ú2iEadÍFºNHmÒ¥0 KOO5j”¾¾þرcÙl6éâ@º a¶sçNccãQ£F±Ùl|»Ò;B¦…È,®¸ª´hØÛmrøðááááÒ»@ñÖ¬S ­ŽôûŸ"]$| A¿ªóî#ÿ(k=?¶··Ç:ùæÅÅÅøcª£†½Cº‰^l·°°P)#ÿ(k=@›)«Õ‘~ÿC¯@óôõõU½ôƒ^µj•ú7¡†í‚þL¥­2„2áOk: @ÎÌv®:•IDATÌ,99Yý›PÃvA¦ÒV9ÈÈA†@2r!£ËOª««S½ÓÑÑ!ÓÖ»¬J‡ @7577ã —Ë•ŸH’!ðÎu…²2>´€RV€ö€ß=à]Pàù}¤à>r!ƒ €däþ¨=Ær‘KIEND®B`‚XQilla-2.3.0/docs/simple-api/inherit_graph_17.map0000644000151400015140000000025711653571064016460 00000000000000 XQilla-2.3.0/docs/simple-api/ATAnyURIOrDerived_8hpp__incl.md50000644000151400015140000000004011653571063020466 0000000000000005f48a2f2fa4c31d23f8b5f2499f5140XQilla-2.3.0/docs/simple-api/classVariableStore.html0000644000151400015140000001467311653571063017313 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

VariableStore Class Reference

The pure virtual base class for accessing variables at runtime. More...

#include <VariableStore.hpp>

List of all members.

Public Member Functions

virtual ~VariableStore ()
 default destructor
virtual Result getVar (const XMLCh *namespaceURI, const XMLCh *name) const =0
 Looks up the value of a variable by namespace URI and localname pair.
virtual void getInScopeVariables (std::vector< std::pair< const XMLCh *, const XMLCh * > > &variables) const =0
 Fills the vector provided with the uri and localname of the variables in scope.

Detailed Description

The pure virtual base class for accessing variables at runtime.


Constructor & Destructor Documentation

virtual VariableStore::~VariableStore ( ) [inline, virtual]

default destructor


Member Function Documentation

virtual void VariableStore::getInScopeVariables ( std::vector< std::pair< const XMLCh *, const XMLCh * > > &  variables) const [pure virtual]

Fills the vector provided with the uri and localname of the variables in scope.

virtual Result VariableStore::getVar ( const XMLCh *  namespaceURI,
const XMLCh *  name 
) const [pure virtual]

Looks up the value of a variable by namespace URI and localname pair.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classATGDayOrDerived__inherit__graph.map0000644000151400015140000000077211653571064022434 00000000000000 XQilla-2.3.0/docs/simple-api/classATTimeOrDerived__inherit__graph.map0000644000151400015140000000077211653571064022506 00000000000000 XQilla-2.3.0/docs/simple-api/ATDecimalOrDerived_8hpp_source.html0000644000151400015140000005626611653571063021435 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATDecimalOrDerived.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _ATDECIMALORDERIVED_HPP
00021 #define _ATDECIMALORDERIVED_HPP
00022 
00023 #include <xercesc/util/XercesDefs.hpp>
00024 #include <xqilla/framework/XQillaExport.hpp>
00025 #include <xqilla/items/Numeric.hpp>
00026 
00027 class DynamicContext;
00028 class MAPM;
00029 class XQILLA_API ATDecimalOrDerived : public Numeric
00030 {
00031 public:
00032   typedef RefCountPointer<const ATDecimalOrDerived> Ptr;
00033 
00034   /* Get the name of the primitive type (basic type) of this type
00035    * (ie "decimal" for xs:decimal) */
00036   virtual const XMLCh* getPrimitiveTypeName() const = 0;
00037 
00038   /* Get the namespace URI for this type */
00039   virtual const XMLCh* getTypeURI() const = 0;
00040 
00041   /* Get the name of this type  (ie "integer" for xs:integer) */
00042   virtual const XMLCh* getTypeName() const = 0;
00043 
00044   /* returns the XMLCh* (canonical) representation of this type */
00045   virtual const XMLCh* asString(const DynamicContext* context) const = 0;
00046 
00047   /* Promote this to the given type, if possible */
00048   virtual Numeric::Ptr promoteTypeIfApplicable(AnyAtomicType::AtomicObjectType typeIndex,
00049                                                const DynamicContext* context) const = 0;
00050 
00052   virtual Numeric::Ptr add(const Numeric::Ptr &other, const DynamicContext* context) const = 0;
00053 
00056   virtual Numeric::Ptr subtract(const Numeric::Ptr &other, const DynamicContext* context) const = 0;
00057 
00059   virtual Numeric::Ptr multiply(const Numeric::Ptr &other, const DynamicContext* context) const = 0;
00060 
00062   virtual Numeric::Ptr divide(const Numeric::Ptr &other, const DynamicContext* context) const = 0;
00063 
00065   virtual Numeric::Ptr mod(const Numeric::Ptr &other, const DynamicContext* context) const = 0;
00066 
00068   virtual Numeric::Ptr floor(const DynamicContext* context) const = 0;
00069 
00071   virtual Numeric::Ptr ceiling(const DynamicContext* context) const = 0;
00072 
00074   virtual Numeric::Ptr round(const DynamicContext* context) const = 0;
00075 
00077   virtual Numeric::Ptr roundHalfToEven(const Numeric::Ptr &precision, const DynamicContext* context) const = 0;
00078 
00080   virtual Numeric::Ptr invert(const DynamicContext* context) const = 0;
00081 
00083   virtual Numeric::Ptr abs(const DynamicContext* context) const = 0;
00084 
00086   virtual Numeric::Ptr sqrt(const DynamicContext* context) const = 0;
00087 
00089   virtual Numeric::Ptr sin(const DynamicContext* context) const = 0;
00090 
00092   virtual Numeric::Ptr cos(const DynamicContext* context) const = 0;
00093 
00095   virtual Numeric::Ptr tan(const DynamicContext* context) const = 0;
00096 
00098   virtual Numeric::Ptr asin(const DynamicContext* context) const = 0;
00099 
00101   virtual Numeric::Ptr acos(const DynamicContext* context) const = 0;
00102 
00104   virtual Numeric::Ptr atan(const DynamicContext* context) const = 0;
00105 
00107   virtual Numeric::Ptr log(const DynamicContext* context) const = 0;
00108 
00110   virtual Numeric::Ptr exp(const DynamicContext* context) const = 0;
00111 
00113   virtual bool isZero() const = 0;
00114 
00116   virtual bool isNegative() const = 0;
00117 
00119   virtual bool isPositive() const = 0;
00120 
00121   /* Is this floating point value not a number? */
00122   virtual bool isNaN() const { return false; }
00123 
00124   /* Is this floating point value infinite? */
00125   virtual bool isInfinite() const { return false; }
00126 
00128   virtual XMLInt32 treatAsCodepoint(const DynamicContext* context) const = 0;
00129 
00130   virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0;
00131 
00132   virtual const MAPM &asMAPM() const = 0;
00133 
00134   virtual State getState() const = 0;
00135 };
00136 
00137 #endif //  _ATDECIMALORDERIVED_HPP
XQilla-2.3.0/docs/simple-api/xqilla-simple_8hpp__incl.png0000644000151400015140000120320711653571064020222 00000000000000‰PNG  IHDR£n)cµbKGDÿÿÿ ½§“ IDATxœìÝ{\waàûßy?ºûtÛ’5YhŒ°G6‘… \ ââq! ©e1HñŠ+ò P¨$¦¢„ªÄ„­ „‡!$PÔÖÞËRÞ‚p©Ô^`ñåqѲmlÉ’=3ÒH}úqÞûǯûÌ™ž‡fF3’,¾ŸšR>}ÎéÓ§_§ÛåïO)ËR°iêåÞÀ“ ¥{ÀÖPºl ¥{ÀÖè—{`w}ã߸뮻.÷^\ýn½õÖ÷¿ÿý—{/À%BéÀUnqqñŸÿùŸ_ô¢©ªz¹÷åªõ£ý¨Ùl^î½—¥{?þèþH×)®ì–£G^î]—# ¶†Ò=`k(ݶ†Ò=`k(ݶ†Ò=lÁéÓ§o»í¶5'.rƒ—`õÛn»íôéÓÛ¾-€ ¥{Ø‚f³ùº×½îJÞ À%@é¶ Ýn¿ýío¿’7p PºñÍo~ó×~í×úý¾âk_ûÚßøÆ(ŠÊ²¼÷Þ{ßô¦7ýÒ/ýÒoýÖo}ÿûß¿í¶ÛNŸ>}Ûm·­·o}ë[o{ÛÛ^þò—¿æ5¯ùÜç>·æ ½å-oyÙË^vÇw|å+_BÔ7xÛm·ÝÿýozÓ›n¿ýöÏ}îs_ùÊW^÷º×ýò/ÿòßþíßVK~ãßxãßøªW½ê¯ÿú¯Ó4­o<˲}ìc¯zÕ«^õªW}ìc˲lõ|ç;ßyýë_ÿÊW¾òÿñ×Ûæo€Ò=ˆ[o½õ9ÏyÎG>ò‘óçÏä#yßûÞgÛö—¿üåø‡xë[ßú™Ï|æ×ý×?ðl¼‘ þøÿø¦›núìg?{çwÞsÏ=Ýn·¾@EwÝu×í·ßþùÏþo|ã_üÅ_DQ4±‘ï~÷»ýèGßþö·ßsÏ=ßúÖ·>õ©OÝyçŸùÌgz½ž\à¾ûîûÀ>ðçþçßþö·'bú_øÂžxâ‰üãüà¿÷½ï}úÓŸ^½“ßþö·ï¹çž÷¼ç=Ÿüä'7Þæ7@é„â·û·¿÷½ïýÁüÁ¯þê¯Þ|óÍBˆ/~ñ‹¿ù›¿ù¾pÏž=Ï{ÞóÞúÖ·n¼Ó4?õ©O½óïܳgϾ}û„Ãá°¾@š¦eY†ahšæË_þò/}éK–eMl䵯}­ëº/{ÙË„wÜq‡ëº/ùË…ý~_.pçw8pà–[nyë[ßúÕ¯~µ¾îý÷ßÿ;¿ó;ûöí;tèÐ;ÞñŽx`õNÊí¿à/¸à67¸!ýrï\šÍæ¯üʯüýßÿý?øA9ç‰'ž¸ñÆ«:´ñt]?uêÔÝw߆áM7ÝTÍ¿í¶ÛäÄ׿þõ}èC_øÂ>ýéOÏÎÎÞqÇÏ{Þó&6⺮ÜÔÄtåÀrâàÁƒgΜ©_5??ÿš×¼¦ºØh4Vïäž={„Š¢\p›ÜК|ßþÿc®>§Ù´5mÅ 5–®kõ9ŽcZÖŠ9–eضqÁ›—¥{ëêõ²,«‹ƒAœeEu1’4ͪ‹qœEQZ]LÓ|8Œ«‹eYözÑï÷£<_¾¸ñÆ“$ëõB!DYŠÇuMØŒï›æŠ8mëñ}]×; iJ³iOìR»½©]RÕå]j·W,Ðn»€+¥{`Ë’$ 亘eÅ`0‘tëË÷za­è.{ñyu1 Ó$©'ÝÓU½øåÛÚÄÆ£zŒ~‹/&bô;HQ„e™ã´}Y–Â4µÑ”PÆË(Bˆ¢(ÊR¨ª";õBˆ¢(‹¢T¥(Š*g¿Å[·7^ ,Ë¿ø‹¿xõ«_}ûí·¿ùÍoþæ7¿yë­·¾â¯øèG?Úh4n¹å–‡zèŸøÄÆIÓ4Ë2]ד$ù»¿û;!D+wCy÷»ßý¾÷½ïYÏzVš¦º®[–µö¶Ö÷áø]ïzW¿ßÿä'?ùÒ—¾´~Õ _øÂ{î¹çÎ;ï‡wß}÷Í7ßüÎw¾óË_þò/þâ/6­nsƒZSýyxÑFO UŠ"Š¢cUUEQU¡ªjžçI’išª(BQÃÐÊRA¢ëšBÓTÃP…½^`ºBU¯?{v ¯RÕ²4!D’ä²,¯iªLÞGQšee=7?ñ‘kARŸ“çyý}`7¨ªÒj-§ó'rÿñ}ÓÔg¹ÎoÛF=Öï8F½æßhXòÐI­–­iË÷ßóœú õ|¿ª®`@Ó–wIUÕVkùu×é,/ÖlNŽ7x2¢t€Ei/'¡ƒ I’åªûp¸"òÞïÇE±.÷ýp\Be)ÖJº/·´ƒxeÒ=©'Ý“$ ÃåÝȲ|eŒþ¢6¾³Ǭ'§-Ks³,G‘wUUÇBÈ컢(ŽcŨÿžç…ëš2/W×uU®˜çEž—²^-ëðY–—¥p]+Ëò4Í…š6JQ§iže™z»í¤i!„HÓTNl•®«®k !l[wSaY†aèB”š¦Z––e…ahš¦fY!w[ÓÔ4ÍE•;)D™çeQ”qœ*ŠÇYžçYVÄq–eE%Õ]MÓÔFò,ÝuM×5 C÷<;º_þò£ïö}÷Ý×ív_÷º×éºþ{¿÷{õWõÌg>óµ¯}mžçùÈGºÝî¡C‡ÞñŽw=ztƒ4›Í;ï¼óèÑ£ŽãÜqÇ/~ñ‹ßóž÷Ü{ï½Õ¦iþáþáÇ?þñÅÅÅýû÷ÿÉŸü‰iš[8¸B!^ò’—¼ë]èÅ/~ñë_ÿú3gÎTW½å-oùð‡?ü¶·½MQ”½èEïxÇ;„wß}÷ÏýÜÏm\º_s›3/¸cO}êÒK_úê H‚ N’|0ˆ‹¢ã4-‚ NÓ,Iò$ɲ¬Ì²"Ïó¢(Š¢, Q–…J¹¢”?š¿=¬ûˆWöju9§,…¢”bçúûŠ"TUUEUMSTUQUUÓTUU5MÑuMÓÔ½{[¦©kšªëªi꺮 ¡Ø¶®iªijŽcèºV¢Ù´…º®Ê×¾¢”¦©Ù¶išºijiš—¥0 Í4õ²,ã8•ý}Ë2UUÔǢȲb8\¾8ߟ#ŠÒ8^~[ZÔß™ƒ ®¿ÞûýhÕ;óhzõ`©ÙwòFo†–µœæ7 ÍuG¯]WåB(ŠâyË1ývÛ­¦=ÏVUe|¶®Âú®kÊã)VÖÿëÔÇ PÕuo0ñã>.‘Íw„ó¼ –[Æiš‡ËÅö‰žûÆ•ù ˆeß¼¶Ëõ‰ *óy^¬Ú‡u{Ê;EQÏsêsêåb!„ëZU°Xá8ÆÊ^ü(³.išÚlZo\Q„ió¼Ì²<ËŠ¾¸âÚ*t¾æµûöyÕÅÜìĺ«·¬ijÄbEí}¹ÿ.aõ@ÔçÔµm¬xñqyjŠË»®)„h6­êޝîËo¯J?qlã8‹¢¤×‹Ò4 ¢0L“$óýPŽŽ‰¼(›ÑƒAœ¦y¯Ê6ýpgYîûažýþò¨«Y–nÛf£a†ÖjÙº®µZ¶ij×^ÛæVËÖ4µÝv4Mk6-¹ÿ†ešç9º®6›¶ij®k:ŽY…õ}?ì÷Cß{½Ð÷G½^¸´4OGòª^/ ‚É‘Z-ÛóÏ“ÿ:33{ä„ç9í¶ýàƒ?üÁ¶ñã²étÜNÇÝ¥EùøãÝ,ËÏœéÇqæû|ôûq&Ãa†I¥ò%3&y^ ‡qž2¦Ÿ¦2 Ÿ§iQEžYVEY^ ¢¿Æµª*EQUU¶ò5M•#Lhš,Ú«¥,ë ¡ëZ–嚦Qeô‹¢E!ʲȲR¾(ò¼”c¨ìTÌ}­}Vd._×ÓÔUUÑ4Õ¶ME†¡;Ž!„p]Ó²tMÓǰmC×UÛ6e™ÝuMÓÔDm¨’Vk4„‰ç9Õ„3@¶à¥êïïpɽþ9Çy-¦¿<¢L}°™²,WÅô…Xâ¯Æ­©nR­åûáÂBo<}jb7ÊryÉ0Läà"Û㺦|˜4M©šøÕ1×4¥ÙÍ”oÎbåx0ͦ¥išÂ0´FÃ/iëº*FŸ}£™ò _nG^ÛhXº.âÑc]½Õ¸úðÛO>y^TÑU±s9øÍ·à·´ÙMlyWrðU‚\Ú|·}"ÚÞn;SSÞz+îR~ãÍ(ûýP¬Õˆ[ÎÄo»J¿‡^QÏsÄÊ£´A&¾z·—[éË_¤²,{½PF–‡Ã8I²~?’ÇðìÙ~çÃa†ig½^˜$Y$AÇq./Ž›õY¯·nž^×ÕFÖÑávÛ•‘âFÃ2MmffiêŽcÊk[-G×ÕVË6MÝuMY®o6mMS;Q¹þ‚÷(ËŠ¥¥~·ú~àûa·,,ôdô¹>Ó÷CߺÝ`õÓÀ²ôNÇm·ÝvÛétÜvÛ¹á†ë:§>§Ýv;Ƕ >ÝnpîÜCB(›|D®dF㕯|å%ØænÜЕCU•®BÜpÃÞÝr$išA’$yÄÝn8FÃaâûa§¾dYyîÜ (J9=„YV„a’¦£Œ~gEQ$IVÅp˜”e™eÕ¬×4UÓTMSLSSÕ4uMS CÓ4Ͳ E)«·5Ù+×4Q¢(ʲY–KúyY–a˜jš†IQ”Y&Cÿe¤Bˆ³gE±qèDUUEŠ¢(ŠR–…ªªeY…P‘eÅšãlÀ45Ó4EX–nY†ª*–¥ËOÿí²æZ²³/—©V±mÓ².EÁI~FÈiùY0139°A}œ’úÌê¤q8¬fæƒÁ(å?Äy^!â8]ZŒ—Œ³l4d‚ŠFÑïGy^Š•#l‰|ǵ#/?€D­ž/GC£q}ª 9ÔÁhÌ1AÔÆE¨FJh6m9&„ü𣚿*j­;E¹Ð0°\%Â0I’嘲ï‡Õÿs_¯…ŠQ|9e+²òišAR]”íæÚ­¬(¼A,‹¢R¿Õ;°¾VÿãYŠú>L´ì³¬¨‚¤BYÑÝÔÝÞ¢**„PUÅóìꢦ£R$•&]]l4,]_Z£©äyŽ¢Œ.*ŠóêFeä´¶Ë•mÃÐWrÌú>\!d—\l7_$`{+n{\jä€MvWá··â.Åå/’'@Õ(J}?ˆã,ŠRm—‡]VÝåÄ:×®Qx¯È6½mëí¶kÛ†<2¶m´ÛËm÷úµÎòb–el2¿yišw»A¯v»a¯·ü'/ú~Øï&ä¿«ïZ»ízžíyN»íÈ[-[NWí¶ãy¶¬Øoi÷‚ yì±s‹‹½ùyq±wâÄÒÂBoa¡wâÄ’ïr™ÅÅ{þû¿Oׯ¸·…«ÆÑ£G[­Ö½÷Þ{¹wä*$ßsò¼ì÷£¢(úý(Ë Ù" ¢(JƒØ÷Ã<Ï—–†I’özQ¥a˜Aœ$ù`¥iÇi’iš§i&ËækR¡(êøcY&ï/)2 Í4uùgYºijªªèºfYºahš¦ÊÓÃЄP4MQUQ–BÓ´$Ét]•û“eEšfš¦öz±ª–Q”¦i‘çE¥eYöû±e¥²À~A2ñ¯ªŠlëº*¡—¥P¥,Ë¢(TUɲB6Üã8Ýj”ɲtÛ6ÅÎ}Ìm~­KVÛ߀|N !ƒQ¿:û­jûa˜ÔNK2Q;Žã, SQ;¹­Î´³l”ã/Тߝ&"!DY ß6Woò[R%ÊSQ;¶¦©;ŽœùèºÚhT¶BÓFþjôúl§³¢Â¯ëš\ÝqLËÒ„­Ö(Ê\øï.€‘4̓`ÔR¯×´E-–]»¸âÚ*õ¾úª‰WGºwp›â"*ÞPU¥ÕZn¯OäÔ'BÒUŠt¼ðF×îÛç­Ž€_üf'ÖÝxË? ªa6ˆË‹Ífâ·]¥ßÎ3³zî­Y{_]Âm·©)O\t?w½[¼ ¤i~îÜ@æéef×÷e°~£÷ý`"^/ÿ|Ô¬¢lãG³Ué«BýÁƒ{dQwõµ–5jÖWñúÝ>I’??ìvCß|?ìvß}?XkÎd‘_Q”}ûZÕ½ètÜvÛ9th_§ã´Ûn5§Ýv圬íŸ9ÓüñóO<áÏÏû?Þ•ÿ>ñDwa¡W +Òé¸ÓÓíë¯ï<ã׿ô¥?{ýõ©©ö¿þëwë·þÓŽìp驪"‡¸öÚÆn¶z'Üà]QÎ\ZAÇi¤a˜„a†I¿%IÇY’äQ” ‡ñp¯yCªª¨ªªªŠ¢9¶MY–B(EQæy^h=¦©Ù¶iÛÆµ×6å{fQ”–¥kšjYº®k𦆮(ŠijEQ†Z–Šª*Š¢E.„HÓBU•ﺦç9¶mìÝÛ¬5ëu×5 Ë04yÑqŒfÓ6M½Õ²l{ÅHWˆ4ÍÏt»£H}·+SõÁZs‚Õ/=ËÒ;Wvêe¡þƧ:§>G¦íÛm÷R>ùó¼8uê|-aß[\ìÍÏûòßêŽxž}à ×É~ýsŸûÔ©©öÌÌž}û¼éio«Ã œ??5² †61M]6»5MÓuÙÍWTU5 ­,…®«eYjš’eEgý~¬("Iò²,Ò´HÓ,IŠ8N«|ùÆdÃÝ0ÔFÃr]kzÚB´ÛNQ”2.3úš¦èº&DiZš–¥ÇqjYFg¦©…a¦ëŠ|{LÓ¼(Š8β¬ˆ¢4¹'y^ôûqI߀‰Êq ËÒe²|ÿ~S×µfÓÒu­Ù´[:@‚ IDAT5Mq³,ËvÛNÓÒqLUr÷\׊ã̲t]WÓ4WUŲô0Lt]/Ë²× …EQÊ—U`¯ÚúgÏö“$ãñ½ò¼ãuÉGSl}ä-]W'Ñv]¯Î0 ùAßlZš¦‰q—_×G•öÚ¶AAæà«ïkr<¹@5vךªÂ%ü¦ej0ˆ³¬¨‘8ÞÁ β¼,…œ_Ö&Çi«–¯Æf;s¦/ß?%„HÓL΂D>ŽõÝ6Ãól9\„,àWƒ¢yž­(Ц©rä9 ™<…«òúò`6›–¦©òܾA†õåT= ¸d”²,/÷>˜T%êĆw±ªÒ¾^À]¬*¿or›b(öz+Öúõ;…+[ÇÖ×Lc¯¾jbÅK¿M\ª(¤ØLü¶«ôÛ|ÅY–nÛ¦¸èLüÆUúͬˆ+™A!ŠRX—½T™V¢´Ê ¯ÕºÏOÃЮ½¶!;§í¶#Ÿ3r²ŒNǹàUOºçïÕ‘Üj¼^ÓÔ½{›kvê/o¹~Miš?þx÷äÉ%™°?qbia¡·°Ð[XðÏÊr®¢(ûöµê û}û¼ééöÁƒ{¦¦¼mß…3gú?þñÇÏ;öØÜÜ£žéõ"ÇÑ~ò“~õ«_Õõ+nHƒ«ÆÑ£G§}ß}ÿ$ÐI’=òÈÙ¹¹ù“'—NœX:~|þøñ'dÿÚ0´ýû;î™>|xzffÏÁƒ{¼VQ”Ë}'pÚø£*ŽSù¶,'|?”g_¾?šS½e­&Ï£,K³,C×µVËÖ4Õ45Û6 CSŶuEQ„PLS+ŠBUµ¢(4M Ã̲´ ˆ5Mã,+‚ IÓ\îO’äAl¦Y/ Ò4¥Õ²UUmµlMSd‡½Õ²Ë²t]SaYFQ”–¥EazQš¦fY¡ëj’ªZfYQ"Mó²,â8+Šrõ!Š¢, “$¹À §<&òLO~LËó@ù'§å|ÛÖå§Õ (Š#¬w¶¼Þ öÏ®78¯îõÂ-…¹Ö;¾à¹ôO¿78…¾Ä ýÉ¡)D­€/ašr~ŽNåÕÐ\r4 !D¿E™e…=Â÷ò,å‹BæõËRø~(„Ø`‹ ò5¦ahrÀ UUª’¾ÌåË1ä` í¶£(£‘äxHªªÈÑä«L>3«L¿ÌëïÂáxò¡t€'½¢(ûý°º¸AÃ}ƒ€ûĵÜ·½ÍÕ+®ÜæÎwá«d›Tï­op6Ü'VÜ á¾ÛꪢâöâòÛ^ñâãòÕksKqy±¹¾®g0ˆOŸ>?Ùû ËEûêžjšzàÀ5õ„ýø¯==ݶ¬‹íΧiþðËssó?úÑãÇÏ?>òäRQ”†¡ÉŠúÍ7ÿÌáÃÓ'N{ÛÛî t¿«Ž=º°ðTß÷ÚwäÈ#Gžrøðô3Ÿy ÓY.2û~pâÄÒ‰Kssóss 'N,=ôÐB$BÏsn¸a¯¬ÞÏÌ왺å–ý²J \Fòœs0ˆã8 ¢á0‰ã´ß‚ ‰ã¬ßÃ0¢´× åycõ1*ç„a:Dy¾v›ÛqLËÒ«q\ª‘]<ϱ,ÝqLϳ-Ë0 MFóu]Ó4UößUU)ŠBQ”ªù^ޫ骿z™ ˆ×+øW&²õ–e†jšº®«†¡«ªÐuM Ùô—I«¢(„P²,/ËR¦ÏÃ0¢”/ö~?*Ë²Û ëãE­G6Êå>ÈÝpÃ4õVËÖuÕóÃÐ]×tòôfÓ6 ­Õ²Ms4Ó4uÏs4Mõ<[.yÁG¼ßŠ¢¨ÒêÕ—Ž0Leè¿× ‹¢,ËRÝ!Sì¢Öy—Ýö¢(ûýHÇYŽÇ\†àó¼è÷c!D’ŒØ<™Y¯ªëÕé}«e©ª*‡:Bȳ¯jyÃÐ SẦaèBˆvÛ‘Y×µ CU”QáݲtÇ1„†­ëê–öð˜ø‚¶úi?^fÅ3¿Zqõ ¤~Õ&‡v꯱r¨ƒ‰ogõA&¾Ê­9¼\Rö÷wë8\4J÷ƒAœç£Â]çõÂZ=ÆZeÝ„YV QuÕDÏ]†áätQŒêoãí¯Áq•ü+ËR†ä¤4Íe-Nã,[Îðu»ËKfY>Æ[¹Ç¦ªJ«åT-K«‡eë•1E²'™¦æºVmI³Þ#“u99]5æ$Ç1MS¯-iWKV•ºñάÁ·Z¶ªªÕn{Þò’² ¸•û \@5°D}¨†ífâ/¼Ö:+n§/_åÅÎeâW¯µÉÍ“Ø(J»ÝP~†ú~(_,¾?š³áUÁz¯MS›M{31ú«¾S¿ZžgÏö»ÝQ¡~\±Öš3y„UU¹îº– Ów:2Oïv:Ë ãúÌ'Ëa”irÙ¯¯Šö9{ÃÐöïïŒCöí™™å¢ýµ×6w0ÏÇÙñãO?>?7·077ìØc =!„m³³Ó³³S²®>;;55Õ®¯xï½÷¾úÕ¯¦t¿«Ž=ªi{î¸ã?üáéþðÔ¿þëI’†vÓMSÏ|æg>óÀ3žqýÓŸ~½ì2×-,ø²zâÄÒÉ“KÇÏ?üð¢üšÐn»²zøð´,àßtÓ§¸xÒ¹ø\¾Œ§¯¹ñVËvÃu-Ïs ÓqÌFÃò<Çq ×5[-»Ù´Çt]³Ýv\×r]Ãu­vÛq]³(Ê-õñw©¡ošijº®™¦®iЦiš¦¨ªª(Ц !F_e_>ÏK!JùÅ!Ò V^\JÕ—ß~?ÎóB†ïÓ´Ç°Û Äxô9VAõó—ÜB¾4², b1~ä«#Iò H63ÒƒTÉNÇ㟤äa¬ž‡­–­ªŠ|zËW–üEH>Ãu]k6-y¨«Bn­ÕrTUÙC~ZPº¸(2t%§ó¼¬÷ÔdÙJN'I†£¼ûDÏ]V±ät“z½¨*ÙÕñE±â†ªÒ™XU‡ïõÂêÿ'­g©‹¢Ø8ý¶U2NW]lµ,Mµ×ëuiQ+šIͦ¥ëk'ã CwÝz\Þ4Íu“ñõ%«¶Úxgì*ÚUu٪ݖu¶ñÎØÕnWÎ[ÌįnÄo{ÅíÅåE-É·½¸ü¶W$.+J¿…a†‰ïU¾V¾ôª|m¯†aÇ©ïËÖm2®ß¦õcêä ,®kÚ¶ÑjÙõ Ç1 »Ñ0mÛl6­fÓ²,£Ù´ KZ›M˶ Ù$ý鑦ùªfýšñúÐ÷ƒú •B×ÕÕñúvÛ­MŒ®òŠˆeYQϱõûËùxÙÉ’ÓUïI—óñY–×· [QRUÝoa½NýŠ|¼ïÛ¹Ãë˜Á˪”œ® ÑbU¾Ñ°V.¶Üy¯§¸êux]×êA[Y¤’êixMS›Í‰ÅFËÕ»ðªª>+®ÀæU¹ âòb³™ø-ÄåÅE÷åeüZ¬S{ß^&~ƒµ6^x²+вߣ(•õsyîÑíŽ&d]V&}?”/mYK¢lƒ—p-oj´ÛŽ|eÉ~ºü´­2©UuâªK|®Ly^œ=Û_/U¿rN0ñX¨ªrÝu­uâõ“s®šžeÅéÓçüqȾ·¸(ÓöþùóAÕðm·ÝqÈÞ‡ìÛ»š³¯;qbIvíŸ?vìÔ£žM’LQ”ƒ¯>räÀììôììô¡C×m5œúÀÜ}÷ÝÛÛ«ÁÀX\l,.ºy®ÌÌøìpé¾Ûµ~øšg=kQ׋jæƒvÒT}úÓÏíÈM<öXëÔ©Öõ×÷¨ê.g~þçþÝï~÷z×Êð}õø>øàBY–žg>ü3GŽ<åÈ‘GŽ<妛¦ªqª&$IöÈ#gçææOž\:qbéĉ¥ÿø‰3gúBÃÐöïïÈêýáÃÓ²€ðàµÛظZÉ™À®ŸÛøþ蔦~nS?牢lÍCê‘÷úY<Ï©>IåYM}¾mÛûX¹\ }ÓÔ-Ë0MÕ4uMÓ CSUE×UMSEQU¥(Jù¯eQ”YVȽ-ËRÆÊÓ4Ã$Ï×}ÖuµÑ°å·ªFÃÒu­Ývt]m6m×5-KoµäÖ=ϱ,ÃqŒVË6M½Ù´\ײ,ÝólÛ^1øß•LÞ«a#«/Ž^T–e–¾’Ëz»昦ùp˜!ä£V–BþÇ£Ÿ‡Ã8ËŠjˆGù+èÛ ùü4ÍÑon2Ú^ý:gYºã˜BˆFÃÒuµú.ˆ«~ësÃ4uU]q±v­iYÚă»gõëB¬–`{/ŸMþpQ¨ >ê@5&DýÇ„«/CL€+¥{ž4Ò4‚Q®½Š Wë}äÕýå5¯ªV™Øàz[›Øàê«V7šÅv3Í«÷ß«ª²´fÍYÔÒÌ«¯ª¯rɶ`=qœEQ"¶›‰_½ÖÖWÜæ»–iŽ:w[ÊįnÄo{EÞd€ ôzQ&a˜ôzáp˜„a2Æý¾œ™ú~IÄAôza¦rÉ HÂ0 â5·ÙlZŽcº®éyŽëšŽc¶Zv£1šÙn;Žcșͦí8†\Òq Û6êÉ ŽxýÅ ‚ä±ÇÎ-.öæçýqȾ·°Ð;qb©*Ëc55Շ콃eÚ¾=5å]ʃsîÜðÿïÓÇÒöss r'÷îmÞrË~™¶?|xú†ö^šì„3gúÿù??ðùÏ?ððËOúþ7¿ù¯|å³v<÷ŸeÅK^ò—³³SŸøÄ›ëóßð†OìÝÛüÿñ޹•¢(¿øÅïüéŸþ_EQþîï¾ì7~㚦îÈ–/F¯ýøÇ;vêØ±ÇŽ;õðËy^4ÖÓž¶ovvJ¶ïŸõ¬ƒ'›}?Õû¹¹ù¹¹…'–zhATfYúÌÌÞǧÜ33³gvvêæ›÷{ãuÛ7ʯôS…ò×hòƒ[šþgÍ1~ÖèÚk›;ž·¾\ }ÃÐLS×uÕ04MÓ4MUU¡(Ц©eY*ŠR–ež—eYfYžçEQ”a˜fY¾Á–=ϱmÝqÌfÓ¶,½Ñ°\×´,Ãóìêh›¦îºf­•oZ–ÑjÙULÿª<_Ͳb8ôåsrÐ/äï®AȰ¾ï‡Bˆ4ÍägŠS³h³}SÉYE¿/WÓ4Ïó7¹oò¡QÑn;ÕE!–/Ê“4y±ú ÓYqQlY-,/V¿W´Û+.î¬zMlªß‹â­¼ÕýñÌuù›Éè?‰Æàò¢tø©P5ŒÄ¦ñbýªû&ñ«×Új#^ìN&¾3Z3¬<¾¸vؽ>_¬vßÙ­­Þ €T½In&./6×—¿4qyMS›M[l—[ÌÄo&.¿æŠvIžƒA´a8uTV­·VÇ Öµß^TUiµœÕíTY6ìtœs«¼ê·„xýnèõ¢G=#ö ¾ ÙË‹UÎ^×Õ믿fß>ozº=Ù{33{¦¦¼k®i˜æe¨v†aò¿þש¹¹™¶Ÿ››_Xè !\×üÙŸ½þðáé*m¿ã5ù-ɲâþû}ö³ßúæ7rãöÛŸý†7<ÿÈ‘§ìÒÍ}îsÿó½ïýâ¿ü˘™ÙSŸÿ’—üå‹_üô?üÃ_ÞÁÛêõ¿þë¯ÝsÏ¿ÌÎNÝu×í·Þzãnüâ ‡ñÃ/?>?nß?Ç™®«‡í;rä€ ß?ã\÷Âq^ßäØ 'N,<¹tüøüO~²˜e…¢ÝvgfFáûÙÙé™™=7Þ8µ™m¸²^ 8T…(ã HÆ%a˜özáp‡a‰‘H–Çëä ˆí¶ãº¦ëš†ÕjÙrºÕr Óu­jD¢FÃj6-ÏsšMK–ß/Ù—_·³¬ byZ›eÅpgY1Dy^ ñÊeòñœ8ËòñZq–åãµFËl|»š¦˜¦¡ªŠeéeYêº.«õ2^ŸçyQ”e)ÆÝü8Ï×m‘™¦Þé8ŽcÊÓãz|â ¹6n^?¯nµU½ £ùÛP¸×/Ö?Y³ö¾É…Çó3ùŒÚä^ÉL¼ÿбf)¾º8ñsÊ–v]kTÈç|$I’‡a’$2‘ŸÅq†IšæAÈQž—ý~TF Ç*ðý°,ËÁ ÊsùoQßÔÆ7­(Šç9º®6›–¼/®k†æyަ)žçÈ7¢ú½ó<[ÓÔñU¦<ͦ¥ëêÕ:z‚Ò=à‚Š¢ì÷ÃêâzU÷M6âW¯µÕFüê«.e#^Ömª‹ë…Ý'êí—=O…¸2U!Ú‹ÎÄO®µé·ù>9A[ÌįوßöŠžD†Ãx8L‚ îõÂÁ –UÓ~?ê÷£ ˆ‡Ãx0ˆ{½0¹¤ïr:’57èy¶ã˜Ž3j˜:ŽÑlÚ­–œiÈò©ãŒÊ§ŽcVµSÇ1›Mëßý«Lšæ«šõkÆëCù8Ö×ÕuuxýûŸÚGª,ËÅÅ^=a/‹ö'O.ÍÏûÕ'¸ëš\++öSSm²—EûË‹BäyñÐC‹ÇŽ=67· »ö§OŸÏ²Â4õ›oþ™ÙÙ©*m?5Õ¾¼»Zyôѳÿøÿó _øû/xÁMoxÃó_úÒŸÝÕ³Ž~?ú…_ø³W½ê9ïÿíW=ó™ôû¿ÿ²ßøîø>úèÙ|àË_úÒÿ÷Ò—þìûßû 7ìÝñ›ØYV<üðâ±cÉðý~ôøp !¦¦MSw÷Ø4Ùˆ â HÂ0ñýQ_žIÊiyʆÉ`QÈ™aÄiš×·¦ëj£aw:ŽëZ2‚ßjÙ­–ÝlZ†ÕhXžçÈn~³i7f»íÊÅ®¨ï¡[mè'I†‰ü‰ â$¥ó{½°(Ên7(Šâ‚}ÃЄPt½z{åòËRdY¾ÞZ¶­›¦á8†ëš¦©{ž#§;†=XóET½óÈWSõ¦´ú%&§åÑïr}äù$ßšª1ªÚm·š9±€|“%ýÍ>êŒQºpåJ’, 9½Füê«¶ÚˆŸØàz[[µ{»ÒˆµÆ±XÙaë‡ÝëÉc±~Øý’m ÀO§²,eÝxÍ7ó-fâ·]¥ßæ›s•Ý©Lüšï«ôå\Jy^œ=Û—¹½Õ•Ïõæw»Ášo¤Š¢xž#“y­Ï*¥·^”÷·K#Ï‹n7èvƒn7ìvƒnwèûáùó£ŠýxþPF]'Šžg·Ûn§ãv:î5׸Õt§ãt: âõ›”¦ùãwOž\'ì{‹‹½'–üsç†ò˜+вo_«ž°ß·Ï›žn<¸gjÊ»2_,gÎôüã'Ž¥í}ôL¯‰qv|vvzvvêðáé§>õ:™½2=ðÀO¾ð…ïü×ÿúý0L^ñŠ#oxÃóo½õFMS/Í­Ÿ>}þ…/üÀ»ßýŠ;ï¼mâªÇ;÷¼çýéûo¿ûìgÏìÞEùÅ/~çÏþìKI’ÿþïÿŸo~ó týÝ÷Q…ïåà >¸P–¥ç9‡OËöý‘#O¹é¦)UÝZ›Þ÷Y½Ÿ››Ÿ›[8qbéá‡e{×4õnØ{øðôÁƒ{fföÌÎNÝ|ó~ÊÀU¬ßä`NƒAÔïG½^8ÄãáäŨšS]¬ÿ@-Éáªaœ «Ý•Ù[-»Ù´[-ËóÏsäôxæUòö"Êó²ß²,ã$ÉÂpTô‚$Ms™>ïõ¢NŒ18Ü ËÁø¬±ýÄÇ~$qLbœÄÜ|qˆxœã8v;ÞCصÃű} pÈŠe—éÙ™YÍmÕÒ¨»«ºî—®óÇ·»¦¦uI£ËŒæózôè©.UÕ”¦[RwuÕûDz•J%ÏsAà’$˲7wl_vf~þüýØ¿ùíßþ©7¼á{VõñÇŸü…_øÃ³gÿÕž=f.]ê}èCú©O}㯸ûýïã=÷ܶ7ÿîîqÝèé§/Ã3ÌÏŸ¢T¸;›;:7wlnîèý÷-Ž#mU’d—.õÎ[YXX9yr±ÕZËyÎp\%I2žç¢(aÙJ§ƒÁ MI’¥iÇ }_I’…aâûqgÅ«ªÕèðµ$qŠ"ªª$Šœi*’Ä+Ѝi’(r†¡Ðqf]—E‘Óu™JÓ¦IŠ"JgšWF¡€‚Ò=ì4x^HÓå{¹ÒË”ê½L)é»zþê°ïNoj;™àñ<«iÃðúšáÑÍ+_*ÒÀÌ:uà·¶Þ¦6ØÚ;pÃ*Ù^&~'ªôÛü«QŒö±¥LüêFü¶Wįz€Bƒ„a²^•2І7©WN7W'ˆáy¶VÓÇ”t“båtS–…±`%~¥ß€Òt°²ÒßF¿¾R©LO«ãõkÎÁ]¿ƒƒ|y¹Ù;í¶sîÜÊ⢽´ä,.ÚÅ}¤ëÒáÃõº9 Ù[Ô²Ÿ™©Y–º¿ßÂ6 ù©SíVk±ÕZ¤,øÙ³ËI’±lå®»êT´Ÿ›;Öl6Ž™¸IGÅ8wnåþ諟úÔ‹‹öË^vÇ[Þò²7¼á{ C¾öš»æmoûn×ÿ³?û¥5Ë¿÷{ý±ýù“O~`÷ê[ß:÷ž÷|z~þü[ßú½¿ò+?V«é{¼»'I²3g–ççÏÏÏ_˜Ÿ?ÿï\ôý˜ãØ£G'šÍµï_ò’™ëü–ã8}þy›~šVVZ­E(¢cf¦Öl6fgÇ׎ŸDk®G’dý~Øï‡¶í÷û¥ØûýÐuCÇ ' éÑÌȶƒ~?(Ð-hš¤ë²aH†!ëº\­ª†!›¦lÊØgÓT,K1 £w¬)ŠÒ ˆm;ðý8âb³~?ìtÜ^/ð¼ÈqÏ‹ƒ öýØó¢8ÎèåagƒÁ`lƒ•J…e+• S©Tf0lŽE®ZUE¤ƒ~tT>$‰/^?Ò ÌòÅ«ÎbÃP0þÁ­`ìX÷Øqu:²1v`|ìpzyÉòŠåÍz^˜¦ãï5I/I‚(r’Äs'ŠÜ`³,Ëó,ËVX–­T˜<ÏY–ͲAš&O’,Ïs"M³0L³, ‚d½‚ŽÉ«ª(Šœe©îWUQyËR§AE‘7M…™ÐuY8Ó”‹c5¢È«ê6L8xPº¸ùDQ†1M¯yßLá}õ*»³©îÅ—ƒq{“wßÁî<ÀARŒ_²A\žÙl&~;Uzf»e8ŽÕu™Y§ö¾½LüfÖZï_€M¥½žG!rª³-rоrúêêF9nrRÛ|°¾Z½Ü—o6$”Aß|¼ž=*6è×S-ñúÝ–¦ƒ‹»í¶= Ù;KK”¶·»]?އ÷še©£½93S›ž6 kzÚl4Ì›1g_Ön;óóç[­Å“'[­ö™3K®U*•ãÇ'›ÍF³9LÛŸ81%Ü~ïìu Ãä±Çþ×£>ñ•¯œš˜Ð~â'þÖ[Þò@³ÙØïýbþìÏæÿÞßûƒÏ|æ/{Ùk.ðOÿé£O?ýüg>óÎ=Þ1†aò<üñ'ý×?ÛïGïxÇßùùŸÿ¡›ýa°¦,\¸Ðmµ©}ÿÍo.¬¬¸ ÃÔëæÜÜ1 ßÏÍ«×Íëÿ·lÛ§êý¹s+ôCwúô’çE È"û퇨z?3S›™©ÍÎÞ6=m\ÿ? °Ï£&~Dü^ÏÙC× ]7rœ ×ó‹D»ã«_ïhšdšå¾lšJÑÁ7Meu+_¾Ù›½Æ\ïµçåËn¯ç¹n†I·ëõû‘ëQ”ù~´zSWEžeY†ahd–­dÙ`0ÈÓt¦Y–mT×u‰ã8ËR8Ž5 Y8UE”$^×eŽ«X–Êó¬®K¢È+Ѝª¢ p†!óÚ#I|µªŽ-ò•©)£^·F!{óøqJÛ[õºy`î¯NÇûÎw.ž<¹X¤íéàÐ!ýÞ{7›ÙÙF³Y¿çžÛLS¹æÖnßùÎÅ?üï|ö³ÿËó¢¿ówî}è¡~ôG_XàÚ_ŽþàþÆ«^õÂø_o™·¾õÿ=rdâ#ù‰½Ü±² ˆÿÃøÒoýÖëuóW~åÇ^÷ºïמì™vÛžŸ¿@áûVkqaa…aËRiàjßß}we+;òÏÙ¶O?TÀ_XX9yòyúûBÃlÌÌÔšÍz³Ù˜™©Ýyç´¦I×Ü&À®òÐ^ë=g.7ÙW‡Ô©ò¼ú©òØa4srR?£­ì’õî º¹æ}ÔéxkÆÁGQ{A–ÅJ…á8–ã8žg9®2ä äé€eÙ(Jò<Ã$I²8Î6NW*ÓT$‰SQU%Aà,K¡÷)‘ošŠ pº.)Š(мiÊ<φLMpÃyž3MÇxášèM±·Bè-zdìíZ²¼3z¯¤X+bZ,Ïs*ì_Ó( Ï0 “çÌ`¯ÿþ~E’xA`SQ8ITU”e^×eQäeY¨VU•4MžœT4Mš˜ÐMS¡ Êå—ߦØ{(ÝÀ®(g'¤êÃ0ý~8 ŠùÅ2ý~XÔ.\7̲5–wÝ(M‡ÓžÓ®ëzÞ•†‚ïGIre~šó¯Tì7n.l8ŠiY6³ÖLñ2¥/3Ìþ–§¯á c툼¦I<Ï®ÞÇ­[„×õò*"b‹[RŒ>²¥¸<³¹¾ü®ÆåyžÕ4™Ù\\žÙ\&~Kqy}yØ!I’¹nè8a¿öû¡ë³õŽ8ÎpšfÚvÐöûQÄåðöë»Ç Ÿ{n™öí¶M!{ºYäìyž=rdbzÚl4¬QÈÞœ™©ÕëæÄ„vð~ÀÃ0™Ÿ?ßjµ)mßj-¶ÛÃ0ª*¾àGfgEÚ¾^·ö{gw^¯ç?úè>úÄüüùãÇk?õS/ó›h4n¬ïô½ïýÌŸüÉ7¾ô¥_Ýà·ÇË^öŸþéßñŽÞË[mqÑþÈG>ÿñíû¿ÿî÷¿ÿ ÷Þ{x÷g/Q‰¾hß?ûl{0È C¾çžÛ(|?;Û¸÷ÞÃ;˜`NÓÁÅ‹ÝQõ~±ÕZúý°tóÊWǶÀó¬i*¥Ù0dš¶¬âC-nbP­J’Ìó"ÛF/±#ÏÞ5žÑœÑàp‘çÑÐqk Ç0Œ$ñº.^\‹ôî§(r²,Š"W©TD‘Ë2†ç+•J%M•J% “J…ñý˜Þ޵퀎ÃÓ;¹û­ëÏs–¥ÐÞš&ò»Di{êÚ_¼ØMÓ(ò÷Üsu±›ÍÆÜÜÑÙµ/äyþå/Ÿz䑯~á OU*•×¾öEoyËË|ðî°ÌøÔS_óš|øÃoyÛÛ¾o½e‚ ¾ë®wÿÞïýŸ¯yÍý{¹oëyòÉóï}ïgžxâì›ÞôÒ_ûµ×OMû½GûÀu£§Ÿ¾8?¡ÕZÿ¼M?Ý + +Åð‚À>\=~¼63S£,ޝ;6y>ì6i,|OA|ºiÛ~ùKôÊqì¥"ϳåð½eQ_­V‡4§¸‰ñB¶:øÔ¾·í`4ø\Ttó‹P>ÝžºnäûñêMÆ0PLS6MÅ0äòMÓT$‰—e^ùÁ€áy–e+ÅÁ„rF¼× ŠÔxÑ/,„aºq:ŸÆ9£ã ²,бwY,K)fÇÖûjµªa¬qØQ”†aœ¦×†¡QÜ\7ʲA&žy^ÜízI’®¬xišõû¡ï'aÓ£=Š’$É‚  ò0L²,OÓ4Ëò,  Ãä›ìOr\¥Ra9Žåy–çYQxž•$^’xU•xž¥ñ$èçtrRnjʨT*†!³lE×ežgUUNQDQäé=¬ò™!p` t_š1¡íÆ¿nÛ>UïÏ[9yr±ÕjŸ9³D!TQäo¿ýUïgfj33µÙÙÛ¦§oÅÁ àA㥭õ’a|N¦T‹.£¾ùš/%ÆæLLh·øß¾ëGc½;5ñC×hÜ‚±Q FŸCÛVçéY¶bŠe]ÕÄ}ÆñK­|Ù0U6µ‹,~1ÒÞzYüÕ_¥iz ¹n˜eƒõ¾MwuŸ¦‹ùŠÑûÖûªa(½v•ãa/.:®÷ûA§ãAâ8 YÇYñSày¡ç%qœ&IF þ,Äq:l¿cÉq¬(òǪªÀ²¬¦I<Ïš¦BGxŠ\¾aÈ,Ëjš(œªŠ‚À—¬D‘WÞäyV×¥J…5Myÿ—`“Pº€í‹ã4bš¦ë½i:â8Ƨ|?N’¬˜^o~’¤£u¯áËÛ ‚¤˜Þ\AþÊþÐé×ÿýý\†aD‘+.‰çyNÓ¤Ñ2l±Œ \™Ïq¬®K£åYM“‹éb>˲†!–¯èz1}e~¥R)®Ë-/ϲWæãÚ]€›å]˜µñÌ–3ñ׎˯³âvúòÅð*kd²½Lüêµ6¹"\8N‹œ5æúýÐó¢~?tÝȶýòM× {½ÀóÂ4/»éº¤ë²®K†!ëº\­ªº.Í” C¢ê\y¼†½dÙàòåþXk²ÝvÚm{ƒ~=Ã0¦©4ÖÑÉzݪ×Mý/o´¢n&¿ÿûýÑþy­¦ÿê¯þÝ×½îÅû½G7Š,<ûìR«µØj-ÎÏ_øÆ7žët<†aêusnîØÜÜѹ¹c/zÑñ]-ÎÛ¶OÕ{*à/,¬´Z‹tPȲTªÞ?^£_wÞ9]¼pëpœ ×ó'ìõ| ¬÷zã _§ŒÝ{™ãXÓT,K±,Å4‡¯GFsÔb>½T©VUŽc÷ëÛ<`\7+àÓ}gÛ놥9WŽiŒmçY]—é¢ö}ùþ¢{“VT«Ši*×üI§1Øv¦× éÍÇ ÒtÐï‡tr‚ëFI’9NÇi$žÅqæ8A’¤¾û~Lñ þÃyž3MYyE CÞ0dED‘7ME’xUUU’$Þ0dzKÅ0dQä5MRUQ¹[d<0Øôæf$a˜8Nàûq&ý~èûq$4š}ɶý Hèˆb&A{^ÇézïKr\…ç9žç8Ž¥ñh°<Ïó<ϲAšæI’dÙµ+šÅÈ4¶ÄêÁ'Šù/ÌގÄ@ëAé`ÿEQ†E/~£¾-³ÙÈûp#[ÝÎúÙNúvµr)~Í.SêØ2ëômÇ–ßííÀV Ù²¥LüêFü¶WÜö_ØâOêf2ñ«ñÛ^qy€›Â`//;4\¹*nÛ~ѧç*ëµÅ†E~bB-zâÔu*GÆé9C¹<ާ· <Ï—–œ±~}ñHk·vÛYó1&Üä¤fYj½nÖëæê~=W75×.^ì {z$´ÛÎÂÂJQrä8öèщrÂ~ôa5–$ÝXiï½äûñSO]hµÚEÚžþÓ4Mºï¾ÃssÇfg‡iû[¹YùÌ3Ïüã_{ì±o-/»¯xÅÝ?üòW½ê…7ÅÃfeÅýøÞô¦—þ‹ñ¦—üèGÿüãÿÚ×¾öÏ÷fǶªÝvþõ¿þÜþÏ_ÿ¾ï;ñ¾÷½ñ/8²ß{t#j·íùù óóçés»í0 S¯›Íf£ÙlPû¾Ù¬Sµs—ã‹,, Ã÷­ÖâùóÁ gƲTú}Bü™™Úììm7ÅÀÞˆãt¾lÛ/:ø£\þUY|ÛÆzn†!SòÞ²Ô‰ u4­LL¨Õª6šP-K-†W‡BøÅñûýÆ3 ›4M‰|z«¨Àó4ª:êà+«o–9nÛ»š$™ïGA0lå'Iæy´qÝ0Ž3× éO¿DQêû±çE4Z!½ëdÛA§¾¯÷OP(_×%Qñ%‰·,EyU5MEÞ4ezßÇ4eAàu]RUQ8ËR%‰WAÓdžÇà °ógØÊ·mŸÞQíõü0L|?vÝÐu#߃ ¶í€~R\7ÅôãÕÃZYD‘EN–žçE‘Åa4¿Ra9®ˆæ3£nþ ËI’%IEi¦¾ÑP|Û^F´âº‹áÇ nR(ÝÀqCZž×"z^”¦ÃiÇ ‹“«‹KÐóœ)®ŠÌ²ë†4¦×h:I®\0Çi”ñÉh’Ò\ùGûý0ËòÑt@U‘ë¤ëÇ /¢6M™e+ ÃT*ÓTh&ÇUt]¦iQ¼/ÇßUU¾Ø`qý¤i*Ô[©T˜bƒ<Ïéúp#‚ÀáÓu˜ÅE‘MK×s™7Å_Õ âòÌf3ñÛ®Òo§/ϲÃP˜ujïÛËÄo°ÖÆ+À­Æu#ª³Q‚mTj z½ ˜.·Ûúýpl ’Ä›¦b2}®VUÃMS6 eì3UÛÐTºÅEQº¸h·Ûöš#%Ъؗ×ây¶VÓËÁúzݪ×Môë$Ç ž{îr‘°/í‹ϳGŽLŒBöµìgfjõº99©ã8!Ã0qœ~÷»ÏŸ<¹Øjµ[­Å¢…-ËB³Ùh6ëEÚ¾^·ö{fK Q IDATg÷ŸçEŸþô7yä«óóç™ø‰ŸøÞ7½é¥wÜ1µßûµïz×'þûæ¯ÿú݆!o¼ä/ýÒn·üÿÚ›ÛžoûÂûÞ÷™¯ýÌ›ÞôÒþÏ_?=mì÷ÝÐlÛ?yr±hߟ:ÕÎóÜ4åÙÙÛææŽQøþ®»¦9nן€%IvéRª÷TÀ§>Ã0‚À>\¥ê}³Ù˜m?^;vl’Þo€9NHAün×§¿z=¿Û¾†êõ¼^&|Ï‹Ê+CÍ•RøÃ›Åü‰‰áë¬]"å–•$…ïm;è÷ilƒ«n:N`ÛᨌŒeåE´,…:øôÊw41œišJ1šà5Ÿ^zSŒÞ£tx¥a˜ÐøsÅW{½€&ÊC!+:Îø° eEÚ›^ÚK_ŒHg‰T«J¹ú]=±y'Ÿ\'Ï‹‚ ñ¼Èq‚ ˆ}?î÷CÏöñ{½áLÏ»ª_¬µæ6MS‘eQQxM“e™—$^ę̀Š, • #IBžçÇU* ÇU²l@IOŠæÓ›ÔA§iæyô9 r:3m½:ý”I§("}Îó¬¦Idž\œ²E£ßѹaº.skšr¥R©VUZ†eYÃyžÕu‰ç9M“vö?` J÷pmåkí®®ÄÓ±Ì:iÚÕóËËo¼­od;ÉÚ5q[äà‹°,³NÍ–¹Všv·7°Q”†aÌ\w&~ã¿Ú®¸Í¿Ô¢È+ŠÈl1¿º¿íñgvV’dŽ[.†SkluFœºx«ŸD±lejÊ(ÅÊñ")^ôÅP‡BùáWɯùÀ+r«ƒõ.G¿þ  òåå"dï´Ûιs+‹‹öÒ’³¸h]—ž(öå¢=e× 0ä§Nµ©.ÝjµOž\<{v9I2–­ÜuWŠössÇšÍÆ‘#n¤ìK_j}ò“ÿóóŸ* “W¿úþ‡~ùƒÞ}Ó¥·ŸxâìÞð±~ô'ßü殹ðÞðѾðÈ?øæ=رëôÅ/~ç½ïýÌÒ’ó‹¿ø·ßñŽWJ¿ß{tsè÷Ãgž¹DáûV«ýÌ3—’$îŽ;¦¨zOŸ÷ìo«mûEõž†ß8sf‰~Eþ¶Û¬f³Ñl6ff†üzÝÜ›8¨Ö?0>gi©_.ÅŽ¬ñmlN­fà)å.I’lT½'èõ|ÊâÓèƒE%¿X Ôæ8–»olÝ˪*îË7¸º‰?VÌ·mŸbúóÇÆÆ³º˜OïÙG´(‹¿qOŸêÞ{ößã„AAâ8ëFAø~dÛÃ>¾ëF®;ìãÛvàû±ïǾ9NèûÑšo|ó<«i²e)ª*jš¨ªRµªªª¨i’¦I¦)뺬ª"ËV4MªT*ôl_ØJ…MÓÌ÷ã8¦Ÿ¬”~”â8óýa.?Ër× ƒá)|¶0 CCS8ÎpþÆeQzÛÞ§%UÓ4‰>óqâЉÓwÝ5}âÄÔÑ£“è)ìÇ {=^Üu»~¯çÓë»nw8Ñëù½^ÐëùA—W”eâéEB}bB­Vµ‰ urR›˜ ubBC§x·¥é ¸ãz½ ×óŠ{æ—ïÍ4+ G÷]µª•_°f–Ëø7Üýè8A¥¾{^E©ë†AGQjÛA§A÷ûa§®QÝÛ¶:€æ8A§žû~”$Ùÿ„ªŠ¢È[–BýnÃ7 YQQäMS‘$^UÅéiS×e]—TURšã²,躴gÿpð y¿?ÞÇ÷¼Øó"ÛöiÂ÷cÇ \7¤›®:NèyQq°¥LÓ$j⛦¢ëÝ4 Ù4UUUÒuÉ4M“4íªÅV¸+F¡(HA?_ôAÓ/S¸âš?ŒLiøŠb°ŠÕcTÐåèÌ5—1 å¦ßà‡Ò=X¶íÓD’ ½|æÌR§ã1 #ÜÌLíÎ;§ï¼súĉ©;ë®é½ßC€[Y¥E9}”§–ºWDÕ{=¿Óq',¯¨ª"½rœœÔ‹þè•£V|É4qÊÇ^pݨ¸³ŠþØMºgÇIɲPŒ`Wzá?Û ZÕ&'‡n¢×wtŽ•¸ûý0ŠRß(î8!½KKé|ß]7Šã´ßéÔ/Ûö£hxúVšf«à1 S$ïiBÓ$]—$IÐõ+š&Ë2¯i’®Ë’Äëú• M“1ÒlÛh`Ô€«a˜Ðp•tªáêù¶í‡aÚïƒÁùÐb,Õ±‘S)OãdÐ åù‡·ÙÇð6úÅ·°æ[ èßÚqükôoÀAA”î`˃¼ß¦Þ£(+"Jž¥iÆ0Lž3E >ŠÒbßéò¤r,¾¸ª)ÅßË[ ËK hºèïÄqvõ;–7M¹Ra™«‹íÇêúðò]AàTuØ‘/ê± Ã¨ªxuG~xI˜e)TŽªT*EȆçÙrG¾ÓÓÕV4­iÏ_٠LJéöW’d¾1[ŒË3[ìËïF\žçYM“™ÍÅå™Íeâ—¸¡P¹¾Ü¬wœ¦mÛ_=³‘ÐaœjU1MŲÃM³üY6Íá—ŠùÅq!€ AÜíúÝ®wù²Kñún×ëtüNÇ¥=Í)FÛb†ãØ¢t35:uªýü׿ø‹ï¾öµ/úµ_{ýÑ£û½GD»mÏÏ_˜Ÿ???áÉ'Ï--õ™Qø¾Ùl4›õ¹¹cÍf}_ưI’ìÒ¥ý&\XXYXX9yòyÚCAà®?^£_‰33µãÇk33µ½ßIS.,S6}iÉY\tŠ›tØdy¹_N*%eËR(£L#c7©´>=mbXµ=$Y¹‰O÷Úh¿Ûõhzõز,ÐуÉIµZÕjµ+ãMN^5HÞæØ7‹¢²Ýë {â¶ЛÑEI¼œçîõ†ô%× ³l°z³ô£AAírOœæT«ÊÆ_2 …eñ#›ây‘çž9NÐïG4öƒëFŽø~ìy‘çE¶ЄçEý~躑çEåcŒE5MÔu:Ö-麬ë2 ç`Y ý@sèÀ¸¦Éº.gKîˆkô‹úÿ& ûëýœŠzþfâø«—)~~‹TUÂÁX¥{€D¥a3¥Z+SJ¸2k•^™kUbwh یƮVdd™uÒ®E–¹VO¶¼…õ6²æ˜µò² ³ps*ÆžYó¯ÿ3ñÛ®Òoç©ByÄ—ÊÄo»J7—$É:·b£ Í)T£™þØóU–­LM–Eå)¾\a+gÚŠ9xÒ[•¦ƒ••>= ‹Âxñˆ¥þøêGf½nŽ= szÚ,? «U­nYyž/-9£–=…ìívÛ9wneqÑ.Wª*=:IûzÝ¢=í1xê¶eÙàÙg—æçÏ·Zmª9_¼ØMÓDZwÞ9=7w”ÒöÍfãèщƒ—ƒÜmAêSßøä'ÿç7¾ñÜä¤öÖ·þ­·¾õ{ïºkz¿÷kgdÙàoühš{ìòü¦üàãþçßùË¿ü•ÝÞ·Ýó¥/µÞóžOŸ;×ùÙŸýð~D×¥ýÞ£ƒ†Â÷Åx§Nµó<7Myvö¶¹¹cssGçæŽÝ}w}“©¶íSõ¾ÕZlµÚ +§Nµi|tËRgfjT½o6ë³³;ïœ.Æ€mû« øc/{;/I²òZ–¥®.àÓ+ßFÚž6«UerRGxodÙ€Ûëõün×ëvýn×ïõ¼n×ït¼^Ïët|úÒX Û4eo¯”¿×FÃï©TÆŸ˜ÐÀØT›·q+ÿš_ZYqÓtíV>¥·ËÇ-i‚ælü%ü4Á5eÙÀuCÇ ‹V~¯çû~ìûÊ'pÝaßu#Ûö]7rÝpõ !,[1 Å4e]—4M¦D¾e)tS×%]—hPØQ(_6 É4•½Åó¢4Í\7JÓUï'Ès¦×óóœqœ€þ+ÒtàºQ’¤¾ÇqÃn~$qœú~”$Wmdƒ‘N‹ENUEQäE¤ŸPE%‰×u™çYWÓèK‚®KÇV«*DZº.Ñé+š& »gÿQ;¥{8ølÛ§‰ƒ‘ç8V×Ç òÌZáWæ:úï›/È3hÈÀ–$™ïGÌ3ñ?Øb•~›O!SU‰Ùn\~Û+â‰l`ãr}¹µq¹Þ²zRŠr=ì’,\¾¼å„ýê´öpMƒA~þ|‡öôA!û¥%§œ³7MùöÛ§F9ûaÑ~zÚl4Läì¯_žççÎuZ­EJÛŸ<¹xöìr’d•Jåî»ë³³f³N]û'¦Ð¼ßþö…?ú£ÿñÙÏ~Ë÷ã×¼fø¡ºç€ý—þþïÿõ>ðÙÏ}îÝ{ïáM®ò¶·ýΡCÆÇ>öìêŽí¶$É>ñ‰¿ùЇþTùô~ô'òûö±º~à9NøÝï^šŸ¿0?~~þÂéÓKY6Ð4éÎ;§›Í:µï_ô¢ãûþ”£Ý¶©z?*à/ž?ß r†a,K¥êý¨€ß¸ë®i p³ˆã´è§w»^·ëu:Íét¼"ªÞízôkŸˆ"?1¡MN+ê““Z­¦Ó}>tHŸœÔ0Ê^ Ä‚øŽßëy++Ã8~¯GMü"—ςÀMNjôQ«µš6º©×júè&RìC×ÙÊ_=°D¡ÁÊKiNµªlü%ÃPðŒÖT~ЮuÐ~1hÃ0uœ`uét4úìøH´ÅptµËáÆÅqÂ<ôzAžçŽ y¿O¹ü0MžÅqq¦ôŸE‰ïÇI’Q[ßqBªêAEÙÆõ|JçÓ™6ª* gš ϳ†!‹"¯(‚ªŠ‚À›¦ÌqƾªŠë„õÅ}·”î`ûèš šÞ¸Ùʬ“€‹Åïèv "_©TLS¡éëï¿_s ÌZ‰Xy†É²ë†ÌZqyfË™ø-Äå™ëî˳lÅ0æZ£Ñl)¿ÁZ¯°v°\?V´A¹vÉÆ û^ÏË‹“Í$ìñ… ¤éàâÅn)aï,-9 +í¶]Dë*•Êô´QNØOO›†uüx­^7ñèÚY—/»ÏM”CÞ’ÄONêj­¦×j:%Ô'&´òÍÉIíFè ßR'ìt\º;·Óñ:oeÅ]YNÓhå± t]:tˆ:øúÄ„:9©:dÔjÃéÉIýÐ!½8UÖ“$™ïGý~†‰ïGކa±ã »özð@Gbƒ qœ â0L'ôýh½P¾®K²,hš¤i’¢ª*™¦¢ª¢ªŠº.†L}mÓT4M¢ù¦©¨ª¤ª¢®cD ç8ëF®ºnäyQ¯ç{^TÌqœÀqBÏ ]w8Ó¶Ï[ãñ)œ¦I–¥èº¬ë’aÈš&†lšŠaÈҮ˦)[–J7o–? Å(”È/Æ åòÓÕcc”(ÆÀÃtãz¾$ñ²,ÒyDthTô‚Æ£X²ƒâû{ù¿7 ”întyM{^L×rŒUæ‹ÈŽãt…X– \7*-ŒiÁ`Ð·Ðï/x ýþp t9Diœa˜<8Nxßϳš6l‚Е4­ë2DZ̰;\@9U^¥ªbq½„i*•J…aŽ»²p9êªëm­R©X–2ú§9M^½¯(¢(ò£­É,[a¦RaM½¸uÅq1³ÝLüNTé·9t Ÿ3l)¿ñø4Û«ÒyžÍú^Ï‹€;N`ÛAñÙq‚4½*§Âó¬i*¦©X–bšJµª†LÓ4³¸IŸ5 ]$ØÛKØ›¦ÒhXHØÃŽð¼èÂ…n‘°§Ça»í,,¬Ø¶OËp{ôè%ì)gO!ûzÝj4,Iâ÷÷[8¨|?~ê© ­V»HÛÓ=¢iÒ}÷ž›;6;;LÛ[–ºß;{ äyþå/Ÿz䑯~þóOqûæ7¿ô¡‡xà;蹃'Ïó·½íß=ÿ|ï _x׿œÏœY~Å+~ãñÇÿáK^2³«»·—NŸ^úÀ>ûÅ/~çG~ä¿þë?~ü8bå{*M§O/ÍÏŸ§ðýÓO_ò¼ˆa˜zݤêýÜܱïùž™C‡ôýÞÓ!Ûö©zßj-¶Zí……•gŸmû~Ì0Œi*·ß~ˆª÷ô‹úÎ;§ñ à@²mqѹú%¼SXqq±7vÞÚØ tõº5vó¶Û¬âô0Øyž—«÷++îåË.MSŸnÒ9 „çYªÞONÒ`Ãiºyè>9©×j:ϳûø}Ýì²lມçÅQ”ôû¡çÅa˜¸nèyQ$¾õûa&¾;NàûqÄý~亡ïÇA4Ƙ¦¬(’¢¦©èz9…/ªª¤iÃiE)J>Z@F5ÊÂ0¡ð½ãý~T¤ðûýÀqBªäÓgÛúý°ßúýpõ™E’Ä›¦Bƒ4ÐûTÉÍ”èí‰r+ÿ`¼¬ \>uóËe|uxóaýn×ãÎ×*Òùt¨¼è棗»ù‡õqð àÀ@én]i:ð¼+÷ÍdX™µJ¬åÕ™µò¯ÌZ!×õ¶°íœkAyE™u ­L)ÉʬÕi[xÍZëš[`ÖŠ½n°°¦â)ÊfâòÌæúò[ŠË3Û}BÂq¬®Ë̆qyf‹™øÍÄå×\6VŽ×µ¿WÏ)FÜ,±oŠ…‘ú±f=UìF n(HØÃ Åq‚çž»\$ìËEû¢þÆóì‘#E¾^7ëusf¦V¯›““:‚n»-ŽÓï~÷ù“'[­v«µ8?¾Ýv†‘$~vö¶f³^¤íëuk¿wöÀ:¾óÿãÿøô§¿qéRïþûþÔO}ÿë_ÿ=~Àé÷ïþêCúÓÏ}î—gg›_ëŸø›w¿û“­Ö‡Þ/‡/}©õ¾÷}æìÙË?÷s?ø÷ÿþ+‹ñËaïµÛ6Uïçç/|ë[ —/»L)|ßl6šÍÆ–·{ Ý¶©z?*à/^¸ÐͲÃ0–¥Rõ~TÀoÜu×4Ç!€ pðQ¥wÍãÅÍ•·<(£$ñÕªJµh¼±âWq³V3RßKa˜á{Šàw:^§3ìàÓt§ã W’‰µšNüéióÐ!crR›ž6¦¦ š?=mªª¸ßÑ­ ÈaÓOÜXJ›~i:XWÌÃÔq‚ÕÌÕÕl:dGEìâ¨Í/RÚÕª"Ë‚i*•ÊÁ> 6¯\x{³c½™kÛPþ3Q7¦&ûš3§¦Ìƒ:zSúIß Œ¿É°~¿”)~”ËøÅ{¹ŒͰ¾¦Éø#°_Pº€½EiÆ4í8!­ž¦™çE4Óóâ4͆ɲA¿?¬ÏAÇà MqEOÓʼnïI’ù~<ÚT”$Ã0ƒÁ ßF›Š‹MõzÃ*S§A_Ï÷eY*MHGqy†at]¦K¦yž-Nš&Q‰ R©É:ùž¦«U…&ŠN=Ã0†!Ó%<ÏéúpSª* Ë0 ˲ÅÅÿtŽþØÀæíT&~“cÞ¬µâ6G»¡‹ý˜ífâ7Õf«+À>j·íƒõ£9þêWkÖ[Ê-û" ^Ø å„½mí¶3öÀ^'a/7Õ±G/ÅÄ‘°‡‘çùÒR²wÚmçܹ•ÅE{ì©ëÒáÃE¾\´Ç/Ͻ4ä§Nµ)‚ÜjµOž\<{v9I2–­ÜuWŠössÇšÍÆ‘#H_í¶$É>÷¹o?òÈW¿ò•S–¥þäO~ßC=p£å³wÉ3Ï<ÿš×|ä—ùGßùÎWniÅòOþË3Ï<ÿØcÿ`—vl¥éàÿøëþðŸqûË¿üê·½íoá­íA¾§_›§Nµó<7Mev¶Aíû¹¹cwß]¿ÑŽI’]ºÔ£_øEŸÆ2îðá*Uï‹þñã“H Ü‚Â0¡xú(›îv»~§ã®¬x++n§ãÑWé„C"ËÂä¤61¡MMêä¤>9©MNjÓÓf­¦ÕjúÔ”yàmºQ eÅ]Z꯬ôWV¼ååþòrŸùKKNq2*Ã0Š"Öj /W«éõºIü©)ãÐ!ªäë7Ús›[ÊX”¼HcÛvPô× å¯yp›ߦ3ré áXÿštÓ90åL9 ¼•Ù¶ßïGý~Øïý~亡ãŽ8N躡ã„ý~èºa¿:N`Ûë†å¡Sˆ®Kº.†lš²®Ë¦ICK†¡†\|ШÀ4S’ø}ù~÷—ëFišÙv@×Ðt¥™Ï éw‚ïGI’9N¦ƒ~?Œã4Š™a–eŽnðÑï]—xžµ,•ÎäWQ’xÓTD‘SUIÓDQ¤›¼¢º. gš2gš² ðÅIû°y(ÝÜÄ’$óýˆ)R™R5•Y«ÊʬÕWeÖj³2×ʳ2kZ™ëˆ´’J¥bšÃæ{‘OeÖ ¶2k¥W™µê«ÌµÊ­ÌZñVýV€]¶úÉÌfâòÌæúò»—çyVÓdfsqyfs™ø-ÅåÛöý˜ý§ê}³YŸmœ81|!Ç WVúŽW|PT½Ûõ©ù²ë8A±¼(òµš~è>=mŒêÃþô´I-u¼Ùca˜Pÿòå~§s¥ƒ¿¼Ü¿|¹¿²â®¬xY6¬T³l…î¸C‡ô©)£VÓ2èÞœš2 ÷àl,”oÛ#Tå¯ÐÖ‚H/Ë"Õð©O‡"©—]~,Åôy:,)Ë‚i*KéV3táªÁÊoÜ”x¶í—+Êoß”`XóœjU»5ãø sƒ€rùaš'ˆãáÌ8Nûý0ËEXß÷ã$Éz=?I2ß=/ŠãÔqBº×ûWEEÞ²Aà4MRÕáÍQ_¾èã†,м®KŠ"}MUUÂ_¸u t°®Á ï÷‡×&íh~<ÃZ^Y+ÆÊìDµ œªJÌV:òÌVBð×_¢€Ý“ç9]}½ñó“Íeâ×]ëZ+nóùL »ÎLü&GÐÙ`E€m»f¼¾4g¼_x=ܘƒ¼Ûfàº]*ÁyŽK7;ïòe·Óñô‰ ubB›œÔ&&´­Ö6ñ¹sYa²wÚmgaaŶ}Z†e+SSF½nBöæñãµzݤQðÛuß¹nôôÓçç/i{ºïj5ý¾û7›ÙÙF³Y¿çžÛŠÑµa/¹nô™Ï|ó‘G¾:?þرɷ¿ýûüÇ_zøpu¿÷k¯ýæo~îw÷¯¾øÅ<3SÛÒŠý~xß}ÿìßþÛŸzÝë^¼Kûvã8{vùCú³Çû_?ò#/xÿûßxûí‡ö{`mô‹·ÕjŸ<¹8?~~þ|¥‚ÀÝqÇÔÜÜѹ¹cssGï¿ÿ¨¢ˆû½§ëj·mªÞ/,¬œ;·ròäâéÓKºµ,•ª÷£~ãÎ;§yžÝï]€T&4z_iÜ>Ƕ}ziiÛþÒR¿(û‰"?1¡Z–Jƒ¥ àW¯[‡WQ¿ÝKyž¯¬ Ç0XZrèÖÒ’sù²[ñi€25e:¤×ëÖÔ”1=mÖëæô´Q¯[‡醥i/çæ“¦Ï ' ‚Ø÷ã~?¤¶ïÇŽ3]7òý8bÛ(œíºQ¿ ãÝNÓ”UUÒuI×eà CÖuIÓd]—LSÖu™¾¤i¢i*†!kš¬i"<·”4¸nhÛãý~HÓý~è8ãŽ:N@_¥iÇ VÇ`Yªiʦ©Œ>+†![–bŠeɆ¡X–bšŠe)†!›¦‚?.[Òï‡I’õû!åHÑü¢oÛ~g¾û~E)-†‰ë†qœ¹.ÝL×üA*•Ši*’Ä)Ѝi’(ò†!Ó™Šº.K§i²¢’4ì㫪¨ª’(r–¥ÐÉŠ–¥H#¿è (ÝÀ~Šã4bf‡Cðk”è×\Y«»Ê\wJžãX]—izãüšyæZ!øÍwä×ÛØ{I’ù~Äl.¿Ég;[¬ÒoóÎê1r6—g6×—G\ ß{=¿×ó»]¿Ûõ6®Ø]Þkšr)UŠ=ªß°Ç//÷Ûmçòåþ¥KöÊJÿòe·+ŠØhXSSF½nNO›415eÜv›U«‡é¸ãž(J‹ü½ï'¾Ùvày‘놮¹ndÛ¾ëFÅœQÙ<Šã«NÙ¢ìµaHš&Qß² âSß4]§¯Êš&Z–JÅ|I«[E&å·–èäÀõFMîvý±Ç³ÖÀɲ,H’°æØÉ8ºƒè¼Í0Lz½€&Š{0ŠRºgÃ0-[ó«tó%‰—eQ–yñšîhš 9k~©¸÷eY0M/o`— tpkqÝ(Ë2†a¢(£Ä<Ã0EÐ!:Ñ9Ëý~H3=/JÓÃ0I’ú~±J@'ÕÁ /VqÝp´JV¬â8ÃvO_™éyÃ%·§è®2 £ëϳ ð,kÃ+ŸE ¯+•Še)4³`-NÕNÓDš©i2mŠã*E³^QÄâ Ò¦„Ò¦dº.…ç9M“¶ýMÀN ò~?`6="Ά™ømWé·Ó—§ ™k {³¥LüÆcí /°¦ ¸ª_O½žßéx4¿øÒXFÄ0ä«SõW5ë) ‚x=ì£<Ï—–œ¢‰Ón;í¶½ê¦_>¬Á²•©)ƒÆEm­xTS%œú)ûø}Á-…öôQíÏ[Y\´‹‡®ªŠGNÒã³^·(dOE{ËR÷wÿaMY6xöÙ%*ÚSÚþâÅnš8޽óÎé¹¹£”¶o6GNp»ßû Ã0ËËýÿò_þæÿøoNŸ^ºï¾Ã?ó3¯xÝë^t+ÿˆ-/÷_ùÊõò—ßõ;¿óöm¬þž÷|ú«_=ýÅ/¾kÇwìF6äŸúÔüàcI2ø¥_zÕÏüÌ+èœ ¸)dÙàÂ…n«µHíûo~saeÅe¦^7çæŽQø~nîèM1‰mû +T½?yr±ÕjŸ>½äyÃ0’ÄÏÌšm?^›™©5›õûî;¢ë8;¶ƒ:¶åüýâ¢S.ã//÷‹¾­(òêØ™"ˆ_¯[‡WÛßïèÖ‘¦ƒ••þÒÒ0ÿüóöåËîâboyÙ]Zr––:•ˆažgk5czÚ¨×ÍC‡ŒÛn³ÒêÔ”~øðÄÔ”{íVSŽ_¯Ù./š×E¾|ÍÚu9rMf‹Â55¬%IX]6¯Õ ¼È:ÀƒÜqÛ'pœÐq‚ÑGØï¶ôû!Í·mŸ&²ìªË78Ž¥wµLS±,Å0dÓTLS1Íá„a l¦:³vçEI’Ñ/Š(ºRÃwœ€†Üpœ0Šßûý0ŠRÏ‹F÷áÛqÉNRC)„+ -l[è[zX¶»Ðc{mËöø=z_Ûîw¿½Ønù±K· ¥%”]h9 ¥W¡¡%&—•؉oÝÒŒF3ºfæûÇGž(vDZ|¼Ÿ?ü4ã1HÑxfôúHõOG4dë+å²LQ”#Ùúp8Ì ÃBL&Æf«_–ªâéõñ„½^§]µl³™èg0KôZÞh4hëq8Ì4@@¯¦3óôÚ:3¯N§Ý€e«R©Ñu–‰×–Zð‚ ‹Ë“†]—ùdâç6â¼ âòK¬TªjÍzÚ¯§ñú\NÌç‹ýúY`:·ÛæõÚi­Þã±y<õéY7ÑÞ…&ªTjÓÓ\"Ái]$Z®o¼©N¢XÖ»`‡Ù`m¼¹–›ÅÐ,Š¢Žg‹ö4dŸLò9{§ÓÒÒâ¦ýz­h ²xÞ.ªªŽei×~h(>88qèPªZ•u:]g§7  ´Ó®}OOÀå¦VS{lð'?yáùçZ­Æ«¯>ë†Îèhöv5™ªª7Þø_±Xü©§>¹°îÛ¶mÿçÒK£_øÂ_/ú¶-¢X¹ýö§¿ÿýßttx¿øÅ«/»¬¿Ù[ ”Hpƒƒ4|‹ÅGG3„—ˉ„´öý† ¡•rålj´z¯ð‡‡“ôz-—ËF«÷Z?m¡—Qœ A('“|&#d2B2YH§ ™L1“)¤RtB ãÊPF#ãó9‚A6tú|Ž–·ß_¿é÷;Ãa—v½.,ž— >•*Äã\:-$\*UˆÇùTŠO& ¹\‘>L§ÓŽpØ ±mmî`mmõ„Ãl8ìjmõ`4hDÇÆ˜›Â?A7?›-ÒÏ)4:q"ŸŽ`j6´Â‹Ñb1øýNœìX•ŠÅr¡Pâ8©P8®T(H3)|©1”¯åòE±2k ô™Ã²õÑpYÖz‚›ø+©)$©R.׿™Ë¯Tj‚PÅr©T„Òrùv»Ùl68‡Ãlµšl6“ÓiµZV«Éå²Úl&‹Åèp¹w)ÿSÀ’AéVY>R‡?A>•+„JŽÝB­Ï!ÇŠ¨’×°.0¥JÑëuNçì’ûÜ.*9V•«ŽzÌŵeɼ“¬°²h;H'»wt‚]£“¯Ò/d§HÛ:æÉÂ2ñ ®ÒÀÊ%ËJ:]Ъ.4õÂq"-#k7óyqÖ_¯F#ãõÚik#vƒ,­º4&¿µÎK³~;M¹\Ëf…L¦˜Jr¹b6[Ìf‹¹ÜQ7³Ù"-oR6›Éëµû|ŸÏáñؽ^»vÓëµ{<6¯×áõÚWJiVŸZM™œÌ5$ìùd’Í$œ–åÒétÁ 3r…B,-Úƒl8ìêìô…B,þ}^AÒiaß¾©¡¡zÚ~h(NG‹Ñh MÛG£áîîËZš½±p\‡§ï½÷;vü)™,lݺá†Îó›7á•HÝyç¾üåÿ}ðÁmÙÒ³€Å“ÉÂë_ÿÅ»ï¾e-GÞ§¦òßüæ¯|ðå­[7|å+×D£áfoœ*ZŠ×Ú÷&Eu:-}}-4|†ûúZL¦“>,J##©C‡RÃÃɃ“‡¥GF’‚P&„X­¦žžÀúõžž ö}aã^œ@­¦d2B6[ïà§ÓB2ɧR…TªLòé´N Z`Ðj5…Bl à œ¡Ëïw„ìßOo²~¿ãŠ-™J¥–L¦§ót”Ê©©|"ÁOMå nzš«Tê®ívsk«;rµ´¸ZZ\¡ÛÖæ …\á°+pâ ¼¦ZM)Kù¼T,–¡$eA(ó¼T(”´9…B‰ç%A(Ó9…B™ç¥¹aR›Íäp˜ív‹ÓiaY«Ýn¢¡j‡Ã²z—ÝnbY«Óiq8,v»Éé´b´†Õ§Z•iŸ¦ð陸™/‘ç¥|^ây)Ÿi%¿VS§ƒ(Ì„ï-,ku“ž•›ùÂØ¥ËÈ|rù•J­X, B¹\® BYJ’T•¤ ÇItñc®™e-V«Éj5±l½ƒïtZìözæ^#ËZm6³Åbt:͇Åj5Ò†>Þ –'”îà¸èUÎdvÀôä’©dyåFïpÔ? ¿(AùXÉ ¬5U€Õ¢\®•JrÊ™øS¨Ò/pÉd2X­&²ÐLürÙ­·þÕÂÖððï|øÃ÷ìÙóu§s­öðç?~ñ‹ÿ388þ®wmùô§ßêó9š½E°h¡¼wïäààõd×®ñJ¥f42ëÖÚiûþu¯k§§2WD‚NŒ¤FF’Ãéááäøx–ŽÙã÷;z{C==žž@oo°·7ÔÑáESN·R©šHð‰G+%œvÜ)™ä§¦òô}ŠÌˆéðr.—UgŽþIÞÚêÆÛÖÒÈd¾Ç¹D‚›œÌÓÿSñ8—ÏמŒßïlkó„BlK‹+v…îÖV7À‘@8E´UMÛ÷'Ñb5ÃqÒL4¿T,–y¾Äó´¤_–¤Ê¬õèt:–µº\V‡ÃL#øôËá°¸ÝV§óÈ–µÐh> ­>¥R•žÎ›{‚oÖœ\NÔ†úÐÐ÷¦cž×›5Çëuà}jù£Ï‡R©F'ÊåZ©T¥Ïr¹Z*Uóùú„Ó§OR©&¥ÆÑ5f³Áb1Y,z.Œ>gè}nX,F³ÙèrYé%ÍtÂl6ºÝV·ÛŽ3§J÷Í·ÄAùY+DPV–¹ûN'ˆË““ìËŸÖ¸¼¶§t²»I'ØGZp• ‰´¢÷1ó´}üšýú¹ioôëa9«VåLFÈf‹É$O'²Ùb2Y Ó™ŒJñ‚PÖo42^¯ÃëµN¿ßáõÚg¦^¯Ýçsøý–µ6ñ7˜‹ç¥Ã‡ÓZ¾±h¯åì }[›GKØÓÉ»º|¡‹&ÑJW©ÔöÇb‰X,>88žHð„³Ù¶D"!-m ¹š½±pr^zidÇŽ?üQ¬¼å-7Üpþô2Œ¾ÙÛµ¼”JÕ·¾õ;v»ù¡‡>b0,ð?ÎÇ?þÓ±±Ìƒ~xq·m…RUõ—¿Üõ•¯<\,–?ô¡mï{ߥx›X•ªUyd$588>88188¾{÷¤$U }OOp` = G"á³ÏîöxìÍÞÒ“V­ÊããÙáázø~d$9<œL& „£‘éèðöö†z{ƒ3üß`Ii)|í/wí¯øD‚Ëd„Z­^•5› 3ƒÒÕ‡m¬áûýNüupº•JÕéé|<ÎOMå ~zš›žÎ'üäd..hÿ§ü~G[›§µÕÝÖæéèð¶µyèv3à´’e…–ñiø¾P(Ñ/Žy¾$¥B¡D'x^*J' ÇèVÓ¾Ö¾w:-,k¥¡|:Óé´8V§ÓìrÙèü‘¸:Ôj Ï×Ïò¼”ÏKôæÌ„Äq¢6Ÿç%m¤Êd2¸ÝV:¸‚ËecY+½É²õS‡n·Ý㩟I´ÛÍÍú5aÁŠÅr©T¥#mHRE’ªù¼X*U%©Z(HÅb¥TªÐ|$©*IÚÊ—¤ Ï—D±<ë CÑ9ìv“Íf²ÙÌ.—Õf3Ùl&»Ý̲tÚìp˜YÖbµšl6³Óiv:-6›Éj5³ìZŸàPº€5ªP()ŠB‘¤zôR©IR…ÞËq¤zÆTQÔB¡Dg BY–eBH¥"‹b}ž—è•ZUQTž¯¯GËÕªB©VkÚ"'Ñk7N¥,O/°£Ó6›ÉdbÈѹy§Ó¬×ëICüT§#‹BˆÁ w8êWm:ú‘“É`µÖC0n·NX­F“É0ë§8fú1]“É`µšö»À²¥ªGvlN9¿à*ýw™ÌfƒÅb"§œ‰?õ*=ÀZP(”h¹;—s¹b.WÌåÄlVÈçÅlVÌ狹œ˜Ï‹Åb¹q)«ÕävÛ<›Çc£É ÇNç¸Ýõiz“ž¤X>TUM&ù9ã4HÉ$s4’ˉ•JýЖN§ t„­ær¹Áí¶ºÝv³OuXŽè~&dÏ'üØX&çè^;„k·›ÛÚŸOpSûe42ô„£ËeÓò÷Ú—ËU?Içãýku¨Õ”b±T(”%©2«ƒ/eQ,‹b…ç¥b±,ŠQ¬pœDg‹ís‚³8fZÃoÌåÏ$òM‡Ùé¬OÓ1<è4ËZìv •Àê†Ò=,YV¡~ –w/˵šLz¦ÕªL³&ªJ´”ª–¤ÅJ¥Bûòõ$½,«G¯V% My­ŽZ­ÊÅb…]h=Yz½Îé¬×áív½ªÛhdl¶úÕ®,kÕé9*(¯Ó>if·› †ú"v{=ïtZõziè¢êõÙz³Ñ¨ŸóS,3‹ — °úU«²(–ÉBãò ^ðÔãòƒÞn·“ŒË“ùõå—h ޳Ù"ýÒ*ö™L1›£öÕª¬-b42^¯ÃëmLÕÛsö3-{D½a™:ÙŠ=!„ÖêQ±‡M–•‰‰\"ÁÍ„ìùd’¦í¹Æ'<ËZ»»ýZÂ>déÓ>f‘³_•’É®]c±X|h(‹%JÑPTW—6yiÚ¾§'€LÞJ'ËÊÓOïÛ±cçOì6ô×^û†n8` £ÙÛµ¬Ýu×sŸûÜ/î¿ÿƒ^Ø»à•¼øâÈ5×üûó϶»Û¿ˆÛ¶:LOç¿ñ_=øàË[·nøÒ—®îïoiöÁÒI$¸ÁÁ‰ÁÁqú=‘à !¡Kß}hû> éè¥{+lj´zOÇ¡ôl¾Ëe£Õûh4ÜÙéëêòE£-øƒ–ƒB¡”Lòé´Hðét!¦§óÙl‘Ž—Éô@1Ãèý~gK‹+d[Z\€³µÕ°­­î@Àé÷;šý{¬rt7ƒØÍhŽgµ~8좻ÚáÎN_{»‰gXn*•ÍßÓ‚9Ï— ZƯŸ™/q\ý{ã+BˆÁ oÌ߻ݶ¹M|·ûÈM\ƒº:”JUzf‡ãDŽ“òy‘žÜ™;'•*Ð5f³ðÏòÐs@n·Íå²Ò9^¯GDW+IªˆbEÊ…B‰ðé¿<4‹Ïó¥b±4+‘/Š•|^’¤JãÙCÉd°ÙL.—Õf£¹|“Ûm£6›Ùåª'òív3ËZ³Ýnv8,N§™e­+úЬ(ݬN ‘we¦$òÎó¥™(|ý©J¥&IUrt’>Ÿ¯?¾X,ÕjZ;þ¸Izž—V{T’þdétG‚ïN§™^'mµšL&©—ßMäè.¼š×šòZç”a‡£^Šw¹´ÕZfVkœY­®–>l&[oÂÃÖEQ ‰4ÔÞÉÂ3ñ¯½Ôq\H_¾qj±2ñs—šç‚°Rð¼4=ÍÍJ9ÐðMCëAl»×ëðùìëõÚ½^»ÏçY:áóÙ={#€ù«Vå©©¼8k¬žiO{N :C!×LéŒíìô…Bl(ä …X ^ÝŠÅòž=“ƒƒZÚž>1¼^û¦Mm‘H8 Óê.ÞñW“±±Ì=÷¼ðàƒ;ãqîœsÖ]wÝ9oûëYÖÒìíZîvíÿ뿾í£}Ó'>qÅ©¬çk_{ä‰'v?óÌÿ·X¶ú¼òÊØ¿ø?ùËè»ß}î§>õÖãuQwîrÙ-·\2ë­êðáôÅóë_¿öÆ/hÖFÂR*JûöMÑð},–Ø·oªZ•Ffݺ­ÞÓï«ãÏØJ¥vèPšVïiß¾)A(B\.[W—¯«Ë‰„"‘pW—oÆÕjjö&W©TM$xm¾xœO&y:=9™«Õê±i—«>Òª6ðžvÔ"`Oqæ’e%•*ÐþÄDnr2?6–ÍŒe+•!Äã±wvz»ºŽÊß·µyø†UcVè¼á„ÚQsÊåj©TM& ³j®óÏ{½¼pV®jU¦Ï„|¾˜ÏKù¼˜Ï‹'ærÚL‘Îç8Q{S£XÖâvÛÝn›Ûms»­tÂå²y<6—‹Î´y<6Çn6ãàüšÆó’ ”¡$åb±œÏ‹ÅbY›Cï-Ü,J‚P¦ï×t:ËZN³Ö¾gY«ÓI³ø›ÍIJV–µ4„ò-.—Õn7ãß(X”î`%©Õ”b±DŽÕ?%ó+™sÙ“OÒ/°‚Jê‰R™_Ï”Ì;iºà$=¬e²¬±w®Nv蓊˓SÞ³ÒëuN§•,Æ®†ê€•EUÕd’o jРМâÆQ {£‘ñzíZhVVC›‰Ã°‚‹åTªÉô+™,Ðx= Ùg³BÖCÜn›ßïðù>ß‘x½ßïôû>_½b¯Ó¡+MØÓ/­hOSqÚ{ÑÈ´¶ºgBö.š„£m8—ËÖÜ퇥§(ê Z´§i{šdýúõÁvš¶DÂmmƒAßìí……Põë_äoþæìð°={&ïºë¹‡~¥X,oÛÖÿŽwœ}Å›1ÄÅü©ªzóÍ?úóŸÇž|òŸý~Ç©¬jd$µuë¿<øà‡Ï?ýbmÞ*V*UøÃ?|ï{Oìg>óÖ«®:S»ë¦›î|ê©=:î®»n¹ì²þ&n$4Eµ*Œ¤ÇiûþÕW'J¥ªÁ ïé Òä}4~ÝëÚÝîÕ³ÿÃqâÐP<KŒŽfÆÆ2CCñáá¤,+„Pˆ¥Õ{:bMg§¯³Ó‹¿z`Eà8‘¶ïµ3_œÖ•¦½µü}c ?bƒAïz‹‹ãÄÑÑ ÝåÐ&&&rtÇCw§³Ó§MਬzãÄl¶X­Ê jc'ó ¯ö<Á»hªUYJ<_*J4‚/Šež/ñ¼4Ê/ B‰ã¤b±4s³¬ ÜÈl68‡ÃìrÙ³Ýn¦¡|—ËÆ²§Óʲ§ÓB»ùN§…e-8ß(ÝÀ‰T*5IªEŸ’¥êŸBFïpXÈq"ï Ž™žJ’ \®•J¯±‹u:ö¯N}çÊd2X­ó³gžãî,¬J°ú(ŠšJ½FÂ>‘àg}μ±æÓ˜½p¹¬á°+déMTD{-4ö>hÊjæuÁ5á4ô>Ÿ£ñU³Á ‹Q`5Qu|<ÛXv£!ûY¯§ÓÒÒâ¦ýz­h ²á0‹¼È7:š¡]û¡¡øààÄ¡C©jUÖétÞH$<0ÐN»ö==£‘iöÆÂ"ÅÊ?x÷“Oîùû¿¿èk_»vîòyqÇŽ;vìïìôÝxãù×^û†–÷ÒoêJ÷¯ÿúè~ðôüã–-=§¸ªû·ÇvìØùÇ?~a²ùK$¸o}뉟þôÅóÎëùÒ—®Þ´©íw¿ÛýõwBÑú_üâÃoxCws7š«VS†‡“ƒƒã±X"‹ïÜy8—+BB!v` ƒ¶ïÏ<³3p6{KSµ*OMåiõ>‹ÓÝ€D‚'„˜L†în?­ÞG"¡h4ÜÓD4V–|^ŒÇ¹xœK$ø©©|*ÅOMqÉ$?=Í¥ÓZ]'„x<öPˆmiqƒlK‹;p´¶zg[›;`õzìu/A(7„ïÓtb|äïam’¤ =ßwtÿ¨Ö9Ï×'èGù4ƒ¾±€ïrY=›Çcw»|÷zmt¢Y¿ œºjUÎåDŽs¹b>/ærô«˜Ï‹Ùl1Ÿ/f³b>/ærEúa ËZ<»Çc÷xêOƒ9Ï›×kgYk³~5Xþh¿X¬wðiŸÎá8‰N B©X¬wóy^*J³Æf „4Dð­N§Y›v»­ÇœÏ²–¦ü¾pš t°LU«²(– !ÕªR,– !µšL'ªU…Þ¥ª*ÇIôñ‚P’e•"Š•jµF)—k’T%„(ŠR(”èÃx^¢'Š‹Å2½”DK j?QUÉÑ«U°ýf³Áb1B ½ö1íƒÓ‡™aô„«Õd6!F#c³™!z½Îé¬_8Ųz ±Íf2 ¤!{j00 «µÎ¬ÖBWk±-ºZ]-¬qµšR,–Èüâòd~}ù¥‰ËϹgn#žœd&~>qùc. £ªj6[Ìd„l¶˜ÍS©B6[ÌåŠ4O@ïÊ劂Pn\Še-^¯Ãç³kmÇîõÚ}>GãMiaeI$8:¢­usœØµŸ5œƒ^¯ œ.בf½ÛmÕ¢ötG/aÕ¨Õ”ÉÉ\CžO&ùÑÑL"Áe³E-BöôE1²wuvúðrX¹ªUù‰'v_y勵ÂLFØ»wŠÆm‡†âCCqž—!€³¯¯…¦í£Ñpww™U)箿þŽƒµšâp˜_}õkôê,BˆªªÏ>{à'?yá׿ޭÓ鮼òŒë®;ç 7 ò¸0÷Ý÷ÇþçŸÝvÛöw¼ãìS\•ªª^ø/o{ÛŸýì•‹²mkÊ«¯N|ñ‹ÿóÒK#W_}Ö·'&²Š¢BôzÃa~ì±O¬[hö6Â2’Hpƒƒƒƒãƒƒ»v%“2¾D‘Hh` # ­¾1'8N¤åÙX,‹%FG3$h=Óå²Ñê=íÏF"áÞÞ ½`e‘e%.LOsÉ$?5Å¥RüÔTžFð žxC1™`mmu·¶º[Z\­­ž–W8ìnoGqȲ2=Í5¶ïi ?›-BŒF¦³Ó·aC¨§'°~} ·7´~}ÐëE›à(•JMëàkƒdkM|ž—è¥iNw¬Ö¹Íí¶{½¶ÆºÝŽ!¯V¶R©ª==ϸ5ŽÀqb2Yhl›Í·ÛFÇKp»mÚ0ê³FU÷z8 óÔøT,—k¥RU{ú5>!é]'¦ÓÂÜO+ó™I? <÷éêvÛµ#Þ°Ü tP§(j¡ ‘Eh˜.iùTkÇÏ'`JN²|Jæ—L%ˆŸÀqhA¢EßÅš÷‚ ÜËÒ†íYX&þ˜ø/ËYµ*g³­Õ§Óõ–=žIÛ Ùl‘Æ)–µúýÚ©÷zë¥ Ú¯×nzŸÃçsN:´C àôût~ Àj# ,.ž/Ýu׳×\ó†övÏRþÜb±<1‘Óö4@“Hð££í¬Š^¯ëèðÒ„}0ȆÃ, Ù‡B®pØ…~Ç*ó裃_úÒÿLOsþëÂþçJRåÕW'b±MÛÇbñD‚'„Øíæ[£Ñ°–¶×®2‚UìÅGnºéNIªÐÆ™^¯»í¶í×^û†ÉÉÜý÷¿ø‹_üùСԦMm7ÝtáÛß~&ËZ›½½+Øÿ8ü®wÝ~óÍþóo?õµýùÏ£W^ùݧžú䯭§¾¶5HQÔÜùùÏ?T(”C: ±?þ ŸÏÑÄ̓å,‘àè{(mß8PU•e-ÑhËÀ@ÇÀ@ûÀ@dž ¡ÕZ¼¥¿þèh†îEŒeÆÇ³Š¢Lk«; G"á®._W—¯¯¯%p6{{NI¹\›žÎÇãÜädnzš›ž¦ùxœK¥ ô1ƒ>dÛÚ<--î–W[Û‘¾ßïÄH0§ˆç¥ááÔÁƒ‰ááäðpjd$9<œªTj„·Û¶~}°·7ØÛìé öö»»ýˆ,ÌS±XÎåÄ|^Ìf…\NÔ"øÚw:3Ÿÿd6™ ³Røž¸¤¡|·ÛævÛ0äö*Àqb<ÎÏ*à7&Èé¨0ôdͬò¸6"õ¬æ8‰“U,– …ÏK…B©P(ñ|‰ç%ú¥Ý„Ï— …ÇIçèÇþiX«ärbãÇþYÖ»Žùí&ŽAÁÉÊd„ÿøÙ_ùùÏÿ±¹["åÉÉœöBh|EЗIãÁaÚF ÙY/Zîv»­x9@³¤ÓÂwþþÎ;ÿ Š•Ÿÿüƒ[·FýGð¼tøpZKØ7íµœ½Á okóh {ú2éêò…B¬×ë@x¾´ÿÔàà ß'eY±ÛÍë×#‘mߟqFç*~:U*µC‡Ò´zO øûöMÑ‹«].[W—îltvúºº|ÑhË*þOk lj££™¹sÆÇ³’T¡q¹lpB!WW—–ñ1Zç‚Ñÿòô@ÇØXfh(N÷Á!.—î{tuù:;}‘H¸·7ˆñLUÕ|^-ãsœDkø'ò¼”Ï×gζÁhdèØ 4O;ø³úø wÙ–A^+ozÓ¿½ï}—¾óç¬ÊŽ?¬h(ݬiªªò¼D!fºt T­í¾XSÄOàÔÍÝ­"§sÏê8 .°/ïrÕ¯Þ^ôý«“]Ö jU~ä‘W¾÷½'HBî¼ó½o}ëÀÒüÜ©©|"ÁqœD³õ‰¯ÝœÛìÖëu€sn§[ëw#Û §ÃáÃéÛoúþû_ªVe‡Ã‹}ó´þ8YVÒi!› >2!‘à2™b:]H$øLFÈd„Z­^Îe½Ïg÷ùœÁ 3pú|Ž`¥A“Pˆ¥Ñ“eØ­€5nr2÷ƒüöÞ{_P¥VSôzÝw¾óžë®;g«RU5™ÔÚg|"ÁeâqnÖ;ˆÝnnkó4д šv‚֠ÇӟÿüC¿ùÍ^†ÑÓvÛñžªªjEûX,14?t(U­Êz½®·—FíC‘H¸µÕu×2UU¿ýí'¾ýí_Óé£ïÔ}v×-·\rùå›Ñ#^¢Xù뿾M–•‡þØ¢ä,«UyË–¯ÜxãŸøÄ§¾¶5ëk_{ä?ÿówÚÎj#†ÑÿÕ_m¾ãŽ¿[þ™*XnŠÅòðprh(>Ó¾/—kƒ¾§'80ÐNÃ÷›7·¯ú¦lj4>;:šiìÏjC7E"a-AÛÕåköö,2Žãq>™ýÊåŽ|o\Êá0û|ŽY5|Ÿ¯þÄðxlô9³”ÙÜsÏóŸþôBÔÎNï‡>tÙu׃ý«I©Tå81Ÿ—8NÔ.9Îqîç°ÌfƒÛm£‡Ð¾vAȬ9M9!>1‘Û²å+:±ÙÌï}ïÖ¿ÿû‹ÂaŒ| ËJ÷ÍÄü‚—ÐT«²(–ÉB÷޼à©ÇåFÆf3““ÜG"ع€U$›-þèGÏÜy硬(ªªªóÕ¯^sÓMžâšy^šžæèG”i¿^ûÄòÌÍ£>®l0è}>­kŸIn¼³èÃ{òÉ=·ÝöÔË/6ô´×©Óéú?&Óµ´ÊÏK4ÃÝ8ºÃÜ×…N§ c9„Ãl0ȺÝGæà 3¬,»vÿßÿûøÓOï3ôÕªLgšL†üò}ìÍÇ[J–•‰‰M˜ehÔŒæì§§¹J¥þ’aYkw·_Ë™ƒ,o0W6[üÆ7~uÿý/êõ:í©H1™˜›o¾äsŸ»*™,ìÚ5‹ÅiOöСT¡P"„tuù"‘p$ROÛ¯[ç_ð;¬>årí#¹÷ÑGw)Ê1ú!F#ó¡]ö©O½eé7lURUõ£½ïÉ'wÿò—ïí .Ê:}tð}ïûñsÏ}yè;t(uñÅߤc‡“^¯ûà·}ö³W.åVÁêS«)ÃÃÉÁÁq¾ß»wªX,BB!–Vï:^ÿú.¿ßÑì-=íèð´z‹Åit4Cföiõ> E£áÞÞЪ Ö¬“Šàk|:½n]Àé´4wûW UU''ó##ÉááäÁƒÉX,¾wït.W$„ø|ŽþþÖþþ–¾¾ðÆm‘HÈjÅŽÀ)Ë™ŒN Zå<“ÒéÂL÷\H§úùYJ§ÓÑê½ÖÁ~¿#`ƒA§ßï …X»}1G¹æšÛ^|ñÁ ×étÛ·Ÿÿá_ÖÚê^ÄõÉ5¦Æé€Áqzv2›-6'Ÿ›×NÙk7[Z\‹rlü»ßýõw¿û$=Ñ£×ëM&fûöóßÿþKÛÛ=§¾rXAEåy‰Vï9î¨ m>ÏKù¼ÄóR>/6>c !F#C‡jp»ëßµÁffÒ/û"žÓÙµkü-où¶¶µšòÆ7ö½ÿý—^tQd±~À‚¡tklj‰yTP`AE-Ž=`9;Tä4ìS‘Ó¹[uâÖ²·Ýöäÿþï+:9ºñjøÈGÞtë­WoAEQS)~îçáµr7lj³*öF#ÓÚꦅîc~>bqÔ–ZMyè¡—o¿ý·û÷O L­vÔGåwîüâñ²¬¤ÓúºÈçÅd’ÇùÆWJ.'jUn½^8µ—ƒ6AÛÜn·Õí¶›Í(Ã*±sç¡o|ãÑ^8h42só×_ÞW¾r ÍtÒ„=í‘Íj¬ÐáhŒŒ&ì;;i• ï#0_ÕªüŸÿù»ï}ïÉR©6ëŸwBˆNGZ[= £Ϫªj2"‘P4ÚÒ×îëkFÃÈëÀñ¤ÓÂM7Ýùê«ãthœcòù¯¼òe†Ñ/冭Vßüæ¯n¿ý·÷ÜsËÅGkï|çíV«ñ®»n^¬®AøÀÝ?ü½^¯(Ç}!ètºï|ç=ï|ç9K¹a°ê%­ÞNüå/£é´@Â÷t”šh4ÜìÍ\"'ŽŽfFG3±X<KŒŽfHHR… ±‘H¸«Ë§ ÞÓÑáÕëuÍÞd€Ó¥Z•§§óñ879™ŸžÎOOs““¹xœ›žÎ'“Ú~d}8ìjo÷ttxÛÛ½íížövÀàvóÁó¥Ã‡SCCñÁÁ‰X,¾ÿt*U 3;‘Hx` = G£-8Ö ÐDÕªÜÐÁ/d2B6«uð é´É™LQ‹âZ­¦`а~¿#f}>g à …X¿ß ²€ó¤ŽÆŸ}ö—§¦òtÚ``dYyë[>ùÉ¿ŠDÖÊŸi+‚Ä?úŒÿQ×d2BãÁÏÆ ¾vrSëãÓe¼^‡ÑÈœàç~á Ýu×s§†QeÛ¶þ~ôM眳î4þΰ’IREëàçó"ÏK¹œ˜Ï‹¹\1—kü^„rã‚6›I âk5|šÂ§}|­•ÿšL~ûÛýÛ·ßÑ8‡^WÐ××òÁ¾ñê«Ï:ñ“à´Bé–T¹\+•*d¦Rºüó„—ËF˜€f«Tjôƒ‹5ZÏÉ/¸À½)£‘±ÙÌd¡»F ^ûTËÐ3ÏÄî¸ãw¿ýí~ƒ©Vgr4™k®9릛¶f2M¤Óm:“ÒéBãçFïõÚ½^»Ïçðû>ŸC»éó9}>»×ëðzíšž°ð|éž{žû៉Çy½^wÌFçw¾×ïwd2ÅxœËf…tZH$øLFH¥ ©T¡X<òê°ÛÍÁ ë÷;ü~G(ÄÒE8ÌÒK0ÈÚíæ%üåš@UÕ§žÚûÝï>ù—¿ŒÎ7Bã÷;y^ÒÆ`YkK‹«µÕ ¹ÚÚÜá°+vÓ ·Û¶„›«Í#¼òÕ¯><5•W”ãæìvó>pi4ÚÒ××ÒÝíÇ Ìlj믿#‘àN¹'„¢ûÉOnÙ¶­‰6kõºãŽß}õ«ß~ûß^uÕ™‹µÎ‘‘ÔE}ãÇ?þ‡7¿yÓb­s­QUõw¿zõÕ‰½{'wíšÏ*Š¢×ëF¦R©6fuFÿÓŸ¾ëÖHó6V9-|‹%††â$TUeYk4¦íûŽ BkªðžHp´z?SÀgE5™ ÝÝþh4ÜÙIó÷¡Ûü¡ «_µ*Óäýäd~r271‘˜ÈML䯯2ôZn:àâLûÞÛÑQàwtx­VS³7Yã8Q ß Å÷ì™ÅŠÁ okóÐð=-àG"!n í¬¥R•Ž>ËqhìžÇãyž/ÑGŒ×kw¹ê5s—˳Á «å΃A–¾ÆUUíêúä¬SF#S«)Û¶õâW¼þõMøUaAJ¥j6[ÌåŠé´@'r9m!“©ßÔÎõúSÅáõÚèÅ^¯Ýëux<6úÝïw~ç;O<þøî¹Af£Q_­*ýý­øÀ¥×\󨇫Vå\NÌ狳Røô9œÏ‹¹œH0ëÃz4yïñо¦ðgæØ=ÛK/úÒ—þgîù&zÄÉí¶½÷½[ÿá.Æ™Mh ”îNäé§Ÿ>xð`³·àµmÛ¶­···Ù[+/+täyž—TU­Õúág-x*ŠõpœH©ÕÚ(—ë(ËôƒRù¼H‘åÙ„úèާCæ/)ί]Šg³™fͱZ¯9g~KÍž°Ùf?VªînrùåÍÞX‘dY„9a\žœÎ¡zÈBûòz½Îé´’ãÔÞO߀=Çû‰p=ý4Áõ-°ìÕòP­õîŠ ==—N§s¹¬ô¼³Ùl ú@ÀIûõ^¯ý¼Ý¿uÚMv»Ùf3Ûí&¤ºauˆjÿ‘ ÿôþK¥ªªžèƒ¿V«Q’ªF#ÓÚêY·ûHÈãœ]¿q9ÍV«‰e-¸ÎÖ8UUŸ>(~ëw©W&%FOäÆŸ[[ÝŸþô[[Z\¡«­Í£]eÔèÎ;ï<æàó‘J•{,ÜžÜ! IDAT12RœÇcuŸùLÄb9¹nÎÍ7߬×/<µƒ«åW´ñqé¾ûÆ%騻Öd¦k£×YV7nd¯»®m ·n1âó|±ìرóc»ï_þåonºéÂE\í×¾öÈ#¼ò Ÿ[&åëÇÿú׿nöVœ’jUI&ˉD9/Åãåx¼T©(„†Ñɲj2én¾y]0ˆ¿%—Tww÷åkò:^ž—öíûÁÁ‰ƒŠ¢:æþþÖh4Ls«gžÙi2š½¥K*—+'‡‡SÃÃI:qèPªZ• }{»··7ØÛ\¿>ØÓܰ!ä÷;š½½K§\®ÅãÜØX†“Hp‰?6–¡ãÄBÌfC8ì¢ãÄtuùhÙ¹³Ó×Ñá]&P,+ÕªL“÷ûöMïß?54Ÿ˜ÈBB!vãÆÖM›Ú6onëïoíé 0Lóÿä€P5“Òi!•âS©B&SL&é„Hðé´É´a ={ àôùìn·í±Ç^=æ iÊü¬³º>ó™·mݺ!—ËI’´„¿œ.¢XÉç¥\NÊçÅ|^â8)Ÿ—$Iá¸m‹ÓïôÙâõÚ³Ùã·§o¬Á û×n¾M¹,ÌÒý°öˆ%_Rrb-'ÉYQΉrN’ó’œå| -;ÊÏçEºO»2™bµzÜ2ŒÞl6ÞtÓ7÷3-ÙÉ%üU`M:ºá€Ò=À‰lß¾ý¾ûîköV¼¶{ï½÷úë¯oöVÀ‰b…žMä8IU‰¢(…B‰R©Ô$©‘oÈÐÉ­–ËõˆâìÐ5”˵† ½¬ýY–i†~þìv³ÁÀB\.«NGôz½Ói! mS»Ýl42„–µêtÄ`ÐÛíÒÐ9µÙŽzÀ̪tt‚þ—Ëf{âW÷ßtŠÿIf»újòÐCÍÞ8 Úx<§˜‰?…*ýBâò„“É@Û1 ËÄ/b•ÖíÛ ®oe¬¢cî±½î¿mg2xæóøÍ›Ûþë¿Þë÷;Ž]±7Im!Ço–§ †½Ã~Ö}¶Í’îµË† £¿õÖ+Þýîs}>½ã(xuB©ý÷[~d?#«·êaT¥¦;Q©Êí¶íÝûõ¯Óh4Öðú‚±ZûœÎ­ C ­Šªª:݉‚8™ÌÏ*•é“ú•JÅh\ø9b\-¿rY,Üî+f‚!eBˆ¢Ðï%BTE‘f横ZQUUQÄbñÏÍÜâSpŠÏóEñ‡? ÝxãÝ|óÅŸÿüÛqµÕª|öÙ_þÛ¿½ðÖ[¯XÄÕžŠ‡zèÚk¯möV,2†aF¿Áà7CP§Óe2?—e¡ÙÛµ†\}õÕá:^B¡¼wïd,–ŠŽŽ—Ë5£‘Y·.00Ð>0Ð10оysû1Ç^ZÝdYÏŽŒ¤LÎäOaY+ ß÷ö{zë×{zkml€J¥6=Íeâq.™äil,31‘“e…BÇFíìô…Bl(ä¢üÎN_{» ÷F<_šÞ»wjÏžÉÝ»'÷ïŸ.•ª‹±¯¯eÓ¦¶jíïo¥Ÿš€•…¦ðÓi!ÏÇã\<ÎïÛ7õüó'ã“aY–/º(òŽwô/dÕêïï…Bs8NÌdŠ7ÞøŸ‡¥ç³¯"ÝRüË?_6ªÇsàt©THñqš¼¿ãŽßÝÿK•ÊkŸ»4êÉ•Åý_äŸ *ó`AŽn8à°ÀkÀõ”°ü5ýÂ}€UC+È‹b¥R‘µâ¼(VªUYËÇk7L)$EQeYmÈÐW´Ç“z†^•e¥P(“zȾrR[ȲNÏ0:z½”ÖQµÙLZD^¯×LW—oÖL&­2¯cÃQïÔÏ<Àl4ê w:ÍkX:'!³Ï¼œ’íÛ‰(6{#V€jUÅ29ɸ<™__þ´Æåç±s‚¸:(Š†Ñ··{"‘0mߟuV—Ïçhîf/†Ñwwû»»ýÛ¶õk3«Uyj*‹Åc±øèhæ©§öîß?M?ÐárÙºº|‘H( wvú"‘poo_XÅL&×ÏšOß. .‘àÇÆ2´€ÿ§?šœÌÕjõ¾×k§íûÎNŸVÀokó kñ­“e-眳îœsÖis ŽîŒÅb‰»îzîÀ„ªª.—- ш:°§°"ø|ŸÏ™óØc¯>ÿü0!Ç8ãFɲLyæ™Ø3ÏÄ^÷ºð7¿ùž×¿¾s 6–Òïÿû¹3].›Ëe£`“Íf¢‚Û¸±í’ÝÖŸÝvNbÑe? 0×C‘9ÇÆÝn›ÛmSõ˜—BL&C­&«*éí nÛÖñÿw‹ÑjC~Âi3§á€Ò=,_Åb¹V“eYIÌ—«UYKÉ‹åjUV”ú½'~°(–gâõå†{º9Ï­²ZM&“A¯×±¬E»Iêz^¯cY+!Äá0ƒNRÏÐ× ×ëtºúL&ƒÕj$„Ølfš¡w:-z½N¯×Ó½Ù|ä4d«Œªªž˜ÈNLäè÷ññìŸþt(™äéÑf³ÙÐÑámo÷¶·{è÷®.W—o ¾{†B®7¿Ù¥íoLOçwïžÜ³grÏž©§žÚóßÿýŒªª,kÝ´©uãÆ¶M›Z7nlF[Ìf<V€©©œÑ¨ŸûÉq½^g4èG«ººüç×ÓÞnÙ´)ˆÌýZ“ÏK7F½h¡¿¿åoì¿øâÈÙgw[­&òÐCäîQbá$XF2¡ñ†Ñ«ªª(j__Ëe—m¼øâÈYguÙífBÙþs"wÀ€Ó;ÊðÚªUY˳:ª³"ª³ò© }ðI„VFÆf3ÏJÎʪšÍ—ËJ Y‹Åøšn¼U€ÕŠîÛ…Æå¼à©Çåéþ9ɸ<™__qyX~¿ãª«Î¼êª3 !$ž{îà³ÏÆž}öÏK‹±Z•¡\«)ƒ¾Ù[ °Ô ýÀ@ÇÀ@LJ>tY±X~é¥CÏ?ðÙgc»wOȲj6*•Z*%4{3V¤`Ðù¶·ñ¶·AÅÊ_þ2öÒK#üãðË/Å J÷°ô<ûùç¯?ÿüõÚœl¶¸ÿ´6º ,cc™k®ù~K‹ëÞ{ß·è)ÃGÝ59™ûð‡/[ÜÕÀ Å0úYa÷D‚œ áû;v~ë[OB\.[$ÒÚ÷6„wŽeÎå² Ø:´9Õª<5•Åâ±X|t4óÒK#wßý\¡P¢îêòE"¡h4ÜÙé‹D½½A†Á'XýÌfCoo°·78k~µ*ONæó÷ÃÃÉßÿ~hz:_«)„»ÝÜÙé£û$ÚDG‡×dZ+½Ê–wK‹[ÛãùÒÞ½“{öLîÞ=ùâ‹Ãwßý\µ* úuëýý­›7·õ÷·nÜØÒÒânîfÀ1MMåµiƒ!D­Õ“ÉpÆçžÛsÎ9ëÞð†n¯×NÙ·oŸ,ÏâÃê&åZM¦!ʲâóÙ/¹¤ï¢‹"[·nhkó4{ë^C2Y „˜L†J¥f³™.¸ ÷’K¢_ݰ!ÔìM@é`ÍPUuzškmÅ5«¢¨…‚Dáù’¢¨’T©TjÕª,ŠUU9N"„BI–UZY­Våb±Bá8‘"eYVh’U–A(Ï<^©Õê7E±BH¡PzñÅ‘çŸ?ð‡?IJÙb³7 `ųÙL^Ø{á…½„YV††â>Ÿ½Ù@¼^ûô6{+à(¹¿ù›ÿ…Øûîû½Îy©ªzÛmO½ímgtua´8¶PÈõæ7»´Ð*ljCCqÚ¾æ™Ø~ôŒ¢¨N§¥¯¯…†ï£Ñp__ËÚ ÑRF#3k„Blj££™¡¡x,–Ë<ðÀÎáá¤,+F#ÓÚê¦Õûh4ÜÕå‹F[‚Ag·`)Lw·¿»Û?÷.úî9:šËŒŽföîzüñW''s´€OÇiÌßwvúÚÛ=«~–µœwÞúóÎ;2T!‹(‹ Åwì8²±n]€D†7mj£ílh®ÉÉ<ý\¼Ïç8ÿüõ4mÿº×µãcé@Éf§Ó¼eËúK.‰^tQ$ 7{‹NB±X>óÌ®mÛú.¾8rÖYÝÃ*ß%ƒ•emšX›¦¦ò?ûÙK?ùÉ çŸ¿þûß¿¡Ù›³¶¨ªÊó!¤P¨×äËåjµªˆb™’Ï‹„b±\«)årµTªjeyž—TU¹«&IEQ …#w‰b¥R‘+•š$Uæ³%‡™a‹Åh±FO;ò.—•b·›F†&Yµ»ìv“ÑHóô¦Ù`Ð3Œ~¦Go6õ 6zíÁ°|h{ '•‰ŸÛˆ_ð‚ ‹ËBŒFÆf3“ùeâçÆåç¹ âòË^¯Û¼¹móæ¶÷¿ÿRZÓiyÓ›6¾éM !x,.†ÑoÜØÚì­€å(‘àßõ®Û½^ûý÷€eÿéßÿ~hß¾éÿ÷틾fX­\.Û–-=[¶ôЛ‚PÞ»w’†VÇï¹çùJ¥ÖXYhÝëÚ­VSs7»)\.ÛÀ€m` C›S­ÊSSùX,‹ÅGG3ƒƒã<ðÏ—ÈLº7 E£aZïF[ÌfT¹`m™ûîIÅÊØXf|<«ðó›½ccQ¬Bìvscø¾»ÛßÝíko÷®î„ô¬±ˆx^Ú·ozß¾é}û¦öí›~â‰Ý…BÉ`Ð÷ôûû[6mjëïoíïoimu7w³Ö¦ .è½âŠÍ眳®½ÝÓìme§­Í³oß7ôz]³7`!žxâÖÕ½Ç+Ž©¬Z•JíñÇwß}÷s/¼pa˜ZMÖ*¥kœ¢¨…‚Df¬´ÇJó¬³j­Ú]ÚÃï¢_ÚÃV8ßœ«Ùl°XL´¦JSª³ê«f³Án7Ó»fEWé#µ‡5ÞÕ¸ÂÓö_`µ)J¿üå+}}­¯}g³·V{àg?{é±ÇËÿ½3¢HûøÓ÷Ü“ ¹aB#à‚ºŠ¢.+»+(* ¬¯ë‚‚®‚È¡ ‹»ˆèª â-*( ‚++ÞŠ«@DI€„#$„Ìdî™îzÿ¨¤fz&CŽÉõ|?|´§¦ºººæ©#UOýÊ'B`PÇ×Ö¹k„¤AOu]QƒA¤££(ä믋ÞzkÇþSà÷Ÿ}öTºï¸ø|A¯×Í–‰WCÎüƦˆË€(òz½ñÉÄÇ—}cذDóq‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ]™'ênºé9·Û¿iÓ]­¤küî»;wî<üÑG³Z#qAº&‚À忦忦?dY))9QTTQTTQPpô¹ç>«©q@jª%??+??3?? %V­VC~¾!??K äòòZZneeÕGÞ~{‡Ãᥑ©h¯Í–j³¥åä¤äæ¦KŠw!‚ ]‘îÝMÝ»›† Ë ;Eæý÷w¡a«Õz‘ÏÜ¿ÿxaáñ½{Ë úiaM‹a˜œœ”¼¼ô¼¼^¤Ø+''¥ó‚ ‚ ÒÁÉ2AAAAI%%%ýû÷'„D^ĸëðáà .|õÕW–Ϩ™aF ÌÉɹøâ‹üñ=z$ ñZyyù¬Y³¾ýöÛªªª¼¼¼yóæ]{íµ È[ †)..îׯ_«>åäɺõëw¬Y³½¬¬šç9ªnŠÇhrℇ£%5ègªAO¥`›¯A z¯¨A ˜NÖù¶`WÚ•«Ä.–V%1eœX¿þ‡µk¿;uÊÉ0Œ¢–eðÞ‰M0¨¸\^ˆO\âÓ—OŒ¸<DZ&“bŠËC|úòM—Ô—GAAAAAÚ%l‰­_¿~EEE¡«cøÃ¶nÝšøÅ©H"×Èâ)êÄçªÓA­f`ÆŒÇóÍ7ÇOÃß{ï½ñãÇÿøãgŸ}v²Ñ|-BÈ-·Üòî»ï:ÎÖ6þæ§ß¥ª4¯v¼òÊ+ê/›€ÆYÓïQ¥i†±sçÎu0¶ƒe<ÝV±NLí}BiÁ±VŒwo´XBªÓé† öÌ3Ï 2ä ßæÌrÕº”yC´ð–ý¹ã§¹\®‡zè¿ÿýïxíµ×Ξ=›çyh;¿>lÉC)-­ºá†gE‘߸ñ®ôô¤Öx„ß\²äƒk¯=wàÀ^­‘~»¢Å›…fškkŒ‹ÂÒl~SÐè·­AgªÅ…ãX*|¯†TVÚ Ž)(8ºfÍöÊÊÿ@jªÅfK³ÙÒ¨ö½Í–ªÙu£rö£GRÃD{7oÞ}àÀ6YVxžÍÈHÎή—ëÍÉI¡ê½m˜Ai["O‘ •cÇN•–V:TUVVuèPÕŽ‡Ö¯ÿÁï€Ñ(åä¤ôîÝþëÛ·Gß¾=ÒÒ¬m÷-$ñùùY¡eâpx÷í+/*ªÜ¿¿â«¯ŠV®üÌíöÓq•Ñá̤ãÒªs¤MK3ò¯~5ä­·Þš0aBä½;wî:thdx´':ÎE‹mذ¡¢¢"33sâĉsçÎÕét±_'2?qÆï¸t¸)ô° $f»Éæ»0ϨÌã§ëX/t ¾þúëׯ_¯Zrhþcž¦å·”!ÅN¿E,6‘†ŠJ÷‚ ‚ ‚ ‚ ’8’’’æÌ™s¦w½ûî»×\sM3}ðàÁ#FTUU5ó®ÐÌ|ûí·}úô‘e¹¨¨è©§ž6lØÏ?ÿœ”Ô*ÎÜ¡4ZŒÕÕÕC‡;vìºuëÌfó‡~8a„÷Þ{ïŠ+®ˆÿ)-Ub‰‚ݽ»fãÆg¾ûîÃ0²¬@¤Ì=œ:å^³f»ªHk·{·ÛÈ~Ðã ȲRW瀺:¯¢ú•Ïôx„(‡7žÜP½xžgM& ¬V"Ïs:”d`YÆlրŢgÆ`E‘£úõÇPÍY‹EϲŒÁ '¼Á ²,c±èÀdÒqÛRe‡ H禓u¾ÍI9Ú•7íÞ¶ëòZz0Ìo|èÐIõ`ºÄÛ”îív7½h¶L|“U雨//I¼N'B|2ññˆËkÞC_ÅåAAAAA$6l‰­´´t÷îݪæé©S§¾üòËfæ³õˆ]øz‘®}Ò†ÖÞh†:oÞ¼3fŒ=:))Én·O›6máÂ…‰‘¹o­òòòµk×–••AS‹Ø„V™ÖH¿sÓœÚúËÆO«6q‘~MK'4“ÖÁØ–±»'¬bkµ j®««{ä‘Gn¼ñÆ}ûö¡XÛÒ!ÆW­×‚Å3N«««1bDÏž=—,YrÖYgíÙ³çضmÛ¶mÛ8ŽƒæuUg¶äšìÛwü¦›žKI1¿õÖ=z˜[é)¯¾úõ‰Ž9sþØJé·+Z¼Yh‡æ–¥æ76Ò4RS­£G[Uw»Ý½Õ¾ÿê«¢W^ùŠb±èrsÓóó³¨ð}¿~=qóh‰öryymQQEQQEYYuAÁ‘·ßÞA·\Y­ª•o³¥Úli99)6[º.#‚ ]žgiÏxÉ%¹j !¤¼¼¶´´º´ôä¡CUeeÕŸ¾ïС*ÇF£Ô§U½ïIµïûöí‘”dh»—ha,݈}GŒè«†¨'UnÞ¼»¤ä#E!‹®wï6[j~~VnnÚàÁÉÉÆ6Ì6‚ ñÓâ“!MžÇ‹gÞõꫯ>~ü8:tè·¿ý-½€””ˆ2Wù¿ÿýoúôé{öìZQ”êêêæßš™=z¤¥¥@FFƨQ£Fõïÿû¡‡jfV¥Ñb\¸pᥗ^úÒK/Ѭ¨¨X¶lÙíòj©kmùÅ¿HI¹eõê a±ÎbµÛ]<²…ãÂ…æ“$^¯yžËÉIQ¿ÒëIâ©Ð<ÀŢ³YÇq¬NG¿â ‰aÀjՀѨãytcE¤ÑÉ:ßæ¤‰Ú•7ÄwyÍÇë lÞ¼kݺß}w€aXY–!â`†aüþ¨J÷€ìvûà Ååá õå[C\žçY£Qñ‰Ëët‚ÕªoT&ÅåAAAAA¤³ÒÉ–Ø~÷»ß½ýöÛªúêûï¿É%—|øá‡ÍÌj+»ð;â"];§ ­½9¨X°`Á¦M›æÌ™óüóÏßÿýééé÷Ýw_bòÐ"Z²³³¡©¿ElB«Lk¤ß¹iNí8vì4ü²ñÓªMœ¦ßcËdì:ÛÁ2v÷„U¬sƒc­D­hiiiK—.MMM=yòdÏž=ótD“1¾j½,žqÚÃ?Ü£GO?ý”ÊUÛl¶+®¸bðàÁ/½ôÒÔ©S¡y]Õ-y$¿ürl„•ÙÙ)k×N±Z[KE±¶Öýä“Ûþò—‹33“[éíŠoÚ¡¹†e©ùMA£ ‚´V«!Tbµ®Î[XXN%VøáÐë¯È‚ÀõéÓƒªÞÓÿ¢?0E8*Ú«žv»»¬¬zÿþŠ¢¢ÊÇ«7oÞ}àÀ6YVxžÍÈHÎΦò÷i¹¹iôº ó ‚ m Ã0ÉÉ^Ø/4œv¦eeÕ‡Wïß_ñé§…/½ô…ÓéQäÓÓ­6[=H†öª©©–6zƒ&ìD"§Ówðà z(QQQÅ¿ÿýÑ©S.HMµäçgÙliTþ%BvK‹O†4y/žy9“E= IDATW½^¯×ëÀét@ØÌdä\¥¢(×^{íøñã×®]ûÌ3ÏŒ7®´´”eÙwß}wë֭Æ £w=ýôÓ·ÜrËòåËÑÉ!Œö6…çÔR‹­qf#š95šNœÅÛ'; À€§N:}úôQ£FEšqlÃÓ´ü4¤xÒï(-*ŽPAAAA¤¹¼ÿþû§N€7ß|Óf³¹\.EQV¬X‘——g6›/¸à‚Ï>ûŒa˜’’†a¢¥³eË–¡C‡ †ôôtu±ªªÊh4êõú`0¸páÂììì=zLž<¹¶¶–F¨­­½õÖ[»wïž™™9kÖ,¯× ì]»6//¯[·nK—.€óÏ?BÖ–ÀìÙ³SSS{öì9{öì@  ùaw©™‰Ì<Ã0wÜqÇ|3fÌøË_þBÃN§Á`عs§f®¢½5Ã0¯¼òJ^^^=–,Y²zõê>}úX­ÖxÔbŒV&6l˜9sfhö.\øòË/'¾ÄÂøè£úõë—œœü¯ýK}‘÷Þ{/77·gÏž3fÌðù|šÑl»õÖ‹œÎo†M1%*[#¾Á >²gÏâíÛlß¾à¿ÿ½wëÖ{6n¼kݺ;_ý¯Ï?ÿç•+'/]zÃÒ¥7,X0vþü+ï¹çŠéÓ/Ÿ2å’›o¾`Ò¤ ÆŽ2vìQ£Œi>¼O~~V^^¯œœ”ìì«Õ`µPæAÄÐÅ;ßFS†Æ:ÓD–‰f9„å!²LhÉòÉ'ÙÙÙÆ Ó„Ñ%e¿‹ÿÇánÆ-š9óíÛ( ¡2÷‘0 ¼üò—cÆ<1fÌ^øÏ .X|Á‹óóÈË›Ÿ—7¿ÿûéÅС‹èW—^ú(|Í5Ëo¼ñ¹o|îÏ~iêÔUS§®š9óûî[Oÿ-[¶uÅŠOW¬øtýú¶lÙµeË®íÛK Ž=zôTm­»¶Ö II†¤$CvvJ~~f~~æ…ö¿òÊ!W^9䦛λë®Ëîºë²Ù³ÿ@»é¥Koxþù?Óo½uǺuw®[wçü}ëÖ{¶n½ç«¯æÒŽ~×®‡ ),|¤¨h ½Ø¹ó!úÕçŸÏ¡‘ß{o½}ÕªÛÕ4Ÿ~z}Ê?þqíüùWΟå½÷Ž™>ýòéÓ/¿ýö‹o¾ù‚›o¾`üøát`0zô ‘#m#GÚFŒè›ŸŸ•ŸŸ•›[ï6ššj¥#ÜÖ‚ ‚ ‚ ‚ ‚ ‚ mN—]b?~üúõë !ôã;ï¼sýõ׫¯£¹Ö¶yóæüü|N×·oßÕ«WÓ˜š‘¥AY¹råÀ-Ëe—]¶eËZ˜šŠ$´ð#ŸçBa¤NdÌÐ弯¿þ:,­·r—cíšOÆJûóÏ?׬#ñ›b¨…‹¢øÚk¯½òÊ+ÿú׿^}õÕ×^{M„h ¶l6ZÜAKý-4+Qè/¥^‡™qä陵~üÙ‹¤£W HTík¬4#Çnâ4ó)Ëòc=f³ÙÌfó…^øý÷ßÓ¤uˆá÷ûm‡cÔÁ0B,)±»'¬bЫ޵èÇ0cŽÌ˜f]Ö4ÂPâJ ‚ Š¢Õjq‹f§¦Yz”k®¹æž{î¡×>Ÿ/99™Vä®6¸‚DY8Äm–ÑêB´Ÿ&¬`›ß‚5gœ¶fÍš|ªWSŒFã}÷Ý·víÚ3ý Ú¼Âè覾gϱ›nZ™•ÕmÍšV”¹€+>a˜>ý²Ö{DHX³YÝBŒgãI {k´‰Ì^ ÃŽÌ|“›‚ßFë4c÷MmîÇ‹tÌf݈}o¿ýâ§Ÿž´uë=%%~öÙœeËn9ÒVVVýÏn¹æšå6Ûý£F=:cÆÚ—^úò«¯Š¨ÿ3¢bµòó³Æ>þ•Ï?ÿçÏ?ŸsðàÒíÛ¼üòm7ß|ANNÊþýË–}xãÏ]pÁâæóÄÔ©«|ëæÍ» Žx<þ¶~Aichg:vìéÓ/§c’½{ÿùí·óW¯ž2þ•£F ðzï½÷Óœ9oßxãsC‡.üÍoºá†gçÌy{åÊÏ?ù¤°´´J–•¶~‰Àd’è âÿ¸vݺ;wï~ø³Ïæ<÷Üäñã‡+вiÓ3g¾qé¥4ÿšk–Ï›÷ÎÚµÛwí:ìõj/>"ÒR$f2Dóÿhóx*NW¶ 'Ož«J0_|ñÅeeeš™ï”ém8…ÿBırÔd[jÙlD3'ÍCíêµ×^S‹W³0)¡¿‚®AâœjëdÖ ]Ì€ÿþ÷¿0`Ê”)êâ¦J ÃÓD- ÍŒ±§D–v£K½íÅP ‚ ‚ ‚ ‚ ‚ Ñ™8qâ5×\Óh´É“'ÿùÏ®¨¨HMMýþûï !Ï?ÿ|Ïž=7nÜX^^þÁdff@qq1”‹¼p8¢(ÞvÛmG]³f œ8q‚òÊ+¯¬^½šòØc 4¨  àçŸ>ï¼ófÍšE=iÒ¤Ë/¿üÀƒ^´h!®¿þúS§N½øâ‹P]]­>ˆòè£^wÝu‡.((6lØý÷߯ùaw©™¡(..-„~ø!))‰òÅ_¤¤¤BÈš5k ¤(Šf®¢½5L˜0Ááp¼ôÒKpà 78ŽçŸªªªÔ\i– ÿ­©©‰öc%²ÄB€+¯¼Òáplذ!ôE~ÿûß}÷Ýwýúõ[´h‘f`cHxž_»vm0(ÿýÅ‹7ñpzúßrrf¥§ÿ==ýo¡ÿÎ=·ñÔAÚ˜ ñûcÇêÊo<)ÇîLi„]»vÕ…4ËD³ÂòY&4Âþð‡O?ýô?ÿùæØ ”Öë(­¹ÿ7Sgßžþ·ÌÌ{Ãzư99÷N˜°rñâÍ‹o~òÉV¬øxÅŠ_yå«Õ«¿]½úÛwÞùáý÷w¾ÿþÎ>Úóå—û¿ürÿöí%»wÞ½ûðÞ½ÇJK«JK«Ž©©­uÕÖºìvwìŒ!‚ ‚ ‚ ‚ ‚ ‚´'ôoi l‰mß¾}iii;wî$„ÔÖÖ ºÑš.½E>ÂétJ’´råÊãÇ¿üòË<Ï;NÍ@ÍÒxñÅ322¶nÝzòäÉmÛ¶õë׿-Ú¢^˜ûú.šOŒs¡0¬T5c†.ç9ÎÐ<´¢‹ Ï“µk5ÔÆ‰#X»æSHc¥½hÑ"Í:§)†e€rÿý÷ÀâÅ‹C[5­á ¥^kV"͘¡otüøñÈßKó®ø³öR­êý§§Dã´ÚZÚš‘ãiâ"óùÄO„æ³W¯^4~£aýBœÎñd’¢Yc8X’ƺ'¬b-_Åâ)ņziÆŽƒc­È±VdÆ4ër #Œ‘ÕÐ}ìØ±iÓ¦ýßÿý_Œ·‹Ö·Fs|"„¼õÖ[ÙÙÙÔÓé½÷ÞëÕ«õ€j/ƒ+B6nÜþæõ íÇ[žÄm–ÑêB´ŸF³´é-MhÁš3N£üÉ“'Êwûöíݺu#Z]U]]]´Ÿ mË!ìZÏÔ[ÄÎåË/÷çæÎ7n¹ÃáiÕíØq0#ãï6ü¯UŸÒLâ,ó4 Ébµ|Í6GE3{¦Ùü¦ ö·Ñjn쾩mýxIÜ} Òž ä}ûޝ_¿cñâÍ“'¿8pà|êz=dȃ“'¿¸lÙ‡}´çÄ G[g³cP[ëÚ½û0-Ì)S^»ä’%™™÷¨åyà ÏΞ½îÅ¿øòËý¥¥U‘µAA¯7°wï±-[v-_þñßþöÆUW=5xð‚†}a³.»ìÑ¿þõÕ%K>ذá»v®«ó¶u~[žÚZ×7ß¿ôÒ÷ÞûÖ˜1÷î=+=ýoYY÷\rÉ’iÓ^æ™O¾øb_UU][gA:{÷îýù矖àU6ÍÙòÈÀx¦+#×­"C"WÁ4—ÕE4hЂ ***,X——Gÿlùïÿ›‘‘!IÒèÑ£{ì±ÒÒÒÈdÛd"ýóÏ?¯¨¨hä§M»ÙóN´¦€â_È ­ÅiKš3Ø-˜ Ýœ4 µ«]»vÅ(LÍ:EQå†n¸ãŽ;âyJâ–ZÄ‹ Ýx”‘öaÀÅÅÅEEEz½þÕW_%§C ÃÓlCï½ÀV\‘f;ýh¦Û^ 5ÂÆPéAAAAAb§?å©S§233óóóÕIºAƒ½öÚkj„U«VÅž·õù|………N§S–å/¾øB]ºîºë膥ÜÜÜ7ÒÔöîÝK¯ý~?Çq{öì¡á7nìׯ!>ûì3&6e9`À€ãÇÓëmÛ¶ 2Dó-ÂîR3CbnÄ ƒiiiŸ|ò !äüã’%KÔ[Ârí­à§Ÿ~Rc†^‡¾‹f™ÔÔÔÀ©S§4©—X(ðùçŸBdY}DAA°nݺ~ýúij&Jäª}ûŽ/[öáå—?–žþ·ììYõ’÷ƒ/h45A6&¾•×®ÜùÆ“rìΔDœ4›7oÖ,Ír̓f™„öhÑÆ¡´jGIWIiçxÞyQσ¡áO=µ­ñAAAAAAÚñíKì²KlÓ§OŸ;w.!dÍš5£G&!Ko‘¨©©aÙ²e§NR¥®®N–eÍ@ÍÒm6[d>IaýBœÎñd’D¯ƒ‘V¦t£{Â*ÖJ~#G‹IÚ³lÙ‡“'¿xÎ9„ ß/^¼yýúûöG•ö8ñûƒ¥¥U}´gÅŠgÏ^wÕUOåæÞO‹47÷þ+®x|Ê”×h©îÞ}Øåòµu~A¤=â÷÷í;þþû;W¬øøî»×\qÅãguíO ˜GûÓeË>|ÿý»wözmßF›Ñstzõú;H\uÕS l\½úÛï¿?ÐùÞAZ8•î¼Ê¦9[Ïteä„^dHä*XäDåæÍ› !;vìPCèü9% ~÷Ýw?üðàÁƒ9Ž£«*‘™OðDz”îÛj =þ… ÒØÊQœ¶¤9ƒÝ‚Ù hš“f‚¡V»05ëeåʕ矾×ëç)a´â¬Z•Ó\=õÔS‹åðáÃaÆÍð4ÛÃÐ{c/°†W¤ÄN?šé¶C°1^³¥@AAAAäŒHJJš2eÊC=´mÛ6rðàÁ!C†¨òóóc§ ŠbQQÑ_ÿúW§Ó9tèPèt:@rr2”••õïߟ†çååååå@ee¥,Ëgu ïׯßÑ£Géu¯^½@ÍÇ•––¦§§«­V«æ[„šMŠ‹‹iN8Ž7nÜÆóóó?þøãçŸ^–+Í·¦˜Íf5fèu(še’œœœššºwïÞßþö·jÌ~øaÚ´i_|ñEMMMÂJ,ú–eCÕW0`€šÍÀ3"77-7w̽÷Žùå—c[·þüþû»Š‹+† ‚MH A¤‚oì”!ŽÎ´¸¸¸_¿~a©E–‰f9„£L 1Ç¡´vG©vŽû÷WlÙ²kãÆªE>ª«À ØW"‚ ‚ ‚ ‚ ‚ ÒYé²KlãÇ¿ýöÛyä‘wÞyçúë¯ýˆäääÏ>ûìÉ'Ÿ\¸pá°aÃæÎû‡?üA3P³480xð`5ÁÆx—h>1žò­R“.çE’H—V"Ö®ùh¬´£-¿ÆiŠ‘¾víÚÏ?ÿüÓO?½âŠ+®¿þú«¯¾:Ùh%-J´J¤¶Ë—¾Q ?´0šÜ"A§¨¨Ú;r9-Ÿ1$"3§³D<™„èu0ÕÁR%Z÷„U,4°cU1k…³fƆ‰]&šjÑú5µF»Ýî|ð¶ÛnÛ¾}{´[4ëuyyy´ÒƒÁpõÕW¿óÎ;ܼyóÎ;cç§® Q=Hœfÿ`†^ÄS°ñW¥æŒÓ’’’ÒÒÒvíÚuùå—‡>}×®]ªýhvUí°"鈦ÈóæmxóÍï-ºæöÛ/níÇ­Xñññãö7ß¼£µ”Ð,Ä3$kÔW6†½iV†aèGBH´!P´4[¤)ˆ§¡Psû] ùñ"ŒÔTëèÑÖѣѕ•ö¢¢Êýû+ ŽlÛö˳Ï~J±Xt¹¹éùùYùù™ùùYýû§²,Ó¶ÙnŸ—““’““¢–'Øíî²²êýû+ŠŠ*®Þ¶í—•+?“eRS-6[ZNNŠÍ––››–’ÝMm¾A¤k"\nnZnnšÈ¥¥U%%'8QRRY\\ùÅûRß¾=Î:«gÿþ©¤’•žžÔvyoÂÆfÇ×îÙsì—_ŽíÝ[þÉ'{_yå+BHæsÏퟟyÎ9Ù眓խ›±móŒ ‘¯²iΖGçtehjq¦ Zs•„‰'Λ7ï®»îzúé§'NœXTTäv»7oÞ<~üøóÎ;ï¼óÎ[°`ÁÂ… ï»ï¾‰'F¦ÙY'ÒÛj ýL2bLóÆiKš3Ø-˜ —ËÜâ\ ‰q þõ¯}óÍ7’$ÅÎvgµ^èJL¹ë®»6nÜxûí·¯X±‚†Ä6<вü’’’JX««i±ÓפÝ**Ý#‚ ‚ ‚ ‚ ]·ÛO¥Ke™ÔÕy#Î_ýþ ÔÔˆ:»Ñ”9²bÅŠßýîw÷Þ{ïêÕ« ##c÷îÝçœsðË/¿ÄNÁãñÜpà ëׯ;v¬Ïç{õÕW`ëÖ­cÆŒ¡zõêUZZJ·íÚµëƒ>˜?~jj*Çq¤Û8‘‘Aã‡M/†Ñ½{÷Ï>ûŒNtÖÖÖVTTh¾E(¡™‰„òÜsÏýéO¢Ç?iÒ¤^tÑE™™™j´°\i¾uüh– \uÕU?þø\ zé­Y³& AVb‘hz Ÿ}öÙPTTD§†£6Aƒ2 ʸ÷Þ1¥¥U~øó7ß7'5Aöv¾±Snše­ÃU‰Q&êjq´±A(­ÚQfíè-÷ú{d¸ß/0„a€ðù‚ÿþ÷GO?ý1DZ4?,Ëp˲ ÃDZ<ÏÓ –eD‘žgyž“$‘†ëtœ$‰, ,Ëèõ’Ñ(1 #¬Å¢—$žãQ,ÉdÒ³,#IœÑ¨Óé$^€NÇ«×&“Žãb™‚ ‚ ‚ ‚ ‚ ‚ HœtÙ%¶‹.º¨®®î믿޶m[˜š[ä#<¢(o¿ý¶ßïóÍ7ÇŽ{âÄ ½^¯Y999¿üò‹ºÃ³°°0Æ»Ä.êÈ'ÆS>š¥-f4‘Ê6qqiY`íšOÆJ;Úòkœ¦øé§Ÿ†f ¼¼|ÆŒ=öØÅ_¼pá©S§^tÑE)))­nݺµ†ƒ%Z%€`0Èóü±cÇBãÓ7Šß­É-tŠª‰ª±#ÇÓÄEæ³wïÞg”OJ<®MÎdŒ:F˜ƒ%%F÷„UL¥cU1k…³fÆDQŒV&šF#«¡ †[o½õ…^ „P[гS‹Qz” &Ìœ9sÈ!çž{®*ëÐW¨$N³Œ0C“§`ã¯JͧMš4éÿøÇ¨Q£8Ž€ &\uÕUK–,™3gΙþm[‘t8Sw8¼S¦¼öÓO¥¯¿þ×Ë.ËkíÇ•”œX¾ü“ûîûCFF¸ªN%ÍBöØVBHVV·sÎÉÊÏÏ2$+??ËbÑ·mž¤C°U¶³åši6:]™]RR¢Nqò<Ÿ••%ÉXœ8q¢¤¤ä®»îJOO¿ûî»—,YròäIƒÁ0qâÄP]l†a®¸âŠ^xA3…Î:‘Þ†Sèg´cš7[ŠAKeƒž¦Íœâ\ ‰qÓétNš4iÕªU¡ËC]p¨«0˲¯¾úêÙgŸ­šVlÃk”h ¬šíyK™A»5TœïCAAAAZYVN‹—@Q”ÓeåeS3°Uooz½)?¿6vEQn»í¶»ï¾{úôéô¤Ð±cÇÞvÛm³g϶Z­çwÞ®]»î¿ÿþ؉ø|>¿ß/Š¢Çãy衇 ®®î½÷Þ{ôÑGi„[n¹eþüù½{÷€»îº‹úŽ ‚pã7Θ1ãÅ_t¹\ ,˜4iRŒ§8N“ÉãÆ›;wî²eËìvû”)S†þÔSOE¾Eè]¡™¡œüðÃK–,9Ó·Ž]P¡h– <òÈ#yyy·ÜrË´iÓL&Ó¦M›ž~úé-[¶$¸Äॗ^?~¼zö©&3gÎ|á…N:5oÞ¼›o¾9F`l<Ùnwëõ¢(jOüöîÝýÎ;/½óÎKãI A$—Ë Ê~¿ìvûÀáðB¼Þ€ÏTûe—Ë *~Ðãñ@m­<¿ß —Ëuu^Ÿ/à÷˧N¹Eq8<²¬øýr0¨¢ƒ üGH+/]·ó3ååË—Ç~÷3*“h®š‡xÊDslÈŽR!Ѿ©ÿB=]Qˆ¢Ètx£ÆO 0 !¤~™a†Q¯aº'‡e†çYzͲŒ pÀ²,UØžgY–Ñé†AàxžEžçYAà^’xº·‡eƒAÔë£Qd$ÁlÖ›Íz*Üo0Ô…‘a«Õ`6ë^,‚ ‚ ‚ ‚ ‚ ‚œ]y‰ã¸ë®»nêÔ©#FŒèÙ³gèW‘xì±Ç~ÿû߯Y³æ’K.ñûý‚  ˆ ôz½‘¥1}úôûî»/%%åÜsÏݽ{÷¢E‹è²N´E=ê~Y ÃD>±¦¦&vùD[(ŒŒ9sæÌЉ\¹K‰±vͧ@c¥mù5NS Í!dêÔ©ùùùùË_àÞ{ï}óÍ7ï¾ûî7Þx£µ³-ê †f%JJJ€×_ýúë¯úé§ãü½Ìf3„TÊe¯“U HTíh4r£Mœf>ï¸ãŽÐ|>øàƒñ¼rl׋æd2v„˜–”ÝV1•TÅp¬iÌšKII‰¬Ëa<ËÅRWWçt:©qÆÙ©5Zz¿ÿýïO:µpáB* -?{p ìAâ4Ëø3ô§Ñ,Ø&·`š}Düã´|pĈ£Gž3gNŸ>}úöí;qâÄž={Þ~ûíôöÈ¿ÒÒÒ4‚¶-èà¦^YiÿóŸ_./?õæ›wœ{nïÖ~œßœ1cmnnÚ”)£ZûY‰!1ÍBŒ!Yüİ·ØýKŒ!P´4[ª)ˆñ­Ãá­N³Ñ¾©Íýx!˜““@½/:?^+ËJX õQÕkêêP’xN‹©Ói†ÆLJ2ЋÐ@«µ>P§t:>,°³b±èFŒè;bD_ú1úՇŴÛ=••5&½Y[«îòkÖö:ºO莹°ÀÍwõz½(Š|Øíj Ë2ª÷¬*âo4J´-RfUOZžçZIÒT¸ÜÜ´ÜÜ´ñã‡@0¨8pB¾ÿðß].¤¦Z¨ê}~~ÖС9Ý»kh8"aX­†ü|C~~–ÈååµEEEEeeÕeeÕ[·þ\UåQä{÷îž››–b³¥ææ¦uVOÔ±EAº8:pöÙ™gŸ©†øýÁââÊ’’ûö/)9ñÖ[ß—–VƒŠ^/öïŸj³¥Úliýû§ææ¦eeu㸎÷WžÅ¢9Ò6r¤~¬¬tìÞ}x×®#»v~úémµµnžgÌ>¼Ïˆ}FŒè“šëOé:$f2Ds¶,PÙr·7ËÝM8ƒA‚ÓÕUaGUðBÜÝBÕ˜­q{GaÒ¤In·;rËÄ™RRRÒ¿ÿ.57þüÒÒÒµk×¶uFÚ/šVÑ4SáÁWŒu©Ûí÷ûƒ€ìvûÕ2œN_0¨PŸZY&N§ê½r Õ¿‚n·Ÿz\—Ë *ñ<×j5€Ñ( 'м^/rc2éÀbѳ,£× ¢È«mQR’ÜaE‘×ë–­?ôÂdÒqCj3E5}éˆ( ©«ó@ƒ {]WQ§Ó'Ë ­§t  Fs¹~­ŒÐà"O Š¢ÔÕùdYq:½Á ìóÉ^o@Q´Ä‡ª4­Êa3 :×L ^G¦Ã0Œú „PaëíÀ$‰: *¯‹ž4ùœ 4kÌÐ;ßvÎ™Ž Z°£„I“~¨”½ ®­uB/=ûÁï—Ýn?í"=ž€ß¤§>8^Y&‡GQˆÝîQ¥®Îû &“IJ¬É¤c0™tÄ`†‘$žç9NUo'óù‚’Äûý2Öe].? úÇ‚Ûí—eE=¦Âë Ðc'h/竳,Ãóá8ŽeB˲¡VQ€€aYF–eY&Œ,•¸ÆÚ„húCC ÃBè»B†!¡:üáת.¢«phΩ.?Uê§×,ËÒpŽcx¾þÜN¤wñ<§×ó„Ïs<Ï Ïs ’Ä™Ízš‚Åb0™$¾{w#=7ˆãX«Õy@„ìV‚ú?»êlP·!!‚ ‚ ‚ ‚ ‚ À¤Iàvú·´¶lÙ’••uÎ9çÐ6lX¼xñÎ;Û6WͤÅVîV­‚˜{_–Z{»¥U¢–\ÔÞ´ Æ¿¿™žX;Fé¢U¬%FJ‚ ¬Zµ*¶‚C£`ýB(-hÞ›6m7nœßïšÑƒtnoùö™«Hü~ÿO?ýÔè!.M¦MÊ¡¥L½Eì\E–•%Kþó쳟N˜pÞ#\GÝ·Z›õëøÛßÞxá…[¯¼òœ<®ù´T™·yl ´êKÅn šßP´¡ï¤I“vìHr¹´EíUÉ{³Y§Ó‰z½`±èu:!òB§’’ ÔÇ’z]êt|»Úub·»éEèÞÀÐ@ºI¢ªç‡Ò@àñhúýá·«¡ÞÎßç“€ÅáhÄZŽcéÎ hØõ»~X0Eê­n'ŽZÀó¬Ñ¨ƒÓ•÷UZUd_¯i L7€Ãá)+«Ù·ïøþý……Ǫ«]"|o³¥Ùli¹¹iMx„b·»Ëʪ÷ï¯(*ª<|¸zÿþŠNȲV«ªÞçä¤Ð¢ÎÊêÖàD ‚ @ 8p¢¨¨²¸¸¢¨¨²¨¨âàÁ“€¬Ó 6[Ú€i¹¹éö0 ­ˆÂ:tò‡JøáÐ?*.®$„dg§ŒÑgøð>Ç÷±ÙÒpœ€tJ eY¿i ¢ ðÀ²ŒÅ¢‹ 4› LJ2ÃhÇlìvI¹ˆÛ%Aà"n¯DDâõzËËË_yå•7ß|³­óÒ…8ë,óÈ‘¶O6ìú‘ºÒ†Ú¡~EýqÕv»‡ÆTpCcz<~êVÛ(’Äët¢zr=6ƒú(‡¶A¿¢1Ãç ÿTõØÐ˜Ø`vA/! = ÂíöõêótØ *.W½¾¼z„Ãá!„ÔÕy…P9l'àõÜnŸÇã÷ûe' (²ê•Þ UŸ ôTºU^–¦LÈi Î Ðk`Y†ª`ð  Š¢È2¡ZÛš)³,c6ëé&ÐZiµêiLJª¿ !j5 Ý]~ ΦM0Îß*´íal0Ü샖è(C{±°n±¶ÖÖ!Fö›a&½%öÕÐbчV%Iâ9Ž‘$aXAà$‰#„ˆ"ϲ Ã0¢È²^/0 #Ë„ç¹@ È0ÀqTOÿ×.ÞáðBÙåòAýßDŠ¢»Ý^¯ìõdY¦çp4Š ðÇp#Š*vïõ‚Á&þ&ImÓD‘'„Bè¾BËmY–Q”q}…Ðëúÿ ÿS"Ë‚A¹A|ÿ×›!õšøMËj3¡?:0 °,«~ä8–çYêBJÏ‚zi~^àyÆ`E±þ<³Y§‡’“t?DZÉÉz-Š|R’AõI¥'Ñk³YN3V«¾áò´pAAAAAé¬Ì;wÕªU (((xà¦OŸÞÖ™BŽV"iU°Š!‚´ODQl=™{DåäɺiÓ^ÿé§ÃO>9aüøá‰yèþýóæ½óÿ7²£ÈÜ#mH즠9 E{ðãMO·Ï;§[7£Ñ(ñ<£Ó‰>_Ðnw‡¹àÚínêk·»ívOe¥£¶Öm·{u»U½mUŸö¤$ƒ¦×ºæWÉÉFêcÙLTÙ}ëi§)ÍO¹ùЭPWç ÙwZøà÷×oðT ž‘0Õ]BN§ïäÉ:ˆ²sÓn÷PŸ[—ËmW‚&••ŽmÛ~Ù¶íú‘aAàt:^y“Ig±è@XƒA‚õ|êÑJ·9€$Õ‹é«›4-=õ©¦[5ÕFF£Dýi©¸?ÏsF£Ô”²n—X­†ü|C~~–RWç=pàÄ'JJN`@ºÈ¥¥Uûö/,<^XXþúëß>\CIJ2äå¥ÓÈyyé6[ºªùÐQèÓ§GŸ>=n¸a8œ:åúßÿJwì8´cÇÁ÷ßßå÷­VÃð὇ï3bDß¡C³[d ‚ ‚t&p€ˆ ‚ ‚ ‚ ]U ^Un€º:¯¢(àrù©˜ ªbLÅ^¡ÞQ)ª@¼êŸä÷©"!Äáð6į÷ˆ¢’²àõúvÔD8ê„Äq¿ê¿«Þ`&“DeøB]”zö4ϳFc}|êu&“ŽÆ7ıøúoCÙP©ú­y¶Ã-1"Hkóý÷ß_{íµwÞyç¨Q£Ú:/í‹Å2uêÔxÛUDþtGۃʈCCŸB…ïÅíöBhårù‚A…º&«¢ÔÕy…x<¿?ȵµn‰/SÿfEQTÿÚØˆ"¯×‹êa!´k îË<ÏšL:hðg¥Þ«ÔÛ•aêû ê K‹‹ãX“IjˆOd9š~«bgÄïz<þxt¢!ú1 ôŸÓék—ýþ@ÜGÚ0 CÕŠ3na1zUL¹þ#! Õ—*TLÕŠyžá8Žç–eåyŽçQdu:Nžçè°D–BŸ/à÷ËÁ \Wç¡âûN§— 4«ïÒðPBÇT&“$Š¼Ù¬Óëë%é©»¶Å¢EÞhF$q&“Ž®¬V==(Âbщ"ß™¸‘V¢icƒöÙQ6œåÐ2©Ñ]´w e—ËGÏô¢-=¸‹þ™f·{¥>²Óé d»Ý£Föùn·ßï—ÝBû#£QÎj5g0ˆTë<;;EX£QG7í˜L:QäL&úQ0%Aà,½(rÇPÍzµù…“oâo¨áôórÅï—!dKLlD‘EAYIâ ÚrÇqŒ(r‚ÀBèŸrTg_¸`PfYŽçY¯7À² DZ>_¾ÍË2n·_QË2ªÈ>-[p»}Ñe÷£ö <Ïéõ"! ˲ƒ ( !ŒN'È2 T…_QAà E‘yž ä`PáyNQ”@@á8FQH0d–KÀB‚A…a€"Ë !€Q"ËŠ,݃Ô!`Y†çYÚáò<'Š,UÃçyNxªžÏó,=ÅôzA=E’xƒ¡~|¥ÓIêµÉ$оIxƒA ¯^«£Ü°põœ$PÏX_Ðáð¸Ý~ªŒïvû¼Þ Óéu¹|tsföè~C“I’$ÞdÒ™Lu5™t:o0Hf³N§ 1ìB¯-–ú‹&K"QwJª0Ûºu¨ƒ1P?j8]dŸn€“'ååö£GO••U•—×VUÕUU9OI1%'ë†éÖÍh0ˆÔ{öرSŠBE©«óAÃæp¹|€![\ãD§$I³Yâ8VÝFDݰáÌEöyž£{ŽTÿUusk"EöÍfÝ!Ù¡}¢¢£Gk8YRRIEð?û¬°²ÒA_6''¥ÿÔ³Îꩊà«F… ‚ ]Aàú÷Oíß?uìØ!4$#GÚ.¾8wàÀ^tׂ HKÑÞf$~Ðz‘h´+3h=CmI9AAAA"Q|©´ “„AùÐ'ôÞfÜØDAyU^Õw }SiT…85D* §Æsc´‡"H‚™4i’ÛíÞ´iS[gAb!ªU«&NœØÖi層±•y5c†u¾š¾ê S$‰×éDhèéh7G»Bú^‡u¦qFS=\[•@@v»}q*kFóxüN§ÏãñSÿrŸ/èó @ Ÿ8¯ªD„PP¯ߪK T—eY²,DZ‚À²,+ŠÏsz½¤Óñf³d4ŠV«Ñd’ôzQ§D‘–¢(À0@ãv{ !´p¨{½êUߨ3=X,zŽ×ëE“I'I¼Ñ( ¢$ñ‹ž†ÕªEÞ`M&I’“I¢bÖôFN0›õíÔhÓ&7ü~pˆ´“&m8Ìxï˜Þ°õÅ”’bLN6¶u¶Z ‡ÃKˆR[ë¡[zè¹e~¿ìvûh#ìtú‚AU+ßO•©­uƒ²Ëå§»Go ŒÑ €ÕjÖh”ôzÚ¼è¡^_’x³YÇó=C¯©V¾Õªoׯÿ¨îÖ#Î^ûLõô¢Åû72íµÃþ8U»cAà•$A––å$‰ç8†ã*Ë *ª6:UÞ'“eÅï +ËŠ¢Ã0ñü±§Ï Ð?öÏt³ E9Q@Xº Œöb4)žçhV9ŽB~í—i8=!ðûƒôzß jû ! Ë =ïŒ` Â÷¤áZȱ‰q&Aüpò˲‚ÀÓ± p궺0U}ºU©áZžg ‘î}âyÎh5Õö›£Îß~;zAAAAAZƒI“ÀíôoAÚ9‚«VAóý[Z*i?´”§ÖѤ%FJ襉´O6mÚ4nÜ8¿ß/4£Aoy¤Ó|;ä'Ÿühùò/½4ï©§&&%%Hâ9o½õ¥½{Ëß}wFNNJbÚ4Om­Ûn÷ÔÖºOróÍwK—ÞÙ̶ABQû¯7`·»++••jua++v»;ô^«Õšj±ZõII†ÔTKjªÅj5„~LI1óü™m PJkk=ôÂn÷P¿M»ÝÓèW55®@@ÖLY’ø¤$ƒêÌßpÍ[­†¤$½f¸N'èt|Þ¢+ãtúöî=VTT¹EAÁ‘‚‚#>_P¸>}zäçgæçgåçgœIeè£ *.Ýö[¯¶ïrù‚A™p8<Ô‹ï{<ªË_WçUEQˆÃá€@ èvûÀíöS“p8<¡"ûÔ` Dd?̼¥Q‘}‹EϲŒ(ÖKê[,z†aTWRzª56†a¬V=èõ‚(ò,ËšÍ:0%A`9NÛ›–Cyy-í-+«Þ¿¿¢°°œz˜[,ºÞ½{ä䤨l©6[ZNNŠÍ–†»€AD娱S……Ç÷í;¾woù¾}Ç8È‚ÀõíÛ#/¯×àÁƒg ”‘’bj뜞1„¢¢Ê¯¾*úê«¢íÛKœN_JŠé û_|±í¢‹úgg·ë?D“ÂÂBY–ÜÖAZž/¾øbÀ€©©©MO÷¼#mE‹Øz”!­M„ñ1"#‚ ‚ ‚ HGDQH]¨,ZbsMV–ç8Öd:MYb Ä[­úÔT 4&Êò‚  ý ÕÚZéSià@@¡þ¬Ô Õåòƒ²Ïôxü²¬8>ª; v»‡ úøÔùÕç Öֺâ9^E!n·/š?t(F£ÄóuwÎ`ÀhƒAÅlÖƒA½^’eYyYVSB5j©»¢(„Y&N§€¸\~Y&O– Ϳߔe Êñ×R=÷‘” Tð6,}†aêEr9Ža†ãªHËqœ$ñ:g4ê$IèÞÝ$I|jªE’Äž=͢ȥ¤˜†IN6êõ-IY&Š¢^¯ŸŽkkÝôÂáð„ÉÓ×ÕyÝnŸÇp:½v¯7@-!*úlµêlRO5psrR¨,¾Å¢3DztÑ(ét‚É$’ÖéDIÂ%936V›~xè½PÝvžg©ê}·nÆîÝM "øÆ”S÷îfõ«Ž¸oÄbÑAÃæ„–‚n. •’W·î„ŠÈ‡nì¡ûŽNÿÖû/åÐ>t[…º™G Ôéê7öHOÿ"¦­¨úmr²QUí¦N_0¨ÐìÑ# ¾ƒ&tÛ = @–I]êê<ŠòëWuu^Bê÷«Ðí+ß瓃A9Z†Á /Iœ^/ªûO,Ã0z½(I´7ÿõ+³YÇq ='€n5¡] !„çYžç8Ž d“I¢›v ¾™&°GO—ñxÐ0Šç}ÃP¥áéi1Àq,½`Y†ª´³,ò,¡°, >ŸÌq,!$ UØgdY†@@¦çƒÊé'èœÁ˜D=:ˆfƒ`YFQ*j(„ú,Eñ5S‡Ÿaš,üzl=‡QÒ"*ÿ<ωb½:¿(rtãHßpÍèõ`°,CÏ`kTU¿¥¤ùé™ÍYAAAAAAAA¡–ϘñFIIå¼yc§L¹„ú%E!wß½vçÎÃï¾{w›ÈÜ{<~ª\¯JØ7\¸jk©®½»ºÚU[ëv:½aná,Ëð<ê"­‚N'ètÖÔÔX;:jj\55®šgM«ªÊY]í¤!ÕÕÎ]»WW»jjœ¡Î¨’ÄSß=¨÷¯±[7c÷îæ”uNMµ§Ix«ûJbç$Ô³Tu£¥Û <¿Ãáu:}tCÝîv»ýn·¿¶ÖM#¸Ý¾º:ŸÓé=Ý­±½^Ôë³Yg2é Ñ`-½Ñ(éõ¢Á &%é Ñ` ÑjÕÓ@“Ig6×o:hÂ[thL&iĈ¾#Fô¥ùàÁ“G ŽùÏ Ün?DZ™™É6[Õ¾6,'LC–çYêkÝz;Œ¢"²_ï¾{¦"ûÔÀáðлNœp€Ý^¿±Úç RÿñŒ¼|M&‰ã8A`i­1™tt3Ž*¬Ÿ–fÍÎNá8¦¶ÖíóÉuuÞ½{}ýuQm­›ºÚÒ Ø«Wr¿~=zö´ôë×3-ͪ ë ¢(r1„õA¤3‘‘‘œ‘‘ü»ß ¤8=ˆ IDAT¹¨¨‚jßïÙsìÙg?­©q@zz•¼4¨×àÁ™ÙÙÝÔ &í†arsÓrsÓn¿ýb(+«¦ª÷‹½ëtúzô0ŸþY#GÚ.»,¯W¯¤¶Î,‚ ‚ ’Pp“0‚ ‚ ‚ Ò’¸Ýþ@  Rq"‘Èn·dY¡òpÐà9Aã˲ O½nšêlÑ ´ P[ënˆï•eªä«Ï¤òj²,‡jÆ*‹Ž:/RÉ9ä.)É !ñõtÅÈh©UÙ£ñ©Ë2§ÇhТ…z)§ñAépèõ¢^/@÷îÔö \ü©¯j0¨8>*K‡OT"_• ¶Û=.—¯¦ÆU[ëv»ý‡Çï—Ýn¯ß¯ø|`Pñûƒ€ìtz EÑðŽ T‰¾…Ué °©ö=êèʲ ÃDZÇ 'œ^Ïëõ’Ù¬7™Ä¤$ƒÉ$Y,z³Yo2I’$˜Í’Ù,™Íz³™jÄÿ*|öhZžTsÙn¯×YV—U±f»Ý]^n÷zÛ·‡}õÔ"*»¬Š,«ÌééI}úœ¦¿¬~ECÔ¯Z°„‰Ÿµ¹•°i%4(¶WV:¨;d¯¬´=zjÏžcv»§¢¢–î ¨µÞjÕ§¥Y{ö´$%éÃ>vïnVE±;+tsQ‹$)‹O[`úÏn¯TjŸ/H¦°o£íö¡H¯Ó‰¡Í2ݘÖ2Ó~D=z„~Û¿ªú­Ù¬oòæFõÐ:IB_\ÕÓ§ST4Ÿ¾”ª§ïpü*µïtúNž¬SõôéW4Á8OÁ±Xt ÚLϳt–#´@è¬ϳF£Že™´4 4“@÷M&]Ã-.Iâõzç9uë—zè º+F}w™ü¡G@ý~õBy$:‚úM; ¸Ý>¿¿~ʈî´á¸z©}YVèZ€gú±,c0HT°Þ`©ž¼N'Ð Qäh&yžøU†žBÕ WE»–e<?Ã0²,û|AÖï÷ƒq¬è™CôZ’x–eY–‘$žÂóË2„žç !ôE!tE,¢jø4· ÃЉèQFŠBdY`‚Az õ§(yδ¸T†¥ÙVݧã9©QX–‘$¦Iöi†uÿÏÞ»Çq¾§ßïîÁso’¦@JAZ)¿$;òe¤d­»^;Éݬ“¬oÕM6®le+ÙÝ?R›ª››­­ø&›}%®}ÛyØNvu£$¶c+’娒ì+R%ˆ¢(" ¯0ÀôûÝ}ÿøf›ƒ! ’çW,©§q¦§çÑݧÏù¾ß'òXÓ¯iÃP!A` T$¬ÄE€ðÃP…®u뫪glŠ¢ £1R‡‡ïBPI– £1‚‡“¬@ @ @ @ ·Q”üÞï}çóŸÿÞÃïûÁ~ch¨s;_ý7óÿ}æ™7ÿâ/>3:ZÙªmBi6Ìõ¦é[VcÁ4½•¼Þƒéâs!N›ã˜66âûÑÑÊŽ”!vD²c}=/Š¢4ËYÞ®Aˆ)$qCøn§ž"„l;HÓ|µX¢v!B˜a]—TU\Yñ²,_Yñ––œsçæžþÆ{uC±>MS<ÏJ‡š¢àšÑΚ&B<0Ï3 Ú Ckš€›°à8æÐ¡C‡ðË Î›…j=Ï?ÿöç>÷Ý8N9ŽÙ»·:-ccƒ÷ß?¸ûÝ###]##ïÿ¹Ÿ{¿ë†?üá…^˜xñÅóßøÆë4M><øã?~ÿãßß}ý;½›@ „퀘î @ áNÇ €ë ‚] . lqÍõW¬~JKøwý§\WºE¡<Ž*ÀÂ),”á¬ÁÚ©Þ^½ù×u=K¬p³ÕO$@¸) ¾3Ž3× ƒ ªÕß\7ýÒ’†ÉÊŠ—$©eùa˜Z–ÎzÐЧiÇY–eišåyÅ{pžÀN¯^)E!š=Í0ÇÑǰìÕ‚À²,Åq EÑ`Y¥i0À¢,Ë“$ã,IRš¦¢(‰¢$ “ H\7HйæiCÏ›"Ôš! Ïó<ÏpͲ,ÇÑI’1 Í04B9øU³,Ës”çy%yºÛ(޳8NÀ»]—D‘ÃñÙ°`ÒðpWQFO<õ ÛËåµ2p–È‚5?oB<¿ìâÙÛ0ärY‡ ÃÊe?,—uÈÁê仸m7 ´ö·pC ØžiúqœºntËò“$³íFEl;H’̲ü(J|?vÝòúâ8ñ¼R5À½Wu¥’bw¾†Ä²Œª ²Ì §ë"NV’xM•eAUžg:6óN׆kÂ0õýŠå@ÉÀ<Ï!²JÀ)ïºQ§¾5¯Ë±ë†‹‹všfŽ⬕zÝGÙ¶C}9ÃЪ*R‚¡È!Ñ4¦iE8Ž‘$ŽçY„áyF–y†aTU iJÓD8FP3ÏDÓDš¦e™çy¦hßðÇ‚Ö1ð…Ö.»©'ªªq#ŽcqÆ›‚eiš¦Y–bYtöQI’Ñ4•eô…@ñª}„(ŠBa˜Ð4JÓ<ŽSŠ¢Â0¾YJŠE±,…‡ÔÀ¶/Š|’¤<Ïr“¦Øä) LòH¸8Nòœây&M³æ£ HÊišJ’Ì÷#†¡)ŠrÝ޳$Iã8ɲ<ÏT}ÈsE ú!jŸT#€ðBPv¸P Á®nàU0Çð<׬aÉC K„aȰ’çYUmÔežç‹þÆ+JÛ‹_¢fŽì<ëó<[°ðóø¸ÀN–¥ñˉ"¥ÿ@ @ @ @ w-çÏWÿÕ¿úÚÙ³³ÿößþÄg>óËn«ÄùóŸÿ‡?ýÓþáþÜÃï[»¥ë†–å×ëWýõ–åc‘=¬lF0¶ÊëY––$^Xžg dÄŽà8jšFZG‡\©@L£\©è½½z1ÐqutôÓO?ýÅ/Z[ø[Ž¢Š" ¯e*ãtiÉ^\´ìZÍY\´íZ͹reùôéI°áãX2Žc:;U°áwu©==ZOÖÝ­V*¥žµR1p>ì–°ÉHZl½‡Óô!¬Nx}&¦éONÖL³áͯ՜¶y‚ÀŠ"†!5wOjɤ€$ h \©$•JÊ.ŒXczd¤kd¤ëĉC°¦Z5A ;>>ýÔS¯üþï?ƒ2 yt´ŒÝ÷÷ÜS†È;š¦šzýí0¿CâÕâ¢õÖ[³—//_¼¸páBu~Þœ›3B›Ýß_êîÖ::”®.E×%A`A¬aÞ!Ë ò<·,aÁBM±>„ìæyãáz¢Q#P¹¢ QÍG˲@Ólw„n׌‘e7ƒ@Pˆö”$^’¨N „Í ëâñãûŽoÜ9ZVðÖ[3o½5sæÌô™33ó7§A|ð`ß¡C÷ß?pøðà¡C»Y|¯(‰‡ V­Z/¾8ñÜsg?ÿùø½ßûöÐP'(ïß÷¾÷lóM:@ a;ÙuÃ…@ p[cšB(ËrË BiÚ¨c>5T0ay^Ç)BÈqÂ4MB–À„:ÞÈÅ’$uœ5töBÂJB¾…aŠò¼¶¶~xž•$lJ²Ìs‹RUœJ EÍIzš¦4MB}·G§óöäŸ2úÐNïánÛð¨\¯M&õº‹̪U«Z5áaµjO›¦·´ä¤éÕ3$x` ~KΘaÈýý%¬6&ÜYæâ·$Ý"I2× @nî8A¥Žc× ã8µ,?ŠR¸^~šÝ‰À÷£ H,«Í• ï-ϳ†!ÁõB×%A`dYPUQ¸Fó<«ë¨áK%.1¹×ñ¶\ðï#WP ¨È¢Ôó¦"?·m]«Èwœ0M³Z͉¢ŒðQ”ø~Ç©ëFت¿6Pi@QxŽk¸ïaØJUa½ƒT`ÏgYRG°7Dü CÁWo¯£[ÛŒäºa’À¨]E)B>=ÔÎ˜Ç ¡îZ„ÒŧÀ²ÙÁÇ(Ë<ü>‚èf5î‚À™ŠaØ ˆó% l!wÐÓç Cƒ¸Ÿ¢P’¤Eå9Šã„¦©$Iã8§(ñú«7IÏó¬ °pÒƒ/—ãhIÒ4…oahÈ«ªlj °ÇÄq&IBˆe™$I†."Žc)Š¢¨<Ž3„$q¶Ð4Í04JEÍ4'üá'I u àc‚8Žõ“\7Båy†qKßn`Æ~™™•Õï”ã°ð3 8÷BˆahláG¨aág:ŽÓ (rº.«*/œ °4Må9RUçY¢(öýضxÄ´tvª†!•Jr¹¬ƒË/T*úöèŒ „Ý Ç1}}¥¾¾Òõ¤iV«¹µš³¸h-.Úµš»°`--ÙµšóöÛ³KKÎÒ’ƒÇD‘ëíÕËe½§G«TŒînµ¯¯ÔÝ­õõÝÝZw·ºQç¼'†aây¡e®z^èy‘i6²<;•ËÆ‰ß›¦÷Î;óà¾á…‰/ù…,Ë5MS„¨Ð5Føf‘± ÊqÐ3@ ×oÇš­‚V>ñý”RX+ï8!„ª¬³ê{Ð9!„ÀÕ…P£Š;ju§( ”@<ÏŽŒ¨¨ „†BˆdùêFÀzB(,b|F`ÛÜ'M °q ¨OKD`Äž…alÛÁÒ’ëyáò²ëû¡m¾;N†IDaú$Mó8ÎòŠ+‹%»ðŠ+qãb–²U-OÅFUW@ @ @ @ »Ÿ,Ëÿçÿ<õÙÏ~+ŽÓßþíò©O½G>l€8N¯5ÔÃ?ß²Ç ,«ñ§¦È>°m¿;ý•¯¼ø•¯¼(˼ª ª*jš¨ë’¦‰š&vtÈQ4òAâya&++~­f›¦·°`., „ÃÐÝÝj¹l”˺aH`®ïíÕ‹Rû]+4$n †îíÕz{µë•ÄÈó|÷ssæâ¢=?o..ÚÕªõæ›Ó ±¡%ËÒ]]›M¾Ö×gôöêýýFw·¶™ÓÑ"¬ °ÊÆžnš䉸nhY¾ïÇžÁiÐó"ß¿šK²¸hÙÓuÈ:Y½5°Þ+Š€µøM¾h’¢ðŠÒH6Ñ4QUEUdYÐuqsŸB†|üø¾ãÇ÷ÁCÇ ÏžŸž˜˜¿ògöÃ(J8ŽÙ»·gllÜ÷‡J¿ù—&èº466466„×$I63³25U{çù‰‰ùÉÉÚ3Ïœ4ø¨ wÿþ²,_÷‹hæmýnC¸2jÆBÀ³çEqœB>ýŸþÓß×jB¨\Ö¡Ç266tìØÞRi×<£i :ÿú_?111ÿì³o=óÌ[¿ñOýæoþÕ>°ÿ‰'Ÿ8qߪ@ ·d¬@ @ l ݰiC–¥h íW[°,¾Ev³Zs#,èZÊž£vz·ÎO!ÂíÈåË—¿ð…/ìô^Ü€eKÈr4µíé$aë7ÍÅZÔ­°º¸]i.üòÜÃËÿ>BÈ0äááÎáᮑ‘®¡¡ÆÂà`”£ÛrD‘ééZ£ œ“áx©×=8ÃÃÉÉšiúóóu,;F>œoqÒšaH•Š'äÝ“sw"Šœ(n6Obµ¿x½nùS&P>_åƒ Y#óŒÒE'~3»C*:ñá²Þò'èítvªPvq3PÕ4ÈoýUÛ²‚<Ï,+Ȳ†®Â¦éÃuÜâyžC¢\­ æÔT /›¦W|Ö ß\ju]ÄËø2 ËFR¼”3 ¥ª"¤‘Àw¾uE8ŽÆÕ17Æ­ËÛYëôì_oÄxõSZFŒó</|–ea˜ÀS ‡†÷!ËrH‚ÿ®†¦)†aò<§i ªXQ…‹i!„²,[•SA`†fY*•B±"Pê3 ­i"ËRŠÂs+IœªJ¢ÈAg (…|qPï ×Q€Ú ²,\ïè[ý®ñ±þzƒ¿ísñX†ÒaÕïGIrs…‹Â0 º. ª}–¥qYšn C!„²,gš¢¨$I¡jlšfišQMQ( ¨“¦Y±œÌÍBÓ”¦5*XÀ©–ñ)«¨Ú‡T1Ô˜ƒhtá0‡•ŠÒX‰¿A8öñJžgB¸? •nQ³c‚µ ¿)@ @ w8—/£]ßB¸í“üòrtO°î*ºk²éø–«<ÿ(Êêõ¸»›§·fà*.\èߊþØ6CQTOÖÓ£Ý{oû·¬ ZmHð—–œ¹¹úÒ’39¹ôÊ+—ççMpÈ0tw·60PêéÑ:Êe½R1úúŒrÙèï/AØØmaÈ›95áÓl¤´à¨iÈc2Mov¶^LlYYñ¢¨MV ¥¾6«E†(/b]Li)•”ë½UU(Šïã8½xq²ããW¾õ­qßX–Þ·¯wllðÀÊèhåÁ÷tvn°`¡–¥!Øþ‘GFñJÓô&'Á}_šª=ûì[ôG߃ èrY­ŒŒtŽV@‚?<Ü Á{·†¡o]À3àyQ'p,$Iêº!Ä?£†?wÝ0I2ߢ¨M³$I''kišAN“ë†qœºnÇIÛRE hY–yžg ¾QUy…ÿ6“•@© CÆ©Iº.Ñ4­iBQ²b °å”ËÆ‰Ɖ‡àaQ|ÿå/¿¸¼ì¢¦øþøñ½ÇŽí½ÿþÁ5ŠÄ죣•ÑÑʯüÊGk5ç¹çÎ>ûì[ÿþßÿíoüÆS=´çãàÉ'vw«;½„»— fggwz/»˜›Éy'¶†­Š" e„[ʪ¹xj{ìB@ a›0,„ïc?i¦ž×Œ¢+J!î ¼NY–ƒ: œŒÅ0še™m‡Å®Æq†·°þ£BHQx»À/TG}¼¢ \„X ƒ=/0i ³¤!¡‚ókhÖÐЖO}êS_ûÚ×vz/®Åq=ý4úÄ'Öø{Ѝ)Öx›í~‡íz‡ë:Çv_dK ¢ÿ¨þwÿ«?±Þxä½Ê÷}Cý¦xKsãÕ/ðùÆ%ªUFùUãñÏZÏïMê[¸“-¬Ð⯖ÿ?­ö'Ë·îUÖÏ“ÝÿÛi®r ©=Í=Í‹çöÜÊ·Bÿ¸ù•¯B †©©^¸reüņ!C”¬Ï›n}?M†}ÛÒ4‡áYÛŠi$P'MSÇ ×~]]—†Öõ†(TÚðCGWQ–eÀ›o2XõY–QUÃ7"I¼ 0›¯p³û¹¡4mÔ³Ÿe¹ïG¾çy†Iâ…!äyÑMÝ[Ñ4EQ4Byáž’‚îÖz¶Š|¨×…‚è¹ñ<Ûìα¢(@„ºªrŠ"i{m w¡f×ÍTYÀ3p°ÀJ× A&B ø+G!HÄ‚¸n#à gzà Î}:.°#>+ì;ËuŸªþq9swz»‰=ýôf6Àq\²‘ã‹bÙN–íä¸.–íbÙ.†1(б¬ï¹î›Ù¡HE\á fí¹¹úÜœY­š33+³³õéé•ÙÙ:ÌÆrÓß_êë+ vôõ•ž}ö¯¾÷½/­ç…FgÙ–í`ÙN–í`˜N†QBKK_ãê-zw„»–fž`=Ë|Šâmû%×}í–½èMA—J?îûgÃpjG^^’îÓõG]÷5×}=ßÌ øÍ#{;;ÿqžÇq¼ÇÕ8®ÆñB’¬ ´É&ÿøÇŸÞ\ì¶# “¹¹zµjÍÎÖáÒ\­šss&¬Ä'(EúûKå²Ñ×gT*F¹¬÷÷—z{õRw·FÂoÐúù-Ù4׋}ÅŠübÈëÚŠ|]—¦¦–'&æ'&æÇǧ_}õrÑ!;66866täÈpo¯¶íÌÝE§³³uø"@‚ÿöÛ³|«ëâž==##]££e,ÁßÍ×Ùb“9Jøà p´ç¬™tMðêmŠ‘ç¢È_¯j@ Üå$Ivþ|u|üÊoLO¿õÖL&Ç><øÞ÷Ž<ðÀÈ{ß;¼gO÷Nïf¢(ùþ÷ßyúéמyæL'<2úñ?ð?1¦ª¤n a[yûí·«U2ÂyÇrï½÷–Ëå?ÿF9ï­e“Q$¢Œ° \;OL÷@ ÂÖ&#t#!ºV©ƒ'öV·GërîD׳X¶ŒHh•ôdµî¤Åu²Z’Òò”Õn”¶^@ # ““'/þà'O^?oÎÏ›0åÇqLo¯Fû¾>c` c` £¯Ïèë+õöj7œ±]X°ßyg,¢óSSµ™™•$ÉD‘kúC"Ñ={zÈd¡H‹†Þ²‚0LŽÓOúC¿ò+•JÛR‹ªVÍññéññ+ããÓ§OO.-9ÇìÝÛ:ï±±Á÷¾w‡©6Ã⢽°ÐàW«æÌL}qÑš™©W«ÖÊJ£jÃÐÝÝÚà \Í%júúŒÁÁŽž Ȭ °Ä‘Õ8Ƽù8>³˜ÂÓh)*òiš Ã$ŠÇ ——¦l]êÜ»·ûàÁ¾C‡ŽìêÒÈÁr«1Mïwæ'&ª““5à_¹²œe9ËÒÃÃ]pÿ52Òuà@©F°å¤i¡’¶ÀrgžFQêy!„V6Cš¯†=Cd&nǰ‘̶ˆä\;/ ò醂(AM!ìãø/Ô+â8Ö0 „òYMY–Ñu‘çYIâEà8zÛ’Vaû‰ãtbbþ7®¼öÚäéÓ“Õ4ͺºTPÞ?ðÀÈÑ£#»m<”÷ßøÆë÷wãa˜|àûê§"Ê{@ „Ûbº'@ Ü-`™ˆiúy~ÕKbÛa–eI’°¼««Uõ–åçyŽ}%0å–¦Ì@c1+l<Ë2lC['Š"°,ƒ*•$TÐÐck¼ª6€øƒãYPCáÁ"„EdYš¢®7@è•$qà;ŠÂ[`I\,@ îHðE¿e%\Ó‹ø~²kWÆíV¶©(s½–m·Ùîéë}uÏ ƒ ±,eų,ßq‚,ËE‘“eAÓYpÜ[Ûîë¨êo¬;¼uàžÏµ+ùÕ|ÅwWlÙîémZ‚YoíWã4Ë2è/åy†1Bü„¢(£¨Ü÷“(Jâ8 Ã$M³8N) ¹n„P1¸³,Ëó< Ó<Ïã8És”$YžçY–mïø+…jé)bz´->ÃЂÀr-Š<DZ¥’$I<8CE‘UUqµnþVÒ¯ ˜^-+ð¼ÈuC× -Ë÷¼’+l;€eÛ Ãó"Ëò]7„åÕ„ž?˲Ìkš¨ªe]—TU€;]—¥±l2,\/ׂ@X?I’Í̬LMÕæçÍ… 4ßX‡ mEè(—u|÷öꕊ1<ÜU© ›lá†úÝ*zÁ›±ë†°>MÓõœN×Öè_ïdµvqbÁýw¿ûöÊŠ ‚ûÇ¿h¨s“_ÁÓO¿ök¿öõû±ƒŸûÜÏoÃMzÄŸþô¿þúÔ׿þËï}ïð­~¹›br²vòd#‹éÌ™iŠ¢ÞóžÞ±±ÁãÇ÷;¶÷ÀÊöï’izE÷=,@º&BˆçÙ¾>£è¾éÚ»·GÓvW_[‚ ^•†gA <œ­ûŠ87£\ÖËeÝ0äRIjyØÛ«o¿°˜p{aÛA&®‚°Û¶¸Ïº6©5ö¼ÈqÂ0Œ'ô¼( cÛà’±†Z×EIâE‘»$qª*Iœ¢ˆ¢ (‚®‹pn/j{ÓqÇÃàa˜ú~×\wœ0IRÐy[–I&I’ºn#±.Ê@bÛA–e¦é-Þ×CU†at]dZ×%†¡TU„Ájžg% .¸œ,ó<Ϩj£MSO¢(<\|q>Éö|Pw 0‘_(*øÙñh|õ!ÓôBišÕën’d®ºn I’$Iµß w(Ëò4Mƒ ɲTT¶YDeHF¢yž…#—çYA`yž-•$žgá–ŠçÙŽE’8YæUUÐ4Q’„¶×Ýž]£7¸¸ þÖV×N†Ó&BºÓ¨ ìãî=£¨Q!I†}ü{€ï¡Lfad™g&ÏsIâX–βœçYŽcò1 Ͳ4Bˆ¦)¡(‰µ CQ¦9E!žg‚ ¦(Šãpîs“$i&,KSåº!ÌjA”¦9EQqœú~BQ9Bȶƒ ÿðàL…$GEÁä*Œ;ñ|c&]+å}?Ç1ŠÒèÀ¥üMeÿU)¿¦‰ðöáˆb˜«R~8nì@ @ ìÕªuêÔ%øwæÌt’d½½Úƒîyÿû÷ðƒ÷¸‡Œ»¶<ϧ¦–A§vÅK—m;`ú=ïé=p 2:Z­ô÷—îà‰iÂ-"M³éé•jÕ„ˆ¾jÕ‘~ظ ºírÙh†öé8Àï¦DÛiš]¸°:{¬ …8rYozí+T†‡»:`Bp‡Çéò²ÓЦéÃ>qxOQ \Œ5M/’ h“s'©(²ÞƒC7!ŒG¸RI*v–JfÐ~uŒúùóÕÿú_Ÿý›¿9=:Zù7ÿæ‰'ž¸›Ë ææê¦éáÙ©}10‰ã˜þþRo¯^*]‘3 ©R1z{uŠÊÏŸ_8}zêå—/Ž_‰ãtïÞžG}â‰Ã>:Jnˆ0a˜¼ñÆÔ©S—Nž¼4>~¥ZµxžéîÖâ8[^vh½ï}ûOœ8tâÄ¡‘‘®ÞÙ«dYþk¿öõ¿ýÛÓög¿ô¡ݳ³;ãºá׿þòüÁsžm¿ïSß¿úêååe‹ï!Äwÿþ^ÒßrÂ0b6àÁŸ™Y™]™›3çæê 6ÄÌà’6ýý ¿ï¬T%mvúÜÆAì8¡ë†¦éÁ‚놎š¦çº‘ãÍ¿ú®ÛX¶¬ m,E!†,•äÎNUUU QB[E0 IUËš&꺈#‘#Š’K—–Š=Ûóç«\g2”k‚níèh…œÁv-–äyÖÓôòá˜ç,»*Öo»¦®Bðd&¾Aü³izqœºnÔ6ÊIjØð9ŽQUzª¯ªëÏ_èëºÄq×èoç§D 7E§/.ž:u Ò÷Ο¯æy^.ëPÖê[pßž{îìSO½òÿpŽaèGý©Ÿzè‰'“!V@ „Ûbº'@ ìyÞâ`¸r°€f•`ª 5½yÞp¯`…‡eùy~ÕÖáºa’d0…šZüZë&™°Ç?éºÞ °Z(ŠÀ²4ËÒŠ"³xži6£@߃„Ƥ”, G4w°”@ ·,À¬v¸ã«!‚9Z6!Å5«5ëØ“…Áº´"`R[µŸ×lk¹ZV®Žf^¿ª~í`è[ Ø÷V­äVÛӮײÝJ?=ËòåegqÑ©×Ý•/M3à ý ·WïìTV?÷IZV‚kÕÊ6Zùë<}]úë¼ú¦¬‘–ý:ø5&IfYADKKv¥¦é…a†±ïGA¸nljã„iš¹n˜¦yDqœÅqEišfÐɌ㠡Miè)ª¡Ç ›¢Hêo8ZKÓ” p<ÏŠ" ñO²ÌwtȪ*4Ãú‰’~]DQ‚ÃIqà©eùfêy¡m`¨‡PTÛn´l{ÎV–]¥!©7 I–yX.•®.ãõ Z•åÝë[$ÜI@F%$¼MMÕæç-,µÇ™9,K t@z¤½áÌ7øåIÕª5>~¥mÂçØØà•ÑÑÊèhe` #IÒMjôW·Y_õ ¡œãM CÒ4©xvEÍ2u7{þêW_þßùæÏÿüûû·?±m¹Q”üâ/~åå—/~íkÿâF¶çEoÛ^} "ç^~ù]Ë z{µ#G†!rîÈ‘áÜ×WÚéý"@ ¬1Ý@ ܽtó×X'Z”-¾‰µ7×'-rŠ›µÐ‚¼¦EÁp=ùB‹v¡Åõ°ÚÔP”Ê!âš'„ÝM’d®{M¼Žï·ŠÑ[„hQ”øþ5’ô4Í®cf¿fÍ.0Èg¶}ÍÆQ;ƒü-eµç°tahš^¯%aŠ(J«ß¼hM*¬ls!†+õê• «Zµ²M˶ÛlÛ²í6W¿z[Uý­ ““'/þà/¼0qöìLšæ‡;¶÷øñ½?üž]e¹mûm»…-‘=A9Này±ëFž†aâya¥žEQ’¦Y§a˜ÄqÇI’¤à+*S·pSRTžç[0jJÓ4ϳ<ψ"Ëóœ °¥¤ª|G‡,Ë‚, DI¿y@]꺡iz ¤÷¼¨ ©]7²,ëì]74Mœ«·¦ë’ª Š"(ŠÐ @^_*IŠ"* RUQ–yYæu]TU‘an'y1áƶƒK—!WÔÛü67gB?„¢¨Þ^ Dö8ámd¤«\Ö;;ÕmË®¬Õœ³gg!Dr>MÓÛñ„Ïâ ‡ë†/½tþ{ß;÷ê«—m;xÏ{z-˲°†C];$ÍÖÓ—kÆzÃ+ÂÚmÖîºÄqúK¿ô•ýèÂW¿ú/|pÏÖ~’[Nšf.,œ:uéäÉ‹§N]šœ¬qsï½ýÐAzÿû÷wwïŠÈ¹(JææÌ¢û~r²vñâ¨~Ñu øÃ÷¯;Ïó¦ß]^víZÍ!~­æ..‚ß)^sUUèéÑ»º6üÞ^ –»ºT¨äÔ¶˜°åÒt[ó{MÓÇZÜ © æ^½Y|>Çi½«w C†$„Õ龚&ÝÍ ~p› w‹PøÖ²PáÃ8 Ú˜¦Ÿ$©ã„pÍá¾eùqœz^èûQ¦kk²‹Þ|M9Ž!ÞüÛb…<ËòmÛã ŽÖ•~Q”˜f€PnYA%Ž$Iqšf®eYæûqž£0Œ³,‹¢¡<޳-‘cYšãXžgxž¥iŠãXQä( Š&rŠ"ˆ"DzLË ÀÆfÊn_;9œPax c>œœQa N#¡8Nš xMc\7MÅ@÷€ £²yžµÍ]?¸ö‰¦‰ÐË“eÖ¨ªç(Ë2Mó%I¦(<¼:Ïs!ŠBp!?B´ûišq›eY%,ËPrÝã˜<§|?B(GÅq†Ÿñh9¨Ý˜öúi,«ªÕ› ø"ì3ÎÆ£Áwu<{OpL–eE(|\j2 ­ª¿jšHÓtsË4ÚÆZ@ @ #Ëòóç«§N]zá…‰_<¿²âªªðÞ÷Ž<úèè#Œ>ztøFð¼ç]N&o¼1uêÔ¥“'/_©V-A`ÇÆ†ÆÆ††z÷Ý…ýè]ß|ì±{?úÑ{ÞÍ÷¿û»ßþƒ?xîþèþÑ?:²ÓûÒÊnóÝc°øþäÉK¯¾zÙó"¸¾`ñýèh™ lAÏÎÖáßÌÌÊÜ\}n®>3SŸ]Á!1º. t vv ”;:;Êe}gwþ&ŽÓ‹á²ES‚ fYzß¾^8L††:÷îí¦iÚ¶Ç êu϶X¶¬Æ‚iú+!hªˆ °X‚_Ôâ7WРŇeX—_Ë,Ë¿|y©Yù $øsЩ0 —}‚~òÐPçÝâKXM3n9ÃĶƒ8N¡ôTÄ´hY-AÑ~_¶í IRˆhmÉ1/Á{‚ÀH/ËÇ1†!q£(tæu]bYZÓDˆ Å1Ϲ«š&Às·óó!·qœž93súô$ˆï/_^BÝsOùøñ}?¼ïøñ½ÃÃ;?þ|õ¯þêÕ¿üË“‹‹ö‡?|àŸþÓ‡ü~r~#@ØÓ=@ ®”.!T‚¨£4ÍÁ¶æ\la½K–å0ÍŒu¦é#„ ¶ !ä8Ašæ0kÏŠãìf} Š"°,CÓ\°Ö0$„ 4¤ª*2 ¾„¢ðÇP¦˜8AA ϳ’Ä¡¦úãÐ:)p—Ó¢n_í[Ç'üÂÃÖ-+-mZ¶°úUÚ6XûUÚ6hÙÏUoäæJ¡l |*‚-Q˜ÕéÕföÕ õuÚÛ7örë|Ža÷ñ©S—ÚÚíß÷¾÷ôôÜœÝêC%¼¨ Þ ‚Øu#Ûö'„ž$Hç=/ ‚Fà{ÆADQÇi–åØAŸ¦[¦¡_¨º®AJšF4MÓ4…EQEåyŽÿC(Ë`;y–¡<ÏovØ:ºÇ2 %IMӊ³,£ª"ÏÓš&±,ÝÑ¡ S*I’$êºA?РƺaAà$‰†th×O&õºÛâ5MÔ„`-ºGMÓÙèêM1 ÝÝ­Â) EhQ9jRÑ7J΄ۈ8Nggë Ñ®VÍ¢Ôš&îÝÛƒEöM©½Q©Ûï»ôýèÍ7§'&ª ¶Ÿ˜˜¯V-„P¹¬ ŽV xïÞžÕ¥t¶™,Ë_yåÒSO½òw7¾¼ìŽŽV~ú§úØÇŽn&)Ô«0Ââ]Ç 'üÝßýöÅ‹ Ÿþô‡öíë)\‘SH]ƒ,µbýlÕ‡?­Ì 0 ­ª"Œá@™"Ž£eYàyF–A`yž}é¥ ³³+ŸøÄCû÷÷ÀeKU†¡u]¢iêÚÿŠ Ãì`®ZH‰9yòÒÉ“ßxãJ%å²~üø>è;Ýÿàn "7M¯è¾‡…™™•$ÉB<ÏöõE÷ýÈH×n8¶â…Jq˜¦™‡óó&\ÙlÜyãy¶£Cx¥bôöêp/fööê$ñ‰°ƒ8NèûXòýº¯Aû~lÛ¾çE¾ÁÙÒl;€»­zÝ_cDUYæ%‰7 Y’8YæUUTU– C‚¿*Š ë’$q’Ä뺹 wyºÑõ(ÖžÛŠÕåÙðMGK̓béšëÝ}`V9(V£Á÷ø>eu­¨v@î"w--¿%Ü13Mßuƒ0LVVü0Œ}?rÝ Š~0L C) “0Lšný4ŽÓ8ÎZÆ]ÛBQ0~Ò¸äÝìX‡¢Q‚@‹"OQà g9ŽnrÔ4‘¦)–¥ED´û,j ʱ²$æÕ˜"Ä#šs‚lK¥ÌÛøÁ{>üá>z ³SÙé$\—óç«þðgÿÇÿøÌ‡>4ºÓûB „Ђý·{úÙgß:yòb–åùÈÁ'=öؽýý¥Þ5ÂÈâ¢}îÜÄ8a8EQÃà 7- íÝÛM*³Z°¬ Z5—–œùy¬³·ìjÕ\\´——]ÜRÓÄrYïîÖ*£§Gƒx˜þþŽJEïïïØ|tŸçE.@¨^ujªöÎ;ó—//EQBÓÔÐPã—<2Ò1{¸h1aÀ°m‡I’Z–_Ó{^Çi[1½ç…Q”Bj'èì›Z+&¶ 5ø+ÁD¶JA`u]V–yE᪡^×%žgeùªÑ~Û>Ÿ1±Õªiš~µjU«æªH³«aE!”ëº|à@yx¸Ë0äJEïíÕ‹Rû Ìâ%IvéÒâÛoÏ=;óöÛsçÎÍ]¹²ŒêîV>rdhllèèÑá›M븃™šª½üòÅññéS§.=;“$ÙÈH×±c{ÇÆ††‡;/]ZzöÙ·^~ù"ÃÐqâÐmaÐþÃ?üîïüηþóþÙŸù™c;½/×e×úî4Í.\XÀ:ï3gf|?Ò4ñàÁ>"¾ßq'œ™Y¹reyffezzeffeffejjyqÑ‚ žgAyÿjðûúH!œ-&I²wß]€bZó¯¼ryeÅEÍô 8RÖsÝ)„8úuÕ6«¸²%ghæXÉ8 «˜lµzeO¾ÛÂõ· œªw…““µsçæm„ϳ{öt8Pnô¥÷ï/ßa!s„RŠêu?IR× !iî8l;€#Ýqý8~E‡®B€+V\ ªª ¬ªŠª*ˆ"§(‚ªŠ¢ÈÉ2¯ë¢(Bt:^h<—J’(òÛŸŒF v× _{mòäÉ‹'O^:uêRÄš&=:ü裣ǎí=ztxGG“${þù³_ýêÿ÷üóo†ôÉO>ô³?ûðÁƒ};µ?@ „¶Ó=@ ÂMsx®Åq ÖøUUh¹¬·)Y–_¹² "û¦ÔÞ©=>dX–è/6ˆìGFºz{õJEßÁ ´(Jš ŸÕ‰‰ùññ+àµïìT­8PÙmiryžŸ:uéßxã[ßzc~Þ­<ùä‘}ìè•[ñrKKÎ/üÂÿ3=½ü§ú‹Gox;Щ€ˆgãÌóÂ$É'€ûÐëCj\'PÞÆ÷c\üæÝw«¶ôôhI’Á¯Ø ÀMô·á2 ×_Yæ!;®©Ëgt]\¥Ë—†VUaõF6ü!@H—zé¥óËË®ª ÷ÞÛüø¾ãÇ÷>üð¾Õõ®v 8~~Þ\X°°jjúC†!Ý÷°00ÐQ¼e»“X N&±ánk`Øîòl;ÀB|Ç =944iÛMS;v4ÝtÓö}û¶8ÐÞ××±}{Ã5¾Ñ–Á¶½'ÆŽÀ`A`ûú:!VóÀö fžþäáÃ'ÇÆr™Lê‘Gnyà›úû{6QËW¿úÊýÑ÷¿ð…'>ûÙ{Ö{_®Ì÷Ýc°ÎÄ÷ï¼3aY®ªŠ{÷.ˆïW)Z›P?Ò îûññ¹‰‰¹K—òs—/ç!Ä‚¦©L&ÕÑÑÐÑÑÐÑQÖßïØÑÔÙÙ¸‰~ãœl¶?“ÁÁ‰'Ʀ§uTßã‚[×¥J„¦™šf麥ëåßVV½Å«~±¸°êû¾aÔÖx];±páTJŠÆTëà“It$>ic°¥£ªR4@×ÁTëà«_3&“e‘a^¢c£ $‰&º%¶¡(P„ƒÚqØ:ªXŸ*q%¬¡/•l¨iä8<˲\Çñ°†Þu×  ¯£†ž¦©0De= BaHÕå‰GˆahAàxžæy–eYŽcxžaŠã8†¡À†¡Àq‚0D®ëÊ÷CÇñ|?ðýÀuß÷=/ÃÐóü:ÇêYŽcX–N$x–¥%‰E>™äE‘—eAUEQä’É¤ÐØ˜H&Åæf%™Z[eIâÉ4óš=]¥æ‚¡+ìÁSŸÏ—ÀY·W¿”ªŠ²,ʲ¨(B2)B8£¢€USP”räb2É˲ˆuö$æ•pƒ iæÅ‹³Xdµ×““èxCòdk«ÚÖ–Ú±Œö*h¯7‚)>³g³ÃÃSÃÃSÃÃÙ¡¡©‘‘×õ!biïÞ6¬¶ÏdRë½³q°àþÇ?œœÌïÙ“ùÈG­žà¸tiþ×~í«†a}ë[¿½r3|?øüçÿöÙgßùú×óž{zñvÜŠuŠj&û-Õ¦P0qƒzü˜ ÂŒ¥üAFd÷ÅRþ¢ `y~¾444uáÂÌ;ïLœ93IÓÔ®]­ýýÝwÞÙ½Y’alÛ›š*@} pߎæÎŸŸ†1LŽcÚÛÓø„€ ø7HL<±áQ" Õ ùØËÄ.LÈ †–± á(‘Dk.•’pÒ5¤%@B5N·ÆgætZJ§“¤÷^?p«U7ßq¼RÉ)mÇñ!“Ķ=M3ǃáˆè°m U• M"!«("üáj ôÙÅ}žçÙtZª.NIØ\\—î\´izšV£L]–¥9®<æÃ0´(²Q Cƒ¤›ahÏ @DîûMSžP ‚Àq|ŠB¥’¡ïû¦YWQp½W¡¢Å/¯V´øªŒ¥c8ÔùŽ®Ò4u›"ñK‰ C±,sÃ&YAæB h!„ð ;žåÁ³?xVÏÁô=*O6y¨ýô‰áá)U•xà¦G=tÏ=½[LûKX Ã>uê8 Žƒ×!RBìµß¹³e½ÜL„uDÓ¬ÙY=—3ææŠ³³úÌŒ>7WÌåŒÙYcvÖÈåôÙYKŸÉ¨­­jk«’ɤZZ”LFmnV¶mK57+ÍÍ2ÌŽ]wlÛšýðpvt4wñ⬦™!ˆ ‚P½®®¦­·<¾†¥ÁÂ…À­0 Ãö<2› 4x¡`B†LNAB¨®[¾hš ³Z¸ìñRÀŒÌ3¦R †¡dY„´¨[,ËÃ0é´µŠ!åS’xA`!ß3•J0 ­(Â<½^(”¢…ð–ÚG§ºX–nj’q¼N/tE¯ø†a?óÌñ¯ýõÁÁñ¾¾Î'Ÿ¼û±Çn[Yùg]·†‡³CC“ÃÃSgÎL9s ©TâÀmûöµ8°mÿþö}û¶‘òÒQÆÆrG^œ8vläÔ©Kžtu5A4f÷ÛmÛ}é¥Ó‡Ÿ|ñÅÓóóÅÞÞ¶G½åþûo:x°c•΄«Ç·¿ýó?øƒ¿ÿýßðßþÛ×{_®‚Íâ»ÇÄÄ÷ƒƒã¶í¥R‰ÞÞ X2ûú:3u½w“P& Ãéi øøÿññ¹K—æqÞP&£vv6íØÑ¸cGSgg,··7Â5’ÍðËààÄÙ³Ù0 cU"öìɬÍɶTrtäø$‘é:8ñMü?èòuÝÊçM]7cé“ C+Š˜JÁ€uâã{¾?¨I4 Á?}ú2V©ª´sg3ôɱŸŒi6#ÕµÁ 3–(´ÌCssÅ¥‚œqÞôÿ£u®².Š$ë‚ïCCSGž?vìâÑ£&'ó¢È:´ãî»wß}÷îÛoß¹öQ£A¾øâ©o|ãõ#GÎ46&?ýé»>ó™»;;×x7@ 1ˆéž@ Âõ<¨’ƒ½”$ûVÔÒYÊÆòÒcùÛQ ª$`GmYõ·Ä9ÛaÓa¶ï—çÉ <5,ã“U½»nÙßø~Õ¯Cled5ŒÊ^c/†hñj™˜Øj¬6Ö|ÕÓÿ׋˜SX’¸èœñjÌðŽOžDvâUì‘©¬2ÉäÂjLòtt‚ð*MÓŠ",^]xש¬ÆÅôa³`ÛžeÕÐÐÇ”@ù|Ѷ=l¢·,»TrmÛõý0¦¡÷}ßu}× <Ï›Òu¢EÑ!šFµà ¯óDMQTª!Šçžg9Žåy†ežghš¢iš¢(š¦( Þ…! ‚ж]Ïó]×·mÏu=× Çw]×uÓt£uMjîöRÄ…8ŽeYZ9Žc9ŽN&EA`A–ad‰„N'dYP±¹9©(’¢H>B:ÌëK„336`‚æ2Q„7.ト (J§Ñ8!¼ÇÁFò§'ÓtÆÆæ¦§µÑÑ\6[Èf5XOMðÏMUÅ;[°È¾"µOmÛ–ÚPE>*™rSCCSƒƒàµçyvß¾mí ™Ÿ 6v îŸ}vðòåüîÝ­ýè­«-¸†‡§>ýé¿hhH|󛿵m[zµß®N|?ø×ÿúÛ?úщ¯ý7ß÷¾½«÷. ²4 ÛuýRÉ™/®$2_×õ T›a”3Ãåó%H\\ü"W.K™HðA†!r/ CŽ£U5‘JIÛ¶¥ššUaØ\–•á>ü¿àEå8ZQDš¦S)©ºÈÙZR(”¢î{X˜˜˜÷ý!$lÌ}ßÕÕÔÓÓ+±v#pE~,£‰ ŸpCC”¥’cš®aXšf™¦c𮦙ŢmšN±èèz¹¦™¥’ BöBÁ4ÍÚó24M)Š”LòàUWUI’¸D‚‡êV’Ä'“‚ªJ²,TˆŠ"Ârt°2–I&ÁwyÑ”ê|ËòbƒÏQb¥hªSGpVI,á„$–l=àšÏ›°ìû¡aX0iRQH8®ëéºåûá l×õqƒåßNU%CÐ4…ë…s˲”(ò…¢ÈC¦Ë…አ”ft]çYÇñðÀ ª !Ʀž—¯;Äc“ÅËL+¯¬1”T_Ák«R-‚_™>~eÏZq>z EU¾ø¥dñ±ö–åò<#l 8Â0„\e8só<ƒeš¶ ð…0q‰K È”"Üg¡ÈÔ'þàpƒ†"• ‚ Ô´ò,ç2—‰e€,ã"ÓøŠH”ëàïO#²,LЍ\jºÜUÀµœ¡:B(™ð+ÀÜ%žµ„¯Û>@ @ lxÆÆr¯¼2täÈ™×_?«iVOOËûß¿ïW~eÿ{ß»gCÍ’ßPœ??}Ï=üíoÿÎûß¿ZsÇB5A¾ùæÈÓOŸ8|øäØX®­-õáßò裷Ü~ûN2¿@X1Å¢}òdÙkÁNÙ¬†ÊdTˆnêëë'x*µ¡…°„kG×,ö¹œ1=]¶ØçrÆÌŒžËçæŒè<‘, ÍÍJS“ÜÔ$76&[[•æf¤öÍÍr[[jm $OOëേcxl,wéÒ¼ç,K÷ô´îÝÛ†Õ™kvCÕv¨s sÍP&ƒ Ôu §MÁ¬"$:†íûøè!N žâñÜÄò$<Ç-ˆé!Ã(*¦‡(¯tZbF–…¨˜j]1ý 0 {zZ›ÕçæŠÓÓú쬞Ës9~;ð;Â9Žil”“™ŒÚÔ$75%[ZükjmUššäzË}?xíµ³ßýî±gŸ}‡¦©G=ô™ÏÜ}ë­;êßíRÉ9{6{æÌäÙ³ÙÓ§/Ÿ=›˜˜G »gO¦··mß¾mû÷·ïß¿­½}£„qnlÛ;qbìØ±‘‘ÁÁñlV¶¯¯³¢ ï€*–å¾ôÒégž9ñÒK§5ͼé¦íúÐÁ¼ùàÁíëý VÈxüsŸû›ßþíüá>ºÞû²J%çoÿöç›Èwq]ÿÂ…,¾?~|ÌuýLFÅ"ïC‡v´´(ë½›„äó¥ññ¹±±ÜØØÜøxn||nllnl,,KoÛ–Þ±£±³³©³³<ø;v4’pÜ£iÖ™3—+%"&ΟŸöý ™víjííÍÀOæ–[vl¨‰Jzš¹|"[¡` ¥ùù’ãÄcS£1Þ8dg«á¼6Ø"Š,Y/ …ÒÐP¹$Ü„ŽÍ…aȲôöí ÑÂT{÷nkm%ŽòíŽ IDAT'7Â’†t݆ÀÑÈ‚eY®i:8˜YÓLH,І7›¦S}Z ^9D‡øädREN–YD‘O&ùdRġ쉟L ²,⧬ñWA lm.]š?zôÂÀÀ…×_?wþü´ °·ß¾óÝïÞýž÷ì¾í¶®5žìÍýÍßüì;ߘŸ/Þwßþñ/ÞÏ=½k¹@ „(ÄtO  Šãx¦é¸nP,ÚAèºE¡|¾„‚- ¶mÏ4]lF0R ž©Jûdð‚õìÃв,"„ Ò²µ†ªl††ÌdÜRUEš¦ K‹UUªld±ZÆÍáº3Lxbèì‘çшCM[°±ƒF–£¶„Xí*o´H]•¿C˜#,ÇŒóQá6P „ê?;Õ V- CUé×£«Ôbý:Õ¯#„ªV±G£óìŠ"ÇPU1: çO¼šL ,¢«·ð(1§„°L¡£hí"„P±h†U­¡wß²\ßlÛs]ßq@Ô~ý5ô!šÆz DQÈ÷CŠBõ˜­8ŽŽãèD‚gYF–Eš¦e™CIJÌü|±X´çæ ðƒ L¥$ˆØN$Žcƒ ‚0ßÁMïyëú®ë &|oKEc…X–Áû¦{„B| !,DZ‰'I¼(B †”HðÉ$ŸN'dY”e´t’Ä©ªTêq•_3aµÐ4S×-M³ ÃÒu Ü”šf† «†aC]· £ü‹«~Tª\™þúP´@–YeYTA–a‹ˆ›%°<¾LL̃ÈTÔ YÍaÇ1ííiPƒÈKí7f´Üì¬qúôeH–ššÒ4“¦©Ý»38Y®··­§§eãßDÄ÷»vµ>öØ îcÇF>󙿺ýö®¿þëߨh™r¾üþïÿÝ~ð‹¿ú«vÿý7­÷î\5¸ó¹TGt~¾tùòüÈÈìØXîòå‚®› \L¥¤D‚—$̧øE°ÿq)bÎßX±L(ú+“kP­^Áw]ÿòå|Ô}?5U€¢Ð •JDÝ÷°°‘ Q¬ ®É^./ÏÌèø¡èN'š›åÆF¹©)Ùܬ47ËMMrs³ÜÒ¢65%!s?°ÆÀ@®aئé–J6–æÃÝG©d›¦[(”àQ¸1M·X´á¦æÙUUEI’I^–E¸M&ùdRH¥]Lòª*%“ü>Ü«®ý7°…©6æÃÅ×E«Ç§¿|AÖˆÁ˜»tbc~̧ÙhdìzK²L_.vøÕÓàj;røP–a(Aà¢xžå8š¢ϳ Ãð*¾_žµŒµ÷ý@ס}í3Kk0Àƒ ?c“¾, 0¤ wlÞ—eek¶+ÛET6ÑóÐÞ÷}Ç E¨§~º~…¢O\YðX¥ TUEäû±"×þ,ò[#@ „¥ð¼à­·.¾òÊÐË/Ÿœeá¾ûö?ôPß}÷í'1KkÌ—¾ôÂW¿zä¿øÏd0–°¸®äÈ™§Ÿ>þòËgr9c÷îÖ~ôÖûï¿éàÁŽh_šŸ/ÎÌ蹜òúéé²Ý>L ÍÍ2Ä46–5Üɦ&¹¥EijJ66ÊkoõýàܹiÐÙc9&LL(Џoß6bB¨^{{ºú2íûaXÑ 5)ÿØ]>Ȫº\t=³ˆµLÕçX¬Ôã©PU iÂj iÖäd¾P(A¤+^ÈçKÓÓÚÔT!ú§‡Ø×ÖV”²™L*“QS)©­-ÕÚª¦ÓR:¼ößÎéÓ“ÿðoþÃ?¼5=­õ÷wúÓw=òÈ-W¬- sÎÂϧ©I>p ”²½½™½{ÛHi“šŒå޽088qìØÈ©S—ðÀMüàMkÈAØìŒÏ M Mž>]¶Û»®/ìž=™ÞÞ¶}û¶õöföîÝÖÙÙH 'lF@[??_Љìçç£ÿ¡Ð,&‘à››•æf¹©IÆòúJD‡ Fûu‰©v]¿T²BºnCdÑ/91::7:š›˜˜ŸËå ß(ŠjlL´´¨ Ɇ†D"Á§Ó †¡!àòC‹EÛu}ô†±k˜­'< !”Hðƒð, 5CÜËÒ²,B<®Œ›JIE”iY†N$žg*¡øœ(r<Ï$<Ã0¤:ÑÄq¼ÙYczZ›…(JAÌÌè5;kà™ –¥›šdˆt‚Ôhj’[[ø)­ÞßùóÓ?øÁ/~øÃãÃÃSííéO|âÎO}ªçÎæš Ã>uêÒààñÚ¯ÛöNœ“øààx6« Û××ÙßßÓßßÝ×בɤ¢íK%çG?:ñÌ3'^}uØ÷ƒ|`ß#ÜòÀ7moø7ÎÿÚ¯ýåÃ÷}éK¿¶5ú [Àw°öŠÈ{âܹl„Qñýwì$†ôMç““ùññ¹ññ¹±±ÜøøÜèhnllnzZƒ@ÜT*ÑÝݼsgswwsww ,“ªõãyÁùóÓX|êÔeèF/·ÞÚÕܼ¥¾RˆNŒ:ñA…5ãëzù!ÈÚ‹½B"Ácñ}L‚_S޽4ôÙlJ[Á,Äù£J„?¤í€ÿÀí¤›M \#šf•Jv©ä@ŠneÙu~©d†]µ½¼\ýj죪b"ÁW øRd9¾’y¡üƦ®¨D ¬€ÑÑÜ믟…ÓÓz"ÁßqG÷{Þ³ûî»w÷õu®MÇÉ“—¾ñןzêMžg>ñ‰þÏ}î¾¶¶Ô•ŸF @¸NÓ=@ +üòÑòeàë4ŠÖãÇ8ŽI$„eæ—J,¯nV3ùœ@Øt`q|„xºÇ¢Å’wŽÁ2Ö¸{^P,–Ÿ¿kXŽz4Í„¾sTï8žiºxO :ªò\ÇqüÊë×5X'8pXÆÃ®ªžøÀYñ¨Jø•-`çºW¿Q2)`/<Ç-ùFQ?ËÒÑ™Tˆq\Ù§&„­ \°–‘E;POÞ󂘆¢ÕÇ ‚Ðq|×õ\×[ =BˆašF4¢i˜a§( Q†a†Aòý×kYò-)J–EA`*}T^’¸j… îÊRTHÓ4M3…à­]×Ã0 Q"ßÂ0ðýÀuCÏó¡ÕxWÛñæy6–8ŽeY†ã†¡hšfŠ¢h„‚0¤Â0¤i ômÅ¢mY®ëzð¡jÚચLò‰ŸH©T9ˆ!™TU’$>‘àAJžHð`m“årp±°m LÓ‰(é­|¾d–®ÛºnêzyÇÉÁC¸Ž†çY8 6NQU• ÒE–EE!÷¹¿yâ‰ÛÿûÿÔF¾)Ãð?ü‡øÖ·~þñë=tózïÎQ*9¿üåÄààıc#¯½vv~¾(Ë­·võ÷w÷õuÞuWÏõí‰-Wê²ÖOÆ&è:u¥‘bHÇ1Ð]÷ýF´LÓ1 &‹Y–VU©¹YÉdÔmÛRíí ==-ét “(–å %¨z’Ï—¦§µ©) ôÜÙ¬–ÍfgèíX*•ÈdÔTJjkKµ¶ª à†R(©TbÛ¶t´ $@¨ üîà YÓ†·çóe‡~¡P‚åêWÃ6Þ¥løÕÛ¡¤œ¢H[#µu#ÁBÁt]¿X´‹EÇu½BÁ„?«¦™–嚦«ë¦m{0\fÛn±è@­ÇbÑ)-Ï«=0… !Àˆ“ªJ¢ÈJ¯(¢ p0>#l2)Ȳ ŠØ¤_^þ!„u$B]7]7(m膕JŽëBU$_ÓL߇~±è@˜”4 Ëó‚Jõ#+Ú`™·5œ…Eä8F–E8ɲÈq´¢H0‘&U•xž…!DŽ+¯&“|µJ>¦P_™ï‡†a¡Êä)üÄà##„ òÄEà"ÜàOq]¿TrPeb¦DëŸ …Œ/„¢ CÃÏ]ʲÀ² غñLe2ÉsÃq,”ÇN¥$„| ,Ë$“<*OVR0mJ W_Gˆa?Ö>Z²½ž/ ]µC%ÏZYÅúÕ3ï×󬥾I@ @À˜¦óÚkgŸ~úøóÏÿRÓ¬ÞÞ¶G½åþûoêëë\ï]Û²¼ñÆù}ìË/½ôïÛ·m½÷…°™5ž{îÇOþô§C¾¼ûÝ»ï¿ÿ¦}èæŽŽ†õÞ5Â& —3NŸžš¨'+ÿ—@XŸÏƒÎ¾47ËÅ|¾%æ8¦¡!ÑÐL§Ëÿ76&aKe#ü» ·®[AÀBÈ0,ß\7¨L¦X¾x^QÌ0×i\ž+©4.?Z³q{%ËÃ08 +™X–aY¦<`¦„`&†[aöš1 ­("E!˜^©UišJ&EœFØx^péÒ|6[€ ¶LðûÂy” C77Ë™L "—ðaJ§“¸2÷ZrñâìÓOÿÁ~qêÔåÖVåÃ>ôѺãŽîhHx®‡‡³ ‚Ýba®kÉØXîèÑ 'yêÔ%Ï ººšî¼³»¯¯³¿¿ûÀíÕ§×õŸ{î§žzóµ×κ®wï½ûyä–ûï¿iójÓ«9~|ìSŸúó|`ßW¾ò™-Ö…ØJ¾{ .t:ï³g³a¸H|ßßßMN› ÇñÀz?::;22{ñâìÅ‹³ccsp SU±»»eçÎæÊÿÍÝÝ-[ÌÕ¾zd³üc9~|lfFGñ=¸ÔoÌjs•˜RšBôiõ–ho aùYšN'pXit ŽNlmUë[ONæÏŸŸ>wnæìÙìùóÓçÏO_º4bYº££qÏžÌîÝ­»vµîÞݺgO†Tø Ö’ú×cۣ >‡@²|ô4§Žê3IS“Bîå [€áá©×_?÷úëgßxãüü|QQÄ÷¾wÏ}÷í¿÷ÞýkPåúÒ¥ù¯}íµo}ëç®ë}êSwýÎï| ³³qµß”@ €ˆéž@ [V/¥B‹“f¯RXe=MSŠ"ÅôñõXæëÖ¯þ÷G „m{–U–oF¥íx‡Êr,|_R+Ã0ª•_0à|lT‘#ÀrT+’Ø%¬•_Y¶v »²GhÉ$ϲL¥±„m¾Ø<…• @:½H@Ïq Â÷˜Ç]Áï–išŽRdyÁ,n‹kü¼@¸Zª5ô1·H¬ÇÊ­RÉöý Tr@lÍdzmÏu½0D®ë¹nèº^=ÁëpñA¨®!Š¢ô4MS4` ,öA€hÁ•—ˆ¿ükBX¼(r’tõ“X–®øèi„|ð0DaAèû¡ïð¥åóæòýð¥œtÑO V²h¿šçY†¡`Ohš>\]×·m/ à Ç/mÏ \×7 ˶=Ûvk¾ϳ ‰T*ÁqŒe¹®ëCºB¨µUééiÙ»wÛþýímm*ì@4È€ôá7a‚2¯:L-¦MŒl¬q“X¾†CLb1mX¡HŽaíñý`bbüõ µ‡<ŸÑÑŽ*K$øŽŽÆLFíê*‹ì»ºš@j¿¹~¶¾œ;7 ©> ¶¿tiÞóIâܾwoÎùÉdRë½³+ îò“w&&æ»»[žxbÝ÷Àxü÷~ï›=vÛÿøŸÞø™0aþáþã7¿ùÆŸÿù“?Ü·Þ»³ŒŽæ.;6200röl–¦©]»Zûû»!§k£ÅôÃÝŠmûP“*ca类[A %( éû¾aØg ]nÁƒ¢Mào5MwùòW<Ï‚nUU•hšN¥$š¦TU‚±¯¨›FÆdY`ZU%†¡UU„‘4Iâ¹¼ù…B)¦¿ÏçÍéimjªP(˜SS0ÆÐÄÙ¤©T¢­MmmUÓ鲟D*+îò Ã.mP¢ëºˆaAùºRÉ)íBÁ„åRÉÎçÍ¥æ ’I!™ä (?&€ý\–…T*!Ë‚, ²,&“B*%ɲ˜LòP¢Œ±[/by&0â­…P³ü .-37W\j**Z,§DÇÊ¢É'¸dBô!R5á†Å4ÇñÀ#¿X…oÑ Óó|ða°T×-×õt½,Ü7 Ûu=\ÿ»&Ðû‚š ‚À)ŠÀ²ŒªJp”‚%•’ ‡å®ÓéˆãÁ’JI,ˬ¬ÎbU”E]1WÕ²~zMzM­yMz=-o„Îíša¶ïû¸Â=”[¨lÂ0„ay\ÚãhÜFþ«Û‹¶çÕh_'Ç$ªT£ÇóûWÀ²åB bY:™Ä%h\ƒAQDš¦ R*?<ëÐU…àи®!„pi øí ˆ1oÁmªŸ…¿.Û.?x þÆpðÆÕ~‡±o’çøàx Ç•·ð|| þ–"Ïb#O‡‡â[¢¯ µ1ª+‚°bp±¨šfU÷WK%Çuã3Ëø:Åób&£àÌkÙ·¥ðý…pÐz¨¿ÞPó“nI¢¡W«“hLé‰E·V½5µü[/o@ƒ~ìR._Ùî§–ztùÝ&ܘ˜¦säÈгÏ>|ªP(Ý|sÇãßþØc·¶µmâ©íÉ¿ù7ß>uêòO~òo×{G[ŠÉÉü~4øôÓÇß~{”aè÷¿ï#ÜòÁ j6Â2LOë'NŒ O M gGFftÝâyvß¾m 3îímëëëØÔ1N[ˆ£† ¯Ç.ûÈBy#xá£@m:-%“|*•PUI8YR)‰aYæeY‚¨xØŒ÷µ|?Ä7&'.¨¬˜—j\±^Üu‡H< 3,ÐØu}ÛvçæŠ¹\Ñ0¬lVËå Ïó)ŠjmUZ[Õ;[º»›;:öïßÖܬT^y…s1„-Œ¦Y““ù¨¹*RûB4p]–…ööM‡£Tja¡­MÝhÞçS§.?ûìàüÎéÓ—“?Ü÷‘ÜúîwïbÚuýÑÑÜÐÐäðpþ?~Úu}žg÷ìÉìÙ“ÁRÚäŠØ¶wâÄDBŽg³š °}}ýý=ýýÝË\F]×?räÌÓOþù“ºnÝqÇÎO|â·îklÜj·¡¡©'žøò­·îøÚ×~s«–gÞ’¾{Œ®[§O_މïq ‡¾¾Ž›oî 騛”B¡4:šÍåðÂØØ\†Ç´·§wìhêêj‚œŽÞÞ¶]»ZIlíò`ñ=ß‹ªJ{÷¶áZ{ödH$[ŒjÃõj˜ñq^aÔŒïºþåËù±±ûÍ>}yvÖ@ñ<»sg3t‡ _´gO†œî„ ƒèºe¶aXù|©X´aµX´5Í„ÈvÜ@Ó¬šÁ’ÄC¤ºªJµ®("Dª«ª¨(¬&“‚¢ˆª*)Ѝ(âVíܶAž:uù•WÎ9rf``Äuý}û¶Ý{ï¾{ïÝ×]=«zè–JÎw¾3ð—yäòåù~ô¶Ï}î>Rò™@ aµ!¦{@ ¬3à°vÝ X´!ûçoÛ¶Ë®ë•JŽç†aƒU6 3 C?‚|TÓtlÛÇé—Ë#ËÃ0€ ÙÈ– Ù’ C˲ÚzTXƒtÂ’’IãIâxž…LfÈ¥$1F„jpr/νG•DýÈòÂv|GuºÑÆË¿HÍWXöE®\Âay¢ù68¥E¬ñ¸x*§©à5G_$ºñŠ/RóbÛ °esGýÅJ%×0¬j =8èACï8žã¡ÕÑÐ#–ehš‚°ZŠ¢h¬ô…Á(ðRA„AºnèyÞeôE)Š$IµK(¡ZòšÎzر išr¢(×õáû4 ÔK®ë‹Nå+u\××uË÷ƒBÁ„¾½ã€=ó ½ Ðˆ@Œ>ˆ/a=™õ›L ,Ëð< ° ž Ã0 ‘çù¶íAè8žãxÅ¢ÊNMÃN:GÓÌšY‰².™äa9•’`!™ä–yEeY„e„·Þ{ë­‹ÇŽœvÇzïÎz¢ëÖñãcFޱ,7“Qûú:A|èÐŽ-,ų,WÓJããó##³££¹ññÜ¥KùÉÉü¥KóÐÉg Ί"BY,žg†CT³‚ìRs *ê€kÊ‚£w1ØŒos6] ’¢ú{âã…\ΈÞB&êR¹©é´´eÎêÂ<¾],:šf†U*9Å"HóÍRÉ1 Û0lM3uÝ*-ð«5 !EÁ‰çO,ÊÇ·“°œLŠŠ}üÔkÿÁ 1êÔåW?t-ºüXm¼êË\UUÂn„™êÊ 5ÆXÍѪG¯Pp4rˆrËxX¦ÏÖм^iˆáh„”¬ƒ!k,²ÚêP<NPE‘•Ÿ œªpàÛðý@×±çÊÓ¨R«·a0\ç0èRU‰¢Ê㸠;ô`ñø<8ÓÁ _M—K°“ßûj3àcÿQ±èxžù0Ûãã jäx^€%Jžxž_,:¨|€øp­ÿÐB•?½ 0™\Y-ÇB€!ÇFm(^… &¨R†*G&vôÇ”ý×—+bjÅ´T‡Ä\ã³–ªW´ pEFµÂTjN·ED'Ý¢ jÎÐEß‚TÈ 7šf…aù’‡ «¸Þ0ZÜa´6$ôî`Ùó‚bqajGÁ2/~ßòh$®ÚRyßÚ÷š—æhh%æjÅî«ÁUÍ[QJ¥®¢öÞÕv 8ކr2u"WQËg£Áê+{î5*þ—`¿Ò[û5Ç©€ ®ª¶Áº1ÿ±ø¦)ôÁª·Ã­Y \c)HKc—*N Iñ 5S€°øÝk˜ý«÷³º\ÃЊßídRÜÚb/×õßxãÜ÷¾÷ö³Ï†}÷Ý»?ö±;z¨¯æa@¸Z Ã>tèÿù÷ÿþ‘Ï~öžõÞÂV`xxêé§?ýô‰áá)Uxàà£zï{÷lÞþaõ(í“'/ N`µ}¡P¢ij÷npÊôö¶õö¶õô´Q×5uCB¦Y¾ÃÙ—®hš©ë¦®ÛÓÓ˜Ÿ/BH¶®[¦é˜¦÷–åVßFQÅq E1 Å0ŒïûEQåy¾ïQžçUßmÕ.Êq4ŒºCœ9Ë–W¡Ä/¤‚¢JïÆC7)ÒX¬ÈëË«yýBãå÷Âó¢êÉáá©lVC »wï¶®®&8z»ºšvîl&•Ñ ˜ gf´e‚…¢svP&!f®omU£C›"¨À÷ƒ7ß¼øÜsï<÷Ü;££¹ööôƒÞü¾÷íihGFfΛ>w.{ölv||.æµß³'³oñÚ×ËØXîèÑ ƒƒÇŽœ:uÉólýîïï>p`ûò'··Þºøýïÿâ™gNd³…}û¶}ä#‡>ò‘[{zZÖlÿ×’óç§üÏvïÎ|ë[¿µå;¨[ÛwÑ4ëÌ™ñýððÃлvµ‚Âþß'LÂRLO룣³##³ÑÿóùB(™vîlîînÞ¹³¹§§¥§§e×®Ö¦&y½wyã¢iæ™3“ø÷rî\6BYöïoÇ9&[;N~5€¬[(÷¥if>_‚ìÅèÆèÿÕC÷ª*‚Éô÷+ŽËƒ©ªÁ]SS…Ë—ó.Ìœ=›ÍåÊîû]»Zwïnݽ»uϞ̮]­»vµ’j²Âf¤X´A…¯ë¥ëº…ù…B V+Š|«P0!D-ö:¢ÈòÜ÷étBQÌøx»ªŠ©T¶oí©%ÂÆÄó‚·ß¾xøð©W_~ç žgúû{Þ÷¾Þ{îéíëë\¥7 ‚ðÅO}éK‡ßzkôÎ;»÷wåþûoZ¥÷"@ Ó=@ ®HÔÔuÛ÷/LÈ-ñýÀ0lHõ´mB—lÛ…ôàbÑv]|ôðÄ|Þ Ã Z â  ¾iš‚°o˜L…-ÕÂzžg!W3‘à+ÂzºòÄaýêg„õçAˆ6H!FÁÁ‰Ê¹6B( k7ƒð œ!Îî¯kôÕ¢ySÑ|§b±Æ0ñU‹. rZEy’)š½ (M—͹8I ‡â¡ÅÉ –…eœÏ0ÎÁˆfA¶s¬q4E„ãjäZá†W'ZJC3P`û¡m»¥’cš®ï¦éà–Q }=æw.XUÖ£_š¦†ašaÊzš¦iš†4É0„—=¢i:‚ <ÏwÝÀó<×½Â^q“Hˈæë‘ÑÇÚ°,ãy>|ÉÐëÖ4º7Ð?Ñ4Óó]·à{.mÏ òùV@ñ£ë–çùËwÎ! •’ cúÛ’ÄW”ôe[½ªŠ,Ë$“ì*”†RѲ<–¥Ç ÃÐ4]¸;(bÑÊçÍRiÑ>!BHX\2¤«« vï΀ÿQ×-¨ ‚*˜VÐ4 TK%Çq|]7qK¸7„¨­uE“¤1§ÓåÛ–è]‰ªJ,[Þ(I¨Ha£¢”op h)2 ³q”(–åVe´.$» %È”@8[3Á5•’2™T{{z‹]„ ®f Ã/‹Ñ 3*LÕ·Àà_7ä/az:-E éã£FÍÍ ÉôÞ ÀåOÓ,ÛöJ%[×mÛv‹E»X´MÓ…a1Ûvap̶=]·J%Ƕ]†À¨éR/®("ŒÎAñÈdRPQ’xIâ` L’x¨² I±G¥j?€ØGK8À¿BÁ¬óÑåEÞÕe–*eT] ŸèÖ¸ØC̦õ¨l\Tó)Ö²ò ËM‘Àp}=;+…¿CT‘k/5Ý€k»«›‰"33Ö€èa]­>ºPÕ´ú芮FÅú0Te~_^û¾¼ó}ùÆ«aáÄ‘BØëŠ·àB¦Y®Ö U.‚ Ôu3ú”RÉq]U\ÉX»Œ5µØ§¯ið Wm‰…ÛR„ªŠ0# QmpŠÊE DQ BU¸«EÁ=l´¼>!À=2B(•‚ ™ì ¶$Xg$T‰òEM<¾Fàó>7ú~9Çx J¹ ‰,•l£[Æ8íà³%Bˆa¨¨0ŸåP•o]Ubƒñy?TÝŒFQbj:²9Ž©ŽŒjFØæªO$TÎás{”ë[‡†@XÑ¢Õ@6ÁR._(Zâ¢ÔBžb}?0Œ=1û£æ‡ZªAM?H”«£U½c¼Ëë¨Å^³þÂW×W‹m„.b”êóNÙˆs.Ñ-ÑuLõù×|Âàê\±×“q¹(Š""ž81ñ 'ö³ó¶í:Ôùáßò싞¨Ed˜E»Qmˆ°ßùÎÀ¿ûwß=~ü?oIé!amÃðØ±‘§Ÿ>ñ 'GGs™ŒúÈ#‡x঻îê!ÃÑŒe¹`´)–ƒg2j__goo[oofïÞ¶îî–ÍÒ%¶mϲpÙB•/,‘¯´q+mjo¶_ñëÄÒèÂ!꺵2@9 ŸB, áôDZDz,UIØdM¥$Žc8Ž…„Mé à.<-…oÓX¶ò‘C½½" w•˜˜˜ì±/µ´(ÿ÷ÿ×féo\;7ˆï"ï诃eéžžñý-·ì 3ã[€B¡422 }³‹gGFfÏŸŸ÷w*•ص«l½ý}OOË–¯l±2 Ã>uêÒðpRQÇmÛã8¦»»ÿdì ‰ë ÒGõ÷Q>4…èÓBÁŒ*˲~jAà( Aй\B’I±££¡··õàÁŽ;›{{Ûvïn%],aKbY.ðá¬b6$_ÃÿºnùoÑ4+Z¢$^U£|©’a-à-u¾%×åó¶$##3GŽœ9rdèõ×Ï–JNooÛ½÷î»÷Þ}ïz×®Õ ÃðÅOùË/ \¸ë®žÏþþ|`ßu@ 1ÝÂÖ"“ BšÀS*9à‡Â°‹Uõ¡aXžçW„õN%7Òµ,oùˆs„Ê u ¤‡èhÊ"8²ÁGAÃL‚ÿ=˜²!mƒ$ÐnF Ãö}Eò—ð‘ƒÓ|!½çDáQ(“€Ê™¸Y9¨Žêè«ÅšA²Ö×¥ˆÍ+Š£«8*'DEs“d¹Cü9ŽI&ËÓu1­<®ÅApäÃ2NèEåLº²'¤*@ ®3àk¨©ÌXÆ—Q*9Å¢ªÁRɱ,'BËr]×·mpÐ{Žã»nýzáïujè) q˲4MSQ C³,VÒÓEÓ4‚‚/¡0DAø~èûïûž¸nàºÞ; ÐXJ4›8®ÖYr]nΨ¶ÿc©YÝ!g™œOpÁ/e‚é´ÝylI‹î98ƒ¢¯lv±h‹”|%=l„U\ʃ˾¦°$\0½L ²,$‚ªŠª*%¼,‹É$3ß ²y"ÁÇvéú’Ï—^}uøÕW‡FΟŸ¦iêСP œØí¯;AÎÌhù|ùÀ†€þX$VÔ÷˱I¥p¬‚ì¤~`úÃG~tãª?a €, ð×OOk YÆ)@Ð&™¶ooÈdTð,·¶ª ]nkKm™±&ˆ'†„Ï¡¡©áá,||H™ƒœÏ¾¾ÎîîæMæ´ ¸?|øäØXn£ îüà¿û»ßÜŒš{Ìÿñ¾ò•—¾øÅOò“w®÷¾l8²ÙÂààÄÀÀÈÀÀ…ãÇÇ\×ïêjºóÎî¾¾Îþþîƒ;n´Ñ<×õ/_ÎGÝ÷Ñœ^„P*•ˆºïa¡££áZÂ[¡‹Xç½îpÆô£–åFÓGk²”†µZ´ºüíU:\¥Ëm{ù|1ª¿Çf|Ș½|9½†‚%‹…øÑ,ÙÖVu“ž¸„­AôüVëÖ¸¶7¦}c/9#qø® Õ¼q^½“á+EÑ4œÅPÞ²Trtݲ,·Tr4Í2MÇ4]M3¡&ŒÝÕ³…)~Y â‹ªJ’ÄIt’Ä˲ Ë‹äø1uþÚ„ÍøUóybWÀ² µ‹ ÃýŸ¦Yžç뺧5\êC‹¶ãøËTz@)Š•V¡Ó%ËåG ÊÁe ¢VR) ì9PÆ5•’6NhŠçÅ¢…*‘ðÇH„P>_Be%b_ Wø¾ov"ø®4Í ‚\´ð 8T¿†;•J J¼¸e¡g nA¬ßȆ ¦¾vìÚ†˜ EišN$xžg¢„udÅbý«m\³²ÕõÐ*ˆõkÊ…W‰å‹^ ˆ‰¬fe‚Ø+TW2¨~‹«*f,_ÒUŠg %¾OT‰tZª=n€Û¯åŸ€@X°Ê°P0ð\ã Ub±¦Ù÷Ã(K¡®B(Ÿ//`ß1Ö7ãjMaYïyå— Ã`ù2öKeÇ,KG|‚åHH‰MñX75ÎãçѲ%1ü2Æyèrp¢€åšÖc@ØÚà+H|¥ÀÔ2é‡Õ–Ã(×;Áà‚OQª»ë¸#ЉAÁT×€ü”Z¯¿h î¾b@¿{âŠS®Èp‰nŒ˜X³h‘ ¦å¿º@ÍšÑk+nV]†¹ÚíKQ¨úZ £WlV³Ž V#„ž|ò¯“þçO’ûwÂÕâºþ‘#g>ùÒK§/_Î÷ô´<ôPßý÷¸ãŽîmêœPM„gÎL¾óÎøùóÓ'O^>wnzr2ïyA"ÁïÞÙ·o[wwKwwSOO ¤ƒE©¾ àr\\â S}ÑŒ^梗¤ëeŸ¿xžÅ¶MA`ðrt{ô~Šã–¥!\¾à÷¼Ð÷}ÛölÛs]ß¶Ót«ç† µ3™E[Y*•hlLʲ˜NK™Œªª¢ª&;:Ò7x´íô´^û¡¡©áᩱ±Ü¥KóžÐ4µ{wtöP’¡««)z‡K¸Ð4kr25×ÃBEj_ˆÆº«ªØÖ–ŽÆä`—=,lÉšëú‡Ÿ|æ™._.Ð4Ö¶½ E‘ëímëêjêíÍ@¤ëŽq]=ÆÆrG^œ8vläÔ©KžDcØ^g±\ÎøÞ÷Þ~ê©7Ç»»[þÉ?¹ë‰'nß¶-½Úû¿îLOë?þgÇüã?þnccr½wg­¹Ñ|÷úœ8~|lfF‰ïÚANG[i†ªZУ;sfâ%p03\‰ººšvïÎ{ ×õ/\˜ßËààøÉ“—J%‡a莎†ÞÞ6øÕÜv[WS“¼Þ{zà ]*³P0ç狳³Fu´E!–e“I>N46&ÛÛÓ==-ÍÍJ,“Ä7®ëëºf|M>¬Z†a o`9~uH–€û>•J¤Ó |>ihHÐt po`à‘#C/¿|æôé˲,Ü{ïþ<ø+¿²5†à.ü¯ÿuøå—ÏÜv[×ç?ÿ?x€\ @ ®#ÄtO ë äô.%²\ÊÆ²T›šÖ¿©Ruåj•„ukâM3žÍˆìl»ÖáðC‘ (œÛ!,@-x¼€£Û±Y'\]-ª*RT9Šç‰Æ‹Fuã”'H>GA.:ZÕð’ÄÁ¤2Ï—›átkTI¥Få¨îE¯F ÂFT&5­Õ@ñ#èºiÛn©ä‚ÉòŸÃ0\‘†ž‚«*E…aˆÂÕ3z@ÓÐ3 Ͳ ËÒ4M3 Å04MÓaˆhU^–ÃÐ÷ƒ ƒ ¤(äyïû®ë;Žï8WöÑ×ìÖ^±×º²ž-þ‹`“ÔÒöùÚ]úŠžl97}MÃ~¬£sÓcÙÕvÑ …|œšf´%4jµï58ŽilLbá#ž‡Æ¢|vÁ ÈèGXþO¼–,c·¿í¶.bìªÇñæç‹Õ!S±ãªGUã ÂGÔR¾˜Ë~CHá:†áô´–Íj KžšÒ°Ôëì!XvÇŽ¦LFÍdR©½ºõ’Ç,ËÎBîÜððT6«!„ššäÚ{{ÛöîmëíÍìÛ·mËû_¢‚û®®¦üŽ&¸~ò“_þÖo}ýŸþÓwá Olê §ÿú_ügö¿øéO}ª½÷eãR*9¿üåıc##o¾yq~¾(Ë­·võ÷w÷õuÞuWÏ–ÿa.C¡PŠ–$þÙ³Y©æ8¦½=ußwu5íÜÙ¼ÆßXåŽÏ³,ü)šfz^ ë XuaøkX+mÇñAƪëÈC¯hL¥ ƒ^.ÔFM§Pn”’Iô¬,K˲(–k G«ªiçW+cu/—3fgéi}nΘ5ff´\®˜ËÓÓÚ쬑ËÑÛðT*ÑÒ"75ÉÍÍJk«²xAnmUÉ]°Ñ4«X´ a¤Z|N@W/Ù_~´&×K²–(rmOÙ8uM«GÞy(ƒ#'‹Åø¹Åu}|æQì4…ÂSõõ¥BµH%ç 8¡ˆ‡>âØçËúx†aàT ­Ä"E#zzx©rxäF› '¡~ðU; Naˆ6»xqæÈ‘¡—_>=22ÛÞž~è¡›ï¾{Olèw ¢@÷àŠojqË?Ÿ‹5«.àû5n[ª½Ì5ïnàÆ'ºeÅo®‘eît঩æC²,.U÷¦Éj>”HÄýþÜSª¦¦Ç¿ò[O_¨Î. GÔÓì:¾Zu̓ ‚iº?ûÙÙ×_?ûúëç4ÍÜ·oÛ{ß»çÞ{÷÷ô´¬ã^A ÎÕ~|\œ½UÏ ŠÅøÙãûAu!L.$vÕdù»¸?ZêQÈÍ­>YUW.‰Êß륀¯“êJ$’ÿeEàxè-þ©F·GÛGÏ!×ëu¢{„D)hš™Ï›šVŽ¿…ÕB¡Ù^^ý™`¼ZU%U•ÒiøÑ*ßÂêÖ «»v|?8wntöCCSÃÃY£˜L »vµ‚Ñ~ÇŽ¦ÞÞ¶žžRÇqkáÌŒ–Ï›à¬/ÌlVËf¢3M4Mµ´(Ø\ŸJ%ÚÚÔÖV5Nd2j&£Þ îð#š|ë­‹GŽŒŒÌ꺅Pˆ’$n×®Ö›oîØ¿¿~GÛ·7œ`ÛÞ‰c 888žÍj‚Àöõuö÷÷ô÷w÷õud2©ú_Íuýçž{ç©§Þ|å•¡dRxâ‰Û?ñ‰;úú:Woÿ7ù|écûr©ä|ÿû¿wUßÛã†õÝc¢âû·ßÍå Žcº»[°øþÖ[»ÈE‹ñÌÐ߃ŽßùóÓ`ÆÈdT°Þwu5A!–ŽŽ†¥F-n@|?˜˜˜žŠþdB™Œ ¿—¾¾Nø×{O ‹ˆjñ''óçÏÏ\¸031173cär†®—džò}7L%G¸F"'Ñâ7,Žãaë=ŒSÁ2˜ñóùR4m¼:JS¹Šõ>O)é4>·D—%Ò #““ùçŸ?ù“Ÿüòg?;Á]wõ<ðÀÁ<¸cÇuîuœ93ù•¯¼ô½ï½½kWëç>wßãßNÆ.@ ® ÄtO u¡®›uçk0«R@¯âUÓt¹¼—ç%ýZ‚å53óš°P$³!]·Àåªë&Zbˆ£ 5Í„+³¦™‰ü"›|±h»n€ª3C8haB8Ç’¦iH|b ²ªhšE!ìÂm©”“Ø,³¤d¹œ0 æÊ¤K±’Ä!„(ŠÆÒy@ 6±JEËkè£:ÓtŠE+¦¡·mÏu±Œ¾^ =U!„Â0¬SCOQHx–¥X–¡(&zpг,òÃP4MSMÓBa"Ï ‚ ôýÀ÷ƒ r}+-A*»a”M… #,m×õ 3ú§4 ŠCzI©d»n i¦ëú†a/ßu‡¼tA`$‰‡ž̤&“à.dEdYFUEÈL€Ê=©”IJLÔo*Ãz>WôæóÅ5ÖcGÕ†Ö_Q»ý¹sY†¡‰Ý¾¸»ÁI2KS(˜ºnÁrUtB¼MSŠRΖQUQQþÇ[ …¦²…"7ºnŒÌ€þ¸"µ/LOk““l¡(ªµU‘}Ej¯vu5e2jc£¼UÏùj{ðÚ_º4ïyA"ÁßtÓö½{Û°ÚþÆÉ²žúîwß|æ™ã££¹¶¶Ô‡?|ËFN­yíµ³ŸùÌW{ì¶/~ñÓK¥ôo"þäOžýÓ?=ü…/<ñ¿ñÞõÞ—ÍÁèhn`àä•=›¥ij×®Öþþî;ïìîëëÜ€…ÖlÀ÷=,ŒÏÁx*•À'|lÀß³'ÍôÞÈ€þ^Ó,¸ë!š®[žW¾ÍÄ·¢Å¢…ï=‹EÆ`" Ÿ7kêQ¢Än6“Iže™t:Á²t2)€ðBUE–eE„›kY+Æ|6‘à¡-¨I4Íœ™Ñs9#—+f³Z.gÌÍÓÓúì¬fü¨6E¹æf.ÇMMr&£67ËMMrk« 6ü¦&yõ¿ip€óO¡`b'~±hÁm~±«6 †­ë–®[†aUë–`PUA…/F6bQ~*•€[µ?¿µ‰õtcc’±H‰¨Cž²TéôåÝâx26>¹Åâ„ B¡PrÝ X´K%Ƕ]]·LÓ±,OÓL˜Ù©>Œ5Í„¹M³lÛ…8j`² ‘à¨ç IDATUU /H'œªJx¼úfø¨†‡$‰Ã[€êjÍ5èЕœû5›‹qåVMðé¥Z¢½Ô ªLZ]ѹ¿•þX[ÐØy^wRxÌq†±hU×­  hªDdá@/Ù‚‰ETqôƒ_Òu½¥N1@²ˆÐYB©ªHQ”$ñ‚À½ª„c|Ž4¾•JIEÁÜ"ÜÇÑ41WËø"מH°\ùÆ']·ƒ ÃbäðŸ‡ÛéºåûË…ÛAà–~â¿Ú«ÍÅ€+1†cS$ü]p°Ô3@åp8šã˜d’G•8ü׿#ެÃVM«‹ënp*çpϲ\°ÏÃï <³pT@%B´&ÞyY†Á‘“±¿,hU)ªü[ÃÇI:-¡ˆ£PU%Š‚xH|´,TÈP‘a(\Nƒ@ ÂsîÜôw¾3ðïÕ4ëá‡ûž|òîw½k×zïÔêRÝ=®é®öS#´Ðì»ß=öâ‹§þ÷ÿ~ÒuãÒjIr©nšj>þš-sw_]-ƒïªYF;^§t»ÚÖ½D³«®õE ÄÀ)]5a˜…ºVÕàA†¥€»•e]fP JúE·$<Ç-„‡‘´è×õóùÒÔ”–ͲYmjª`Y.MS™ÌÿÏÞ›‡GrÖþuuÝUÕ-µÔݺGši.Ëcì‘ Æv€Ø°9 YL8ò Ͳ,$!Y–dŸ…ì“, 0‹ÛÆ@b°1£qˆG¶gF3ÒÌHÝ­–ºë¾ë÷Ç·ûUMëÍŒFçûyôèy»ºÔª®ª®~ë}¿ßÏ7ÙÚšjmMvv¦;:Òiš^ø×è¶+Êb ûâZ›jHd,ËŸ×ç瑳ވºìë.®|ó#P|:™Œ#g=²ØGâÚ~—…¦Ù'Nœ=æ]¸Pv]Ÿ$ÉÎÎFÐÙ÷õ庺Ò;*6oçàyÁùóó`®/—BA™™Q*BX+c~Þ@ݪXŒnmMÕ™ëQ#—“wféˆè‡hxxæÄ‰óù¼‚f9Žéêj:|¸óÎ;ÞrËž¹‹ÖŠÉÉÒÑ£ãCC玛8qâ¼ç]]iAè>p í ¼{ƒƒã_ÿú³>z\×­W¼bÿ½÷Þtç‡vÔ÷ˆ¦Ù÷Ý÷÷…‚òðÃhkkØèÍÙxÀwÿ™ÏüHÓìé»GDÅ÷Ï>{f~^‡ }dñÞ»7‹g‡·šfÆÇ‹££…ÑÑ´a"R–…žžæžžæÞÞÜž=иãP7Dô#322söl‰ ˆd2Þۛşš­‚ëú.”ážèôé©SÓ££y8ÿM&Qä Jw„!‚uÀ²ÌGô÷ÕFccr“S©DCØ«ã0‹ŠÁ`vc ƒcPx£\6PŽºvÝŒ€(rè’²¤¿¡!ÞÐH¥â+Œ£b¶¶í Žÿà/>öØñ|¾ÒÙ™¾ãŽƒwÞyð¥/ݽ†=´^8ÿ×ýø÷¿ÿ¾}-¿ÿûwÜ}÷õ¸š ƒÁ`0ÌU‚M÷ f›90Ëø+×õ+Ãu}]w pÙFÓóürÙô<qäPÝqTÉdœ¢HIâiš’$’Ó … ’!RÑ@é.7–L H>ŽY ‚ˆBrÑñ‚ì&¢&„!QË‹ójion$/naÇYX½BA‚Ïeõ¹‹8CH’H&A"OF$ò ì@îxø+¢–ÓHDÜñpþµÜ9¢š5Ç‘¬*ä—G™T ƒÁlc /z±ƒ¨&9/Y¥Ù›¶í†cšäÃ@¢58èÃ0¼\ =IpÓ µp.ù‡ CÇbt,FqÃ0 ËÒ4MÅb4MSÇø~Àq4AP,ËAÀ0´ç4M¹®GQ”ãx4M™¦C„a8E†C¡ª‚»Á]à @6‚ Ä ›e™¨È#jñ€Þt- Ϭî CƒVRD‘»Üm]q)dJBF¤èQ[ñÙ•R‰ E$*NB‚¤K–’B¥5—¼C6>0WUKUmhT*†ªZºîhšeN¹l ˘¦ÙKfìÃáH&…D‚E>‘`E‘¯=ä ^9Y®†›ˆ"'ŠüΑ‹ÍÏëO=uz‡Û푳>ú{¹…Q—%Hp;ëùdR—ý’{0D`0˜dËrÏž-¡Ô XG¹žž òg2r.—ììLçrÉmŸDáéÓU£ýÈH~xxfb¢èº>Ç1}}-½½YPÛ÷÷·ïÀܹӧó<ò>z|dd&›MÞ}÷õ÷ÜsýM7uoæ¸ç£GÇßúÖÏþ§ÿôKú§oÚèmY3>õ©ïúÓ?øÄ'Þô®wݺÑÛ²ÅPëøñÉÁÁñÁÁ‰cÇ&,ËÍfeH6;r¤ûðáN,fAóQ÷ýÙ³¥3gЍSšLÆ£î{htt4nækÂÕ%ÜÀòVVðaÔBU-×õ5Í‚Ûdä͇٠˜[e 7†¡ nxáöäø‘jmñXŒæ8ÚuËrH’TUÛ4mÓôŘŸ74ÍžU`Oq6›ÌfådR@\.™ÉÈ©”ÉÈ8ôƒÙÒÔª*šPj1ê4_ráÜœ¾¸€w­àb}ñŨܼn!N†ßºèº šfA9ØrÙ€¢°PkÁ²\]·¥ú¬¢˜PFUíå¼W ENbñ8JqAˆd\XÿVbɤ ¬ °’ÄÃèèÖ­â‰Ù  ™¦% <¬â©¥«Ò‘’•y€%KV€ˆ>•HðWà¶ØBÀÎÛ5’ƒqlæç“†à=¬f…aE‘aÒŠQ¡X ô|Q ’jGÁ„Q,FÅãI’ ¹†p øÚ92”˜×ĆA\¼8‘·ý±Û~,9é¼\‰tbùÚÑ¿ŠS_¥¼ê:µJ ‹ 6ÔÖYº¸ø%K•£@µÍÉ¢ˆ>ß0. „ÒaXòÕ ‚PU3 A­‘¥DM²^PÓlÏ }•È2O’T,V-l³ê¨ÎÁeIÕ!Ö”¨JýH$FL$¸XŒºÊXS˜©G±—pîÕÚf†ªjnÚ¾BMÓlßຠc†a»®ošŽmû«q€Â Ä*½ó¨¢öÎc0 ƒ¹$A>ýôéxæ»ßêèhüßxé[ÞrsS®Ô»4AÞrËŸßu×uûØ6z[¶ KÖX ÊfºÔj—Wëë17§ýä'§ò“áS§f(ЏñÆ]·ÞÚ;0н²x}ýYúbá{”m\ÿÌ0œ^8NCCS##ùJÅExoo®·7fÞžæÍ<˜p5¨ª5?¯—Jz¹lÌÏë ³ŸŸ×çæª?°Æ0ÕL HR¿ÌCDöõî¶ANMÍAT(¹áŒ%‚çc +ííÍBc×®æÅÕ0[E±¦§ËQs=4jRûJôk·Î\ŸJ u!.x&q…ÃЂ³,×uýxœ½þúÎ;î8pûíûöíËáX +ƶ½ãÇ'›œšÊçŽcúû;zº¯&„xjjî_þeð‘Gž;}:¿ë[ßzó=÷\¿’-Ë}ûÛÿñôéüà»»y£7g}÷‹‰Z¼'*C¹ýû[±Â{'pþüüøxql¬8:šŸž.Ÿ9S+8Ž‹Ñ»v5õöævïnîëkÙ³'³gOf»Þ÷].•Š1<<ƒ>5££ù %‰ß·¯¥¿¿£¯/×Û›Å1ó[8”ÑÂ`““saB (( ÖÕ•Îf¥L&éº  ~¥bÌÍå²KêfÕc1º¡!žJ%À[J µF¢¡aÁgÝÐÇ¢Ìl •Š9?oT*Æ2f|sqÉ †¡R©ªõ®!è!ØðÑS8Ï}{àyÁÏ>öÄ/>þø ““¥l6yç_ýêC·ÞÚ»VÃÑ'ONÿïÿýƒï|çø¾}-ùÈkï¸ãàš¼,ƒÁ`0ÌΛî1Ìf$¢Þû¼íy~}¾R1=­ã©ªå@!SQ×m× VN÷›g2)0 %ŠÆ²4Ç1$I²,‹Ñ,˰,Ã0Ë‚¤ž¡ièPEzžODABIÏóÃp/BÛv}?4MÇ÷]w|?€º;+oX0 m;™Œ#S„‘A7Ö†$]dÊ iª¦¡¯¶Á»qõ]YH¤QdÙsmÛ«ëÕ+Šåy¾ª.<ëy¾ª¢>µ*Õrÿ‚¢HI8ŽúäÈ»uYÀŸHð±U{ÈÆãtéáÙu躃­IUmUµ4Í*—èCU…½‰Ú rZòý&“uJúêÃD‚“$^–ùD¢ê²—$ M¸çY²Ûÿô§#gÏ–b1ú¥/Ý=0Ð=0Ðsã»¶z-(ÇñæçõÅAK-YBœ‹Ñ TßiãÐTãâ} ³Ó"ûÉÉÒÌŒR(( *Ft Cµµ5tv¦³Y9›M‚¤8“‘s9yG#æóÊÐÐÔÈÈ „NLUÕ¢(rÏÚg!ósç|^’­(¸^xáü½÷þŸW¼bÿg>óöÍ¿µ—Åg>ó£O~ò;ÿøßóžÛ6z[¶*žŒŽ›?zt|jjNØC‡Ú@|Ë-{½›”Jňºï!uddFPô|T‚¿kWÎý^ŽºQ—º2rЮTŒè˜ ³Fm–4VGaJbA‘$¡ïA8އÆ`hšŠÇc‚ÀɲÐЗ$¾©IliI56&r¹dkkª¥%ÙÔ$á›\ f;½ÂÔ \,·pIÝ0òã/9|±xac£¸c»ÖÛ °¦V*&ÈñUÕ‚ùM³Uµ*ǯT ˜MK¾a¸†QUçCÏ¡ƒ•$.çÐ(k<ÎB QIâ 6ga`–'œ,ó0@½þ;³ý¸J]þü¼±œã ´×‹Ëú®^—Lë¼C6šfû¾±LȘ¯ëv†à}ã³a8®ëÁ·ÄG)»&ƒ®zó!Ò©\^G¯Œ(r4M'PpšCe§A÷,1p¥AÕjt”£²ò‹Wƒ?g¶ú„ÈNæê}úÄòUá‰Ux¸2Ÿ>Qs‘ouŸþr,¹ÛkËë÷\aeôâ`_å†Ñ4Å0t4MÒ4†!IRA$†DVc$ €a5/›H°$IÆã,MSÑK“$ñW¹…« ÄЙ°øÒ—#¸4aõ<ƒÁ`0˜õáôéü—¿ü³‡:æºþÞpÃÛßþ²nèÜèÚtüð‡'ÞñŽÏÿÛ¿}dïÞìFo fÓ16VøÖ·~ñÄ'^xá\<ÎÞu×uwÜqðöÛûð„ìNÀq¼S§¦!Àidd¬»A45‰û÷·ööæúûÛûúrÛc‚ÞuýRI›Õ ¥TÒJ%}~^/•4䲇Fô&yú9«±±úƒ–€ËÏ)¬†áŒŽæátœ, Ïœ93 C虌Ô××ÒÕ•îíÍõõå:;Ómm ¸æè–#ÂbQ)—MpÖW*f>¯äó h¨™r¹d&#§RB*•€t` Âuý‰‰âØXq|¼06V+Œææt‚ 8ŽI§EŠ¢TÕªT Š"l膟(L_C&'KGŽ ;vlâĉóžtu¥é†ÂÚ®æbåyÁ~tâk_;ú¯ÿz’e™×½®ÿÍoø¥_Ú½3gÇ{Ç;>üøÔ7¾ñþýû[7zs6#Øw¿gÏ–ÇÁâý çMÓA oß÷öfqí ÒÏŒŒÌœ:5],ªA$“ñÞÞl_”PÊõöæ:;ñÉ iö‰燆ÎA¾ÌñãSP* »»>2ýýí×]׎ël Å:s¦XßW ø†·øüïèh¬ëf@Dèjò^a´Q º8ã-in–wf߃ÙÉ”ËF¹lÀxjCMʺ‡Ñ¿ŠÅèåœø©T¼±q¡ãX¶ 'ONÿà/<þø ÇOɲðš×\÷†7ÜpË-{×dÐot´ð7óÄÃÿbÏžÌ?øê»ï¾÷ñ0 ƒÁ`®lºÇ`0k¤kší8žªZ¦é:ŽW. §WU˶]]w Ã1=¤åhZÕhiÛžiº+'ä@ äºH‹Ñ¢ÈC& ²[B ¤ÍȲÀ00y>&Š<ÃPɤ°sò÷P¾$LBfQMQ#Ç7 ÐÐ[¾Â$BÓlÏ ‚ Ó(²ÒCî%YbAVëE^sµß)p( ‚+ä­5=+ØW‰ªe$òMÓA€×¥9EVàa¸^½>¤Ã‘Hð8 ƒÁ`0˜å@åg–ÓÐ/™zmëºeN„èOǵm϶/KCORÕÐ2úKþ-ÃP,ËpöyÈ”1=ËÆ‚ ˆÅèXŒ¦iš¢HßÐv†A@A†¡ãx¾zžïyëú®ë»®>}ËòVSb‡a¨D‚_.½qnÿê×YÍ\= Ö_Nl‡$)«xv¥}²LCC<ú6‘dªN¤rÉg×öí¯×õçæ4ˆœ€= §@f™•MâÄR¡è bŸø5bnNúé-i·žu+DðÔ Gõ§ÃPé´¸dú”Õ-ܨwŠÁ`¶.ª–aÏÌT ezºãE$If2ˆìkR{ìÃ;Jg(•´'.@X3„8à èìíÍö÷wìd¯=bt´ðíoÿ¢&¸—ï¾ûðVÜããÅ7¾ño®¿¾ã _x÷¶<š÷w?þ³?{ôÿðuøÀ¯lô¶lòùÊààÄààÄÐÐÔsÏMº®ÍR;t¨}«œùHSSs0†LÆ‘û}íݛũkËb7+º}^\˰R1LÓUUSÓ]·*Óq<Ëò<ÏsÝ`… &’$†ŽÅ(A`„H‡aÌnm[\0ày" f+¢(–¦YŠb¢B’Šb*Š rs($©(h¡Qu/%3%‰—eA–Iâ$‰G•#eYe^yø-I¼$ ²ÌoÈûÅ\Sà›,ù ¿7 h›¦é躭i¶¢X†a†£i6èòuÝÑõú2¥Dm.¬÷ ÁO&«6üxœK&…D‚…à–dR€uâq.•¶¨Æ³™©«#R×[®ˆg^¡‚ÒåGG˜ÑtôÁÐSKêò¡6ó:ï-Ä’³®KºËW¿Ž®[žw‰iÙºB—5›IT±–X î­Î*}úK®¹‚O¿¶Ð[MÑwbEŸ>±üéG,åÓ'–2ïC•ˆk¸‘°¯tÝv]_QLÚ„˜ÌJÅp]_×TZŠÇÃ>TUËó|E± êÆÊÿ+£Y–‰Å(†¡išŠÅš&†&I‚¦© X–‚B2H’„#âº>MS®ë‡aè8¾ïû°Ð¶}Ûv—+©²$ÑË qñA!.>|èYââc]{‘¥"Zyý#ƒÁ`0˜m€i:<òÜW¾ò³_üâì 7t¾÷½¯xíkûiÏT¹ï¾ÏRùÿþßooô†`6 a;6ñÄ'žxâÅ‘‘™æféÕ¯>tÇo»­{·1Až>™ÝððÌÄDÑuýxœ=x°­¯/‡Ôö[1Ì0œBA™UK%½XT‹EµTÒfgÕBA-•´bQ-—JT²,“N‹H^_ÕÖ×í% O'm aNNÎÎ~ddd‹ F¤ij÷î èì‘uq+ž±;Ï ÎŸŸs}¹l ÊÌŒÊË|^©TŒhõ_QäZ[ Z‚‚’É…F.'ãƒ~I¦§ËccÅññªÑ~|¼855†¹\²§§)•J„aX.›ccùBA¥ijÿþ–ÈÈÈå°Ýþ ±mïøñÉcǪqƒù¼ÂqLìÛþþö5©pæÌìƒýç,Ô›oî¹ï¾›_÷ºþ¬kô¼à½ïýÒ“O?øàïÜxc×FoΦûî/‰ï££…¡¡)ß?ÿü9Ëre™ïë[ß÷õå6z31×侯ÀgΞ-!I|wwsWWº·7 ©"{ödvø”ëúããEô©r Cõôdúúª©47Þ¸«±1±Ñ[ŠYÐoÞŽ-ŠÜwºçžÃ¿üËû®>T{xxæÓŸ~ü±ÇŽßpCçþÏwÜqÇÁ5Ù` ƒÁ`0˜6Ýc0" CE©¦Ó€wkÂzÇq¼rÙ„lUµÇÓ4Û0 µr ½,çà—$ŽeQäãq–e™dR¨Ùç9†¡‘}^b, †zZ’8ÈQŪÅ~÷̵R¹\7Ðuö?Q³Ïkšíy>Øä]×3 Ç÷C0ÎÃøˆªZAº® Õ†a»n®R‚ Ãq? E±.k“ › IâhšB¦xYæI’ä8Æ‘eY IðËÇH²ª•‡Ü!Š"!H+çX–¦iJ9‚ D‘‡L$Xôp w&ƒÁ`0;„HŸÁ ‚êA–8t Â0„tÌ W‰åŽã+Šéy~¥bA¨i–ç–庮ç8¾ãøA@éšKBÓd.h ‚ \ÍM%E‘ƒ´jŠ¢X–áyðѳ‚À0 Åó MÓÇÅb$E‘JM ÿ( Ã0 }?ôý~{f~^—$þðáÎîþþŽ›oÞe»«Çq¼ééJÔ}ölib¢“,ÄÅ|ÔèèhÜZל퇮۞ç—˦çùù|åüùJ¹¬ÏΪssF¡ ¨ª÷ì¶íªª5±’$‹Ñ$IB؃çù+”KD,˸ä8F’ঞ‘eeé³,#Iœ °3››k¸ƒÁ,GôyѸß‹EuñdqËj âT¨mÏâó ½/>ßa|…ò¨h†¢n`Ù×\ÞØ(bQ>fmq]ß0lE±lÛ3 [UmÛvuÝÖu´éºîX–£i¶®Û¶í©ªetÌLÓ€±å^\–yŽ«–)ŠÇYA`¡&Ô~e^Øxœ•$>‘àM$XY ¾¾º®…C5Ó¯ÄÕiô—[×ÙÀ}Ÿmû¦éA÷éŠb…ahšŽm{žwQ ¥¦ÙžÀOQ©T!\ׇXÖ ¨ÆH¬Ò¤OÓ”(òAÈ2OQ$=FOB–e!Ñ’ArãyA,FC_‚\7 Éв<Š¢TÕ¤iÒ0xwŠbBðÆjüþðß“Ia(Qäa3$‰g®ŸÑ¸ÙXŒ†‹'ËÒñ8‹Ñhãyžáyöšº&£Wô¸¸Bôa´ÈÁe­LÔÂ]V¹aKºõ‰ÕéòW^½zq\σÁ`0˜mÃsÏM~ö³ÿúï µ·7üÖoÝ~ß}7o`\Ù&at´pûíùÿï»±¤†áóÏŸûÞ÷žÿÞ÷ž™I§Å;ï<ôš×\wë­½Xp¿-Ñ4{ddæÔ©éS§¦Oš9uª*§ëèhÜ·¯¥¯/·+˜é6ÿàŒãxù¼2=]ž™QŠE¥TÒ evV+•ÔBAÕ¢äD‘ËdätZlj³Y9ÅlVnje•Œ'7¶í O×¢ù³gKgÎÌÂ’(rp–vu¥A$ÚÚšÚü§ëÎDQ¬éérÔ\šÔ~!0•$ÉLFª3×g2rTj#7Vª qölÕF:9Yºp¡ ±7(€j÷î Ç1å²99YzñÅó§NMC¥“nèè9r¤û¦›º·qTäµfr²tôèøÐйcÇ&Nœ8ïyAWWúÈ‘îþþŽîÚÖ*Ò@×í‡þÅ<344ÕÑÑxÿý/ûµ_» —%‚ðƒüÚ·¿ý_ùÊÿ÷ò—ïÝèÍÙ`ßýêñ¼`llA|?44eÛž, }}9øŒ ôd³òFo&f=˜ž.Ÿ>É×ê‡åççu‚ $‰ß³'Êû¾¾–}ûZÚÛ6zc7(‰6CCçþýßÏÌÍéAd³2*qýõ™Œ´Ñ[й *£ÖÛ¬ÖÏ›ššƒölV†›5¸qëëk¹Êƒkø©£?óó¨­ÏÏWã÷ ÆÁqL*•hhˆ§Rqû“5<u5<»z;?ƒÙA¸X‚_.P³TÒæætøþ„$Ét³Zb5 IDAT:ÑØ(66&ššDT~S“íÆÆV«­333•Ç;þè£Ï=ûìYî¸ãÀš(ïŸyfì¯þ껃ƒã¯|åþ~ôžýû[Öjƒ1 ƒÁ`¶=ØtÁlm‚ TUS×Ër5ÍÒ4Û4]ðUµš‚¨ë >zðë9ŽgšnDXoG•Q(Š\JëÀ±,#I|ÖA–y–e .ç åýá–Kð€4N”É3šfû~‰U®ë†ƒäòå2¤WY¾@&•m{¦ +ØKJiW¹%Q‹Q‰G’$°D‘«‰ã‘Gž+Aɤ@’ I;`¢‡<’$!Ö 2iš’$=\ûýˆÁ`0ÌÎ}ׯ, Vá0 ‡ ÓtlÛµ,϶=ÛvWÓs I‚aŠZÓ$I’A†!áû+y¾<cÐÐÇ ³Á0”$ E¦Rñ y>Fa,Æ$IÓEQ®ëÓ4åû¸éišr]/ I×õÂ0t]|ôЃº!ãY[ÂFYÉj…£lÇñ4 < uE1mÛ3 GÓ,ÛötÝ6 ’áa§U*¦ãxp’, T*„ÇAï²ð0£ ž•$ei†@×zò°‹àˆ¯çž¹\lÛ+—õ¨‘*¢ 2;†–t QÙÜ,ÁùPgªZ¼©…pTôfczºüÔS§›Xl·¿é¦]×(¬Ä÷ƒÙYµÎ‰=ý"KêÏ=8ñ ®QÑb ‹¥i×â-`0 áÔÔˆìkR{¤öPm‘ †¡ÚÚ •Dö]]éLFÎåädǬŽã:5"2‡†¦Àk³¶õõåz{sýýí}}9¼»Üg2Ò=÷ܰ÷€i:¿ú«ÿGÓìoû÷½9×–ø‡ûøÇ¿ý¡ÝõÁ¾z£·eÛrölippÄ÷§Oç)ŠÜ½;30Ð}äH÷À@OWWz£7pK1ôÈ}óçç¡ÐË2--ɨû¾«+½kW3N_ßœÀÀÅ9ÏJ4ºPPQ €¤R Iâ9ŽI$8–¥)Š¢iŠ B†¡|Ÿ0 ÛqϲŒ(ràЗej`dYà8&g ë°1˜Í†ªZšf©ª¥ª¶ªB=B«R1ÅRU³R1UÕR ꪪ…j¨ à: I‚,ó’´P­P’xYæ¡H¡$U°dCÞ)fC@Ã×0?²xX{Éåóó†ã¬¥%×cÀ\;Ф šÒ‚%0ùešŽ¢X†á˜¦£ª–®Û†á†£(¦i:†á,¾¨¢È _–åƒÚ©8ñc¢ÈC—LbÉdžÅ¾•5æÄèTL‚ `ü°Ö6ѳe1rJ§ª*Ä®ëví·UÛWGÝlŽ£…ùPP~£éìÚoža(Qä(Š’$ž¦IQä)Š„ØEYæ!ôŽ$‰dR€uÖa¿aÖ“JÅPU«\6TÕVSÓìJÅ€«ãx•Ju:nýtÝöý@×ðé»®ïûü^198Ž&Šçš¦8މÅžg8.&1ž%p)@õµšXŸ½ø”¦ –aèD‚ƒðN’¤vÔ\FLJи’¸n`6Aºn»®!|w†ãºº4!o><„ï ‚ àBäº^í5mÏ |ß×4{ù ©G–y’¤ â"R2A I†àrT[Hšp(ÑšP«Ž2A0q³,KÇb vìb0 ³žLN–þñŸ|ðÁ£,Ëüöoÿò»ß}ÛN¾‘ü“?yø‡?|ñé§?º'ë1k‚ç?ÿùè÷¾÷Âã?áB¹££ñ®»®»ë®ëº±‹g;áûÁÙ³UñÉ“Ó'O^˜œœ ð©IÜ·¯µ¯/·o_›ö’8;« Ê… å|¾23S™ž® ÊùóåBA)•4X‡$IpK55‰ÍÍRS“ÔÔ$f2rcc¢©I¯=®Ü°™qol¬8:šýåØXal¬7ø©T|÷îÌÞ½Ù={2ÐèìLã‰Í@„Å¢R.›à¬¯TÌ|^ÉçшúXŒnmM¹>™²Ùd6+'“B.—ÌdäTJhhH°,þ^!ºn ¢B¤PeˆxœÝ³'ÛÛ›íëËuv¦[ZR–历†Î=ÿüÔððŒëú<;x°µ¿¿<³{÷æðGìʰmïøñIÿƒ¸bŽcúû;zºûûÛ³Ù5¶Ï¿üå§zèÙJÅ¸í¶¾·½í¥¯~õ!, >úÑo>ðÀÏ>÷¹ß¼óÎC½-[ Ót¾úU컿<êÄ÷ÇO9Žõw>ÜÙÜŒýÝ;…ÙYmxxft4?22sútaddºPP ‚e”÷ð³Ëÿpåó•Z­ˆs(éÑá³ÓÛ›Ýr¢ŽëúããE(³½ÓÑÑ<ÌÕ&“ñ®®4ê—Bˆk1åºþü¼Q.ë’‡lø•µä£:€çc ‰††xcc¢¡ ø‰T*ÞÐoh€%ñT*ÞаÍó†0L¾”JúÜœ67§‹êÜœ‹E­TÒ@…?7§£4’$ÁwâûLF3~:-67K5-¾ˆ¿à®££…GùGyndd¦¥%uÏ=×ßÿ-==ÍWóš?úÑÉ?û³GFG ¿þëþð]k~_Á`0 ³-Á¦{ fƒQUË4]Ót@aišN¥bÂM³tݱ,GÓlUµ@~ «Y–[.›u³äËF ,[u(ð|l)a}Œe™T*βŒ Ä$‰ç¸X"Ánrû9ä¼AÎ jƒYÞó|È‹SU+Uµ|?„œ°üÃÊ\GÔrctÝvÝ`5ºU²Œhš„´7Iâ)Š‚Œ#ŽcEZùhâ ¤£PÔÂ_Ñ4‡2ñ ›Ž¨úëqƒÁ`0kt@°Um|?„¢5{ýè_Ù¶gš.äµFû З°,tWž††Á òñ( C© $IÀ­è=o5:{òZ%‰‡ ØXŒN$Xè–$Õ”~Š"Y–ñý@XÏóY– ‚€¦é ‚Ëþ#ô|lÛõýÀqü¨šÿr•ôÇÔ¬Í[ÛG¿$•ŠaÛ>tÑ- JU%h°£-ZPʶ=èÆ[–}Î%_¬4È’V×QO&ã°C$©jCƒäç‹]öôV¬/…Ð4é¢*•ªF ŒQà#Ð40LYšVõI-Þ™¢ÈÊD’xQä“Iµ%‰—$NùT*})å˜-Ç’vûÛnë=r¤ûºëÚ¯Ønïºþ"g}µQ.×[ì댇±]g¨O¥âuKd¹j7Û´)@ f£(æ™3³Hd?9Yš™©@Öh¤(ŠìèhÌdä\.ÙÙ F{T¿ØÏ%ÂÓ§ó##3##3##ùáᙉ‰¢ëúÇôõµ@¨%DÓâh•/>üð¿ƒà¾¹Yzýë·°àðýàïøüóÏŸûÎwþK{{ÃFoÎzðå/ÿìÿðëï{ß+?úÑ»7z[¶?Šb?>988>88qìØ„e¹ôâûÇ;qnçU²¤òù‰Z0=rßC¹—®®ôæ¯À,I¹l‹j©¤ êì¬Z*iÅ¢Z,ª³³Úì¬Z,ªÑ¡¼D‚Ëddd³rS“ØØ(ærIȲ@Ó$LËF‹VF5ÄPÒ²R1¢õ,+•êúËIŠÅãiÑ¢hÑQ²¨°–@­>,ÍÇ`6–ºê›uƒKèŠ K% *¬DþrkÏV66Š›9„³æA¨ª¦ªÚ†aëºÅ@Cå†á躭붢˜‘¶ó‹_»¢È!W¸(ò ‡ "h'\"Áɲ+'–AcÖ45¹ø*Š–/Yb…i¸hwk¹ÊÑëm´£…‡ÅÖŸK–_4…}éuVˆ®D  "ËÍb×uÎWžæN¥Ø•ve†cY.|Ù™¦kv-ž>é®iºð•gšŽ¦ÙºnCµ ˜²_¡\bQäb1Z–«€øŠdRˆ–“GãáàŠ"‹ÑP8Mb(žvñyX[xU§ëj ?«8c¯ 6CØ<Ä¡ÅA*ŠEºn {¾e¹D5̸ú¬ëúºîÔBp²ïº¾®Ûèá€"eaà (‘`c1ÎO‚¨Ãy ç0Tï@kBàI°Py†¡ &ÕöEŽa¨MŠƒÁ`0̆S.ŸûÜ“ŸÿüO†~ßû^ñ›¿ùòRhÎK^ò?ÞÿþW~࿲ÑÛ‚YoÅ|üñ{ìøO:â8Þ7îºçžÃwÜq_ß6ÌÍé'Nœ?y²êµž±,—çc½½¹ýû[öïo=p eß¾Ö¦&q£·´J†…‚nù¼röl)Ÿ¯ ‡èÆ*ê–Éȹœmãa½­…¢˜££…Ó§óègjjÎ÷’$ÛÛöìÉôöævïÎìٓٻ7›No–su§áyÁùóó`®/—BA™™Q*}6£q²,ärɨ¹¹ì¡Ç%Ö ßΛ‡pÖ³g«þP¸TÂuä°ïÔÛ›vddæ…. M=ÿü¹‘‘×õ=p ù—÷îÍâ”+fr²tôèøÐйcÇ&Nœ8ïyAWWúÈ‘nˆô;p íZìÛ ô£_üâSO>9œÉHo{ÛKï»ï掎Æ5ÿG[—ÿù?¿÷·ûÃÏ~öþ×½îúÞ–­ öÝ_ zFþîçž›t]?*¾¿á†®ÍÓǬšfWkÒŒŒÌ «»,ó»v5÷öfûû;úúr´îä®o¥b Ï ÷ýéÓù0 %‰ß·¯}v®‘s­Éç+##ùZßuB÷‰Z5,Ô}ííÍ<ضÎã´K‚¢ ^(tvVóý…Ð%ƒ?a˜"öÙÔ$á3ƒÙ!ø~¾ûRIƒ4x™,ss:øñQ #ÃPé´ÔÜ i,RMKMMb6›lj3 u^%'ON?úèsßúÖ/Ξ-9Ò}ß}wß}øŠ%a>öØñO~ò± ÊoyËÀG>òÚÜgÃ`0 ƒY ØtÁ\9¶í•Ëz4®N^°BŠÝ ¶P4žµœÑ`…,»Í–„©8¦éÚv5sÌ4«fXÈ:މ"†á@R´Á?ë8¾aØ®[uÙƒŒ~5)=¢ÈÑ4 ‰‰Ç04ì1†¡D‘'d“çhš†tXŸ¨Šé«9!ÕCÓ …¬²×~ça0 ³#€/ýÅɽD-_tå`X ˜ÁA_{Êww5iÀAPIQE‘$I€+< Ã0$Â0 ‚0:ï¸4Mñ|ŒãhŽ‹±lLb<Ï …p–K'fš¢Š"ǧ(mm„A†a:™ÿÒ>z†¡ ~mÓž7[ÃR߯ØDk.÷ú±ÝؘXÙD†úíKšÈ6ç~[`:´õyý‚Â~£Õê>e CɲPû©ªêE‘—$N’ød2}(м,ó[ZôY .”Ÿ~úòìöA‹Êr¢±‹—ÔØ)Šln––TŒ-)[¯Ý€Á`0+aÎÔÔ\¡ €¥Òü@j®r –Þ\N®Ií“--Él±Y³gKÁ²àµ§(rÏÚgûû;z{s­­)†:÷¾¨ªåyT1M§¦w\×Ó4Û÷E1ƒ ¬TÌ ¨®¬i6D6®üO“É8E‘²ÌCÌ!8©áõÐCƒÅ¢ö+¿rà=ï¹í–[öRŽ ¸ˆÏ|æGŸüäw>ýéûÞò–Þ–-öݯ †á¼ðÂ9äïÍAßßxã.¼Ó«ûÈH~xxfhhêĉ PV9›•ákîã–ËÜ ¨ªuòät«{òä×õc1º»»uiúû;p/t‹R©¨hÓädixxfl¬Éæð)€..Ü'n’@}ËrðQð'<µ8ú¢7SÑ€O¸ŸjlñÄ:³‚TøÅ¢Z((³³Z¡ ‹êì¬:3£”Jê쬆â=X–ijs¹d:-Öå°47K™Œ¼ë7_CCS=ôì7¿ùïºnß~{ß½÷Þôš×ô_Ùð£ëú_úÒÓÿë}Ÿ¢È÷¿ÿ•ïyÏí;jVƒÁ`0 æ²À¦{ †PUË0lH¡QUÛ0lÓtÅÒ4–+Š©ë¶®;¨mŽa8Ëå¹?T’8ÈÓel’É…L›xœ6‘àD‘„X<ÎÊr5!gC*ªA®èæUÕr]_Ó,ÐÓ¯à–E‰1W&Z…AˆqƒÚ©ÅqL<ÎB¢W,ÆÄã,Ë.´c1Lôñ8‹U]ö‰‹Q81ƒÁ`0˜5d±†žˆ$I® ¡¯[ ’“MÓµmDz<ÛöÂX¥‰ž$Iš®×Г$YsÁ¯ÊDlX¶šoY3ÑsQ =±TZ&Ç1±C’!I’A’$á8ÜBÕLôa„—›E¼šžR2ß >ú%qo~^¿”†¾Þ ¶Ê²REJ’° =2S,é¯_ç}²Qø~0;«^z J,öƒ/ß`i8¦Ž:»=Ç1Ý/yI×îÝÙlV²,Ëë1ÌÄ÷ƒZ^_¤öStöl T ÛÑјÍÊ]]U‘=èw³Y_ßVfvV;yòÂðpUm?<<£(&I’( iŸ==Íxøqõœ93ûo< ‚û¦&ñ oxɶÜ_ùÊÏþà¾þ÷ÿë_x£·e½ùêWŸùÈGzï{_ñÇ|ÏFoË%Ÿ¯ V3åž{nÒuý®®ô‘#Ý ¾?t¨§®­9OÜ÷Ð8~Tq,Ë´´$£îû®®tww3αߢ T„%s¹Ñq'"C(sr¹s¹d&#§Ršh¦mÛ³,GQ,Çñ`ÚÚ¶]Uµ ¬8  ™¦ Ó»ºnƒ¯SQ,“¬TL¨>¾ÜëKϲŒ(rñ8ÇqŒ$ñ0&&ËË2ñ8+Ë<øé"êÐY*%l¡G fkQ©¨t¨ª¢2¢¦ªZÐ.— UµP‘QÇ©ž•e^’ª%EeY$>™$‰G¥F“É‹~ã› Q›,—Mð5ÍÖ4N3UµtÝÖ4KUmM³*S×­è ‹_*gE‘K$x8÷@F ¿áäE-L&ãÐÆY˜ ¡N”¿¸.ÌD,.J´Båì:Qþ’5³—å74$°xK°d@Ýäõj¢àÜ3MgñWyHH]7Ó½rA]±+´B"ÁCÂÔXá<_±†Ä²†¡Òiqq­ˆÅ“òËU”_ûc¶ã¹üÈ–U… iZ}mûÅ,Ö©¯Ò¥¾òyŽNcÌ’¬ƒR_QÌUæ¡\k¥>Ç`0ÌÕS*iŸÿüOþéŸ~"ËÂûo¯¹÷Þ›¶Í¤ö x^ðò—òU¯Úÿçþk½-˜kÎÐÐÔO¼ñ²Ìßyç¡{î9üò—ïݱ²¼­HÃÁô722‚]‚ À×ßßÁNæ†a¡ LMÍMMÍŸ;7wî\õ÷ÔÔÜh$™ÉÈíí íí¹\²­-•ÉÈ--I\Hu«cÎèh|…Q+7ãuv¦‘µ³¯/·!ÉÔ;×õK%­PP 4jÅbµ1;«–JZT ÖÐhjÁžÖÔ$¥Ó ð¦¥Ó‰¦&©¹YµuÀ4Ó§ó5£}"” B˜çc ûììLÃǧ«+LÆggµš×~úôéüððÌì¬F„ °{÷f{{³½½¹½{³}}¹ŽŽF|u½&'KGŽ ;vlâĉóžDöh[‡áÊ¡¡©/~ñ©o}ë4Mýê¯ÞøÎw¾|ÿþÖkýO·"_úÒÓôGßøÄ'Þô®wݺÑÛ²}¨ùî¬iöÝ_=ºn¿øâùÄ÷GŽtã=¼Éç+CCç Ÿed$êÔ´ãx Cµµ5DSZöîÍîÌ(q×õÇÇ‹ð©šzþùs–å2 ÕÓ“N__îºëÚñggëâºþ… e¸‹ þÉ“4Í&B–…]»šººÒпíêJ÷õµlÚ0³ZLÑBÖs¡ @…¿ht¡ F'[!À#šïŒäøÑôçæfyg^0˜B„³³Z©¤ÎÌ(³³j¿XTçæt´² °™ŒÔÜ,75‰¹œœNKP1´­­¡¥%‰¿ë°mï?xážyê©Ó™Œ|ï½7½ím7ww7_ÁK•ËÆg>óãÏ}îÉæféÃ~ͽ÷Þ´ʱ`0 ƒÁl6°é³ÃPQL0ц]©˜`¢×u[QLh ¶a8šf+ŠišØí¿ I’²,$l<ÎÆã\2)Äãl<Î&œ, ‰‡Ú‚„˜,Göë.É¥¦éÚ¶§ª–çùªZuӆ㺾¢˜®ëkš yšfû~P.žçëºùð‡Š²ÄN@ÔÔótMF_UÒ¯^´ºÔjì¦4Ä`0 f«€ò—Ë3\e:¢e¹†áÀÂ0 ÁDoÛ«ÒÐSIÓ4E$IÖ†_Ã0$.KCO„(rAÖúÐU ëLô(}q¹.Øð ‚°mŸ$Ã0 mÛ÷ý0‚ËÊ$¿,=”ÞÙ±Jú%ñ¼ä&¶íiš=OM³ Ã1MW×a‰£iPfÉ«TLØóŠbÚ¶gŽ®[HVìðD‚eYtZ0w Ôœ\PZ ­°ÎûdóàºþÜœ¶X 5w¬l®gY¦¡!¾‚.i°1³z4Í.—rÙyú鱓'/ŒËeƒ¦É††„(r$I9Ž«(VÝ-2’ž´OÈjn–öíkœÏ¾¾Ü®]M²,lôÆn=¶½àxê©Ó¿ñÿðþ÷¿êÃ~ÍFoËÆðàƒG?ô¡þ­ßºýc{ÃFoËN®iÇŽM N;6Q.’Ä>Ü90Ð=0ÐsÓM»°žàÚ!õÑ:4`ÀŸœœƒYød2ußC£­­‹Ø¶:•Š)u*|ðãÏÎjh\¥@‡ e ~6›\·Í†‰c4.§(U 'Ì2F½C¿\6Ç3MWQLÓqçÒ•à‰jåÎêÔ9²Xœ²$U²,À¯$ñ0¬*Š|"Áñ|l'Ùa0k…m{Èz¯ªf¥b*ŠY©TÍø°)ËáÙºW€:ÉdõIð-ŒCgLaê@IzH÷¼Ü4²'—JÚâ)¡¨ÊyÉ©‡¨1¦R †„Ù@®X”??o,'7_A”¿¸n7|`º¹±QĪ߭Ë%CÐIµx]·aFÞ4ÛvmÛsß0ìUü[’ –#gŠah–e8Žá8šãØxœå¸j·Bj›š$Iâ%‰ohˆ76Š’ÄC­,ˆ§]ÛýƒÙœèºíy¾a8ŽãC͆èy 7•®ëAT³®;¾ïkšíy®Û¾¨ª†¡¢Ào“ ˆrÙ$V§P¯Ø0P’e™D‚eZ9†¡%‰§(z­É¤aá C%uCЃilK¿\Å ÃâØ!Œ¨;Â4Ûöà@׆pžxžYH†][è#°&œ9«Ùˆ&""•‚€C‹Ññ8K’d2 ÙXŒ†0x’$`!ÔK€“N‚  ®¶¥(R–y‚ ðƒÁìfgµO}êû_ýê3»wg>þñ7Þv[ßFoѵåÑGŸ{ßû¾òôÓÔÙ™ÞèmÁ\r¤ûСöxGï84Íž9uê©S3ÃÃÓ'N\¹m*ß¿¿åàÁ¶ƒÛhÝ·¯egvä£dYˆÅèD‚„Ë2’Ä3 -Ë|,Æà9 ƒÁ`®Œ UÕ$b5^õ•W³,/ -Ð ½ã¸Žsi =I’ CÓ4IQ$A$IA&zÑïû—¾ (¼á<ƒ~I’<'ÑÊ®ö”î®°,eY^„Šbú~$]·!Óöä.‚ú*÷¨ª¿áÃ0¬TÌ0¼tš+E‘’$@ "EQ’ÄÓ4)Š<ÃP¢ÈÓ4%Ф>², *”Ú žô‹ßÂö¬ß£i6tDuÝ6M×0l´™°tݲ,O×mM³lÛƒÞ;4VÔG$V,ÏÇD‘‡]šL °Ke™gY&‘à Žei(+ŲL2ç8Fbp˜Öy‡lrlÛ+—õÅæz´)–4ד$™ÉHQGÆbs=Z² Ê0`Öä¯/—õ¹9£\6æçuX2?oDŸò¼‹¾ÔàN¶¹YÌf“u•R)×WÏLH)Ç`0˜-Š®ÛçÎÍ#%.ØíÁ“‹¾²eYص«©.Í/›•qNÑåbÛdÓ ƒÐFȦK$¸ZûúrHmS(¯†¨à>ßøÆí)¸¦§ËwÞù©›nÚõOÿô®ì÷üÖ·~ñ{¿÷Õ·½í¥ñ÷⼸ÍÃÙ³¥ÁÁqH±;}:OÓdOOr]n¾¹‹*ÖÛöff*(‡ããM³ ‚€ØúhÑ0àwvâÓíC  ø•Š bQ ‚êH&8L‘¿N…ßÒ’Ú„7¿h;ê2^¬s]î©•®HmŒŠ\"©+ É®ðT:-a3 sY€ ~£ÆÅ ô¾Å¢H$øH‹_gÃG®üMx5Ãl+£ð%ç;–û*o‡%UøÑ¯¨¼©IÚ–7­˜­H¡‘i:•Š a„šf«ªmE1áY´Ð4ÝJÅ4 {ÉÒõ3™L ‰s‰—L ñ8 “°²ÌC©¡D‚EÂ) .‘`ñ°ØfŠÊW*¦®;†aëº]©@ˆ¬­ëŽªZªjêºKÐS†a+еøÕb1ZXQdYDÞ1–¥†â¸MS$IÆb4I’Eø~È0´ã¸EÚ¶O’„®;$Ihš ši¸JƒÄ|…í‡ÓÂ-`ffü!rUyš^ÐŽCÌx¨!HC––¥ãq.gá!¾GÆ€H]Umß@©¯ëNM¬ïA‘¶hp\Q@Q„•Š(ÐÈFŽõEަiY^å˲@Óe‘EL<ÎBKM”¿Ä©N’d*U5ì¯ÏîÚö,.R[xQ0Þ¯yÉ« _ @šåä‚XÍj°Îö BÃ`0˜­ËèháŸxä‰'^|ýëÿ÷ÿþ†ÖÖÔFoѵⵯýë¶¶†Ï}î77zC0kŒãxO>9üè£ÏýøÇ'çæô½{³¯ýá;î8xèPûNoØZX– ª¾ááhT*E‘{ödÁÝÖßßÑÛ›kooXçáMÃp&&гgÎÌNLÌž=;{îÜüôtÆ©`¼½½¡½½±½½±££±££±½½¡¥%…§ð¶ ANMÍAR BUƒxœÝ³' Ez{s½½¹ÖÖŽr¼Â0,”rÙ,”™™…xˆ@¨K‘e!—Kf³r6+'“ñ\NÎdäT*KpÁàÍ€ªZããʼn‰âØXq|¼mÚeY¦§§¹§§¹»»¹§§ ìö²,LMÍûÔögÎÌž??Ñ&--©îî¦]»šöîÍöõåöîͶµ5lô[Ü&LN–Ž:wìØÄ‰ç=/èêJ9Ò ²éÚÖùKmnNÿâúå/ÿLQÌ7¿ùÈý÷ßrèPÛznÀ–ã‘Gž{ÿû¿òÛ¿ýËüÇ÷lô¶lg°ïþZ£(Ö©S âû‘‘¨!æîþþöë®k¿F>Ì&ªL<9}âÄù_¼022ãº~,FïÙ“=x°õÀ¶C‡ZlkhHlô–n ù|}pŽŸ,T¢&¾‡R@ýý½½Y< ½ÕQëÌ™bM|_5à[–KD2‡ÛÒ®®4Ü™vt4nõ1Çñ–“àÏÍUÛ¥’Ž*Hy¦&1Ñ0ã‹"·Qo ƒÁ\;\ן›Óòy%Zštf¦R((çÎÍû~Õ“LVG [9›MB s[[ù8¸®ÿýï?ÿàƒGŸ|r¸««é=ï¹õ×} ‘¸ì÷þÜs“ú§üüçc·ÞÚûñ¿qß¾–k±µ ƒÁ`0[lºÇ\@íª(Ökš¥(ä¾F-öªº°Â’ùÉd\’8Q¬úè!ó ²YR©…v2)€Å>¯fg±ìO½ƒ§^Q,HÚQÓ4]Ót!̲\Uµ à ?Ê+S5VxqA`Y–‘ež¦)Y@¨ ï"â¦gx>–Hð C%“U7=»c7=ƒÁ`0—Ëâ”¶Uf¾EW#ª†z×4d¥_µ†ž`4ôARE’DhèßVc¢g RÝ{4ôA¬l¢¦Ï5+ýâÕ ÁÞuƒšƒÞ= (Ø£ªV•йzmý ïtó° ÐMJ$X†¡E‘c:‘à†’¤[=òד$™LVÓDI’H&ã$I %«:3¶,0U‰< pŒ¢*K=åÔ9Ð±ÝØ˜@2td%H€¾ÂSؾz úW¹lªªU©˜ªZUÁÍüÀSµÕL¤E º•$ñuj!X"I mY$ Û…0—Lp‚Z(%¿¸ÖB}YŽcÀÐ!š¦çæ´bQšš+•4–¥ê¸õÖ=¯zÕÇ»pB ƒÙNø~pîÜ< ©Ií«—PX'gÛÛ!.¤&µOvv¦³Y÷£® ßFG P±ÝçÏÏ{^ÀqL__ ħBÚg6›ÜèÝœ=[úú×íÁ=àºþÞð7žç?úèïã$Àoû?>ðî»ïæ¿üË7oõ àmI±¨>÷ÜäÐÐÔààÄàà¸m{¯âûnèÂIÅëL¥bDÝ÷Ð@£,Ë´´\ä¾ïêJ÷ôdvH¨èŽÝ_/—‘^(¨(#ªÂGy騱uƒ‰W7h¹ìSu)Qæø \ù ‰53À`¶È<ŽJY,.¿Š–ÌÍéu æh5‹KÖ^Å5Þ0—dþ’g©eyK–Í^üÅUáGON4ÿ…ÏOÌ&E3‚ _U-]¯Æ.V*ò¡C|&<1œ0‰¿ø!ü2‘àdYEJ/I_™Õ`†¡2¹µµ¡¥%™Ë%ÑØoGGãvÕõäóÊüì _xÊ0ì{î9ü»¿ûªÞÞÜe½B†?ü‹¿üËï ê»ß}ëïýÞ¯$“øÎƒÁ`0 ›î1«k†z[לõªjiZÕY,öšf/vÖC,µ$q’Ä'<ÈëÁ±˜Hp•Hp©T\yQäÐòµ}#`Y7½iº ×7MÇ0¤°‡ìGÓtÅ2 Û²\x×ËùX“ɸ Äx>&ËB<Î BLùD‚6ge™Ck]ÊD“'“Ç`0 f1ÑÄ×åüòðpI =QÐÃè†Þ¶Õhè ‚`Y& 0ÑÕГ$ï‡¾ï¯ÆD‹ÑWuÇó|ŒçYè– °²Ì˲Pû]ýI¥.ÒÖ#yývbÇ\SÖÊ_¿œ” .&SSsO>9<88~ìØÄÙ³%ž9Ò}Ûm½·ÞÚ{à@¶Ûc0˜- dåó $¥ÌÌ( µÏç+(Œ¦©ööð×g³É®.hÈ]]i¸p•„a899722344q¨E×õišÚ½;±¹ýý½½¹¶¶ü³†ÌÌT{ìø×¿þìÐД,ówÞyèÍo>ò²—íÙÆ‚{ÄÇ>ö­<úýï°»»y£·eSðÈ#Ïýîï~å-oùÿÙ{ó0G®òлö½JêV·¤Þ»géžÅnÛài“¶!ìÄ&„pCÈBHÀpc0ßMnr’pÃî 7¹ Á`V'Hnò%aøˆcLrgˆíi{zfzz¦§÷–ZR«Õ¦Z¾?^©¦F½¸g<Óêåü=zJ¥’úté¨TuÎûþÞ;þôO‘ì~KãyÁØØ¤äýð‡fg—9|¸ Ä÷¯~õþÖV±ÙmÜ¥T«þü|9r߃wßÃú]ÛÙ@UËurÚÁ"Ä/ÏTø™L¢³3¹#U¼P–¾.¾¯:ŽW.›0p=_€Òõ†aG5ìW}[Š"D‘“$‚0¹/Ь$qG +ËX…cYܯQ<X57yW [™ù•>ßjÃÊBÁh0?ÆÝ¾ žñ•ƒ©”Œ~/‰¦Ù•ŠmD¸•Ëf¥âDÑnPx6-x¹l­0FÓ¤$q0q#I¬$qù«4ÌA±aØ FlYâê;Ù×rõ®Z7¢áнÒÕ¾5ྠzü+^N£á‡,*È´ÖÄ=ImmRT?¾AL¿ÎÛU“õ ñ?Qß[5Üeg×wIÇëîÄ#X¢=ßD±ê³¨Þ b-À~ÞP"ªaö'.ʯº®gšŽëú•ŠãyöUµöÂuþtKYf)ŠTž¦‰zuJ’8š&dJ>0`5U¼t©g§¢ÈîÝ›ŽOU#¡ùF×í3gæ!o||qzºEïéiÌfA ˆ‚7ÂU‰ìe™ëè¸,²O&yð "‘ýÖÇ4݉‰ÜÔTq||ÔöSSE¸NBXáÚÛÛÚÒ":Nun®<7·¯©ª5;[‚ˆ8Eá#ë}OOkookOOkwwëΈ9qïßxîÑGŸϽæ5û|ðÎ{î9tUÔÇ{ì±§>þñã$I|à?õK¿ôcèÊ@ Ä.™îw#ºnƒ˜^Uk÷pkXÝ7¼œõŠÂAªXé!I2÷`}"ÁÇ^—Y4Û®Bz!Xõ£lÃxŽz¥âD›Ùvöà·]õ=E‘åù(;òRxžQ>RØ‹"Ëq4ü/Qî:Ï3(D@ »È»{I¿üJ =3ÔÇ7‹¤ö×ÐAQD]COÄGÃ0ôý ß6¢¡ÇqL9Ç9ެk虵óÄ…Õ­ôëo¶Žº}Õ}eG¯#ñ_#÷%”ô†AvÙÊŒÜXé²vw¹•~U@UoŽiºP0 :¶®ÛQ %Ç©šÂ‚®7®Yõ¡œ@L¨T[€“؆§X––$N\ãk6yoì^¦¼~8¬‰L(ŠÂ£tPÄ5sÍþzEá³ÙÄZý³Á_¿~ÀnÿƒŒŸ8q1—Ód™{Õ«öŽŒ »=ئ†sñbªq íâ¢K#‘}:­d³ $¨d2 rß\Gòyýܹ…(ÛóÒ¥%M³qïímÌwCÄáž=íhŸßr9õرSÇŽ=ÿÿqI’Ø7¼á¦7¾ñÖ»îÚ=Q‰ßúÖ©÷¼ço?õ©_ù韾µÙmÙB|ó›§Þ÷¾/½å-·ÿùŸÿ<ŠÄÚ.ärꉓ'NLž<9ù⋳ABÂÞÈÈž#G3W“‡¸8Ž·¸¨68.\ÈCÅqš&;;“ÑÉœôö¦z{[Ñg·p¯\®Di Yñ‹‹j|Hj¥ ?Ê1ØÁ*ü½_[ Ò¨®ÕJVj^ã2Óµ$§GK·ê!«bšn=„É\Âd«ª=,—-0?Æ_Îq4Œa* ŸHpŠÂ×—£•<|ï’IAQøfý›ˆí”H©T"¾c¶®;•Š *|Ãp4ÍÖuK×m]·ËeK×-HŒŒáv²ÌË2èïáV«m ëëyYf‘'±e©TœJÅ5M'Šá„éo(/dš”Ž€Íà»Ë–µÊœx4µ ßIâàa"!ÀJx…§^m0ªçºnišm64ÂM¡mмúá躣i–iÖZ¾òÝX–ÅZSaÖ^ÙD‚‡A` ‚ÀDÍŽžzY;q5¬/Í*¬®³~QIó›ÉÊ«×uJA¬„7è­ÊZ;ºt]Z]ØF…:8ŽFêóf¡iv†áx^`Y®ëzÐ\×7M*.A¨ë†aå²…aœ¸†ãû]ˆwËrLJ·ZÿO CÓ” 0 Ssß‹"CQ$8ôE‘¥(B’X’$% –9’$d™#\–//ƒ_Q./oÆŽC ˆ—b~¾ü[¿õ?øÁøƒÞùÜ¿3Â§ÇÆæýóÇûµûÙmA\#ãã‹ÇŽ=ìØ©ññEYæî½÷¦£Gßu×üÜ‚ø~01‘‡0§ññÅÑѨi &µMŽtZGj/ËÜÀ@;¸ì³àµG£”;•0 §§KÓÓ ü[ñ¸¹Y–êˆzÂà`v` m÷†mœ —–6*²E¶««e¥È>òϡHÇÇáñ«½½©ÁÁlggR–9‚ §šË©‘Ñ~qQ…†¡º»[ººZººZº»[À ×Õ•ìèØ½Á›€ãx§NMŸ<9yâÄ$ü³,5<Ü32²gdd`x¸{+Ôq Ãð»ß=óè£Oüð‡n»­÷}ïû‰ûî»EcnS§fÞúÖGï¾ûÀ£¾Þ4ä»o"qñýsÏM F¤5s÷m·õ¡Ÿ˜]Kµê_¼¸Ýc||ñôé¹R©‚aX&£ ÷@-«áážýû3»ð'¾sFGg^xaÖ¶« u#nº©Íõï$àC‡Sz¸ž˜ÈÞ!‘àBJU f÷íKïò“ Û®ærZ.§FÙè UÕÌçõ(Œ3 œŽ_ü6, /âšùÄh²)ú½h˜Šf c¥Ryå$T¤‘m˜‡‚IÆövM #¶, ÖÕõš?nœ7M'*…‚"ß0œUù¢È²,Å0MA’$Žãx†žxž_­úŽãÙ¶çºÕ•¯UΣâžzQd ì„(2ñ§E&‘àE‘C#» jñ‘4±-€ø(—C蚦Yžèº =¶Rq<Ï/—-ß÷ Õ†a{^ ªVµê›¦‘o«†ôG@ØtNØStçÿ–H CÂå-MS‰Ï0TýaüYdÌßr4TYYz!^\aƒÛ¬5H':TFåãeâÇÃx%†u¶áyf·Íp!ˆ—I†÷w?üð‡¿žÉ$>ö±_ÜZŠ÷¼ç /.=þøoo;ÉÈ.'ÂýhòرSÇŸžš*f2ÊÜú†7Ùƒ–¶ù¼~êÔ4D:ŽÎNN.U«¾ 0‡w ÷ eÁ›¶ ù……òÄDþüùÜøøâ… ù‰‰<™Y–êïoëïohëëkhëïoëêjÙå·L¤ç_ÏÅET’Ä<Ø94”̂ί«« ‚au‘ýZµçDö4Mvv&!މìwQ5ˆ©©ZAˆééâü|²3ÚÛ¥ÞÞ¶–A‚ p·,·P0æç——–ô(ƒC–¹îî–îîšÈ¾»»Ôö™ŒÒÔn1=]|晋££³'ONŽÍy^Ð×—:rd`x¸gdd`Kå¶ØvõË_~ú±Çžšž.=ðÀ-?ü7ßÜÝìFm'Î[|Ë[>që­½ó7ïB#ŠÍùî·qñýüÇ¥R©BÓäÁƒGŽ €¼{w:Í€ç/æOŸž?}zn…‚aX{» Ýã–[z†‡{²Ùæ€Ù|ÜLX(•ÌøÊxê#I}ÃÃëå¯_Ÿ»½¢pwÜìöbK¹œfØÅE-’ÚG:{Š"ººZz{S™Œ’É$bR{eò w-–å¾ðÂìøxbÇÇ!ÁRÙC‡:79ÛaX.§;ö|ƒàþÎ;‡vgŽ´ïozÓÇ-Ëýæ7ƒçÑß*?>öàƒsß}7⿌N·/á<::âûóçs$‰ïÙ“8rdàU¯ÚÛÓÓÚì6"V¡ZõççËq÷}ùM"!ÄÝ÷°Ðݽ=âD×ß £X4ÕBÁXZÒòy½X4r9uiÉÈçµrÙŒ6–e.“QÚÚäLFio—AßÖ&ut$R)¹­MB™o×L4Ñ_»XµëªCš@4°¹²Ìj2ÉG>¸•åWÛÚdt@@ì`‚ '>ÜTÕ‚¬ø’¨ªÕ0˲T2)&“05 ´´D—ø--¬A‡DÄËd¸»UåøÅ¢±R2Û0ÉÕ†‡äøˆ­ƒ®Û†akZí^×í¨0ÐÖёؾ1ÄKbšîÄDßå ôÜ8Ž÷ö¶öö¦@j¿Ëcð®MdŸL ™Œ¥Hd¿“XZÒÏž]ˆâmΞ]¼t©P­z†±,ÝÚ*Â5£çù¦é–J†m×úÃPé´ÜÑ‘„^‘ÍÂ}"“Q²Ù„,sMý·v#Žã:5 1o££3¹œÆ²ÔðpÏÈÈž‘‘ááîLfËy{MÓýÒ—þïç>÷ýÅEõ'røá‡â–[zšÝ¨mÆ… ù7¿ù‘}û2÷wïA‘½[ä»ßRÄÅ÷'ON–Ëf”—Ä÷ Ãr9mllþÅgOš™]Æ0,–#ëýÖüÝâ_ŸçŸŸ^ZÒ±˜øèCCÙf7qýQU³.¾ÏMOÏ[¼p!µí3¥.¾¯•‹ëímEc,ëad½‡ûBÁX^®€"?Ÿ×ŠÅJ±hD×à C?–[[¥T ørdÆok“‘ ØÊA˜Ë©33¥H‚?;[šœ,ÌÏ—Ã0¤i²¯/50Ð>0ÐÖßß¾gÏ–ÖßÏÏ—yäøßÿý;;“¿ù›÷¾å-¯¼ªv>þøéßû½^^6ßûÞ×½ÿý÷0 ÊB ±»@¦ûMüõËË—S%K¥J¹lÂ0ÖÁú†´IIbë’bÝPÏ)J-ý,®­íæµ5OÓl]{~-k(¶lÇÝú•ŠcΪY¢ÈJ+Ь$qŠÂK 7Qä ž•$N’ØèYQäÐ @ ¶žT*«¨Ò1 ¹|$F_U˜¾îf/¡MH§iš¦q‚ H’Àq< 1 ‚À°Çñ Ã0 ¸žø~Të£(Ž’ÄR!,M“k·®Ó4% M“¢È@ŠAà\ñŠÂã8&ËA\ñV׼à ÔuËóÃp\׳,Œÿ†áxž¯ë¶ïšvŰo+§Zõ!CIUMýCÜ:ަIA`Y–äyr$‰%I"‘à W²˜ É r›E‘¥(BQxÈ_"IB’®HsºæÿN•×÷Ä ,Á÷KU­ºhu§ŽãŠÂG%¢ÊIð±6TTZéúAŸìÖ$ê'ëøëóymqQEòzÄÖaÕ¢ Qdüªoo—:g6«@ˆüé«çÎ-ž<9‰ìöb‹£ëöääuëR{5Ÿ×TÂq<–Ad_—Ú+}}©LFAö¢M ’)GiussËžp=8XKõ„´º]Û,òyýßx÷‚ÀÜwßÍ»Ypñ±ýë'>ñÝ'žøÞÞT³Û²uyâ‰3ïz×_ß{ïM<òËè(º3XZÒŸ~zttæÄ‰É'.:Ž1ú ¾¿í¶>ôAoql»šËi ü‰‰ ¢B>vÜ}ÕøivÃÍ:O.§Âé4,«ª ù¼…š°,•Í&V&öà ùÓoë žÇ×ÇEÉ0¨¾ª«Õ-f"ÁkTÖ7.~]u°=™wù‰"bç·¯_L7~<¢É8 ®5†׋Èñã?/GŽùÑï;"8¡âç$ñNŸý_§ y|r¿á€¹RI¿ñ92]·!ÒÕ0j&}X6 Ç0U5!œûº^Óî¯ôéCI2É‹"+Ë„¼* §(µ5°RQxEáá¡,shÆq#X[‹ï¿¤4´ã/)ÍO$Ž£8Ž–eŽeiA`d™cY äø Î‡ˆ)Yæxžá8JQx³I$j’ñÍÜ'ˆÄV*®ëzšf¹®gYUÃpªU¿þнòaŽØšfÇžõ4mM¿9üÖ@Ð ØÌ#-¾(² CÊòe->Ãp$ç8ÊBÈ2_ $Íß.ø~`¶ï‡€j6Ôñ¼ËËQ0ªm{p„ ¢˜UïC`*T+Yÿ®ã‚ÀB7ƒslA`hš‚°[YŽ6Ž¢RYß…ÎÑ­›³»ÄUñå/?ýð/wܱçŸx{:-7»9×ÂC}q|†¡¢ðCCYT:bÇS­úóóeј3gæá¢RQ¸þþö¾¾Ôà`$øCC(žöp]oy¹¦ˆªÐ•Ë(#¢¬ühûxìzTˆ‚‹ n3•’·ìµ±;±íêÅ‹Kõ[þÂ…üÅ‹…åå †a4M ´ïÛ—Þ³§}߾̾}é}ûÒ[g$³X4>ýé'{ì©TJú/ÿåèÛÞvÇÆ/¦é~êSO|üãÇ»»[ÿÇÿxóë_ð†6@ bKL÷××õâòúHX__¸ì¯oð®ŠbÍ_ßÒ"´´ˆ--5—}K‹P_®=¼¶€’jÕ‡¿ 5äëË–ªZº÷vt¯ªfÃË!†[QxÈÉI&Y®å瀪^ÙD‚O=Ü…߃’ØLªUß4•ŠyHÏÆ0l}}\C_ßøêLôÓ4EQIâ8NDí×ÇqÐã8a`¾AàyþªÆ+ß“$žãhž¿¬Øõ|\COA ,od›—¿Ï†Qªüúöÿ(sþj½ÿ ¤›SÖÿO#ëÊ&ì ĪT«~©d\ƒUg-U=³*¬jωç´GÂ…¸pg“÷âšÑ4{y¹ò’¾XÓðZEáb¾:ÉZ"{tµ‚¸Žø~P(èQGËÛjýöŠCE©”ݲ>Þ(9Êf•Db‹Fï­°ÛówÝ5täÈÀÈÈÀáÃ]Èkƒ@ šDŒ¶Dœ‘Ô>:K»gO:ÙG×l6È6 ÏŸ¯¥zBpçääRµêGiu ¶Ìvuµ x²¦€÷ëpæÌÂ}÷}ô÷ÿÿüŸïnv[¶:ßûÞÙw¾ó±£Gò“oGùÒ; Ï ÆÆæNœ˜øñ5ÍÒ4Û0œJÅ6 ÔùuK¾cY§I4MJR-àV–9I~í¤H–ae$Êç’I^’8ôMAl&QWüG!åµj´Oü)ða$a%ñJZÑÑ !¶§!â«!"Л¼O;†x^¿{¯ól¥b¯öëÕkvcÔÃwq9>Ô1 'Ò⫪¡®[ž@õÓt¡SY–ë8ži:Õj ëv°±¦YëÿEQd)Š”e–$ 0éƒ_–9Š" ˜ô9î²IŸ$‰dR (RA²OÃöh ¸^œ8qñ¡‡¾DQÄßþíƒt4»9WÇääÒwþÉ_ýÕ/þìϾ²ÙmA¬N.§;vêØ±çŸ{n Çñ»ï>pôèá×½î@WWK³›¶Kq]o|3Sš]^\TK%CÓlËr®ôa·µUÌf•¾¾T6›„~ÒÖ&úŒÚ‚8ŽwêÔôÉ““'NLŽŽÎärËRÃÃ=À6<ܽõ Ëeó“Ÿ|â _ø7š&ß÷¾×¿ã¯¹¡rv0ù¼þæ7?BÓäW¾òpk+ \Ü¢€ïþ/þâ;ºnÿ꯾æá‡_‚…¶¾LLäAh>::óâ‹s–å"§9"Ža8ccâ{EᆆP'Á4Í:{v¡açįӇ‡»o½µÍÚÁ¨ª]›Ã¥úôt) Cš&;;“½½©h¸æàÁNT’çºà8^¹\Y©¿‡PvUµʺ~¹2:²á#[ŸååÊÅ‹Kù ò.ä'&ò—. Zµ­MÚ¿?³woúàÁÎW¼¢op0ÃóÍÌf*ŒÏ|æÉÇ{ª½]~ÿûïù…_¸cã3/.}ðƒ_yòɳGþŸÿóg{zZohS@ ¶Ètÿ„aX*UŠE£X¬,-i…‚Q*U =Ÿ×‹E£Tª,-išfÇ_" Hê[[ÅdRhi©ÝÇäõµg¯-VÀ¶«ËË•rÙ\^†”ÈJܳ__o–Ëf<{Ã0†¡  ²Ì'œ,ó‰/ˤ Õ3jj^{Eáš{r@ ˆí‹ãx¶í®¯˜‡õ†]åf2ÑSAQEá$ID&z¯Í”A†a`AxÞFMô†Q.Šüú–y Ú+£o CM³\׉ëÖòj¢$×;ŽgY°Ï«•Šãy¦Y¾jšåûaØð/¹ÿ!G‘çi–¥ ÁRk ž$ Iª%ÕÀ‚ÀÒ4©(AÑ4M B”uÃîìÀÊ- |èษT\Ót bS¥âT*Ž¦Ù†ÉÛN¥âÄ47¶i:+X½hA"Á Ãó4äoó<# ønx|7Ï3<Ï( 'Š,xpP!¥mM¥âÀåI¹\)•.׃•°–2Ÿäõë^PÚ'âº)<â³Ý+ŒöÚ†¡::.ÏyÇ»kÜh¿¥<ÙíÄÒ´@d_—Úk µjáPÑÕÕ&VÙ÷õ¥Òie+ÙÙärêèèl”Y79¹¤ë6¤zBà&¤ÕíÙÓŽ®þšËÒ’þõ¯?wìØóÏ>;ÅqôOþ$Ü7R­ú÷ßÿ—‚À~å+£kðýïŸûµ_{ì5¯ÙÿùÏÿZC|¶mWY–Bû;ƒ\N=qbÄ÷/¾8a__êÈ‘‘‘=GŽ ìÚÔ…mM¼€P$Á¿t©é– !…îîtmˆX‰mWa%’>ì,ŒhHÄp?Ùðëˉ¯`ØŽ¨ª©ðAs†QóækZÍ›_©8šf† aW¾›$±‘û¾.­­QN–yxJ9Yf…—$N’Øí8Ȇ@`W:ñ×/ý?NÑ⣒~ˆ„ãxºn뺥붪Z öÖu[Ó`¥£ëÖ•ë­•q0 .oEá…O$j÷‰„÷èàzG]wàCTU >;ð¶ƒÏ]ÓjëáS^ùñq Ÿ,sðÀ]–9YæAÝžL `l‡5»3ô4. ØW®Œ4Ê+øX옿j©€•+“IüÍÂ4]×õ@î8—]ášf¹®gš.U b„ãT Ã1M×qªºn[–kÛÞ:ŠgIbY––$bÉ¢kQde™ã8ZYæ9Žæy„ãG+ ÆgEA²ÄË:¶®;Õª§ë6D´ÂtoX0ŒÆ5ñ§ÖªõgQdyž6Z#I,Ç1¢Èˆ"Çó´ 0’Äq-Š—D‘CÚ…„kV«A¥âD&}Çñàô†aX.[ìyµ#“>tWÓt]×_¿HsB¯,sEÊ2DzÄsÒ4©(>¾01±4>¾01‘?>—Ëi†ñ<³o_zÿþÌà`vß¾ôÐP¶¯¯ îlæç˹ññÜøøâùó¹ññØÛyžÙ»·ÔöûöeöíKïÝ›Þacªž‹z|ŠùÊ*ìj4Œ‰ãx:-ǧ˜Á[ü(vt[㺞¦A RK×írÙŒæ&` 5òÚ—J¦¦™W¾ǰÃ0Çxž‘e>–»»[ûúR{÷¦÷íËtu%ÛÚ$4ï¼]˜ž.>óÌÅÑÑÙ“''ÇÆæ¯?òÈñø‡g/ž("Çý†¸t©Ðßß_S.›oyË'LÓýÚ×Þ¿õË ï~[àyÁ… —Å÷££3Žã) ?4”œæCCÙf7ÑLø~*çôé¹ññܹs‹Ñ7ˆ¦ÉvØ3ÃÃÝ7ÝÔ-»1”b÷ iö¥KKuñ}Í€oÛU à ªÓõõ¥ “®§§¥&Ý¢ÍÈ£ p™Ïkóóå¸Ùðˆ­†ç33E þùó¹åå Aà}}m‡u8=p ãСξ¾¶Í?NM?ö±ý—ùÑÁƒúЛ~üÇ÷müµ?~úþà_ŠÅÊ{ßûº‡¾Åû!ØñìvÓ½iºKKz¡ ‹F±h€¿¾X4––Œb–+Q„1Žã©”ØÚ*¥R"TnomÛÚätZŽí…k®©è8^©d,/›¥’Q,VJ%ÐAÂÍ,ôåe³TªX–•$±‰„:nÒoiÖïÎô!@4¡®CR™‡ÅÒ,WUÌ_ÕfÔÐã8Îq4EE„aHAu=ŽaXXóý ߪÕÀóÏ[Å Ýä`\ƒe¾‰2úàrß²\Ót«UOÓlÏóuÝv]ϲÀD﫪åy¾a8ð)†íyªZÕªoš|"ë$J‰„@’¸,sõýz†a(IâH6 (RYØ3‚À2 ( O’„¢Ô6Øœ]„Ø ) 6°ÒW*ŽªZ>jšDø™&<媪 g›€ 0Y§(¼$±°,I¬,s ªg=l[É¡´º‡ãxp…iëK¥Ë÷q—½ë^ñ£/]=µ´Éäåª`H^¸Ñ,/GÚ&`ˆ­¹ü0>QMQDK‹½ºnk«·h%,ì¤Ô¯»}"!Üyç ²Û#ˆÍAÓ¬K— ‘È~zº¸¸¨æóÚ‚ gàIO§•l6ÑÛ F{D«(â¹¹‹ÆØØü¹s‹‘ÚŠ¤ÓòÐP¨í‡†²ýýíÈ/³EXUpÿÚ×¢ô­•|ò“ßýèG¿óøã¿½woºÙmÙ6üð‡ÞþöÏÝqÇžÇ{g}eÛÕ_ù•Ï¿ë]¯½÷Þ›šÛ<ÄuôOžœ÷½ªšŠÂÝrKïÈHM|Ž-ÛU5ãu†À€þ|išììLÆÝ÷èÜ ±TÕ\\Ô ‘ Ÿ×/ÛðËšfG[‚• .#€Ë¨,˜N+»33jû7}Ã$W¤ö†ÚØ+ °Å¢±RÐÕ—9ŽŠ4ß0ϵ–fýÚÛ4þŒØ˜¦m~F IDAT ß”rÙTU³\†åŠªZËËfô5[ü…8ŽÃ7" ‹nG³3­­º6GÜPªU¼3  Ñ4;’àƒT=¶`ï@Ã;Àt]|ÏEËÑB2)ÄWîž)é 5Í*—Mذ÷`¡¾&þ”Õ0c‹a˜,sà©lõ°ëžú˶úD¢&¯ßa’¬-E½bPí;¢ªV´l¶®;ðeåúJ»áMpW>ªFµd™«‚¬,C=!}¬ˆ­IdÉw¾Žã™¦c¶ãø•Š]©¸¶í†Ó ·,7rë¯úΠȗe.2‰GŠ|E©)òë t"Áó<ÍqLõtã´•ˆ]ÄsêºcÛÕøÂú~ü†5«¾3Ä|^éÇ_G=Å“Hð<Ï ÄéÏ•ÞÕh(& ÈÀ–Ñq5£4ëü¡ø(ÍʰíhX‚± ~e´v2ÉCp2:EAl/LÓ}øá/?~úÏþìçþçGšÝœ ñì³So|ã_}á ï:zôp³Û‚À0 ÃðäÉÉcÇN?~zjª˜NËo|ãmoxÃá‘‘=è—zÓ¨Vý‰‰ÜéÓógÎÌŸ>=?66W(÷ö¦nº©ëСÎÇ»ììîn¹q _›?{v!j†aŠÂíÛIí;öïOww#ÚN&™™Òùó‘Ô~qb"AɤU8€ûîî–í>C†a>¯E⹆ùb¨¤m,IlggKÃ|q¤œCe · ªjV*®aØpÙm¦éDõYë5Y£Š­«TÕ…ºé,K“$Ax•Š[.›0:„ãx6«ôô´îÙÓ~èP×ÐP¶·7ÕÙ™DÛÇñNš†P´ÑÑ™\NcYjx¸gddÏÈÈÀðp÷¶3›ëºýÙÏ>ù¹Ï=…a؃Þùîw߉«6ÎääÒÑ£ýÜç~õu¯;k ÃyÛÛ>•Ïk_ýêû»ºnÔy⺃|÷Û‹ñý©S3®ëe2J$4¿å–ÞtZnv3Í$—Ó⥠H[WWËðp÷­·ö¾âý·ÞÚ³kÕÕªñâR´NŸž3M—$‰îîH­îyÅ+úR)©Ù-EÜX¯ÏÏ—á si©v‘™ËiÅ¢n¦½½v1 ד°ÐÞ.¥R°,^³ÍÍ÷ƒBÁ(•ŒÅE­PÐ #Ÿ× Äú Õ‹"ã8ÞÒ"ÔÅy5‰^*%µ¶^Î?„ºÜE ˆ†ç•Š¥8N«å¬£˜¿¬¡‡_މž p–­™è0 q#I\ôa2z, ‚4ôAµê­ÔL¬枯VF¿Ö6 oõr÷þ5áûdÖY–kšälW«°4ôŽïûå²åy~¥âÀG£ë¶çšfU«žiº–å:ޝëV¬ynÆ0$1 I§’ılm%M“ŠÂÓ4 1[GKK’D2)P)Š ì%Qdiše¹n TÕ´íêK _à+ë×J+"\–ùµœ/Q8_¢ô!È2Úü±ÉA¸´¤AO7J½;]®Y½jï¢i²µUÕT&£D ¡¨/Å¥BÍúï»Ër¡\\zƒÈ¾T2 #*#W*Uâ5`8ŽÅOk«ØÚ*µ¶Öœõ‘úÖïÝO†/¼0{âÄäÉ““Ï–‰€xBQdxžEVQ8žg WGõd™çyšç™D¢¶RYYæ`åæï DS€Ã¬ëúê캞¦Ù¾hšåºžeUMÓ­V=Uµ<Ï7 §8m{^ ªÔ{€8öµz#õV‘–$ŽaHIâxžfYJQx†¡E–a(Eá jZQ8š¦P©Äfáÿñ±Ï|æÉÿý¿ßú‹¿øªf7ç¥ù…_ø´iº_ÿúÿÓì†ìvªUÿÉ'Ï;öü“Ož-Œ½{Ó÷ÝwóÑ£‡n¿}`ëŒWìTÂ0ÏA¤Èæ Þ©­Mºí¶¾ÁÁìà`fx¸gÏžö7/ÏëgÎÌŸ>=wæÌÂØØüÄD®ZõišÜ·/sèPçÁƒ‡u e;:’7¨ˆ­@z75U„  $IìÝ›†¸»ÁÁl__ª¿¿}›†²†37·—×Ç'ãc¼$I´µI ó¼ñÉ_Õ¶Ð4Ëó]·]׳,·Rq=ÏWUË÷k+¡H¡®[‘Î ⚦cNÜÁóŒ(2²Ì+ £Ù² õYkkxž)—+šf—J•BA_XP£8UÇ{{[!¥¯/58˜Ì¢èâíÎôtñ™g.ŽŽÎž<9966çyA__êÈ‘ááž‘‘C‡º¶éh›mWÿú¯ðÉO>áyþ{Þs÷»ß}§¢ðÍnÔ6ãø§/}éi‚À?ýé_¹ÿþ[l»úö·v|<÷µ¯½` ½Ù­C\5Èw¿MiÐv?ÿütµêÇÅ÷·ÝÖ×Ö†œÝ»š\Nê"<÷Üt±h$18˜½ýöþW¼¢ï¯èÛ·/½kÓ|?˜]_„/ѳÏN‹†añ/\6»¥ˆÍÂïÏ[Œ©¢ØûLF«›¡¡,\éd2J³Û»±íj©*üšpiIC`¤È‡®µ´ˆ ÂooWÚÛåTJÌd”¶6¹µUÊd”¶6 l ×Ï &'—ΜY›=ujfy¹BQÄþý°ÞÃíF‡4?>ö‡øÕùùò¯ÿúÝ¿ñoØø7ýÒ¥Âÿï_ùîwÏ=zøÃ~3:@ ±SÙö¦ûjÕÏå´ÅÅr.§-.ª‹‹Z.§..jù¼¶¸XÖ´ZbImmr*%¦Ó 8ëAjúøLFI¥^îea©TÉåÔ…µP0 Döù¼^(èÅ¢Q(Ñ®f þh{»ùëáyí[Z„];H‡@ [œxÌ}\1ùXÌJ¿ª‰>®¡¯o|u&z’$†¢i‚¢H‚ H’  Çq‚À1 ‚ n¢',Bß½¿}¤Ãn°Ìcvm2ú¦›èp¯\®Ä?—(½3þÁ•ËÖÊOMU­ ~^8Ž+JãnŒr§£,Е{/ÊÝ‚»qmø~P(èk‹é­¨^©eY]XbñõÅô«šYP/Úärêú2Ù7t6Š"R))Ê],öÈ_h ¾ÄUõ ²ÖD"{˺\:ަɖ¡µU‚+îTJlm•¢5mmˆìQÎíZvû×¾vðÈ‘}ûÒÈU@ ^&ŠJJŸBÂÒÔT1² Ò4ÙÙ™„lÈPФöèLcKáºÞÙ³ Q ]”çÉqt”ä )v™L¢ÙE¬N\pϲÔOýÔ0Üo‡úâ©S3ßÿþÞô8qââ/ÿòg_ùÊþO}êW|ðoNœ¸èyŽcý×ïº÷Þ›šÝ:Ä&‘Ïë§NMŸ81yâÄÅÑÑÇñ2eddÏ‘#ÃÃÝ·ÝÖ‡¾\;ŒjÕŸŸ/ÇÝ÷SSÅK—–¢‰ûDBˆ»ïa¡§§™;W…ªšõ°F>è¢-Y–Êfé´÷Éä6ü-e¹EÜÖWá¯êÍ/•Ó©,Kq³– ­ÙÔÁ[8~®?s´° 6È^ã*äèpºræõyÄfíxI3þò²¹Raü’füø!=V6Ì á«¶*°–²¿a¢v}í8š®El×õtÝÖu[Ó,M³ ÃÖ4[׭ؽ­ªV| DÁÅ„H;ÅÉ2UYˆû§ê÷\"ÁË2~Û‹† [ÑDt±°jôÞWý­ÁV\JÄ«JÄ«m­\ n!®/ö¬ëŽe¹–åB˪êºmŽe¹¦éjZm¥¦Y¦é@­Ør­@ÙDBå½,s’Äò<-,”àyFQ8°–C•ˆúÊËýMÞ ˆ-ÂKzó+Œ™qo¾¦YÕªoŽi:Õª_.ÃÆîZEš¦’Iža@”Ï2 %Ë à€(_A`†„*&GƒX_YžgX–D’5ÄÆùÌgžüð‡¿ñGô3>xg³Û²ÿöoçßúÖG¿öµ÷Œìiv[v)ºnûÛ/?>öÔSãšfÝ~{ÿÞpøž{ e›Ý´Œe¹/¼0;::;>¾xîÜâ¹s šf¾o_Dr7:Þ©RqNŸžÙßøxîâża8Q††²ƒƒÙáánpµ³ÑuûÌ™ùññܹs‹à°ƒÙL–¥††:3CCÙÞÞÔà`ö†VY¸¾x^P,êq‹}¼ryÌʿ̖ b#€8OU­0ÄtÝ‚À0ß ìÆ4ÝjÕ‡(yˆ¼¨÷è©JÅ ÃÜ+ðVºnû~¸~€NÇÑAÐ4AQAEâxH$†…$IAH¸ï†æû>†aÕª†¸m{8ÂÐóú@Ë’<ÏP)Š,E¢È®(<ŽcŠÂc¦(<ŽãŠÂ.ŠlCQèCÔ>¸Ô†„Ú[½¼}C€+ÊO0 ò0-«êºž¦Y¾hš χ¨i–çùºîÀÊJÅ©VM³Ö9ÿ½*I,E‰„@Ó„ °QEŠÂÃŽây†a(EáHVR¨CÓ¤¢pEÊ2·™û±9@Ư®×ò~ ÃÖ4«Rq+§Rq4Í2 – ÃÑ4 –WýFsÞEVXÈøVYIbã‘|²ÌÉ2'Š,ŠÆCÀìW ¼–²¡ÁŒ@’D[Û*Z„(Vùë›Lµê—JFCO^ѱ¯èÆ`C†éÛµúp2)¢ãä:Äíö?üá…¥%=™^ûZd·G / U5!±ãu©½Z*Uàò™ ðžžV0KƤöJ__ ”nM‚ <>iub79¹T­ú$IìÝ›ŽÒ,³]]-(”jóa¥ n\,_ýj£àþ5¯Ùªþlgž¹øæ7?ò…/¼ë o@Zökäßÿ}âïø\6›˜ž.y^íwaÿþÌOü*ù¼ ©Vý3gæá’äé§' ò AñöÛû[ZPfËŽ%:iœž.‚ ’Ð@ž/€¥(÷÷·Á4qµ‹ÆÒ’¾´¤çrZ¡`,.– #Ÿ×òy=Ÿ×Êe3ÚR–¹LF¸êH§•öv¹£#ÑÞ.§RRÿ D³pÏ0lÃpTÕ„IÃp`> €ÑÌ †S©Ø†á¬|+:Ä•¯ŠÂ+ ŸH€v-ìæÿ¿ĪīDÄçžÆð£ÁŸˆ¨¾ÈZ†îL&ÑÑ‘`4ŒØl¢^½šn¾±«¯ìÛ†1 )IŠ0 E’8†áú~躞ëz–å†ãº/L$„x­”µ”úh¢±Y©önøâ4TZ«bPCU‰xµ††oÇÑçÖ”ÿx9ø~±d ‡è2ˆƒeÓt+•Ë˦é@ý ÓtW–À0Œ¦IA`“I>…'“‚ 0ð0™äc˰ž„Z¤Ùv±""¶AêºU©¸…«iv̉ïB4¯aÔV–˦eU-Ë…‹kˆæ]õme™ƒ@ܺþž–$N’8pâ'“<ÏCP%“L ±(JSADD‘äP úpø…Àr8“›g¥â@åUµªUÏ4]ÃpªU/ªÒº8KD†ó,KÁé x<7îÓGGæÝÀ#ÿ“?ùÿ>ö±_ø¹Ÿ;Ò춬N†÷ßÿ±ÖVñË_~O³Û²ëÈå´cÇžüñÓ'N\ ‚ðî»=zøî»tw·4»i;˜‚ŒTq³³Ë¾ˆ"{èP'¨â††²{÷¦oPÎÄ\ÔšBóTJ:t¨¤öÃÃ=ÛÈfޏòyýܹÚƒŸr!:bh(Û×—Úú¡wÑùÚòy ÊèFj{ø§Ib;;[Ö’µ¡Øþ8šf‡a§©P Ã0È‹ôý@×m Ã*Çó8eÅꉱpƆ¼Ä4×õ}?€9JH›uϲªX= v-àôU†!e™£ij>ÁJ8õ%IBQ¸hËøJš¦` ‚aÈk»:óý`vvÂS£0’ùù2 ˧ÓòÐPGúÑoÿÕ_=Í>à8ÖÛ›úèGß¶q b+³ßýý¯ÿðÏÿü£/~ñÁ»ï>ДF"6B¼Äתâ{¼Ëñý`b"ÝãäÉÉ_œzÈÈÈÀ‘#·Üһ˯TÕ¯EÂ@ƒ ?.OÈdI4œˆ@l0 /^\úÑ.81ù£MNLäÃ0ìînÙ32²ç®»†úúR×÷/ÎÏ—ï÷þùøñ±·½íŽ}èMO¨TœO}ê{,:"šLƒ¿>Ð8½µ´¤Ã;°Òz¼jiÛÖV D nž‹újó°—×”Ëfäom°ÞÁ²$I’†…!¾ãxñŽaÃ,Ëð< =|}Á}K‹ˆ²‘;÷ŠN{ÊeDÞWu:´¢Pí¼(‘¨U ŠJÁ=úú và‡ªZ¦éB…-Ót*Öƒ=_Ó,ð£åJÅíøÊ7/s"Á †ei“eN’8IªUäEN’XYæD‘M&yQäv†G ±5Ñ4+:¹ªT\¨÷ i8ñ5Í6ÍË]½¾Ò2M¾+ßPÔTB4E‘…î Ð硇K•Ž@—ˆU©‹òm×õ ×U«~¹lBÂÂÚ>}Çuý¸O?>!Š,ÇÑÐ-Áª(<ÇÑ;åûã$ò)„žó{öÉ3;»;{Îìž9ç}¯ ^/ õ6›×á€7¿ÓÙÔÇÂîúý§….~UŠ_žawÕj™VÛºY;`ŸÓéƒÅ ø¾¡wáß0u¾øî¡oÚÜÉᢰ\«•ûh’1À€vãP>æï¿Ëwî<±cGÉ‘#µ8Ž“2gÎȹsGvI™º†ÇÝw¹{wéòå<øàÅgõŸ~ýÁG]GQäsÏ-˜;7ç܃@ ÑëôéÞn÷––¡×¾¬ÌTZj¬¬´ÀÊÈHeJŠ!)I—'õII±±š.·;¾²2ó‰Ʋ2SY™©´ÔTQa†mËiø¾‰‰zxKJŠHLÔ¡…RÑÇi)£‡ªq@Èè)Š iЦqŠ"B”Ñcð/ðæçž8Žç8žeyŽã‚A.ä†e®Ý÷+•RÑŠ.ÏáM´ŸC7úY=çœÿú"‡·û õFŽ õˆîƒç³Ù)vàPÍAÛ;[é±aʃЌ£0ñAh§í•Œèï¸Ý«Õm±x¬VÍæ {«Õc±¸á6ü˲§bª$R¯Wêtòˆ¥^¯Ðë¡Â^õPm…¨\6¢‡ÁbñÀ.m6»,—Åâ±XÜf³KìÌV«'4FP.§õzEd¤ vf½^¡Ó)"#•JîÔ´DÝiAøæ›üýë{¯—™93cÍš¥í?¹-»ýÔ©éÉÉ]°Æ†@ º£Ñ­î¥·v@=ŒkæP£Ñaµzà|)Aà :¨h„Ó¶Ð#†rKzŒúzû‹/þzùå£/¸ óåñŽ©-)1?ÞPXX]Rb„nD¥R’™—““Ø×òë­R\\wà xqñý÷w?D|4Tp/ÂŒÃ/½ô¼Ù³G Ós!ä¦M{!77åÍ7÷v[ú+ÇßuךŸ~:(¦³†ñ¿ÿ-›2%½‡[…èp_ZjÚ»&-Ô””4$ž•Ÿ——š““0qbZB‚®#ÇY°à={Ê'MJ[µêê””Èîn6¢p8¼¡î{¸Q[kƒ¿4MÆÆjBÝ÷ÉÉ=P¼gõêísçætŸ/Ñ×hßƒßØègÏÚñàÇÆjÐP Ñ9D'¾Ëåƒ5žÅ=‡·yº•}‡/¬Â.IB™²<Ôýv·yC®Ñ ,¢§áyA,mµ6Š¶Û½v»Çjõ•8¸Çã „¾P©”èõʈˆ¦U ø7"®VÈÅ]Žˆè ¼^¼A‹}ȶö›Í¦‡NÞæ¯5y³³^Ö쬗‡ÞíaT[6‹ïý-ùv{“ßjõ@U–Aà0Ú®)C¾xkÞ¯€Aèk1PeÇaAD­íñv$¦ª[õ£b*ˆŒÇp»ýnwÀíÀŸ!·;àñ\.¿Ûp8¼Ð¿ìvÃ=~‡ÃçñÂ~pE¨T§äøÐƒ¯TJÕj™Z EùRhÌ×hdJ¥>A.GÚeDOàtú=¿ÇÓT öj‡ñx`—fà£N§î‡[Ö™$®PHa 9…B¢PÐj5ìÒx À›V+W*¥jµþE†qÄÙsC<ÆïÂ"%>ãó5yð}¾ Ëå‡ULÂÔù⣭V­–Éd´LF©Õ2™ì”"_&£ ©R)‘J)…B¢RIe2J&£á£bWG¬Ççc,xÓïnÜx÷9ƒ:ÁÊ•V¯Þ±k×cÊÞnËÀ$ä¶m;¶yó‘­[ÕÖÚRS sçæ\xaVnn š:wÝEE5GŽÔ>\[TTsòd#Ï …í³³ã³²â†í¾fc£ûðášÃ‡k «®©®¶â8–’™Ÿ™›™—™Û%D_Æ-@[ ½;y²‘aX Ã’’ôÐkƒîz&¨’aXŸñx˜`ƒeÏ^o°¦Æj³yêêìp^ÝbqÃ5#—+à÷3âËišÉ$EH¥$I’QÁó<Žã GÞëeæÔÁ» ÇTª¦…QŠÂŪÌ4MŠf™Œµ¤ …DœØT©¤bŽª¸ºê‘§(R<ýá”Ü–Ë%4Ýt¥RJMãñ ¦F†íxlÛvì×_ »¼Ô UUV¶½öUU–úz\—T*%C†D…êQàq¿ãÄ ã}÷}½ÿÉoœòÜsWvä%{èPÕÞ½ùù……ÕF£S"!srÇ2n\jNN€7*;Vÿä“?ìØQrá…ÙO''ñ¬òý†MK{8&FûüóWΚ•Õ}-GôOàСêýûO8PYPPi2¹$räÈļ¼”ñ㇌›zî2÷@èåjaaÍþý'­V :Z-žD99‰ÈX¼òÊ7‹‹ëþõ¯Ëþñ h•¼ÿâpxa}¾ÊJ ì'UUVA(Šˆ‹Ó&%Eˆ…ú23ãº*bjþü7-{õÕãjQ«>‹Åâ¶XÜn“ÉÙØè¶XÜ «ÕÓØè2‹;4fF§S *ƒA­‰ŒTÆÄh et´Ú`PGE©t:ô‹\Ølž]»J·l)þí·"»Ý;rdÂ%—œwñÅ#‡ ‹>—à ‚ðÁÛ_zé×ñㇼõÖâ³:³ÝÏ<óãºuû.¼0û¥—ÅÄ ð¹@ žn1Ý ‚PYi)*ª-.®;r¤öȑں:;€¦É!C C‡F bHK‹JK‹:ÔÐ}é»F££  jß¾“V•–M&€¢ˆääˆaâ‡:4*--:%%…j!‚ ˜Íî¨(Uo7dÐÁq¼ÛíoË2èV=MC=AQI$‰ã8NMJz k’ÑcAž<MôPIσ,Ãð <£ñwÚGo6»’’ôjµløèÛÁëe|>f ù|A¯7àrùýþ I÷ûƒ>_†¤CU½Ïôû—Ëïõ2ÛN< S©$4M*•R¹œ¦(B«•Ó4)“Q*•”¦I˜DDÓ¤ZÝd±W*¥ ©PHärZ"!‘w£gàyaË–bƒA5jTRo·¥óƒœÕê†y¤bÑ…°äRø×N~)Aà‘‘ÊÐò ¡)¦míì•Ï‹è8ÇoØpDZ>[M”ey‹Åe·ûL&gCƒ#´ßŠUŽÃz,ŽcƒJÌ|†*ØÐÔhXúõÏÝî]³æ¯«¯Ùç.3].¿Ùì²XÜV«ÇlvA½Åâ6›Ðhj±Ç0L¯‡ED„22R +4èõJ½^ ë4(ûT:ÖÀ£¬Ìt÷Ý_´”¯¸¢ÕöiÙÊæÍG¼^æ’KγX\6-Y2¹·[Ô‚A.Ì_ßò&ZìC¿—pk®~ÊðÞÖö@Êœì¸Ô;´è$ÌèÝr~“÷Ó á—^úõª«òRS ½ÝD_§ã'‘Íæ +:`Ƈ{`ÄcT”º_[ux^xë­-×_?©ÿ "z¿?]áN§ÏéôC]¾Ëðxüv»Ïãñ»\Ð$p:ýÐîrù[Æ’$®RÉÔj©F#W«›Dù!¥*UÓ¥ÜV«¥¢ô°¿SVf**ª;7§?þø<žôàà s^ozðÅšð.¬ávûN?ìíaÇ»:ìÛÍ7™J%%—`W©$*Õ©'ôÊGî&Ö­Û7jTüõ$nwÀçcB’‡Ãçõ2>_vé9>Üð{<¨Íu»ýa¹œ†â{F²Ýd×ËiF7 „ËéÁ¹lm4:fÎ|ùŠ+ÆtP ÚTW[§M{á‘G.YºtFo·e áv6l(üý÷âíÛKœNߨ±)]”=kVvFFLo7­ rGÖÁÀ§ÂÂêãÇëN?ŽciiÑÐÔÖÝQO‚ ””¡oQltõж¸!C h,7ðØãÇë¡ ®ªÊrüxCE…9ä sv<èìNM5tpÌSJÎçc¼Þ@0È9¾`ƒÙ‚ ú\~–åœN³Å>À²¼ÝîeYV¾ ‚âs:øApÃqÇ1š&%Ç1µZFÓ$IZ­ @’¸R)M9†@.§)ЍTMFxQJN|2|¾è”‡Ù p[.?ML/:åQ½œÞ%?¿ü?ÿY¿ÿI©”*+{©Óÿ¡R{Q’(Jíår:--côdáD÷á÷_{mó›onpŸ‘³uëÃm=¹ªÊò÷ßå……5{÷Vײ,Ÿœ‘——š““8n\jVVü@Z©i“ɵjÕ†¯¿þ{ذ˜§žš7ujzo·hàðÇG/þ ÕèS’ÄY–Ÿ0aÈë¯/NHÐõ|ÛÝ ôÝòÉ£ÑZ~Ã0š&¾þzÙøñCz±yˆ®ÅhtVë°C‡ªL&IâC†œߟw^Rû¬VÍû† ‚0sfæsÏ-HI‰ì±ö#º•šÛ'÷í;™Ÿ_Q\\ËqBZZÔØ±©ãÇÉËKét¨@AAUVVÜ@ÊŒ6bõXv#¥ÓÓcàÙ”žÝþu ééy<~džzé¥E& í©O€è^œNÿÉ“æækº&>´]i4rñjv˜ÄDýÙÖ9Ø¡Cây {òÉËçÎÍA}—Ëo29-·Ùì2™\‹ÛhtšLN³ÙÕÐà°XÜâX‹¦ÉÈHel¬&"BÓ¤¿ŽVGFªbc5‘‘ªÞýûïòüüòn˜<8מÝ Ëò»wŸøå—›ͮóÎKüç?'ÍŸ?æ\ªÚ×ÝtÓG<Ï¿ÿþ’³•†ýñÇÑG]çpøx`ÎM7MEµg@ô_ºÌtïó1{÷VìÞ]ºgOyqq­Û€Õ鳳㳲âFŒˆ‡W³ÑëRN§ÿСª‚‚ªƒ«¬jhpP‘™—?th“[?))b¬!"~ðÛo÷½ûîÖ™33ŸyæŠÞnN_„ey§M=ÜMJún”ÑÓ4A’$I6™èIÊèá$¼ì„:zÀq4Ñó< ò,Ë2 Ç0ð-S­Â (B.—tÚGßÎs:÷/¶mÇß~ûÝ»Kwízl,y½Œßt¹ü^oÀç z<·;à÷=žpa=´~à Ñ\ßVðüS©$R)%—KÔj©LFK¥”FÓä£×hd2MÓ¤F#“HH™Œ õ2-‘(N¨¿àv¾þúï÷ÞÛV[k{öÙ7Ý4µ·[tÁ ÍÚ‹&ùÜ€ Œý¾–_J°Ü‚RÙ”º£ÑÈ”J˜«&…*•T«•7oKT*™ ‰ÀþÎ;[ëëí·Ý6ý©§æ÷|†õ‹ÛfóX­^¨½hÞãµÙ^­‘Úk’’"Pž¾Ëò_~¹çÅq¹|'>oÞ˜7ß¼®—p_Zj‚éCPmÕ™0Å.'§ImŸž¯CãýŸyàÿýðÃþ°••JzÁ™¿ÿ^ìõ2ãǹôÒQ—\rªrÚ…p?eÊó“& {å•«{»-ýŸùê«¿ß|s‹ÉäÄ0¬U5Æ·ß.Ÿ8Å@#Ψ6Èϯػ·â¯¿JÝ …$++nܸ!ãÆ¥æå¥Š"¶ÂÂê9s^_HXLŒöÕW¯Aù„ƒ†aëë¡îûÊJKE…YN…ðáÆÙè;ÞÌÌÇcX¼xÒŠ³ïÑíxðëêìâD”i‰;Ñ}/nw«=óðášÙ³_‘HÈþsòÒ¥3ââ´ÝôFˆ¾ ”QŠk¡k‚-wz<Ð×’$ÞÒ«Õ*Zì‘C-Zo}ÆPÆŒyÒdr]|qÎí·ÏÈÍMéíæ ºÑnÜN}k‹Å-V"§a=’P1ü*î--øK/ýúÚk›¥R*`årêĉ—z¾ ­ rV«»¥3þ#‡H¥½a‘T$‰GD(Ï莉Q£ —Ò–Ñ;ìÿ¢¥Î»ƒ.o­VÖwDÞII÷sœ0cFÆm·Í˜6-½´ ѯá8>4ê)48*t¿ø×ëeÂŽ –ÿÂsGÜ)$ïƒöx‘KQÄÂ…co¾yZVV\o·1@€&G‡ÃçrùÝn¿Ûp¹üN§Ïåò‹§Tç‹ûÃ.7 jÃ×jåÍ–ð0K>|T¦RÉúfÆï¯¿ÞrËÇ‘‘ª[n™¶xñD½Õ™h´:ƒÉ­î4™\-SºZŽÍ`¸~[¥V ußìðsæ¼zøpÍÔ©é·Ý6}ÆŒá}³‘ˆP f×n÷y½Œ×ðz»Ý ·=(Íx<¯—•¼^¦yÛze-¢PH Z.—¨Õ2¥R"—Ãm©R)9pó¶T¥’Âçôëªß~»oÅŠ/?ýô–Y³²z»-°té§ÅÅuüñsw&“ë§Ÿ 6o>’Ÿ_Îqüĉi^˜={öTP³sx½LQQ¨cƒnqÑ,õâ™™qÝ÷µÀó‰§ÔöÇŽÕ»\~©”92ATÛ…®z—C‡ª–/_³bŬE‹òºä€^/SZj„^{zƒî$2##*Þ’’"ÒÓc`a·;`³y`Ý/x]Ó\Ü+ïº\~xãvû¡ÝÞåòñ|›™ûpt§RIH’P«eEH¥$†áÇcX†á|¾€×ËÀÒbâ¡4™^¯4”11ZƒA«NHˆˆ‰Q š”=šC «ÿóŸõ»v k<­îÈkÅÈ ¸qüxCee#œÕ—ÉèaÃ¢Åø xš yûÆÏ?zä‘u‡W óÃqìøñЦ\¹@€=t¨jïÞŠüü hP…?Ù0j+''¡ûJÑôMX–ÿôÓ«Vý†aàÞ{/Z²d rw-ó翾ÿIŽ;í÷~¹~æ½÷ÎÎÍMî­¶!z€²2Óôé/¶Pá8.“‘k×Þy¶¾HD!TØ]PPÙØè¦("5Õ ŠïGJ «ŒûñÇ;ÿýïïáïE<Ï/Y2õ¡‡.î×óKˆ–°,_\\ ÈwîæÕW7½ûîÖÜÜ”•+¯6,ºsm@ è]ÎÉtÏóÂÞ½Û·ßµ«´  2ät& 5* î{`î/`wï.ݾýøöíÇk b5*iÔ¨ÄQ£’GŒˆïƒ™DÑÐàøä“¼ÓãaAX° ÷7ÚscõœN¿ ð‡ç§ÓÇó‚Ëåç8Þåò³,ïñ‚AÖëe ªç½^fJƒÜöù†O`aHîßW¥’€)4†‰„ÂqŒ¢ Ãp#I p¨!ã8Ž p†áóûYÇ|¾ A`ƒãÀåb0 ¸\¾3¾£Z-Å0\¥’®TJ W©$8Ž«TÒæ=˜R)!B©”$®PHIW*›žO’¸\.¡(\¡$¡PH( îéëå>³ví¾·ßÞRUeÃ0 Âúõ÷ôîÒ²Ãá…‰a>e\ IDAT0yÀáhòчæ´|Èáð¶_ØÊdaZ¨˜>4ë–Ðj›6ÄÜä™TTVZV¯Þ¾fÍ_ ÃqOQøŠÞÿœn}SADC=ìÏN§Ïáð‡&jÚíÞvR4aÚŒZ-…)šÍYšp§ šëa tÙ÷‘¯ DÏSSc[½úÏÏ>ÛÍ0,Ç †uÇÈÄn÷6ËëO¹ìá¶x×í>• ‰ãX¨°^§SDD(ôz(²—‹ {TÝÑ>‡U¿õÖ–_-Äq ®Ø}þùm\Ù%Ádr†)WBU¡"cAà‘‘Jquº?¢¢Ô0¿® ¢ÑE§´Ôt×]k® È£(böì µk׉†‡J%?~È„ C'NL92eÑ }ŸÍ›¼öÚæ* ‚à¸&wáöívd©þN˜=Mˆ0™Dü ,+k¿4BÉÌŒ]¼xâܹç¡ð¬î`ãÆÃ·ÜòñÖ­£` s‡ç…-[Š_yecaa˜B !|äÈ„_½·›‡èïŽüü ˜·PTTÃóBrrD^^ê¸qCjj¬o¿ýG¨WÇ1AW\1æ™g®@©ÁŒÃá ußà 1›¦ÉØXM¨û>99"5ÕÐVäáCÕ_|ª¦Iâ‚æÏ}ÿýs@ugDÏÓA>M“:]›üsT›mÞ|ä†>ÍýùŠ+ÆÜu×,4(B´ Ëòv»·…¿Ï ç®CÄÖ>»Ý’AQDûB|¨Ó»é#¤¤<È0,¦Žç³æÎÍAs­ƒ(£ S‡Ý5›]¡ó6¢zR\‘=6ônd¤*,/´Ó°,¿aCác­³X<âÎ%K¦,]:£û*àlCƒC,®Z'àô=áþz'V U…:Z´êEÚrâ·ÜÖùÁ鹋í8ñ»µ&„ÛHO49M„ädý²eç/\8¶SA ‚A.L‚ßÒ†zZ…Ö8H¥”(ÁÏP'¾F#W«ep£gú¶è/ Iœeù1c’o¿}æœ9#Ñ ÑóÀ˜ðæF¿ËÕò¯ßn÷Šf|§Ó×2‚W©”¨TІʉãávh9 ­VÞ3‹k_~¹çá‡×rOŽã æÝzë´áÃc{à­}(Eu¹ü.—Ïå À_à]ñ ðÇÅínÅ'®RI•J)ŒÑ…½]üV`@¯x·Ç¾Øóòž©­µá8Îó|R’~éÒ‹S*%=óaX'àtú=ž&¾Óés»ý^/ãñ0Ðìõ2O“Øãa¼Þìç­Š€U*©\.‘Ëi•JªVKe2Z¡(•µZµøb˜º²MÁ=ÿÙ[rà ž8aüóÏGz½=ýU¶pá[}tÓìÙ#z·%£Ñ¹iSÑÆ‡wî<˜0aèœ9#gÏêÅž-î‚‚J¨Z+)i¨©±q¯×+rsSÒÓcÒÓ£»Û,¦¶?z´ÎíÈåtvvöØeULŒå®»ÖüøãVëê.‘Pß¿|äÈ„žo¢‡ ßïßÒjõˆâ{(7OK‹zàoÖ­ÛšpA’„Z-}ä‘K®½vª¾9P©¬´ìØQ’Ÿ_žŸ_QUe!I<++>//uܸÔI“Ò""”m½Ðëe22åyᦛ¦>öØ¥í+¼.—ÿèÑ:x*•”­ ¹°99‰[¶ßvÛ'¡ :AºdÉ”¼X­F¥#>0À>´.`uµ^ DG«aºbFFLrrDzzLh"Û?Üyçgâe(LÙ92áé§ç?¤W> ¢ l‡R цßÐpjF "¾?e·ˆ‰ÑDE©cc5çhkyå•ßÞxc3Ãp0óê«ó–/Ÿ…’5Ý„Åâ^»vß_쮬´,\8öÁ/îÜJ ¯¾úÛ«¯nºï¾‹:¡;r¤ö¾).®»í¶>8'¬Ú@ Dß§“¦û‚‚ªŸ~*øé§ƒõõö!C “&¥?dâÄ´žŒÎÙ·¯â›oö®_ÐåògeÅMŸž1eʰ1c’‘†ìØQòÞ{Û¶n=F’¸L3mZú×_/ëÉf@›¼×Ë0 çñX–s¹<Ï;>A ªÞåòqTÕsnw“‰>`}>Æï ö òO+ÁÙ¡@Û;MR)EQM“E$N’$Ibcš‹ˆÂ¿ð ²†ùýAž†eYŽa8ŸêüPùN08 ÀF#@y܆‹Óaû1 ¨Õ²ÐWa¦RIqkÞ/ÅqL¥’ à…“ÒRÓûïo[·n_0Èqœ@Ó/ѧŸÞrá…Ù]òPÞír\.¿Çãw»0éÅíx<~—«iŒŸv»âÝV+(´TJ)•R•J"•Rr¹D¥’J¥”LF‡ùëað´\.‘J)•JÒwª ú&‚ üþ{1T^R 6%\Q±xñ¤çž[Љcz<˜ul³yívOÈ6¼yl6/Ì„ ;†(1¡fs…Éë›wJáÎsýüˆAÀæÍGÞ{oÛ_•…K“'[»öŽ$`­V·ÍæmltY,¸mµºÝKÓ¶Õê 'Èå´^¯ˆŒTAa½^¯Ðë•‘‘JqêìáØè,Ëÿýþ÷ÞÛV\\GQx0ØÔý_µêꫯבƒ¸\þº:;Lk‡Ë{aRû09ˆèk{Z­,T!\ÆýŽãß}wëË/o@{”Žc4MLš1aÂЉ‡Ž™ÐU~Ñ­Àÿ«¯n:t¨ jABýê«Û§OÏïº\þŠ 3üh–Ú;L&g}½ƒaX†aQQ*(²o–Ú«““#¢£ÕÝê Bt+ùùåO<ñÝáÃu-SDH’øî»å'N4?ÞpìXÃñãõ0ËN©”ddÄ —‘3|xLFF¬Á ê¥æ#º‹_~9t÷Ý_2 Dz­hî)Š¸îº Ï?¿°ç6H¸æšw [³fio7d@‘Ÿ_þÚk¿oÝz”$‰Ð޽nÝ“&¥õbÓɵÿɽ{Ë÷í«,,¬9¾N„LFþûßó®»nšBˆƒ\]^‡𫪬0 B£‘‡ºïáF|¼nÆÂÛoÿ,,èùîÝD;Ùµµ6§©Èkûü3:—?ÿ|÷ã+^½Â™Ï1c’ï¾û®ZÉE N†mv¼6É^íöÖ}Ù-•Ù2 -3âŠN++›ë+u:¹Bqv¦<¯—IK{X¼‹aMá7ß<õƧ¢º8ˆV_Å¡ý~‡vc8{#"‘Ík:§ôßa~ð¨(u;CÓ†ÇêÕ;¾øb·Óé ‹ô¤(‚eù †Þ~ûŒY³²:2¾åyÁlvvDnv2™ÉVmõÈ_?Õ⇬c†w›–Ú/±&Dû=§«œÕÕÖñãÿ#ÞÅ0 Ç1Š".{óÍÓ22bºæ“#]MÇ‹LX,î°E¥žPZ­L§St.¿1¬œ aU©¤‹OZ²dr|¼î?>Ñ­0 +zð¡\tâ‹6|—Ëïtú/|fØY&—Ójõigt‚‡žhbý‰NxÞzkËÊ•áâ/€¦ †á²³ão»múWäZ=â¬ðz™P?¾ÃÑÔ·Ýî¦~.jñ›oÞ°#„Å ‹};ô.,íánjzú#nwÓœ°a6þèeËÎÏÌD§ðûƒOSB‡×ðx·Ûïrù¡1ßí8>hÉ÷xN§Ïã ¸\·Û/NŠŠH¥ÔßÃÞ«ÕÊá]qôæÃÞ÷tG°MuµuêÔž|rÞ7Néòƒw¿?xÁ+ÓÒ¢>ýô–^lF§¤¤aÓ¦#¿ýv¸  J*¥fÎÌœ3gĬYY(X·ƒ‚PRb„&µ’’†ÂÂj£Ñ‰aذaÑM^ûœœ„n(ƒ\AA%´œV×y<­V>rdBzz ´¹¥¥E¡ˆÜ¾†Ùìºçž/·n=&îÉÍMY¿þðرz(µ/-58a´XÜ…B¢Ó)$‚ ð`w»ýv»7t.K\Œh^hÚÖjáFÓoŠR)=cå¿?XUe©­µ×ÔXkjlµµÐko30>¦Éøx]B‚.6V§‹ŽnRÛGGk %Šd@œ-GÖ=ûìÏÛ¶#,ìR—$ñ§žš?bD|I‰±¥Ôž$ñ!C¢22bÂ!ÐÅéàeù÷ÞÛºråFžç[fîS¡PH\.FFL^^ê˜1ɹ¹)C†z¥©}‡êjë¿þõÝæÍG.ûØc—ÆÄ :ݲeŸýòË!Ø-¡ bĈ„'ž¸lêÔôÞn¢'(+3MŸþb«…ñ P'òÃw¡5ÁAÇñð³°°úСê#GjV«•“$ÞØè{2Žc‚ Œ‘ðâ‹‹FNê•#z £Ñ‘Ÿ_‘Ÿ_±woEQQ Ï °6,‡žz‘µmÛ±k¯}n“$¡ÑÈ^yåê‹.DE"NßáõEE5EEµEE5ee&–åe2:>^[Ue°DH—É$>8çÆ§ É“Á†Ýî-+38a„,¥¥¦êj ¡ÅÇë†JK‹6,úÀÊ<À0§Å Á¤¡I“ÒþóŸ+23ãzé º¿?(ÆO††µÃíÆF·¨kƒ/-ƒÛ5Yt´&!A×þ7ÌCýï›oòÅ©<’$8ŽŸ9søÝw_ˆê`!º Žã×­Û·rå‹Å}Ë-Óï¿vç¢DÞ~ûçžûyÅŠY?<÷l_˲ü'Ÿì|é¥_õ+W^•››Ò‰ @ôgmºß·¯âÙgÎÏ/ONŽ˜7oô¼y£{þzòðáš§Ÿþq÷îÒÌÌØ+¯{啹¨8ñûƒëÖíûðÃí%%F‚ÀÂüìYYq¿ÿþàâñ`¸¿ß ‚N§/à¼Þ€ÇX·ÛïóÖáð2 ëó].?ð͒ú@ Àú|Á@ è÷Û#µZ†ãT½«Õ2’Ä Žc …ãXó çyÃÇ ÇÃy†á0 x<ÇÝn¿ ^/Ã0¬ßÏz½°”¹–ïK¸Z-¥(ºÈ%R©”$›¡TJišËi™Œ¦iR©”®ÕÊ W*%4MÊd´\NÓ4¡TJÑlìY±cGÉûïÿùÇGÃdÇ‚ÀW®¼êškÆ·|Ëò0_sÿbt> _v:}ÐYßjÔ2@­†ñdR¥R¢TJ5ÜV©¤ …†/Ëd”LF©Õ2™Œ–J)(¬G®@D7áõ2_~¹çý÷ÿ¬©±‘dx0†yóƼýöõâhv°Ù ¢É\ú¶ZìÃÎ/©¯ÑÈ´Z…N'×jåð.ÌE“R`È> GCt»ví^8,!I¼¥œ1==zÛ¶G†­¯w„ Â|0I>ô…¢éödq#ô.²' ºŸY³fÏ;ïlmhp´Œ¦iòæ,_~¨HƒýÙdrŠö“f©ýiŠ•J«…Y¬Y*µ×j *·;`))iX±bÍ‘#uíÔÙ’ËéãÇ_@× DA„Ÿ>ôÊ+KJL-gi$‰_z鍨XM]½®Î^Sc3™œðiGE©t±±Úøxm\œ6!A§ÕFF*{ãÓ º…“'Ÿxâû-[ŠÃ¤ÏaèõŠììøôô˜á™‘ƒÒe6Ç¿øâ¯o¿ý Fvøð³è*¾;(/7OúÂÇß4¨B–{Œ#Gjßygë? <äp7.å»ïîêív! ÃŽó”Õêiãq ÃÀرɯ¾ú¡C£z´eˆþFc£»ªÊR]mÅ÷ÕÕ–ÚZœ’J)­VnµºÃ¢ó!4Mr|÷ˆCÌM€õõv—ëTåcFÞª?:Z¯{íµMo¼±%,a Vn>¤ã?^¡5ËŸ}vý‡noqÝMp¯×+—,™tóÍÓ´Z4ôBt=]ò³>:2Zð¼˜xËåNŠ"‚A.77å¶Û¦£¢Khµ{ĦVwšÍ®0Y^èWºTJI¥Tûç3Ö<ñÄ÷?ÿ|p÷îÇe2º;?}{<óÌ_}•¿mÛÃÑÑêÞjC?…ãø}ûNnÚT´aÃá“' ÕE¸è¢ìiÓ2Pï ¹£GëŽo(,¬),¬>~¼ÞéôÓ49|x¬èµ>â1›]Ë—±cGIØ~ƒAuèPø¬~e¥¥¤¤aïÞŠâ⺲2sCƒ#Hç8AŠ¡ŒˆPÅĨ##U‘‘ÊèhMD„"*J¡„K Ë@}¾¢¢±¼Ü\Vf*/7WW[¡[ TJâãuIIññÚ„}B‚.>^— ŠR!=¢K8y²ñÙg×oØPHxKM9€¦IµZ ݯƒjÈCjª!5525Õ0dˆ!%%R.ïµ± ¢×9p òÞ{¿*+3µå’Æq,/oÈ_Üz¶Ç*û替¿õÖ))‘Ï>»`Ò¤´ÞnÑ€¥¶Ö6aÂ8N œç…áÃcŸzjššTÜ{ïWß|“OQd0ÈÐúwIâz½â§ŸîNJŠèáæ!úÁ ¯þõ¯ïÚú-ƒ× ä>õÔ¼ˆ”Š5(p»•ùùåùùùùåk0¨FJ7.5//uÔ¨¤W^ùí½÷¶ŠA¿qœpé¥ç½üòUƒsuÆï×Õ®^½½´ÔØF†a`øð˜^X8nÜn!¢O rååæÒRcY™ùÄ ci©±¬ÌäõZý*¦(’e¹K.Éyâ‰Ëõ=ß`D¯ãpxœ0‚Qôlt0¸]4lÄÆjï¼óó-[ŠÃrGNºçž‹fÍÊB³mˆî `W¯Þþúë¿GG«?üðÆaâ;qµk÷Þ{ïW=4wÅŠYxye¥å‘GÖnß^rÝužxâòs)T@ Ñ“œéþë¯ÿ~è¡ÿåå¥>ðÀÅ'í¾fµÃ7ßä?üðÚ1c’~xîøñhh¢¡Á±zõŽ/¾Øírù¡uRt´úÞ{g‹rð†‡ÇÃ8MñšN§ŸaØVýà‚À•J©\NK¥”J¾¡TJ)ŠP(hŠ"årZ"!aˆ§TJÉdM“ …„$ ¥RB’¸J%Ãq¬¬ÌôÚk›Ý6[SB²ÛÝú»Cé<´“Ëd´LFÉåÐA/%I¼YO/‘H(©”’ËiŠ"ÔjA`jµ¬YgOJ¥R–÷°ÃGí8v¬¾-wM“yy)C‡FÁþÙ¬³÷9>¯— {²\NC%·J…õxW¡ˆæz­VrW*æ«#}ÚZÛ»ïnûê«¿–çÛôÖÅÆjcbÔÐbo·Ÿfú&ÆÍCs½F#ogiï=ŒÍæùè£}´ÃáðÚŠP($r9mµzB“ ‰^¯ˆŒTBÛˆ^¯h¾«ÔëPM¢×+zè“ -0~¸ãóÏwy< Ï ­~S£fYÞbq‡&¦*•ƒA¡ŒˆPDD(£¢ÔPµc0(#"Tp?ÊÜœð¼°zõögŸý™çùv4÷ïËÉI왆!ˆNÃqüwßíãßËÊL†µ5‚Õõbc›DöññZèµ×EGkÐ0~`c±¸_zéׯ¾úÃ@«ùE ÞzjÞ7NEýaðàpx—-û|ûöãm}u„òÝwË'L蕚ͪU׬ùkïÞ'Ñ©×}×½ñÆ–õë àrÆúõ÷äæ&÷v£ £Ñ1zôSí?‡ p’$üÒoœ‚®ÇgËòuu¶ª*kU•åë¯ÿ>t¨*lsDG’8†a7Ü0yùòYQQªžl'!Âq|c£;4OÀlnú[_ïhlt‰W%2­®©±µºž‹ã˜ €¸8íÒ¥3®¿~ú úN§Ïbq[­Þ0¾ÅÒäć…ÎÕ“$Ý÷4MÕ¶udŠ"X–Ÿ0aèí·Ï@90ˆ.‡ãx(eµzl6¯Åâ¶XÜb-‹ÅS]mµÙ¼<†%ƒvP*%Z­¼åM§“kµ F# ´Zy/÷ƒ§Óo·{`<ŒÝîµÛ}v»Š€{¯Íæu8|>ßi‘c2­ÑÈhš¨ª²¶up‚À9ŽOHÐßpä믟ԭú<¢/ rÐMìpøDm±Óê/>õÓé{¹ZÝd(¹ãÇÚŠdƒ°22bn¾yÚ•Wæ¢_Ä`ÃçcDQ²Óyš%<ì®Ãáõûƒ¡¯¥(B£‘ÁsÍë ––6´±>ˆ‘$NøÂ…¹·Þ:==UÞBô Ã6ÿjÀŽ¦íæ ¯x×n÷:¾°eM™ŒV«eZ­L.—T¶õ.pÀ¯[²dòâÅQm-DOârùÝn¿ËuêXàÍíö;>—+3Yàΰ %2­VKU*x“i42FÑó¬Ó)""”†Í›÷Ú /,¼æšñ½ò1ª¾ôÒÿ>ÿü•×_?©WÐq:}¿ýVôóχvî<á÷ÇŽM¹è¢ìY³²Q9Ìöáy¡¼Ü\XX]XX]TT[TTëtú(ŠÈȈÉÎŽ1">;;>++¾»Sºª«­•U°.—_&£³³ãGŽLÈÉIÈÉI6,ô}œNÿc}ûý÷û[½2%IbÍšÛöï?yäH]y¹Ùht:¾Ð%-X§<.N;t¨aèÐè¸8­Á ŠŠRGF*#"”8Þ•óüGÖ}ÿý={Ê®X‚Àt¢:<1Q¯KHÐ NO"¢g°Z=¯½¶éãw à¸6kåb6iRÚ¿ÿ}yjªA©D²rD^/³jÕÆ>øSZ÷QŠhµòââçz¬a}™]»J{l]Mmùò î¸ã|/Ñ­<÷ÜÏo½µÃ@\œîæ,\8E÷ 6~ÿ½¸¢Â ÃóNžl¬®¶ÂW Eb`Žccµë×ß§íí&#zýûO^vÙkí? žzjþ•Wæ¢øŸA…Ëåß·ïäÞ½ÿ]VPPå÷ÕjM“î°*$I¨Õ’•+¯¹øâ‘½ÕÚ^gäÈ'IJm­B8ÏóW]5þ±Ç.1P84âS¦<_^nnç Eà8¾|ùùK—ÎDW¦Žã]&“ËhtZ,îúz»Ùì6f³ËdrNqÍDZˆ¥Ùìjõ8sœ–f¸ë®YW\‘‹&ÝAuµuéÒO«ª,k×Þ‘™׉#|óMþý÷ýÔSóo¹eZ'^.ÂçŸÿõüóëu:ÅË/_…JÁ!蜅éþ—_-]úé}÷;÷Þ‹zkþnýúƒË–}vウﻯÝ6\wøòËlÑ›”‘º.àëý6Ž;ƒQ*¥ LYÔéäR)…a˜Z-•Ëi‰„7T*©\.‘J)•JºÑµŽøÚZÛ¼y¯ëõŠÉ“‡ét ˜? P($2­PÐjµL&£Ž;xV9} ¯—ݲ¥bË–“É…ãmÊŽ4M Ê””H•J¦VK¡¹^­–Á `…ÂÖ“ÍF ºŠ ûo¿UìÚUÓ–9”èhõWŒ Ë3×jåZ­B½ìf4ÚAôAê 凊џêò¼ ìÞíur’ÄŸ|rTØ‹jû¦H/4žGô=j Õ{Š1_Dä1 ×~('†a#FÄ]qÅØˆ…^¯4”ƒêT÷þþ{°`A5Ñ8JF>¤¹`?  ÇŒm.£’ÿ¸kçRÏl`‡™?|ÿý¹ ±±±¨¨¨«šƒ@ô„Έ Ï Û¶UýïÅNgxa¿–P±bŬûïŸÓÖÀ¨‰ IDATe[Ñ?9JEÞ¤»¬’Ј{pAÀC.¬p €æ…7z=çØÚÃÐc-G úŒÛk÷°°ÎDXå‰;O×µÿr 8f{KoòœÄÔôL›ˆN2¾óÓ¯ ŠïE~uµuíÚ½í¿^ø¨Háû¾›=£yOÏ´8;æÏg¾Yët6IðNŸÓ):ñ›þZ­n‹ÅcµºÝvû©KÇcbÔz½"2R=ø‘‘ªèhuD„Ò`PEE©"#U]›¨ ¹9s^ˆP|óÍ2dp;#uuö_-\¿þà•8ŽÍ˜1ü ³gίëí¦õQx^(+3>\SXX]XXSTTãvärzĈ„œœh·OO鎾ŠÓé+(¨‚vû‚‚ÊÆF7E99 £G'çä$Ž™–ÕÒˆŠ¢òú&‘‘‘ii«VmøàƒíÁ`;Ân§‚HW©dÑÑêääÈôôèÑ£“22bâât= >y²ñÇ ~øáÀñã qqÚÙ³GŽ•8bDüСQ4ÝâÝQ4¢{ðcäʼ£ÝAh760lXôŸ>ÒÞ3P$ê c³$õqÍÌB€ w¦áâ_¦“9GW¶`Ípíµ]yÀnÆn÷>ýôÿûßÞY³²ž{îÊ„„6G‰h¤Ñ%øýìòå›( _¸pøôéIƒÍS9}úôs¼ˆ¨ýÐé ˜Í>³Ùc6{M&oCƒÛhôØlŽãcbO>9U£AÚÜ>ǹ÷ç?ÿüóŒ†ß~+ÿâ‹"Ž;C¶/<ÎðáK–ä$%©Ï¥UˆþBX ¹ÂÂê;O¬\¹¡ÕhÇÌ›óÒK‹ôzÅÑ£GFc¶·“dffFGGŸË®»îº/¿üÇåÑÑ·µÿLAà?© \®¿<žCíK$ý5kÖ\Ûq;Ï C†<V,¶50ž÷¹ÝùÏ!Ús£!3 ÃPÍyL.—ßht66º<ò­ÓÙ^ÜŽc<’’t÷Y{¥§˜Ú‹{A Ú¤íL:¯—¹á†JKÍ?ý´"1Q߉cðÁŸO?ýãGÝtÑE#:×:£ÑñðÃë6o>rãSüR™ŒîÜq@ z†Ž.ÞoÛvìŽ;>¿óÎ î»ov·6¨þøãèòå_Üu׬ûïï@òòÀƒv£ˆÞD„u{Í/~v°þ/3àŒsý[Ròb_XÕóz™Å‹ßW©¤ëÖÝ©VËÚyæ±c !!A£Ñ´óDŸÅáð½øâÆíÛËÜnÖhmçÉÇOž<ì¿ÿm}®óÏ?ÿŒG=Ñß 9³¹œ¦« UCƒÇ1’$Ú™¸Ç0¬=«í ú‚ ;æ`_ý2Q')1ùq“Ji¯7ÐV,ËòW]5N¥’¶þ0êሾ„'À}ýùÞ‚ýµ,Ëó¼@QËòmÊ‚ PHo¿}F{Güê+@to ¢¿ oô?î`êíL£‹1:ƒfW°Þ¨³3ãðžZI%pŒÀ° vN˜·ti»±æ½Âë¯wÕ‘²²²Pr¢_ãrNœpOœ˜¥;x°*`%’ç…Vó¯8ޝ¬´´s4tF Hjjì …-77ÖfNœhðxE‘Á°ñËòGÖ·w¸+À”)ÝÙ^Dâ=ézÑÏ9}§& Nð1§¦Ô<Ž «Õ+†‚ Ëz´‰çB~>Xµª·qfŽ«//7ϛә£qþY’ À‹Üï ®þ3©lÜC£Ú[,@ô]{¶öÒy±ï‡“¶: )…‚œÀ5*$D¼ŽNŠÆiéX­$^'‰Óf«´³õ@D¾Î-/7·Ü‰aMA†å ”cR”cRÔ£“•£’&ªTwuiCˆNqzÇ0,*J¥ÊÊŠ¼ûîj)Ñ4Á²|½=ð_帓ó?xI2ü²E ú"ͽ]©”(•’°Ô‚o¿Ý·ysq;9±4M²,‡aÇñ55ÞiÓ¢† ‹êÞ#=55v 3FF*M&Ãp É0Ü3·Ed2ÚïgpÏŠSê¬~óS/¦Ó¡ ˆþÍë¯$2:Z}ZؘDBmÞ|¤-7I‚A.>^{AÙÎŒYyØe˲¯×_D z‚ü||Õ*­V®5´rF¼ñÆïVµõRŠ"‚A>99âücۆ͞(\v/w»FègäçƒU«hšŒRÈ¢¢T-¿üò×Úy5E‚X–Ó))¥‡i¼÷ßÈ–}•×_¨ÕRµZ @¸é¯  ªÓ=†a é÷%jŒÂ¡ˆ´Þþftœ¢{Œ@t‚×_Ð4©ŒŒTväÁ gµº­VÏï¿¿ðÂ/W^9Ç1“Ée±¸++-f³Ëlvù|§jâjµò¨(uD„":Z©ìþGí(-5¾ýö(î¨-AØ»·bóæâÍ›””4¨Õ²‹.Ê^¾ü‚É“‡ÉåÈ N À:TUXؤ¶¯¨0ƒœN§;6eòä´eËfæä$„]¶wv»÷¯¿Êví:±{wéñã ‚ ÄÆjss“ï¼ó‚ÜÜ䜜ÄVTã­¢òúUUÕ?üPüñÇŸ‡~7¶Š €åË/XºtFDD‡¾»ž¶l)^½zÇŽ%:ü²ËF½øâ¢¼¼ÔÕÇEÑDˆ®F À2?w~ƒ·pÇ‘ÃÛŒ:¿¬Ü̲IüQ ¢äçç¯:=I¥’ªTÒ´´(Žãïºë‹v^‹aAà<Ï™Íîõ’4nÆÌ\?…M"ÎŽ3eÒÉåôêÕ7Ï›÷Úõ×ðë¯÷vb-éÖ[§WT˜o¿ý³ï¾[>jTgÆÑÑšO>¹yýúƒ>ºnÓ¦¢ÿþ÷ÚI“Ò:q@ ˆž¡CÑÇŽÕß~ûgsçæ<üðÜînP[”–š–-ûìòËG?ôÐÅzA|aÚ±£dëÖc{÷Vƒ\«›öG5på•mUôE 6’Hnã¡`³XÜF£Ód‚UÇn–åúâ×ã?o»ã–c0C<%bc0€iÓ\“'s#FŒTVZòóËóóËwí*…R{Š:mPT]ÝžéƒÁ˜¨+**š>}:†auuö'ŒÇŽÕ—”‹‹kOœ0z½Ð}Oî÷‹ŠjÚ;Üøñ}ñwÑYr{»Ý Ù?„G›7‰ŽVçæ¦tæÅhœß) 1QŸ ‹‹ÓÆÆjãâ´ññ:…BÒóíAô?:vËq|Cƒn‹2’ij²âssSFóæÑ«âiÀh¤DAô1ÚíáFc+s›4M2 KøÈ‘ “'7.uT]‘aÉ5à}šv{»Åâ!I<¬°,X þó3Ñ!ú4í^wÛlá½4_w‡^ÂdgÇÿ¼x1p÷’nl*ÑiÎ>.Ž¢X¬kذ˜÷ÞÛ¡¼í¶éaÏñx&“³±ÑÝØènhpX­n“Ée29 ª:®Â‰Ñ ªÈH%AœV‹´¬ÌôòËî¹ç¢ŒŒ˜NîJ0ÈmÛvlóæ#[·«­µÅÅi/¾8çå—忦„ý3rÂÔöåå&–åµZy^^êe——““Øcj{€Ëåß³§l×®»v•=ZÇóBZZÔäÉÃî¹ç¼¼ÔØXm'މ¢òúþyüŽ;¾µÙ:úM‹axkîƒAnÍš=ï¿¿íäÉÆñㇼûî?çÌyv5HP4¢P @nÚ÷`ý«`ó/Œ€×>\SXXsà@eIIÇñE‚AÖïšL®èhu{GD‘¨ƒ€ 2ZìÁdrÖÔØjkm55¶ÚZ{U•¥²²±¡ÁùÿìwXW÷ÇïÒ¤J/Rì Q5±ab‰ÆX#±÷.ÆžüŒÆåU¢(jPX°‹”jAEª´¥³ìÎïy³ïfwfvvwvgw9ŸÇÇg™{ï¹³ßsçÜ2wžêÚ;Š1 4g¬þãDz•+ãnÞÌœ0¡ûš5Ãèl†€‘†‚LœØL·àp8 îtß|thggëï϶€ êYêî"™™ÅøK}llLÜÝí<=mÜܬ]]­Üܬ]]­ML`Áps„BIIo tù„ß"„x<~EEí·ß k;{v·f²¹“““¥¥;Bé!}}]—VÞÞîî6îî6¶îî6ªáÀ:hÇí99Å!] Cø¶Ö­[´nßÞÙ××qÈžGŽüB?7 9£G>Ïþùs5Ÿ/¾‡žžž†!>_`ggÖ¿»nÝÜ»vuwuµBúú(â8£€ŒÐx’ÎÌÌðäɃíZ±"n÷nyZ¶ F¦§ÌšõŸ¿ÿ^hnn,G¡aÃ;wv[¼8ö«¯öÏ›7`þür¼3@H°ª«¾ù樟ŸãÏ?GÒzɼhhhš5븧§í?~ÕLFÕ@&ìÌô‡ 6,p×.ôþ}iB«¿þJ}öì'þ £:ìtútÒùóÏbbf::ʳž ÐD𠡉{ðxügÏrïÝ˹u+35õ†!CC}|7„PII»v€*±±1Å›î-[©©ywîdݾõô黦&ׄa¨®Ž‡ï¡Ì¶± 3ÆÆÁÁ^ÁÁ^«V -,¬¼w/çþýœÄĬ¢¢J]G§¡‡*-­qs³fÛX==€€Ö­çÎí_]Ý”ôöÁƒœ{÷r^½Êþ×€—–V³m)  èëëÚÛ›ÛÛ«èq ”««•««Õر]BOžä>}úîáÃ7™™|¾@W—SRR¯ªdÛR€5--BBþ÷ØÈ§Oå99E99E/_æ}üXÖÐÐÔ¢…flZÀÝ»9ÁÁ^Ð2€¦7—m€fAaa%Ÿ/àp8­[·êÚµMPK‡.íÛ;ÿwTÿÂÔTŽàžhMM.·!Äá -ôšttP»vŽ=zxvïîÑ¥K›ÿ=³t!›MC€ Êʪ1 Cÿ}[ ÖÔ$°²j‰ï)ìåädɶ@³FW÷R¥¥Õ÷îåܾ•^Zú¯u5&&†Ã‡{õêÕÖÚ+šµ|¾ý÷•<|N@€S¿~¾!!Þ;ºééÁ… ••uøzc½¦&>‡ƒ:tp õ ñ l [#”—ãýnŽ‘‘~}=!N@€sß¾>ÁÁ^;»ýo±h2›F#TVÖq8 Ãôõuuu9õõMÖÖ&xÀÖ§7ta€æ€žžNçÎmž=ËEH|§û–-[´icÓ¦ éVYb[á—–V—”o…¯£ÃÁ·¿wp0·¶6µ±1=s扫«U¹¹ŸíìÌŒŒàu¼ˆË­ÿûï´ë×ÓïÜÉærë:wvûúë^øÁËDy÷®äÙ³÷øÖö¯^}ª©iÐ××õö¶ïÒ¥Íôé}:thíãã ²[,--/11311óٳܦ&››uÏžžsæ„öìé)e³f@£033 vËÈ(.(¨®®n@H|Ë*1^¾ÌSa!útÒž=׋Џ£FuúõׯýýTV:È„^` K`  þ'ÇÏÌ,À7¾òäí›7ÅxTÀ®‘€šÃápð×5uêä&öUCC± †aÇ?ˆŽ¾èèhqîÜÜîÝ=ض eýúp—V..V°@‡»w³y<ñmî9Žžž‡Ãijâ øj2tóæëwïÊ~ýÕÑÇÇCUN÷îî±±³Û´±qr²€Gi™((¨èÒ¥M@@ëvíÚµsòñq}’χÍ(.æâ õù|>'°¶6íÝ»m·nîÝ»{xyÙAè ''ËŸŽœ<ùЀí† ”5¹¾¾îáÃS ÚµbŹ}û&Ém†ƒƒÅÉ“3~ÿýц ñ·neîÛ7 vm@ ‘²?†as瞨­mUUõ¾NL̾qãåÇåøBኊZvÍ+*â®_ÿí·!¢xÍ}}ÝîÝ=ºw÷X¼xpuuÃǯïÝ˹y3ãíÛ ÃÊÊXÖ'°‚®®NPKPË÷߇ÕÖ6>zôæÎ¬›73^¿.F•—×ÚÚ²ü†P{{ó1c:Ó!”›ûùÞ½œ»w³ïÞͪ¨¨++ƒ *@ƒ11iÑ¿¿oÿþ¾!.·>)éÍýû9·ogegUW7ðùxÌÅÁÁbøðÀáÃBuu))ŸlÍ‘ÆÆ¦gÏr££G²m ˜˜´8sfv@@k33#¶mføü¹J À ô[{uíêÞ±£kË–-ض ”BiiMS“ÀÈH¿g϶!!Þ½{·õö¶‡'^5ÄÊÊdĈ #‚îß=vì/FFff†åå5ü#‚vìǶÀåå5|¾ÀÎÎlÀ¿>}¼‚ƒ½,,ŒÙ6 4žŠŠZ@àà`>`€_ß¾>½zµ53ƒ9,`˜šš:„££Eÿþ¾}úx÷îÝF–m¥¼¼Ã0½®]Û„†¶ ñòñq€~7ÐÜèØÑõ?ÿ¹/GB©[áóxü²²êŠŠºâbnaaeq1·°[\Ì‹{úùsuuuý¨Q{…'››ÛÙ™ýóÏ\øÙÜÜØÉÉÒÄDkG€ *þü3õÒ¥”ää÷::œ¾}}V­Ú·¯³3¼ä!„jjRR>>{–‹ÿ++«ÑÓÓiÛÖ> À9<¼c‡­ýü ¤¢ûT6>}*_¸ðôýû93f„,[6¤¹U@ãèמ»èR_ÏKMýˆod¯««cffdmmbooîèhammjkkjeebkk†¿T²¸øƒ@ h&ÛÜ#„:wnö €¦2qb‰{°m åV"„-‚ƒ½ºw÷èÖÍ6õXŸ¶X±"®W¯¶­Zµ”5¹µµÉþý“Fþ%4Ôß‚I>8Ndd¾}}æÌ9º}åʡӧ÷‘;7e e~åÈ‘»7ofœ93ÇÚÚD5Irýzú©S˜âà`Á–  ‰˜šè?p ?B£òó+îÞÍNLÌlldyQÂŽWÌÍ–,ù‚]3uÀĤEX˜_X˜ß† á%%U÷î夦~dÛ(`ccƒÐPßÐPßõëË‹«îßÏ10€×üZ…››µ››õĉ=0 ËÌ,06ÖÚ§#€æ†™™!Ø „**j?~ ;ÝôèáÑ£‡Û†ÿ"+«°®®Öé4177îÝÛ‹m+€I õãã£]ôõa~ Ð~† ?¾K` «ž æš››Õµk‹ýü9NS“ %å}MM#ÛFkDFöøþû0[¶ ­bâÄ«WƒG‚@yðù‚GõíëíâbŶ- tüýNšÕ­›»¡¡>Û¶k´o_ÁåÖ1þ^}}];;s;;soo{áÁ›73._~ñë¯S† éP_Ï+*âUqÿùWYYY—]TTTY\\…áÛz!Ô¢…ž½½¹­­þ¿……‘ènø66f::šôŽ ÃÒÒò^]ºô";»ÐÌÌpà@ÿéÓûôéãenÞÜ_ÆãñŸ?Ÿšš÷äÉ»Çßq9NÛ¶vÎË—éÒ¥‡‡-+ƒ¥••µ éW¯¦%&fÖ×ó]¦M  õmßÞY³ä(ˆ‰I‹N\;ur9³/~¤¬¬æéÓÜ»w³_¼øðæMIeemII•²ÍHOÏ_»öÂÇoÆë²hÑ`ØãÐôõuaòè `û÷ßܵëoww›k×·kçȶE0Ic#?&f†­­™©¥¥”}iKJ`D@] tIN^oooζ!ð_–,|éÒó={®¯[7BŽä]»ºOžÜsݺ?úôñ¶µ5UÄ''Ësç¾Û½ûÚúõ<~üvçίÌÌ É€A¨vºÏÊ*ŒŽ¾4oÞ7]jhhZ³æ|xxÇáÃÙ²´GG‹ñ㻎ß•]3Þ¿/={öÉöí㌠صP7llLGŽì8rdG¶ 5ÂÖÖœÐb8ޝ/,ù´ ãýÙ¶™ÉÈ(022pw·aÛv°°0îÒÞú4úöõaÛ ''K'§ÿn«¤§§ïiš9ݺ¹³mh! €²ÑÕÕ™<¹'ÛV€ŠèÚ6@66¦¡²²Æwº—„Ë­[¶ìì°a† é€24Ôwuµru%~·JccSyy ¾~EEmq1·°[\ÌMMýX\ÌÍϯàñøø™z––ÆøÞ÷ææÿÚßÎÎÜÑÑBMvÎåñø‰‰™ ¯3óòÊ,¾ü2`ûö±;º5ó÷\––V?xðúñãw©©ÓÓókjÌÍ»vm3qb®]Ý;tpaqÓ“’’ªË—_\¹’öèÑkÞ½Û®_>p ¿‚»ÚD«V-ô8ÐOx$?¿ByÅñxü;®ìßË××!>~ À4+ŠŠ¸K—ž¹~=}Ê”ž«W‡=@û033ìÝÛ‹m+™Á§Z@}033š;·ÿ¶mÍ™*Ÿ>W¯výzúŽWvì§ 1zz:‹ ö÷w^°àÔˆ»˜"ú’l!Ýéð%Kδkç¸xñ`U$ÆÏ?'”—×nØ΢ 0Å¡C·ííÍGî̶!ð/Þ¼)nÓÆZW·Y?è(޹¹B¨²²NÙ ØÜ¹'ø|Á¶mcéœo` gggnggNvBeema!·²²ß ¿¨ˆ[TTYTÄMMÍà ÏlÑBÏÞÞÜÖÖìŸÿÍ„Ÿ-,Œ(Š`„ªªú«WÓ®_O¿s'»²²6  õøñ]‡ læ»x¼_úøñÛää÷Ož¼ËÊ*äó..V;ºäÚ¾½3»ï'¨®n¸r%õÂ…ä»ëð@ IDATw³ õû÷o·wïÄ~ý|MMYÛsÐ -””ó«WŸ¢¢~ÿô©ü‡FO˜ÐÖ4+nÝÊüþû½Ó§gøP1qbÝ»Nœx°pá 9’¬\9tîÜ“'÷lßÞYq{ ò¿~}É̙džý¿üjذ@ÅóPÒ÷3gž$'çþðÃŽ* åóç꣢°ûf­×¯_s8Â|øðaêÔ©tÎT¼,៛6mâp8[·n9}ú4‡ˆ””Ñ?ÝÜÜ&Ož\RR¢ˆ1deÅÅÅ)~)jjj–,YÒ¡CSSÓ.]ºüðÃMMM’§)R)Å2Â8ÎëׯÉV hhh:þÙ¤I=õôØY룈/«Â>õ(—íPróiÕ---Ç'k«Îl¡ÝÖ´Ø/–/_‘ (\‹®Œxä­)€¼åFîêƒwh Úí¡ššš¥K—vèÐÁÄĤk×®[¶lJ‘ÃáŒ;Ã0aVÊ«x„¦ÀÖˆT#„ª««/^ܦM##£¶mÛ®[·®¾¾I»A("rú'7+h}³™=dÈKKK{{ûððð/^à©æÌ™ãìì\SS#ÌçÍ›7111ŠX Í£æRTT©¼gbé£õ.I˜D&$µ*zD´D##£^½z Ë•L «)h·_("0!„Õ¤SwðM¡ùxFÌ…k Ú­pDÞ%AŠÉO ¼¦ YkWC6°#tªŸŸŸ?aÂ777“.]º\¸pANÓ™£Yé¶™·ÒmÛ¶ŠD}ñÅ €,9´ä긃jÜ$ÔœÜ 5cÏRÆ ܹhæÐ¬\ G»MÖŽ ,Òz´[ð’¿&[¿¯ØµRpîNÔ¨­Î[¶lª®nPvA[¶üy÷nÎáÃSÍÍÉÐÜÜØÛÛ¾kW÷açOï³jÕПŽŒ˜¸ìùó ïÞíxþ|ýÕ« Ÿ¾iÓ¨1c:{{Û××óRS?ž<ùpÑ¢ÓãÇïï×o[PÐú6m–­<øÇ)S/]zf×®«‡ß¹t)åñã·ïß—65 ä3¯´´:6öñ·ßëØqýüù§òòÊæÌéwëÖ²«W.Z4¸ns/`GÞ›=û?;®ïÑ#zåÊs¯_ Ðî·ß¦¾x±ñÑ£ÕûöMúæ›>;º²µÍ}MMÃÙ³OÆßïë»rÅŠ8kk“#G¦½z}àÀäáÃ4t›{¥öÊ‘çóçÏõôôΞ=+<o``––†ÎUÛ–Vq0 Û³çú—_þdggvëÖÒI“zªç6÷Ú4¹@ÒˆÆ?ÔË~¨ÏTfÃB-vI´I¨0 ƶ*¢®®1**&2ò`HˆÏ­[Ëšá6÷ : E;ÏŒx¥â4+Q FÈ¢Ú“)6À0lâĉ&&&øŸLºH¦’º¦š°šRŠA6z)VMjSµv£FÂK¹¥N2;”Š’²Õ8T3øÌ:Œûš‚×M—ð6D=&ƒÈŸ–ïŠ iV~¤M-¹šD¶rЬ$‡´Ku?0Ž‘‘ÁèÑã➊-ѡϰa>>;w^eÊ$GG‹ ¢¾þº÷¬YÿYºô Çg*gù žt¯¯çmÙryìØ.:´V±A¢?~¯eKƒéÓû°hBÈÂÂbÙ²e²¦úã?ÂÃÃ…iß¾}kmm­ëþWþðӧO»¸¸ÄÆÆ O1bDAAAAAÁƒBÿàçç‡zðàAAAA^^ÞÑ£G¹\nÇŽ+**ÈÊ’Z²²zõê%Çe¥ªªªsçÎOž<Ù¶mÛ³gÏV¬XÆçDÕ2UJù~n€IIo*+ëÆŒéÌ–Šø²2ìQÏr›ͤUÏÏÏOHHÈËË›7ož’ì” ´Û„ûÅÊ•+!2´XáʈçÈ[£yË„hMå»tà„v{.Ť¤¤­[·&''/_¾üäÉ“J1..N4+%¡A¨fHDÒe¤ê!4oÞ¼äääsçÎ}øðá·ß~‹_²d ’vƒPÈ›ÚÝl~üø±gÏžNNN7oÞ¼r劋‹Kpppzz:BhóæÍ<oûöíÂ|–/_Þ£G &Èm*4MII•µ5›¯^ÆÑn—$KÂ,¸s¤¦¦¶mÛvüøñ„KÇÀa5­÷ fû¿ô/Ð š‰ˆ"‡ b…kÚ­pŠ. #w¼ÁâÚùÜ„ḃl`GjA2 ×—––ÇÆÆ>~üø«¯¾Šˆˆøû↓…òRiͼ•ÎÍÍÝ컼¼üÎ;²ZS´Z¸ƒjÜA€ÔÌh¶ž¥Œ w.€ív4Y;&°dHëÑnÁËZ–j:¶„µP¼híðˆÊÊZ„™™r·ð¾t)eß¾›7ŽìØÑU© iÑBÏÎÎ<  uX˜ßĉ=-¼}û¸ãǧÇÇG=|¸:;{ëÇ«ã㣞ºvíðˆˆî¾¾†¥¤|8yòᆠñ3gßÓ£G´—×òîÝ£‡ÿù›oެZuþ§Ÿ®:õ(!áUjêÇ¢¢JÉ}ð32 öì¹>lØîÖ®X×ÐÀ[»vxròú?ÿ\0oÞ€æ¶Á=—[ŸðjóæË#Füܶíòþý·<˜hjj¸bŇWçäl={vîòåCô·±asÇOHx5sæñöí×,^kh¨¿oߤ´´M?ÿæg` Ç¢mŠÃø`¯Üëœñ<ƒ‚‚V®\…Ç•••sæÌY·n]ûöí‘ùÚMyyͤI‡vfÍð˜˜l[DŠ6M.H…æ²™ÎTƒ6 fÁš™™_~ùÓµk¯œ²gO¤†¾zGAÜÊ€ñ]ÄTJæ•€ `„,š\¦Ø ???&&Ft.LI08ÔCÅè¥Êª©æ¨>JQü9V c”Cœ ÌÎMhŒûš^71“èŒÉP< ¬†T[´©%‡ÈVSÐ&Õ!ˆ”ÀÈ‘ss?geÊ—\G‡³xñàë×Óß½+aÊ$==U«†=:íâÅçcÇî+*â2•3€<`Düç?÷]]V~«êëyþþ«·nýSžÄ&`ááL[„åääàWLø‚!C†ÔÖÖJ¦U¢e½xñ‚Ãá$$$ „²²²ÄΔ4!”““#üS ôéÓgíÚµdeѯãU^¼xqpppSS“ðHuuµ››Û¡C‡ÄΔµRÌBXq1“FO‹‰QVæÌ±qc|hè6YS%&&2k‰"¾¬2Ø*—9”\RRrëÖ-@ `Ñê¦MiÕïܹcnn.Sé V Úm2˜Ñ3D;´ýBIæÂIa$2…³σ¼‰9CklT—|þ È›Š×¼ƒ&Úm¦úbh¥wIñÀ†!„fΜ٪U«‚‚¥V<‚Œôôô´´43QC Ÿ9ad:·°°xôè‘ðÏÛ·o»¸¸Pg« È韬<0öû*aTP+›Í™3gŽ1Bô‚O™2eòäÉøç˜˜CCÃÜÜ\ Ãîß¿¯§§§  CóHŠr"af6l÷š5çåI q¾,5ÔIè ©UÑ#bß!„ŠŠŠ$¿‡%ú¿rÁzÿ—°vR« ^@ #ã“àòzÜÖŠ%…“ —åuI˜’ž†æ›í‘DõkWäsŠ1²©ÉdÉܹsñ‡j„,^¼xÀ€4“ËQ"TÊÓ-3zƒVš¹VzðàÁ+W®~{ìØ±/¾øBVˆ•K˜ZrbiÉaUÓÜ$I“˜„©{x–ZÎPÀK ž ˆŽ¶£ÉÝ1‘ Ð<1L­ó„õ¢ ¥Rÿ¾Ê«ˆh΄µPê5”Dmuþøñ[‡ùùùå Z$Fff§ç²… O+¯fáóEEÜW¯>]¿ž~útÒîÝ «WŸŸ1ãØˆ?÷ì¹ÙÃc©ƒÃ|üŸ“Ó‚Ö„†n8pgÏžÑîîKæ­û¿þzQW§Ök”DiiõÅ‹ÏW¯>?hЮ֭::.4h×êÕç/^|^XXÁ¶uâ¼~]´iÓÅŽ×;8Ì ݶwïõ¼¼2¶R÷UyòÍùŠæÙÐÐàïï?cÆ ÃfÍšÕ©S§ÆBJ£&u•‹çÏßwê´¾sç Ïžå*¥õ‹ê,QÁTBc˜ZöC}¦"0ÉÀ8† fÁdÍ.j³B|üsoïå¡¡Û³² ˜ÊSI‘†Rap+Šv^>ÄT*õ¡Õ <aJ?Z¦C:2™ö¤ÆRGÂåû¹)RÑi±_ÊJƒ¯­»‹ÈWSÈ-uú]¥Bv)Ô\r÷UU9.ʈL˜0!\ÍÆç•a†ò 3&Cý,°˜©2Ù¬2`ÀŸØØXY/ ‡Ã™5kÖŸþIV;:!Dô2J­)a¶'Ož\»v­®®®0Ï–-[.Y²ääÉ“xæ7nÜpqq¹wïu¥$3M~ìØ1ÜÎððð… âI,--ñ$“óùü;vxyy™ššöêÕ+))‰ð \»vÍÓÓÓÒÒrË–- ïíímkkÕÐÐ@xæo§þ¼xñ±S'7ƳU/#º•Ì앚•LåÒ¬ŽÜƈ!¦dõZuBtuummmñÏ_ýµµµµ³³óâÅ‹ëëëÉ !¬á%âp8111¾¾¾­ZµÚ¾};~ÚmÖ¿ "P¸-S8#ñ<È›u@Þ„ˆ L´âÂÏbú¤Ö¿h„„7àH½ƒPŠK—.‰‰Áÿ\°`¾2†NÝ!Bà”C"„'Hj[ÌehêÜÌÌlß¾}¥¥¥øŸ}úôyÿþ½ÔºSˆ\²U'“MM× 4›87nÜˆŠŠ­àÎ;…MJDDD¯^½–.]ŠaØÂ… £¢¢üýý)ª@6ì&lô yÔh0L «K0qÆà’BÈ’HáQQQß|ó þmuuµ±±ñóçÏé]ïÿ¡¯¯o```nn.ù8,ë€_"&0Éð†°SŒãááacc3{öìÚÚZÑl!ª/@šã’ŽÞHü…³(‡ºK"†ÔA~² Ï:ª|SSÓºuë\\\lll&Ož\QQŸ@s”[ª›Ö‚ḃl`G, Íáz²Ú;wîû�JëÖ­ûí·ßT_w14]·ÐJãHm¥ÇŽ{æÌá8d\\ܘ1c„ßʧ@D´þ ZrwÀQw$Mt+žõ*ž¡@pçj6.†ކC§cB¨+D¤ Ã8Ю];33³ÐÐÐË—/ã'ƒæYOê&0j"ûÝea-Ä®!Ù=ˆâJ1C=u^ZZ²²2QRþµµ³gÿÇÕÕ*:z¤’Š`Ž­­i»vŽýûûŽß5*jÀ¦M#œòÇóîß_ùúõ¶œœ­wï®8thêèÑML ³³ _½úT^^kjjhjjTXXyîÜ“o¾9êî¾4 `MÿþÛ'NüuÁ‚SÛ¶ýuäÈÝ¿þJ}úôÝÇe MlW”1>|(=yòaTTLÑþþ«¿ûîdjêÇà`¯ß~›öâÅÆ«WnÚ4rذ@;;‚ qV¨«kK¬jdYs†µ^ub@üÀ::œ€çW¯>)’CDD·¸¸§<ŸAÃB¾¾ŽW¯.ôô´ ÿù¯¿R™Í€.’›ß'$¼rt\ÍðË-eeñâØ!C~’3ñ„ wNž}ÚÅÅQg||¼££#Ç#Lþã?ŠÊÆÑÑQÒ³BC‡år¹çÎë‰:pàÀìììGyzz®_¿žð &µy‡95k¸%k*:ïU/cÒtKá/’?¨T _.áaÖQ$•,õTå[—¡UÇ MII©ªªâr¹™™™}ûöݸq#þUdddÿþýß¼y“ššêïï @ò hž’õ"»D¡1cÆ”——:t!TZZ í6̼E¢Ú~Ax"uL@áìÅó oRd¯"ù€¼1Jy‹ž,V\`ÔúýL&Ax#[ãO¯Ý¦†fß¼ƒLŠ>lÕªöïdgg=z”NÝ!bÖ#ÒÓÓÓÒÒ¤žFúxá „ÚÓ*Mÿý÷ßNNN-Z´ Û±cGnn®XÉn„"LjZu2IP l R’N˜-¡{C³Y__¯££#ì†W‰ <'++«E‹óæÍspp¨¬¬¤¨EŒ·ZyyyÐ<’ÂTD­L†ýiݺ ò¤„8ŸvœO‘D2¿}û¶••®ê“'Oúùùáj—tÑ#èŸ1ÒªªªOŸ>Í™3gêÔ©’gB?cƱáÃwwï¾ÉÅe‘ƒÃ|üŸ«ëâÀÀµƒíš<ùÐ’%±;w^9qâÁµk/_¼øPXXÁç+¼hGi‚/>:t{ÆŒckæ·i³dܸ}{÷^OJzSSÓÀ¶Ä‚;w²fÌ8ææ¶ØÃcé’%±IIoXÅ4ê³*bÎ—ì › ÎòåËBÑÑÑ¢ešðÌ…(¯¥efDTx<þ’%±NN öî½®\•ªMT¯n“ RC:Ë~¤ž)i'™Q¬Ê ™³â>Z6ΣnB…Y0µ~êP22òƒƒðõ]yíÚKÆ3—;ÒÀ¤5,ëׯ'tšm™ 5O˜ŠÌm í'kçÉK('< Yߜ⡙Ö×ÉzIÅ~>å9SÏh®åˆ1 íÉHŽ„‹-`Š™þ35å^b%RÜG_J(õ׳Zí."9¼,zm©oÐbgÊú¦˜Ô¥>ÿEqq„%Š6ìRô(yQÔ\túª4¯­ÜsRddÇ’ &„«Çø¼Ôë© ü¨ïòô÷h"» áHŽÉP? ,ÇEy~¤§§ÃDÜN'ŸfØ’SD¶’i©¯†˜mdóYbU# ÌX †1 ;þ”:8Ì¿?Gú©²#vî¼âè¸ :ú’:Ï‹ ­ÄssæügÔ¨=ª7EŒÎ7ìÜyEÎÄôV’•——;;;#Q??¿cÇŽ O8~ü8u¯£¡¡!##£ººšÏçß¾}[a=Ÿ\$‹Å}|| ðÏ †!„’““1 kllûœ““SVV¦¯¯¿sçÎòòr@PUUÅçóEËÂ0ìÑ£GzzzxäÙ³g!±±3É ‘/¥%¬Š–%Ö}¢¨)a¶c7ÖÖÖxæ©©©R+E˜¹hr¡555-[¶|üø1†a_}õÕŠ+È’{yyIÊFÌN„Pbb"†a|>_ôJ mŽõôô$<ˆI…í™]š¸º.>{ö‰¬©èŒ®ªÀ—1iº¥ðÉTª Ð/—ð‚0kŒ(’J¦þi0ÕÎEA«Ž*Š™™^…ÆÆF]]Ý—/ÿ»üâüùóžžž„Eó”¬Ù%BݺuK´‚ÐnS ÊîÁ/ÈŽCd¢î‘ (œ½xäMŠjŸDycòîtÿ¬Rõ/üLaÞÈÚø«p§{ð\Š’/{ð൵5&"¿Ý»w›™™}øðAjÝ!bÖ#T¹Ó½ <‚ðBm‹i•¾Î›šš=z´qãF]]]±L7I‘¶êd’ Ø¤$¨r§{h6?}ú„ÝIˆhªuëÖ!„~ÿýwу4FD5Í#š°Óý¤I¿Î›wRž”çÓŽó)’HáMMMööö7nÜÀ0ìË/¿Üºu«ðL1÷=‚þ‰‰Izzºä™à°¤@ÿWú¿R‡ñ ;Å†ÅÆÆ¶iÓFôLˆêEbRQá>àà˜DÓºtéuœ/uðN(\º$ò#¬;a€‚'Eµ;Ý«@ðÞÞÞçÏŸZ…¦?ÊMÇM$kA1惑 ìˆ&¡?\OX»²²2„Pyy9á5WqÝEQžnU¹Ó=´Ò4[é¹sçâ ÝÉ“'ÄÇåV ¤~ %'EU;݃;¨;` ‘\ÆÜJ…; g©x†ƒ;—:¸ã«ì,•Ú1!ÔF¤Ñ ëßÿ‘ïtšWñN÷ xŒÆE“N5‘ýîôÅFV Ñ¢)îA×P˜áˆj«ó1cö.XpJîäÔ,\xÚÓsÙ‹””¿Ê¨ªª¿xñù¼y'ýýW;8ÌïÝû‡èèKIIox<¾¹‰îƒèÐíèèKóæ7n_HÈVOÏeÂ}ð]\”ô&7÷sS“•÷èá©ÔR,,,f̘ñêÕ«Ù³gãGÞ¾}(êÖ­Ûš5kRSSW®\¹téRšÕ—9a«N& :›Z h6ííí ñå)èŸ.øB¢DFF"„¾úê+ê*P4¤x«Í£¦ceeòùsµòò—”šD,×ÕÕ5jÔùóç?þ|ýúuÜUqD;˜Äª;Ñ1Ò™3gN›6MÒpX5ü‚¡À¤ã‹é_ô·.(( ®/xš^€#öÆÐ¡C…_:‚ÔÁP¸š §Ù%…zŸ0@Á« *üû÷ï…WÀ××wäÈ‘H–Qn1nÉZˆ"j ÍúÃõ„µ³´´´³³KOO=óÉ“']ºt©­­UeÝ%ÑÝB+M³•;vìÙ³g1 ‹‹‹3fŒð¸Ü Dú–œuÀÔÇIˆ¹ÏRù …¸s5ÃG“iÆ™P–búóæ¿¿¿ðÛvíÚ!мڂǡž#£hÒ)æÝ$wúb£S Š{'YG $QC75 RR>vî즌Ìwî¼÷äèÑoZ+#PPPqøðñã÷·o¿zîÜEEÜï¿{øpõÝ»+V­Úµ«»žž«V ýùçÈØØÙ‰‰Ërr¶¾}»ýáÃÕü1oïÞ‰sçöö277zÿ¾ôÒ¥›6]œ2åpxøž=¢[·^ä뻪oßmãÇټùòáÃw.]Jyüøíû÷¥MMF®Çöìýþý·¾þú·Ö†‡ïÙ·ï–‘‘Á‚ƒ._žŸ’²áàÁ)Ó§÷ h-ߥP6v÷nöܹ'ºvݸgÏà`¯+WÆÆÎ;¶‹©©!ÛÖ)ŠŠo:’í9!tn.¡˜˜˜ÄÄÄ›7oÆÅÅÅÇÇãšZ¶´²òáCéÈ‘{23 OŸž=`@;¶Íù/ÍmrGñe?RÏ”´“Љ¨WeÐÌñãZì>ÍM¨0 ¦¢ƒÇã¯_ÿÇܹ'‡:{v®££‹ÆþÔ Y·ˆf[G˜\Tó„©È.i?uÏšP±Ê! (¼RÖõu²^R²iºƒ¨¡E¡!K&—)6Ì0Gâe<8²>SCs/šû0²” -гʺo’‘ž˜P¥Nµ‘õ >¥.õù/šGÓ~$‹Z4]R¯-ŽÜsj… |ÎõTD~„7Î?ȺG"j(Çdè? LçŠI¢é~„š_KNÝß”L+õjˆÖ‚,à«ÃÍMu8?Èd0Môõu›̤W/ÏÞ0b!ÝûmÚíÛ™¸Ü:å †x¯>)éMMMCX˜+Öyû¶!äéi§ÔR>~ü¸wïÞ,Z´?âääôâÅ á ¯^½¢Î¡®®nܸqK–,INNÞ·o~ðêÕ«ƒ¦Nˆ¿XþËËË=z$ÕÚºº:@pöìÙ²²²o¾ùfذaeee¢eñùüØØØü±ê.\+SÇðýû÷2„¬vŠW„„ÙFFFnܸ¡NMMͶmÛ„W€¬Û&Z) ›%“GDDÄÅÅ]¼x±S§N®‹dr777:²áp8’…0dggãý(²ƒšŽŽÇÈÈ ¶¶Q™³èËÔ9àÈúƒÊT®²‘„PÉj´êbûí·?~,..¶³³ÓÕÕ}ûö-þÕ›7oœœœR׋B]’SÐn«àŒ‘‰äA5. #ñ<È[yK"&0„PSSBèÓ§O¢§á££ŠˆÂÞñoÔÇ;"##7mÚ$”bDDÄ©S§¶nÝ!zšŽŽÎÑ£Gïß¿ÿ믿RÔp¿<¨&¨À#O Ô¶h¶4uŽaØ„ ÒÒÒð39ΠAƒðæ’"'lÕÉ$AÇ©µ@'Ðlêèèôïß_(ÉGëñßZì—i`DØjAó¨Ñ8;·ÊÍý¬¼üÁ%¥&‘ ÂÇŽ{áÂ…3gÎôîÝÛÙÙ?èââòúõká9zzz­[lâ`llüõ×_¿zõŠÐ*pXuüBQQtZ ;Å¢¿µ«««Ôú‚¨àR!t:=\P¸: §Ù%BgŸ0@Á«*¼££cnn.þ9%%eóæÍHÆQnQnÉZˆ"j Íúc’„µC >|×®]¢ŽvòäIgll¬ÊºK¢º…Všf+Ý»w着ª{÷î%$$„‡‡ Ë­@D¤hÉÙÜA­ÜA DÑ ·BàYlÌPàÀ«™¸8ÍŽ ¡,Åôïêê*zÑ222ð yuhÌ‘Q7é„Q"úÝiŠf-¤>³@ Ùˆj¨óÄÄÌÚÚÆà`/Æs>zôîO?]û¿ÿ›Ð»w[Æ3W*†=~üvóæË}ûnëÔiÃŽWììÌ~þ92%eclììéÓû¸ºZ)ÕCC}WW«®]݇ Û?+k‹püƒ§,Z4(,ÌÏÎά¨ˆ›ðjçΫ3gÇ÷Áwq¡ÚŸÇãSÀåÖݸ‘±mÛ_£GïõñY9lØÿýöÛ“Ë—¹ukÙË—›ŽûfÖ¬¾;ºêëë*õR(ÂÇe»v]íÞ}ÓW_()©úñLj/6nÙ2¦CM}ï‚$*»éÎùRäI}sAåççGEEíØ±£OŸ>ëÖ­›9sfii)b"jBjÙÒÊĽ{Ù_|ñ“¡¡þÕ« ‚‚\Ø6ç4·ÉÄܲê3 {Ö’N$5P¡™ãǵÕ}Pó*Ì‚ihEùü¹züøý'N<ü¿ÿ‹Øµk¼¡¡ô=• áÏAݰIˆf[G˜\ìyÉTd —´ŸºgM¨XBåP„F^)ëú:Y/©¤1Úá j¨C™"d íщ è#ë354÷â ¹# AÉÐ=«¬û&é UêT M$b¥N¡U™<Ž>ôÕ¢é ”úlŽ"sêƒj`¤s=©¡ aû‰ýƒ{4Ñ“A´ŸƒfwCÓý5¿–œº¿)™–âjHÖ‚,à«ÃÍMub@üÀ \n¹¹‘‚™øû;çä1b´ûã¨ÊÂÃ÷äçW(µ,€ÿý›]»®öì¹c›˜˜‡žžËœé'LÀÂéOáóù Ø´iSYY™½½ýÅ‹1 ûá‡lmmÿøã‚‚‚+W®àK÷ð˜Ã0ÉåååçÊ•+555øëÑ’““'NœøéÓ'¼±$UUUøñ¨¨¨1cÆäææ¾xñ¢[·nß}÷†aHäåW’Ÿëêê ãââJJJ~ýõWCCúº:Ѳnݺ¥««[TT$¬ãÓ§Oq“„G„öA=xð    ///11qĈÎÎÎdµ£S²Dÿ¤®)Y¶•••ÞÞÞ!!!W®\ÉÎÎ>þ¼ŸŸ_¯^½êëëÅÊ¢¨aæ¢ÉE?744XZZ¶mÛöرcÂÌ%“ïÞ½[T6îîîx‡*YM¼ ~ýúåää<~ü¸mÛ¶k×®%<ˆIEO‹‰‘~Ûtì¸þ—_nÈš*11±°°âÕø2&M·þ"ùƒRg%S¹„ׄAc0iJ¦øipJJJnݺ%{þj¢ jÕ Þ¿¿hÑ¢Ö­[óù| Ã&L˜Ð¿ÿ·oߦ¥¥ùùùá<(š§d½/Ye¡Ý&Cªžiцaôü‚ð8D&ꙀÂ1 c/žysþ<†ÖØ(å4©ÐÈä-ÌœL`%%%¡ß~û­²²[¸XRõ/z2a˜ál?v[*túà8¸ûõëwõêÕ¬¬¬•+W"„lmmÄÌÀ0lÿþýøÄ-YÝ¥Ö‚¬îàd¤§§§¥¥I=õñµ-ê2ôu>eÊ//¯Ë—/¿yóæþýûÝ»wŸ?¾h5 od"LjZu2I [5:aj´Djì Í&NJJJË–-—.]úâÅ‹çÏŸ¯_¿¾cÇŽúúú¢çö%iŒˆ¥…摦"jeríÚKGÇåå52§„8Ã0.I„О¦¦&[[[;;»£G S­]»ÖÃÃãÒ¥Koß¾½~ýzPPдiӄߊÝ)Þ¿âr¹’ß‚Ãý_uêÿbDá E§8,,Lø[oÙ²E´,ˆêUßÏ/À¡é¢M·äi’Ž@gðN (Ã?³Ò%¡ÙHa€‚'†µÓíQà×­[–––––Ö«W¯o¿ýöŸŠÒå–ê&„µM%¶ …l`G4 ýáz²Ú[YYEFFÞ¿ÿÅ‹ëׯG]¾|YÅuÇT¥[FF¡•Æa¤•ÆÍ˜3gޝ¯o¿~ýĎ˧@šBKN #-9Œ£jš;@€DqéÔhäþÏÇgeHÈÖqãöÍ›w2:úÒ¶m-Y;iÒ¡ž=7;9-prZº}ÅŠ³çÎ=ýø±ŒíjÉ@UUý‰ Úåà0¿Gè½{¯V²m”̨Ϫ<Š9_±FøAêÍE  :4$$ˆ¬±±1 ""ÿVÖ¨ Ó¬QJÁÎWDG_RiË£6Q½ºM.0µì‡úLI; ˆð:È™³â>Z6ΣnB…Y0É"Ôè©CYxúô]`àÚàà^¿.’~¶bÈi`Ò2 Ñlë“‹jž0¡Â í—iWBåH 0ʇdZ_'ë%Å4íùÍÕ¡2…ö0±Øí[,¹èúÏÔ`”áŠX‰÷å-Õ,=«Ûî"‰P1i7hѨIŒè'VPê„Z¥n'ÅZ`©6c4$„Ÿ¦A ¤ÓW•úlhÝ©e@67A #;–L˜0!\=Æç)®'~‚‚ò£ØÌ<ê<éÉP< ,ëÃTåGzzz1LÄíRóiž-9Ed+™–ðjÕ‚æ|–Æ?!Ô¨-£ê¦:ˆ”4Î6{ö&O>$SInÝÊpp˜_YY§`>R),¬8pg@Àš””Ê. Ã0ñ…Ñ3gŸ:õ7VLåàÁÄ  uò§§±’lÏž=:tÀ»7.\ppp(++kllܸqc›6mLLLzôèñûï¿S÷:0 ûñÇ[µjÕºuë}ûöEDDXZZ~ùå—ÂR„gòx¼Þ½{›˜˜àǹ\îÔ©S---­¬¬f̘QSSƒÑÐccc=<< |||âããEËš9sæÀEë(<<<–-[&i$BëÖ­###EWŠÕÎÖÖ–NEË’©ûD–muuõ¢E‹üýýýüü¢££kkk%Ë¢®”dædテ͘1ÃÄĤººš"ySSÓŽ;<==[¶lÙ£Gá›éô²>ìêêjmm=oÞ<á(›ØAL*²Ó}DÄyóNÊšJêèªj|£¡[I!ûA)²JOO—µ\B1&çŸ'Çä0@ˆÊ梠Uf.DGG' àÑ£GøWeee“&M²²²rppX°`.Ƀ¢yÖKR]•…v›•ít~! D&™€Â1 c5žy Â'QAÞÂÌ)maaááá/YwÉê‹é_ôdÂ0 ÂÙUítÞ!D(ECCCU«V…„„Œ?^Ì <ð°0²ºSÇóÉç*Ûé^eC"„²Ó6&â22鼩©iýúõFFFnnnË–-»È„7 ‘K¶êd’é™Ò‰Êvº‡fSHrrrÿþýÍÌÌ|||¾ÿþûêêê:ˆž@˜ŠæÀˆdZh‰Ñ„î *æß¾)sJˆó1 £á’ÔIÈì™5k–‘‘‘p ^»íÛ·{{{º»»¯ZµJt~JìNÁçóÍÌÌÞ½{Gø-8,ÐÿU³þ/a§•¬S|úôi777[[ÛE‹‰.'«/^@†ªö/,ˆð4BG:ø‰ÂÉ…cÙgÕwI¨åGØ%Lj$ Oˆ wºWàëëë/^ìèèhnnQ^^ާ9Ê-ÕMkA6惑ìˆDs¸ž¬v†åææŽ3ÆÑÑÑÔÔ´k×®Â'íUVwѬÈ>3¥[•ít­´êV/:11!ôË/¿ˆ—Od5…–œ•ìtî DMÜ$ÂÏj7òž¥–3pçbßÅ0_eÁÑètLÈt%i$ŸÏÿé§Ÿ<<<ÌÍÍoccƒŸš'@…;݃àqèÏ‘6é˜DÔDö»ÓE-ÄŠ–i…ž¨P1ò5×yaaeëÖ Ïž}"GZ ®^MsqY´`Á)f³U¥¥ÕqqOfÎ<æí½ÜÁa~ÿþÛ·nýóÙ³\>_á3êG}=¯°°âŋ׮½|÷ŒÇV¯>¿wïõ3gß¹“•™YÀå*}9wîd͘qÌÍm±»ûÒ%Kb“’Þ0°ê‰%ÔjUžäœ/a#š'õÍ娱c-Z´ÈÊÊyüø±ŽŽN\\&{Ô„iÖˆ(955 3gsqYtâÄå•BŒÚDõê6¹ÀÔ²ê3 C8É…¯„×AŽÈœ÷Ѳqu*Ì‚‰~fräDµû!ÄÄSƒQ†+’C=dÃþJ]ªAzV·ÝEp$…ŠI»ASJ‹}û‰+**”:F¢UŠvR¦8Aô3…„L®zÒì«R<[‡147AÊvºWÙP‰äõdD?øiÛ£šG¶GámˆzL#X¦+FçA`¦üHe;Ý7Ï–œ"²•*áÕ «ÍhV ƒaL…;Ý7OÕAü ¤q¶ÐÐmÑÑ—dJ"IVVƒÃüŒŒ|ó¡Cuu}däA¥×®½TAq4s8Ø¿S°#4ÔwåÊ¡ˆU~ýõö·’“×Ë™>2ÕÖ¢ 4ãõë×mÛ¶»DÀ„ê’Srúúèøq4a“ö)-[þ¼r%õÎ2¥º}û¶"E³åËjÕ†°eÌçÏŸ_¾|ÂápÉG£•h ¶ÛŒè¢€YÔ.2…ÌÁ˜¼/\@£F¡ÆF¤¯¯A åò‡ÉÆŸ‰v›©¾C³õŽÆÆÆäääîÝ»³mˆ¦Â Gdddðù|EìPO˜Ò S¿/#±7ˆ †É€©ˆZÉ °£[7÷Í›GË– â|e²jÕªÜÜܘ˜¶ Qw ÿ êÖÏ/˜ˆ¢õc‚gh¾‰‘Ñ‚×v˜Ò-3zƒV`õjÉaµy]˜ùÏ´ uœ ˆŽ%._¾Üºuë:àž;w.::úùóçìZÅ8ê­1—žbQ“_4Öu¾{wÂÞ½7RR6´lÙBÖ´dœ;÷tþüS“'÷ŠŽ©è‚¥!`iiy7ofܼ™ž’òQWW§gOÏý hçìlɶuJ¤¨ˆ›’ò!9ùý³g¹))jkíìÌ»vmÓ¥K›.]Ú´mkWUUWTÄýç_¥èçÏŸ«ù|žO‹zööæ¶¶fÿüo&üìà`nff¤âJ?ÿììÙ'™™¶ÝÆŽíbccªJVå1ˆzˆ’—W>kÖñwï><8¹wo/eADõ 0Îhj÷Ô! x<þªUçNž|8wnÿåË¿ÔÕÕQv‰ˆÁõáZö5êö|èPuÓ3ì.¢q(xµÕJJí«J"ßÜ#>Y[[{AóÇç•a€R+¥¤g™ò#}}ýãÇOP8ng$ÖÕ¥V¨ÛÕ`°·xáÂ…Q£F566êÃ(G3CMâ9ÆÙ**jÛ·_³ÿä¡C;ÈPoß–ôîýCBÂb??'Eò¡IccSTÔïW®¤þøãW£GwVA‰4[ôÄþ.-­±µ5cÅQtu9€m+`’ï={®üXÖºu+¶m­ÂÀÀ¶¹Å ó;wîitô(xÆC¨¯¯ÏÏÏ?räÈ©S§Ø¶@-€ @ IMM]±bÅñãÇ}||RSS׬Y3wî\¶f€¨I•”—×ìßsÖ¬¾Œos?ujï ÂÕp.»²²ööí¬›73nÝÊ,)©rv¶ õ7o@ïÞ^ÆÆl[§êêÓÒò’“?<þ>9ùý§Oå!77ënÝÜ#"ºuéÒÆÅÅJô|cc;;s¬x<~YYuEE]q1·°°²¸˜[XÈ-.榦~¼~ûéSySñ>øFvvævvfÿü#Î_Vjj^ÅÅ=½};ËÔÔpذÀ­[ÇtéÒF …Ô\¾übñâX''‹?ÿœïæfͶ9€êàrëfÎ<þðá›]»ÆGDÀ¨;07Ñ g4Û·³tt8}ú(ú‚UCéè¨â}!½}û&mÜõ;—[?ujoÕ” @3D|§{>Ÿ¯«Ëþº‹’’êúzž¡¡boÙuÅÌÌlæÌ™tj ]º´iÕªe|üóï¾ë϶-*B?(ÙJAÉ×Êi·º@4ÃvhV€Â-ä d€w€(à@'@3¤Ê~øð Ý»nßÎêÛׇm[”””4räÈÙ³g÷íÛ—m[4€fè° x Ý€Âœf àMt ¢€Gª$Vì-\ ²téÒÚÚÚððð’’ww÷iÓ¦i¥ @óͨI‹wvuþË/7 ôfÍêÇT†qqO,8õÍ7ÁëÖPŸÝÆy<þ£GoîÜÉNHx•]hbÒ¢_?ß%K¾èÓÇKl“wí ±±)%åCjjÞ“'ï?~[TÄEyyÙ8ÏœÙ7 ÀÙÏÏI¾wèëëÚÙ™ÛÙ™{{ÛžPYY‹ï}/¶~q17?¿‚Çãã§µh¡gaa,¶÷½ð³­­µx¸Üú¿ÿN»t)ßœeà@ÿǧ††úêëëÊQ) 9 ÎEUUý† ñ§N%M™Òsݺð-Ä¢vQg÷B4K´¹¹Ÿ§L9\UUéÒ÷íÛ;³m ŽÚ*Gn4ËA€Ð3  ª¥9+°™ÌM(eHEåלý` 8š?œ?ÿ¬W¯¶ffF æS_ÏCªn[G‡³~}¸‹‹ÕêÕçóó+V­ª²¢hVpÄvCöó[½téS¦ôbË œŒŒüþýwܺµŒlŽ"#Qm-ºpi»@-Ñ×GÇ£ ضC:7Æ_¹’vïÞJ]]º¯»}û¶R ”ÇçÏŸ_¾|¢à‚ZP M0£gˆvµ…‘Ȩ!. Q£Pc#ÒWì}lLåjí6S}`ŒŒ >Ÿïïï¯H&àÚ c¿¯æŒ Bš ¿_G‡sêÔ,ÒhNí@:ÐÿÄÐø$x ¶€ÂæCóMŒŒöM˜Ñ´Ò€ÖÀHK㨠S÷ð, ÆWfSë^]»ºkß^Òùù/_æ=þ!9ù}Jʇªªzccƒ€€Ö­]ƒ‚\Z·nŶÄûàãŸE÷Á70г´$ØßÄÄ033?11ûöíL Ãúöõ6,pà@33Cvë¥$`UžÂøüË–ijâïØ1>,Ì©lå¢z@ÙÀ8 ‰(Yo ¯æÎ=áççtäÈ4KË–J*… ˆ4E`J? C@€ÝEvaD±ZŒ‰ŒŒ¬­­½ãóÀ¿Ñ××?~üø…ãv¦òš.\5jTcc£>Œr¬ ã8[AAE·n›öî4|x ‚%_º”2wî‰7o¶«þÅÃqqO.<5iRÏèèQÐ…€qÄ—™›•—×°bŠ(nnÖúúºééùrît€Z2yr¯Ã‡ïÄÇ?5ªÛ¶™Å¥ IDAT€8Ó¦óÍ‘—/?ùû;±m  1¬XqÖÊÊdÚ´`ųÂ0lÛ¶¿öì¹5`Ù²/ÏPnìéÓwø÷/_æéëëöéã½bÅà`/WW+ c–¦&ANNÑ«WŸÒÓ?½|™ÿòe^EE­žžŽ··CPKxxP` «——®®Û–þ sscssc²'pëëyEEÜ¢¢Ê¢"î?ÿ*ß¿/½ÿu~~yCC~šŽÇÄÄÐÅ¥Bèά¬¬BÑ ñ-Õ­Ö@H~~ÅæÍ—.\H1"è‡F«~ƒc€]~ùåÆÖ­ôã_hÛK˜P~ùå¦ÙàÁ ¼'7÷³££¥ê·¹GÓ™ÃA œâp87ŽÔÑÍî`ñyš6m¬ß¿/eÅQŒŒ ºtisófÆÈ‘Ù¶Æps³9²Ó?þ=lX +ý+ `Ð ÿîÝ=V¬ˆ»x1ŠÃ5:€tΜyríÚ«?þ˜gh¨¯`VUUõ³fôèí¯¿N2¤#æÉJqqÕµk/ïÞ;?§¬¬ÆÓÓvРö«V íÒ¥âTªªê32ò_½úôòeþ«WŸ23 ›ôôt<=,Ìm‹U³cÇ•Ÿ~º6kVßÕ«‡ÃÖl(‰Ëbb®Y3œ‘×ì={öÞ××Añ|äcôèÎffF3f«­mܹs<Œ¨À â¡’««Uzz+¦ˆÑ«WÛãÇï D? •êa“@#V†-[öeß¾[÷í»ùý÷alÛâ¬Y3|ÈŸþü3uèPv¶ 4ˆüüеkÏO›Ü©“›‚Y}úT>yò¡ÒÒ길¹AA.LX'99E7ndܼ™‘”ôF À‚‚\¿ý6$4Ô×ßßI£_/`99E©©SSóRS?fgUVÖ"„llL]ÂÂÚ-Z4ÈËË^ûömÏË+OLÌLL̼w/›Ë­·±10ÀoÅŠ!}úx·hAµ K}=O¸÷½Ø>ø••µEE\á™ûà;:Zèëë*¿–@󥾞ópïÞ›uuK—~1mZ0H@ù¨cz(þƒ]ù јÁÜÜX‘<ù|ÁÊ•ç~ÿýÑ–-c¦LéÅ”©’¬_ÿ‡yddųjllºw/{ݺŠg%7aa~§OÏž8ñ×ÚÚ†½{'iÙ,"¾¥C—ßOª©ihÙ²+ :´ÃÎWoÞÌ0 »–€ú3ò—ŒW«™˜´077633²°0277677²°067727Çÿ4Æã'0òN09pt´X´hð¶m äïãÃÚûÄ€ZO™ÒkéÒ3;º::Z°m ¾ðù‚E‹N[Z¶\ºô ³º};kþüßMM ÿø#ÊÍÍšó¤RZZ}ï^ÎíÛYwîdåçWXY™ôëçóóÏ‘!!Þ m<Ê"ee5™™99EYY99Eééåå5!{{s§)Szúù9µoïìêj¥Ñ;øRTT™”ôîñã·wîd½~]lddЭ›ûüùƒúôñòõu Y_CC}WW+WW+Âoš**jÄ6Á/*âfgUWa†Ÿ‰ïƒonndoonkkfoofkk†vr²41aùf@s©®n8}:é—_nTVÖMœøÿìy|åýøgï™ÙÙÙ{³¹ $@ ¢ªV­UQŸ­ØB\OléåOmŒDØt:‹Z,Æ¡qBáhÁï?ˆŸe¥U«žÚºµç¹ç~´tiÄüLQÞ{oçš5_<õÔª×>D6oîåä“gùK 'œP÷׿^yùå]{í³?|9Èî GK§6'“ɾÿ~Ç™gS”©ÌœYö•¯Ì|òÉ÷ÁtåöåUìÂ%©”LŠ©”J‰É¤3»v…’I!•S)!“ÉiŸBfU…OÓªŸT-ùÚ]7akW­Zö¯µüèGY³æF’4á+À‘óË_.߸q×5×üõ¥—~l2ŠÝ D¹óÎÕ}´çÕW¯±Z_ÛNgï¾ûÍG]¿bű÷ÜóM› ÃGQ2›7w®_ß±aCûöíýF£aáš+®øÊ²e sçVéõ“LþžHðííÁŽŽA¯ýÎh”Ã0ÌfÃgÎ,kl,?õÔ9MMMM•n7UìÆŽ=ù|~÷îðæÍ›7wmÞÜÙÓ3™ ÍÍÓ¾ñyË–5.\Xc6rE‹Åb,+³—•ÙG¼WQ2‰ÄüO>é …R‘›ËåÕ×Íl[^î éñ= €IJ[ÛÀ3Ï|øê«ŸbvÉ%‹üãSËÊèb7jäLÞ€éÇøÜ˜ä4g«¯›]z)6JáœÞÞ0„BŒú,T8gèÇ®n›LÆ[nye` ñòË×47Wï×àè'a¯¿þo—\²øë_Ÿ;&/øÜs›,¨©®vÉ« ‹×?õÔªï~÷qÝ0V.”»ÝTSSåºu;ŠnºÇ0ìòËO¼úêgÚÛƒþb·J— ¦¿ä±ŽÜ£ÚÅÚª*—vᶢ¡(¤¼WmøÚÝxœëìŒ0ÌàEÉhßÂd2X­»°Ùp› §(\Ý°Û ŠÂm6‹zœ¦6šýÇhÔ?òÈÊÓO¿÷¦›^|øáËuºIþP,Âav` ¤úûî~¾M(v‹`döÆe/ÙTxœ‡™@ 3tÄò +ôp äHé-ÁŽËgw¹¬ÌÎÀ~ÄÒú|”s:I8;ÌÕ/Ýø¢ÓM¹\”ÇC¹\V§ÓêrYÑF©åÉ„ùÿþï;ç÷àM7½øÀ—À<60¥¬ìžˆÓK»\VèüÀ”åc··Ð÷”<Ž>Úsæ‹>¯×ævSÐã›×cVëºíÍï§=tx€IÇ1käñ ŽòrGE…Ãç³Á…*¥Æ³Ï~ô§?ýçá‡/_° æ°_dÇŽ«¯~&b{ì»gŸÝïÌŽíà üê˜+ÿ>ï6 Ãhš@§†ÃA:V§“t:­érYNÒf#P5š&FÚë¥ü~‡ÇCù|6·Û†úühqùÑhô?ÿùÏ5˜òŒÕì"|JGÏ_õÖÿ½³ù|Ã0³ÙX^n¯¨pTV:++H_Yé,/·;£ëí`˜(ž'›ž çÏÉD礣M™Èœtċݨqά£‘€zŸy¿Í„åŠÝÃ0Ña­&ßv“÷ba{±ŒÎŠcó:›ÿÅéÌ­&o‹©¬ÅäÛf*ûÉ5ǤÃöîÀäã`ý|Ë–ÞÛnûûªUË.¸`Áa¿É‹/n¾õÖW§O÷¬^ý“™3ËûuF$a·níݼ¹kóæÎ­[{ÓélMç„êî¹ç¢eËËÊè±}»ñ åöì ïÚjo"Á=r›º\ÖÆFÿüùÕ_¼pæÌ²††rŸ¯Èɰã ÏËmmÛ¶íݲ¥÷óÏ{º»£†M›ænn®¾æšS,¨9öØifó(qË¥„Éd8€ÖðTJ¤ ‡´<øýý‰LfŸßá „¶ê¶ÏGV-¢òJψ $×®ýbõêm›7w„ù´ÓæÜ~ûõÇ_;1mãy9f¢Q.åd$ÂÉp˜E3çÑÃŒF½ÛmCŪª\ Ôx<¶òž¶Yw<£ú£Œ÷-Óî²-Y¢ô-‘÷.Rú­ùt±[42’”ŽÅ¸H„Åøh” ’‘ ¥Âa6fÂaF’[n2~g®¬yžqcÀ` ê­Ç¥ƒÅnÈäãÀü>Ú½jÕ“ååŽk¯ýÏ+|uMÃ0»q¨0~|i¥ôCà¨ì"@™¼ÑbŠ’Hvt»º¢‘¾¾x ŠÇ9–•%)­“0 Óétƒéõ×_m eBÐ[,•8>Ã`pÆã/^3Ñé ƒ=“‰»!%J:í¶ìÙîêŠõõÅÂa†a$Q”Óél.§í_†a8>û²Ë.»lÿëMÎ`4ºŒF·Ñè1™ÜF£;}1—ã'ô7)&zƒÁ–Ëqù|vüßKçv_$ËÝ‚°cRÿ…3™\"Á'|"!$<úL ‡ÙPˆ‰ÅXdÛSM5ê)˜å(Yž!ç­ÃkÏ‘v]Ú㘄2“ßÿ~Íìzå•kh“|üñ v;yÖYóÆäÕÆ„eËUÙýÃ_>jª À! +¼FÄ0IJüoV­Zvà g¥MZÖ¯o¿ä’?½öÚu'œP÷%ž¶iÖÛ;nFfMK|Õ;{î?Ñd˜ÒNÒâp شiË¢2¤¿gC¡T4ʃL4ʆÃL(ÄÄb\:=8ñávSÏ`ÖºÇCù|´×kóxl~?ívÛ<JõΆtâ#÷}2) '>:Â0"ÃHÚü»‹ë—Ìœÿã#fÃŒL)Ÿg†Â“I‘aŽ“%“Ë^z ,#Išišp87ÇjSö¬Hã;i²š0:HMiÂhÃÇ>†¬ÙÜÉüüÅνqùé+g-m5Ž˜`X);pü²$#©ëañ8h7™ä AccCICâ{‚¦ »1oOEì„ÁNí„QÝ  #MLP÷”\k·­—Û¶—ßÖËuF¤|>_ãÁ›§QÍÕÔ·ûä$HtJnƒ=P^ŸL ©”H©”L ɤˆŽ íTJÐ>Åb1¢ºh4Ûl„ßOMŸN„™ La&IA˜ ÂL’f´API˜4˜Íf»ýˆ¾ÁeYff¬Ú”&G>[‚½ò 6lzJ /Äôƒs¶¹\^3S؉nµÇ ÆØv;a·“4M 1¶:ä¶Ûñ¡ã$Mãèø‘7ù…6ýìg/^|ñ ÿýßg»ÝÔÈêïÇ>üðÈß J„8Ÿ -\–H‰è‚]ù]ÿ¢á}á¹i³áHy*]9¤]ŸqÄCN«ÑAýXÒd1Â2"0 Èçó »/^?}¡) XŒC‰„sU[,£Ãau¹PÕ7«Ëeu³ÎDÈi59­F'ipZMN«ÉAaÑÆÎU©›zu,Æ…Ã,ÚŽF¹H„E=\ýœ7›ëÚºÝV·U} ]ú´+Üç¦LnÊè¢LNÒh†¥y 4©¬”Ž[‹qÁ s± ¦Ô#fІj¢Á0 ùîÑ­ÏgCÛ$i¤i³ÓI:¤ÓI5µ˜ùì"\¥G••ØI'¥ÓÙp˜HÉ`éïO„B©ÔÀ@"aѸ… Ì••¿ßQQa¯¨Œ·©ªrú7¯wÂê'0Q´öño·ÆÛ„íý|OLÎçóevóìr²©ÒÚTe]NÖûc)„XkæiX¡8Jù×¶ØuÏî®p˜µ¢æ´&g±›3™9ò³lÊèÂLúÿÙûâ¦ÐÒFÇß®šSj¥Ke%vÒIGú"ãÍËÙÖ>¾e/ײ—ß¶—ë ‹¹–±Ä±‹q±3Ñ(‹ñ¡²ñ8 1Ñ(§ÚÀ ÂŒ*(ø|¶²2»×kóûíU^nG%¥GX;˜ò£ú£’ö€ðüÇ¡©Á ×ÍŸF}¥Á¾d¦}A-=añ0r&ãÒQV‰²é—Ž×ωD9uå7ac1NÍÚFe¼^µê9Ö¿ÊÊìåñPn7ó<ãÊ­¯týýÓÈ߯Ÿ;»bôZ­SQ|‡Î;ïì¸êª¿œxbý£^A’#‘åL2É#÷}(Ĩ|´=~|ˆÿŽœ#Ï/€~”`ŠËö@†adYÃöŒ ù|^•5qœ‰p{ö$º»ãá0›Hð #ò¼R sÐëu&“Ñj5;V‡ª¬tN›æš1ÃߨXVYét8ÈM›6õÃX’ÉäÚÛSÛ¶ÅZ[<Ÿ®¬´67»O;­ÒPìÅô;“<²ãS&Î$›Í B†ãÒ±˜”L¦FN$äDBÉ匢˜åyY–3™L6›ÍWêt†éŒF=Ž›HÒìrQ~?][ëihðsLõŒ¾µkßÌfs±˜40 ƒb ðѨ”ÍæqÜà÷“dy9yüñÞ©ó…»ïÞzóÍóËËÇý"Q³o¾Ùóé§‘t:7w®ë¤“Ê%ýšÉä!ÃqžOó|†ãÒ55 ɤ¸¿Çƒc˜}Jt‚0{<”Ïgs¹(5Ê×í¦%Ïí¦Üÿy«Ø$À¨¬ß™|êýàú‰\[2Ó~Î|÷™óÜ.k)þ£Gz¼òʧ?ùÉswß}ÑÊ•G¼8Ža†uwG¿úÕ{~ýëßûÞWÆäÇ Ú¯¸â‰sÏÿý—ÀJ ‡Í¦{ ÃîºëÍçŸß´qã-v{ñWÎV®üswwôí·6¶QÀ˜³fÍ«V=ÙÓsïx”°Æ ízm2)h¼R)q` ÁqƒÓ¯Ã¼4+¸‡_ºüÑG×ßqÇ+WžôÝï.Q” Ȳœ™ã$YÎò¼$Š,gF”¤´,gR)QQ2‚ pœ¤(–•AÖºT 0ô…“¤) Âd6Òb1⸉¦ 7„‰¢p4q†úe!I ²ç„Ùl.¥Kb& Ú˜žž˜vWu¼j#`¦Owû|´ßoŸ6Í]VFðg2³ÿó?ÿxå•OO?½éž{.*/w»EcI6›‹FYm\W2)ªcmÇ6ô5Ú˜AíÞ©Ô ò8•BdQ=Â0bÁ]ÚkƒAOÓ„ÝNØíZ¡á~»èˆÍ†ÛíĤ;›¢QîÖ[_]½zëòåóï¸ãüRN&FƒçeµK9¾Q—FúoQÛÿ³ÙœúD½^‡º±ÚŸ ú9êÕC·Äˆ™#’L Ÿ|ÒÕÒ²·¥¥¯¥eo(Äèõº3ÊæÍ«š7¯zÑ¢ÚÙ³+à:˜0$)}€otD–3èaÚ0bº8µÛI»}ð4A•$Ð7á¸I=èvÛ þʉF9í0;ØøA{d´ÁúuÛo¼ñIJ¯\yÒ¥—.®¯÷MÔï ¥:7Õe¦ÑNÌH„ÕÍxVúý´ÏGkOI—‹‚kU ôþ …Ö[ ΂Ph_áh_Lhú.iÒAQ2‰¯voui@»«âcCIàjßV{µÚÕËË4ñ—€Ñ(Õh?ÌQoŸLfðBCý$W´#™# ¡IJ‡BLoo Yízzbè#½»;¢æ:Úíäôéîá!:••NxãD:í쌴´ìíèut·níDXƒA_Uålhð£Åú†ÿ´i.¨£”‰ÿýo?ýôÆææêßüæü ¦»EÀ”ƒe¥|ç‰'6ÔÔx~ó›K—6»EÀ¤$å¶lé-^nÞ¼ª¦¦J«ìöÀ‘òñÇ{~ðƒ§fÏ.úéFêîŽÞwßÚ¿ÿý³%KfÜ~ûysçV^3òù|GGHíðí톑pÜtÌ1ƒ~Þ¼êúz_ ^ûpœÜÙnovt„z{c==±žžŠH÷ùlåÓ§»§Ow74øüSaÎM–3Û¶õvt„ÚÛƒ--{wî °ì¾ec£¿¡¡lΜJŠ‚¯¡õૼh¢ ¿?Áóƒi’f³Ñé,ôà«ÛÍ`(¹Sæ¨'J}üqç¦M{>úhOGGðٳËO>yÖ)§Ì^´¨ö0>Ô…-5“kÿU€”,gÐ#F=OAK¥e”‚ |öY÷† ï¿ßÑÚÚ§Óéšš*—.mX¶¬aÑ¢ºÃ+]“Ëå#F›«U“£MÝÂ0Œ¦q¿ßVcÕk·~¿Ýç£Âá°ŽIàHÈfs?üáÓ›7w½þúuv8&<ûìG·ÜòÊ·¿}ÂÝw_txCÜbyðF#΢ŠkÚ€ü`Ù»7r‰„Àq’ (š4† ŽXL&½ÝnµÛ §“ôzmUU®ÆFMgÆ ¯Ïgí‹E,Æ­YóźuÛ7lhÏåò'Ÿ<ëœsšO=u¶ÛM»iƒtwGO:éÎýë†ùó¨8SÉdrûÑÆ»|>ÛE-üÎwNœ6Í=®oŠ”‰„L¢>T},Æ¡ u¶Ã0“ÉàrQ.érYÝnÊ岺\”ÓI¢[¯×ætZ].ë¤SÇÑå̆ í«Wo]»¶•çå¹s«N?}Î…?a'ÅaðÎ;;V­zòê«O¹ùæ³Çê5üã¿nÝÚ»~ýÍ¥9½€d÷çwì}÷}d÷#›î9N^¶ìî3ÎhºçžoN|› ˆÅ¸SNùßå˽óÎ ŠÝà@€éþ¨¥…B…Ñ](¦Í(¡GZ,Æ¡ˆýl¶Íã}é¥OnºéÅ“Ožõàƒ—ÉT”$¥e9-IédRD©”(Iƒèˆ$ Ú‘6QëO”¤Ì¥ù‹ÇÍ8n´ÛI7¡Ôe´ŽŒxŽ›,“ÃA ±>¤$ÀÑD6›ëëKhcYÔ¤Y5äQ¯×UW»P~¬ÏGûý4Ù—•Ùý~;„‹•¼ûnÛÿ÷+©”ø³Ÿùýï/,sv( r¸¿cx… ÆËëÕPÈqŠâe˜}N¨TJ<°ÓPëMÃ0Ìl6"W¸ê§éA›!M4£»¹óö"ù|þoûøÎ;ߤ(Ë]w]xúéMÅj 0‘0Œ¤éÃ=<™’I‘eÅ‚îm2l6\­î vcTá)•#¶»;ÚÞˆÅx›9Ó¯¦êA® 0Y`Y‰aD†Fb1•‡vÅTJÚ¼eYQ½DE„4ÛlƒçˆÝN,, ç‚‚ÆÒ 3òe£Z‰*™%£}.Ž›Ð#! 4x0›Û¶õnÚÔ¤fÏ®8õÔÙg5oÞ¼*Èm€CDµkÓqZ¬âP*UÀ\+0)@Y²}^]„=hY5)}xÿ//·CÑn ¸ŒXõ¤`W› ®ýlW% »Pé(M†ÇÏ(r†wum°áà%E(”R•¡¶¶t:KÓDc£_Íèž7¯òrR µµÿöÛ_Û¼¹ó‚ üò—çú|¶b·˜d³¹çŸßtß}k³ÙìÏ~Ö·¿}|‡N,Æ}þ9¨í‰#ŸÏ?þø†ÿùŸÕgœ1÷¡‡.ûRC¸|>¿~}ûOlxï½3f”Ýzë9_6`¸@m_àC/Mµ½,gÚÛ==1d´Gv{Næ™3˦Ow74”54ø‘Ý~ŠxŽ ¾µµ]#´´ôuuEÒé¬ÛMwÜô††Á „RûWNvÔiÞárÛ@ ɲ’úȘmaÆ`¬ˆÅ¸mÛönÛ¶·¥eï¶m{ƒÁ”^¯klô/^<ã„ê/®?À•Èó_Pø½*²7™ mÒ+ˆì±…ãä-[zõþ‹/ú Ýœ9ƒÖûÅ‹ëÑzP>Ÿ‡™‚¥%mMAÞ–¶ßjKŒkXai² IéK.ùS zãëËÊèb7grsß}oÝÿÛ7ÞxÆ7~}œ²õÁƒÀ’Íæ¢Qvø…€&Æ’O&EÙ§9Òëu(E%›Í¡ˆbs»)§ÓêóÑeeöÚZwCƒ_LŠë‚PˆY½zëêÕ[?ÿ¼Ç`Ðõ«çœÓ|úéMGÉ]g2¹úúŸÿñ—®Xq\±Û‚Ér†ã$”aͲ2ÏK,+qœÌ²b J$ødRd‰ãDŽSA–å´,g Dû£ÓiDƒF£ž$-6áv“n7USã5«¼¦Æ}èÂ|>ßÛïè ho¢N7©Ó›(¢¬¬äê.‹Í›;W¬xhË–_Oüߤ³3òüó›^xaS"Á/Y2óòËO<óÌc¾Ô• 2`$B"Á«ÛªË^»«í‡ƒÞá ].+RÕ»\V‡BÛš#6È(JfýúöÕ«·¾ýv+ÃH þåË›/¸`Am­·ØMÛ÷ßï¸âŠ'–/o~àKÆj.âwv¬\ùçÇÿÞYgÍ“Þ~»õÊ+Ÿ¾ä’î¾û"P&pŒlºÇ0ìÅ7ßtÓ‹kÖÜØÔT9ÁmÎË/rà Ï?óÌ•§ž:»ØmFL÷ST TkÂÕ¦õju hÕVN¡®Ý‰_üâU‚0=òÈÊ"V¶T”Œ(*,+ËršçežW%Ã0¢$¥e9ƒüø¢˜æ8I–3F>ñ¡ãȘ,±¬XðÝm24f|ù ÷׈v;nµâeAÞä1©g°{wøç?é“Oº®ºê”n8ƒ$‹&ÜJ–Ý×¥S)qh[b1‘à{{ãèë‰ãät:3âµ¾êûÖª½m6 2æÛl¸ÕjA6OŠÂív‚¢pHÆ&F9¤¼?ÿüuuÅWÞ¿óÎŽ+¯|jÅŠãî½÷â±Z»‰F¹SNùßSOýÇ?^:&/8~¬]Ûzå•OýàËn¿ý¼b·€ÉǨ¦û|>á…ÿ‰°o½u£ÕZüð¾k¯}öÝwÛÖ¬¹¡¦ÆSì¶#¦{`8jïˆ^Ý‚¸"£ÑÍæ|>Û‚5å厂ø ¯—ìÀ²’¢d8N„}®|IJ3Œ˜Éä(_Ó‚ ¤Ó†‘²Ùr$ ‚"ŠŠ¢dXVÊdr #à]Ìf#A˜IÒl6l6Üh4Øl¸Ù¼ŸCß`Ôå[­7Y,Fä*Õ4⸉$-pÚS†‘º»#Úø5Uý˜B±C"{»6‘Œ€Ù±cছ^lmíÿáOþÙÏÎïL¿t:‹q‘³Ñ(‰°á0‹q¡r‘›HðꃭVKYíñØÊÊh¯×æñPåå·›òùl>ívOÖ%ÏÃ}çj~ö“ã«6C­(?“Ùoi$Íe±Zq› §iÜjµ ‘q»@*dt„¦ $JF¢|ôtEÉ<ôÐ;?üî¬Yå¿ÿýÅsç¿Ò0)P”ÌÖ­½(m©¥¥¯³3œÉä|>[só´yóª-ªkn®¶XLjÇÖ®/¢Ž­ªÀ9­…‹' _ùÆq2à£Je±Ù{8’æ«»¨“Ó4NQø”ú&5¢¨hN ‰ãdt‚‚Ìq²ºËó2 I¥Dž— ¾0 3õV«öc#û}ìkv÷}GÀÉ“ YÎ0ŒÈqR2)nÙÒ³ukO[[ ³3"Ši“ÉàrYiš0õ:N–3'1Œ¤•#Ìf#6UY´á#¾ÍfAÇÕKK«Õ ³O0APPì, œ-ˆ£Õîjø†Y­U‘l·“H&KÓÄÐî¾ãv;¥)€ÒD’ÒHysñ8 ñø~r|5IFû,“É –‚@±ãHޝF–«»Pr(’”.ЂßÕf†#¾úa^ G»"”Ãû9Z¡F¹Žá0ƒœ_êãµ6|Un¢Ö«v8ˆIK0‰8 > ?€#!Jut„PZxKKßž=ál6g·“(!e†77OÛ80‘HRú‰'6üñë<Û-·œ½|ùüb·8 éé‰Ý~ûkëÖm_¾|þÍ7ŸU[[ü|u 4‰ÇùÏ>ëµ=P\%óÈ#ï=øà;޼ìØc§ʳ$)ýï·½ñÆ–wÞÙa0è¾ùÍ…ßÿþÒúzßž2‰Ôö‚ twG»»£‘ÎÎÈž=áÎÎH,Æaf2jk½õõÞº:_}½·¾ÞW_ïs¹¬ÅnòÄ¡(™ööàŽmm;vÚÚb1N¯×MŸîijª˜3§¢©©rîÜÊòrG±[ œ|>rÑ(;0ŠFÙ@ ‰pÁ`2FÛìp>Ê‹ÜÛ1¥¼NŠ’Ùµ+ÔÑÚ¹3°kW¨­m §'†a˜ÇC55UÖÔx*+)Ií´9JA•å}«ü4ûýíÄ8ˆì F­á­fjK/ y¥Úi ½ÇC!õݎ B:‘໺¢É¤@¦¹s«N=uÖ)§Ì>æ˜*(é=Õ…Rç÷×K½øâI²¤Íž%H6›ûÅ/^~å•O|ð²sÏ-Ýé)dT>LRÒé¬*¯O&EˆžJ¡p\tPP$bÛlEYÂd2 }.—Ïfs(U”LfpÒ@ûÕ¯† yƒ£)ad÷îðo|¾zõ¶ŽŽ Mãgœ1wùòùK—6L–ë÷K/}´¬Œ~àK´%)- ËJ'¡+ÚFòz†‘x~p;•Ñж ÈÚh@ƒÁ`4"q½uµŸ¨X,“Éd4ê ^¯Ïfó²¬HRFí~$iöû.Y^î>uäJ”ÖÖ>5†¡£#”J :nÚ4WCƒ¿¡aPm_Wç…졳nÝöï~÷ñ®®ßSàJŠWmɤ •×k\R<Îqœ\ðt’4£Œ6š&4òúA½6ãÒ €ñ@UÞÿã[")ïÏ;ï¸3´¦6~<ýô·Ýö÷K.9áž{¾9V¡Úù|þ‡?ü˧Ÿv¿÷ÞÏQÙ×ç7¶\sÍ_o¼ñë7Þøõb·€Iƨ¦{ Ã"öŒ3î]¸°ö±Ç®˜À&Œ$¥Ï?ÿ!EɾöÚuS*¤c¦{à0Ð&ñ†BÌ{ïµ½ûîN£Q_Qa×ëõýý žœ1›N'©.ßÚí¤v–Íá |>úh 老,§%)-Iô“å ²çKRm§Rº=DQ2Ú§³¬XPœS‹ÅbÄq3Òß[,&$Çw8H´¡Äq£Ý¾ï úQàp`ÏJ|>3Z…=ŠAY©j<™Í†——;Ðâj´?úÖ‡€ #—Ë?÷ÜÇwÜñ†ÇcûßÿýæÒ¥ ‡ýRHd3á0‹6"VÙG£l<¾Odã&‡*+³kåõ~¿Ý㡼^[Y]âÅ®K´Éó2Ç!K¸Ì²Ï#?²Ä²"ª¡´È©”€v ¬j†Ùí¤Éd`!›ÍÕÔxgÏ.W=†HˆŒôâèòR” kS–l6·{wø“Oº6oîliéëꊤÓY·›:î¸éj¶^Y™ýÈß-“I!‘^'•ÜEQÚè :ŸáâoÍHÒ¤º¥Ð0'ÑA4’D&A—kjUÚ&5Ú«°á':SÔë2”Æ0Ú™z!6ây¡^|œDm¬ªp„ärùŽŽàÇwnÞÜùùç=½½1 Ã(Ê2{vESSEccEm­»¬Ì®(†‘8NB®|Thm¨âšÈ²2ºœD?ÃßÕËÑ–ÌÙ¿‚Ž×ºxÄÑXP ÃAQ­÷©” ŽØFÔ^ä¢q{Áå-A˜µ—´AÓ…–|äÄGcõbýŽ0Ú«TmW/8RPžI ^ÐóÑŠ­Ói…éJ`‚A™ájFK~»ñ8_ GýY4P;³l3-@é (™XŒCu¬c1.ã£Q-F£\8ÌÄã¼$¥ÕÇ[­‡r»)—ËŠ~Üní.åv[a¥` ]‚e=$øÀX‘Ng;;#HoÚÑlmíO$xd EÖûy󪛛§ù|¶b·8ú …R÷Ý·ö¹ç>>ñÄúßüæü9s*ŠÝ"à(a¤ßÿ~Í3Ï|0sfÙ¯½â+_™Y쥨í’"“ɽúê§øÃÛÑ(÷ÓŸžþÞ|Ðá½¢dÖ¯oÿÇ?¶®]û…,g¾úÕÆóÏ_ðõ¯ÏQlšËå{z¢­­ý;v ´¶ö}ñE_8ÌšL††?êðÇSÕÔTYÜ¢G,+uwG»º¢ÝÝÑ®®HOO¬«+ 1èÞòrG}½·®nÐh_Wç­®vM©yWå‹”OAôÁ…aØôéî†ÿ¼yUHÿT"% €1G–3Éd¡ÙV7ЮÄÀl[U圼g¢dvïïÚÚ¹3ÐÚÚßÞHær9ƒAÔW‹I¯ÇÒé,ËJÑ(§JÙŒF½Ûms»­~¿Ýí¦<Êç£Qæ‹×K£#Pð?F R+£Yìu:Ïg+XgTK/ |çÑezzbï¿ßñþû7îJ$x‡:ñÄK—6,\XÛØèŸÀß(&ÝÝÑóÎ{pþüiO<ñ}:²œùáŸþè£ÝÏœõétVQ2Y :Îå²Úí„ÃA8¤Ùl4z=–Íæ2™œ(¦y^F½1•µ%}>Ú磽^Êïwx<”ßO{<64>t»mcxe¡(™;ííÁ‚éM·›š3§¢¡Á¢fÍ*§ib¬Þt òl½úêgúúî;CÚˆb‰š¬öÂ2£Qïv~”$­[­–/¾è{ë­/6oîòùl]´påÊ“ª«]ãö€CBUÞ¯^½%TÞŸ{î±3g–MLr¹üoûÇ[ýõ§ýüçßC¥áþðö¼ýÜsW-Y2c¬^s¼ùË_>¸å–W~ûÛóW­ZVì¶0™8éðÿ»måÊ?ß}÷EßùÎIÖ¦ÑHžuÖýõõ¾¿ýíG` (AÀtŒ ¡ó»ß­yé¥ÍÇ7ýæ›Ï®­õ¨Vß`0r‘ƒ¬¾¡PJ[Ðé´z½6‡*+£=›Ïgózi‡RãœJa´èpœœÉdS)1“Éò¼Œœø{ž^¯Q‹<|U ;\'²×KC÷ä"—ËïÚRSõvìàyÙé´|ÍØªíÇ„­ß‡çÇ/èÞv;¡VT?>0Ùá8UFáyÕJá8‰ãdA“IQ½‹ãнÏî)«Õ‚ôµ¨ Ž›¬V‹Í†„ÇM6PÑ‚0[­ft/A˜Àlã ÃHmm;vôoß>°}{{{P’Òƒ~Ú4w]§®ÎW[ë­«óÔÖz++£]¦¥Rà †Fû† #¢mµÄÚÕú.UÔ"jVë~5Õ¬V‹ÝN ?>:¢èã ¦2‡hO¥mú=â rpõ\̥ơ÷|mn-vÈݾ¼Ü‰ À„R;âqé >ç‡ïjmø$iv:­årYÒé´:V§mérYN«Íe„€’€çå!>‹q‘‡ú<úAZ|APÔÇzd½òàn£dž6 x À|`…RÈzßÞliéÛ½;”ËåívYïçÍ«jlôÏšU_ëÀ8±mÛÞÛoí³Ïº/¸`Ám·ëõB•àðÉfsO=µñÞ6õ¿üåò /<Û Ã þÓO÷SÛëtº™3÷©ígÏ®€ù`âAŽû?þq]__ü¢‹þ×}½²Òy€Ç‡B©wßm{÷Ý6t‚²paíŠÇ{îü‚rž—wî  5å;úÛÚ‚ à¸©±ÑßÔTyÌ1UóæUÏ™SQµ}.—ß»7ÞÛëé‰õôÄ::‚Á@ ¥( ÃÂgNEE…£Ø-Šš4(Ú¢`0¥MÐ+q~>ŸÇùP(µsg°½=ØÙHÆã|,Æò¼’Ïçu:¬ c¦ ¯×¦jõzm¨\+ÒÙ£”ÏâýBÀQËJ±ó‰„s‰„Hð舺zój5ô¨£º\VŸV« û|6µùª7Jùä“®÷ßïX¿¾aIJ2zÑ¢º¥KN>yVUÕ†ÀQ@[ÛÀùç?|úéM>xéZÒŽb$)½jÕ“[¶ô>÷ÜæÏŸVìæŒ#àÁ€CD†‘XVJ¥D–Fb‘aDín2)&“< |ÕF bf³á(®ÕጠD‘®N'IÓ„N§Ëçó‚–$%å¢Qv` ²û¹ìqÜ„¬~?ý}>º¼yKSÊŠ“Ïç?ù¤kõêmëÖmïíùýö³ÏnCÁ}:EzEÉ0Œˆ’Ó‘þˆãdäDJ&EEɈ¢Âq2²!!ÃˆŠ’áyEä‚n Åf#õÈb1á¸Q¯×G£l$ÂΛWÍæ2™l&“S”Œ$¥y^áy© )Þl6…L“v;Ž6Ìf£Á Óét™L.“ÉÈr†e%–•S)!a#V÷…ö¡‹MŸöùl>|Y~¿Ýã¡ÊÊì4=^k"èâÍývt„ÚÛƒ]]‘t:Kæ¹s+ýªÚ¾t<Gh…ôÎ;W¿øâÕÚàüár†#È3s`ýBÎþÐÛÖÕyî¹M/¼°)‘à—,™yùå'~ãó¦à´?PjärùO?íZ½zÛ›on …¤¼?çœùãZ92•®½öÙ :þð‡KÏ?ÿ¸1|åµk[W­zò®».Z¹²ø6×/Å}÷­}àµ<²rùòùÅn “†ƒ˜î1 {ðÁwî½wÍãïŒ3æNL›@WWäüójh(öÙ+!¿ÔÓ=0†´µî¸ãõëÛO<±þÆÏ­ ™$¥Ãa&fb1U:DXÕƒ‰°ê¬N§CñO^¯ ñ}>ÚãQÍøÔØ«œ" yaIJKR†çU‡þ ._’ÒêÁl6Dz’¢ ‡¾¬(YAPÐÓÓé¬(*²œEý¿ã"ß@’f“É@’“ipÛjµú¡[ÜhÔS”Å`0P”Å`ÐQn0èm6\§ÓÑ4®×ëm6\¯×Ñ4:fÉD: ‡™@  2Á`*H†BÌÀ@2Lƒ)Õç…ã¦ÊÑìÿ; IDATJ§ßO#£}Y™½²Òá÷Ûý~‡ÏVÀ„‚DökÖ|qï½k%I9í´¦ª*g8ÌŒ(²GU¾GÙûý4¨i^~ù“;ï\Ëåï¼óÂOæ¢:á,+#ß1ËJ,+!§¡êGf‘e¥¡]‰ee†‡_è©*CŠÂív‚¢,…«rCŠB*dM$i!IIZhzИ<ž `ù|¾£cŸÚ~çÎËJ$injª\´¨nÑ¢Ú’RÛ9hyžãP(É`G=y<5[N¥´;|Äh2( §iœ$-$i&I³ÃA„‰$ÍV+Žº1Iš‘Ð=Àn'ÑAÐw“¤¯U…¶É¤€´¶è–ã$IJ ‚’J‰¢¨ xT«lDK>†a8n"3Mã$i&3²ä㸉$Í4M !>M$¹Ÿ.Ÿ$ÍðÕ_–L&×Ùnk tt;;#]]Ñ®®ËJ†™ÍÆšO]·¶ÖS[ë>Ý]U嬬töúW&“ãy)•Õ¡º„äy…ã$AP†ÆÞ:‚®1GfcFÓ„*Á§( Âd³Vëà‚¦ ‚W¨õuP÷ýÕ`’ ŠJœaF4ƒ£øãýjQ˜L5’Øn'†‹÷EÓô¾ ÷%Èñ8ŸL è'‘Ôí¡ÝÁ{µé:uoµç;Ú R{¯Õ 36ÀDÀ0b_U]$|29x«íÉ&“Áé$Õ$7§sP®t:­H‹a3@) º“ÔaÉðÝTJÐ>iÔ‰ºR©î–—Û!`à0 >0NpœÜÙFÖû––½;v ð¼l2jk½ÈzßÐà?öØé Æ|>ÿæ›Û~ûÛ0ŒtÝu_»òÊ¯Âø8 þýï¶ßüæÞÞØµ×~íª«N¹ © ¨í'•^~ùÓ'Ÿ|¿¯/~á…Çÿä'§×ÔxF|d6›Ûºuï»ïîx÷Ý­­ýf³aÉ’™§ŸÞtÆMååô€Ý»Ã¨·#yP(Äèõº3ÊÔ‘[QD³Ù\__¢·7ÖÞìèöôÄz{cIä~²Z-õõ>­Ô~*‹$)½kW¨½=ˆþVííÁ½{ãù|Þí¦æÌ©˜3§yíý0@¾,%âÁg)H¢•nÔdìé‰I†AÎf÷ËP0ta¦iÂí¦¦Ms£2.—µêËê´àÐá89çb1­ô%ƒ.ûXŒWöu¯ÍfãÐÒ‰\öC·6¯×†Š»ÝÖ yÊfsÛ·÷¿ÿ~dž ›7wÊrfút÷Ò¥ Ö.]Úà÷OÑïÜ£ž>Ø}ùå®Zµì—¿\^ì¶”:,+­\ùç]»B/¼põܹ•ÅnN19°?as¹Q=øj^juµ‹$§x˜äry–Q6ÃHZs=ËJZ‹ýÐq¸²Ün'i·Ùp»°ÙšF.ûÁ U‡Ãêpáp&“!H…à Z¸ÍvJU= —tÁu·ºítZaò'“É}ôÑî·ßÞ¾fMËÀ@²®Î{þùÇ©ÞaŽ“³Ùl2)f³9ŽS-CŠ¢d8NÊdrèÿÈó :ˆö¢¨pœ¤(YŽ“€hDUÂ`ÐSŽ õ4M˜ÍF’4[­½^ãFN‡a:£Q—Íæóù|6›S”L.——åŒ,§‘³^$ŽSXV,0×cFfQTýN§ù«AÎ(ÅF§ÃÒé¼¢(’”I¥Äp˜Aѧ¡‹ñ±«¾¦N§s»­Hl…Šÿy<¶²2Úå²z<6¿Ÿöxl 1--{ÑÄfGG¥5 úúzŸ:GÝÐà/…R‹“”À•LŠHƒ€„ Z‚z<•YVây‰eemê`4£Ì‘¡]B{‹6& Æ>ξõÖÏ>ûÑÆ»|>ÛE-\¹ò¤êj׸¾) åý¶P(5}ºû´Óš–/o^´¨nlßè³Ïz®½ö¯’”yì±ï.\X;†¯¼qã®ï|ç±K.9á®».×0~õ«×Ÿ~zã3Ï\ùÕ¯6»-LnºÇ0ìÖ[_}þùMÏ=÷£Å‹ë' MfëÖÞ‹/~dñâúÇ»Âb™ê³?%˜î1gÓ¦Îûî[»qcÇ 'Ôýô§g,[ÖðeƒEF ‡™h” ‡™H„EB|4Kˆ6´ ‘ _•à9ñm> X¡ oO’”FsĨò$ÚFö|ôƒ¶¿ÔcŤo±qÜŒãFKg±˜pÜd±qÜ„~Ð6:Žv(±Ù½ÔN_‚L&×ßŸÐÆ[¨©žÚU"’4WU¹ Ö‡PÎ',Œ$¥c1.f£Qvè+†DX´4³’7͘QVYé(+£½^›ËE¡ÒÊè;·Žnúú·Üòò¿ÿ½ó²Ëÿò—ËÇ¯Ú Ï.€ SáËC®|©À•ϲ҈eÉQU$4¤(Üf³„™ Ìvû  ÙfíV‰Å‡š‡´È&èÒ¦·7¶iS'JÕko0Œ„ã¦cŽLÕ›7¯zÆ ¬ kQ”ÌÐÊ® íÕhC¤ïYžWFEEäÒv£D ℉$-v;êófвØlêÞ4M¨²o‡ƒ@U—&ø×€ÃC½2BÂMt­„jíHR:•ÐU•ö®TJDO)ÈôÐb±]þØíº B‹Éá Pž’æaFtÇPm˜âD"lWWDߣ °¨ÓéPNQuµ³ªÊU]íªªÜ¿E±t:Ëó2ª8¥ZòS)‘ãdž<‚jꈢ‚б¡hã‚MYÁRjšKHåS4êæÁáÈðqxÁð[u…£wÁ— –´€’€e%ä Wmø¨‡'êóêÏïW§M[ Âá «Öƒ¯¹%‚F€ •‚AfÄOoµªñˆÝ(]|ÄmH{JíøDS¥[ÔÊŒb1N›Ñ‡†%ª"AíÛÚ]ÇK‡È—•à£()¤ÂŸ6ÍE`¥ö#J¡ðƒŽŽP{{p×®P>Ÿ/+£QR:!c…(*O>ùþþ°Îç£o¾ù¬åËç»EÀ¤¡½=xûí¯mܸë üâgUV:‹Ý"`¢I&…O>éµ=PúlÙÒûÌ3¼ñÆ ÃV¬8îúëOî¸Ïçó;w?ø`ׯ»>þxÈn7uÚisN?½éä“gÉrºµµ¿½=ˆ:|WW$Î’¤¹©©õöÆF]¢&.Â6“ÉíÙîèööÆzzbR{вÔÕ JíÊýÓ§»ívršWj(Jf×®PGGhçÎÒ?õöÆr¹¼Õjih(›=»¢¡Á?{vycc¹Ïg+vc£œzð“ ³/:zø‚ºm6QV‹Öb¿ÿ´° M±Ôëõ‹!—ÃÒé 2ç„Ùç³UV:ë꼨ºCc£*JãA:ǹdRDùƒ#.É ë«:¯×V°WDá÷Ó“¢¯f2¹;­÷¼'Î"ëýÒ¥ Ë–5LŠ_8tÖ®mýÁžºå–³üãS‹Ý–Ò%‘à/¹äÑPˆy饫gÎ,+vsJšC÷à«a C·´º]Uå„@àQ‡ôvjÞâþÑwûí&“Áå² éQ*âð`éë«qœÜߟ—ý—yxXVÎd² #f29ž—‘±G”t:Ë0b6›c ͘uuE”¢d( §(3EáétVQ²‚ Téc³áz½Þá TU½ÙlDEHÒLQ“ÉHÓ8Ž› ƒÁ€)J.—Ëe29IRÒéBÒ¨þÁþ}L)èQÈ0bç- ßh4ÄbìæÍ]?úÑ_~ñ‹³ŒF= ñšT½ U/EÑàJ{qZÄ€'ïØÑ ¯"µ}*%ètºiÓ\(r…ÔÕy!é;4g=Ú8°³^¯×Ùlƒ>z› ·Ù,V+NÓ8ÒØl8Eá›6u®]ÛúÒKW«û¢üÊ¥«+òÜs›^xaS"Á/Y2óòËOüÆ7æAJ8P åýºu;þùÏmÝÝÑiÓܧŸÞ´|yóÂ…µG˜˜Ngxàí‡zçÄë~ø;c»úóñÇ{.½ôÑ+Ž»ï¾‹'iÖd>Ÿ¿á†çÿõ¯–W^¹fÞ¼êb7€IÀ!™îs¹üUWýåÝwÛü{§œ2kšu`6mê\¹òÏÍÍÕO=µ VMJ0ÝãÄæÍøÃºõëÛgÌð­Zµì¢‹ŽòáhWƒÖnÕ‚E\m¾nA=s‡ƒðùèIz19@s‹Ùlže¥\.DzR.‡¶ó¨š+ÃHù<ÚÆR)Ã0äiBÛɤ€aº=>•óyŒeEµ‡Œ†Õj1 V«Ͱ›LF’4›L‚0[,F4ÿNf³Ù¨è£ët:»À0Œ¢pƒA‡f6£»ô4=‰CùF ’C)šû‚'zzbª!K§Óù|6­Å^EAZÀÄÀ0b *;h¿5´N7ƒAïñPê„v]SüôÓ®›nz©§'vÍ5§^ýé0pš:d³¹?ýé½ûﻪÊù»ß}ë„Ƹ<ìR`=N¥D´&­Z JÍrxx6d´`LQøÑ”er[¶ôh³õÌfcssµª¶¯¯÷ÁRßøqP©÷hÝ;‘F‹±P/Ô>¬íÛÚ ‡£»oG+èJ ^ˆ"ª‘E…a$~„¸C®[Q’н¢ (’”­È„Æ~;(º%I³Åb¤i• £iÜl6Z­«Õb6hMèF’4[­8|ZGÑ(·wo¼¯/Þ×—@·½½±¾¾„*ÿõùl¨îcE…³¼Ü^VF£ÝòrG%¿¢¨ˆbše%ž—Q•©dR@܉Ž·(Ÿ$-‹mÀd pNgÕàûTJDáøÚ[í](©@ût“É€âžQð½ípê¶z¯ÝNÀY”‡^ ¢@¸Œi&gZÂ륡:50~tc­)FÛ‡ÃaV©5¼«ËLÚÞ Þp ¸ îVKÕÎ<|WûZ3ZÇ.+³——Û§TR(Àapˆ|5ªJ+Á¯®vaŒ%0yaY©­mYï[Zö¶¶ö‹¢b2jk½(>¡±ÑßÔTérY‹ÝR`R ¦îºëÍW_ýlÉ’™¿ù͊ٳˋÝ" ¤‰Çù{îùç‹/nž7¯ê׿>Á‚éÅn0ATm?kVŤއŽ2AyýõÏŸyæÃ––½uuÞ•+—|ë[ Žýröì ðÁî?ÜõÁ»c1Ž Ì‹ÕžtÒŒêj·^íÚR{;†aÓ§»Õ‚C þª*çÄÌò¥ÓÙþþ„ª³ïAP0 3›Ó§»kk½55îšom­§¦ÆSYéœÊ±XùþË/b4¾ñc.ÿÿì½{œU™ðêÒu¯êžî™žk&÷™„€‚‚(ˆÍÑU~ ûî¢"ëuAW]A\QÑWßWYu՟€ @PÖk¢ Éer™É\ú^÷ª®ª~ÿxz*•ž “d&=39ßOúS]]Ý]ÓsºêÔ9Ïó}®»àœsœ‚Ï +ÇŽ§ÂÏfõ0ð‹aè†atÕÍp°Ûæ*ªjW*¦9¾èº #ûAèºãy>Œø,Ãd€S°ìº~8m02yàÃÌÁd>J×ò|ŒeéXŒ–$ ZRž$ ëƒOŸ¢Ž>E„(²4M‚n˜¢HIbBæ%I,M“`™<±¯Å÷ƒ¾¾B4ô!̽ŒNÅbT[[¢³3"‚ôËDB¬£¥ sš ªV&£årz.gd2Z6«årF.§e2° çóFØa¦(2•S))•’›š¤TJJ¥¤tZ†…TJJ§•ɤ —ËþøÇo~ó©E‹ÒwÝu-ÎÚ:ؾýÐ-·<°wïð-·¼ýÆ/™ÛæÉ˜Ä£s„QQþx%dX–æ8æÿ&/‡)úÇäóÆ /ˆfëQ¹bEûyç-„ü%\ó|VÝ<}›¦«ª–a8–U6 ŒÞ–åB,…iº–UÙÀ5 wtP Œ 0P›]Xž) ¾ožg ^A`a–É2+,ÃPñ8Ïq î&af ºî@ ”¦Ù–åÂI!´ß†kY®a8†á8Ž?"×õTê¬xãý‚BEJ—Bñ¸À04ÏÇd™cZ’XA`†ŽÇkÕù Á•eNpetŠ¿ ƒÁ`Ž‹|ÞÑßúúòƒƒ¥ÁAµ¿¿É¨a,x*%57+íí --ñ––x{{ÔL¥¤ÆFi†J‡!×\-ŽW‰m´ì8äu+®Mü.L…™uLÒ¿É2z=Qxø3Á®pÌLÀ²Ü°I‹f¸P*™£WÖø; ¡%`J|"!DJA@ûçÀL#¥’98¨ŽwĆ8„|Þ(—ýè«àXZ¼éÙ¬.çó< ëx!„(ŠL&E¸54ˆ©” BCƒØÐ &“B*%Õ$b0 À|̉á|==ƒÀÐÓ3xèP¾R©47+ ^íêj^µjÞÒ¥ÍøÂ3y¶o?ôÅ/þjÇŽCï}ïù·ÞzEc£Tï=ÂÌ8˜gÀB3ñç‚L†a(pË‹‘‚ÀBÅ;È»E–¦©xœ'I¢d!—yä)2(Š”e–ahÏ žzê¥Çß±ysçù\°äâ‹»/ºhi<Ϋª¥iŽi:М ÃòCaðÁ0\ÓtK%–GûôI’e>‘à%©ÚfF˜ëEá¢O½nsªT*Püo<1TÍÅ©¢p--‰¨¹>¼8mnŽ_uÕw?ô¡K>üáKN´L/¾ìÝ; F{˜÷ïï/x^ ÌŠíÝÝ-¡Ú~öÖ‡ƒŸ@©d™¦ ­ š™iººuªÇ.Msààe9F76ÈAŽÇyIb%‰“e¸ç"´cÊ'Œ¤üOW\Í7¾ñä“O¾ôûßß:Mï?Môöfî»oëý÷o-Œµk—^wÝëׯƒ瘙(ïùËÿéíÍ´·7¼ýígN^yošî·¾õ›ýèO+V´ï{ÿß‚S»oO?ýʇ>ôŸ—\²ìûß¿~¸A,ËýÛ¿ý÷ÁÁÒ£~¬¹Y©÷î`0 ƒ™ÑLÖt ‚Êg?û‹Ÿÿ|ëW¾rÍõ×_8­»5zz¯¿þÇ4MÞsÏSÞAÄœØt9¨ªõÀÛî¿Û«¯éînyÿû/ظñܺ—»Ñ£3¸Ç¥ÂËxâð/ÌxŒ.±kÛeL í‚û)Ü,úªh=ÞðUá–†a'„Š–a„ÇÑ`}â¸M“ÊeßqÊå²ïºžm{–åZ–Æ1À4UCƒ˜LŠmm‰¦&yĺ•eÞÛ£0SKT2™±g¤ŠE³¦â)ºÇäh¬d8A5ùRº“äÀìg?ûÐæÍ=ïÿÿå_þæÄæk13]wî¸ãÑûî{ö —|ýëï^¸°©Þ{4£IDЈ[VUS¦é¨ªYéXV"*`e´Xz˜žO$xžgx>&Iœ$±<Ï#I,ÃвÌñ|hC¦yž‘$&æaYúx-*£³õH’X²äh¶ÞŠí8†ïtZ)L–ƒdŠÝ1Íê²e•aŠ6€hÿã½m<.@?J–9– :¾E±êò†@E9ê%„…¢T_r*¿ æd¯’Jô:(ªÇ­ÑàŽN•©aLnMõ”°àʘ>\QäppƒÁ`N%0ôÑß_R) ”††ÔþþÂà`i` žø(Šll”’I©µ5ÞØ(56ÊÍÍJ*%57Ç›š¤¦&¹¡A¬ïr2„=mÓtlÛƒØz(Ÿ©£sô)Û.ëº.@ü÷˜ï, ô´aA’¸°.ËqôÈS1Yf£Eªðdf&£ªV©dÕÜ«ªU,ޱRÓìš—K ŠRµ×ÜÄz'¼,óxæ SG4͇x¡`†VñP,^(T Á×ÔàEv´Ü £×ãá>Ìt0ºŠ dëÕ(ò£¹åhœâ%aXBèil”ñÌ,æÔã8^T|_#c*Œ|Þ,Œhf&M“ ¾ ø©xðA‘/„ÏbW&ƒÁX‚9.TÕzíµÈ~ß½{ð¥—úl»,Iì¢Ei°ÞãÌd¨T*=ôüw>nÛÞÍ7¿åÆ/Á££˜§Ÿ~åŽ;ëï/|ô£oùÈGÞ‚O4sÓt_xáÀ¶mû±Ú3ëðýà™gö=òÈÿ<ñÄÎRÉZ½zþUW½aÆ7¤Ór>o¼ðÂçžë}î¹Þ_<ä8ž$± 6) _©T2 Äè¢È.[Öº|yÛÊ•íË—·-[Ö:}'M³{{35Rû#GŠ0Ý ]¸ùóS©ùóS°€ëb–åîÝ{Œ×þСœï$Itv¦–.mîêjY¶¬¥»»µ««c˜SF¹ìçóz>oæóF.§årÆÈ©‘ËéáiM (ì“I!•’S)1™9Ž!IÂóËr Ã)ÌÂÀ@éÈ‘¢m—á…RGGrÞ¼dGGCGGÃÈr’¦ÉÑB[X8r¤ ëÕÂ¥ ußcþéÀÄ û1s²ÐÈ ÓÄST‰„8ŒNõ"“Ñž}vßæÍ=›7÷<˜ãyæÜs¬Y³pÍšEo|ãb|1>¹í¶G~ö³¿þüç>ÿüEõÞ—™ÂÙk¯ýž(²*šf!„J%«RA cO‹ëz¦é‚¿!‰í°8î'ÞIb)ŠÅPFO‰"CÓ” 0 Cƒ¤Þy¾šÃR—0Ÿ±f%ÏÇ _x’߀ãxPÌÒ+ £ê O½a¸ÃÃêÞ½Ã}}ù\N¯TÏ3± ÖþÑïÂzH£F’8EáE‘F¹x–YA` AXYfC™øqýã૆³\N‡f“ÏëÃÃZ6«årúð°FD „X–nl”Ói¹±QN&EÈ il”›šäÆF))O»à IDAT•’R)i‚w½ëîîî–¯~uãñîätP©TÊC=ûžž¡Ý»{{3å²Ï²4 i†jûææx½wöÀ"H¥SìMÓUUÛ0ªË¥’˜¦[,Zã¥ù°,-¬¢Teô¡¤U(©?eÎúãË_~ì™gö=ñÄ'ë½#'B¹ì?õÔK÷ÜóÌ–-{ÒieãÆs¯¿þÂyó’õÞ/ æ( ¼ä‘íûö ·µ%Ö¯_5ò>*>ºý«_}\UíÏ|æŠë¯¿pÊCë~øùO}êþ«¯^ýÍo¾wÎør9ýÊ+¿#Ë܃Þ„5Y ƒÁ`&à8L÷¡J¥òÝïþîë_âúë/¼ãŽ«ë>ñ™Íêüà{{³?úÑ/¸`q}wƒM÷˜SÉK/õÝÿ¶_ýêÃp.¹dÙÕW¯¾üò•3m€)¤F…_ãÄÏåô¨d aN† DÞ ùžÀOMPÜZxÔâ=âû¦£ï¨þ ¾1³ˆ0³¬²ãxáÏDU-Çñ JÆu=ÐÝ‚ײ\ÛöTõè/Ñ&øˆðgÂ0” °’ÄÒ4ó4MŠ" Af²ÌÑ4©(|,F #,ÃP²ÌÅbÔYáùãb0 fJ€œÒl¢xµáa-“Q³Y}p°”ËéÑú¬±1»©”8’-Bð.,'“bCƒ8W3“!ZÝ0\Û.ëúÑ(Fe¶®;ŽSÖu'\Q¾a]3æ;Ã0¦(†¢üc.$…‡ËIQäX–’¤j‘ª°6•,Wk°â/ƒMTTÕ*MÐß×xða!ªÈ·¬Ún³$±²Ì+ 7rÏ ?çÃPòȳ¯«ê1™f<Ï„ŠpÐ…C†ÔÄD¢º€ 9`êhšÃ*æáÑ8œ.•Ìš`›ÑÇá°´yôœN+xƒÁœ¶œŒ›hNñóßü楇¾yÅŠözïNý*]yåw†zðÁ›ZZf–¦3¨Üs’üööœm‡Á`NCt„ÎŽªZ‘eòÚtÝÖu§T²`îUÕÖ4+<´†p\ \ϊƒýY’8YfE‘K$xQä$‰ݳ¢€‚œ•enZ ºîô÷jŒ:áÕq4ð’¢ÈÆF)z E:-ó<›LJ¾ï—Ëþˆ_Þ7M'ô­ƒS^רý溞ëz–Uöý6ˆŠìMÓu]2_wÿA@O(çB²Ì‘$ 2zÈ«…”@0¼#„âqž ÀˆB( G„¢ð$IHGQ¼\–9Š"¦*×ó‚\N S‰kÊD×Gó‹G‡¼°ÃG‹"çy~±hjšM¨£#¹tió²e-ÍÍq²€$ˆ¿ Uû'ÿç „*•Jx)šÏÃÃZ>_]‹=,GÕçŠÂ§Ó2ÈëÓi9™”%ÐÙ§RR:­œdãSŸº` øóŸø¤ÿ¸!›Õ_}õÈîÝUµ=Dt$±d Hí›axsÑ¢¦iMA…l\Hi&­—JV˜ê>f2ûë66ð¨^ScšŠmÔÏþáW_øå/o®÷Žœ½½™ûîÛúÀ[óycíÚ¥×]wÁúõ«ðx;fFÊûGݾwïpkkâŠ+V]~ùŠ .X6Ô-[z¾üåM¯¼ÒõÕç|á 𛕩ÝJ¥òíoÿöÿïßÜtÓ[>÷¹w̱qò¾¾Â† ÿçŒ3Úþë¿þÿö1 ƒÁŒÇñ™î_ÿzÇÇ>vßÞÐùïÿ~C*%MÇnMÛ.â÷ýú×;o½uýÍ7_:Ǻt³ lºÇœzLÓ}üñ<ò?[¶ô0 }ùå+¯¸bÕ%—,›uóšã©ðÁFÔß_­ÂÇùèœ.VácNÏ ²Ym` 4<¬9RVŠ¥¡!u` –ØÅ¨æf¥µ5ÑÒ‡ðÇæf¥­-+Y–~Ý %­0Mâ8å‘•L¢„ËáSá–£7«yÃñª³Ž ]BGGgS‚ÆÑ‡á³'°1-÷?ršãûA8#‚Êd´\NÏåŒ|^Ï匰KQ$DI66JMMr2)¥Rb:­46Jɤ²¶™œp[*™_ùÊã÷Þûìe—-¿óÎkÚÛê½G˜)`` øÙÏ>ôôÓ¯lÜxî¿üËß45ÉõÞ#Ìq0¦4<œìwœ²a8{÷–2-Ÿ7 à ‚ ÃЫT*A€lÛ ­‘5„Jññ¼á¡ýjá¸,ó8øsÔôÄÆsâù¼°&"$Êë¶í tùÐì“I '`f>šVIqlÛÓõ£N|ø¥”J–ãx–åjšíûA©dyžÎ\8ƒ”Ë„ÓMüAŠÂÓ4)ËüF $.‘(Š”$~;’ÄÆbTè͇_–$Ueú C ƒ¯G0 3&•J%›Õ³Y}xXÍd´lVÏdT~Q—\N‡BA„ÖûQ|)•ª&¯òü -F;ÝD%ø–U6MG×ÚðmÛ5 ×0lÇñ¡óà8ÔÑ>TÜïÍE‘eZQ8è( ϲ” °¢È²,-IÏW£Æ†æù˜,s CK 5uâq~ ãÈ1˜ÉP.û¥’¥i–ªÚ ¿‡eM³UÕŠÜÛ¥’ ¹7£ ³ÅãBèÄ1ãUä<䥪ȟ±Å°1s(©Aa¥‡RÉ>ö¡–ˆ¨)!Il<.( ŸHðŠÂ'”_ ,„ ~ÖÍ}cf&žŒ˜Jªú0ãçrúˆ$;fM©¿XŒ e: G5â°2r/$Âdæ‹1˜)F³Ã›hy’0ü¦fX{ÌÂ$5Þ(\’ƒÁœ†Œ'Á}šKðOWJ%s÷îA°ÞC.½ãx²Ì-[ÖÚÝÝÒÕÕ²jUÇÊ•øÂräHñk_ûõC=¿n]×—¾tÕ²e­õÞ#LÈfõ»îzâþû·¾á ó¿ô¥«Î>»³Þ{„9YF«í}?€³ÀˆÚ¾UQøzï&ó: ©¿ûÝ®ÿþï]þónË*¯\Ù¾zõüææx__aëÖ}½½™ ¨ÄbT,F;NÙ÷†¡—-kíêjÕöÍÍS¬Ú,—ýþþ±Fûì¡C9(ZÉq1ÙÏ›—©}ggª³3‰»ßQr9}Ïž¡½{‡÷îêéÚ³g¨¿¿€ŠÅ¨Å‹Ó]]ÍK—¶,]ÚÜÕÕ¼xqG'bN’¨Ëu¼òœ5&¯XŒJ&Ű$gXn®¯Ã‡³,7ÌçÊd´âÐ:8X‚ûÐÄ'Ë\[[¢­-ÑÒ’hkK´·'Z[­­ñööS}m>¿¿¿`؃_FœõÕZÈQ—}Ú>¿ Ó@áíX…½8¢°’Iÿ³f2æ6oîÙ¼¹gË–=…‚‘JI^¸ä¼ó®Y³ðÌ3;ðÿn†S.ûüàÿÿÊ+G}ô;;SõÞz2<¬]sÍÝ$I<ôÐGqÞ{ð1Ìœgb[½iº£ÖÛáòèw´(2‚ÀH'Ë\<Îhë9Ib!˜<õ ¶ÇyÈ ›¦?°R©@¹ô+ˆa8ýýEpÖ—JV6«Cà™iÚšfkšM¬/<ÃÐERA$E• ‚Àó|ÇñB¶íŽ)Å®¢HIâ w!áñQÑÇJIn6=_䨨vÙ²\UµMÓ±¬²a8šfÛvZŽe¹–UVUË4]Û.kšmŽe¹¦éª*d2Ž¡ì縘 0²ÌAS´+Qd‰ÇQd¡™) /Iœ(2™Œþ§?½öÛß¾ò yûÛÏܰáì‹.Z:U‰!ž„)*ÙlUaŸËéÙ¬:Còy#ZÅ!À×§MMrÍr*%Mw²äw¾óß?ÿù³Ï<ó…iý¦` x'¨í!HªÑCúîî–E‹Ò'Ö/‚¤Èx…fphr!X–J» ÃUÕêò˜I.Ñã• °ñ8/Œ 0ÐÞ`¥$±ŠÂñ<#¬,³²Ì Ãó,.“Œê]Gaj)—ý§žzéž{žÙ²eO:­lÜxî 7¬íèÀªÌÌ”÷›6íèéL&Å·¼åŒîî–'Ÿ|yûöƒï|çY·Þº~ñâô”¨m—ÿéŸØ´éÅ»îºö=ïY3åï?ؽ{ðÊ+ÿïúõ«¾ýí¿­÷¾`0 ƒ™¡œˆé!´cÇáoü×õ¾ó÷¯[×5å»u¼üâÏ}æ3¿X½zþ÷¿=ž¾ªØt©#Ù¬¾iÓ‹¿þõŽmÛöqÁKÞö¶—]¶bÞ¼d½wm p/›Õ††Ô\N‡…lVÏfµáa-›Õ2=L'Cñ<“NËMMJ*%65ÉMMG+‘‚º¡A¬ãß‚©/™Œ–ÍjýýÅLF‹=>ÖD@"w[[BÒi¥µ5ÞÚšH§•tzFŸdËeß4„Lƒyžñ‘ºîø~P.W†ãyA¸1”k®ÙØó|y‡£Ïz^àûþò©`æ !$ ÃPPxÆbIÝ>„ΰ1 ô#„x>Æ0t¸ñÈÃê[ñ<òA³bpßó0×Ã1 j¹œûða¸}hRƒXI8¬…ÓQ VK¥æBÐä3Ïì»õÖŠŸüäåþð›qÙ’ÙKT~ò“Íßüæ“ñ¸pç/½ôŒzïf (—ýíÛ†Ùz½½™rÙoj’Ï>»3LØ‹f1™¦ëº^X™\Um×-²ë8”1-²ëz¦éêºíºž¦9–庮W,V‡ãíOD\È0 ­(Uo¸,s,K + ËÒŠÂCà…¢ð CCDˆ!‘ÁÊ!Ì =(Ms@Øm®ã”5͆6¦oÛöBQ¾ªV B}祉b1 Z/ÃPàø–$Ú¶(²4MÆãB,F‰bÕÜ-ˡΛæy؆ŠÇyš¦p0+f¶0^ý‰š`¶].­ÑÕ¿Âm{†aÖƒF©)G1f=•šj+c¥ÀW0 æ´bLkdÍÃáa-:Õ&§Œlmc×ɘLòB²T2]׳¬r´íº~øÂñÞ_Q8†¡E‘–eiY®v¶¡G-Œ$±Ð͆±ÇDB iJè È2GÓÔ¬~ÄÌRà€^ÚRÉ {¼Ñ•á‘UjâÂo¸ôÑ¢k°2•’§/à %Á7‹Å£Ã…bÑŒŽŸÀäQ"ÁGË?Dî9°äCù¸Ç5N0'IÍa¹F ]“Ëé5#cjÄã16‰cêBؤuNUÛ3„LŒ®ó ©šv[#¥jl”ñ¬.ƒ™ó` >&Šçûö ÷ô öô îÜÙ·cÇ¡áa ¤Ù¯ZÕÑÕÕÉös ” s2üõ¯{o»í‘Ý»ÞûÞó?ûÙw$“8nùtÁu½ýèOwßý{Eá¾ð… ï|çYøh0K±,÷¥—°Ú3ðý`ÇŽÃüãkO?ýÊÎ} C/\˜b¦PÐ)ú~@B•J1~jåÊŽîîfðµ·7LÕ<íÎ÷õå.>œ‡ÛÐP)*$I´´ÄÁe•Ú77+SòésÏ Îxí‡÷ìÚ·o¸X4B<Ï,^Ü´dIó²e­K–¤»»[æÏoÄÓ@˜É•LF­0õð…=IMMr8îšëkFçk\׋Êëá*;|¨iUÑ!M“©”ÜÖojRFîÍÍJ[[¢­mÖ˜^'ðà÷õå»؃ÿº8Ž78X*M ‚H§å‰gjà«ÆSŠs ¨ìÙ3ôÜs½›7÷üéO»UÕJ§åóÏ_¼n]×›ÞÔ=7R­ç$–å¾ç=?ÈfµGùØ ÏÞ>Kïz×Ý<{ðÁ›R)©Þ»ƒ™v°ƒÁÔиCºV˜Ì}ì0kœõæ˜ZvŠ"%º†Ž7dfAo|âõÇÕ3ý¦éº®Ò4;߯躪bú2B¨T²B°ìû¸ð„ÔÎrÙ‡K3M³}?€Ðt„„暦kYå ¨ÀM’$hš&IB’’$@o )¢¨*Í )Š„ã¶,s$I2 µ´…'²Ø‚ˆÇù‘mA`c1 rÙhšš9SÏAPÑ4 ¾(]·uݱ¬2”=°í²e•K¥ª­^׫’z°‡X¡‘ÒŒ§àx…“~ôg¦éþô§ÿ«Þ;2•ôöfî»oëlÍçµk—^wÝëׯÂCô˜™Æî݃?ýéæM›v MS]´ôƒ¼è’K–Mù¡~Ïž¡oüáaíG?úÀ….™Ú7ŸQüá¯ÝpÃþéŸÖìc—Õ{_0 ƒÁÌDNÐt*•ÌO}êþßüæåøÍŸùÌu—›oÛ¶ÿCúOŽ‹Ý}÷u眳 ¾;sz‚M÷˜™€e¹[¶ìyúéWž~ú•¡!µ³3uñÅ]o}ëŠé¸°œ9¸®—ËéCCj&£åóÆà` J˜«¹\µ–ix´Å¨dRjl”š›ÐC§ÓñTJL¥¤æf¥±QJ&¥9ü]Ím|?èë+Œ s°„T†)…Ñ©ý–%êûWÌ. Ãñ<ßóßÃôžç¡R¿\öƒ :ù×̆‡`¤ ‚@ӜȳÇ<œä^û• Læ…G,ù Ë}“ áÆáÃðY˜o$Ž¢ˆÐ­Ï²4ÏÇB0GŸ[©T†‡wFŠoi‰ž‘¢ñ3gFêÔ`Ûåû·ß}ç;ÿ½lYë]w]{ÖYóê½G˜ãf÷îÁ[o}ðÅ}ìc—ÝtÓ[¦ªh9æÔ1¾ª÷Üs½¯¾z¤\ö“IñœsŒ©¶Ÿ&"â¨F¼¬i¶ãxPÝqªëaÁu=Ãp Ãq]OUmÛvÇ›FIKQT<ÎS)Ë\,F ‹+ OQ¤¢p± O±,-Šl,FÁS²ÌAL Vçc&ïºn[è;«­·X¬ú:¡ËT,ZP[žÕ4ÛóUµÊeÏ4]ˆÄÒ4+Œ^ ôj$©Ú\¡yCGZ»$qÐ¥þL<ÎÇb”(²ÐÎC'4þSùý`0'8ñ Ã-—}Uµ¯çrF.§‡)Ùh¤¨aM2m"Q»ƈfN<úìb¼b904–O(´s‘Í@T)­‘F3‡5r Ð9ú,¬„pgÜÀœ0ªjkš¹·UÕÒ4;Ô…kšÝftñZ¨ºÂ Œá’ÄÉ2'I¬$q‰„e™•$”0§ËrUÕRÕ°%[ªj—J&<,•ªšfïÚuä•Wú{z÷ïÏ8,z^‹Qr2)$“ÇÅxž®TˆHS<ÚÇ|[H囓¢ðGó<£(<Ë™›á‚,s,&‘àqG}ù_ÿë' Cÿû××{G¦žrÙê©—î¹ç™-[ö¤ÓÊÆçÞpÃÚŽŽ†z òä“;ðƒ?¼ðÂÁåËÛn¸a­ãx›6½øÜs½‰„pÙeË7l8{ªÌ„?þñŸ¿ò•M矿øî»¯klœûC÷ÞûÌ­·þâ»ß}ÿ»ÞuN½÷ƒÁ`0ÌŒãÄM÷¡J¥òÓŸn¹ãŽÇººš¿õ­¿]¹²} ÷ìÈfõú§~ÿû]ÿø—}ò“oÃñЧlºÇÌ(ÊeëÖ}0Ìzà@¶©I¾ôÒå—\²ì —œ×£qÌpøBÁ¢6êáa-<#„ùäá 2Ìï†ÃÊ2έ `¯™¡³£CÕ£cøÂe\Ì`öZX4Rg;œ•4M”ú55 ªm—Ç 7†9ÑpcxyÖuÿæ; ‚¨TBG;–±EQ$ÃP4M±lLQ¸XŒâ¸ÔïM$xQäišŒÇy‚@EAฮB’ÄÑ4:÷Cɬ 0 C!„d™Ÿ]sŸ“çÕWn½õÁ;ÝpÃEŸýìXŸ4[pï›ß|ê‡?üãÊ•íßøÆ{–/o«÷aŽJ¥ÒÓSUÛïÜyøÕWèº kÖ,<•jûiBU-ÇñLÓ5 Çq<]·-Ë…߯”J&bø85èºíyA©dÁÙg’îcQdišŠÇy’$…ÅHA`a²ÜÇ¡:Ÿ¦*ÅAdP‹"ƒ«»c&ÏxÏYç˜*Ïh¤ÑëÖ‚ %ˆ+ CŽ¢²ÎhtÑ®Ï9ÜÁÌ%jÌøðc©1ã»®oš.ü¬àôÀùEU­ ¨”JV5ÊÅÑÈ2G’dx¡(B’àŒÀ2 ÍóðSŠÁå€(r4M* GD"!ÀUE‘#/a†ÆÞ ƒ™Q@ÞQ>o€ø>Ÿ×K% ²sUõ˜…Ñ–Þ±Rsk²v«ÏâES ¹®UÕö<äʱZ¡ º a…*]·Ë壪`¤qâ Uf-ŠL,FÅãM“p©Èq1Tê«A9O¸œ”ezpšHðáè"30`^,Z¡ÿØ{{coÜ IDATä(ÆpG×mÈ2Š©>¡ _–YQä¥j —eN’8Ibe™‹Çyx(ËßÀœJ&އ™W°2—Ó!G.¤Æ9ŽiŒ©‡ô‚ÀC˜ãcòZ|WE†×uâ74ˆ ƒË²b¦‹ ¨„*üÐ徊En ɪÉkU®¡A =ø ¿¯ykðè1ƒ™` þiK¹ìïߟë}OÏàöí³Y¦Éöö†P—ÜÕÕ2~ªÞ{Š9E†óƒüá»ßýݼyÉÛo¿êÒKϨ÷a¦…]»ŽÜ~û#ýëÞ÷½ïŸþôÛfo„ÕiŘj{_B¤\ww 6Gcf/¾xè±Ç¶ÿéO»÷ív]Ÿ P4]’¢È¶¶ÄŠíçœ3ÿŒ3Úº»[ÚÛOÜ®¢ªÖÙƒs‡åÌÕdsPÙÑÑÐÙ™š??5~*\À¿©ñðý ¯¯ÐÛ›Ù·oxïÞá}û†÷ì*!„b1jþüÔҥ͋§—,i^²$½dIú4t¿bÆD׈CˆÖA¹ÊˆÑÞo`HCƒå*¡€% Ù¥Rb*%ÁJÐÙ9FW.ûÙ¬68¨f³ÚÐ ûÁA5›Õ‡†J™ŒfÛU IRc£ÜÒol”ÀéÖÚšH§åÖÖDS“ŒSº&`özð]×+Œ¨øûë13Ï víªZïŸ}v_¹ìÏŸŸZ·® n‰î¥ÌKó7ÿ·³3uï½bÙÓhºshH½æš»išz衞ž¹ÿ˜ãeJ<ømm Yæêû‡`0„ªZ–j«°FÓª ªj™¦kÛeM³MÓf]w§-Z…¦IÈ?ŠÅ¨XŒ‚dŠ"Y–¦(’¦I†¡4%|"!αl¡`¬Xñ…ï}ïº3Îh]!Ìe]!Ÿ7,ËuœrMt.@Q„¢ð‚À  Q¸Pö`‚Š£Ó–Oý·™ZÞÿþO§•oûoë½#ÓHooæ¾û¶>ðÀÖ|ÞX»véu×]°~ý*ìÄÔUµ~ô£?ýìgÍç«®Zý÷ñªUóÂgÎÿæ7/oÚôâóψÇù“TÞ Æ?ÿóC›6íø‡¸øóŸßpúÌ|ñ‹¿úÙÏþú‹_Ütî¹ ë½/ ƒÁ`f'eºzz?ýévì8ô‘¼åSŸz[ÝGî½÷™ÛoäûÝÝ-õÝ™Ó lºÇÌXzzŸ~ú•ßýîÕ^8àyÁ²e-^¸ô¢‹–¾ñ‹p´hTE «†CÒ°P#;ÓÈÃñhœ‚˜*œov2¨ª50æø3Ë^(˜¡^V’ض¶†1òZZâu?cfÅ¢™Ïù¼¦âC6~&£…²¨Ö‡¦IYæd™EÄ=4MIËó,E!A`H’¹‰®Û¾Aûå/?ÖÐ ~ík/¹dÙt"æ$Ù¼¹ç3ŸùE6«}ñ‹W¾ï}oÄŠÙÂî݃¡Úþµ×4ÍæyfåÊvÈÖ[³fN®ž€heøIºÅkæìà &ö¢±ôâã Äk6¨™ÈU"®Ø„rÙ‡ˆ7ˆa[7ô^ ëR*™ÐizÀËeß4]å‡Ð >H’ª5!b1JXè¥(JUðM(Åã<„¯òº[EJ /ã'6zcfÑãÿñžA¢*FbÂÌ×½|nxšƒ½F—©˜Ì‰FX<ò‰Á`0ÓJT Å7ÌøUÕ£©¿ªj…9À°AôR"£F%ýŽ-?ÅZüºPÓ »'_¡ VFÉÇd¼KÈÑWˆ£ûÑó>¾~Ä5Fæ°ÅŽ·2Ÿ7FQ ;¥Ñ#R˜–0æJ\´sj˜L ½¶íE«n5rü¨³Ø?Ž9aÇ+É8ñGwÆk™£×àã-fZ‰fCáÝè6µ-“¬ë€ý¡ f–|Š;t(ƺ0L¶Áü¹ÄÐP©§g( Ï“²¢ðÝÝ-«VÍëînéêj>ë¬Nî8·éíÍ|íkOlÚôâºu]_þòÕ]]8¿cîÉh_þòc¿üå ç·ðK_º*šŽ™iØv9Œ”Û¹³oÿþaÏ š›ˆ”ƒ{|•™EäóÆK/õ?ñÄŽ­[÷õõ-ËfGÆbTKK|É’æÕ«;W­š·tió¼yɘ÷m´‡bN¬B’ļyɨÑú®mm <â4•JåÈ‘boofÿþloofÿþÌþý™C‡r0· K–4Ñ~ñâtWW˼yIüežn@:Õèaá0Óm’¢pÐ˜Ö ¯Mì3M7›Õ22h²Y-›Õ³Y}hHÍdÔLFËçpcQdÁbßܬ€û/VåÖÖx*%56Jx®yš81>Œ*„ŠÛãJ&>=4TœÙŠ9õ˜¦û þüçžÍ›{^~¹!´dIóš5 ×­ëzÓ›–‚Œ9Ìôöf®¼ò;«W/øñ?xšH‡‡µk®¹›$‰‡úhS“\ïÝÁ̰ƒ95ÀoM×bÑTUSÓMsr9Ý4×õŠEӲʮë«j5ùÔ0Ï \׳,§\<ÏÓ"I‚¦)Š""H’@ˆ@(‚Šï#‚@žç×ÄWLL¨•¡R š7> 7o{„P4)ºA4)é¤¾Ü ‚J&£†W(pY J‰†QÅbT[[®ŽC)y¸pê¯G*• ¸æÁJﺞiŽi¥ýxï¯(T8E–ãb¢È ò1EáÂÐ܈˞Ḙ¢p°±$±s#nLëP0“Ñ·nÝ·cÇ¡}û2†á#Il¥‚à+ _ÂóL2)66JR2)%“b*%55ÉP0•’åY4Gošn¹ì‹–ëz–åê:$üZŒ ªV¹ìëºcY®ëz°ò‚]×ile©rQƒ(²,KË2',ÇÑ<Ïxž–å(-Ç)#„R)©½½Z uÕªŽ%Kš%‰U.”–`Ng®¹æîîî–;ïÜXï™vÊeÿ©§^ºçžg¶lÙ“N+7ž{à k;:N¼1s\ôô >ðÀ¶Øfšî»ß}Þ?üÛ–,I·q__á©§^å½¢ðo}ëò Î~Ó›º'ÐþÝï^ýô§ŽúÆ7ÞóÖ·®˜š¿a–•¿ÿûŸnݺÿñÇ?¾paS½wƒÁ`0Ì b L÷¡ ¨üä'›¿öµ_·µ%¾úÕw¯]»ääßód8p û‘ü×®]G>ò‘7â—ã’t§lºÇÌ|od³:LJÁìˆìAjë£3»0#“O°LŠMMr*%ÁšÆFéL^jšA¥‚J% ˜gQD‘_*Y•JÅ÷CE~æ~tÝñ<¨—¾ÜúN¤^:òý@×m„̉"„ Ãoj|LB«¬(2Ðù¯%#E#ÓÕ!Iâ(Š IB–y„ˆ…Ö«–LpÚó¨:wÎ!„ŠEë?ÿsË“O¾tÙe+n¿ýÊTJŒÅh,b›iärúç>÷ð¦M/¾ãgýë¿^s½f8ÃÃÚŽ‡¶mëݶmÿî݃ªj±,½jÕ¼0aoñâôi:£ÐuÇ÷ýRÉòýôâ¦éB$ „1©ªåûªÚ–C]·Ã§4Ív]xÕëTL&£…£(RQx8hÃ[˜XŒ‚ àØj(…"ŠìÈÂV$ Ös¸Í`ÆÄq<Ûv £ªÈ/—Ót ÖJ×ír9дjì Ð@¥X4!`(0ékšË܈61!2 CC“iºL,¢|J–9Š"dù¨X?‘ JI’²ÌQ)Ë,EQ³( s:ŽcUµ¡‡=‰XVÙu=Ãp þ„ïWTÕ ‚Jxîð<ß0\ˆ]¯.”¬˜àãà\@ÓäHå jQP)Ëôä¡ç­W‚®>TÕ‚Ÿ”à ·Ç¥’0 æÄÐ4»T²Tµš<.@"q©d–JöÈÂ11ÙpO$xIâd™“e"Ô…W.²’“eVQxxˆ‹g‘Ê7Ö$kçÔxóAÙüºgÿIzóA‹0A½œ¹‘ÿ€™ P5MUmM³5ÍÖõ£ ¥’¥ë¶¦9ðP×RÉ„gÇ”ãñ(z\’$Rà¸4²’…£ÀœjäøQ£Gx¼ WŽ®ý0fᇨÚ#<ÌÂÊTJÆ óºx^6Hh~Å¢ Z™!~©dAM¡ù) ó²ÌÅã<,‡÷²|ô!°b¦‰ðèz¬±«ö`›ÉhÑr_“,ê€eI fá8Þà`i’üЀË 6aï̬ \ö÷ïÏ€d¹§gð•Wúóyƒ¦ÉE‹Ò`½_µjÞYgu¦ÓXk5Ù²eÏm·=²wïÐõׯ½å–·Ã$föâ8ÞÝwÿ÷÷¿ÿ‡¦&ùŽ;®>ݲµgXm™3T*•ƒsùËÞ_<øòËýd5Í>¶6LŠË—·¾ímgž}ö¼ šŽ×ЪëN__þðá|±¯/ßß_èï/>œÖ éR’ØyóRóæ%çÍKvvÂ}ª£#‰U°àûÁÞ½Ã==ƒÑ:ýýׇÚP$ ««¥««¥µ5Žgcç0`⋎w…2¾ \áEBê v…2¾û2M7—Ó3-—Óóy#—Ó³Y-—3òy=›ÕÁbI%äÔ¤Órc£ÜØ(·´(Rss¼©Inj’››H$ÁÌ4&ðà‡Ç„ËÒé´ÒÐ &‚(²<cš¢ÈJU*iºÑø“bÑŒæ[‘$/L$„†adA¬yØÐ âsfV ëÎöíÁzÿÒK}$I¬XѾn]×Åw­Y³ϋՅíÛ]{í÷®¾zõ]w][ï}™vòyãÝïþ7Ë*?üðG[[õÞÌi¸¹ÃiÙšC__{ð1³Ï ÃFAB ¬TU †2  !dš.xÏ!z!T.{aþ¦¦Ù®ë•Ë>8ă Ðu§\‚ 0M×óü ¨8ŽçûATÀ2_©T|>ä¸EUEÐ4MD,F±,E¤ç@š'EG+Š€ª aö=AQüîB¨fa& šBÅ¢…ò¼êLˆ5Ym%MsB`ÒD†S.¡RÉ<Þý =û0‹"ðá¾$±4 EhdR!pn-GO’Õi~t¢È¼~èÖýÇàhE R©Ü{ï³wÞù8Ï3_ûÚFœ­73ÉåôÿùŸƒaÎÞЋQgŸÝ‰Õös—JU1Æ!D*¦„ê|8hC¨–a8PX¥\à zÊdJ¡€@Ü÷#¾c6”†ÃqX–9’$£FcE'2Çáí8Géð ÁD ¿¢A`Q§',O~›‰ÃÅ€PB7Úï.‡ŠÏ‰·I$ æ w'03è᫪ ç‘cåøAx¾ð¼¶ÔuÇ÷+ºÕ)ìJ¥¢ª6Ô¨€Ú]áUÆÄÀ™B–YŠ"E‘¥i(PAFKV@EA`†‚KH´‹þÜ¢¿ÇðƒÁ`0hdø<ø ™VU{D3íhÚÑ•ªj©ª 5T¢ïÀ04(ï…—e6*ÄÅӢȆ+Á¤ýæ38­[Vy¤$•?RJÍ ¯=/Ð4úϺîø~P,šP2úÕPA'Z x4pÇy¸l„²$UÃ⡚ÏÇ@nI;¸*Õi…ãx#‡ êñgÄ’ïhš­ªVTšoN±hAÿ³æ} ]AÝYfE<ø¬,ƒ.ŸEN™P”/I,µêòWcN¢fü0Ém<ƒ³m{a¾eHÔã\ãÁêl‘‡¦&×ÃL€ëzÅ¢U,aÛ->tA^Gch–5/g¬÷ÐýY>º (|<Î…rü™ ˆ™cÔ„åL¡¿¹9ÞÒÇ#· fÆ2 >xg:;SX‚?»* ¤{÷A%Àz¿jUGww˲e­X{:7ð¼àþû·~ýëOø~ð©O½íƒ¼ŸÎF Oçë_BÓì[nYà kqòÈ aLµ}:-ŸuV'VÛcf™Œ¶ys϶mûwí:rð`®P0=ï˜9;š¦ZZ”Õ«lØpÖ›ß|ÆäG`2­¯¯Ðß_èï/ôõÎÃB8 ¤(|{{CGGüyÉŽŽä¼y `·oh8µÇÅð°vð`¶·7ÛÛ›éíÍÀ‚®;!–¥.lZ¸°qá¦E‹š.lZ´¨Žæ¦é‹&HÖr¹£nµèÊBÁ€ŒIb“I)™ªZpXH&«7XóºOY.ƒlšˆO¿4¦=?Ì ‰ªqÙÈÙ LîÃÿ}Ì…bÑÊçõBÁTUk´ùŽ P8=E’„ 0’ij¾¹YnmM@“îîÖöv,bÆÌY²Yý™gönÞܳysÏÁƒ9Ž‹yfÇš5‹.¾¸ëo\Œ¯ûN%[¶ô\wÝnºé-·Þº¾Þû2 Æ»ßý=Ãp~øæ¶6|tÅÌ&(œƒ=øÉ ‡\IHGUËÓ4•Hð‚À0 ÝÔ$ó|Œe™æfE|ô¢ÈÆb$B_g…†eزY}xX…å¡!5›Õs9}h¨ !‹QɤÔÔ$¥ÓJc£ÔØ(§ÓJ*%65ÉMMJ*%¥RâÄ“,ñT,ZB ÒƒÑqÑp=ÅLÓqÝjì´®Û™8:¢/$ŒÙƒÜ%EáX–Ð‚Ó¢È ò´¢ð¡ªÒ @).Œ(r§s~·ëz¥p#ñ‡“ûID:-YpïÞ¡W^éñÅ>Ó´W¯^på•o¸üò©éØó¨›~Ì#‰«V4³uTwâ´Öh!„šjÑLÕÉ<{ãG>ò_Ù¬~ýõöôTÕöPE癕+Û»»[Bµ=êÄ—^úË/_ñ™Ï\Qï9Õ”ËþSO½tÏ=ÏlÙ²'V6n<÷†Övt4Ô{¿0s„ ¨<ûì¾ûïßúë_ïD]qŪk¯=oíÚ¥'œSpäHñ‰'vnÚôâ /`ÙØE-}ç;ϺâŠU¢x4™«R©<øàs_ùÊ&‚ n»íÊw½ëœ©ùcf'CCê;ßùæÍKÞÿ‡qˆƒÁ`0`*M÷Àï~÷ê¿üË/³YíCzó‡>tI}3í‹EóÎ;¿÷Þg/»lùW¾r ¾¼™V°é3{9r¤¸ysÏ_þ²gëÖý‡çB 4žs΂իçŸsÎüåËÛOçññ©Åu½BÁ¨^šñ)FåA>Xcâê;ã­Š<4t4q.ü»`3˜-€ÀÇ‘ÛÑådRÂÇLL”J¥2<¬FÑÊãÅÚ¢c)a©íÑTõú£0ÇKµ”JæO~²ù¡‡^X¶¬åïÿþâööÐÔŽlìùªèšp›Ðo;æKB­ÿqö[„È4Q$¦QÕÈ †¼îK¢kF¿ TÑ'ómŸ0ûö ßzëƒÛ¶õ~àÝrËzEÁH3…BÁxþùQµ=IK–4¯ZÕ±fÍ¢óÎ[¸hQ>ùbN˜)—Œiï͘žñšÀ‹ÉHÆÃm°gQ•ApTÌ ÂnˆH‘z{¦éB<åHÓ-;ŽgY®ãxy õ! ÏëÖ‡k<( x½9š®º¼E‘…eš&E‘‹Ö„@Õ²= ú$`A`c1Šç–¥N8ðƒ9eÀX”È‚ã?D3ÃÏPÓì‘ûê~M`ÔVdxeÓt]ןLbF&Ôå³±Xõç#Š,E‘P¬E–f,‘B,Õ,ðc”eŽ¢ˆ°ÚƒÁÌa,ËÕ4ÜÓ`>~èÄ×u»X4ÃeM³¡tbA`B>ÈO%©jÃEÖÈ2'Œ 0ð¬ 0¸TÉlNÖpŽŽ¤y­»V*™år"?ˆæ‡”ËGËíL|©çt8¿Ã¹>zµp@¯/ŠL,FA*HxrOññ¸@P“Ä\³Ótáp¤ëΈ ß1 xhkš¥ë¬Ñ4GU-Ø–k€ƒOè¾O$QdÃ5ð¬(}(Ëœ$±¸7ˆ™ õ‚g<ŽCɸŽ<<5nÒPÔ!<ÛF0+Ë\<.ŒnϲÌáAcÌD 6ŒÎ*„vhÛå1õâ(bÇuÇ”ŒÃšDBÄ#·˜)A×bÑ,Í|^/ÍÐ,.íP0¢c¹A@ƒ ïÃöÙÐpT”+£; S_°Ž¡ëÎþýÃ`½ß¹óð®]G ÉŨ… ›ÀzßÕÕröÙMMr½÷sâ”JæÝwÿþ‡?üã‚·ß~՛߼¬Þ{„9^xáÀm·=²cÇá|à¢O~òòd«Ÿë VÛcæŽã½újÿ³ÏöîÜyxïÞ¡R©d†×ª‚‚ A--Êyç-ºøâîóÏ_¸xqz‚÷Ô4»·7sð`Ò:Ê<˜;x0æwð<3o^²¹Y™??5~*ì%¶µ%ð8áëâûÁ‘#ŲdÌ8ííÍ<˜…IÒXŒêìL-ZT5ڃݾ­-«“ÎFTÕ.È8RtLÉÏ,G#—‚ˆšëC‘}2)&“,'B2)NæçûbÑ‚$ƒ­‘ÚGë•b‹ý\¢\öóy}‚‘ùȳ&Áj´õ/4ÜY âN'ÐÚ‚ÉÞ|­mkkϹcæ CC¥mÛz7oîùÃ^ëï/sÎ9 .¾¸kݺ®•+;ð™ýðÈ#ÿsóÍ÷|ñ‹WÞxã›ê½/ÓB±h¾ûÝßÓ4ûá‡?ÚÞŽÕ˜YÃÉ{ðq‡aò@4&šDº4lyÖÑ5ã¼ðuÌã!h$ºRA4M1 š&c1ÊóŠ")Š(—}‚ ù~Å÷èvzž_.{APñ¼Vš¦[S0J,FÅã<ËÆ†ŽÇ9žg8.ÆóŒ 0ÐÝå8:ŒZÓh'ùd4И,ËÍåŒáa5Ÿ7r9=—Ó³Y-—3ÀkŸÍj¹œ6*–¥åæfpÖK--ñTJ¹„ad™#ÙC¾!ÇšfA~„—JäôE,ö¾¦9ý7Þ~’$!Ë<ËR<Ï@bQ<ÎCz„+ !Ç}LQd9.&Ь 0,ô PU †:£°Ñ1Ñ׳$I45½˜ 7&Ž.Ó4û©§^züñ›7÷xžÁKÞúÖëן9f t†á–Ë>$¯•J–ïšfC(û±XAPsUµËe/¬Ê0hcp E–ahYæàø#Š,ÃP‘g9†¡Ž}6®>{ÊDO•JåС|OÏ`MvŠ"/N‡óÔ]]- ¸’7ædX»öÎk¯=ïãk½w¤nôöfî»oëlÍçµk—^wÝëׯÂV7̉áyÁ³Ïî}â‰O>RÁ†T IDATùòð°zþù‹Þóž5ïxÇYS¨<ÍåôßÿþÕÇßñ‡?¼JÓÔºu] ¼íµÁþç_ôô ýã?^zÓMoÁ9€¡;¿ë]woÜxî׿þîzï ƒÁ`0˜ÁÔ›îBŽãýàøÞ÷~Ïq±Oúíï{ßë{9ñôÓ¯|þó«ªýùÏ¿óýï¿O£NØt™躳kWÿsÏõnÛÖûüó ƒ¦ÉE‹ÒkÖ,<ï¼…«VÍëêj&|™Fl»<4¤BíYXˆ&–ÂêÖh$-< = `Ò7‘à›š”“9ì—JfåÙ •¢™²Ìµ¶&jDö‡sÑ1!ªj £“RaSoR*£ÚÚé´‚ŠÆÚF+1sž—_î¿å–ví:rã—ÜrËÛ§Ã"äyaØ¡r90 !亞e¹!ð2£HÌ|#„Àl‹Òub)t݆Ðw"„ŠE!O„ïºnÃ'Â\&¸qw‡E‘¥i !$Ë,Ì ‚—˜p ‚ˆÇyT5êr!Š"%‰CÅb”(2#Oñð†àÒE) E<û Cù¾ÿý[üã?wv¦îºëÚ5kØ·™*LÓ}ùå>è¼Úž ˆ¥K›Ãl½+Ú±k3“}a©T5‡Öc8r–J:ÖŒ\*™á–£_U*Y•J ªöÄ Á"Q‡8E’ÄQÔQµ10AyLQÔˆ™E%ª„IhƒƒjôˆŠÁ@ÀSTÓY*½WUú#o_×Cs·Q˜†áÂ6жÑÈoab Š.#GüÝÕ&Fš.t Ï  Ñ¨ÍX쨜¢HYf±÷3Ãß}´ÎJ´ÈŠëzÐ{·,×u}Ót¡‚üè °Õ÷]¯–¬ðýàÿ±÷æQ’TeÞÿˆÌX2–\jßzïªn »¡i‡Ea@PP\eÆqgô Œ/Š£ˆ‚ÎÈ…Ÿ;¾¯"J# 8*tËÒÈÒÝtÓU½W×^•[dì‘ñûãɼ•µöR•µÜï©SçFdDæ­¬÷FÜû}>O¡`pÚ._)¥ €ø¢ÈF" \P@ÒGA¤h˜’×vQéfòX0àJ„h–¿<"""¢S,€›c/àïƒÄÞBÁ*ÌBÁÆ… oràîZÙXŒÅ¸x\>Àña'ðya?”!4…Ú“ª’qmÂtkSdS›âˆƒ"éÖæ¡*¨ÍaFs.gBkÁ‹°92¢á€L,ÜZp8 4€ðúEÖ™ç£UÌ`J´øäºâ—9ø¦¦Ù…‚¥ëvy8¶ñÈ[3¾1³lPøáÄ’ÄãÔ°'t'I<™y&šPSñ+:Ø|ÞH§µŠœ‘ã»Ö)Èø<%`&¢“T¡`òÓÊòy3—ÓqrY>oV,æF£LE$턈|(“»A""¢jéd ø+VÔ‘µ¡y¢ÁÁü®]=L†P`Y³¦žœ¾ûî_?ýôž+®8ý_±¢¶Ú5"šF½½Ù/ù±ÇßyÉ%_üâuííÕ®ÑR”mwîì®@Û×ÕÉgžIÐöD @–å¾ñFß«¯v¿üòÑ®®ˆ aÚ¨h”ŽF#ÀL¯¯—·lY¹yóò³ÎZ¾iS[,6†ÁÐ:8¨=šÆ,{ôÀKoŠÂ¯XQbÙ—Ðöd:e†RUëÈ‘áÎή®ÁŠ„E-[–Z¶¬g ßí‚ïc±õ²7Ë{½L±7s9#<‘Žó#&“¥ÙžDB„2Ì…éö3¸SU+“Ñ2=›52-Öú@ÀááB:­…3Ís\$•’jk¥º:9•eØ_[+‘yûù,Ç)f³ú‰Áëqƒi§Íg)Àêä9øÍÍ âå Z :z4½m[×¶m]Û·ïÏfuIâÎ:k9Pï7lh%qÖ³§þðÏwÞùÈ¿þë{ßýîsª]—S,]·ßûÞÿ:v,ýÈ#·®ZUWíê2-h>+F™æ(ü[ · ;!êÊ郂ð("!Án°"BÅ¢ÅXTñA…‚åyB(Þ'ð·HÇ0 B(c!@¬Œ¨øÀ"„"‘Rˆ1E¡Pd±ãÄ!„†¢iÆ4ÝH„ ä8EŠ¢|ß÷¼À4†¡,Ëu!Ê0ìbÑwœ"|Žã»nQUMÇ)êº3ÅßVaðaÊ2Ïq‘XŒг¢ðPóx\`Ùø„ ,òx<ÆqAˆB<à |WDÇ%Û.f2ÚȈ6<\?·f2ÚÐ:<¬e2:†ËÓ4-I¬(r±ÇóQAˆ2 Ͳ†¡‚ `ŽÔ4̽…‚U,zS„Ê2‰0ŠÂCD½ÅãB$ÂH­E–ùH„Ve#‚Ezžs2‚9ÉŠÇØii!‘]SSz¤Å œðó,CÆ?Ìæó†çeÊ<´–¢®Û®ëõõå^}µ{÷îcÝÝÙ ÚÚ’--Éš ! –ïù¼bá^zBA»‚î-e™£i:‘ˆŸ!|€$ñÑè(ž>´YzuA´±‘í7ú:;KhûÎÎU5aÚÖ GF´ŸýìÅ®®¯ÍЃh)ëì³ïþÈGÞüÑ^RíŠTY®ë=õÔî‡z~ûöýõõÊ7nùà/hm%‰Ðˆf$Û.>ûlçOìúÝïöd³úé§·\}õÆk®Ù´vmÃì}h&£ÿïÿîä} ß::xàæ3Îh™½]pzâ‰]þð¿úÕn¹å‚j×…ˆˆˆˆˆˆ¨úšÒ=(“ÑxàéþðÏË–¥>ÿùkÞö¶3ª¸fiÎý÷?ùàƒÏ®_ßt×]×]xáÚjÕd‹î‰ŸŠEÿ7úþò—#¯¼rôå—92‚jmMnÞ¼|ÆÖÛ6lhRÑ\ "ÃqÒZXñ…õX .ø~itcÙH2‹ÇGóÖ†Aá qE††&^<ÈãUŽã¶2Ô^™lå€hIÉu½LF—Hy4CËRá–9~“4-¢ ‹þ¸ýë_¢¾^ùú×ßµ(ïi1[È\¨ÌóBcÙúàíÐõ[Xºâ¡2 7ÌÖL'<B°²‹òýQO ä?jÃÂ-BbB°öÆù]á6„€ÀÐtä}° ‰Èû…€æZ"ˆ(Ër!T~<8äy>Ž^Þ¸±uýúfb'"òýú4UµÀèûA¡`AˆËšfßpÆÅ¢ùK4m ò8Ì"ŸÉ§+ OQ4˜;$}„P<.PÝ ô”|À Ëq˜€L—éɾ3‡AÇ0ÇñðÍÿ´‚XhpOAÉ/'®Cɇ»eIâË Z"Ñh¤|.–Ì]4ÑpÁ?þãUä⚟²,÷;ßùßï~÷ ÊÝw_ŧW»FKHmO´@åûÁ‘##/¼ppÇŽÃû÷ô÷çÓi-<§ÁóQE$‰§(¤ªæÈˆ¢6´lÚ´lóæågµ¬©)*ýáaµ§'ÛߟëëË÷õe{{³½½¹ÞÞl:­Á»‰"×ÚšlkKµ´$[Z’­­É––d[[ª¾ž<`ÎHAtwg0˾jÏq‘ŽŽ¦0Î~Ù²š¦¦8<Íyž?2R˜vº&œDÓT]<Üp×õpbÅlV‡B&£g2zxg.g„§X6RS#ÕÔˆuur*%ÕÔˆ@±¯©‘j_[+ƒˆhþh<àVg¯F™TJ¬"¼þêä±¶„ƒO´P„©÷Ï<Ó©ªfm­ô¦7­¹è¢ösÎYÙÑAÒ¡z}ýëO|÷»øÁ>ô–·¬¯v]N™§ø7ó`W×à/ùÉ•+ æžh©(Ÿ7TÕ*ô÷çˤÓÚð0 ±ÕlVTq@+0©!¡¸(r’ÄÉ2¦Š"p\ĶK¼x„~1Ø F(CÈ*EÔ†(ݘp,-vœF£4Î;…#m{eÙR0,ÃÐpoŽ¢Ç0®â˜~ V4†S?·‹ßj’Ϧ ŽƒT^)®iv±èçó†ëz†áÀ7˪jº®§ëŽe9·¯aAÍáO.ãÅ9†ž8 ~]@Ò³lD’¸XŒeÙH<.€(ä¢È’ø¸¹\ ®ëëz©‘˜¦kÛn__.Ÿ7ÓéB.g LÓK$¤+0 ×uGÛEQ 3NT±è#4éE¦YIâ¢QFQhÃÐÊM¨DE>-êá|Š$q<ÏçäHU-œ°ü»´ Sé´žÉè8H¹TJŒÇ…x\$^yQŒ ‰0‰0‘íy~…[Ƕ§êB C#Dù¾GQ”(rµµrc£"IüdNlìiœÂª=Ë_í¼a8¯¿ÞÓÕ5ØÙ9°k×±®®A˜+««“×­k@AGGcØ °cÇ¡ë¯ÿ÷W^ùRc#Y…!:•:ýô/Ü~ûUü a@—täÈÈOúÂÿ˜Éè\°öæ›ßtÕU!íQ…º»Ó0+õ§?í3 笳–_}õÆ«¯Þ¸|yÍÜT ‚_ÿúÕ/~ñW†á,_^³ÿ MS_ÜqÍ5›Þö¶ d‚ôío?}ÿýOýøÇ¾ôÒuÕ® Q•5‹¤{PooöÞ{Ÿøå/_^·®éÓŸ¾âšk6UÑ(vàÀÐ}÷=¹uëk^¸öŸÿùí6´V«&‹R„tO´è•Nk¯¼rô•WŽîÜyl÷î°Æ.[V³aCë† ­7¶nØÐJÂcæ‰À%@|Xú=v,=0ÏåÌ\ÎÐ4küâ+EQ8•“I±¹9ÞÖVÓÖ–êèhZ³¦ŽÐR–¦ÂÆ_ÙcÏehsŒá2lùŸWƒì—ȪÑ,©»;ýùÏÿâOê¼á†³ï¾ûúdR¬v³0wdD»ÿþ§{ìµÍ›W|ò“—67'ʯQÈÞƒqºØýSÁØúÄð¹'l3 !øÃ ϼÝð|>1¼s&'†Ï=In¯ã_{­2`¯¾^Þ´iÙ¹ç®<眕ëÖ5acÑœi2è!*wnã­6á³&Ä#–Ï-jš…C;¦PE/7•{§ãbŽØÒ4EÛöLÓÁ™tÝöý@UMŒêˆ§ªZ¾€?Ø0×õLÓ±í"4i@xƒÏu†‰"ÀÏ ²D€‘1¡% ÜÉõA€XŽ‹`“.8t!;ËF!Z‘%Þ|v¿>"¢R%ß0l×õ¦ ä›&¼T4 Çó‚йaØ®ëÃ@&uLçŸV`©ç8FF“¬”)ù\$”)ùL,Æa[<œ–t„,ó Cc=\­pQSMà,DDD³$ÀßC@”5Í*£óBÁÞ4.Ã~Uµ&Ëñ1¢È)Še`Ls\ØÓ{ÈiYæ!ÊqQE|„Ì¥/qᇾ\Î<%ýi§Åf OR>œBÁý˜¦ßÖu 8øåM[UÍP¶»P° ÿ ‹ahIâ…¾(rñ¸…XŒ‹ÇˆŒÅØD"†sx@>âa :% ÷rãQø¸ë £[&Ë‚‰Ï¢ðñÚ"¼ $—TJ"-™ÈqŠù¼ IGTÕ,—G ªjæóV¡PÚc•æ ËH<.Ȳ Š"( /˼¢à² Ëœ, t„„^°fŽÅ.TÜòÍ‹ßÐolŒ“i|""¢ÙÐÉAðk‰{aî58˜K ° öï ‚ ¡Aioo*ÁÆmk×6Ðí¼•ëz?¼ãÞ{è¶ÛÞú·{!É 6Á/~ñ—{ï}B×íÏ}îmüàäÉt¶U¶?|xØu½ÚZ鬳–´=ѼÕÈHaǎûvëìvÎ9+«]S Ç)~àÿß¾}}¿úÕ§V¬¨­vuˆ°&ä¶W„dâ[åñÁ›ã>uï0 žxZÑ4ŲQß‚  ¨À÷Ïó±å„¢(–e8.ʲ–e…ÏóQYæ ‘e4Ihç„ñ¤h¢ÈЙ¼Ã)”m-ËèÃp\·¨ªf±è –ãMÓÕu»XôòyÓóüBÁoáX*½ FDˆA˜ìƒÀuÉ€3.I<üí¢ÈE"L"!0 #Iì”$>¡ãq”s`éEž<&Ï\×3 Â»àŠƒ¸­BÁò<_UMˆóò¼ P° þ š \³Z/år†ïº>}TBÃP4Mq\”ež «(¼ °’Ä%“b"!* ϲ ´EáišŽÇ…H„Eâ¶…Dâ·™'RU §Ülýðp!“ÑÓi-Ÿ7²YCU UµpjılD" À5%eú•¯<¶cÇák®Ùtç×,[6GI™½éžh©©·7»{wÏ®]=»wÛ½»gh¨€jiI–Á÷m6´Ö×ËÕ®æ’ïÃÃêà D”©ƒƒ*Ä•a9FQT}½ÜÐohPjk%QäX6ÂqÏó}ß7Í"xŰ¿?ÄЉ. lô¬«SHÔÂRCC*öþB› [¡1T¸ Rœ†–€MÀ 9Í™¶n}íÎ;¡(ê _¸ö]ï:§ÚÕYäúùÏ_ºçžÇ‹Eÿž{n¸öÚ3ç¾`ÊA!çx/B¾àà{"„À´B®)Àì¢2[ Žb/¼èø"*Aàý±}BÏL^²7a,/MSØ´!£PiÏó†† ‘Ï[¾ïÇbÑ––TSS¼±1¾jUm*%#„†’$ <‰0 ÍÜø£#‘ðNâ(""šï‡"ØÑ|߇Žz-è²ÀžX,úºnÊçM„ðñMÓuœ¢ã ÃyùÜÀ0Çñ€86m(Š…,s CƒÛ àÅ4_âiš‚®º805¢Q82‰ŒGGx>ŠßŸhéÈ÷ƒBÁDår£¸üBÁö}_Óìbу¼LÍ+Z– v7×õ Ão.*Á¾Ót§è8^¹©Ïˆå î7„P"î0LÃÆm^Y„<éˆ"‰ÐvyŸå8ñDDóMc)ùžaØøFºLÉw\× SòB0§„/ºò¹£c“®Û®ëã›ó™Ãña¼€¤Pp"„âñŸã"4MÉr‰§Ï² bà"…+•®A|^š.]˜„åJDD4CÁms>oWZ×í|pù¶a8¹Üh9Ÿ7mÛ5M·P°lÛÕug2P>Brö( Ïq‘XŒ“eŽe#’ÄÇb,ÿÄb,ÇEŽÓï¤(ÇE€­OhVD M³=Ï+l¸ö}ž s9ÒáÀm6D+AŠ)¯¡yCäR™›ïZVn¤§þPEá)ŠŽÇŠBñxŒ¢Ü*+ÆbIâ†anž¡³l$c!l äpŽÐ?!žÆSÅÃûæR&êV‚]@8/¬õ@¬æx¶øøýµµ2锈NR÷^a>α‡ã"GF´™pð[[“Ä´IT]‹þÞ½%êý /t]oùòš‹.j¿è¢ö .X›J‘˜“’ïÿø·oßÿ裷¶·7V»:'%Ïó?úÑ=÷ÜG¹uýú¦jW‡hRU&äó&^@†€rÙÆeðhA9Ì‚Gî@Ô”Áâeÿ }V€JQ“NùÍGñå…š–)<­ÀâeIâ Ì0ã&¿ËrÉÍŽ‚ç6”…‡…HlöF B”eKa’ø6 Le°3lö†à„P4ࣰ¦HœÓÛ›ÅÞ’)nššâ'¹B âL!Ó˜ôl»X¦—Œyºî¸®­EU­ r9b»ð‰º>S04Øód¹Ä ÿ|,ƪ>¡e™‡ÿ&ìŒÇ†aÀ³*¬(rÑ(M< ³-h8¸æy`4ÈU€ÿûŽ3Úl ÃvO×mð·ÀÁ8Xc •Mž| A`ƒ  i¡ çù®[t]Ï²Š¶íš¦ƒû1›ŠÇ…dR¬©kjäº:¹©IijJÔ×+55R]Lî®çòyÚî‚ ÏA&cd2ÚÀ@®P°s9Ã0ìBÁ2 Ç0ð—:Žç8E×õ*LP…¦o0“Ê2OÓЇ”üÃП+Š‘;P†¸QðìA_'&EÑ'úíêغõµ­[wvu ÔÖJo{Û†+®8ýâ‹;p>È÷ƒýû»ººº`–ZX6²n]S{{FÛ×jKk×þÓW¿JˆäD§X­­ŸùÎwþæºëΪvE橎ùéO_xøá3ý‚ ÖÞ|󛮺j#¡‚,5išýÒK‡_|ñàŸÿ¼ÿµ×Žù~pÚiÍ—\²î’KÖ{îʹ™Ý¾½ëÞ{ŸxõÕîk®ÙôÙÏ^9~~&Ÿ7~÷»òž¢¨óÎ[uŧ¿ã›kj¤9®ê<‘e¹×_ÿï®ëmÝúéñO¸DDDDDDDKGsDºíß?øoÿö»_ýêÕææÄ‡>tñûß~µQú~ðè£/ýëOd³ÆÇ?~éÇ>v)¹%:yÒ=Ñ×À@~÷î’Ë|÷îž¿ øÅYú&‰æ*Úáø†äÇÕ°QyèûŧðW«žy“–eЩˆæ¡*.™ð5XÞ9ñeˆ&º`ÑØ‘ÿ•ˆÆ^ŒhìÀ?åc*¯²ãHѤž‚h%U5'žÏ›Ðk©ªiYÇ7m»hަY¶]Ô4Û0lÛ.ªª5sžÙE‘帨,ó±˲ ÷Ïß_–yŽ‹Š"+ŠÇEe™#ØDSò«AXÌtAªr<^i¶*$ƒÄ2ƒ Ð4Ëó8×4Ûö,Ë™®^!ˆ°‚™(H—!âÚ8•ÓÛ@äd,ÆE£ð›á8<ÑDÿ2M+åð(,M³uÝÖu[Ó¬BÁÒu:%U5á]·UÕÒu{ÂNIXè^EE.cE‘‹ÇA`!*˼(ò‚ÅØòNV–yQä!J"߈NX–åjš µP°u݂ƬiV>oâ¶­i6`ÊuÝ‚f?þ­A.Iœ$q¢ÈÇã‚$ñ²ÌI/Šœ,—Håм¡‹±¤WYʹÆg 'lj*¼ Hh4EVÀÁ³g"!´"D3Qã9ø@[  Lìª8z¼0(]‰Ä( @q""¢ãàÏ[‹~oo¶«k̽]]G¦B ÊÆmíííí 7¶­]Û@VæƒúÒ—~õ‡?¼qŧùËïX¾¼¦Ú5Z¢:v,ó•¯l}üñ—]¶þ®»®[³¦¾Ú5ZTšm_S#mÞLÐöDóEžç÷ôd»»Óo¼Ñ¿gOï¡Cý½ÙtZ«X¡¶¡Ank«Y»¶¡©)β‘ááBgçÀë¯÷ö÷çB,Ë@Úã @¹œ©ë¥Ç4†¡[[“ãoŠiýÄÁÐzìX¦§'ÛÓ“íéÉÀ¿¯»;3Þõõòòåµ+VÔ._^³bEíòåµ+VÔ,Y¸ÆlH×mŒªÇ³xî¢Ì¯7s9½b²‚aè2¼¾”É/‘1¹>’ÉX"!Âæ  |l»X« ®ÍLftg.g„-ŽI&Åd2–LŠþK&ÅD6c©”ˆ_=ßÑqÊu½LF OÒBÆzËr+vN–še#a|–‚ñ™tI®‚ª þã“…RðÅK8øDóG†á¼üò‘gŸíÚ¶­ëõ×{|?ÀÔû‹/n'7{'&×õ>ð;;{ìÓ­­ÉjWçÁm·ýì7¿ÙõðÃß¼yyµ«3G¾_„m{¦YZÍÇ!x¨dÀ+•Á³„OŸ(œ°¼P°p¾±°—ÇWÊŽS4ÍR9̇ôcPüÊÚ‰)Ìç8€ZåH„ÆÃ“ °× 樊ƒte܀à ʢXâÅSÂ3ía'°ÎÑXýbÒx~®\Îc~4ÊÀò¨(r’Äó<Ãól4ÊD£ ÃP¾,Ë5M¬žaT}ÙM7M`”¢ð4MÇãMӲ̃· î0úðhEá†Va(IâY6‹±àƒp'Eáá°Ùÿæ–0Y~¸¹É‚æ¦;fFnI¸yL¿Ññ! FÉÄ÷Ër_n¶¦Y¹œ©ªf&£g2Z:­Œp?†b ˆ¨©S) ãìkjÄš‰Ì‡Ì† ÁHWn!£2š„-»0xAÆ ׃7—3ŠEì»xpœ¨H„ŠD˜H„æ¸(Ë2<Ï‚™3ceYel!‰„$IzƒóbÆ!œ<¥E‘Ÿ$å ^zéðÖ­;ÿû=G¦”k®9óÚk7}ö b¬Â*ìÜÙÝÕ5ÐÙ9ÐÕ5xøðp¡`Ñ4µf @íÚÛÛÛW­ª;IÂÏe—}ã­o=ãŽ;®>U5'"r]oùòÏýàºòÊ3ª]—y-×õžzj÷C=¿}ûþ†å†¶ÜrË-- õ‰˜h&Ñvì8ô _|ñÐÞ½}žç·´$Ï?õ›ßÜñæ7wÔÕÉU©ÕÎÇî¹çñmÛº.¼pí?ýÓ_O;¡¡ªæoûúãï|æ™NÏó7o^~íµg^ýæÚÚ%wÚÓ“½êªowÞª¼…D-YÍ)éÔÝþÉOžè¡çMÓyûÛÏü‡¸|íÚ†9®ÈqŠßÿþöxÚ÷ƒ¿ÿû‹?üá‹ÉBéɈÂ*¼þzϾ}ý]]ûö ìß?hšMSË–Õ”Ù÷MëÖ5®ZU?¦¼ç‰<Ï) ¨ƒƒùþþüðp¡·7;2RèëË Òi YW'×ÕÉÍÍ È%,ð`ÕÕÉsq Àù¼F1\È匡!µ¯/öscßX"76Àñ¡Ðب1hjyžŸË`¨ÍåJæÚ\N»l¡P±8Z¶Ò–¼¶@´‡õHìµM¥D²ºC´pµcÇ¡Ûoÿù±c™Ï|æ­ýè¥dX9Uò<ÿ?ÿóßúÖïZZßøÆ»Ï?uµk´¨AW× DëíÚuì7ú4ÍŽÅØ³Ï^qî¹+O,`ó÷Ãf»ðNìoд v –ïû!×õtÝ)iœÅu=læÿDÅNìÙ²íQ àÌ × £B1<…ly`Ü2ÎÅ‚w†íw‚0ñN ]Óô„;iœ—ÜBU"""š¡ oÁé= ¯Ã6"ƒ  ¡¨ì<Æbph»+PùNîN×-l?Z CKE6epn€'bØq<. „À'Ê0t€PÄž`EhšbÙˆ À)1Tò3E_éâ–m-Ëñ¼Rzhçà>N(n«šf{žVWœŸFU­ À],zºî`r¨¦ÙÅ¢ÖÆ™Ô<…`‚ÇÃ$ªaÙ’ÁrÌ`·:$§ m …pã‡MLÅM$„Ï艈æÀŒÊåL„ ¢=/€ìPºn—• |§šÏ!¸lÁŒJƒ‹Öa„D&ÌüzD¥Ë ®>•DÑxà,oxsÚƒ#FGŽFK›pð©ý>‰ˆˆª.“Ë•BñÃLÕÉ^ÂpUË*NL5>ûŽ„Á¡2‰„0Å«ðh|\Ét‰–¸N YÚÔáa¨œíf&qƒ3Ì85Yº©)rÛ,…\Sp;”Ï›@Ã7 ;—3 `N.g†­ë¶a8ù¼iŽi–`ú¦éâ˜ä ) ø{Eb1V¢’ÄK/QA` AX çË2Çc£?ÇßÑâÐÔ˜r<žbÞe'›Íưr—ø [#MÓA0úôOÓПc1N¹xœ—e¡®NR¡¹9‹±ñ¸À0´,óàî†Dó„ ½8Ö5ˆAƒ¬ÿqßÊ¿Í (åÀ¸€rÙ ‚ t$´“`&Agà9„ØÈ6Æ~@3 -Ið›‡(3è²p† n…`4ˆ?…È mÿªjõ÷çðsdh€M¸›­xüaº¶VÿdÞL$Dõ3¡ Á Ró(E[C ‰mMÓž¼ÐfLVŸr˜X9Q S‚Ž bX¦®ÏG"‘Ë2‘‰ÐÐù>B(ð¼Àó|×õŠÅ¢e!dMH–Qd‰˜,ó©”óuu²¢Äššâ𴻘ð,¾üå/‡·nÝùÛßîîéÉ®XQû×½éŠ+NÛ²eå¢wíN+]·÷ìéÅk»]]ƒÐõ…óšwt4®\YwÊŸ2>ô¡ï³lä?þã§öm‰–²TÕZ·îó?ûÙÇÞüæŽj×eaèÈ‘‘Ÿþô…‡~1“Ñ/¸`íÍ7¿éª«6’›ÏÅ!Ç)îÝÛ·kWÏÎÇ^zéÐC C¯_ßtÎ9gå¹ç®ljJT±zG¦ï¿ÿ©G}¹½½ñŽ;®>Þì¦élß¾ëÖמxb—myÿö·ŸU__dUô⋇ÞýîïÞqÇÕŸøÄ[ª]""""""¢ê¨ ¤{¦Ùÿó?/>øà3½½ÙË.;íïÿþâjaUÕüÞ÷¶=øà3žçÿíß^ø‘\’J‰U©ÉB!ÝM!ߺ»Óûöõwv80èº^4Ê´·7õ~íÚ†µkÚÚjñ¬ ,>…sƒ‡Êy¼ì‰Ð--ɰ‰*\^@K–å¢ZÅb&ããX5 ‘ ãïÃdüE Ö:0bâ¯eZp$B×ÔHØ|‰¿±ñîLâ– Z"r]ï¿ÿûO÷Ý÷Ôš5õ÷ÝwÓYg-«v¼vî<öÿøpgçÀ§>uù­·^N\§DmßÙÙ¯ªÏG7l(EëmÜØ¶fMýâ鯫O6~çx$Þ9¡-rB{å„ÞÊ OŸ‰¡dj“ ÍÀþ8¡÷qB×ã´îÉ -˜á ŸÑfƒù ˜e!8¾ã8Ep+¢²#¶Á´ Àã~Ïóš .4ŒàŸ‰€BÒÀÓ‡"†ãƒ‘hh4Mɲ€Æ!øQŽXJÈÆGŒ<å)þB‰ª-Üö· –ëú†aãV Î]hí!ò¾éûã`¢·£›å„E(ÁÜ6CÁtþáXh–E•SDDYv´IÇb,Ë2ø`púâ&7Ë)(¸h”fF’¸Sú]a8¾mqâ ]wŠE¼Ë¨”÷"œ¬¥r.FØœúà™<ô!YæÊXüÒf‹Ï¡Ò`Dãƒ%‰‹DFÏý &""šçRUËqŠºnëºmY.ü¶,WÓ,×õ B¹ kT>oB÷Ѫj‹^¡`OáFmxöE.eE€ü:0¬+Š2’ÄþR–ùH„Vîáö8‘HÇBtòš9"¿biêÃà™öÓ'Ì1!F•§k¦> Žtk³þÝ;*ˆºa²óø¼°þ5mÒüW€ž'¤CVÊx>J²ÍPšfëºmšŽªš…‚ Ù «P° ÙÃØ²](Xø˜ñïÏŲÌÅbœ(²’ÄË2 ,Šl,Æ–Ë”…Å8²"³t45‚||J†lÖ¿œêú¢ºp&ØIÒ0M­ŠL!“‘ì }† ? ñdü Éb$Ìžˆˆ(,ÁŸ*ýƒ‡ººººÀÓ28¨¢2aãÆÖööF@$PÔRIÌ¥\×ûÑþ|ÿýO ûÙϾí½ï=<Þζ<ÏÿÙÏ^üæ7[,zwÜqõ{Þs1Þœ°\×{õÕ£hûTJ<ûìmOT-¹®××—;v,sðàðž=ÇîïϦӺ¦ÙáÃ"&™Œµ¶&;:šN?½yÍšz×õºº;;ŽéíÍf2zÅJ Ë255rSSbåÊÚeËRñ¦¦Dkk²¹9DÇ%H?pôh:|xôhVíišjkK…o—/¯Y¶¬¦©)N&=¦–ms9ýxãVP¨7íóþ‰E¯ø~®C.g„'Ä*^{V$BÃ\|z¸ É$l×>Füu³­ ††Ôæ\´¬âxiEc ¯øh)¢ãÕÌ9ø8ŒF–p™pð‰N¡FF´çŸ?°m[׎‡»º"ú´ÓZ.º¨ýâ‹ÛÏ;o¹™‰Òiíúëÿ]–ùŸÿüÇå;R-”1Ž0B%‹u© è[ü’¦YžWz Ç,€tÝÁVl./ !´ÿ`ggÿúõÍ55B›º+Þ ßåªú€Ó=yáˆ'„œ¡vp1 ^n„ö„ƒÂea€2øK¡ŽeÀñhlŽ¡@!û+BˆahYæÊM+ I1U,ú ×4àã®ë†ã8%/Bk7MîÃ6-Ó,1è§dÍÂ'ÎĦ…aâñ¸€CBÐyZ¹2t>ÊqhŠÂS•HÄhš–eà•s´òyc,ça´ÜÛ›Ålôñ‰sp¹©)¾¤ÿ!Èw§@“G=üë¡=@› fú~ i¶çùÐ$ y„€Ð„¦þtpã@{@åð–rY ( "°d™§iZ–y†¡ ¾ò±Dz%x=´pîÂÄáÔqáGohW>wG£Lss`˜]^±¹¸—ÃTÕ ÆSè= £€ô¨<@C Ds@k,8º ¢3d ú«i+€š •Cÿ À@yp9 †)=Ï \·èºžë=ß5 ;Íòy„Ã2‰D ÿ$“¸,BòðÝ~6¾ðù&×õþô§}[·¾öÇ?îK§µ5k꯻î¬k®9³££±ÚU«š,Ë¢= í»º`éV’¸õë›7nlëè(¡íç sø—yì¹ç<ùägfûƒˆ–ކ† gžy×£þÃyç­ªv]’\×{ê©Ý=ôüöíû”nØrË-´´$«]/¢ã“m÷ìéݽ»–Ñ»º` }Ó¦¶Í›—ŸsÎÊÍ›ẆÀê}ûú¿ó?<öØ«Í͉Ï}îmïxÇÙ'“u#ïŸ|r·e¹€¼¿öÚ3”SXçy«ï}ïÙ/~ñW?úч/»l}µëBDDDDDDTUtr]ï׿~õÁŸÙ½»çüóWðƒ\yåU±Y8Nñÿý¿—¾õ­ß¦ÓÚM7{Ûmo­nZ§…(Bº'":.‹þáÃÃý@À?rdØ÷+VÔ®YS¿zuýš5 kÖÔ¯YS¿€ÖùŠE?.ô÷燇á÷˜¥Í°J’¸¦¦D]ÜØ¯¯—õõrSS¢¾^nlŒcÇÀâV.g Òimh¨NFF´ááÂðp!ÖGF CCjõõJm­\S#ÖÖÊuurM˜JIuurm­”JI55â< ææx;&,LNá‡Ü„&`Xö&ŽL"¢)täÈÈí·ÿü¹çö¿ï}çßu×uóaw!J×í{ï}âG?Ú¾iÓ²ûî{÷ºuMÕ®ÑÖðpáµ×º1Ý~pPeÙȦMmm¿zu= ‰¬º|?(J^UpË¡±Sì.EeX0*ÙIKw)`”AaÄ0 ÐÇ^ذÛ[]æ\ €Í} »QÁ@ƒÆZQE‘D„MSøfÂBÊg•L¨àâ‚Ø Æ/|¾9!B(à³°‡Œb'ówÍ—Üoøš…Ûé€BŽ è@1ÆðPèÀ¦éû%cº¦Yžç»®§ëÀA6ñ#äL%|ÙÂ5KQ.s|µJÏ0vã;!$ËMSàãD  }\Úøº9vé-ÙvѲ„P.g¢räNžc¼ c¶Ã&N#a¶ãxA@|xÐqèÅ -é €áF"4ÜØãÔ!7ƒ›+Ø‘qãwi4ZÚT¦)#cÇÙ<µ_)ÑI |ÿ8# 0%¿bsÚƒ‹E<²X¾?:ÐÀÁ3¬•$q SyUâË®JprOtp)Œ)8ã¾0ñ}&Ü»’€%"¢ê Ò€† _€ã‹ž¦Ùp«P(XÅ¢¯ª&&Aô>Å4Ûö¦¾›…H!Eá#F–y ~KR  ‰Ð¢ÈÃàqD7"I%z><ÌB¬cø ”ˆèd Â2ñƒÜ÷ª*„ÛYžWІ‚ )¸"àB€ð|‡'—à{&wÐìiš‚Ažï`è”åÑè©p”ËF…û^^)ªt:Ü!Ãa (½„ªZ¦éjÜ0Ót5ÍÒ4Ë4]Ótr9Ó4Çì4 GUÍò)Çx +Q€‰ ‹±˜•¯(Dº*ŠÀqQAˆÆã¥~ ž”çø{ Zˆ,‡§é²gâýS$x*S˜T>av‡ðþTJ"†¥E,˜uÌçÍBÁRUSÓ,Uµ C¡`åó†ªZ°SÓF¨x˜L$Yæe™—e(p¢ÈÇã‚(r’ÄI/I\<.H{Ê8B4ÇRU3Ÿ7UÕÌåLU…‚;ËûG7+¨0½ š¢ñxéGQJEâq^’eÜð-Mða³ÚÁV>o=a×®c]]ƒûöõ;NQQøŽŽ¦ŽŽÆööÆh]"×ê*›Õ¿õ­ßýð‡ÛO?½å'ÿ³§^8ø¥/ýzß¾þøÍ·Þú–ÅMš ´=Ñü‘ã{z²==™žžìÁƒÃ 9’ÈkZ‰YIQ Ñh¤¦FlnŽ74$êëeYæ]×ëîN÷ôd‡† ™ŒŽi˜p– °©”ØØ˜èèh\¿¾éÌ3—µ´$ÈlÌÉHUÍ#GF€hôhâ,ÆíñÝ!ÚO(üxŽŸÇËÑ+%L|.gär¥=KŠ"C­œ—®Ä…‡uaRüñ>˜‡©úÇMƒjhPfªOt\r]æUÕ,,Mƒ©H[Ó¬|Þ,oZªjª*cŽŸ„ÔŲÌÃ$Ìöàߊ‡~ ŠBfˆæHŽSÌfõÉ8øáŸ„ƒO4Twì8´m[×ÿ¸¯·7+ì–-+.¾¸ýœsVžuÖòùЮ*‚Y`­o†×7Ãa5¨lV„²çùá´Raܼïá!£7&ÑWàæÓimÿþAŽ‹®\Y[,úaܼ¦ÙH]›?%”±+†¼‡£lPÙŠèÐðÞ½}[¶¬ÀÀÖ°Ó)eD‘-Ÿ>nƒýÿ Dbt¦8ÎP¿4”Áá?šÜ6/M…Ñ`pÂ.&Xnöý®â|Þ Ï_+{TÕ oÏð‚”|4 ЀE*l˜Dål0XÇb,Ë2ÐÀà09 Ý 40h~ÞcM³'IÛ6Aþ6Ü€D‘?‰Yö@®‡ß„{rœâ3ÏtnÝúÚï¿7—3Î9gå[ßzúå—Ÿ¾÷¾ìß?ˆS’wu ÀÃóQÈDŽÑöUYdùñŸûÚ×~óÆ_û&Z¬êîNŸþWž|ò3›6µU». RGŽŒüô§/<üð‹Ù¬ñWµææ›ßtõÕç e‹h¼z{³o¼Ñ¿o_ÿoôíÛ׿ÿ`±èK·qcÛ¦Mm›6-;ó̶eËjª]ÍQíØqè;ßùÃï¿wݺÆO~ò²·¿ý¬SH±,wÛ¶®­[_{ê©Ý†áœ}öŠk¯=óÚk7-zÁç>÷ðo~³ëÉ'o[±¢¶Úu!""""""škU™tõüó|ð™§ŸÞ#ŠÜ;ß¹ù½ï=Æֹ¯†ëz?¼ã_ÿõw##…ë®;ë3Ÿ¹’Ü!Í\„tODtò‚™®®Á£GÓ0!{ìXÆ÷EáW¬¨[¾¼¦½½¡½½qùòšööÆjUÕêïÏM¸690ÇVËH„niIΓµÉ…+ÓtFF´¡¡B&£ŒÕtZO§µááR!“ѱ†¢(`ß×ÔˆuurMMiÙ¯¾^)3ñ¥“üæ]×Ëd´q ´Ç,PA’íðY‘]S#á¥)°µ»-Ñl(‚_üâ/wßýëh4òÕ¯¾óê«7V»F Lüã¾ÏþªjÞ}÷õ7Þ¸…?W™ŒþòËGÂhûh”9óÌem¿jUyX :^aú0*c²ÑX>¾®;Åb‰¦êc?16c¤) ±†1›•YÆ¡³B(ìEÃà“·ÿ†½³‰DÉ}î4(ƒ •¬À%;¸ÖP™‚ß ¿*Ûà@˜¼ŠÇGAÆawopŒ³ ±®_"¢y"lå«hx®z¸„aWœ>“ãB¡ü IDAT ŒÊ96ÀlŠk`ysöaPq<~µâxünøxB\¸ò<lÐ`£Ç›šf{ž_,âWÇäŠ(,Ï ðæiÇ)†Hß³`Ä#ì kîyÊýxèQ¨MŠ"‰Œ&{ÀÄ|¬NY°Y#„! CŒ88Ä…çYœ`†ˆ¨º ]hv‹_Ú,cñm4;C|0\ÂSŒª˜4›Vð€B×&øËQùZÃ÷Š!h>ÂEÐüÒÕŠ³_àT.p9£ò $¾<ñ CDDtò‚î]†¯ª¦ãŒôUÕtÝ ú¢Fs¸A6eÜŽ B”ã"ÐW@|T"ƒ8RèR`ì†gRè€!  ¤áçS"¢S«ð“.ãg4\ÿô7Ùa3¼F°ÂÏn>¸Mø6á#[øHü°VÅTRºnCîB¡DÌÏçKÄ|]· …1?Œ‡ï0—3q^ºñ‚AQxŽ‹Äb.Hy8dy´]$ñ<Çp<%„h¢©u”üÉî® %Ÿ(¬|Þ(ìBøøV™o1~4ÍÒ4»Ì«²q_,x°’e³ïEe°ø¢ÈÉ2¯(‚$qxO"!àœgDD!ÈŒ½Ùd4üð«SÓ ˜hŠ"$1\Æ44À¥ÁNND´è5s>86Ë(|Á?A¹®wèÐ0Pﻺ^{­{x¸À0tkk¨÷7¶µ·7.[–"F£YÒë¯÷Þu×£/¼pðŠ+NÿÊWÞÙÖ–ªv•ŽMßu×£O?½çÚkϼ㎫W­ª«v†Úž¨º ‚`h¨DEïîN><²ÿ@ww&Ö0dЦ) õV¾¾>ÞРÔÔH<ñ}¤ivw÷·+@†N&ź:yåÊÚÓNk>í´æÍ›—××+sýG."Ám&ÚCÇÝ¢}…ðd ªšù¼*ù¼U~ˆ6p湊¨XA`1LmlAÄ,ûd²ôÒñÞ¼éº ŸžÍŽßr9= zÃ/£êóåð±úVQ¨:ËrQ ms9ÖP0¶¦^;Y›ãó@br˜Š‘e^’xYÝ #ìñD ™v&Zˆ 3mÇ¡ðGãFY6R_/76&êë寯8FáC9̤&ZÄ ¯Öa÷5ÞÄôvìÓYz©§'»woßþýƒ †Í²‘––ÄÊ•µ+VÔ%“±ÉÞ°â=Ão8þ¥Š³ð{Z–3¾«?I…Í6ØB [ò°ñ |dt쑑БѱGF ëÇ?~nÕªº›n:7lì Ÿu\o8Y%O•¶n}íŸøÉw\}ë­—Úw&Zˆ2MÇqŠ¶í™¦wh@–GøòÁ Ñp] Ll†Àh°Ì¿ÊØüƒ@aPØ,„Oc¼ °, \òÈ’MVtüÚZ9•jkQäjj$Qdy> pÈíQ,úºnû~P(˜¨Œ×u«X,¡Ïwe¸yÁLÃ$‰cf, œŽÅ8LŸ>![r,èàˆBÁÂÌz̲Ñ*ÐöáG]Qä’ÉXm­œLÆR)©Œ³Çüz©¦FL&ÅYª0¤µ0M×¶‹ØÌ¡ †á8N‰G;ˆÜG.Ž$….\ˆ8¨"q ¿šIM €N’à¼/È 6]è@À¾Ë0 ,èãVÄ04DŒâÆ&Š,EÑŠrRé 0d~½9E*¾h”I¥D’Šï”K×í'žØõøã;·oßoYî–-+®½öÌ+¯olݺó‡?ܾwoßêÕõïyϹ7Ýt^m­4ÇÕ0Mç'?yþ?þãù¼ù®wóá¿yÍšú9®ÃB!Ý͆2ýÀÁ†‚GúcÇ2žçs\dùòÚ+jW®¬]¾¼vÅŠš+j[[S§dÆVUÍþþ²uëk7Þ¸å _x{}½\í- årÆK/£íaEìqFë’5l-…ÝK¹\Ɇ #!„áÅ!ðØA›¼m»hš%/5öØQv†í8€õG؈YaÊÄu@ÇRLགྷ²$qø¡ƒVB¢È†ÊžÀt~â®B™eKûÃÜ DFcmÖà …rØE6X#Ñ©•a8®[DåË ÓŠ!ÁήSk –ïûžWr=âèUµ‚ (=M³Qèò‡`K0a£PŽ .L†)™ ÁKž)ãk Òiš³#x(QˆŒŒ¯¸XŒ‹Fiºö!ÆÉ%‰ª%hlÚ,5Ý|Þ ‚7x\“.¶€‡›ºçùA¨ª…BCž®Û®{" ohi¸qâN^’8†¡)ŠÂè|¸±Ä£ ´LܘÃH}š¦hš–å®Yæ†"-™h^©ã‹Bð_œ…å¸ò¸Œ?eüGo*4]64–ö>àxÀàSt¼Ѭ î9óyÓ÷U5at>\õp 6 ¸ùšfCèô!†á8Ž1`S| £¢ÈµahE†RahIâ T¢û`Œ†< ô °°UŠÉ!+GD³§bÑ×uË÷K·©p±Àó¤¢Ás)šf{žìlÏ+=©•ãÜlÇ6ß CÒ©™G¯) OQ¥@GÈ0AQ"!!, Mœk nk!q< áHHUÓ&[‘ûp6„o60þ>ŒŸö¥LFŸìÙßQ„9ãP€=S¿”LŠK“ëD4…òyÃ0]w Ƽºn†SÞe ºn«j©Œ3›†l"!Äbl,ÆÅbl" •(ˆ"ã2 á¹M¢E£pg8>ÑB¸Än Ë* f •íp[…áÔ °ÉóQì¸àù(¹k"Ò4R2¯P° Œ ¹œË@+|:ÜC£‹Âóñ…r™'="¢Å$ÁŸ 滺;;À0sðàçùŠ"tt4nÜØ†) Ä6yjõôÓ{þùŸR?ô¡‹?ýé+Hf—“W¡`}ãOþøÇ^³¦á»ðÂöj×h^Ëóü†ví:öÒK‡wì8 ì•dRܲ… í‰fWÙ¬>0ïéÉÂÏGޤò0{‰¢( ¡R\`4ÊÈ2/Ë‚(r,K;Ž—Ë##ÌmRÅqŠ¢ŠE"hšjnN¶·7®]Û°zuÝòå5íí ¤%Ÿ˜<Ï.ôôdúúòýý¹ÞÞl__®¯/×Û›.À1ŠÂ·¶¦Z[Smm©eËJ…¶¶ä"žðý`xX Ô` {†T5š¦êêäŠp<™|2`5Hβ9î­xpèàÁ¡C‡††gÉXŒíèh\¿¾yýú¦ŽŽ¦ÓNkN¥f+ûÑÉËu½_ÿúÕï~÷W\qú­·¾eË–•söéyÿ»ß½®ªV{{ãµ×nºá†-‹¯èîN_yå·®¾zã7¿ySµëBDDDDDD4§š_¤{¬]»Ž=ôÐó>úŠã/¹dÝ7n¹êªsœp϶‹¿øÅKÿýßÏ80tÙeë?ò‘K.¼pí\V`Á‰î‰ˆæF®ëÁÓþ‘##‡ 92røðH!2--É+|_øûåËkÇSË~‰/Yõôdººûûsé´–NëÙ¬–Ï[ºnƒÏi¼K€¢(j@VíT*–HˆõõJKK¢¡!ÞÜ_µª.™”pŠˆh>ëxãóŸÿE>o|îsWýÝß]4ßR›Îù~ðýïo»ÿþ§…¿çž/¿ü´j×h^Ë4Ý»{víêyé¥Ã;vT)ŠZ»vmÚi-$””ˆhþ+l”»ä+öãçÌK¿VßgZêâ NG(‡Éøa{Y؃&ì‡÷OFØ?UïCˆ®D(”»CÉuÝ.=ßèÃu¤i–çÜB™féš[9bÁ2ÀMŽ]ã8Ž¥"6f&ÂÇ@p ÁI/àˆP iJÓ”,—`å¢È¢Pj œÇ'ÉÀA&“Ñù‰„pré¢rãÄQR¸1 –ï¸q‚e•G $Å‘Z†1©óÌÙ£ Ü!x ‡-…‘úOQ£H¡ÔheY€ç,8Cù)ª²ÑŽoùDDóA'ÍŸ0¡â*N9ÞøF|#wÂÐüɸüãOÁA‚šˆ– &‹ª„ëà7™ÉÅ΢1Y4Ñø¡©Á£3ѬêxC7+†ÎiCøf~g;a6š†ÛM˜±¦b…'öá#Ÿ/eÂd™©_šÿä00³¡13zê—æ†,@4ÿÓ/º^¢á—5­DÃWUSÓ, ä ì3D°`Þ²¿È2/Š,\A¢È ‹±ŠÂó|TXEa´qB°ò“0©­…?7?›5&ìö¡Ç §™Œ·…;ºTJ"Ï2KY‚ǃޠáM˜œ·º)"Ûq{«¯W0ʇˆˆh¡è$!øäŸBàéݵëXW×`W×À+¯M§µH„^µªSï7nlkhPª]Ó/×õ~ô£?ãOˆ"ÿÙÏ^ù¾÷Oæ‚NLžçÿàÛÿíß~Ç0ô¾pí 7l!ßäxa´ý®]=»vÛ³§×0‚¶'š%årF¾·7ÛߟÈ÷ôdN÷õe‡‡ øÖ¢F£ÿ =-LAø~`šN6k`ïÌND£Œç!ËròyÃó„P<.¬^]¿jUü¬\Y·jU±a¯†‡ ýý¹þþ|OOþk€³RÁçFÓT]ÒÒ’hjJ47'Z[“mm©¶¶Tkë"!ÚàøÄjhfÏž'FUsœ¢ªZòÆáìqªj†_RU«P0!onX<…lpåÈ ï W•Ìܤl»˜ËéS'BO£MØ¢Àí3>ùÁøŒxNƒûˆˆfUÁÈ úûsð{x¸Ð×—½±¶±1^_/75%àw]ÜÔ„hccüu˜¡ŒUáC÷ªF%€)o‚w1ü*Ü *øË€uÆ›ºn‡gS±}1´~µä–¯§q檸WðÖ+ܶ‘]±)I<ÞÄiÃT¾ fHPn “  Ü<¤uŸ°¶’ÄáE[š¦ÃŸò<ÏžÞmÛºž}¶ë¥—[–[_/ŸwÞê‹.jó›;ÚÚR“~/KFO?½çCúþm·]yÛmo­v]&ÕË/y÷»ÿã=ï9ï«_}gµë²°åûA¡`Në<™ÂÊròäè06zZÏ AŸr†ãºEÇñ ÃÁÁ&…‚íû¥ìžçkšÊc¥®;®ëvÜóð竪éûiºŽS“?jg·…öÐÃÿ1Š cK ,AÀ} -P C¥Óºa8™ŒžÏ›Ù¬–NëÃÃ…¡!µ¯/‡ÇVx„¬H™.ÏÎW¾T‘XrÛ¬DØÇã‚, ‰„J‰ÇŠb”ç9†¡‰üw¢Ñˆã@‡ãºžçyдàî¨X,mBr hc¾Àóõ Z rÎÈBoZà¦BŠX6"Ñ ›ÃPp£ñJЮÂoBQh!špð<L_Œ›l3ëR±Ð/ìÔs,ÉdŒLeTKCC…Ç{uëÖ×^yå(MS—\²îšk6]~ùiÉäüþž¤€?ù»ºººU„PMtÚiÍíí°rºn]S8éÔ|–çù«VÝþÀï¿îº³ª]¢E¢—^:|Ýu¼úê—–òÌ)—ëzO=µû¡‡žß¾}Cƒrà [n¹å‚––dµëµÁÀ@¾»;sôhúرôÑ£éîîÌÑ£#н3 ÝÚš\¹²nõêúÕ«ëW­ª]µª¾¥%± ÌEƒƒêC=ÿÐCÏe2úõ×oþÄ'ÞÒÑÑX­Ê8Nñ™g:Ÿ~zÏ“OîN§5@Þ¿óg¯\YW­*rmßÞõÞ÷þ××¾vãÍ7¿©Úu!""""""š;ÍSÒ=(Ÿ7yäåÿû_Ø»·oåʺ›n:÷ºëÎZ¾¼fŽ«±cÇ¡ï}oÛOìjkKýÝß]ôþ÷ŸO`4Šî‰ˆª(ÓtyøððáÃ#GŽŒ:440 Â«ŠÂ‹"2žçÛ¶›Ï›xƒ°ì¨LÓÉåŒ\ÎÈf (ärF&£g³F6«g³z.…1KV C'“±D"–LŠÉ¤˜LÆ’ÉX2)¦Rb2)F£t±Pòý “Ña]3œ©‡´¡É8œ—‰a髹91ÞiDDD4Dz,÷;ßùßøý¦MËî»ïÝUœ]·êê¸ýöŸ¿üò‘}ìÒÏ|æ­ä>¼l»¸sg7ìíÚÕsðàçùíí8`oݺæ°u•ˆˆˆh–´Pèü§0&a¡úO{G4o5¡ÓÅO 2žõ8õ)S  'ÓÉãÇŸ‚Æzî'<…°ç¹0R¼Ô¸±§ß÷q>‰b9o„íyöë»n±œ(ÂI•\Î@‹•H}U-…Ã/¹…Z/ææÇbl4AIý*Î$}4.ýŽòÂt~–@!Üž!´ ìàˆ ¼‰æ‡N 4†c >¾"²t&ªh¦…柒Q†pº‰‡òyB˜ ¸R×AÏ–a?Œ¿0˜BF^(?kêÏ•ež¦imE.a``•$™ð~ üÀ°ûc1b¿ñ~=bàÑ¢ÑdY(ÐqòôQh„ ½áŒÂ•ÑÉñôÑäA˨<üMø„…«¦Ec¢Í´/M†ÿ9ax40ûfj\>Y@_⎀¦•Èø…‚eŽe¹…‚¥ë¶e¹šfëºeš.¼jšŽiºªjš&´Ò‰ŸdzòEN’xžVþâd²ÌçM]·µÿŸ½÷Ž“¤®óÿ?»:TwOÎaØ@Z– QEâ¢z¢Ü)žÇéé©wgâz(¢wè™Ïß}ÁCN$ì’„CÉì²Àî'ö„ÕÝ•«~¼»ßó™êžÙ™ÙÙ‰Ÿ×c󨮪î©éú|ê“^ïç;?F6 ÅÌ€=¹œé`àØ*gÒdYŒÅBªªÄãáh4‹…¢ÑÒËX,‹)°'™ŒÀQ "BùœüïLs(ÓthðÌCl¼¦cw깜^™çŠþC`8‘PT÷(ªVU…%úebšç²,§¯AðgRY€8€ÙæÍ7<ÏO$"eê}ûš5ÍkÖ´°Çãô40ýÞ÷¹ýö¿¬_ß~ýõï=餕s}E L¿ÿýί}íÞýû‡?õ©w|üãç0È5Êóü7Þ@´ýk¯õ f29餕 mÏ4#Êf‹}}ÙîîtpöÈIGo’ ð<Ï{žWFƒq²,ïû¾m»È klŒ×ÖFþEˆošN¡`æÓéœP[]¶¬nÙ²Ú+êW­j\½ºaåʆÚÚEKPšY¹®×ÝÞ¿¸¿?[îårûö ãÜÄà”;E‰åËë–/¯[¸8ô1›Õ5MÏf j»4*Ìdа^Ðu0ËŠ x$&-–wamRóô1…ê¡ õqZ˜¡ÏgD0A \0çÓ\0©…{4Í€šfV,…9+UUTU‰¬XLQÕª*0»%ÞÉ¢–˜–ˆæäJ <íj&”y_bƒbYŽ®^ZÔKìs tÓ•_Ž9ŠÀS’v©—}r.gzžïû¾çù¾ïMr½rŠÇŽãé—´'à|FþÅQ¸ð%Xè£àÊ–lÂa‰~I;´IÉÚ7z4€{…Äpxô%Pƒö/B9Ž÷Úk%êý3Ïì¶,gùòº“NZ¹iÓªw¼ãè––ä\_àœéÿô§o¿þú÷üíßž9××REo½•z÷»pòÉ«~þó,ú@Ót Ú˜/OÆw€º¯Öšjê =Tx&™ú¼ëúšf²=Õq¼B¡„wM°½™f©ý…—pÇÁGÊèp¸û蟌_Ž”2š(¤ŒùG:°ÂyYአppO%IˆFeRö¥ƒwŠÏóª"ey8,‡B‚$‰t>•YP6[„u ˜ÓÛ‹€ƒ…ñX– ×T,Zù¼‘Ï›©T®P°Ò邦Å¢™Í†a ¦aXºî˜¦í8£ŽhžçE‘ç8Žç Çq@Špw’èyRîáB)ÿ ø'+sP˜N†¾ Í£ô|eA‚‡ ±ØâŸ‹Æ$èj›jŽ@Ijk£‡#G Ó¬©¿?»uë6Ü+ŠtÁëÏ=wíYg­Y(l÷É˲œ;ûvíê‡\àÛ·ðq8,¯[×¶fM3¢íçí3y2zÛÛnxßû6~ö³ó7ÅÓÂÒ“OvýÕ_ýäõ×ÿm!.%ÌíÝ;ô«_ýåŽ;žI§‹§vÄ•Wžzá…ý˜tFdÛ.¦yîíÍôöfºýÌIJ’ÐÞ^»|yݲeµË–Õ­\Ù°zuÊõ κìûþc½ö‹_üñOz£½½öc;óýïß4P9®ë½ðÂÞ-[¶Ýwß‹CC%äý{ß{âªU‹yÓMýèGßÿ§7lè˜ëkabbbbbbš%ÍkÒ=jÛ¶¿þõ3[¶¼<2R8þøe—\rü%—7Ëk¯½ÖûóŸ?qÏ=/ÖÖÆ>úÑÓÿú¯OK&Ù qŒ鞉i–‘EåŸQ(9üƵ Aàâñ°( ¾ï›¦[,®ëBDQhmM,[VßÑQÛÞ^ÓÑQ»lYmGGmSS‚‘tæJ¹œ‘É\ûlv Î~kW±X(™Œ$“‘ººX2r}2YÙÞÚÚè!.˜¦“Éø{(°®ÖÛ›¦iô:1¬œA*…d²Äǯ«S‰iôú뽟ÿü¯¼Ò}õÕgîsç³ Ie97ÝôðÏþÄÚµm7ÝôþµkÛæúŠæ‹,ËyùåQ´ýîÝ)ÇñÔãŽ[VŽÙëhjŠÏõe2111-ÍU?j¼Ï™a¼ª ŸQžç§ ì¶z8ÚvmÛó7Ê1|«P(ɱ0ƒçÛu=°#£ £ð^Ót !…‚á8“µð‚0 ©„b”cèKD2•"Š<˜tÑ×ËqìÓ«ª¥Ø*¶’’E˜'¬ Ï{áMÆGrOð®É¼e o2u–7™JÒˆÊwá[Š‘i–eÛn±hBt½T‰°éVÃqJáµØÐÐ'ø>07¡¢vu½K–Ï®ëã h„íÎä}Ž#‰D˜"<Š`U*SKF#i1§Ö/ŒnÅfxߤ”$cL3DI&KŒqÉ4ÿU¦äžçkšáyòôË{Jû5Í€ž$ô =ÏÏç ˆ'„ú1öŽãM¦…f RÔ@¿·âñ0ÏsP%¡±ÃþxÐé .¨•˜®ÂéYïŽiN´nBˆ¦™®ëAßÒ¶=h.!ç$‚æ £sa؇,Ë)-ÈEAÚ½S×Cµ˜@P¿$‰²4…Ððq "0 °Y„„I ©¡ –ÁðÊó<ßçÇ(˜®[<Ïçóf±h™¦£i%æ8ÂÇaÃ4aÃ2 þ£ªBÎx<…¤pXJ$JñxXQ¤pXRÕÒF<…ÄHD†<‘Ï~0Ó<Ô!ær©v[ IDATÎ7•A%o7[ªÌñPSec´'HŸ8 Œˆ† &Eh¼Hi26]x°„Œ·¿¾^eÁ`KDX®&“_5ë B1ÙL ,Ÿ.`Éd¸¶6ÆúÉLLóA ‚?#²mw÷îAðátuõïØÑ“N$IX¹²ø6twܲ†u®¯t!iûö×]wÏóÏï½øâc¯»î’ööš¹¾¢ ®®þë®»çÉ'»6o>îšk.Z±¢~®¯hŽÅÐöL3. ¤Wm7‡‡ °êÄqÌ;Žë8Žm—ÆøÀ#s] <ñx¸¥%QW …dQäa©+“Ñûû³8y•HD€±¾lYn´¶&Y_ú ò}?•*ñë7kd¤«<ÏutÔVvr–/¯›ç M30þ²š•_깜˜k!õÀ¦‡QÛx,ûÉøÒa±†¾Hì‡H}¼fLÃàñ‰"O¥U 'aUU û‰ 6à4Ö†¡™>˹áe)S#¼Ô4@Ø…‚U(Àg (–U’/*p¿L_ÖãK@Û‡Ø]cªª@RÚøŠ{& ¼“±~ÚñN|Â\ü‰É樞ž€ ¢ý´¤`=@cŸàhཇòÉG kd$?<\Ég³F:]Π岈חe!™Œ44Ä››--‰Ó–MD,néºõüó{ÿøÇ®'ŸìÚ±£ÛóüåËëÎ8£~– ðáÇ?~ü†¶þä'³yóqs}-c48¨]rÉ÷ãwÜñ‰ù@àÍå ß÷LÓ…¬È7 !ãºn[–™?Ðûm˜ŽŠEÓ²\xŒÎR=I9x! =<%‰¸øÀ7ühX†w’¦¡¯¼FðÔE%2$åÖ“Á@”É!Å¢eYfdÉçM×um»_F2ô…f³£…„”K4ßèŒ0v@UC‚ÀãKÚåBHÉ)Z¾õb™^²–•qóàX“iª¸(òŠ"/ÁHá™åàÃ#mQhúÍçM˜¥;O t[Ë…—àª#)?×÷½ªC§‰ÅqL…B’(ò¡ ‰²,ÆãaY‰p4*G"r<!å~èÿ/´ƒ JR¿–ö£)‰Œâ˜9Ž£“´Ó¤f„ÒV=Dç „èÐï Äö$aŒ» bšYM™’Éè„ô#êK,x‘ UwÀL¨ÒŽîvÓ,•[´¿;N Ùﺞ¦™„)¹ÞiMˆ6æ)°¾B¨¢[m¬ªa ¬Ï‘j$e,Ò•ŽižŸ“øðÄ2‰ë|¾Dî07¡Âl ðÓ¨n(«˜g²]‡‚L1 È>zåɘ¢ˆ©dXh€ BÅ:b°‡ ”Ãt©†¸BH,¦ÀX¸¨„zŠÊr‰ýÍ úL³¦4[¬VãAó1˜ ÞÒMð9B5LxŽi–>Ö¶Œõ’°2B@¡Òº`Âþ à¿ !ˆî•$!SË ŽÌbRÙ"a_UAàKëÂ4‚z )” ]ƒÖqÛ¶¨bX‘s9Ý÷K£$:¢#'!ò =+lÝ ^@ƒÕMùh4„­Ô—2"\ˆDd KƒÊE@ ‚€&¦YDüBå‚þ*æ3ƒÐa›m%t8‘¡­†RÛ»IÆjcmRa#ƒ ¨k„pXö}ß÷‰ pŽã ï8.ÇËrÇ.Ÿ7}ßwx8x–勦e9¦éärF€iÔÐd2 [v%“øëÐì&aI¢Ñ4¾@ÉFe¨ø‰D3Ù0-AM›•Tô Òþ1Vþ¢Œ54ÍÌç `“e³z±h‹f±he2:l‹V&S¤¶õñþᰉȀ'‹D`[QUžf±XHU!º>‹…TUä°ŸYA±\×ËçL¦Þ¿óy#—3è€M¾! ñ‚ÿ¡‡c±¸"ÿU5¤ª¥ (xö¯ªJ<fI&¦Yƒàв@½ßµ«ûöî7ßðúÑ3>ûÙsÕk<årúM7=üË_þiÍšæ¯}í=§vÄ\_Ñܨ*Ú>‘ˆlÚÄÐöLSçùƒƒZ__&•Êõôd²}}Yh{z2à. „/Ë¢çyŽãá1ÇzK–ÅúúXSS¼­­¦¡AUÙ÷}Çñ4M)tw§† 1žçZZ’H”À¦¦ø¬ L†a÷÷grÝÝ#½½™¾¾LOO¦§'Ý×—M§ pN($¶¶Ö´µ%[Z’íí5--£´Ah®”Íaªç )†áT‚’E‘¯«‹ÑA(8Ï3íÈÛvË`zÖ›8èƒß0îËçaHhjš^¹dËe‚›¢ªH¨éo@·‡©†™üZ»€M_(Xù|‰P_fÖÃK ŽÂ˜V5/ɲ†âñÒ„O,ŠFC0‡ Ÿh4”H„c1%•c1_.qsþ,V$é=Û_¢E °Nú' ¡ü ^¡`Œ=Á¢' qÁE»I !ÈúD¡½Téš«DÀH÷‡Chazf,ëàK\K¢O '¦¬à>…QhÉáê T €•PNÂòˉˆó Q†a¢k÷ï>(Óvùò:Œ±miI¾4¦­|Þ|é¥}@½å•nžçÖ®m;餕›6­<묣æC/nvôÍonù¯ÿúí·~ìì³¢÷¤{*þ¾}ÃË—×Ñ{ ó²Ë~T,š÷Ý÷éššhÕwûÚ²J¶j0 ®*d<•†Ò)‘’ÕöOÓ ×õ§dœƒ§(8KÑð&7UU‡5}xœBôxÀ³ m¬Ÿ– õ¼ª†!ó³š11M^Ù/ùžضyóq7ÜpY]]l®¯h”N¾úÕ{ï¾û…sÎ9ê[ߺ|i¦e‚Ü阽d2rÒI,f‰‰‰‰iÁˆ¦Þ£ÓŒàB@9—…¦g26ËqJȦ9f€ÀZŒ!Ú/F±zžO•ÉÒbZ!^ÄÇ,F)`° @Ó!ˆ&S Y¡E³ò±DáC ó= ןŸ˜=…NvB3»¡¨G"!Y.}”R,ÃXk8Ž_‚ËLL³/l20"÷*ùÖ8zÏxoœâ»‚|I*E&T<6Fbc& ¬¤¸Ï¡£¸§÷FÖ{a:DA' ^°íËå ß÷iJ>ŽP  4ˆP§`Pƒ}9hò åÒ䳂Á’"t½hJ>Ï—šBhõ°‚l4p&`Lõ{}ÑhH’xº“ÆÄ4' 4=Ö šª@;hÚí¾‘þX:¥ßA%Ëb($É2 Í|QD‘çyNÇqç8Î÷}Žã ÿlۮ繾OLÓq]ß²Ër&¦…Ãbñc1:œñxXyU…—R<®ˆ¢P~)ªª"I¢ª† ½SUEÖ]RBð½®[†akšQ,Zºnåóf>o† ,ð‹E+—Ó!î:—ÓuÞX+ €hTV)Sb±¢HÑhJf$"Ç㊢Há°¬ªŠ,‹±X)ÍC" …ÄpXŠÅ”EG´8T5˸› lŒ·d¤P”ý|EÁ6ƒÉ0ƒÂxûëêT†‡X|¢ X¥#‹.Z°3.V¶ÈH€V¯ª; u$“aV–˜˜“&Á—e±¥…AðKÊçÍÝ»S@½G'$ +W6õ¾³³ùøã—××/E¯×A¥ëÖÿ÷“7ßüh<þÒ—.¼üòK­üL,Çñn¹å©ÿ÷GdY¸öÚÍ—]¶qñ…¦O Úþõ×{óy3‘×®mÛ´iî™MŽ©ª ÃîëË äzzÒ¹¾¾l¶¿?ÛÛ›Ì!¸x„ÏómÛ ,S£6‘ˆ44¨íí5GÑØÑQ«($tÌåÌþþLw÷HOOº·732R¢®'“‘åËë–-«ë訅eËjÛÛkÙ"ÅxrohHëíÍ j½½éTJƒ{×ߟíïæ$¡©)ŽDûÖÖQ¨ýl¶°žç檎qª …ªðÔ$I¨­V†ŸÐé §“bšrê)B½ùÉ€SŸÍÑv•9>E`½ª*ªª$“È[†ÙË0W$*c¹Ê&#œlÉfKs,ãø¨™™*e†PÅ&0XoúKÔ¼iê%½'Ÿ7Ù=1=µÇªØLîµ—÷ŒùV´Kï¡×Ü©=cÎÉdÆL«"ã°»  ¥i:fu8tè4öHD¦Y~È~EÁ²#u¨ÙÀµRå„@É„,à(„ÒR'(t˜-h.Je³E˜|ö=½ÝÓ“Æç/ŸÛÚš ”g¦¤¡¡üÓO¿ùä“]Ï>»§««_ùcŽi;ãŒÎ3ÏìÜ´iÕâö”ú¾ÿ¹ÏݹeËKwÝõÉ :`§ëz×\swGGÍ?þã;úv°¯L°¼N¿ ¬Å†õÛß¾°bEýG4ÁɺnïÜÙkšN{{­çyÓ3ŒáâmâJÀâðw,a“äc+ÍLF/­tºÉ‡‡óØge!‘×ÖÆTU‰Åpæçy¾ëº¦é h ¡F^H?à# ÏRxøÌ²r¹R†uÈî–ËA¶õR~¾lV/ï,½ úàÉ“L–ïÁ¬$䣶KsÉd˜ãbZ²ò}ÿ¹çölÙ²í±Ç^Ý·o¸©)qñÅÇnÞ|ì‰'®X¸Æ§BÁ|õÕLÔÝÕ53« êQGµÚ~Íšæ+½Ï0“)>ÿüÞ={÷ì|ãÔ®]ý##y˜“‘eÁ²¼/ùâø‡·Ïõe2-årúºu×UEóE"2Çñ§¶úÖ[?6û¶tdÛîÿrÛmO?õÔÍÍ ·¶&çúº¦&ÓtÒéB:]L§ °12RÈd ƒƒùT*—Jå5\j$„Äb¡ææD}½ÚÔohPÁ‡S_¯67'êëcõõ±¥ÐŸÉåŒûïéŽ;ž}á…½«W7~èC§^qŦ…›‹ÎóüçŸß³e˶­[_ÈòþÜs×âtÐBÑ /ì»ôÒÿüâ/„ÆôÁ·ö³ÿkÖk¯ÝHËÄÄÄÄÄÄ´´ I÷(]·}ôµûî{ññÇ_÷<ÿ”SVŸþúóÎ[7kÉݻÿ÷Ÿ¹ýö¿äóÆù篿òÊSO?ýȥЕG}øÃ¿xüñ׫FÕrwÓMïÿàO™ý«bbš?ò}?•ÊÍ–ý!ü Zwwº·7Ý×—E;5¸áY[[“mmÉÖÖšŽŽÚÖÖdKK²¥%ÑÜœ˜µ$‡®ñò0ÃýšÀ1,Š|]]l<~= gg “”e9ét!€¿Ïdtð™e³z–fDbœ*.C ÂÕßÖÖ$3"01¡}ôÕk®¹«P°®½öâ}蔪}×\N_¸9$&¸øßüæ¹o~s‹ ð7Þø¾sÏ];Ë6‡  íwîìÓ4#–×­kÛ°¡cÓ¦•›6­d1{LLLLLLs¥@¨Úú+Bà0„ ê!ú]‡õg<ˆ9¶d,”–PÌYBhËgŽ{(Pt[ùÆ@P}h‚\L>xä• ¥è„9bñ0ÍSÉã˜mÂu«@Ì‘EžÍ–\éù@(Â~¡`Ú¶Gÿ¹iˆç9U- ¢Ñ£\LÒ+0ÂMùÑÔNGlb¾:ED"ÆÏ€(„½’2ï5ð§™fMX†1eXbg”•OÑöG˧ëú„ŠÜ¨,üÀ¡ c“bê2†•»3>^°°…B¥Ð\:˾M4Ä‘ý’4Z&Ç7:x1=Ö˜æ¡fŽž?…wÑoœ^nŒ)1÷É„ô|ÆÜgšYal!´DÅ¢iÛîXJ~©½ü`8 €ã5ÍpÝ[£OéœäÅ@“a¨>&„¨jˆçy(çØûd†, Tô)I0ãQ,¦ÕÅ 2Í+MÀÊ?hØÿäü“o°D‘"Ïs 8q2žç{žÝã >(ä’$†B"€€ÃaY–…hTŽD人X4B ò‚!PH¬†.zѬ|]·óy£P0 Þ$+‚Ù$H'-H"‘e1–Œöd2 ¬"j¿$Ë"#æÏMLß5J~mmŒ=£‡ÇfÐ _øÅ±ˆÆÒžÊQ@cŒÅ”xØÀ2Æbð;DƒhTQÕª*Ѩ²èö™˜·’Ȃɧ«k`×®þ7Þð}¿©)ÞÙÙ ,‰ :Ž8¢‘u{PýýÙnØz÷Ý/w\Çõ׿÷ÄWÌõÍ =öØk_ÿú}==éO~òíŸøÄÛ—Ðs´ý† ¬î0Ѳm··7³ÿ0C…&id¤ˆPc˜$áy⺾㸎ãÑleŽ#’$F£¡ššHcc¼½½fåÊú£ŽjijJâg³Fooº·7ÓÝîîø àˆ"ߨok«ik«im-Q×ÛÚj::êX‡³ª††òƒƒ¹ÞÞl*•íëË–AöY€wào f¡`f³z¡`æó¥£UóMJ‰„âq%QB!)•ÃaYUCÑhHQDA`r,–ÐúÊŠ"ƒãÅu½@ Ä¢±{ôÀHÃŒ¢½@(4¡lwRšî®ÜãÝc&gðŽ ÜIº:v¨†hä ÷ªF×^I×M$Žk§GC²ĵ¾Dè'uBˆNø'Ç0-MÀÁïîN£¹k~{{ ³ÿ- äž}v÷“Ovýþ÷;{zÒŠ"­_ß¾iÓª3Ïì<å”Õóu`èyÏóïºëùF.¾ø8E=Ï{≮ÞÞ´,‹›6­2ÍñÒÀO=­R%z¾X´^}µ‡ãH[[ͦM«"éé§w80ré¥'¶µ%zžâ8^¡P¢„WÞPRarÏ7•ó§pgI9—9©ð³gf;¨ÿm<ó[åùL•Â|NšfBó„{°#|Ê“_$„ø~i>F°«£4<£%̶ÝBüÿ%ý$…F}¼³`C?˜,—ú¢è[J†$ ѨLÆè9ŽÅR×»Öªªð<Ïó¥ÌI3Ur\׃qq:]ÌdŠ€ŒH§KÃÃùT*ŸÉäaà†Ãè†ãÀE8E‘T5R[ihP››ííµË–Õ®^ÝØÖ–\:«‡I0sBçÛCB=fæƒÕaxY9vEžžZI$ªœoA¨½ª†Ù\Óä…„ÙGy¥»;½reÃ¥—žpî¹k×­k_p9† â= í»ºúr„XO$Ü€¶_¸Dàikh(òÉß°,GøªAm¿ùÍ'ßö¶#fÿ˜®.»ìGÏ<óÖx3œ7ßüÁ÷¿ÿ¤Y¾¤¥©½{‡~õ«¿Üyç³##…ÓN;âÊ+O½ð s»jìû>tG‘bO¿ÉãvÀó+55ÑÚÚh]]¬¾^miIÔ×Çšš jcc|‰gWÂÜþó›‰DøŠ+N¹üòkÖ4Ïõu͘°CòÀÛúû³Ë—×½ók7o>vÓ¦Us}i“ÕO~òûo}këm·]½e˶_ýê/Gñþó\tѱs}iLLLLLLL3¬…MºGišñøã¯?ôÐ+O<ñº¦™ë×·ŸwÞºóÏ_wôÑ­³ð×s9ãûå/ÿ¼kWÿ1Ç´^yåi—^zÂÂeƒNI[·nûøÇo­:œ–$aÇŽo²TöL‹^‹€e?m™¦ÓÛ›îéÉôöfº»Gzz2èÆÆYE‘š›MMñ¶¶šÆFµµµ¦©)ÞÜœhiI65ÅgÁ‚†]„¤WZu«òë1{6øq¡^‰³_ÊSo:ŽG(¤>¡ìûxë}4ȶP0éˆv|BÁB¤¼MÿÅb îV~BAÏ-Ë©DbM^ñ¸Âq<9ˆ\KÑ#„ŠD¥£X“É*\~ú-•\~Š.)ŠHá8ž™³gGXñ±ƒɶ=(ÌžW%-†©T朰,G×Kà~º –Ëv©:Ð1çS"D‡@ÇãUàøXŒ£Ñc*½ÄDþh4„%v?†¬F7fš!år†ï‰ Ãj‚m®[˜âªÖ_Ë*¥Íp]bÀ\ׇ6«j®L¤Q(ЮMIX1# V(º2b:¬M±XðǘI !v°0¼ª–*éüé*0Ͳ°–SÏåü IDATÉè¤\k UÂ’ŸÏ®ëCc„  ¦ë¶e9ØxA)ˆ[,ZUÙ(kà? ¸b¿HUAà’Œ5#U ó<‡ý%hÂ8®ÔÜ@€.~²$q!LL³&h°LÓ…†®P›0 ¹P0ÇÃØc A5Ä,Å¢iY.„.{žŸÏŽƒU‹æäýc<Ïû¾Ïqœï{¼I8Y–$I>%‰EQQ¤pX ‡¥PH’$!W¢Q%–£ÑÁ<D"RMM4kj" Öñ[Ä‚EÄ:â1úˆÛ€Ó ?†Œ68:D%c˜(7C($!Ž"¬­¦&:<ŽiÖlV/­bÑ*Ì\N/`»„‡Ãý°Q(˜¹œQ,šUY:.‘G"²¢H±˜y,Ëá°‡#9–c±âá’Ép%ÈŒia áøÙlñ°GÓtM3ËèI=Ÿ75ÍÈç %˜° ûUU‰Çñ˜¢ª°“ññ™˜&¥C„à&|í<‘¦¯¿Þ ÔûíÛìØÑ£ë–$ +W6€ hÍšæµkÛjk£s}¥s¬—^Úÿ•¯Üóâ‹û.¾øØ¯|å’¶¶šÊsn»íéuëÚŽ;nÙì_ÞŒëg?{â‚ Ö/[VWyhçξ¯~õÞ§žzã²ËN¼æš‹ZZ’³y³#†¶gšX¹œíHfp0ßߟÈõõezz2©TG”¢(H’àû¾çy¶íVLwp¡‹…jk#MM‰ŽŽÚeËj;;[Ž<²Ùu]h­ Á‚&¬¯/ Ëy¢È·µÕ,[VMUSSbùòº…9rXåº^ww:‰ƒÛèåày®¡A…(èÌl<ŽaØ0(§ÔÒóyØjS£òiŽ<8d$†‰DF0: 1jôoUUªNÁDz}n@~A¸*„éçr:^-\XåÂŒPTUvumJyð¢¨j¶“Éð|È XÕ•QI?§¨|Þ d£/‚«ä¸8vϘ9ÈLïÉf‹Å¢å8.L«:Ž«ë¶®ÛŽãº®ç8žã¸¦éÀ´-äÆð<ßu½Àõ€8ŽpÇóÏs¾O|Ÿ@ÞRX݃gÑ_Ñ Ù¦(z]¾|µ\ÀxO¯$¢’É` °Ý å ö(n<,ߌÝSyN° ¢ëUY˜£Ñ$ÙÃŒLLL¤‚ƒ¿oß0öFè„:4g$ ×Úšd“ù©}û†Ÿ|²ëÉ'»žzêtº‰È'ž¸âÌ3;Ï8£s4RXœB–4ôÐ)]¤Hçó¦ëºèY¿úýTN$èï{3ý±˜<4”w]oժƞž‘bц™´O\ÑÚš„VÄ8®Ô@ÃzÏ—¬G‘HH–Aà4 Í(©Çë"~øÃ¿xüñ®ëŠ"Ì1­'Ÿ¼úÖ[ÿô«_ýý|ã~òÊL^5…¡øòS:ÿÄTqó„Jð<%|<©È Ôô|&æ$°mF4 l–UrLa]F›.¬hª$€£ƒPæC† ¸P0mìÁÓñb×üä•Bžçpj:vþE±TÙ1õº§Âal„ñx˜ãˆ(–<½è<ŸcÆJ麕É3™b&£g2ÅL¦PÞ(f³E€ÚÃ6ýŒ55‘d2’LF‰py;’LFkj"µµÑÚÚ(|“äΡi`KÀ¹ è-àöRãàçó&½K/Ôââ,ría~#`^‚´ 0_3ñ8Nh„Ë?cö0ӌ˶Ý'žØ¹eËË?þúÈHáÈ#›.¹ä¸‹/>n1sa%ˆö€¶ïéI;Ž'ËâQGµtv6!Ú¾©)1×;/ôÝï>üýï?:δ·k×·Xî@¦)é–[þtÝu¿­Z¢¢ÑÐŽß $Ñd:¬B úSO½ÑÜœ¸ôÒ¯ºêôÖÖ[L‡¥œlV‡L¦ˆ/ñ7ý’~¯,‹55ÑššHMM¤¦&šLFjk£@´‡^+쬩‰²@žªÚ»wè7¿yîÎ;ŸëéIoܸòŠ+6mÞ|ü"~bòþÑG_{àm{÷-[Vwî¹k7o>ö¤“VÎóA‡çù—^úŸ;wöéºIâßûÞ¾ÿýÍõ¥1111111Ͱ éåyþŽÝ>úê}÷½ô曩ººØ9çµyóqgµf¢Œþò—·þçþüàƒÛ !\°áØtú鋨7O1MgíÚk+óôŠ"ÿÎw®ýïÿþèœ\ÓÌj)³ì§­L¦ØßŸíë˦R¹žžt*•ëëËö÷g²ƒƒylz `kk²ììI46&Z[uujCCl¼‘3Ü‘j´úƒóëÇ£Õ3~ý¢”aØü} 잟HDø{ØÉdx©­"3-z½òJ÷ç>wÇo |ò“oÿô§ÏEoålû»¿»…ç¹;îø‡ùf/›XÏ=·çÒKèºÞx套ž;mÛýÁýÑ_¶¬î;ßyßJF:U å_zi†í ädY<öØQ´ýêÕlÝ‚‰‰‰‰‰‰‰iÑÖX4WB‡:Âp&´³ƒQM(.(Ÿ7p@x{Œq/ t·BgÌ¡CXW’= !ÜRyˆà!zFlî šÒNÊÀЪ‡âq…}#¨·òÏ‚iѶ<ÏÏZÖ@˜JåÎÊL •!.¤Z MàÌÀ{ÇûÓˆòŸž0Iÿ 2†PwœÞ‰ ì$±4U0(ŠÌ¬{‡I•EhââGÆЪüÀ©–üC|”UÝi¼iûª…–…Ä3MIØÄ#5ëEØ/Ë9Ô•Bì0§§ ûÐ(|œPýbѲ¬1Y4¦¡‰3aªíÆ@8 Ÿ#%ê„@J¹.JýX v"¹üt[d ÀcZè‚Àoè–cÙÖ4Óóù¾¿uë¶ë¯¿?.|âç|êSï¤×CCùSOý†,K?üϵsx‡®ûïùŸøå¬ÿÅ/®¢÷ço¼ñÁ_ÿú™ãŽ[þõ¯¿çøãÓŸVm¿sgŸ¦á°¼nCÛ/Q 准´þþl*¥A»00…(†ÁÁÌB`>âyžëVIÝÇq\,¦Ô×GëëÕÆÆøêÕ «W7¬ZÕ¸|ye¹½½é|ìÀ@®·7ÝÓ“éë+QÌÂa¹½½¦µ5ÙÒ’lk«íÖÖd[[ ‹G ešÎà Ö×—/`p}}™TJëíÍ ²\’„úzµµ5ÙØ¨¶´$›šâÍ͉ææDSS¼¹99É$RÙlÑ0ì@t tÝÇÙŒ:!%¤H„Ž4Áy€ñvÒw×q4Í€1i>of2Å¡¡¼aØå´mV&SÌç êºÏé­êL ó™sú^°y  ;“à ñ¼’E¦ÑX•ÉŒ¹)xßÁåyž¦™„âçó¦ãx´Ÿj’RU…çy4oàÍŠFe°9‹Iy¸Åhë:š°‹)¢Èãý•$Ö¦ÁLBª%ZôÂú;^F2¡ïtÚyÈt&XÁÇKH@&4—ÎÔ»–޲ӀH__›"-õŒŸ‹žƒoYN:]˜ÌLKU¸)ç/DgEå ªºx:'ÿ,Ȳœ?üa×–-/?öØkÙ¬¾qãŠÍ›;÷ܵ˗WI?<ß´oß0píwíêß¾½{ÏžAÛvyž;â€Ú7uv6wv6¯ZÕÀâª*—36nü²‡êè¨}æ™ëfÿ’˜´²'œðõJǬ( W^yÊ 7\>'WÅ´wïÐÝw?ûíϤR¹ÓN;âÊ+O½ð %fÏó5MÏdJ¹yµ7ßLÕÔD OO6«kšA³ìs9=`8”eÒ'“¥$=å—ØN$µµ1È·L¦©*.lÙ²í·¿}á¹çöÔ×Ç.¿|ã>pò‘G6Íõuͪvíêߺõå»ï~aïÞ¡ööšóÎ[?o‘÷žçÿÇJŽ”±J…0eŽã'IR`š†‚Ÿ!ø™æDXègx±hÙ¶Cq]ûù|)ˆ”n¨¶¦ÔîÓ½lk\·'¥`TPá‹„\΀Fç›l&B!Óê`óJóG[@$“±=U-5hJ¨†kÆ£ª®‰âhcÄÐÉó\æc’¡°S Åó§Ñé 4(ãž‚@ë3^ l Åa}¦Y–aØ™LÁ¶ÝTJ+-üpod$ošŽ¦0ÆÉå ËrMÓ6 DzìbÑrϲ\Ûvǵ,×ó|Ì7SE^–%Yæaì€È0E‘Âa) ASµ*‘qªÞx=ÖU›C{®X´LÓÉåtx’kšaYN>o‹–e9Ù¬nYŽ®[ýp> èÆË¡àƒpX …Äx< OÀœ©ª‚±ÜÕö‹ªªˆ¢+tW„i6…ˆóñò(èç°1뜌MŸ@íðˆtZLœPW§²^åBãã31ÍŽ&€àj0òLmSSbùòºÅ ÁÏåô;û€z¿kWÿ+¯t†‹…V­jêý† ík×¶-ÐèbÑúÉOÿáÿ¯®.öÅ/^xùåáÁø¹ÏÝqçÏÂutÔ>ôÐ?M°Ô2Ïõì³»/¿üG0±vÏ=ÿxòÉ«!–åü×ýá‡?|\UC×]wÉÅ»8šß÷»ºÚ~éJÓŒÞÞL%&l` ÛߟÃõMŽãÂaI’ß÷mÛ³,‡ ñ<)g¨'’$ÔÔD ôcÅŠúÎÎæŽŽZ˜)¦R¹žžt*…1ÙÁÁ<Ì{+ŠÔÒ’lnŽ·¶Ö47'Z[“íí5mm5--‰ššv8dÛn.§§ÓùÁÁüà`~d$ŸJi}}ÙááüÐxwÚÆPS©©‰Ö×ÇêêbÀòH&#uu1èÙ*¡/`D  ÐðºnA³ò†eÛŽa8†aÁïbÑ®ž‘\8ˆL …DAà6Êó¼ ¯\t]—Ny`Sò<çû£É†Çs]Ïu=ðmÛ*:PP}ß×u(ê@H÷Ë/fYU•tR¤I¯¹£–2v…Ëñ(¤‚޽’Ñz.ߣ0§,­XLñ}?—+š¦kYN>o€™æ5Í0MÇ4ðòy&äs9#—Ó Ã5Íê KIjk£UÇàt^êûn‰‰‰‰ x¯ãqðrxæüööš7–A{ªiºŒ®’\Îð}M‰è'¡O€L3tÝ¢(ó>¦±G÷#:')ì¡Mû!Ѩ ûšf¤Ó×õÂa©±1ÞÑQ»bEC"H=!$‘ƒ2‡¹YšD/Ë"öyæ|™ïõ×ûÞ÷¾kš0¹=ôÐ?¯[×·lfyâo¾™Úµ«¶=@òò††˜¢H‡‚ÇÛ7|<›ÜTÏ'î‹¥#XŒ˜Ù"1éwM‡2É&Ï‹gˆùy(Çñ†‡µiðëqì ÕWÒÒçíÍš$×27&[r9#Ÿ7À““Ï0ˆÖ4#—34M‡±6ìÉdôªV·D"+ªª¨ª‡UU‰ÇU Çã €\qœÃð Ls%M3žyf÷;ßyÌdNÎç͇Ú¾uë¶§žzÃ0lÜŸþúööšÃ}ÓÖðpþµ×zwí*¡íwíê‡þ6!{Íšæ•+X5œ¼¾ÿýG¿÷½‡ÄjQä7o>þG?ºr®®Šiáê¼ó¾»cGOå¢Á#üËúõísqEKTØÃÉåô\ÎNý«¯ö<ûìž·ÞJ…BRc£šLFMÓ‚QµŒ\2®¯©ª¢ªáD"¬ª ôH‘bŸH(ñøh.Ÿ9ø?¬r9ݶÝI¢A ÃþÝïvÜ}÷ O<±S’„w½kÝ{ß{ÂÙgµÄmØ€¼¿çžwïlk«9ÿü) ïï½÷Å“O^ÕÒ’<|—×ߟýÄ'n}î¹½Uãh¶lù̉'®8|‰‰‰‰‰‰iöµhI÷´öîzä‘?þú3Ïìvwݺö³Ï^söÙGxâŠ)õMmÛ½õÖ?}ä#§O2Xh÷îÁ;ï|ö®»žïëËžzêê¿ú«M]tì!gguc6[øÅ/®Ú¸qåä¯jÎõÄ;?øÁŸ2¦ E"ò«¯þ ~fš?ò}p0?<¬õõ•@öƒƒÚÀ@6•ÒR©ÜÀ@ë±¹¾^miIÔÕÅZ[“õõ±ÖÖšúzØf,û©)—3¨%Æ",4Ž·h’E”$Q8ß'®ë›¦ËuÇ%ẺXKK¢±1±|ym}}¬¹9 vçÆÆx¥}–‰izJ§ ÃÃ…ááüðp>•Ò†‡ó##ùÁAmh(?<œ) çñdAàëê¢uu±º:µ¡!VW««‹54¨õõ±ÚÚh}½ÚР.h1¦¤®®þ/|á7/¾¸÷c;sp°pß}/D’„åËë~øŸç?4Á0ì /ü÷7ß„+Eá‚ Ö/_^÷³Ÿ=±aCûw¾óþ£>xÞ©Ã'×õr9ýÐÙŠEë…ö>ûìîÚö–ZH*ÓM &ÌýÊ£´ÍÆaW=:'ŸLÿgPHA×q4)›T`ýGïÞ'‹–ïû¡Àó~u®ëAØžçù…‚)Ë‚,‹¢&I¢( J¦¿ÒlV‡ï϶ä,CÀ!Äq\t•‹å7ð£ðvâ½ cò1'F×BT5´eBH<Fv‚’I9:ŽŒÅñÓ0H Û‚ÀÓÛ8J§måQC"Šh7–:,Šžçc¡:û»Tähöw>onòœ±oóW\w4ŸD¡`lÓ“]B‰QN7`ºŒaÒšjA#²GŒQLæAgŒÀB(Ìȶàyžù晦¤CÉfQõíÓH¤A¿ýPª$™¡dUß>q2 R-8“TCÛ0VW Ç žÇç3<Õør0¼þ$Èã›iND§— kr¨óy£P0LÓ)¬|ÞÒuK×MÛvu}´Ù¶ ù½€¼ªâyNxŽã ·ïû>Çq¾ï{q]wJÉ-=LSMƒÁ±!åË^%ŽVâÑáh:]œø‰MÁפ‹ wEwbI@`º¢Hª^lßy«l¶øEM3 K×­BÁÔ4C×-]·³Y°Œ…‚ „¾bÑÊåt]·tÝ–b¥E ‡åx\‰DäpXŽFCªª„Ãr8,%‘pXÊy4‚„pØèô`iÞj|üªóZŒÏÄD–6ßq¼·ÞJuuõwuõþ~ß¾aRFZlØÐÞÙÙ `‹Å]ñ{{3ßþöwßýÂ)§¬ºþú÷Z–{ñÅ7Ã3S–ÅuëÚûÛOÒÉŒŠ^½oóæ› Ãö<_øÕ«þïÿ¾ðàƒÛ¿ýísŸù̹ýè•€àYe9†áz’`†¶_j2 ;•Ê¥R¹¡¡|nh¨îÑÝ=28¨¥ÓS‹¢cXÏó,ËÃ&Œ1ö­©)¾lYíŠ mm5‘ˆ$Ë¢ï“|Þ„¦aß¾aàb¶!Qä[ZííµjCC¼±QmhP›šªª$zæÊqÜB!ȶ “Å¢|ßGb;-\ ¢¥i†çç «2sÕ‰¾@îy½üD]ªWÉæ WQie2£×ÜRß÷aÁ·òäÙÇq%Œ¦$•xIEâ8NxüI$J™q}ß·m×q<Ž#¡dÛ®m;¶íº®ïyžçù®ëY–P{ËrlÛ1M·ê¼ p‘ˆ¬(²(ò¢ÈÇbápX ‡eI$I‡eUU’ɰ$‰’ÄG"¡hTŽDBuu±@C…h´ Õ½’/¯ªA{0ðUgà]e³EðuÝÎåt˜‹ËåôBÁ„d¹œù‹E+›Õ‹E¶3}¼ôäŠ"E"²ª*±˜†p;‘#9W¢ÑÒv"†`›MJ31111>™¦“ÉŒrða:¶ûû³è"„$‘åËëªmâžpiÉø¤éƒb¦J¦>t,õ´1åä`«]dœÕ1Ra\œ¤Ç{íµž'Ÿìú㻞yf·e9MMñM›VqFç9çÕÖ6˜élÛ»wèã?§êXµP(9ÊŠE˲J@ÿ×uúöˆûÇ=•÷æ‡ Õù‡Û—Ëé;vôÐc¢² ¥_9(8¨ ‹3¡\^xgÁ`öì³{hgìèŸä¸3Ï\³n]º(qæ]d‰Dzì`zDë$!ã8þÐçæ­ðÖc"RæÎB  ŠŠi:@<Àä[¤ä3t !P—ÉØq¤š „är%5<ñóa|G{'/Qä£Q…P $ЈˆöBÌY%Ëb8¨Ý%·!ÞîpX‚áL$’e”h „h´d\ÄÌlQ{> š¼LFtû$áõ¤œ ¦’V¿€øõ3¥ñ8øÙ¬ÞÝ=‚ÏŠªü†UUCP³ SÓÌBa”Yû|Þœ+¾¬œ×"„$U §ž†×°X®x¶g÷{bbš¦^{­÷ª«þ?×õŸþ+œ–Ëé<²cëÖmüã.ÏóÏ>û¨‹/>öío?z’°ÝÙ”®[¯¼ÒÝÕ5hû®®~ȳ†Ž9¦uÆŽ5kJh{ Naš† 󤓾NOBD‘ÿò—/¹úê³æêª˜®~ðƒÇ¾÷½‡l›NÒÌydÓïÿÅ9¼ª….×õ Ã™É_ŸÍêtæê·‡£fXJˆÇ•XL …„L¦¸wïˆaXu§žºêä“W'“ì%áË.ûÑνÇ}ã—^uÕésõ/V½üòþüÖ«¯>û£=c‚ÓlÛ}øáWîºëù?þq0…6o>Ö,Äõ²Ã*@Þß{ïKo½•jmM^pÁ†Í›Ý¸qå>¨ÓNû·L¦ðóŸäôÓ;Ç%½ùfêÒKÿsh(_õ¨$ ŸúÔ;>ÿù ÇŸfbbbbbbš+- Ò= Ö}ôÕG}í•WºC!ñ¤“Vžyfçgt®_ß~P¯ö /ìÛ¼ùæ5kZn¾ùŠcí˜äõ<ÿOzãÎ;Ÿ{ðÁí‚ÀwÞú÷¼çx^ IDAT„3Ïì Ø¡öî:í´“å—¿¼ùê«ÏZ(Þq×õÖ¯¿.“)âIÞóžã¿ÿýÍáU1-5ù¾Àú\&S $4îïÏâÏsà9Æ…X C#È¢_ñ:DY–“N¦‘4›”WѪ.4NréQ×­þþl*UÊR÷w` —JåR)-.à™Š"ÕÕÅš›ãµµ±úzµ©)^W­¯WKµµ‡Šfb9ŽÈû¡¡þ™øð38¨Ñ뾡X[«¯54¨µµQ àC’†ÚÚh]]¬¾^e©˜æD[¶¼ü­omÝ·o„ ˆ"á…Çþô§3‡6}êS·ÝÿK¤ÔÊ•õŸýì».¿|ãÜö«Ÿyf÷¿ø›÷¼çøÏ~ö]S}¯aس·}{÷[o¥<Ï?òÈQ´ýÑG·2Ó¢ÑXü…Èñ×4}J0ÇIêpsü]׃`!E áà_¨Øž,Ëõ¡/!Š¥¨ièŠ`\=¦NBîEQ€7dEaî,cteb:¨& çW…˜ã €±6M[×mÃp4M7 Ç4íƒv™‡r.Ë‚ „ø‚ÀÃèƒç9×õ¦ïº.Çqe#„à8e2ÂQ¤ABh>ó¡êaJ$ì•IÁª‹)¢ÈsýXï¢Ñ$ñ„jV˜&<±áq­i†m»ù¼e ºÙlÑq¼|Þ„’9·²Yé@<Ìå Çq«b Q±XH„d2,Š€ÑeYTUE…x\‡$<–ãñ°(ò±˜íx4EPѨÌÚëäBÁ4 ˆÇÏdJèü|~ŸË•Žærz±h† ƒñ2©ª ‰Ñh( ÁÝŒDäPHŠÇ˜H$ÂPÙãñ°¢ˆÀg …¤HDŽÅB¡Ä<-óPsÈÇg93˜¨&Á/S’ ?›-îÚU¢ÞïÚÕ¿}ûÓtTU9ꨖ5kš;;›7lh_·®ýs¢\qÅO?üá·þú™ºìÑï¿ó«_½gÿþ‘#lÚµ«–!‚ \pÁúŸýìoJÈ(•ÒÎ?ÿ{CC¶õ<Ï}t뫯ö\tѱ_þòæåËëæäÂ{ìµ/ù·ÿüÏç½ÿý'Mõ½UÑöŠ"­_ߎhûÕ«ÙdìAE'îEÁØ!°s<ªÝxLöÊõ)œ¥¤…ó¢ét@ÕÅ¢ÐjM34MÔ5ÍçyóÆ!ȞלŒé¼ð<'Š‚( ²,H’ ‰‚À뺧¹®çyžãø®ëÙ¶ãº4ð*ýÒUM2¤ª¡J,fU7½‡ ¬„‚è|Æ(z.—–ïûù¼Ã¢Ù¶ |~B’É0Œb±P8 …DIB!‰çK7±X´ Ã0¨åó†e¹–eÖsìŠÉd8‘ÇãJ"‰Ç•PH …¤ÆF•Ž1 :ÌDÓ ,N¹\iØmL/Lठ0tÒ5Í(̪œÖD"‹…à'U€‡‹…b1% Ð †Qø2 -µ±°ëzPB£ ƒ`Ú¿ÊÄ~åCÕ!¹0¿ûè‘Hà¦ã`¤²0011111Í•ðhh+ E!‡Ù{Rîiãrm>o ç‹Esd¤iP±%5 {Ú°pÃó¼(òŽãñ<çûþ” ó¤´ +> tÕ`9Ô‘Hi†\^<Ï©*œPêIÒŸ„òPé\#(ÿ‰96}áxg¼|pZÀeÛÎo¤víêëîéí͸®‡[Z’jss¿ùñ¬SÃÃù|Þ> Y–=ÕÛD(høxHñÎÎoݺÍóÜŠ´Y„"ü~ðÁúz•ŒŸZ€L=UÀsÏíy÷»PõÇB¸ÏþüiÄÐͬ°ÆB²ÙóÇ­´uùèÒA³í•¬ã´™GÓJ¾,oôx¼ê„üdD{iТ‰÷ ×pIiõ–'”cž°L¨…Zpir‡¾‹Rª-AتДëzCCÚ48@ð8ˆÄ’~çE=0ôõeS©ÜÈH‹áÛv*Ÿ+GdY„UU’ÉH]]´±1Q[Åq7\3-)Ý~û_®¹æ.Çñ|ßä‘Y¿¾=pB*¥ÝÿK[¶¼üâ‹ûxžÀý¹ç®M&ÉÝ”Ío¾ùÑ3Îè|ûÛ>”Ï!„X–³sgß®]ý]]ÀµïîN»® ‰kÖ´tv6!Ú¾©)qˆ‹) ÿøño}ë@Ô{îùÇ“O^5W—Ä´pÕÕÕöÙ7Ò{xžÑÒ«+—ÓÓé"t;qpöØ…í€1Ö˜€\_ÎÍ£¨j8™ ÇbJ<ÆõUUâq¥êRëzþó›·ÝöôƒnolŒ_zé‰ýèé--IBÈK/í¿è¢ÿ€Ó8Ž|à§ÜxãûØúõŒÈóüÿøÿn¼ñ!×õO?ýÈ;ïüDÕsž{nÏÖ­Û¶n}ypP;å”Õï}ï ]tì!6ÙKA€¼¿ÿþ—ßxc ¥%ùŽw}î¹kÏ9çè@éݵ«ÿœsn„\ãÿò/ç}æ3ï:¶¨;îxöÚkïv·rɘÒÙÙüÄ,ÿÓ¢ÒÒ"ÝÓ:p`äØõÄ;Ÿzª+—3V®l8ûì£N?ýÈSO]=^ö§?}↶ú¾ïûþÇ>vÖ¾pÁ”üܹœqçÏÞ{ï‹/¾¸¯¶6ºyóqïyÏ ›6­„aÏþçcßýîðÆóÜÉ'¯úéO?ÜРÎÈ?{¸uíµ¿½í¶§)[*wûíWŸ}öQsyML‹NŽãõô¤!°d` —Íac` 70M§‹©ž"IBkk²±1ÞÜœ€ð’ÆÆx2YÂÙ×ÔD—š£ô š[xý ʶݡ!mpPÌ iCCÐÆS)mh¨„G«½$ µµ±††Xcc ãðSS©­ÖÔDá÷a½`¦¥#ðGF ©Tnh(?2R) æFF €ÈÔ†‡ó4ìhøuuц ø@Ƈ‚ÊhøL‡C¦éœqÆ·z{3ÞXwÏs_ùÊ»çsŠé[oýÓ¿þëÝq 8cžzê_y3'È}ík÷ÞwßË„øçž{Ì­·þÝAßbšÎ¶mûm¿{wÊq¼¦¦ø¦M«N:iå† íGÕ‚5&&&&&&&&&&&¦ù¬|ÞtÝQ߉¦™´ËSÓ zø™Ëéô¨ŽÎ­‹¬Uçùš6úÒu}Úæº.Më ã‘!–å^"\žT à~äž–ö¸drtÐGÇ)‘1I¾ãx‚ÀÇb!ß'€ÂNQ$ê;ç{aY.ÏàTÂ?%¼$ ôÿ LLBˆm;žçƒcÉ4Çq á$‰/-¼ƒø½yœ9žçèoÛ²œCá,„!”ðobtR8 !’ÄC°)EZ–¶‘° RU…çKf¬pXB‚?PÇ{ RE÷I¨ðB2–ÑOý|,LinŽçÖ\Ç)ú’±LpŒ$„@4oy{”­á…¤Lg†í|ÞÀ"M Bh1â3UÑù!ZÞåÎÄb£`šªù蚎¼f26P&ÑȲˆÛLÿA/†iÉjÆZL#—ýö ¸«“Ô”’a4‰Å”ÒiL& FUïûRt 1;]šfzž‡ ®ÛÐÝBþ> ÐÇ>!€žI™§†À×õ4Í$ÂI ÞJ|®"8 )˜àÿ`H9vèèqبŒ'‡Ž_ ËÇ´tC@ϞŢeY”p¨™Œ½è,A-(ŸlÚ¶›Ï›Žã43V($ûOyE‘}ßDdB|Y–\Âóœ ðžç‹¢î8I ÃEÞó<Ûv á\׳m—ç¹|Þ$ÄǪ7ÕT+ØÆ~ T Ìf · îÐ~EI9ÃŽ’ðA vÁ_µ,õNf_ÀðøuŽÎÓ€L:ø¡±t·ãð8…g)4”À¡ƒ Œ–§vp‹±ÎÚÓC ͲYxÙ¬M3LÓ¤i:…‚ ÏM3ŠEË4mM3 0 §©RÑh(UUö1eÂ}L$Â0x™¬?›ßSUͪ6m#„jÞÐ_p”p¦¥#ðÓ ø>WFágS©Ü#‹‚oÛîî݃@ÄØ¾½{Û¶ý©”&|{{ Pï;;›;;›;;›&ß"çrÆÑGÿ«ïû7®¸á†Ë×­k;¬ÿ”dÿÿì½yœ$E÷yWVVUß=÷s£È¥ˆ âz®€®,®<¨ë¹>‹ŠÊº ¸ŠÇƒ‚ø,þÀãAYqu@EÀä’E`Æaf˜ûè»»*ëÈ;ó÷Ç·**ꜞ¾{:>¯~õ++32++3"3âï|ûÛßzëcUÏ0Œñg>ó¶+¯|û4×+ŸwÎ?ÿ»;vôUb5°¢wÞù¡ñSƦ={ÿýß7þñ[B—_~æ 7\Ø<}F¦Yعs`Ë–ƒð·cG_6ë–eÕªy«Ww¯^=oÉ’6ˆ¬Ö¥·#†+W%hUÕ®¯KfGas4ž\yòa]7©ª)ö$뺑UyKWždõ¤nËr§zå8 /Ç/Ö9 £0Œ¢(,8"ß|? Ã0 Ù«[|¢€74]K&„ÐMAPÞàéñ¸‹É±˜ VÓQÄOÁ²Àü©ÐgﻪJ€,7 µµÕH¥´TJO$ÔdR3 cÌZ;³{ÕNv PVl'岚9‘Ÿ0Œ*®gs}}& bïíÍ æè5Ê¡®«º.+Š$I‚ <Ïw]?Ÿ¾|u1ßË’DJ Z2©U­ŒÇUU0&`ÜU‰§w¡©ëóy·PpLÓÓ¯BÁ©[!zH¨±˜ mdRƒåXLI¥´X¬ ¯‡ó¡ðúI¿3FÐâƒ&¡m»–åe2ÄšLÓ², ×¶½’€×v¬{XÚÐ4YU%0 %QUe]—Á?/“™†CLU%M“fH1áââââšá ¾¼I÷¸÷ªoÙÒ\UìòÂË!xžŸËÙ¶í ®iZ¹œ“ÍÚ##yÚ$Á0Ôöv£³Óhoww'çÍKÍŸß²hQ Ä(Æw½Ç%:nÐqhÑ–m=¹nq ,DÓP>8íù ‚ˆé¶Q±uæ ¦™Fû£Ç<((‘P1†®^ÅóÛö'°m¡HUÅTJO¥b‹µ²R¨d*üã?™Ï;€;÷ÜãÏ>{5!˜¦‰Åè£-j i²¢!U•é°´Ñ+ÂÏ~öç¿üåó`’]›@É¿øÎO}êœ1\&ú×½ûÞ{_¨mÀ ‚†Á ',üÄ'Ξ7/5š±(ÍDZ4ˆR¹ïX )¨v´@miE œjLȾ\\“$Ó¤>EZhÝ¿LÆ¢Ã8Aš&§R±T*ÖÒƒ.!X ôã4Îä!òýph¨³žõ‡cAö´Ë¾ê8‚@ÚÛã:Ú(ÄCÓ$ˆÒض›Ë9CCyJb9xp„ÞG€tu%µUºÌ»í¸ŽJ™¦õéOÿì±ÇþÑfY?úѳ¾ô¥ó`kOOú¡‡6?ðÀKýëM“ßñŽÎ=÷¸³ÎZ5þ •ç?þñ“ßüæÃ¹œýÅ/¾ó_ÿõÜ#ÚŒ¡ÿnûö¾mÛzwZÇÛDûuë­\Ù½`AËŸ­0²mïä“ÿcd$G»9ÁÛ¶}¿ì¸Æ¦ÓN»~ß¾!úQ–ÅÍ›¯›S£§¢(¢UEòÅ‚AV&SÑo+IBÝ:g*¥Óå––tNìÙöô¤7nüë~ôd_ŸyÆÇ~à§ÿá[7nü+²$äì³Wß~ûešvðI®ZíÝ;ô±ýdË–ƒÖEòÊ+7Ðêûá3ϼöÐC›~øåþþìÊ•Ýï{ß.¼ðõÝÝÜßåˆÈûØ´}{ok«¾aÚóÏ?‰"ï¿õ­‡o½õ±û”œ|ò’Ûoÿ_]]‰ ?þþìWÜýÄÛêŽxî¹//\Ø2á_ÊÅÅÅÅÅÅ5]š»¤{*ß_xaÏŸþ´íÉ'w¼ôÒÞ0ŒÖ®ÿÆ7®xãWœvÚ1ìµË.»ã÷¿ÿT’DQH&µ¯}íâóÎ;ñH¿±·7óàƒ›xà¥çŸß“LjçwâÅŸü¥/ýêoë¡C6%IH&cwÞyùÞ°l¢~éäéùçw_pAÙ;•нüòu”ÚÀÅ5Je³ö¡Céþ~³·7“ÉX€°§8{vî\"¡vw§Ø®”dR£\{ê+>—uÔÀë'VABäk`†ey<;8˜Ì åFFòìè[A õ>„q–ƒßÞomÕy0šk¢dÛ<ú ö÷›½½&”YX?4”cgÚ(Š>(˜ôyH½=Z[ãs|º>×é›ßüí-·F ÃP’DI¢ÑNLŒ±(çQåø)ÔƒcEÅs‚0 #J´‡àN×õÁbcvDQ4ID>.I„áéWMX: R¡ OÛýA‰ºUßRµ kïMçOÖîÂö‡ÎåN–ºHîÚõµó0k×þ8GzÚŽÿÇÖ…–ñF‡ùžãŒm/׬›½©;ÛœEƒ±l²lÖ†ÑnŽ*Í0Ø’Éæûeî9[Êr9»ôÕåÄžç7"õŒ^”ÌË´°ù\×e £jöÎ>¥ CŒ*߬…A#†¥ÎúÁPÊ3š« ç‰XŒe¯F¼¼&ÍDú&3áǹÐÃÇq½¹¦Y™L@¾äóÀÐ/ÂÊÁ%Ø"¦i‡a”É€ ây‰íºÁa›ôÑÎ à,e BXÓ$Q$Š""„E"ˆ‚VU1 #@‚}?TUÉó|Œ1}æ‡!rÝrùjTÜÆl£Ò¨ 5‡ËŒ'½ahGÇäp¸òÙ¬ãûiZðÖ†÷u6k{^äÛöཛྷÉXð.†{—ÍÚAf2Öaß¹‰„&IB<®ÀŌǮ oL@À†*Š$‘(®”$A×ÀPÂ]@ÌÜ|ýM¬¨Õk„@mj7Á¥3 çµbªÜXNz•5B£MüþN±€.šËÙÙ¬“ÏÛ™Œ•ÍÚÙ¬Ë9¹œË9¦ix+—+®¯K•À(˜%$Z<®”£j"QäÆbr*‹Å]—u]*¯¨pM¯Æ Á_¸°eópFA6yff2…mÛzaÓöí}¯¾Úãº~"¡®Z5oÕªnÀ߯[·¨É˜ágžÙyÑEßCçúœsÖÞpÃ…‹·MÊï9B îi§]?4”«m aŒo¾ù’÷½ï tM•á.íU©‡½Ê|Ìö0Œî¹ç¹={kgüBÖ¯_|ÚiÇL‡ÚÑÕ;ÉòkšÙ¬M¯+‘@cjOž>X»>‘PëÖÕë†ÊOâ A]´v}]H:ª þ°bML›'n„_¯=R3­BðëɤVkoáyÁÈH…MìÝ;xèPfp0;0ÍåʹcLbéöÀvT:!8Š¢|ÞÉåÊöØŠ"ÂàçÎN(ت*aŒ]×+Ü¡¡< Ÿfç;‚;: :dšÅr%“±9;—„B@††rû÷ôöf²ƒƒæÐP>.d³V.ç²åQ–EQ$„`pð¼ v.4» CM$´DB3 Å0TÃÐ CÇ•DB¬y…’$Š¢àûçlK¡ ëÆ¬¯CpC%÷kÊkkâ¢MrvýìšÕ2ÁëÉfì2«ªñUåbUÙdkÈýd<êª//Åç©•VvU›¦øRpqqqqM£ ꈡ×ԀȣҦâ^µ rš& ‹k¢¨˜¦¾<„…#[õ…¾ ÄÔö“Iº©z M3š½ c$ŠÅ 9혌è%Ì=„ˆDooæÀál¿Ù×—íë3iå\–…¶¶x"¡µ¶ê©”˺®€˜vmÐùÚÐ+„‚Þ%XišÔi …Ë£bß}ˆ˜þú±Ý ÄøÐñK´i)¸´@ -žL¨Tu„XCï5ƈ¹é ï,mþ4wÞÌ=óÌkþóöçžÛ½}{¯ ãŽ[pæ™+ßüæ•oxÃ2¸’{÷~úõtA Ë–u|ÿûÿ4±.€àœêõ_ïß?rçO<ûìNBpmÐ@×Õ+¯ü;ÈMú¾QÓîïÊ}ÇΔ¯²@ †Õök£¦âãÜ—‹köÊ÷C˜~¼ˆÚ…tÚ2Í2\¢j÷DB¥ÐZx=Ke‡ûι®ŸÏ;¥®1<ùÀþ²YÛ4íB>º™L’ÕŽF†W[2©•:ÈŠÝd‰D1̶|a;ÑÆù(²€ÒZ8ŸkŽhË–ƒ—_þþ¾ ;PaáÂÖÿú¯Ýwß xM$Ô·½íøóÏ?éÌ3WNT­à¡‡6}å+÷õöf`XÔyçøŸÿyYó]úû³›6íÛ¾½wÛ¶ÞíÛûvï€vÐ’%mÔ”zݺEË—wðqÓ¢;îxâÚkï£uì¥KÛŸ~úß§÷”¸f¯®¿þ;îxz`%I8ï¼o»íŸ¦ò¶n=tèPæœs&Ë:=ÂÁÁì¡C xÑkh(D/èÆ¢]Qã¶6½µ5ÞÖ¦wt$€ÜÕÖoi‰µ´è--:TD§Ý¨Øqüxé§?}æ¹çv‰"©êÍE²zõüŸýì£Ætál×½÷¾ðùÏßãºÛÝ|ûí—}öêßüfóƒnzòÉŽã½þõKÏ?ÿ¤w¼ã„ 8}´wïУnyà—þçv·´è眳æüóOºúêû÷Ó40ðà?ø_ozÓŠ ?(Š~ö³g¯¹fc„l±rýõ^vÙ'ü¹¸¸¸¸¸¸¦Kœt_!ßÿö·ƒþóö'žØþ—¿ìr]É’¶3Ï\yæ™+Ϥêíͼõ­ßÈdìFg.ø7¿ùì ',œÊ³zà—þã?îïíÍTÕ /\ÛÝ ÃhÇŽ>àÚo޼˖ƒ…‚ÛÚª¿þõK9Úž‹‹‹‹‹‹‹‹‹‹‹‹k&¨ŠƒO§ŒRU¶}?¤@À.¤k:Ut›*Ô> ;.}£Ë~#KUŪE Ê“~ÜšL©ª³;à‡Š"‘e1Š"úÃeY ™È!åÎÀ0Œ¢(‚¨]Dp1cŒƒ ‚!„1Š¢ˆ^g߃ D—~ ;á=À²,°`tE‘0.žó‘bÍ«v !½ÉÑ ¥Ô~:sU¾-«LÈb‹ ‹ÊålÈ?¨²¦ÓÅÇ–>:U‚ÂÙ=𓳨 çtf2ª¤eI°¨Èò–é2›)ŠE±SÊ)Uæ4:GÄBYtx#,×ѤZ|9ª™ÔÝdúwmâªÙ㎀7‡1Èþ1«®õªÇIG£x‘ïÅœ2½¨ÊESIÛ›Ñx€ûã¤ísfñL“iÚaf2`e—\X(8®%2§ãø–åÒYH”º.K’dsà©Á{l?D‘躊P¤ª"ÆX’¤0Œ C)Üx\ ‚xúàª%Ë¢e¹’$FQ'Ï+NðhUΕH.”íbY®ã¡lÖªe…4‘®+¢(`\d©PG,&C†Ø 5>ß‹J¤A`â\„P"¡[0+ée¹è†2+…‚ëy>x3d³60øòù""Zvð4ËålßMÓr]Øúž˜¦åû`÷«š¥µ‚ìÓd2¤€ã‰ÇIc±"rêpwâqUI<® ÞM*¥aLØŠ"WsÁ­ÌfÇñôà8^6k ®ãøÀj´mŸÒhY^6k;Ž—Ï»MÞeðÂJ&5Yb1Å0I C…ÂB- L%š, €P—$!™ŒA‘ᯞɖiÚù|ˆ|ü\ÎÉfíB¡È±,¸·¦YD„Ô}S(Ѝë€X-ñu]I&5 Ç&H,&ëºLÍ%vû IDATÊÊŸúÎ5§4I|Çñm»º,TESÙõl\·r½ßßo^{í¯Ï?ÿ¤ Ö@u‚m{Ö¦‚pp0wàÀ0üœýû‡r9‡œLjííÆ¼yÉîîd{»ÑÒ£ç³yó§žÚ–‚žP[µªûÄÑÇl#ø{ó“9¢[÷⌿í<¢5·*UÅ6©h½îÀ‘‘‘|£¹?ã“O^ âz9ÌÁôd¢(zî¹Ý?ü²e¹lÅXÈ­·^*$Š¢žžLOOzÿþ‘]»úÎç]I–/ïX±¢kõêy+VtUåü1Ÿ ×xdÛÞÐP®¯ÏÀ°ÑL÷÷gûûÍ‘‘B>ï°Åhõ4B~–$AQDA AضžX4=ÒÒÓuEUeAÀaBËqp078˜ëëË dÙ¹$ííñ¶6cÞ¼d{{¼³3ÑÙ™hoÓ§³31Gjã¶íårN:ß¹sàÀ‘¡¡ìÐP€ ٬ϻ¹œ ÑøÃ¶OeYŒÅ¤XLM&µ–=‘†š¢ëj*¥éºªªEjI"à áyç–傃Q>ï n.g›¦•Ï»q¸[]_+¨Åbr2ƒÊkq¤iåjTã MÓŠU¸I¹š3@¦i9Ž—Ñq|¨ôº®•a×õ)ÂÞ4m°!ÌçÇñs9»PpmÛ«ëe‚J%1‘PUUÒ4L4M‚«ªªR"¡Æbré «ª*éº í¦XL>jÌù¸¸¸¸ŽJQ#®i±sÌšöžO‹£óä5èõ¡”Ä46!°‰d?bÆ2Ñ‘¬;„ÇQåŒL¦8ƒÚU¢ç‹cŸÆÃ/ ‚%‰ˆ"!qITUJ¥bÐRƒnÄtL°£5¨_;½æ¬1xÓ"ÆÁ"ð¨ÈÉ’*Ì4±ÑÚ‹„Êd û÷¼ôÒ¾—^Ú·iÓþ\ÎVUiåÊî+ºlÛýío_f«åpéN=õ˜3Î8¦îjE͵y†¶7žàíu¢ÃfØèµ 7Žš«QG„P<®ˆ"AmÚtà7¿ÙTù{‰, ïÿ©çž{\<®@†ao1õàÑx.®ÃŠZÇ™f‘Q»@qöU=¤c@F€;L!O$(D¢È”(1bs¤1íë|Þ1M+›u ¦A;¤€M¾ÎaŸN[Uä© è““f­Ô]%뺚Lj°+†\{öãgÖO†8ŸëhÕwÍÚ'´è]ï:ñï\·tiûtçÑ­-[>øà¦Ü´sgíVBÆÑä±OwìèûÄ'þßöí½t\(!ø¬³Výìg›ðïâââââââš.qÒ}Ce2…gŸÝõä“;žzjǶm½¢HêÆ£EQe᪫Þõ¡9¶8lE×\sßO~òTÔ9>!øì³×|ï{—ÎpÃ×¾öÐí·ÿæøÝÿÿ>ùäeÓ}Fs]ýýÙ;ï|â‡?üó?xÆ5×\05_êyÁ¡Céª. _)Pª…$ óç§:;ÝÝI˜°A—S)­µ5>Gº«af¦iZ¥ÿ´¯±â#íw¬š³Ó´0ë«qösä’N™r9gh¨è92’‡ÿƒƒ¹áá<»†±¡ëJk«ÞÞoiÑ[[uøßÚª··ɤÖÒƒ73;,¹f—8 ŸëHEÑÅßöÌ3»Ø(p•$IX»vÁý÷ÿ|?¼øâï½ðÂ>ÊêªÆhýú%÷ßÿ¯S3`bÇŽ¾«®úå3ϼF®š;„1ºà‚õ¹œ½iÓþÁÁœ$ k×Î?ñÄE'ž¸è¤“¯XÑ þ¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸f‚ªHIµ€¤ÚU“H«ØLu4ùŠZTSÕjÙOµ à¯ï8¾mû´gزÜ&A• ‘ BBÅîhBp‡UEaˆèø7ß›„ªÆ Q$’$"„0Æ’D`'ÆH–%Š>Ç8>ʲ¨i2 ¢•å"©Gˆ¢HLIÓŽ€é\»©©ŸÎ2í¢Ó³Q»––ËSpMÓf°ûXˆ"Ä`÷C»2Ø}¿»ÏBÀ)vßc<œJ€:'3~Ç–E üý* ¾®Ë4@9é&:‹é·Åœ@§|ƒ´ Ëš&Ñ #Š J$4Z²Ø|%Š„MÆY6³Wl)£t QÃJ V@±ä):aÞ÷Ã|¾˜¸.CŸ-À†e¶|Qÿ v²=ë‡1fÑ¡2’DèLxÖÄÂ0B*MÙ-%h¯+å& ÊrÄN­¯L_^ìãÚôl "„PjÃÌ­XV±¶@-I¨9 ÍtM.çÀ(¦l¶h”B¹Þô¹Mq4;Áì;Ê鈢°Ê3i4ªvÃK!djHV‹Z`Ÿ´ÀFG•€æXL €(–³Ílñ0cG™ ‹Vw r ïtºL“& *eÈæF6TàbUµ*bëâP›LQDB0T&KÆÀx­Â5b3T˪òë`1It¡)¶-9lVŠúèóÒa] šç¢ª,”LÆš'PU‰5X⢂K>ﺮoš–eyŽãe2Ü2 ä[–—ÍZ®äóŽe¹Žã›¦åºA¡à ®ëM ð¡·@–à?ªªdª, º®jZ‘ž/Ë"9eYH&5x×èº"ËŸp>á¢H(•0ªdŠPH§-ê‘xHV52Š †HÑ’#£  Òa–pßa̶6ƒèh¤ ä°×]?yèó©<™(ŠÂ0 ‚Ð÷CÛö\7ì.Ã0𨨄¨‡]’ÆØu}Ï \ׇR&ŠDQd]—5MN§ µUŒ!dÉ’¶ùóSãª(Õ„sØY™¦uÓM¿©; ¤t’XÓ¤¯ýâ®®ädŸÌ˜õ£ýùßÿýÞ&FȬ¿í¶LÔ76Ñ /ì½êª_¾òÊABPmMéCzsOÏÈæÍrÌ1ëÖ-\·nѺu ?~!#=•2M«§'“É`Z¼:ûû3ŒŒŒ², c$I!$"k"”\׋¤Â0Œ·Í|¿x÷5MîîN¶´Ä’I ¨…0~Òq<ËrÓi Hú¬=*ŒŸokÓ»º’ííq á˾­-ÞÞ?jªÄAf¡õ¹«*3&8¥Óð²,—zÖÖŠ"I‚$ ±˜¤ëj2‹Ç•dRíèH¤RZK‹®ë Æ!,Šc¸|¨›¦Îaw³,,©EÈ›žH¨¬«P<®B²a¨†¡U: Éw›ásߎTàݕ˕¡óÐÖ¨mŒP½ëúÀÎsÝ€ÖQë¼Ô‘TUL$4E‘4M2 ž è† ÀzÃPc1EU%Ã(ëy’‹‹‹kòD)ó¡l¶È¤¦=,”NÎRª©÷<›,ŸwÃ+§;z^qïÓÀK§î^G¤’A,„"yœvf R9˜€"†NN!æ£Ù‹zÆÓ4Ô½~l.¡ì€&€~TvùÀZ'T±4é»zê÷¢E­cnÖÑr˜~í(*{°ÐÿB¡œ8›-&fó ÔÁhb¦ÇÜ‚Èx6ÓÄl9.Ρ è@”‰•$ Ë–µ—zgÊÃâñòÀ4+¥Nï§a¨Ô{ ä.P´CFÌ’Í›÷ßtÓC{ö Ñ;!dýúEò£žžÏ«ÓAiêg?ûwçwâ‚-SnsSW_½ñ®»ž®;¨ا·ÝöÉéûáw¿ûÈÍ7?‚1†È¤, [·ÞHg`qqqqqqqÍvqÒý¨48˜ûö·¾ë®g`Z­Á'ž¸èæ›/Y¹²{ Ç?ï¼ï¼øâ¾F÷B„övýÎ;?ôº×-ÃÁ§F[¶<÷Üo!„:;/¾xíÔ4§¹êj÷îÛnûý/~ñ?¡ /¼ðä[o½t¢nšvOOšÍ@G?Ãhš2‘к»“µ}P>ÊF¯²‚Î0ø3M–S_üs9à#{AÅbk‰„¾Ù^?KEÑÈHax8?<œ) 熆òÃÃÇ/~ÊÑA3 IR)¸Ý1ô_¹¬§RÅ5©TŒO¢ã³KÃγq¨YMÃß´iFë×/žî™¹r]ÿ|õ¹çv=ýôÎW^9¡, ¾VÍCEòþ÷Ÿúo¼oºÎ³J×\sïüdÕB°( ®ë‹"Y»vþé§{Ê)Ë7lX3Ùô„\ιé¦ßüøÇObŒêΗ–e±µU?ûì5@·_»vþŒ-2\\\\\\\\\\\\\\\sAU$2J¤¥b§˜"„‚ ¢óEA,.±ƒÓ>³Y›íZeg™‚ª ƒì\bÏ Ã0€ø9À¿B–åy^@ÅÙÝ¥Ÿ .hE ‚ý “!àŰç0qGÆ>‚^WEh÷«¢ˆ‚PŽ,ɲ@Iè!U•D‘Ð90ÇX0̆eÍ‚(–Þ«i2ÌNIimÕi—¯¢ˆš¦ÐËUÀ¯*.¿®+’D˜ê,íÎhâHQ5[¾‘EÝòr´Ú½èÑX ÿøE‘¸ –ÝÖÈÚUº;4²v˜Ô£Qk¿›kâÕP# ¹=—+&f!û”îb;bˆüaÑŽW–ÈÏ2*2ÊëÇ ©…€ †‚*”‚ŠÔ­”1ËëY v¬»>•*¯g-.XWŒd²þú)½×AP¼Mtç… ·¥òBÍh-‚¥]ärE¬Œã“±†f9z£Ù}Ç zÅsŒ*o7½æš&3[«Ñ0U$4ÇR† ^ô)76FÌÜ€V–Y"Ÿw}?þ5¼X!›A>GÔ{ð˜a ’ ‡ã‡|Þ®ÛÈ ²%û@É…|bª ]WD‘€¥ d*˜<Î Ôº#S$‰PÆTŠ®LÓŽ¢–)ú£ö?´AIh¹ –?”á^r§("™Â0Ìfiy„ËR<_Á „I"ÒU”¢¡å¼Ð&5® ð¾DB…2>ÊTb[4± >ã8@FÊd ð¨DN„¹œ/`(@ \C Åp+ÈBé´5 ÈðÃáWCæI¥bðcá—ÂÏ„ßYb1vG•<{+ä“' \°nŠAù‡ÝÚÜ1 †Ù°þ¥"…eÔÝJ‘ª*q?ª#RUÃq<ÇñÇËdììÐPÖd³v6k;Žï8~6k¥Ó–㸎ãçrN.gçr¶ëÖiOI’ Ë"xÑ[<ÄÀ#GÁð@Ãc¬i²¦I±˜Â–>¶J\%ÖŒ­JMÞ;´:T+xF5ØËnÏ­Šä°¢ô±*ÆWfÊ+lÀ„Š­SUÙÑQQx_•XC,Vè, é{ ¡e¹Ù¬bÓ´†‡ó¦ie³öðpMP±L&cF2©¥RZGGbþüTK‹ÞÑa°O ¶ Zyòb,&?òÈ–k¯½Ž)Š!ø¢‹NþèGßÜݬJ?Ê6µç»v lÞ¼óæÛ·÷nÙr0ªcI˜´xqÛu×]xÎ9k{ä ×·¾õðw¾óHF‚@Au'K‹¢0o^òw¿ûÛ¶š9zä‘W>ô¡6rß‘$1‚0Œ$IxôÑ+Ç6™e”Ê]{í¯7nü« àºO'A Ë—w×~ݺEÇ¿€û‡M’´žàÁÅÆ-aI2© 3•ÒèØcX˜¥x Öh§ ©VåÊdsËrÓéB½ª‚q½ìY ¯ªR,&8^UEAÀ±˜*Š‚ãxÙ¬]Cs«Ob­·ÕÚùTÙüT1Ý&íBN‘ ô¼æu~Ö9©rS3Äm2£†gu/cÕ¦ªÚþÑq‘¹¸¸¸&\Ô: < ÓMÀW0ÍbT“z÷Òd¬3 ~²É˜þ»êK-ËuœUö%©˜~±;€ZêÒX(m`Òþz ¦§FË‚P´6gÒ¥M¤´©|œª½+6ŠB»íØž8ˆ¥£JŽ?ë=Oý’ÙkN£ÇlŸ].WŒlÐÝÙþš|Þ6ÚxºêÁ†QlãÇãÅhLseÖ›v½1@ÓÅ£2]<3¨§‘—ysÄ?»¾v¼ãx0÷9“±,˵,ðLrÇs¶#A$"Š‚$ÒBEâû¡ë†Ë*€ŠõákÎýG F°‰;2a4cYx^p W7Šü‹"‰"ôñŸý…/¼cÊÆ0ø~øóŸÿåë_(“)ÐHàÃvݺEã?ø+¯|ÛÛ¾…ŠÃ™¢×¿~Ù7^tüñ Æd.®Ù¢(ŠúûÍZN}o½¼^’„ÖV}ÎÂës9üªMÓ‚·L¡à˜¦Íºô•Ö»¦iåólªâ0€dYÔu%‘Pãq|øt]I&5Ö±/‘Pc1…:óA²£ïÂN½Žþ£n1 õ´ÓŽ™®àšpmÝÚsùåw:”nÔ!‹:öØ®'ž¸j¢¾q` ûoüöç?–ÒhÈ.ŒrKàU«ºW®ì^¹²{Á‚>„cÉqüSN¹np0EÑ}÷}ú”S8ÉškìúÌg~þ«_ýBø3ŸyÛg>ó¶Éþº}û†®ºê¿|Æ„ùË_®Y´¨µ*eoofçÎ={vïÜ»wh÷î½{‡ P#I‚- ¶.ZÔºhQË¢E­‹µ.^ÜÖÙ9‡ül^|qß»Þus“„`BÈ­·^úîw¯Ÿ²³š¥ Ãèæ›÷ï<ڈɺÿþÿ}òÉ˦òÄæ¸Þô¦¯íÚÕßh«$ ‰Ÿüä#k×ΟŒoá…½ŸøÄÿëíÍx^€þÉO>|î¹ÇMÆqqqqqqqM½8é~´úÜçîùå/ÿ§ÉœpÚãøùÏ¿ýˆ\ûúÌ×½îÚæ7BÆøË_¾à#™¹þ~gžùµ;û?ýé·þÛ¿½kºÏeŽêÑG·|÷»¾ðÂ^I"t þi§-߸ñÓ£ùÉ oû s'h>69ŽÿÒKûž{n×sÏíúË_vçr¶ B0½×ßþö?\rÉiÓ{’¡ÿú/ÿòSX–$!Šïº®œzê²7¼aù)§,_¿~ñÔ¼[£(úå/Ÿ¿îºûGF Mæ±cŒÞüæUÿõ_Ÿ‚Sâââââââââââââââââª+:MÌèÇZ.¥‚‚gÉ&Èç+PtìÜoÇñ¢(Êf€ù~ ,«l72RFÂù~hÛ ÄQzoF0Kœž‹µ ÃeåDQ±²Q]‘é(Ö@‰ ÐXŒÌ' †ÿ‚i/¼ `IØ€³ªÊ¬Û¥$ ñ¸Â’úAÔ´bÀPÓ$8 „u]†ova<®2;Jíí:=,!¸«+I'™°œâ«F@üZò~ó‰îS{´ ˜úΊåõ7šÄŽF1¾v¯É;ZU–æš.&Ï&ÃOþq&¬ÔŒ¦¼Œ&{…X_¢*±U—ÚMŠjU#¢æ€õ÷ªÂÙÏaŒÆX0!á`\¤€AãTQ$IЭÐ:FEz{ýò+Ðj®XªÔÝDlu71-ôªïªÿ~g½—¨X?'V8ìÞ8 X¥9âm£—ûú̽{‡` ÷¾}C½½™þ~sÿþa(ã0D¹«+¹dI[gg¢»;±xq ç^¸°¥ê–ÝvÛï¿ùÍß²A$IÂ0úû¿_Åo;æ˜Îqž°ãø+W^Õdž… Ï8ãØë¯¿põêyãüº#U¡ànÝzhË–C¯¼ràå—¼új¯ãxcE]·è¬I^¿~ɯ~õ©#š2Ú´iÿ»ß}‹ëE!€ŒÃÓ5WÖ®Üq Ö®¿ví‚Õ«»ÇoóÓHAþèGO~ã¿mþòEá8íÆ/ž¤Ó˜#¢Ä4˜¾SÞ·o$Î 冇 lcLÈF¿ÁfO×¾«(’¢Q„-Ë”X:mgé­”e!™Ô“IMÓ$U•ÁQù~`Y>`ÅFFòôëdYlowv&ÚÛãmmñÎÎDG‡ÑÖïè0`¡­MŸJw½#R˦‡Šw=}y"¨ôj“eIIEa…aèy¡ëzا)eYeIÓDE‘DQÀEEžú~àºëúüùt]Ñ4IוDB‹ÅdM“ CÇÕXLÖ4)™ÔÀz'““I-“ßf*ó'ë:N¦ ¢hš¶ï@ö¿"Ï ²YîT6kû~. ¥i·ÂBHq"¡*ŠTò€§(R"¡RT=TQ Àyº®(Š«š&«ªX·¶ÃÅÅÅ5+DËÆÖnN¯Ý±î¾ãé×Mˆ.dWwßÚëî[Õ3HÅòÇYçf:V£"Ó¿Lœ‡µO½ñØÁ l”†zÝQûRTu¡ÞuAPäèØÄ¶ß)Pžu’£WŒ еtE%WWTrýDÕèù²÷04Ð(Ö•ݨñ-˜±c?Xš?ªt ¤> ˆñ`¨2çÄX8 &?°.l ºªû~HoâØ\i«D£ÖÔ/ýhi\90¥iaÏóƒ ´,ϲ\Ûö-Ë-\ÚQUÙ0”d2–H¨‰„ÖÒ¢wtÄaŽá‚­±ÛÓ‡Qå  Y.gƒF&‚cÐï~÷Ê¡C#ïÿ©“ÔdÞ¶­÷ì³ojžFÈš5ón»íŸV¬èšŒs¨+Ó´¿ÿýßß~ûãaz^p饧}ó›ÿ0þÃ^sͽwÞù„( ɤzõÕ¼÷½oàó4¹Žù~84”3JfUÏ”„iÚ–å n6kg³EB=Ø ¹ž.[–kštÙid ’LÆt]†˜7 žLÆ`9W C…`üÎ~.ôÌR’ƒOû8¦…ƒÿÅ/þ÷]w=}ÒI‹¯¸âÜsÏ=n&Ç3¹F£»ï~öK_úU†‡yõä“_Z¾¼cœ_gÛÞm·ýþ¶Ûþàûa“ÑÚ„àÏþ—_þ&Kœíºûîg¯¼òAÀÛ·}òzâ¸æ‚{ìoüàÿ'ø¯ýjg§1y_äyÁ-·~j.Œm®/|áwßýl#[ú’0!èÆ/þàϘ¢Óš…êë3?õ©»ž}vgó‹)ËâÇ?þ–«®âøÊ)ÒŽ}gõõæiA ÝxãE—^zúdœƒiZÿöo¿¼ï¾£(ºì²7~ík|À ×Q¢£Ÿt¿oß¾‘‘‘ñçÃÞxè9š”K—¶|ö°ã0 IDAT³oZ±¢m”G~øáíßýîÓ‡M†1Š"ôÖ·û/ÿrÚÌœÒ|÷Ý›îºëÅÛn»`ùòj÷6®ÉÐâÅ‹[ZZBAnÜø×ÿûÿøê«=¢(TC—.múé§=/8t(]·o “)°ÌbIæÏOuv&º»“0‚]®}7+Ô¼»ú4éqEÒÖoÔÝ#™Ž²G®™¦|Þ,:2BøšiGF š_Õé+2-@ð“I-•ÒS)ö †šHh†¡¦Ršah|ˆ ×(5+hø_ùÊ}?úÑŸ£A¸`AË'?¹áþá:ú*“ÉìÙ³gb¿z¶+Š¢}û2[¶ômÙÒ·ysïà`!$Šä[ßzçªUíÓxb»v æ3Á(϶¶ØºuóÖ®í8%KRSüøêéÉ~ÿûÏ>ÿüÁÑ$6 忸d²O©J´ÆÈÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅEU‹¬% 6a—»®ïy;íyëÇwÝÀ÷Ï+§,\¸Y(¸,_ƲÊßa„¾Àl“0Œ‚&l¾'ˆ¦ôý€éP5c¤Äª°˜ú‘t@ é|(Œ1XÝÓ”‚@X ¡ Q(a`ˆð‡"„ˆ"4¢ˆérITUbA‡ª*±ÁpÐ á¢H$ID&*þeY„ÑŠ"ÀzE‘EÔu•F_YúhbÙ¦U¶ù|À²¢U&sh2Ï ØlF™¨’ àûA>_:˜¦E3‰e•ù¾äóne²ˆIFÝ)Æ‹‡`E6Œò'J‹%Í?U ’å"ø,Zö8‚PÎ!G± T‰“@•„kT$KÖ?Bp"Q><Á5©bóy:mÕ]ÏfòL¦œ“Ùõl§ô„P6k1Ëìú2U9—³á¹]Z¦ëËÆ0ã¹³¢è„¦•ó9‹½ T™‡ÙrÁÒ:FCäW”2ÆcÄ––¸*I‚®—KÐ(ûßé›7Ê z%鋘µÞ¡×œ¾”YÞ ½Ú@`/mµJ[f«‹¢@vTD¨ŒÑ8‡Ó=S ¦!ôñ•HG줤–žcÅ÷‘( ”º‹ÉpñÙG{CgïˆZzieë¼*%û±4_•²Ê ª‰j 騒~N?²tT*P£I9¶;5!Üüª‹6Ê]ÆðLkÎá’e1 Cú˜RžQŠ"Š¢ày¡¢«j²\Ü$Ë!0èžç‚ÂAa†¦éˆ"ö¼ £ÒÃÄ‚ Ÿw-Ëõ¼€þù~à8~†–åù~èº~F¶íE²í†tH*Q$‚ @ª©„`I E!< €Ë²ËžÀ“ABŠ¢BïÂë5—sr9Þ¼Ù¬ kàå›ÍÚ¹œSkœ±¸X ŒÁÔ” ¡ãøw]Ïóüi@m îQ£v4Ø%*ðèãq5WOðz ¶%š¦I±˜bŠa¨š&C‚ɺ|-0„Ëd,0v#aæ£ Á ¶š¦åyA.çP´½çùMB¬p›EÐ4Y×Y C…X àí MQDM“âqb㺮(ŠdŠ¦ÉŠ"‚ñŸãÃÅÅ5õbmÛhŸíóÊfè¥ýS¾Bõží5Ëf‹a¡=bQÑè.ý²ÉhWÛkpD¢q-AÀKM¿º.C%¢ƒõNU²XL¦¡!HÆös%Åð ùB2ßÇ…£9Ž'"!¸ÊP¶ £UFj£ˆ¨^ ±Ñ*Aÿã +QCSÔ€¡ßÜŒÕCðOøF¯ªNÞº¦¨Áýª»éˆl¤Ñ(nª‰N`læê#r€>"é#òÿ ½ÇO§óµÓÕÁÀ}ì$“±Z”í’%m]]‰övc’ØyßúÖÃÿçÿü.‘P?úÑ·\~ù›ZZôºÉÆL¢xàWo¿ý/´“´‰dYøð‡O>ÿüÕSv.Üu×K<²CÉÏ~ö¾º>”£—ëÿø÷ضÿž÷wÉ%ë¨uÁÑ'>ï(ï‡Ù¬•ÉX¦ v6k›¦“ ÙàKTÙ‡ˆ"I&c{a’I æDÓ…TJcÇÌÌ|Y;uûcÁ¬ `½õõ¼=¿@0€¾N¸8Í×óúÜÔ áàðƒw<öØŒ1BÑÒ¥íW\ñ¶¿ÿû×Õ &ŠUÅ5yò¼à?xþÁ·Ž&1ÆøÃ>ù¢‹ŽÏ7>ýô¾ü๾¾ÜaSJ¹è¢ã/»ìuh‚j›7o>êq3S¾^~ù/E¼ãŽ §û\¸Bhݺu“]ûš¤ç¿ëï}ïÝÇßuà o›ðƒÓçÌóÏïþÜç~¾k× ÛQ’$aþü–½{B±˜¼re÷š5óW¯î^½zÞŠ]®›áo½Zy^ðéO?Ðߟw]¿QÛ\Éá‚_|ññ—_þúY:ZuRõòË}7Þø'v|{#aŒ-JÝ~ûßOÁYM™ÆY˜TÖ=÷lþÉO^eãüóWô£§Là¼!VO<±ç»ß}JÓ¤Ÿþô}“qü£F£EÃÅÅÅÅÅ5tô“î·nÝšN§‰Äx’Í:]ôSz­`NN…®!¡ÒdÝ®®xG‡ÞÞ®wvÆßñŽ•£ìó»þú?<÷Ü„"Œ1tì Ñ4è{`nR,Vœ¿¤iÒ1Ç´^pÁÚؤ9tȼæšG{"M…Ö¬Y“L¶þô§Ïüçþ±§'ƒ1ªkY¦(Ò%—œÒÓ“Ìõô¤stt”$ ííÆ¼yÉöv£«+ÑÙitv&`X¬œùnÆQõ÷›ét±ŸìH½²1Æ éK¦ÙG¹W6×ÜQFétð÷PJL|X°èB:¯í`ŽÇÃÐ Õ0´dR¥ËÀÁ‡åDB5 5™Ô Cç0®£[ÓNÃÿÔ§îúõ¯_„·$Ƙ$I⥗žþ±½eáÂr4pppð•W^éè¯÷Q¬¡¡Â+¯ônÙÒ78Xøìgß4]?Ÿwo¾ùÏ--±ãï:þøî¶¶isßqÝàÁ·îÚ5|èyð 92RÄ@HAû~XÛÔºûîK::ꋜ A±««kʾ‘‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹‹kfªj^=BÈ÷C˜•Ïá®ض›Ë94°gÛ~:g24”g€û‘m—ÁýA¹®H)„P„@ü‡õ¾Ñ!ã¾8ŽÇöíÚ¶Ç(÷ýÀóÊÆ ÁÌ>Rj†azœ"îr:F€`Œ!ÌG,˜A±„à2B0Ôc$I"!˜îHVU‘¾.Š„…¶£"ϺÜc‹1N¥´ª]XËvBHêpºô°!«ÔZ$Ib­in"¡V Õ`ùˬLÓŽ¢â-c‰ aXFT#†]‚*á Q±¶Ö¹œåžvœwÕ«(ÿ,²1p“ÒIZl6£\?„çùìq&JƒÒu™íñ1 •æ‡*†¸$Uó«0¦,ôUÞ¦*‚¿(’šüPuœúçƒè6BHÞ=:±:R^É‘ÂJ&ê8ãá¿×ªªD4aŽŒ†]‚3PÐ(X*µ›`ß,ËUUQ–%ú&ÅÁ¤ö™“NI%…BÑ¡Äó‚B¡ø`ÉdІ @¾«Ú—Z/ê®´²x@Ç)’úQ¥‰ÂÄbƒè#¨’_6BH&‹HÖüƒZ†ˆ"©D틨òÙÅ^[ è¯<¢kÆdZH‘ÀÒÊåœ0 dzm? ‹µ£\Î Ãhx8 sXY(¸A¸®oÛ>BQ:m…a`Y^„ž@Q‚”¶íz^ye¡à޲~¢ªàÑ%Iˆ"oXE ÁàЃ1‚«Š1Á8E7Š’$ ‚€]ׇ{$Ë"ÆH¨*(Š˜Ï;Q„êN³a=<ªdšV£Mt/€Œ³ Ù¬ ¯x ‡…(Š 7ŠÊ Rzq¢¹®ƒQgª0\Õ(ªƒ[Hûs(]¸p¹ ³ÿ›‹ |Qè={ _ôm"„Äã Ú™G @0E±h(»@vjòZ¯ª9°ªªœTîUáwRµWUý–J–…ÚÊgi¯:õÒ&ª5É€q•Ôö½L¦Àn¥¼Ö£²„õÀ #0©§5´`y%4A2Y^ ï¬Ù‚™XV&›uòùâ_&cQbo&cåóv>ï ®iZ¹œ  | ÷Ö}À&ª¦)š&%š®Ë±˜‹Qx®lª®«°œLj±˜¬i¹+×mÝpÍ"y^0<œpaöíêíÍô÷›==™Z²3•(ßÏ8ãØO|â‚úÇßuà ¬Í“‚€ø~mß¶¶ØâÅ-Ë–µœtÒ¼ÓO_r¤ß2y¶vî‚¿SO]üÖ·;Ýg„B®|ï{OKY¾¼mùòÖeËZUU<ün­|Þ»ÿþ-û÷g0Êd2Å(¼Ž©¡ •(’¼¼*Ì26e³Ùx<~üñÇ7J†Ñï~÷ò7>´oßàÞ½ßÿ7Ž_Žã熇󃃹¡¡ÜðpîÀá¾¾l¿98˜ƒ§z¡à5®!ãx\VUYÓ$ÃPu]‹çùAe2V:Ïd*8ø¢HR©u_ÃAhÛ®e¹† Òu¥’_¯··mm)ŽvÊDiõ¹œ &©%3§PpMÓf߃UëëúN=¸Fɲˆ1Æ8B¹nˆPäû¡ãøAAà8A„`ÕèŽ`ŒeY„FJ<®}¾¥%fªah]] WVñÚ †3+枀…a&cA 1Ÿ/Óê 7Ÿw|?H§-B{?.ÀV’¤ÓV•Ÿh•ô×Ä0TIC¯ªR<®Ê2|+?·J’`Å­k¶ÊÅÅutÈq|ðç« >lxf¢Ïiè`”Ðsº¦np¸9›ÝLUUT ø²,)ŠÈ2ú!hË®[ŽýAHa”lzf»œhG‹æ§^­ˆ‰³®®Ôêu̪ë±Z.R?Æ8™dMX‹×F†YËgö²Ó ° Z§byièƒõÊe=tkE39bº¶A,:<—shÍ®Ô/Õô•³Eö®±q{Ö:UFPÙ¾6€_Õk9NéºB-ÞÙ.A ¬ 8½_¨èNw)GûÙ{qÕ.*íkfï—,—#rWø|³Q,jÞ€f³çîd« Ͷ·7MKúäÑl¯¼òž{îy.BA ‚@>ðÓ?þñ³Ùé„ 1“(¾ò•GŸyf/B˜É}?d»b19•R[Z´–-•ÒÎ8cÉÞ°pl¿eÌÚ·/ý£=¿vm×{ß{ÂxŽóøã»}tÇ'?yúüùãBvÌpñ¹x3S¦ig³–iÚ@®Ïfmº&“)ÀúR;›µjG¼Äb²až^K¥b‰DʵŸáB #Þ4mËr-Ë3M Àá϶Ý|ÞÍf-Ë*v÷X–gY.ø#Z–W·oX÷]9W C9º ] ¥eÅ0Tpçù®Y¤&5‡žž4­mŽ¿æ°aÃ7^}µ–ÁÉ2‘P?üá7ä#ofN«ŠkRõÐC¯nÛ6P(x!×-Ú¼9N@[ôе¬âxÝåË[¿óóÇüu==ÙÇÛ±gÏÈÎC½½¹ a,x¦V%ÆŸzê¢ë®{ÛDÕ.üqÃ0eF¿¤ŽVýîwÛ7mêùÂΚî™ër]7“ÉœuÖY“=¼dòžÿ_ýêcçœsì›Þ´tb ÏIŠå+÷mÜøWAÀu;ÑB‹µ}õ«ï^½zÞâÅmU¯KþÖ;¬¢(Êç]Ç \7Èåß-˳,ßuýBÁ³mßó‚\Î=å”EëÖuO÷ÉÎ,8Ù¸ñ•|Þµm?—ss9×q<Ç òy·®…Æø§?ý‡ÎÎø´œí„kü5Iea]{í£Û¶ ², 4@j l!ôÇ?¾zöÙ«§û,æ„yä[¶X?ùÉ_sÑaxø”S–Λ—êèœ}pöF[ÛLlÑù~X²È¶À;›µá?µÎ6Í¢W6|¬:B<®@Ïb"QÖÃGºH; mZ&‹rqÍ@Á$ÆÃúFÐéŽÙÚ©¼%LjúFU~­­ñ™o§Á5e‚|ýÍ÷ªàø‡¥ˆ†?o^’FÐ.¾øûO?½£ê%IðýpÆ5W\qîë_¿•¢{SзÁu´Êqü={÷îܳghÏž;vîìïï7¡+ˆ†Ñø¡·¿}\ãH?þøêÕ«ùè:.................®¹)ßóùr_ªëV0СKÈu}€Àˆa×õP›Bž©–Žz÷ý  ùjš–ç•ÇÄ ºEx aAE!À>Â0 Ã(ŠB×-îE‘ï섟(ŠÇG¨´‚ jv†K0ð/B¬€(BÊkDQ @ÞÒR5#èüš{ɲ@a „€“ Bˆ‚ðTUTQ’*ª€Ú¨†]Ú·œÌu}Ï Eã×õ§>ûÛq|„"ÚeCY$š&cŒY" j̯ڄ*Q2¨ÛóÊk;±Ôrª&ørÔ8Žš2ÇQÍ%ýˆ[uªÍ+sS,V&Šñ Êìäy!¥ü JL6›?kK“åó.s„ · Ó´–r†à –ÏÂeP%õfüŠÅ$Q,–kQ$º.Slw,&Ó'Œ,‹ðŠ¢( # ªhÏ=z‰b1™Î¡’$Q–…0ŒlÛÃS¨BHQ$úE¶í·Aày‘ªŠaß|?”$‚PTý`Œ‘ï/²ï‡ðjËåÊ÷Î÷:mÞJAº®O/l÷¢oº0Œ‚ ¤ünºûøßY¦S£—ícèÊ"gœ~MÁôucß÷gé{“,Ë"Ä#TÍ…/e’ˆ‚æÔ¡èÁYQ…Ò‹ (ŠätŒ1`Ó!=!XÓdx †¦$‰„ „p[›Ž1–$d%YiÆn‚óN$´F£¨õBÝM´FG_ʰ&W‡Vö|x':Žïy¾¦ÉŽãÑ5ð~tÏu}I)ú8µ 8úJÛË”âÑá½#I¢¢ˆaI’ Š$Š"¸#A‚ø~ö3aFQDvŸâyB‘mû„`Ër Á–å! n¬õßpÊ€¼)Š‚®+„`à‘%!¼pÀßHÊ›0ƺ®@mMU%ÜSó ÃP³µY'  A#g¦iû~ÍÚ=À‰²MÁ­Ä4­ MÓ.ÁRÏ GóJ$TBH2©B‹ÉpmဠQ*¥ÁE†Š"ÍV–E“%ð_;ì7m>•Ë9–å ŽiZ…Bj“ÏÛ° ,›BÁÉçlÖ®MÝc&“1ààÔ¾‰eâ+†¡iš¤iEP~‰¤¯jšÌq63Yçœó­[{š§;“uë:¿üå÷žqÆ‘ML½é¦ßÜrË£ð<‡À‚(’¥KÛW¯žwÌ1+Vt{lç1Çt6² ášEÊç={÷ìÜ»whÏžÁ×^ؽ»ŸŽ(†1r=öùµkçÿ»šÌÊç;ïüó÷¿ÿ{:ॗ¾ÚÙ9¹ä…‘‘üð0ýËõ÷gJ÷÷›ƒƒÙááB&SÈåœJK Œ1b+©„`0eÔuEUeh@ù~†¡ãø™Œ54”ec,‚€c1EÓdE£( ‚(Ûö-Ëeë`‚@ZZb--E`}G‡ÑÚZæ×wt­­zkkœÆŽ&V®ëŒä«ÆŸÓÑæ×7ôÔÑuU–I,¦È²$JAÀP¯†&[…®X–çy¾ç–5ªZ*ÖÛEE‘TU£À·µ¶êÉd¬¥%ÖÝlmÕÛÚŒ… S3“S‘„ªZ„¦YdÓÃÊlÖ†)9t¥ãø¹\ye>ï²LÛZ È­‰„&ËÍŠÌG >‚ l5 U–E€Ü©ªÈy¯\\G‡X@6¸¦Á2õùcáù|1P†E²Ïjå ÍFæPBÈ÷Êò¦†šO ¡=áhÄ’¯ C`#KЦæ¸,úœ °×‚Ë}?¸4À.Iÿ„Ø/Dà§išLÊåA(©X d6tÜ=_)³èù*ò8k¥<Î H¦&° o‡šëSv¶ŽÅÊ¡’J |Ùj®kPÊ^vÃ(rÉ !†Q<,Øé•¾W-¹njJjzˆX÷¸QãÝ‹6®¨)ÞçÓ*ïW•O u@Úu5&¼;»KC¼;{£YFU£»Ðšë6ÍÞqA(ßGÔ4vÊu´ª ÍöСú4“e±¥%ÖˆfÛÙ™h’s.¹ä?|ý(ŠBTL'™Dñ®w}'üŽŽdG‡ÑÙi´µÅ᯳³Ø›9ý­}}fW׸ÎŽ,XpôƒÆø\¼É¸uִή,Ím¯@ÒÞ‡iìÔ^—Îdgç¶ÏX/ºlÖ¶mŒý,Ë…È óóy;—s,Ë-mõ€e_(8¶íe³N#ó?B°a@$_¢á}M“Á®Äùu]˜?t$j,¦LRàˆ‹kb5!üövCÈñÇ_3<œ«:¾ ’D.½ôôO}jCwwM«Šëh•ç;wöoßÞ·m[Ïöí}[¶Ü¿("Œ±, ¾A8~êùç¿2Qµ ^K™Fù~øä“ÛßòŽS›fM fòžÿO<±íôÓðvâŸþô§×^óo¾ùìHȺüê«_«ÛkÏßz\Ó%˜ð’Í:–åZ– ³×®?3¹ˆcÐøßàsŠ…†Ñà`®³Ó˜î™¡âÏj....®Ù%t•Ö¯_òâ‹_íì4æBmo<â˜û©ÑƒnúÜç~—ÍÖŸgR£è{ßû§Z“ù)LŒa!õ`ˆN[Ô:›ÁÙ×1ÊÖuÅ0ÔdR3 -‘P ­«+ÁÂë©i6üg§åsqqRª*©j²«+9Êô0AŽúÞÓbÎúRìÝ;”Í„bÎŽÛɲ%:‘ÐÀÈ]וx\‰Å”TJÓuU×e(þ‰„¦ëŠ®Ëº®rwŠ£U‡Íž 冇óÙ¡¡»¼wïÐÐÐÞÁÁ,ë}"ФµU‡ÁaÔY½ê€¡'žxõ÷¿ÿÛúõ‹?þñ³O9eæVqÍe)ЏjU÷ªU»¾<8RšÝ7(I¼ýÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅ5EE’LƦû,¦Tͱæ°&Ÿw(¨øþ¡BÁ …ÀAdX ôÑÝ)IdYn¡PþFlyžOžø~ „ï OXÉïSG€YYÜvÍfÜ?+YÙá7#Q$tòå8«ªDΔ#I‚ ’+„`ÉÑÒ¢³DlØ1•* kKRÑäy~ J±q.5po«F2°£‡ªy3ŽF¢HàÝ!ID–‹l}x[AõÃ÷ƒL¦ IÂÈHùÉæû!Æ2Æ~õMÅLI,Vè—þ]—Eû’ ‹ÔÞᎣ ²!e€>!îµ¢ˆš&ÑŒ1áÂO`k&%B>ÉålÏ ²YŠ$° Á&“± dA1t]?.ôõ™ðu¯Pp]7h„qa%p1ášF™Æã*àÁû‡óE‘@ùJ$4xX±¶% ÑttŒ}vðƒà1!¸Ú™LLLÑB}}&‹)4Âã*Š˜JÅà²T\,Wˆ%AÊTJkiÑg¯9ÄÌWoo¦Ñ&Q0Æžç Y³fÞâÅÌ#š`ßÓ“^·náš5 Ž=¶óØc;W¬èZ´¨Ö£¸Ž&éºrÜq Ž;n»Òó‚}û†öìÚ»wp÷îA–Ú9áÚ¾½÷škî}ê©Uoá'ŸÜyá…ëÇpÀ0ŒLxÜid$ß×gf{{ÍÁÁl.ç Nå«çÿgï¼ãõ¨êüÊÔ§ß’F0¡ˆ,©E]DP×u]Ë‹¢?"ÂÒUĶ®ŠÀ‚J/ " †‹"EBÉRrSï}Ê<Óçüþø>Ϲsgæ©·ä&9ïW^yÍçÌ™3gfΜúùD%ìB ù˩鴦iŠ®ËP™÷¼Àq<ðÍÁAÃ0Ãp*#„$‰(Š5À @žç…½$B”ÒTJííMõô¤{zÒ}}iØ]ûžžtoo TÚ»¸ð0c«V1ÖuE–‰¦)Pq­[FAË.PUyêÔœç–åÄ7 Ã2 48XŸf%I”±šé‘çáðP5J§3Ù¬ vù|jêÔl__º·73eJ¶PH )²ß"ú’Pa†: Tr* ª»¼äyA¹lñ°܃À o®G Ý8ð©…–× ïéI«ªO…‚í/ø:CÍ'Ÿ×¡ùÒöÛ[—²@°e {azÞ°:yX>ÜQVÍæܮ뇄æÕá‡;y´ã ëtsÍúpF)· :›°î[«ÃóŽ (£<Ï£”̘‘‡èÌ™=Ðá?œáÑY¦Bp4„mE‘Àºœ¡CŒ‡aÇÜD3ÝjÕidÐ;†}­aëÜF·a÷°µ­ªJ! þdSÛ&F¹‘¨`Û0lî`êºA\óÔu>¤âû¬R•à}h@Ø#6ü0£Z7ѰW(× 1 ;‚ ` àyúɮ Ä*¡Zà `¶í9Ž€3Œá!Çñ=/ðHÃ)i®ˆÏëMd>ÂIq0® 47¤ôýš(â\©Ø¾_S0q?¼.4¬sóýž t^a„ÜRØI‚‹k£zyÈââÝh¤Öc,¬þŠ„õü1ý kÇ£ÜXƒ„5’d™„í+E’e‚b ¹nͪ¨îEêÛ![ŠÏ+ÜJ‚ °mR,ËÔq|y—$ÂÅ¿\×·í*œü½÷†c”ßàf‚=/àÙîûW¤«\ KG©* m·– ½ „×_…©½Sº®ð÷ r!dYž,K²Løe‚äœaX²,aŒá2KT,š²,ù~í†ÇÒ÷ÙªU›Pè¹½9ßÊeu.¦–N«’D ÁàCÀs ›UÁm^1ÐøF!ý}pI¥jN™Œ e…£ºê:ªKkaŒòy½PÐÇO{=‘RÉb,@õ——kùqÍ5×­=T\Å×—L³¦^Ç÷pµ}Ï«©­…+KÅbµî¦cS©ÉuÏ IaKÈmÆjÏ7±@uc €Ï5k? i !XU)¥DÓdE‘$‰èºJ)†{—Éè„ LFÕu…\(¤ ð—e‰R Þ ŠÊ¥Ó2 Œaàa€?ÛILœú¢ÄîŽNnýÐPMî8Ün¸×p[á.ƒÔA–Jµi®`JŽ #ÛüŒ\1_–)HÝb~6«AfÂûß5(%`¢,”0°aÀ¨`b)Z^”¦ucÚÊ·m¯X4W­ÚÄ÷·ÊO3æBù…‚ÎôÃòFP>÷öf¶ˆ„ñVãxáBH–©çŒ±iÓr‡ºÛîºÿþ;Ï™3uppó²eËæÏß³S‰·ŸýìÔ1M²`+C–é®»NÝuשãw ÆØC½|ÕU®\¹>1À믿‡PTéÞuý÷ÞZ·®kV¯Þ¼zõÐÚµƒÅ¢94d† åRøŒG´”)%©”2}z>—Ke2 (‰CÍ6XµêT*f±h–JV¥bmÜXÞ¸±\K…ö™ç1Þ~TUîíMõöfz{Óðo¤~}º¯/ÓÓ“â¶Oí0æjõš&ƒ¿¢PŒ1t/BÇg,` ©ªL)q]?¢'Ë«VmŒq ÇqS)…1Ô*}Ÿ‚=ƒj'df8Ïs9-—Ó …üŸÏë°Qÿ§ iØ?¶ÕNÛö,Ë!ch B£²Zu¸ü.´FA¥¤ç¹T=äªaØžç‹f¤j ¹œF)UúTJÑuEU¥vèë°íܰG’h:=¼BŽa>Ûð&Âv©dñ¦ï*‹tsW<4Rýœ¹¡‘ÚÜ`Þ‰„7<ÑÈn¢°èv¥2Üî¿êš\NØ „d™ðO·ÁCq'QU•yŸaooÚóÆIJiš Ræº^ûº¹nÀMd}?¨·1!²:'áEFˆU*!öC¿ôT«6ï gl¸#.¬QÎEÏGO¸3'Ü)¶Zä a„Æ8l”˵ãÑHýñ°˜8ï-dyX|Ÿ{CM€kñëºßBp*¥ð|€þºJeø¯8ž†pïbÄvšZõ¿Lð«G2Bÿ=üRpëA` Uû9áÕ[á[€Fö-H ×vR©áÞ6BpX¼2¢×ŸËi¼—;|[ÑH™xnpóÈz$Ã77l¥Ù²7[ L$MÔl]×ß°¡¼víÐúõði` ¸n]éÙgßZ¿¾Ì­L1Ɖ#PP>¿ôÒê/}éúÝv›ö­o}tîÜÔ(äîÛ¥’uÏ=ÏbLþõ_?¼¥Ó2ÆØ¶74dD$#â õ ½ ²LÁ–/,[ö@å:/[óm ñm·\¶`ºµmÛ+•LS(—MÛöªUÌêÀѶ½RÉjRw{ÝTJÑu9“Ñ2U×åTJ}ßûzAÂ>Ÿ×a#“Ñ2MÓätZÉåt°ëß‚QB)™6-?mZò˜èàs+7þæ7‹E­§ûî[zß}K?ò‘]?÷¹}öÞ{¼’-ØÆeºçž;ì¹çŸþtmëú]° A›¼ýö†½öêßcíÕ«7¯Y3ÄŲLE dÛ.ô‚ÿñ·…Ò½@ @ ˜„Ò½@°U’É(úÐnŸûÜ¡¡gŸ}ëG?zè©§ÞlxÆrâ~Pn R†ÜÊFÁ¤c܉b±X5 §Zu Ã.•L˜`N¹l–ËüT©X6” éVmXybvdáB4ñS)5›Õr9=VÒi5“Q³Y=›ÕTUJ§U¾‘N«š&ƪJ¹WÐ5²L‡¢ï¸ã™æRJ‚À(=ýôšûî{þä“HÔw@ @ @Ð=ŽD¸Àh¸vL#¸ni’ĉk®?…FJ7"" '"©œH¥b7OmKµ,4Râ¹mä­ßRô³×ÉFXC |ȋ׌1Éǃ~ÂXTLŸ162Ì÷„v3HXó»?†ÄÅ0F‘ºJ> ‚T|÷}ŸÌXDvË(ßKkÇ3†Ê‚UUb ú? (!cÆ/9˜ªJ _{à1N¥d80¬µ§ic(< ñ„/<˜ïáö=Æ×Ç÷ýa[ØS,VÃOÅÀ‹¼³c®Š!,äózXÈ#, …ÂET~ÂòC!Bpdl=“Q)ÖárÉœlV?‡Š"q9- ¬3…b‚D¨®âÍÿÌåôlV ß4R·hÒbY.ÙiÅÄŸÐHu0Nü©‹81F”RÓt«]ÄY©´øÔvªJšV{fcš&Á ÎRIU¥ ¨•¥ îÏßJI"üí›…ø~€1Å+PاKªzžO)±N((žÏÂ~ ü]×ça¶í9ŽÏXµÚâ ÞÅ…kš‚ª…‚ö’$¹áû¢H’DAð!¤(’¼]0øTIqÝÀóJ‰çùžç+«„Çñ`•µe9Œ!ÏóÇÛ¦ãy !dYN§Ÿ{îÄÀE÷x±Ãm¸Ç@*¥@jùKÍ%äxA‘ËéÃ$Õ¤Ç4TWAõB¦§'µÄù;Â_ðx›Âonxg£MÓ…/B¥bÛ¶ øÊض¨m»®˜¦‡Ú´É?ŸB0ìŠB0Æ”0rPU V$‰PZ»ãª*C©žN+’DS)UQ¨$‘B!©Œq__ ž\.¥ªxo„õ»?¶â/PQ‡[º–P-‡¦ˆ‚ª~¹l3¸#”ËÖ† e¨~ƒ€ h¶Ó|ešJ©ðšÀà b ¡Ï9!8›ÕÁO‚_5÷äÀƒó|ïà;˜Nk# rÆ…®…ò¡©X.ÛÕªmšn©dV«Ži:•Š]*™¦éš¦S*™†a›¦;4T-—-P*YaµÐ0“¹h )Ù¬–N«©”’JZ’J)Ù¬–ɨª*g2j*¥êúö2?pݺR¸X˜9³pðÁs8`—ý÷ßy÷ݧMþj’`;Ç4_ýjÉu×=^*™MžÖ‡^V*™ë×—6n¬ Å¢i–e¹Aãú‹,S]WúúÒ©”¢ë*T5Âð90 Ç4­JÅ­VírÙBhŽâMäHC˜RœËi™ŒÖÓ“êíM÷÷gÁ·ƒ¯§€? ½§'ÝhIœfAoÜX.—-ð-Ë­TìrÙ2MÇ4ÁbÄ5 v†S©X•ŠmVbÛ\Q$Y¦„`Y–A Y½ a¬(RükÅ3Mj¡’$+Ь(TU%I’0F”ÖrÁ÷˜`9ŽgÛTZ@÷™1V.›¡ÁÁj6«åóºªJ\³>—ƒ =—Óa'äU.§ƒãNsà [©X›7ð]²¹· cŒ›â@¿S©ÀG܆ޝv:ë š uTØï(©Ÿ=»ê3ày“Íê’D²YMQ$øèøO· ‚ ö"£‘=‘žÄ>ŠxKg|"…nÞ¢Dõ8B!&ËïçØ–eVY¦²,Aç€,K½½ih¦åóº¢P× |?$*ËÔ÷™ã¸’T“ƒ¯VJ)l»nÀýƒ`¸û‘Ìeô !–å€Ë 9¾’å®À¨ÄØöÌ„ûÓÂF•Pñ†íHo!اÁv–osŸTïð<ßuphCù¾ïû>lÃu…›3ª*óKN¥ÆhâkšD†/Ž¢ |FÆhÀ˜¶¹¿m:ÆØÐP5â é: [·ã”Ö)à¦Û’DÂ_ðª~$Ã#öÏ3göðLß&„x¶Õ#i¦ÿv<Ø£†Eê)%Ðx–@01È2Ýa‡Â;µmoݺâºu¥5k¿ùÍ?4оão¼±þ¬³n1#{ê©ûî±ÇžÂIQМW^y鍊ž¼ûîç,ËýÜç@h²+Ý‹ÕrÙ.—­rÙ,—íJÅ*—­b±Z.[ᥒY*YÅ¢÷d‚žêzã]Ïfµ]v™ ´³Y Ìêxëöí{ízh€o˜K…üýTWÌHöùòù4b«úÔ©¹¸ý*wfåbB:C ˜üDtð_~yu¥{€ìºþâÅo¼ýö ®÷yäÜñO¦`DÔ-Ápè¡»ûþÚ¹sçN›6 ö8Ž÷Þ{Cï½7´fÍàš5ƒk×׬|ûíÅjÕyî¹··hz@ Áö‚˜C l­¸®×]Ï^{í㯼²F’h“e÷ÞúôÓO¿Y*Y¥’ °]*™ñõù|ª>²¨årúN;õÃd6[ÛóG@ ˆÐ>>ªMBµ‡†L¿¯Vkk? „ò­JÅ2 {Æò[om,—-Ëra}Hd8'•R4MÎfµTJQU9›Õt]Ñ4)—«MVˆÏZÈåtU…u˜š¦ÉÁÄP*Y|y9®»®ŸJ)óçÏ=òȹûï¿sO}å•ÿ›?ÿ±xO @ @ šÓRú'"{Ú(LX$¢A€Ö‘$öêwOË” 6®¨ÍHFEmFÒ2oÛ¸Ac 3©ˆ :G©Ø4$,/Û8L‹x"â#"i.쥪òÎ;·ˆdL®¨åå 6®¨HÚÉÛ–WÔN$[ñÅ䕊ÑŽ¿õÉT“=ŠÚ0”JfD´Y#‘GJ ÐuD·^!¹‘)·gDä°¶<|®˜æˆ=Œ±F‚ïžÇ\ίPà’ú:BˆR ˆ r `àÁ«šüEK¥T.—°¥èHvß²ÜRÉ ‚tÛBŽãY–kš®çùŽã†Í³íZT¦éÀÍrÏó˜i:žø¾Ïó}¥·ï£|ÒÀÛ!D)÷J !v%‰‚Ø¢ªJ’D Áª*KUUI–‰¦É’D%‰‚&¾¦Épû²YôþzzRª*SŠë“ÁtU•àjšü¾÷õÆ=FWÕÍØµøVÞ ‡ùlo½µ1µá\…êæ\¬„x¢<|ûaFù‘$Òõ´@TŸX,Ö4ñËe«R±MÓ©V.š;+{Ær±h¯•ŠÝDý“KÞÃDÁL¦6QÔóaC×ksùÔA]W@»YÓ”ˆÏäaÆr:­Â7c<8hf2Ú~ûí´ÇÓ·tÒ‚f”JÖu×=½hÑï¸{“¯ÊŠ+V „Áª*¥RjNÓ$Y–$‰p{ËòlÛbÖu}×5ã-å:8›UÓiuúô\¡êéIõõe¦MËõöf¸x=(ׇÍÊe‹Ûu€0=”K¥7ß\?òW·\6K%«R±-Ë­VjÕ ’„ùá“‚¿cBj-¯ `žç7ZB"ËD×µLFQ”Ú¯§Ó*Çw/üáãzs°Ýö—±u_%TÉ"Ÿ³B!U¡Ó¡?­Óobó“ vB ;Œ‚t#î²%n؆÷¶#.³aiï°/ix@Áq¼‘g>œ÷@2†ŠÅZTAÐÚlµ%„ tº¦©-IX×îW§ª²ï3„ÔçÁE$Ñb®hZÍ:K’h__š§ãZ_ ÆÃŽ¡”Ç©5a™ä¥$0Ê….¬rÙD¨f‰W­Ú®Ë5нvj×möŒ—‡äu]V.—_“&w]?Ø´i¹zÂUÍ…”ß1߯Ë2åݹš&{^Àc“e꺾ãxaU¥!Ï ,ËU”ZÂÀ­„FÁˆþIƀȟuO‘Z¦Ez­9TpãrK0NÄó2—ÓÂÒí`ÌL™2,lj¾‰qÆõßù!¤™þ;t2-G¬@0TUš5«oÖ¬¾v(4ïž„Žtßgå²ý·¿­š3ç¥ãŽ›7QÉlM8Ž÷À/þö·¿ôÒ»’T«€=þøë™Ûö`M4(E€B=(×ÿðÎR©öS$¨óäóz&£‚FD&£NŸžçZö VÏ$ÀO´ë4û~P©X–å ™áînØw†7Ö¯oØ×µæy@>¯O›–K\î áŸD«_ Ø>(ÆwB$ ;ŽŸJ©¸Ë!‡ìzØa»RF(Ø{o!s/‚­ E‘vÚ©§úã?U*öÆå‰O’@ @ Ø™¤3ªA6mªÜÿŠ… nÚT…Ùuq _!èÅßÙ¸±£³fõÕ‡kFÙ jŸÍÖ6&ð:`‘e:šåpÅbÖjÂ"ËrËe«ZuLÓ5ŒÚÂðËekÆ2¬ðl©•Êå4U•S)%“Ñ4MJ¥ÔLFUU9“Qak>¯ÃôÙTJ‘eZ(¤`"l:­Ê2Íçu1¥µS6o®ðíúLn¼ûîÓPÁÃÈ^c„ÆD–kÂÙM&G.úÏáâõ da®NN¦”@¶‡Yüðù~€1 }.¯ ‚~ c,Rûb,˜}Œ‘®+á»B)ï)—–á9€¢ª2ˆ£qÒi%R{I§5J±¢P¸(&1× £”Fj80Y",n$3+Â{2[/ÔO­®´_ŠN€v¸•‰Ó÷Y¸E7, Ì¥R o×@ž”ËwÔ@U«ÖxÌ•Ë&ÆîK¹lÃòý<…FØ3cØ)Ä÷Ð.GAàû¬þ^¦ ú£\ë_öýÎ 0@Á!„PBK òŠ1ÄM;ê©fð:û~i¨Ÿ”u÷zêº ¯ƒ¢P¨úB4M=A‰¡”¤R ÔWUU}Œq.—’e‚êBüuVP{$\b&Ÿ¯½eü½e ¦ÄÀ·)îÙ"Uâð7‘1‡†ª†aÛ¼Ùpß¶](·,Ïq¼JÅ‚À²¼jXlœ IDATÕF†í8¾ï–åú~àºcÈq{öìÃ?üšk®™2eʘ$¬ŒJÄ0ŒÿøÿX¸páÊ•+çÎ{üñÇ/X°@’¢nx²T§‰ï:mÍcÀ¯X±bΜ9]GÛˆ^xw` g“$êº~“Äzê© „,²@ tD>ŸÊçGCX+ß4arFM4¿R± ñ,§R±A4Ó¦ ,{.«ŽãW«N󵂙Œ*ËèækšœÍª²,Áü ˜Û!ˤpTUÎå4Y–2”br9]Q¤tZI¥Ô1_7 Ù´É€ Œ‘ëú;îØóoÿvØ©§<Þæ.¢ÒØ’QVÀ"‡‹£@ @ qÂ’ Mͦ–ÁÚÖÈvÚ ,—ÛÒt+G4¢Maqßgí¬.‹è4nµ ÖÄ3LD±m a„µÑf¦md2j\w5N\û2‘vÔÁ-E½B’D2™ÖÁÒi•ë‰4¡M]¡ш6»Ž[ê›KRkÕ‰¸2iÐZjI;úæ-5ò@° —Àå€ïÖH¥bû#WÙšfTX?ÞLˆ¨iž—`z”èÖ“Øî€QïØÎë£DϞĊ´iº‘& cÌ0¬˜L<3 ÛóXd§i:ÝéÊ ‚ÖM¡¦à¸_N]Ü›aŒ…ÔÓ‰%‰D™Aa9Ò΂  ÚÍ Rh_ðvA]u.‚H^¡ømï–B]0::î — ¯C9“ÉhÐ'ɨ™Œ–Ëi0ÇŒR¢i2¨£ºËœ+•R-ËqÝ î?á „}?€J‚ .‰AÀJ% º›«}J††ª–傯+Xq”JV°rÙl™-`Þ/®+Kð“®ËàåÀ0¡ÓÄ4EJ¥Œk–Qé´*IzÂý š&kÚ¨ê‹\Öyh¨&ÞT,šPp…¥©øOCCÕU«6ñŸ,Ë õFk@ƒY¨?ÞBAoþS6«Gúm"Ù¢À«VmüÁúÑúØÇ>ð/ÿrÈ¡‡î6š ‰3štÿýßÿýÅ/~ñ¾ûî«T’ÅÊ·8M®.áÌ3ÏÜÿýo»í¶“N: öÿñ<餓þñ|à@†qÉ%—üå/yóÍ7÷Úk¯ã?þÜsÏ•$©‹|Kr™ŠÕ·ÆqšÿvØa»~øÎ ®hÓòÊ÷cA.§ëºšN+Ù¬êíÙ¬Š1ñ}ßu}ßg†a[–kv©dÚ¶ûöÛÕW^y¯ZuéÔs¿„P°F¹JN§UE¡™Œ¦ëЦɅ‚žÉh©”’øÚÖ~!Ø÷ß÷¦éT«NµêT*v¹l†S­Ú•нaC¹Zu Ã*—m(uã Ð4YQ¨,Kš&K–e j¹£|^Ëå´vÀp×õÖe2 Û÷ÙÚµCÍKfJI&£IÉdTøjÃ÷J*.@¯ª2tA§RŠ,KP&C`ØÎf5BôÆÇ륂 #¬íq2»‡Ûà‘.‚°R|¸>‰ j…ÛþMuçÃ"òÇø¾ß¾ïEûð&cLÓdx$ƒ€Á?…ü(¥ŒõmÂ=ù jíyžï#Bj…!!Ÿã\N³,ÇÃÓ»#îÕ¤R*ÆOž¦I¼Ä’$*I`ׇ,ËU mpHäCž`ŒxÍÜ÷°»€?=/๠i^DcŒ|Ÿñë"‚LJ‡ ZÕܲ‘g…mG»z8AÀÂ5¥®;+À™‰ÿv“B±ñµHs[Óäp?@&£69¶Ó˜#íúH€Ž"@ЄuëJ!Œ‘¢Èày3sfáÐCw?è ]ó~ìÊ•+8à€7ŽCkç‚mÆØí·ß>kÖ¬;‹–wÜqk×®E½õÖ[‡rl#„úúúBûÛßvÞygß÷—/_þóŸÿüƒüàË/¿\(ºKLøJ»Ëºr¹|ÀL›6í‡?üá.»ì²lÙ²ïÿû<òÈ¢E‹â²]'¾»´mA>úÑ=%iýܹs-Kúßÿ]þøã¯/^üŠiºš&' ¦”J–Pº‚ fôZù°ü϶}Ót`9e¹lÁZ¸JÅr¿R?½rÙtÝ R±ŠEsݺR¹l9Žg¶i:¶í‡$¦!T(è°ÖøÁ2d ¯Q¡”f2µ5*°ø¤¾-Áª]Ož(³)ôlV+—-ȃի¯¸â+®x`þü=>÷¹>ñ‰}øü±>¯¨4¶` +`¢ÆØ5Œ±çŸçÞ{Ÿ_»v膾¼¥“#@ lËt$*mmi^£* ÐÁòoÃhæÀ´ŸÚŒ¶‰jO,íæ€ëz$ Ý¨Ví–Rh€çù†1–9²P-ƒ“ Ã$¤­ŒQ>ßB!DH‚Ú`Y&\š­  «Õ2ˆ¼´ =l-ƒe2j;}Yq«DÚÉ4JÛÊ4I¢qÑÆ8ŠÒV¦Áª¶–Á¶#O@ ‚ŽˆÛÌl‡rÿ÷@•Ëv\¿\¶â:ì‰Ö\CCѦ_b“¤~#; º€\X´å:–ä ÝôÑÃJ´‚äf¸¦IñvÐðÜU¥ÐøaqI¢rŽï3Œ×'E5‰RЭIr]EˆcìyW;ISÆPÄþ!ï3°+à-Wß&JTvBÁƒX6Æ¡ÚÕ‚¸v( "‡¥ÿAH]–i8¥˜Ro,kšñ„À§Ó*ÝFÁÔI"\÷B›ö×c“$©v Y¦²L1Æš&sFY¦`Á}Çs]OQh/Ûö°|¤¢PÆXxf¦m{¾ð¶|wjþŒ!ÏóP]÷Ó÷kâ¹ð'Ü-Ësœ‡‡úͰe9Ýi©ãïÍËåh0nÿ¯ß?‘êɰAÈðù !ü9~xDáI“eJ)X BˆªÊüiÑuÐB’D³Y!$IQU æA¥R H¥óÇäxx$½½i„ª*ŠB#¢“‰ýðáý~Žã P>W«®ãx¥’éû¬ZµAd¿\¶<Ï68X…:6=/¨V„˜ãxŽã3†lÛ³m¯Zõ=χÊ%Ï ÆùÕL\0ÆŠBAÉ”R ª©„ MSàvÀL³tZÑuUÓ(BHוTJu_Q¨ªR¸É²LƒLY¥^1Pv/çù®ëy3 gófÃq<ÆÓô<Ü(1dQX·90NU©®+\þ>“QAúD¨s9 Õ¬þ`§Ä;s9 JM“)%P›:57mZ^×U¥0Ë®e2ŠÅ*|K¥ù¦YÛcšn¹\Û(•ÌÕ««U§T2mÛ«V&¾˜é´ªªR6«¥Rª¦Iétr_ý±A?üòƒ¾8wOž7{ö˜iOfÝ{ï½wË-·¬Zµj¬3‘À%Ì›7ïüóÏ?óÌ3>úèB¡P,¿ño\|ñÅ sÞ¦Núƒü`×]wåÞyä‘îò &ÅÃÕÔשŒ‰¼ûîæ2i{v'ÆÁæÍFã_›ÙÃÈ2Õu%VdYÒu9“QUUÎfõ|^Óu¥§' ¥}6««ª¤ª¥ÄóU¥AÀ'$\*U]7(-˜ÇkYN¥b‹æ† ¥rÙvײ<¨Z»®ß¨‚-Ic_7„ø‹` Úô-.*Ër3Õu}˜œÍª„]Wêô :OÓiØÖêô˜ÏÆåó)yÁ˜@a(àD´àùÝ÷—P0+Tvo‚=niŽl‘YwضíZkdÖylŒ±p°ˆasÜÊnL€Ú>B \ ÀÍ~ rí)B07x`,à ßá äûAwu-‘eÊkï²Lx5!D) ¾I —`/©¢´ÖÞ·’š 4Y(—ßýîéÛo~ݺ"T&ù3¹n°ûîçÅ›ù`lœÉhÙ¬–ÏëÙ¬¶Ë.S²Y-›ÕÂ;³Y=›Uaõ®ªJÅ¢ 6c0ˆ½Ä¥’å8Þúõ¥·ÞÚèº~±Xåv­Æua‰±gY®aXœüB MŸÍª’Ds9*ðé´:}z>Ÿ×e™¦R*8Øe³º,“LFƒþOXAœËéàœÉhag@ ØùÈGöüøÇ÷ž;wÆ6Y I ¶aÜ1¶nݺóÏ?ÿ´ÓNûë_ÿÚüìáSLä@Ïè…­ãÁ63äÛ“ªb<©#莉{`ÄTæmíö?²í<*Åbñ[ßúÖ£>jYÖ'>ñ‰_üâ 4©ÊŠI•˜íœÑ¼ží‡?ºÆÐݹƣ*¸UJ@ lY„Ò}gô÷÷ÿà?èô¨… Þu×]º®Ã±AlÚ´iR7|.Ø~ùå—_}õÕ… }ôÑË—/ß}÷ÝBº®ëºŽ éÓ§‡Ÿ2e ì™9sæGqÄGüô§?½ä’KºKLøJ»ËºK/½tÊ”)>ú(¨”î¾ûîÿøÇ÷Þ{ïo¼ñôÓOî:ñÝ¥m20{vßìÙŸvÚÁ–å>ûì[O<±üÑG_yíµµ0’¯Ë*—­iÓr[4¥@ èŒ1,5=®ëW«vµê8ÎðŒð§¦ƒ_*™°œ¶}ŸU*–ëú«Vmòý R±!×õ ÃiGBNU%MS`̃Ñu¤¬ø‚ÐćՌ|Å ,†9:ñ`mê‘…Ùuש‘ÁfXoðøã¯/^üZOOêÔSúÂÚi§þÎò´¢ÒØ’1¬€‰c¼þúÀ}÷=ÇO ”0Fûî;{K§H `i_\H”3KĶÝDãÉ8ÐÎj; ¥Ib ðÚL@¢zZ#*»Éj‡‘ h7"‹ö[% Ùr‹0‘%úMt’€vs }¡ùmXßÒfàB¡µ¬6Цêw=íú¼ íö´ô÷gÛTÐî(òy½å:zÞIÒI"étëó‚&WË`qQ€Dt] ë>4"Ve¹õÔ±äI @ lq%hÇj˜~Æ4¸¨LHˆíLP6 ‡ÏjãT*v|'ª)?FÕý &Z šM]‚]\£ž¥°e˜j5Ù™/Ñ!T,{!póÆ:è%› ¥WP”e2rgÍ€ÚÏU)Èßû~y 0ÆŒ±˜'A‚b#c,ž‹o]@¾!4B)”Á¹â'ßÉÜù~Jkªî„B0tšqYðl€à"7´àcaÞQ!‰‘$B)GZ’w}w×xžIOËòc I¢žçÓ_(÷b„ `AÀÇw]!ÌÃ9ŽφçpcÇç÷7àÉKfŒ!þ®ñÀ÷ÃO¸蟎„n¿1Ò1@?BˆRŒ†Œ…» Ï è†,áQpìíÍðN?J)¥¨§'…’$ 3g²Y œ!lÛc,Mx6ªUtWaö—ï³ (%žç[–çyç¹¾Ï|?;RJ‰eÕŠýrÙ¥ÚR F1Xµê2Æ<ôèƒr¹æÄàº~§2µü±ç¶ ‰Ek;H‘$ 4je™( e QJdY‚§dúƒ€Á«̶]U•ŠÅ*B .xV Áž[Ïóák庾ç–å¶y™õ©tµnX˜½²ð÷ÐÂO2—Ó§NÍÕO)I8˜ëŒ1ð+Û²\ð ö,Ï0¬JŶm·¥»*\Èk¯­½ôÒµº.}ó›þ™gÝŽéfsF3ƒnÍš5¡Y³f2 [>1ï /¼÷Þ{¿ûÝï^{íµçwÞŒ3,Xa`ÂÛâÅ‹#Þ®¿þú¯}ík]äŸ7NŒëTÆDžyæÍeËÖµiKŒb Í™3UUå\N×uÄã…d³º,Sßg„ × ‚€aŒâô©¢GF½«Õ-Ã1tÛ~´•ŠmYÃ#¹Õª®ÿ† &+õÀª.Á“€Ç9¶î_¨æº_½€×Æc«‡ü2kDAÀºþV¶$2 ±¤‚)Ï:Y&PëãrðP·-~<¢Â Kœ¤PTPm¨EEˆ¤(ðm÷Ýo×õÙáÄG{³Y•ßÇñâzzr#Þã1ha»/YŽŽØær­Ä4âGˆœ"î69E›vÔ@ ÛûØû?ýé}ûú2[:!ãBxa`„v´Úé¾@uÔQwÝu—¢»ÿþûçÏŸÿç?ÿyŒ/frì·¿}üª«æVU­:Ø‚Ÿ”$¢ª2cLQdèýV*™®ëCgm»å²U©Ø¯¿>#S†a»®_,šÍWéÂTRЗ‡)µ¹\Mƒ¾§' >—’Ds9 *üé´*I¤PHÅÌöÌçuIjË•S ¶öÝw«zh“±ª! Ð¸ÃŒ3®»îºwܱÔÊ\1| Ó4ÑD ôŒ^ØJ0lKC~h’UŒ'UbÝ1ñc¯Œ˜*м­ø‘Íå´ÛyT>ÿùÏ[–µdÉI’¾ùÍo~ýë_¿óÎ;Ñ$++&Ub¶sFóz¶>þèvCwçªàDVk@ ØÆJ÷!tÿý÷ýë__¶lYOOÏm·ÝvñÅ/]ºT×õ_ýêWÿõ_ÿµzõê½÷ÞûÊ+¯üÈG>²bÅŠÝvÛ­ÑÐÔ<ðýïÿõ×_ÏçóguÖyç‡Ú¸qc:Öuý7Þ€c:è „ÐôéÓB®ëžþù¿ÿýïc_úÒ—®¼òJY–1Æ7ÜpÃÕW_½qãÆï|ç;3gμ袋6oÞ|æ™g^vÙe¡?ýéO\pÁòåËwØa‡K.¹ä‹_übø\žÛo¿}þüùGuÔܹsï¸ãŽïÿûe Æøßÿý߯¹æšK.¹„'!Ä·acÑ¢E_þò—o½õÖ¡¡¡È凯4ÃÐÐÐÙgŸýÀhšöùÏþòË/×4 c|óÍ7_~ùåëÖ­;ï¼ó yvóÍ7ÿá€9Ü@:>÷Üso¾ùæ#Ž8"|ö&‰OÌäU«VñÃ/½ôÒ/ùËŒ±Ï|æ3»ì²ËO~ò„mÛÓ§O¿ùæ›?õ©OÅ'„üä'?¹îºëÖ®]»Ï>û|ãßHÌÃ… sÌ1›6mZ°`Á÷¾÷=È„ûî»oÁ‚ƒƒƒŸÿü篾úêwß}7¾SU;5Ô4ù°Ãv?ì°Ý/¸àŸ_}uí’%¯>úè+Ï<ó–ï3„’—ö `ûA–i>Ÿª/Èï“8AûÞ¶}XÄnš,5áÿàOXöcÛ^µZ“Èw]Ʋëúvú~P.Û¨mJ¸XK3u`¬ ƒ >K\d *k¯]òë_/>äÝ>ó™½§Nm±êCTiYïÂ_vÙe7Þx£iš`[(•ÖW‘˜cQclŸ7ÞXÇÏÜsϳ%XyŽb¬åÜ;@ lÅx^`ˆæX–kY¬Ñ…*_GI‚z`‡Iêà]ÄßÑ%Œwuš~´-d‘3æ+÷vÚ_cÌU ZÒ‘ÌA›š×¨.¬ÐfœàmÖS§æÚNÀÖ”$ ÝhÇ)@ @ ¡ëJ¼óJ8Œß2]7h,ÓŸ ~bšn܇!²)ñý•Š5R@¼FX?”Ã*&"6ò˜t]?Q¢¥QŸvbâ}?¨V£¶” 2kN$ñfð'Õ8ãÂ6!TMc,,C±¨KÀÇ÷Gwò ©îÑ'~"!55QŒj;A¬j!qH0cDHÍNŽb¬–'cY¦„ ‘° !D)÷çú¶`äÀ@Õñý€‘—e,5v<Žš1߇à”˜'’êû($cÌ\·öÓÖv£F€1˜„¶x0È2…\I¢„0È „$Ž?Âèü2~?qúÀ ? Á¾À=ò<Ÿ1Da,ð³,Ûu=˜Î sœc”Ö þ˜y^€1m}Œqb‘‡¬ë B8–AÓ_×Jq:­‚#R¹ÍãÙk¯ûØŽgŸ}4! eî'f]| B“ ¨égñ™]‡~øÉ'Ÿ|Î9çlÞ¼¹¿¿ÿÛßþöücß÷ûûûa2X|½ÃêÕ«ÃsÉàBcçž{î¢E‹-ZÔßßž˜§(ÊM7ÝtÐAí´ÓN7ÞxãsÏ='˵Å'è IDAT‘šÄ o ,¸å–[>úÑvšoݬµk×&ÎCk~½ï¾û. MeŒ0óß¾üåÃ\·ríµ(µù®__rĵ«×í!¬b(%²LA¨.›Õe™¤Ó*¥8›ÕEJ§•TJI§ÕtZK§•B!¥(Ò´i9T³øÅ $:t“\Nk~v˜‹ËÿŒŒ¶ÃÌ[þçÆ•°¸ùÐÐð„Ûˆï¸ã¸ƒƒÿÓ¶½jÕ㥊e9àJ±U*|"¹sFý8fÛ~¸æ‘}w/\Ét/îS5zÂÕ$4\8#>ûöŸìûȳ£H )I„; „­ûaÆjÕ˜ €grD­Ïó*°9”.Èο ù¼Y,nVJ)ðø(9¥$¢œ˜hï‘_G¥Rj$òøÀº,Óˆ8Æ8þrårzä“÷çÖ4EUÅ:J@ ‚í…™3{Æ0¶ÄVv:n¾í÷¿ÿý’%K"KêPƒE‚ñ5€žçÅW䡤Eˆ($þÐHÛÓf÷B褓Nºêª«.¿ür¨lß}÷Ý'žx"—¢ën©có.ˆþþþyóæÝpà ¡J¥2uêÔ¿þõ¯óæÍ‹ÜŽñè‹ ö³û-]úÊc½[.[aÞ߈Ë.»?²ºr9M’h6«A'“Qe™ÎžÝW—¤W`µ¯,ÓTJÑudëe™f2Ì N§µÑûP `ØVk`8ÃóFŒ[Å,§ˆ($4¯Üzë­‡vXó*DZ^Z¢ÒB„‰\é?NLΧqÛòC“¬bÜ<1‰ƒ‰‰’nñŒ±k¯½ö¿øÅêÕ«?ô¡}ûÛß>öØccÍŸ¢[o½õÐC ?ÛÀ Õ’öõF…V:-$#9¼¥SÆdª@„ðG¶ù·ÂGÞ/×u.\øØcí±Ç¡K/½ô¨£Ž‚¢àÚ® ®‰y=ˆ×"n“z&´$IJ¬c4MºÓ8 вÄÖ´è°õÖþ8 @0VˆZ!ôéOúž{î9çœs~øÃžsÎ9÷ß:þío{Ùe—ýæ7¿9è ƒ–.]ú/ÿò/Í#)—ËŸýìgO;í´xà±Ç;í´Ó¾ò•¯L™2åOúÓ±Çù÷¿ÿ}·Ývã퇟þô§o½õÖsÏ=744ô¯ÿú¯]tÑUW]…Z´hÑ3ÏžÉ_ùÊWøá½½½ì”SNY°`Á5×\ƒ1þË_þ’J¥>þñ'>uêÔÿøÇüñ8ãŒ33çÏþóÒ¥Kyä‘Ï~ö³_ýêWaç¯~õ«x`óæÍ§vZ__ß¾ð…øNÈîØsÏ{î9ãßøH¥b?ùäòÅ‹_ms‰‚@ íóiÆ)òrÙ ‚À0œº ¾ ëŸ}¿¶:ÖNÃÊêx0×õW­ÚÄ*•V#„@Ë»°úÉ'—?ùäòLF¹øbýÔSjô镯F4¯wõõõÝsÏ=>ø ÆøôÓO¿âŠ+®¾úêH M®BQ”xŽñ‡††D±%S鮻ž½÷Þ¥+W®—$}øÕتN ]ÃX—®`å² «â;"²ô´MÀ9¦Ó£
>Ic„$SÒ¬(öTˆÓè‚AHš+#„|ßk~«£®¡¼@ ¶ ¶áŒ;0ÆÖ¯_¿`Á‚}èC½½½›7o†_,§ˆœ®y–ÿ7¯B4¹ Í/Í0ŒD¥…H°-¢ 5¶LΧq›ò›Tã&‰i2˜‘t“e9òüãå—_~à 7ì·ß~/¼ðÂ׿þõF~Šâ ÛÀ Õ’öõF…Vº($'bªÀè§ ‰Ù–ßV ò~ …×_}§v‚_—,Y²Ë.»À¶(¸¶«‚kb^ÏÄ©T*^Cˆ<ºÍ«©(é¥K§Óñ³ÍפQœ‰§\HŠ вĎ?[ûã$ÁX1êéö“žW_}Õ÷ýHu?ÎÐÐÐ>ðÞÞÞN8¾÷{ï½÷¹çžû¥/} üþ÷¿ÿÒ—¾Ä-‰¸{ßpgåÊ•ï{ßût]òÉ'çÏŸ¿bÅŠ9sæœxâ‰×]w]OOOüˆyÏ=÷\²dÉôéÓB‹-:÷Üs—.]Š1~þùçç͛纮¢(áí+VôõõM›6íª«®úÊW¾’Ïç ÃH¥R„~.„ÐÓO?}衇 ôõõ=ÿüóûí·ßË/¿·¸%ÆÒÌ÷<÷ÜsG}ôàà`¢i'l¼ôÒKøÀ/!?Êu]]×_|ñÅ÷¿ÿý¡{ï½wÁ‚+V¬À/Y²äˆ#Žà—ÙßßßÓÓ³aÆþþþðÍúûßÿ~ì±Ç>õÔSüìÍŸ˜ÉwÝu?œ§­Z­N:uÉ’%ûï¿ÿ)§œ²óÎ;_y啉‡W«ÕóÏ??òxDÞ&Œñc=6þü (¥wîÜiÓ¦5&`æÌo7ªñÊ2õ}ÆÛgŸ8bÎìÙôsŸûds‡QiD×»LӼꪫŽ?þx„Ы¯¾úÚk¯üñáh›_ŬY³šÔ3‡††D±?üèš5è‘GVüõ¯ËÃAÐpÜ^{ͼá†/7-N“õMèNoš]tJ©dvÑä­TlXiܦÙP}  ®ëu•!¬ s„ÐÐPµ‹£*Ë÷;ÎGÓtø¢Íö±m/Q[¡9¾?be© ;0ÆŠk¹œÆy¶Oâ"Ï–¨jgòÙ€,w3icœËu&¥ ärzG†s™ÌøjŽwšifWÕ©aR6Û®æ8J©‘ÕÂ@ @ @ ‚É@£áxÆP±˜ìBíº~µš<\­6t×.›Ùu7÷®n>g ¹¥7(÷¼€ÏÓðýDmÛ³mÏójûÁ6€˽@+™ï#ßg¶UH‚€±šh27@u­aî4À‹ˆ,G’>V ˜9³wÉ’s›˜yOä :TŸ½ÖdÁœ9sšO?›3gN|f×õ×_ÄGlÞ¼ù¼óÎÓ4íꫯ^¿~ýõ×_¿dÉ’|0q½Cx¤jÁ‚?úÑ^ýõÝwß®=<1!Ä;þøãxàSN9åøÏÀžžž7F”Yžzê©OúÓ0á­£|Kœ¢¹¿YáüDõyh¯¼òJ;×›X®ŽÓü·;ï|æÂ ï©T:žUµ @–¤s0ƲL`n ÜnŒÆDQ(¥”š&ƒ€{x.J*¥RŠ#³Sòy{TUÏÁ+ŠDi‚}¢~Ÿ¢Hº ¢i æñº.ǧ¾¤ÓjäÂQƒ#Ù¬ÞÅT%@ @ hD×J¨Õb´¹sçÆ—Ô%µxñâøÀ½öÚ+ñð&](‘‰‰;Ûé¾@õUx?ûÙÏr¹Ü•W^yË-·üîw¿[¸p!_×ÅRÇÙ³g7ï‚ð}Çw¼å–[>ò‘|êSŸ:üðÿûÝïFnĨ7 ±xáÁ_zíµµ’D#¹œeË®èííle„@ ¶"¶çBxÜA–åC9äú믟3gNó ”$0…j9æ‚Zé ÀPHD€ïi~iƒƒƒ‰J ᛸUhCµÏVñ4nC~“ªbÜ<1‰¢±I·ÄÇü÷¾÷½SO=2á¶Ûn;õÔScÍŸ¢Ès8~/ÔÆ—-[6þüŽ–owA;åûz#-…VÚ)$›3&åÌ$ThD[s¹š¶µùvø#ÛòÛŠ’Þ/þe,•JW^yåí·ß~ï½÷Λ7O\“¤àBcñ†¶YúMÀë™ QÕjåÊ•áG7þU Wê_:Ji¼ðÓH=3 £hÃ7b\§6Ëj@ & kŠm« …¯~õ«—\rÉ#<{V®\öyÞgŸ}šÇ (ÊòåËÏ8ãŒJ¥Â]›*•Šëº¼’ÈÛo¿=cÆ þg>Ÿ‡l6‹’e9²êééY²dÉÏ~ö³‹/¾øƒüà÷¾÷½O|â‘sÝ~ûížç…?ï¸ãŽNë(+V¬Øu×]#;#s”çÎÛèòY·nïû<Ú9sæ¬^½¶wØa‡ðe …éÓ§¿ð GuT8†^xa¿ýö Ÿ½eâeräðT*uÜqÇÝ}÷Ý{íµ×Ÿþô§¥K—6:Üqœv¸¢H/çn»íÆÏί=q§@ ‚Qâº~|y•,SÏóUU>꨽Ž>úýGýþB!½{-#•ÆDš×»lÛæU=÷ÜsÏ=÷ŒÇÐä*š×3E1×õò“¿üú׋‡/En&SþÎ;›>øò&¶8] pkZ7¢Øªš°¾®£º9WâZ¾vΕÏw“!S§æºJä6›]…º½´‰ÌF@ @ @ @ ˜„d2 — ! 4I)«M~-•šÛX òŸˆa8MDöMÓ±m¯Ñ¯–å†eŒOc̶=Çñl»fÞ!×­Y¸n`Y®ëzõcw/`Œ9ÎpÌ![Ç2†Çwø“[Ô“]KF̱AàyßÇO8$2Ç1Ä÷„Ï×Ǹ‰¹Cgøþ°C"[d]Ë M¦Ÿ¡¤™]óæÍK§ÓÏ>ûìO<ñË_þrÑ¢EO<ñÄ’%K>õ©O¡¦ëÂsÉž}öÙ#Ž8âÊ+¯¼é¦›/á–[nyì±Ç/^üñüÄO<î¸ãPhÂÛG?úÑð%¼ð Mæ¹5¿üÈJ`Nüf‘yhm^o#ÆcþÛ”)¹Y³ ¯¾º¡Í'[’ȼy³`c,ËR*¥È2E‚)%”I"š&sµwE‘ ͺ®€Àz*5üÌd2ª$ÑȤ|^¬ÇÅgµB’¤áIü#élç@ @°ÅIle7_Œ¶jÕªÄ%uñ£×&Þ¨ ¥Ít›Ýœ“N:éôÓO¿âŠ+î¾ûîO<1üSK[vAPJO8á„ÿùŸÿÙgŸ}-Ztíµ×&^Åx«7ì±Çô=ö8æ;ß9æw6-\ø=ôҳϮd aŒÃ½›6U„Ò½@ ¶ÕB£q })Ôö˜KóžÈµ´?*–˜‡ñ`Û†6Ô$ÃçÝê†üÐ$«7JL“ŒHº%†|óÍ7Ã#{íµWó l4Œ¸m¼PÍi_o¤¥ÐÊ(j'1U€ÇÓÝT ñ#Ûæ·5ñýºí¶ÛÎ=÷ÜcŽ9æÙgŸ2e ß/ ®ønÃ×¼ž‰ZÖµZªi5z´â…çxhœÆi I´ñ¶êÇI ‚1A(Ý×x÷ÝwùË_uÔQßùÎwÀkæÌ™/¾øâ?ýÓ?A€ÿû¿ÿkƒiš'Ÿ|òwÞyì±ÇÚ¶}ã7"„~øácŽ9¦ùýýýK–,æÇÐÐÐÀÀ@ËÔš¦Á]wÝå8Îm·Ývì±Ç®_¿~ñâÅü\¾ïßqÇ?ùÉOÎ8ã ØsñÅßqÇ—^ziûÆtŒ±_ÿú×Ð<Ï“$iÍš5á`P'K¼üD¦M›F)]¹r%4 Þ|óÍ™3gÂO‘ÊBè _øÂ¥—^zä‘GRJaa?üáÏ:ë¬ðÙ[&¾Q&Ç?å”SÎ:ë¬}÷Ýw¿ýöãÁøá'œpB;Gbn¯X±œ”–/_µÒF;@ Œ¾R!¤i²ýÿÛ»ÿØ*Ë{à§¥-…"*²âj7ªÒ(‘d™¨³òC'ávɦÇÅ‚‹càE´ öÞÉØÔH–…,l‹z2Ò  ˆÛÀ™;qwŽÕn݇G:AB)ô×¹œì¤ë9=?ÚCO|>9´ç<ïû>Ï{ž÷9ß¾çy¾=ßš5sfiyù5³g_݃%²‚ÆHq㮯}ík}ôQèñ¾}ûÞx㪪ªwH Î1FÊζzõ\|qK}}ÓÎýôÓ399Ã:e½ïêÒKóŸ}ö[1vUnnöðáI'àÎÉÖƒåy™£Gw]þÀ•Ÿk†UìWéŽ9qýõOÅ-–ŸŸ·hÑ´iÓ.š5kfì™ci™A—ì‚…."gveff–——×ÔÔìß¿ÿK_úÒÍ7ß¼k×®·ß~{Ó¦M˜ë:Ï%Û¾}ûÇ}ݺu•••eee@ ¢¢â©§žš9sfhÂÛüùó¿þõ¯?ýôÓ>úh²ç-¶È7+¤Ë<´ÛÛ 1ÿmÖ¬ÒÏ}î¶ÖÖ¶Ó§sŸ}v×ï~w°½=VښѣGÖÔ<·ªÐcQÿÊŽ½mâĉQ—ÔEnu `ÔÍ#o¡DMþÐÄo_„”••>}úwÞÙµkW—,u=Xê˜È-ˆ;ï¼³¢¢âª«®*++ûüç?u?}–½á²Ë –.¾téô£G?Û¹³î—¿¬Ý»÷ÃŽŽ`fff[[{NŽ<- Î!®¤¾°èåw!—]vÙÁƒÃ+úëëë³²²ŠŠŠ©jä97n\—bƒ#7T¿í įüBúU`Ü]ebœØ.)Ý¢–,..þóŸÿN…\__»Ý]ƒり+Á|#q­¤dì3¦ „wÛã©I™H‘×ׯøÃnß¾=2ñ·kH \}pyF-5Bè¼Û¸qfÔ® #Ï ”ã´‹bì¶³AÐ %â|èK–,Y±bÅË/¿üÖ[omß¾=,Y²ä‘G©©©ihhرcÇš5kbïäüùó---999ÍÍÍëÖ­ §OŸ®©©éòÏ«ÃΜ9úáŽ;îxì±Ç>\[[;gΜ^x!n…322fÏž½uëÖÆÆÆ–––ììì‘#Gv>ÖoûÛO>ù¤¢¢bÔ¿Üu×]Ø·o_ì=;v¬¡¡áÿøÇž={n¿ýöC‡=ôÐC@`̘1@à§?ýiccãsÏ=—`ó»´4$;;{Þ¼y+W®ôÐì?ÞX__½téW23c帤i]ì coubXyyù¦M›®»îºììì[n¹eË–-ÅÅÅÅÅÅ„×;äååMžø`sssŒ&Ÿ9sfÕªUS¦L9räÕW_]]]}öìÙȣǮ|äIî¼y—]Ýwß}£F:sæLŒÍÛÚÚ6lØpùå—çååÝpà ï¾ûnh±ß¸Ð6oÞ\\\|ñůX±¢¹¹9ê“ÁxvïÞÝÐз q'O6­YóêîÝmii‹]òرc¿ùÍo:::b”4†wžTÜuîܹ‡~xâĉùùùóçÏ?yòd—ÝÆmEdœÙ¥V"ƨºDŒmmí{÷~øðï””¬ž8ñ;EE« ¿z|õ«ÏÄÝ0°9òixŽPøñ…/<üàƒÿsþ|kç’ýp]0 Á¦ŸEz÷ÙgŸeeeUWWƒÁ¦¦¦œœœÕ«W‡¹Þ¡»Z577_yå•?þxç&lÙ²eøðáûÛßÂϼ÷Þ{™™™¯½öZè×ð„·ÜÜÜ’’’ªªª3fÌ›7/©ón~ÔUBQß¬îæ¡Åno—©Œ}3ÿ-ê: ÆÆæŸýìoºé¿'Nü·.ýo<{oÐg¢Æ[ŒuI]Ô­‚k£nÞea`0Zò‡¨¹B?tÙ<öí‹ðŸü»wï/¼ðB¨Lìû-qïÒľ²lÙ²#F466†Ÿé‡ÙZZÚâ®W`@²Bðß?m;‹ý…Ew ¦‚ qCˆÖÖÖgžyfòäɹ¹¹“&Mªªª ŸØM ˆ<‡qØsCÅÝOÿìƒà+¿` Œ»«Lâ'6²d{{û÷¿ÿý’’’üüü9sæÔÔÔŒ?>n/ŠÛØT]P‰|—‰Œÿ!‰ä‰z•uùî5‘ÎCJÆ™~˜¡18`ÇÿÖŽû³5jßyç¨S \ýdà ¦â í?3y" „Þ¬È!Üu£Æ™‘=6²ku¢\ˆ§‰t†pý“Jšòî”ø'ôÁnæ¶õõõíííS¦Léå~}rºkôÖ¹sçŽ=úãÿøå—_Nw] mÒ×ÖÖ>öØc?ùÉOJKKkkkŸ|òÉåË—÷ÙÑÎÀ@g2ÝCß=zteee"O04õeÄ8n\Þ¢E7.ZtãÙ³-)ß9^ùù#ÿþ÷ é®ýE¬\èãcÇæÝ{ïMbÏ@Û»wïí·ß~ÿý÷Ïœ93ñ­doRKtAÚõ,0î¥Õ«WŸ={ö¶Ûn;vìØ¤I“–,Y’’>ï‚‚!ÂÀQéN YÁ`0Ýu¸°êëëÛÛÛ§L™’îŠ@*íÙ³§´´t„ é® Ç¯««›1cFFFFºë©!baýŠu@ô f-a"R"UÑ…(úì»ì7þ§d|p­†¢÷W¨™<„«X2Ó]™îHŽL÷$G¦{’#Ó=É‘é€äd¥»}áÔ©SúÓŸÒ] H¥`0˜î*À T[[›î*@ʈ€Ä™AG?ÑÔÔ4zôèt×€!A& B¬Å 3½—ÂèâÈ‘# ©Ú 8­­­}v¬5þ§jœX­†"UW¨™<Ì¢` ü™î/ºè¢ŽŽŽt×Rlüøñ¹¹¹é® 999ãÇOw- •DŒ@"Ì £_ÉÏÏ·F€> aÖâ&B %R]Œ?Þ¿äaˆËÊÊ1bDhÀÿ)g\«a èýj&afÑ0°d¸‘@R2Ó]™îHŽL÷$G¦{’óÿ E­(ÓÞõIEND®B`‚XQilla-2.3.0/docs/simple-api/Numeric_8hpp__incl.md50000644000151400015140000000004011653571063016730 000000000000009f258925da6ce4b9a4b4cf0a47f820fcXQilla-2.3.0/docs/simple-api/RegexGroupStore_8hpp.html0000644000151400015140000000532711653571064017563 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

RegexGroupStore.hpp File Reference

#include <xqilla/framework/XQillaExport.hpp>
#include <xercesc/util/XercesDefs.hpp>
Include dependency graph for RegexGroupStore.hpp:

Go to the source code of this file.

Classes

class  RegexGroupStore
 The pure virtual base class for accessing regular expression group values at runtime. More...
XQilla-2.3.0/docs/simple-api/classInteractiveDebugger__inherit__graph.png0000644000151400015140000001375411653571064023514 00000000000000‰PNG  IHDR5u Rá‹bKGDÿÿÿ ½§“¡IDATxœíÝy\gþðgr @ÊM”«‚RÁº¢­(`)êª(.OÅÕŠxV íÒZOÜõÂâU”#D¨U”Åu…•ŠÏ"UQ rB ä˜ßój~)9¸’Ìž÷_á1ó<Ÿ™o2“ã ‚¢(€ ˆHx€ H!XŸD\°>!ˆ¸`}BqQ¤ÿøì³ÏðÊáÎÓÓs×®]ƒé¡¸¸8))IUy†§{áOõYXXèááamm­ñTÎJJJŒÙICCCaaa`` J" C²{Òã7nd0Œ‚ w:‹ÅRUWÃì^€×ŸD\°>!ˆ¸`}BqÁú„ â‚õ AÄÕïúD¤3Œ¦¦&•DA¤ªªJ%] LUU‚ ýÝJzBìììV¬X¡|B6ÊP¢ù“=´´e/ äùóîÝ»l6»®®îÆ555ÿûßUKÖË—/ÍÌÌÔÚ­‘‘ÑÖ­[Ð 6!555gΜáp8îîîmmm*9Ôà>cÊ÷µš¶H}š››5ÊÒÒòã?Þ³gϵk×TK–X,nnnVk·fffßÿý:Á&dôèÑ^^^—.]rppHNNViÌ¡÷S¾¯Õt° À`¯?Éd2NÇn_½zÕÍÍMOOÏÒÒRòŸÏËËsuu9r¤ƒƒÃ¹sç°F@°yóf :¾yóf@У[AÒÓÓ'L˜`bb²wï^€‡‡`Ô¨QŠzÀÎXnÞ¼iccsçÎÙ0B¡0!!ÁÆÆÆÜÜ|Ŋضt·’sÿ¸¸8l >ŸollœŸŸß—ØXòµk×b÷W²Izzº£££¹¹yLL Ç“>Ý’ÜFQ4%%ÅÙÙÙÀÀÀÛÛûêÕ«‚ÈmìË„ b'«—ºgLî Ò›Ë¢½l@Þ!*÷žƒÝ ¨“ÉD•<|ø°½½Ãá<þ|öìÙß|ó Š¢GGG'<<¼¦¦æüù󀯯F.—;bĈ””6›}êÔ) …ÂårQݳgO@@À›7o***ÜÝÝ·mÛ†õüâÅ É(K—.mmmMMM477¿xñB:­lØæÎ{ëÖ-6›-fß¾}...=š6mZ||<Š¢ÒÝJngeeÙØØˆÅbEsss­¬¬A_bcÊÊÊŒŒŒ”çôöö®¬¬,--urr’4öˆ‘šš:zôèk×®555ݸqÃÉÉ ·±× Á¦]‰ÀÀÀÀÀ@å÷é“ÉìqDÉ¥á“;¢d¹‡h¯*ïU~À{a õ)ÍÀÀûŸóùügÏžq¹\‘HT\\ŒÍHKK •JÝ¿kk«X,noo‰D(ŠŽ?žÍfcÞ¸qcòäɨL}¡(ÚÝݵ÷˜2Ù°;TTT( 3nܸ‹/b›<}ú»-w7wttèëëß»wEÑàààíÛ·+ííhSžEQ&“ioo/7ÆÄ‰ÓÓÓ%Ýfddä6öe åˆSŸ*Ÿ1¹#J6‘{ˆöz°¡òѾ„WNv/ôüüm_¼xñ{dâñx‡òöö®®®ÖÑÑ©¬¬ŒŒŒär¹nnnØ=‹ŠŠ:”àîî¾}ûö¹sç^¿~mii)éÐÐÐPv+++•J•›AQãÇÈ S]]=vìXìö„ &L˜ è?¨§§·hÑ¢œœggç¼¼¼(Tv~•o"I‚íQéÍÑ?ÿý÷‰'JÚ5ö:!§ÖSNÑ!*MQ$ÙCTå{aPןzzz‘‘‘oß¾mllìììd0›7o.//?vìv‡ÎÎN±XœÝÒÒ±`Á‚––€™™™äñ¬µµµ´´TN2’²lŠzÀ&Kn++«×¯_c·>|øí·ß*é?$$$''çÊ•+S¦L‘}‰¢èñãÇçÏŸ¯|ìaPYYikk‹Ý …€ÚÚZìO[[Û'OžHz~ö왢Æ^'„ÈÔ=cÊ):D¥)Š${ˆª|/ ¤>›ššêëëëëëß¼y³gÏkkksss>ŸßÝÝ­££ÓÙÙ™hooGÄ××÷Â… §»»›J¥êéé–,Y²}ûöêêꊊ ??¿£Göqh.—‹ÝPÞƒÜ0Ë—/ÿòË/?~üøñãuëÖUWWËv+áëëÛÚÚš.iT4(6!µµµÅÅÅ‹/~õê•äå%E›lÚ´©ªªª¬¬lÇŽ«V­222¤¥¥q8œýë_Ø}bcc·lÙrýúõæææ[·n%&&""·q0SŠ MΘôˆ’$ŠQÐçƒMšê÷‚ôÉ.èçõ'‰Druu---ÅþéàÁƒ&&&ÖÖÖÇŽ ¡Óé(Š2™LGGGñãÇçææb÷äp8«W¯666655ŠŠêèè@e®?{ÜŸ~ú)FSÔCkÙ0]]]ñññVVV†††!!!­­­(ŠJwÛ£‡¨¨(&}M¯(¶„µµuXXXCCƒ’M°Q²²²ìììètú¦M›ø|>Š¢IIIFFFŽŽŽ¹¹¹X ‘H”œœìèèhhhèçç—››knn.·±/¢œ†¯?59c¨¼*¥'Göíõ`C®*ß ý®OHcòòò>|(ù3''gòäÉr?–&ëS}Ô49#»àço‰«¢¢bÙ²eååå<¯´´t×®]kÖ¬‘ÛˆwR¢z“3×o!ÍØ²e Çó÷÷ojjrppŽŽÈm„€âÓ^*uvŽ “É„ë› CØNäÒ$,+((•w½õ…ì^€ç·D\°>!ˆ¸`}BqÁú„ â‚õ AÄë³ß<Þ ? …"yßÅz¾ÿ™””„}Ÿ Rd¤PøQMÍk“Æ>@µa ›¾xôè‘§§§JºÒ䝸PD¢1ïß›r¹÷­­öï Ù½ð§ú„¿œÑGÝÎäšþˆì1cšètTéWm´‚§§'¶hÀ`X[[kìÒáó-Øl 6›$Wglb¢™qÕJv/ ðÝäh¯«K>],"$’65&fòÊ•#|R­ÆÇÿwìXe^B"¡B¡É‡®ºyÑþ‡H¹`}Э„„‡gÏŠ…B‰BŒ_´Ècýz''¼£ Mb¡ðÙåË¿¤¤4={F¢RÅ\p.þñGÇ9sðͦ>°>¨£±1uÚ4aw·¤…D¥¢B¡½—×ô-ÝÝqÌ6ÄðÛÛMK+?s¦£¡ *aí$ …îⲬ ßxjësàŠœ9ƒ=…J(±Phéææ±aƒãœ9CàE µ³ÙeÇWddˆ»»Åb19V³²lgÎÄ%›fÀú8nCCê´ir_ÙGH$T,¦»¸Ìˆ‹sòóÓ|6m×ÍåÞNJzÌd¢(*w†IŠÅ¤IaW¯j>›& Í«jÍ YX|´bvñÙ*Ÿ>ílmÕx®¡@‡F£èê »»½±) gîØ¡áTšësP¦ñ"¯>‚ÌMNž¢áHCÆì„„££å.0M¢Plgδ™1Có©4 Öç èš˜¸¯ZE’] A¼“’\àûɃ3{×®‰ÁÁ²%*‰<‡Á“'€õ9x‰%‘É=-ÝÜ&¯XKž!A¦FG42’^É’D¡Ø{{[¸ºâ˜Kc`}–®‰‰{xøÿ_…"ˆó’%MOž\‰éñÒ.Ô_ì2-2¶·óÉ'’AT$š5<ž<¬O•ø8* {€GÄ="bÞáÃþ§Oÿ^Xx9<\ÈçãN[Õ–•å„„X¸º2™‹O²˜4‰D¥’(G__3mX_%`}ª€ž¹¹[x8À54Ô;1`7{öÒôôšÿý/7"BØÕ…s>-ôº¸8'$ÄzÆŒ%iiT==ª¾~@F†±½=*}ºe Þé4HÓK|QMM7¶m‹DÒì;;g.YÂooÇ+˜6ª,(8hk{%*JØÝ-ÝÞÑÔtgß>¼Rá~>A½=Ê 5qt 8wNçƒðŽ£žää\‹‹›è»w/"óÂÛpëSíš++YAA´Q£–fdèã‡Ðef^ߺÕ=<Ü+!~4ÀúÔŒ–ª*VPž©éÒÌL=SS¼ãÔýÔÔ¢¯¿žþÅŸÄÇã…(`}jÈû7oXAAd‹E³°À;áÜ=pàîÁƒž;vü%6ï,ëSs8µµ,!‘,ÖR¿â ÝþãÇ}’’&¯\‰wbõ©QÙÁÁÝ Ëè™ÎP±øæ—_Vddø<è€wÂõ©i¼wﲃƒ»Þ¿g°XÆööxÇÁ“X(¼÷<7wÞáÃã.Ä;ÁúÄA×û÷BCß×Ö2²²†ÏGaz …ùëÖý~ãÆÂ~pðñÁ;AÁúğù°lY[uu`f¦¹³3Þq4MØÕu%2²æÞ½ÅgÏZOŸŽwâ‚õ‰wiÕªÆÇÒÓ-ÝÜðŽ£9Ý\î¥U«šž=[šž>jòd¼ã¬O< :;/‡‡×?xžn5e Þq4¡«­-',ŒóöíÒŒ úĉxÇ!:øùx°> A¼uh´Ÿãã<ž{x8ÞîÍ;—V¯¶õô\pü8YGï8Z Ö'}OÕÕ½õÕW¨H4%2ï8ñª¨èJd¤ƒÏü£Gå.±õœ8‚úKl,B&}ýu7—;}ãF¼ãôOe~~~l¬s@\£d`}×Ôµkuôõ wìtvjÑréY¬Ÿããá%*ë“Ð>Z¾œD&_ߺ‹gí܉wœÞ•Ÿ:u+!aÆÆ36mÂ;ËPë“è&…†Rõõ Ö¯ttÌùî;"?#•¥¤'%ynß×(QXŸZ`ü¢E™œ+‰>ûþ{„DÄw­±5Jæ|÷üá‚õ©Æýõ¯T]Ý+‘‘oî¡CÄzEEoîÚõë¹ss‚k”¨ü|¼6yýï_Žˆpüì³ùGޤDQ±øÆöí³²æ92nÁ¼ã 5°>µLMiéÅ•+­=<¦¦âþ¦¿X(,ذ¡êÚµ…©©ÞÞø†’`}jŸú‡sÂÂ,ÝÝ¥¦RFŽÄ+†ÏÏ‹Ž~[R×(QXŸZ ûY³qã–üø#U__óØ%çÏÃ5JÔÖ§¶Â~ÖÅÈÎ. -Mÿ¼ÔÝÞ~qåÊ–ªª¥™™tM=ÜÀúÔbØÏºÐ,,–fdŒ42ÒÌ --9aa¼¦¦À¬,''Í :lÁúÔnØÏºŒ00ÌÌÔ51Q÷p܆†ìà`Qw7ƒÉ43FÝÃA°>µö³.d*•Áb©uu‚öººìà`•˜™ —AÐ "~êƒÑ£C.]BH$æÒ¥Üúz5ÒöúuæâÅ”‘#á%šŸ?ûª°°ðåË—x§PHÌáðÒÒIÍ ê÷EQ.·ãäID__/, !ð2sæÌqppÀ;…J)úá{¨‡ÀÀ@¼÷U/> ‘<Ôó^ ÀL}ý‘„üܯ4&“‰÷a¢b„øŒ˜¶˜={vBBÞ) ù¼¼¼ðŽ zDD„ á Ö'¬O".XŸD\°>!ˆ¸`}BqÁúT1//¯ÚÚZÔÖÖà/)ÁÁÁ»wïnkkSù(PÁúÔ(6›½hÑ"µvK£ÑBBBÐÉ‘#G.\¸½uëÖŽŽŽ¨¨(.—«Ò˜P¿ÁúÔ(±XÌápÔÚ­¡¡aTTÔ:122211133sssûÇ?þaii™­Ò˜P¿ÁúT#//¯Â•+W.\¸0++ ð·¿ý °dÉìB¡0%%eñâÅ‹/NII …ØycyyyPPУGJJJ"##ýüü222"‘èÌ™3AAAþþþ»wïÆžâ¤»•œyîܹóرcØ@`Á‚¥¥¥r•MŽ ÈÂ… ±û+Ù¤°°044Ôßß?99™ÏçKŸôJn£(zåÊ•U«VÍŸ??..®¤¤ÄËËKnc_&D»‰È`}ª×;wŽ=}âĉööv¬`.^¼ˆýkNN›Í>qâÄÊËËÏœ9ƒµ³X¬mÛ¶=ú«¯¾;vìùóçcbbRSSÛÚÚrrrnß¾½{÷îäää·oßž?У[ŒOqq1Š¢€²²²#FL:UÉ =Œ3¦®®Ny΂‚‚½{÷îÞ½ûþýûiiirû)((8wî\lllFFFXXØÑ£G5ö:!cÇŽÈ>Ðf°>ÕËßߟF£}þùçÙ3ÛŸ~úiÆ t:ÝÁÁ!::úÞ½{X{TT”›››Á©S§Ö¯_ojjJ§Óùùùáááööö[·nuQ¼¼ÈŒ38Îo¿ý¸y󦟟™LV2¨Š6Y·nݘ1c&L˜°fÍš¢¢"¹Û^¸paíÚµS§N544œ2eÊêÕ«5ö:!#ñ[ /ðóñêeff (X«¶¾¾>@jAgý?¾}bccƒmUSS³ÿþÎÎNÉSGCCØ?.°µµµµµU4ôˆ#>ùä“ââb;;»»w簾¦*´‡šš+++å›H’ØØØ477KoŽþñ½Åºº:{{{I»¢Æ^'d‚õ©^ˆÒŸK144LNN=z4€Ëå¶´´`íX=óùüÄÄÄÄÄÄéÓ§ ‚Ÿ~ú `jjZ__ÜUUU¥¥¥Ë–-SÔ¿ÏáÇœœ>üðCI-)Tv}èáá¡|“ššìû–oß¾µ°°ÀE"™L~÷îö§……Å«W¯$_ˬ®®VÔØë„ CðüØ™3g¦¦¦644¼|ùrË–-—/_–¾›@  … ¥»»»ãñx¾¾¾'Ož|õêÕ«W¯þùÏ644Èv+1uêT.—{öìÙyóæI ÚÖÖÖÒÒòîÝ»_ýu×®]l6›Á`(ßäøñãµµµÏŸ??yò¤ŸŸF\¿~ÇãI.†ýýýOœ8ñË/¿p8œœ={A¹½NÈ04L–ð2jÔ¨I“&"""Ž9‰ ˆ§§gtt´äi@£Ñbbb’’’tuuCCC}||¶lÙÂb±ººº6oÞÜÕÕåáá-Û­…B™5kÖÍ›7gÍš%i”k_·nvƒN§»ººþðÃ’ÓKE9çÍ›ßÕÕåëëË`0(JDDıcÇΟ?ûŸÿüàïï/‰’““ß¿ïââ²víÚ}ûöÉmìuB†!¸¾I_1Œ¦¦&øýìþ*))¡ÓéŽŽŽØŸ·oß>wî\xx¸l£ä y`¼¼¼˜L¦ä9h€ç·z½|ùòÛo¿}ñâŸÏúôééÓ§çÏŸ/·ï¤DÏo!õ îêêÚ¹sg[[›¥¥åܹs,XÛõëR/2™Ñ£]n#Ô<¿… â‚õ AÄ낈 Ö'¬O".øúm?ÔÕÕ]½zïÐ0ë³*++8€w hŸïƒ â‚ןD\°>!ˆ¸`}BqÁú„ âú?Ôû‰ÌŽ»´IEND®B`‚XQilla-2.3.0/docs/simple-api/Timezone_8hpp__dep__incl.md50000644000151400015140000000004011653571063020107 00000000000000504db5099081a1cf96e7602033456e6aXQilla-2.3.0/docs/simple-api/structBaseInteractiveDebugger_1_1Quit.html0000644000151400015140000000464311653571063023004 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

BaseInteractiveDebugger::Quit Struct Reference

#include <InteractiveDebugger.hpp>


The documentation for this struct was generated from the following file:
XQilla-2.3.0/docs/simple-api/XercesConfiguration_8hpp__dep__incl.map0000644000151400015140000000023111653571064022371 00000000000000 XQilla-2.3.0/docs/simple-api/functions_0x69.html0000644000151400015140000003455111653571063016316 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- i -

XQilla-2.3.0/docs/simple-api/AnyAtomicType_8hpp__dep__incl.md50000644000151400015140000000004011653571063021043 000000000000001ff1d61b0c73dc6314075e8d03e7b45bXQilla-2.3.0/docs/simple-api/classATTimeOrDerived__inherit__graph.png0000644000151400015140000001757711653571064022530 00000000000000‰PNG  IHDR]±uyibKGDÿÿÿ ½§“4IDATxœíyTSWâÇoLˆ`PBŠGÅ -ˆu@ÇÚ©Ž (¸TôˆË±ØZøimZéÑžž.¢ :Š#‹€:vìÈv˜VAP–De ‹HD–Ø d{¿?ž¦i6bò$Þ×û9üqß{÷Ýû}ïÃ[ò²\ †añÆ3ÊÒF<ÁòÈÐÔ'ÊËË“’’,¡NPPP||¼jòwžºººŠ‹‹ÃÂÂF<âwTTTŒ7N}M»RnnîHåAè&<<\cº>ÁòÈ Op€<Á)ž(jŒ=:  ®®Î@} Ã6nÜhgggjHbèì쌌Œtww·³³›7o^aa¡Eb477S(”W]ËÄãéæÍ›@ p¹Ü)S¦¬[·ÎÀs÷ÎÎÎóçÏ߿ߴ¾¡··×ÏÏÏÖÖ6''§ªªjýúõÿùÏÌo™Ïç3™LóÛ1ŒŽ×OÆàäääìì pvv>rä›Íîîîf±X:+K$€›››É)Í'!!aÉ’%øä[o½õäÉ“¿ÿýïþóŸÍlY©Töööšp¸>Ñét+++ƒOÊd²¸¸86›Íb±âââd2Ù‚ ¸WðSAII‰››Û/¿ü¢]@¡PΟ?ïãã3~üø#GŽäryBB‚›››““ÓæÍ›Ÿ={¦¯}@~~þÞ½{Õc'$$œ:u /?{ölË–-L&ÓÕÕ566vppPýì¤^ÖŽ1ìÖ)ŠÔÔÔ©S§ÚÛÛܺuË”½Œ©‘““£1G'€ºººþþþþþþÇïÞ½;**Jµ4%%eíÚµííí\.wöìÙhjjRoV_…wß}·´´T,kWÀ;  …ééé€ÞÞÞÔÔT___.—Ëãñüýýcccõµ/ }}}ú¶hÆ ÁÁÁ>är¹Ó§OOLLTϬ^ÖŽ1ìÖ;vŒÅbtvvþøãgØö»}®>a¼'uìììîß¿¯Zêíí-ðrQQѬY³4¶D_.—«¯ÞiYY†aR©ÐÔÔ4mÚ´‚‚¼Úýû÷UeíÕûúúB¡PçæH¥R*•z÷î]|²  ÀËËË€'ÃnÝÔ©SÏœ9£ªðücä<555áåO>ùdÁ‚ª¥666ê †Æ–è« •JõUÀ;}ðàz§Oçêl6ûÆêÕªªªæÎ;00ðèÑ#€D"Áçs¹\õÌêž4b »u£G®««SU¨­­5Á“¹×'[[Û-[¶Ü»w{yœ1™L•E¡PXYY©±Š¾ t:Ýp…Q£~—–Ãá´¶¶â庺º¯¾úÊÀê+W®iÀd2U‡ˆP(ÄÇP'p{‹ÅxaÍš5Ÿ~úi[[—Ë]¾|ù÷ßoÙ`„«'ww÷ÀÀ@Õ¹.))ÉÞÞÞÏÏïOúÓÌ™3SRR,p »>a/ß¾£Ñh?ÿü³j¾½½}fffff¦ÎÊʰëñôGy‚ä '8@žày‚ä Hè©§GléÄóf½Î-))yöì™™äå=~ÿ}g*!‘ÞÞ,Oæ`Ô(k+úÆ<‰¤HooÐy÷iΞ-£P¨ï½·‡ÖÂÃÃ-½W^ðy"„üü;P*+›{{Iu•"•§'O~½u‹åòåZKÇ!Ryº|¹–J¥”J,7·ÚÒqˆ„Tžòòª €a×ÑÞNžŽ‘ÇŸß}ÿ~'öò½%*•T§>òx*,¬¡Ñ~{ͤP`yyä9õ‘ÇS^^µ\®PMbÖÜü´¡A`ÁHBO:¯F4ÕÀÈpAO—.ÕÐ隊ärEnná§!´!ƒ'¥»xñ¶L¦Ð^ÔÕ%ª©iùH„CO·nñ»»ûu.¢Ñ¨……d8õ‘ÁÓ¿þU °²¢iÿ)•Ø•+µê£¿CÊ›õ¼Ü4¦Owý쳿¨&ýÏûïÏœ:ÕY5ç×_%ãDZD4 ã2«‡óqZÚ+Wβt"!ÃyïòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€<ÁòÈ Op€“iÖ«W‡ýû÷ë[ºjÕ*@ nÞ¼ ¼Ä××לN ÃøçÆÔ¬¯¯§P(EEE€³Š‘h @ýú±Ž0 3òyÁÇSvvöâÅ‹CBB¼½½Õ …rþüyŸñãÇ9r³mÛ6|©X,¶µµ­­­5ÐÈ‚ ÎÎ/~ìÙ³g[¶la2™®®®±±±ƒƒƒx/™™™>>>NNNÉÉÉçÎóðð`0ñññ@í¼'—ËÜÜÜœœœ6oÞlxä9ñ¦._¾}zbb"ÞKDD„H$ÊÈÈ„‡‡‹D¢'NzzzT-¤¦¦úúúr¹\çï﫾é̉×Y¶lYcccee¥—— %%eíÚµííí\.wöìÙ0¼ÇŒ?žˆôTYYI£Ñzzz0 »sç€Çã½è€²²2 äR) ©©I.—;;;—””`¶bÅŠäädèï>©TJ¥RïÞ½‹Oxyyá½ÔÔÔ¨zQ/755©Z˜6mZAA¾îýû÷Ue O:sâu¸\®jÿ༽½>³¨¨hÖ¬Y†÷˜ñžˆüÄììl¹\®~µÏÉÉ™>}:^æp8:ŽOR©Ô5kÖ̘1£¸¸ÿ¯¶œ®®.…Báéé‰Ozyyuttàe{{{U/êeuÚÚÚ¦L™‚—}||||| l”¾œU#ÞÞÞx€ÖÖVÕÙƒa åW‚°ë“B¡ÈÉÉ9vìXÿKöíÛ—““ƒ½üÆQ£4û +,,ÌÍÍ tuu5¦6›M¥Rù|>>ùðáà &•Ãá´¶¶â庺º¯¾úÊp}íœ8øQhllÄÿ ™LfSS~…ÂÊÊJãS ƒ11ç½²²2*•ÚÕÕ¥šsûömðòäƒo>_U–Ëå,‹ÍfŸ>}zØFðÒßßÏŒŒ æóù<Ï××÷СCúzQ•U'´„„„3fðx<°}ûvõ ѾßÓΉ×Y²dISSSUUÕ”)Sð111¡¡¡­­­õõõþþþ{ö 3 •®O;vìX¶l™ú¥Rééé¹ÿ~LÿܹsçèÑ£E"ѰÈd²ÀÀ@;;;|~__ߦM›]\\>þøc‰Db  Oƒƒƒ±±±‡Á`DDD…BõuÞ—käÄëdddLš4‰Éd~øá‡x‘H5nÜ8GGÇèèèÃ;Í2÷&pðàÁÈÈÈ×Ñ2±hä$ê5–eî#^‰ÁÁÁÎÎÎÌÌÌ .X*ƒ1¼!9-ööÖ­[sçÎݺuë;ï¼c© Æ 3çØ±cwìØ1’1,v<-^¼¸¯¯ÏR½Μ,+--m$c ÷5ày‚ä '8 ¡'¥’l#†RzúöÛb $¤‰1/†¡ú|9…ÍÞneå:|Å7#ŸG5®Ð£Gˆ|ôû:ilüõûïï½ý6{Ý:OKg1 WW×… [lã?}ôÑ…ÜÜ*{{›»w“´G–„R]Ÿeøxbñ`iiƒ¥ã ©<ß”F•ŸÇÒqˆ„TžòóoS©€B¡¼~ýîÀÀ¥y<‰D’ÒÒ¹üŹ\®øé'že#y<]»ÆSÙD¡Pòóo[0±ÇS^Þï¬(ÊŸnêë°Tb!‰§§Oû++›µŸ]½Zo‘<„COÿúW­öw10 »x±Ú"y‡$žòòªµ&¥»s§­£Ch‘HÄBOmm½<ÞcV¨TÊ•+µ#‰pÈàéêÕ:}O¿ärŒw}û 45uy{ÿö©î'O~up°µ±ùíƒìÝÝýNNöJG d{ àp>NKû`åÊY–B$d8ïý@žày‚ä '8@žày‚ä '8@žày‚ä '8@žày‚ä '8@žày‚ä '8@žày‚ä '8@žày‚ä '8@žày‚ä '8Ðû}Âòòò¤¤¤NCMMSööý–òÊáC¿i£÷û¹]]]ÅÅÅ0Žé>~74ÆY:È«QQQ1nœÞÌÃ|:77—è<Ý„‡‡XŠ®Op€<ÁòÈ Op`®'õ!ëÝÝÝ7oÞÜÝÝm~¬¸¸¸™3gÚÛÛÏ›7ïoû›\.ר“MÑÅÅ‹µãÍxô5[WWgÞ6™¿otóæM…BÑØØøÍ7ßÌž=›Çã988è¬ÌçóçÏŸßÓÓc Áþþþùóç³Ùì”””É“'ß½{7>>¾¨¨¨¸¸˜Jýí'ÉW­Z%---o¿ý6^`¶ÿ~“7G_³ŽŽŽ&·I†Çjv< 6¬&†aJ¥2((¤T'ÆŒÀ»hÑ"¹\®š#‹ÝÝÝÓÓÓMnÓ^S³ú0<¦$Á×' …²sçÎüŸ¼zõªŸŸŸ­­­‹‹Krr2`Á‚ggg¼‚Îë³²²:¤~èŒ3&...++«¹¹™B¡”””¸¹¹ýòË/:3àuTy233}||œœœ’““Ï;çááÁ`0TgtÐILL̶mÛð²X,¶µµ­­­Åûº|ùò´iÓX,VLLÌÐÐÐ+5k,úšv ˆˆˆ‰D€ððp‘H„ý!¯@g;†•——;::Êd2 ò²²|}}•J%^gÙ²e•••^^^‰‰‰†›Õ‡áãé5zjhh‹Å …¢¼¼ü~°aíëõyª¨¨ÀGåp¹\õE†=ábK¥R2[;€¾får¹³³sII †a+V¬HNNVÕQåÉÉÉñòò2ܬ> {"þw›šš<==VVVÛ·o‹Å~~~:+k\ïàààìì\WW¢^³®®nΜ9xÙÛÛÛø<ööö:®QÖ@_;T*uÍš53fÌ(..ÆJœ)S¦¨‚utt¼R³FBðõ ðãÇ¿÷Þ{‰DWSSóÃ?謯sàú 6|ùå— …BUm`` %%eùòåø¤úŽ6ôVXX˜››èêúÛSøQhlläp8¯Ú¬1à©»»ûÉ“'?.//_½zuKK˾}ûCCCR©ÔÊÊJ"‘$$$úû_¼'$‹ñš5k>ýôÓ¶¶6.—»|ùòï¿ÿpèС§OŸÿôÓOMMM………þþþ&Lصk—ùi5Ð@ø]è—_~¹iÓ&õù{÷îmnn®®®>xðàÆ_µY£ÐwB4þú¤bâĉ6lèêêR-=vìØøñã'NœøÃ?DDD°X,™Lhgg‡WÐ7p½X,þä“O¦OŸnkkëëë›””ôüùsLϽ²áë“êÿZgY_}}íܹsôèÑ"‘H½NFFƤI“˜Læ‡~(‘H 7«×{ñGãàÁƒ‘‘‘ªI_cô}YìììÌÌ̼páÂÈ÷ŽžÃË­[·æÎ»uëÖwÞyG5sìØ±;vìÞÑñd,‹/îëëÓ˜Éb±ÒÒÒF wt<ÁòÈ Op€<Á =ݺŷtâæ¾|éÒ¥#“ƒ@ø|OW×GVVRKy5x<^PP¾¥z=Mœ8Æ—K$4‰d´TêÌfCö=€   üÍnmü§ÔÔk_}}Ò$ÇŠŠÏ-…HÈv}ÊË«´µõ64tZ: ‘ÊSmm;>º'NÍÏ¿cé8DB*O—.ÕÐhT€L¦Ð9R+¼Ç“B¡¼x±Z.ñn}wwUynÐÉã©¢¢Y(|®š¤Ó©……5ÌC,äñTPPC£ý¶92™âòå™La`ˆ ‰'©T~åJ\®TŸ) ý÷¿–ŠD,$ñTZÚ ‘ i̤Ñ($¹ë#‰§‚‚;£Fin‹\®ü÷¿ëŸ?‡ì’NÈàI,º~ýžB¡Ô^$“)Š‹ï|$Â!ƒ§¢¢{R©æ·ØTã® ž.]ÒkB©ÄÊÊD"ÉHæyá9lG‡Pý¤·paÒáÃkBBÞRÍqvfX[ÃýÉ*¸Ó㸺jþÜŒ““ý¤Iýš&Ñá¼÷Gy‚ä '8@žày‚ä '8@žày‚ä '8@žày‚ä '8@žày‚ä '8@žày‚ä '8@žày‚ä '8@žày‚ä '8Ðñ=5>Ÿ_\\<òQ¤¸¸øÉ“*K§0‘É“'kŒ©€®±!ð‘5à…Ngem馣s” ½ßû,++Épœ/¾øBç|t}‚ä '8@žày‚ä Ìý=–³gÏž>}zûöí‘‘‘øœÒÒÒÇk׌ˆˆÐ9b\bbbbb¢™/Ïœ9S]]-ÜÜÜ-Z´~ýzõ‘Çq–,Y¢*³Ùì™3gîÚµËÁÁÁ˜.?~¼qãFsršÓ‚Yž0 +--e±Xeee*Oùùù@°gϼ °±± ÕžaXDD„91ž?¾k×®qãÆíرƒÃá´´´œ:uêöíÛGÕþQ¾ï¾ûÎÅÅE©T>zô(???:::33ÓÎÎnØ^ìììÌÌifyjiiiooOMMíèèÀ‡þµ¶¶¶¶¶H$ÀøñãUõmmmuÎŽŽ6'ÆÙ³gŽ;†[quu7o^TTÔµk×ð—ÕqppÀ»f2™³fÍúè£òòò¢¢¢†í…Á`˜™Ó̺>•––Μ9sΜ9nnn¥¥¥¦5òøñcÕéhÉ’%×®]ûàƒþú׿þóŸÿ¼~ýzDDÄ{ï½—™™‰WËåiii«W¯^½zuZZš\.mÞ¼Yýб±±Y¿~}QQÞxMMͺuëx<žF× eåÊ•ªÁ¢µW_ý§Ÿ~Âs~þùçªáµe2Ùûï¿· ½ºR©ÌÎÎÞ´iÓŠ+öìÙÓÐÐ`Ú.æxÂOzÁÁÁ€   ¢ž3ݹsçøñãÑÑÑééé§NÚµk×¹sçD"àâÅ‹àĉG­©©9}ú´X,îëëóòòÒhÇËË«½½/çææ8p@5 »:®®®/FxÐn\çêÁÁÁåååøïáUWW[[[Ï›7Oçêùùù999ÑÑÑçÎÛ´i“9#NšîéÿûßÓ§Oñ¡p‚‚‚Z[[[ZZLnMźuëlmm—-[ˆŒŒ´µµÅ‡uÇÇ¿víÚÞ½{Y,ÖäÉ“wìØQU¥÷¡8…BQ*_ü(_tt´ŸŸŸá®õ5®±úÛo¿-‰ôôôÄ+´¶¶š¼á&ž÷¸\®P(\ºtéè—„„„ttt477›Å-Z”žžÞÕÕÅçóÿïÿþïÒ¥K€>ø@(îÛ·¯ªªª££ãçŸÞµk“ÉT?ÖU<{ö¬¯¯¯§§§¾¾>>>^ „‡‡h\'óæÍ‹ÅgΜY±b…l+W®<~üø7úúúªªªTwC&`âñTZZ:{ölõWˆS¦Láp8eee:/×D±mÛ¶ï¾ûnûöí %((³ÛÖÖöäÉ“§OŸNKKëììtqq  £ÓéÚ-ìÙ³/°X¬3fœÁòÈ OpðÿGðHb>U’IEND®B`‚XQilla-2.3.0/docs/simple-api/EventHandler_8hpp__dep__incl.map0000644000151400015140000000042511653571064020774 00000000000000 XQilla-2.3.0/docs/simple-api/ATDateTimeOrDerived_8hpp.html0000644000151400015140000000662511653571064020206 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATDateTimeOrDerived.hpp File Reference

#include <xercesc/util/XMLString.hpp>
#include <xqilla/items/DateOrTimeType.hpp>
#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/items/ATDecimalOrDerived.hpp>
#include <xqilla/items/ATDurationOrDerived.hpp>
#include <xqilla/items/Timezone.hpp>
Include dependency graph for ATDateTimeOrDerived.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  ATDateTimeOrDerived
XQilla-2.3.0/docs/simple-api/ResultImpl_8hpp_source.html0000644000151400015140000002254611653571063020140 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ResultImpl.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _RESULTIMPL_HPP
00021 #define _RESULTIMPL_HPP
00022 
00023 #include <xqilla/framework/XQillaExport.hpp>
00024 #include <xqilla/items/Item.hpp>
00025 #include <xqilla/ast/LocationInfo.hpp>
00026 
00027 class DynamicContext;
00028 class Sequence;
00029 class Result;
00030 class ResultBuffer;
00031 
00033 class XQILLA_API ResultImpl : public LocationInfo
00034 {
00035 public:
00036   virtual ~ResultImpl() {}
00037 
00038   Result *getResultPointer() { return resultPointer_; }
00039   void setResultPointer(Result *p) { resultPointer_ = p; }
00040 
00042   virtual Item::Ptr next(DynamicContext *context);
00043 
00045   virtual Item::Ptr nextOrTail(Result &tail, DynamicContext *context);
00046 
00048   virtual Sequence toSequence(DynamicContext *context);
00049 
00051   virtual void toResultBuffer(unsigned int readCount, ResultBuffer &buffer);
00052 
00054   virtual void skip(unsigned count, DynamicContext *context);
00055 
00056 protected:
00057   ResultImpl(const LocationInfo *o);
00058 
00059   Result *resultPointer_;
00060 
00061 private:
00062   ResultImpl(const ResultImpl &) {};
00063   ResultImpl &operator=(const ResultImpl &) { return *this; };
00064 };
00065 
00066 #endif
XQilla-2.3.0/docs/simple-api/QueryPathTreeFilter_8hpp_source.html0000644000151400015140000003261511653571063021746 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

QueryPathTreeFilter.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _QUERYPATHTREEFILTER_HPP
00021 #define _QUERYPATHTREEFILTER_HPP
00022 
00023 #include <vector>
00024 
00025 #include <xqilla/events/EventHandler.hpp>
00026 
00027 #include <xercesc/framework/XMLBuffer.hpp>
00028 
00029 class QueryPathNode;
00030 typedef std::vector<const QueryPathNode *> QPNVector;
00031 
00032 class XQILLA_API QueryPathTreeFilter : public EventFilter
00033 {
00034 public:
00035   QueryPathTreeFilter(const QueryPathNode *qpn, EventHandler *next);
00036   QueryPathTreeFilter(const QPNVector &qpns, EventHandler *next);
00037   virtual ~QueryPathTreeFilter();
00038 
00039   virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding);
00040   virtual void endDocumentEvent();
00041   virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname);
00042   virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname,
00043                                const XMLCh *typeURI, const XMLCh *typeName);
00044   virtual void piEvent(const XMLCh *target, const XMLCh *value);
00045   virtual void textEvent(const XMLCh *value);
00046   virtual void textEvent(const XMLCh *chars, unsigned int length);
00047   virtual void commentEvent(const XMLCh *value);
00048   virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value,
00049                               const XMLCh *typeURI, const XMLCh *typeName);
00050   virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri);
00051 
00052 protected:
00053   struct StackEntry {
00054     StackEntry() : matched(false), nonElementChildren(false), attrChildren(false), children() {}
00055 
00056     void addNode(const QueryPathNode *isn);
00057     void addChildren(const QueryPathNode *isn);
00058 
00059     XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer prefix;
00060     XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer uri;
00061     XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer localname;
00062 
00063     bool matched;
00064 
00065     bool nonElementChildren;
00066     bool attrChildren;
00067     QPNVector children;
00068   };
00069 
00070   typedef std::vector<StackEntry*> FilterStack;
00071 
00072   void checkAncestors(FilterStack::reverse_iterator s);
00073 
00074   FilterStack stack_;
00075 };
00076 
00077 #endif
XQilla-2.3.0/docs/simple-api/classStaticAnalysis-members.html0000644000151400015140000003326311653571063021130 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

StaticAnalysis Member List

This is the complete list of members for StaticAnalysis, including all inherited members.
add(const StaticAnalysis &o)StaticAnalysis
addExceptContextFlags(const StaticAnalysis &o)StaticAnalysis
addExceptVariable(const XMLCh *namespaceURI, const XMLCh *name, const StaticAnalysis &o)StaticAnalysis
areContextFlagsUsed() const StaticAnalysis
areDocsOrCollectionsUsed() const StaticAnalysis
availableCollectionsUsed(bool value)StaticAnalysis
availableDocumentsUsed(bool value)StaticAnalysis
clear()StaticAnalysis
clearExceptType()StaticAnalysis
contextItemUsed(bool value)StaticAnalysis
contextPositionUsed(bool value)StaticAnalysis
contextSizeUsed(bool value)StaticAnalysis
copy(const StaticAnalysis &o)StaticAnalysis
creative(bool value)StaticAnalysis
currentTimeUsed(bool value)StaticAnalysis
DOCORDER enum valueStaticAnalysis
forceNoFolding(bool value)StaticAnalysis
getProperties() const StaticAnalysis
getStaticType() const StaticAnalysis
getStaticType()StaticAnalysis
GROUPED enum valueStaticAnalysis
HASH_SIZEStaticAnalysis [static]
implicitTimezoneUsed(bool value)StaticAnalysis
isContextItemUsed() const StaticAnalysis
isContextPositionUsed() const StaticAnalysis
isContextSizeUsed() const StaticAnalysis
isCreative() const StaticAnalysis
isNoFoldingForced() const StaticAnalysis
isPossiblyUpdating() const StaticAnalysis
isUpdating() const StaticAnalysis
isUsed() const StaticAnalysis
isUsedExceptContextFlags() const StaticAnalysis
isVariableUsed(const XMLCh *namespaceURI, const XMLCh *name) const StaticAnalysis
isVariableUsed() const StaticAnalysis
ONENODE enum valueStaticAnalysis
PEER enum valueStaticAnalysis
possiblyUpdating(bool value)StaticAnalysis
Properties enum nameStaticAnalysis
release()StaticAnalysis
removeVariable(const XMLCh *namespaceURI, const XMLCh *name)StaticAnalysis
SAMEDOC enum valueStaticAnalysis
SELF enum valueStaticAnalysis
setProperties(unsigned int props)StaticAnalysis
StaticAnalysis(XPath2MemoryManager *memMgr)StaticAnalysis
StaticAnalysis(const StaticAnalysis &o, XPath2MemoryManager *memMgr)StaticAnalysis
SUBTREE enum valueStaticAnalysis
toString() const StaticAnalysis
UNDEFINEDVAR enum valueStaticAnalysis
updating(bool value)StaticAnalysis
variablesUsed() const StaticAnalysis
variableUsed(const XMLCh *namespaceURI, const XMLCh *name)StaticAnalysis
XQilla-2.3.0/docs/simple-api/inherit_graph_5.png0000644000151400015140000000376011653571064016406 00000000000000‰PNG  IHDRÃ(ÌžÙ¼bKGDÿÿÿ ½§“¥IDATxœí›[LKÇg-–‚ÈÅV@°¦¤› ñ¼$¨/Þb,h!¨Õ ‰£Ro‘ ‰Ê›(*1!ÄXQLÑh  BPIi‹‚ -nKŠÔvÎÃälöìnk…UÂÉüžv¦ß7ßfþ™Ým€ fÜL™h˜ÿ ØI~ÀNÂðv†üí‚‚‚úúú ‘‚™Däææ®ZµŠÞÃt’Ñh|ÿþ}RRÒ_T…™dTVVfgg3:™N$%%Ý»wï¯HÂLJ‚`wâç$ ?`'aø; ÃØI~ÀNÂðøœTPP@ÄÅ‹ǯƒ !“ÉvìØ1000þaÿ4_¿~ÍÈÈÉdAAAË–-{øðá!âãÇ>FR$''ëõú1TüŒÝI»wïΙ3G«Õzìêê’H$¿°±±Ñl6÷ôôܾ}›$Éøøø¡¡¡1Ëû0&288¸xñâÀÀ@­VÛÜܼ}ûv•JõìÙ³?ª­’Ùl6 óæÍÛ¶m/Íáãyþ—´´´´´4è­­­AÔÔÔ>|øà%²££ƒ]ˆ ££ƒjºÝî•+Wæååù¢ä¯Á˜ÈÐFRh4š5kÖüî°Œ¹ûÙ××èëëûÝŠl|Ù#º ­VËìd´}wÒ©S§V¯^ !T(gÏže ¢®Åb1 ""õ[­Ö;wŠÅâèè蜜‡Ã¹VóÎ;K–,ñ”ât:óòò¤R©D"ÉÊʲZ­žª£ÁËÊÊ …D"),,,//—ÉdÁÁÁ¹¹¹(`ttT£Ñ„‡‡Ïœ9S£ÑŒŽŽ¢¬ŠŠ …BVTTÄžHdddcc#]³ÍfëîîF×=Š‹‹ ˆŒŒ,,,„rjF…®^½*—ËCCC/\¸à]}•,‹P(ñ’R]]½páBÿ˜˜˜òòrO‘Œ©y‡O'¹Ý˜ÒÒRáéÓ§cccQ?ç^2üž™™™ššÚÙÙi0,XŸŸÏ^#áË—/CCC=¥\ºt)66Ö`0Æ„„Fã©:\¥R‘$yëÖ-@zz:I’¥¥¥€oß¾A‹ŠŠ¶nÝúùógƒÁòäI”¥T*­VëÍ›7ƒƒƒô1­V+Àb±p®I’B¡p÷îÝ===€þþ~NͨІ H’|ðàÁ/%éõz›Íf³Ùz{{÷ï߯V«©¢ì»Ýîïïýúu³Ù\VVæççg·Û9#'ìLjjjòóóCs~ýú5Àh4Bœ4::*Þ¼yƒšUUUsçÎ…^Ä™2þüªª*ÔÓÖÖ†®½8©¥¥ ŸFE …ÙlFÁ555qqq(«¶¶–IÓb±¨s…Á?Þ½{g·Û].×óçÏQ:§fT¨®®Bèr¹~)‰NPPP[[U”b±X¦Nzùòe«Õêv»m6›Ëå⌜0'>|˜1+t§  joog;éË—/tGƒ ‘H½ÞÝ8SD"ò.ÎêŒÁ9¯E"}.!!!èSêùí$aDDDCC]@ssóÒ¥K‡‡‡!„:.%%%..N­V£tNÍhðööv%Q⇇‡srr©q8S^¼x¡T*§M›¶bÅŠ'OžxŠ¿“Æòîær¹´Zmqq±í_Ž=ІF?þôöö²s#""AWWjvvvFGG³Ã „×®][¿~½§”¨¨(“É„zôzýùóç©\/Õ=!‘H¨²Z­MMM¨Êoë³iÓ¦+W®@ÚQQQQát:Gzzú±cÇZZZJJJЧ^4³õ$‰"00p×®]oß¾¥°S‡Ûí®¬¬´X,{öìÙ¸q#:J9øX`8Ë—3©¶¶V Ð_^½zhiiA_•••}ÿþ}Ë–-€v&Ùl6œ‘‘‘ššÚÕÕe4cccÑ  } PWW·yóæÙ³g yJ9sæÌ¢E‹ŒF£ÑhLNNÎÎΆrV‡>œI‡R*•&“©µµ5!!áàÁƒœ‘Œ‰ô÷÷‹ÅâÌÌ̆††ÖÖÖüü|ÀãÇÑöñôéÓáááãÇ£ÅáÔ XQilla Simple API Documentation SourceForge.net Logo

Scope< TYPE > Class Template Reference

used inside VariableStore to implement variable scoping More...

#include <Scope.hpp>

Inheritance diagram for Scope< TYPE >:

List of all members.

Public Types

enum  Type { GLOBAL_SCOPE, LOCAL_SCOPE, LOGICAL_BLOCK_SCOPE }
 

enum for classifying type of scope

More...
typedef
xercesc::RefHash2KeysTableOf
< VarHashEntry< TYPE > > 
VarHash

Public Member Functions

 Scope (XPath2MemoryManager *memMgr, Type type)
 constructor.
 ~Scope ()
void clear ()
Type getType () const
VarHashEntry< TYPE > * get (unsigned int nsID, const XMLCh *name)
void put (unsigned int nsID, const XMLCh *name, VarHashEntry< TYPE > *value)
void remove (unsigned int nsID, const XMLCh *name)
std::vector< std::pair
< unsigned int, const XMLCh * > > 
getVars () const
ScopegetNext ()
void setNext (Scope *next)

Detailed Description

template<class TYPE>
class Scope< TYPE >

used inside VariableStore to implement variable scoping


Member Typedef Documentation

template<class TYPE>
typedef xercesc:: RefHash2KeysTableOf< VarHashEntry<TYPE> > Scope< TYPE >::VarHash

Member Enumeration Documentation

template<class TYPE>
enum Scope::Type

enum for classifying type of scope

Enumerator:
GLOBAL_SCOPE 
LOCAL_SCOPE 
LOGICAL_BLOCK_SCOPE 

Constructor & Destructor Documentation

template<class TYPE >
Scope< TYPE >::Scope ( XPath2MemoryManager memMgr,
Type  type 
)

constructor.

template<class TYPE >
Scope< TYPE >::~Scope ( )

Member Function Documentation

template<class TYPE >
void Scope< TYPE >::clear ( )
template<class TYPE >
VarHashEntry< TYPE > * Scope< TYPE >::get ( unsigned int  nsID,
const XMLCh *  name 
)
template<class TYPE >
Scope< TYPE > * Scope< TYPE >::getNext ( )
template<class TYPE >
Scope< TYPE >::Type Scope< TYPE >::getType ( ) const
template<class TYPE >
std::vector< std::pair< unsigned int, const XMLCh * > > Scope< TYPE >::getVars ( ) const
template<class TYPE >
void Scope< TYPE >::put ( unsigned int  nsID,
const XMLCh *  name,
VarHashEntry< TYPE > *  value 
)
template<class TYPE >
void Scope< TYPE >::remove ( unsigned int  nsID,
const XMLCh *  name 
)
template<class TYPE >
void Scope< TYPE >::setNext ( Scope< TYPE > *  next)

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/ReferenceCounted_8hpp__dep__incl.map0000644000151400015140000000074011653571064021635 00000000000000 XQilla-2.3.0/docs/simple-api/ATDurationOrDerived_8hpp__incl.map0000644000151400015140000000045111653571064021243 00000000000000 XQilla-2.3.0/docs/simple-api/classxercesc_1_1MemBufInputSource.html0000644000151400015140000004673611653571065022151 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

xercesc::MemBufInputSource Class Reference

This class is a derivative of the standard InputSource class. More...

#include <MemBufInputSource.hpp>

Inheritance diagram for xercesc::MemBufInputSource:

List of all members.

Public Member Functions

Constructors
 MemBufInputSource (const XMLByte *const srcDocBytes, const XMLSize_t byteCount, const XMLCh *const bufId, const bool adoptBuffer=false, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 A memory buffer input source is constructed from a buffer of byte data, and the count of bytes in that buffer.
 MemBufInputSource (const XMLByte *const srcDocBytes, const XMLSize_t byteCount, const char *const bufId, const bool adoptBuffer=false, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 This constructor is identical to the previous one, except that it takes the fake system id in local code page form and transcodes it internally.
Destructor
 ~MemBufInputSource ()
 If the buffer was adopted, the copy made during construction is deleted at this point.
Virtual methods
BinInputStream * makeStream () const
 This method will return a binary input stream derivative that will parse from the memory buffer.
Setter methods
void setCopyBufToStream (const bool newState)
 By default, for safety's sake, each newly created stream from this input source will make its own copy of the buffer to stream from.
void resetMemBufInputSource (const XMLByte *const srcDocBytes, const XMLSize_t byteCount)
 This methods allows the MemBufInputSource to be used for more than one input source, instead of destructing/constructing another MemBufInputSource.

Detailed Description

This class is a derivative of the standard InputSource class.

It provides for the parser access to data stored in a memory buffer. The type of buffer and its host specific attributes are of little concern here. The only real requirement is that the memory be readable by the current process.

Note that the memory buffer size is expressed in bytes, not in characters. If you pass it text data, you must account for the bytes per character when indicating the buffer size.

As with all InputSource derivatives. The primary objective of an input source is to create an input stream via which the parser can spool in data from the referenced source. In this case, there are two options available.

The passed buffer can be adopted or merely referenced. If it is adopted, then it must be dynamically allocated and will be destroyed when the input source is destroyed (no reference counting!.) If not adopted, the caller must insure that it remains valid until the input source object is destroyed.

The other option indicates whether each stream created for this input source should get its own copy of the data, or whether it should just stream the data directly from this object's copy of the data. The same rules apply here, in that the buffer must either be copied by the stream or it must remain valid until the stream is destroyed.


Constructor & Destructor Documentation

xercesc::MemBufInputSource::MemBufInputSource ( const XMLByte *const  srcDocBytes,
const XMLSize_t  byteCount,
const XMLCh *const  bufId,
const bool  adoptBuffer = false,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
)

A memory buffer input source is constructed from a buffer of byte data, and the count of bytes in that buffer.

The parser will parse from this memory buffer until it has eaten the indicated number of bytes.

Note that the system id provided serves two purposes. Firstly it is going to be displayed in error messages as the source of the error. And secondly, any entities which are refered to from this entity via relative paths/URLs will be relative to this fake system id.

Parameters:
srcDocBytesThe actual data buffer to be parsed from.
byteCountThe count of bytes (not characters, bytes!) in the buffer.
bufIdA fake system id for the buffer.
adoptBufferIndicates whether this object should adopt the buffer (i.e. become responsible for deletion) or just use it in place.
managerPointer to the memory manager to be used to allocate objects.
xercesc::MemBufInputSource::MemBufInputSource ( const XMLByte *const  srcDocBytes,
const XMLSize_t  byteCount,
const char *const  bufId,
const bool  adoptBuffer = false,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
)

This constructor is identical to the previous one, except that it takes the fake system id in local code page form and transcodes it internally.

xercesc::MemBufInputSource::~MemBufInputSource ( )

If the buffer was adopted, the copy made during construction is deleted at this point.


Member Function Documentation

BinInputStream* xercesc::MemBufInputSource::makeStream ( ) const [virtual]

This method will return a binary input stream derivative that will parse from the memory buffer.

If setCopyBufToStream() has been set, then the stream will make its own copy. Otherwise, it will use the buffer as is (in which case it must remain valid until the stream is no longer in use, i.e. the parse completes.)

Returns:
A dynamically allocated binary input stream derivative that can parse from the memory buffer.

Implements xercesc::InputSource.

void xercesc::MemBufInputSource::resetMemBufInputSource ( const XMLByte *const  srcDocBytes,
const XMLSize_t  byteCount 
)

This methods allows the MemBufInputSource to be used for more than one input source, instead of destructing/constructing another MemBufInputSource.

Parameters:
srcDocBytesThe actual data buffer to be parsed from.
byteCountThe count of bytes (not characters, bytes!) in the buffer.
void xercesc::MemBufInputSource::setCopyBufToStream ( const bool  newState) [inline]

By default, for safety's sake, each newly created stream from this input source will make its own copy of the buffer to stream from.

This avoids having to deal with aliasing of the buffer for simple work. But, for higher performance applications or for large buffers, this is obviously not optimal.

In such cases, you can call this method to turn off that default action. Once turned off, the streams will just get a pointer to the buffer and parse directly from that. In this case, you must insure that the buffer remains valid for as long as any parse events are still using it.

Parameters:
newStateThe new boolean flag state to set.

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/InputParser_8hpp__incl.md50000644000151400015140000000004011653571063017602 00000000000000d12c215e28c1e75a4dfcc8e757850b28XQilla-2.3.0/docs/simple-api/Numeric_8hpp__dep__incl.md50000644000151400015140000000004011653571063017717 00000000000000d5f2d548e562578d9874cc970a79722dXQilla-2.3.0/docs/simple-api/ATDateOrDerived_8hpp__dep__incl.map0000644000151400015140000000041611653571064021323 00000000000000 XQilla-2.3.0/docs/simple-api/graph_legend.html0000644000151400015140000001132611653571064016133 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

Graph Legend

This page explains how to interpret the graphs that are generated by doxygen.

Consider the following example:

/*! Invisible class because of truncation */
class Invisible { };

/*! Truncated class, inheritance relation is hidden */
class Truncated : public Invisible { };

/* Class not documented with doxygen comments */
class Undocumented { };

/*! Class that is inherited using public inheritance */
class PublicBase : public Truncated { };

/*! A template class */
template<class T> class Templ { };

/*! Class that is inherited using protected inheritance */
class ProtectedBase { };

/*! Class that is inherited using private inheritance */
class PrivateBase { };

/*! Class that is used by the Inherited class */
class Used { };

/*! Super class that inherits a number of other classes */
class Inherited : public PublicBase,
                  protected ProtectedBase,
                  private PrivateBase,
                  public Undocumented,
                  public Templ<int>
{
  private:
    Used *m_usedClass;
};

This will result in the following graph:

graph_legend.png

The boxes in the above graph have the following meaning:

  • A filled gray box represents the struct or class for which the graph is generated.
  • A box with a black border denotes a documented struct or class.
  • A box with a grey border denotes an undocumented struct or class.
  • A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.

The arrows have the following meaning:

  • A dark blue arrow is used to visualize a public inheritance relation between two classes.
  • A dark green arrow is used for protected inheritance.
  • A dark red arrow is used for private inheritance.
  • A purple dashed arrow is used if a class is contained or used by another class. The arrow is labeled with the variable(s) through which the pointed class or struct is accessible.
  • A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labeled with the template parameters of the instance.
XQilla-2.3.0/docs/simple-api/classNSFixupFilter__inherit__graph.md50000644000151400015140000000004011653571063022154 00000000000000cecfae07a5dd5432629bbec12f2d5c34XQilla-2.3.0/docs/simple-api/classAutoStackFrameReset-members.html0000644000151400015140000000625311653571063022050 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

AutoStackFrameReset Member List

This is the complete list of members for AutoStackFrameReset, including all inherited members.
_oldFrameAutoStackFrameReset [protected]
AutoStackFrameReset(DynamicContext *context, const StackFrame *frame)AutoStackFrameReset [inline]
context_AutoStackFrameReset [protected]
reset()AutoStackFrameReset [inline]
~AutoStackFrameReset()AutoStackFrameReset [inline]
XQilla-2.3.0/docs/simple-api/functions_0x65.html0000644000151400015140000003034211653571063016304 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- e -

XQilla-2.3.0/docs/simple-api/inherit_graph_4.map0000644000151400015140000000024211653571064016366 00000000000000 XQilla-2.3.0/docs/simple-api/classATGDayOrDerived-members.html0000644000151400015140000004324011653571063021046 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATGDayOrDerived Member List

This is the complete list of members for ATGDayOrDerived, including all inherited members.
_ref_countReferenceCounted [protected]
ANY_SIMPLE_TYPE enum valueAnyAtomicType
ANY_URI enum valueAnyAtomicType
asString(const DynamicContext *context) const =0ATGDayOrDerived [pure virtual]
AtomicObjectType enum nameAnyAtomicType
BASE_64_BINARY enum valueAnyAtomicType
BOOLEAN enum valueAnyAtomicType
castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [protected, virtual]
castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
compare(const ATGDayOrDerived::Ptr &other, const DynamicContext *context) const =0ATGDayOrDerived [pure virtual]
DATE enum valueAnyAtomicType
DATE_TIME enum valueAnyAtomicType
DAY_TIME_DURATION enum valueAnyAtomicType
DECIMAL enum valueAnyAtomicType
decrementRefCount() const ReferenceCounted [inline, virtual]
DOUBLE enum valueAnyAtomicType
DURATION enum valueAnyAtomicType
equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0ATGDayOrDerived [pure virtual]
fgDT_ANYATOMICTYPEAnyAtomicType [static]
FLOAT enum valueAnyAtomicType
G_DAY enum valueAnyAtomicType
G_MONTH enum valueAnyAtomicType
G_MONTH_DAY enum valueAnyAtomicType
G_YEAR enum valueAnyAtomicType
G_YEAR_MONTH enum valueAnyAtomicType
generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicType [virtual]
getInterface(const XMLCh *name) const =0Item [pure virtual]
getPrimitiveTypeIndex() const =0ATGDayOrDerived [pure virtual]
getPrimitiveTypeName() const =0ATGDayOrDerived [pure virtual]
getPrimitiveTypeURI() const AnyAtomicType [virtual]
getRefCount() const ReferenceCounted [inline]
getTypeName() const =0ATGDayOrDerived [pure virtual]
getTypeURI() const =0ATGDayOrDerived [pure virtual]
gXQillaItem [static]
hasTimezone() const =0ATGDayOrDerived [pure virtual]
HEX_BINARY enum valueAnyAtomicType
incrementRefCount() const ReferenceCounted [inline]
isAtomicValue() const AnyAtomicType [virtual]
isDateOrTimeTypeValue() const DateOrTimeType [virtual]
isFunction() const AnyAtomicType [virtual]
isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicType [virtual]
isNode() const AnyAtomicType [virtual]
isNumericValue() const AnyAtomicType [virtual]
isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
Item()Item [inline, protected]
NOTATION enum valueAnyAtomicType
NumAtomicObjectTypes enum valueAnyAtomicType
Ptr typedefATGDayOrDerived
QNAME enum valueAnyAtomicType
ReferenceCounted()ReferenceCounted [inline]
setTimezone(const Timezone::Ptr &timezone, const DynamicContext *context) const =0ATGDayOrDerived [pure virtual]
STRING enum valueAnyAtomicType
TIME enum valueAnyAtomicType
typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicType [virtual]
UNTYPED_ATOMIC enum valueAnyAtomicType
YEAR_MONTH_DURATION enum valueAnyAtomicType
~ReferenceCounted()ReferenceCounted [inline, virtual]
XQilla-2.3.0/docs/simple-api/ATGMonthOrDerived_8hpp__dep__incl.png0000644000151400015140000001362211653571064021654 00000000000000‰PNG  IHDR³ÃFT·ebKGDÿÿÿ ½§“GIDATxœí{TSWöÇO€€EW"V µ"à8µ£  h—ÚQ °ò舮¢XëÈØÇoF\méE¥ø€)"muÉKV§ bSEP ái$1Ñ äuÜ™Û49ŸŸ––ÖØØH§Ó_y啨¨(wwwÒ!00ÐÅÅ%''‡F£QµÞÿý7näææº¸¸Œ/ÃÀÀ@lõS§NÕÕÕ WWWÿ·ß~ÛÔÔT»:Uvrrš?~||¼­­íhš~øðá¦M›ªªªÆ—ùP†ê‘Ž2‚¨¬¬d2™UUU”2/^\XXˆÛ·o'Ë¡iÓ¦õôôüõ¯ HMME]¾|yÇŽééé3gÎ$}º»»[ZZ8¹Ù××wûöí±f%âââJJJ†ñyöìY||¼]ll¬³³s[[Û—_~yóæÍÏ?ÿÜÄDsøLKKc±X*•êÁƒ………111ÙÙÙVVV#fbee>Öü ñÌ&mmm{öìáñx|>Ÿ4ZXXØÛÛÛÛÛ“ÿXöÿÃÌÌ,77wÞ¼y‰‰‰ þþþ_}õpÁ‚W¯^¥6¯]»æãã3Ö¬T*•X,ÞçÌ™3¶¶¶©©©¿ÿýïÙl¶¿¿FFFww÷¥K—´mmmííí †¯¯ï'Ÿ|Âb± F“‰MLLÌXó74Æ£ŒÊÊÊùóç/X°ÀÕÕµ²²rD.—¢>YÄÇLJ……Q›Ë–-»zõ*õ¦HuuõÒ¥K©½‰$%%åÍ7ß =vì˜L&C–——oÙ²eíÚµgÏžE½ûõë×SoÞ¼±fÍšÿûߤ¥¬¬lóæÍêÃÔ)SÞ~ûí²²²‡r¹Ü 6ܹsG£ 4míÚµ555ä¦B¡ÈÈÈX·nݺuë222 …zõË—/““ÑþýûÓÓÓÉ*r¹|Íš5díê*•êìÙ³‘‘‘«V­Ú¾}û½{÷°GR£Gd£ßÿ}ddäºuëŽ9"—˱ÆÏ‘6cV9•!„FœMåryWW×Ë/¿LnJ¥R©TjnnîììLù¼úê«R©´¥¥!ÔßßÏår/^Líý׿þõèÑ£ŒŒŒC‡ÕÕÕååå‘öÿüç?GÍÌÌìëë#ÏAQQU±¶¶öĉ{öìÉÊʋʼnD(Rs‡Ãéìì$ËçÎÛ»w¯‡‡‡vGØlvWWYþúë¯AffæçŸÎårOž<‰­T]]M*¾®®ÎÂÂbáÂ…Øê………ùùù111999‘‘‘؃©Ñ#ÒxþüùƒþóŸÿ¬­­¥Fb¬qLŒY÷ïßïéé @´···µµ ã/‹ ‚˜2e ¹¹J_’01  '”ëׯϛ7oÚ´iä.…BQYY™Àb±ÜÜÜ¢¢¢ÊÊÊÈ]þóŸ­¬¬Þxã ²í¦7lØ`ii¹dÉ„P__ßPÒh4•JE–cbb|}}©l‡âÒ¥K;wîd2™nnn±±±7nÜÀVÿÃþ ‹úé'„PEEÅÊ•+É¥®võÒÒÒ¸¸8‡×^{m¨ÉÛ£øøx6›íååõÎ;ïPkc^VVV*•Ê7ß|“²TUUÍš5k({{{sss>ŸOþ'‘cL__ßÚµkÕÝ–-[öé§ŸnݺUc*‰D*•Š`\\\=zD– BÈÌlÈ.888 „¨YÌÊÊÊÞÞžÇã-X°@ÝÇãÍž=›,»ººÏçSitww‡„„P»¦NŠ­naa±xñâêêê—_~ùÚµk'NœªºB¡PÌÜÜÜFÓ#6›MµN¬qLŒM*•ªªªêÝwß]½z5i9yòdUUUTT”Fº4ÍÏÏïâÅ‹ï½÷eÔžƒæÍ›÷ìÙ³;wîܼys×®]”ÝÎÎÎÄÄD 2]]]¤ ÖÂ6­a >s振¯/µÔÈËË£ÎÓP:#¢´´tÑ¢Eä¦Í_|A^@’“ÔPÕƒ‚‚Ž9ÂápfÏžM-íêÿûß[ZZ¨+ùöööQö!ÄçóI%=xð€”ÎPÆ11¶Ù¤¾¾^$-_¾ü¥ÿÌçóy<Þ0µÞyç+W®dff¶¶¶òx¼Ó§O_¼xQã ’Jjjª———úm33³ÀÀÀÇ ò"388x˜¶¤Ré0{·lÙ"‰oܸÁçó¿ûî»øøxƒ¡>R¼ÿ~VVõ† Ö8&Æ6fTVVúùù©Ÿ9gg窪*ìªÄÝÝýðáÃ¥¥¥ cáÂ…‡Þ¾}»†[```IIɺuë4ì;wîLKK‹‹‹£Óéüã#""°­LŸ>}Þ¼y!!!ß~ûíP™XZZ?~üäÉ“]]],+(((44”N§k;S2™LooïãÇS³ÆÖ­[ÓÒÒ¶mÛF£Ñbcc{{{±-š™™-]º´¢¢B}ŠÔ®N§Óårù±cÇ?~ìîîžœœL^j}öÙg>>>T»X‚ƒƒwíÚ500AÎÆaªMýS4íÀð~Æd{«t|w`?úè#GGÇsçÎQxnàeLb¦NºfÍšÑÇ(cckk›˜˜8ã8ex@P€”àex@¿pÿþc}§`@hÞussÓø›‘ PL‰<oé;ýÐÚÚ¬~ôWÏMBCC'<%CáÁëžkgçÙS¦(ô‹pss£ž$“ÐàÛ˜H-ú¿ÎÎlj‰oìÞ½Rß¹°Î@¡»w»:;#„ êô‹¡Ê@¡Â›tº)BèÁá­[úNÇ e •ŠÈϯ“Ë•!33Óóç¹úÎÈ e ÚÚV¡PB– å×_ßT*UúMÉe âb®™Ù/ÇA(ì¿~½EùÆ® ¹\yþ°°Îð€2<  (ÀÊð€2]¿9¼ʘAþ(9uRåryRR’“““ÉLJJ’Ëå!–íåååè蘒’’““3kÖ,›äääáƒ_¼xÑ×××ÒÒ’Åb¥¤¤ „ Å\]]7oÞüäÉ힟Ÿ››‹êééùôÓOçÎ[__çÎ×^{m÷îÝÚ9DDDµ´´Ô×׿úê«~ø!éð§?ý©²²òÛo¿uppËåAäææÎ;W¥Ri÷nõêÕb±¸°°L’Œ°bÅŠ¦¦¦šš‡C…Õ0ŽxxCCCuúÜÄ@•áéé)ÈrYY™éÌår ‚Éde2ˆ¶î/\¸088xïÞ=‰D¢T*«««Iç9sæ‘ñïÞ½K–ÕsÉd¦¦¦ äfQQ‡Ã!êëë ‚P(Ó§O¯¨¨ bÕªU)))ØÞ]½z• ¥RI¶« ˆüü|°”qÄëkeÊ:Cƒööv‹EmÚØØkkk„N×(S477s8hMMMÛ¶m“H$¾¾¾¤¥££ÃÃÃ,{yyyyyiTùù矕J¥»»;¹Éápø|>YöôôD™šš®_¿¾¨¨ÈÛÛ»¼¼œº´qvvF™˜üjÖ¦šöôô¤ÂbzÄPÖ0 r B$ÕÔÔŒ;”T* KJJâr¹ééé¤ÑÙÙ¹½½,ߺuëÿø‡F-'''SSÓÖÖVr³¥¥ÅÅÅ…,SZ -..>wîÜ’%KØl6¶uìe39H „šššHé eÔ#†¥ ‰ä¿¿Ï¾~ýú>ø £££¾¾~åÊ•GwÌÁÁA™Lfnn.•J8€êë닌ŒüÛßþÖÐÐÐÐа}ûöŽŽètú† vìØÑÖÖÖÐаÿþˆˆÈþþþ …âã?ŽŒŒ¤ŒYYYOŸ>EòsçNWWW·oß¾M›6 cÔ'º›¨ÐXÖr¹|É’%VVV¤],GEEÙÙÙ988ÄÄÄô÷÷«;UV7ª“ššjoo?cÆŒôôôððp&“900°{÷nggg›ððp‘H¤ƒP(ŒŒŒtpp`±Xï½÷žT*ÕX ÷ÒK/‰ÅbíaËd„¬¬¬™3g2Œ„„*¬†qÄÃû‚¯@';ûöíÛ¸qãèýµµ5”qDŒtjø tuueggçååé;`XëŒIDmmíï~÷»èèèeË–¾Ö´iÓbccGcÔ;0fŒ“¥K— …±Öb2™£1ê3<  (ÀÊð€2~¡·W¢ï Ý^›TTT¯>>Ê‹»ßzËE߉Œ–ÖÖV7776 »›h:LZ¼ô’×ôéÛi4 }'2&ë=ÐÉ%Ž·ÞJ¿v­97÷êÆ‹ô‹Aë „züXR[ËCˆVXøƒ¾s1@!tþ<!BDMMKw÷ÏÐPBÔ©TBÈÔ”VZzKßé  ÔÑñøÎ‡äªH©TÔé;#ƒ”JJ~45ýï;y¶¶>ÒoJ†(=[«P¨¨M:Ýôüy®ó1Œ]÷îuµ·÷ª[är%L(”Q\Ì¥Ó5BGÇㆆ‡zÉÇp0jeqî\\®Ò°Ã„‚Œ\?üÐÞÓ#Ö¶“ yk´µ2Š‹¤ÓM±»=ê»q£u‚ó1(ŒWJ¥ª´”«TææfÚ¡ Œú–—ñ¾!üäɳ¸¸@j³©©ûÂ…Û»v½AYìì¦ê#/C6¹žˆêŽÒÒ[qq§»º¾Ðw"†‚ñÎ&Àð€2<  (ÀÊð€2<  (ÀÊð€2<  (ÀÊð€2<  (ÀÊð€2<  (ÀÊð€2<  (ÀÊð€2<  (ÀÊð€2<  (Àʆ@G¿›ªïž :am½DßYŒÝý¾º¿§kÑ¢E‰‰‰º‹¯vè;1¦»à:TÆŒ3&ÝÈPÀ:ÀÊð€2<  (À39”Áãñh4¶ðœ' :FãñxãnK_LeØÚÚ¾ÿþû†ðÅcr(ƒÁ`¤¤¤rÀ}*£´´ÔÅÅE$!„òòòfÏžÝß߯R©ÒÒÒ¼¼¼¬­­_ýõªª*r4fô¾xñ¢¯¯¯¥¥%‹Åžï .x{{O™2ÅÍÍ-''ýz: ÑhÙÙÙ^^^ŽŽŽ)))999³fͲ±±INN¦‚¹¹ySSÓÊ•+,XpêÔ)ÊNûvvvUUU555l6{éÒ¥ß}÷‰‰f¯­­­Bt:]£LáááA<==ù|¾ú®ööv‹E¶µ|ùò¶¶6í$BíbcÓУgeø £££¾¾~åÊ•GEeee=}út1‡ih¢ÑÑ,5šuÆ‘#GæÏŸ/“É‚(..f±XB¡P&“}üñdzfͲ²²zýõ׿úê+4ì:ƒ ˆÔÔT{{û3f¤§§‡‡‡3™L†òóóÝÝÝÍÍÍ===KJJ4ª#µ¥‰v™ôÌÊÊš9s&ƒÁHHHJ¥êÕÅbqTT”ƒƒCLLLÿóÄÔ0Ñ ¼õs t‘6æ8Ò©2&Ç.`âeŒÀ´iÓbcc' ¦.ztõ«œä+ŠçÎÓEp€„F£åççëèmP3<  (ÀÊð€2<  ?£VPPð<ïZúEW÷3®_¿®ß‡ÈF¢E‹f̘¡‹ÈºR0Ùu€”àex@žÿÑ=ß¡H­IEND®B`‚XQilla-2.3.0/docs/simple-api/DOMXPathNSResolver_8hpp__incl.png0000644000151400015140000001170211653571064021004 00000000000000‰PNG  IHDRÅuq²ÒbKGDÿÿÿ ½§“wIDATxœíiXWÛÇOBa±„UY´PŠD­¶Ê&àEADEYk‘ÍG±¯R¯*¨X«ˆ(ÐÊ E nT, ¨ˆ@©婈Ö"M-@æý0½æ“£ïˆRÏïÓ™{Î}Ÿû ÿ9ç̆‚ €@H‚ú®€ü£€z‚ Ô„L ž dB“ØÞ³gOEEÅ;I2¹rå ~SRO§¾¾ÞÔÔtS‚LH:;;$Œ’z˜ššFGGKJ LYYÙ®]»$Œpý!¨'™@=AÈê B&PO2!¸¾“[[[¬î:vì“É>^z“`pp0&&&&&æ³Ï>‰DØÂ_‚1.¾(ʶmÛ¾úê« .`Š500@çn …2þüóçÏKû*((8::^¸pA´ UUÕ„„Tmè`ppP,ÇÄÄ —––nß¾½°°PMMJ¥r¹Ü©S§ÚÚÚ455ñ‘íìì’’’X,–±±1öÇ–ŽÚG[eöº¥¥½d~úô)*¸ÑŒ¯Å›ÏwÝÝÝ<ïÙ³gõõõ;vìàr¹«W¯Fwùûûóùü-[¶TWW·´´\¿~=44TSSÓÕÕõÿ¦R­¬¬:dbb‚¿q… H||¼¡¡¡³³3`õêÕjjj‰‰‰c'#‰†‡‡i4ÚÐкžÀ.úŒ=ÒÑÑ =u꺩¨¨¸téÒ]»vUUUq¹Üû÷ï=zœ$PVVÀÚ²´´LOOïèèxüøqdddaa!…B‰ˆˆ¨¨¨èïï‰D4MAAF£ÙÚÚ&&&r¹\ô®Š½½=>ìüùóûúúrrrœœœ0£tp‰d.^¼H8ÝãINNnmmýã?222Æ0¾o>>mܸ-hkk³Ùì´´4làURRJKKËÎÎNIIikkÓÑѱ³³[µj¶\E±µµ-**rssÃKJJjkk³²²Ð³ŠF£EDDlذÁÊÊÊÊÊj´dTTTBCCccc½¼¼ììì"## ÌÌÌÜÝÝ/]º$c§\\\®_¿^[[‹nFFFæææ¦§§·¶¶ª©©ÙÚÚ~ùå—„ŽZZZJJJ===JJJ€€€€äääÀÀ@ …beeL§Ó¿ùæ›ÔÔÔÎÎN]]Ýèèhô¾èæÍ›“““CBBäåå—,YâííŸhh4šµµuii)~I üÙ³gød<8gÎìÏAˆ½½ýÖ­[…B!z“mTÂ(ãAÃC‘¸H^½zuWW|ÿé áý÷7¸)¾ÿ$¡øüB&POÊÊÊ...²ߨ§&“¹eËYŒoÔ„L ž dõ!¨'™@=AÈê B&Ï[êëëÃÃÃÇ?ÈÄ‚ÏçK%õ„½#ÁS[;ÙÐð…ººð]'ò~!ñJ~~!DW÷RRü—/Ÿóêª6pý!¨'™@=AÈê B&PO2z‚ Ô„L ž dõ!¨'™@=AÈê B&PO2z‚ Ô„L ž dõ!¨'™@=AÈê B&PO2z‚ Ô„L ž dõ!¨'™@=AÈê B&PO2z‚ Ô„L ž dõ!øÿéˆù÷¿sÿû_.¶ÙÚÚ­®®¬¨ø÷÷Öh4¹ÿü'@G‡9Š÷‡ iß{ý‡ÁbM.,¬ÃŸk½½ü^(&Bà|GÌÊ•–F“[³æÓqÎg¢õDÌÔ©l¶áç†GFÄ+VÌ÷Œ&PO£âá1_NNòøP© ‹©ººp²#êiT\]çJ_¬P(ùï$Ÿ ÔÓ¨hjª,XÀ’¢–-›ýNò™@=ŪUóðC”œÕÒÒH]}¬ï†à@=…“?>‰Åˆ»û¼w˜ÏûÔÓXLšÄ°³û„Fûû(Ñér_|Á~·)½ç@=½‚•+-Äb@£É98ÌRR¢¿ëŒÞk ž^ƒƒ)ƒ!qw—üœD¨§W  @st4£P€¢"ÝÆfæ»Nç}ç¥çw€ð#y8¶¶Ÿ=û›ƒÃŒçÏ;ßu.ŠjjjØæKzêíímll÷”ÞwTUÅ“&Ñ?ùDi´´´FÕŠÍø¥3AØ´ Ù°a •Jü„øƒåþýû¸~’‰à`(&Y€z’ yy¹wÂÄê B&PO2z‚ Ô„L&¼žš››×­[÷ÊjMMM _À»ÿþûï4íôéÓ˜½¨¨ˆN§s8œ·‘³Ó¦Móóóëêê£>‚ >>>***²Çojj"#ÓW3áõTXX¸bÅ Â]?ÖÔÔDËL&sÛ¶m£¹›››oß¾=,,¬»»ðâÅ‹ 6DGG›™™½½ÌñTVVr¹Ü–––ìììžžž¹s碙ÒÖÖvüøñ†††ñÉíõ@pttt\»v ™P8;; îzøð¡D¥˜ûààà¬Y³‚‚‚ ±°°zkY¿àáÇئX,¶²²Ú¹sçhõ û%{|¹wïÞ½{÷ð–ןÎ;§§§‡>æ;yò¤±±q?@$EDDLžšW__Ÿ‚‚BJJ —ËÍÌ̤Ñh}}}qqq„îYYY¹¹¹È˧,V~¥sÇˆŠŠÄÆÆâoµkÑøQSSÃd2ÇnÝ;ZL<€eË–õôôœ9s=‹ÐK—.mll¬ªªb±X111„Ʊ• =>½‰žø|¾¾¾>›ÍÆ·7sæL.—‹–¯\¹2gÎ4¿»wï"2cÆŒ³gÏ¢{°²´Ç“——?xð ŸÏ‹Å½½½###£¹»»»óx<äMõ„¹£ˆÅbWWW999|ßj×Wéi´ÖQËh1ñÊÊÊAÛÂç H~~>‹Å"4"cBŽžÙ½{·œœ\GGfa0øaOUUÍ]…0 ‡#GÚ A7nxxx(++[ZZ^ºti4÷ÞÞÞåË—£eü!Fß@^¥'¼;Jnn®ªªjyy9ƒÁ(,,Ÿ®!Dz:qâ„……ÅØ­c• câ466âÛB#ÔX__Ï`0ÒÑð°~<}ú499ÙÞÞ~ëÖ­˜QSS;(|>¿ªª µ£«]]Ý'Ož –;wîìÝ»w4/@ ‹OŸ>Íãñ\\\x<¡û/¿üâèèˆOlxxÐÚÚ*K/$ÜÛÚÚÂÂÂââ⬬¬¢££ƒƒƒŸ?>]“N A£G:;;Ý:ŠŒ1¥×ŽT@€ÆÆF]]Ý1Œ¯^\²ŒO###ööö{öìáñxS¦L9wîj óððxòäI}}ý‚ 6n܈?¢££Ùl6‡Ãáp8‹- ÍK 0Œ‚‚‚®®®´´4ƒ!Ý}||Z[[Ñ8è ›ÌÌÌ/^¸¹¹ÜPÔÛÛ‹Oxw±X¼lÙ2kkkt²b³Ùk×®‡®!p÷ ÊÊÊ\]]õõõ»»»ei}´˜éééX€ÿn|²µµ}øðauuµ‘‘ÑÎ; c‹„ù.))iöìÙèPÿóÏ?ëèè KžžžuëÖ©©©ihhõ÷÷ã»- ÃÃÃuuuUUU×®]ËçóQ»´‚ ùùùÓ§O§Óé3gÎ,**"trrrÂ'Ëd2§OŸ^TT„¶+‰/^¬¢¢‚HéIÂ=''GAAáÁƒ˜¥ººšJ¥¼í®!/ÿù_ÿú—··7~!1vëcĔоŒFÈÈȘ:uª¦¦æ¦M›¡ql1Hëé¥ÿÿÔÙÙÙÐÐß§ûÇÓÔÔddd$!eBãØ ïÓ™ššb– ò^õô!òÑGËb|]à|ysà|y»@=AÈê B&PO2z‚ ÁïƒÛÚÚÆ?ÈDD(J<®&Ðü•>Dv$ô¿·!¸~‚ Ô„L ž dõ!“ÿ@4Õ2lH¶IEND®B`‚XQilla-2.3.0/docs/simple-api/classNumeric__inherit__graph.png0000644000151400015140000002660211653571064021170 00000000000000‰PNG  IHDRÕ]Ú8`bKGDÿÿÿ ½§“ IDATxœíÝiXWßð3PYÂ" (ˆu­«Öª¸¿}]µ.¯h«â¥…*V}ªVV[«ÖkÕ§÷G«àÚ .(¤- ‚ àÂ"Y²ÌûaÚ4†°†ûwùaf2s柜äv2Ìœ0,Ëhrz´ h¡¿t è@þСO»ÐQëÖ­»víí*€BV­Z5dÈÚU€ö!A³äää?þøcÀ€´ iéŽ92oÞ<ÚU@£@þBµ E»Š–ŽaÚ%@cÁù_:¿t è@þÐü ù ¨hÓ¦ÍÀkXŸeÙéÓ§›˜˜4Y…åääL›6ÍÑÑÑÄĤ_¿~ǧRFFF.ohÉ¿ÐP7nÜÈÍÍÍÍ͋Ů®®¾¾¾5 ª—““søðáÔÔÔ¦¬PM~~~ïÞ½ŒŒD"Ñ­[·¦Nêçç÷Ë/¿4¼åÌÌL ‹†·-®ÿ…†²´´´¶¶&„X[[oÚ´ÉÊÊêÅ‹B¡PãÊeee„‡&-ñMkÖ¬:tèÞ½{¹Ùnݺååå}ýõ×£Fj`Ë …"??¿ÁBKã_Ð&CCC333nV*•[YY …Âàà`©TêééIáòZã ÜWòØØX‡_ýµê „†a>ìîîÞ¾}ûM›6Bd2Ùš5k,--gΜYTTT]û„cÇŽ-Y²Dµì5kÖìÛ·›.**š5k–………]PPPyy¹êYÕéªeÔúìäryxxx—.]LMMxóæÍÆéh&XM¼½½½½½k]’˜˜XRRRRRòôéÓO?ýtöìÙÊGÃÂÂ&OžüèÑ#±XܧOŸ+V¤§§«¾ëª[a̘1—.]’H$UWàv:eÊ”ÂÂÂ={öBòóóÃÃÃ=<<Äbqrrrÿþýƒ‚‚ªk¿°°RPPPÝ3ò÷÷>|øƒÄbq÷îÝ×®]«Z³êtÕ2j}v›7o …ÑÑÑ999gÏžµµµ­õ3H‰Dµv4GÈ_Ьîù«ÊÄÄ$55Uù¨››[nn.7}ñâÅ^½z©%Tu+ˆÅâêVàvzùòe–e+++ !ééé]»vŽŽæVKMMUNWݼ  €RXX¨ñéTVV ‚””n6::ÚÅÅ¥†üU+£Ög×¥K—üQ¹Â¿-ÎÿBC¥§§»¸¸B^¿~½zõê9sæÄÅÅqeeeÙØØ(×Tž—Pªn77·šWàŽ ¸ÙììlWWWnÚÝÝÝÝݽºÍÛµkgee•ššúþûï+—ß¾}ûÓO?½zõjAA\.wvvæ–»¸¸yòd^^ÞùóçW¯^]Çø© Ïu@sR÷ó¿ÊC<–eåryÛ¶m>|ÈÍÏž=»]»v:t(--U;CZÔvÊM———ÙÚÚš™™ùùù)OïjÜœeÙ¬¬¬)S¦ØÚÚššš¾÷Þ{§NRî±  `ÆŒ:t°±±YºtiYY˲ëׯ777wvv>yò$Q9ÿ«V†T*4h‰‰Iu{—Édááá...ÆÆÆ àŽÇk}…qþ—¯¿?šøøøB0þ/u ÈD"®;€gpþ€ä/È_:¿t è@þÐü ù @òøìæÍLÚ%T ãŸAµ®]»6bÄÚUÔ_e¥á“'ö;? ]€fÈ_ÐŒû)‡fíñcÓ²²6mÚX¶n-£]Kýy{{ÛÛÛÓ®ÆÞòô\ÿèQþ²e£‚‚FÓ®@œÿ~JMÍyô(ŸräÈmÚµh†ü~:v쎀òøqAbâ#Úåh€üR(X‘è¶T*'„èë Nœ¸K»" ¿ÀC7ofüõ#2™üèÑ;r¹‚nIU!‡Ž¿«¯ÿÏ{»  4.W¡ÎAþßH¥ò'îÊdÿðêë ŽO X€FÈ_à›«Wÿ”H*T—ÈdòS§’*+›ñUÀÀKÈ_à›èè€Q[øúuùåËP© :È_à•ÒÒŠsçÄUÿÚ¦§§wìNA€nAþ¯ÄĤr—©‘Ë.¤”–VT}€ä/ðÊñã ÕÝQ_Y)»xñ~Ó–Pä/ðGqqÙåËÖ0¤Éñã¸tÆßþ¨¨åå½RÎÆÄ¤~ñEt\Ü*å@ÏήÒ4Àø“À­ZéwêÔA9kiiJQ] Spþ€ä/È_:¿t è@þÐü ù @ò€ä/È_:¿t è@þÐü ù @ò€ä/È_:¿t è@þÐü ù @ò€ä/È_:¿t è@þÐü ù @‡>íÔeffÆÄÄ4¼””bBÈîÝ»Þ!$ @+í(1,ËÒ®à QQQ¾¾¾ oGO¯•@`&•>oxS„|R@ëpþtÛ`ryye峆·#‰h¿ÀOÈ_:¿t è@þÐü ù @òš+†a222hWPÈ_hö233-,,hWðÖ¿Ðì)Šüü|ÚU¼5ä/4{žžž„kkknV*•[YY …Âàà`©TJa&""ÂÝÝÝÒÒ244ôàÁƒNNNfff_|ñÍÒ¡eCþB³OÉËËãf·lÙòðáÃ;wîÄÆÆ^ºtiõêÕÜò˜˜˜[·n…†††„„œ9sF,‡‡‡¯_¿ÇÎ@ òøfÿþýÛ¶m³··çwÂÂÂΟ?Ï-6559s&!dÅŠ¦¦¦³gÏ&„Ò,Z0Œ? |“••ecc£œ533ã&LMM !jÓ´àøøÆÂÂ"==º¬°°;; ƒ¿À‰„›˜4iRHHHvv¶X,=zôöíÛéPä/4{ŽŽŽƒ RžsX¿~½©©iïÞ½‡ Ö³gϰ°0ºåT硹bÿþA }}ýëׯ+—›ššFDDDDDh\¹†i€&†ã_:¿t è@þÐü ù @ò€ä/ðÙË—Ú%T ÷_€ŽÚ½{w[(/—Ÿ9“7eJǶ“ÐÀ4Bþ‚Žš?~[hÓÆÝÌlxLLËVh¥$íÂùÐ9>>>¬6Œ»ˆaôº¢•Öh¿*ÀCÈ_à§ü|ÉÍ›„0ÇŽáìè(ä/ðÓ‰w aaããäå½¢]€È_à§#Gn+,!D `NJ¤]€È_à¡ììüää§ÜI[¹\qäÈmÚh€ü:yòž@ÀpÓ,Kîßš™ù‚nIU!‡"#oÊd å¬àĉ»ëÐù |óûï9YY/U—H¥rœ‚„ü¾9~ü®ú;;;?%å)•zªƒü^aY6*ê¶TªP[ŽS ƒ¿À+ YÏŸW]΂à®HÐÈ_à•ãÇï4>ôâEÉ­[™M\@ ¿Àr¹âÔ©»r9kh¨_õ!äôi܈:㟽^°`¨r6--ïôé¤Ï>¥\Ò®1º4c0°ðÕ©S‰ ÈÉÙB»Ípþ€ä/È_:¿t è@þÐü ù @ò€ä/È_:¿t è@þÐü ù @ò€ä/È_:¿t è@þÐü ù @ò€ä/È_:¿t è@þÐü ù @ò€}Ú@3ãããsäÈÚUÔ‰EëÖn ÃÐ.¤®D"‘í* é á­yzz.[¶ŒvuH»€:Aò¶@È_xköööÞÞÞ´«höpþ€ä/È_:¿t è@þB#Z·nÃ0¡¡¡ÔQ“‘‘QÃuÁ‘‘‘Œ&‰‰‰Z¬ù …eÙÈÈH‘H¤ÝF233-,,R›¹¹ùòåË«{tüøñ¹¹¹¹¹¹7nÜ „äþÍÃã!;Pƒë¡±$''ÿþûï.\1bDZZZ—.]´ÕˆB¡ÈÏÏoHm5P·iÓ¦M›6„‰DB±¶¶nȾªƒã_h,‘‘‘C† ñòòrssS=zeæðáÃîîîíÛ·ß´i!$00pîܹܣ‰ÄÈÈèÞ½{54âééITb±¨¨hÖ¬YvvvAAAåååÜ^"""ÜÝÝ---CCC<èäädfföÅ_•ó2™lÍš5–––3gÎ,**ªái¬“kêäÉ“]»v …„©Tlee% ƒƒƒ¥R©¶^Xààmx{{{{{׺šB¡prrÚµk˲+W®ôððP>D™2eJaaáž={!ùùùW¯^íСƒT*eYöСC …¢†FÒÓÓUߺþþþÇðàX,îÞ½ûÚµk¹½øùùïÝ»—âããS\\¼k×.BÈË—/•-„‡‡{xxˆÅâäääþýû©> µi¬“[gäÈ‘iiiñññ...\aaa“'O~ôè‘X,îÓ§ÏŠ+j~Å!"‘¨Öøù o§Žù¯¯¯ÿòåK–e!ÉÉÉÜC„Ë—/³,[YYIIOO—ÉdÖÖÖ±±±,ËŽ;644´æFTc±²²R ¤¤¤p³ÑÑÑ...Ü^îÞ½«Ü‹êtzzº²…®]»FGGsÛ¦¦¦*§9jù«±Nn±XÌ­#‰¸ÜÜÜrss¹…/^ìÕ«Wͯò·Âù_h‘‘‘2™Lõ¯d"‘¨{÷îÜ´­­-!ÄÀÀ€›“&MŠŽŽîÑ£GLL w”Zk#œgÏžÉårgggnÖÅÅåÉ“'Ü´©©©r/ªÓª²³³]]]¹iwwwww÷žTuuB”¸¹¹qdeeÙØØ(W033«¡eh™pþ´O.—‹D¢Í›7—ümÙ²eÜÁ·‚žžúÏÛÛûøñãQQQƒ ²³³«K#+++@™™ÉÍ>xð cÇŽu/ÕÖÖ6++‹›NLLܰaCÍëW­“ÃBÒÒÒ¸ÿ],,,ÒÓӹÜÂÂÂøøøºW-ò´ïúõëÏŸ?÷÷÷7ùÛ´iÓÒÓÓk¸~vðàÁ2™ìË/¿œ1cFá.N000ðõõ |øðaJJʪU«üýýë^êŒ3V®\™’’’’’²hÑ¢ìììš×¯Z'gÉ’%·oßþ׿þ5}útBȤI“BBB²³³ÅbñèÑ£·oß^÷ª …@þ‚öEFF>\(*—ôéÓÇÙÙ¹† ¹¯öÅÅÅ“'O®µGGÇAƒ)¿ÝoÛ¶ÍÖÖ¶_¿~#GŽ9rdHHHÝK 9rä¨Q£ äààÀ]Qƒªurüýý½¼¼ÆŽ;zôh®€õë×›ššöîÝ{ذa={ö «{UÐB0jßæjÆ ¥õ–W®\™••uøða­·¬]jufdd¸ºº6üsÄ0 ~ÿ¢¥Áß߀¾òòòœœœˆˆˆŸþ™v-5i.uBsó@ßÍ›7ß}÷Ý9sæ|øá‡´k©‰Æ:Û¶m;þ|zEA3†ã_ oÈ!´«¨Æ:…BáÎ;©ÔÍŽè@þÐü ù @òøL¡Àåí »¿À[r¹bÛ¶XÚUT ןÁ[;räH ?ž¦; íÚµ³dÉHBp º÷ÃÛ‰‹‹Sð¨ã"#ÄÅ=[¸°[—.æ´k©OOO{{{ÚU@ÓAþ?I¥r•I…¯oÿ-[¦Ò.@œÿ~ŠM--­ „œ>}¯¼¿½ºù üÀò^V&M¥]€È_à¡’’ò_~I‘Ë„€9v,vE ‡”áK‘ɱ±©ÅÅåtK¨ ù í ÅINNNJJòððhìµiSèäT(“5ö~!äÊ•+óæÍkŠ= 5kÖЮB›®\¹B»h~pþ€ä/È_:¿t è@þ‚Ž:tèÚµkU¯OúôéСCoÝ>€ä/讫W¯^¾|¹Évgbbâçç×d»@þ‚îú裾ýöÛ‚‚‚¦Ù™™Y@@@Óì € A—y{{;88|óÍ7jwÉ«ž(P:tè¹sç>þøã &üç?ÿ¹p႟Ÿß¸qã"""¸d2ÙÎ;'Nœ8qâÄ;wÊd2nó»wïúúúž?žkJ.—ïß¿ß××w„ 7n”H$Mø¤¡Aþ‚îÒÓÓ[±bEBBÂ/¿üRÇM~øá‡€€€={öÄÅÅíÛ·ï“O>9xð`qq1!äèÑ£¹¹¹»víúæ›oîÞ½»ÿ~n«¨¨¨+V¸ººr³G½víÚÆ·lÙòøñãC‡5Ƴ@þ‚N³³³ øþûïŸ?^—õ}}}ŒŒFŽI™6mš‘‘ÑèÑ£ !%%%„sçÎ-Y²D(vîÜyþüù·nÝâ¶ èÝ»wëÖ­¹Ù³gÏΙ3§sçÎNNNË—/o‚¡* eÂø ë&NœxíÚµððð%K–T}TíÔ„‘‘!D___mš“——7yòd嬱±17áàà ÚȳgÏììì¸éN:uêÔI+O@ òtÃ0Ë—/Ÿ3gΙ3gT—Ëår@ðòå˺7eff¶eË–Ž;B$‰ò/{ªMéСC^^ž““!$###>>~úôé }Uàü4666Ÿ|òITT7kbbB¹páÂëׯ£££ëÞÎàÁƒ÷ìÙóìÙ³ÌÌÌÏ?ÿüĉW9räÞ½{>|øðáÃï¾ûîÙ³g  U!¡yøè£úöíËM›™™Í;wÇŽóæÍãNïÖÑܹsŒŒæÍ›·téRggçùóçk\Íßß¿_¿~ÁÁÁ‹/¶²²ªn5€Âï_@SóññyñâÏÆÿ:t¨H$òññ¡]4'8þ ù @ò€ä/È_:¿t è@þÐü>ûã|Ú%T ãï@“’É••zÉÉO-úJ¡0Ë  C¹Ü°U«BcãaBA ë¬\9nÑ"¯F*àØ±;ÜÞ?.HL|¤ÝÆ--MOZâàÐA_¿Ú'(èz·Òî®O¿ÐX½d2͘b櫯¦,\8¼‘v­P°"ÑmîPT__pâÄ]­ï‚; vph_]›š¶š5kÖ÷ |‚ü…FQ^.ýí· 3}}õ÷ÃÐÐ)³f l¼½ß¼™YPðׯËdò£GïÈåÚ¿DÁÂÂäøñÅvvíª>G@oĈî­[h}§À'È_в¢¢×[¶\è×ïËuëNõìi¯zÌ0D `¾ÿ~úŒï7j ÇßUÍÄ‚‚Ò¸¸±#KKÓcÇZ[›©·nmpìØ/¯ðS§î)ø7h†ü­ÉÈxx¸gÏÕÞX²dDRÒ—ûöÍéÙÓA Ð#„0 £§ÇlÛ6cÒ¤¾Z†T*?qâ®jîëë ŽOh¤ÝÙØ˜Ÿ8(š*___oáÂaqq«Þ}×qÑ¢C¬ß»÷Ze¥Ö®ÞÀõg  Ù[·^ŒMíÜÙrñb/Õ¿¼9“4þ†! C¾ûο±Ã—“:sæ^BÞxc·¾¡acÝp”™ùb„­¯^•I¥rccÃ;wÖ˜™B?.ؽûêÁƒ7„BÓ€€gÎ|¿ñj€fÇ¿P,Ë^¼xüø­}ômAdÿþ¹W®¬ðöî§zÙØ1ïtìØŽa˜~ø¸ — ¨_ÐöúuùåË4ÞN;w¶ŒŽ^lbÒš2oÞ‡\øBìíÛ¯[7ñ×_ÿ5jÔ;ëן8ð«½{¯UTàXÁñ/ÔL¦8~|8ÎĤÕüùÎûR¸BþBí¸/Î?ÿߪ•Áœ9ƒfÏܾ½1í¢4(..{çÕRiµgWGŒð8pàÿš²¤š½|)Ùµëʾ}׸ž3gpÍÇÎÀ3È_¨ÉäîØqéäÉ{BaÛùó?œ6ÍS—Çôª¨åå½RÎÆÄ¤~ñEt\Ü*å@ÏήÒjÂ¥pDÄu##à Â-ò4»xñþ¶m±·o?ìÑÃ~áÂa£G¿Só`:èÔ©Ä ääl¡]HäçKvîü+…gÍð¡©ikÚEAãBþÂärEttÂÞ½×’“ŸŒáQó… :®yå/§  tÿþë»w_50Ìž=hÞ¼Û¶E óòþRQ!;xðFDÄõÇ &Nì3oÞwÞ±£]Tƒ4Çüåp)¼gÏU@0gR˜·¿@Š‹Ëöì¹úÓO7Š‹Ë¦OîÜÁŽŽ´‹Ò‚替î‚•Ò¶mÚE6![´¼¼WÛ·_‰nêééÍ›÷ÁÌ™--Mi¥5Í=9§ð5–egθxñp¤0o [¨ŒŒç[·^HaÝümTÇÊùüó±¼+š†j ûíE.…—.éädI»´–ù«ÓTÇÊùúk_•MI5…¿ûîâàÁÇë¹|ùØÎ‘ÂM ù«‹ÔÆÊÙ¿..)­ãRxòäwÏžM ûïl7®ççŸqvÒ.­¥@þêµ±rpI46==æ£z×óìÙ¤M›Î :n\Ïàà1..HáF‡üÕjcål󾧢ÆÊºTS8<ü܇†Ž×3(h´««íÒø ùKÆÊ¡LáØØÔM›Î 6|x·àà1Ý»w¤]?!iÂX9 ƒôô˜#<†ï›~nÔ¨o¼¼ºÆ=>Z‡ü¥#)éñæÍ¿ÄƦvêd±ví„I“ú¶ð±r@×p)ìåÕ-&&õë¯Ï½ÙË«ÛgŸêÑÞviüümjªcåàÂÐq óO óÍ/cÆlñòê¶lÙ¨ž=‘ÂZ€üm"+š/ÕÞ¼ù—1c6Ü%$d\¯^´KkÞ¿Nm¬œ¯¿öÅy4hޏ1Âãúõ´ÏŽ»eðà.+VŒëÝ)\OÈßF¤+§¤¤Ü߯Ê~<¸ËàÁ]®_O =;nÜ–Áƒ»,_>¶OŸN´ëj~¿B9VŽ@ ø¿ÿŒ±r€”)¼iÓÿç¾í×ÏéóÏÇèB»®æù«e+Z.…oÝÊ ?çí½½_?§àà1ƒ¹Ò®«y@þjr¬gg!ÆÊå½÷:9²ð̯֭¿>ïã³£_?§ààуu¡]—®{ã÷/233cbb(VÓL)ldä“ôôR¡°ÕÀí»w7ÓÓkê:wîìååÕÀFbbb233µR.HI)>zôé򵔫 Ñ&//¯ÎtåL£ö2˲ii’k×òŸ>-ss3õõµcpuå›ÞèAV…H$¢ZX3fbò^«VŽ ðööfÌÛÛ›âSÐ:=½V|DF$5‹^nÕÊÉØ¸Oì¨ÙQíA çXü"\sãã㣭¦¼½½£¢¢´Õh£¥ƒIô2-j=Øäß“€‚ü ù @ò€ä/È_:ꟿëÖ­c&44T¹$22’Ñ$11QuÖÑÑqæÌ™/^¼xÛ=fdd4äúµÍKKKƒƒƒ{öìijjÚ¯_¿¯¾úJ&“Uݪ!•7°`­´Ðxtä P——}]oõîe%­*‘H÷ìÙ£¶ÝÊ«¾’y{{këþ·:¶Cå  ñÕ¨õ%âS_-ÝÿÖ4½\ÝjµRÛ„Ç=XÏãßÈÈÈ!C†xyy¹¹¹Õã®e†a,XpöìYnV*•[YY …Âàà`©T*“ÉÖ¬Yãàà`ii9sæLî0ÕÃ{†a"""ÜÝÝ---CCC<èäädfföÅ_p+œ9s¦wïÞFFF666ªßž8‡Z½zµ@ðÏø8ÆÆÆÁÁÁ‡âöëààð믿¾m媛ÿøã\Á&LX¶l·IEEE»ví¸ªn.—ËÃÃûtébjj:pàÀ›7o¾íkÛ4´û(**š5k–………]PPPyy¹j_«}­;|ø°³³³¥¥å'Ÿ|òúõkÕf«¾ž}Ý ì媪v4ÑôQõôô$„X[[s[ñ¹U³¹ŽÇ¿ …ÂÉÉi×®],Ë®\¹ÒÃãÖÿH•ÿoß¾mnnÎM‡……Mž<ùÑ£Gb±¸OŸ>+V¬÷ðð‹ÅÉÉÉýû÷ Rk–âççW\\¼wï^BˆOqqñ®]»!/_¾,..644œ3gΓ'O:Dyþü¹róÂÂBBÈ‹/ÔÊþí·ß¬¬¬¸ÕÆŒséÒ%‰Dò¶•«nž˜˜HT¾Ä) –eOž­j=XŸü×××ùò%˲ „äädÕÞöãçææ–››ËM_¼x±W¯^]»vŽŽæ–¤¦¦rÓjù{÷î]–e+++Õ¦ÓÓÓ+**~ÿýw‰D"—˯^½Ê-¬5ãââ,,,¸ÕÄbqý*WÝ\¹ÇÒÒRccã[·n±,;uêÔê6ïÒ¥Ë?þ¨Ü×t0µû¨¬¬)))Üòèèh—òWÙ5"‘ÈÉÉIuͪ¯'Ïúº)ó·~½¬æôéÓÊÕ4vtÍU–wŸVRëø;µŠŒŒ”Édª'ÈE"Q÷îÝߪ‘ôôtgggn:++ËÆÆFù™™YEE…«ë_C8»»»»»kBÐÔÔ”b`` 6M144LKK›7ožD"éÝ»·Ú†æææÖÖÖ‰‰‰j6&&&öíÛ—›vss«_å7722?~üÑ£G»uëvúôé{÷îU·yeee¯^½”KzôèQ]i÷ ðìÙ3¹\®|I]\\žªU}=Ñ×õV¿^NOOwqyã'0222¸ ]óG•ðýÓúÖçår¹H$Ú¼y³ò+Ʋe˸D¯{#,ËþðÃãÆãf¹ÿÇ”ÿÝÅÇÇÛÚÚfeeq&&&nذᭊ,++óññ ¾{÷îŽ;ª®àïïÿå—_ªþý´´´4,,lôèÑܬ2Êß¶òê6÷óó;zôè©S§úöí«Lª›;::&%%)·ºÿþ[=ñ& õ7€•••@ PŽHûàÁƒŽ;rÓÜ5FOŸ>UÝ–;N!„¤¥¥uêôÆoŽiìôu=h¥—ÕhìèZ?ª„ß=¨zl\—ó—/_Ïž=S.¹sçùû Gãåu!W®\?~¼]QQ÷h``à”)S²²²’’’ú÷ï¿hÑ¢5kÖôèÑ#99999yàÀóæÍc«œP¾U§ †9wî\iiéçŸΕ§ºù«W¯ºví:dÈsçÎ¥¥¥EGG{xx 8°¼¼\­ø·­\ãg–e¹ù®®®ª_XªnþÝwß …Â'Näææž;wާ¹æa›öüCc¼¦M›6|øðÌÌÌäädÕ«Ws—mîÛ·ïÕ«W'N$*çFŒ‘žž~ëÖ-WW×7ªî«êëÉò«¯IS¨w/×|ýCÕŽ®á£ZRRÂmÅã|ëü?þÈ‘#U—( ggçåË—k|Å•{U²··÷÷÷WíÚâââÙ³g·k×®C‡¥¥¥åååAAA¶¶¶fff~~~………ìÛä/˲›7onß¾½½½ýŽ;üüü„B¡ZU‰ä³Ï>ëÞ½»‘‘‘‡‡Çúõë_¿~]µø·­¼ºeY6 ÀÄÄD"‘Ô°¹L& wqq1660`÷_tÍ=Â6mþ6Æ   `ÆŒ:t°±±YºtiYY˲ëׯ777wvv>yò¤jþFFF::: …ÂÏ>û¬¢¢Bu_U_On9oúºÉò·Þ½\sþjìèªU©T:hÐ e#|íÁ7~(**Ê××—mÀW  ‚½á#jk«h$ ÈD¢·^¦H­1þÈ_:¿t è@þÐü ù @ò€ ãïìÞ½»é뀆ÈÌÌäî}ÔJSxðzYGhÈßùóç7}Ð@ÚÊß„„¼x½¬#Üm @ÎÿÐü ù @ò€Žÿ_•AHæû6ÔIEND®B`‚XQilla-2.3.0/docs/simple-api/classModuleCache__inherit__graph.md50000644000151400015140000000004011653571063021623 000000000000006e7c0075c4e43a7518d21d8ac4e4067cXQilla-2.3.0/docs/simple-api/classATDoubleOrDerived.html0000644000151400015140000014323611653571064020013 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATDoubleOrDerived Class Reference

#include <ATDoubleOrDerived.hpp>

Inheritance diagram for ATDoubleOrDerived:

List of all members.

Public Types

typedef RefCountPointer< const
ATDoubleOrDerived
Ptr

Public Member Functions

virtual const XMLCh * getPrimitiveTypeName () const =0
virtual const XMLCh * getTypeURI () const =0
virtual const XMLCh * getTypeName () const =0
virtual const XMLCh * asString (const DynamicContext *context) const =0
virtual Numeric::Ptr promoteTypeIfApplicable (AnyAtomicType::AtomicObjectType typeIndex, const DynamicContext *context) const =0
virtual Numeric::Ptr add (const Numeric::Ptr &other, const DynamicContext *context) const =0
 Returns a Numeric object which is the sum of this and other.
virtual Numeric::Ptr subtract (const Numeric::Ptr &other, const DynamicContext *context) const =0
 Returns a Numeric object which is the difference of this and other.
virtual Numeric::Ptr multiply (const Numeric::Ptr &other, const DynamicContext *context) const =0
 Returns a Numeric object which is the product of this and other.
virtual Numeric::Ptr divide (const Numeric::Ptr &other, const DynamicContext *context) const =0
 Returns a Numeric object which is the quotient of this and other.
virtual Numeric::Ptr mod (const Numeric::Ptr &other, const DynamicContext *context) const =0
 Returns the arithmetic product of its operands as a Numeric.
virtual Numeric::Ptr floor (const DynamicContext *context) const =0
 Returns the floor of this Numeric.
virtual Numeric::Ptr ceiling (const DynamicContext *context) const =0
 Returns the ceiling of this Numeric.
virtual Numeric::Ptr round (const DynamicContext *context) const =0
 Rounds this Numeric.
virtual Numeric::Ptr roundHalfToEven (const Numeric::Ptr &precision, const DynamicContext *context) const =0
 Rounds this Numeric to the given precision, and rounds a half to even.
virtual Numeric::Ptr invert (const DynamicContext *context) const =0
 Returns the Additive inverse of this Numeric.
virtual Numeric::Ptr abs (const DynamicContext *context) const =0
 Returns the absolute value of this Numeric.
virtual Numeric::Ptr sqrt (const DynamicContext *context) const =0
 Returns the square root of this Numeric.
virtual Numeric::Ptr sin (const DynamicContext *context) const =0
 Returns the sinus of this Numeric.
virtual Numeric::Ptr cos (const DynamicContext *context) const =0
 Returns the cosinus of this Numeric.
virtual Numeric::Ptr tan (const DynamicContext *context) const =0
 Returns the tan of this Numeric.
virtual Numeric::Ptr asin (const DynamicContext *context) const =0
 Returns the asin of this Numeric.
virtual Numeric::Ptr acos (const DynamicContext *context) const =0
 Returns the acos of this Numeric.
virtual Numeric::Ptr atan (const DynamicContext *context) const =0
 Returns the atan of this Numeric.
virtual Numeric::Ptr log (const DynamicContext *context) const =0
 Returns the atan of this Numeric.
virtual Numeric::Ptr exp (const DynamicContext *context) const =0
 Returns the exp of this Numeric.
virtual bool isNaN () const =0
virtual bool isInfinite () const =0
virtual bool isZero () const =0
 Does this Numeric have value 0?
virtual bool isPositive () const =0
 Is this Numeric positive?
virtual
AnyAtomicType::AtomicObjectType 
getPrimitiveTypeIndex () const =0
virtual const MAPM & asMAPM () const =0
virtual State getState () const =0

Member Typedef Documentation


Member Function Documentation

virtual Numeric::Ptr ATDoubleOrDerived::abs ( const DynamicContext context) const [pure virtual]

Returns the absolute value of this Numeric.

Implements Numeric.

virtual Numeric::Ptr ATDoubleOrDerived::acos ( const DynamicContext context) const [pure virtual]

Returns the acos of this Numeric.

Implements Numeric.

virtual Numeric::Ptr ATDoubleOrDerived::add ( const Numeric::Ptr other,
const DynamicContext context 
) const [pure virtual]

Returns a Numeric object which is the sum of this and other.

Implements Numeric.

virtual Numeric::Ptr ATDoubleOrDerived::asin ( const DynamicContext context) const [pure virtual]

Returns the asin of this Numeric.

Implements Numeric.

virtual const MAPM& ATDoubleOrDerived::asMAPM ( ) const [pure virtual]

Implements Numeric.

virtual const XMLCh* ATDoubleOrDerived::asString ( const DynamicContext context) const [pure virtual]

Implements Numeric.

virtual Numeric::Ptr ATDoubleOrDerived::atan ( const DynamicContext context) const [pure virtual]

Returns the atan of this Numeric.

Implements Numeric.

virtual Numeric::Ptr ATDoubleOrDerived::ceiling ( const DynamicContext context) const [pure virtual]

Returns the ceiling of this Numeric.

Implements Numeric.

virtual Numeric::Ptr ATDoubleOrDerived::cos ( const DynamicContext context) const [pure virtual]

Returns the cosinus of this Numeric.

Implements Numeric.

virtual Numeric::Ptr ATDoubleOrDerived::divide ( const Numeric::Ptr other,
const DynamicContext context 
) const [pure virtual]

Returns a Numeric object which is the quotient of this and other.

Implements Numeric.

virtual Numeric::Ptr ATDoubleOrDerived::exp ( const DynamicContext context) const [pure virtual]

Returns the exp of this Numeric.

Implements Numeric.

virtual Numeric::Ptr ATDoubleOrDerived::floor ( const DynamicContext context) const [pure virtual]

Returns the floor of this Numeric.

Implements Numeric.

virtual AnyAtomicType::AtomicObjectType ATDoubleOrDerived::getPrimitiveTypeIndex ( ) const [pure virtual]

Implements Numeric.

virtual const XMLCh* ATDoubleOrDerived::getPrimitiveTypeName ( ) const [pure virtual]

Implements Numeric.

virtual State ATDoubleOrDerived::getState ( ) const [pure virtual]

Implements Numeric.

virtual const XMLCh* ATDoubleOrDerived::getTypeName ( ) const [pure virtual]

Implements Numeric.

virtual const XMLCh* ATDoubleOrDerived::getTypeURI ( ) const [pure virtual]

Implements Numeric.

virtual Numeric::Ptr ATDoubleOrDerived::invert ( const DynamicContext context) const [pure virtual]

Returns the Additive inverse of this Numeric.

Implements Numeric.

virtual bool ATDoubleOrDerived::isInfinite ( ) const [pure virtual]

Implements Numeric.

virtual bool ATDoubleOrDerived::isNaN ( ) const [pure virtual]

Implements Numeric.

virtual bool ATDoubleOrDerived::isPositive ( ) const [pure virtual]

Is this Numeric positive?

Implements Numeric.

virtual bool ATDoubleOrDerived::isZero ( ) const [pure virtual]

Does this Numeric have value 0?

Implements Numeric.

virtual Numeric::Ptr ATDoubleOrDerived::log ( const DynamicContext context) const [pure virtual]

Returns the atan of this Numeric.

Implements Numeric.

virtual Numeric::Ptr ATDoubleOrDerived::mod ( const Numeric::Ptr other,
const DynamicContext context 
) const [pure virtual]

Returns the arithmetic product of its operands as a Numeric.

Implements Numeric.

virtual Numeric::Ptr ATDoubleOrDerived::multiply ( const Numeric::Ptr other,
const DynamicContext context 
) const [pure virtual]

Returns a Numeric object which is the product of this and other.

Implements Numeric.

virtual Numeric::Ptr ATDoubleOrDerived::promoteTypeIfApplicable ( AnyAtomicType::AtomicObjectType  typeIndex,
const DynamicContext context 
) const [pure virtual]

Implements Numeric.

virtual Numeric::Ptr ATDoubleOrDerived::round ( const DynamicContext context) const [pure virtual]

Rounds this Numeric.

Implements Numeric.

virtual Numeric::Ptr ATDoubleOrDerived::roundHalfToEven ( const Numeric::Ptr precision,
const DynamicContext context 
) const [pure virtual]

Rounds this Numeric to the given precision, and rounds a half to even.

Implements Numeric.

virtual Numeric::Ptr ATDoubleOrDerived::sin ( const DynamicContext context) const [pure virtual]

Returns the sinus of this Numeric.

Implements Numeric.

virtual Numeric::Ptr ATDoubleOrDerived::sqrt ( const DynamicContext context) const [pure virtual]

Returns the square root of this Numeric.

Implements Numeric.

virtual Numeric::Ptr ATDoubleOrDerived::subtract ( const Numeric::Ptr other,
const DynamicContext context 
) const [pure virtual]

Returns a Numeric object which is the difference of this and other.

Implements Numeric.

virtual Numeric::Ptr ATDoubleOrDerived::tan ( const DynamicContext context) const [pure virtual]

Returns the tan of this Numeric.

Implements Numeric.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classATBooleanOrDerived__inherit__graph.md50000644000151400015140000000004011653571063023062 0000000000000042a87ac888c043d7be187e2fb91df6e6XQilla-2.3.0/docs/simple-api/FunctionRef_8hpp_source.html0000644000151400015140000002432311653571063020255 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

FunctionRef.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _XQILLAFUNCTIONREF_HPP
00021 #define _XQILLAFUNCTIONREF_HPP
00022 
00023 #include <vector>
00024 
00025 #include <xqilla/items/Item.hpp>
00026 #include <xqilla/items/ATQNameOrDerived.hpp>
00027 #include <xqilla/runtime/Result.hpp>
00028 
00029 class DynamicContext;
00030 class LocationInfo;
00031 class FunctionSignature;
00032 
00033 typedef std::vector<Result> VectorOfResults;
00034 
00035 class XQILLA_API FunctionRef : public Item
00036 {
00037 public:
00038   typedef RefCountPointer<const FunctionRef> Ptr;
00039 
00040   virtual bool isNode() const { return false; }
00041   virtual bool isAtomicValue() const { return false; }
00042   virtual bool isFunction() const { return true; }
00043 
00044   virtual const XMLCh *getTypeURI() const { return 0; }
00045   virtual const XMLCh *getTypeName() const { return 0; }
00046 
00047   virtual ATQNameOrDerived::Ptr getName(const DynamicContext *context) const = 0;
00048   virtual size_t getNumArgs() const = 0;
00049   virtual const FunctionSignature *getSignature() const = 0;
00050   virtual Result execute(const VectorOfResults &args, DynamicContext *context, const LocationInfo *location) const = 0;
00051   virtual FunctionRef::Ptr partialApply(const Result &arg, unsigned int argNum, DynamicContext *context, const LocationInfo *location) const = 0;
00052 
00053 protected:
00054   FunctionRef() {}
00055 };
00056 #endif
XQilla-2.3.0/docs/simple-api/MemBufInputSource_8hpp__incl.map0000644000151400015140000000003511653571064020777 00000000000000 XQilla-2.3.0/docs/simple-api/MemBufInputSource_8hpp__incl.md50000644000151400015140000000004011653571063020702 0000000000000096972c44b8ea1c5a9a23bfe7d9cdf816XQilla-2.3.0/docs/simple-api/ATTimeOrDerived_8hpp__dep__incl.png0000644000151400015140000001246011653571064021355 00000000000000‰PNG  IHDR£Ãaú6bKGDÿÿÿ ½§“åIDATxœíiPSW€ODVˆ cëˆuкµ.€ˆhÁ â ¶ V­TÛ¯­8.ý!"(¢*ʮՑ%2Ž ¢©F\ ‘5,"&‚l÷ûqû¥iÂ’pƒžóŒ?N^ÎyÏ{ï“{îÍMLH†ºA Ó°€LÃ2 ÆÊ***~øáC•‚Ð/%%%ÊÿeúÅ‹¥¥¥ .$´"„¾éìì|òä‰JÐX½ßÁƒ ©1Rܸqã»ï¾S ¢ó4, Ó°€LÃ2 È4,h¸ö$/^<þü–-[Ö¯_GÊËËÿûßÿª÷ ÉÌÌT:tèСCL&sØ5z{{/\¸P]]ÝÞÞîââ2oÞ¼uëÖ‘Éd•n‹-R´ííí§OŸmmm=˜)Z[[7lØ K3,Z´(##ÃÉÉiØi‡Ä0McV^^N£Ñ˜L¦Âôœ9srssííí111x`ff¶víZõ8†a!!!ºTÿöíÛèèh›¨¨(GGdž††sçÎÝ»wïøñãFFªËUbb¢ƒƒƒ\.oiiÉÍÍŒŒLKK³°°p ë ÓtCCCssóÑ£Gccc¹\.N˜šššššD"`üøñŠþæææã‘‘‘:.^¼hmm}âÄ Ü+NŸ9sfxxøÕ«W—-[¦ÒÙÚÚŸšJ¥zyy}ùå—999áááÎbee¥c£až§ËË˧OŸ>cÆ —òòòá%immU,ª‹-ºzõê¦M›>ûì³K—.]¿~=$$dÙ²eiiix©Tšœœ¼jÕªU«V%''K¥R@IIÉÆ•_33³uëÖ•””àÉY,Vppð£GT¦&‘H+W®¬¬¬ì/¹òðk×®áu8p )) "‘HV¬XgP.—Ëûí·°°°¥K—ÆÄÄ<}úTã¸wï^hhèŠ+~ýõWŹuëVXXتU«Nž<)‘H4‡±·‡c_ºýüüóçÏ×ñD«àþýû§OŸŽŒŒ<{öì;wÎ;žž.¿ÿþ{{{{JJÊñãÇY,Öùóç…B!Çc0*y Fss3ÞÎÎÎÞ»wïäɓէ£Óémmmx[=¹Æá~~~øg7ª««MMMgΜ©qxnnnVVVdddzzzXXXrr²ÆM®ªª:{öìž={RSSñÍ>|ø§Ÿ~ªªªºté’–àŽégÏžuvvΟ?0þüÆÆÆ†††aäQ!88ØÜÜ|É’%€õë×›››º»»W¯^ݹs'FsuuŠŠº{÷nyH$’\.ÇÛ‘‘‘ÞÞÞfffÚ§î/¹Êð?þX üõ×_€²²²€€üÒO}xQQÑÖ­[çÍ›gkk;kÖ¬þ|“çΫØL@tt4N÷ððøâ‹/ïRh ‰áœ§ËËËe2Ù§Ÿ~ªˆ0™ÌI“& #•2ø¹ÜØØX¥ÓÑѱfÍÅñcÇZXXŒ?žÃá̘1C9‡Ã™2e Þvqqéo:.—ëèèØ_rÃMMMçÌ™SQQñÁܾ}ûìÙ³ý —J¥Ê‹«««Ælmm$I9ˆ_ô೿|ùRKpH Ù´\.g2™Û¶m[¾|99þ<“É W©X¿XYYýüóÏøk|Ýøûû_¼xÑÛÛ[qªîííÍÌÌTìwåçŠ2†ùúújI®q¸ŸŸßÉ“' Æ”)S{_}ø·ß~ûüùs777¼Ccc£Æ24î1.—‹?3ZZZð§BÁ!1äÕ›ÍfóùüÅ‹ù?þþþ\.—Ãá cúÁ3oÞ¼³gϾxñ¢¾¾~Ïž=€M›6ñùü]»vݽ{—ËåÞ¼y3::šJ¥*¯7 ^¿~Íãñººº>|ßÞÞ¤%¹FfΜ) /\¸°téR-µ­\¹òôéÓ·nÝâñxwïÞU\W^¹r¥§§Gû–&&&¶¶¶>{ö,55uñâÅZ‚CbÈÇtyy¹ò=‡É“';::2™L>úbóæÍ‰‰‰[¶l!‘HóçÏŠŠ˜››Ÿ9sæüùóÉÉÉmmm~~~ E=CLL Þ ÑhžžžgΜQ¬ÒêÉ»ºº4–all¼`Á‚²²² h©B¡H$’Ó§O¿zõÊÍÍ->>~Û¶m€cÇŽyyy)æÕˆ¿¿ÿîÝ»{{{ýüüBCCñµZ%8ŒHRþpvvvpp°¾®¥CEã­´aÜ¡ÃߟVù|7ºï Èô(bìØ±+V¬Lp Ó£kkë]»v &8 iX@¦a™†diX€Ñô³g¯ ]‚Ðp7466–ø:C*5ãóÝí캄Ïç«ÿeÚÙÙ900¨z CK‹eg§¥£ã33©¡kATÞÉ*÷½aÀ×÷‡ææW»vý'66Àе \çé'OÚš›_rrª ] ÑÀe:7÷…B´´ðËØøŸíåñzîÜynÀzÓ‰¬ €%•þs“óóï°$‚ÅtEÅ_BaŸrD*•=‹ßçWÕÊÀb:/ï>™¬ú‘Û·o{™Ìg©‡x 0ÝÓÓwõ*[ýúËÈÈ(7– Ó¥¥OðW*Èdòë×kzzúÔÿôþ…éüüûýÝó‹¥%%‰-Ç0¼ÿ¦“ù—–ÛûùùPÜByÿßáèë“vt¼Q<,-}ŸwçÎE„L6¢Óm Q¡ ÿ{NÞLM'Nü翬ÙÙY”#ðþ¯ÞdiX@¦a™†diX@¦a™†diX@¦a™†diX@¦a™†diX@¦a™†diX@¦a™†diX@¦a™†diX@¦aAÿSþÌ™3º'!Œšx×jvuuõ÷÷×5 ¦3úØâ022¥Ph†®bhê®I?ß~‘••¥ø…_„~Ñ׎EçiX@¦a™†diX@¦a Ó$‰Ãáè1›:úJ>¼zô¸u#ÑÇt}}=•JÕ=ÏíÛ·Ûÿ ñ5¼[ý½¡r¹üÕ+=ü€¨Ý„  [ûÑÇ´¯¯/@!I"‘ÄÅÅÙÛÛÓh´¸¸8‰D ‘Hiiivvv ééé“&M²²²Š×žüòåËÞÞÞæææ ©TzðàA;;»7¾~ýZ½†×¯_þùçT*•N§ÇÆÆööör8‰TVVæâââãã³yóf¼§P(477ÿóÏ?Õ§¾~ý:ƒÁ°±±9|ø0ÏPXX8uêT¶cÇŽ¾¾>A}ìÔÁ¡—ûÞYYYö©««Ã0¬®®NyÒ#GެY³¦¹¹™ÍfûøøìÝ»ï"RSSAAA %%ÐÕÕ…wxðàA·‰D ˜˜˜DDDp¹ÜŒŒ @ggçÑ£G§M›Æf³=z4kÖ¬ØØXõBCCýüüž?Îf³?üðÃC‡á>ùä“òòò?þøÃÖÖV"‘`–‘‘1mÚ4¹\®¾uË—/¹¹¹x‘x†%K–ÔÖÖVVV2 EZ•à€»700P/÷½ lÚÝݽ½½o—””xyyáY,†ab±X¥'Q¾÷õõ=}úT(Êd²ŠŠ ¼óÔ©SóòòðüOž<ÁÛÊ5ˆÅb2™\SSƒ?ÌËËc0x6›a˜T*0aBYY†aK—.MHHиu7nÜÀ0L&“áó*gÀ0,++K%­"8àîÕ—i¿wcc£ƒƒƒâ¡••Þ°´´P(•¶‚ºº:ƒ¡’­¶¶vË–-B¡ÐÛÛ455Mž<o{xxxxx¨ yñâ…L&sssÃ2 .—‹·ÝÝÝd2yõêÕyyyžžž¥¥¥øÒ¢Ž££#ÀÈè_gCÅÔîîƒ`à×ÓT*?L1 ãóù•••ÃN%‰‚‚‚âââX,VRRtttlllÄÛ<øñÇUFÙÛÛ“ÉäúúzüáóçÏœœð¶â¹˜ŸŸŸ=wî\:®qv/óðƒP[[‹?ú €aL …ÿ¾äêÕ«÷íÛ×ÔÔÄf³N:5ìœ}}}b±ØÄÄD$Wþ¡y€ËtNNµ\ŽÈdRQÑC—C(™njzõèQ+~U!“Ésrª ]¡@dº°ðO2ùïÏaxü¸µ¾þ¥aK"ˆLÿö[•T*W<¤PÈ,ÖC0°˜~ú´­±±K9"‘È ZÀa1ŸÏ¢PT7¶©éUMM«Aê!(Lc–]-‘ÈUâP-àP˜¾¿±³S Çpüu×{¦óóÿ¤PÈÿôòe÷Ý»õ×cÞÓ2™¼¨ˆ%“a&&ÆêÿÅÅPÜByÿ?1øúõÛ­[)ÖÖv?ܽû?ŠˆÍXCÔE4¤wë(Ý)*z°uë/mm?º¢yÿWo2 È4, Ó°€LÃ2 È4, Ó°€LÃ2 È4, Ó°€LÃ2 È4, Ó°€LÃ2 È4, Ó°€LÃ2 È4, Ó°€LÃ2 È4, Ó°€LÃ2 È4, Ó°€LCƒŽßhè- ÕÒr®¡«2ºÿž¤¾çÄ××w×®]ºç!–†.`éžD¦ß¹#BÐyiX@¦a™†dF—i‡C"‘46tLHÀp‰Äáp†=×H3ºL[[[ýõ×£9á»Ëè2M¥RFsÂw"L999ñù|@ffæ”)Szzzärybb¢‡‡‡¥¥åìÙ³™L&¾úiY-/_¾ìíímnnîàà Ñ_qq±§§§™™™««kzz:ø÷òK"‘ÒÒÒ<<<ìììÒÓÓ'Mšdee¯èYXX8uêT¶cÇŽ¾¾>åä‰$..ÎÞÞžF£ÅÅÅI$õ®_¿Î`0lll>Ü_Î')t¿ï=˜ß×ܸqã¦M›:::ìíí«ªª0 KII¡ÑhyyymmmW®\¡Ó逺º:¼$õ†@ 011‰ˆˆàr¹€ÎÎNå)„B¡©©irrr{{û¹s猅B¡b8†a€@šš  )))€®®.¼ç’%Kjkk+++ Æ¡C‡”‡9rdÍš5ÍÍÍl6ÛÇÇgïÞ½*ÛX¾|¹@ ÈÍÍ0§JPûÞú¸ïMi>ŸO§Ó===[5mÚ´ .(:üòË/ÚM÷õõ=}úT(Êd²ŠŠ ¼³ò<B¡;vŒÏçËåòîîn™L¦bšÅba&‹UÚuuuxO6›wÎÊÊb0ÊÃÝÝÝÛÛÛñvII‰———Ê6nܸa˜L&0§JPûÞÓ‹i‚ÎÓÖÖÖ‘‘‘?ŽŽŽÆ#õõõ^^^ŠžžžÚ3˜˜˜ÔÖÖ̘1ãÂ… Š8éÿØØØ0™ÌÊÊJ:¾`Á‚›7o©n¥¥%€B¡¨´Lž<o¸»»s¹\å?566:88às-^¼¸¡¡A½HGGG€Ê¼sj™h„ ÈtKKKbb¢¿¿ÿîÝ»ñˆ““ÓÇ?~¬=ƒH$ Š‹‹c±XIIIЏâ9+‰äryNNÇÛ¼yóŠ+x<ÞPëÄ8@mm-®M•JU¬"|>¿²²R}¸Æ‹ 9µL4BaZ.—GDDlß¾=33³´´´¸¸WXXØÑÑqíÚµ½{÷jOÒ××'‹MLLD"ÑÁƒÝÝÝÊH$Ò’%KrssX,¦P(æææC-uçΧººzÿþý6lPþÓêÕ«÷íÛ×ÔÔÄf³N:HMM}óf€ß¼Õ˜SËD#…Ž«ÿ`ÎÓ'Ožœ>}ºX,Æ0,??ßÁÁÇã‰Åâï¿ÿ~Ò¤I³gϾtéÐzžÆ0ìĉãÇwvvNJJ ¡Ñh*eee¹¹¹™˜˜¸»»ª J§võ6Þ355uâĉT*uûöí"‘Hy¸@ ·±±±µµŒŒìééÑ%§JPûïÐÙ€(ïSƒ0hÌ9Œ‰ôbztÝ9AŒÈôߌ7.**Š€œ#1Ñ`ÐõW”ð8eggë©„H$RVV–ŽŸ&CÇ4, Ó°€LÃ2 È4, Ó° ‡ÿÑ““£ËgµÄ ëëé;wîó¦äøúú:;;뒺ߟ†tž†diX@¦aጠ!(„-žIEND®B`‚XQilla-2.3.0/docs/simple-api/classQueryPathTreeFilter__inherit__graph.png0000644000151400015140000001040611653571064023471 00000000000000‰PNG  IHDR•ÃÄòbKGDÿÿÿ ½§“»IDATxœí{P×ÇÀ†X$H¤ˆ–X¥W :uJEÇN-Ŷ\Š@ëØQJÐNogj ÊÜVì@‹ú‡R*:-8mÈ£\ZA•‡-Œ—ŽÉ•wÓbH$›dïÇ»ya—älÏgøcsröw¾ÙO²'l’]’$Y\3+°?´ÁþÐûC-U²²²i)õ÷¡¶¶vöEèñ×ÕÕõÛo¿EFFÒRõôöö677ÓRŠ€ÈÈH‰DBW5v#‘Hi)…ç?´ÁþÐûCìm°?´™S.–`b¹\n»e¦ÈårX„‰À³¶ÿ¦É7–.]JoM…B±nݺÑÑQzË"Á\ûóóóó÷÷§·¦Á`£·&*8Åü·mÛ¶ýû÷ÃåÉÉIŸêêjAb±xÑ¢E@,pqq)..^¹r%ŸÏÏÉɼôÒK€i>-~üñLjˆ.—pìØ1Øh^S¯×?~|ùòåóçÏ_¿~}KK‹IólpïzåÊ•àààk׮ѳi¦„¤ƒ„„„„„„)»~ùå—‡OB’ä÷ßl0H’¬¨¨ $‚$É/¿ü2>>þþýûkÖ¬9tè,òöÛo+•Ê‚‚ÀØØ˜L&3~ æ£d2I’ããã{öìéëë+**üþûïkž:uJ ”•• TWWÂ"Ô@æÙà½[¶l©¯¯W©T6¶Ã?ü@×–ŸkŸ@^^^­­­$I&%%eddÀþ+V¬„˵µµááá°HCCI’Z­nSsæ@“““ÝÝÝ*•J¯×_½z•j7¯¹|ùòï¾ûŽªYXXhâÏ<¼·³³sÊí@£¿¹žÿd2Yhh¨I#—Ëݺu«T* «ªªêèè€íwïÞ  ºy{{ÃøjpwwŸæ(Ô›F;w¦ªTªˆˆãULjööö†‡‡S÷®^½ÚdkÙV¬Xa-8ÅüHNN–J¥•••k×® …°qáÂ…ðõA’¤R©¤ŽÙ»ºÚ[£ÑìØ±C,···çååßeR3$$ä×_¥nÞ¾}Û¤”µl6žUL0×þFFF†ž¶GGG+•ÊÌÌÌ={öPãââ222îÝ»×ÙÙsæÌ•U*Õ”£ONNjµZF“™™ €³£9{÷î‹ÅCCC?ýôÓáÇM:Ì(ƒÐ²žåü‰D<Ïxæß½{·¯¯¯H$š˜˜€E¨'>\&"**ŠÇã7šŒKµœ:uŠÏç?óÌ3yyyÉÉÉÀbMNwüøñÐÐP//¯ÈÈHøò2žÿ̳™LÃ6 qþs!éøþàŽ;øó¿i?ÿ£eË;Ëü‡±ìm°?´ÁþÐûCìm°?´ÁþІåþZZŽŽÀ,´}þÐØØøÚk¯ÑU.Šgƒ‚z=<´ŽòÃÃÃt•¢ÇüÜÙÐh8ÍSZ­ÿ¢E–R; º>f¢çø§srüxMnîå%K|›š>ut¦`óüWRrpïÞXw÷€£³0kýutÜïëSÜÝÝJKÛ‡)X민¼Ãq„¾¤ä¦ÁÀÎi‚þôzƒTzS§ÓÛ##[[Ùù;ý55É•J5uÓÝÝíÒ¥væavú++kçpþzh¡¯¨h'½#1 ýiµºÊÊ_t:ƒqãøødcãGEbú«¯ïÖh&M9—²2¾ e¡¿²²6ó/ˆêt†ÿüçWµÚ¹¤Í¶ùS©&/_¾­×Ìï"}]é×pQ‡mþjkokµ:k÷²ï](Ûü•—[5d0 Ýããš¹ÌÃ4l;~Ý×§4ÞyFFfgeÅmÞFµøû{{zÎõ¯v˜ƒ=äcÒâç7É_‡„™ضÿü»ý¡ ö‡6ØÚ`hƒý¡ ö‡6ØÚ`hƒý¡ ö‡6ØÚ`hƒý¡ ö‡6ØÚ`hƒý¡ ö‡6ØÚ`hƒý¡ ö‡6ØÚ`hƒý¡ ö‡6ØÚ`hƒý¡ ö‡6ØÚ0ûûͺº:…ÂÁ'®ª««ju`‘HÄ`uZ®¢d„„£Oww««§c30º…ßNçºdÌ¡Õëõ5:¼Î£àùm°?´ÁþÐûCìm°?´q .–˜›Qär9‹Z@ g9Ö7–.]JoM…B±nݺÑÑQ£p8œƒÚ^Ë™q~~~þþþôÖ4 cccSŽrìØ1Ûk93N±ÿ´Æ¶mÛöïß—'''}||ª««AˆÅâE‹ ±XLÀÅÅ¥¸¸xåÊ•|>?''üÿªL¶Ÿæ»M“µÌÇ‚«\¹r%88øÚµkô?ì™à,þ&&&TOHNN.--%IðóÏ?s¹Ü×_››ÛÓÓsëÖ­+W®Ô××>|)//ojjÊÉÉ9xðàƒš››CCCÖFÑé,œéÕd-kc£°Í_K‹bdä¡Å»8·K—ض e›¿ªª€‡ÇüÏ` ++;ôzƒ£3Ò‰³üþ.þñ ÿû-êæÉ“?ÇÆ¾°|ù_?!ûóO ŸïåˆhŒÀæÏçç¿÷φ;:S°mÿùwûCìm°?´ÁþÐûCìm°?´ÁþÐûCìm°?´ÁþÐûCìm°?´ÁþÐûCìm°?´ÁþÐûCìm°?´ÁþÐûCìm°?´ÁþÐûCìm°?´ÁþÇød ðz=lbþü(w÷…ŽNA'&ד²ðû÷ÌÌ̹Å$¯::m”””˜´Xð·iÓ¦¹È‚™9W¯^5iÁóÚ`hƒý¡ ö‡6ØÚØyþ¬G¶¶¶ „„„DEE%%%¹¹Ñ|™“W^y…Zær¹«W¯þ裌¯æm{Ý¢¢¢Å‹S-õõõYYYæ= Ì/]>ÓxEEE;wîlhhèïï‡ vTž>öøS«Õûöí[°`H$Z¼xqOOÏùóçÛÚÚNœ8Aû¼OŸ>@’¤R©>þâÅ‹€>øGõ¿uëÖ»ï¾[\\lãá'éêê2j1¿íjÆ-&ÁloŠ®®.Q-l“õ¨Tª˜OB¡°§§ÇÚZR©tppð›o¾9yòd{{û·ß~ Û%É¡C‡RRR®_¿Å\¿~= €ªÿèÑ#F£V«¾úê«çž{nþüùjµúðáÃB¡°¨¨hß¾}üñG^^ ¬¬Œ´¥¥¥   ==ýܹsS¾`¡Ph1ªµü0|&˜³½)„B¡íœ&ØùþÅÅÅŤ…$I“_MMMnn.ŸÏiiiùùùo¼ñ@$-[¶Ì`0p8œÎÎΈˆˆºººèèhªþûï¿ÿ8(‡óüóÏöÙgóçÏ OOO@˜˜˜0411‘ËåFEE>|h{žƒI,FMMMµØhrôèÑàà`Û›Îö¦°½®93öÇãñø|¾\._³fq»\.7‰n|fÑ¡¡¡øøxꦗ×ã3¨ÂU\]]7lØÐØØ¸lÙ²¶¶¶O>ù„êiòòqh§¯¯ïĉÆÆÖ××XzªY„ o1ªµüæñúûûmd{SÌ{^›7o¾páBxx8|Áeee½üòË/^|çw`½^ïææ6::J­âíí›› *Ü?žó8À¦M›²³³CBBV­Zåççg;Àäää‘#GŽ9IDMMÅnÓ4g’ÄbTkùí`ÊM1#ìyÿòÞ{ï=xðàÀ7oÞìëë ÈÎÎÖjµo¾ù&Ç\¾|Y­VOE6l(((V(éééååå&5W¯^­×ë £££§ @„N§ãp8Z­ÎjµÞß[΋Q§Ì?%T°Ù—2Æ\.÷ìÙ³B¡ð믿NIIihhعsç’%KŽ=êíí’’’——ßR«¤¤¤p¹ÜÔÔÔ?þøÙgŸMKK3ÍáêºqãFµZ½qãÆ)ðx¼}ûöeggïÚµËßßÿÕW_MOO÷÷÷_µj•ñ®É>,F2¿ L‚ͦ”9OœÿZ"‘$&&ÚwÈ@§Óݹs',,Ìî(çÎúôÓOí®Àz>ÿüs???‰DBµÐv¸„ÃáØ-O«ÕÖÔÔ¼õÖ[S÷Æáǯ»»»ÓÒÒ¶lÙÎÚÅ3„S\ÿá…^¨¬¬tt $qŠ×Æn°?´ÁþÐûCìm°?´±ðÿƒÅ¯u`œ„„„ã›O?ëíímnnžóH˜IÝdùõÿXžÿÐûCìm°?´ùÒUòGhÒãIEND®B`‚XQilla-2.3.0/docs/simple-api/ItemFactory_8hpp__dep__incl.md50000644000151400015140000000004011653571063020543 0000000000000006aeab6e721feb2336863e9170f69d68XQilla-2.3.0/docs/simple-api/inherit_graph_44.map0000644000151400015140000000023411653571064016453 00000000000000 XQilla-2.3.0/docs/simple-api/classAutoNodeSetOrderingReset-members.html0000644000151400015140000000607211653571063023062 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

AutoNodeSetOrderingReset Member List

This is the complete list of members for AutoNodeSetOrderingReset, including all inherited members.
AutoNodeSetOrderingReset(StaticContext *context, StaticContext::NodeSetOrdering ordering=StaticContext::ORDERING_UNORDERED)AutoNodeSetOrderingReset [inline]
context_AutoNodeSetOrderingReset [protected]
ordering_AutoNodeSetOrderingReset [protected]
~AutoNodeSetOrderingReset()AutoNodeSetOrderingReset [inline]
XQilla-2.3.0/docs/simple-api/inherit_graph_11.map0000644000151400015140000000022311653571064016443 00000000000000 XQilla-2.3.0/docs/simple-api/ATGMonthDayOrDerived_8hpp__incl.map0000644000151400015140000000003511653571064021306 00000000000000 XQilla-2.3.0/docs/simple-api/StaticType_8hpp.html0000644000151400015140000001603511653571064016546 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

StaticType.hpp File Reference

#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/items/AnyAtomicType.hpp>
#include <xqilla/framework/XPath2MemoryManager.hpp>
#include <xercesc/framework/XMLBuffer.hpp>
#include <xercesc/util/XMemory.hpp>
Include dependency graph for StaticType.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  StaticType
 Class that represents the static type of an expression. More...
struct  StaticType::TypeMatch

Functions

XQILLA_API
StaticType::StaticTypeFlags 
operator| (StaticType::StaticTypeFlags a, StaticType::StaticTypeFlags b)
XQILLA_API
StaticType::StaticTypeFlags 
operator& (StaticType::StaticTypeFlags a, StaticType::StaticTypeFlags b)

Function Documentation

XQilla-2.3.0/docs/simple-api/classxercesc_1_1DOMNode-members.html0000644000151400015140000004466111653571063021443 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

xercesc::DOMNode Member List

This is the complete list of members for xercesc::DOMNode, including all inherited members.
appendChild(DOMNode *newChild)=0xercesc::DOMNode [pure virtual]
ATTRIBUTE_NODE enum valuexercesc::DOMNode
CDATA_SECTION_NODE enum valuexercesc::DOMNode
cloneNode(bool deep) const =0xercesc::DOMNode [pure virtual]
COMMENT_NODE enum valuexercesc::DOMNode
compareDocumentPosition(const DOMNode *other) const =0xercesc::DOMNode [pure virtual]
DOCUMENT_FRAGMENT_NODE enum valuexercesc::DOMNode
DOCUMENT_NODE enum valuexercesc::DOMNode
DOCUMENT_POSITION_CONTAINED_BY enum valuexercesc::DOMNode
DOCUMENT_POSITION_CONTAINS enum valuexercesc::DOMNode
DOCUMENT_POSITION_DISCONNECTED enum valuexercesc::DOMNode
DOCUMENT_POSITION_FOLLOWING enum valuexercesc::DOMNode
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC enum valuexercesc::DOMNode
DOCUMENT_POSITION_PRECEDING enum valuexercesc::DOMNode
DOCUMENT_TYPE_NODE enum valuexercesc::DOMNode
DocumentPosition enum namexercesc::DOMNode
DOMNode()xercesc::DOMNode [inline, protected]
DOMNode(const DOMNode &)xercesc::DOMNode [inline, protected]
ELEMENT_NODE enum valuexercesc::DOMNode
ENTITY_NODE enum valuexercesc::DOMNode
ENTITY_REFERENCE_NODE enum valuexercesc::DOMNode
getAttributes() const =0xercesc::DOMNode [pure virtual]
getBaseURI() const =0xercesc::DOMNode [pure virtual]
getChildNodes() const =0xercesc::DOMNode [pure virtual]
getFeature(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNode [pure virtual]
getFirstChild() const =0xercesc::DOMNode [pure virtual]
getLastChild() const =0xercesc::DOMNode [pure virtual]
getLocalName() const =0xercesc::DOMNode [pure virtual]
getNamespaceURI() const =0xercesc::DOMNode [pure virtual]
getNextSibling() const =0xercesc::DOMNode [pure virtual]
getNodeName() const =0xercesc::DOMNode [pure virtual]
getNodeType() const =0xercesc::DOMNode [pure virtual]
getNodeValue() const =0xercesc::DOMNode [pure virtual]
getOwnerDocument() const =0xercesc::DOMNode [pure virtual]
getParentNode() const =0xercesc::DOMNode [pure virtual]
getPrefix() const =0xercesc::DOMNode [pure virtual]
getPreviousSibling() const =0xercesc::DOMNode [pure virtual]
getTextContent() const =0xercesc::DOMNode [pure virtual]
getUserData(const XMLCh *key) const =0xercesc::DOMNode [pure virtual]
hasAttributes() const =0xercesc::DOMNode [pure virtual]
hasChildNodes() const =0xercesc::DOMNode [pure virtual]
insertBefore(DOMNode *newChild, DOMNode *refChild)=0xercesc::DOMNode [pure virtual]
isDefaultNamespace(const XMLCh *namespaceURI) const =0xercesc::DOMNode [pure virtual]
isEqualNode(const DOMNode *arg) const =0xercesc::DOMNode [pure virtual]
isSameNode(const DOMNode *other) const =0xercesc::DOMNode [pure virtual]
isSupported(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNode [pure virtual]
lookupNamespaceURI(const XMLCh *prefix) const =0xercesc::DOMNode [pure virtual]
lookupPrefix(const XMLCh *namespaceURI) const =0xercesc::DOMNode [pure virtual]
NodeType enum namexercesc::DOMNode
normalize()=0xercesc::DOMNode [pure virtual]
NOTATION_NODE enum valuexercesc::DOMNode
PROCESSING_INSTRUCTION_NODE enum valuexercesc::DOMNode
release()=0xercesc::DOMNode [pure virtual]
removeChild(DOMNode *oldChild)=0xercesc::DOMNode [pure virtual]
replaceChild(DOMNode *newChild, DOMNode *oldChild)=0xercesc::DOMNode [pure virtual]
setNodeValue(const XMLCh *nodeValue)=0xercesc::DOMNode [pure virtual]
setPrefix(const XMLCh *prefix)=0xercesc::DOMNode [pure virtual]
setTextContent(const XMLCh *textContent)=0xercesc::DOMNode [pure virtual]
setUserData(const XMLCh *key, void *data, DOMUserDataHandler *handler)=0xercesc::DOMNode [pure virtual]
TEXT_NODE enum valuexercesc::DOMNode
~DOMNode()xercesc::DOMNode [inline, virtual]
XQilla-2.3.0/docs/simple-api/ATGDayOrDerived_8hpp__dep__incl.md50000644000151400015140000000004011653571063021172 000000000000007b71a3455d9fa3d677dc180d2a1f4d1fXQilla-2.3.0/docs/simple-api/classATDurationOrDerived__inherit__graph.map0000644000151400015140000000060611653571064023371 00000000000000 XQilla-2.3.0/docs/simple-api/ATGDayOrDerived_8hpp__incl.map0000644000151400015140000000003511653571064020300 00000000000000 XQilla-2.3.0/docs/simple-api/inherit_graph_39.map0000644000151400015140000000030011653571064016451 00000000000000 XQilla-2.3.0/docs/simple-api/classATDateOrDerived.html0000644000151400015140000010113411653571064017445 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATDateOrDerived Class Reference

#include <ATDateOrDerived.hpp>

Inheritance diagram for ATDateOrDerived:

List of all members.

Public Types

typedef RefCountPointer< const
ATDateOrDerived
Ptr

Public Member Functions

virtual const XMLCh * getPrimitiveTypeName () const =0
virtual const XMLCh * getTypeURI () const =0
virtual const XMLCh * getTypeName () const =0
virtual const XMLCh * asString (const DynamicContext *context) const =0
virtual bool equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
virtual int compare (const ATDateOrDerived::Ptr &other, const DynamicContext *context) const =0
 Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.
virtual ATDecimalOrDerived::Ptr getYears (const DynamicContext *context) const =0
 Returns an integer representing the year component of this object.
virtual ATDecimalOrDerived::Ptr getMonths (const DynamicContext *context) const =0
 Returns an integer representing the month component of this object.
virtual ATDecimalOrDerived::Ptr getDays (const DynamicContext *context) const =0
 Returns an integer representing the day component of this object.
virtual const Timezone::PtrgetTimezone () const =0
 Returns a timezone object representing the timezone component of this object.
virtual bool hasTimezone () const =0
 Returns true if the timezone is defined for this object, false otherwise.
virtual ATDateOrDerived::Ptr setTimezone (const Timezone::Ptr &timezone, const DynamicContext *context) const =0
 Setter for timezone.
virtual ATDateOrDerived::Ptr addTimezone (const ATDurationOrDerived::Ptr &timezone, const DynamicContext *context) const =0
 Returns an ATDateOrDerived with a timezone added to it.
virtual ATDateOrDerived::Ptr addYearMonthDuration (const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext *context) const =0
 Returns a date with the given yearMonthDuration added to it.
virtual ATDateOrDerived::Ptr addDayTimeDuration (const ATDurationOrDerived::Ptr &dayTime, const DynamicContext *context) const =0
 Returns a date with the given dayTimeDuration added to it.
virtual ATDateOrDerived::Ptr subtractYearMonthDuration (const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext *context) const =0
 Returns a date with the given yearMonthDuration subtracted from it.
virtual ATDateOrDerived::Ptr subtractDayTimeDuration (const ATDurationOrDerived::Ptr &dayTime, const DynamicContext *context) const =0
 Returns a date with the given dayTimeDuration subtracted from it.
virtual ATDurationOrDerived::Ptr subtractDate (const ATDateOrDerived::Ptr &date, const DynamicContext *context) const =0
 Returns a dayTimeDuration corresponding to the difference between this and the given ATDateOrDerived*.
virtual
AnyAtomicType::AtomicObjectType 
getPrimitiveTypeIndex () const =0

Member Typedef Documentation


Member Function Documentation

virtual ATDateOrDerived::Ptr ATDateOrDerived::addDayTimeDuration ( const ATDurationOrDerived::Ptr dayTime,
const DynamicContext context 
) const [pure virtual]

Returns a date with the given dayTimeDuration added to it.

virtual ATDateOrDerived::Ptr ATDateOrDerived::addTimezone ( const ATDurationOrDerived::Ptr timezone,
const DynamicContext context 
) const [pure virtual]

Returns an ATDateOrDerived with a timezone added to it.

virtual ATDateOrDerived::Ptr ATDateOrDerived::addYearMonthDuration ( const ATDurationOrDerived::Ptr yearMonth,
const DynamicContext context 
) const [pure virtual]

Returns a date with the given yearMonthDuration added to it.

virtual const XMLCh* ATDateOrDerived::asString ( const DynamicContext context) const [pure virtual]

Implements AnyAtomicType.

virtual int ATDateOrDerived::compare ( const ATDateOrDerived::Ptr other,
const DynamicContext context 
) const [pure virtual]

Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise.

virtual bool ATDateOrDerived::equals ( const AnyAtomicType::Ptr target,
const DynamicContext context 
) const [pure virtual]

Implements AnyAtomicType.

virtual ATDecimalOrDerived::Ptr ATDateOrDerived::getDays ( const DynamicContext context) const [pure virtual]

Returns an integer representing the day component of this object.

virtual ATDecimalOrDerived::Ptr ATDateOrDerived::getMonths ( const DynamicContext context) const [pure virtual]

Returns an integer representing the month component of this object.

virtual AnyAtomicType::AtomicObjectType ATDateOrDerived::getPrimitiveTypeIndex ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATDateOrDerived::getPrimitiveTypeName ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const Timezone::Ptr& ATDateOrDerived::getTimezone ( ) const [pure virtual]

Returns a timezone object representing the timezone component of this object.

virtual const XMLCh* ATDateOrDerived::getTypeName ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATDateOrDerived::getTypeURI ( ) const [pure virtual]

Implements AnyAtomicType.

virtual ATDecimalOrDerived::Ptr ATDateOrDerived::getYears ( const DynamicContext context) const [pure virtual]

Returns an integer representing the year component of this object.

virtual bool ATDateOrDerived::hasTimezone ( ) const [pure virtual]

Returns true if the timezone is defined for this object, false otherwise.

Implements DateOrTimeType.

virtual ATDateOrDerived::Ptr ATDateOrDerived::setTimezone ( const Timezone::Ptr timezone,
const DynamicContext context 
) const [pure virtual]

Setter for timezone.

Overrides the current timezone. (Not to be confused with addTimezone().

virtual ATDurationOrDerived::Ptr ATDateOrDerived::subtractDate ( const ATDateOrDerived::Ptr date,
const DynamicContext context 
) const [pure virtual]

Returns a dayTimeDuration corresponding to the difference between this and the given ATDateOrDerived*.

virtual ATDateOrDerived::Ptr ATDateOrDerived::subtractDayTimeDuration ( const ATDurationOrDerived::Ptr dayTime,
const DynamicContext context 
) const [pure virtual]

Returns a date with the given dayTimeDuration subtracted from it.

virtual ATDateOrDerived::Ptr ATDateOrDerived::subtractYearMonthDuration ( const ATDurationOrDerived::Ptr yearMonth,
const DynamicContext context 
) const [pure virtual]

Returns a date with the given yearMonthDuration subtracted from it.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classATGYearOrDerived__inherit__graph.md50000644000151400015140000000004011653571063022512 00000000000000e047462d9f8f302d50113066b99c7979XQilla-2.3.0/docs/simple-api/classDateOrTimeType-members.html0000644000151400015140000004176311653571063021040 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

DateOrTimeType Member List

This is the complete list of members for DateOrTimeType, including all inherited members.
_ref_countReferenceCounted [protected]
ANY_SIMPLE_TYPE enum valueAnyAtomicType
ANY_URI enum valueAnyAtomicType
asString(const DynamicContext *context) const =0AnyAtomicType [pure virtual]
AtomicObjectType enum nameAnyAtomicType
BASE_64_BINARY enum valueAnyAtomicType
BOOLEAN enum valueAnyAtomicType
castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [protected, virtual]
castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
DATE enum valueAnyAtomicType
DATE_TIME enum valueAnyAtomicType
DAY_TIME_DURATION enum valueAnyAtomicType
DECIMAL enum valueAnyAtomicType
decrementRefCount() const ReferenceCounted [inline, virtual]
DOUBLE enum valueAnyAtomicType
DURATION enum valueAnyAtomicType
equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0AnyAtomicType [pure virtual]
fgDT_ANYATOMICTYPEAnyAtomicType [static]
FLOAT enum valueAnyAtomicType
G_DAY enum valueAnyAtomicType
G_MONTH enum valueAnyAtomicType
G_MONTH_DAY enum valueAnyAtomicType
G_YEAR enum valueAnyAtomicType
G_YEAR_MONTH enum valueAnyAtomicType
generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicType [virtual]
getInterface(const XMLCh *name) const =0Item [pure virtual]
getPrimitiveTypeIndex() const =0AnyAtomicType [pure virtual]
getPrimitiveTypeName() const =0AnyAtomicType [pure virtual]
getPrimitiveTypeURI() const AnyAtomicType [virtual]
getRefCount() const ReferenceCounted [inline]
getTypeName() const =0AnyAtomicType [pure virtual]
getTypeURI() const =0AnyAtomicType [pure virtual]
gXQillaItem [static]
hasTimezone() const =0DateOrTimeType [pure virtual]
HEX_BINARY enum valueAnyAtomicType
incrementRefCount() const ReferenceCounted [inline]
isAtomicValue() const AnyAtomicType [virtual]
isDateOrTimeTypeValue() const DateOrTimeType [virtual]
isFunction() const AnyAtomicType [virtual]
isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicType [virtual]
isNode() const AnyAtomicType [virtual]
isNumericValue() const AnyAtomicType [virtual]
isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
Item()Item [inline, protected]
NOTATION enum valueAnyAtomicType
NumAtomicObjectTypes enum valueAnyAtomicType
Ptr typedefDateOrTimeType
QNAME enum valueAnyAtomicType
ReferenceCounted()ReferenceCounted [inline]
STRING enum valueAnyAtomicType
TIME enum valueAnyAtomicType
typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicType [virtual]
UNTYPED_ATOMIC enum valueAnyAtomicType
YEAR_MONTH_DURATION enum valueAnyAtomicType
~ReferenceCounted()ReferenceCounted [inline, virtual]
XQilla-2.3.0/docs/simple-api/inherit_graph_9.md50000644000151400015140000000004011653571063016276 00000000000000c38a3c037a27fcb3b9f39f26baa2a27bXQilla-2.3.0/docs/simple-api/functions_0x62.html0000644000151400015140000001406311653571063016303 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- b -

XQilla-2.3.0/docs/simple-api/XMLFormatter_8hpp__incl.png0000644000151400015140000001022411653571064017757 00000000000000‰PNG  IHDRÍubGò&bKGDÿÿÿ ½§“IIDATxœíyTS×öÇw A&%a4€¸Ä P…ªø~ÚURÄ…ÓS ŠÈ¤¢ >ÑÕ Jk­¸–­Z§U¡Šeh_qXu Pmé VëLY§.d"@C0@òûã¼_~×$$>I»?»ïÙgïsî7眛›¥T*A^3fCò·u†Ðu†Ðu†Ð€M3XEEÅöíÛiFDú#00pË–-ÔÂQÕYkkëùó烃ƒiE4¹{÷.Ç£‘ªÎ[·n¥a²mÛ6Êq†Ðu†Ðu†Ðu†Ðu†ÐÀètöàÁƒòòr•åòåË¡¡¡õõõ  cccÕžýoÚ´I(677“ ¤ÀD¨×Þ“?‡ÖŽ˜.Cð¾†n¼¼¼bcc³²²¦L™bkkÛÕÕµÿþ„„OOORáÉ“'uuu€vvvþöÛoz›ÍÎÎæóù¯1ïÿC$­^½º¤¤D­ü7Çèæ3ˆ‹‹³³³;|ø0|ùå—K–,Q `ÎvW®\™8q¢Þ6¹\®ý«¼†Ä …X,Ö,ÿÍ1F±Ù쌌ŒÒÒÒ£G–––fdd°Ùÿ?ï———«–ÎŠŠŠ   Á’H$;wî\°`Á¢E‹:$“Éš››…BaUUUTTÔíÛ·…BaiiiBBÂÂ… ;VVV=wîÜ‚‚ÒÂÕ«WW­ZyìØ1X³f DDD¨• ··7'''<<<<<<''§··W-œZz•••111óçÏ?zô(Ê—/_Ž‹‹ ÏÊÊ’ËåZƒ׊1ê Æ•——?fÌæ© &H¥Òºº:èêꪪªzûí·õ6ØÝÝ-eÐ×ןþù³gÏrrrvíÚuóæÍãÇ“Ê'NœÈÈÈðòò€_ýõСCIII¹¹¹W¯^ÍÏÏOII),,‹Å/_¾üøã½¼¼Ž9’’’’››ÛÑÑqðàA(**fN:%‰>¼wïÞªªª¯¾úJ3“ë×¯çæænܸ1//O5/ïØ±ãÓO?½~ý:QvF£ÂHu¦T*ÍÌÌ=z¤vÊÌÌ,00,W¯^õóó1b„ÞW®\9‡Á7z{{/^¼˜ššÊçó===—/_~îÜ9R9))iÒ¤I–––emm=kÖ,Xºt©µµuXXtvvZXXäçç¯[·ÎÁÁÁÙÙºººtäPZZº~ýzgggOOÏäää7nh†cBBOŸ>„#Æ””www__ß•+WªÖj4*Œî>€pþüù[·níß¿?===((HmÆ Þ½{wbb¢á‹æ‘#GÜÜܘ–gÏž) WWWrèææöìÙ3RöððPU³¶¶²p3ˤÐÔÔ´gÏ©Tª9iòäÉ“ÈÈHÕ¡f8&Àb±˜Fwww•—*a­F£ÂuöâÅ‹¬¬¬Õ«Wûûû'$$ìÝ»WmÒòóó{ùòåíÛ·+++7lØ0¸(<ÏÌÌL$=ZZZÉ)ævP===™™™™™™o½õ–\./--Õ]ßÎÎnÿþýD­­Mw85…šššÈ­÷ãljû3F·n*•ʽ{÷zzzÎ;/^Ìãñ8À¬C–Î}ûöùúúr¹\µ:::ÚôˆÍf …ˆD¢†††üüü™3g(U¹\ÞÛÛËf³e2Ùl½|ù’œ’J¥ªjªòŒ3rss[[[ëëë7nÜX\\¬Öà?ü {å€ìììæææßÿ=///44T‡Ñ¨0ºù¬¬¬¬²²²  €¼šÙlvzzúš5kUÕ„BaIIIxx¸f k×®e^ºt©¿XëׯÏÎÎ^½z5‡Ãyçwbbb´èØÚÚ¦¤¤lß¾ÝÊÊjéÒ¥!!!7n_ýo@&F÷ÿ›Fˆ@àR\\Å|=vvJ™gQdzÁuS?ZþBØló%Kþ‡r>¦êL?£G;øû»iû³rèëS,\8™zF¦êÌ Þ}÷ææêcefÆ íꊋ¦~Pg±`ÁdÍ&‹õî»ÿ’|LÔ™A8:ÚN*ÐœÒæÍ{sHò19Pg†²hÑæ”fnn6c†—½½Í¦dB Î eÎæ|¦P(##§ a>¦êÌP†· yƒÍþψYX˜Ïží?´)™¨³ P(€Í6 `mm1Ô™ ¨³:ÞÒ’}}}‘‘CŽ):ƱÃÂüX,°²²öêtL‰WžoJ¥Òööö¡JÅ$ ÇýêýâÅÓ¡ÎŨ±²²âñxªÃWtÖÙÙYSSC=%SÂÎN1|¸ÅoØâ@éÆÉÉ©_‚ƒƒé¥c‚¤¦*׬yÇÌLû“uîÞ½«fÁýÙ€INF‘ ÔÙ€áṗ:Óu†Ðu†Ðu†Ðu†ÐÀäuöèÑ£åË—ë­V[[Ëb±˜5w;;»yóæ544hÖ×R©ŒµµµdO4`±Xµµµº-Ð×ÚøkÅäuV\\¼páB­§êëëI™ËånÚ´I·û•+WD"QKKKEE…B¡ˆÕ¢¥¥åèÑ£÷îÝL7ˆ!]3*Lþ{ueee'OžÔzJ¡P¼xñ‚”wîÜ©ÛÝÉÉiäÈ‘ÀçósssÝÝÝÅb±îèÌR©<<<ÕaH׌ŠÏgßÿ½››y züøñqãÆuuu€\.OOOwqqqvvNOO—Ëåd¿pႇ‡GyyùÖ­[=<<œœœâãã;::Hkš^pæÌKKKOOÏÂÂBèííÕêþüùs+++æ’¡*O›6 ˆt´®)*wÍnš››“¸LãÙ³g'MšdmmÍçóÉ¥e†`– ££cÙ²eŽŽŽîîîiiiÝÝÝÌùå—_X,VAA¯¯¯““ÓÎ; ÇŒcgg·e˽WAo×4ÇP“²²2@ÀãñvìØ¡j§¤¤ÄÛÛÛÙÙyݺu===ZzÓÓ‚’Akkë¥K—”úˆOHHxò䉋‹Ëõë׉q×®]‘‘‘=ª®®ž|ø0<þœ¤ôàÁæÈ«,º»¦u Õ."Ì›7O,Ÿ>}šD$î³fͪ©©¹víš@ På¬fÔ«;wîܹsç•pÌuÖÞÞîîîîïïÏ éãã#‰Hùܹs'N$)VWW+•Joo"röÞ½{ª²¦W[[‡ÃÙ³gO{{»B¡èìììëëëÏ=22²­­M9X©Ü•¯~—‰Ãá©]Ñžžžû÷ïK$’¾¾¾ŠŠ rÉûÓ™L&377WuQQ‘@ `‰XUUE*«•IèAëLëª]D(//W*•}}}̾¨ÒûöÛo5s&F-šxM æ>€Ëå&%%ݽ{7%%Ee|øð!ŸÏ'÷k¡¡¡äf ||| ±±ÑËË‹X|}}ÃÃÃûóâñx—.]ºvíš»»{PPÐÏ?ÿlff¦Õ]"‘Èåræ‡JÃ~1DÓ]uQe2Yyy¹@ `Ö·°°¨©© øúë¯u7ÞÚÚÚ××7vìXr(ššš˜B>|8p8µ²Ö¾Ø/Ð:†šÕ\]]@í”jœ}||T9k5ˆÁèìñãÇÙÙÙ3gÎܰaƒÊèè診Nííí×®]#v2p®®®>$–[·n}òÉ'ýyI¥R…Bqòäɶ¶¶ÄÄÄùóç·µµiuÿ駟˜‰‘íTss³!½Ðt×T*]¼xqzzzUUÕÁƒuWvqq177¯¯¯'‡uuunnn¤¬¦$xxx0ßz¸ÿ>›Í5j”!©jŽ¡f5­o‚ jjjˆû3ˆëL¡P¬X±"55õøñãçÏŸ?sæ ±GDD|ðÁÕÕÕaaa_|ñÓ+..nóæÍd:]»vmccc^,kÖ¬Y§OŸ‹Å2™ŒÃáX[[ku/))Y°`i‡ËåÀ7ß|#‹8À MvBš0Ý ¡§§G&“YXXH¥Ò­[·@ggg!8NTTÔºuëîܹóÑGÅÄÄ‹°lÙ²ÔÔÔ³gÏ644\¸p!666>>~ذaª ýuMë@^^Þü¡;èúõëkkkoÞ¼ùᇪÞÙÑjÌEÔýYVVÖ›o¾)“É”Jåwß}ÇçóÉG,/_¾œÇã988$%%uuu1÷ÝÝÝiii®®®vvvÑÑÑíííÄ®éE6cÇŽµ°°ðññ)))Ñê.“ÉæÌ™ÃLlûöí\.wìØ±%%%$®\.Ÿ>}º­­­Rc£é›!³ûöí³··5jÔÁƒ£££µ† ´µµÅÅÅ988ðùü÷Þ{O*•ªU`FÔZ–ËåŸ}ö™··7¹mܼy3Ý]#4ÇPoDâž——7zôhGGÇÔÔTUÎjFQ*µíÏ^ùý³§OŸÞ»w?çø÷¤¶¶ÖËËKùê.P«Q/äsŽãÇWYLþyb Îÿ0bĈäädCŒƒ×Mä¿®›ÈЀ:Ch€:Ch€:Ch€:Ch åsŽ---ôó@þJtww[ZZ2-Zt†¿üyÔt†ÿ»ƒÐ÷g Pg Pg Pg þøÐàí–wz‚IEND®B`‚XQilla-2.3.0/docs/simple-api/Node_8hpp__dep__incl.md50000644000151400015140000000004011653571063017202 0000000000000022d69db748bef9f55adeba41a91a7e40XQilla-2.3.0/docs/simple-api/ATHexBinaryOrDerived_8hpp__incl.png0000644000151400015140000002331311653571064021360 00000000000000‰PNG  IHDR£uõ$bKGDÿÿÿ ½§“ IDATxœíÝyX×Úð“…M¢¬Y\DeÕZ«€È" ˆk-®µVÐ^µ_©­è­Þê­KïsÝpתU+.€*BÐ*nˆ,.Q1Á°B’ùþ8÷ÎÉ$D„l¼¿¿Â$çÌ;3/ó&3É94‚ ô]Ó  A¥ôTz@ŸA¥ôSÓÐW®\Ù¸q£¦£º!33SÓ! IPéNª©©¹|ùòرc5Ðjµµµ>ÔthTz ÃÖ­[§é€VËÉÉùûßÿ®é(Ð0¸Oè3¨ô€>ƒJè3¨ô€>ƒJè3øî=пüòËáÇ-Z4kÖ,¼$;;{Æ ò¯Ü¿ÿ¢E‹Ž?nooO. ”Y¢ŠÀÀ@ò1‹Å>|ø×_mnnþòåË9sæp8œmŠ2---G޹sçNuuu¿~ýüüü>ûì3ƒ¡$0OOÏ%K–˜››«²Šž²‡Žía€Š Ò=GDvv6›Íæp8d¥=zôÙ³gBÕÕÕK—.ÅB½zõêÄUïܹÓÖÖ– ˆººº;vüûßÿNHH`±XÑÑѸ¬¹¹yÉ’%±±±vvvOŸ>=xð`^^Þ¶mÛètÙKw80‰DòâÅ‹³gÏÆÄÄ:tˆÅbµ»–. Ð¥àê=ÐsOŸ>}þüy|||YYYee%^hdddiiiii‰?ËZþ“Ù™ï}ÍÍÍ---­¬¬sûöm„™™YLLL'®ûå—_ÌÍÍ·oßþÑG988øùù%&&¾zõ*==]Q`ÖÖÖÞÞÞ6l°µµ=sæŒ*ké¢à] *=ÐsÙÙÙžžž¾¾¾ýúõËÎÎþÀÞD"Qbbâ”)S¦L™’˜˜(‰rss§OŸÞÐЀÊÊÊš;wnKK‹|Cƒaaazùò%yý<00ðòåËóçÏŸ4iÒ©S§ðÂ7n,Z´(,,lÚ´i¿þú+Ù$??æÌ™111?ýô~¥@  +--EeffΛ7Oúã»±±ñgŸ}–™™)ݼ¸¸X&06iÒ¤›7o*Ú@éæ8øï¿ÿ~÷îݸI[[[dd$îA¾¹D"9uêÔܹs'Nœ¸téÒGQîØ¼¼¼Ù³gGFFž8q‚ÜäëׯÏ;wÊ”);vìhkk£\ø¾G€n*=ÐgøÒ}PPBÈßß_ÅÌ---)ÒO%%%UWWïÝ»wÛ¶mùùù‡þä“O|}}wíÚÅãñvíÚõÝwßK÷ÓÜÜüâÅ‹„„„ȯëÚµk»víŠÝ»woCCCsssBB AƒŽ?¾dÉ’ýû÷×××ãWþöÛo«W¯^¸páõë×Åb1Bèúõë¶¶¶ÎÎÎ\.×ÙÙY¦sggççÏŸK74h| UUUŠ6²yPPЕ+W‚@ݹsÇÈÈhĈ”ÍÏž={úô阘˜cÇŽÍ;711‘rŸßºukÿþýñññàóùxá… 6mÚôã?Þºu ¿éQ´ Tz Ïþúë¯ÚÚZ„¿¿EEÅÓ§OÛmõå—_N”"ýTzzú×_Íf³‹/È/[¶,???...**ÊÕÕU¦Ÿðððyóæ•””à72&OžÌb±Æâóù†††\¾|¹••›ÍF555áWÆÄÄx{{1‚Éd!„._¾J£ÑmF“H$ÒÍÉw!ŠPn |óO>ù„Ïç?~ü!”••†¿ú'ß<%%eñâÅ~~~VVV#GŽTtñæÌ™=zô3f B_ A-Y²ÄÁÁÁÍÍíË/¿$g©¡\P¾‘ôYvv¶X,ŽŠŠ"—p8GGGå­ä¿{O>~õêÕ´iÓÈ?MMMB,+""âèÑ£Û¶m£ì§µµ5))iÅŠä%z’µµ5Bˆü~“ɬ¬¬Üºu«@ ùüݯ_?„N÷óó»zõêÀïÞ½»råJ€¥¥eYY™¯¯¯t“²²2éæ”*++íìì”l |s##£Ñ£G_¹reÀ€¹¹¹û÷ïWÔ\$I_l8p e VVV!™w-äÚ_¿~­d!@ ¨ô@oI$‡óÕW_EDDà%‡æp8 ,Pò9X933³Ÿþ×o|Í!T[[{þüy__ßÝ»w¯Y³F¾•‘‘QxxøÈKñ$™HZ[[ׯ_¿~ýúQ£FµµµIŸŽ|70vìØ70`ذa½{÷Æ ƒƒƒùåoooòV}KKËÉ“'ɺ«èˆA¤¤¤|üñÇJ6²yPPÐŽ;œ]\\Èê+ßÓ½•íãã#]\ dggÇáp(¿˜¦Š… îܹsÑ¢E4Íßß?66öÂ… õõõÑÑÑL&ó›o¾Ù¾}û°aÃzöì‰Zºt)nE£Ñׯ_ßµdÉ’7š˜˜Ìš5+(((>>~çÎÒ¯¡ÓéþþþüñþþÖ£G}ûö>|811±ªªÊÖÖ6((hÆŒòk!c³Ùûöí#¯ÒËo`]]e¨L&3 +++ @Éþ100hkkÛ³gÏ›7oœœœÖ®]ûÕW_!„¶nÝêååE®—RppðÊ•+[ZZ‚‚‚fÏž¯ÕË,T¾?!þö,ºå·ß~›9sfWŒ4§8ðêÕ«ï¿ÿ^ÓtÊ¡ô:0BžŸÎr ›ƒ«÷è¡PX]]žžN~ù”ƒJ€.yôèQllì„ ¼¼¼4K255ŒŒTe! ]pŸ]âéé™’’¢é(ºœ¹¹ùŠ+TYh|¦ôTz@ŸA¥ôTz@ŸA¥ôTz@ŸÁ¯ì€‹‹‹ÓtïHŒkcã× †PÓ±h†PȉXÆÆoèô6MÇ‚B<OÓ! yPéNêÛ·ïŒ34Å…ô7ozÔÕ™ðù† †ÄÞÞÌÒ²Eýap¹ÆååfÇרÕ¤ª*ÓŠ ³·o™™µZZ ¬­†† ƃ’™É€nƽ ƒjjÞ¦¦&%å½°²bMžìééë;€ÁÐÌM±””‚Å‹VUý¬‘µ“„BÑ­[å—.=HI¹÷úuƒ‹KŸÈHÏÈH/—>š €n *=ïçõë†ää{©©wïV˜š?42Ò+ `°¡¡†¯iI¥'‰Å’»w+RS /^,¨©á÷ïoìé9b„c»sú:TzTòæMãùóù©©ùùÏŒ &Léåï?ØÈH[ni[¥'I$D^ÞÓÌ̇ii…u}ûZ††…’€Ú@¥@™††–ŒŒâ¤¤¼ÜÜ2CCfx¸Gd¤—ŸŸ‹±1żµ•^Úãǯ.^,¸páÞ“'µvvæãƹ…„¸º1™ð; º Tz(45µþþ{ÑÅ‹…W¯>–Hˆ±c]#"<ÇÖ«—±¦CSH'*= —üÌ̇EE/,,Lƒ‚Ü"#½ÆŽu50`h:4ô Tzþ§¹Y˜–Vxñb៖ˆÅ\àCCÝÍÌzh:´öéV¥'={ö&3óAjjA^^E¯^&!!C´ä{è ¨ô ¶6qNÎ_IIy—/? EãÆ¹EDx±°0ÕthïAG+=©²’—‘QŒK¾±±Á˜1ƒ""<'Lð`±Œ4º *=è¾pOM-ÈÌ|Èç †éáÙ§™¦Cë]¯ô¤êêú¬¬G™™8œGL&ÃÏÏEûo Í ÒƒnG$’p8RS ._~øöí üĉvvæšíƒèM¥'ñxM—/?¼x±0'ç/6räÀ÷¨(ïÞ½{j:4t TzÐ]qçÎÓÔÔ´´ÂW¯ÞŽáé5~üо}-5ZçпJOzû¶ùÒ¥—/?ÌÊzØÚ*òñéééic£“W_P3¨ô@Ï‘>=½¨ªªÞٙ字C¶éq¥' Âk×JSS 22Š››…¾¾BCÝÃÃ= °Öthh/¨ô@oݾ]žšZøÇÅ••\¿ <©[Uz9æ®ô0û!!î}5Ú*=ÐOŸ¾>wî..ð66½""¼"#=‡w¤Ó»Ëx«Ý³Ò“¤†Ù/¬©y Ãì@‚Jt[EEÝÙ³y¸À÷îÝsÒ$ïîVàIݼғ$âþýÊÌÌgÏÞ­¨¨sp°?~”|ÐA¥:©¦†ŸšZ€gŒµ´42ÅW³3Æj¨ôòð˜»ÉÉ÷ÊÊjmm̓‚`˜}ÐA¥ºDkgŒÕPé•€aöAw•èíŸ1V@¥WÅóço.]zg˜ý÷  !=zj:4º Tz ½thÆXm•þ½¼|ÉKO/Æ×‡ŒŒ`˜} Ï Ò­£‹3Æj¨ôóæMcvö#<æ.Nó÷ ùô Tz -áÅ‹ÿ™1V$ºéÐŒ±Ú*ýª¯oÎÌ|€K¾DBà1wa˜}  Ò #'”»té~ccëèу¦O®s3Æj¨ô…Ï\¹ò83óAzzqKK ³tTz z6c¬6€JßéZZÚþü³$5µà?î75µê2dêT_GÇÞš €÷•¨9clVÖ£úúf\à'Lfoo¡éÐtTú®ƒ‡ÙÇŸòß¼iÄcîFEù8;Ã0û@@¥ê 3c¬‡GßéÓ‡ëÓŒ±Ú*½cޫ­…aön€JºÌŒ±NNìÉ“½»É|3ê•^$"/ïo^ûõ³ aö–‚Jºž1öÒ¥û/^p»ÃŒ±Ú*½FÃìŸ;—ÿôék{{‹°°aÝvò  ÒƒÎÔmgŒÕPé5¹›’RPZZcii:nŒ¹ ´TzÐ `ÆXm•^{<~üêòå—.=¸s穹yàà!PòA¥÷ìÙ›¤¤;¸À[[³¢¢| ÀkTz-ôâ÷?îãaö{ö4}̦M>}úp(ðÝARRÞÿý߯ä­zÆýûa@õª>;ûQfæç‘ô0ûµµ|?¿MäË ÆÆ†{öÌ7ÎMƒÑ‚®•^Ǥ§/[v\(“ã¥`&&†--m½z™„… Šò3ÆEõ¯ç]רØ:tè÷B¡!ÄdÒCB†<¸@ÓA­PYÉûý÷¢´´Â»w+LL û÷·*)y%ý­üÕý/¾ðKH˜“êê+¨ô:C"!6mJÛ½;!DuÔhqq¡Ë–…Àÿj÷s$=½X,–Ðh´}û懇{j:" ]jjøééÅ›7§54äÏ Ýǧÿ¾}ŸÛØôÒDt kÁÇ>ÝP_ß<{öÞÝ»³ ‚ |sÆdÒËÊj¡Ìw[S§úJ$„‰‰Ap°»¦ÃZÇÆ¦×¸q®|>E™G‰Å’üügcÇþóêÕÇj t9¨ô:  ày`à?¯]+SrF$gdÜ„ê hÀ@7C M˜0 ¦”22î+¹©'K³fíݶ-Cfx ëÞ9#§©P¥¬¬’„„´ÖV1Bíüïµ´´=›;nœ‹zÃLLL,,>tà':%žî,8Ø5%¥(0p`UU•¦cÑy&&:«“¶ˆ³go‹ÅÊN#¸ÀoÛöÇíÛe6„³XFJ^ ´™ôŸïTú†††’’õÆ""-íÉùó[[E*69w.ÏÁ¡Kƒ’Õ»wï¯ôUUU¯_¿î”xº3ww‡cdfÖ ÿÅnÈ!^éµê@Ô×·>xP­â³rsË?ÿüèßþækoß³«]AY¥ÇÆŽ«¦X@{·n¥X.K[ä—Óétuþ¶êÁƒÕUïÞ½ÝÝáîòñ÷'h4Ë  @M¢órrr:««!C†°ÙìÎêíCp¹M'O:âÇ&&xPËœcffB£!Þ«ü8S·ÕÖÖ>|øPf!ÜÏÓI æ“2ètZlìXMG´”¥¥©ŸŸZoííßÈ@À/ò Òú *= Ï Òú *= Ït¾Ò?þ|Á‚ö'ó(++Ã9¤›ß»wÉdž9s†\žœœlhhX\\Ü1Ë I0`À¼yó”ÿ¸œ ˆ9sæ°X,Õû/++ëŒHuƒü±–9è”p&¼ï¾U?%Û¢b2755ÅÇÇ{zz²X¬>úhÓ¦M"‘uh¿Ñ¨tÖ–¶«[%ö‡dµ*¯üp2§â 6Ðh´Í›7HŸÒ‰ å{ãÔ©S”Y]PPЉ1¨?uu¾Ò_¸paòäÉ”O•——[[[ãÇæææß~û­¢æÞÞÞkÖ¬Y¾|y}}=BèíÛ·_}õÕºuë† Öu‘KËÍÍ­®®®¬¬<|ø0ŸÏ÷ññÁ‘Pªªª:qâ„ü/&¦èX+‡3A§÷­*ÉÜÐÐ0|øð[·nmÞ¼9??õêÕÇ ‹ÅÛo8u¥uîFIÿwg’ÕdÛ.ݙҧb‚ N:Õ¯_¿Ó§Ow¸CÊN>|”ïɨ¨(œÆ¹¹¹!2«u~´BJMM ‡Ã!tJxxxss3åS¥¥¥2(¿lÞÚÚ:tèИ˜‚ /^ìëë+ »,êw „JKKÉ?%‰¿¿BB‚¢×Sn—êýw¢û÷ïß¿_{ú‘Aî(Uö΄÷Ý·ê§$BU’9..ÎÏÏO$‘­ ˜˜(¿Šv÷F×¥–|0ê\;‡Ã©©©Ñž~¤u «åÛvéuÒh´ÌÌL„ÐãÇ;Ö!e'jûíÒué?eïÏô)))öööxxü“'Oº¸¸455!„ÚÚÚV­ZeccÃf³W­ZÕÖÖ†/’deeõë×/''gݺuýúõëÝ»÷¼yóȬò­B©©©ÆÆÆþøãB}úôA ®ØÍB†††GŽ9tèЦM›>|äÈEAvâ¦É£Ñh‹/NKKSÔôv©Øç¥K—œ-,,6mÚDîäääÁƒ³ÙìåË—·¶¶R.T5-ºeâI$’;wº¹¹õìÙsÔ¨Q_SruîâÅ‹ÞÞÞ=zô°µµ%¯ ’™ Ÿ3ø(_»v²!F;tè››[ïÞ½7oÞ|ìØ1GGG33³µk×âȾQ£FýüóÏ!.—K§ÓãââBb±ØÂÂôúúúÏ?ÿÜÚÚÚÁÁ!..®¥¥E&Ü3Aqqq^^^uuuHåd>~üxBBƒñ¿ŸÝ›ššÆÇÇŸ8q¢ûí½–¢S¾½ƒ BRÙ.C×[=YMyJD ÎQí¦4å G:ýB§N vuu•þDN£ÑNœ8áææfiiùÓO?!„–/_¾páBülccc=îÝ»§¤™MOžv7ÜŠÊ %Ê8¥厕¡îÔm÷½€¼yóæÍŸ?ÿÕ«W666·nÝ ÿùÏN›6íùóçEEE>>>«W¯Æï‰&L˜½~ýzww÷¢¢¢âââ‘#GÆÅÅ)jÕØØhdd”˜˜X]]}ðàA&“ÙØØ¸eËÊæ‡:vìñîû/Ê÷¼” Éæ¤Õ«W#„6nÜ(½°K7 zwçÎsssåkÇÏ*êSB(""‚ÏçŸ={!TWW‡{ -))¹y󦳳óúõë)*Ï5¦—O¼½{÷²ÙìsçÎUUU¥¥¥988à)s¬É|>ßÐÐð‹/¾¨¬¬<~ü8B¨¶¶–PšHø(WWWS6DEGGóùü „>ýôS>Ÿ¿wï^¼Ÿ ªÃ÷Ã?„‡‡‘œœÜ«W/‚ òòòŒ›šš‚˜={vPPГ'OŠŠŠ†J ¾_(‘HÈ2£U%™qEyýúµÌ޽qㆥ¥eöB¨   á]Š–¢Se{)ó¡ë[ŸéÕ™Õ2ŸSå““h/¥p¤ÓO"‘8::îÝ»— ˆï¾ûÎÝÝ\#Bhúôé<oÿþý¡7oÞ\¹rÅÊʪ­­ ˆãÇ»»»K$%Èl‚|ò´» dŠÊ åŠ(ãT”Z”;VZ×¥.¡ Žw¤Òóx<鵺ººVWWãÇ™™™^^^8Ê¢¢"‚ |îÜ9üìÇÉÇò­¸\®ÁÖ­[y<žD"ihh‹ÅŠšO›6Ëå­ôdsL"‘DEE1Œ9sæHoo—nÑ^¥W´v¼DQŸÒB999AˆÅb¼.éø ‚8}ú´³³3åBB)5WzùÄsww?räù‚£G*?'¶¶¶>zô¨±±Q,_¹r…ÜóJ ïE BùùùA…B™Çøò‡///Åb …Â+V¬Y³ÆÀÀ€ÇãmÙ²eâĉ¸-ƒÁ ÷ƹsçd ~Þ½.ªJ2ãJO¾9 åææZ[[w`¿)ùð °(LÅí¥Ì‡®KluVzufµÌΔON¢½”Vt‘N¿›7o2™LœfwïÞEã§B¸ÄŠD¢>}údee1qâÄÍ›7+ïDz(“§ÝM {PtêÆdöeœŠR‹rÇJëºÔ%:ëê=BÈÜÜ<&&æÁƒK–,!VTTØÚÚâ¯)†„„<}ú/wuuE={ö _…C¹¹¹M™2EQ+ ‡sóæM‡€€€?ÿü“N§S6olllkk“ŸHPm²&ùæ'NœÈÉÉÉÎÎNJJJNNVϦQÆVZZêää¤|혊}âydž"Ãvuu­¬¬T²PKÈ'^yy¹——ùå=–””„……ùúú9r/T”H>Ê” ±ž={"„ðåqéǘüáóöö655½sçÎÕ«W'Mšäíí}õêU‡Žª©©‹ÅäÑwvv&Ž»sçÎØ±cüñGE›@™Ìæææ}úô‘ÿqAAtç*î7Lþv#¹.ù³’K0·W=Hld5¦èÜ¢$¥)O82ë:uê”H$²¶¶¦Ñh¾¾¾!ð,0%tIDATé øø‘2Œ©S§ž;w®®®îòå˳gÏV¥LIò(ÿ¯Äº))ŠQ¥–ò“¶ô~P[êv¤Ò¿xñbçÎÁÁÁ+W®$âÏø_Çãݼy/Çû×Îή¢¢/)((øÇ?þ¡¨•@ H$gΜár¹ .ŒŒŒär¹”Í322¤Ã?zùò¥*[!Ó¼ªªjùòå[¶lñ÷÷_·n]llì›7oÔ°iò±gÏ|ÞW²vLÅ>)ïðá7Œ¡’’rŠCÊ…ZB>ñìíí É´;·ž@ øôÓOW­Z•ŸŸ¿{÷n¼P>‘¤á£LÙPò‡N§Oœ8199¹¤¤ÄÇÇgܸq™™™W¯^ÅGÜÆÆ†Á`”——ãæOž<±··—ŽKMMMLL}ú¤¤¤àåË—/Ÿ>}zEEEaaáÈ‘#—.]*}õcݺuÅÅÅÅÅÅ£G^´h‘¢VÀØØ8))éõë×ûöí366”ÍçÌ™óòåKÜþúÁƒß¾}‹ßšÿ½´‚oÊ_¿’n.‘H"""ð•(¡Pèáá­†MùKþÊ.'''**ÊÁÁ¡¾¾^•µ+êsÿþýdHꃒºRXZZzûöíAƒ%$$P.Tž ê¼zO™x?þø#›Í¾páBuuuzzz»w4y<FKOOÇ¿)GåççKgåE ª}+óXþðqæÌ‹BDff&‹Å’¾—9kÖ¬   òòòââbwwwòÐÈGµnÝ:@ z2¿}ûvðàÁ?^³f BˆÍf·¶¶¾ï~#¤RWš¢ƒ¥(ÁTÙ^òö¿z[mWïÕœÕ2;“29•§4å Gz]‡Á`Hou^^žòÿ‘HÄf³mll>Ün'2› Ÿ<ín¹7ºevI>NE©E¹cÕ“ºDgݧ߱c‡§§'þÑÎùóçmmmñí>Ÿ¿`Á ++«˜˜˜¦¦&é=ÕÒÒggggffÍãñðrùVAœ>}ÚÉÉÉÐÐÐÕÕ599™²¹P(Ä÷5I7n477wrrÂ×* ‚hkk3f ‹Å"är]¦ù‘#GŒŒŒ¤ïzÞ¾}›N§'%%uõ¦ï¾KíÛ·ïìÙ³¥S\ùÚ•ôÙn®8p ÿþÖÖÖË–-” •'ƒ:+=eâ …Â~øÁÑÑ‘Åb5ê×_U~N$bûöí–––}ûöݽ{wtt´………t&(ª©ò Ùl6¡B¥§Lƒúúz&“‰¿+×ÔÔdhhO®ˆËåÎ;×ÊÊÊÖÖö›o¾!|TÀÅÅeÍš5ª'3A+W®:t¨±±±““Ówß}0sæÌ÷ÚoäæS~x |¨å{hü­àº³ú Säää 2„ÍfkI?¨Ž²ŽÃgz@ŸA¥ôTz@ŸA¥ôTz@ŸQüž¾ªªJýq]ÔÒÒbllÜY]AâýS__çã@=åRTú’’’®è‰Îªôx‹Né íï_6xç÷ôÐ3pŸÐgPé}•ÐgPé}öÿ˜àòíŸFIEND®B`‚XQilla-2.3.0/docs/simple-api/inherit_graph_14.md50000644000151400015140000000004011653571063016352 00000000000000f622c38e12647b741981db9007b9ce00XQilla-2.3.0/docs/simple-api/classATDoubleOrDerived__inherit__graph.png0000644000151400015140000001723011653571064023026 00000000000000‰PNG  IHDR•]… ¸ubKGDÿÿÿ ½§“MIDATxœí}TW‡oH¢hÁðˆE@¡xTl-Zׂ®u·º~€‚ÕÊZA-Õ×.T»­bx¤è±µÁE= HÖ­­@8ÖU!Q¬# `Á|ÍûÇÔ4 I€À0¹Óûÿ¸3sçÞßÌãÜI&$—†a@@‹ÙCùƒän?¸aÛpõêÕøøø‘Œ‚0F``àîÝ» n2꯹¹¹°°0$$„°TˆqóæM{{{c[úÃÉÊÊî<ˆÁjb+ºÿÁ ò7ÈÜ pƒüÁÍPýÑt3fL@@@EE…‰ú†}ðÁ666Cìwˆ466†‡‡Oœ8ÑÆÆfÖ¬Y/^$%Fuu5FJ ÃpýݸqC*•J¥R¡PèååµzõjŸi466ž={¶ªªjèýšM[[›ŸŸßرc333KKK׬YöÓO? ½e‰DÂf³‡ÞÎÀéçýß@prrrvv8;;8p€Ëå¶´´p8ƒ•{zznnnCï×lâââ,XššŠ/¾ñÆMMM_ýõŸÿüç!¶¬ÑhÚÚÚ†p óýÉdŽ5ŠÅbá‹J¥266–Ëår8œØØX¥R9{ölîÛ`|H)**rssûßÿþ×·€F£={ÖÇÇÇÁÁáÀ•Jçæææää´~ýúŽŽcírrr¶oß®;..îäÉ“x¹££cÆ l6ÛÕÕ5&&¦··Ww”Ó-÷ÑïÑ©Õꤤ¤É“'ÛÚÚܺuk¨g3Bff¦‰­Z [·nˆˆÐnMLL\¹re]]P(œ9sæ®]»Äb±n³Æ*¼÷Þ{ «««o¼ÓU«VÉd²'NÚÚÚ’’’|}}…B¡H$ò÷÷‰‰1Ö¾L&´··;¢µk×=~üX(N:uïÞ½º™uË}cô{täp8|>¿±±ñ¿ÿý/Çë÷$‡„„„„„=ÿÆ6 ÜŸ.666UUUÚ­ÞÞÞR©/̘1CïU …Æ*àc¦P(b±xÊ”)|>¯VUU¥-÷ݽ½½ “É ŽB¡ Óé÷îÝÃù|¾§§§ z1ú=ºÉ“'Ÿ:uJ[áßÿþ7ùþÄb1^îîîþÇ?þ1{ölíVkkk]»,KïUP(Æ*à>|øP7€µµµH$êÏàî\.÷úõëºÕJKKßzë­îîî§OŸzzzðõB¡ÐÚÚZ7ó£GtýéÅè÷èÆŒSQQ¡­p÷îÝ!úÎûߨ±c7lØpÿþ}ìÕuÉf³µve2YII‰Þ.Æ*0™LÓ¬¬~—œÇãÕÔÔà劊Šýû÷›Ø}éÒ¥ÉÉɘÎàqæÌ¥R9vìX.—K§Ó% ¾þñãÇãÇÇË*• ÐÐРۯ^Œ~nâĉ•••Ú ÷ïß7±û€0&ÖŒëðÚÚZ€\.Ç·mÛ¶jÕªšššÊÊJÿèèh½ÿ¡fTÐë/ÇÅÅM›6M$‰D¢€€€M›6™ØýÙ³gŽŽŽk×®½~ýzeeåÞ½{—.]Âw  ’H$"‘È××wÏž=---€“'O>þ|ùòå@çúÓ‹‡ïìì4ÖûáÇ9Nnn®T*½|ùò¤I“ú=É#7~b¦V«Ç÷äÉ|Q.—GDDØÛÛ;::FFFvwwëé1£fèÄõööÆÄÄðx<‹¦½½ÜðšššU«Vñx<[[Û·ß~;??_Ûc{{ûºuë]\\vìØ¥ñññvvvyyy&ü)•ʹsçÚØØë]¥R%%%yzz¾öÚksæÌÁÇÓgØ´?fä½vVV–éw∑ÿüÏØ±èù'Ü pƒüÁ ò7ÈÜ pƒüÁ ò7÷wë–„ìÄÒÏçï .™!‘x¸º>5JAvó‰Dƶõ÷úë¯Ãþ凞FOÏ…™Ëí$;‹ùâëÄèóO ”tùС+&8Þ¼ù%ÙYˆ‚Ê÷¿ìì2@mmÛƒdg! Êú»{·®¾^`2é99wÈŽC”õ—›[Î`ÐJ¥:;»L£¡æm‚šþÔjÍ… e*•_lié,-¥æ jú»y³Z&{¡]d2é/–“˜‡8¨éÏ/g0~;4¥R—W®TªIŒDô§P¨òó+T*îJ¹üåÏ??"+qPП@ð §ç¥ÞJƒÆçSðU(ýñùwúþY¦J¥ùá‡Ê/ ~fªùëêzyåÊ}µZÓw“R©.,òßËZTóWPp_¡PÛJ½W¡Tó—›kÔFƒ?Ë{F2ÑPíùu}½Lwðœ3'~ß¾ÁÁoh×8;³F†o­ZÔ9WWýŸšrr²0Á‘”0#ÕÆÏ?ÈÜ pƒüÁ ò7ÈÜ pƒüÁ ò7ÈÜ pƒüÁ ò7ÈÜ pƒüÁ ò7ÈÜ pƒüÁ ò7ÈÜ pƒüÁ ò7ÈÜ pƒüÁ ò7ÈÜ pƒüÁ…~óøñãÃÕTaaaSSéÐÛ Ƨ›²(,ôûÓCœ•Y “ÉQ«Ÿk4ú?c™™™øTD…原™™™¦'æ E³ZÝ;ôvÈ>F±\ˆ€üÁ ò7ÈÜ pƒüÁ Äþh4Zuu5Ù)HbZ$ ›Í&;9PÁŸF£ikk#;9PÁ>=³³3¾¨T*ccc¹\.‡Ã‰U*•–––æãããää”púôiwww‹µ{÷n2£¡?["0€çg±XŒa˜X,Ö=ÄÄÄ•+WÖÕÕ …™3gîÚµ ¯&—ËSSS¡¡¡r¹üرc€ÖÖÖaÉC ôçíí-•JñrAAÁŒ3ðÊååå†) ½2ÞÈÐó‚…~~4jjj\\\´‹, /ØÚÚ˜L¦^j¨pÿÓƒÍfk/)™LVRRBv"¡Ž¿®®.¼°bÅŠÏ?ÿ¼¶¶V(.^¼ø»ï¾#7¡PÁßĉçΫ3ãããmmmýüüÞ}÷ÝéÓ§'&&’P ¾ÿa¯>Ve0×®]Ó®·µµMKKKKK3XÙDF¨pýý‘Aþàùƒän?¸AþàùƒŠûkmí";±Xîû÷¢¢¢ŽŽŽ!6’ÝðþûÎÖÖôa‰dX®¿¡…ÅÊj4‡yýzvOσa‰dXèø9,ŸedÓhô¿ü%zXZ³À/¯‹õ7,ääÜ€VRRÝÖFÙ» eý55=¿uK-/ï.Ùqˆ‚²þòòîÒé4€Fƒee•‘‡((ë/;»L­Æ†‰DõuuÔüCjú“HZªª±WŸíÑé”B©éïâÅrã·÷|j5–MÍ!”šþ²³ËT*µvðêêgHIŒDôgðnÇ`ÐssËIÉC(ô—›[Îdê?0S©ÔYY¥äíÒªùÓh° n+•ê¾›š›åååµ#‰P¨æïÖ-IKK§ÁM ýâEª ¡Tó÷ŸÿÜŒÅèûO£ÁòóïªÕ²3'–ûùƒyLêúÅÕ.&'ÿôþûÓ'OvÖ®yþ¼ÇÁá52¢‚…þ~ÖpÁãíHIùpéÒd! ªŸ4?¸Aþàùƒän?¸Aþàùƒän?¸Aþàùƒän?¸Aþàùƒän?¸Aþàùƒän?¸Aþàùƒän?¸Aþàùƒän?¸Aþàùƒärû3˜™™™dG¶¶s™Lh¦Æ ¬3¿ÿž••5¼Ñ4c/3ý…„„˜·#ÂÙÙÙfì…îpƒüÁ ò7ÈÜ pC¬¿}ûöÑh´„„ÒÑ£ººšF£Ûzþüyš!***†1ð@ ? ÃΟ?ïææ6”·ü‘H$löÞ•ÛÙÙíܹӨÖeË–I¥R©TzãÆ €ô¾¾¾Cé”Ì{þ2š•••4­  ððáÃÁvd¢±XlFr3±Ž0 1ãù ×ßùóççÏŸìíí­{õÐh´³gÏúøø8888p°mÛ¶7â[»ººÆŽ{÷î]Ìž=àìüë¯ vttlذÍf»ººÆÄÄôöö⽤¥¥ùøø899%$$œ>}ÚÝÝÅbíÞ½茟*•*..ÎÍÍÍÉÉiýúõ¦gÌ2˜o*//oÊ”)gÛ¶m/_¾(•ÊØØX.—Ëápbcc•JåpØß1Xá¼þ4»»û±cÇ0 ûâ‹/|}}µ›«V­’Éd'Nœ´µµ]½zÕÑÑQ©TbvæÌ___Fc¢½ËbíÚµAAA? …S§NÝ»w/ÞKXX˜\.OMM„††ÊåòcÇŽZ[[µ-$%%ùúú …B‘Häïï£{z̉×Y´hÑ£GJJJ<==ñ‰‰‰+W®¬«« …3gÎܵk—é3fÞõG”¿’’ƒÑÚÚŠaØ;w"‘è×.(..Æ0L¡PÄb±J¥rvv.**Â0lÉ’% ¦Ñ=­ …‚N§ß»w_äóùžžžx/åååÚ^tËb±XÛ”)Sø|>¾oUU•¶Œ£çÏ`N¼ŽP(Ôž<€···T*ÅW̘1Ãô3ÏQ¿ßzþüy•J¥û*#33sêÔ©x™Çã˜L&¾H§ÓW¬XÁçó§M›VXXˆ_%ý6‚ÓÜܬV«=<<ðEOOÏúúz¼lkk«íE·¬Kmm­——^öñññññ1qPÆr´x{{ãjjj\\\´X,–‰–͆ûŸZ­ÎÌÌýôÓÌÌLìÕoÅZYé÷rñâŬ¬¬¹s纺º¤.—K§Ó% ¾øøñãñãÇ<*Ç«©©ÁËû÷ï7]¿oNü*ûìï E=ÙI„Õ>èùãž>}JÔ£ôáæÑ£çß}wÿw¸«W{e@¸ººÎ™3gP»Pyþ¿ÿû¿sYY¥¶¶Ö÷îÅ÷јPöþ×Û«ÄçRíêê‡((믰°ª·W°²²ÊɹCv¢ ¬¿œœÛt:  Vk®\¹×Ýý’ìD„@Mry@ð@¥úõƒJ¥þñG¹‘‚šþ._é¾í£Ñh99·IÌCÔô—ý;[jµæÚ5q{{7Yyˆƒ‚þž=ë,)©îûäìÒ¥JRò ýýç?wû>Â0ìÂ…2Rò ýeg—õ½ø4ìÎÚúz)‘ˆƒjþjkÛD¢ƒ•ètZ~þÝ‘D(TówéR…±'‚*F½W¡ñ÷KÈXÜìíýÛ·ššžÛÙµ¶þí‹--NN¶$¥~¨üüÀãíHIùpéÒd! ªŸ4?¸Aþàùƒän?¸Aþàùƒän?¸Aþàùƒän?¸Aþàùƒän?¸Aþàùƒän?¸Aþàùƒän?¸Aþàùƒän?¸AþàùƒänHøþíÕ«WãããG¦/±x²³³ÔÖ¶sú Ä'÷IHøþ{sssaa¡¿5ko¿Ý{¢;ºyó¦½=á½ô…´ß/ÈÊÊ"«k" %¥_tÿƒän?¸AþàùƒËõG£ÑðùDµkª«« 7„èö‰Àrý.\¸€O·;2ØÙÙíܹsĺ,Ú_TTÔÇÜÔÔ42ݱÙì„„„‘ék¸°h;vìðööŽŒŒÔ{ȧ;Ðé–i4ZZZš““SBBÂéÓ§ÝÝÝY,–ö±–R©Œår¹'66V©T⻹¹¹:u oJ¥RÅÅŹ¹¹999­_¿¾££cz }âëÁ2ÀÈb±øÑ£GcÆŒIOOÇtfêÖ²[·  “Ëå©©©€ÐÐP¹\~ìØ1@kk+†a‰‰‰+W®¬«« …3gÎܵk¾û{ï½'***𦒒’|}}…B¡H$ò÷÷‰‰é7­y³K÷‡aØáÇÇWWW7ååå†) ½2Þ”···T*Å+̘1ß](ê65eÊ>ŸW«ªªÒ–M@–?‹?q¢££ýüü>úè#ÌÐG%z+mmmL&S¯ŒSSSãââB£Ñh4ÚÂ… ŸtèÊ„ Ž7o~Iv¢ òý/;» P[ÛöàA#ÙYˆ‚²þîÞ­Ãg›f2é99wÈŽC”õ—›[Î`ÐJ¥ÚàŒâÔ€šþÔjÍ… e*•_lié,-¥æ jú»y³Z&{¡]d2é/–“˜‡8¨éÏ/g0~;4¥R—W®TªIŒDô§P¨òó+T*îJ¹üåÏ??"+qPП@ð §ç¥ÞJƒÆçSðU(ýñùw¬¬ôK¥ÒüðCå‹„?Ha¨æ¯«ëå•+÷ÕjMßMJ¥º°ðþÈG"ªù+(¸¯P¨Œm¥Þ«PªùËÍ5jH£ÁŠ‹Èå=#™‡h¨öüº¾^¦;xΙ¿oߊàà7´kœY£G“ö©Ù°C#ÁquÕÿ+''Û I 3Pmüü£üÁ ò7ÈÜ pƒüÁ ò7ÈÜ pƒüÁ ò7ÈÜ pƒüÁ ò7ÈÜ pƒüÁ ò7ÈÜ pƒüÁ ò7ÈÜ pƒüÁ ò7ÈÜ pƒüÁ ò7ÈÜüîû›‰¤°°¬(QXXØÔTJvŠacÒ¤IÁÁÁ¿-ëN†4’“ L&ÇÊj4Ù)†½Y² |º¸¸xäc!ÂW_}¥·Ýÿàùƒän?¸Aþàùƒó)###==}Ó¦Máááø@°oß¾¾5Oœ8±iÓ&í"—Ë>}ú–-[ði¤NCCÃ| ÷öÆàJ=z{{O:UVV&•JÝÜÜæÍ›·fÍ:®WmÁ‚f‡H "Z0Ó†a€Ãákýäää¤Ritt4^Œ7päÈFóôéÓœœœÈÈÈ´´4ó œ/^lÙ²ÅÞÞ>**ŠÇã=yòääÉ“·oßNNNîû3¡f‡´±± #æLaæøùäÉ“ºººÏ>û¬ººº¾¾_9zôhüÿ¬Ã+ ÀÎÎÎÁÁÍfûùùíÛ·ÏÅÅ%;;{¸Ãvvv|ûí·]]]çÍ›—’’ÒÔÔtùò徕ÍÉb±"##‡;{ÿ˜éO LŸ>ýÍ7ßtssƒÝF£-]º´¤¤_ìêêJHHX¶lYHHÈÑ£G ECCƒv4Ó- ÃÃÃÿö·¿:tèåËßýN²J¥JIIY¾|ùòåËSRRT*   `ýúõº—šµµõš5k ð–ËËËW¯^-‰L‡ìÛ¸îî?þø#òË/¿üþûïñ]”Jåûï¿·ÐwwFsþüùuëÖ-Y²$::úÁƒƒ=À<øà 4oÐwuumlüuZ›Ã‡·´´¤¤¤$&&–••;wÎÄŽ?üðÃþõ¯ݹs'##CwÓ… ¤Ré±cÇ’““ËËËÓÓÓ»ººÚÛÛ===õñôô¬««ÃËYYY»víòòò2²oãw ºzõ*þ«œeee£Gž5k–ÁÝsrr233###OŸ>½nݺ”””Áœ¿_1Çß/¿üòìÙ3|º´ÀÀÀššš'Ož˜ÑŽJ¥Ÿ|ò‰‹‹Ë¤I“""" LÔŽŽvuuõññùè£ôþë\¾|yûöígÒ¤IQQQ¥¥F?v Ñhͯ?éççgmmm:§±ÆõvçwärùÇEEE‹/Æ_(õÝ=??óæÍóæÍsttô÷÷7oø5çõ‹@ P«ÕË–-Ó®)..vwwT#õõõ< “É4 ^Œ?¾¥¥E·¦Þ/̺ººâ77·¶¶6ÝMMMM+W®Ô.¾öÚk666ÕÕÕo¾ù¦nÍêêêÉ“'kÛé7¤ÁÆ î>zô耀€«W¯Nœ8ñÆ'Nœ0¶»J¥Ò&Mšd,† íO£Ñoݺõ¯ý+¾&==½¸¸8""‚F£ ° Ãòóóñ óìíí­¬¬¤Ré„ l6¯¦V«étzkk«î¾õõõø¡>}ú”Ëåênb±X‡?~<9ÁÁÁ~~~Ú[`ooï¹sç´gye:¤±Æ îôí·ßzzzNž88É~åÊ•/^ðù|ÝvŽ=ÚÐÐðË/¿¤¦¦.^¼XwÓ¼yóNœ8ÑÜÜ,‘H>ûì³ÜÜ\À‡~(“É>ýôÓÒÒÒúúúk×®mÙ²…ÍfëŽý†4Ö¸AfÍšÕÕÕuêÔ©%K–˜È¶téÒ£G^¿~½½½½´´4--Íô 4È ¯?@0sæLÝwµ^^^<¯¸¸ØàK-ÑÑÑxÃáL›6íøñãÚ!hûöíGŽÙ¼y3“É|÷Ýw×®];jÔ¨7~ÿý÷gΜùøã¯]»¦mgÉ’%111½½½‹- mnnÖnÚ¸qã‘#G6mÚD£Ñ£¢¢cÇŽ=~üxzzzJJJcc£‹‹KPPPHH“ÉTȾë Z Æüùó‹ŠŠæÏŸo"“ÉT*•Gmkkóððؽ{÷Ö­[Mœ@ƒüî÷˳²²V¯^>¿µX¾úê+''§¬¬,íôün?¸Aþàùƒän?¸AþàùƒÏ_.]º4ò9¡±±ÑÉÉIwÉÉÉ#•1h¦OŸ®»Hµùÿþh ûÜ pƒüÁ ò7ÿBz{‰FcòIEND®B`‚XQilla-2.3.0/docs/simple-api/classXQQuery-members.html0000644000151400015140000003157611653571063017560 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

XQQuery Member List

This is the complete list of members for XQQuery, including all inherited members.
addDelayedFunction(const XMLCh *uri, const XMLCh *name, size_t numArgs, const XMLCh *functionDeclaration, bool isPrivate=false, int line=1, int column=1)XQQuery
addDelayedFunction(const XMLCh *uri, const XMLCh *name, size_t numArgs, const char *functionDeclaration, bool isPrivate=false, int line=1, int column=1)XQQuery
addFunction(XQUserFunction *fnDef)XQQuery
addVariable(XQGlobalVariable *varDef)XQQuery
createDynamicContext(xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager) const XQQuery
execute(DynamicContext *context) const XQQuery
execute(const Item::Ptr &contextItem, DynamicContext *context) const XQQuery
execute(const XMLCh *templateQName, DynamicContext *context) const XQQuery
execute(EventHandler *events, DynamicContext *context) const XQQuery
execute(EventHandler *events, const Item::Ptr &contextItem, DynamicContext *context) const XQQuery
execute(EventHandler *events, const XMLCh *templateQName, DynamicContext *context) const XQQuery
findModuleForFunction(const XMLCh *uri, const XMLCh *name, int numArgs)XQQuery
findModuleForVariable(const XMLCh *uri, const XMLCh *name)XQQuery
getDelayedFunctions() const XQQuery [inline]
getFile() const XQQuery [inline]
getFunctions() const XQQuery [inline]
getImportedModules() const XQQuery [inline]
getIsLibraryModule() const XQQuery
getModuleCache() const XQQuery [inline]
getModuleTargetNamespace() const XQQuery
getNext() const XQQuery [inline]
getQueryBody() const XQQuery
getQueryPlan() const XQQuery
getQueryText() const XQQuery [inline]
getStaticContext() const XQQuery [inline]
getVariables() const XQQuery [inline]
getVersion3() const XQQuery [inline]
importModule(const XMLCh *szUri, VectorOfStrings *locations, const LocationInfo *location)XQQuery
importModule(XQQuery *module)XQQuery
isModuleCacheOwned() const XQQuery [inline]
operator delete(void *p)xercesc::XMemory
operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
operator delete(void *p, void *ptr)xercesc::XMemory
operator new(size_t size)xercesc::XMemory
operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
operator new(size_t size, void *ptr)xercesc::XMemory
setFile(const XMLCh *file)XQQuery
setIsLibraryModule(bool bIsModule=true)XQQuery
setModuleTargetNamespace(const XMLCh *uri)XQQuery
setNext(XQQuery *n)XQQuery [inline]
setQueryBody(ASTNode *query)XQQuery
setQueryText(const XMLCh *v)XQQuery
setVersion3(bool v)XQQuery [inline]
staticResolution()XQQuery
staticTyping(StaticTyper *styper=0)XQQuery
staticTypingOnce(StaticTyper *styper=0)XQQuery
XMemory()xercesc::XMemory [inline, protected]
~XQQuery()XQQuery
XQilla-2.3.0/docs/simple-api/functions_enum.html0000644000151400015140000001065211653571063016550 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
 
XQilla-2.3.0/docs/simple-api/inherit_graph_39.md50000644000151400015140000000004011653571063016361 00000000000000b8efe6c98ab8fb59212edada402da6c6XQilla-2.3.0/docs/simple-api/inherit_graph_16.png0000644000151400015140000000431611653571064016466 00000000000000‰PNG  IHDRÕ(æ.(bKGDÿÿÿ ½§“ƒIDATxœí›}HSßÇÏ4×PÑÍtéò)§ø˜ZdÒ³a$ùÐ0„,­ ú#Ò"…,´JL)ȕٖFÆ0KB—ÁZ¥9 MkèÌé6·ÖÜÎ÷Ãw¬»»éצã÷ë¼þ:÷Ó9Ÿó¾ç¼ï=çB0'áâl˜¿ì?Œ3ÁþÃ8ì?Œ3YF¸®ªªêêêrŠÌ߀@ °¼$úO*•ö÷÷'''/¡$Ì_ÁÈȈP($‰þ$''·´´,‰$Ì_DKKKNN!ˆ÷g‚ý‡q&Øg‚ý‡q&Øg²@ÿQ,`0ÙÙÙ …Â!‚(Êàà CR-ŒÁÁA …ò_[YHhhh^^žýYX/‹ÊÌÌLiiéÚµk===7lØP]]=;;k«²£ô/üý×ÝÝ-—Ë¿ÿ.FGGOž<ùçjæäË—/¾¾¾‹š–N§Ÿ9sfIЀŒŽŽÞ¹sG¥R%&&NMM9Tæ"¢V«×¯_ÿæÍ›šš‘HTVVÖÔÔ´k×.£ÑHZß|h]Ó1û?WWW&“‰Êmmm îîî555(ØÚÚG£ÑÂÂÂîÝ»‡‚ƒ¡¤¤dåÊ•L&³¤¤Ä`0ÒR(.—íããsåÊÀÆþþþ¶2 u¡££#88øõë×Öbfgg+++ƒƒƒýüüòòòÐ+Ê2­yeÉÈÈ8}ú4êH¯×3Œ§OŸÎG6R~ìØ1TßN.—Ëf³ýüüŽ?®Õj-5sBX__ãåå•’’ÒÖÖF¡PHƒóÒ.MMM®®®æ[ððð(--år¹¤MÌÂŒüg~œÿûO,«Õj•JÕßß¿}ûö .@U*•JÍÏÏmjjŒk4šåË—×××ËåòÆÆÆeË–i4áåË—÷ïßÿõëW‰D’˜˜XVV‘233•JeCCàÇ„§Í:ª––öâÅ ¹\n-æêÕ«kÖ¬‘H$R©4))©¸¸˜ð›ËÍÍÍÁÁÁ&“ BÈçóY,–Á`˜lÄÛ·oétº})))B¡0<<Ü$ÈhhhXµjU{{»B¡áááÒàœ¢Ñh¦¦¦Pæ²R©( Â,÷ôôøøøª².Ì éûoáþ³ÄËË ¾^¯ïëëÓh4F£ñÕ«WhV&''ÝÜÜ®]»¦T*M&“Z­6¨¨(¹\Ž ‚øøxhå¿ÎÎNá¯_¿Pœp·ÖP‰DbKLddäãÇQ“?¢2éÏÌÌxxxôööB8P^^n«S8—ÿìëDs³zõjR±±±\.לöþýûÒà|:"ùobb‚ïîîöõõ]Tÿ‘üýwžÈd2ôØiµÚÚÚÚ”””ááa*•:00PPP ÑhPMƒÑÙÙY[[[YY™˜˜X^^ž–– 0'ôöö¶î…ÅbÜÜÜH5ØÊ 3<<ÊÑÑÑÑÑѶnÐÝÝ===ÇãÅÄÄ´¶¶¾{÷Î~§ÖãÃf³í71+A¾±lÿ}È?þkŽÇÄÄØ Î9 ¶ Óéþþþb±xçΖq±XLhý¿5°ÿsww/((×étÙÙÙ%%%"‘¨®®UÐét&“éÑ£G“““‡Þ»wïää$=[æGÐúÇ{ me@~%Ãb±†††PY,_ºtÉN~‡Ããñž|0gîë볜s@ì››[UUeþÚåp8<¨©©áp8¤ªá}8ÿõ7Èåòááᢢ¢   £Ñ¨T*)ʳgÏÐa@$ét:Æãñ ÅíÛ·i4šN§ƒž:u*33shhèýû÷III'Nœ€Vë/¡Œ&L­V£ uËå€TLeee\\œT*•J¥›6m*((€ÿ."(­eôÙq÷î]ó½Û’m>yùòezzz``àÔÔ”}©©©2™¬··7""¢ºº666NOOïÛ·ɸyóf``àóçÏ'&&:::"##) ipÎ{>Byzz:22rÇŽíííŸ>}:{ö,€ÉdêõzRU„õ×<#vX¬ýŸ‹‹K\\œP(DÿtýúuŸ   ºº:‡Ãd2Qßl6›J¥FEEñù|TS¥R:tˆÁ`¬X±¢°°pffÎå?ƒÁ°yófOOO[Ãm-æçÏŸÅÅÅ,ËÛÛ›Ãá(•J¡eZB†ÂÂBOOOôÁd_¶™   ÜÜܱ±1;MP/ÍÍÍ¡¡¡L&³¨¨H¯×C/^¼H§ÓÙl6ŸÏG2ŒFã7Øl¶··÷îÝ»ù|¾ŸŸip>Bº™Ch4š¢¢¢ØØXÆf³Ï;·mÛ¶œœRUæ¶„±ƒ#ý‡Y2Z[[Åb±ù’ÇãÅÇǓ޵^¯ïééqT¶E<ÿÃ,‰äàÁƒ"‘H«Õ …ÂóçÏ9r„4èð®©T*:Þ[<þý‹YJKKµZmFF†B¡ ËÏÏ?zô(€4ø?þ¾wÉÎÎàßßcúý=ÁoxýÅ8ì?Œ3ÁþÃ8ì?Œ3ÁþÃ8ì?Œ3!9ÿëêêJMM]z)˜ÿoÆÆÆ¬ƒDÿ-öy7毅Á`Xÿ ŒxþŒÁ,%xÿ‡q&Øg‚ý‡q&Øgò8©ŸÂ•ŠÖIEND®B`‚XQilla-2.3.0/docs/simple-api/classATGMonthDayOrDerived-members.html0000644000151400015140000004351211653571063022056 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATGMonthDayOrDerived Member List

This is the complete list of members for ATGMonthDayOrDerived, including all inherited members.
_ref_countReferenceCounted [protected]
ANY_SIMPLE_TYPE enum valueAnyAtomicType
ANY_URI enum valueAnyAtomicType
asString(const DynamicContext *context) const =0ATGMonthDayOrDerived [pure virtual]
AtomicObjectType enum nameAnyAtomicType
BASE_64_BINARY enum valueAnyAtomicType
BOOLEAN enum valueAnyAtomicType
castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [protected, virtual]
castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
compare(const ATGMonthDayOrDerived::Ptr &other, const DynamicContext *context) const =0ATGMonthDayOrDerived [pure virtual]
DATE enum valueAnyAtomicType
DATE_TIME enum valueAnyAtomicType
DAY_TIME_DURATION enum valueAnyAtomicType
DECIMAL enum valueAnyAtomicType
decrementRefCount() const ReferenceCounted [inline, virtual]
DOUBLE enum valueAnyAtomicType
DURATION enum valueAnyAtomicType
equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0ATGMonthDayOrDerived [pure virtual]
fgDT_ANYATOMICTYPEAnyAtomicType [static]
FLOAT enum valueAnyAtomicType
G_DAY enum valueAnyAtomicType
G_MONTH enum valueAnyAtomicType
G_MONTH_DAY enum valueAnyAtomicType
G_YEAR enum valueAnyAtomicType
G_YEAR_MONTH enum valueAnyAtomicType
generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicType [virtual]
getInterface(const XMLCh *name) const =0Item [pure virtual]
getPrimitiveTypeIndex() const =0ATGMonthDayOrDerived [pure virtual]
getPrimitiveTypeName() const =0ATGMonthDayOrDerived [pure virtual]
getPrimitiveTypeURI() const AnyAtomicType [virtual]
getRefCount() const ReferenceCounted [inline]
getTypeName() const =0ATGMonthDayOrDerived [pure virtual]
getTypeURI() const =0ATGMonthDayOrDerived [pure virtual]
gXQillaItem [static]
hasTimezone() const =0ATGMonthDayOrDerived [pure virtual]
HEX_BINARY enum valueAnyAtomicType
incrementRefCount() const ReferenceCounted [inline]
isAtomicValue() const AnyAtomicType [virtual]
isDateOrTimeTypeValue() const DateOrTimeType [virtual]
isFunction() const AnyAtomicType [virtual]
isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicType [virtual]
isNode() const AnyAtomicType [virtual]
isNumericValue() const AnyAtomicType [virtual]
isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
Item()Item [inline, protected]
NOTATION enum valueAnyAtomicType
NumAtomicObjectTypes enum valueAnyAtomicType
Ptr typedefATGMonthDayOrDerived
QNAME enum valueAnyAtomicType
ReferenceCounted()ReferenceCounted [inline]
setTimezone(const Timezone::Ptr &timezone, const DynamicContext *context) const =0ATGMonthDayOrDerived [pure virtual]
STRING enum valueAnyAtomicType
TIME enum valueAnyAtomicType
typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicType [virtual]
UNTYPED_ATOMIC enum valueAnyAtomicType
YEAR_MONTH_DURATION enum valueAnyAtomicType
~ReferenceCounted()ReferenceCounted [inline, virtual]
XQilla-2.3.0/docs/simple-api/functions_func_0x77.html0000644000151400015140000001241011653571063017316 00000000000000 XQilla Simple API Documentation SourceForge.net Logo XQilla-2.3.0/docs/simple-api/classItemFactory__inherit__graph.map0000644000151400015140000000035611653571064022003 00000000000000 XQilla-2.3.0/docs/simple-api/ATDateOrDerived_8hpp__incl.md50000644000151400015140000000004011653571063020234 000000000000005b0b55e2438681e99fcb3311d413bf95XQilla-2.3.0/docs/simple-api/classASTNodeEventGenerator__inherit__graph.map0000644000151400015140000000044511653571064023662 00000000000000 XQilla-2.3.0/docs/simple-api/classDateOrTimeType__inherit__graph.map0000644000151400015140000000260111653571064022407 00000000000000 XQilla-2.3.0/docs/simple-api/functions_0x76.html0000644000151400015140000001376411653571063016317 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- v -

XQilla-2.3.0/docs/simple-api/classEventGenerator__inherit__graph.map0000644000151400015140000000046311653571064022504 00000000000000 XQilla-2.3.0/docs/simple-api/XQillaConfiguration_8hpp.html0000644000151400015140000000643211653571064020377 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

XQillaConfiguration.hpp File Reference

#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/simple-api/XQilla.hpp>
#include <xercesc/framework/MemoryManager.hpp>
#include <xercesc/util/XMemory.hpp>
Include dependency graph for XQillaConfiguration.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  XQillaConfiguration
XQilla-2.3.0/docs/simple-api/classReferenceCounted-members.html0000644000151400015140000000655711653571063021423 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ReferenceCounted Member List

This is the complete list of members for ReferenceCounted, including all inherited members.
_ref_countReferenceCounted [protected]
decrementRefCount() const ReferenceCounted [inline, virtual]
getRefCount() const ReferenceCounted [inline]
incrementRefCount() const ReferenceCounted [inline]
ReferenceCounted()ReferenceCounted [inline]
~ReferenceCounted()ReferenceCounted [inline, virtual]
XQilla-2.3.0/docs/simple-api/FastXDMConfiguration_8hpp__dep__incl.md50000644000151400015140000000004011653571063022313 000000000000005551decd49792a602521042423422337XQilla-2.3.0/docs/simple-api/ATGYearOrDerived_8hpp__dep__incl.md50000644000151400015140000000004011653571063021355 00000000000000e65f76ce5f492dbc0facd3ff1c4326d6XQilla-2.3.0/docs/simple-api/VariableTypeStore_8hpp.html0000644000151400015140000000550011653571064020054 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

VariableTypeStore.hpp File Reference

#include <xqilla/framework/XQillaExport.hpp>
#include <xercesc/util/XercesDefs.hpp>
#include <xercesc/util/XMemory.hpp>
Include dependency graph for VariableTypeStore.hpp:

Go to the source code of this file.

Classes

class  VariableTypeStore
 This is the wrapper class for the variable store, which implements the lookup and scoping of simple variables. More...
XQilla-2.3.0/docs/simple-api/ATBooleanOrDerived_8hpp__incl.md50000644000151400015140000000004011653571063020736 00000000000000665eb8034e3216ae719eaafb98fd86ebXQilla-2.3.0/docs/simple-api/ATBase64BinaryOrDerived_8hpp__incl.png0000644000151400015140000002444311653571064021665 00000000000000‰PNG  IHDR£uõ$bKGDÿÿÿ ½§“ IDATxœíÝy@Wþð—î(§AäDn¬µÊUhÅûªµ‚t]û[êÚŠ¶ºÕµÚî®Öâ ­Z±âH±†K«VA´"*A 7rÌïi§1™Ä‹ïç¯0É{ó}3ùNfæ½P0 CÐPTe€A™ÐdéM™Ðd4eÀ_._¾¼}ûveG4‹ÅRv(dz Brrr”ÐX÷îÝSv(dz r¶lÙ¢ì€Æ*((øüóÏ• ÷éM™ÐdéM™ÐdéMÏÞuõÃ?$''¯\¹ráÂ…ø’¼¼¼mÛ¶I~òСC+W®$þ¤Óé>>>ü±±±±‚bE!HógÏ/^œŸŸ/÷5vww§¤¤±Ùì1cÆøúúΟ?_KKKF`îîîñññýÜ8o}º?k¤àr™¨¥¼¼=|øpHHB¨««+11ÑÁÁáøñãñññ‡jiiéîîÞºuëÌ™3ñ„´k×®îîn„PZZ›Í>pàÀž={JJJ’““{zzØlvMMÍ¢E‹¢¢¢Ž=:fÌ„еk×nß¾ߟÄ\½zõÛo¿‹‹;pà@{{;i„ø'úé§7®X±âÚµk_¯¥¥¥½½}GG‡Ã±··«ÜÞÞþÉ“'¢Å$c°¶¶®¯¯Ç_K¶š´xPPÐåË—1 CéêêNš4‰´ø™3gN:{ìØ±%K–$%%‘7o:t(!!áðáÃmmmøÂóçÏïØ±ãË/¿¼yó&qZFº@€LÔÏï¿ÿÞØØèçç‡òóó«­­}ôèQŸ¥>üðÃðððˆˆˆ¥K—VVVâ' :::GŽY³f™™ƒÁ@uvvòx< ø\®ŽŽNXXXff&~ë=;;ûã?f0ãÆ‹‹‹+,,lmmEݾ}{×®]ß~û-›ÍþöÛoþûßÿ&&&7ìeÇ fæÌ™t:}úôé¡¶¶6ÒñOÆÆÆzzzNš4‰F£•••!„rrrBCC)Š´@¡P„B¡hq===ÙÛM²Õ¤Åßyç¶¶¶ „rssÃÂÂðGÿ$‹gdd¬ZµÊ×××ÌÌlòäÉÒ.þÏ›7ÏÀÀ`Ú´i¡ööv|a||¼µµµ³³ó‡~HüJ éBžÈê'//O DGGKòóómmme—"žåîééIKK[»vmjj*F«««Û½{7—Ë%¾ž6ì›o¾IKKKNNvtt\¸páäÉ“BÏŸ?Ÿ={6Q¡¡¡!þÌÚÚµkMMMB~øá§Ÿ~úôéÓùóç3 .—‹êîîæñxÚÚÚÒb‹ÓÜÜ!„?[€¿Œ‡_? R©¾¾¾W®\7nÜ­[·Ö­[‡¢Ó馦¦ÕÕÕÞÞÞ¢Eª««E‹“ª««³²²Â_K¶š´¸®®îÔ©S/_¾lccsýúõC‡I+ÎçóE/6Œ7Ž4333„ØY‹µµ5±ö/^ÈX @¦jF(æççôÑG‘‘‘ø’äääüüüåË—Ëø.+JWW7""âðáÃ---[·nݺuë”)Sx<þ´ZOOP(ܺu+ŸÏÏÍÍÝ´iÓùóç‡ fddôÍ7ßà©¿<®¯¯ollŒß°ÇcÓÕÕ½ÿ~EEÅÞ½{ñ…~øáܹsŮ䋯 žX+zzz$#ÄgÛ·o·±±quu1b¾088ø‡~ðôô$nÕwwwŸFëííÅï@wuuQ(” 6\¹r¿’O£Ñðëð¾¾¾‡jhh¨©©IHH8þ<…B‰ŒŒÜ½{w]]Ý£G’’’‚ƒƒsssóÿ„Âï¯ËˆAvؤŠ}ÆÍÍM |ÿý÷¡¡¡ÄÂeË–577¯]»¶°°°®®î×_777½"¶qšššîܹ³yóf6›=wî\ü-ÉVK uÒ¤I)))áááÄBÉâQQQß}÷ݵk×8NaaáÑ£GñOfee7&¤Ù·oß³gÏ~ÿýwѧH𨙼¼]Oï%•ÊSv,}knnVv(dz BF=gÎeGÑ_ÝÝ´ÆFý¦&ƒ®.š®®ÀÙY_[[ à8½š#Ÿ¯WT}½am­Qk«ƒ‘Q©)×Üœ«£#Tb<}û%_4Ì{ÀëyôèÅÙ³·23ïTV>;Ö,&Æ'2Òcüø‘J &#£tÕªïëë¿QÊÚ ½½ü›7k.]ªÈȸýâE»£ãH&ÓÉôptTÎfˆ‚L@¿44´¦¥Ÿ>]\Yù|ĈaQQžL¦»-•ÚÇÑ *Éô@xëVmfæ JÚÆŽ5 va2Ý'M²íóWûƒ2=²45uœ?_’™YzëV­¡¡nt´gLŒ··––J<ͪj™ž bÅÅX¬{YYwjk›F6 )¥€L‰ŽŽžìì²´´âë׫uuiáánL¦‡¿ÿxÕz´Ee3½¨ž_¸Pzþü퇭¬Œß}×9$Ä%0ЙFS‰³%4dzþÂåö^¸pçÂ…;W®< ±€§˜Ÿ==me‡FN-2=Où,Ö½²²§&&†AAÎL¦G@€“¶¶–²C@“A¦ñx‚‚‚ß33K/]ªèêê tŽŒt u122Pvh}P¯LOxüø%‹U‘™YZ\\;|¸~HÈÕ¼d€f€L†. ÊŠ¥¥ge•µ´tùøØ0™‘‘î#G);´þRÓLO¨«k¾x±OùzzÚÓ¦9DFºÏ˜áF§ë*;44dz0ÖdfÞÉÎ.«¯oquµž3gRX˜«µµ‰²ãzmêžé lvKnî}«"?ÿ>¦åëëé>}ºëðázÊ µ™ !55/Îûc(¼ùìÙÞJ /“é ÍÍ99÷.\¸SPð;…B™¾¾Ž*;^.†T¦'sîŠN³ââæ6ZÙ¡ Š Óõ&2þnWW/>~úô‰Ã‡ë+;4Eš™ž 2Íþ††V˜fRéZÂ0ìêÕªÓ§‹rrîµ¶r}|læÌ™áfbb¨ìÐjˆgz‚PˆÝ½[ÇbUœ9s«¶¶ÉÚÚdútWHùà Ó5#:~Ò$[&Ó#<ÜÍÊÊXÙq)dzIøœ»éé·««--ƒ‚`š}0ÔA¦êááÃÆóçK22J«ªÆ1k–üü9‚L/L³2=Pi¢CáÇŒ1›3ÇGÝ纑/ÈôýñäÉËK—^™f?$Ä%(h‚޲C@ ÓU$:ÞÌŒå©yCáå2ýkyö¬9;»ïWºº0Í>* ÓÒÞÞž~ûô颒’Ç:ÑÑž11>ÞÞ69^. ÓÌË—yy÷ñ9w©TŠŸßx˜fh0Èô@ùººz³²þ ¯¥E wc2=üüÆëêÂo˜ö2ýjiéb±*ð”/bøœ»0Í>Ð0éÒˆ…çryN11>ÁÁôõáîiA¦——¶6îåËX¬ŠììòînL³4 dz h¢CáÛÚ¸S§:ÄÄø„„¸(;4õ™^y¿þZ™™YúË/w;;{&N´ ™ðÞ{Þ¶¶#”™(>þçŸËž?oõñ±a2=""Ü,-‡èPx¹€L?xðiöñoù/_vàsîFG{ÙÛÃ4û@Í@¦ƒîáÃÆÔÔÂŒŒÛOŸrìíóæ½å9z´©²ãÒ逘s73óvc#L³Ôdz0X?~™–öÇPxóÙ³½a(¼ÜA¦W$¡+.~”™y'+ëÎóç­cƘ…„À4û@ @¦röâE{zúm|Ȳ¹9Éôœ3Ǿý ÈôJAL³ölÉ£G/F2 s…)€Ê‚LäCt(¼‘‘þ¬YÞpàSÈôJ‡Ï¹‹ÏÓljjøî»0ç.P9éÁ O£i͘áÊdzøû×Ñ¡ðŠ™^u>-­8'çŸ/ s‰ññõuÔÓÓVvhC dzôô)ç—_îâÓì¦çï?>8xBx¸›¡!̹ ”2=x B!víÚCá;:º##ݧOŸ8|¸¾²C¢ Ó«²úú–Ÿ.c±*~û­šFÓòõuŒŒt s6 æÜ ™ô‹ØPø9s&…‡»™š*;®¡2½Zàp:ssï‰N³â2c†«™]Ù¡!2=¥ººñÔ©?†Â»¹Ž‰ñ™1ÃuÔ(eÇþ™^½Óì_¾ü@ âsîFEy20Í>Dé‰ÚÚ¦3gŠñ¡ð¶¶#Þ{Ï †Â«&ÈôjŠËí½zµ*3³4;»œËíõö¶a2="#ÝGŽ„iöüA¦illÏȸ–V\VöÔÂÂ(&Æ'&ƼJ©¯oyÿý#|¾ÿ“Ëåq8£Fý5£ð„ Vûö-VRtàµÁ4û@ ÓƒW†Â›˜DG{ÁPxUæç·£ºº‘ô- ­_?ãÿUpHàÍÓì_¼XÞÔôÇ4ûQQžÊ ¨=ÈôC1þòå::Zaa®sæLzç{--ª²C²ìߟ·sgŸ/”|‹B¡Ü¼¹ÙÚ¤PcÄ4û.”64´9:Ž q ™ðÖ[ã”PWé‡b(<‹UA¡P""ܘL?¿ñºº0×z¨¯o™4é Éÿ\*•âêj½V)Q¹#¦Ùÿùç26»eôhÓÐЉ0Í>ÈôêËí-+«›<¹ï“}@˜—w?3³”ź×ÕÕàé>}ºëðá0´Wý0™ÿ¹}û‰PøÊ?/Fݺuæø*+*0xð9wÏ+©©yaee箑‘>>;´ŸœøÏ.}õU6BèïÙ°! žÅj Ó«¡Û±#kÿþ<„†aÚÚZ±±Ÿ~‰¿+:ÞÎŽ1þ[QQž£G›*5d  $]½ZE${*•²gÏüyóÞRnT@ñD§Ù×ÓÓž6Í!2Ò]lš}_ß6 „´´¨ÎÎVGŽ,‡c™^Í´¶v­ZõÕ+•¢;ŽÁþË/ë23Kñ¡ðcÇšÅÄøÀ\7š--­øÿþïGâV½¶¶ÖÝ»ÛaBõ¡¬¾¾%/ï>‹U‘Ÿ_tšýÆÆ6_ßÄÇ´µµôôt¾ûnÉ»ï:+1Z HéÕÉýûìeË=ÞFLœBÐÖÖÒ××™1ÃuæL¯iÓàêœÆëèè™8ñ³Þ^>BˆF£†„L{¶MÿçÌ’‹#F¼y¦¯¯¯ñâ…\âj\\èùùºFF=ðŸ;0&LxóL¯²¿¥¥§¢‚Ýχ±®_¯yÿýïÿö7ïQ£ý…ȬL PP,@¦€ô·¿Å(; Y***äUÕˆ#\\àNókóóÃ(Ó  @e¢– äUÕ„  †¼j“§óäI[üµ¾¾6þÄ.®‡Í12Ò§P…B…)±5Iccã½{÷Ľ=Ô•J‰‹ Pv@E™šúú:*;  |ðDê ÆCdƒLh2Èô€&ƒLh2Èô€&SûLÿäÉ“åËûþaêêjüGˆ¢Åoß¾M£ÑNŸ>M,OOO×ÑÑ)//Œ˜ÅPDØØØ,]ºTöàr Ã/^L§Óû_uuµ<"U’ûZl§“Â{B>ùæÄ:í¶mÛ(ÊÎ;ߤN¹T"FöÖHMM¥)--•c Ð{ûß{_÷È x2ÚÒÏCqgggBB‚»»;Në­·vìØÁçóÑ€¶iï•WKû¤àŽ­ö™þüùó3gÎ$}«¦¦ÆÜÜmllüÉ'ŸH+îéé¹iÓ¦5kÖ´´´ „Z[[?úè£-[¶¸ºº^䢮_¿Îf³ëêê’““ÛÚÚ¼¼¼ðHHÕ×ן8qBrÄ$ÀIÛײá=(+ÚyäN´Ób–šš:f̘S§N ¸BÒJÞ¼ ²·dtt4›Íf³Ùׯ_G±ÿó"¼‰7é½j}dèÏ¡¸½½ÝÇÇçæÍ›;wî,))Ù¸qãñãÇCCCÁÀ¶~à%ßF êaäõ`"òóó1µÑÕÕEúVUU•X%Å{zz&Nœ‹aتU«¼½½{{{-êW „ªªªˆ?…B¡ŸŸ_bb¢´Ï“¶«ÿõËÑÝ»wïÞ½«:õˆ!6T¶˜XGzÝüZD×uçÎ …Âb±B<X…¤• jD ꊯ÷b–ŸŸßÐР:õˆ@ïUØ0öçP¼~ýz___>ŸO”êèè°±±IJJ’\EŸ[cP»–X0Š\;iíïô£F§Ç?yò¤££cgg'BˆÇãmذÁ‚Á`lذÇãáOrssÇŒSPP°eË–1cÆŒ1béÒ¥ÄVÉR¡ÌÌL777==½qãÆ;v !ÄçóI‹755êëë‹^¨!^¿ýöÛ¡‘#G")Wrˆâ!”””£GîØ±#999%%E[[[Zrlš$ …²jÕª¬¬,iõˆ¶«Ÿu^ºtÉÞÞÞÄÄdÇŽÄÖHOO?~<ƒÁX³fMOOéÂþv‹ÁGÚñ„Bá¾}ûœ‡ 6eÊ”üü|üš˜Œ«p.\ðôô400°´´$®uKv$±Lº7)ÊÑ£GGŒ±sçÎcÇŽÙÚÚmÞ¼/EºkD{B(55Õßß?88ØÉÉIô9…B9qℳ³³©©é®]»BkÖ¬Y±bþnGG‡ÁíÛ·eT"Ö„–––÷ßßÜÜÜÚÚzýúõÝÝÝ}6ØÒþI‘Æ)­w‘nX1Ð{ ²{¯ä?F]½z•´`ŸXrïL™2å›o¾Aq8*•º~ýz„@ 011ÁY’ÝL,¼f ÃÖ¯_ïááÑÔÔ„ú}(>~üxbb¢–Ö_H&$$œ8qbÛíµv–´&»½HäPŒB;vŸç’–.]ºlÙ²çÏŸ[XXܼy_øïÿ{öìÙOž<)++óòòÚ¸q#~:3cÆŒ¼¼¼­[·º¸¸”•••——Ožø ®®îøñã¡ÆÆFŒ¬#‰ŒKî ÃB ,hkk;|ø0BhîܹmmmÀ7²´]#Úë„B¡­­í0 ûôÓO]\\ˆ5"„bbbš››:„zùòååË—ÍÌÌx<†aÇwqq …2*k¢E‹‚‚‚>|XVV6qâD|çÊnQƒ´@Ò‘Æ)­w‘nXQƒ×{1Å~§Wdï%^ãÇ(6›MZPöÞÇÈöÎ_|aXzzúðáý¼¼0 +..ÖÓÓëììÄȺ™h$ø3B¡Hóx´ý9ã©÷Å‹bö·ß~355ÀvC•––¶¿JÚÎ’ÖÁúÓ^Òþ0x›4$Ó777[[[»¹¹‰®ÒÉɉÍfã¯Y,–‡‡bYY†aãÇ?{ö,þî½{÷ˆ×’¥8޶¶öîÝ»›››…Ba{{»@ V|öìÙh¦'Šã„Batt´––ÖâÅ‹EÛ;¨MÃúÊôÒÖŽ/‘V§(„PAA†a_—hü†ìcÌIDAT:uÊÞÞžt!&“‚3½dÇsqqIII!>ðý÷ßË>VöôôÜ¿¿££C \¾|™Øò’I,{Iî ÃB%%%†õööн®ªª’¶kD{Ý7h4~¼»uëB¨¼¼ !„ÿ3òùü‘#Gæææb¾sçNÙ•ˆ6¡··WKK‹ØÈgÏžÅw®ì&5Hëä8±mE§´ÞEºaE ^ïÅ›éÙ{±W7¸´‚²÷>F¶wŠ‹‹étzooïÚµk7mÚ¤­­ÝÜÜüÕW_…‡‡cRº™h$øë„„ô꽪þŠñLOœ®_¿nnn>€í†ÈHÛY¤¬Ÿí%íƒ×±åsõ!dllQO,¬­­µ´´Ä_ yôè¾ÜÉÉ !ôøñcü:BÈÙÙyÖ¬YÒJ™˜˜äçç߸qÃÚÚÚßßÿ×_¥R©¤Å;::x<žä©IÛ…b$‹Ÿ8q¢   ///---==]1M#­ªªÊÎÎNöÚqý¬ÿ]#±·ˆ°œœêêêd,T’¯¦¦ÆÃÃø€›››ìttt*++ü½½SRRð…Ò:’(i{aذa!üê¢èk$e׈­+55•Ïç›››S(ooo„è||¯jii½÷Þ{gÏžmjjÊÉÉY´hQ*Á544¢SÙÛÛ;WFÒ:9)iq"²Þ%»{‹nè½è½ø1Š´ NöÞ—Ü;žžž†††EEEW®\‰ŠŠòôô¼råJ~~~DD’ÙÍðHpEEE_~ù¥´&ŠGŽ)9²£´´T´ò~n7œärb]’9It°~¶WEvìdú§OŸîÛ·/88xݺuÄBü¬Š8!ºqã¾ï7VVVµµµø’ÒÒÒýë_ÒJq¹\¡Pxúôi‡³bÅ &“ÉápH‹_¼x1,,L40|¸Å³gÏúÓ ±âõõõkÖ¬ùꫯüüü¶lÙ÷òåK4M20 þûî;ü?GÆÚqý¬“ô~¶ˆª¬¬$~ât¡Šìx£Fºsçñ>[ËåÎ;wÆ %%%û÷ïÇJv$I²÷‚´uIîÑu ‚S§N}ýõ×ĕõkמ:uŠ8ÜHž´Í™3çܹs?ýôÓ´iÓð‹½}V‚³°°ÐÒÒª©©Áÿ|øðá¨Q£úlAZ'—F2Nœdïêφ…Þ‹@ïÅQ¤ûCrïP©ÔðððôôôÊÊJ//¯wß}—Åb]¹r?^Éèf¢'™™™III©©©ùùù’Mq(^´hѶmÛð/Á¡ œ_"ÙͤEµeËGGG± Ù‡âÖÖÖñãÇ^¼xñÁƒ›6mB1Œžžž×Ýn˜ÈW”´%­ƒõ§½Äÿ b:¶|îÓïÝ»×ÝÝöpîÜ9KKKüþJ[[ÛòåËMLLÌÌÌbcc;;;EÜÝݽ~ýz+++##£ 477ãË%KavêÔ);;;''§ôôtÒâ½½½ø!ÂöíÛíììð«=†ñx¼iÓ¦ÑétÉÝ/V<%%EWWWô¾Qaa!•JMKKì¦a¯~÷=zô¢E‹D²×.£Î>à‡;v¬¹¹ùßÿþw.—KºPvgPd¦'íx½½½_|ñ…­­-NŸ2eÊ?þ(ûX‰aØ×_mjj:zôèýû÷/X°ÀÄÄD´'Ÿí<˜”½ÙçRl׈õº¸¸¸ÐÐPÑ6 …B;;»O>ùDFå«V­Ò××okkë³±&p8œ%K–˜™™YZZþãÿ Î2û“é¥ur±&J,Ni½kV^½S`¦WpïÅ$vŠXAƒõ£“î––†?+×ÙÙ©££“@¬H²›I‹ŠËå:::nÚ´©ÿ‡b Ã:::Ö­[7qâD===;;»O?ýÔßßÞ¼y¯µÝˆæK’¶³¤u0ÙíûTLÇ–Ûy@Ý‘šIʦjãéе³iÓ¦… *;о‰Å)Ç]#¯Þ‹©Øxú¡Ð{COOÏo¿ý6ØkQÀÞ‘WÇ&Íã4Òó€ªéî¯?zôèÉ“'•‹,ê'Ð :::øD@µŸ  ÀðáÃãââú³¨Ž›7oúøø|ðÁÊŽEÒ8娻 ÷ÅS@ÔŽMÁDnW466Þ»wOÅ#@uàO ¿ù<çòª€×RPP0aƒ¡"õðæHó8|§4dz@“A¦4dz@“A¦4ÉxúúúzÅÇÔQww·žžž¼ª‚ŽÔWKK þ»(WGG‡äB’L_YY9øÁ !¯Lÿ:‹\ª@ñà<¨²WÆÓ@ÃÀ}z@“A¦4dz@“A¦4Ùÿ’÷Ê6;”,vIEND®B`‚XQilla-2.3.0/docs/simple-api/Item_8hpp__incl.png0000644000151400015140000004513211653571064016337 00000000000000‰PNG  IHDRƒÃ·ES\bKGDÿÿÿ ½§“ IDATxœíÝwX×Úð³»ôŽ4éE:JSPcW4–X¸ Æ»ÑÜH‘X‚±+Fo  *^Ĉذ+*Ø”* ôÞëR¶Í÷ÇÜo³Â² ìî,Ëû{òäY‡™3ï™93ûîÌ™3$ Ã"G&:0@A& ˆ™( d¢€RD诞={¶gÏ¢£¢íÛ·O˜0è(@’A& øJUUU?ž8q"ÑE\\ܪU«ˆŽ$d¢€> ":¡ˆ‹‹#:|ÐO2Q@ ÈD1 Ä€L2Q€pMš4©¬¬¬• @4 ˆHEEÅܹs‰Ž€L "l6›J¥1™(@DÖ¯_Z°`þO&“yòäÉùóçÏŸ?ÿäÉ“L&!4iÒ¤û÷ï/]ºtÞ¼y—.]zôèÑ¢E‹fÍšuîÜ9že¾{÷ÎÛÛ{öìÙ¡²²²I“&½zõjÉ’%óçÏÿóÏ? ω¢ª4~ ˆÈ‰'Bׯ_ÇÿyõêÕŠŠŠS§NýþûïIIIçϟǧ¿ÿþ¯¿þZ½zõ™3gÞ¼ysöìÙuëÖ…‡‡ó¼žúöíÛ3g΄††rf¸yóæþýû÷íÛ÷öíÛK—.ñ™€X‰ˆqÿþýŸ~úI[[ÛÌÌlÍš5 øt///…iÓ¦!„/^¬  0}út„Psss×Bð™ÇŽË=úuë lllV®\Ãg"bÁ{çĨ¬¬twwçüSQQÿ   €’’’êô™' „‰Dâžh``€022ª©©á3± CUUõèÑ£úúú¡–––úúú¯(¤SŠ+--533C•””à©jw îÎDŠF£áÆwæÌ™ªªªüüü€€€›7oöfñ»wï¶¶¶òŸ'$$¤¬¬ìãÇ¡¡¡S§Nå3±àš(@D|ØÑÑ‘s+Ÿ'777__ßööö)S¦x{{ã÷â;MHô Ã0¢cô3Tj{qq]tôýíÛWÅÆÆÎ?ÊÊÊ|||:…Äsb&Mšééé)Ð|®‰º…aXEESQQ]QQmQQçC}}+BHEEšèôo‰B¨©©íÓ§Êì쪢¢ºâb<é¬kjjÃÿª¢"ob¢il¬ñÍ7‹²´Ô±²üðá//b£îLQQqöìÙ½™@@& ÀÀÂb±KK8¹f§¤“B!¨iØÛÌží`d¤al¬al¬¡ªª@tར¦¦¶yóæÞL  @’ÕÖ¶äçWçç×äç×ÔÔÕµ¶v „¤¤ÈúúêÆÆš†sæ8kkk(+˵X P”ŽMOM•rt4tr22D‹çˆQú2Q$•Ú^PPƒ'xöYPPC¥¶#„ää¤MM5ML4'N´62Ò01Ñ02Ò00$%ã¸ñAÖÓS|û6/<ü“ÉVQ‘sp0rr2rr2vt4ÔÑQ%:<‰Ðÿ0™ìâ⺜œªÜܪ¼¼ÿ¥žµµ-èÿ“NSS­1c,||F›˜h™šjêêªÂõ¼/ÅbQ½¼Ì<==™Lv^^uZZIZZi\ܧ'l6¦¢"ge¥ëêjæêjêäd¬©©Dt¼Ð/A& €¸£RÛóòªss«rs«óòªsrª k –´4ÅÔTËÜ\{ÄOOMSSM]]5¢ã•4RRd+«ÁVVƒ=<\B­­eii¥ii%11Ç?Aéè¨ØÛÚÛ¸ºša"//CtÔÐ?@& €x)+kÈË«ÎÍ­ÎÉ©ÊË«ÎÉ©®ªjB©©)˜›ë˜›k{y¹ZX蘛kjÀíuÑST”uu5su5ÃÿYUEMK+Á¯˜ž?ÿò÷ßR(ä!C´íí ðÜÔÉÉXZšBlÌ ¶ €HååÙÙ•?VæäT}üXž“SÕÒÒA&“  ¢mg§?gŽ“¹¹¶……ކÜÿG::*S§ÚMj‡ÿ³ªª)!¡ !¡ -­äÎÔöv†‚‚Œ>ž•ÚÛZZê@O à€LÑ©¨hÌήúô©2;»òÓ§Šììªææv …lh8ÈÚZwÜ8ËU«&XX蘛ëÈÊö›cÓÏϯÇy0 ±XrRRí"ˆ‡?6[!6™ÌRù::ª³g;Ξíˆât0ML,xñ"ûüùxS#WWS{{CggcøààmŸK]]KffùÇœì“J¥‘É$## +«Á––ƒñÿ[Xô§¼“Û›7oŽ=Úãl­­Ò¹¹êL&ÙÙ¹’ð«ÙÙêrffšš´gþùçŸG-¨U·´tdfþ¯ƒibbAQQ‚¦€2QƒÁ`åäTee•geUdd”}üXQUE%‘HFFƒð¤““wÊÉ ”—d¶´tìÚ}éRü˜1z˜˜h¢RÛƒƒï‡…½tu5=tÈsÈm¢"©ªj³Ҵ´Òwï Z¥¤ÈffÐÁ0°@& À×`³±œœª´´’ììªììÊ´´’ª**âºÄei9ØÒr°™™Ö€M&îßOߺõÎܹsîÂ…#Īsä»wQ……µ6LÞ´iª8죢¢º„„üÿÏMK::˜ÐÁ0@& @¯à—<ÓÓK³²Ê33+²²ÊëêZ(²±±†­­ž­­žž®‘‘Ñ‘¯¶¶eÛ¶k·o§,\8bÇŽ9ZZÊDGÄ“É {yàÀ]ccC‡<‡7!:¢0¬üüšÄÄ<7ÍÍ­b³1yCè` 0‰ÀÎÌʪHO/ÅÿËÌ,§Ó™**òC‡ê[[ëâÙ§•Õ`èØÇ ðˆˆø={n++Ëíß¿ÐÍÍ–èˆzPTTõüy¶·÷¨;æˆç›N¹;˜¾}›_RRþÿ껫«©‹‹©½½áÀéò0‰ð?µµ-ÉÉEx¿=ün;‰D²°ÐáôÛ³²¬ªª@t˜â+/¯ÚßÿJbbÁÚµ“6ožÖrôÛ·S¶n½&%EÞºõ;|øzqÆÝÁ41± ±±»ƒ©««éСd2ÜÇô‰‚‹Jmÿð¡”sÕ3?¿†Åb¬:l˜½½Á°aÆÀ+‹zƒÁ`;süøSccǽÄêNw/55µíÝ{'""ÞÍÍvß>w}}u¢#ê-©%t:SQQÖÖVÓÁÔÊj0Ñ1@· HGóDzÔÔâ””âääâüü ÃŒŒ4ð¤ÿ^ þ¥’“‹ýü"óó«ýü¦¯^=QžþùjññyWÊÊ7ož¶ví$ ¥Ÿ½ÂªSÓœœ* Ã8OÑÙÛn2h"ÑaÀ? ’ŒÅbçäT¥¦–à©gVV9ƒÁÒÒRvt4rr2rr2vt4„î_­µµã·ß¢/]Šÿæ‹C‡Äb¦¾ëè`†„<þóÏ'––:ÁÁ^†DGôõš›Û³²Êñ›øññy55Í!WW3S<7…¦bA& $ >¸çšP~~5“ÉVWW1Â<ÜÁÁPEEžè0%AlìÇÀÀ¨––1¤©ï>~¬ˆJI)Zºtl`àLEEY¢#î¦ MMÿt0ÅsS è` 1ÈDA¿Çb±?~¬HHÈ‹û”œ\T[ÛB&“,,tœœŒ­­u¥¤úÙmVqÆ=HÓöís´µÅq¦¾Ã0ìêÕwAA7UTä÷ï_8i’5Ñ ‹ÅÎÍ­æ<Ÿ‡w0UR’µ±Ñã¼óÉØ†$d¢ _jmíHJ*JH(x÷®àýû–– ¥#LœœŒ Ås8žþ¤iïÞ;ŠŠ2û÷/œ:Վ舄®ººyÏž[W¯¾›=Ûqï^wIíFÌ`°²²Ê ðÜ´kÓ#LÔÕ¡ƒ)@ð ý†aÙÙÿ»íŽ¿³›L& jàâbêêjêêjª££JtŒ.?¿Æß?2!¡`Ù²±3T®ÿøqæÖ­W©Ôv?¿é+VŒ“ø[ØTjûÇ剉 ø}„±±>v©½½ƒƒ‘¬¬Ña$d¢@|ut0òò RS‹©ÔvYY)WW3WWSWW3''c%%Iè½'þ¸i ö1”èˆ@£Ñytòdìðá&‡yXZ ¡‘8L Þ¿/lk£CS€ @& Ä ›}øPúòeÎË—9ïÞ´´t((È8;›Œiêêjæìl,ÏŽô#))Å~~‘¹¹Õþþý~¦¾ËÈ(ó÷¿’‘Q¶zõDÿé22îº`§¦))Å ‹»ƒé¨QC & ß€Lˆ…¼¼ê/r^½Êyõ*§±±MEEnäÈ!cÆXà/ŒçÑÚÚqàÀ½ ^Žiì%ƒ4õþÂúƒïii):ä1v¬%Ñ©­þáC)ç‘ü®L]\LÕÔ` 4@· „IK+yñ"¿ßW_ߪ¦¦0nœ%þ<´K¸¸¸W©TÚo¿Í“¼Ašú®²²iÛ¶k|pw¾sç<.G¥¶§¦ãc¨ñì`êèh4/$ø€LˆTYYClìÇ/²ß¾Í«®nVQ‘›0ÁzÜ8KSssí~÷J‰TWײuëµÛ·SfÏvܽ{¤Ò$11[¶D±XìíÛg‹ÿ ëE»ƒé»w…4]ZšbjªåêjŠç¦––:ð#€2Q t,;%¥8&öcFF™Lrp03Æ|Ì SxÅ‹ø€ƒ4õ•J ~pþü‹Ñ£‡<èif¦EtDbŠÉdçåuî`ª¬,gm­kooèêj:jÔ--øÙÀ€™(–¦¦¶gÏ>=~œùôiV}}«‰‰¦››íøñV£F gÞÅP~~M@À•øø¼åËÇùûÏPQ@ƒ4õ]BBþ–-QEEu6LÞ´iꮫ7zì`êêj oâ` €L†a‰‰11™11ÙÙ•JJ²“&Ù¸¹ÙNœh W;Ä‹Å>y2ö÷ßi{º¸ ÄAšúŽÁ`>wøð33íà`Oggc¢#êO¨TZjj ÞÁ4)©¨®®…B!¢g¥ÐÁ ™(*µýÙ³øý÷ºº}}õéÓ‡M›f7ßÅ_jj‰¯ïe¤IP k·l‰zõ*gñâQ¿þ:.ÿ¼ƒiBBABB~zzi{;CZšbc£çâbŠç¦ÐÁ‰™(øzµµ-¤?~œùòe6Æ6ÌÀÍÍvÊ[CæZüqÒtè§©)tp ü…õ¿ý---µ{÷üï¾s :¢þ»ƒibbÁ‡¥l6¦¢"ge¥‹¿çÂÑÑn¹ÐA& ¾XEEãýûéwï¦&$ÈÈHMœhåæf;y²­ŽŽ Ñ¡ÞzöìS``T}}ëŽs¼½GÁå%kllÛ·ïÎÅ‹o¦NµÛ¿¡žžÑIˆÖÖŽŒŒ2NÓììJ„§ƒ©««Ùðá& 2D‡ è-ÈDAo×ݽ›vï^ZRR‘’’¬››í¬Y“&YËËÃI¿?©¯oýå—«·o§Ìšå°gÏøý T¯_çnÙUSCõó›±|ùX§Lપ¨ii%xVŠLÜ©ƒ©““1ô9@œA& zP]Ý|ûvòÍ›IIIŪªòß~;tÖ,‡ñã-áéþèâÅ7ûöÝ‘——9pi‘övÆñãOŽ{lm­{ø°×°aDG$ɪªš  ÒÒJð¦ 2vvúœGò¡ƒ)â2QÀ•J»?ýƤW¯rä奿ývؼyÎãÇ[ÂÕ…~ª´´!00*.î# ÒDˆ¬¬ò€€+©©%K—Žýå—YpûX8L  rs«:u0ur2ÖÔT":L:ÈDÁg Ö“'™QQ‰Ožd!„&M²ž?ßyÚ´¡ð|ÿ…ÒtäÈ#õà`OWW3¢# ØlìÒ¥øÝ»o ¤xà€Ç„ VDG4°´´tdfþ¯ƒibbAQQú¼ƒéˆ&Ð×уLüOrrñÕ«ïnÞLjn¦Mšd3{¶ã´iv**òDÇú$5µÄÏ/2'§ iUUÔ;®ß¹“:{¶ã¾}îpMŽœ7‘¦¥•¾{WØÐÐ*%E63ƒ¦ˆd¢•Úù6<üunnµ¥å`//Ww÷ðªq ÐÖFß¿ÿî… / ƒƒ½¬­u‰Žü#&&cëÖk--Û¶}cˆƒ¢¢:|\}üù§Ž&t0@4 ¸’“‹ÃÃ_ߺ•L¡çÏwöòéädDtP@0ž?ÿ´e Ò$ÖÚÚèG>:y2ÖÅÅôÐ!Ossm¢#ÿÓMSyCWWS{{Cggc¸˜ € @&:àP©í7n¼¿xñMFF™­­ÞÒ¥c,®¨o‚‘œAšfδ߻wŽŽ*Ñ~ÒÓKýý¯|úTñãS6ntƒ!)ÄwÓ„„‚ââ:˜ººšº¸˜ÚÛBOz¾d¢Hqq]hèó¿ÿ~Ë`°¾ûÎaÙ²1#FÀÆ%JTTâž=·)òÁƒ0HSÁd²ÃÂ^HÓtxÔ¬ß)*ªûå—«Ïž}rwþÛoóÔÕ‰Žô wÓÔÔ:©¨(kk«Çé`je5˜èk‰J¸˜˜Œ¿þŠÏ:TÕª óæ9ÃÓ †3H“¾¾Zp°×È‘0HS?vûvʶm×ÈdÒ¶m³=<\ˆ|ƒ•Ÿ_“˜X€ç¦xSÎ@Qöö†Ã‡› ¿1ø d¢ëñãÌ#G¦¦–¸¹Ù®Y3ñ›oà–ŸJO/õõ½üéSå¦Mn?þè&+ ½ û=*•¶gÏ툈ø)Slöí[h` NtDà+57·ge•ã7ñããójjšB::*®®f..¦xn L€LTÒ°ÙØµkïNœxš›[=¾ó?N±´„{C¨£ƒyøðƒS§b ò²±Aš$ÊÛ·ùWJK6ož¶ví$xa½àî`šPÐÔôOS<7µ°Ð¦`‚LT¢$&üö[tRR‘››íæÍß::¨LýFÿñÇ‹!!>]ßûòâEö–-QµµÍ¿þ:wñâQðí%‘ ÖéÓqÁÁ,,t‚ƒ=»ÎL&; àÊþý áZx¿Ãb±ss«ñ¬”ÓÁTIIÖÆFóÎ'cc ¢Ã@ •EEuûöݹs'ÕÕÕtÇŽ9ÎÎÆDGújãÆ‹×®½_·nÒŽs8Zƒ‚n^»ö~úô¡ûö¹Ã M¯  fË–¨øø¼¥KÇnÙ2SIéŸ׎²wï—?þXL`„ ï VVVyBBž›æäTaØgLGŒ0‡Ø€¤‚L´ßkjj;vìñÙ³/Œ5¶nýîÛo‡€óç_lÛv!ŒB!Ý»·yØ0ôÿƒ4a¶w¯ûìÙŽDÇDð«WßíÜ-++µw¯ûŒÃB……µ&`0X$iϞ˗%:L 0TjûÇåø¸ú))Å];˜:8Á…p 1 íßnßNÙ±ã:†!?¿é‹’’‚Îd’àõë\/¯,†¢P(ffÿýïª;n”rÉïÚÁÔÅÅTMM¡7EmÚtéêÕD ¥Ý»çÏ›ç,ìÈà€L´Ÿ¡Ri›7_~øðÃÚµ“6ožÖõ©jЯýòKTDD<~Ë•›´4ÅÉÉèÆ$܃èÖ®ýï½{©]‰”yΧB¢※ƒirrQmm BÈØXÃÅÅÏMùt05jwqq=‰DBsuìin®-ÚðÁ™hŸ·~}¸œœô_}ïà—Ç$MddÂæÍ—»;$I$Rp°çâÅ£D+11K—†v÷W‰´w¯û²ecD[ÜLß½+¤ÑèÒÒSS-WWS<7åt0mjj³µÝÎ9ùP(d Ö-·e týB™h¿ú|÷î[ãÇ[þñ‡7¼/Nò|üX1cÆ‘Ž&Ÿy”•å_¿Þª¡¡$²¨€XiogŒ·¿¼¼‘Ïy[JŠý““Œ% >ÓÞÎøð¡4%¥$9¹(9¹¸°°!¤££êèhèädL¡öî½Ói))²ŠŠ|PÐÜ… GÀÝ <‰öl6¶kWthèóÀÀY6L†3‚ä¡RÛ§N ®¨hb2YþD&“I$Äb±UUåG޲nÝ$x³ü€•”T´ÿ÷ï‹ÚÛRRd ëz§PÈêêŠOŸhjÂ/ЭNL³³+¥¥)º§#„ð¯›#Œò²²‚×õ¡€LTÜÑhôuëÂ_¼È>qb Œ*‘X,¶—×_‰‰œ¯ü+D"YY 3ÆÂÕÕÔÕÕLGG…Ø8ø(*ªKHÈOHÈõ*·¨¨Ã0î4BZšbk«ý“Œ 9 zÅÃã¯7orØlÞù€”ÃÐÒ¥cùe¦¢¢,Ïyøj‰Š5:¹|ùÙ÷ï‹Î[ñÍ7¼ ÌÏÏüø±ˆôüyíÓ§5$Â0D"!MMYSSEccy##yeexºfffnnn})F£544*Ñ«¬¤¦¤”¥¥•%&ÖcF&“ØlÌËËÙß ÑÑI&yyyuuõ¾” n­ÎÍíxccÿyH$’¶¶òöíÓF6MT@Ru:‚ _ kõê°„„‚«W×ÛØèu7Û•+W¼¼¼D YYSuõY F-^B§—ÓéåÖAtPý‰‡‡Ç•+WúRBuuuff¦ â!Æüô©.'§!+«¶  qÅ ‡qãàÑFÁÓÒÒ²³³ëK bÕêêëi?þø¨»¿R($‰Äb±ñdA^^jæÌ!sçZ‹TÀWëtÁ½1…_ MN.¾víGÝç‡_ýT~~¡á ii ÑôKžžž‚*jâĉ‚*ŠX3füï“É.,¬…x.##CPE‰I«»?!D¡¥¥)L&  LZ𢧧ff¦el¬ah¨ah8ÈÈh‘‘F/G' ;] ÈDÅT`àÕøøüK—Öô& ý—™™Ñ!É$%E†4ôFIIýÈ‘fÆÆš&&FFFFƒ 5 c:ÈDÅÑéÓÏ®\I8wn<% @¨V¯ž°zõ¢£ôó;11»vEoÛ6{Ú4xR’ 2Qñ’Ÿ_³iÓ¥ï¾s\»v"ѱd¢b¤½±bÅ9cc£GÿÃ×@âA?Q1²cÇêjêÓ§òò2DÇ tpMT\ܺ•ñæða¯ÁƒU #77¿ÛõÅÅÅË—/Ç0ÌÇÇGII|ß1ȧ.xB$.òòòcÆŒIIIáS¦˜Ôº¼¼|ñâÅ&&&JJJ...7nÜ $ ž[˜D"åææ¤â4Wþº;ŠñÅ“““¥¤¤¢¢¢8Ó£££eddÒÓÓ…s'Üš‰‰É÷ß_SSÃgþ/=ÐT«ƒó6œ·û‚ðó6d¢b¡¡¡uûökóæ9ÏœiOl$jjj[¶lùÒ¥nÞ¼9oÞ¼òòòˆˆñ®ù‹àUÀ?¿~ýº¢¢¢¢¢"--ÍÂÂÂËË‹Ïp­âP뺺:'''…ÈÈÈ„„„ýë_‹-zøðaßKÎÏÏ×ÔÔì{9@°¸›k'Ü»¬»Ã_ÜÉÉiëÖ­›6mjllD555­_¿>((hذa‹œ~ •––ž?žJ¥:;;ã‘ð$šØ‚ó6‚ó6—þwÞÆ€ðõ½<|øÎ¦¦¶¯X622Rû1''/–óY³fµµµõfNbñ‰¯†a¡œœÎôªª*„PUUÕW”)26lÀO»~~~nnn}/ùKkÇsþN›T€<<<<<<úXHUUUll¬ ÂNsíŠç.è4‘³xGGÇСCW¯^aØÚµk‡N§Ó…õg:µ 6›=~üø_ýµ»ù¿´) ¯Õ}øðáÇ},DH­ÎÛ88o‹óy»ë×D‰÷êUîß¿ öRQ‘Ò*nݺ¥¯¯S{ò IDAT¿æøï¿ÿ¶´´lmme³Ù!!!666ÊÊÊ£GŽÅ¯Æó¹§sçÎü7œ®®îð‰µµµŠŠŠòòò£FB <ýÿÕþ'Ož½|ù’ç‚$éܹs666ZZZ755UUUݱc>ƒÁð÷÷×ÑÑÑÖÖö÷÷g0£G>zô(B¨¾¾žL&ûùù!„X,–ººúÝ»wBË–-ÓÔÔ400ðóókooï ^2†a~~~ŽŽŽµµµÜUèZeiiiUUÕîBâ®5Ï:Ðu|SDDDØØØ 4èСC!&“ddd¤¥¥õý÷ßs®ñ\üÚµk?ýôwØAAAgÏžÅ?w·Mð¿rîFµc±XÁÁÁ–––ÊÊÊcÆŒyûö-Ï–óèÑ#sssuuõýû÷sVmee¥­­½iÓ¦ŽŽž»kŠ"ÆóB=í¸ÞïÄÛ·oÛÛÛËÉÉ™™™…‡‡£îÛ§¹òÜ]ÃNuání222aaaçÎÛ¿ÿùóç䥥» R€UëŠD"­]»?Šy–Ó©)ö¦L‰lupÞ†ó6’¼ó¶0^Ð{t:sâÄË–…~u ½¼&úý÷ß/]º´²²RGGçíÛ·†:uJ[[ûúõëåååwïÞ500@uýIÍù@¥ReddV¬XQZZzñâE„Puu5†açÎ Ç>ÿ]…ž1cÆÓ§O+**x.ˆZ´h•J EyzzR©ÔS§N!„jkk1 ;xð »»{qqqZZš³³s``à®]»fÍš…aXtt´ŠŠŠ³³3†aïÞ½“““kmmÅ0ÌÛÛ{Ê”)yyyiiiC‡ݹs'w$xÏ!6›Í9áÑrª€G•’’ÒÜÜÜÜÜ\VV¶~ýz¼+®kH~Mv7@KKK×ð•.\¸°¡¡áÌ™3¡ºººàà`;;»´´´ôôô‘#GúùùuW>þEU__ßÝ®ïn›pï)NÝ;…ÑcíŽ9ÂÝŠôôôº¶F„Ðwß}G¥R¯]»†ï\¼ØiÓ¦eggÇÇÇ›››s¢ê4‘«å5Ñ®GÖÓîÞ¹sg/wbKK‹¬¬ìÉ“'+**Ξ=+%%ÕÒÒÒ]àsÄõf"wkÇ"„öìÙÃ=Q¨UÃx]qILLTSSã¿vü¯Ý•ÉMx­N”×Dá¼ çmÉ;ow=‚ %ØéÓq¦¦þ5_]B/3ц†{{{N+±³³ ãÌpáÂþg´ŽŽŽ¬¬¬––‹õìÙ3Ή»»;~8u=NÒÒÒø,ˆJJJÂ0ŒN§wúŒÏ`mm]QQãèèøîÝ;%%%:¾yóæ­[·JKK744Ïœ9_–B¡pšøõë×ÍÍ͹#Á? „>}úÄ©;§ X—~EJJJ™™™œ9»†Ôé˜ïn<ž3à+Å¿–8Õ·²²º~ý:>[ff&çs×ÅëëëB <÷;Ÿm½§8uïFµ³´´ìÚŠ:ŀЋ‹Ã0ŒÅbqËÙ&‘‘‘ög"ÏJqˆ2íza=íî/Ú‰ÒÒÒ‡nhh`³ÙÍÍÍ,«»Åùq½™ÈÝÚ1 c³ÙsçÎ¥P(>>>ÜõjÕ°ž2QþZwer^«e& çm ÎÛwÞ†LT¼46¶Z[oÝ·ïN_ é}?Ñ]»vQ(N×yyù””Î_“““ùŸÑ0 ‹ŽŽ;v¬££#þ¸bNNNssóœ9sð¿v=N8}κ.ˆ}þUÄ󳜜÷ÉEUU•Åbéèè¼zõjĈñññ®®®ÑÑÑ3gÎ<~ü8†a%%%!†—“––&''Ç þyÒ¤I'N\ºt)>w:EÒÚÚêëë;jÔ(Î_»†Ôé˜ïnΦè:¾RÎ@NN.==½ëNä¹8¾M¸gKHH1bDkk+Ÿm‚OÉÎÎæ>£u £ÇÚñlEbFeggw-–Ujj*'ªN»nn"î'ÚéÂzÚÝ_´_¾|¹páBEEÅqãÆÝ»w¯»Å»;â8û‘&Ú©µc®ªªúìÙ399¹›7oЦj¯LôÒ¥KÇç¿vÎÌ<Ëä&¼V'â~¢pÞ†ó¶„·¡Ÿ¨xùÏbde)›6¹‰`]%%%!!!nnn¾¾¾ø}}ýÔÔTÎ üK ÑhžžžþþþIII'NœÀ'>xð`úôéÝ-‚÷9ã¹`ohjjrN. ñññd2yæÌ™ÑÑÑÙÙÙÎÎΓ'Oމ‰yþüù¬Y³B::: %??_‹Ï™3ç÷ßǸ. \¼x‘Á`(((ðÙ&L&!TVVƽÞNaôX;“Þ´"žØðSB(;;¿=ÔÝDqÐõB=íîÞïDÆf³£¢¢êëëøá‡Ù³g×××ó\¼kså¹»ÓiñòòòM›6?>((hÍš5uuu"¨Z×À0 û믿ð™ÏÚq½,S"[œ·á¼$ï¼Í?uÂSZZobâwîÜ‹>–Ó›k¢,ËÍÍm÷îÝõõõƒ¾uë†aûöíÓÖÖ¾yófEEÅýû÷{ìoÔÐÐ@"‘îß¿ßÚÚŠß(IJJòññ)++Ã×Òݽž b½øm½iÓ¦… ¦¦¦Ž9òÇÄ0,**JIIiêÔ©†ÅÄÄ())ÙÙÙqjºxñâ)S¦äçç§§§ÛÙÙýúë¯ÝEdiiI£Ñ¸«€u¹TSTT„¢R©ø?»†Ôé×çWÌÀ³úAAAöööéééééécÆŒYµjŸÅ«««544¼½½_½z•ššºsçN„Ð;wºÛ&øÀgÏžmjjš?>âúmÝ) <øæææîÖþÇp·"333¼´3gÎ466ò/vÒ¤I999 œ=Õi"¯æü‘]åya=íîÞïD&''wõêÕšššÓ§OËÉÉÑh4ž‹s7Wžû‘{—u=йg³Ùß}÷Ý„ ð[Ût:ÝÞÞ~Ñ¢E"¨†aˆk§¸¸¸¹sçpÚ ÿµwW¦hZÈ®‰Ây»kTpÞ–€ó6Ü#¾¾—GÚM§3ûXNo2Ñ?ÿüÓÁÁ¿ÑpãÆ ]]Ýúúz:¾k×.SSS%%¥Ñ£G_ºt‰ÿ ð#GŽ 4ÈÐÐðĉ‹-RWWÇ;úàº;wt]P[[ëÅJ¥._¾\]]]CCcõêÕxßöÆÆF)))üéŠÖÖV™€€ÎŠêëë—,Y¢¡¡¡««ûóÏ?Óh´î¢¢Ñh–––[·nå®ÖåŒÆb±TTT ðv ©SM¿bžÕooo÷óóÓÓÓSUU]´h§;ÏÅ1 +,,\¸p¡žžž²²²««+'Uâ¹M0 Û³gššÚ!C¢££ùœÑ ÆØ±c•””º[;“É 677WTT=z4þ[¿Ç‹o“ÐÐPcccMMÍ7röT§‰_"ËDyAXO»û‹vbddä!Cddd¬­­£££y.N§Ó;5×®û‘{—u:Š;-&++ËÝñ.!!L&_½zUØUÃ>ïØghhèííÍÝí¡Ç㨻2EÐêD–‰Ây»kTpÞ–€óv×#ˆ„u?ô+ž²²†o¾Ù{àÀÂE‹Fõ±¨+W®ð·—rss-,, =àÙØ¾¢zzz"„®\¹Ò—`ª««333'NœØ—B€øT«ÃoeÚÙÙõ%Aµ:8o‘ÞýD‰qâD¬ŽŽÊÂ….D@ÈD PW×rùòÛµk'IKSˆŽ¨¨¨¬Y³¦7huô…ðŽ ÈD öJNNÚËË•è@>ƒFt`@ÐÖÖ>yòdo& (Ùê༠DFxGd¢¢Æ`°ÂÃ_ùøŒVT”%:"A&*jwî¤Ö×·.[6†è@™¨¨]¸ðjÊ[]]5¢ d¢"•“S•˜Xàí=šè@ˆ™¨HEE%êêªNžlCt Ä“":€„ÅbGE½óôt!“y¼ËµNŸ>-ð2% Æ’—‡1³$M~~>þžº¾+//H9@âµ··ËÉÉ ¤(hu`êzA&*:oÞäUU5-\8B…ÃxÝ‘–ÖQRr‘•5ª®>Çf·ÎÿÈÊš(+nh¸ËbQ‰Ž¥T&š-rÀ@ ¨LZ˜:Að¶OÑÙ¼ùrzziLŒÑ †=~œò$1±`êT» &»º &eˆŒŒ²•+Ï··3ÏœY:b„)ÑáÄ€~¢"Â`°îßOŸ?ß™è@$“ÉŽŠJœ2%xÙ²³ƒ«>|è{áÂJ±JCBvvú11þ..&óç‡?þ~˜à¼|™C¥ÒæÎu":IÖÞθxñÍ™3Ï**çÍs>qb‰µµ.ÑAuKIIöÔ©¥gϾؽûVbbá±cÞ**‚¹åôpw^D£’“‹>ô%:ÉÔÔÔú<,ìU[}ñâQ«WO04DtP½õæMÞÚµTTäCC—[Y &:@t 6>|ç’%ßlÞü-ѱHšªª¦§‘‘o)ÊÊ•ã–-«¡¡DtP_¬¢¢qõê°OŸ*YôÝwD‡ˆd¢¢’R//o˜7Ï9$ÄÇÆF|8‰´aÃ++Ý#æÌù#4t¹‘‘ÑAýD…nîÜc66ºxH¿A¥ÒΜyvá«––oïÑ«VÈIXaaí?œ«¬¤ž8±dÂèã@¢@&*\ ËÒ2ðàAOOO¢c骪¨!!O"#ß’ÉäU«Æ/]:VS³ÿ *pÌÀÀ¨«WßýûßSþù[‰ì ``‚»ó•‘QÖÑÁ„' {TXX{äÈÃ[·RÔÕfö÷ÁAKVVêèÑEÇ›lÛv--­ôÏ?½UTä‰ ÈD…ëýûBuuE33-¢_Ÿ>U?þ$::ÙÀ`Pp°çܹN22Ð,yðñme5xõê°3Žž=»ÜÚzõš ©`'áJJ*rr2"‘àv*ïß.]:yò¡ôôÒŸ/~ñðp4”ÓÇýõõÕfÏþãÖ­¢Ãú 2QáJJ*rr‚[óŸá :{öõõ­aa?<}0{¶#tì ¥K—Ö.[6víÚ W Ñ_®? QMMsQQtå`±Ø×¯¿?u*.+k *pRRämÛ¾³³Óóó‹ÌÍ­>yr©¶6Œ _‚gç…(&&cÙ²³{ÔÔˆŽ…`Ìðð×gÏ>/+k˜7ÏyíÚI¶¶zDÕïåæVÿðùææö3g– nBt8Àƒk¢B”•Ua` >ÀÓP*µýÌ™¸ÿþ÷5•JóñùfåÊñÆÆwpPÁ27×¾{÷çÿû’»ûñíÛg¯\9žèˆ€/™¨åäTYXèaª«›ÿüóñ•+ $ZµjÂ÷ßM œ’’ì™3ËNœxúÛoÑ©©%‡yÈËËÐ[‰ QNNÕèÑCˆŽ‚ååýû÷ßñJJ²þþ3¼¼\••åˆJbáïut4^·îœ9ÇBC—ÃUgý<;/,†åæ¸k¢99U›6EŒ½çÁƒôÀÀY¯_o_¹r<¤¡"0fŒùƒ¾22”3ŽÄÅ}$: W –òòƶ6úÀÉDß¿/Zº4tÒ¤ƒii¥‡{½~½måÊñ p§XtôôÔnÜØ8k–ƒ·÷é½{ï°Ùð0"qwç…%'§ !42ј˜Œ'‰‰ÇŸ?ÿÔ)¶02(Qdd¤‚ƒ=]]M·l‰úô©âÏ?½UUôsÄd¢Â’“S¥©©$ÁÎッž>ý,3³+.ÖÖº+WžŸ1ãèÙ³+llའÄÜ ~p¾£ƒú|ܸý›7_¶±Ñ}ôÈ÷Â…•†Š•aà îßßld¤1kÖÑÈÈ¢Ãxƒk¢ÂR\\ol¬ItÖÜÜ~út\xøë¦&šÏ7?ü0ÎÄDÒê(1 RŒˆXýŸÿ<òõ½üþ}áÞ½îÒÒ¢ƒ>™¨°”•5¸¸˜…À44´ž;÷âüù—L&kÕª K–Œ7LŠ? …ìë;ÝÞÞpãÆˆììªS§–êè¨ðÈD…¥¢¢QOOè( ¢¢ñĉØË—ßÊÈH­X1vÅŠqêêŠD¾ÀÔ©v÷îý¼råùéÓœ9³tÄS¢#þ2Q¡hjjkk£ëêöïL47·úر˜èèd--å-[f.^< Feê§ÌÌ´nßþÉ×÷ò‚![¶Ìܰa ÑA&*$åå¡þ›‰&'ÿç?ž<É2Dûða¯y󜡋a§¨({òäÒ‹ßlÛv-3³<8Ø ~W d¢BQ^Þ„úg&ÊÔÙ•@>>£-,tÖ¬ ›3çÐÐåðÀbÁ(NBQ^Þ ¬,§¢ÒoÞrÉb±£¢§M;¼ti¨ššÂÍ›ïÜù÷Ô©v†Jž‘#Í<ð•——ùöÛß?þ%ÆX¼xÔÚµõõÕ‰ #3³|åÊó +4t¹ƒƒ!gzUõÛoÿôÓÔåËÇÉýDfÖ¬aÒÒ<ž“–¦Ì˜a/š44+«¢¹¹Ï ••M;vÜpqÙuöì‹åËÇ&&þº{÷|HC2[[½‡}‡ 3˜7ïØåËoñ‰L&{Õªó55-{öÜÆ‚„²sçN¢c %2òm×él6¶oßBCÃA 3³ÜÝ=DVVŠç+àóòªwî¼éçYVÖøïO;vÌ{ÂkyyÇ YY©9s¥¥)¿þz£²²iâDë  ›~`³1‰”‘QæááBtŒ$܃ec³µ­Î=‘D"™šj¾|¹UØkÿð¡ÌÝ=¤¥¥C]]áýû²²ÿ\MI)>zôÑ“'™¦¦Z›6¹Áà  ;÷î¥ýûß—llôó9I$t옷»û ©àî¼ÀHKSÆ·¢P>{¼ƒDBË—öªß¿/œ7ïXk+ðÆFÚ¥Kñøô˜˜Œ¹sÍœy´¦¦ùüùž= ôðp4tgæLû?þðNI)"‘¸›1iëÖëµµ-„…@rA&*HS§ÚvºÄ,-MñðpêJ_¿Î]¸ð8Æ`³Ù! c‡„<¹y3ùÛoç zïÞÏ08(è•Jûõ׆qß*Á0ŒF£ïÜy“ÀÀH*ÈDiòäÏ2QiiÊ‚#„:¾ýË—9ÞÞ§èt'uÀ0TYÙ¸~ýÕÔ®\YwáÂJžÝFèðõë모L&»ÓŸ˜LÖõëïãâ> ™¨ éè¨XZêpnl2¬+„xkþåËlŸÓ «Sg_‰¤¯¯þ÷ßkÇŽµÞÚ„9}úÙÓ§YL&‹ç_Édr@@T{;CÄQl‰ ØŒöRR„…B²·7´³ÖûŠ^¼Èöñ9Ãd²ØìÎÏœ±ÙXyyÓ'™BZ5»&Z]]™ ûêÅ‹’“'“𤝝,Ø’SS«M ÓY IIIFCCASS^]]NCC^MMvÐ y559 yYYɹ^¥¥¥eg×ׄ>##£¦¦F ñ Xt:+%¥êõ벤¤J …tèÐd--¢ƒ_ÌÖÖV[[›è(à<Þ“Þ÷/þÎÀÀìǦiÓF ¶X Ú›ÂÃm55•44>{\2•”¬K¢ŠŠŠ¡!\î''´|9jm¥?{–S]Ý1q"œ(ú™ŒŒ ¢C€Îxd¢ZZZ¢C’hi¡¼„±gÏX3ª««U”¬¬,4lÐÒB&&ÂÀ@ÏÎ …©)$==€L2Q@ ÈD1 Äb&š››‹4ÔõÅÅÅË—/Ç0ÌÇÇGIIIxáõŸºàUHNN–’’ŠŠŠâLŽŽ–‘‘IOOÇÿÙÚÚààà ¤¤äêêºÿ~&“‰¾j»‘xTM{D"‘rssE¶ºBb„‰D²°°èôJ°3fÒrÄ*žÄ'!f¢jjj[¶lùÒ¥nÞ¼9oÞ¼òòòˆˆˆ~:Ì>^''§­[·nÚ´©±±!ÔÔÔ´~ýú   aÆ!„š››GŒñöíÛ$%%^¼xqÚ´i,ëë¶Ûëׯ+>'ØJåççkjj ¶LÀ‡ÄøçÂÂÂÔÔTΟž?NP\â pBÌD5558ð¥K=zôhÚ´i4 !ddd$„¸„¯BhûöíšššxZ¨««€Ï³k×.--­§OŸÎ˜1ÃÒÒrÁ‚ ¡¡¡_·Ý´´´N°•b³Ùuuu‚-ð!IBÈÍÍûþÀ­[·&L˜@P\â p_œ‰ÞºuK__¿¡¡!ô÷ß[ZZ¶¶¶²ÙìeeåÑ£GÇÆÆâ7˜øÜ#¾s玓““‚‚‚®®.'ñª­­UTT”——5jBO§ðrž,,LZZ_êâÅ‹¿þú+…òÏk9"""¾b»}ÑÎÂËŽŽ¶²²ÒÖÖÞ´iSGGGõµ°°àì‘®=zdnn®®®¾ÿ~Î.ë´ŠîÖ+&xn+Ä«åpo–¸¸¸   ###--­ï¿ÿ¿þÍs)„ÐíÛ·íííåääÌÌÌÂÃÃBL&“çâv „<<<®\¹Â¹'~õêÕ… r6>ÏÍÕc]øæììüÃ?às¶´´((($''÷&˜î6lDD„Í Aƒ:ÔÝœ†>ÞÜÜ|çν¬/Ïö€úî»ï¨Têµk×ð ÎsÝ­—>|øðÿ<½ÑËrºn+ŒWËáÞ,;wî´³³KKKKOO9r¤ŸŸ_wKµ´´ÈÊÊž "„’’’0 £Óé>ã3X[[WTTàÆÄÄ8::¾{÷NII‰N§oÞ¼yëÖ­ÒÒÒ ÁÁÁ3gÎÄ—¥P(œôåúõëæææÜ‘àŸñ»íŸ>}âÔS›Íž;w.…BñññáÞ€œoSn¯_¿ÖÔÔüŠíÆç7F×Å] Ã"##ÍÍÍ{Y_ží!‡a‹ÅÂCâ¹ žyÈ!âL´ë¶ÂxµîŠXYY]¿~ÿkff&çs×¥êë륥¥>ÜÐÐÀf³›››Y,Vw‹KØ€¯}Æ ¿üò †a/^œ:u*g:Ϩz¬K1™ÌÁƒ?yòð™3g8p 7ÁðÙ°ø¹‘Ï9‡ÁÙ—.]ÂwÿVÔ‰ð(ÈDbèkú‰ª©©­^½:##cݺuø”üü|GGGÎ öööüK‘‘ÉÎΞ>}úðáÃÃÂÂð‰--- C]]ç"ÖÖÖÝ-ˆSVVFá·¿¹?ã uuuñ‡Ê§NZPPàä䤨¨˜˜˜øüùó9sæ899=þ<66vÖ¬Y¡ªª*‹5dÈ|qssóÒÒRîHp‰‰‰'NÜ·o_wUˆˆˆˆ‹‹{úôéÕ«W£££9pðàÁøÅ$n)))Ü…÷r»áðïKnœuuÚY8ün;^ÒÒÒ^Ö·;zzz!2ù³æÔi|&Š žÛªkËÁ§ã›¥¨¨ˆS#›ùóçw·”ººzlll||¼Á„ ^¼xA&“y..‘BÈÃÃ#** ðNwÃùld>ué10 …²`Á‚ëׯ×ÖÖ>~üØÛÛ»7ÁðÙ°x#çÀsμ¼¼¡C‡r±µµå_Áî.É8  7¾&-)) qssóõõŧèëës?‹š‘‘Á¿æéééï”tâÄ |⃦OŸÞÝ"øÏ{¿Öˆ§h ñññd2yæÌ™ÑÑÑÙÙÙÎÎΓ'Oމ‰yþü9þ¬££C¡PòóóñÅóòòôõõ¹#Áݾ}ûäÉ“—/_ŽíZ…òòòM›6?>((hÍš5œ‡~¼½½wïÞ_ó@-Z´èï¿ÿ>pàÀ¢E‹¾t»ñ×ugáð *¡ììl==½^Ö·;<;¶vZŸ‰b‚ç¶êÚrðéøfÑÓÓ+,,ħ¤¤¤ìÝ»·»¥h4›ÍŽŠŠª¯¯ÿá‡fÏž]__ÏsqÉ;pcÇŽmnn~ùòeLL ç™zþ™ÞæááqãÆ+W®Œ;ï2Ôc0|6l§¼çœÆÆÆÜg¿¬¬,þìîà’Œ zã‹3Q6›½bÅŠ7þý÷ß?¾}û6BhÅŠþþþÑÑÑ•••<À{FòÑÑÑA§Óeddh4ZPPB¨¹¹9::zîܹ_±`oÂ^°`Á/¿üRTT”––6}úôãÇ#„fΜyâĉ‘#GJKKO™2%,,ÌØØØØØ!$--íååµiÓ¦‚‚‚>lß¾½Ó5œ¢¢¢••U``àÚµkÛÛÛ¹«€aØš5kìííñÇ&|}}utt6n܈ÿõ×_­¬¬œ:uêdz³³ÍÌÌ/^ÜÞÞ¾råʯ«~MMMåçP7; ÷ÓO?åææ&&&nݺÕÇǧ—õmiiÁ?„††655ñßæVÁg¢8èn[ñl9K–,Ù¶m~÷ÿÇ,**ên)‰4mÚ´k×®Q©T:.--­  Àsq ;8(Š»»ûš5k\]]µµµ{ŒŠ¿Þ6nÜ8&“¹k×®%K–ô2˜ÞoXžsnذ! àÑ£Guuux7b<§ì±‚’w@@oqßÏíM?Ñ?ÿüÓÁÁN§cvãÆ ]]Ýúúz:¾k×.SSS%%¥Ñ£Gã½£øôwÄ0ìÈ‘#ƒ 244ó\EwëåC”ýDyn+ŒWËáÞ,ííí~~~zzzªªª‹-jhhÀ§ólo‘‘‘C† ‘‘‘±¶¶ŽŽŽæ¹8N—°{íqqq¡ãÇ÷&ªëÂ?0ÜÚµkååå©Tjïƒéý†í:'‹Å:zôè!CTUU§OŸ­¥¥Õc+ê±²‚:  Ÿ(@ ‘0®<¦ºº:33sâĉ_—Ôräææv}‹ èNOJJÂîìž«øŠõâ7:íììú ÊýζmÛ #""D³º;wî:88àÿ¼víÚž={8£G}5APqqq¶¶¶.H±à½óbDFFFØi(D{{{~~þ¹sçV­Z%²•¦¥¥ùøø$%%µµµÅÇÇïØ±ƒRDDMEEeÍš5¢_…Ö ÇÛ·oçÏŸ¿nݺ¾ßäé½€€€¶¶¶yóæÕÔÔ˜™™­X±B m(€ÊÝyîÎ @pw †àî< d¢€‰b@& ˆ™( d¢€<ÆÅ_‚€8ÐÒÒH9555аqóÙx¢T*•ÀhèDVVVEE¥…P©ÔŽŽÄ@¿¦¢¢"++Ktð¼ú‰b@& ˆ™( d¢€ÿò£O6Zp7IEND®B`‚XQilla-2.3.0/docs/simple-api/classDocumentCache.html0000644000151400015140000007677011653571064017262 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

Expression Context is a storage for contexts. More...

#include <DocumentCache.hpp>

Inheritance diagram for DocumentCache:

List of all members.

Public Types

enum  ValidationMode { VALIDATION_STRICT = 0, VALIDATION_LAX = 1, VALIDATION_SKIP = 2 }

Public Member Functions

virtual ~DocumentCache ()
 virtual destructor
virtual Node::Ptr loadDocument (const XMLCh *uri, DynamicContext *context, const QueryPathNode *projection=0)=0
 load the document from the requested URI
virtual Node::Ptr parseDocument (xercesc::InputSource &srcToUse, DynamicContext *context, const QueryPathNode *projection=0)=0
 parse the document from the InputSource provided
virtual void parseDocument (xercesc::InputSource &srcToUse, EventHandler *handler, DynamicContext *context)=0
 parse the document from the InputSource provided, outputing it to the EventHandler provided
virtual void setXMLEntityResolver (xercesc::XMLEntityResolver *const handler)=0
 Sets the XMLEntityResolver that is used by Xerces when it is used to parse documents.
virtual
xercesc::XMLEntityResolver
getXMLEntityResolver () const =0
virtual bool getDoPSVI () const =0
virtual void setDoPSVI (bool value)=0
virtual bool isTypeOrDerivedFromType (const XMLCh *const uri, const XMLCh *const typeName, const XMLCh *const uriToCheck, const XMLCh *const typeNameToCheck) const =0
virtual bool isTypeDefined (const XMLCh *const uri, const XMLCh *const typeName) const =0
virtual void addSchemaLocation (const XMLCh *uri, VectorOfStrings *locations, StaticContext *context, const LocationInfo *location)=0
virtual unsigned int getSchemaUriId (const XMLCh *uri) const =0
 helper functions used to map namespace ids found in the SchemaGrammar
virtual const XMLCh * getSchemaUri (unsigned int id) const =0
virtual xercesc::GrammarResolver * getGrammarResolver () const =0
virtual
xercesc::DatatypeValidator * 
getDatatypeValidator (const XMLCh *uri, const XMLCh *typeName) const =0
virtual xercesc::ComplexTypeInfo * getComplexTypeInfo (const XMLCh *uri, const XMLCh *typeName) const =0
virtual
xercesc::SchemaElementDecl * 
getElementDecl (const XMLCh *elementUri, const XMLCh *elementName) const =0
virtual xercesc::SchemaAttDef * getAttributeDecl (const XMLCh *attributeUri, const XMLCh *attributeName) const =0
virtual DocumentCachecreateDerivedCache (xercesc::MemoryManager *memMgr) const =0

Static Public Attributes

static const XMLCh g_szUntyped []
 untyped

Detailed Description

Expression Context is a storage for contexts.


Member Enumeration Documentation

Enumerator:
VALIDATION_STRICT 
VALIDATION_LAX 
VALIDATION_SKIP 

Constructor & Destructor Documentation

virtual DocumentCache::~DocumentCache ( ) [inline, virtual]

virtual destructor


Member Function Documentation

virtual void DocumentCache::addSchemaLocation ( const XMLCh *  uri,
VectorOfStrings locations,
StaticContext context,
const LocationInfo location 
) [pure virtual]
virtual DocumentCache* DocumentCache::createDerivedCache ( xercesc::MemoryManager memMgr) const [pure virtual]
virtual xercesc:: SchemaAttDef* DocumentCache::getAttributeDecl ( const XMLCh *  attributeUri,
const XMLCh *  attributeName 
) const [pure virtual]
virtual xercesc:: ComplexTypeInfo* DocumentCache::getComplexTypeInfo ( const XMLCh *  uri,
const XMLCh *  typeName 
) const [pure virtual]
virtual xercesc:: DatatypeValidator* DocumentCache::getDatatypeValidator ( const XMLCh *  uri,
const XMLCh *  typeName 
) const [pure virtual]
virtual bool DocumentCache::getDoPSVI ( ) const [pure virtual]
virtual xercesc:: SchemaElementDecl* DocumentCache::getElementDecl ( const XMLCh *  elementUri,
const XMLCh *  elementName 
) const [pure virtual]
virtual xercesc:: GrammarResolver* DocumentCache::getGrammarResolver ( ) const [pure virtual]
virtual const XMLCh* DocumentCache::getSchemaUri ( unsigned int  id) const [pure virtual]
virtual unsigned int DocumentCache::getSchemaUriId ( const XMLCh *  uri) const [pure virtual]

helper functions used to map namespace ids found in the SchemaGrammar

virtual xercesc:: XMLEntityResolver* DocumentCache::getXMLEntityResolver ( ) const [pure virtual]
virtual bool DocumentCache::isTypeDefined ( const XMLCh *const  uri,
const XMLCh *const  typeName 
) const [pure virtual]
virtual bool DocumentCache::isTypeOrDerivedFromType ( const XMLCh *const  uri,
const XMLCh *const  typeName,
const XMLCh *const  uriToCheck,
const XMLCh *const  typeNameToCheck 
) const [pure virtual]
virtual Node::Ptr DocumentCache::loadDocument ( const XMLCh *  uri,
DynamicContext context,
const QueryPathNode *  projection = 0 
) [pure virtual]

load the document from the requested URI

virtual Node::Ptr DocumentCache::parseDocument ( xercesc::InputSource srcToUse,
DynamicContext context,
const QueryPathNode *  projection = 0 
) [pure virtual]

parse the document from the InputSource provided

virtual void DocumentCache::parseDocument ( xercesc::InputSource srcToUse,
EventHandler handler,
DynamicContext context 
) [pure virtual]

parse the document from the InputSource provided, outputing it to the EventHandler provided

virtual void DocumentCache::setDoPSVI ( bool  value) [pure virtual]
virtual void DocumentCache::setXMLEntityResolver ( xercesc::XMLEntityResolver *const  handler) [pure virtual]

Sets the XMLEntityResolver that is used by Xerces when it is used to parse documents.

This affects the behaviour of XQilla whenever it retrieves an XML, DTD or XML Schema grammar.


Member Data Documentation

const XMLCh DocumentCache::g_szUntyped[] [static]

untyped


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/ContextHelpers_8hpp_source.html0000644000151400015140000010173511653571063021005 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ContextHelpers.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef CONTEXTHELPERS_HPP
00021 #define CONTEXTHELPERS_HPP
00022 
00023 #include <xqilla/framework/XQillaExport.hpp>
00024 #include <xqilla/context/DynamicContext.hpp>
00025 
00026 class XQILLA_API AutoNodeSetOrderingReset
00027 {
00028 public:
00029   AutoNodeSetOrderingReset(StaticContext* context, StaticContext::NodeSetOrdering ordering = StaticContext::ORDERING_UNORDERED)
00030   {
00031     context_ = context;
00032     if(context_) {
00033       ordering_ = context->getNodeSetOrdering();
00034       context->setNodeSetOrdering(ordering);
00035     }
00036   }
00037 
00038   ~AutoNodeSetOrderingReset()
00039   {
00040     if(context_) {
00041       context_->setNodeSetOrdering(ordering_);
00042     }
00043   }
00044 
00045 protected:
00046   StaticContext* context_;
00047   StaticContext::NodeSetOrdering ordering_;  
00048 };
00049 
00050 class XQILLA_API AutoContextItemTypeReset
00051 {
00052 public:
00053   AutoContextItemTypeReset(StaticContext* context)
00054   {
00055     context_ = context;
00056     if(context_) {
00057       sType_ = context->getContextItemType();
00058     }
00059   }
00060 
00061   AutoContextItemTypeReset(StaticContext* context, const StaticType &sType)
00062   {
00063     context_ = context;
00064     if(context_) {
00065       sType_ = context->getContextItemType();
00066       context->setContextItemType(sType);
00067     }
00068   }
00069 
00070   ~AutoContextItemTypeReset()
00071   {
00072     if(context_) {
00073       context_->setContextItemType(sType_);
00074     }
00075   }
00076 
00077 protected:
00078   StaticContext* context_;
00079   StaticType sType_;
00080 };
00081 
00082 class XQILLA_API AutoNsScopeReset
00083 {
00084 public:
00085   AutoNsScopeReset(StaticContext* context, XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver* newResolver)
00086   {
00087     context_=context;
00088     if(context_) {
00089       _oldNSResolver=context_->getNSResolver();
00090       _defaultElementAndTypeNS=context->getDefaultElementAndTypeNS();
00091       context_->setNSResolver(newResolver);
00092     }
00093   }
00094 
00095   ~AutoNsScopeReset()
00096   {
00097     if(context_) {
00098       context_->setNSResolver(_oldNSResolver);
00099       context_->setDefaultElementAndTypeNS(_defaultElementAndTypeNS);
00100     }
00101   }
00102 
00103 protected:
00104   StaticContext* context_;
00105   const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver* _oldNSResolver;
00106   const XMLCh *_defaultElementAndTypeNS;
00107   
00108 };
00109 
00110 class XQILLA_API AutoContextInfoReset
00111 {
00112 public:
00113   AutoContextInfoReset(DynamicContext *context)
00114     : oldContextItem(context->getContextItem()),
00115       oldContextPosition(context->getContextPosition()),
00116       oldContextSize(context->getContextSize()),
00117       context_(context)
00118   {
00119   }
00120 
00121   AutoContextInfoReset(DynamicContext *context, const Item::Ptr &contextItem, size_t contextPosition = 0, size_t contextSize = 0)
00122     : oldContextItem(context->getContextItem()),
00123       oldContextPosition(context->getContextPosition()),
00124       oldContextSize(context->getContextSize()),
00125       context_(context)
00126   {
00127     context->setContextItem(contextItem);
00128     context->setContextPosition(contextPosition);
00129     context->setContextSize(contextSize);
00130   }
00131 
00132   ~AutoContextInfoReset()
00133   {
00134     resetContextInfo();
00135   }
00136 
00137   void resetContextInfo()
00138   {
00139     context_->setContextItem(oldContextItem);
00140     context_->setContextPosition(oldContextPosition);
00141     context_->setContextSize(oldContextSize);
00142   }
00143 
00144   Item::Ptr oldContextItem;
00145   size_t oldContextPosition;
00146   size_t oldContextSize;
00147 
00148 private:
00149   DynamicContext* context_;
00150 };
00151 
00152 class XQILLA_API AutoDocumentCacheReset
00153 {
00154 public:
00155   AutoDocumentCacheReset(DynamicContext* context)
00156     : oldDC(const_cast<DocumentCache*>(context->getDocumentCache())),
00157       context_ (context)
00158   {
00159   }
00160 
00161   ~AutoDocumentCacheReset()
00162   {
00163     context_->setDocumentCache(oldDC);
00164   }
00165 
00166   DocumentCache *oldDC;
00167 
00168 protected:
00169   DynamicContext* context_;
00170 };
00171 
00172 class XQILLA_API AutoVariableStoreReset
00173 {
00174 public:
00175   AutoVariableStoreReset(DynamicContext *context, const VariableStore *store = 0)
00176   {
00177     context_ = context;
00178     _oldVarStore = context_->getVariableStore();
00179     if(store)
00180       context_->setVariableStore(store);
00181   }
00182 
00183   ~AutoVariableStoreReset()
00184   {
00185     context_->setVariableStore(_oldVarStore);
00186   }
00187 
00188   void reset()
00189   {
00190     context_->setVariableStore(_oldVarStore);
00191   }
00192 
00193 protected:
00194   DynamicContext *context_;
00195   const VariableStore *_oldVarStore;
00196 };
00197 
00198 class XQILLA_API AutoRegexGroupStoreReset
00199 {
00200 public:
00201   AutoRegexGroupStoreReset(DynamicContext *context, const RegexGroupStore *store = 0)
00202   {
00203     context_ = context;
00204     _oldRegexStore = context_->getRegexGroupStore();
00205     if(store)
00206       context_->setRegexGroupStore(store);
00207   }
00208 
00209   ~AutoRegexGroupStoreReset()
00210   {
00211     context_->setRegexGroupStore(_oldRegexStore);
00212   }
00213 
00214   void reset()
00215   {
00216     context_->setRegexGroupStore(_oldRegexStore);
00217   }
00218 
00219 protected:
00220   DynamicContext *context_;
00221   const RegexGroupStore *_oldRegexStore;
00222 };
00223 
00224 class XQILLA_API AutoMessageListenerReset
00225 {
00226 public:
00227   AutoMessageListenerReset(StaticContext* context, MessageListener *listener = 0)
00228   {
00229     context_ = context;
00230     if(context_) {
00231       listener_ = context->getMessageListener();
00232       context->setMessageListener(listener);
00233     }
00234   }
00235 
00236   ~AutoMessageListenerReset()
00237   {
00238     if(context_) {
00239       context_->setMessageListener(listener_);
00240     }
00241   }
00242 
00243 protected:
00244   StaticContext* context_;
00245   MessageListener *listener_;  
00246 };
00247 
00248 class XQILLA_API AutoStackFrameReset
00249 {
00250 public:
00251   AutoStackFrameReset(DynamicContext *context, const StackFrame *frame)
00252   {
00253     context_ = context;
00254     _oldFrame = context_->getStackFrame();
00255     context_->setStackFrame(frame);
00256   }
00257 
00258   ~AutoStackFrameReset()
00259   {
00260     context_->setStackFrame(_oldFrame);
00261   }
00262 
00263   void reset()
00264   {
00265     context_->setStackFrame(_oldFrame);
00266   }
00267 
00268 protected:
00269   DynamicContext *context_;
00270   const StackFrame *_oldFrame;
00271 };
00272 
00273 template<typename T> class XQILLA_API AutoReset
00274 {
00275 public:
00276   AutoReset(T &orig)
00277     : orig_(orig)
00278   {
00279     old_ = orig;
00280   }
00281 
00282   ~AutoReset()
00283   {
00284     reset();
00285   }
00286 
00287   void reset()
00288   {
00289     orig_ = old_;
00290   }
00291 
00292 protected:
00293   T &orig_;
00294   T old_;
00295 };
00296 
00297 #endif
XQilla-2.3.0/docs/simple-api/classAutoMessageListenerReset-members.html0000644000151400015140000000601411653571063023115 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

AutoMessageListenerReset Member List

This is the complete list of members for AutoMessageListenerReset, including all inherited members.
AutoMessageListenerReset(StaticContext *context, MessageListener *listener=0)AutoMessageListenerReset [inline]
context_AutoMessageListenerReset [protected]
listener_AutoMessageListenerReset [protected]
~AutoMessageListenerReset()AutoMessageListenerReset [inline]
XQilla-2.3.0/docs/simple-api/classxercesc_1_1XMLFormatter.html0000644000151400015140000012625511653571065021114 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

xercesc::XMLFormatter Class Reference

This class provides the basic formatting capabilities that are required to turn the Unicode based XML data from the parsers into a form that can be used on non-Unicode based systems, that is, into local or generic text encodings. More...

#include <XMLFormatter.hpp>

Inheritance diagram for xercesc::XMLFormatter:

List of all members.

Public Types

Public Contants
enum  EscapeFlags {
  NoEscapes, StdEscapes, AttrEscapes, CharEscapes,
  EscapeFlags_Count, DefaultEscape = 999
}
 

EscapeFlags - Different styles of escape flags to control various formatting.

More...
enum  UnRepFlags { UnRep_Fail, UnRep_CharRef, UnRep_Replace, DefaultUnRep = 999 }
 

UnRepFlags.

More...

Public Member Functions

Constructor and Destructor
 XMLFormatter (const XMLCh *const outEncoding, const XMLCh *const docVersion, XMLFormatTarget *const target, const EscapeFlags escapeFlags=NoEscapes, const UnRepFlags unrepFlags=UnRep_Fail, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 XMLFormatter (const char *const outEncoding, const char *const docVersion, XMLFormatTarget *const target, const EscapeFlags escapeFlags=NoEscapes, const UnRepFlags unrepFlags=UnRep_Fail, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 XMLFormatter (const XMLCh *const outEncoding, XMLFormatTarget *const target, const EscapeFlags escapeFlags=NoEscapes, const UnRepFlags unrepFlags=UnRep_Fail, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 XMLFormatter (const char *const outEncoding, XMLFormatTarget *const target, const EscapeFlags escapeFlags=NoEscapes, const UnRepFlags unrepFlags=UnRep_Fail, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 ~XMLFormatter ()
Formatting methods
void formatBuf (const XMLCh *const toFormat, const XMLSize_t count, const EscapeFlags escapeFlags=DefaultEscape, const UnRepFlags unrepFlags=DefaultUnRep)
XMLFormatteroperator<< (const XMLCh *const toFormat)
XMLFormatteroperator<< (const XMLCh toFormat)
void writeBOM (const XMLByte *const toFormat, const XMLSize_t count)
Getter methods
const XMLCh * getEncodingName () const
const XMLTranscoder * getTranscoder () const
XMLTranscoder * getTranscoder ()
Setter methods
void setEscapeFlags (const EscapeFlags newFlags)
void setUnRepFlags (const UnRepFlags newFlags)
XMLFormatteroperator<< (const EscapeFlags newFlags)
XMLFormatteroperator<< (const UnRepFlags newFlags)
EscapeFlags getEscapeFlags () const
UnRepFlags getUnRepFlags () const

Detailed Description

This class provides the basic formatting capabilities that are required to turn the Unicode based XML data from the parsers into a form that can be used on non-Unicode based systems, that is, into local or generic text encodings.

A number of flags are provided to control whether various optional formatting operations are performed.


Member Enumeration Documentation

EscapeFlags - Different styles of escape flags to control various formatting.

NoEscapes: No character needs to be escaped. Just write them out as is.

StdEscapes: The following characters need to be escaped:

character should be escaped and written as
& &amp;
> &gt;
" &quot;
< &lt;
' &apos;

AttrEscapes: The following characters need to be escaped:

character should be escaped and written as
& &amp;
> &gt;
" &quot;

CharEscapes: The following characters need to be escaped:

character should be escaped and written as
& &amp;
> &gt;

EscapeFlags_Count: Special value, do not use directly.

DefaultEscape: Special value, do not use directly.

Enumerator:
NoEscapes 
StdEscapes 
AttrEscapes 
CharEscapes 
EscapeFlags_Count 
DefaultEscape 

UnRepFlags.

The unrepresentable flags that indicate how to react when a character cannot be represented in the target encoding.

UnRep_Fail: Fail the operation.

UnRep_CharRef: Display the unrepresented character as reference.

UnRep_Replace: Replace the unrepresented character with the replacement character.

DefaultUnRep: Special value, do not use directly.

Enumerator:
UnRep_Fail 
UnRep_CharRef 
UnRep_Replace 
DefaultUnRep 

Constructor & Destructor Documentation

xercesc::XMLFormatter::XMLFormatter ( const XMLCh *const  outEncoding,
const XMLCh *const  docVersion,
XMLFormatTarget *const  target,
const EscapeFlags  escapeFlags = NoEscapes,
const UnRepFlags  unrepFlags = UnRep_Fail,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
)
Parameters:
outEncodingthe encoding for the formatted content.
docVersionthe document version.
targetthe formatTarget where the formatted content is written to.
escapeFlagsthe escape style for certain character.
unrepFlagsthe reaction to unrepresentable character.
managerPointer to the memory manager to be used to allocate objects.
xercesc::XMLFormatter::XMLFormatter ( const char *const  outEncoding,
const char *const  docVersion,
XMLFormatTarget *const  target,
const EscapeFlags  escapeFlags = NoEscapes,
const UnRepFlags  unrepFlags = UnRep_Fail,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
)
xercesc::XMLFormatter::XMLFormatter ( const XMLCh *const  outEncoding,
XMLFormatTarget *const  target,
const EscapeFlags  escapeFlags = NoEscapes,
const UnRepFlags  unrepFlags = UnRep_Fail,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
)
xercesc::XMLFormatter::XMLFormatter ( const char *const  outEncoding,
XMLFormatTarget *const  target,
const EscapeFlags  escapeFlags = NoEscapes,
const UnRepFlags  unrepFlags = UnRep_Fail,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
)
xercesc::XMLFormatter::~XMLFormatter ( )

Member Function Documentation

void xercesc::XMLFormatter::formatBuf ( const XMLCh *const  toFormat,
const XMLSize_t  count,
const EscapeFlags  escapeFlags = DefaultEscape,
const UnRepFlags  unrepFlags = DefaultUnRep 
)
Parameters:
toFormatthe string to be formatted
countlength of the string
escapeFlagsthe escape style for formatting toFormat
unrepFlagsthe reaction for any unrepresentable character in toFormat
const XMLCh * xercesc::XMLFormatter::getEncodingName ( ) const [inline]
Returns:
return the encoding set for the formatted content
XMLFormatter::EscapeFlags xercesc::XMLFormatter::getEscapeFlags ( ) const [inline]
Returns:
return the escape style for the formatted content
const XMLTranscoder * xercesc::XMLFormatter::getTranscoder ( ) const [inline]
Returns:
return constant transcoder used internally for transcoding the formatter conent
XMLTranscoder * xercesc::XMLFormatter::getTranscoder ( ) [inline]
Returns:
return the transcoder used internally for transcoding the formatter conent
XMLFormatter::UnRepFlags xercesc::XMLFormatter::getUnRepFlags ( ) const [inline]
Returns:
return the reaction for unrepresentable character
XMLFormatter& xercesc::XMLFormatter::operator<< ( const XMLCh *const  toFormat)
See also:
formatBuf
XMLFormatter & xercesc::XMLFormatter::operator<< ( const UnRepFlags  newFlags) [inline]
Parameters:
newFlagsset the reaction for unrepresentable character
See also:
setUnRepFlags
XMLFormatter& xercesc::XMLFormatter::operator<< ( const XMLCh  toFormat)
XMLFormatter & xercesc::XMLFormatter::operator<< ( const EscapeFlags  newFlags) [inline]
Parameters:
newFlagsset the escape style for the follow-on formatted content
See also:
setEscapeFlags
void xercesc::XMLFormatter::setEscapeFlags ( const EscapeFlags  newFlags) [inline]
Parameters:
newFlagsset the escape style for the follow-on formatted content
void xercesc::XMLFormatter::setUnRepFlags ( const UnRepFlags  newFlags) [inline]
Parameters:
newFlagsset the reaction for unrepresentable character
void xercesc::XMLFormatter::writeBOM ( const XMLByte *const  toFormat,
const XMLSize_t  count 
)

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/ATGMonthOrDerived_8hpp__incl.png0000644000151400015140000003000411653571064020656 00000000000000‰PNG  IHDRmuRýžöbKGDÿÿÿ ½§“ IDATxœíÝg\×Úð³»,]¤#E¦b¡7£¢ˆækÔ(Q4¹j‚˜¨ùEŠØc‡€æÆÅh ±` –°¡" h¤÷ª» Ûæýprç]Ùâ²ÀîÏÿÓ2ì™yfæaxöÌœ³‚ DUv W‚:ÈêH ¨#€<Ô” ÷™2eвCJãçç·yófeGP PG:íÖ­[#FŒ055Uv @Ñòòò ”@U@ Çüùó'Nœ¨ì(€¢mÛ¶MÙ!T< äu$Ô‘@PGy@ äãµ=èäÉ“ÇÿòË/-Z„—$''ïØ±CôGŽqpp¨¨¨8pà@^^N1bÄÒ¥Kíííñüýý---O:E¡PÈVëÖ­KOO?}ú´¥¥¥|úûû‹mÞÖÖŸ‘‘Q]]mmm=~üøO?ý”F£‰6'_›™™¹¸¸¬\¹R___–MWVV.^¼8%%E¾È%­AÒ@·ƒ:ÐS‚HNN655MII!ëȱcÇ^¼x!T]]½jÕ*ü!¤§§WWW÷õ×_ûùùíÛ·!tãÆ5kÖooo++«ñãÇÇÅÅÕÔÔüñÇ¢oÖ××744466vssÛ±c‡¹¹ybb¢,‘ 8088¸³ñ€ê€:ÐS’““]\\<<<¬­­“““ßûþ¬¬¬yóæ ß¶^¹rå‚ È'Nœ˜ššJþñÎ;&L Ëb±¢¢¢fÏž=þüC‡q8„¿¿ÿ­[·>ÿüóY³f={!ôÕW_!„æÎK6ÌÌÌ š9sfBB^róæÍÏ>ûL¸ëQSSóÓO?½yófee¥¿¿VVV``à³gÏ:ì…B™5kÖ£Gð</..nΜ9sæÌ‰‹‹ãñxÂÍoܸo‹oÚ´éàÁƒ¸ —Ë9s&^ƒhs@pöìÙ%K–L›6mÕªU/_¾{$;ìÞ胖,Y2gΜŸ~ú‰ËåŠ]øÞs Žô|S; !äçç÷Þ§¹\nUUÕ!Cðl6›Íf«««[XXï5j›Í~ýú5B¨¥¥%++kìØ±äoüñÇúúú¸¸¸èè茌Œ3gÎàå÷ïßÿùçŸW¬Xqøða&“‰+¶K—.‘ ?~|äÈ‘ˆˆˆ£G2 ‹ÕÔÔDÞ='988”••á×çÏŸŒŒtttÝ++«ªª*üúÂ… ÕÕÕ‡Þ»woVVÖñãÇÅ6¸sç®322444¼¼¼Ä6¿xñâ¹s炃ƒO:µdÉ’¸¸8±³Ãá…¿ÿþûž={vïÞýøñc²—WìBÔ‘€ñ÷ß×ÕÕùùù!„üüüJJJŠ‹‹¥¼ŸÁ`¡©©‰œ&„|•Jõóó÷¶>|8zôh===ü+—œœ¼zõjsss;;»¥K—Þ¼yÿêã?ÖÕÕý׿þ…·"ºéÀÀ@mmíqãÆ!„˜L¦¤)Š@ À¯ƒƒƒÝÜÜÈh%ùã?¾ùæSSS;;»+V¤§§‹mþÁ0ŒW¯^!„nß¾=uêT< G´ù•+WBBBÆoddäãã#鶸Ø=Z¹r¥•••““Ó_|A± @F0ÎÐ#’““ù|þìÙ³É%)))¶¶¶’Þohh¨®®^QQ{épÿ%“Éœ5k–ðÛ&Nœ³|ùò7µ›››ÙyiiiY___#„ÔÔ$^ŒBäýt]]]CCÃÂÂBá·:¿¶¶¶–´¶ŠŠ 2Œšššyóæ‘¿ÒÑÑÛ\CCcìØ±wîÜ2dHZZÚ‘#G$5çñxÂ¥vvv²ìfeeEn<8b€Œ Žt?@’’òÕW_͘1/9~üxJJÊÒ¥K;7$ …âîî~íÚµo¿ý–\(z7|ôèÑ­­­Ïž=ËÌÌ %—P©Ôêêj<¸»ªª —H¤œ»éK&Ož|òäI777òɶ¶¶3gÎU¤ª” ˆ+W®øúúâøÃ?à)xðírIÍ~úé'‡¡C‡’µhó-[¶¼~ýšœ ©¤¤DÆ=BUTTຳ¼¼š’€Œà¾6 ûåææ677O™2Eë&Ož\QQQXX(¥Õ_|ñ×_>|¸¨¨¨°°ðĉ×®]ëPrá[Ûûöísrrž¦QMMÍßßÿþýÕÕÕxšžÉ“'K͖ٛòÛÏ?ÿ¼¹¹yíÚµééé÷îÝ[¹r¥±±±p÷*éÍ›7MMM 999›7o®®®&Ç?þÈ‘#µµµEEE¿ÿþ»¤-zyy±X¬øøxáûø¢ÍgÍšuèС455¥§§;v ¿óúõë---Rö!tàÀÊÊÊ¿ÿþûèÑ£S¦L‘²dý‘€î—œœìîî.\ç9::ZXX¤¤¤ˆ›‚ÙÛÛïß¿?..îÊ•+ÆÆÆ^^^û÷ï_µjU‡·ùûû'%%Í™3§Ãòo¾ùæÀ!!!t:}Ò¤IAAAb·2hРѣGÏ›7ï¿ÿý¯¤H´µµùå—ãÇÇÅÅUUU™››ÌŸ?ŸN§‹¾™ŒÐÔÔÔÙÙù—_~!ï_/_¾üÀ_~ù%…Bñóó[±bECCƒØ-ª©©M˜0áöíÛÂ7ëE›Óét.—{èÐ¡ÆÆF{{ûÍ›7ãáç±±±®®®ävÅš_ƒJåR(ÅoZA¨•Jå(v£&ÓZCƒE§3¨T®|+)**šþ~tôMMõ¾ÿ~ÁرJ ¦¥¥=/¯ÈÈ(~ó¦uÀMWWkoo[oo;OÏ!ZZêJ  ‚ ŽȪ´´1=½ˆìtäñC‡R…NGQoÞ´nÙrùâÅ'ÿúר={æ™™ TvDÒ”•5FF^¸sçUPïæÍ³ ÐTvDˆÏÖ‘}̵4ÅÎÎÔÛÛÖËËÖÇÇÎÚÚHÙ1”êH€Díí¼œœ2\Iˆv::;63ÓSvŒb\¿ž³iÓ%O°{÷¼™3]•ެ®^ÍްᢚuÇŽ¹3f¸(;œwÔ×3³³ËrsËÓÓ‹ÓÓ‹ÚÛyffzø‘J//[77¥?r P ¨#ï(+k|ü¸(7·"#£øÅ‹JO üÀœJu:Šª©y»n]âÍ›y‹Ù¸qÆÀÚÊŽ¨sÞ¾mݵëÚéÓ§Lõ‰¹¹B‡´ËHx¤Îǯ++ÿ©ãímçímëé9ÄÀFêÐ_@ @'Ú騡¡æì<—ÎÎV*~S#"!áÑÎW ÐŒŽž?i’“²#’_ZZaxøùÆFfXØGË–§RUî±NaäHŒŒâçÏ+FêÐ@ @TQÑüða!ît|ù²ŠËå[[á»ÕÞÞ¶#FXªr§£¨ââú°°sééÅ!!þk×~؆ƒ´µq÷îý3..ÅÝÝ&66ÐÑÑLÙÉDx¤NzzñÛ·ïŒÔñò²ÕÔ¤+;F@w‚:€~Ãáeg÷úNGQ|¾ ..eïÞ?­­bcxzÚ*;¢î”—WvîÅ‹*%N $7é#u|}í6TvŒ€®‚:€>«¾žùèÑk|Ãw:ZYøúÚãNG''‹Þ>6âÙ³ŠÐг¯^ÕDD|¤ ³‹÷rb Áƒ cbxx QvDr;RwR:;[ÁHz)¨#è;¸\þÓ§¥ønuzzQm-C]]ÍÅ¥×w:Šâpx117~ù%uôh«ØØÀáÃÍ•QÏ*-mŒŒL¼{7_u&ê r¤NFFñÇ… ,©@/u$½[CëáÃB|·:/¯²µ•cb2À××ÏÎÓ:E¥¥†…«¯gnÝ:{Ñ"_†Ò®^Í^¿þNÛ¹sîôéª51PWÀHz/¨#èeD;étš««5¾[íímÛg:E±XíÛ·'%$<òó=¿N…ÝÐÀÚ¾=éÂ…LUž¨+DGêèéiº¸ÀHTÔ‘ô¬´´w:uÇŒqÀÏ–e¥­ÝëG(¿×ÏÖ¯¿Èåòöìù¤Í.Þ’“_FF&2ì^11ÜÄŽÔ1§=ŒÔ@@ €*êÏŽ¢Y6\¼z5û“O<7ožeb¢üoîV:6›³oß_qq)Cbbô–‰º¢®Ž™“S†‡éäæ–ÃHTÔ‘¨Š¦¦–'OJð¿É/ªZZÚŒt?ø u:Š:}úá®]×ttÔ£¢æOž<ü#=½Þ=H¹‡à‰¢¢®[[ÅÄzxØ(;"%€‘:( Ô‘(TssKfæ;ކ†:Cp'ÊÈ‘–::ÊŽQùðìâûöýei©èím§ìˆT]iicDÄùû÷ ‚‚|·l™­«Û³ˆÅjñâ‘:&&\]­­`¤ÝêHz–h§#•J5Ê ß­öö¶³±éwƒŽ¥Ëϯ ;Ÿ“S¶fÍäU«&khô¦/qQ"‚ .\Èܶ-‰NWÛµkî´iÎÊŽHùðHüqnnE~~š•©3fŒƒ••²c wƒ:€î÷æMëÿºCŠ^¾¬b±Ú t<=¡Óñ=¸\þ÷ßÿñË/©#GZîÝèäd¡ìˆzŸúzæŽWðÄ@ÑÑó ê×Ft#uèvPGÐ  Ó±ë²²JÃÂΕ•5FFNÿ÷¿Ç©©Q•Q/vûöËõ댶M›fùÂÓ¢„Gꤥ66²tt4FŒ°€‘:t Ô‘ÈéíÛV\8¦§gg—1™múúÚø[d¼¼lGŒ°ìÏϨuJKKû¶mI¿ýöhìXÇï¿_5w· 'òôèà`ªìˆTZ‡‘: ÅÞÞ”|¤Fê Ô‘ÈŠ ˆüüZòY«×¯ë‚€NÇ.ºsçÕºu‰ {Û¶?ùÄþ[w¯çÏ+CCÏæç×ô·‰º‚Åjú´ÿ™?~\Ä`°…Gêx{ÛÁ3» Ž@ƒýøq‘p§ãÀÚÞÞÿŽ®®ÖÀd4rjjjY¿þÂÕ«Ù3f¸ìÜ9ÏÔfï<žàðá”ØØvv&11îîýqb ¹I©óÁ––0RôkPGðÑNG€pt4Ãw«;8˜Òhðè^W%&fìÜy•F£FGÏŸ2e¤²ÃéûJJÖ­K|ð `Ñ¢þ>1PWÔÖ2ð§Êôô¢œœrçÿGêx{ÛŽeÕW¿£I ŽàNÇœœ2£MOOËÇÇ:{BUÕ›ÈÈÄÛ·_ùnÚ4SOOKÙõxb ï¾KRWWÛ½{ÞGVvD½ŒÔA ú'ètT €8vì^lìÆÆbc}}í•QDN 4s¦ë®]óŒu•QQZÚˆ¯'0Rô+PG‚þ‚Íædf–à }vvY}=S¸ÓÑÅžv¯GÖ……{ò¤$$Ä?4ô_ð"ÊuëÖ‹õë/0™01P€‘: ÿ€:ôe¯^Õà ÓÓ‹‹Šêø|ètT.—¿ÿÍnf¾woàÈ‘–ÊŽ $41——mLÌ{{˜¨GH©ãím;fŒt ƒ^ êHЧ´µqÉëuNNY]SKK‘Œ³ó`WWk¬PÙÙe¡¡çŠŠê¦®X᳋«š'OJÂÂΕ–6~ýõ$˜H`¤èc Ž½^‡NGO0tè ò±${{S¨]”¢µ•³gÏõ'îûøØÅÄb¬ìˆ€x\.ÿ—_RccoØÙ™ÆÆº¹Y+;¢þ‚Íæ<{V©|ð  ©©Ex¤Ž··íÀ0R¨:¨#Aï#Ü阛[^[ËÐÔ¤ãOóÎ΃]\¬a&B¥»w/?"â|SSËæÍ³àñ»^¡¤¤!""1-­`Ñ"ß­[gÃWÀ+ŒÔ½Ô‘ wÀWXètT}oÞ´nÙrùâÅ'S§ŽÚ½û33=eGdEN ¤««5ß߸²#꿘̶ìì²ÿÔyÍ`´™špq±Æw»¸XÃH " Ž*ª½—“S† GÑNGgçÁP ¨ k×r6mº(»vÍ›9ÓUÙáyÔÕ1wTˆðHŒŒâÒÒF:æäd#u€*€:¨òò¦G^ãÛ:/^Tòx#<¶ÚÛÛvÄKètTY55o×­K¼y3oñâ17΀çºz»›7óÖ¯¿ÐÒÂÙ¸q<™ RjkßææVÀH " ŽÊÄáð²³ßétÔÐPsvŒ3wv¶23¨ìÁ{‘ðhçΫzzšÑÑ àfhŸÁd¶}ÿýññ÷½½mcbíìL”èHt¤Ž®®†“ŒÔŠu$P´ŠŠæ‡ ñ…ïåË*.—?x°¡îttr²€™GTÐþ󗛛̈́ Ã:,/*ª ;—‘Qâ¿ví‡ZZêJ ôœÌÌâððóR&Ú¾=iÖ,7WWå­|bGê3æ6HÙ‚>êHÐãD;ÕÕÕ\\ Ó±×HMý;(è—AƒÞ»·^[ûŸJ‘ÏÄÅ¥ìÝû§Qll ‡Ç¥Æzž(&憃ƒill pÉøäIɬYûMMõnÝ 32‚§ôT9R'=½83³„ÍæÀHРŽ=¢¾žùèÑëôôb²ÓÑÊÊÀ××:{òò¦€€˜––vòïÛ¾}B(7·<4ô\AAmxøÔàà‰p6ûƒ’’†ððs}þù¸ÈÈi::\.Ҥ蒒 …âéi—˜¸¾ J5ñx‚ׯÿ©“ž^\VöÎH>p€Ï@nPG„b³9ô®<ÍåòŸ>-Å÷SÒÓ‹ Ó±o`³9S§î-.näñø! ;÷Õ;¯Nqqû)Ü)ëWðÄ@[·þ®§§õIFFñþý·ø|BˆF£.[6~Û¶•#x?á‘:ÙÙe\.¿Gê45µêtc´@ÅA Ðýûùáá‰'N,:´s5ACëáÃB|·:/¯²µ•cb2À××ÞËËÖÙÙjôh+xZ®·[¹òäõ빸ˆDÑh]]Ͷ6nhèÔø’Ã~ª¼¼)22ñîÝ|‚ ‚wþƒüøã¢ùó½”Ck+çùóŽ#uÜÜlð k>>vzzZ²¯M ÜÝ·._îâ·)ú ¨#ûµ†ÖæÍ—’’ž"DÙ»wÁÂ…¾Òß/ÚéH§Ó\]­ñÝjoo[ètìKâãlÜx±Ã%‚F£-Zä=_YQUÀç &MŠ.)iärùB‹)´?þX;|¸¹Ò"]#üµTjçFê¼zUãïM¡ [[“\M÷PGöSxDlì >_Àã ÔÔ¨sçzþç? EßÙØÈJK{§ÓÑØXwÌÜé8j”9ðô%ééEóæýŒoYv@£Q®_ÿÖÙy°â£*âøñ{›7_îЉRS£ ¤wëVx§:±€j©“‘QÜÖÆ53Óý^^¶®®ÖêêGêœ:•¶aÃE>_@¥RÍ™ã¾}û¸ÍÝ·AÙ=}Zöí·g k…ÿ X[=z´ !Äç òò*ñ…:û§ÚZÆäÉß77·Š !55šÉÍ›apߪªªz3~ün6›+ö·jj4?¿¡'O~ ³a÷%2ŽÔù曄˗³x¼>Òh4--µ-[fÃTö}Ô‘ý “Ù¶}{Òo¿=¢P¨Á;]M å›o¦äåUfe•66²tt4Üܬ==mÝÝm<átºÚªU“ÂÃ?Rlh@µ\»–³bÅ 2Kh4AÂÌL/ `„··‘rƒªóÍÈ(¾uëåÓ§%ŸN§ñù¾ÑA¥R´´4nÝ ƒlé?þüóù²e¿J©)h4ª­­ñ?,„ñ7}É;e›ÍnnnVb4 Û ÄÅ‹9?þ˜ÒÞΗþ™B¡xz>t(°Së×ÒÒ200èZŒ¨¹¹™Ífwq% ë**Þ,\x‚ÍæP©€04Ôñò²vs³rs³²³3êW7hiui¤H¿Êj6›ûüyõÓ§Ož”?^ÕÞÎÃ)4l˜i|übèR]i.K>ÿüó½Ó§3ÞÂß…B¡PЧŸº¯\9^K‹Þ•€ _!ß©#ëêê^¼x¡¤¨@÷kiá?ž›‘QM>覦FAˆÂç Ä–”šš´_Ñ©jÁÄÄdäÈ‘]Œ3//¯¾¾¾‹+]ÔÞÎߺõ.›Í1Âxøp£áÃÌÌúïC±#FŒ05íÒ³\ý6«ù|¢¤äí«W/^44yx˜»*;(€&NœØ•æ²äówßÝËÏo]N¡Ph4 BˆÇ#ð]ojo¯¿r¥{¾ÈôjÂWH1_¯ÙÅl*eúôBõõÌÊÊæÊÊæªª7ååMååM¥¥MUUÍ Æ?Ÿ/i4*…‚ÚÚøÃeÿ†’¼¼¼îг[êQÐ ¬k×|ŒáëÑPjjj·¬²!TRÒ`n®_å¬DÝÕC$=Ÿ¹\~iéi4 A üt5…B10ж°Ð<ØÐÒÒÀÊÊÐÜ| ……¾••‰‰ çï½:\!áo»_01`b2ÀÕÕºÃò¶6nyy®/++›+*š››[”!P:¨ AO2ÄXÙ!Ehjb-Zä3hÐ@ }KK }ss}x¤¡?€:²_ÓÔ¤;:š9:š);½˜™ÙÀ]»æ);  0± Ô‘@PGy@ äÑëëȲ²²¥K—¾÷m………xeò…pó§OŸª©©%&&’Ë“’’ÔÕÕŸ={Ö1w@2dÈÏ>ûLú4]A,^¼XWWÖѵ ¥°°°;"íDÏu‡“.΄Î[Å“²/2&sKKKDD„‹‹‹®®®··÷ž={x<’ë¸QÄé®=}¯~•Ø]ÉjYÞÙu䥸³4µ´´„‡‡»¸¸ 0ÀËËk÷îÝ8o…={VlN^¸p¡+G@Òj³³³»¶Oï€|VÁ|RE¦SO4U­IDAT¯¯#ÿý÷?þXì¯ŠŠŠŒÿ™rB__ݺu’𻹹mذaÍš5oÞ¼A½}ûö«¯¾ÚºuëèÑ£{.raiiiÕÕÕÇg0îîî8±ªªª`ÆxI$kép&ôêc+K23™LOOÏÇGEEeeeEFFž>}úÃ?äóùò7œºÂºw§„ÿŠû³®d5Ù¶G¦ð¥¸S4Y¢Ây›‘‘ýäÉ“õë×'$$L™2…Ïç«SfÏž“0-- !Dæäرcå8zï]-L*·Þ’Ï=”Q} !¤¶¶6%%…èU¦OŸÞÚÚ*öWvPt!Ù¼½½}Ô¨QÁÁÁA„„„xxxp8œ‹ú¡‚‚òG@àçç·eËIï»_²¯¿=þüùó窳žÈ%ËÙÐÙc«xR"”%™ÃÂÂÆÏãñÈV,kÈ!qqq¢›xïÑè¹Ô F‘[OII©­­íâJT'«EÛör[=qA“”·GŽ‘{rèÑØsùÜ-ÿÙûm>+`[=¡G/ήî¼r劥¥%þî3gÎ :´¥¥!ÄårÃÃÃÍÌÌLMMÃÃù\.î|¾}û¶µµujjêÖ­[­­­MLL>ûì3ò³©h+„ÐÕ«W555íììN:…âñxb›744èèèhii wt“¯}}}Bƒ BúÌÉæ!uuõøøøcÇŽíÙ³çøñãñññt:]Rݸk¢(JHHÈõë×%­Gx¿d\ç_ýåàà```°gÏòh$%% 6ÌÔÔtÍš5íííbÊš=Olâ ‚899 0`̘1)))¸3_ʇk×®¹¹¹ikk›››GEEá…d&ˆæ >Ë÷ïßÛB¡;vÌÉÉÉÄÄ$**êÔ©S¶¶¶ܼy3~ƒèé3fÌ?ü€jjj¢R©aaa!>Ÿo``€Oú›7oþýïY………µµµuˆ¯™ ˆ°°0WW׆†$s2Ÿ>}zË–-4ÚÿO¬££‘ ÇqëÔÉ’”`Ò÷×ÑÑ e{½=±“Õb/‰HÂ5ê½)-ö‚#œ~t¸ ‰†*KTbó6<<üôéÓbÿ::>zrüÍJ:ìkÖ¬Y¾|9~Íb±´µµŸ>}*)ßdY-ä3¦ÊùŒu=£4ÿ‡N§“«½âõ'$$899~ÿý÷RÖÙâÒI¸Æ”ñSËgŸ}öùçŸ×ÔÔ˜™™=~ü/ŒŽŽž7o^YYYnn®»»{dd$®ß?úè£äääï¾ûnäÈ‘¹¹¹Ïž=óññ “ÔŠÅbihhÄÅÅUWWÿúë¯jjj,+&&FlócÇŽ:uŠx÷³‚ØÏ7b’ÍI‘‘‘¡;w /ìÑ]#Ä}nÈÈÈÐ××—¾uü[I놚1cƒÁ¸xñ"þ ÁkøðÃóóó=zäààðÝw߉](=Ü)šx‡655½téRUUÕõë×­¬¬ðÁìp®É C]]}Ù²e§OŸFÕÕÕR Ÿåêêj± B .d0GE-X°€Á`>|gBÜéÛ¾}ûôéÓ ‚HJJÒÓÓsww'"33SSS³¥¥… ˆ   €€€×¯_çææŽ5Š<58üH–@ ‹H­,ÉŒ¯ïõõõìÇ å8n¡ììlæ»$,I &ËþŠÍ‡žKlEöG*2«;ô©ˆ&'ñ¾”–tÁN?)4±¡¾7*IyûàÁ333ál!¯~Ö)ü£³b×CÄ;wŒŒŒ¸\.A§OŸ9r¤@ ”oRVKÖCù¬ÈþȾ—ÏXe”@ X°`AHHþQôbˆ×ÿÉ'Ÿ4779r!ÔØØ(}dT=”N„ÈRž:²¹¹ÙÊÊÊÙÙYx{ǯ®®Æ¯oÞ¼éêêŠãËÍÍ%bذa—.]¿}ñâùZ´USSNmnnL&“ÏçKj>oÞ¼¦¦&BÞ:’lŽ ‚Ù³gÓh´Å‹ ïoîñ¾:RÒÖñIë†JMM%?KTPP ?AçÎspp»JÁu¤hâ92>>ž|É'¤_¡ÚÛÛ_¾|Éb±ø|þ;wÈ#/%‘ð‘Ô!”••E‡Ãéð¿Aôôeffêêêr8œµk×nذN§777ÇÄÄL›6 ·¥ÑhäѸtéR‡Sƒ_GDD „^½zEî»,ÉŒÿ“¥')--ÍØØXŽã†Ä‘t²Ä&˜Œû+6z.±YG*2«;LÑä$Þ—Ò’.8Âé'å‚&6Ô÷F%åó™·äùŤÿ×ïì߬¤Õòx¼Aƒݾ}› ˆiÓ¦EEEò\újÉÀz(ŸYGö½|Æz(£âââ|}}ÛÚÚ ¼~|úd\'U¥ÑõûÚ!}}ýàà༼¼•+W’ KJJÌÍÍñP¦)S¦ãåÇG•––âûS!''§9sæHje``’’òèÑ#++« &Ü»wJ¥ŠmÎb±¸\®A‡ð ÿÞ:mžšššœœ|áÂ…¤¤$ÅìšØØ ìíí¥o“q¡¿"Ã>|xEE…”…*B4ñŠŠŠ\]]É78;;K_ƒººz~~þÔ©S=<<âããñBI‰„á³,¶!6`À„¾q,ü=}nnn:::wïÞ5k–››ÛÝ»wSRR¦OŸŽª­­åóùäÙwpp ÏŽËÈȘ8qâîÝ»%í‚ØdÖ××4hè Óììlá•ËxÜ0ÑGpÈm‰^%H‚ɸ¿’ôÄVJVc’®-RRZìç½Û"/hRIJTRòÖÃÿ–%[Hý›•´6wîÜK—.544ܺu+((ˆü•h¾É²ZÈgÔòY”|•››»gÏž .hhh ©œÍR…¥“N8I U„hâYZZæääoÈËË“¾6›½`Á‚ðð𬬬ƒâ…¢‰$ Ÿe± e!zú¨Tê´iÓ’’’òóóÝÝÝ'MštóæÍ»wïâ3nffF£ÑŠŠŠpóׯ_[ZZ G‚]½z5..îìÙ³)))¢» %™ƒ‚‚vìØAŽr]¸pá™3g¢¢¢.\ØÙã&Ø«I0÷W’>ØJÉjLúµEÒ¶D/8Ò·%|A“%‘ÄF´}ûváÑÙ---ÑÑÑäveÉuê°ÌŸ?ÿòåËçÏŸ7n¾c‹‰æ›,«…|F*ŸÏr‹Å :qâyÅ“r1íR©têt)–-[¶zõê3gÎܺuëêÕ«xùܹsׯ__ZZš››;uêÔŸþY¸Õ’%K6n܈;ÆW­ZUZZ*©…BùðÃ/^¼È`08N×ÖÖÛ<))iöìÙx=úúú¡“'O2Œýû÷ ošÅb‰ÝáæA¬X±ÂÙÙ?4jff¶zõjì~s}}}MMMeeå;wæÌ™S\\¼víZY¶.iG}ûö­ôSùÍ7ßfddlذañâÅRª±‰·lÙ²ðð𤤤ššš7nà'¥hooçp8êêêl6{ëÖ­!&“)œ j(KØbOß´iÓ<èããC§ÓâããmlllllBt:=00pÍš5ÅÅÅÏŸ?ß´i“p'IGGgذa‘‘‘!!!mmm²'ó–-[jjj¦L™òçŸæççÛÙÙ-Z´¨­­í‹/¾o÷qê C’¯H$ÁdÜ_ò¯¸%¶R²š<˜Ò¯-b‰½àˆnKÒMJ"IjË–-uuu7nÜ(((¸|ù²¥¥e‡ÞînѩÂG‘oß¾}É’%ÂËEóMìj!ŸE©`>w‘ØÀ¾þúë/¾øb„ äÛd¼JY§ÒÒIø†”,OQüôÓO...x‘Ë—/›››ãÇ ÆÒ¥K ŒŒŒ‚ƒƒ[ZZ„ hkk ³°°8pàÂ… ›››ñrÑVAœ;wÎÞÞ^]]}øðáIIIb›s8ü<içÎúúúöööø.A\.wܸqººº„ÈšÇÇÇkhh?m–žžN¥R/\¸ÐÓ»F¼{~ðàÁAAAÂOHߺ”u’VD_ã5=zÔÆÆÆØØxõêÕl6[ìBéÉ Èç#Å&‡ÃÙ¾}»­­­®®î˜1c~ûí7$õÉ‚ öíÛghh8xðàƒ.\¸ÐÀÀ@8Ä>S+¶¡©©)ñ¾ãLHHƒ7oÞ¨©©á0---êêê䆚šš–,Ybdddnnþí·ß’§F4*6›=tèÐ 6ÈžÌA°X¬ÐÐÐQ£FijjÚÛÛoܸq„ :nä¤ˆ=Y’Lúþ ÿ¿÷€wWb+ìùHgu‡ƒ)69ß›Ò.8¢—bé4ÑD’%*B(oµµµG޹sçN<-‹Ø'h¥?Í&Ç߬ØÕb!!!ZZZ Cø=¢ù&ÇÑî®|VØó‘}2Ÿ;lTôGù2 !¤®®®!„w1ìì:N„È’BýÙ×ÕÕ½xñbâĉbÿ=€>£°°ÐÑÑ‘x÷Š/v¡tøE×'ãí®õȱ !Äáp²²²ð$=Gg§»;55uĈ¦¦¦] ²ºŸØ¸qcIIIBBþ±ÏWwås·üg‡|îíº+ÈR­ÛbôNêêê=]DÐ÷´µµUUU;vìÌ™3ÊŽ¥éõߋ䠧§·bÅ YÐ]`Ø@‘?~ìéé¹lÙ2ᮾnÌ7ÈgÐz.à¾6ŸªÝ× [¨Ô}mºH¥îkƒ> Ãú#€< Žò€:ÈêH ¨#€<ÄÌYUU¥ø8@oÔÖÖ¦©©Ù]«‚Ä} d5P’¾¸³ ŸXbêÈüü|ÅÇz©îª#™L¦ŒßX @oY úÈg ¾žÈžò€:ÈêH ¨#€<þáê9ŸZ’EIEND®B`‚XQilla-2.3.0/docs/simple-api/namespacemembers_func.html0000644000151400015140000000400311653571064020030 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
 
XQilla-2.3.0/docs/simple-api/ATDecimalOrDerived_8hpp.html0000644000151400015140000000704411653571064020044 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATDecimalOrDerived.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/items/Numeric.hpp>
#include <xqilla/items/Numeric.hpp>
Include dependency graph for ATDecimalOrDerived.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  ATDecimalOrDerived
XQilla-2.3.0/docs/simple-api/Numeric_8hpp__dep__incl.png0000644000151400015140000002351611653571064020034 00000000000000‰PNG  IHDRµ]ÊQ»¥bKGDÿÿÿ ½§“ IDATxœíyXSWÚÀO ÐÊ" Ù„ ¡ø(jås«ÈcG­ZЏŒt„úµèW%¢]ÐQ+2´t:ZÔ‚KGTvAth ØVYYTÚ5$‚l÷ûãÚkLÂRáFyœûæ,ï½÷ǹ[Az`Ý  øà?à€ÃˆÞáçÏŸOo†ÏgŸ}6gκF§ÙÂÂÂ7ÞxƒÅbÑ›†ÁR\\¼~ýz Ù„P@@À[o½EwJqq1½ Àù€üp€ðÀ~8^?æÎ»sçNõçˆ÷îÝ›;wîÀدþçÎ{ïÞ½K†^^?B%%%EEEƒ6œ¹¹yppð  gȼ~,^¼ø_ÿúW{{ûà gii68c8/‡..._}õ•Æ»UÔêå¹sçæåå­]»véÒ¥§NÊÏÏ^¸páÑ£GÉ …âСCË–-[¶lÙ¡C‡ Ù¼ªª*((è‡~ »R*•ÇŽ ZºtiLLŒD"љޕ+WBBB/^|òäI*“_ýuõêÕË–-Û¿¿\.× Íõy9ü6lضmÛ*++üñÇ>6©¬¬àÇ‹ÇÊÊjóæÍ} >à€üp€ðÀ~8Àçøí·‡t§`XÐýĉÏÛh¤µÕÇÚú7#£.º1hö# €ÞÔ‘Jîß·>|œ³sݹ<ÅÝÝÝÙÙ™Æh~þbPÄÅå}ýu¾««ÍåËŸÑ‹¡çÏHO¯@ݾý°¾þ>ݹ àÇS®^½#ˆBÆÆÌÌÌJºÓ1À§dgW1Br¹2=½B¥‚Ã.Bà‰R©ÊȨP(”äbkkGyy#½)àB]¾Ü =¡™gÎTјá~ „PVV•‘ѳM!—+srªär%)à’ÉgÏV+*õ XÜ}ñ"®” ð]¸P/•vkŒYYp~ ”•U9l˜ævP(TÿýoÍ“'2ZR2†ºIw~þu¥R¥ý’\®,,¼>ø)CÝ‚‚ë2™¢§Wá*f¨û‘Ý£*QTT/K3Cc¨?ŸDê_ß=»w¿ëç÷±··|í5úßACwÍIœœ¬5"£FY¸º¾Ÿœ†úñÀ~8Àøà?à€üp€ðÀ~8Àøà?à€üp€ðÀ~8Àøà?à€üp€ðÀ~8Àøà?à€üp€Žç¾¦±±±°°®T „ÂÂÂæærº³  www??¿gË„©©©ô%f³† {î,è$ @] ß/5Ä¿‘l(¨óøà?à€üp€ýýؽ{7ƒÁØ·oIIIa袺ºZ}ÑÍÍmÍš5­­­ý±¡¡Á`è°FóÎÎN.—;qâD ‹©S§îÝ»W¡ÐñEý&ó?™pO=0Œ†††?ÓmßÑÓ‚ RRR\\\Ôo©-Y²D( …ÂK—.!„„àííºté’P(ÇŽ‹Å“'O~ôèQ¿µ²²ŠŠŠÒ/a :::Þ|óÍŠŠŠØØØÊÊÊíÛ·ŸŸZT©T³gÏŽŽŽîËX/ õ¬"##gÍš¥P(¨W%‰››[bb¢F+z3×Þ’Ú)½@4îŸê9¤¤¤Ì™3ÇÏÏÃáèqWžÁ`|ðÁçÏŸ'år9—˵³³c±X\.W.—+Š;v¸¸¸Œ5jÍš5äÿ«údË`0Ž=êåå5jÔ¨}ûö8qb̘1–––Ÿþ9Yáܹs“&M255uppP?’$''GGG3™L*bffÆår“““ÉQ~úé'—_~ù¥¿™«7?~ü8™ðÒ¥K7oÞL6éîî¶¶¶&{Ðn®T*ãââÆŽkaa1cÆŒ²²20??ŸÍf[[[ÇÄÄP[&''gܸq,kãÆÝÝÝ:ƒýÝSúÌ*•j̘1‡&âÓO?õööÖ¨ÐëüADEE…••YŽ]¾|ù;wjkk'Ož¼mÛ¶¸¸8ooïÚÚÚºººiÓ¦EFFjt‹ ‹ÅIII¡ÀÀ@±X|øða„P[[›X,611 ÉÉÉ¡PÍE"B¨µµU#í_ýÕÎÎŽ¬ööÛo_¸pA"‘ô7sõæÕÕÕHíX¬R©‚ÈÉÉqtt”Ëå:›ÇÇdzX¬¬¬¬û÷ïŸ?ÞÑÑQ{ „-Z$‹333Éõ%õ÷÷çñx¥¥¥l6{çÎ:ƒø=«=èãGii©‘‘Q[[A•••¡ºº:õ ýõƒÃá…B²\PPàãã3nܸ¬¬,2rãÆ ²¬áGUUA2™L£Ìçó»»»ëëë%‰R©,))!ƒ½úqùòe[[[²Zmm­~™«7§Fììì433+//'â½÷ÞÛ¾}{OÍÇŽ{üøqj¬ï¿ÿ^§ÅÅÅAgKÔªQ9§¦¦²ÙlA‹¶úüþKJJŠB¡°µµ¥"©©©ãÇïW'|>ßÃÃ,755988P/YZZvww{zz’‹^^^^^^Ú=XXX „Œ5Ê!·~ýz‰D2iÒ$†VVVöööÕÕÕÏ=ÈF¨ººzÊ”)d™Ãáè—¹Îæ¦¦¦K–,ÉÈÈxã7rss¯^½ÚSs™LæããCE&L˜ 3r^ÑøYEj‹q8@€ ö~Ÿ(•ÊÔÔÔøøøŽ?ؼysjj*ÑŸ§¾Aúè£;vL˜0¡®®®®®nÆŒëׯ'´Ž/Ô–Õ.‹D"ƒ‘——×ÙÙ¹uëV2=õæ?7nÜœ9sòòòx<^VV–··÷Œ3ººº4’ïoæêÍÕËäi©§§§úáC»ù7ß|Ãb±²³³…Ba^^ž»»;ÙCbb"5¨öú’Í;—Ïç———{zzFGGë âwî 8ÿ÷÷÷W¨T*¨¨(*¢Ó ggçuÃÄbñºu묭­mllÂÂÂ:;;»ºº"##---ƒƒƒE"Ñ?‚ˆ9r¤³³sBBBpp0‹ÅÒÈJ"‘lÙ²eüøñ¦¦¦ÞÞÞ{öìyòä‰vòýͼ'?‚ 377—H$˜æ …"..ŽÍf›™™ùúú’R¯ëK”””äêêjkk!•Juñ;WÛç~Ÿ0---((ˆ€÷½l444xzzjì8A<äûƒÒÒÒ¨<p€¯#FŒïK°¿€¯,ëСC} öðÀ~8Àøà?ž£­MBw †…Žçsß}÷Ýàça ¤§ß[¼Øþõ×™½W}ill$ïè?Cýfêÿüí°a¯ÙÛG ®ãYñÐw}ˆsòäe.7mÆ Ïôôÿ¥;CÎ?ž‘™Y‰£´´ááC8 y øñ”ææÇee1rr®ÒŽ¡~<%'ç*“É@©TDZZÝé àÇSÒÓ+”J!DD]à·tgd€!ÔØØzãÆ}êTÉ„CÌSÀ„:s¦ÊÈèÙ=¥’HO‡C BàIzz…Bñì½ÊA44<¨¯Ò˜’~ gFFÌìì*Zò1(À”]el¬yC]¡P¦¥•ÃÍáî‡JEdd\‘Ëu|l¿¥E\Uu{ðS2(†ºee­­:_22bž93Ô1CÝÜÜ«!#í?•Š8{öªR©¢;G:Ñçó·¯ãÇ;}úé"jñ«¯~\¼xâØ±öTäñcéÈ‘ft¤fÀóÛçptüøÐ¡µï¼ãÓ{Õ¡ÁP?¾xÀøà?à€üp€ðÀ~8Àøà?à€üp€ðÀ~8Àøà?à€üp€ðÀ~8Àøà?à€üp€ðÀ~XÔ †î\èÇÂb¦±±-ÝYÐLjj*¥„æ÷}üñǾ¾¾´¤ꋚ~LŸ>= `ó 8ÿp€ðÀ~8À‡ž~ìÞ½›Á`ìÛ·Š¤¤¤0tQ]]­¾èææ¶fÍšÖÖÖ”?jhh`0z4ìììär¹'N´°°˜:uêÞ½{ …vµ?“¼Þ¹á{`0 ¦Û¾£A¤¤¤¸¸¸¨ÿÞö’%K„B¡P(¼téBHøÞÞÞ¡K—. …B@pìØ1±XŸ¯Ý-ŸÏ§U*ÕìÙ³£££{¨'´‡è/‘‘‘³fÍR(TD"‘¸¹¹%&&jÔ|áÉ÷ kª‘Ò‹EÃ}æ”””9sæøùùq8õ)¤0Œ>øàüùóèùù“*“…Ÿ~úÉÅÅå—_~9wîܤI“LMMÈ#ÚôéÓBööö=ûÙ(333.—›œœ¬1:&y„\.çr¹vvv,‹ËåÊårõæÇ's[ºtéæÍ›É&ÝÝÝÖÖÖdÚÍ•Je\\ÜØ±c-,,f̘QVV¦sæçç³Ùlkk똘j#äääŒ7ŽÅbmܸ±»»[g°¿;«ßó‡J¥3fÌáÇ ‚øôÓO½½½5*ô:QQQaee¥Q™*“…·ß~ûÂ… B¡ÐÄÄ$44T $''#„>¾ã6oÞLêÖ÷N‚8xðàÂ… ©yayïÞ=õjäî”J¥\.·ªª*!!Ó­“Élll$oÞ¼9zôh²¬±B!!!»víR¿ZéììŒ]°`úè½&OÎ7俚H$*--í©ypppFFÆÙ³g§L™Bí3íænnn555T«ëׯëLCçe39a „x<)POÁ~€™[´)**b2™---TäÊ•+¡ªª**¢óøB]"/Y²ÄÉÉéÑ£GA÷Ž9òøñãeË–!µã µÕ F^^^ggçÖ­[É±È •W®\9oÞ¼ÆÆÆºº:oooò*© ¨òãÇÇ7gΜ¼¼<—••åíí=cÆŒ®®.ü1ɱqãÆ+V455ÕÔÔL›6í£>êé܈<-õôôT?|h7ÿæ›oX,Vvv¶P(ÌËËsww'{HLL¤Õ^#r ¹sçòùüòòrOOÏèèhAÌÎ¥:Ôÿü#<<Üßß_=¢R©<<<¢¢¢¨ˆN?(œCBBÔ Û³g•••‡‡GNN޶AÄÇÇ9ÒÙÙ9!!!88˜ÅbÉåò™3gš››kTnoo_½zµƒƒÃÇ,•JunM²,‘H¶lÙ2~üxSSSooï={öß?VWW÷Ûo¿ùúúêÑÖÀùË_Z2BÈšîD^0wïÞ---Õ£¡žßOçëë›––¦_[`ðIKK Ò£!œ8Àøà?à€cý`¨áææ¶fÍšÖÖÖN††íŸìÐàþýû+W®tss377Ÿ:uê™3g'7 £¡¡î,žc`çK—. …B@pìØ1±Xœ4i’©©ijjjyyù{ï½üã?ök”ÆÆF[[Ûþæ¦_+Ú úO@@@@@@¯ÕB|>ŸZT©T³gÏŽŽŽÖcÄ·~¤‰ŒŒôóóëW'|>_ ˆi¥±Å^ ©©©úíëÁóƒ ˆS§NM™2… ˆˆˆˆÐÐP2ØÑÑ1|øðªª*²Irr2‡Ã±¶¶Ž%+äææúøø >ÜÞÞ>&&†êüÈ‘#ÇÖÖ6&&æ?ÿù››Ûˆ#>ûì3BmÈåòèèhggg[[ÛÕ«W‹D"²¹½½ý¥K—Ôsëèè¸}û6Y‰Dk×®µ±±=zô–-[¤R©ÎÜlllBvvvd+™LÉb±F)“ÉrrrÛÛÛÉu÷ôô”H$­4¶Ø·ß~ëááaeeµwï^jE²³³ÇŽ;jÔ¨ˆˆˆ®®.Aü¾x9ü¨¨¨°²²"¢¤¤ÄÆÆF.—‘œœìíí­R©È&+V¬‰D‰‰‰¡‡ŠÅb“ÐÐP@œœŒzðàY388X,'%%!„ÅbñáÇBmmm”qqqÞÞÞµµµuuuÓ¦M‹ŒŒ$B$!„Èݦ“yóæÝ¼y³¶¶vüøñ;wîÔ™›ÆL»|ùò;wîÔÖÖNž>|¸X,VoBý Råøøø‘#G:;;'$$³X¬žjReêßÕÕéèèhii¬~ÎÑÔÔ´bÅ GGG ‹¿üå/gÏž¥^joo_½zµƒƒÃÇL]¿hŒ"—ËgΜinnNÅbñºu묭­mllÂÂÂ:;;÷ïß?qâD™LFÄ™3gÚÛÛ5ZõeE’’’\]]mmm#""¤R©Î ~_âùi¯|òÉ'+W®üóý¼Âè<™Õ㾋Þ~Ðóû•]]]÷ïß?zôèéÓ§iIè#ô<Ÿ+++{óÍ7CCCßzë-ZxY1bDxxx_‚=óÇœ9sÈ›‹uèС¾x¾à?à€üp€ðã9ÊÊéNÁ°ÐóúöâÅ‹óçϱ©NNwnîÞ#÷IDATMLdt'ò‚iiiѯ¡>~LŸ>]¿Á ©ÔH*.“ÙÛÙ½jŸÏ¶¶¶æp8z4Ôçóû¯*qqy_ïêjsùògtçb(ÀùÇ3ÒÓ+B·o?¬¯¿Ow.†øñ”«Wï"„±133³’ît ðã)ÙÙUFFL„\®LO¯P©à°‹øA¢Tª22* %¹ØÚÚQ^º$—/7ˆDO¨Eccæ™3U4æc8€!”•UedôlSÈåÊœœ*¹\IcJød2ÅÙ³Õ …J=(w_¼È£+%Ãü@.ÔK¥ÝA##FV\Å€eeUj°E¡Pý÷¿5Ož¼j7ÚûËP÷C"éÎÏ¿®Tª´_’Ë•……×?%ƒb¨ûQPp]&Sôô*\Å u?²³{4@¥"ŠŠêÅbé`æch õçsHýàâë»g÷îwýüÞ "öö–¯½FÏ»ü ¡»æ$NNš_¥=j”…«« -É Cýøà?à€üp€ðÀ~8Àøà?à€üp€ðÀ~8Àøà?à€üp€ðÀ~8Àøà?à€üp€ðÀ~8ÀÇ~?LcccaaáÀõ?@67—ÓE?pww÷óó¨ÞõøMö>BþæûË…±1kذ×è΢ ÜNðï—"†ö÷› 4Ú?œ8Àøà?à€üp¼4~4440 …?Ùá 4g0 zE#/VVVQQQ†Üá+ÉK㇭­í¾}û ¹ÃWšý8{öìèÑ£E"BèôéÓcÇŽíììT©Tðòò²°°ðõõ-**"çgÌ|~îܹI“&™šš:88èÜë¹¹¹&Lxýõ×ÝÝÝOœ8ž?@0Œ£Gzyy5jß¾}'Nœ3fŒ¥¥åçŸNÕÌÉÉ7n‹ÅÚ¸qcw÷s¿G&—˹\®‹Åâr¹r¹\;üü|6›mmmÓSŸ½Dwëž|þÒkµ5kÖ¬]»¶¹¹ÙÎή¬¬Œ ˆÃ‡³X¬¬¬¬û÷ïŸ?ÞÉÉ !ÄçóÉÞ´ b±ØÄÄ$44T $''#„„D"yíµ×:$ 9bdd$‘H¨æA „‚ƒƒÅbqRRB(00P,>|!ÔÖÖFÖô÷÷çñx¥¥¥l6{çÎêÍccc—/_~çÎÚÚÚÉ“'oÛ¶McB‹-‹Å™™™½ö©Äo½€€€}þB¿"‘ÈÉÉi„ Ô¶ðöö>~ü8Uáûï¿ÇûÑÝÝ]__/‘H”JeII YY}ˆöövccã/¿üR$©TªŽŽ¥R©áGUUA2™L£ÌçóÉšµµµÔz±ÙlõæG(’å‚‚uD¡T*{íS#ˆßzíýçVVVaaaׯ_ß°aillôññ¡*L˜0߃‰‰ Ç[°`Á”)SŽ?NÅ`mm]TTTZZêää4gΜŸþYû -,,BÆÆÆe OOO²ÀápúKMMMäXóçÏ¿uë–v’ŽŽŽ!quö‰hð¡ß»wï8pÀÏÏoË–-ddôèÑ555T…ë×{ù‘@©TÈår«ªª¨8õO •JU*Uzzz{{ûûï¿¿xñâöööþæIþs#„x<¹³)lmm©K$•––j7×yò¤³OÌ@ƒÍ~¨TªÐÐЈˆˆÓ§Oæææ"„BCC¹\nNNNssó?ü°mÛ6|'ÝÝÝ2™ÌÄÄD*•îØ±!ÔÑÑ¡^Á`øûûgffŠÅb™LfllljjÚßT7mÚÔÐÐPQQñÉ'Ÿ¬ZµJý¥wß}wûöí·oß®­­]°`Á·ß~‹JJJzüø±}b¢;tõåücÿþý'N”ÉdAœ9sÆÁÁ¡½½]&“íÚµk̘1æææ¾¾¾§NBØó‚ âããGŽéììœÌb±´“ñðð011áp8999Í‘Ú)‹v™¬™””äêêjkk!•JÕ›‹ÅâuëÖY[[ÛØØ„……uvvþ™>5‚ø øêŸŸöŠúž …H@gŸz ô꟟† øÑ;#FŒ„>b ?ÉþþmZZZPPÐÀõ ?Þš––6@ýÃüà?à€üp€ŽÿüÜwß}7ÐC eÝÝÝ®ÿ÷ÃÐ.è_=Ô¼ÿ¼Àù€üp€ðÀñÿc}â8ŒIEND®B`‚XQilla-2.3.0/docs/simple-api/inherit_graph_1.png0000644000151400015140000000414211653571064016375 00000000000000‰PNG  IHDRÅ(Á€©ûbKGDÿÿÿ ½§“IDATxœíš{HSaǦéffÉæ6/”¢“Ѻc¥d¤x ‚Šhj*edXF¥Pa”h†õOý¡¥bå,2%‚’$E¥D·®ó’6tÚòÚ&Šº=ïÏÛXg—–;èÛËóù뜇ßåû;ç»gg7„,±d±þ¯ ~"° ñMˆŸlâÁ8/))imm])„‘ææfËS¦Ÿ”JåçÏŸ£££PáŸD­Vwtt0™~€èèèúúú‘Dø‡©¯¯OMMe,’ç'›?Ø„ø‰À&ÄO6!~"°‰K~*))qss+--eEÊèèhzzzHHˆÏ–-[X)û·¸¹¹õ÷÷³Rª®®ÎÍ===®‹4Ãår·oßîzMV˜¿ŸBuuu«V­’ËåŽ#ù|¾ã˜‰‰‰M›6y{{Ëåò®®®ƒ¦¥¥½xñâ¯$9ÓÈù¬ùU³dß¾}F£Ñ´··€æR©Ô•²˜ööv\M¡PˆÅâÔÔTVþ*ââÔ6¾r¥RùéÓ§—/_&&&ªTªˆˆ{‘&“ibbÂqµË—/ÇÅÅUUUáÓ5kÖŒ•——ïÚµËyIÎ4r>k~Õ,ár¹\. ˆD"Wª1ð÷÷ÇE"ѵkׄB¡V«.–uujô;ÉÉÉÉÉÉÈ .\¸‹’H$ÅÅÅx±¯¯Ï\Ó|Ìãñ@(âuš¦333y<^PPP~~þÔÔBH$µ··[Ö×ëõÃÃÃR ¶¶V"‘øùù•••Y7š™™)((þþþ333E!„f\ÍŒŒŒøøø…B±víÚ¢¢"š¦ßf›X§ „@&“Ñ4}çΘ˜˜`4*++;pàÀ·oß ÅæÍ›ÏŸ?:|øpffæØØ˜P(ììì´–g¾UÎT€´´4N‡wÖ””NWYY ?~ü0ç2J½~ýšÇãÍÎÎ"„jkk¥R©ÉdÂ1III*•ª££#<<i¯oOO^¯×ëõ###¹¹¹YYY¤ //¯ŠŠ FS]]íááa0lF2¤:€M?uttxxxàKöîÝ;P*•È ?ÍÌ̸»»¿ÿŸ>yò$<<œ¢( iÚf/›)!hiiÁØŒk!‘H4 >nnnÞ¸q#Bˆ¦éàààõë×ã»…œö“ÍjÐÝÝmÖ`yl¹0JÍÍ͉D¢W¯^!„vïÞ]ZZjŽQ(8F.—ã1íõµÄÇÇçãǤRµtéÒòòrš¦M&“^¯76#ÇO§OŸfŒ„wxK5*•ÊÚOjµðBH¡Pp8„P(lkk³lÑÕÕ999i/¾|ùòß1lù‰ÃáX*\±b^/..vwwǧNúÉf5Kߨ;¶.…ÊÍÍ=qâ„V«õôôT«Õæ󘽽½xÌ?öœœÌÏÏŠŠr,õÍ›72™lÙ²e;vìxþü¹½Hý4ŸÏwF£Q.—߸qCÿ‹³gÏÊårôëu377###Ö¹B¡ÐÝÝ}ppŸ ÀÞ½{¯_¿Ž,^yµµµ³³³ÞÞÞöR`ÉGúù|¾ù¢Ó4 W«Õ·nÝJHHÈÏÏÿ«©mV›7ÉÉÉ õõõ111ÁÁÁæu|;@¥R:Ó×ÛÛûÈ‘#>|0_=딩©)“ÉôèÑ#Š¢Ž=ºgÏüžÀîPózoii±|}#„Þ¾} ÝÝÝZ­ª««þü¹ÿ~°ØŸôz=NOOT*•R©ôÒ¥K¡ïß¿óx¼ŒŒŒ¶¶¶ÞÞÞ¢¢"xö왃°ÚN:%“Ɇ††z{{·mÛvòäI£Ñ˜PRRBQ”H$jjj²–¿ïOªÙÔ`}ŒlíOsss@(Þ»wÏ2&..®¯¯¯««K,ã1ÿØ!4<< :Ξԩ©)‡óøñc­V{ûöm‡ƒ7BëHÆÔ`íý.'''))ÉrÅd2………;w!tåÊ••+W†……566â~³³³111>>>8˜¢¨C‡ñx¼€€€3gΘwø¡¡!™L¸|ùò­[·â›í Åúþ1étº¬¬,???wìØ±ÉÉÉ›7onذÞihh (Š‘e.ûÇj65X#[~B?~œËåšM€cªªªV¯^Íçóóòòð˜ì‹2¾¾¾_¿~u U.—‡……yzzJ$’ÆÆF{‘Œ©`ÓOnè÷‡»”” ÿZ ‡††îß¿OûûûÅb1²zÖþŸÿÿ‰!xþßgæÍôôôèèèÝ»w>|¸ØZX†ü¼tvvFFFfggÇÆÆš}}}srrO;ýiعs'þxe‰@ ¨¨¨X=,Bö'›?Ø„ø‰À&ÄO6!~"° ñMl|_ÐÚÚš˜˜¸ðRÿãããÖ‹L?EEE-ˆÂ?ŸŸŸD"a,2¿#\ XQilla-2.3.0/docs/simple-api/ATDecimalOrDerived_8hpp__incl.map0000644000151400015140000000022711653571064021015 00000000000000 XQilla-2.3.0/docs/simple-api/DateOrTimeType_8hpp__incl.png0000644000151400015140000002340211653571064020274 00000000000000‰PNG  IHDR›uŽ!½èbKGDÿÿÿ ½§“ IDATxœíÝyX×ÚðöMöE76eѪ_E–‚€+hQ[k­ ]¼½©×ÖåQoõÖÚÞûèµ*¢´jÕQ RDqETd @H2ßçv“IIJñþþ†™“wæœÌ›œ9sB#@Åi(:Èdt@@FÔdt@h):dfË–-………ŠŽHãÛo¿6mš¢£@µAF꣪ªª¢¢ÂÃÃCÑ€7SPP°bÅ EG€ÊƒŒÔЇ‡ÇÆx3Šu÷ÑuPÑuPÑucÝÁD.ÛØØøøø$&&ššš¾e±½½½iii%%%MMM#GŽ xÿý÷555·¹téÒ–-[D÷Ý´iÓ¦M›òóó¥{iqŦ¤¤8;;KW¦¨   #GŽØÛÛ˪@€lAFCÑîÝ»mmmù|þÓ§OOž<ðàA###Ê›ššV®\™™™)¡ÀžžžÄÄD33³„„;;»G¥¦¦–––îܹSC㯞°wß}÷äÉ“¸ÌÏ?ÿ/#„‚ˆ‹‹“úpÄkll,u™• E¦¦¦æææ!KKK__ß/¿ü2==}Ù²e”óùüÎÎNÉþú믦¦¦?þø#Îß'N\¶lYnnndd$¹™®®®®®.BˆÍf#„p X||¼Ô‡#¡XÀÐ÷ÑÁPG£ÑfÍšUTT„ÿ¼~ýúŠ+ÂÃÃçÏŸÿÛo¿!„>ýôS„мyóð\.wïÞ½sçÎ;wîÞ½{¹\.BˆÁ`|øá‡‚_ÇõôôÞÿ}ƒñìÙ³   ²²²… VUUQÆ€·ÁËAAA¹¹¹K—.3gÎo¿ývþüù¸¸¸ÈÈȃJ€Ò®]»¾ÿþ{¼Ìf³ÃÃÃkkkñk]½zõƒ>˜;wî®]»úûûXliiéâÅ‹£££=J†-T”¸òƒ 2:ÈÁÁ¡±±!ÔÓÓ³a×#GŽ$&&¦¤¤tttìÙ³!”‘‘7¦ÓéMMMûöíÛ¹sgYYÙ¡C‡X,“ɽcíììüäɼüû￯]»ÖÅÅe ñܼyó矎OII¹~ýzjjjbbâáÇqWhâÊ™6mÚÕ«Wy<BèêÕ«¶¶¶d§OŸÞ¶mÛwß}wãÆ üÁe ÅÞ¸q#%%%99ùÀd¿…hQâVdtþ¢££“ššºjÕ* kkk„Pww·Ð6¹¹¹ûÛ߬­­Š‹‹Å•F£Ñø|>^Ž÷óóÓÓÓH .400 C-Z´ÈÀÀ <<!ÔÕÕõFxzzjiiUVV"„.\¸F£Ñð¿ÜÜÜ>ùäƒ1Àbq`S§N%ƒ¡,JÜJÀ ‚ûè ††;;;„––VCCÃ?üÀf³Å}Ÿnnnž?>ù§¡¡¡‘‘‘¹¹ùƒüýý·|ðà««+^9räÀã100ÀÁ-‹ @\9………ŽŽŽ7oÞ\½z5ù/2°ÖÖÖkaa"?ˆ+JÜJÀ ‚Œ†:‚ Μ93yòd„P__~lÊ”)ýýý¹¹¹¢Û›˜˜üôÓOø!.Üߎ ùõ×_ýüüÈ[é½½½ÇŽ#s¤`J~K”ˆ3}úô­[·Ž=ÚËËËÊÊŠ\ßÐÐàèèˆzúô)ÎÓ)V(—‹+JÜJÀ ‚^w0utt0™Ì¶¶¶ŠŠŠõë×755-X°!ÔßßÏårµ´´8¾‘ÜÓÓƒwÁÃÈB)))---uuuÉÉɧOŸF-]º´½½ý«¯¾*..nhhøã?---gÏž-óà)ÇÛÛ›ÇãýòË/¸Ÿ´{÷îgϞݻwïÀ¡¡¡âŠÍÉɽï D´(q+ƒ ¾£ƒ¡èóÏ?Ç ÖÖÖÞÞÞû÷ïÇÌFFF‰‰‰[·nÕ××_´hQppprr2N÷òòš?þÙ³gBË—/ß½{÷Š+h4Z```BBBÈÀÀ`ÿþý‡Ú»wocc£­­mpppll¬¶¶¶Ìƒ§ @ ÀÀÀsçÎ ® Y½zuoooppðâÅ‹ÅûÃ?øúúJèØ- ÷±‹–l4‚ ²±`Á‚ÖÖVø}t!hnnþöÛoñŸÏž=[²d‰ÔóÓ ¢,JŠòƒ‚‚Nœ8»IRƒ^wÔ‡ÃijjÊÍÍŠŠRt,€Aµu÷îÝ„„„ˆˆ___r¥¡¡att´Lʧ,J†åÞôºõ½î* zÝ øŽ¨Èè€:€Œ¨Èè€:€Œ¨Èè€:€Y`Z©¨¨HJJ¤Â q8f|¾–¾þPü11LjË5ÒÓ{¡¡Ñ¯èX £õ?m0tué´¶¼x¡Ïáh˜›÷::¤‡ÉÔ««3™0¡Eί+¨±Ñ°¾ÞäåK“>ss¶¥%[G‡/“’GŒ!“¢Ê`†Ä*.®ËʪÈÉ©hn~9qâ˜èhßÈHo[[SùGræLùÊ•¿46þ$ÿ—Äápoܨ;¾úÌ™[­­]®®Ã££}¢£}]]‡+60‚Œ€¨úú¶“'K³²*jjšG¶œ?ß_áIKI2:‰Çãß¼YŸ•U‘]ÞÒÒ9j”EHˆGt´Ïĉc(C ÑøŸÖÖ®ÌÌ[tzieåS+«a³fùÅÆNðöVŠÞ`eËè$>Ÿ(-}Ä`ÜÉÉ©¨¯o1Â<,ÌR;  u,V_nn%^zíÚ}}íðp¯ØØ‰ÿ÷ΚšJô$ˆÒftA÷ï7gg—Ÿ>}ëáÃçvv¦3f¸…†z¹ii)Ñ™@AFCT?//¯ŠN/-,¼Ïçáá^11\õô´•Èè$œÚŒ;••OÍÌ ƒƒÝ¢£}§O§­­©èÐPgÑÁÐBÄ•+µéé% ÆÎNöÔ©.11ÂÂj”ELÌ„¨(ß±cUìi+UÏ褦¦Ž‹ï2Õùùwµ´4\£¢|Þ{ÏËØXOÑ¡ ò £õôâëÔ©²¬¬ò›7ëÍÍ gÏí3a •€­6ÔÞÞ}áÂì슂‚{4mÒ$ÇÐPÙ³ý¬¬ä={j2:P+==œœœ îøñ£¢£}££}llL*2:Pýý¼‚‚{tz)ƒQÍãñ§O3!4ÔC9®KA3:‰Íæ\¹R›•Už—WÕÓÃñ÷æé3z´¥¢C@5@F*Œ ˆ’’GtziNNeGGÏ„ £cc'FEù˜š*õÀu) …ŒNêëãÞÏÊ*?þvgg/žkvΜñNNÖŠ ¥¨¤‡Ÿ?^œ™YÖÐÐîéi¿`Á;^ööfŠŽk° ©ŒN"çšœF>4ÔCI&ò@Ù@Fª¤¥å%^šž^ZSÓçš…i䚌䤿Ÿ——WE§—Þ×ÔÒ×¥]V:;Ù—/ßg0ªss«z{ûay N £ƒÁEÄ•+µéé% ÆîîÞ  7èö”dt™ëííÿ㚬¬òsçnww÷yz:„†ºÏ›ç?fŒ•¢C@JÑÁ`©¬|šž^zölesóK¸þ– £<<þÖþâ Ï5;{öxgg˜F¨Èè@ÆêëÛNž,Íʪ¨©ivr²~ÿ}¸.Ñ倜k6+ëÖóç0qâx„WÎ £+¡§O™çÎÝÆÓȦ7mÚØ÷™3½ a®Y Ñ$Ož¼HO/Á×­æÎOõ(dteÖØØqöl%ƒQ}ýú--̀ר(Ÿðp¯aàï Èdt@ÉìÎȸ‰èÂÒÒ(6ö¸®XÑU“Ù}ñâÁiäCC=""¼,,Œ £ƒ¿ôôprr*²³+._¾¯««5{¶_LÌÖ« £«rùË—ïóx|<×ì¬Y~ÖÖ0<DÑârùùùw³²ÊÏŸ¿Íf÷‡‡{ÅÄL «« וdtÅfs®\©ÍÊ*ÏÍ­b³9þþ£££}£¢|†‡1(@ö £]äÀõœœÊÎNöŒxວ±±¾¢C¨±±ã£R¹\þ“Íîg2»ííMÉ ÜÝívï^¢ èÀƒiä@FŠêêZ»‘™YÖÐð¿ëð¥A n{ðà9å¿h4””ñ÷¿‡É9$ðöÈiäóòªÚÚþ7ü¬Y~..6Š ¨<ÈèCHKK'^’ž^ZSÓþ—k×ö»"„ð0ˆï¹sÇ¿û® t¯©+«ÏÓó[‡‹ÒÒÒ õLM]¦è €Rhhh?{¶2'§âæÍz}}Q£,jjšG]à¡ò°aÃ,ø±×¡2ºòº{·éÃSZZ^R>‘liiT\¼AOO[þ9‹OËÍ­âñø4mÿþ¥‘‘>ŠŽ(—––ÎÜܪíÛsººØ¢WtMMñãGíßÿ‘±"¢ò_ì”TVVydäOÍÍ”é!ÔÖÆºw¯IÎQ…˜7ÏŸÏç#„ôõµCB<P:66Æ3fŒëì¤Hç!_VöxúôÞ—{h@® £+¿uköÊ•¿ööry<±=(ZZš§N•É30 (AAnúú:4Šˆð‚§¥¼¼ÛžYçñø]]ìE‹öíÜ™'4½P'¯\Ølv{{»¢B!«ï›o²¯^­{í–\.N/Y±b¢|~êT__ßÌìmçmoog³Ù2‰g¨ wæLePccc£¢cQIfffúúoûDÊ|òOž,–ð!„ùÎ犋lÙid¤+ac *ìììÿ|%£wuuÕÔÔÈ7ð&“ýŸÿ”64téé è{ŸÏ?¾ÄÑQªYYY½}Folllmm•IŒâr¹”»·µµêëë v¼Ë“'OF >‰é™!wGéè褥¥Ê•’Ež(ŸÏß½{·››Û°aæL™’ŸŸû²$ôžeggûùùØÚÚ’}Ô¢ F°:˜I£Ñ<èææfeeµ}ûöÇ3ÆÄÄdýúõx/Ñ‹^m]¡ãÇO›6-$$dܸq‚ß°EëzÕªUË—/Çÿe±X·nÝ’PˆÐ!ttt|ôÑG–––IIIø^äC φ¸7%Ê8ŵ.Ê+Z/Irëw ¹rå 厯mÀ¢µ3eÊ”Ÿ~ú !Äd2544’’’B<ÏÌÌ,''Q53¡HpÉA$%%ùúú¶µµ¡_r9²aÃMÍ¿&`044LNN>zô¨çí*K\“|¼...Hà=(D® ûµ9_Ô‡~¸téÒææf›7nà•ÿú׿æÏŸÿäÉ“ÊÊÊñãǯ]»l‰ˆˆ¸téÒ¦M›<<<*++«ªª&Mš”””$n/‹¥««»wïÞ¦¦¦ÔÔT---‹µcÇÊÝ"„¢¢¢:;;Ož<‰jkkÃ凅…ÕÔÔ9;;oÚ´‰r¥ä—ówtѶoß>kk댌ŒÆÆÆœœ|Î…ê”\èììÔÑÑùøãŽ9‚zþü9AÕ`„>\‹6H‚ Bqqq@-X° ³³sß¾}ø$S¶XâÕÖÅçóÇŒ³oß>‚ ¾ùæòEëúòåËýýýA9rÄÃÃÏçK(Dè/^üðáÃÊÊJOOO\¹’,AÜò…(ã׺(O¬ Ák½„|¿£Ë³õ¯^Cššš(w”\ûUílÞ¼922’ ˆÌÌLccãñãÇQZZª§§×ÝÝMP53Ñ«ŸÏ'Ó9Žv —\œb[[[…Nìõë×ÍÍÍ¥8o¡òòò®W‰«,q l ÇKÙ¯aSæki2z{{»ƒƒƒ···àKŽ7®©© /3 ___bee%AcÇŽÍÈÈÀÿ½sç¹,º“ÉÔÖÖþá‡ÚÛÛù|~WWÇ·ûüùó™L&!mF'wÇø|þìÙ³555—,YòÊ9B¨¶¶ö³Ï>ûÇ?þAÄ‘#GBCC DN™Ñ ‚àr¹EEE›7oöôôÔÔÔüâÅ‹AÌœ9sûöí’ <‡£©©IžäŒŒ \¹’,AÜ :W”qŠk]”'VÐàµ^B¾]ž­—xõ„‹ÛQríTµSZZjddÄáp¾úê«uëÖikk···ïرcæÌ™„˜f&z5KNNF¯ÞcÈ%gtòCéÚµk–––Rœ7DE\eQ6°/e{¼†-›^w„©©i|||uuubb"¹²¾¾ÞÖÖ# }ôè^?nÜ8„ÐãÇq¿BÈÍÍmîܹâö233ËÏÏ/**rpp˜6mÚü¡¡¡A¹;‹ÅêïïýA0qU(Dt÷£G\ºt‰N§gff m›žžNÄ@ºÜ»»»?Žš4iÒúõë+++×­[‡Û·(|Š„à_Ô!»¡>|èééIþ×Ýݲ(¼—†Æ+ÕJžºqãÆ544HX©$DX]]¯¯/¹···ätttjjjÂÃÃýýýÓÒÒðJq F¸f\ôIŠòòrÊK¥äó†‰~ã"_K4—!‘6ÀãGž [šŒþôéÓÝ»w‡„„¬^½š\‰?=‘|ŠŠŠðzÜnìììêëëñšòòòþóŸâöb³Ù|>?==Éd._¾<::šÉdRîž——.~¼áÙ³g9 ¡Ý'Ò]«IDATW­ZµcÇŽÀÀÀ7&$$·À±©S§vuu]¹r…Á`ˆ]O"bÑ¢Eä“4í½÷ÞÃች°"‘ê5j”à Ý½{—²(Ê;LøÓB¨¦¦†üé=Ê•JB´ÙÛÛ >kðÚß‚c³Ù ,X³fMYYÙž={ðJÑ#J\3–üZ¢-Vðµx<Þ‰'~üñG²Ç﫯¾:qâyYªk„Pllì©S§~ÿý÷©S§âNÚ×‚ÙØØhjjÖÕÕá?>|hooÿÚC ‰{ŸŠ#'&Úºrb¡õbR´^| ¡Üq DkGCCcæÌ™™™™555ãÇŸ1cƒÁ(,,Ä]B3¼šeeeíÝ»÷øñãùùù¢‡ á’»xñâ-[¶à/µ¡¸¸¸cÇŽmß¾=..îMÏ›d”¹ ‰4°¯8rmدý/„Çã…„„lÙ²…Éd>üÌ™3xýªU«bbbðS^“&MúüóÏ;"6nÜèíí]UUUUUõî»ï®X±BÜ^l6[OON§·¶¶îß¿_OOÍfSî¾dÉ’gÏžárð¯n§¦¦¾|ù± þì Á·LD»hwçóùQQQÓ¦MÃý¥ÇÛÛ;..Žü4‡›û§Ÿ~êææ$´‰<AÄÒ¥K]]]³³³>|xõêÕÉ“'ùå—â¢"DzÝÉ7^Þµk—ƒƒÃ¹sçÚÚÚ.^¼8vìXFDJJJGG‡¸½p™AAAµµµÅÅÅ...6l \)¹ÒåÙëNÙÀ¾ûî;kkëÓ§O755åææ¾öNd{{;FËÍÍÅOµ"„ÊÊÊk\hò¾šhƒ$¨N¬à2e‹|­üü|MMMÁÞÚÒÒRôgç'eá\.×ÚÚÚÆÆæÐ¡C¯-Dè-Z\WWWUUåáá+Wò!gCÜûT褑Dã׺(O¬|Z/!Ç^w9·^¡eʉ×Õ>!¦vÒÓÓŒŒðFƒadd$8þC´™‰‹jãÆ®®®Bo É—Ü—/_Ž;6(((//ïþýûëÖ­CY[[÷õõ½éy#¨®ÏøMYYâØ@Ž—|ʧaËæ>ú®]»|||ðc§N²µµÅ÷E:;;—-[ffffaaßÝÝ-xÀ½½½IIIvvv&&&qqqíííx½è^Aœ8qÂÉÉIGGgܸq™™™”»s8|G‡´uëVSSS'''Ü{CDÿÔ©SŒŒD«_h÷´´4]]]Áû=ÅÅÅt:]°Jð¯,ÿ÷¿ÿ¬‚ª“Ÿ .—»iÓ&ooo}}ýÑ£Gýõ×l6[\TÄë2:Çûé§ŸœœœLLLÂÃÃ333­¬¬(·\Æe8p`Ô¨Q–––_|ñ›Í¦\)¹Òå™Ñ)‡ÃÙ¼yó˜1cŒŒŒ¦L™‚‡Hxoñã?š››1bÏž=qqqfff‚5Nn)X„˜ùÚ ¢P‹j] aaa‚ÇÈç󜜾þúk …¯\¹R__¿³³óµ…“Éüàƒ,,,lmmÿþ÷¿ãÊ`F÷>:i‚„â׺¤8±²j½„3ºœ[/!R)B;Z[[hÀ”µÓÑÑ¡¥¥…Ǭuwwëèè$''“/$ÚÌÄEÅf³]]]×­[7ðK.A,kõêÕžžžzzzNNNß|óÍ´iÓ.\øFç<|ÊK4ee‰k`’Wè=(Ÿ†-³‘q@þ²²²ÊËËÉ?étºèØ"Q”—`Ê•’)ÛóèR‚ÊY·nÝ¢E‹Åë Å)ê‘Uë%”ìyô¡ÐzC__ßõë×ûUäP;²jØ2䯲²rÉ’%eee===EEEëׯÿä“O½½½uuu\±b…¢c‘DUâêAGG?ˆ$ÐRt`@’““{zzæÌ™ÓÚÚêèèøñÇ'$$¼v/cccÑÍ(WåqãÆ¹sç&&&NŸ>]ѱHB§ [´^ rh`ƒÚ°i„Àm†çÏŸß¹sGɯ#@þðèÜ·ŸÇ[VåðF ÜÝÝ­­­•¤Þe¾†^w@@FÔdt@@FÔdt@P<½ÖØØ(ÿ8€2ëííÕÓÓ“UQÐÀ€êêèè÷ È‹Å]I‘Ñkjj? bd•Ññ¯ŒÈ¤(ä>eöÊóèPQpPÑuPÑuðÿÏ"Ȳái½¿IEND®B`‚XQilla-2.3.0/docs/simple-api/functions_func_0x64.html0000644000151400015140000002047611653571063017325 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
 

- d -

XQilla-2.3.0/docs/simple-api/ATUntypedAtomic_8hpp__incl.md50000644000151400015140000000004011653571063020340 000000000000000697f3324209a874e48cd39fb762b640XQilla-2.3.0/docs/simple-api/inherit_graph_5.map0000644000151400015140000000024011653571064016365 00000000000000 XQilla-2.3.0/docs/simple-api/LocalFileInputSource_8hpp_source.html0000644000151400015140000002210411653571063022061 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

LocalFileInputSource.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  * 
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  * 
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: LocalFileInputSource.hpp 527149 2007-04-10 14:56:39Z amassari $
00020  */
00021 
00022 
00023 #if !defined(XERCESC_INCLUDE_GUARD_LOCALFILEINPUTSOURCE_HPP)
00024 #define XERCESC_INCLUDE_GUARD_LOCALFILEINPUTSOURCE_HPP
00025 
00026 #include <xercesc/sax/InputSource.hpp>
00027 
00028 XERCES_CPP_NAMESPACE_BEGIN
00029 
00030 class BinInputStream;
00031 
00048 class XMLPARSER_EXPORT LocalFileInputSource : public InputSource
00049 {
00050 public :
00051     // -----------------------------------------------------------------------
00052     //  Constructors and Destructor
00053     // -----------------------------------------------------------------------
00054 
00057 
00086     LocalFileInputSource
00087     (
00088         const   XMLCh* const   basePath
00089         , const XMLCh* const   relativePath
00090         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
00091     );
00092 
00111     LocalFileInputSource
00112     (
00113         const   XMLCh* const   filePath
00114         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
00115     );
00117 
00120     ~LocalFileInputSource();
00122 
00123 
00124     // -----------------------------------------------------------------------
00125     //  Virtual input source interface
00126     // -----------------------------------------------------------------------
00127 
00130 
00138     virtual BinInputStream* makeStream() const;
00139 
00141 private:
00142     // -----------------------------------------------------------------------
00143     //  Unimplemented constructors and operators
00144     // -----------------------------------------------------------------------
00145     LocalFileInputSource(const LocalFileInputSource&);
00146     LocalFileInputSource& operator=(const LocalFileInputSource&);
00147 
00148 };
00149 
00150 XERCES_CPP_NAMESPACE_END
00151 
00152 #endif
XQilla-2.3.0/docs/simple-api/classResult.html0000644000151400015140000003471311653571063016024 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

Result Class Reference

A scoped pointer wrapper for the lazily evaluated query result. More...

#include <Result.hpp>

List of all members.

Public Member Functions

 Result (const Item::Ptr &item)
 Result (const Sequence &seq)
 Result (ResultImpl *impl)
 Result (const Result &o)
Resultoperator= (const Result &o)
 ~Result ()
ResultImploperator-> ()
 Returns the underlying ResultImpl object.
const ResultImploperator-> () const
 Returns the underlying ResultImpl object.
ResultImplget ()
 Returns the underlying ResultImpl object.
const ResultImplget () const
 Returns the underlying ResultImpl object.
bool isNull () const
 Returns true if the underlying pointer is null.
EmptyResult * getEmpty () const

Detailed Description

A scoped pointer wrapper for the lazily evaluated query result.

Examples:

simple-basic.cpp, and simple-context-item.cpp.


Constructor & Destructor Documentation

Result::Result ( const Item::Ptr item)
Result::Result ( const Sequence seq)
Result::Result ( ResultImpl impl)
Result::Result ( const Result o)
Result::~Result ( )

Member Function Documentation

ResultImpl * Result::get ( ) [inline]

Returns the underlying ResultImpl object.

References getEmpty().

const ResultImpl * Result::get ( ) const [inline]

Returns the underlying ResultImpl object.

References getEmpty().

EmptyResult* Result::getEmpty ( ) const

Referenced by get().

bool Result::isNull ( ) const [inline]

Returns true if the underlying pointer is null.

ResultImpl * Result::operator-> ( ) [inline]

Returns the underlying ResultImpl object.

const ResultImpl * Result::operator-> ( ) const [inline]

Returns the underlying ResultImpl object.

Result& Result::operator= ( const Result o)

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/Collation_8hpp__incl.md50000644000151400015140000000004011653571063017252 00000000000000b7a344abf5bf60d8d36d6a0a4d32ad48XQilla-2.3.0/docs/simple-api/StaticAnalysis_8hpp__incl.png0000644000151400015140000006560711653571064020405 00000000000000‰PNG  IHDRÃÃÄAbKGDÿÿÿ ½§“ IDATxœìÝwXSgûðöL˜ AöTQÔ*(Up¼EiÝŠ£®ÖîWm µ¯ZGmmkUëhÅâF(Ž(¢Af6I€u~œ6¥ˆˆ¬ø~®^½‡“sî$ÌÍs?÷C#I’h5 UÝ 2Ix=È$àõ “€×£¥êºÔ—_~yíÚ5UGA«W¯1b„ª£€¶@& ½ËÇùä“´´4‚  …@ há`0‹/nùByyyÑÑÑ999EEE Z@ËI4ÃÀÀ ..N™úùù=z” ˆ>ø€ ˆwÞy‡ÚãÆE‹;vÒ¤ITyjã”u¤r¹|ß¾}Ó¦M‹ˆˆØ¸q£H$R^(11Ñßß? ÀÁÁ!11Q¹?$$äòåËsçÎ0aÂï¿ÿþ²Ë)}ÿý÷_ý5µ]__?vìØììl‚ ®_¿¾`Á‚°°°™3g^ºt‰øwuë‹ß}Ñ;wfÍš~øðaåÃÓÒÒfÏžýöÛoÿý÷R©´Ùmõ@í!“hFTTÔÝ»w'OžuôèQ>ŸOíÿñÇ ‚8uêAuuuk×®uuu=tèÐ’%KvïÞ]]]Ýø¥'N\»vmãÆß|óMaaá¡C‡¨ýTië¨Q£‚nRàšššúÃ?¼÷Þ{?ÿü³P(lörʃGŒ‘––&—Ë ‚HKK³¶¶vqq‹Å±±±¿ÿþûìÙ³¿þúk±X¬|HËßUºuëÖîÝ»£££÷ìÙ£L­ãââ6nÜø¿ÿýïÖ­[Êœ¶ÙÐ#!“hÆÀ=úí·ßúúú^¼xqæÌ™W®\irŒŽŽÎÞ½{?ùässs&“IDmmm³g;{öìüùóœœV¬XáííMíòäIiiipp0AÁÁÁÏŸ?ÏËËS>*""ÂÈÈh̘1A‚–/çã㣥¥Åf³ ‚¸|ùrXXF“J¥$IÖ××ëèèŒ;6>>^WWWù–¿«4mÚ4ƒáÇ! ©K–,±³³óôô\¸paBBB ; GÒRujG,_¿~}äÈ‘žžžžžž³gÏÞ¿ÿÎ;©ÁC%--­¢¢¢­[·Ö××»ºº¶pB>ŸoggGm;:::::RÛ‰‰‰r¹¼q Ÿ¤¤$'''jÛ‚ºJk.§¡¡tíÚ5gg猌ŒeË–allüÍ7ßœ8qbß¾}nnn3gÎû¬…š››óx£G^¶l™X,5jÔ¬Y³¨ZÖ&;Ûòº@7AS–QôS§N-++‹‰‰Qu bÏž=<oõêÕw‰âââÈÈÈ&mf›ÝÙ²£GN:µ£€®€êV€ž@"‘p¹ÜóçÏ¿õÖ[ªŽz>d’=AVVÖ{ï½7nܸ~ýúuê… ÃÃÃ[³z0Ì“è üýýÿüóÏ.¸‰‰ÉÒ¥K[³z0ŒIÀëA& ¯™$¼d’ðzIÀëA& ¯«€@¯óàÁƒåË—wÆ™år]±ØÂа¸…cH’&‘0tu«;#€6Éô45h4²ç‘J$ºž^•¦f}‡ê ™$ô.C† éŒÓVWër¹F••zZZ wwy³‡ÕÖjgg›ÖÕi ÈÓÑQ´íZ••z¹¹Œùíˆ÷wï2 ‚Ö§O™™¸=çáó òò55}õôd¦¦b3³£AC㥠ª³³³½½}{®*D#Éöþ ×ª¬¬Ý·/åðá›|¾`øp×… ƒß|ÓSS³™‰µµ ëÖ>räæo¸nÙ2ÕÑѼÍýóÏûï¿ ¤ä›vþÊÊÚo¾¹´j¿~ö±±o8¶çlOŸò._μvsóæ3…‚ôö¶ õ õöõµ£Ñh0¨d’m‘‘ñ|×®«/>ÒÒÒ˜1cÈܹÃ\\˜/;85•u¬²²vÍš ³f igNÕ±™$åÑ£âØØ¸7žMš°jU8‹Eoç ëê$iiÙ ™‰‰Y%%ÕFC‡ºŒíæÍ`tHÌ BÈ$^ƒX,=qâΡC7ØìB77«… ƒ'Nìol¬÷²ã««ëÖ®ýãäÉŒ1c|6nœÜþ èœL’’WZ*X²$äÃGééiwÈióó+22••AAn¡¡^:ih`  [B& Ð*ÅÅUû÷§=z«ººnÜ8¿ÈȡÇ»¶<ºxþüÃ/¾8!“)þ÷¿Iááý:*’ÎË$ ‚Jå¤mÝzÞÐPoåÊñ“'ìÀªÔº:IFÆóK—2/\xX\\ennôÆ.AAnaa>L¦qG]º2I€–$™šš½gϵ+W›˜̘1$2rè+g9VTˆ¾øâd|üýÉ“®];ѨCêÔL’RUU»}û¥R}|ìÖ­‹4È©Ã/¡¨¼u+W&“ûøØa  A& мÚÚ†ß~»uà@Ú³g¥}/1fŒŽÎ«[^:t㫯ÎêlÚ4eôh¯¬ 2IJNNéºuq‰‰OÞzËõêp{{³Î¸J}½äÎç—.e^¼ø°¨¨ÊÌÌpØ0×  ·ÐPï)€Î€L ©§Oy{÷^;}úžT*ŸUT» ꢥÕLG\Pd’‘Éçϳ÷ì¹vûvžéܹæMÜÊÂT…‚üå—”­[Ï[XoÛ6}ð`ç΋³‹3I‚ ¤RùÑ£é›7ŸÓÒÒ\¶lÌÌ™C:»•¨¼vséÒ£ìl¾©©áðáÔ@¥‹ÅèÔK@k “økYÈC‡n––þµ,ä¨Q^­O–rsË–-ûýÎç￲lÙ˜Žjyú2]ŸIRjjêvìHܵ+ÙÓÓfݺˆNÍ–£*SR8‰‰Yµµ nnV¡¡ÞÁÁnC†ôÕÖÖìš  d’Ыݹ“·{÷µ‹éëëDF1c°³³eë.—+vîLÚ¶í¢££ùÖ­Ó;/T%Ue’”Üܲ͛ÏÅÇß õ^¿þíW6ê@b±ôöí¼k×8 ™ÏÄÄ (È-(ÈmÔ(Okk“. d’Ð;5^ÒÃÃzþü ˆˆ¯;ðÑ£â¥K{ú”=nñâ‘]6>¦ÚL’’šÊ‰‰9“ß3gXtô¸VÔì$Êʤ¤,‘•] ™$ô.EEUü³,ä‚A¯]¥)‘ȶl¹°kW²í¶mÓ=<¬;#Ô—Q‡L’ …‚|X¤§§=p`ŸÐPï±c}íì0P ðzI@ÏQQ!Ú¿?•Zrôh¯… ƒ‡ smý²Í:þá_œÉÿûߤðð~j{¨s&I©«“üôSâŽWìíÍÖ®8z´—ª#jª¬L˜œüäòåÇW¯>ê̓‚ÜBC½GŒpÇ@%@k “€žàöí¼={®]¼øÈÀ@gÖ¬¡³f iÿT½Š Ñ_œŒ¿?yòÀµk'ZXuH¨í§þ™$¥¤¤zÓ¦³'Of îºn]Dw¸m%¹\‘™Yœ™ðX9PìæãêÊRutê ™$tc—…ôô´yÿý‘&ô×Õí€1¥C‡n|õÕÍ›§¨ÛZwÉ$)÷îÄÄÄÝ¿Ÿ?}úà+Æ››«KBþ¢òrÑ9TVYSSG T¹½ù¦§¡áë­5 Ðã!“€n©°°r×®«Çß®¯—LœØáÂàötÓi¬¤¤zÅŠc‰‰OfͲzõ:]¯CNÛºW&II’gÎ<øòË?…†>zsÑ¢j^AÚd RWWkÐ §à`·ÐPo77+UG I@wB’äåË÷ì¹–––Íb1æÏ>eJ “iÜQç?qâNLLœžž¶E*u»L’R_/ùå—”ÿû¿‹¾bÅx5™túJ¢ë×›¨ ñ42Â@%ô^È$ {¨©©;tèÆ‘#·òòÚ»,d³ŠŠªV¬8–œütΜ7¾øâ-ccµŠTꦙ$…ǫپýâ‘#7ßxÃuݺ‰žž6ªŽ¨µ¨Ê”Î¥K™ϵµ5ƒƒÝ‚‚Ü:j< A& ê.+‹»o_J\Ü]…‚œ1cÈܹÃ\\˜x~©TþÝw ;v\qw·Þ¶mš··mž¼3tëL’òàAaLLÜ;yï¼°fÍKËUî••µiiÙ))œK—•– Ì©”räHuþ@B& jªñ²®®¬E‹FL˜Ð¿Ãg-Þ¿_°lÙÑÜÜÒåËǾ÷^ˆú,~Ø‚IR2׬ù£¢Bôþû#?úht‡´Jêb ùèQQJ çÚ5Î9AôïïæäæëkG£µku†LÔÎßËBÞ(/ï9´ýËB¾¨®N²qãÙRvÞ²eZûW é2=&“$B,–îÝ{í»ï.››}þùºËäÉfUUÕ¦¦f§¤póù5ööf#F¸¹ᡆ}›Ú ™$¨‘”ΡC7.\xhd¤7sæÈÈ¡ŽŽæt¡èèc••µkÖL˜5kH÷;êI™$…ÏlÛvá·ßn ìáã£îÆ-k|ãÈ‘[ÏŸ—îºpað¨Q^ÞM§1’$¾¹aß †ÁæÍSFŽôè¼kuŸIRªªj·o¿´ªŸŸÝºu:©:¢NJè¦I@¡–…üã»ALŸ>xÞ¼a}ûvä²Ízö¬tùò£wî<ÿý¥KÃôõu:ûŠ] —d’”ìlþúõ§Ÿ¼õ–ÿš5ììLUQg©«“¤¥e'$d&&f•”T››½ñ*@}!“€Î%•ÊãâîîÝ›Âfº»[-X1ÀÈH· ®ûÝw ?üèêÊÚ¶mzwoÚX¯Ê$)))œµkÿ((¨œ??èÓOC»àçGµòó+22••AAn¡¡^:uê>@ë!“€ÎÂãÕìÝ›râÄíŠ Ñ¸q~ :wÍ¥<(\¶ì÷œœÒ¨¨±‹ÔÖÖìšëv^˜I!•ÊMߴ鬎ŽÖÒ¥cfÎÒrªº:IFÆóK—2/^|XTTeff8l˜kP[h¨wwl; = 2IèxÊe!étýyó†EFe±]séº:ÉÆgH tÞºuZŸ>]sÝ®Ô;3IJuuÝ?$îÚ•ìåe1xpýmBäçW¤¤p2¯^}*“É}|ì‚‚Ü‚ƒÝ†uÑÒÒPutÐë “€C- yðàõ‡‹ rZ¸0xÌŸNZ²Y©©œèèãååµk'Κ5¤Ç4,))©ž7o¯L&§¾¬¯—VVÖÚÚš(ðò²Ù±#REÑ©À³g¥ë×ÿ™êýå—o;8˜«:¢.U_/¹sçù¥K™—.=*,¬455>œ¨ôê²?Ù “€PPP±{÷µãÇÓ%ùäÉ;{YÈUW×­]ûÇÉ“cÆølÜ8©ç}žÞ˜“SÚì·h4bùòqÿýoX‡¤r))œØØ¸œœÒ9s†EG36ÖSuD* ¨¼ví©TúÏ@å!}{XQ7¨d’Ðv—…´µ5]´hÄÔ©ƒº~©Æ³g¬ZuR.'ÿ÷¿Iááýºøê]ãÇ7m:+“)^üF»ukMnjÚ™Lñûï·¾þúœ¦¦Æ²ecg̬©ÙL§D"{ò„ÛÅÝèbb±ôöí¼k×8—.=ÊÎæ+*Gö²²êiXu€LÚ‚Zòðá›ùù£G{-\þ¾žžNdäЙ3;9Yv}$I>|sÆx:]oóæ©!!]C ÿ¿{÷ ŠýÒÖÒÒˆ˜??HUQ©¼¼²M›ÎÅÇß õ^·.B™4–• ‡ Ù KlmM/^\fjj¨Ú8»’r 2%…Ãfê¾ñ†Kh¨÷¨QžÖÖ&¯~<ÀË!“€Vi¼,¤§§Í»ïû톆ªYÖ/7·lùò£·oç½ÿ~ÈÒ¥aúú:* £‹8¶fÍ©&®šš´û÷×››©**u“––ÇáðæÌ5ŽN×ûôÓ#qqw¥R¹––†»»ÕéÓŸôŠ˜&”•IIY"Q[*++k·m»°zux/¹ã eÈ$z5©TþÕWñ«WOha.·ú—_RO¯ªª›8±ÿÂ…Á*œo&—+vîLÚ¶í¢££ùÖ­Óú¨*’®WYYëï¿V.ÿ'“ÔÔÔ2¤ïñã¨0*5¤P'OÞùê«x©T1ujà®]ÉÊé´´4‚ƒÝXØìtÊ^¢¡A–žž«¨40Ð6Ì54ÔûÍ7=mlZ¨ûìˆrª¤¶¶æ£Gzçê­qöìƒE‹DÓæh4bݺ·. VITêI&Sܽû¡¡ÞcÇúRmår…§ç*‘HL¯©©ááaýóÏsU0MÔ2I€Þ('§tÊ”**j•‹Ý_¹åéi“Ÿ_±gϵãÇÓe2Å;ïÌ™3ÌÇÇVµ¡‘––u´¼\¸víÄY³†Ðh]Ý!V}ˆD >>«%AZZ¡¡>{÷¾«ê Ô”D"{ã¯x¼š&=Š(4±{wóCñðìYibbVRÒ“7r¤R¹¯¯]Hˆ§­­YTÔïÓÒÒÔÐ V¯ž°`APo¾+z-d’½Î;y3g—(‹$µµ5CB©T¡P4iªêõî»A*Y²YW®d}þùq@¼zux/ŠlìÂ…‡ üB’„NfæWººZªŽHUVÖúUm­¸ÙIЦ&Á0¸xq™­­iWÆÖM½%+‹Ûìg--M##o¿êÝõ€ª`®<@/räÈÍyóöH$²&i$A41t¨KP›:¤‘EEUsæìž3g÷È‘·n­ŽŒŠ4R)$ÄS__‡F#ÆóEÙ‚'½ÿ~HP›rImm-^1¹œ¬©©Ÿ6í'@¬¢»òrÑËÒH‚ d2¹@ ž7ooTÔѺ:IǪ‚1I€¶«ªªª¯¯Wu¯fjjª¯¯¿mÛ…íÛ/½ì–§ÑÓ[·Ö¨6“¤ùؾý’­­É×_O2¤o _¾|977·ËbS§OsïÝ«ž=Û¡o_CUÇ¢£Gvvv~­‡”• ³²J=*ÎÊâ>|X”›[*“)44 ™LѯŸýÎS[XGPwq{ÎОßW—.=Y½úL ¼J}ú˜mÚ4ÁÅ…èê¢ý?9/ƒL í233ËÊÊTÅ«yxx~÷]꯿¦µüAF£>¼xäH. ¬‰û÷ ¢¢Žegó?þxÔG~å€ÛÔ©S?Þ5±©]]G“±|þn‚xÙ$ÀžìèÑ£S§Nmσ¡gl¬Ï`èë1úÔ6®O§ëÑéþR#õ“Ð,d’=Y}½dûö[÷îñ›ì×ÖÖ44Ô56Ö£ÓõLL ÍÍ ét}:]ßÌÌP¡ »¸À511ëóÏOˆD Û¶MŸ}¨ƒƒ5z@eŒjÒ©…Ç«Y±âxBBæäÉW¯ž ëŽtÚÚšªz5µø4 døp7™¬ÄËËSÝæÉ(ä/¿¤lÝzN×;xpñ¨QžªŽ^2Ièj/*êØÝ»ù￲ti˜¾¾Žª#€×ƒLºNCƒlëÖ »v%ûøØ^¼¸ÌË Ýº%d’ÐE22ò££åæ–.]:æƒÞÄL?€îK­bèmrrrzdçR ~åÊã'~knn””´âÓOCÕ0T¾ø/n´   àÝwßmÏu•g‰DË—/wrrÒ××wuu‰‰‹Å¯{¶–cþý÷ßi͹ÿ~{žB4-''§Oj÷KGÁýÝ2IÈÍ͵°°xq¿‰‰ÉŠ+º>žÎ£P{ö\Í¿Ïôµ\¾üxðà/==¿8v,].WtÞ…¦L™2eÊ”W6gΜ¹sçòx<‹uëÖ-’$þùg&“yêÔ©’’’³gÏÚÙÙ¡|S^Ü:::óçÏ/**:tèA¥¥¥$IþòË/|Ù¯|ëŸ$É‹/ÚÚÚêêꆆ†nÙ²åùóçÔþÆiöB/þ8‘$¹eËooo6›ýðáÃÁƒ/_¾¼ñkÒ$Œ«W¯š››K¥R’$:äíí­P(¨cÂÂÂ8ÎÍ›7]\\bccI’ܼyó¤I“ Ølö€V®\Ùä'â­·Þ'Ož$¢¼¼¼ÙS½ìü-#âèÑ£¯<¬e­¹sÿýw…BA’äéÓ§mll¨×çŧßìKÝäž5kÖ¨Q£ž={Æf³}||”OŸºñE"QËÁtÈ]ÜšgMâ~éY÷K×ÿþ€^™$@Ûµæ“Yee¥¶¶öÖ­[«ªª …P(”Ëå/~”a³Ùä¿?¯‘””D’¤D"¡>·ùøø>|Xyæ#Gލ[&YTT9gÎnkëÏ>þøŸ/èì˵2“¬ªª²³³óóóS~ðòööÞ¿¿ò€´üɸ¡¡!++K$Éåò«W¯R“$9iÒ¤ÊÊÊ—ðÊ·¾ñ(2™ìæÍ›ëׯ÷ññÑÔÔ¤ÞîÆiöBÍ~2vww?uêµóñãÇÊí&‡)¯keeuåÊ’$Ç¿iÓ&òß?™$I=zÔÅÅ…$I.—KíLHHèׯ_“œ ˆääd’$åry㛜êeçoY—e’µµµ†††ééé$INŸ>ýóÏ?§ö¿øô›}©¿Â‰DSSSyÅS§N½øô[Ö•™$î—žt¿ “€N…êV€Îejjš””tóæM;;»#F¤¤¤hh4sßyxx¼¸ÓÆÆ† mmmêËgÏžùøø(¿ëååÕ9!·…\®øá‡+#FlÊË+;~üÃï¾›Åd«:¨¿˜˜˜,^¼833sÉ’%ÔžÜÜÜ~ýú)ðóókù :::gìØ±û÷ï§vŠD"©Tjjjú²^ùÖ7>Cmmíï¿ÿNÄàÁƒ×¬YÃf³¿øâ‹èèèÖDÒ¬üü|WWWjÛÓÓóí·ßná`MMÍwÞyçÔ©Sååå—/_ž5k–ò[Ê“xxxñüùskkkª‰ehhh^^Þ‹'¤~t›<ßOõ²êÀÀÀ`âĉ'Nœ¨­­Wv}ñé¿ò¥æóùr¹¼oß¾Ô—...ÊgÚì¯Z¸_p¿´2I€ÎU__¯P(Ž?^YY¹`Á‚ðððÊÊÊS¦‹5ù`áè蘙™©ü2++«Ã£m›»wóǎݾeË…%KB.]Z>l˜‹ª#ú—ÂÂÂ;vŒ=zÙ²eÔ[[Û(hüª6«¾¾~êÔ©QQQwïÞýñÇ©.\;vl ¼ò­o|’$gΜùðáCêK6fÌ™LÖšHšeccóüùsjûþýû_}õUËÏqÊ”)üñDZcdžN•/R¨‘‚ 8õyׂb"I²ªªêæÍ›/ž­Ùt/žêe;ÕÄŒ3Nœ8ñçŸ(?Á¿øô_ùR³X,MMÍÜÜ\êËgÏžÙÚÚRÛÍÞøª…û÷ @+!“è\4-,,ìäÉ“@"‘hkkPߢú¶Þ‡~}éÒ¥ŠŠŠÄÄÄØØX•wÜ ÅÑÑÇ&LøÖÌÌ0))zÙ²±zzêõÉX¡PÌŸ?ÿã?þí·ß._¾OÄüùó£¢¢NŸ>Íãñ.\¸°råÊ–OÒÐÐ ‘Htttêëëcbb‚ …§OŸž8qb ¼ò­o|##£9sæL›6íìÙ³¹¹¹×¯__¾|ùŒ3”1PiöBPš={öªU«¨‚Æ>úˆjFÒ‚   ™L¶~ýúÙ³g7Þÿé§Ÿæääܾ}û‹/¾ˆŒŒ$âwÞùüóÏóóóÙlöرcøá‚ öìÙSSSÓò%^<ÕËvª‰°°°ªªª˜˜˜ùóç+w¾øô[x©©7E[[{Ú´iŸ|òI^^Þ£GV¯^ÝxK­à~ÁýðTQR ÐC´rÞÑÑ£Gûöí«££ãááqúôi’$¥RéðáÃŒŒÈÏÀi2ORù—lj[.—óÍ7}ûöe0cÇŽ=}ú´¥¥å+¯Þyód.\x8hÐ:w÷Ï÷ïOíÔÎ:/Óšy’ßÿ½¿¿¿D"!Iò?þ°¶¶®¬¬”H$ëׯwrr222:t(5ã´…y_$Inß¾ÝÌÌÌÞÞþÇœ1c†©©éøñã_¨ÉL&“lñ­—H$MÎ “Ébccýüüôõõûôé³bÅŠúúzòß?-Í^¨Ù'±X¼|ùrƒ1cÆŒªªªÆ×j2ï‹òþûïëëë ‚ÆÇìÙ³ÇÑÑÑÂÂâã?¦âï¾û®©©©¹¹ùâÅ‹kkkÉæ~\o7{ª—¿eDWÍ“¤,^¼ØÈȨqGœŸ~³/u“w­²²röìÙæææÖÖÖÿýï•O¿•wÙ•œütòä«V…«jJäÔ©S ‚8vìX;Ï“““ãêêŠ_†«V­zþüùáÇ©/;ðeiöTm;?F;zô(õÖ·Yß¹í×!wqG=kÜ/”nq¿tÆï%T·tl6;22òîÝ»uuu7oÞ\³fÍÂ… »8@¼fÍ#Fl .^\öí·3Õ§³´™X,ÎÍÍýå—_-Z¤êXÔª€ÖŠŽŽ®««‹ˆˆ(++svvž?þ{ï½×eWW(È#GnnÝzž$‰mÛ¦Ožw70ÐùܹÿúúÚ©:"P;È$à/ÕÕuß~›°o_ª­­éîÝïŽç«êˆšQS#Qu€L }ÄbqII‰ª£h/‘¨a÷î«?ÿœ¬¡A[µê­yó†kkkª:¨VÉÍÍݵkWkެ®–jjÆÆÚtˆêj)A&&Mß/ ½˜˜Œ îÛØ˜88˜;:š;:šS}û2 u[yþžqç¾®Þù¬ “ “h¡P( UEÛ•”TÿúkÚÁƒ7‚X²$dþü cc=Uõ222^¶Æš††¡¶6SGÇJ[›¥­ÍÒÐЉ҅Âë]!E[›I§××gÕÕeª$€˜™EÈåB¡ðºBQ¯êXþÁ`Œ60ðQ(d²2©´L*-“ÉÊe² ‚ }ø¡·³³OAAe~~ÅãÇ%çÏ?¬¨¡­­iggæädáèhnoonooêà`nooÖì,ßî~ç¶Mï|ÖÐI°ž$@/uëVîÞ½×.\xH§ë/^>¶ªêõÔÕI22ž§§ç*SG š‹ ‹r4ÈÉÙÙR²b’$Oœ¸³iÓ¹ÚZñòåãæÎ¦Q½—[½qãÙ“'3†wðô´VuD-‘Jå¹¹eÊËGŠ«ªjµµ5œ,ýüìÜÝ­Üܬú˜™¾øØššºÆ¹%µQ\\%“)‚ÐÕÕ²²jša:9Yv¯Âo€Î†L ‡#Iòúõg¦?ÿÐÌÌhöì¡‘‘o0™ÆªŽ«Ud(KŸ=+U(HWW5äèçgçåekd¤^5ŠwîäÅÄıÙEóæ _º4ÌÔ´™LFÝ¿_wï^þô郣£Ç[X©:¢ÖRVÃr8ü§OyÙÙ|’$©jX77+77–ŸŸ½›‹Fk¾|·¾^BÕÄ*‹c * +D¢‚ 455¬¬fööfööæo˜±X Ž{¨2I€«¦¦îرÛ^ÏÉ):´ïܹÃÇS÷BV©T~ï^¾2uÌÍ-•ÉL¦±¿¿C` Ó ANÖtº¾ªÃl^QQÕ—_þyæÌƒ7ßôX»v¢«+KÕµI’gÎ<ذ!¾¦¦þãG-Z4¢qÉhw!ˆŸ<)¡F,Ÿ>å±Ù… 2cc=kjÄ’ú{„žÞ+ÚùVVÖ*³Ê‚‚ÊÂÂÊüüŠ¢¢J©TN„––†µµ‰­­)•XÚÙ™ÚÙ™ÚÙ™ÙØ˜tÇ  õIô4$I¦¦f:tãÂ…‡ÆÆz3f ™5kHŸ>ªŽ«y ™ÍWÎuÌÌ,®«“˜™ôQ<²X U‡ù "Q÷ß&üòKŠƒƒÙúõo¹©:¢ K÷î½öí· ––ô•+LJ‡÷SuDí¢¬†åpøïîÝüŠ ‘––†³3“šcéçg߯Ÿƒ¥e«†ë ’ϯ),¬,*ª**ª**¢6* +©6?4ɤ7Î-mmMííMííÍôõu:ù¹td’=GmmC\ÜÝ_½þða‘»»ÕܹÃ'O¨nÅŸAPDTêøä W(ëëëøøØ::u‹ÔQI¡ ¹¹}ûE©T¾bÅøiÓÕ|Ô÷uñù5Û¶]üí·[C†8¯[÷¶——ª#ê0T5ìß#–EÊjX7·F,]]Y¯Û̶¡AÆãÕ(g`òù5TןÂÂJ…‚$þ=“Å¢³X j6¦©¦& e Û@& Ðܹ“÷ÛoéþyO"‘ç;wîð¡Cûª:¨”—‹îÝËoÜdUWWËÏïŸ&«..ÌîøúÖ­ÜØØ¸ÇK/ùá‡o6»naÏÀfÆÆžNOÏ}ç€Õ«'t—y¶¯E(ge•Ps,Ù쇋Äb©‘‘®³3“±ôó³óñ±30hãˆbMM5€YXXù÷fUQQeee-u®gkkJ-XbggfkkbccbggjiIWŸ¥Y”Itc……•¿þzýÔ© .·ÚÏÏ>2rè„ ýétÕw˜¬®®»};¯qꨩ©áím;h•:ªI“Õ6+(¨X³æ„„Ìðð~ÑÑãúöeª:¢®¹víeeÂ%KB>úh´®nOž(“)ž=+åpxÍ.º¿ ¬L¨©©aggª±ôó³g±èí¼P]äï*Ùý¿´THý­­­ÉbÑmlLíìL­­MllÔ_@£Ñ7Yõö¶í Á …⯿>ÿë¯i..ÌØØˆž1%²õ¤Rùi[¶œ76Ö[±büäÉ_Ö µçáók”#–lvQN_¡  別»»•§§Mþ‰„Z­„Ïðù‚Æ…²EEUr¹‚:†Á0 V+a2éVVt‡¿*fííÍ0’ ™$@w’›[vìXúñãw¸Üꀀ>3g﯒™‰ìþý‚&MVÍ r¢>U{xبÃèh’Ë¿ývkÛ¶ r¹":züôéƒ{íò••µß|siÿþTûuë"ú¨:"‰rsK©9–lvá£GÅõõå‚–~~öîîV>>¶± L]¤¨¨’Ë­))©*)©.*ª¢¶‹ŠªÄb)u ƒa@^Z[3llLmlLlmMmlL¬­h* ™$@7 ˆããï=zûÎ<‹1iRÀÔ©ƒÜܺtRÙdõöí¼ôô¼¼¼2©Tnnn4`€c7j²Úf7n<‹‰ùƒÃá/Z4âãG©íJ$]‰Ãá­[w:9ùé[où¯];ÁÖÖTÕ©’\®(*ªâpx‹º ‚ ´ôó³£ù´° e‡¨ªª-)©þ;½¬.)©..®*)©æñj¨eK‚`2­¬L¬¬vv¦ÖÖ ++†­­©•+—ÀkA&  ¾”U¬×¯çÐéúï¼0eÊ@??û®¹:I’Î?ësde•ˆD †Õ^µÇ§ŽJÏŸ—ÇÄÄQS"W®ïäd©êˆÔKBBfLLŸ/˜??è³ÏB{F s‡¨©©SŽX²ÙEÏž•Êå :]ÏÝÝš±tscùû;tÍtS…‚,+Us¹Õ<^Mqq—[ÃåVW•• •I¦……‘•ÃÚÚÄÎΔڠ†1mlL{ö´Xhd’êˆÃá:•qüø>¿fȾS¦ úÏü» Šµ´TøàAAzz^zzîÓ§< ^OOÛ×÷¯¼10ÐÙÑѼ³cPxË–ó¿þšææf1l˜‹ª#RSÔäÉ­[/è|þùzÕäÉÖS.hÙxéTe5¬»»•››Õ€ŽææF]•dWóx5%%Õ\n5—[SRR]RRÅç ”I¦¹¹5niccBmX[›X[3lmMõô´»8fPÈ$ÔHAAÅéÓ÷ââîee•ØÚšÎš5dòäAvvX4XYY›‘ñ¼q=ž¶¶f¿~Êõ9úöeöÂÙ€2™bÿþÔo¾¹¤­­±jUø¤IѼ䕪«ë¶m»xà@ª]lìÄÀ@gUG¤î¨-©»ÃáåçWWÃRu°m[в‘$YZ*l2ŒYRRMm(“L:]ßÊŠAµüa2éÊm‹ÁbÑ‘gôTÈ$T//¯ìÔ©ŒøøÅbLž<°óz±ÖÕI22ž§§ç*SG š‹Ë_MV:¶ùdwtåJÖºuq……•}4jÉ’7Û¼~`Sº~ýé+W²ÞzËõêp{{3UGÔmõOžp©“Ãá?y•HdÆÆzÖÔˆ%u“ªObVZ*äñªy¼.·¦¬LXRR]^þ×ÿËÊDÊO †‹Eÿû?Æ¿³MŠfº/d’*Ãçל8qçøñ;ÏÂÂhâÄááþ:uìDCƒìÁƒ‚&“µ-ˆgçåe«’î¯jèéSÞÚµ¤¦fOš°rållLTQw•’‰‰‰{þ¼|Á‚àO? ÅX4®†åpxWUÕjii8;3©9–~~öþþL¦±ª#mžX,åóÔÊ%ÿ÷×vqqUmmu˜ŽŽ–©©5z©Ì6•ÛL&•Òj ™$@W++ž>}/>þ~FÆsCC݉ûOž<0  ¦fÇ‘ÊåŠÌÌâôô<ê3(ÕdÕÒÒ¸_?j®£¿¿=Z6QQ!Ú¼ùÜÑ£é~~öëÖE à¨êˆº=™Lñûï·6o>§¥¥¹lÙ˜3wÔOx¯¥¬†¥–µÌÎæ“$ÉbÑ©®°Ô߆T[ Ûz-ä™EE•uuê0ä™ê ™$@ ŧOß;~üöÝ»ùzzÚãÆù†‡÷ voqW“&«—ÔÖ6˜šاW5Ym©T¾kWòމFFºk×Nxë-|6í@55u;v$îÞ}ÕÝÝjݺˆ!Cúª:¢žC ?yRBX>}Êc³ d´ôó³óñ±ëvåÙR©œª’-+r¹Õee".W¹-,/)455Tf•ÊrYj&Ó+št6d’K*•''?9}úÞÅ‹ÄbéС.ýÇ÷311hÏióó+”sŸ<á …b}}ÛÀ@gj•¤Ž­óæs|¾à³ÏBçÏÒ×ïfŸ¹»‹Üܲ͛ÏÅÇß õ^¿þí^Õ¸Ë(«a9>‡Ã»{7¿¢BD4ZÐ’jäÓÝ_|©T®Ì*¹ÜêÒR!WSZ*àñjJK…ÔS¦˜˜0™tKK#‹aaaÄdÒ™Lº¥¥1‹E777²°0ÂßŒÚ ™$@§¨¯—$'?=wŽ)ŠúDDôë­~mžÔTQ!º{7¿q“U-û^ÞdµÍ²²JbbN§¥eOšðÅoYY!ñît©©œ˜˜Ó99ü9s†EE£ÓõTQGUÃþ=bY”“ÃW(HÀšcI-=âáaÝ“Æî$•a–—‹¸ÜšŠ Ÿ/(-”— y|X$KWú»[ùøØššª:ÒNÔÐ «®®¥&dVWו– x<ÁßCš‚’’–6!þÝu–Á0h²Æ ƒÑ®º€™$@àr«ÏžeSMtôõuÆó õ1ÂýµÛˆÅReÞxûv^~~Fsue)§ùdô‚Áê³(_¯U\\µyó¹'î¹}ùåÛnn²€*´Ÿ_£±TVÃÒézîîÖÔˆ¥›Ëßß¡7¯Y[ÛÀç ÊË…|¾ ¬LXV&äñ”5´ÂŠ ¡LöWž©££eaadeÅ077¢ÚÌR––Æ––ÆL&ճР“xméé¹ 29“iÞ?<ÜÀ€>¯œ¦¨PÙÙ5Y½};/+«D*•›› àˆ&«'3³866îæÍÜ3/[6¯°Z¹~='66îéSÞœ9â¢Æb}õ!5äæ–Rs,ÙìÂÌÌâº: µ %5ÇÒÍͪG #UGª.H’,/•—‹øü*ÏT¦å墲2aUU­ò`ª2á¤fiš›Ñ-,Œ{sÆÝ2I€ÖÊÊ*9wŽ}î;+‹kff8fŒïøñ~AA®-ô«h²>GVV‰HÔÀ`PíU‘:v¶ÒRᆠž:•è¼n]„¯¯ª#‚fP“'ÿ÷¿3 ²¥KÇÌ›7½£Ô\®(*ªâpx'oWÃRu°ÝhAKUyYõ,5i³¸¸ªñ¨¦©©AãŠY‹Î`èS5MLôño¨2I€–44È®_ÏIHxtùò㢢*kk“±c}Ç÷2ÄùeBÊÊ„÷ï°Ù…ééy õººZ~~ÿ4Yuqa¢ËHgkhíØqù§Ÿ’,-ׯ;4Ô[ÕÁ+ÔÕI~ú)ñ‡mmM×®€·LýÕÔÔ)G,Ùì¢gÏJår…‘‘®³3SÙÖ×׋뼖šš:¯éüÌššzj£¬L¨Püõ±­ñDMC¿ÉŒMkkLŽ€Î†L |~Í•+Y ™))œúz©¯¯]h¨×èÑÞ~~v/6Ÿ¨ªª½sçyã¿Ókkköëç€õ9T‚$É'îlÞ|N$/_>nîÜaè{Ñp¹Õ7ž=y2cøpרØOOkUG­¥\Ð’úMøøqImmƒ––†­­©››õËÐßß¡Í+!Ñh¢fi©°¬LP^.¢fl*kh%u¤†ÍÂÂHY+KMδ°0b±––FVV T’@û!“ø‹T*¿yóÙ¥K™—/gæçW0¡¡^¡¡ÞAAn&&ÿêö^_/yø°èöí¿¦¡á¯!MmmMss#kk†……153“ª›µ´4¶²bXX£Ðd’Ðk±Ù… ™ 33‹555FŒp õvsp0'þn²zûv^zz.›]”—W&•Ê-,Œú÷W6Yµg±èª~@Q[Ûðÿ—ðË/)fë׿ä¦êˆ ÃÔ×K~ù%åÛo,-é+WŽï§êˆ Ã4®†åpx™™Å••µD£-©F>ŽŽæªŽ´‘HdUUµ§h6nTTTÕx9Í¿{ÿü«'õ“IÇ&@o€Lz‰D–žž›œü411ëÉ.®?r¤Gh¨WHˆ§©©Aã&«Ô j]G4YUO yäÈÍíÛ/J$²•+ÿ3mZ ¦DöH<^Íöí¹ùÆ.±±^^6ªŽ:…²–ZÖ2;›O’$®ïînEývw·òð°Æè´ Q JK<^Mi© ñvIIµT*§£Ï6Î-w²³3EI3@Ï€Lz¾ìlþÕ«O““ŸÜ¸ñ¬¾^âéi=r¤Ç›ozÙØ0îÜyN}pyú”+ˆõõu||lýüì:ª³ôôܘ˜¸ÌÌâ¹s‡/[6¦É\VèyØì˜˜¸Û·óÞy'`Íš ––hÜÒà â'OJ¨˧OylvaCÿªaÝÝ­¼½mÍÌ0Z-H¥ò²2!—[]^.ârkÊË…Ôÿ©<³¼\¤ÏÔ××±²b0™ÆÊù™L&ÝÚšÁb1llLPÞ Ð “„ž‰Ë­¾r%+%…“––]YYkkkâѯŸƒ¾¾vnn™²ÉªŽŽ–¿¿=š¬v/kÖü‘ê½v턾}™ªŽºNBBæš5TTˆÞäGÆêí½‡L¦xö¬”±äpx÷îå——‹ˆFÕ°nnVÔ²–¨«TCr¹¢¼\ô÷´L'(/–”T——‹¨‰šÊ®³FFº66¦,ÝÚšammÂb1llVV ‹ÁdãÍP+È$¡çhh¥§ç*›¯éîjmm¢©©‘Ÿ_ѤÉj` ó ANÎΖ¨‡ìF„Bñwß]Þ»÷š““Ell¦DöNR©üÀ´-[ÎÓéúÑÑã&Oˆ—½U û÷ˆeQN_¡ ét=wwkww+eS4==mUG ¯ÖÐ ãñj”33ù|AAA5žY\\¥l9Ë`4®˜ut4ÇäLB& ÝI’¥¤p®]ãܾ×Ð sv¶´±1¡Ñ.·&7·L¡ ]]ÿYŸÃËËÖÈ•3Ý\®øí·[Û¶]ËÑÑã§OŒÑã^®²²ö›o.íߟگŸ}lìÛŽªŽTL(ge•Ps,ÙìÂGŠëë%ZZÎÎLww+jé‘þý±¨L·S_/))©æó%%Õ|~ —[ÃåþõeY™PY4kffÈbÑmmM™Lºµµ‰ ÃÊÊÄÖÖÄÆÆÿîtd’Ð-UW×]¿ž“––síÚÓgÏJuuµÍÍ e2EE…H.W0™ÆþþNƒ9yxØÐéXŸCÝÕ×Kôõ_ºçÏbcãž>å-Z4â£Þd00%þòèQqLÌ7oæNš°jUx •[þƒž‡ª†åpxÍ.zð  ´TH‹E§ê`©¿0ºº²440Õ]ÉåŠòraqq5Õò‡Ç«áñj¸ÜjOPRR]_/¡36Ö³±1±µ5µ²bPTé¬)~-´2Iè6D¢†[·rSS9W®d={ƧÑhº R©TnffÐMV»)‡·xñsçþk`Ðô_ôçÏËcbâ2ÃÃû­\9ÞÉÉR%‚šKHÈŒ‰‰+-,Yòᇣ^¬fLN~²cÇ•ß~{Õ콟_£±TVÃé:;3©K??;__;¤=†D"ãrÿª˜-(¨ :ÍæçWðù5¥¥Bê°ŽŽ–µ5ƒÉ¤[Y1þª•¥ŠfQ. ðJÈ$A­ õW¯>pãFNE…ˆF£iþ{ç×ı÷ÿÙ$\Â%\ÂE ˆ\DAžcmµâ¥/­V«=¨í©Zµ­ÕÓ£x©¶Å*­œc}zý驵ô«/¥ê‘ÊQÐZÞЂ "B @d~LÝgM6›!ܾï?|Åegæ;ßýÌwwvfvø”Z­µµµŠŽ2fÌPè:öud²Æ©SwÈdkÖ<KW*[wì8ý¿ÿû[PÇ–-³Ç êA#ÞY<ùé§§íím7nœÎ\<©Vkcb’JJjæÌýÅ áÑ 47·Ý»'#k,ssËóó+=Rñù<!=b [÷WêêšÈ,Y©TQUU_UÕPQñÇúÛ?..ö^^ÎÞÞÎb±³——³—׃™ÞÞΰ  ' ô:[ÏœÉOOÏ»ví~uµ’äóy¢§ž’DEùGDøŠ`7ª~À£Gª™3?+*z¨Ñh­­—.möövÖh´ß}wq×®3ïý÷_˜;7æž&¢P4ïÜyæûï/†‡û|ôÑìÿú¯„Pròo›7ÅóxÔ_ÿúܺuÓzÚL 7¢Ñh¥REaáCzcarrr²£G,áî3É«ªê>lJ夷YQQ_Y©¨®V’ 3)Љ‹ÅB2QÖÇG( É]]a.0°€ž$`®\)±·· #„òó+öî½°kW\‡r¨«k:zôú¹s•ry³V‹)Š í#"|&O7.>²Úÿho×ÌŸÿÕõëejµ!$ðccÃ_yeÌÖ­ieeuï¼3ù­·&éÏw£Ë>úè§sçîÌœ9rÕªÉ/½ôUss+ùEQ‰‰s/׳}‚††Gôˆen®ôÞ=™F£enhá&6Ëþ‡Z-.,|8|¸W׳º ­×Ô(+*ê++ë++ë¥R¹Tª¨¬¬¯¨PÔÕ5‘slm­|}]HÓÛÛÙ××ÅÛ[(;‹ÅBx†ú%ГºDMMcbâÏGŽ\ß¼yæâÅã>ýô—={2B·o2x0×wnZZT7o–¥§ßúí·¢{÷dmmj„@À‹£¢†LŸ>"&f8lOÜ¿y÷ÝŽ½Nv@QÔ¤IÃfÂ.‘@—8qâæÇŸ¬®Vj4z „G}ûí’çŸïAÛ€¾H{»¦¤¤†ô* æåIëë!3mhYZZ;~üö žZ¿~ŒkõE=xP÷àAsAfii­RÙBN°±¥˜w.qò÷wõós‹…ð)r ï=I “¨ÕÚää‹Û·ŸT©ÔZ-ŽŽ(/—ËdZ­!tèЛÏ>Ì<_¥Rß¼YvãFÙùówoÝ’ÖÕ5éÙÙYæ9n\à‹/F†‡ûôH]Ëó?ÿsæÓOÓµÚ'âŸÏ‹…—.m†é¬€YÈË«˜6í¿udFQÈÊJpüøªÈH¿ž2 è -é¾eY™cìè8(8Ø3"—l=2r¤Ÿñ5u'Oþ¾bÅ÷|>em-ˆŸ¶téxÂê`Œe²ÆŠ EE…¢²²^*UH¥r2Œ)—7“s ²&ócé¹²>>.>>B//çîîaææ–Ÿ:•ûÖ[á‹è@'ž$ÐΞ½½qcêÇ Ì%Š¢ ¿råäµkc‹ŠªssËû­è×_‹ª«ÈóY`0ujØÄ‰!°µ×$5õê»ïd >E}þù‚¹s£-oÐÿX´èŸ.’éÓLx<ÊÙÙ.=}­°G ú%JeË;U¤Wy÷îÃß/W©ÔôlØà`ÏaÃ<£¢üY‡“’NíÙ“õxzO(´ÿý˜Žú­­íååô*++ëËËåäGE…‚¬ÆäóyžžN>>B____º‡) Íõ½ŸãÇsV®Ü?hÕ²eV¬ˆ íÍ’-0 €ž$Ð1ÊÊê6m:zîÜmÒyÓÏ€rp°Ñh4--í|>cŒ1öö>óL`LÌð±c%ð©ÕÌÅ‹…qq{t&µÒPåêjŸý¬ºHVÖ öú+ŸÏóós=}úoŽŽƒ,i0p gÃV>¼~½” C‘Ù°dlD„/™ »`Áîóç éG2Â!NLœУõ, ÆX&S–—Ë¥Rù—,È,/—·¶¶£?^Ç;’¾%³‡éë뢿7Ÿ}–±sç/íí>ŸgeÅãgß|s¢‹ ô'=IÀTZ[Û¿úêìçŸÿcÌ\tÄ yà:aBÈÓOKžzJ ?„PiiíóÏÿwSSwäÙ¸qÆêÕS,fÐÿÐjñäÉÿ(,¬æPš@À{úéÀ””°H °jµ¶¤D–Ÿ_™Ÿ_qëVEAAEmmBH$*¾q£¬¡á‘N€¯Ñhg̈HH˜%Ãøù@§­MýðaCYYYIï“Y^.'oö™K1ýý]éM2}}]X׌¬Ys(5õ*ýbW àcŒÿüç1kÖLõòr¶hÝ€> ô$“HM½š˜xB.o64”¤ÏÑ£+ÇŽ ìV«€¾…\Þ»óáÃzý7ÖÖ|µZ£Õ">Ÿà6~|pbâK0­ è4÷ï×lÙ’–›+­®n@ñù<Š¢ô§¹òù¼?ÿyÌŽó{ÂF` S]­Ìϯ((¨¼~½ô—_n:M àñx¼U«&¯\9¹£ƒNÀ@@¥RWUýÑÃ$ÝKòá©TAžÙ¬­^^,ûy÷Ý._.ÑÉíqòOkÖ<ýIÀ(ГŒ •*Þÿè™3ùô2HSx}ô|j ikSÏšõynn9BÈÊJ€&KA„Bûðpñˆ>!!^¡¡Þð ÀŒ(•-•·oWT‘y†mmí…ll¬ÚÛ5ä1ë½÷f¬Zcà@ñ믅¯¼òÿ¸Ï¡(ÊÛ[øñÇ/M ŸL¢±±•LŽ-/—ÓSd¥ÒÿÛ³ÄÅÅA.obMKú“³gG®];dˆ›­úOô d2YAAAZô*4|òdññãwU* 2ýµGã½jUW¿›âîîÖÅLòóókjjº˜ Ð0FŸ}võÊ•J>Ÿ‰$g_ßÁC†8ùù999õç½^BCCE¢.mgê5/Z-®®n~ð áÁƒ†²2åýû õõ­E­\9úé§Å=m`izI =y²øÇ Ôj®[,Eýq Žˆ½þúOOX0˜„þsTK‹ª¼\þàAÝ’%û¸'š <Š¢æÍ‹|æW¡kk7`à £(–¯?uýÁè´·kœœ¼Ç!•*¤Òú’’ºj««›È 1Š¢Èù2ÂÊŠÏçóÈ›þââ†.j©¼¼¼«uxŒ£££¯¯¯¹r:JQ‘lÖ¬èøx÷¡CÝÎc~~¾Yòõš—#žø¯RÙRXXSZZ'‘ ƒ©ƒŠÞÓBSRŠ™/j)в±á«Õ˜Üm­­ù~~.‰Û!®C†¸úù ýü„ð¥(ÀXŸ£ ²6ÌÓÎÎÆèz%Œ‘Z­ùá‡kÇ ÞúÌ™0>ÐÑWKOÒÝÝÝ"Æ}ooÏh½aE™¬±¬¬–Þ·¨¨úþýÚ††Œñ‹/F::Ú–•ÉËÊêäò&ŒmE¢Á.]&“uÉz666 ìÄÝÝýé§áU'õv+îîH"%ÎÓõZXX«Ñü±K–»ûà  aÃ<E‰hèP‘Xì ‹ÆÎÁñU^.×?H>âJ>ëííé7dÈ`ŠªŸ:ub7 ôôeži€…H4˜lÉ<ØÖ¦.+«³³³†ïË€éÌ›íïï:t¨H"q46@,AYYÙÜÖÖJ¥Òh4ZÛÑ£ý£¢üGò‹Œô§·û–Éd=k-Ðkž$`llAA=mô1àƒO€å)/—[YñBC½FˆŒô‹ŒôpƒÑo £@O¯¾úô_ÿúÜÀùrÐM@OŽ=mÐàõ´@£{’ÅÅÅd¾µþÊÊÊ/^Œ1^´h‘ƒCïÝ.‰£.¤ 7nÜ©©©ôñ´´4kkë¼¼<òßæææõë×9ÒÁÁáOúÓöíÛÕj5ê”ß(6ÌUS£PU\\l±âzœ®Û”3»)‹þï¶mÛ(ŠJJJêJžfÉDno:tˆUØ7oÞ4£  ^ËtXfÊÌÉÉiæÌ™÷ïß7±hÓ…DQTPP~rsÞiÓ¦õˆ{•1¬ôKú§EsË›U]Ì8  çϟϱ_(Ó‡]ñ'èÜìè<ÂЭÐ,ë),l@7ö$7lØÐÑT?ýôÓìÙ³+++8PPPІu7¤ ‘‘‘›6mZ½zu}}=B¨¡¡áí·ßNHH1bB¨±±1::úòåËIII9997nLII™:uªF£éœß.]ºTõ$æ­TII‰›››yóì£tEØtÚnõ')‹üÆ:tÈÏÏïðáÃÎ5“®WÛ“³fÍ"J¾téBˆ6lxÛ ,s„eô8VVVž?^«Õ.Z´ÈP†¦è¿¡¡áÕW_õöövqqY¸pa]]9^ZZúûï¿Ó§)Š .tµ†¥WX†Ó¢;'o:dddH¥ÒU«V:“éÃ>íÏþóAHfô6tOìVõ70ƒêêêÌÌLlnŠŠŠHAôf̘ñèÑ#SÎìY8,$UÀ·µµ…‡‡/_¾cüæ›oŽ=Z¥R‘sâããǯV«éTMMMC† Ù½{·~F½***êr¸à°¡ûJ¿uëÖ­[·zO>:tBØúi»fY¿ÿþ;EQ¡»wïv.CÖL,ÖH»µ nm;™™™ÕÕÕ]̤÷¨·ß‡e1H¥R„PCCƒ)e± )666&&æÎ;ÅÅÅÏ?ÿü¼yóÈ™±±±›6m¢OKNNž6mš¸>½ÊVl íVN‹æ–7«ºt^¸pÁÉÉÉ »âÏ^þÕM½ƒnEç¡‹ ë•Ò9hõÝj€¾¢:<&ùóÏ?‹Åb…B:xðà°aÚ››µZí—_~2xðà±cÇfff’¡UŽIS'OžŒŒŒ´³³óòò¢§ÌÕÖÖÚÛÛ4è©§žByzz¢Ç#ÎgÏžõóó»xñ"kBŠ¢öíÛâîîž””´ÿþ€€''§>ø€œÐÞÞ¾nÝ:‘H´nݺööö±cÇîÚµ !$—Ëy<^|||8sD‘¢¨„„„¸¸¸üãÿ@­^½zéÒ¥ä¯MMMvvv7nÜàÈD§ úú1ZÚjµ:!!ÁÏÏÏÝÝýµ×^#/ÿ Áj§!u±:VP/ÍË:øLèWPGÿHOHííígΜٺukpp°D"Ùºukzz:9sÞ¼y?þø#~<'êÈ‘#/¿ü2O碷g¢¢¢ µnnc ]YèÁz&Æx÷îÝ¡¡¡ŽŽŽ“&M:yò$Ñž~Y/¢!Çö›ŠŒ¹"++‹50²*Dÿv`(®¨Í-oSàóù"‘=9û‘õVnô¶Þ¿uÞ;Enôª±ÞÍ%0 s&•³[iâ[‡×^{í/ùËÇ=<<._¾Œ1Þ³gH$:vìXeeå©S§|||Búï¼éJ¥ÒÚÚzÉ’%R©4%%!$“É0ÆûöíÛ¿?f{Í3mÚ´sçÎUUU±&DÅÅÅ)•ʽ{÷"„æÏŸ¯T*÷ìÙC1þûßÿ>wîܲ²²ÜÜܨ¨¨7nݺuƌ㴴4GGǨ¨(Œñµk×lmm›››1Æ .œBZZMMŽcÿóŸÿ¸¸¸tÂo¡›7o6>‰¡‹Er›:ujaaavvv``à–-[L¬/«B3gÎT*•G%g-ÂP¹XxLÒ’ÂÖyû¥¯OlLÕMMM666»wﮪªúöÛoASS~RZ­6 `Ïž=ãÍ›7‡……Ñ%"„^~ùe…BñÍ7ß „êêêΟ?ïêêÚÞÞŽ1NII Ójµ™èTA_?F«@ç°cÇŽ°°°ÜÜܼ¼¼1cÆÄÇÇ3¯‹NA¬vR«c™tŸz±eG< ,w1,cF U*•ÅÅÅsæÌ‰ŽŽ6äý1I!©Õꢢ""TŒqRRÒÈ‘#É™wîÜñôô¼qãƸ¾¾ÞÎÎŽ<“·ÈˆF=ó¯ý‹µusÃqÇщ¬g~óÍ7b±8==½¦¦&###00xL¿‚LSIãpl¿i¡Ø˜+¶lÙÂõS±Þ ÅÕÕ¢¹Û20&IÇ;wîÄÄÄlݺ•Õ]†šrq-¦sKŽIö ‘›rÐ\³d0×1¬û¦¾¢:Ó“T(>>>t‘aaaÉÉÉô ßÿ=÷#K[[ÛíÛ·›šš4Íùóçi§Ï;W.—c¶Ëœ››Ë‘!”““ƒ1V©T:¿É ǯªª"fddŒ5êÚµk*•jÍš5›6m²²²R(;vì˜>}:IËçóig;v,00i ù½~ýzôä¤Aº ­V;kÖ,>Ÿ¿hÑ"¦iÅ0¹té’››['ü†Ø0t±˜µÀ>|800ÐÄú²ê!”••…1Öh4Ä$Ö"X²fHcឤ%…­ãO}}bcª–ËåVVVŸ~ú©B¡Ðjµ?©Àììl@@”výS8¥õ IDATúu„P^^ùBˆ4v:CµZíééyöìYŒñôéÓ“’’¸3aVU?F«@ç|ìØ1’¶  €þMÐñ«†ÔÅêX&ݧ^lÙçT˸ka?H­¬¬&L˜@ìd­ ~ORGHôŸ6lØàïïO<@þºråÊ÷Þ{cœ’’òÜsÏaÆCm'¢QÏjÝÜÆp\YèÁzfxxøh?üðÃÄcúÔi_:¥¿¶Pl̆£~*ÖÛ¡äªEs·5¦J§bâèèHÎéhO²—èÜ’=É>!rSšK`– æ:†u_Ø4ÃìV„³³óòåËóóóßzë-r¤¤¤dÔ¨Qô Ü9X[[ÆÆÆŽ=:99™ljjjoo …¬I†n(!aðàÁ!2èÌüM(--õòò"ãzî¹çîß¿iooõêÕ .¼øâ‹‘‘‘.\ÈÌÌœ1cB¨ººZ£ÑH$’<00¬™¡-!\½z5&&æ“O>1T…dee;wîÈ‘#iii´===õ?AyóæMfæ&ú`(ê_,™­Jª#•JM¬¯!¼½½B<ÞrÒ)‚ã`/¡G„MÐ×'9Ρj¡P˜™™™íãã3a„_ý•Çãé”uèÐ!µZíææFQÔèÑ£BÌ ®äªÑòùü9sæ;v¬¶¶ößÿþ÷Â… MÉ„À¡î†Ixðà-Œ—^z‰ÃW†ìDlê2äX& ^ÂË:ªTª¬¬,2ŒÆQA&¬B:xð`hhhmmíÕ«W###éãóæÍKMMÅëO·ëD40êŽVÃa GÅu¢ë™÷îÝ §“„††rWÐн¦¿¶Pd̆£~*ÖÛkòÖ¢g[3š››7lØ0iÒ$üdxƒÏdê¼—‹Ü”«Æš¼Ó³|0§±¤œ:Ó“,//ÿòË/§L™²víZrD,3?^”ŸŸÏCKKËüùó×­[—““óõ×_“ƒééé±±±†’/³&42ÖGBƒB¡ÈÎÎæñxÓ§OOKK+,,ŒŠŠš4iRFFÆ… H€óððàóù%%%$ù½{÷Äb1Ó‰'vïÞ}èСÌÌLý*TVV®^½zÇŽÏ>ûlBBŠ+èo÷-\¸pÛ¶mämB(..îàÁƒIIIqqqõ7ú‹@^E „ ½½½M¬¯!XW^éÁq°—Ð#Â&èëÓ¨µ---Z­655U.—/]ºô…^Ëå̲4ÍáÇwîÜIOx^³fÍáÇé`ªbBóæÍ;~üø?þ8nÜ82Òh&ý˜‚··wii)ù}óæÍ?þ˜û|}; úê2ű ^„åyF}!íܹ3!!áĉ{÷îuwwgþiܸq/^ÌÈÈÐùÀ`'¢)ž1Ôj8Œá¨¸Nô`=Óßߟ©ºÛ·osWÐн¦¿¶Pd̆£~*ÖÛkòØ¢9ÚšQììì–-[V^^.“ÉȲpº¢¢¢ÞЯ“~ ó^+rÓ¯š~ò®ÌòÁœÆ¢rbŽb™2~­Ñh¦L™²mÛ6¹\îééùóÏ?cŒ?ùä‘HôÓO?UUU>}Úè‚…BAQÔéÓ§ÉžŠ¡œœœE‹UTTR M`MˆŸœ¢Àú{õêÕ/¿ü2ù\ï˜1cÞyçŒqjjªƒƒŒÎÈÈppp`.$[°`ÁäÉ“KJJòòòÂÂÂ>üðCCV%$$ 6¬¥¥…Y­V;sæÌ &9‡*•*"""..Žüµ¡¡!88xâĉéééwïÞÝ´iBH$µµµuÔo¤šú»€ºX$·‰']¹r%((èÃ?4±¾ôòËo¾ù¦¾¾ÞÃY‹0T.–œÝjaaëø“UŸÜªnii±µµ=räHMMÍ?ÿùO[[[fffòù|æÜ­k×®q7µZ-‰<<<¾ûî;£™èTA_?F«@{#!!!"""/////ï™gžY¶lóÒèLbµÓºXkõb ΃°¬oU'Â2ÓH&¬ÔÑ¿~Éš™ƒÞfÀ<óí·ß ™8q¢)n1êLnÏ`¶VcÔÓ¯,ë™_|ñ…Ï/¿üR[[{öìÙàà`Š¢X+¨cêi¡Ø˜+ FýT¬·Öä³EjkúÏN:nÜ8'ã'%«S„¡r9°dOÒÂÂÖñ'«>ªúðáÉÄÚÚzøðáiii*•ŠYÖŠ+¦Nʬ£V«•H$6làÈüÍ7ß4hR©4š‰Nôõc´ ´7Z[[ããã½½½œœâââ ³Dýž¤¾†ÔÕ ÇšK½Ø‚Ï©–õ­êDXf©ƒ~†Dýo3¢ÇÓ«È™YYY¡¯¾úÊ·u&·g:­ÆcL¿²úgj4š]»vI$''§ØØØ´´4wwwÖ ê˜:@Z(6æ C‘U!:·Öä:÷ˆÓ¢ ÉÛP ¥áñxÙÙÙ$abb¢³³³D"!S¹}ØKtn±ždï9f»jÌè­s+ÔIÞEõH0gýmư©¯( 3šL&+((ˆ‰‰Ño]¢¸¸8((³µR€•J•““C>OÜ}Xàê°щrĘ́®ïDo®|‚°7oÞ\ZZzàÀž6Ä:všñÒ˜K½¡¬¬¬ÐÐPòùNêÌ……[÷É“'}}}GŽIþ{ôèÑÄÄDÖÖwˆþÚB€I¯zŽ2Wï0 æf ›úŠêÌ:I ›°¶¶îîn$¢µµµ¤¤dß¾}Ë–-ëi[¸è+v@ï¡GZMnnî¢E‹rrr=z”ýÁ¼ñÆ+ ÿÑ  '9àptt\±b…å‹°@¹@W¸|ùrttô’%Kzù{GV;ͨ.P/Ðÿè‘Ö½~ýúY³fÍž=ÛÕÕuéÒ¥K–,1K#‚ @ç+ æÝ*§n™Ý f¡·Ín€sç 7-è÷ÀìVÀ¼ÀìV «@OèГ:ô$€Ž=I c@OèýCYYY7Øqww7K>555 l ê€Þ ´P 7c®ç(9@ÐQÔûI¶µµ)•J‹›±±±qttìb&J¥²­­Í,ö@‡ptt´±±éJ ^è> …ýž®?GAï`¢£¨'z’`X' t èIz’@Ç€ž$Ð1þ?óËNPÜ.ÀLIEND®B`‚XQilla-2.3.0/docs/simple-api/classATGMonthDayOrDerived__inherit__graph.md50000644000151400015140000000004011653571063023335 00000000000000c12e985b7ff8027c074dc7b47e0458b0XQilla-2.3.0/docs/simple-api/classXQillaAllocator.html0000644000151400015140000006516311653571063017604 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

XQillaAllocator< _Tp > Class Template Reference

#include <XPath2MemoryManager.hpp>

List of all members.

Classes

struct  rebind

Public Types

typedef size_t size_type
typedef ptrdiff_t difference_type
typedef _Tp * pointer
typedef const _Tp * const_pointer
typedef _Tp & reference
typedef const _Tp & const_reference
typedef _Tp value_type

Public Member Functions

 XQillaAllocator ()
 XQillaAllocator (xercesc::MemoryManager *memMgr)
 XQillaAllocator (const XQillaAllocator< _Tp > &o)
pointer allocate (size_t _n, const void *=0)
void deallocate (void *_p, size_t _n)
void construct (pointer _p, const_reference _v)
void destroy (pointer _p)
size_type max_size () const
size_type max_size (size_type) const
bool operator== (const XQillaAllocator< _Tp > &o) const
bool operator!= (const XQillaAllocator< _Tp > &o) const
bool operator!= (XQillaAllocator< _Tp > &o)

Public Attributes

char _singleton [sizeof(_Tp)]
xercesc::MemoryManager_memMgr

template<class _Tp>
class XQillaAllocator< _Tp >


Member Typedef Documentation

template<class _Tp>
typedef const _Tp* XQillaAllocator< _Tp >::const_pointer
template<class _Tp>
typedef const _Tp& XQillaAllocator< _Tp >::const_reference
template<class _Tp>
typedef ptrdiff_t XQillaAllocator< _Tp >::difference_type
template<class _Tp>
typedef _Tp* XQillaAllocator< _Tp >::pointer
template<class _Tp>
typedef _Tp& XQillaAllocator< _Tp >::reference
template<class _Tp>
typedef size_t XQillaAllocator< _Tp >::size_type
template<class _Tp>
typedef _Tp XQillaAllocator< _Tp >::value_type

Constructor & Destructor Documentation

template<class _Tp>
XQillaAllocator< _Tp >::XQillaAllocator ( ) [inline]
template<class _Tp>
XQillaAllocator< _Tp >::XQillaAllocator ( xercesc::MemoryManager memMgr) [inline]
template<class _Tp>
XQillaAllocator< _Tp >::XQillaAllocator ( const XQillaAllocator< _Tp > &  o) [inline]

Member Function Documentation

template<class _Tp>
pointer XQillaAllocator< _Tp >::allocate ( size_t  _n,
const void *  = 0 
) [inline]
template<class _Tp>
void XQillaAllocator< _Tp >::construct ( pointer  _p,
const_reference  _v 
) [inline]
template<class _Tp>
void XQillaAllocator< _Tp >::deallocate ( void *  _p,
size_t  _n 
) [inline]
template<class _Tp>
void XQillaAllocator< _Tp >::destroy ( pointer  _p) [inline]
template<class _Tp>
size_type XQillaAllocator< _Tp >::max_size ( ) const [inline]
template<class _Tp>
size_type XQillaAllocator< _Tp >::max_size ( size_type  ) const [inline]
template<class _Tp>
bool XQillaAllocator< _Tp >::operator!= ( const XQillaAllocator< _Tp > &  o) const [inline]
template<class _Tp>
bool XQillaAllocator< _Tp >::operator!= ( XQillaAllocator< _Tp > &  o) [inline]
template<class _Tp>
bool XQillaAllocator< _Tp >::operator== ( const XQillaAllocator< _Tp > &  o) const [inline]

Member Data Documentation

template<class _Tp>
char XQillaAllocator< _Tp >::_singleton[sizeof(_Tp)]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classEventFilter__inherit__graph.md50000644000151400015140000000004011653571063021701 00000000000000d2d47884c141dea5331e9e15e039b2c8XQilla-2.3.0/docs/simple-api/inherit_graph_41.png0000644000151400015140000000520111653571064016456 00000000000000‰PNG  IHDRã(ƒÃÚlbKGDÿÿÿ ½§“ 6IDATxœíœiLÏƧ¶Ò–¢€E¨@   b5ŠJ‚Á¨ñ1£¡ž$j0F£1ñ‘x€¨€£1¼ñ@[ψV9Zl·JÛù½˜d²nKÁü«5óyµÝïÌ3ßy˜™6° „€@øëð§ý‚8•à§âT‚cÀa|ÞµkWMMÍ‘B `¶oß.‘Hè%L§*Š7oÞÄÄÄüFUÂ\¸paÅŠŒB¦S111çÏŸÿ-’°X,ëB²O%8ĩǀ8•à§âT‚cðÏ:•EÃßß?55µµµ•þ€^¯ß¸qcDDÄ AƒÆŸ››k2™plPPã·; ,«¡¡¡®®ŽÃá\¸pß’ÉdNNN …‚Ñ®««kbbâû÷ïû¯¹¡¡Áº099™.¦¡¡¿S%•J‡Îç󃂂vìØÑÕÕe>ŸûìÙ³~*±]ÀïþHrr2Ê‹£¸wïžJ¥jnn¾yófRR’¯¯¯F£AwµZmHHˆD"¹víÚÛ·oKKKG=eʓɄb9N]]®M­V;;;êëë!„YYY"‘ÕÖÑÑáíí½{÷nF»_¾|©««KHH˜8qbo"…B!]3ªŸÑ@qq1.©¯¯Ç·lÙ²©S§>yò¤¥¥¥ºº:""bíÚµ %*•J©T¦¥¥9Òb±ü ¥AðÿPRRÂ,d|þ—œJu‹Å2yòäììlôQ*•ÆÅÅ!_"(Šò÷÷?qâŠ5kÖ¶mÛðÝ„„\gwwwXXXFF„pÕªUQQQF£Ñf»ÍÍÍ€ïß¿ÛÉòÞœºråÊ!C†¨T*ë(77·à‡«««ýüülÖöíÛ7À·oßzÏYq§Êd2oooµZ !,** ¢( Bh4¥R©§§çСC¥R©ÑhD]ºqã†X,¾uëVvv¶X,öððXºt)žÞ¬£ „—/_3f —Ë>|ø©S§ „===6ÃéY£_[zQQQTTº‰D•••Œ~åååI$[PPˆg ÄÄÄ‚‚z?æp8¹¹¹\.W¡PгLoW¥RÚÛÛ!„‘‘‘|>_$íÙ³B( ^^^86/// ÀÍÍ-77¾yófâĉ³gÏFzèÝôóóKMMmkk³&†µZíääÔÕÕõSi‡j4š´´4¡Pèãã“™™i0°€¤¤¤ 6 ÇºººÜÜÜ®\¹Ò§nß¾m­–¡ü—Í©©©©iii_¿~õòòzøð!*Ü»wï¼yóšššärùرc·lÙ‚ô%$$ܼy3'''44T.—+Š &H¥ÒÞ¢(Šâr¹GU©T‡¢¨}ûöÙ ïèè@!ãÚÚ©=rssC©´¶¶2:u÷î]dd‘H„6ÎÎÎmmmŒ:·lÙÀë>n÷Ù³g:N«Õ644Ì;wܸqB­Vëää´|ùòæææ3gÎZZZ¬çÔÄÄD­V[ZZ @þC*•J>ŸòäIø£S¯_¿îããÃårããã÷íÛ÷áÃk%:îóçÏ«W¯NOOÇwû™váâÅ‹§M›ÖØØ(—ËÃÂÂrrr°€sçÎùùù¡¿4õôôôéT­~¥S5¯¯oxxxNN. Á+Teeedd$Ò'—Ë!„ÁÁÁeeeèî«W¯ðµu”Z­8pàþýû5ÅbÑétf³¹·p;½ýY§Þ¿ßÃÃÇ®Y³fëÖ­Â3gÎÄÇÇ3ê´X,IIIl6{É’%Œv1”H$xÃðúõkŠ¢Ìfsuu5ªÊÚ©UUUB³ÙŒÛ‡ùÅûÔ;w²Ùlú¾‡ÇãÑSãêêŠô¡•…ÇãÑWI;QÂ;wîÌŸ?_ ÄÅÅ]½zÕN¸Þþì꟟Ÿ?sæL[UU…6sæÌ9vì£ÎÓ§O»ººVWWóx¼K—.Ùi#“É&Mš™žžÞ›S•J%£|a6›%ÉŒ3”J%Š¢(ª¸¸ï¶-KVV–µ½^Ÿ™™ÛêgÚ?}ú0 (J.—óx<ºìE‹mÚ´‰¢(@€ÅÛwBŸüJ§655yzzΜ9“>£øúúâÔh4š×¯_Ó»4bÄˆŠŠ t]WW‡Më¨ÎÎΚšawwwaa!›Ínooï-ÜNooTqqqø*33ÓæÕÁƒq¬Édòòòª©©è×ùùógww÷ãÇC÷ìÙãåå…wн9µ³³“ËåÊd2‹Åb0zs*޵v*„ðÝ»w@*•¢(NÇb±ègwîÜ¡ïzéJ Å AƒðλŸiGsêË—/Ñ“åååtÙ#FŒ(**š}×®]jµZ$]¾|•¯[·nþüù>|xþüù„ Ö®]K×·cÇŽððp…B¡P(bccW¬XÑ[”Á`àñx/^lmm=~ü8Ç3 ½…ÛÙ§âSªªª*tJÕÑÑî~ÿþ=88R)•ʲ²²ÐÐÐØØXôÂÇxõêÕ£Fš:u*®³¾¾Þb±$&&J$³Ù !4ááá)))ôg¬“¦ÑhX,Öµk×ôzý¦M›OŸ>EùÑétÖ±6 !ÌÏÏGg™è#:{ºråJccãÝ»w£££×¯_oSÉÇZ­ö§Ò!\´hÑ´iÓÞ½{§P(BCC³³³éÃÚÝÝíîîTXXˆÛ²ï„>ùeN=|øpDDšÉËˡ †Î´Zmzzº»»»P(ÌÈÈÐëõt}]]]R©ÔÛÛÛÕÕ5%%…~´Éˆ‚–””899…„„Èd2;ávÞý1b±xñâÅŒŠ¢233ÜCCCwïÞÝÙÙ‰cÑWUUòòòèå………\.÷íÛ·¸ªÚÚÚ\¼xÚ]ý80dȱX|äÈ‘””OOÏžžžI“&¹¸¸0Ú…½;Õb±ÄÇÇãnšL¦œœœððp>Ÿïïï¿yóf¼R3ÍfóàÁƒß¿ÿSi‡ªÕê¥K— …ÂaÆmذþîÈÈÈpqq¡¿'ÙwBŸØt* þ8¨ ,ß§þ ,«¤¤YóÏ~›JøÇ N%8ĩǀ8•à§âT‚c@œJp ˆS Žq*Á1°ñ?TjjjÐ÷uÂßÓ©ÑÑÑD€INN‹ÅŒBæ÷þÂß Ù§âT‚c@œJp ˆS ŽÁÂ?âñš“[ IEND®B`‚XQilla-2.3.0/docs/simple-api/classResultImpl__inherit__graph.png0000644000151400015140000000466711653571064021675 00000000000000‰PNG  IHDRhu-63³bKGDÿÿÿ ½§“ lIDATxœí[LÛ‡×8¥œ´°ÁRjaDM½<ð„^Òp‘`Œ —†›%4* x yRÁ¡’m#I…MЭpÜhÀ4&¶" ·Rè”NÛó0¦§ÐÂb6<ë{š®Yüç×/53ef3›Í±xV9;ÀJ‰ƒ‰ƒ‰ƒ„eý¢½½ýòåËΊÂpòòòvïÞmy9KÜàà`KKK||ü²§b:=ÊÈȰnaÙvª¯¯_®<+ Ãæ´ 1$$$$q†õõõÑ…¢¯¯Ïö¶ óG2›Í)))nnnK‹6 F|â”J%ŸÏ§–===ÏŸ?Ooýoß¾ÕÔÔtwwÓX“âL&ÓÈȵÌçó¯_¿No}N ±&mâÆÇÇ>Ìçó…BaNNA$Iæççx{{„„„äää˜ÍfFÃf³9¢R©ª««CCC½½½–íZ/ÛÖ¤¶766&•J###s"Ùv°®é¨ì‚o¹®®nV -âfffpÿøñ#õR&“mÚ´I&“Q-ÝÝÝÔ²^¯ïééÑjµF£±½½*eWœÝšÔÖÛÚÚ¨–$sÄÍé`]ßQÙÅŠ³s­ Áàà Ñh\¿~=õ2((H¥R6lØ@µˆD"‘H`³ÙŸ?ÎÈÈÐjµÁÁÁ5àâââèoçé0OÙEAÏ·fÍÇ•J%õ²¿¿íÚµàË—/TËû÷ï¯\¹Ðét ¹¹¹eee‹­ù3ôªbÏÓaž²‹ò7<³Äùûû3çÆ¥Ò ð ŒÎñññþþþÖ-˜™‘·²öô| ½hm='ù9;Ž:ÆýñÇ{k‹…?yòÞÙYìÃDqf³ùÁƒ7$i"Iãƒÿfæ>ÁDqïÞ}ÒP˃ƒšŽŽ/Nc&ŠkjêtqÁ©eüñãÿ87]'Ž$M2Y‡Áðó`j0e²w$irn*['>OLÌúñÄñòe¯³ò8‚qâ?î`±f¥b±0™¬ÃYyÁ,qaËÿ&ÉY'½$i’Ëÿ&ƒ³RÙ…YâZZº ‚´m'Ck+÷-f‰kl|‡ãvnŽÃq¬±‘Y{+ƒÄMNþÙc÷J’¦ÖÖn­V¿ü©Á qÍÍ,g!¶ Æææ®åÌ3? ºÈ›Òhþw"ré’ påÊKËo¿ýkõj®’Ùƒž»•haõj®µ.— øýw/ç%šíª+ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$‡wd*•Ê–––eNcÍ£Gj@|<ÌT[th£Ù„¨y–œŽ{งs3Ì™OÉšnemkk[žˆ D,ϳq q q q q q,UœØŠ={ödggÓ5ñ¾Z­¶{B ‹Õj5íe Ÿ¸ÒÒÒÆÆÆÆÆÆÊÊJ¡PXXXHïóaû÷ï§± -Ð ÎÓÓ“Çãñx<¡PxìØ1•J511±ô²L&“F£¡± -Ð<Æá8Îb±¸ÜŸÏ²‘$Y^^S^^N’$àÕ«WiiiIII …ÌÞ}lw¥ãÇ8l‹ÅÍÍ͇ŠŽŽ®­­U(‰‰‰{÷î­ªª²”zùòejjjLLÌ­[· ÚžO§AA:N§ÓŒŒTVV†‡‡[&ohh¨¨¨(..îìì¼wïAÑÑÑ>LMM-**ZðW¨™½e2™ÝµwîÜ9zô¨T*}ýúueeeVVÖýû÷-Ò¦¦¦k×®]½zõÍ›7µµµK¿4ˆKOOŠŠŠŠŠŠ‹‹S(‰Ä²ª¹¹ùÔ©S>>>™™™oß¾5 f³Y§Ó±ÙìÈÈÈ'Ož¸ºº.e뉄ÃáDDD’’’8Ndd$`rr’ê••% E"Qzzú³gÏ–²-khx^µººššg]¯×WUUݾ}›Zõýû÷ØØXKO.—ëîî^RRÒÐÐpïÞ½7&%%…„„XW[ì…ÃáX,Öœe B¡Z^ì»súºººFFFÊår³ÙLý ˆ‡‡GII ¥U«ÕŽŽŽêõz“ÉTPP@’dkkëÅ‹›šš¨?78ŽÿøAóL{*•ŠúNíëׯ^^´=6LóÁËåNOOS¿عs§T*T*•çÎkjjÂ0,77÷ùóçSSSƒÅb¹ººR“ê+ŠééiGc™¥æb)--U«ÕŸ>}º{÷.“1Òüh¹··7‡ÃÑh4Ô^“––VZZš‘‘aØ®]»233Ùlö… ***†††A~~>›Íf³ÙiiieeeÕÕÕ'Nœxñâ…uM__ßmÛ¶ÅÆÆ>}ú"RXXØÙ³g ‚ MNN¦kouøÕy}}½D"YÑ_dªÕê””è· ‹ëêêì®EתüÊâ¸\î¾}ûþ¡â¿²8OOÏ3gÎüCÅeqÿ(H$H$H$H$ \9ÈåòåɱâX@\qqñòäXq0hþ¸•ã Aâ Aâ Aâ ù/YŠYe*'IEND®B`‚XQilla-2.3.0/docs/simple-api/classVarHashEntry__inherit__graph.map0000644000151400015140000000035711653571064022134 00000000000000 XQilla-2.3.0/docs/simple-api/Timezone_8hpp_source.html0000644000151400015140000002016011653571063017620 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

Timezone.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _TZONE_HPP
00021 #define _TZONE_HPP
00022 
00023 #include <xqilla/framework/XQillaExport.hpp>
00024 #include <xqilla/framework/ReferenceCounted.hpp>
00025 #include <xqilla/items/ATDurationOrDerived.hpp>
00026 #include <xqilla/mapm/m_apm.h>
00027 
00028 #include <xercesc/util/XercesDefs.hpp>
00029 
00030 class DynamicContext;
00031 
00032 class XQILLA_API Timezone : public ReferenceCounted
00033 {
00034 public :
00035   typedef RefCountPointer<const Timezone> Ptr;
00036 
00040   Timezone(const MAPM &seconds);
00041 
00045   Timezone(const ATDurationOrDerived::Ptr &duration, const DynamicContext* context);
00046 
00050   bool equals(const Timezone::Ptr &other) const;
00051 
00052   ATDurationOrDerived::Ptr asDayTimeDuration(const DynamicContext* context) const;
00053   
00058   const XMLCh* asString(const DynamicContext* context) const;
00059 
00063   const MAPM &asSeconds() const { return seconds_; }
00064 
00065   static MAPM convert(bool positive, int hour, int minute);
00066 
00067   static void validate(const MAPM &tz);
00068 
00069 private:
00070   MAPM seconds_;
00071 };
00072 
00073 #endif // _TZONE_HPP
00074 
00075 
XQilla-2.3.0/docs/simple-api/InteractiveDebugger_8hpp.html0000644000151400015140000001053311653571064020374 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

InteractiveDebugger.hpp File Reference

#include <string>
#include <vector>
#include <map>
#include <xqilla/debug/DebugListener.hpp>
#include <xqilla/ast/LocationInfo.hpp>
#include <xqilla/debug/InputParser.hpp>
Include dependency graph for InteractiveDebugger.hpp:

Go to the source code of this file.

Classes

class  BaseInteractiveDebugger
struct  BaseInteractiveDebugger::Run
struct  BaseInteractiveDebugger::Continue
struct  BaseInteractiveDebugger::Quit
struct  BaseInteractiveDebugger::BreakPoint
class  DebugCommand
class  InteractiveDebugger
XQilla-2.3.0/docs/simple-api/NSFixupFilter_8hpp__incl.png0000644000151400015140000000744611653571064020151 00000000000000‰PNG  IHDRÕuV>3:bKGDÿÿÿ ½§“ÛIDATxœí{PWûÇO D®…  \Ä– ú’‚èï•V-V`Ô‘¹X¤J[A‚—¦jڱǩ­cåRh‹jAT"Ò*HS¼0`•¶j¦å"1iIh€ìïmwB²ÂÅCêóùk÷ÙgŸóÍÙoÎ9ë.‘ALà<Ó€ÿœ€ÿœ€ÿœ0ñ6_[[{äȼžeÖ¬YsèÐ!Œ0û¯··÷úõë~~~xe<›477³Ùl¼0û$55·„g‘´´4Ü`ý`üàüàüàüàdNÜÿNÈÚµk_{íµÔÔTƒAFººº¶oß. B2™¬°°ðÆ"‘ÈÖÖvݺuÛ¶mc±X䉚Պ‹‹©s§/LK}U‘Ói¢¸¸ØÑÑq:Eæ,úá?„Pmm­P(|ýõ×5a}Š={ö „BCCÉÝÑÑѼ¼¼¼¼¼ÑÑQò”ÆÆÆˆˆˆŸþY­àÝ»w·mÛtæÌ™ñÄè¤pî 7þ300HNN¾wïÞµk×ÔñùüÆÆÆððp>Ÿ_RRÒÛÛ«zthhH¦‚B¡ ½òÊ+>>>999b±8''çý÷ß766Ö¢¡¼¼üèÑ£}ôQCCÃÙ³g'¬O‘››‹ºxñ"¹[VVÖÝÝ}êÔ©ŒŒŒÆÆÆ/¿ü’Œ—––&''»ººªÞÐПŸŸ””TPP@}ÍhÅÐç2zã?„““ÇËÊÊêëëS/_¾¼¤¤äÓO?õôô¼víÚ›o¾YSSCݹsçFîܹ£zn|||ccゃƒÝÝݵ ؽ{·“““‡‡ÇÎ;«««'SŸ–o¾ù&11ÑÎÎÎÅÅ%..Ž:…Çãy{{k~"""LMMW­Z…"GëñÄÐç2zsÿArãÆôôôÄÄD2244TWWççççáááááUXX˜——·nÝ:2A󿱫«‹Ú677ß´iÓéÓ§3224›S›ëœœÈ ggçÇO¦>-===aaaÔ®™™U–6þüù!êÞ_‹Úà\FŸÆ?„ƒÁ8xð`SSÓ•+WÈAGŽikk£V¬XA; ÒÒ××wéÒ%rФ +ô÷÷«;;;ÉŽŽÒSÃÒÒ²¸¸X( …ÂŠŠ ªi&“~8Psž13¥ð©¡gþCÙÛÛïÞ½»´´”Ü511 LKK«¯¯ïîînnnþì³Ï¨ÁO;A;v,44ôСC÷îÝ«««C™››#„ªªªþúë/jÅF’ÝÕÕõ믿èª\&“‘«W¯ÎÏÏïíímkkKJJ*//Wˬ¬¬Ô^VÌ4>}ôlþ% ºyóæÝ»wÉݤ¤¤¢¢¢üüü®®.6›½víÚwÞyg2uÊËËÿøãÈÈH&“ùî»ïfffzzzZZZÆÄÄäææïÝ»÷æÍ›T¾¿¿ÿþýû‡††Èâž¼à… zzz†……}ýõס˜˜˜ìììØØXƒ±fÍš¸¸8µöøñã^^^Ô¼L‹šr¶²B\0ðþýeiiiDDÄŒ<Š˜UfäIÆLA+f ÓÒÒlmm©™ ú7ÿÿ&À“ÂÌÌ,((·Š¿¡3§Nðߤ°²²Ú·onC+fN)œ<à?'à?'à?'à?'à?'à?'sâùÛpKxikkó÷÷Ç«³ÿ-Z´e˼¦ÃÝ» \\þ´¶Â-d*¸¸¸¬\¹¯ÌÏõ‡wóòÞþßÿ¼p ÑW`ýàüàüàüàüàüàüàüàüàüàüàüàüàüàüàüàüàüàüàüàüàüàüàüàüàüàüàüàüàüàüàüàüà~ÿT7öî-zð ›ÚíêúÃÚÚÌÄĈÜe2 OŸŽ±··Â¤Nÿ˜¿?®Gp8 ÊËU¿³‰Lõ(˜O'`þÕÐP„´‡˜Lí[ÿï)ëÑwÀº±xñ|.בAç@…B¹yó²§®H¿ÿéLxø CCõ~30`øø,vp€ÉW7À:¼Ló¦Á`„‡¯À¢G¯ÿéŒùÿËÑ7mz‹½ü7¶lY®:¬^íjmm†Q’žþ› 7rUÇ?¥’ [ŽQþþ› ÆëÖ-a2ÿî=ËpÃ.^Iz øoŠ„†ú(•BˆÉ4 ø©) ·"½ü7E–!„ EX˜n9ú øoŠÌ›Ç\¿Þ“Á@&&,??wÜrô•1Ïe2™X,Æ%EïX»ö…‹ï¼ôäIn-zƒ‰‰ ›Í¦vÇøO"‘´´´Ÿ¿`Á;;;>Ÿ/—Ë7oÞ¼oß>2sxx˜ÍfWVVÒf"„ Æ™3g<<<¬­­;†Z¹r%BˆòSEE—Ë566vqq)**Ò03+C;´½¤YS¡P¤§§»¹¹YXX¼úê« ju4µ‘W§¦¦ÆÙÙùÖ­[jùUUU‡Íf=zý3¡ ‚—^zÉÎÎ.!!axx˜68™5B…ÞÞ^¡PHLÄ[o½õöÛo÷ôô,X° ¡¡ ˆS§NÙÙÙ]¼xñÑ£G•••NNN¡‡’õ57X,Vtttgggqq1B¨¯¯ ˆ/¾ø¢¨¨ˆlå“O> koo¿ÿþ²eË’““¿úê+ggg¥RI„@ pppËå´™äËñáááb±8??!ôäɪu‚ ¤Ré¼yóòòòº»»?ÿüs&“)•JÕ „~üñGÉX‚˜A´­]§¥—4kfffªö¿ƒƒƒjÿÓj#nذáÛo¿%?»ª¤M›6 \¸p!ÔßßO&¶´´Ô××s8œ?ü6¨Ý9MMMMMMcÚš‚ÿÄb±““—Ë¥Ú[ºtiaa!•púôiíþ~ðàT*U(µµµT‡……‰D"²ˆ»»{ww7¹]]]íåå588hffvç΂ ¶nÝš’’2^&Ù‰äg!ë«^‘Hdddtüøq±X¬T*%‰B¡P0Þ×ueŒ× Ùãõ’fM777-ýO«|ÈápÔÎA´­P‹Ú^¢­ÙÑÑ¡½ÿÇÓæîNÿæ"YßÀ`ÌòÌÕÕ•:«³³SKpòLåþ·££#;;ÛßßÿþýdÄÑÑñ§Ÿ~¢4_sPC&“½ñÆ|>¿±±177— ^½zuýúõTŽ ùu'B,×××#„"##ËÊÊ._¾ìããC}rÚL¤Ñ}j”JåùóçE"QLLLPPH$R …™’¡Ú^¢­ùüóÏkïÿñ´÷­ ]¸“B¨¥¥…4èxÁÉ£s×(•ÊèèèøøøsçÎ]¿~½¢¢!ÍçóAOOÏÕ«W“““µa±X2™,55!$‘HApp0•š’’òûï¿ß¿ýúõ999¡ÀÀ@±Xœšš­=s<¤R)BˆÁ`^¸pa```ddÄÈÈÈÔÔTMBèñãÇ=c!ã3%c ½D›¹k×.ÕþÿàƒÔ&ÔVPPðçŸjד˜˜ØÚÚúý÷ß¿÷Þ{Û·o×ÔÕÉx2뿬¬¬—_~ydd„ ˆK—.ÙÛÛ‹D¢‘‘‘Ç¿ðÂ æææ¾¾¾gÏžEZ×AdffZ[[/Z´(77722’ÍfoܸQµ¡;v°Ùìùóçóx¼ÁÁA2ÎãñÌÍÍU—Ì´™èŸÕµ-—ËW­ZennNKJJ^|ñE‹åîî.FFFÔhï®™’¡š Që%;;;Úš£££éééÇÌÌÌ××—ÞT{[S›æ2T­¦ê6™\PP°xñb›øøx™LF¤7Í?h®ÿÆüþ___ß/¿ü2ý÷O[[[]]]Ç»„€ÞA{A§p•É…ÁÒ¥K©<ÿpþ&æ¹çž‹‹‹›LPWfeþZ`þæà?'à?'à?'à?'4ï XQilla Simple API Documentation SourceForge.net Logo

CompileDelayedModule Namespace Reference

Functions

void compile (const XMLCh *queryFile)

Function Documentation

void CompileDelayedModule::compile ( const XMLCh *  queryFile)
XQilla-2.3.0/docs/simple-api/ContentSequenceFilter_8hpp__incl.md50000644000151400015140000000004011653571063021577 000000000000002ca26c38c03aff6505ae5884e4c368e1XQilla-2.3.0/docs/simple-api/StackFrame_8hpp__incl.md50000644000151400015140000000004011653571063017346 00000000000000db9facddb7074c31e6483480ed65c331XQilla-2.3.0/docs/simple-api/functions_func_0x6f.html0000644000151400015140000002157511653571063017410 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
 

- o -

XQilla-2.3.0/docs/simple-api/ATBooleanOrDerived_8hpp__incl.map0000644000151400015140000000003511653571064021033 00000000000000 XQilla-2.3.0/docs/simple-api/classxercesc_1_1LocalFileFormatTarget-members.html0000644000151400015140000001411411653571064024357 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

xercesc::LocalFileFormatTarget Member List

This is the complete list of members for xercesc::LocalFileFormatTarget, including all inherited members.
flush()xercesc::LocalFileFormatTarget [virtual]
LocalFileFormatTarget(const XMLCh *const , MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::LocalFileFormatTarget
LocalFileFormatTarget(const char *const , MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::LocalFileFormatTarget
operator delete(void *p)xercesc::XMemory
operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
operator delete(void *p, void *ptr)xercesc::XMemory
operator new(size_t size)xercesc::XMemory
operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
operator new(size_t size, void *ptr)xercesc::XMemory
writeChars(const XMLByte *const toWrite, const XMLSize_t count, XMLFormatter *const formatter)xercesc::LocalFileFormatTarget [virtual]
XMemory()xercesc::XMemory [inline, protected]
XMLFormatTarget()xercesc::XMLFormatTarget [inline, protected]
~LocalFileFormatTarget()xercesc::LocalFileFormatTarget
~XMLFormatTarget()xercesc::XMLFormatTarget [inline, virtual]
XQilla-2.3.0/docs/simple-api/structXQillaAllocator_1_1rebind-members.html0000644000151400015140000000475711653571063023301 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

XQillaAllocator< _Tp >::rebind< _Tp1 > Member List

This is the complete list of members for XQillaAllocator< _Tp >::rebind< _Tp1 >, including all inherited members.
other typedefXQillaAllocator< _Tp >::rebind< _Tp1 >
XQilla-2.3.0/docs/simple-api/ATStringOrDerived_8hpp__dep__incl.png0000644000151400015140000001335011653571064021724 00000000000000‰PNG  IHDR¨Ã™ÍzbKGDÿÿÿ ½§“IDATxœíyTSWÀoL@E”-+%Ç)ŠÖ©NE倎µê((".0lÅSkëR;¶ŽôXõÌB‘Š# ²Xí”MZŒwˆ¬€ƒ‰„`B¶7<›‰Iˆ@cxïïøÇÍç½ßýÞûåÝ÷òÈBÂ0 àcÑ ˆ‰‡$RxH¡è>(//ÿꫯˆ*ñFÙ»wï‚ ´_ßÑÑQ\\¼páBK…xÃ\¹r%22R7B1ì´ÿ~KÕƒ°W®\Ñ‹ s<¤ ñ‚ÄC )H<¤¹ªï'§OŸ>uêTddäºuëðHiié—_~iØ355ÕÍÍ-##ã矉DÎÎÎþþþ¡¡¡ÖÖÖ}%omm]¿~}YYÙ@«’ËåUUUB¡ÐÝÝÝ××wíÚµd2Y¯›ŸŸŸ¶íââ2}úôØØX{{ûþL1èÚLgðóó;s挛›Û ÓˆAŠÇ0¬´´”F£•••iÅðÁ999¡P¸e˼ 7nÜ‘#G:::8àììÜÜÜü¯ý«»»;..N(ÆÄÄäççëå·µµ hU/^¼ˆuppˆŽŽvuumhhøöÛo«««92b„þÚ–@§Ó5MKKKNNNTTTzzº­­íkg\mCA.õ ÍÍÍ;wîäóùŽ9ÒÑÑÑÑÑ?t…B¡\½z522ÒÓÓÓÞÞÞÛÛ;..îÚµkF#‘H óÛÙÙEEE ´ªÓ§OÛÛÛ=zô÷¿ÿ=ƒÁðõõMNNnoo¿|ù²ag{{{GGG*•êããóå—_ÒéôsçÎõg–ÁÕ6Ô¤øÒÒÒéÓ§Ïš5ËÝݽ´´ôµýmllòòò´Ž½½½9àã?Z[[ýüü¸\îš5k~üñGíjìççW\\¼qãÆ+V|ÿý÷ à 6mÚôÑGmß¾ýÆx碢¢ 6èÜ£FZ»vmQQ‘nò»wïê•G"‘V¬XQQQ?T©TÉÉÉ«V­ZµjUrr²J¥2ZÛÞ½{“’’ð!J¥rùòåxÃáæûï¿ [ºté–-[>|ht/UWW‡††._¾üßÿþ·v‡\»v-,,lÕªUÇW*•FƒýQ¦Ç`Äã뼿¿?`þüùý9Û±Ùl.—ûç?ÿ™Ífs8œŽŽ<Žï¸ÜÜ\mÏììì]»vyzzê¿zõjbbbtttJJJww÷¥K—233ÿú׿ž={644411 •JE"“ÉÔ›šÉd677›HŽÃ`0ÚÚÚðöùóç…BaJJÊ‘#G¸\î©S§Œ÷÷÷///ÇßÉRUU5räÈÙ³gž““Ãáp¢¢¢233ÃÂÂ’““î¥ÊÊÊÔÔÔ;w¦¥¥i’¼¼¼C‡ýãÿ¨¬¬<{ö¬‰à€ŒøG=}útþüù€ùóç766644˜òÞ{ïq8œþóŸï¾ûîþóŸuëÖ•””íåãã3jÔ(ÝàÊ•+mmmÿøÇ?$INNNLLÌìÙ³íììfÍšµyófS“H$Fc"¹!—/_Þ¶mFóððˆŽŽ¾yó¦ÑáøÃ$ÉãÇ%%%K–,Á¯" ‡ÄÄÄøúú:99½ÿþû})Ö¬Yccc3oÞ<@ww7Œe0,ë/ùKQQ‘‰à€ÌÅ]ii©Z­þÓŸþ¤”••Mš4©¯þr¹üúõë .d±X,+,,,###99_3ôpww7 R©T…ò²Ú¶¶6ÝéÞy瀭­­££#ŸÏŸ5k–îX>Ÿ?eÊÉq««+Þnoo_½zµö¿ÆŒctøÈ‘#?øàƒòòòwÞyçúõë©©©} W©TºK‘‡‡‡Ñœœœ$I7È`0´³ÿ÷¿ÿ5¯ÑhÊÊÊ>þøãeË–á‘S§N•••mÞ¼Y¯b-†}õÕWîîîøÆ“H¤Ù³g/ˆb¤$½Ì... ÚÝ×ÔÔ„7NŸ>íãã£=ÍËåò¬¬,­£ÉÁ¯ sæÌÁÚÙÙ;v e…ŸAúîïïüøq&“9eÊ­ ÃáŸþù“'O&OžŒwhll4Z†Ñ(ð-miiÁŸ}Ä€—z'‹-Z4úWŸÏïkÈèÑ£/^ü÷¿ÿ½¢¢B(Þ¿ÿĉº‡»L&P +W®LII©®®–H$·oßÎÈÈÀwÙÆÅbñöíÛoÞ¼)~ùå—ØØX*•ª»8iyþü¹H$êì쬩©Ù·oŸP( ÆÿË××755µ£££¾¾~çÎyyy}U2{öl©Tš‘‘±téRmÐpøŠ+Nœ8qíÚ5‘HtóæÍôôt¼ç?üÐÓÓczcZ[[=z”––¶hÑ"Á1à#¾´´tæÌ™º÷:<==]]]ËÊÊŒ^4áìܹ333355µµµÕÁÁÁÏÏoÓ¦M€ñãÇ¿ûW¯¾téRÿkX¹r¥Z­>vìXWW×´iÓbbb> °±±9yòä©S§’““ÛÚÚètº¿¿PP•••a’-[¶à æíí}òäIí’‘I"‘æÏŸÝÙÙi´ …²`Á‚’’Ý÷8·²²R*•'NœxöìÙäÉ“÷íÛ‡¿œùæ›of̘¡×(Ÿ~ú©\.Çïzá »^°ÿ»N I÷íÕÙÙÙkÖ¬ù-÷¤,Ã7h4švåüùçŸñg±U™£7øwßÐÏÏÃáh—40LïÕ×××|xÚ´i<ïîÝ»ï¿ÿþŽ; k õ÷÷òä ÇûÝï~÷Å_à>üðÃÒÒÒK—.999)•J ÃΜ93mÚ4Fc¸uË–-“H$999x‘x†Å‹×ÖÖVTT0™LmZ½`vïÕñ^^^B¡o͘1ïÌår1 S(zm<‰áó¸°°°··÷áÇR©T­V———ã§Nš››‹çðàÞÖ­A¡PÉä{÷îásss™L&ÞÇãa¦R©Æ_RR‚aØÒ¥KãããnÝ•+W0 S«Õø¼º𽤗VìÏ®º¤4túÿÕÙÎîåßÍÆŽ °²²Òkk©««c2™zÙjkk###¥R©ijjòôôÄÛ,‹Åbé éèèP«Õ“'OÆ2™LàåOË{yyÈdr```nn®··wqq1¾ðâêê 1â•s¨vj///mZ£A‹1T^ÇS©Tü Æ0L,WTT :•L& f³Ù\.7)) ººº666âí;wîyòÄÍíåŸêµOµ    .dggÏ›7Á`ÝèëIüÔÖÖâÏŒ¾‚ƒ`ñR©o~öÙgMMM<oÉ’%‰‰‰ƒÎÙÛÛ«P(¬­­e2ÙþýûÝÝÝaaa{öì¹wïÞ½{÷¶lÙÒÔÔ¤Wƒ••Õš5kâââîÝ»·wïÞÐÐP½Ì¾¾¾*•êÀaaaÚ`ZZZWW—é’¶mÛÆç󫪪vïÞ½~ýzAËa®sÆ@ÏñJ¥rÞ¼y¶¶¶x\"‘lÞ¼ÙÁÁÁÉÉ)**ª§§G·s_mÝ .Guttœ0aBRRRHHF“Ëå;vìpuuµ³³ ‹Å†5ˆD¢°°0''':þÉ'ŸÈd2½  ÃbbbF-‘H ·ÈhÏ––6qâD*•ºuëVmZ½`vÝ0¾¸îìÞ½{ݺuýïoøÔé+øZÌ+~¨\Ü }äry[[[zzzVVѵ˜¡rq7ô©¬¬|ï½÷ÂÃÃ.\ØÿQãÆ‹ŽŽîOР#¾¿,X°@$ tFKNNîOР#RxHAâ!‰‡xÅ¿x¡xñBAt„aæ«ú“'Oš7ᛣ¦¦‹DÞÞÃìSTæÂÌâ yÚWbHLÌ#ºb€è÷ãuéì”úø|©¦æ€£#,¿¯ ¤çøË—yøß).]â] 1@*žÃ¹‰aŒÃ¹It-Ä£ø–ÑíÛ͆i4€ËmjiðØ·ÅÞ!“_n8™L*,¼Cl=„£øìì*•J·U*,;»ŠØz:ñ·×Ö¶ë°ÚÚöÇÛûð–øüüÛ Y7B¡ Œ|4âí.ñ†;÷ÿuG¥RggWÁv?.ñwî´´¶Š ã­­âššË×C p‰ÏËãê­ó8 9/kùz"ñjµæüyýuG¥RŸ?_­Vk,_Q@$¾¢¢^,~A¡­­)zÿ(²HÔSYYOt–¢7[R(#öìY¦}xñb `Ù²éº(‹ ýë :ú;@JÊF¢ !ˆžã]xHAâ!‰‡$RxHAâ!‰‡$RxHAâ!‰‡$RxHAâ!‰‡$RxHAâ!‰‡$RxHAâ!‰‡$RxHAâ!‰‡$RxHAâ!‰‡$RÌöFEy(3z´@&{Dt!Ã\¾Ìù8Ÿ|òÉܹs͘¡Ë7Ž;f®læ?gΜ   3&DèbÞo+BçxHAâ!‰‡$RxHŠâù|>~WÀ°ñZ`8‰DâóùƒžËb EñöööûÛ߆r·€¡(žJ¥ÆÇÇå„o–_PPàææ&‹YYYS¦LéééÑh4 ,kìØ±sçÎ-++×JKëÅ‹}||lllètºQ………ÞÞÞ£FòððÈÌ̯®Õ$)==Åb9;;ÇÇÇgffNš4ÉÎÎnß¾}ÚžùùùS§N¥Ñhqqq½½½ºÉ•J%›Ívqq¡Ñhl6[©TðÓO?1™L‡C‡õ•óµ½q03àp8¦ûlذaãÆííí...•••†¥¤¤Ðh´ÜÜܶ¶¶~øÁ`êêêð ‰ÄÚÚ:<<\ œ9sðôéSÝ)¤RéÈ‘#“““…Bá·ß~K¡P¤R©v8^gHHˆD"IKKK$’””@gg'ÞsñâŵµµL&ó‹/¾Ðþõ×_¯^½º¹¹™ÇãÍœ9s×®]†ûaÙ²e‰$''çµ9õ‚¦÷‡Ã1§/³%ê‡x±XÌ`0¼½½µ9mÚ´ŒŒ m‡ï¾ûδøÞÞÞ‡J¥RµZ]^^ŽwÖB$YYY}óÍ7b±X£Ñtww«Õj=ñ\.Ã0…B¡×®««Ã{òx<¼3‡Ãa2™ºÃ½¼¼„B!Þ.**š1c†á~¸rå †ajµúµ9õ‚¦÷žyÅ[ôooouÿþýØØXkjjâñxK–,ILL¤¥¥uuu "§‰‰Þ8æ:g€×ã?>}út…BaØ… ètºH$R(˜4i’­­íܹsÏž= Lžã1 ;zô¨££ã„ ’’’BBBh4šÞDgòäÉÖÖÖ^^^ùùùzÃÎeaï™––6qâD*•ºuëV™L¦;\"‘lÞ¼ÙÁÁÁÉÉ)**ª§§ç·äÔ šÞÃÃøâîµèîbBxÍ9ˆ‰†ñÅbè€Ä¿Â¸q㢣£-óML40̵ts,õ ¥axHAâ!‰‡$RxH÷³sÃsù2ÛG¨²³³Í• aàýýxÈAçxHAâ!‰‡$Rþ½{ØS'ѦIEND®B`‚XQilla-2.3.0/docs/simple-api/Item_8hpp__dep__incl.md50000644000151400015140000000004011653571063017213 000000000000005b5a73dd62d3a62f7e1121819bc8cf1dXQilla-2.3.0/docs/simple-api/InputSource_8hpp__incl.md50000644000151400015140000000004011653571063017606 00000000000000f7eb95797243b9bad803820943971d79XQilla-2.3.0/docs/simple-api/ExternalFunctionResolver_8hpp__incl.png0000644000151400015140000001170211653571064022447 00000000000000‰PNG  IHDRåu>ͱbKGDÿÿÿ ½§“wIDATxœíiXWÛÇOH[Õ°VjQy\°*FÀRE¡ò°Õº±XŪ€+àr ®\V p€ÔVª R¼ ˆR‹(”Ѝ­¨`ˆ,†@B2ï‡é3oÈF¢‰tèù}šÜœsîÿ¹çŸ3g‚'¨¶D _!xú‚' _!x‚¤Pëýû÷WVVªH äßIYY™üókCCC}}½½½½‚’  ttt t:]>>>>>éééCCC­­­t:½®®Îßß¿¡¡N§ÿüóÏkÖ¬Y±bÅùóçÑ^·oßÞ¸q£§§§¯¯ïÙ³gåƒ+~,>>ŸÏÏÉÉñ÷÷÷ööNLLd±XaÙÂÝY,VRRÒÊ•+?ýôÓo¿ývppPâ˜â‰D‰¤££#­hׯ_¿dÉ’ÀÀÀÒÒRQ¾þúë´´4ô˜Çã-_¾¼ººZž"‹h«­­ Z¾|y~~>6ß_ý5$$ÄÇÇçäÉ“<ObPž¡ªò+‡Ãa0oÞŸ/C¼Èø•••‰‰‰ÉÉÉ/_¾ÌËËˆÈÆ8qâDgggzzú¡C‡jjjÎ;'qLU¯_¿>uꔇ‡‡ººº´:p8œ„„ooïóçχ„„>|˜ÃáÈÈpss»yó&úH~MM††Æ¬Y³ä,²0wîÜÉÌÌŒ‰‰ÉÊÊ®*………‰‰‰¼sç¶FH *UùuÆ K‡ƒÆ·lÙRWWµråÊ)S¦ˆw,))Ùºu+•Jµ±± »{÷. urrÒÔÔx{{S(”?þÀd2Édò©S§"##ŒŒ¨T* ¿¿_¶lX‰ˆŒ_\\¼nÝ:kkë;wÊx|bhhèúõë[¶l133³±±Y»v-ö0‡È˜"ªüüüJKKýýýeÔÇã!Âf³Éd²§§ç•+W444ddÌ›7Éd>~üP^^îééI$å,²0þþþÚÚÚóçÏ`o¶ˆˆKKË©S§nذK*1¨DTµ•vGI¡P¼¼¼NŸ>}ìØ1‰_½zåë닽Į&LÀ‚ÆÆÆéoñ$©¥¥åèÑ£l6[|m¦§µµ;ùRÈøííí–––豕•••••Ä€žž@`nn޾´°°èìì”8¦ˆ*.—›}øðáÔÔTiuÐÕÕMNN.((ÈÉɱ³³ œ3gŽŒŒ >úèæÍ›'N¬ªªÊÌÌ”68z \daŒŒŒ"7‚XM&L˜€%•T"ªò«4:::.]ºäì윖–+Þ@OO/99=‹,«»» Ÿi‘Âq¹Ü„„„„„WRR"¿>ŸO$»ºº„ƒ"ã½zõÊÚÚðôéÓêêêàà`‰£¨©©1 ÔÓmmm¨MÅÇACCÃÓÓóêÕ«‚ -ÅëÀårABBÂÐÐPyyylllaa¡ŒŒ(nnn'Ož¤Ñhvvv˜™ä)²Œ‚ ´´´ØØØ^¾|‰ZZP‰¨j?ÐÛÛÛ=‚ ‡^µjÕž={~ûí·ªª*¬=ºÁ,X° 33³½½½©©)&&¦°°pÄ\<ohhˆD" ¢[±{Q(@iiéÀÀ€ø6T˜%K–dee577777Ÿ8q¢½½]\6 ‰D¢Óéß|ó ƒÁhnn>uê”»»ûˆJPtttdÔ@ DGGWVVö÷÷óx<‰¤¡¡1bÆY³f±X¬ÜÜ\lK&qp1ÅÅÅâ{*RRRZ[[ÿüóϬ¬,A%¢ªõuóæÍ"‘ŠŠŠÂÂÂÞÞÞ€€‰´mÛ¶ãÇOŸ>ÝÔÔtúôé¾¾¾?ýô`ýúõ)))7n$ . YüÄ¡P(ÐÒÒ tss‹‰‰III‘ÝKOOoýúõiiiyyy_|ñÅ/¿ü"­ePP‡Ã‰ŽŽæp8sçÎ ˆÈÆØºukJJJxx¸ººúâÅ‹ƒ‚‚dËÀ?~¼¶¶6“ÉÔÖÖ–X2™üÕW_eddttt˜››ÇÇÇ“Éd‰…/Ä$ÉÕÕµ¼¼ÜÕÕ ŽXä£G:::bû‰¸»»ïرƒÃḹ¹aIE‚rÎ]~ }Ÿ{õêÕðù×9ö¿TCŸUÈðùž€~…(ŒŽŽÎòåËå *èWˆÂèëëoß¾]ž Ò~…à èWž€~…à èWž€~…à èWžPø÷±õõõQQQªù·ÑÓÓ£hÅü:wî\Eü;©­5±±ychÈm!ÿtœj¯Øó917ß–ž¾fÅ ÇÑ2Ö€ûWž€~…à èWž€~…à èWž€~…à èWž€~…à èWž€~…à èWž€~…à èWž€~…à èWž€~…à èWž€~…à èWž€~…à èWž€~…à èWž€~…à èWž€~…à èWž€~…à èWž€~…à èWž€~…à èWž€_[9|ñÅ™?þ``/[[{ u´´ÔÑ—$ñôéõffú£¤nì ðÿÛ€H„F3),¬~ï÷õ±… ͪà~@9¬Zå AâH$âÿ;û=ë«@¿*++# ‚$Çòùoï™ï]ÑØúUiøùÍ"E멦Fpv¶27‡›åýª4V®œ)~óJ üüfŠž1 ô«Ò06¦Ì™C_b½¼fŒŠž1 ô«2ùôÓÿ/±D¢Ú‚¶††:£(iŒýªL–.u^_Ä×÷?£¨gìýªLtu5ÝÜ>$‘þ®*™Lüä‡Ñ•4Æ€~U2«V9 €D"zxLÓÖ&¶¢1ô«’ñð°×ÔTðù|__Åþù4dD _•Œ†ÉÓs:´´È‹Mm9caϰÙìžžžÑ’2f Ó­/^üÍÃcòë×£­÷hii`/‡ùµ¯¯¯±±ñ½Kkèé tuÉ~HÅ|wÆ/Õ¯(‹-zrÆ([¶ ›6-VS“ü DN>|(ûW•¶šU@¿ªuuâhK›@¿Bðô+O@¿Bðô+O¨Ð¯OŸ>%dðâÅ‹µk×"L¡PT'ï‘1t ¿ÿþ;‰Dºpá/**"“É èËþþþ˜˜˜3fP(”Ù³g'&& ·ªAʚ鈄§OŸ¾Ÿ\*ü~¬¾¾þÎ;íUXXèííÝÖÖ–ŸŸÿ×_©B˜ªA§àääéáᡯ¯ÿæÍ›M›6ÅÇÇOŸ>Ð××7{öl*•š””4iÒ¤ìÙ³§¬¬¬¬¬ìíêVUUemm­‚ÙüMSSÓìÙ³»ººT—B.!ÚÛÛ+**eóäÉ4v ƒeË– ÈÓrt‘¡‚ \.wÚ´i¡¡¡‚„‡‡;;;¢m¢¢¢,X044„õb±X'NLOOO1b5OžfpîÜ9;;»þþ~@’’2uêT]]]—ŠŠ ô!ãªtõêU'''mmm33³¤¤$4ØÕÕ¥£££¥¥5wî\€©©)øßÕ°¼¼|„ ·nÝ’Ø‘@ dggO:uüøñIIIgΜ±¶¶ÖÓÓÛ³gÚ€ÇãEGG›˜˜P©Ôèèhçââ’œœ èîîVSS‹ŠŠðù|ƒââb@ooïçŸnllliiÅápD”`oø¨¨(GGGtíÁ¦ “ɹ¹¹ÙÙÙ‰‰‰999¹¹¹êêÿ¼¼¼¸¸8"ñÿ?¦ÕÑщ‰‰ÉÏÏ‹º)t²Ðñ‹ŠŠ&OžL¥R###¹\îˆóµµµÅΈ8¥¥¥4ÍÀÀ 11;e")¤åU aóʹ¾~öÙgkÖ¬yõꕉ‰É;wÉÈÈ R©/^lkk+..¶´´ˆ/Ø“É$“ÉëÖ­kiiÉËËttt ’}æÌdø»=þä“O®_¿Î`0$v0™Ì¬¬,ÀêÕ«™LfFF «« AC‡ùúú¾xñâþýû3gÎܵk×¾}û–-[† HQQѸqãfΜ‰ Hmm­¦¦f?‚ AAAnnnÏž=»ÿþ´iÓ„•Ü»w 0³¢j±)`ìÚµ pàÀ,‚¨³³S¤°·oß644|‹ºîÝ»×7i' mÉ’%ÕÕÕ4-!!AÎùJôÀËË‹ÉdþøãhÁ%¦–WâëëÛøµ§§ÇÒÒÒÁÁËgooŸ››‹58}ú´l¿r¹Ü?þøƒÅbñùü›7o‚ÿ]P|}}»»»I~½ÿ¾ŒŽ€ºº:AEŽÑS¦La0è€eeeŽŽŽµµµ epppûöí±±±êêê===GŽYºt)Ú—H$bźxñ"FV‚ÇÄÄ?~ŒÍ›Š@ X¹r%‘H . öF¦ªªÊØØø-ê&c%?Y³@äûï¿§ÑhrÎW¢7nÜ@„Ï磒$¦”8 †ö}}ýÐÐЇFDD ‘¦¦&GGG¬ƒÃ_!“ÉžžžÎÎι¹¹hÅbñx<á‡q„™2eŠ´Ž(ºººô‚+|Œòüùs333ôÆÙÃã¹¹ÙÉÉIGG§¦¦¦²²rÅŠNNN•••Ë–-´··óùüI“&¡Ýi4ZKK‹°”šššE‹ XQilla-2.3.0/docs/simple-api/classAutoContextInfoReset.html0000644000151400015140000002313411653571063020635 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

AutoContextInfoReset Class Reference

#include <ContextHelpers.hpp>

List of all members.

Public Member Functions

 AutoContextInfoReset (DynamicContext *context)
 AutoContextInfoReset (DynamicContext *context, const Item::Ptr &contextItem, size_t contextPosition=0, size_t contextSize=0)
 ~AutoContextInfoReset ()
void resetContextInfo ()

Public Attributes

Item::Ptr oldContextItem
size_t oldContextPosition
size_t oldContextSize

Constructor & Destructor Documentation

AutoContextInfoReset::AutoContextInfoReset ( DynamicContext context) [inline]
AutoContextInfoReset::AutoContextInfoReset ( DynamicContext context,
const Item::Ptr contextItem,
size_t  contextPosition = 0,
size_t  contextSize = 0 
) [inline]
AutoContextInfoReset::~AutoContextInfoReset ( ) [inline]

Member Function Documentation

void AutoContextInfoReset::resetContextInfo ( ) [inline]

Member Data Documentation


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classSequence-members.html0000644000151400015140000002470011653571063017741 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

Sequence Member List

This is the complete list of members for Sequence, including all inherited members.
addItem(const Item::Ptr &item)Sequence
addItemFront(const Item::Ptr &item)Sequence
begin(void)Sequence
begin(void) const Sequence
clear()Sequence
const_iterator typedefSequence
const_reverse_iterator typedefSequence
end(void)Sequence
end(void) const Sequence
first() const Sequence
getLength(void) const Sequence
isEmpty() const Sequence
item(size_t index) const Sequence
item(const ATDecimalOrDerived::Ptr &index) const Sequence
iterator typedefSequence
joinSequence(const Sequence &s)Sequence
operator delete(void *p)xercesc::XMemory
operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
operator delete(void *p, void *ptr)xercesc::XMemory
operator new(size_t size)xercesc::XMemory
operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
operator new(size_t size, void *ptr)xercesc::XMemory
operator=(const Sequence &)Sequence
rbegin(void)Sequence
rbegin(void) const Sequence
rend(void)Sequence
rend(void) const Sequence
reverse_iterator typedefSequence
second() const Sequence
Sequence(const Item::Ptr &item, xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager)Sequence
Sequence(xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager)Sequence
Sequence(size_t n, xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager)Sequence
Sequence(const Sequence &, size_t start, xercesc::MemoryManager *memMgr=xercesc::XMLPlatformUtils::fgMemoryManager)Sequence
Sequence(const Sequence &, xercesc::MemoryManager *memMgr)Sequence
Sequence(const Sequence &)Sequence
sortIntoDocumentOrder(const DynamicContext *context)Sequence
sortWithCollation(const Collation *collation, const DynamicContext *context)Sequence
XMemory()xercesc::XMemory [inline, protected]
~Sequence()Sequence
XQilla-2.3.0/docs/simple-api/Timezone_8hpp__incl.map0000644000151400015140000000003511653571064017215 00000000000000 XQilla-2.3.0/docs/simple-api/XQillaConfiguration_8hpp__incl.md50000644000151400015140000000004011653571063021250 000000000000002d92ccd116fe7b941856480dfa0b8464XQilla-2.3.0/docs/simple-api/classATDurationOrDerived-members.html0000644000151400015140000005571511653571063022021 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATDurationOrDerived Member List

This is the complete list of members for ATDurationOrDerived, including all inherited members.
_ref_countReferenceCounted [protected]
add(const ATDurationOrDerived::Ptr &other, const DynamicContext *context) const =0ATDurationOrDerived [pure virtual]
ANY_SIMPLE_TYPE enum valueAnyAtomicType
ANY_URI enum valueAnyAtomicType
asMonths(const DynamicContext *context) const =0ATDurationOrDerived [pure virtual]
asSeconds(const DynamicContext *context) const =0ATDurationOrDerived [pure virtual]
asString(const DynamicContext *context) const =0ATDurationOrDerived [pure virtual]
AtomicObjectType enum nameAnyAtomicType
BASE_64_BINARY enum valueAnyAtomicType
BOOLEAN enum valueAnyAtomicType
castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [protected, virtual]
castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
compare(const ATDurationOrDerived::Ptr &other, const DynamicContext *context) const =0ATDurationOrDerived [pure virtual]
DATE enum valueAnyAtomicType
DATE_TIME enum valueAnyAtomicType
DAY_TIME_DURATION enum valueAnyAtomicType
DECIMAL enum valueAnyAtomicType
decrementRefCount() const ReferenceCounted [inline, virtual]
divide(const Numeric::Ptr &divisor, const DynamicContext *context) const =0ATDurationOrDerived [pure virtual]
divide(const ATDurationOrDerived::Ptr &divisor, const DynamicContext *context) const =0ATDurationOrDerived [pure virtual]
DOUBLE enum valueAnyAtomicType
DURATION enum valueAnyAtomicType
equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0ATDurationOrDerived [pure virtual]
fgDT_ANYATOMICTYPEAnyAtomicType [static]
fgDT_DAYTIMEDURATIONATDurationOrDerived [static]
fgDT_YEARMONTHDURATIONATDurationOrDerived [static]
FLOAT enum valueAnyAtomicType
G_DAY enum valueAnyAtomicType
G_MONTH enum valueAnyAtomicType
G_MONTH_DAY enum valueAnyAtomicType
G_YEAR enum valueAnyAtomicType
G_YEAR_MONTH enum valueAnyAtomicType
generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicType [virtual]
getDays(const DynamicContext *context) const =0ATDurationOrDerived [pure virtual]
getHours(const DynamicContext *context) const =0ATDurationOrDerived [pure virtual]
getInterface(const XMLCh *name) const =0Item [pure virtual]
getMinutes(const DynamicContext *context) const =0ATDurationOrDerived [pure virtual]
getMonths(const DynamicContext *context) const =0ATDurationOrDerived [pure virtual]
getPrimitiveTypeIndex() const =0ATDurationOrDerived [pure virtual]
getPrimitiveTypeName() const =0ATDurationOrDerived [pure virtual]
getPrimitiveTypeURI() const AnyAtomicType [virtual]
getRefCount() const ReferenceCounted [inline]
getSeconds(const DynamicContext *context) const =0ATDurationOrDerived [pure virtual]
getTypeName() const =0ATDurationOrDerived [pure virtual]
getTypeURI() const =0ATDurationOrDerived [pure virtual]
getYears(const DynamicContext *context) const =0ATDurationOrDerived [pure virtual]
gXQillaItem [static]
HEX_BINARY enum valueAnyAtomicType
incrementRefCount() const ReferenceCounted [inline]
isAtomicValue() const AnyAtomicType [virtual]
isDateOrTimeTypeValue() const AnyAtomicType [virtual]
isDayTimeDuration() const =0ATDurationOrDerived [pure virtual]
isFunction() const AnyAtomicType [virtual]
isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicType [virtual]
isNegative() const =0ATDurationOrDerived [pure virtual]
isNode() const AnyAtomicType [virtual]
isNumericValue() const AnyAtomicType [virtual]
isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
isYearMonthDuration() const =0ATDurationOrDerived [pure virtual]
Item()Item [inline, protected]
multiply(const Numeric::Ptr &divisor, const DynamicContext *context) const =0ATDurationOrDerived [pure virtual]
NOTATION enum valueAnyAtomicType
NumAtomicObjectTypes enum valueAnyAtomicType
pattern_DT_DAYTIMEDURATIONATDurationOrDerived [static]
pattern_DT_YEARMONTHDURATIONATDurationOrDerived [static]
Ptr typedefATDurationOrDerived
QNAME enum valueAnyAtomicType
ReferenceCounted()ReferenceCounted [inline]
STRING enum valueAnyAtomicType
subtract(const ATDurationOrDerived::Ptr &other, const DynamicContext *context) const =0ATDurationOrDerived [pure virtual]
TIME enum valueAnyAtomicType
typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicType [virtual]
UNTYPED_ATOMIC enum valueAnyAtomicType
YEAR_MONTH_DURATION enum valueAnyAtomicType
~ReferenceCounted()ReferenceCounted [inline, virtual]
XQilla-2.3.0/docs/simple-api/ATTimeOrDerived_8hpp__incl.png0000644000151400015140000004322311653571064020367 00000000000000‰PNG  IHDRxu{ÏbKGDÿÿÿ ½§“ IDATxœíÝy|uþ?ðOŽÞ%½hz¥÷ÊQA\.åpE‘Cåd]QPùî* § TŠ‹«û[qQAE)( ‹.BE¡…B[ζôÈÑ»I›&mšk~|t ¹(mÚ¤éëùðá#2“wfÞ3™¼ó98 ÃGà:;p(4€Ã ÐƒB8 ßÙ¸œÍ›7Ÿ:uÊÙQ€Œ?~Æ ÎŽ oA¡À\QQQAAAZZš³.¹|ùrPP³£èsPh°"--mãÆÎŽºä•W^qv}Æh‡A¡…pÀaPh‡Á¬]òÉ'Ÿìڵ멧žš7o]râĉ͛7[>sîܹŸþ¹åòM›6mÚ´)''§+ah4šÝ»wçååUWWÇÄÄŒ7î±ÇãñxfO»çž{ØÇaaaC‡]ºti```G^B&“-X° +qZÝÂ=÷ܳgÏž¨¨¨No\ Ç0̉'„BaNN[h3fÌ!ÕÕÕÏ=÷}Lñööž={¶år†aæÎÛ•0Z[[—.]ôôÓOGFF–——øá‡çÎûç?ÿÉåš·^|çw"""ŒF£D"9pàÀ’%K>úè#ÿ[¾Š¿¿ã€¾…€Î+//‹ÅÛ¶m[±b…T*‰D„//////BH[[!$88˜}¾¯¯¯ÕåK–,éJŸ|òI``à›o¾IË "‘häÈ‘‹/>zôèý÷ßoöäÀÀ@úÒýû÷6lØßþö·ýû÷/^¼ø–¯ÐÅ8 /À wâĉ¡C‡fddÄÄÄœ8q¢s‘Édl†{î¹çèÑ£‹-š1cÆgŸ}ö¿ÿýoîܹ÷ßÿG}DŸ ×ëwìØñðÃ?üðÃ;vìÐëõ„cÇŽ-\¸Ð´ñ‚··÷c=vìØ1ºñüüüG}´¨¨Èì¥9΃>xæÌ[7]ý»ï¾£q®_¿~ûöítN7}útºËÕFã¾}ûüñiÓ¦=÷ÜsW¯^µºÎ;7þüéÓ§ïÝ»—Ý!§OŸ~üñÇ~øá·ß~[§ÓY]عÝ …€N¢ý&&MšD?~|Y`?þ½÷Þ[²dÉÎ;ýõ×?üpéÒ¥Ÿ~ú©R©$„dggWWW¿ÿþûÿüç?óóówíÚ¥R©äryRR’Ùv’’’Äb1}üå—_®^½:99ÙòåD"QUU}l¹q««Oš4éÇd†’——çåå5räH««8pà‹/¾X²dɧŸ~úøãïØ±Ãê[>{öìÎ;W­ZõÁзIùú믳²²¶lÙröìÙÏ>ûÌÎBp)(4tÒµk×êêêÆO?~|EEEyyy×7ûè£úúúÞ{dyóæùúúN:•ÒÒÒB9zôèÿýßÿ …„„„§Ÿ~:77×Öv8ŽÑh¤—,Y2|øpoooû/mkãf«ÿéOR*•ׯ_'„?~|êÔ©tÔIËÕ>üÌ3ÏŒ7.$$äÎ;ï´Õó‚¾å±cDzo“²téR‘H4pàÀ¿þõ¯Ç޳³\ Æhè¤'N †‡zˆ]’““ßÅÍÒqø|¾Ùcª¦¦fÖ¬YìŸ~~~þþþÁÁÁ¥¥¥¦Û)--MII¡cbbl½œT*ŒŒ´µq««{yy3æÇŒ‹‹ûå—_vîÜiku½^oÚÔ"!!Áj !!!„‡cºxA_½¾¾ÞÎBp)(4t†ÑhÌÉÉY¶lÙ<@—ìÚµ+''gñâÅf_˜+ à­·Þ¢“AÒN„É“'òÉ'Çg‡iÐh4Ÿþ9ûµß´TaŠa˜Ã‡=ÚÎÆ­®>iÒ¤·ß~;)))%%…ýòo¹úË/¿|ãÆÄÄDú„ŠŠ «aXÝcR©”&$ ­DØZ.]':£°°P¡PL™2Åçw“'O–J¥¥¥¥ÝúºãÆÛ¹sgmmmYYÙªU«¾þúkBÈ¢E‹ Å /¼››+•Júé§¥K—öïßß´µ«©©I.—744lذ¡ººú‘G±³q«FŽ©R©vïÞ=mÚ4;±=øàƒï½÷ÞéÓ§årynn.;¤å·ß~«V«í¿ÓwÞyG&“]»víƒ>˜2eŠ…àRТ 3Nœ81bĈÀÀ@vIrrrdddNNŽÕ1åÉ'Ÿ|çwžzê)‡3~üø§Ÿ~šâëëûŸÿüg×®];v쨪ªŠˆˆ˜4iÒœ9s<<<,·ðÜsÏÑB¡0==ý?ÿùÛEÂrã VÃàóù&L8~üø„ ìÄæáá¡ÓéÞ{ï½ÆÆÆÄÄÄ 6,[¶ŒòÆo 6Œ}]«&Ožüâ‹/j4šI“&ÍŸ?Ÿv”0[Ø™=ÝŒC‡ŒÖ#§ÿˆˆÀˆˆ@‘((220""0**022(,LàáÁsnü½ àÎt:CUU“D"—ɉ\,n”H䉼¶Vi0 !^^ü˜˜‘(hذèéÓ‡FG‹DÁ¯¾úRs³³CGàóƒEiùO®¶V)7ÖÔ4×Õ)++%ù¹sååõ--ú//¾I ˆ€ØØØØ¡P ùùyõì[è5Phw`¿…!$ À—~K¼ãŽøY³îˆ ‰‰ ðò²òQèéiìÙðÁ ¼½=hJXþSsskM’Vjk›i.J¥Ryk«–>' À׬ÿMªÈÈ@´ƒ€>…èMTªö²²:ZP`¿ Z-(Œ—²`Aýî&ðöư ÐQ¾¾©©áãÆ™ÿSss«i%«¶¶¹²²ñ§ŸŠe2…^odWÿ½ú  - h³‘(ˆÇÃ8Üàþ8 Ã8;s·,(>qqýiVXPxä‘G~øá‡„„Ó… Ã×jûiµþÞÞru×_¥s†><^›³0c0øðxB\åvB©ŒõðhóðPñx­ååe“'OþòË/{æ¥i ‚-C°2¤Rí§ãáÁ ö£m„BAx¸€í”Ìårz&N€î†B8“ZÝ~ã†Ó ¶¼ùæ›gΜ19jµGK‹GK‹§JåÙÖÆçpˆ··.>^¬é¾W·C¥ò,- ÐëyµŽó?Á†sîœÐÃØ”Ôìï¯uv8D¯ç\¹¢V{ \ñóÓ%&/Zôà!¢ää0>ß9­ t:ƒ\®ú½Äo5Ú¢®®…Þ‰aR p'(4@O` ¦_´n.(xÇÅ…šèO¾¾=d{»¾ @\X(-,”äå•WV6r8œää°ôtQzzô¨QñF:«û}CƒêÕW8p~âÄ™™³¬Ž,à ë×Ìɹ6kVÆË/?Ô¿¿¿³#"„ÚÚfz ¥⺺>Ÿ› ¤‡2=]4x°È××ÓÙa­V_]ÝL‡0­µUT4(•¿5Z¡R²5¶SF\\¨@àíÜø¬B¡©WXF#SRR›—Wž›[VX(-+«ÓëBa¿;ïL92>=]4p`d¿~Nþ.g0wíúù7¾¼_{mÖ”)iÎǪcÇ.¯]{@¥jñÅ?/^<ÖÕF"0­;×TV6òxÜÄDajjxJJXzzôÈ‘ñNÈ@;,'Å ç&ÅׇBtFk«¶´´¶·L]¿^C¿pJ®^­R©Ú|GŠgëv©–ê.ˆW¯ÞíZõòå“—-›èããüámikÓnß~âßÿþaàÀÈ­[gãìˆljnn½~½†-=””Ô2 &  ž‘ìçì0­3ŒuuJ™LQUÕTUÕ\U¥ÉÕÕÍÕÕMlG žP(ˆŠ ŠŒ ¤ÿ±CB\¢É ¸7À£‘©«SŠÅ‰\"‘K$ ‰D.•Êe2…Ng „xxð"#££ƒE¢àèè?þ p‘Áíärõùólq¡¶VééÉ:4šýV™”$tµ_à !--šÍ›öÙ™?ý)9+kVb¢ÐÙuÈÕ«U«WgŸ?_1oÞè tz{ŽP*Û®]«¶Sw><ÖEº„اÓªªšjjš¥R9-=H¥Šªª¦êê&¹ü·áK½½=D¢ ¨¨ ÈÈ ¨¨@‘(822P$ ŠŒ ôôÄddà(4ÀoêêZ$¹DÒ(‘ÈÅbZVK¥r¶ ÄbbB¢£ƒÃ®ö-]£ÑÑoŒ´ODm­’Ëå$%…¥§‹FJ92>!!ÔYC-tÃ0ÙÙç^{íˆÑÈlØðàìÙwp8.Q²é ÿæÍ‡y<îڵ̙3ÒÙÝ¥RsíZ[w(-­5oª; ÚÏÙaÞF'•*d2EU•B&k’JåUU¿•!´Z=}NX˜ 22-@° zÝ›§C¡ Ï‘ËÕ´ˆ 7J¥r¶¬ Ñè!<7<< &†VB~àj–ÑÈ\º$ÍÍ-§ß ]s¨…*.®Y»öÀÙ³eO<1vÅŠ?;½§I§57·¾ñÆ÷»vý4ztbVÖìää0gGÔI--š«WíÕÒÓ£ÃÂγóØÁ èDtv ±¸Q&SèõFúœ€_ÓP&cRºP?#p(4¸'£‘¡¥:t;¬}UUm¡àããIÛ#°sFҽ园éP W®T©Õí¾´¬à‚C-t„Zݾuë?ùätZZÔÖ­³ÓÓ£‘JV¯Î¾|Y¶pá˜5kîw…‰ºH¥j¿rEÆÖnܨ3Œ¾tPIš~©©áÎÓ1š›[¿€(ÍŠô ¶F£Œ‰ våñD »¡Ðл1 #ËÙ:ýV 7VW7ÓÑ|>7**ˆ­#ôº‚«±Q•Ÿ_YX(ÉÍ-/((•m^^|ú{2íá:3>vÂ?\Ù°á \®Þ°áÁyóF»Èð¡×wïþyÛ¶£ÁÁ~™™³&Mèìˆ‰ŽŠÊ-YP ÑjõOjj8[wHI ë]_n©½]_SÓl:#-FH$ò¶6-}Ž­FB¡ÀÍöXB¡ ×P*Û**h-(ÔÔ4··ë !<W$2/(„… ‚ƒý]y<;ÚÚ´EEtœ…r:ˆcïj¡ƒ¤Rźu~øáʬYë×?(ºgøÚZåk¯ÉÎ>7eJÚk¯Í‰‚œQ·Ðé eeõl[›ÂBI{»^ ðNM`ëÉÉaîTH2c«;#†­FÑÑÁnÐà(\NK‹¦¼¼ÞVAÃáÄÄ›ö‘¦e…ÈÈÀÞþ­[§3\¸PÉ6J§C-ÄÄ„ŒO¿¤ åïïåì0F§3üûßǶoωŽÞ²eÖŸþ”ä숺Ý/¿”®Y“-•*–-»gùò)½=coɬîPT$ÕhtýúyÐWê,[ ¤RykëM ´K[Œˆ‰ F#€Þ…§Q«Ûoܨû½Ž do¾››[éLël;…ˆˆ·™…Ža˜ââZökØå˲ÖVmoj¡ƒ~ú©xÍšìššæÕ«ï_´hŒÛåfét†?>½uë·ááYY³ÇKqvD=G¯7Þ¸QÇ&ü¥K²¶6­ŸŸ× A‘4ÛSSÃŒì;É@ÑF´[W­«SŠÅrz›êéɈ ´)ÛB$ òósŸÊ#€;A¡ Ûi4ºÊÊF¶ŽÀ¶S` w\\¨YA!<<ÀËËM ¦T.Tææ–çæ–]¿^­TjÜi¨…ŽhhP½úê¡ÎOœ8 3s–Û¿_«*+ׯ?pâĵY³2^~ù¡þýý‘˜Õh¡ÍÃÊÚ† ‹q›ÂâíÒjõÕÕÍfÐÔÖ*e2…ZÝNŸc«Dttp_h'à²Php½Þ(“)Lû;˜üý½„¦(Лã^7.ãmimÕž?_‘›[F¿M±C-Œ?rd|zztb¢Ïwщ3Ë`0îÚõóo|'x¿öÚ¬)SÒœ‘“;vyݺJ¥fÅŠ©‹uÙùS{†Á`,-­+.®).®),”æå•75µšÕ†qËúãí²ÕB"‘ÖAÐëmB‚к_¸,n›ÙÌ‘ì=.;s¤¯¯gRR˜él½t¢‡ÎÑjõ/ŠÍæÿ‹ ¡e÷j¡ƒ.\¯^½ÿÚµêåË'/[6“ÿQmmÚíÛOüûß? ±uëœáÃcœ‘ ©­mfÏ£óç+är5ŸÏMH²u‡ôôhoog‡éB,AÐbDYYJõG#öâüû¤11!hà@(4ØDgŽ4½L,nd n3sd™µ—W~õj•Ng ò»ãŽ8·j¡# õÆ_ÌårÖ­›Ž}uK¦u‡‹Åõõ-<71QH•LI 92>0°ï^£:H©ÔTU)$yUUSUU“L¦J2™¢¶¶Y¯7Bx<.x2**(**(22P$ ŠŽ‰‚û`Ë,€B¡úÎ “)hljD.‘ÈÅb¹T*¯­UÒ'Þ"Qptt0mI‚ÊææVZVÀP T\\³fMvnnùOŒ]¹rª@àãìˆz¥²mÛ¶ïvïþyÔ¨ø¬¬Ù))áÎŽ¨×0­;ˆëêZ!aa¶“EFF\p°Ÿ³Ãì5 c]’d2EUU“Tú[ B©l£Ï ðŠ ¤´AÿÚϹÁ8 àžìOôÀápbb‚Í&Ks³™#»®½]_PðÛP yyå••„””p¶vßj¡#Ôêö­[ÿûÉ'§ŽÚºuÎ!"gGÔËIW¯Þé’láÂ1«WOÆÀÖŠ‹k¯_¯).®!7×FŒˆ é‹“}tNg¨ªj² ¢´´¶µUKŸC§Ã0™C‚¡( ï@¡z=¥²Ž¤ Ë%’Fú@,nloד߻ÝFG‡ÄÄÓ{>ÚZ¡oN§gŸÑÈ””ÔÒ²Bnnyyy½NgöËÈ`‡Zˆ 8;LW÷Í77~­VkÖ¯pÞ¼Ñ^®sŒFæ³ÏÎdf ôËÌœ9yò gGÔ»57·^¿^Ã6y()©eÆ´î0lX ~‡ï:Ëé0Øñ è,çãüýOô5·‚BôJe[EEƒÙ0 —±‹ÄâÆ³g›xòêÕ*•ªC-tšD"_¿þà?\™5+cýú…B|m몺º–ÌÌÜŸðÀÐW^™èìˆÜœXÜH;§LŸ>,3s&ÆèjuûåË2vhÉ«W«t:ƒ@àšÁÖ’“Ã0IÏhhPщ0è J2™B&k’É*B—Ë ÑÑÁì"Q0Ó×-  ç ÐޤRµ—•Õ™ £PSÓLÇeäñ¸"†Qèׯװ½!L‡Z5*aÔ¨øôt†Zp,ƒÁ¸k×Ïo¼ñ]@€OfæÌ)SÒœQrìØåuë(•š+¦.^<=Ø{˜Ng(+«g/8­V߯Ÿ÷€¨;8“F£‹iÑÁ´ QSÓ¬× !ÁÁ~ìLœô³X$ ŠŠ F è(4@gèõF™Ì^¯Ó±¬Ø²Bdd Z•;Š\®>þ¦¡x—™y„’™9súôaÎŽ~säÈÅõër8dݺé³gß ]Š^o¼q£Ž­;\º$kkÓšÕ†AmÚ¥˜NÆi:Ä’X,7‡a€-(4ô9mmÚ’’Zv,k³^'&&ØôÖþ”^=€a˜ââZöŽüÊ•*µºÝÇÇsðà( µà\ׯ׬Y“—WþÄcW®œŠúŽ«Q*Û¶mûn÷îŸGŽŒÏÊš‰]–Á`,-ý£îpù²¬µÕ¼îžíííáìHÁ ­V_]ÝlÚð–!$¹Ñh^€`‡vNL¢µ@„B€Û2‰Ä¼×ƒé0 ýúyÇÇcòH'klTåçWJrsË $Je›‡oذö†C-8—Zݾuë?ùäô!¢­[ç åìˆÀ¦¢"éš5ÙEEÒ… Ǭ^= ßm\丸ø·±lóòÊ›šZù|nB‚­; "Âïä.N§3TU5YÎ-%•* #±1g||h¿~‡Àm¡ÐàèlÛf½ØÉ#½½=RRÂÙßÐëÁ¹ÚÚ´çÎUЉ'­µ0x°“¹ˆ#G.nÜøu{»~Ó¦‡fͺ£è»>£‘9pàܦM‡¼¼ø¯¾úð uvDp{jk›TRzþ|…\®æñ¸‰‰¿ÕRSÃÓÓEøðê-t:ƒ\®b>°÷'2™‚N„A f÷'qqýÑj À  ÐЛ¨Õí7nØœ<’ËåDGcW£Ó.\¨dooܨ30Ô‚«“Häë×üá‡+³fe¬_ÿ PØÏÙÁm¨«kÉÌ<|àÀùÉ“efÎŒŽvvDÐI¦u‡ *T„°0ÛæëŽ;â0h¯£ÑèØù/ètôÿuuJ†a8ŽP( Óp²ÿ§ÿ¡Å%@/‚B€‹R*Ûh)¡²²> bÓF žž|:’BLLpttû5W`6Ôí„ìããyÇq£FÅÓûc µà²´ZýÛoÿðî»'bcC²²fè술“~ýõÆÚµÙ••Ï>;ñùç'ã+Š0­;\¼(®¯o!7×FŒˆ ñwv˜ÐIZ­^&S˜ è55ÍFãˆèè?JÑÑÁQQA8»\ Nf0««›+*L)TT445ý64cxxm˜@[+ÄÄÓ^ŽYÝ¥Ô×·\¼(ÎÍ-ÏÍ-»~½Z©Ô˜ µóÒ9É IDAT€iä{…¼¾víº:åK/M[´h @íít:ÃÇŸ~ýõÿ …‚¬¬Yãǧ:;"p$Óºí‰Fn®; ŠæHîÀ²‹(ÍZ£ÑB|Ùþ&]0BŒà4(4ô†aÄb{C3š ʈ^.®¹¹•xC-¸êê¦Õ«³»<}ú°W^™Ž&'¦ùå—¿ú曂éÓ‡efÎÄ7OwEëÅÅ5ׯ×ÐäæºCzztX˜ÀÙa‚#Y£Êt Ë¡è(48;¤éÇ^uu³V«'¿ÍhVVÀ,â.N«Õ_¼(6j¡ÿáÃcGŠ92~À€HüxÒ Æ]»~~㣾™™3§LIsvDÐ-Ž»¼~ýÁææ¶+¦.^<-ŒÜžRÙvíZ5{Ñ.)©e†ÖRRÂSRÂèè’ÎÏÖ ”f³`˜ B‰€c¡ÐÐ%fŸah¤àNØ¡òòÊssËËËëu:ƒ¯¯gF†ZpçÏW®Y³¿¸¸öùç'=ûì$oogGÝH£Ñ½ûîñ·ß>ž’–•5'##ÖÙAÏQ*5×®U™ÕŸÔÔp¶ÉCJJº%º1[ÓpJ$r£‘!6¦áLHúûc®\€Û†B@‡èõF™L!7^¿^S\\c6Ý)¸ºº–³goÐ>×®U·´`¨…Þ­½]ÿᇧ–-›hùOr¹zÓ¦¯0þhÓï“?ýTüè£ïÍœ™ñÎ; œ!ô$•ªýÊ™YÝ¡_?ïþ¨;$'‡q¹¨;ô!Z­¾ººÙ¬á*-CÐ'˜Þ²1P€ Ph€¾Ë`0J¥ [ø|nTT:>¸Ÿöv}AÁoC-äå•WV6BBCû ƒ¡ÜÌöí'¶lù†aHttð©S«éüg×®U¯Y“}î\ÅOŒ]¹ò>ë¾L©lÛ¶í»Ý»92>+k6í®¯ÕêÇË’JY»ö«ÍaÀí©Õí—/ËØ¡%/^ët¯#ÑÀ êêZ$¹DÒÈNÀ)‘È¥RŠËÃ$‰DÁ11Á±±ýéä†ú OhiÑ”—×›5R¨ªjÒé „À'.®¿YLJ¨¨ >7îÀhdJJjóòÊssË ¥t¨ÀçÎ;Ø"0Ô‚û9räâ3Ï|B?ãø|îóÏO^ºtâë¯ÿ÷“ON§§‹²²æ åìÁ%\º$[³fa¡táÂ1«WO{÷Ýï¼ómÂÆápvìXˆ6/ ÓÊÊêÙ¶o­Vïç畘(¤ƒJ¦§‹† ‹¡ÕL蛆¡.hÝA,–K¥r±X^Uõ[“XOZq`ï6é´å˜  Ü àVŒFF"±9…$)ô"--šþó»øøÐE‹ÆtbõÊÊFZV(,”\½Z¥Rµ{zò‡Æ/Q}ÄÕ«Õ÷ßÿV{»žýŒãñ8ááMM­+VL}òÉñ(#‚)½ÞøÁ§þùÏï‚‚üª«ÃoiÃá//o¿ýûÀÎ\ŠYÝ¡°PÒÞ®÷ðàÅLJ²õë¡Ccº2ÆÇªU_.^<‰ç¬ÎÁÉNáåÅ0»;Eÿ p(4€#iµú+ç«Tíeeu·ÕH!22í]Ã0_}•¿aÃA…¢uÆŒáÛ·/ìÈZ …úܹ µ„ÆFÕ”)o44´Ð‘(>Ÿä{ôèß##ƒœ¸²ª*Å}÷½¥P´êõv!ŸÏí߿߱c+BBü¸2½ÞxãFûTT$Õhtfu‡ôôèŽOjÓÒ¢0`-—K-»råTüâ–ÌF ´œ¹ÌlP0ú@$ 걟I”J zBW ÐŽqþ|åÖ­ÿ3çŽGéØ-£‘BŸríZõŠ_\¸PI¯LQQAyy/[}¦F££wu´O™)4´ßèщ#GƧ§‹ŒÄ„Ø}Ng˜9óÂB ­9šâp8ï¾»`ÆŒN \ßW_å?÷ܧ–·E¼ôô胟C±:¬îpé’¬­MËçs„lÝaÈ‘ÍógÎܘ9óBŸÏõõõ\·nú¼y£Ñ ¯Ðht´ †é}oIIm[›–âáÁ‹Œ 4»ï‹ë/ø8<’;îxeÒ¤Aÿ÷S"#¾qè Ph€®*(lÝúÍ?Âyá…{W¬˜ÚéMµ¶jKKkÍ)TW7ÓÁu︸P4RpWr¹zãÆ¯Ìçr9´1!!„Ãámö#„Ì¥KR:ñda¡´¬¬N¯7øŽ¡€µfMöž=¿²)dŠÃáúþúëºî¸!ƒÞN©l»ë®×ššZ­ÞñùÜùóÿ”•5«çƒÞÎ`0––þQw¸|YÖÚªåñ¸‰‰Ô™vÔß±ãdVÖ7´ZÊá‡#mÙ2{âÄÎ{àdVû_H$r£ÑæœÉÉavêYöµ¶j““WB¸\΂úÛß&ã n Ðy¿þzãµ×ŽäçWòxƒár9Ó§ï½Ço¹"Ã0b±ÍF <W$B#…>Ähd>úè§üã¨F£5mëN­\9Íh4\¼(¾xQÒØ¨âr9‰‰ÂáÃc†><&-- •&`}ùeÞßÿþ™5‡³dÉ„êÁ  wØ´éë;OÙ¹)âp8ÿú×Ü9sÜjú ÚÚfvÍsç* 5!$,LÀv²øâ‹³ß‰+„Âãq ã¤Iƒ23gÆÆ†8/vp-V'à,/¯oiÑÐ'Xí|ˉZ¯^­ž4éô1ŸÏe2cÆð+îCúAÇ¡Ðqñ¢83óÈ/¿”òù\Óo†C†ˆ¾ÿþEÓgj4ºââ³úkMMs{;)!„äçW®ZµÿêÕ*†!„˜_Ž<=ù\.'&&$=]4jTÂÈ‘ñ ¡H°êüùʇ~[¯7Z&!„Ïç F†abcûûíßh3J.WO›ö–XÜÈårx<®e¿B‡Cø|îW_-1"¶ç#w¥ÓJJjéÈ……Ò+WªÚÚ´¾¾ž­­ZË'{xðŒFæ‰'Æ®^= #‚V›?Èd¿ÍáéɈ0~2>>Ô´Ãé÷ß_Z¼ø#ÓÏSš~=6êŧ†‡£uÜ p{ %›7>}º”Ïç™—Eùû{½ûîã ì¥M,n¤5…³‚BllHDDà-Kªà®Ø¾<Dz!ÅápÆKÞ·oiǽNeeã½÷¾¡Rµ³j|>Ïh4L@€ÏŸþ”|×]‰éé¢Aƒ¢üýqwÖ©TíW®È ¥¿þzã—_Jš›Û¸\—Ëe?ì¸\ŽŸŸ÷ÿþ÷"~Óƒn¢× %Ó§ÿËÎí9Ç òݰáÁÙ³ïàpp¥Ñèè¹XÜ(Ë++%’ÆÊÊFZÕâñ¸‘‘11Á11ýcb‚+*¿úêœVk~«O[7Ì{ç‹/þ)À¾› mmm …‰рËòññ‘ÉZ_ý¿'N\åñ¸–%–¿¿wB‚•F z½Ù¬ï¿¿ºmÛ‰ææ¶[Ö:¼Þáùøt©£¾B¡hkksT<ÐííúÅ‹÷×Ñ6V'66hèPQzzDZZD||HD Yí@ƒ±¼\~éRUQQuA´²RÁ0 M°”á®]ó»2s!ô°ÈÈÈ.n¡ªªÊ!‘tDAìÉ'?³ÿ‡0 5*ö¥—&ÇÆ÷L`à–"##T´è`Z}ho×+j«Í»!|>B[7 ªž \šéõö¦BC]]Ý•+Wœ¸´ººÖo¿­8~¼”Ãá 6K Ô÷ß¿0dH´µ »€Bôzãþý׎/omÕB8ŸÏaF¯·Yqxûí{CBôe¶ÎŽùóßÏɹf]‡ãíͿトiÓ’|}ûâÇ.X2Í(+9ÑõË1¸“Ó§Kÿõ¯Ï*+›†ñð „pm}øB8"Ë­(dB&OžHQ(Ô‰œ *•Ê++Ë˪ª´ž‡ÏÓ“o4ÛÚtÞÞ‘wß=Ô8ê–1444--Í!›‚NkmÕ&% Žîë¿é!«{’D" ñ7&\“äèz!¯ƒ¾úªÊhd8âåÅ7 x‹" C„ññýãâúÇÇ÷õööèÀ-Ù?;ÊËì¬Ëãq9¢×ÛÛõyyUAІ wz† p–…âܘ1I;wÎÒëÞÞ¡……’¼¼ò_~¹QQQo42´Ý”i7 >Ÿ_QaïÂÀ ò òKO7/KÕÖ6‹År‰DNûŠÅUUMN‰z__O_ß¾^e€†ÂtŸ¢"IHˆBBÿ¤¤°„„PÔ çŒLvSg¶²Àãq‡ edÄÑR…?ÿ|jРA¨2€% Cø|njjxjj8Ù«©©µ @RP ),”äçWÖÔ4s8Ä×׫­M+Ë,ônaaaa#GÆ;;€žvô苜«¾^©Ó褪„à`ÿŒŒØ#b‡6,&0óÍC‡àBè;aBê„ ©ôÏÆF­;\¼(nk³2!ܪ àtuu-ãǧC+ ˜Ì:×2p€ÿ‰Nœ8ÐÙ@ç "Ú·ïgG½^Ÿ˜ñ z à0½¾Ð ‹/^|˧•––r8Ó¦«_¸pÏçïß¿Ÿ]~èÐ!OOÏ¢¢"B‡ÃINNfÆtƒ÷Ýw‡Ã)--¥O L©Tª+VÄÇÇûøø$''oܸQ£Ñt$ÂN³†»²< Ùôpw}Ww›™qqq .tÈ4õjµzåÊ•C‡íׯßÈ‘#·lÙ¢×ëÍž³oß>Ž5ÙÙÙ]Ù¶6{ñâÅ®½§›ô©|&]Ki†a,XàïïßvŠ÷Ò‘‹0!D­V¯ZµjèСþþþ£FÊÊÊ¢ ߉ýf5{õNo©O%v/ºPS›7oæp8[·ne—عÜ9äÚÞÅ·i¶zG>H×>•º~\¬nç΋ŽèôÛÇ©Ñ[ô–³£›n°{@gT¯/4|ýõ×3f̰úOeeeýû÷§_zé%[«>|íڵ˗/ojj"„477/[¶lãÆC† ¡O«¨¨(((`×R(§N²ØóÏ?ŸŸŸàÀ±Xüá‡:thåÊ•fQ™²!XÕ¹ÝE7»®­cᦙùË/¿TWWK¥Ò]»v)•Ê#FÐL³ª#Qµ´´ÜqÇyyy¯¿þúùóç׬Y³wïÞ)S¦ Ó§=ôÐCÕÕÕÕÕÕ¿üò !¤úwcÆŒéJ²ÙÚlZZZ§· ]I骪ª½{÷:j®øÖ‘‹0Mø³gÏnݺ5??õêÕ{öì¹÷Þ{ Cçö=%M9öMuëµ¥é]j†aöíÛóÅ_°O°¹»­k»UüèïàçÕéÈq¯Òu8/nKGnæíéыô–³£›n°Ýc¢¶¶6''‡éUî¿ÿþÖÖV«ÿTRRbö-²«···‡2uêÔµkײkíÞ½û¾ûî#„”””Ð'ЦϜ9Ãþùã?ÆÄÄØŠÊ!¬†á—.]ºtéR7ÒMÙÅîÏŽìX³lé¾caúZfÇÅh4Ž?þå—_¶µbG¢Z±bŸqãôz=»D¥RÅÅÅíܹ³ÓÛì„nÝÝ—Ï ÃäääÔÖÖvq#9/,u"¥»õ@8„;r¶•ð;vì°|‰[înM-³`zòÕÝ,«-×í¦¯UPPÀápŽ;F¹~ýºÙ3-øÝk{w0ªãŸ ÎÜêí¾óÂQ÷9¿Ìà¼èˆ®¿Sœ¶àì脞|­îÐÃuÛ->¥P(!ŸþyJJŠZ­&„ètº•+W†…… …•+Wêt:Ú‚åøñã111'OžÜ¸qcLLLhhèÂ… Ùê åZ„#Gޤ§§{{{'$$|úé§„½^ouõ††???ÓÖ2ìãÑ£GBÂÃɆ7ìê„OOÏÝ»wôÑGYYY»víÚ½{·‡‡ûÌ9sæ|ùå—Ìï½'²³³gÏžmG ‚íÛ·766Ò?Ç_YYi5*º‹vïÞÍFÈápöîÝ;pàÀàààüㄆavìØ1hÐ @0qâÄo¾ùÆjËœÿýïIIIAAAYYYìö:”šš* —/_ÞÞÞnu¡ý÷Òc¬f—Ñh|çwد_¿»îº+''‡6û±Ó6é›o¾>|¸¯¯oDDÛØÏ2[L±‘ç£>8p`hhèÖ­[?ýôÓøøø€€€ 6е,Ó•ÜœZf8Î3Ï<óí·ßÚ µ#QíÙ³çå—_æñxìfýüüV®\¹gÏÓ¤úù短îÓ½wË7h5«–/_þä“OÒÇ*•Ê××÷Â… ¶ò­#›ííùLz*¥m]U~þùg«+vâ ßu×]o½õ!D.—s¹Ü+VB CPPM榦¦'žx¢ÿþ"‘hÅŠÆj*2 ³bÅŠaÆ544_„­&üªU«öîÝÛ‰ýv[ËV‚Ù¿ÉÉÉÄä,6ÓÛÛ]/Ôûöí›0aÂäÉ“ `úãm™]Û-ã´z's[WcûùÜéÏ…[Fnõ^eÆŒ/¼ð]¥½½½X®n0¶mÛ–’’Ò¯_¿1cÆœ={ÖêÄyA¹ñyaõ^ý–ŸY¶næ-/ÂÄÚý3Á©áÜõì°Ôõlïßyxxt"Û]îîÚ~ª… .Z´¨¦¦&,,ììÙ³tá믿>kÖ,±X\XX8bĈիWÓÏ}÷ÝwâĉM›6¥¥¥Ýyç+V¬°µ–J¥òòòÚ±cGuuõ‡~ÈçóU*Õ¶mÛ¬®þÑG}úé§ÌÍõ$«50« ÙÕY«W¯&„dffš.$„\»v-<<üÂ… Ã455ùúúÒ»d;-¾ÿþû¨¨(//¯)S¦lÛ¶­¢¢Â,ö1ÝE´;ûгgÏV(;wî$„466îܹ3**ê»ï¾«¯¯?vìXRR±Võ|à”JåèÉ@·ï½÷Ÿ9s&))iÓ¦MVÚ?â=Ù¢Á2»Þÿ}¡PxðàÁªªªo¿ýV$Ñnv@ÙJ¥ÒÓÓó/ù‹T*ݳg!¤®®Ž±–-feHËld†2wî\¥RùÁByä¥RùþûïÓ=l5]™›SË2=òòòm…z˨蕺¾¾Þl×>}:,,Ì4©h0–ïÔôOûoÐÖn±ºÙü1$$D§Ó1 ³gÏž´´4£Ñh+ßìl– ¬›ò™éÙß~{2¥™›¯*ÕÕÕVWìÄAõÕWï¿ÿ~†a:$FŒÁ0̹sç¼½½Õj5Ã0óçÏŸ4iÒ7 ÌÓë›Ñhd« 4ÚŽ\„m%ü¯¿þ܉ýF¹xñbËÍl,[ Ö‘÷k5º/±Ý5«{æBm4ãããßÿ}†aÖ­[—––fö–oùË-crm·§Õ;™Ž_í^ÜÖçÂíFn5·isz£ÑÈ0Ì¡C‡"##éÅßrõ7ß|Ó47"##{ò¦'³ÅyÁØ=/ìÜ–Ûù̲ºcí"ÌX»Æ©aÎŽ®œT7Ý`ÆGyä™gž¡v0Ûío“ª'3ª3……B!‰ÒÓÓM_rÀ€ÕÕÕôñ±cdž FC,,,d&55õàÁƒô_¯\¹Â>¶\K.—{xx¼ñÆ …Âh4¶´´ [«Ïš5K.—3-4°«SF£ñ¡‡âñx ,¸iRRRòì³Ï®Y³†a˜={öL™2…1¹˜Z^˜(½^æÌ™W_}uðàÁ<oïÞ½V£¢»È,5éÐjµtユ«SŸ}ö™Õ‹ÑÉ“'†¡½ÎJJJL·Ï0Ì_|‘””du¡eð¦z²Ð`™]iii»wïfŸðñÇÛ¿µ··_½zU¥R †ü‘=:–Ùbvu°ÌF†a!ùùùÌïÇÂôqII‰ÕtenN-;Ÿ[VC½eTv¾wõïßßìøRö¯ƒvÞ ­Ýbu³z½><<üøñã ÃL›6mëÖ­ÌÍIΘä›Í²uS>3=û•¬'Sš¹y‡ÛZ±ýܹsþþþZ­ö…^X»v­‡‡‡B¡Ø¶mÛ´iÓèº<Ý4;4ôñªU«ÈÍo;r¦ ÏÖ&X¿üò ›ð·µßˆ5¶–ÕëàûµšÝ—ØîšÕ=s¡>sæ ŸÏ§ivþüyBHQQ‘é[¾ÝBƒeœVïd:~5¶ÿyq[Ÿ ·¹ÕÜV«Õ~~~¹¹¹ Ã<öØcôÉêê)))–¹ag÷=ùU çÓÙBƒÏ,«kY½3ÖîŸqjسƒéÂÙAuÓ öŽ;F­Ñh˜ÛÉvûÛd£êÉŒêÌ`K–,¹|ùòÒ¥KÙ…tÈÍ)S¦”——Óå „TVVÒ¦¤„>üðÃ¶Ö ÊÉÉ9sæŒH$š0aÂO?ýÄår­®®R©t:]PPYxŒûH3–«ïÝ»÷äÉ“'NœÈÎÎ>tèÙóçÌ™³ÿ~†a:ÒoB­VïÛ·rçwnذ¡°°píÚµô&ÛÝEfh]“m9|ãÆÁƒ³ÿ:hÐ «›¢kq¹7Vv× 0@*•ÚYè ,³«¬¬lذaìÒÓÓíoÁÓÓ³¸¸xêÔ©»wï¦ me‹)[9ܯ_?òû±0}L±š®·|­’’’ÄÄD[¡Þ2ªÀÀÀððpË).^¼˜‘‘A[M*[ì¼A;»ÅÇ›9sæÁƒ~øá‡ùóç³ÿd™oÙ¬ä3qRJÓ°“`·{Їîçç———wêÔ©|pøðá§NÊÉɹÿþû !µµµƒf5!$))‰= ¦©˜——w÷ÝwoÙ²ÅÖ[°z¶“ðöóÜÎÛ·, ³¯eùéF,¬ƒï×7Hl÷»PïÛ·O¯×÷ïߟÃáÐ i'Z‰³×v«qÚº2eç]Øÿ¼èâç‚ýÈ­®îëëûÐCegg«Õê#Gް“X®.‘H:’8/H8/Xf÷ê·üÌ2cç"lvÿŒSÃE¸ßÙÑ»Á.,,ÌÊÊÊÎÎöòò"·“ív¶iª'3ª3…‰DòÎ;ïLž<ùÅ_dÒº ½cS(gΜ¡Ë雌Œ¬¨¨ K.^¼øÚk¯ÙZ«­­Íh4îß¿_.—?ùä“Ó§O—ËåVWÿî»ï¦Nj«F&“uä]˜­^UUµ|ùòmÛ¶?~ãÆO?ý4;¼5vìØ–––Ÿþùرc¶æ¹`1 3oÞ«ŸnÄ"Á:ø~mqƒÄv³ µÁ`øâ‹/Þ|óM¶+Í /¼ðÅ_tðw ÊôÚn5N[7BtË|îôçÂ-#·µúܹs³³³>œ‘‘ÁÞZ®בÜÀyAúÀyAlÜ«ßîg–‹°Ùý3Á©áÜììp«©TªùóçüñÇlJßV¶»Üݵý– ÃäÉ“7oÞ,—ËÃÃÃ>L—/_¾|öìÙtÈ;ï¼ó¹çž3m=²qãÆôôô¢¢¢¢¢¢1cÆ<õÔS¶ÖjkkóööÎÎή¯¯ÿÏþãííÝÖÖfuõ Èd2º:Ïí‡~ØÜÜL%`~o¾B;ßZ6§1]Ýh4>ðÀ&L  c´Zmzzúܹsé¿’ßþZ¶lÙÀï¹ç³åÄb²4†a-Z”’’òÍ7ßܸqãôéÓ£GþÛßþf+*Æ¢± ›%ôñÛo¿-‰¾ÿþû†††ãǧ¦¦r8†avîÜÙÔÔdk-ºÍ{î¹§¤¤$77799ùå—_¶ºÐþAï±®V³kË–-B¡ð믿®®®>zôèöQQ¥0IDAT-;q) ‡sôèQµZM[‘äçç›n³UØîÙ–ÙÈXÛ«¦­¦«ék1&é!•JOž<ùÐC‰D"zÔ¬†Ú‘¨š››SSS'L˜pôèÑââ⃦¥¥3F£ÑX¶cdnÕ²Ëδ€ÕÍ2 £×ë…BaXXØ®]»LŸc™oV7Û3ùÌô`#óNi³ÇVWd:{Ð÷ïßïïïO;Ž;vÌßßß´¿î¼yó&MšTVVVTT”––Æ˨6nܘ’’bv¦Ø¿Ó„¿çž{¾ûî»ëׯ¯]»–" ÛÛÛow¿1Ö®Øô¢mõ`ÙJ°Ž¼_ö,î™Äv׬î uNNÇ3Ý{çÎcÆ,–k»Õ8­ÞÉtüjlçó‚>­ãŸ ·¹­s™t—œœlÚþÙrõÿ÷ÿþŸin$$$Ð-ôÌyÑcÃq^°·•]vîÕ麷¼)2}²åEØÖ[Æ©a Îú„ÎÝÞ›½¨åŸ»×Z¸pá¿þõ/³Wéx¶;÷îÚc4¼ýöÛC‡¥³Ž}õÕW´³ŠR©\¼xqPPPHHÈ’%KÔjµé¾Öh4+V¬ˆŒŒ ˜;w®B¡ Ë-×bæ‹/¾HLLôôô0`À¡C‡¬®®Õjiß`Vfff```bb"mpË0ŒN§;v¬¿¿?c‘|f«ïÞ½ÛËËË´çpnn.—ËÍÎÎ6=$'Ož$„¼û‡‡±VÙeF¯×oÚ´)==ÝÇÇ'..^jkk³s«Ô4 o½õVbbb@@ÀÔ©S:jõ™¦é6?øàƒØØØþýû?ÿüómmmVÚ?è=Vh°š]Z­öÕW_÷÷÷¿ë®»èøv®D üùæ›ÁÁÁÑÑÑÛ·oŸ;wnPPéáfŸiz,ÙxËË„YºZf¦ibDGGÏŸ?ßôrlªP(ìHT èTª_|qðàÁ¾¾¾iii™™™tºËO}Ë…·u´€­×zæ™g|||”J¥és,ó­{ÛQùÌôàW²NiÆâ X&ÓÙƒÞÔÔÄçóé0jµÚÓÓsÕªUì ÉåòÇ<$$$""âïÿ;{h,£jkkKIIY»vmÇ/ÂŒIÂ{{{'&&®[·n„ >úèmí7öí[½h[=X¶Ìþû5;‹{&±Ý5«{àBýôÓOß{ヲïÑh4&&&¾ôÒK–ñ°ì_Û-ã´z#t[WcË|6‹ªƒŸ ·¹+Ì’%KüýýÙ‡­®®×ë·mÛ–””äççw×]wÑ_Ønù~u^ôØW)œìÆíd—å½ú-?³lÝ6[^„í¼eœVáì OèÄÙaù¢–Þò%læééée‚¹lwîݵeFq“󪮮îÊ•+wß}7óÍ7ßDGG:”þyàÀÌÌÌ .Ø_«´´499™¹ùÒiu¡}´9SZZÚmF}GeW'⇞´nÝºŠŠŠ½{÷Ò?x¼•Ï„“'O4H(v%‡œ)ÝYZ­6??ŸÎbÕ}zàè8*±‘ÕàNu^8êÞÃ!çÎ è:Þ áìÒÍÕ™1 ç.X° ??¿µµõÌ™36løë_ÿêì n¢ÑhÊÊÊ>ú裧žzÊÙ±€ûóôôìî*tßÙ@‡¬ZµªµµuÆŒõõõ ùË_ž~úé[®%,Ÿfu!@×={öá‡^ºt©i-Óù†|†ž× †Ä°„óÀ*œàXÝšQè:·æR]'ºÎ¥™8²À’K5p)8;À±Ðuº à0(4€Ã ÐƒB8Œ•é-«ªªz>peÆÛÛÛ!›Bv;Ñh4Hip3Èjp'*•ÊQ›jjjÒëõŽÚ€ÓáìDzÌ(+…†âââ zG]àNZZZZZZœ€#!«¬BÀœ`‡agÇnc4€Ã ÐƒB8 à0ÿ'OÕ\°óIEND®B`‚XQilla-2.3.0/docs/simple-api/classxercesc_1_1XMLFormatTarget__inherit__graph.map0000644000151400015140000000125411653571064024550 00000000000000 XQilla-2.3.0/docs/simple-api/XercesConfiguration_8hpp.html0000644000151400015140000000725511653571064020442 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

XercesConfiguration.hpp File Reference

#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/simple-api/XQillaConfiguration.hpp>
#include <xqilla/items/Node.hpp>
#include <xqilla/simple-api/XQillaConfiguration.hpp>
Include dependency graph for XercesConfiguration.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  XercesConfiguration

Namespaces

namespace  xercesc
XQilla-2.3.0/docs/simple-api/inherit_graph_10.md50000644000151400015140000000004011653571063016346 000000000000006a6b9dca6d1746777723fa972e3bb187XQilla-2.3.0/docs/simple-api/classxercesc_1_1XMLDeleter-members.html0000644000151400015140000000524011653571063022151 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

xercesc::XMLDeleter Member List

This is the complete list of members for xercesc::XMLDeleter, including all inherited members.
XMLDeleter()xercesc::XMLDeleter [inline, protected]
~XMLDeleter()xercesc::XMLDeleter [inline, virtual]
XQilla-2.3.0/docs/simple-api/classAutoRelease.html0000644000151400015140000002431411653571063016753 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

AutoRelease< TYPE > Class Template Reference

#include <XPath2MemoryManager.hpp>

List of all members.

Public Member Functions

 AutoRelease (TYPE *p)
 ~AutoRelease ()
TYPE & operator* () const
TYPE * operator-> () const
 operator TYPE * () const
TYPE * get () const
TYPE * adopt ()
TYPE * swap (TYPE *p)
void set (TYPE *p)

template<class TYPE>
class AutoRelease< TYPE >


Constructor & Destructor Documentation

template<class TYPE>
AutoRelease< TYPE >::AutoRelease ( TYPE *  p) [inline]
template<class TYPE>
AutoRelease< TYPE >::~AutoRelease ( ) [inline]

Member Function Documentation

template<class TYPE>
TYPE* AutoRelease< TYPE >::adopt ( ) [inline]
template<class TYPE>
TYPE* AutoRelease< TYPE >::get ( ) const [inline]
template<class TYPE>
AutoRelease< TYPE >::operator TYPE * ( ) const [inline]
template<class TYPE>
TYPE& AutoRelease< TYPE >::operator* ( ) const [inline]
template<class TYPE>
TYPE* AutoRelease< TYPE >::operator-> ( ) const [inline]
template<class TYPE>
void AutoRelease< TYPE >::set ( TYPE *  p) [inline]
template<class TYPE>
TYPE* AutoRelease< TYPE >::swap ( TYPE *  p) [inline]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/inherit_graph_30.md50000644000151400015140000000004011653571063016350 000000000000004d37a33954db98ca5e578ffb88a1051dXQilla-2.3.0/docs/simple-api/classNumeric__inherit__graph.md50000644000151400015140000000004011653571063021054 0000000000000025d665f503494b3e3ffc109467d60dc5XQilla-2.3.0/docs/simple-api/ATDateTimeOrDerived_8hpp__dep__incl.map0000644000151400015140000000041611653571064022142 00000000000000 XQilla-2.3.0/docs/simple-api/classScope-members.html0000644000151400015140000001551711653571063017250 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

Scope< TYPE > Member List

This is the complete list of members for Scope< TYPE >, including all inherited members.
clear()Scope< TYPE >
get(unsigned int nsID, const XMLCh *name)Scope< TYPE >
getNext()Scope< TYPE >
getType() const Scope< TYPE >
getVars() const Scope< TYPE >
GLOBAL_SCOPE enum valueScope< TYPE >
LOCAL_SCOPE enum valueScope< TYPE >
LOGICAL_BLOCK_SCOPE enum valueScope< TYPE >
operator delete(void *p)xercesc::XMemory
operator delete(void *p, MemoryManager *memMgr)xercesc::XMemory
operator delete(void *p, void *ptr)xercesc::XMemory
operator new(size_t size)xercesc::XMemory
operator new(size_t size, MemoryManager *memMgr)xercesc::XMemory
operator new(size_t size, void *ptr)xercesc::XMemory
put(unsigned int nsID, const XMLCh *name, VarHashEntry< TYPE > *value)Scope< TYPE >
remove(unsigned int nsID, const XMLCh *name)Scope< TYPE >
Scope(XPath2MemoryManager *memMgr, Type type)Scope< TYPE >
setNext(Scope *next)Scope< TYPE >
Type enum nameScope< TYPE >
VarHash typedefScope< TYPE >
XMemory()xercesc::XMemory [inline, protected]
~Scope()Scope< TYPE >
XQilla-2.3.0/docs/simple-api/SequenceBuilder_8hpp__incl.md50000644000151400015140000000004011653571063020405 00000000000000983bb4a1de4b63ce04d509f04378ecfaXQilla-2.3.0/docs/simple-api/classXPath2MemoryManager__inherit__graph.png0000644000151400015140000001101511653571064023350 00000000000000‰PNG  IHDR¸ur'¼úbKGDÿÿÿ ½§“ÂIDATxœíyPSWûÇOƒ5bØb5€JÜF;Š€¸ TEÙ”EªŽ- ¶P©EWª ¨6•ÅŽt(µ²”ú‹Bq !²‘„Üß×7Æ$„+Ò×÷|þ:÷œçÜó}r¾9wÉM‚C@ #oÿ Q ˜€F`‚ ¢âÆíÛ·“’’ÆK D§ˆwrr’o¾e”/^”——{{{k]D·ÈÏÏß¹s§b Q5èÊ•+ÚÒÑQp8œR |ˆÃá***¦OŸ^UUuðàÁéÓ§›˜˜ö÷÷£{Sí(--upp000 ÑhYYY©Tª¶;:„jàíí}åÊù‚_PPàåå%oU;.‡ËÌÌ´³³311INNÎÊÊš9s&™LNHH@{õ÷÷oß¾ÝØØxÚ´iÑÑÑ"‘H1ÇE‹…††¢‘<D"555asíÚµ… ’H$*•šœœŒVâp¸œœ;;»©S§;vl¸HAètú'Ÿ|2yòä+V\»v }4OGMMÍ»Î;@¸|ù²RZƒ‚‚º»»ÍÌÌîܹƒV=zÔÓÓóñãÇL&sÑ¢Eqqq, °víÚÊÊÊÄÄĹsç2™ÌÖÖÖO?ý4::z¸^<o„ t:Ífgdd‰DwüøqµÝûûû †jð×_™››755¡M$éåË—‹¥v\´—¯¯/—ËMOOlÙ²…Ë妥¥^¾|‰ ˆŸŸŸ««ë£G˜Læ¼yós¼~ý:…B‘H$‚dggÏ;W&“(†Ëåêë뇄„<}ú4;;ðÏ?ÿ ½¼¼¼8ƒÁôööªd0–––¿ýö[OOÏÍ›7mllÐÔ<<Oó._¾üVÍ(ŒÂáp¦M›æàà˜˜(¯œ3g›ÍFË7oÞ\°`ªŒÉd"2{ö좢"´õþýûò²j¯¾¾>==½'Np8™L6000444\w y²X¬¨¨¨ ’½jÕ*y½ÚqÑÖÆÆFAÄb±R™Åb‰ÅbÐÖÖ†ö***²±±QÌQ*•š››WTT ²nݺääd,bÛÛÛy<ÞÐÐÐíÛ·å ·nÝR 6rÞ¼y999òÄsssÑÔ<#26FAäСCáÅ‹òÅ…ŠL&£ÊÄb1ÚÚÚÚªºÕ^‚ÔÔÔxyy:::^¿~]Cw y²X¬ªª*™Læáá‘––†(Eí¸òVµå'Ož„B!ZÉd2 sDd×®]QQQ===úúúOž<Á(¦¸¸xÙ²e ,V4ʃ”ĨFNœ8±¥¥Ežxss3:ƒš§Ë 8Fyüø±©©éš5küýýå•Ó¦M“¿²§½½U†ÖÐh´ÒÒR´ÜÔÔ”””4\/@P]] ÈàààÅ‹ BooïpÝ5äÉb±¤R©™™Yuuµ¡¡!êiù+®:.2’QÐåÞ½{håÕ«W­­­sDäÖ­[©©©+V¬À(F L˜0¡¸¸X&“ …BE£( P9gΜÜÜ\ùXyyy¨ÍÓ1"ªFyç“Y™L²{÷î¼¼¼òòòÒÒR´~óæÍèêêb2™nnn©©©Š½¾ýöÛ¶¶¶¶¶¶/¿ü²««k¸^8nõêÕ………\.W,ëéé‘H¤áº¿zõ =ŸP*£OOÏððð¥K—ššš*6iV«===Ÿ={ötvv¶µµÅÇÇûùù)Å8::J¥ÒC‡(5 'fppP,ëëë …ÂƒÔ P{ãÆÞÞ^ô\=™E‚# è,+ÊÙ³gçÏŸ®`W¯^¥R©}}}‚p¹Üàà`### …Æçó-,‰¢££-,,Èd²¯¯/‡ÃAëU{¡2¬­­õõõçÌ™S\\¬¡»âŠeðŸ·cUU 55U©^í¸@㊂ H___@@…B¡R©ûöí …ªoÓˆˆˆ‰'r¹\Åw§f1§Nš:uª••Õ¹sç|}}MMM‡ 944”’’bmmM&“ÝÜÜŠ‹‹MLLFœŽcuŽŽo¾ùfÛ¶mZ®´´´¹¹Y¾YPP€ž˜¿'ªFù`o¸i‘HÔÑÑ‘™™©ôlØ¿ “Éô÷÷ollüñGBBÂŽ;þÔ<áwîÜÙ´iSdd¤³³³Ö===4-$$$<<üßeÌprrêëëÓò D"1))I ÄÃCÐ(L@£@0Á4 Ð(Ê<}ÊyöŒ3Þ*t5—Ç«V­Ò¾ÝáåKc€±ñËñ¢[¼e+++øÅ㎠‡³µo!㉷··•••b ?Í¥@{ûsW×《ŠX;;êxËÑ!à9Ê[””4‰x"‘PZÚ<ÞZt h”7 ’—wG*•I¥CyyÀµVh”7Ô×ÿýÏ?\´üâ·¡áïq•£[@£¼á×_õôhYOpõjÓøêÑ) Q^#•ÊŠŠ$’×;ÉPQQ½T*_Uº4ÊkjjþïÕ+‘bÍ«W¢ÚZÖxéÑ5 Q^sõj‘øÖ«A$⊊ÆK®"‘äÚµ©ô­›lR©ìÚµ‘H2^ªt h(/¿/IUëE"IEÅ}íëÑA Q °°ž@PþD€+,„G Q¢ÊÊvµ8R©¬¢â>7¨}Uº4 (+k•_«"‘ ••1µ©G7 ‡Ïå¾¹0þöÛ"ÀáÛå5“'Žƒ2]~]*úÀÐPðñÇ”ñS¤‹ÀCÐ(L@£@0Á4 Ð(L@£@0Á4 Ð(L@£@0Á4 Ð(L@£@0Á4 Ð(L@£@0Á4 Ð(L@£@0Á4 Ð(L@£@0Á4 Ð(L@£@0ÁÄ¿¸tá­IÑò󟼽-Ç[ˆ¶ ÓÐ:‚Qp85¿•øaC CC¯Æ[ˆ¶Ñì„‘šëàÁƒÚüyˆö©ªªúþûï5ÇÀs& Q ˜€F`‚ h& Q ˜x_£°X,WWתª*yMmmíªU«:::. ¸»»8p€Ífcܳ‹‹Ë³gÏ0Fúûû+ÝØ¿?ö=Œ!:%f y_£ØÚÚúûûŸ={–Çãø|~JJJPPFC~úé§Â‚‚‚Ó§O#røðáávÅf³7nܨy8>ŸäÈ//¯ 6$%%q¹¯ÿT´»»ûÑ£Gò°–––÷LmÔ蔘±b =d29-- pá …²uëVyë”)S¦NJ¡Plll¢££ïÝ»'ÔîG&“É'~8:ÔÓÓ“’’B§Ó¹\nJJ Z¿xñbÅUí÷ß_°`Á{æ5jtJÌX1F!‰qqqeee999eeeqqqD¢ú¾x<044¨««Û¹s§›››§§gnn.`×®]€Í›ßü­E}}½ŸŸßúõësrrR©ôîÝ»ÁÁÁVVV!!!þù'éìì\UU%_ðoß¾íää$ßT*¥Óé›6mÚ´iN—J¥—²²²   ÜÜÜ7nøúúº»»gff¢½x<^rròƽ½½ÏŸ?/‹Ÿ={æââÒØØèããvìØ14R(º¹¹±X,,bTGÅ”——mذáÒ¥KÃE"RRR²}ûvww÷¯¾úª®®ÎÅÅEm‚ŠR[[[ß}VUæîýw˜5k–Ozzz``àÌ™3›D"‘P(ÏŸ?ÿñÇgÏžýÑG ‚ï¾ûÎÖÖ6;;;22’Á`ô÷÷Ÿ;wPTT$ï{ç΃›žžÎårñx|VVÖܹsÑÖ¦¦&*•Š–çÍ›' ÑŸÏç766~þùçòý°Ùì´´´“'O666þüóÏh}CCÃùóçàF]]]FFFdddVVº°>}º§§‡N§=zôîÝ»yyyh¯+W®ÄÅÅ…††ÖÖÖ¢¦¯­­¥R©666#ŠQ›8ÚTSS“ššž––600 6òúõëYYYQQQ¹¹¹~~~©©©šD¥ÚÚÚ¾÷ ‘QéêêÂãñ?VjÚ±cǺuëÜÝ݃‚‚¸\nBB@__?##cÏž= ÅÔÔÀçóUwëããC"‘–-[Àãñ–––A \¸p¡¸¸xÿþý¯ÓÀã—/_Ž.øuuuööö“'O–溺¬lïÞ½¦¦¦4-<<\¾¡û_½z5`Û¶m$ÉÍÍ K*•VVVîÞ½›J¥Òh´ààà›7o¢½ÂÂÂ.\¸dÉ"‘Èd2ååå«W¯–€ªAŒ†Ä=<<&Mš´fÍ—ËUYXX±dÉ2™¼xñâàà`Í ¢R ÞyFU›ÿë)//onnNII‰‰‰qrrR|7ggg[Z*dO$Ÿ>}zâÄ ¡P¨Áï ¨|‚]QQA§Ó—.]J§Ó§L™"¯wvv>~üxhh¨ÒRèîîöôô”o¾þw‰„ŠQ*8ŽL&³°°@7---{zzÐòôéÓx<ÞÑѱººšF£544|ýõ׊#'FCâÆÆÆŠÔF>þ\qÁž1c†æQ©cÂ¥··÷ìÙ³AAA'OžTzC«288˜˜˜˜˜˜øÙgŸI$’²²2µaª9äçç—””9rDÕ^ööö µµµ¾¾^iÚÈdrJJ êW×××7bRFFFx<žÍfüñÇ€çÏŸ£ æÒÙÙ9))iÆŒööö&&&XÄhH\)Yµ‘fffò+Ê®®.Í w²8 Þ÷Ѓ ÈÉ“'i4š»»;`Ë–-FFFgΜÑÜK"‘H¥R"‘(‹ÑªüRH(׋ÏçgddO˜0áñx“ ¿|ùòS§NÙÙÙ)®4GGGƒñâÅ‹ŽŽŽØØØ_ýuļˆD¢‹‹Ë™3gØlvgggFFÆÊ•+•b†††~ùåôà¥Èpb4$Žå%òððHKK«¯¯çr¹MMM/^Dí5Šß•÷5Ê7êë룣£QÅD"1&&¦²²²ººZC¯I“&EFF&%%š››»ººÆÆÆš››ÛÛÛ+.¡JtvvþðÃA (¸¸¸tuu)w¡¡¡$içÎûöí³¶¶Ç’ÚÞ½{#""bbb–,Yâçç§€ºA ,_¾\µ»Z1jW;ºÚH-[¶¤¤¤lÛ¶íÒ¥Kd2yÔ ¾#?á\Ò@zzzwww||¼v†«««355µ¶¶F7«««³²² Æ{î}pI³àg=£D,³Ùì²²²/¾øBkƒvtt>|˜Åb Þ¿?33=âkø/¥£¤½½=!!aÆ Ú¼ëºuëV‘HßßßO¥R×®]»~ýzí 2JæÏŸ_RR¢åA Bhhhhh¨–ÇðÐÁ4 Ð(L@£@0ÁÄÈW= èÓk•Œ¿{ yÍNÐÜ  Às& Q ˜€F`‚‰ÿ˜,Ù¬áûIEND®B`‚XQilla-2.3.0/docs/simple-api/ATFloatOrDerived_8hpp.html0000644000151400015140000000623411653571064017553 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATFloatOrDerived.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/items/Numeric.hpp>
Include dependency graph for ATFloatOrDerived.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  ATFloatOrDerived
XQilla-2.3.0/docs/simple-api/classATUntypedAtomic.html0000644000151400015140000002514111653571064017554 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATUntypedAtomic Class Reference

#include <ATUntypedAtomic.hpp>

Inheritance diagram for ATUntypedAtomic:

List of all members.

Public Member Functions

virtual const XMLCh * getPrimitiveTypeName () const =0
virtual const XMLCh * getTypeURI () const =0
virtual const XMLCh * getTypeName () const =0
virtual const XMLCh * asString (const DynamicContext *context) const =0
virtual bool equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
virtual
AnyAtomicType::AtomicObjectType 
getPrimitiveTypeIndex () const =0

Static Public Attributes

static const XMLCh fgDT_UNTYPEDATOMIC []

Member Function Documentation

virtual const XMLCh* ATUntypedAtomic::asString ( const DynamicContext context) const [pure virtual]

Implements AnyAtomicType.

virtual bool ATUntypedAtomic::equals ( const AnyAtomicType::Ptr target,
const DynamicContext context 
) const [pure virtual]

Implements AnyAtomicType.

virtual AnyAtomicType::AtomicObjectType ATUntypedAtomic::getPrimitiveTypeIndex ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATUntypedAtomic::getPrimitiveTypeName ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATUntypedAtomic::getTypeName ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATUntypedAtomic::getTypeURI ( ) const [pure virtual]

Implements AnyAtomicType.


Member Data Documentation

const XMLCh ATUntypedAtomic::fgDT_UNTYPEDATOMIC[] [static]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/DebugListener_8hpp__dep__incl.md50000644000151400015140000000004011653571063021051 0000000000000099f88c4a9d470295a00369803400aedaXQilla-2.3.0/docs/simple-api/inherit_graph_2.map0000644000151400015140000000024011653571064016362 00000000000000 XQilla-2.3.0/docs/simple-api/StdInInputSource_8hpp__incl.png0000644000151400015140000000776511653571064020675 00000000000000‰PNG  IHDRËuoY‚abKGDÿÿÿ ½§“ªIDATxœíkPS×ÇwOá E^BEP¹hŠVfŠ)ÔÁrðYÁ¶>ÚJÐ/µ¶hµí bí°«Ðj}­tÐv2JZµ¼¤bˆM(!ɹöܘÂãžML»~ŸöYgï•ÿÚ石O8‡„EQbØXZðÅ–Ùt555»wïf6'0š\ºt‰Ù„ ;L&“]¾|9::šÙ´À(ÐÑÑqûömÆÓ2ì0LNN‰´Qª««wîÜÉxZ¸ÈÈÈÈÈb‡©TªÂÂÂeË–ÅÅÅ¥¥¥9r¤¯¯Ïü‰DÂårB\.W"‘˜é9h‡‘1Í$ T9,ã°466îÚµK(fgg×ÖÖ „T*]¼x±E$™b$f Í€y,ã°k×®­[·.$$ÄÍÍÃálÚ´©¶¶!¤Ó麻»-"É#1iÌc‡3¦¼¼\ü8ŽP(D½ýöÛ¡%K– „t:ÝñãÇÓÓÓ.\¸aÆ;wî˜æár¹—/_^¹rå¢E‹Ž?>”xµ­­­MOOOLL>þèÑ£æ+2 ï 1„eÆçóE"Qrr2ŸÏ …2™ Ç B§OŸF:uJ(fdd”––¦§§´$]»ví‹/¾ÈÌÌýÂ… Ë—/¿råŠQŸÊÊÊõë×Ï™3ÇÃÃ#"""##ƒ6UBB‚‹‹K\\Bˆv…¥íðÖ[oùûû‡††¾ùæ›C¼×;fFsõêÕ7úøø­^½Ú|ÂŒŒŒ3f\¹reÍš5AAA'NܺukXXÞ{þüùÍ›7{yyeffÞ¸qÃ4CJJʘ1c¢¢¢Bú÷ mE#(“qˆÜ—4Z­þé§Ÿ¢££CCCCCCÓÓÓ¿úê+@cØ­³³388X¿D›ÍÓÓ!dk;`!´üýýq#  ³³Ópícåf4+ Nçëë‹{úùù™O€’Édz ¸ýðáä¤$}ggggS1!‹5hEfÊ5,p£(j÷îÝ---x“ÅbÍž=[«ÕuóöönnnÖo¶¶¶Òf3šè!vxðàn´µµá†Â=z4,Íîîî666R©ïjooÇž(!öº‡‡ÇÇq¤©©I¿Jººº–••UUUUUU9s¯Ô#®ˆ68ÊXÀaNNN±±±;w«“J¥¿ýö[aa¡á L¥R!„-ZTXXX[[+—Ëoܸqøða5äççK$’»wïÏ›7ÏÅÅ!tñâÅ'Ožè/¼ ŘÑlkkËår8 •JïÝ»WRRÂãñÌ$ÄÄÆÆß»wïÞ½{yyyú«º9sæÉd²–––ìììòòr„Ðwß}×ÛÛ;¬ŠÌG ¬’¡ìììÒÒÒ¢¢"‰DâîîÎårW­Z…òööž>}zRRÒ¹sçúûû ?~_­VGFFfffâøÚµkóóó×­[Çb±æÎ‹ãû÷ï§]1ª¯‰FA¦foX°˜ýo¶'N¤¤¤TUU1˜“Y$IZZÚó¬p¸ÐV4‚2ñóaŒÿw#Ü—Èò·s˜³³s||¼¥U0 mEÏO™;‡¹¹¹½ÿþû–VÁ$´=?eþíŒ2à0€,à0€,à0€,à0€,à0€,Dîeee‘H E¡PH˰Ã&L˜°téRfs>?ÈåŽ--®³fÉïj¼üòËŒçdø¾ä_›ÊÊ›ë×ÿ»½ýsK ±&à: 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 |¢9ÚÛ»V­*Ñhþûëª*U¿\Þëçç¦ïðÏúæç§YHu`™ß—´|}ÝÔ꾦¦ÃàÝ»*Ü`±P||¸%tY°J¿þak;Ð,±–.=ªj¬pØ $$ÌÔji.$llXŽ¿¿¿ûèK².Àaƒàëë6sf€ñ·ÛØÀ lH€Ã'9y¶©Ã(ŠZ¼x†EôXà°Á‰7úÀÍfÛDF{x¸XH‘5œq㜣¢BØìÿÍEQÉɳ,(ÉŠ‡ ‰¤¤Y†8d³m.äXPóçO·µeã¶­­ ö8ZV’µ..±±ax¡Ôj©%KfZZ‘Õ*K–¼¬ÓéBNNv<^˜¥åX à°¡Âå†:9Ù³XhÁ‚ép·m¨<3S*•ŠÐÏXþ5àñ¦VVÖs¹Aííí–Öòüâëëk¸ùŒÃzzzFW5æRUåàêúfÉ æ†‰ŽŽ%-ܹ֯‹5.&†ki!Ï)·oß6 ÂuØ0°±aefF[Z…•vvlKK°2ÀaYÀaYÀaYÀaY¬Þa÷ïß_½z5³©X,VSS#9 Q*•YYY'Ntrr ÉÉÉQ«ÕŒ¿Ê ªn ¬Þaååå Ï[*LKK‹§§§~sãÆ"‘èÔ©S÷ïß/))©¨¨àóù ¾Üs e€L&«ªª¢¬Š×^{íÉ“'̦B566þÿ  gØÍÍ­®®N¿YSSðÿ¿Êpaª:Shý3ìsXee¥ŸŸ¾}yìØ±É“'÷öö"„úûûù|þøñã½¼¼ø|~SS‹ÅºråJ@@@uuuNNN@@À /¼°bÅŠ®®.œÍtBèÌ™3ÇÑÑ1((¨´´!¤Ñhh‡?zôÈÙÙÙÉɉvBèìÙ³3fÌ3fŒÏž={Ìè7Le‹Å:zôhhhè¸qã>ùä„®«¢¢bÊ”)^^^›6mzúô)â!úvdd$BÈÛÛÇÇŽ[PPðøñc¼9wîÜ?þø·»ººV­Zåéééï•¥V«iŽxJ¸xñbpp°»»{nn®ùŠŒ‚Ãu B#:‡­X±båÊ•>?~üõë×qpïÞ½III÷ï߯¯¯Ÿ9sæ¶mÛð;xÁ‚W¯^ݱcGXXX}}½X,ŽˆˆÈÊÊh”R©tppR©´¤¤ÄÖÖV©TîÛ·vøáÇKKK)Š¢ÕÝÝmoo¿fÍš”••!„:::Ò¯OE=û.G%''+Š¢¢"„ÐãÇq]±±± uuuÁÁÁ;vì0<]éÛFç° .øùù988Ì›7oß¾}­­­ú]©©©111ÍÍÍõõõÓ¦M3Ÿp¸SjtøB¯¿þzww÷©S§ð[ËLEFAóÆ õÏH¦P(üýý9ŽáKN:U*•âö¥K—ÂÃñÄúúzŠ¢¦L™rúôi¼÷öíÛú¶é(¹\ngg·ÿ~…B¡Óézzz´Zí@Ó’’är9EQ´£ž>}zçÎ¥R©Õjkjjô¾¡Õ¯OE™8 ÏI__ŽÖEQ”P( ŠÃ(ŠÒh4uuu»víš6m›Í>zô(ÎÌf³ýõWÜçôéÓæwJB¨ººš¢(­V;hEFAÊ,Œ9Œ¢¨]»v±Ùl™L¦8:>óT±««+–Ø×ׇ÷ŠÅbÓ<¦£(ŠºvíZrr²³³óœ9sÎ;7ÐðžžžE‹é7MGQUQQŽ?$ê}c¤ß(•‘Ã~ÿýwÃ8®K¥Ráà­[· Ÿ¼ žu˜R©áp§”¢¨¢¢¢®®®aUD4ï fVɃ¾ôÒKøDýí·ßúøøàË—îîîÕ«W»»»{xxdddôööN‡Z­ÎÊÊòõõuuu]¶l™B¡ÀqÓQE …ÂI“&ÙÛÛO:µ¢¢‚vx__ßÂ… …™Ž¢(ê³Ï>7nÜ„  –-[æååeª_&“¥ŠÃŠ‹‹===7n܈—’Ý»w»¹¹Mš4©¢¢Þßßåâ₇k4š;vp8''§_|qëÖ­ú5H.—§§§{xxøøø¼÷Þ{%ñ”Ž ¢Ê4­žùþ0ü XQilla Simple API Documentation SourceForge.net Logo

ATQNameOrDerived Member List

This is the complete list of members for ATQNameOrDerived, including all inherited members.
_ref_countReferenceCounted [protected]
ANY_SIMPLE_TYPE enum valueAnyAtomicType
ANY_URI enum valueAnyAtomicType
asString(const DynamicContext *context) const =0ATQNameOrDerived [pure virtual]
AtomicObjectType enum nameAnyAtomicType
BASE_64_BINARY enum valueAnyAtomicType
BOOLEAN enum valueAnyAtomicType
castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [protected, virtual]
castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
compare(const ATQNameOrDerived::Ptr &other, const DynamicContext *context) const =0ATQNameOrDerived [pure virtual]
DATE enum valueAnyAtomicType
DATE_TIME enum valueAnyAtomicType
DAY_TIME_DURATION enum valueAnyAtomicType
DECIMAL enum valueAnyAtomicType
decrementRefCount() const ReferenceCounted [inline, virtual]
DOUBLE enum valueAnyAtomicType
DURATION enum valueAnyAtomicType
equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0ATQNameOrDerived [pure virtual]
fgDT_ANYATOMICTYPEAnyAtomicType [static]
FLOAT enum valueAnyAtomicType
G_DAY enum valueAnyAtomicType
G_MONTH enum valueAnyAtomicType
G_MONTH_DAY enum valueAnyAtomicType
G_YEAR enum valueAnyAtomicType
G_YEAR_MONTH enum valueAnyAtomicType
generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicType [virtual]
getInterface(const XMLCh *name) const =0Item [pure virtual]
getName() const =0ATQNameOrDerived [pure virtual]
getPrefix() const =0ATQNameOrDerived [pure virtual]
getPrimitiveTypeIndex() const =0ATQNameOrDerived [pure virtual]
getPrimitiveTypeName() const =0ATQNameOrDerived [pure virtual]
getPrimitiveTypeURI() const AnyAtomicType [virtual]
getRefCount() const ReferenceCounted [inline]
getTypeName() const =0ATQNameOrDerived [pure virtual]
getTypeURI() const =0ATQNameOrDerived [pure virtual]
getURI() const =0ATQNameOrDerived [pure virtual]
gXQillaItem [static]
HEX_BINARY enum valueAnyAtomicType
incrementRefCount() const ReferenceCounted [inline]
isAtomicValue() const AnyAtomicType [virtual]
isDateOrTimeTypeValue() const AnyAtomicType [virtual]
isFunction() const AnyAtomicType [virtual]
isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicType [virtual]
isNode() const AnyAtomicType [virtual]
isNumericValue() const AnyAtomicType [virtual]
isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
Item()Item [inline, protected]
NOTATION enum valueAnyAtomicType
NumAtomicObjectTypes enum valueAnyAtomicType
Ptr typedefATQNameOrDerived
QNAME enum valueAnyAtomicType
ReferenceCounted()ReferenceCounted [inline]
STRING enum valueAnyAtomicType
TIME enum valueAnyAtomicType
typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicType [virtual]
UNTYPED_ATOMIC enum valueAnyAtomicType
YEAR_MONTH_DURATION enum valueAnyAtomicType
~ReferenceCounted()ReferenceCounted [inline, virtual]
XQilla-2.3.0/docs/simple-api/inherit_graph_44.md50000644000151400015140000000004011653571063016355 00000000000000132afd5ae277ad60e72df998509491fbXQilla-2.3.0/docs/simple-api/Sequence_8hpp_source.html0000644000151400015140000003453711653571063017613 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

Sequence.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _SEQUENCE_HPP
00021 #define _SEQUENCE_HPP
00022 
00023 #include <vector>
00024 
00025 #include <xqilla/framework/XQillaExport.hpp>
00026 #include <xqilla/items/ATDecimalOrDerived.hpp>
00027 #include <xqilla/framework/XPath2MemoryManager.hpp>
00028 
00029 #include <xercesc/util/XMemory.hpp>
00030 #include <xercesc/util/PlatformUtils.hpp>
00031 
00032 class DynamicContext;
00033 
00034 typedef std::vector<Item::Ptr, XQillaAllocator<Item::Ptr> > VectorOfItems;
00035 
00039 class XQILLA_API Sequence : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory
00040 {
00041 
00042 public:
00043   typedef VectorOfItems::iterator iterator;
00044   typedef VectorOfItems::const_iterator const_iterator;
00045   typedef VectorOfItems::reverse_iterator reverse_iterator;
00046   typedef VectorOfItems::const_reverse_iterator const_reverse_iterator;
00047 
00048   // constructor that takes one Item
00049   Sequence(const Item::Ptr &item, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr =
00050            XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager);
00051   // constructor that creates a empty sequence
00052   Sequence(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr =
00053            XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager);
00055   Sequence(size_t n, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr =
00056            XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager);
00057   Sequence(const Sequence&, size_t start, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr =
00058            XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager);
00059   // copy constructor
00060   Sequence(const Sequence&, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr);
00061   // copy constructor
00062   Sequence(const Sequence&);
00063   Sequence &operator=(const Sequence &);
00064 
00065   ~Sequence();
00066 
00067   void clear();
00068 
00069   const Item::Ptr &first() const;
00070   const Item::Ptr &second() const;
00071 
00073   Sequence::iterator begin(void);
00074   Sequence::const_iterator begin(void) const;
00075 
00077   Sequence::iterator end(void);
00078   Sequence::const_iterator end(void) const;
00079 
00081   Sequence::reverse_iterator rbegin(void);
00082   Sequence::const_reverse_iterator rbegin(void) const;
00083 
00084   Sequence::reverse_iterator rend(void);
00085   Sequence::const_reverse_iterator rend(void) const;
00086 
00088   size_t getLength(void) const;
00089 
00091   const Item::Ptr &item(size_t index) const;
00093   const Item::Ptr &item(const ATDecimalOrDerived::Ptr &index) const;
00094 
00096   void addItem(const Item::Ptr &item);
00097 
00099   void addItemFront(const Item::Ptr &item);
00100 
00102   void joinSequence(const Sequence & s);
00103 
00105   bool isEmpty() const;
00106 
00108   void sortIntoDocumentOrder(const DynamicContext *context);
00109 
00111   void sortWithCollation(const Collation *collation, const DynamicContext *context);
00112 
00113 private:
00114   VectorOfItems _itemList;
00115 
00116   friend class SequenceResult;
00117 };
00118 
00119 #endif
XQilla-2.3.0/docs/simple-api/classAutoDocumentCacheReset-members.html0000644000151400015140000000566111653571063022534 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

AutoDocumentCacheReset Member List

This is the complete list of members for AutoDocumentCacheReset, including all inherited members.
AutoDocumentCacheReset(DynamicContext *context)AutoDocumentCacheReset [inline]
context_AutoDocumentCacheReset [protected]
oldDCAutoDocumentCacheReset
~AutoDocumentCacheReset()AutoDocumentCacheReset [inline]
XQilla-2.3.0/docs/simple-api/StackFrame_8hpp.html0000644000151400015140000000602711653571064016475 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

StackFrame.hpp File Reference

#include <string>
#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/items/Item.hpp>
#include <xercesc/util/XercesDefs.hpp>
Include dependency graph for StackFrame.hpp:

Go to the source code of this file.

Classes

class  StackFrame
 A class that represents an item in a query call stack. More...

Namespaces

namespace  xercesc
XQilla-2.3.0/docs/simple-api/classxercesc_1_1LocalFileInputSource__inherit__graph.png0000644000151400015140000001424511653571064025636 00000000000000‰PNG  IHDRÐÃ|„bKGDÿÿÿ ½§“ZIDATxœíÝyTSgúð7fa­€l²ªÒj;£ÎQ*¢vêˆå°ºPÁ <Ž (ZRF·ŽG…Ä8”EÖª§E”qЂV„À8*("à’Ä$&—ÜßwN~)I0¡æ¡ÏçøÇÍ›û¾÷¹ïýrï%‰F’$— º.üº@àV8€`ÅÀ¼½¿üå/W¯^żQ Š§§ç¾}ûpnwàZZZîÞ½»`ÁÌÛŠ~üñG ÌÅ8„Ђ ŠŠŠðoŒðùçŸãß(Üì p+À °‚À¬ pcqûömƒQ\\,k©¨¨`±X---!æêê:âSË—/§Ñhííí¸k}Ç@àÆbΜ9{öì‰åóù¡—/_nÞ¼9))iöìÙÔ ]]]ÍÍͲõy<¼ÜMÀÑÞ½{­¬¬víÚ…JHH°³³Û¹s§ìYùó_eeå'Ÿ|¢ƒ*ß=ïbà*++x<B¨  `úô郃ƒ!‰Dokkkcc/‘HÚÛÛi4ZMM““SmmmRR’“““µµuDDuîQÚ !TUUåááahhèì윗—‡"BiwjŠË,ëÌ™3§OŸNIIÉÍÍ=sæ “É”íB```QQ‘ìªZRR {ViI4íôéÓîîîÖÖÖÌËË›:uª™™™ì­'>Ÿ¿víZ+++GGǸ¸8‘H$¿ûsçÎŒŒ¤Ö …ÆÆÆ·oßÖÂÁùÅH¼߸ZDDÄš5kúúúlmm¨ÆC‡ùûû?zôˆÃáÌ;7!!¡­­ !´|ùòË—/³Ùì™3gr8œ–––yóæÅÅÅ©ê% 222z{{srr †P(?++Kq™’€Ú¿¿|#BèîÝ»“'O¾}û6ÕËØØøùóç¡¶¶6¥%Q½‚ƒƒAvv6BèóÏ?™™™¡çÏŸ“$êííýàÁ‡3kÖ,6›-¿û.\°´´”H$$IæççÏœ9S*•¾•cñv½£ãñxŽŽŽl6[ÖèææÖÛÛK-WWWøá‡ÔŒs8’$g̘QZZJ={çÎÙ²b/.—Ëd2=Êãñ¤RéÀÀÀðð°ªî£J¥+W®¤ÓéaaaòíT°¶lÙ²{÷n’$óóó—,Y"kWZõlcc#I’b±xÄr[[›X,¦Óé­­­T¯ÒÒRùÝ'bòäÉ555$I~úé§|cý¸ŸINN¦Óéýýý²CCCùs³™™5ãb±˜z¶¥¥EqÅ^$IÖÕÕ˜˜˜,Z´èÂ… £tE^^ž™™Ù¿þõ/CCÃòòrY;‘ÚÚZ©Têçç—™™IÊNiI²g•.www#„†††¨F‡chh(¿û$InÞ¼yË–-Ïž=c±XÝÝÝo¬_'{ïáBÝÝÝiii>>>;vì5ZYYÉÇ«¯¯§Ú©›'{{û®®.ª¥©©éÀªz I¥Òââb.—¹bÅ .—«ª»*Ož<‰=r䈧§gRRRttô‹/äWX¸páÀÀ@]]]uuµŸŸŸüSªvd¶¶¶t:½££ƒzøàÁùÝG–••-\¸ÐÑÑñcêÄ»8©Tº~ýú˜˜˜‚‚‚K—.UUUQí«W¯Þ½{÷Ç9βeËÒÓÓå{…‡‡'&&¶¶¶¶¶¶nݺõáǪzÑh4__ßsçÎ ±XÌd2Uuùò%uS%¿L’dtt´‡‡uŸ¾cÇ[[Û˜˜ùzètº¿¿ttôï~÷;ù§Fߥ˜LfPPPlllgggkkëÞ½{CCCG¬³hÑ"‚ ’““ÃÃÃÕ›i]À|FUç4~âĉ>ø€ºR”••ÙÙÙq¹\’$Áºuë,,,,--£¢¢©k ÕK$ÅÅÅÙÛÛ›™™óx<ª]±I’………Ó¦Mc±Xnnn£t—ß„lùÌ™3÷îÝ“Õ|ãÆ &”””rÄÚÚZ„Pzz:µŽ¬]iIhÔK*I’\.7<<ÜÒÒÒÎÎnûöíCCCòµQ6nÜhdd$ÞÖ±xëh$Þÿ&H} >§%‰‰‰]]]gÏžUge |hƒH$zòäÉéÓ§ t]ËhÞÅ{80 üñúõë/^¬ëZFg¸qâ“O>ár¹º®âÍà °‚À¬ p+À °‚ÀÅãǼžž®«ÐK:xYäêÕ«K–,Á¿Ý·èùs+„•Õs]ò‹´´´xzzbÞ(îÀÍŸ?󵡣ÒF£¹ºëº_ÄÓÓÿáÀý^ê8ðßÿ>ñö>‚ª©Ùéîn§ërô ÜÃi¬²²‰Á˜À`Ыªšt]‹þÀi†$É‚‚‚ÄpAA=\4ÓÌO?u=}* –ûû·nué´ýÓLyy#“I§–™LzYÙ;ù_ñÞa8 „´´ô–Dò¿_N%’áÒÒŸBªÛªô Nuu÷_¾É·¼|)ºv­MWõè#œÊÊn1?›1ƒVZzKWõè#œºD"Éwß5ÄÏ^ì%éwß5‹D]U¥w pêºtéŽHD(¶‹D’šš;øëÑS8u;÷NSl§ÓiçÎÁUU]8µ ˆ._þ¯Ò_H BZSsG(|¿*}SËÅ‹-²WCI$Ã/rpÖ£¿àÍ{µðxƒÁÿ¿ ’˜XŠ:p`µ¬eâDC T¦oà¿ ªÅÂÂD>O&&,„Д)–º«H_Á%`XAàV8€`XAàV8€`XAàV8€`XAàV8€`XAàV8€`XAàV8€`XAàV8€`XAàV8€•¿óïÿ»–FÖ¹ââ„P` ƒ® Ñ–¨¨(-¬ÅÀÑhJ¾ó{| ÓÍBÃÃ/u]ˆ¶h/Ú½¤’ãA𠂯ë*´¢°°P«‘€{8€`XAàV8€`{ÖÞÞþÖ‡ …qqqS§N522ruuMJJ‰Doî¦ÿ p˜tttXYYÉÆÄÄ466ž;wîÑ£G999ñññ:,&R©ôÅ‹²‡ååå)))sçε¶¶öôôLMM­¬¬ÔayØè2p•••<!TPP0}úôÁÁA„D"‰·µµµ±±‰—H$ííí4­¦¦ÆÉÉ©¶¶6))ÉÉÉÉÚÚ:""‚ÏçS£)öBUUUyxx:;;çåå!„‚PÚÚ„â²<vöìYww÷I“&>|X¶fEEÅŒ3lllbcc_¿~­t¨ùóç#„&OžLµOœ8ñäÉ“²zzz>|øZæóùk×®µ²²rttŒ‹‹‰DJóœè˜öÞ$Aj¼µ±fÍš¾¾>[[Û††ªñСCþþþ=âp8sçÎMHHhkkC-_¾üòåËl6{æÌ™§¥¥eÞ¼yqqqªz …BƒŒŒŒÞÞÞœœƒ! 9¢´;ŸÏÏÊÊR\FµµµÉ–x<^VVBèÅ‹Ta¾¾¾÷ï߯¯¯wqqa³ÙT#ÕE¶,ßH’ä÷ßïàà```°dÉ’#GŽtuuÉž õöö~ðà‡Ã™5kÖèj:'oÊ^ÈîÊ•+$IŠÅbª]¾0’$ ]\\Ô I’AÔ××'''Ïš5‹N§Ÿ={–™N§·¶¶Rë”––Ž> ¦s2úÎ’ã>p$I&''Óéôþþ~Y‹¡¡¡ü9ØÌÌŒš\±XL=ÛÒÒ¢8Žb/’$ëêêLLL-ZtáÂ…Qº²ò»wïž|;UØÐÐÕØÜÜlhh(Ÿû÷ï+N(A=”J¥ûöíspp I²»»[~@‡3ú€c˜“Ñi;p:þ¥¡»»;--ÍÇÇgÇŽ²F+++Ù1æñxõõõT;“ÉDÙÛÛwuuQ-MMMPÕkhhH*•s¹ÜÈÈÈ+Vp¹\UÝÕ4a‚’£Ž=BèþýûöööÔ2A¡žžÅõI’ iii¡Òh´¥K—RëÛÚÚÒéôŽŽê©888Œ2 ¦s¢ÑÎjƒ.'•Jׯ_SPPpéÒ¥ªª*ª}õêÕ»wï~øð!‡ÃY¶lYzzº|¯ðððÄÄÄÖÖÖÖÖÖ­[·Êîµ{Ñh4__ßsçÎ ±XÌd2Uuùòevv¶â²:¶mÛÖÞÞ~óæÍ={ö„……™››#„þñ‚ÔÔTù5…B!BÈÔÔ4"""((èüùóׯ_‹‹ F1™Ì   ØØØÎÎÎÖÖÖ½{÷†††Ž2 ¦s¢þNi‹öNžèM—Ô'N|ðÁÔE¡¬¬ÌÎÎŽËå’$)Ö­[gaaaii588(M‰DqqqöööfffÁÁÁ<jWìE’daaá´iÓX,–››[EEÅ(Ý•Þ'‘ —ÔËÔšÙÙÙS¦L±²²Š‰‰¡®†û÷ï777Ÿ6mZEE5”D"Y¸p¡©©)Õ 6›íááaddô›ßüf×®]²Ë(—Ë ·´´´³³Û¾}»ªÇ<'£ÿ÷pzMñW}7ÎïáÀ¯ î™8qbtt´®«Ð'¸_ÄÆÆ&##C×UèÀ °‚À¬ p+ÜX¼z%~õJ¬ë*ôC«£×ÔÔÈ>›5ž47¿¤Ñ‡‡™® yûnݺ¥Õñá»EÆbÒ$?’D<^¹® Ñí¥B‹g8í­[ÏŸ çÌù!Z{»pÒ$]—£gàNc/r¨÷ /\àèºýÓXaá ’D‘……7t]‹þÀi¦»›{ûö#’$¥RÔØø°»›«ëŠô N3UUMtúÿ&N§UU5é¶½ÓLQÑM‚¦– ‚,*º©ÛzôN÷îõÝ¿ß'×@Þ¿ßwï^ŸÊ@N· º| ƒA¯¬¼­«zôN]$Iÿÿõ”BÃEE7Çë+ŽÚSWSSwOO±½§‡×ÜÜ¿=SWyyãˆë)…Á ——7â¯GOAàÔ2<,-)y=¥ÄpIÉOÃÃRüUé#œZêë;x¼W ÅbŒøÇ`йÜÁ††]ר´ûñ¤qƒÁ˜˜ø™ìáwß5#„>ûìùtP–ÒâǓƱèèoB™™kt]ˆþŸK€`XAàV8€`XAàV8€`XAàV8€`XAàV8€`XAàV8€`XAàV8€`XAàV8€`XAàV8€ÕϾsÿIÝ·ËÈÈ !44tW×…èùŒüŽßÀÀÀ÷ßo=`ܺsçNqq±|ËÈÀ½ÿþû‹/ÆWø•{8€`XAàV8€Õ8 œ——WOOÏ[°§§ÇËËK6¸"Ù òkâ©244têÔ©ààà¥K—†……åææŠÅâ·¾•·þÖ–ÆÒÒÒìììä[ètzpp0Îz{{7nÜXQQA=LMMíïïONN¶¶¶~ôèQjjêÀÀ@ll,Î’Ô4ÏpÚfnn>éçÌÌÌ¢¢¢pÖ •Jìa]]݆ \]]ÍÍÍ=<JOOçñxéé鉉‰†††¡’’’ÞÞÞÌÌ̯¿þº±±177—Z¿¨¨(!!¡¹¹ùêÕ«)))ÇŽëîîÎÏϧžUì%‰Øl¶ŸŸß·ß~~øða‘HTRR¢´»¹¹y\\œâ²RÇöìYFFÆ¡C‡nÞ¼YPP tØW¯^}ùå—®®®ùùù›6mÊÊÊâóù#†‰DCr†‡•üÕÞQæD^]]]zzztttff&õcŒ*//OIIùë_ÿÚÐР*ñ'OžD•––Rãããâãã ûûûGÙñQfIÓã5ÊPªh|I‰‰illŒ‹‹[¹r¥››ÕxñâÅmÛ¶ÙØØ8;;GGG߸qƒjŠŠš3gNMMÍúõë§Nºk×®™3gªê%‘HH’b±XË–-«ªª2008þ¼Òî&&&üã—qùò嘘;;;ggçuëÖUWW+–ÅbåääÄÆÆZZZÚØØ „GŒöÅ_|*G¶³#¨šy~~~¦¦¦K—.EÉÎO›6mrtttwwÿâ‹/ª««ßxDBüqaaáñãÇgÏžýý÷߇„„ÔÔÔ¨ÚñQÆÑôx©SÛÿÒ`jjúÙgŸ}óÍ7_ýµ¬±¯¯Ïßß_öÐÄÄ„ZprrBõ÷÷;::R-S¦L™2eŠª^ï½÷Þ±cÇJJJrss§OŸ2oÞ-++ûè£Nž<¹gϪÑÌÌìØ±cÔa …\.÷£3!KK˾¾¾©S§"„ÚÛÛëëëÔözýúµT*e³ÙAÔÔÔìÙ³§¼¼\UwõYXXL˜0¡··—š»'OžXYY‘$©8ìëׯÙl6›Í^°`D"¹xñ¢¦ó#£jNä)ý<ØãÇBÝÝÝ–––Tãðð0Nþü¹âú$Iîß¿ßÉÉÉÅÅ…ó·¿ýmUU•ªe@MצE³K*I’‡^½zõ¾}ûnݺuýúuª}Ñ¢EYYYýýý;wî,//—ïåëë›ÝÙÙÙÙÙyüøqÙ†b/õêÕÁÁA‰DÂ`0 Tu<þ¼â2BˆÏçså0 //¯ÔÔÔÞÞÞÎÎΜœ¥ÃJ$‚  †X,¦îQ^½z5†i}㜌"--­§§çîÝ»ÙÙÙK–,155Eýðï^½’Ý´Q†††BFFF¾¾¾_}õU}}}ooïþóŸS§Ny{{#„”îø(RÔ?^c˜ÍÎpååå|>?88˜Á`lß¾ýoûÛìÙ³ß{ï½ÈÈÈ´´´ 6Ðh4OOÏèèhùÐÐP‘H/‰æÏŸMµ+öb±X»wïÎÌÌ|úô©½½}RR‹ÅRÕÏç=z”ºu“_FmݺU¾ì+W®lÛ¶---mãÆL&óøChh(FSÖÔÔtÓ¦Mû÷ï722 ñööÞ¹sgZZÚfVqïÔìèãã³cÇ‘HäííÊb±"##Ož<™ŸŸ¿eË–ÿûߡɓ'Ïž=ÛßßÿÂ… ¡;wæååeeeõôôXXXxyy­]»–MqÇ•(Oýã5†iù‰ß¤¤$ø<œ®ôôô„……]¹rE×…¼5µµµ_}õ•|Æà…_€îbbb²bÅ ]W¡]¸wˆ¹¹ùŸÿüg]W¡]8€`XAàV8€`ß-´Nåw‹a/üºÐ”~Ä -{8€`XAàVÿÔ\0ß$4¤IEND®B`‚XQilla-2.3.0/docs/simple-api/inherit_graph_16.map0000644000151400015140000000026111653571064016452 00000000000000 XQilla-2.3.0/docs/simple-api/functions_func_0x69.html0000644000151400015140000003322311653571063017324 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
 

- i -

XQilla-2.3.0/docs/simple-api/functions_type.html0000644000151400015140000001721211653571063016564 00000000000000 XQilla Simple API Documentation SourceForge.net Logo XQilla-2.3.0/docs/simple-api/DynamicContext_8hpp.html0000644000151400015140000000725511653571064017412 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

DynamicContext.hpp File Reference

#include <xqilla/context/StaticContext.hpp>
#include <xqilla/items/ATDurationOrDerived.hpp>
#include <xqilla/items/ATDurationOrDerived.hpp>
Include dependency graph for DynamicContext.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  DynamicContext
 The execution time dynamic context interface. More...
XQilla-2.3.0/docs/simple-api/StaticContext_8hpp__incl.md50000644000151400015140000000004011653571063020122 00000000000000a7ebc85a5b3fb2f9e85e9a8e425fcdc4XQilla-2.3.0/docs/simple-api/inherit_graph_7.png0000644000151400015140000000432011653571064016401 00000000000000‰PNG  IHDRÃ(ÌžÙ¼bKGDÿÿÿ ½§“…IDATxœíœ}HS]ÇÏœ/›ï6_ª¥©óe±õB™&âKEŠ •Y‘–3“²DG´ C",E¬ÐJ3iY™Ì2!kPš›Ù‹¦™bCfºMŶ{ž?îó\nw:—Þ§žÎç¯{¿ß¹ß߹߻sîÝ”!Ä‚±ùÝÿ“ô€œ„ ä$=Ø’­­­b±øwIAüYÈd2ró'ŒŒ477'%%ýZIˆ?Œ¡¡!¹\Né´5«­­ý%z*µµµÉÉÉ”N´OBÐr‚“ô€œ„ ä$=ÌßI……… ãܹs Á`0’’’Èß%úô‰Á`X™n9X¯×‹D¢€€6›|æÌ™©©)ëµ †ìììÕ«W»¸¸¬_¿þìÙ³F£q!z~6Œƒ›ÍŽˆˆèììüÙAþ æé$áíÛ·ýüüjjj,Gö÷÷{zzÎ9`]]ÝœCÍÇwttܽ{wpp°¢¢B*•fggÏLQ«ÓéÖ­[÷êÕ+‰DÒÞÞž››[]]c2™.ÌÝÝ=''g‰/^¼P©T*•J©T'''Óòƒ+¯Ô¬@øµ„V P( þ–óãÇ"{{{ç‘‘±hÑ"•Je}–•§pww—ËåD³µµÕÏÏÏÊ¡D"Qdd¤Ñh$zôz½¿¿yyù¼õ,@oo/ÑŒŒŒ,|dëeÏè“y:)77wóæÍB>Ÿ_PP`.…8æp8¼_«Õ¦¥¥q8.—›••599 !|øð!<<>>L&³¿¿oöõõq¹\r€Meee[[[YY™……BAduwwãøG^˜V«Å7Ú)))]]]xƒÁˆ‹‹#ãÍã)‚SSS ÈOjƒA"‘ÄÇÇãM;;;€õzÈYll~¸Ë—/'ƼÿÞ<ÅÑÑqÏž=ÝÝÝÄ䛟qrrð;wîh4š}ûö%$$h4kjÿiæô…––&“I~Xxýú5 ££C­V***ÆÆÆ¶oßHŸI:NII‰ŽŽîïïïêê§OŸ†f»ÈÒÒRüEËl)%%%ÞÞÞ÷îÝS©Txð‘#G ņ :!LKK yðàA___[[[XXXff&>²y°^õN2™L/^äñxnnnñññR©ÔËËË|®L&“««ëçÏŸg«¿¬<ÏÞÞžÏçK¥RëkŸ :ß þmÈ{¯ºº:ââ·CÏ> ñkP*•;wîìè蘘˜Ëåyyyû÷ïÿÝ¢,1Ão&ÿŽ?>11±mÛ6µZ¸wïÞŒŒŒß-ÊÈIÿQlmmÅbñôhuCÐr‚“ô€œ„ ä$= '!èa†·ø7Älà?Ô¤ðƒ“|}}Ñ?@̉‡‡ŸÏ§tþýõ2±@Ð> AÈIz@NBÐr‚þGO~ æÏ6IEND®B`‚XQilla-2.3.0/docs/simple-api/VariableStore_8hpp__incl.map0000644000151400015140000000003511653571064020165 00000000000000 XQilla-2.3.0/docs/simple-api/classxercesc_1_1XMLResourceIdentifier-members.html0000644000151400015140000001617711653571063024372 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

xercesc::XMLResourceIdentifier Member List

This is the complete list of members for xercesc::XMLResourceIdentifier, including all inherited members.
ExternalEntity enum valuexercesc::XMLResourceIdentifier
getBaseURI() const xercesc::XMLResourceIdentifier [inline]
getLocator() const xercesc::XMLResourceIdentifier [inline]
getNameSpace() const xercesc::XMLResourceIdentifier [inline]
getPublicId() const xercesc::XMLResourceIdentifier [inline]
getResourceIdentifierType() const xercesc::XMLResourceIdentifier [inline]
getSchemaLocation() const xercesc::XMLResourceIdentifier [inline]
getSystemId() const xercesc::XMLResourceIdentifier [inline]
ResourceIdentifierType enum namexercesc::XMLResourceIdentifier
SchemaGrammar enum valuexercesc::XMLResourceIdentifier
SchemaImport enum valuexercesc::XMLResourceIdentifier
SchemaInclude enum valuexercesc::XMLResourceIdentifier
SchemaRedefine enum valuexercesc::XMLResourceIdentifier
UnKnown enum valuexercesc::XMLResourceIdentifier
XMLResourceIdentifier(const ResourceIdentifierType resourceIdentitiferType, const XMLCh *const systemId, const XMLCh *const nameSpace=0, const XMLCh *const publicId=0, const XMLCh *const baseURI=0, const Locator *locator=0)xercesc::XMLResourceIdentifier [inline]
~XMLResourceIdentifier()xercesc::XMLResourceIdentifier [inline]
XQilla-2.3.0/docs/simple-api/classVariableTypeStore.html0000644000151400015140000003771211653571065020156 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

VariableTypeStore Class Reference

This is the wrapper class for the variable store, which implements the lookup and scoping of simple variables. More...

#include <VariableTypeStore.hpp>

Inheritance diagram for VariableTypeStore:

List of all members.

Public Member Functions

virtual ~VariableTypeStore ()
 default destructor
virtual void clear ()=0
 Clears all variable values and added scopes from the store.
virtual void addLocalScope ()=0
 Adds a new local scope to the store.
virtual void addLogicalBlockScope ()=0
 Adds a new logical block scope to the store.
virtual void removeScope ()=0
 Removes the top level scope from the store.
virtual void declareGlobalVar (const XMLCh *namespaceURI, const XMLCh *name, const StaticAnalysis &src, XQGlobalVariable *global)=0
 Declares and/or sets a variable in the global scope.
virtual const StaticAnalysisgetGlobalVar (const XMLCh *namespaceURI, const XMLCh *name, XQGlobalVariable **global=0) const =0
 Gets a variable from the global scope.
virtual void declareVar (const XMLCh *namespaceURI, const XMLCh *name, const StaticAnalysis &src)=0
 Declare a var in the top level scope (A full set of these namespaceURI/name pair methods should be made)
virtual const StaticAnalysisgetVar (const XMLCh *namespaceURI, const XMLCh *name, XQGlobalVariable **global=0) const =0
 Looks up the value of a variable in the current scope, using ident as an qname.

Detailed Description

This is the wrapper class for the variable store, which implements the lookup and scoping of simple variables.


Constructor & Destructor Documentation

virtual VariableTypeStore::~VariableTypeStore ( ) [inline, virtual]

default destructor


Member Function Documentation

virtual void VariableTypeStore::addLocalScope ( ) [pure virtual]

Adds a new local scope to the store.

virtual void VariableTypeStore::addLogicalBlockScope ( ) [pure virtual]

Adds a new logical block scope to the store.

virtual void VariableTypeStore::clear ( ) [pure virtual]

Clears all variable values and added scopes from the store.

virtual void VariableTypeStore::declareGlobalVar ( const XMLCh *  namespaceURI,
const XMLCh *  name,
const StaticAnalysis src,
XQGlobalVariable *  global 
) [pure virtual]

Declares and/or sets a variable in the global scope.

virtual void VariableTypeStore::declareVar ( const XMLCh *  namespaceURI,
const XMLCh *  name,
const StaticAnalysis src 
) [pure virtual]

Declare a var in the top level scope (A full set of these namespaceURI/name pair methods should be made)

virtual const StaticAnalysis* VariableTypeStore::getGlobalVar ( const XMLCh *  namespaceURI,
const XMLCh *  name,
XQGlobalVariable **  global = 0 
) const [pure virtual]

Gets a variable from the global scope.

virtual const StaticAnalysis* VariableTypeStore::getVar ( const XMLCh *  namespaceURI,
const XMLCh *  name,
XQGlobalVariable **  global = 0 
) const [pure virtual]

Looks up the value of a variable in the current scope, using ident as an qname.

Returns a boolean (true if successful), and the SequenceType value of the variable

virtual void VariableTypeStore::removeScope ( ) [pure virtual]

Removes the top level scope from the store.

To be called at the end of methods to implement scoping.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classNSFixupFilter__inherit__graph.png0000644000151400015140000000677311653571064022277 00000000000000‰PNG  IHDRpÃÕÜÇbKGDÿÿÿ ½§“ °IDATxœí}LçÀŸÚÚ(Åñ&Lœô·1@2ÙÌ^£hÜ"Q¶GŒ¸]2·Uqn s›¶¨0“aÂæZË‹cn`‡*p¾iT¨¼¨tB¡…¾Üï[nG_úµw]žOüãî¹ç¾Ï—O{O¯çõ¾<‚ Žl'ð_   F@_illÌÍÍe+å‹/¾X¾|9µ:Eèàà`}}}ZZš×³òUÊËË% ½E`ßI¡Px+Ÿ‡ÇãÙ´à9,,,,O„òžÇ»yó¦ë–éróæM2ÈãH˜ÄÁiZZZžyæØT4ͲeËîß¿ÖËx(444tÞ¼y°©X­ÖÀÆô>sèºuë>ùärybb"((èôéÓ!“É$“Éž|òɰ°0™Lf2™B<ï§Ÿ~ŠŽŽ>pàB襗^B1|jkkãââüüüÂÃÿùæ²Ñ>¦ÅbÉËË[´hÑœ9s^}õÕ¶¶6›8ö¹‘BCCƒX,njj𶂆\.·iqB¨££ct*AüòË/b±ØjµQUU5þ|“ÉDÄ·ß~»~ýú;wîtuu-]º4;;› ’ššªÓéJJJB<èéé¡n? B¨§§‡ ˆ‘‘¡P˜™™Ù××WVV†r³   ,,¬²²òîÝ»§OŸž?>„È>7rë[o½uöìY½^ïV…\.ŸÒâ™P‡/ÌØØ˜H$:þ7rkWW—[…z8‡öôô,\¸Ð¦ÑÏÏoíÚµ111555—.]"ÛoݺNu  È÷ËÌ™3ŽB}4 …Âîîn‰D¢×ëãââè»ØÄìíí]²d µ566Öfg¹EEE9ËÊ5Àç¡éééÕÕÕñññ‘‘‘dãܹsÉwA:®µµõŸ±gx8ºÁ`xçwd2™Z­.**¢o²‰ùôÓOwvvR«W®\± å,7/³k<ü“îÝ»70²}ÕªU:.'''33“꜒’²k×®Û·owuu­^½º°°ÐEd½^ïvô‰‰‰ÉÉI¡Ph0rrrBä kÏ–-[d2YUUÕÀÀÀo¿ý¶gÏ›ÓÊôãÿçP©TêïïOŸÎGFF6mÚ"•JÇÆÆÈ Ô[ƒ\6™L¯½öš¿¿?½Ñf\ª¥   888""¢¨¨(===,,ÌaL³Ùœ——·páB‘HôòË/“o@újŸ›ÍTîVÀ‡†Â^(þ.        ŒoíëÓiµ:¶³`„ƒ«M+W®ô~®¹.Bhî\øß‘)B#""¸yc“FÂãñ"#-l'bKZZZDD½…Gpþ–ðk×î&$ä!„vDG‡»íÏ.>0‡VWw3~MMÛ¹¸‡ëB ‚8q¢Íl¶šÍ–'Z¹4Ò[>467÷°•8-ôÔ©v`J†¯²²­|˜À]¡F£©¶¶Ólžr2o6[kk;F[Y¹…»Bëë¯fûv£ÑÔÐpÕûù0„»BOž¼Èç;¸‹“Ïç<ÉÝ£ž£BGGgÏ^søn6[®êõÞÏŠ ZWw™:[²Çd²ÔÕuy3æpôâˆN762òï ÓîÝ•¡¯¾J¡ZžxbVPˆ…ÌÜááÝw›  Ý—H$Dýï!ìeÄŽò¾                                £;˜5M}}½²qFy¹!”–ö‹9$&&>ûì³îû1yÂùL<áóøüvs°yÆ3¦qK87ïÆ÷ÌÓŽçP`°P`°P`°P`°P`°P` …z­Š=TšÇZ‰† À?MôNûQÁÎ;]ï倅z§ŠÃQ¨+ÎöòÞ˜C½PÅÆþH·Ù ¾*3˜—wÛ ±TÅÆd2Q}ìHÀ«Ò8íɤÇ«ØÔÔÔ¸ ^•ÆÀs(+UlBnkÕW¥q†—ÎC½SÅÆàUiœœ:»Ul\ì_•ÆLæŽW±!M6{W¥qÚ“I'\ņ¹Pü],,,,,,ß:>>9>>ÉvŒ˜ÆÅ‘£G>¾<\ÓÙùÇC±±,ßÄiÍÊÊz|y¸&8xA ÂB%[ 0‡£Ï¥sÿ¾>.nB¼ÎÎ}ÁÁ\|f(˜CëêºÈk¿þÊѧÚÒñ¡rùy‚@rùy¶sq×…öö_ºt‡ «©Õ·{{‡ÙÎÈ \ZSÓÁçÿ“$ŸÏã~I%® U(.PÅÌfB¡¸Àn>ná´Ð7º»h Dw÷ÀNwàœZUuI àÓ[~u5§K*qW(Aåå슫XŠ \>wæ®ÐŽŽ^‡ÅQµZ]gg¯÷óaw…*•j›ãD à+•jïçÃŽ µX¬¶Ç;‰Ùl©¨¸h±p´G…¶¶jtºq€/ lþ üáá±¶6 Û9:†£µ@‚»w¯¡Vkk;BkÖ,¦w`!-øÀÕ&„PVÖq„Б#ÙNÄ=}},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,˜)w0³û8hÌž…2®³ˆcèmï±OKK‹‰‰ñn>>ÌÕ«WËËËé-¶BcbbV¬XὌþsà9,,,,˜iÿ4ñ7ÞX¾|yNNuÒªÕjßÿ}•J…2 ¥¥¥çÎ MHHذaƒP($w´VVVFíûˆ¸ŽOOò±âÉo=U*Õ›o¾i¿éàÁƒƒƒƒûöí ½sçÎÁƒGGG·mÛFn=|ø0ýaò!>ŸŸžžîAa¿¿¿Ë–-UUUPƒÚàÉ!Ÿ””ôý÷ß;xâOSS“D"‰ŒŒ ŒÝ¶m[ss3µ5000x*R©Ôóô§Â$¾ÕjÑO„¦¥¥‰Åâüü|ûÞúùù)•J*ãØØX×5AµZ-y¨¶´´¤¦¦ŽŽŽ"„222ŒF#µ•Þ“\hnnÎÈÈHNN>tèY•Åu|Š?ü!”’’B®šÍæâââääääääââb³ÙLî¢V«ß}÷ÝË—/OG Bž 1cFvvv{{û™3gl6Éd2µZšš*“Éärùàà }«Ñh4аXþ}¾À+¯¼_XX¨Óé wïÞ=kÖ,9(•ʯ¿þzÿþýmmm?ÿü³ÛøEEE¡ÊÊJrµ¢¢¢¿¿ÿÈ‘#ùùùjµúÇ$Û Evv6U‚9þ^~Á‚R©ôСCK—.¥·¿ð r¹üÆ.\8sæÌÑ£G?ÿüó„„rë|@ï¼ÿ~±XL­~ôÑG™™™Ÿ}öÙÚµkÝ–èØºuë‚ ȘǎÛ¸q£Ûø©««ûî»ï‚ƒƒÃ²²²Š‹‹ß~ûm„T*eT¸×Ï@œœ|îܹ¼¼¼?þ˜l1---+V¬ˆŽŽŽŽŽÎÈÈ(---..¦„–••=õÔ”úÆZ­–Zö÷÷_³fÍñãÇóóó퇳™^H›!±X|ïÞ=&ñ200°~ýzjU$Qa]ïè ÏÏCy<ÞÎ;ÿúë¯ÚÚZ²… ˆÜÜ\FCuxñÅw:uêT||<<|ëÖ­ …‚\={öªU«öîÝÛÚÚÚßßåÊ•~øz{º† ˆ¤¤¤|ùå—ííí---!„Ðï¿ÿ>>>NÍz$‡Öjµ×¯_?vìØÊ•+§›¹Á` ^ýõ’’’ÁÁAF³cÇ¥òQŸùú¨ß”’’’âãã©Õ;v$&&–””lÚ´)77wñâʼn„I¥Rù÷ß§§§Ï™3gûöí£££›7o.**’H$«W¯¦÷OLLüôÓO³³³—-[¶aÃæ Ï›7ïù矧óÍ›7ûùùI$’íÛ·?÷Üsþ_Û+ö999¿êµï XQilla Simple API Documentation SourceForge.net Logo

StaticAnalysis::VarEntry Member List

This is the complete list of members for StaticAnalysis::VarEntry, including all inherited members.
hashStaticAnalysis::VarEntry
nameStaticAnalysis::VarEntry
prevStaticAnalysis::VarEntry
set(const XMLCh *u, const XMLCh *n)StaticAnalysis::VarEntry
set(const XMLCh *u, const XMLCh *n, size_t h)StaticAnalysis::VarEntry
uriStaticAnalysis::VarEntry
VarEntry()StaticAnalysis::VarEntry [inline]
XQilla-2.3.0/docs/simple-api/classATQNameOrDerived__inherit__graph.png0000644000151400015140000001510411653571064022613 00000000000000‰PNG  IHDR˜Ã4*wbKGDÿÿÿ ½§“ùIDATxœí{TWâÇoLPÀ „Rä¡ .Š­Ee)꺶ÚZ¡ J­íЇ¥Ç]W`⻧튢àƒ*AE¥ti—Gêº*ò’+å´ ϘL2¿?®fÓ!x{?‡?f&÷ñùdn&f†B’$À¼üL1vÌø€E"‰X$"Ðt¿¼råʉÉ–‚‚¯RtµR(??¿™3gŽw*Ì(hjj*))æû©—ËÕ]ch¸\î°¦ðg$"`‘ˆ€E"‰X$"ŒƒHŠfffþþþUUU:Ê“$¹eË:>ö®ÇBkkkXX˜³³3N_´hÑÕ«W£¾¾žB¡Œ½ñÙ#oß¾-‹Åb1ŸÏwww߸q#9ô—žÖÖÖ¯¿þº¦¦f\ºÖŽŽsss.—[ZZºiÓ¦ÐÐÐï¿ÿ~ì- …B&“9övFË0gvFˆ­­­ÀÎÎîСCl6û—_~a±Xƒîïï899K×ú‘xêÔ)8;wîܶ¶¶Ã‡ÿácË*•ª££cÌG`'uuuêY‰D2uêT™Lgåry\\‹Å²µµ‹‹“Ëå Àf³‡*PWW(,,œ9sæÍ›7€fffzxxX[[Ÿ¿páÂ={öhnþøÇ?÷ôô ,; –J¥iii€ŽŽŽ””///>Ÿ/|}}ãââ†j_*•$ÉPk´yóæ   ††>Ÿ?oÞ¼ÄÄD"µb »vGe±X999­­­ß~û-‡Ã™D"5¡Óé555êW=<<Äb1œ.((X°`ÖªU€ÏçUvÊãñH’”ËåpH˜3gNNN,VSS£žX]"‘Ô»¬r¹œJ¥þøãp6''ÇÍÍM‡H­îÝìٳϜ9£.pöìÙI$R=´ööö~öÙg~~~êWMMM55[ZZj­êPà8hØéƒ4˜šš ‚ñ­Îf³oݺ¥Y¬´´ôµ×^ëíímjjô÷÷Ãå|>ßÔÔT3smm­¦H­î™™YUU•ºÀ½{÷ÆEä8477ÿàƒ~úé'òÅžÊd2Õš¥RiII‰V•¡ ˜˜˜è.0eʯÂs8‘H§«ªª8 £úºuëŽ9Bj '™™™ …ÂÜÜœÍfS©T¡P—744888Ài‚ ---šýjÅv휫««Õ~úé'ÕGnÏ`ô;>tuuÁÙØØØàà`‘HT]]íëë£õžÕ£€V§p:!!ÁÛÛ[ ÿˆˆÕŸ}úâÅ‹á¡{ OHŒ¡Á¿Gþ†À"‹D,°HDÀ"‹D,ÐÙÜ,mi‘;…Áþ’ßýîwl6{Â;ííL“Ùnì úóøñcøÃŽŽ2Ãü«GHHȸF2B!ƒB¡¸»+D¬­­=<•¡APd~¾@ý­c …2?Ÿ?‘y&OšK¥½]]ÿûâ±woàÀwÕKfÌ0µ¶žn„d†d|®XžTX[O×ô4}úTÀ+¯0Œ—h"@phým‚E"‰X$"`‘ˆ€E"‰X$"`‘ˆ€E"‰X$"`‘ˆ€E"‰X$"`‘ˆ€E"‰X$"`‘ˆ€E"‰X$"`‘ˆ€E"‰X$"`‘ˆ€E"‰X$"LÞ+– ÕŒ —.µBBÆÞ”‹‹ËŠ+ÆÞŽA0ðcôg¼îùK¥ZR©–ãÒTHHˆ±·ÊLê¡u\6AtDçØÛ™ä7“žÔ"1#‹D,°HDÀ"‹D„—^$…B©¯¯7v ãóÒ‹T# ™L¦±S tDªTªŽŽc§0èˆôóóØÙÙÁY…B±sçN6›Íb±vîÜ©P( %==ÝÓÓÓÖÖ699ùüùó³fͲ´´Ü·oŸ1£èˆ,))´µµÁÙcÇŽ566–——ÇÇÇÃå………¥¥¥ÉÉÉŸþy^^ŸÏOIIIJJzé÷江„4!!!#9× ¨««#I²®®Nsu<<<Äb1œ.((X°`,\YYI’¤\.ך†Œ=±@ð~­‘Hdoÿ¿ÇÓYZ>ÿÄÂÂ`bb¢5ý²ƒÎЪ“ÉTïdR©¼ƒšÈžž8ñî»ï~þùç>äóù«W¯þꫯŒÌР#ÒÙÙyéÒ¥êá4))ÉÂÂÂÇÇç7Þ˜?þÁƒÏмôŸ‘ä‹U¡Ñh7oÞT/·°°HOOOOO´°Žé—töÈß8X$"`‘ˆ€E"‰X$"`‘ˆ€¾È¾>y_ŸÜØ) Τ>!  Ož<9ÆFª«ŸR(ÀÛ{¬W …B—16b8&µÈŠŠŠ¨¨¨16bcóI‚¯¾º6ö<“Yää½k\hoïññ‰€R]ý66¨=3RÄ?#óóù$ H’ü׿|Š«&ˆ‹ärKI@r¹¥ÆÎbXPÙÔ$¹wïI’*¨¬|ØÔ$1v"‚²Èo¾©¢RŸ¯ •Jùæ›*ãæ1((‹ÌÎ.#ˆç?'2;»Ì¸y ²"_ øúúÆÅÅi®…VGƒæ„eV­ZU[[[RRâææûî;R©"U~>¿¯OnìDe‘……5 ÅógŸ+ÊŸŒ›Ç  ,òòår9ʯgQY‘Riï?ü¬R=?”W©T<ÞÏRi¯qSdEþë_|­/d$ òóÆÊchyùòÀÃTr°…ˆ€¦H±¸³´T¤W!*y÷nc[ÛSc¥2(hŠÌÍ­ô<•JÉͤ×Å4E^ºT¦TrÆR©T¡zfA‘"QûýûâAO=“$¨©i‰Ú'>•¡™,ÿ|5ŽTTˆ<=9*• Îvvö¬¬Ìáì”)S**DÎÎcºHv¢çÏX/QQg'Nl5vÂàÐúÛ‹D,°HDÀ"‹D,°HDÀ"‹D,°HDÀ"‹D,°HDÀ"‹D,°HDÀ"‹D,°HDÀ"‹D,°HDÀ"‹D,°HDÀ"áWW,¯\¹ÒˆQ D[`g×jì ã|\1äW")ÊܹsY,–1RaFÁ“'Ojjj4Ýiß "$$d’?Ôøá‡þú׿j.ÁŸ‘ˆ€E"‰X$"`‘ˆ ç-ÌÎ;—‘‘—ïß¿`É´´4777™LvöìÙÒÒÒÖÖVggç¥K—nÚ´‰J¥Ô…iiiÙ²e 7þ\‘ÉdgΜ)++‹ÅNNNË–-SÇÐ$00P=Íf³çÏŸmee5’.Æ^¿ôI’dqq1‹Åâñxj‘þþþW®\ˆÅ☘8 ˜1cF__Ü‘‘‘§OŸ®¨¨8|ø0|ˆý7x<Þo¼¡G˜‘cX[[GEEq8£¼¼üÈ‘#0†&_~ù¥½½½J¥jjjºråJdddzz:N¶:j˜5Ð…>Ckccã£GvíÚU__ßÜÜ N›6ÍÆÆÆÆÆ¾sm^@£ÑÎ;geeuìØ1___GGÇeË–¥¦¦ŠÅâo¿ýÖ]»víßÿþwC?ÑÆ8zôè믿®ŽÑÖÖ–ŸŸ?°°••• “ÉôññÙ¿¿½½ý¥K—FÒ‹¥¥eddäxg}DÏŸ?ÿÕW_urr*..¶|AAÁû￯ù®755Ý´iSaa!œ qrr:räÈÀ;Þ¹s'""bõêÕ6l¸pá\˜ŸŸ¿uëÖwÞyçÂ… ÿþ÷¿CCCß|óÍôôtX€ ˆÔÔÔõëׯ_¿>55• 1 ZZZ+++7nÜ(hß÷œB¡¬[·®¤¤d¨Æ5«÷ÝwpdþË_þòÏþVQ(k×®…- ¬®R©²²²ÂÃÃ׬Ysÿþý‘XÐbÔ"á¸X¾|ù°CyOOD"qssÓZîîîÞØØø<Ä”){ö쩨¨øþûï5ËôõõÅÇÇ»»»gffFGG§¥¥uvv—***Ž?™––vçÎÓ§OGGGŸ?¾«« pùòe±X|âĉ#GŽTVVfdd ÃÍÍíÑ£Gp:;;{Ïž=îîî×ÂÑѱµõùÙÚZ=((èÆð­YVV6mÚ´E‹ ZýÊ•+\.722òüùóáááú=®yÔ"þùç'Ož,_¾°|ùr‘H¤ö¡ƒO·#IRsçpttŒŒŒüâ‹/žù„Åb¹¸¸DEE•––ꦾ³kdd¤©©©îuªq­êK–,éêêzðà ¨¨hõêÕð¨j`õÜÜÜ?þxÙ²e Ã××W¿‘yÔ;ÅÅÅJ¥òí·ßV/áñx³fͪ|¸¿¿_kG177‡´¦!mmm6lPÏNŸ>]ãÕW_ÕŠ1{öl8­•G“ææf‡3TãƒVŸ6mš¿¿ÿ7œoß¾––6Tu‚ 4‡ —¡bè`t"U*ÇÛ¾}û[o½—dddðx¼mÛ¶éx¢äŠ+Î;·`Á¸ î߿ɒ%.\PñB(ÊîÝ»?üðü¼<¸äÙ³g‰‰‰‰‰‰‹/V(ƒ• Š¥¥å±cÇÀ‹±]ÃÇÇG=Èd²‹/ª7«æ[A’$sssýüüt4>hõ   /¾øÂÍÍmöìÙŽŽŽCUohhpuu…D"ÑWS“Ñ ­|>_*•®\¹Òì+V¬hnn®¯¯×QkëÖ­‰$..®¬¬¬¹¹ÙÞÞ>))I.—¿ùæ›Z%ííí£££Õ§T(AÐh4¹\?ŠúúúF’sÙ²eiii? …»víºvíŒ!•J?ýôÓÒÒÒæææ›7oFGG3™LÍÑEMgg§D"ioo¯®®Þ·oŸX,~ï½÷t4>(‹-êéé9sæÌš5ktd[·nÝñãÇoݺ%‘HJKKÕ‡l£bt{dqqñÂ… 5¿»»»s87è1ÄÜÜüäÉ“Çoiia2™[¶lûÛßâããµ ¯]»öæÍ›ååå:””dff´k×®«W¯›ó£>úòË/#""(ÊòåË£¢¢4c¤¦¦¶¶¶ÚÛÛ…„„˜˜˜ l!&&N°X,ooï“'Oª‡Ð··~·{PTT #›‰‰‰B¡8~üxGG‡««ë¾}û¶oß>ì:j¡ýÃrBBÂÄüIDmmíܹs' /ô€¿Gjº3Ú¹V†-Ž#ø¤9"`‘ˆ€E"‰X$"`‘ˆ€E"‰Úgv\\\¬­­3¤R©P(ò’ „Ñ­ßãÐ~äoü‰X$"`‘ˆ€E"Âÿ¨÷h*ºß6{IEND®B`‚XQilla-2.3.0/docs/simple-api/ATBase64BinaryOrDerived_8hpp__incl.md50000644000151400015140000000004011653571063021550 00000000000000fef025295e71ffa023de7d8cd72c01f8XQilla-2.3.0/docs/simple-api/StringPool_8hpp__incl.md50000644000151400015140000000004011653571063017426 000000000000009e44e00f19b051155f0ac8215b6a7603XQilla-2.3.0/docs/simple-api/VariableStore_8hpp__incl.md50000644000151400015140000000004011653571063020070 000000000000000351f74594ec7ee3204384c28135440fXQilla-2.3.0/docs/simple-api/XMemory_8hpp.html0000644000151400015140000000573311653571064016060 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

XMemory.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <stdlib.h>
Include dependency graph for XMemory.hpp:

Go to the source code of this file.

Classes

class  xercesc::XMemory
 This class makes it possible to override the C++ memory management by adding new/delete operators to this base class. More...

Namespaces

namespace  xercesc
XQilla-2.3.0/docs/simple-api/hierarchy.html0000644000151400015140000002774311653571063015503 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

Class Hierarchy

Go to the graphical class hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically:
XQilla-2.3.0/docs/simple-api/XQQuery_8hpp_source.html0000644000151400015140000006532211653571063017415 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

XQQuery.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef XQQUERY_HPP
00021 #define XQQUERY_HPP
00022 
00023 #include <xqilla/framework/XQillaExport.hpp>
00024 #include <vector>
00025 #include <string>
00026 #include <xercesc/util/XMemory.hpp>
00027 #include <xercesc/sax/InputSource.hpp>
00028 #include <xqilla/runtime/ResultImpl.hpp>
00029 #include <xqilla/context/StaticContext.hpp>
00030 
00031 #include <xercesc/util/RefHashTableOf.hpp>
00032 
00033 class DynamicContext;
00034 class XQUserFunction;
00035 class XQGlobalVariable;
00036 class XQQuery;
00037 class DelayedModule;
00038 class DelayedFuncFactory;
00039 class StaticTyper;
00040 
00041 typedef std::vector<XQGlobalVariable*, XQillaAllocator<XQGlobalVariable*> > GlobalVariables;
00042 typedef std::vector<XQQuery*, XQillaAllocator<XQQuery*> > ImportedModules;
00043 typedef std::vector<DelayedFuncFactory*, XQillaAllocator<DelayedFuncFactory*> > DelayedFunctions;
00044 
00045 typedef XERCES_CPP_NAMESPACE_QUALIFIER RefHashTableOf<XQQuery> ModuleMap;
00046 
00047 class XQILLA_API ModuleCache : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory
00048 {
00049 public:
00050   ModuleCache(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm);
00051 
00052   void put(XQQuery *module);
00053   XQQuery *getByURI(const XMLCh *uri) const;
00054   XQQuery *getByNamespace(const XMLCh *ns) const;
00055 
00056   ModuleMap byURI_;
00057   ModuleMap byNamespace_;
00058   ImportedModules ordered_;
00059 };
00060 
00075 class XQILLA_API XQQuery : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory
00076 {
00077 public:
00079   ~XQQuery();
00080 
00082         // @{
00083 
00092   DynamicContext *createDynamicContext(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr =
00093                                        XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager) const;
00094 
00108   Result execute(DynamicContext* context) const;
00109 
00124   Result execute(const Item::Ptr &contextItem, DynamicContext *context) const;
00125 
00141   Result execute(const XMLCh *templateQName, DynamicContext *context) const;
00142 
00153   void execute(EventHandler *events, DynamicContext* context) const;
00154 
00166   void execute(EventHandler *events, const Item::Ptr &contextItem, DynamicContext *context) const;
00167 
00180   void execute(EventHandler *events, const XMLCh *templateQName, DynamicContext *context) const;
00181 
00201   void staticResolution();
00202 
00215   void staticTyping(StaticTyper *styper = 0);
00216   bool staticTypingOnce(StaticTyper *styper = 0);
00217 
00219 
00221   // @{
00222 
00224   const XMLCh* getQueryText() const { return m_szQueryText; }
00225   void setQueryText(const XMLCh *v);
00226 
00228   std::string getQueryPlan() const;
00229 
00231 
00233   // @{
00234 
00236   ASTNode* getQueryBody() const;
00238   void setQueryBody(ASTNode* query);
00239 
00241   void addFunction(XQUserFunction* fnDef);
00243   const UserFunctions &getFunctions() const { return m_userDefFns; }
00244 
00247   void addDelayedFunction(const XMLCh *uri, const XMLCh *name, size_t numArgs,
00248                           const XMLCh *functionDeclaration, bool isPrivate = false,
00249                           int line = 1, int column = 1);
00250   void addDelayedFunction(const XMLCh *uri, const XMLCh *name, size_t numArgs,
00251                           const char *functionDeclaration, bool isPrivate = false,
00252                           int line = 1, int column = 1);
00254   const DelayedFunctions &getDelayedFunctions() const { return m_delayedFunctions; }
00255 
00257   void addVariable(XQGlobalVariable* varDef);
00259   const GlobalVariables &getVariables() const { return m_userDefVars; }
00260 
00262   const ImportedModules &getImportedModules() const { return m_importedModules; }
00263 
00264   ModuleCache *getModuleCache() const { return m_moduleCache; }
00265   bool isModuleCacheOwned() const { return m_moduleCacheOwned; }
00266 
00268   const XMLCh* getFile() const { return m_szCurrentFile; }
00269 
00271   void setFile(const XMLCh* file);
00272 
00273   bool getVersion3() const { return m_version3; }
00274   void setVersion3(bool v) { m_version3 = v; }
00275 
00276   const DynamicContext *getStaticContext() const { return m_context; }
00277 
00278   XQQuery *getNext() const { return m_next; }
00279   void setNext(XQQuery *n) { m_next = n; }
00280 
00282 
00284   // @{
00285 
00287   void setIsLibraryModule(bool bIsModule=true);
00289   bool getIsLibraryModule() const;
00291   void setModuleTargetNamespace(const XMLCh* uri);
00293   const XMLCh* getModuleTargetNamespace() const;
00295   void importModule(const XMLCh* szUri, VectorOfStrings* locations, const LocationInfo *location);
00296   void importModule(XQQuery *module);
00297 
00298   XQQuery *findModuleForVariable(const XMLCh *uri, const XMLCh *name);
00299   XQQuery *findModuleForFunction(const XMLCh *uri, const XMLCh *name, int numArgs);
00300 
00302 
00303 private:
00305   XQQuery(DynamicContext *context, bool contextOwned, ModuleCache *moduleCache,
00306           XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr);
00307 
00308   XQQuery(const XQQuery &);
00309   XQQuery &operator=(const XQQuery &);
00310 
00311   XQQuery *parseModule(const XMLCh *ns, const XMLCh *at, const LocationInfo *location) const;
00312   void executeProlog(DynamicContext *context) const;
00313 
00314 private:
00316   XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* m_memMgr;
00317 
00319   DynamicContext *m_context;
00320   bool m_contextOwned;
00321 
00322   ASTNode* m_query;
00323 
00324   bool m_bIsLibraryModule;
00325   const XMLCh* m_szTargetNamespace;
00326   const XMLCh* m_szQueryText;
00327   const XMLCh* m_szCurrentFile;
00328 
00329   UserFunctions m_userDefFns;
00330   DelayedFunctions m_delayedFunctions;
00331   GlobalVariables m_userDefVars;
00332   ImportedModules m_importedModules;
00333 
00334   ModuleCache *m_moduleCache;
00335   bool m_moduleCacheOwned;
00336 
00337   bool m_version3;
00338 
00339   enum { BEFORE, DURING, AFTER } m_staticTyped;
00340 
00341   // The next module with the same target namespace
00342   XQQuery *m_next;
00343 
00344   friend class QueryResult;
00345   friend class XQilla;
00346   friend class DelayedModule;
00347 };
00348 
00349 #endif
XQilla-2.3.0/docs/simple-api/inherit_graph_48.png0000644000151400015140000000277111653571064016476 00000000000000‰PNG  IHDRm({ãÞbKGDÿÿÿ ½§“®IDAThíšMHKÀ·&è¤!ݘĵb¡± Q,Ô‚º´=z¨QR«ÒƒJ+-F©öC'•‚‚‚ ˆ´?âAòˆÉ#$x<âá—=NLLÈåò·oߊ‘þþþÈÈHžçQucc£¶¶6555::úÊ•+OŸ>ÝÙÙAMgBe?gvvö¼~ý:(’úúz­VëñxàÇ4M777£¦õõu½^Ï0ÌÀÀ€Ãáxÿþ}rr²ÉdÚÙÙA–FGGÿÚËà —ËEQ*¯¬¬Ü¿ãÅÍf³ÙlŒÅ£Ïç3 åååPYYyùòeAP˲ÙÙÙÈÂëõ^¸p¡££‚p:¿?Ãàt:3—£Ç#|ùòE.—?yò$**Šçy1®Õj‡††‚:···gggÃþûûûišv»ÝðòåËÄÄD¯×»½½m³ÙâããU*Uqq1Zþ ˲jµ:&&†eYA²¾¾¾K—.ÅÄÄTWWommQE„F£½N=Oii)EQqqqV«uss%öâÅ ½^¯T*[ZZœ>6PWWG„xG£ ‚XYY êi·ÛÏ;‡Òœœü{/¨OIIIiié·oß4ÍçÏŸ µµ5%%…ã8žç322X–E=[ZZnݺµ°°Àq\zzz]]Òtýúõ™™™±±1NרØè.°\TT”››ër¹8Ž3 (±üü|ÇÓÙÙIÄêêj˜<îîîÞ¼yS&“ݹs'Èã÷ï߃:ŽŽªT*ØçÁ»øÙóçÏF41HJJêííEå¯_¿Še½^/îªCCCiiiHÇqâ,t:]H‚ Èd²ééiïííÕét(±OŸ>¡‡Ù|°yìééQ(###$Iöõõ‰q­V;<<Ô¹½½=++ Ú=z$“É–——Q•$ÉÀC„$ÉÀ¯A¡P M耩©)’$Cz\\\ ìÉqI’(1‡Ãñ¯‘#y<Êùqii©¦¦¦µµ•a˜†††ŠŠŠÕÕUÔTTTÔÔÔä÷ûQÕb±¼zõêÙ³g‹åç×\\\lkkËË˳Z­(BÓôüü<*ONN>~ü•U*•8OÇ366†âHA3334M‡E£ÑÈd²¹¹9Tu¹\qqq¨ñ{Gé@©‡Y»»»7nÜÈÉÉñûý ‚Ñh´X,¨umm-))Éd2 :Ž¡V«}>ìîñûýyyyMMMn·[«Õ~üøŒF#Ïó<Ïgff–••¡!jjjòóóçç秦¦222ªªªA“Éät:ÇÇÇm6 ¢ý7pmÞ¾};77wnnŽçù””›Í´‰ðÜ×ÝÝÝQQQâ]ãããïÞ½CU¯×kµZ I’/^|øðaNNNaa!ì¿?>þ<55ž>|øëv»·¶¶X–¥iZ¡PX,ñ÷z}}ýîÝ»J¥’¢¨òòò ¤©««+!!A¥RUWWonnnoogeeEGGyt»ÝÅÅÅEÅÆÆÞ»wOü½·Ç#àóùìv;öËŠüÑ£bHðì¿JddäÕ«WÃ0Ð1ržSœ={¶¢¢âxs8 ÕjuGGÇñæp<þ<âAòˆÉ#$x<â!Äû×®] ' žç† Œìñ/½Üs† ú‡v¤÷šq íx<âAòˆÉ#þg|ÐÒ!IEND®B`‚XQilla-2.3.0/docs/simple-api/functions_func_0x67.html0000644000151400015140000012427711653571063017334 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
 

- g -

XQilla-2.3.0/docs/simple-api/URIResolver_8hpp__incl.map0000644000151400015140000000003511653571064017604 00000000000000 XQilla-2.3.0/docs/simple-api/ATStringOrDerived_8hpp__incl.png0000644000151400015140000003121111653571064020731 00000000000000‰PNG  IHDR`u§FbKGDÿÿÿ ½§“ IDATxœíÝw@S×þðÂÞ3 dª D­“:jµj­[j—OÀ>Ÿ¿WRgë¨Ñ÷Z[Q[å9*ˆZÇó©µ.F@d[Ù`ƒÌ$qœ6 Y"„„ñýü…—Üs¿÷Þ¯7_ι÷\A€?i¨;0°@ºt"èFSÝ·{÷îíÞ½[ÝQ€~±uëÖiÓ¦©; €@è‹õÛo¿MŸ>]Ý%KIIY»v­º£¨ˆ%رc‡ºCJ–’’¢îj÷ €n @Ý@ºt"èžb¨ÎéÓ§O:µvíÚU«Vá%III»ví’þä‰'ìììâââîß¿ßÔÔdee5cÆŒ   mmmy×ÔÔ|øá‡ÉÉÉo—Ë‹‹ËÌ̬««spp˜2eÊŠ+Èd²ÄÇE?[[[{{{¯[·ÎÔÔ´'›èulŠ[ <{ö¬]¯›™ @¨AIII %99YT Nš4éÒ¥K¡ºººõë×ãŸBÆÆÆ111,kçÎVVVÕÕÕß~ûm[[Û† êêêBCC¯^½*Ѿ¡¡áÊ•+ß4ªW¯^­[·ÎÌÌ,$$ÄÖÖ¶¢¢â§Ÿ~ÊÊÊŠ‰‰ÑÐc9räȈ#„BáóçÏ/]º|òäICCÃ×n¥w±€ºÀ3@E***ª««###KKK™L&^¨££cnnnnnŽ»âÌÿ¤©©ùðáõk׺¹¹™ššÒh´ 6ø!TSS˜½|ùò[·n‰Fûí·?þxÁ‚ñññ!‚ ®]»öÉ'ŸÌ›7oãÆiiiøÃwîÜùè£Ä; uuuW¬XqçÎñÆóóó%Â#‘H ,HOOÇÿäóù±±±‹-Z´hQll,ŸÏ—ÛÖ­[øá¼ Ç›?>nAzu¡P¿zõê¹sç®_¿þéÓ§2RVVVPPÐüùóÏ;': =Z½zõ¢E‹¾ûî;'saON`Ø‚  x|yÆŒ¡©S§öän¼ˆˆˆììì%K–DDD$$$°X,¼X—/_}òÂ… QQQnnnâ«?|øðûï¿ 9vìX[[Ûÿþ÷¿3gÎüýïÿù矃‚‚¾ÿþ{„‡Ãijjruu•Ø´««kuuµ‚Æ1*•Z[[‹¾xñb]]ݱcÇbbb²³³O:%sõ3fÜ»w „Pff¦ŽŽN@@€ÌÕ/]º”|æÌ™Õ«WÇÆÆÊ}º»»»»»ûêÕ«ãââbccq¤é…–––!MÍ?®rµµµâ›sttDš››—––úùù‰¯[ZZ:jÔ(cL&ÓÖÖÿüâŋŋ‹~e`` suI“&Ý»wÏÑÑ155õĉòVçóùâ]›ÎÎÎ2c°°°@‘H$ñ…T*U´õ—/_*X2AèwB¡099ùóÏ?ï½÷ð’S§N%''úé§•A»wïvppÀE‰D ¸~ýºÌ‹ª@q-[[[WTTˆÊ¬ªª*üÃÌ™3OŸ>íëë+º ‘Ëåž?^T®ÉlýySã„ ð?MLL>ŒgœÁ#×òVŸ1cÆwß}çêê:jÔ(QÑ&½úöíÛËÊÊ\\\ð*++e†!ó2™L¼§ÏŸ?Ǥ¼…  1ú]^^^ssó¬Y³ôþ4sæL&“YZZ*o==½Ù³gýõ×éééuuu………Gï>ìèèx£ÞÿýcÇŽeee±Ùì'OžÄÅÅáÒêã?nnnÞ¸q#ƒÁ`2™|¸µµÕÓÓ3444::!¤¯¯üøñS§NÅÆÆÖÖÖŽ1bÆŒK—.ÕÒÒ’ndýúõø …B£ÑŽ?.J^³fÍ‘#GÖ®]K"‘¦NÒÐÐ 3MMÍiӦݽ{wÚ´i¢…Ò«kiiñx¼£G666º¸¸lÛ¶ ?¾}ðàAÑveš9sfXX—Ëų‹ãe‰…=?t€aˆ„¦€Þ¹páÂòåËûòŽÕHKK£P(¢Ûû÷ïãêS½Q)Ì®ôî=. ¢.RÀ°CÌ€a¡¼¼|Ïž=%%%EEE'Ožœ7ožºƒ€ †˜Ê+¸\îÖ­[[ZZFŒñî»ïΟ?_ÝA)Ÿô~É\ @Èdòš5kÖ¬Y£î@ú—©©éÆ{²€!fÐ ˆ (@7P €n @Ý@ºinJÞƒOitutukk·ik³û=&)|¾®¦f'Bj~}”@ G&¿Ù‹¤ûˆÃ±#“»´µÙdr§*· ¼ @ô‰½½ýÒ¥Kåý¶«‹Ìfk·µi³ÙÚŽAttÖÖlkëWª ’ H55†/^¹º¶P(*Ý´„Žrv¶µ•×É©EKK¨šX¶¶j …$±q§±1ÏĤSOG")ZËÙÙÙÞÞ^5x3@™::º²²*Œr£"7·šÍ暘èÓéN4•Nwöñq02ÒUqHW…‡Ç3™Í;v,\µj‚††Â²¨ÿ%'ÿ¾iÓ6›»uëü   $Åeš’ÂÒÒúÌÌ |jª«õô´½¼ìètg:Ý) ÀÉÔT_a (}õìÙ‹¼¼ç™™ FEYY½PH¸¹Y㲃F³wu¥Éê¹Ý¹½½ó믯þüsú¤InÑÑË,Ô†´ŽŽ®C‡~MpŠŽ^æâBQq,V+ƒQÁ`TdfV0…BbäH‹€':Ý9 ÀiôhÇh @¼1.—‡û¢òò˜¹¹ÕõõmzzÚþþŽtºîìíí`l¬ênBiGD\`³;¾þúý%KüUÓQ÷F?® O¨ªj {'44PetvvîYÌ̬àryÖÖÆ4š=.ñ}}Gji‘Õ@ @ôHUU#ƒQŽ» ËËëù|á¨Q6xà8 ÀÉÅ…¢©9PfEhiyµ}û/—.=ž3Çë›o–X[«;"¹x<Áñã)ÑÑ·Üܬcb–Óhj¾çÏÕàJ1-­´¡c` ãáa‹G¢Çw¥?@ @ÈÖÙÉÏÍ­Æa^Þs‹­««àD§;ÑhöÞÞŠ‘ºc”áæÍüÍ›/òùÂo¾Y<¾ºÃé‘gÏ^„‡Ççæ> Ÿ££3Pÿ« ¤„E&“œ)¸gñ­·\íìÌÔ  ¿@ø “Ùœ–Vš—ÇÌ̬xú´–Ç88XàŠNwòð°8Ý„Ò9›7_º~=gÉÿíÛZZª;¢7@Ĺsé;w^µ´4ŠŽ^>i’«º#’ÔÐÀyò¤ŠÁ¨`0ÊssŸwuñ­­qÿ1î4v,uâz D†µ®.~NN·nBMÍ)ÒhTkkuÇØ#‰‰™»v]ÓÒÒÜ¿é̙꧗ž?oÚ´)ñÞ½gAA¶m[ ú'¾{ˆÇ<}Z‹G¢<(niyed¤ëãã€oB¥ÓN'( w @`Øihथ•⊰  ¦££‹J5›0Áwº»Û®‡êêZ6mJ¼{÷iPЄ­[ ›ä®_ÏùòË‹ZZä={ÏKSw8¯'>]\üBK‹ìîn‹{'Ov333Pw€€7"C'xò¤ 3å,[K‹ìãã€+B:Ýi°tJÀò»w_³°0ЉY>a‚‹º#Rš†ÎÎW/^Ìš?ßgϞŃh¸œÅbçå=Ç#Ñ99Õ<ž&Ð`0‚€¡©©©ýñãJü=]TTÛÞÞiaaøÖ[®N4ÕË‹ª¯¯­îû¤¢âeXXBffEhh`XØ;ººZêŽHùîÞ}•ÈátnÙòžÊ¦ÔV¢ööÎÂÂܳ˜‘QÆfs)#oo˜@€ D†¡((`âãÌÌŠªªÆ¡ÑM(M ÆÆ&ÇÄÜvp°ˆ‰Yîçç¨îˆúÑ«W]‡ÿzôhÒ´i£÷ï_F¥Ö‡Å_å’–VVSÓ¬¯¯íéi÷ç:ÎÆÆzêŽð(ÄZZ^áî£üéÓZ§ÓÜÜÀÏÏ÷ÐxzÚè¨;F%+.~–—÷<2òÝààéä *+«",,ÉlÞ¸q¶§ÔV"ñW¹äç354H..L 3q¢ëà­ƒ2 @`0!¢¸˜…»ap7¡†ÉË‹ŠŽétç‘#ÊÛ䔎Ç8póøñÛC‡V¸»Ûª;"•ÂSj8p“F³?xpùPº™¯­›“S_åÂ`”wvv›@ÇË‹ªö×g0 AÀ@Çfwdd”ãÿsrªÛÚ¸¦¦úø»3 ÀÉÃÃÎÐp¨uJËÍ}¾qc|yy}xøœÀ<c¿zú´.<<¾  &8xzDÄmí¡6›Œø:–47·êøúŽÄè8 É›M€ @`Àï&ÌËc–•Õ …„››5®i4{WWÊdì¡ÎNþÁƒ·ŽK¦Ó\îèh©îˆÔL($~þ9ý믯R©f®ðó©îˆú‘Ä:ššvø¯£I“ÜÌÍaú ˆ ]YY•x”-7·šÍæë}|ìœÉý*5µ4<<¡¡¡mûö…ƒñ1ÞþS]Ý™øàAqPЄíÛ‡^äúú¶ÜÜjyèŒe é€A€Ú<{ö?qÌ`T”—× ÷›P‡Ó¹sçÕsçÒ§L½ÌÞÞ\Ý DׯçDE]44ÔÙ¿éôécÔŽê¼zÕUPÀüsr6»ÃÊÊ¿Ê&Ð@) @@u¸\žhà¿×NWW —Ñhö>>VVFêŽq@¸wïYdä§sß¾%óçû¨;œíå˶]»®á)µ÷î]2 G]Å'ÐIO/c2»M C§;™˜è«;F(è_ÕÕåø-&EE5|¾pÔ(}ZËã ìíÍÇwÆo1ñð°ƒnBÅX¬ÖÈÈÄ;w ?üpâ–-ïÁ˜`¯ed”‡‡'ÔÕµ|ñÅìuëÞ†H„ÏÕàJñÑ£’¦&˜@E @ 7x<Á“'U¸"d0ÊY,¶¶¶¦··¨›:dÞk§gϦíÞ}ÝÈHwÿþ¥o¿í®îp=.—÷ý÷w¿ýö7oo‡˜˜ånnÖêŽh Ÿ@§¤„E&“Dè¼õ–«……¡º@Í @ §9©©¥xะ°æÕ«.++£ \ð—Š»»-<8ù¦jjš7mJLIùýÓO§DF¾;<§òé'EEµaañEEµÁÁÓ##ß…äTàå˶œ˜@€n @@.@XXøÇ˜î&ÔÒ"ûø8àc:Ý º {M($Nž|}“B1މYN§;«;¢!ˆÏÆÅ=Ü·ïÆÈ‘®ðõuPwDƒ€ø: FEkë+ñ t||†ÞÛk DºinnÏʪÄ} EEµíí†o½åŠ_vìåEÕ××VwŒƒ^YY}XXÂãÇ•¡¡aaïÀ½_ýª²²!2215µdÕª ;v,40úSj+‹ø: FEuu£žž¶—×è8™šÂͲ`È‚ wB!QPÀÄÇ™™UU$//*8†nB儱±É11·]])‡¯ôô´SwDÃA/fíØqÅØXïÀ¥S§ŽVwDƒ’‚ tètç‘#-Ô Ê"ŽZZ^ý9„Tþôi-‡ÓiffàïõžžvÐËÒ j¾øâ|I +"bNpðt¸+NÅX,öÖ­—oÜÈ?ßgß¾%ffÃnJm%‚ tÀ"‚(.f‰ÞbRVVOî&ÄsVÃ_ÿýª«‹}ëøñ//»˜˜cÆŒPwDÃ×;…›6% ­[çó)µ•E|ÔÔÒÆFŽÎ¸q#ñ¼§ãÇ»ÃÓW`ð YlvGFFy^Þs£"'§º­kb¢ç ¡Ó}}GB7¡*ïêâ‹DK… tÀ€"ܸ\ž¨"ÌÉ©~ù²ÍØXoüxgÜMèííƒ;êòðaIDDBSSû¶m ‚‚&ÀáÄåòbbnÇÆ&ûû;<¸ÜÅ…¢îˆ†²ŽŽ®üü?&ÐÉ̬hiyed¤‹'СÓétg˜@ P ‚ÁçÙ³ø‰c£¢¼¼^ ÜܬqEàÝ„j×ÖÆÝµëÚ¹sé³g{îÛ·à jÂÂâKJXÿûÛ6Ì‚‡‡T@($JJþîÀ“'hi‘ÝÝmqÏâäÉnðP;(Á ÐÙÉÏÍ­Æa^Þs‹­««…¯¤4š½··…b¤îÁnß.ˆŠºÈãñ÷î]2¾ºÃ=Âã ŽO‰Ž¾åêJ‰‰Yáím¯îˆ†«5/)ïU.£GÛ¨;@0A¨çÏ›ÒÓËðËŽ‹Šjø|á¨Q6¢nB <ë0Ð45µùåÅë×s–,ñß¶m•TíƒLeeCxxƒQþñÇ“¿ürÌ ¯íí……5øïጌ26›kmmŒßÞàäë;ºxj@Š®.~NN·nBMÍ¿´€F³·¶6VwŒ@®ÄÄÌÝ»¯“Éû÷/5ËSÝá€^"âܹô;¯ZZ8°tòäQêŽhXãó…ee¼Ê%-­¬¦¦ÙÀ@ÇÃÃ_Çw66ÖSwŒ`È‚¨SC'-­ß²ýôi-'°·7?Þÿ¹ìîn +B!!ï)×/Z7mJüí·¢   [·Î‡o¬!€ÅjýòËK·o,^ì·sç"x¡Ü!þ*—ü|¦†Æ_¯r™8Ñ•J5Sw€`H¨'xò¤ 3å,[[[ÓÛ[ÔMH… .—÷ñÇ?~ÿýjKKCñ帷i÷îëÆÆº,›>}Œº"ýáúõœÍ›/ijjìÞýÁ¼yÞ¿mkã~ñÅù~X­­ ÏÞªA[7'§¿Ê…Á(ïìäë\€rAú]c#'5µÖ¼zÕeii8q¢+~‹ÉرT==¸Õi@ûç?Ï_¸Àxï=ïãÇ?-d2›##/Ü¿ÿlݺ·7nœ 'qHjm}µgÏÏžM›5Ësÿþ¥66ýý•xútêªU\®ÆBˆÇ<}Z‹{>,inn‡ t@ßA”O($ ˜øj…» µ´È>>xà˜Nw‚nÂA$>>#,,_'NžülΜ±B!qôhÒ¡C¿ÚÙ™:´ÂßßIÝ1‚þ•”ô4**‘ÍænÝ:Oi™‘QþÁßBˆtøðŠåËéêŽüEüU.ÅÅ/455<<ìpÏâ¤Inææ0è(Bµ·wôé½sÍÍíYY•x°£¨¨¶½½ÓÜÜ`Ò$7ÜMèåE…'"£œœê ¾åó!‰dd¤sæLÈ®]×rs«7l˜¹~ýLè™&::ºú566™NwÚ¹sÑêÕ'êëÙB!"“5._^' D,¿nTæ:£FY÷zû†ŽÄ='`ˆq¸ ‰Ó§SKIMÝüFW Q7!ž³ºªªQCƒäåEÅ!î ïUìššÚß~û@c#G â%ZZdMè8ž>,‰Œ¼ÐÖÖÁfsy<^H&k˜›$%EZX@¹0 ½zÕUPÀüsr6»ƒB1òövèÝ:særs£|ýõ"è’ª @ÖŠŠjÿùÏŸ j"RS·8:Z*þ|kë+\2OžTq8ffþþŽøúâáaghاnH0pÂåËffVˆê‘cÇ>†°‡­GŠ—-;*ñ½¡¥EöósLLü^b4XÂÒÒ?&ÐIO/c2›õõµ==íðó‚tº“‰‰¢G×ÛÛ;ÇŒùR(DFF:{ö,^¼Ø_e‘•q˜jiyµuëå_~É&‘HB¡PCC#&f¹ôDA³D/;.+«'º ‡ƒÃ‡‰¹…ÇÅihÌÌ >üRñ÷’x<ÁÌ™**ø|¡Ä¯Èd¿ÿýí¨¨yj ô‘ø:Lé¯ t&Lp±·7—øüýûÏV¬ˆE‘HˆD"ùúŽ }ˈ†I__çîÝé'0Hµ·wfgWáb1;»ª½½ÓÚÚ8 ÀéÙ³¥¥õõƒ¦¦ÆÈ‘–ÿú×*?¿‘ê (ˆÃ'øöÛ;ß~ûAÒÃC! kO§;ùù98ÙÚšª>H v|¾pÑ¢ïrsŸã'—Åéèhòx‚@NN–S§Žš;×{òd7µ ÔâÑ£Ò„„Œ‡K^¼hÕÐ ij’EH"šš®®Ö7on„ÇÛ‡>_XTTƒp¹};_æ÷™¬!«Vß¾}!Œ5 vP  YY_|q¾²²A PtºÏŸ6m´Ê¢ÐÖ­—OŸ~$ºôkkkvuñÉd ÇÉ“ÝètçqãFöqF$0Ø56r²³«ŒŠŠ k¡–YÔ³¨©Iž;—û‘zƒý'?ŸùÎ;1 > ¥E62Ò;p`)Üo0¨u+;::š››Õ Pºöö®~xpá„â?´´ÈŸ}6aíÚ·Þ¨}===3³¾¾´¹¹¹£££€¾KI)‰ˆ¸Š3…D"99™ÓéŽ~~ö¾¾TSÓáõ†e333=½¾îrmm­R‚ÈÛsrj²³ŸgfVUT4A"‘‚زeö¢E’oç*ckkÛÇdï… Ù11É nAAih„Bôî»cÂÃg˜˜ ¯«Ç &ž9ÝFÚÚÚŠ‹‹Uè/µµœ£GWV¶âÒDBd²A ™ÿ±ù|ajjñ´i¯™éF‚••Uß ÄÚÚÚ—/_ö±ÐG,VûŽ÷¨TC//Ї‡å˜1Z!„ˆúúçõõjOÅ<<<ú^ “Ë©½=²··_¸Ð¾½½ëÙ³¦ßo,,lˆ‰IÒÑẺöõâz§ï¢‚ì½V<ñ)2IDATÿw™Ý $‰L&!Dðùžáöíß jÖ­çèoÏäˆØôéÓU èg«V½'Y,6“ÙÄd6×Ô4×Ô43™Í/_¼híèàáijj…¨¼œ=uê´ž¿â½°°PYqZYYyzz*«5Ð åå/³²aò„PJJвšòðð P(Êjmà›÷ç,7\.ïÅ‹Ö×N­ ”®¾¾¾¨¨H)MÉËÞþ3YüŸd²†……­­ÙÈ‘66&vvf66&66ÆTª¹¥¥‘¦&L98HgÜG<ô‘ɶ¶¦¶¶¦t©×¥¶¶¾ª©i©©i~þ¼©¶¶¥®®¥©©Þž4<9;[©;0tèêjAu8$utt­\9ÞÊÊèÏBЄB1êõûúÀ@â°fb¢ob¢ïáÑ×ÁÞžö¦MsÕPèûÝ@ºt"èfЈÕÕÕŸ~úék?VZZгý ¾ú“'O455E˯^½ª­­ŸŸß1K ‰qttüè£O Hć~hhØÓgI$Rii©2"¤ÏµÄI— g›[ÕS°/=LæöööÈÈHoooCCC:¾wï^>ŸzuÜH²(kO_kX%v_²º'Ÿì;‰Kñ®]»H$Ò¾}ûúÒ¦R‘ øhÄÇÇËÌꜜ%Æ0¬R ªì%‘HK—.Ÿå±¿x£öUœ9ƒ¾@¼råÊûï¿/óWååå––̳`jjºiÓ&y«ûúúnÞ¼yÆ ---¡ÖÖÖÏ?ÿ|ÇŽcÇŽí¿ÈÅ¥¦¦ÖÕÕ1™ÌS§N±ÙìqãÆáHdª­­=wfºzäkÅp& êcÛ“dnkkó÷÷ÏÈÈØ·o_vvvTTÔÙ³ggÏž-zwÜpêŠSîN‰ÿ/Îú’Õ¢uûõ`Š_Š ‚ˆwppHHHèuƒ2éû.(>’ .ÄiœššŠe5ÌÒÚƒ+{/^¼Ø—¼}S½;8*Bˆa±XÉÉÉÄ 2oÞ¼W¯^ÉüUII‰ÄJ/­ÞÙÙéååLDhh¨ŸŸ_WWW¿EÝ B¨¤¤DôO¡P8uêÔíÛ·Ëû¼ÌýêyûJTPPPPP0pÚ‘ :P=9b8Þôتž‚{’ÌáááS¦Láóù¢µ8Ž££cll¬ô&^{4ú/µ¤ƒQåÖ“““Y,ÖÀiG\/²ZzÝþ ¾­ÜÜ\‰tç΄гgÏz× ÌFTö?´_7Ô¯ÿq”õ=><³!bnn^WW§‚í¾)gÎ÷ ^»vÍÎο²ùüùó£FjooGñx¼ˆˆkkk …ÁãñpÇéÝ»wRRRvìØáàà`eeõÑG‰ºÇ¤×B]¿~F£éêê:;;Ÿ9s!Äçóe®ÞÐÐ``` §§'ÞI+úy„ !$§W´:BH[[;..îäÉ“{÷î=uêT\\œ–––¼ •¸kÒH$Rhhè7äµ#¾_=ló×_uuu533Û»w¯èh\½zuôèÑ eÆ 2ö4-úŸÌÄ …GŽqww722š8qbrr2îWÐcÿßÿþ×××W__Ĉ¢¡+Q&Hç >Ë>”¹"‰D:yò¤»»»••Õ¾}ûΜ9ãäädbb²mÛ6üéÓ7qâÄÇ#„ššš444ÂÃÃBÀÌÌ Ÿô–––O>ùÄÒÒ’J¥†‡‡s¹\‰HpËA„‡‡ûøø444 'óÙ³g·oßN&“EÄÀÀ 22òܹs½8not²ä%˜âýussCbÙ.a°'¶j²Zæ%ɹF½6¥e^pÄÓ!?mÚ´™3gŽ3F¼3†D";wÎÝÝÝÜÜüÀ¡ 6¬Y³ÿ–Ãáèëë?yòDA#» <¯ÝÑÑ÷µ"“Ì8奖Ì+a°§.ºÙûÅ_Œ3ÿ-§Ì2£'U\BÄÅŽQBª4s×2}ôÑGüñ‹/¬­­322ðÂýû÷/^¼¸ºº://oܸqQQQ¸î~÷Ýw“’’¾úê+OOϼ¼¼üüüñãLJ‡‡Ë[‹ÃáèèèÄÆÆÖÕÕýôÓOššš'::Zæê'OžËuuu2WD­\¹’Ífÿøã¡eË–±ÙìcÇŽáãLÈ:};wîœ7oAW¯^5667nAYYYºººíííA͘1£¬¬,//ÏËËKtjp$ø^(¡P(ªq´=If|)ùò¥ÄMKK377ïÅqCåää´u'ïdÉK°žì¯Ì|è¿ÄVe¢*³Z¢/D:9‰×¥´¼ Žxú …B''§cÇŽ±eËOOOÑBK–,inn>qâB¨±±ñÞ½{< ˆ³gÏzzz …BHì‚tò¼vD-ÈûZ‘¹!™qÊK-™V\ÿ¥.¡ÚÄ¡—½8Úââb==½S§NÉ @üç^| ȼÄ)NHѶT™9½)›››©T*Fßä˜1cD]²wîÜñññÁ!æåå1zôèË—/ã߉~–^«©©IKKëàÁƒÍÍÍB¡°­­M È[}ñâÅMMMDo DÑê˜P(\¸p!™LþðÃÅ÷·_wx](oëx‰¼6Å!„RRR‚x[âñ‘àêê*s!¡Š DéÄóôôŒ‹‹}à?ÿùâ‹QggçÓ§O9Ž@ ¸wïžèÈ+H$|@ä­ˆÊÎÎ&¢««KâgüéÓ—••ehhØÕÕµqãÆÍ›7kii577GGGÏ;¯K&“EGãòå˧ÿ‰ºÞõ$™q(ª)ERSS---{qÜ,òN–ÌëáþÊ̇þKlUˆªÌj‰ƒ)œÄëRZÞG<ýÒÓÓ555qš=~ü!”ŸŸ…Â_1¢ù|¾ÍÝ»w ‚˜;wî¾}û7"¾ 2“çµ» jAÞ¥“8V2ã”—Z2¬¸þK]BµâÐË^Qÿþ÷¿«««{R ¾é·€ÌKœâ„mK•™Ó›‡TLMMƒƒƒ ×­['ZXYY9bÄüÀ׬Y³***ðò1cÆ „ªªªðPBÈÝÝ}Ñ¢EòÖ233KNNNOO§R©Ó¦M{ðà†††ÌÕ9Ç333“ó½%AzõsçÎ¥¤¤$%%]¼xñêÕ«ªÙ5™±•””¸¸¸(Þ:ÖÃ6mmmB¿…=fÌ&“©`á!xååå>>>¢Ðh4Å-hkkÏ™3ÇÏÏ/../”—H>Ë2WÄŒŒŒBx WügLúôùúúdffÞ¿Á‚¾¾¾÷ïßONNž7oBˆÅb ÑÙwuu –™™9}úôo¾ùFÞ.ÈLfSSSéç1srrÄïáqäoˆmKú*¤¬‡û+ÏHlµd5&ïÚ¢ ¥e^p$¶Ïçó---I$’ŸŸBH|”Ÿ2Qƒd2ùƒ>¸|ùrCCÃo¿ýÔ“F0É£ø%&ïÒ-“¼8‘¬ÔR|Ñ?ƒ:uÑPÌ^‘õë×ûúúþío“YQH,|Óo¼\â×ÄTeæô¦@|þüù‘#GfΜ&Zˆ{ ð7Dssszz:^Ž“­­mee%^’““³gÏykutt…ÂÄÄĦ¦¦5kÖÌŸ?¿©©Iæê·nÝš3gŽx`x¶Žšššžì…Äêµµµ6lˆŽŽž:uêŽ;BBBU°kÒqôèQ\.(Ø:ÖÃ6eÞÿÿÈ@㜓·p€N<;;»ÜÜ\Ñ ·ÐÑѱlÙ²ˆˆˆììì~ø/”N$qø,Ë\±'¤OŸ††ÆÜ¹s¯^½Z\\­U«V͘1£¼¼ÒÞÞ®­­)ÚPSSÓêÕ«-,,FŒñÅ_ˆNtT£FÚ¼ysÏ“™ ‡æå奫«ëââ²eË–iÓ¦-_¾üŽ›h÷¥É;YòLñþŠÿ/~íWVb«¬@TqVKL™ÉùÚ”–¸àH\KCBBfÏž-¾B¡ÐÅÅeÓ¦M  ÕÓÓc³Ù¯mDb¤“çµ» :ò.ÝMœDœòR«VY©K¨°@zÙKHˆB¡pÖ¬Y¢P¥ËŒžlTñ—økR™Ó›‡TÀ`'óÚ's¡bmÄ^ì ¢³³3--­¿·¢‚³£¬ÄPó ‡¬Þ¼yóªU«ÔÅëIÄ©ÄS£¬Ô%Ø<ˆÃ!{Õ«_3GSf`øÐÖÖÆsŒ b\.·¶¶öäÉ“çÏŸWw,Š –8P¢Aÿª=Ð ÆÆÆ!!!=Y€²¨ Á ±ŒŒ ÿÏ>ûlúôéêŽE™q*1µ uAïôk汉êë닊ŠøT0pà'Ôúþ–Reµ€R¤¤¤xxxP(”Ò=§¬ïqÈÞáF:s t"è DÐ ˆ (@72æA¬­­U}`0âr¹ºººÊj  =---øå­¨‡ÃQVS½ÃŠtæÈ(‹‹‹U  ”U ¶µµµµµ)¥)ø³ ^½Ã\·y€{@7P €n @Ý@ºùôe×ÖR‡v•IEND®B`‚XQilla-2.3.0/docs/simple-api/ReferenceCounted_8hpp__dep__incl.md50000644000151400015140000000004011653571063021535 00000000000000e6c1e5ea724fff8c783246a2842db354XQilla-2.3.0/docs/simple-api/classEventHandler__inherit__graph.map0000644000151400015140000000173011653571064022131 00000000000000 XQilla-2.3.0/docs/simple-api/classxercesc_1_1XMLResourceIdentifier.html0000644000151400015140000004664711653571063022747 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

xercesc::XMLResourceIdentifier Class Reference

#include <XMLResourceIdentifier.hpp>

List of all members.

Public Types

Public Constants
enum  ResourceIdentifierType {
  SchemaGrammar = 0, SchemaImport, SchemaInclude, SchemaRedefine,
  ExternalEntity, UnKnown = 255
}

Public Member Functions

Constructors and Destructor
 XMLResourceIdentifier (const ResourceIdentifierType resourceIdentitiferType, const XMLCh *const systemId, const XMLCh *const nameSpace=0, const XMLCh *const publicId=0, const XMLCh *const baseURI=0, const Locator *locator=0)
 Constructor.
 ~XMLResourceIdentifier ()
 Destructor.
Public Methods
ResourceIdentifierType getResourceIdentifierType () const
const XMLCh * getPublicId () const
const XMLCh * getSystemId () const
const XMLCh * getSchemaLocation () const
const XMLCh * getBaseURI () const
const XMLCh * getNameSpace () const
const Locator * getLocator () const

Detailed Description

This class is used along with XMLEntityResolver to resolve entities. Instead of passing publicId and systemId on the resolveEntity call, as is done with the SAX entity resolver, an object of type XMLResourceIdentifier is passed. By calling the getResourceIdentifierType() method the user can determine which data members are available for inspection:

ResourceIdentifierType Available Data Members
SchemaGrammar schemaLocation, nameSpace & baseURI (current document)
SchemaImport schemaLocation, nameSpace & baseURI (current document)
SchemaInclude schemaLocation & baseURI (current document)
SchemaRedefine schemaLocation & baseURI (current document)
ExternalEntity systemId, publicId & baseURI (some items may be NULL)

The following resolver would provide the application with a special character stream for the entity with the system identifier "http://www.myhost.com/today":

#include <xercesc/util/XMLEntityResolver.hpp>
#include <xercesc/sax/InputSource.hpp>

 class MyResolver : public XMLEntityResolver {
  public:
   InputSource resolveEntity (XMLResourceIdentifier* xmlri);
   ...
  };

  MyResolver::resolveEntity(XMLResourceIdentifier* xmlri) {
   switch(xmlri->getResourceIdentifierType()) {
    case XMLResourceIdentifier::SystemId:
     if (XMLString::compareString(xmlri->getSystemId(), "http://www.myhost.com/today")) {
      MyReader* reader = new MyReader();
      return new InputSource(reader);
     } else {
      return null;
     }
     break;
    default:
     return null;
   }
  }

See also:
SAXParser::setXMLEntityResolver
InputSource::InputSource

Member Enumeration Documentation

Enumerator:
SchemaGrammar 
SchemaImport 
SchemaInclude 
SchemaRedefine 
ExternalEntity 
UnKnown 

Constructor & Destructor Documentation

xercesc::XMLResourceIdentifier::XMLResourceIdentifier ( const ResourceIdentifierType  resourceIdentitiferType,
const XMLCh *const  systemId,
const XMLCh *const  nameSpace = 0,
const XMLCh *const  publicId = 0,
const XMLCh *const  baseURI = 0,
const Locator *  locator = 0 
) [inline]

Constructor.

xercesc::XMLResourceIdentifier::~XMLResourceIdentifier ( ) [inline]

Destructor.


Member Function Documentation

const XMLCh * xercesc::XMLResourceIdentifier::getBaseURI ( ) const [inline]
const Locator * xercesc::XMLResourceIdentifier::getLocator ( ) const [inline]
const XMLCh * xercesc::XMLResourceIdentifier::getNameSpace ( ) const [inline]
const XMLCh * xercesc::XMLResourceIdentifier::getPublicId ( ) const [inline]
XMLResourceIdentifier::ResourceIdentifierType xercesc::XMLResourceIdentifier::getResourceIdentifierType ( ) const [inline]
const XMLCh * xercesc::XMLResourceIdentifier::getSchemaLocation ( ) const [inline]
const XMLCh * xercesc::XMLResourceIdentifier::getSystemId ( ) const [inline]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classxercesc_1_1XMLEntityResolver-members.html0000644000151400015140000000610411653571063023563 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

xercesc::XMLEntityResolver Member List

This is the complete list of members for xercesc::XMLEntityResolver, including all inherited members.
resolveEntity(XMLResourceIdentifier *resourceIdentifier)=0xercesc::XMLEntityResolver [pure virtual]
XMLEntityResolver()xercesc::XMLEntityResolver [inline, protected]
~XMLEntityResolver()xercesc::XMLEntityResolver [inline, virtual]
XQilla-2.3.0/docs/simple-api/classFastXDMConfiguration__inherit__graph.png0000644000151400015140000001422011653571064023555 00000000000000‰PNG  IHDR¥ÃläFÊbKGDÿÿÿ ½§“EIDATxœíkXSGâÿ'$$  `­Z.ŠrQÖZíZA nÅz¡*w(«(RhÝu¤V…]PtÕ²­вµ ‚}Ð U¤­ˆ² ¤J-’VEP „K $™ß‹³ÿÓ4 ˜pIüwæóøâœ93s¾s>dÎÌ¡@ôt£U°o´À¾ÑûF 𦠖-[690£c×®]^^^ê×רwEEÅ¢E‹ììì4mˆw 6oÞ¬Q}¶mÛ8І˜ñ…B¡hÚŸ¿ÑûF ì-°o´À¾ÑEßõõõ4­  €,a³Ùt:Ãá(Š“““¯‘üüü(ʃ´u¼AÑ·‡‡ÇÎ;·nÝÚÕÕèîîŽMNNvss#*üòË/ d}@PUU¥›¬ã о»ví277ß±c ))ÉÊÊ*11‘Üêëë+ÿé/))ÑèÖK ÔÀ¹sçF¨Àf³­­­ù|>„ðÌ™3NNN½½½B±Xoaa1mÚ´øøx±XÜÜÜ ¨¨¨°³³»víÚž={ìììÌÍÍ#""Ñ›r+aII‰››ƒÁxõÕW¿üòKáÐÐÊæÄ.”—!„µµµ4mß¾} ƒÃáÈ077×ÑÑQ&“%+W®ÌÍÍ477‰håììlnnžžžþå—_Θ1cÊ”)»ví":‘‘‘L&ÓÆÆfûöí"‘H~ø7n$jöôôÖÕÕÝ…Š&ÕVsï½÷^ddäÓ§O---kjjˆÂ¬[·îÑ£GøÃ’’’ˆûùù]½z5%%ÅÅÅ¥±±‘Ãá,\¸0>>~¸V½½½ ãøñãííí¹¹¹4­··÷àÁƒ*›wuuåää(/$%%ÒÒÒøã?²X¬úúz¢Õ¤I“:::HßÊ‘ˆV!!!B¡ð‹/¾ …¬¬,@GG„0,,ÌÇǧ¥¥¥±±ÑÕÕ5%%E~øeeeL&shhB˜ŸŸïââBþ´Ñ…bj«¹@`kkëîîž’’B:;;···ËåååóæÍ#ÜØØ!œ5kVQQ±õÞ½{ä²r+>Ÿ¯¯¯èÐ!@ “Ézzz¤RépÍG@&“­Y³†J¥†‡‡+ °¹¹9..î£>‚æçç/[¶Œ,W‰ØJ|"Åb±Ârss³X,¦R©?üðѪ¨¨ÈÑÑQ~ø‰„Åb}óÍ7Â+Vìß¿ÿ…ùáËãBøüƒJ¥>{öŒ,100?˜˜˜&æCùIu„VÂï¾ûnýúõ“'O^²dIYYÙÍGàÔ©S&&&ׯ_700¸xñ¢ü›››+++‰)Ýßß?++ ÊùV‰ÜªrùñãÇ‘HD666ÈBÇãñètúãÇÕÂËâûÑ£Go¿ý¶üGÇÖÖ–<  ©©Iþ„joo_ZZJ,××דs¬r«þþþªª*áàà`^^•Jíìì®ùpzôè[o½5rx’—·T*õõõMMMåóù,«¤¤„(ߺuëúõë‰[… ~ðÁòNNNvwwçp8gñâÅ›7o®•H$200(,,äñxÙÙÙ"‘h¸æ*Ïß2™låÊ•^^^R©B(‹ÝÝÝCBBȶbccgÏžííí­P® ¾È7„044ÔÇLJËår8—={ö(ø–H$–––'Ož/*šhT[}9rdîܹÄ4U\\leeE\« … 6˜™™1™Ìèèè¾¾>ù ÄÇÇ[[[›˜˜„„„ØÊ­ „çÎspp ÓéÎÎÎl6{„æ*¯Ïóòò Æýû÷ÉÌ·nÝÒÓÓ+,,„r†*++G%N”«ŒôBß|>?""‚ÉdZYYmÛ¶¼>—?t111†††B¡p¼\¨h¢QíÑí£&;wî U¿þ(\Œæï0ãÎÀÀ@[[Û‰'Ξ=;¡;BôùÚËFMMÍk¯½¶qãÆ¥K—NèŽðçû¥ÀËË‹ÏçkaGøóØ7Z`ßh}£öˆú®©áê:‚nÍýXZZZNNθGÑ&\®ƒ­íc:]¬ë ÚFcß‘C›ˆD4‘ÈP,fYZöè:˘Ðô?òQ zßçqðौŒ+Ó§3««wé:‹¶Añü]PpððagSS›®³hä|××?jmôõ©.üW×q´ r¾/^¬£Ñ¨€¡!iAÁm™ ­ÓZ¾¥RYaám‰DJ¬òx=·n¡uc†–ïêêA?¹ª¯O-.®Óa탖:í×! IÙ캡!©#i„|‹Å’’’;‰L¾P(¬ªúIW‘´B¾¯^m‰ i4JQBWéù.*ú¯žžâx%YYYC?*VQñÝÛ;xåÊ]©T¦¼ihHZQqWû‘t*¾ËËïŠÅ’á¶¢s•ŽŠï‹‡5*“Ákך„B‘6óè T~_ÒÚ*ŸÌßx#-5u­¯ï²„Å2a0~ÿ­ûû!­­™BÉ´iÆÓ§3uF‡ 2Ÿc°o´À¾ÑûF ì-°o´À¾ÑûF ì-°o´À¾ÑûF ì-°o´À¾ÑûF ì-°o´À¾ÑûF ì-°o´À¾ÑûF ì-°o´À¾ÑûF ì-°o´À¾ÑûF þ¿?—Ë­¨¨˜¸(Z¦¢¢âéÓ[ºN1ØÛÛûúúª[[ýWOž;wn"ck}} ==†®SŒøþPD¾ïåÿ5ªÏßh}£öØ7Z`ßh}£Å8û®¯¯§Ñhd ›Í¦Óé‡XíëëKLLœ;w®‘‘Ñ믿žžž.‘H< P(*F ­­-44tÆŒFFF ,(..Ö40„0<<ÜÈÈHÍ=Ž…‰î_-4}ÞòÂj»wïf±XBØÕÕemm––Fl …ÎÎΞžžeee÷ïß¿páœ9s¼½½% ÇÛ±c„°¹¹™Ø ¹0QQQ7oÞ¼{÷î¡C‡ ÆåË—Õ„°µµððáC!™aiiia2™ÄòDô Ñó–ñ÷=88èêê !Œ‰‰™?¾X,&6ÅÇÇ/Y²D"‘•{{{g̘qüøq²D}ßqqqAAAò%ñññ¾¾¾êH½Œ‘‰î_÷¾!„µµµ4mß¾} ƒÃáå,«¼¼\¡rffæ’%K”5Ë©ÒÒÒyóæ²X¬ôôt²·7nÈwÕÓÓC|R!„ 22’ÉdÚØØlß¾]$AùùùÎÎÎfff€2™L€¥¥¥üe2Ù±cÇfÏžmllìíí]ZZ Ï£²¢¢ÂÎÎîÛo¿UΩ²õã½—Â7„0)) @ÎäB@àñx 5«««§N:‚o¡PH§Ó7nÜØÚÚšŸŸxþü9ÑŸÏ.@XX˜OKKKcc£««kJJ „°~ýz@@¼ß¸³³S¥Åœœ›Ë—/óx¼òòrGGÇ‘}ûùù]½zµ½½]9§ÊVêÇ{áq~)|Ëd²5kÖP©Ôððp²0ÔÑÑ¡PùÆæææ#øljjêíí•J¥×¯_'=ŸÏW ʈÅb*•úÃ?«EEEŽŽŽBÀµk׈ D?*}¸ººž>}šìíÌ™3#ûnll.§ÊVêÇ{á¡ÖÔ÷„Ü>}º²²òêÕ«………l6›(455e±XwîÜQ¨|çÎggçz£Óé?ýôÓòåËçÏŸŸ——Gš™™YZZÞ»wO¾æíÛ·,XÐßßÿìÙ3©Têàà@”;::×ekkk€¾¾þ{liiquu%WçÌ™£Pþö—FD~•9U2Æxcaü}·µµmݺõàÁƒžžžÉÉÉ[¶léìì$6………¥¦¦J¥ÿ{¿[HHÈÙ³g÷ïß2B‡"‘(000!!¡®®.33“,_½zõáÇå}~~þÐÐФI“,--©T*—û¿wE¶´´ØØØËʯ(Rfúôéwïþú›¦¦&r™¸{|òä‰|}BÏp9•c¼1¡þT Î|.“ÉV®\éåå%•J!„b±ØÝÝ=$$„ØÚÝÝ=kÖ,ooïË—/ß¿çÎ ‹ÁÁÁæs@@¡P.]ºDÜ»êêê „ÏŸ?g2™aaaßÿ}CCCJJ à?ÿù±¯ÐÐP.—Ëáp\\\öìÙCüd“$~¾=r䈭­í×_ÝÑÑñÍ7ßÌš5‹B¡ðx<@nnnww÷»ï¾«r¸œD…žž…ÊjÆ{¡Ÿ¿óòò Æýû÷É’[·néé髽½½Û·owuu500pppøøã½¼¼‚‚‚F¾>ÿä“O¦Njgg—™™baaA”ÿòË/ëׯ·¶¶666~ýõ×KJJÈýòùüˆˆ&“ieeµmÛ6òXßR©4##ÃÁÁÁÄÄdùòål6{Ú´i´´4SSSâ$•n·”s ½ùæ›FFF •ÕŒ÷B)/ÅõšF VWW{·c¡´´ôÎ;äjaaá¼yót˜g^Šë5 Óé‹-ÒuŠßÐØØ^WW×ßßóæÍÝ»woÚ´IסÆTÞO¤‰‰‰ýýýþþþ<ÏÞÞ~ãÆ[¶lÑu¨ñûVFKKKKKKÓuñG÷ó9F›`ßh}£öˆúîèèÕuÝ ñõyvvöDäÐ2OV­bPud¬p¹\{{{ ¨ÿhæwóÿÇôô,Ö‡††³ud|Ðèù*ïÿ–çôéê„„ó‹;Äê:‹¶Añü}á ܼù ³¹³8r¾Ÿ>í®©á °ÙõºŽ£móÍf×S©€LÏŸ¿­ë8Ú9ß·¥R€r8­uê:‘VAË7—Ë»w¯¼D¥R‘›ÒÑò]\\G£ýzÏ-•‚´¦t´|Ü–H¤ä*„ðÁƒçMMí:Œ¤eò­òlM£Q/^¬ÓI€ï‹ëôõ J$Òóço¡óÐ ß2,,¬’*ozöLXW÷Pû‘t*¾kj¸<^ÊM4µ¸•)ߥ¥õ:¦üO&ƒ%%õR©L×µ*¯èêjûñÇ+ÉÕÇ¿^µjîÌ™,²¤»[4uêd]DÓ*(þ~ `m½íøñÈÕ«çé:ˆ¶Ae>Ç`ßh}£öØ7Z`ßh}£öØ7Z`ßh}£öØ7Z`ßh}£öØ7Z`ßh}£öØ7Z`ßh}£öØ7Z`ßh}£öØ7Z`ßh}£öØ7bü.¿Ñþ…¿©¯o®ëÚ@áÛðU|Krr²öcé]˜p JTø^ºt©6²`&žëׯ+”àó7Z`ßh}£öØ7ZŒÆ··*F·ûææfŸÊÊJ²äûï¿_¶l—ËUØQpppzzzWW—|Œððp…ï‡Ü±c‡··÷“'OˆÕÎÎδ´´àà`??¿˜˜˜o¿ýVÓ„½{÷úùùžD*ûW?ž¦ŒÒ÷ÀÀ€H©TÚßß¿gÏ''§üüü÷ß?''§««k`` %%Åßßÿ«¯¾Šˆˆøç?ÿ900™™ (**"{›9sfPPÐ_|ñÞ{ï½úê«#ì×ÖÖ¶­­\uuu‰D---€¾¾¾ºººÅ‹›z{{ù|þ+¯¼"ßÜÐÐø¤>ýôSwüøñܾ}ûìÙ³Dùwß}wôèÑ-[¶deeõôô(§”••:u*..îÌ™3aaaGùp?>))ÉÆÆFù©ì_ýx#ïW™QúÞ´iÓ 9nݺE§Ósss·nÝÊd2‰cÚ××744!‰Dt:}ùò奥¥ C¹7áÇõôô=z¤Yz==OOObJ¯®®vss›2e Ù'€B¡¨l(‘H®^½úá‡ZYYÙÛÛoذ¡¼¼œØäïïoddôöÛoäÏ;ò\¸p!&&fÁ‚&&&óçÏß°aÃÈ9£££=<<¦L™¢|ˆ&"ÞŒòz-??߯ÆF¡°µµõСC"‘ÈÉɉ(166ÎÈÈ(,,‰DááÇíííßyç@`` ™™ÙgŸ}FvÛÕÕÅçó;::vïÞÝÞÞø›èéyzz~òÉ'³gÏ655•ßÕÐаoß¾»wïr¹ÜÿûßEEE›6mÐh4ooïÏ>û¬½½ýçŸÎÍÍõõõU°þþþYYYµµµB¡°¾¾>//B¡w‰W®\éïïW>wˆäÉãÀ¸½¿ÄÈÈèý÷ßOKK344 õññILL,..þ裲²²ž?nmmœœL§ÓY,–››ÛºuëÊÊÊ®\¹R[[{âÄ âÇ–F£%$$ÄÆÆzzzzzz>øà¢ ww÷ìììÉ“ß2âííÍf³ß}÷]…rSSÓìììcÇŽ%''‹D¢W^yeïÞ½äôð—¿üåóÏ?‰‰Ñ××ë­·ÂÂÂÔ¬¿¿¿T*ÍÈÈèîîvqq‰‰‰9x𠉉ITTTfff~~~\\œò³•‡¨°°<ò•Ço~óþ’óçÏ]»vm\ºþS]]maaáàà@¬VUU:u*''G·©”ùûßÿ>mÚ´óçÏ“%øùùhàr¹{÷îmnn¼wïÞ‰'ˆóÑË*ï£_‚ƒƒvíÚÕÕÕeeeåçç·jÕ*]‡R ì{4P©Ô¨¨¨¨¨(]Ñ<Ÿ£öØ7Z`ßh}£ö*îÇ&úO¨0Ú$ @~õ7ÏS?~,ÿ×#˜ß¶¶¶o¼ñ¹Šèû¿‘Ÿ¿ÑûF ì-°o´ø?sP\ÂH¥'IEND®B`‚XQilla-2.3.0/docs/simple-api/ATDurationOrDerived_8hpp__incl.png0000644000151400015140000010370011653571064021253 00000000000000‰PNG  IHDRI ‚bKGDÿÿÿ ½§“ IDATxœìÝuXTiûð3tIwwÒ!*("ˆ b€Ø®¹*ص»ºkûn¸+vaP¨ (H ƒ"Ý0t×äùýqö/ 3œa¸?×^{ ‡ßñxóœ'(Š"p*¼Ð(XGƒ‚p4(XGãÃ;€¡sqqÁ;Àß¡C‡¦NŠw Ø VÅ^½z5~üxyyy¼ƒÜ¼~ýzýúõx§€½ `€ÑÍÛÛ{Ú´ix§¸yýú5Þ`;èà 8¬€£AÁ 8¬€£AÁ 8ÌcÂíÛ·oܸ±~ýú¥K—b[bcc;Ö{Ï+W®tŸ&IAAÁÌÌlÓ¦M’’’,IRQQ±|ùò¸¸¸ÁØÕÕuóæÍääd‰¤®®îàà°xñb^^Þ»9991_6ü³õ''§ÀÀ@•!Ÿ€1 Và~(ŠÆÆÆÊËËÇÅÅ1 ÖÉ“'‡……!B"‘¶nÝŠ½FD\\A .())1Œ²²²°°° 6\¿~]LLlhH$’¯¯ï“'O[²dÉ`ÏÐÑѱiÓ&))©7*++]»v-%%åܹs<<=Ÿ9üвØ º÷+***--ݳgO~~~yy9¶QPPPZZZZZk}”þ/>>>A$%%¥¥¥eee-,,Ž;¦¤¤2ä £¥¥{-!!±aÆÁžáöíÛ’’’çÏŸ·µµUUUupp¨ªªŠŒŒì½óÃ-€Ý `îkfffee¥®®;ØÃ Âܹs©¨¨`>sg¾Æ^¤¥¥ùøødff~øðaýúõnnn .¼wï‚ ›7oFdÁ‚=ÎÐÖÖvòäIOOOooï‹/R(Aœœœ^½zµjÕª¹sç>xðÛ3::zåÊ•ÝS…„„/^Ýãêý„G„F£ÌŸ?þüù4­ûáQQQX¶C‡ýóÏ?Ø!T*ÕÃÃ;Cïà ƃV¬X1{öì­[·~ýúµÏÏ0%%eÙ²ewïÞe~ïÞ½[±bÅüùóÿúë/*•ÚçÆÁþaÀ• `.‡õpvvFÄÑÑqh4UUU+++ûß'88xß¾}***GŽÑÓÓ Ü´iÓ•+Wššš°âïáÇ=ùã?jkkN:•œœ|ÿþ}lûÛ·oÿþûï7^ºt©µµµ­­­¡¡AWW·ÇẺº¥¥¥Ý¯®§§×øÐÐP‰téÒ¥sçÎ¥¥¥Ý¸q£ÏÃß¼yƒ¢(‚ ÉÉÉ‚‚‚666}´aÆ;wî¬X±"  ÏçãÇW®\Ù³gÏÕ«W™Í?>qâÄo¿ýöñãG¬²ÿÖFÆ8(X€Ëegg×ÔÔ8::"âèèX\\\TTÄŽ mذÁÂÂB\\üÚµkÛ·o—‘‘‘——G¤½½½Ïýi4Zllì¶mÛ”””´µµW¯^}kÞ¼ybbb3gÎD„YÞõF  F÷« õ222òÇ”——×ÖÖÞ¸qcRRRŸ‡Oš4©¥¥%''A˜˜777ltWïÃÃÃÃ}}}dddììì¾Õ£ÀÇÇGDDdÊ”)‚´¶¶b7mÚ¤ªªjdd´nÝ:æ{ïs#c º.K§Ó===™[âââ´´´u’òòreeå±H&uuuAøøøÊËËÏž=ÛÙÙÙg{'Scc#ƒÁ`žVEE¥¶¶{-++‹ ûRLLLZZ:??ßÊʪûòóóõõõ»_ý»á«ªª.\Èü–¨¨hŸ‡ Nž<ùÍ›7šššïß¿¿råÊ·§ÑhÝ›~µµµûÌ ##ƒ @è¾QUU•yuæ{ïs#c¬ÀÍ F\\ÜæÍ›ÝÝݱ-7n܈‹‹[½zuâ©(І‡‡Oœ8‘¹…N§óòòÖÕÕuß «/ÉdòO?ýôÓO?ÙÛÛS©Ô>Ea¤¤¤xxxH$’††‚ •••XŠô*ì™1cÆíÛ·-,,˜ÝX»ººîß¿Ï,™Õmÿá%$$þóŸÿ`3La= ¾u¸³³ó_ý¥«««¯¯Ï,"{~äÈ‘‚‚l‡âââ>côùi———cnYYVÑ~k#ct nF$]\\„ÿkÆŒåååùùùýØÔÔÔÐÐPWW—‘‘qøða‰´hÑ"A°É¡^¾|ÙÑÑÑ»O*‚ T*•F£ñññQ(¬‡hGGö­ÎÎÎî{òññ999ýùçŸ$ ›¦jÆŒßʳjÕªÆÆÆ]»v%%%•——'$$lÚ´IVV¶{ËñwÃ#âààpåÊ•êêêÂÂÂ={ö<~üø[W´±±ikk»yóæìÙ³™{>wîÜ‹/¾{÷®¡¡!))éúõëØžÏž=ûV_¦ .TTTdgg_½zÕÅÅ¥ŸŒqРÜ,66ÖÒÒ²û´ùzzzÊÊÊqqqý?¯ßºu+öB^^ÞÔÔôòåËØÓs ‰µk×þóÏ?[¶lIHHèq ˜˜Ø¦M›Ž?.,,¼téRggç={ö„††N˜0aáÂ…ÏŸ?ï¾ó?þxáÂ___~~þéÓ§/[¶ì[yDDD._¾|ãÆ€€€ÊÊJ%%%gggooo~~þ‡GdíÚµ.\X¿~=@pttܸqcvb&>>¾©S§ÆÄÄL:•¹±÷áüüüT*õâÅ‹õõõ:::‡ƦD8{ö¬¹¹9óº}š1c†ŸŸ_WW—³³ó²e˰=6ös8c¡G$£@8zôè´iÓð§Ï±†¶Î–““SPP³ ®]Gƒ‚i¢¢¢Ù@ `Fž¤¤ä®]»²€@Á 8¬€£Á´V0:tuQKKëËÊËÊÊËÊÊÊÊ„…ðÎl+p2™Æ¬G±ÿ°/kjþ]€^\\HUUZMMÚÚZ3&¦ß´0 `|´´tו”Ô—–Ö—”Ôc/ªªšÉd‚ A]]Z]]FAA|âD] uu%% ÿ¿u;¶¿w# V`¯ÖÖ®¢¢Úî…iuuKuuKssòßÂT^^\QQÂÔTMC£ïÂÆ2¸kÐé ©¹¤¤žù@¿´´¾¬¬¡ºº…Ng "$į¦&­¦&mo¯£¦&=ÖWW—–‘ÎuïܹóôéS½‰A Ñ„»ºdEEIm䯎£®.a 6xG`Ì€‚­³“R\\_ZZ_\\‡ý¿¤¤¾¬¬J¥#"(ȇ£úúŠÎÎ㙵©¼ü8–'ñööfù9û×ÞÎ__/\_/ÜÞÎÇÏO×Ô§Œp†Þšš„jk…õôkk…++ÅÌÌjÙw­œ©ÚZ†¼|‡¼|‡ˆ•}×mmm555|3ÀnEñΜ«¦¦µ´´®¸¸¾¤¤{ _RRÇÿ$++¦¡!«¡!£©)«®.£©)£¡!£  of–£Ré¯_gGG‰‰ùJ"5éêÊ{zZ¸»›(âí_á៶l ,,yïÞ‡ÔÔŸxyypŒD¡ÐÞ¼É M‰ŠÊäååqq1^¾Üº 0P°8Š¢¥¥ÿö7ÍÉ©ÊÍ­êþL_\\ÈÀ@ÉÀ@‘ùX_SSV\\ïÔ­°°öÑ£Ôèè¬ÏŸËEEgÎ4ñð0wpÐâÇ;Úp?ñæMNt´?‚ ÙÙ¤éÓO‡†n™4Iï\‚ MMOŸf~ Ë””$,°ZºÔNKKï\ŒP°8EMMkN‰ÙÙ4'§ª¸¸ŽB¡!""" «« ¡!£¯¯ ¯¯8B SnnUDDzDDFnn•¬¬˜›ÛcGGAAîéqãF™3QYY¿b_:9²³Ó>yr¤ç©íÖU 88©¶¶ÕÔTÍËËzáB«Q×û€‘+ííä‚‚šœœªÜÜêãôù ”˜¦úú ŠP›Š¢ÉÉE¯^}))©WPpw7óð0³²ÒÄ÷A9›¼|ùù‡®åçŸÂf•:þÅõë éé¿ðñqÜ›¥Óïß燄$?}𢍫«‰——µ““F€C@Á `¯®.jnns¨>V¤ö˜CJ__‘ùdŸë'7e7MI)ŠˆÈxñ"³¼¼QKKnölS—ñÖÖZ<<ÜÜuòË— —³ññûuuåÉË«ž:õdpðæ)SôðŽöM--ááé!!ÉÉÉEØoK–دŒw.8¬Vjk#ÔÔäåUÔÔÕvuQ‘ÿ‡ÂFDéèÈiiÉéèÈAÓ)«0'ù‹Ë®¯oÖ_â¨Å¨Ø­±±ÝØøÐýû¾S§`[fÌ8cg§ýë¯ ñ 6ùù5Ož¤'—•5èë+z{[/^l'##†w.8¬€!BQ´²²©  &?¿&?¿:?¿6?¿ºªªA>>uu]]]]ymí‹Tq¼#s!lzDDú«WYÍÍÖÖš»ÕÐÕÝ{ìØü%K&b_ž=õàÁÇ‘\A`˜°ÖñÐД‡Si4ÆÔ©^^Önnà™P°¤¶¶5;›Ô{´>@PWÿŸÇúúú 0»µµ‘##‰OŸf¼}›×ÕEÅ£š9ÓDMMïhxš:õäܹæ~~nØ—Øz­/_ú›˜¨àl°Z[»¢¢2CCS޾͓vw7[¾ÜÞÔT ï\à V@ZZ:ss«°þ¦yyÕ……µåå ÊÃCPU•ÖÑ‘ÓÓSÐÑ‘×Ñ‘×ÓS“‡wÞ±‚¹U||ƒN›fèâbììl¤¤4:£b7Ÿ‹ªªÒçÎù`_¢(jmýËÒ¥vÌvÔ©¨h|ü8íîÝÄââ:¬«À¢E¶ð7ŒAP°ÖÖ®ÜÜꜳH%‘šâÇ Sìÿººò::òÜ4ÒhQSÓþ ›äŸ‡‡0z£b·íÛï65uܾ½ž¹eÿþд´’/üpL5|Ì®§uvR'MÒõò²öð0ç‚Ùs (Xsª«[°Â”H,ËÍ­fÎ'%##6~¼2öd&“âÌŨRS‹……fÍšàâbLݹó~qñ™îÓlØp³µµëþ}_ƒ±‘X’òðajss‡••¦··Í‚VØÒ p(XÝH¤¦ì쪯_+±ò47·šB¡ñðÔÕe •°ÿŒŒ”´´ä <å@=£RT”˜3‡›£b·„„\Ÿ‹_¾ïÞ»744ÅÏïAfæ1.îJÍnšI˜9ÓÄÛÛfʽÑ2Ÿß+£III}nnÕ{ –ÕR©t‚®®ÖñT__Q__QGGÊSNF£1>|ÈùòKTTfEE£¶¶Üüù–..Æ&&ªÜ½»eg“¦O?··û4´MM¦¦‡/\X1w®9ŽÙFFuuKDDzPPÒ—/**RóæY.[6QSSï\ ¬p.EKJê33Ë¿|©ÈʪÌÎ&aÝOEDôõŒ” Œ” •eeaEœQ€¹Ulì׆†v}}E³1µ»54´›˜ê½ëÂ…””$/\XŽW°‘—“Sšô±¡¡ë*0ož¥˜˜ Þ¹"(Xà  -;›ôåKÅçÏ•_¾TdeU´µ‘yx²ÆÆÊFFÊØó}uuh‡E::(11YÑÑ_¢£³ZZ:±Iþ]\Œ54dðŽÆm TSÓÿÏ?—Í›gÙ}ûÅ‹q.ĉ¿ŒµŽØïH¡¡)QQ™<<WW//ëéÓÆÚ縬à {ÄO$–‰åDbYuu ‚ ²²búúŠúú ¦¦jÚÚr°0ãhÔ}1*2™je¥éáaîæ6AUU ïhÜl„ûv¹®^íÐ}caaí”)¿=y²ÝÆF ¯`øjnÈ INN.RR’\°ÀjéR;--9¼s0PP°0¢ÊË?.ÿò¥âó犬¬Ê²²A%Œ•ÇW16V16VÖÒ’ƒÔÑ«¾¾-223:ú s1*ww³éÓdd ÛÆHpp8±`Õή=¶ÛÛ_¸ÐÚß´.yÅ*¹¹U!!)!!I55­¦¦j^^Ö ZÁ €óAÁ {UV6ed”‰eØÿÚùùyuuþ[¡*«HKÿ£6Ø[ŒŠ——gêTww3cIIX|aDyxüne¥ùÓOózlß»7äË—Š§Owà’ŠÓÐéŒ÷ïóCB’Ÿ=#Ò錙3M¼¼¬œŒ`°&àXP°ÀbUUÍÌò4#£¬®®ÇÀ@ÉÌLÍÜ\ÝÌLÍÐP ñsââºgÏ2^¾ü’šZ,""àæ6ÁÃÃ|Ê=aa˜Ë—_–“÷Ÿÿ,é±ýùsâÆ·23Á¯ݵ´t†‡§‡„$§¤ËËsw7_¼ØÖØXï\ô+¢hnn5³jv6©µµK@€ÏÌLÍÔTÍÔTÕÔT &™â>ùù5OžüÏbTæ°'زåNG寵=¶·´tš˜úûïÜ?¹Õ`ë«…„¤”–Öëë+z{[/^lýX瀂€AkiéLK+ùô©kC­ªjFD]]ÆÜ\ÍÔTÍÜ\}ÂÕqã„ðŽ X/)©0::+:úKnn•¼ü8 ˜äŸÓ<öõ+éáí½¿åáñ»‘‘òéÓ‹F>ÕhÁ` ))E¡¡)¥Q(´iÓ ½¼¬ÝÜ&ÀC!€;Xñ€ï£Ó¹¹U©©%©©Åii%ùù5(Š*(ˆ›™©¯\9ÉÌLÝÜ\ F-p+æbTÑÑ_JKÿ]Œêôio¨S9“¤¤HSSGŸßrp0xô(u„óŒ.<<[[m[[íÇçFEe††¦øúÞöð0óò²¶µÕÆ; » ` o99ÿÎ6•œ\”•UA£1$$DlmµæÎ5·µÕ63S‡6TnÆ\Œ*2’XYÙ¤£#ïím “üs> ‰o¬“&éþþûËòòF˜Yì»Æòö¶ñö¶©¬lzô(õîÝÄÀÀXWoo[yùqxct à_”””⤤B攨<<U-¬+ª®®<´¨q=æbT11_ÛMMÕ\\ÆC:Š%<–Ÿª÷·Èdš¡áþS§-Zd3òÁF;"±,0ðÃãÇiÔI“t½¼¬ÝÝÍ`p!1P°‚1J¥gd”~üXûõÓ§Ò®.ªˆˆ€™™š¥¥¦••†¥¥&4$Œ°׈ˆH÷õ½]Vv®ÏÉŒ,¸ ¡!Ó{0@d2íåËÏ¡¡)qq_EDçÎ5÷ò²¶±Ñ"`êhÀ^Ð%Œ9”´´ÒÄÄ‚ RSK:;)jjÒvvÚsçZX[k(Áˆþ±£µµ+**óéÓŒ„„\no¯ëç7sÖ¬ **ðÈx´@Q”L¦öÙø7i’nhhÊȧâ‚‚|ææUUÍaa)÷ï ü £#?ožÅ¢E¶jjÒx\ ZXÁ˜P_ßöþ}~BBnRRQAA ÁÜ\ÝÖVÛÖVËÂBCV¦n[êêÚ¢¢z.Fåì<Vpàoßæ-ZôÏçÏÇûüÓľ›”tº±² ‘X’òèQjSS‡••¦··Í‚V""ÐU°¬€k•–ÖÇÇç&%&'•”Ô ðÙÙiÛÚjÙÚj[ZjˆŠ ⌴êêæˆˆ l1*AA>gçñ3fŒ‡Å¨¸Ljj‰‡ÇïÉÉGúl&ïè 8~ñÂ…Ö#Ÿ‹Q(´7orBCS¢¢2…„øgÎ4ñö¶™2Eº V.€«tvR _¿Î~ó&'/¯šÇÔTuÎ3;;m;;mqqa¼ô^ŒjëVgXŒŠ[ ó#ÒÕEíó»""&¨¦¤CÁÊZ|..Æ..ÆØÅÁÁI>>••%çÏ·Z¶l¢¦¦,ÞÁ¨+àÙ٤ׯs^¿Îþø±€J¥«ÌœirìØ|++Mx25fååU‡‡Â£’‘›5kÂÖ­ÎŽŽ‚‚pßãfXÁÚÙÙwÁŠ ˆ¥¥FbbÁ&[Ä×­s\·Î1'§*44%(èãßǘšª-_n?ož¥˜<ÚC]ÀhE"5ÅÄ|MHÈ}÷.¯¡¡]UUjæÌ ®®ÆP¤ŽqÝ£RPww7‡Å¨Æ©ÉÊêçððíÖÖZ}îðøqÚ¶mw³³ƒ~A#€Ng¼Ÿø!**“‡‡àêjâåe=}ºü}ƒ- `4¡Ph?¾|ùåÕ«/%%õbb‚NNFûöÍqpЇ釸LCCûÀ‡@1£zùòsYYƒ’’äìÙ¦§O{[[kõ9·àbXOþ[Xét‘Xno¯3‚¹Æ(^^}ýææŽˆˆŒäU«®**J,\h½d‰¶¶\ÿ‡¿|ùY\\xâDø“P°‚Ñ ©©#..ûåËϯ_ç47whjÊ:9N›f8y²´‘p¥ððO{ö„&$ì““ëo\÷5:úKlìWl1ªE‹l`’ÿ1NHë@ùÖêê2òòãÒÒŠ¡`I"Ë—Û/_nŸ—Wœ’„uðò²^°Àê[¿^ºô:)©èÔ)ï¥K'Žp`Ài Kà\5Xcjrr@°·×uu5ž>Ýúïs1 …vôèã[·ÞÈ©S‹–/·ï½,Fú¢¨ªªßÅ‹+çÎ5ÿÖ>«W_#ׯ¯É` ;}÷./$$ùÙ3"Θ:ÕÀËËÚÍm??/sŸŠŠF[Ûc(Š"aíÚ)?ý4:ŒeР8Nv6)""=""=?¿FZZtÆŒñ«W;L›f½õ¹^NNÕš5×ËÊêA£G©Ý ÖövòóçÄW¯²Þ¼Éimí²¶ÖܹÓÕÕÕX]zƒ€ÿG ¤ÿ¶ssõ{÷G,臇€u8~|á‹™¡¡)¾¾·ååǹ»›ûøØš˜¨ ”ÄÇÇC¥Ò½uë]zzÙkaÚì1 VÀ)rrªž>MOÏË«VR’œ3ÇôìY+3v<~œæç÷€J¥Óh APMJ*lhhçãã}ñâ£ò÷w›=ÛTYYïÈ€CñðŒþ Ö TËË››;$$` ^œ‰‹ y{Ûx{ÛÔ<~œ’ríZ¼¾¾¢——ÕÝ»¨T:¶Æ ËÜÜÎݽ»ž¥ŒMÐ%ପªùáÃÔÐДìl’‚‚„»»™‡‡Œ•Sºº¨»w……¥"AþÿŽÄÃC05UËÍ­êê¢Z[k\ IDATÍ™c:k–),P¾KCÿÿ¥ª«›-,~zøp+Œæá4XÇôààä—/?3«U&>>>>Þ‹WΜi‚K<€#haøÀ¦¼{—'&&äáaþÛo mmµ¡NkŠ‹ëÖ¬¹ž—W H÷jSYÙt䈧›ÛyùþF_ÐÝw[X$deŲ²*¡`å4||<ØÛ·ß}ü8 {ÞÂD£1 tÍšë»v¹úù¹áà V0ÒÒÓKïÜùðäI•JŸ6ÍðâÅ•®®&0—ûØ‘¾sç}2™F§3z—Á@ÚçÏ·7Nhä³Ñ‹@ |÷Ù¡¡¡ò—/•# ZWõùsbjƒý*rþü‹¼¼šß_‚M ƨÀik#?z”zçÎûÏŸ+´µåüýgy{[ËÈ@÷ù1ŠJ¥ÿüsø Òßø:“5ožåF£Ï÷{»+ÃzWëåËÏßZ\ƒ¢Èó祥u7o®‡Ç/c¬€í²³I·n½ K!“i³fM8rÄsòd]¡ç£ÿW¯^â’Œ°¶6zHHYIIçw÷$Ð ×Ô¤Œ@*6Ù°aÞÆƒÑGã\w††J·n½£ÓÜ1¬³±±±³óû¡F‹Û·¾÷ˆÐhŒôô27·³þ¹P[æ:äNÊÊÊÌ×P°v¡Ré‘‘™·n½ýð¡@UUjÛ¶K–LìgF’Ë—/‡„„ŒdB€ ~~EIIW>>)ù~eùò¥Ñ×÷ŠÒF ;@Á:ò¾Û‡A==…®.jyy#w,’WYYY[[‹w Ö ÓQƒld$}ÙÕõïÌ! Ê\ÀŒB¡Óh(‚ MM?ü¸s§±ñwÍ£¬€½JJê¯^ Iîè Ïše´iʽÞMª½y{{@BÀ9š›;¡ÓÑÖÖ.A¨TzGA®.*™LC¤½¬"22b……µÓ§L*Àp@Á X ¡¡ýþýÄÀÀ%%õú/®ì±ÂŒ*•>û¶¶\Q—óññ,Y2qåÊIzz x‡Œid2UPðû³éèÈçç׌@ÀðAÁ †¢³“–øH,30P<~|§§L– ÀΠÑjaMHÈH€áƒ‚ ‰ÔøáîÝuumŽŽ·n­›>݈;æ…p …† È@ZXµµå*+›:;)ÂÂìÏ(XÁ€ÐhŒÈÈT)(H¬_?ÕËËFAAï\ð?°É%²xžŽŽ<Š¢ÅÅuFFÊßÝ€/hßÑÒÒyõj¼“Ó©oµ´tž=ëóîÝ-[œ9¼ZÍÏÏÇ&Òêý¢¥¥¥«W¯ȞÇ]‹ùå±cÇÂÉ“'™[~dä®Å‹íFÅÚÍ’’’{÷îìQ?ž7oóØÂÂBYYv- ‚] {¢èƒÔÕÕƒ‚‚˜;xzz’H$‰ôþý{AHÿ…Mµøþý{‰T^^~ãÆ––KK˦¦¦AÚGÔ§ÖÖVkkëäääS§N¥¦¦îß¿ÿîÝ»...t:½÷ÎCNÎÂÀ€‹‘ÉTA¾_° ñ+)I–”Ô³?Ô(÷Ïï‚û'PþW[[ו+oO()í˜>ýÔ;ï[[»FàºÞÞÞÞÞÞ,?m^^ösÎ|Ñ9sætttô>–º_+##ƒ@ DGG#’““ÓcÏÞ1ÉËËc~É`09¦¨}êžÊßßßÁÁF£1¿ÛÖÖ¦©©yåÊ•G᛼Ï?БXûç“gýÈË«VRÚ‘•U9,økÏž`vGŸ?þüù3ËO ÷O6ûçwUWWÇÅÅuß-¬àÿeg“öì ¶´ü騱p33µ¨¨]11{–/·Ä;Ú¿ÂÃÃUTT¹ÿ¾¾¾~{{;ƒÁ¸pá‚‘‘Ѹqãìííãââ°‡ý<þxúô©………ˆˆˆ’’ó)R]]¨¨¨°°0ó؉'"¢¨¨ˆí@¥RwïÞ­   //¿{÷n*•Š @¸~ýº‘‘‘œœÜÉ“'ïܹ£¥¥%!!qøða쨈ˆSSS!!!mmí;wîô¸ö僦N:cÆ CCÃîD |}}Ÿ={ö­œ4íèÑ£êêêrrr+W®Ä~#ïþ}÷]ôù‰19r„—÷ÿÇe‹ŠŠîÞ½;00»JLLŒººúÛ·o›¼ûá7oÞÄÏ›7o×®]Ø!d2YJJ ;CïÃétú™3gôõõÇ7yòä?öù¾|ùRWWWJJêĉÌOæÉ“'òòòÛ·o'“É}nìŸX ë@º ¢®.SVÖÀæDœîŸ}‚û稹²£.£ …B ÿ4wîJJ;¬­¾páUuuËÈÇ` ëÊ•+W­ZUUU¥  ðñãGE/]º$//ÿðáÃÊÊÊgÏž©ªª"Ò»a€ù¢¥¥E@@`Íš5ååå‚ÔÔÔ (zýúõ;wîôyæÔ©S .,--%‰–––ûöíCQA%K–´´´\½zAE‹µ´´\ºt Aººº¶¶6AAÁ€€‰tíÚ5>>¾¶¶¶î×BQ”Á`hii]ºt Eу÷xËßm!@Q499YRRò[9Ïœ9cllL$333íììüýý{œ¶ÿwÑç'Æ<û÷¯¶¶¶GìwïÞ)((`»Íš5+66¶­­m°É»žžžŽt{üÇ`0P}ò䉲²2•JíóðóçÏwÿÙÀ–¥î‘Aww÷–––°°0ìýbuuuÍÍÍMLLÔÕÕýé§ŸúÜøÒA +.RS‹•”v”—7 dçsç¢&Oþ•Ý‘FÀ[Xáþ‰Âýs”Ü?{·°ÂÍtLknîøû))ípwÿ=,,…L¦âf€kcc£ªªª©©)óÇÝØØøæÍ›ÌnݺÕÿ —L&ýúµ­­N§¿yó†y X¸paCCCŸ‡` I$ö:::ÚÜÜEQAÒÒÒP¥P(=^çåå544ðóóŸ={¶±±‘Á`´¶¶Òéôî×BQ411‘¯®®EÑÔÔTA233»¿åÁÞp{ç400xøð!¶%++ {Ýã†ÛÏ»èóûî ÷Dz²²ØnD"qhÉ»μb{{»¨¨hRRŠ¢‹/Þ¿ÿ·×××ïý³Ñ#'‚ ¯_¿FQë1Æ|kÌÌAAAººº}nDû+.Þ¾ÍSRÚQ_ß6ƒƒ“44üét»S±Û V¸¢pÿ%÷ÏÞ+Lk5F×]¹œD§3.´¾zu²±± Þ¡DRRrÆ ?ÿü3Öc AÂÂBsss榦¦ýŸA@@ 77wýúõmmmØÆ¶¶6*•*%%ÕÏÅÅÅJJJÌ/%$$°ãÆC„ŸŸ¿ÇkA¤¤¤âââ~ÿý÷£GZZZî߿֬Y=®õàÁÖ}tBPP‰‰Éw?Šîòòòttt¾•“L&ëééa_õ±xz?ï¢ÏOŒIRRRQQ1==}ƌݷ§§§[YYa¯ ‡–¼ÏÃEDD<==CCCÇñéÓ§oN¡Pò³µððüO)æ'fhhX^^ÞÏFÀQššÚyxÂÙY]]†B¡ÕÔ´(*J°;'€ûgŸàþÙçáœvÿ„>¬c Š¢ÑÑ_<=ÿœ4éׄ„œ£G=‰ÄcgÎ,-Õ*‚ eee.\˜1c†ŸŸ¶EEE%##ƒ¹Ã—/_ú?Cggç¢E‹vïÞ––öÏ?ÿ`£¢¢ÜÜÜú?û}ûU¯±±111ñ»i;;; FHHHCCÃÚµk=<<º_‹N§?¾õ¿víÚ„ýæ:@(Š^¼xqΜ9ßÊ©¬¬\\\Œ}7==ý×_øÉ‘o|bÝ-[¶ì—_~é>¦µ½½ýÔ©S̷ɼw6ù·_²dIhhhxx¸••ó&ØûpMMÍülôÙ]k@$77»#k#à(MMbbB\ÍD]]AÒÒ±2QÜ?{ƒûç·ç´û'¬c•Jø0uÖ¬ÿ¬Zu•Á@VrÚ€ª`0kÖ¬Ù¶mÛýû÷_½z Èš5kvïÞýäÉ“ªªª¨¨¨}ûöõ2™L¡P:;;=Š Hkkë“'O<==ûÜë9„ È‚ öïß_RRB$ÝÜÜþþûïï&®®®aaa--- …ŸŸ_DD¤ûµjjj–-[&ö_K—.ÍËËÃúõ£¶¶¶ªªª¢¢âÍ›7óçÏ/**bö£ïsÅŠÄnݺµ¤¤ä»É»ëóë¾Ã‘#Gjjjœ£¢¢òòò=zdgg§¢¢²iÓ¦a&ÿV$WW×ÆÆÆ£G®Y³†¹±÷á¾¾¾Ý6Ž9‚íyõêÕæææþßõ?þ˜ŸŸŸœœ|àÀåË—÷³p”¦¦))‘ ! ÀWZ:&Æ]Áý“ òþÙÀ::È×®ÅÛØü¬®î·yóí´´¼õm }Xÿúë/333 …‚¢è£G”””(Ê/¿ü¢¥¥%&&fooïÞ=¤ß>X(Šž?^ZZZMMíŸþY²d‰””ÔìÙ³™WaîI¥R§L™"&&†moiiY½zµ”””ŒŒÌ† ÚÛÛÑÿíTÔçë   CCÃ'OžP(”î×Ú¸q£««k÷÷È`0tttöîÝÛ;S÷¿ÂjjjË–-«®®f~·wή®.eee ‰%K–466¢½ú`õÿ.z|bòòò=Rµµµùùù™˜˜ˆˆˆ?~›t¦ÇnƒMÞýð§Ú°aƒ˜˜6ã[‡Óh´3gÎèêꊊŠÚÛÛcMß}¿Ø…®^½ª¡¡!++»mÛ¶ÎÎÎ>7¢ý‚>¬¸8~¬pÿdžÿì݇•€¦åŒ.ÕÕ-.Ä'„õëW­š"++†w¨oZ´h‚ ÁÁÁÃ>>ð£8Âöì .-mxðÀw€ûûø\TQ‘:~1[S±ö¸›8àþ †‰U÷Ïššš¬¬¬iÓ¦1·À +îTQÑøÇÑÁÁÉRR"»wÏZ¼Ønt=ú€¡ijê”h—ATT¤*+·Ê`äAÁÊmÚÿúëÕÍ›o%$„÷왵bŤqã„ðÀh"..¾qãÆl¨©©C[[nàû++K¦¦³-c ûîŸP°rövòåËoâùp_¹rò×zá2Øìnx§£˜¼¼|@@À@64ØVEE  ZXÿ÷O0L컎ł†ûtuQ¯]‹ÿûïXÞÇçúøØòóó~ÿ0à:MMƒ+XÛÚÈ­­]ð0 Në膢è£Gi§OGÖÕµ®]ë¸y³Ó îÔÀeš›;%%´jFYYA©iÜ8E¶… ¬£XVVåa©©Å+VØïÜ9SNnÞ‰O”ÖÖ.YÙAÜ •”$©ªjÖׇ‚Îë¨TW×öË/OÂÂR§M3xófß F·*/o@DUµ¿5B{’ ‘¾3:_P°Ž2t:ãÆ·gÏFIHß¼¹ÖÅe¸³î×À&¨RQDÁŠ ˆ¢¢Ìl‡ƒ‚u4É˫޹ó>‘X¶fƒŸŸ÷ (,,¼|ù2ލT™Ìƒ¿€RSSñŽ0æTT4Љ Š‹¢+‚ ÊÊUU£¾…µ«««²²ï°sQ_&ø‡yt`0ЫWãOž|¦«+ÿâ…Ÿ‘‘2Þ‰Ø"55u䧺äã“âçWPäçWâç—íìÌmjŠá D ð‹‹;üÃL("2L.¥Ó‡þ/´®¨¨esó+mL,ÂF‹ÊÊ&eåÁ5¯""//^]ÝÂŽ<#©µµµÇ"õp(XGüü𼛕Uyð Çš5<<¼±Åðe ææŽ´´Ò´´’OŸJÒÒJšš:DDÌÌÔ,-5­­5--58søÚÇ…þþAUUÍûöÍ^»6r8§RVÞ°jî\ó!Ÿ!5µÄÏïAy¹æž=³×®uàååNX¥²²IEEr°G)(ˆ'&²#ψþ¢¬p8(X9ƒ^¼{îÜ ##¥/ü`ëÐtuQ““‹’’ ‰Är"±¬ºº…‡‡`b¢jc£åéiak«­¡!ƒwÆþ44´ïß‘îîn¶U^ÿzÚÊJãÕ«Ý7o¾=yòYPÐdzg[X¨ã ¤¢¢QCCv°GÉÊŽ«­…¶I8¬œ«©©cÛ¶À7or¶m›±c‡+¬0p(ŠææV‰eÉÉEIIE……54CFFlÒ$Ý-[œMMUUDEñŽ9 !!ÉÇGðòòܺµŽ£ÆØñññ¬[ç8cÆø={‚==ÿXµjʾ}³G˧ ¸UEE“½½î`’—¯­mEQ”@àÎçWp(X9ÔçÏëÖÝ “im³²ÒÄ;Î(À` 99U‰‰ù?¥¤UV69KKµk¬­5õõGדëÊʦ}ûBbb¾.[6ñÐ!ÁŽ#šš²AA›BCSŽ}ýåôioGG¼C1 EÑÊÊÆÁN€ ˆ¼ü8 …ÖÒÒ ¯À± `åDW¯Æ?ao¯óÏ?+¤¤DñŽÃ¹h4FffùÇ…‰‰II…MMBBü––>>¶––šVVƒZRœs0èõë gÏFÊÊŽ Û2q¢Þ‰úC ¼½m z¸xq€‡‡ùÉ“^ðs F^}};™LÃV®¬ÛzMM+¬p,(X9Kg'eÏžGRwîtݱÃutµŽŒææŽ¤¤¢¤¤¢„„ܬ¬ æ³þÜml´tuåGû‡–Ÿ_ãZìëëäç7SHˆïD¢  ~åÊÑÑ_öî ™6íÔ¡CÞÞ6x‡cKee#‚ Ct%''Ž HMM«žžëcX VÒÔÔ±råÕ¬¬Š –Ï›g‰wÒÐÐþî]^BBnRRQAA ÎPW—qtÔ_»Öó‡L •JÿóÏè b ”¢¢v«àhÐ\\Œíì´رãþÓ§'Oz)) ºz`hJKxyy†0­•´´(O]Œ»€sAÁÊ)H¤¦%K.µ·“#"v)áåå>ä''%$ä–”Ô==[[-?¿™¶¶Z xd±ôôR?¿ Â·øøFk;±¸¸ðéÓ‹æÏ·ò÷rr:åï?‹‹çb%7·JMMZPpÐÿ®ñðddÄjjFýT¬p1(X9BVVåÒ¥rrâÏžíä„I‹ðÒÜÜñþ}ÁÛ·¹>ääT¡(ª¥%go¯»sç̉µÕÕ¹¤%µ‡ŽʉÏnÝzkg§}íÚ^MÍAOÊÃìíubbvŸ;÷â矟<{–qö¬ŽŽ<Þ¡—+(¨ò3}YÙquu=WÖp(Xñ—”T¸råU##¥[·ÖqæHp¶êê¢&%&$ä½}›ûùsÎÐ×WœÝqùòë3g¢"#3Ï[lf¦†w(À…P-(¨YµjòЗ’ijê`m$ • ‰3EEenÚt{ölÓ?ÿ\6Zž k߼ɉÏyÿ>¿µµKUUjòd½µk&OÖÂL4£ÚÓ§‡…1h@ÀJ¡/‘:*ðóónÙâ>§¥¥K^~Ü´i†ë×Out4–ëëÖúû%'ùú:íÚå*,uÊ[Q‘ÛæÖ#éëWÒœ9¦C>\RR´­L¥ÒÇÂpF#(XGTAAÍÒ¥&&*—.­Õ·Å––®×¯³cc³bc¿ÖÕµII‰Nj°aôiÓ `ùîˆÄ2?¿ ¼¼êÝ»Ý6l˜6ªÿÐYNBBäôéEnn˜«¹rÙÄ^`ÄP(´Âƒ¡/¹"!!Œ¢hss§¬¬ ƒX Ö‘ÓØØ¾bÅ99ñk×V–â{¨®nyùòsddæ»wyT*ÝØXeéÒ‰ÎÎã--5xyÇhÏÔo!“igÏF]ºgf¦öâ…Ÿ"Þ‰8ÔôéFññûΟ¹è£G©gÏúhiÉá Œ2™™4ÃÔTuÈg’A¤¹¹ V8¬#„FcøúÞ¦PhouËŠj##3##3?}*áåå™4I÷çŸç»ºµ¹¨îÝ»üÝ»ƒêêZ¹o9v8xÐ}æLcÿ`gç3~~3}}àW 0p©©ÅÒҢÙxüã®àXP°Ž£G¥§—FDü8ŠV^ÍÈ(‹ŠÊŒŠÊÌÉ©ž>ÝhýzG''£qã†8w,hmí:v,üîÝÄ©S ‚‚6©©IãhÔ°¶ÖŠŽö¿|ùõéÓ‘Ož|:wnñ„ Co0cʧO%êÃùÍkGhl„‚ëH¸{÷ÃÍ›ï®][­¯? ž gd”ED¤?}šQZZ¯ª*åêjrìØ|;;èù]‘‘™„R©ô±°;`K 8;÷÷rwÿ}Æi»w»àÀ}úTêím=œ3ˆˆð57CÁ ‡‚ ØîãÇÂÂvîtus›€w–þ‰eááÿÖ©2æf¦¦°Šæ€ÔÕµ<‘îåe}äˆ'tƒCC¥ððïÝKüùç'Ïžeœ=ë3i’.ޡ窭m--­77׿y$%a*V8¬ìUUÕ¼qãM7· ~~3ñÎÒ·ÌÌòˆˆôˆˆô’’zuuww3sXí}à°å~ýõ©˜˜à;œðNÄ xxË—Û;:êïÝâíýϲeñÄ;àDeÁÜ|¸w-IIQ(XàXP°²•J÷õ½-..|挧 »)/o M M),¬US“öð0ww737WÇ;×(S^Þ¸woð›79«W;ìÙ3 z÷²–ººÌýû¾éû÷‡FGg8±ÃS\$&èé)ÈÈ ÷±†„„pS¬‡‚‚•þóŸ—DbYdä®!¯ÈrmmägÏ2BB’ ÄÅ…çͳøãe––ì06aËœ?ÿRUUêÑ£m66Zx'âZæ'ê;¾fÍuóß~[8üÒp“òííu†IIèà ǂ‚•]Þ¾ÍûóÏè“'½9aN*••šòæMÏìÙ¦÷ïûNž¬ÇÃuêPääTùû‰eÛ·ÏØºu†  ü=b/9¹qþ¹lî\‹}ûB¦L9qð ûòåöx‡¡­œ™Y¾~ýÔáŸJJJ¤¡¡}øç°üCËMM?þxoÎ3ÜÿY--­¿w/188¹ªªÙÜ\ýÈ‘¹óæYJKÃbTCD¡ÐΜ‰º|ùµ‰‰JT”Ÿ‘ÑÐWÖƒ5cÆøÀÕ[ IDATØØ½gÎDîÛ•yê”·ŠŠÞ¡ÎRS‹i4†½= †åIHˆÔÿ<v€‚•-vïf0Ð'¼ð @£1¢£¿Ü¹ó>>>GFFÌÛÛfÑ"›Q1©'KM-ñ÷P^ÞxøðÜ~˜ÂÇ3Û4qq¡cÇæ{x˜ùû9:žÜµË–ã’’ 54dć* aèÇ‚‚•õÂÂR"#‰÷îmÄ¥!3;›týzBxxzg'ÅÍm<úg‰¶6ò/¿<¹{7ÑÁAÿÖ­uêêC_P Ÿ­­vtôî ^>ùâÅ—³gÁ/ccVBBÞ”)ú,9•„„pkkKN`9(XY¬¬¬áàÁ° ¦::Œäu kR}ý:[AAbÝ:ÇÅ‹íTUá) ¼~½woH[–à‚‚|~~n³g›úù¹¸œÝ°aÚž=³`m‹±¦±±ýÓ§’Í›Xr6öv2KN`9(XY‰Á@wíº¯¬,µwhG%(èã•+ñ¥¥õ3fß¼¹ÎÉÉ’²DCCûþý¡éæÇ/“5ËêŽFFÊáá?Þ¼ùöäÉg11YgÏúXZwöx0ŠÄÇçòðXÕÂ*""ØÙIEQfM€AÁÊJ Ÿ?ß92ÃÆóók._~ýèQ//ÏúõŽË—ObIG.€ I>v,œŸŸïÖ­u..ÆxÇ}ãããY·ÎÑÅÅxÏžà¹sÿXºtâÑ£ž¢¢°ÄÀ˜ðúu¶«V” Ód2MHˆŸ%'°¬,C"5?¾qã´ TÙ}-"±ìÒ¥×OŸfˆ‹ ûú:ýðÃd˜™’…**÷í ‰‹Ë^½Úa÷îYœ3.ø ™|CCSŽ}Ÿ{ê”÷Ô©#Ú'Œ<Eãâ¾®[Ç‚ ­0""‚‚ttP `€AÁÊ2‡=”‘ó÷wcëU²³IçÏ¿xþœ¨©){üøoo¸·²ƒ^¿žpæL¤¼¼xXØV;;m¼"ÞÞ6S§:¶dI€‡‡ù‰^0ƒ#ËkjZ§M3dÕ EDéè À  VÖxñâsddæ½{ÙW>fg“þóŸ—ÏžeXXhܾ½~Ú4CûÏZyyÕþþAéé¥Û·ÏزÅ~äåÇ]¾üCtô—½{CœœN:äáímƒw(ÀOŸfhjÊš˜¨°ê„ÿ-XaÜœ Vhk#<æéiÁÂßõ»KO/=qâYBBîäɺnµµ…f?£Réþ}áBŒ¡¡Rdä®ñã•ñN†ÅÅÅØÎNûøñˆ;îGD¤Ÿ<é­¬,‰w(ÀbÏžeÌš5…'d¶°²ðœV±ä,pæLd{;å—_æ³üÌ……µ7Þrwÿ½¾¾íƵÁÁ›¡Zš¶6ò‹ŸûüÖ§O¥nnç.^Œ;xÐ#"bT«ÜA\\øôéEaa[ k§O?uõj<ƒöÞ­´´>)©päãaúú•T\\+c¬ÃE$–]¿žpàÀÖÎyÔÞNþõ×§NN§òókVEGûÏœi“­ Š¢Û·ßݼùNEEc÷íííäÇyzþ!##öêÕîuëañ*.3q¢Î«W»W¬˜üóÏO,¸Ÿ_Óý»(ŠîÜyÍšëÕÕÍx%CITP°´Ôdá9¡`€“Á?ÏÃÂ` û÷‡ššª.]:‘Uç¤ÓW¯ÆÛØü’tö¬Ï«WþîîfPªÇÅ‹q/_~¦PhþþAÌññ9ÎÎgÂÂRÎ[´ISSÇ„€}„„øtŠÚÕÕEuq9sî\•JǾõàÁÇÄÄÂææÎ5kn07‚QáÅ‹Ï..ãYÛ_HˆŸ‡‡+œ Öa M!ËÏœñaÕDý©©Åsæü~ìXøÚµïßòö¶Ru˜ââ²ýõ)ƒÒéŒøøÜ  ¤ÆÆöo-^0a‚j\Ü^øÇcc•§Owøû»]¸ãæv>=½”Dj:|øŠ¢t:ƒH,;x0 ïŒ` ²³I™™åóæY²ö´AHˆ]À™`ÐÕ嵑ý5bÅ {–ôzì줜<ùüúõKKgÏv²pèëXVZZ¿qã-Aÿí¾ˆ:ôðÔ©ç]]Ôß_ºhŒCøøx¶lqž>ÝÈÏ/ÈÓóO]] åßVU:q÷n¢••¦-¾!Á@<|˜ª®.co¯Ãò3‹ˆ@ +œ Ö¡»t)ŽL¦úù±`âÕÄÄ‚]»Ô×·8áµlÙDhðc‰®.êªUW»º¨ÌÑ6(ŠP©4QQÁ/ü`Õ±ÉÈH9"âÇ;¦"ÈÿÃBQdÏžàñã•G`á0t:#44eñb;vÜ'ED¡`€3A—€!ª®n¹x1nÛ¶Ã\bŠNgœ:õÜËëo ™ØØ=Ë—ÛCµÊ*‡=,(¨¥Ñþ§o"…B/(¨IM-Æ)À_kkWLÌ×^ÏP]µêJcc;.©À%&VW·x{[³ãäРǂ‚uˆÎœ‰”‘檀ÕÕÍ>>/]z}æÌ¢û÷}UT¤XÜ¿Ÿxÿ~bjÃÃCؽ;¸¥¥säSNðÓOÛÚºP´ç,Wt:£¾¾}Ë–À>'ÀâáÃT335--9vœ\DDú°À™ `Н_IAAIû÷ÏzŸŠôôR7·ó$Ró³g;–,aÙ$A¯_I„!HßmÕ ÚØØqêÔóN8Á‡!!)ßš€J¥ÇÇçÄp*0@--]Ož¤yy±¥yV8¬Cñ믞žC>Ó'Ÿ,¸`h¨ôìÙ##˜©ž•ZZºV­ºJ§3z7¡!ÂËKàááa0/^|†Ù7Ç [·Þ€ðóóö¹ƒž8ñôíÛ¼"(è#//Ï¢Eì', + ] Ú›79qqÙááÛ‡ÜÙôæÍw‡…­^íðÓOž¬š `ètÆš5ת«›i4s#??/•J'ŠÎÎãmmµ,,4de‡ÕùŒR«¨Túׯ• ¹oßæ%'vtPùùyét³'ƒ¬^}=&Æ_]]ß´ ;EïÜy?ož¥˜˜ ›.!* ƒ®àPP°ƒž8ñÌÅÅØÊJshg¸z5þÈ‘G;wºîÞ=‹¥Ñ‚ È?ÿľŸ AA~2™J tuå§Lѳ³Ó±³ÓVPÇ; À??¯©©š©©Ú–-ΔÔÔ’ Þ½Ëûô©ŒLÆŠW´½½kÆ›;¾Õ F^bba~~Í¥K«Øw !!þ¦¦ö0dP°Nd$ñóçò?þX:´ÃÃÂRŽ}|èÇæÍÓ¿µOpp°ÏPŽi‚‚jÒÒ ¡RkÛÛË(”r ¥²²²+>ïdàííŒw Ö«©©ÉÊÊÂ;ÅwXY YYM ÓM ³³ë³²êrrê‰ÄòõëÿùáV®V?vÈÉɳöœwï~°°Pgk*^*•ƾó† ÖA`0Ð3g¢<<Ì ‡pxDDúŽ÷ýüföS­2qeíÂV _¥  ¬¥5NHh”µŠ?ïìÅòÚ…MLMÿ}A§3rrªSRJ%%UTT$q 5ú”••±üœé§O/bù™»ãçç£Rßß0â `„çωùùÕ—/åTRRá?Þóö¶Ù¹Óu û{{{á*cÜèm˜ Á;{Éɱe"¶RTT˜:Õôûû^jjjX~΋ãäåÅ,°bù™»ãççV8Œø„‹c]]MôõݼZYÙ´nÝ GGƒÓ§Áº0( í÷ï\¿~*»»óóó}kÊ3¾ …u RSK>}*}þüÿÚ»ï¸&ÎÿàOH–!{ƒlQ†(J(X­¢mÝÕÚª´ZÛÊ‚•ÖQQÑo몶±ŠŠâ@\·,‚ "ÈÞaeÝïë/áÂÊâóþÃW<îîùÜås—Oîž<÷}Olkc,_þ§±±öÑ£_P(ð z&:ú¡Š uÙ2ÏnQd [ô¬¢:qâ¡««¹««yO Œ­¬lºy3 /O€Á‰Á`ýý÷£¥K=UUº- E V¤\ðIm-ýÊ•¬/¾ßÓÏœI‰¶wïbSSxì*ôØéÓ©MMí«VMC[ŠŠÐ%)«H.\ÈPV¦Î™ãÚ£¥Þ¼© ¿¼v­×‡Ž À@޵¶vîÝ{såʉúúCÄÐ…]RP°Šäüùô9s\UTzpCŠÉdûûŸ°¶Ö ™5pu«°°ÿ™W×B”––®X±B”9ûo !D"‘,XÀû<Õ Gë'‘H……… ä³r™ÏÑÑ;;™ëÖMOsЇ©k÷^½ªÌË{×ÓáTHzõªâ·ß>“ì­´´´6mÚÔÓ¥._¾üñÇs—-**ÒÕÕ€èþk ;@ uÕ»$òYùËçææönõÕä¡CÕÄÓ"¬H-(X»ÿÌÌlèØ±ÃD_¤¤¤vÿþ¤o¿õéÅXýKWW7""¢§KݺukúôéÜe9N]]ÝD÷_[økÿuëÖUVVP[|z·s€A> !ùõ!ÌÏo²ØZ„‚©k÷²fÍrîѽ¼M›ÎÛÙ|ó÷…tåÊ“††„Й3gìììZ[[9ÎÁƒ‡ âé陜œŒßõùÕ«WÝÜÜTUUŒŒ¸uµµµjjj***ÜeLJ24ü·øf2™AAAúúúAAAL&!D"‘¢¢¢õôô"""Nž!Üpccc„‚Â{ÉÀ]ÐÁÁ¡¬¬LÈD äs· UÎò™ÍælÙriêTG§n‹•JAA7V¤¬Â´¶v¦¥{y9t?+B¡ÚZúIk×zhh`¡·oßâí c~ùåêøñ;DœùÝ»KËÀ?ÿ¼×ÇFEéÃzàÀƒaØ¥K—ŒŒŒêëë ÆÖ­[­¬¬ÔÕÕ===OŸ>„öùÃ0lß¾}C‡533;|øð’%K´µµ?úè#n+Ü9™Læ„ ÔÕÕñéÍÍÍ+V¬ÐÖÖÖÑÑñóókmmÅxzì zkmm­¨¨èààÏ`0xÛâ[ Ã0‡ãããà uûöíZZZÖÖÖñññˆ§ÏŸðF»†JØ}°££#00ÐØØXSSsÉ’% ¢¬_üرcºººß|óM{{;áDáï&6èû°B> i“Á|îKÖÏ?ÿÃÓs{[[gïï£ôô"#£ïÞ½kHë!HQ·*€›;w¿­­Adä"QfÞ¾=áÂ…§))›•”(}iôܹs‹-êûûRXXhkk ïïÀ!ÜýÛí .D;w®?ãÌØøû#G¾è飆{§ºº://oÊ”)}\äó@ëÇ|Æûo89õ¸ê¥K™ë×ŸŠ‹[çéiÝÓeûÅÓ§o|}ÍÈ76Ö’HA K€@¬ìì·"=/ ¡¡5:ú¡¿ÿ”>V«08ÕÔ´lÞ|qùò$U­"„ðn½ð½)«@¹¹å ËÃÃJ”™ÿþû1…B^¶Ìs £ÒCCCÃßß_”‰H?‰çó–-—)bbEü‡hP¯ …àr @99e*:ÝÎÙÑÁüë¯ûŸþºº’>\¢¤£gúúúGŽe"è;Èç&Ù|þûïÇW¯fÇÆ®ÕÐPCs‚ÀV¤\aèùóò‘#MDy"ëÕ«ÙMMí+WNCT gòòÞ…‡_Z·nêØH6’ÿ¿Â +R VrsËGŒ0eÎèè‡sæ¸A'}è™övÆ×_Ÿtv6 œ)éX¸WX%  (X‰q8ØË—¢ ˜“S–™ùæóÏ¡÷*ôØöí ¿ýö…"ùÏ#¸Â €Ô‚>¬ÄÊÊê;:˜66úÝÎyêÔGG#À›ýè?¾°´Ô•t, xú@Hþ­t*,¬FÙÚŸ­­qùræ’%ãÄÈG ƒƒÏmÚôѬY.’Žå_ð£+¤¬ÄŠŠjtuÕ»ý½êõë´Žæüù£Åȇ’’ÚÕ«ô‘ó7ßL“t,ÿa­ZÐ%€XII­••^·³]¼øtÊ--Õ~@æîLQ©úd²fGGdà “5•”ÌÚÚžK6 .mí9$…ɬb2«™Ì*6»YМ ,g`bv÷î]I‡ÄJOOØù³­±zu´¡¡æž=‹¤ê\WXZP°++k03*|žêê–òXÚ¿M{zzŠíý‚Á`߸ñöÞ½ -??GÉóäIÕ¹sEîîŸ.^l­§'Éq5ÅÅ-oßÒËËÛX,ŽšÕÌLÍÌLÿwèÐÿî55iH ™£©©Ù‹GtY§¤$pPj&“½f͉Êʦ„„o¥jìj„Bp…)+±òò†©S»©½®]ËVR¢øøô󇱙™™™™Yÿ®sàܸ‘zÉd>¼Ü×WϦnÁ´zuE`àÙ]»h~~S‚‚f(*J2Éy/›VU5Ñhe4Ú[­ì…⦦655¥áÃÍœM‡5ãp0)ºÚÔ/”””„_lƒ ‹Åùúë“iiEqqë¥ä‡V¼à +R Vbåå ÆÆÝŒ«zíZ¶“šš´]!“º:zhè…„„¬ùóGÿøã=½!’Žè_ŽŽF ß>òóÏñׯÓ"#IðÑä¼ 4}|4¹ßpªªšÒÒŠÓÒŠi´·gΤ´µ1ÔÕ•ÿ­_Ílm ä¯~ƒYg'ËßÿÄ“'…ÿ½zÄI‡C†µ@jAÁJ€Á`56¶i ™§®ŽžšZôûïËÅ•T9uêÉŽWÕÔÿþ{µ·÷pI‡ÃOA´l™ç¤IvÁÁççÏ?´té¸-[æJÛÍGM__Wü²4›Í),¬Æ/¾ÒhoOŸNiog ¢ìà`Ä­_íì ¤ª·=RUÕäçw¢¸¸&.nÝÈ‘RÚ€Ô‚‚•@CC+BH[[MÈ<‰‰¹Š‚——ƒ¸‚’ee !!çïÞ}¹bÅÄàà™C†(K:"ÌÍuΞ]“—˜˜1ÿÃGH:(bd²‚½½¡½½á‚cÔ¯@ûùE«ª*]ºôµu÷ã[K \a@jAÁJ ¡¡ !¤©)ì';7o>Ÿ4É~Põ`³9GŽ$ïÛwËÄDëâÅõ²ò¬__×q㬷m»²bÅ_¾¾®¿ü2OGG]ÒAuƒ¯~e±8¯_ÿW¿ÆÄ<éè`jh(ÛÛCý ¤†a‡߉ˆ¸>{¶Kdä"™8gB½ €‚‚•@SS;BHKKàVƒõða~xø\1%aùù•±4ÚÛ ¼×¯÷VR’¥ÌÑÓ²ÿR__׸‰w††Î^¶L–¥K¡ô¸~µ·7”tÔ :½óÇ/ÆÅeÏ\¿~šô§Â¯­Bßq¤,•bÓØØ†ÒÖ8ºjjjQ[C ûnƒµgÏÍ?þ¸ëädróæFGGcIGÔK>>NcÇZïÙs#$äü?ÿäDD,01Ñ–tP½!¼~=uêqg'KCCÅÞÞêW A÷ï¿ Œmkcœ9ã?a‚¤Ã ›ÍA‘ÉðH¤¬ÛÔÔ”¨T² îÝ{ekk`dÔÍ0r 3óM``liiÝ?ÎùòË ŠlŸÇ54”·mûdöl—  ØI“"6nœ¾víTY¿šÂW¿2™ì¢¢nýzòäcƒ¥©©jggàìlæáa%+}9€ìª¯oýᇸ«W³—.·y³o· ”l6†"“eûœ€\‚‚•@CC›ð‡WÝ»÷jòd{±Å#­­?ÿútÊøñ¶Ç¯²°Ð‘tDýfìØa·n:t{÷îÿü“»wï"[[IÕo¨Tr·õ+Bèðá;•ÎÎf..æúúÒ2$×®e‡†^PR¢œ:å's?K…+¬H-(X 45 +Xëë[_¼x4Cœ!‰Ù½{¯‚ƒÏÑéÿûß’ùóGKϳžRV¦̘9Ó9 ଷ÷?¿)ÁÁ3…\S—]„õ«—×.õû÷ó÷ïOb2ÙÜή®æÒ3¤.-ùù•Û¶]¹sçå¢Eáás45ûÿ™Õ V¤¬ššÚ44ŽÖ”ž^ŒaH^ï«â÷ò²fÏvÙ¾}ž|_{>Ü8!á»èè‡×îÜÉ‹Œ\ìæf.é ^¿"„-ò˜3Ç•÷úkbbÞ¯¿&²Ù¨_AOÕÖÒ##oœ>be¥ã7eŠŒ]Xåâp `@JAÁJ€ÉäP©÷LFF‰µµžð>2êüùôíÛ(ò‰_õû#g¥…¢ðÕW“¼½‡Ÿ÷õýõ³ÏÆ…‡Ï•‰‘wúßõ×¶6Æóçexç„„ìÿýñÖ¯nnººÒ>(§––Žýû“¢¢èè¨:ôù¬Y.2Ý)ïê +R Vl6GÈ9÷éÓ’Ñ£­Ä¼{×rþöí2÷#‰~ai©»&..#<üòýûù»w/˜4IÎû(RUUôðƽ{ÐÚÚ™›[.¤~5ÊBúµ„Åâ\¸±wïÍšš–U«&mØà#䯔¬øÿ.2\s ¯ `%Àáp°˜LvVVéüù£ÅÒÀáp°¨¨{öÜÐ×׸xqýŠ#Æ IDATرòÙÕ¡[$iÁ‚1“';„…]X¼øˆ¯¯kDÄ|áO;“{jjJ¼õ+Þ™—'¬~uw·:tPï±A‚ÉdÇÅ¥ïߟôî]ã§ŸºoÜø¡™ÙPIÕ? KR Vl6&è–P^Þ»Ž¦»»¥x#(……Õg33߬Yãð¡²2UÒI˜¾þ?ÿü211wÓ¦óS¦ìÚ¼Ù¿WBêê=«_G¶ä¿üiogDE=8zô.Þ¹jÕ$ÿ)rÖE„Åâ è€T‚‚•›Íô ûéÓ--U;;™‰Édïߟxðàm{{£›77:9™H:")âãã4vì°íÛ¾ûîÌÕ«ÙóØ»=ÅW¿¶´t¼xñŽ[¿îÛw ÃÞ«_ÇŒ±’˞߃D[#66õС;µµôÅ‹=Ö¯÷65•Éçn‡÷a•õ§KP°àp0AkFF‰››¹¬ó”•U[TT8Ãßß ÎÎ]ih¨ìÞ½ðÓOÝc½¼vÎ\¹r¢Lÿšd  ¢Ü£úÕÃÃJ‡=„*+›¢¢œ:õ„Á`-^W_ßúË/ó—.'ë׉ÅCY™6ûãÝ6n<;}zäºuS7lð‘ËG ( ¾úµýåË ¼~=uêI~~%™¬`m­_|uv69ÒTEêWÉèè`^¿N;uêIJÊk³–Íží2Hr€Ô‚‚••Ja2Ù]§¿zU‰rp0{D}ÕÐÐ~ùÂ…§3gŽÜ±cž†¤#’1NN&×®}ôhòž=7oÜÈÙ»w±ì~o‘*P¿J¡‚‚ª“'Ÿ?ŸÑÚÚ1}úˆK—¾lưÙ‰D‚+¬H!(X ¨¨Pkj:ºNõªR]]ÉÄDÆúo]½š½yó;rd¹¯¯«¤Ã‘UŠÂºuÓfÍr Šõõýõ‹/&üðÃ,¸‹Ý/øêצ¦6­,-­ˆF+;tèvUU3…¢0lØõ«³³ŒhÑZ[;/]ÊþY\\FVV©µµþ×_O]¸ÐCÎFTíƒ5Hzë sà´N@EE±½ `Íϯðò’ÊïõëêÀÀØŒŒ’5k¼6nœÿ‚fTÔÊ„„¬ÐÐ S¦DìØ1oÖ,I5(©_÷ïO¬­¥S©d++=nýêêjNøÊAˆNï¼|9óüùô§OKLL´.óë¯KdåK¸x0™lø¶€t‚#“áÖÆÆ¶êê{{©>¹³Ùœ#G’÷îýÇÂBçòå îî’ŽHÎùúºNšd·cÇÕÕ«£}|œvíZ`h¨)é !õëo¿%ÖÕAýŠ8,5µèÒ¥§W®dut0}|œ¢¢Vzy9¥Į:;á +Rjp¸E¤¬LЇ5?¿!$Í+ö6 ¶  *(h†Ÿß8튇¦¦êîÝ gÌòïÓ\aÈ0 R¿þúë­úúV¾úÕÍÍB^6›“šZtõjÖõë´êêWWsü×Tð¼!˜Lö`û>€¬€#“a—€¢¢UUEcci" ³“yóèÑd³þ æªZ^Mêxï^Ⱦ}·~ø!îâŧ‘‘‹† Ó“tP õ«‡Ç°1c¬llôe} N&“}÷îË„„¬[·r[Z:F¶\¿Þ{æÌ‘&&rø$Õ~Çd² `@:Á‘I@[[µ¥¥ƒÉdó^z)+k07בÂ+gŸ«­mÇH–ŠŠbXØì3FÄz{ï øpÍ/Y¯~äŒúuçÎk ­jjJÇsϲµ5•ŸÌ3™ìG nÜȹqƒV[Kwt4^³fÊìÙ®ðl¶éìd)*Êçwd¬ttÔ1 khhÓ×ÂX^Þ m#°¶´tlÛv%&&eút§K—Ö@ïIÉsw·LL üã»{öܼ|ùÙ¾}‹GŽ4•tP€˜úõÂ…ŒÆÆ6é¯_[Z:’“_\¿ž“œü‚Nï9ÒtÕªI¾¾®p¿w KR ŽLC‡ª!„êëé|«T}\¿N »ÀbqàqÒ†J%¯[7mÚ´á±³fýÏßß+(h| J?AõkZZñ™3)mm uu%GG©¨__¿®¾y3ç֭ܧOKTT§NuܾýSoïáÚÚj‰Gn0Ð%)G&u„P]]+ïIJ²îHæ’U[K »µl™ghèlT:98]¹òíéÓ)?ÿíZöž=‹Æ·‘tP xëW6›SXX_|¥ÑÞJ¤~Å0ìùóò¤¤¼¤¤Ü¬¬·ªªŠ^^¿ýö™·÷pøUa0Øòú#<d¬´´TÉd…º::w ‡ƒ½{×(ñ_-p0dˆòÉ“~Ó¦9J6 œ‚iÙ2Ïɓ탃Ï-\xxéÒq[¶ÌUWW’t\ ÇÈd{{C{{à Ơ.õëéÓ)ííŒ!C”Œ¸õ«]ÿ<¯­ñàA~RR^RR^UU“±±–·÷ðï¿ÿpâD;1´ß1,Ø«H'82 É šš*¼kMM ƒÁ’lÁZVÖ|îþýWk×N…ÇÈ3³¡gάIHÈúᇸÄļ;ç͘1RÒA>^¿ÆÄ<éè`jh(ÛÛ÷¾~}ó¦îμÄļ'O Y,Ž››ÅÊ•¦M>|¸ñ€m€'] ½ `%¦­­zåJVyycg'£­QRR‡"‘PSS›øï¾áØ·ï–©©öåËߌm%æ@ßùúºŽg½mÛ••+£|}]ùeÞóDsñRSS¦Ñ~î—^¤Ç?zTXUÕ¤©©:nܰñãm¬¬ôëëéøõ×ìì· ËÀ@ƒÛyÀÙÙÌÀ@Cұ˳ŋø°°ë™ŸJ%ò‰û¯¿.‘HT>P°þ'11÷‹/Žu;•JþòË ?ÿüqß[|ú´äãp8œ°0߯¿žŠO¤Ó;·n‰I™8Ñn÷îææ:}oH§ÎNÖÁƒIû÷'9;›íÝ»ÈÎîßëjUÓ¦ía³ÙëÖy‡†Îê—¶¾ÿþì¥K ÿÝ 圜íÐÕd `–“S––Vœž^üäIam-}èPµñãm'N´›8Ñ΂àÐf2ÙEE5ÜþYY¥L&›·~uq1'¼!zíĉG›7_$¼ÈzåÊøÍR Ö÷|øáÞ¼¼w‚náH$Ò£G¡––º}l«²²iÚ´ÝÍÍl6‡B!'&ÚÛþóÏó8ƒ10H¼xñ. 67·ÜÏoJPÐ 2YaæÌ}/_V²Xl‰ôûïËçÌé‡Lxð Ñ¢ßù&R©äÅ‹ÇîÚµ ïë\¯^U¦§?xŸšúºººEKK¯P©Bt[¿ººšëéAýÚ'UUM£FýÌ÷QH"¡aÃô<•TT>P°¾'9ùåÒ¥G…Ì@&+ŒosöìÚ>6Äd²çÌÙŸ—WÎd²B ÙÞÞÐÕÕìôéÔiÓ#"K×c`Á€b2Ù$íߟäà`4nܰ¿þz€k"‘’õÆ}ïÔÈá`ÎÎ[êëé|Ó/^\?nœuW.êêèõõ­¶¶½[üíÛú{÷^=xŸ–VTUÕ¬¡¡2y²ýĉvcÆXÙØè÷K¿„“É~ñâ]ZZ1^¾~]ÍfsxëW77 ]Ý~}¢¶–Þ/ë‘Ó¦íyù²‚÷ÓPA>wõêÉŒ À V~¾¾¿fe½r‘õĉ¯¸oìµ-[.EG?d±þkEA¤¯?d×®…}_9QoÞÔmØóìÙÞÄ PŒŒ´’’‚† Qîãú·l¹tâÄ#ü;NOoȳg?òÒódÛ¶„åË?ؼÙWôKJj32JÒÓ‹ÓÓ‹_½ª¤PÜÜ,Æ·ùàÛÑ£-Å0þ|kkgnnùÿ>PVXXÅá`¼õë¨Q½=mÖ¬_-,††‡Ï50Ðì÷°¥Ð¾}ÿüö["ï¡A¥’³²~†GÝ = `åGxçôÿ‘LL´RSìã|\\Æ·ßžîºç)÷î…ôô¦!†}üñü¶/ït …ìåeýUŸœ”™ùföì_¹ÿ¥RÉ_}5éÇçôe²îùóò€€³¹¹å6z´å•+ß ™™ÉdÓheÅiiEOŸ–TW·¨©)¹¹™cåá1lÌ+UUI>ΣÛúÕÝÝR”ñ\Y,޵u0“ÉVV¦ÎX½z²ÜwqÎÍ-÷ñ‰äþ—B!ÏšåüûïË%€¬æÎý-3³¿Èª @Â0„ï%2Y!,ÌwÍš)}Yù«W•3fìe0X]w<•J=Ú2.n]¿<ÑÈœ˜˜'›6çpIÒæÍsú˜{!meeõÜÿþóOÀÈ‘¦}\§Œª¯o ¿tñb&™¬€d§¨H),ÜÅ7^Gii]jjQzzqZZñë×Õfkkàáa…©Òüõ’NïÌËV¿ŽmIxñùóòéÓÿ­ÞHººCÂÂfãÏDcîî?WT4rÿ{þüºñãm$€¬ÒÒŠ>þø÷¿$Âw’’%;{k_ÔÖÆ˜>=²´´Ž÷ž// <øù'ŸŒêu@FUW·L˜ðKkk§ C’LV¸ti}³¼{÷C‡nãWp­¬ô=Œ¿)Á0,&&eëÖ+L¾‹ÙIIA¶¶Ïž½¡ÑÊÒÓ‹ñ©ÊÊÔ1c¬<<¬<<†¹¸˜khôµo†D´´t¼xñŽ[¿TaØ{õë˜1Vø¸¿§O§lÚtžÛ-JAÄá`žžÖ;wÎçd!6o¾xòä&“E"!SÓ¡))›áÂR VbŸ~z0=½øÿøBÂ0ŒB!/\è¹°/«õ÷?qãMHµŠÒÒR}ð žÄ8ØøûŸHHÈ‹ÂÈdmmÕÛ·ƒûò«ðÂÂêI“v"„(ò·ßú|ØëUɨ—/+‚‚b33K1 !ôÞ®¦Pìí**ëë[54”ÝÝ-ÝÝ-=<¬ÜÜ,äï1`UUMÜ‘_i´·ÕÕ-T*ÙÎÎÐÅŬ²²éþý|¾ç§P( †¾ürBpð̾w§–B÷ï¿Z¼øBˆBQØ´é£uë¦I:"À{ `%öøqáüù‡Bšš*zz……U¨Ï÷O»ÿÓO—ùÊ …L"!&“­¦¦4vì°>°;ÖÚÙÙTî;>ÅÅ5iiÅ))¯=*(+kPP Q(dƒÅ;…Bvs3¿pa}_žØ9iÒÎÂÂj„Ðýû?ØØè÷5nÙÑÚÚ¹sçõ'’HˆðK#…B¶µ5X¾üaöö†ƒê·h••MxåJ£½}þ¼¼ªª™p62YAKKmËßùóGËÙHƒåèÚÞÎ$“Iáƒä×fÈ(XZ°àð£G^^NN&Þvw·LHöƒ áÒÒŠæÍ;„_²¥RÉÆfs´µÕ>øÀzÜ8kOO£Aõ „¨¬lJIy’òúáÃÂââ„0%%jg'Ʉ֬ñêË/¥º½cÇÕáÓ’‚ú1f)—v¡±±]øƒ—­­ûЛ ËÚz“aRH3Æ2"b¾££±8chø]Ž3FFE­”t,~ï ¼ÒØØøæÍI…"m>ùÄæÑ£##% BÈÛÛ";;»w«ª¯o_·î þ ­­âêj„ü0UUUÉÉɘL™5kV[[០ø6°ëDîâ#FŒðóóÃ0lÍš5îîî cÀ¢~B¨  €û_‡3iÒ¤-[¶šŸp»D_?zþüùóçÏbÍ„(?¹ûS”‹'LOßñ¡(98qâD‹Å]ŠN§[ZZ9r¤kÝîËÀ®Áˆ³u1ç¿(¤çéºì@àm+;;›D"%&&"„^½zÕ»®DlÇû€64 ‡¡ @þôø ë•+WLLLBgΜ±³³kmmE1™Ì   }}ý   &“‰ß¹}û¶¹¹ùÝ»wÃÃÃÍÍÍõôô–/_ν|Øu)„PBB‚³³³²²ò°aÃNž<‰b±X„‹×ÖÖª©©©¨¨ðÞpá¾7nBÈÐÐ ¸#Ã]!¤¨¨µsçÎãÇGGGS©TAAöã¦uE"‘Ö¬YsíÚ5AëáÝ.×yëÖ-mmí;wr÷F||¼½½½¾¾þ† :;; 'ŠšRƒ0?9ÎÁƒ‡ âé陜œŒßr“îêÕ«nnnªªªFFFÜ›ƒÜ„éšZx2<|øpA‰åè訧§qòäI+++MMÍüŸ¡ë»ìééù¿ÿý!T__¯  ˆb³ÙÚÚÚxn466~ùå—ººº¦¦¦|‘àkÆ0,00ÐÕÕµ¶¶‰œó§NÚ²e ™Læî55µààà˜˜˜^ì·½Y‚òPøöÚÚÚ"žƒ‚ÏàÉQˆç!<#'Æn³o2#„Ξ=;yòdoooÞë£$)&&ÆÑÑqèС»wïFmذaÕªUø_étºªªê³gÏ„¬„oº¦b·›ÀÝ‚>ËÆ)(Q w,8€lã­^Eüv¾|ùò/¾ø¢²²ÒÀÀ 55Ÿ¸k×®yóæ•––Òh´Q£F…„„à_gΜyçΟ~úÉÉɉF£åääŒ;600PÐRt:]IIéÈ‘#ýõ…B¡Óé{öì!\<**êäÉ“Øû_L /Nä.΂ھ};ïÄÝ4Œè‹ozzº–––ðÖñ¿ Z'/„ÐìÙ³›››/\¸€ª­­Å×0}úôüüü””›Ÿ~ú‰p¢ðLÎ+¬]óóèÑ£úúú/^|÷îݵk×LMMñ}ΗÜÍÍÍŠŠŠ+W®,++;uêB¨ººšox2TTT.ˆZ²dIssó±cÇB .lnn>zô(þv`DïòÖ­[gÍš…aX||¼††Æ¨Q£0 ËÈÈPVVnmmÅ0léÒ¥Ó¦M{ýú5F1b÷Ä#Á{¿q8nµŠG+JÎã¥LMM ߎ}òäÉСC{±ßBYYY-ïôf ÊCQ¶—0ä&ÿE!…ÇßUuw€:Ëñ&3‡Ã±²²:zô(†aaaaNNNÜBóçÏohhøóÏ?Buuu÷îÝÓÑÑa2™†:uÊÉɉÃáY ß&tMÅn7»AŸe„ Æ)(Q w,¯;0©<€üéMÁÚÐÐ`jjêììÌ›ÇøëÄÄDWWW<ïi4†aööö/^Äÿš——Ç}Ýu©úúz*•ÙÐÐÀápZZZØl¶ ÅçÍ›W__õ¶`å.Žãp8sçÎ%“ÉË–-ãÝÞÝ4¬»‚UPëøAëä…º{÷.†al6o‹7~ Ãbccmll'bBIgÁÚ5?œœ¢££¹3œ8qBø‡qggç‹/èt:›Í¾wï÷ ’oø~´ B(33Ã0ƒÁ÷Ÿ¡ë»œ‘‘¡®®Î`06nÜJ¥RöìÙóÑGáË’Édîοxñ"ß;ˆ¿Fïß%çñ‚•[ãr=~üXWW·ûMÈWå®oaЏ½„ù 7ù/ )/p|ûŠ0NA‰J¸cy Ü€Iå±äOo~t¥¥¥åçç—››»víZîÄ’’###ü·>>>ÅÅÅøt„Л7oð{v!GGÇO>ùDÐRÚÚÚÉÉÉ)))¦¦¦“'O~ðà‚‚áât:Édjkkwý e+º.s÷îÝ;wîÄÅÅÅÇÇ‹gÓc+((°¶¶Þ:NÄu#„øþÄ ÛÁÁ¡¬¬LÈDÙÒ5?‹ŠŠ\]]¹38;; _ƒ¢¢b~~þŒ3ÜÝÝ£££ñ‰‚ò ‡'Ⴘ!C† „ð{q]ße77755µôôôû÷ïÏ™3]:XEIDATÇÍÍíþýûÉÉɳfÍBUUU±Ùln’ØØØpß,<\zzú”)S~ùåA›@˜óZZZ†††]¡œ••Å»r÷®kç9n[]O&¨KЏ½‚ ªü…DŽœ š„ð,Ç×ÖÙ³gY,–®®.‰DrwwGñö À€»B2™üé§Ÿ^¼x±¶¶6))iéÒ¥¢¬'$…ã8AŸ„ʼnˆUø'ï~€ȨÞ¬oß¾=xð ··w@@w"~éÿ(jhhHIIÁ§ãG¬±±qII >%++kÇŽ‚–jooçp8çÏŸ¯¯¯_µj•¯¯o}}=áâ7oÞœ1co`ø°;ååå¢lßâïÞ½Û°aÞ={&Mšîïï_WW'†Më†a¿ÿþ;^—i'â: ;¢áߤBùùùø‰LÐDÙÒ5?MLL²³³¹3äææ _C{{ûÂ… ƒ‚‚233>ŒOìšo¼ðd \P]ße…>ú(>>>??Ô¨QS§NMLL¼ÿ>žd2¹¨¨_üõë×&&&¼‘àŽ9röìÙäää®› $ç—.]ºmÛ6üJ BhÉ’%gΜ‰ˆˆX²dIO÷›p„'Ô%EÜ^AUþ‹B"ÇNø MP[]Ïr¼m±ÙìØØØ}ûöq;œlܸ166–û½¨ë×ø \ºtéܹs&LÀû?t»œT… Ï AºÆ‰ëš¨¢ìX8€lã½æ!Êí$6›ííí½mÛ¶úúzCCÃ+W®àÓ7lØ0þü’’’ììì±cÇ®_¿ž÷îFxx¸³³sNNNNNÎøñãW¯^-h©öövee常¸ššš?þøCYY¹½½pñeË–•——ãëÁ.ý믿šššðï¬Øÿß:Á{Ëu½?Å»8‡Ã™={öäÉ“ñ;M ÃÙÙyÉ’%bØ4ülÈÖêîÝ»sçÎ555mll¥uAëüóÏ?¹k@<×·Ï //¯‚‚‚´´4[[Û-[¶Nž RØ%€0?ùå}}ýË—/WTTܸq£Ûþy $鯸X¤¡ÌÌLÞ„!ìm"hAŒè-à{Ýõ]Æ0ìüùóêêê>>>†%&&ª««óöÌûì³Ï¦M›VTT”““ãääÄ}»Fngg×ÞÞ.zÎ755ÙÛÛ{yyݼyóÕ«W¡¡¡!}}ýÎÎΞî7Œ'Ãy z³å¡(ÛËí+—ù/ )-üÃð}ûö :ÔÌÌìðáÃK–,ÑÖÖæMA¥a×õõõ1 VÂlill¤P(øÏ¡Z[[ƒƒƒ¹ Õ××þùç:::FFFßÿ=÷ìU{{»]hh¨è9aN1b„²²²µµuXXØäÉ“-ZÔ£ýÆÝ|¯ʄo– <¾½¼{·;\Fó_RxŒð½5„©ÞíÂw–ã;ûûûOŸ>w9޵µõ¦M›„¬|Íš5***ÍÍÍÝ®„oº¦b·›ÀÝ‚>/øv/¾8%j/vl˜T @þ0ž“êêê¼¼¼)S¦~À¹QXXhkk‹½_IN¿o(¶Ñ­û+?{±¥!Ä`0233ñ!~ŽÞÍQÀ1"º°°°’’’˜˜IÒ ¾8ûñ­é¯Iå±äEÒdƒ¢¢â@W«ˆAGGÇ»w¢Îœ9#éX„‘•8™4+è Q& fbÈCÈÿA.55uôèÑ+W®”òÛ‰„qöc¢Âd t ½'£]èRxŽ Rx,ùWX€Tƒ‚H5(X€Tƒ‚H5(X€Tƒ‚H5‚dgg‹? ‹Z[[555ÅÜ(ä'ÉQÀ1ÄLj OÞ+X•••õôô$ 9šššbkòH1ç¿(à!…Ç?$ù~Z4uЇH5(X€Tƒ‚H5(X€Tû?E¤!ÄÒùÒ…IEND®B`‚XQilla-2.3.0/docs/simple-api/classATGMonthDayOrDerived__inherit__graph.png0000644000151400015140000002221211653571064023442 00000000000000‰PNG  IHDR³]ÇOËâbKGDÿÿÿ ½§“ IDATxœíÝiXçÚð;$ P-„EDTP(îVź ÅZë9Õ£­¶Ö—ÅūԞºjÏÚÚ«­UĶ①€R{lËVl•M¥•""AÙlÙæý0mLÓ H0÷ïâÃÌä™ç¹gòÏÌd!aPuc¢ïÂd 2L"Ãd 2–NzÙ»wï¥K—tÒê£;vøùùõ½Ý$ƒÏçÿöÛo³fÍÒIo¨×Μ9ª“®t“ ˜5kVJJŠ®zC½Ã`0tÕ^g 2L"Ãd 2L"Ãd ²MC…¹¹ùìÙ³KKKµ´§(ê7Þ°´´° ‰êëëW­Zåîînii9}úôôôt½”QYY©Ã§=ècÆ•+W„B¡P(äñxžžž+W®Ôòfo}}ý©S§ÊË˲B5ÍÍÍS¦L±°°àr¹EEE¯¿þzHHÈ?üÐ÷ž«««Ùlvßûé':{=ã 988899€““Óþýû9±qGG¸¹¹ h‰µ{÷nÿ„„zöùçŸohhøøã_yå•>ö¬P(š››û\`Ñçu†©©©™™™µµ5=+•J£££9Ntt´T*õõõ:IÄô6;;ÛÍÍí—_~éÞ Æ©S§¼½½íììöïß2™l÷îÝnnnk×®}øð¡¦þ 55uóæÍªeïÞ½ûøñãôôÇßzë-6›íêêÕÙÙ©zÌWî^F['—Ë80vìX++«Ù³göÏý ¥ AAAAAA=6€ÒÒÒ¶¶¶¶¶¶{÷î½óÎ;ëÖ­SÞX[[Ëãñ¦Nº}ûv@ Z¡¦¯¾újNNŽX,îÞ€tÅŠ­­­ñññÐÜÜ|àÀÇçógΜ¥©ÿÖÖVhiiÑ´E«W¯¨ªªâñxãÇß³gjͪÓÝËèqë<ÈápÒÒÒêëë¿ûî;—ï/àr¹=ÞOb “¡ÊÒÒ²¼¼\y«———P(¤§333'Ož¬¶ï45àñxšÐƒæææR%‘H@ Œ7.--nV^^®œî¾zKK ´¶¶7G"‘0™Ì7nгiiiZ’¡VF[7vìØ¯¾úJÙà믿~–“!èéööö÷Þ{Ï××WyëСCUscmm­¶ï45H$šЃ޺uKµ€¡C‡òùüîåWwtt¼|ù²j³¢¢¢^x¡½½ýîÝ»ÐÑÑA/çñxC‡U­¹¢¢B5jeô¸uæææ¥¥¥Êׯ_Èdèí:ÃÂÂâ­·Þºyó&õ籄Íf+sÓÚÚZPP ¶Š¦¦¦¦Ú˜˜üe3]\\jjjèéÒÒÒ>úHËêK–,ùä“O(•^RR’T*µ°°pttd2™ÕÕÕôòªªªáÇÓÓ2™ îÝ»§:®Z=n»»{YY™²ÁÍ›7µ¬®{:ÉW/ŽEݹsD"=¹bÅŠššš²²²™3gnܸQíQÕ‹jƒÒÓ»wïž8q"ŸÏçóù³gÏ Õ²úƒìííW¯^}ùòå²²²={öÀ… èUV­ZP]]Íçó}||víÚÕØØÇÿý÷ß—-[*Ç µ2èâÛÚÚ4þÙgŸq8œsçÎ …‹/Ž=ºÇû ž³ EQr¹|ذa·oߦgE"ѺuëlmmíííÃÂÂÚÛÛÕîø^4 HwIgggTT”‹‹‹µµuHHˆò2‚¸:EQ555+V¬pqq±²²š1cFFF†rÄ–––5kÖØÛÛ;;;¿ûî»ô™eß¾}666cÆŒ9þ¼–dH¥Ò9sæXZZj]&“8pÀÃÃã¹çž›5k} ëqë* JÿU øù ½c0\.—¾;úß7Ad˜ D†É@d˜ D†É@d˜ D†É@d˜ D†Éx¬°°Zß%}¦ëÒ¥K/¿ü²®zx‰Y]݈ѣ«ô]ˆ¡ÐM2è' jwïZut˜››; *Ów-½4bÄt¥›÷Mž¾¾ûjk›·ly%*j‘¾k1xP^^_[Û gÎë»CÉHM½jjÊ€»w[JKkõ]ŽAÀd€BAq¹ÅR©X,æ¹s%ú®È `2 °°º¥ELOËdò³g¯Êå ý–d0ž^Âb=Þ--íùùøÜÕè“!•ÊÏ+‘É$X,fzú5=–d Œ=yy·Äâ.Õ%2™<#£L"įj脱'#-í“©þæuææþ¦—z ‡Q'£½½ëâE^÷ëM“ÔTc?¡u2²²Êé'«järÅ?Þhoïê~“ñ0êd¤§_ÓôÞ€D"ËÌØÿ 30Æ› ‘¨#7÷––·ÒÓú%/ã}G­«KÖÐð»r6+«|çδüüÊ%L¦‰««­>J3ý;†cÈÖÈ‘öÊY+P]bäŒ÷l‚´Ãd 2L"Ãd 2L"Ãd 2L"Ãd 2L"Ãd 2L"Ãd 2L"Ãd 2L"Ãd 2L"Ãd 2L"Ãd 2L"Ãd 2L"Ãd 2L"Ãd 2L"Ãd 2L"Ãd 2L"Ãd ²AÿÍ*ÕÕÕYYY}ïçÆ ;v¬ï]@XX˜NúÑ£AÿmL)))+W®ì{?&&C˜Lk©ôAß»€Á¾Wá™9›P}&—wJ$÷ûÞ—ËÕ÷ÎÐg$Hç0ˆ “È0ˆ “È0ˆÌX’Á`0*++õ]Å`b,ÉPª®®f³Ùú®b0ºd(Šææf}W1]2蟰wrr¢g¥Ritt´££#‡Ã‰ŽŽ–J¥À`0½½½bbbNž<9jÔ(kkë;wê³ôÖ÷׃õ‹~5ºÇf (Šªíccckkky<ÞÔ©S·oßN7 ‰D ,‰Ž= MMM:©Çð úmèc2¼¼¼„B!=™™9yòdºqII EQ‰Dmšî¤ïõ¾Aÿ.|ÕÔÔ8;;+g­­­é +++055U›6Fw¡†Íf+­­­ú®ÈPi2Äâ?~~ùòåï¿ÿþ;wx<Þ¢E‹¾üòKýf8Œ.îîîsæÌQžAöíÛgee5eÊ”—^ziÒ¤I±±±ú-ÏpËuõ燬X,ÖÏ?ÿ¬\nee•˜˜˜˜˜Hl¬eú™gtÇ ô„0ˆ “È0ˆ “È0ˆ “È055‰õ]‚yF^éêûÿ£vvÊ/\hX±bxû¹víZ{0ÏH2ÂÃÃû؃¹¹·µu@VV,Eu餤ÁnПM‚ƒƒuòq„Å‹72¬¤¤ŸtÒ›¾÷Š údèDs³¸°°€‘šúŒœ ú“pî\ €*(¨jhø]ßåLÀ™3Å L&##£TßåLܹÓÌçߣ/ärÅ™3Åú®È `2àüùëL&ƒž¦(¸yó^uu£~K2˜ HN.”ÉÊYSSæ¹s%z¬Ç@{2~ýµ¾¦¦Iu‰T*Ç `2ÒÓKLMÕwÂ;Í7nÜÓK=†Ã¨“AQTJJ±TªP[Ž'0òd\»Vóà¨ûrú„B?5ZFŒôô릦LâMmEEÕ\A1ÞdÈ劌Œ¹œ23cuÿ€o¿5ê—¼ž‘÷Z{ááÃGþÊÙŠŠ†o¿-{ï½W”KlmŸÓG]†bл´®dd”FD|]_ÿ©¾ 1Æ{6AÚa2&‘a2&‘a2&‘a2&‘a2&‘a2&‘a2&‘a2&‘a2&‘a2&‘a2&‘a2&‘a2&‘a2&‘a2&‘a2&i “ŸóÐ$((HßÛ÷¤LMÙVVsô]ÅSàr¹ýzßõû÷tùúúnÙ²¥¿GÑH}ðD‚ƒƒû{ˆ~Oƈ#Ñ‘)áu"Ãd 2L"Ãd 2L"3 dìÝ»—Á`ÄÄÄè½5••• CÓ­ÉÉÉ ’ÒÒÁýµå†’ Š¢’““ÝÜܸ\®n;©®®f³Ù}©ÍÆÆfÛ¶mšn]ºt©P( …W®\áŸ|||ú2¨þõëëhAAAAAAOÒ²¬¬ŒÁ`dffÀ­[·z7±@Ðß›9ÀQýÿ¨¡3’““ýüü,Xàåå¥úˆg0§Nòöö¶³³Û¿?DFF®_¿ž¾U,[XX\¿~]K'¾¾¾àääDÏ>|øð­·Þb³Ù®®®QQQô(‰‰‰ÞÞÞ111'Ož5j”µµõÎ;Aål"“ÉvïÞíæææàà°víÚ‡jÙ"btWçÏŸ7n‡Ã‰ŒŒìêê©TíèèÈáp¢££¥R©®vlïõkîžð˜¡P(FuôèQŠ¢>øàåM°bÅŠÖÖÖøøxhnnÎË˳··—J¥E%%%ùøø( -¨=”W¯^PUUÅãñÆ¿gÏz”‘H”ÁÁÁ"‘èèÑ£ÐÔÔ¤ìáÀ>>><ÏçÏœ93**Ju+Ô"ÖI·Y¸paEEEAA‡‡]@lll```mm-Ç›:uêöíÛµï1èÿc†A$£  €Åb555QuíÚ5àóùÔ››KQ”D"@ “Éœœœ²³³)ŠZ¼xqLLŒöNTï0‰DÂd2oܸAϦ¥¥yxxУ”””(GQÊÆ—––F¯[^^®œ¦©%ƒX'݆ÇãÑm¸\.]€———P(¤fffNžúH{ûîuÒè#TTTйg³Ù€~°¶¶¶ŸÏçógÏžªº!ÝŸ›t¯“nãïï/ŠŠŠ<==é"##W¬XQSSSVV6sæÌ7jßi` ×ááá .T]¢P(ÆŒ³mÛ6Jó}ann.‰zìD*•Ι3ÇÒÒ’^ÞÒÒ²fÍ{{{ggçwß}·££CË(jÉèì쌊Šrqq±¶¶ immU‘ø¬U­NºMBBÂÈ‘#Ùlö¦M›èD"ѺuëlmmíííÃÂÂÚÛÛµï4£HFïüë_ÿZµjUô¬[juêê5H†A\>•ÎÎÎúúúÄÄÄÓ§Oë»mKšèÿ ôi¾ð o¿ýöüùóõ]‹6Ä:‡ ®¿¢žÂà;føùùµ´´è»Šžëäp8qqqz©çi ¾c˜ D†É@d˜ D†ÉxL¡ znd40ˇeë» ÒïÏZÏœ9£åC”†ÃÌÌÕÖöÕÍ›à‘€AQý¸#òóó•os¸ääªüüûÿüçócÇÚè»–'âëë;bĈþë¿“1XH¥rŸÄ⮕+g~úéëú.Ç àu@vvy{{|ûíõÎNø ¦Àd¤¥]£?ÔÑ!ÍÎ.×w9“mm?üpC.W“ÉHM½¦ïŠ &”±™L‘].uê·$C€É€³g¯ªÎÊ劋yú*Æp{2ššÄ—/W¨½ú©–ãdìÉøî»2€¿¼§PPùù•mú*É@{2Μ)îþv ƒÁøöÛÁýŸì}gÔɸ{·åúõÚî¯õ)Š””b½”d8Œ:ß~[ÊdÞÓ¡(àóëjk›¾$ÃaÔÉ8{öªL¦ ÞDQ”‘ŸPß'„uåÁƒ6‹éåõÇ“vvJ>|ääôøJ++è©4ƒ€ï¨ý!#£4"âëúúOõ]ˆ¡0ê³ Ò“È0ˆ “È0ˆ “È0ˆ “È0ˆ “È0ˆ “È0ˆ “È0ˆ “È0ˆ “È0ˆ “È0ˆ “È0ˆ “È0ˆ “È0ˆ “È0ˆ “È0ˆ “È0ˆL÷ß¹³wïÞK—.é¶ÏÐÖfÕÐàìéY¡ïBzcÇŽ~~~ºíS÷ßÓÅçóûí·Y³fé¼ç~ek nn¶ú.ä©9s&44TçÝöË7¸Íš5+%%¥?zFÝõÓ‘áu"Ãd 2L"Ãd 2L"Ó[2*ÜÝÝ×®]ÛØØØ÷nÛÛÛ£££'Mšdee5}úôÿüç?2™L­Mrr2ƒäìÙ³}¹Î×Ômié üþr}~ïø•+WF%—Ë+**>û쳩S§òù|òéVWWϘ1£©©IK‡mmm3fÌpttŒ=zô7vîÜ™™™™••Åd2•Í–.]* àöíÛ/¾ø"= EmÛ¶­×›£©[{{û^÷©O”®õØ rV¡PÌ›7o×®]šÚ ‚«ŠŠš;w®L&S.‹Åîîîñññ½î³ú©[M€Ëåê¼[C¹Î`0ß}÷={áÂ…)S¦XXX8;;ÇÄÄ€¯¯/899Ñ ¤Ritt´££#‡Ã‰ŽŽ–J¥””´k×.ÕÃÃsÏ=””TYYÉ`0²³³ÝÜÜ~ùåb te=‰‰‰ÞÞÞ111'Ož5j”µµõÎ;µ@¹~ýzzZ,[XX\¿~ëüùóãÆãp8‘‘‘]]]OÕm¿ÓyÖzwÌ (ª¸¸ØÆÆ†¢(‘HdffööÛo×ÕÕ%%%ÀƒÔˆ±±±µµµ<oêÔ©Û·oomm€ÆÆFµ._¾ìèèH¯þꫯæääˆÅbú&µ>Ug $$D$%$$@pp°H$:zô(455 öCQT^^ž½½½T*¥(*))ÉÇÇG¡PÐm.\XQQQPPàáá±gÏíÝjÙ“ýqÌ0Ädtuuýúë¯b±X.—çååÑ-Õv·———P(¤§333'Ož¬)ùùùl6›^Çã©Þ¤=%%%EI$µiºìîhêV&“999eggSµxñ☘ee=\.×ÃÃC{·Zöd$À~ùF Œ3ÌÌÌ***BCCÅbñ”)Sˆkjjœ•³ÖÖÖ666NNN¥¥¥ ,PmYZZ:mÚ4zÚËËëÉë±²²SSSµiMhê‡Éd._¾<--mâĉYYYô‡æéé©,¬®®î©ºío†rAQÔ‘#Gþö·¿@GGGppptttIIÉáljíéÃîÖÖÖ‚‚X½zõ‡~(—Ë•ÍÚÛÛccc-ZDϪ޵}D,@“   ôôô”””9s渺º*—ÓG¨¨¨pqqyÚnû•>“ÑØØØÐÐpïÞ½¼¼¼e˖ݾ}{Ë–-ÐÕÕ%‘HÌÌÌ:::vïÞ mmüzªX,¦'–/_þþûïß¹s‡Çã-Z´èË/¿€]»v=xð àûï¿ééé3gÎ>|ø† t^<±MègL~øáš5kT—oÞ¼¹²²²¸¸ø_ÿú×o¼ñ´Ýö/ŸŸžü:CiĈ«W¯¾ÿ¾òÖƒÚÙÙ1âðáÃ!!!G*•Ι3ÇÒÒ’n ‰Ö­[gkkkooÖÞÞN/‹Åï½÷Þøñã-,,|||öíÛ÷èÑ#JÃ3Ií×ÊÇ.qZSšÆŠˆˆ077‰DªmFŽÉf³7mÚÔÑÑ¡½[-{²?®3tÿ™®àà`ÀÏg¨ùàƒjjjN:EÏVVVzzzêdç3 .—Kïv2 +ÐgUggg}}}bbâéÓ§õ]ËS0”+ÐgXaaá /¼ðöÛoÏŸ?_¹pذaáááú+ªgxÌèw~~~---j 9N\\œ^êyBxÌ@d˜ D†É@d˜ D†É@d˜ŒÇ «õ]‚é—g­—.]zùå—û£çþ#‘˜ÕÕ=ºJß… Ý'ƒþðÕ s÷®UG‡¹¹¹ÃСêŸ(6pAAA#FŒÐy·ºßdòõÝW[Û¼eË+QQ‹ô]‹AÀë €òòúÚÚf8s¦Xßµ L@jêUSS&ܽÛRZZ«ïr & ŠË-–JåÀb1Ï+ÑwE“……Õ--|TL&“Ÿ={U.Wè·$C€É€ôôëñ~hiiÏÏÇç®FŸ ©T~î\‰Löø Áb1ÓÓ¯é±$aìÉÈË»%w©.‘ÉäeÉ {UCçŒ=iiטLõÿô¨37÷7½Ôc8Œ:íí]/òº_oš˜˜¤¦û Ũ“‘•UN?YU#—+~üñF{{W÷›Œ‡Q'#=ýš¦÷$YfæÍ-ǰo2D¢ŽÜÜ[ZÞ6JO7ê—¼Œ÷µ®.YCÃïÊÙ¬¬ò;Óòów(—0™&®®ƒï+…uÅxÿ«`ÈÖÈ‘¿'ÉÁÁ T—9ã=› í0ˆ “È0ˆ “È0ˆ “È0ˆ “È0ˆ “È0ˆ “È0ˆ “È0ˆ “È0ˆ “È0ˆ “È0ˆ “È0ˆ “È0ˆ “È0ˆ “È0ˆ “È0ˆì/߬R]]••¥¯RôëÆ ;vLß…èMXXØ_æU$žËåê©*ý31bjÊÑwúDýáÛ˜rss¾,¤G?ýôÓ¿ÿýoµ…xÈ0ˆ “È0ˆ “È0ˆ¬÷ß!üÍ7ßœ8q"44tÕªUô’œœœ½{÷voïááQWWwèС›7oššš>ÿüóëÖ­3f ÝÀßßøðá'Ožd0ÿÔȶmÛŠŠŠ’’’†Þ» ýýý»¯îïﯜvttœ4iÒ† lllzÑggçW_}U\\, ÝÜÜæÎûúë¯3™ÌîeôzÄ{÷î½ñÆ}y¡×=ô2Eåääp8œÜÜ\e2fÏžšš B¡pãÆô4 6ìÁƒÿüç?çÍ›wðàAøþûï###>>~ëÖ­ š'®®®õõõðèÑ£]»vyzz&%%mذ!>>þáÇ~~~—/_–Ëåpùòeggg±XÜÒÒ¢<÷)yxxÔÖþñÑ)))Û·o÷ôôÔ2"œ={V(=zô“O>)))9qâqõ€€€¼¼<ú‘S\\¡äççO˜0aذaôM2™,''gÓ¦MÎÎΣG^·n]ff&}Ó?þñKKËW^y…¥ûÐ+W®´°°˜3g´µµiß.33³ãÇGFFÚÛÛs8hoo?~<‹Åâñx••µpáBÕ#Ÿƒ¡Püñ«laaaS¦LQnµ&/^ܼy3‡Ã=ztxxxQQqõ_|Q$ݺu ²³³-ZD_êv_=###""bîܹ4ëž3IDATööö3gÎìõɨ7W 999r¹|éÒ¥Ê%¹¹¹£FÒÔÞÎÎÎÌ̬®®Ž~Ðǘ¶¶¶%K–¨6›?þÖ¯_¯v*immU(ÊÌðáÃéi6› ,–Æ­°··-÷%ÔÕÕѳX¬ººº?þ¸££Cù`511™;wî¥K—F}íÚµ÷Þ{,--íìì*++§M›¦ÚUee娱céi77·G€†††ÀÀ@åMÏ=÷qõ!C†Ìž=;//ÏÝÝýÊ•+ñññšV—Édª³Ñ£GkÙv-ž: …"77÷wÞùûßÿN/9qâDnnîºuë4Ý cêÔ©.\x÷Ýw• »Ÿƒ&L˜ðèÑ#>ŸõêUú ÙÚÚš˜˜…Bú‰L}}=èé.’Eeddøúú@WWמ={öìÙ3kÖ,©Tª¼–œ?þ¾}ûÜÝÝ'L˜ààà@/\°`Á7ß|3eÊå¥FggçéÓ§•÷“¦¼ªŽÖÖÖŸ~ú)ýÔš>IiZ= à‹/¾ððð;v¬«««¦ÕwíÚUUU¥|E ¦¦FûÐä©Ï&<¯µµõå—_6ÿÓ‚ êêê*++µ¬õÿ÷?þøãÑ£G«««+++¿þúë .¨m<}B9xð ···êÓ}‹åïïÿùçŸ …BúÉá‚ ´ŒÕÑÑ¡}>|ØÒÒÒÔÔTVV¶sçN¡PH_ K¥R™LÆb±$ }¾ôèLœ8Q.—ýõ× .Tvòæ›o¶¶¶nÙ²¥¨¨¨®®îçŸÞ°a›ÍV=”ö8"Ì;7>>þþýûÕÕÕ[·n=w²§OŸ.‹¿úê+Õ³p÷Õ—,Yräȑ˗/·´´%&&jßš<õ1#''gêÔ©ª÷œ§§§‹‹Knn.ñj‹6f̘Ï?ÿ<...##ƒÍfOŸ>ýóÏ?߸q£Z3ÿóçÏ/[¶LmùæÍ›:ajjúÒK/­^½š8Š““Ó„ ÿ÷¿ÿiÙå¸gâĉǎ£á–––6lØ·oŸ¹¹ùªU«¶nÝšžžNGö‡~ /­hÇŽ;qâD\\\}}½³³s@@@PP©©é“ëׯ?tèPhh(ƒÁ˜7o^xxxSS±l‹åçç—­zªí¾º©©©T*=räHssó˜1cvîÜI?e{Zù…½”””•+Wâ'wºKHHhhhرcGÏM!ú“;j¿µˆï›ô@"‘…‹/*¯«Œ&£¿þúkxxø«¯¾Ú‹×d5ãýUÎ'4iÒ¤ŒŒ }W¡xÌ@d˜ D†É@d˜ D†É@d„ç&.\ø:ÑoáªÃÿkE4µÿke¨½&Š ¯3&‘a2&‘ý?{Nⵯü>´IEND®B`‚XQilla-2.3.0/docs/simple-api/StdInInputSource_8hpp__incl.md50000644000151400015140000000004011653571063020550 00000000000000e60a98a0a5154330ccdd62ebae1ff81aXQilla-2.3.0/docs/simple-api/classXQillaConfiguration.html0000644000151400015140000003634611653571065020476 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

XQillaConfiguration Class Reference

#include <XQillaConfiguration.hpp>

Inheritance diagram for XQillaConfiguration:

List of all members.

Public Member Functions

virtual ~XQillaConfiguration ()
virtual DocumentCachecreateDocumentCache (xercesc::MemoryManager *memMgr)=0
virtual SequenceBuildercreateSequenceBuilder (const DynamicContext *context)=0
virtual ItemFactorycreateItemFactory (DocumentCache *cache, xercesc::MemoryManager *memMgr)=0
virtual UpdateFactorycreateUpdateFactory (xercesc::MemoryManager *memMgr)=0
virtual URIResolvercreateDefaultURIResolver (xercesc::MemoryManager *memMgr)=0
virtual ASTToXML * createASTToXML ()=0
virtual void populateStaticContext (StaticContext *context)
virtual void populateDynamicContext (DynamicContext *context)
virtual void testInterrupt ()

Constructor & Destructor Documentation

virtual XQillaConfiguration::~XQillaConfiguration ( ) [inline, virtual]

Member Function Documentation

virtual ASTToXML* XQillaConfiguration::createASTToXML ( ) [pure virtual]
virtual URIResolver* XQillaConfiguration::createDefaultURIResolver ( xercesc::MemoryManager memMgr) [pure virtual]
virtual DocumentCache* XQillaConfiguration::createDocumentCache ( xercesc::MemoryManager memMgr) [pure virtual]
virtual ItemFactory* XQillaConfiguration::createItemFactory ( DocumentCache cache,
xercesc::MemoryManager memMgr 
) [pure virtual]
virtual SequenceBuilder* XQillaConfiguration::createSequenceBuilder ( const DynamicContext context) [pure virtual]
virtual UpdateFactory* XQillaConfiguration::createUpdateFactory ( xercesc::MemoryManager memMgr) [pure virtual]
virtual void XQillaConfiguration::populateDynamicContext ( DynamicContext context) [inline, virtual]
virtual void XQillaConfiguration::populateStaticContext ( StaticContext context) [inline, virtual]
virtual void XQillaConfiguration::testInterrupt ( ) [inline, virtual]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/EventSerializer_8hpp__incl.png0000644000151400015140000004573611653571064020566 00000000000000‰PNG  IHDR(ÃÏÆ·ùbKGDÿÿÿ ½§“ IDATxœíÝy@uÿðïžÜr‰" Ê!‚ jÞrx’•G™ÚSú¤fOT^™ø”¥eõš>šÙO-MS}TPA4åPä6QCs¹÷šßÓ3­»³Ë»,Çûõ×2Ì|ç33Ÿ™ÝÏ~ç»Ã¡(Šè×Ð@χÂô…è Ð;¾¡è¥>ýôÓ„„CGÊ>üðÃÉ“': €…€adff¦§§{{{:øK||ü믿nè(z&ãííaè(à/ñññ† ÇÂÐ; w(<@ïPx€Þ¡ð½Ã¯ZtiS§NU§Ûµ4558p !!¡ªªÊÎÎ.((hñâÅB¡°Õ‹‹‹—,Y¢.濚gk«©S§:thÀ€:i : €®.22ÒÑÑQ·m–––®Zµ***ŠþóÛo¿-++ûä“Oììì ¿ýöÛºººðððVÛ177_´h‘®f€ ·ZtuVVV}ŸÖñ6år¹H$bþ¼víÚ믿îîîneeåëëþûï¿kÓNŸ>}V¬X¡«Ù CáÐ-}øá‡»ví¢_K$’°°°ÄÄDBˆT*ݽ{÷óÏ?ÿüóÏïÞ½[*•B¦NzñâÅ¿ýíoÏ>ûì‘#G!«W¯&„¼ð t ¦¦¦§NbJ__ߣGÒ¯U,..ž:ujjjê‹/¾xþüyæf°7n¼þúë3f̘7oÞÏ?ÿ¬-½ý:ô‚ƒƒ™‰š×’™™©´ù7oÞ\¼xqXXØáÇ™öÿý÷¥K—>ÿüóß}÷D"a¨»#mƒÂ «knnnz!$((èÊ•+EBRRRŒŒŒ!Ç/--ݳgÏ¿þõ¯ÔÔÔü‘näÚµk;wî\¹råž={êêêè¢åĉôׯ_Ÿšš:þüõë×=z´¬¬ŒY»ºýõ×7º»»Ó666~üñÇîîî‡zã7öîÝ[SSú9111111.\˜8qâ³Ï>Û¦µ0’’’öîÝ»aÆ}ûö1õÒ©S§¶nÝúùçŸ'%%1•ëDè|(<ºº¿ÿýﳞFyæ™gD"ÑÝ»w !—.]š1cÇ#„œ;wîí·ß¶··wuu]¹rerr2ÝÈsÏ=gnn>}útBˆâMV´Ñ£G=zôßÿþ÷ðáÃ/\¸ðòË/_ºt‰þ—ºW¬XáïïollLÿ) øá‡ððp{{{BHCCƒ†:sæLyyù?þñ6­…ñâ‹/šššN˜0RWWGO|ã7œœœ<==ÿþ÷¿ÇÆÆj˜ƒËº:Ö_p222?~ü•+W|ýúõ½{÷ÒÓ?~Ÿ_TTôÕW_555©vP(ÉÏÏ?|øpdd¤@ жÒZ666„‡£8ÑÉɉYêÉ“'&@çCáÐ]}÷ÝwnnnÌÇë>}ú|ýõ×t¡R___UUEOWúŒ®ˆ¢¨-[¶8;;»¹¹ÑsDGGknP©†iiiÙ¼yóæÍ›Ç'‘HÎ;§nuMMM[¶lyÿý÷éZ¨Mka°nNQQ‘««+!äÑ£Gte¢n"t>ÜjÐÕÕÔÔT=žP__àÀúæ+Úĉ÷îÝ[VV–ŸŸ¿aÆS§Nih™.bbbúÏþ311±´´4;;ûûï¿§»;´oP"‘H¥R>Ÿ/‹é¬s~óÍ7³gÏ1b„âÄV×röìYÍ÷nB"##‹‹‹ÿøã}ûö…„„h˜=]3‚A?‰ÏçOž<ùÒ¥K“'Ofþµ|ùòÈÈÈ×_ÃáLš4iåÊ•¬möë×oøðáóæÍûïÿKÙ°aÃÁƒ÷îÝ[\\lmm=uêÔW_}U]ƒª š››¿ñÆ[¶l111yùå—ƒ‚‚6lØ©:gLLÌåË—÷ìÙ£8¥Õµ|õÕW~~~Ì-X¬‚ƒƒ×®]ÛÜÜL?‘¾±Ji¢†Å@¯8ô¯a@'[¸pá“'O""" HOÀúdôv<.}êÔ©G]¸p¡®Üjú‡Âº=33³°°0m&€¡ ð€nÏÊÊjÍš5ÚLCAáz‡Âô…è Ð; w(<@ïø† ÷JOO_·n]û–•Ë…MM6Ba@P¯Û¨º¯ÆF{O&Vs8rCÇÊPxÆØ±cÛ±Tc#¿ªÊ¤²Ò¸®NÈãQ®®5:­MªªŒóóûŒ]fØ0!wîØTUs¹”•U³Msß¾Í|~Û*WW×ê)<€^ŽCQ”¡cM$Y|ü±±ÙqqW»¸ØÍšåâ5jÔ`ÏðwMŸ>¶jÕO%%_:B©­mLHÈ;p!«¡¡ÅÇÇ)$Ä+,ÌÏ㟡CèíPxtQuuÍçÏg^¼˜“+5=84Ô;8Ø{èЮõºKŒ–irr~LLö™3iee¢Aƒl‚ƒ½ÃÂFŒíÂår @o„ k)+EG§ÅÆf''çËåÔØ±CBB¼gÌîädmèÐØu̓!—SYYE±±ÙQQ·óòÊûö5›6Í3,Ìoòä¡B!î9è<(<º„¼¼ò¨¨ÔØØœ¬¬"á´ižÁÁ^!!ÞVV¦†­]¼ðPTPP›vóæCccÁ„ îs挘>ÝÇÒÒÄСô|(< †¢¨””ÑÑé/fTÚÛ[„†ú„„xOœèal,0ttÚêF…£¢¢>.îΙ3éññÈåÔÈ‘ƒÂÂüfÏöut´2th= €ÎFŽN‹ÿ£¢¢ÞÕÕnæÌ.4X¼­ºcáÁ‰š®\¹KF¯«köðè6"$ÄÛ׿m c(<: 3XüÊ•»uuÍ]v°x[uëƒ!K“’èÁèéeeµÎÎ6!!Þ¡¡ÞãÆ¹ñùݯè‚PxèWYYmttzllvRR>EQS¦ ñž2eX—,ÞV=£ð`0ƒÑOŸN»w¯ŒŒâäej*4ttÝ ½¸w¯ìôéÛô`qSSáŒÃéÁ]°x[õ°ÂC3ýÖ­‡FFŒÐ!(<tF.§nÞ|j°xX˜h¨w` «‘QýåÖ\x0*+ë/_¾sæLú•+we29=}Ö,ßþý1@[(<:J,–^¹r7::-.îÊÊú!CìŸ{Î?$ÄÛÇÇ©7<«®7Œ¦&ñµk÷¢£Óbb²D" Fhí$5_¸yæLúµk÷š›%=f°x[õªÂƒ!“ÉoÝz~ölúãǵö õÁ`t Px´ÍãǵgΤGG§¥¦p¹z°ø´iž½ö®›ÞYx(º{÷ñ™3iÑÑé¹¹­­Í‚‚<é”0332th] ­dd<ŠÍ¦?\ZXOŸîâ=i’GŸ>=m°x[¡ð`(F ù'z„„xOŸîcggaèÐ …€ZJƒÅ,çÌñëñƒÅÛ …‡ªªª†K—r£‡†zÏšåëâbgèÐ …€2f°øåËwªªÜÝž}Ö¯÷ o+( Fωš<<ú…„x‡„x¸p8È%è]PxüI$jºp!Kq°xX˜_Hˆ÷ A6†­KCá¡ f0úÿ›QZZãädÍööŒ= èE¤RùyôG½ÂÂJ‡>sæŒ õ3ÆU(Ä`ñvBáÑqô`ô‹s.]Êii‘ÒƒÑgÎôuuÅ`tè9Px@Ïר(¾t)'66ûÒ¥;ÕÕ ÌÓ¦1X\'PxèPs³äêÕÜØØìóç3+*ê1zÐcUTÔŸ?Ÿ›}õj®X,5 ƒÅõ…‡>0ƒÑÏË()©0ÀzêT F‡î …ô4Vœ=›“šZÀãq'OŠÁâz…ÂCß”£Oœèì5s¦¯¹9£Cw‚ÂzÖÁâ&¸›˜`°¸~¡ðè4U]¸›˜xŸË庆„x‡…ù98X:4€Ö¡ð€nL"‘%&މɎ‰Ézô¨ª_¿>³g 1jÔ`kèèz ¯ººáâÅœ‹s._¾ÓÔ$öñq ñš;w¤››½¡CP …t? -—/ßa‹ûú ñš3ÇoèÐ~†­7Báa@Ì`ô ²ž<©Ã`tèÊPx@·ñäI}ŸÉÕ«¹R©lÜ8·o 78]==66çܹŒüü'ýû[M›æ‰ÁèÐ¥ ð€®.?ÿɹsJƒÅƒ‚¼úö53th@ ®çîÝÇ/fÇÄdß¼ùÐÒÒdÒ$à`¯3†[X:4èÕPx@WDQTJÊƒØØœØØìÜÜÇ––&¡¡Þ,Þ5¡ðè²ŠŠªããÿˆÍŽÿCa0ú‡>† z#Ð…H$2æsRQQµ££Õ¬Y¾,ÞÅ¡ðèújj™ç66þ9ýÙgýÝÝ ô"(<Àðêë[Î˸x1çêÕÜššF ï^Pxt#Ì`ô˜˜¬òòºAƒl‚ƒ½ÃÂF`0:t`0ååu11Y±±Ù we29=X<4ÔÛكŻÝ3ýüùÌû÷ËmļNæ‡Áè ?(< ³Ý¿_~þ|fLLö­[ML„Ó¦y{{Y[c°x·„£»SŒnb"?Þ}ΜÓ§·´Ä`tÐ%Д‹ÛښϘ1<$Ä{âDcc¡£ƒAáÑcWÇÅý9ÈŠ¢(ÿAaa~sæŒè׃ÑAPx€1ƒÅãâþ(.®vq±›5Ë7$Ä ƒÅ»µ’’šW_ýA*•Ñ65Iªª °bfðòê¹Ä@ÑÔÖ6&$(F óóðÀ°+h? {Ì`ñ„„\‘¨iôèÁ¡¡ÞÁÁÞ,ÞcLš´5/¯œõ_Y·næ»ï†vrH --Òääü˜˜ì3gÒÊÊDÌ`ôÑ£]¸\ F‡¶Aá:SV&ŠŽN‹ÍNNΗ˩±c‡„„xOŸî3p`_C‡:¶k×åmÛÎJ¥rÕq8œ¤¤œœ¬;?*йœÊÊ*ŠÍŽŠº—÷×`ôÉ“‡ …|CGÝ 証¼ò¨¨ÔØØœ¬¬" ï%JJj>QýÁår†w:wnA¢‚ÎQPP›vóæCccÁ„ ŒZAá„"Ky<®öã.èÁâÑÑé/fTÚÙYLŸîƒÁâ½JXØ7·oÊåO}àó¹›7?·lÙDCE©¤¤æòå;ô`t¹œ9²=ƒÑŦ¦Bý ]  ……•«VýßÇ?;vìÍs2ƒÅ/_¾SRRãêj7s&‹÷R?ýôûGPºÛŠÇ㤥}bccn¨¨À ˜Áè.dÕÕ5{xô âíë;°Õe?øàÇýè£0ËwEùùE––&[·žÝ³'N,–Bè/=ž~Ô_,0332pР(<z£}û>ý4J.'Š÷ɼéÓ} «23‹,,Œ¦Nõœ9søÔ©žø êÔ×·øø|(K !|>7$Äç‡^3tPÐuTž?ŸyáBVJÊ€7iÒÐììâââjÅy®££õþý˼¼ú*Nн‹HÔôÎ;¿\¸ÉzùïׯOh¨÷ŒÃÇwÇ@OÐÆŠÎË”Éäç?ÿùÛìÙ# t••õ±±Ù'O¦^½š«ú_Ëå’>šû÷¿OêüØ@ð $½È­[S¦|qéRŽº/?®}ãiS¦ CÕZzá…Qr¹œbb"ö6t8Ð=ØØ˜¿ôÒ˜‰=ø|–KL&—Hä§^}u_mmcç‡z‚ W (jçÎKÏ=÷í“'u‰LÝl|>ïÂ…¬Î º»©S=ML„™9s¸‘ž` mpæLšTªörDQÔåËLúÅ­[;1(Ð#\  m.^¼˜ŸŸoè( mZZäQQ%99u­Î)•Êöï¿@ÈÝNˆJàà`WW×6RRR¢“`@ÁÁÃNŸÎ˜:Õ»½Ó˜˜˜X[wôÇ媫«›šštO;TT4dfižG*•••‰žþ»õëƒçÍÃ]|ݵµµ‰‰ ó' h›ÿüç?ÇŽ3tÐ|~_+«é½Ü!¤°°á7Þ–Ë›;!6VGíxá‘›Ërã8艷·y\œQŸ>-ØíÆÎήã…GIIÉ“'OtO;\¾ü¢Ç‘Ë58¦("•Êw츔”t÷•W† …¸ ´;ñòòBá²`Á‚_ýÕÐQ@{44´H¥²ÆF±X,klK$ÒÆF±D"kj·´H›š$b±´©I<}úÇÎΆyŒ—âSD:ÈËËËÞÞ^W­“&QNß  ©†¤·ÈÎÎÖUSvvvÞÞ†™#“Ýquuç󹿿F<×ÌÌH à™š \33#>Ÿgj* é)(6º¥øøx¥)(<zú§ñûôÁã8@—¸\ÎÊ•S t3AAž†:—@Gá;ih Ð; w(<@ïPx€Þ¡ðCÊËË£>Uõ…………¯½öZgÄ×Z6:_‡ÃÉËËÓ<¥­èý¬ÍÞÖ2$è :©(ŠZ²d‰¹¹¹¡ÃQKCÎЛpûöm>Ÿ¯ø´Ÿ¨¨(¡P˜™™Iáp8îîîJOm˜9s&“Q¬©Õ9'šnõÂs×smôòë9 0$++«÷Þ{¯­K:uê¹çžÓG<ùùù¶¶¶m àúõë¥Oë´0 '¡“ª¤¤äðáÃ999†§=èMð÷÷ß´iSxxxMM !¤¶¶võêÕǧg{øðazz:³TuuuBBB«ëãDc¥xöáLl\Ï;F/ ÉÖÖvÛ¶mm]*&&&44TñÈåòÊÊÊ6`gg×ïiô$tR555Bœ N{0çŇ~hkkKݸq£££ã† ˜Ù‚ƒƒûCNŸ>=yòäV×ljÆJñìÙØ&¸žw$Œ^…èÞéÓ§ P]]Mùå—_<<<ärydd¤§§§……ŸqãâââZí>s挿¿¿©©©££#ó~VQQafffbbB‘H$ëׯwpp°··_¿~½D"yî¹çÖ¬YCÏÙÒÒbmm}öìYÖ9 !çðáÞžž}ûöýòË/ !cÇŽ%„0o6ÑÑѾ¾¾ÆÆÆ®®®T @݆¡ë^RmS&“mß¾ÝÃÃÃÂÂbüøñIIIJí¨ÆFK—.9;;_»vMiþ˜˜777kkë­[·’ÿõõGEE :ÔÞÞ><<¼¥¥…u¢6Õ X³”´¶âãã#""œíìì^yåúK}Ö¥[þH¥RÖÅ™¤R<ôJû_ÝÞ¿¿§§§Ý¶mÛ<èââÒ§OŸ>úH]`ãÆûúë¯ !UUU\.wݺu„™LÆdiMMÍ«¯¾jkkëää´nݺææfÖL (jݺu~~~äéóB(8p`ÿþý[·nýñÇ8 ˜=¿`Á‚_ý•¹ÛêøñãóçÏoßAl5ÔV÷ê^U<Jgbo;Gh¸žãz®Ë\¥ÚbÁ‚ ,hu¶W^yåoûÛãÇ’’’(ŠÚ³g½½ý‰'JJJΞ=ëääD¹wï}!R}!‰„Bá²eËŠŠŠ:D)//§(jÿþý¤×òÅ_Ì›7¯°°0##cäÈ‘7n|èèèÈ,Ò§OSSÓ¹sç?~ÜËË+::úöíÛêæ¤_Ð_)Þ°¶¶Ž‹‹ûæ›o"""FŽùþûïÏœ9S)BȽ{÷ÜÜÜ”–Õa¬kaîg`ÝK¬m>zôHóþWÛ°aÃXC¢ÛçrŸºe×ÝÝYª¨¨HÃÄ®@5KIkû¡  €ÙOOOOOOuK±æëâªI¥ˆ^¯†maaAþw _« ÌßßßÌÌ,%%%!!!22òâÅ‹ qqq³gÏ&„”••Éd²!C†Ðó»¹¹1‡L1RRR¦L™òùçŸ8p€u>ùòåéÓ§ÏŸ?îܹŠ1/X°àïÿûgŸ}¦ý}Vª'ZQQ‘6¡jØ?ö*«^xŽÐp=Çõ\W¹Š1 =ŠŒŒ ^»v-=eÀ€Š?e“­¹…¦¦¦… ®_¿>55u×®]ôÄóçÏϘ1ƒ™ÇÖÖ–ùr´ºº:11‘²hÑ¢ãÇŸ>}zÔ¨QÌ%’uN¢rU @.—;v¬ªªjùòåaaaUUUJh «04cÝK¬m|HOIKKûì³ÏÔ-Åš?¬‹kN*z½´fªq¹ÜY³fEEEåææŽ9rÚ´i±±± tááààÀãñòóóéÅïß¿?`ÀÅHhÑÑÑ»wï>räH\\œê&”””„‡‡oß¾}Ò¤I+W®T\;a„ºººk×®ÅÆÆ¶û´ Uƒ¶îÕ^xŽÐp=Çõ\W¹ŠÂtO.—/[¶ì­·Þúå—_.^¼MY¶lÙúõ룢¢?~|þüyúþo ZZZÄb±P(lj8T]s IDATjŠˆˆ „ÔÕÕEEE)~uú /¼ÿþû3fÌØ¹s'!$44´ºº:""bÙ²ešçT‡¾5œÃᄆ†þöÛo"‘H, SSS¥!OžüðÃÅ‹«6kff6tèÐ7®Zµª¹¹Yq(ŠZ¹r¥¯¯ïòåË !k×®uppxë­·çñxóæÍ[¹re`` ½½½RãJ町MÓ2T 4ìUųyÝÛήç: £{‰uÎn|=×|o€mÆx|÷Ýw#FŒ‹ÅEÀº/ÖÚŽ£ÌápŽ=J§YGÄÇÇ{yy©~›`(º:GÈÿn­ñööî`Hºj×óFW¹ªzÆ­V w(<@,--W®\©ÍD€Þ çtúËUÜjm£«[­XáV+€Vuµ[­XáV+0 w(<@ïPx€Þ¡ð½ã:è~òóóÿóŸÿtÚêêê¤EYZ :m½“\NUTˆíì„ÇбèFMMT*5tº×ÜÜlll¬«¦JJJtÒ@«Px@›ÝºuKÏ?<Ïì„BGÀQ(täñ,3jk/ësjq8‚>}¦Éå"ÑÕN_µÐÆf~ccfccf'¬N p°µ]$—7‰ÅÅbq‘X\$‘TÒr§ ÓUáQWWWWW§“¦Z…çx@—p÷î㌌G))’“äç—Ëd”»»ƒ¯¯S` k@€‹››=g€[CïÜ)}ó̓×nß¾pöì¼ö–é–-Ñû÷_]¸0`Ë–ÌÌŒô½Æ²²ÚääW¯æ&$äVšš Gèè:fŒ«Pˆïª ýPx€a47KRR$'çgd¥§–—×™˜Gèâë;ÐÏÏÙÎ΀áÉdòo¾‰ù÷¿c§L¶cÇ"[[sCEòûïyáᇹ\Îwß-;vH§­—)B’“äæ>61úø  t4É#0ÐÕÈE´ èæA$j~ï½_ÏœI_µjê† 3^'PV&JNÎgŠccÁðáN(B MPx€)vkdd<*+ \èn#œíí Ù­Á**êö{ï0Àz×®¥C‡ö3t89v,eÓ¦ß<<vî\:x°­¡Â(/¯KJºŸœü %åAffÇñò0q¢Ç¤I.ÆÆø `‡Ât¬°°2))?#£(%åANNq—íÖPÕØ(Þ¸ñØo¿ÝZ¶l⇆uÁ/òïß/_½úàÇŸ}6oþüц‡}L ÑŸž<©KK+¤‡…(!cÆ ±´DÐÛ¡ð€öxô¨*1ñ>Ý­qçN‰D"sv¶¡+À@/¯]¶[C•\N}ýõ…o¿½8i’ÇŽ‹ ;¨]K×®Ý ?Ìçs##—º:eõ·oÐEHVV—Ëñò@ßb7yòPKKC€Â´"KÓÒ”»5|}þ¯gÃÉÁ¡¡clÇkÃÃNNÎÿððåË'|¹öªªÖ®=réRÎÊ•†q®¥ÊÊúÔÔ¿Š‡ãíýg2i’G×é±}CájU߸‘§Ø­1p`ß1c\én OÏþ]öî–bb²Ö¬9âà`¹sçÒaà N{;–òþûLJ sŒŒ\bÀçZª¯o¹}» !!Wµ™8ÑÃÊ E@O†Âþ¢Ú­!òGŒèöݪèqäÇß\¾|ÒÌéÖ¿Å”—W¾zõÿT~þù¼yó ?â\KL’œœŸ–V(—SC†ØÓŠ€ …@oWQQãF]ide75‰œ¬ÇŽÒcº5Tee¯^ý•• ÿú׋3f 7t8: K·o?ÿý÷—gϱ}ûÂn7ˆ¢¡¡%5õ¯"D&“»¹9ÐEÈ„ îÖÖf†t…@¯#‘Ènß. o JNÎïÁݪärêûï/oß~~üx·o¾y¹[Œ#×ÞÕ«¹áá? …¼ÈÈ%.†§Å·n=LNÎON~˜x_"‘ dCwƒŒïÞ·/Š€î …@¯ Ø­‘]ÜØ(¶µ57Î- ÀÅ××iøp'¡¡cÔ»²²ÚððŸïôѳÝk¹ö*+ë׬9wçí·CÞy'”Çë6¿-ÆJ±IJÊ‹¥tà2a‚»££•¡€6@áÐ3©vkøèQåÖ­ ž~¤¡ÃÑ1Å"$99¿¥E:hM@€K` ëÔ©Ã °6t€À…@7&—SYYEÉÉЭ¡Nvvñ›o*/}õÕ‹³fù:œNÕÒ"ýê«óßù…FmÝ:ßÌÌÈÐéEs³$#ãk2yòÐû:@ø €n¦ªªáÖ­‡ÉÉ’“ósrJZЭÁŠGþÕWçGüí·‹{í­8 wß~ûg##AdäâÑ£»ëˆs-I¥òœœâ«WsrSR47K,]'Nô˜4ÉÃÙ¹‡ÜuÐM¡ðèê˜n úkÝ‚‚J.—ãããD?v ݬÊÊDo¿ýóy=x¹ö**ê×®í9#εÄ!ô¯cÕÕ53EÈĉ=fè @7‚ +ª®n¸yóÏn;wJêë[úö55jp` K@€‹·÷€žzÛŒN\¼˜³fÍ/&;w.ñós6t8]3â|äHço¿]ÜÛ~J±IJº/ýU„¸ ÚÏÐô (<º ݾ¾N®ø‚VÌ8òÅ‹Ç~üñ\ss”gO¹{÷ñêÕ‹‹«¾øbáܹþ†Ç0d2yvv1=2êÊ•»"Q“bâááÐËûÇô…€ÁÔÔ4¦¤(<tŒ¢¨ÜÜ?»522Šîß/§(ÊÍÍ®4Э¡[—.Ýy÷ÝŸÍÍwî\êïqämC÷mÙèòí·‹ûõÃÏ£±+(¨¤»A~ÿý^UUƒùÈ‘!>>N¨Ù´„Â@D¢¦¤¤|Ån>}Lÿ¼ÊÏÏÙÂÂØÐ1ö4b±ôÓO£÷ᅧqät÷îãÕ«ÿ¯¬Lô¯½4}º¡Ãéêè"$99ÿÚµ{ך›ùûš4ÉE@«Px´‡j·†\N¹»ÿÙ­áë;ÐÍÍ÷üèÏ;¥o¾y°´´öË/„…ù:œn¯¹YòÙggèçÛ¶-À3(µÄ!ׯ畔Ô0EH@€‹¿ÿ €gèºÚ‰š“’îÓÝéé…"Q³¥¥É˜1®èÖèdûö%|þù™#~÷Ý''Œ#×™óç3×®=jcc¶k×+>> N7Ã!7nÜ/.®6339EÀSPx¨EwkÐÖHN~€n ƒ«®nX»öè¥K9G®'OžÔ½ûî/W¯æ†‡cÄy»TÒ¿\ÿGQŠ€?¡ðxJS“øæÍ‡ô Tii…OžÔYZ3„îÖ1ÂÙÒ݆÷Ç;ïülff¹däÈA†§Ç¢Gœúéé±c‡|ûíËqÞ!LråÊÝGªLM…£F  t t;vŠèUPx»w3Ýùùå2åîî@W.èÖ08‰DöÉ'§÷ï¿ú £>ÿ|niëÞ|óPMMãŽ/…„x:œ¢¬¬69ùÁÕ«¹ ¹……•ŠEȘ1®B!ßÐè èš›%̸ðôôÂòò:!ýÈp_ß~~Îvv†Žþ”ŸÿdõêƒVlß¾ãÈ;=âü‡æÏýÅ LL0â\—˜"$9ùAnîc¡Ï€À@×I“<]ŒP„@„Âz ¥n ©TîáÑéÖ2ÄžÏG·F—C#>Ü)2rÉÀ} Notî\æºuGmmÍwíZêíçzQV&JNÎgŠccÁðáN(B çAá=VK‹499ŸîÖÈÈxTV&26Ð ÷õ8b„³½=º5º®êê†õë½p!ëwBÞ~;e¡•–Ö¼õÖá[·®[7ã7¦aĹ^•—×%%ÝON~’ò 3³ˆÇãxy ˜8у›nl,0t€í‡Âz”ÂÂʤ¤üŒŒ¢””99ÅèÖ覮_Ï ?,ð"#—Ž…qä†ÇŒ87Îíßÿ~ÙÁÁÒÐõ OžÔ%&²!.cÇÁ`'èvPx@÷ÖÒ"MO/¤o ¢»5ŒŒø¾¾]éž |Bê^˜qäÏ=ç¿uëü†X—’žþhõêƒ"QFœw¾ŠŠúÛ· èa!JEȘ1Cp¦@·€ÂºŸGªïÓÝwî”H$2ggºÌ tñò€n.N"‘±þŠèƒOV¯>˜—Wþùçó,èüÀ UÌ3Î/ûÏ>Ç:â\Ýñ]Q,B²²Š¸\Ž—×ú>ÒÉ“‡ZZš:@v(< ‹¥iiº5œð¨nä¿ÿÍHH¸»mÛ¥é‡Ýøä“¨aÃúï܉qä]ÝÙ³éë×ÿjoo¹k×R/¯þŠÿª«k~ùåÝ?ýôzß¾f† ¯W©¬¬OMý«áp8ÞÞ!“&yôécjèþ‚º¨¢¢ê7ò»5ì;fŒ+Ý­áéÙ_©vGee¢É“·ÕÕ58°œ¹W§¦¦qýú_ÏŸÏÄ8òn¤¤¤æ­·¥¦|ðAØòå9œ?Gœ¿ùæ¡“'oMŸîóãË a/T_ßrûvABB.S„ bè2q¢ÇĉVV(BÀÀPx@W¡Ú­!òGŒ@·FÏAQÔK/í¾qã¾L&·´4Žßèà`™˜xÿ­·ËåÔ·ß.?ÞÍÐ1BÈåÔþýW?ýôô3ϸ}óÍË–'O¦þã‡(Šâp8_}µpÑ¢±†Ž±÷bŠääü´´B¹œbŠ Ü­­Ñ€Â ©¢¢þÆ<ºÒÈÊ*nj;9Y;Ý=ÒîÝñ[¶œ–Ë)Bˆ@À1b`P׎&Mòøúë—mmÍ  ´Ç÷ßzë!äÃÃÞ}÷±XFïâÅõnnö†HCCKjê_EˆL&wssèx‚Á<ÐV(< ÍZ¾øâ¿o½ÜŽÇ{K$²Û· 訒“ó™n ºÒ tA·FO•“S2cÆ©TÆLár9£G»<û¬ßk¯M`nÔ¶qÆcJJª%9=Q ູ9œ?¿ŸM»”ÆFñ­[““ó““$&Þ—HdƒÙÐ÷bïÞ¦‘9«VýŸ§§ãêÕÓpˆ@K(< mbb²6l8V^.Ú¿ÙŒõY¤²²þúõ?»5²³‹Ŷ¶æãƹ¸øú: îÄúÃ8Г47K‚ƒ·VJ¥rÅé<'*êí‘#ñ¤ŽnoÛ¶³»v]V:¾|>wõêi7Î6TT ™b’””/Ké"$ ÀeÂwGG+ ËR5lئººww{<Õ´„´UZZóÞ{Ç.^Ì!„ðù¼+&øa뜪ÝÏÏÏݽÖGüé§ß»;h|>×Á¡O\Ü{ææF tâÚµ{/¾ø=ë» ‡Ã9vlõ3Ï`ôNW×Ô$ÎÌ,JIy«T„ŒïÞ¿¿r’“S¼ÂãqårùË/ݼù933œÈ  hX,ýß~{‘¢óÙÑÏÏù¿ÿ}—™G±[#'§¤¡¡ÅÆÆü™gþìÖðñq25E·F/õûïy îRw©áó¹/½4æË/vrT +uuÍS¦|QVVKÞQÂãqûõëÿ>’v#ŠEHrr~K‹tÐ ›€—À@×)S†99YBöíKøôÓÓÉŸïßÖÖüßÿ^4a‚‡Ac€. …´âÚµ{k×))©‘Éžº‰B à<ùVjjAFÆ£””•èÖU"QÓ¤I[++”ò‡Áårärꇖ͜©Õ{ÐÕ¬^}ðÔ©T‡¨{3áóyóçÞ±ã¥Î t£¾¾%))ÿƼÄÄûärjèPÇgžq»}»€þ±,fN.—CQdÑ¢1s-,ð$u`ÂÔªªjøøã“'O¦r8„õ»LBˆ™™‘ŸßÀÑ£]FŽ4zô`üD#(Y±âÀùó™J·þs¹D à·´Hml,fÌð öš8Ñ}bÝTIIÍÅ‹911Y׮ݓH¤O,V¾§Ž‚Ú²hhhIN~pãFÞùéé…ª7OBž……ñ¿þõÒôé>!tq(<€EQ‡'~òITS“T&cyk!ÿæñþû³y<<î Ø9’´víQæ"#ð¤R9—Ë p™5Ë7$Ä{Ð ÃF:$“ÉoÝz›séRΔòù<¹\NgÁápLL„W®¼7`€µ¡Ã`x°¢»>fÍòýòËø6 ¡ðeU½÷Þ±øø»Ñ<wΜßÿJgÆÝHQQõ”)ÛÅÆÆ‚æf‰©©pêÔaÁÁÞAA^xdGwçNÉÅ‹911Ù·oÂáñ8‰lâD#GVá§“{€¼qJ©'S ŸÏ³²2ùæ›—§Móì´À ‹{ªð(//ÏÉÉ1`4`XR©üüùüß~û£¥EÆá´^”Z[ïÜ9]¯!ÙÙÙy{{w°‘ììì'Ožè$ÐE‘-[®Ý¹Siggàèïßoèо|~¯ëóòò²·ïÐôº{öÖ׋ÓÒÊRSËÒÒÊš›¥¯¾êêbè º±.’Q_’šZ*“©}àr9\.‡®LÆwZºt¸¥%î¥ì®:žu ¾ê¤Ž΃nª±Q,ÚëUZZ[Z**-•–ÖÕTW7ÒE—Ë ù„P--RŠ"ÕÕ̓mmõÕ“þèÑ#]5eii9pà@]µ­ÊÈ(ž3ÇÿË/Ýœû:ƒÉÎÎÖI;Ý={ÇŒ!„©Tž–Vtóf‹‹;Æó´OÉ(Š¢îÞ½@QÞ<É|EÅãq,,LììÌ,lmÍ,úö5µµ5·³38°oß¾¦: :™®²€ÆRxØÙÙu~ÐE Äò(‰DVRRS\\]\\ýèQUqqÍ£G•……•ee¢üüZOÏÁz ¦¼¼\WM!±;SP]PŸ¡£è!zLö:::Ìœ9ÊÐQ@G3ª¢¢>(ÈËÖÖÂÁÁÒÎÎÂÎÎÂÁ¡­­¹­­9î£ÍX %oÐ Œ[[ó;—: è–zÝ-×ÐùPx€Þ¡ð½Cáz§ÇÂ#//þ Õ¾öÚkE-Y²Äܼë>eLöЛpûöm>ŸìØ1fzTT”P(ÌÌ̤ÿlhhذaÈ#ÌÍÍ·nÝ*•JI»ö‡®¶´U'//¯ÓVgpIlmæì8z]ÌŸŸ~ú)‡ÃÙ¶m[GÚÔI#J4ï#Gް&vZZšc@öjŸ½Y/Ó‚^wxûÎ/Í!µõͨ·eTçÐ2Õeµ–oÊz¥xÓK—.9;;_»vuA‡³ÿ~OOO;;»mÛ¶}ô=ƒD"Y¿~½ƒƒƒ½½ýúõë%ɸqã¾þúkBHUU—Ë]·n!D&“Y[[Ÿ={–RSSóꫯÚÚÚ:99­[·®¹¹Y)¦r[·nŸŸ_EE…â&B„Báöïß¿uëÖüñÀ€^êСCü1Çcvˆ™™Ù† >ÜŽýÖ¦ƒE·5tèP{{ûððð–––V·×ÝÝ9"ªbbbÜÜܬ­­·nÝÊ2¥U¨[oÑ9‰Í,«˜á„-?‰YíëëkllìêêzðàA¥uÑ9rdòäÉÁÁÁÆ Sì¯àp8‡öôôìÛ·ï—_~I _¾|9ýßúúzSSÓÛ·okhDiTó§ÕM`ö†T*ˆˆpvv¶³³{å•W4| ¨.NuÙźc• {š³WÝ ªy¨”J9©J5yÔ¥„jªoêÚ$li¯Dumò\IOÍ(ÂvB)¾MÄÇdz5ÖÓP5mÔtÕë'Q8Öꀡ囲^7M‡ÃYµjýaƒµ¥ÄÓ¦ÍxÐ+(V!Zöx¼òÊ+ûÛß?~ìàà””DQÔž={ìííOœ8QRRröìY'''Bˆê7jÌ ‘H$ —-[VTTtèÐ!BHyy9EQû÷ï?xð õt­O¿ž9sæåË—KKKY$„,Z´H$íÛ·²páB‘H´gÏBHEEEQ_|ñżyó 322F޹qãÆO>ùdöìÙEEEEYZZŽ9’¢¨›7o744Pµxñâ   û÷ïgddøøølÞ¼Y1úFs¹\ÎTt´Ì&06nÜHÙ²e 3…¾š?yòDiÇÞ¸q£oß¾íØo„´´´º§©;Xtk¡¡¡¹¹¹‰‰‰nnn›7oÖr{Yó2gΑHôÛo¿Ñ;œuêÖ«A'÷xtfb+}›fƒw( {IDAT¥šŸTkY]__odd´{÷îÒÒÒ~øÏç×××SOg \.wqqÙ³gEQ|ð··7³FBÈüùó«««÷îÝK©¬¬¼råŠD"¡(êСCÞÞÞr¹\C#J› š?­nÓÂöíÛ½½½322233ÇŒ³nÝ:Å㢴"Ö8ÕeëŽU¤¿ì¥:÷ûéNÈ^ÖXóPé)æ$aû^V5yXS‚5Õ7 umRli¯’ê Úä¹¢œQÛ ¥ø6±yófÖYu)Ö´QwÐðÁ@›‰Ú¼)ë{Ó(¶ÌOII±²²Ò¼vú¿êÚT¤¿ÄCèV{ êêj'''___&_½½½8ÀÌðÓO?i~‡kii¹sçN}}½L&»rå sBΛ7¯ªªŠb»”dddhX’ššJQ”X,VzMÏ0lذÒÒRºÁØØX??¿›7oš››‹Åâ5kÖlÚ´I TWWoß¾}Ö¬Yô²<¹:Ÿ8qÂÍÍM1úõ† ÈÓw°0›@“ËåsçÎåñxK–,QÜLE¤èúõë¶¶¶íØoJJÕƒ¥¸E=zÔÍÍMËíeÍBH||ÿüsu›pøðáøøøË—/?~<**ŠÙýúõSýqž´´4ÅÆµÜo4Õ/™u),}ë½9EEEZn¯:ýû÷'„p¹O¥“Ò*4Lì" ’Ø4Õü¤§kÈjkk븸¸ÄÄD''§É“'_½z•Ëå*­ëÈ‘#R©ÔÖÖ–ÃáŒ5Š¢x·}Ô˜y<Þ /¼pâÄ‰ŠŠŠ‹/.^¼X›FhòGó‰I+((`ÃÓÓóùçŸ×°¯ÔÅIزKÝŽU„쥵š½¬3°æ¡b³­æ?kò°¦„†  6mÒ¯•Ò^•†44«ÚBÏË(¢þ„¢ß&ÔȪK±¦ ëâêò‡Ró›-ß”õ½i¬±Ý»wÉ%ÍW*-Ûì‰=^{ GEFF¯]»–ž2`À€ôôtf†ììlÍ-455-\¸pýúõ©©©»ví¢'ž?~ÆŒê¡ßXÔÝ“@"¯®®NLLär¹³fÍŠŠŠÊÍÍ9rä´iÓbccèÂÃÁÁÇãåççÓ‹ß¿À€Š‘Т££wïÞ}äÈ‘¸¸8ÕM()) ß¾}û¤I“"""V®\YYYIÿkñâÅŸ~ú)ýÍ!dÑ¢E¿üò˶mÛ-ZÔÖý¦™êÁ¢Ñ_{Brssû÷ï¯åöªÃz׸Ò*4Lì" ’Ø4Õül5Ú¦¦&¹\~ìØ±ªªªåË—‡……UUU)®K&“=ztÇŽÌÝwkÖ¬9zô(ó†­úÖµ`Á‚“'Oþúë¯&L ïÌiµš†üÑFÿþý>|H¿NKKûì³Ï4ϯ'M5»´Ù±È^Z«ÙË:k*6Ûjþ³&kJhÔê>24Ì ež÷ÔŒ"êO(úmB݉¬ºkÚ°.®š?ôïÎk³Ú¿)ëuÓT£(êûï¿§?ohX;MË6{FâAϧø¹6·ZÉd²àààO?ý´ªªª_¿~§OŸ¦(êóÏ?···?uêTiié¹sçZ½™¸ººšÃáœ;wŽ~–!$55uÉ’%ÅÅÅôZÔݶ˺ ¥ÒW®ú:<<|þüù>LOO3fÌ?þñŠ¢Ž;fnnBQTll¬¹¹¹âMð/¿ürPPP~~~ff¦··÷Ǭ.ªˆˆ¦¦&ÅMËåsæÌ™êék©jVkÿ¦¬×M£2¿¨¨(>>~îܹNNNLÚh^»º6;'ñp«èV› ï¾ûnĈô/ПaÖÐÐ  7lØÀ¬¨ªªjéÒ¥666ŽŽŽï¾û.ónªUSS“‡‡Ç¦M›7áÀFFFŠÃ?’““¹\îñãÇé?ëëë×®]ëããcllø`òäÉ/¾øb›ö³ù¬%%ëÁ¢[Û·oß Aƒlmmßzë-ú¦y{%É„ ÌÍÍ5ìdêéëÒ*Ô­WƒÎ,<:9±•ö'k~¶šÕG2dˆP(6lXTT”X,V\×Ê•+CCC·Q.—2ä½÷ÞÓÐøªU«LLLD"Q«(m‚jþ´º ÌÞhnn^·n]ÿþýûôé³hÑ¢êêjÅ5ªªqªË®vìX]e/Õ‰;'{Ug ¯?JyH)¤·RNRl+Š-yÔ¥„jŠy¨¸-Ú'd› vçyÈ(Ší„RÜ?êŽëi¨š6ª‹«æÏ–-[¬¬¬† Bß%E=}-UÊj¥Å5¿)ëuÓ¨§3àÀ‹/V<”š×®¡ÍNH< [Já|(//ÏÉÉ™2e ëYíååå¹»»Sj>ƒ:b±855•þ=ý鄣úŠv¬—¾9¤ãŒÓU;½!±?øàƒ‡>|ØÐ´B)N]e/!$>>ÞËËËÞÞ¾#ñ {»»žšQÐÅé*ñt’u ¾¡€¿…B}Wê477—””ìß¿ÿ—_~1t,št—8@I{—C·fii¹råÊÎ_E'¬:"))iôèÑË–-ëxŸ§^±Æ©ÃìBö‚n!£À xÐ5éåV+èj·Z´ nŒÝBFAçíV [èñ½Cáz‡Âô…è Ð; w,Œïô0ØÙÙÙé¤'Ož ±¡›Bö‚n!£ÀPžzŽGKK‹H$2`4JŒŒŒ,--;؈H$jiiÑI<mbiiiddÔ‘½ ¯ãYÀxªðÐŒñ½Cáz‡Âô…èÝÿŸ0εȶÉIEND®B`‚XQilla-2.3.0/docs/simple-api/Scope_8hpp_source.html0000644000151400015140000004277511653571063017117 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

Scope.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 /*
00021   Scope
00022 */
00023 
00024 #ifndef _SCOPE_HPP
00025 #define _SCOPE_HPP
00026 
00027 #include <xqilla/framework/XQillaExport.hpp>
00028 #include <xqilla/context/VarHashEntry.hpp>
00029 #include <vector>
00030 #include <xercesc/util/RefHash2KeysTableOf.hpp>
00031 #include <xercesc/util/XMemory.hpp>
00032 
00033 template<class TYPE> class VarHashEntry;
00034 
00036 template<class TYPE>
00037 class Scope : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory
00038 {
00039 public:
00041   typedef enum {
00042     GLOBAL_SCOPE,
00043     LOCAL_SCOPE,
00044     LOGICAL_BLOCK_SCOPE
00045   } Type;
00046 
00047   typedef XERCES_CPP_NAMESPACE_QUALIFIER RefHash2KeysTableOf< VarHashEntry<TYPE> > VarHash;
00048 
00050   Scope(XPath2MemoryManager* memMgr, Type type);
00051   ~Scope();
00052 
00053   void clear();
00054 
00055   Type getType() const;
00056   VarHashEntry<TYPE>* get(unsigned int nsID, const XMLCh* name);
00057   void put(unsigned int nsID, const XMLCh* name, VarHashEntry<TYPE>* value);
00058   void remove(unsigned int nsID, const XMLCh* name);
00059   std::vector< std::pair<unsigned int, const XMLCh*> > getVars() const;
00060 
00061   Scope* getNext();
00062   void setNext(Scope* next);
00063   
00064 private:
00065   typename Scope<TYPE>::Type _type;
00066   VarHash _map;
00067   XPath2MemoryManager* _memMgr;
00068   Scope<TYPE>* _next;
00069 };
00070 
00071 template<class TYPE>
00072 Scope<TYPE>::Scope(XPath2MemoryManager* memMgr, Type type) :
00073     _map(17, true, memMgr)
00074 {
00075   _memMgr=memMgr;
00076   _type = type;
00077   _next = NULL;
00078 }
00079 
00080 template<class TYPE>
00081 void Scope<TYPE>::clear()
00082 {
00083   _map.removeAll();
00084 }
00085 
00086 template<class TYPE>
00087 typename Scope<TYPE>::Type Scope<TYPE>::getType() const
00088 {
00089   return _type;
00090 }
00091 
00092 template<class TYPE>
00093 VarHashEntry<TYPE>* Scope<TYPE>::get(unsigned int nsID, const XMLCh* name)
00094 {
00095         return _map.get(name,nsID);
00096 }
00097 
00098 template<class TYPE>
00099 void Scope<TYPE>::put(unsigned int nsID, const XMLCh* name, VarHashEntry<TYPE>* value)
00100 {
00101         _map.put((void*)_memMgr->getPooledString(name),nsID,value);
00102 }
00103 
00104 template<class TYPE>
00105 void Scope<TYPE>::remove(unsigned int nsID, const XMLCh* name)
00106 {
00107         _map.removeKey(name,nsID);
00108 }
00109 
00110 template<class TYPE>
00111 std::vector< std::pair<unsigned int, const XMLCh*> > Scope<TYPE>::getVars() const
00112 {
00113     std::vector< std::pair<unsigned int, const XMLCh*> > result;
00114     XERCES_CPP_NAMESPACE_QUALIFIER RefHash2KeysTableOfEnumerator< VarHashEntry<TYPE> > iterator(const_cast<VarHash*>(&_map));
00115     while(iterator.hasMoreElements())
00116         {
00117                 XMLCh* name;
00118                 int nsID;
00119                 iterator.nextElementKey((void*&)name, nsID);
00120         result.push_back(std::pair<unsigned int, const XMLCh*>(nsID,name));
00121         }
00122         return result;
00123 }
00124 
00125 template<class TYPE>
00126 Scope<TYPE>::~Scope()
00127 {
00128   _map.removeAll();
00129 }
00130 
00131 template<class TYPE>
00132 Scope<TYPE>* Scope<TYPE>::getNext()
00133 {
00134     return _next;
00135 }
00136 
00137 template<class TYPE>
00138 void Scope<TYPE>::setNext(Scope<TYPE>* next)
00139 {
00140     _next=next;
00141 }
00142 
00143 #endif // _SCOPE_HPP
XQilla-2.3.0/docs/simple-api/classStaticType__inherit__graph.map0000644000151400015140000000035611653571064021646 00000000000000 XQilla-2.3.0/docs/simple-api/ATGDayOrDerived_8hpp_source.html0000644000151400015140000002334311653571063020711 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATGDayOrDerived.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _ATGDAYORDERIVED_HPP
00021 #define _ATGDAYORDERIVED_HPP
00022 
00023 #include <xercesc/util/XercesDefs.hpp>
00024 #include <xqilla/framework/XQillaExport.hpp>
00025 #include <xqilla/items/DateOrTimeType.hpp>
00026 #include <xqilla/items/Timezone.hpp>
00027 
00028 class DynamicContext;
00029 
00030 class XQILLA_API ATGDayOrDerived : public DateOrTimeType
00031 {
00032 public:
00033   typedef RefCountPointer<const ATGDayOrDerived> Ptr;
00034 
00035   /* Get the name of the primitive type (basic type) of this type
00036    * (ie "decimal" for xs:decimal) */
00037   virtual const XMLCh* getPrimitiveTypeName() const = 0;
00038 
00039   /* Get the namespace URI for this type */
00040   virtual const XMLCh* getTypeURI() const = 0;
00041 
00042   /* Get the name of this type  (ie "integer" for xs:integer) */
00043   virtual const XMLCh* getTypeName() const = 0;
00044 
00045   /* returns the XMLCh* (canonical) representation of this type */
00046   virtual const XMLCh* asString(const DynamicContext* context) const = 0;
00047 
00048   /* returns true if the two objects are equal 
00049    * false otherwise */
00050   virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const = 0;
00051 
00054   virtual int compare(const ATGDayOrDerived::Ptr &other, const DynamicContext *context) const = 0;
00055  
00057   virtual bool hasTimezone() const = 0;
00058 
00060   virtual ATGDayOrDerived::Ptr setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const = 0;
00061 
00062   virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const = 0;
00063 };
00064 
00065 #endif //  _ATGDAYORDERIVED_HPP
XQilla-2.3.0/docs/simple-api/DocumentCache_8hpp__incl.map0000644000151400015140000000133011653571064020124 00000000000000 XQilla-2.3.0/docs/simple-api/DOMNode_8hpp__incl.map0000644000151400015140000000003511653571064016650 00000000000000 XQilla-2.3.0/docs/simple-api/functions_func_0x68.html0000644000151400015140000001301311653571063017316 00000000000000 XQilla Simple API Documentation SourceForge.net Logo XQilla-2.3.0/docs/simple-api/classXPath2MemoryManager__inherit__graph.md50000644000151400015140000000004011653571063023244 0000000000000055248d659e6c2edb2f3e4efb95ab955dXQilla-2.3.0/docs/simple-api/ModuleResolver_8hpp__incl.map0000644000151400015140000000003511653571064020372 00000000000000 XQilla-2.3.0/docs/simple-api/URLInputSource_8hpp__incl.md50000644000151400015140000000004011653571063020171 00000000000000cb432b89ad9c66db2911613c87d3b68fXQilla-2.3.0/docs/simple-api/classATGDayOrDerived__inherit__graph.md50000644000151400015140000000004011653571063022327 000000000000005ed449c9e8910babc1de7ba3952b7261XQilla-2.3.0/docs/simple-api/classRefCountPointer-members.html0000644000151400015140000001137011653571063021256 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

RefCountPointer< T > Member List

This is the complete list of members for RefCountPointer< T >, including all inherited members.
_pRefCountPointer< T > [protected]
get() const RefCountPointer< T > [inline]
isNull() const RefCountPointer< T > [inline]
notNull() const RefCountPointer< T > [inline]
operator T *() const RefCountPointer< T > [inline]
operator->() const RefCountPointer< T > [inline]
operator=(const RefCountPointer< T > &o)RefCountPointer< T > [inline]
RefCountPointer(T *p=0)RefCountPointer< T > [inline]
RefCountPointer(const RefCountPointer< T2 > &o)RefCountPointer< T > [inline]
RefCountPointer(const RefCountPointer< T > &o)RefCountPointer< T > [inline]
~RefCountPointer()RefCountPointer< T > [inline]
XQilla-2.3.0/docs/simple-api/inherit_graph_32.map0000644000151400015140000000033011653571064016445 00000000000000 XQilla-2.3.0/docs/simple-api/inherit_graph_21.map0000644000151400015140000000067111653571064016453 00000000000000 XQilla-2.3.0/docs/simple-api/StaticAnalysis_8hpp_source.html0000644000151400015140000004356511653571063020777 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

StaticAnalysis.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _STATICANALYSIS_HPP
00021 #define _STATICANALYSIS_HPP
00022 
00023 #include <string>
00024 
00025 #include <xqilla/framework/XQillaExport.hpp>
00026 #include <xqilla/ast/StaticType.hpp>
00027 
00028 #include <vector>
00029 
00030 class XPath2MemoryManager;
00031 
00035 class XQILLA_API StaticAnalysis
00036 {
00037 public:
00038   static const int HASH_SIZE = 13;
00039 
00040   class XQILLA_API VarEntry
00041   {
00042   public:
00043     VarEntry() : uri(0), name(0), hash(0), prev(0) {}
00044     void set(const XMLCh *u, const XMLCh *n);
00045     void set(const XMLCh *u, const XMLCh *n, size_t h);
00046 
00047     const XMLCh *uri, *name;
00048     size_t hash;
00049     VarEntry *prev;
00050   };
00051 
00052   StaticAnalysis(XPath2MemoryManager* memMgr);
00053   StaticAnalysis(const StaticAnalysis &o, XPath2MemoryManager* memMgr);
00054 
00055   void copy(const StaticAnalysis &o);
00056   void release();
00057 
00059   void clear();
00060   void clearExceptType();
00061 
00064   void forceNoFolding(bool value);
00065   bool isNoFoldingForced() const;
00066 
00067   void contextItemUsed(bool value);
00068   void contextPositionUsed(bool value);
00069   void contextSizeUsed(bool value);
00070   bool isContextItemUsed() const;
00071   bool isContextPositionUsed() const;
00072   bool isContextSizeUsed() const;
00074   bool areContextFlagsUsed() const;
00075 
00076   void currentTimeUsed(bool value);
00077   void implicitTimezoneUsed(bool value);
00078 
00079   void availableDocumentsUsed(bool value);
00080   void availableCollectionsUsed(bool value);
00081   bool areDocsOrCollectionsUsed() const;
00082 
00083   void variableUsed(const XMLCh *namespaceURI, const XMLCh *name);
00084   bool removeVariable(const XMLCh *namespaceURI, const XMLCh *name);
00085   bool isVariableUsed(const XMLCh *namespaceURI, const XMLCh *name) const;
00086   bool isVariableUsed() const;
00087   VarEntry **variablesUsed() const;
00088 
00090   void add(const StaticAnalysis &o);
00091   void addExceptContextFlags(const StaticAnalysis &o);
00092   void addExceptVariable(const XMLCh *namespaceURI, const XMLCh *name, const StaticAnalysis &o);
00093 
00095   bool isUsed() const;
00096   bool isUsedExceptContextFlags() const;
00097 
00098   void creative(bool value);
00099   bool isCreative() const;
00100 
00101   void updating(bool value);
00102   bool isUpdating() const;
00103   void possiblyUpdating(bool value);
00104   bool isPossiblyUpdating() const;
00105 
00110   enum Properties {
00111     DOCORDER     = 0x001, 
00112     PEER         = 0x002, 
00113     SUBTREE      = 0x004, 
00114     GROUPED      = 0x008, 
00115     SAMEDOC      = 0x010, 
00116     ONENODE      = 0x020, 
00117     SELF         = 0x040, 
00118     UNDEFINEDVAR = 0x080  
00119   };
00120 
00121   unsigned int getProperties() const;
00122   void setProperties(unsigned int props);
00123 
00124   const StaticType &getStaticType() const;
00125   StaticType &getStaticType();
00126 
00127   std::string toString() const;
00128 
00129 private:
00130   StaticAnalysis(const StaticAnalysis &o);
00131   StaticAnalysis &operator=(const StaticAnalysis &o);
00132 
00133   bool _contextItem;
00134   bool _contextPosition;
00135   bool _contextSize;
00136   bool _currentTime;
00137   bool _implicitTimezone;
00138   bool _availableDocuments;
00139   bool _availableCollections;
00140   bool _forceNoFolding;
00141   bool _creative;
00142   bool _updating;
00143   bool _possiblyUpdating;
00144 
00145   unsigned int _properties;
00146   StaticType _staticType;
00147 
00148   VarEntry *_dynamicVariables[HASH_SIZE];
00149   VarEntry *_recycle;
00150   XPath2MemoryManager *_memMgr;
00151 };
00152 
00153 #endif
XQilla-2.3.0/docs/simple-api/inherit_graph_17.png0000644000151400015140000000414511653571064016467 00000000000000‰PNG  IHDRÕ(æ.(bKGDÿÿÿ ½§“IDATxœíš{H“]ÇÏcmÕ’]Ì­\xÉ)©‰¨ýQRD‰‘]Ô¤]i÷òR¹èYQd‚EPf, ¢‘¢DóŠZ:/M:ÛælÎí¼ëÙ³¹öNÞ·óùë„`04áC·Ì_ ö†N°ÿ0t‚ý‡¡“¥¤ë«W¯677Ó"ó7 “Éì/ÉþkkkëîîNHHXDI˜¿‚¡¡!¹\N ’ýHHH¨©©YI˜¿ˆšššŒŒ RŸÿ0t‚ý‡¡ì? `ÿaèûC'ú°ƒÇ㥧§k4¯"¢¯¯Ï+©<£¯¯ ˆ?e_¬¬,×ñl–…Ã^ÿŠ+¶lÙ¢P(a^Ï÷¿OŸ>©Õê?~Èd²ááá3gÎxQ–3¾ÿîïï¿ i¹\î¹s矟••…¶(û´¶;cjjêÙ³gÑD&“‰Çã½}ûÖÙHùñãÇQCªªªD"ŸÏ?qâ„Ñh´¿)ÛÚÂŠŠŠ¨¨(6›˜˜X__OeЂPNáƒÁ`2™‡Ô;í¸:ž@ò£ûûŸB¡Ðëõ:®»»{ûöíW®\êt:&“)‹‡‡‡Ÿ={7 Ë–-«¨¨P«Õ=Zºt©Á`€–––îÛ·oppP©TÆÇÇŸ?þþEìß¿_«ÕVVV&&&HÛ†cÔ!%%¥¡¡A­V;йuëÖ† ”Je[[Û¦M› àﻑ­]]]dµZ!„R©T(šÍfwd#ZZZ¸\®k‰‰‰===r¹<,,Ì$ɨ¬¬\»ví»wï4L& Pç-ˆÁ`˜ššª¬¬DSØ·m ª×ëGFFNž<™““CRBj;®ŽkÏPîžûÏ6›ªo2™ººº ƒÅbijjB«299É`0nß¾­Õj­V«^¯·X,ˆˆµZÊd²ØØXèà¿ÆÆFáìì,Š“üç˜uP*•ÎĬ_¿þõë×hHgg'jS–xzzzåÊ•_¾|8p ¸¸ØÙ¤p>ÿ¹Ö‰Öfݺu”2¢££«ªªliŸ?  º3‘› êëëÛÙÙIRüGZ×SPúâÿ¿nÒÛÛ‹¾vF£±¬¬,11Q¥R1™ÌžžžÜÜ\ƒÁ‡zòx¼ÆÆÆ²²2‰D_\\œ’’°%D»= ¡P`0”œeˆˆˆPŠQ©Tááá¨éì²X¬Ý»w×ÖÖFEEÕÕÕ}ýúÕõ¤Žõ‰D®‡Ø” ߨ·yâÛ·oÑÑѶxTT”³à¼qý‚–””ˆÅâÏŸ?“úœêzuÜÁ ç?‹•››;444>>>33“žž^XXØÚÚZ^^Ž:ÌÌÌX­Ö—/_NNN9rd×®]“““Û—F«Õ:¾ðñq¥ÐYTJ1B¡p``µ Åõë×]äÏÌ̬­­}óæÍÆm^qG6„ðÁƒ;wît=m'€žžžàà`Ôž››ŒŒŒ ËàààŽŽ[æ®®.gÁy â&,+;;»££ÃÞm$U׫ãž×h4££££££ƒƒƒ¥¥¥|>ßd2ÍÎÎ2™Ì™™‰DÐëõA$%%½zõJ§ÓÍÎÎ2 ‹Ø»woqq±J¥R*•ÉÉÉ÷ïßwsjƒÁ€®3PŠ9|øðÅ‹ÛÛÛÛÛÛOŸ>­R©ÓÚHJJÒjµ‰D,Û‚Î&EijjÚ³gO¿íñÅÙüüü¾¾¾––– .dggs¹\À“'Ot:ݽ{÷PŸS§N½ÿ~bb¢¡¡áòåËAPÝ)éÏŸ?>|èØ&Áf³õz=*¥*¯Aº{pþóññ‰‰‰‘ËåèOwîÜñóó ,//ÏÌÌèÞ/‰˜LfDD„T*E=u:]NNÇ[µjU^^Þôô4t8ÿ‘Úf³yëÖ­¾¾¾Î2ˆŽb~ýúUPP  9Nff¦V«…Ú§%eÈËËóõõEL®eÛ ÿaèûC'Ø:ÁþÃÐÉ?ëá³!•þIEND®B`‚XQilla-2.3.0/docs/simple-api/classATHexBinaryOrDerived-members.html0000644000151400015140000004232411653571063022115 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATHexBinaryOrDerived Member List

This is the complete list of members for ATHexBinaryOrDerived, including all inherited members.
_ref_countReferenceCounted [protected]
ANY_SIMPLE_TYPE enum valueAnyAtomicType
ANY_URI enum valueAnyAtomicType
asString(const DynamicContext *context) const =0ATHexBinaryOrDerived [pure virtual]
AtomicObjectType enum nameAnyAtomicType
BASE_64_BINARY enum valueAnyAtomicType
BOOLEAN enum valueAnyAtomicType
castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [protected, virtual]
castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
compare(const ATHexBinaryOrDerived::Ptr &other, const DynamicContext *context) const =0ATHexBinaryOrDerived [pure virtual]
DATE enum valueAnyAtomicType
DATE_TIME enum valueAnyAtomicType
DAY_TIME_DURATION enum valueAnyAtomicType
DECIMAL enum valueAnyAtomicType
decrementRefCount() const ReferenceCounted [inline, virtual]
DOUBLE enum valueAnyAtomicType
DURATION enum valueAnyAtomicType
equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0ATHexBinaryOrDerived [pure virtual]
fgDT_ANYATOMICTYPEAnyAtomicType [static]
FLOAT enum valueAnyAtomicType
G_DAY enum valueAnyAtomicType
G_MONTH enum valueAnyAtomicType
G_MONTH_DAY enum valueAnyAtomicType
G_YEAR enum valueAnyAtomicType
G_YEAR_MONTH enum valueAnyAtomicType
generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicType [virtual]
getInterface(const XMLCh *name) const =0Item [pure virtual]
getPrimitiveTypeIndex() const =0ATHexBinaryOrDerived [pure virtual]
getPrimitiveTypeName() const =0ATHexBinaryOrDerived [pure virtual]
getPrimitiveTypeURI() const AnyAtomicType [virtual]
getRefCount() const ReferenceCounted [inline]
getTypeName() const =0ATHexBinaryOrDerived [pure virtual]
getTypeURI() const =0ATHexBinaryOrDerived [pure virtual]
gXQillaItem [static]
HEX_BINARY enum valueAnyAtomicType
incrementRefCount() const ReferenceCounted [inline]
isAtomicValue() const AnyAtomicType [virtual]
isDateOrTimeTypeValue() const AnyAtomicType [virtual]
isFunction() const AnyAtomicType [virtual]
isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicType [virtual]
isNode() const AnyAtomicType [virtual]
isNumericValue() const AnyAtomicType [virtual]
isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
Item()Item [inline, protected]
NOTATION enum valueAnyAtomicType
NumAtomicObjectTypes enum valueAnyAtomicType
Ptr typedefAnyAtomicType
QNAME enum valueAnyAtomicType
ReferenceCounted()ReferenceCounted [inline]
STRING enum valueAnyAtomicType
TIME enum valueAnyAtomicType
typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicType [virtual]
UNTYPED_ATOMIC enum valueAnyAtomicType
YEAR_MONTH_DURATION enum valueAnyAtomicType
~ReferenceCounted()ReferenceCounted [inline, virtual]
XQilla-2.3.0/docs/simple-api/classATAnyURIOrDerived__inherit__graph.png0000644000151400015140000001510011653571064022715 00000000000000‰PNG  IHDR›(‘tbKGDÿÿÿ ½§“õIDATxœí{TWþÀoH‡`x„)òP(.Š­…²(Rή]+ à£º]º¬nZw«¢G=GqÕ³[]A|žP´‡µ<òÓET„D±ˆ BBH$ùý1ílš@„0ñz?‡?îܹïOæ™Ir)†D˜‘bœAFa… d6hzKìÙ³çúõë B/Û·o Ó]F¿Q÷ã?Ο?œ¢BŒ‘¢¢¢ÄÄD½ÅôÌŸ?¿°°ÐàA¡PFR ]Ga… d6QØ@FacÜŒRÔ°²² ihhÐQðիWÛØØŒWc£££#!!ÁÃÃÃÆÆfÞ¼y¥¥¥¤„ÑÜÜ<Âeõ2žçè7D"‘H$âr¹>>>+V¬Ðñ`§££ãüùóMMMãÀhéîî ´¶¶f³Ùuuu+W®Œ¿zõªá- ƒax;c`DïGGˆ“““‹‹ ÀÅÅ%33ÓÙÙùåË—L&sÈÂww÷q `´ddd„‡‡çææâ›ï¾ûnggç?ÿùÏ%K–زJ¥êîî68À±`¬ë¨¹¹ù¤I“èt:¾)—ËÓÓÓ™Lfzzº\.ீ! àQUU•»»û?ü ]@¡PΟ?ïçççàà™™ P(îîîNNNk×®íéé®}@qqñæÍ›ÕÃÎÈÈ8yò$žîééY·nƒÁpssKKK“Édês£zZ; ½£S*•œ1c†­­mHHÈ­[·ÆíÐcúˆÕ[ ÐÐÐÐÛÛÛÛÛÛÞÞ¾qãÆõë×{8°|ùòÖÖV.—;wîÜmÛ¶ñù|õÞ‡+ðÑGUWW÷õõiÀ;‰‰‘H$999€îîîƒúûûs¹\”––6\û‰ ‹‡ѪU«"""ZZZ¸\î¬Y³víÚ¥³zZ; ½£;|ø0“É,))éèèøöÛoY,–^6›­_„Þ#7ªŽMSS±×××W$á銊Š9sæhŒy¸\.w¸x§ðÁÁAŸÏŸ9sfII ^¬©©‰HkW‹Å‰D2äp©Têýû÷ñÍ’’oooF5ÂÐ;º3fœ:uŠ(púôiS4ÊçóñtÿÖ­[ƒƒƒ‰½–––ê¾étºÆ˜‡+0888\¼ÓG©`iiÉãñ´Ã²º³³sMMz±ººº÷ß¿¿¿ÿÙ³g€<ŸËåZZZªÇüøñcu£aè••UCCQàÞ½{ãeÔ(×QkkëuëÖ=xðûåÜe0„o‰DR[[«Qe¸æææº ˜™ýj,K(â醆†}ûö騾téÒC‡aj̹sçär¹µµµ³³3•Jx~KKËÔ©Sñ´B¡´··«÷«†ÞÑyxx466H¥R|sÓ¦M111B¡°±±1(((55UãU<†â錌Œ€€ÇãñBBBuTñâ…££ãªU«jjjwíÚ¸rå ^%!!!""B ðx<ÿ;w¾|ùpòäÉŸ~úiÙ²e@íÕ¾··w¸Þÿõ¯1™Ì‹/ŠD¢òòrOOO½.‰³.†aJ¥rÊ”)Ož<Á7¥Réúõëííí“’’úûû5„¡6Ô¡”Édiii,‹N§ÇÇÇ—É!«c& cbbX,–­­í|PVVFô(‹×¬YãèèèêêúùçŸã3ðÞ½{íìì¼¼¼.]º¤Ã¨\._°`Íp½+Šƒz{{OžJ: …Ífã:t€îëÂ2 È(l £°ŒÂ2 È(l £°ñ¶½uK@vĈ>ÃpýúõÅ‹;ã188©­mš§g ÙLúâãßhž=³°²²r²´TËØ‰6mšÞbúïëB@pðÞÖÖî-[–¤¥E‘‹Ñÿ:ÚÔÔÑÚÚ (*ºMv,üF‹‹ï˜›SÏž‰ZÉÇè@nT¥ÂØìÛr¹@£Q/^¬';"£¹Ñ[·bqžV(”.ÜQ*Uä†dl 7ZZZO£ýoŒbqÿÍ›¿‡Ù¨\®¼x±^¡øßII£QKKï’Ò³Ñk×õõ½VÏQ(”eeƒƒoð»R½Àl´¤ä.•ªù…¯W¯dΤÄ31@k´¿ÿuy9Wûÿ 33³âb˜'^hVV6áoZ4P*Uß}w¿¿ÿµö.8€ÖhiéÝáîo***Æï3ì&œF¥Ò瑎[Ö¥¥ÐÞj€óNýë׊ÎΟˆÍÊʦ;JnÞÜNäP©fnnöd„ftÆó;Þ¦ƒ…íw‰M''[€zÄÀ9ë¾Í £°ŒÂ2 È(l £°ŒÂ2 È(l £°ŒÂ2 È(l £°ŒÂ2 È(l £°ŒÂ2 È(l £°ŒÂ2 È(l £°ŒÂ2 È(l £°ŒÂ2 &ý`@PYYix;÷ïK'Nœ0¼)@RRÒ¸´c$Lú[û………+V¬0¼33 *•.—¿0¼)€)1ðF̺zWóÓ‹R)|nx;l6›ìƒ¡Ÿ7À(bT £°ŒÂ2 È(l £°ƒQ …ÒÜÜLv¦ F ƒÁ ; ’ʨJ¥êîî&; ’Ê(¾Ä›‹‹ ¾)—ËÓÓÓ™Lfzzº\.P(”¼¼Ž~oÌxàwÝôðù| Ãø|¾zù,_¾¼µµ•ËåÎ;wÛ¶mxáøøx©Tš›› ˆ‹‹“J¥ÙÙÙ€®®®q‰‡\L:>úúúŠD"<]QQ1gμp}}=†aƒƒƒi¼Ãã!“~šf B¡ÐÕՕؤÓéxÂÖÖ`nn®‘†¨®£0 â´“H$µµµdG4@h´¯ïç…Ò>ùä“¿ÿýïOŸ>år¹QQQÇŽ#7°‰*£ , fÚ½{÷ÚÚÚþîw¿›={öÈ ob€á:Šýò¡öý÷ßù¶¶¶yyyyyyCÖ‘~£êEd>QØ@Fa… d6QØx[Œvuõ‘ÂñÜa0üû*2™òʕΘ˜©¶s÷î°¸ð`499ÙÀ¬¬üèôˆÊÊíÒÀ&=ëÆÅÅË#ÃèèT …vîÜÿKkd=˜´Ñq¡»»ïÖ­f(p/ÈN¿Ñ‹ë €ÕÖ¶¨/ +ð-*º­Ra*•RVÖ@v8Fr£OŸvóxíøÅO©TÝ&;"£¹ÑK—îQ©}zvv6†a_}õ•¿¿?± #‘HrrrÝÝÝ×®]stt”Ëå†;wÎßß_¥RéhDãÔYµjUDDDKK —Ë5kÖ®]»ð^âãã¥Rinn. ..N*•fggºººˆ<èïïÏåry<^PPPZZšú(4:2N¼LddäãÇkkk½½½ñ8°|ùòÖÖV.—;wîÜmÛ¶é>bÀ°sÔèFkkki4ZWW†aøj<ïç¾àp8† ø|¾B¡pqq©ªªÂ0,::zÿþýºQ?ЃƒƒT*õþýûøfII‰··7ÞK}}=Ñ‹zšÏç-Ìœ9³¤¤¯ÛÔÔD¤q4Œ'^†ËåâeØl6€¯¯¯H$Â3+**æÌ™£ûˆhÔ还\PP P(Ôÿa³Ù³fÍÂÓ, `nnŽoR©ÔO>ù¤¤¤$  ²²?“ô6‚óüùs¥Réåå…oz{{·µµái[[[¢õ´:OŸ>õññÁÓ~~~~~~:5\œ¢___<¡PèêêJ Óé:Z6ã^G•J%›Í>|øpï/lÙ²þܽ™f±±±¥¥¥……… ,pssI#8ÎÎÎT*U øùè[ZZ¦NŲ,K(â醆†}ûöé.¯'~¦?~Œ¿^ ŸÏÇO ‰DR[[;ò¨ÆÂ˜Ïî‘̺‡J¥>þœÈ¹sçøeêÃÇçi…BÁd2óóóõ6‚¾ÞÞ^Ÿ_WWçãヰiÓ¦˜˜¡PØØØ”ššªû S¾Ž&''GFFªç¨T*//¯/¿üþX§¤¤XYYI¥R½Èåò ØØØàùb±xÍš5ŽŽŽ®®®ŸþùÀÀ€Ž^4ŒÊd²´´4‹E§Óããã%‰zC¾{ш/“››ûÎ;ï0Œ¿þõ¯xR©týúõöööŽŽŽIIIýýýºšIÿøÇ?ŒÑòø¢çx½g5Шi­%!“É:::òòò¾ùæ²cÑ…)ÇiZwêoݺõþûïÿéOúðÃÉŽECÆ9eÊÑ7Ó:GÃÂÂÄb1ÙQègÈ8™LfVV)ñ¨cZç(ÂpQØ@Fa…·Å(Ä ŽjðVU*UGV‘Åaл—¢¢"Ò1&Mr³·ÿhóæHà?SǾZåÍ›7‰ÇU&NAAËÍ›Ïÿò—wg̰#;–]¢P‡xðཽ½zŽæ/kÄÆÆšø WuvïÞ­‘ƒ®£°ŒÂ2 È(l £°1Æ_‘;sæL~~~bbbBBžS]]½gÏí’999ÞÞÞCVáááçΛ:uê9áááDþ¤I“|||þö·¿áýjוÉd§Nº}û¶H$rww_¸páÊ•+©TªvDÚÙÙyöìÙ6l°³ÑŠ1ííí«W¯æp8c©-ŒÅ(†aÕÕÕL&“ÃázBBBŠ‹‹"‘(55O¦L™2\•ñåèÑ£®®®€W¯^;wn÷îÝgΜÑ^2êÕ«W6l°··ONNf±XOž<9yòä;w:„/9¡Ý¦J¥zöìYqqqRRR^^žÞ`lllâããÇkh£b,³î“'OZ[[¿øâ‹ææfbY& üUìð 4m¸*ã‹Þ£››[JJJ[[ÛO?ý¤]ìÌ™3vvv‡þàƒÜÜÜ.\˜••ÕÙÙY^^>\› #00pÏž=®®®EEE# †N§'%%:¤11£ÕÕÕ³gÏ~ï½÷ÜÝÝ««« ©^YYùé§Ÿ.]º´  ðõ×_gffâ{¢¢¢ð5ìG•J¥Ñh“'OÖÞUQQ±víZõÓÑÒÒråÊ•íííáááõõõ+V¬àñx)ÊÒ¥KkkkñM…B‘••µlÙ²eË–eee) õêÿýïñI{ûöíÿùÏð*r¹üøÞ‚vu•JUPP°fÍšèèèÔÔÔ‡ŽvÔ8£6ŠÏŸ€ÐÐБLôº«üðÃÇŽKNNÎÎÎîíí «©©Q*•€ššWWWâr¨™L600000ÐÝÝ}òäÉÅ‹›››k”éëë‹ÅÚ z{{·¶¶âéÂÂÂmÛ¶ùøøhwáææÖÑѧ/\¸ ‰²³³:T__ŸŸŸ?dõˆˆˆk×®á7Ïoß¾maa1oÞ¼!«³Ù줤¤³gÏ®Y³fÌK‚Úè?þøâÅ‹ÐÐP@hh¨P(|òä‰!UþøÇ?ÚØØ,Y² •JgÍšE£Ñ¸\. ²²222r„Ë'þùÏŽŽŽŽŽŽŽ‰‰ùî»ïV¬X1òAQ(•êçŸWNJJ ´´´Ô]¥¼¼|óæÍL&ÓÓÓ399¹®®nÈê¿ýío¥Ré£GUUUQQQø¿`ÚÕËÊÊRRR.\èèè4æI{ÔÿUWW+•Ê?þ˜Èáp8Ó§OsƒÀ/·33³… ^¿~ÝÓÓóîÝ»[·n%j©?&ÒþY`â¿Ùׯ_çååeff;vL£ŒƒƒCssó{ï½§žßÜÜÜ@ÚÚÚX,žîìì\¾|9±‹˜á5ª[XX„„„\»vÍÃÃãÆ999ÃUW(꓇§§çpaèftFU*‡ÃÙ¸qãïÿ{<'??ŸÃá¬_¿~¸3IoíŠ~øáÞ½{=<<~ó›ß899á™L&³½½ÝÍÍ ßlmm¥R©C>&²°°ˆŠŠºrå †aÚ/Z´èÌ™3Ä¥T&“}óÍ7Äñ%^[`VVVŒoÒéô#GŽà¯!|2®zDDÄ×_ííí=cÆ "~íê;wîliiñòò …Â!ÃÐËèf].—+‘H/^lõ ‹-jkkknnÇ*J¥òôéÓ‘‘‘DfTTÔ¿ÿýï›7oŠD¢úúú}ûöEFFj_)q&OžüêÕ«í]Ÿ~ú©D"Ù²eK]]][[Û÷ß¿aá>…ôôôˆÅâ®®®ÆÆÆ;vˆD¢¸¸8|×Â… srrž?.¾øâ‹‹/7œyóæõõõ:u*::šÈÔ®¾téÒãÇ×ÔÔˆÅ⺺º¼¼¼áÔÍèÎÑêêê¹s窿Ëöñña±XgÈ%ÆVÅÌÌ,44ôêÕ«ø¥gíÚµVVVÇþü¹££cDDÄêÕ«‡‹ÓÉÉÉÚÚZ*•Z[[kì²¶¶>qâD~~~VVVGG‡««kDDDllì/ŽÔÔT<Ád2Nœ8AÌ®Ÿ}öÙÑ£G)JhhhrrrWW×ÁÐh´°°°ªªª°°0"S»º¹¹¹\.?~üxww·——׎;6nÜ8Üuð«Ï0P(”ŒŒ Sx>š››ÛÙÙ¹}ûv²1uvïÞíääTXXHä˜Ü}ÝÁÁA‘HT^^N\w£ÂäŒ>|ø099ù£>š3gÙ±¼‘˜Üz/³gÏ.++#;Š7“;G‚ŒÂ2 È(l £°ŒÂ†æ=#OOOOÝ#L@°hÑ"õ{F¿z?;á!! ÂÓÓ“x„óV¬?úV®£°ŒÂ2 È(lü?d䡸ZÈIEND®B`‚XQilla-2.3.0/docs/simple-api/classATDecimalOrDerived.html0000644000151400015140000015023411653571064020133 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATDecimalOrDerived Class Reference

#include <ATDecimalOrDerived.hpp>

Inheritance diagram for ATDecimalOrDerived:

List of all members.

Public Types

typedef RefCountPointer< const
ATDecimalOrDerived
Ptr

Public Member Functions

virtual const XMLCh * getPrimitiveTypeName () const =0
virtual const XMLCh * getTypeURI () const =0
virtual const XMLCh * getTypeName () const =0
virtual const XMLCh * asString (const DynamicContext *context) const =0
virtual Numeric::Ptr promoteTypeIfApplicable (AnyAtomicType::AtomicObjectType typeIndex, const DynamicContext *context) const =0
virtual Numeric::Ptr add (const Numeric::Ptr &other, const DynamicContext *context) const =0
 Returns a Numeric object which is the sum of this and other.
virtual Numeric::Ptr subtract (const Numeric::Ptr &other, const DynamicContext *context) const =0
 Returns a Numeric object which is the difference of this and other.
virtual Numeric::Ptr multiply (const Numeric::Ptr &other, const DynamicContext *context) const =0
 Returns a Numeric object which is the product of this and other.
virtual Numeric::Ptr divide (const Numeric::Ptr &other, const DynamicContext *context) const =0
 Returns a Numeric object which is the quotient of this and other.
virtual Numeric::Ptr mod (const Numeric::Ptr &other, const DynamicContext *context) const =0
 Returns the arithmetic product of its operands as a Numeric.
virtual Numeric::Ptr floor (const DynamicContext *context) const =0
 Returns the floor of this Numeric.
virtual Numeric::Ptr ceiling (const DynamicContext *context) const =0
 Returns the ceiling of this Numeric.
virtual Numeric::Ptr round (const DynamicContext *context) const =0
 Rounds this Numeric.
virtual Numeric::Ptr roundHalfToEven (const Numeric::Ptr &precision, const DynamicContext *context) const =0
 Rounds this Numeric to the given precision, and rounds a half to even.
virtual Numeric::Ptr invert (const DynamicContext *context) const =0
 Returns the Additive inverse of this Numeric.
virtual Numeric::Ptr abs (const DynamicContext *context) const =0
 Returns the absolute value of this Numeric.
virtual Numeric::Ptr sqrt (const DynamicContext *context) const =0
 Returns the square root of this Numeric.
virtual Numeric::Ptr sin (const DynamicContext *context) const =0
 Returns the sinus of this Numeric.
virtual Numeric::Ptr cos (const DynamicContext *context) const =0
 Returns the cosinus of this Numeric.
virtual Numeric::Ptr tan (const DynamicContext *context) const =0
 Returns the tan of this Numeric.
virtual Numeric::Ptr asin (const DynamicContext *context) const =0
 Returns the asin of this Numeric.
virtual Numeric::Ptr acos (const DynamicContext *context) const =0
 Returns the acos of this Numeric.
virtual Numeric::Ptr atan (const DynamicContext *context) const =0
 Returns the atan of this Numeric.
virtual Numeric::Ptr log (const DynamicContext *context) const =0
 Returns the ln of this Numeric.
virtual Numeric::Ptr exp (const DynamicContext *context) const =0
 Returns the exp of this Numeric.
virtual bool isZero () const =0
 Does this Numeric have value 0?
virtual bool isNegative () const =0
 Is this Numeric negative?
virtual bool isPositive () const =0
 Is this Numeric positive?
virtual bool isNaN () const
virtual bool isInfinite () const
virtual XMLInt32 treatAsCodepoint (const DynamicContext *context) const =0
 Treat this decimal (must be integer) as a codepoint.
virtual
AnyAtomicType::AtomicObjectType 
getPrimitiveTypeIndex () const =0
virtual const MAPM & asMAPM () const =0
virtual State getState () const =0

Member Typedef Documentation


Member Function Documentation

virtual Numeric::Ptr ATDecimalOrDerived::abs ( const DynamicContext context) const [pure virtual]

Returns the absolute value of this Numeric.

Implements Numeric.

virtual Numeric::Ptr ATDecimalOrDerived::acos ( const DynamicContext context) const [pure virtual]

Returns the acos of this Numeric.

Implements Numeric.

virtual Numeric::Ptr ATDecimalOrDerived::add ( const Numeric::Ptr other,
const DynamicContext context 
) const [pure virtual]

Returns a Numeric object which is the sum of this and other.

Implements Numeric.

virtual Numeric::Ptr ATDecimalOrDerived::asin ( const DynamicContext context) const [pure virtual]

Returns the asin of this Numeric.

Implements Numeric.

virtual const MAPM& ATDecimalOrDerived::asMAPM ( ) const [pure virtual]

Implements Numeric.

virtual const XMLCh* ATDecimalOrDerived::asString ( const DynamicContext context) const [pure virtual]

Implements Numeric.

virtual Numeric::Ptr ATDecimalOrDerived::atan ( const DynamicContext context) const [pure virtual]

Returns the atan of this Numeric.

Implements Numeric.

virtual Numeric::Ptr ATDecimalOrDerived::ceiling ( const DynamicContext context) const [pure virtual]

Returns the ceiling of this Numeric.

Implements Numeric.

virtual Numeric::Ptr ATDecimalOrDerived::cos ( const DynamicContext context) const [pure virtual]

Returns the cosinus of this Numeric.

Implements Numeric.

virtual Numeric::Ptr ATDecimalOrDerived::divide ( const Numeric::Ptr other,
const DynamicContext context 
) const [pure virtual]

Returns a Numeric object which is the quotient of this and other.

Implements Numeric.

virtual Numeric::Ptr ATDecimalOrDerived::exp ( const DynamicContext context) const [pure virtual]

Returns the exp of this Numeric.

Implements Numeric.

virtual Numeric::Ptr ATDecimalOrDerived::floor ( const DynamicContext context) const [pure virtual]

Returns the floor of this Numeric.

Implements Numeric.

virtual AnyAtomicType::AtomicObjectType ATDecimalOrDerived::getPrimitiveTypeIndex ( ) const [pure virtual]

Implements Numeric.

virtual const XMLCh* ATDecimalOrDerived::getPrimitiveTypeName ( ) const [pure virtual]

Implements Numeric.

virtual State ATDecimalOrDerived::getState ( ) const [pure virtual]

Implements Numeric.

virtual const XMLCh* ATDecimalOrDerived::getTypeName ( ) const [pure virtual]

Implements Numeric.

virtual const XMLCh* ATDecimalOrDerived::getTypeURI ( ) const [pure virtual]

Implements Numeric.

virtual Numeric::Ptr ATDecimalOrDerived::invert ( const DynamicContext context) const [pure virtual]

Returns the Additive inverse of this Numeric.

Implements Numeric.

virtual bool ATDecimalOrDerived::isInfinite ( ) const [inline, virtual]

Implements Numeric.

virtual bool ATDecimalOrDerived::isNaN ( ) const [inline, virtual]

Implements Numeric.

virtual bool ATDecimalOrDerived::isNegative ( ) const [pure virtual]

Is this Numeric negative?

Implements Numeric.

virtual bool ATDecimalOrDerived::isPositive ( ) const [pure virtual]

Is this Numeric positive?

Implements Numeric.

virtual bool ATDecimalOrDerived::isZero ( ) const [pure virtual]

Does this Numeric have value 0?

Implements Numeric.

virtual Numeric::Ptr ATDecimalOrDerived::log ( const DynamicContext context) const [pure virtual]

Returns the ln of this Numeric.

Implements Numeric.

virtual Numeric::Ptr ATDecimalOrDerived::mod ( const Numeric::Ptr other,
const DynamicContext context 
) const [pure virtual]

Returns the arithmetic product of its operands as a Numeric.

Implements Numeric.

virtual Numeric::Ptr ATDecimalOrDerived::multiply ( const Numeric::Ptr other,
const DynamicContext context 
) const [pure virtual]

Returns a Numeric object which is the product of this and other.

Implements Numeric.

virtual Numeric::Ptr ATDecimalOrDerived::promoteTypeIfApplicable ( AnyAtomicType::AtomicObjectType  typeIndex,
const DynamicContext context 
) const [pure virtual]

Implements Numeric.

virtual Numeric::Ptr ATDecimalOrDerived::round ( const DynamicContext context) const [pure virtual]

Rounds this Numeric.

Implements Numeric.

virtual Numeric::Ptr ATDecimalOrDerived::roundHalfToEven ( const Numeric::Ptr precision,
const DynamicContext context 
) const [pure virtual]

Rounds this Numeric to the given precision, and rounds a half to even.

Implements Numeric.

virtual Numeric::Ptr ATDecimalOrDerived::sin ( const DynamicContext context) const [pure virtual]

Returns the sinus of this Numeric.

Implements Numeric.

virtual Numeric::Ptr ATDecimalOrDerived::sqrt ( const DynamicContext context) const [pure virtual]

Returns the square root of this Numeric.

Implements Numeric.

virtual Numeric::Ptr ATDecimalOrDerived::subtract ( const Numeric::Ptr other,
const DynamicContext context 
) const [pure virtual]

Returns a Numeric object which is the difference of this and other.

Implements Numeric.

virtual Numeric::Ptr ATDecimalOrDerived::tan ( const DynamicContext context) const [pure virtual]

Returns the tan of this Numeric.

Implements Numeric.

virtual XMLInt32 ATDecimalOrDerived::treatAsCodepoint ( const DynamicContext context) const [pure virtual]

Treat this decimal (must be integer) as a codepoint.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/classxercesc_1_1StdInInputSource__inherit__graph.png0000644000151400015140000001372711653571064025031 00000000000000‰PNG  IHDR»ÃUƒ÷‘bKGDÿÿÿ ½§“ŒIDATxœíÝyXSWúð“@öE¬,ŠÐj;>3u¡ ÖŽ­¨P6­:‚£‚5(R-ÔqJ]:>.«¶öe´ODµ 5 VAD(" b01ÛùýqýŘM‚I™÷óøÇÍÉ=‡÷žûõÞ›†1F¼´Qú.üÁ@bH ‰dC;Ü™3g¶nÝ:´c‚WqòäÉ¡pˆÓÝÝ]YY:´Ã‚Ahoo¯­­òa‡81”üüüáÉÏÏ òaá:Ä2@È@bHŒ—/_f0Š–²²2##£††„FóððPywΜ94­¹¹ùu×úÚAb4˜Ÿ_SS£ŸZ_;HŒf›6m²¶¶Þ°aB(11ÑÁÁaýúõŠ{•@ååå3fÌÐC•z‡‡Ãyá˜eeeŽŽŽ<cüã?zxxŒ±X,f³Ù¶¶¶666l6[,755!„*++ÇW]]ýå—_Ž7ÎÚÚ:::šÏçS£©÷———ûøøO˜0áСCc‰D¢±;õ'Ô—1Æ¿þú+ƒÁøúë¯í¡œœwww¹\NµÌ;7''!ÔÔÔ¤­$ª—§§§µµujjê¡C‡Þxã±cÇnÚ´‰„Ïç/^¼ØÊÊÊÉÉiݺuB¡Pyó'Ož¼téRjÍG™˜˜Ô×׿ú¾=$c¼hѢŋwuuÙÙÙÕÕÕQÛ¶m[¸pa[[—Ë2eJbb"5esæÌ9uêTJJŠ··7—Ëmhhðóóc³ÙÚz cc㌌ŒÎÎΜœƒ!vìØ¡±{___VV–ú2%11!´uëVåF„Ðo¿ýfooùòeª×èÑ£r䈷··"¯¯¸/Hé'1|>ßÙÙÙ××7%%EÑèééÙÙÙI-ŸM˜‚ƒƒ333±Rb4–¤¸Wãr{{;BH(R\.—Åb)o>ÆxåÊ•«V­êéé122jooaý#*1mmm¶¶¶³gÏVþïëì쬘G>ŸãÆ å WW×ŠŠ jùòåËŠ3…z¯Ç×ÔÔ`ŒŸ>}ú4B(--ZGÑ®±¤&†ÇãEGG[YY988¬]»VñXIyêV¬XabbÒßß?Tûbôv!)))""â%W¦}1,ï¨CN$Ý»wï»ï¾ËËËÓo%ðœïC]]Ý{ï½·téÒ™3gê·8Æü1̘1ƒÇãé» „àHAbH ‰d 1€ $F³ºº}—` †åÑõ¬Y³†cØ×F,6úý÷q®®·õ]È+éîîŽa‡81ãÆºno#š˜˜Ø°XR}×2x–––žžžC>, ÷š©™:uk[[ïçŸÏf³?Ôw-®cT]¿~¯­­!TPpQßµ"HŒª¢¢_™L:B¨½wåJ›¾Ë18˜çÈå˜Ã¹(‘ÈB ½´´^ßHÌsêêZx<µ,•Ê •Éäú-ÉÐ@bžSRRÏ`<›oà—_þر‡$æ‰DVZZ/•>;¨0ô’’Kz,ÉAbž9sæ¦@ðD¹E*••—_‹ÿÀÏÊ 9HÌ3ÅÅ—ètšJããÇ¢êêßôRa‚Ä<50ðä§Ÿ¸ê×¹£F**‚Ó3˜§*+¯SªUÈdò'ž¨ßõ¿ óTIÉ%m¯—ˆÅÒ“'¯½Þr $!„úû…ÕÕ7u¼ÄVROå=¯D"„Г'Ò®®‡Š›••×7o.þå—MŠ:}”³³¥>J38ðé„26fŒo¥¸ic3!¤Üà¬È@bH ‰d 1€ $Ä2@È@bH ‰d 1€ $Ä2@È@bH ‰d 1€ $Ä2@È@bH ‰d 1€ $Ä2@fðß8TYYÙÒ22謱±!tàÀ}2\]]]ÙÖøå-mF2f2mõ]Å0âp8ƒÞï¯ô­f¡¡¡ùùùCµàõ ÑT¿åš\Ç2@È@bH ‰d 1ˆF£577ù°€ÍfO˜0ÁÄÄÄÃÃ#99Y$ ù_yý 1C¦¥¥ÅÚÚZq3..®¾¾¾¨¨¨­­-''§¬¬,!!Aå HÌ‘Ëå½½½Š›¥¥¥©©©S¦L±±±™>}úž={ÊËËõXÞPÞÄ”——;99ñù|„P^^Þ›o¾900€’H$ vvv¶¶¶ ‰¤¹¹™F£UUU¹¸¸œ>}:99ÙÅÅÅÆÆfÑ¢E}}}Ôhê½B¾¾¾,ËÕÕõðáÃ!©Tª±;õ'Ô—•Ñh´~øÁËËëOúÓöíÛk–••Mœ8ÑÖÖ6>>þÉ“'‡š:u*BÈÞÞžj;vìþýûš>}úÝ»w©å¾¾¾Ï>ûÌÚÚÚÙÙ™Íf‹D"zN†×«¼®úÂÕ-Z´xñâ®®.;;»ºº:ªqÛ¶m .lkkãr¹S¦LILLljjBÍ™3çÔ©S)))ÞÞÞ\.·¡¡ÁÏÏÍfkë%Œ322:;;srr †@ رc‡Æî}}}YYYêË¡¦¦&ÅrHHŸÏÏÊÊBõööR…ݺu«¶¶ÖÝÝ=%%…j¤º(–•1Æ?ÿü³“““±±ñ¬Y³vìØÑÚÚª¸+222 àöíÛ\.wÒ¤Iº$“îôj¯+ {bø|¾³³³¯¯oJJŠ¢ÑÓÓ³³³“Z>yòä;ï¼CÍ—ËÅOœ8±¸¸˜º÷úõëŠeõ^<Édîܹ“ÏçËåòGÉd2mݵQILuu5ÆX,SíÊ…aŒ9Ž»»ûË$c,•Jkkk·lÙ2iÒ$:þÃ?P#ÓéôÆÆFjââbÝ’ΉîņŸŒñ–-[ètzww·¢…Åb)çÌÍًͩÅÔ½ êã¨÷Ÿ={6$$ÄÔÔtÚ´iÇ×Ñ]•ÄܼyS¹*L(RW¯^e±XÊ;øÖ­[ê‰yyyR©”º)—Ë7oÞìää„1nooWËåêpsòÂí}•Ä û•o{{û¾}û×­[§h´¶¶Vì$>Ÿ_[[Kµ3™L„££ckk+ÕråÊ•ýë_Úz …B¹\^PPÀãñ–-[öñÇóxÆ8""¢¡¡ºI£ÑfÏžM­oggG§Óo-º}û¶“““ŽIç„hcax#—Ë—.]———WYYYQQAµ/X°`ãÆwïÞår¹~øaZZšr¯èèè/¾ø¢±±±±±qõêÕŠ Fõ^4-((¨¨¨¨¿¿_,3™ÌÑ£GkëþðáÃììlõå—±fÍšæææ‹/&%%EEEYXX „:Ôßß¿gÏå5BÈÌÌlÑ¢EaaaÇŽkii9þ<›ÍG1™Ì°°°øøø;wî466nÚ´)22RÇ€¤sòò5Hƒ>:½ÌYiïÞ½o¿ý6u\-))qppàñxãþþþ%K–XZZZYYÅÄÄ (–E"›Ívtt477çóùT»z/Œ1‡Ãqss322òôô,++ÓÑ]ãµV;+©,Skfgg?ÞÚÚ:..Ž:¡lݺÕÂÂÂÍÍ­¬¬ŒJ"‘¼ÿþûfffTw©Tš’’âëëkbbòÆolذAq&âñxÑÑÑVVVk×®Õ6à çD7ôjg¥Áÿ²è§Ÿ~Šñï¨jnnöððô, Æáp¨Ý7ð  ‰y±cÇÆÆÆê» ‰y[[ÛŒŒ }Wa@ 1€ $Ä2@£Ùƒ}—` ^é3‘---#òÃÉ"‘ì?ÿé qÒw!iÐÏàÏ]›˜xÙÛ¯¦ÑŒõ]ÈpÑÏ«#XHÈþóç›vî ‹ˆ˜ªïZ \ǨêíÔÕ5#D+*º¤ïZ $FUii=B4„pmíí®®‡ú.Çà@bT\”Ë1BˆN§•—_Ñw9óœ»w{:¨k;™L^PpQßHÌsÊÊ.ÓéO?‚1ºv­£¥¥G¿%HÌsŽ­“J力L&½´´^õ HÌ37nÜkm} Ü"‘ÈàĤóLII=“©:!wïö66jø´Àÿ,HÌSãüü‹‰\¥NL* 1O]ºÔzÿ~¿z;ub¢o‰Q()¹ÌdÒ5ÞÕÓóèÂ…‘ù]׃‰A!™L^^^/“a##†ú?„PE<•÷Ô+½ÛaÄèë{¼b…¿âæ­[]W×­›­h±´4ÕG]†^»Ö ¼üÊŠßß»·Kß…"8+2@È@bH ‰d 1€ $Ä2@È@bH ‰d 1€ $Ä2@È@bH ‰d 1€ $Ä2@È@bH ‰d 1€ $ÄBÊ?¶¤ïZ “i=fÌûú®ÂP„††*‡Dõ{ðBCCßzë-½Tfxô]€þ¨´¨&æ­·Þš9sæk*¼3gΨ´Àu ‰d 1€ $Ä2#01B¡0===<<|öìÙQQQ¹¹¹b±Xw—ŽŽ„¿¿G‡®_Szá ƒ3ˆšõe&fÏž=MMM[¶láp8ëׯ?wî\FFB¨³³sÞ¼yú®î)•b´Õl€F`bΞ=»|ùr __ßøøøsçÎ!„äry¿†_PÒ •b´Õl€ÈsþüùG!„ªªª¢££E"BH*•fddÌŸ?þüùR©”:Î××ׇ……]¹r%777,,,88855U P£©÷¢þIJeË‚‚‚"""Nœ8’Éd»+N%*Ë£G.--Uì___‡ƒZ¹r%BhÁ‚!¹\~ôèÑèèè>úhõêÕ7nÜPßXÿÊÊÊÅ‹òÉ'G}™¨2Î;=þü½{÷J$u*££f„@ øæ›oæÍ›šžž.‹58è 'E–˜¿üå/ï¾ûnZZŸÏOKKûâ‹/X,B¨°°°³³333óÛo¿­¯¯ÏÍÍ¥ÖÏÏÏOLL¼zõjMMMjjê®]»ÚÛÛ9BÝ«ÞK$¥¤¤S»sûöí"‘¨°°Pcw 6›­¾œP__’Àápº»»©öýû÷#„Š‹‹BEEE'&&æðáÃÑÑÑÚNgÏžMKK‹ÍÌ̤þŸ¼Ì ¥¥¥©©©_ýu]]Ý?þ¨qdåbtԌڽ{wOOOFFƶmÛ.^¼˜——§c‘N¸Ž¡´!>+ÅÅÅÕ×׳ÙìyóæyzzR?ýôÓš5klmm]]]ccc/\¸@µÇÄÄLž<¹ªªjéÒ¥®®®&Lذaƒ···¶^‰c, ŒŒ>üðÃŠŠ ccãcÇŽiìnjjú·¿ýM}ù½÷Þãp8»wïöññùùçŸ#""ªªªT¶¢¼¼|ÅŠÓ¦M³²²òó󋉉Ѹ±ÁÁÁfff³gÏFi<£i\áÿø‡³³³——×ßÿþ÷“'O¾Ì¬j«Y*•ž:u*..ÎÁÁÁÕÕuÉ’%º$ð—©Mñ/r™™™Í;÷ûï¿ÿöÛo]]] .TÜ45}úûU...¡îîngggªeüøñãÇ×Ök̘1»ví*,,ÌÍÍ}óÍ7#""üüü´u×H$?~æÌ™^^^^^^ÑÑÑÌÈÈxîeÅžžwwwÅMWWW£Y[[#„ ­³¤qEµ...==ÏýÀºÆ7訙ÏçËårGGGjM'''Ý’N¸¶íÒ81÷ïß/))y÷Ýw÷ïߟ””D5š››ïÚµËÉÉ !$x<ÞÓÑ „••UWWׄ BÍÍ͵µµQQQ{=yòD.—§¤¤H¥Òªªª¤¤¤ÒÒRmÝ5ÂoݺÕÅÅ… FûóŸÿ\QQ¡²š½½ýíÛ·ÝÜܨ›­­­G£ÑhºgCã ¿ÿþ;Áööv+++ªQ&“Ñéô¨¯¯£fKKËQ£FuvvR{ýÞ½{TFµ H:ặN#²³Æxûöí ,ؼyó¥K—Ο?OµO›6-++«»»»¥¥eýúõ¥¥¥Ê½‚‚‚²³³ïܹsçÎÝ»w+NÒê½h4ZBBBMMÍÀÀ€D"a0ÆÆÆÚº ;vLeÙÄÄ$((諯¾ª­­íìì¼víZzzºòF("„>ùä“ôôôsçÎñx¼ .|÷Ýwƒ˜;möíÛ×ÑÑñÛo¿eggÏš5ËÌÌ !tâĉÇ+.\”‹ÑQ3ƒÁð÷÷ß³gOggç;wrrru H:áƒØ:²cLiii___xx8ƒÁX»ví¿ÿýoŸ1cÆ,[¶lß¾}Ë—/§ÑhÓ§OUÎ~dd¤H$JHH‰DS§N¥ÚÕ{mܸ133óþýûŽŽŽÉÉÉFFFÚº÷õõíܹ“º|Q^^¿~ýádz²²:::,--ýýý?ûì3„½½½ÏÂ… ?,‘HÒÓÓ{{{ÝÜÜ6oÞL=xëÖ­‰D‘‘‘FFFË–-Û¿ÿ‘#GV­ZõßÿþW¥5#„Ö¬Y³oß¾+V0™Ì>ø@Û€Ê^~±uÏýN$FKNN†÷Ç ZGGGTTTuuµ¾ 2_}õ•M~~¾¢e>ƒ†$f(™šš~üñÇú®bxAb†’……Å矮ï*†$Ä2@È@bH Ÿ»ºéúܵò“ÁPoœ ÐàЈÀu ‰d 1€ $ù?±’žÓ±ŽÁIEND®B`‚XQilla-2.3.0/docs/simple-api/XQException_8hpp__incl.md50000644000151400015140000000004011653571063017535 000000000000007a3db843e0da0d6d5c60d552df82838eXQilla-2.3.0/docs/simple-api/functions_0x78.html0000644000151400015140000001735211653571063016316 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- x -

XQilla-2.3.0/docs/simple-api/InteractiveDebugger_8hpp__incl.png0000644000151400015140000007230011653571064021360 00000000000000‰PNG  IHDR¨Ãø«{bKGDÿÿÿ ½§“ IDATxœìÝg@Y×ࡉґª©¡AEAD:"ˆØ{W,«®»¬kà –U°¡®‚¢Š€¡‡Þ{ ÒóýÈ~Y^J¤„8ϯììäÞ3ãr29s¯NG깜‰/ ñÃ$¾`Xæv°“££#·CœsäÈkkknG€o@â †”ˆˆCCCEEEnÝ—/_6lØÀí(ðH|ÁPãîînccÃí(À ûòå ·CÀg Æ ø€a_0,@â †H|À°‰/vlmmËË˹@yy¹­­m_ßeÛÁÒ¥K}||šššØÞ {qýTAâ Àÿ¨¬¬œ;wî 6+!!±lÙ²~4âëëûòåË   àñx//¯ÖÖV¶† eøð?h4‡Ôf¥¥¥½¼¼úшŒŒÌèÑ£åååMMMOœ81f̘   ¶† eø‚aÍÖÖ6""bÕªUsæÌyúô)‚ [¶lAdÁ‚Œ(Ê­[·æÏŸ?þü[·nQ(F ARRÒ’%KÒÒÒ~üø±aÃggç… >~üA*•zÿþý%K–Ì›7ÏÇLJqS¶c³Ì"„#GŽÜ¸qƒÑ™Lvssûùóg·v\@@`Μ9ŒýY¼%""bùòåóæÍ»té‘HìXÿÀ|M§ÓƒƒƒW¯^íêêºgÏž?~ØÚÚv»±7'¤Sœ nnnÌN¿}û¶bÅŠùóç_»vL&w»‘=ÿÀ@ø‚áîëׯׯ_߸qãíÛ·[ZZ™è«W¯ÿ÷Å‹•••·oß¾xñbRRÒýû÷ÛŸ?~ðàA•cÇŽéêêlÞ¼ÙÏϯ©©éÅ‹ÑÑÑ>>>—.]*-- @¤S³ öööQQQt:AøøxQQQ333v¢ªªZQQÁ:ÎÐÐÐsçÎùøø$&&>|ø°ÛvBCC=z´uëÖÇ{xx\¿~½§¿}úäìì,$$Ä¢Szz˶mÛTUU Ö¯_Ùí{_¾|¹iÓ&333iiéI“&­Y³¦§¿>îÜ < _À[Z[‰LijjijjiFFyaa-F—’…F«ZXh{yY¯ª©© (Èj¹5€® ñ\F$RÒÓË1˜’””ÒÔÔÒ¼¼j®ª*kl¬:kÖøñãUÑhµqã`[ $¾€ JKââ Š‹rrªÈdª”Ô(u´©©º‰‰º‚‚d?š¥Óé055z‰/à …–™Y__]Ý,,,¨¯?fòd ¬MMÇik+ô§z¡º—šZ’’Ršœ\œ’R*&6þÑ£Goß¾eû! *:]F"r£kMTHˆÀ±[[Õ……[EE›¨,v#FS(£DDZEDZYí ô$¾`°´·“‹~þ,ˆ‹+HN.Á㉲²â“'k¬^m9y²¦‰‰š¸¸h?šmi!¤¦–¦¤”¤¤”$'—TV6 ¢Pʦ¦ênn&OŸŒÉgI/‚ÅÊ Óǯå|ïâÅÅRÚÚ8EE<º£RÒÒE ’Œ AF†(!Aìr§¾¬L¢ªJ‡@FޤHHÅÅIdII² A---555Ä `È€,;1’Ýïßó¿ÏKN.&“©(”²™™æäÉ“'khiõç¶nss[\\!SŠÁ”a0¥ÕÕ8AA¥)S4ÍÌ4Ñh5mmEaa¾¬p Ri—/‡]¹nc£ÿ×_Ëäå%¸í[‘çνŸ6MçòååJJRè´­”˜X‰Á¦§— ªXY¡fÌ@™›k‹ˆ1÷Äã‰åL[•“S•’RB&S•”¤Ðh54Z…RF¡”õô”93€!_0Píí¤„„¢?þKv54ä§MÓ™>]wÚ4]æDc½G$RRSKi.S–Ÿ_C¥Ò$Í͵ÍÌ4ÑhUCC ‰þÜ-æ)ÅÅõÛ¶dfVüñÇ<óþUz°KJJÉÖ­8\û_-ut4âd×õõ­ß¿çÅÄ`££±%%õbb#&MÒ˜1ee…?^µÓi!“©µÌoA©©¥$EZZ …Rb¤Âh´ ¥ÄÝ“ €gAâ úƒN§gfVDEå|ù’W@"QÆŒ‘™>]×ÒR×ÒRGEE¶¯ âñĤ¤â¸¸‚ØØ‚””’ÖV¢ˆˆ‘‘ ãY·ó¦/~ûí¥ººÜõëž(Oܰ$ȧN½½{7zÑ¢Ég苉à| ÅÅõqqññ…™UUÍòò:VV(kk=5µÑ]÷ï”c0¥D"EJj”žž2äÁº‚ÄôAmmKttNTTNTTNmm‹’’”¾µµž©é¸~Ì8VW×_›W˜ž^F¡Ð””¤§NÕœ}:ŠÛát¯¶¶eÏž'ÑÑØ;vïžÉõµB¨TZFF9£"6¶€D¢0“`}IÉ‘=½‘±À53NK+#È’’#õõÿ˃uu•¸~€8_Ð=ŽðåKÖÇé‘‘ÙMMm(”²­­¾µµž¹¹öÈ‘"½o‡H¤ÄÅÄÅÄÅ&'·¶¥¥Å¦LÑd<šfl¬Ê•ŸÔ9L¦þùgðýû1s昞9³HJj·#b…N§ß½sòdˆ™™ÆÕ«cÆÈp;¢1 Ê{óT\Wòàôôòöv’„„¨ÁXȃ`˜€Äü‡N§§¥•…‡g„‡g¦§—5ÂÎÎÀÁÁÐÎÎ@N®0æaˆ‹+Œ‰ÁfeUÉT5µÑS§jM™¢ef¦©££($Ä—“0ô[AAíÖ­òòjNŸ^èînÆípz+'§jëÖGee §O/Z°`·Ã鬡ÿí[nL 6.®‹­býT\WòàŒŒò¶6’¸¸¨¡áyð0«0´Aâ :žœ\òþ}Zxx[%##fggàäddcc %ÕãïÈH”„„¢ïßó¾~ÍeÎí`föï]]Ýá[Xéï}úôÛñãU}}=»}B‹—‰” >ܼùÙÕuÂùó‹yöFunnõׯؘ˜Üïßóp¸vUUYKK]kk=++T/¿³Q©´¼¼Îy°ˆˆ¦¦# F£UMLÔy­&@Ÿ@â;|Q©´¸¸ÂwïRß¿O«¬lÒП5k¼ƒƒ‘™™f/§Å¥Ph))Åß¾å}û–›PD µµ--u¦MÓ:U‹33Âò²†ü¾}ÏÂÃ3vírܹӉO'F$&»cÇcÁk×<§NÕâv8¬P©4 ¦ìëW,ãN0…B?^ÕÚZÏÚZòd ÖµTW73çÔ‹/ljjë”O˜ >$Ÿ¿€! ßa'††b""2£¢rZZ“'k¸¹™89©«÷jZÎxÒè۷ܸ¸B<ž¨®.7mšŽ¥¥ÎôéºJJÒƒ?¿ˆˆÈÜ»÷©¸¸¨¯¯çĉã¸Î@54à÷î}‘¹i“­·÷¬>eÜÂX(›Yº#""4eŠVïk!:é˜'$56â!¾‰ïpA£Ñ¿}Ë Š ËÀáÚ'LPsqA»¸ µµ{óöêêæ¨(lTTvt4¶¾¾UYYš1kï´i:|÷óý`ko'ýþûëÀÀŸæGÎa1íß Š?|ø% ¥äëë©©©Àípú€¹LƧOY••MÌ‚ û÷m­cœ”T\_ß*,,¨¥¥È̃Ñhµ>= € ñú22Ê_½J|ó&¹²²yòd W× ..hUÕ_¯1õGEå0æR-.®—”ic£Ï˜Fª³öå[·ÔÔàÎ[<{ön‡Ã~%%õÛ¶fd”:äº~ý n‡ÓÅÅõááááqqD"…Rvt4š15uªV¿Kx;æÁÉÉÅuuóàñãUG˜/ƒÄwÈJK+{þ<þý{ #ßuw7suE÷4óGEEuaaŸ?gÅÆæ‰ y[[}}KKÝa2õXÿÐhô›7?Ÿ?ÿaòd«W=ÆŽå•)ÀØŽB¡]¹vùrøÌ™ÆçÏ/îÍ âM8\{L –± Kiiƒ¬¬¸•ÊÆFÏÚZo€3¸ũSRJjk[„„µµÿ˃‡ÏD~ÀS ñjŠŠê^¾L IÅb«44ä.œ4wîD_Ô3P©´¤¤â°° ÆÄ#GŠLŸ®kkk`k«¯¡!Ï™ÈùZUUóŽccó³nÕp˜Â"1±hûö@<žxéÒ2;;n‡3Pùù5Œ øÛ·Ü¶6’Á[[ý©Sµ^ÐÜ1NM-©©iTU•E¡”©°™™¦ŒŒ[ ød2õãÇô'O~FGcÅÄF¸¸ ,˜4mšëYHkk[>~LÏ`|Ø3~óut4œ4I¦/í½7o’RQ‘¹~}…¾~ßV³ãk--„ß~{ùòeâÚµVGº ©¾Èdjll~ddvddvvv¥¸¸èôéºvv¶¶½)êŽy0SZ]CDIIŠY­  'øò«ÆFüãÇ?ƒ‚% æ‹™±ž:·¬¬14ŠIH(9RÄÎÎÀÉÉØÎÎ`ôh¸·Ôññ…Û·‰äK—–ÙØès;n*/oܱ#0)©xß>çÍ›í†Þª¿4==½,&ýù3ŸN§›šŽsr2êßÌh¬ápíÙÙ•Ì<87·šN§w̃MMÇÉËC ý‰/ÿIO/ÿûïooÞ$‰ÃeËÌmmõ{ªL Óéññ…!!©ÅÅõJJR³g›¸¹M€b† Ri—/‡]¹nkkpñâRÈB¡Ñè÷îÅœ8la¡såʲ!<£sc#þë×ܘlDDfUU³‚‚¤µµž££‘µµÞ`¬l÷ËVãpÀCXSS›·÷óÐPÌîÝN;v8ÂsÖ"#³wï~,)9êúuÏá6srª""2ÂÂ2ŠFŒš2EËÑÑÈÙy<»&…`¡µ•˜™YÞ)––cdÀŒ[Â(”Òp˜nº‰//"‘(oߦ޿“˜X¬««´v­Õ¢E“»½sF§Ó¿}Ë ŠÿC&Síí ,˜doo(*:&–âß¿çíØH§#W¯zXZêp;þPW׺gÏ“/_²wîtܵËiþæP_ßúùsVDDæ—/Ù--„qã䌜œŒÌÍ÷60OÌÈø/Îϯ¡RiRR£ôô”! Oøò<žøèÑÛ·¿ÔÖâìí ×­³²²Buû±TUÕüìYÜÓ§±%% ––: Nž5 ÍÆ)–™LýóÏà{÷bæÏŸxúô"8Ã}B§ÓþþûkCñ¾¾žÃv¥k"‘Wýð!-?¿FFFŒ±ô·““1'ŸKcäÁXluNNSš’RB&S¥¤FêéaæÁººJCoR`‚Ä—W46âïÝ‹¹{7†B¡®\i¹fÍt•n~mo'½|™ŸP4nœ\of1ý–•U¹mÛ£òò¦ó绹™p;~…ÅVmÝPRRêÔÂE‹&s;.+.®ÏÏøù3ŸJ¥«::::±}Z´_"“©µÌu4RSKI$ФäH}}ȃC$¾ÜWPP{ùrØ›7Éòò’›7Û.[6µÛª†‚‚ÚǾxߨØfoo¸lÙT;;ƒaøó1gÐéô»wcNŸ~;a‚Úµkž¨ÎÚH$ÊùónÞüìê:áÜ9wiiXž©®nþô)+<<#&ÛÖFÒÐg<gn®Í•5ð:åÁL)‘H‘50 y0`Ȁė›0˜Ò‹?~ú”©©©°c‡Ã¼y»VþÑéôèh¬Ÿ_Tdd¶¦¦üòåæ‹™Á´ƒªº·{÷“oßr½½gmÜh+, ß.ØãëW쎅„¯^õ°°Ðæv8¼‚H¤|ÿž‘‘YZÚ )9ÒÖVßÙy¼!KkºÍƒÅÅE ÿ̓õô” ÆÂSžþ‰/wdgW^ºöî]ª¦¦Â¶mö LêúùÑÜÜð# àGyyã¬Yèu묦LÑâJ´ÃJxxÆÞ½O%%Gùúzššªs;œ¡‡k?xðEppòš5VÇŽÍ´©“¬¬ÊððŒÒRSK……-,tœÇÏœi4fŒ w£Phùù5Ì<8-­Œ@ ‹ˆij*üÿüÁª&&ê\¹W ½‰/§åç×\¼ø188…RÞ³g¦‹ ºëO‡¹¹Õ~~Q¯_' yzZ¬Xa¡®>LŸ ⤶6Òñã¯zx˜;6WBbXL@ËAAñ‡¿ÔÑQ¼~}…––·ÃáEMMm11ØððŒÓ™3B¸¹M03Óä…I:åÁééåíí¤Nyð„ ê0½ €×@âË9™™gφFDd«9âfe…êº[uùrøÛ·)JJÒkÖL÷ð0‡jHÎHO/ߺõQ]]ëùó‹]\ÐÜgè+-mض- -­ìðáÙë×Ïàv8¼‹1#DXXÆ»w©UUÍrr¶¶únn&ÖÖz¼s{•J¥ååý—gd”·µu΃Ñhµ‘#E¸)`¸ƒÄ— jÏž }÷.U_Ì.†]ïÙääT]ºöömŠŽŽÒ®]޳g›@i)gÐhôK—>^½ae…úë¯eP?Í1 íöíÈsçÞÛÛ^¸°dôhqnGÄërrªÞ¾M ÏÄ`JG1}ºîìÙfÎÏk³ìũ±Ø* ¦¬¹¹MXXPKKò`wAâ;¸ª«›¯^ýøCAArçNÇ%K¦t-jLN.9sæ]L ÖÄDýÐ!×nïƒARYÙ´sç㸸Â#GÜÖ­³â…‘‡›¤¤âmÛðxâÅ‹K ¹()© ûwN4>qâ877WW4×K{R]ÝÌ\G#!¡¨±ß)?^uÔ¨Ü0ôAâ;Xðx¢¯ï§Û·¿HK‹íØaïáaÑõwÉÂÂZŸw¡¡==å]»œ\]'ÀTAœôÏ?I‡©¨Œ¾qc…žž2·Ã¾ZZ'N3ª«ÿøc$@½W]Ý–ññcú·o¹ ÍÌLsæLcgçñ<¾VHÇ<81±¨¡/$$¨­ý_ll¬*&ÃÀ~ø²•J{þ<îìÙP<ž´e‹Ý¦M6]?Èq8•+awïÆhk+ìÙ3sÖ¬nqƒ‡kß¿ÿù»w©›7ÛíÛç àð‚·oS½½Ÿ+*J]¿îid¤Âípø OŒŒÌ KˆÈljj34ë₞5 m`0†Û¡ýZÇ<8)©¸¾¾A%%)fQ„™™¦Œ <í`H|Ù,$$åìÙÐÒÒ//›­[íºþ±&‘(~~Q×®}’”yìØœÙ³'ÀÏëW°}{ ‰D½reÙŒzÜü§¢¢iÇŽÀ„„¢ýû7o¶ƒoƒý@¡Ð~þÌ Å¼Ÿ^]ݬ©©àâ‚vqA›˜¨ñËŸšŽyprrq]]ç '++nooÀkÓAôFÇ<8%¥¤¶¶ùß0Ð{ÙÙ•[·>*/o:sfѼy»îÀ˜Ø Ö¿è%ÆÃp!!) E#GŠ0¦ƒ˜5 Í“Uw̃SSKjj:çÁ¦¦ãäå!tß I9vì5‘HÞ³gæªU–Ý®9üüyüñão”•¥ŽcggÀ•8‡‰ää’eËn}ø°GCC¾ãö€€þùFKKÑ××¾uð"‘ròdȽ{1 NòñY$.Ÿxq IDATþ_ŠF£Ñ.ô2EëÐ!W.FÈ**š>Î Ïøò%[PP`Æ =GG#gçñü›)ṽ±Øªââzäóà ÔaŽB$¾ýWRRøðËÈÈì%K¦=ê&+ÛMÍYUUó®]O~üÈÛ¾ÝaçNG¸A5¨ðx¢µõ™ÊÊ&cc•wïö0&BnlÄïßÿüãÇô]»wît‚Ù‘ùKTTή]EEE®]ó03Ódlôõðñ @^¼Øjn®ÍÝùTSS[xxÆÛ·©QQ9T*1!š›Û%%þ®-innËÉ©ê˜ #ÿ›£ÑjJJRÜÀ5øö‘H¹páÃ;_ŒŒTÎ[llÜýèáá»w?‘““¸ys¥¡áX9 mÞüðÝ»T …&,,¸i“ÝáîŸ?gíÙódÔ¨¾¾ž“&ip;@Ðuu­{÷>ŒÌÚ¹Óq×.§””’yó®R©tYYñèèƒðœÓ@´·“¾~Í Iùð!­­dl¬êèh8þ¤¡±”4מ]É̃ss«étº’’ ¥ŒB)3Ra˜Ê€aß>ûò%ûðá—õõ­GÎY¾Ü¼ÛÏ)Ú‰ÁþþÑK—N=qb><ÄÆ¯^%nßÀÎÈÂ…fÿü“èèh«‚ñ;~ûö—³gC'MÒ(,¬©­m¥Ri‚ ÙØè?|¸žÛ--„ÏŸ³BC1Ÿ?gµ·“&OÖœ3ÇÄÕuÂPº?ŠÃ²³+:åÁRR£ôô”™·„Q(%~™þÐøöAUUóAáá‹Mþí·Ù=ý&X_ߺqãßiie/.={‡ƒž kííωdæp:rdö† Ö\ °MFFù’%·p¸6 …ÆÜ( pö¬»§§brTTNpprXXF{;iêT­9sL]]'ðopO:åÁyyÕ4]Jj¤žÞ¶äÁ±±_¿b·l±ƒ5YàøöÖ«W‰¿ÿþZXXð?æÏ™cÒÓn99U·Gqÿþ:xˆŠ3Èdª«ë¥¬¬JÆ]@&aaAGGã»w×p+0À^ÁÁÉ›6=ìº}Äለýp¹±•JKL, I}ý:©¾¾…RvwŸ¼páä¡:Ç\K !+ëy°®®Rï§—¾~ýÓ©So••¥þüsÜ€G@âûkøƒ_„„¤,_n~ìØ\)©‘=í™”TìéyGGGéÑ£õÒҰ·\¼øáÒ¥0­›‘, påÊòE‹&s>*À^ååÖÖgÛÛI]ÿd êè(~ü¸$T*íû÷¼  øÓñxâ¤I½n׮LJÍæÇz‰ÖVbffy§<À.Ÿ>e­]{—B¡ t,ðíHPPf7ã"‘Ü ‚‘ÏkÚ)¥;y2ÄÏ/ŠJ¥ œ9ã¾|¹9·f»¶6R^^5sê´””2™*..jh8VOO…RÖÔ”_¹Ò¿Ó'¬ˆˆÐˆ»v9zyÙÀ'\‰o÷¾ÏÛµë1O:sf‘›[½ µ..—Ì͵ýüVÃß2NÚ²åÑÛ·)2¡#„I$Џ¸¨““±³³±¥¥.Lé0‰”¸¸‚èhlh(¦°°VHH€NG:Ö· ÊÊŠEEÁìfE cb°!!)ïß§dÆ|ÀóæM”—— Ri&khÀ3ö@æÎø×_KGŽáñ‡kÇ`ÊÒÒÊ0˜Ò´´²Âºž>[5µÑ§O/²µÕçpœH|;#‘('N„Ü»ãà`xþü’_.ùƒÃµ»º^–•ñbˈœ  ÿÎ_ÈÀBB‚t:NGôô”]]ÑŽŽFFF*sCIqq}L öÇ´˜,™Ld|ù´µ5øûo˜ÝŒ ššÚ>|H Nùú+,,dgg€B)_¾Ž ÿ}Ä êê*=|¸AUU–‹¡r@K áäÉà§OãÈäî‹s„„©Tš½½á©S ÔÕå8Ã$¾ÿ£¦¦eÓ¦¿“’ŠpٸѦ7Oï®]{/9¹äÇ=,žÞˆˆˆ(((`k¤ÃGñõÍ'‘h‚ !ãÆ‰£P(”ÄèÑC¤ºÚÁÁAKKk - ‡QG Póòðyy­Xlk[Û¿ÆÜ¹cLM¡¤›C´´´:nilć†b‚ƒS23+p¸öN™Ÿ°°¸øÿµ––:Œ-œ ·ÆŽÐbCííí‚:eý +(( ""´aÃ4OO3XTrH’••5j·£ÿßÿ|ÿž·eËÃÑ£%nÝZ‰Bõj-Ÿ/vízüËÊÂÅ‹±)L€ ˆ€œÜ!!Y"±€H,"Két2·Cb³gÏž-^¼x - ³Q' "¢(*ª9r¤–°°tmm •ŠãvH»»ûóçÏ»n'‘(††GÚÚˆ]ÿ—  €€rð ëÖ­ö‚|ùòe°ƒì›¼=##£¶¶AíÛÃëëÛºÝG@ Ñþ­Õ45UÞ°ÁD\| s†††ŠŠ0Ó"oŸæA¨TÚ™3¡7n|öð0?yrA/+ÊÊûíåæÍv½yž¦§Ðõõ­µµ-Cxb v-5‡›8qbSS'ƒa}ÞºŽg:âÌu×uÞ•Û±¯þkl™ UÃ(ñ½~ýÓ•+áýµ´O“õvòàÁW33MîÎ///æÌ™¾¾+,,ÌÉÉi0âád§4­¾¾¾ãeeå1cƘ˜˜øùù}ÿþ‡ƒ%»ØOGcx¨¨¨ØÚÚþóÏ?ZZZ—.]âd0¬Ï[×ñ @Gœ¹îºŽÃÁ»r;öÕ¿£c±^´ºº:{›CÉpI|¯^ðñywåÊò%K¦ô»‘úúÖOŸ2==-ØSpp°ŠŠJcc#‚ OžjÔ(*•zþüy %))iiiËØL&ïß¿_IIIQQqÿþýdò¿+jkk+((lÞ¼¹­­­c×Ì×t:ýÖ­[†††RRRvvvoß¾elgvÚ)BÀÀ@ƒÑ£GŸ;wŽÙÔ›7oôôôwìØA$»íËÜÜAeåî”B„B¡t{|úôI]]ýëׯ!!!h4zäÈ‘ZZZ=êé`;ß54öµ´úúFwwwww÷_î¶råÊU«VUUU)))ÅÆÆÒéôÛ·o+**¾zõª¢¢âÝ»wªªª‚äææ2þẾÀáp#FŒX»vmYYY@@‚ 555t:ýÞ½{=¢ÓéýõWÇÇŽËxãÙ³g.\XRR‚Á`&NœxðàAF›vvvX,öçÏŸ:::ÌŒh™¯ýüüTTT>|øP[[®££ÃØÎì”N§3Âf¾^´hQcc£ŸŸ‚ õõõŒ¦œœœ˜}?~¼Û¾:nd4•’’ÒÒÒ‚Ãáòòò,X0yòäžÎã½³fÍúüùsuuµ¨¨è­[·*++ïÞ½+,,ÜÚÚÊâ<0ÞÅØ§cï³gÏÆáp/_¾D¤®®ŽÅtÚÈz$ òìÙ³_Ö`Ôuu ñññ222Œ×ƒÑ{×™oimmí:ä:ç®!Ñ»»^XÏáÚË1ÆZddduu5ë}Y¶l‡ó÷÷GdñâÅ8îöíÛŒÃaq½÷épª««###x8éééééé¿Ü×]·;ôf²¾ˆètº‡‡‡½½}~~>ƒ166>~üøùó猌0LZZÚÔ©S÷íÛ×SÝ^PݶIïað÷æÓ„E¨Žeð®zïÆ6༡Ÿø>}«¢²ûÊ•ð7µdÉÍU«üûñÆ^~<466ªªª¢ÑhæeddôàÁæÿý7ë?…D"1++«µµ•J¥FEE1ÿ@,\¸°¡¡N§£P¨® Òét}}ýÊÊJÆÆððpF› †±ñÙ³gšššÝþÍ266 d¶ùøñcÆvf§ô.ªŸ.$‰±½k_:::½L|™DDD¬­­½t{:öÒÐÐ ""ráÂ…ÆÆFÖÒÒB¥R{s:BäË—/t:J¥þò@:md1 èœM|‡É¨cè˜øFï,ßn‡\§ñÜ5$zw×Ko‚ïhð*'ߤ¤$úÿŸ„ޝsssy½÷òp8™øràºëv‡ÞŒCÖ‰Dbã«W¯tttôôô^½zÅØ’™™ÉxÍâß…±'óu·mÒ{ü½ù4aj§ˆÁ»:èøòª!>Ù§OYû÷?Û¹ÓqLJ6…Ã~üÈ»pa [ë–ŒŒŒ——×üÎØRPP`bbÂÜF³naĈX,vÆ ­­­¦¦¦Œ­­­d2YVVAÒÒÒn,**3æ¿Âeié'“×ÕÕe¼`|Ðvì‹þÿyg~~¾±±1s»¡¡a§N»bÜóùŸÕž;öUVVÖm_]åææ2î·uÔíy`6Ž ˆ¬¬lddäåË—ÿý÷‰':thÖ¬Y,Îã]=ˆ àÿ” u{ ,ŽŽ»†Ï¨C$77W[[{zg­§!×QO!u½^†á@•””Dþÿ$t|°¼Þyöp8pÝu»Ã/Çá//¢êêj*•ʼŽttt'–yª z  Om"=|XtÄbÍvm¯¯Ð'C¹Æ7>¾pÆû«WOß¿¿óL?üø‘G¥ÒÞTOJKK}}}öîÝËØ¢¢¢’ššÊÜ!##ƒu ííí‹/Þ¿RRÒ7?|øàììÌx­¡¡ÑmƒòòòÌïÐ?þdlg|ÍE‹ÅŽ÷ïúÌŒ"ÚòòrÆŽ7®c`YYY:íªÓŸ˜®}1þuí«—º= Œ¿ííí4-((¨¡¡aݺunnn ,ÎCOv»-¿ëö@ºÝÈ †Ï¨£Óé7oÞtuu¤Þy–ºrõR×ëeTX\ï<{8¸îºÝá—ãõE„ ˆ’’’PAAã?óóóUTTÆŽ[TTÄØ’’’rêÔ©žè}›Œ×Ý~XtÄbÍv4´¯ÐÕM|óòjV¯¾ëà`xü8{ædùö-×Ðpl_—yë=¶víÚíÛ·?yò$"""$$Aµk×îß¿ÿÍ›7UUU>|8xð ëFˆD"‰D1bD{{ûï¿ÿŽ HKKË›7oæÎËØaÓ¦M¤õïílùx wy´‹G„„„¤¤¤0ÿóÅ‹Œ‡rz7«º=~ÇßÞàÍ:þí}àØ5P9–øöC?‡“·ýo^wû®:$¾¼j¨•:ÐéômÛ²³+?Þ$/ßÛE )-­ŒF£Oš¤Á®‡ ãéé™””ÔÖÖöóçÏ£G®_¿žÛA!Ž»£Æ<ð©¡6«Ã•+áïßc=òÒÑQdc³™™• ’l̤‡ooï¶¶¶yóæÕÖÖjii­]»vãÆ}jAJJª¯oáMÝÈ9:ž2ðQÇ¿½Üp¨CìpÇ ‡«c˜ ÷}ûàÁúAÊMËË;Vf0œÁ÷¥¹¹Õ¿ýöjãFÃAêâÿ_¸ã ÀÇøûŽo{;iÆÆÆ*‡Í¼^êë[G!%5r ܹs‡]!q‰D£Ré£F q;¾!¨¢¢‚Ý®½> ñݨòššÈ22"ÜêZPP@JŠó ´´´ÞNSS…Bx;ô˵Ð{‰@ TTT°¥)Ûñwâ{üø›šÜãÇ……ñÖuK AJjÔILLä—Y……eÄÄ&ˆ‰¶µeâpQ¿Ü_Bb²¨è¸úú„Ö›öEDEE5Z[ã„ýSé=WPP¼¥å‘XÈöÆùºA%)9D*çúQ”—_F$áñIDb)‡{—‘™9j”F “k(”Z2¹†L®¥Px²%ñbibKKKKK ·£tß7o’=úîç·z°«o[Z’’¢i/æR¥Phïßcüý£ãã ÕÔFoØ`½xñÖ÷¹ÛÛI¾xñ"aëV;oïç½üúqñâÇ—/¾eSàÿ£¢¢éòå°§O•uu•vírrs3Œ^ø_Œ:¸xñÃÕ«^Ó§£¸ Fÿô)Óß?:&FSCC~íZ«åËÍÅÄFp¦w*•VVÖˆÅVa0¥LYrrq]]«°° ––"­ª§§ŒB)Oš¤1z´8gâa༹¼fð€Çñë xkë3¶¶úW¯z v_'NÇÆ¼}»k°;â–†üýû1?kjpÓ§ë®_?ÃÞÞPPðÕYYë×?Àã 7n¬œ6M§÷Ý­\é'..zóæÊEÍJiiõkOžÄš˜¨8àÂõŒpËýû1GŽüsíšÇ‚“¸ËÒÒÊüü¢Þ¼I9Rdñâ)7ÚpeÒ˜êêf ¦ ‹­ÊÉ©Â`Êrs«étº’’­†F«¢Ñj(”ò¸qrœ ¿&¾[¶<Š‹+ˆŒ< )9 ÒÛÞ8x0¨  öùó-ƒÝçefVܺœ",,¸l™ùêÕ–ÚÚ½š®80ðÇ‘#¯&LP¿uk¥²²tŸ:?þèÖ­ö›6Ùô'â¾Àb«.^üøömêäɇ¹š›kv€§„†b6nüÛÛ{ÖöíÜŽ¥55-}»ÿkSS›½½áÖ­vS¦°¡l ßp8BvvSƸ%œŸ_C¥Ò¤¥ÅP(%f*¬««ô˯ÄÀËø2ñ NÞ¼ùÑóç[,-ûp£±ßöï^ZÚÐïõŠy™L}ý:éîÝ ¦T]]nýúK–LéåWˆövÒA¯^%îÞí´s§S_««ËËÍÌþ|õjÇÒЬ¬ÊË—ÃBBR¬¬P¿ý6VãL¿€»ââ –.½åéiñçŸó¹ +$åÍ›ä7>çäT¡ÑjëÖYÍ›7QD„û•’ÉÔ‚‚ZFŒÁ”¦§—··“$$Dµ´;¦Â#GrçY=èþK|kk[lmÏΞ=áÌwÎô¸wï³ÊʦLJÂCBõõ­| øQSÓâà`¸~ý KKÝÞßÂ)*ªÛ°áAYYãÕ«ËûSÊöî]ê¦M³³O‹‹¨lº¯‹Îž ýö-ÏÁÁðàAƒ±œìpXVVÅüù׬­õoÞ\É/w(ãâ ®_ÿ‘©¨(ééi±v­•¬,§ËmY Phùù5Xl[…Á”%%××ÿW"ŒF«éé)«ðTÌÐÿ%¾7þÁ”~úäͱ‡Bvï~RSƒ äïÄ71±èΨÓED„–.ºvítMM…>µœ²oßS]]¥;wV«¨ô³$ñôé·áá‘‘ú÷öЉÁúø¼Ã`J]]':䪡!Ï•0À */ots»¢««àÅ ·Nû¤°°öÞ½¯ÿ¤Ñhnn&Û¶Ù£PÊܪ{Œa ¦‹­ÎÉ©Âb«éX"ŒF«))Iq;Lø|–ø†„¤lÚôðÙ³ÍÓ§ër¬ÓÝ»ŸÔÖ¶xq¬G6êXÕ ««´aƒõܹ¦}-Œ&“©¿ýö2 àǺu3Žu1¢ÿ“,^|SEEæÒ¥eýnaàbb°'NçäTÍkºoŸ³º:<¾3t47·Í›wMXXèÕ«mx`àp„çÏãnÝŠ¬¬lföæp¿}E _¼HøÁ”êé)¯[7cÞ¼‰ý|†ŒJ¥9zãÆç¹sMÏŸ_Ì–gÑ^½Jܳçin¼$“©ÏžÅ]¼ø'¬Z5}ûv‡.O ¸âàÁ /‚‚¶ššòÄ×*¶+)©ôèG@À¶6¢³óøm&NÇí úY"̘K¸¸¸aÀàãÄ·­deå3}ºî•+Ë9ß»¯ï§€€?á|×½TQÑtÿþ×çÏãð..hOO‹éÓuRXSÓ²eËÄ„¢“'xzZ°+ÎcÇþ‰/|ÿ~»d£övR`àÏk×"(Ú–-¶ëÖÍ€yšøÈµkçÏ¿¿{wmÿ&á#­­Äׯ“îÜù’—Wcf¦¹~ý ´Ð ®ÙÎÍÍm̺( þH|Ož yú4öë×Ã22\ø%úáÃïgφfdœä|׿ƒ øñáCš¸¸¨‡Ç€ª˜ââ 6mz(**|çÎêñãUÙ'Ü9WŒÆúø,bc›ì…Ç<øzíÚ'¡M›lÖ¯·†DÞ÷ôiìÞ½ÏÎs÷ð`Û—4×aõcì¸qržž+VL“’Åí¸Ø¦µ•˜™YΘ/ƒ)Å`J‰D ”ŽßÜÜj‡ó'N,X¹rW ÅlØð ¨è<ïü@Ϩjxôè{ZZ™Á˜5k¬æÏŸ8ðj~éÒÇ+WÂgÎÿ×_KÙ[KM¡Ðôô>½pÉ’)llv045µÝ½}çN””Ô¨;—.Ú×u:Ç|þœµfÍÝ;öîuæv,\‘Qþ÷ßß‚‚âED„–,™êåe­¦6šÛA±³D˜Q‘–VÖÔÔ&""¤©©À,?^•+wFü…ßÅ‹oâñ„]Üú‘+6¶`þük))**Jr%€ŽÊË<øöìYlSSÛ¬Yèuë¬ØµÌissÛŽ¿|É>ztκuVlŸ;)3³ÂÁáüçÏÞúúcØÛò ihÀß¼é磻$½m›ý²eS‡ÀÊCLbbÑâÅ7—.zêÔnÇÂMµµ-ÏŸÇùûÇÔÖâìí ׯŸae…âvPƒ«c‰pjjIMM ò¿%Â&¨óÂ_l¯áõÄ—ñL[pðŽI“4¸C~~••ϧOû¹»ÜWL Öß?úÓ§Lii±åËÍW¬°`ã´IIÅ7þM¡ÐnÞ\1H‹ ?~üó÷ß_ggŸæ¯ô±¢¢éòå°§Ocµ´÷î9{öŸNuøÈϯ™;÷ª¹¹öíÛ«økP ÆêÇ·nEfeU«¬\iéîn6LŠ DÐK<ø¶µ‘fÌð±²Bqw½ƒææ6ƒßž<Ùdm­ÇùÞÛÛI/_&þý÷·ŒŒrƒ±›6ÙÌk:%$ºò÷>y2ÄÜ\ûúuO99 6¶Ü‘·÷óÜÜêþÙ>HíªÒÒ†k×"ž<‰E£UwíròOPñ¾šš–9s®(+K?}º Cì$.®àîݘÐPŒœœøŠÓÖ¬±=zxMÖÒBÈʪ`ÔEääT¥¦–’HIÉ‘úúcu(””0<ñtâ{îÜû{÷b¾~=,/?XÙX/éë:rdç7èÒÒ†;w¢‚‚âÚÚHóæM\¿~­ÆÞ.ÚÚHÞÞÏ_¿NÚ½Ûi×.§A½mæätÁÒR÷÷ßç^ƒ ‹­ºxñãÛ·©“&i8àbi©Ã툆)®}þük íõëí0ókOŠŠêîÞyòä'…B›3ÇdË;~©2b;2™ZPP˸ŒÁ”fd”·µ‘:–£ÑªFF*l™´Àãx7ñ-(¨µµ={ôèœõëgp;ÄÞþ¼££áÁƒ®è‹N§ýšË¨j‘[³fº§ç´Á˜Ï2;»ÒËëA]]ëµkžöölo¿#¬§wèÊ•åóæMÔŽ8 +«òòå°++Ô¡C®<²ÇðA"Q<Ý4cÊj»:zôŸÔÔÒààƒÔ~II½Ÿ_ôóçqyî\ÓÁ¨j`"ÈÞÞÏ_¼HغÕþÀÎLÔuÿ~Ì… ÓÓO ±[M11XŸw©©¥³gOðöž¥­=ÐUkþùæþý¯o²°”G0‡<æêÇbb#ÜݧlÞlËï½|‡#dgW0n c±ÕYYd2µS‰°‰‰ú Ý• *^L|©Tš“ÓÙ‡7p;–þøã799>ìÍÛètzDD¦¿ô·o¹ŠŠRëÖY¹»OÔß׊‹ë½¼×]¾¼ÜÙyüàuÔÉΫ«qOŸnâXœƒ=q"83³ÂÕu¡C®Cæ®6¯¹}ûËÉ“!þþkfÎ4æv,ü­ºðýîÝ<žèì<ÞËËš‹Óæð¾N%ÂééåííK„UÅÄà:|€ßçÏã÷í{úé“·®®·cùã—úØØ£ìš'>y{ÿþ×ÂÂÚÉ“57l˜áì<~°Èx÷.uÏž§ªª£ýüVki) j_X[Ÿ™5k––V¶p¡¯«ë„¿þZ ©ÃàÉʪ¸ÿë‹ BB‚óçOôò²ÑÑšõþèX"ŒÁ”åç×P©4(€GðVâÛÔÔfaqÊÃÃüÈ7nÇÒÙªUþ¢×¯¯èë››Û~þ,*ª³²ByzZp ª)::gëÖIÉ‘~~«Œ¸3óÀŸýü¢““s¥wnio'þ¼v-‚L¦®[gååe#)9’ÛAñŸÂÂÚ9s®N˜ vÿþ:Ž]5ÃY]]ë³g±wïÆÔÔü»úñôéºð}c  DžÂ[‰ïÉ“!OžÄþøñÞ!;sæ]xxƧOÞ½KNNÕݻѯ_'Q(´E‹&s¦ª‰F£_ºôñòåpWWô… K%$¸67ûƉ”Öq+.Âã‰|½ví“°°àæÍ¶ëÖÍ€eÆz¯¶¶eîÜ«rrÏŸo†¹·8‰L¦~øvëVdrr‰‘‘ʪU–‹M†¡Ë -?¿‹­Âb«0˜²¤¤âúz(€sx(ñ-/oœ>ý´··ËæÍ¶ÜŽ¥¯_'íÜù8/ïì/o;Q©´ÐPL@À¯_sÇŽ•Y½ÚrÉ’©^|®±¿cG`t4öÔ©…^p®«©SO,[6u×.'î†ÁEMMmwïFß¹%!1rófÛ•+§Á¯œ¿„ÇÝÝo´´Þ¼Ù1ÜVÜåÌÕG_¼xÊúõVðÔ&Ûu\M‹­*.®Gþ?F¡”Q(%(€x(ñ=x0(,,ã۷üyk'+«ÂÞþüçÏÞ,–ýljj ü¯ªaýúÿkïÌš8º>›„‚ (Š‚rŠ^TDµx¢µÅ¢x#XëÑVD‹UñÄ£µö£ZP<À» PTŠ   ˆ‚ ‡Bk¾?¶Mc²‰œÈüþÚlvgÞ¼y3ûvöÍŒ‡——ò7àxò¤,8ø™L:|xÊ÷««c89mÜ Ñšψ‹{PSCwwèáím¯Â¡»ÂÂÊ¥KcŒÖæ«•»°`A”¶6õСùªD)*z÷Ë/7._~êìl¾zõÙW‰þˆŠJ¿xàÀ<__gUË‚D^^¾$¹––†ŸßˆeË<ûö5TµP]ÁáÜÜòêj:@!„xÔÂñýñǤ;w 33ÃÔy¸™YìçwðÌ™eIISRr(’¿ÿ¨… G[Y©xµËøøû?ýtÞÉ©ßáà Ôm­Ü!C6-[6N=',ª ……Uû÷ÿyéRÎðá–ë×Oqs³RµD*ãòå§Ë– ›º|¹—ªeAHEMMSlì_Çg662½½íW¬ð>ÜRÕBui™ü¸q!Âvv}Ôüi‹@(Õ;¾´Ñ£wlÛö…ÚF÷âp8¼„„‡¡¡‰Â~ýz,]:ÖÏo„žžŠWfmia­[—xîÜ“å˽֭›¬n“¥*+† ÛrîÜŠ®ìÌIÉ“'e»w_ÍÌ,3fPXØÔ!C”·òš™Y4wî‘Å‹ÇlÞì«jYíƒÅâ$'ÿ}ðà/Þá»Ϙá‚\+u€Áh+(x‹o)—›[ž›[ÞÖÆ <ØL=ç”#Š@ÙŽok+;-íùĉŽü¨€ Îݼ™ÿ×_Ô¶—¬¯oŽŽÎˆ‹»_SÓ¤§§5j”õ±c‹pù«««ªUµrBYYÝÒ¥1´ß~óŸ8ÑQ%2QSÓÄãñø£ÎW¯æŸxþ|§ŽŽÊVî\ddED\yú´|üxûuë&ÛÛw•©]•3gF~þ¹ão¿ÍAßd;)ÂÌÌv?61éà¶d‰šÕªVðC„ñ¥Óòò*˜(DÑ¥P¶ãûúõ{7·íýúõX¾ÜËÏo8¾U[xøŒ… G+S )yòäõ‘#i7n<ã-r‹»—‘Qü¿ÿÍùóÏü+WróóßΟÿYDÄ—Ê—-%%'$äÌÀ½^hf¦.¡u7oæ/XÕ³§î°a®®……UyyééëU-W'##£hÛ¶”‚‚Ê)S†¬_?ÙÒÒXÕÉ“û÷KFŽ _QA›6í7[ÛÞ'O.UÛ`„ô¼zU{üxæ©SH$læL—À@Aƒz«Z(1‚!ÂOŸ¾©©i(DñI£lÇ7;ûõÔ©û$Ö­›¦ƒCŸ’’Ú¬¬jµ'›Í½x1ûرŒÜÜrkk“  O__g--‡KNœ¸w÷î £•L&s¹\2™´t©Ç¦MŠú2[SÓdb"¼›Íݰá\\Üý%K<6nœ¦V«9½óôÜ À0ŒD"q¹\ ff=FŽàêjáìlŽbˤBxùòÓÝ»¯–—×ûú:¯YãÓ¿ÿ§°œmK kèÐð1c<87݆挑T*ùüù•*Ü_!wèôÖ³g³J}÷®qôèãÇÛ#ÿIÍ©®nˆ‹ vrêgmm‚–±Ct^”íøâ#‚üŸd‡;nœÝêÕÔaJÄ»wÇŽe$&fÕÖ2Æ· ô5ÊêêÕÜk×ònÝÊg2Yd6›Ë¿žJ¥|û­×Úµ“!LRÒãß¿}õê÷‚K•—×ÅWïÞýÕ¬Yѯ,´¶²­¬Ö‰‰„‘H‡Ã‹ òö¶S‰l^¹ò4"âÊÛ·´Ù³G¬YãÓ«—žª…’‰Ó§¬]{À³sÿ¸¸ …ìçw°¶¶)%eug/‚|÷ã#GÒžþAdä-&“µp¡ûÊ•ÞB[¥¤¥=Ÿ3çð°a ߨçÌÇ¥3gFòR($ ‹ˆøÊߤ ¥B(“7oÞÇÆÞ‹»Ïd¶ùø ötqéOxå«Wµþþ‡ããƒT¾^$B‚!Â99ojkÿ vr24¨7(ŒB\ꃲß­[“Ïd±8Bç)ÒgŸYÇÆ)-´ªªáøñ̳g³êë›'Ov psw(®q–•Õy{ïmiaðºÈdÒž=_ùû’¯lIIW¯Žç× ™LruíŸýúǧ.[æ©æ=È÷ߟNJz,4¨O"ahqV¹ÐÜÜ“y›D–,<OƒNœøKaa%†annVññÁjK|âÚµ\ÁH2™¤¡AŽŠZäå…`º FÛŋه§•”ÔˆÛýxÆóÑÑÚ‰‰ß:8¨fxD{Áý`<."7·¢¸¸B¨§§mcÓ…#Ôe;¾«WŸ:þ1—ûA¦ yèÐ~r¦zÿž‘%ÙÁÊÈ(Š‹»ýzžŽŽæÜ¹ns玒æ3kbâ£ï¾;%¤- Ì›1ÃEF±©©irwßÁ`°øN6™L"“IQQ‹Æ·—cF bß¾ÿûß-Áw2™4`€ÑíÛëÔm™áÎKCóرô#GîR©”eË<ÇÞº•¿té ÜfÈd’››U\\ZM|¬®n6l«Ð€DÂ0 ìÙã'÷H„š#¸ûqÿþ=ÜæÍû ÿŽA£5;;‡³X2™D¡Nœôð°Qµ¼ˆvC§·>^‰ UV²Ù\…?xP2jZ0ñq”íøúûº{÷…à …¢R)~~#‚‚Ʀ¤ü½{÷UÜZH$‰„:4òd'UKŠ ¡ágÏÞ¶´°(Ò€²†WW7:;‡O˜à°eË 4a!e;¾ÞÞ{ +ù?)R¿~=RRVË ÿüyÕW_lld€}û­×ºu“ù½}K‹‰ù+!á!Æœ<ÙiÉ’1#F è@L&ËÛ{ÏÛ·4Á‡÷™3Ëä8‘’’³lÙI¡€  ñùòÊKA<~üjúôÿñR(äI“>¼@…"}Ú”•ÕýðÙ‡K…Ú2‰„͚庿ZìÁåò\]·ÔÔÐEÿ¢RÉl6oæLלܷ¯º¬HP>ååõÑѧN=`2ÙT*™Éü/´ Ã0 ¿üòõìÙ#T+$BŽp¹¼Š ZQÑ?K§ýý÷ëº:èPˆð­[óç¥PÈ€à`ÏÕ«' µâP¶ã;tè&|}l…B26î~ùòw²Oxº{÷Å¢EÇØl.þ!UGG+7w‹¶65#£(**ýÎB==í9sF¸É¸jaa•ÏÏlöŽoJʪaÃä³[Csôè -â*…LÆ’’VŒÙ¯]iÔÔ4 º‰ÿ³[7ê½{?‰®FŒÏÍm{eeá*r ¸ïØñ…JäÊ•§AA'„$Ä—s™<Ùiýú)j»J BÉ0m7^8{6KÈZðÏáá¾K—ŽU‘h…ß*‡¯%,}ˆð¯¿þùÛoâóæ54Èšš¡¡“.tGñuQ”ØÐЂÉ$}}ísçVÈîõ¦¤ä|ûm,„€ÇûÇmiiÛ¹óJnnù£G¯,,Œ6mš>{öH¹¬ñdggºq£oxøEþ7e9NŸÿé§óMM­„^/…Bâñ †‘.^ÌVsÇרXWS“ÒÖÆÿŒROB^¯BIJzTUEàõx<“Ñ£‡Îš5Ÿ+_0AŽK'‘÷ßø‰!<ØlÛ¶™®®ª” ¡fèêj¾xQ…aƒ2`xxrMMÓ† SU$B±ôê¥?a‚þ„ øO:½åùó*ÜÎÈ(ЉÉäryB!ÂNNý´´4rsËù_bÙl.‡Ã OŽŽÎØ¾}Ö¸q¶ª+BQêˆoK ËÊj€L&u릙œ¼ÒÖÖTÆ4Ož¼–áå ‘°=tû.^ìáåe'߸Xá‚Qii/8. 33lÀ9ì({õjn``´ÐI|ƒmmê¤INÓ§õð°ÑÔT£éJâ3fgII-™L²´4¾s'½s+6›‹÷J¸ð;g-X ²]ÁŸ?¯òòÚÃÿI"a¦¦ú›6ùN:DÂ0jwOqàß1¶oŸ‰Œ§«ÑØÈÌË{ûìÙÛüü·ÏžU””Ôp8<-- ;;ÓÒÒÚÆÆ¡ëÉdŒË…ÞÞöÛ·ñiì|‰ Jõ¢Þ¿o`F¡cce÷zwì¸|àÀmÑó<¬«c¬\9ÁÍMþª0 Û·ÏßÓsÆ„jkËa ¢†æÚµ †j ›ÍÑÕÕôñÐÝ} þ³µ•]XXõìYEvöë¿ÿ.½_?*=ý…»ûÎ… ÝCC'uﮦ›û ”‰’_€B!ÅÅulznØpîäÉ¿Ä]@¡£¢ÒáøŒŒt[{Vq_S“ܵkWvvöúõëãââ&NœÈår;¦·{÷îU}ˆ| …ŒG«V„<„V–|72Ú6žˆ¢m•âô€š†4Õ'A*ܤ+**¢££étº‹‹ . !jýtƒ¤¦¦VWWÃvR\\,”Žâ¨®®NMM•=Ž•Tzä«5)µ2+ZÏž={ö왌‰ÈKŸBðõ#¢¦L™Âd2ÕA¥’‘ !^a[[›££cPP„pÙ²e®®®, ¿&$$d̘1‡ƒÁ°°°8tèhÕ ¸¸Xæ2IB‚ ŠËý³j¹Ë Å5Ùm[ ¶ÊG¾zP¨äryòÊ¥½( Mƒ°ú„NJcŠFÈ0x<ž‡‡Ç¦M›Ä]ß^³Tœá‰Z]»G|/]ºää䤥¥5`À€ØØXÀ¨Q£½{÷ÿŽÏß¾}ÛÜÜ<&&†?VaX||¼]=öìÙƒ«ãСCööözzz^^^—/_V«ì3fÌøá‡ðã¶¶6CCÃ+W®ØlöÚµk{õêebb²víZ6›Íáp6oÞlnnnll<þ|üHP'€†††… ™™™…„„´¶¶ **33SE¥FðóŠô™™)ªÀåË—»uëfjjºk×.}zРAÍÍÍ<ï÷ß·³³ëÞ½»››[jj*þuF‚é*¡®®NGGG[[[‚J;¦=ÑŠpssûõ×_õõõ$)$$Àårù&-¥qBCBB†ZWW'X•J‰‰9~üxDDDtttLLŒ††~W\\ܦM›Èäÿ¶2ÑÑÑ ï€ÞÚUYxúÉÉÉ666&&&«V­jkkûhyZ®þù§µµµ¡¡aDD¿Ê„²—¯: «DvH˜5açIx;¡VE›~»h¢g êå€lbbrþüùÊÊÊ+W®˜™™D‡Äøâ”püøñØØXø¡ª´ªªªcÚ­ˆ­[·N™2B˜œœ¬§§çââ!|üø±––Vss3ü˜qâ­˜Çãñ½^\Z~ø¬_¿°}ûvþü©S[[+¤Øû÷ï÷èÑ£zäää4}ˆ¸ÊÂS›8qbQQу¬­­ÃÃÃ¥,/¡=¦NJ§ÓÏ;‡+œ0 qùJà³jHd‡„Yvž„·KP5~‹à±hC¢ga/åaÛ°¶ªZ=Aqv•;â+ªg(^¥xó—²"G\=Jèð¥9)A*ºhhDöÑ£G’sÇÿ—¦ Š3þ°|II‰££#ÿ_{{ûvI¢hºuëæëë›””ÔÜÜ|éÒ%þ|̲²2SSS|bã„ ^½zõúõküó(ÀÎÎnæÌ™BIUWWs¹\+++ü§µµuEE~L¨(u ½-ª*•ZTTäãããêê#xW÷îÝÁ¿– x¬nåççóÍ7ø™ÒÒÒ¡C‡ò/prr’œ¡ ›Í644$¼Wi‡µ'ZÎÎÎ:::=JOOŸ>}º³³szzzjjê”)S€ÔÆùèÑ#OOÏ;wŠ+B|||ZZÚ;w’’’’““ù ìÝ»7>†*HNNŽdË—P|Âç4 ª,~Û´µµ­¨¨±1â˜P[ÊBÂIu@9V-j‡„Y‹ë< oÒiUB =ƒ{99Ú¶ô¶ªZ=ˆò Ø9Ó'ˆS)^kÒW¡ñÞ.®Ã‡bÞŽ„Ò ]4BÙŠ‹‹ù&.w)ÓTšáµÏñmiiáñx‰‰‰õõõK–,™6mZ}}½èe„-J¨0ýû÷ÏÏÏçÿ,,,l—$JÀßß?)))%%ÅÕÕ•¯e|¤ ïÅh4ÚƒúôéSVV†ÿ›““³cÇ¡tzõêE&“KKKñŸ%%%}ûöÅÕÓáí¯hQµ´´´øùù­]»6;;ûàÁƒÊ_>”——ÿþûïãÇ_³f ~¦oß¾OŸ>å_ hÀ„*áúõë>>>ânÁUÚaí‰V‰Dš½k×.ÿöêM2¢•…ƒŠŠŠúôé#cc$ {ÊBÂIu@9V-j‡„Y‹ë< oÒiUB =ƒ{9EÛ¶êA”OÀΘ>AœJñæ/}Eáí¢>¾æÝÛ·o¥)…ô©Ð¢‰ !üã?ð爄Üq¤LSy†'y@Xˆ––--­¤¤¤ÚÚÚ#GŽhiiµ´´ààLâ‚€Àë/~iffvãÆºººÛ·oÛØØ`&!ke®o€Ïi8p àwÀU«V}ùå—eeeOŸ>9räŠ+6oÞìää”—————7zôè¥K—ÂËÎêš3gŽ··wiii^^žƒƒÃ¦M›$|QEù¡íªhH¤†aصk×ð¥.Á¿ßåE-AôXJû(ÌårÇ¿mÛ¶úúúÞ½{§¤¤@wîÜibbrñâŪªªk×®}4’P oß¾Ås×^:¬=ÑŠ€&&&êêêN˜0BxóæM]]]~I%§àñæÍ› ÔÒÒ"X7uêÔ±cÇ⟮X,–“““¿¿?þocc£Í¸qã®_¿þâÅ‹°°0€‰‰I[[[{õ†St‰(q•…§6nܸââ⬬¬â¥)/¿å=z´¡¡AœÂ ³—¯>1«†DvH˜5açIx»U‹öH¢U ‰ª°—“‹mÃvÚªjõ•eçP‰¡„z†âUŠÿ+}Eáí‚…/|{ìØ±ÆÆF|Ì~Øçˆ67é R¡Eƒ&]QQ‘––æëëkffÆ7ɹ‹KS9†'kŒ/„0!!ÁÊÊŠJ¥ÚÚÚ&''CÙl¶»»»®®.lãËårýõW+++}}}ŸäädcccÉYC¥/줫«+…M§Ó-ZdhhسgÏ   æææÖÖÖ>}úèëëûûûÓh4ø¡N „õõõóæÍëÙ³§©©é÷ßÏw"¥”VùŽ/lOEC"µ@÷íÛ×£G~ýú XQilla-2.3.0/docs/simple-api/inherit_graph_18.png0000644000151400015140000000222511653571064016465 00000000000000‰PNG  IHDRc(eÆÓmbKGDÿÿÿ ½§“JIDAThí˜ÍK2]Æúj%bŠß¤›4p%-“!0Ú¸ ÔEfX‹> H"’6µ1‚ 訕I´ˆ bˆa…åX™Z’>¨ƒ¡é<‹©ÉzΫÑÓË;¿Õœû®sß—3÷8‡†ã8 €€þ·øÏ@9 å,”S°üCÏÍÍùýþ¿’ÊÂétêtº×²S§§§Z­ö³úqx<»ÝN ’hµÚõõõoIé‡B£ÑÞ©> å,”S°PNÁB9KNÑ^ÁçóM&S2™üW WWW•WÌkµ¦¦¦ÎÎΓ““Úûd—:©ýž:<<ŒÇã±XÌçóE£Ñ±±±zò Ôâñx hkk3›Í_{ȇ…Ba= UþOA"‰¤R)@&“¹\.ƒÁPO5©Tº°° ‘H’ɤX,®Gó5årùéé©…¯éS £RÕ¯_¿¬V«P(”Ëå“““ÏÏÏ?‚Éd²X¬ææfbX,‡D"‹Å‡£X,¶¶¶4MccckkëÚÚxû ½è:::ÄQµ;…aX.—Ëf³———333‹…ˆŽŽF£Ñ£££ííí—ËõQð½Z.—‹ÅbN§³¿¿¿¡¡˜ZZZBQôøøxwwwooovvÃ0£Ñ822‰DœN§ÍfÃ0ìól$‰šëø[ŒF£ÑhÄÿI„Ëå†B!Ç …ƒÁƒÄ²ÍÍM•JU5 …*»“Ô8Îùùye/µZljkŸÏ×ÞÞžJ¥˜Læââb:.—ËÙl¶T*½¬\¿¿€àv»IÁÚï)ÂÇ1 ›ššêîîÆqüáá¡T*)•JbJ¥ŠF£UƒŸ¨ Ûl¶ÊT$‘ÉdÄ›Q¯×£(Êçó÷÷÷‘Ëå:îàà€NSÈ{÷ëç ú›Í¶Ûíwww‰„Á`„Ãabêúúº¥¥¥jð5«ÕzvvV©V(V|L§Ó‚äóùr¹ìñxR©Ôàà Á`H¥RÄâ——Àýý}ýu‘¨Ý©d2™H$‰Äíí­ËåR("‘ˆÉdšÍæññqEƒÁ Ñqª?Qær¹Ùl6—Ëþ¾¾ééé›››@ ÐÛÛ»²²B£Ñzzz6662™L¡P`2™l6›ÇãVWW3™ÌòòrUåŠf-žÆúN×h4‚S©TÊb±™L611‘Ïç«I}ªr×à8^*•¸\.Š¢Ä0“É ðù|@044„aŽãn·[©T²X,µZíõz‰•óóó<O©Tz½^ð¶=‹Å®®.‡óÇÒðúT¶ÉdPçSn·›°¢õÝ å,”S°PNÁB9 å,”S°PNÁB9K•3O¿ß¯×ë¿?•Ù)âlðŽÑhT(¤ ù»â#¨> å,”S°PNÁòK"7v„ÑÅêIEND®B`‚XQilla-2.3.0/docs/simple-api/VarHashEntry_8hpp_source.html0000644000151400015140000001331711653571063020412 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

VarHashEntry.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _VARHASHENTRY_HPP
00021 #define _VARHASHENTRY_HPP
00022 
00023 #include <xqilla/framework/XQillaExport.hpp>
00024 #include <xercesc/util/XMemory.hpp>
00025 
00027 template<class TYPE>
00028 class VarHashEntry : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory
00029 {
00030 public:
00031   virtual ~VarHashEntry() {}
00032 
00035   virtual const TYPE &getValue() const = 0;
00036 
00039   virtual void setValue(const TYPE &value) = 0;
00040 };
00041 
00042 #endif
00043 
XQilla-2.3.0/docs/simple-api/classDocumentCache__inherit__graph.map0000644000151400015140000000035611653571064022257 00000000000000 XQilla-2.3.0/docs/simple-api/classUpdateFactory__inherit__graph.map0000644000151400015140000000035611653571064022327 00000000000000 XQilla-2.3.0/docs/simple-api/SequenceBuilder_8hpp_source.html0000644000151400015140000001304211653571063021106 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

SequenceBuilder.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _SEQUENCEBUILDER_HPP
00021 #define _SEQUENCEBUILDER_HPP
00022 
00023 #include <xqilla/framework/XQillaExport.hpp>
00024 #include <xqilla/events/EventHandler.hpp>
00025 
00026 #include <xercesc/util/XMemory.hpp>
00027 
00028 class DynamicContext;
00029 class Sequence;
00030 
00031 class XQILLA_API SequenceBuilder : public EventHandler, public XERCES_CPP_NAMESPACE_QUALIFIER XMemory
00032 {
00033 public:
00034   virtual ~SequenceBuilder() {}
00035 
00036   virtual Sequence getSequence() const = 0;
00037 };
00038 
00039 #endif
XQilla-2.3.0/docs/simple-api/classXPath2MemoryManager__inherit__graph.map0000644000151400015140000000025011653571064023340 00000000000000 XQilla-2.3.0/docs/simple-api/classxercesc_1_1XMLEntityResolver.html0000644000151400015140000003052711653571063022141 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

xercesc::XMLEntityResolver Class Reference

Revised interface for resolving entities. More...

#include <XMLEntityResolver.hpp>

List of all members.

Public Member Functions

Constructors and Destructor
virtual ~XMLEntityResolver ()
 Destructor.
The XMLEntityResolver interface
virtual InputSourceresolveEntity (XMLResourceIdentifier *resourceIdentifier)=0
 Allow the application to resolve external entities.

Protected Member Functions

 XMLEntityResolver ()
 Default Constructor.

Detailed Description

Revised interface for resolving entities.

If an application needs to implement customized handling for external entities, it can implement this interface and register an instance with the parser using the parser's setXMLEntityResolver method or it can use the basic SAX interface (EntityResolver). The difference between the two interfaces is the arguments to the resolveEntity() method. With the SAX EntityResolve the arguments are systemId and publicId. With this interface the argument is a XMLResourceIdentifier object. Only one EntityResolver can be set using setEntityResolver() or setXMLEntityResolver, if both are set the last one set is used.

The parser will then allow the application to intercept any external entities (including the external DTD subset and external parameter entities, if any) before including them.

Many applications will not need to implement this interface, but it will be especially useful for applications that build XML documents from databases or other specialised input sources, or for applications that use URI types other than URLs.

The following resolver would provide the application with a special character stream for the entity with the system identifier "http://www.myhost.com/today":

#include <xercesc/util/XMLEntityResolver.hpp>
#include <xercesc/sax/InputSource.hpp>

 class MyResolver : public XMLEntityResolver {
  public:
   InputSource resolveEntity (XMLResourceIdentifier* xmlri);
   ...
  };

 MyResolver::resolveEntity(XMLResourceIdentifier* xmlri) {
  switch(xmlri->getResourceIdentifierType()) {
   case XMLResourceIdentifier::SystemId:
    if (XMLString::compareString(xmlri->getSystemId(), "http://www.myhost.com/today")) {
     MyReader* reader = new MyReader();
     return new InputSource(reader);
    } else {
     return null;
    }
    break;
   default:
    return null;
  }
 }

The application can also use this interface to redirect system identifiers to local URIs or to look up replacements in a catalog (possibly by using the public identifier).

The HandlerBase class implements the default behaviour for this interface, which is simply always to return null (to request that the parser use the default system identifier).

See also:
XMLResourceIdentifier
Parser::setXMLEntityResolver
InputSource::InputSource
HandlerBase::HandlerBase

Constructor & Destructor Documentation

virtual xercesc::XMLEntityResolver::~XMLEntityResolver ( ) [inline, virtual]

Destructor.

xercesc::XMLEntityResolver::XMLEntityResolver ( ) [inline, protected]

Default Constructor.


Member Function Documentation

virtual InputSource* xercesc::XMLEntityResolver::resolveEntity ( XMLResourceIdentifier resourceIdentifier) [pure virtual]

Allow the application to resolve external entities.

The Parser will call this method before opening any external entity except the top-level document entity (including the external DTD subset, external entities referenced within the DTD, and external entities referenced within the document element): the application may request that the parser resolve the entity itself, that it use an alternative URI, or that it use an entirely different input source.

Application writers can use this method to redirect external system identifiers to secure and/or local URIs, to look up public identifiers in a catalogue, or to read an entity from a database or other input source (including, for example, a dialog box).

If the system identifier is a URL, the SAX parser must resolve it fully before reporting it to the application.

Parameters:
resourceIdentifierAn object containing the type of resource to be resolved and the associated data members corresponding to this type.
Returns:
An InputSource object describing the new input source, or null to request that the parser open a regular URI connection to the system identifier. The returned InputSource is owned by the parser which is responsible to clean up the memory.
Exceptions:
SAXExceptionAny SAX exception, possibly wrapping another exception.
IOExceptionAn IO exception, possibly the result of creating a new InputStream or Reader for the InputSource.
See also:
InputSource::InputSource
XMLResourceIdentifier

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/Collation_8hpp.html0000644000151400015140000000470611653571064016403 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

Collation.hpp File Reference

#include <xqilla/framework/XQillaExport.hpp>
#include <xercesc/util/XercesDefs.hpp>
Include dependency graph for Collation.hpp:

Go to the source code of this file.

Classes

class  Collation
XQilla-2.3.0/docs/simple-api/classATGYearMonthOrDerived__inherit__graph.md50000644000151400015140000000004011653571063023520 00000000000000ceec7bde1b6d049fb79396f4e05b1bb7XQilla-2.3.0/docs/simple-api/classATGYearMonthOrDerived__inherit__graph.png0000644000151400015140000002210611653571064023627 00000000000000‰PNG  IHDRµ]ÊQ»¥bKGDÿÿÿ ½§“ IDATxœíÝy\gþð'& R„""‡BñëUE°µîª+©Vë ÚŸâjAíØ–îB­tÛjAlWÁ£¶vå*[EHäàдÕQaaaLLŒ¶zƒáíí¥•®´–ÆÆÆÜÜÜÀÀ@mu¦¨¨hüøñÚêMkù eddh·CÐ_AAAZì Î?äà@>äà@>Îp烢dìØ±žžžååå˜öA¼ñÆÆÆÆÃV¡ZõõõëÖ­³··766ž3gιsçtRFUU…BÎ%ê`ÿqýúuÇãñX,–³³óÚµk1ï!××ן>}úÞ½{ÃY¡ŠÖÖVwww##£ôôô’’’×_=88ø¿ÿýïà{ær¹t:}ðý -_ÿè KKK+++„••Õ§Ÿ~Êd2››› †ÚÆ"‘!dgg7¬%>)::ÚÇÇ'99™}ñÅ>ûì³W_}u=ËåòÖÖÖA8„t|þa```hhhjjJŽJ$’ÈÈH&“É`0"##%ÉüùóBdžÔ6 w¹yyyvvvW¯^íÝ!D¡PNŸ>íêêjnnþé§Ÿ"„¤Ritt´¥¥å† ÚÛÛ5õÊÊÊÚ¹s§rÙÑÑÑÇ'‡ÛÛÛ7nÜH§Ómmm#""º»»•ÊýËxêÚÉd²ƒN™2ÅÄÄÄÓÓóÆCó‡£Ü­¦¯½öZ~~¾P(ìÝ€\èš5kø|~RRB¨µµõàÁƒnnn,‹ÍfÏ›7/""BSÿ|>!ÔÖÖ¦iBBB|}}ÒA>”ß»wOñ¨‹‹ Ç#‡srrfÍš¥²55`±Xš -(( B,#„8ÎÔ©S³³³Éf÷îÝS ÷ž½­­ !ÄçóÕ®ŽX,¦R©wîÜ!G³³³œœ0ùP)ã©k7eÊ”o¾ùFÑàÛo¿}þóÁápÈáÎÎÎwÞygþüùŠGÇŒ£œSSS•-¨©X,ÖÔ€\诿þª\À˜1cØlvïòÔÎÎd2¯]»¦Ü¬¤¤ä¥—^êììüí·ßB"‘ˆœÎb±ÆŒ£\see¥r>TÊxêÚ;¶¼¼\ÑàöíÛÜ]žmܸñîÝ»Äû:®HŸÏ/..V™ES|ƒQ£žXS›êêjr¸¼¼ü“O>Á̾råÊC‡J;¿ÔÔT‰DbddÄd2©T*—Ë%§?xð`„ ä°T*E=zôHy¹*e$‰———±±±¦¥K¥Òƒ:99½ð , ÷gø-¬Ý|P-}¾!##¥ òþm݈ï¿ÈÀ|ÈÀ|ÈÀ|ÈÀ|<áÆ ®®KÐ/Z¾léÒ¥Úíp˜q¹Ž¶¶¿Šu]ÈÀ±Ùlooomõ¦µ|Lœ8ñYÿð­HD‰ÆŠÅVLf‡®k8oooò¶4­ÐÚû/σ/þù•I“,ŠŠ>Ðu-úÎ?þ”™YŠª©i½¿^×µè ÈÇc·o×ÖÕñBÔ¬¬[º.G_@>;¾ŒF£"„$Yff©\‡]„ $™L~öl©T*#G››;JJà….BRQQŸß¥50 ž;W¦Ãzôä!„²³Ëh´?7…D"»p¡L"‘é°$=ù@b±ôâÅr©T®äà@>äà@>äà@>äà@>äà@>äà@>äà@>äà@>äà@>äà@>äà@>äà@>äà@>äà@>äà@>Îsòý0ÇŽÓVW¹¹¹ %ƒïÇÏÏÏÁÁaðýèÖsòýR E+ý0d²ßårÕ¯C€ôôô   Á÷£[ÏÏñ%==4±¸Q&ë|?ºÞZóüä ÈÀ|ÈÀ|ÈÀAù P(UUUº®â3‚ò¡Àårétº®«x6ŒÄ|ÈåòÖÖV]Wñl‰ù žÞÊÊŠ•H$‘‘‘L&“Á`DFFJ$„…BIIIquuµ´´Œ=uêÔäÉ“MMM£¢¢tYúðüµd}€úp}!Äáp‚àp8Ê+P[[Ëb±<<<öíÛG6ÉÉÉ¡   @˜˜ˆjiiÑJ=ÏÈáââÂãñÈ᜜œY³f‘ËÊÊ‚‹Å*Ãd'ƒ¯ç™ðœ¼¿?ÕÕÕÖÖÖŠQSSSrÀÄÄ!d`` 2<¢ŒÄót:]±KàóùÅÅź®HŒÜ|…BrÀßßÿÝwß­©©a±XË–-;räˆn Ó+#1ööö^^^ŠcJLLŒ‰‰‰»»û’%KfΜ§ÛòôÊ:ÿ þ¸m‡F£ýüóÏŠé&&&))))))jc†G‚‘¸ÿ}ù8€ù8€ù8€ùxBK‹P×%è—ççúX^^^{{û ;ÉÌ|´b…Õ˜1T­”ôx~ò1øh5šÁ½v-S$º¯•’žÏÉñE+÷:œ»pá6•JAÉåDFF©®ËÑÇ23Ke2!D›]W[ €@òAâr›ïÝ«'þ¸·ƒJ…CÌc„:w®ŒFûóš‡LFdfÂ!!È)3³T*•)F ‚¨ªjºŸ§Ã’ôä©=۠Ѩçϗ餽ù@çÏ—¨^P—Je%Ļ۴·‘ž¹œ8{ö¦D"ëýPc£ ¬¬føKÒ+#=7np››;Ô>D£QÏ釘‘žï¾»24¤õþ“ˉ‹oËdr]רKÏÏû·3mšíûïÿU1zèÐW¬˜9eŠ•bÊï¿‹ÌÍ_ÐEizá9ù~mm±±Ù•ðæÊ•³t]ˆ¾éÇ€ù8€ù8€ù8€ù8€ù8€ù8€ù8€ù8€ù8€ù8€ù8€ù8€ù8€ù8€ù8€ù8€¥•ß:ÁHOO×õ*öƒ‰‰—]×UôU``àP?}Ãôýcó ‘#>>~–2Lù ž™™™Ã°8ÿ8€ù8€ù8ú•?þ˜B¡ÄÆÆê¼UUU EÓ£iiiuÊË˵XƒNèQ>‚HKK³³³Ì%5µp¹\:}PW½ÌÌÌöîÝ«éÑU«Vñx<wýúu„ïnnnƒY¨^ê päóÔ—– %''!ô믿lqj;áp8ð¦Ã¹ ‚ ‡áú©í?ÒÒÒ-Zäçççââ¢üßO¡PNŸ>íêêjnnþé§Ÿ"„ÂÃÃ7oÞL>* ŒŒnß¾édþüù!+«Ç¿ÊÐÞÞ¾qãF:nkkÑÝÝM.%%%ÅÕÕÕÒÒ266öÔ©S“'O655ŠŠBJÇ©Tmgggii¹aÆöövÌ©­“ìêÂ… S§Ne0ááá===!‰DÉd2 Fdd¤D"ÑÖ†”¡`÷r¹|òäɉ‰‰A¼ÿþûnnnЇBkÖ¬áóùIII¡ÖÖÖÂÂB ‰DBDjjª›››\.Çt¢òoâëëûàÁ‹5mÚ´K ÉÉÉ¡   @˜˜ˆjiiQôpðàA777‹Åf³çÍ›¡¼* R['Ùæ•W^©¬¬,..vrr" ˆ‹‹ ¨­­e±XûöíÃo±áÙèK>Š‹‹i4ZKK A·nÝB±Ùlò!„PAAAb±!Äáp¤R©••U^^AË—/Åw¢ü´‰Åb*•zçÎr4;;ÛÉɉ\JYY™b)ÊÃGÑÃÔ©S³³³ÉyïÝ»§&©äCmd‹¥Ø>d...<œ˜““3kÖ,üž|èË便¥I¥Rå³ÈôôôiÓ¦‘Ã666!r”J¥úûûgggϘ1#77—ü/j'¤ÆÆF™LæèèHŽ:99ÕÕÕ‘Ã&&&Š¥(+«©©qvv&‡]]]]]]1+¥©N„¢²€êêjkkkESSSLÏÃF/Î?d2Yzzz|||ÇvïÞžžNüñÛE£F©ÖxîܹŒŒ ///[[Û¾tBb2™T*•Ëå’£<˜0aBßKµ±±©®®&‡ËËË?ùä|ûÞu’ȽB¨²²’L?Nçp8ä-ŸÏ/..î{UCh¨wP}9¾P©ÔÆÆFÅ”›7o¢?vò!ņS K¥RƒÁd2Oœ8ñÔNÈ'£££ƒœ¾nÝ:___.—Ëf³ÝÜÜöï߯i)ŠaÅ#::zÆŒl6›Íf{zznÙ²EyEz¿~é]'ÙÆÇLJÃá”””8;;“„‡‡¯Y³¦ººº¢¢bÞ¼yÛ·oÇo´tþöÊ+¯(O‘Ë厎Ž{÷î%4?s[·n;v¬@ xj'‰ÄËËËØØ˜œÞÖÖ¶~ýz kkë]»v‰D"ÌRTòÑÝÝacccjjÌçó•—¨öõ­Jd›äääI“&Ñéô;v‚M›6?ÞÂÂ"44´³³¿ÑFP>æ½÷Þ[·nÝPô¬]*ujëÉÈ:?í—îîîúúú”””3gÎ躜g¥N ½8?í¯7n¼ôÒKo½õÖâÅ‹u] ŽÚ:Ǧ»¢úç™Ü,Z´¨­­M×U<Ú: FBB‚Nê€grÿ† äà@>äà@>ž —Oo4’@>žðÕW¹2™\×Uè‘az}‹¹ySŸP˜Ì¿ïÙó–X\§ëJúd>•H!ˆ¡Ý£þöÛoúòVäÓTVþ~äÈÝ—_f®]ë¨ëZúÄÖÖvÁ‚Cºˆ!ÏÇ3äÿ8“‘Qbb2æÎª®ËÑ pþñXw·ä»ïn#„„Âîüüûº.G_@>Ëͽ×Ý-E5*+ë–®ËÑDz²nR©„L&¿råNgg®+Ò „Dùù÷¥Òǯl¥RÙ?²u[’ž€| „ÐåËlåË %+ë¦ëÑ„ÊÌ|" 2™üçŸ9mmºªG@>PSSGqqUï+ë—.U褽ù@ß}w»÷å]‚ Ξ-ÕI=zò23K{ï<ärâÖ­šº:¾NJÒ#=55­lö#µ‘©TÊÅ‹·‡¿$½2ÒóqéR¹¦w¤R^Å<“÷'k‡Óèâòç§^~7333æÏú67wXZšè¨:݃÷çž`c³+!áÍ•+géº}1Ò/òp òp òp òp òp òp òp òp òp òp òp òp òp òp òp òp gH¾?¨°°0&&FëÝgŠ•ÏĤC×…ô›··wTT”Ö»’ïkllÌÍ͆_7Òº¹s›¢!4^×…ôOQQÑøñCRó~?]FFÆÐu” QÏpþp òp òpt™Š{{û 6477¾ÛÎÎÎÈÈÈ™3gš˜˜Ì™3çŸÿü§T*Ui“––FQçìÙ³ƒù)gMÝ–——ntFÇß¿~ýúõÉ“'Ëd²ÊÊÊ/¾øÂÃÃÍf›™™©mÌårçÎÛÒÒ‚é°££cîܹL&3..ÎÁÁáÎ;QQQ999¹¹¹TêŸ?i»jÕ*‡zøðáË/¿L#„‚Ø»wï€WGS·îSLj!žžÞ—žBG1*—˽½½÷ï߯©=‡Ãyj· .”J¥Š)B¡ÐÞÞ>))iÀ}Àu«I`````àPô¬Gç eëÖ­ßÿ=9zéÒ%www###kkëØØX„ÐüùóBVVVd‰DÉd2 Fdd¤D"A¥¦¦îß¿_yWñ /DFF¦¦¦VUUQ(”¼¼<;;»«W¯ª­l£¨'%%ÅÕÕÕÒÒ266öÔ©S“'O655U\ÆV[€Zááá›7o&‡…B¡‘‘ÑíÛ·Ée]¸paêÔ© #<<¼§§§_݇¡ÝÀöA”––š™™! ßzë­ºººÔÔT„PSS“Ê?e\\\@@@mm-‹ÅòððØ·oŸÏG577«,èÚµkL&“œýµ×^ËÏÏ …äC*}*"„‚ƒƒArr2B(((H $&&"„ZZZÔ ¶‚ -,,$ A©©©nnnr¹œlóÊ+¯TVV;998pß­&C·ÿÐÓ|ôôôÜ¿_(Êd²ÂÂB²¥ÊFwqqáñxäpNNάY³4壨¨ˆN§“³³X,å‡ðù(++#B,« “e÷.@S·R©ÔÊÊ*// ˆåË—ÇÆÆ*Ú(êIOOwrrÂw«ÉÐåC¿~ˆÃá8::"„ +++·lÙ" ÝÝÝÕ6®®®¶¶þó§}LMMÍÌ̬¬¬ÊËËýüü”[–——Ïž=›vqqé{=&&&!•aMhê‡J¥úûûgggϘ1#77—Ü ‘œ…ÕÕÕõ«Ûa GçA=zô/ù BH$EFF–••}ýõ×jÛ“»2æ|>¿¸¸!òÑGÉd2E³ÎÎθ¸¸eË–‘£ÊOð ©-@“ÀÀÀsçÎeddxyyÙÚÚ*¦“{„Pee¥M»j:ÎGsssCCãG W¯^ýðáÃÝ»w#„zzzÄb±¡¡¡H$ŠŽŽFut<¾'C(’þþþï¾ûnMM ‹ÅZ¶lÙ‘#GBû÷ïojjòõõýñÇ9ιsçæÍ›7a„mÛ¶i½xµhB¾ªúè£Ö¯_¯<}çÎUUU¥¥¥ï½÷Þo¼Ñßn‡ÜP´ú~þ¡0qâÄÆÆFÅ£ñññæææ'Nüú믃ƒƒ †D"ñòò266&‚M›6?ÞÂÂ"44´³³“œ. ßyçiÓ¦¹¹¹ÅÄÄtuu^sâÏ?ÿÇj‡5 iY[·n;v¬@ Pn“œœ¯º»»ëëëSRRΜ9£ëZúGÎOŸc7nÜx饗Þzë­Å‹+&Ž7.,,LwEõ ì?†Ã¢E‹ÚÚÚT&2Œ„„ÔÓw°ÿ8€ù8€ù8'ܸÁÕu úe_ß.]ºtè:"\®£­ío††b]Ò?l6ÛÛÛ{(z’|Lœ8ñYüð­HD‰ÆŠÅVLæ3öùloooòæ:­’÷_žQ^þüó+“&Y} ëZôœü)3³!TSÓzÿ~½®kÑÇnß®­«ã#„ ¨YY·t]޾€|H2™üìÙR©ôñ]‰ÍÍ%%ðB!È©¨¨ŠÏïRŒPÏ+Óa=úòBÙÙe4ÚŸ›B"‘]¸P&‘È0³Œ$K/^,—JåÊ‚žÿý¯RW%éÈÊÏ¿/õ¨L¤Ñ(ÙÙð*òPvö­Q£T·ƒT*ÿᇊ®®gìB»Öô|…=W®Ü•Éä½’Hd¹¹w‡¿$½2Òó‘“sW,Výöx3Òóqþ¼ÆÈåDAÁ}@4œõ蛑þþ\]_ùà²`AÌÇûûù½¨˜bee:zôȽËä®9ÉÖVõk©--M&Mzf¿JÛFúñàA>äà@>äà@>äà@>äà@>äà@>äà@>äà@>äà@>äà@>äà@>äà@>äà@>äà@>äà@>äà@>ÎßÃårsssuUŠžÈÍÍmh(Ñu:ãàààçç÷ç8¡$==]w…éƨQ£u]….*GBÍ÷K Y@|øá‡*Sàüà@>äà@>äà@>ÎÀóqòäIŸÿüç?Š)ùùù>êTUU!„êêêöíÛ·bÅ ÿ>øàÁƒä\ÿþ÷¿»»»ýÔ××/]ºt0Wê|||Þxã •¯ß»w¯Ï£GÓ­ÚÙ»»»6oÞ¼|ùò­[·ž>}Z&SóÛSÊÛäõ×_ÿ׿þÕÞÞÞÇE?zôÈÇÇgÀ•¸‡æƒ ˆüü|ƒ¡|±ÄÓÓ3+++++ëðáá¬?ØÛÛ755ýßÿýŸ¥¥e|||\\“É ¯©©AmÞ¼Y*•ž9sFÑϱcÇ^|ñE__ßÕFjhhPD!ÔÑÑQQQÑßNx<ÞªU«ðmºººÂÂÂ~ùå—°°°cÇŽ…„„äääDDDÈåj~3äðáÃYYY™™™{÷îíìì  …}©ÄØØ888¸¿õÞóñðáÃÚÚÚ={öTUUÕÕÕ‘Gmnnnnnnff†2ÿFKMM>}úîÝ»wìØ±páBrßcbb²}ûö´´´ÆÆF„ÐÝ»w¯^½úüƒB¡ fÅfÏžýÓO?)F¯_¿>kÖ¬þv"—˾ÍÉ“'ÍÌÌâããçÎkkk»pá„„„†††Ë—/÷nlfffnnN§ÓÝÝÝ?þøckkëÌÌ̾TbjjÚßúo€ùÈÏÏŸ9sæìÙ³íììòóóŸÚ¾¬¬, @ù)ß¶m[PP9¼dÉ’iÓ¦%$$qäÈÿÉ“'“I¥Ò„„„Õ«W¯^½:!!A*•"„ŠŠŠ¶lÙ²lÙ²€€2dä㬬líÚµl6!´xñâŸ~úIqˆ),,\´h‘béB¡066vÕªUG‹Å!ŸÜÜÜ7ß|såÊ•iii¡·ß~!äïﯘñæÍ›!!!+V¬8}ú49%''gÆ Ê¿@5f̘×_=''§wUÊ(ÊÊ•+‹‹‹5­©òì?þø#ytøàƒ¾þúkr‰D²bÅ ²‡Þ³Ëåò´´´õë×/_¾|ûöí÷ïßêÓÔÛ@òA\Èý¿··÷S¯ÇK$’úúz{{{rT$‰D"CCCr …BÙµk×µk×>ÜÔÔ´qãFżgÏžåñx‰‰‰‡*++;qâDWW×þýûSSS·mÛ–””¤8ŠgddìÛ·ÏÙÙ!4mÚ4‘HDb:;;ËÊÊ<==Ý~ñÅÍÍÍ qqq¥¥¥Š£ÛÕ«W9–˜˜ØÑÑA>ÙÙÙŠoܸ‘””´gÏžääd@  ÛÚÚœœœTVÙÉÉ©¶¶¶wU*lmmëëë5­©ÚÙ}}} ÉÜ—––Ž=zΜ9jgÏÊÊJOO =uêÔúõëðO“ZÉÇ/¿üÒÔÔäííòöö®®®~øð!¦½@ b̘1äèr%Š6¶¶¶ëÖ­ËÎÎÞ¶m›‘‘‘búåË—wîÜÉ`0ÂÂÂJJJ ?naaÁ`0BdãÐÐPwwwrA£Fòöö&1EEEÓ§O7nÙL*•æççïØ±ÃÚÚÚÁÁaÓ¦M999äCûÛߌ_}õU²ìÞë²víZ###///„PGG‡¦U¦P(Šóåª0z¯©ÚÙ_~ùe@ð믿"„òòò–-[F¥RÕάÓîïIDAT~ñâÅ­[·.\¸ÐÂÂbÞ¼y;< ä÷_òóóe2™ò‰[AAâˆÐ›¹¹¹¡¡a]]ùO@îo:::V®\©ÜÌÏÏïÛo¿]²d‰òƆ†€€Åè /¼@£Ñêêê>ûì3‘H¤òOigg§<ºxñâƒnÞ¼YåàÂçóår¹bï5a„ææfr˜N§#„h4›ÅÂÂ!¤8P›››WUUÍž=[¹YUUÕ”)SÔV¥¬®®NQFï5U;ûèÑ£=== ííí¯_¿ž””¤iv©Tª¼csppÐTF¿ó!—Ë Þ~ûí¿þõ¯ä”'NlÚ´IÓ%…Bñðð¸téÒ®]»{•ÈÙU:155ýüóÏ'L˜€"wæ===8pàÀ‚ $‰òi Êó:}úô®®.6›}óæÍwÞyG1}üøñ£Fâñx“&MBÕ×ד±è½tµë¢2ÅÏÏïäÉ“îîîŠSîîî3gÎ(ž-Mi#ââÅ‹óçÏ×´¦šf÷õõýꫯœœœ¦L™bkk«iöýû÷?xðÀÑÑ‘lP]]_5µú}|a±X|>éÒ¥cÿàççWWWG^äÐäïÿû•+W¹\nUUÕ·ß~{éÒ%Ì¿©ÂÂ… “’’¹\îž={Ο?/‘H¤R)F‹ÅäAº««Kí¼ä!&>>ÞÕÕ•|IE¢Ñh>>>_~ù%Ç{øðáñãÇŸ¸#¦‘÷to¾ù&ŸÏß½{wIII]]ÝÏ?ÿ¼mÛ6:®ö…q{{{[[[KKKEEETTÇSœ¤÷^SMKœ3gŽP(üæ›o”нg_¹råÑ£G¯]»ÖÖÖVRR’’’‚Y Mú½ÿÈÏÏ÷ððPÞÜÎÎÎ666jOÁHŽŽŽ_~ùeBBÂÅ‹étúœ9s¾üòËíÛ·?uq›7o>|øð–-[(Š··wXXØèÑ£·mÛ3vìØuëÖùúúîÙ³‡¼âқυ V¯^­2}ç·Þºu«Á’%KBBBÔÎnee5}úô€€€~øAS…FFFÇŽ;qâDBBB}}½µµµ¯¯o`` AïÆŠUf03fÌ8vì˜â8Ò{M[ZZÔ.‘F£-Z´(//Où Ù{v‰DrôèÑÖÖVGGǨ¨(òåX¿<ñû„k×®…ûƒF¬?üÐÒÒ2##C1Þ8€ù8€ù8€ù8€£æúé¥K—†¿ êëë---•§¨ÉÇ¡C‡†« wfΜ© XQilla Simple API Documentation SourceForge.net Logo

Class Index

A | B | C | D | E | F | I | L | M | N | Q | R | S | T | U | V | X
  A  
BaseInteractiveDebugger::Continue   RefCountPointer   
AnyAtomicType   
  D  
ReferenceCounted   
ExternalFunction::Arguments   DateOrTimeType   RegexGroupStore   
ASTNodeEventGenerator   DebugCommand   Result   
ATAnySimpleType   DebugListener   ResultImpl   
ATAnyURIOrDerived   DocumentCache   BaseInteractiveDebugger::Run   
ATBase64BinaryOrDerived   DOMDocument (xercesc)   
  S  
ATBooleanOrDerived   DOMNode (xercesc)   SchemaValidatorFilter   
ATDateOrDerived   DOMXPathNSResolver (xercesc)   Scope   
ATDateTimeOrDerived   DynamicContext   Sequence   
ATDecimalOrDerived   
  E  
SequenceBuilder   
ATDoubleOrDerived   EventFilter   QueryPathTreeFilter::StackEntry   
ATDurationOrDerived   EventGenerator   StackFrame   
ATFloatOrDerived   EventHandler   StaticAnalysis   
ATGDayOrDerived   EventSerializer   StaticContext   
ATGMonthDayOrDerived   ExternalFunction   StaticType   
ATGMonthOrDerived   ExternalFunctionResolver   StdInInputSource (xercesc)   
ATGYearMonthOrDerived   
  F  
StdOutFormatTarget (xercesc)   
ATGYearOrDerived   FastXDMConfiguration   StringPool   
ATHexBinaryOrDerived   FunctionRef   
  T  
ATNotationOrDerived   
  I  
Timezone   
ATQNameOrDerived   InputParser   StaticType::TypeMatch   
ATStringOrDerived   InputSource (xercesc)   
  U  
ATTimeOrDerived   InteractiveDebugger   UpdateFactory   
ATUntypedAtomic   Item   URIResolver   
AutoContextInfoReset   ItemFactory   URLInputSource (xercesc)   
AutoContextItemTypeReset   
  L  
  V  
AutoDeallocate   LocalFileFormatTarget (xercesc)   StaticAnalysis::VarEntry   
AutoDelete   LocalFileInputSource (xercesc)   VarHashEntry   
AutoDeleteArray   LocationInfo   VariableStore   
AutoDocumentCacheReset   
  M  
VariableTypeStore   
AutoMessageListenerReset   MemBufFormatTarget (xercesc)   
  X  
AutoNodeSetOrderingReset   MemBufInputSource (xercesc)   XercesConfiguration   
AutoNsScopeReset   MemoryManager (xercesc)   XMemory (xercesc)   
AutoRegexGroupStoreReset   MessageListener   XMLDeleter (xercesc)   
AutoRelease   ModuleCache   XMLEntityResolver (xercesc)   
AutoReset   ModuleResolver   XMLFormatTarget (xercesc)   
AutoStackFrameReset   
  N  
XMLFormatter (xercesc)   
AutoVariableStoreReset   Node   XMLPlatformUtils (xercesc)   
  B  
NSFixupFilter   XMLResourceIdentifier (xercesc)   
BaseInteractiveDebugger   Numeric   XPath2MemoryManager   
BoolResult   
  Q  
XQException   
BaseInteractiveDebugger::BreakPoint   QueryPathTreeFilter   XQilla   
  C  
BaseInteractiveDebugger::Quit   XQillaAllocator   
Collation   
  R  
XQillaConfiguration   
ContentSequenceFilter   XQillaAllocator::rebind   XQQuery   
A | B | C | D | E | F | I | L | M | N | Q | R | S | T | U | V | X
XQilla-2.3.0/docs/simple-api/classxercesc_1_1LocalFileInputSource__inherit__graph.map0000644000151400015140000000060711653571064025624 00000000000000 XQilla-2.3.0/docs/simple-api/classAutoReset-members.html0000644000151400015140000000600311653571063020100 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

AutoReset< T > Member List

This is the complete list of members for AutoReset< T >, including all inherited members.
AutoReset(T &orig)AutoReset< T > [inline]
old_AutoReset< T > [protected]
orig_AutoReset< T > [protected]
reset()AutoReset< T > [inline]
~AutoReset()AutoReset< T > [inline]
XQilla-2.3.0/docs/simple-api/StdOutFormatTarget_8hpp_source.html0000644000151400015140000001651711653571063021603 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

StdOutFormatTarget.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  * 
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  * 
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: StdOutFormatTarget.hpp 553937 2007-07-06 16:02:19Z amassari $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_STDOUTFORMATTARGET_HPP)
00023 #define XERCESC_INCLUDE_GUARD_STDOUTFORMATTARGET_HPP
00024 
00025 #include <xercesc/framework/XMLFormatter.hpp>
00026 
00027 XERCES_CPP_NAMESPACE_BEGIN
00028 
00029 class XMLPARSER_EXPORT StdOutFormatTarget : public XMLFormatTarget {
00030 public:
00031 
00034     StdOutFormatTarget() ;
00035     ~StdOutFormatTarget();
00037 
00038     // -----------------------------------------------------------------------
00039     //  Implementations of the format target interface
00040     // -----------------------------------------------------------------------
00041     virtual void writeChars(const XMLByte* const toWrite
00042                           , const XMLSize_t      count
00043                           , XMLFormatter* const  formatter);
00044 
00045     virtual void flush();
00046 
00047 private:
00048     // -----------------------------------------------------------------------
00049     //  Unimplemented methods.
00050     // -----------------------------------------------------------------------
00051     StdOutFormatTarget(const StdOutFormatTarget&);
00052     StdOutFormatTarget& operator=(const StdOutFormatTarget&);
00053 };
00054 
00055 XERCES_CPP_NAMESPACE_END
00056 
00057 #endif
XQilla-2.3.0/docs/simple-api/EventSerializer_8hpp_source.html0000644000151400015140000003040411653571063021143 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

EventSerializer.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _EVENTSERIALIZER_HPP
00021 #define _EVENTSERIALIZER_HPP
00022 
00023 #include <xqilla/events/EventHandler.hpp>
00024 
00025 #include <xercesc/framework/XMLFormatter.hpp>
00026 
00027 class XQILLA_API EventSerializer : public EventHandler
00028 {
00029 public:
00030   EventSerializer(const char *encoding, const char *xmlVersion, XERCES_CPP_NAMESPACE_QUALIFIER XMLFormatTarget *target,
00031                   XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm =
00032                   XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager);
00033   EventSerializer(XERCES_CPP_NAMESPACE_QUALIFIER XMLFormatTarget *target,
00034                   XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm =
00035                   XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager);
00036   ~EventSerializer();
00037 
00038   virtual void setLocationInfo(const LocationInfo *location) {}
00039 
00040   virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding);
00041   virtual void endDocumentEvent();
00042   virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname);
00043   virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname,
00044                                const XMLCh *typeURI, const XMLCh *typeName);
00045   virtual void piEvent(const XMLCh *target, const XMLCh *value);
00046   virtual void textEvent(const XMLCh *value);
00047   virtual void textEvent(const XMLCh *chars, unsigned int length);
00048   virtual void commentEvent(const XMLCh *value);
00049   virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value,
00050                               const XMLCh *typeURI, const XMLCh *typeName);
00051   virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri);
00052   virtual void atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value,
00053                                const XMLCh *typeURI, const XMLCh *typeName);
00054   virtual void endEvent();
00055 
00056   void addNewlines(bool add) { addNewlines_ = add; }
00057   void useSelfClosingElement(bool value) { selfClosing_ = value; }
00058   void addXMLDeclarations(bool value) { xmlDecls_ = value; }
00059 
00060 private:
00061   XERCES_CPP_NAMESPACE_QUALIFIER XMLFormatter formatter_;
00062   bool elementStarted_;
00063   unsigned int level_;
00064   XMLCh *version_, *encoding_;
00065   bool addNewlines_, selfClosing_, xmlDecls_;
00066   XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm_;
00067 };
00068 
00069 #endif
XQilla-2.3.0/docs/simple-api/inherit_graph_10.png0000644000151400015140000000355011653571064016457 00000000000000‰PNG  IHDR¨(å™&;bKGDÿÿÿ ½§“IDATxœíš]LMǧôƒR ) ±šh•4Jˆ1­Ôr¡/$FTU£‰‰DÑ*F &x¡ÆôÂD"Þ Õ•ØhL” JE ¶ ÖB«ØÒ§`Z쇵­Ýy/6n–Ý¥ð Àû¾»¿«ÎÌ9gæÌ÷L·[„0Ф…^ÃÂÀOSái #¨¬¬$w2g\·nŸÏ_¹råÍ›7ge||üÇ3Ü™êêêâââS§NAêëëóóó)-Ùl6àׯ_3Œü¯–1 3¹:È ²bÅŠ¶¶6áÙ³g×®]‹öã/ì3ážP©T[¶l6›ÍùùùçÏŸ‡úûû@ p¹\GŽQ«Õ˜Ë¥K—vïÞ=22b6›‹ŠŠñ1É£~¿ŸÇãíß¿ßétÞºu 066 “““¯_¿îv»oܸÁáp‚Á ¥;>Óׯ_×ÖÖfeeŽŽRneí±Z­ÉÉÉGÍÍÍEoh,M¿ß?44T^^¾aÃÂBØ®®.ôê´ÛíÓj„A©é,…ïëëãp8ß¾}ƒ¾yó€V³i…F£l6{``mvvv®Zµ ’ÎòÔÔÔ÷ïßcÓI¥R·Û%_PP€ID">|ƒñx¼»»`³Ù¼^/—˽råŠÏçC$ÄãqJwa8noo߸qcaaa[[YŒ©ææfÀíÛ·ñø¹\nII VÞgr[B].Wss³X,.++{òä šBbþ¦ðÇŽ#,±©© NÞ…OŸ>‘…ÿúõ+ £M³ÙÌçóáä. 8qB&“aÓñù|ü\B¡“< !4 …¢  @­VcÁ_¼x±gÏžE‹mÞ¼ùñãÇS¹£7Vmmí«W¯I¼S ¦OpSä †ÈD£ÑŽŽ…B‘——722’Øø¯ññxÜ`0hµZ¬"544 øû²E-—ËEöÍÉÉa³Ùv»m/]º”`#êêê±€"‘ÛŸÏ××ׇ·'†ÃáÊÊJFóöíÛÖÖVÔ,#r÷î]¯×{àÀ²²2¯×Kéž••µfÍ“ÉÔÛÛ;111‹- ßoæè‘Ìãñ :΢¢¢”””YD˜ðÏŸ?S©T©¿©©©±Ùlýýýééé€ööv¿ßõêU¼W0p¹Üªªªúúz‡Ã100ÐÔÔ¤R©ÈS¤¥¥ÔP^^~æÌ™/_¾˜ÍæíÛ·_»v oLD"Ñh”Çã…Ãa´ä‹UZZzÿþ}¿ßF¹\®@  t_¿~ý³gÏ:;;­Vk^^ÞÁƒÑãl®ÿg2Až>}ºk×.´öööÞ¹sg&Ê̤,8|øpii)¾A‰Drúôiá… ÒÓÓ%‰ÑhDãÇb1…B‘ššŠ{½Þ}ûöeffæææ?~-û`r¡‹Çãiii‡múý~µZ‘‘‘™™yèСP(„/°äQ¡V«]¼xñ²eËZ[[«««³³³!„ƒA"‘ðx<©Tj4¸cø|>­V+‘HÐÇ32S•zÊ~°ÔO«Î½{÷d2™N§‹D"”A(¡Ô”E˜}w˼'€ ‚ Åßæ“X,Æårÿ­¥¦ œÉÿ IIIII ÿ^cªOÅÂ'ð 0ÂÓFxšÂOSái # XQilla Simple API Documentation SourceForge.net Logo

Scope.hpp File Reference

#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/context/VarHashEntry.hpp>
#include <vector>
#include <xercesc/util/RefHash2KeysTableOf.hpp>
#include <xercesc/util/XMemory.hpp>
Include dependency graph for Scope.hpp:

Go to the source code of this file.

Classes

class  Scope< TYPE >
 used inside VariableStore to implement variable scoping More...
XQilla-2.3.0/docs/simple-api/classCollation-members.html0000644000151400015140000000613111653571063020113 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

Collation Member List

This is the complete list of members for Collation, including all inherited members.
Collation()Collation [inline, protected]
compare(const XMLCh *const string1, const XMLCh *const string2) const =0Collation [pure virtual]
getCollationName() const =0Collation [pure virtual]
sort(Sequence data, const DynamicContext *context) const =0Collation [pure virtual]
~Collation()Collation [inline, virtual]
XQilla-2.3.0/docs/simple-api/classStaticContext__inherit__graph.md50000644000151400015140000000004011653571063022246 00000000000000f6a3ed552b79d5b133a492d908a4e89eXQilla-2.3.0/docs/simple-api/AnyAtomicType_8hpp__dep__incl.png0000644000151400015140000003231011653571064021150 00000000000000‰PNG  IHDR³øŽžK¿bKGDÿÿÿ ½§“ IDATxœí{XeÛÀïeAA–å¬(‹â!E}K-EùT²/ËJ‘µW+°^ÑË„2Ï•‰fée)bbfYºÊ™ÌéýE\𴬀ˆ€rX]–ö4ßcë¶û°d™Å½ÌÜóî™ù1óÌÌî‹¢(@=,˜N1QÐ „ šA32–«–““³yóæ®M1«ØI3îß¿Ÿ™™9uêÔÎUGº\¿~½ÓÕ;iÍÆŸ¦:bTΞ=ûÙgŸuº:Ž32hBÍ@È 4!ÓfüôÓO¿þú+ãèpïÞ½ÀÀÀÖ–fee’‰D]˜C``à½{÷º°Á®ÂèfP•••Åår³³³»¶‘êêêÙ³g?Mnvvv¡¡¡­-}饗wïÞ ‰ãííý4öŒnFYYYEEÅÇ,‰*++»°µZ-‘Hž&·~ýú…‡‡·¶´W¯^ýû÷ïß¿¿ƒƒôÿK˧º ÔS0ºYYY£G7nÜ€²²²4ñÀÀÀÌÌÌwÞyçõ×_?zô(|÷Ýw_}õ½T&“Íœ9³¤¤Ä@#~ø!¼õÖ[ô¬T*ݺuëìÙ³ƒƒƒ÷îÝ+—Ëé^Nž<ùÎ;ï¼ñÆ¿þúëéÓ§CCC_}õÕ~ø´Î&*•êàÁƒ!!!o¼ñFLLŒT*5°FÄ<é¦Î;·páÂ7ß|ó»ï¾S( T*ãââÞ|óÍ7ß|3..N©Tê7xéÒ¥°°°×^{í—_~Ñd¥ÓTkíãšAŸ¦M›:'”ÿû¿ÿÛ³gODDľ}û§L™rîÜ9•JçÎsssãñx‰€¤¤$zv×®]µµµqqqÛ¶mËÏÏ?rä¿|ùòÞ½{ÃÃÃ÷ïߟ››{àÀ>øàçŸÖ>Þ$$$üùçŸ111;wî¼{÷îáÇ ¬Tky@JJJLLÌ–-[.\¸@‰ª««÷íÛ÷Í7ß}zûS Š/+++++Ûµk×ýû÷ —×Ï“f÷îÝ÷îÝ»yóf||üŒ3`òäÉû÷ï¿ÿ~iiéÇœ’’'Nœhjj2Ü…~S­„YYYcÇŽ¥/ùh|}}ÝÝݳ³³}}}‰U,,,N:E* 7òî»ï>÷ÜssæÌùý÷ß`ÅŠ»wï^ºt©••ÕÿüÏÿ„……µ?Õ°°°æææèèèæææ &DDD.¯Ÿ'ÍôéÓW­ZÕÜ܋Š [þúë¯ýýý‰g–Öš¢ÏúíVç¾UpìØ±§¹yÕñññ555ëÖ­ëò–»<ïÝ»·`Á‚.٠Ħ:Ñ>ýùŒNkÄ„ž›Èåòêêê“'Oj†¦IOÉó)1!3nܸñÊ+¯øûû3‹!ˆyöéÓçµ×^ë’ö‰MuaûíÄäÎ&HWñìœM“Í@È 4!ƒf dÐŒ'ܼYÏt &ÄSÝŠŠêª<G©ì-û9;2H—!‹Ÿ¦z'Íðòò ~šŽM»wí<°wwÒ»7ácW=”qãÆuºn'ït={L˜°¹¢¢þ£^ŽŠšÉt.&Ž3®_¯ª¨¨€ãÇó™ÎÅT@3/YY±àî݆ ¦Ó1 Ð P«)>?_¡P€¥%;%¥€éŒL4.\(mhxü5¥R•pI¥R3›’)€f@rr¥å“íÐÐД›{›Á|Ls7C¡P¥¤(•O––ìääË ¦d"˜»99·¤ÒíˆR©JK»*—?;w5:‡¹›‘”t™ÍÖýPÿ_5ggßd$ÓÁ¬Íhjj9yR ?Þ´°°HL4÷ŠY›‘™y¾XÕA¥RŸ>]ÜÔÔ¢¿È|0k3’“/·öl@.Wfd\ëÞtL ó5C"‘egß2ðØ(9Ù¬oy™ïµ–eMÍ#Ílfæõõë“rsŸ|ŠÍ¶ðôtd"5“À,~>†H¯^–>ùÒ°³³=hGÌó=› †A32hBÍ@È 4!ƒf dÐ „ šA32hBÍ@È 4!ƒf dÐ „ šA32hBÍ@È 4!ƒf dÐ „ šA32hBÍ@È 4!ƒf dÐ „Ì?~Y¥´´433“©T˜¥¸Xßÿ=Ó‰0Fxxø?æ)-ø|>CY1…E/++.ÓY0 õO¿Æd¶¿Üe¶ÐoìÖ â8!ƒf dÐ „ šA32hB¦óf|ñÅ,këÖ­šÈÑ£GY$  ©©éã?=z´Ý /¼£T>~» ‹Å Ö¾Z‰D,–îkGº„¦¦¦èèèÑ£GÛÛÛ?ÿüó[¶lѤ¡vþÞÞÞ‹-ª­­mgOŸ<±‹%‰ž¦ÙŽ¡§‹jjµzøðá ð÷÷×ÿúë¯êêêêêêóçÏ@õßÈår‰Dâççðûï¿ßºu+11qøðáJ¥R#Ä‘#G4M•””´3“A§1eÊ”“'OjÒ˜:u*†6pþüùêêêÊÊʬ¬¬Ù³g{zzŠÅâöôR[[ûÉ'ŸýôÓ©S§Råçç÷ùçŸë,Õ_1WW׌Œ b±±±“'O¦( nÞ¼ùâ‹/¾öÚkjµZ§…ôôtWWט˜˜Çy8pÀÏÏÃáÄÄÄüôÓOÞÞÞ}ûö]·n]@.—GEEq¹\gg稨(¹\ÞZ{öì™2e Ýcff¦——×ÿû_ýÝð믿Ž7®µÆµ«L4cÏž=>>>[¶lÑl¥”””!C†8;;GFF677ƒ†÷f—™¡V« ´oß>Š¢Ö®];bÄ:fˆÅb¨­­Õ)–››Û¿êïÿ¡PhccsðàAí$‰µµõ’%K*++éíõàÁºJhh¨D"‰€yóæI$’}ûö@]]EQÛ¶m›3gNEE…@ ;vìêÕ«[Kãܹs...t¯¼òJVV–T*Õ7#??ßÁÁžÖo\»:=®¢(êèÑ£  ]OMMuwwW(Äê;vìàr¹IIIUUU'Nœpww'š1kÖ,‰D’˜˜H¯&ÝiPPP(ÌËËãñx›6m" ïÐ.3#//ÏÒÒ’Þ—/_€¢¢"íD3èòÚœ?žÃáPZÇÉ]»võíÛ·¢¢BÓBKKË7¤R©J¥ÊÉÉÑ”€‚‚Š¢är¹Î4]ÀÏÏOsnÊÈÈð÷÷7 (‡Ã¡{·‹A3ô×®®I¾©©©OŸ>/^¤(êí·ßþôÓO[«>dÈüQÓסC‡ˆfœ={–¢(•JE§§“3ŸÏçñxÄ eâ~ïÌûMŽ=ªT*9Ž&ÂçóGŽÙZyWW×ÂÂÂiÓ¦iÇ ýüü´#Ë–-KJJzï½÷vïÞMG¬­­…Báûï¿/•JÇŒ£]ØÞÞ¬¬¬t¦iÊËËÝÜÜ4³ýúõÓ¤1}út4ÆGOëä£MII‰Ok«ÛÚÚΞ=;!!aøðáéééW®\i­º\.÷÷÷×DFEÌ>–XXüãŠÒ××WÓ{ee¥`‡èðU«J¥âóù;vìhü›>úˆÏçSŸÐ†……}ñÅ´ìzäÈ‘­[·†††þ# ‹ƒž;wNó9 ™L6oÞ¼èèè‚‚‚ØØØöçIhýÅbq^^ÆçŸ®Iššš¶mÛ6sæLzVÛ-m(ŠÚ»w﫯¾j qbõÐÐЄ„„´´´qãÆiö–~uooï«W¯jj]»F~…ñb˜>H€P(¤Õi-Ø1Ú<ªèÍf³ïß¿¯‰\ºt þ>žÓè@=z4tèÐÀÀÀ?þøãÖ­[kÖ¬.—ÛÒÒBéº÷îÝKozñX¬“'OÒ·C4iW!N/_¾|îܹåååW¯^?~ü²eË4iÐW­B¡0))iĈ/½ô’fà¦É´®ZÏž=K_µ>|ø^ªß¸vuíé––GGG___í“…~õ]»vq¹Ü”””êêê“'O<˜naÿþýšNõW“î(00°¤¤äâÅ‹¾¾¾6l  ïÓ®gDDDiGÔjµö<ñ¢K*•®ZµjäÈ‘½{÷öññY»ví”)SBBB(Ò%âŒ34-ìØ±£ÿþ^^^±±±¡¡¡\.—¸™t¦%ÉâÅ‹œœÂÃÛšštÒ°µµ1bÄæÍ›ÿúë/ýœµÿy¼¼¼Â´ÿôoÍ Š¢ÂÃÃíìì¤R©êJ¥rûöí<¯OŸ>'N¤Bm®&ÝQ||üÀ9Ndd¤L&# ïÓ®¼jíZZZrss»­»gâ`'n÷;“ÏM¬­­'L˜À`ˆð‰Z¦oß¾í v4£ÃårãââÚìhBÍ@È 4!ƒf<¡®NÊt &ቚy~·³¹YõÛo5sçz0ÐÌuÑ¿fžØØ su]Æbõb:ÆÐ¹Ê¢ð[¬0wnìùó%_2>Þ–ÀqM}½ôÂ+1‘t\5KÐ €””•—w»¦æÓé˜hÀñãùj5l6+-­étL4îÜ©/*ºG·T*õñãùLgd šz…Í~ü):Š‚k×î•–¶÷ëhÏ0h=zA©Tkf­¬Ø)) æc"˜»7nT•—×iG žPÍHN.°²ÒÝwîÔßc$ÓÁ¬Í (êØ±|…B­Ç ˜¹—/—?x ÑÓ'ú:Öl1k3’“¯XY±‰‹jk/^,íæ|L ó5C¥R§¥¨T”µµ¥þ¤§›õ-¯Î|¯õÙàáÿ–. ÔÌ …5ééWW­zYqtìÃD^¦>k}LZZáÒ¥‡ªªv2ˆ©`¾gÄ0hBÍ@È 4!ƒf dÐ „ šA32hBÍ@È 4!ƒf dÐ „ šA32hBÍ@È 4!ƒf dÐ „ šA32hBÍ@È 4!ƒf dÐ „ šA3VèÐk¢»‡àààîßVV{ûIÝß/ðù|¦79ý® &|ôÑGLô¼¼›û›7o^7÷ØNLÔ ///FŽˆg dÐ „ šA32hB¦›Áb±‚ƒƒ)­ß@‰D,«ÕÛ_˜Åb‰D¢Î¤Ø“éÁf@BB‚9¿—Ú¨ôl3"""þóŸÿÔÔÔ0È3HÏ6cåÊ•~~~ááá”Þïê?|øðßÿþ7‡ÃñôôŒŠŠjnnV©TÛ·o2dˆ½½ýK/½tẤB¡ˆŽŽvqqár¹ÑÑÑ …B¿£Ó§Oóx§Ü¿_¥RùøøÐ³<¯²²òîÝ»þþþšZ£F¢'ÊËËÝÜÜX,‹Åš1cFYY™~ôÆÂâ›Ë××—žðó󫬬4ì‰< fXXXH€P(¤Õi-Ø#aôˆE¦£gš½{÷Òûž?þ´iÓJKK‹ŠŠFŒ±aÆ]»vq¹Ü”””êêê“'O<˜.¼|ùò¹sç–——_½zuüøñË–-£(jÿþý>Ôï´Î&%%%/^ôõõݰa1Øžµ0ͳɳc†Z­ž1c†ÆŒ†††… :99¹¹¹­\¹R&“)•ÊíÛ·óx¼>}úLœ8‘>6P%‘H/^ìèèèääÞÔÔD‘lО¦%ˆ8p ‡Ã‰ŒŒ”ÉdÄ`{ÖÂ4Í0Å÷¨Ñf9vìÓ‰´ŠH$òõõÕÙtÄ`›°X,>Ÿo‚Ÿßyƈ1@3:Cß¾}#""Úì¹ ËåÆÅŵ'ØsA32hBÍ@È 4ã jµÉÝÚa4ã1*•z÷î3LgaB˜èwÔŽ?ÞþOtv ÖÖžŽŽ¯¬X€GS¼;ž››Ûýϯ½›{ÿ?ÿ>dˆC7w=aÂ//¯nî´MLÑŒîG¡P±V*m ¿sçÛL§cà8àÌ™ëMM-ž~¥¹™ð9P3ÍHJºL^K&Sœ9sétL4›O*V©ÔÀf³/3‘I€f€F P*ÕgÎ\—Hš™MÉ@3 !á’ö¬J¥>yRÀT2¦ƒ¹›QW'=wN¨s÷SÇóÄÜÍ8qâ*À?n©©ÕTn®¨¶¶‘©”Ls7ãøñ|ýÇ%,+=½‘|L³6ãî݆+W*ôïõ©ÕêcÇòIÉt0k3ÒÓ ÙlÂÓŠ‚¢¢ÊŠŠúîOÉt0k3.)•jâ"Š¢Ìü„b¢ÏZ»--Ù~~nôls³âáÿ\]ûi ˆDJÍ$À'jIK+\ºôPUÕN¦1Ìúl‚Í@È 4!ƒf dÐ „ šA32hBÍ@È 4!ƒf dÐ „ šA32hBÍ@È 4!ƒf dÐ „ šA32hBÍ@È 4!ƒf dÐ „ šA32hB¦Ã¿¹C¿{ýÙ£±Ñ¾¦ÆÍ×WÈt"F! `ýúõªÒáßéÊÌÌ4Í7µ<%ŽŽ0`@-€#Ó‰t=¹¹¹ŽŽ^¯Îü‚ÛÊ•+Mð ÷Hktngá8!ƒf dÐ „ šA32F1ƒ¥…··÷¢E‹jkkÑQ×RUU5þ|ooo;;»çŸ>99¹°X,‘HÔ=µŒŠ±ŽçÏŸ¯®®®¬¬ûÌHÝuµZ]_ÿä=7n Œ§g‡^SSóõ×_¿üòË %È0Ý1Î`±XK—.=qâ=ûðáÃÿûßÇÓÓ3**ª¹¹Y©TnܸqÀ€ÎÎ΋-¢."‘Hójxíi‹õÃ? 6ÌÙÙyëÖ­?ÿüó Aƒúõë§¹û«P(¢££]\\¸\ntt´B¡ kýòË/Æ ëß¿ÿW_}&LZ_HLL\±b…vÚ7n¶··+++išòòr777Íl¿~_fãîî®SRƒ£££‹‹Ëõë×_|ñEM0??ÿÃ?ÌÉɱµµ …ï¿ÿ¾T*3f ½ôÎ;­åLwD¿NÜpJÚè×­ÍâççGo¨Ö‚]NwŒ3(ŠÚ»w﫯¾ ...l6»´´”^tûömww÷òòr:RXXøå—_jê*•J¸wï^û»ãp8š#–X,ÎËË£ã:]‡×_ý›o¾ÑVððáà …ÂÖÖV&“Í›7/::º   66–^j g͔ͨ´Ñ¯ôA„B!­NkÁ.ÇXfÔÖÖÖÔÔÜ»w/''çÍ7ß,++ûè£ÀÊÊ*$$dùòåeeeÅÅÅëÖ­ [¸páÚµk‹‹‹‹‹‹—-[vçÎppp€Ÿ~úI"‘|ûí·íïú­·ÞúôÓOïܹ#fΜ¹gÏ…¥R)=ñå—_æää,\¸ðüùóà³Ï>ûöÛoéýÝÒÒ"—Ë­­­e2ÙÆ ±±‘˜s‡RŠôè‘áuY±b…H$ÊÏÏ_³fÍ‚ »žŽž~ }ã ^^^aaa÷ïß×,mhhX¸p¡“““››ÛÊ•+e2YsssTT”»»{¿~ýBCC5çûÍ›7;88øøø¤¦¦‚Ö8CóÿGœ–H$‹/vtttrr ojj"–T(“&M²³³Ó$V^^>wî\www{{û^x!--M³hÇŽýû÷÷òòŠ år¹­åü4)iOÓ†øøør8œÈÈH™LF ¶¹Ë:7ÎèðgºX,ŸÏÇÏg‘Häë뫳wˆÁ6¡wÖ±cÇ:T Ÿ› dÐ ¥oß¾í  4ÃDár¹qqqí  4!ƒf dÐ „ šA32hÆ.\(e:¢3÷@Ÿ{î9#%Är¹ue¥×àÁ·™N¤ë)** èè=Ð?…îh•ÁÝ»ö2™sïÞJ¦sébè°uˆ3žU&LØ\QQÿÑG/GEÍd:“ÇׯWUTÔÀñãùLçb* ‰‰—¬¬Øp÷nCaaÓé˜h¨ÕŸŸ¯P¨ÀÒ’’RÀtF&š.”64<þd—R©JH¸¤R©™MÉ@3 9¹ÀÒòÉvhhhÊÍ}¯];й›¡P¨RR ”Ê' KKvròeS2ÌÝŒœœ[Ré?¾æ¥TªÒÒ®ÊåÏÚ]Žbîf$%]f³u?Îÿ×_ÍÙÙ7ÉÇt0k3ššZNžè7-,,Íý„bÖfdf^§/VuP©Ô§O75íËÄ=³6#9ùrkÏäreFƵîMÇ´0_3$Yvö-’“Íú–—ù>QkiQÖÔ<ùò`fæõõë“rs×i"l¶…§ç3ø“Âí¤›¾ o‚ôêe9p “fÖÙÙ´#fŽùžMà4!ƒf dÐ „ šA32hBÍ@È 4!ƒf dÐ „ šA32hBÍ@È 4!ƒf dÐ „ šA32hBÍ@È 4!ƒf dÐ „ šA3[œXqIDAT2hB¦+Y%33³´´§¾V¨¸Xßÿ=Ó‰tžéÓ§<¸Ëšëè‹ä ¿™¾ËÒêv,,zYYq™Îâ©àóù]¸7»ø×˜‚ƒƒ;úV&¤K`±tïö)ÁqBÍ@È 4!ƒf dÐ „ fH¥Ò¨¨¨AƒÙØØøúúnܸ±¹¹¹£ˆD¢6¯ÓªªªæÏŸïíímgg÷üóÏ'''w6å.ƒÅb‰D"¦³h ˜YPP˜˜XQQqàÀÔÔÔèèh(--åp8*jpppøä“O ®¯¯3fŒ­­-ŸÏ¿xñâÛo¿zêÔ©¥ÚfJ]XËäè»fÁÁÁÁÁÁmsppÈËËÓÌæää 0€¢¨’’Ãù´Y@›ÿüç?!!!Ú‘¨¨¨éÓ§·³z'zlO-())éhƒíºú(f 0`Ñ¢Euuu:q'''pqq¡gÓÓÓýýýmll\]]cbbt h¶¾B¡Ø°aƒ——‡ÃY¸p¡X,¦«»ººž?^»ýÆÆÆ;wîÐÓb±øwÞqrròððXµj•L&£( >ìçççèè¸mÛ6ý”äryTT—ËuvvŽŠŠ’Ëå©©©îîî Eýú믾¾¾R©T§–6°gχ-[¶hV$%%eÈ!ÎÎΑ‘‘ÍÍÍÄ á­ú,˜qêÔ)^½z͘1cûöíåååt\û_M"‘X[[/Y²¤²²òðáÃðàÁíšéíÛ·1B ?>**Š¢(±X ô#6mÚ´Û·o ‚‘#GnÚ´‰¢(˜;w®X,Þ¿?Ô××ëü÷oÛ¶mΜ9`ìØ±«W¯¦(jÑ¢Eï¼óNMM‹‹Ë… ¨¶Ž³fÍ’H$‰‰‰PWWG  …yyy<oÓ¦MÄ á­ú,˜AQ”R©ÌËËûüóÏGŽÉf³ùåꟴ¥¥åÆR©T¥RåääÐa¢C‡MJJ¢ƒ×¯_§§@süÐA.—³Ùìââbz6))‰ÇãQÙÙÙtý)Šòóó«®®¦§322üýý)Š‹Åžžž£FÒì<Ãfœ={–¢(•J¥Ý…@   ðù|G Þ¤=Þ ©TzäÈ¥RIϪÕêõë×{xxPz455uÒ¤Iþþþ‹/6`FïÞ½‹ŠŠô;rqq9wîœväâÅ‹ÿú׿šššîÞ½ ô„¢(@лwoŠ¢àÖ­[thFïÞ½µ‡hýúõ£ãŸþ9›Í¾ÿ¾Nnú€P(ÔïB“ÌÕ«W{÷îM Þ°]nFw_›P5þü¢¢"z–Åb½üòËJ¥îËQe2Ù¼yó¢££ bcc 4èîî^^^NO~ùå—ôô믿þÍ7ßPZo|:|ø°B¡°µµuqqa³Ùš’ܾ}ÛÃÞ¶°0´A8Žfü(‹óòòàîÝ»»wïž>}úªU«Ú³ˆÛ´  ÝÝÝ »î6ÃÎÎnÑ¢E!!!'Nœ(--=þ|TTThh¨¦€T*€––¹\nmm-“É6nÜÚ4,\¸píÚµÅÅÅÅÅÅË–-»sçÿòË/srr.\xþüy@ðÙgŸ}ûí·´7VVV!!!Ë—//+++..^·n]XX˜œ5=¾õÖ[Ÿ~úé;wÁÌ™3÷ìÙ£V«—,YyäÈ‘ÌÌÌôôtýZñññ="´«ÅŠ+D"Q~~þš5k,X` Ø}táñ§ã ¥R¹iÓ¦Q£FÙØØx{{òÉ'ôaS¡PLš4ÉÎÎŽ.¶cÇŽþýû{yyÅÆÆ†††r¹\íš#vsssTT”»»{¿~ýBCCµÇåååsçÎuww···á…ÒÒÒ4‹.\èäääææ¶råJ͵‰æ@Oë¤$‘H/^ìèèèääÞÔÔôÝwß=Z.—S•œœìææÖÐРSK¿YíizEâããÈáp"##e21hx«BWŸMºò {óæÍüäN‡‰D¾¾¾:{4 ‹Åâóùô.èð¹ BÍ`˜¾}ûFDD´'ØÍ  ÃårãââÚìfÐ „ šA32hBÍxB]´íBfCG­´´´‡~5´¹YõÛo5sçz0ˆ©ÐÅf\¾|™ñ ñÎac3¬_¿i™™Û(ª…é\L‚®¼;Þ£™;7öüù’¯¿™?Ó¹˜8Ψ¯—^¸ `%&^f:SÍHI)`Pyy·kjÚxbn& Çç«Õ°Ù¬´´B¦Ó1 Ð ¸s§¾¨è=ÞR©ÔÇç3‘I€f@jê6ûñ'ð( ®]»WZZËlJ¦šG^P*ÕšY++vJJƒù˜ænÆUååuÚ…B…'@3’“ ¬¬t7Â;õÅÅ÷ÉÇt0k3(Š:v,_¡PëÄñ„fnÆåËåHôãô …¾Ž5[ÌÚŒää+VVlâ¢ÚÚÆ‹{ê¯Þv æk†J¥NK+P©(kkKý?HO7ë[^]ü¬µñðá_K—jf…šôô««V½¬‰8:öa"/SŸµ>&-­péÒCUU;™NÄT0ß³ b4!ƒf dÐ „ šA32hBÍ@È 4!ƒf dÐ „ šA32hBÍ@È 4!ƒf dÐ „ šA32hBÍ@È 4!ƒf dÐ „ šA32hBÍ@È H+tá›ÄÛ ÓkLÆÊŠco?‰é,ÈwÿnbæwºV®\9qâDFºn‹åL' ËŽ;é—3&L˜ÌH×=ŽãÇ3Ò/Ž32hBÍ@È 4!cŠf\¹rÅÒÒR{Lžššjmm]TTDÏ655}üñÇ£G¶³³{á…bbb”J¥¦°á¥Æ€Åb‰D"£vÁÝ ø|¾á2ëׯwuu‹ÅE=|øÐÝÝ}óæÍô"‰Dâççðûï¿ßºu+11qøðáJ¥²Í¥Æ[£’’#5ÌÈ.5£¥¥eäÈ‘áááE-]ºtܸqr¹œ^5yòdí=-•J½½½ãââÚ\j$ÐŒ.ê²fPuéÒ%KKË-[¶ôêÕ«¨¨HwuuÍÈÈÐ);yòdÃKKJJ4ÇHíi¹\Åår£¢¢är9½433ÓËËk̘1K–,¡K666ÚØØè¯Ñž={|||¶lÙ¢i?%%eÈ!ÎÎΑ‘‘ÍÍÍÄ`›ÛÍ °zõjМG(Š‹ÅP[[«S277·ÿþ†—¶fƶmÛæÌ™SQQ!ÆŽ»zõjzé+¯¼’••õûï¿;99) Š¢>Ç#ÛÜL™aŠ×&4¿üòËÙ³g³²²RSSé ƒƒƒ««ka¡îÛŠ ýüü /ÕŽPZ|ËËËÝÜÜX,‹Åš1cFYY§«°Ùì·Þz+))©®®.333,,Œ˜­»»;XXüc{úúújšª¬¬44ALÔŒªªªåË—oß¾= `ãÆõõõô¢°°°/¾ø‚þï€ÐÐÐ#GŽlݺ544´Í¥@_ÁÞ»÷䥛ôá„þG‹ÅyyytÜÊÊŠžNNN>vìØ¤I“<==‰ ³X,ý }¡PH«ÓZÐéþôu6Q«Õ³fÍš2eŠJ¥¢(J.—5*44”^úèÑ£¡C‡þñÇ·nÝZ³f p¹Ü––ÃKkkkàÀ=zóÍ75ë¾|ùò¹sç–——_½zuüøñË–-Ó>×P¥T*¹\®‹‹ËÁƒ5Áýû÷?|øP³F·@ëlXRRrñâE__ß 6ƒmn.g<áÇìÕ«×­[·4‘‹/ZXX$$$гR©tÕªU#GŽìÝ»·ÏÚµk§L™ÒæÒÍ›7;88øøøÐ§'º¼D"Y¼x±£££““SxxxSS“ŽE-]ºÔÆÆF"‘h¯…Ž ÚÓt ñññäp8‘‘‘2™Œlss¡OEKKKnnnç–¶‡5kÖÌŸ?¿ýåõÝj-Ø&L™ñŒ¼{ÑÚÚz„ [j˜æææªªª~øáÈ‘#Í®Gb¢#PÓáÂ… ÿú׿–,Y2uêÔö×êÛ·oDDD{‚&Ë3rÌ0S¦Lihhèh-.—מ É‚Ç „ šA32hBÍx‚Zm¢ßŸc4ã1*•z÷î3LgaJtÿÍ5¦×˜Œµµ§‹Ëû„cŒc.÷@;Öý¶ÉÑ£·ssïoÞ¼oȦsÑ¥µ¼F…e²ÿÄ݉B¡1b­TÚ2~çη™NÇ$ÀqÀ™3×›šZ =ýJs³‚étL4 )é2ýq,™LqæÌu¦Ó1 Ð hll>uªX¥R›ÍJL¼ÌtF&š-@©TŸ9s]"if6%SÍ€„„KÚ³*•úäISɘænF]ôÜ9¡ÎÝOWÌs7ãĉ«:w·Ôj*7WT[ÛÈTJ&‚¹›qüx¾þã‹•ž®û¥sì͸{·áÊ• ý{}jµúر|FR2ÌÚŒôôB6›ð „¢ ¨¨²¢¢¾ûS2ÌÚŒ„„KJ¥š¸ˆ¢(3?¡˜ï'„1åŸ=z†gëÖ­¦Ü೓f¤¥¥yxxˆÅb8räÈ!CšššÔjõîÝ»‡ foo?qâÄììlúhlàèýÛo¿3ÆÖÖÖÍ͸¿ÓÓÓGÕ»wïÁƒÿüóÏðÏÓ‹Åúᇆ æìì¼uëÖŸþyРAýúõ[¿~½¦djjêСC¹\îòåË[ZZ´W(ÑÑÑ...\.7::Z¡ ¼øôéÓ<ÏÑÑ1&&¦µ6Û쨻1Òû惃ƒÛóžûE‹½óÎ;555....\ (jß¾}\.7))©ªªêĉô+ÑKJJèTõ'$‰µµõ’%K*++> <ÐîB*•öêÕ+..®ººúÀ–––R©TS¢( •H$ñññ0oÞ<‰D²oß>¨««£K …¼¼<·iÓ&íêÛ¶m›3gNEE…@ ;vìêÕ«uÖfÍš%‘HÛlS'hxëŸÏoÏîè ›!‹===G¥Ù #FŒøñÇ5:dØŒ–––7nH¥R•J•““CÖ¡ÁÊÊê믿‹Åjµº±±Q¥Ré˜QPP@Q”\.×™.))¡K º0ŸÏçñxÚÕýüüª««é錌 u€³gÏR¥R©ÚlS'hxëÕ †Çááá×®]ûàƒèHii©¿¿¿¦À¨Q£ ·`mm- gΜ9nܸüQgý££cvvv^^ž§§ç”)SþûßÿÒ/úÖÆÞÞ¬¬¬t¦5øúúÒ~~~•••Ú‹ÊËËÝÜÜè¾f̘QVV¦Ÿ¤»»;èôKlÓ@GÝ Ãfܽ{w÷îÝÓ§O_µjñðð¸zõª¦Àµk× · “ÉæÍ›]PP«‰kÜ—Édjµúøñã ï¾ûîk¯½ÖÐÐÐÑ<éh …ônÖÀáp4G)±Xœ——§_8H"¶i £n†I3Ôjõ’%K"##9’™™™žžK–,‰ŽŽNMM­©©ùã?V¯^m¸‘––¹\nmm-“É6nÜÿxÕ*‹Å JLL”H$r¹ÜÊÊÊÖÖ¶£©®X±B$åçç¯Y³fÁ‚Ú‹Þzë­O?ýôÎ;`æÌ™{öì€øøøGu¢Mu7F:KµgœñÝwß=Z.—S•œœìææÖÐÐ —Ë?ÿüóAƒÙÙÙMœ8ñ×_ƒã Š¢vìØÑ¿//¯ØØØÐÐP.—«ÓŸÏ÷ññ±¶¶öóóKMMÕ©ZCýiºd||üÀ9Ndd¤L&Ó®.‘H/^ìèèèääÞÔÔô4mê o@x†G m¢½Á ÛìDGF5£gÜéBº4£ úöíÑ m££§ÁXŸž7oà§ýŒ ‹Åâóùô¦îrð˜A32hBÍ@È 4!cÄï¨ýùçŸ3fÌ0^ûˆQ1–&L0Rˈ†àà`///#5n¬;]HOÇ4!ƒf dÐ „Ìÿ¢…„«åømIEND®B`‚XQilla-2.3.0/docs/simple-api/classScope__inherit__graph.map0000644000151400015140000000035611653571064020626 00000000000000 XQilla-2.3.0/docs/simple-api/classATAnySimpleType.html0000644000151400015140000002405411653571064017534 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATAnySimpleType Class Reference

This class represents the atomic types (ie, the simple types which are not list or union types) with type annotation xs:anySimpleType. More...

#include <ATAnySimpleType.hpp>

Inheritance diagram for ATAnySimpleType:

List of all members.

Public Member Functions

virtual const XMLCh * getPrimitiveTypeName () const =0
virtual const XMLCh * getTypeURI () const =0
virtual const XMLCh * getTypeName () const =0
virtual const XMLCh * asString (const DynamicContext *context) const =0
virtual bool equals (const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0
virtual
AnyAtomicType::AtomicObjectType 
getPrimitiveTypeIndex () const =0

Detailed Description

This class represents the atomic types (ie, the simple types which are not list or union types) with type annotation xs:anySimpleType.


Member Function Documentation

virtual const XMLCh* ATAnySimpleType::asString ( const DynamicContext context) const [pure virtual]

Implements AnyAtomicType.

virtual bool ATAnySimpleType::equals ( const AnyAtomicType::Ptr target,
const DynamicContext context 
) const [pure virtual]

Implements AnyAtomicType.

virtual AnyAtomicType::AtomicObjectType ATAnySimpleType::getPrimitiveTypeIndex ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATAnySimpleType::getPrimitiveTypeName ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATAnySimpleType::getTypeName ( ) const [pure virtual]

Implements AnyAtomicType.

virtual const XMLCh* ATAnySimpleType::getTypeURI ( ) const [pure virtual]

Implements AnyAtomicType.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/MemBufInputSource_8hpp__incl.png0000644000151400015140000001043511653571064021013 00000000000000‰PNG  IHDRËuoY‚abKGDÿÿÿ ½§“ÒIDATxœíyTg÷ÇŸ$ìðJXŠB+‚Ê‹¤hõÈ9"%q¡(êË¢¨hëÒ*Aÿh nE«µG¥€´= 4-Z@«u­(Z›#¤µ–M+†°hB! óûcΙÆl„1Æßýüõ̹wî½óÍ<ÃÌP0 C@Tc'¼æ€Âr…ä ÈÅLŸÝ»w߸qÃ੯8üñ;ï¼3R/}Æãñjkk}}}õðL”ªªªääd=õQBÈ××7##C?_À©ªªÒÏ®Ãr…ä È ( Æb±”ž¬oß¾ÅbñùüÑ„%ˆˆˆØ¹sgWW—¦1 Û»wïÂ… ßÑìZ‰$77766vþüù 'Nœ0ø^†…¤êF ¹ç°¶¶¶¦¦&b±§§§¶¶vôa³³³OŸ>]ZZzðàÁÎÎÎ#GŽhÚòùóçW®\ùöÛoG¿SEÁ’%KˆÅ#GŽ444ìÚµ‹Ãᤧ§WWWçååv¦ ¹ {ûí·ï£ÜºuËßßôaétº£££““Ó”)SRRRîÞ½«iËþþ~„‹‹ËèwªÈÐÐPww7±xóæÍäädooo:Îd27oÞ\]]mØ=š.ä*,88¸ªªŠ˜(¯_¿®øØA&“åååEEEEEEåååÉd2„‹ÅºpáBbbbddä©S§.]º~üøqµ» Ñh!>ŸÏb±p#1~ÿý÷BK—.Uud±XW®\ILL\¼xñwß}GxUWW¯\¹2**êèÑ£ƒƒƒº„µ±±)++#4Çd29>‹Åûöí[²dɲeËrssÔÄ\.wÅŠ÷ïß?qâÄŠ+"##³²²Äb±–v)qïÞ½øøøˆˆˆ“'Oj¯HÉ8Ìä*lÚ´i‰Ÿ({{{¹\îœ9sˆµ¥¥¥àرc_|ñ—Ë=qânÿí·ßrssSRRòóóoß¾]XX¸aÆ¢¢"âJ¥R‰DÒ×××ÒÒRPP0oÞûìÎ;§NÒ%,›Íær¹111l6›Ãá´··[>|¸³³3//oÿþý¿þúkII‰–v}ÿý÷;v쨭­½qãFVVÖ—_~ÙÒÒR\\¬½]ŠÜ¹s'???==½  €h—ÚŠt)Ó «0*•„O”·oßöóó3f ±öÂ… [¶lqqqñôôLMM%&»+VØØØ„……!„âââlll,X€"D°nݺE‹…‡‡¯Zµª¾¾>$$D¿ô"##íììæÏŸ"ŽÇ† ÜÝÝ}||Ö­[wùòe]âÌœ9“Ãá>|ØÏÏïâÅ‹qqqW¯^EÉd²k×®mÚ´ÉÕÕÕÓÓsÍš5Ú¦¤¤LŸ>ýêÕ«k×®õôôœ8qâöíۉ翚ڥÞºÀÀ@¤Ð.µéQ¦~èù\Rw‚ƒƒ8””¤4E"„ÚÚÚ¢££‰E[[[|`ccƒ233S3 „PiiéÖ­[ñiŽ@ÇWÃUƒ»»»ãÎÎÎaÃJ¥Ò[·nûøøøøø¬\¹ò›o¾ÉËË ‰DCCCnnnø– C{@„P{{;‘Ä &L˜€5µK'''„…B¶"-eÒï‡ùùùõõõñx¼{÷îáŸ-{{ûâââÊÊÊÊÊʳgÏâSψ°´´ ïèè nXÈår„гgÏtqW:8OŸ>Å---øÓð={ö4771gÍš…oïàà@¥R¾ªµµ×´¦€¸ÖœœÚÚÚpKcc#1KêÒ.Ý+Rk$Ò†O”‡òññ¡Ó銫æÎ›ŸŸßÞÞÞÜÜœžž^VV¦cÌ®®.¡P( ;::JJJ\\\ètºBèÒ¥K}}}š.¼t!;;›Ïç?|ø¿ÂÓV"‘ „¬­­ÃÂÂvîÜYSS#þøãÜÜ\|â633c±XGŽ=*,, 6ϰ°°‚‚‚G=zôèðáÃÄUÚvýôÓO½½½#ªH‹‘ HŸ%B,«¼¼<**JÉž”””œœL¡P‚‚‚RSSu ¸qãF|@¡P&Nœ˜™™I¡Pìíí“’’rrrŠ‹‹?øàƒ_~ùE¿lCCC·mÛ&•JCBBâãã-,,TÃŽ7ÎÏÏ/::úüùó¡ôôô¢¢¢üü|>ŸïààÀb±V¯^GÛ²eKvvöúõëÍÍÍß}÷]M‰—J¥l6[*•mQÛ®ƒúûû«15U„ωJFýz¥ =þ›mùòå¯ßûa|>?!!¡²²Ò؉ µéW&‹Åâp8Ë—/ið\ PØ¿ØÚÚFDD; C¢¶¢—\&(ì_ètúÖ­[…!Q[ÑK. ( P@. 0€\@a¹€ÂrÑó©QmmmZZšaS^KôQX@@€Áó0 „B«æfû™3Û‡ßôµÃÓÓsüøñz8êó\òÿ-÷ׯÿ¶µõKc'bJÀu@. 0€\@a¹€Âr…ä È ( P@. 0€\@a¹€Âr…ä È ( P@. 0€\@a¹€Âr…ä È ( P@. 0€\@a¹€Âr…ä È ( P@.ðˆÚhmíZ½ºP&“ã‹É PØË`üû+™ÿý¯[vv‚‘²3 ^ÆïKš.nnt©t ±±CÑøð¡P(("Âßy™0KÃÿþ7ÛÌLS—(Ë–Íz©Ù˜  °aˆŒœ!—«¹ R)L¦»»»ÃËOÉ´… ƒ›}Æ *UùÚ©T8é(lxbbf©* ð%K¦%Ó6<þJpÓhÔ€/'';#edJ€Â†ÇÑÑ60ЛFû·W†ÅÄÌ4bJ&(L'¢£g*Þ8¤Ñ¨‹1˜  Ó‰ üÌÌhøØÌŒêûŸÿX7%S¦vv–aa¾øD)—cK—Î0vF&(LW–.}{hh!dmmêkìtLP˜®°X>ÖÖ Z¸ÐÏÒž¶éÊ ’H$"‘ÈX©¼ú„†N­¨¨c±<[[[Ë«‹›››ââ ëé驯¯¹ù˜¾¾v••–ööýÐ%-hSNppðKÊÅÔ Â(Ç–±yEéèèxðà’®ÃF•JIM 6v&(ld˜›ÓŒ‚‰ È ( P@.&¯°'Ož¬Y³Æ°¡(Jcc£Ab*"‹ÓÒÒ&Nœhmmííí‘‘!•J ¾—a!©:M˜¼ÂÊÊÊ"##_µP8ÍÍÍÎÎÎÄâ¦M›¸\îéÓ§Ÿxð€«z …BssóƒŠD¢¡¡¡žž¹\®É=::Z(b¦Ö«¿¿ÿÏ?ÿ‹År¹üúõë„nÔæO„ÂT†÷d``·+Ö…a‡ÃñòòÒEa†Éd²ššš]»vM›6F£„PUU†ar¹|ØŠ”Œ˜V ¦0 ÃvíÚE£ÑÚÛÛ ‹•Õ oÛÛÛã) àky<žjU/ ÃnÞ¼ckk;wîÜóçÏkrïééY¼x1±¨ê…aXyyy`` ¿¿?þG"¡¥ü•B))쯿þR´ãuI$ÜX[[kee¥(üÍ ìE…‰Åâ’’™L†/ }òÉ' ð––Å€uuuÚêÑREBõõõ:V¤dTÝ"†¹Cµ´´dgg‡††nÛ¶0:;;GE$ÕÔÔàvsss„››ÛãÇqËýû÷÷îÝ«ÉK"‘ ýðÃB¡0)))""B(ªuÿùçŸ,X€ÕzI$’åË—³Ùl.—›““£%ÅPªP©jº„„P}}=ñ¾ŠL&Cñù|Õí1 ‹‹‹ãñxø"…B™?>¾ýرci4Zss3¾ª©©‰Á`h 8Ò–ª&C\á [‘ZãÈVƒJÈåòÐÐÐÝ»w …ÂqãÆUTTàöÍ›7ÇÄÄ<~ü¸¶¶vöìÙ7nTüfdd0™LÇãñæÌ™“œœ¬ÉK"‘XYY•––vvv~ýõ×VVV‰D­{BBŸÏÇã¨õ‰D åÂ… ½½½ééé!.—«6ÅP˜Ê9LiŒ×Åb±îÞ½ëííýé§Ÿvvv"„ ÿù矨¨(¤pÊéééÁÝ'Ož|îܹ¦¦¦êêꀀ€?ü_ÒÜÜÌãñ|}}µiK1 ËÏÏïêêQEjÚµa˜YòèÑ£o½õ~¢þñÇ]]]ñË—îîî5kÖ888899¥¤¤ôöö*¶C*•¦¥¥¹¹¹ÙÛÛÇÆÆŠD"Ü®ê…a‡Ã™4i’……ÅÔ©SËËËÕº ,Z´H11U/ Ã:äèè8~üøœœœØØXÕüÛÛÛ•B颰‚‚‚ &8;;oÚ´ ŸJöìÙC§Ó'MšT^^Ž>88hgg‡»Ëd²ÌÌL&“immýæ›onß¾˜ƒ„BáÊ•+œœ\]]?úè#Mõn©i*S jõóÂ÷‡áoÁˆÚillôööÆ^£ï]S[‘eªÕÉßÓ^q@a#f̘1©©©ÆÎ¨­ÈPeÂ,  ˜%# È ( P@.jþ羔бX¬jT£0øRÀ€À¯Îä×a¹€Âr…ä Èåÿs¨ráš"¤IEND®B`‚XQilla-2.3.0/docs/simple-api/classItem-members.html0000644000151400015140000001407311653571063017071 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

Item Member List

This is the complete list of members for Item, including all inherited members.
_ref_countReferenceCounted [protected]
asString(const DynamicContext *context) const =0Item [pure virtual]
decrementRefCount() const ReferenceCounted [inline, virtual]
generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const =0Item [pure virtual]
getInterface(const XMLCh *name) const =0Item [pure virtual]
getRefCount() const ReferenceCounted [inline]
getTypeName() const =0Item [pure virtual]
getTypeURI() const =0Item [pure virtual]
gXQillaItem [static]
incrementRefCount() const ReferenceCounted [inline]
isAtomicValue() const =0Item [pure virtual]
isFunction() const =0Item [pure virtual]
isNode() const =0Item [pure virtual]
Item()Item [inline, protected]
Ptr typedefItem
ReferenceCounted()ReferenceCounted [inline]
typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const =0Item [pure virtual]
~ReferenceCounted()ReferenceCounted [inline, virtual]
XQilla-2.3.0/docs/simple-api/ATDoubleOrDerived_8hpp__incl.md50000644000151400015140000000004011653571063020571 000000000000002f15c404a3c38649a8f3696cc34a1c26XQilla-2.3.0/docs/simple-api/inherit_graph_42.png0000644000151400015140000000611411653571064016463 00000000000000‰PNG  IHDR‹(€}A(bKGDÿÿÿ ½§“ IDATxœíœP×ÇïH­‘,$ø*¡À(Œ3:-SÚ SèÐÑZB‹¢¶"Rmeä‚>h(Å1­<Û[Ç6Št„2ÄØJ 8–'õ `RKm€ÒJEÁ`~íûcßl×üä‰ÀÞÏðÇݳ÷ä~÷žÃÙìÍî"†¡$N -@l+¡.°BA ê+¡.Îä¶¶¶âââ…’¡ùùùÑÑÑ ­âÄÆÆ.´È}ÚÙÙY£Ñ=zÔªûøø¸X,¶l~ùå‹ÕÕÕ…ïrww( «ãâ^ÉÉÉjµúÔ©S€¤¤$µZýå—_FGG1 Ûºuë† úúúd2Yxxxaa!ù¿ûî;///½^aXyyyXX˜Édr(F­VÓéô;w–——îÝ»‡{%&&ªT*±X ³ÚS,ûûû766ŽŒŒH¥R.—‹GÐ~84ý$ Þ6™LW®ÜÚ·¯œËÍEÑL6ûï(ºŸü×ÑÑç0gf Y}òòòÅÅÅfîÝÝÝ“““jµº··wóæÍk×®Å0Ìê”âEöMHHP«ÕçÎÃ3Á`0( <І‰D¢Õ«Wc0ëfuVëÏ£T(•JÅf³ù|~aa!a ÂÛR©tÍš5¸8™L†aXpppmm-¾÷çŸ&Ú–^J¥ÒÅÅ¥¤¤D¥R™L¦ÉÉI£ÑhËÝxÞ{cbV^^KØ­Ž‹ïíììÄ0L§Ó™µ …N§£Ñh?ýôîU[[ËårÉÇh0X,Vss3†a¯¾úªH$š‰˜ôôôh4£ÑØÖÖF(´´´Xí^QQAø7ß|ƒGÐ~8‚W„ŽŽ¾üüÚU« Pt@@–Ya¢`…2™L7n¤Ñh)))fî...ÑÑÑø$[RË ÕÚÚŠa˜Ñh$¢ƒ311‘››»bÅ ûì3¡PyðàÁøøx[îö»ví:|ø°Ù÷[;jŸ~úi~u@n†‡‡Fc`` ¾ÉårÉÇH£Ñ6oÞ\[[Ëç󛚚ðÓ C1t:ý×_MKKÓh4d???²«=ûúúÂÃà —ÐÐPûˆKµÏÈÈäSOEˆD7îÞý·³³“Á`èõF[ý…Â-[¶ÄáÇÎW׿ͤ[EEEkkëåË—_yå•ÄÄÄ7» ~ª'cgòÉàprzhI¤²²2'''..îúõëL&“°Ã¬³<À™d-e¥üöíÛŸþyLLLVVaôöö&N/*•ŠxF?T??¿ÜÒÝÝ}øða[^Z­Öd2UWW+•ÊÔÔÔ×^{M©TÚr·OTTÔäääÕ«W¥Ré¦M›È»l©µƒ¯¯/FëïïÇ7ûúúüýýÉÇçÏŸ¯ªªŠŠŠb³Ù3£Õj“’’rrr:;;Oœ8Av1û—°ÚsÅŠ7oÞ$úôôôØ?@[K3¤CšÃnK—º._î>§f³>ܹs'##ãèÑ£/¼ð‚P(LOOw¸àmgòÉX>G}ìØ1¡PØÐÐpêÔ)ry0ë5ëlâð[–F£1&&æ£>R*•,«¾¾·gdd$&&â?p®[·îý÷ß'[ …|>_.—ËåòçŸ>--Í–—V«uss«©©ùꫯÜÜÜ´Z­-w;ëPøLíÝ»—Çã½ôÒKfvËqÉ{mµ·lÙ²aÆþþ~¹\öÁ˜] __ß3gÎFûbT*‚ /^œššÂ{"_28ìyüøq6›ýý÷ߎŽ677#â0H$’?ÿT‰ÅmqqÿDÑý–ËO”ºÊ3™L ÑÑÑF£Ã0NÇçó“““ wòÕÕ)Å'jrrÒÒoãk:•••=$0˜u³ÎºÇ³uüøñÕ«Wët: ÃΟ?¢¨R©Ä0L­V¿óÎ;^^^»wïžšš"‹›žžÎÎÎöóóc0ÉÉÉ*• ·[zá2étzHHH]]wòä61Ñ­­­€/¾øÂÌnu\‡¹¢T*·mÛæåå…¢hff¦V«µ À»ï¾»dɵZý×;sìØ1OOO‡sâĉääd[,{ÆO?ý400Á`ÄÅÅÕÕÕ1™L‡ápˆYE¸uk¨¤äâÚµE(ºŸÃ¡âJyYY™««ë­[·Ë?þèääTSSƒÙ®P˜µ)ÕëõQQQK—.%†6 „Õߤ0˜u³ÎºÇ¶R±Ã¡C‡¶lÙ2oÃ544tww›555øúë,±ZŒFÓ?(²²$AAy(šI¬S¡B=á,ެ³Zí›óÏôôtiié|¾R&“¥¤¤tvvÞ¿ÿÚµk»v횣±œœçžã–”$ݼYüõשqq«èôGù¥òYôY3ì±ÑÑÑñúë¯ïÙ³çÅ_œ·A8pÿþýM›6ŒŒ¬\¹rçÎééés=¨‹ -66,66ljêAc£ÜÇgÙ\±Å¢Ï:#Ý-‚¿…“l<™ "‘H¨óÖ]ªéÌVë¼Êƒ@ ÔV(B]`…‚@ ÔV(B]`…‚@ ÔV(B]¬Ü;ÿ: ûã/-‚,V†‡‡-U(‡#æK„º‡³Ð*þ¦å“€‡‡‡å{Zx&¡,p PX¡ u PX¡ uù/ˆ›sÑAŸjIEND®B`‚XQilla-2.3.0/docs/simple-api/DebugListener_8hpp_source.html0000644000151400015140000002247311653571063020573 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

DebugListener.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _DEBUGLISTENER_HPP
00021 #define _DEBUGLISTENER_HPP
00022 
00023 #include <xqilla/framework/XQillaExport.hpp>
00024 #include <xqilla/exceptions/XQException.hpp>
00025 #include <xercesc/util/XercesDefs.hpp>
00026 
00027 class StackFrame;
00028 class DynamicContext;
00029 class XQException;
00030 
00034 class XQILLA_API DebugListener {
00035 public:
00036   virtual ~DebugListener() {}
00037 
00038   virtual void start(const StackFrame *stack, const DynamicContext *context) {}
00039   virtual void end(const StackFrame *stack, const DynamicContext *context) {}
00040   virtual void enter(const StackFrame *stack, const DynamicContext *context) {}
00041   virtual void exit(const StackFrame *stack, const DynamicContext *context) {}
00042   virtual void error(const XQException &error, const StackFrame *stack, const DynamicContext *context) { throw error; }
00043 
00044   virtual bool doLazyEvaluation() const { return true; }
00045   virtual bool doFocusOptimizations() const { return true; }
00046 };
00047 
00048 #endif
XQilla-2.3.0/docs/simple-api/MessageListener_8hpp__dep__incl.md50000644000151400015140000000004011653571063021407 00000000000000c8b3a605c8fd757cac585b09d9530e87XQilla-2.3.0/docs/simple-api/classEventHandler-members.html0000644000151400015140000001343011653571063020546 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

EventHandler Member List

This is the complete list of members for EventHandler, including all inherited members.
atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)EventHandler [inline, virtual]
attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName)=0EventHandler [pure virtual]
commentEvent(const XMLCh *value)=0EventHandler [pure virtual]
endDocumentEvent()=0EventHandler [pure virtual]
endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName)=0EventHandler [pure virtual]
endEvent()=0EventHandler [pure virtual]
namespaceEvent(const XMLCh *prefix, const XMLCh *uri)=0EventHandler [pure virtual]
piEvent(const XMLCh *target, const XMLCh *value)=0EventHandler [pure virtual]
setLocationInfo(const LocationInfo *location)EventHandler [inline, virtual]
startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding)=0EventHandler [pure virtual]
startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname)=0EventHandler [pure virtual]
textEvent(const XMLCh *value)=0EventHandler [pure virtual]
textEvent(const XMLCh *chars, unsigned int length)=0EventHandler [pure virtual]
~EventHandler()EventHandler [inline, virtual]
XQilla-2.3.0/docs/simple-api/ExternalFunction_8hpp__incl.png0000644000151400015140000001732611653571064020735 00000000000000‰PNG  IHDR½uU€¨~bKGDÿÿÿ ½§“‹IDATxœíÝi\×Úðˆ‘MT@QõµØºEÑâ‚Kmíu´•"KÜÊ¢pYê†?ƒ¨p¤V+j¨ZÅ"¸"‚ ;B0€dÞӛɆåùsfžsæäÉ™ÉdBÁ0 ›Ù@7yyyC%;ÐþfÍšEv@aS§Nõ÷÷'; È›=ÐÕ«WG¥§§Gv @^Ož<ÑÖÖ&; /È›=“““ÓôéÓÉŽÈkÇŽd‡×7@17@17@17@17@1ðyz/E§Ó¥ ÙlvgÆPRRâêêŠï´£ã‘ÜWÛÐét‹eddÔ^!î òfïk`` Ïšeeeiii]$9I†M£Ñ F;nôf7{/--­ȳ¦H$âr¹]'9I†­©©éææÖ޽\ߟ¸}ûöÒ¥KëêêB×®][±bEccㆠBß}÷¾Ž@ ˆ‹‹[¼xñâÅ‹ãââAII NÏÎÎ^¾|y^^N¿zõê?ü°`Á‚Ó§Oãµîܹ³nÝ:‡%K–œ:uJž`ðÍJ/Ko_(?~|ùòå‹- ­¯¯GI†-Y½¾¾>,,láÂ…NNN‡âóù„Û”öàÁGGÇÄÄDñ6ÿúë¯+V,^¼xÿþýÍÍÍ„… еAÞì½yŸB}ýõ×ãÇ?pà‡Ã9pàÀöíÛÕÔÔ<ˆ:wî^1%%¥¬¬,>>>***;;ûøñãxùÙ³g·lÙ2|øp„Э[·8àîî_WW÷ñãÇ€€€ádzX¬õë×>|¸¶¶¶õx„Ba+Á·Ø~JJÊ7BCC÷îÝûîÝ;‹…j¶XLLLUUU\\ÜîÝ»ïß¿Ÿ””D¸MéÞ½{÷ðáÃL&óÈ‘#â™ljjjhhè®]»îÞ½+~? ,=äÍÞkíÚµs?…—oܸ1;;Û××wáÂ…#GŽ”®xéÒ¥ŸþYOOÏÔÔÔÝÝýÞ½{x¹›››­­­ššBhÑ¢E4íÛo¿Eq¹\UUÕ£Gzzzêèèà_œohhh=ñf µØþÅ‹W¯^mjj:lذ͛7[YYɪ(®_¿¾qãFSSÓU«VeddnSºîòåËûõë7yòd„8±®_¿ÞØØØÒÒríÚµâM‚®oö^²>¦ÑhóçÏ?qâDTTaÅòòò%K–ˆÿTWWÇLLLÄ…ººº!*õŸF¥R‹‹‹###y<>!•'ž’’ñr‹ti±ýŠŠ ccc|yÈ!C† !ÜBˆÃáˆD"CCCüO##£ªª*ÂmJÓÑÑAQ(ÉBñ~MLLÄ›",=Ì7AK•••çÏŸ?~<~ž+MSS“Åb±Ùl6›žž.^M2ã´H.MMMAAAßÿý¯¿þêåå¥P<ø ûû÷ï% [l_GG§¼¼_.((ÀÏÓ ikk+))•••á–––âéRz›ÒW(..ÆÞ½{‡'VY… Ç€¼Ù{ÕÖÖÖ| !„aXxxøwß}çïïÿðáÃÛ·o‹×Ç/€"„¦L™røðኊŠÂÂB&“™ššúÙ}577 *•Êçóñë¡?~ül-†ºråÊÇ¥/SJš={ö‘#GŠŠŠŠŠŠbbb***¤ÃÆQ©T:¾oß¾²²²¢¢¢£GÚÛÛËÚìÅ‹¥¯'´Ròüùó#GŽˆŸ|JXz 8Oï½~úé§%l6;55µ¶¶–Á`P©ÔM›6íÙ³g̘1úúúcÆŒY²dÉï¿ÿŽZ³fMllìºuë(ÊÔ©SÝÝÝ[L¥Ñh´õëׇ„„ôíÛ×ÙÙyæÌ™L&366¶õZššškÖ¬9xð ‹ÅúñÇoÞ¼)kM—ÆÆF??¿ÆÆF;;;www„P‹°Å~þùçØØX•3f¸¸¸ÈÚldd¤øB!{{{ŸÆÆÆ™3gº¸¸àgå- [o&èv(ð;À=…B „çov4Âï µí‹I;vì8pàÙ³gÛ5@ÐQà<y€6RWWwtt”§ô07h#---oooy Ayyyyyyßê(Š©©©¶¶6Ù´$ª))5Q(¤ 9¡°²r3B"²¥°°ÐÞÞ¾/Ô]À÷Ó{ '''²C P^®^TÔÈ:CÃz²bxôh HD1¢V]OV „LMMíììÈŽÈ æ› ÃUýüsÒ£Go™Ì9nnÓUT”ÉŠ¤¸˜ãí}úöí—«VMñ÷wTU…yh È› ‰DØ¡C×£¢þ05¸oŸË¨Q†dG„0 KLÌÚ±#ÍÈH;&ÆyìØÁdGºÈ› £””à“»º¯¯CŸ>]hr÷ömµ·÷é{÷ ÝÝéLæ§À ;‚¼ Ú>§ ¾0hPÿ½{Ç—ù«$ƒ J51щ‰q3Ƙìˆ@·y´³²²ZŸ37oæ{xÐ}|¾USS!;¢Ö¼yS½iSÒǯÝܦÃÄÈ ò&hO,Ö ::11Œ †‘Ž\D"ìØ±›!!éææz11ÎVV¿U€$È› }TT|ðõ=Ãf?_¿~FןfJËÏ/÷òJzö¬Ô××Áî¬ _ 2AÞí 9ù¾¿ÿùÔ££'š’N ¢øxvDÄå1cŒ¢£ÍÌôÈŽtQ7Á©®®ß¶í?¿ýöÈÅÅÎ߆†Ù}©çÏ˼¼’òóË}|¾]¿~†’Òg~ôB7AÛýþ{î–-ɪªÔ¨¨ï§M³ ;œvƒO<ÃÃ/kÃ6l Ù®ò&h §aË–”ôôW×I¿ü² ÿn?Í”öìY©§ç©ÂÂ*oïÙ0ñ’ o…ýñÇãÍ›Ï*))EF.Ÿ1Ã’ìp:Ps³pß¾Œè茯¿6ß³ç{#£.÷¨@ È›@>|d2“ÿ;Ítìß¿/Ùu†ìì7^^§**¸þþ \\ì(˜xöv7¼22ž0™g¢DD,³·Ev8ª©Iy9.Ž=eʈ¨¨åZdGÈy|^}}ÓÎi‰‰YóæY‡†.ÕÑ¡‘9>|íå•TUÅýå—®®“Èò&øŒ¿þ*ðöNjhh ]êèhCv8$kllŽŠúãСëtúÈÈÈåƒi’ äM ÓÇü  ÔÄÄ,‡Ñ»w/ÓÕí¥ÓLi÷ïyy%UW×/vrú?²Ã ò& vçÎ+oï$.·1, ¦™x<þž=Wº>oÞØÐÐ¥¨“è<7AK<?00õÔ©¬Y³¬vï^¦§§AvD]×/||Î455‡…9ÍkMv8 “@ÞŸÈÉyëå•TQÁ w‚i¦<êꃃ/$&fÍŸ?6,l©¶6L<{>È›à|¾ "âr|<›N· _6hP²#êN23Ÿûøœ …»w/ûöÛÑd‡:äM€B¹¹ï¼¼’Š‹k­ÝmÃå6†„\`±î8:Ú„‡;ijö#;"ÐQ oövÍÍÂððKññl;;³¨¨ï@vDÝÛµkÏüüÎ(++íÙóý”)#ÈtÈ›½Ú“'%žž§Þ¾­ „if»áry!!鉉Y..v i´>dGÚäÍ^J(EG_Ù·ïê„ C÷îe˜˜èQOóÛo¶nMé×OuÏÆ7ߘ“hO7{£‚‚J/¯SÏŸ—-‚ifÇyÿ¾~ëÖ”ßÏuq± ZÔ¯Ÿ*Ùöy³w EqqìÈÈË66&{÷2†Õ%;¢ž/==gëÖ µ½{vvfd‡ÚäÍ^¤°°ÊË+)7÷ŸüôX§ªªªÛ¼9ùÊ•ÇÎÎv;v,êÛ&žÝäÍ^A$ºõ‡……~t´³……>ÙõFéé9›7'ëéõŽfØØ˜h;È›=ßë×ï½¼’þþû “9ÇÝN¥Â4“4••uLæÙëןº»ÓýüTU©dGÚòfO†aXbbVpð…¡Cu££-- ÈŽ „Pzz“™l` Ͱ¶Lv8@a7{¬ÒÒZŸÓ·o0™sÜܦ«¨(“øŸâbŽÏé;w ÜÝéLæ8:Ý äÍž‰Åºrað`}ûœ-- ÉÀÏvìH31ÑÙ·ÏÙÊʈ숀¼ oö4åå|}Ïüùç º¯¯CŸ>p­K{÷®ÆÛ;éÞ½"OO{/¯Ùp“C·y³Ga±î„„¤ëéiDG;7„ìp€\ð‰gPPêÈ‘ÑÑÎææzdG>òfw"ŠD"ŒðZXuuýÖ­)—.åÁ4³›zó¦ÚÛ;);û¯¯Ì»ky<>ÜûÙ@ÞìNÂÂ.R(”Í›ç¶(¿xñÑÖ­)ýû÷‰q?~(¡v a§Ne¦ZYEG3LMJþ—Ï8:Æ„…9ÙÚ½Ÿ$ƒ‹)ÝFfæóýû¯îß5'ç­¸Ãipw?áî~bùò¯®^õƒ¤Ù­))Q\]']¾ì- íí#¸&ýoZy9/¯xíÚã\.Ä ‚ùfwQQñaúôÝ\n#…B11Ña³™}úPÿøã1“yV]½Ot4câDS²cíF Ådz#".ÛØ˜DG3†ÕÍÎ~³`AŒH„Q©J3gŽ:~| Ù1öj7»æf¡£cÌÓ§¥!¤¬¬äê:‰BA'NÜ^²d|pðbx´xôèÑ;/¯SååÜ€ÇÈÈ?**>àÓO%%Ê/¿,ðð˜Nv€½äÍn`×®ßb …"q …‚ÌÌmß>~ʦgÃô)#ãÉ«W•’@Y™rþüÆ †‘[o×7»ºŒŒ'\—|Í „(¥††¦o¾NVT s¨ªR'OþòeE‹€eíÚãN9aõz7»´òòžž‰Ò‰DUUÜàà d:O}}Ó¦MIÒ– E557nL„óER@Þ캑›Û‰††&ÉU%ÿËbÝÉÌ|ÞùN³cGÚû÷õ"‘Hú_Í~~ìØÍÎ @Þìºbc¯>|øZ x͈mÞœ\Wרi!Îtófþ©SY„ïšb;w^xú´´ÓB8ø\¨‹ºsç•“Óé×L¿~ªÍ¡Q£Œ¦N1mšÅW_™Âc{¤êêúÌÌç·n½d³ŸWVrUT”) Ÿ/\GYYÉÈHûÚ5?uuøÕÌÎy³+ª¨ø@§ïær›ð4*~’¥¥n9uêˆ †Â÷íz•Êʺ»w_ݼ™åÊ“ÊJ.þ-LüÃ"*UiÖ,«£GW“c/òIÞäñx‡ÄhBH$Â~ú)ùÞ½7 Ã0mí¾vvÃ&Nòÿg¢¯ßŸìè:[ß¾}µµµ¿d =lT …¢/*ïÝ{s÷î›GŠù|!>Nüý¿]¸Ðšìèz2mmí¾}ûâËŸäÍÊÊʧOŸ’øGzúËÔÔ| kk½Ñ£k™heeõ%[èÁ£º¹Y”Ÿ_óøqennUyyýŽS{ùhéP£FÒÓûçQU×ŦOŸÞ©á †éè˜ïÞ½~!ôäÉ“öÚTOÕ³fý³PW×XQÁ…gÐuÌÌLÉ?áó„®…B¡ŒcLv ûÑÐPÓÐP#;ŠÞ&5 È› È› È› È› ˜Ì›øs\¤ZñöíÛU«VaæêêJ£Ñ:.¼/ÔJ[ð&üý÷ßT*599Y\ž––¦ªªš——‡ÿÙÐÐÀd2ÇŽK£Ñ&Nœ*P›úB¤½ZúY ¥   Óv×àC賫É!òŒ@ …2|øð_œ3gŽøhVéÂÖ¾d`’ƒsèС+W®¬ªªj¥uŠ&·˜7µ´´6oÞ¬h­ÔÔÔE‹•––&&&vÓÛ•ñ&ØÚÚnÛ¶ÍÓÓ³¶¶!ôáÇ 6Ž3!TWW7a„»w…eggoÙ²…ÅbÍž=[(¶­ßnß¾]ö©ömTaa¡®®nûnÈ‚!ÂIYCEžˆzýúõ£Gĵ8Î7Ú·!-"ÄGiqqññãǹ\î¸qãðØué$€I¨¨¨`³ÙX{{ùò%¾#ñB+æÍ›÷ñãGyÖ$W+âMÀ0¬©©iôèÑnnn†yxxŒ?žÏçãëøúúN™2E ˆkÕ××:4..NzŸí „ÐË—/¿¸M­i%†ŽÛûãÇ?~ü…é QÝ¡ÄCHáhQ(ÏD988lÛ¶M\+!!aΜ9â£IxX¥ å?ú-Ö‰DS§N µ¾¢I C_l6»¢¢Bü§ÂóÍ .á_øMJJ1bDCCƒH$е´´ÔÐИ4i›ÍÆçÌ­œ-þöÛo¶¶¶ýúõ300 à ߿¯®®Þ·o_;;;„¾¾>úïTÿÚµk&&&·nÝ"¬H¡PŽ;fii9pàÀ°°°“'O6LSSÓßß_¡¹¹ÙÏÏoРAzzz~~~ÍÍÍ“&MÚ»w/B¨¦¦FIIÉ××!$ µµµ/^¼ˆª­­ý׿þ¥««kllìëëÛØØØ"ñ¯¯¯Íû÷ï%›€RUUMHH8vìXhhèñãÇTTTðZ,+ @Yù¿„®®®Îd2ÛÐo ,|ûiiizzzžžžMMMŸmïðáÃÅGDÚ•+WÌÍ͵µµCCCҬÅ.dí·+ ì(D4l$û$33300ÐÄÄdàÀ+W®O¤k!„ÒÓÓ­­­ÕÔÔLMMOž<‰„ÕÅCHr$ˆ—¥_-Ú"çD999={ûï©zJJÊÒ¥K¿¤)Jbb¢¥¥å€ÂÃÃeE(^ÙÃívšdK ;PZçCÉœ*ç;óÊ•+øá‡òòòAƒݽ{ðøøx==½sçΕ––^¼xÑØØ!$=]/p¹\UUÕÕ«W³X,„Pee%†aÇŽ;yò$öé[ ¾«ªªZtì;w І~CåääÔ}JÖÁ·6{öìüüü¬¬,ssó   9ÛK8BóçÏçr¹ÿùÏð'Ü…¬ý¶¢3ç›Ò… É> ²²²ÊÍÍÍËËûꫯ|}}eÕª¯¯ïÓ§O\\\YYÙÑ£G©Tj}}}DDaõV^òÊ31 C=þ\__ÿï¿ÿÆ0¬¶¶¶_¿~ø{›ç›¡¥K—r8œÃ‡#„ª««%“®{ÿþ}--­Ö»ÿ/aJÇÖA㓚o¶%or8ccckkkñþ¬¬¬Ä+œ8q¢õ¼ÙÔÔôìÙ³úúz¡PøçŸŠ;tÉ’%555ÑàÈÍÍm¥"B(;;Ã0>Ÿßb_aäÈ‘eeeø322lll}úT¼,]«¦¦FEE%22’ÃáˆD¢ºº:¡P(«z+¯y 娳Ø?þ¸uëV ÃX,Ö¬Y³0‰ìÖ¶¼‰wµø¥'Þ”ÕÕx aJÇÖAãûòót„–––››Û“'OÖ¯_—ÚØØˆW°¶þÌó¬TUUóóóÆŸ€Ö××777ËzhØÈ‘#eUÄihh „ðÓÉeÜëׯ ðÏòfÍšUTTdkk«®®~ÿþý7n,X°ÀÖÖöÆl6{Þ¼y¡ŠŠ ¡Phff†W777/..–ŒwÿþýéÓ§ïÚµKV333¯_¿ž’’’––&î@}}}|')''GrãröŽpˆ#¢ƒ…ÃÏ»ñæËÙ^Y BJJŸ §»h¥°+ ì(éaƒ—ã}òæÍqs,--/^,«–¶¶6›ÍÎÊÊ266ž6mÚÍ›7•””«Ëz`2Þ[sŠ999%''c&ÿIºd$ÒQá#Aò¥×Š—/_Їœ¬®Æv ô;m¶%o¾{÷.66ÖÞÞÞÇÇ/122’ü`î³±áñxË–-óóóËÎÎ>xð ^xùòeYUð#AXQø<O('++KIIiîܹiiiùùùãÆ›1cFFFÆ7ð¼9hÐ eeåÂÂB¼ú«W¯ŒŒŒ$#Á¥§§ÇÅÅ>}šÍfK7¡´´ÔÓÓ3""bêÔ©îîîÕÕÕø¿\\\‚ƒƒñ7F„ƒÁHJJ c0Šö[ë¤×EåççÊÙ^Y¯aµØE+…]aGI¼ïCCÃׯ_ã%999ÿþ÷¿eÕâñx"‘(99¹¦¦fÍš5ŽŽŽ555„Õ¥_øÝi%%%ò´Bþˆ›}úH^ú¼wïž’’RJJ þg}}½ÏèÑ£ÕÔÔÌÌ̶oß>mÚ´åË—+Ôoâæ¾#,|kGŽ2dˆ®®îÆñ!Øz{›››'OžL£ÑZédìÓñÚb²öÛŠNË›„… É>illôõõ544ÔÔÔd0/'lgΜ133SUU9rdZZau>Ÿ/9„0 ÑÒÒ233ÃO±±OD‹Ò¢zë#P|Ôð'K8p_G2oJ¨æææððp üsííÛ·ã­kQ“‘7Åìââ"™‰ZïjÂ$Ü£ôÞ¿|bRy“àyï_þ„ׂ‚é¯"€ÏâóùÙÙÙøí§Žá.Ú°_ü‚O»<ï½§>·´¢½Æ!B(33Sòyïðýô.DUUµ£“&àËAÞìuú÷ïïîîÞù»è„ý ©ãÆa‡œ§Ð.à<tpž_ò&(ò&(ò&(ò&(†*]TZZÚùq ­±±QMM­]6£´#‚¼™ŸŸßùq@¨½ò&ŒjÐŽ(ðmHP\ßÅ@ÞÅ@ÞÅ@ÞÅü?YØ(¬wŠIEND®B`‚XQilla-2.3.0/docs/simple-api/classATDateTimeOrDerived-members.html0000644000151400015140000005431511653571063021723 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATDateTimeOrDerived Member List

This is the complete list of members for ATDateTimeOrDerived, including all inherited members.
_ref_countReferenceCounted [protected]
addDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext *context) const =0ATDateTimeOrDerived [pure virtual]
addTimezone(const ATDurationOrDerived::Ptr &timezone, const DynamicContext *context) const =0ATDateTimeOrDerived [pure virtual]
addYearMonthDuration(const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext *context) const =0ATDateTimeOrDerived [pure virtual]
ANY_SIMPLE_TYPE enum valueAnyAtomicType
ANY_URI enum valueAnyAtomicType
asString(const DynamicContext *context) const =0ATDateTimeOrDerived [pure virtual]
AtomicObjectType enum nameAnyAtomicType
BASE_64_BINARY enum valueAnyAtomicType
BOOLEAN enum valueAnyAtomicType
castable(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
castAs(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
castAs(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castAsInternal(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [protected, virtual]
castAsNoCheck(AtomicObjectType targetIndex, const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType
castIsSupported(AtomicObjectType targetIndex, const DynamicContext *context) const AnyAtomicType
compare(const ATDateTimeOrDerived::Ptr &other, const DynamicContext *context) const =0ATDateTimeOrDerived [pure virtual]
DATE enum valueAnyAtomicType
DATE_TIME enum valueAnyAtomicType
DAY_TIME_DURATION enum valueAnyAtomicType
DECIMAL enum valueAnyAtomicType
decrementRefCount() const ReferenceCounted [inline, virtual]
DOUBLE enum valueAnyAtomicType
DURATION enum valueAnyAtomicType
equals(const AnyAtomicType::Ptr &target, const DynamicContext *context) const =0ATDateTimeOrDerived [pure virtual]
fgDT_ANYATOMICTYPEAnyAtomicType [static]
FLOAT enum valueAnyAtomicType
G_DAY enum valueAnyAtomicType
G_MONTH enum valueAnyAtomicType
G_MONTH_DAY enum valueAnyAtomicType
G_YEAR enum valueAnyAtomicType
G_YEAR_MONTH enum valueAnyAtomicType
generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS=true, bool preserveType=true) const AnyAtomicType [virtual]
getDays(const DynamicContext *context) const =0ATDateTimeOrDerived [pure virtual]
getHours(const DynamicContext *context) const =0ATDateTimeOrDerived [pure virtual]
getInterface(const XMLCh *name) const =0Item [pure virtual]
getMinutes(const DynamicContext *context) const =0ATDateTimeOrDerived [pure virtual]
getMonths(const DynamicContext *context) const =0ATDateTimeOrDerived [pure virtual]
getPrimitiveTypeIndex() const =0ATDateTimeOrDerived [pure virtual]
getPrimitiveTypeName() const =0ATDateTimeOrDerived [pure virtual]
getPrimitiveTypeURI() const AnyAtomicType [virtual]
getRefCount() const ReferenceCounted [inline]
getSeconds(const DynamicContext *context) const =0ATDateTimeOrDerived [pure virtual]
getTimezone() const =0ATDateTimeOrDerived [pure virtual]
getTypeName() const =0ATDateTimeOrDerived [pure virtual]
getTypeURI() const =0ATDateTimeOrDerived [pure virtual]
getYears(const DynamicContext *context) const =0ATDateTimeOrDerived [pure virtual]
gXQillaItem [static]
hasTimezone() const =0ATDateTimeOrDerived [pure virtual]
HEX_BINARY enum valueAnyAtomicType
incrementRefCount() const ReferenceCounted [inline]
isAtomicValue() const AnyAtomicType [virtual]
isDateOrTimeTypeValue() const DateOrTimeType [virtual]
isFunction() const AnyAtomicType [virtual]
isInstanceOfType(const XMLCh *targetURI, const XMLCh *targetType, const StaticContext *context) const AnyAtomicType [virtual]
isNode() const AnyAtomicType [virtual]
isNumericValue() const AnyAtomicType [virtual]
isOfType(const XMLCh *targetURI, const XMLCh *targetType, const DynamicContext *context) const AnyAtomicType [virtual]
Item()Item [inline, protected]
NOTATION enum valueAnyAtomicType
NumAtomicObjectTypes enum valueAnyAtomicType
Ptr typedefATDateTimeOrDerived
QNAME enum valueAnyAtomicType
ReferenceCounted()ReferenceCounted [inline]
setTimezone(const Timezone::Ptr &timezone, const DynamicContext *context) const =0ATDateTimeOrDerived [pure virtual]
STRING enum valueAnyAtomicType
subtractDateTimeAsDayTimeDuration(const ATDateTimeOrDerived::Ptr &date, const DynamicContext *context) const =0ATDateTimeOrDerived [pure virtual]
subtractDateTimeAsYearMonthDuration(const ATDateTimeOrDerived::Ptr &date, const DynamicContext *context) const =0ATDateTimeOrDerived [pure virtual]
subtractDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext *context) const =0ATDateTimeOrDerived [pure virtual]
subtractYearMonthDuration(const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext *context) const =0ATDateTimeOrDerived [pure virtual]
TIME enum valueAnyAtomicType
typeToBuffer(DynamicContext *context, xercesc::XMLBuffer &buffer) const AnyAtomicType [virtual]
UNTYPED_ATOMIC enum valueAnyAtomicType
YEAR_MONTH_DURATION enum valueAnyAtomicType
~ReferenceCounted()ReferenceCounted [inline, virtual]
XQilla-2.3.0/docs/simple-api/classxercesc_1_1URLInputSource.html0000644000151400015140000005552211653571065021431 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

xercesc::URLInputSource Class Reference

This class is a derivative of the standard InputSource class. More...

#include <URLInputSource.hpp>

Inheritance diagram for xercesc::URLInputSource:

List of all members.

Public Member Functions

Constructors
 URLInputSource (const XMLURL &urlId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 This constructor accepts an already built URL.
 URLInputSource (const XMLCh *const baseId, const XMLCh *const systemId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 This constructor takes a base system id URL and a possibly relative system id.
 URLInputSource (const XMLCh *const baseId, const XMLCh *const systemId, const XMLCh *const publicId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 This constructor is indentical to the previous one, except that it also allows you to set a public id if you want to.
 URLInputSource (const XMLCh *const baseId, const char *const systemId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 This constructor is identical to the second constructor above, except that it accepts the relative system id part as a local code page string and just transcodes it internally, as a convenience.
 URLInputSource (const XMLCh *const baseId, const char *const systemId, const char *const publicId, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 This constructor is identical to the third constructor above, except that it accepts the relative and public ids as local code page strings and just transcodes them internally, as a convenience.
Destructor
 ~URLInputSource ()
Virtual methods
BinInputStream * makeStream () const
 This method will return a binary input stream derivative that will parse from the source refered to by the URL system id.
Getter methods
const XMLURL & urlSrc () const
 This method will return a const reference to the URL member which contains the system id in pre-parsed URL form.

Detailed Description

This class is a derivative of the standard InputSource class.

It provides for the parser access to data which is referenced via a URL, as apposed to a local file name. The URL can be provided via an XMLURL class, as a fully qualified system id, or a base system id and a system id which may be fully qualified or may be relative to the base.

As with all InputSource derivatives. The primary objective of an input source is to create an input stream via which the parser can spool in data from the referenced source.

Note that the parse system does not necessarily support URL based XML entities out of the box. Support for socket based access is optional and controlled by the per-platform support.


Constructor & Destructor Documentation

xercesc::URLInputSource::URLInputSource ( const XMLURL &  urlId,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
)

This constructor accepts an already built URL.

It is assumed that it is correct and it will be used as is. In this case, no public id accepted, but it can still be set via the parent class' setPublicId() method.

Parameters:
urlIdThe URL which holds the system id of the entity to parse.
managerPointer to the memory manager to be used to allocate objects.
xercesc::URLInputSource::URLInputSource ( const XMLCh *const  baseId,
const XMLCh *const  systemId,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
)

This constructor takes a base system id URL and a possibly relative system id.

The relative part is parsed and, if it is indeed relative, it will be made relative to the passed base id. Otherwise, it will be taken as is.

Parameters:
baseIdThe base system id URL which provides the base for any relative id part.
systemIdThe possibly relative system id URL. If its relative its based on baseId, else its taken as is.
managerPointer to the memory manager to be used to allocate objects.
xercesc::URLInputSource::URLInputSource ( const XMLCh *const  baseId,
const XMLCh *const  systemId,
const XMLCh *const  publicId,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
)

This constructor is indentical to the previous one, except that it also allows you to set a public id if you want to.

Parameters:
baseIdThe base system id URL which provides the base for any relative id part.
systemIdThe possibly relative system id URL. If its relative its based on baseId, else its taken as is.
publicIdThe optional public id to set. This is just passed on to the parent class for storage.
managerPointer to the memory manager to be used to allocate objects.
xercesc::URLInputSource::URLInputSource ( const XMLCh *const  baseId,
const char *const  systemId,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
)

This constructor is identical to the second constructor above, except that it accepts the relative system id part as a local code page string and just transcodes it internally, as a convenience.

Parameters:
baseIdThe base system id URL which provides the base for any relative id part.
systemIdThe possibly relative system id URL. If its relative its based on baseId, else its taken as is.
managerPointer to the memory manager to be used to allocate objects.
xercesc::URLInputSource::URLInputSource ( const XMLCh *const  baseId,
const char *const  systemId,
const char *const  publicId,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
)

This constructor is identical to the third constructor above, except that it accepts the relative and public ids as local code page strings and just transcodes them internally, as a convenience.

Parameters:
baseIdThe base system id URL which provides the base for any relative id part.
systemIdThe possibly relative system id URL. If its relative its based on baseId, else its taken as is.
publicIdThe optional public id to set. This is just passed on to the parent class for storage. on to the parent class for storage.
managerPointer to the memory manager to be used to allocate objects.
xercesc::URLInputSource::~URLInputSource ( )

Member Function Documentation

BinInputStream* xercesc::URLInputSource::makeStream ( ) const [virtual]

This method will return a binary input stream derivative that will parse from the source refered to by the URL system id.

Implements xercesc::InputSource.

const XMLURL & xercesc::URLInputSource::urlSrc ( ) const [inline]

This method will return a const reference to the URL member which contains the system id in pre-parsed URL form.

If you just want the string format, call getSystemId() on the parent class.

Returns:
A const reference to a URL object that contains the current system id set for this input source.

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/XMLFormatter_8hpp__incl.map0000644000151400015140000000003511653571064017747 00000000000000 XQilla-2.3.0/docs/simple-api/structXQillaAllocator_1_1rebind.html0000644000151400015140000000761311653571063021643 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

XQillaAllocator< _Tp >::rebind< _Tp1 > Struct Template Reference

#include <XPath2MemoryManager.hpp>

List of all members.

Public Types

typedef XQillaAllocator< _Tp1 > other

template<class _Tp>
template<class _Tp1>
struct XQillaAllocator< _Tp >::rebind< _Tp1 >


Member Typedef Documentation

template<class _Tp>
template<class _Tp1 >
typedef XQillaAllocator<_Tp1> XQillaAllocator< _Tp >::rebind< _Tp1 >::other

The documentation for this struct was generated from the following file:
XQilla-2.3.0/docs/simple-api/inherit_graph_20.png0000644000151400015140000000322111653571064016453 00000000000000‰PNG  IHDRƒ(R$ÞbKGDÿÿÿ ½§“FIDAThí›mHS_ÇÏÒ„Ì•kóú0‡·í®VXŠE½ÊBÐ-m®’¨ Â%½¨ðÅ`XdD „IKR²&+ÊÉPm=[³•Ë1§^»åĵyþ/N]nºÌ¿ÛïçÕïüîïœó½ç»{ï™wò „€ƒ,Š·Ž_pN°Î ¶À9Á™öövƒÁ/) ‹ÅÂlþá„ßïþüùþýûc+iÁÑÛÛkµZ'$'×555ÅDÏÂ¥©©©¸¸xB’{N°Î ¶À9Á8'Øç[˜‰<8Ž>|8LQÿñãG7S…¿èëë+))Áq<%%%??ÿádzpž˜ñÉÎðšèèèðù|^¯÷öíÛEåææÏl¨é088¸aÆää䯯ÆÎÎÎhµÚ¶¶¶ù›1@2Q¸\.º9>>¾uëÖK—.ý­ÞårMgØ)8uêTqq13£×ëwìØ1›1ç‰éœlÔuž' „ yyy(…Bz½ð´´4½^ …8“É$•JE"ÑÉ“'GFF˜Šéx||¼¦¦fÍš5|>Û¶mf³å322:::˜3~ÿþýóçÏ(&IòÈ‘#B¡P,—••ŽŽ"‘uuu …B$Æ»wïâ8¾lÙ² .Ðg1uÙlV©TK–,ÉÈÈ0t/“ɤP(Aee%„0_¾|Y.—§¤¤lÙ²Åd2ÅÓ‰®®®ÔÔTWVVîÛ·ïË—/‡#77÷üùóh¡·oßît:­V+Atu¡ãÚÚZ±XüìÙ³@ `±X‚$ ú›NWPPàv»‡R©¬¨¨@"µZ-EQ·nÝQuóæMÀÀÀÀ? (ŠJJJ*--õz½hqûûûQ/FC’dmm-`pp°ªª Ã°æææ¾¾¾§OŸfee±Å …BáóùPl±XT*Zh‡ÃAϲråʨN(•Ê{÷îÑÃ644 QÅ„B¡„„„wïÞ¡fss3AH¤ÍfCb$~ꂱ±±îîî?~D"‘öövf¯—/_2+W­ZU__Oë¹sçÎÌœ˜›]¬Ëå’Éd(öx<™™™hg¥V«?}ú„òr¹È*fwøû ®ÛíV*•t~íÚµ@žžþáÃf—®®®üüü`0è÷û#‘=;A^¯Å|>°xñâ 1ÍIIIN§³°°0//¯¾¾žÙ }êéÊÞÞ^•JE]¿~ý4, sà„°¦¦fçΨ)‰è+†$IúŽèƒp:999(‡Ã€¯_¿¢fNNÎû÷ïé‘»»»Q°k×®«W¯BÆ+w“ÉôóçÏäääôôô„„„žž”w»Ýb±xö'5::ZTTtîÜ9›ÍV]]Í<´hÑ‹†ã¸Ýn§›Lýÿ^5“Œ]ì«W¯vïÞ=<<ŒŽž9sF£Ñx<»Ý¾iÓ¦Ó§O#ÔjµËåêìì”ËåF£}©««ûöíÛÞ½{Ѽ7nÜÈÎÎnkkxñâÅêÕ«y<„°¿¿_(êtº×¯_ÛíöŠŠ À“'OÐŒ%%%===oß¾]·nÚÅÆ-4j XQilla Simple API Documentation SourceForge.net Logo

ATStringOrDerived.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/items/AnyAtomicType.hpp>
#include <xqilla/items/Numeric.hpp>
Include dependency graph for ATStringOrDerived.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  ATStringOrDerived
XQilla-2.3.0/docs/simple-api/classResultImpl-members.html0000644000151400015140000001401411653571063020266 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ResultImpl Member List

This is the complete list of members for ResultImpl, including all inherited members.
getColumn() const LocationInfo [inline]
getFile() const LocationInfo [inline]
getLine() const LocationInfo [inline]
getResultPointer()ResultImpl [inline]
LocationInfo()LocationInfo [inline]
LocationInfo(const XMLCh *file, unsigned int line, unsigned int column)LocationInfo [inline]
next(DynamicContext *context)ResultImpl [virtual]
nextOrTail(Result &tail, DynamicContext *context)ResultImpl [virtual]
ResultImpl(const LocationInfo *o)ResultImpl [protected]
resultPointer_ResultImpl [protected]
setLocationInfo(const XMLCh *file, unsigned int line, unsigned int column)LocationInfo [inline]
setLocationInfo(const LocationInfo *o)LocationInfo [inline]
setResultPointer(Result *p)ResultImpl [inline]
skip(unsigned count, DynamicContext *context)ResultImpl [virtual]
toResultBuffer(unsigned int readCount, ResultBuffer &buffer)ResultImpl [virtual]
toSequence(DynamicContext *context)ResultImpl [virtual]
~ResultImpl()ResultImpl [inline, virtual]
XQilla-2.3.0/docs/simple-api/inherit_graph_15.map0000644000151400015140000000027111653571064016452 00000000000000 XQilla-2.3.0/docs/simple-api/inherit_graph_44.png0000644000151400015140000000314511653571064016466 00000000000000‰PNG  IHDR(kCoGbKGDÿÿÿ ½§“IDATxœíšmHSmǯã^&Liº©%boƒh•A%hh$"Yº"ªE -*ýZ³‚I/Dô¡¤¢Ô‘45S©/«˜2¢—Ö&aLJ³šbí蜮Îý|8pžÓ™;ÎÕSt?÷ïÓ}®ûþŸ]×ýß®s8gBØõ§ ü'_ñ„øŠ'ÄW<‘ ŽOŸ>ÝÝÝýGR!ü 6›(ôÕårõõõeffþÆ”?ÅÐÐГ'OA¡¯™™iµZKJ„_€Õjݾ}» H®¯xB|Åâ+ž_ñ„øŠ'xúÚÓÓ#•J›››¹H{{»\.w¹\@QÔ¢E‹/<òòò(Šêïïg°>´´4ƒÁ0::*’C?EQ¿¬¤Y‚§¯+W®<~üxYYÙØØŒþ™6"ñµ££#%%…¦ihjjZ¼xñää$ÊÊJµZ˜˜XYYØ^ôðáÃÔÔT»Ýn6›SSS ÷MV@gg§N§S(éééðíÛ·iåüvÇËår‹ÅR__îܹ††‹Å"“ɸôz½ÕjåZqKKKqqñ¬6¢¨Ü»wO¤ ŽàÙµk×€F£ µ€¿u‡cV¹ Ñëõz½Í„Á`سgÏðð°Z­~úô)<þ|QQÑ»wïœNgFF†Édr»Ý——÷èÑ£êêê¥K—:N—˵fÍšŠŠŠP*¿ß}õêUÇSWW'•Jý~MMÍ´ò±±±ëׯYL&œ9s†€¾¾>FÓÓÓêbbb>}ún·›]À*Aðùóçqqqⵇ3;ãÖùý~/nß¾ìc„¾Ò4=oÞtèPUUBèæÍ›¹¹¹ˆç\¾†ª=œÙ·Nœ_é+BèÔ©S‰ddd„‹( ~'P*•lrSSSì¬Ëå >O° !äp8Š‹‹çÌ™“}ÿþ}¹J¥²««K¡Pܽ{÷ßšÜn·Ýn_¸p!Ã0………×®]C³÷õÖ­[«V­¯=œÙ·Nœi}ð¾ihhèòåË999ååå\P¥Rq•Ó4ͽd`/lÉÉÉläÅ‹gÏž ¥úòå Ã0ÍÍÍ^¯·¤¤¤  Àëõ†’‡âãÇeee555ëÖ­3›ÍF£QpŸ’••511áp8l6[aaálw!tåÊ•üü|ñÚÙYÀ¿'˜‘øÊ0̾}ûJKK›ššŸojjJ&“ÅÄÄ„’߸qC0FFNWRRåååjµº´´”ŸD")**2«W¯NLLÔ8:::̃üðáCWW×–-[Þ¾}{äÈ‘pj5ë÷ûÑG‚à÷N¾téÒòåËÙÑÖÖ–””äõzB>ŸoïÞ½ñññsçÎÝ¿ÿää$¿Û|ýúµ¢¢"99Y©TîØ±ƒ¦i6¬b{Ë‚ är¹V«moo‘ó?‚[,–èèèׯ_s9?{ö,**ª¥¥ñ:ªÝn€ÚÚZv ðúpð.ñçÏŸ¿sçNþ5H¼öàÙ@ ••Ž\œiû0%ÈxÛ¶m@Þ¿þE°ï_>bû\âñOˆ¯xB|Åâ+ž_ñ„øŠ'ÄW XQilla Simple API Documentation SourceForge.net Logo

SequenceBuilder Class Reference

#include <SequenceBuilder.hpp>

Inheritance diagram for SequenceBuilder:

List of all members.

Public Member Functions

virtual ~SequenceBuilder ()
virtual Sequence getSequence () const =0

Constructor & Destructor Documentation

virtual SequenceBuilder::~SequenceBuilder ( ) [inline, virtual]

Member Function Documentation

virtual Sequence SequenceBuilder::getSequence ( ) const [pure virtual]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/namespacexercesc.html0000644000151400015140000002510111653571063017020 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

xercesc Namespace Reference

Classes

class  MemoryManager
 Configurable memory manager. More...
class  XMemory
 This class makes it possible to override the C++ memory management by adding new/delete operators to this base class. More...
class  DOMNode
 The DOMNode interface is the primary datatype for the entire Document Object Model. More...
class  DOMDocument
 The DOMDocument interface represents the entire XML document. More...
class  DOMXPathNSResolver
 The DOMXPathNSResolver interface permit prefix strings in the expression to be properly bound to namespaceURI strings. More...
class  XMLEntityResolver
 Revised interface for resolving entities. More...
class  XMLResourceIdentifier
class  XMLDeleter
class  XMLPlatformUtils
 Utilities that must be implemented in a platform-specific way. More...
class  InputSource
 A single input source for an XML entity. More...
class  LocalFileInputSource
 This class is a derivative of the standard InputSource class. More...
class  MemBufInputSource
 This class is a derivative of the standard InputSource class. More...
class  StdInInputSource
 This class is a derivative of the standard InputSource class. More...
class  URLInputSource
 This class is a derivative of the standard InputSource class. More...
class  LocalFileFormatTarget
class  MemBufFormatTarget
class  StdOutFormatTarget
class  XMLFormatter
 This class provides the basic formatting capabilities that are required to turn the Unicode based XML data from the parsers into a form that can be used on non-Unicode based systems, that is, into local or generic text encodings. More...
class  XMLFormatTarget

Functions

 MakeXMLException (XMLPlatformUtilsException, XMLUTIL_EXPORT) inline XMLSize_t XMLPlatformUtils

Function Documentation

xercesc::MakeXMLException ( XMLPlatformUtilsException  ,
XMLUTIL_EXPORT   
)
XQilla-2.3.0/docs/simple-api/EventHandler_8hpp__incl.png0000644000151400015140000002654511653571064020027 00000000000000‰PNG  IHDRhu´ÔU²bKGDÿÿÿ ½§“ IDATxœíÝy@×Öð;$€ @eQÔ§€ÖåY÷¥Õ‡hûª­+[«ÔºaµU«Ö¥¢â³.ï î]žmmÁ‚"‹`Ad‘M¶€a Ùæûcú¥1™„B&Àùý†™{ÏLN2'wæ&Žã€öèÑè p”@á(ÂP¤;hÇÎ;“’’莢ïÚ²eKHHÝQtŽ]—™™éííMw }QbbâG}Dw]…# ðööŽŠŠ¢;о(11‘î:îq”@á(ÂP…#  G@ Ž€^b™î襼¼\ý’Ž*//'é\À](‚¯ãôÑÑѶ¶¶šm³²²råÊ•ñññšmz"(½‡™™Ù€4Û¦T*åóùšmz(¸T èå¶lÙrìØ1â±H$š9sfJJ BH,ÇÄÄÌ;wîܹ111b±!4a„ß~ûíý÷ߟ5kÖÅ‹B«W¯FÍ›7J_>ü裦N:þüóçÏ •Û”J¥/^\²dÉ´iÓÂÃß={¦ÐŽrlÄ…ìôôô… fgg+¬ÿèÑ£°°°™3gÆÅÅ¡ÿ¿ö}ÿþý%K–Ì;÷È‘#"‘ˆtag* ‚ÂÐ{‚Ö7!„&Nœx÷î]ÇBiii¡«W¯VVVž8qâ›o¾IOO?sæ ÑȽ{÷Ž=ºbÅŠ'N466Eçõë×Uõ"[ÞÒÒ²mÛ677·ØØØU«VüðÃioBýíoãóùyyy¡ßÿ}êÔ© !tëÖ­µk×r8ggç+Vp¹\¢‘9sæ°Ùì¿ÿýï!Ò‹Ô ½È–³X¬S§NEDDXXXp8„Pss3i›ßÿýÊ•+ƒ‚‚,,,Fµ|ùr….TŶ|ùr???CCC…õ.\د_¿qãÆ!„‰…«V­²··÷òòúðÃoß¾­f!P÷8zØØX;;;……cÇŽ½{÷îàÁƒnœ›¹¹±bè,(4ÈË{••Uš–VÄåVK$¸››µ}` s@€“‹ ‡É¤ùìââÚÕ«Ï=^µk×üwß  1’¦¦¶;âãâR–. Úºu&‹¥½+E--ÂÇ‹¹ÜB.·(%å…H$4È"(È=(È}ìX· ˆ Ï  òÊYY¥UU|CCý€'bXqøpG‡žaER±±wìˆ÷ð°=zt±££Ýá „Ð?fnØpÙÆÆôر%^^µ€|™šZ(Љ"2 ÀiÜ87[[3í‡Ð>(Ý¥¤¤ŽË-” +ŠÅRwwVTöúuˆ —ÿ÷¿¬O>™²víа¼¼þ_ÿŠ{ò¤dóæ™Ë–aFW$­­Âìì²´´¢¤¤|…"rìX·¡ˆ ×‚ 1mmâÌÌ—D¥¨<¬èãã`mmJwŒê¤¦†‡ÇJ$Ò#GëJw8$$iLLÂÞ½·ÞzËë›oþ¡ ‹å‹H.·°­M{V!I-ˆ ÐNC†ØõˆaERW¯>Ú¼ùÚàÁ–G.quåÐNÇüðCFdä[ÛþÇŽ-ñô´¥;•dE$1;»±Q +"ƒ‚Ü ‚"€ G ¡Pœ‘Ñ«†•ñù­6\þé§ÌO>™1Y_ŸAwDQVV›•UºiÓŒ? ¦;œöÉ‘©©/øü¿ŠÈ€'º¨…#àO55))/¸Ü"Ù°¢½½ùèÑ.İ¢—×ÀZZ‘âr ÃÃcE"é‘#‹Æs§;œ.‹¥‡ÿzèÐí)S¼÷ï_؃¾£["‘æä”)w÷nŸß*_Dº»[Ó8s@ Gú.‘HòäI qšË-¬ªâ³XÌáÃ{Õ°¢2‰DzèЯ‡ß~ë­!èÄÄdxü¸$<ü\k«ðàÁE&xÒN‡É‘IIù¯_·p8&£F¹³ò‡ ³‡"]…#}KmmÓÇÄ蜜ò–¡••ÉèÑžž{Ù°¢²’’ºððsÏžUö y0Ô56 >ÿüêéK—mÛ6«ç>•‰´  :-­(99?99¿¡¡E>K¡ˆ€FP8ÐË)+êë3|}‰ ÐN½rX‘Ôõë?ÿüª££Å±cKÜܬé§»\¹’¶yó5ÎÑ£Kœ­è§«ä‹È{÷ž××7[Z²ýü?Ÿ E$Z…#½P]]Óƒo +ZZ²ÇŒq pòñ±:Ô¾_?Ý1jUSSÛ¦MW¯_¼jÕ[6LÕÁ/¯Ñ¬ÒR^xxlvvYO™1C]II1 yÿþs¯Ù‚íïÿg9t¨½ž‘t/(è `XQ´´¢ððX¡Pòí·‹‚‚zö<êd3fþþ÷¡û÷/43ëGwDšG‘\ná½{Ï_½zmbbèëëìE$Ý Gz*¯ùñãb.·ˆË-ÌÍ­hnn³°`ÿío}wXQ™lÌ„ ^üÂMwDÚöøqñš5±b±äÈ‘ÅcƸÐN7’‘TT4°Ù~~ƒ‚ƒÝœüüõÜÛ=Ð5P8ÐcH¥øÓ§eÄè´´¢’’:VTãå˺5kbss+¾øbNXØè>{'Ÿ/ظñJ|ü“ž>c†:Yùðá‹òòzcc("Ð (Ðiõõͽ1¬8`€ñˆƒœ¼½íŒ èŽQݼ™¾qã{ûÇŽ-qw‡ï”FW®¤mÚtÍÍÍúèÑÅNN=~Æ u%%u\naZZQbâeePDÐUP8 [”‡õô°¡Cí‰ ÐÎðûlê57·}þùUâGœ·l™i`ÐËçÁPG ÁæåUnÛ6{ñâ1t‡CYy÷n^i)¯_?ñ,0Ðyôh("  Gè×ÐÐBü¸—[øìYESS›¹¹ñÈ‘0¬ØaÄ-}mm¢C‡…„xЎΑ͘yûíaûö-èß¿Θ¡¨ªê5—[”œœŸ””ÿòe|9j”s¯Ÿw@§Aá `XQã¤RüàÁ_¾=~¼ç¡––}n u÷ïDDÄééaGŽ„Ý›gÌP$+"¹Ü¢üüWFF¬¡C탃ÝaÐyP8 %¯_·•"—[”‘ñ²±Q`fÖø%Œ€§!CìØlVì¤Êʆˆˆ¸´´â-[f.[ÔgçÁPÇç·~öÙ•Ì\¹rBdäÛp•V¦ªŠÏåÊŠHCCýaÃ졈@ Gº ŽãùùUÄ+fe•½xQã8 +j\|ü“Ï>»bgg~ìØ˜ÓW®¤}þùU›£G— lIw8:§ºº15õñóÙÙÙe 6dˆ]P;1·ÆÐPŸî ŽhŸßššZ(?¬Ø¿¿ÀÀ?+E__GCºcì=ZZ„7^y0]QPP½f͹ââÚ¯¾šÿÎ;#éGwÕÔ4¦¤‘N£G»ÀëôP8Ð%ÊÊR)îæfM\€öñqpuå0zt‡Ù eg—­YsŽÏo=thÑøñžt‡Óƒ‰D’o¿½}ðà¯Ó§ß»÷ݾ_`jj4j”3 +j1æÛo r?x0ÔÊÊ„îˆzƒ{÷ò#"Î3™zÑÑ‹é§Ç/"Ÿ>-ÓÓÆ ±#î] ñ055¢;@4 GÚʺãÕ«×ç¹ÜB˜£q<^óºuïÜÉ]±fÌtF]]Szú_E$†aÞÞ‘ÁÁî0” z( ×Ú*|ô¨˜¨32^ÖÔ4Ê+ï×_Ÿ®[wÑÚÚôèÑ%žž¶t‡Ó;3f<=m££ÃŒ™Nkjj{ò¤$))_¹ˆ r73ƒ"ôTP8ð—¼¼WÄ+r¹E……Õ +ê bÌÕ«–- Þ¼yLhíVÕ«Wÿ·¤¤n×®ùóçÃŒ™®’‘\naFÆK©wqá$‘ ÇÂôiHv:3óeuu£‘‹øÉ__G¸Nä䔯^}®¶¶é›oN:Œîpú¡P¼oßÏÇß™>}ø¾} à^=MinnKOÿ«ˆ”H¤®®ÖD9nœ›¹¹1ÝÐ(AŸ£0¬(KÝÝmˆ ÐN..&†u…TŠ?~gß¾ŸÇŽu=thÔñZ–œœqžÅbDG/p¢;œÞ¦¥Eøøq1—[È奤¼‰$ƒYÃcǺ E$ÐEP8‚ÞO~X1+«´ªŠoh¨OÜläãã0|¸#‡åˆ.ªªzq>%åÅÖ­³` ]êêšÖ­»˜ðlíÚÉ<îÖè&òEdjj¡P(&ŠÈ€§qãÜlmÍè€?Aáz§’’:.·†{®Û·sÖ­»Ø¿¿ÑÑ£K†w ;œ> Çñ¸¸”¨¨›C† ŒŽ^ ¿xÔÝZ[…ÙÙeiiEIIù E䨱nB è…#è%ÚÚÄ™™/‰JQyXÑÇÇÁÚÚ”î%­­Â¨¨›qq)K—Á<Ý‘ŸÿjÍšØÒҺݻß;ןîpú ù"’Ë-lkdàè<~¼§½½9Ý‚> GЃ•–òRR^de•¥¥åæ–‹ÅRâ-ÕÇÇ!0ÐiÈ;Vìqrs+V¯>W]Íß¿á´i>t‡ÞÐÖ&Þ¿ÿçãÇïÌ›7b÷îwŒ 莨o‰$ÏžU$'ç+‘!!èô P8‚žD(gd¼1¬h`Àôñq t&~ÚÚº?Ý1‚v´µ‰++”¿ ÇñS§’¿úêÿAGŽ,†ëq:+))oíÚóúÑÑa#G’̘ÉË{åáa£ýÀú±Xš›[N‘iiEÈÚÚ40Ð9(È=8ØÝÑn'Ý G ëÊÊê>, †Ÿ=«‰$Fr&†½¼Âï[ô,_|ŸœœëÖ:ù'®ªŠÿñÇç<(€y0=BmmÓºuÿPž1““S>sæ·—/¯$­)Aw‘\nQjê >_ +"ƒ‚ÜážT YP8£<¬Èb1‡‡aÅÞàÞ½ç Ã0lÅŠ [·Î$þö[îºuLLŒŽ]ìëëHo„€"ÙŒÇo¿ #¦ý¶¶ 'NÜWRRkkk–˜¸‘͆kÙÚ¦¦ˆ p‚‘`ÐuP8PSÓ˜’ò‚Ë-’ +ÚÛ›íʽIMMcHÈ>¿U*Å1 ;{vÙ¸qnÄ<˜°°Ñ۶͆:£ÇÉË{µzõ¹òrÞ×_/˜=Ûïã/\»öX"‘èë3¦O~ìØºìÓ$iNN9ñ¾z÷nŸß*_Dº»[ÃÐ>è(Ag´¶ ôõô:ÿ¦#Iž<)!.@s¹…0¬Ø¼ÿþÉÄÄ<‘H‚ÒÓÃLM<-ûòËy Òè¤ææ¶-[®_¾œ:êüùÙr ÃŽ]¢°°fâĽmm„ÞxÃÑÓÃvîœûÁAt4B"‘Ιs$3³T,–È/g±>>7nü ~oFgI¥øóçUDyïÞóúúfKK¶Ÿß âç³Õ‘ÈÝýs©TŠaXDÄä?ž 7õP8J$iLLÂþý?K$R±XÊdêÍ›7òСPå5ëêšÃô¤Ò7†0 [»vrNNyzzI]]“±±ŸŸãÈ‘NþþƒFŒdnnLWÌ@§df–Θqˆt, !Äd2Äb‰‘ëàÁÐY³|µЈµkÏ_½úÃB˜Â»ÉÔsr²º}{=‹ÅÔzt@$éÓ§å¾xø° 5µ˜VUÅW¸ù„ÉdXX:´($ă®hAwƒÂ¨tåJÚ_|ÿúu‹Š³>fmmìîï?ˆøz0¸ (hlL˜ðuU_>…0 Ã0„ãÈÃÃfútŸÉ“½½½í yz´–áýûÏýõé­[Ù<^3ñy@~Cï½÷Æ~õÕ<º"š"‘Hss+’’òwïþ‘ô2‚ž†ãhÚ4Ÿ½{ß…„^ G@¢¬¬þ³Ï®$$ü©N}}fxø[6¼­ÝÐ@OyùÂ…T¢jd±"‘„ÁÐ øÅù^躠µµµ¾¾žÆhí¤RüÚµÌÇÚÚ$ê?T`6r¤Ãñã »5###só®~—G}}}kk«FâÔ%'¿X·î‘E¦¦†AA.ãÆ¹ŒãÄf÷¡ÙQæææFFF]i¡çfoYYCrò‹»w ž<)#jÇŒ¯][jbbHwh=˜ŽdÔ‰÷ÏžM%î&ƒaÄУ׆ áIïѲº:77—ލ€Nhnž9“•–V)ýya‘ÉÄÂ$)i ihÈ8ujF·þô€•••··wÉÉÉ©©©ÑH<€">¿mãÆƒ#lüül\]ÍûæOT 2„ÃéÒÀj/ÈÞÖVñÓ§5éé¯22ª¼½­ÂÃGÐQ¦#µ}{r~>Oa!†!=== Cò§ sp0]µÊßÁÁ´‹º(dÉ­ÊãÇ×^8@ÇLŸ>!TSÓX^^_^^_QÑPZÊ+-å•”ð**êùü??§2z†ÉÀžÝ÷ã§999šjJ#( ®°°æÎÑ66}zB}bb¢FÚéÙûöÛ!„ãxVV™«+ÇØfÝv†Žd”@ **úQög¿~,KK¶••©½½¹••‰µµ©••©••‰MKK¶¥%~ذGSÎ:˜ãHXY™XY™øú:*,D¥¥<¢ ,/¯/+«¯¯o¦%B ãœáÇ`€" Æw ; ÐU"‘äĉ÷--ÙŽ)‡cjh¨OwD@« p`h¨ïæfíæfMw èabb8uê0º£´¯À”@á(ÂP…# ¤ Ç‚‚b¾ò5^¾|ùÁà8¾xñb6›Ý}áu‘š}!váÉ“'L&óÊ•+²åñññ,+;;›ø³¹¹922røðál6;00p÷îÝb±uê¸ad4µ§íÂ0¬  @kÝÑ®+‰MeÍ®#ú’ý¹sçN ÃöìÙÓ•65ÒˆõGãâÅ‹¤‰‘‘¡Á {©goWú•µÐ­¼s¯/õ!uôdÔ×2J;(f ª¬¦xRîVòobƒ~ï½÷Ô›¦.'^7ŽfffŸ}öYG·ºyóæœ9s***âââzè·‘»àçç·iÓ¦ˆˆˆ††„ÐëׯW¯^5lØ0„PccãÈ‘#SSS÷ìÙ“žž¾qãÆØØØ)S¦H$’ηT¾I³;UXXhii©Ù6{¨®$¶lÛn=žD_ÄcÇ/^¼èèèxéÒ¥N7HÚH×wAý‘œ={6‘É<@É»§£!½º’½Ô×WÎŽ¶Ð¹¾:·wêõè“Q¯¡&¨$•“²§é²²²3gÎðù|"R:x¸œªªª„„\Óž?Nt${ ÆôéÓ[ZZ¨¬I/5»€ãx[[ÛСC—/_ŽãøÊ•+GŒ! ‰uÖ¯_$‹e[555 <8&&F¹‹vBèùóç]Þ'uÔÄÐ}½?}úôéÓ§ºÓŽ‚N$¶ò¶ÝA¾¯ÌÌL Ãnß¾ÊËËë\ƒ¤híEÚ­uëk'!!¡ªªª‹è`öRo\¹𮧇ú:Ú~ŸÍ¨n¥&IŸ ……TNÊÝM!1¤Rippð¶mÛT­¯;‰§œuqüþûïíì숟´¾pá‚»»{ss³T*ŽŽöòò2113fLBB1jªæªÁ?þèççׯ_?[[[Ùõ¯ÚÚZccc##£Ñ£G#„lllÐÿ9ÿþûŽ÷îÝ#ÝðӧO{yyYYYíÙ³çܹsNNNýû÷ߺu+±‚H$Ú°aƒµµ5‡ÃÙ°aƒH$3fÌÁƒB<OOOoýúõ!‰DbnnþÓO?!„þùÏZZZÚÛÛ¯_¿^ (D"«¼×¯_ïëë[[[+¿ !‹uöìÙÓ§OïÞ½ûÌ™3gÏžÕ×ÿó‹Rccc·mÛÆ`0dÄØØ8222..®Ç­COÑ~||¼‡‡‡Ã‰ˆˆhkkkwÝÜÜdψ²_ýÕÕÕÕÜÜ|÷îݲ§L¡ Uýêí$¶l[ù Gdù‰(dõ?üàããchhèìì|îÜ9…¾ˆ?/^¼20Ú u IDATiÒ$OOOùñB Ãâââ¼¼¼ °wï^„PDDIJeˈÿ655õë×ïÉ“'jQØåüiwdGC,GEE9::ZYY½÷Þ{j>…«ŠSUv‘X½2ê³WÕ Êy¨ 9©L9yT¥„rÊ' Um"²´W ¼•}îÜ9üÍZ›xüöÛoß¹s§²²’tC„Phh(ŸÏÿî»ïB ,àóù'Nœ ’Çñ¯¿þzþüù/_¾ÌÊÊò÷÷߸qãŽ;¦OŸŽãx||¼©©©¿¿?Žã=244lnnÆq<,,lâĉ/^¼ÈÊÊ:tèöíÛå#!n´’J¥²ª‘ˆV¶ 27nD}ùå—²%Ä«±¦¦FáÀ>|øpÀ€8n¡ŒŒŒÆ7©z²ˆÖ¦L™’ŸŸŸ’’âêêº}ûvŠûKš¡3fðùük×®œ´ Uýª¡åGm&¶Â§IåüÄÛËꦦ&ƒ˜˜˜ÊÊÊS§N1™Ì¦¦&üÍ ”J¥NNN'NœÀq|óæÍÞÞÞ²Bï¼óN}}ýÉ“'BuuuwïÞµ°°‰D8ŽÇÆÆz{{K¥R5(ì‚rþ´» ²öíÛçíí•••=jÔ¨õë×Ë?/ ‘Æ©*»H¬¼îË^\»ãCZÈ^ÒHóPá)“ÏID6.¢œ<¤)A€òÉBU›8YÚ+„¤¼•<—׋3 '{AÉŸ&¶oßNúBVÞŠ4mT½¨) ¨,¤rRîî]ÃÉ2?--ÍÌÌL}ïÄUµ)¯ûO9ë:S8Ö××ÛÛÛûøøÈúóöö>{ö¬l…ÿüç?êß¡ÚÚÚž={ÖÔÔ$‘HîÞ½+; óçÏçñx8Y*dee©Ù!”žžŽã¸P(TxL¬àééYYYI4xûöm__ßG±Ùl¡P¸nݺM›6éëë×××ïÛ·oÚ´iĶ Cöêº~ýº«««|$ÄãÈÈHôæ@Ù.¤RéìÙ³ Æâŋ堬¢•÷àÁKKËN75 ”Ÿ,ù½ÀqüÒ¥K®®®÷—4B‰‰‰8ŽK$"$Ò.H’6(£åÂQ›‰­p<•óo/«y<ž¾¾þþýûëëë¥Ricc£D"ÁßÌÀ””&“IdÚãÇBÙÙÙÄ¿BÄ‹]Ö X,¶±±ùý÷ßqŸ6mÚž={Ô7"¿ ¤ùÓî.ÈZððð¸~ý:±mnn®ì1AáX‘Æ©*»H¬¼îË^\»§y-d/é ¤y¨ð”Éç¤òé“4yHS‚4ÒºAMB*¤=®T8*¬@%ÏåõâŒÂÉ^Pò;¢ê…¬¼iÚ¨Ú\Ma@e!•“rwïÞ^ᨪwb‰ª6åu_âiàR5BÈÌÌlùòå999«V­"–úúúÊVðññQß‹ÅÊÏÏŸ:uêˆ#Ξ=K,ljj‰Dæææ¤›xzzªÚ`bb‚"†åŠ‹‹mmm‰ M“'O.**òóó366NKKKJJš5k–ŸŸ_RRRBBÂôéÓBUUU‰ÄÅÅ…ØÜÕÕµ¬¬L>BZZÚøñãwíÚ¥jâââïܹsõêÕøøxÙ´±±Qžš‘‘!ß8ÅãFPþ/ëKáÉ"—ž‰Ý)++£¸¿ª 8!¤§÷F:)t¡f¡Ž %± ÊùI,W“Õæææ )))ööö!!!ÉÉÉzzz }]¼xQ,[ZZb6bÄ„üÕjâY“5È`0æÍ›wýúõÚÚÚß~û-,,ŒJ#5ù£þ…I())‘%†——×ܹsÕ+Uq"²ìRu`åAöÚÍ^ÒHóP¾ÙvóŸ4yHSBÍ •6‰Ç i¯LÍ jšUn¡÷eRý‚"Nª^ÈÊ[‘¦ éæªòW1b¢€âI¹»w4¶çÏŸËrIý;Å6µ–x)KKK£££'Mšôé§ŸKììì233e+äää¨o¡µµuÁ‚6lHOO?vì±ð矞:uªªMˆ—1é†T#yDEU__Ÿ’’¢§§7mÚ´øøøüü|ÿ·ÞzëöíÛIIIDáhmmÍ`0 ‰Í_¼xagg' á‡~ˆ‰‰¹xñbBB‚ò.TTTDDDìÛ·/888**jÅŠuuuÄ¿ÂÂÂvîÜI|2@…††^¸paÏž=¡¡¡=nê)?YâcB(??àÀ÷WÒ»¦ºP³PGÐ’Øåül7ÚÖÖV©TzåÊ·lÙ²™3gòx<ù¾$É¥K—8 »{aݺu—.]’½á*¿õ¼ûî»7nܸ|ùò¸qãˆ+›í6BP“?T 8°¸¸˜xœ‘‘ñÕW_©__9N‚rvQ9°½„v³—tÒ<”o¶Ýü'MÒ” þ¨&!UÅeÔ¬@1Ï{kF!Õ/(â4¡ê…¬¼iÚn®œ?Ä÷Ö•——SÙ ê'ånÝ5åÀp?~ü8Qo¨é@±Mí%žü•KÕ‰dÒ¤I;wîäñx666ßÿ=Žã»víâp87oÞ¬¬¬¼uëV»7ÓÔ××cvëÖ-â» Bééé‹/.//'zQuÛ é†¸ÒµåÇï¼óNqqqffæ¨Q£ÂÃÃq¿rå ›Ížÿƒ>077·°°X¾|91ý¥¡¡ÉdwÈ677³X¬ÈÈHYG<oÉ’%¶¶¶Ÿ|ò‰ìÝP9ªÖÖVww÷M›6ÉïÂÙ³g äoär¹zzzW¯^%þljjúôÓO‡jhhèââ²yóæ… vè¸ÉvŸô#é“E´öÝwß 4ÈÒÒò_ÿú‘‚ê÷W$7ŽÍf«9Èø›ùªÐ…ª~ÕÐfá¨åÄV8ž¤ùÙnV_ºtÉÅÅ…ÅbyzzÆÇÇ …Bù¾V¬X1eÊù}”J¥...Ÿ}ö™šÆW®\iddÄçóÛmDa”ó§Ý] @°~ýúöïß?44´¾¾^¾GåÂQ9NUÙÕ‰«©ìŵxš×Nö*¯@¼ÿ(ä!.—Þ 9‰“½YádÉ£*%”ÏCù}¡ž*;ç½ £p²”üñQõ¬‘¾ •ÓFysåüùòË/ÍÌÌ\\\ˆ«Ìø›ï¥ Y­°¹ú“r·îþfæ;88„……É?•ê{WÓ¦O9ë0ùý©®®ÎÍÍ?~##cÉ’%wîÜáÜw¶··¿ÿþŠ+,Xð÷ß#„0 »yóæW_}åââ²eË–§OŸrߤæ ‰!‹…jii qssóòòúõ×_ ¿‰ü¤§§/[¶ÌÕÕ5<<œíãÇ—/_¾páÂ_~ù¥££ƒçD±íDÄnUiÛ¶m;r䈧§ç„ lllìììôôôB§Nòññ¹~ý:gΫW¯¨ªªr/ž’’ròäɇ;vÌÅÅ%99ùâÅ‹þþþfffÇçÌI§Ói4†a§OŸ677:t(Bè矮¯¯?}ú4F;tè’’ÒŠ+ºNœ;w.¿&<{öììÙ³/^¼Ø³g««+>1***88¸¹¹9((HUU_¼ÓÄ+Vˆu_Ð[pÅ€L³±±¹råÊÏ?ÿ<~üø»wï.]ºôÁƒ<ç\·nݤI“¸'º»»«¨¨|þùç!*•zíÚµ 6L™2EMMÍÚÚzåÊ•œ9׬Yãìììââ²bÅ *•º{÷n„“ÉLHHؼy³Á¨Q£V®\Ïs¢€&,Y²DIIÉÖÖ!ÔÜÜŒOܸq£±±±……Åš5k8‹óœ€ì€+ŽdNò䉅…………ÅòåËÃÂÂNŸ>=gΜ®3>¼ëDmmm„™üÏ÷]EE…‰‰ ç¯#GŽäü̳ö¹¡¡Ífâ¿ÕÔÔðœ( ZZZ!À=ÑØØ˜6gqžpÅ€ìÂ0ìСCEEEø¯aÊ”)ø£‡]q²CnÒ5==½ââbί¥¥¥‚ÐÐÐ ‰?~Ä­¨¨ÐÖÖæ9QÀJ:Å€ûðáþCYYžYò›€ì€Ä€ìRTTtttÜ¿jjêÇsrr~ýõWîË4­G+tww?sæLzz:•J}ùòeXXÏ¬ŽƒL&ÛÛÛŸ8qâãÇÅÅÅ¿ÿþûܹsyNä^*..®µµUp$¡¡¡åååoß¾=wƒƒ€‰È¸U @¦ùûû_¼xñìÙ³åååööö_}õBH__üøñ·nÝ~mîîî,ëøñãMMM–––6l8zô¨àE¾ýöÛÐÐÐ 6ÈÉÉ}öÙgË–-ã9‘ûÎò±cÇ&Nœ¨¬¬,`µsçÎݺu+NÇ_iŽ/Þi¢ðí@2†I;ƒÑâÅ‹kjjöîÝ+É>}úTWW×ÔÔÿ/²>{ö¬$cà9ÆŒÞØÛÛ_¹reñâÅâ¾àV5€A¤¨¨(((èÝ»wíííoÞ¼9þ¼‹‹‹´ƒ ß€[Õ‘/¾ø‚N§ïÚµ«±±ÑÀÀÀÉɉóbE‰QVVîºQž58DH$ÒêÕ«W¯^-ÅÔÕÕ·lÙ"ÌDd ܪ 55Í--rÒŽÐ3pÅ@ßjmmÏÉ)Ïϯ*-­ËϯÌϯ¬¨hìè`‘HÚJ…´£ô$ŽÄ‰J¥T¿{WUXX]XXŸ_õþ}]G !¤§§6z´®Ý˜Ñ£õ(Ý~ØG¥J;\@O@â@DtzG~~å¿×«JKëJJj¨T:BHEeˆ……¡¹¹þ_Œ03Ó73Ó74T—“#q/Ê{€Ì‚Ä€Pjjšß¾ýXZZ——W™Ÿ_ùþ}]yy“É&Çkš™éÏšeæã3ÃÌLÏÜ\_MMIÚñÄG±Xì‚‚j<;ÌËûçjbSSBHQQ~ôh=33½O?5>\ËÌLßÄD[^¾MàP€Á®µµ½°°O¹‹WBzzªffúVVÆžž6ææúÇkiÉb{#GVV–ŸŸÏ?±ÙCh4­!CêÈävqmŽ' #ì¾[ŠÍ&#D ;„\3‹¥@§k(*Ö‰ŒžF@_ƒÄ ÃÞ¿¯ÿ÷:â?'VUQB$ÑÔT×Ü\þü‰øíæ#´úôŽóôéÓ»Nd0Hµµ µµJÍÍò$fh¨¡¥Eë»BoÞh)*2MLš„_$?_“@ÀFnfæ¢"µêj¥‘#›ôôÚ„î篫SÌÏ× RM54Úuthšš4‰÷àÀ£F6l˜ðaÐ{0V5 Xíí̼¼‚‹WFŒÐâW¼"IEE57n¼ˆ‰ÉÊϯÔѺ`Á$W× ÖÖ#I¤¾}ßpBB®Ïo‘‘_ÏœI~©¸¸¬uëþ¸~ý›iÓFu;3Þqòäƒ_~y@¡è9âem=²ÛE æÃ‡y11™qqÙ,{ölóùó'ÌŸ?AQQ^ø è 8ÀÑmñŠ™ž&ÊPñŠ´òE\GkΜïGÖûý÷U=]véÒ3uu-·oo!…¸ŠˆPIIm`േó<<¬÷ís×ÔTf)*•~÷î«ØØ¬ÄÄ\%%yGÇq®®íí-Äø´=‰#ô?l6öî]Ïâ9N‚ˆ'‹2X¼"Ý|‘ãÂ…”ýû£> 1B«§ËæçW:8 ö\º”Ç w~âãsvìˆlkclÙòùªU³„L:B••M±±Y11™iiÅúúj..\]'LÚýõNÄ GuÜÅ+x¦X\\ƒ¯èê577Ào7÷EñŠxÉH¾ˆkhhýä“ÃÞÞÓvï^ Úö칕‘’¨ªª(üRmmŒãÇï>hm=28ØÓ G}÷®êæÍ—×®½()©53Ówuàáa3r¤vc@D8€ ¦xeøp-ɯˆ‹Lå‹ûöEݸ‘ñøñN•!¢­J¥}òÉáE‹¬÷ïwïé²oÞTlß‘•õ~Å ÛíÛEˆ!;»,""=::£¶¶ÅÊj˜§§ÍÂ…“µ´TzºzG^Å+µT* É^ñŠd3_äÄfoäÀ…+V|Ò›õ„‡?ݱ#òî]¿ž^8Da™¾´œ90ÐÅËkаXì'O ""Ònß~E§wÌœIñô´qq™ ¤e4 O@âR[Û’›[Ñ¿ŠWD Ëù"ÇW_ý^VVwïž_/£b³±ùóRQrõê&ÑÖÐØØöÃw/\x4s&åðaO EW´õÐéññ9‘‘éIIoä>ÿÊh@Ÿ€ÄÄÍÆÊÊêñ—i .^1BkäHUUi‡Ü[ý"_Ä=|˜çí}úêÕM¶¶£{¿¶/J,8qöìWÎÎV"¯äùó¢;"‹Šj¾ùfÎ7ßÌ2Dôb¦ÆÆ¶ØØ¬ˆˆ´ôô]]Õù󡌈$ŽÐ[mmŒ‚‚ªP¼"‚~”/âX,¶£ãFFêþ¹V\ëܼ9<5µ099 7ïYd2Ùaa)ßK[{hP‡½ý˜^FõáCCttÆåËÏŠŠj(]7·I‹Y›˜èôrµ`ƒÄz`@¯ˆ ßå‹—.=ݹóZB‚¿©©ˆ7…»ª®nž5ëðºuv[·~ÞËUUU5ÅFF¦;8X{ª÷>¼¼¼ÊÈÈôˆˆçÕÕÍx›Û$¡½_3„ q¾¯(+;¶¯ˆ ÿæ‹8*•nkäæ6ùàÁ…â]sh胼ûðaÀ°aš½_[JÊ»ÀÀÈŠŠÆï¾s\¿Þ^,—¨Ùl,=½822=**ƒFû§ŒÆÙÙJYYÄ¢r08AâÿèZ¼RQÑØÑÁ‹W†ÿçvs/^AÏ9‚‚bÿú+õÉ“@±|,{û#––FgάË ñ CC˜šê†„xÚØ˜ˆeµ¡övfrr^ddú;¯H$¢ƒƒ¥§§Ý˜ÿo HƒwñÊ¿™bÕÀ.^Á€Éq%%µ³g‡ìÙ³`õêOûbýññ9+Vœ‹ˆøú“Oz0ìµ`%%µ;w^KJÊóð°Þ»×M¼¯iljj»w/'22=%åššâüù<=m¦L1!„Ï B8¾Á\¼"‚–/r¬[öî]U|ü¶¾û|—/ÿ­¬¬!>ÞO¼Wïð [[[·öl B!UT4Þº•}õêóׯË5ÜÜ&{{O5 Êh8šÒÒ:(^Á@Íq©©…‹…þùçÚ¹sÇöÝVJJjíìŽìÙ³`ÕªYâ]3>Pá™3‰––F!!^& ïúqyy•±±™éïß×™™é{yÙxyMÕÕ…2ðÿ qôcP¼Ò{;_Ä±ÙØ¼y?hkýë¯õ}½­C‡bÂÃSSRvôÅèoÞTDff–®Xaëïï4thŸÌ‹‰ÉŒ‹Ëf³ÙŸ~jîéi3oÞxøl0ƒÄ ‹ x¥ ª|×ÜL·µ=ììlì)™-^½š¶eË娨ÿMœ8¼6ÑÔÔvìØÝ ͘aì%ò@…B¢RéwハÍJLÌUVVppëå5ÅÖv4”Ñ B8¤O@ñŠŽÎÐ1c x¥·a¾Èñý÷·ÏŸôøq`_Ü;æ ð ~Fˆpó¦oŸ¦Vø@…ÕëÖÙùùÍëÍ@…Bª¬lŠÍЉÉLK+64Twr²úâ‹©––F}½] ; qH¯HÌ`Îq>4|úið¶mN7ÚKr»ÙÙeÎÎÇþy©‡‡MŸn¨ðèÑÛZZ*‡-úì3‹>ÝG~~eLLæµk/JJjñ2OÏ)zzª’Ù:"H}ŠW¤òEŽM›.fe•%%m—|×Ú²åï„„7öQ ·ª*jPP >PááÃFF}½EŽì첈ˆôèèŒúúV¼ŒÆÍm’š ¤G€ØY¼‚?ž¨§§&íxÈ;yþ¼háÂÐsçV:9—üÖkk[lmùåÌÀÀù’ÙâãÇ;vD”—7nÚdïëë É\™Åb?yR‘vûö+&“e4$ŽQ@ñŠì€|‘' Ã\]VVråÊFiÅpæLÒáñ‰‰Û%ö2íŽÖo¿%;vgÔ(ÝÏ)SÄ6P¡èôŽøøœÈÈô¤¤·ŠŠòŽŽ–PF3À@âè¯È È»q#Ã×7üîÝ­cÇJ+&“íèxlØ0Í?þX#Éí–”ÔîÚu=1ñm_ T(¤††Ö¸¸ìˆˆ´ôô}}5gg«Å‹§Œo,ùH€xAâè ŠWdä‹ÂhkcÌšlg7懖H7’””üÅ‹½xqÝœ9*[áˆÏ ¼ÖÒÒÞG édžèèŒË—ŸÕ˜™é»ºNðòš2|¸–T‚½‰#ƒƒÁ|û–oñŠ©©.ž BñŠÔA¾Ø#Çß;}:ññãÚÚR¸ØÖÉÊ•¿çåU&%m——ïó×åtÒÖÆøõׄ'î[X†„xöÝ{%…‘—W™ñ¼¶¶ÅÚz¤«ëÄE‹¬55•¥$Ž "œâ•3ÅJ(^‘q/Š ¢¢qÖ¬ào¿uðõ+íXB¨´´ÎÎ.dÛ6§M›>“J¹¹‘/_öí@…Bb±Ø/^”DF¦GEe0¬Ù³ÍçÏŸ0þEEy)F„‰#“€â•!CÈææP¼"Ë _ìÿýﯧO ““wHà…ØB:räÖ¹sÉ));¤õÿ˜$*R{;399/22ýÎWŠŠrŽŽã\]'ÚÛ[ÀÒ2G‚®Å+%%µ AñJ¿ùbïef¾Ÿ?ÿ§S§–/X0IÚ±ü?1{vÈôé¦'N,“bÜ>ì)‘»…ÑÔÔvï^NddzJÊ;==U— ®®¦N%í¸o8Ðÿð+^! Нô;/Š †a œ “‰7nl–v,EEe|ýõ¥ë׿™6MÊ)QvvY@@dNN¹Ä*REEã­[ÙW®<ÏÉ)ÇËh<ÒÞΜ=;dêTéÞ '§|Þ¼CB<—-›!íXúï@…AAÆÆ’¨Pl6–ž^“uãÆ‹¦&ÚÌ™OO— JJPF#M8 =,^ÑVUU”vÈ W «£¢2 _ì;¡¡~úé^JJ ¾¾ìþO—ýøq ìÑF~øÐ ù …Ä`0>Ì‹‰ÉŒ‹ËÆ0ÌÁÁÒÓÓÊh¤G$Fc¼{Ç»xE[[ÅŠW*Èûȵké3fP Õñ_«ª¨³f^¿Þ~ëÖÏ¥˜`mŸ|rØÃÃúÀ…œ‰ÉÉyÆÆš–°+Î@…ÆÆšÁÁ¶¶fÒŠD0*•v÷îëØØ¬„„\mm•ùó'BäAâ€ø (^6L™6¯ l/ö5;»’’ºo¾™³iÓgJJòÛ¶]MJzûèÑ9i‡Ö íÝu÷®Ÿ……AYYýÞ½Qwî¼:vlÉÒ¥Ó¥XiiÝ®]×ÞzxXïÙã&ËÏVV6ÅÆfÅÄd¦¥S(ºnn“-²61‘Zæ=¨@â@¯°Xì‚‚êüüÊ3Å*NñŠ’’<…¢Å+ƒ ä‹’ÑÑÁ5ÊŸÅb“HDuu¥µkg;vûèÑ%K–L•vhÝc±ØŸþƒššÒÔ©&'O>À0 !Âòå3ö”vhýw Â•+me¼ëæçWÆÄd^»ö¢¤¤/£qs›¤£3TÚq d8ÐP¼x‚|QÂrrÊŽýûHDêêJÇ{;8XJ3,á°Xì]»®_º”J &“…O7ÎèÞ=?éÆA£1Núg Âà`ÏI“x TŸc` >nœ‘äÃã);»,""=::£¡¡ /£qv¶RV"í¸ Hà ŠW@· _”–«WÓ¶lù›Ífs¦HD‹=s&åСEcÆH16Áž=+Ú±#2/¯ÃBÿÿý+'G*(8"Sw$ð _¼(YºtúîÝ ¸*lmmŸ93ˆ@ Ü¿¿M¦îh³Xì'O ""ÒnÝÊf³ÿ)£±³#S;¶¿ƒÄ„zX¼bh¨§¡¦°°ÚÄD‡H$93ä‹Òuà@ôùó)øÊMNŽ„ahýz»íÛe­Â¬±±mÿþ›W¯>#ˆÜ)/GB‚¿¬¥¼ø@…Þ$ ;wºzzÚ„ÐþýÑçÎ="°ñã‡EEm–Áó!ÞŸ™ž˜˜«¢¢0þOO›)SLðø(-­«¨hœ1ÃT2qöG8‚Á¨ªŠšŸ_)¸x¿ hn®Å+^ddº¿ÿÕK—ÖÍœI0䋲ÃÃãdjja×ï/"‘@ Ž]üÅÓ¤˜eeõ>>¿TñüÖ% Ç{ËÂÒ]ᆅ¥L›6êðaöv¦“Ól6†"“I®®Ožô‘vŒ|54´ÆÅeGD¤¥§—©»¹Mööž& €ý§ŸîýøãÝýû®\i+É8ûHL`2ÙEEÕffúb_3¯ æîÝ7.^|B ¾ürfp0êÈeИ1;¨Tz§‰d2QQQ><|‰T¢êV[cÓ¦‹÷ïçàY7yy’ÏÌC‡I%0aSQÑ€'+D"áĉe‹YK;.ÞÒÒŠÝÝ3ɤٳÍÿøco'5QQ›6]â~G€ÜÝ­øa‰ìK$pr’SVVðà͸¸lür`—Wi‚ƒc[[……Õåå !2™8l˜…¢ëáacjª3z´…¢§®i"Ñ‹%«Vollã™5"„h4ÆÐ¡ 5ʸ¬¬2 û÷½0îkÖ|*íˆD4r¤öíÛß­\ù{ZZ1›‘ÉÄW¯>Èlâø×_©$ÉÄääHL&»kÉd²’’Þ=z{ûvg©DØKä’ÉDž×S1 Åļ|ûö㟮12Ò|l2®8I¨«k9räÖåËÏÈdb{{çW¯áäåÉffzcÆP(zxšhb5Î@lNž|‡Åâ5"„ÈdÒÒ¥ÓBB¼$è‘öv&…âÏf#"9²Xêã;÷Þñí·á±±Ù†M›frㆯ´#â‹ÉdVgg—={VôäIAii†uÎ# ±c‹½½ûÙçB£1ÆÛE£u˜GNޤªª¶ÚÚz¤¤â’EÿIi4ZCCƒ£OGëÚµÌ3gÓhÜòtE"ÇîÝëÄ=QQQQC£·ÿÞ544Ðh´^®ô_ +$$þæÍWÂ̬¦¦pïÞ×ýñ¾§0444{ûZEE…X‚ÍÛ·U>>*(¿ÿÞ}æLñ¼vGêç Ã~ý5åÂ…g rÉɾݾ¤Zì EXªªª)#ãý‹%iiÅÙÙeííL‰Èf³ÉdÒ… ËÆŒ‘Ň5ùµ4&&sýú?„YƒœiÏžyNNý£„\,:7þsG¦¹¹9??_â!«µ•qáBvzz%ƒÁ"™Ld±Øü®q³XìׯË:õ@ÞŸÐ+**jjjz¹ÐO573BCÓss넜¿©‰“:v¬vŸF%-cÇŽí}â(ݯ‰GÞ««+øûO×ÖîW$²pž™;WoÈIgÏf¦¤dêé)÷2˜ž-qÔÓSsrïä4!ôàAâ‡Ôwï òòêþ÷¿ˆƒg«©ÉÜPÑüZššZ4t¨"¿‡X¸±X¬ø×¯‹, H>Å—ŠNç òØÙÙI.0й¸8²XìââÚ7o*rrÊß¼)õª¼ºšŠ’“#‰DƒÉI%««Û¹»_NNޏÂÐÑѱ´´×Ú@ÿâêêØi •FgMGÊIDATJǰ¾!X,¬¹ù?¯’ÖÐPVUU@NRR’¸V5vìX]]]q­­GjkÓÜôõÅöVÙ9ÏØÙ!''[&“=}ºäÆ»«®®~óæMï×C"œœf¬XñO¯ Ré­­tõÞ¯Y\·4(hQPPo_OJJ’bÿ—¼®ç xô9‰H¡èR(º Lħ46¶åäTäæV¼yS‘•UVPP…¶¶ÒkjšutúÇ›Ø@ÿÕ)/ÔÔ”ô 2OOi‡Ð‡dvÌ›žRUUÿ}‰# uu¥O>¡|òÉ?ããã ææ~ÌÍ­ ÑÒ ü@â¤L&â¯fts›$íXÀ×À¬b‰# $Ž@(}˜8à¯8êúƒïß¿_¹r%†a>>>***}^/ h Þ„—/_’É䈈ÎôèèhyyùW¯þy qkk«¿¿ÿ„ TTT¦NÌd2‘HûÀ‹¸ZÚ-PPP ±Í æ@@„Ñ£Gw¤ÊÉÉI*=G¦‚áIv"2H˜¯Ñ`4SòÄrzéÃÄQ]]}ûöí=]***ÊÝݽ¢¢"<<\,/—’<¼ “&M ôõõmllD555mÚ´iïÞ½ãÇG577ÛØØ<{ö,$$$### àÒ¥KŽŽŽ,K´ýöäÉ“ÿ%ÞFikÌW"˦s à?—””deeqþÔÐМœ,¥¸d+xâwÊí Bf ’f0}˜8jkk‡„„ôt©{÷î9::â7 >¼âêsxB»víÒÖÖÆ{@@€¿¿?>ÏtttœœœÌÌÌ-ZôüùóâââsçΉ¶ßtttôÿK¼b³ÙuuÂŽ½zo ¡¹sçr_}¿yóæìÙ³¥—lOüN¹¢}AȬAÒ̦ljãÍ›7ŒŒð!­/_¾lffÖÚÚÊf³CCC-,,†:cÆŒÄÄDür¨€Kͱ±±“&MRRR200àôÚÚZeeeEEÅéÓ§#„ðì_σ†ž’’ÂsApþüy ‹/š˜˜¨©©íÞ½Ÿ¡££cÛ¶mzzzºººÛ¶mëèè˜1cÆñãÇBõõõD"ÑÏÏ!Äb±444âââB_}õ•¶¶¶±±±ŸŸNï ¾f Ãüüü&NœX[[ËÝ„¼¼|XXØùó烃ƒ/\¸&''‡/uéÒ¥={öH$ÎQVVö÷÷a¿õèÃÂ×mnn®««ëëëÛÞÞÞm{GÍùDººwï…BÑÐÐæ|d6Áo»2‚ç¾B¼z÷nIJJÚ»wïðáÃutt¾üòKüê2Ï¥B111VVV £Fºxñ"BˆÉdò\|€!//¯«W¯rnGFFzzzrv>ÏÝÕm[6yòäÕ«Wãs¶´´())½|ùR˜`øíØððp MMÍï¿ÿžßœ†>}zìØ±ªªªŸ}öYll,~, îEœ}È1(º¢0K‰ü¡Ë~‡|ד¿c?,,Œóѵ[òë2b4ÉvÿïtzÆ¥ªª*11ëΗ_~¹bÅŠÊÊJ==½gÏžavæÌ]]ÝëׯWTTÄÅÅ#„Þ½{‡¯¿ëT*U^^~ÕªU>|¸téB¨ººðóçÏ_¼x‘{NÎÏNNN ?~ä¹ BÈÛÛ›J¥ž;w!´xñb*•zæÌ„Pmm-†aGŽñððxÿþ}vvöäÉ“8àââ‚aXtt´ªªêäÉ“1 KOOWPPhmmÅ0lÙ²esæÌ),,ÌÎÎ7nܾ}û¸#ÉÌÌD±ÙlΗ%-§ ¡C‡q¦àÙIMMM§ûôéSMMMöB(33³ù¿ø}XøÚóóóSSS)ʾ}û„l/Ïþ€š?>•J½ví¾Ãyn‚ßvxýúõëׯÏ# !×Óu_a¼z÷nÙ·oŸ¥¥evvö«W¯¦M›æççÇo©–––!C†œ>}úãÇ¿ÿþ;™Lnii9zô(ÏÅØ€zûö­¾¾þË—/1 kllTRRÂóËwïÞñŒJ˜¶ìÖ­[ZZZ†]ºtÉÒÒ’ÍfwŒ€CÌÓÓ³¡¡áìÙ³¡ºº:žsž={ÖÈÈèÎ;555ñññ ÿø÷¢––î~ØwTbbbUUU·B·„Y]Q˜¥DûГäy†ç!ÏóäÀïØç>wí–üz B~ïw«Û^!Ýfbl)&Ãý¿ëéE„öŠ’8644YqÎS–––aaaœþøãÁ‰c{{{nnnKK ‹Åzøð!çûÃÃã¾¾ãõ}™-`A„PFF†a £ÓÏø cÆŒùøñ#¾Âøøø‰'¦§§«¨¨0Œ-[¶ÊÉÉ544=zÔÙÙ_–D"qÎׯ_§P(Ü‘à?ã·žóòò8mç4Çf³ÝÜÜH$’÷äù=yòD[[[„ý&à_‚®w+0 »rå …B²½<ûB()) Ã0‹…‡Äs<'ò\!‡„Ç®û ãÕs¸bnn~ýúuü¯oÞ¼áüÜu©úúz99¹cÇŽ544°Ùìææf‹Åoñv à[ÿúë¯wìØaØ¥K—8ÓyFÕm[º ŒÉdêëë?xðÃ0ggça‚°cñs#'žsŽ7.<<œ³þúë/üãÜ‹:é»J‰cO»b·K‰ü¡ &Éó ÏCžçÉß±Ï=½k·ä×X:%ÝfbOe³ÿw=½ˆÐ^QžqTWW_·n]NNÎÆñ)EEE'NäÌ`ee%x òòòùùùóæÍ³¶¶ Ã'¶´´ttthhhð\d̘1üÄ :!„ß æþWRRb``€—;88Oš4IYY9---99yÁ‚“&MJNNNLLtqqAUUU±X,SÓFš§P(>|àŽ—––fggwøða~MOJJJHHˆŒŒŒŽŽæì@}}}ü?*n™™™Ü+r¿áº~üœmuú°pø­g¼9>|²½ü"„ˆÄÿt§N›0QFðÜW]{>ß-¥¥¥œYXX,\¸ßR‰‰‰©©©ÆÆÆ³gÏ~ôè‘Hä¹ø€<B^^^†uº5,`' hK·‘H¤E‹]¿~½¶¶öþýûË–-&;ïäœxÎYXX8nÜ8Î"cÇŽÜ@~×À8 zÚ»]ª—º,àyÈó<9t]–goéÔ-ùõ@Y0HšÉ!³ýŸçé¥GDY²¬¬,44tîܹ[·nŧqW)æää^F[¼xñ¶mÛ222N:…O¼sçμyóø-‚ï;ž ¿’‡gT ©©©D"ÑÙÙ9:::??òäÉŸ}öY|||rr2þ}©§§G"‘ŠŠŠðÅ ŒŒ¸#ÁÅÄÄœ>}úï¿ÿNLLìÚ„ŠŠ __ߣG~úé§{÷î]¿~=ç)àeË–_Òi&ÊžûªkÏÁ§ã»ÅÐतŸ’™™Äo)Æf³#""êëëW¯^íêêZ__Ïsñw àlmm›››SRRâãã9ÕÖ‚w²ÂæååuãÆ«W¯ÚÚÚâÏÏtŒ€Ûé<ËsÎ#FpŸýrss7ßÁ50(Á$ÿ¡Ëž‡<Ï“C×eyö–NÝ’_”ƒ¤™B’bÿïýó =NÙlöªU«6oÞ|ùòåû÷ïÇÄÄ „V­ZµmÛ¶èèèÊÊÊ;wîàOõ ÐÞÞÎ`0äååi4ÚÞ½{BÍÍÍÑÑÑnnn",(LØ‹-Ú±cGiiivvö¼yóNž<‰rvv>uêÔ´iÓäääæÌ™6bĈ#F „äää–,Yâëë[\\üúõë]»vñLÞ•••ÍÍÍ6lØ@§Ó¹›€aØúõë­¬¬ð‡U·nݪ§§·yófü¯{ö쩬¬tpp¸{÷n~~þ¨Q£–.]J§Ó׬Y#Zókjj*ÿ ñù°pß~ûmAAAZZZ`` ímiiÁ8wî\SS“à}Þi&Ê~ûŠgÏáX¾|ùÎ;ñ[Tß|óMii)¿¥‚££ãµkרT*ƒÁ““SRRâ¹ø;8H$’‡‡Çúõë§Nª««ÛmT‚ جY³˜Læ–/_.d0ÂïXžs~ýõ×þþþ÷îÝ«««ÃÅÏÑÝ6pàPÝ’ü‡. xòáwl×9Y,ÖñãÇMMMÕÔÔæÍ›­££Óm/ê¶±â: $üŒ£]±>tÁ$yžáwÆèzrà>åò;âºî"~=PI>ù'ÅfbÆQvú·«íi{E)ŽéV×–a´··?}ú´¯·"O‡ç&DØ®„‹cÀÀ¸téR‰m.&&&33“ókdd$þÌ{/‰ë€’dâ(E=ýÐÒyF„(ÉtJ\D;ÐúcKE ö“žxŠc@‘——Ç_jè%:^TTtþüùµk×Jl£ÙÙÙ>>>mmm©©©»wïüð /©|è2eôÀAÒÌž’Xÿ'÷éÚ RUU]¿~½ä7!íÀñìÙ³… nܸÑÎÎNbõ÷÷okksww¯©©5jÔªU«ÄÒçဒT>t™ÒG=PÖ ’fö”Äú?ãzB®ººúÍ›7ƒö²¯›³´´”‘õЯ%%%;¶Se’×##ùyF\ßû²ß+OKÅ«k{áV5 $Ž@(8¡@℉# ×ñTTTH>º¢Óé âZtlÄ¥±±‘ÉdJ; ñä癞÷'€Œ÷ŠÁÓÒ¾Æ#qÌÏÏ—|ð$®zss³£9ºÕïÒ#Áà<#¬W0xZÊÓÞã?ðŒ# $Ž@(8¡@â„òe!÷üd—ÞIEND®B`‚XQilla-2.3.0/docs/simple-api/classxercesc_1_1DOMDocument__inherit__graph.png0000644000151400015140000001033511653571064023715 00000000000000‰PNG  IHDR°uaðübKGDÿÿÿ ½§“’IDATxœíkPSGÇ7$`È-ˆJq¼ÐV[Š˜‚ˆc+ˆP*Ô2‚x©c…z…j­E†äb5^¨¨`@,2cŒ“*"r“Kk[d “DBÈ©$9ï‡í{ÞBòªA³¿O»{öyγ{þÙ={.9Çñ_ tbl   AÓÎlÉ’%/7ÄK‡ËåjaEÑn•A¡P.\8eÊ-l¯š¶¶¶òòr-׸V.^¼¨-âUsñâE­,:‡@@‚@@‚@@‚@@‚@ÐkAPT˜6mZxxxww·j©T7gÎSSÓ÷Þ{ïûï¿—Ëå„íŒ3pòÒnÙ²e ¥©© V Q­ÐÔÔD¡PFÛ¨*¿DôZ€²²2@ÐÞÞÎf³{{{çÏŸ/‹á&‰Dòî»ïVVV&&&VWWïÞ½û—_~Y²d‰B¡€Z[[ëêêW"‘èÖ­[ªÎóóóá ð Bß1yòd&“Éb± SRRà¦Lž<™Çãùûû;;;UTT´¶¶²ÙlXÁ××7//pUTTäíí­ê<::zóæÍ¯­9ÿ?¯JEEEL&S$rss¥R)``` ..ÎÚÚÚÊÊ*..n``Ž<ÏÁÁÏçÇÇÇ;88Lž<9<<œø±ª[®^½êîîN§ÓÏ;ËåCš«¿Ã Å eãÆÅÅÅ0›““³ÿ~*•JT011‰‹‹ËÉÉÙK—.“B~~~pp°ªÃíÛ·»¸¸DEEáj Åbñ_|Á`0ìííccc1 S(IIIÎÎΦ¦¦žžž÷îݦí¯í®g\© ˆˆèìì´¶¶¾wï,LLL\µjÕãÇëëëçÏŸ¿k×®‡–-[vóæÍ„„WW×úúú††† ÄÆÆj²êëë7n\ff¦@ 8yò$FëëëKJJÒ\,Ÿ8qB= xøð¡jÌ•••æææ8ŽC)wwwjÔ;w¬­­¡í_ýeccsÿþ}èÖØØ¸§§‡ð ãÇg³Ù8ŽÃ–B?aaa>>>ÍÍÍõõõ³gÏNHHHNN¶²²âp8ÅÅÅvvv°²zÛ_xtþŸ+•¯P"‘ÈÞÞÞÝÝ=!!(tqq0ÍårçÎ »©¾¾Çñ™3gr8¸õÁƒDZÝJ(=zT$)•J‰D¢P(4™ÓŠÑ âîÝ» ƒ°Ý¼yóîÝ»qÏÉÉY²d‰ªO"‘šš:qâÄÇ‚xþü9•Jýý÷ß¡O‡ãäääìì|úôibGgΜ•ÕÛ>|£ð1+Ç8@¥R»ººˆ:®:>™™™Ánzþü9ÜÚÐРîGÝ ÇñÒÒÒàà`//¯k×® c>L+ âüùó0mccÃår™ddd,]º”°åóùNNNJ¥2000++ J …ÂÛÛÛÏϯ±±§¶¶6€L&ƒ>ëëëétúøñãkkk‰Ý¿V²íÃ3Fïe´µµ¥¥¥ùúúîØ±ƒ(d0Ä1‰Dååå°ÜÐÐ`gg×ÚÚ Kjkk:¤ÉJ&“)•ʼ¼<¡Pùé§Ÿ …BMæ#ïåË—ÃlXX؈5@*•&&&úûû%}ô‘D")--år¹Cº500`³ÙwîÜÉÎΆ%ÖÖÖT*µ¥¥f›››™Læ´iÓT×,üñÇð=öªÐNGàE#„B¡ðõõ=xð P(´±±)**‚å_}õUpp0\°-X°`Ë–-ª3k||¼»»{CCCCCƒ§§ç† 4YÉd2:žŸŸßÝÝM§Óe2™&óaÎ!ˆe'ŸÏ°··‹Åpë³gÏfΜéíí]RRÒØØÈáp\]]===1 ÃU€M›6Íš5‹Åb>ŒŒ x2 ³¡¡¡>>>--- ®®®û÷ïOMMµ²²*,,%%%ŽŽŽ°²zÛ_xtÆâ”ñÓO?Í™3N¶¶¶B¡ÇñÞÞÞõë×[XXXZZFEEI¥RUA`kgggff¶víZ‘HËÕ­p¿xñâ;ï¼cddäââråÊ•aÌUw¡šVýaL™2%,,LuvÃq¼¯¯oÇŽ³gÏ666vuuýî»ïúûû [x¼ù|> ==}Pù A(•JøTÌ …ÂuëÖYZZÚÚÚnß¾]&“Éåò¤¤$'''“>øŽšÚ>Ÿ¸šûÛo¿y{{kêAÎûúú~øá‡€€€ŒŒŒçÏŸ¼¦ÈY,VIIIDDD``àùóç¯_¿¾víÚåË—Ÿ:uj˜c±X7n܈ˆˆX±bÅ… ›6mÑ3:A|øá‡ééé"‘(==}ïÞ½t:ŸŸ/²²²Ž;VSSÃf³aýK—.íÚµ«®®îÖ­[‡NIIikkËÉÉ[Õ­0 KHH ¼páºuëŽ9‚aX~~þææææ±±±êiuìíí;::}}}B¡˜œœœ?~ Ó³gÏ–ÉdÍÍÍ©TZSSãéé9LŸÎ©©©ÝÝÝ™™™‰‰‰•••¹¹¹š‚×DuuuFFFTTÔ‰'îÞ½{òäɘ˜˜sçÎÁ_¼¦~.--MOOŽŽÎÊÊ’H$Çp8œá÷5$£ž2¶nÝZSS@|‚¾¤¤dÛ¶mVVVŽŽŽÑÑѰ<**jÞ¼y<ïË/¿tttœ>}úÎ;]]]5Y à8.“ÉŒŒŒüýý¯^½:nܸâââ!ÍMLL–/_®žÖ …¢TþûuƒE‹ÁYãîÝ»nnn'N‰¹\~óæÍ­[·ÚÚÚ:::®_¿žËåj ^«W¯666öó󄆆ûûûਬ©Ÿ'L˜°téR€Ö“dÔ'•&Løä“OΜ9sìØ1¢°³³sÕªUDÖÄäßOQ888ºººìííaÉÔ©S§NªÉÊÔÔ4%%%??ŸÍf;;;‡††.X°@“ùÈioo·³³ƒÁOš4©©©ÉÃÃCµBSS“³³3‘]¼xqRRRddäðóÅ ç"‘H©TÂ4€Édvww†~ÐlŒ4mP¢©Ÿ Æ šZ3jOŸ>-((ððð8~üøž={`¡™™YJJ “Éÿ–ÿõN£,--;;;§OŸhjj*//ÿüóχ´ú矔JeBB‚\.çñx{öì),,Ôd>Bp/**Z¸p!Ìúúúž={vÞ¼yÄi†a¹¹¹ªíææÖßßßÐÐPUUµcÇŽ:·°°000ð¨wtt0 Ç5¯P(¨TjOOÏÈÛ¢©Ÿ_âs £›2p?räHPPо}ûª««ËÊÊ`¹——׉'ºººZZZ¾ùæ›ÂÂBU+??¿ŸþùÑ£G=JMMíêêÒdE¡Pââânݺ%•Jh4Ú¸qã4™K¥Òââbõ4@, …žžžººº}ûö ‚Ï>û nŠˆˆ‰D_ýuEEE{{ûíÛ·cbb F@@Àÿ:ÅÀ`Ñ¢EÉÉɳfÍR¿Æ É9Fc±X?þø£@ €«Y__ß!ƒ‡kÔëׯ÷÷÷j¦¾Ÿ!“ÉFî™`t#Daa¡X,^»v-FÛ¾}{rr²›››©©idddZZÚ† (Ê¢E‹¢££U…†aX\\†a .ŒŽŽ†åêVFFF»wïÎÊÊzúô©]||¼‘‘‘&s±X|ôèQxê šlÙ²&¬¬¬ÜÝݳ³³‰ÑÕØØ8;;›ÍfgffvttØÚÚúøø„„„ª¶”Åb]¹reåÊ•ê0ŒómÛ¶¥¥¥mܸÑÐÐðã? £P(êÁ›™™EFF?~<''góæÍ·oßaÿ«÷ØÕlllÜÜÜV­ZuíÚµz&üÄz@F¯€Ȩjàí¼0…Ð$ $ $ $ $ $ $‰ÁW*«««‰o=ÿý÷ ôn'‚tÇ•2èö+BÏAçHHHÿî“ýɨ&IEND®B`‚XQilla-2.3.0/docs/simple-api/Node_8hpp.html0000644000151400015140000000761411653571064015345 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

Node.hpp File Reference

#include <xqilla/items/ATQNameOrDerived.hpp>
#include <xqilla/items/ATBooleanOrDerived.hpp>
#include <xqilla/ast/XQStep.hpp>
#include <xqilla/items/ATQNameOrDerived.hpp>
#include <xqilla/items/ATBooleanOrDerived.hpp>
Include dependency graph for Node.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  Node
XQilla-2.3.0/docs/simple-api/ATHexBinaryOrDerived_8hpp__incl.map0000644000151400015140000000003511653571064021345 00000000000000 XQilla-2.3.0/docs/simple-api/EventSerializer_8hpp__incl.map0000644000151400015140000000024211653571064020536 00000000000000 XQilla-2.3.0/docs/simple-api/ATDurationOrDerived_8hpp__incl.md50000644000151400015140000000004011653571063021144 00000000000000eddeeabdcd9827d0f24b5c5f8946a5f4XQilla-2.3.0/docs/simple-api/ATDateOrDerived_8hpp.html0000644000151400015140000000751611653571064017367 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

ATDateOrDerived.hpp File Reference

#include <xercesc/util/XMLString.hpp>
#include <xqilla/items/DateOrTimeType.hpp>
#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/items/ATDecimalOrDerived.hpp>
#include <xqilla/items/ATDurationOrDerived.hpp>
#include <xqilla/items/Timezone.hpp>
#include <xqilla/items/DateOrTimeType.hpp>
#include <xqilla/items/Timezone.hpp>
Include dependency graph for ATDateOrDerived.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  ATDateOrDerived
XQilla-2.3.0/docs/simple-api/URLInputSource_8hpp.html0000644000151400015140000000614311653571064017317 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

URLInputSource.hpp File Reference

#include <xercesc/util/XMLURL.hpp>
#include <xercesc/sax/InputSource.hpp>
Include dependency graph for URLInputSource.hpp:

Go to the source code of this file.

Classes

class  xercesc::URLInputSource
 This class is a derivative of the standard InputSource class. More...

Namespaces

namespace  xercesc
XQilla-2.3.0/docs/simple-api/EventGenerator_8hpp__incl.map0000644000151400015140000000003511653571064020353 00000000000000 XQilla-2.3.0/docs/simple-api/classATAnyURIOrDerived__inherit__graph.md50000644000151400015140000000004011653571063022612 0000000000000076249e80a8474c0e917fdba0b2fc8472XQilla-2.3.0/docs/simple-api/Sequence_8hpp__incl.png0000644000151400015140000004237011653571064017212 00000000000000‰PNG  IHDRu_Ö‘ÙbKGDÿÿÿ ½§“ IDATxœíÝyxÕú8𓦠]Ò´iÒ$mÓ½´”Ò–ù ²ÈR·‹¢"‹Êïeó "‹ (‹WAÄ {¿Â¹ (( ¬…¶”¶é¾'mš4[Ó¬óûãà’4IÛ4IÓ÷óøø„éLrfræÌ¼™sÎK!À&wè ~ìƒø°âgÀ>_w€÷˜8q¢»‹Ðƒ=öØckÖ¬qw)Ð.ˆŸ8Íùóçû÷ïÏápÜ]ž§  €Édº»°âgÎôüóÏ;ÖÝ¥èyÖ¯_ïî"Àÿ Øñ3`ÄÏ€}?öAü Øóop)µZý믿J$’ðððñãÇÏž=›F£¹»\ö7îÀQQQî.Üâg.õÙgŸ‰D¢ 6„‡‡WWWöÙg …bÉ’%î.€Ð€K]¹reÁ‚}ûö ÍÈÈX²dÉÕ«WÝ](û ~àRÇ—ËåøŸGŽÁ¯õzýž={ž~úé§Ÿ~zÏž=z½ž ˆÿýï/¿üòÔ©S/^|çÎqãÆÕÕÕ7obúÚrs„иqãΟ?ÿòË/?ù䓇F †¯¾újæÌ™3fÌØ¼y³R©´±¹™[·nÍž={úôé$?ýêÕ«/½ôÒÓO?½sçNNgua7P¸ ÄÏ\jÅŠ999Ï=÷ÜŠ+Ž9"‰È?=z´¡¡áË/¿Ü¾}{NNÎW_}uúôéÿû¿ÿ›?þ×_=wîÜÍ›7ÛxgËÍñò+W®|þùç‹-úòË/ ÅÑ£Gýõ×Í›7òÉ'555°½¹©ëׯïÝ»wåÊ•ûöí#8~üøæÍ›?üðÃëׯÿ÷¿ÿµ±=ÄÏ\jèСGŽùôÓOÓÓÓüñÇ_|ñçŸÆ:sæÌÛo¿Íáp-ZtãÆï¾ûîõ×_=z4‹Å1bÄüùóm¼³åæxùŒ3ètúO<’Ëå§OŸž7o^BBB||ü;3––f{sS3gÎ 5jBH¡Pà…o¼ñŸÏOMM?þ¹sçl,@ó‡p¶¶¶ß~ûmìØ±©©©©©©/½ôRvvöž={Æ …Ï>û,¹rPP^¯OJJ"—$$$˜½!AäkËÍñ 6›òõ}pɉD|>¿Žµ½¹)‹…¢P(¦ Éw‹‰‰ijj²±=ÄÏ\‡ ˆ7ÆÄÄਘB¡ 6ìäÉ“ø¯!!!Ÿ|ò N¥T*%ɪU«ÊÊÊñ •••ä[ *•*‹É%–›ãåfá.‹Å …ñññ¡ÒÒÒk׮͙3ÇÆæ¦ÌÞ «­­Å}MM °Û[€ úopµZK¡ØùY6 `Ò¤Iëׯ¿víZCCCAAÁ_|>#„F½wï^‘HT^^¾råÊãÇO™2å‹/¾¸zõªD"¹qãÆ¿þõ/„NGýôÓO­­­ÇŽ#ßÜrs«e˜4iÒ¾}û******>ýôSr¶ÕÍOŸ>­R©lïÔ®]»êêꊊŠöíÛ7qâD УÁógÖiµz™L-—«[ZÔr¹Z.WãÊdj™¬ÕôŸøÿ:Na÷mW®\ùõ×_ïÝ»·®®ŽÉdŽ7î•W^Ázíµ×víÚµ`Á …òØc-Z´ˆJ¥ †Ï?ÿ¼¥¥KÞ¸qcHHÈk¯½¶{÷î,^¼øòåËímnµ³gÏnkk[±bE[[Û#îÚ5ŒB¡¬]»¶ûúo{±õë××Õõ×h"#C9ÊeÅÆ²bbX|>“J…)?7ƒçÏàr¹Z,~ ãÿš›•äk2H6Ý$8ØŸÅ¢³XALf‹EOJↅ±Ùt&3ÇÃøarŸ>ÐV÷ qqò9sf×ÖJjj$µµ’7ÊE"9þÞ'::ŒÏ‹‰aEG‡ñùÌèè°èè°ÐPèD¸Ü“€}ry›X¬Àñps³²©éÁk±X)+š›U‰R§3ëûûû…………±ÙÁLf`tt“Fg±‚X,:“„ÿêçGuãNOª™;÷ÿ™-”ÉZ«ªš«ªš««›«ªšáåË‚êêf<»›Ÿ5224&†Åå2¸Üx^ t+ˆŸ½BÑÖÔ¤H”ÍÍbc²g5ùÚ46¦Óû°ÙÁ,=,,(22433¿f±èl6Æ47î‘[ Æòò&7w ïÑärZ]4*Šiº0$$0##0##Úle³¸ºªª9/¯âj [Aü ðr*•F(”‰ÅÊÆFyS“B,V64´47+r‰D¥ÕêÉ•ƒ‚ú„‡³XAaat/$=Ïfã8<<˜Í¦‡…Ñ¡75¦VkóókóòjóòjòòjËËõzcŸ>‰î.Wvÿ>kذ LfPz:?=Ÿž•žÎ‹cS(VæëP\]S#Q«µ¨ý¸:::ÌÇf/쀻@@ϦÕêÅbeCƒ¬¹YCâæfeCƒL,V65É8lÀØl:›Ìå2’’8\n~tŒ—³XÛ¢Ñè ëóókñ…… Z­ÞÏš’Â2$î•WF¥§G ¶ËÝÅìÁFŒhضí @ˆ’8tèšD¢òó£ÆÇ‡gdð32¢32øéé|Û½ ®ºÜ)<~V,Êšš8$‹‘‘ÁçrCL7!};oì£P\'NLÃKD"ù„çÎóMM __Ÿ„§SRxéé|§ƒ¸è:È_p?‰DÕØ( e8N&_74´45)ÈþÕ}úø²ÙÁ<ƒÅ Æ!1‹Ìã1Øl:‡Ãàpþþ~îÝ‘žN$’çåÕ˜ÌááÁÆÏ?Íf3 %!!ÉdÚXÇqZm0¦DÈC¯S:ƒBÑûú¶Ú_Õååå&Løæ›ol¬C†Ó¨¸X(B\.5уŲÙt§”Ç2®‰äWèå ~¸BKK«H$‰d"ÑŸq2¹Ä4BærC¸\¾)ÿãƒË áñ!!ªÇ™‚D8Z„ÌÉɼ”^r2ב€ÙÌ_þò§”­µÕ¯²’!‘ø§¥‰™Lý Ü¡¸˜)r8­±±rÍ`{yä‘¥K—:¾¾\®.*j P—–ŠŒFÂ4œÎȈær]/˜)³¸Z$’‹Dò’‘Y\ûgh q5¯ñ3À9ÚÚtuuR¡P^_/ml” …bc$k4"dÍ—Ã æñB9œ`/„Ëeðx!þ0“äÞ½ðnF#QR""/7Èåm ¥o_.ùx¹_¿#À…¬¬oÞ|úÔ©Üôtþ{ïe•ìÆÂØuù²àƒ¾/.Μ9|ùò)N° £P´Ö“átYY£Á` $ ÉȈNNæZ¬ë¬ÆÕ¥¥¢ÖVˆ«xˆŸ Riêê¤B¡¬¡A†_…²º:iCƒ¬¥åA/V??*‡Ãˆˆ §GD„†‡GD<ˆ–9FXDÈ®c0KKÉ€¹°°^©ÔøøP’’þ ˜SS#ƒƒýÝ]R„jjRlÝzæÈ‘QQÌwß–••ÙM‘žsÄéÓ¹›7Ÿnl”¿úêè·ÞšÀ`xÄñÔé ååMä·Ÿ—W£Ñè ÿ””2œîÛ—ÛÝá+ÄÕ¼ ÄÏ€‡ ÆÚZ)~t\]Ý,ÊåUUÍ"‘L"Qá4È …à ÆwºƒÇcà ¹\„ìN>7·š|YQѤÓh4ßÌÌh<ÝTr27--*(ȳ²4+•šO?=—}%0¶bÅ”™3‡÷¸™Þt:Ñ#7¶n=£×ß|sÜüùccLH÷ØpT¯7>|}ûöUª¶·ßžøÊ+£<-¶ï•J“}å³ÏÎ3o¿=qÖ¬Tª» eÙ7A  ›7+ZZZÍreedD»þç0ˆ«x2ˆŸðf:‡ÄµµÒÚZI]]K]´¾¾¥ºº¹­M‡×¡ÓûDF2#"Bx¼>ŸÉã…ðx¡QQ¡!0_—jiiÍϯ-.~"¸¼¼Q¯7ÒÒҢȘ'1‘ãëë¡a‰ ˆS§r·n=SY)~ùåQûÛD¯ùQF"Q}ñÅŽ{‰g/]úÄôéÝ]"‡˜æÊºs§J,Vv:WVwp<®þ£_LÄÕœâg¼R©©«“ÖÔHêê¤ø¿ÚZim­´±Qn0B~~ÔˆˆÐ¨¨P>?ŒÏgFE1ñ“äÈH&Þƒ÷õÍÍÊœëI˜Ì)å®]+Û´édNNuVVæÊ•S9î.‘óÕÖJ?þø‡ï¾»=dHÜ{ïe žàîuŒi8MV<ÓɽŽõ„Ÿ|½o_ÞºuOíщ©œëòeÁÆ' ë_xaIJeOxÁ·)—·Õ›¥žvY®¬®€¸@W@ü €Û縮®–TW7×ÔHðk¡P†;]ûûûá¾ÖÉ¡¡;°‹ À4 ³P.W{Zfç’ËÛvî<¿ÿe+hÍš'§MËì…]gñxïÍ›O‹DòyóF¿õÖxoúŠ•JÍýûuyyµ°¸X˜›[£Õº!WVW@\ À?à ‰ ÇÆ558N–TW7×ÖJq¿k??jTw½Ž‰ ‹Ž‹ŽfÅÄ„…‡»»àÀ ŒF¢¤äÏ€¹¨¨A¡h£R}9˜„Ù¹´ZýÞ½¿ìÞ}Ñ`0¾õÖøyóFÐÜ](wÂi®¶m;£Õ/~üµ×óʱf¹²òókÛÚttzŸÔÔH2š+seuÄÕLAü €Óc|³E¦P®¯oÁý®h}ûrMs&ã[.˜æÚËhµú»w«Égq÷ï׫T2 sF?%…—˜Èéщšì"âèÑ[[·žijRÌŸ?fñâÇÝ8u³§imÕ~õÕåÏ>;O§ûÿýï“<9Í•SèõƲ²F2œ.(¨kmÕzB®¬®èP\MNKq5ôt?Ð:ìn»^ãJ$*¼‹E7}’Œ§{åó™=ây 訶6ôÄ$ÌNwõjé¦M'óókgÍñ·¿MŠŒ uw‰<™æ*6–µ|ù䬬ÌÞY™Nî}ûv¥D¢2Í••‘Á0€Ø#»*q5ΰ…Q-/oT*!®oñ3vèt†êêæŠ qEESe¥¿¨«“êõF„ÞGȸ÷ul,‹Ï‹‰ óîG‹ µU{ï^-ôÜ$ÌNWPP·aÃ÷—/ &NL[µ*+%…çîyºº:é§Ÿžûï¯ ³jÕô‘#Ý]"70 §ss«È#seuÄÕà ~àO8T./oª¨WVâÿ‹kk¥x6¯°° øxv\\x|<;>><.ŽË rw©+H$ªÛ·+ñý½@ ĵ¢§'av®êêæM›N>›–õÞ{Ó{ÕôÚ]WTÔðÉ'?Ÿ ¡2@UU5 B³€ß§¤<¸M‡€ÙŒF£ß·ï—]».ÐhÔ+¦Ìœ9Î.Âi®¶lù¡¶V2sæð•+§²Ù=»ß²Ó)m……¦ž.+k4Œ=+WV§éõF¡P†#êêêqum­´¾þÁ¢ðð`“ˆ, ãóÃúô©7À9 ~^Å`0ÖÔHÊÊšJKE:`×ÕIF!ÄbÑããÃØqq:`ÇLJ3^˜4Øe–„Y Éd­>>”¤$¯MÂì\ƒñСëÿüçOr¹úí·'¾òÊ(óïD8ÍÕöíg•JÍ+¯Œzûí‰t:^ëÌreååÕh4z³\YƒÅzý/;Vç/-µ¶j‘µ~à±±¬¸8¸@‡Aü z°––V*—•5–—7•–6âyBaaA œ„v||x|<;.Ž 7 ½œYæââ¹¼·$avº“'ïnßþcyyã /ŒX¶ì x,ßMpš«;ÏôY¶ì‰^Ñ g¤ë(³púÞ½:µºÇçÊê Ó¸šh]]ÝÜÖ¦C…„r¹ .—aWÇLJCKíøô *•¦¬¬‘ìƒ]\,¬¬kµz„Pp°¿~dïëäd^¯JÚ£Ó ëñüCyy5……õJe¯KÂìtyy57žºzµ$++sÅŠ)IIw—ÈûI¥ªÝ»/îÛ÷ Ÿ¶rå^Þ!ƒ±´´÷1„·nUJ¥Þ“+«+,ãêêêf2µDHH ލ9ÇÀq54˜€ ~Èh$jj$P VU5㘙®œ˜ÈIIáákyr27%…èî" Ñèss«! s7©¬oÞ|úÔ©Ü#Þ{oúàÁ±î.Qï‚Ó\:t==¿jUÖ¨Q}Ý]¢žÊ4WÖ;Ub±=œ+kȸ^›XA§3H$J‘HnW“y(ȸú™À±±¬¤$n/üÐkAü Ü Ï#ˆðìM°¾¾÷Áî×/_ªñ<«0³0¥VkóóÍ“0‡„fdðÉYy{gfçjjRlÝzæÈ‘IIœuëf@b*7*.îØñ#NsõÞ{ÓÓÓùî.QgNãmÑÃá´7åÊê4ÎP_ß‚#j‘HFØ55<½ˆi\M>¸Ž…ùÀ^âgàR--­ÅÅB@XVÖXZÚX^ÞTS#Á¿jGF†&$p’’Â9ø¿¨(¦WN  :­¥¥õæÍ 2+,žw—Å¢ 9¥ºƒR©ùôÓsÙÙWètÿU«¦=ûìP8%=Á­[7žºy³"++óÝw§ÅűÝ]"ï!“µ’ƒ>ÌRO''ó’“¹Þ—+«+´Z}CƒÌôIµP(kl”WWKðí¥e\ÊŠbÂÏš€ž âgÐd²V@T\,Ä1³@ Ä9hIIœ„„ð¤$NR7!!<1‘½¿€¥æfeNN$av=½ÞxøðõíÛT«5o½5aÞ¼Ñp†z–Ë—k×/+kœ9søòåSàiwËÛŠŠêÍRO3))<¯Ï•Õ^(|(®®ªj®¬Ëåj¼‚Õ¸šÏgR©W<ÄÏÀiÈØxÄ2y¥d³é©©‘8Á2ŒX¶56*rs«Mf …Ò·/’0» Î?üñÇgjj$ ŒyóÍqLf/ êùÈŸ9 õ«¯Ž^²dL›Ü­T*MAAþ]8/¯&7·F«ý3Wn¦RS#aœQ{ÚÚtxöoÓ¸º¢¢I¡hCùùQ##C9†Yª-ˆ«âgÐI-ƒ®3MÂLöP€$ÌntíZÙ¦M'ïÜ©~ñÅGÞ~{bTÓÝ%ö©ÕÚýû/ïÜù³¯¯ÏoŒ[°` æëîBõ f¹²òókÛÚt½9WV§‘“‹Dr2À.+kT©4è¸GÔ\.ƒË Áqutt<ù¸ÄÏÀ!x†Ëh™Å¢÷ïÑ2p”Ef¡\®†$Ìž °°aݺã—/ &Lè¿jUV¿~î.蘖–ÖÏ?¿°oß/lvðÛoOœ5k<²s1½ÞXVÖH¶ou­­ZÈ•ÕfI¶pt]R"R«µ!Í7""ÄtÆ2üà:&& ¨ºÄÏÀ ‘HþG¨,4MEöRƒh8ˆL¾Šo(‹Šж>}|32 ³§‰äÛ·Ÿ=|øz¿~kÖ< Ók÷hõõ-ÿüçO‡]OJâ,]úÄôéÝ]¢^Ítrªæf%•êÃç3ɽ9WVWØN^mW›>¸vwÁÞâg€ cUUsAA]AA]aaCaa}m­!äçGMJââ899™×¯_DL æÌ¶iµú»w$aD¸^@mÀ€(HÂìiäò¶;Ïïߙà ^µ*+++Úx‡’ѶmgOž¼;lXüêÕYÇ'¸»D¡‡ÃéÜÜêÆF‚\YNe5®&“W÷éãk6²:6–dž!B€ø¹7ŠÔß¿_ÿ~]Q‘P­ÖR(”ØXVZZTjjDJ /%%".Ž Ñ2°«­MG>^ÎË«­¨hÒé ¡¡éé„Ùsiµú½{Ù½û"•JY¹rêÌ™Ãá ïsûvå¦M§®_/ÏÊÊ|ç© áî.xˆéÀ(È•Õ}ÈäÕ8·W“ɫۉ«Ã I°âgï§ÕꋊÈ„–dgìððàcÈ‹4<jmÕÞ»WKÌååz=$aî1‚8zôÖÖ­gÄbåâÅ¿þú8è<ïÝ._¬[w¢¤DøÂ #–-{ÎM%—«‹Š W–ËqõS—ÉðÔefÉ«¹\—Ë ãêøøp˜¡€^âg/ÔÔ¤¸{·šüI?ô󣦦FâP:…¡ËÀA‰êöíJHÂì®\)Ù´édAAÝ /ŒXºô ¾µ^Áh$NŸÎݸñ¤X¬œ7oô[o‡«žO©ÔÜ¿_Gþð]XX¯Ó W– H$*ütÚô¿êêfF¢R}""B¢£Ãðàxº²˜—Ë€žô?÷x¦ó3‘€Bøy <^€‚$ÌÞ¤  nÆï/_LŸ>pÅŠ)IIw—¸šNgøÏ®nßþ#…‚/~|þü1}ú@š«Ã,WV^^F£7Ë••™ßi÷‰äµµd8-Á1v]T§3 „h4ßèè0K›ÆÕ¡¡ð¬oñsÏÓܬÌÉ©2{¼lšOŽ á pžk] ’3$aöÕÕÍ›6:}:wذø÷Þ{rÈXw—¸“LÖºk×…ÿû×°° ¿ým¤¹ê¡ÌreÝ»W§VC®,÷0´L(”ã!Öd’-ÓäÕ¸8™ÂÚÝtÄÏ=€\®&DÝ¿_WQ!6Œ4šo¿~©©iiQ©©‘ii‘ð'pA$aö~ÍÍÊ>úáÈ‘‰‰œõëg@b*@jhhù䓟¾¾|ùdHsÕÓážhäÏ ·nUJ¥*È•å^˜ v\âg÷€€8$aî%D"9—Ëhï¯'OÞݾýÇÊJñ‚cÞ|s“ }5£._¬_¢¨¨aÚ´ÌÕ«³bbÚœ)É`~žN&k%³Z’©§!W–ÂÀE"9ù¤ºªª¹´TÔÚj}p5~ VèV?»ÌÀ¹ s/´mÛÙ  OŸþ›e–”[·*6l8™“Sùâ‹,Y2‘Ïgº¥„ GÃi®6m:ÕÐÐ2sæð•+§²Ùt³uòòjfÍúòر¿Â³Jo¢P´Ö›¥žöï×/‚ §“’80Õœç°:¸º®Nª×·;¸:1‘ƒ«pˆŸ» î7+ˆ¡Y ˜A'H¥ª[·*q¥*.–•5 FHÂÜ{dg_]µê(B”½{_ž6-“\^Y)Þ¼ùô©S¹>š´zõôÌÌh7xÎpäÈ?þ¡­M·hÑØÅ‹Ç›¼|æ™]×®•³XAgÎ,…Ÿi¼•J¥)(¨#GåæÖhµ+«Àƒ«ñ°jÓ¸º¦Fb4Z\ÊŠbBß4:âg§iiiÍÏhÒ/„‹EÿãbžÎ‡» à8±XyçN•Õ$Ì¥¬·9räÆÒ¥‡ ‚ðñ¡ðx!¿ÿþžŸµ©I±uë™#Gn¤¤ðÖ¬y¦×N¤Riöì¹øùçBC—.}OAwþüý¹s÷"„¨T‡ñ÷1šx ³ÔÓùùµmm:³\Yéé|˜jÁcY\]UÕ,“µ"„üü¨aaA8¥ ®À?wžNg((¨»s§*'§:'§ª¢¢ =0gd𣢠`îjj${ö\Ü´éÙ®¼‰e'H B.¾üò>£Ñˆ[kÊ{ï=ÙܬÌξÂfÓW­Êš6-îr@w e;vüxøðõØXöòå“·o?[^Þ„dùúRãâØ'O.‘–½YêiŸÙÓÎ:•ûé§?-[6ù‰'@ \ÏËãçãÇsV­úŽNïsãÆûnBDI‰('§êöíªœœ*@h0££Ã Š4(fРäB·oW®\ùmQQ¾À#„üü¨ï¾›õúëcÉut:Caa=™#ÿþI˜ƒêê¤S§þS*UâŸüÍøûû]¿¾¦Ctè´={.mÚtÒ`°R©TŸ'Ÿ¸sçD¬‰däTdæÊ:t}}} ~íçç£×Ï<3øý÷Ÿ‚ÏáIËL#j¡PÖØ(ÇÓ‘¶¸\bãꘘ°®Ä½»w_Ø´éA ädλïfMš”Q4p%¯Ÿkj$Ë–¾r¥”B!ݹ³ÞÆ4'ryÛ;U·nUæäTÞ¾]%—« ÿAƒbqÌÜÑ~GÀ»55)Ö­;qüxŽ2þ<}¨TŸ¬¬ÌW_e™„yذøää£Â 3pDKKëôéÿ¬ª’èõ«+øùQ_zéÿmÜøŒ‹ z¡––ÖaÃ>P©ÚÚ[ÁLJ2wî¨?„Úì“ËÕEE 6re%$pž|òS³»SÍ×LJ²xñãK–L„{F/šOZVQѤP´¡vW‡;8îw¾=|øºNgðñ¡Š‹cÿíoŸyf¤X®á…ñ³V«ßºõìž=)„ŸÛøøPvï~éÉ'™®s÷nu^^íÍ›7n”‹Dr??êÀ1ÑÇǽ²%­V¿sçù]»~6«QM@M­ÖÒú÷JOç§§G¥§ó““yp±¢ÕêgÍÚsófe{Á3æëëóÛoïÁ¬þ »mÛvvÇŽí®¶~ýŒ Ƹ <À›ˆÅÊüüÚüüÚ{÷jóókñCËöP©>QQ¡›6=7~|ªËJœË¬¸H$‰ä%%"µZ‹îN±îÛ—kÖñóùçw_½ZBþ¢hàbÞ?_½Zºtéáúz©i73ü æí·'^»VvãFE^^ͽ{ujµ?><~ذø´´(H+løùçÂwßý¶¡Afµ#æãC9sfiÿþ‘ÐvƒN3‰… ³ü1ß´wBˆF£R(>!äëëÇNMœ9søãÃ}$è^›7Ÿ¾{·Z ‰D2„ÅÏÏW¯7˜5† å³Ï^|öÙ¡n*&ðr¹zÓ¦Ó‡]kï×C*ÕÇh$>”mÛ^xì±äÈÈPË¿455usIAtï^ÓþýyB¡!„Å×—b4¦\LQ©”¹s3&NŒëúçöïߟÃátå V÷Dß}W|æL—IçóQQÁáá01 iìØ±]ÙÎ ç2ˆ¦&U}½²¾^YW§¨­•·´hÞzkhrr˜»‹Ü ‹W.|ºtéy¡Peu …B¥þyöõõÉÌä,\8(8fuõBøßry}}ËСëmoK¡P‚HIá>õTüÀÜî) èEÌj£¯å]¼;q¥‚‚‚ÆFåæÍÿºx±ˆBAíE5!£‘àñVƒg¬½³ôrcÇ¢¿þõyµZ[^ÞT^ÞTQ!./o„ååb¹\òñ¡Ðh¾:Á`0H£ èútéÒ¥®—A­îi‚Èȶsg» ⡜õ /œÝM«ÕÓhVî.€wsÊ•K«546¶"„|}}üü¨:?ñ󣯯²9ññ츸ð„v\\xdd(Ìúî­ ÚûSuµ­Aò!??ªÁ` T]-9}Ú˜–6`âDhóAçYÖÆ|…#âÇŸ~ O9`»_-æ{ûv娱ý\T8à]hiiQiiQ¦ [ZZËÊšÊËËË›ÊË‹Š„ÕÕ͹¹Õî*$èé(JXϠǃàtZU•ŒJ¥FG‡ôíËKJ ‹ gÇÇC¨ þTUÕL¥ú˜ößöõ¥F£‘èÓÇoÈØ‘#ñ\îŠæþýûcÇB𠜬_ärskÊÊš‡ ‹R(Œµµ‰DIN·C£ùR©ògK„Vk¸zµlÙ2÷xÐÐÀ!Cb‡ ‰5]ˆJ £˜C¨ l¨­•FÍW«Õ#„¢£Ã†Ãg à÷éóghÓØØè¾boÖƒãçcÞ|s$B÷Ä3ŒMMŠºº‘HV_ßÒÐÐÒÐ «ªjnhhijR Ƽ¼j½ÞØk'Ý®Á`tiÒ/ ×¢R)<ÛжÇO80vР˜Aƒb˜Lè·\­ÇÏf¨T/„dzž·¹±Q!+¼,Y½Çºu3Ü]ÐÛyOül‡Ìá»»z*èÌ Øñ³ó•––R(«/l¨®®~õÕW ‚˜3gNwEA;ÅÆ¾à]¸s环¯ï·ß~K.?qâFËÏÏÇÿT©T+W®ÌÌ̤ÓéÇß¼y³^¯G:nkœµ§vQ(”ÒÒR—}œ{u¥V;²f×áÏ"ÿùÁP(”-[¶K>lµÂܽ{×ôŸqqqsçÎíDŠà.î¦Ùæ*•jÅŠ™™™ÁÁÁÆ ûðÃñib¦+%ïú÷bõༀÖ·ö¦•3$$$++«¢¢ÂÁv¼Q(”¾}ûš Κ2eŠ[ê¡GÆ*Ï)‰×0»ô´§½&ÂÁSÉ3ë•Û à•œR£Pû-°ã—~§_¤,+ŒÕ*Ô¡ë©í·ê>®ŽŸËËËÙl¶‹?ÔÅBCCßyçŽnuüøñ3fÔ××´+îÝ»wïÞ=Ïy3äÎ:²×Ó¦Mkmmuîñé6Jˆw F3`À€… ñúë¯2D«Õâu–/_>zôh½^On¥T*ãââöìÙcùvB¨¤¤¤Ëûd‹2tß§_¼xQ$uñM<§V[nÛL?+77—B¡œ;w!T\\l¶¦e1̾J£ÑøØc½ÿþûÝTT«LKÕÞi²wï^³­Ü[r«_h÷N¹ByÎyáõ­½YM¨­­EÉd2G>Ëj-š>>Ë—/G ò«tðK!bùòå‹Å¦»€¢ÑhÙÙÙû÷ïß¼yóW_}•íç燷:pàÀûï¿O¥RÉ´råʃvâ¸uèËÂïâĉ””‡³dÉFcwûöí‹Lj¬™Ÿ~ú)))‰ÉdnÞ¼™üÊÌ>¢½Ïõ®©Õä¶f§¿eåDTé“'Ofddøûû'$$|ýõ×fŸ…ÿyøðá1cÆL˜0¡_¿~¦ D¡P^ýu|:X-§ÕÆÍôÙÝ ÛõÙêi²bÅŠØn!í–Ütóììl\`Ç[uƒÁ°uëÖäääàààG}ôúõëV œX/oíÍàúŒ‡!Xî Yã€,j‘N§ûé§Ÿ6lØ’’’˜˜¸aƳgÏâ5Ÿþùo¾ù†ø£wëÑ£GŸ{î9ò}:×ÎØ>2ƒ~íµ×ðšJ¥200ðÎ;ަ½oöàÁƒ©©©aaaüq{k±gÏžþýû3ŒÇüÔ©S¸îÙ>Í-[ ¯<=‘½ãpéÒ%ËFÛêVÈÚUÆj›¬]æÉµÀò7ÛÇO%ªä¦zzuBÞ[£Ì˜¶À$ÛMqGC6»Uλ»fõÞÏŒKk£i0íÈï4¸W¤Ñh$âĉ‘‘‘:Ž ˆ>úèÙgŸ­®®ÎËˈ _Èår6oÞ¼ÚÚÚ „ ‚Ø¿ÿ×_MXûáІ†«"„fÍš%—Ë÷íÛ‡úË_þ"—Ë¿üòK„X,&¬}/6l˜6mA'Nœ`0ƒ&âÖ­[þþþ*•а÷¥Ü½{!d4ÉÛ)\ZrHÿøÇ?B7n$—àæ©©©ÉìÀþþûïaaa8n¡»wï*ÖÞ—…ßmÒ¤IàÚµkIIIëÖ­sp­Ö„PVV–\.ÿî»ïð·úí}® ®|þìÊZmvú[VNÂ^•V*•}úôÙ³gOCCÿÿýo___ÜJ˜V?£Ñÿå—_±zõê´´4³]¶ûü™ ˆ›7o†††¶WN»›í½°zÄÈÍÛ;M®^½ÊårÍZÈŽ–ÜjÝv¼Uß±c‡i݈ŒŒ´<;ºï¼påóghí»ØÚ&í³\./--}æ™g†ÚÞ‘±|þlV‹ôz}II ®™AlÙ²%33¯YTTÄãñîܹCDKKK`` Žóñ©Ñ‰vÆî‘ùá‡X,.ÌÒÒÒðéc»06.dÏ=÷œT*Ý»w/B¨¹¹Ùêš{÷:{ölSSÓ¹sç’’’ð³}š›ÝGußéI¸ðù³åéIØ;ëÖ­³l´­neõ*cµÍ'lžÎŽ,tüTòœJnV°î«N®|þì•5ª½ØöEÊÆóg»!›Ý*gyÇ‚¬=¶ÜµöîýÌÞÊ•µ±Ãñ³J¥ ºqãA/¼ð»ヒ—÷ëׯ¡¡¿>wîÜÀSRRŽ;†—Ü¿¿6=@Z­–J¥’:vìXRR^!//ÏîÎXÝŸÎqð}¤R)ŸÏÏÈÈ uZZZvv6¹ÂþóÛwT¦°°P©T †_~ù…¬7Ï>û¬D"!¬U |(ÚÛ!”““C„V«5{W°ü^nݺE§ÓµZíÒ¥KW­Zåçç'•J·nÝ:uêTÂ/¿^¹r%z¸g,¹ ˜Ñh|ê©§¨Têœ9sL y™úí·ßØlv'޲¦½/ˬj9r$))ÉÁýµZB—.]"J-))±úVZ}C’+ãgWÖj³ƒiY9 {UZ"‘øùùmÛ¶M*•F…Ba0ˆ‡«ßµk×|}}q5»}û6B(??ßt—;?w¢q³½V˜Ýøù÷ß'O²:u´äVë¶ã­zrr²eÝ0+g÷®ŒŸ¡µ'ºÖÚ·Ï~~~cÆŒÁå´]ÿÉmÍjù'™LöÎ;ïÄÆÆâ#€ÿºxñb\o80qâDÂäÔèD;c÷Èèõz÷óÏ?1uêÔ-[¶Å¶Qß,®Ø¶›ˆ¦¯1ËïeРAAAA7oÞüõ×_Ÿ|òÉAƒýúë¯/^œ6mrøK¹y󿨱c?üðÃöváàÁƒ—.]ºpáÂÑ£GOœ8A@‡Ÿi˜º{÷®íoÜÆî—XŒv ?ËìËÂÈ:Ù¯_¿ÚÚÚ.VBüüÍÇç¡óÈì#l,ôn©Õ˜eåÄËmTi&“yñâÅk×®ñùü1cÆ\¾|ÙÇÇÇì³>¬×ëÙl6…B2dB¨]¸KJJÈZщÆÍö^بÏÈæi‚wÙ¬œ¶KnusÇ[õššGꜨ׷öÙ>kµÚK—.áG¦¶ë?Éj-:tèPÿþýÅbñÍ›7 D.þùç¿ýö[‚ ÌúµZ=,v¦Ý#C¥RŸyæ™cÇŽ‰ÅâóçÏÏž=ÛôÛ+ŒÇ;k»‰(++0`¹Iÿþýmï`{­„WžžÈÞqh¯Ñ¶ÜÊêUÆêæíÎD;?î›éЩ„<¬’“¼ :!ï­QV[`’ƒM1æàõÂöEÊl_Ü/ÔνŸåj®¬™{Ö¬YGýþûï‡ B–?Áß“T*½víZdddee%þëÝ»w7mÚdö>\.—J¥–——ã–••EEEá×í  r¯ššš]»vM˜0aÙ²exITT”錈¶ßA­Vÿå/Y±bENNÎîÝ»ñ³gÏNž<¹½Mð¡°º¡#,¿Ÿ©S§ž8qB  <øñÇ?wîܯ¿þŠï¨üRNž<¹gϞÇ_¼xÑrêëë—,Y²uëÖÇ{líÚµ‹-"'J={ö|@N#úè#r7Û«œvKÞÞæ¶êqqqŽÔ 8/´ö<2–,kÑŽ;Ö®]{òäÉ}ûö…‡‡›þiÔ¨Q …âÊ•+çÎ3›º¶íŒ#GæùçŸÿßÿþ÷Í7ߌ5 wæ·[;nvÃguÍØØXÓZWXXh{Ûk%¼òôDöŽC{¶åVV¯2V7·<ñàÒºº:Gö¢£§’GUr’T'ä¥5Ê®]kœ²ÅÄʦ˜*,,ôõõŽŽv¤¨–ÇÐr5—ÖFÓwösÀÌôíÛ×´3Û’%Kž{î9<Ãþˆ#þú׿®]»6###?????ÿÑG]°`ñdzxrê‹/¾8~üøòòòüüü´´´÷ßß²k¥ ®ì¿m0&L˜ðÁH$÷ý÷ßñá‡r8œãÇ744œ9sÆîˆ8©TJ¡PΜ9ƒs #„rrræÌ™SWW‡?¥½ŽV7$î aõµå÷BÄ·ß~K§ÓqÿŸsçÎÑétÓ1¢¶¿Ó×k×®MNNV«Õ¦»`4³²²ÆŒƒ;WhµÚŒŒŒY³fá¿Êd²”””qãÆ={¶¸¸xÕªU!‡£Ñh:zÜðnZæ¯jïËÂï6nܸ’’’7nôíÛOSìÈþ’5vïÞ½---íp«ÑÞçÚà²þÛ.®ÕfÓjå´]¥Õjµ¿¿ÿÑ£G›ššþõ¯ùûû›U¿‹/R©TÓ£wëÖ-²Â˜•‡„L²@]ºté©§žâóùäݡƭ½’›¾¶zÄL7ǧɘ1cΜ9#Ž;–––ö裶µµYvsíPÉÛ;—lÕ?ýôSÓº‘€ßÁ5ç…ËúoCkoYªN´ö¦…4e£þ“ƒåâ1Ÿ‡*4aºæ›o¾™šš:nÜ8G‹Ýƒi÷æD¯×s8.—ûÕW_‘ mÆñoÖêš;wîäóù?þø£X,þùçŸSRR(ŠÕ4+ªkNOÂUý·­žž„½ã`µÑ¶º•Õ«ŒÕÍMÏ…¦¦&„пÿýo™L†Ÿ%_ò,›ˆNœJžPÉ]V\ÖÛ+kÑ~ lû"eõ#0»Æn•{ÿý÷Ož}LËݸqÃÇÇçèÑ£øŸJ¥rÙ²e ð÷÷OLL\½zõ˜1cfΜ١ãFî¾¥ö¾,ünûöí‹e³Ùo½õ>ýlï¯Yµ}À­~D{ŸkƒËâg×j³ƒiµrÚ­ÒGŽILL¤Ñhýúõ;qâ„V«5ý¬E‹Mš4ÉtFcbbâ;ï¼cY’iý‰ŽŽž={¶éñw°qs<~¶>¶w ¯`y í~b·ÖF arÖØØxÿþý±cÇZ^¥<îË”––æ!ïSZZÚ·o_ÓC ¡ÕjsrrðäõÝÇߎÕèÄç^ºt©ÿþ§+…Z <„³Î §\¡à¼Î²zõêÊÊʃºæãN:™™‰ÿùÝwßmܸÑjJ¡qÖ鉜qåêqw¡^¯£•܉ÕÉ)m5Ô¨Þ¬[kcgÆ?à\4­»ƒgÀ)ÚÚÚÊËË÷ïß¿`Á—}h^^Þœ9srrrZ[[¯]»¶fÍšùóç»ìÓAoã–J@Oáëîà" cÑ¢E®ÿ|.ž Î àe®_¿þôÓO¿ñÆ®|®µråÊÖÖÖ3f455%$$Ì›7Ï)gœžÀªÎUr¨NÀstkm„þÛÎ|œÂ£úoà!<ªÿ6À ôßNý·ç€þÛ@g@ü Øñ3`ÄÏ€}?öYÉ_U__ïúrtN[[›¿¿¿³Þªí8Ž€Z ¼‰R©tÊûÀy€'ƒÓ §ÞáC]dY­ÄÏÀUåqg] …B¡P8å­ðP«°çž¬gÝ…‚îã¬;|¨Q ëÌjãCùŸ`Œìƒø°âgÀ>ˆŸûþ?}ºÆš°`€QIEND®B`‚XQilla-2.3.0/docs/simple-api/VarHashEntry_8hpp__incl.map0000644000151400015140000000003511653571064020001 00000000000000 XQilla-2.3.0/docs/simple-api/inherit_graph_10.map0000644000151400015140000000023211653571064016442 00000000000000 XQilla-2.3.0/docs/simple-api/functions_0x79.html0000644000151400015140000001117011653571063016307 00000000000000 XQilla Simple API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- y -

XQilla-2.3.0/docs/simple-api/DateOrTimeType_8hpp__incl.md50000644000151400015140000000004011653571063020165 0000000000000009ed99b15b14fc54c1099ef1b10a3b83XQilla-2.3.0/docs/simple-api/DateOrTimeType_8hpp__dep__incl.md50000644000151400015140000000004011653571063021154 000000000000007d330fb19947c2149bab64e2734ceaa2XQilla-2.3.0/docs/simple-api/StdInInputSource_8hpp.html0000644000151400015140000000607411653571064017701 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

StdInInputSource.hpp File Reference

#include <xercesc/sax/InputSource.hpp>
Include dependency graph for StdInInputSource.hpp:

Go to the source code of this file.

Classes

class  xercesc::StdInInputSource
 This class is a derivative of the standard InputSource class. More...

Namespaces

namespace  xercesc
XQilla-2.3.0/docs/simple-api/VariableTypeStore_8hpp_source.html0000644000151400015140000002005111653571063021431 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

VariableTypeStore.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _VARIABLETYPESTORE_HPP
00021 #define _VARIABLETYPESTORE_HPP
00022 
00023 #include <xqilla/framework/XQillaExport.hpp>
00024 #include <xercesc/util/XercesDefs.hpp>
00025 #include <xercesc/util/XMemory.hpp>
00026 
00027 class SequenceType;
00028 class XPath2MemoryManager;
00029 class StaticAnalysis;
00030 class XQGlobalVariable;
00031 
00034 class XQILLA_API VariableTypeStore : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory
00035 {
00036 public:
00038   virtual ~VariableTypeStore() {};
00039 
00041   virtual void clear() = 0;
00042 
00044   virtual void addLocalScope() = 0;
00046   virtual void addLogicalBlockScope() = 0;
00049   virtual void removeScope() = 0;
00050 
00052   virtual void declareGlobalVar(const XMLCh* namespaceURI, const XMLCh* name,
00053                                 const StaticAnalysis &src, XQGlobalVariable *global) = 0;
00054 
00056   virtual const StaticAnalysis* getGlobalVar(const XMLCh* namespaceURI, const XMLCh* name,
00057                                              XQGlobalVariable **global = 0) const = 0;
00058 
00061   virtual void declareVar(const XMLCh* namespaceURI, const XMLCh* name,
00062                           const StaticAnalysis &src) = 0;
00063 
00067   virtual const StaticAnalysis *getVar(const XMLCh* namespaceURI, const XMLCh* name,
00068                                        XQGlobalVariable **global = 0) const = 0;
00069 };
00070 
00071 #endif
XQilla-2.3.0/docs/simple-api/AnyAtomicType_8hpp__dep__incl.map0000644000151400015140000000133711653571064021146 00000000000000 XQilla-2.3.0/docs/simple-api/VariableTypeStore_8hpp__incl.png0000644000151400015140000002157411653571064021051 00000000000000‰PNG  IHDR}u´ÝÀÞbKGDÿÿÿ ½§“ IDATxœíÝy@ç¶ð/a ‹²´Š€"‹¸ðQD% ²=µ¶u©Uz{E®×¶êU[­µõU¹Šu/(EEd±¨ ŠŠ"²U+àrE@DÃN $™÷Ç´sc6"I ç÷W˜Ìr¾™“9ÌLò} ÃHA•w€º ê.@¨»yTå g×®]òŽ ¦¯¾újöìÙòŽ„ î ¬¢¢¢¬¬ÌÖÖVÞ€Á‘ŸŸ¿zõjyGÀŸ î ‚­­íöíÛåùùùò€ÿ‚ç»y îäº ê.@¨»y îЩ©©AAAüÊ`š’’Òç²uuu^^^ïõ®äE®]»æ%JMMM‘„Åb9r$,,lþüù§Nb³Ù\§H^^^uuu²X3Š~G@xzz:t¨²²ÒÞÞŸR]]ÝÔÔ$Mç :::aaaƒ̬Y³.\¸€jhhذaþ!4räÈ®ùàÁƒ;wî466~ñâÅÁƒÛÛÛ###Ö­[—žž>ÐÐP>p½ @èëë;;;óÿ0´  ÀÁÁÁÐаÏeuuu׬Y3ˆÁhhhèéé!„ þ¢ª:ЬoÞ¼¹zõj+++===‡ÈÈÈÂÂB„Çkkk„ÐP>Pwè§9sæ\¿~ÇãáÞ¸qƒ¸|ûöíÕ«Wûúúž;wýu£¸¤¤$444''Gœ¸+W®,[¶ÌßßÿÀ===üÛåp8±±±±±±G\„‡Ú·oþšÅbùúúVWWã‘._¾< àСC½½½âV«¥¥•––F”X‡ÄÄD„ÐúõëBK—.ŧwttìÝ»wÉ’%ÁÁÁGŽa³Ùüí­¨¨&æâââððpƒqöìYb Ä).x†¨»ô“»»{[[[ee%BèÅ‹µµµ¡®®®mÛ¶YYYÅÇÇúé§ÇŽkiiÁ9þü–-[¬¬¬ð?%Ì™••µoß¾={öÜ¿ÿ—_~áßnrrrCCÃÑ£Gøá‡’’’S§N‰‹pöìÙ………\.!TXX8jÔ(KKKü­´´´={ö|ûí·EEEx½¹ÚÍ›7—””mÞ¼911±±±_üðáÃ!âaöO?ýÔÔÔûÝwßÝ»w/!!A ½ÒÄ\TTtìØ±èèèãÇ•^8Nq* îÐO:::3gÎÌËËCݸqÃÑÑQ__!¤®®~âĉÈÈHCCC:ŽêììÄY³fÍÔ©Si4þ§„97lØ`nnnccóÉ'Ÿà› dggþùçt:ÝÂÂbíÚµwïÞ¡ªªjyy9BèÊ•+>>> ëÓO?%ÖŸ››+nµ...‰‰‰?ýô“½½ýåË——-[võêU­p8œk×®mܸqÔ¨Q«V­ÂWÈß^ib ÕÒÒrssCµ··‹‹SÜD† ø^ý7gΜƒnܸ±  €Á`àUUU_¾|¹ÿ~‹E\ÚâÆŽËÿ§„9ÍÍ͉EÞ¾}ËÿÖ«W¯‰?µµµÅ…G¥RÝÝÝ ,,,îß¿¿iÓ&‘ëojj¹Úîîî[·nyzzÚØØØØØ,_¾üôéÓ±±±ÞÞÞü[innæñx£GÆÿ433ÃWÈß^ibÆÿˆ‹SÜD† ¨»ôŸ««ë¾}û®\¹òäÉüB !ÔÓÓ³cÇŽ;v¸ººöööfggó |ÑIœ/_¾´°°@ÕÖÖš˜˜ð/¥««{àÀ333„PGG“É”¡§§çîÝ»Çgoooll,rýxÁ^-†a»wï;v,~wšB¡L›6-##C`úúúT*µ¡¡áƒ>@Õ×× ´Wš˜*®¸8ÅM`¨€ûÌôŸ†††››[LLÌÔ©Sñï#„z{{9Žªª*›ÍÆdvuu‰\\œGŽ©««ûã?Ž?îëëË¿”»»û±cÇŸ>}––&!B.—{æÌþé111ÄúçÍ›'rµššš>>>ÿú׿îܹÓÐÐðûï¿9r„ÿb—Åb!„TUU½¼¼<ØÐÐðìÙ³'NÌ;W ‘1gff÷ÕÅŽSÜD† ¸Þ`@¼½½sssù;µÐÑÑùôÓOwïÞ­©©¹lÙ2ooïèè蘘áe%̹pᨨ¨îînŸâ M¡?þ8&&fõêÕ ÅÃÃcíÚµ£R©—/_Æ¿óE˜;wî¦M›º»»½½½ÃÃÃÅ­6:::..îØ±cuuuúúú^^^~ø!BÈÔÔÔÞÞ>000++ !ôùçŸÇÄĬ[·NMMmΜ9ááá·E®|ÿþýŽŽŽî“ lj¯V8x† ‡;„PHHHSSÓ°÷øñã¯^½úꫯð?ëêê"""¾«¥€DÆÙ¿à½¼¼CBB5@ú î30l±Ù솆†ììl???yÇøÔ]†­G­]»vÁ‚ŽŽŽÄDmmmâ«×ŠLdœC%x$€ûÌf÷™Üg ®wò@ÝÈu Ô]€Õuqiì{ÖAòð¡áÛ·4K§wÒé]4—œíZXXŒ3†œmÐ'è7’46¶fd”%'——×êøû;1SœÇ©¨ÈçqÏÅ‹¥ëÖ©¯?@æFŸ>mJM½Ÿ˜x÷åËf‡1AA.AA.zzZdÆ€|AÝ@¶ššÚÓÓdd”Þ¿ÿ\[[cþ|;Ãqöì‰êêr¾Û$—º‹ãñ°ÂÂꤤ{—.•aæãcä2g޼þ€LPw‰·o;RSK22JKJþC£©-X`Ï`8zxLÔÐP”‡;r¬»„¶6ÖÅ‹¥II÷îÝ{6j”ÞÒ¥Îáá3Ç3’cHÈÔ]S{{wNNErrñ­[5êꪋ90ŽîîÖ4šš¼C¤u—PUõ*)©81±ˆÉìtv<- ÀI[[CÞq0ø î0:;{²²Ê/]*+(xÌãažž“üü¦ÌŸo?r$MÞ¡‰¥Pu×ÛËÍÏÿ#9¹8'§‚FS›?ß.8xš››…B‘wh E¹åÀPÔÕÅÎÌ,»t©ìÆ*.—çé9iß¾[]]ø¢P¨©©Ì›g;ožíë×í/>øõ×¢ÐÐ#&Ðýý§††Î07×—w€ ¸ÞབྷeW®p8¼¼¼G¥W®þvNN…Š uÞ<ÛˆWè~È |¯ gÂcðmÚ4_ÆàdRQ¡º»[»»[·´t]ºTvæLahè 〧éÃæ‡a`¨€ë]0 )þ|Š@y®w…áÝO¦¦Þoiù³ûI?¿)ššêòŽ (¨»`øBcð)e®»8¢ûɼ¼GZZÐý$ Ô]0ä Å1øÔ]÷“VV&!!ÓBB¦w\`x‚º †*‹}éÒŸcðq8\//?¿)0Ÿô î ûŸLK+a±zÿç,#"\¡ûI0è î‚!†è·ß*;:zð‡sCn >EuWþî'uu5ýü¦¬\9ËÖÖLÞqaê.†Ù|ŠênŸêêšÓÒJâân¿xñï~réRgø Ô] Ðˆ1ø®^}ÔÒÒ…—Û ìÍÌôåÚuWJüÝOr¹¼ùóí‚‚\¼¼lTU•÷Çß`  îE$0~©1œÆàSPwßW[[÷Å‹ ûI0@Pwƒoº¿ÿT%¥€|PwûM¸ûI'è~Hê.Pø|¿ýVY[Ë?ÞxéR'(·²uw€ ûIÐ?Ð}'1øBB¦A¹CÑýdkkWFFÙ/¿††13Ó÷÷wZ¾ÜuìXCy\ï9€1ø\ïºÇ_%''$Üî'PwyþóŸ·ÉÉ÷ðrkd¤³d‰”[9‚º+#ïv?©¾xñTè~ðƒº dƒHOO ÆàSPwe­±±59¹øÜ¹¢gÏš ûI@€º d… >--u__{ÃÆàSPwIÝO~PwÁ c2;SRîÃ|Šê.Ézz8¿ýV‰w?9r¤&ƒ1eÅŠYvvÐý¤ÒS!ø|—.•]¿þ!4¾ÝÉ“Á|44T Gñ¾¾%5õ~\ÜíøøÛÖÖ¦ÁÁ.aa3¡ûIå×»`@ÄŒÁg7r¤¦¼C‚êë[>üð‡ÃÅÿd±z™ÌN33=b†É“GÇÄDÈ):¥ÃãaÅÅÏ’“‹SRîs8Ðý¤º úÆà¢<<öÔÔ¼ù…‚¢¢|ñ…É!¶¶îË—+’“‹oܨ21Ñ rY¶lÆøñÆòŽ È Ô]ð` ¾¡îðák{÷fr8<á·(JQÑ׿æ0à„ÜÔÔ¼NL¼›”t÷õkè~r8ƒº úF Ä?ߢE£Féõ½0P$õõ-Ó¦íþÔS©{{óìì¿Ë%*À¿ûI*•âãcÝO3Pw•“ÙÙÖÆ’fbø³«W57wN›6ÆàŒÿ{ðà÷Î_U•ºc‡ÿG¹Ë+* ï~2.îVEÅËÑ£õœûì~²·—»}{ê¶mKàûŒŠ ê®r))ùϪU'ýü¾ù&PÜ<cðÙÛ›Oƒ1ø†3g ¿þ:EàV³Š ¥´t§¡¡Ž¼¢àÝOþúkQss§³ó¸ààiK—:ki‰è~2+«ü“ONÙÙ™ÇÅ­61I~¨@Pw•H\Ü­/¿¼Àåòtuµ**v tE”ÛœœŠººfƒo¸b2;§LÙÆåþ·îª¨PgΜ”´^ŽQ>±Ùœë×''gg—ki©ûøØOsw·æŸ'"âçë×ÿ P(zzÚçέ…+&¨»J¡«‹ýÅ —.•ýu¸) kgÏžˆ¿[^^›”TŒÁ7nœQ` 3”Ûá-,,öæÍj¢ôR©”~øßÐÐéò H©±±5#£,!áΣG ––ôÐÐéÁÁÓéôüïUT¨ åÇÿ7(ÈEÞñAPw‡¿êêÆ•+×Ö2‰ó¬ššÊÒ¥Î6x§¥ý9Ÿ©©n` KP ”[eœ\ü·¿#ñª©©TVî1‚&ߨÀ{Á¿~‘˜x7+«œÇÃ|}íFŒÐ<þno/÷¯Y( Z¿~Î?ÿ¹†Q(Pw‡¹ììŠãÙl.Ñ[NSS½»»wäHM__»%K¦º¹Yïõ•GGGÝWl6!¤ªJ7ÏîĉUò ôÓ_ÝOÞ*-­moïAèS:•Jñõµ?t(†#TPw‡-Û³'óðák!QG™å³qã<èœ]9­Ys:;»‚ËåQ(”Ÿ^¹hÑyG¤¸øÙâÅE¾¥¢¢biI?{vÍèÑðÃ?…—8ÃSKKWxøÑǯa&ò_+UUjMÍk(ºJkéRg‡ÒÔT›;×VÞá€JH¸+îãÌårŸ>}=þeeµ$GD‚º; •–¾ðòúîæÍ 738nNN%‹Å&30 8¼¼l45Õ)´`= 5Ô±Xìôô¾'»‚z{¹--þþ³²ÊÉ ˆôÎçÅb577Ë+0(®^­Ú¶-³§‡+ð˜GXwwï… ·æÌ±–<›|ijjêë´›Žææf‹5(ñ 'sçNºx±ÜËË¢¾¾^Þ±(}}}MÍíAfÖåä<êêêãh.—ÇåòÖ¬9ý·¿y.[_r&F½SwÛÛÛ«ªªä†ef>IM}ÜÓÑr‘””bss™5PÆÆÆ¯»õõõMMMƒÏpbk«“—§¡«ÛŸza“'O`Ý%3ëž?¯uu5Ãooµ¶v#„x<¬«‹ƒâpxø ¡·—×ÛËC €J¥¬]ë)ï(P:ð½*”|¡òAÝÈu Ô]€}úž={8ê×~£ˆ2X-í…B©©©!msJÏ¢>g—$R&¡Lñgã¸qãV¬X!ù÷¬ïû©‡Ät$d…B±²²èJoÁ‚r?šd ú«§§÷üã}—JKKó÷÷¯¯¯?{öìÇe˜¬áM˜:uêÖ­[###[ZZB­­­ëׯ߾}»½½=B¨½½ÝÅÅ¥¨¨hïÞ½%%%[¶l‰÷ññár¹ýÛo·nÝjx×à6êéÓ§FFFƒ»N žE"ßâ?â²Eš$$ž–/_¾qâD:ÙÓÓÓg{­¬¬ˆ#"ì·ß~³´´Ô××ß³gqÈ6!n» Bä¾B¢2‡·äççoß¾}ìØ±ÆÆÆ+V¬ .æ„—Bedd888Ðh4 ‹¸¸8„‡Ã¹8‘EüÉ@¼þt´EÊ$”iÓ„Q(”uëÖá.‘ëáo—”ëꉧ„Y‡ >þ<ö×­æäää   â]‘­èó /ùôåääôñÇãsvtthii=xð@øp—Nü5YÊëÝ+V¬\¹òÕ«W&&&EEE†=z”N§§¤¤Ô××gffš››#„„/׈mmmêêê}ôÑË—/ãããB¯_¿Æ0ìäÉ“qqqØ»ÿFá¯,XpíÚµ††‘ "„ÂÂÂÚÚÚŽ?Ž ikk;zô(ž †}÷Ýw/^¼(//wrrÚ²eËÎ;-Z„aXzzúÈ‘#œœ0 +..¦Ñh†…‡‡{{{?yò¤¼¼ÜÎÎnÇŽü‘”––"„x<Qtñh‰&¶lÙ‚Ú½{71ÿ˜555 ìØÛ·oôc¿!„JKKÛß%î`ákóññ©ªªºs玥¥åŽ;¤l¯È|@ùùùµµµ]¸pßá"7!n»|½+¼¯0Q™Ã¿[vìØakk[^^^QQ1cÆŒ¨¨(qKutthhhÄÆÆ644œ8qBUUµ££ãû¸„‚4¥IBY7 uqïÞ====É[Çß·N~²K<2¯w•-ëBüñ‡©©éƒ0 kiiÑÒÒÂ/Zðln&Å^òé+++ËÐа··ðøøx[[['p d—N˜PFõ§î677›››;88Û³µµ=}ú41Ù3g$×ÝžžžGuttp¹Üëׯ{<00Édb¢Žqyy¹„B%%%†±Ùl×ø “&MjhhÀW˜››ëèèX\\¬££Ãf³ÿþ÷¿oݺUMM­¹¹ùûï¿_¸p!¾¬ŠŠ ñ±III±´´äzüø1Ñv¢ 8·dÉ•ˆˆþH¤ ¿[·nõc¿IøJø`ñ·ðÄÄDKKK)Û+2Bùùù†q¹\<$‘›9Qä $×]á}…‰Êþ†Lœ81%%÷áÇÄkᥘL¦ššÚþýû›››y<^{{;—Ë·¸„‚4¥IBY7 ë«îŠÛ:>EÜ:ùÉ.ñȬ»Ê–uø‘úì³ÏþùÏb?oÞ<Œ/[„[õu†ïóôÅápLMM¯^½ŠaØÂ… ÷îÝ+| d—NØ Ô] ÃvîÜ©¢¢B¬HSS³´´”x¿„—P?0 KOOwsssttÄ¿>W]]ÝÞÞ¾xñbü]ácL<^{÷.ò5öNïÿººº\.×ÄĤ°°ÐÅÅåÎ;Ó§OOOO_¸pá¿ÿýo ÃjkkB, _Oyy9Fãíåååéé¹råJ|6þ&àâââtuu¯_¿N£ÑÒÒ҈馦¦W®\Ø«‡vss{ßý†õõdBà`ák#šVVVF£Ñ¤l¯Èõ#„ªªªøw¸ÈMˆœ(.fùÏwö&*søw F«¨¨^ðR†Ý¼y3((H[[ÛÝÝ=++KÜââ>ø¨AX_g@é“P¦MÃD¥å¹sçœ%o˜Yä:ùÉ.ñH~¾«TY‡©üü|KKKçïïôèQLâ¹ëë ßçé ðõë×öÙgMMMêêêµµµÂ{Ové„ üù.B¨¶¶6&&fîܹ›6m§˜™™ñ?­ÏadX,VHHÈæÍ›KJJ>ŒOÌÉÉñõõ·þx@ä‚ÒÀ¯#ñ6777ß¹s‡J¥.\¸0==½ªªÊÉÉiΜ9¹¹¹‹-B™˜˜¨¨¨<}ú_üÉ“'fffü‘à222bccýõ×¼¼<á&Ô××GFF~ÿý÷Û·o_»víÛ·oñ·ÂÃÃwíÚ…ÿc… KHHØ»woXXØûî7ɄτPUUÕèÑ£¥l¯8"H lBÂD!r_ g>ß-£G~þü9>¥´´ô›o¾·‹ÅâñxIIIL&óã?f0L&SäâÂüfuuuÒ´Bú$”iÓ„Ã0ìÈ‘#øçKÂÖqR®s$ž²eÎÍÍ­½½ýæÍ›¹¹¹ß –œ"Isú NMM=þ¼›››¹˜ÑOÉK'þš,Íõ.—Ë;wî®]»˜L¦©©éÅ‹1 ûöÛoétzZZZCCCvvvŸÏw›››)Jvv6þV„PIIIDDD]]¾‘ÿ[‰[“âz7222((ÿþúŒ36lØ€aXRR’ŽŽ~—#77WGGÇÖÖ–hé²e˼½½Ÿ>}ZQQakk»mÛ6qQmß¾ÝÚÚšÅbñ7ÇãùùùÍž=¿?Æf³ÂÂÂðw[[['Nœèåå•““óøñã­[·"„ètzOOÏûî7¼™Â¿#w°ˆ+õêêê»wïZYYá_1•¦½ÄcãcÇŽµ´´ˆÛá"7!n»y½+r_a¢2GàÐ;88TTTTTTÌš5kõêÕâ–b±X4-99¹©©é矦Ñh,KäâüY„ÿàõĉ­­­ÌöÜÔ%IDATüù€ á$‘> eÚ4Œ/-_¾|™ŸŸ¿dÉsss"m$o]Ü:ÉI<Ò®w•0눣¶~ýz///é"ÏÕ}žá%Ÿ¾0 ãp8t:ÝÄÄäÔ©SÄDrÒ ø}æC‡M™2¿xOMM5j“Éd³Ù;wî?~¼ŽŽŽ««ë¹sç$×] Ã~üñGƒ1cÆ>|8,,L__°ŠWᄤÓé"w™Àë¶¶¶U«Véëë®Y³ÿæTKK‹ªª*þØ¿³³S]]=::šØ“É\¾|¹¡¡á¨Q£¾øâ ‹%.*‹emm½uëVþ&œ>}ZCCƒÿÑïÝ»w©Tjrr2þgGGǦM›ìììh4Ú„ ¾üòËÙ³g‡††¾×~#š/ò?*‘ _ÛñãÇ?øà##£7âg4ÉííííussÓÑÑ‘°“±wóU`â¶+™uWä¾ÂDeÿnéîŠ=z´®®nXXXss3>]d¾%&&N˜0A]]}Ò¤Iééé"g³ÙüY„aØîÝ»õôô&L˜žžŽo—ÿX$‰Àâ’“P¦MÃÞMË1cÆ„‡‡óŸz$o]Â:IH<Òê®fqÔð!iñçzX_çê>Ïð’O_¸uëÖijj¶µµSÈI'L(£(ßÇãõë×>ø¸÷555Â=’€>±Ùì’’üûú²CÂѹ‰~l`1ð‘Ãk=@Á VâåççOž<™N§$È:Eóå—_>þüìÙ³RÎ?Xé„„2 ƽW êêê².º lº»»ëëëOž<™ ïX‚q”ÐÈ‘#×®]Kþ&HØ.Prx@¤¢¢"—>úè½îæÊ.drŸ€A÷™\À}f0¸2 ®wò@ÝÈu Ô]€ XQilla-2.3.0/docs/simple-api/XQQuery_8hpp__dep__incl.map0000644000151400015140000000023011653571064017765 00000000000000 XQilla-2.3.0/docs/simple-api/classInteractiveDebugger.html0000644000151400015140000001350711653571064020467 00000000000000 XQilla Simple API Documentation SourceForge.net Logo

InteractiveDebugger Class Reference

#include <InteractiveDebugger.hpp>

Inheritance diagram for InteractiveDebugger:

List of all members.

Static Public Member Functions

static void debugQuery (const XQQuery *query, DynamicContext *context)
static void outputLocation (const LocationInfo *info, unsigned int context=0)

Member Function Documentation

static void InteractiveDebugger::debugQuery ( const XQQuery query,
DynamicContext context 
) [static]
static void InteractiveDebugger::outputLocation ( const LocationInfo info,
unsigned int  context = 0 
) [static]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/simple-api/ATGMonthOrDerived_8hpp__incl.md50000644000151400015140000000004011653571063020553 00000000000000e4f2e1c18b26b3372e6377d9b402dfa7XQilla-2.3.0/docs/simple-api/MemoryManager_8hpp__incl.md50000644000151400015140000000004011653571063020071 00000000000000988e81deb946febbf9f651f393db3f42XQilla-2.3.0/docs/simple-api/classXQillaConfiguration__inherit__graph.png0000644000151400015140000002125111653571064023503 00000000000000‰PNG  IHDRHÃovËbKGDÿÿÿ ½§“ IDATxœíÝi@×ÚðDlLƒìîP¡*n¥Öj±镺¡‚ì D¡rÛ–ºA ØzÕr[‹²ˆ" ˆ ÚÚ[q+X-(P\@P„}Kȼ¦ošBH& ÏïÓäÌö$gþÌdf2P0 CrQ"º€ìA° !6$Á€„hD0Ê„„„\¹r…è*ÀŸLMM÷ìÙCtŠ‚=4¥¥¥÷îÝ[²d Ñ…TPPÀb±ˆ®BAA°‡lÉ’%gΜ!º €6mÚDt Š ¾c@BlH‚ A° !6$Á‹Š‹‹i4Zjjª¨%33“N§—––"„(ŠAŸ_YZZR(”ÊÊÊ‘® {,Z°`ÁÎ;}}}›ššBÍÍÍÞÞÞAAAsçÎÅ'¨®®¾sçŽhz·åŒ.ì1j÷îÝêêêŸþ9B(00P[[{ÇŽ¢±+V¬ߟgee-_¾œ€*ÁpA°e/++KWW—Çã!„’““ßxãööv„ŸÏÐÔÔÔÐÐàóù••• %77wÊ”)ùùùAAAS¦L™4i’‹‹ ¾/•8BèüùóÆÆÆ***3fÌHHH@ ‰³ã«è?L§ÓãââŽ?þõ×_Ÿ8q"..NYYYôlllΜ9#:OKK³¶¶•X…B9~ü¸‘‘ѤI“¾ù曄„„éÓ§3™LÑ-ŸMMM›7oVWW×ÓÓó÷÷ïêêû .äp8ø”mmmªªªÅÅÅrèœ1Caccccc󓹸¸¸ºº>þ\SSóÆxãþýû7nÜøøñã’’’… VTT „,--óòò‚ƒƒgÏž]RRRZZºxñbÿæjkkc0‘‘‘uuu±±±4­­­íÀgojjЉ‰é?Œ D…††Š7"„îÝ»§¥¥U\\ŒÏ¥ªªÚÐЀª¨¨X>—½½}KK˱cÇB›6mjii‰ŠŠB544`æèèhnnþðáÃ’’’9sæ‹¿ýŸ~ú‰Ífóù| ÃgÏž- eÒc{h¹1ñx<===ccãàà`Q£¡¡a]]>œ=þ||Ë.))Á0lÖ¬YéééøØòòrÑpÿ¹¸\®²²òÁƒy<žP(lmmíííhv)„Báºuë¨Tª“““x;`Ÿ/¾øðÄÄD Q»Ä’ð±EEE†õôôô®¨¨èéé¡R©eeeø\éééúúúâo_ hiiåææböÑG}óÍ7ÿX?[ öÐ ~cúꫯ¨Tê‹/D-***âÇJL&ß²{zzð±¥¥¥ý—Ó. î]»fmm=~üø÷Þ{ï§Ÿ~’2» L&óòåË***¢v<ŠùùùúúúB¡ÐÊÊ***  ¶Ä’Dc%?yò!ÔÙÙ‰7–””¨¨¨ˆ¿} ü½½}||êëëétú“'Oþ±~¶ð[.žüðóg϶´´ôôô(++«ªª4{ss3þ¥W|Ã0OOOcccü|•ŸŸŸ¦¦æöíÛÅë¡R©7nôôô|ûí·544ÄGI#)++ÛÚÚúúú>zô¨¬¬l÷îÝŽŽŽ}¦yï½÷ÁW_}åìì<¸O Œã„Ñk0‡‡ž7o~„yîÜ9mmm.—‹aXKK‹››‹Åb³Ùíííø±(>WWW—¿¿¿ŽŽ“É´··çñxx{ÿ¹0 KII™9s&N744ÌÌÌ”2»ø*DÃqqq ãþýû¢šûí7%%¥´´4Lì@:??!O#j—X’z(Ža—Ëuvvf³ÙÚÚÚŸ~úigg§xm8//¯qãÆµ´´Èª/Æ,  ü7Àð{l9ÙµkWuuõ©S§31ô…ð  ºººjkk?žœœLt-dß±B¸qãÆ[o½åîîþþûï] À(„åË—s¹\¢« Øc@BlH‚ A° !6$Á‹ž>å={Æ#º Gp¹kÈ®\¹baaAt¯¤¡A!¤®Þ@t!¯¤´´ÔÔÔ”è*{hÞyç¢Kª*6…B10è%ºWbjjJŽî¸W|̹{·ÖÜüB(7w‡‘‘6Ñå¹€ïØcNVÖmM‰F£ž?›èZ€¼@°Ç Ã’“oB 79¹Ž×È ‚=¶ÜºUýòe >üâEËï¿WZöØ’‘Q¤¬LŇ••©çÎÁ#~É ‚=†Âôôßùü?O†óù½éé·!±Uy€`!×®=hnîoinîº~½‚¨z€ü@°Çsç~§ÑþÖã4%=ýw¢êòÁ+ººø.ÜþvSŠ@ ¼páNWŸ¨ª€œ@°ÇŠœœò®.Aÿö®.~nnùÈ×ä ‚=Vœ={‹J¥ôo§R)gÏÂÑ8Ù@°Ç„ÖÖ®¼¼»O€ ÂÜÜò¶¶î‘¯ È{L¸x±Tt•«?>¿÷âÅ’‘¬ÈüdLàñÚ[ZþºÐµkW:B(,lƒ¨åµ×TX¬ñTä~¶9&°XãÅs;~<!4u*›¸Š€|Á¡8$Á€„ Ø‚`@BlH‚ A° !6$Á€„ Ø‚`@BlH‚ A° !6$Á€„ Ø‚`@BlH‚ A° !6$Á€„ Ø‚`@BlH‚ A° ! †aD×0jDGG]‚l¤¦>CÙØè]ˆlxxx]‚Â`…B!ºÙ R™¡ÞÞf¢ ‘ ؆û£]À(ôþûï]øS~~þ—_~Itоc@BlH‚ A° !6$Á€„ زTQQannžŸŸ/j¹~ýº……EUUþ²««+**ŠÃáXZZnÛ¶íÔ©S½½½¡gÏž™™™I¢±±144ÔÎÎÎÒÒÒËËëêÕ«C-ð°°0KKËA®ñUÈ{ù@[– œœœ>ÜÖÖ†joowuu1cB¨££ÃÓÓ³¼¼ÜÃÃ#&&ÆÁÁ!;;; @(ª©©ÙÛÛi]---[¶la0AAA‘‘‘|ðAHHÈÍ›7‡´ÆÆÆœœœ“'O"„†QÃ?ª««[·n>,åƒÀ *2æìì|õêÕ¨¨(??¿èèh6›mgg‡ŠŸ8qbxx¸’’BHOOÏÄÄÄÍÍíÇ\³fÍPï‹+((033¯°Ï÷…¢¢"[[ÛÒÒÒþuJ\þàËÃÁ–½7ÞxÃÖÖöرc...Ó§OÇÛÚÚ¸\®¾¾~Ÿ‰ =z$ei{÷î500HLLܶm[LLLSS¾´)S¦ˆO9nÜ8|ß‹úî»ïêëë###÷ïßóæÍääd¼ýÚµkžžžQQQ­­­GŽA¥§§‹/ç§Ÿ~JHHðññIJJrttŒˆˆþ~Ïœ9¨««Û¿N‰Ë|yÒ× ¤€`ˆa555JJJ?î3ªÿÏH0 ߇÷G§Óccc}}}Ùl6žÛöövügý(E äååmß¾][[{ÆŒnnnÙÙÙø(+++55µýë_!ÑArgÏžõòò211a2™‹-rss“þ~=<<,XðÚk¯õ¯SåÁ€`Ë^NNÎíÛ·ÃÃÃ/_¾|ýúu¼QMMíõ×_¯¬¬ì3qeeeŸo4íéÓ§;vìðððøùçŸñÆ &°X¬ššñ)ïÝ»çååÕÝÝÍãñ„B¡ŽŽÞ®««[__«««ãË”²ÆÚÚZÑBhÚ´i}&èók*¼~‰uJôŠåÁ€`ËXccãáǽ¼¼Œ]]]:$Úó¬X±">>^(â/CBBrss“’’ÌÍÍ¥,°»»;88ØÎÎ.::ú“O>µ/]º4%%E^ÿŽ‹JeNšä"¶µ·wtÜŰn™¯âÁ6ÜŠ¦HîÞ­ H™:Õ—É4£R™[¶˜ MòX‘@ÐÄá¼O¥2™L³©S}RîÞ­•ÇŠ†èíBÁ{”éê⧥݊‹»^^þŒN§öôô"„ÔÔTnÞÜÃdªÊi¥ÍÍ&&!mm]!*ô¾ù¦îæÍK­­ßRQQ–ÓJÁ«€`Ožp££/Ÿ>}£³³!$þÙqJJJ;w®òöþ@®kˆÈýúëÅVJAG·³[ìá±|òä×åºv0TlE‡aXNNytôå_­¤Ñ”øü^ñ± ECcBaáC¾çA»»ï¼R_ß*Ê6NY™*—.ÕߺuùŠo*àiˆ± ‚­Ð²³ÿ »ðàÁs*•Š?½¤%%Êþ³ÉÁá(æÔ©‚Ï?Oíl¦$gÍÒÚ¹sµ…Åì(H'ÏÚäɯ×Öò(ŠÄTS©JÓ¦©ÛÚ¾=2ÅØÚ.ž:•M¥JØ' B%%ôìoÊöȤƒ`+4CCíÔTƒ&ñ··WøÕWë©ÔêDM髯6ôöJØcS(:]95ÕgÖ,­‘)HÁVtóæMŽßJ¥*õɶ²²Ò»ïêðÑHcnn´d‰¾²2U¼‘BATªR|üÖyó&d1@ ö(°t©þúõ úÛ®R À¾üÒjä‹Ù»w­@ ìÓ¸~ýÂ¥Kûþ/@ ¶¢ãó{}}“22Š–ˆöÙÊÊÔÕ«çÍž­;òõÌ›7yÕªy¢6…‚\]—edùú&õ9cÁVh--]öö‘ÙÙeÉÉ^lÚ¼y•JE …ØçŸDTUáçÆ©T¥Í›ßÛ·ocr²Wvv™½}dKKQUqlÅõüy³•Õ÷UUõ¾ï¾« Ù°rå„“Ó’3&UØŒ“— „,-熄¬G½û®~F†oUU½•Õ÷ÏŸËþ~u0Tp[AUUÕÛÛG*+S““½Äïëêép8Ç¿ýÖ~Ò¤ –÷òe«Ÿ_rl¬;þ×1Ožpíí#aR’'w‚`+¦’’'ÎÎ1S¦°ãã·°XãûŒ 1üŽNbI,ƒÇkwq‰yü˜›˜è1w®!…‡â èÒ¥{7FÌ™£›’²­ªÑÿß§M8‰e°XãSR¼çÌÑݰá‡üü{#_ÀA°KffñæÍÇ>üpv\ÜUU:Ñå ‡ª*=.n‹…ÅlW×c™™ÅD—3FÁTHdd~HHÖ¶mf»v­Õ¿¦PV¦FD8éèLôöN¨«köòzŸèŠÆ¶BÀ0lïÞŒãǯ~ù¥Õ–-¦D—# e÷î5ZZÌ  ŒÆÆ¶;Wê?U£›xÐÏïtFFÑwß9X[¿Et9²´e‹)“9Îß?¥¾¾åàA; ¾ú6Áººøžž' *¶ššÎ"ºÙ³±1™8QÕË+žÇ눊r…'®Œ ¸ÜE$.·ÝÅ%¦¦¦1>~ë‚Sˆ.GŽŠ‹;;GOŸ®¿Uâ©~ [lÂÔÖ698Dµ·w'%yh]ŽÜUT¼ppˆ?ž‘”ä©£3‘èrH¾ó£²ò¥•Õ÷4šÒ… ŸŒ…T#„ 4/\ø„JU²²ú¾²ò%Ñå›7o>Z»ö;]]ÖÙ³>šš¯]ÎÈÑÔ|-=ÝGG‡µvíw·n="º2ƒ`´ÜÜ»vv‘Ë–¤¤l“߃“©zæÌ¶¥K ìì"ssï]iA°GTrr¡›Û±=ê"þó‰1…N§EFºlذÈÍíØéÓ7ˆ.‡œÆè¶EˆˆˆÜ}û~üì³?ûì_cün *Uiÿ~MÍ×üüRÛ||̉®ˆl Ø#A(Ä‚‚2Nœ¸ºÁÍmÑå( …âç·òõ×ÕöìIþ¼åË/­äÇ-äÁ–;>¿÷³ÏN_¸p;&ÆÍÒr.Ñå(7·eZZLoïø¦¦Žo¿µëó˜D0lp[¾ÚÚº9œãwî<ŽåÀãþrýz¥»{ìüùSbcÝÕÔD—Cl9jllsvŽyþ¼ùÔ)O##m¢ËQhwïÖ98Dik3¶²ÙjD—3êA°ååÙ3ž½}¤Pˆ%%yÂÿÇŒÇíí£¨TJr²—®.‹èrF7¸Ü%å嵫WÿWU•qîÜvHõ M™ÂÎÈØ>n}õêÿ–—×]ÎèÁ–½7ª6løÁÈHçìYb98êLš4!=ýc## ~¸q£ŠèrF1¶Œ]¸pÇÖö¨™™áÉ“[Ƈó@C6~<ãäÉ-ff†¶¶GüñÑåŒVlYJL,ض-žÃyïÈg¸r3lÊÊÔ#GœÝÝ—yyÅ'&]Ψ×±eæÐ¡ŸÃà &ɳˆE¡Pöî]§£Ã L}ñ¢ÙÏo%Ñ2l ±={Ò ÂÃímlLˆ.‡~œ3a‚ ÑåŒìákhhsrŠnll#Ï6"փϢÔÕ'$&z¨«Ã­iÿΊÓ£Gõ«Wÿ—Ïï½páßêðÆZ?þø Ÿß»fÍ=ª'ºEÁ޲²gVV‡µ´˜éé>ššL¢Ë+45ÿüÀׯ?\VöŒèr{È._¾¿~ýa“égÎŒÅg‹ÉTMNö46ž¼~ýá+Wî]Žâ‚`MVV±‹KŒ•Õ¨(×1ûl#bG?q‚ceµÐÅåXVÖm¢ËQP°iÁÉ“×wïNÿä x¶±¨T¥ÿüÇFKë5Ÿ¯ÝÕu)Ñ)ö`……]8z4/$d½›Û{D×þ|²‹5~×®³OŸòvíZMtEŠ‚ýÏa@@JFFQtôæ>2&ºðw÷÷´´˜>> ­ØÂ?ýû &&%%…èr…¢Ìf[3Ó‰.d8lll°W£ø[ƒ1Ͷ¦PÆú¿ûï5 {ì3gÎŒ|M£Á&¢ ²o¿ýVV‹ [Åèë Y)((o‘l›‘ªÈWjjª¬[…"ëÿ(|'€„ Ø‚`@BlHh8Á¦H2¼ÕÓh4ñ“·™™™t:½´´´ÏЦM›æââR_ÿ×ïõ(ŠAŸó––– ¥²²Y[[ëàà0mÚ4555“sçÎ µB ÜœœÔÔÔB•••r½“TÞË—éý8 £ûê+Â?Þ±€úõ×_ëþnð7<<|øÍf‹^îÙ³GKK‹ÇãaÖÔÔ¤££ÚgEOŸ>ÍËË[·nžž>%>–F£‹ÅårUUUB†544hhhp8œÂÂÂ?þøãàÁƒ ãçŸ|©†=}ú!TSSƒaX}}ýçŸ>¤Ùÿ‘ø§!óåÛØØÈꕜLJ?Êttÿ>f°ñä OEE…øZº»»çÌ™ãááa˜——×¢E‹zzz$®H(šššîÝ»W4våÊ•;wîMgii)šËÇÇÇÖÖV|Õþþþ+V¬x•jeN®ËÉ`KéGyƒŽ–o°ÏŸ??þüqãÆiii}ýõ×xcVVÖܹs ÆôéÓããã1 c³Ù!MMMÑŒ·nÝ¢Ñhûöíc0¥¥¥RV”””´hÑ"ÑØØØX}}}¡Pˆ·¬^½:66V4—––Ö¯¿þ*>{kk+þ'Ã0çêêÊf³uuuýüü:;;ñe&&&²X¬ýû÷÷©VÔ7B¡ðèÑ£FFF&L033;þ<¾Rѧ'Ærrr&Ož|õêÕþ‘Äå¾<éF2ØØÀýØÓÓãïﯡ¡1iÒ$ÿžžñåÒ¥K{÷îoýƒ}óæÍ‰'ŠÆÞ»wOKK ?ojjRUUmhhÀçâñx!.—;лptt477øðaIIÉœ9s‚ƒƒñeZ[[óx¼˜˜„Pcc£Ä^Œ‰‰ÑÕÕýùçŸëëë³³³õõõ¥÷·¥¥e^^^]]]ÿHâ\ƒ/OzOp°±úqÿþý7n|üøqIIÉÂ… Å?–àààÙ³g—”””––.^¼Øßß ¹$nNÐÑûh˜ÁîãüùóÝÝÝwïÞmkkëíí½|ù2þþ¹\®²²òÁƒy<žP(lmmííííl¡P¸nÝ:*•êääÔgEÒƒ]QQáããóÅ_`–˜˜haa!jçr¹!ÑŸÿ>zzz¨TjYYþ2==]__Ÿ÷Ò¥Køør$öÇœ9sN:%ZZRR’ôþ.))Á0LâG$q®Á—'½§F8Øõ£¡¡¡è,LvvöüùóÅ?–Y³f¥§§ãcËËËEÃýç’¸9AGc’úh˜—»ú¬iõêÕt:ýÁƒ+W®\´hQ\\>‹ÅºtéRaa¡žžÞòå˯^½ª¤$a§NÊÏÏÏËËKKKËÌÌ”¾Þ™3gŠ·ØØØ¤¦¦b–––fmm-jg±Xšššåååâß¼yÓÄĤ££ãÅ‹½½½¢EéëëãçNB:::!eei?zøðáœ9sD/ß|óÍ>`ÿóghhˆ’øIôŠåe ~¬®®ÖÖÖÆ¯nXXX,ñOOS§Nýã?D/ïÞ½+¡gÏþö¨=¼{$~D½by„Òêêê¢=Ç+,,ÄÛñEGG§ººo¹}ûvXXØ@s ´9AGK }‡.’tlÀãñ(ÊÅ‹ÛÛÛwìØ***êììTQQIKK«¯¯ŽŽVQQéììÄCZ[[1  …«W¯^¾|yoo/~àallloo/Z‘èrW~~>~¹«©©©OÞÞÞFFFfff}Ú_¾|Éf³¯_¿~çÎàà`„Ð… ðÉÌÍÍ]_ª€RIDAT«ªªJKKgÏžŸlkhà#¨Ã‡ëééýïÿkhhÈÍÍ5k…BÁ¯±ÇÆÆ677㻬ßi’þ‘ø§!>ñ Ë“ÞS#v(.½}}}­­­«««ïܹ³xñâ?þXü—–––––.]ºtëÖ­Í%qs £å}VüÛo¿}ýõ×'Ož|äÈ{{{ |™3gΤÓ醆†™™™†ñùüeË–©©©aÇ`0îß¿/ZÈo¿ý¦¤¤”––†ýý gòäÉŽŽŽ/^¼è_F~~>B(""¢yÕÕÕÖÖÖ:::&Lxûí·³²²D³s¹\ggg6›­­­ýé§ŸŠÎF¦¿{{{ÃÃÃgΜÉd2W®\™™™9iÒ$ ÃBCC'Nœ8sæLü@ëw‘£ÿG$þiˆO<Èò¤÷Ôˆ[z?¶´´¸¹¹±X,6›íááÑÞÞ.þN»ººüýýutt˜L¦½½½èÛrÿ¹0I›nŒw´l‚ Ο?ûömÑË´´´ùóçXÏ@Fþ¬8ÉŒ–Ž–Ùɳ1®¤¤ÄÉÉ©¨¨¨£££°°pÏž=[¶l!º( {£·£áa†Ã±cÇŽŽŽ++«úúú3f¸»»{zz]½ÑÛÑìá Ñh¡¡¡¡¡¡Däkôv4Š@BlH‚ A° !6$Á€„$\î¥ÝÉê?xÀV1ºü-ØK–, ÿ¢ žžÞ+.¶ŠÑˆ‚Izp`TƒïØ‚`@BlHèÿ‹Pq÷m >IEND®B`‚XQilla-2.3.0/docs/simple-api/classContentSequenceFilter__inherit__graph.map0000644000151400015140000000037511653571064024027 00000000000000 XQilla-2.3.0/docs/simple-api/inherit_graph_18.map0000644000151400015140000000021011653571064016446 00000000000000 XQilla-2.3.0/docs/simple-api/classATDurationOrDerived__inherit__graph.png0000644000151400015140000001504711653571064023405 00000000000000‰PNG  IHDR%á3bKGDÿÿÿ ½§“ÜIDATxœí{TWâÇoHR‘Ã#$(*/¡¸*¶-Š¥ÐÖu[\…¨`}P€¸×.Xw[…é9 Õžnµ‚(¸>V‚B»µHkUEHW È#@0¯ùý15M ! \îçðÇ™{ï|g>Ìd’Ì0 è°0wĸ€¼Â ò 'È+œt©TQQ‘šš:ÞQº¸gÏžQ«éäµ£££¬¬ŒÅbœ aׯ_·µµÕ¥¦N^qòóóõ̓0k×®Õ±&:¿Â ò 'È+œ ¯p‚¼Â‰1½T˜>}z@@@mm­–ú†}øá‡ ňô ­­-22rÖ¬Y eÑ¢E.\0KŒ††`¬ÞŒ|¼^»vM( …B.—ëéé¹nÝ:-Ÿµµµ={¶¾¾Þ¸ÆDww·ŸŸŸ••U^^^UUÕúõë#""~þùgÃ{4Íð~ôc ï_uÁÁÁÁÑÑàèè¸ÿ~ƒÑÙÙI§ÓG¬<88puu5n†1‘œœtüøq|òÕW_mooÿꫯÞ{ï={V(ÝÝÝÔ“q<¿’Éä—^z‰J¥â“R©4))‰Á`Ðéô¤¤$©Tºxñbþ0b|h*//wuuýå—_†W„³gÏúøøØÙÙíß¿ “É’““]]]6mÚÔÛÛ«©@aaáŽ;Tc'''Ÿ8q/÷öönÙ²…F£¹¸¸$&& ©Ž–ªåá1FÝ:¹\~àÀ///kk뀀€7nsïc:——§KM@mmm_____ßãÇ·oߥ\šžžÖÒÒÂår.\¸{÷n>Ÿ¯Ú­¦ üãÙlvÿð øJÃÃÃE"QVV »»ûÀ¾¾¾\.—Çãùûû'&&jê_$zzz4mц ‚ƒƒ¹\îܹsSRRT3«–‡Çuë:D§Ó‹ŠŠÚÚÚþóŸÿ0™ÌQw2‹Åb±X£ŠÀ0ÌÈ^U¡P(õõõÊ¥ÞÞÞB¡/—––.X°@mË5Uàr¹š*à+åp8†I$ŸÏŸ3gNQQ^­¾¾^YÞ¼§§ ‰F܉DB$ïܹƒOyxxhñªcÔ­óòò:yò¤²Â¿þõ¯‰ë•Ïçãå¿ýío‹/V.µ´´TµN¥RÕ¶\S‰D¢©¾Òû÷ï«°´´äñxÃãØœÁ`\½zUµZUUÕ믿>00ðèÑ#Ààà >ŸËåZZZªf~ðàªWµ£nÝôéÓkkk•nß¾mD¯ãu~µ²²Ú²eËÝ»w±Ç1FSZ‰D•••jM4U “ÉÚ+XXün+˜LfSS^®­­ýòË/µ4 =xð ¦2Øœ9sF*•ZYY1 "‘(ðùÎÎÎxY&“?~¬º^µ£nݬY³êêê”îÞ½«¥ù˜ÑE¾Ç+†aÍÍͱXŒO&$$„‡‡755ÕÕÕùûûÇÇÇ«ýGëQAm¥x999yÞ¼y<ÇãDGGkiþäÉ{{û 6\½zµ®®.%%ðÃ?àM"##ƒƒƒÇóõõÝ»wogg'àĉOŸ>]½z5P9^Õbàáûúú4­ý›o¾¡Óé/^ …—.]rssu'›Æ0L.—Ϙ1ãáÇø¤X,ŽŠŠ²µµµ··‰‰PÓ¦Gl¤:44”˜˜Èd2©TjDD„òô9bs ÚššÂÃÙL¦µµõo¼QRR¢\cOOÏÆíí휜vî܉ɩ©©666îîîÅÅÅZ¼J¥Ò¥K—R(Mk—Édðððxùå——,Y‚Ú÷°î^ ˜ß3ÍÏÏ×~…aðÏ_uù ]†äNW8A^áy…äNW8A^ád y½qC`î¦c ß—xçwÆ/‡ Ü]\½ô’ÄÜAô‡ÇãêRS'¯¯¼òÊdÿqÎà ippºDâÈ`ô™;‹þâ_îCÀ—¾þúòÌ™öׯnî,¦`ªœ_ ªÍÍÝ÷îµ™;‹)˜^oßnimÈdbaá-sÇ1SÂëÅ‹5$ •Ê ª øO=ð{•ËçÏWËdr|²³³¯ª þ7<ð{½~½A$z¦œ$“‰.Ô˜1i€ßkQQ ‰ôÛfJ¥òââ©TnÆH&r¯‰¬¤¤V&S¨Î‹Ÿÿ÷¿ÌÉ4@î•;78ø\m&‰D(*‚üU1ä^‹Šn ÿZ¯L¦øñǺgÏ&ñÅQÙkÿóË—ïÊåŠá‹¤RyY™Q¿‡=Á€Ùkié]‰D¦i)ܯŠaözñ¢Fs ÆáÜ‹M™Ç”À|Ý¿µU¤:/Y’ºoßšW•s©Ó¦ù—Ý8· ÇÅEý–sÖ3gÚ›%Œ‰yžÊ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò '“àwÍÇŽ3VWeeeííU†÷‚?&pÂ2 îC |ÖµÉt¹ü©B¡~;'=ÈËËÃ7a™ãp^^ž.QÔŽDÒ!—Þ¹w†NL¯ˆ±‚¼Â ò 'È+œ ¯p‚¼Â $^ BCCƒ¹SL ñªD Ðh4s§0?°yU(ÝÝÝæNa~`óŠ?¾ÍÑÑŸ”J¥III ƒN§'%%I¥R@ÈÎÎöññqppHKK;}úôìÙ³©Têž={Ìݸ~]m¼:\Gðù| Ãø|¾êF¥§§‡……µ´´p¹Ü… îÞ½¯!‹?X»v­X,ÎÌÌtuu%ÙÜ«···P(ÄË¥¥¥ ,À+×ÔÔ`&‘HÔÊx'†ç1;“às:ChjjrrrRNR©T¼`mm “Éjeh€íüªFS‚"‘¨²²Ò܉Lœ^ûûûñš5kþþ÷¿777s¹Ü+V9rļÁLl^gÍšµtéR娛ššjmmíçç÷öÛoÏŸ??==ݼñL$çWìÅÇÝ$éÊ•+ÊùÖÖÖÙÙÙÙÙÙ#VÖRžìÀv¼"pW8A^áy…äNW8A^ád yíêê7wÓ19®K”——÷ööØIAÁã>p´´$%Ògrx5ü§WÓèô˜«W ï%ÒgŒÃFù<òÔ)@üÓŸâÒÛÿј^Baá-•• ÝÝSâ,;%¼¶·?½qC¡¸ø¶¹ã˜‚)ᵸø6‘H(X~~µ¹ã˜‚)áµ  Z.džñx­--ð~¯Ag}}öâ³U"qJ Åð{½p¡†Dúí=«\ŽÀ?Ãïµ  Z&“+'1 khxrïžÐŒ‘Lä^G<›’HÄ‹kÌ’Çd@îõâÅ2Yý¡L&Ïϯ ú6Óp`öªP`çÏß”JåÃutˆkjšMÉdÀìõÆ Agg߈‹H$â… 0Å0{ýþûÛ€—^" ÿS(°’’Ûr¹ÂÜÇ‹ÉñyŽ~ÌëòÙgï+'üùƒæ{y9*ç<}:hg÷²9¢;“à>zÆ‚ÉÜ™‘±94t¹ƒ˜˜Çá© ò 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼BŠ!·áÍËË3wü1`m½”Lž4^g±X†¨1Âý%òóó ï¡Ê¡C‡ ìÁ^Y,–á T)((0°t~…äNW8A^áy…ÓyÝ·o@HKK3{'j444MKsss #Q[[kÄ FÇD^1 ËÍÍuuu5äRƈÍ « 666Ÿ~ú©¦¥«V­ …B¡ðÚµká |}} Yé¸cøõ&]jÖÕÕ„ÒÒRÀýû÷õ[݈ðù|·BGL¶" ÃX,–×›Lt¼æææ._¾<$$ÄÛÛ[õh#gÏžõññ±³³Û¿? !!aëÖ­øÒþþ~++«Û·okédñâÅGÇ_ïRÚÛÛ»eËæââ’˜˜844„¯%;;ÛÇÇÇÁÁ!--íôéÓ³gϦR©{öì*ã°L&KNNvuuuppØ´i“ö'Ž˜視¸xΜ9t:=!!áùóç©Tš””Ä`0ètzRR’T*5ÖŽÕˆ!ÿ:¯ …böìÙ™™™†}öÙg¾¾¾ÊE€ððp‘H”••èî¨°··—J¥†9sÆ××W¡PhéDí0Ú°aCpppcc#—Ë;wnJJ ¾–ˆˆ±X|üøqÀÚµkÅbqff& ««KÙÃ|}}¹\.Çó÷÷OLLTÝ µ˜¯óî»ï>xð ²²ÒÃÞžÖÒÒÂår.\¸{÷ní{ÌðãÕ^+++I$RWW†a·nÝðx¼_W‡ÃÁ0L"‘ø|¾L&stt,//Ç0låÊ•iiiÚ;QÝ݉„H$Þ¹sŸ,**òððÀ×RSS£\‹j™Ïç+{˜3gNQQÞ¶¾¾^YÆQó:bN¼—ËUî<€···P(Äg–––.X°@û3Ü«)î+››+“ÉT_ÝäååÍ;/3™L™LÆ'‰Dâš5kŠŠŠæÍ›WVV†U£v‚ÓÑÑ!—ËÝÝÝñIÖÖV¼lmm­\‹jY•ææfOOO¼ìããããã£e£4å(;ñööÆ455999)+P©T-=…q?¿Êåò¼¼¼C‡õ½à“O>ÉËËÃ^ÜÏÚÂB=‹ÅºpáB~~þÒ¥K]\\té‡Á`‰D@€O666:;;ë•Éd655áåÚÚÚ/¿üR{ýá9qð£ðàÁü¿–F£ñù|üH‰D•••º§ÒCv]Æa‡C$;::”snÞ¼ ^ †ø^Àç+Ë2™ŒN§3ŒœœœQ;Áwb__>?22288X ðx<__ß½{÷jZ‹²¬`“““çÍ›Çãñx<^@@@tt´ê† =<<'^'((ˆÏçWUUyzzâÂÃÛššêêêüýýããGy í$8¿ÆÆÆ¾ûs …»»û§Ÿ~ŠiÞãÛ¶m›>}ºX,µ©TºtéR …‚ÏïééÙ¸q£½½½““ÓÎ;µ¬EÍëÐÐPbb"“ɤR©"‘Hu#¾ÏQˉ×9~üøÌ™3i4ÚÇŒ‹ÅQQQ¶¶¶ööö111ÚwÚ$ðªÿøÇ?"##Ç£g㢖ÓXïq'Çë¦1144ÔÖÖ–}îÜ9sgÑÆÏ9á®û߸qãõ×_ÿè£Þzë-sgÑÆˆ9g̘k¾P¿1áŽ×åË—÷ôô˜;Å茘“N§gdd˜%îxEäNW8A^ád yU(¦Ê“øÀ”òúí·e?T #¼ÏÑòå ‰Áø¿]»>’HZÍD' ü…AÏ }ôè‘)>š0<=räî›o2Ö­s7wpqqY²d‰ÞͧÊó_ÿú×sùùUÖÖ–wÉDsÇw¦ÄùuhHŠ?“»¿ˆÍ¾gî8¦`Jx-+«’,,, o™;Ž)˜^ o‰€\®¸|ùÎÀÀss'wà÷*²Ù÷d²_ßáÈdòŸ~â™7’ €ßë¥K<Õ·­¡°ð¦ó˜ø½ü΢\®¸r…ßÓ3`®<¦r¯OžôUV6 ¿‚øÃufÉc2 ÷úý÷·‡_Ã0ìüùj³ä1{-(¨~°*Ø­[Í­­"³D2 0{mnîæñxAH$””Ü6}$“³×~¨Õt•T&Ãà~U<á¾·fDøüoïß~ÓÞþÔÆÆÊÒò·uvö98X›)Ýø2U®û˜Ì›CC˜;ˆ)€yžÊ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò 'È+œüî÷ê©©©fL3®ðù^ŽŽBkë>sñÇOãüîþeeeüASz3{v=@&3wŽqàîÝ»¶¶¶ªsF¸oHrr²©ò ŒÃ_|¡6_áy…äNW8A^áDÿûè:u*''':::22ŸÃf³÷íÛ7¼fVVVtt´r’Á`ÌŸ??..ÎÆÆFﵫòøñã?üÃጵáÐÐÐÉ“'«««…B¡««ë²eËÖ¯_O$ª?…%((HYkx½³؃ž^1 c³Ùt:Ãá(½„Ba||<^̘1pøða'''…Bñèѣ˜˜˜ììl …¢_¡P¸mÛ¶ââb…B‰ˆˆkÏž=‹‹‹³µµe2™>Œé^¿l†£ç8üðáÖ––]»v544´¶þúd°iÓ¦ÙÙÙÙÙÙáÿËv/ ‘H;;;æçç·oß>''§‚‚½s+ ±XŒ—©TjLLÌX{8uê”Í¡C‡Þxã —eË–edd´··_ºtixe½Ãë—ÍpôôÊf³çÏŸÿÚk¯¹ºº²Ùì±6'¡¡¡ø3Ð?~¬è”e¼PSS³nÝ:wýúõèèè+V„……ýûßÿlß¾°f͵úûûÓÒÒV­ZÅb±Ž=*‘HAAAeee›7o ÍÍÍÅk–––nÚ´Iõд´´\¿~}ii©ÚÚµ„Èd²ŒŒŒÕ«W¯^½:##C&“©6ÿé§ŸðlŸþùwß}‡7‘J¥|ðÞÃðæ …"77wãÆ+W®Œ¿wOŸ9é㄃ƒƒú<\\\ÚÚÚ´×ÉÏÏß½{·³³óÞ½{===Ïœ9—••ÕÛۋ¢"µ&ß|óMgggFFFzzzuuõ¹sçðù¿üòË‘#Gbcc333ûúúúûû{zz<<<Ôš{xx´´´¨®ÝÓÓS{øóçÏ …ÂÌÌ̃ÖÔÔäääŒØ<88¸¢¢¿_]]=mÚ´E‹ؼ°°0///&&æôéÓ7nÔïíúxýßÿþ÷äÉ“ÀÀ@@```SSÓÇõègTbbbüüüf̘qâĉ„„{{{:ùi2™ŒÍfüñÇNNNnnnQQQ¥¥¥ø¢?ÿùÏ å½÷Þ(ðá…B¡ºvKKKí!/]º´cÇ:îææU5bó7ß|S,ß¿P^^¾bÅ üÚðæ%%%Û¶m[¶l™½½½¿¿¿~ø>¯›Øl¶\._µj•r‡Ã™={ö˜:imme2™j3Õn†ìêê ‘H­­­_}õÕàààˆG‘H¤P(”Ý:;;wvvâe†w…OR(;;»†††×^{Mµ‡††///Õµ¾½½=,,L¹èå—_±ù´iÓ***fÍšuíÚµ¬¬,MÍe2™ê@âææ¦e“51f¯ …‚Ãálß¾ýý÷ßÇçäääp8œ¨¨(Ý‹aXIIÉâÅ‹•sär9‘Hìêêú]8 ðüùó””””””%K–H¥Ò_×àØÚÚZXX…™3gÚÚÚp`¤‡Ô†„„œ:uÊÏÏOyŠ:wîœr/+ÿ ´‡§R©_ýµ³³3Þ55þöÛo=<<¼¼¼\\\45ß»wocc£»û¯Ï3mjjÒ´½Zó8ÌårE"Ñ;ï¼3ý!!!­­­ ÚööööôôtuuÕÕÕíÙ³G(®]»€¿[¸|ùò³gφŸ/R©T&“‘H$‰D‚Ÿ½ž={†/T­I"‘‚‚‚þùÏ …Bü}KHHˆ¦<›7o‰DŸ|òIUUUkkë•+Wâââh4šê84jxÀ²e˲²²:::Á®]».^¼¨i‹-êïï?yòäÊ•+•3‡7 =zôèÕ«W{zzªªª²³³5ïTŒùxe³Ù .T}WîééÉd29ŽöA2>>/Ðéôyóæ;v ²¨TêÖ­[¿ûî»3gÎüå/¹råŠZC …—šš:}úôÈÈÈààà]»v?þøCXXØ?þ¨ZyÇŽ‡Þ¶m™L~ûí·7lØ )••Õ±cÇrrr222ÚÚÚœœœ‚ƒƒY,™LÖ=<`ëÖ­‡ŽŽŽ&±±±j£Ž‰´|ùòòòòåË—+goN&“¥RéÑ£G»»»ÝÝÝ÷ìÙƒ¿ø¿û¾D~~þºuë ¹8‚0 _|ñ…ƒƒC~~¾rº> 'È+œ ¯p‚¼Â ò 'È+œ ¯p‚¼Â ò '#\GLLL4}„!µ+á¿óúÊ+¯°X,ÓFB777ÕÇÀ”zþë”_áy…äNW8ù%~ìúœ¶çÊIEND®B`‚XQilla-2.3.0/docs/xqc-api/0000755000151400015140000000000011653571066012207 500000000000000XQilla-2.3.0/docs/xqc-api/structXQC__Sequence__s-members.html0000644000151400015140000000710411653571066021017 00000000000000 XQilla XQC API Documentation SourceForge.net Logo

XQC_Sequence_s Member List

XQilla-2.3.0/docs/xqc-api/structXQC__DynamicContext__s.html0000644000151400015140000004632211653571066020555 00000000000000 XQilla XQC API Documentation SourceForge.net Logo

XQC_DynamicContext_s Struct Reference

#include <xqc.h>

List of all members.

Public Attributes

XQC_Error(* set_variable )(XQC_DynamicContext *context, const char *uri, const char *name, XQC_Sequence *value)
 Sets the external variable to the value given.
XQC_Error(* get_variable )(const XQC_DynamicContext *context, const char *uri, const char *name, XQC_Sequence **value)
XQC_Error(* set_context_item )(XQC_DynamicContext *context, XQC_Sequence *value)
 Sets the context item to the current item of the XQC_Sequence given.
XQC_Error(* get_context_item )(const XQC_DynamicContext *context, XQC_Sequence **value)
XQC_Error(* set_implicit_timezone )(XQC_DynamicContext *context, int timezone)
 The timezone given must be between -840 and +840 minutes (-14 and +14 hours).
XQC_Error(* get_implicit_timezone )(const XQC_DynamicContext *context, int *timezone)
XQC_Error(* set_error_handler )(XQC_DynamicContext *context, XQC_ErrorHandler *handler)
XQC_Error(* get_error_handler )(const XQC_DynamicContext *context, XQC_ErrorHandler **handler)
void *(* get_interface )(const XQC_DynamicContext *context, const char *name)
 Called to retrieve an implementation specific interface.
void(* free )(XQC_DynamicContext *context)
 Called to free the resources associated with the XQC_DynamicContext.

Detailed Description

Examples:

xqc-context-item.c.


Member Data Documentation

Called to free the resources associated with the XQC_DynamicContext.

Parameters:
contextThe XQC_DynamicContext that this function pointer is a member of
Examples:
xqc-context-item.c.
void*(* XQC_DynamicContext_s::get_interface)(const XQC_DynamicContext *context, const char *name)

Called to retrieve an implementation specific interface.

Parameters:
contextThe XQC_DynamicContext that this function pointer is a member of
nameThe name that identifies the interface to return
Returns:
A pointer to the interface, or 0 if the name is not recognized by this implementation of XQC.
XQC_Error(* XQC_DynamicContext_s::get_variable)(const XQC_DynamicContext *context, const char *uri, const char *name, XQC_Sequence **value)

Sets the context item to the current item of the XQC_Sequence given.

The user remains responsible for freeing the XQC_Sequence passed as the value - the XQC_Sequence must not be freed until the XQC_DynamicContext has been freed or it's context item set to a different value.

Parameters:
contextThe XQC_DynamicContext that this function pointer is a member of
valueThe XQC_Sequence value for the context item, or 0 to remove the existing context item value.
Return values:
XQC_NO_ERROR
XQC_INTERNAL_ERROR
XQC_NO_CURRENT_ITEMif there is no current item in the value.
Examples:
xqc-context-item.c.

The timezone given must be between -840 and +840 minutes (-14 and +14 hours).

Parameters:
timezoneThe implicit timezone to set, as an offset in minutes from GMT
XQC_Error(* XQC_DynamicContext_s::set_variable)(XQC_DynamicContext *context, const char *uri, const char *name, XQC_Sequence *value)

Sets the external variable to the value given.

The implementation takes ownership of the XQC_Sequence passed in, and is responsible for freeing it.

Parameters:
contextThe XQC_DynamicContext that this function pointer is a member of
uriThe namespace URI of the external variable to set.
nameThe name of the external variable to set - this should be a valid lexical xs:QName. If uri is 0 and name has a prefix, that prefix is resolved using the in-scope namespace prefixes for the expression.
valueThe XQC_Sequence value for the variable, or 0 to remove the existing binding for the variable.
Return values:
XQC_NO_ERROR
XQC_INTERNAL_ERROR

The documentation for this struct was generated from the following file:
XQilla-2.3.0/docs/xqc-api/structXQC__ErrorHandler__s.html0000644000151400015140000001677511653571066020224 00000000000000 XQilla XQC API Documentation SourceForge.net Logo

XQC_ErrorHandler_s Struct Reference

The XQC_ErrorHandler struct is designed to be populated by users for the purpose of collecting more detailed error messages from an XQC implementation. More...

#include <xqc.h>

List of all members.

Public Attributes

void * user_data
 Can be used for user specific purposes.
void(* error )(XQC_ErrorHandler *handler, XQC_Error error, const char *error_uri, const char *error_localname, const char *description, XQC_Sequence *error_object)
 The function called when an error occurs.

Detailed Description

The XQC_ErrorHandler struct is designed to be populated by users for the purpose of collecting more detailed error messages from an XQC implementation.

An XQC_ErrorHandler can be set for a query execution using the XQC_StaticContext::set_error_handler() and XQC_DynamicContext::set_error_handler() functions.

The XQC_ErrorHandler struct has no free() function pointer because the user remains responsible for freeing the resources associated with this struct.


Member Data Documentation

void(* XQC_ErrorHandler_s::error)(XQC_ErrorHandler *handler, XQC_Error error, const char *error_uri, const char *error_localname, const char *description, XQC_Sequence *error_object)

The function called when an error occurs.

The function receives the components of the error as arguments. When this function returns, the implementation will exit query preparation or execution with the error enumeration value passed as an argument.

Parameters:
handlerThe XQC_ErrorHandler that this function pointer is a member of
errorAn enumeration value representing the type of error. One of either XQC_STATIC_ERROR, XQC_TYPE_ERROR, XQC_DYNAMIC_ERROR, or XQC_SERIALIZATION_ERROR.
error_uriThe namespace URI of the error code QName as a UTF-8 string, or 0 if there is no namespace URI.
error_localnameThe local name of the error code QName as a UTF-8 string.
descriptionThe description of the error message as a UTF-8 string. The description may be absent, in which case this parameter will be 0.
error_objectThe error object, potentially passed to the fn:error() function. The user owns this object, and is responsible for freeing it. The error_object may be absent, in which case this parameter will be 0. Some implementations may not provide this functionality, meaning that this parameter will always be 0.

Can be used for user specific purposes.


The documentation for this struct was generated from the following file:
XQilla-2.3.0/docs/xqc-api/tab_b.png0000644000151400015140000000026211653571066013704 00000000000000‰PNG  IHDR$ÇÇ[yIDATxíÝÛ Â €Ñ?|SVÓˆ´bB#P®½8³‰O¾:É™D>ßm{SûIí'¹äz(!•TBÞ‰y#¤WìJDp¾ã|Ã…†ó »ìR˜]áá æ™Ð6q·‰›]ç•qŠŒÓÊÕD.&0èÀ =ƒJD”ˆü=@*é*ç×IEND®B`‚XQilla-2.3.0/docs/xqc-api/index.html0000644000151400015140000000242611653571066014130 00000000000000 XQilla XQC API Documentation SourceForge.net Logo

XQilla XQC API Documentation

XQilla-2.3.0/docs/xqc-api/structXQC__DynamicContext__s-members.html0000644000151400015140000001003311653571066022173 00000000000000 XQilla XQC API Documentation SourceForge.net Logo

XQC_DynamicContext_s Member List

XQilla-2.3.0/docs/xqc-api/doxygen.png0000644000151400015140000000754611653571066014326 00000000000000‰PNG  IHDRh ;ˆØ-IDATxí]{XŒyÿ¾sZ%Ê”NF:¨´FåЪքbÝè@;~ÓŽÃ"DH‘ÚZ•ð–m_Œéè4ÄÙÚ!ë-‡2«U«Ce[Š"§š_ñÌ3óLSìõ¾ï¾öº|®««y>§ïý¹ïïá_ ™L†öþZ·¼ß¦ajëñ®¹L•oñúþ}«.Íë2Þãû$Zöå);*.d¥~Ûìß³wˆ—·'ˆâ0³Ëâþ@áû!ZZeÊÿÁÞͺwÓøÏÔÚ‰ù?ØO =\Lâ[òg²dxr0Ð —€¤Rrj·Jž€‘*í.WJN5¨äÉqÈMªÔ[mºÞ•’Sb58™Ä¼RB5½¥•’SRus[2<ÙÄ %·˜˜•²V'˜ê+%§$fv˜ØÄºR»«Kó$ ¡¥C 4ã+xº˜£½sQÙ}f¶ðÀ[²vôZ €ç6c}”½!,Lt×ï<ÂÅ«µ°dx†H)/ÎÙfí襧¥C«1¶v£ôº[~– ÏÑåÅ9%DÏDKgžrN}M9úY««3*/Îi謷%ÓU^œ#¶vôr'p²=]ÌÑ_§7®ßy„ìS¸ª½ëkÊaÉð´-/Î!E²vôâà902œíÁÉ–FæŸ*¸Å,ý­– O!1k>QÓÓ³¦°dx¦X:ûð¼=GÃÂD×ï<ÂþÃ'¸fvRªKó‚UZjbóièþ¤`èõýˆtº9cùœ‘xÕÚªV W­­°sžabóièw1ó1x%îæhŒ¹Þ¶¸9׉>oÕ®hkG¯~¥—Nl°sž"^™ÀdŽ2%sw…ø¨•¼W­­‹ìœ§D¸z¯àí W †Æç˜8c>‚í1”ô‡m·Bvêî«ÖÖ8܉ÞAˆZò þT…u—r­½ª´th9kÂÖRêåŸSfÛþ/d§–°‰¾äœ1kçb„A.ܸ@ø“+;:j ÛÚÑË«ôÒ‰|#­Ýp4i®â¨]¼â߯óV~éØÇŒ…xfv$Õ¥y| S[ö;BOK‡V“ÅßÖàÎÌa 4x0¶Ï:ÂßDN54>Çgœõxp÷ªo;Z:´¬œÃÉ”º€ÕÇðë™ïbÛ‡ªöü|Ñ^TŠ7=$4)L!Ü/åuü’#)9/rqÃ%îØÅï¬~a”çŽÅ-à¸poE ‚”®,|gŽ¥m /9/ŠsÃâ˜Ø|šœ±c Ó/åu¨ü Êë€P\…aÁÂ’ó¢‡1,¦¥Ó¢Ã;ueòyªKó\ä…°üÃ"7-K!3>õ2ÊËËamm åÚÈr7M.(~[2ÓÝÉ„Œ]©¨C<¿í»b9Ç[)v[~Ñ,_º@\|î8ËqÜ´{· Ð}QÞ”ugr7àÛÈJ]|Úe¤ïÚ`ƒ–­æçÿ¤à™4s5Ü+µÕÒ¡•©Æ\§áéãû¶Ù•ýxàJ,ûÌudùùs&@yŽõI…eD…Ÿ;ç8nZÁž={ʘfóQU|X ÞØÚ)ض˜"ÞtîVÜ-ÏwÐo¨ãç¢ý‰œöJy>¶6è°¹ ÌFrÊf¥ÑÍú’ KbÏà¼(!@~»ó³) F¹{€í€Ave'3£Hÿ£¦˜î»Íu @³¯Aò±¬$èj÷"s&û…½&ób~¶t”»w¢ÿ¼¼¥þŠ·öQÓ J~Iå âJÚö½˜Ÿ]=ÊÝ;=|S{ºû™Éç‘“nçÊÜ9ôË¿ÈõË„.{ù®‰Ü´`Œb³ßÅÊå ÅâÚž)†j\Þ€ÔΕ›ÞY_ÂE_¸â.gÚ0uõ‹‘Ÿ‰2ݪiDàWËÐÜX'ÖìkÀÌÿº©ü–ñqýòV¶gDO³¯Ý„¦âÁÔôçE 6È ä1cZŒ¦ÄÄ—n£¹±NXxú(¿] ±ãgL_ºM!ÓÐb4Ü+e´´Ê¤âŽdüƒç62[é£]Am­ž,b÷@Jáé£Õ„ÿð‘Ü_Ù,Wºˆr€‘®Îèr_g8ÕÕ&(ÁQAäÛ4·­Ÿò.«ö—¯­ajëAïghS–öÝFJËÛhheg©‹³;Lýcs é/¼RƒÈõËÄ¢ì,‘—¾84†íõ‰9™óõ:n–œ`‰²³Ä,o_ï~†6YIqaÐÑî¥vÊèã¸v>=V”E¹æXÞ¾5™é=uu›^À/ °A”eD䆸ÍX¹j®S¬‘#§Ï^Ëžç3œŒÇì-ÂÙ£[Ã@µövmæÏ ’X ÊÎÊW¤×vú9šÚúѽµõQ_{ͽ3žäW\ø¦æØ:p¤ajëeIÉ)tšâîŽåáܱ8Iû£>xødÆöEóöëd:ÛŒ4µõk¾OŽƒNI¼‰¨½q>m•á1!)[©›Vàb47ýa @æšṉ̃ p…%5Pþ~üä¾Z‚æ¦?| 3³•0DN  á}® Unû¬@ú® » 3¹ÌÁÃ'‹Tç(,©ÁÏ—ïÂÁÊ^.ŠM¤ÄA8a?šUÙ¾äJ<§à2S÷ þ~…@=hjë3-GÍÄ|ŸÈ8Y.¯—¨®]XRƒèËIT9X²A€›¿ž$ÚéÇÛÈõ™hIPvã!ÀvHÿ°}Úo)Ͷ‡8rŠßš ¶=…Ч*^÷˜éiEïŸÂ«8‘"<˜Ìö Ht™¶œ·"Б²æ–͘á¿Êx.üZ‹˜M!b~ƒé Ã!c ’bwÀ·zëqT\È L*a.ˆŒÙÁP7:Û*(FÁñøpáÁô8¶O@â¿5<å9•17>yö“1z¸a‡zs{/Q†9æ‘ ´j}S¹vYD*n]Í!rÐhyakÔj ™Ê„«úgúÍ‘ d¦©­_¾*llé]^&}ˆ˜¨ÍhnúÃÛpȨèí[¨ä.Y»µ7..ÐÔÖOŽÚ²ÆµÉX|Úeœ%¤ÈL%äL¿9e ‰Étå¼ÇO^ (ˆÛp 3U±%ßär ‡ŒJŽ ›§vÎ2éCÊ Äzá2SãfúÍ1êÃ]Ïõ™@ÝÈ™¼€ÄÜn’èÛp%®Ö"nËJR µß2GÛ+Z™Š[¥?’@„½[PèâÙcÐWKþÂÕZìÛó=’â×Q÷ŸšiøÏäôîÓ?yê¬E`3‡ª+Wá‡ý;ñìÉÃŽöîÓ¿fóæHŠÛÒ%¸x2!%#Mì?;p)î°™*à²u;p_zÉ%#M !pˆ‚WÇR†Š«phϦÝi‚Eª8ügFôîÓ?ÔÁíKÈïü²ëp)_+Ç©XÀPÅž‘&ˆ#jðÌí&q=˜n˜0ÚLí¬×n>Dá•\Ê¢á÷J[ts»I¢è5³)¼&~J ¤:Úè´µAB„î@‹PKÆ´×doCú)ñÑaSteLgÓ.㦶襩›Àÿ?MàÙ¿|Ö¸bÙšs+s’¤Ÿ¸†ÑtïÙ›À@€<öòyÓ¶_=ï ‡žok®Ô‡Û¶½ÚžŸ¿x¾Œª¢Ã=ä_C?ÝlÐßB™«WŠp·òœ‰ÙcK3=hh(b%ùÐ7u@}mEû»ÃtØxØØØâRÁ)ÔUÿ¢%“2™ ݺ)©Ø™¢;¸œŸnÝ{†®ÃÆÎ†‰¡î_2Ÿ´úªŠ ý‘ýLKϲַÆöEe÷¡A(ô¤ù%ž?iÀÓÆßÓ¸›`N·zýàëÑ,ñðÞo´w¯ÊNõ{elЧ‡òÉ«}ð·êq¥ì&ªKsñüÉÃän=>º`á°±³Ýÿ*q:½âht§¿Õw_Z”ÞòòÙ^š:cå¾nÝ{âùÓ†‹Ýº÷Ì`N£;‘×›Üj*ÿµ½¥å¥K¯Þ}^4?&ý=zi¡—¦zkõCcýPBht'×ÿÑ|UE‡ä1 ý;ž&5v›øßõëÛµ]@kS}ðÿpŽªª¢ÃâÕ¥y &þ>Ø{fÝ>Pð~ÛÿÞžk˜^œIEND®B`‚XQilla-2.3.0/docs/xqc-api/globals_defs.html0000644000151400015140000000402211653571066015437 00000000000000 XQilla XQC API Documentation SourceForge.net Logo
 
  • XQC_VERSION_NUMBER : xqc.h
XQilla-2.3.0/docs/xqc-api/globals_type.html0000644000151400015140000000521211653571066015501 00000000000000 XQilla XQC API Documentation SourceForge.net Logo
 
XQilla-2.3.0/docs/xqc-api/structXQC__Implementation__s-members.html0000644000151400015140000001177111653571066022241 00000000000000 XQilla XQC API Documentation SourceForge.net Logo

XQC_Implementation_s Member List

XQilla-2.3.0/docs/xqc-api/xqc-context-item_8c-example.html0000644000151400015140000001722511653571066020260 00000000000000 XQilla XQC API Documentation SourceForge.net Logo

xqc-context-item.c

This example parses a document and sets it as the context item. It then executes an XQuery expression that navigates relative to the context item.

#include <xqilla/xqilla-xqc.h>

int main(int argc, char *argv[])
{
  XQC_Implementation *impl;
  XQC_Expression *expr;
  XQC_DynamicContext *context;
  XQC_Sequence *seq, *doc;
  XQC_Error err;
  const char *value;

  // XQilla specific way to create an XQC_Implementation struct
  impl = createXQillaXQCImplementation(XQC_VERSION_NUMBER);
  if(impl == 0) return 1;

  // Parse an XQuery expression
  err = impl->prepare(impl, "foo/bar/@baz", 0, &expr);
  if(err != 0) goto free_impl;

  // Parse a document
  err = impl->parse_document(impl, "<foo><bar baz='hello'/></foo>", &doc);
  if(err != 0) goto free_expr;

  // Create a dynamic context
  err = expr->create_context(expr, &context);
  if(err != 0) goto free_doc;

  // Set the document as the context item
  doc->next(doc);
  context->set_context_item(context, doc);

  // Execute the query
  err = expr->execute(expr, context, &seq);
  if(err != 0) goto free_context;

  // Iterate over the results, printing them
  while((err = seq->next(seq)) == XQC_NO_ERROR) {
    seq->string_value(seq, &value);
    printf("%s\n", value);
  }

  if(err == XQC_END_OF_SEQUENCE)
    err = XQC_NO_ERROR;

  // free everything
  seq->free(seq);
free_context:
  context->free(context);
free_doc:
  doc->free(doc);
free_expr:
  expr->free(expr);
free_impl:
  impl->free(impl);

  return err;
}
XQilla-2.3.0/docs/xqc-api/globals_eval.html0000644000151400015140000002403011653571066015446 00000000000000 XQilla XQC API Documentation SourceForge.net Logo
 

- x -

  • XQC_ANY_SIMPLE_TYPE : xqc.h
  • XQC_ANY_URI_TYPE : xqc.h
  • XQC_ATTRIBUTE_TYPE : xqc.h
  • XQC_BASE_64_BINARY_TYPE : xqc.h
  • XQC_BOOLEAN_TYPE : xqc.h
  • XQC_COMMENT_TYPE : xqc.h
  • XQC_DATE_TIME_TYPE : xqc.h
  • XQC_DATE_TYPE : xqc.h
  • XQC_DAY_TIME_DURATION_TYPE : xqc.h
  • XQC_DECIMAL_TYPE : xqc.h
  • XQC_DOCUMENT_TYPE : xqc.h
  • XQC_DOUBLE_TYPE : xqc.h
  • XQC_DURATION_TYPE : xqc.h
  • XQC_DYNAMIC_ERROR : xqc.h
  • XQC_ELEMENT_TYPE : xqc.h
  • XQC_EMPTY_GREATEST : xqc.h
  • XQC_EMPTY_LEAST : xqc.h
  • XQC_EMPTY_TYPE : xqc.h
  • XQC_END_OF_SEQUENCE : xqc.h
  • XQC_FLOAT_TYPE : xqc.h
  • XQC_G_DAY_TYPE : xqc.h
  • XQC_G_MONTH_DAY_TYPE : xqc.h
  • XQC_G_MONTH_TYPE : xqc.h
  • XQC_G_YEAR_MONTH_TYPE : xqc.h
  • XQC_G_YEAR_TYPE : xqc.h
  • XQC_HEX_BINARY_TYPE : xqc.h
  • XQC_INHERIT_NS : xqc.h
  • XQC_INTERNAL_ERROR : xqc.h
  • XQC_INVALID_ARGUMENT : xqc.h
  • XQC_NAMESPACE_TYPE : xqc.h
  • XQC_NO_CURRENT_ITEM : xqc.h
  • XQC_NO_ERROR : xqc.h
  • XQC_NO_INHERIT_NS : xqc.h
  • XQC_NO_PRESERVE_NS : xqc.h
  • XQC_NOT_IMPLEMENTED : xqc.h
  • XQC_NOT_NODE : xqc.h
  • XQC_NOTATION_TYPE : xqc.h
  • XQC_ORDERED : xqc.h
  • XQC_PARSE_ERROR : xqc.h
  • XQC_PRESERVE_CONS : xqc.h
  • XQC_PRESERVE_NS : xqc.h
  • XQC_PRESERVE_SPACE : xqc.h
  • XQC_PROCESSING_INSTRUCTION_TYPE : xqc.h
  • XQC_QNAME_TYPE : xqc.h
  • XQC_SERIALIZATION_ERROR : xqc.h
  • XQC_STATIC_ERROR : xqc.h
  • XQC_STRING_TYPE : xqc.h
  • XQC_STRIP_CONS : xqc.h
  • XQC_STRIP_SPACE : xqc.h
  • XQC_TEXT_TYPE : xqc.h
  • XQC_TIME_TYPE : xqc.h
  • XQC_TYPE_ERROR : xqc.h
  • XQC_UNORDERED : xqc.h
  • XQC_UNRECOGNIZED_ENCODING : xqc.h
  • XQC_UNTYPED_ATOMIC_TYPE : xqc.h
  • XQC_XPATH1_0 : xqc.h
  • XQC_XPATH2_0 : xqc.h
  • XQC_YEAR_MONTH_DURATION_TYPE : xqc.h
XQilla-2.3.0/docs/xqc-api/tabs.css0000644000151400015140000000210711653571066013572 00000000000000.tabs, .tabs2, .tabs3 { background-image: url('tab_b.png'); width: 100%; z-index: 101; font-size: 13px; } .tabs2 { font-size: 10px; } .tabs3 { font-size: 9px; } .tablist { margin: 0; padding: 0; display: table; } .tablist li { float: left; display: table-cell; background-image: url('tab_b.png'); line-height: 36px; list-style: none; } .tablist a { display: block; padding: 0 20px; font-weight: bold; background-image:url('tab_s.png'); background-repeat:no-repeat; background-position:right; color: #283A5D; text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); text-decoration: none; outline: none; } .tabs3 .tablist a { padding: 0 10px; } .tablist a:hover { background-image: url('tab_h.png'); background-repeat:repeat-x; color: #fff; text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); text-decoration: none; } .tablist li.current a { background-image: url('tab_a.png'); background-repeat:repeat-x; color: #fff; text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); } XQilla-2.3.0/docs/xqc-api/examples.html0000644000151400015140000000275111653571066014640 00000000000000 XQilla XQC API Documentation SourceForge.net Logo

Examples

Here is a list of all examples:
XQilla-2.3.0/docs/xqc-api/open.png0000644000151400015140000000016611653571066013601 00000000000000‰PNG  IHDR à‘=IDATxí1 “ت¦@@   ]01ÀQXY~Jr?D>„¥¶þ’n¼ áFÍ  }ÈúÂéãÏ\ ÄáÿòIEND®B`‚XQilla-2.3.0/docs/xqc-api/bc_s.png0000644000151400015140000000124511653571066013545 00000000000000‰PNG  IHDR /ð9ÐlIDATxíÝKHTmðÿóžwfÎgæÌ¯å8ŽÓ˜—Š6ñ-BÚ´‘]d–VZMa…D}ßg¸háB¤¶*Ñýbå¥U9Š—3ƒŽFy<£‹ šaæè²í³yøÿÎóžÅóî©ýÁÇåþtðªÚ %”8Vj•LÜlø·ÅCF@mÃÿˆÞ[”ïü À7ªj¿RÀ•ûC0TâU‹Y¸øYÕú’ÿsv~Æî,Ûi)€.w €™ˆæwø\cT i Ðúÿ`¼owgÛö»âH0¤5%À¥ÿ>Äû\.°ÉÒ×*O0¬-c}BàÞûä+msË…VÑÔ5Ö:€Îß}— *l’©Çç–cÁV¸€OÅ^ÅaâìÔXxñ)µÜ0‚ãé²xrKfÚÜxx±Ššo½5Ièk±WaŒÑjºùÆà¶;ÛVá´[¨ñÆ«Í@¥ÃfnöäØ¿°ÍRÕ.‡¨¬®B¥×_C™ˆæK|.¬ý²Ÿ®½0‚3ŠTŸ¥H¡‰½†Ž¶=7‚ ßã´™8k˜œÑ_Ó‘«Ï’Ã2«Èz·:V&fôBv—Ní9iVÎY— Õµ>‰‡.Qx{¾E“³ú»Ê‡˜'‰|dj6ÚØ‡ÚÀãx?åÏsJ‚@uÓ‘hbI„Ò½‡Ö2ì“,¼F¶[bÓ‘h e'«Ïõ@;Û^d•x·‰þ›¶ôg2Fa¿G^ÿ @,é) êlß… §Të’-ãêÜRý†—UÙÜ*È•EΩ64·4lÜÄÙ #èjDßþú Ųo{”N IEND®B`‚XQilla-2.3.0/docs/xqc-api/doxygen.css0000644000151400015140000002735511653571066014332 00000000000000/* The standard CSS for doxygen */ body, table, div, p, dl { font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif; font-size: 12px; } /* @group Heading Levels */ h1 { font-size: 150%; } h2 { font-size: 120%; } h3 { font-size: 100%; } dt { font-weight: bold; } div.multicol { -moz-column-gap: 1em; -webkit-column-gap: 1em; -moz-column-count: 3; -webkit-column-count: 3; } p.startli, p.startdd, p.starttd { margin-top: 2px; } p.endli { margin-bottom: 0px; } p.enddd { margin-bottom: 4px; } p.endtd { margin-bottom: 2px; } /* @end */ caption { font-weight: bold; } span.legend { font-size: 70%; text-align: center; } h3.version { font-size: 90%; text-align: center; } div.qindex, div.navtab{ background-color: #EBEFF6; border: 1px solid #A3B4D7; text-align: center; margin: 2px; padding: 2px; } div.qindex, div.navpath { width: 100%; line-height: 140%; } div.navtab { margin-right: 15px; } /* @group Link Styling */ a { color: #3D578C; font-weight: normal; text-decoration: none; } .contents a:visited { color: #4665A2; } a:hover { text-decoration: underline; } a.qindex { font-weight: bold; } a.qindexHL { font-weight: bold; background-color: #9CAFD4; color: #ffffff; border: 1px double #869DCA; } .contents a.qindexHL:visited { color: #ffffff; } a.el { font-weight: bold; } a.elRef { } a.code { color: #4665A2; } a.codeRef { color: #4665A2; } /* @end */ dl.el { margin-left: -1cm; } .fragment { font-family: monospace, fixed; font-size: 105%; } pre.fragment { border: 1px solid #C4CFE5; background-color: #FBFCFD; padding: 4px 6px; margin: 4px 8px 4px 2px; overflow: auto; word-wrap: break-word; font-size: 9pt; line-height: 125%; } div.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px; padding: 0.2em; border: solid thin #333; border-radius: 0.5em; -webkit-border-radius: .5em; -moz-border-radius: .5em; box-shadow: 2px 2px 3px #999; -webkit-box-shadow: 2px 2px 3px #999; -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); } div.groupHeader { margin-left: 16px; margin-top: 12px; font-weight: bold; } div.groupText { margin-left: 16px; font-style: italic; } body { background: white; color: black; margin: 0; } div.contents { margin-top: 10px; margin-left: 10px; margin-right: 10px; } td.indexkey { background-color: #EBEFF6; font-weight: bold; border: 1px solid #C4CFE5; margin: 2px 0px 2px 0; padding: 2px 10px; } td.indexvalue { background-color: #EBEFF6; border: 1px solid #C4CFE5; padding: 2px 10px; margin: 2px 0px; } tr.memlist { background-color: #EEF1F7; } p.formulaDsp { text-align: center; } img.formulaDsp { } img.formulaInl { vertical-align: middle; } div.center { text-align: center; margin-top: 0px; margin-bottom: 0px; padding: 0px; } div.center img { border: 0px; } address.footer { text-align: right; padding-right: 12px; } img.footer { border: 0px; vertical-align: middle; } /* @group Code Colorization */ span.keyword { color: #008000 } span.keywordtype { color: #604020 } span.keywordflow { color: #e08000 } span.comment { color: #800000 } span.preprocessor { color: #806020 } span.stringliteral { color: #002080 } span.charliteral { color: #008080 } span.vhdldigit { color: #ff00ff } span.vhdlchar { color: #000000 } span.vhdlkeyword { color: #700070 } span.vhdllogic { color: #ff0000 } /* @end */ /* .search { color: #003399; font-weight: bold; } form.search { margin-bottom: 0px; margin-top: 0px; } input.search { font-size: 75%; color: #000080; font-weight: normal; background-color: #e8eef2; } */ td.tiny { font-size: 75%; } .dirtab { padding: 4px; border-collapse: collapse; border: 1px solid #A3B4D7; } th.dirtab { background: #EBEFF6; font-weight: bold; } hr { height: 0px; border: none; border-top: 1px solid #4A6AAA; } hr.footer { height: 1px; } /* @group Member Descriptions */ table.memberdecls { border-spacing: 0px; padding: 0px; } .mdescLeft, .mdescRight, .memItemLeft, .memItemRight, .memTemplItemLeft, .memTemplItemRight, .memTemplParams { background-color: #F9FAFC; border: none; margin: 4px; padding: 1px 0 0 8px; } .mdescLeft, .mdescRight { padding: 0px 8px 4px 8px; color: #555; } .memItemLeft, .memItemRight, .memTemplParams { border-top: 1px solid #C4CFE5; } .memItemLeft, .memTemplItemLeft { white-space: nowrap; } .memTemplParams { color: #4665A2; white-space: nowrap; } /* @end */ /* @group Member Details */ /* Styles for detailed member documentation */ .memtemplate { font-size: 80%; color: #4665A2; font-weight: normal; margin-left: 9px; } .memnav { background-color: #EBEFF6; border: 1px solid #A3B4D7; text-align: center; margin: 2px; margin-right: 15px; padding: 2px; } .memitem { padding: 0; margin-bottom: 10px; } .memname { white-space: nowrap; font-weight: bold; margin-left: 6px; } .memproto { border-top: 1px solid #A8B8D9; border-left: 1px solid #A8B8D9; border-right: 1px solid #A8B8D9; padding: 6px 0px 6px 0px; color: #253555; font-weight: bold; text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); /* opera specific markup */ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); border-top-right-radius: 8px; border-top-left-radius: 8px; /* firefox specific markup */ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; -moz-border-radius-topright: 8px; -moz-border-radius-topleft: 8px; /* webkit specific markup */ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -webkit-border-top-right-radius: 8px; -webkit-border-top-left-radius: 8px; background-image:url('nav_f.png'); background-repeat:repeat-x; background-color: #E2E8F2; } .memdoc { border-bottom: 1px solid #A8B8D9; border-left: 1px solid #A8B8D9; border-right: 1px solid #A8B8D9; padding: 2px 5px; background-color: #FBFCFD; border-top-width: 0; /* opera specific markup */ border-bottom-left-radius: 8px; border-bottom-right-radius: 8px; box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); /* firefox specific markup */ -moz-border-radius-bottomleft: 8px; -moz-border-radius-bottomright: 8px; -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 60%, #F7F8FB 95%, #EEF1F7); /* webkit specific markup */ -webkit-border-bottom-left-radius: 8px; -webkit-border-bottom-right-radius: 8px; -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.6,#FFFFFF), color-stop(0.60,#FFFFFF), color-stop(0.95,#F7F8FB), to(#EEF1F7)); } .paramkey { text-align: right; } .paramtype { white-space: nowrap; } .paramname { color: #602020; white-space: nowrap; } .paramname em { font-style: normal; } .params, .retval, .exception, .tparams { border-spacing: 6px 2px; } .params .paramname, .retval .paramname { font-weight: bold; vertical-align: top; } .params .paramtype { font-style: italic; vertical-align: top; } .params .paramdir { font-family: "courier new",courier,monospace; vertical-align: top; } /* @end */ /* @group Directory (tree) */ /* for the tree view */ .ftvtree { font-family: sans-serif; margin: 0px; } /* these are for tree view when used as main index */ .directory { font-size: 9pt; font-weight: bold; margin: 5px; } .directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; } /* The following two styles can be used to replace the root node title with an image of your choice. Simply uncomment the next two styles, specify the name of your image and be sure to set 'height' to the proper pixel height of your image. */ /* .directory h3.swap { height: 61px; background-repeat: no-repeat; background-image: url("yourimage.gif"); } .directory h3.swap span { display: none; } */ .directory > h3 { margin-top: 0; } .directory p { margin: 0px; white-space: nowrap; } .directory div { display: none; margin: 0px; } .directory img { vertical-align: -30%; } /* these are for tree view when not used as main index */ .directory-alt { font-size: 100%; font-weight: bold; } .directory-alt h3 { margin: 0px; margin-top: 1em; font-size: 11pt; } .directory-alt > h3 { margin-top: 0; } .directory-alt p { margin: 0px; white-space: nowrap; } .directory-alt div { display: none; margin: 0px; } .directory-alt img { vertical-align: -30%; } /* @end */ div.dynheader { margin-top: 8px; } address { font-style: normal; color: #2A3D61; } table.doxtable { border-collapse:collapse; } table.doxtable td, table.doxtable th { border: 1px solid #2D4068; padding: 3px 7px 2px; } table.doxtable th { background-color: #374F7F; color: #FFFFFF; font-size: 110%; padding-bottom: 4px; padding-top: 5px; text-align:left; } .tabsearch { top: 0px; left: 10px; height: 36px; background-image: url('tab_b.png'); z-index: 101; overflow: hidden; font-size: 13px; } .navpath ul { font-size: 11px; background-image:url('tab_b.png'); background-repeat:repeat-x; height:30px; line-height:30px; color:#8AA0CC; border:solid 1px #C2CDE4; overflow:hidden; margin:0px; padding:0px; } .navpath li { list-style-type:none; float:left; padding-left:10px; padding-right:15px; background-image:url('bc_s.png'); background-repeat:no-repeat; background-position:right; color:#364D7C; } .navpath li.navelem a { height:32px; display:block; text-decoration: none; outline: none; } .navpath li.navelem a:hover { color:#6884BD; } .navpath li.footer { list-style-type:none; float:right; padding-left:10px; padding-right:15px; background-image:none; background-repeat:no-repeat; background-position:right; color:#364D7C; font-size: 8pt; } div.summary { float: right; font-size: 8pt; padding-right: 5px; width: 50%; text-align: right; } div.summary a { white-space: nowrap; } div.ingroups { font-size: 8pt; padding-left: 5px; width: 50%; text-align: left; } div.ingroups a { white-space: nowrap; } div.header { background-image:url('nav_h.png'); background-repeat:repeat-x; background-color: #F9FAFC; margin: 0px; border-bottom: 1px solid #C4CFE5; } div.headertitle { padding: 5px 5px 5px 10px; } dl { padding: 0 0 0 10px; } dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug { border-left:4px solid; padding: 0 0 0 6px; } dl.note { border-color: #D0D000; } dl.warning, dl.attention { border-color: #FF0000; } dl.pre, dl.post, dl.invariant { border-color: #00D000; } dl.deprecated { border-color: #505050; } dl.todo { border-color: #00C0E0; } dl.test { border-color: #3030E0; } dl.bug { border-color: #C08050; } #projectlogo { text-align: center; vertical-align: bottom; border-collapse: separate; } #projectlogo img { border: 0px none; } #projectname { font: 300% arial,sans-serif; margin: 0px; padding: 0px; } #projectbrief { font: 120% arial,sans-serif; margin: 0px; padding: 0px; } #projectnumber { font: 50% arial,sans-serif; margin: 0px; padding: 0px; } #titlearea { padding: 0px; margin: 0px; width: 100%; border-bottom: 1px solid #5373B4; } XQilla-2.3.0/docs/xqc-api/structXQC__Expression__s-members.html0000644000151400015140000000503611653571066021410 00000000000000 XQilla XQC API Documentation SourceForge.net Logo

XQC_Expression_s Member List

This is the complete list of members for XQC_Expression_s, including all inherited members.
create_contextXQC_Expression_s
executeXQC_Expression_s
freeXQC_Expression_s
get_interfaceXQC_Expression_s
XQilla-2.3.0/docs/xqc-api/closed.png0000644000151400015140000000017611653571066014112 00000000000000‰PNG  IHDR à‘EIDATxíÝA @! PŠ­iš/`Є.È?,!ƒu zlÞ–Jh1ߘ+výRLé§x@‘Ù (*79HÑ þl)¡ó²‰IEND®B`‚XQilla-2.3.0/docs/xqc-api/globals_func.html0000644000151400015140000000405511653571066015457 00000000000000 XQilla XQC API Documentation SourceForge.net Logo
 
XQilla-2.3.0/docs/xqc-api/tab_s.png0000644000151400015140000000027511653571066013731 00000000000000‰PNG  IHDR$ÇÇ[„IDATxíÝë ‚P@áKg"%(IE|¡%¦I¡7iÚlmÐ" ÓäÛC¼ÞòÛ“\.dåOZ̤ÅBr‰/¿‰(ŸˆÎ#a6⟂ôŽ› 8q÷ØÇëÐaF-û°Et¿Aó4¯fçÖlŠ]±¶äJjJC¢%Š!¿<Å#üÀÄ«IEND®B`‚XQilla-2.3.0/docs/xqc-api/nav_f.png0000644000151400015140000000023711653571066013730 00000000000000‰PNG  IHDR8³»fIDATxíÝIB1 Q;uÛ¿@ÑÏh;áÚ ±aË !ŽÐ‹V½CÈíþ âŠÅÆ|c±˜¾™¶¶3èsÑFÐFP»S{PšSšsVãlN®F.F.“ã2’ˆüµ¤ï_U¿Œ¾˜Ïþ«‰ÈH Ým”°•IEND®B`‚XQilla-2.3.0/docs/xqc-api/structXQC__StaticContext__s.html0000644000151400015140000016737311653571066020432 00000000000000 XQilla XQC API Documentation SourceForge.net Logo

XQC_StaticContext_s Struct Reference

The XQC_StaticContext struct provides a way to specify values for the static context of the query to be prepared. More...

#include <xqc.h>

List of all members.

Public Attributes

XQC_Error(* create_child_context )(XQC_StaticContext *context, XQC_StaticContext **child_context)
 Creates a child context of the given static context.
XQC_Error(* declare_ns )(XQC_StaticContext *context, const char *prefix, const char *uri)
 Adds a (prefix, uri) pair to the set of statically known namespaces of the given context.
XQC_Error(* get_ns_by_prefix )(XQC_StaticContext *context, const char *prefix, const char **result_ns)
 Returns the namespace uri that belongs to the given prefix.
XQC_Error(* set_default_element_and_type_ns )(XQC_StaticContext *context, const char *uri)
 Sets the value of the default namespace for elements and types.
XQC_Error(* get_default_element_and_type_ns )(XQC_StaticContext *context, const char **uri)
XQC_Error(* set_default_function_ns )(XQC_StaticContext *context, const char *uri)
 Sets the default namespace for functions.
XQC_Error(* get_default_function_ns )(XQC_StaticContext *context, const char **uri)
 Returnsthe default namespace for functions set in this static context.
XQC_Error(* set_xpath_compatib_mode )(XQC_StaticContext *context, XQC_XPath1Mode mode)
 Sets the XPath 1.0 compatibility mode to either XQC_XPATH1_0 or XQC_XPATH2_0.
XQC_Error(* get_xpath_compatib_mode )(XQC_StaticContext *context, XQC_XPath1Mode *mode)
 Returns the XPath 1.0 compatibility that is set in the given static context.
XQC_Error(* set_construction_mode )(XQC_StaticContext *context, XQC_ConstructionMode mode)
 Sets the construction mode to either XQC_PRESERVE_CONS or XQC_StaticContext.
XQC_Error(* get_construction_mode )(XQC_StaticContext *context, XQC_ConstructionMode *mode)
 Returns the construction mode that is set in the given static context.
XQC_Error(* set_ordering_mode )(XQC_StaticContext *context, XQC_OrderingMode mode)
 Sets the ordering mode to either XQC_ORDERED or XQC_UNORDERED.
XQC_Error(* get_ordering_mode )(XQC_StaticContext *context, XQC_OrderingMode *mode)
 Returns the ordering mode that is set in the given static context.
XQC_Error(* set_default_order_empty_sequences )(XQC_StaticContext *context, XQC_OrderEmptyMode mode)
 Sets the default order mode for empty sequences to either XQC_EMTPY_LEAST or XQC_EMPTY_GREATEST.
XQC_Error(* get_default_order_empty_sequences )(XQC_StaticContext *context, XQC_OrderEmptyMode *mode)
 Returns the default order mode for empty sequences that is set in the given static context.
XQC_Error(* set_boundary_space_policy )(XQC_StaticContext *context, XQC_BoundarySpaceMode mode)
 Sets the boundary space policy to either XQC_PRESERVE_SPACE or XQC_STRIP_SPACE.
XQC_Error(* get_boundary_space_policy )(XQC_StaticContext *context, XQC_BoundarySpaceMode *mode)
 Returns the boundary space policy that is set in the given static context.
XQC_Error(* set_copy_ns_mode )(XQC_StaticContext *context, XQC_PreserveMode preserve, XQC_InheritMode inherit)
 Sets the copy namespace mode which consists of the preserve and the inherit mode.
XQC_Error(* get_copy_ns_mode )(XQC_StaticContext *context, XQC_PreserveMode *preserve, XQC_InheritMode *inherit)
 Returns the copy namespace mode as a pair consisting of the preserve and the inherit mode.
XQC_Error(* set_base_uri )(XQC_StaticContext *context, const char *base_uri)
 Sets the base uri in the given static context.
XQC_Error(* get_base_uri )(XQC_StaticContext *context, const char **base_uri)
 Returns the base uri that is set in the given static context.
XQC_Error(* set_error_handler )(XQC_StaticContext *context, XQC_ErrorHandler *handler)
XQC_Error(* get_error_handler )(const XQC_StaticContext *context, XQC_ErrorHandler **handler)
void *(* get_interface )(const XQC_StaticContext *context, const char *name)
 Called to retrieve an implementation specific interface.
void(* free )(XQC_StaticContext *context)
 Called to free the resources associated with the XQC_StaticContext.

Detailed Description

The XQC_StaticContext struct provides a way to specify values for the static context of the query to be prepared.

An XQC_StaticContext object is not thread-safe - threads should each use their own instance of a XQC_StaticContext object.

XQC_StaticContext objects are created by calling the XQC_Implementation::create_context() function. Once created, the user is responsible for freeing the object by calling the free() function. The XQC_StaticContext object should be freed before the XQC_Implementation object that created it.


Member Data Documentation

Creates a child context of the given static context.

A child context contains the same information as it's parent context but it allows the user to override and add information. The user is responsible for freeing the XQC_StaticContext object returned by calling XQC_StaticContext::free().

Parameters:
contextThe XQC_StaticContext that this function pointer is a member of
[out]child_contextThe newly created XQC_StaticContext object which is a child of the given context.
Return values:
XQC_NO_ERROR
XQC_INTERNAL_ERROR
XQC_Error(* XQC_StaticContext_s::declare_ns)(XQC_StaticContext *context, const char *prefix, const char *uri)

Adds a (prefix, uri) pair to the set of statically known namespaces of the given context.

Parameters:
contextThe XQC_StaticContext that this function pointer is a member of
prefixThe prefix of the namespace to add to the given XQC_StaticContext.
uriThe uri of the namespace to add to the given XQC_StaticContext.
Return values:
XQC_NO_ERROR
XQC_INTERNAL_ERROR

Called to free the resources associated with the XQC_StaticContext.

Parameters:
contextThe XQC_StaticContext that this function pointer is a member of
XQC_Error(* XQC_StaticContext_s::get_base_uri)(XQC_StaticContext *context, const char **base_uri)

Returns the base uri that is set in the given static context.

Parameters:
contextThe XQC_StaticContext that this function pointer is a member of
[out]base_uriThe base uri that is set in the given context.
Return values:
XQC_NO_ERROR
XQC_INTERNAL_ERROR

Returns the boundary space policy that is set in the given static context.

Parameters:
contextThe XQC_StaticContext that this function pointer is a member of
[out]modeThe XQC_BoundarySpaceMode that is set in the given context.
Return values:
XQC_NO_ERROR
XQC_INTERNAL_ERROR

Returns the construction mode that is set in the given static context.

Parameters:
contextThe XQC_StaticContext that this function pointer is a member of
[out]modeThe XQC_ConstructionMode that is set in the given context.
Return values:
XQC_NO_ERROR
XQC_INTERNAL_ERROR

Returns the copy namespace mode as a pair consisting of the preserve and the inherit mode.

Parameters:
contextThe XQC_StaticContext that this function pointer is a member of
[out]preserveThe XQC_PreserveMode that is set in the given context.
[out]inheritThe XQC_InheritMode that is set in the given context.
Return values:
XQC_NO_ERROR
XQC_INTERNAL_ERROR
Parameters:
contextThe XQC_StaticContext that this function pointer is a member of
[out]uriThe uri of the default element and type namespace that is set in the given context.
Return values:
XQC_NO_ERROR
XQC_INTERNAL_ERROR

Returnsthe default namespace for functions set in this static context.

Parameters:
contextThe XQC_StaticContext that this function pointer is a member of
[out]uriThe uri of the default function namespace that is set in the given context.
Return values:
XQC_NO_ERROR
XQC_INTERNAL_ERROR

Returns the default order mode for empty sequences that is set in the given static context.

Parameters:
contextThe XQC_StaticContext that this function pointer is a member of
[out]modeThe XQC_OrderEmptyMode that is set in the given context.
Return values:
XQC_NO_ERROR
XQC_INTERNAL_ERROR
void*(* XQC_StaticContext_s::get_interface)(const XQC_StaticContext *context, const char *name)

Called to retrieve an implementation specific interface.

Parameters:
contextThe XQC_StaticContext that this function pointer is a member of
nameThe name that identifies the interface to return
Returns:
A pointer to the interface, or 0 if the name is not recognized by this implementation of XQC.
XQC_Error(* XQC_StaticContext_s::get_ns_by_prefix)(XQC_StaticContext *context, const char *prefix, const char **result_ns)

Returns the namespace uri that belongs to the given prefix.

Parameters:
contextThe XQC_StaticContext that this function pointer is a member of
prefixThe prefix of the namespace to add to the given XQC_StaticContext.
[out]result_nsThe namespace uri of the namespace registered with the given prefix, or 0 if none can be found.
Return values:
XQC_NO_ERROR
XQC_INTERNAL_ERROR

Returns the ordering mode that is set in the given static context.

Parameters:
contextThe XQC_StaticContext that this function pointer is a member of
[out]modeThe XQC_OrderingMode that is set in the given context.
Return values:
XQC_NO_ERROR
XQC_INTERNAL_ERROR

Returns the XPath 1.0 compatibility that is set in the given static context.

Parameters:
contextThe XQC_StaticContext that this function pointer is a member of
[out]modeThe XQC_XPath1Mode that is set in the given context.
Return values:
XQC_NO_ERROR
XQC_INTERNAL_ERROR

Sets the base uri in the given static context.

Parameters:
contextThe XQC_StaticContext that this function pointer is a member of
base_uriThe base uri to set in the given context.
Return values:
XQC_NO_ERROR
XQC_INTERNAL_ERROR

Sets the boundary space policy to either XQC_PRESERVE_SPACE or XQC_STRIP_SPACE.

Parameters:
contextThe XQC_StaticContext that this function pointer is a member of
modeThe XQC_BoundarySpaceMode to set in the given context.
Return values:
XQC_NO_ERROR
XQC_INTERNAL_ERROR

Sets the construction mode to either XQC_PRESERVE_CONS or XQC_StaticContext.

Parameters:
contextThe XQC_StaticContext that this function pointer is a member of
modeThe XQC_ConstructionMode to set in the given context.
Return values:
XQC_NO_ERROR
XQC_INTERNAL_ERROR

Sets the copy namespace mode which consists of the preserve and the inherit mode.

Parameters:
contextThe XQC_StaticContext that this function pointer is a member of
preserveThe XQC_PreserveMode to set in the given context.
inheritThe XQC_InheritMode to set in the given context.
Return values:
XQC_NO_ERROR
XQC_INTERNAL_ERROR

Sets the value of the default namespace for elements and types.

Parameters:
contextThe XQC_StaticContext that this function pointer is a member of
uriThe uri of the default element and type namespace to set in the given context.
Return values:
XQC_NO_ERROR
XQC_INTERNAL_ERROR

Sets the default namespace for functions.

Parameters:
contextThe XQC_StaticContext that this function pointer is a member of
uriThe uri of the default function namespace to set in the given context.
Return values:
XQC_NO_ERROR
XQC_INTERNAL_ERROR

Sets the default order mode for empty sequences to either XQC_EMTPY_LEAST or XQC_EMPTY_GREATEST.

Parameters:
contextThe XQC_StaticContext that this function pointer is a member of
modeThe XQC_OrderEmptyMode to set in the given context.
Return values:
XQC_NO_ERROR
XQC_INTERNAL_ERROR

Sets the ordering mode to either XQC_ORDERED or XQC_UNORDERED.

Parameters:
contextThe XQC_StaticContext that this function pointer is a member of
modeThe XQC_OrderingMode to set in the given context.
Return values:
XQC_NO_ERROR
XQC_INTERNAL_ERROR

Sets the XPath 1.0 compatibility mode to either XQC_XPATH1_0 or XQC_XPATH2_0.

Parameters:
contextThe XQC_StaticContext that this function pointer is a member of
modeThe XQC_XPath1Mode to set in the given context.
Return values:
XQC_NO_ERROR
XQC_INTERNAL_ERROR

The documentation for this struct was generated from the following file:
XQilla-2.3.0/docs/xqc-api/structXQC__InputStream__s-members.html0000644000151400015140000000504011653571066021517 00000000000000 XQilla XQC API Documentation SourceForge.net Logo

XQC_InputStream_s Member List

This is the complete list of members for XQC_InputStream_s, including all inherited members.
encodingXQC_InputStream_s
freeXQC_InputStream_s
readXQC_InputStream_s
user_dataXQC_InputStream_s
XQilla-2.3.0/docs/xqc-api/functions_vars.html0000644000151400015140000003004011653571066016055 00000000000000 XQilla XQC API Documentation SourceForge.net Logo
 

- c -

- d -

- e -

- f -

- g -

- i -

- n -

- p -

- r -

- s -

- t -

- u -

XQilla-2.3.0/docs/xqc-api/annotated.html0000644000151400015140000000676611653571066015011 00000000000000 XQilla XQC API Documentation SourceForge.net Logo

Class List

Here are the classes, structs, unions and interfaces with brief descriptions:
XQC_DynamicContext_s
XQC_ErrorHandler_sThe XQC_ErrorHandler struct is designed to be populated by users for the purpose of collecting more detailed error messages from an XQC implementation
XQC_Expression_sThe XQC_Expression struct represents a prepared query, and allows the user to execute that query any number of times
XQC_Implementation_sThe XQC_Implementation struct provides factory functions for preparing queries
XQC_InputStream_sThe XQC_InputStream struct is designed to be populated by users for the purpose of streaming data into an XQC implementation
XQC_Sequence_s
XQC_StaticContext_sThe XQC_StaticContext struct provides a way to specify values for the static context of the query to be prepared
XQilla-2.3.0/docs/xqc-api/nav_h.png0000644000151400015140000000014111653571066013724 00000000000000‰PNG  IHDR ,é@(IDATxíݱ 0 A½2°ÁU¶— !kÜJrª¯ƒžZýÿÆo‡üèIEND®B`‚XQilla-2.3.0/docs/xqc-api/functions.html0000644000151400015140000003020411653571066015024 00000000000000 XQilla XQC API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- c -

- d -

- e -

- f -

- g -

- i -

- n -

- p -

- r -

- s -

- t -

- u -

XQilla-2.3.0/docs/xqc-api/structXQC__Sequence__s.html0000644000151400015140000006504111653571066017373 00000000000000 XQilla XQC API Documentation SourceForge.net Logo

XQC_Sequence_s Struct Reference

#include <xqc.h>

List of all members.

Public Attributes

XQC_Error(* next )(XQC_Sequence *sequence)
 Moves the XQC_Sequence so that the current item is positioned at the next item in the sequence.
void *(* get_interface )(const XQC_Sequence *sequence, const char *name)
 Called to retrieve an implementation specific interface.
void(* free )(XQC_Sequence *sequence)
 Called to free the resources associated with the XQC_Sequence.
Functions on the current item
XQC_Error(* item_type )(const XQC_Sequence *sequence, XQC_ItemType *type)
 Returns an item type enumeration for the type of the current item.
XQC_Error(* type_name )(const XQC_Sequence *sequence, const char **uri, const char **name)
 Returns the type name for the current item as a (URI, localname) pair.
XQC_Error(* string_value )(const XQC_Sequence *sequence, const char **value)
 Returns the string value of the current item in the sequence - this is equivalent to calling fn:string() (http://www.w3.org/TR/xpath-functions/#func-string) on the current item.
XQC_Error(* integer_value )(const XQC_Sequence *sequence, int *value)
 Returns the value of the current item in the sequence as an integer - this is equivalent to calling fn:number() (http://www.w3.org/TR/xpath-functions/#func-number) on the current item, and casting the result to an int.
XQC_Error(* double_value )(const XQC_Sequence *sequence, double *value)
 Returns the value of the current item in the sequence as a double - this is equivalent to calling fn:number() (http://www.w3.org/TR/xpath-functions/#func-number) on the current item.
XQC_Error(* node_name )(const XQC_Sequence *sequence, const char **uri, const char **name)
 Returns the name for the current node as a (URI, localname) pair.

Detailed Description


Member Data Documentation

XQC_Error(* XQC_Sequence_s::double_value)(const XQC_Sequence *sequence, double *value)

Returns the value of the current item in the sequence as a double - this is equivalent to calling fn:number() (http://www.w3.org/TR/xpath-functions/#func-number) on the current item.

This is available for all item types.

Parameters:
sequenceThe XQC_Sequence that this function pointer is a member of
[out]valueThe value of the current item as a double.
Return values:
XQC_NO_ERROR
XQC_NO_CURRENT_ITEMif there is no current item, either because next() has not been called yet, or because the end of the sequence has been reached.
void(* XQC_Sequence_s::free)(XQC_Sequence *sequence)

Called to free the resources associated with the XQC_Sequence.

Parameters:
sequenceThe XQC_Sequence that this function pointer is a member of
Examples:
xqc-basic.c, and xqc-context-item.c.
void*(* XQC_Sequence_s::get_interface)(const XQC_Sequence *sequence, const char *name)

Called to retrieve an implementation specific interface.

Parameters:
sequenceThe XQC_Sequence that this function pointer is a member of
nameThe name that identifies the interface to return
Returns:
A pointer to the interface, or 0 if the name is not recognized by this implementation of XQC.
XQC_Error(* XQC_Sequence_s::integer_value)(const XQC_Sequence *sequence, int *value)

Returns the value of the current item in the sequence as an integer - this is equivalent to calling fn:number() (http://www.w3.org/TR/xpath-functions/#func-number) on the current item, and casting the result to an int.

This is available for all item types.

Parameters:
sequenceThe XQC_Sequence that this function pointer is a member of
[out]valueThe value of the current item as an int.
Return values:
XQC_NO_ERROR
XQC_NO_CURRENT_ITEMif there is no current item, either because next() has not been called yet, or because the end of the sequence has been reached.

Returns an item type enumeration for the type of the current item.

Parameters:
sequenceThe XQC_Sequence that this function pointer is a member of
[out]typethe XQC_ItemType of the current item
Return values:
XQC_NO_ERROR
XQC_NO_CURRENT_ITEMif there is no current item, either because next() has not been called yet, or because the end of the sequence has been reached.

Moves the XQC_Sequence so that the current item is positioned at the next item in the sequence.

Parameters:
sequenceThe XQC_Sequence that this function pointer is a member of
Return values:
XQC_NO_ERRORwhen the call is successful
XQC_END_OF_SEQUENCEwhen the end of the sequence is reached
XQC_TYPE_ERROR
XQC_DYNAMIC_ERROR
Examples:
xqc-basic.c, and xqc-context-item.c.
XQC_Error(* XQC_Sequence_s::node_name)(const XQC_Sequence *sequence, const char **uri, const char **name)

Returns the name for the current node as a (URI, localname) pair.

Parameters:
sequenceThe XQC_Sequence that this function pointer is a member of
[out]uriThe URI of the name of the current node. The memory for the string will be valid until a subsequent call to XQC_Sequence::next().
[out]nameThe localname of the name of the current node. The memory for the string will be valid until a subsequent call to XQC_Sequence::next().
Return values:
XQC_NO_ERROR
XQC_NO_CURRENT_ITEMif there is no current item, either because next() has not been called yet, or because the end of the sequence has been reached.
XQC_NOT_NODEif the current item is not a node.
XQC_Error(* XQC_Sequence_s::string_value)(const XQC_Sequence *sequence, const char **value)

Returns the string value of the current item in the sequence - this is equivalent to calling fn:string() (http://www.w3.org/TR/xpath-functions/#func-string) on the current item.

This is available for all item types.

Parameters:
sequenceThe XQC_Sequence that this function pointer is a member of
[out]valueThe string value of the current item. The memory for the string will be valid until a subsequent call to XQC_Sequence::next().
Return values:
XQC_NO_ERROR
XQC_NO_CURRENT_ITEMif there is no current item, either because next() has not been called yet, or because the end of the sequence has been reached.
Examples:
xqc-basic.c, and xqc-context-item.c.
XQC_Error(* XQC_Sequence_s::type_name)(const XQC_Sequence *sequence, const char **uri, const char **name)

Returns the type name for the current item as a (URI, localname) pair.

Parameters:
sequenceThe XQC_Sequence that this function pointer is a member of
[out]uriThe URI of the type of the current item. The memory for the string will be valid until a subsequent call to XQC_Sequence::next().
[out]nameThe localname of the type of the current item. The memory for the string will be valid until a subsequent call to XQC_Sequence::next().
Return values:
XQC_NO_ERROR
XQC_NO_CURRENT_ITEMif there is no current item, either because next() has not been called yet, or because the end of the sequence has been reached.

The documentation for this struct was generated from the following file:
XQilla-2.3.0/docs/xqc-api/structXQC__Expression__s.html0000644000151400015140000003544411653571066017766 00000000000000 XQilla XQC API Documentation SourceForge.net Logo

XQC_Expression_s Struct Reference

The XQC_Expression struct represents a prepared query, and allows the user to execute that query any number of times. More...

#include <xqc.h>

List of all members.

Public Attributes

XQC_Error(* create_context )(const XQC_Expression *expression, XQC_DynamicContext **context)
 Creates a dynamic context suitable for use in the execute() function.
XQC_Error(* execute )(const XQC_Expression *expression, const XQC_DynamicContext *context, XQC_Sequence **sequence)
 Executes the query represented by the XQC_Expression object using the values in the XQC_DynamicContext if provided.
void *(* get_interface )(const XQC_Expression *expression, const char *name)
 Called to retrieve an implementation specific interface.
void(* free )(XQC_Expression *expression)
 Called to free the resources associated with the XQC_Expression.

Detailed Description

The XQC_Expression struct represents a prepared query, and allows the user to execute that query any number of times.

An XQC_Expression object is thread-safe and can be used by multiple threads of execution at the same time.

XQC_Expression objects are created by calling the XQC_Implementation::prepare(), XQC_Implementation::prepare_file() and XQC_Implementation::prepare_stream() functions. Once created, the user is responsible for freeing the object by calling the free() function. The XQC_Expression object should be freed before the XQC_Implementation object that created it.

Examples:

xqc-basic.c, and xqc-context-item.c.


Member Data Documentation

Creates a dynamic context suitable for use in the execute() function.

The user is responsible for freeing the XQC_DynamicContext object returned by calling XQC_DynamicContext::free().

Parameters:
expressionThe XQC_Expression that this function pointer is a member of.
[out]contextThe newly created XQC_DynamicContext object.
Return values:
XQC_NO_ERROR
XQC_INTERNAL_ERROR
Examples:
xqc-context-item.c.
XQC_Error(* XQC_Expression_s::execute)(const XQC_Expression *expression, const XQC_DynamicContext *context, XQC_Sequence **sequence)

Executes the query represented by the XQC_Expression object using the values in the XQC_DynamicContext if provided.

An XQC_Sequence object is returned which can be used to examine the results of the query execution. The user is responsible for freeing the XQC_Sequence object returned by calling XQC_Sequence::free().

Parameters:
expressionThe XQC_Expression that this function pointer is a member of.
contextThe dynamic context information to use when executing the query, or 0 to use the implementation defined default dynamic context.
[out]sequenceThe newly created XQC_Sequence object.
Return values:
XQC_NO_ERROR
XQC_INTERNAL_ERROR
XQC_TYPE_ERROR
XQC_DYNAMIC_ERROR
Examples:
xqc-basic.c, and xqc-context-item.c.
void(* XQC_Expression_s::free)(XQC_Expression *expression)

Called to free the resources associated with the XQC_Expression.

Parameters:
expressionThe XQC_Expression that this function pointer is a member of
Examples:
xqc-basic.c, and xqc-context-item.c.
void*(* XQC_Expression_s::get_interface)(const XQC_Expression *expression, const char *name)

Called to retrieve an implementation specific interface.

Parameters:
expressionThe XQC_Expression that this function pointer is a member of.
nameThe name that identifies the interface to return
Returns:
A pointer to the interface, or 0 if the name is not recognized by this implementation of XQC.

The documentation for this struct was generated from the following file:
XQilla-2.3.0/docs/xqc-api/structXQC__StaticContext__s-members.html0000644000151400015140000001717011653571066022047 00000000000000 XQilla XQC API Documentation SourceForge.net Logo

XQC_StaticContext_s Member List

XQilla-2.3.0/docs/xqc-api/globals.html0000644000151400015140000003017211653571066014443 00000000000000 XQilla XQC API Documentation SourceForge.net Logo
Here is a list of all file members with links to the files they belong to:

- c -

- x -

  • XQC_ANY_SIMPLE_TYPE : xqc.h
  • XQC_ANY_URI_TYPE : xqc.h
  • XQC_ATTRIBUTE_TYPE : xqc.h
  • XQC_BASE_64_BINARY_TYPE : xqc.h
  • XQC_BOOLEAN_TYPE : xqc.h
  • XQC_BoundarySpaceMode : xqc.h
  • XQC_COMMENT_TYPE : xqc.h
  • XQC_ConstructionMode : xqc.h
  • XQC_DATE_TIME_TYPE : xqc.h
  • XQC_DATE_TYPE : xqc.h
  • XQC_DAY_TIME_DURATION_TYPE : xqc.h
  • XQC_DECIMAL_TYPE : xqc.h
  • XQC_DOCUMENT_TYPE : xqc.h
  • XQC_DOUBLE_TYPE : xqc.h
  • XQC_DURATION_TYPE : xqc.h
  • XQC_DYNAMIC_ERROR : xqc.h
  • XQC_DynamicContext : xqc.h
  • XQC_ELEMENT_TYPE : xqc.h
  • XQC_EMPTY_GREATEST : xqc.h
  • XQC_EMPTY_LEAST : xqc.h
  • XQC_EMPTY_TYPE : xqc.h
  • XQC_END_OF_SEQUENCE : xqc.h
  • XQC_Error : xqc.h
  • XQC_ErrorHandler : xqc.h
  • XQC_Expression : xqc.h
  • XQC_FLOAT_TYPE : xqc.h
  • XQC_G_DAY_TYPE : xqc.h
  • XQC_G_MONTH_DAY_TYPE : xqc.h
  • XQC_G_MONTH_TYPE : xqc.h
  • XQC_G_YEAR_MONTH_TYPE : xqc.h
  • XQC_G_YEAR_TYPE : xqc.h
  • XQC_HEX_BINARY_TYPE : xqc.h
  • XQC_Implementation : xqc.h
  • XQC_INHERIT_NS : xqc.h
  • XQC_InheritMode : xqc.h
  • XQC_InputStream : xqc.h
  • XQC_INTERNAL_ERROR : xqc.h
  • XQC_INVALID_ARGUMENT : xqc.h
  • XQC_ItemType : xqc.h
  • XQC_NAMESPACE_TYPE : xqc.h
  • XQC_NO_CURRENT_ITEM : xqc.h
  • XQC_NO_ERROR : xqc.h
  • XQC_NO_INHERIT_NS : xqc.h
  • XQC_NO_PRESERVE_NS : xqc.h
  • XQC_NOT_IMPLEMENTED : xqc.h
  • XQC_NOT_NODE : xqc.h
  • XQC_NOTATION_TYPE : xqc.h
  • XQC_ORDERED : xqc.h
  • XQC_OrderEmptyMode : xqc.h
  • XQC_OrderingMode : xqc.h
  • XQC_PARSE_ERROR : xqc.h
  • XQC_PRESERVE_CONS : xqc.h
  • XQC_PRESERVE_NS : xqc.h
  • XQC_PRESERVE_SPACE : xqc.h
  • XQC_PreserveMode : xqc.h
  • XQC_PROCESSING_INSTRUCTION_TYPE : xqc.h
  • XQC_QNAME_TYPE : xqc.h
  • XQC_Sequence : xqc.h
  • XQC_SERIALIZATION_ERROR : xqc.h
  • XQC_STATIC_ERROR : xqc.h
  • XQC_StaticContext : xqc.h
  • XQC_STRING_TYPE : xqc.h
  • XQC_STRIP_CONS : xqc.h
  • XQC_STRIP_SPACE : xqc.h
  • XQC_TEXT_TYPE : xqc.h
  • XQC_TIME_TYPE : xqc.h
  • XQC_TYPE_ERROR : xqc.h
  • XQC_UNORDERED : xqc.h
  • XQC_UNRECOGNIZED_ENCODING : xqc.h
  • XQC_UNTYPED_ATOMIC_TYPE : xqc.h
  • XQC_VERSION_NUMBER : xqc.h
  • XQC_XPATH1_0 : xqc.h
  • XQC_XPath1Mode : xqc.h
  • XQC_XPATH2_0 : xqc.h
  • XQC_YEAR_MONTH_DURATION_TYPE : xqc.h
XQilla-2.3.0/docs/xqc-api/tab_a.png0000644000151400015140000000021411653571066013700 00000000000000‰PNG  IHDR$ÇÇ[SIDATxí» €@wçÉ¡œˆ˜*æ‚M˜ØIïÎF†ýL :®‡±nÌëN™ ¶±Á’„ØN&â¼_ ɭɾ}Õ¶8~î¾îOwv-ÿêA4Y)Ñ}IEND®B`‚XQilla-2.3.0/docs/xqc-api/xqc_8h.html0000644000151400015140000013532011653571066014213 00000000000000 XQilla XQC API Documentation SourceForge.net Logo

xqc.h File Reference

#include <stdio.h>

Go to the source code of this file.

Classes

struct  XQC_InputStream_s
 The XQC_InputStream struct is designed to be populated by users for the purpose of streaming data into an XQC implementation. More...
struct  XQC_ErrorHandler_s
 The XQC_ErrorHandler struct is designed to be populated by users for the purpose of collecting more detailed error messages from an XQC implementation. More...
struct  XQC_Implementation_s
 The XQC_Implementation struct provides factory functions for preparing queries. More...
struct  XQC_StaticContext_s
 The XQC_StaticContext struct provides a way to specify values for the static context of the query to be prepared. More...
struct  XQC_Expression_s
 The XQC_Expression struct represents a prepared query, and allows the user to execute that query any number of times. More...
struct  XQC_DynamicContext_s
struct  XQC_Sequence_s

Defines

#define XQC_VERSION_NUMBER   1
 The version of the XQC API in this header file.

Typedefs

typedef struct XQC_Implementation_s XQC_Implementation
typedef struct XQC_StaticContext_s XQC_StaticContext
typedef struct XQC_Expression_s XQC_Expression
typedef struct XQC_DynamicContext_s XQC_DynamicContext
typedef struct XQC_Sequence_s XQC_Sequence
typedef struct XQC_InputStream_s XQC_InputStream
typedef struct XQC_ErrorHandler_s XQC_ErrorHandler

Enumerations

enum  XQC_Error {
  XQC_NO_ERROR = 0, XQC_END_OF_SEQUENCE, XQC_NO_CURRENT_ITEM, XQC_PARSE_ERROR,
  XQC_INVALID_ARGUMENT, XQC_NOT_NODE, XQC_INTERNAL_ERROR, XQC_NOT_IMPLEMENTED,
  XQC_UNRECOGNIZED_ENCODING, XQC_STATIC_ERROR, XQC_TYPE_ERROR, XQC_DYNAMIC_ERROR,
  XQC_SERIALIZATION_ERROR
}
 

The error enumeration used by all XQC functions to designate error condition.

More...
enum  XQC_ItemType {
  XQC_EMPTY_TYPE = 0, XQC_DOCUMENT_TYPE, XQC_ELEMENT_TYPE, XQC_ATTRIBUTE_TYPE,
  XQC_TEXT_TYPE, XQC_PROCESSING_INSTRUCTION_TYPE, XQC_COMMENT_TYPE, XQC_NAMESPACE_TYPE,
  XQC_ANY_SIMPLE_TYPE, XQC_ANY_URI_TYPE, XQC_BASE_64_BINARY_TYPE, XQC_BOOLEAN_TYPE,
  XQC_DATE_TYPE, XQC_DATE_TIME_TYPE, XQC_DAY_TIME_DURATION_TYPE, XQC_DECIMAL_TYPE,
  XQC_DOUBLE_TYPE, XQC_DURATION_TYPE, XQC_FLOAT_TYPE, XQC_G_DAY_TYPE,
  XQC_G_MONTH_TYPE, XQC_G_MONTH_DAY_TYPE, XQC_G_YEAR_TYPE, XQC_G_YEAR_MONTH_TYPE,
  XQC_HEX_BINARY_TYPE, XQC_NOTATION_TYPE, XQC_QNAME_TYPE, XQC_STRING_TYPE,
  XQC_TIME_TYPE, XQC_UNTYPED_ATOMIC_TYPE, XQC_YEAR_MONTH_DURATION_TYPE
}
enum  XQC_XPath1Mode { XQC_XPATH2_0, XQC_XPATH1_0 }
 

XPath 1.0 compatibility mode as defined in http://www.w3.org/TR/xquery/#static_context.

More...
enum  XQC_OrderingMode { XQC_ORDERED, XQC_UNORDERED }
 

Ordering mode as defined in http://www.w3.org/TR/xquery/#static_context.

More...
enum  XQC_OrderEmptyMode { XQC_EMPTY_GREATEST, XQC_EMPTY_LEAST }
 

Default order for empty sequences as defined in http://www.w3.org/TR/xquery/#static_context.

More...
enum  XQC_InheritMode { XQC_INHERIT_NS, XQC_NO_INHERIT_NS }
 

Inherit part of the Copy-namespace mode as defined in http://www.w3.org/TR/xquery/#static_context.

More...
enum  XQC_PreserveMode { XQC_PRESERVE_NS, XQC_NO_PRESERVE_NS }
 

Preserve part of the Copy-namespace mode as defined in http://www.w3.org/TR/xquery/#static_context.

More...
enum  XQC_BoundarySpaceMode { XQC_PRESERVE_SPACE, XQC_STRIP_SPACE }
 

Boundary-space policy as defined in http://www.w3.org/TR/xquery/#static_context.

More...
enum  XQC_ConstructionMode { XQC_PRESERVE_CONS, XQC_STRIP_CONS }
 

Construction mode as defined in http://www.w3.org/TR/xquery/#static_context.

More...

Define Documentation

#define XQC_VERSION_NUMBER   1

The version of the XQC API in this header file.

Examples:
xqc-basic.c, and xqc-context-item.c.

Typedef Documentation

typedef struct XQC_Sequence_s XQC_Sequence

Enumeration Type Documentation

Boundary-space policy as defined in http://www.w3.org/TR/xquery/#static_context.

Enumerator:
XQC_PRESERVE_SPACE 
XQC_STRIP_SPACE 

Construction mode as defined in http://www.w3.org/TR/xquery/#static_context.

Enumerator:
XQC_PRESERVE_CONS 
XQC_STRIP_CONS 
enum XQC_Error

The error enumeration used by all XQC functions to designate error condition.

All XQC functions return a value of type XQC_Error.

Enumerator:
XQC_NO_ERROR 

No error.

XQC_END_OF_SEQUENCE 

The end of the XQC_Sequence has been reached.

XQC_NO_CURRENT_ITEM 
XQC_PARSE_ERROR 
XQC_INVALID_ARGUMENT 
XQC_NOT_NODE 
XQC_INTERNAL_ERROR 

An implementation specific error has occurred.

XQC_NOT_IMPLEMENTED 

The implementation does not implement that function.

XQC_UNRECOGNIZED_ENCODING 

The encoding of the query has not been recognized, or is not supported by the implementation.

All implementations must support queries in UTF-8.

XQC_STATIC_ERROR 

A static error has occured while preparing the query.

XQC_TYPE_ERROR 

A type error has occured while preparing or executing the query.

XQC_DYNAMIC_ERROR 

A dynamic error has occured while preparing or executing the query.

XQC_SERIALIZATION_ERROR 

A serialization error has occured while serializing the output of a query.

Inherit part of the Copy-namespace mode as defined in http://www.w3.org/TR/xquery/#static_context.

Enumerator:
XQC_INHERIT_NS 
XQC_NO_INHERIT_NS 
Enumerator:
XQC_EMPTY_TYPE 
XQC_DOCUMENT_TYPE 
XQC_ELEMENT_TYPE 
XQC_ATTRIBUTE_TYPE 
XQC_TEXT_TYPE 
XQC_PROCESSING_INSTRUCTION_TYPE 
XQC_COMMENT_TYPE 
XQC_NAMESPACE_TYPE 
XQC_ANY_SIMPLE_TYPE 
XQC_ANY_URI_TYPE 
XQC_BASE_64_BINARY_TYPE 
XQC_BOOLEAN_TYPE 
XQC_DATE_TYPE 
XQC_DATE_TIME_TYPE 
XQC_DAY_TIME_DURATION_TYPE 
XQC_DECIMAL_TYPE 
XQC_DOUBLE_TYPE 
XQC_DURATION_TYPE 
XQC_FLOAT_TYPE 
XQC_G_DAY_TYPE 
XQC_G_MONTH_TYPE 
XQC_G_MONTH_DAY_TYPE 
XQC_G_YEAR_TYPE 
XQC_G_YEAR_MONTH_TYPE 
XQC_HEX_BINARY_TYPE 
XQC_NOTATION_TYPE 
XQC_QNAME_TYPE 
XQC_STRING_TYPE 
XQC_TIME_TYPE 
XQC_UNTYPED_ATOMIC_TYPE 
XQC_YEAR_MONTH_DURATION_TYPE 

Default order for empty sequences as defined in http://www.w3.org/TR/xquery/#static_context.

Enumerator:
XQC_EMPTY_GREATEST 
XQC_EMPTY_LEAST 

Ordering mode as defined in http://www.w3.org/TR/xquery/#static_context.

Enumerator:
XQC_ORDERED 
XQC_UNORDERED 

Preserve part of the Copy-namespace mode as defined in http://www.w3.org/TR/xquery/#static_context.

Enumerator:
XQC_PRESERVE_NS 
XQC_NO_PRESERVE_NS 

XPath 1.0 compatibility mode as defined in http://www.w3.org/TR/xquery/#static_context.

Enumerator:
XQC_XPATH2_0 
XQC_XPATH1_0 
XQilla-2.3.0/docs/xqc-api/files.html0000644000151400015140000000361611653571066014125 00000000000000 XQilla XQC API Documentation SourceForge.net Logo

File List

Here is a list of all files with brief descriptions:
xqc.h [code]
xqilla-xqc.h [code]
XQilla-2.3.0/docs/xqc-api/tab_h.png0000644000151400015140000000030011653571066013703 00000000000000‰PNG  IHDR$ÇÇ[‡IDATxíÝÛ ‚`€áÿ¥ºˆFŠ¢‚hšYÒ ÿÌ26@c´HwÍñì!ïÏ—K1ê^‰©HtO’÷ÄyG˜µD׎ k9¦ç?iðâ7zá„vPaŸž˜þãÏðJŒ}ÉÆ)غwV»‚õ®`ai–Ö¥¥™›Z‰ˆšŒP³éøC"àèP=€IEND®B`‚XQilla-2.3.0/docs/xqc-api/xqc-basic_8c-example.html0000644000151400015140000001336511653571066016722 00000000000000 XQilla XQC API Documentation SourceForge.net Logo

xqc-basic.c

This example executes a simple XQuery expression ("1 to 100"), which returns the numbers from 1 to 100 inclusive.

#include <xqilla/xqilla-xqc.h>

int main(int argc, char *argv[])
{
  XQC_Implementation *impl;
  XQC_Expression *expr;
  XQC_Sequence *seq;
  XQC_Error err;
  const char *value;

  // XQilla specific way to create an XQC_Implementation struct
  impl = createXQillaXQCImplementation(XQC_VERSION_NUMBER);
  if(impl == 0) return 1;

  // Prepare an XQuery expression
  err = impl->prepare(impl, "1 to 100", 0, &expr);
  if(err != 0) goto free_impl;

  // Execute the query
  err = expr->execute(expr, 0, &seq);
  if(err != 0) goto free_expr;

  // Iterate over the results, printing them
  while((err = seq->next(seq)) == XQC_NO_ERROR) {
    seq->string_value(seq, &value);
    printf("%s\n", value);
  }

  if(err == XQC_END_OF_SEQUENCE)
    err = XQC_NO_ERROR;

  // free everything
  seq->free(seq);
free_expr:
  expr->free(expr);
free_impl:
  impl->free(impl);

  return err;
}
XQilla-2.3.0/docs/xqc-api/xqc_8h_source.html0000644000151400015140000024411411653571066015575 00000000000000 XQilla XQC API Documentation SourceForge.net Logo

xqc.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2008, Matthias Brantner, John Snelson
00003  * All rights reserved.
00004  *
00005  * Redistribution and use in source and binary forms, with or without
00006  * modification, are permitted provided that the following conditions are met:
00007  *
00008  *     * Redistributions of source code must retain the above copyright notice,
00009  *       this list of conditions and the following disclaimer.
00010  *     * Redistributions in binary form must reproduce the above copyright
00011  *       notice, this list of conditions and the following disclaimer in the
00012  *       documentation and/or other materials provided with the distribution.
00013  *     * Neither the name of the developers nor the names of contributors may be
00014  *       used to endorse or promote products derived from this software without
00015  *       specific prior written permission.
00016  *
00017  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00018  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00019  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
00020  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
00021  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
00022  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
00023  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
00024  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
00025  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
00026  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00027  * POSSIBILITY OF SUCH DAMAGE.
00028  */
00029 
00030 #ifndef _XQUERY_C_API_H
00031 #define _XQUERY_C_API_H
00032 
00033 /* Include stdio for FILE */
00034 #include <stdio.h>
00035 
00036 #ifdef __cplusplus
00037 extern "C" {
00038 #endif
00039 
00041 #define XQC_VERSION_NUMBER 1
00042 
00043 typedef struct XQC_Implementation_s XQC_Implementation;
00044 typedef struct XQC_StaticContext_s XQC_StaticContext;
00045 typedef struct XQC_Expression_s XQC_Expression;
00046 typedef struct XQC_DynamicContext_s XQC_DynamicContext;
00047 typedef struct XQC_Sequence_s XQC_Sequence;
00048 typedef struct XQC_InputStream_s XQC_InputStream;
00049 typedef struct XQC_ErrorHandler_s XQC_ErrorHandler;
00050 
00055 typedef enum {
00056         XQC_NO_ERROR = 0,          
00057         XQC_END_OF_SEQUENCE,       
00058         XQC_NO_CURRENT_ITEM,
00059         XQC_PARSE_ERROR,
00060         XQC_INVALID_ARGUMENT,
00061         XQC_NOT_NODE,
00062 
00063         XQC_INTERNAL_ERROR,        
00064         XQC_NOT_IMPLEMENTED,       
00065 
00069         XQC_UNRECOGNIZED_ENCODING,
00070 
00071         XQC_STATIC_ERROR,          
00072         XQC_TYPE_ERROR,            
00073         XQC_DYNAMIC_ERROR,         
00074         XQC_SERIALIZATION_ERROR    
00075 } XQC_Error;
00076 
00081 struct XQC_InputStream_s {
00088         const char *encoding;
00089 
00093         void *user_data;
00094 
00108         unsigned int (*read)(XQC_InputStream *stream, void *buffer, unsigned int length);
00109 
00116         void (*free)(XQC_InputStream *stream);
00117 };
00118 
00131 struct XQC_ErrorHandler_s {
00132 
00136         void *user_data;
00137 
00156         void (*error)(XQC_ErrorHandler *handler, XQC_Error error, const char *error_uri,
00157                 const char *error_localname, const char *description, XQC_Sequence *error_object);
00158 };
00159 
00160 typedef enum {
00161         XQC_EMPTY_TYPE = 0,
00162 
00163         XQC_DOCUMENT_TYPE,
00164         XQC_ELEMENT_TYPE,
00165         XQC_ATTRIBUTE_TYPE,
00166         XQC_TEXT_TYPE,
00167         XQC_PROCESSING_INSTRUCTION_TYPE,
00168         XQC_COMMENT_TYPE,
00169         XQC_NAMESPACE_TYPE,
00170 
00171         XQC_ANY_SIMPLE_TYPE,
00172         XQC_ANY_URI_TYPE,
00173         XQC_BASE_64_BINARY_TYPE,
00174         XQC_BOOLEAN_TYPE,
00175         XQC_DATE_TYPE,
00176         XQC_DATE_TIME_TYPE,
00177         XQC_DAY_TIME_DURATION_TYPE,
00178         XQC_DECIMAL_TYPE,
00179         XQC_DOUBLE_TYPE,
00180         XQC_DURATION_TYPE,
00181         XQC_FLOAT_TYPE,
00182         XQC_G_DAY_TYPE,
00183         XQC_G_MONTH_TYPE,
00184         XQC_G_MONTH_DAY_TYPE,
00185         XQC_G_YEAR_TYPE,
00186         XQC_G_YEAR_MONTH_TYPE,
00187         XQC_HEX_BINARY_TYPE,
00188         XQC_NOTATION_TYPE,
00189         XQC_QNAME_TYPE,
00190         XQC_STRING_TYPE,
00191         XQC_TIME_TYPE,
00192         XQC_UNTYPED_ATOMIC_TYPE,
00193         XQC_YEAR_MONTH_DURATION_TYPE
00194         
00195 } XQC_ItemType;
00196 
00207 struct XQC_Implementation_s {
00208 
00225         XQC_Error (*create_context)(XQC_Implementation *implementation, XQC_StaticContext **context);
00226 
00244         XQC_Error (*prepare)(XQC_Implementation *implementation, const char *string,
00245                 const XQC_StaticContext *context, XQC_Expression **expression);
00246 
00266         XQC_Error (*prepare_file)(XQC_Implementation *implementation, FILE *file,
00267                 const XQC_StaticContext *context, XQC_Expression **expression);
00268 
00290         XQC_Error (*prepare_stream)(XQC_Implementation *implementation, XQC_InputStream *stream,
00291                 const XQC_StaticContext *context, XQC_Expression **expression);
00292 
00294 
00300 
00301         XQC_Error (*parse_document)(XQC_Implementation *implementation,
00302                 const char *string, XQC_Sequence **sequence);
00304         XQC_Error (*parse_document_file)(XQC_Implementation *implementation,
00305                 FILE *file, XQC_Sequence **sequence);
00307         XQC_Error (*parse_document_stream)(XQC_Implementation *implementation,
00308                 XQC_InputStream *stream, XQC_Sequence **sequence);
00309 
00311 
00317         XQC_Error (*create_empty_sequence)(XQC_Implementation *implementation,
00318                 XQC_Sequence **sequence);
00319         XQC_Error (*create_singleton_sequence)(XQC_Implementation *implementation,
00320                 XQC_ItemType type, const char *value,
00321                 XQC_Sequence **sequence);
00322         XQC_Error (*create_string_sequence)(XQC_Implementation *implementation,
00323                 const char *values[], unsigned int count,
00324                 XQC_Sequence **sequence);
00325         XQC_Error (*create_integer_sequence)(XQC_Implementation *implementation,
00326                 int values[], unsigned int count,
00327                 XQC_Sequence **sequence);
00328         XQC_Error (*create_double_sequence)(XQC_Implementation *implementation,
00329                 double values[], unsigned int count,
00330                 XQC_Sequence **sequence);
00331 
00333 
00343         void *(*get_interface)(const XQC_Implementation *implementation, const char *name);
00344 
00351         void (*free)(XQC_Implementation *implementation);
00352 };
00353 
00359 typedef enum { XQC_XPATH2_0, XQC_XPATH1_0 } XQC_XPath1Mode;
00360 
00364 typedef enum { XQC_ORDERED, XQC_UNORDERED } XQC_OrderingMode;
00365 
00370 typedef enum { XQC_EMPTY_GREATEST, XQC_EMPTY_LEAST } XQC_OrderEmptyMode;
00371 
00376 typedef enum { XQC_INHERIT_NS, XQC_NO_INHERIT_NS } XQC_InheritMode;
00377 
00382 typedef enum { XQC_PRESERVE_NS, XQC_NO_PRESERVE_NS } XQC_PreserveMode;
00383 
00387 typedef enum { XQC_PRESERVE_SPACE, XQC_STRIP_SPACE } XQC_BoundarySpaceMode;
00388 
00392 typedef enum { XQC_PRESERVE_CONS, XQC_STRIP_CONS } XQC_ConstructionMode;
00393 
00404 struct XQC_StaticContext_s {
00405 
00420         XQC_Error
00421         (*create_child_context)(XQC_StaticContext *context, XQC_StaticContext **child_context);
00422 
00434         XQC_Error
00435         (*declare_ns)(XQC_StaticContext *context, const char *prefix, const char *uri);
00436 
00448         XQC_Error
00449         (*get_ns_by_prefix)(XQC_StaticContext *context, const char *prefix, const char **result_ns);
00450 
00460         XQC_Error
00461         (*set_default_element_and_type_ns)(XQC_StaticContext *context, const char *uri);
00462 
00471         XQC_Error
00472         (*get_default_element_and_type_ns)(XQC_StaticContext *context, const char **uri);
00473 
00483         XQC_Error
00484         (*set_default_function_ns)(XQC_StaticContext *context, const char *uri);
00485 
00495         XQC_Error
00496         (*get_default_function_ns)(XQC_StaticContext *context, const char **uri);
00497 
00507         XQC_Error
00508         (*set_xpath_compatib_mode)(XQC_StaticContext *context, XQC_XPath1Mode mode);
00509 
00519         XQC_Error 
00520         (*get_xpath_compatib_mode)(XQC_StaticContext *context, XQC_XPath1Mode* mode);
00521 
00531         XQC_Error
00532         (*set_construction_mode)(XQC_StaticContext *context, XQC_ConstructionMode mode);
00533 
00543         XQC_Error
00544         (*get_construction_mode)(XQC_StaticContext *context, XQC_ConstructionMode* mode);
00545 
00555         XQC_Error
00556         (*set_ordering_mode)(XQC_StaticContext *context, XQC_OrderingMode mode);
00557 
00567         XQC_Error
00568         (*get_ordering_mode)(XQC_StaticContext *context, XQC_OrderingMode* mode);
00569 
00580         XQC_Error
00581         (*set_default_order_empty_sequences)(XQC_StaticContext *context, XQC_OrderEmptyMode mode);
00582 
00593         XQC_Error
00594         (*get_default_order_empty_sequences)(XQC_StaticContext *context, XQC_OrderEmptyMode* mode);
00595 
00605         XQC_Error  
00606         (*set_boundary_space_policy)(XQC_StaticContext *context, XQC_BoundarySpaceMode mode);
00607 
00617         XQC_Error
00618         (*get_boundary_space_policy)(XQC_StaticContext *context, XQC_BoundarySpaceMode* mode);
00619 
00630         XQC_Error 
00631         (*set_copy_ns_mode)(XQC_StaticContext *context, XQC_PreserveMode preserve, XQC_InheritMode inherit);
00632 
00644         XQC_Error
00645         (*get_copy_ns_mode)(XQC_StaticContext *context, XQC_PreserveMode* preserve, XQC_InheritMode* inherit);
00646 
00656         XQC_Error
00657         (*set_base_uri)(XQC_StaticContext *context, const char *base_uri);
00658 
00668         XQC_Error
00669         (*get_base_uri)(XQC_StaticContext *context, const char **base_uri);
00670 
00671         XQC_Error (*set_error_handler)(XQC_StaticContext *context, XQC_ErrorHandler *handler);
00672         XQC_Error (*get_error_handler)(const XQC_StaticContext *context, XQC_ErrorHandler **handler);
00673 
00683         void *(*get_interface)(const XQC_StaticContext *context, const char *name);
00684 
00691         void (*free)(XQC_StaticContext *context);
00692 };
00693 
00707 struct XQC_Expression_s {
00708 
00720         XQC_Error (*create_context)(const XQC_Expression *expression, XQC_DynamicContext **context);
00721 
00738         XQC_Error (*execute)(const XQC_Expression *expression, const XQC_DynamicContext *context, XQC_Sequence **sequence);
00739 
00749         void *(*get_interface)(const XQC_Expression *expression, const char *name);
00750 
00757         void (*free)(XQC_Expression *expression);
00758 };
00759 
00760 struct XQC_DynamicContext_s {
00779         XQC_Error (*set_variable)(XQC_DynamicContext *context, const char *uri, const char *name,
00780                 XQC_Sequence *value);
00781 
00782         XQC_Error (*get_variable)(const XQC_DynamicContext *context, const char *uri, const char *name,
00783                 XQC_Sequence **value);
00784 
00802         XQC_Error (*set_context_item)(XQC_DynamicContext *context, XQC_Sequence *value);
00803 
00804         XQC_Error (*get_context_item)(const XQC_DynamicContext *context, XQC_Sequence **value);
00805 
00811         XQC_Error (*set_implicit_timezone)(XQC_DynamicContext *context, int timezone);
00812         XQC_Error (*get_implicit_timezone)(const XQC_DynamicContext *context, int *timezone);
00813 
00814         XQC_Error (*set_error_handler)(XQC_DynamicContext *context, XQC_ErrorHandler *handler);
00815         XQC_Error (*get_error_handler)(const XQC_DynamicContext *context, XQC_ErrorHandler **handler);
00816 
00826         void *(*get_interface)(const XQC_DynamicContext *context, const char *name);
00827 
00834         void (*free)(XQC_DynamicContext *context);
00835 };
00836 
00843 struct XQC_Sequence_s {
00854         XQC_Error (*next)(XQC_Sequence *sequence);
00855 
00871         XQC_Error (*item_type)(const XQC_Sequence *sequence, XQC_ItemType *type);
00872 
00886         XQC_Error (*type_name)(const XQC_Sequence *sequence, const char **uri, const char **name);
00887 
00901         XQC_Error (*string_value)(const XQC_Sequence *sequence, const char **value);
00902 
00915         XQC_Error (*integer_value)(const XQC_Sequence *sequence, int *value);
00916 
00929         XQC_Error (*double_value)(const XQC_Sequence *sequence, double *value);
00930 
00945         XQC_Error (*node_name)(const XQC_Sequence *sequence, const char **uri, const char **name);
00946 
00958         void *(*get_interface)(const XQC_Sequence *sequence, const char *name);
00959 
00966         void (*free)(XQC_Sequence *sequence);
00967 };
00968 
00969 #ifdef  __cplusplus
00970 }
00971 #endif
00972 
00973 #endif
XQilla-2.3.0/docs/xqc-api/structXQC__InputStream__s.html0000644000151400015140000001770711653571066020104 00000000000000 XQilla XQC API Documentation SourceForge.net Logo

XQC_InputStream_s Struct Reference

The XQC_InputStream struct is designed to be populated by users for the purpose of streaming data into an XQC implementation. More...

#include <xqc.h>

List of all members.

Public Attributes

const char * encoding
 The text encoding of the input data as a UTF-8 string, or 0 if unknown.
void * user_data
 Can be used for user specific purposes.
unsigned int(* read )(XQC_InputStream *stream, void *buffer, unsigned int length)
 The function called to read more of the input query.
void(* free )(XQC_InputStream *stream)
 Called to free the resources associated with the XQC_InputStream.

Detailed Description

The XQC_InputStream struct is designed to be populated by users for the purpose of streaming data into an XQC implementation.


Member Data Documentation

The text encoding of the input data as a UTF-8 string, or 0 if unknown.

The value of the string should conform to the EncName grammar production as specified in XML 1.0:

http://www.w3.org/TR/REC-xml/#NT-EncName

Called to free the resources associated with the XQC_InputStream.

Parameters:
streamThe XQC_InputStream that this function pointer is a member of
unsigned int(* XQC_InputStream_s::read)(XQC_InputStream *stream, void *buffer, unsigned int length)

The function called to read more of the input query.

The function should read the next chunk of input into the buffer provided, returning the length of the data read.

Parameters:
streamThe XQC_InputStream that this function pointer is a member of
[out]bufferThe buffer to read the data into
lengthThe length of the buffer
Returns:
The number of bytes read - this will be less than length if the end of the input is reached

Can be used for user specific purposes.


The documentation for this struct was generated from the following file:
XQilla-2.3.0/docs/xqc-api/xqilla-xqc_8h.html0000644000151400015140000000635511653571066015510 00000000000000 XQilla XQC API Documentation SourceForge.net Logo

xqilla-xqc.h File Reference

#include <xqc.h>

Go to the source code of this file.

Functions

XQC_ImplementationcreateXQillaXQCImplementation (int version)
 Creates an XQC_Implementation object that uses XQilla.

Function Documentation

XQC_Implementation* createXQillaXQCImplementation ( int  version)

Creates an XQC_Implementation object that uses XQilla.

Examples:
xqc-basic.c, and xqc-context-item.c.
XQilla-2.3.0/docs/xqc-api/classes.html0000644000151400015140000000510211653571066014450 00000000000000 XQilla XQC API Documentation SourceForge.net Logo

Class Index

XQilla-2.3.0/docs/xqc-api/globals_enum.html0000644000151400015140000000553511653571066015474 00000000000000 XQilla XQC API Documentation SourceForge.net Logo
 
XQilla-2.3.0/docs/xqc-api/structXQC__Implementation__s.html0000644000151400015140000011220411653571066020602 00000000000000 XQilla XQC API Documentation SourceForge.net Logo

XQC_Implementation_s Struct Reference

The XQC_Implementation struct provides factory functions for preparing queries. More...

#include <xqc.h>

List of all members.

Public Attributes

void *(* get_interface )(const XQC_Implementation *implementation, const char *name)
 Called to retrieve an implementation specific interface.
void(* free )(XQC_Implementation *implementation)
 Called to free the resources associated with the XQC_Implementation.
Functions for preparing queries
XQC_Error(* create_context )(XQC_Implementation *implementation, XQC_StaticContext **context)
 Creates a static context suitable for use in the prepare(), prepare_file() and prepare_stream() functions.
XQC_Error(* prepare )(XQC_Implementation *implementation, const char *string, const XQC_StaticContext *context, XQC_Expression **expression)
 Prepares a query from a UTF-8 string, returning an XQC_Expression object.
XQC_Error(* prepare_file )(XQC_Implementation *implementation, FILE *file, const XQC_StaticContext *context, XQC_Expression **expression)
 Prepares a query from a FILE pointer, returning an XQC_Expression object.
XQC_Error(* prepare_stream )(XQC_Implementation *implementation, XQC_InputStream *stream, const XQC_StaticContext *context, XQC_Expression **expression)
 Prepares a query from an XQC_InputStream, returning an XQC_Expression object.
Functions for parsing documents
XQC_Error(* parse_document )(XQC_Implementation *implementation, const char *string, XQC_Sequence **sequence)
 XQC_PARSE_ERROR.
XQC_Error(* parse_document_file )(XQC_Implementation *implementation, FILE *file, XQC_Sequence **sequence)
 XQC_PARSE_ERROR.
XQC_Error(* parse_document_stream )(XQC_Implementation *implementation, XQC_InputStream *stream, XQC_Sequence **sequence)
 XQC_PARSE_ERROR.
Functions for creating sequences
XQC_Error(* create_empty_sequence )(XQC_Implementation *implementation, XQC_Sequence **sequence)
XQC_Error(* create_singleton_sequence )(XQC_Implementation *implementation, XQC_ItemType type, const char *value, XQC_Sequence **sequence)
XQC_Error(* create_string_sequence )(XQC_Implementation *implementation, const char *values[], unsigned int count, XQC_Sequence **sequence)
XQC_Error(* create_integer_sequence )(XQC_Implementation *implementation, int values[], unsigned int count, XQC_Sequence **sequence)
XQC_Error(* create_double_sequence )(XQC_Implementation *implementation, double values[], unsigned int count, XQC_Sequence **sequence)

Detailed Description

The XQC_Implementation struct provides factory functions for preparing queries.

An XQC_Implementation object is thread-safe and can be used by multiple threads of execution at the same time.

The method of creating an XQC_Implementation object is beyond the scope of this API, and will typically involve calling an implementation defined function. Once created, the user is responsible for freeing the object by calling the free() function. The XQC_Implementation object should not be freed before all objects created using it's functions have been freed - doing so may cause undefined behaviour.

Examples:

xqc-basic.c, and xqc-context-item.c.


Member Data Documentation

Creates a static context suitable for use in the prepare(), prepare_file() and prepare_stream() functions.

The user is responsible for freeing the XQC_StaticContext object returned by calling XQC_StaticContext::free().

Parameters:
implementationThe XQC_Implementation that this function pointer is a member of
[out]contextThe newly created XQC_StaticContext object.
Return values:
XQC_NO_ERROR
XQC_INTERNAL_ERROR
XQC_Error(* XQC_Implementation_s::create_double_sequence)(XQC_Implementation *implementation, double values[], unsigned int count, XQC_Sequence **sequence)
XQC_Error(* XQC_Implementation_s::create_integer_sequence)(XQC_Implementation *implementation, int values[], unsigned int count, XQC_Sequence **sequence)
XQC_Error(* XQC_Implementation_s::create_string_sequence)(XQC_Implementation *implementation, const char *values[], unsigned int count, XQC_Sequence **sequence)

Called to free the resources associated with the XQC_Implementation.

Parameters:
implementationThe XQC_Implementation that this function pointer is a member of
Examples:
xqc-basic.c, and xqc-context-item.c.
void*(* XQC_Implementation_s::get_interface)(const XQC_Implementation *implementation, const char *name)

Called to retrieve an implementation specific interface.

Parameters:
implementationThe XQC_Implementation that this function pointer is a member of
nameThe name that identifies the interface to return
Returns:
A pointer to the interface, or 0 if the name is not recognized by this implementation of XQC.
XQC_Error(* XQC_Implementation_s::parse_document)(XQC_Implementation *implementation, const char *string, XQC_Sequence **sequence)

XQC_PARSE_ERROR.

Examples:
xqc-context-item.c.

XQC_PARSE_ERROR.

XQC_Error(* XQC_Implementation_s::prepare)(XQC_Implementation *implementation, const char *string, const XQC_StaticContext *context, XQC_Expression **expression)

Prepares a query from a UTF-8 string, returning an XQC_Expression object.

The user remains responsible for closing the file after preparation. The user is responsible for freeing the XQC_Expression object returned by calling XQC_Expression::free().

Parameters:
implementationThe XQC_Implementation that this function pointer is a member of.
stringThe query to prepare as a UTF-8 string.
contextThe initial static context for this query, or 0 to use the implementation defined default static context.
[out]expressionThe resulting prepared expression.
Return values:
XQC_NO_ERROR
XQC_INTERNAL_ERROR
XQC_STATIC_ERROR
XQC_TYPE_ERROR
XQC_DYNAMIC_ERROR
Examples:
xqc-basic.c, and xqc-context-item.c.
XQC_Error(* XQC_Implementation_s::prepare_file)(XQC_Implementation *implementation, FILE *file, const XQC_StaticContext *context, XQC_Expression **expression)

Prepares a query from a FILE pointer, returning an XQC_Expression object.

The encoding of the query in the file is determined by the implementation. The user remains responsible for closing the file after preparation. The user is responsible for freeing the XQC_Expression object returned by calling XQC_Expression::free().

Parameters:
implementationThe XQC_Implementation that this function pointer is a member of.
fileThe file containing the query to prepare.
contextThe initial static context for this query, or 0 to use the implementation defined default static context.
[out]expressionThe resulting prepared expression.
Return values:
XQC_NO_ERROR
XQC_INTERNAL_ERROR
XQC_UNRECOGNIZED_ENCODING
XQC_STATIC_ERROR
XQC_TYPE_ERROR
XQC_DYNAMIC_ERROR

Prepares a query from an XQC_InputStream, returning an XQC_Expression object.

The encoding of the stream is determined by looking at XQC_InputStream::encoding, or by the implementation if XQC_InputStream::encoding is 0. The implementation is responsible for freeing the XQC_InputStream using the XQC_InputStream::free() function after it has finished with using it. The user is responsible for freeing the XQC_Expression object returned by calling XQC_Expression::free().

Parameters:
implementationThe XQC_Implementation that this function pointer is a member of
streamThe stream returning the query to prepare.
contextThe initial static context for this query, or 0 to use the implementation defined default static context.
[out]expressionThe resulting prepared expression
Return values:
XQC_NO_ERROR
XQC_INTERNAL_ERROR
XQC_UNRECOGNIZED_ENCODING
XQC_STATIC_ERROR
XQC_TYPE_ERROR
XQC_DYNAMIC_ERROR

The documentation for this struct was generated from the following file:
XQilla-2.3.0/docs/xqc-api/xqilla-xqc_8h_source.html0000644000151400015140000001151211653571066017057 00000000000000 XQilla XQC API Documentation SourceForge.net Logo

xqilla-xqc.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _XQILLA_XQC_H
00021 #define _XQILLA_XQC_H
00022 
00023 #include <xqc.h>
00024 
00025 #ifdef  __cplusplus
00026 extern "C" {
00027 #endif
00028 
00032 XQC_Implementation *createXQillaXQCImplementation(int version);
00033 
00046 #ifdef  __cplusplus
00047 }
00048 #endif
00049 
00050 #endif
XQilla-2.3.0/docs/xqc-api/structXQC__ErrorHandler__s-members.html0000644000151400015140000000415211653571066021636 00000000000000 XQilla XQC API Documentation SourceForge.net Logo

XQC_ErrorHandler_s Member List

This is the complete list of members for XQC_ErrorHandler_s, including all inherited members.
errorXQC_ErrorHandler_s
user_dataXQC_ErrorHandler_s
XQilla-2.3.0/docs/xqc_header.html0000644000151400015140000000100311571227106013540 00000000000000 XQilla XQC API Documentation SourceForge.net Logo XQilla-2.3.0/docs/Doxyfile.dom3api.in0000644000151400015140000011575611571227106014242 00000000000000# Doxyfile 1.2.18 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project # # All text after a hash (#) is considered a comment and will be ignored # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" ") #--------------------------------------------------------------------------- # General configuration options #--------------------------------------------------------------------------- # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = "XQilla DOM Level 3 API" # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = %version% # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = . # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch, # Finnish, French, German, Greek, Hungarian, Italian, Japanese, Japanese-en # (Japanese with english messages), Korean, Norwegian, Polish, Portuguese, # Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish and Ukrainian. OUTPUT_LANGUAGE = English # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = YES # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = NO # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = YES # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = YES # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these class will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all # friend (class|struct|union) declarations. # If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = YES # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited # members of a class in the documentation of that class as if those members were # ordinary class members. Constructors, destructors and assignment operators of # the base classes will not be shown. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = NO # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. It is allowed to use relative paths in the argument list. STRIP_FROM_PATH = # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = YES # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower case letters. If set to YES upper case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # users are adviced to set this option to NO. CASE_SENSE_NAMES = YES # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful is your file systems # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = YES # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like the Qt-style comments (thus requiring an # explict @brief command for a brief description. JAVADOC_AUTOBRIEF = YES # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. # The new default is to treat a multi-line C++ comment block as a detailed # description. Set this tag to YES if you prefer the old behaviour instead. MULTILINE_CPP_IS_BRIEF = NO # If the DETAILS_AT_TOP tag is set to YES then Doxygen # will output the detailed description near the top, like JavaDoc. # If set to NO, the detailed description appears after the member # documentation. DETAILS_AT_TOP = NO # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # reimplements. INHERIT_DOCS = YES # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 8 # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or # disable (NO) the deprecated list. This list is created by putting \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST= YES # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or define consist of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and defines in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources # only. Doxygen will then generate output that is more tailored for C. # For instance some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = NO # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources # only. Doxygen will then generate output that is more tailored for Java. # For instance namespaces will be presented as packages, qualified scopes # will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = YES # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = \ ../include/xqilla/xqilla-dom3.hpp \ ../include/xqilla/dom-api \ ../include/xqilla/utils/XQillaPlatformUtils.hpp \ ../include/xqilla/framework/XPath2MemoryManager.hpp \ %xerces_include%/xercesc/framework/MemoryManager.hpp \ %xerces_include%/xercesc/util/PlatformUtils.hpp \ %xerces_include%/xercesc/dom/ # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp # *.h++ *.idl *.odl FILE_PATTERNS = # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = NO # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories # that are symbolic links (a Unix filesystem feature) are excluded from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. EXCLUDE_PATTERNS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = ../src/samples/dom-api/ # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command , where # is the value of the INPUT_FILTER tag, and is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. INPUT_FILTER = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. SOURCE_BROWSER = NO # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # If the REFERENCED_BY_RELATION tag is set to YES (the default) # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = YES # If the REFERENCES_RELATION tag is set to YES (the default) # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = YES # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 3 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = dom3-api # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. HTML_HEADER = dom3_header.html # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet HTML_STYLESHEET = # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = YES # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compressed HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output dir. CHM_FILE = # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can # be used to specify the location (absolute path including file name) of # the HTML help compiler (hhc.exe). If non empty doxygen will try to run # the html help compiler on the generated index.hhp. HHC_LOCATION = # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the Html help documentation and to the tree view. TOC_EXPAND = NO # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. ENUM_VALUES_PER_LINE = 4 # If the GENERATE_TREEVIEW tag is set to YES, a side panel will be # generated containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript and frames is required (for instance Mozilla, Netscape 4.0+, # or Internet explorer 4.0+). Note that for large projects the tree generation # can take a very long time. In such cases it is better to disable this feature. # Windows users are probably better off using the HTML help feature. GENERATE_TREEVIEW = NO # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = NO # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be invoked. If left blank `latex' will be used as the default command name. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4wide # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = NO # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = NO # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimised for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = NO # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = rtf # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assigments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_XML = NO # The XML_SCHEMA tag can be used to specify an XML schema, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_DTD = #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will # generate an AutoGen Definitions (see autogen.sf.net) file # that captures the structure of the code including all # documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = YES # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_PREDEFINED tags. EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = ../include # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. PREDEFINED = \ XERCES_CPP_NAMESPACE_QUALIFIER=xercesc:: \ XERCES_CPP_NAMESPACE_BEGIN="namespace xercesc {" \ XERCES_CPP_NAMESPACE_END="};" # If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all function-like macros that are alone # on a line, have an all uppercase name, and do not end with a semicolon. Such # function macros are typically used for boiler-plate code, and will confuse the # parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::addtions related to external references #--------------------------------------------------------------------------- # The TAGFILES tag can be used to specify one or more tagfiles. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in Html, RTF and LaTeX) for classes with base or # super classes. Setting the tag to NO turns the diagrams off. Note that this # option is superceded by the HAVE_DOT option below. This is only a fallback. It is # recommended to install and use dot, since it yield more powerful graphs. CLASS_DIAGRAMS = YES # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = YES # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = YES # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, jpg, or gif # If left blank png will be used. DOT_IMAGE_FORMAT = png # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found on the path. DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). DOTFILE_DIRS = # The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width # (in pixels) of the graphs generated by dot. If a graph becomes larger than # this value, doxygen will try to truncate the graph, so that it fits within # the specified constraint. Beware that most browsers cannot cope with very # large images. MAX_DOT_GRAPH_WIDTH = 1024 # The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height # (in pixels) of the graphs generated by dot. If a graph becomes larger than # this value, doxygen will try to truncate the graph, so that it fits within # the specified constraint. Beware that most browsers cannot cope with very # large images. MAX_DOT_GRAPH_HEIGHT = 1024 # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermedate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES #--------------------------------------------------------------------------- # Configuration::addtions related to the search engine #--------------------------------------------------------------------------- # The SEARCHENGINE tag specifies whether or not a search engine should be # used. If set to NO the values of all tags below this one will be ignored. SEARCHENGINE = NO # The CGI_NAME tag should be the name of the CGI script that # starts the search engine (doxysearch) with the correct parameters. # A script with this name will be generated by doxygen. CGI_NAME = search.cgi # The CGI_URL tag should be the absolute URL to the directory where the # cgi binaries are located. See the documentation of your http daemon for # details. CGI_URL = # The DOC_URL tag should be the absolute URL to the directory where the # documentation is located. If left blank the absolute path to the # documentation, with file:// prepended to it, will be used. DOC_URL = # The DOC_ABSPATH tag should be the absolute path to the directory where the # documentation is located. If left blank the directory on the local machine # will be used. DOC_ABSPATH = # The BIN_ABSPATH tag must point to the directory where the doxysearch binary # is installed. BIN_ABSPATH = /usr/local/bin/ # The EXT_DOC_PATHS tag can be used to specify one or more paths to # documentation generated for other projects. This allows doxysearch to search # the documentation for these projects as well. EXT_DOC_PATHS = XQilla-2.3.0/docs/Doxyfile.xqc.in0000644000151400015140000011512511571227106013467 00000000000000# Doxyfile 1.2.18 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project # # All text after a hash (#) is considered a comment and will be ignored # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" ") #--------------------------------------------------------------------------- # General configuration options #--------------------------------------------------------------------------- # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = "XQilla XQC API" # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = %version% # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = . # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch, # Finnish, French, German, Greek, Hungarian, Italian, Japanese, Japanese-en # (Japanese with english messages), Korean, Norwegian, Polish, Portuguese, # Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish and Ukrainian. OUTPUT_LANGUAGE = English # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = YES # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = NO # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = YES # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = YES # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these class will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all # friend (class|struct|union) declarations. # If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = YES # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited # members of a class in the documentation of that class as if those members were # ordinary class members. Constructors, destructors and assignment operators of # the base classes will not be shown. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = NO # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. It is allowed to use relative paths in the argument list. STRIP_FROM_PATH = # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = YES # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower case letters. If set to YES upper case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # users are adviced to set this option to NO. CASE_SENSE_NAMES = YES # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful is your file systems # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = YES # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like the Qt-style comments (thus requiring an # explict @brief command for a brief description. JAVADOC_AUTOBRIEF = YES # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. # The new default is to treat a multi-line C++ comment block as a detailed # description. Set this tag to YES if you prefer the old behaviour instead. MULTILINE_CPP_IS_BRIEF = NO # If the DETAILS_AT_TOP tag is set to YES then Doxygen # will output the detailed description near the top, like JavaDoc. # If set to NO, the detailed description appears after the member # documentation. DETAILS_AT_TOP = NO # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # reimplements. INHERIT_DOCS = YES # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 8 # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = NO # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or # disable (NO) the deprecated list. This list is created by putting \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST= YES # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or define consist of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and defines in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources # only. Doxygen will then generate output that is more tailored for C. # For instance some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = NO # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources # only. Doxygen will then generate output that is more tailored for Java. # For instance namespaces will be presented as packages, qualified scopes # will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = YES # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = \ ../include/xqc.h \ ../include/xqilla/xqilla-xqc.h # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp # *.h++ *.idl *.odl FILE_PATTERNS = # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = NO # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories # that are symbolic links (a Unix filesystem feature) are excluded from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. EXCLUDE_PATTERNS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = ../src/samples/xqc-api/ # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command , where # is the value of the INPUT_FILTER tag, and is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. INPUT_FILTER = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. SOURCE_BROWSER = NO # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # If the REFERENCED_BY_RELATION tag is set to YES (the default) # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = YES # If the REFERENCES_RELATION tag is set to YES (the default) # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = NO # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 3 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = xqc-api # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. HTML_HEADER = xqc_header.html # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet HTML_STYLESHEET = # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = YES # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compressed HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output dir. CHM_FILE = # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can # be used to specify the location (absolute path including file name) of # the HTML help compiler (hhc.exe). If non empty doxygen will try to run # the html help compiler on the generated index.hhp. HHC_LOCATION = # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the Html help documentation and to the tree view. TOC_EXPAND = NO # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. ENUM_VALUES_PER_LINE = 4 # If the GENERATE_TREEVIEW tag is set to YES, a side panel will be # generated containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript and frames is required (for instance Mozilla, Netscape 4.0+, # or Internet explorer 4.0+). Note that for large projects the tree generation # can take a very long time. In such cases it is better to disable this feature. # Windows users are probably better off using the HTML help feature. GENERATE_TREEVIEW = NO # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = NO # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be invoked. If left blank `latex' will be used as the default command name. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4wide # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = NO # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = NO # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimised for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = NO # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = rtf # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assigments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_XML = NO # The XML_SCHEMA tag can be used to specify an XML schema, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_DTD = #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will # generate an AutoGen Definitions (see autogen.sf.net) file # that captures the structure of the code including all # documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = YES # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_PREDEFINED tags. EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. PREDEFINED = # If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all function-like macros that are alone # on a line, have an all uppercase name, and do not end with a semicolon. Such # function macros are typically used for boiler-plate code, and will confuse the # parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::addtions related to external references #--------------------------------------------------------------------------- # The TAGFILES tag can be used to specify one or more tagfiles. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in Html, RTF and LaTeX) for classes with base or # super classes. Setting the tag to NO turns the diagrams off. Note that this # option is superceded by the HAVE_DOT option below. This is only a fallback. It is # recommended to install and use dot, since it yield more powerful graphs. CLASS_DIAGRAMS = YES # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = NO # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = YES # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, jpg, or gif # If left blank png will be used. DOT_IMAGE_FORMAT = png # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found on the path. DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). DOTFILE_DIRS = # The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width # (in pixels) of the graphs generated by dot. If a graph becomes larger than # this value, doxygen will try to truncate the graph, so that it fits within # the specified constraint. Beware that most browsers cannot cope with very # large images. MAX_DOT_GRAPH_WIDTH = 1024 # The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height # (in pixels) of the graphs generated by dot. If a graph becomes larger than # this value, doxygen will try to truncate the graph, so that it fits within # the specified constraint. Beware that most browsers cannot cope with very # large images. MAX_DOT_GRAPH_HEIGHT = 1024 # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermedate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES #--------------------------------------------------------------------------- # Configuration::addtions related to the search engine #--------------------------------------------------------------------------- # The SEARCHENGINE tag specifies whether or not a search engine should be # used. If set to NO the values of all tags below this one will be ignored. SEARCHENGINE = NO # The CGI_NAME tag should be the name of the CGI script that # starts the search engine (doxysearch) with the correct parameters. # A script with this name will be generated by doxygen. CGI_NAME = search.cgi # The CGI_URL tag should be the absolute URL to the directory where the # cgi binaries are located. See the documentation of your http daemon for # details. CGI_URL = # The DOC_URL tag should be the absolute URL to the directory where the # documentation is located. If left blank the absolute path to the # documentation, with file:// prepended to it, will be used. DOC_URL = # The DOC_ABSPATH tag should be the absolute path to the directory where the # documentation is located. If left blank the directory on the local machine # will be used. DOC_ABSPATH = # The BIN_ABSPATH tag must point to the directory where the doxysearch binary # is installed. BIN_ABSPATH = /usr/local/bin/ # The EXT_DOC_PATHS tag can be used to specify one or more paths to # documentation generated for other projects. This allows doxysearch to search # the documentation for these projects as well. EXT_DOC_PATHS = XQilla-2.3.0/docs/dom3-api/0000755000151400015140000000000011653571066012256 500000000000000XQilla-2.3.0/docs/dom3-api/DOMTypeInfo_8hpp__incl.map0000644000151400015140000000003511653571065017072 00000000000000 XQilla-2.3.0/docs/dom3-api/XQillaExpression_8hpp_source.html0000644000151400015140000001270311653571065020657 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

XQillaExpression.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef __XQILLAEXPRESSION_HPP
00021 #define __XQILLAEXPRESSION_HPP
00022 
00023 #include <xqilla/framework/XQillaExport.hpp>
00024 
00025 #include <xqilla/dom-api/XPath2Result.hpp>
00026 #include <xqilla/runtime/Sequence.hpp>
00027 #include <xercesc/dom/DOMException.hpp>
00028 #include <xercesc/dom/DOMNode.hpp>
00029 #include <xercesc/dom/DOMXPathExpression.hpp>
00030 #include <xercesc/dom/DOMXPathException.hpp>
00031 
00032 
00033 class DynamicContext;
00034 
00041 class XQILLA_API XQillaExpression: public XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathExpression
00042 {
00043 public:
00045 
00054   virtual void release() = 0;
00056 };
00057 
00058 #endif
00059 
XQilla-2.3.0/docs/dom3-api/DOMDocumentType_8hpp.html0000644000151400015140000000703611653571066017011 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMDocumentType.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <xercesc/dom/DOMNode.hpp>
Include dependency graph for DOMDocumentType.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMDocumentType
 Each DOMDocument has a doctype attribute whose value is either null or a DOMDocumentType object. More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/functions_0x75.html0000644000151400015140000001104211653571065015654 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- u -

XQilla-2.3.0/docs/dom3-api/DOMException_8hpp__incl.map0000644000151400015140000000003511653571065017273 00000000000000 XQilla-2.3.0/docs/dom3-api/inherit_graph_27.map0000644000151400015140000000036411653571066016033 00000000000000 XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMLSException__inherit__graph.md50000644000151400015140000000004011653571065023577 00000000000000e41d73df84c1ebbffc8fe795b41049b3XQilla-2.3.0/docs/dom3-api/DOMUserDataHandler_8hpp__incl.map0000644000151400015140000000003511653571065020343 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMXPathException_8hpp_source.html0000644000151400015140000002063511653571065020653 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMXPathException.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMXPathException.hpp 671894 2008-06-26 13:29:21Z borisk $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMXPATHEXCEPTION_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMXPATHEXCEPTION_HPP
00024 
00025 #include <xercesc/dom/DOMException.hpp>
00026 
00027 XERCES_CPP_NAMESPACE_BEGIN
00028 
00032 class CDOM_EXPORT DOMXPathException : public DOMException
00033 {
00034 public:
00036 
00045         enum ExceptionCode {
00046                 INVALID_EXPRESSION_ERR = 51,
00047                 TYPE_ERR = 52,
00048                 NO_RESULT_ERROR = 53
00049         };
00051 
00052 public:
00053     // -----------------------------------------------------------------------
00054     //  Constructors
00055     // -----------------------------------------------------------------------
00062     DOMXPathException();
00063 
00071     DOMXPathException(short code,
00072                       short messageCode = 0,
00073                       MemoryManager* const  memoryManager = XMLPlatformUtils::fgMemoryManager);
00074 
00080     DOMXPathException(const DOMXPathException  &other);
00081 
00083 
00084     // -----------------------------------------------------------------------
00085     //  Destructors
00086     // -----------------------------------------------------------------------
00093     virtual ~DOMXPathException();
00095 
00096 private:
00097     // -----------------------------------------------------------------------
00098     // Unimplemented constructors and operators
00099     // -----------------------------------------------------------------------
00100     DOMXPathException& operator = (const DOMXPathException&);
00101 };
00102 
00103 XERCES_CPP_NAMESPACE_END
00104 
00105 #endif
XQilla-2.3.0/docs/dom3-api/classXQillaNSResolver__inherit__graph.map0000644000151400015140000000037111653571065022301 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMLSInput_8hpp__incl.map0000644000151400015140000000003511653571065016673 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMCDATASection_8hpp__incl.png0000644000151400015140000001704011653571065017511 00000000000000‰PNG  IHDR“u›bKGDÿÿÿ ½§“ÕIDATxœíÝ{ TÙð3ƒ<Ëû™(¡üD½vE,jín饱­äQéåQý¶ì¯ýl’GE["K-=´È–H[¡§d.€ðÌ>¹ÂG”ì†?²CäøþûïçÏŸOvÃd®Awûöíýë_***d*;;ÛÕÕ•ì(†-È\‚`oooaaAv@ ²³³Éa8ƒó\á™ | s„d.€ðÌ>ðÙâ`iiIl«ªªN:ÕÃÃCNNŽ(d0±±±4MKKËÌÌlõêÕ"""xݱcÇÆÅÅQ(âõ~~~<ˆ;v,Bèýû÷áááOŸ>ýðჶ¶¶ƒƒƒ™™Yw:þ|LLŒ««ëÚµkñ’ÌÌÌpHTT”®®.Ï*!:›““ÓØØ¨¬¬leeåàà0jÔ¨þuZuuµ££cVVVÿª#„,--‰.Â2×Pª®®Îf³«ªª®\¹²qãÆ³gÏÊÈÈ „:::<<<äååÝÜÜ444***Μ9óðáãGR©T„PmmmYYž2B­­­………DË---6løüóÏýýý¥¤¤òóó8pèСY³f}t×! Ã233UTT²²²ˆ4djjzåÊ„FÛ¼y3¾3fLoUB!!!uuuû÷ïWVV®¬¬ immõòòê{/Ñh4ww÷ÔÔT„ŒŒÌš5kúÑÕ`€ÕâP!''§   ¤¤4}úô¨««'&&âO?^NNîØ±c³gÏÖÔÔ433‹ˆˆ¨­­½~ý:þΫ‡rss§M›F<Œ‰‰™>}º¶¶öÊ•+—-[–З]#„****++}}}KKKß¾}‹Š‹‹+(((((à³3…?‰ŠŠöV!t÷î]WWW===999ccc//¯{÷î}R/±Ùì––|[VVvãÆŸT ¹†" …²xñâ¼¼<üaFF†““>½ÂIHH¬^½:##haa‘MÜjíÎ;œ_:ÉÉÉY¾|9gûÎÎξ¾¾}Ù5B(33sêÔ©&&&ZZZ™™™}‰¿·*RRR)))Dê166&(“ÉŒˆˆXºtéÒ¥K#""˜L&‹ÅЉ‰YµjÕ’%KÚÚÚBžžž¡eË–!„ª««‰¥n[[[`` ½½}xxxWWBÈÒÒòöíÛÎÎ΋/¾téÏP>|èàà°hÑ¢ .mÞ»woݺuK—.=yòdww7Ͼô<¹†(MMÍšš„P[[[cc#±$èêêVVVâÛS¦L¡Óéeee¡öööG™ššâOáÕµ´´8ëJJJòù6±kôçºÏÊÊ !dnnÞ—“J|ªøøø>> uuuÄSIII4-22òèÑ£=Љ‰IJJÊÉÉ 8~üxUUU||}ú´´´4^"%%uúô阘˜ˆˆˆššuuu+++{{{111Î,--SSS—.]Ú£e99¹Ó§O‡‡‡ûûûÓét--­C‡:>»ÎÌÌœ1cgÔÓÓÓÐÐÈÊÊÒÓÓãyü«øúúÆÅÅEEEUWWËËË[ZZ~ûí·øË\\\BCC]]])й¹¹››•Je0>>> cîܹnnn!555##£åË—§§§sîwëÖ­¡¡¡îîîbbb_|ñ…ƒƒCoýüã?N›6è[ž¬­­wîÜÉ`0ðkeñµaB>ÕPàWË…Bñ÷÷‡ûs ž×å÷ïb}KKË„„bâ ¬Â2‘––^´hQ_ ¹ sð99¹;vô¥ 2@ø@æÈ\á™ | s„d.€ðoÿB\\Ü/¿üBvý„aT £R;»SÄfKˆˆ0¹S D s :{{{²Cè?:]ìÅ ùQ£ØS¦4r¿4šÌ›7£uu?(+wr¿HGGgܸqdG1lÁ÷A¯¢£sº6}ºvXØ:55YAîšÉdß:~ü–­­ñÑ£«ÆŒ‘äÞÁЙ ðÐÒBß±ãÒÍ›O·m³Ù¶mˆ9çCïÞ}½eK¼´´xd¤³¡!ü¶ø d.ÐÓï¿ÿááq®»›ºÎÔ´çýﬡ¡mË–øû÷˾ÿ~ц æä†È\à/†9óÛÁƒ×>ÿ\÷äIEE²#B! ÃÂÂ2Óml _-++EvD€|¹Àÿ57wlß~13óÅÞ½‹]\Ìúý£ƒ$7·tÓ¦xQQjD„“‰Éx²Ã$ƒÌBèáà 8‹¶nî܉d‡ÃÛû÷m[·þ”“ójëV›íÛR©C+·A‚Ì5Ò±ÙØñã7ƒƒ3æÏŸì  Àï6ǤÃ׳\µ°˜¼VNVŽ#d®­¾¾uóæø¼¼²¡¹BìÍãÇ•ç™LVXغٳuÈ2×È•Ÿ_îé'&&á4mšÖÇ+ %MMíÛ¶]ÌÊz+Ç‘ 2×H„¯OœÈøê+ã  UcÆHQ+Ç9s&††:ª¨Œ&;" 8¹Fœºº–-[âóóË…k…Ø›ÂÂ*óíí'O:˜›O"; ¹F–;w^mÙ/##ádl“ìp†Š²²wnn窪ƒ‚V-^<ìpÀ€Õâðqõêã… 2™ì›7wBÚâ4q¢JZÚö•+g»»Ÿóõ½ÜÕÅ$;"ðOÁœk8`0º}}/'%=tq1‡"ééE;v\ÒÖVŒŒt?^‰ìp@ÿAæzõnn窪šŽ[mkkDv8C]UU£‡Çù’’Úÿþwå’%3Èô¬…ÛÏ??Z¸ð¨¸¸hF†7¤­¾7N!9yóªUs6mŠ÷òº@§w‘è˜s «ŽŽ®]»¯\ùÝÓó __[¸XüSݼùtÛ¶‹ªªc""œ&OV';ði s ¥/hîîçêë[OœX³`Á²ÃVÕÕMq/^ÔÀG±B2—ð‰¿¿oßÏFFšááNrd‡#܈Ó^¶Ì$0Ð^JjÙ>Ì%LÚÛ;wïNJNþ}ûö[·.…Ó”##ãÙ¶m¥## 4È|d.¡ñüy ~ —ÐPG33}²Ãnh´f¸ÂÂÊÿ~L[@æÑÑ9‡]›>]ûÔ)GuuX! båhkk|ôèj!½=ÿ™k¨ki¡ïØqéæÍ§p«bÁ¸{÷õ–-ñÒÒ⑑Ά†cÉð™kH{ôèó]]ÌÐÐu¦¦ºd‡3R44´mÙÿ~Ù÷ßÃÊqˆ‚Ì5Dá?ÉuðàµÏ?× qPR’!;¢‘ð°°ÌÀÀtÃãÇWËÊÂi-¹†¢ææŽíÛ/ff¾?,&¼rsK7mŠ£†‡;™˜Œ';ðÈ\CÎÇq,ûÔ©uŸ}6‘ìpFº÷ïÛ¶ný)'çü˜ö§{É‘“óŠ»ÍÆŽ½±lYèäÉj·oû@Ú eââ\÷í³ ¹½~ý™ææî×TttÀ÷ 2 rsK×®¼~½˜³°©©}ýú3!!·÷í³;ÞUAAš¬ð@ eÃó”¯W¯j­­ƒ *8Ÿmhhsq9{øð/d…72ÁjQÐÚÚ:çϤњ¥¤Ä³²|ÇS@åç—{zƉ‰‰DD8M›¦EvŒ€·¦¦ömÛ.fe½ VŽl6¶jUXnnBèòeOøüW``Î%hÿþ÷•††„PWW·£ã鎎®£GoØÛŸš9sü­[Þ¶†2yyéØX|å¸zuÄ»w­ÇŽÝÌË+Ç0ŒBAîîç>|à±–ƒæ\•ž^´aC ñPT”ª¯¯VRRëãc»i“œýyyežžq†½{×Jü‰‰Qíìf„„8Û™KpÚÌÌZ[élößú|çÎ…;w~IVT ^½ªýæ›ãtzww3*êÛ¯¿žJVT#¬gÏž+=:…B Ïúã÷dEúÅbûù%vv²z¼›T*ÅÛûrCCY¹äêÕ'ii…Ü¿WŠaXWsƳðƒ4B$$äöÇLfÏw“ÍÆ:::½½H‰jDÌ%ïß·íÞØÛ•ðL&ûÙ³š#GÒè§‚‚ŠcÇnô˜mº»Y·n=MO/pT# d.AðóKlmí¹NÄá÷WR’a0˜0íååõ ED„JåõD¥R¼½Þ¿‡5ã ‚3ôƒîòå‚íÛ/rö3•J¡R©,ÛØXsùò™66†ð«ñB§¹¹##ãÙÍ›OýõyWKD„ʹx17ŸçJb„Ãd®ÁU]ÝdaØÑÑ…aHT”Êfc ÅÜ\ßÖÖØÒròرòdþ)£û·ßJ®^}|ãÆÓööNQQ<…Q(”cÇV¯Z5›ì‡§¿e.:ÞÔÔDb4×WRnnB4}ú¸/¾Ð·´ÔSV>·¬‘”””—ÿGùwØŒ:£;/ïMVÖë;wJÛÚ:¢HK‹]¹âw(=FÚß2×»wïž?NFTÃÓ;•11EFFʳgk̘¡&--FvDOYYÙÐÐðŸ´0üF‹…½|ÙPP@+( /ëã3—숆ƒ#M”û‚ gX=úŸß ‰a˜°pÏž=¨¦†Ù¨³²B! Þ=«ÑÒR3F’숄÷H㑹À@{Ñp eʸ“ý €«"Â2@ø@æÈ\á™ |„>sUVV®_¿þ£/+--Åû‹Øà¬þøñcQQÑÄÄD¢<55uÔ¨QÅÅÅ<ÚhãÇwrrª¯¯çóz Ãedúz}#…B)--ˆHÁÿñu=†Ö?iö£C¢½½ÝÇÇgêÔ©£Gž5kÖáÇ™Ìÿé•B¡èééõønŒ­­-> .]ºDáåÉ“'ÿ$rb×iBŸ¹RRR–,YÂó©òòr%%%|[NNÎÏϯ·êÓ§Oß³g——Wss3BèÇžžžþþþFFFƒ9§ÜÜ\ööíÛ˜˜˜–––3fà‘ðTSSsáÂ…avõ¦pá3êªY>C¢µµuæÌ™GŽùý÷ßwïÞ}áÂëÿ_œ|óæMaa!ÑlSSSNN¾mggG£Ñh4Znn.Bˆö§¾_NÌùgE&ŒC]]]VV&T¾þú뎎žO½~ýºÇrÕ;;;§L™²qãF ÃÜÝÝMLLººº-ê¿A½~ýšxÈf³ÍÍÍ÷íÛ×ÛëyWßÛ@OŸ>}úôé?ldØŒºO}_ø4ËHx{{›™™1™LâmmmãÇŠŠÂë~ùå—{öì!žµµµíÑf¿£åSQ#í“ç\W¯^;v,þE³‹/êëë···#„º»»}||TUUUTT|||º»»ñÉó¯¿þª¥¥•íïﯥ¥¥¬¬ìääDü÷à®…ºvíš±±±„„„ŽŽN\\BˆÉdò¬ÞÐÐ ---))É9Q'¶ç΋RSSC½Ìä‰ê¡Q£FÅÆÆž={6 &&&66VLL¬· ðиQ(ww÷´´´ÞÚá<®>¶yëÖ-]]]yyù€€¢7RSS'M𤢢âååÕÙÙɳ°¯Ãb ÍQÇb±‚‚‚ôõõGmjjšŸŸ¿ ¹¹ùÛo¿URRÒÔÔôööf0! …röìYeeåÀÀÀ¸¸¸ &ÈÊÊîÝ»·G³Ü‡ßcHÄÇÇïÛ·ODD„x´´´O||<þÐÞÞþòåËØŸ Ƥ¤¤+V|´“¹»…g·÷~=n¤q¦±>þ÷srrrvv®­­UUUÍÏÏÇ 9²|ùòÊÊÊ¢¢¢3fìÚµ ÏͶ¶¶™™™?üðƒ¡¡aQQQqqñœ9s¼½½{«ÕÖÖ&..A£ÑΜ9#**ÚÖÖijúÙ³gãââ°¿ÿ ¶?ZHT'ìÚµ !tðàAÎÂA=4Œ×ª‚‚999þ{ÇŸí­MN¡o¾ù¦¥¥åÊ•+¡††¼… ”””äååéêêþðÃ< ùAι†à¨;v옊ŠJrrrMMMZZš††þ¾888XYY•••M™2ïF„К5kZZZ¢££B+W®lii‰ŒŒÄßìÏÀóH}}}þ¹wª*^÷åË—jjj?Æ0¬¹¹YJJª¡¡}lÎÅÝ-<»ÿœK`#­?™«©©ISSÓØØ˜s“'O¦ÑhøvFFÆ´iÓðøŠŠŠ0 ›4iRrr2þìóçωmîZbbb?þøcSS›Ínmme±X½U_¾|ycc#ÖßÌETDZÙl;;;GGGÎãÔCÃ>–¹zÛ;^Ò[›œBÙÙÙ†áçA^¿~Í?†a ººº< 1¾™¹†à¨Ó××%‚9wîB¨««KDD„è–ääd¼B=Â0¬«««Ç6þîsŽÆ~d®û÷ï+))u7mÚ´{÷n Ãâããmll¸ÛäN@ÜݳÛùg.´~žçÚ¿¿ˆˆH]]Q"!!Á9•“••ÅãÃÏIHHs·Ã] ð»wï®X±BZZÚÌÌ,==½·ê­­­‹/Æ·9{³¤¤¤/™‹³:...NVVöÎ;)))‚94Œ×0ýé§ŸLLLøïx1Ï69!„JJJ8÷…·@§ÓñÂÂÂB ž…Ü­qðy®¡6ê$%%Ÿ€B%%%øJ§·Â¡`ŽºñãÇs~„‡ßÏ@UUUDD¤¼¼/,++;öã_ºæÌœz ‡ýû÷Ÿ$"„ÚÛÛ9ÂÙ¼yóZ[[ïÞ½›‘‘ÑÇAyv&ÏnçCp#3õ忋Ų¶¶>pà@cc£ššÚÕ«Wñr//¯+VàÇΙ3góæÍœ¹ÙßßßØØ¸¸¸¸¸¸ØÔÔÔÕÕµ·Zt:]BB"))©¾¾þôéÓt:guGGÇêêj¼üj—3gÎ|øðaéÒ¥ˆczÕÚÚŠñšsqVg³Ùß|óÍüùóñ¥VWW—±±ñš5kph†!ŽÀ³³³íìì455›››û²÷ÞÚŒŠŠ"Z@\ÿáñ,--_¿~ýàÁ==½}ûöñ,ä?6皣.88XEE%%%…F£]¿~]GGßõÚµk­¬¬ÊËË‹‹‹ ñnä~8·9›Å>6$>|ø0iÒ¤ùóç_¿~½¤¤$99ÙÐÐÐÔÔ”Á`p6îééi```iiɽSŒ×Ô‰»[xv;çŸFÞHûäÌuòäÉ©S§â³ñŸþY]]_œ·´´¬_¿^^^^QQqãÆíííœ]Ã`0¼½½544dee׬YÓÔÔ„—s×Â0,!!aâĉ£Fš{¢Â¨–o¤ ý5ô€2×H4fÌ77·¾ðO ÞHƒÕ"è?X-Á€Õ"`8€Ì>¹Â2@ø@æ¿[SS#ø8€0b0=¾¦Ûo0êÜ#GæÂïµ@_ Tæ‚Qøë1Ò(Ÿt > pž | s„d.€ðÌ>ÿsDl x-êèIEND®B`‚XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMDocumentFragment-members.html0000644000151400015140000004611511653571065023367 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMDocumentFragment Member List

This is the complete list of members for xercesc::DOMDocumentFragment, including all inherited members.
appendChild(DOMNode *newChild)=0xercesc::DOMNode [pure virtual]
ATTRIBUTE_NODE enum valuexercesc::DOMNode
CDATA_SECTION_NODE enum valuexercesc::DOMNode
cloneNode(bool deep) const =0xercesc::DOMNode [pure virtual]
COMMENT_NODE enum valuexercesc::DOMNode
compareDocumentPosition(const DOMNode *other) const =0xercesc::DOMNode [pure virtual]
DOCUMENT_FRAGMENT_NODE enum valuexercesc::DOMNode
DOCUMENT_NODE enum valuexercesc::DOMNode
DOCUMENT_POSITION_CONTAINED_BY enum valuexercesc::DOMNode
DOCUMENT_POSITION_CONTAINS enum valuexercesc::DOMNode
DOCUMENT_POSITION_DISCONNECTED enum valuexercesc::DOMNode
DOCUMENT_POSITION_FOLLOWING enum valuexercesc::DOMNode
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC enum valuexercesc::DOMNode
DOCUMENT_POSITION_PRECEDING enum valuexercesc::DOMNode
DOCUMENT_TYPE_NODE enum valuexercesc::DOMNode
DocumentPosition enum namexercesc::DOMNode
DOMDocumentFragment()xercesc::DOMDocumentFragment [inline, protected]
DOMNode()xercesc::DOMNode [inline, protected]
DOMNode(const DOMNode &)xercesc::DOMNode [inline, protected]
ELEMENT_NODE enum valuexercesc::DOMNode
ENTITY_NODE enum valuexercesc::DOMNode
ENTITY_REFERENCE_NODE enum valuexercesc::DOMNode
getAttributes() const =0xercesc::DOMNode [pure virtual]
getBaseURI() const =0xercesc::DOMNode [pure virtual]
getChildNodes() const =0xercesc::DOMNode [pure virtual]
getFeature(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNode [pure virtual]
getFirstChild() const =0xercesc::DOMNode [pure virtual]
getLastChild() const =0xercesc::DOMNode [pure virtual]
getLocalName() const =0xercesc::DOMNode [pure virtual]
getNamespaceURI() const =0xercesc::DOMNode [pure virtual]
getNextSibling() const =0xercesc::DOMNode [pure virtual]
getNodeName() const =0xercesc::DOMNode [pure virtual]
getNodeType() const =0xercesc::DOMNode [pure virtual]
getNodeValue() const =0xercesc::DOMNode [pure virtual]
getOwnerDocument() const =0xercesc::DOMNode [pure virtual]
getParentNode() const =0xercesc::DOMNode [pure virtual]
getPrefix() const =0xercesc::DOMNode [pure virtual]
getPreviousSibling() const =0xercesc::DOMNode [pure virtual]
getTextContent() const =0xercesc::DOMNode [pure virtual]
getUserData(const XMLCh *key) const =0xercesc::DOMNode [pure virtual]
hasAttributes() const =0xercesc::DOMNode [pure virtual]
hasChildNodes() const =0xercesc::DOMNode [pure virtual]
insertBefore(DOMNode *newChild, DOMNode *refChild)=0xercesc::DOMNode [pure virtual]
isDefaultNamespace(const XMLCh *namespaceURI) const =0xercesc::DOMNode [pure virtual]
isEqualNode(const DOMNode *arg) const =0xercesc::DOMNode [pure virtual]
isSameNode(const DOMNode *other) const =0xercesc::DOMNode [pure virtual]
isSupported(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNode [pure virtual]
lookupNamespaceURI(const XMLCh *prefix) const =0xercesc::DOMNode [pure virtual]
lookupPrefix(const XMLCh *namespaceURI) const =0xercesc::DOMNode [pure virtual]
NodeType enum namexercesc::DOMNode
normalize()=0xercesc::DOMNode [pure virtual]
NOTATION_NODE enum valuexercesc::DOMNode
PROCESSING_INSTRUCTION_NODE enum valuexercesc::DOMNode
release()=0xercesc::DOMNode [pure virtual]
removeChild(DOMNode *oldChild)=0xercesc::DOMNode [pure virtual]
replaceChild(DOMNode *newChild, DOMNode *oldChild)=0xercesc::DOMNode [pure virtual]
setNodeValue(const XMLCh *nodeValue)=0xercesc::DOMNode [pure virtual]
setPrefix(const XMLCh *prefix)=0xercesc::DOMNode [pure virtual]
setTextContent(const XMLCh *textContent)=0xercesc::DOMNode [pure virtual]
setUserData(const XMLCh *key, void *data, DOMUserDataHandler *handler)=0xercesc::DOMNode [pure virtual]
TEXT_NODE enum valuexercesc::DOMNode
~DOMDocumentFragment()xercesc::DOMDocumentFragment [inline, virtual]
~DOMNode()xercesc::DOMNode [inline, virtual]
XQilla-2.3.0/docs/dom3-api/inherit_graph_8.md50000644000151400015140000000004011653571065015650 00000000000000f6acaadaef0853b08ea10bdaddd5f889XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMText__inherit__graph.png0000644000151400015140000002204411653571066022436 00000000000000‰PNG  IHDRÐNYm#bKGDÿÿÿ ½§“ IDATxœíyT“ÇúÇ'$,‚„°YDP, *u¹W9‚©­h•‚m=J­¶·–pm‘âÒKq9½•º•‹µTË".´´‚¢¬‹(j@h‚’Ìïé}i6Ák'Äû|Žç83ï<3Ï<ù¾3ó.$,Œ1Z˜Úà @@@nBCCét<3ÅÅÅzaѹJe±XS¦Lqww§ÐÐ_š››ËËË))šà²²²-ZD¡/ ¿dgg/^¼˜Ž`PPPPP×X*xxxÄÄÄ´µµ©VH$ñññþþþÖÖÖ'Nܶm›\.gl½½½Õ®ÃÃÃY,V}}=©©Z¡¾¾žÅbõÑ·~U6 ¸þQVV&Ÿ_[[;yòd§ËJ,›››ïÝ»W ¤§§s8±XœššªÕ¼££ãÀši„P]]ªÏ•••¶¶¶crª´µµ© ª´´ÔÉɉØÞºu‹Ëå^»v4kiiÙÞÞδIwîÜ4hPFFƘŒ”´5sæÌ††>Ÿ?f̘¤¤¤;w:::æåå=zôèäÉ“...¤²æØŸúéuü©Õž Hp"‘ÈÍÍÍÏÏ/))‰)ôññ$]\\¶±±!COO9Z[[«ÙަÆøâÅ‹VVV§NÒc®gj‚;|øp@@Is¹Üââb5“={öÌž=›±-))ñòòR*•óæÍÛ·oÖ&8…B4kÖ¬;wî477#„¤R)i“Ïç[XX 4¨ººšéèÚµk¤²Ö±ë‡¦àÊ!ÔÜܼ{÷8¦ÐÁÁùŒE"Qyy9)755E¹¸¸455‘’êêê­[·ê²’J¥J¥2''G(._¾üõ×_ …ºÌûÆxÏž=¯½öÉFEE%''3פ!‰D’’’Æ”L›6­««ëâÅ‹ÅÅÅóæÍÓÚ¬‰‰IFFFiiéþýûI‰““›Ínll$Ù††WWWÕkÞ_~ùEÄ ttž6Ã)ŠÍ›7 …B.—[XXHÊ?üðȈrCaòäÉkÖ¬QÝÙlÚ´ÉÏϯ¶¶¶¶¶vêÔ©+V¬Ðe%•J-,,rssÛÚÚöïßoaa!•Ju™ëÙÃ1·EJJJæÎëææÖÑÑAŽ>yòdÔ¨QAAAEEEwîÜÉËËóõõ:uªL&Ã*Øûï¿?zôèàà`¦MµްgÏr±B²K—.9sfcccmm­¯¯obbâ—_~éèèxìØ1@PTTäééI*kŽý©ŸÎÿâ’úÕW_ùûû“…2??ßÙÙY(bŒ;;;ßyç;;;{{û•+WJ$UÁÉd2çââbcc³dÉ‘HDÊ5­0ÆYYY#FŒ033óññ)((Ðc®Ú…jZõDuwwŠŠR]ý1Æb±8..n̘1–––¾¾¾[¶léîîfl‰žJJJBiiijåj‚S*•ä­U’ …ÑÑÑöööÎÎÎk×®•J¥r¹<55ÕËËËÊÊê/ù ™Ét]?4ïÃð>ð₨‚¨‚¨‚¨‚¨‚¨‚¨‚{<=|(2´F ½' cÇŽurr¢ÐÚÛBí†väùÐÚÚJÞš¡Ð¥/³‰ŒŒ¤ÓíY,–··âéU;;;:}Qšá^$nÞ|4sf*BèÌ™¿ílhwŒ ØÃõ›ÂÂjÇ„Ãa?^mh_Œ\ÿÀ9rY.WÊåŠ#G(}ÅÕ‹®\¹Òôøq'I·¶vVU5Ôã×?Ž»jjúûšš²óó¯Ö£×äre^^Uoïï§½½Š¼¼+r¹Ò°^ ¸~pñâ'Odª%OžÈJKë å1‚ëùùUÎ"Æá°òòª å1‚ë+2Yï‰5rùnöÊåÊ'jd²öu \_9}ú†L&×,—ÉzÏœ¹Aß#×W޽ÂfkùV6›uô(¬ª}×'ººdgÏÞÔzA*—+Ïœ¹!ÿFß+c×'ŠŠj™»!šôö*ŠŠø4ý1^àá}Ÿ‰$ÿCdãÆ<„ÐÖ­ ˜’—^²°³³2€gƥדŒ;;+U=YY™!„^~ÙÞp+°¤TÁTÁTÁTÁTÁTÁTÁTÁTÁTÁTÁTÁTÁTÁTÁTÁTÁTÁTÁTÁTÁTÁTÁTÁTÁTÁTÁTÁTÁTÁTÁTÑþ ˜§OŸnll¤ï±“ó!éjhG.žžž!!!Z`m¼`¿§ûÜa³mØlC{1 ‰ŒŒÔ*-_¹™MÓEà…aÑ¢EºÁ           Ê .8– 111mmmª$I||¼¿¿¿µµõĉ·mÛ&—Ë[oooµãááá,«¾¾žd=z´téRÁƒOœ81??_µk¦šÁyj¨ñ‚ !TVV&|ø¡C‡0ƽ½½ZÍU¤šÖüÔ>@Ò\.·¸¸Xm\iiiAAAÄ6==ÝËËK©T’CsæÌIOOgÚär¹eeeª¶]]]÷îÝcºNKK1b„­­í¶mÛHáñãÇÇ7hÐ .—ûùçŸ3Þ’àüüóÏš´ÙÞÞ!äää¤+zjÍêƒf§jíkVÐÏŸ"8ŒqLL̲eËZZZœœœ._¾L SRR.\xÿþ}>Ÿ?a„õëדÁ‡‡‡Ÿ={6))É××—Ïç×ÖÖNž<™Çã鲋ſææ{÷îéééG,§¦¦j5ïèè Ó’ZZ3Е••¶¶¶c‘H„jkkSTii) 4BèÖ­[\.÷Úµk¤YKKËöövÒ&1'ç›öÈ"4gΜÎÎΣG"„ÚÛÛ;;;ÍÌÌÞ}÷Ýdff"„?~¬@ YAëÕf ý1‹Åzâ Ç+RSkýÂø³'‰ÜÜÜüüü’’’˜B@@ÒÅÅÅãÆ#Þóù|Œñ¨Q£òòòÈÑ7n0iM+¡Phjjº}ûv‘H¤T*»ºº ….s]<ƒà.]ºäààÀØ®^½:!!cœ™™Ê” …B„3Åjíº¤¤cLv„uuu¿ýöÛÍ›7Åb±B¡8þ<)T ŽÖ Z‡¬&8ý1×=^‘šZ+è»ýüW ¶¶¶+W®üå—_V­ZÅ6559;;“ ¢ÐÐлwï’r„н{÷¼½½IÉèÑ£çÏŸ¯ËÊÎÎîܹsååånnnAAA?ÿü³‰‰‰.ó¾SWW7bÄâ<—Ë­®®V«P]]Àd###srr0ƹ¹¹L¹““Ó7Tm+++'NœØÝÝM²...!“߃lffvçΰ°°€€€ƒª’àh­Ð—!ë¹þ8èñê©n? ýU¨*÷ïßwttœ={ö[o½Åº¹¹1g€H$ºyó¦êéâééyüøq’¾víÚ–-[tYuww_¸pœad³Ù¿þú«.s] Ír`` ³YŽ‹‹ÓzѰk×.ÆV.—;99]¸pÁÊʪµµUµÍ+V,X°€ÙáaŒ?üðCÍ®Iº»»ÛÜܼ  @©TJ¥R¤1—h­ uÈj3œþ˜ëóy¥?ìÊ §T*ß}÷Ý>øàÈ‘#§OŸ>~ü8)_°`ABB½{÷ø|~XXXZZšªUttôƯ_¿~ýúõ5kÖÜ»wO—‹Åš5kÖÑ£G;;;{zzLMM---u™?yòä›o¾ÑL#„ÚÚÚZZZ>|xþüùùóçß½{÷ã?&‡?~ûìŸÿüçÖ­[uEì·ß~ëéé133“J¥›6mBuuu=µ‚®!#„Èæì©1×=^‘öŸêvÿè¯B¾úê+r9™ŸŸïììLvÐï¼ó޽½ýÊ•+%‰êé"“Éx<ž‹‹‹Í’%K˜=¦Æ8++kĈfff>>>zÌõ\¥2¸»»GEE‘YŠA,ÇÅÅ3ÆÒÒÒ××wË–-ÝÝÝŒ-9•KJJBiiijå㦦¦ˆˆkkëI“&2-#c¼sçÎ!C†¸»»ýõ×K–,qttT›Š4+hrooï´iÓ¬+zš3œž8hvªÖ¾fýÚУí¯˜“èàLàÙУŸÿI0 ÁTÁTÁTÁTÁTÁTÁ= ÝÝ=ÝÝ=†öÂ(Ñù—÷û÷ï§éŠQSó„ÅB~~ðmÚillôôôÔ~L×£ ºC†Ì³³›gh/4ý{´衽]<~|"B¬ššä!C¬ 펑{¸~STÄ'/®ž:Å7´/Æ®ßdeU`ŒÂYY†öÅøÁõæfáµk÷1ÆJ%ºzõ^s³ÐÐ ¸þqüx5›ý{ÐØlÖñãêo¨úÁõììJ¹ü÷?“–Ëqvv¥aý1:@pýàöí–;wZT ð;-·o·è44Áõƒ‚‚k[µ„Ãa^3”?Æ®¯`Œsrþ=%ÈåŠììJ¸—Ùw@p}¥ººùáC‘fùÇ¢ššfúþ) ¸¾rìØUµõ”Àá°»Jß#×' en®úzJ˹¹W %}¯Œ\Ÿ(/o‰º9¶™Gí‡Ã %—/Ã÷ô ¯'ªp8&7Îa²'NÔ „æÌñW­`·Œx[äYˆý!´oß2C;b|Ày PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPÐE믨þIdeez¸Ï‡Aƒ| ò1´χ¬¬,š0ÀwünÚ´‰~§€V>ûì3Ê=@p3fÌ ß) ú‚ƒ=@@@@@øé£g!88˜I;99ùûû¯ZµÊÖÖ–)”Éd¬¬¬Æ |óÍ7Ùl6±uuuýî»ïX,Sݺu™™™·oßÞ¼y³fðòòú3ÇD Ü3²{÷nggg¥RÙÜÜ|ôèÑ•+Wþë_ÿ ¾zõêâÅ‹«««322/^øàƒ«W¯òx¼¹sçúøüþŒ¼¨¨èoû›£££§§glllEE)_¹råøñãÏœ9óî»ïzzz>|ݺu¾¾¾º¬z{{1ÆR©ÔÌÌ,,,ìøñãæææ'OžÔjneeõÚk¯i¦Ÿ‹¥Tþþ«Ñ&&&Ó§O'«ê¥K—ÆŽÛ—-šÖhÕ@f ^4 ;;{ñâÅçΣÖ# Ÿààବ,fn¦À€[R@@@@@@ܳ@þˆÜÐ^% ¸gáÖ-áíÛBC{a”àÑ–®×›`„Г'ðȤßP}´ÕÜÜ̼k¼(xãÆJ oÙ2‰Íf=Ý``3eÊwwwjÝQáÜÝÝiŽíOâìÙ›Ri9BØÉÉ/8ØÞyPÀ®ßääT²Ù,Ç$'§Òо ¸þ!‘üöãµ …R.Wñ»»{ í‘‘‚ë§OßèíUto¯âôé_ ëт빹WTr¬?f§‚ë"‘¤¤ä–Rùûu½R©ùä“   &û‡ïømmm=}útdd$u¯Œ ;;)ùßÀ~ xrrrV¬X¡Z¢åK¥³³³iù¼à°Xê¿l{8€* 8€* 8€* 8€* 8€*/¦àX*xxxÄÄÄ´µµ©VH$ñññþþþÖÖÖ'Nܶm›\.gl½½½Õ~ '<<œÅbÕ×דì£G–.]êáá1xðà‰'æçç÷½k„ÐæÍ›Y,Ö?þñ¦ä‡~`i£ººZ— BH,óx¼áÇ4ÈÛÛ{Ó¦M2™ì™ƒV__¯yQùüÁ*dee©•)¡²²2@ðàÁƒ³gÏÎ;×ÍÍM$‘£>>>AAAEEE·oß>zôè+¯¼2cÆ ¹\Nl9εkטքB¡¥¥%B¨®®cÜÞÞîèè¸|ùòòòò_~ùeûöíæææ?þøc_ºÆ+•ÊW^yeذaãÆc »»»@ (++C þCOO.ŒñÛo¿\UUõøñãóçÏûûû¯Y³¦_jhh°··'é¶¶¶uëÖõËü© „²²²þP¢šy‘GÄAP*•Ó§OOLL$YHäE‹Å ¶aaa6l`Ž3\LL̲eËZZZœœœ._¾L SRR.\xÿþ}>Ÿ?a„õëד„‡‡Ÿ={6))É××—Ïç×ÖÖNž<™Çã鲋ſææ{÷îéééG,§¦¦j5ïèè Ó’ZZóS¯¬¬´µµ%¡Dµµµ© ª´´”Ä!tëÖ-.—KVÕŽŽKKËöövÒ&1'ç›®ëêc¬T*‡¾oß>ŒñÆ}}}ÕÌ5§Çä§Ÿ~ruu577 MMMmjjbiVk u±QQQ3gÎlhhàóùcÆŒIJJ"C‹ˆˆ‰D@ýú믺‚ ç 8‘HäæææççGü øøø’...7nŸÏÇ5*//½qã“Ö´ …¦¦¦Û·o‰DJ¥²««K¡Pè2×3Îþ îÒ¥KŒíêÕ«0Æ™™™¡¡¡L¹P(D©îÉúÞ5Ƹ¼¼œÃá9©ªª !T[[«ZYSpúMäryyyyrrò˜1cØlö÷ßOÊ5«5†Z×ÓÓÃf³¯_¿NÊóòò¼¼¼ÈÐÎ;G*hSW4žÏ.99™Íf·¶¶2%ª!hÍIDAT×"666dd•´°°P‹¬.+ŒñÅ‹#""¬¬¬O:¥Ç\Ï8û»¤îÙ³göìÙŒmII YUçÍ›Gf¦M''§ÒÒRUÛŠŠŠW_}U"‘<µë>úHí¢í“O>Q­¬)8]&b±øÈ‘#ÌNT©T~úé§®®®º«5†Z×ÜÜŒ"Ë(ƘÏç[XX¡1;ÈgܳÜinnÞ½{wHHH\\SèààÀx ‰ÊËËI¹©©)BÈÅÅ¥©©‰”TWWoݺU—•T*U*•999B¡pùò寿þºP(ÔeÞG0Æ{öìyíµ×H6***99Y¡P0$IJJJXXS2mÚ´®®®‹/Ï›7Oµµ7ÞxcÇŽXå¾Ifffoo/¹’ÕÓµB¡ÈÊÊÚ¹sg×øøãÉç¡Ës=&ã¥K—ÖÖÖ’š,köìÙÌÍÍÀö=†NNNl6»±±‘d\]]IÚÄ俾¦ª¾¾Ìp …"$$dóæÍB¡Ëå’ò?ü0""¢©©©¦¦fòäÉkÖ¬Q={6mÚäççW[[[[[;uêÔ+Vè²’J¥¹¹¹mmmû÷ï·°°J¥ºÌõìá˜{%%%äÞDGG9úäÉ“Q£F‘Û"wîÜÉËËóõõ:uªL&S=wßÿýÑ£G3m’òÇÛÛÛGEE•––ÖÔÔ$%%!„Nœ8ñÔ®Ï;§¶,\¹r!tõêU¦Dm†Óo²lÙ²‘#Gž8q¢¡¡¡´´tÊ”)}ô‘®Àj!鮫«K­ë¥K—Μ9³±±±¶¶Ö××—\e#•Y Q[R¿úê+²Pæçç;;;“tggç;ï¼cgggoo¿råJ‰D¢:™LÆãñ\\\lll–,Y¢zKLÍŠ¸1bÄ333Ÿ‚‚=æz®RÜÝÝ£¢¢T?3Œ±X,Ž‹‹3fŒ¥¥¥¯¯ï–-[º»»ÕBYRR‚JKKÓ qSSSDD„‹‹‹µµõ¤I“˜³N×±±±³fÍRuC©TŽ1Bõî—šàô›Èåò¤¤$??¿Aƒyxx¬[·ŽY5«5†½½½Ó¦M XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMCharacterData-members.html0000644000151400015140000005340411653571065022612 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMCharacterData Member List

This is the complete list of members for xercesc::DOMCharacterData, including all inherited members.
appendChild(DOMNode *newChild)=0xercesc::DOMNode [pure virtual]
appendData(const XMLCh *arg)=0xercesc::DOMCharacterData [pure virtual]
ATTRIBUTE_NODE enum valuexercesc::DOMNode
CDATA_SECTION_NODE enum valuexercesc::DOMNode
cloneNode(bool deep) const =0xercesc::DOMNode [pure virtual]
COMMENT_NODE enum valuexercesc::DOMNode
compareDocumentPosition(const DOMNode *other) const =0xercesc::DOMNode [pure virtual]
deleteData(XMLSize_t offset, XMLSize_t count)=0xercesc::DOMCharacterData [pure virtual]
DOCUMENT_FRAGMENT_NODE enum valuexercesc::DOMNode
DOCUMENT_NODE enum valuexercesc::DOMNode
DOCUMENT_POSITION_CONTAINED_BY enum valuexercesc::DOMNode
DOCUMENT_POSITION_CONTAINS enum valuexercesc::DOMNode
DOCUMENT_POSITION_DISCONNECTED enum valuexercesc::DOMNode
DOCUMENT_POSITION_FOLLOWING enum valuexercesc::DOMNode
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC enum valuexercesc::DOMNode
DOCUMENT_POSITION_PRECEDING enum valuexercesc::DOMNode
DOCUMENT_TYPE_NODE enum valuexercesc::DOMNode
DocumentPosition enum namexercesc::DOMNode
DOMCharacterData()xercesc::DOMCharacterData [inline, protected]
DOMCharacterData(const DOMCharacterData &other)xercesc::DOMCharacterData [inline, protected]
DOMNode()xercesc::DOMNode [inline, protected]
DOMNode(const DOMNode &)xercesc::DOMNode [inline, protected]
ELEMENT_NODE enum valuexercesc::DOMNode
ENTITY_NODE enum valuexercesc::DOMNode
ENTITY_REFERENCE_NODE enum valuexercesc::DOMNode
getAttributes() const =0xercesc::DOMNode [pure virtual]
getBaseURI() const =0xercesc::DOMNode [pure virtual]
getChildNodes() const =0xercesc::DOMNode [pure virtual]
getData() const =0xercesc::DOMCharacterData [pure virtual]
getFeature(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNode [pure virtual]
getFirstChild() const =0xercesc::DOMNode [pure virtual]
getLastChild() const =0xercesc::DOMNode [pure virtual]
getLength() const =0xercesc::DOMCharacterData [pure virtual]
getLocalName() const =0xercesc::DOMNode [pure virtual]
getNamespaceURI() const =0xercesc::DOMNode [pure virtual]
getNextSibling() const =0xercesc::DOMNode [pure virtual]
getNodeName() const =0xercesc::DOMNode [pure virtual]
getNodeType() const =0xercesc::DOMNode [pure virtual]
getNodeValue() const =0xercesc::DOMNode [pure virtual]
getOwnerDocument() const =0xercesc::DOMNode [pure virtual]
getParentNode() const =0xercesc::DOMNode [pure virtual]
getPrefix() const =0xercesc::DOMNode [pure virtual]
getPreviousSibling() const =0xercesc::DOMNode [pure virtual]
getTextContent() const =0xercesc::DOMNode [pure virtual]
getUserData(const XMLCh *key) const =0xercesc::DOMNode [pure virtual]
hasAttributes() const =0xercesc::DOMNode [pure virtual]
hasChildNodes() const =0xercesc::DOMNode [pure virtual]
insertBefore(DOMNode *newChild, DOMNode *refChild)=0xercesc::DOMNode [pure virtual]
insertData(XMLSize_t offset, const XMLCh *arg)=0xercesc::DOMCharacterData [pure virtual]
isDefaultNamespace(const XMLCh *namespaceURI) const =0xercesc::DOMNode [pure virtual]
isEqualNode(const DOMNode *arg) const =0xercesc::DOMNode [pure virtual]
isSameNode(const DOMNode *other) const =0xercesc::DOMNode [pure virtual]
isSupported(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNode [pure virtual]
lookupNamespaceURI(const XMLCh *prefix) const =0xercesc::DOMNode [pure virtual]
lookupPrefix(const XMLCh *namespaceURI) const =0xercesc::DOMNode [pure virtual]
NodeType enum namexercesc::DOMNode
normalize()=0xercesc::DOMNode [pure virtual]
NOTATION_NODE enum valuexercesc::DOMNode
PROCESSING_INSTRUCTION_NODE enum valuexercesc::DOMNode
release()=0xercesc::DOMNode [pure virtual]
removeChild(DOMNode *oldChild)=0xercesc::DOMNode [pure virtual]
replaceChild(DOMNode *newChild, DOMNode *oldChild)=0xercesc::DOMNode [pure virtual]
replaceData(XMLSize_t offset, XMLSize_t count, const XMLCh *arg)=0xercesc::DOMCharacterData [pure virtual]
setData(const XMLCh *data)=0xercesc::DOMCharacterData [pure virtual]
setNodeValue(const XMLCh *nodeValue)=0xercesc::DOMNode [pure virtual]
setPrefix(const XMLCh *prefix)=0xercesc::DOMNode [pure virtual]
setTextContent(const XMLCh *textContent)=0xercesc::DOMNode [pure virtual]
setUserData(const XMLCh *key, void *data, DOMUserDataHandler *handler)=0xercesc::DOMNode [pure virtual]
substringData(XMLSize_t offset, XMLSize_t count) const =0xercesc::DOMCharacterData [pure virtual]
TEXT_NODE enum valuexercesc::DOMNode
~DOMCharacterData()xercesc::DOMCharacterData [inline, virtual]
~DOMNode()xercesc::DOMNode [inline, virtual]
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMNodeIterator.html0000644000151400015140000005625711653571065021104 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMNodeIterator Class Reference

DOMNodeIterators are used to step through a set of nodes, e.g. More...

#include <DOMNodeIterator.hpp>

List of all members.

Public Member Functions

Destructor
virtual ~DOMNodeIterator ()
 Destructor.
Functions introduced in DOM Level 2
virtual DOMNodegetRoot ()=0
 The root node of the DOMNodeIterator, as specified when it was created.
virtual DOMNodeFilter::ShowType getWhatToShow ()=0
 Return which node types are presented via the iterator.
virtual DOMNodeFiltergetFilter ()=0
 The DOMNodeFilter used to screen nodes.
virtual bool getExpandEntityReferences ()=0
 Return the expandEntityReferences flag.
virtual DOMNodenextNode ()=0
 Returns the next node in the set and advances the position of the DOMNodeIterator in the set.
virtual DOMNodepreviousNode ()=0
 Returns the previous node in the set and moves the position of the DOMNodeIterator backwards in the set.
virtual void detach ()=0
 Detaches the DOMNodeIterator from the set which it iterated over, releasing any computational resources and placing the DOMNodeIterator in the INVALID state.
Non-standard Extension
virtual void release ()=0
 Called to indicate that this NodeIterator is no longer in use and that the implementation may relinquish any resources associated with it.

Protected Member Functions

Hidden constructors
 DOMNodeIterator ()
 DOMNodeIterator (const DOMNodeIterator &)

Detailed Description

DOMNodeIterators are used to step through a set of nodes, e.g.

the set of nodes in a DOMNodeList, the document subtree governed by a particular DOMNode, the results of a query, or any other set of nodes. The set of nodes to be iterated is determined by the implementation of the DOMNodeIterator. DOM Level 2 specifies a single DOMNodeIterator implementation for document-order traversal of a document subtree. Instances of these DOMNodeIterators are created by calling DOMDocumentTraversal.createNodeIterator().

See also the Document Object Model (DOM) Level 2 Traversal and Range Specification.

Since:
DOM Level 2

Constructor & Destructor Documentation

xercesc::DOMNodeIterator::DOMNodeIterator ( ) [inline, protected]
xercesc::DOMNodeIterator::DOMNodeIterator ( const DOMNodeIterator ) [inline, protected]
virtual xercesc::DOMNodeIterator::~DOMNodeIterator ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual void xercesc::DOMNodeIterator::detach ( ) [pure virtual]

Detaches the DOMNodeIterator from the set which it iterated over, releasing any computational resources and placing the DOMNodeIterator in the INVALID state.

After detach has been invoked, calls to nextNode or previousNode will raise the exception INVALID_STATE_ERR.

Since:
DOM Level 2
virtual bool xercesc::DOMNodeIterator::getExpandEntityReferences ( ) [pure virtual]

Return the expandEntityReferences flag.

The value of this flag determines whether the children of entity reference nodes are visible to the DOMNodeIterator. If false, these children and their descendants will be rejected. Note that this rejection takes precedence over whatToShow and the filter. Also note that this is currently the only situation where DOMNodeIterators may reject a complete subtree rather than skipping individual nodes.

To produce a view of the document that has entity references expanded and does not expose the entity reference node itself, use the whatToShow flags to hide the entity reference node and set expandEntityReferences to true when creating the DOMNodeIterator. To produce a view of the document that has entity reference nodes but no entity expansion, use the whatToShow flags to show the entity reference node and set expandEntityReferences to false.

Since:
DOM Level 2
virtual DOMNodeFilter* xercesc::DOMNodeIterator::getFilter ( ) [pure virtual]

The DOMNodeFilter used to screen nodes.

Since:
DOM Level 2
virtual DOMNode* xercesc::DOMNodeIterator::getRoot ( ) [pure virtual]

The root node of the DOMNodeIterator, as specified when it was created.

Since:
DOM Level 2
virtual DOMNodeFilter::ShowType xercesc::DOMNodeIterator::getWhatToShow ( ) [pure virtual]

Return which node types are presented via the iterator.

This attribute determines which node types are presented via the DOMNodeIterator. The available set of constants is defined in the DOMNodeFilter interface. Nodes not accepted by whatToShow will be skipped, but their children may still be considered. Note that this skip takes precedence over the filter, if any.

Since:
DOM Level 2
virtual DOMNode* xercesc::DOMNodeIterator::nextNode ( ) [pure virtual]

Returns the next node in the set and advances the position of the DOMNodeIterator in the set.

After a DOMNodeIterator is created, the first call to nextNode() returns the first node in the set.

Returns:
The next DOMNode in the set being iterated over, or null if there are no more members in that set.
Exceptions:
DOMExceptionINVALID_STATE_ERR: Raised if this method is called after the detach method was invoked.
Since:
DOM Level 2
virtual DOMNode* xercesc::DOMNodeIterator::previousNode ( ) [pure virtual]

Returns the previous node in the set and moves the position of the DOMNodeIterator backwards in the set.

Returns:
The previous DOMNode in the set being iterated over, or null if there are no more members in that set.
Exceptions:
DOMExceptionINVALID_STATE_ERR: Raised if this method is called after the detach method was invoked.
Since:
DOM Level 2
virtual void xercesc::DOMNodeIterator::release ( ) [pure virtual]

Called to indicate that this NodeIterator is no longer in use and that the implementation may relinquish any resources associated with it.

(release() will call detach() where appropriate)

Access to a released object will lead to unexpected result.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMImplementationList.html0000644000151400015140000002627211653571065022320 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMImplementationList Class Reference

The DOMImplementationList interface provides the abstraction of an ordered collection of DOM implementations, without defining or constraining how this collection is implemented. More...

#include <DOMImplementationList.hpp>

List of all members.

Public Member Functions

Destructor
virtual ~DOMImplementationList ()
 Destructor.
Functions introduced in DOM Level 3
virtual DOMImplementationitem (XMLSize_t index) const =0
 Returns the index item in the collection.
virtual XMLSize_t getLength () const =0
 Returns the number of DOMImplementation in the list.
Non-standard Extension
virtual void release ()=0
 Called to indicate that this list is no longer in use and that the implementation may relinquish any resources associated with it and its associated children.

Protected Member Functions

Hidden constructors
 DOMImplementationList ()

Detailed Description

The DOMImplementationList interface provides the abstraction of an ordered collection of DOM implementations, without defining or constraining how this collection is implemented.

The items in the DOMImplementationList are accessible via an integral index, starting from 0.


Constructor & Destructor Documentation

xercesc::DOMImplementationList::DOMImplementationList ( ) [inline, protected]
virtual xercesc::DOMImplementationList::~DOMImplementationList ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual XMLSize_t xercesc::DOMImplementationList::getLength ( ) const [pure virtual]

Returns the number of DOMImplementation in the list.

The range of valid child node indices is 0 to length-1 inclusive.

Since:
DOM Level 3
virtual DOMImplementation* xercesc::DOMImplementationList::item ( XMLSize_t  index) const [pure virtual]

Returns the index item in the collection.

If index is greater than or equal to the number of DOMImplementation in the list, this returns null.

Parameters:
indexIndex into the collection.
Returns:
The DOMImplementation at the indexth position in the DOMImplementationList, or null if that is not a valid index.
Since:
DOM Level 3
virtual void xercesc::DOMImplementationList::release ( ) [pure virtual]

Called to indicate that this list is no longer in use and that the implementation may relinquish any resources associated with it and its associated children.

Access to a released object will lead to unexpected result.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/inherit_graph_38.map0000644000151400015140000000035011653571066016030 00000000000000 XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMCharacterData__inherit__graph.md50000644000151400015140000000004011653571065024070 0000000000000010f463b70621fd9d489c116197c2225aXQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMNode.html0000644000151400015140000033353611653571066017371 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMNode Class Reference

The DOMNode interface is the primary datatype for the entire Document Object Model. More...

#include <DOMNode.hpp>

Inheritance diagram for xercesc::DOMNode:

List of all members.

Public Types

Public Contants
enum  NodeType {
  ELEMENT_NODE = 1, ATTRIBUTE_NODE = 2, TEXT_NODE = 3, CDATA_SECTION_NODE = 4,
  ENTITY_REFERENCE_NODE = 5, ENTITY_NODE = 6, PROCESSING_INSTRUCTION_NODE = 7, COMMENT_NODE = 8,
  DOCUMENT_NODE = 9, DOCUMENT_TYPE_NODE = 10, DOCUMENT_FRAGMENT_NODE = 11, NOTATION_NODE = 12
}
 

NodeType.

More...
enum  DocumentPosition {
  DOCUMENT_POSITION_DISCONNECTED = 0x01, DOCUMENT_POSITION_PRECEDING = 0x02, DOCUMENT_POSITION_FOLLOWING = 0x04, DOCUMENT_POSITION_CONTAINS = 0x08,
  DOCUMENT_POSITION_CONTAINED_BY = 0x10, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20
}
 

DocumentPosition:

More...

Public Member Functions

Destructor
virtual ~DOMNode ()
 Destructor.
Functions introduced in DOM Level 1
virtual const XMLCh * getNodeName () const =0
 The name of this node, depending on its type; see the table above.
virtual const XMLCh * getNodeValue () const =0
 Gets the value of this node, depending on its type.
virtual NodeType getNodeType () const =0
 An enum value representing the type of the underlying object.
virtual DOMNodegetParentNode () const =0
 Gets the parent of this node.
virtual DOMNodeListgetChildNodes () const =0
 Gets a DOMNodeList that contains all children of this node.
virtual DOMNodegetFirstChild () const =0
 Gets the first child of this node.
virtual DOMNodegetLastChild () const =0
 Gets the last child of this node.
virtual DOMNodegetPreviousSibling () const =0
 Gets the node immediately preceding this node.
virtual DOMNodegetNextSibling () const =0
 Gets the node immediately following this node.
virtual DOMNamedNodeMapgetAttributes () const =0
 Gets a DOMNamedNodeMap containing the attributes of this node (if it is an DOMElement) or null otherwise.
virtual DOMDocumentgetOwnerDocument () const =0
 Gets the DOMDocument object associated with this node.
virtual DOMNodecloneNode (bool deep) const =0
 Returns a duplicate of this node.
virtual DOMNodeinsertBefore (DOMNode *newChild, DOMNode *refChild)=0
 Inserts the node newChild before the existing child node refChild.
virtual DOMNodereplaceChild (DOMNode *newChild, DOMNode *oldChild)=0
 Replaces the child node oldChild with newChild in the list of children, and returns the oldChild node.
virtual DOMNoderemoveChild (DOMNode *oldChild)=0
 Removes the child node indicated by oldChild from the list of children, and returns it.
virtual DOMNodeappendChild (DOMNode *newChild)=0
 Adds the node newChild to the end of the list of children of this node.
virtual bool hasChildNodes () const =0
 This is a convenience method to allow easy determination of whether a node has any children.
virtual void setNodeValue (const XMLCh *nodeValue)=0
 Sets the value of the node.
Functions introduced in DOM Level 2.
virtual void normalize ()=0
 Puts all DOMText nodes in the full depth of the sub-tree underneath this DOMNode, including attribute nodes, into a "normal" form where only markup (e.g., tags, comments, processing instructions, CDATA sections, and entity references) separates DOMText nodes, i.e., there are neither adjacent DOMText nodes nor empty DOMText nodes.
virtual bool isSupported (const XMLCh *feature, const XMLCh *version) const =0
 Tests whether the DOM implementation implements a specific feature and that feature is supported by this node.
virtual const XMLCh * getNamespaceURI () const =0
 Get the namespace URI of this node, or null if it is unspecified.
virtual const XMLCh * getPrefix () const =0
 Get the namespace prefix of this node, or null if it is unspecified.
virtual const XMLCh * getLocalName () const =0
 Returns the local part of the qualified name of this node.
virtual void setPrefix (const XMLCh *prefix)=0
 Set the namespace prefix of this node.
virtual bool hasAttributes () const =0
 Returns whether this node (if it is an element) has any attributes.
Functions introduced in DOM Level 3.
virtual bool isSameNode (const DOMNode *other) const =0
 Returns whether this node is the same node as the given one.
virtual bool isEqualNode (const DOMNode *arg) const =0
 Tests whether two nodes are equal.
virtual void * setUserData (const XMLCh *key, void *data, DOMUserDataHandler *handler)=0
 Associate an object to a key on this node.
virtual void * getUserData (const XMLCh *key) const =0
 Retrieves the object associated to a key on a this node.
virtual const XMLCh * getBaseURI () const =0
 The absolute base URI of this node or null if undefined.
virtual short compareDocumentPosition (const DOMNode *other) const =0
 Compares the reference node, i.e.
virtual const XMLCh * getTextContent () const =0
 This attribute returns the text content of this node and its descendants.
virtual void setTextContent (const XMLCh *textContent)=0
 This attribute removes any possible children this node may have and, if the new string is not empty or null, replaced by a single DOMText node containing the string this attribute is set to.
virtual const XMLCh * lookupPrefix (const XMLCh *namespaceURI) const =0
 Look up the prefix associated to the given namespace URI, starting from this node.
virtual bool isDefaultNamespace (const XMLCh *namespaceURI) const =0
 This method checks if the specified namespaceURI is the default namespace or not.
virtual const XMLCh * lookupNamespaceURI (const XMLCh *prefix) const =0
 Look up the namespace URI associated to the given prefix, starting from this node.
virtual void * getFeature (const XMLCh *feature, const XMLCh *version) const =0
 This method makes available a DOMNode's specialized interface.
Non-standard Extension
virtual void release ()=0
 Called to indicate that this Node (and its associated children) is no longer in use and that the implementation may relinquish any resources associated with it and its associated children.

Protected Member Functions

Hidden constructors
 DOMNode ()
 DOMNode (const DOMNode &)

Detailed Description

The DOMNode interface is the primary datatype for the entire Document Object Model.

It represents a single node in the document tree. While all objects implementing the DOMNode interface expose methods for dealing with children, not all objects implementing the DOMNode interface may have children. For example, DOMText nodes may not have children, and adding children to such nodes results in a DOMException being raised.

The attributes nodeName, nodeValue and attributes are included as a mechanism to get at node information without casting down to the specific derived interface. In cases where there is no obvious mapping of these attributes for a specific nodeType (e.g., nodeValue for an DOMElement or attributes for a DOMComment ), this returns null. Note that the specialized interfaces may contain additional and more convenient mechanisms to get and set the relevant information.

The values of nodeName, nodeValue, and attributes vary according to the node type as follows:

Interface nodeName nodeValue attributes
DOMAttr name of attribute value of attribute null
DOMCDATASection "#cdata-section" content of the CDATA Section null
DOMComment "#comment" content of the comment null
DOMDocument "#document" null null
DOMDocumentFragment "#document-fragment" null null
DOMDocumentType document type name null null
DOMElement tag name null NamedNodeMap
DOMEntity entity name null null
DOMEntityReference name of entity referenced null null
DOMNotation notation name null null
DOMProcessingInstruction target entire content excluding the target null
DOMText "#text" content of the text node null

See also the Document Object Model (DOM) Level 2 Core Specification.

Since:
DOM Level 1

Member Enumeration Documentation

DocumentPosition:

DOCUMENT_POSITION_CONTAINED_BY: The node is contained by the reference node. A node which is contained is always following, too.

DOCUMENT_POSITION_CONTAINS: The node contains the reference node. A node which contains is always preceding, too.

DOCUMENT_POSITION_DISCONNECTED: The two nodes are disconnected. Order between disconnected nodes is always implementation-specific.

DOCUMENT_POSITION_FOLLOWING: The node follows the reference node.

DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: The determination of preceding versus following is implementation-specific.

DOCUMENT_POSITION_PRECEDING: The second node precedes the reference node.

Since:
DOM Level 3
Enumerator:
DOCUMENT_POSITION_DISCONNECTED 
DOCUMENT_POSITION_PRECEDING 
DOCUMENT_POSITION_FOLLOWING 
DOCUMENT_POSITION_CONTAINS 
DOCUMENT_POSITION_CONTAINED_BY 
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC 

NodeType.

Since:
DOM Level 1
Enumerator:
ELEMENT_NODE 
ATTRIBUTE_NODE 
TEXT_NODE 
CDATA_SECTION_NODE 
ENTITY_REFERENCE_NODE 
ENTITY_NODE 
PROCESSING_INSTRUCTION_NODE 
COMMENT_NODE 
DOCUMENT_NODE 
DOCUMENT_TYPE_NODE 
DOCUMENT_FRAGMENT_NODE 
NOTATION_NODE 

Constructor & Destructor Documentation

xercesc::DOMNode::DOMNode ( ) [inline, protected]
xercesc::DOMNode::DOMNode ( const DOMNode ) [inline, protected]
virtual xercesc::DOMNode::~DOMNode ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual DOMNode* xercesc::DOMNode::appendChild ( DOMNode newChild) [pure virtual]

Adds the node newChild to the end of the list of children of this node.

If the newChild is already in the tree, it is first removed.

Parameters:
newChildThe node to add.If it is a DOMDocumentFragment object, the entire contents of the document fragment are moved into the child list of this node
Returns:
The node added.
Exceptions:
DOMExceptionHIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not allow children of the type of the newChild node, or if the node to append is one of this node's ancestors.
WRONG_DOCUMENT_ERR: Raised if newChild was created from a different document than the one that created this node.
NO_MODIFICATION_ALLOWED_ERR: Raised if this node or the node being appended is readonly.
Since:
DOM Level 1
virtual DOMNode* xercesc::DOMNode::cloneNode ( bool  deep) const [pure virtual]

Returns a duplicate of this node.

This function serves as a generic copy constructor for nodes.

The duplicate node has no parent ( parentNode returns null.).
Cloning an DOMElement copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes, but this method does not copy any text it contains unless it is a deep clone, since the text is contained in a child DOMText node. Cloning any other type of node simply returns a copy of this node.

Parameters:
deepIf true, recursively clone the subtree under the specified node; if false, clone only the node itself (and its attributes, if it is an DOMElement).
Returns:
The duplicate node.
Since:
DOM Level 1
virtual short xercesc::DOMNode::compareDocumentPosition ( const DOMNode other) const [pure virtual]

Compares the reference node, i.e.

the node on which this method is being called, with a node, i.e. the one passed as a parameter, with regard to their position in the document and according to the document order.

Parameters:
otherThe node to compare against this node.
Returns:
Returns how the given node is positioned relatively to this node.
Since:
DOM Level 3
virtual DOMNamedNodeMap* xercesc::DOMNode::getAttributes ( ) const [pure virtual]

Gets a DOMNamedNodeMap containing the attributes of this node (if it is an DOMElement) or null otherwise.

Since:
DOM Level 1
virtual const XMLCh* xercesc::DOMNode::getBaseURI ( ) const [pure virtual]

The absolute base URI of this node or null if undefined.

This value is computed according to . However, when the DOMDocument supports the feature "HTML" , the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the documentURI attribute from the DOMDocument interface otherwise.


When the node is an DOMElement, a DOMDocument or a a DOMProcessingInstruction, this attribute represents the properties [base URI] defined in . When the node is a DOMNotation, an DOMEntity, or an DOMEntityReference, this attribute represents the properties [declaration base URI].

Since:
DOM Level 3
virtual DOMNodeList* xercesc::DOMNode::getChildNodes ( ) const [pure virtual]

Gets a DOMNodeList that contains all children of this node.

If there are no children, this is a DOMNodeList containing no nodes. The content of the returned DOMNodeList is "live" in the sense that, for instance, changes to the children of the node object that it was created from are immediately reflected in the nodes returned by the DOMNodeList accessors; it is not a static snapshot of the content of the node. This is true for every DOMNodeList, including the ones returned by the getElementsByTagName method.

Since:
DOM Level 1
virtual void* xercesc::DOMNode::getFeature ( const XMLCh *  feature,
const XMLCh *  version 
) const [pure virtual]

This method makes available a DOMNode's specialized interface.

Parameters:
featureThe name of the feature requested (case-insensitive).
versionThe version of the feature requested.
Returns:
Returns an alternate DOMNode which implements the specialized APIs of the specified feature, if any, or null if there is no alternate DOMNode which implements interfaces associated with that feature. Any alternate DOMNode returned by this method must delegate to the primary core DOMNode and not return results inconsistent with the primary core DOMNode such as key, attributes, childNodes, etc.
Since:
DOM Level 3
virtual DOMNode* xercesc::DOMNode::getFirstChild ( ) const [pure virtual]

Gets the first child of this node.

If there is no such node, this returns null.

Since:
DOM Level 1
virtual DOMNode* xercesc::DOMNode::getLastChild ( ) const [pure virtual]

Gets the last child of this node.

If there is no such node, this returns null.

Since:
DOM Level 1
virtual const XMLCh* xercesc::DOMNode::getLocalName ( ) const [pure virtual]

Returns the local part of the qualified name of this node.

For nodes created with a DOM Level 1 method, such as createElement from the DOMDocument interface, it is null.

Since:
DOM Level 2
virtual const XMLCh* xercesc::DOMNode::getNamespaceURI ( ) const [pure virtual]

Get the namespace URI of this node, or null if it is unspecified.

This is not a computed value that is the result of a namespace lookup based on an examination of the namespace declarations in scope. It is merely the namespace URI given at creation time.

For nodes of any type other than ELEMENT_NODE and ATTRIBUTE_NODE and nodes created with a DOM Level 1 method, such as createElement from the DOMDocument interface, this is always null.

Since:
DOM Level 2
virtual DOMNode* xercesc::DOMNode::getNextSibling ( ) const [pure virtual]

Gets the node immediately following this node.

If there is no such node, this returns null.

Since:
DOM Level 1
virtual const XMLCh* xercesc::DOMNode::getNodeName ( ) const [pure virtual]

The name of this node, depending on its type; see the table above.

Since:
DOM Level 1
virtual NodeType xercesc::DOMNode::getNodeType ( ) const [pure virtual]

An enum value representing the type of the underlying object.

Since:
DOM Level 1
virtual const XMLCh* xercesc::DOMNode::getNodeValue ( ) const [pure virtual]

Gets the value of this node, depending on its type.

Exceptions:
DOMExceptionNO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
Since:
DOM Level 1
virtual DOMDocument* xercesc::DOMNode::getOwnerDocument ( ) const [pure virtual]

Gets the DOMDocument object associated with this node.

This is also the DOMDocument object used to create new nodes. When this node is a DOMDocument or a DOMDocumentType which is not used with any DOMDocument yet, this is null.

Since:
DOM Level 1
virtual DOMNode* xercesc::DOMNode::getParentNode ( ) const [pure virtual]

Gets the parent of this node.

All nodes, except DOMDocument, DOMDocumentFragment, and DOMAttr may have a parent. However, if a node has just been created and not yet added to the tree, or if it has been removed from the tree, a null DOMNode is returned.

Since:
DOM Level 1
virtual const XMLCh* xercesc::DOMNode::getPrefix ( ) const [pure virtual]

Get the namespace prefix of this node, or null if it is unspecified.

Since:
DOM Level 2
virtual DOMNode* xercesc::DOMNode::getPreviousSibling ( ) const [pure virtual]

Gets the node immediately preceding this node.

If there is no such node, this returns null.

Since:
DOM Level 1
virtual const XMLCh* xercesc::DOMNode::getTextContent ( ) const [pure virtual]

This attribute returns the text content of this node and its descendants.

No serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content.


The string returned is made of the text content of this node depending on its type, as defined below:

Node type Content
ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE concatenation of the textContent attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes
ATTRIBUTE_NODE, TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE nodeValue
DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE null
Exceptions:
DOMExceptionDOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a DOMString variable on the implementation platform.
See also:
setTextContent
Since:
DOM Level 3
virtual void* xercesc::DOMNode::getUserData ( const XMLCh *  key) const [pure virtual]

Retrieves the object associated to a key on a this node.

The object must first have been set to this node by calling setUserData with the same key.

Parameters:
keyThe key the object is associated to.
Returns:
Returns the void* associated to the given key on this node, or null if there was none.
See also:
setUserData
Since:
DOM Level 3
virtual bool xercesc::DOMNode::hasAttributes ( ) const [pure virtual]

Returns whether this node (if it is an element) has any attributes.

Returns:
true if this node has any attributes, false otherwise.
Since:
DOM Level 2
virtual bool xercesc::DOMNode::hasChildNodes ( ) const [pure virtual]

This is a convenience method to allow easy determination of whether a node has any children.

Returns:
true if the node has any children, false if the node has no children.
Since:
DOM Level 1
virtual DOMNode* xercesc::DOMNode::insertBefore ( DOMNode newChild,
DOMNode refChild 
) [pure virtual]

Inserts the node newChild before the existing child node refChild.

If refChild is null, insert newChild at the end of the list of children.
If newChild is a DOMDocumentFragment object, all of its children are inserted, in the same order, before refChild. If the newChild is already in the tree, it is first removed. Note that a DOMNode that has never been assigned to refer to an actual node is == null.

Parameters:
newChildThe node to insert.
refChildThe reference node, i.e., the node before which the new node must be inserted.
Returns:
The node being inserted.
Exceptions:
DOMExceptionHIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not allow children of the type of the newChild node, or if the node to insert is one of this node's ancestors.
WRONG_DOCUMENT_ERR: Raised if newChild was created from a different document than the one that created this node.
NO_MODIFICATION_ALLOWED_ERR: Raised if this node or the node being inserted is readonly.
NOT_FOUND_ERR: Raised if refChild is not a child of this node.
Since:
DOM Level 1
virtual bool xercesc::DOMNode::isDefaultNamespace ( const XMLCh *  namespaceURI) const [pure virtual]

This method checks if the specified namespaceURI is the default namespace or not.

Parameters:
namespaceURIThe namespace URI to look for.
Returns:
true if the specified namespaceURI is the default namespace, false otherwise.
Since:
DOM Level 3
virtual bool xercesc::DOMNode::isEqualNode ( const DOMNode arg) const [pure virtual]

Tests whether two nodes are equal.


This method tests for equality of nodes, not sameness (i.e., whether the two nodes are pointers to the same object) which can be tested with DOMNode::isSameNode. All nodes that are the same will also be equal, though the reverse may not be true.
Two nodes are equal if and only if the following conditions are satisfied: The two nodes are of the same type.The following string attributes are equal: nodeName, localName, namespaceURI, prefix, nodeValue , baseURI. This is: they are both null, or they have the same length and are character for character identical. The attributes DOMNamedNodeMaps are equal. This is: they are both null, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index.The childNodes DOMNodeLists are equal. This is: they are both null, or they have the same length and contain equal nodes at the same index. This is true for DOMAttr nodes as for any other type of node. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared.
For two DOMDocumentType nodes to be equal, the following conditions must also be satisfied: The following string attributes are equal: publicId, systemId, internalSubset.The entities DOMNamedNodeMaps are equal.The notations DOMNamedNodeMaps are equal.
On the other hand, the following do not affect equality: the ownerDocument attribute, the specified attribute for DOMAttr nodes, the isWhitespaceInElementContent attribute for DOMText nodes, as well as any user data or event listeners registered on the nodes.

Parameters:
argThe node to compare equality with.
Returns:
If the nodes, and possibly subtrees are equal, true otherwise false.
Since:
DOM Level 3
virtual bool xercesc::DOMNode::isSameNode ( const DOMNode other) const [pure virtual]

Returns whether this node is the same node as the given one.


This method provides a way to determine whether two DOMNode references returned by the implementation reference the same object. When two DOMNode references are references to the same object, even if through a proxy, the references may be used completely interchangeably, such that all attributes have the same values and calling the same DOM method on either reference always has exactly the same effect.

Parameters:
otherThe node to test against.
Returns:
Returns true if the nodes are the same, false otherwise.
Since:
DOM Level 3
virtual bool xercesc::DOMNode::isSupported ( const XMLCh *  feature,
const XMLCh *  version 
) const [pure virtual]

Tests whether the DOM implementation implements a specific feature and that feature is supported by this node.

Parameters:
featureThe string of the feature to test. This is the same name as what can be passed to the method hasFeature on DOMImplementation.
versionThis is the version number of the feature to test. In Level 2, version 1, this is the string "2.0". If the version is not specified, supporting any version of the feature will cause the method to return true.
Returns:
Returns true if the specified feature is supported on this node, false otherwise.
Since:
DOM Level 2
virtual const XMLCh* xercesc::DOMNode::lookupNamespaceURI ( const XMLCh *  prefix) const [pure virtual]

Look up the namespace URI associated to the given prefix, starting from this node.

Parameters:
prefixThe prefix to look for. If this parameter is null, the method will return the default namespace URI if any.
Returns:
Returns the associated namespace URI or null if none is found.
Since:
DOM Level 3
virtual const XMLCh* xercesc::DOMNode::lookupPrefix ( const XMLCh *  namespaceURI) const [pure virtual]

Look up the prefix associated to the given namespace URI, starting from this node.

The default namespace declarations are ignored by this method.

Parameters:
namespaceURIThe namespace URI to look for.
Returns:
Returns an associated namespace prefix if found, null if none is found. If more than one prefix are associated to the namespace prefix, the returned namespace prefix is implementation dependent.
Since:
DOM Level 3
virtual void xercesc::DOMNode::normalize ( ) [pure virtual]

Puts all DOMText nodes in the full depth of the sub-tree underneath this DOMNode, including attribute nodes, into a "normal" form where only markup (e.g., tags, comments, processing instructions, CDATA sections, and entity references) separates DOMText nodes, i.e., there are neither adjacent DOMText nodes nor empty DOMText nodes.

This can be used to ensure that the DOM view of a document is the same as if it were saved and re-loaded, and is useful when operations (such as XPointer lookups) that depend on a particular document tree structure are to be used.

Note: In cases where the document contains DOMCDATASections, the normalize operation alone may not be sufficient, since XPointers do not differentiate between DOMText nodes and DOMCDATASection nodes.

Since:
DOM Level 2
virtual void xercesc::DOMNode::release ( ) [pure virtual]

Called to indicate that this Node (and its associated children) is no longer in use and that the implementation may relinquish any resources associated with it and its associated children.

If this is a document, any nodes it owns (created by DOMDocument::createXXXX()) are also released.

Access to a released object will lead to unexpected result.

Exceptions:
DOMExceptionINVALID_ACCESS_ERR: Raised if this Node has a parent and thus should not be released yet.
virtual DOMNode* xercesc::DOMNode::removeChild ( DOMNode oldChild) [pure virtual]

Removes the child node indicated by oldChild from the list of children, and returns it.

Parameters:
oldChildThe node being removed.
Returns:
The node removed.
Exceptions:
DOMExceptionNO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
NOT_FOUND_ERR: Raised if oldChild is not a child of this node.
Since:
DOM Level 1
virtual DOMNode* xercesc::DOMNode::replaceChild ( DOMNode newChild,
DOMNode oldChild 
) [pure virtual]

Replaces the child node oldChild with newChild in the list of children, and returns the oldChild node.

If newChild is a DOMDocumentFragment object, oldChild is replaced by all of the DOMDocumentFragment children, which are inserted in the same order.

If the newChild is already in the tree, it is first removed.

Parameters:
newChildThe new node to put in the child list.
oldChildThe node being replaced in the list.
Returns:
The node replaced.
Exceptions:
DOMExceptionHIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not allow children of the type of the newChild node, or it the node to put in is one of this node's ancestors.
WRONG_DOCUMENT_ERR: Raised if newChild was created from a different document than the one that created this node.
NO_MODIFICATION_ALLOWED_ERR: Raised if this node or the new node is readonly.
NOT_FOUND_ERR: Raised if oldChild is not a child of this node.
Since:
DOM Level 1
virtual void xercesc::DOMNode::setNodeValue ( const XMLCh *  nodeValue) [pure virtual]

Sets the value of the node.

Any node which can have a nodeValue will also accept requests to set it to a string. The exact response to this varies from node to node -- Attribute, for example, stores its values in its children and has to replace them with a new Text holding the replacement value.

For most types of Node, value is null and attempting to set it will throw DOMException(NO_MODIFICATION_ALLOWED_ERR). This will also be thrown if the node is read-only.

See also:
getNodeValue
Since:
DOM Level 1
virtual void xercesc::DOMNode::setPrefix ( const XMLCh *  prefix) [pure virtual]

Set the namespace prefix of this node.

Note that setting this attribute, when permitted, changes the nodeName attribute, which holds the qualified name, as well as the tagName and name attributes of the DOMElement and DOMAttr interfaces, when applicable.

Note also that changing the prefix of an attribute, that is known to have a default value, does not make a new attribute with the default value and the original prefix appear, since the namespaceURI and localName do not change.

Parameters:
prefixThe prefix of this node.
Exceptions:
DOMExceptionINVALID_CHARACTER_ERR: Raised if the specified prefix contains an illegal character.
NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
NAMESPACE_ERR: Raised if the specified prefix is malformed, if the namespaceURI of this node is null, if the specified prefix is "xml" and the namespaceURI of this node is different from "http://www.w3.org/XML/1998/namespace", if this node is an attribute and the specified prefix is "xmlns" and the namespaceURI of this node is different from "http://www.w3.org/2000/xmlns/", or if this node is an attribute and the qualifiedName of this node is "xmlns".
Since:
DOM Level 2
virtual void xercesc::DOMNode::setTextContent ( const XMLCh *  textContent) [pure virtual]

This attribute removes any possible children this node may have and, if the new string is not empty or null, replaced by a single DOMText node containing the string this attribute is set to.

No parsing is performed, the input string is taken as pure textual content.

Exceptions:
DOMExceptionNO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
See also:
getTextContent
Since:
DOM Level 3
virtual void* xercesc::DOMNode::setUserData ( const XMLCh *  key,
void *  data,
DOMUserDataHandler handler 
) [pure virtual]

Associate an object to a key on this node.

The object can later be retrieved from this node by calling getUserData with the same key.

Deletion of the user data remains the responsibility of the application program; it will not be automatically deleted when the nodes themselves are reclaimed.

Both the parameter data and the returned object are void pointer, it is applications' responsibility to keep track of their original type. Casting them to the wrong type may result unexpected behavior.

Parameters:
keyThe key to associate the object to.
dataThe object to associate to the given key, or null to remove any existing association to that key.
handlerThe handler to associate to that key, or null.
Returns:
Returns the void* object previously associated to the given key on this node, or null if there was none.
See also:
getUserData
Since:
DOM Level 3

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/PlatformUtils_8hpp__incl.map0000644000151400015140000000003511653571065017602 00000000000000 XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMImplementationLS__inherit__graph.png0000644000151400015140000001213211653571066024733 00000000000000‰PNG  IHDRÝuEésÎbKGDÿÿÿ ½§“IDATxœíœiXWÛÇO  "HV¡"(TÁ·öqKAÄZ•EPv• Òº\*q¥Öª¸q© QT¬àAÀ­¶‚ ‹RS@­^‚â ˆ²Íûažwži 1,šÏïÓYîûžûœùgΙÌ\CB@ CGÛ @ u !"P—"u !"d|eúôéÚÊÙ¸qãÔ©SÑò¿t™ŸŸÿå—_Òh4mdù¬)**Z²d V%+uûûûO›6í£fPTT„¯Âý%„ˆ@]BˆÔ%„ˆ@]BˆÔ%„ˆôB]Òq,X°`ÇŽÍÍÍx±XÌd2#""¾ýöÛ¥K—ž:uJ.—c¾!!!Jï²ÄÆÆÒéôºº:Ô-tºº::Þe÷Dײêp*D"QJJJ``àŒ3BBBÒÒÒ$IRê…º$%%?>33366V(FFF ´«µµ5**êñãÇQQQGŽ ÎËË‹‰‰Q(¨A}}ýÓ§O±P---•••ZC÷àr¹sçÎÕÐÀÐÐ000°GŽ{àÀêêê­[·²X¬µk×3™Ì.Ä麤P(¤R©£GþùçŸ---333Ñ®“'OR(”}ûö?ÞÆÆfòäÉL&³¾¾þêÕ«¨››þ¿´’’’Q£F}ü!t…BÁçó54066ŽŒŒì‘ãÞ¾}{É’%ŽŽŽ ÅÕÕuÅŠÅÅÅ]ˆÓ9]–””Ì›7¯¥¥PPP*‹2™ŒÉdúøøøøø0™L™L†. l6{þüùiiióçÏ÷ööÞ±cvéjï…"""ÂÓÓ3((èÚµk¹\Þ¡;~õQ³‘H¤9s攕•¡Õ¼¼¼°°0ÿ ¼oß¾ ,ÈËËC«Ó¦M+**–ò7n`Ç” ÓéW¯^ ÷öö>}úôµk×gÍšuüøq,¥âââÐÐPŸƒJ¥R¼{‡ÃWSW~~~xxøœ9sΞ= øá‡¾¾¾¨Wiié’%K¼¼¼üüüNŸ>­d€Ÿ=@°sçιsçúûû§¤¤ «pûøª000ÈÍÍÅïêêÊb±ÔØ«¢sºüúë¯ÝÜÜ’““y<^rrò† úöí ÈÊÊâr¹‡Þ»w/›ÍNKKCíÏ;·nݺÊÊÊ›7oîØ±#11ñÕ«Who{/±Xïíí}öìÙÐÐÐ]»v‰Å⬬¬Ý)JLLLûr{lll^¿~ MMMJ/_¾DË#FŒ‰DèR. ÙlöþóU‘ïÝ»—’’™ššZZZzìØ±èèèôôtìÄäææîØ±cûöíwîÜA¡jÒÔÇTåuûöíää䨨¨Ã‡·´´:t hmmݼy³££cFFFtttjjjss3ÞÏþýû™LfBBByyù™3g:Œ¯jB ›Íž7oƒÁ`±X ª,ÕÓéu|ùòål6;&&fîܹNNNhãÕ«WW®\I£Ñìíí£¢¢îÞ½‹¶GFFŽ=º  `ñâÅöööƒŽ>|¸*/©TŠ ˆH$Ò××÷òòºtéRŸ>}®\¹Ò¡{ÿþýgÍšÕ¾ÜH$¶¿ÔÑÑ™2e º”—––º¸¸ 0@•ãüùó <==AAA^^^ìÌEGGÛØØ8;;ÿý÷Ø%Yý¤©©ÊËÛÛÛÐÐpÆŒ¥\__ÿرc+V¬055E_~ …G&“]¿~}ùòå–––ööö‹-ÂrVÏØ±cY,Öþýû]\\þøã   ‚‚UÆjP~>þ^ ¿ûî»_ýuïÞ½Xc}}½ŸŸVíß¿?Z°µµ444ØØØ -vvvvvvª¼ŒŒŒ³²²ÒÒÒ†4aÂUîšÃáp¬¬¬ÐäXSSãææ†7¨©©:t(V6mÚîÝ»#""Ô,â(2™¬TÆÀ2·µµmllÄw©š4õ1UyQ©ÔöGG!“ÉgÏž="‘ÈÑÑQÍpx<žB¡@ç `mmå¬&>†X,.))™6mš³³³³³shhè‰'˜L¦»»»¯é´.ß¼y“““ãæævèСõë×£ÆÆÆ‰‰‰ÖÖÖàÿ×ÊÿF'“¦¦¦õõõƒÔÔÔ”••…„„tèÕÖÖ¦P(âããe2YAAÁúõësssU¹k‚ /^œ8q"Zõðð8yòäèÑ£±-¦X,>sæ þd»¸¸´¶¶Þ¿ÿÏ?ÿ\³fMg§‡Ã±··¼zõÊÔÔߥjÒԣʋD"©rikk‹ÿꫯ¤R)v‡×.—‹þø_¿~ÊQ}| A¶mÛfkk‹î”H$Ò¸qã.]º¤É¸”èÜ:Ž È®]»|}}7mÚtïÞ½’’´}òäÉ©©© Ïž=[»vmnn.ÞËÓÓóèÑ£µµµµµµû÷ïÇöí½H$ƒÁ¸yó¦P(”J¥d2¹OŸ>ªÜ…Bá•+WÚ—ÍÍÍMMMoß¾­¬¬Ü´i—Ë @»ÂÃÃy<ÞêÕ«ïÞ½ËápnݺM¥Rñÿª Kù¾}ûœ)J§¦H‰¤¤¤ºººÇ=zTéõVõ“¦ŠNy‰D"€T*•Édd2Y"‘ ûÑÖÖV¼™L¦Óéàr¹µµµÇŽóððPgŒ~ýúyzzþôÓOeee\.÷áÇ)))]¸X‚Î^/sss›››ÉdòªU«öíÛçââbdd‘””´dɉ4eÊ”¨¨¨·oßb^ÁÁÁb±˜Á`ˆÅâ‰'FEE¡íí½ôõõãââ>üæÍ++«-[¶èëë«ronnÞ³gº­Ä—Ë–-C 4ÍÕÕõÈ‘#øUòÈ‘#iiiL&óõë×–––îîîþþþzzzø‘Òéô .øøøtzFÿ‡‡Çš5kÄb±»»{pp0~)o?|Mjèeaaáâââçç÷Ûo¿FGGoÛ¶­_¿~AAAîîîk×®ÍÊÊ ðŽ+W®LJJZºt©žžÞ7ß|¬&lžQ ×®]›žžžššZWWgbbB§Ó.\¨É¸” áŸmH¤-[¶À÷/{„ºººÂÂBm'òi@§ÓY,¶¬õÎÿÕ!Ÿ:P—ŠþýûÏž=[ÛY|ª@]~((ÊêÕ«µÅ§ Ô%„ˆ@]BˆÔ%„ˆ@]BˆÔ%„ˆ@]ö¿Óv ½åçééé—/_ÖJ*Ÿ:£LL“Ébm'Òø—.ýýýµ•ǧŽHD~ýÚ¨_¿aƒ©|g¢{{ûAƒaUüŽu°{÷ÕÄÄkvv¦¥¥µKoî/{†ÌÌrÀ‹ï=z­í\zP—=À_½äpx==Ýóçïi;ÞÔe›Ë&“uR©<3³\¡€[£îuÙ]ärEVV¹Löß/v46¶Ü½ûL»)õ .»Kii ׊UõôtsrØZ̧wuÙ]²³Ùdòÿ¦Q*•_¸À–JåZL©uÙ-$ÙÅ‹2™ßÈç·Ý¼ùD[)õ .»ÅõëD¢6¥F2™” ïÊ»Ôe·Èξ‡ÿÔŠL¦øí·ÊÖÖ®|_‚uÙu‚¶k×ÊåŠö]R©}:ý(èÂw³ 66&J-ffFvv¦C:\Ç!DêBD .!DêBD .!DêBD .!DêBD .!DêBD .!DêBD .!DêBD .!DêBD .!DêBD .!DêBD .!DêBD .!DêBD .!DêBD .!DêBD .!DêBD .!DêBD4ú.ë‘#G>t½ƒüüüúú»Ú΂èxxxØÛÛ¿ÇÑ€’í'žMG§¶³ø`±X¦ß±f±X4]Èç‰DÒÄ î/!DêBD .!DêBD .!DêBD>#]’p|ñÅaaax¡PÈ`0FŽidd4nܸíÛ·Ëd2Ì×ÑÑQé¯Ü™3g’H¤ššÔ-tšš ÿ@ù˜h1«ÏH—€’’.—ËápÒÒÒø|þ˜1cš››Ñ®–––±cÇ–——'$$Ü»w/..îÔ©SÓ§O—Ëå¨ÁóçÏ+++±P<ïæÍ›ZC÷xöì•JÕЀB¡ÄÆÆ~”¼”ù¼tifffaaammM§ÓsrrìííÑ®­[·š™™xyy :Ô××÷îݻϟ?OKKC <<<233±P/^œ:uªÆÐ= Å»wï44 R©;wîü(y)Ó3º¼xñ¢µµ5Çœ9sfèСB¡ •J †¹¹9Fc0R©] lmm‹ŠŠ¶lÙbkkkff†]ºÚ{.]ºäêêÚ·o_{{ûôôt€L&ëпú¨Y‰H$ÒÒ¥K¯\¹‚V3226oÞ¬««‹ôïߟÁ`ddd UÿsçÎaKyVVÖ¼yóTE>~ü¸³³³™™ÙÎ;ÓÓÓlll¼iÓ&,¥ . 6ŒF£­X±¢­­ ïÞáðÕÇTãuêÔ)ggçîÚµ 0qâD€……êuùòåÑ£GXZZ¢Äàg¯¹¹yáÂ…T*ÕÆÆ&&&F,w¿ÇÐðùø{Ÿi†………‡‡×××›››ß¹smLHHðóó{ùòeUUÕ˜1cÖ­[W]] ˜9sæõë×ããã‡^UUuÿþý &ÄÄĨò}úôa2™\.÷رcd2Y ìÞ½»C÷æææÔÔÔöe@uu5>çòòr …‚ ú‹jllTTqq±¹¹9êûøñc ‹¿þú k``ðöí[,&>8 00Ïç=zÀçó> xûö-:žžžOž<)++sppˆGU ÿ½1ÕxÍ›7Ç㥦¦Þ½{‡?ŸÏ×××_¼x1‡ÃA~oÞ¼ÁàËÁÁÁîîîOŸ>­ªª1bD|||‡ñߣ$Í´„ Hé’ÇãÙØØ¸ºº¢£899q¹\´œ——7jÔ(t¨UUU‚ 6,;;íýû￱r{¯¦¦&==½={öðx<…BÑÒÒ"—ËU¹«EguYZZJ¥R1ßü1..AŒŒŒéÓ§ãc*é’Íf#"‘H”ÊÕÕÕø@„Åb988àÐ~øï©Æ«°°°ýÑQ³¶¶¶G ¹\~ãÆöXY"‘èêê>xðmÏÎÎvppè0¾úS€h¬ËÛ_R(”ÈÈȇFGGcÏŸ?·´´Do§OŸ^[[‹¶;99^¼xáè舶8;;ûøø¨ò211),,,++³±±™:uê­[·tttT¹kNuuõ!CÐä-,,***” ***ÜÜܰª¿¿ff&‚ jq###€žžžRËÜÉɉÃáà»TMšú˜ª¼¬¬¬ÚE__ÿÉ“'^^^nnn'NœP3œ††¹\ŽÎÀÁÁËYMüîÐcº|õêURR’‡‡Çš5k°F*•Šý†x<^YYÚŽÃÊÊêùóçhKEEÅ/¿ü¢ÊK$)ŠÌÌ̦¦¦ˆˆˆÙ³g755©r×ARRRfÍš…Vƒƒƒ·nÝŠÝ}„BaBB‚——Ö2iÒ¤–––Û·oçååy{{wêpJ —"À“'OÐS‹¡jÒÔ£ÊKGGå)‰D ƒÍf:tHMpsss]]ÝgÏž¡Õ§OŸZ[[¿7~wè™  …bñâÅË—/?sæL~~þ¥K—Ðv__߸¸¸/^TUUyyy%''ã½BCC7lØðàÁƒ,[¶ìÅ‹ª¼H$’§§çùóçù|¾D"ÑÓÓ300PåþÏ?ÿ ›0¥2 ±±±¾¾¾®®îÆ>>>µµµ«W¯F»6oÞüæÍww÷ßÿ½ºº:''g„ ÖÖÖøË¿®®®ŸŸ_TTÔøñãi4ZwflåÊ•555åååëׯ Áw©Ÿ4UtÊK ÚÚÚ$‰¾¾¾H$Ú²e  ¥¥o€¡§§7þü+VÔÖÖ>xð`ãÆÁÁÁo§yïJ¯ÉžààÁƒ#GŽ”H$‚äääXZZ655!Âçó-Zdbbbjj) ñÛ±XceeellÈãñÐöö^‚°X¬!C†èëë;99]¸pA»ª;~Ôƒ nhhÀB ¬Y³fĈÇß¶m[kk+æ‹^ŠŠŠÉÉÉJíàßûK5e4¥£GÚÙÙQ©ÔåË—‹D"¥Û‘öÃo| ½¤Ré¤I“ ÑÆ}ûö 8pРA‡ ¤Ñhx|VMMM¡¡¡¦¦¦–––«V­‰Dj²RÃ{µ„BR:aB"‘à{Á=EMMMûGGŸjéóú_ò©uù±0`@TT”¶³ :P—Æd2µѺ„¨Kº„¨Kº„M¿·QPP€½à|h4Õ%ütäc¢ÑsHä#÷—"u !"P—"u !"ÿ¼·=²Ó IEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMImplementationSource_8hpp__incl.map0000644000151400015140000000003511653571065021503 00000000000000 XQilla-2.3.0/docs/dom3-api/inherit_graph_18.md50000644000151400015140000000004011653571065015731 00000000000000b3634c95e842aed3baff2019643ce379XQilla-2.3.0/docs/dom3-api/DOMLSException_8cpp__incl.md50000644000151400015140000000004011653571065017431 00000000000000bb1ea0c7a25a42f486ce18d6444b2438XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMComment__inherit__graph.md50000644000151400015140000000004011653571065023004 00000000000000e5cfbb8b26b33a8af0085cac2eea1349XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMImplementationRegistry.html0000644000151400015140000002152011653571065023204 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMImplementationRegistry Class Reference

#include <DOMImplementationRegistry.hpp>

List of all members.

Static Public Member Functions

Functions introduced in DOM Level 3
static DOMImplementationgetDOMImplementation (const XMLCh *features)
 Return the first registered implementation that has the desired features, or null if none is found.
static DOMImplementationListgetDOMImplementationList (const XMLCh *features)
 Return the list of registered implementation that have the desired features.
static void addSource (DOMImplementationSource *source)
 Register an implementation.

Member Function Documentation

static void xercesc::DOMImplementationRegistry::addSource ( DOMImplementationSource source) [static]

Register an implementation.

Parameters:
sourceA DOMImplementation Source object to be added to the registry. The registry does NOT adopt the source object. Users still own it.
Since:
DOM Level 3
static DOMImplementation* xercesc::DOMImplementationRegistry::getDOMImplementation ( const XMLCh *  features) [static]

Return the first registered implementation that has the desired features, or null if none is found.

Parameters:
featuresA string that specifies which features are required. This is a space separated list in which each feature is specified by its name optionally followed by a space and a version number. This is something like: "XML 1.0 Traversal 2.0"
Returns:
An implementation that has the desired features, or null if this source has none.
Since:
DOM Level 3
static DOMImplementationList* xercesc::DOMImplementationRegistry::getDOMImplementationList ( const XMLCh *  features) [static]

Return the list of registered implementation that have the desired features.

Parameters:
featuresA string that specifies which features are required. This is a space separated list in which each feature is specified by its name optionally followed by a space and a version number. This is something like: "XML 1.0 Traversal 2.0"
Returns:
A DOMImplementationList object that contains the DOMImplementation that have the desired features
Since:
DOM Level 3

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/classXQillaNSResolver.html0000644000151400015140000002715011653571066017274 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

XQillaNSResolver Class Reference

The XQillaNSResolver interface extends the DOMXPathNSResolver providing the ability to add additional namespace bindings. More...

#include <XQillaNSResolver.hpp>

Inheritance diagram for XQillaNSResolver:

List of all members.

Public Member Functions

Non-standard Extension
virtual void addNamespaceBinding (const XMLCh *prefix, const XMLCh *uri)=0
 Non-standard extension.
virtual const XMLCh * lookupNamespaceURI (const XMLCh *prefix) const =0
 Look up the namespace URI associated to the given namespace prefix.
virtual const XMLCh * lookupPrefix (const XMLCh *uri) const =0
 Non-standard extension.
virtual void release ()=0
 Called to indicate that this object (and its associated children) is no longer in use and that the implementation may relinquish any resources associated with it and its associated children.

Protected Member Functions

Hidden constructors
 XQillaNSResolver ()

Detailed Description

The XQillaNSResolver interface extends the DOMXPathNSResolver providing the ability to add additional namespace bindings.

Since:
DOM Level 3

Constructor & Destructor Documentation

XQillaNSResolver::XQillaNSResolver ( ) [inline, protected]

Member Function Documentation

virtual void XQillaNSResolver::addNamespaceBinding ( const XMLCh *  prefix,
const XMLCh *  uri 
) [pure virtual]

Non-standard extension.

XQilla requires additional bindings of namespaces. This method will bind the given prefix to the associated namespace.

Parameters:
prefixof type XMLCh - The prefix to bind.
URIof type XMLCh - The associated namespace.

Implements xercesc::DOMXPathNSResolver.

virtual const XMLCh* XQillaNSResolver::lookupNamespaceURI ( const XMLCh *  prefix) const [pure virtual]

Look up the namespace URI associated to the given namespace prefix.

The XPath evaluator must never call this with a null or empty argument, because the result of doing this is undefined.

Parameters:
prefixof type XMLCh - The prefix to look for.
Returns:
the associated namespace URI or null if none is found.

Implements xercesc::DOMXPathNSResolver.

virtual const XMLCh* XQillaNSResolver::lookupPrefix ( const XMLCh *  uri) const [pure virtual]

Non-standard extension.

XPath2 implementations require a reverse lookup in the static context. Look up the prefix associated with the namespace URI The XPath evaluator must never call this with a null or empty argument, because the result of doing this is undefined.

Parameters:
URIof type XMLCh - The namespace to look for.
Returns:
the associated prefix or null if none is found.

Implements xercesc::DOMXPathNSResolver.

virtual void XQillaNSResolver::release ( ) [pure virtual]

Called to indicate that this object (and its associated children) is no longer in use and that the implementation may relinquish any resources associated with it and its associated children.

Access to a released object will lead to unexpected result.

Implements xercesc::DOMXPathNSResolver.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/DOMEntityReference_8hpp_source.html0000644000151400015140000002043711653571065021043 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMEntityReference.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  * 
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  * 
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMEntityReference.hpp 527149 2007-04-10 14:56:39Z amassari $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMENTITYREFERENCE_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMENTITYREFERENCE_HPP
00024 
00025 #include <xercesc/util/XercesDefs.hpp>
00026 #include <xercesc/dom/DOMNode.hpp>
00027 
00028 XERCES_CPP_NAMESPACE_BEGIN
00029 
00030 
00057 class CDOM_EXPORT DOMEntityReference: public DOMNode {
00058 protected:
00059     // -----------------------------------------------------------------------
00060     //  Hidden constructors
00061     // -----------------------------------------------------------------------
00064     DOMEntityReference() {}
00065     DOMEntityReference(const DOMEntityReference &other) : DOMNode(other) {}
00067 
00068 private:
00069     // -----------------------------------------------------------------------
00070     // Unimplemented constructors and operators
00071     // -----------------------------------------------------------------------
00074     DOMEntityReference & operator = (const DOMEntityReference &);
00076 
00077 public:
00078     // -----------------------------------------------------------------------
00079     //  All constructors are hidden, just the destructor is available
00080     // -----------------------------------------------------------------------
00087     virtual ~DOMEntityReference() {};
00089 
00090 };
00091 
00092 XERCES_CPP_NAMESPACE_END
00093 
00094 #endif
00095 
00096 
XQilla-2.3.0/docs/dom3-api/classAutoDelete.html0000644000151400015140000002423711653571065016154 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

AutoDelete< TYPE > Class Template Reference

#include <XPath2MemoryManager.hpp>

List of all members.

Public Member Functions

 AutoDelete (TYPE *p)
 ~AutoDelete ()
TYPE & operator* () const
TYPE * operator-> () const
 operator TYPE * () const
TYPE * get () const
TYPE * adopt ()
TYPE * swap (TYPE *p)
void set (TYPE *p)

template<class TYPE>
class AutoDelete< TYPE >


Constructor & Destructor Documentation

template<class TYPE>
AutoDelete< TYPE >::AutoDelete ( TYPE *  p) [inline]
template<class TYPE>
AutoDelete< TYPE >::~AutoDelete ( ) [inline]

Member Function Documentation

template<class TYPE>
TYPE* AutoDelete< TYPE >::adopt ( ) [inline]
template<class TYPE>
TYPE* AutoDelete< TYPE >::get ( ) const [inline]
template<class TYPE>
AutoDelete< TYPE >::operator TYPE * ( ) const [inline]
template<class TYPE>
TYPE& AutoDelete< TYPE >::operator* ( ) const [inline]
template<class TYPE>
TYPE* AutoDelete< TYPE >::operator-> ( ) const [inline]
template<class TYPE>
void AutoDelete< TYPE >::set ( TYPE *  p) [inline]
template<class TYPE>
TYPE* AutoDelete< TYPE >::swap ( TYPE *  p) [inline]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/DOMNodeList_8hpp__incl.md50000644000151400015140000000004011653571065016762 000000000000000d5193d0fc3ac0921437e20729d64addXQilla-2.3.0/docs/dom3-api/inherit_graph_8.png0000644000151400015140000000442211653571066015760 00000000000000‰PNG  IHDRå(ŽÝª+bKGDÿÿÿ ½§“ÇIDATxœíœiLSM†§"hª(KJWÙ T$!!†%%ÆDö *& Q0 â—€ý¡  P ‰ "‹JD,U -PÃÞb …ö¼?&99o7?å+™ëלçÌýÌ33wÛ)=„a@ Œ„5+]ñ ¿"Œ äW„1üŠ0&Öj\_ºt©½½}EJA ´ijj"^júµ§§§··7 à/–„@è`xx¸££C#¨éW@@@@uuõ_) ÐKuuu\\œF_Æò+˜@~EȯcùaL¬Z¿’lÙ²%11qrr’ØA.—s8ssó;w^½zuaa׺¸¸h< N"‘ìËC H¤eËÿË«J{)þèìV­_oÞ¼)--•H$¾¾¾333ð–T*ݱcGggg~~þ‡233+**BCCU*ì  ?}ú„§‹ÅÆø3ÊÀÀ…BYb ‹3gÎüþ †ó,Z’aV³_©Tª “ÉܳgO]]££ã­[·à­ÜÜ\*•ÚÜÜÌb±\]]###ß¿/ KKKa‡šš•L&[·n]QQÑèèèýû÷×®]+“É®_¿®S>33S\\¬Ýðù|b͆ÁWÚä䤯¤^¿~M§Ó¡¶··×ÆÆæãÇ0-™LžššÂs“âãã%III 66V"‘Ü»w055W ,,¬¯¯¯££ÃÙÙ9''õMÑœTÑÑÑb±¸¸¸0==MH"‘˜™™%%%ŒŒÀ—åÄı±Íf³ƒƒƒûûû¹\®——WNNŽÎü:×Ï£s‰£¦ªªJ»ç2ý*‹íìì¼½½áL îî£°ÝÔÔ´mÛ6X—ËÅ0ÌÍÍ­¶¶Þýòå ÞÖV‰D"SSÓ7nˆÅbµZ-•JU*•>¹>–á×·oßR(\{üøñÌÌL ÃÊËËCCC‰95üÚÕÕ…a˜R©Ôhóù|â `VUUåììLÜ3íé/šÓ€ª¥¥E{tØmnnîëׯ2™L¥RµµµiwÀÛJ¥ÒÄÄ„ÇãÁxmm­³³³Îü:×Ï£sÓ¯Ë<¿ZXX$''þüùرcxP(2 ø•<44tppÆÝÝÝCCC...0âáá¡OeiiÙÒÒÒÑÑaggôòåË5kÖè“/>Ÿïää‹·±±éîîÖèÐÝÝíçç‡_ÆÄÄÔÔÔ`fà0177˜ššj´qðÊÝÝÝGFFˆ·ô-šáœúT¶¶¶Ú£CÌÌÌúúúX,–ŸŸßÇ Lg||\¥RÁµ8;;ã5ȯÎ}\ŠÐËÔß¹s'$$$==R(ü¥&‹ñ‡kàôlmm…B!Œtww_¹rEŸJ¡P¨Õêšš‘HtäÈ‘}ûö‰D"}ò%‚aØÝ»w÷îÝ /Ùlvnn.þ×€\.ÏÏÏg±Xx$00P*•¾zõª©©iÿþý¿4œðMÐ××·GߢFŸÊ€! Ell,‡Ãéêê*,,4œN§›˜˜ ÀËþþ~&“¹h~#jïãÒå:YŽ_ÕjuRRRjjjeeåóçÏa<22233shhˆËå²X¬‚‚¢*!!áüùó<Çã8qbhhHŸŠD"………=~üX"‘(•JSSS2™¬OþãÇxÈÓh&''ÇÆÆ¾ÿÞÖÖ188xúôix+++kbb"88øÙ³g|>¿®®ÎßߟÉd?.LLL¢¢¢RRRvíÚE£Ñ–±P8'OžçÎ;pàñ–áEÓÇ/©d2`nnN©Tš™™)Šììl€T*%vÀ155‹‹KKKäñx.\`³ÙòÃuÆÁã:÷Q爿€Æù`)ç×Û·oûøø(•J Ãêêê †H$Â0L"‘>|ØÒÒÒÚÚ:99Y.—+³³³¶¶¶›7oŽ‹Å0®­‚g'''333ww÷úúzr}߈s´··g³ÙãããÄYÈd²ôôt///2™ìééyùòåŸ?âZøîÕÚÚ (((Јƒÿž_ ´aI%%%ÿüó…BIMMU(_ƒ´§¿hþ%ªæçç7n܃7oÞ´²²²··/,,Œ§ÑhÄĪD"QBB‚µµ5ƒÁ8uê”B¡ÐW‰¶£ˆy´÷Q£$è<¿’4†Œ ç_ÿWíŸÊK>ÿª±t«ù÷ÄêùõϲiÓ¦”””•®bõ€üúg¡ÑhEEE+]ÅêùaL ¿"Œ äW„1üŠ0&_Æò+˜Ðñÿ]ÚÛÛCCCÿ~)‘ññqí ¦_áãßÄŠcii ŸD%¢ùüñÿ :¿"Œ äW„1üŠ0&_ÆÄ¿N•‰FpˆIEND®B`‚XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMLSInput.html0000644000151400015140000007344711653571065020043 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMLSInput Class Reference

This interface represents a single input source for an XML entity. More...

#include <DOMLSInput.hpp>

List of all members.

Public Member Functions

Destructor
virtual ~DOMLSInput ()
 Destructor.
Functions introduced in DOM Level 3
virtual const XMLCh * getStringData () const =0
 String data to parse.
virtual InputSource * getByteStream () const =0
 Returns the byte stream for this input source.
virtual const XMLCh * getEncoding () const =0
 An input source can be set to force the parser to assume a particular encoding for the data that input source reprsents, via the setEncoding() method.
virtual const XMLCh * getPublicId () const =0
 Get the public identifier for this input source.
virtual const XMLCh * getSystemId () const =0
 Get the system identifier for this input source.
virtual const XMLCh * getBaseURI () const =0
 Get the base URI to be used for resolving relative URIs to absolute URIs.
virtual void setStringData (const XMLCh *data)=0
 Sets the UTF-16 string for this input source.
virtual void setByteStream (InputSource *stream)=0
 Sets the byte stream for this input source.
virtual void setEncoding (const XMLCh *const encodingStr)=0
 Set the encoding which will be required for use with the XML text read via a stream opened by this input source.
virtual void setPublicId (const XMLCh *const publicId)=0
 Set the public identifier for this input source.
virtual void setSystemId (const XMLCh *const systemId)=0
 Set the system identifier for this input source.
virtual void setBaseURI (const XMLCh *const baseURI)=0
 Set the base URI to be used for resolving relative URIs to absolute URIs.
Non-standard Extension
virtual void setIssueFatalErrorIfNotFound (bool flag)=0
 Indicates if the parser should issue fatal error if this input source is not found.
virtual bool getIssueFatalErrorIfNotFound () const =0
 Get the flag that indicates if the parser should issue fatal error if this input source is not found.
virtual void release ()=0
 Called to indicate that this DOMLSInput is no longer in use and that the implementation may relinquish any resources associated with it.

Protected Member Functions

Hidden constructors
 DOMLSInput ()

Detailed Description

This interface represents a single input source for an XML entity.

This interface allows an application to encapsulate information about an input source in a single object, which may include a public identifier, a system identifier, a byte stream (possibly with a specified encoding), and/or a character stream.

There are two places that the application will deliver this input source to the parser: as the argument to the parse method, or as the return value of the DOMLSResourceResolver.resolveResource method.

The DOMLSParser will use the DOMLSInput object to determine how to read XML input. If there is a character stream available, the parser will read that stream directly; if not, the parser will use a byte stream, if available; if neither a character stream nor a byte stream is available, the parser will attempt to open a URI connection to the resource identified by the system identifier.

A DOMLSInput object belongs to the application: the parser shall never modify it in any way (it may modify a copy if necessary).

See also:
DOMLSParser::parse
DOMLSResourceResolver::resolveResource
Since:
DOM Level 3

Constructor & Destructor Documentation

xercesc::DOMLSInput::DOMLSInput ( ) [inline, protected]
virtual xercesc::DOMLSInput::~DOMLSInput ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual const XMLCh* xercesc::DOMLSInput::getBaseURI ( ) const [pure virtual]

Get the base URI to be used for resolving relative URIs to absolute URIs.

If the baseURI is itself a relative URI, the behavior is implementation dependent.

Returns:
The base URI.
See also:
setBaseURI
Since:
DOM Level 3
virtual InputSource* xercesc::DOMLSInput::getByteStream ( ) const [pure virtual]

Returns the byte stream for this input source.

See also:
InputSource
virtual const XMLCh* xercesc::DOMLSInput::getEncoding ( ) const [pure virtual]

An input source can be set to force the parser to assume a particular encoding for the data that input source reprsents, via the setEncoding() method.

This method returns name of the encoding that is to be forced. If the encoding has never been forced, it returns a null pointer.

Returns:
The forced encoding, or null if none was supplied.
See also:
setEncoding
Since:
DOM Level 3
virtual bool xercesc::DOMLSInput::getIssueFatalErrorIfNotFound ( ) const [pure virtual]

Get the flag that indicates if the parser should issue fatal error if this input source is not found.

Returns:
True if the parser should issue fatal error if this input source is not found. False if the parser issue warning message instead.
See also:
setIssueFatalErrorIfNotFound
virtual const XMLCh* xercesc::DOMLSInput::getPublicId ( ) const [pure virtual]

Get the public identifier for this input source.

Returns:
The public identifier, or null if none was supplied.
See also:
setPublicId
Since:
DOM Level 3
virtual const XMLCh* xercesc::DOMLSInput::getStringData ( ) const [pure virtual]

String data to parse.

If provided, this will always be treated as a sequence of 16-bit units (UTF-16 encoded characters). It is not a requirement to have an XML declaration when using stringData. If an XML declaration is present, the value of the encoding attribute will be ignored.

virtual const XMLCh* xercesc::DOMLSInput::getSystemId ( ) const [pure virtual]

Get the system identifier for this input source.

If the system ID is a URL, it will be fully resolved.

Returns:
The system identifier.
See also:
setSystemId
Since:
DOM Level 3
virtual void xercesc::DOMLSInput::release ( ) [pure virtual]

Called to indicate that this DOMLSInput is no longer in use and that the implementation may relinquish any resources associated with it.

Access to a released object will lead to unexpected result.

virtual void xercesc::DOMLSInput::setBaseURI ( const XMLCh *const  baseURI) [pure virtual]

Set the base URI to be used for resolving relative URIs to absolute URIs.

If the baseURI is itself a relative URI, the behavior is implementation dependent.

Parameters:
baseURIThe base URI.
See also:
getBaseURI
Since:
DOM Level 3
virtual void xercesc::DOMLSInput::setByteStream ( InputSource *  stream) [pure virtual]

Sets the byte stream for this input source.

See also:
BinInputStream
virtual void xercesc::DOMLSInput::setEncoding ( const XMLCh *const  encodingStr) [pure virtual]

Set the encoding which will be required for use with the XML text read via a stream opened by this input source.

This is usually not set, allowing the encoding to be sensed in the usual XML way. However, in some cases, the encoding in the file is known to be incorrect because of intermediate transcoding, for instance encapsulation within a MIME document.

Parameters:
encodingStrThe name of the encoding to force.
Since:
DOM Level 3
virtual void xercesc::DOMLSInput::setIssueFatalErrorIfNotFound ( bool  flag) [pure virtual]

Indicates if the parser should issue fatal error if this input source is not found.

If set to false, the parser issue warning message instead.

Parameters:
flagTrue if the parser should issue fatal error if this input source is not found. If set to false, the parser issue warning message instead. (Default: true)
See also:
getIssueFatalErrorIfNotFound
virtual void xercesc::DOMLSInput::setPublicId ( const XMLCh *const  publicId) [pure virtual]

Set the public identifier for this input source.

The public identifier is always optional: if the application writer includes one, it will be provided as part of the location information.

Parameters:
publicIdThe public identifier as a string.
See also:
getPublicId
Since:
DOM Level 3
virtual void xercesc::DOMLSInput::setStringData ( const XMLCh *  data) [pure virtual]

Sets the UTF-16 string for this input source.

virtual void xercesc::DOMLSInput::setSystemId ( const XMLCh *const  systemId) [pure virtual]

Set the system identifier for this input source.

The system id is always required. The public id may be used to map to another system id, but the system id must always be present as a fall back.

If the system ID is a URL, it must be fully resolved.

Parameters:
systemIdThe system identifier as a string.
See also:
getSystemId
Since:
DOM Level 3

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/DOMEntityReference_8hpp.html0000644000151400015140000000675411653571066017472 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMEntityReference.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <xercesc/dom/DOMNode.hpp>
Include dependency graph for DOMEntityReference.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMEntityReference
 DOMEntityReference objects may be inserted into the structure model when an entity reference is in the source document, or when the user wishes to insert an entity reference. More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMXPathExpression__inherit__graph.map0000644000151400015140000000035711653571066024612 00000000000000 XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMTreeWalker-members.html0000644000151400015140000001542411653571065022171 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMTreeWalker Member List

This is the complete list of members for xercesc::DOMTreeWalker, including all inherited members.
DOMTreeWalker()xercesc::DOMTreeWalker [inline, protected]
DOMTreeWalker(const DOMTreeWalker &)xercesc::DOMTreeWalker [inline, protected]
firstChild()=0xercesc::DOMTreeWalker [pure virtual]
getCurrentNode()=0xercesc::DOMTreeWalker [pure virtual]
getExpandEntityReferences()=0xercesc::DOMTreeWalker [pure virtual]
getFilter()=0xercesc::DOMTreeWalker [pure virtual]
getRoot()=0xercesc::DOMTreeWalker [pure virtual]
getWhatToShow()=0xercesc::DOMTreeWalker [pure virtual]
lastChild()=0xercesc::DOMTreeWalker [pure virtual]
nextNode()=0xercesc::DOMTreeWalker [pure virtual]
nextSibling()=0xercesc::DOMTreeWalker [pure virtual]
parentNode()=0xercesc::DOMTreeWalker [pure virtual]
previousNode()=0xercesc::DOMTreeWalker [pure virtual]
previousSibling()=0xercesc::DOMTreeWalker [pure virtual]
release()=0xercesc::DOMTreeWalker [pure virtual]
setCurrentNode(DOMNode *currentNode)=0xercesc::DOMTreeWalker [pure virtual]
~DOMTreeWalker()xercesc::DOMTreeWalker [inline, virtual]
XQilla-2.3.0/docs/dom3-api/inherit_graph_15.md50000644000151400015140000000004011653571065015726 00000000000000bd3605d085e76201f9111dbbbd258d6eXQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMImplementation.html0000644000151400015140000006460611653571066021470 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMImplementation Class Reference

The DOMImplementation interface provides a number of methods for performing operations that are independent of any particular instance of the document object model. More...

#include <DOMImplementation.hpp>

Inheritance diagram for xercesc::DOMImplementation:

List of all members.

Public Member Functions

Destructor
virtual ~DOMImplementation ()
 Destructor.
Functions introduced in DOM Level 1
virtual bool hasFeature (const XMLCh *feature, const XMLCh *version) const =0
 Test if the DOM implementation implements a specific feature.
Functions introduced in DOM Level 2
virtual DOMDocumentTypecreateDocumentType (const XMLCh *qualifiedName, const XMLCh *publicId, const XMLCh *systemId)=0
 Creates an empty DOMDocumentType node.
virtual DOMDocumentcreateDocument (const XMLCh *namespaceURI, const XMLCh *qualifiedName, DOMDocumentType *doctype, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)=0
 Creates a DOMDocument object of the specified type with its document element.
Functions introduced in DOM Level 3
virtual void * getFeature (const XMLCh *feature, const XMLCh *version) const =0
 This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in DOM Features.

Protected Member Functions

Hidden constructors
 DOMImplementation ()

Non-standard extension

virtual DOMDocumentcreateDocument (MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)=0
 Non-standard extension.
static DOMImplementationgetImplementation ()
 Non-standard extension.
static bool loadDOMExceptionMsg (const short msgToLoad, XMLCh *const toFill, const XMLSize_t maxChars)
 Non-standard extension.

Detailed Description

The DOMImplementation interface provides a number of methods for performing operations that are independent of any particular instance of the document object model.


Constructor & Destructor Documentation

xercesc::DOMImplementation::DOMImplementation ( ) [inline, protected]
virtual xercesc::DOMImplementation::~DOMImplementation ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual DOMDocument* xercesc::DOMImplementation::createDocument ( const XMLCh *  namespaceURI,
const XMLCh *  qualifiedName,
DOMDocumentType doctype,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
) [pure virtual]

Creates a DOMDocument object of the specified type with its document element.

Parameters:
namespaceURIThe namespace URI of the document element to create.
qualifiedNameThe qualified name of the document element to be created.
doctypeThe type of document to be created or null. When doctype is not null, its ownerDocument attribute is set to the document being created.
managerPointer to the memory manager to be used to allocate objects.
Returns:
A new DOMDocument object.
Exceptions:
DOMExceptionINVALID_CHARACTER_ERR: Raised if the specified qualified name contains an illegal character.
NAMESPACE_ERR: Raised if the qualifiedName is malformed, if the qualifiedName has a prefix and the namespaceURI is null, or if the qualifiedName has a prefix that is "xml" and the namespaceURI is different from " http://www.w3.org/XML/1998/namespace" , or if the DOM implementation does not support the "XML" feature but a non-null namespace URI was provided, since namespaces were defined by XML.
WRONG_DOCUMENT_ERR: Raised if doctype has already been used with a different document or was created from a different implementation.
NOT_SUPPORTED_ERR: May be raised by DOM implementations which do not support the "XML" feature, if they choose not to support this method. Other features introduced in the future, by the DOM WG or in extensions defined by other groups, may also demand support for this method; please consult the definition of the feature to see if it requires this method.
Since:
DOM Level 2
virtual DOMDocument* xercesc::DOMImplementation::createDocument ( MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager) [pure virtual]

Non-standard extension.

Create a completely empty document that has neither a root element or a doctype node.

virtual DOMDocumentType* xercesc::DOMImplementation::createDocumentType ( const XMLCh *  qualifiedName,
const XMLCh *  publicId,
const XMLCh *  systemId 
) [pure virtual]

Creates an empty DOMDocumentType node.

Entity declarations and notations are not made available. Entity reference expansions and default attribute additions do not occur. It is expected that a future version of the DOM will provide a way for populating a DOMDocumentType.

Parameters:
qualifiedNameThe qualified name of the document type to be created.
publicIdThe external subset public identifier.
systemIdThe external subset system identifier.
Returns:
A new DOMDocumentType node with ownerDocument set to null.
Exceptions:
DOMExceptionINVALID_CHARACTER_ERR: Raised if the specified qualified name contains an illegal character.
NAMESPACE_ERR: Raised if the qualifiedName is malformed.
NOT_SUPPORTED_ERR: May be raised by DOM implementations which do not support the "XML" feature, if they choose not to support this method. Other features introduced in the future, by the DOM WG or in extensions defined by other groups, may also demand support for this method; please consult the definition of the feature to see if it requires this method.
Since:
DOM Level 2
virtual void* xercesc::DOMImplementation::getFeature ( const XMLCh *  feature,
const XMLCh *  version 
) const [pure virtual]

This method returns a specialized object which implements the specialized APIs of the specified feature and version, as specified in DOM Features.

This method also allow the implementation to provide specialized objects which do not support the DOMImplementation interface.

Parameters:
featureThe name of the feature requested (case-insensitive). Note that any plus sign "+" prepended to the name of the feature will be ignored since it is not significant in the context of this method.
versionThis is the version number of the feature to test.
Returns:
Returns an object which implements the specialized APIs of the specified feature and version, if any, or null if there is no object which implements interfaces associated with that feature.
Since:
DOM Level 3
static DOMImplementation* xercesc::DOMImplementation::getImplementation ( ) [static]

Non-standard extension.

Factory method for getting a DOMImplementation object. The DOM implementation retains ownership of the returned object. Application code should NOT delete it.

virtual bool xercesc::DOMImplementation::hasFeature ( const XMLCh *  feature,
const XMLCh *  version 
) const [pure virtual]

Test if the DOM implementation implements a specific feature.

Parameters:
featureThe name of the feature to test (case-insensitive). The values used by DOM features are defined throughout the DOM Level 2 specifications and listed in the section. The name must be an XML name. To avoid possible conflicts, as a convention, names referring to features defined outside the DOM specification should be made unique.
versionThis is the version number of the feature to test. In Level 2, the string can be either "2.0" or "1.0". If the version is not specified, supporting any version of the feature causes the method to return true.
Returns:
true if the feature is implemented in the specified version, false otherwise.
Since:
DOM Level 1
static bool xercesc::DOMImplementation::loadDOMExceptionMsg ( const short  msgToLoad,
XMLCh *const  toFill,
const XMLSize_t  maxChars 
) [static]

Non-standard extension.

Load the default error text message for DOMException.

Parameters:
msgToLoadThe DOM ExceptionCode id to be processed
toFillThe buffer that will hold the output on return. The size of this buffer should at least be 'maxChars + 1'.
maxCharsThe maximum number of output characters that can be accepted. If the result will not fit, it is an error.
Returns:
true if the message is successfully loaded

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMCDATASection-members.html0000644000151400015140000006135011653571065022264 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMCDATASection Member List

This is the complete list of members for xercesc::DOMCDATASection, including all inherited members.
appendChild(DOMNode *newChild)=0xercesc::DOMNode [pure virtual]
appendData(const XMLCh *arg)=0xercesc::DOMCharacterData [pure virtual]
ATTRIBUTE_NODE enum valuexercesc::DOMNode
CDATA_SECTION_NODE enum valuexercesc::DOMNode
cloneNode(bool deep) const =0xercesc::DOMNode [pure virtual]
COMMENT_NODE enum valuexercesc::DOMNode
compareDocumentPosition(const DOMNode *other) const =0xercesc::DOMNode [pure virtual]
deleteData(XMLSize_t offset, XMLSize_t count)=0xercesc::DOMCharacterData [pure virtual]
DOCUMENT_FRAGMENT_NODE enum valuexercesc::DOMNode
DOCUMENT_NODE enum valuexercesc::DOMNode
DOCUMENT_POSITION_CONTAINED_BY enum valuexercesc::DOMNode
DOCUMENT_POSITION_CONTAINS enum valuexercesc::DOMNode
DOCUMENT_POSITION_DISCONNECTED enum valuexercesc::DOMNode
DOCUMENT_POSITION_FOLLOWING enum valuexercesc::DOMNode
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC enum valuexercesc::DOMNode
DOCUMENT_POSITION_PRECEDING enum valuexercesc::DOMNode
DOCUMENT_TYPE_NODE enum valuexercesc::DOMNode
DocumentPosition enum namexercesc::DOMNode
DOMCDATASection()xercesc::DOMCDATASection [inline, protected]
DOMCDATASection(const DOMCDATASection &other)xercesc::DOMCDATASection [inline, protected]
DOMCharacterData()xercesc::DOMCharacterData [inline, protected]
DOMCharacterData(const DOMCharacterData &other)xercesc::DOMCharacterData [inline, protected]
DOMNode()xercesc::DOMNode [inline, protected]
DOMNode(const DOMNode &)xercesc::DOMNode [inline, protected]
DOMText()xercesc::DOMText [inline, protected]
DOMText(const DOMText &other)xercesc::DOMText [inline, protected]
ELEMENT_NODE enum valuexercesc::DOMNode
ENTITY_NODE enum valuexercesc::DOMNode
ENTITY_REFERENCE_NODE enum valuexercesc::DOMNode
getAttributes() const =0xercesc::DOMNode [pure virtual]
getBaseURI() const =0xercesc::DOMNode [pure virtual]
getChildNodes() const =0xercesc::DOMNode [pure virtual]
getData() const =0xercesc::DOMCharacterData [pure virtual]
getFeature(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNode [pure virtual]
getFirstChild() const =0xercesc::DOMNode [pure virtual]
getIsElementContentWhitespace() const =0xercesc::DOMText [pure virtual]
getLastChild() const =0xercesc::DOMNode [pure virtual]
getLength() const =0xercesc::DOMCharacterData [pure virtual]
getLocalName() const =0xercesc::DOMNode [pure virtual]
getNamespaceURI() const =0xercesc::DOMNode [pure virtual]
getNextSibling() const =0xercesc::DOMNode [pure virtual]
getNodeName() const =0xercesc::DOMNode [pure virtual]
getNodeType() const =0xercesc::DOMNode [pure virtual]
getNodeValue() const =0xercesc::DOMNode [pure virtual]
getOwnerDocument() const =0xercesc::DOMNode [pure virtual]
getParentNode() const =0xercesc::DOMNode [pure virtual]
getPrefix() const =0xercesc::DOMNode [pure virtual]
getPreviousSibling() const =0xercesc::DOMNode [pure virtual]
getTextContent() const =0xercesc::DOMNode [pure virtual]
getUserData(const XMLCh *key) const =0xercesc::DOMNode [pure virtual]
getWholeText() const =0xercesc::DOMText [pure virtual]
hasAttributes() const =0xercesc::DOMNode [pure virtual]
hasChildNodes() const =0xercesc::DOMNode [pure virtual]
insertBefore(DOMNode *newChild, DOMNode *refChild)=0xercesc::DOMNode [pure virtual]
insertData(XMLSize_t offset, const XMLCh *arg)=0xercesc::DOMCharacterData [pure virtual]
isDefaultNamespace(const XMLCh *namespaceURI) const =0xercesc::DOMNode [pure virtual]
isEqualNode(const DOMNode *arg) const =0xercesc::DOMNode [pure virtual]
isIgnorableWhitespace() const =0xercesc::DOMText [pure virtual]
isSameNode(const DOMNode *other) const =0xercesc::DOMNode [pure virtual]
isSupported(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNode [pure virtual]
lookupNamespaceURI(const XMLCh *prefix) const =0xercesc::DOMNode [pure virtual]
lookupPrefix(const XMLCh *namespaceURI) const =0xercesc::DOMNode [pure virtual]
NodeType enum namexercesc::DOMNode
normalize()=0xercesc::DOMNode [pure virtual]
NOTATION_NODE enum valuexercesc::DOMNode
PROCESSING_INSTRUCTION_NODE enum valuexercesc::DOMNode
release()=0xercesc::DOMNode [pure virtual]
removeChild(DOMNode *oldChild)=0xercesc::DOMNode [pure virtual]
replaceChild(DOMNode *newChild, DOMNode *oldChild)=0xercesc::DOMNode [pure virtual]
replaceData(XMLSize_t offset, XMLSize_t count, const XMLCh *arg)=0xercesc::DOMCharacterData [pure virtual]
replaceWholeText(const XMLCh *content)=0xercesc::DOMText [pure virtual]
setData(const XMLCh *data)=0xercesc::DOMCharacterData [pure virtual]
setNodeValue(const XMLCh *nodeValue)=0xercesc::DOMNode [pure virtual]
setPrefix(const XMLCh *prefix)=0xercesc::DOMNode [pure virtual]
setTextContent(const XMLCh *textContent)=0xercesc::DOMNode [pure virtual]
setUserData(const XMLCh *key, void *data, DOMUserDataHandler *handler)=0xercesc::DOMNode [pure virtual]
splitText(XMLSize_t offset)=0xercesc::DOMText [pure virtual]
substringData(XMLSize_t offset, XMLSize_t count) const =0xercesc::DOMCharacterData [pure virtual]
TEXT_NODE enum valuexercesc::DOMNode
~DOMCDATASection()xercesc::DOMCDATASection [inline, virtual]
~DOMCharacterData()xercesc::DOMCharacterData [inline, virtual]
~DOMNode()xercesc::DOMNode [inline, virtual]
~DOMText()xercesc::DOMText [inline, virtual]
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMLocator-members.html0000644000151400015140000001041411653571065021521 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMLocator Member List

This is the complete list of members for xercesc::DOMLocator, including all inherited members.
DOMLocator()xercesc::DOMLocator [inline, protected]
getByteOffset() const =0xercesc::DOMLocator [pure virtual]
getColumnNumber() const =0xercesc::DOMLocator [pure virtual]
getLineNumber() const =0xercesc::DOMLocator [pure virtual]
getRelatedNode() const =0xercesc::DOMLocator [pure virtual]
getURI() const =0xercesc::DOMLocator [pure virtual]
getUtf16Offset() const =0xercesc::DOMLocator [pure virtual]
~DOMLocator()xercesc::DOMLocator [inline, virtual]
XQilla-2.3.0/docs/dom3-api/inherit_graph_19.png0000644000151400015140000000460311653571066016043 00000000000000‰PNG  IHDRØ(У£bKGDÿÿÿ ½§“ 8IDATxœíšiLSÍǧ·P D‘¥lƒ€BqAð»!, .€¨‰²D‚,ÁÆÀ«‘… `ÂQhX$DD A‰ Êj@ K)PJç~8ÉɹÝ0ä{u~Ÿæ<çùÏ<3ó?§§§%Añ»ùÏï.¡$ #"”dD„R "q|óæM‹õ[JAü=¸¹¹¥¥¥#’FìëëtqqÙªÚÚÚAI#\\\*++·¤$ÄßHHHˆt=#"”dD„R€ŒˆP J2"B)øcH"`ffÉápˆ KKKIIIÛ¶m;xðà­[·D"®Ý½{·ÄßA|}}I$ÒðððÏ$l%JU̦ùcxóæÍÔÔÔäädqq1ÇsrrZXXÀN-..8p ««+''çýû÷)))eee^^^ëëëXÂèèhoo/Þ—Ë•xÏ¿aÂV¢TÅlŽ?Ùˆ4ÍÐÐN§;vŒÉdš››çææb§²²²h4Zss³••U@@À»wïFGG‹‹‹±„ãÇ?}ú襁¶ÖÝÝØù† [‰R³96cÄÚÚZ:ÎårVVVKKK€µµµ¤¤$}}ý¤¤¤µµµááa‰ÔÜܼsçÎÖÖÖŒŒŒ;wÒh´ÈÈHüæ$­ÔÕÕÙÛÛ«««›››—””D"‘L96„t[‰ûüùsì°´´4==L&ã šššIII¥¥¥Øapppee%þy÷ìÙ³   b‡ŠdNŠD"ÙØØÐh´ììì’’’]»viiiá?v-,,œ9sFOOÏÄÄ$11qee…¸€NNNgÏžÅ2ù|>•Jíééù™bêëë÷íÛG¥RŒŒ²³³ñ)++³±±ÑÑÑùçŸäeBóóó÷îÝ»}ûvúúzl…ïu{{»Ì]Pü_‚ƒƒƒƒƒáFDFFž>}zzzÚÀÀ ³³ æää޳Ùl''§ëׯ |}}_½z•™™ikkËf³ûúúœ婸|¾ššZ~~þÔÔÔ£GTTTø|þíÛ·eÊ ¥Û€¡¡!bÍ]]];vì€b—‡Ã‘˜Ôëׯ 0íàà ¡¡aOOÖ-•JÅûÜ0AzR˜*44”Çã=|øÂãñ ³³³°°0OOÏ/_¾°Ùl;;»ÌÌLâ644èêê®­­AKKKmmmÅbñ†Åðx< …=99‰]f333˜*((ˆËåææædfÒéôÆÆF‡ÓÔÔdii‰yFñ^óù|æ‘é±M‘Ë嚘˜ØÛÛgffâAkkë©©)¬ÝÔÔäèèˆÇf³!„{öì©®®ÆÎ~úô oK«æççUUUïܹÃårÅbñâââúúº<¹<6aÄŽŽ===\Ÿ’’!,--õòò"ö¹a‚ô¤°³ÝÝÝB¡P(Ñ …d2¹¿¿SUWW[ZZP$677COž<™Mœ©¼bVWWø|þúúz[[q ---ÄdfÚÙÙ•••áKT^^ŽQñ^+æß4"„0++‹L&ÿþ¨««ïµZZZXqB¡;Û××'Ý´ BØÞÞ¤©©éêêÚÐР@.i#–——ïß¿k655IHþ,QŒt¦††Foo/¾D>|ÀŒ¨x¯óoq||\__ßÛÛ;<<š˜˜à‹Ëår°â°ˆ¹¹y]]Öîééa0òT€ÅbAWWW?~L&“çææäÉå!aD±XìêêšžžŽ&$$¸ººŠD"<Ïç›™™åææâZ‘Hd``Àb±455±ëMˆ ¤'72"vGüøñ#d2™Ä„¶´´çååyxxHÌT^1@MM­¦¦F,///KL؃ÌLkkëòòr|¬ŠŠ ¬Å{­™ÛÌ—±X}ùòåŠŠŠ—/_ÖÕÕañ€€€”””±±16›íãã“——GTEDD¤¦¦ö÷÷÷÷÷_ºtillLžŠD"8q¢ªªŠÇã …BUUU*•*OþãÇì‘K¢ àp8ÓÓÓß¾}kkkó÷÷¹vív*==}ffÆÓÓ³±±qhhˆÉd:;;Óéô¸¸8\N&“cbb:¤¯¯/½ /…LTUUO:uåÊ•‘‘‘þþþ7n„……Iä`OVVVDDÄO³ºº* )ÊòòrFF`qqQf23ããã“““_¼x177‡=èc_V61Á ø·JpïÞ=ì&Ìd2ŒŒæçç!„</**J[[[WW÷Â… KKKÄ«dee%11ÑØØXKK+44”Ëåbqi„ðÉ“' ÅÚÚº¦¦Fœ8±Mœ£©©iXXñ)BÈçóììì¨Tª­­-ƒÁ¸»Ü[[[yyyñ dN (¼#Bççç#""tuuŒŒ®^½º¼¼,}›‰ÕÐÐàñxxdÃbîÞ½«££cjjzÿþýÐÐP}}}yHg®¯¯çææZXXhiiùøøÔÔÔÐh´ ÷Z12=F’Ø3ì¿bèÿˆJKjjêèèhYYÙÖ W__ojjêàà€VUU1 üµÑæé±?ù…öÆÊÊÊׯ_‹ŠŠÎŸ?¿eƒ²Ùìðððîîn@ðöíÛ´´´sçÎýŠdüC¡œtvvúûûÇÅÅ=ztËMNN~~~ÇÜÜ<:::&&æW „Œøƒ»»ûüüüª¢¢Â`0 Ư}4#”dD„R€ŒˆP J2"B)@FD(2^ß°X,//¯­/ñ—Ð××çææ&”4âáÇ·ªÄ_Š›››´Í$kF ~ è¡ #"”dD„R€ŒˆP þ FAþðÿÉIEND®B`‚XQilla-2.3.0/docs/dom3-api/XQillaNSResolver_8hpp__incl.md50000644000151400015140000000004011653571065020056 000000000000008cb86bbe372730a03780b22fd2d84239XQilla-2.3.0/docs/dom3-api/XPath2Result_8hpp__dep__incl.png0000644000151400015140000001344511653571065020311 00000000000000‰PNG  IHDRÃÀ„bKGDÿÿÿ ½§“ÚIDATxœí{\S×ÀOÈ«ò2¼0 ÄŠHçg®ÌªõXöQlÕ E@*¨ˆôcy­ «mQéÒPƒº‰:å!¨-+P õSqHf‡¦<%BB’»?nw“ƒ†Dçûá›ß=ß¹ß䜛’KÂ0  ÃÄØ fäNW8A^á„¢{Ñ€€€™Ë¡ ûöí[¹r¥.%§áµ²²ò•W^a2™O›♨©©Ù¾}»Ž…§á°iÓ¦7ÞxcÚ!ôAMMî…Ñú 'È+œ ¯p‚¼Â ò 'úôzïÞ=???åÓ¶ï¿ÿ>  ££°J‰5kÖìÙ³§¯¯OÇ–W­ZÕÓÓ£cI‚7ß|óü#ŸÏŸþP4ÐÓÓ³jÕª'ö®cž3>½º»»‡‡‡gee‰D"ÀØØXfffdd¤««+^ ;;»¨¨¨°°ð/ù †aþóŸ§jª¯¯ï­·ÞÒÞÝØØXzzú;ï¼³nݺC‡ …Bå^ŠŠŠòòòØlöŸþô'ý~f¥KnFGÏópDDÄܹssss_|ñ…Í»ï¾Kìe0ÖÖÖ666'11±µµu||\c; …‚ð4üñÀÀ@ff&—Ë …™™™Ê½X[[³Ùì;wvwwŒŒèi|ºæftôì•B¡¤¤¤”••;w®¬¬,%%…BÑ|éÃÄÄ —˵µµÛ·o ܸqãùóç»vílذ(ëÖ­°°°   sçÎd2YCCÃÖ­[£¢¢nÞ¼©Þ ™L¦P(ffføC™LÆårׯ_¿~ýz.—+“É7nÜˆŽŽ^½zõæÍ›ËËËÁãS®úô«ž›2*yâÕ¿ÿþûˆˆˆõë×geeMNNj ê~uAÿçM!!!<oË–-...Ê»&&&ÄbñøøxooïgŸ}6þ| ‹ñññ¸»»çççÇÆÆž=11‘––ööÛoÿãÿˆˆˆøôÓO'&&´P=7eTòă%%%‡NOO¯¯¯ÇŸ¸SõÅô®#ê†a÷ïß711yðàÊ®mÛ¶ýÜ+…²páÂýû÷h4Z^^“ɤÓéøÅç±±1õfCBBLMM_ýuÀè訥¥¥““`||Õ³N§^»v Ã0¼úܹs333që"‘H H$…B‘––&“ɾù曽{÷–””àÕår9™LœÖPÏÐÝÝ¿)èêêÂÅOÔú\_1 ;v옫«ëš5kÁÁÁVVVýë_µ×šœœ”Éd E*•ž>}@œ$‹Åâ©jåååmݺ•N§?ø?êÅÌÌÌÆÇljv–/_~òäɇvtt$''—””H¤¤¤¤ï¾ûnlllrr’B¡Ðétsss@yyùøøøTë(Ñæ—_~©qáP&;;»§§çÇäñxÄÇØƒúBŸ¯×òòò[·n:u ÎR(”¤¤¤]»v­X±bÅŠSÕ277=tèМ9s6oÞìçç—œœ\XX¸hÑ¢7~õÕWkuvvJ$bMÅ©®®V)fgggjj* MMMÑÑÑÙÙÙÛ·o'‘H+V¬ˆ‰‰¡Ñh{öìÉÍÍ}ôè‘££cjj*F£ÑhÑÑÑ999ùùùøÃ®_¿®Ü¦ƒƒƒrnGõññ!N¹5âïïŸ011áçç†Ïº*A-ÕŸ’îë‰DJMMEŸ¿N‹žžžððp•'œÆàYµjÕÅ‹ƒƒƒu)Œ®à ò:³˜™™éÔ/ÈëÌÂ`0>øà]‚úy…äNW8A^áy…“YäõLJŒ‚á˜ÞuijgÏ^»vm†R™i|¬¬~¤Pžðñ*LÃë¦M›f.™F,¦ôöZÌ™3ßÙyÔØ¹<%®®®ÎÎÎ:žÆõᚌŒ²ÌÌòyóljk÷;C0[Öׂ‚ÀýûCwïö;C0+¼Þ¾ý »{@¥’‹Šþeìt Á¬ðZRÒH¡““ò‚‚…þ¥~¯r¹¢°°A&“ãFoÞì0nJ~¯µµüáá_þûœJ%_¾ÜhÄ| ü^‹‹)”_†99)/-mœœ”1%¹W©TvåJ“L¦P …’ï¾k3VJ†r¯UUwÅb‰JB!C~V ¹×ââá_RF&S|õÕããR£¤d`ö*IÊË[år…ú®ÉIyee«áS20{­¨h•JeSí…û¬f¯%%SšS(°êê»Bá”ß'xÑùºw÷°ò$ìë{èàÁ þþ¯‡¹tºþ¿yö<ç¨pØl+•ˆÅ¼yzþ†Óó Ìóðly…äNW8A^áy…äNW8A^áy…äNW8A^áy…äNW8A^áy…äNW8A^áy…äNW8A^áy…äNW8A^áy…äNW8yì{Í•••ÆJÅTVVö÷k¸­3¸ººâ·•ýL‰‹//±‡Ješ˜<Ó={Ÿg6mÚ¤¬RÃï@ü‹°¢~3B´¾Â ò 'È+œ ¯p‚¼Â ò 'Óözûöm …RPP@DJKKi4Ú;wð‡cccÉÉÉ‹/677_ºtéáÇe2€Ïç“H$SAÒÄtÖOÌö‰H$>Ÿ¯¯|´3íßÑ{õÕW÷îÝÀ`0FFFvíÚ•ššºhÑ"ÀèèèÒ¥K™Læ‘#GÜÜÜZZZöïß_QQQQQÁ`0>üðÃévwãÆ —éÖš ž.£¡~½ {‰ÄËËkÇŽ†íܹsÉ’%R©ß•˜˜¸|ùr™LF‰D/¿ü2—Ë%"÷îÝÃ{!6¦pïÞ½'æó¢0sÃÙ´i“Êõ¦§ñŠaØ­[·(Jzz:N¿sçwpp¨¨¨P)œ““³|ùruÊ^¯^½êãã3g·ÇÿœÜ¢´´ÔÑÑQ `vþüywww‘H„·VRRâááagg711+++¯_¿.•J™L¦]bb"þt¼råÊ¢E‹ètº‹‹Ëßÿþw¼ õ r¶ÃÃÑ‘‘666NNN b±Ï6??ßÓÓÓÊÊê“O>QOpâÄ 777ƒ‘žžN´©1g• vzóŠaXJJ àСCDdxx000 R²¶¶ÖÚÚZ‹W¡PH£Ñ¢¢¢º»»óóó=ÂDSSÓèãàmnÙ²%22²¿¿ßÞÞ¾¾¾žhmõêÕmmmuuu'-- þþ÷¿¯ªª‰DŸ|òÉÆøàƒgoS[[›™™ùŒèÁ«³³ó ôª}þÑË/~ õNW8A^áy…äNž/¯|>ŸD"iÜxê¦f‰Äçóg®ýgäùòÊ`0>üðCcg“““ NNNo¾ùf{{»±3šÏ—W[[Û#GŽ; ÈÉÉ))))))áóù,+::ÚØMCx½r劓“Óðð0àÂ… ccc …";;{Á‚¾¾¾ÕÕÕøÌ¦eò¼víÚ«¯¾jjjÊb±ÔõËåòŒŒ  ‹eË–Õ××ãñŸ~úé½÷Þ³µµe³Ù‰‰‰‰têÔ© ØÙÙ9räìÙ³...sçÎÝ¿?^«ªª***ê7¿ù½½}|||c£†+.//çp8VVV‡ÿŸùKKKçÏŸÏd2ããã%‰Æ >ê“xöëÃ*w¼ÓÈ–-["##ûûûíííëëë1 ËÍÍe2™ÅÅŽ½½_~ù%›ÍÜ»wOI}C(Òh´¨¨¨îîîüü|À£G”»8~ü¸rƒŽŽŽx۰0??¿öööææf//¯´´4ü‚Nhh¨P(äñx€àà`¡P˜›› $Ú”Éd===»wï^³fʈk×® …EEEx-<ÕÕ«W·µµÕÕÕq8œ´´4AíÇ ¿û£Ç^ò:<<Ìf³½½½‰Q-\¸ðÌ™3D¿ýíoÚ½J$’»wïŠD"¹\þí·ßâ…•»ðððPoP*•’Éä––”ËånnnxÃátwwãÛ*•ª²­Lbbbooï¶mÛÂÂÂÔS§“ÇŽ¡»»;¾áééIô¥18£ÈkWWWvv¶¿¿BBqrrúᇈ­­­Ú[‹ÅÁÁÁIII999Dœx†¾üòËê ÚÛÛ“É䎎<ØÞÞîää¤KÂï½÷^SS€ÅbmÙ²åÎ;êe4ž à/P@[[.~ªàŒb¯ …"***..îÂ… •••W¯^DEE%%%•––ö÷÷ÿóŸÿLIIÑÞˆD"‘J¥4M,§¦¦FG»'ÃÎ;•ŸßÐаwïÞððp-Á™åçq]Ö׬¬¬Å‹K¥R Ã._¾Ìb±T*ýøã]\\ÌÍÍ}}}ÏŸ?´®¯†?~ÜÚÚÚÙÙ9'''44”Éd*÷"“É2228Ž™™™¯¯o]]^Q DDDØØØ°X¬Ý»w‹Åb ÀÒ:ªq{tt422’Íf[ZZ®[·®««ë‰µðTy<Þ¼yólmmãââÄb±Æ öÃõ"7=e/(‡ðãz‘ΛyÕ–––111º Àóâ•x[ùâÂd2¹\®.Að¼xEèäNW8A^áy…äNôðÿþ3úŸDˆ§àYïZ[[k˜žfÏøÕ˜Ytÿ×YZ_áy…äNW8ùË5?w,ÛÊ¥IEND®B`‚XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMImplementationLS__inherit__graph.md50000644000151400015140000000004011653571065024626 00000000000000e4cd66b7429e77d5eade8caa0691837bXQilla-2.3.0/docs/dom3-api/DOMDocumentTraversal_8hpp__incl.md50000644000151400015140000000004011653571065020703 00000000000000e039f3bc0c0385e1a2dfd971d0a8e028XQilla-2.3.0/docs/dom3-api/functions_0x74.html0000644000151400015140000001213611653571065015660 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- t -

XQilla-2.3.0/docs/dom3-api/DOMLSParserFilter_8hpp__incl.map0000644000151400015140000000003511653571065020176 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMPSVITypeInfo_8hpp_source.html0000644000151400015140000002660011653571065020205 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMPSVITypeInfo.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  * 
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  * 
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 #if !defined(XERCESC_INCLUDE_GUARD_DOMPSVITYPEINFO_HPP)
00019 #define XERCESC_INCLUDE_GUARD_DOMPSVITYPEINFO_HPP
00020 
00021 //------------------------------------------------------------------------------------
00022 //  Includes
00023 //------------------------------------------------------------------------------------
00024 #include <xercesc/util/XMLString.hpp>
00025 
00026 
00027 XERCES_CPP_NAMESPACE_BEGIN
00028 
00034 class CDOM_EXPORT DOMPSVITypeInfo
00035 {
00036 protected:
00037     // -----------------------------------------------------------------------
00038     //  Hidden constructors
00039     // -----------------------------------------------------------------------
00042     DOMPSVITypeInfo() {};
00044 
00045 private:
00046     // -----------------------------------------------------------------------
00047     // Unimplemented constructors and operators
00048     // -----------------------------------------------------------------------
00051     DOMPSVITypeInfo(const DOMPSVITypeInfo &);
00052     DOMPSVITypeInfo & operator = (const DOMPSVITypeInfo &);
00054 
00055 public:
00056 
00057     enum PSVIProperty
00058     {
00059         PSVI_Validity
00060         , PSVI_Validitation_Attempted
00061         , PSVI_Type_Definition_Type
00062         , PSVI_Type_Definition_Name
00063         , PSVI_Type_Definition_Namespace
00064         , PSVI_Type_Definition_Anonymous
00065         , PSVI_Nil
00066         , PSVI_Member_Type_Definition_Name
00067         , PSVI_Member_Type_Definition_Namespace
00068         , PSVI_Member_Type_Definition_Anonymous
00069         , PSVI_Schema_Default
00070         , PSVI_Schema_Normalized_Value
00071         , PSVI_Schema_Specified
00072     };
00073 
00074     // -----------------------------------------------------------------------
00075     //  All constructors are hidden, just the destructor is available
00076     // -----------------------------------------------------------------------
00083     virtual ~DOMPSVITypeInfo() {};
00085 
00087     // -----------------------------------------------------------------------
00088     //  Getter methods
00089     // -----------------------------------------------------------------------
00098     virtual const XMLCh* getStringProperty(PSVIProperty prop) const = 0;
00099 
00108     virtual int getNumericProperty(PSVIProperty prop) const = 0;
00110 };
00111 
00112 XERCES_CPP_NAMESPACE_END
00113 
00114 #endif
00115 
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMLSSerializerFilter-members.html0000644000151400015140000002234211653571065023637 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMLSSerializerFilter Member List

XQilla-2.3.0/docs/dom3-api/DOMDocumentFragment_8hpp__incl.map0000644000151400015140000000003511653571065020577 00000000000000 XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMNodeFilter__inherit__graph.md50000644000151400015140000000004011653571065023435 00000000000000075b2780040635663349a8bf1e8542e4XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMCDATASection__inherit__graph.md50000644000151400015140000000004011653571065023543 00000000000000510efe3a6d9d56d1e9c7944aa7dffdf6XQilla-2.3.0/docs/dom3-api/DOMLSException_8hpp__incl.md50000644000151400015140000000004011653571065017436 000000000000001e0f3a94057c127e57ef03d11714dcd8XQilla-2.3.0/docs/dom3-api/inherit_graph_24.map0000644000151400015140000000035211653571066016025 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMNode_8hpp_source.html0000644000151400015140000007220011653571065016630 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMNode.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMNode.hpp 671894 2008-06-26 13:29:21Z borisk $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMNODE_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMNODE_HPP
00024 
00025 #include <xercesc/util/XercesDefs.hpp>
00026 
00027 XERCES_CPP_NAMESPACE_BEGIN
00028 
00029 
00030 class DOMDocument;
00031 class DOMNamedNodeMap;
00032 class DOMNodeList;
00033 class DOMUserDataHandler;
00034 
00139 class  CDOM_EXPORT DOMNode {
00140 protected:
00141     // -----------------------------------------------------------------------
00142     //  Hidden constructors
00143     // -----------------------------------------------------------------------
00146     DOMNode() {}
00147     DOMNode(const DOMNode &) {}
00149 
00150 private:
00151     // -----------------------------------------------------------------------
00152     // Unimplemented constructors and operators
00153     // -----------------------------------------------------------------------
00156     DOMNode & operator = (const DOMNode &);
00158 
00159 public:
00160     // -----------------------------------------------------------------------
00161     //  All constructors are hidden, just the destructor is available
00162     // -----------------------------------------------------------------------
00169     virtual ~DOMNode() {};
00171 
00172     // -----------------------------------------------------------------------
00173     //  Class Types
00174     // -----------------------------------------------------------------------
00182     enum NodeType {
00183         ELEMENT_NODE                = 1,
00184         ATTRIBUTE_NODE              = 2,
00185         TEXT_NODE                   = 3,
00186         CDATA_SECTION_NODE          = 4,
00187         ENTITY_REFERENCE_NODE       = 5,
00188         ENTITY_NODE                 = 6,
00189         PROCESSING_INSTRUCTION_NODE = 7,
00190         COMMENT_NODE                = 8,
00191         DOCUMENT_NODE               = 9,
00192         DOCUMENT_TYPE_NODE          = 10,
00193         DOCUMENT_FRAGMENT_NODE      = 11,
00194         NOTATION_NODE               = 12
00195     };
00196 
00215     enum DocumentPosition {
00216         DOCUMENT_POSITION_DISCONNECTED            = 0x01,
00217         DOCUMENT_POSITION_PRECEDING               = 0x02,
00218         DOCUMENT_POSITION_FOLLOWING               = 0x04,
00219         DOCUMENT_POSITION_CONTAINS                = 0x08,
00220         DOCUMENT_POSITION_CONTAINED_BY            = 0x10,
00221         DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20
00222     };
00224 
00225     // -----------------------------------------------------------------------
00226     //  Virtual DOMNode interface
00227     // -----------------------------------------------------------------------
00230     // -----------------------------------------------------------------------
00231     //  Getter methods
00232     // -----------------------------------------------------------------------
00237     virtual const XMLCh *   getNodeName() const = 0;
00238 
00246     virtual const XMLCh *       getNodeValue() const = 0;
00247 
00252     virtual NodeType            getNodeType() const = 0;
00253 
00264     virtual DOMNode        *getParentNode() const = 0;
00265 
00280     virtual DOMNodeList    *getChildNodes() const = 0;
00287     virtual DOMNode        *getFirstChild() const = 0;
00288 
00295     virtual DOMNode        *getLastChild() const = 0;
00296 
00303     virtual DOMNode        *getPreviousSibling() const = 0;
00304 
00311     virtual DOMNode        *getNextSibling() const = 0;
00312 
00318     virtual DOMNamedNodeMap  *getAttributes() const = 0;
00319 
00331     virtual DOMDocument      *getOwnerDocument() const = 0;
00332 
00333     // -----------------------------------------------------------------------
00334     //  Node methods
00335     // -----------------------------------------------------------------------
00355     virtual DOMNode        * cloneNode(bool deep) const = 0;
00356 
00384     virtual DOMNode       *insertBefore(DOMNode *newChild,
00385                                           DOMNode *refChild) = 0;
00386 
00387 
00411     virtual DOMNode  *replaceChild(DOMNode *newChild,
00412                                      DOMNode *oldChild) = 0;
00425     virtual DOMNode        *removeChild(DOMNode *oldChild) = 0;
00426 
00447     virtual DOMNode        *appendChild(DOMNode *newChild) = 0;
00448 
00449     // -----------------------------------------------------------------------
00450     //  Query methods
00451     // -----------------------------------------------------------------------
00460     virtual bool             hasChildNodes() const = 0;
00461 
00462     // -----------------------------------------------------------------------
00463     //  Setter methods
00464     // -----------------------------------------------------------------------
00480     virtual void              setNodeValue(const XMLCh  *nodeValue) = 0;
00482 
00505     virtual void              normalize() = 0;
00506 
00522     virtual bool              isSupported(const XMLCh *feature,
00523                                                const XMLCh *version) const = 0;
00524 
00540     virtual const XMLCh *         getNamespaceURI() const = 0;
00541 
00548     virtual const XMLCh *          getPrefix() const = 0;
00549 
00559     virtual const XMLCh *          getLocalName() const = 0;
00560 
00594     virtual void              setPrefix(const XMLCh * prefix) = 0;
00595 
00602     virtual bool              hasAttributes() const = 0;
00604 
00622     virtual bool              isSameNode(const DOMNode* other) const = 0;
00623 
00664     virtual bool              isEqualNode(const DOMNode* arg) const = 0;
00665 
00666 
00692     virtual void*             setUserData(const XMLCh* key,
00693                                           void* data,
00694                                           DOMUserDataHandler* handler) = 0;
00695 
00707     virtual void*             getUserData(const XMLCh* key) const = 0;
00708 
00709 
00726     virtual const XMLCh*      getBaseURI() const = 0;
00727 
00738     virtual short             compareDocumentPosition(const DOMNode* other) const = 0;
00739 
00781     virtual const XMLCh*      getTextContent() const = 0;
00782 
00794     virtual void              setTextContent(const XMLCh* textContent) = 0;
00795 
00807     virtual const XMLCh*      lookupPrefix(const XMLCh* namespaceURI) const = 0;
00808 
00818     virtual bool              isDefaultNamespace(const XMLCh* namespaceURI) const = 0;
00819 
00831     virtual const XMLCh*      lookupNamespaceURI(const XMLCh* prefix) const  = 0;
00832 
00848     virtual void*             getFeature(const XMLCh* feature, const XMLCh* version) const = 0;
00850 
00851     // -----------------------------------------------------------------------
00852     //  Non-standard Extension
00853     // -----------------------------------------------------------------------
00869     virtual void              release() = 0;
00871 #if defined(XML_DOMREFCOUNT_EXPERIMENTAL)
00872     // -----------------------------------------------------------------------
00873     //  Non-standard Extension
00874     // -----------------------------------------------------------------------
00884     virtual void decRefCount() {}
00886 
00887     // -----------------------------------------------------------------------
00888     //  Non-standard Extension
00889     // -----------------------------------------------------------------------
00896     virtual void incRefCount() {}
00898 #endif
00899 };
00900 
00901 /***
00902  * Utilities macros for getting memory manager within DOM
00903 ***/
00904 #define GET_OWNER_DOCUMENT(ptr)      \
00905         ((DOMDocumentImpl*)(ptr->getOwnerDocument()))
00906 
00907 #define GET_DIRECT_MM(ptr)           \
00908         (ptr ? ((DOMDocumentImpl*)ptr)->getMemoryManager() : XMLPlatformUtils::fgMemoryManager)
00909 
00910 #define GET_INDIRECT_MM(ptr)                                                    \
00911         (!ptr ? XMLPlatformUtils::fgMemoryManager :                              \
00912         GET_OWNER_DOCUMENT(ptr) ? GET_OWNER_DOCUMENT(ptr)->getMemoryManager() : \
00913         XMLPlatformUtils::fgMemoryManager)
00914 
00915 /***
00916  * For DOMNode and its derivatives
00917 ***/
00918 #define GetDOMNodeMemoryManager GET_INDIRECT_MM(this)
00919 
00920 XERCES_CPP_NAMESPACE_END
00921 
00922 #endif
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMProcessingInstruction__inherit__graph.png0000644000151400015140000001134311653571066026070 00000000000000‰PNG  IHDRóu}@­bKGDÿÿÿ ½§“˜IDATxœíyTSÇÇ'$@d”}5"âAp¡V-ELÅ­TA7´T@q9j¨KUPk-¢PZÅÚ¨Pˆ€x#JQAAˆzü)‚% þ’„DHò~ÌFY´xÎ篙ûæÎÜ;ïËËååñ a¡¥éˆ>)AL²Ä)AL(š@-‡***ÒtˆîØ»w¯‡‡‡¦£PÍÀU6‡ÃyüøñŒ34B5™™™ëׯ×tj¸Ê̘1###CÓQ TC"‘4Bw :AL²Ä)AL²Ä)AL²û’£F hii‘  ÃÃÃ'Nœhhh8uêÔ~øA"‘à¾cÇŽUxjmÁ‚$©¦¦ðóó“PSSÓó»½<¸@Ê‹¹\î‹/˜Lfkkë”)S<ÔÖÖöÉ'Ÿ”••EEE•——ïÞ½û÷ߟ3gŽT*…ž?^UU…OÅçó¾Àb±Xéééý–Ë`)»?033³´´´±±¡ÓéÙÙÙ4-66:xð ™™YAAÁüùó–,YRZZúüùs&“ xzzfffâSåææ*|íÖÔÔÔoé ·²sssmllø|>àüùóB¡ÐÕÕnaaannÞÕÕ?v ììì #""ìììÌÌÌð˧²àòåË...T*•F£¥¦¦$‰JwùOön>åI$Rhhh^^즥¥íß¿ŸL&ãôõõÃÃÃÓÒÒ`×ÏÏ/##¯7X,–¯¯¯ü„Û¶mstt V~Ô^ ¬]»ÖÔÔÔÖÖ–Á`ˆÅb©Tíàà`hhèææv÷îÝnrÜ`???XAvO@@@```SS“……ÅÝ»w¡1**jéÒ¥õõõÕÕÕS¦LÙµk×Ó§O ,¸~ýzdd¤““Suu5‡Ã™6mƒÁPçÕÞÞ®««›””ÄårO:E¡PÚÛÛ£££Uº ‚“'O*·OŸ>•¹¬¬ÌØØÃ0ø3ÙÒÒ¢ÔíÛ·-,, ïãÇ---ïß¿§ÕÓÓ{ýú5>'l>>ÉÉɘ*eK¥R¹sç>yòе¡¡ ‰àœÕÕÕT*uÈ!•••øB÷ï߇ƒUæþμ²²w hhhˆ÷ôôܱcn455ÅÅÄçóïܹíÚÚÚkkëçÏŸCKeeåáÇÕy‰D"™L–™™Éãñ‚‚‚.\ÈãñÔ¹÷ ý¼¼`×ßßÿàÁƒø€P(ŒŠŠš?>nùüóÏÛÚÚnݺÅf³}||TN«¥¥Åd2oß¾’’-d2¹¶¶vŸ={fcc3jÔ(ù;->ì~Ç1ùyê =¹fK¥ROOÏC‡ñxÚ•½0 KOO3fŒŽŽŽ££ã¥K—ºq—_B¾-1b„¿¿¿|á„aX{{ûŽ;&L˜ §§çääôý÷ßwttà¾P¸………€„„»‚²e2Ùœ9sð¥y<Þš5kLLL¬¬¬¶mÛ&‰$Itt´½½½¾¾þŒ3àµY]îÝ3À•MÂê[–-[@ÏgXH$Rzz:7B0¦Oÿ¾¾þ¿Û·Ïc0æ¿{4âƒAuvðèQc}ý™™ešŽåc)»?¸xñž¶6ÐÐÀ«¬¬×t8HÙ}ŽL†¥§—uuI 9'§BÓ} e÷9wïÖòxí°-‘HY¬{R©L³!} e÷9ÙÙÊßûÌã KJн¿>)»oéê’æäTH$_¤)rvv¹CúH@Êî[þüó?ííoå-‰47·ª³“ wµ,HÙ}KVV9™¬ø´Žñ5ÏÇRv"¾ÍϯVþ}QKKëâETô-HÙ}ȵkàÍ>¤RÙÕ«„·ʇÿHÙ}Hvv¹ºg:;%löÃþ çã)»¯hmݸñŸnËÉÎF_Ùô!艨¾âí[ISÓ¼{íÚ£}û²JJöâ2YËÖv˜&Bû(¸O±vtu)#Gšà]33C€¼ѧ jAL²Ä)AL²Ä)AL²Ä)AL²Ä)AL²Ä)AL²Ä)AL²Ä)AL²Ä)AL²Ä)AL²Ä)AL²Ä)AL²Ä)AL²Ä)AL²Ä)AL²Ä)AL²Ääo†OIIÑT„çÁƒV€v¸/¡Ñhžžž÷194ñÑÒÒÕÖ6×tDÆÏÏO^ÌŠÿÍ#""bÖ¬Yš x8 `Au6‚˜ e#ˆ R6‚˜ e#ˆ R6‚˜ e#ˆ ÿ‡/NÇÛ'Nܰaƒ±±1n‹Å§OŸ.++ãr¹vvvîîî+V¬ “ÉÐׯÆ&55•D"áãwîÜYZZš––fcc#?¹žžž‹‹Ë–-[¬¬¬ú%3E^¾|¹zõê7nôÊ‹N§Ã\ú(ªwò~a÷b^³ããã/^¼˜™™¹sçN¡PÜÞÞutt„„„<~ü8$$$%%ÅßߟÍf3 ™L455={ö Ÿª­­­ªªJyr‹‡aØáÇû-/ V®\Ù q¹\ooïk†þ ›˜Ê666>|¸©©éäÉ“:dee•™™ ={ÖØØ8&&æÓO?µµµuwwOJJjjjÊÏχ\]] ñ©Š‹‹'Mš¤<¹‰‰‰½½=ƒÁxøðaGGGeöŒŒŒ‚ƒƒûa!™LÖÚÚúoÍÐ?a÷NÙÅÅž¾¾mmm€‚‚‚5kÖˆÅb€D"IJJZ¼xñâÅ‹“’’$ÉË—/étzEEÅòåË+++™LæòåË}||Ž9‚_>•½àAAAsçÎ]µjÕÕ«WR©T¥;\B¹­‰DZ´hÑ;w`—Ífhiý8•J]±b›Í†ÝY³fâÏüùçŸj·OK F(Ÿ/‡Ãiooÿñǽ½½ýüü;;;ÕeÑÃMPi”ÏšN§_»v-00pÑ¢E.\`–››»víZ//¯íÛ·—””(o‘²—Ê…6nÜX²d ¾(Ìô?þP>*3Užz)o”º¨zKï”ýÙgŸ¹ºº&$$ðùü„„„ï¾ûŽJ¥X,—ËMNN>~üxEE“É„ã322víÚUUUUTTtäÈ‘ØØØ†††´´4xTÙK,GFFúøø\¸paÍš5G‹Å,K¥»±±1ƒÁPn+ckkÛØØhooçñxööö ìííëëëa{„ "‘$B¡°¢¢ÂÍÍM~°X,‰D?ýôÓ¸qã åó;vl\\\KKKRRRTTTYYÙùóçÕeÑÃMPiTÈâÖ­[ !!!ÉÉÉmmmW®\IMM ;w¿BB‚ÊÍQðR¹Ð‰'YYY¸ž©ò„*3Už¢¼Q*£Ry÷ôºÙ¼ysEEƒÁðöövtt„Æüüü­[·š››Óh´ÒÒRhž|xMM«««ü€šš¼;kÖ¬èèè   •¥H77`¾|>_&“Á666---€Ù•F…ÕMMMÊÿÏiccãèÑ£ñ££FR³‚WOÂ3•¯ßz~¾Ôm”rTïA¯=_½z•íêêzâĉ={ö@£‘‘Qll,<ßðÿÿ³S(“¦¦&¸Ë555wîÜY½zµJ¯·oßÊd²ÈÈH‰DRPP°gÏžœœuî=–›Ó§O‡]OOϳgÏNž</µÅbñùóçåååììÜÑÑÁápîÝ»·cÇŽž¯ó6l˜––—Ë…'µ±±ÑÔÔðÙe£Âêòw*uuu4 vÿúë/•1+x©\]]¦©TJ&“_¿~ »=?_*7JeTïAïª ÃŽ=ºdÉ’}ûö•——C»»»ûÉ“'›››kkk¿ýö[…½˜;wþZWWWWW×Üܬ΋D"…‡‡ …®®. …¢«««Î](æåå)·€Çã½~ýºªªjß¾}\.wÙ²eðP`` ŸÏß¾}{iié‹/nÞ¼¹aÃSSSù»Z° ‰‰‰?~¼üðB¡PètúÏ?ÿÌårëêêN:åééù› ÒØ}>>>ÉÉÉ÷îÝkmm½ÿþéÓ§{"—n‰D ƒ W¯^íèèÀkhu™*Ï r£ÞaéÝ5;''G ¬\¹’B¡lÛ¶-&&ÆÙÙÙÐÐ0(((>>~ýúõ$iæÌ™!!!øO0Àßß_,‡‡‡‹ÅâéÓ§‡„„@»²—ŽŽÎîÝ»“““_½zemm¡£££Î] ;v –×òmÀ¦M›`ÃÜÜÜÅÅ%%%/ôôôRRR˜LfRRRcc£••ÕìÙ³ýüü´µµå3¥Óé—.]Z¼xq¯wÀÖ­[ãããCCCµµµ¿øâ ‰ô!›Piì©TûæÍ''§ÐÐÐèèèwF®ruKKKggç¥K—^¹rE~°‘‘QPPЉ'ÒÒÒÂÂÂnÞ¼ Ôœnu3(oTo¶¹;HòJC"‘Ð_†’’ssó1cÆÀnQQQjjêÉ“'5UqàÀ33³ŒŒ ÜBÌoj€ÚÚÚÇ?}úôíÛ·=úí·ß>äöÑ ƒ€Ï +V¬‹Å{÷îVVV ,X¸p¡¦ƒê?² ™L Òt šU#b‚” &HÙb‚” &HÙb¢xo¤¼¼t,466š™™ýÄÞë‡  ïõ#!A# ª³Ä)AL²Ä)ALþ:§fDJÅyIEND®B`‚XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMLSException__inherit__graph.map0000644000151400015140000000024111653571066023673 00000000000000 XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMAttr__inherit__graph.md50000644000151400015140000000004011653571065022314 000000000000007257d46df390a92932adf7700aa56733XQilla-2.3.0/docs/dom3-api/graph_legend.md50000644000151400015140000000004011653571065015215 000000000000009fbb782f23f919c0064b8f454a56ede8XQilla-2.3.0/docs/dom3-api/DOMLSParserFilter_8hpp__incl.png0000644000151400015140000001163611653571065020216 00000000000000‰PNG  IHDRãu3ÓÁEbKGDÿÿÿ ½§“SIDATxœíyPÇÛÇ{Øå¹—SbÈ"ŠwÔB-À Ô"€C•rxT xDcðˆJ"—B5(ÀR‰qcA ˆe¸b!°¨…°À®ì²óþÑ¿w2î%*° éÏ_3ÏôóôÓ=ßíî™ÅpÄ„GEÙ #)A RÔ)A èc]§§çXWP:®®®Ó*Æ\©¿üòËŒ3 ÆXW„Puuuc]˘+àïïïææ6!”ÂÁƒÇ¡´NEP¤T5@JEP¤T5@JEPƒñøîÿFX,±mjj:{ö숈}}}Â(233+++9޵µµ‹‹ËÆi4ôµ´´ÌÊÊÂ0Œ(¿gÏž‡fgg[ZZ²X,¸A®‘ÏçgffÞ¿ŸË嚘˜¸»»ª©©I$£¥¥åääinn>>Í'ÈÎÎÞ¼yó½{÷ÚÚÚàÆ{V!Ý ÔbB(””dnn.‹_¾|yãÆ°°°‹/êèè#"" ÂÃÃ-,,þúë¯ .>>çÎ …2Š{rܘˆJXYYµ··úûû¹\.1³0™Ì––¸=sæL>ŸßÔÔ¨ªªrvvV?&&¦ªªÊÏÏ/&&&''§³³“|T ðùüÁÁÁöööo¾ùÆÞÞ^WWwpp0..ÎÖÖ6;;;"""--­··–¿víÚÞ½{§Nš°víÚ~ø!((è믿€ÜÜ\‡“’’ròäɪªªŒŒ ²—­­-Q#ü`HðÝwßòòòàîHÂ’©¨¨HKK‹MOO'>¢ùùùÇŽ;zôhEEüìÉ3*‰²N}[0 ‹Åp[EEÅÕÕ•Íf3™ÌÌš5kÊ”)ŠÝ,X““óçŸVVVþüóÏ©©©û÷ïwww‡G?ûì3¸A§Óá³jjj.\`0êêêð1†X,,,ÌÆÆ†Çãá8ÎçóÕÔÔ¼¼¼ÜÜÜÔÕÕEEE§OŸ644d0áááÉÉÉ+W®$¼$j„=zÔÚÚZqF–̆ ´´´–.] àñxÐaeeHOO÷ðð6nÙ²Eq&ãÃUjkk«……@GGÇÐа±±qþüùävvvÄ®››[bbbHHÈH¦~@PVVææææààààà”™™™œœL(Uæ×d:ÞÚÚzâÄ >Ÿ/1bAUéêêž>}:777##ÃÎÎ. `Ñ¢E€ŽŽ___¢°¶¶6ÙK^mmmŠ[1’°dŒŒŒä+$¨HèÕÕÕ¥À¨t&¢Rq/,,\¼x1Üõðð¸téÒܹs‰¥ª@ ¸zõ*ù<Íš5kpp°¶¶öÑ£GQQQoŒäÈkkk¸¨À0láÂ…7oÞTìõêÕ«„„„„„„%K–…Bâû€N§Ãb±8!!A$ݽ{wÿþýùùùºººzzz§OŸ†B„‹²×;ó¶a%4 imm…ðË—/¡”å•ÎDY§ööör¹Üîîîêêêp8œõë×ÃC[¶léééÙ½{÷Ç[[[ÿý÷ˆˆccã5kÖîppêÔ)ò…XrpMMÍåË—à\/a|‡TÇl¬EaX||u¢!óÖ×»Ý;x𠉉ɵk×F5AI&Êì@()õ?ж¶¶··÷HŒ¤Ôÿ(úúú»wï‰q‚€”Š H©j€”Š H©j€”Š H©j0÷¨lllÆám0eÑÜÜìáá1Ö÷¨Æü¾¿¿¿ÿXW1¡àr5š›õ,è|sÑÉ‚ ñàÛØ1æcêÂÂ'Û·ßÞ~ZÙ‰L6Ð:A RÔ)A RÔ)A RÔ)A RÔ)A RÔ)A RÔ)A RÔ)A RÔ)A RÔ)A RÔ)A RÔ)A RÔ)A RÔ)A RÔ)A RÔ)A RÔ)A Ð;©ß—ööÞ­[/ˆDÃp—Ïr¹––úD3,’’6+)»ÉØ¿çÒca¡/ 56þM6>·¼½ç(#¯ÉšýGÑéòzó÷_8®ÙLRRGµkç ËXD©¨`NNVVVèŽF¤ÔQÀÂBÞ“ GG{÷Ôõô^¡Î|OLLLä*0cÆ ƒ1¾)M*\]q 3twg);jSWW'aAëÔQFE wSv“¤ÔÑGU•¦ì&!H©j€”Š H©j€”Š ÔVjKK˶mÛ$Œ&ùPó»…ÅHL›6-88¸««‹\r`` &&föìÙººº .}úô)Ùòvcjaa¡¥¥eOOàêÕ«vvv¡PcjjÊ`0bbb„B!œ_îÞ½kmmÍf³ããã­­­MLL‚ƒƒ‰1IÚ póæM''' ›¬¬,€H$’éÞÝÝ­­­­©©9<<œ˜˜hgg§««ëìì\QQ ôöönÝºÕØØØÊÊ*::Z 0 »xñ¢ƒƒƒ‰‰ÉW_}•••õá‡êéé8p@"¬tó1 Û¾}û­[·ànvvv\\öïÕSmm혘˜ììl¸ëïïíÚ5üÿç÷ÜÜ\???rÀ]»vMŸ>=,, —z?ˆtòòš)³e"=é/^¼`ff&/ù<–””H¼sç“É4008vì¿  ÀÞÞžÁ`DFF¾zõJ¦Q^†Š Ëv$cjppð–-[:::LMM+** ñøñã¾¾¾---555óæÍÛ»w/ü°®X±â×_MHHptt¬©©©­­]´hQtt´<¯þþ~uuõääd‡sáÂ:Þßߟ˜˜(ÓýâÅ‹YYY8ŽŸ:uŠÁ`äååµ··ßºu˶+00ÐÝݽ©©©¦¦fæÌ™ P›6mêëëKOO¬_¿¾¯¯/%%ÐÝÝM‹Ë6*++õõõq‡×®®.‰þ)--555…¾ÏŸ?733{üø1Žã½½½ZZZÝÝÝ€4¦644Ô××kjjfddà¯pÒÉËk¦t7ÂàOž<á‘ …ÒC©Ä˜ªø<ö÷÷“[ øôÓOûúúnܸ{^¾|y}}}yy9“ÉLHHiT¬1\Ö˜úÖJíéé±²²rrr"×7}útb +..ž3g̯¦¦Çq{{û¼¼Ÿ555øëâ“Þ&‡Åe)õÊ•+óçχÛfffÅÅʼn?þ“O>!|Ùl6“É‹Åk×®MIIÁe)uxxxÙ²epÔº‘™¼ÌfÊëFéÌqY•Pªâó( ¾¾žÜQ°0‘vuuµ†††L£t4 Þw ””äááE‰~ééé)//‡vUUU€……Å‹/ åÉ“'_~ù¥Ÿ/‹¯_¿ÎårCBB¼½½¹\®L÷Ÿ~úÉËË §M›FþŠ Ã155¥ÑhÍÍÍÐØÔÔdiiùÆÖ‘ÃJ…¸jÕ*¸xèÐ!â›>```àøñãäK—.åñx%%%ÅÅÅò.S¨¨¨ddd”––¦¦¦B‹Ìäe6Èïüw@ñy”Fæ¥.(M@}}=\¢È3¾dÙ¾qLöðð8|ø0—Ë533+,,„öÈÈH???xQfÑ¢E;wî$Xãã㜜jkkkkkCCCåyñù| ÜÜÜ®®®ÔÔT >Ÿ/Ó}óæÍmmm0Ι3g F~~>‡Ã)**²±±U¸»»777×ÖÖ:::Âïì@á˜J ÄU*6›½fÍ++«ÞÞ^xôŸþ±··_¶lYQQQ}}}^^ž£££³³³@ ß±c‡ƒƒ‹Å’¨¼>ì?žx¸+¼¼fJw£tpˆ¼1•Çãä<â8ž––F4_º÷`a‹ÕÐÐððáC[[Û¸¸8™Fƒ¼ïìîܹٳgùàÇ477‡Kº¾¾¾mÛ¶……… [(¢££-,,ôôô6mÚÔÓÓíÒ^8Žçää|ôÑGjjjÓ§O/((é>44´råJ"+‘H”˜˜Èd2µµµ—,YGǹ\nPP‘‘‘¹¹ù®]»à¤@©Ïž=#‡Å__íM:500P¢úûû£¢¢fΜ©¥¥åèèxäÈ⪜Íf¾ýö[ »„˜Äb±§§'ÑiÒÉËk¦Ìn¡R…BáÒ¥Kuttä ¥*þœÃÂééé|ð±±ñ_|Áçóeå Œ@Z©¯½?•Íf£'©ïLcc£ôm9™Æ7×6ŽŽÿþj’Ú÷¨ÿR£Æ”)SÂÃÃGb|Ð예 ÙAURÔ)A RÔ)A $ß¡ÒÛÛKü¾P@âqI¥¢÷~!&JEÿF‰ hŠ H©j€”Š H©jð×€%¥wIEND®B`‚XQilla-2.3.0/docs/dom3-api/XPath2MemoryManager_8hpp.html0000644000151400015140000001574511653571066017631 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

XPath2MemoryManager.hpp File Reference

#include <algorithm>
#include <assert.h>
#include <cstddef>
#include <xqilla/framework/XQillaExport.hpp>
#include <xercesc/framework/MemoryManager.hpp>
Include dependency graph for XPath2MemoryManager.hpp:

Go to the source code of this file.

Classes

class  XPath2MemoryManager
class  XQillaAllocator< _Tp >
struct  XQillaAllocator< _Tp >::rebind< _Tp1 >
class  AutoRelease< TYPE >
class  AutoDelete< TYPE >
class  AutoDeleteArray< TYPE >
class  AutoDeallocate< TYPE >

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


Functions

void * operator new (size_t amt, xercesc::MemoryManager *memMgr)
void operator delete (void *ptr, xercesc::MemoryManager *memMgr)

Function Documentation

void operator delete ( void *  ptr,
xercesc::MemoryManager memMgr 
) [inline]
void* operator new ( size_t  amt,
xercesc::MemoryManager memMgr 
) [inline]
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMLSSerializerFilter__inherit__graph.png0000644000151400015140000001125211653571066025227 00000000000000‰PNG  IHDRØu£À¸ŠbKGDÿÿÿ ½§“_IDATxœí{TGûÇ'$ W‰ÜE¥€pPÑŠEHñg«(àm) ÖÒc%*ö¨X¢X,Ê­TÔ¢ˆ"^”RD¼€\ªmÐÃÅ€r’H²šËþþؾû®–€©,v>Í<3Ï3ÏßÌìn– EQŒ5*c"„"@!B("„0”hñâÅÊ G”——+%MYWÍ4ÍÅÅeÊ”)J‰¡>µµµJÓ…˜——·jÕ*¥DƒPŸóçϯ^½ZYúçˆJ…¡PˆJ…¡PˆJ…ø4Ó¦M }ñⱃP(d±XNNN:::óæÍûî»ï$ îkmm=à*rÉ’%4­¥¥ëHìÐÒÒB£Ñ̼3m0p— 4&@!¤¦¦†Ífwvvfgg÷õõÍ™3‡ÇãaM|>îܹwïÞ=pà@]]]llì™3g/^,•J±OŸ>mllÄCq¹Üªª*bðüüü¼¼¼4s"zzzÛ·o'öikkc2™ÿPoª$yyyÊŠ6V?~ŒWe2™»»{\\V‰‰qss“H$x@0mÚ´¬¬,Ì×××wçÎxkNNÎ’%Kð˜€ÈÈÈI“&±Ùl¬ÃãÇÿwùP¾#‘쥔P(о»±¨¨ÈÌÌŒËåÎ;gcc# b±˜Åb²X,±XŒí#•••ñññ“'O Å'y/@qq±£££ººº¥¥åéÓ§‰dPwâVE²mÑh´7–””`ÕÜÜܸ¸8:ŽwÐÒÒb±X¹¹¹X500ðüùóè7ßüüü€€bÀ-[¶ØÚÚFDD r÷y<Þ† ˜L¦¹¹yLL ‚ R©4))ÉÆÆFGGÇÕÕõöíÛ$Ç>(ò‡æââ066*qò«««‡Š¬|”¥h ÀŠº~ýúîîn##£Û·ocÆøûû···755Í™3gÇŽاvÉ’%ׯ_OHH°··ojjjnnž?~LLÌP^`„ ééél6ûĉ C $%% êÎãñ°el@È­+wïÞÕÓÓCQû½xñbÀAݼyÓÈÈóýóÏ?ïß¿…ÕÔÔìíí„ññãÇ=ÒÐÐÈÎÎFß\Ÿ‚ƒƒ½¼¼Z[[›ššfΜ™œœlhhXPPðìÙ³’’SSS¬³ü±cÁøÄb±üB8`E$Ÿ|@@ò×TîŠøN…ÈårÍÍÍp£­­-¾U•——Ïš5 ›‹¦¦&Eg̘QPP€µ>|ø/Ë{q8UUÕC‡q¹\™LÆçó¥RéPî$G1R!Þºu‹Édâ¾_~ùell,Š¢¹¹¹‹/&ÆÄ )))'NlooÇeñúõk:þûï¿c1 ¬¬¬lllrrrðNž<‰u–?vt°ïÙŠ‹‹‡"ùä“3Ž…ˆ¢èž={ètzOOnQWW'NŸ®®.6¯_¿ÆZ›››åãÈ{¡(Z]] ¥¥åæævõêUw’£ ijgÏ:;;ceccãòòò.iiiü1î[YYiee%“Éüüü222ÐÁ„(•J-ZäããóèÑ#ìoÙÑщDX̦¦&uuu ††| û÷ïc=vùÌÑÁô7@ˆä“OÎx=Gttt¤¦¦z{{oݺ72™L|¹\nmm-fWUU˜šš>}ú³444ìÛ·o(/‘H$“É.\¸ÀápÂÂÂ>ýôS‡3”»‚ (š––¶téR¬¼gÏü  8àëë‹[.\Èçó«««ËËËýüü «¢¢’}óæÍÌÌLÌbddD§ÓÛÚÚ°jkk«™™Ù´iÓˆ×à< Ÿ±Q@>ùïe) ·"J¥Rooï½{÷r8cc㢢"Ì€Ýø˜?þæÍ›‰ŸÚøøxGGÇæææææfWW×ððð¡¼D"‘ººz~~þ‹/233ÕÕÕE"ÑPî$çˆøí›ÊÊÊåË—›››óx<¬õåË—3fÌX´hQiié£G ìíí]]]A kÒ¦M›ììì<==ñ˜VDŒ´´4ìJ«yyyµµµ577ÛÛÛÇÅÅ¥¤¤²ÙìÒÒRKKK¬³ü±ËÇjEäóùŠL>9ãukþᇜœœ°5ÿÒ¥K&&&EѾ¾¾Ï>ûL__ßÀÀ ""B(çA˜˜SSS]]ݵk×r¹\Ì.ï…¢h^^Þ| ¦¦fkk{ùòewâÄ2ñ#:eÊ”àà`âYŠ¢`ëÖ­3gÎÔÔÔ´··OLLìïïÇ}1)TVVŽ;6Àäî aOcU‡b```bb²eË‘H$‘H’’’¬¬¬´´´,X€-WC»‚B‹Å .ÔÖÖjÇJˆðyDÈ(Ï#BÞC !” B  !” B  !” B  !” ñméìävuqÇ:‹q2¿Yqpp022RJ´qDo/ÀdöŽu"ïšžžìÉ&¥DSÚK˜•j|ÑÖf@£Ñ¬­¥Ãw}¿Ð××·µµUV4¥­ˆÿNþøã™—W ¢b›ÉX§3ŽçˆoEQQƒ¡Â`Ћ‹Æ:—ñ âèAQôܹÛ‰L"‘ž;§´´ý;B=÷î=}þ¼+÷ôôÕÕ=ÓtÆ7Pˆ£§°°^Uõï-UU¥_ºtló×@!މDVPP'ÿ}±,K îI$²±Íjü…8Jª«½|‰-/_"7o>«|Æ;Pˆ£äÒ¥:ãÙc0huc•Ïx q4 ˆøÊ•F‰ä›Ø‰ìÊ•Fò  GÃþóA$òvWT<|÷ù¼@!ކ‹ïÑ郼·‰N§]¼wçÑ…8bø|äúõ?½@–Hd‚Wï>«ñâˆ)-mÆïÚÈ#KKK›Þe>ïð¡‡Ãå ûúþwãæÛo ûö­Ä-'ªëëkAfã¥=öïA__‹¨3--5ÀÔ©c—ÑûÜš!” B  !” B  !” B  !” B  !” B  !” B  !” B  !” B  !” B  !” B  !” B  !” B  !” B  !” B  !” B  !” B Þxclffæ¦2N¹p¡ h6Ö‰Œ?"""ðòB¤ÑyS>„:] •¾ëDÆDí |uq||¼‡‡Ç;Mò²r÷îÝD ¬¢¢èîînmmµ²²ÂBñùüÆÆFòáŽ=ÚÓÓ³gϞɓ'···=z”ÏçGGG“7‘£­­½víZeu#›.¢…N§Ëf³7nÜxùòå·k(ÞÏ­YOOoÒ¤IL&söìÙ{÷î511¹páÖtêÔ)==½äää?üÐÜÜÜÍÍ-==½»»»´´ëàìì\YY‰‡ª©©™5kùpÕÕÕáááÖÖÖzzzŽŽŽÑÑÑ7oÞ¶‰]]]â7`oÙlºˆÈ‡•Éd}}}o9 #bMMM@@ŸÏTTT„„„ H$ééé+V¬X±bEzzºD"éêêòôô¬¯¯_½zuCCCvvöêÕ«ýüüöïß/°hò^Øaaa>>>AAAeee©T:¨;6„|y4mÙ²eµµµXµ¼¼<44[ü0ÔÕÕ׬YS^^ŽU=<<*++ñoŸ~ýõ×E‹‘O‹¦¦faa!þwrttÌË˶‰|Ò~ùåüˆnݺîëëëïïöìYâÐÄ÷ù/ÞÞÞ¸‘|”æææAH~>7mÚX¹råÛ„%adBü補;Æår;öí·ßª««òóóÙlvFFÆáÇëëë³³³±þçÏŸß±cGcccUUÕþýû9ÒÑÑ‘››‹µÊ{!’àçç÷óÏ?‡„„‚É+Έ…øüùóK—.9;;?~|çΘQWW÷È‘#ØÁ`ÛßßÑ €Aww÷ôéÓ---µµµëÖ­ÔëÕ«W2™,!!A"‘TTTìܹ³°°p(wAQ´¨¨ÈÅÅ«z{{Ÿ:ujöìÙøi"‚ çÎ#N«ƒƒCssó½{÷¶nÝ:lüÄÄD lǧÑhóæÍ+..&ovÒp^½z•°`Á±XŒ_TÉ#‰ccc™L&nTp”‘¢ô°#ÛšQ=xðàÊ•+wíÚUWWWSSƒÙÝÜܲ²²zzzÚÚÚ¶mÛVXXHôòññùñÇŸ••ÕÕÕ¥¯¯ïéé¹a앤‰|Òp´µµ£¢¢544‚‚‚¼¼¼¶mÛ–šš*ß³¬¬ìúõëD‹‚£ ‹±±±ƒƒƒ¿¿ÿÕ«WO^q>¡ Œ…¼°c‰Ú{?ohCÆPˆJ…¡PˆJ…¡PˆJ…¡PˆJ0𛕺º:ü?ä⯿þ`フohX@Æ xŽ¡PˆJ…¡PˆJðÿ˜¹h<&ÉòIEND®B`‚XQilla-2.3.0/docs/dom3-api/tab_b.png0000644000151400015140000000026211653571065013752 00000000000000‰PNG  IHDR$ÇÇ[yIDATxíÝÛ Â €Ñ?|SVÓˆ´bB#P®½8³‰O¾:É™D>ßm{SûIí'¹äz(!•TBÞ‰y#¤WìJDp¾ã|Ã…†ó »ìR˜]áá æ™Ð6q·‰›]ç•qŠŒÓÊÕD.&0èÀ =ƒJD”ˆü=@*é*ç×IEND®B`‚XQilla-2.3.0/docs/dom3-api/inherit_graph_29.png0000644000151400015140000000413111653571066016040 00000000000000‰PNG  IHDRÛ(øç bKGDÿÿÿ ½§“IDATxœíœYL]ÇÏX(¦H¤ kH¡Á‚ŠF 1Z…K¶"Vå1ÊÐDBRˆ!FÀÀ…Á˜ "„ )‹!dq‰+ˆ±D( lÂ`)[·ù.N¾ÉØeм¾2¯žßÕ9Ï<Ï™ÿ9üç̆bA‚1ìØnÄ G"˜r$‚Y G"˜…µÓÝÝŸŸ¿]R'mmmÔmooOJJú½’)“““½½½&A;ó¼ÚÚÚߢñ·S[[{æÌ“ zŽD0 äH³@ŽD0 äH³@ŽD0‹?Ó‘___‰D2??OMXYY‘J¥¡¡¡NNN¼yó¦^¯'kL^@‰Å0ltt&Àõt&‘_.xkcþr£££p Ãþ™:«ü™Ž¼zõjzzzjjª¼¼\­V‡‡‡/--ÁCËËËèïï/((xûömvvvuuµX,6 0a||üÝ»wäP8Ž÷ôôl£`s>þìææöoKÚþXGr¹\@àééyüøñ††??¿’’xèÆ\.·££#&&F(ÆÇÇ¿yóf||¼¼¼&œhn%†¥§§·´´ÀnUU•L&c±Xd‚£££T*­ªª‚ݤ¤¤ÚÚZòÆýøñãÄÄÄM®¹x›‹óâÅ zÁÍÍÍû÷ïçp8îîî·nÝ>| ¬%ØÄb †aÕÕÕ"‘ÈÕÕµ°°`0ŠŠŠ„B¡““ÓÑ£GûúúLÆù٩ن ðèÑ#“ˆE$Éùóçgffø|~__ $$$LLL(Šðððëׯ+•J@llì³gÏòòò‚ƒƒ Åû÷ï###³²²¬Ui4‡{÷îMOO?xðÀÎÎN£ÑY,_ZZ*++3o”J%Us¿³³3AðZšŸŸ7™ÔË—/ù|>¬ýøñ£@ €Ãr8œoß¾‘cšNF,Š·¹8†F°Z­f³Ù©©©SSSðš™››ƒå0ÓbT588¸L< MIbb"Žãeee€………ââbW__ÿõë×––8yv›S£1’E¿mÅ‘8Ž{yy…„„äåå‘Á   ééiØnkk ƒÊ Aõõõðè‡ȶyÕâ⢽½ýíÛ·q7ËË˃ÁZ¹5¶àÈׯ_»¹¹‘µW®\ÉÎÎ&¢ªªJ,SǤq¤Eñ6‡^ðÆÆÆÈȈF£1 ÝÝÝ0“ê ‹ „• €‡hJ:;; ‚Ðjµ0( +**HU•••&Ž´95,úm+Ï‘ÎÎÎiiiÃÃ×/_&ƒãããîîîðÓ¢X,ƒñ   €J¥ €‘Hg­ÊÅÅ¥³³³··×ËË+::úùóç;vì°V¾y”J¥¿¿?/M#""ÈnRRR]]AoÙÔŸ7µmQ¼ÍÅ¡Ìf³?}úQQQažI“`~åØ,» ½½=ìNNN†……‘GCBBLξ…©ÙÀ¦gÍ™˜˜àñx§OŸNII!ƒ^^^äüq¡^I~~~MMM°=00ŸŸo­juuµ§§‡ ˆŠŠ ‹µ°°`­Ü&? £Ñ%“É`7333**J¯×“ Æ××·¤¤„¬Õëõ|>¿§§ÇÑÑqvv–:¦ÏÓ§OÉÚááa;;»õõu‚ ,Š·¹8ô‚WWWär¹Ñh\[[f{¤Åó1©‘Í”À¶H$ª¬¬$G€·xêÙmN†_³GÆÔÔÔŒŒŒšššööö¦¦&ÏÎÎV©T …"&&¦´´”Zuîܹœœœ¡¡¡¡¡¡«W¯ªT*kU†:uêÉ“'jµZ«ÕÚÛÛs8kåß¿¿ÿ¾y0???33óåË—îî¸±±±k×®ÁC2™lnnîĉ­­­J¥²¡¡!22ÒÓÓ“ºå³X¬„„„K—.:tˆÇãQçráÂ…ŒŒŒæææ±±±ŽŽŽ””‰Dâàà°(ÞæâÐ ÞØØÐjµl6{mm-77Ÿð”&Á›/IOO—J¥r¹|ff¦µµU&“™$lfj?‡MÏšpçÎÐÐP­VKDCCƒ»»ûââ"AjµúâÅ‹...{öìIKK[YY¡^+ëëëYYY»wïNNNÆqÆÍ«  6›$—ËiÊ©§ ¶©ôöö>{ö,ÜçH4Mffæ¾}û8Nppp~~þêê*Y /ú®®.@ii©I\§ÓÂÔ999P6¹†&âm.ŽMÁÅÅÅ®®®ÞÞÞwïÞMNNæñx:îØ±c»ví²–@Ðî‘›)ÿ¿WíÝ»×ÑÑñÈ‘#ðuF“ÏUôS£Á¢ß0êrÀ÷Õ+ÅįŢßþØß#þ£ G"˜r$‚Y G"˜r$‚Y G"˜r$‚Y G"˜r$‚YXøN ±Xüûu þBfgg̓?8ÒÛÛ}éâ·áââbþÒ†þŠ`è9Á,#Ì9Á,#ÌâÊ‘¬µÂbIEND®B`‚XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMMemoryManager-members.html0000644000151400015140000002124211653571065022662 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMMemoryManager Member List

This is the complete list of members for xercesc::DOMMemoryManager, including all inherited members.
allocate(XMLSize_t amount)=0xercesc::DOMMemoryManager [pure virtual]
allocate(XMLSize_t amount, DOMMemoryManager::NodeObjectType type)=0xercesc::DOMMemoryManager [pure virtual]
ATTR_NS_OBJECT enum valuexercesc::DOMMemoryManager
ATTR_OBJECT enum valuexercesc::DOMMemoryManager
CDATA_SECTION_OBJECT enum valuexercesc::DOMMemoryManager
cloneString(const XMLCh *src)=0xercesc::DOMMemoryManager [pure virtual]
COMMENT_OBJECT enum valuexercesc::DOMMemoryManager
DOCUMENT_FRAGMENT_OBJECT enum valuexercesc::DOMMemoryManager
DOCUMENT_TYPE_OBJECT enum valuexercesc::DOMMemoryManager
DOMMemoryManager()xercesc::DOMMemoryManager [inline, protected]
ELEMENT_NS_OBJECT enum valuexercesc::DOMMemoryManager
ELEMENT_OBJECT enum valuexercesc::DOMMemoryManager
ENTITY_OBJECT enum valuexercesc::DOMMemoryManager
ENTITY_REFERENCE_OBJECT enum valuexercesc::DOMMemoryManager
getMemoryAllocationBlockSize() const =0xercesc::DOMMemoryManager [pure virtual]
NodeObjectType enum namexercesc::DOMMemoryManager
NOTATION_OBJECT enum valuexercesc::DOMMemoryManager
PROCESSING_INSTRUCTION_OBJECT enum valuexercesc::DOMMemoryManager
release(DOMNode *object, DOMMemoryManager::NodeObjectType type)=0xercesc::DOMMemoryManager [pure virtual]
setMemoryAllocationBlockSize(XMLSize_t size)=0xercesc::DOMMemoryManager [pure virtual]
TEXT_OBJECT enum valuexercesc::DOMMemoryManager
~DOMMemoryManager()xercesc::DOMMemoryManager [inline, virtual]
XQilla-2.3.0/docs/dom3-api/XQillaPlatformUtils_8hpp__incl.png0000644000151400015140000001725411653571065020737 00000000000000‰PNG  IHDR¸u³©c:bKGDÿÿÿ ½§“aIDATxœíÝi\×Úð“b€°#Èân(*úªüT„‚^¹Øº ‹p+âm± D¤*TAŠ;Š`+àFUDE„ºáv)‚z+ ¶Ê¢ ÃÈ6ï‡éM#™,` žÿ§a2sÎsfÎ<93$'$ ÃÉÈÊT$J%ȉd (;Ðy³gÏVv  åää(;ðü×»ç"‘HcÆŒ166Vv @ÁjkkŸ={צê€e϶hÑ"eG¬  à‡~PvàoðŒd€D 2@¢ Q€ (@H”½Yyy¹““SAApÍ;wfÏžýòåKüÏÖÖÖÄÄÄ€€€¹s祥¥ñù|„PUU•££#á‚$Ž"ÜÜÜ6lØPSS#ÏŽB†ÅÄÄÌ;·“­% ©ªªJúÔ‘6Ê, ôV({3+++__ß}ûö555!„š››ãããýýý‡ †jii |öìÙÊ•+=êíí““&ètº——WG«Û¿ÿ/¿ü’‘‘‘€g=™»ÔÔÔxxxàË>|ÈÍÍýé§Ÿ:Zo'ˆÖ۹Ƃ>e/·téR]]ÝÄÄD„Б#G —,Y‚¿ôóÏ?ëééÅÇÇO:ÕÂÂbæÌ™‡®©©¹|ù²®®îÊ•+;Z—žžž¡¡¡¥¥ehhèÓ§O[ZZ¤ï"X,¾ÜÖÖ†êžÏÏ‹Ö۹Ƃ>e/G¡PÂÃó³³ÓÒÒ²³³ÃÃÃ)”¿¾e““ãççG&ÿÝh4Ú’%Krss¥ß„~ýõ×... ,HOO'Ü/¿‘—²ãêÕ«B_}õU»e„PSSSll¬‡‡Ç¢E‹:Äáp𨊊Š<==KKK³³³ýýýçÏŸŸžž~ýúu///77·ääd™‡E´.ÂÆÞ½{7 `Μ9ÞÞÞׯ_',äÑ£G>>>îîîiiiÂrîܹ³téÒ/¿ürß¾}\.—p¥Ìð€ªDÙû1ÂÓÓ3))ÉÏÏoèСøÊ¦¦&&“iiiÙnc++«W¯^I)­¥¥eóæÍVVV©©©AAAGmhhÀ_jmme³Ù---ÕÕÕ?þøãÈ‘#µµµ¥ïxðàA„йsçB¢Ë¡„„„ºººÃ‡ïرãáÇ'OžÄן9s&<<ÜÊÊ !ôŸÿüçСCø£ƒÂÂÂcÇŽ8qB8Z”¤]]í´¶¶FEEÍŸ?ÿÔ©SK—.‹‹kmmßìþýûGe0IIIÂ/\¸°}ûömÛ¶Ý¿_ø.B¸ô ({? ÃþüóO2™üúõëv/‘H$ñEǘâ¨Tê±cÇ‚ƒƒ ñÛäææfü¥+V¸ººº¹¹ùûû³X¬M›6ɹ£8wãÆo¿ýÖÔÔtذaË–-αråʉ'Òh4„§§§¦¦æœ9sBÞÞÞššš...¡ÆÆFÙÇE2.—‹a›Í¦R©...YYYýúõß ¯}ÆŒ¢5YXXŒ=zÅŠ˜ W‚¾ëÝûåææÇÇLJ……Íš5kúôé!:n``PQQakk+ºqEEÅ Aƒ¤”F¡P*++wíÚÅf³ñaPjjª¹¹y'vW__/ÌÌÌð?ÍÍÍëêêðeÑð455ñ’Û- ‰Î+!ÿÚÚÚñññ)))#FŒðööž:uªøf†††HìÍÆÂÂB§0f• e/÷áÇ}ûö­ZµÊÆÆÆßß÷îÝ›DggçŸþY ànݺ5///==ÝÉÉIJmmmQQQK–,9räÈwß}'$ÚQ__ŸL&ã0BUWWáËíR¡ÆÆÆ¢Ÿàyýúµššš<ÿ,jkkQQQYYY®®®„CTññ8B¨²²_xóæ žI%­=$ÊÞ Ã°Ý»w6ÌÍÍ !´xñb}}ý½{÷â¯úûû3™ÌÐÐЇVVVšššFGGs8|cI¸\.Ç£P('%%!$ó_Û2wd³Ùí6¦P(ŽŽŽ{÷î­©©yõêÕ±cÇœ;Øzäââ²wïÞÂÂÂššš¢¢¢˜˜˜9s樫« 7¯G"‘ÂÂÂnÞ¼ÙÜÜÌår) ~ë}ùòe) pû÷ﯪªúý÷ß“’’„†®=Üz÷fׯ_ôèQrr2>ö¡P(aaa«W¯¶·····×ÔÔJ¸6UÜzƒOP(È’´‰ÅÐÒÒrww—g%èq Q zzzëÖ­“g%èq Q€ (@H” $J%ȉd€oæô`$iذaúúúÊD.<B!˜Õ±ï ¿úúú—/_µ©:à»Þ=Ø¢E‹”‚\0 UWk¿}«meÕп¿\3h(\]fy¹ÞàÁffD“þ¨œI“&);ð7Q‚®UQQ»fMÚÓ§Õaa.«V9ª©)çiŸ/8|8çΫÖÖf >––ÝñË< ×€g” «Øy³gïäñ×®…üûßNÊÊ’!55ò¿ÿítõê:O0{öÎò"yÁˆt‰?þxœþøñkcn` #…¢*oÉ\.ÿÈ‘‚¸¸ì %$xb¤ìˆ@‰(†aii÷¶lÉ0@7!ÁgâDi?,¡,¿ýözÍš´wïX›6ýÓÇgá\åA¢ŠôöíÇuëNݼù<(è‹ÐP—~ýT÷¿…mm¼]»®:tÃÞ~äž=K ÐUvD@uA¢ söìÃM›Îh%$xÿßÿ Uv8ryøðÕš5éLfstôW NVv8@EA¢ Àd6oØqéÒcŸi›7{Ðé?[·n½˜–voÞ¼ñÛ·/40öK o‚D >×µkOŒ3jjä={–88ŒRv8TPðûºu§ø|A\Üâüc¬²Ãª%è¼[Œ³YYž¾v7ºëèh(;¢ÏÂb±££³RS .œ¼mÛž5.] %è¤Û·Ë×­;ÙÒ‰]4oÞxe‡£0YYÅ6dhjRãã½§O·Tv8@%@¢ÖÒÂ‰Šº–vïÿ·ØÈˆ®ìˆ¬®®qýú³×®=ññ™5_S“ªìˆ€’A¢óàÁË5kÒØqq‹ÜÝ'(;œ.”•UÌ`œÕ××üñG¯)S†); L(¼¸\~\\vbbþ´i–ññKÌÍ{ƬEŸ£ªª~íÚS÷îU:2sÕÕÕ”PH”@.OžT§½yÃŒŒôèS_eÁ¿huað`ÄŸ±cÍ•PUù.PY|¾`÷î«nnñzzš¹¹a¾¾v}'K"„H$’¯¯]^CWWÓÍ-~÷î«|¾@ÙAî#J Í‹µß}—^ZZµq£ûòå3Éä>”"Û°ää[ÑÑYãÆ™'$ø Ö_Ùî#J@쓤íâpø×®…¬Xaß—³$BˆL&­XaíZ‡Ãwv†‰ÚúQÕÕ kמ¼wï…ªM’¦ xsÓ&w*>?гA¢ì[?~³fMzm-kÇŽ^>Iš*À'j31ÑÙ»×ÛÆf ²Ã߸è+¸\~LÌ%w÷urrB!Kvw÷ ¹¹¡ÆÆ:óæýs‰Ëå+;"ÐI0¢ìž=«þö۴ׯ?ôµIÒT>QÛ?dZY™$$x[Y™(;"Ða0¢ìåø|Áynnñººyy}n’4Uð¿‰ÚÂh4õ9sv8µõ80¢ìÍ^½ª[³ædIɘ$M'j³±¸w¯÷!FÊŽÈ F”½†aII7wq8<˜$ME'jkkã:9íLJº ÔžF”½PMMúu§îÞ­€IÒT“p¢¶éÓ­vïö45…‰ÚT$ÊÞ&5µ0:ú¢‰‰nB‚÷„ 0IšêÂ'j«­mܸÑ&jSq({&³9<ülvvéªUŽ0IZ œ¨ÍÕÕ&6v‘–²#Ä Qö$,V«Žð¥«WKŒ3ÚÚ ^0IZÏ‚OÔÖÔÔ·ØÅeá6RN=èðôªÇàpx‹¸}»¬Ýú[ Hñð°ÍÍ …,ÙãLž<4//ÌÃÃ6 %0ð§[ÚmpëVÙ¢E8žRÂF”=ÈÆç’“o™˜èܼ¹A[û¯ÁÅíÛekמ°={–Ìš5R¹‚ÏTPð{HÈi2™ï5c†¾’Åjµ·ß^[Ë ˜¹uëWʰςeÏpþ|QJÊm„“Ù¼aCB¨¥…Ã`œñô<ìè8*?=dÉ^ÀÁaT~þzGÇQžž‡Œ3--„І õõÍ¡ääÛ.);Æ> F”=ÀŸ~prŠc³9ø¹"‘Hßïž‘ñ°ºº!&æ« &+;@ `6nqâ }û|à#x½UMMÃ7ߤ¿ikã @\] Òwüùç‡[·Ê ~/(ø½¥…£®®Æã „}ãäÉ@{{øm—û$Q²Ùìúúz%FB ìÅ‹S˜Ìf !D:ÔÀÎnè”)ƒmmjh¨+;ºî¦¡¡¡¯¯ÿ™…Ô×׳Ùl…Ä£Dl6·¨è̓¾zõЉ1 ´ÎœY¦§¿É®`úúúÕOemmí³gÏ”ø †a»w?xñ¢aüøþcÇö;ÖXO¯Ÿ²ƒR¦þýû[[[f!OŸ>­««SH<*¢¡¡íÉ“ÚÒÒº’’ºáÃõBB¦À/|(Ö˜1cŒ…ÌÄåààÐ}á€O±X­ ÖÇËÞ´xúô©¢ŠRHÂU)óçÿµðâEmÿþ:0·´[SªôxÐ!ð¶Ú àãA $J%ȉd€D 2ta¢¬¨¨À?Û%¾ Åëׯ—-[†a˜¯¯/Nïºð>“”¶àMøí·ß(ÊÙ³g…ë333©Tjii)þgss3ƒÁ?~¦håååxEÂ)ÜÜÜZZZäÙR¹¤Dˆ7ð¶¶¶±cÇ®\¹ðU«VMš4‰ÃáàÛ„††Îœ9“Çã ÷jjj2dÈáÇūy4BåååŸÝ&i¤ÄÐuµ?yòäÉ“'ªSNwö"q„ç¢ÝJy:aWk×1½½ýæÍ›%mßÑ«¾ë:^~~þ»wïD×txDyñâEsssü+á'Ož1bDss³@ Ø¿ÿèÑ£µµµíììòóóñQ±”ÀK—.Mœ8QSSÓÔÔ466_ùþý{--- iÓ¦!„ €þwO‘——7hР۷oîH"‘’““GÝ¿ÿØØØ'N :TWWwÓ¦Mø\.7,,ÌÄÄÄØØ8,,ŒËåÚÙÙÅÇÇ#„˜L&™L Eñù|}}ýË—/#„þõ¯YXX„††¶¶¶¶‹DøN:a„÷ïß‹6!D¥R?žœœ¼}ûö”””ãÇ««ÿõeíÔÔÔÍ›7«©ý=¡¿––ƒÁHKKëÄqëÐÉÂËÏÌÌ9r¤±±qppp[[›ÌöZYY ψ¸ëׯ[ZZêëëoß¾]xÊÚU!©^Ax¬QÏ=,‘‘‘ƒ êß¿¿ŸŸŸp¸$¾B(++ËÆÆ†F£ 6ìĉ!G¸»°‰vá²øÕÑ®-rvÂ.mš8‰´jÕ*üâ",G´]r–Ù}O4kÊ9¢ôóóó÷÷ûö­‰‰Éýû÷1 KLL466>wî\uuõåË—-,,Bâ"á‹Å¢R©Ë—/¯¬¬LMMEÕÖÖb–œœ|âÄ ìÓ÷|yîܹ7nܨ©©!Ü!äååÅb±’’’B‹/f±X‰‰‰x§Á0lÇŽ ,xýúuII‰­­mxxø–-[ÜÜÜ0 ËÌÌÔÑѱµµÅ0ìÑ£G4­¹¹Ã0''§/^”””Œ;6**J4’ââb„@ fI|¸¦¦æØ±c ¥©©iç΄»K¹äY)O'ìê¦aD#¾‡êééI¯UR™¢º®ã‰(;“(ëëë-,,lll„õY[[?~\¸ÁO?ý$=Q¶µµý÷¿ÿmjjâóù¿þú«ð€.X°€ÉdbD]¡¤¤DÊŽ¡¢¢" Ã8N»e|ƒQ£FÕÔÔàæääL˜0áÑ£Gt:Ãá¬[·.""B]]½¾¾~çή®®ø¾jjj«ëܹs–––¢‘àË !ôüùsaÛ…MÀ 555___Ñ(Ìà¢îÞ½kddÔ‰ã&å-Püd‰¶ðӧO[ZZÊÙ^Âþ€*((À0ŒÏçã!VA¸’°@¡nN”âÇ #ê9¢ 9rä¹sçðWŸ={&\ß‹Édª««ïÚµ«¾¾^ 466òù|I»K¹äY)O'ìê¦a²¥¤Úñ5’ÊÕuO1‰ð-[¶¨©© ËÒÐÐ(..¾úÛo¿IO”†effΘ1c„ ø¿öÊËËÿùÏ⯊wáƒñ±OO á2öɨuuuù|¾‰‰É;w&Ož|ïÞ½)S¦dffººº8pð7oÞ „Øl6^NII F_vtttppð÷÷Ç7mîĉººº¿þú+F»pá‚pý€rssÛÕƒΘ1££Ç “õ°¦ÝÉÂK6íñãÇ4MÎö–*++=à„U®”3®ûŸQ¶;VQÏ=,4­´´T¼ñ½0 »}ûöÂ… µ´´fΜyåÊI»KºÊÊÊäI”òwÂ.mFÔ-ÓÓÓ'Mš$½váÆ„eŠêºŽ§€g”¡7oÞìß¿ßÙÙ9$$_cnnþøñcá2'}a³Ù‹/ +**:xð ¾òêÕ«...’vÁ¬î(|¤†·¹¾¾þÞ½{d2ÙÕÕ533³¬¬ÌÖÖö‹/¾ÈÉɹy󦛛BÈÄÄDMMíåË—øî/^¼077—••uøðáS§Nåçç‹7¡ºº:88xçÎööö‘‘‘>|À_òññÙºu+þNˆòòò:yòdll¬——WG›tâ' ‡÷„PYY™™™™œí•„ð¡j»*¤¬T„ÇJ¼çàëñÃbfföÇàkŠ‹‹cbb$íÅf³ÁÙ³g™Lf@@€»»;“É$Ü]üBÀ?7VUU%O+äï„]Ú4ñÀ0 ;tè~}I©'g™Ý×ñD³¦<#J>Ÿïìì¼uëV&“9`À€‹/b¶mÛ6ccã .ÔÔÔdggË|FY__O"‘²³³ñÏ"„ŠŠŠ|}}«ªªðZß3%íˆÉ1¢ ^¸páüñøñã©S§~óÍ7†={–N§Ïž=ðœœ:nmm-l©···““ÓË—/KKK­­­7oÞ,)ªÈÈÈ#F°ÙlÑ&‚yóæÍš5 ¿eàp8666^^^ø«?~9r¤££ãÕ«WŸ?266nkkëèqÛ)þñ I'K8.//ðà••þHyÚ+|ôyôèц†Iœ° IõJÑ#JÂc…õœv§ÞÆÆ¦´´´´´túôé_ýµ¤½Øl6FËÈȨ««;räFc³Ù„»‹ö"üƒ‡ÇŽûøñã—_~)Úðs!ÞIäï„]Ú4L¤[VVVxxxXXX»ôÚ%•Ù=O·Þûöí?~<>8?þ¼©©)“Éäp8[¶l:t(N·³³KOO—ž(1 Û³gÁÀ<èå奯¯?ÄIJIâ;²vË,kÙ²eúúú†††+W®Äÿ]ÓÐÐ@¡Pð'ÜÍÍÍT*•Á`+b2™K—.544455]»v-›Í–›Í1bDDD„hŽ?Þ¯_?ÑÇ—< “ÉøŸMMM!!!cÇŽ¥ÑhÇÿþûïgÍšåééÙ¡ã&l>á[ áÉÂKKJJ XQilla DOM3 API Documentation SourceForge.net Logo

DOMProcessingInstruction.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <xercesc/dom/DOMNode.hpp>
Include dependency graph for DOMProcessingInstruction.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMProcessingInstruction
 The DOMProcessingInstruction interface represents a "processing instruction", used in XML as a way to keep processor-specific information in the text of the document. More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/XQillaPlatformUtils_8hpp_source.html0000644000151400015140000001242411653571065021325 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

XQillaPlatformUtils.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef _XQILLAPLATFORMUTILS_HPP
00021 #define _XQILLAPLATFORMUTILS_HPP
00022 
00023 #include <xqilla/framework/XQillaExport.hpp>
00024 
00025 #include <xercesc/util/XercesDefs.hpp>
00026 XERCES_CPP_NAMESPACE_BEGIN
00027 class MemoryManager;
00028 XERCES_CPP_NAMESPACE_END
00029 
00034 class XQILLA_API XQillaPlatformUtils
00035 {
00036 public:
00037 
00045   static void initialize(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr = 0);
00046 
00052   static void terminate();
00053 
00060   static void enableExtendedPrecision(bool bEnable);
00061 
00062 };
00063 #endif
00064 
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1MemoryManager__inherit__graph.map0000644000151400015140000000023511653571066023704 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMXPathResult_8hpp__incl.map0000644000151400015140000000003511653571065017560 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMAttr_8hpp__incl.png0000644000151400015140000001524111653571065016263 00000000000000‰PNG  IHDR˜uüô`êbKGDÿÿÿ ½§“VIDATxœíÝi\×ÚðÈ¢,‚l"Xe•UÑj/‚"›Z…´Zo¯·*QDýUñª}Ý+*E ¨UA«"áîâ‚ Š¸ÙT$–„dÞãÆ–jÈäùNæœ<3yxr&™™P0 C ÍÈ>2€ÔƒBzPÈRO‘ì€8yzz’‚Ô Óéd‡Ä†ßZÊ …2fÌ===²ÐÞ¾}[ZZ ™/K`F&kh4ÚÔ©SÉŽb@+((øÏþCv@œà32€ÔƒBzPÈR @êA!H=øÖR¹ËúúúAAAZZZD#›ÍNJJº{÷n]]‰‰‰‹‹Ë‚ ¨T*Þwøðá))) …X?**êÎ;©©©Ã‡Ç[’““øá‡ï¾ûîsâ€ÀŒLÅÆÆž9s&---**ª­­méÒ¥­­­øCíííË–-+++[¶lY||¼¿¿?Nˆˆàóùø õõõÏŸ?'†jiiyôè‘àà†åååéééåççuuusçÎíº €X@!“GZZZC‡ÕÕÕ;vì–-[ ÓÒÒð‡’““µ´´öìÙóå—_»¸¸ÄÅÅÕ××_ºt _ÁÉÉ©  €êæÍ›ŽŽŽ‚ƒ¿|ù²ªªjÍš5•••ÕÕÕx#ŸÏg2™]— (dòŽB¡Ì™3çöíÛøŸt:=00PAá¯ÄPQQY°`qAÏÔ©S ˆÓâ¯\¹2eÊÁóòòœœœLLLòòòðÆàà`„Ðüùó…–kjjÜÜÜŠŠŠ¾ýöÛ’’¡ØîÝ»çïïïããsüøqbå7n,Z´hÞ¼yèììÙ(æ}<(d×ÖÖ"„Z[[ÍÌÌ„V033«ªªÂ—mmmY,~tÙÖÖVTTäììL¬‰Wº»»#„\]]‰£ËC‡!„222„–q§OŸ^»v­¹¹¹Ðó9rdÍš5 Ä$.333&&fÛ¶m………'Nœè¡È(d w …øŒLAAÁÕÕ?º¼uë–††±fYYÙÛ·o]]]B®®®¯^½zùòe¯ã/]ºtìØ±***Bíß~û­ššÚäÉ“B---xcPP±±±µµõ¿ÿýobž(²È(dUWW!„•Êï°½âñT:(1§(ƒÁxñâd¾,k-e Fû˜ŠeeÚ|>ÅÑñ­¨»Qô Cê+(𭬃qÅ;¸“““xä‚èÉ™3÷Ö­K·´4<|8ÐØX̽^½~ÝœüìY}LŒŸ¯ïx ?;"PÈ€hmmëÖ¥gdÜ óZ¹ÒKQ‘œS¹\þþý9{÷æÌŸïã§®>ˆ”0À… ˆðäIÍòåÉ--¬\\,zïÐÏ®^}z|ÈÕ¸¸@ø¥K ¾µÁ0,!áê¬YûŒµéôÈPÅB®®–tz¤±±ö¬Yû®Â»/32𗦦ö°°“yyO7l˜³d‰‹È;M“ð£G¯mÙrnÚ4ë½{ji©‘(  _üøcŠ¢"õСEãÆ™’N·ŠŠþ Náry.š8qÙá€-âñø»wgûùtr™“1«BhÜ8Óœœ'§‘4ÚÁÝ»³y<~ï}€¬ƒ™¼{ó¦9$$õþý?wì ÑhÈçoHK»•æäd ¯¯Iv8€LPÈäZnnéªU'ôô4´´4 ;œ¿íÙ³úåËkhhÝ»w¡‡Ç²Ã¤CK9ÕÙÉÛ°áìâÅ 3gÚ_¼&U !diiðÇ«Üܬ/Nذálg'ìˆ9`F&^½j J®¬|»m›¯tNv'-íîúõgÌÌô9R—ìp€¤ÁŒLîddÜ÷òÚÅãñ/_—*†¢Ñ&\¾Îãñ½½wŸ=[Dv8@Ò`F&GÚÛ9kצ9sÿ_ÿrÙ°ÁGYYÖnÀáp·l9ìØ5__§íÛijjÊdG$ ™¼(-­]¾ü·÷ïÛöî]àåeKv8ý('çqXØï::êqq‹ÇŒ1"; ph)®ÎšµWWwHnn„lW1„——mnn„®îY³ö&$\%; 0#“qMMí«WÿN§?YµÊsÕ*/*U^Þºx<þ¾}9ûöѽ¼löìY © ×3É2(d²ìîÝ—ÁÁ)<ÿàÁE_}5šìpHpófeHH*•ªpèТ ¾ ;Ð_äåýYÞðùØîÝÙ¾¾±cÆåæFÊgCýãf¹¹‘cÆùúÆîÞÍçÃÛ¶l‚™ zó¦yÅŠãwî¼üé'Ÿx É#n›1qâ¨ôõ5ÈŽˆ2Y“—÷tåʪqqvvÆd‡3€¿ Ja2Yû÷7mš5Ùáq‚B&;:;y›7Ÿ;vì~WèÁƒá®ÐÂZ[?Ü¿û_ÿrÙ¸qŽ’•숀x@!“¯^5§TT¼‘™«Žú~=“¹¹þ¡C‹àz&ÙöË‚ÌÌ"oïݼììÕPÅzE£MÈÎ^ÝÙÉóöÞ•õ€ìp€ÀŒLºÉüUGý§£ƒ»uë‡ë™vì ©ªÂõLR ™{ú´vùòäwïZöî]èí-ãçë÷“Ë—‡…6lH\ÜbkkC²ÃŸ-¥UBÂÕ™3÷ªž› Uì“y{ÛææFjk«Ïœ¹®g’^0#“>ÍÍíáá§._~¼j•'‰?+KðŸÞ·îím»{÷·p=“ÔB&eîÝ{œÒÙÉ pv6#;™rãFeHHª’’¡C‹Æ‡ë™¤ ¼™K üª£ùóc­¬ ss# Š‰³³Ynn„¥¥Áüùp=“”™txó†¹bÅñÂÂçó§se q=Ó¤I£ùÅ®g’ PȤ@~~ÙÊ•ÇV9|8ÐÁaÙáÈ…G^%·¶²ùÅêT+²Ã½€CË ÿ­£€€x‹Ë—áŠIŒƒÃˆË—Ã]\,üýãá÷™>˜‘ \þù>88ùÙ³ú˜?8_Ÿ,iiw×­K·´48t(ÐÔT‡ìp€h0# Î{àí½«£ƒ›-;¿u$h´ ÙÙál6×Û{×¹sp=Ó3²‡ÅâDE¥¥§ß[²Äõ§Ÿ| ‚«ŽÈ‡_ÏtôèU?¿ñp=Ó…Œ¥¥µ¦¦:êêÂwÚyú´.((ùí[æîÝ f̰#%6ÐK—JV¯þ]__#..ÐÊJøz¦¶¶Žªª÷ÖÖð»M$€CK°Xœ%K£¢Ò„Úñß:ÒÔT¥Ó# Š @3fØåæFhjªÎœ)â÷™¢¢Ò–,9Æfw’›œ£nÚ´‰ìäNttæµk奥u¦¦:ø/2™¬+Ž9r%4ÔcÏž…ZZp‰Ì¥¡¡J£MàóùÛ·_(+«›2ÅrÐ %„PZÚݽ{éL&»¹™åî·Ÿ•48´”´ÜÜÒÅ‹0 £P(ŠŠ ÙÙ«ÛÛ9ÁÁ)÷À€É“ÍÉôÉõë+V¤*++:¨¦¦4}úü …’œüÔ2 ƒB&Q F›‹K ƒÑŽïvEE͆†VGG“ƒ µÈü uuM?þ˜úðáŸ::Cêë›y<>BˆBAÚÚê×®­ÓÖV';@9Ÿ‘ITXØI&“E¼yp¹üúúæ±cMÓÒ‚¡ŠICC­´´`GGÓ7o>T1„†!&“µzõïäÆ&o IÎÙ³Etz)—Ëlärù·nUþñÇ#²¢Ÿãüù‡·o?ïúšæä<ÉÌ,"+*9‡–R[ÛäêºÅâtÝá RU”Ÿ¿fĈ¡¤Ä>MUÕûiÓvöðš^½ºÖÈ&Ú’32 ‰Œ<ÍátŠ|ÛÀ0Äfw†„¤‡'`àãñø!!©l¶ˆ*†Â0ÄátFFž–|`ò ™$œ8q» à©ÐNQQJUÀ0¬£ƒ[^^/ùØÀ§)/¯ïèàb¢RDÞ¤—Ëå<=yò¶äc“CphÙï^¼x7mÚÿq8\ÁFeeE‡«®®<}º——­‹‹œ;&ššÚ¯]+ÏÉyœ]ÒÖÆÁ_VÁ”•óòÖŒ5Œ¬å²þÅãñgÏÞ÷äI —˧P’’"‡ÃÕÓÓðñqôñq7n$Üq_6p¹ü¢¢WçÏ?:þáÛ·LeeÅÎÎó5[[ã?þXI¥Â Ý>*d,‹Á`ìIN¾óË/W(„ahÄm77sW×ÑvvF2“ÖªªªÚÚÚŸ3‚ŒeÇ/)©½zõy^^yuuþÒ¯\9uÑ"¸…‰˜ýuYëG…ìíÛ·¥¥¥d„$›ª«[~ú銩©æøñãÇ&;"ñ6l˜ÍçŒ ÃYWW×zï^ݽ{õþÙüóÏS†BvD2eêԩIJˆ[Ä> >ÇÓ§µL“á3¼Ÿ&UfÍšÕÞÞ.ò¡ŠŠ ¡ ìÚHtïèè°µµ]ºt)†aË—/wrrâp8ýõGBÄŸ|>ßÕÕuãÆÝ­/r»ú>¾=~üøñãÇŸ9ˆÌdÝß}]z¶ç”ˆˆˆpqqár¹Ä ­­­#GŽ¿8îäÉ“mmm¡ÎÎÎÈÈH}}}==½ÈÈÈÎÎN| úßÿþ×ÄĤ   ::ÚÄÄdذaÄ{K×^¡óçÏÛÛÛ«¨¨Œ5*%%!ÄårEvohhPWWWUUœîË“&MB næÃDw„²²rRRÒ±cÇbbb“’’”””º RŒ›Ö…BY¾|ù… ºGp»ú8fNNŽ™™™¶¶vLL ±7²²²,--õôôBCC;::D6ö5-úÙÀÌ:·sçN ‹!C†8;;â+455ýóŸÿÔÕÕ566Žˆˆ`³Ù! …rìØ1kkëaÆmß¾=%%å‹/¾ÐÔÔܰaƒÐ°]7_(%RSS7nÜH¥R‰ÔÕÕ###SSSñ?i4ÚéÓ§±ÿ<¦§§ûùù fee…¿m =W×à»ÛL‘»Qˆä¯ç:'R``àâÅ‹ëëëõõõ ñÆ;vøúúVUU7níÚµxåž1cF^^Þ¦M›lllŠ‹‹KJJ&NœÑ]¯ÖÖÖAƒÅÅÅÕÕÕ=zTQQ±µµuçÎ"»;v,%%ûø]‚XèNX»v-BhëÖ­‚ýºi˜¨7®»wïjiiõüìø£Ý)!4{öl&“yæÌ„PCC>‚——WyyùíÛ·ÍÌÌ6mÚ$²±çLäŒlfÝž={ôôô222jkk/\¸€_ÃŒa˜¿¿¿»»ûóçÏ‹‹‹mmmñ݈Z¸p!“ÉLHH@}óÍ7L&ó×_Å_ìãlì!%ðjþîÝ;¡ýsãÆ }}}¼oYY™Áƒ0 kjjRSSkhh@3²ŠŠŠòòrUUÕÄÄDì㊮Áw·™]w£PHý—x]sæS ƒÁ066¶··|>+++b¦J§ÓñøŠ‹‹1 ³´´ÌÈÈÀ---%–»öjllTRRÚµkƒÁàóù---<¯»î¾¾¾Ø§2¢;ŽÏçÏ;—J¥no¿nÖ[!ëîÙñ–îÆ„*((À0 ÿ ¥¢¢B0~ ÃN:eff&²ë‘$ ÙÌ: ‹¤¤$"˜ß~û !Äáp¨T*±[222ð݈***Â0ŒÃá-㯾`6~B!»uë–®®.Ñ÷Ç\·n†a©©©žžž‚c û÷ï×ÐШªª"2Jdð"7Sän ©ÿO<… ð͛7S©Ô7oÞ-***‚=MMM<>ü“&•’’’®ãtí…aØõë×ýüüÔÕÕ]\\.^¼Ø]÷–––9sæàË‚ÿÛååå})d‚Ýq)))šššW®\QQQÉÌ̦̔a¢²öĉNNN=?;±²È1!„ÊËËŸ Åbá=RQQÙØu4AþŒl eªªêlj‡ÿ믿þõ×_1Q…ŒÇãM™2Ÿ á%2x‘›ÙÝnÔ‰'†ÏÈð—*66ÖÃÃ#<<œhÔÕÕ%v=ƒÁ¸}ûÃ~ñOšŒŒŒ^½z…·<|øðçŸî®‹ÅâóùiiiK–,ñññillÙ=;;{úôé‚áß@×ÔÔôe+„º×ÖÖ†††îܹÓÕÕ5::zÙ²eïß¿—À¦u OÊY³fõüì¸>Ž)òûr<BåååÄ­D60ëFŽ)øå ~/}}}*•úâÅ ¼ñùóçÇïuëº&³ ¡”ð÷÷ß¼y3ñ%B¨­­mÇŽ‚#Lž<¹¥¥åúõët:½»/Xoܸ·ˆ ^äf¢Þ2'¹Äë¹ÎuÅãñ<<<¶lÙÒØØh``pîÜ9¼=44ÔÏÏÿÞwâĉ!!!‚‡èèh{{û’’’’’ggç~ø¡»^,KEE%==ýÝ»wñññ***,Kd÷€€€šš|ü,›£G677Ï›7 L¾ZZZ0Q32Áî|>öìÙS¦LÁË8޽½ýÂ… %°i†!ïÚ æÎkllÜÔÔÔ—gïnÌ#GŽ# .ïÿønnnwîÜ177߸q£ÈÆž“Ab3²™uû÷ï×ÓÓËÌ̬««»téÒ¨Q£ð§þî»ïÜÝÝ_¼xQRRbccƒïÆ®¯‚à²à°Xo)ÑÜÜlii9eÊ”K—.•——gddØØØ8;;³ÙlÁÁƒƒƒ­­­ÝÜÜ„ž}<Ý;|ø0^nð?»ßÝfvݘ¤O ‡–pppÀ§îgÏž544Äì™Læ÷߯­­­££³téÒ¶¶6Á”b³ÙFFFššš .d0x{×^†:ujôèÑÊÊÊVVVYYY"»s8œ™3g ¶uëV--­Ñ£GgeeáÏÛÙÙ9yòäÁƒc] ™P÷¤¤¤Aƒ={öŒh¹s玂‚Bzzzoöñ×F#FŒð÷÷ZRÀ¡%@A!H=(d©… õ ¤žˆè­­­•|@±Ùl¡+‡?dè»ÖÖV¡… ¿€¾W!ƒ¬Ÿƒò·® €>#H=(d©… õ ¤Þÿ ftBZŒ¼IEND®B`‚XQilla-2.3.0/docs/dom3-api/functions_func_0x72.html0000644000151400015140000002072611653571065016675 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo XQilla-2.3.0/docs/dom3-api/DOMNodeList_8hpp__incl.png0000644000151400015140000001007611653571065017073 00000000000000‰PNG  IHDRÅuq²ÒbKGDÿÿÿ ½§“óIDATxœí{P×þÀOBAPDŒØ‹à£JŠr¯8£ TtD jA‡JЫ؟¢Xg¬¶ÔúèC¦D|àUÔò¨ÚJ+P«U¤¶€¢Ej%„‡&HÀDÙßçÎÞ5Ù„ÔÙ„ ßÏ_g¿{ß³óÉ9›,‹  Áîï€W ð `ð `ð `޹¨¨¨Ø¾}»¹GL!88xóæÍfÂì>µ´´üðÃ!!!æ0ÎíÛ·Í=ŠÙ}ÂdddXf À[·nµÀ(pÿ0 ø0 ø0 ø0 ø0‰µøJaÑ¢EYYYíííÔ jµZ"‘$%%…‡‡§¤¤;v¬··—l› óÅvzzzhh¨T*Å233©¤Rihh¨‰¹¯LŽòrïjÀa->!„²³³Ïœ9SPPžžÞÕÕ•œœÜÙÙ‰O={öL,ß½{W,çææÆÇÇ—––¦¥¥iµZ\¡¹¹ùÏ?ÿ$»R*•ÕÕÕÔÎ+**ÊÊÊ,3GGÇÅ‹:+“É¢¢¢,“‰å±"Ÿø|¾‹‹‹@ ˜8qâ¶mÛ<<< ð©#GŽðùü={öLž,--MLLd³ÿ—-Ç[´hQii)> )//'w´ŠŠŠéÓ§S;Œ‹‹óòòÚ½{·þï½:;;?ù䓨¨¨¸¸¸œœœîîn­Vûõ×_/Y²$<<|ÕªUwîÜÁ5{zz$Ittttt´D"ééé¡Mžºß]½z5))iÖ¬Yï¾ûîÅ‹B+W®D-X°€¶mUUU|||DDıcÇÈ®®\¹²dÉ’èèè½{÷j4Ú ‰ÖÜX©O!¡PØÔÔ„êìì”Ëå>>>:|||>|ˆË&LP©TxËëêêºyóæÔ©S©•ÙlöÆýõ×ï¿ÿ^§Ÿ/¾ø¢­­M"‘ìØ±ãÆ'Nœ8sæÌÉ“'“““óóó—,Y"‘HpÍÓ§OËd²}ûöíÞ½ûæÍ›yyyƧ V«333çÏŸíüôÓOÕjõW_}…:{ö,m“ëׯïᨒ  —±Â¬¬¬?þøúõëÇ7ìw¬×§>a±Xäý›ÍÆ[Þ/¿üâçç7dÈúB¡099yïÞ½­­­d°§§çÒ¥K«W¯öðððöö^¶lYiiiqqqJJJPP««k`` ¹y]¸paÍš5nnnÞÞÞb±¸²²Òx†† •JÅårgÏž]RRbggg¼ÉÂ…  4mÚ4„R©ÄÁ+V…ÂqãÆ½÷Þ{ä’Lìw¬×§ÆÆFOOO„£££‹‹KCCƒN…†††Ñ£G“‡ä–§¿Ù‘DGGûúúîܹ“Üõ …V«Å!„†ÞÖÖÖÖÖF]½½½q¡¹¹9&&¿ MKK“ÉdƧ0xðàÏ>û¬®®...îý÷߯©©a±XÆ›¸ºº"„tª …B\ðòòjkk3ìw¬Ô'‚ Š‹‹§L™‚ÃÂÂŽ9B®F!µZ}âĉɓ'“??¿gÏžÕÖÖVUUá×·>,+==ýÖ­[ß~û-Ž8;;³ÙlÒŒ¦¦&@àîîN}·øàÁ\prr:zôhYYYYYYII Þ¹Œðüùs­V›™™YRR¾iÓ&rÉ1­p¸ðèÑ#,œ¡`¿cE>µ··ËåòÇWWWoÞ¼Y&“½óÎ;øÔÒ¥K ÅÚµk+++/_¾¼bÅ @@}ã·¼={öŒ7ŽÏçÅÃÃcÅŠ§N‡'44ôË/¿”Édýõ×ÁƒÃÂÂ"##srr®\¹"—Ë+++:„+íß¿¿¥¥åþýû6l(,,¤fNBŽÅb±Ö¯_ÿÓO?uuui4‡Cîw*• Î;×ÕÕeüÊdggK¥Ò»wï8p`æÌ™F‚ýŽ…~¯b «V­Â777‘H”››ëàà€#ƒ ÊÍÍÍËË“H$MMM3f̈‹‹³µµ¥öZTTm| ˆˆˆË—/WUUáÃ5kÖdgg§¤¤ØÚÚ¾ýöÛñññG£ÑäääK|ÅJ¥ :W6Ø'[·n:t(¹0› +Úï€Wðɪqppˆˆˆ0%h%€OV ŸÏ_»v­)A+|˜|˜|˜|˜|˜|˜ÄBß·¤¥¥Yf À÷ïß 3÷(f÷iĈqqqæÅÜTU óö~êâ¢îïD^oooò÷æÃìßß½xzþŸD²42ҿ絛7pÿ0 ø0 ø0 ø0 ø0 ø0 ø0 ø0 ø0 ø0 ø0 ø0 ø0 ø0 ø0 ø0 ø0 ø0 ø0 ø0 ø0 ø0 ø0 ø0 ø0 ø0 ø0 ø0 ø0 ø0 ø0 ø0 ø0 ü:zþýïü;wþ÷øM©´ÝÅÅÁÞþ¿GãplþóŸ$ƒOÙ{m±¢çßY>>à oR_kJ¥Šzd¢ö;z,@ˆþY¿ŽÍ¢E“iOà=#GºŠDÃiŸÝÛ«?’Å3€O‰ý—îõa³Y#==a³£|2HTÔ$ý7+,+6ö_ý’Ï€|2ˆ@à裿DÍ›÷V¿ä3 ŸŒ÷Oêecà òuq1ö,ò×ðÉáá"êú¤Õ11ÿìÇ|¬ðɃófÌx“ÃùïUârmæÌõoJVøÔ hµBˆÃ±™9s AÜþÎȪŸú`æÌñ<ž-B¨··7&& ¿Ó±vÀ§>°³ãÌžíÇb!{{nHÈØþNÇÚyáû;•J¥P(ú+«%4ôgÏþ:sæ˜'OZû;«ÃÞÞÞÙÙ™<|Á'¥RY__oñ”¬''íàÁÜ7ßt„‹£ÏСC ú„ ±\:„Õ«‰•+ßf³é¿!~m¹}û¶NîŸLB,™L|2 [[›þNa`>L>L>L>L2à}zøðá²eËú¬ÖÐÐÀb±¨jóß~ûÃáñ¢¢".—[[[kŽœu`Qxã7ÛÚÚŒÔ'"!!ÁÑÑÑôþ˜È´o¼O………óçϧ=uÿþ}@€Ë|>?==ÝPó‰'nÚ´)55µ½½!ôôéÓ•+Wfddøùù™/s*W¯^•Édyyy“&M™ÐÒÔÔtìØ±ºº:Ëäö÷ (´´´”••йsç>{öŒöÔ½{÷t&¨$›?þ|„ ÉÉÉA¤¤¤tww›-ë@Ý»w<ÔjµÁÁÁ[¶l1TŸv^¦÷Ï ·nݺuë5ò·×§âââáÇã¯ùNœ81zôè®®.„F£Y¿~ý°aÃÜÜÜÖ¯_¯ÑhðÎòã?zyy•——gddxyy :411‘|ñé·B•””ˆD"çíퟟêéé¡mþøñc{{{ê.F–§L™‚rwwGzÛœNs„—Ë=|øð¡C‡²²²òòò>lkkk(I§¦‹ÅJII9w~¨ó2±Ï‹/úøø8;;gee‘W£¨¨h̘1nnn©©©ÏŸ?§ šª U.×§ÄÄÄ¥K—6776ìúõë8¸cÇŽ˜˜˜‡ÖÔÔLš4iãÆøe4gΜK—.effŽ?¾¦¦¦¶¶6000--ÍP«ÎÎN;;;‰D"“É<Èáp:;;wîÜIÛüСCùùùÄ‹/Y²ÜglN²qãF„ÐöíÛ©A³N [?nܸÁçóŽÏê“ BhÞ¼ygΜÁ¯"ÜìY³êëë¯]»æãã“™™I4n‚þúô2>) ¡P(‰¨ã;V&“árii©¿¿?ί¦¦† ˆ1cÆœ={Ÿ­««#Ëú­är¹­­í®]» …V«U*•½½½†šÇÄÄÈårâe}"›c´ZmTT”MBBu¾fÑ—O†FÇC}RA•——ÑÛÛ‹Ç¢æOÄÉ“'}||hƒ„Q˜ñ‰ ˆ?üÐÆÆ¦¥¥…Œðx<ê²çää„óÃw!<¯¶¶V¿ýVAüüóϱ±±AAAçÏŸ7Ô\©TFFFâ2õã_}ùDmŽÉÏÏwrrª¨¨àñx………–™AçÓñãÇŒNV¦í“ B¨¾¾ž:îA¥Rá`uu5Ç£ ê÷F…û'„УG²³³ÃÂÂÖ­[GyQ ŵk×pß…xzz>xðG~ÿý÷>úÈP+•J¥Õj äryRRRDD„\.§mþÝwßÍž=›šXOOBH*•š2 æMMM©©©;wî ÎÈÈ‹ÅOž<±ÀÔô#"''gîܹÆGǘاþ½#B „ª¯¯÷ôô4üPå2e}êíí Û¶m›\.www/..ÆñÔÔÔØØØTWW®ZµŠú2ÊÈȉDµµµµµµS§N]¾|¹¡V*•ŠÇã>}º­­-77—Çã©T*Úæ R©÷ƒ?°9xðàÓ§O£££e)R*•ÝúDm®ÕjçÍ›7}út¼Ytww‹D¢Å‹[`jA ÊçåååQQQB¡°½½Ý”Ñ õ¹ÿ~²DYÿe} ½wï^ee¥¯¯ï–-[hƒÆe``¿Û»wï[o½…—úo¾ùÆÃÃß‚ttt,[¶ÌÙÙÙÕÕ599¹««‹:mµZ––æéééää´xñb…Bãú­‚8yòä¨Q£¸\îØ±c‹ŠŠh›www‡‡‡SÛ¾};ŸÏ5jTQQW£ÑL›6ÍÑÑ‘ÐóI§ùáÇíììþøã2RYYÉf³OŸ>mî©/þ òˆ#âãã©7ÆG7Ò§ŽCÔ2îáÀ#GŽ«W¯V©T´Aã2èûôÂÿjmm­««ƒßÓ½ò444øúúê¨L4þ=ÝøñãÉÈ€ÿ|°*À§×‘!C†ˆÅbS‚Øï€—ö;À¼€O“€O“€O“€O“Ðü}pSS“åó"jµZçëjŸà¯ôÓÑñ ž·0 Ü?L>L>L>Lòÿ’ |x!b IEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMImplementationSource_8hpp.html0000644000151400015140000000573511653571066020543 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMImplementationSource.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
Include dependency graph for DOMImplementationSource.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMImplementationSource

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMErrorHandler-members.html0000644000151400015140000000603011653571065022504 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMErrorHandler Member List

This is the complete list of members for xercesc::DOMErrorHandler, including all inherited members.
DOMErrorHandler()xercesc::DOMErrorHandler [inline, protected]
handleError(const DOMError &domError)=0xercesc::DOMErrorHandler [pure virtual]
~DOMErrorHandler()xercesc::DOMErrorHandler [inline, virtual]
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMXPathExpression.html0000644000151400015140000003534211653571066021602 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMXPathExpression Class Reference

The DOMXPathExpression interface represents a parsed and resolved XPath expression. More...

#include <DOMXPathExpression.hpp>

Inheritance diagram for xercesc::DOMXPathExpression:

List of all members.

Public Member Functions

Destructor
virtual ~DOMXPathExpression ()
 Destructor.
Functions introduced in DOM Level 3
virtual DOMXPathResultevaluate (const DOMNode *contextNode, DOMXPathResult::ResultType type, DOMXPathResult *result) const =0
 Evaluates this XPath expression and returns a result.
Non-standard Extension
virtual void release ()=0
 Called to indicate that this DOMXPathExpression is no longer in use and that the implementation may relinquish any resources associated with it.

Protected Member Functions

Hidden constructors
 DOMXPathExpression ()

Detailed Description

The DOMXPathExpression interface represents a parsed and resolved XPath expression.

Since:
DOM Level 3

Constructor & Destructor Documentation

xercesc::DOMXPathExpression::DOMXPathExpression ( ) [inline, protected]
virtual xercesc::DOMXPathExpression::~DOMXPathExpression ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual DOMXPathResult* xercesc::DOMXPathExpression::evaluate ( const DOMNode contextNode,
DOMXPathResult::ResultType  type,
DOMXPathResult result 
) const [pure virtual]

Evaluates this XPath expression and returns a result.

Parameters:
contextNodeof type DOMNode The context is context node for the evaluation of this XPath expression. If the XPathEvaluator was obtained by casting the Document then this must be owned by the same document and must be a DOMDocument, DOMElement, DOMAttribute, DOMText, DOMCDATASection, DOMComment, DOMProcessingInstruction, or XPathNamespace. If the context node is a DOMText or a DOMCDATASection, then the context is interpreted as the whole logical text node as seen by XPath, unless the node is empty in which case it may not serve as the XPath context.
typeIf a specific type is specified, then the result will be coerced to return the specified type relying on XPath conversions and fail if the desired coercion is not possible. This must be one of the type codes of DOMXPathResult.
resultof type DOMXPathResult* The result specifies a specific result object which may be reused and returned by this method. If this is specified as nullor the implementation does not reuse the specified result, a new result object will be constructed and returned.
Returns:
DOMXPathResult* The result of the evaluation of the XPath expression.
Exceptions:
<code>DOMXPathException</code>TYPE_ERR: Raised if the result cannot be converted to return the specified type.
<code>DOMException</code>WRONG_DOCUMENT_ERR: The DOMNode is from a document that is not supported by the XPathEvaluator that created this DOMXPathExpression. NOT_SUPPORTED_ERR: The DOMNode is not a type permitted as an XPath context node or the request type is not permitted by this DOMXPathExpression.
virtual void xercesc::DOMXPathExpression::release ( ) [pure virtual]

Called to indicate that this DOMXPathExpression is no longer in use and that the implementation may relinquish any resources associated with it.

Access to a released object will lead to unexpected result.

Implemented in XQillaExpression.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMLSInput-members.html0000644000151400015140000001543211653571065021461 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMLSInput Member List

This is the complete list of members for xercesc::DOMLSInput, including all inherited members.
DOMLSInput()xercesc::DOMLSInput [inline, protected]
getBaseURI() const =0xercesc::DOMLSInput [pure virtual]
getByteStream() const =0xercesc::DOMLSInput [pure virtual]
getEncoding() const =0xercesc::DOMLSInput [pure virtual]
getIssueFatalErrorIfNotFound() const =0xercesc::DOMLSInput [pure virtual]
getPublicId() const =0xercesc::DOMLSInput [pure virtual]
getStringData() const =0xercesc::DOMLSInput [pure virtual]
getSystemId() const =0xercesc::DOMLSInput [pure virtual]
release()=0xercesc::DOMLSInput [pure virtual]
setBaseURI(const XMLCh *const baseURI)=0xercesc::DOMLSInput [pure virtual]
setByteStream(InputSource *stream)=0xercesc::DOMLSInput [pure virtual]
setEncoding(const XMLCh *const encodingStr)=0xercesc::DOMLSInput [pure virtual]
setIssueFatalErrorIfNotFound(bool flag)=0xercesc::DOMLSInput [pure virtual]
setPublicId(const XMLCh *const publicId)=0xercesc::DOMLSInput [pure virtual]
setStringData(const XMLCh *data)=0xercesc::DOMLSInput [pure virtual]
setSystemId(const XMLCh *const systemId)=0xercesc::DOMLSInput [pure virtual]
~DOMLSInput()xercesc::DOMLSInput [inline, virtual]
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMImplementationLS-members.html0000644000151400015140000001223111653571065023341 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMImplementationLS Member List

This is the complete list of members for xercesc::DOMImplementationLS, including all inherited members.
createLSInput(MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)=0xercesc::DOMImplementationLS [pure virtual]
createLSOutput(MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)=0xercesc::DOMImplementationLS [pure virtual]
createLSParser(const DOMImplementationLSMode mode, const XMLCh *const schemaType, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager, XMLGrammarPool *const gramPool=0)=0xercesc::DOMImplementationLS [pure virtual]
createLSSerializer(MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)=0xercesc::DOMImplementationLS [pure virtual]
DOMImplementationLS()xercesc::DOMImplementationLS [inline, protected]
DOMImplementationLSMode enum namexercesc::DOMImplementationLS
MODE_ASYNCHRONOUS enum valuexercesc::DOMImplementationLS
MODE_SYNCHRONOUS enum valuexercesc::DOMImplementationLS
~DOMImplementationLS()xercesc::DOMImplementationLS [inline, virtual]
XQilla-2.3.0/docs/dom3-api/DOMPSVITypeInfo_8hpp__incl.md50000644000151400015140000000004011653571065017500 00000000000000f736b70beaafdca836bf74e5046ad35aXQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMNotation-members.html0000644000151400015140000004746611653571065021732 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMNotation Member List

This is the complete list of members for xercesc::DOMNotation, including all inherited members.
appendChild(DOMNode *newChild)=0xercesc::DOMNode [pure virtual]
ATTRIBUTE_NODE enum valuexercesc::DOMNode
CDATA_SECTION_NODE enum valuexercesc::DOMNode
cloneNode(bool deep) const =0xercesc::DOMNode [pure virtual]
COMMENT_NODE enum valuexercesc::DOMNode
compareDocumentPosition(const DOMNode *other) const =0xercesc::DOMNode [pure virtual]
DOCUMENT_FRAGMENT_NODE enum valuexercesc::DOMNode
DOCUMENT_NODE enum valuexercesc::DOMNode
DOCUMENT_POSITION_CONTAINED_BY enum valuexercesc::DOMNode
DOCUMENT_POSITION_CONTAINS enum valuexercesc::DOMNode
DOCUMENT_POSITION_DISCONNECTED enum valuexercesc::DOMNode
DOCUMENT_POSITION_FOLLOWING enum valuexercesc::DOMNode
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC enum valuexercesc::DOMNode
DOCUMENT_POSITION_PRECEDING enum valuexercesc::DOMNode
DOCUMENT_TYPE_NODE enum valuexercesc::DOMNode
DocumentPosition enum namexercesc::DOMNode
DOMNode()xercesc::DOMNode [inline, protected]
DOMNode(const DOMNode &)xercesc::DOMNode [inline, protected]
DOMNotation()xercesc::DOMNotation [inline, protected]
DOMNotation(const DOMNotation &other)xercesc::DOMNotation [inline, protected]
ELEMENT_NODE enum valuexercesc::DOMNode
ENTITY_NODE enum valuexercesc::DOMNode
ENTITY_REFERENCE_NODE enum valuexercesc::DOMNode
getAttributes() const =0xercesc::DOMNode [pure virtual]
getBaseURI() const =0xercesc::DOMNode [pure virtual]
getChildNodes() const =0xercesc::DOMNode [pure virtual]
getFeature(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNode [pure virtual]
getFirstChild() const =0xercesc::DOMNode [pure virtual]
getLastChild() const =0xercesc::DOMNode [pure virtual]
getLocalName() const =0xercesc::DOMNode [pure virtual]
getNamespaceURI() const =0xercesc::DOMNode [pure virtual]
getNextSibling() const =0xercesc::DOMNode [pure virtual]
getNodeName() const =0xercesc::DOMNode [pure virtual]
getNodeType() const =0xercesc::DOMNode [pure virtual]
getNodeValue() const =0xercesc::DOMNode [pure virtual]
getOwnerDocument() const =0xercesc::DOMNode [pure virtual]
getParentNode() const =0xercesc::DOMNode [pure virtual]
getPrefix() const =0xercesc::DOMNode [pure virtual]
getPreviousSibling() const =0xercesc::DOMNode [pure virtual]
getPublicId() const =0xercesc::DOMNotation [pure virtual]
getSystemId() const =0xercesc::DOMNotation [pure virtual]
getTextContent() const =0xercesc::DOMNode [pure virtual]
getUserData(const XMLCh *key) const =0xercesc::DOMNode [pure virtual]
hasAttributes() const =0xercesc::DOMNode [pure virtual]
hasChildNodes() const =0xercesc::DOMNode [pure virtual]
insertBefore(DOMNode *newChild, DOMNode *refChild)=0xercesc::DOMNode [pure virtual]
isDefaultNamespace(const XMLCh *namespaceURI) const =0xercesc::DOMNode [pure virtual]
isEqualNode(const DOMNode *arg) const =0xercesc::DOMNode [pure virtual]
isSameNode(const DOMNode *other) const =0xercesc::DOMNode [pure virtual]
isSupported(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNode [pure virtual]
lookupNamespaceURI(const XMLCh *prefix) const =0xercesc::DOMNode [pure virtual]
lookupPrefix(const XMLCh *namespaceURI) const =0xercesc::DOMNode [pure virtual]
NodeType enum namexercesc::DOMNode
normalize()=0xercesc::DOMNode [pure virtual]
NOTATION_NODE enum valuexercesc::DOMNode
PROCESSING_INSTRUCTION_NODE enum valuexercesc::DOMNode
release()=0xercesc::DOMNode [pure virtual]
removeChild(DOMNode *oldChild)=0xercesc::DOMNode [pure virtual]
replaceChild(DOMNode *newChild, DOMNode *oldChild)=0xercesc::DOMNode [pure virtual]
setNodeValue(const XMLCh *nodeValue)=0xercesc::DOMNode [pure virtual]
setPrefix(const XMLCh *prefix)=0xercesc::DOMNode [pure virtual]
setTextContent(const XMLCh *textContent)=0xercesc::DOMNode [pure virtual]
setUserData(const XMLCh *key, void *data, DOMUserDataHandler *handler)=0xercesc::DOMNode [pure virtual]
TEXT_NODE enum valuexercesc::DOMNode
~DOMNode()xercesc::DOMNode [inline, virtual]
~DOMNotation()xercesc::DOMNotation [inline, virtual]
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1XMLPlatformUtils.html0000644000151400015140000027553511653571065021335 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::XMLPlatformUtils Class Reference

Utilities that must be implemented in a platform-specific way. More...

#include <PlatformUtils.hpp>

List of all members.

Static Public Member Functions

static XMLSize_t alignPointerForNewBlockAllocation (XMLSize_t ptrSize)
 Aligns the specified pointer per platform block allocation requirements.
Initialization and Panic methods
static void Initialize (const char *const locale=XMLUni::fgXercescDefaultLocale, const char *const nlsHome=0, PanicHandler *const panicHandler=0, MemoryManager *const memoryManager=0)
 Perform per-process parser initialization.
static void Initialize (XMLSize_t initialDOMHeapAllocSize, XMLSize_t maxDOMHeapAllocSize, XMLSize_t maxDOMSubAllocationSize, const char *const locale=XMLUni::fgXercescDefaultLocale, const char *const nlsHome=0, PanicHandler *const panicHandler=0, MemoryManager *const memoryManager=0)
 Perform per-process parser initialization.
static void Terminate ()
 Perform per-process parser termination.
static void panic (const PanicHandler::PanicReasons reason)
 The panic mechanism.
File Methods
static XMLFileMgr * makeFileMgr (MemoryManager *const manager)
 Make a new file object appropriate for the platform.
static XMLFilePos curFilePos (FileHandle theFile, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Get the current file position.
static void closeFile (FileHandle theFile, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Closes the file handle.
static XMLFilePos fileSize (FileHandle theFile, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Returns the file size.
static FileHandle openFile (const char *const fileName, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Opens the file.
static FileHandle openFile (const XMLCh *const fileName, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Opens a named file.
static FileHandle openFileToWrite (const char *const fileName, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Open a named file to write.
static FileHandle openFileToWrite (const XMLCh *const fileName, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Open a named file to write.
static FileHandle openStdInHandle (MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Opens the standard input as a file.
static XMLSize_t readFileBuffer (FileHandle theFile, const XMLSize_t toRead, XMLByte *const toFill, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Reads the file buffer.
static void writeBufferToFile (FileHandle const theFile, XMLSize_t toWrite, const XMLByte *const toFlush, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Writes the buffer to the file.
static void resetFile (FileHandle theFile, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Resets the file handle.
File System Methods
static XMLCh * getFullPath (const XMLCh *const srcPath, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Gets the full path from a relative path.
static XMLCh * getCurrentDirectory (MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Gets the current working directory.
static bool isAnySlash (XMLCh c)
 Check if a charater is a slash.
static void removeDotSlash (XMLCh *const srcPath, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Remove occurences of the pair of dot slash.
static void removeDotDotSlash (XMLCh *const srcPath, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Remove occurences of the dot dot slash.
static bool isRelative (const XMLCh *const toCheck, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Determines if a path is relative or absolute.
static XMLCh * weavePaths (const XMLCh *const basePath, const XMLCh *const relativePath, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Utility to join two paths.
Timing Methods
static unsigned long getCurrentMillis ()
 Gets the system time in milliseconds.
Mutex Methods
static XMLMutexMgr * makeMutexMgr (MemoryManager *const manager)
 Factory method for creating MutexMgr object.
static void closeMutex (void *const mtxHandle, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Closes a mutex handle.
static void lockMutex (void *const mtxHandle)
 Locks a mutex handle.
static void * makeMutex (MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 Make a new mutex.
static void unlockMutex (void *const mtxHandle)
 Unlocks a mutex.
External Message Support
static XMLMsgLoader * loadMsgSet (const XMLCh *const msgDomain)
 Loads the message set from among the available domains.
NEL Character Handling
static void recognizeNEL (bool state, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)
 This function enables the recognition of NEL(0x85) char and LSEP (0x2028) as newline chars which is disabled by default.
static bool isNELRecognized ()
 Return the value of fgNEL flag.
Strict IANA Encoding Checking
static void strictIANAEncoding (const bool state)
 This function enables/disables strict IANA encoding names checking.
static bool isStrictIANAEncoding ()
 Returns whether a strict IANA encoding name check is enabled or disabled.

Static Public Attributes

Public Static Data
static XMLNetAccessor * fgNetAccessor
 The network accessor.
static XMLTransService * fgTransService
 The transcoding service.
static PanicHandler * fgUserPanicHandler
 The Panic Handler.
static PanicHandler * fgDefaultPanicHandler
 The Panic Handler.
static MemoryManagerfgMemoryManager
 The configurable memory manager.
static XMLFileMgr * fgFileMgr
static XMLMutexMgr * fgMutexMgr
static XMLMutex * fgAtomicMutex
 Global mutex for fast or infrequent operations.
static bool fgXMLChBigEndian
static bool fgSSE2ok

Detailed Description

Utilities that must be implemented in a platform-specific way.

This class contains methods that must be implemented in a platform specific manner. The actual implementations of these methods are available in the per-platform files indide src/util/Platforms .


Member Function Documentation

static XMLSize_t xercesc::XMLPlatformUtils::alignPointerForNewBlockAllocation ( XMLSize_t  ptrSize) [inline, static]

Aligns the specified pointer per platform block allocation requirements.

The results of this function may be altered by defining XML_PLATFORM_NEW_BLOCK_ALIGNMENT.

static void xercesc::XMLPlatformUtils::closeFile ( FileHandle  theFile,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
) [static]

Closes the file handle.

This must be implemented by the per-platform driver, which should use local file services to close the passed file handle, and to destroy the passed file handle and any allocated data or system resources it contains.

Parameters:
theFileThe file handle to close
managerThe MemoryManager to use to allocate objects
static void xercesc::XMLPlatformUtils::closeMutex ( void *const  mtxHandle,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
) [static]

Closes a mutex handle.

Each per-platform driver must implement this. Only it knows what the actual content of the passed mutex handle is.

Parameters:
mtxHandleThe mutex handle that you want to close
managerThe MemoryManager used to allocate the object
static XMLFilePos xercesc::XMLPlatformUtils::curFilePos ( FileHandle  theFile,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
) [static]

Get the current file position.

This must be implemented by the per-platform driver, which should use local file services to deterine the current position within the passed file.

Since the file API provided here only reads, if the host platform supports separate read/write positions, only the read position is of any interest, and hence should be the one returned.

Parameters:
theFileThe file handle
managerThe MemoryManager to use to allocate objects
static XMLFilePos xercesc::XMLPlatformUtils::fileSize ( FileHandle  theFile,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
) [static]

Returns the file size.

This must be implemented by the per-platform driver, which should use local file services to determine the current size of the file represented by the passed handle.

Parameters:
theFileThe file handle whose size you want
managerThe MemoryManager to use to allocate objects
Returns:
Returns the size of the file in bytes
static XMLCh* xercesc::XMLPlatformUtils::getCurrentDirectory ( MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager) [static]

Gets the current working directory.

This must be implemented by the per-platform driver. It returns the current working directory is.

Parameters:
managerThe MemoryManager to use to allocate objects
Returns:
Returns the current working directory. This is dyanmically allocated and must be deleted by the caller when its no longer needed! The memory returned will be allocated using the static memory manager, if users do not supply a memory manager. Users then need to make sure to use either the default or user specific memory manager to deallocate the memory.
static unsigned long xercesc::XMLPlatformUtils::getCurrentMillis ( ) [static]

Gets the system time in milliseconds.

This must be implemented by the per-platform driver, which should use local services to return the current value of a running millisecond timer. Note that the value returned is only as accurate as the millisecond time of the underyling host system.

Returns:
Returns the system time as an unsigned long
static XMLCh* xercesc::XMLPlatformUtils::getFullPath ( const XMLCh *const  srcPath,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
) [static]

Gets the full path from a relative path.

This must be implemented by the per-platform driver. It should complete a relative path using the 'current directory', or whatever the local equivalent of a current directory is. If the passed source path is actually fully qualified, then a straight copy of it will be returned.

Parameters:
srcPathThe path of the file for which you want the full path
managerPointer to the memory manager to be used to allocate objects.
Returns:
Returns the fully qualified path of the file name including the file name. This is dyanmically allocated and must be deleted by the caller when its no longer needed! The memory returned will beallocated using the static memory manager, if user do not supply a memory manager. Users then need to make sure to use either the default or user specific memory manager to deallocate the memory.
static void xercesc::XMLPlatformUtils::Initialize ( XMLSize_t  initialDOMHeapAllocSize,
XMLSize_t  maxDOMHeapAllocSize,
XMLSize_t  maxDOMSubAllocationSize,
const char *const  locale = XMLUni::fgXercescDefaultLocale,
const char *const  nlsHome = 0,
PanicHandler *const  panicHandler = 0,
MemoryManager *const  memoryManager = 0 
) [static]

Perform per-process parser initialization.

Initialization must be called first in any client code.

Parameters:
initialDOMHeapAllocSizeThe size of the first memory block allocated by the DOMDocument heap. Note that changing this parameter may result in poor performance and/or excessive memory usage. For the default value refer to dom/impl/DOMDocumentImpl.cpp.
maxDOMHeapAllocSizeThe maximum size of the memory block allocated by the DOMDocument heap. As the document grows, the allocated by the heap memory blocks grow from initialDOMHeapAllocSize to maxDOMHeapAllocSize. Note that changing this parameter may result in poor performance and/or excessive memory usage. For the default value refer to dom/impl/DOMDocumentImpl.cpp.
maxDOMSubAllocationSizeThe maximum size of the memory block requested that is handled by the DOMDocument heap. A request for a larger block is handled directly by the memory manager. Note that changing this parameter may result in poor performance and/or excessive memory usage. For the default value refer to dom/impl/DOMDocumentImpl.cpp.
localeThe locale to use for messages.

The locale is set iff the Initialize() is invoked for the very first time, to ensure that each and every message loader, in the process space, share the same locale.

All subsequent invocations of Initialize(), with a different locale, have no effect on the message loaders, either instantiated, or to be instantiated.

To set to a different locale, client application needs to Terminate() (or multiple Terminate() in the case where multiple Initialize() have been invoked before), followed by Initialize(new_locale).

The default locale is "en_US".

Parameters:
nlsHomeUser specified location where MsgLoader retrieves error message files. the discussion above with regard to locale, applies to nlsHome as well.
panicHandlerApplication's panic handler, application owns this handler. Application shall make sure that the plugged panic handler persists through the call to XMLPlatformUtils::Terminate().
memoryManagerPlugged-in memory manager which is owned by the application. Applications must make sure that the plugged-in memory manager persist through the call to XMLPlatformUtils::Terminate()
static void xercesc::XMLPlatformUtils::Initialize ( const char *const  locale = XMLUni::fgXercescDefaultLocale,
const char *const  nlsHome = 0,
PanicHandler *const  panicHandler = 0,
MemoryManager *const  memoryManager = 0 
) [static]

Perform per-process parser initialization.

Initialization must be called first in any client code.

Parameters:
localeThe locale to use for messages.

The locale is set iff the Initialize() is invoked for the very first time, to ensure that each and every message loader, in the process space, share the same locale.

All subsequent invocations of Initialize(), with a different locale, have no effect on the message loaders, either instantiated, or to be instantiated.

To set to a different locale, client application needs to Terminate() (or multiple Terminate() in the case where multiple Initialize() have been invoked before), followed by Initialize(new_locale).

The default locale is "en_US".

Parameters:
nlsHomeUser specified location where MsgLoader retrieves error message files. the discussion above with regard to locale, applies to nlsHome as well.
panicHandlerApplication's panic handler, application owns this handler. Application shall make sure that the plugged panic handler persists through the call to XMLPlatformUtils::Terminate().
memoryManagerPlugged-in memory manager which is owned by the application. Applications must make sure that the plugged-in memory manager persist through the call to XMLPlatformUtils::Terminate()
static bool xercesc::XMLPlatformUtils::isAnySlash ( XMLCh  c) [inline, static]

Check if a charater is a slash.

This must be implemented by the per-platform driver.

Parameters:
cthe character to be examined
Returns:
true if the character examined is a slash false otherwise
static bool xercesc::XMLPlatformUtils::isNELRecognized ( ) [static]

Return the value of fgNEL flag.

static bool xercesc::XMLPlatformUtils::isRelative ( const XMLCh *const  toCheck,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
) [static]

Determines if a path is relative or absolute.

This must be implemented by the per-platform driver, which should determine whether the passed path is relative or not. The concept of relative and absolute might be... well relative on different platforms. But, as long as the determination is made consistently and in coordination with the weavePaths() method, it should work for any platform.

Parameters:
toCheckThe file name which you want to check
managerThe MemoryManager to use to allocate objects
Returns:
Returns true if the filename appears to be relative
static bool xercesc::XMLPlatformUtils::isStrictIANAEncoding ( ) [static]

Returns whether a strict IANA encoding name check is enabled or disabled.

static XMLMsgLoader* xercesc::XMLPlatformUtils::loadMsgSet ( const XMLCh *const  msgDomain) [static]

Loads the message set from among the available domains.

The returned object must be dynamically allocated and the caller becomes responsible for cleaning it up.

Parameters:
msgDomainThe message domain which you want to load
static void xercesc::XMLPlatformUtils::lockMutex ( void *const  mtxHandle) [static]

Locks a mutex handle.

Each per-platform driver must implement this. Only it knows what the actual content of the passed mutex handle is.

Parameters:
mtxHandleThe mutex handle that you want to lock
static XMLFileMgr* xercesc::XMLPlatformUtils::makeFileMgr ( MemoryManager *const  manager) [static]

Make a new file object appropriate for the platform.

Parameters:
managerThe MemoryManager to use to allocate objects
static void* xercesc::XMLPlatformUtils::makeMutex ( MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager) [static]

Make a new mutex.

Each per-platform driver must implement this. Only it knows what the actual content of the passed mutex handle is. The returned handle pointer will be eventually passed to closeMutex() which is also implemented by the platform driver.

Parameters:
managerThe MemoryManager to use to allocate objects
static XMLMutexMgr* xercesc::XMLPlatformUtils::makeMutexMgr ( MemoryManager *const  manager) [static]

Factory method for creating MutexMgr object.

This factory method creates a mutexmgr that will be used on the particular platform.

Parameters:
managerThe MemoryManager to use to allocate objects
static FileHandle xercesc::XMLPlatformUtils::openFile ( const char *const  fileName,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
) [static]

Opens the file.

This must be implemented by the per-platform driver, which should use local file services to open passed file. If it fails, a null handle pointer should be returned.

Parameters:
fileNameThe string containing the name of the file
managerThe MemoryManager to use to allocate objects
Returns:
The file handle of the opened file
static FileHandle xercesc::XMLPlatformUtils::openFile ( const XMLCh *const  fileName,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
) [static]

Opens a named file.

This must be implemented by the per-platform driver, which should use local file services to open the passed file. If it fails, a null handle pointer should be returned.

Parameters:
fileNameThe string containing the name of the file
managerThe MemoryManager to use to allocate objects
Returns:
The file handle of the opened file
static FileHandle xercesc::XMLPlatformUtils::openFileToWrite ( const XMLCh *const  fileName,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
) [static]

Open a named file to write.

This must be implemented by the per-platform driver, which should use local file services to open the passed file. If it fails, a null handle pointer should be returned.

Parameters:
fileNameThe string containing the name of the file
managerThe MemoryManager to use to allocate objects
Returns:
The file handle of the opened file
static FileHandle xercesc::XMLPlatformUtils::openFileToWrite ( const char *const  fileName,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
) [static]

Open a named file to write.

This must be implemented by the per-platform driver, which should use local file services to open passed file. If it fails, a null handle pointer should be returned.

Parameters:
fileNameThe string containing the name of the file
managerThe MemoryManager to use to allocate objects
Returns:
The file handle of the opened file
static FileHandle xercesc::XMLPlatformUtils::openStdInHandle ( MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager) [static]

Opens the standard input as a file.

This must be implemented by the per-platform driver, which should use local file services to open a handle to the standard input. It should be a copy of the standard input handle, since it will be closed later!

Parameters:
managerThe MemoryManager to use to allocate objects
Returns:
The file handle of the standard input stream
static void xercesc::XMLPlatformUtils::panic ( const PanicHandler::PanicReasons  reason) [static]

The panic mechanism.

If, during initialization, we cannot even get far enough along to get transcoding up or get message loading working, we call this method.

Each platform can implement it however they want. This method will delegate the panic handling to a user specified panic handler or in the absence of it, the default panic handler.

In case the default panic handler does not support a particular platform, the platform specific panic hanlding shall be implemented here .

Parameters:
reasonThe enumeration that defines the cause of the failure
static XMLSize_t xercesc::XMLPlatformUtils::readFileBuffer ( FileHandle  theFile,
const XMLSize_t  toRead,
XMLByte *const  toFill,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
) [static]

Reads the file buffer.

This must be implemented by the per-platform driver, which should use local file services to read up to 'toRead' bytes of data from the passed file, and return those bytes in the 'toFill' buffer. It is not an error not to read the requested number of bytes. When the end of file is reached, zero should be returned.

Parameters:
theFileThe file handle to be read from.
toReadThe maximum number of byte to read from the current position
toFillThe byte buffer to fill
managerThe MemoryManager to use to allocate objects
Returns:
Returns the number of bytes read from the stream or file
static void xercesc::XMLPlatformUtils::recognizeNEL ( bool  state,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
) [static]

This function enables the recognition of NEL(0x85) char and LSEP (0x2028) as newline chars which is disabled by default.

It is only called once per process. Once it is set, any subsequent calls will result in exception being thrown.

Note: 1. Turning this option on will make the parser non compliant to XML 1.0. 2. This option has no effect to document conforming to XML 1.1 compliant, which always recognize these two chars (0x85 and 0x2028) as newline characters.

static void xercesc::XMLPlatformUtils::removeDotDotSlash ( XMLCh *const  srcPath,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
) [static]

Remove occurences of the dot dot slash.

To remove the sequence, slash dot dot slash and its preceding path segment if and only if the preceding path segment is not slash dot dot slash.

Parameters:
srcPathThe path for which you want to remove the slash dot dot slash sequence and its preceding path segment.
managerThe MemoryManager to use to allocate objects
Returns:
static void xercesc::XMLPlatformUtils::removeDotSlash ( XMLCh *const  srcPath,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
) [static]

Remove occurences of the pair of dot slash.

To remove the sequence, dot slash if it is part of the sequence, slash dot slash.

Parameters:
srcPathThe path for which you want to remove the dot slash sequence.
managerThe MemoryManager to use to allocate objects
Returns:
static void xercesc::XMLPlatformUtils::resetFile ( FileHandle  theFile,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
) [static]

Resets the file handle.

This must be implemented by the per-platform driver which will use local file services to reset the file position to the start of the the file.

Parameters:
theFileThe file handle that you want to reset
managerThe MemoryManager to use to allocate objects
static void xercesc::XMLPlatformUtils::strictIANAEncoding ( const bool  state) [static]

This function enables/disables strict IANA encoding names checking.

The strict checking is disabled by default.

Parameters:
stateIf true, a strict IANA encoding name check is performed, otherwise, no checking.
static void xercesc::XMLPlatformUtils::Terminate ( ) [static]

Perform per-process parser termination.

The termination call is currently optional, to aid those dynamically loading the parser to clean up before exit, or to avoid spurious reports from leak detectors.

static void xercesc::XMLPlatformUtils::unlockMutex ( void *const  mtxHandle) [static]

Unlocks a mutex.

Each per-platform driver must implement this. Only it knows what the actual content of the passed mutex handle is.

Note that, since the underlying system synchronization services are used, Xerces cannot guarantee that lock/unlock operations are correctly enforced on a per-thread basis or that incorrect nesting of lock/unlock operations will be caught.

Parameters:
mtxHandleThe mutex handle that you want to unlock
static XMLCh* xercesc::XMLPlatformUtils::weavePaths ( const XMLCh *const  basePath,
const XMLCh *const  relativePath,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
) [static]

Utility to join two paths.

This must be implemented by the per-platform driver, and should weave the relative path part together with the base part and return a new path that represents this combination.

If the relative part turns out to be fully qualified, it will be returned as is. If it is not, then it will be woven onto the passed base path, by removing one path component for each leading "../" (or whatever is the equivalent in the local system) in the relative path.

Parameters:
basePathThe string containing the base path
relativePathThe string containing the relative path
managerThe MemoryManager to use to allocate objects
Returns:
Returns a string containing the 'woven' path. It should be dynamically allocated and becomes the responsibility of the caller to delete.
static void xercesc::XMLPlatformUtils::writeBufferToFile ( FileHandle const  theFile,
XMLSize_t  toWrite,
const XMLByte *const  toFlush,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager 
) [static]

Writes the buffer to the file.

This must be implemented by the per-platform driver, which should use local file services to write up to 'toWrite' bytes of data to the passed file. Unless exception raised by local file services, 'toWrite' bytes of data is to be written to the passed file.

Parameters:
theFileThe file handle to be written to.
toWriteThe maximum number of byte to write from the current position
toFlushThe byte buffer to flush
managerThe MemoryManager to use to allocate objects
Returns:
void

Member Data Documentation

Global mutex for fast or infrequent operations.

Use this mutex only for fast (e.g., increment an integer, check flag, etc.) or infrequent (e.g., once-off initialization) operations.

The Panic Handler.

This is the default panic handler.

The configurable memory manager.

This is the pluggable memory manager. If it is not provided by an application, a default implementation is used.

XMLNetAccessor* xercesc::XMLPlatformUtils::fgNetAccessor [static]

The network accessor.

This is provided by the per-platform driver, so each platform can choose what actual implementation it wants to use. The object must be dynamically allocated.

Note that you may optionally, if your platform driver does not install a network accessor, set it manually from your client code after calling Initialize(). This works because this object is not required during initialization, and only comes into play during actual XML parsing.

XMLTransService* xercesc::XMLPlatformUtils::fgTransService [static]

The transcoding service.

This is provided by the per platform driver, so each platform can choose what implemenation it wants to use. When the platform independent initialization code needs to get a transcoding service object, it will call makeTransService() to ask the per-platform code to create one. Only one transcoding service object is reqeusted per-process, so it is shared and synchronized among parser instances within that process.

The Panic Handler.

This is the application provided panic handler.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/DOMEntity_8hpp__incl.png0000644000151400015140000001542411653571065016630 00000000000000‰PNG  IHDR˜uüô`êbKGDÿÿÿ ½§“ÉIDATxœíÝ{\LéÿðgšJ7]tOd“.Û•XöK%RBn•Õ–úîÚÕe©û’,VlrY!¤Ra)©,R}I„È¥"T¬M7J÷šiš™óûãøÍŽ™i$5gfú¼ÿ:=sžç|Ι§ÏyÎÌ<ç0 C Ê$ˆ>$2€ÈƒDyÈ"O’èÀmÛ¶­  €è(ÄŠ­­mxx8ÑQ€€D&ªÊÊÊJJJLMM‰DL~üxqqqtt´„„B¨¡¡áÅ‹xS%%%Ü÷'Œúúz??¿ÌÌL„‚‚‚‡‡G!—–âOYYyÔ¨Qjjj'Nܶm›¶¶vjj*þRRR’²²òž={¾úê+]]]›ØØØ†††Ë—/ã+X[[çç糚ºuë–••wãìú ƒÉd¶··ãËJJJ«V­â(`À ‘ /$iáÂ…wîÜÁÿÌÍÍõööÆ_8™åË—çææâΜ93??ŸuÓºëׯÛÙÙõgCöööyyy>>> .üóÏ?B¡¥K—"„jkkñËRöÂüþûïxu …2wîÜÊÊJî–‹‹‹===]\\Nž<Éjª°°pÅŠK–,9pà@oo/ÏÂO?Z@d@"vtuuëêêBÍÍͬËFƒêêj|ÙÌÌŒB¡¼xñ!ÔÕÕõàÁƒéÓ§³¯L¥R)b½tóæÍƒúúú9r¤££ãСC¡ôôtöêì…vvv……… !TXX¨­­ÍB¨¨¨èرc?ÿüs\\k4—‘‘¹cÇŽ¢¢¢S§Nñ)b àD"‘˜L&¾,!!akk‹_]Þ¾}ÛÜÜ\QQ‘}å~øaÞ‡X/-^¼XAAÁÉÉ !ÔŸëG333IIÉÒÒR„P^^ž££#û— ,ß|óœœÜŒ3Bx¡¿¿¿®®®‰‰É?üÀNò,b >ìvjjjtttB £Fªªª²¶¶f_¡ªªÊÐÐõçÌ™3£¢¢V®\Éóº’Ïwˆjjj!IÉþö1 ›‚‚}}ýû÷„ð\MUU!Ä‘ãtuuñ…±cÇ666ò)b Fdà †aYYYÓ¦MÃÿtppHJJb¿BT*õôéÓ_}õ«ÄÜܼ»»»¬¬¬¸¸õÏñ3gμqãF~~¾¹¹¹ººzÿ›­©©Á^¿~gº¾ X‚D&þZ[[››››ššJJJÂÃÃëëë—-[†¿äããÓÒÒ²nݺ»wïÖÔÔܸqÃßß_MMmÑ¢E¬êøÕåž={LLLØ€ÆÞ8;þÁ°ˆÆ]haaÁ`0Nœ8áèèÈzõâÅ‹]]]ü›‰‰©­­}öìY\\Üœ9sø±—–â/00_ÐÐа°°8zô¨¼¼<^"''wôèÑ„„„ØØØºº:mmíÙ³g»»»KII±·`ooŸ™™¹dÉ>³ôõ3W---sssWW×K—.õUˆ'Í+W®ØÚÚ²ÖÙ½{·••+fžBBB¨TêìÙ³===ñ IŽB>Õ¨#ÁãàDÔ²eËÅï~dqqq ›6mêçú<' `æÀ¯¿þª®®~öìÙOˆ ¸´‚F£Õ××_¾|yÁ‚DÇD $2 ,ž>}êëëëììÌ1y€?yyy—þ1Ÿ‘aaii™••õ©µ”••×­[ןB Æ`DyÈ"@äA"ˆ _¸r¥ÍîU=¤0 ;~üƶmY³f™ìÝ롬,GtD@X@"ï½üé§dIIò¡C+&MÒ#:œ>=xðO@@2Î8xpÅÔ©úD‡„\ZÄ`0££³ÝÜZ[ËÉ æ,†š4I/''ÔÚzœ»ûÁèèlƒùñ:@ÜÁˆl¸{ó¦-00åþývírwwŸBt8Ÿ 5õÞúõ©ÖÖz11^ššJD‡ˆ‰lXËË+_»ö”††âáÃÞFFZD‡óÉž?oðó;ÑÔÔ¹w¯‡ƒÃ—D‡—–ÃTo/#<ü¼Oܼy—.‹bCiýõ×Z{{cŸ¸ððó½½ ¢#Ä€ÙpôêU“¿RUÕÛ;\Eër²/©©÷~ùåœÆáÃÞãÆ©4‘ ;éé÷w3Ì+WBÄ#‹!„Üݧ\¹Â`0œ¢ÏŸ@t8@Ð`D6ŒtwÓ6lH=wîþ÷ßÛ„‡»HK‹Û-h4ú¶mâão¸ºZïÜé.''MtD@@ ‘ ååu~~'Þ½ëÚ»w¹££Ñá ¡œœÇÁÁªªÊÇÆú|ù¥ÑáA€KËa!.®`þü½jj#óòBÅ;‹!„ÍòòBÕÔFΟ¿7.®€èp€ ÀˆL̵¶v¯[÷gnkç¬]ëH&—SƒÁÜ·/gß¾\GGÓ={–+)Á|&q‰LœÝ»÷w@@2ƒÁ:WœàÞ·/×ÉÉ,:ú˜Ï$r ‘‰˜ââ¿’{{™11^Ó§ŽX),¬ L‘’’8thÅäÉ0ŸI”ÀÉ\d೎–.16ÖÎË …,6è¦O7ÈË 52ÒZºæ3‰‘‰†7oÚW¯>YTôB8+NXó™¦MÿÇž0ŸI$@"×®=[³æ¤‚‚ÌáÃÞ––cˆgX()yíïŸÔÙIýãÏ™3‰|\Z 5üYG^^Gml ¯\ ,&0––c®\ ±±1ôô< Ïg~0"^ÿüó. éùó†ÈH7ø½>QRSïmܘfd¤uè·žž*ÑáÞ`D&¤²²:9íîé¡gg‹Ï³ŽD‘»û”ìì*•îä´;+ æ3 )‘  …¶~}jZZñÊ•¶›6¹Œ³Žˆ‡Ïg:~¼ÀÍm2ÌgBȈQ^^§§§*/Ïy§§Oëýý“Þ¾mŽ^îìlNHl /—/—­[÷§¦¦bl¬·±1ç|¦®®žêêw&&ðÜ&À¥%(ÚÊ• ë×§r”ãÏ:RR’ÍÍ …,&„œÍóòB•”dçÍãñ|¦õëSW®Œ§R{ ‰m˜#oÙ²…膈ˆŒ7*ÊËëõôTñ/¶·SV¯>yìØõ  ‡={<”•aŠŒRT”uwŸÂd2wî¼øìY½ÑˆR¡ÔÔ{{÷æ¶·SÛÚ(³gÃíg .--/¯ÜÇ'Ã0‰$))‘½®»›L£Ñðš1cÑ‚~¹y³rõêiiÉC‡¼å䤿Î݃ÿDƒD"%%ý¹LÀ ‘ TKK—MdKK7~Ø%%%´´”šš:­¬Æ<襭­Lt€àÔ×·þôSÊ£Gÿ¨ªŽlhhc0˜! ©¨È߸±QEEžè‡øŒL ‚ƒO··SX':ÙÐÐ6q¢^jjd1‘£­­œš`e¥÷æÍû,†Â0ÔÞNY·îObcn ‘ ÎùórsËét&{!μ}»ê¯¿JˆŠ |Ž ݹó‚û=ÍÉy’‘ñ€¨¨†!¸´ººV[Û û€“HHVvĵk?3ŠØÀÀTW¿›5+ŠÏ{ZP°AGÚ‚#2 ;K£õò°á ™ œ:u'?ÿ)ÇNRR‚L–À0¬§‡^QÑ øØÀÀTT4ôôÐ1 ‘É}Gð± Cpi9ä^¾lœ5ëwÎ^(--I£Ñåå¥çÎ5wt4³±1„ߎ‰¢ÖÖî7*rrgg—uuÑð·•}iiÉ«WÖ×W'*ÂaÙÐb0˜ ì{ò¤–Ng’HHJJ’F£kh(º¸X¹¸XNš4î¸/èt惯.\(¹páÑÛ·íÒÒ’½½ïÇkffºýµ†L†7z}È(JKK шŸ¤¤»üqDB†ÆŒQ±·Ÿ`k;ÞÜ\Glºµ¬¬¬ŠŠÊç´ f½ŽÁ`–•Õ¼¸zµ¢¦¦ë׬™¹bÜÂdéèü;­õƒDööíÛòòr"BO55›6]×ÓSšùÁ½®†t\€SQ‘ãó™0“OjÃ$2€ÈƒDyÈ"@ä‰|"«®®þî»ï>ºZUU‰Db_`¯þðáCIIÉÔÔo¢Ÿ™™)--]VV61s ±7nœ··wcc#Ÿõ1 óòòRPèï¯ÒH$RUUÕ`D ÞãÙë8ºÖç4ûÑ.ÑÕÕfii9räÈ)S¦ìرƒN?5ŠD"M˜0cÆŽ³³3«H$wwwö>)òþ¯,ÈŽ'ò‰,##cñâÅ<_zùò¥šš¾¬¬¬¼~ýú¾ªOœ8ñ—_~ jmmEµµµDDD˜› è ·nݪ¯¯¯©©IHHhooŸ4i Ouuu'Ož×‘Š>½n°šåÓ%:::&Ož|ïÞ½]»vÝ¿ãÆ'Ožœ3gƒñþqè¯^½*)ù÷w---<*%--íÌ™3ƒ?‘06oÞ¼¹ví&RæÏŸßÝÝÍó¥ÊÊJŽä.dUïéé133[µj†a~~~ÖÖÖ4mÈ¢þB¨²²’õ'“É´µµÝ¼ys_ëóܯþ·?ˆ?~üøñãÏlDlzݧ¾/|šåß%BCCmllèt:k…ÎÎÎqãÆ;v ¯;wîÜ_~ù…õjbb¢³³3«M„¯¯ï¨Q£êëëyÿWºŽÇÝg>yD–••5zôh|rÜéÓ§ »ººB½½½aaašššaaa½½½øôÿûߨ±cóóó#""ÆŽ«®®îííÍ:·p×B]¸pÁÂÂBFFF__?99!D§ÓyVojj’———••eî²–§M›†ÒÒÒB}Œ‡YÕBÒÒÒ‰‰‰ñññ‘‘‘ ‰‰‰RRR}9ˆ»ÆD"ùùù]¼x±¯vØ÷«Ÿmæä䨨¨DFF²ŽFff¦‘‘‘††FPPPOOÏÂþv‹!&œ½ŽÁ`DEEŽ9rúôéEEEø ­­­ÿýïÕÔÔtuuCCC©T*BˆD"ÅÇÇ›˜˜¨««ïܹ399ù‹/¾PRR çh–{÷9ºDJJÊæÍ›Éd2kyyù°°°””üOww÷³gÏbÿñ˜––æææÆÞ`pp°±±1~ÚæØwð}í&ÏÃÈApžãÉÛÛÛÇǧ¡¡ASS³¨¨/ܵk—««kuuuiié¤I“6lØ€gnggç«W¯nÙ²ÅÔÔ´´´´¬¬lêÔ©¡¡¡}Õêìì1bDlll}}ýñãÇ%%%;;;£¢¢xVONNÆ>–ÈúÚ:^ÒW›ìBùùù†áŸ¡TVV²ÇaØ™3g xb| 2‘ a¯344LLLdsâÄ „F#“ɬÒžžŽF„Ѓ0 £ÑhËø»ÏÞÈnß¾­¦¦ÆªûÓO?mܸð”””9sæ°·ÉZØ¿¿¢¢buu5«Gñ žçnò<Œ! ]ÇœD†aØÖ­[Édò›7oX%222ì=%%%<>ü“&™²²2îv¸kavóæM777yyy›K—.õU½££cáÂ…ø2ûÿvEEE{u\rr²’’Òõë×edd222³k¯^{êÔ)kkkþ[g­Ì³Mv¡ŠŠ ömá-P(¼°¤¤DFF†g!wkìü™°õ:YYÙG±^zøð!Bèõë×쇱´´?Œìï2÷2Goäß%´´´rss9;|ø°““«n~~¾“É\¼xñ‘#G0^‰ŒÁ`ØÙÙáC!¼Gñ žçnöuÙ ]Ç„ÏÈð·*&&ÆÁÁ!$$„U¨¦¦Æ:ô---wÃ/þI“ŽŽÎ«W¯ð’GýöÛo}Õ¢P(L&355µ¹¹yåÊ•...ÍÍÍ<«gggÏ;—=0üèÚÚÚþìGõººº   ¨¨([[Ûˆˆ__ßwïÞ `׸Ã;åüùóùo×Ï6y~_Žw „PEEëÖN< …öºqãÆ±9ˆß DSS“L&¿|ù/|ñâÅèÑ£?ºwÜ™G—ðôôܺu+ë;J„PWW×®]»Ø[˜1cFGGÇÍ›7sssûú‚UBB"!!¡°°ðèÑ£x Ïàyî&úXÏÄ ®ãñÏsÜ †ƒƒÃ¶mÛš››µ´´²²²ðò   777ü{ß©S§²""",,,ÊÊÊÊÊʦOŸþã?öU‹B¡ÈÈȤ¥¥566=zTFF†B¡ð¬îååU[[‹·ƒÿÊæøñãmmmK–,Alƒ¯ŽŽŒ×ˆŒ½:“É\°`~]F£Ñ,,,<<<°k†!¶ïÚóóó-Z¤««ÛÚÚÚŸ­÷Õæ±cÇX- ®ó?Þ‚½½}eeåÝ»w'L˜°yófž…ü;ƒÀFdÂÙëöï߯¡¡‘‘‘Q__ùòe}}}|Óß~ûíìÙ³_¾|YVVfjjŠFîw}™½Yìc]¢­­ÍÈÈÈÎÎîòåËéé馦¦Ó§O§R©ì˜˜˜ØÛÛsl}8Ü;|ø0žnð?¹ƒïk7¹#&¨Ž7—–°´´Ä‡îçÏŸ×ÖÖÆ/ìÛÛÛ¿ûî;UUÕU«Vuuu±w)*•ª£££¤¤äááÑÒÒ‚—s×Â0ìÌ™3ãÇ—––666ÎÌÌäYF£Í›7=°íÛ·+++?>33ßnooïŒ30®DÆQ=11qĈÏŸ?g•ܽ{WBB"--m¨w ûðk£1cÆxzz²_=ñß:Ÿ6ùüÛà-ÄÅÅééé©©©­^½šB¡ð,äß–È„³×Ñéô¨¨(yyù¯¿þ’`ÖÜܼbÅ UUUmmíàà`Ö骯w¤¼¼œ£3óï†uvv†„„˜™™ÉÉÉ™ššnß¾õsVãùùù¡ƒr”s$2&“9gÎÄö©+Gð}í&ÏÃ(˜ŽÇÝgxÜ!V\oqXªªª¸üͳ?ü*cPî ½n8¬ŽÇÝgDþ—ý‰l8RTTôõõíO!ƒhè:\Z‚ƒKK@¸´ˆ!Hd‘‰ ò ‘D$2€Èãñ€Þºº:ÁÇD•Jå˜9<`Ðë@ÿuvvr”ðHdøTxúc°ô:ð9HŸ43„|FyÈ"@äA"ˆ¼ÿçq…a(ÔÕ3IEND®B`‚XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMNodeFilter.html0000644000151400015140000007050211653571066020526 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMNodeFilter Class Reference

Filters are objects that know how to "filter out" nodes. More...

#include <DOMNodeFilter.hpp>

Inheritance diagram for xercesc::DOMNodeFilter:

List of all members.

Public Types

Public Contants
enum  FilterAction { FILTER_ACCEPT = 1, FILTER_REJECT = 2, FILTER_SKIP = 3 }
 

Constants returned by acceptNode.

More...
enum  ShowTypeMasks {
  SHOW_ALL = 0x0000FFFF, SHOW_ELEMENT = 0x00000001, SHOW_ATTRIBUTE = 0x00000002, SHOW_TEXT = 0x00000004,
  SHOW_CDATA_SECTION = 0x00000008, SHOW_ENTITY_REFERENCE = 0x00000010, SHOW_ENTITY = 0x00000020, SHOW_PROCESSING_INSTRUCTION = 0x00000040,
  SHOW_COMMENT = 0x00000080, SHOW_DOCUMENT = 0x00000100, SHOW_DOCUMENT_TYPE = 0x00000200, SHOW_DOCUMENT_FRAGMENT = 0x00000400,
  SHOW_NOTATION = 0x00000800
}
 

Constants for whatToShow.

More...
typedef unsigned long ShowType

Public Member Functions

Destructor
virtual ~DOMNodeFilter ()
 Destructor.
Functions introduced in DOM Level 2
virtual FilterAction acceptNode (const DOMNode *node) const =0
 Test whether a specified node is visible in the logical view of a DOMTreeWalker or DOMNodeIterator.

Protected Member Functions

Hidden constructors
 DOMNodeFilter ()

Detailed Description

Filters are objects that know how to "filter out" nodes.

If a DOMNodeIterator or DOMTreeWalker is given a DOMNodeFilter, it applies the filter before it returns the next node. If the filter says to accept the node, the traversal logic returns it; otherwise, traversal looks for the next node and pretends that the node that was rejected was not there.

The DOM does not provide any filters. DOMNodeFilter is just an interface that users can implement to provide their own filters.

DOMNodeFilters do not need to know how to traverse from node to node, nor do they need to know anything about the data structure that is being traversed. This makes it very easy to write filters, since the only thing they have to know how to do is evaluate a single node. One filter may be used with a number of different kinds of traversals, encouraging code reuse.

See also the Document Object Model (DOM) Level 2 Traversal and Range Specification.

Since:
DOM Level 2

Member Typedef Documentation

typedef unsigned long xercesc::DOMNodeFilter::ShowType

Member Enumeration Documentation

Constants returned by acceptNode.

FILTER_ACCEPT: Accept the node. Navigation methods defined for DOMNodeIterator or DOMTreeWalker will return this node.

FILTER_REJECT: Reject the node. Navigation methods defined for DOMNodeIterator or DOMTreeWalker will not return this node. For DOMTreeWalker, the children of this node will also be rejected. DOMNodeIterators treat this as a synonym for FILTER_SKIP.

FILTER_SKIP: Skip this single node. Navigation methods defined for DOMNodeIterator or DOMTreeWalker will not return this node. For both DOMNodeIterator and DOMTreeWalker, the children of this node will still be considered.

Since:
DOM Level 2
Enumerator:
FILTER_ACCEPT 
FILTER_REJECT 
FILTER_SKIP 

Constants for whatToShow.

SHOW_ALL: Show all DOMNode(s).

SHOW_ELEMENT: Show DOMElement nodes.

SHOW_ATTRIBUTE: Show DOMAttr nodes. This is meaningful only when creating an DOMNodeIterator or DOMTreeWalker with an attribute node as its root; in this case, it means that the attribute node will appear in the first position of the iteration or traversal. Since attributes are never children of other nodes, they do not appear when traversing over the document tree.

SHOW_TEXT: Show DOMText nodes.

SHOW_CDATA_SECTION: Show DOMCDATASection nodes.

SHOW_ENTITY_REFERENCE: Show DOMEntityReference nodes.

SHOW_ENTITY: Show DOMEntity nodes. This is meaningful only when creating an DOMNodeIterator or DOMTreeWalker with an DOMEntity node as its root; in this case, it means that the DOMEntity node will appear in the first position of the traversal. Since entities are not part of the document tree, they do not appear when traversing over the document tree.

SHOW_PROCESSING_INSTRUCTION: Show DOMProcessingInstruction nodes.

SHOW_COMMENT: Show DOMComment nodes.

SHOW_DOCUMENT: Show DOMDocument nodes.

SHOW_DOCUMENT_TYPE: Show DOMDocumentType nodes.

SHOW_DOCUMENT_FRAGMENT: Show DOMDocumentFragment nodes.

SHOW_NOTATION: Show DOMNotation nodes. This is meaningful only when creating an DOMNodeIterator or DOMTreeWalker with a DOMNotation node as its root; in this case, it means that the DOMNotation node will appear in the first position of the traversal. Since notations are not part of the document tree, they do not appear when traversing over the document tree.

Since:
DOM Level 2
Enumerator:
SHOW_ALL 
SHOW_ELEMENT 
SHOW_ATTRIBUTE 
SHOW_TEXT 
SHOW_CDATA_SECTION 
SHOW_ENTITY_REFERENCE 
SHOW_ENTITY 
SHOW_PROCESSING_INSTRUCTION 
SHOW_COMMENT 
SHOW_DOCUMENT 
SHOW_DOCUMENT_TYPE 
SHOW_DOCUMENT_FRAGMENT 
SHOW_NOTATION 

Constructor & Destructor Documentation

xercesc::DOMNodeFilter::DOMNodeFilter ( ) [inline, protected]
virtual xercesc::DOMNodeFilter::~DOMNodeFilter ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual FilterAction xercesc::DOMNodeFilter::acceptNode ( const DOMNode node) const [pure virtual]

Test whether a specified node is visible in the logical view of a DOMTreeWalker or DOMNodeIterator.

This function will be called by the implementation of DOMTreeWalker and DOMNodeIterator; it is not normally called directly from user code. (Though you could do so if you wanted to use the same filter to guide your own application logic.)

Parameters:
nodeThe node to check to see if it passes the filter or not.
Returns:
A constant to determine whether the node is accepted, rejected, or skipped, as defined above.
Since:
DOM Level 2

Implemented in xercesc::DOMLSSerializerFilter.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMXPathNSResolver__inherit__graph.png0000644000151400015140000001262011653571066024520 00000000000000‰PNG  IHDRàuØäzFbKGDÿÿÿ ½§“EIDATxœíœyXSWúÇOHHA €8ƒê¨ Ú2U@åqlµARudñ©X+ªƒ`Ç>X©"ˆd¥(",ã+"˨Z"(È YîïÓ¹@T~æBÏ篳½ç¼÷図Ü{¹$ ÃATŒ í1H BƒŠ 4H BCÑÎÌŸ?ßP~ 8/^ÄÓ$íS<‰DúÓŸþdkkk¯ÐÑÑqûömmMRtZp8œ¹sç¾U§ˆÿråÊ•mÛ¶i— =(‚Ð " (‚Ð " (‚ÐèžâÇ~~~xz„ ï½÷^TT”¥¥%^¨P(x<Þ7„B¡£££··wPP™L†¶öööÇ'‘Hxû¸¸¸êêꜜ™L™€ßè¸zõjRRÒáÇY,–ö¸¦¦¦îîîÑÑÑvvvÃô9''ÇÞÞ^§Ð××711w¦µµuåÊ•?ÿü3@.—óx¼òòò®®®ñãdzÙì*•ª*•êììüå—_:99 3€C íÀÛa pàÀ;;;FóäÉ“3g΄‡‡=zÔÌÌ “É¢¢¢˜LfDDÄĉ=z”••USS“’’bddxúôéÇñ?§X,®¯¯‡iggç•+Wîß¿æÌ™fffR©4555,,ŒÅbi‹a˜H$:räÈ·ß~{àÀ= …‘‘‘EEEC_HYYÙÏ?ÿüÑGéWíÛ·¯½½ý›o¾?~|ssó¾}ûÄbqtt´¶'ðzsrr¶mÛvìØ1í_Ýhal.ñ–––VVV666ÿüç?íììNŸ> «Ž;fii¹gÏž÷ßßÁÁÁÛÛ;==ýéÓ§¥¥¥°§§ç•+Wð®*++g̘gCCC-,,> ÈÈȰ¶¶ Ò×ÚÚÚÉÉ)&&æÖ­[2™l@5MooïK/dÑ¢Eßÿ}WW—~UEEÅÚµk---ál}õêUO¬¬¬"##[ZZzzz^:y5VVVˆÅbŸÏ U(•J•žž¾téÒ¥K—¦§§«TªÖÖV???@XWW—¸dÉ’ääd‰D{Ó·‚C¬Y³Æßß?88øÂ… µZ= 9B?­‰DúÛßþVUU³/^üì³Ïàd ¡ÓéAAAøãµ¹sç^¹r˜QVVæëë‹7¦P(ñññ¥¥¥'Nœ(--§P^…àjµpíÚµµk×.X°`Ù²e'Ož¬[·ðé§ŸâíkjjBBB-ZtâÄ ¼Ãá8::¦¤¤è¿¶kjjZXXˆ«ÜÝÝ=//o@OÈd2…Ba00;̰$ÉŽ;/^Ìáp:Ôßß÷ùü#-- ¦•Jå¢E‹`„‡VBccã€Á« ôÃ?ôôô|8%%E dggÃö§NН¯¯///ONNNMM}òäINN¬Õ·R(IIIK–,ùá‡BCCwîÜ©P(òóó4·´´Œ‰‰ÑOëãààÐÖÖH$]]]ú»1''§ææf˜vuu•Ëå>H¥R@0{ölíÆ...GŽùì³Ï¦L™¢]¥P(är¹L&kkkûþûïßyçqãÆÉd²­[·:;;çääDEEeffvwwÿnAAn{ýúõÌÌÌØØØ#GŽà²322Н­­=þ¼ŽÏ\.W p¹Ü¼¼¼ööv}OärygggVVÖüùó_)쀽{÷>{ö,==ý»ï¾»qãFnn.Þ?›Í.++ƒ?›7nÐh´Y³f½T ÎÎ΃ýã•—øõë× ‚˜˜˜Å‹O›6 –––nذÁÖÖ–ÅbEDDTWWÃòððp>Ÿ¿zõj‹5eÊ”¸¸¸wß}w0+¥R‰a˜\.§R© ,(..¦ÑhçÎМÁ`|üñÇúé×€D"i4šß"bdäããWùk×®¹¹¹™››k7Æ0ì×_522Â5ó÷¿ÿ}áÂ…üqXXXoooBB€J¥feeEGG[[[Ã÷¤R©¾¦¦¦sæÌÀ5 âàà¾ÿþŽŽíö3gÎÌËËÛ»w¯››Ûùó烃ƒù|¾Ž' . ¸páB`` ^5̰«TªË—/¯_¿ÞÎÎŽÅb­ZµJûŽ?ü°··÷îÝ»>Ÿ¿`ÁxÊZ p:{%^ùdfföÉ'Ÿüë_ÿJIIÁ Ÿ>}ºlÙ2<‹¯&ŽŽŽ€öövX2iÒ¤I“& f5nܸÔÔÔüüüììl—ààà>ø`0óáÓÒÒ2qâD輕•Õƒ<==µ=44”Ç㥧§³ÙlOúúúŽ=ºsç΃ªa†]$i47€½½ý³gÏp+6{öì²²²É“'WVVfffÖ9L@%¼¯,ÐŽŽŽ³gÏzzz¦¥¥mÞ¼ZXX¤¦¦ÂˆÀeô·Þ)€µµõÓ§OájøàÁƒªªª•+WhÕ××§Ñh’’’T*ŸÏß¼ysaaá`æÃðüÑËË fçÍ›wìØ1|ªP(rssµÃêææ&“Ékjj6mÚ¤Ý[ggçþýû###ÝÝÝÃÂÂRRRô§Xúúú’’’’’’þò—¿(•Jü4¦ÃGl‰·zõê’’ü¢¶oßîèè·+$iÖ¬YÅÅÅú¶4mÁ‚%%%†Á!†v&“idd$ áŒÐÖÖfcc£Ý3›ÍÞ¿¿“““‹‹ >ƒ ­„×àÕ–x ÃvîÜùé§Ÿ&$$ÔÖÖVVVÂrooïÌÌÌööö¦¦¦ØØØÂÂBm+ÿ#GŽ>>{öì™>}ºö T ÃRRRX,ÜN,_¾œÉdîÛ·oè )•J•JE¡Púûûáž ?ÚËåòaFÞÎÎ.**êÔ©S0kbbâïï¿mÛ¶ªª*¡PxëÖ­C‡áÓ§ C&“ác 3ì ÅÏÏoß¾}B¡ÞŒ›7ožv·³fÍ’H$<oáÂ…xáÐJx ^M×………ÝÝÝ+V¬ P(7nܳg››Û¸qãÖ¬YsàÀµk×’H$ŸˆˆˆçÏŸãV!!! …‚Ëå* //¯ˆˆX®oE¥R¿þúëÇwttLœ8111‘J¥fÞÝݽ{÷n¨í4à‹/¾€ [[[ww÷ŒŒ |­155ÍÈÈÈÎÎNOOokk³³³c³Ù?C@üüüŠŠŠ–.]ª]xáÂ…ššš£G©ˆB¡p¹ÜuëÖùøøøøø 433³¨¨¨íÛ·›˜˜³ÙìØØØüü|77·eË–ýôÓOà þ¢E‹~ùå—šš˜=~üxfffkk+“ÉôóóûüóÏ4?~¼©©ioo¯©©éðÃذaÃ"##?úè£íUžB¡øúúòù|í]ÐÐJx t_XNLLDïƒ" |T[“cóF=bÌ€Š 4H BƒŠ 4H BƒŠ 4H BƒŠ 4H #ÉóçòÎÎá>½D Ý'I,‹ÉdСQDâ03k1´#£‘HÔÔÔ4è§o8Î[wiLQ[kK"‘X,ª¡Åè¼ IBŸ)îÜic³wøüØéÓ‡õÏœˆ—‚ö #Æ?ÖQ(F ¹¸¸ÎоŒ@G Ãrs¯«T•J›[…Ö¥‘ td¨©yÜÑñÛºµ·÷ÖÖ>6¨;c$Б¡°P`lL†iccòÙ³7 ëϘ tP©4µJ¥f•JuAAJ¥1¬Wc$Р¢â^OB»¤§Gqõê}Cù3–@Ξ­¥P^ˆ$…B*(¨5”?c $Ð7E¡P–”Ô«TjíB•JSRR¯P( åÕ˜ ôM¹té¶B¡Ò/W(”|þí·ïÏ ôM9s¦†Là› d2éÌ´Ê¿)H o„X¬¸|ù΀v•JÃçß–HúÞ¾Wc $Ð7¢´´¿»¤R©.-mx›þŒ=ÐË"o„H$ííýß ¦-[ ß~û¿¯~š›Ó™L†<+ŒÍO€¿5˜L†¶þ *`Ò$kÃy4Ö@K<‚Ð " (‚Ð " (‚Ð " (‚Ð " (‚Ð " (‚Ð " (‚Ð " (‚Ð " (‚Ð " (‚Ð " (‚Ð " (‚Ð " (‚Ð " (‚Ð " (‚Ð " (‚Ð " ±¾°|éÒ¥¦¦&C{ñúœ>Ý àpì íÈëÃb±æÍ›gh/´Àˆ‡Ã1t<Þ2Ù‚L¶0´o‡Ã1´ ^€pŸçp8§N2´¿S–/_nhtA{P¡AE$P¡AE$P¡AEšÑ'Л7oR(”Ó§Oã%EEET*µ±±f¥Rillì{ï½gfföþûï'''«T*ÀƒH$Ò€‰Á ‘Hð¾ ^¢m"‘Hbbb¦L™bbbâì윘˜¨P(pC“Ù³g×ÕÕÈå¿Ôç1Æè¨‡‡ÇæÍ›£££»»»===ëÖ­KLLtssˆÅâ™3g^¿~}ÇŽ >>>''Çßß_­V[ZZÆÅŽêpùùùyyyV­_¿^ œ9s¦¹¹9++«¨¨ˆËåⵕ••B¡P(6448;;bDzh7j0ô“‚àp8Ãy’Ñ××çêêŽaXdd¤§§g?¬Š‰‰ñööV©Txc‰D2yòäôôt¼äþýûðÂñÄ`"""¬¬¬„B¡Ž-†a–––UUUxã²²2GGGÜðþýûxU{{; ½½ý¥—öR^êó›0Ìø¿MFß  R©<ïèÑ£ÉÉÉÙÙÙ<ÏØØVåäälݺ•L&ã Fllì‰'†^KJJ<<>>¿þúë€S©T ‹ßž‚*•J.—;aÂ[[[.—«T*ÅÅÅîîît:Åb?~¶ìîîþüóÏmllbbbð-`É’%_}õL÷õõ1™ÌsçÎ Ø9¼p>ŸïèèXQQñÒð CÿB^à•~Áñññ€íÛ·ã%"‘ðìÙ3–×®]³²²ÒŸ8ñDoo/•J]½zuKKKNN ££ûïDxïÞ=“ììlìÅ ìüùóööö4mþüù»vízüø1>" ®®N,‹ÅâÖÖÖuëÖ­Zµ ¯ýî»ï–-[ÖÜÜÜÐÐðç?ÿ9>>^"‘Ðh´ôôt¡P˜••E¡P$ †a!!!l6ûáÇ ®®®III¸?üðƒ£££F£Á0¬¨¨hâĉJ¥rÀΡÉ_ÿú×Ë—/ÃnG$þo‡Ñ*PF³xñb2™¼råJ¼ ôùóç:+++mll†h__ß;w$‰Z­.++ÿ] ñÄÞ½{ÍÍÍ›››uVX•JUUUõÍ7߸ºº’Éä'NÀrYÀÌÌìöíÛ¸Õ´iÓð=ÃÅ‹g̘ÑÕÕell¼{÷n‘H¤ÑhÄb±Z­îïï'“ÉÿùÏ`Ë‚‚'''Ü©TÊ`0ª««1 úúë¯ëš444Œ`üߣU Ç·°°(++£Óé………xùþð‡K—.é4NKK›3gÎÅ0¬¨¨hΜ93fÌXµj•¾@Õjµ¯¯¯¿¿ÿ½{÷ ‰D"ÉÍÍÅ7»&!!ÁÞÞfÖT*•nÚ´ÉËË ÷‡N§kË×ÂÂÃ°ŠŠŠ€€ƒáííýÓO?aöäÉ€\.‡V t:]ÛçàààØØX‰DÂ`0îÝ»7XçÐߦHüߣR ­­­L&3##ðäää &à³æ¦M›|}}qÝG&“;;;á zëÖ-ØòìÙ³S§NÕhqq1‹Å:yò¤>–~çÃ?W!¾„áH£Ñ|òÉ'¾¾¾jµðþþ~ww÷+VÀÚžžžwÞyÇÏÏïßÿþ÷Ý»w7oÞ °µµíëëB "‘ˆD"•––Â{¨@€ééìСCð˜³aaa...%%%>¼zõª——×—_~ «t áá©··f£££?~\__ÿÁ|ñÅr¹œN§ççç?{ö,##ƒN§Ã‰388˜Íf755566¾ûî»[·nÕV<9;;óx<|,ýΑ@GŒáˆÇãÑh´»wïâ%ÕÕÕFFFùùù0+‘H6mÚäêêJ§Ó§NºeË__ßÀÀÀ¡—ø={öXYYýñLKK[±b…­­-¦§3F3þ|ÜD¥R%%%¹»»›˜˜Lž<9.._Žu Õjµ¹¹ù£G`¶··wÕªUL&ÓÚÚ:<<\*•b–——7uêT*•:mÚ´¢¢"ز««+44ÔÚÚÚÎÎnãÆr¹\GmáááfffÚGýÎGµ@‰õ/ð…Ùa¹¿¿_ xyyl·cÿ§ø¿ £ò>è«B¥R‘:G)¿ "F/H BƒŠ 4H BƒŠ 4H BƒŠ 4„û²HSSSFF†¡½øÒÔÔÄb± íÅ N µµµ†öâ÷ ÑJ¬G„hŠ 4H BƒŠ 4H BóSçÔCÍ)IEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMNodeFilter_8hpp.html0000644000151400015140000000610611653571066016421 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMNodeFilter.hpp File Reference

#include <xercesc/dom/DOMNode.hpp>
Include dependency graph for DOMNodeFilter.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMNodeFilter
 Filters are objects that know how to "filter out" nodes. More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/DOMException_8cpp__incl.png0000644000151400015140000006126211653571065017306 00000000000000‰PNG  IHDRÈàHIbKGDÿÿÿ ½§“ IDATxœìÝy\Tåâ?ð3 ;Ì00;(¢à†Ö­Ü ÍT\Á®™õm5oi¿J[¼y­n·åZvÛ¼¶ê-mQ44MK³ÍQQ@e‡Y†˜åüþxì4ÎÂ:Ì ðy¿zõÆ3gžsæ9gÎù̳°hš¦z‚íîÀÀƒ`z Á"ô‚Eè1®» 0àýóŸÿ<~ü¸»KvL™2eýúõî.Àà„` ¯Î;wöìÙQ£F¹» p .w—`ÐB°à£FÚ°aƒ»K×yñÅÝ]€Á c,@!X€C°=†`z Á"ôf…p‘éÓ§3%ɘ1cV®\Ì<©×ë·mÛ–ŸŸ___=yòä¿þõ¯‡¼6""âóÏ?g±XÌòÏ<óÌÉ“'·oßa¹rÆÑ£Gûsƒ(Š¢jkkï¾ûn¼x‹®óÞ{ï………™ÍæêêêÝ»w?üðß~úi`` EQ­­­+W®+V¬///ÿä“O Þ|óM6›MQ”L&»råJ||}ú/¿ü²|ùò… ¾ûáoûEQ‹-¢(Š,@^®Óé^{íµùóçgeeý÷¿ÿíèè (júôéG޹÷Þ{çÍ›÷ÕW_YÏnI쾩Ý'{·çÀ),¸Mddd]]EQ:®±±‘éæÌˆ¯ªª"GÝÖÖvåÊŠ¢ZZZNŸ>}óÍ7[.¬×ëÛ®GQÔM7Ý4a„÷ß_­V¿ÿþûÿûß}}}³³³?þꫯ¾õÖ[ÕÕÕÛ·o'kÈÎή¯¯ÿàƒÞ|óÍÓ§Ooݺ•<¿wïÞW_}õ•W^ùý÷ß¿øâ‹Í›7SµgϫҾýöÛJ¥rË–-¯¿þz~~þ—_~IžÿùçŸßÿý+V|ðÁ$âd8*‰í›vò$¸‚EÏÅb±Ìf3yÌf³§L™BzCÿöÛo)))<Ïrá|pöõÈó«V­:}úôš5kæÏŸŸ””DQÔþýûï¿ÿþaÆÅÅÅ=óÌ3£F"K~ûí·?þ¸X,6lØŠ+NžÔ„£’8zÓî”\“·¸MMMMxx8EQ!!!—/_ž0a‚å—/_NHH`þœ6mÚÆxà»ý Éôжï8wîÜÿýïo¾ù&yF.—GFF’Ç111111ä±L&[¼x1ó€€ò€Y8::Z©TÚݵZm6›ÉæPÁ,) )Šârí\y:*‰£7íNIÀ5ÐbÀ=hšÞ·oß7ÞHþLOOÿì³Ï˜ö‰Eéõú/¿ürÒ¤IÌ3)))­­­çÎ+((¸å–[ºùF …â›o¾™0aéÂLQThh¨L&#/_¾Ìt@æóùÛ·o?zôèÑ£Gsss™åkjjȃêêêÐÐP»ï"Ølv}}=ù³®®Žä‰E±X,GesTGoÚ’€k Xp¦¦¦ÆÆÆ†††³gÏ®_¿¾¾¾~É’%äŸî½÷^µZýä“OžórÒzÓ¦M#GŽ ¶»rKEÑ4ýïÿ{Ñ¢Eëׯ?uêÔ¯¿þJQÔÌ™3?þøãòòòòòò·ß~[.—“5Lž<ù£>’ËåW¯^}úé§÷îÝKžï½÷jkk/]ºôñÇϘ1ƒ n®Ð®óØc‘b±855õÃ?dºûûûøá‡[·nݲeK]]]XXØm·Ý–••åååe¹†éÓ§çää,\¸°“•3Ž=ºwïÞ¦¦¦¥K—r¹Ü'žxbÓ¦M)))Ë–-Óëõk×®Õëõ7ÞxãŠ+Èò<ðÀ{ï½÷ÐC±X¬)S¦¬X±¢¡¡¢¨ôôô§žzJ¯×ßvÛmË–-ãp8)))‹/>pà€åÛ=þøãï½÷Þ#<âååuë­·.[¶ÌÑ~xã7ÆŽà¨$¶oJ:>[=Ù½½ý‚EÓ´»Ë0°-Y²D©TnذÁÝq¾ÚÚÚ»ï¾ûèÑ£nÓ^”äÅ_‰D;wîtv€¢Ðz]¡À¡€€€ŒŒ OxÓÞ•äêUþ¤I/I$¼ÀÐÐ@‰„(ŠÅ¼ÐÐÀÐÐÀÐЀNæ–€N +4@Ï´µuÔÕ5)Íuuj…¢¹¾¾éÀoƒ‚ÊeWèíÅ_ôòŠœ7ïÿ”Êf•J§T6744«Tº†Ù|í˜Ãa‡†„†‰DA"QPhhÉ… ¡0P, ôöÆñvà" ÀšÑhnhh®­mR*µuuM …¶¾^#“iär­LÖ¤ÕêÉb\.[( Šˆ6ÐäÍC·?öØm¶Ïëõ¦U.×ÊåÚ¦¦V…B+“i5šÖ‹ë+ÑhZ•Êf&|ôöæ þ|¾¿D“Hx|¾¿TÊ‹yÁÁþ|¾ŸDÂöòâ¸vËÜÁ" EF£¹¶V-—kärmU•J&Ó*Z™LCþßÞn$‹yyqÂÃÅbžTÊOM"¹’D“Hø Ï×÷Ú|ÍK–,Q*Ý·1Ðs¾¾^¾¾|‰„ïh®]©Ô64èT*BAš:¶(•ÚêêÆÂÂ*¥R§Ñ´2 ûøp™~Ö¡¡4~ ‰‚„ ÒùšÍFú ƒ ‚EœhšV(´¤Iš\®­¬T‘‘üǤB,K,"Aab¢tæÌQ$F‹yR)Ï÷wïV€»úŠââDŽ0L¤{µBAºW7“×r¹¶¨¨¦±Q§RéŒF3Y˜Íf …¡¡AR)O( ‰‚H )‘ðE¢@‘(H pÕ–8 ‚EÀš›õ¤«2ilXY©ú#:Ô¨Õ­×ù†…“Ɔ©©Q11¡LÛC  #è &“‰íŒ­çkkã ¦þè§ìåÅ‘JùR©Ã6E©T:•J§RµÈ嚆B¡U(´*•®¸¸®¡¡¹¡Ag2™™µ …A 4r”Jy¡¡b1O,"Ïø8}úÁ"x4Ë>Ë俪*•mŸe.—! 'NŒ“JyÑÑ¡¶}–û®µµãüùšÒRyI‰¬´TVZ*“˵b1_ ;ë-À‰ %11k$^B‚4!Aš˜(MHŒášœŽôŒîdË¡I ÞÔÔ¦PhþY®Phëêš ³0ä‘Ï÷cZÔ’qID.ñÐÛ\ Á"¸™UŸe’!2mõYž2%A"áÇÄ„ökŸe“É\U¥ºtIVV&¿x±®¬L^V&'YOTTȈ’Å‹ÓFŒ|þùÛ--ýñþÐWãÆÉü%%õ¥¥²‚‚ò/¿<ÑÚÚáåʼn&&’œQš 6Lä–ÙWºêQ¯7ƒB£ic޹\[TT}䈶¶VÍô¶¶ša†)–)$úõ€Ó±hšvw`ðÓéÚkkÕ¤hÿ蹬ijjeú„‡ ,“‰„Gz.øøôïo¢z½¡´TVR"+-•“Öˆ$¸ápØÃ‡‹Ic·ÔÔ¨„©Õ,ÀK–,9räȰaÜW¶^Ìb±||TÎ[ç ×‹(ÊäëÛDQ澯íêÕ«ééé;wî´|R£i%1iszñb]CƒŽ¢(«V£GGúû{÷½ ýJ¯7(•Í …¶¡A'—k•Êæ††f™L£Rµn×z½YX( $Ã;ŠÅ<¡0P"á …bqXÌ#ó̸qC`€B°Îa2™kj®ë³l1çòŸ}–9vd¤Àr‚ò˜ô\vbŸå.µ·KJê;»ÙœmÓ¦M'NœpJ©´Z¥ÒO©ô3ÙIëˆj§¬¶û®^ ¦(jذ&¿/qéRHCƒ—K‡†¶ …­ÁÁ,VŸ.Vo¼ñÆ'Ÿ|²óe¬¢Æââ:•j FVtºvfxG¥²¹¡A'“iT*i#¬R阮ÖdG©”'ñÈÿÿèa$•òCCÝÒ¢<‚EèÛÜ™s™é³LQ”e{C«¶‡îêÙÑa¼tÉNŒÈf³âã%=Šަéüüòìì‚ýû‹ššZÓÒb³²&Ι“ê–™‚W¬øEQ|p¯ëßšP«[Ž)ÎË;ûý½¹ééÉ™™iÓ¦%¹òC±Œ‹Šª/^¬ÓéÚ)›¨1%%ÒÏo€EV[”Êf¥R+—kŠf™LÓÐÐ\_¯!-ÉVSÅb±HƒÇ°0>‰ÉÄÖb1O,æ¹ø'ðà:--í55Ö}–m'K ð‰ˆ°î³LK¥üþî³Ü%“É|ù²‚ˆEE5¥¥22†'Ĉ–ÊË•_|ñû¾}gª«‡ -]zÃüùã##î*åÁ"C&ÓäåÍÍ-,(¨ ò9sTFÆX'Œ ¹\Ã4i,)‘‘¨‘4¿%)!A’˜(1B2УF+Mëõ'?[Î-CFx´<XŽö!àr1s:À „``ÈqÔgÙj²G}–=p"Ë‘¤?ååJƒÁÄb±¢£C¤©©‘$ý‰‹z{»ò:¥²yçΓ»v”–ÊÄâ ¬¬I™™i‰‰Rw—‹¢<)XdÔÕ58PDF>ß/==9#cìôé#Ý›UYEÅÅu--ídvr˨1!A:ˆ[ó1sËØžLd2VÛÆ,i‘3ò¬òÇÈHk&é§C°08iµm ¶¹¡\®illaÚñx~±±B»7ü!!:ªšÙL—•É;‰™L'.NäëîòþI§kÿöÛ¢ìì‚_½ìççµ`ÁøÌÌ´ b9jÌåÁ"£¦F}ðà¹ÜÜÂüür à¶ÛFzBÂȰŠ/\¨mmí°ÃÜÞ¤×5MiM+Í̈÷-<ýg °„`` 2LuuMdj”Nú,{yqÂÃÉÔ(¶ãz~[ªîLj±±"σbD†Á`:vìRvvÁáÃL&ó¬Y)™™iS¦$zfºäÉÁ"£ººñСóÙÙEEÕR)Μ1c&NŒc±Xî.Úu5vB«m“É4 E³\®Q*u2YSCƒ®¾¾‰Ì0Óܬg–‰‚„ÂÀ?vä‹Å×þ/•ò%÷¼0”!Xð\f3M&U¨¬TuÒg™Íf‘û혘ÐÞØÇl¦««KKeEEÕ$‘©¨hèè0Rz}Œ(äñüÜ]ÞÎ0S²äåÕhÚn¹eDffÚÌ™£<üÁ"£¤D–—W˜“sæòeExxðw¤zfÂÈ`¢FRÃËÊämm$ý·¬ÞIIažÐgß½ ï¨Ñ´ÕÖª[Z®M,ããà ö·{Œˆ¢“5@?B°àfZ­¾¾¾I¡ éa'}–}¥Ò`2±ò@é³Ü%š¦«ªIkD2 oy¹’´Tb¦ßMM1¢¥+W_}urïÞÓµµêQ£"î¼sÒìÙ©ááÁî.W· ¬`‘AÆo¾9}õª2"B0kVJFƘI“†¹»\]0͵µjËC ´T¦×¬¢ÆÔÔ¨øx±Gu™w/ƒÁÔÐÐ\W§Q(´õõMdHG™L#—ke²&­öZkG.—-ED‹D¼°°`‰„Æ—HxR)_* öÌÎ ‚E€~Gú,“аªJÕyŸeÒÖæžË©Ïr—lcÄŠ %‰Äâ Äİ„)™¯91QêáÍúì’˵ÙÙùdJ–¨¨%K&Î;ÖC¦dé¾,2H¸{÷©ŠŠ†¨¨™3Gˆ„‘a5–”Ô··½¼8qq"Ë Í5vB£iµÛÐÛjlG>ßÿŸj¬™‹yÛîÀs Xp¦Ï2ùϪí¡mŸerãúGǽÙg¹;*+U×Lj d–X‘(()iÀLjŒæf}NΙ]»òOªàóý-š‘1&--ŽÍ©Ä@$aÌÎ.¨¬T%$H32ÆÌ›7nĉ»ËÕcˆ«½Ý(“iìÎdÖ=…` »š›õuuMLcCËæ0ju+¢¨  _Ò玴±l# âqÓärmQQµmŒ˜œ>hbD†Á`:xð\vvÁñã%l6{ΜԌŒ±S§&ôxЋ„ÙL”çæžÍË+”˵$a\¸p°a"w­÷H#h˨ñÒ¥úŽ;Q㈒p» ™ÉÚî¤X55j“ÉL#ÓXÛ+"Bà!Ó”¸‚E€?‘–A–-Y,n/ÿì³L&uµllhy{9ú,w‡BÑ\RRÏLw[Z*' 3}FŽ OMd1"ƒ¦éŸ.Ûµ+ÿðábNë­#çÎsûí£ÐdÁ"ƒI÷í;£T6“„qñâ´ØX¡»‹æLÔÈÌztåŠÂd2#jt.ô°°‚`†š¦ ­U8æF‘é³Ìb±Äâ «v(L‡¸A–”u‡RÙ|é’1 À'99<1QÊ4H”Høî.l9¾öë¯O~ûmQ]]ÓĉqcçÎ#•¶í¬Á"Ãd2Ÿ:U‘›{6'çtCƒŽ$Œ™™cbBÝ]4g2LW¯*I«FD. RéŠæºº&¥RKÚ¶××kÈïRJe³Ù|íž+$$@"á……‹DA䪰0~D„@"á…†ºwzÁ" B:]{m­Úb‚-3çrSS+Óð00Ð'<\`Õ¢„43 ðñØZûB¥Ò× ñ‘QU¥Úµ+?7÷li©,6V¸xñ„ŒŒ± lJ–îôÁ"ƒ$ŒÙÙûöÑéÚ'LˆÍÈ›‘1f°ÖjÛ¨ñòe¹ÙL{{scc…äˆNMJHFE… jt"fk’9ZÎa]_ßÔÜ|mknXX°Tz-g –Høáá|‘ˆ‡O<‚EL&sMÚvô}Òs™‰9vdäu}–-ç\"}–»¤Óµ×ÕXňþþÞ£FE µ‘¡V·ìÞ}*7·ðÔ© `Á‚ñYYi©©Qî.W¿:Á"££Ãøã%¹¹…‡oi¹–0Λ7N,rwÑú—£¨1(È7.ND†2 ­££CзŸ ¦ÆFíÜ_UUªÚZµÑxmTG>ßߪ=y+âñ|Ý» 0”!XÏewÖNrßÅôY¦(Êvì|¦íáì³Ü%#’ r¹–¢(??ïÑ£‡nŒÈhkëÈË;›—wöÇK¸\öìÙ©YYoº)~èL¶;ƒEF{»ñøñ’ÜÜÂo¿=§×ÆÉÈ»`Áx¡p¨ôQEÔèilGu$ZM`m;“ I1¤#ô7‹àfJe³B¡ef[®¯×(ÚÚÚ&¥RÛР#˰X,‘(P,æý1Ûòµ®aÁb1Æ¥êLKKû… vbD__¯„©eL):Ù™-“ÉüÃss ¿ûîBkkûôé#33ÓfÌ5›µå`‘¡×~ú©47·ðÀ¢öv#I-šàZs³¾¼\IÚ2“sHUU#MÓ<žol,¢FwÒhZ-ú`~{«¨Pjµv¯þ£Á>“<^ûÞÀ),@¿kkë q![ª¾þÚSäÁ`"‹ø„‡K$<©”/‘ð¥Òk1"äÞË‹ãÞ­Z[;Ο¯±}|¸‰‰a–@D„€Ëº1¢¥¢¢ê]» (’É4ii±YYçÌI†\~Ä@°h©­­ãçŸË²³ <Çb±¦NMœ;w̬Y)AAC·ói÷£ÆA6΢ט±A¬ff¯öòâ„„XÎKÆäø‚€îC°N`5YŠe¿-µºµ£ãÚˆ‡<ž¯TÌtѲ쿈谧ÚÚ:ÎCŒØK••ªììkS²Äʼnîºë†yóÆEE…¸»\î‡`Ñ.­¶íСóyyg»Äf³¦LIœ;wÌw¤ú¸»hî§Õê+*ìF~±±BD¥½Ý(“i,F%Ö2ßÝÕÕÌìÕ|¾?3ŒãÉ#_,æEE…øû{»wÀ£ X€néæd)\.;"âºÉR,G}‚½JH¯70“«[÷šµÉdæpØÃ‡‹SS#™[÷ðð`¤´Ž¨Tºo¾9M¦d \²dRffZbâ â¹,vN£iýî» $aäpØ“''Ì;fΜ1H[,iµm –ç«ÊJõG\E¦Ÿ&§,‰„çîÂÂ5Ì42̯ƒL›G»ÓÈXýF'Ê-y†,‹ð'­¶ôY¶°I.×46¶0}–1YŠ ´·KJê-oËÉ}‰Éä*$F6L„±K­­û÷_›’ÅÛ›3kVÊP›’¥û,v“ZÝräHq^ÞÙ£G/r¹œÉ“23Ón¿}´·7×ÝEóDVQcQQ5iaÍçû3M¥‰‰aƒ~2îH¯7ÔÖªe2m}}S]]“\®©­m’É42Y“BÑL–ápØBaPddpXXpxxpddHxøµÇˆ1‹C‹Ñh®­UÛíeÙðÐË‹l5Å$y,•ò}|pÛìdŽbD6›/AŒØkF£ùèQ2%Ëù¶6ôiICvJ–îC°ØS-íÚ•_PPä;s樌Œ±Ó¦%áPíœFÓJNzd0‡’’zQYEIIa"¢FÏe0˜È ÉuuM2™¶¶V][«&*•×2GoonxxpX?"B! cd¤ <\Àã¡‘#ÀÀ†``²í°ÌtkÒhZÉ2,K,²llhÙ ûUG‡ñÒ¥ëbĺº&ƒÁ„щNž¼š›{6/ï¬B¡%S²Ì;&8»k{­¾¾iÿþ¢ÜÜ‚‚ ÏoÆŒd$Œ=b5^ºTO’)D—FÓÊ\TVª˜¾ÕÌxŽ–sÈ0óV3¬Ý]|è‚E€É`0ÕÕ5YMøhÛð0 À'"B`ÛaY"á è¯ç&“ùòe É sy¹1b?©¨hؽ»`߾²2y|¼øÎ;'-X0>"Bàîr $û®¶Výí·çHÂÈçû¥§'gdŒ>}$æPê)«¨ñ⟆e5Ž.º»°Ð–ã92ý'*+U ZmYÆÇ‡Kf©&×011¡äGÐÈHA@&Mð<”ÙL+•ZËÆ†–홆‡;2òºÉRÈcr!Žþž®ç(Fd±XÑÑ!$@$÷ÃçÞ‰t{÷žÎÎ.(*ª–Hx™™1%K¯!Xt¢êêÆC‡Îçææç—‡„ÜzëȬ¬‰7ß<‚Íf¹»h•UÔX\\§RÙ‰““ÃCC5<4M+ÍuuM¤3uMM#y\SÓ¤Tj™FŽ /<\)`úVGE…DD0K;€ë!Xp'®½¶VÍ46´ÌÕêÖŽŽk y<_©4ØvF‰„ˆ6nnd6ÓeerĈîÒÒÒ~à@QvvÁ¯¿^ö÷÷ž?\ffZZZR›¾@°ØªªT¹¹…;wæ—•ÉÂgÏNÍÈ3qb‹…ºÚW–QcQQõÅ‹u:];õGÔøÇôÓ’ää¤NÌÑ2m¬­mª®n¬­U77ëÉ2|¾DDpD„€äŒä1ùýÇ@?A°пL&sMÚvÐCÒ‹™é³Ìå²#"®kxh9q zG1"EQ11¡–1bl¬Ò÷ƒÁtìØ¥ìì‚Ç/˜LæY³R23Ó¦NMDï~§@°Ø¯JJdyy…{÷ž¹rE|ÇHO.×XÌ #c¢F‰„GNÔˆ2> s}UY©"¿ÔÖÔ4¶¶veø|¦35¹ÊÂHŽN`À ´Z}}}ÓM¯ËðDQ”í ËÌ ‡˜,ÅÑ4]UÕHbDÒ¦¼\IšEH$¼ÔÔ(‹QÈãù¹»¼ƒMÓùùåÙÙû÷i4­7ß<"äW9 IDAT33íöÛGcç;‚E× ãž=§ËË•‘‘‚ÛoOÉÈ3iÒ0w—kp²Š‹‹ëZZìD£FE`ð¾AÆvör©¦P4“af$G&g$ÓÈDD0(*@w Xè£Ñ\[«¶hlh²//Nxx°ecC&C”Jù>>hNå¹:‰Åâ ÄÄ0æÎ31QŠ ØÅÊË•_|ñû¾}gª«SS£23ÓæÌI vw¹'‹.FÆÝ»OUT4DG‡fdŒÍÊJKHÀ¡ýË*j¼p¡–4mCÔ8D44èêêÔµµMµµjÒŸšüGf¢(Ê××ëþÔ‚ððàÈHATTHddˆTÊGà` Á"ÀŸl;,3¿r3“¥°X,±8Ȳ±¡eÿeäMHe¥Ê2F¬¨PjµzŠ¢D¢ ¤$ĈA©lÞ¹óä®]¥¥²˜˜ÐÌÌ´¹sÇbJ–þ†`Ñ]ŠŠªwí*ÈË;+—k¤c,?|¸ØÝå*¬¢ÆóçkÛÚìD£GGúû{»»°Ð_ôzCMº®ŽäŒMLæXW×D: p¹ì°°àÈHAddHttHd$ùOŒ1¯`hB°C …‡Œo¨Ph5< ð‰ˆØvX–HxAÆqˆlbÄ­¶¢(¡0päÈpĈE§kÿöÛkS²û/X0>#c ¦dq‹îe6Óå¹¹gssÏ(Í$a\´hB\œÈÝErärMQQ óÅQV&·5¦¤Dúù!jü4šVrÝHÆpdsd~{æóý™+FÒŸ:&&ƒ¥À ‡`!½ÞP_ß$—këêšär-y,“iÈfÄCïðð`‰„,‘ð¥Rò€,ágçM¡h.)©gž”–ÊÉuhh`r2bDe9% ›Íš=;5#cì´iI8] Á¢‡`ÆœœÓ :’0.^œ+twц(2(ŠåoT¥¥2½Þ@Ù ¼;b„QãС×,'a~½®ªj´Æ‘ %檀ÁÁ" TJe³B¡­«k’É4$CdþljºöÓ1—Ë ƒÂÃÅbÉ¥R~X_"ᇅc.ÈAC©l¾tÉNŒè3rdxbâŸíJ0ù£b¦dÉË;«Óé§O9wî˜Y³R‚‚0­¶{ Xô4&“ùÔ©ŠÜܳ{÷žV©t Ò¬¬´ÌÌ4œÐÜÎ6j,)©oo7r¹ìˆiÕH¢Æ„©¯¯—»Ë .ÕÞn”É4³T_§»ººÑl¶8’¡u¢£C££C8À‚`<MÓ 3Ü¡õlËL¯‡)°åÐrâ\ÄJ º‹ëlcÄ€ŸädĈÉ•+Н¾:¹wïéÚZõĉqc32ÆàSs;‹«£Ãøã%¹¹…‡oiiŸ0!6#cì¼yãÄâ w ®AÔ]jjj­©QWW7ÖÔ4VW7VW7ÖÔ¨kjÔÌÅ­@JDG‡b@ðLÀìŽxH2Ħ¦VfÄà _ÒI™ô±œm9$$Ý$7•JW\l'Fô÷÷5*1â@$—k³³óÉ”,qq¢E‹ÆÏŸ?>>3Tx ‹ž¯½ÝxüxInnáÁƒçZ[;HÂ8þ8‘ £Ç!—:–Qã¥Kõv¢ÆÄÄ0$GC™V«¯­m¬©QWU©Èÿ«ª««Udf9Š¢$^TThtôu™#&·C°ý«› ÙlVTTˆeÃC¦?):]{qq-™—³¨¨š‰ýü¼GFŒ8°57ësrÎìÚ•êTEhhà¼yã²²ÒRS£Ü]. ¾þúäG7›ÍäÏÆÆŠ¢BBÈŸl6û¡‡¦Üyç$·•cÆo¿=§×ÆÉÈ»páøÐÐ@w 2LW¯*IÔH¾ï®\Q˜LfD`WG‡±¾^c9†#s9Màóý­Fo”Hxè\Á"8A7§Z ô ÿsªeæÒ ‡¬––ö ®Åˆä‹\%ûúzYvKMDŒ8p ¦ƒÏeg?^âåÅ™5+%+kâM7Ås8lw ®)+“OúZ' ?þš”z8½ÞðÓO¥¹¹…û÷utoº)>33 c•Ž¢F//Nxx°eÔ˜”æí¨(Êf Gò ¼\ÙÜ|­…£UàHDF ðý Î…`ºË²¥!y\Y©²mx(‘Ð ÁJkkÇùó5]ƈ Òˆ—‹«Þ¦éŸ.Ûµ+ÿðáâÖÖöiÓ’23ÓfÌ…ó€gJOßxñb½íe!‹ÅJN?|x[J½ Õê:——wöرK,kêÔĹsÇÜqG*æ+Xl£ÆË—åf3ÍD©©‘ä3>^Œœ&“™4o$£7’þÔUU*¹\KÎð>–ã6’.ÕÑÑ!8E@/!X€?‘Ç™Ië5< ð‰ˆ@ÃCèB[[ǹsvbDnbbbÄAìüùÚ¯¿>ùí·Eõõš´´Ø¬¬‰sçŽ öww¹ 3|pì_ÿÊ3MVÏs¹œçŸÏxøá©n)ô…FÓúÝwHÂÈf³¦LIœ;wÌìÙ©ˆ¨N¢Æ¸8$Q#8ÒÑa´·±±ºúZàHƾ (J( $Mcc…L G©”ù© K†­¶­¢¢¡w Éc>Xkkë(+#¢¼´TVTTMbDoonRÒu1"FXT*ÝéÓ•3fŒêrɪ*Õ®]ù¹¹gKKeÇ‹ÿú×I Œˆ¸ Ðwr¹f„ÍfëËB6›uêÔ  Ï-¥§hjj=|øB^ÞÙ£G/r¹œÉ“æÎ3gÎÿn¿vî\MJJdzQ#ô]KK;IIOjæÿ¤=—„ŒäÿLæˆÎ` Á"À Ô͆‡þþÞ‘‘!LÃCò€4?0‚tB¯70³[’[šÚZµÑhæpØÃ‡‹ÉÍLjjbÄîüùÚ{îùÇó;vìYG˨Õ-»wŸÊÍ-úèø;ïž3gÌÛoßÕ»•tt/]º.F¬«k2Ll6+>^‚q(0LëÖíÞ±ã7ŠbQíåÅyè¡©Ï?ŸAQ”Édþᇋ¹¹…ß}w¡­­cÖ¬”ÌÌ´)S}|pªð4šÖ””X³ÈårÎ{ ¿B buuM‘„‘Ï÷KOOÎÈ;}úHÒ숦é‰_ª«k¢(ÊÛ›+}öÙƒ#G"*Ø´Z}EE¿G=üð¶yóÆ­[772cb r º?¢ÆÒ±º²RU_ßd6Ó,K*哨1&&4&FèîR€Ó X¸ŽBÑüá‡Ç>ûì×S§6¹"[ÔjõõõM è ¡—Ìfz×®üý+O­n1™ÌIIa?üðtw^h2™/_V[‹¢¢Ĉ T6ßÿ§……U–-×D¢ ÿýïÁÝ»O8P$“in¹eDffÚí·F3„Afùò~üñ’Ñh¦(ŠËeO›–ôÙg¹»Pà 55êƒÏåææç— ·Ý62#c¬P8gΘe86›Ízýõ¬¿þõ7œŽt‚±Œ++UEy{scc…©©‘Ì(ÉÑÑ!ÝœÊã­·¾Û´éEQ,õÐCÓV¯¾ ׫CÁ`ª©i´lÕXYÙPU¥ÒjõEñx¾11ÂØXò_hLŒ0.NØsżÿþ÷µµêÇŸ!‘ð»f` X¸¦ººñý÷¿ÿâ‹4M›Lô?>;b„Ä)kîKÃCòX*å£58BÓt^ÞÙ—_έ­UÓôµ“º·7÷êÕÛ64°ŒÉ@ïååJƒÁÄb±¢£CÈm1.Nˆæ®CPaaÕ½÷~¬V·ÚÎLQTl¬pñâ N6Läú² ääœyôÑÏÉ0‹l6kóæåóæsw¡À¥.\¨Ý·¯pß¾3••*ϯ­Í`0™%·üwÝuã+¯d⧦AŒtw-)¹ö‹ci©ŒLÈä'²œÍQÔøðÃÛ("'.—Ãá°|pêãÏ Doú¡N­n©¨PUT4TT4”—+ËË**T*EQ>>Ü?ÒÆÐØXQllhl¬0"BЗ³ÍcíØ³§ÀË‹sÿý·¬Z5#$$Ày›× X Îœ©Ú´éÐ?\ärÙõ{鯾zdÊ”Ä¹Y_Wg§á¡\®illaVk2Ó.ã‡\è…ß¿ú {‹ŠªY,–Õt®¿þú÷èèв2y—1bb¢4.Näš&ºàÉvîÌ_»ökš¦Iƒ5K\.çÖ[GnÛö€[ .ÓÖÖ1jÔódl~__¯ ^öóëÖÄÁ0øœ9Syç[t:½í?q8ìÄİ­[ïŠ q}ÁÀ-4šVÒ¤±¤DVZ*+)©W(š)Šâñ|ccíD7ßü¯òòË5p8lÀÿé§g/]z¦¨+ƒ©®®ÉrÜÆ’ÙÕ« rAÂçû[ŽÛ˜ IJ ëfŸ‰ôôÅÅuEq¹6›µ|ùM«W§‹DAý»=C ‚EÒ¾ðöÛ‡OŸ®ôòb ÞH³Ù¬7ßüëwN²\ضá¡Å´Ë6<ärÙ4<„þVQѰ~ý7ß_Ìårl—±XTB‚D.onjj¥(ŠÇóKL”’‹~ò‰„çŽRƒ‡2ÍÏ=—Í ªhw™€ß þ‰v¬ƒÞÊ•Ÿíß–¢XsçŽÙ¼y¹»‹nsútåܹÿqô¯^^??ï?¼·G¿Â AÓtuu#é:]R"+)‘••ÉÛÚ:(Š’Hx#FH~ûíŠåx‹EQ+6Vøì³³32ƺ¾Ø0°Ø¦••*¦¦Y¥ämÚøøg[[Û™?½¼8û¦¬Z•î Cê a(¢iúÈ‘â·Þú®°°Ên(ãíÍ]ºô†„‰\®­¯×Èd™LS_ߤÓ]ûZòòâH$¼°°à°0¾DÂ&’ÿ#=„~¥T6oÜøí—_þÎf³˜Æ°V¼½¹#G†-\8!)Iš •J1¬ 8ÔÔÔúÐCÛ~ûí²U£W+,ë“Oî›5+Åe·8tèüý÷JQôÖ­Ìœ9ÚÝÅ·yñÅœO?ýÉÑ· EQl6›¢è'ž˜ùÄ·c:x0›IÔ(+)‘åç—>|ÁÑ’Ûd2ÿå/ñ/¼0?%%Ò•…„A £ÃøG7êò ¢¢¡¶VMÚ6†„ÄÅ ™ÑCC—-ûÀv%\.ÛÏÏ{õêô˜âëëåòl® ëêêÜX0Í¿ÿ^ÿî»G._Vr¹,Ûî~„—'11¬¦¦Q*凇‹Å<’?¹Üvt·0Í»vùàƒ_Z[ f³ýÚKp8¬™3GþóŸsúµ<áá}´­­M­V;¥0Ð;UUêÕ«wÕÔhº\’ÅbÝzkÂë¯ÏsA©(Šòóóú4‘(jWïæôô÷(Š:rä1250ôˆ@ ðóëý¤FRoišž={‹R©ëηݖð ³ýüps>¸¦~~ÿ}é³Ïîë¼ý £çÍKyä‘[„B {}N­¬T‘ñ*+UååÊæf;ƒ90Ølç÷裷>ôÐÔmÛ>uYi¡GÒÓÓ‡ æîR@®kWUZZê®rô7£ÑüÛoµ¹¹e55ͤ¯ŸÑèðrÇ`0……ñ¿ûî)»ÿzìØ±úú~+(€--[·žËϯ'íG¸\–ÙL;JM&º¨¨º¿Ïê}›››ñÕãF%%ªÿþ÷Lss‡¯o·ÚY_¸P{áÂ%//W„M"‘¨Á"jW¯Mœ(¥(ÖÕ«—Ý])99¹/Á‡ÔÛ²2u7SEŠ¢Ž+{è¡ÏW¯N ÆÏ®žÎ5õ3?¿„Ãaur¥Íå²ÍfÚl¦÷í;WXX¹bŸ˜t­€Þ çóýSSýSS£˜'M&óGùå}Ž:d˜Í´FÓöÊ+û·oÿ­°ð3½¾ÌUå…øúë¯,z>ë‰ääd±Xì–¢ô«övcGG¡BÑk:uª²­­ƒÌ/æ¨OMMc'kÑn1gÎL³™&Z“ÞFÅŵW®\›ÅLJk0˜˜!”ÊÖÉ“§ôÓøè …¢¸¸ØYk›6mš³V=2mµbÅbw—ÂŽ ö¡ë)Ô®^ðñ‰b±¨oîî‚ <ÇŽsÊzÜ^ooºÉ¸dÉí¶Ï{{s1ŸÏÀå²úùÅL¿ 6›åíýçõ‰XÌKNKNŽ`†~FGTè‹N®H9vss—Ëéè0Ú]€¢(š¦ÙlVe¥J ˜øå—«ãâDýVXè1»“΃ÂHp0TøøpÓÒ¢ýýuäb¨²RuòäÕ“'¯þòËåÊJEQ–SBS%“uÝ1ÀõØl5æöÛ¯}f2™«ªT—.ÉÊÊäÅÅu.ÔVVªŒFSG‡©ªJ…Ë#è©n@Ó€¡ÎÛ›‹™š ×.^¬'¹bPorrxrrDR’4)),1QÚÍ™|œâÊ…U#‹åëËíè0™Lf.—/7.&%%òᇳÞxã-\6ô®`ˆ"s‡eeM¤(ªªJuòdy~~ùo¿]¾rEIQ4›Ínjj3Í^ <‡ÃŽ‹Åʼnî¸ãÚ¬F£¹ªJU\\ÇårÜ[6ˆ0ôÅCM‹&&†‰ÅAî. iee š¦}}½::Œf3íåÅIL”Žš•’9rdó Ê}÷Õs¹øîè%‹TtthtthffEQMk~~E~~ù/¿”©TÍ |‡Ëe&6 ?º€«ÝsÏMî.EQ”J¥KI‰œ0!&%%2%%*1QJÆÂçB°p>ß?==9==ÙÝ€^*,|ÑÝEÐÍz Á"ôØÀ«ªªî»ï>«'/_¾ÜÇYəղ,ÄÆÆÞsÏ=J¥ÒrÉ–––µk׎3&((hâĉ¯¼òŠÑxm2{‹5bÄš¦-—¿ãŽ;X,ÖåË—ÉäAïô}3ûCßKÕÇÝv‘*MÓôÝwßèîâ8ÔIý±<*;?²\É£ c—ç”d0±ûÕc‹©ÏV›¼üÌ™3\.w×®]Ìó999ÞÞÞçΣzû ¢ÓéÖ¬Yççç7bĈ 6èõúî”°×PÁœÎck—OwN¬6½«Ã¨·NçÉõ¶_¯äûã`ÔÏ>~¹Ø­îËzÎ-gHGo:*6Õÿ•Ж 6 Wƒà;XÜ»wï‚ úuµ¿þúk}}}MMÍÖ­[µZíøñ㛚šÈ?577§¥¥åçç¿þúë§Nzî¹çvìØ1cÆ “éÚ”ögÏžeV«V«?îôÒö·«W¯ …Ân.üÌ3ϸ¤\ФJ×ÕÕíØ±£¸¸ØÝÅé Ë£Ò£Ž,* ¸F'_=Ý9’—7nݺu«W¯&ß)æoûÛ† RR®MíÝ‹ªµjÕªÓ§OïÞ½»ªªê“O>ÉÉÉY»v-åø4Ž3¶òØÚÕëWÁPàÉõ¶_¯äqPØåÜ/Ü—YÂ}™Ûõk%$+·ÔO[zN7°ƒÅï¾ûnæÌ™ýºZ‘H$•J#""¦OŸþÍ7ß 6ì­·Þ"ÿôÒK/‰D¢ï¿ÿ~Ö¬Y ‹-:yòdEEÅÖ­[Éééé–¿»îÛ·oêÔ©N/m3›Í*•ª› …Â×^{Í%å‚ Uº­­¢¨èèhw§7,J:²<ª0à|õtç|ȼüùçŸ …äbîÙgŸ {úé§™ÅzQµöîÝûꫯŽ?^$M™2åwÞÙ·oåø4Ž3¶òØÚÕëWÁPàÉõ¶_¯äqPØåÜ/Ü—YÂ}™Ûõk%$+·ÔO[zN׳`qß¾}jµš¢¨/¿ü2!!¡¥¥…¢(ƒÁ°víZ‰D"‹×®]k0H“Úï¿ÿ>::úرc6lˆŽŽ‰D÷ÜsêÛ¾Š¢¨ÜÜÜÔÔT__ßaÆ}þùçEF»/ohhðóó3™L7nLHH ºùæ›ÿýw²@SSÓÿýßÿ …ÂÈÈÈ5kÖa,ëÓO?9r¤H$zíµ×>ÿüó¸¸8>Ÿ¿~ýz«ÕÚn>‹Åzä‘GöïßOþܾ}û?þñçÏëÖ®]»}ûvògVVÖÎ;™ÏÙÙÙ™™™vwlç¥";3'''11Q,¯^½º½½Ýòåv÷d—[êèU;vì9rdHHÈ¿ÿýoŠ¢n¼ñFŠ¢˜óZ^^Þ¸qãüýýÃÂÂÈ9Èr˦Ԏö¿Õúm}÷ÝwñññàÕW_u´ù]î÷òÌ#Åö“"ïûóÏ?Û~¬T¯ªÐ_þòòåÚØØÈf³×¬YCQ”ÉdäÀ±­V%!k¦izÍš5cÇŽmhh lŽÊάÞlüøñ<ðYR§ÓùûûŸ9s¦;…q´cmÛ%išÞ²eKrr2Ç»õÖ[óòòÈÁÕy-bö!T?P–§;æ±£ó!ò2{{{oÛ¶íÓO?}õÕW·nݺmÛ6///fÉîƒ0x<ÞæÍ›™+Å)S¦TVVÚ-ÙEÛ¶mcJh[-Õ@+½‚¡vQÝ«]]¾Êv3»Y…»× ¶'FG—|CíĈzKu»ÞZrú•|?½~Z~Ð}¼ÇÁ}™{ïËú¸+¬ ôŠm«ÿ*¡%»'|G'dGßV»÷ïà|´…£GÊårºS÷ÜsϽ÷Þ+“É$Éï¿ÿNž|ýõ×/^\UUUTT4~üøgŸ}¶¬¬Œ¢¨;î¸ã‡~xá…FUTTtîܹn¸aÍš5Ž^¥Óé|||¶lÙR__ÿÉ'Ÿp¹\N·qãF»/ÿôÓO?ÿüsš¦7mÚ$‹÷ìÙSWW·ÿþððp²]Ë–-»í¶Û®\¹RTT4zôè^xÆK—.Õjµü1EQK–,Ñjµ|ðEQ –«% —••Yn~~~~pp0MÓäØV*•Vûç—_~‘H$äµ—.]’J¥gΜ¡iº©©Éßߟ¤$d–+ï¼TdgΜ9³´´ôĉñññ/¼ðyÒÑžìΖ:zUff¦Z­þè£(ŠR©T–o¤Õj½½½ï¿ÿþššrŠT(– X>v´ÿ­Öoµ)Šš;w®V«Ý½{w—›oõdçU—¦i¹\~ôèÑ.ëÒ=Rl?)ò¾õõõ¶+Ý«*ôÒK/Í™3‡¦éœœ7~üxš¦ |}}[ZZh{µÂ²$………E™Íf&U´ÚºGVï‡Î vàÀÐÐPƒÁ@ÓôöíÛGe6›»,ŒÝã…¶wØ]ò£>Šˆˆ8xð R©<|øp||<ùø:¯E:βöß嬣©›ëTwž´¬ÌijÏ>KQÔË/¿lùd¾A‡Šˆˆðññ™1cÆÆ+**¬JB_ì“#ŽyG«jé¨Z•³Ÿ*ØùóçÏŸ?ßù2]BírbíêüUv7ÓQ²»~Û“°Ý££K>91ÒÝ»Bèê­sëm¿^É;ë °*ó@¯Ÿ–Ÿoïqp_æúû2'î KžEJQÔ×_Ýå2ýZ ›¯GVb{ÂwtBvô-ÐÉÇäá÷ïÝù\Àô8XT«Õ‘‘‘©©©–õ ))©¾¾ž<>|øðرcI½)**¢i:11qÏž=ä_‹‹‹™Ç¶¯jllôòòzã7ÔjµÙlnnn6™LŽ^¾xñâÆÆFš¦¶mÛÆæÿûEQ‡¹-Ù³gO||}š¦éŽŽ«ÇäfVK÷êÜñÛo¿ …Bæµ>úèsÏ=GÓôöíÛg̘a¹N«³v'¥²Ü™4Mýõ×ñññ–§Û=Ù-uô*rj¶zw²X{{ûÅ‹u:ÉdúñÇm`w²ÿ­Öoµ)Š:vìMÓd4ŠÎ7ßêIº+® =ðH±ý¤ÈûÚýXé^U¡‚‚‚ÀÀÀŽŽŽ'Ÿ|rݺu^^^jµzãÆ³gϦÔ Ë’Ç¤ßSII ³ßlÊNެ^]Ìh4J¥Òï¿ÿž¦éÙ³g¿öÚkÝ)L';Öê(°»äèÑ£wìØÁì„/¾ø‚||×"+ýw@¹8XTwž´¬Ì4M›Íæùóçs8œ»ï¾Ûr{{ô bÉh4ž8q⥗^=z4‡Ã!UÈѱouïgU-Õ@«röSseI„–º IDAT°ˆÚÕÚÕù«ìn¦£*d»~»'a»'F»—|]~^¶ÛÒW. Qo»_o-Ÿqú•¼S «2ôúiõåÒ—{Ü—¹þ¾Ì‰»Â’ç_‘Rý,ö¨Ú"+±=áwÿ|ÞåÇäá÷ïÝù\ÀôxŒÅààà‡~øÂ… +W®dž¬¨¨ #S͘1£¼¼œ<Ÿ””DQTeeåˆ#È3#GŽ\¸p¡£W ‚£Gž8q"22rêÔ©?ýô›Í¶ûrNg0EQÕÕÕcÇŽe “ššJQ”\.7™LÇ'OÆÇÇ×ÔÔÇAAAE‘¾–­VkWYYYgpp°T*%Í=,N˜0ù3++k×®]4MwÙÔ¹“RÌNHJJb¶ÅÑžìÎ:½Šüþoõî„··wiié¬Y³&L˜°mÛ¶N6§“ýßÉú-`³¯«œv7¿“}âvx¤Ø"ïÛÉÇÚÓ*4nܸ€€€üüüãÇÏ›7oܸqÇ?zôèœ9s¨Nk) ‘ŸŸ?mÚ´W^y…üiw:9²zq8tY0‡³hÑ¢={ö4449rdÙ²eÝ)L';Öê(°»ä•+WFͼ$99¹ó ´Ü‡¶ï…ª_(ÚÁå Û—ïØ±ãØ±c?üðCvvvNNŽÕòÝÿ¡(ª¥¥å«¯¾¢(ê†nX¿~}QQѺuë,‡'³d·¶XUKG5Ðî«tCíê~RG¯²»™Ý¬B”ƒ“°Ý£ÝK>jHžQo{Úšpú•|ƒ ~Zêõ=îË(¸/ëË®°2È*6áÜJh7³£ìð»>'Ïwg—âþú¢ÇÁbuuõ{ï½—žžþÔSO1O …Bæ0P«Õ'Nœ Ï“Ê^QQAž),,ü׿þåèUmmmf³y×®]<ð@FFFcc£Ý—½yóæNVÞÉþïdý„Ýáfìn~'ûÄí<ðH±EÞ·û«Û‚±ÙìÙ³gçää”––Ž?þÖ[o=|øðñãÇÉQÓI­°ü¢ÊÍÍݲeËW_}uôèQG›ÐɑՋá;ËÊÊúæ›ovîÜyË-·DFFv§0ìX«£Àî’111älF\¼x±ó tôeŠêÏÊh4RU[[Û­°zy]]ÝêÕ«7nÜ8eÊ” 6¬X±ÂjDö}ƒÐ4}×]w;wŽüÉb±n¿ývR<[vk‹UµtT­ ‚ †ÚÕýë“NNw¶›ÙÍ*D98 Û=1ڽ䣆ä‰õ¶×Õýq%ßÅ ¨Ÿ=âh+p_FyÀ}Y—º_ _ÅvY%´=áwÿ|NžïÎ.Åý;ôEÏN%f³ùþûï_µjÕ—_~yäÈ‘ÜÜ\òü¢E‹ž{î¹ÊÊÊ¢¢¢Y³f½ÿþû–¯Z¾|ùßÿþwÒ­é±Ç#cÉÛ}‹Åš9sæîÝ»µZmGG‡———¿¿¿Ý—çääÌŸ?Ÿ¬ç‘GY»vmNNŽL&;xðà?þñŠ¢¼¼¼î¼óÎÕ«W———Ÿ?þù矷jdd—åj ¥R)“ÉjkküñÇ… –——?ùä“äŸþñ(ŠÛn»íàÁƒeeeß|óÍ 7ÜaùÓ1‡ÃY¼xñŠ+&Mš$‹{´·­<þøã—/_ÎÏÏ_·nÝÝwßmùOïGzô*NGQT{{{GG‡··w[[Û† (Šjnn¶\€Ñ£ýÿñÇk4šÎKkwó;Ù'îå™GŠ#|¬³»9³gÏÞ¼yó 7ÜàååuÛm·mÛ¶-&&&&&†êv­HLL|öÙgyä½^ow:9²zq8t§`“'O6/½ôÒòåË»Y˜îïX»K>úè£O?ýôwß}§R©ÈØXä;»Ë ÄEô÷LQÔgŸ}¦ÕjßyçË·¶:2,_NÓôŠ+RSSɼ@O=õ”D"Yµj•åòƒ¯'F``à=÷Üsçwîß¿ÿêÕ«¿þúëš5k–.]Úe©qTYCíêNíêòUv7ÓQ²]¿Ý“°Ý£ÝK¾.?/ õ–¢¨¡ZoûûJÞ)Å «Ÿ=åh+p_æH¿Þ—õT'»bPVì~­„V'1r³{ÂïþùœüðÃ---–ýöõzýš5kÂÃÃù|þÒ¥KÕj5yÞöU4Mýõ×Ç÷ööNJJÊÉɱûòŽŽ2da47nÜð—¿ü…ó4M766._¾<444,,ì‰'žhkk£m†°|\\\l¹ZúúNQQQË–-³Ú?:î©§ž=z´¿¿ÿ¨Q£^~ùåÖÖV«•;vŒ¢¨÷ßßêùNJbõ˜ìÌ?þ8&&F(®Zµª­­ÍrÛÝ“]®¿›¯2 ·ÜrK`` yrÓ¦M!!!QQQ›7o^ºt©X,¶\À²TÝßÿ½Þ|«'m*¬5—±è™GŠÝÑ4Û•îmjjjâr¹dÌõ––ooï§Ÿ~šy#ÛZá¨Tmmm ëÖ­³=*;?²zw8t^0â‘GñóóÓjµÝ/L÷w¬í’&“é­·Þ>|8ŸÏŸ5kVNNŽH$ê²u¹±Î: \9Æ¢gP4M¿üòËÁÁÁÇ'ýõhš¶{>$¬^¾mÛ6˱DOž<Éf³³³³éî}ƒØ~›Æ^x!55ÕÏÏ/66ö™gž!Ÿ££³´åc۪⨺¦‚¹lŒEÔ®nÖ®._e»™T!ÛõÛ½f°=1:ºäó#íª1ìPo»_oýw%b0ÕÏο\,w²i¶µË5Ÿf_ÊLÜ÷e=Ú®©Ø.c±_+¡Ýó˜Ý~÷ÏçvwéºïÎçž Ç“·€ëÙCŠÝÍïÝ>qåä-0ø¬[·î®»îrÙÛåææ2fgg“‘¼ûÈY”‹'o×ë] tVsåä-ÐOúé$Öœx¥á²É[` rïy•ö¼ú9ïqb™ûIw…§]‘ÖË-5Ö‰g­Áú¹ >}U`ÐÓëõW¯^ýôÓOzè!—½iQQÑÝwß}úôéÖÖÖ'N¬_¿þÁtÙ» B¡ XÁAƒ×Ý€®ñx¼+V¸»ncwó‡ø>ûý÷ß.\¸råÊiÓ¦¹ìMŸ~úéÖÖÖ (•ÊaÆÝÿýN©ó8  ›zWQÁ€ÑO'±þ€z ®óª•¸±Ìý¤»bWlâ–]ŠwbÑýù;–œœÜDZl<–B¡(..î{6„#ÀYG“³Öƒ ™8uÔ¨Q}Y j¸^߯Po¡ÿ ~Âàã¬:Éb±¾þúë%K–8£Pà4ø\ t…€C°=†`z Á"ô‚Eè1®ÕßMMMF£Ñ-Eèo:ÎY«Â‘Cœ&Š¢êêꜸ6ôz½¯¯¯SV…Úê-x2ÔOðN¼"ýþûšœµ6€!Å:XÄ÷@wàHp¢ÒÒRw<޳‚EÔ.ˆPoÁ“¡~ ôᇺ»×øû§øû§¨TÙ4ÝáÚwf‡†.Öë/·´œqíû€ǢiÚÝeºZZÚŸ~ÏÎù<0ùïÏðñ±nÖ¯ŒFó¦M‡Þ}÷Èw¤lܸ„Ï÷wå»Ã€†`ÀmNœ¸²jÕ³™~çe7ßï®bVýíoŸ·´´ÿç?wMŸžä®bÀÀ‚É[ÜÀ`0ýë_yYY›ÓÒb}Æ©"EQcÇF:ôÔäÉ wßýáúõß &7 ´XpµŠŠ†Gý¼´TþÊ+‹³²&º»8Úµ+ݺÝ#FH6o^+twqÀ£¡Å"€KíÚ•?sæF£ùàÁ'=*U¤(*+kâ¡CO™Læ™3ߨ½»ÀÝņ‹.¢Ñ´>ýô®ýûÏ>ñÄÌÇŸÉåzh“/ƒÁôÎ;‡ßzë»E‹&¼újf@€»KžÁ"€+üþûÕU«¶æwÞYvË-#Ü]œ®ýôSéêÕ;¼½¹›7/Ÿ0!ÖÝÅ㡹8À ñÇ<-ïqäÈÚ‘*R5yrÂáÃk$ ¾ûæ›Íf´Nƒë Å"@?ª¨hxì±í—.Õ¿új¦§¨Ø4MòÉOÿüç¾nþî»wI$|w—<‚E€þ²{wÁºu»cbB7o¾'>^ìîâô^QQõÊ•Ÿkµmo½µ4==ÙÝÅ€`Àù´Ú¶µkw’yZV¯žáåÅqw‰úJ§k饜;NÜÿäõë3¼½¹î.¸‚E'ËÏ/ì±í¦wÞ¹kòäwÇ™òòή]»3::ä¿ÿ½gØ0‘»‹î„É[œÆd2¿ùæÁÅ‹ßKJ ;rdÍ K)Šš;wÌáÃk|}½ÒÓ7~üñqwÜ -œ£²RõØcŸ׿öÚ€œ§¥ûŒFóÛo÷Ÿÿž5+å7–ðùþî.¸‚E'øæ›ÓÏ=·+**tóæå#FHÜ]Wøå—Ë«VmçrÙï¿¿|âÄ8w\ Á"@Ÿ´´´?÷\öž=§V®¼uÍšY>>ChV“ÆÆ–'žøòèÑ‹?>ãÿý¿™†ÝB,ô^AAù£nïè0¾ýö]S¦$º»8n@ÓôŽ'6lØ;n\ô{ïÝ-•òÝ]"p¤ÈðÿÛ»Ó¨(®¼ã·¡iÜ¢,"`AEIpËyÆäĘœ ã–q‹I ÈÇ… 8.\"™=šhĸ`fÜ8ŒnDã(n3'ÄAÀ'ÚHT\Ú€Ø4Ýõ¼¨çéé@³Å†bù~^·ëÞû«®û†ÿé[ø5ä÷´Lž,¿§%ª}V…*•*4ôùãÇ”””¯KIÉR:š ¿Xh´»wDF&fdÜüË_&†„ S©TJ'RÞãdžիíÜùõë¯?÷ÑGS;vÔ(M‹Â"@ã9’äãÓ5.nz߾ݕŽÓ²üã—-Úçáá´mÛôþý{(Mˆ­Ð U^®ŒL|÷ÝϧNý¯¯¾Z@U±¦1cž=}:ÊÕµÓØ±±;v|­t4!~±Ð —/燇'”•=Þ¸ñí#ÚéÈh4mܘ²qã©‘#7lxËÅ¥“Ò‰`{êa2I±±'?ýôÔˆýbcßvsë¢t¢Öáûïo¼ûnBU•qË–ÐaÃü”Ž£°P—{÷FF&~÷]ÞŠ¯Íš5œ÷´4ŠN÷ø½÷þ~ìØ¿çÎ}eÉ’1öJ'‚ÍPX¨Õ—_þ°dI’··K\\X¿~^ºôÀáÃ3g_¹ò÷öJ'BCQXí”É$mÛvvݺ/¼à¿qãÛìÆUPRÒÅeËöéã7½W/7¥ã A(,€ö¨ àadäÞôtÞÓÒR俆‡'äå­Yóú”)Ï)õ£°ÚS§².ÜçìÜqëÖéòž––Â`0nÚt*66eòä¡kÖ¼Þ¹³£Ò‰P ‹  2ŒVŸÖWQQs$11}æÌá¼§¥e:þjdd¢F£Ž‹›>th¯š'ÔvsÑÌì”`cÅÅå“'o.-}\­='çΘ1±ÇŽý{ûö~8‰ªbË4|xßS§¢úöõœ4ió'Ÿœ0™ªÿ*nþü½ÇŽý[‘l°Da´5 îûþûK—0·H’´cÇ×ãÆÅvëÖùô騱cƒŒ‡z¹¹uÙ³ç¿W®œ°iÓé·Þú¬ à¡ù£}û¾=r$cÑ¢}–P[¡@›²wozTÔß%IR©T[·†Nœ8¤ @÷ç?ï½pAË{ZZÌÌ[óæ%èt±±Ó‚ƒäæ¯Óë«ÔjûaÃüöïŸËÝT…EÐvhµ…ÁÁë †*I*•ÐhÔ6L[½ú¨J¥Ú¼9dØ0?¥¢ÑtºŠ¨¨¿?ž9wîËÇ_¾y³Øh4 !ììT+WN˜={„ÒÛ/ ‹ 0Œ£G¢Õ &¹E­¶óñéúÌ3>ëÖMuvî¤l<<‰½{Óÿö·´ÜÜ"¹ª(S«íOž\Ô¿¿—‚ÁÚ3ž±ÚˆõëO\»öŸª¢¢ªÊ”Ÿ_ìççNU±µëÒÅñêÕ{–UE!„Rxx‚Á`´ÞMŒÂ"h .\ÐnÙr¦ªÊT­½ªÊ´iÓéþS«H*ØD~~É¢Eûk>N±ªÊtíÚ½õëO(’ @«W^®Ÿ?omïñP©Tóç'––>næT° “IŠŒLÔ뫬>ÐÏd’ââÎddÜhþ` °Z½åË<4™ªÿ\Q&I¦;wDG'5s*ØÄÎ_§§çÖñòg•J¾çÑ£Êf !xy híŽÏüãw×lïÐA­×Wi4/¾ØgäÈÀàà=z¸4<ª¨ÐË;;•]U•1 ÀëÕWŒ9`èÐ^öölÙl#nÝ*NKûñäɬ´´ÿ1%µÚÎòÍ-Û·Ï7n ‚ñÚ ‹ µ’$éÍ7?û曫j£Ñ$„4xðÓ£Fèß¿‡ÒéÐ„Š‹ËÏœÉ9u*ûìÙ+Uvê¤yô¨²k×ÎçÏ/uuí¬tºö‚Â"ͤ°°0''GémJJÊõøøË:8 ä1th÷=ºtÑ(Ê–ÜÝÝŸpìì좢"›äiŒF)'§(#£à_ÿºûóÏÆyGF>§t¨6kÀ€æ?Õ F zò:dUvèP¼sgè A>juÜì|ëÖ-[ åäääëëk«ÑZš  ñÖ[B¡Õ?¯íØÑ³wo7¥CµAÙÙÙÕZ(,ЬÜÝÝ•ŽÐv¬\9YéM¨°°ÐVC9::¶‡…çîîþüó”NÑŽ´Ár>€¦Fa@£QXÐh4…EFaÔêæÍ›ï¼óN½§iµZ•Jey`Ùý‡~P«ÕIIIæöäädFsùòå¦È\ÊB¯^½ÂÂÂŠŠŠê8_’¤ÐÐÐ.]º4||­Vk‹¤ø›,<ñË»ïìì<~üø¼¼¼šçס±ë¡^5ŒÕ%TÛ¥5vð&EaÔêÈ‘#'N´úÑõë×ÝÜÜäc—÷Þ{¯¶îƒ^¶lYdd䃄> ‰‰yöÙg›.¹¥ .ܽ{7??÷îÝ:nÈ!r«îܹ“˜˜˜““Ó<Ù`•Mž|,ßý;w¥™L¦ÐÐÐzg·œ¢9×CC.­E¡°j•’’2jÔ(«™L¦ŸþY>vss[»vmÝW¬Xáææ&J¢££½¼¼–,YÒd©«swwïÞ½»··÷+¯¼røðáÞ½{ÇÆÆÖvrEE…¢gÏžÍ5Ùjá‰ÿ¿û^^^ƒ Ú¾}û… t:]ݳ[NÑœë¡!—Ö¢PX ùòË/½½½KJJ„_|ñEß¾}ËËË…ƒ!**ÊÓÓÓÃÃ#**Ê`0È$Ïœ9Ó³gÏÔÔÔ˜˜˜ž={º»»‡……™ŽW³—âèÑ£AAA:tèÝ»wBB‚¢ªªÊj÷û÷ïwîܹcÇŽ–›1ÍÇÆ BtïÞ]Ô²[ÓÜ]¡ÑhâããwíÚµf͚ݻwÇÇÇ;88ÔÒ†—V“J¥š;wîW_}UÛ8–×ÕÀ1SRRüýý]]]׬Ycþ6’““ûõëçáá©×ë­66tY4½¶ºðª±··—çµl®·ÑÜÝ,::Z±jÕ*ËÆ&½4I’„×®]³œñâÅ‹...uÏ.ZÛ˜–„ãÇ×étBÜ¿_aÔ¨QW¯^MOO÷÷÷ÿàƒ¬6Ö½²²²²²²ê>§!8N›\xBˆK—.•––êt:­V;yòäçž{Îò|N§ÑhfΜ™ŸŸÿùçŸ ! ­N! yõÕWsss333Ÿyæó•¿²²2!Ä´iÓt:ÝŽ;„o¼ñ†N§ûë_ÿ*¯ ÉÚ‚4·Ô}iÊ®FI’Î;WPPð‹éêíl¢…Å’’Ÿ   ËõîÞ½+Ÿ:ujРAri 33S’¤~ýú:tHþ4''Ç|\³Wqq±ƒƒÃúõëKJJL&Sii©Ñh¬­û”)SŠ‹‹¥_[ß1w—™L¦ &ØÛÛ‡††Z^o“^šT_a±¶Ùå–ÚÆ´$„HMM•$Éh4ÊsYæ—$iÿþýþþþV¥:5sa±M.<Ë_×988Œ1¢Z O¯×_¹r¥¬¬Ìh4¦¥¥YÞÁjSH’TYYioooþ2:TóÎ !222ä“«ËSÿꢲ«Q²VXd+4-‹‹‹ËìÙ³³³³çÍ›gnüé§Ÿ¼¼¼ä—ÛŽ9R~³­" @qãÆ>}úÈ-ýû÷Ÿ4iRm½\]]Ï;—žžîãã3bĈóçÏÛÙÙYí^VVf0\]]«Å«V¬©MÍ‰©©©gÏž=pà@rrró\šÕl×®]óóó«{vYÇìÑ£‡¢ÚGæØùùùu4¶muᙫx•••©©©þþþ–çk4š«W¯Ž=zèСñññu^PP`4Í‹Çßßß|å/DöÔSO !äÍþ–ÇV¯¥×%Zäj¤°@ËrëÖ­-[¶/Z´ÈÜèææf®”””¤§§ËírÁ¢G?ýô“ÜréÒ¥Õ«W×Ö«¢¢Âd2%%%Ïš5ëµ×^+..¶Úýĉ£G¶ &?™îöíÛ ¹ŠjÝïܹ¹nݺ—^z)&&fΜ9–/©hºK«L’¤mÛ¶7®îÙe ³æ³ð„ò„W¯^•k=µ5¶mráÕ«¢¢â7ÞˆŠŠÊÈȈ‹‹«ûdOOO{{ûëׯËæææz{{ËÇÕJ‡uèÙ³§V«5ÿyåʵZíëëÛ¨-m5RX 1™L3gÎŒˆˆøâ‹/NŸ>}ôèQ¹}òäÉK—.½qãFffæèÑ£·nÝjÙkúôéË—/—w¼þéOºqãFm½T*Õ¨Q£<¨Óé*++:uêdµ{rrò„ äq\\\„{öìÑét›6m²œZ~¨\M–Ý%Iš3gNPPЬY³„‹-òôôŒˆˆh†K“O.**ºwïÞíÛ·ÓÒÒ&Mš”——·pá†Ì^Û˜;vìxøðaÝ·rþüùZ­öâŋ˖- ­£±%h“ ¯!ôz}ee¥F£©¨¨ˆ‰‰B”––Ö6…ƒƒÃ›o¾™———••µbÅŠ†Ï%›1cFDDıcÇòòòΜ9æèèh>¡¶Kk‰«±ÞíÓÀ&òŒÅÍ›78°²²R’¤Ã‡{yyÉO‹Óétï¼óŽ««k·nÝfÏžIô³CIDAT]^^nù8¶Ç/^¼¸GÎÎÎÓ¦M+))‘Ûkö’$iÿþý~~~& 99Ùj÷ÊÊʱcÇZ[µj•‹‹‹ŸŸŸ¼‹Y’$ƒÁðâ‹/véÒEªñ<¸jÝãããüñGsËwß}gggwàÀ¦¾4é—ûL}}}CBB,ŸW÷ìuŒiþE^Ícy„;v<ýôÓnnnVë^ ÍùŒÅ6¹ð$k4”Y^ņ ºvíêëë7mÚ4«SÈŠ‹‹§OŸÞ­[7//¯ ˜ï¬Õ­ †?þ¸_¿~òË—/_.?u_š|‚‚«Q²öŒE•ÔàÜàIæää¼üòËJAÓÒjµ}úô©Vr±ÚX·ììl!D``àæ±Õ8hlµ…©©© ððð0·°@£QX°%''§9sæ4¤hjMºÙ @3a+4…­ÐhQØ À(,h4 ‹Â"€F£° Ñ(,h4µÒh_RSS•Ž€VÃÝÝÝ&ã±ð`s*I’”Î@» ×ëu:Ò)К8:::99=á :N¯×Û$Ú9'''GGGóŸ4ÏXÐh4…EFa@£ý/b –ÙºŸ¿×IEND®B`‚XQilla-2.3.0/docs/dom3-api/inherit_graph_40.map0000644000151400015140000000030411653571066016020 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMLSResourceResolver_8hpp__incl.png0000644000151400015140000001114011653571065021113 00000000000000‰PNG  IHDRÕuV>3:bKGDÿÿÿ ½§“IDATxœíyTSÇÇ'$$aQd‘€ (U¢H)ž*e9E @QA¬EYZÅ>µž* ´Ôý¨T£¬OP‹¢­µÅ¢àBxTD}q9lÁ HØrßÓsß5[t>ÍýÝ™ßï77ßÌÌ]rCÁ0 $¡Fvˆw¤?™ ý!ÈéA&4âFQQQBBY© Þœœœ¶mÛ†o¾¦¿æææßÿÝÙÙy´“B¼Ü¿ŸÍf-4ÙJ±±±£•âÝ">>^Ê‚Ö2AúC Ò‚Lþd‚ô‡ 9ç¿âââ‚— gÍšÅb±p£X,ÎÈÈ(++ãóù¦¦¦ŽŽŽK–,¡R©°­±±qff&…BÁëoÞ¼¹´´4++ËØØØÅňE"QFFÆõë×¾¾¾««kpp0N—J†N§[ZZ~õÕWCè׈2ry644„„„\»víÍ]äÿ‘c(ú$%%I$’ºººsçÎ…‡‡§¥¥ikkººº¢¢¢ØlvDD‡Ãyúôijjjyyù¾}ûÔÔÔMMM?ƽP(¬¬¬TîСCÍÍÍ;vìÐ×ׯ­­=tèP(ŒŽŽ&&CgeeÅÇÇŸ8q‚¨ïc%ÏÑdˆó/‹ÅÒÕÕÕÓÓ³µµÝ¹s§‘‘ÑÙ³gá®'N°X¬ýû÷ðÁ&&&ŽŽŽ<¯©©éòå˰‚]aa!¸xöìÙÊÃݼysõêÕ–––,‹ËåFGGߺuK*]]]“ÈÈÈúúúW¯^ ­_#ÊXÉs4†õ…BY¼xqII ܼråJhh(ê L&sÉ’%W®\›ÎÎÎ………øs‡EEE ,PBSS377·½½nr¹Üììl¹5©T*FÓÒÒ‚›}}}<ÏÏÏÏÏÏÇãõõõŠ‹‹ÃÂÂ<<<–-[–ŸŸkvtt|ÿý÷>>>GíééihhÀ'M¼ AAAwîÜIOO òõõMLLìèèPtäòÄ}~óÍ7GŽåÞÞ^oooø¡È:'ö¢ªªJ*·òòòàà`ooï“'Oâ]¾uëÖòåËýüü>ÜÛÛ+רüC”Ë𜘘˜466:::ì²ÆÂ¢¶¶–gΜ)‰?~ èì쬨¨˜7ožrÿ111111ÙÙÙÍÍÍĽb±X$‰D¢/^¤¦¦º»»«««Ã]999|>ÿرcûöí«¨¨HOO‹Åqqq¾¾¾?þøãòåËwïÞ-‹liiáñx»ví*++;}ú´’|Μ9³eË–ÊÊÊëׯ'&&8p ®®.++KQÐÑÉÓÕÕµ¨¨~±ËÊÊ †½½½’|`/,--¥zwûöíäääM›6¥¤¤àßùÜÜÜÄÄÄï¾ûîöíÛ§NRb£tþK¡P$Éß!ÕÔœœœàüÇØØØŒ?^yó÷ß?;;ûàÁƒ666¿ýöÛ²eË ð½«V­òòòòòò ÈÏÏ Âw]¾|yݺuæææ¥¥¥½½½†‰D":îééyñâEƒÑ××wõêÕµk×™››¯\¹­ånkk[PPðù矛››O™2eóæÍ3fÌPttòüðÃÛÛÛ>|(((ðôô„ç|Šò½`2™R½ ÒÔÔœ?>@(BcTT”‰‰‰µµõªU«ð rƒbˆçRÔ××s8€¶¶¶®®nMM±BMM••¾éìì¼gÏž°°0U&_±X\\\ìììlmmmmm½|ùòŒŒ çêê +àçkÝÝÝiii»wïþá‡஦¦&Ü•––Ö¸qã8“““žžneeµlÙ2‡¶¶6‰D»066nii!æ õ+SSS@ss³‰‰ ´˜™™™™™) ::y2ŒyóæMž<¹¸¸899Yy>°²L˜0 ub„÷ÔÔÔ*×8(†A†]¸paîܹpÓÍÍíĉ¶¶¶øP,Ÿ>}šxlllºººªªªÊËË7lØ0 ÿ„„SSS8­S({{û‹/ÊÖd0žžž?ÿü3†aððéèè8p~êpmÐÝÝ-‘Hâââúúú ¶nÝš››Ëf³ÕÔÔø|>ÔPcc£žžôÙßßO¥R[[[‰h4`„ MMMS¦LÔÔÔ”””„„„È : yB\]]>laaaee…‹CQ>°²È=%¯¯¯777ÔÕÕA*2Š!ο/_¾­­­•••Û¶mãóùŸ~ú)ܵbÅŠ¶¶¶õë×—––Ö××߸q#**JOOÏÇÇçÿQÕÔœœœöïßommM¼pHtŽ£¡¡ááá_RRÂçóïß¿ôèQ|ð“BKK«««K$ÁMGGÇäääæææ'OžlÚ´)77—B¡ÄÄÄ\¿~½³³³··—F£1 æâârèÐ!>Ÿ/¹¹¹ÁËIùùù]]]çÏŸ—åáá‘’’òôéÓ§OŸªkjj?~<==Çã566¹ººâkmˆ‹‹K^^žŸŸŸçk×®mÚ´)33399¹¡¡Íf»¸¸|öÙgrÓ×××ÔÔloo×ÔÔ„……%%%­^½šB¡899EDDÐéô¯¿þúرcÏŸ?çp8±±±ð:öºuë’’’"##ÕÕÕ?úè#x};,,ìÈ‘#YYY_~ùå7¤b‹Å☘±X¶`Á‚‚‚âªFÖ¹Ôp¾wïÞÙ³g㟠\ÜÜÜ6lØ ‹áÅTʨ¤¹"(ĕ͙3g‚‚‚†ëJ:âí@îý•¡Ýt‰×××?sæ nA÷d‚ô‡---oooUŒCé1,kýúõª‡Ò‚Lþd‚ô‡ ¤?™ ý!ÈéA&rî¿mܸqôó@¼ meeÕÙÙ èí퉉144400ˆ‰‰éíí…3]AA©©iaaall¬©©©¾¾~hh(þå–m¸xñ"—Ëe2™æææ™™™€¾¾>¹Í[[[µ´´444ˆ³*^ž;w.`âĉ@fÚ•j Óéiii‰‰‰éééêêꊒÆ®ÉB¡P"##/]º¤È±_*úÌÏÏ·°°`³Ù‰‰‰øÑÈËË›6mšAtttww·\£ª²UDªâøºbÅŠ¦¦&CCÃÛ·oCã®]»üýýkkkïÞ½;gΜ-[¶À¯éÇ|õêÕ¸¸¸3fܽ{·ªªÊÁÁaãÆŠZutt0 ÇçóSSSi4ZGGÇž={ä6OKKËÌÌÄ^ðò€F¼9Ζ-[ Dãˆv “7>•••±X,åÑá^E>‰-ZÔÞÞ~îÜ9@kk+ôàááQ]]]RRbaa'ר\ ªé¿¶¶6.—KÌoúôé|>–¯\¹2{ölØŸ»wïb6mÚ´óçÏý<À˲­ººúÞ½{ÛÚÚ$‰P(ìïïWÔÜßß_ `CÕÞ"‘H|||¨TjHH±¿#Ú5l ý)Š-Š|bÖßßcóÇ0,;;ÛÂÂB®S 9úÃ0lÇŽT*µ¹¹·0™Lâp«££ûWQL&³ªªJÖl+ ÃnÞ¼ ¥¥åèèøË/¿(j. /^ ËÄ>¥‚ ¤?bsHff¦ŽŽNQQ“ÉÌÍÍ®aòôwêÔ);;;åÑñÊr}TWWcA"‘+++™L¦\£¬7"$¬ÿuuuIIInnn6lÀzzzøAlkk+))v¸Šâp8Ïž=ƒ–;wî|ûí·ŠZ‰D"‰DröìY@æíí-ä6ÿõ×_===‰‰õõõTé…TóÆÆÆèèè={ö899ÅÆÆFDD¼xñbº&›†aG]¸p¡òè}Ê®}Pp€êêj‡£Ä8 ¨"RUÆ¿þþ~77·;w ‚‰'^¸pÚ£££ž={VYYéàà°fÍâ×466–ËåVUUUUUÍ›7oõêÕŠZ‰D"&“™““ÓÒÒrüøq&“)‰ä6 ihh€~à³ÔÔÔW¯^ùùùÂP' 1yã±¹D"Y´hÑ‚ àäÕÓÓÃår—.]: ]Ã0 ®¿úøø˜˜˜¼|ùR•èŠ|&''ãa|„ñÏÅÅåÑ£G¥¥¥–––Û·o—kT.æßÇÏš5 N=?ýô“‘‘\Bµ··¯\¹’ÍfO˜0!<<¼³³“x˜ÄbñÆ9ŽŽŽÎÒ¥KÛÚÚ ]¶†aÙÙÙS§N¥ÓéÓ§OÏË˓ۼ§§ÇËË‹˜XBB‹Åš:uj^^ŒÛÛÛ;þ|mmmLFRÍ322 ÆÃ‡qKii©ššZNNÎHw {ý “&M &.l”GWâSJsÄ2ô’’bff¦§§·víZ‘H$ר\ ªëO¥÷ÿ=þüÁƒèùÓ·žššKKK)IÈ5*>:cÆŒk¾µ÷?c¤?Äÿ?~|DD„*ÆáÍ¿ˆáÍ¿ˆ±Ò‚Lþd‚ô‡ ¤?™ âý#—âmB,K=¡ˆAè½å¡:*êýÿ‚LÐúA&H2AúC Ò‚LþŸÛ~ö_IEND®B`‚XQilla-2.3.0/docs/dom3-api/classXQillaExpression.html0000644000151400015140000001304111653571066017363 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

XQillaExpression Class Reference

The XQillaExpression interface extends the DOMXPathExpression interface, providing the ability to release the object. More...

#include <XQillaExpression.hpp>

Inheritance diagram for XQillaExpression:

List of all members.

Public Member Functions

Non-standard Extension
virtual void release ()=0
 Called to indicate that this object (and its associated children) is no longer in use and that the implementation may relinquish any resources associated with it and its associated children.

Detailed Description

The XQillaExpression interface extends the DOMXPathExpression interface, providing the ability to release the object.

The evaluate method will always return an object of type XPath2Result

Since:
DOM Level 3

Member Function Documentation

virtual void XQillaExpression::release ( ) [pure virtual]

Called to indicate that this object (and its associated children) is no longer in use and that the implementation may relinquish any resources associated with it and its associated children.

Access to a released object will lead to unexpected result.

Implements xercesc::DOMXPathExpression.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/DOMXPathExpression_8hpp__incl.png0000644000151400015140000001637711653571065020470 00000000000000‰PNG  IHDRÃu½UbKGDÿÿÿ ½§“´IDATxœíÝy@×ÖðÂn@vDjPŠ >µOA¨Zµî‚‚Pke{Õ÷ZA‘>„¶XlE jU´àRú‰ X7”"K] ˆ­AI€IæûcúæÉ@BàüþnæÞ93¹993Ɇa€Ô”¨<Ȥ /Ȥ /Ȥ /†²Ž £££•Œœ#""”è5ȤJÐÐÐpùòee—û÷ï(; ÐI•&22RÙ!€ÁåóÏ?Wv à:)È 2)È 2)È 2)È 2)È >»¼\]]‰eSSÓÉ“'éëë ==ýîÝ»l6ÛÊÊÊÉÉÉÓÓ“N§ã}GuüøqF¬¿}ûö;wîddd´··FDDßĺqãFTTTrr²µµ5y»ÚÚÚ[¶l177ïaÌ£FênGùùù=°ßÕÕÕùøøÈ³uÊ}ÃdÒA-!!ÁÜÜ\,?{öìÌ™3þþþ©©©ººº¡ööö   ƒ€€ ‹'Ož;v¬¸¸866VMM !ôüùóÇÛØØàCñx¼²²2|ÙÖÖÖÇÇçàÁƒÓ§O×ÕÕmkk‹÷óó³¶¶&oÃ0‡“’’²k×®„„ÊÙlv```NNNOv¤_މœtuu½¼¼”jàì~PÓ××9r¤‘‘ÑÔ©S¿üòKssóÓ§Oã}÷Ýwúúúqqq3f̰´´trrJJJzþüynn.¾‚££cAA1ÔÍ›7§L™Bü¹~ýz‹•œœŒ:r䈡¡¡§§§Äv mllBBBîß¿ßÞÞN¡X,ær¹=ܲ^‹~Âb±üýý•µu0TA&U4mùòå·o߯ÿÌËËóõõÅËOœ¦¦¦§§g^^þ§‹‹KAAñû³………sçÎ%Vf0aaa¹¹¹™™™¹¹¹aaa õ ¾ ‘H„ºuëÖ¦M›-Zäææöý÷ß#„‚ƒƒB«W¯&Ö/..ööö^¶lYff¦ì=ºy󦻻;ÇC]¹reýúõ ®®ÎÕÕõÆëׯ_µjÕÁƒ»ººðÆ’’ŠŠ ¡P˜””´jÕªU«V%%% …B|´7¾÷Þ{ëÖ­»té± ‰F|(üQ>Ÿ¿gÏž+V¬Y³æðáÃ!WW×Ë—/ûùù-_¾ü‡~ Œ\beÄ,Ñ(û€Õ™T•XZZÖ××#„ø|~ss3qæN°±±yúô)¾úè#|Á`ØÛÛã¿©Ád2;fbb¢¡¡abb‚jkk“ŽÁÃÃC[[{Μ9!‡o”€æ³yóæ?ü0$$dÅŠãÇ' ²´´Ä;¦¤¤ÌŸ?!äïï_ÉÍÍÍ9r¤‰‰I@@@RR’§§'†aL&sÑ¢E...|>_º‘Ø„P(¼zõê±cÇð ¸6lHNNöóóC­\¹RWWwáÂ…û÷ïçr¹zzz²÷QFÌøø`èLªJjkk-,,Bººº#Gެ®®vtt$¯P]]mggGüéââ³qãF‰S{ÜåË—KKKãããCCCçÎK®X)?›f0µµµû÷ïïèè°µµí.HCCC„ù;Ý ˆïÈÒ¥K¿ýöÛØØXr;ž}BVVVÄ2¾ðüùs777be==½øøø¬¬¬´´4;;»uëÖÍœ9“²‘èÅápÄb1~<B£F"6ddd„ïo¯ö‘2fÊF0ôÀÙ½ÊÀ0ìܹs³fÍÂÿœ?þwß}GT !@pâĉ3f-“&Mjoo¯¨¨(..Æ (ÂË—/<èàààççûÆŽ^½zåééyäÈ‘ÿûßÝ­&‘_d{ñâÅ?þèèèˆ_% ÔÖÖâ Ïž=ÃÓ"¥6‹•‘‘‘ŸŸŸŸŸþüùC‡½zõJ,GEE?þý÷ßçñx”Ä& ÔÔÔØl6þg}}=ž@{² ”+PÆLÙ†ȤƒZKKKsssSSSYYYDD›Í^»v-þŸŸ‡ÃùôÓOïܹS[[ûË/¿­X±‚莟àÇÅÅM˜0üET Ãbcc­­­—,Y‚Z»v­Á7ß|#;˜®®.¡PÈ`0:;;ÓÒÒBÄúøuÏ7îƾ}ûV¯^ñ믿޼y“X?!!¡®®îÑ£G))) ,ÍÉÉéèÑ£ 555Û¶mËÎΦÑh¡¡¡×®]kkkëêêb0”Ä ÃÕÕõ›o¾a³ÙøwÈðóqJ/^¤¼”AF³ìCœÝjü1¾`bbâààpäȼE[[ûÈ‘#iiiIIIõõõæææóæÍ[³fºº:yWWלœœU«V‘/]ºT\\œššŠ×V #44488ØÙÙÙÙÙ¹»`tuuƒ‚‚¢££µ´´Ö­[7oÞ¼mÛ¶eeeMš4ÉÍÍí§Ÿ~êÉŽòóó³³³[ZZ¼¼¼ Æ'Ÿ|7iÒ$üÑùóçoݺU Ì›7ÏÛÛ[â¼xãÆ ›6m¢ÑhÎÎÎL&sÇŽÉÉÉ/^¼°°°ˆŒŒd2™!ÊF¿þõ¯„„„ÀÀ@uuõwß}×ÛÛ»»ø÷ïß?eÊâàS¢ŒY¢QFw Òhð_šïÔ©SʺÉg“ÿ$Å£Œ¹;òù矟:uª¿Îî@^IÁࢣ£³lÙ2eGÑ;”1«âŽ€>ƒL }}ýO?ýTÙQôe̪¸# Ï “€¼ “€¼ “€¼ “€¼ “€¼ “€¼ànQ¥ Qvý@$bÒh"55‘RcТÓßpã¿J¨©©‘qï?Ì “*Áèѣ׬Y£ì(úAc£öãÇ,3³¶1cÞüHŸÏ,+363ãÃ¥ÓUûÖgkkkâ·¾€jûîA_ÔÕqBBNþòKePл[·.ÔÔTsŸsþ|éŽYêêô}ûÖ.X`¯ÄHÀ°™ô†a™™·¿üòœ±±Þ^Ó§¿ýæ>¯±‘~æâŲe˦ìÛ·†ÅÒVvD`xL z¡¾¾%$ääµk¿†RT§@Y “‚!JQ“ññžƒ¤•ÖÔÄß±# ŠS `IÁ›á¥è/¿TºÂRT§@Á “YT¥•Å)P$Ȥ [*WŠJƒâ(dR@AuKQiPœ€L $ RT§`@A&ÿ3”JQiMMüðð¬ ÊÜݧïÚ妧§©ìˆÀЙüeH–¢ÒΟ/ ?£¥¥¾¿‡³ó8e‡†Ȥà¯R4:úœ±ñˆ¼Ç(;¢…§/–{{ÏŠˆXÅ)dÒán˜”¢Ò 8ý2éð5ÜJQiäâtçκºÊލ*ȤÃÔ°-E¥Åil¬§““²Ã* 2é°C”¢&&#âã‡c)* ŠS 'Ȥà ”¢2@q ú 2ép¥hO45ñ?ûìÌ… ePœ‚^L:,Ô×·„†ž¼v­20Ð5$d‘†ü×Y 8½™tˆƒR´o^¾ä‡‡Cq z 2éP¥¨œ 8=™tÈÊȸõßRt£ã[ÊGUAq z2éÄfãÿm JÑ~“—wÛ¶ÓêêjPœJI‡(EHkkû®]23oCq ¤A&: U(N%ȤC”¢ Å)™TåA)ªPœ2Ȥª /EMMYqq^PŠ*§€™TUA):H@q dR¥è Å)€Lªb ´ˆâ4.ÎsÎ(N‡Ȥª„(Eã㽦MƒRtÐár;¢£ÏCq: A&U lvKhè©ÂÂß¡ü._~zŠÉ¤ÇÆz@q:L@&UPŠª(N‡Ȥƒ”¢* ŠÓá2©’uu‰ÔÕé”A):ô¤8‰Ä4MM¦øð@LªLµ?feý“ÁP#·C):Ä\¾ü`Û¶SêêÔÅé—ÄbìÓO*%6Ð/èQQQÊŽa˜ârnn ±ÕÕé³f%Ú32nmܘ*aééyxÌH²@Y[{yÍ|úôåÎÙ ­ï¼cÃdþõîøða}pðñ›7«fδ¶²2Tnœ Ï &U Ã>ü0õÊ•‡B¡ˆNW»t)dÂs(E‡<‰âT(¿÷Þþªª±c±´ò󷛚ŽPvŒ / “*Ç¡CWwíº€|CmÌã­[FDœÕÕÕŒ÷š9ÓZÙ‚ÒØÈ ;}éÒýM›œ™LõÄÄ+"‘!Ä`Ðÿö7‹óçÿÕÝus0˜A&U‚¢¢w÷‘èGžNW›|8ÿçŸ+”è3Ȥ %‰ýý¿mmm‹¥Oh›7gvu‰”P¸o¾¹\SÓ(Š¥Ú¼ùû§O_*>$ Ȥ •˜xµ¨è1eº‰Ä55^V|T@Á**jø?üò¨ Ã^½êüè£txOU-I§¸øILL.U5ú þþ:¯ªªA‘Q‰ÄÛ·Ÿ’1 „BñÇõ{÷þ¤È¨€œàû¤ ÒÜܶzuB{{§ÄRuu:ƒA‰ÄúúÚ Øûùͱ³31BKIa‚÷êU—‘‘ž‘‘'àpÚÔÔhššL¡ðµ ðââ?,ÇŽ5QVœ Wà³{E‰Äîþú'þ‚¡ÓÕðFCC]—q3gŽur²{ë-øVö°Ã翺wïÏk×*¯^}øè!Ä`лº„ø£ÚÚW®„ÂÄP ¯eÒŽŽ‡£Äh†ª´´Û‰‰¿Ðh4 ØLÆ”)£fÌxkút« Lñ¬ªº´´´ äf®®®¥¸øiqñ³¢¢?š›ÛñÙ2a‚iZšÜç6IÌü×2é‹/Åýˆ...Š g03cûú.ÓÖ‚_½ÿ~ ³Ž’XŒ=z͵5…Ÿé™wv¸ñãÍ•PUjj´¿ýÍBÙQ€7:§™ ,I@^I@^I@^I@^*ŸIŸ>}ºaÆ7®V]]ÿ‚±@î~ïÞ=ƒqúôi¢=''‡ÉdVT(â÷Íh$cÆŒñõõmll”±>†a>>>ººº=¿ººº?"¡œuSKžaß8%ÚÚÚBCC'Ož¬§§÷÷¿ÿý«¯¾ ÿº3ŠF£ÙÚÚJÜ»¸xñb|Èžêäí²X¬¥K—>yò¤‡ÁSN3ò€ZZZ³gÏ.--íåQ¡Ö“£­È™¯ò™4;;{åÊ•”ÕÔÔáËúúúÛ·oï®ûÔ©SÃÃ÷lÙÒÒÒ‚jmm ŽŒŒœ4iÒÀENvóæM6›][[›––Æår§M›†GB©¾¾>33¾Í®D2f] +cJðx¼éÓ§ß½{wïÞ½¿þúëŽ;233,X ýuóþüQVVF Ëáp®]»†/¿qªãÛ­¯¯/,,‹Å>>>ÝEK~}É€Èf³ËËËmmm=<<ú÷õ†1à0’†††üü|L¥,Y²¤½½ò¡ªª*‰”n$º¿zõjâĉþþþ†:::vvvXÔ¯AUUUŠÅbggç;wv·>å~õ|ü~ôÛo¿ýöÛor2df]oŸÃÊž!!!NNNB¡XÏç3æèÑ£xßE‹…‡‡¦§§/^¼˜SÆT—Ønmm-B¨µµ•2Z‰ý¥œf ¡†††ÞjÄÖevEÎü^פçÎ5j~£ô‰'ìììÚÚÚB]]]¡¡¡¦¦¦&&&¡¡¡]]]xù}åÊ++«‚‚‚ÈÈH+++ccc___âÝUºBèüùóšššÖÖÖÇG …BÊîMMM:::ZZZäRŸXž5kBÈÌÌ us.@tG1™ÌôôôÔÔÔÝ»w§¥¥¥§§«««wd?îš4xñâÅîÆ!ïWǼté’ÁîÝ»‰£‘““3nÜ8“-[¶¼zõв±§Ób€ ÎY'‰bbbìììôôôfÏž]TT„¯ÐÒÒòÁYZZ†„„„FKMM0a‚±±ñž={Ž?þöÛo³X¬ˆˆ‰a¥w_bJdddìܹ“Nÿß]O:::¡¡¡øŸkÖ¬9uêößÒ/++ËÝÝXYÆT—€o¿npáÂ…©S§jkk›››ïÙ³½þúÂIL3iêêêL&“Åbõꉠ|u¤Ã SÜÌ'§ÕV¾¾¾~~~ÏŸ?755-**Â÷îÝëææöôéÓòòòiÓ¦………áï‹/¾zõjTT”½½}yyyEEÅÌ™3CBBºëÅçó544’’’Ølö±cÇ ŸÏ‰‰¡ìžššzüøqìõ÷%Ê7+ÊF¢;!,, !MnÐ]èÞ9ïÞ½«¯¯/{ëø£ÝI†Zºt)—Ë=sæ B¨©© á½÷Þ«¬¬¼}û¶MTTe£ì™ Èštκ¸¸8“³gÏÖ××_¼xÑÂÂ^¼½½çÍ›÷øñãòòò‰'â‡!äååÅårSRRBk×®år¹ÉÉÉø3‚½>eL üí¤±±QâøÜ¸qÃÔÔïûèÑ#33³{÷îaÖÒÒ¢­­ÝÔÔ$1&åTG•––òx<.—[]]½zõêéÓ§cÆår™Læ‡~X[[‹çë/^HפÓŒ< Ç««« Þ°aÑ¥‡O„ì²ìšTa3¿/™”ÃáXZZ:88·7~üx6›/çååM™2¯¼¼ðqãÆ={ôÁƒIJt¯ææfuuõýû÷s8±XÌãñD"QwÝÝÜÜš››±¾fR¢;N,¯X±‚N§ûøø÷w@w {S&ínëxKwc’!„ 0 ï£UUU‘ãÇ0ìäÉ“666”˜LŠÌ¤ƒpÖÙÙÙ¥§§Á|ûí·¡ÎÎN:N–³gÏâ‡!TRR‚aXgg§Ä2þì“gc2é­[·ŒŒŒˆ¾ÿüç?wìØaXFFÆ‚ $Æìnª“k,uuõ¹sç>|ÈçóE"Qaa!y‘ûJL3Lêz¨®®îƒd<}”O„<™Ta3¿×I¿øâ :N¾Þ¡©©I>d, ¿£©©YQQ!=Žt/ î_¿îî£ãääôÓO?u×Çã-_¾_&ÍÊÊÊždRrwÜñãÇY,Vaa¡¦¦fvv¶bv £zÙ|ÿý÷ŽŽŽ²·N¬L9&B¨²²’¼-|„ŽŽ¼±¬¬LSS“²Qz42_'l³NKK«´´”xèÞ½{¡gÏž‘cyy9~Éϲô²Äl”=%ÌÌÌòòò$;|øðÂ… ‰¾666b±xåÊ•ÉÉÉcv7Õ¥·KÈÉÉ™3gΔ)SðoPfR‰i&1`[[ÛÖ­[gÍšÕÛ'Bö«[v&UØÌïËg÷Ïž=KHH˜?þÖ­[‰F###âq8œÛ·oãíø% ‹?þøo)--ݵkWw½:::ÄbñéÓ§›››7nܸlÙ²ææfÊî?ÿüó¢E‹Èátêêêz²Ýëëë·lÙãììðòåKìšt`†>|xÉ’%²·ŽëᘔßÁ'B¨²²?3í®q0„³n̘1äÈñß255¥Óé555xããÇGõƽ“žÌdSÂÛÛû‹/¾ >©GµµµíÝ»—<œ9sx<Þõë×óòò$¾f cªw§££cíÚµ¡¡¡%%%‡ên5Ù_KÒÖÖþàƒîß¿ý·VíÕk¤W¯nÙ! ÈÌ'§ÕžT"‘hþüù_~ùess³™™Ù¹sçðö-[¶¸»»ã_¿˜9sæÇL~¯ˆŒŒtpp¨¨¨¨¨¨˜={ö¦M›ºëÕÑÑ¡©©™••ÕØØxäÈMMÍŽŽÊî>>>uuuø8ø·íŽ;ÖÚÚºjÕ*Dz³âñxÕ;¹»X,^ºtéܹsñSãÎÎN///ì>«ˆ¯¼¬X±ÂÒÒ²¥¥¥'[ïnÌ£G# © ÁÕÕµªªêÎ;¶¶¶;wî¤l”=V“ÎY÷õ×_›˜˜dgg³ÙìÜÜ\kkk|ÓëÖ­›7o^MMMEE…½½=~¥Ÿò2yXìMS¢µµuܸqsçÎÍÍÍ­¬¬<{ö¬½½ýìÙ³yðààà &¸ºº’7${ª£njR‡C£ÑrssÛÚÚ¶mÛ†*))!¿¾ºÛA‰ÿüóO„—ËíÕ!ãÕ½þ2Ç”7ó{I<8yòdüìéÇ477Ç/îp¹Ü 6úûû·µµ‘ç´@  ±°°`±X^^^o—î…aØÉ“'ÇŽËd2ÇŸ““CÙ½³³óý÷ß'­¯¯?vìØœœ|»]]]sæÌÑÕÕ•>îÝÓÓÓ544~ÿýw¢åÎ;jjjYYY½kØë×’FíííM>•½ucÊxÝâ#¤¤¤¼õÖ[FFF›7oîèè l”=–Iç¬ …111666:::ï¼ó^cÖÜܼ~ýzCCCssóO>ù„x¿ìîyðàÄd–=%0 ãóù[·n8q¢¶¶¶½½}tt4ñ­,bð‚‚„Pbb"¹]öTï.“b7räÈÑ£G:tÈËËËÄÄ„üúên%‰D#FŒxòäI¯žŒêÕM<Ñ= ø™Oñ›ùð›»C^uuµôm0”²áç³ýò›ù0ë€ ÜÌWù{œ@é “G#FŒèI#CÉÀÍ|8»}g÷`x‚³{èI@^I@^I@^I@^ é¦úúzÅÇT‘@ øŠ>ƒYTˆô̧Ȥø¯­Ðý•IaÖÕ"1ói½ºG €4¸N ò‚L ò‚L ò‚L òúŒoifÊ;IEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMLSOutput_8hpp_source.html0000644000151400015140000002452511653571065017511 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMLSOutput.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  * 
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  * 
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMLSOutput.hpp 527149 2007-04-10 14:56:39Z amassari $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMLSOUTPUT_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMLSOUTPUT_HPP
00024 
00025 #include <xercesc/util/XercesDefs.hpp>
00026 
00027 XERCES_CPP_NAMESPACE_BEGIN
00028 
00029 
00030 class XMLFormatTarget;
00031 
00032 
00039 class CDOM_EXPORT DOMLSOutput
00040 {
00041 protected:
00042     // -----------------------------------------------------------------------
00043     //  Hidden constructors
00044     // -----------------------------------------------------------------------
00047     DOMLSOutput() {};
00049 
00050 private:
00051     // -----------------------------------------------------------------------
00052     // Unimplemented constructors and operators
00053     // -----------------------------------------------------------------------
00056     DOMLSOutput(const DOMLSOutput &);
00057     DOMLSOutput & operator = (const DOMLSOutput &);
00059 
00060 public:
00061     // -----------------------------------------------------------------------
00062     //  All constructors are hidden, just the destructor is available
00063     // -----------------------------------------------------------------------
00070     virtual ~DOMLSOutput() {};
00072 
00073     // -----------------------------------------------------------------------
00074     //  Virtual DOMLSOutput interface
00075     // -----------------------------------------------------------------------
00078     // -----------------------------------------------------------------------
00079     //  Getter methods
00080     // -----------------------------------------------------------------------
00086     virtual XMLFormatTarget* getByteStream() const = 0;
00087 
00098     virtual const XMLCh* getEncoding() const = 0;
00099 
00109     virtual const XMLCh* getSystemId() const = 0;
00110 
00111     // -----------------------------------------------------------------------
00112     //  Setter methods
00113     // -----------------------------------------------------------------------
00119     virtual void setByteStream(XMLFormatTarget* stream) = 0;
00120 
00133     virtual void setEncoding(const XMLCh* const encodingStr) = 0;
00134 
00148     virtual void setSystemId(const XMLCh* const systemId) = 0;
00150 
00151     // -----------------------------------------------------------------------
00152     //  Non-standard Extension
00153     // -----------------------------------------------------------------------
00162     virtual void              release() = 0;
00164 };
00165 
00166 
00167 XERCES_CPP_NAMESPACE_END
00168 
00169 #endif
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMNotation__inherit__graph.md50000644000151400015140000000004011653571065023175 000000000000006601191b651b5d32824f09b06f3320eeXQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMEntity-members.html0000644000151400015140000005151011653571065021374 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMEntity Member List

This is the complete list of members for xercesc::DOMEntity, including all inherited members.
appendChild(DOMNode *newChild)=0xercesc::DOMNode [pure virtual]
ATTRIBUTE_NODE enum valuexercesc::DOMNode
CDATA_SECTION_NODE enum valuexercesc::DOMNode
cloneNode(bool deep) const =0xercesc::DOMNode [pure virtual]
COMMENT_NODE enum valuexercesc::DOMNode
compareDocumentPosition(const DOMNode *other) const =0xercesc::DOMNode [pure virtual]
DOCUMENT_FRAGMENT_NODE enum valuexercesc::DOMNode
DOCUMENT_NODE enum valuexercesc::DOMNode
DOCUMENT_POSITION_CONTAINED_BY enum valuexercesc::DOMNode
DOCUMENT_POSITION_CONTAINS enum valuexercesc::DOMNode
DOCUMENT_POSITION_DISCONNECTED enum valuexercesc::DOMNode
DOCUMENT_POSITION_FOLLOWING enum valuexercesc::DOMNode
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC enum valuexercesc::DOMNode
DOCUMENT_POSITION_PRECEDING enum valuexercesc::DOMNode
DOCUMENT_TYPE_NODE enum valuexercesc::DOMNode
DocumentPosition enum namexercesc::DOMNode
DOMEntity()xercesc::DOMEntity [inline, protected]
DOMEntity(const DOMEntity &other)xercesc::DOMEntity [inline, protected]
DOMNode()xercesc::DOMNode [inline, protected]
DOMNode(const DOMNode &)xercesc::DOMNode [inline, protected]
ELEMENT_NODE enum valuexercesc::DOMNode
ENTITY_NODE enum valuexercesc::DOMNode
ENTITY_REFERENCE_NODE enum valuexercesc::DOMNode
getAttributes() const =0xercesc::DOMNode [pure virtual]
getBaseURI() const =0xercesc::DOMNode [pure virtual]
getChildNodes() const =0xercesc::DOMNode [pure virtual]
getFeature(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNode [pure virtual]
getFirstChild() const =0xercesc::DOMNode [pure virtual]
getInputEncoding() const =0xercesc::DOMEntity [pure virtual]
getLastChild() const =0xercesc::DOMNode [pure virtual]
getLocalName() const =0xercesc::DOMNode [pure virtual]
getNamespaceURI() const =0xercesc::DOMNode [pure virtual]
getNextSibling() const =0xercesc::DOMNode [pure virtual]
getNodeName() const =0xercesc::DOMNode [pure virtual]
getNodeType() const =0xercesc::DOMNode [pure virtual]
getNodeValue() const =0xercesc::DOMNode [pure virtual]
getNotationName() const =0xercesc::DOMEntity [pure virtual]
getOwnerDocument() const =0xercesc::DOMNode [pure virtual]
getParentNode() const =0xercesc::DOMNode [pure virtual]
getPrefix() const =0xercesc::DOMNode [pure virtual]
getPreviousSibling() const =0xercesc::DOMNode [pure virtual]
getPublicId() const =0xercesc::DOMEntity [pure virtual]
getSystemId() const =0xercesc::DOMEntity [pure virtual]
getTextContent() const =0xercesc::DOMNode [pure virtual]
getUserData(const XMLCh *key) const =0xercesc::DOMNode [pure virtual]
getXmlEncoding() const =0xercesc::DOMEntity [pure virtual]
getXmlVersion() const =0xercesc::DOMEntity [pure virtual]
hasAttributes() const =0xercesc::DOMNode [pure virtual]
hasChildNodes() const =0xercesc::DOMNode [pure virtual]
insertBefore(DOMNode *newChild, DOMNode *refChild)=0xercesc::DOMNode [pure virtual]
isDefaultNamespace(const XMLCh *namespaceURI) const =0xercesc::DOMNode [pure virtual]
isEqualNode(const DOMNode *arg) const =0xercesc::DOMNode [pure virtual]
isSameNode(const DOMNode *other) const =0xercesc::DOMNode [pure virtual]
isSupported(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNode [pure virtual]
lookupNamespaceURI(const XMLCh *prefix) const =0xercesc::DOMNode [pure virtual]
lookupPrefix(const XMLCh *namespaceURI) const =0xercesc::DOMNode [pure virtual]
NodeType enum namexercesc::DOMNode
normalize()=0xercesc::DOMNode [pure virtual]
NOTATION_NODE enum valuexercesc::DOMNode
PROCESSING_INSTRUCTION_NODE enum valuexercesc::DOMNode
release()=0xercesc::DOMNode [pure virtual]
removeChild(DOMNode *oldChild)=0xercesc::DOMNode [pure virtual]
replaceChild(DOMNode *newChild, DOMNode *oldChild)=0xercesc::DOMNode [pure virtual]
setNodeValue(const XMLCh *nodeValue)=0xercesc::DOMNode [pure virtual]
setPrefix(const XMLCh *prefix)=0xercesc::DOMNode [pure virtual]
setTextContent(const XMLCh *textContent)=0xercesc::DOMNode [pure virtual]
setUserData(const XMLCh *key, void *data, DOMUserDataHandler *handler)=0xercesc::DOMNode [pure virtual]
TEXT_NODE enum valuexercesc::DOMNode
~DOMEntity()xercesc::DOMEntity [inline, virtual]
~DOMNode()xercesc::DOMNode [inline, virtual]
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMError.html0000644000151400015140000004355711653571065017575 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMError Class Reference

DOMError is an interface that describes an error. More...

#include <DOMError.hpp>

List of all members.

Public Types

Public constants
enum  ErrorSeverity { DOM_SEVERITY_WARNING = 1, DOM_SEVERITY_ERROR = 2, DOM_SEVERITY_FATAL_ERROR = 3 }
 

The severity of the error described by the DOMError.

More...

Public Member Functions

Destructor
virtual ~DOMError ()
 Destructor.
Functions introduced in DOM Level 3
virtual ErrorSeverity getSeverity () const =0
 Get the severity of the error.
virtual const XMLCh * getMessage () const =0
 Get the message describing the error that occured.
virtual DOMLocatorgetLocation () const =0
 Get the location of the error.
virtual void * getRelatedException () const =0
 The related platform dependent exception if any.
virtual const XMLCh * getType () const =0
 A XMLCh* indicating which related data is expected in relatedData.
virtual void * getRelatedData () const =0
 The related DOMError::getType dependent data if any.

Protected Member Functions

Hidden constructors
 DOMError ()

Detailed Description

DOMError is an interface that describes an error.

See also:
DOMErrorHandler::handleError
Since:
DOM Level 3

Member Enumeration Documentation

The severity of the error described by the DOMError.

DOM_SEVERITY_ERROR: The severity of the error described by the DOMError is error. A DOM_SEVERITY_ERROR may not cause the processing to stop if the error can be recovered, unless DOMErrorHandler::handleError() returns false.

DOM_SEVERITY_FATAL_ERROR The severity of the error described by the DOMError is fatal error. A DOM_SEVERITY_FATAL_ERROR will cause the normal processing to stop. The return value of DOMErrorHandler::handleError() is ignored unless the implementation chooses to continue, in which case the behavior becomes undefined.

DOM_SEVERITY_WARNING The severity of the error described by the DOMError is warning. A DOM_SEVERITY_WARNING will not cause the processing to stop, unless DOMErrorHandler::handleError() returns false.

Since:
DOM Level 3
Enumerator:
DOM_SEVERITY_WARNING 
DOM_SEVERITY_ERROR 
DOM_SEVERITY_FATAL_ERROR 

Constructor & Destructor Documentation

xercesc::DOMError::DOMError ( ) [inline, protected]
virtual xercesc::DOMError::~DOMError ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual DOMLocator* xercesc::DOMError::getLocation ( ) const [pure virtual]

Get the location of the error.

Since:
DOM Level 3
virtual const XMLCh* xercesc::DOMError::getMessage ( ) const [pure virtual]

Get the message describing the error that occured.

Since:
DOM Level 3
virtual void* xercesc::DOMError::getRelatedData ( ) const [pure virtual]

The related DOMError::getType dependent data if any.

Since:
DOM Level 3
virtual void* xercesc::DOMError::getRelatedException ( ) const [pure virtual]

The related platform dependent exception if any.

Since:
DOM Level 3
virtual ErrorSeverity xercesc::DOMError::getSeverity ( ) const [pure virtual]

Get the severity of the error.

See also:
setSeverity
Since:
DOM Level 3
virtual const XMLCh* xercesc::DOMError::getType ( ) const [pure virtual]

A XMLCh* indicating which related data is expected in relatedData.

Users should refer to the specification of the error in order to find its XMLCh* type and relatedData definitions if any.

Note: As an example, DOMDocument::normalizeDocument() does generate warnings when the "split-cdata-sections" parameter is in use. Therefore, the method generates a DOM_SEVERITY_WARNING with type "cdata-sections-splitted" and the first DOMCDATASection node in document order resulting from the split is returned by the relatedData attribute.

Since:
DOM Level 3

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMDocument.html0000644000151400015140000030747511653571066020265 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMDocument Class Reference

The DOMDocument interface represents the entire XML document. More...

#include <DOMDocument.hpp>

Inheritance diagram for xercesc::DOMDocument:

List of all members.

Public Member Functions

Destructor
virtual ~DOMDocument ()
 Destructor.
Functions introduced in DOM Level 1
virtual DOMElementcreateElement (const XMLCh *tagName)=0
 Creates an element of the type specified.
virtual DOMDocumentFragmentcreateDocumentFragment ()=0
 Creates an empty DOMDocumentFragment object.
virtual DOMTextcreateTextNode (const XMLCh *data)=0
 Creates a DOMText node given the specified string.
virtual DOMCommentcreateComment (const XMLCh *data)=0
 Creates a DOMComment node given the specified string.
virtual DOMCDATASectioncreateCDATASection (const XMLCh *data)=0
 Creates a DOMCDATASection node whose value is the specified string.
virtual DOMProcessingInstructioncreateProcessingInstruction (const XMLCh *target, const XMLCh *data)=0
 Creates a DOMProcessingInstruction node given the specified name and data strings.
virtual DOMAttrcreateAttribute (const XMLCh *name)=0
 Creates an DOMAttr of the given name.
virtual DOMEntityReferencecreateEntityReference (const XMLCh *name)=0
 Creates an DOMEntityReference object.
virtual DOMDocumentTypegetDoctype () const =0
 The Document Type Declaration (see DOMDocumentType) associated with this document.
virtual DOMImplementationgetImplementation () const =0
 The DOMImplementation object that handles this document.
virtual DOMElementgetDocumentElement () const =0
 This is a convenience attribute that allows direct access to the child node that is the root element of the document.
virtual DOMNodeListgetElementsByTagName (const XMLCh *tagname) const =0
 Returns a DOMNodeList of all the DOMElement(s) with a given tag name in the order in which they are encountered in a preorder traversal of the DOMDocument tree.
Functions introduced in DOM Level 2.
virtual DOMNodeimportNode (const DOMNode *importedNode, bool deep)=0
 Imports a node from another document to this document.
virtual DOMElementcreateElementNS (const XMLCh *namespaceURI, const XMLCh *qualifiedName)=0
 Creates an element of the given qualified name and namespace URI.
virtual DOMAttrcreateAttributeNS (const XMLCh *namespaceURI, const XMLCh *qualifiedName)=0
 Creates an attribute of the given qualified name and namespace URI.
virtual DOMNodeListgetElementsByTagNameNS (const XMLCh *namespaceURI, const XMLCh *localName) const =0
 Returns a DOMNodeList of all the DOMElement(s) with a given local name and namespace URI in the order in which they are encountered in a preorder traversal of the DOMDocument tree.
virtual DOMElementgetElementById (const XMLCh *elementId) const =0
 Returns the DOMElement whose ID is given by elementId.
Functions introduced in DOM Level 3.
virtual const XMLCh * getInputEncoding () const =0
 An attribute specifying the encoding used for this document at the time of the parsing.
virtual const XMLCh * getXmlEncoding () const =0
 An attribute specifying, as part of the XML declaration, the encoding of this document.
virtual bool getXmlStandalone () const =0
 An attribute specifying, as part of the XML declaration, whether this document is standalone.
virtual void setXmlStandalone (bool standalone)=0
 An attribute specifying, as part of the XML declaration, whether this document is standalone.
virtual const XMLCh * getXmlVersion () const =0
 An attribute specifying, as part of the XML declaration, the version number of this document.
virtual void setXmlVersion (const XMLCh *version)=0
 An attribute specifying, as part of the XML declaration, the version number of this document.
virtual const XMLCh * getDocumentURI () const =0
 The location of the document or null if undefined.
virtual void setDocumentURI (const XMLCh *documentURI)=0
 The location of the document or null if undefined.
virtual bool getStrictErrorChecking () const =0
 An attribute specifying whether errors checking is enforced or not.
virtual void setStrictErrorChecking (bool strictErrorChecking)=0
 An attribute specifying whether errors checking is enforced or not.
virtual DOMNoderenameNode (DOMNode *n, const XMLCh *namespaceURI, const XMLCh *qualifiedName)=0
 Rename an existing node.
virtual DOMNodeadoptNode (DOMNode *source)=0
 Changes the ownerDocument of a node, its children, as well as the attached attribute nodes if there are any.
virtual void normalizeDocument ()=0
 This method acts as if the document was going through a save and load cycle, putting the document in a "normal" form.
virtual DOMConfigurationgetDOMConfig () const =0
 The configuration used when DOMDocument::normalizeDocument is invoked.
Non-standard extension
virtual DOMEntitycreateEntity (const XMLCh *name)=0
 Non-standard extension.
virtual DOMDocumentTypecreateDocumentType (const XMLCh *name)=0
 Non-standard extension.
virtual DOMDocumentTypecreateDocumentType (const XMLCh *qName, const XMLCh *, const XMLCh *)
virtual DOMNotationcreateNotation (const XMLCh *name)=0
 Non-standard extension.
virtual DOMElementcreateElementNS (const XMLCh *namespaceURI, const XMLCh *qualifiedName, const XMLFileLoc lineNum, const XMLFileLoc columnNum)=0
 Non-standard extension.

Protected Member Functions

Hidden constructors
 DOMDocument ()

Detailed Description

The DOMDocument interface represents the entire XML document.

Conceptually, it is the root of the document tree, and provides the primary access to the document's data.

Since elements, text nodes, comments, processing instructions, etc. cannot exist outside the context of a DOMDocument, the DOMDocument interface also contains the factory methods needed to create these objects. The DOMNode objects created have a ownerDocument attribute which associates them with the DOMDocument within whose context they were created.

See also the Document Object Model (DOM) Level 2 Core Specification.


Constructor & Destructor Documentation

xercesc::DOMDocument::DOMDocument ( ) [inline, protected]
virtual xercesc::DOMDocument::~DOMDocument ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual DOMNode* xercesc::DOMDocument::adoptNode ( DOMNode source) [pure virtual]

Changes the ownerDocument of a node, its children, as well as the attached attribute nodes if there are any.

If the node has a parent it is first removed from its parent child list. This effectively allows moving a subtree from one document to another. The following list describes the specifics for each type of node.

ATTRIBUTE_NODE
The ownerElement attribute is set to null and the specified flag is set to true on the adopted DOMAttr. The descendants of the source DOMAttr are recursively adopted.
DOCUMENT_FRAGMENT_NODE
The descendants of the source node are recursively adopted.
DOCUMENT_NODE
DOMDocument nodes cannot be adopted.
DOCUMENT_TYPE_NODE
DOMDocumentType nodes cannot be adopted.
ELEMENT_NODE
Specified attribute nodes of the source element are adopted, and the generated DOMAttr nodes. Default attributes are discarded, though if the document being adopted into defines default attributes for this element name, those are assigned. The descendants of the source element are recursively adopted.
ENTITY_NODE
DOMEntity nodes cannot be adopted.
ENTITY_REFERENCE_NODE
Only the DOMEntityReference node itself is adopted, the descendants are discarded, since the source and destination documents might have defined the entity differently. If the document being imported into provides a definition for this entity name, its value is assigned.
NOTATION_NODE
DOMNotation nodes cannot be adopted.
PROCESSING_INSTRUCTION_NODE, TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE
These nodes can all be adopted. No specifics.
Parameters:
sourceThe node to move into this document.
Returns:
The adopted node, or null if this operation fails, such as when the source node comes from a different implementation.
Exceptions:
DOMExceptionNOT_SUPPORTED_ERR: Raised if the source node is of type DOCUMENT, DOCUMENT_TYPE.
NO_MODIFICATION_ALLOWED_ERR: Raised when the source node is readonly.
Since:
DOM Level 3
virtual DOMAttr* xercesc::DOMDocument::createAttribute ( const XMLCh *  name) [pure virtual]

Creates an DOMAttr of the given name.

Note that the DOMAttr instance can then be set on an DOMElement using the setAttributeNode method.
To create an attribute with a qualified name and namespace URI, use the createAttributeNS method.

Parameters:
nameThe name of the attribute.
Returns:
A new DOMAttr object with the nodeName attribute set to name, and localName, prefix, and namespaceURI set to null. The value of the attribute is the empty string.
Exceptions:
DOMExceptionINVALID_CHARACTER_ERR: Raised if the specified name contains an illegal character.
Since:
DOM Level 1
virtual DOMAttr* xercesc::DOMDocument::createAttributeNS ( const XMLCh *  namespaceURI,
const XMLCh *  qualifiedName 
) [pure virtual]

Creates an attribute of the given qualified name and namespace URI.

Parameters:
namespaceURIThe namespace URI of the attribute to create.
qualifiedNameThe qualified name of the attribute to instantiate.
Returns:
A new DOMAttr object with the following attributes:
Attribute Value
DOMNode.nodeName qualifiedName
DOMNode.namespaceURI namespaceURI
DOMNode.prefix prefix, extracted from qualifiedName, or null if there is no prefix
DOMNode.localName local name, extracted from qualifiedName
DOMAttr.name qualifiedName
DOMNode.nodeValue the empty string
Exceptions:
DOMExceptionINVALID_CHARACTER_ERR: Raised if the specified qualified name contains an illegal character, per the XML 1.0 specification .
NAMESPACE_ERR: Raised if the qualifiedName is malformed per the Namespaces in XML specification, if the qualifiedName has a prefix and the namespaceURI is null, if the qualifiedName has a prefix that is "xml" and the namespaceURI is different from " http://www.w3.org/XML/1998/namespace", or if the qualifiedName, or its prefix, is "xmlns" and the namespaceURI is different from " http://www.w3.org/2000/xmlns/".
NOT_SUPPORTED_ERR: Always thrown if the current document does not support the "XML" feature, since namespaces were defined by XML.
Since:
DOM Level 2
virtual DOMCDATASection* xercesc::DOMDocument::createCDATASection ( const XMLCh *  data) [pure virtual]

Creates a DOMCDATASection node whose value is the specified string.

Parameters:
dataThe data for the DOMCDATASection contents.
Returns:
The new DOMCDATASection object.
Since:
DOM Level 1
virtual DOMComment* xercesc::DOMDocument::createComment ( const XMLCh *  data) [pure virtual]

Creates a DOMComment node given the specified string.

Parameters:
dataThe data for the node.
Returns:
The new DOMComment object.
Since:
DOM Level 1
virtual DOMDocumentFragment* xercesc::DOMDocument::createDocumentFragment ( ) [pure virtual]

Creates an empty DOMDocumentFragment object.

Returns:
A new DOMDocumentFragment.
Since:
DOM Level 1
virtual DOMDocumentType* xercesc::DOMDocument::createDocumentType ( const XMLCh *  name) [pure virtual]

Non-standard extension.

Create a DOMDocumentType node.

Returns:
A DOMDocumentType that references the newly created DOMDocumentType node.
virtual DOMDocumentType* xercesc::DOMDocument::createDocumentType ( const XMLCh *  qName,
const XMLCh *  ,
const XMLCh *   
) [inline, virtual]
virtual DOMElement* xercesc::DOMDocument::createElement ( const XMLCh *  tagName) [pure virtual]

Creates an element of the type specified.

Note that the instance returned implements the DOMElement interface, so attributes can be specified directly on the returned object.
In addition, if there are known attributes with default values, DOMAttr nodes representing them are automatically created and attached to the element.
To create an element with a qualified name and namespace URI, use the createElementNS method.

Parameters:
tagNameThe name of the element type to instantiate. For XML, this is case-sensitive.
Returns:
A new DOMElement object with the nodeName attribute set to tagName, and localName, prefix, and namespaceURI set to null.
Exceptions:
DOMExceptionINVALID_CHARACTER_ERR: Raised if the specified name contains an illegal character.
Since:
DOM Level 1
virtual DOMElement* xercesc::DOMDocument::createElementNS ( const XMLCh *  namespaceURI,
const XMLCh *  qualifiedName,
const XMLFileLoc  lineNum,
const XMLFileLoc  columnNum 
) [pure virtual]

Non-standard extension.

Creates an element of the given qualified name and namespace URI, and also stores line/column number info. Used by internally XSDXercesDOMParser during schema traversal.

See also:
createElementNS(const XMLCh *namespaceURI, const XMLCh *qualifiedName)
virtual DOMElement* xercesc::DOMDocument::createElementNS ( const XMLCh *  namespaceURI,
const XMLCh *  qualifiedName 
) [pure virtual]

Creates an element of the given qualified name and namespace URI.

Parameters:
namespaceURIThe namespace URI of the element to create.
qualifiedNameThe qualified name of the element type to instantiate.
Returns:
A new DOMElement object with the following attributes:
Attribute Value
DOMNode.nodeName qualifiedName
DOMNode.namespaceURI namespaceURI
DOMNode.prefix prefix, extracted from qualifiedName, or null if there is no prefix
DOMNode.localName local name, extracted from qualifiedName
DOMElement.tagName qualifiedName
Exceptions:
DOMExceptionINVALID_CHARACTER_ERR: Raised if the specified qualified name contains an illegal character, per the XML 1.0 specification .
NAMESPACE_ERR: Raised if the qualifiedName is malformed per the Namespaces in XML specification, if the qualifiedName has a prefix and the namespaceURI is null, or if the qualifiedName has a prefix that is "xml" and the namespaceURI is different from " http://www.w3.org/XML/1998/namespace" .
NOT_SUPPORTED_ERR: Always thrown if the current document does not support the "XML" feature, since namespaces were defined by XML.
Since:
DOM Level 2
virtual DOMEntity* xercesc::DOMDocument::createEntity ( const XMLCh *  name) [pure virtual]

Non-standard extension.

Create a new entity.

Parameters:
nameThe name of the entity to instantiate
virtual DOMEntityReference* xercesc::DOMDocument::createEntityReference ( const XMLCh *  name) [pure virtual]

Creates an DOMEntityReference object.

In addition, if the referenced entity is known, the child list of the DOMEntityReference node is made the same as that of the corresponding DOMEntity node.If any descendant of the DOMEntity node has an unbound namespace prefix, the corresponding descendant of the created DOMEntityReference node is also unbound; (its namespaceURI is null). The DOM Level 2 does not support any mechanism to resolve namespace prefixes.

Parameters:
nameThe name of the entity to reference.
Returns:
The new DOMEntityReference object.
Exceptions:
DOMExceptionINVALID_CHARACTER_ERR: Raised if the specified name contains an illegal character.
Since:
DOM Level 1
virtual DOMNotation* xercesc::DOMDocument::createNotation ( const XMLCh *  name) [pure virtual]

Non-standard extension.

Create a Notation.

Parameters:
nameThe name of the notation to instantiate
Returns:
A DOMNotation that references the newly created DOMNotation node.
virtual DOMProcessingInstruction* xercesc::DOMDocument::createProcessingInstruction ( const XMLCh *  target,
const XMLCh *  data 
) [pure virtual]

Creates a DOMProcessingInstruction node given the specified name and data strings.

Parameters:
targetThe target part of the processing instruction.
dataThe data for the node.
Returns:
The new DOMProcessingInstruction object.
Exceptions:
DOMExceptionINVALID_CHARACTER_ERR: Raised if the specified target contains an illegal character.
Since:
DOM Level 1
virtual DOMText* xercesc::DOMDocument::createTextNode ( const XMLCh *  data) [pure virtual]

Creates a DOMText node given the specified string.

Parameters:
dataThe data for the node.
Returns:
The new DOMText object.
Since:
DOM Level 1
virtual DOMDocumentType* xercesc::DOMDocument::getDoctype ( ) const [pure virtual]

The Document Type Declaration (see DOMDocumentType) associated with this document.

For XML documents without a document type declaration this returns null. The DOM Level 2 does not support editing the Document Type Declaration. docType cannot be altered in any way, including through the use of methods inherited from the DOMNode interface, such as insertNode or removeNode.

Since:
DOM Level 1
virtual DOMElement* xercesc::DOMDocument::getDocumentElement ( ) const [pure virtual]

This is a convenience attribute that allows direct access to the child node that is the root element of the document.

Since:
DOM Level 1
virtual const XMLCh* xercesc::DOMDocument::getDocumentURI ( ) const [pure virtual]

The location of the document or null if undefined.


Beware that when the DOMDocument supports the feature "HTML" , the href attribute of the HTML BASE element takes precedence over this attribute.

Since:
DOM Level 3
virtual DOMConfiguration* xercesc::DOMDocument::getDOMConfig ( ) const [pure virtual]

The configuration used when DOMDocument::normalizeDocument is invoked.

Returns:
The DOMConfiguration from this DOMDocument
Since:
DOM Level 3
virtual DOMElement* xercesc::DOMDocument::getElementById ( const XMLCh *  elementId) const [pure virtual]

Returns the DOMElement whose ID is given by elementId.

If no such element exists, returns null. Behavior is not defined if more than one element has this ID. The DOM implementation must have information that says which attributes are of type ID. Attributes with the name "ID" are not of type ID unless so defined. Implementations that do not know whether attributes are of type ID or not are expected to return null.

Parameters:
elementIdThe unique id value for an element.
Returns:
The matching element.
Since:
DOM Level 2
virtual DOMNodeList* xercesc::DOMDocument::getElementsByTagName ( const XMLCh *  tagname) const [pure virtual]

Returns a DOMNodeList of all the DOMElement(s) with a given tag name in the order in which they are encountered in a preorder traversal of the DOMDocument tree.

The returned node list is "live", in that changes to the document tree made after a nodelist was initially returned will be immediately reflected in the node list.

Parameters:
tagnameThe name of the tag to match on. The special value "*" matches all tags.
Returns:
A new DOMNodeList object containing all the matched DOMElement(s).
Since:
DOM Level 1
virtual DOMNodeList* xercesc::DOMDocument::getElementsByTagNameNS ( const XMLCh *  namespaceURI,
const XMLCh *  localName 
) const [pure virtual]

Returns a DOMNodeList of all the DOMElement(s) with a given local name and namespace URI in the order in which they are encountered in a preorder traversal of the DOMDocument tree.

Parameters:
namespaceURIThe namespace URI of the elements to match on. The special value "*" matches all namespaces.
localNameThe local name of the elements to match on. The special value "*" matches all local names.
Returns:
A new DOMNodeList object containing all the matched DOMElement(s).
Since:
DOM Level 2
virtual DOMImplementation* xercesc::DOMDocument::getImplementation ( ) const [pure virtual]

The DOMImplementation object that handles this document.

A DOM application may use objects from multiple implementations.

Since:
DOM Level 1
virtual const XMLCh* xercesc::DOMDocument::getInputEncoding ( ) const [pure virtual]

An attribute specifying the encoding used for this document at the time of the parsing.

This is null when it is not known, such as when the DOMDocument was created in memory.

Since:
DOM Level 3
virtual bool xercesc::DOMDocument::getStrictErrorChecking ( ) const [pure virtual]

An attribute specifying whether errors checking is enforced or not.

When set to false, the implementation is free to not test every possible error case normally defined on DOM operations, and not raise any DOMException. In case of error, the behavior is undefined. This attribute is true by defaults.

Since:
DOM Level 3
virtual const XMLCh* xercesc::DOMDocument::getXmlEncoding ( ) const [pure virtual]

An attribute specifying, as part of the XML declaration, the encoding of this document.

This is null when unspecified or when it is not known, such as when the DOMDocument was created in memory.

Since:
DOM Level 3
virtual bool xercesc::DOMDocument::getXmlStandalone ( ) const [pure virtual]

An attribute specifying, as part of the XML declaration, whether this document is standalone.

This is false when unspecified.

Since:
DOM Level 3
virtual const XMLCh* xercesc::DOMDocument::getXmlVersion ( ) const [pure virtual]

An attribute specifying, as part of the XML declaration, the version number of this document.

This is null when unspecified.
This attribute represents the property [version] defined in .

Since:
DOM Level 3
virtual DOMNode* xercesc::DOMDocument::importNode ( const DOMNode importedNode,
bool  deep 
) [pure virtual]

Imports a node from another document to this document.

The returned node has no parent; (parentNode is null). The source node is not altered or removed from the original document; this method creates a new copy of the source node.
For all nodes, importing a node creates a node object owned by the importing document, with attribute values identical to the source node's nodeName and nodeType, plus the attributes related to namespaces (prefix, localName, and namespaceURI). As in the cloneNode operation on a DOMNode, the source node is not altered.
Additional information is copied as appropriate to the nodeType, attempting to mirror the behavior expected if a fragment of XML source was copied from one document to another, recognizing that the two documents may have different DTDs in the XML case. The following list describes the specifics for each type of node.

ATTRIBUTE_NODE
The ownerElement attribute is set to null and the specified flag is set to true on the generated DOMAttr. The descendants of the source DOMAttr are recursively imported and the resulting nodes reassembled to form the corresponding subtree. Note that the deep parameter has no effect on DOMAttr nodes; they always carry their children with them when imported.
DOCUMENT_FRAGMENT_NODE
If the deep option was set to true, the descendants of the source element are recursively imported and the resulting nodes reassembled to form the corresponding subtree. Otherwise, this simply generates an empty DOMDocumentFragment.
DOCUMENT_NODE
DOMDocument nodes cannot be imported.
DOCUMENT_TYPE_NODE
DOMDocumentType nodes cannot be imported.
ELEMENT_NODE
Specified attribute nodes of the source element are imported, and the generated DOMAttr nodes are attached to the generated DOMElement. Default attributes are not copied, though if the document being imported into defines default attributes for this element name, those are assigned. If the importNode deep parameter was set to true, the descendants of the source element are recursively imported and the resulting nodes reassembled to form the corresponding subtree.
ENTITY_NODE
DOMEntity nodes can be imported, however in the current release of the DOM the DOMDocumentType is readonly. Ability to add these imported nodes to a DOMDocumentType will be considered for addition to a future release of the DOM.On import, the publicId, systemId, and notationName attributes are copied. If a deep import is requested, the descendants of the the source DOMEntity are recursively imported and the resulting nodes reassembled to form the corresponding subtree.
ENTITY_REFERENCE_NODE
Only the DOMEntityReference itself is copied, even if a deep import is requested, since the source and destination documents might have defined the entity differently. If the document being imported into provides a definition for this entity name, its value is assigned.
NOTATION_NODE
DOMNotation nodes can be imported, however in the current release of the DOM the DOMDocumentType is readonly. Ability to add these imported nodes to a DOMDocumentType will be considered for addition to a future release of the DOM.On import, the publicId and systemId attributes are copied. Note that the deep parameter has no effect on DOMNotation nodes since they never have any children.
PROCESSING_INSTRUCTION_NODE
The imported node copies its target and data values from those of the source node.
TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE
These three types of nodes inheriting from DOMCharacterData copy their data and length attributes from those of the source node.
Parameters:
importedNodeThe node to import.
deepIf true, recursively import the subtree under the specified node; if false, import only the node itself, as explained above. This has no effect on DOMAttr , DOMEntityReference, and DOMNotation nodes.
Returns:
The imported node that belongs to this DOMDocument.
Exceptions:
DOMExceptionNOT_SUPPORTED_ERR: Raised if the type of node being imported is not supported.
Since:
DOM Level 2
virtual void xercesc::DOMDocument::normalizeDocument ( ) [pure virtual]

This method acts as if the document was going through a save and load cycle, putting the document in a "normal" form.

The actual result depends on the features being set. See DOMConfiguration for details.


Noticeably this method normalizes DOMText nodes, makes the document "namespace wellformed", according to the algorithm described below in pseudo code, by adding missing namespace declaration attributes and adding or changing namespace prefixes, updates the replacement tree of DOMEntityReference nodes, normalizes attribute values, etc.
Mutation events, when supported, are generated to reflect the changes occuring on the document. Note that this is a partial implementation. Not all the required features are implemented. Currently DOMAttr and DOMText nodes are normalized. Features to remove DOMComment and DOMCDATASection work.

Since:
DOM Level 3
virtual DOMNode* xercesc::DOMDocument::renameNode ( DOMNode n,
const XMLCh *  namespaceURI,
const XMLCh *  qualifiedName 
) [pure virtual]

Rename an existing node.

When possible this simply changes the name of the given node, otherwise this creates a new node with the specified name and replaces the existing node with the new node as described below. This only applies to nodes of type ELEMENT_NODE and ATTRIBUTE_NODE.
When a new node is created, the following operations are performed: the new node is created, any registered event listener is registered on the new node, any user data attached to the old node is removed from that node, the old node is removed from its parent if it has one, the children are moved to the new node, if the renamed node is an DOMElement its attributes are moved to the new node, the new node is inserted at the position the old node used to have in its parent's child nodes list if it has one, the user data that was attached to the old node is attach to the new node, the user data event NODE_RENAMED is fired.
When the node being renamed is an DOMAttr that is attached to an DOMElement, the node is first removed from the DOMElement attributes map. Then, once renamed, either by modifying the existing node or creating a new one as described above, it is put back.

Parameters:
nThe node to rename.
namespaceURIThe new namespaceURI.
qualifiedNameThe new qualified name.
Returns:
The renamed node. This is either the specified node or the new node that was created to replace the specified node.
Exceptions:
DOMExceptionNOT_SUPPORTED_ERR: Raised when the type of the specified node is neither ELEMENT_NODE nor ATTRIBUTE_NODE.
WRONG_DOCUMENT_ERR: Raised when the specified node was created from a different document than this document.
NAMESPACE_ERR: Raised if the qualifiedName is malformed per the Namespaces in XML specification, if the qualifiedName has a prefix and the namespaceURI is null, or if the qualifiedName has a prefix that is "xml" and the namespaceURI is different from " http://www.w3.org/XML/1998/namespace" . Also raised, when the node being renamed is an attribute, if the qualifiedName, or its prefix, is "xmlns" and the namespaceURI is different from "http://www.w3.org/2000/xmlns/".
Since:
DOM Level 3
virtual void xercesc::DOMDocument::setDocumentURI ( const XMLCh *  documentURI) [pure virtual]

The location of the document or null if undefined.


Beware that when the DOMDocument supports the feature "HTML" , the href attribute of the HTML BASE element takes precedence over this attribute.

Since:
DOM Level 3
virtual void xercesc::DOMDocument::setStrictErrorChecking ( bool  strictErrorChecking) [pure virtual]

An attribute specifying whether errors checking is enforced or not.

When set to false, the implementation is free to not test every possible error case normally defined on DOM operations, and not raise any DOMException. In case of error, the behavior is undefined. This attribute is true by defaults.

Since:
DOM Level 3
virtual void xercesc::DOMDocument::setXmlStandalone ( bool  standalone) [pure virtual]

An attribute specifying, as part of the XML declaration, whether this document is standalone.


This attribute represents the property [standalone] defined in .

Since:
DOM Level 3
virtual void xercesc::DOMDocument::setXmlVersion ( const XMLCh *  version) [pure virtual]

An attribute specifying, as part of the XML declaration, the version number of this document.

This is null when unspecified.
This attribute represents the property [version] defined in .

Since:
DOM Level 3

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/inherit_graph_23.png0000644000151400015140000000366411653571066016044 00000000000000‰PNG  IHDR«(®8bKGDÿÿÿ ½§“iIDATxœí›HSÝÇÏZÖt™–k›sÊ0Sc2à j#tåˆHh j´ŠÐ¢"7ʈ9´1©°Œ˜‘SYe˜ŒbˆV"¡m²éV,¶å¶6Üûüqø^îs÷ã[=Ê㽯¿îùœóùÜóã}>;÷n£ HÌŠ¥îÉC*€è :¤ˆÎJ\¹¥¥ehhhIºB²\ºtI$a-x˜ÍæÉÉI¡P¸ˆ½"Y$z{{kkkqF¼B¡°§§gQºD²¨P(”h#y :¤ˆ©¢C*€è :ËV <O¡P8lŸÏ§R©Š‹‹SSS·oß~õêÕP(„únÚ´ ÷™D"¡P(SSS°L&Ã6˜ššŠyÒŽIâÆè]þ,øï²lxýúµÝnÿüù³V«ŸŸ/))q»Ý°ÊãñlÛ¶mll¬µµõÝ»w>‹Åáp6˜™™yÿþ=Êårá^”õõõétºÅHzzúùóçãÕÚl6ƒñçÑ‘¿#“É ºÿë¬V+ZŒD";wîT«Õ°¨T*+**B¡ÚÀëõòx¼»wïBßêêê‹/¢µ]]]‰ 8yòäúõëív;l`µZ£'3‰ãzþ£á"ët:œñOr@VV–Ëå<~ü8??ßçó‚Á J¥b±XL&S¥RƒA˜¾^¾|™““c4›ššrrr6lØ P(Ðííxþü¹@  Ñh¹¹¹<„B¡˜îØ ™ [R(”S§N Àbww·Z­¦R©h:®R©º»»aQ&“õôô ÿËó}}}R©°¾¾¾°°°®®‰ú…Ûí>vìƒÁàr¹J¥2„Ãá¶¶¶üüüÔÔÔ²²²ÑÑÑc;®è™Ù±c€ÍfÇ[¯ÿN¿˜ ÅÑ£G¿~ýÊb±FGG¡±µµõÀ³³³&“©¤¤äÂ… Pž‰äÕ«W†Ïç›L&³Ù\ZZªT*ãyy½ÞÕ«Wß¾}Ûn·ß»woåÊ•^¯·­­-¦»Ûí†w ¢vÒØØXzz:‚ P»‡7¨‘‘‹}'''Ùlöøø8 ›’’òýûw€ÉV«Õb±$''kµZäïQ.—WVVNOO›L¦¢¢"Fsýúu&“©×ë¿|ù200Àáp`ãè±Çì9<æÌüÃð‡ p¹\\.W h4ÔXXXˆfEƒÁ°eËØ9“É„ HAA^¯‡µŸ>}B¯£½œNgRRÒµk×\.W$ñx<áp8ž{‚Ñþ®Þ¼yÃ`0Pß3gÎ466"ÒÝÝ-‹±1Ñ‹öööµk×ÎÎ΢˰°°@¥R?|øcêõú¼¼¼üüü®®.ôF÷ï߇£Ç³çhð˜3³4 @¤¹¹™J¥~ûö µÐh4lvIKKƒ[XX€µf³9:N´‚ ÃÃÃR©”N§WTT¼xñ"{‚ÑâæñÑ£G[·n…×l6Û`0à\:::öìÙƒúƼ¼¼H$RSSsçÎ$–Âá°H$Ú½{·ÅbË077ðûý0¦Éd¢ÑhÉÉÉèÆÇÇaã˜cO €˜3³çÀÜÜÜÍ›7«ªªP#ƒÁ@»îr¹Þ¾} íIII‡333-W®\‰çå÷û#‘Hoo¯Óé Æýû÷s¹\·Û küøQPP ‰-‹^¯çóùeee@ÁìÂÓ§OoÞ¼y×®]hL\€tttÀ“,>|¸²²Òf³™Íf>Ÿ¯V«ÛÛÛ™LæÓ§Oívûàà`nn.l=vlÏQÐiŒ93°Öãñ$^5ä_ü¸qãFqq1ÌíOž<ÉÌÌt:‚ÌÏÏ?~|ݺuuuu>Ÿ«€@  T*9NZZÚ¡C‡\.´G{!¢Óé6nܸjÕªÂÂÂgÏž%pÇÞ{Uyvv¶\.Ç~`!âõzŠŠŠRRRø|þåË—þü‰úÂ6€[·náì êQS,£·v:GŽÉÈÈÈÌ̬¯¯÷ûý¡P¨­­-//N§ …B¸×ã=z—bÇ=3Á`°¼¼|Íš5‰W ‰£ î–¿X–P(N—e9¿$ùHRD‡TÑ!@tHRD‡TÑ!@tbüghhh¾ã$!xÀœ,Kd2Yvv6Έÿ^€„hç¢C*€è :¤ˆÎ_Á3!ãýýÙIEND®B`‚XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMImplementationLS__inherit__graph.map0000644000151400015140000000037311653571066024730 00000000000000 XQilla-2.3.0/docs/dom3-api/index.html0000644000151400015140000000255411653571065014200 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

XQilla DOM Level 3 API Documentation

XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMPSVITypeInfo.html0000644000151400015140000004425411653571065020736 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMPSVITypeInfo Class Reference

The DOMPSVITypeInfo interface represent the PSVI info used by DOMElement or DOMAttr nodes, specified in the schemas associated with the document. More...

#include <DOMPSVITypeInfo.hpp>

List of all members.

Public Types

enum  PSVIProperty {
  PSVI_Validity, PSVI_Validitation_Attempted, PSVI_Type_Definition_Type, PSVI_Type_Definition_Name,
  PSVI_Type_Definition_Namespace, PSVI_Type_Definition_Anonymous, PSVI_Nil, PSVI_Member_Type_Definition_Name,
  PSVI_Member_Type_Definition_Namespace, PSVI_Member_Type_Definition_Anonymous, PSVI_Schema_Default, PSVI_Schema_Normalized_Value,
  PSVI_Schema_Specified
}

Public Member Functions

Destructor
virtual ~DOMPSVITypeInfo ()
 Destructor.
virtual const XMLCh * getStringProperty (PSVIProperty prop) const =0
 Returns the string value of the specified PSVI property associated to a DOMElement or DOMAttr, or null if not available.
virtual int getNumericProperty (PSVIProperty prop) const =0
 Returns the numeric value of the specified PSVI property associated to a DOMElement or DOMAttr, or null if not available.

Protected Member Functions

Hidden constructors
 DOMPSVITypeInfo ()

Detailed Description

The DOMPSVITypeInfo interface represent the PSVI info used by DOMElement or DOMAttr nodes, specified in the schemas associated with the document.


Member Enumeration Documentation

Enumerator:
PSVI_Validity 
PSVI_Validitation_Attempted 
PSVI_Type_Definition_Type 
PSVI_Type_Definition_Name 
PSVI_Type_Definition_Namespace 
PSVI_Type_Definition_Anonymous 
PSVI_Nil 
PSVI_Member_Type_Definition_Name 
PSVI_Member_Type_Definition_Namespace 
PSVI_Member_Type_Definition_Anonymous 
PSVI_Schema_Default 
PSVI_Schema_Normalized_Value 
PSVI_Schema_Specified 

Constructor & Destructor Documentation

xercesc::DOMPSVITypeInfo::DOMPSVITypeInfo ( ) [inline, protected]
virtual xercesc::DOMPSVITypeInfo::~DOMPSVITypeInfo ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual int xercesc::DOMPSVITypeInfo::getNumericProperty ( PSVIProperty  prop) const [pure virtual]

Returns the numeric value of the specified PSVI property associated to a DOMElement or DOMAttr, or null if not available.

Returns:
the numeric value of the specified PSVI property associated to a DOMElement or DOMAttr, or null if not available.
virtual const XMLCh* xercesc::DOMPSVITypeInfo::getStringProperty ( PSVIProperty  prop) const [pure virtual]

Returns the string value of the specified PSVI property associated to a DOMElement or DOMAttr, or null if not available.

Returns:
the string value of the specified PSVI property associated to a DOMElement or DOMAttr, or null if not available.

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMXPathEvaluator-members.html0000644000151400015140000000750511653571065023034 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMXPathEvaluator Member List

This is the complete list of members for xercesc::DOMXPathEvaluator, including all inherited members.
createExpression(const XMLCh *expression, const DOMXPathNSResolver *resolver)=0xercesc::DOMXPathEvaluator [pure virtual]
createNSResolver(const DOMNode *nodeResolver)=0xercesc::DOMXPathEvaluator [pure virtual]
DOMXPathEvaluator()xercesc::DOMXPathEvaluator [inline, protected]
evaluate(const XMLCh *expression, const DOMNode *contextNode, const DOMXPathNSResolver *resolver, DOMXPathResult::ResultType type, DOMXPathResult *result)=0xercesc::DOMXPathEvaluator [pure virtual]
~DOMXPathEvaluator()xercesc::DOMXPathEvaluator [inline, virtual]
XQilla-2.3.0/docs/dom3-api/inherit_graph_39.png0000644000151400015140000000367411653571066016054 00000000000000‰PNG  IHDR¥(g­‹bKGDÿÿÿ ½§“qIDATxœí›}HS]ÇÏœ­7éE·5ç[±‰sŠe‚ ÕD,)(ª?4–YQäú'¡š‰Û@CAðŸ@¢F(¹2AˆJ|)¡6jk·tmù²šÙrnîî<œ§ËÚîöLSŸžçÞÏ_çüîÙï÷Ûýîüî9gBh(Cؿ͊BëM-h½©­7µ÷îôõõUWWÿ[©Ð,‰¤²²’èþ¢·ÕjíîîÎÏÏ_ñ¬h–N·yófoK¸ÿ {÷î­T>4ËKAA…~~S ZojAëM-h½©­7µX°Þ/_¾ ¿ÿ>aéèè`±X†¡î?ÊÊʶoß‘™™YSSãv»ïß¿g0¤àTUU1ŒÚÚZ²P­­­ 2 ÃÊ%½Ðh4>R*++y<žÍfƒNOOóùüêêjtiffF$I$’G ?xð@,çää¸Ýî©©©òòr¡ÉdBQˆF<X,Žß±ca\‡P0›ÍQQQ¿ï'8³³³““““““Z­0ù—˵Lóóóóóó½-‹ÑÛét¦¦¦C/\¸‘‘Ad,—Ë÷îÝëv»‰Áv»}ëÖ­„eAj½zõŠÁ`tuu†‡‡á!–ÊÏŸÎ_ïÅ<¿Y,–Z­¾uëVMMÍíÛ·ÕjõªU«Ð¥ææf…BÁd2‰Áëׯ/++kii ^{>|˜žž¾nݺèèhïÒÝÚÚš½oß>‘H„>Ž˜žž>sæ ›ÍŽ•Ëåsssn·[©TÆÇÇs8œS§NMOOŠ•••àñx\¡ä{zzâããŸ?îzjjjvv6ôèrÞÑÑ‘””ÄårKJJœNçúÿoñCœßˆ«W¯ˆJ!´Ùl(9Ÿ‘:.22ÒR™™‹uöìÙ±±±ææfÀ§OŸ „gÛ¶mMMMÂŠŠŠ””ät~æææšÍf£Ñ˜ššªR©êêêRRRŒF#†a»ví’ËåbùL8WhÀÁƒ{{{ív;1R¯×Ÿ>}šÃáLLL„xß ßüFݼ¼¼‘‘‘þþ~¡P¨R©¼Çwuuq¹ÜÒÒR‹Åz¸TõBèñxŽ9Âd2Ož_¥RY,–¢¢¢ªªªäää?."Êbôž˜˜())©««“H$J¥R&“}ùò]*,,¬ªªÂqu¥RéÝ»wkkk¥Ri‡‡£   ´´thh¨¡¡q×h4õõõßrùòeFÉ~p·eË&“i±XP×l6ÇÄÄðùüÑÑQd1 ׯ_ë]¡6Z¦p8±X¬Õj_¼xA¬ ~4Ë###|>ŸtŒÕj}óæÍØØØÎ;×®]»˜0Þ“=”zîñx:”JŠËåJKK“J¥èê·oß’’’rrržP,ä‡(Ëþ®üWÔ†Éd26›}îܹPª+i=ÏÉÉ1™Lz½>11Q¡PxÇq¼³³óèÑ£111 …b||<Ä@KðüV«Õ«W¯&¶FB½^ÖÖÖ†ºv»ýÊ•+©©©kÖ¬ÙÙÙÇ¢7„°¾¾>222..®¡¡A*•r¹\™L–——çÚãñ‚òòrR_¿~-**ŠŠŠŠŽŽ¾té’Ãᘛ›“Ëå|>ãÆR©ÆšŸŸß³gODDD WvP6›­¾¾^ ŒŽŽ¿oÞê}óæÍ„„6›}ñâE‡Ãá=¾­­-++«¥¥Åét†.ázmA8NN·änÿpŸŸŸ_ôËÿq;¾è½I~ï°ä°X,´Áý¿¶ŒßDÇ¿ÏJèMA,A²Åæ† d2Ù2gô7´ÞË©®àr¹Ë—Œ7ô÷¡Ô‚Ö›ZÐzS ZojAëM-h½©É~lÿþý+ŸÍr€a˜D"ñ¶ü¢w\\ýç±ÿ‰Äçd“± “šÿ:ôó›ZÐzS ZojAëM-þOŸa¥^/~IEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMImplementationRegistry_8hpp.html0000644000151400015140000000575711653571066021117 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMImplementationRegistry.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
Include dependency graph for DOMImplementationRegistry.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMImplementationRegistry

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/DOMText_8hpp__incl.md50000644000151400015140000000004011653571065016165 00000000000000be71aac71329f3fca994d82a3ea277d8XQilla-2.3.0/docs/dom3-api/inherits.html0000644000151400015140000005320111653571066014712 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

Class Hierarchy

XQilla-2.3.0/docs/dom3-api/DOMElement_8hpp__incl.map0000644000151400015140000000003511653571065016726 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMProcessingInstruction_8hpp__incl.md50000644000151400015140000000004011653571065021617 00000000000000d143f40b85b0af705d8edadb10f36542XQilla-2.3.0/docs/dom3-api/DOMXPathExpression_8hpp__incl.md50000644000151400015140000000004011653571065020345 00000000000000d638e3adf9d5721615d40e77a47c141fXQilla-2.3.0/docs/dom3-api/inherit_graph_0.md50000644000151400015140000000004011653571065015640 0000000000000044f51e6ffbcb20da990b5c71bccd316eXQilla-2.3.0/docs/dom3-api/classXQillaPlatformUtils.html0000644000151400015140000001543411653571065020040 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

XQillaPlatformUtils Class Reference

Static utility methods for initializing and terminating the XQilla and Xerces environments. More...

#include <XQillaPlatformUtils.hpp>

List of all members.

Static Public Member Functions

static void initialize (xercesc::MemoryManager *memMgr=0)
 Perform XQilla initialization.
static void terminate ()
 Perform XQilla termination.
static void enableExtendedPrecision (bool bEnable)
 Enable/disable extended precision in numeric items.

Detailed Description

Static utility methods for initializing and terminating the XQilla and Xerces environments.


Member Function Documentation

static void XQillaPlatformUtils::enableExtendedPrecision ( bool  bEnable) [static]

Enable/disable extended precision in numeric items.

When disabled, xs:decimal values will hold only 18 digits, xs:float 7 digits and xs:double 15 digits as mandated

static void XQillaPlatformUtils::initialize ( xercesc::MemoryManager memMgr = 0) [static]

Perform XQilla initialization.

Initialization should be called first in any user code.

Initializes Xerces and adds its own DOMImplementation to the registry

Examples:
dom-basic.cpp, dom-context-item.cpp, and dom-resolver.cpp.
static void XQillaPlatformUtils::terminate ( ) [static]

Perform XQilla termination.

Terminates Xerces

Examples:
dom-basic.cpp, dom-context-item.cpp, and dom-resolver.cpp.

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMEntityReference.html0000644000151400015140000002374011653571066021570 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMEntityReference Class Reference

DOMEntityReference objects may be inserted into the structure model when an entity reference is in the source document, or when the user wishes to insert an entity reference. More...

#include <DOMEntityReference.hpp>

Inheritance diagram for xercesc::DOMEntityReference:

List of all members.

Public Member Functions

Destructor
virtual ~DOMEntityReference ()
 Destructor.

Protected Member Functions

Hidden constructors
 DOMEntityReference ()
 DOMEntityReference (const DOMEntityReference &other)

Detailed Description

DOMEntityReference objects may be inserted into the structure model when an entity reference is in the source document, or when the user wishes to insert an entity reference.

Note that character references and references to predefined entities are considered to be expanded by the HTML or XML processor so that characters are represented by their Unicode equivalent rather than by an entity reference. Moreover, the XML processor may completely expand references to entities while building the structure model, instead of providing DOMEntityReference objects. If it does provide such objects, then for a given DOMEntityReference node, it may be that there is no DOMEntity node representing the referenced entity. If such an DOMEntity exists, then the subtree of the DOMEntityReference node is in general a copy of the DOMEntity node subtree. However, this may not be true when an entity contains an unbound namespace prefix. In such a case, because the namespace prefix resolution depends on where the entity reference is, the descendants of the DOMEntityReference node may be bound to different namespace URIs.

As for DOMEntity nodes, DOMEntityReference nodes and all their descendants are readonly.

See also the Document Object Model (DOM) Level 2 Core Specification.

Since:
DOM Level 1

Constructor & Destructor Documentation

xercesc::DOMEntityReference::DOMEntityReference ( ) [inline, protected]
xercesc::DOMEntityReference::DOMEntityReference ( const DOMEntityReference other) [inline, protected]
virtual xercesc::DOMEntityReference::~DOMEntityReference ( ) [inline, virtual]

Destructor.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMLSException.html0000644000151400015140000002741611653571066020676 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMLSException Class Reference

#include <DOMLSException.hpp>

Inheritance diagram for xercesc::DOMLSException:

List of all members.

Public Types

Public Contants
enum  LSExceptionCode { PARSE_ERR = 81, SERIALIZE_ERR = 82 }
 

ExceptionCode.

More...

Public Member Functions

Constructors
 DOMLSException ()
 Default constructor for DOMLSException.
 DOMLSException (short code, short messageCode, MemoryManager *const memoryManager)
 Constructor which takes an error code and a message.
 DOMLSException (const DOMLSException &other)
 Copy constructor.
Destructor.
virtual ~DOMLSException ()
 Destructor for DOMLSException.

Member Enumeration Documentation

ExceptionCode.

PARSE_ERR: If an attempt was made to load a document, or an XML Fragment, using DOMLSParser and the processing has been stopped.

SERIALIZE_ERR: If an attempt was made to serialize a Node using LSSerializer and the processing has been stopped.

Since:
DOM Level 3
Enumerator:
PARSE_ERR 
SERIALIZE_ERR 

Constructor & Destructor Documentation

home jpcs xml xerces xerces c src xercesc dom DOMLSException cpp xercesc::DOMLSException::DOMLSException ( )

Default constructor for DOMLSException.

xercesc::DOMLSException::DOMLSException ( short  code,
short  messageCode,
MemoryManager *const  memoryManager 
)

Constructor which takes an error code and a message.

Parameters:
codeThe error code which indicates the exception
messageCodeThe string containing the error message
memoryManagerThe memory manager used to (de)allocate memory
xercesc::DOMLSException::DOMLSException ( const DOMLSException other)

Copy constructor.

Parameters:
otherThe object to be copied.
xercesc::DOMLSException::~DOMLSException ( ) [virtual]

Destructor for DOMLSException.


The documentation for this class was generated from the following files:
XQilla-2.3.0/docs/dom3-api/classXQillaPlatformUtils-members.html0000644000151400015140000000526111653571065021465 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

XQillaPlatformUtils Member List

This is the complete list of members for XQillaPlatformUtils, including all inherited members.
enableExtendedPrecision(bool bEnable)XQillaPlatformUtils [static]
initialize(xercesc::MemoryManager *memMgr=0)XQillaPlatformUtils [static]
terminate()XQillaPlatformUtils [static]
XQilla-2.3.0/docs/dom3-api/DOMTreeWalker_8hpp__incl.md50000644000151400015140000000004011653571065017306 00000000000000adf02eb7b30a681e16cf04602b2a586bXQilla-2.3.0/docs/dom3-api/inherit_graph_19.md50000644000151400015140000000004011653571065015732 00000000000000d26b0ed141ba960780d56f2f555bf2d1XQilla-2.3.0/docs/dom3-api/DOMNodeFilter_8hpp__incl.map0000644000151400015140000000003511653571065017370 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMException_8hpp__incl.png0000644000151400015140000001556111653571065017314 00000000000000‰PNG  IHDR u‡Ð¢&bKGDÿÿÿ ½§“&IDATxœíÝi@×ÚàÊ"‚,BŠZEQZ¯m‘ŠZ\P‘Ë¢‚•EÀª€+¥‹ŠŠHU6+Še‘* â~EYÔzU+¢([@`XB’ù~ÌýÒa± ™dxŸ_ÃÉÌ9ï$‡7gæÌL(†! #9¢€Á @Zठ@Z4¢¢åççïܹ“è(€hÙÙÙD‡œ”jhh¸~ýú¬Y³ˆ¼çÍ›7eeeDG œT #:ðž¼¼¼ü‘è(À@Á98iA‚$8iA‚$8iÁ,ªl³¶¶,ëèèL™2Å××W]]]PÈf³Oœ8QPP@§Ó gΜ¹bÅ *•Šo«¯¯ŸœœL¡PëoÞ¼ùþýû)))úúú• äæææ!„Pmm­››Û?iÈÚÚß1Fd$8™­««Ëçó«««333×®]{üøqUUU„PGG‡¯¯¯†††···žž^eeå±cÇ ###åääBõõõ/^¼011Á«jmm}üøqÏÊ%°t:ÝÇÇ'++ !¤ªªêââ"FéÁ!ªÌSWW×ÔÔÔÒÒš:uêÏ?ÿ¬««›žžŽ¿”””¤®®~àÀéÓ§Ìœ93>>¾¾¾þÊ•+ø yyy‚ªîܹcnnÞ³raƒ´|>ŸÉdâËjjjk×®¤†À ŽT(ÊâÅ‹ïÞ½‹ÿ™íááÖpJJJ+V¬Üi4kÖ¬¼¼<Á3óóó¿þúë~[¹sçÎÒ¥K[[[B7nÜpwwg³Ù</11ÑÙÙyÉ’%ááámmmøÊ\.7>>ÞÁÁÁÁÁ!>>žËåÖÖÖZ[[ÿñÇîîî‡îêêòóóC9::"„ððÍÛÚÚöìÙcoo¿lÙ²¸¸8‡ƒ²¶¶¾~ýúÊ•+/^üûï¿‹ ²°°ÐÕÕÕÎÎ.55UPg·FE~è{¤$8²100¨««Cµµµ577 ?LLLªªªðåI“&±X¬/^ „ÚÛÛ‹ŠŠ¾úê+á•Ùl6ë}¡/¿üÒÂÂ"&&†Á`ÄÄÄlß¾]II)##ãæÍ›áááQQQÕÕÕ)))x t:ýÈ‘#‘‘‘EEE‰‰‰xù¹sçÂÃÃwïÞ}ïÞ½“'OÆÆÆ"„Μ9Ó-Úƒ666ÆÇÇïÝ»·   -- /¿}ûvLLŒ··÷‘#GðTÛͽ{÷Ž=’ vk´B@à† …Âçóñe999+++ü(õ¿ÿý¯™™ÙðáÃ…W^³fÍÂ÷áåEEEAAAöööãÇG]ºtÉÓÓsìØ±cƌټyóĉñ5¯\¹²~ýzmmí±cÇz{{ß¿/÷õõ500˜0aš5kz»wËåæääèêêŽ;võêÕ‚5—,Y¢ªª:oÞ<„  svvVVV¶´´D 2 ÈF Q0É@6555zzz!UUUMMÍŠŠ á***LMMΚ5+""ÂËËKäñios‘ªªª‹-úí·ß"##ñ’††|ÙÈÈÈÈÈ_®¯¯wrrl¨¢¢‚/V644lll¹/ ƒÏç㻃Ò×׬©¥¥…¢ÑzíÀ#FŒ@ O÷Öè@"2 Fp¤‚aØùóçg̘ÿ9wîܤ¤$Áx !Äf³ÓÒÒ¦OŸ.(133ëèè())),,ÄÇ;ñæÍ›³gÏZXXà‡–¡#FÔ××ãË‚CT55µ”””ÜÜÜÜÜÜ .Ö¯©©Áª««ñdÔ“†††œœNÇÿ¬««Ãóꑹz¹‚ÈF Qàd^KKKsssSSÓãÇCCCétúòåËñ—V®\É`06nÜxÿþýššš[·nùúújiiÙÛÛ 6ÇR80aÂá è„+†Â0lß¾}ŽŽŽ¡¡¡<¸sçBÈÆÆ&!!¡²²²²²òàÁƒ x 3gÎ>wß¾+³gOˆŒ\¡©Ù×.Á ü%?ÿY``ª²²Bl¬ÇÔ©†D‡Ó—‡«Ö­Knor™={Ñá)  „PWï§ŸÎ?~ËÞ~êÞ½Ë>úH‰èˆú×ÚÊÞ¾=33óÌ<€Þ@‚èÕ«¦uë’Ÿ=«_ºlÙçD‡óa.\x’®««ë>~¼.Ñáé“ CÝ™3æÍ‹ìêâ]½ºIæ²BÈÎÎ<;;høðaøÌÑáé#¸¡«½½sëÖŒ3gøúΞ/Ó‡x\.ÿàÁk¿ü’mc3qÿ~g ˜yA‚²JKk}}“Z[Y‡¹ZY#:ñxðൿ2‹Å‰Šú·µõx¢ÃăCÔ!‡ÏÇ"#¯ÚÚFj^¿Bšì†²°0ºv-ÈÒÒÔÍí×Ðг]]<¢#ƒÜÐÒÐÀ L½{÷Ehèb/¯™ŠÔ]æ&ééÛ·gkÇĸ;’èpa Á !99O¿ûªR\œÇ”)£‰gpUW7ûû§””ÔlÛ¶hÍ+¢ÃÄ€7$.sst´_ªªªHtD’ ˜y˜7oÒþýÎêêÊDG$ ùUV6úù%WV6ED,·³3':I{ðàÕºu)\.ïða·/¾0&: Q0É@rééóæEÒhÔìì !˜ÝB_»4}úØ¥Kc`æa¨i1™¬ààÓ—.=Þ°Áfýzm¨™¥§lÛ–ùÉ':11ncÆÀÌÃ Žœ +×­Kápx‡ÿÛÒÒ”èp¤EUÕÛuëRž=£ÿ½½›ÛD‡$8²á󱨨ÿ<˜=kÖø¨(—#T‰ŽHºf,0‹ˆX®¦3d ŽTÞ¤Þ¿_¹c‡‰/sûçþø£"00UNŽrø°ëŒ0ó@ZàÈ#;ûɆ iÚÚÃá¹Ád²6oN¿xñ±uHÈyy*ÑñƒGlv×÷ߟÅ“eûöEJJòDG$3ÒÓ ¶nÍ7nTLŒûÇk3Hp2ïéSºŸ_R}=sÿþå¶¶SˆGöTT¼Y·.ùÕ«¦]»œ–.ýŒèp€8A‚“m 7wï¾8yòè˜7}} ¢Ã‘U]]¼C‡²£¢®ÙÚNÙ·oÌ<$8YÕÒÒtê?ÿ)ýî»oà27±¸}»<0ð$&í6}úX¢Ãb N&Ý»÷Òß?…ÏÇvýòK¢Ã!æfüGÅʼ½aæ ÁÉÿË/×Ì^¸pò¾}ˇFtD$„Ï<Œ¯í32 œ,¡Ó[üýS=ªÞ³Gö~F¶TT¼ñóKzýúíîÝNNN0ó « ÁÉŒó熄œÖ×׌‹s75Et8äÇáp#"®ÆÅåØÚN‰ˆ€Á²L‚'X,ÎæÍé…^^V;vØ)*Êð¯ÃÈœ[·ÊO*(P££Ý>ÿ| ÑဠNÚ••Õùú&55µEF:ÏŸoFt8CÑÛ·m7þž›ûtýúo¾ûΆJ… k™ NzavìØ­]».Ljí¦§§NtDC†a©©wÃÂÎ}ú©^t´›‘Ñ¢# NJ1øõ OCC{zΔ“ƒÛæ‰W^^¿n]JuõÛððeÓˆôœ4ÊϘª¬¬ã>mšÑဿtvr÷ï¿—ƒÿº…ŠÊøu Ù ŽÜššfccínå‚_‡±·Ÿºwï²>R"$<з›7Ÿ­_RQQ>:Úõ³ÏDÌ<<{V?nÌtN—ãçŸ/¸»íèà¾zÕ´dÉ¡´´»¿üâëÙMjYYËÎ65ÕqtŒŽŒ¼Êãñ…_}ò¤vÁ‚¨ÂÂJ¢Âàpóæ³ÄÄ[¯_¿Ý¶-SPxölѼy‘ïêÕMp¯ôÓÒRýí·5»w/Í]±"ŽNoÁËY,ηߞèìäøø$µµu$€'iMMm>>I ðôô‚ÌÌÂööÎÀÀÔ€€¯.]úÎĤûq+N ÅÍí‹Ë—747wX[ïÍÊzˆÚº5³ºša¨±±5$ä4Ñ1upNÒV­:–“SÆåòB RT”76Ö®©aDD,_´žæ&“ÚÛ;wì8sút‹Ë¿Nž¼+(§P(11nK–À|+a ÁIÔéÓ6¤ ¿ç4šœžžú©S¾FFpS·lKJºóãYl6GðñR(HYY!7w‹<ªpˆ*9ÕÕÍÛ¶e ôÞ7 —˯«kùý÷ûDEÄ‚Çã§§tuñ„ †ººx~~IÝf!€Ä@‚“ïë›ÌáðzŽ˜¹\þ¡CÙ·o?'". ±±9Uq¹¼n寨èõ‘#yD ÁIʉ·>|ÝóàÿQR˜L–DcbRZZÑýb>Û»÷ÒŸÒ%@à$ãùó†Ÿ>ßÛéN†alv×Õ«¥ ˆÅÑ£ù<_NŽ"''ú ÷÷oW˜dtÜ9s"ªªÞ ߨT9 Ã0 ™›^¸pòܹáÂw™ÖÑÁùãç×®•^¹RÒÜÜN£Q»Ö©T9¯vír$*¡ Ü Û»÷ò¡C×ñ÷YQ‘Æáp©T¹3Œml&}óÍDx.ÉtuñîÝ{™“SvåJÉë×oñg+áG¯ :uÊÏÒò¢cBÞKp,‹Á` ù””Ôyyäó1„ÐG)YY[ZñÅUU¢CaÆihüÓk  ‹EÂó55-·n½Èϯxø°Ïqšš*™™žpÞàÑÐÐ6ì¯g/¿—àÞ¼ySVVFDTäÄáð¶lÉ£P…ŨiÓF™šj’ï©G#GŽœ8qâ?¬äÉ“'b‰G:±XÜÒÒÆ¢¢úG&NéïoAtD¤õé§Ÿjkÿu/ˆ‡_Ïš5KráZM ãìYs„>yòD\U‰%QJ³ BðââmxÎÒ`ÈËËëVO÷Dpý:è†B¡L™2šè(†¸L@Zठ@Zठ@Z2ŸàªªªV¯^Ýïj ExAxó‡Òh´ôôtAyVV–‚‚BIIÉ`ÄÜ EÈÇìááÑ÷Ea†¹¹¹©ªª¼þŠŠ qD þ"–އÞÿôÕÔÔ-ZTYYÙsý>|hèWÏ#² õ¶kZù ’ùwîܹ%K–ˆ|éåË—ZZÿ{ФººúæÍ›{Û|êÔ©Û¶m liiA½{÷ÎÏÏ/,,ÌÌLB¿$çÎ:^SS“˜˜Èd2§M›†G"R]]]jj*\’M,±t<|ÿôëêêòóóù|¾››[¿­ 7!Éþ0]“.˜†††ÜÜ\L¦ØÚÚvttˆ|éùóçÝv°g¡`óÎÎÎI“&­]»Ã0 ‡3hQ¿!ôüùsÁŸ|>ßÊÊêûï¿ïm}‘û5ðúŨ´´´´´Tzê‘$qu¼nŸNMM BèÝ»w}ʯ~hèWÏ#(È®}håb”››ÛÐÐ \òÁ#¸óçÏëëëã·¬¦¥¥™šš¶··#„ººº‚ƒƒutt´µµƒƒƒ»ººðë7 óòò GŽéáá!žôÜ !táÂ…É“'+));699!ÄårEnÞÔÔ¤¢¢2lØ0áA²`yÆŒ¡Q£F¡^FÑ‚ÍB 'Nœ8~üxxxxbbâ‰'äåå{ RŒ»Ö…Bñññ¹téRoõï×ë¼v횉‰‰††Fxx¸àÝÈÊÊ7nœ¶¶v```gg§ÈÂv‹ÁGÖŽ× •JÅÛ.¼xñâÔ©S•••uuu÷ìÙÓ­‰ný¡¥¥eÕªUZZZAAAl6[ø ¹}û6…B9~üø„ F޹gÏžäää1cƨ©©…††öû)ô»kR×…³ÝGp+W®¬¯¯×Ñѹwï^¸wï^''§ªªªâââiÓ¦mÙ²Ïë ,ÈÉÉùá‡&NœX\\\RRò¯ý+((¨·­ÚÚÚãããétú±cÇh4Z[[[DD„ÈÍ?žœœŒõò…Öo¡`s-[¶ „vîÜ)\8¨»†‰úN+((PWWï»uüÕÞê†Z´h“ÉÌÌÌD555á5ØØØ”——ß½{×ÄÄä‡~YØwOðŽ”!ôèÑ£ÖÖV&“YQQáèèøÙgŸ ¯Ïd2<==kjjRRRBoÞ¼écçêê:gΜ/^Oš4IðÉâoH[[BÈÅÅ…Éd&$$ „–/_Îd29‚÷ lÀ#¸ž»FloÄDàþN‚c0“'Onrüøñt:_ÎÎÎ677ÇC,..Æ0lܸqgΜÁ_-++,÷ܪ¹¹Y^^~ÿþý ƒÏç·¶¶òx¼Þ6wrrjnnÆþn?lŽãóùöööT*ÕÍÍMxu×°þ\o­ã%½Õ) !”——‡aÇÃÛŽðS§N™˜˜ˆ,Äú$áGÊŽ'<Ú——ÿú믻¥’ÎÎΧOŸ¶µµñx¼üü|áO°[†q8*•*x3Ïœ9Óó“Eá+w[Æ›þÛ ŽØÞˆ‰+ÁaöÓO?Q©TẔ”Þ{Œšš"~&KII©¤¤¤g==·Â0ìöíÛK—.UQQ™9sæåË—{Û¼µµuñâÅø²ðû^^^>~&¼9.99YMM-??_IIéܹs’Ù5LT:yò¤……Eß­ VY§0„Pyy¹p[x , /|üø±’’’Èžµ “ü98òu¼žŸ~Ïš³²²,--ÍÍÍñ‰×>\uuµð‡X\\,ødç”…[¹,Üa0 ãóùLp"ßÃn¯7bb9‡ª®®ŽŽŽž;wî¦M›…ZZZ‚wŠÁ`ܽû¿_‡ÄÏdééé½zõ /yôèÑ®]»zÛŠÅbñùüôôôææf///;;»ææf‘›_½zuþüùÂág.jkk²Ý6¯«« Œˆˆ°²² óöö~ûö­v­g`†ÅÅÅÙÚÚöÝ:n€uŠœÅÇûB¨¼¼\OO¯B)AÊŽ×/‹µ|ùòààࢢ¢ØØØ¾WÖÑÑ¡R©/_¾Äÿ|ñâ…¾¾>¾,8§Ü/CCCá+9ž>}J£ÑFîÿRØ?8Áñù|OOÏ€€€´´´ëׯ_¸p/wttܺuëëׯ‹‹‹çÏŸ#¼•»»ûöíÛñ/jÿׯ_÷¶…B±±±ÉÌÌd2™G^^^YYYäæYYYöööx=êêꡤ¤$&“yèÐ!á¦ñ“= oŽa˜··÷äÉ“½¼¼B›6mÒÑÑ À®á+766Ö×××ÖÖæçç;88TVVnܸq ­÷VgBB»wïúþ(ׯ__QQQPP°mÛ6Á¥ " ¥);Þ@tvvr8‹†jmmí­ yyyggçÀÀÀÊÊÊÒÒÒ;v¸ºº¼-ܪU«.^¼XYYyãÆ 777EÅ¿žïÔÛ®IcoÎ äõðáÃS¦LÁ‡»gÏžÕÕÕÅÏ&0™ÌÕ«WkhhŒ1bíÚµíííÂW6›¤§§§¦¦æââÂ`0ðòž[avêÔ)ccc…ñãÇgee‰ÜœÃá,\¸P8°;wª««geeáívuuYZZªªªb=†ÓÝ6?qâ„¢¢â³gÏ%÷ïß—““ËÈÈì]ÃÞ? 3zôhWWWáavß­÷Qg‡!x FFFZZZ,KdaßA’‡¨¤ìxØÀQ8 ©©9zôèØØXmmm‘Màš››ÝÝÝGŒ¡««»aÃÁ'+²E‘Ë]]]ûöí7n>º}ûvüýé{×ð온CTOô…^’^EEÅ'Ÿ|‚½Ÿ[Eö à¥Xžè+–z€,WoDåååu{¢¯Ìßɽ7 >ÜÛÛ{ … ¶Aípˆ þ>8DRQC$8iA‚$8iA‚–ˆ~®««“|@±Ùìnw­ÿ“ª ã±‘àð‡"0âJp­­­‚[,Ê‡Þ ²ÎÁH €´ ÁH €´þ")´5Vþ‡¬IEND®B`‚XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMImplementationRegistry-members.html0000644000151400015140000000630011653571065024633 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMImplementationRegistry Member List

This is the complete list of members for xercesc::DOMImplementationRegistry, including all inherited members.
addSource(DOMImplementationSource *source)xercesc::DOMImplementationRegistry [static]
getDOMImplementation(const XMLCh *features)xercesc::DOMImplementationRegistry [static]
getDOMImplementationList(const XMLCh *features)xercesc::DOMImplementationRegistry [static]
XQilla-2.3.0/docs/dom3-api/DOMLSException_8hpp__dep__incl.md50000644000151400015140000000004011653571065020425 000000000000005e827120a3dc5df65c3aaba8a3e6618fXQilla-2.3.0/docs/dom3-api/DOMLSParser_8hpp__incl.map0000644000151400015140000000003511653571065017030 00000000000000 XQilla-2.3.0/docs/dom3-api/inherit_graph_36.map0000644000151400015140000000023411653571066016027 00000000000000 XQilla-2.3.0/docs/dom3-api/classAutoDelete-members.html0000644000151400015140000001001511653571065017571 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

AutoDelete< TYPE > Member List

This is the complete list of members for AutoDelete< TYPE >, including all inherited members.
adopt()AutoDelete< TYPE > [inline]
AutoDelete(TYPE *p)AutoDelete< TYPE > [inline]
get() const AutoDelete< TYPE > [inline]
operator TYPE *() const AutoDelete< TYPE > [inline]
operator*() const AutoDelete< TYPE > [inline]
operator->() const AutoDelete< TYPE > [inline]
set(TYPE *p)AutoDelete< TYPE > [inline]
swap(TYPE *p)AutoDelete< TYPE > [inline]
~AutoDelete()AutoDelete< TYPE > [inline]
XQilla-2.3.0/docs/dom3-api/classAutoRelease-members.html0000644000151400015140000001005511653571065017753 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

AutoRelease< TYPE > Member List

This is the complete list of members for AutoRelease< TYPE >, including all inherited members.
adopt()AutoRelease< TYPE > [inline]
AutoRelease(TYPE *p)AutoRelease< TYPE > [inline]
get() const AutoRelease< TYPE > [inline]
operator TYPE *() const AutoRelease< TYPE > [inline]
operator*() const AutoRelease< TYPE > [inline]
operator->() const AutoRelease< TYPE > [inline]
set(TYPE *p)AutoRelease< TYPE > [inline]
swap(TYPE *p)AutoRelease< TYPE > [inline]
~AutoRelease()AutoRelease< TYPE > [inline]
XQilla-2.3.0/docs/dom3-api/DOMRangeException_8hpp_source.html0000644000151400015140000002243311653571065020661 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMRangeException.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMRangeException.hpp 671894 2008-06-26 13:29:21Z borisk $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMRANGEEXCEPTION_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMRANGEEXCEPTION_HPP
00024 
00025 #include <xercesc/dom/DOMException.hpp>
00026 
00027 XERCES_CPP_NAMESPACE_BEGIN
00028 
00036 class CDOM_EXPORT DOMRangeException  : public DOMException {
00037 public:
00038     // -----------------------------------------------------------------------
00039     //  Class Types
00040     // -----------------------------------------------------------------------
00056         enum RangeExceptionCode {
00057                 BAD_BOUNDARYPOINTS_ERR  = 111,
00058                 INVALID_NODE_TYPE_ERR   = 112
00059         };
00061 
00062 public:
00063     // -----------------------------------------------------------------------
00064     //  Constructors
00065     // -----------------------------------------------------------------------
00072     DOMRangeException();
00073 
00081     DOMRangeException(short code,
00082                       short messageCode,
00083                       MemoryManager*     const memoryManager);
00084 
00090     DOMRangeException(const DOMRangeException &other);
00092 
00093     // -----------------------------------------------------------------------
00094     //  Destructors
00095     // -----------------------------------------------------------------------
00102     virtual ~DOMRangeException();
00104 
00105 private:
00106     // -----------------------------------------------------------------------
00107     // Unimplemented constructors and operators
00108     // -----------------------------------------------------------------------
00109     DOMRangeException & operator = (const DOMRangeException &);
00110 };
00111 
00112 XERCES_CPP_NAMESPACE_END
00113 
00114 #endif
XQilla-2.3.0/docs/dom3-api/doxygen.png0000644000151400015140000000754611653571065014374 00000000000000‰PNG  IHDRh ;ˆØ-IDATxí]{XŒyÿ¾sZ%Ê”NF:¨´FåЪքbÝè@;~ÓŽÃ"DH‘ÚZ•ð–m_Œéè4ÄÙÚ!ë-‡2«U«Ce[Š"§š_ñÌ3óLSìõ¾ï¾öº|®««y>§ïý¹ïïá_ ™L†öþZ·¼ß¦ajëñ®¹L•oñúþ}«.Íë2Þãû$Zöå);*.d¥~Ûìß³wˆ—·'ˆâ0³Ëâþ@áû!ZZeÊÿÁÞͺwÓøÏÔÚ‰ù?ØO =\Lâ[òg²dxr0Ð —€¤Rrj·Jž€‘*í.WJN5¨äÉqÈMªÔ[mºÞ•’Sb58™Ä¼RB5½¥•’SRus[2<ÙÄ %·˜˜•²V'˜ê+%§$fv˜ØÄºR»«Kó$ ¡¥C 4ã+xº˜£½sQÙ}f¶ðÀ[²vôZ €ç6c}”½!,Lt×ï<ÂÅ«µ°dx†H)/ÎÙfí襧¥C«1¶v£ôº[~– ÏÑåÅ9%DÏDKgžrN}M9úY««3*/Îi謷%ÓU^œ#¶vôr'p²=]ÌÑ_§7®ßy„ìS¸ª½ëkÊaÉð´-/Î!E²vôâà902œíÁÉ–FæŸ*¸Å,ý­– O!1k>QÓÓ³¦°dx¦X:ûð¼=GÃÂD×ï<ÂþÃ'¸fvRªKó‚UZjbóièþ¤`èõýˆtº9cùœ‘xÕÚªV W­­°sžabóièw1ó1x%îæhŒ¹Þ¶¸9׉>oÕ®hkG¯~¥—Nl°sž"^™ÀdŽ2%sw…ø¨•¼W­­‹ìœ§D¸z¯àí W †Æç˜8c>‚í1”ô‡m·Bvêî«ÖÖ8܉ÞAˆZò þT…u—r­½ª´th9kÂÖRêåŸSfÛþ/d§–°‰¾äœ1kçb„A.ܸ@ø“+;:j ÛÚÑË«ôÒ‰|#­Ýp4i®â¨]¼â߯óV~éØÇŒ…xfv$Õ¥y| S[ö;BOK‡V“ÅßÖàÎÌa 4x0¶Ï:ÂßDN54>Çgœõxp÷ªo;Z:´¬œÃÉ”º€ÕÇðë™ïbÛ‡ªöü|Ñ^TŠ7=$4)L!Ü/åuü’#)9/rqÃ%îØÅï¬~a”çŽÅ-à¸poE ‚”®,|gŽ¥m /9/ŠsÃâ˜Ø|šœ±c Ó/åu¨ü Êë€P\…aÁÂ’ó¢‡1,¦¥Ó¢Ã;ueòyªKó\ä…°üÃ"7-K!3>õ2ÊËËamm åÚÈr7M.(~[2ÓÝÉ„Œ]©¨C<¿í»b9Ç[)v[~Ñ,_º@\|î8ËqÜ´{· Ð}QÞ”ugr7àÛÈJ]|Úe¤ïÚ`ƒ–­æçÿ¤à™4s5Ü+µÕÒ¡•©Æ\§áéãû¶Ù•ýxàJ,ûÌudùùs&@yŽõI…eD…Ÿ;ç8nZÁž={ʘfóQU|X ÞØÚ)ض˜"ÞtîVÜ-ÏwÐo¨ãç¢ý‰œöJy>¶6è°¹ ÌFrÊf¥ÑÍú’ KbÏà¼(!@~»ó³) F¹{€í€Ave'3£Hÿ£¦˜î»Íu @³¯Aò±¬$èj÷"s&û…½&ób~¶t”»w¢ÿ¼¼¥þŠ·öQÓ J~Iå âJÚö½˜Ÿ]=ÊÝ;=|S{ºû™Éç‘“nçÊÜ9ôË¿ÈõË„.{ù®‰Ü´`Œb³ßÅÊå ÅâÚž)†j\Þ€ÔΕ›ÞY_ÂE_¸â.gÚ0uõ‹‘Ÿ‰2ݪiDàWËÐÜX'ÖìkÀÌÿº©ü–ñqýòV¶gDO³¯Ý„¦âÁÔôçE 6È ä1cZŒ¦ÄÄ—n£¹±NXxú(¿] ±ãgL_ºM!ÓÐb4Ü+e´´Ê¤âŽdüƒç62[é£]Am­ž,b÷@Jáé£Õ„ÿð‘Ü_Ù,Wºˆr€‘®Îèr_g8ÕÕ&(ÁQAäÛ4·­Ÿò.«ö—¯­ajëAïghS–öÝFJËÛhheg©‹³;Lýcs é/¼RƒÈõËÄ¢ì,‘—¾84†íõ‰9™óõ:n–œ`‰²³Ä,o_ï~†6YIqaÐÑî¥vÊèã¸v>=V”E¹æXÞ¾5™é=uu›^À/ °A”eD䆸ÍX¹j®S¬‘#§Ï^Ëžç3œŒÇì-ÂÙ£[Ã@µövmæÏ ’X ÊÎÊW¤×vú9šÚúѽµõQ_{ͽ3žäW\ø¦æØ:p¤ajëeIÉ)tšâîŽåáܱ8Iû£>xødÆöEóöëd:ÛŒ4µõk¾OŽƒNI¼‰¨½q>m•á1!)[©›Vàb47ýa @æšṉ̃ p…%5Pþ~üä¾Z‚æ¦?| 3³•0DN  á}® Unû¬@ú® » 3¹ÌÁÃ'‹Tç(,©ÁÏ—ïÂÁÊ^.ŠM¤ÄA8a?šUÙ¾äJ<§à2S÷ þ~…@=hjë3-GÍÄ|ŸÈ8Y.¯—¨®]XRƒèËIT9X²A€›¿ž$ÚéÇÛÈõ™hIPvã!ÀvHÿ°}Úo)Ͷ‡8rŠßš ¶=…Ч*^÷˜éiEïŸÂ«8‘"<˜Ìö Ht™¶œ·"Б²æ–͘á¿Êx.üZ‹˜M!b~ƒé Ã!c ’bwÀ·zëqT\È L*a.ˆŒÙÁP7:Û*(FÁñøpáÁô8¶O@â¿5<å9•17>yö“1z¸a‡zs{/Q†9æ‘ ´j}S¹vYD*n]Í!rÐhyakÔj ™Ê„«úgúÍ‘ d¦©­_¾*llé]^&}ˆ˜¨ÍhnúÃÛpȨèí[¨ä.Y»µ7..ÐÔÖOŽÚ²ÆµÉX|Úeœ%¤ÈL%äL¿9e ‰Étå¼ÇO^ (ˆÛp 3U±%ßär ‡ŒJŽ ›§vÎ2éCÊ Äzá2SãfúÍ1êÃ]Ïõ™@ÝÈ™¼€ÄÜn’èÛp%®Ö"nËJR µß2GÛ+Z™Š[¥?’@„½[PèâÙcÐWKþÂÕZìÛó=’â×Q÷ŸšiøÏäôîÓ?yê¬E`3‡ª+Wá‡ý;ñìÉÃŽöîÓ¿fóæHŠÛÒ%¸x2!%#Mì?;p)î°™*à²u;p_zÉ%#M !pˆ‚WÇR†Š«phϦÝi‚Eª8ügFôîÓ?ÔÁíKÈïü²ëp)_+Ç©XÀPÅž‘&ˆ#jðÌí&q=˜n˜0ÚLí¬×n>Dá•\Ê¢á÷J[ts»I¢è5³)¼&~J ¤:Úè´µAB„î@‹PKÆ´×doCú)ñÑaSteLgÓ.㦶襩›Àÿ?MàÙ¿|Ö¸bÙšs+s’¤Ÿ¸†ÑtïÙ›À@€<öòyÓ¶_=ï ‡žok®Ô‡Û¶½ÚžŸ¿x¾Œª¢Ã=ä_C?ÝlÐßB™«WŠp·òœ‰ÙcK3=hh(b%ùÐ7u@}mEû»ÃtØxØØØâRÁ)ÔUÿ¢%“2™ ݺ)©Ø™¢;¸œŸnÝ{†®ÃÆÎ†‰¡î_2Ÿ´úªŠ ý‘ýLKϲַÆöEe÷¡A(ô¤ù%ž?iÀÓÆßÓ¸›`N·zýàëÑ,ñðÞo´w¯ÊNõ{elЧ‡òÉ«}ð·êq¥ì&ªKsñüÉÃän=>º`á°±³Ýÿ*q:½âht§¿Õw_Z”ÞòòÙ^š:cå¾nÝ{âùÓ†‹Ýº÷Ì`N£;‘×›Üj*ÿµ½¥å¥K¯Þ}^4?&ý=zi¡—¦zkõCcýPBht'×ÿÑ|UE‡ä1 ý;ž&5v›øßõëÛµ]@kS}ðÿpŽªª¢ÃâÕ¥y &þ>Ø{fÝ>Pð~ÛÿÞžk˜^œIEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMRangeException_8hpp.html0000644000151400015140000000746211653571066017307 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMRangeException.hpp File Reference

#include <xercesc/dom/DOMException.hpp>
Include dependency graph for DOMRangeException.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  xercesc::DOMRangeException
 Range operations may throw a DOMRangeException as specified in their method descriptions. More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/inherit_graph_6.map0000644000151400015140000000026511653571066015750 00000000000000 XQilla-2.3.0/docs/dom3-api/globals_defs.html0000644000151400015140000000526511653571065015517 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
 
XQilla-2.3.0/docs/dom3-api/functions_0x6c.html0000644000151400015140000001313611653571065015737 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- l -

XQilla-2.3.0/docs/dom3-api/XQillaNSResolver_8hpp.html0000644000151400015140000000757111653571066017212 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

XQillaNSResolver.hpp File Reference

#include <xqilla/framework/XQillaExport.hpp>
#include <xercesc/dom/DOMXPathNSResolver.hpp>
Include dependency graph for XQillaNSResolver.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  XQillaNSResolver
 The XQillaNSResolver interface extends the DOMXPathNSResolver providing the ability to add additional namespace bindings. More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/inherit_graph_23.md50000644000151400015140000000004011653571065015725 000000000000008107f258b385a66951bb661f500c0a8eXQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMXPathNamespace__inherit__graph.png0000644000151400015140000001150011653571066024346 00000000000000‰PNG  IHDRàuØäzFbKGDÿÿÿ ½§“õIDATxœíyPÇÛÇ{aAp‘sE%€X$Qƒ‚GPBQÎDD– ˜R)£RŠ€”S‰ ñØŠH‚(—rDc)¢‘[Èî ,»ºÇ¼tj²aw9"¯;òëÏ_=Ýý<ýtÏ—îžÙa†„a@ ˆŠœ¬@ F Ah@„ AhȲmÞÁÁA¶ Ƥ´´T†­“d{O"‘V¬X1gÎÆ€F{{{MMŒ"sææænܸQ†1 ¤‘——çåå%[… =(‚Ð " (‚Ð " (‚Ð N$æÍ›çïïß××'ZÍfÓh´Å‹«ªª~öÙgÇçóù¸­±±ñˆ+åµk×’H¤ÖÖVXÁÓÓS´Bkk+‰DglªL@@'‡ªªªîîŽÌÌÌeË–±X,X488øé§Ÿ>xðàĉõõõ‘‘‘ÙÙÙVxùòeSSîŠÉdVTTˆ:/((ÈÍÍý`}!H “ÃìÙ³uttôõõmmm‹ŠŠ ãããaÑ‘#GfÏž]VVæäädbb²aÆû÷ï¿|ù233V°··ÏÏÏÇ]•””ØØØˆ:Þ¹sgOOÏëq º@KJJôõõ™L&àòåË&&&l6Àãñh4š¶¶¶––Fãñxp-+++300(//?|ø°ÁìÙ³ýýýñÉLÜ píÚ5 %%%CCÃK—.ø|¾DsÑår”¥“D"mß¾ýÆð0++ëСCòòòx–••===óòòðE¼  ÀÃÃCÔáÞ½{MMMƒ‚‚ÄX¬o¾ùFSS“J¥†……q¹\@cbb¢ªªjeeU[[;Jß?0™ÈÍÍ½Ž¿¿@@@OO¶¶vmm-ÌyòDGGçáÇЭ²²r?î&ž>}:}úôÌÌL Ã`O¡;;»çÏŸ777/Z´(***..NKK«°°°««ëÆzzz°²xßÇ<;p_1fµÿWdÝü8Êd2©Tª……ETTžijjÚÝÝ Ó¥¥¥K–,§­¹¹ð ÂÒÇãiq+ƒ¡  pêÔ)&“) 4óQz1QVWWkjjâ¶;wŒÄ0,++ËÁÁAÔ'žHHH˜9sæ«W¯p¾{÷N^^þ÷߇> ŒŒLLL~úé'¼¡ .ÀÊâ}½S(6>bväÈyyùÞÞ^} uÓÞÞàp8Ðgss³’’ÒôéÓñ†>|+KìûèA D߃ÚÛÛ“’’ìííCCCñLMMM\L&³¦¦æ+((ôôô^¾| s;&ÍŠÃá…Âüü|ƒèââÂ`0¤™ Ã’““á¡Ï‘#Gðkv›Í>qâ„““ž³jÕªÁÁÁ{÷î•––ºººJt+''—™™YYY™––s´µµåååÛÚÚàáóçÏõõõçÍ›'zOàÑ£G£ёɟkööö?üðƒÁÐÑÑ)))ù»wïöðð€7h–/_¾k×.ÑÙáÇ-,,ZZZZZZ¬¬¬¶mÛ&ÍŠÃá())ôõõ¥¥¥)))q8iæ£ìAñÛLåååëׯ§R©, –¾yófÁ‚666t:ýéÓ§………fffVVV\.™ wìØ±páB[[[Ü爒œœ /Îà¡···][[[KK‹™™Ù¡C‡´´´Š‹‹»»»étº¡¡!¬,Þ÷1ÏfPY7?–@/^ "]]]ƒaØÀÀÀ·ß~«¡¡A¡P‚‚‚Øl¶¨@¹\nXX˜žžžššÚæÍ›™L&Ì·Â0,77÷“O>QTT455½zõê(æ¢Mˆ¦EÿàçÌ™ããã#ºÁ0lhh(44tÑ¢EÊÊÊfffGÆm¡þÊËËgΜ‘?B B¡>å  †ŸŸ…BÑÕÕÝ»w/‡Ãáóù111FFF***+W®„3¥´¾ŠžEH=Š@Œ(‚Ð " (‚Ð " (‚Ð " (‚Ð N&ÌÎN¦¬£˜RÈþ—$sssmmmÆ0‰ô÷k45ûeÈäÐÛÛ Ÿê’a 2~y˜§§§l˜\ÚÚ($ÉØX0vÕ SSSÙÆ ãt*ñÇ]vv1€²²ý êÊ:œ)ÚƒN%%d²™,íZ£¬c™: N†]¾\Ëç ù|ÁåË2~eáT tr¨«{ùúõL÷öÔ׿”i8S$ÐÉ¡¸¸AAáï,VP/*z(Ûx¦ H “Ÿ/,,¬çñþ¾xçñ……u|¾P¶QM @'{÷ž¾yÃÍyó†[YùLVñL%@'¢¢z2ù_#I&“ ëeÏT ô}áryׯ7ñùÿº9Ïç ¯_oâr?’×Ë$Ð÷åöíÇ\._<ŸËå••=þðñL1@ß—+Wêäå%¼EL^žtå Zåß$Ð÷bpûë¯H¼`çó…ee‡†Þ~ø¨¦H ïÞ‚ß]‡ÇÐéÍ2ž©zXä½`2ÙÿÜ`úþûBÀ±cðœ™3•44TdÙTAÆÛ}ìhh¨ˆêOEE0w.EvM5Ð 4H BƒŠ 4H BƒŠ 4H BƒŠ 4H BƒŠ 4H BƒŠ 4H BƒŠ 4H BƒŠ 4H BƒŠ 4H BƒŠ 4H BƒŠ 4H BƒŠ 4H BƒŠ 4H BƒŠ 4H BƒŠ 4H BƒŠ 4H Bó¯7,·µµÝ¾}[†Ñ|ìäçw<=õeÈGŒ½½½¡¡á?ǘ¹¹¹² l* /¯&/¯&ë(>nrssE5)áà¿ýöÛ‡ ØÚÚŽÈA{P¡AE$P¡AE$P¡AEš©)P[6mÚÍb±D+p¹Ü”””ÀÀÀuëÖmß¾=;;[ à¶¾¾¾#¾nkkÛÙÙùìÙ3;;»òòr¼¨²²ÒÁÁ¡­­mD»ÎÎΑ‘‘ÝÝÝã¹³³S<3**J4˜ÎÎNñ{1S˜©)P@RRÒ•+WòóóÃÃÃÙlvPPÐÐÐ,~òäIpppZZšOiiiXX˜Pø÷G‹{zzž?Ž»ljj‚iccc__ßÄÄDèÍfÇÇÇà?~Àv 0 ;v옴»»»×¯_?fGîܹó¿|gzÊ T]]}Ö¬YšššK—.ýá‡tuuóóóaÑÅ‹ÕÕÕãââ>ÿüs*•ºzõê”””žž:+XZZŠÎ‘UUUK–,ÁýüüÔÔÔRSSiii eÓ¦M#Ú¥P(FFFaaa=–¡P(³#...§OŸf0‚)Á„ZUUåáá188(++óóóãr¹>ŸŸ’’âæææææ–’’ÂçóábÔÐÐàååÕØØ˜™™éåååêêOfâV°‰ÀÀ@GGGooï[·nDsÑõn”µD"}ýõ×555ð°´´Ôßß_N+))mÚ´©´´®Y³¦¼¼_XïܹcccƒW&“Ét:=;;›N§GDDÉ’¿É ›€›‡êêêmÛ¶999¹»»çäävìØذáŸO#×ÕÕùøø¸¸¸dgg㙞žž±±±âߥ÷ °µµ¥Óé®®®999·nÝÚ¼y³³³óùóç'4æp<+++ýüüÜÜÜy<žÄF¥‰ M” ô‹/¾°´´>žF£ÙØØˆÎ¯YYYúú#·#“ɧNâp8ÆÆÆÒ‚¤P(‰$^äææVQQ³gÏž1}*++à #ÒqŽ9,ŇÝÀÀ ¯¯Ob£ã?¹Ò:> ÿE ¯_¿.**²´´<{öì`¦ššZ||<<7pý»2@¡PzzzàjØÚÚZSSãëë+ÑêíÛ·B¡0**ŠÏç—••8p ¸¸Xšù8Á0¬¤¤dÅŠðÐÞÞþâÅ‹K—.Å·¡\.÷òåË¢£inn><<ÜÒÒRWW*êí¯¿þJLLܾ}»……E@@@ll¬ø;‚·oßFEEEEE­\¹’ÇãáWc#(M¼(<<|Ë–-ׯ_ŸOqÆ9æ°rGG¼AÑÞÞN¡P$6:þ“;ÎE™ðaØÉ“'7lØpðàÁúúúªª*˜¿zõêôôôÞÞÞ¶¶¶ýû÷ã=„8::fdd¼xñâÅ‹ ½½½Ò¬H$F«¨¨`³Ù<L&O›6Mš9\_ÄÓ‹Å`0úûû›šš<ØÝݽqãFXÀd2÷íÛwÿþýŽŽŽ»w„hjjŠÞô«|\\ÜÂ… ÕÕÕE»khh·7nÔÐÐøñÇG4ÇçóÉdò»wïàV ¿´çp8ãy]]ݼ¼¼1}ŽÎ8ÇVNJJêìì|òäIFF†ƒƒƒÄFÇrÇÙSQ&<ƒ³X¬Í›7“Éä½{÷ÆÅÅ™››«ªª&%%mÛ¶D"Y[[÷÷÷ãV>>>\.—F£q¹Ü+VÃ|q+EEÅÈÈÈÔÔÔׯ_ëéé>|XQQQš9‹Å:uêÔŠh°k×.˜ÐÒÒ²°°HKK×eeå´´´ÌÌÌ”””®®.]]];;;OOOÑžÚÚÚ^½zÕÍÍM4óÖ­[uuuçÏŸ‡³™L¦Ñh;vì°¶¶¶¶¶–6h3fÌ 9zôèôéÓ½½½íììöïß_PP`nnîîî~óæÍq¾‹‹ËÝ»wëêê¤ù,**ÓÉ8ÇV¶·· år¹vvv>>>ŠŠŠâæååó䎳›¢üë_>òòò¼¼¼þ—o #p:;;}}}?°lmmsssñµLáõˆ©(B2***...²Ž !uuõ}ûöÉ: $P±AE$P¡AE$P¡‘ðKþk/!s$Tô%B¶ÄŸÓF ˆÚƒ" (‚Ð " (‚Ðü©È4¡ujIEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMXPathEvaluator_8hpp.html0000644000151400015140000000653411653571066017302 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMXPathEvaluator.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <xercesc/dom/DOMXPathResult.hpp>
Include dependency graph for DOMXPathEvaluator.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMXPathEvaluator
 The evaluation of XPath expressions is provided by DOMXPathEvaluator. More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/dom-basic_8cpp-example.html0000644000151400015140000000743611653571065017316 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

dom-basic.cpp

This example executes a simple XQuery expression ("1 to 100"), which returns the numbers from 1 to 100 inclusive.

#include <iostream>
#include <xercesc/dom/DOM.hpp>
#include <xqilla/xqilla-dom3.hpp>

XERCES_CPP_NAMESPACE_USE;

int main(int argc, char *argv[]) {
  // Initialise Xerces-C and XQilla using XQillaPlatformUtils
  XQillaPlatformUtils::initialize();

  // Get the XQilla DOMImplementation object
  DOMImplementation *xqillaImplementation =
    DOMImplementationRegistry::getDOMImplementation(X("XPath2 3.0"));

  // Make sure the DOM objects are released before we call XQillaPlatformUtils::terminate()
  {
    // Create a DOMDocument
    AutoRelease<DOMDocument> document(xqillaImplementation->createDocument());

    // Parse an XPath 2 expression
    AutoRelease<DOMXPathExpression> expression(document->createExpression(X("1 to 100"), 0));

    // Execute the query
    AutoRelease<DOMXPathResult> result(expression->evaluate(0, DOMXPathResult::ITERATOR_RESULT_TYPE, 0));

    // Iterate over the results, printing them
    while(result->iterateNext()) {
      std::cout << result->getIntegerValue() << std::endl;
    }
  }

  // Terminate Xerces-C and XQilla using XQillaPlatformUtils
  XQillaPlatformUtils::terminate();

  return 0;
}
XQilla-2.3.0/docs/dom3-api/DOMLSSerializer_8hpp__incl.map0000644000151400015140000000003511653571065017705 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMNode_8hpp__incl.png0000644000151400015140000000753311653571065016243 00000000000000‰PNG  IHDRÅuq²ÒbKGDÿÿÿ ½§“IDATxœíkPS×Ú€WBÀ TD$1Å.^Ф(çˆ3 ‚bGQ@ XÇ¡rñ Χ(LgZl©ƒ8maJªr9R´ÖKkmËT°V Hm![@Ë!@4A¹d?Öùö·%ÒΖ$ú>¿VÞ½.ïÚ>Yk›°A   ¦±ž+À'€NÀ'€NÀ'€NXÆNeeeýðÃÆÎâ9¡ªªÊ¸ ß'±XÜØØèééiìDÌ›þþþ––cga>!„<==322Œ…ySSSóÎ;ï; ¸~h|è|è|è|èÄl| ¤°mÛ¶ìììj…ÑÑQ‘Hœ˜˜XVV699I¶‰‰™rç;---00P"‘à ™™™Ô ‰$00ÐÀÜ ¯LŽø¼bŸH~~>ÇS«Õ]]]—.]Š/**²µµEŒŒ$%%ÙÛÛ'$$ðùü?ÿü³°°°¡¡!77—Éd"„z{{ïß¿ïîR*•ÔÎoܸQ]]½víÚ™Ÿ×ó„Ù¬O!‡ãààÀår—-[–••Åãñ.\¸€9s†Ãáœ8qbÅŠÀÏÏO$õöö^»v Wðññ©©©!»º}û¶··7µó?üP.—ÏÔlžOÌÉ'* #44´¶¶¿¬ªªŠÅK†ÍfoÛ¶¼ÿPSSCîh7nÜX³f µÃ¨¨(—ÜÜ\Í/„ }ðÁaaaQQQcccjµúóÏ?ß±cGppprrò½{÷p͉‰ ‘H.‰&&&43ohhˆŽŽ )++Cÿ·WÞºukÇŽáááyyyãããZƒ4œµg¹ú„===¡¡¡!¹\Nîe$îîtéR•Juÿþ}„ÐðððÝ»wW­ZE­Ìd2ÓÓÓþùço¿ývJ?}ô‘L&‰DÇŽ»sçιsç.]ºtþüùøøøÒÒÒ;vˆD"\óâÅ‹R©ôÓO?ÍÍͽ{÷nqq±fÚuuu§N:tèÐéÓ§q°¼¼<;;ûý÷߯««;{ö¬ž ‰cÆ>M ƒÁP«Õ¸Ìd2ýýýñ–÷ÓO?yyyÍ™3gJ}@Ÿ——×ßßO'&&®_¿¾wï^çêêºk×®ªªªÊÊÊÄÄD???GGG__ßøøx\ùÚµkûöísrrruuMHH¨¯¯×ÌêÍ7ßœ={öêÕ«BJ¥“’’Á’%KÞzë-rMÕ4qÌØ§îîn>Ÿ²µµupphooŸR¡½½}áÂ…äKrËÓÜìHÂÃÃ=<lll<|ø°T*ݺu+>´sçN…B±ÿþúúúîîî›7o&%%q¹Ü°°0²9ÞòNœ8±dɇ£k—””ôÅ_à—,+00ðã?–J¥øcˆ   ÐÐЂ‚‚[·nÉåòúúú¢¢"\ÙÏÏïÔ©S}}}<8tèPyy9BèêÕ«ÃÃÃú§–ŸŸ/‘H~ÿý÷Ó§O¯_¿^OÐÄ1§ÏŸ’““qÁÉÉI(ž>^PPðèÑ#77·Ã‡ïÙ³!—ŸŸ¿{÷nƒáï:~ü¸··7™ªV‚‚‚80::ºnݺèèh¼»M þS6ã0Œþ{©­[·Êd²öûO‰$&&¦ººzÚ ~ð÷ŸŒþ¯iNû`ú€OFÆÆÆ&$$Ä Y>‡³ÿ~C‚føÐ øÐ øÐ øÐ øÐ øЉIÜoillLMM5væB¡0v ™‚OäwL™††y®®Fˆ>|||Œ‚ Ü¿3 øüÿ‰v††zO_õÅ®Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:Ÿ:¿O§ÿ»ôÞ½ÿº¦D2àà`cmýß§Ÿ±XÿùO§ó!z/,Æÿû™¦‰»û¼òò»Ô÷šR©¢™´ûvÞxÃ!-fE±XÛ¶­ÐzŸ´³`£P8_Û£~Ñä¤zË–å3ž‘y>é$2ò_SÏ“ÉðñYÀçÃf§ðI'aaË5ÿ³Â`0"#ÿe”|ÌðI'\®­¯¯»æµyókFÉÇ,ŸôõOêeaÁôóóppÐ÷¤òðIÁÁBêú¤Vÿ4b>¦ø¤—^b¯[÷*‹õß³dee±q£Ð¸)™8àÓ4¼ñ†ZM „X,‹õë—ΞmeìŒLðiÖ¯÷d³-B“““Æ€“‰>MìY¬ ¼ dmm°ØØé˜:OÝ¿S©T&òX>“"0ð—/ÿ¼~ý¢Gú‹ÉammmooO¾|Ê'¥RÙÚÚ:ã)™:vvê—^²zõU[89šÌ;W§O˜€€€™KÇLØ»—سg-“©ýñ Ëo¿ý6%×O‘2ød––ÆNÁ<Ÿ:Ÿ:Ÿ:Ÿ:1{Ÿ:;;wíÚ5mµöövƒA-P›ÿòË/,ëÂ… d¼¢¢ÂÊÊJ,?‹œ§À ðÊ+¯ÄÆÆÊd2=õ ‚ˆ‰‰±µµ5¼ÿööv:2³÷©¼¼|Ë–-Z=xð€Ëåâ2‡ÃIKKÓÕ|Ù²eo¿ývJJÊÀÀBèñãÇ{öìÉÈÈðòòzv™S¹}û¶T*íîî...\¾|9ÎD+===eee---3“Û_ƒ Ð××W]]M˜›6mÑz¨­­mÊ5ƒdó'Ož,]º4>>ž ˆÄÄDŸ±±±g–õS „ÚÚÚÈ—jµÚßßÿÈ‘#ºêk—áýÓHsssss35ò—×§ÊÊÊùóçãÛ|çÎ[¸páðð0Bh||üàÁƒóæÍsrr:xðàøø8ÞY¾ÿþ{—šššŒŒ —¹sçÆÆÆ’o>ÍV¡+W®…B6›íêêZZZŠš˜˜ÐÚüáÇ666ÖÖÖÔ]Œ,¯\¹!äììŒ4¶¹)ÍBVVV%%%EEEÙÙÙÅÅÅ%%%–––º’¤qjš0ŒÄÄÄ«W¯êê‡:/ûüî»ïÜÝÝííí³³³É³QQQ±hÑ"''§”””'Ožh ª U.×§ØØØ;wöööΛ7¯®®;ÑÙÙÙÔÔ´|ùòôôtü6Ú¸qãõë×333===›ššÄb±¯¯ojjª®VCCC³f͉DR©´°°Åb åäähm^TTTZZJ<ý–%ËÓÉæ$ééé¡£GRƒÏtj„¶õãÎ;Gÿèø¨®>© „6oÞ<88xéÒ%ü.Â=¼þúë­­­µµµîîî™™™ZƒúMÐ\ŸþŽO …B …Bêx‹/–J¥¸\UUåííókjj"bÑ¢E—/_ÆG[ZZȲf+¹\niiyüøq…B¡V«•Jåä䤮ær¹œø»>‘Í1jµ:,,ÌÂÂ"&&†:ßg:5b:ŸtŽ#ºú¤‚ª©©!brrEÍŸ ˆóçÏ»»»k z¡Ç'‚ Þ}÷] ‹¾¾>2Âf³©ËžÎ_…°Ùl±X¬Ùf+‚ ~üñÇÈÈH??¿¯¿þZWs¥RŠËÔSŒ¿@Lçµ9¦´´ÔÎÎîÆl6»¼¼|f¦FhóéìÙ³>>>úG'+kí“ B¨µµ•:îA¥Rá`cc#›ÍÖÔì ×O¡®®®üüü   A.—Kž…BQ[[‹ãø*„Ïçwttàȯ¿þúÞ{ïéj¥R©Ôjõ… äry\\\HHˆ\.×Úü›o¾Ù°a5±‰‰ „D"1dSš÷ôô¤¤¤äääøûûgdd$$$5¯BX „Pkk+ŸÏ×ü På2d}šœœ ÊÊÊ’ËåÎÎΕ••8ž’’ÙÑÑÑØØèë뛜œL}edd…B±X,‹W­Zµ{÷n]­T*›Í¾xñ¢L&;yò$›ÍV©TZ›ÇÄÄH$ÜþÀ¦°°ðñãÇááሲ)•JBÛúDm®V«7oÞ¼fͼYŒ …ÂíÛ·ÏÀÔ‚@”Ï jjjÂÂÂÁÀÀ€!£ëêóÔ©Sdˆ²þ!ÊúØÖÖV__ïááqäÈ­Aý2аßååå½öÚkx©ÿòË/y<¾ܵk—½½½££c||üðð0uÚ£££©©©|>ßÎÎnûöí …Ç5[qþüy777++«Å‹WTThm>66LMìèÑ£ÇÍÍ­¢¢;>>¾zõj[[[Bç)ÍKJJfÍšõÇ‘úúz&“yñâÅg=5âéŸ ¿üòËÑÑÑÔ ý£ëésŠCÔ2îáôéÓ ,àr¹{÷îU©TZƒúeÐôé©¿ÿÔßßßÒÒß§{îioo÷ð𘢲֠~ð÷é<==ɈÙ>˜àÓ‹Èœ9s þU`¿þ>°ßÏð  ð  ð  ð  -¿îéé™ù<sdtttÊíj->Á¯ôÙâ XQilla DOM3 API Documentation SourceForge.net Logo

DOMLSSerializerFilter.hpp File Reference

#include <xercesc/dom/DOMNodeFilter.hpp>
Include dependency graph for DOMLSSerializerFilter.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMLSSerializerFilter

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/classXPath2Result-members.html0000644000151400015140000001470411653571065020054 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

XPath2Result Member List

This is the complete list of members for XPath2Result, including all inherited members.
FIRST_RESULT enum valueXPath2Result
getBooleanValue() const =0XPath2Result [pure virtual]
getIntegerValue() const =0XPath2Result [pure virtual]
getInvalidIteratorState() const =0XPath2Result [pure virtual]
getNodeValue() const =0XPath2Result [pure virtual]
getNumberValue() const =0XPath2Result [pure virtual]
getResultType() const =0XPath2Result [pure virtual]
getSnapshotLength() const =0XPath2Result [pure virtual]
getStringValue() const =0XPath2Result [pure virtual]
getTypeInfo() const =0XPath2Result [pure virtual]
isNode() const =0XPath2Result [pure virtual]
iterateNext()=0XPath2Result [pure virtual]
ITERATOR_RESULT enum valueXPath2Result
release()=0XPath2Result [pure virtual]
ResultType enum nameXPath2Result
SNAPSHOT_RESULT enum valueXPath2Result
snapshotItem(size_t)=0XPath2Result [pure virtual]
XPath2Result()XPath2Result [inline, protected]
~XPath2Result()XPath2Result [inline, virtual]
XQilla-2.3.0/docs/dom3-api/DOMDocumentRange_8hpp__incl.md50000644000151400015140000000004011653571065017774 00000000000000efa4769bb9b4c9252c0443b6866d8d43XQilla-2.3.0/docs/dom3-api/functions_0x63.html0000644000151400015140000002646111653571065015664 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- c -

XQilla-2.3.0/docs/dom3-api/DOMError_8hpp_source.html0000644000151400015140000002522411653571065017040 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMError.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMError.hpp 671894 2008-06-26 13:29:21Z borisk $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMERROR_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMERROR_HPP
00024 
00025 #include <xercesc/util/XercesDefs.hpp>
00026 
00027 XERCES_CPP_NAMESPACE_BEGIN
00028 
00029 class DOMLocator;
00030 
00031 
00039 class CDOM_EXPORT DOMError
00040 {
00041 protected:
00042     // -----------------------------------------------------------------------
00043     //  Hidden constructors
00044     // -----------------------------------------------------------------------
00047     DOMError() {};
00049 
00050 private:
00051     // -----------------------------------------------------------------------
00052     // Unimplemented constructors and operators
00053     // -----------------------------------------------------------------------
00056     DOMError(const DOMError &);
00057     DOMError & operator = (const DOMError &);
00059 
00060 public:
00061     // -----------------------------------------------------------------------
00062     //  All constructors are hidden, just the destructor is available
00063     // -----------------------------------------------------------------------
00070     virtual ~DOMError() {};
00072 
00073     // -----------------------------------------------------------------------
00074     //  Class types
00075     // -----------------------------------------------------------------------
00099     enum ErrorSeverity
00100     {
00101         DOM_SEVERITY_WARNING     = 1,
00102         DOM_SEVERITY_ERROR       = 2,
00103         DOM_SEVERITY_FATAL_ERROR = 3
00104     };
00106 
00107 
00108     // -----------------------------------------------------------------------
00109     //  Virtual DOMError interface
00110     // -----------------------------------------------------------------------
00113     // -----------------------------------------------------------------------
00114     //  Getter methods
00115     // -----------------------------------------------------------------------
00122     virtual ErrorSeverity getSeverity() const = 0;
00123 
00129     virtual const XMLCh* getMessage() const = 0;
00130 
00136     virtual DOMLocator* getLocation() const = 0;
00137 
00143     virtual void* getRelatedException() const = 0;
00144 
00159     virtual const XMLCh* getType() const = 0;
00160 
00166     virtual void* getRelatedData() const = 0;
00168 
00169 };
00170 
00171 XERCES_CPP_NAMESPACE_END
00172 
00173 #endif
XQilla-2.3.0/docs/dom3-api/inherit_graph_7.md50000644000151400015140000000004011653571065015647 00000000000000b0ebf2ef09a4f6337ffb887a4551157aXQilla-2.3.0/docs/dom3-api/DOMXPathNamespace_8hpp__incl.png0000644000151400015140000001170411653571065020212 00000000000000‰PNG  IHDRÅuq²ÒbKGDÿÿÿ ½§“yIDATxœí¾Ê\¿~øØžN§GEEž8q¢°°0**ŠN'î CÀ•´´´tݺuîîî>>>'Ožlذ°téR¼~YYY@@€§§ç‰'p£ŸŸßøñãããã•?Sö pqq),, öòò:yòäåË—W®\éáá‘™™ +tww§¤¤x{{{{{§¤¤twwnݺ²`ÁÿË—/ƒÿ,¬%%%«V­òööNJJêêê" *“ɲ²²–/_îå勯¤Pè2iPU™ Ê®ÇÍÌÌíííB¡Íf+T`³Ùµµµp{Ê”)‰.yb±øÁƒÄÊVVVË—/ÏÈÈ š8q"±H*•J$’ŽŽŽ†††Ã‡[[[ëêêvttÄÄÄXZZæä䄇‡§§§‹D¢~ø——‡·½sçNzzúöíÛ322ð©KMM-**êþýû¿þú+1©OXtÿþý#GŽ„††¦§§—––=z4<<<;;úäñx 555>>þÁƒYYYR©”ËåzyyýôÓO«V­úöÛo¥R)t•ŸŸ»ÿþ;wÑÓÓKHH€¢‡«ÿÛ·oår9—Ëíîî¾zõêŽ;òóóa庺:xëúêÕ+&“I”Éd666Âu¿ººúöíÛ¤úØe… =ûËÀ×;‘H$ ›››?~¼sçN@°lÙ2XÜÒÒ²uëÖ»wïÖÕÕݸq#<<ÜÈȈx÷—¼C‡ÙØØèëëãv Ãâãã-,,<<<Ë–-300øî»ïzN¦«««»»›N§wvvÂËü¦O"‘ô±G&&&ááá§OŸîÕgÏ8::¦§§755ÕÔÔlß¾=??ŸF£q8œââb±XÜÕÕE§Óñõ.99¹¾¾þÙ³gnnn¤A,X‘‘ñâÅ‹/^$&&655© ((( ]ë‰(íÁØ_>?mܸn°X,;;»´´4|¾ÕÖÖNKKËÊÊJIIihh011quuõóóÓÐÐ zpqq9þ¼··7Ñxùòå²²²ÌÌLxbÑét‡³aÃ''''''UÉŒ92<<|ïÞ½ZZZþþþ®®®Û·oçñxS§Nõññ¹téR;åééyãÆ²²2U>Ï;׫“äääuëÖÑh4''§°°0MMÍèèèÔÔÔׯ_›ššîÚµKSSVž?þ¶mÛ¤R©««k@@€¦¦¦rÐÓ§OK¥R‡#•JgÏž¦*ààÁƒÓ§O']ûp‚ÂÕMÁØÇS€¦|“L£ÑvíÚ…¾ú§©¯¯ |ÏRIƒ,—ÜÜ\|Q‚ ÷w*Az4ttt<==‡BP 3Az4ôõõ·nÝ:‚R˜ Ò‚JžT‚ô„ ¤'• =!¨é A%äï[²³³ñ×¢Dß!Ñ“ŸŸßûÏcˆSVflañ—¡¡t°BXXXŒ7NÁHòþ¡Œ©é–””àÅ‹§÷^õÃ]?!¨é A%HO*AzBP Ò‚JžT‚ô„ ¤'• =!¨é A%HO*AzBP Ò‚JžT‚ô„ ¤'• =!¨é A%HO*AzBP Ò‚JžT‚ô„ ¤'• =!¨é A%HO*AzBP Ò‚JžT‚ô„ ¤'• =!¨ý:r¾ü2û_ÿà»õõ"CC-­ÿÞ®þã!&&ú*Z¸Pö{¯ÿc°ÙÆùùˆçZ[›„XŠÄD ZïÈYºÔò‡¥ÓÕW¬øô=ç3\@z"ÇÜœig7–ôç†e2¹—×Ì÷žÑðéI%¾¾Ÿ¨«+ŽšÍÞÞÜÔ-vä =©dÉ’™¤?†ëëûÉ ä3,@zR‰‘ÑÈY³ØÊSÔçŸO”|†HO=áç÷1qŠRWWst´44ìé§Ã?pžzbÑ";âü$—c>>b>C¤§žÐÕe¸ºN¦Óÿ=Jššê Ú nJC¤§^XºÔ^.Çtºº›ÛmmÍÁÎhHƒôÔ nn¶ †@&“ùøØv:C¤§^1‚îî>•FZZšÎΓ;¡Î;ïï+¡Œ‹Ëļ¼ûnnÖþùz°sŠhiiÁíwôTYY9ù uôô人š“'DãCÊäÉ“ÉõËX,Ö{Oi¨óÕW؆ ÿ§¦Fþ†øC†ÏçwÑõSŸ sFbê HO}BCC}°S =!¨é A%HO*AzBPÉðÖSmmíêÕ«ŒÕÕÕ4Òuûï–F`„ AAAoÞ¼!Ö‹ÅgÚ´iºººŸ|òÉþýû»»»aF³´´Tø"oáÂ…4­ººVðóó#VèWæ}¯ŒG| o=åçç{yyý£noݺ%êêê²²²Z[[gΜ)‰`Q[[ÛÇ|ï޽ܿ?::úĉnnn2™ VxùòåãÇq·---ÅÅÅÄ@</77—òüŒÀµkךšš°áƒ‡‡GGG‡‚±ªªJ¡_v ¨ªªÂír¹ÜÉÉ)&&îFDD8::vwwãÚÛÛ'L˜žžÛº»»ïر/=vìØÂ… qŸ€°°0CCC@0€Ìû^Y¡Ô¢ ™þÍO.\;vlKK àÔ©SVVVb±ÐÕÕÅápŒY,‡ÃéêꂳñÕ«WÇÏçówíÚ5~üøÑ£Gáç·r+ÀÅ‹íìì †……Evv6 »»›´yss³ŽŽŽ–––L&‹‹‹³²²ÒÕÕupp¸sç¬ ‰¾øâ ###33³ˆˆ©T  Ñh™™™666£Gþæ›o²³³'Nœ¨§§·sçN·ÊݧÑhëׯ/((€»999111êêÿ}4¥££ÃáprrrடŸßéÓ§±ÿ¬h<Ï××—èpË–-“&M Å”>TWN^U7I‡QË—/³ÙlƒØØXðŸµòüùóÖÖÖ,kÓ¦Moß¾%5ö¬zÐ)AAAÁÁÁÆÆÆwîÜÆøøøÔÖÖ–——Ïœ93** ž= .üí·ß¸\®­­myyyEEŬY³"""Tµjoo1bDJJŠ@ 8zô(Nooo‹‹#mž™™™aØ¡C‡X,V^^^CCCAA©©)ìW@@€««ëóçÏËË˧L™Âåráa[¹rekkkFF`Ù²e­­­©©©€ææf¢[Œì̾wïž¾¾>†að¤zóæÂø”””öϞ=3fÌÇ1 ‰DÚÚÚÍÍÍ€0?UUUUVVjiieeeaïN9ÊÉ«ê¦ò0*¤øüóÏ[[[Ïž= » -X° ²²òöíÛl6›Ëå’{ƒ²fú­§––333;;;b°I“&á“vQQÑôéÓarååå†Y[[çååÁÒ§OŸâÛÊ­„B¡††ÆÁƒ[ZZäry[[›L&SÕÜÇÇG(bfeeuìØ1<™üÐÙÙ©®®þûï¿Cc^^›Í†ƒûàÁ Ã:;;¶áaÆÝbÒSii©‘‘ÞöË/¿ŒŽŽÆ0,''ÇÍÍèßHLL5jTmm-®'ÒäI»I:Œ )ø|>†a𮪪Šxt0 ËÍÍe³Ù¤F¬7þ®ž0 Û½{·ºº:±&ƒÁ Îyzzz0¹ÎÎNXZQQ¡ìG¹†a7oÞôõõÕÑÑqtt¼té’ªæmmm‹/†ÛZZZ=‹>|xõê@"‘@cyy9ƒÁÀÞ•ˆò6Ñ-F¦§“'OÚÛÛÃí1cÆ)$väÈ‘Ï>û oËçóÙl¶\.÷òòJMMÅÈô$“ÉæÍ›'(ÒäI»©j‰*++‰=‚G÷ÿøñcƒAjÄzão]?Á㔜œ<þümÛ¶áF###|Ü[ZZnß¾ íSSÓ—/_BË£GöíÛ§ª•D"‘ËågΜ …!!!žžžB¡´ù/¿üâîî&L ÞF=yò`ll¬®®^SSÏŸ?;vl¯½#ºUÊÅÃÃîìÞ½¿›ˆÅâ=Ì;·­­íæÍ›EEEªnEÕÔÔ²²²JJJÒÒÒ …4yÒnÕƒO„ôÉ ²²®žªŒý ­)#“ÉæÏŸ¿gÏ¡P8f̘ .@û¦M›|}}áíñ¬Y³6nÜH¼صk—]EEEEE…ƒƒÃºuëTµ’H$ ƒÇã½yó&--Á`H$ÒæõõõÐObb"‹ÅÊÏÏ………0´¿¿¿««kMMMEE…­­-¼/=ÎOD·Ðˆ?/àóùK–,133‰D°ô¯¿þ²¶¶ž7o^aaaeee^^ž­­­ƒƒƒT*%:ß°aƒ‹‹‹BPðîäwäÈxÔá®ròªº©<Œ†¥§§ãy*w—ªªª»wïZZZÆÄÄ{©fú§§¤¤¤iÓ¦ÁUìܹs&&&ðR£µµuõêÕL&344T,õ$•J#""LMMõôôV®\ÙÒÒíÊ­0 ËÍÍýè£455'MštþüyÒæ‹-³êî‹c³Ù:::sæÌ'(†aB¡pÕªUL&ÓÄÄdË–-p&ïAOOŸ>%ºÅÞ½ç7n\@@€Âø´··oÛ¶mÊ”)ÚÚÚ¶¶¶{÷îÅŸ_àÎáBßÿ½‚]AOr¹ÜÍÍ 4åäUu“t{>màÑÉÈÈ077722úꫯ$ ©±1@4óÎÿâóùè{ºêêjåg÷¤Æ^QÐÌð~>Žj =}ˆŒ5*,,¬/Æþ‚ôô!Âb±RRRúbì/HO*AzBP Ò‚JžT‚ô„ Å¿‰Dø«DQÔú—ˆ¿ú½ • ë'• =!¨é A%HO*ùQÈÜ + aÚIEND®B`‚XQilla-2.3.0/docs/dom3-api/inherit_graph_1.map0000644000151400015140000000023011653571065015732 00000000000000 XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMDocumentTraversal-members.html0000644000151400015140000000711511653571065023564 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMDocumentTraversal Member List

This is the complete list of members for xercesc::DOMDocumentTraversal, including all inherited members.
createNodeIterator(DOMNode *root, DOMNodeFilter::ShowType whatToShow, DOMNodeFilter *filter, bool entityReferenceExpansion)=0xercesc::DOMDocumentTraversal [pure virtual]
createTreeWalker(DOMNode *root, DOMNodeFilter::ShowType whatToShow, DOMNodeFilter *filter, bool entityReferenceExpansion)=0xercesc::DOMDocumentTraversal [pure virtual]
DOMDocumentTraversal()xercesc::DOMDocumentTraversal [inline, protected]
~DOMDocumentTraversal()xercesc::DOMDocumentTraversal [inline, virtual]
XQilla-2.3.0/docs/dom3-api/DOMLSException_8hpp__incl.png0000644000151400015140000001153711653571065017552 00000000000000‰PNG  IHDRàuØäzFbKGDÿÿÿ ½§“IDATxœíyT×ÛÇoа(AÂNiDS­ˆÚ"H nu$¨ˆ Ö±ŠG­íÁ½"¢ô P@PPP‹"‚¤-URŠÈ¢(P=–M[@hB!HÊ’yÿ¸ýÍB©Ä0ðÞÏ_wž¹÷yžûðåÞÉÌ(†‚¬¨Œt„<@¤ Aj@¤FUi‘Ž;–——§´pˆ÷‡““SHHˆrb)O eeeÖÖÖJ‹ˆx<{öLWWWiá”'P€µµõ¡C‡”¡pŽ9¢ÌpèAj@¤ Aj@¤ Aj”ú)~(°Ùl¼mhh8}úô€€:ŽE"QRRRII Ç377wtt\³f •J…cMMM“““) ÞÿþýÅÅÅ)))¦¦¦l66ˆ»»»“’’òòòø|¾¾¾¾‹‹‹ºººD28¹¹¹ ŸµëÖ­N ©3N €¨¨(ccc±X\__óæÍ­[·^¼xQ[[ðæÍ›€€]]]“—/_^¸páÑ£GgΜQQQ477×ÔÔ0™L誳³³¬¬L~¸³g϶´´=zT__¿®®îìÙ³ÄdÞçtÿ…ÇãmÛ¶-33 ­­ííí­„ ä‡Œ[xð@"" žíÿ‹Å°­££³uëÖ÷htAF¡P(+V¬(,,„‡999~~~p±„Ðh´5kÖäääÀCggg.—‹¿äúÛo¿ÍŸ?_~MMÍŒŒ \¶¶¶©©©ò‡p8œÎÎNÀ½{÷|}}E"QbbâêÕ«ÝÝÝCCC…B!ìÜ××ëáááááÛ××רØÈf³³³³‹ŽŽÑÑÑß~û-FKKKËËË ýþûïëëëSRR ‡´´4wæÌ™ÒÒÒÄÄDhÏÈÈ =qâDQQÑÕ«Wøá@zzºDz‘‘‘­­­±±±aaa%%%×®]ƒöüüüèèhÿ¸¸8ø«"AQQQ||ü¾}ûð_?‰ rŒ$aô­P(±X Û***NNNp—øð¡ÍøñãåŸ5kVjjjdd¤ÍÏ?ÿ¼víÚ{÷îág7oÞüÅ@ }çÎ¥¥¥AAAnnnS§Ndee}ùå—–––“&MÚ¿?þÖAvvö®]» ,--ýýý‹‹‹¡= ÀÌÌŒÅbmÞ¼ß$èëë»ÿþÎ;---7n܈÷tww×ÖÖ^´hבիWkjjΛ7€+XjСd2RñC’ &&&mmí &TWWÛÙÙ;TWW[YYá‡ÎÎÎááá›6mÊþ.‰ œY,‹ÅòõõMJJŠuqqd}ÖÖÖ^¶lÙ¥K—Μ9----fff°=qâĉ'Âvss³§§'>PKK 6ðÎæææ­­­RÓb±N`jjŠ÷d0UU™?A===ñ††¬ CÉd¤ û ŠaØíÛ·çÎ ]]]/_¾Œ¯—‘HtíÚµÙ³gã›7oÞTTT¿­­­¬¬,$$„Çã­Zµ žZ¿~½@ سgOqqqCCÃï¿ÿÀ`0ÜÜÜðáp—ˆˆ`±XĨDç8 .}zÆŒx­¤"nèF9ÕEi_;^µjUkk+z(âA‘¢‚¾C&GŽÑ×׿~ýº¢”·x tÐÒÒZ¾|9‚ŽH&ÿ $ЀN§ïÙ³‡ AG$“ÿ(‚Ô "H (‚Ô "H (‚Ô "HRu–••)3"BáÔÖÖÊy@á(O øIc˜ÚZ:ÀÒ²}¤yXZZ*óG©¼gñÿð÷¿ˆ‹[?Ò‰ŒÐ5(‚Ô "H (‚Ô "H (‚Ô "H (‚Ô "H (‚Ô "H (‚Ô "H (‚Ô "H (‚Ô "H (‚Ô "H (‚Ô "H (‚Ô "H (‚Ô "H (‚Ô "H (‚Ô "H (‚Ô "H (‚Ô "H (‚Ô ¿°<,RS‹ããóÄb1<äó»&üû±UTT¶lqZ½zöˆå7ú!ãÿ‹EÌœ9ñùóF ãë×xÛÎÎB© 9Ð?,&O6üøc …2ø…B±¶6e2 ”ŸÕX t¸xyÙS©RÊH¥ªxyÙ+?Ÿ1èpqwÿ¿%"‹ÝÜ>Q~>c $Ðábh¨coo¡¢2`—WQ¡Ìž=ÉÐpüHe5f@U޽Äe(…BápÐþ®@À²eÓ téRÛ‘Êg,ªtt4çÏŸ¢ªúo1UUUœ§èèhŽlVc$PÅÀáÌ‹ÿ}ä!cά‘ÍgÌ€ª.´VWÿ÷©‡ººê‚Ö#›Ï˜ T1hh¨/Z4MUUEU•ºx±††úHg4F@Uîî3ûû±þþ~wwtûSa xßÔÔ4RyŒX,º––:`êT:ªäp011ÁÛZYY©ôdÆööFPjk«G:‘ÑL>þøcô~Ã;òÁR(`îÜF:‘ÑÊëׯŸ?N´ ×íÉœ9–#ÂX T‘H<‘G ô)Aj@¤ Aj@¤ft ´®®nãÆÆêêj©_z·~~~­­­Äž]]]ÁÁÁÓ§O7nœ½½ý‰'úúúà) …2yòd‰/Í.Y²„B¡TWWK8ÇNÚCdøõÁ§ F·@322ÜÝÝ߫ۂ‚×ÐИ˜ØÑÑ1sæÌöövxª³³sÖ¬Y%%%aaa?>pàÀ•+W,XÐßß;¼zõª¬¬ w+òòòˆ s" Ÿ ¤¶¶–Á`À6Nß¿ÿ{ ¤x0¹¹¹---ØèaéÒ¥oÞ¼‘0VUUIÌëݪªªp»X,vrr:xð < rttìëëÃ;…B ‹øøx8vñâÅß|ó ~6))iÉ’%¸O çï•áׄÈû˼¥¥%77—hùo+èíÛ·MMMàÚµkVVV]]]€ÞÞÞàà`CCCƒàààÞÞ^¸Ü»wÏÜÜœËå:tÈÜÜ\__ßÏÏ_ܹsÇÖÖ–F£YZZ&''úúú¤okkÓÒÒÒÐÐèïï·²²7nœƒƒCQQìÐÞÞ¾aÃaff$‰ åâÅ‹,K__ÿäÉ“ÉÉÉ“&MÒÑÑ ‘p;xú eÛ¶mYYYð0%%åàÁƒT*ï ¥¥œ’’½¼¼®_¿Žýo—OKKãp8ïVdYEUùÌÌÌ)S¦þóÏ?sçÎ[¼¬]¹r…ÅbM˜0áÔ©SR“üå—_˜L¦®®nhh(îS"¨Tã[§/ Q­CYAýüüÖ¯_ßÜÜlhhXTTaaažžžuuuååå3gÎüúë¯á¯ì’%Kîß¿øðakkëòòòŠŠŠ9sæÉ% ?øàƒØØXwáÂUUU¡P.uøÅ‹“““1 ‹ˆˆ000HOOojjÊÊÊ‚Or1 óññqqq©©©)//Ÿ6mÚáÇ¡V¼½½;::«V­êè舋‹´µµÝbÒ–Š’’:ŽaPkk«D}Ÿa˜••URRžÌ¥K—===T*õ?þ€Æôôt&“ ‹[ZZŠaXOODêw‹½“@>|È`0ð±_}õÕ0 KIIY°`ѧœõbp‘‡^Cbå1 KMMe2™R*§DP%IJp¹\ ÃàÕvUU•œ FL. (†aG¥R©Äž4Xe˜\OO<[QQ1ØÏàQ†åççs8---GGÇ»wïÊÞÙÙ¹bÅ ØÖÐÐxúô)~êÉ“'€úúz@ww74–——Óh4l æ·‰n1i½zõªlåääH$³hÑ"|,—Ëe2™b±ØÝÝ=..(P9WrEz aåñ‰—••Ñh4©•S¢?ÿüSV ±²²’ØANP £¬ùB†{ ðQQQ®®®{÷îÅ Ÿ†@ (,,„v555€‰‰É«W¯ åéÓ§ß}÷¬QÝÝÝb±øÆ|>Ó¦MË—/çóùR‡ÿôÓO‹/†F â‡ågÏž ©Tjmm-4ÖÔÔ˜šš¾uvD·ƒÁ0,&&féÒ¥ðÐÇÇçèÑ£øgv@WWWXXÑüyó:;;óóósrr†~Ãap‘‡^Ch‡âTVVß^#"§D**o†ÔURƒ%yÕúÖ´¿¿ßÕÕõرc|>ßÈÈèöíÛÐÈápà]•9sæìرƒø+{èÐ![[ÛŠŠŠŠŠ ‡-[¶ÈÕÝÝM£ÑÒÒÒZ[[ÏŸ?O£Ñº»»¥_·n]cc#ôi``‘‘Áãñ²³³---aèµk׺¸¸ÔÖÖVTTX[[ÃOß@î Jt øm&.—ëææfffÖÞÞÏþý÷ßS¦L™?~vvveeezzºµµµƒƒƒH$":ß¾};‹Åb³ÙA´ÛL²Š<ôÂʳÙ쪪ªâââÉ“'ZDë(!P4A äÜ?ösyeàº>í³Î^k¯}øž½÷y„â( !؃ð?è è è §ÿ!.]º”••Õÿ8Àà²iÓ¦~! §æææóçχ††ö?0XܹsÇÙÙ¹ÿqè “‘‘A*`}¶lÙB$¬Ÿ’€ž’€ž’€ž’€ž’»¾ë±XL—ÝÝÝ'Ožœ––ÆçóicWWWIIÉÍ›7 …Oppð¢E‹lll°¯——Wii)‹Å¢ëoذ¡ªªjÿþý^^^Ìà4/^ìgÂ8¸Ë«"—Ëöïߟðéõ?ÆzzBåææzxxètº'Ožœ8q"%%¥¨¨ˆÇã!„:;;ÓÒÒœ%‰§§çŸþYXXX]]½cÇ6›jjjzðàP(Ä¡Ôjumm­apkv0ĪóŸÏwqqS¦LÙºu«‡‡Ç±cÇð®}ûöñùü;w¾÷Þ{ÞÞÞÁÁÁR©´©©éÌ™3¸BPPPee%êêÕ«†Á™X«[À´õ‹ÅŠŒŒ¼~ý:ÞŒÒét‡^ºtiDDÄÊ•+ïÝ»§§§§G*•ÆÄÄÄÄÄH¥ÒžžóiTWW/Y²dÁ‚ ;xåÊ•¥K—ÆÄÄìÞ½[«Õ5öy¬ˆ0˜ëqooïÆÆF„P{{»R©¤ç2¡Pøøñc\ž4i’F£yðàB¨£££¦¦fÆŒÌÊ]]]š—¡w=ztãÆþþþÌò·ß~ÛÒÒ"•J·mÛvóæÍC‡VÖ‹Iìììܼy³¿¿ÿþýûÓÒÒòóó[[[ñ®Ë—/ÿý÷‰dÏž=jµúĉGŽIII)--]ºt©T*ÕëãñãÇ Åž={vìØQSSS\\l˜“7näçç¯_¿¾   ­­ ËÊʲ³³¿þúë7nÐâ6jh¬º~zUX,–N§Ãe6›RYY) ¯]»0räHfåÏ>ûLÏ^𦤤øúúÊårºÜÓÓsáÂ…ÂÂB¼äZ¶lÙž={ÂÃÃé ¦bbììì ÝÜÜìííÝÜÜBøÚ"::šÇã}ôÑG999mmm©©©ÁÁÁ!WW×”””ììlf¨3gÎìÚµËÅÅÅÍÍM"‘H¥Òˆˆ½4˜,\¸pĈ3gÎD©ÕjlLKKóööÆ àŽè“’’,8äýe0õÔÐÐàéé‰âñx...õõõAAAÌ õõõãÆ£7CCC·oßžœœlt²3sáããã£WV©T:·Žòòòjii1¬lx}‡ §¡¡!''G£Ñè !WÀ›---Ìq×P"MMM±±±ô¦£££aL\]]BÌë\„Ö ö¢;bÔ8Ð šž(Šª¨¨˜>}:Þ ß·oß”)Sè%TWWסC‡˜Ç:  ³³S&“UWW¯Y³Æò¶è¿.]vvvf³Ù …bìØ±¡ÆÆF¬½Ê¦xñâEfffffæû￯Õjé‹dð—=zôƒüüüðæ£GôB999íÚµ «ÏûæÓЋihhÀJ}òä œ)ã@cÕõSkk«R©|úôimmí¦M› Å'Ÿ|‚w%%%©TªÕ«WWUU544üòË/iii **꿹²Ù!!!;wî|çw˜7®˜Á™˜É„ÃáˆÅâï¾ûN¡Pà{xް­VÛÓÓÃápº»»ñЧ³³ÓhÍÈÈȼ¼¼+W®(•ʪªª¢¢"½ ÁÁÁùùùÍÍÍ>\¿~}YY™^…Ó§Owtt˜Ï'77W.—ÿþûï³gÏ6ch¬:>­\¹ÜÜÜD"ÑÞ½{éá}Ĉ{÷î-..–J¥aaañññ¶¶¶Ìb±¸¼¼<&&ÆLpó7 ?ÿüóÜÜÜÔÔT[[Û>ø`É’%–O </---++ËÁÁáÓO? [¿~ý©S§ kFGGkµÚ¼¼¼gÏžùùùmÚ´iÅŠÌ ÉÉɹ¹¹Ë—/g±X!!!‰äéÓ§Ì 999ô2Jxxøš5kºººÂÂÂèŽè-ìZ?aõÿ÷RG]¸pa?oF¯¾á®wðͳeË–Q£F=z´ŸùÀó;€$ §á££ã‚ ,1ZÐÓð†Ïç¯^½Ú£u=$=$=$=$=$=$!ö¼eíÚµ¤BÖçáǯôÓô4f̘øøøþÇÊTW»ûú>wqéìD ___ú]þ@àùÝ›€§ç?¥Ò¤ÈÈÀ¾«¾ÙÀú è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è è ü:ãüã¥÷î)èM¹¼ÕÅÅÑÁá?Oãplþõ¯dýoðCúûÁƒˆPè^VVÃ<×Ôj s/ˆÉ(0ßçãƒ2òeU„‡c³hÑ{VÎg¸z2ÎØ±®"‘—±oõ¢Þ^]tôT«g4<=™$.îï66úLJÍfõô„ÉÎ8 '“DEM5¼Xa±Xqq”|† '“¼iÓ„†CÔüù“%ŸaèÉññcQ66ìà`sŸÃ=™#"BÄŸt:*6öoƒ˜ÏÐôdŽ·Þↅ½Ëáüç(ÙÙÙÌ+Ü”†8 §>øøã ŽBq86³gO1Ân°3Ò€žú`öì‰\®-B¨··766h°ÓꀞúÀÞž3gN‹…ìBC' v:C—žßi4•J5X© YÄâÿ;yòÿgÏÿìÙ_ƒËÃÁÁÁÙÙ™Þ|IOjµº®®Îê) uœœto½e÷î»<88†Œ5ʤž0¡¡¡ÖKg˜°jµbÅl¶ñ'Äo,wîÜѳÀúÉ"$’P“%€ž,ÂÖÖf°S€ž’€ž’€ž’€ž’ {==~üxÙ²e}V«¯¯g±XÌÓý×_åp8ÇŽ£íåååvvv2™l rÖƒÅàí·ßNLLlii1SŸ¢¨„„gyüúúz™öͰ×SYYYtt´Ñ]>¸Ìçó7lØ`Ê}Ê”)_|ñEzzzkk+Bèùóç+V¬ÈÈȸ̙\½zU¡P444·µµM:gb”ÆÆÆܽ{×:¹½ƒæææ‹/RÊyóæuvvÝuÿþ}½i÷/^Lš4)%%…¢¨ÔÔÔ   îîîËú%B÷ïß§7u:]HHÈæÍ›MÕ7Ú/ËãäöíÛ·oßfZ^y|ª¨¨ðòòÂù:4nÜ¸ŽŽ„V«]·n»»»››Ûºuë´Z-žY~þùgŸÊÊÊŒŒ ŸQ£F%&&Ò'Ÿ¡Bè‡~‰D\.×××·´´!ÔÓÓcÔýéÓ§ŽŽŽÌYŒ.OŸ>!4zôhd0Íé¹#„ìììJJJŠŠŠ²³³‹‹‹KJJlmmM%I°k†°X¬ÔÔÔÓ§O›ŠÃì—…1úé'¡PèììœMòòòñãÇ»¹¹¥§§¿xñ¨ÑRYÐ0Åeáø”˜˜˜””ÔÔÔäîî~ãÆ lܶm[llìãÇoݺ5uêÔ7âÓhîܹ.\ÈÌÌœ8qâ­[·d2Ù´iÓÖ®]kÊ«½½ÝÞÞ^*•*ŠÂÂB‡ÓÞÞ¾}ûv£îEEE¥¥¥Ô˧,]îÓH»Ólܸ!”••Å4h×(cãÇÍ›7ù|¾ùÖñ^S1™ „æÏŸßÖÖvâÄ |á~øa]]Ýõë×…Baff¦Q£y%ŽO¯£'•Jåíí-‰˜íM˜0A¡Pàò¹sçq~·nÝ¢(jüøñ'OžÄ{ïÞ½K— ½”J¥­­mNNŽJ¥Òétjµº··×”{ll¬R©¤^WO´;F§ÓEEEÙØØ$$$0û; ]£úÒ“©Ö±ÅTL&¡ÊÊJŠ¢z{{q[Ìü)Š:räˆP(4j¤ÌBFOE}ùå—666ÍÍÍ´…Ëå2‡='''œ^…p¹\™LfÇЋ¢¨Ë—/ÇÅÅ9::ÿøã¦ÜÕjudd$.31~ €êKOLwLii©““Ó¥K—¸\nYY™uºFÓÓÁƒƒ‚‚Ì·NW6“ B¨®®ŽÙŽ Ñh°±¶¶–Ëå5FcB`ý„zòäInnnxxøš5kh£@  ŠJ¥º~ý:¶ãUˆ§§ç£G°å·ß~ûꫯLyi4NwìØ1¥R™œœ¼`Á¥RiÔýìÙ³sæÌa&ÖÓÓƒ’Ëå–ôBϽ±±1==}ûöí!!!‰äÙ³gVèšabEåååÍ›7Ï|ë c®BX@¡ºº:OOO3ÆW€).KƧÞÞÞððð­[·*•ÊÑ£GWTT`{zzz\\Ü£Gjkk§M›¶råJæi”‘‘!‰d2™L&›1cÆòåËMyi4.—{üøñ–––½{÷r¹\FcÔ=!!A.—ã8ø†MaaáóçÏcbbc(R«Õ”±ñ‰é®ÓéæÏŸ?kÖ,`9zz‚ïm$õ@Ð@Ð@Ð@’½Ÿ˜s…IEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMImplementationList_8hpp__incl.md50000644000151400015140000000004011653571065021062 00000000000000422b848ad6970500d8287bffe202d27eXQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMRangeException__inherit__graph.png0000644000151400015140000001161711653571066024431 00000000000000‰PNG  IHDRÕuV>3:bKGDÿÿÿ ½§“DIDATxœí{<”YüÇϘÁ,ÊmÜg)Qü„ʶÕeQÔBЍV¹tÝB·Ý•îK¯6Š$m¤H¢ëë•”µ…(…ݶͭ ©™ c†¹<¿?ÎþžfŒš<«Îû¯sÎs¾ßó=ßç3Ï9Ï3CÂ0 ¡@tˆO¤?‘ ý!ˆéA$¹xÙ½{wQQ‘\\!† ùùùïïD>ú«®®~úôé´iÓäâ ñ§±±±´´T.®ä£?À´iÓ²²²äå ñ_&++Ë××W.®ÐþA$H"AúC Ò‚HþD‚ô÷$1FØÖÖ&ÞÃáDFFÚÚÚŽ1bòäÉûöí¸­¹¹¹Äûnnn$©¶¶VÂ9ÎLª¶¶vhH’3Œ¦¦¦ÔÔÔöööI“&±Ùlx¨££ã‹/¾(//‰‰yøðá¶mÛΞ=ëââ" a‡çÏŸWVVâ®X,–Äcyè\œ4‹úúzË[¶lù@½/˜<ðñññññ‘‹+bÔÔÔàU‘Häàà«öööïÐÙÙ9jÔ¨äädhëêêº}ûvüèéÓ§ÝÜÜpŸÎ?(555ò:¹ÒdffÊËùÐ]ÿ._¾lddÄb±çÎ;v,‡ÃðùüÈÈH===]]ÝÈÈH>Ÿ׋‚‚ccãÂÂÂ;vëèèâ—"i+À•+Wlll¨Tª©©iZZ@ ôj.¾$õ±<‘H¤ÐÐÐk×®ÁjzzzTT™LÆ;¨ªªFFF¦§§ÃªOVVöKpvv¶··÷à2#+rYéÊËË7nœ®®îúõë»»»§N Ð××—˜ ›Í^¾|9F£Óé<NóìÙ³–––ZZZ±±±ÿoÀòD.*îçõ/00pÙ²e---zzz÷ï߇111^^^/^¼¨ªªš4iÒÖ­[ág×ÍÍíöíÛÑÑÑVVVUUUÕÕÕS¦L‰ˆˆeÕÙÙ©¬¬œ˜˜È`0RRR(Jggçz5g³Ùð¢%QR—¨òòr à>ÚÚÚ$&uïÞ====hûôéS}}ýGA·***¯_¿b׿Çw¼‹¬ÌÈŠ\VºfÏžýìÙ³ÒÒR33³èèhñëŸxÙßßßÉÉ©®®®ªªjüøñÑÑÑ00ooo‹•œœ xóæMßçQŽ×¿!Õ‹Å¢Óé666pÚ ƒËùùù&L€ùªªªÂ0lܸq999ðè“'Oð²´“ÉTTTgÎܶ°°ÐÌÌL$yxx$%%aïê¯S+‘™þO¦‹Ëå•••T*µWý566Š÷¬ªª¢R©0°¿þúKV¤–û?@ccc||¼³³sxx8ÞH£Ñð ³X,üÅ EEE€¡¡áóçÏaËãÇ÷îÝ+ËŠËåŠD¢ .0™Ì   ùóç3™LYæýðãÇÏ›7VýýýwíÚ…ßí8NLLŒ««+Þ2cÆŒŽŽŽ»wïæçç{xx :3ýŸ8l‡"<{öÌÐа×QôôôÈdr}}=¬ÖÕÕÁ²‚AOBä¢âþ\ÿ„B¡³³óîÝ»™L¦¾¾þåË—aûúõë½½½á“‹)S¦¬]»Vü³»cÇ›êêêêêêéÓ§¯ZµJ–—Ë¥R©ÙÙÙmmm'Nœ R©\.W–yû?üùKaa¡»»;Ng³ÙðèÛ·oÇ7sæÌ7n<{ö,''ÇÊÊjúôé<»r¬^½ÚÒÒÒÑÑ÷‰_ÿ¤Ÿ¿ÈÊLÿ'ÓåèèXSSSVVfnnáþR<Ÿ~~~NNNõõõÕÕÕVVVðÖˆ]óÀǺþ=zÔÖÖ®ª—.]200`2™†µ··¯X±BSSS[[;88˜Ãáˆç‹ÇãEDDª««/Y²„ÅbÁvi+ Ã233ÇŒ£¤¤daa‘——ׇ¹¬í¹ø'óóÏ?÷÷÷ß*`ÖÙÙ>~üx++«={ötuuá¶ðÌ$Úe}þ{ÍLÿ'ã?yò¤‰‰ F[·n—Ëåóù3fÌPSS“˜ “É ÐÖÖ600ظq#\‹ ÔIV^Ä¢E‹èý?B¨­­•þÞåƒßÿ“ˈèû‘ ý {FŽBtƒéoØ£««›˜˜HtƒéA$H"AúC Ò‚HþD‚ô÷^Ü¿_Otùýÿƒ¢¢"yy.ÔסÓ•”zˆdHimm•—+ùè¾mû©ÁåR¸ÜÏzzôõô:ˆŽeHÑÔÔ´°°‹+ù|ÿûiràÀ¸¸›&&Ú%%?ËpíÿÏ… 倿ÿ~óçŸÍDÇ2\Aú$½hjbÉ/>$:œá Òß ÉÍ­ PÈ>_xáB¹H„¶1ƒéo0…¢ììràŸñÛÚ:ÊÊЃ˜Á€ô7JJjY¬.¼ª¨H¾t©‚Àx†/Hƒ!'§‚Bù7u|¾0/¯‚Ïöa‚褿ÓÓ#¸|ù±@ oloï.*zFTHä¿sûöŸ\n·D#…BÊÉAwÁéoÀää<”þkY@týzeW×§õEÜûƒô70:;»oÞüC(Iâó…·ný1ô! kþF~þ==YGÑ]ð@Aú¹¹2&awîüÙÞÎÊx†;èýƒÑÔÄ_|§MÛ³{÷BgçÿÁ[ôõÕ••åöVÛGÊÔÀ Ó5%ZttF˜˜hÌGZD‚ô‡ ¤?‘ ý!ˆéA$H"AúC Ò‚HþD‚ô‡ ¤?‘ ý!ˆéA$H"AúC Ò‚HþD‚ô‡ ¤?‘ ý!ˆéA$H"AúC Ò‚HþD‚ô‡ ¤?‘ ý!ˆéA$H"AúC Ò‚HÞùÿ“õõõ·nÝ"*”aÊ­[·ZZʈŽbØ`jjêììüo#33“¸À†%ŠŠº ÊDG1œðññ—\/ÿ÷Î;CâS`çÎ-hÿ‡ ¤?‘ ý!ˆéA$H"AúCÉÇùûGŽŽŽxYOOÏÖÖ6,,LCCoäñx§OŸ.//g0ÆÆÆööö‹/&“ÉÐÖÈÈ(--D"áý·lÙRVV–žžndd$î\IIÉÜÜü»ï¾333šéà Ác²—/_.]ºôƒôqêo`` ‰/^¼|êÔ)555@WWWXX˜¦¦fHHˆ¡¡aCCCJJʃ:Ø·¥¥¥®®—TGGGee¥´sè*==}çÎgΜ×ëšÎ‡óÃ`0BCCóòòjjjK–,ù Ã}´ë¯†††––F›8qâîÝ» .\¸9sFCCãðáÃ_~ù%N···OLLlii¹qãì`ggWXXˆ»*..ž0a‚´s---:ÚÔÔôöíÛ!˜Ž8h ‘HÔÞÞËêêêÁÁÁh È€õW\\ìííÝÑÑ(((àñx@˜˜èéééé陘˜(^¾|éèèXQQáëëûøñãÔÔT___ýû÷wvvBoÒVpˆ   Ù³gûùùݼy  {5‡CH—% ‘H ,(--…ÕüüüÀÀ@ñß0§R©‹/ÎÏχÕY³fâ¿ ú믿Μ9SVBÈd2…BQUU…Õ’’’U«V¹ººzyyeddÀFGGÇ[·n-[¶lÁ‚çÏŸ`vùòååË—Ï›7oÓ¦M%%%0ø^2 s!+W²Nн{÷<===ÊçóW¯^ X¸p¡DJ;;;úé'wwwŸãÇ÷ôôô:¯2`ý}õÕWvvv ,+!!áûï¿§R©€ììlƒ‘””tèÐ¡ŠŠŠÔÔTØ?++këÖ­•••EEEû÷ï‹‹kllLOO‡G¥­x<^tt´‡‡Çùóçbccy<^vvv¯æÒeiètzss3 ³³“ÉdJo×ÌÌÌ^¼xËãÇçr¹uuu‡SQQ1}útñÎ<Ëår¹Ü7oÞ¤¤¤¸¸¸(**ººº¢¢¢ÌÍÍÓÓÓÃÂÂ’““Ùl64¹{÷nBBBHHHRRRGGÇõë×ÓÒÒÖ¬Y“‘‘áïïŸ +!#âÈ:²r%Ësnnîþýû÷íÛwÿþýŒŒŒcÇŽrrr$òsäÈ‘¶¶¶ÄÄĘ˜˜òòòsçÎõ:/Yù—Å`ÖßuëÖUTTDDD¸»»[XXÀÆ7nlذAWW×ÔÔ4$$¤¬ìŸWB‚ƒƒ'NœXPPðí·ßšššŽ=zË–-VVV²¬ø|>†a\.WIIÉÕÕõÊ•+ÊÊÊ×®]ëÕ\UUuÞ¼yÒåA@"‘D¢~ØWAAÁÁÁ.Á%%%ÖÖÖ#GŽï¼råʹsçÎ;×ÛÛûæÍ›¾¾¾°]II)%%eýúõÚÚÚººº‡yxx¨©©Í™3ÐÞÞ~ñâÅÐÐÐÉ“'«««ÛÙÙ­X±¢ï4â#âÈ:²r%ËsXXN·´´\¹r%¾H nß¾½nÝ:SSÓ+Và=%æ5дæþCMMí›o¾ùå—_:„7¶´´xyyáU|=266´¶¶ÒétØbbbbbb"ËjĈqqqÙÙÙ©©©cÇŽõóó›2eŠ,óþÓÔÔdhhƒ×ÒÒª­­µ³³ïP[[;vìX¼:kÖ¬õºøÂa@ww÷©S§bccáŒB¡45599¹µµµ¾¾~óæÍ¹¹¹âV³gÏ>yòdCCCCCÑ#GZ[[eY‘H¤ÈÈÈ¢¢"‡Ãçó)в²²,s‡síÚ5é2€Íf3™Ìׯ_WVVþøã cÑ¢EðвeËX,Ö¦M›ÊÊÊššš~ûí·°°0æîîþo^>lii)þàPUUÕ®®.¸!ãóù€B¡ôôôÀ VWWW¯VIII|ØÚÚzĈAAAñññ«V­"‘H!!!¯_¿Æ­üýýy<^dd$Ç›:ujHHl—¶RRRÚ¶m[RRÒ«W¯ wìØ¡¤¤$ËœÍf>>ðÇÑÑ1//ÏÓÓ³ï„èè訨¨´··«¨¨¨©©………íÙ³ç³Ï>óóósrrÚ¼yó¥K—¤­<<<„Ba\\ÜÛ·o­¬¬BCC8ÐkB$¦ƒsçÎ^ÏEÿS O³³sxx8Çsrrò÷÷'“ÉÖÖÖ^^^ׯ_nÆ ñññ¡¡¡ŠŠŠ_ýµ¿¿ßié'$ü) ++Ë××½:”””èêêŽ3V‹ŠŠÒÒÒ’““‡2†!øzC‚;wêèèdeeá-íóçÿ8õõõ{÷î­©©éîî~òäÉ©S§Þçæ}øòÑ~ÿögñâÅ<ï‡~`³ÙnnnóçÏâTUU‡~P þˆL&ƒ††Æ¦M›  õA,H"AúC Ò‚HþDÒËýïÕ«W‡>ħ@ss³ŽŽŽxK/ú«/¶¶¶âÕw¾C †´ÿC Ò‚HþD‚ô‡ ’ÿ†„<¼ì³IEND®B`‚XQilla-2.3.0/docs/dom3-api/classXPath2MemoryManager.html0000644000151400015140000004331711653571066017714 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

XPath2MemoryManager Class Reference

#include <XPath2MemoryManager.hpp>

Inheritance diagram for XPath2MemoryManager:

List of all members.

Public Member Functions

virtual ~XPath2MemoryManager ()
virtual void reset ()=0
 Use with extreme caution!
virtual const XMLCh * getPooledString (const XMLCh *src)=0
 Returns a copy of the given string.
virtual const XMLCh * getPooledString (const XMLCh *src, unsigned int length)=0
virtual const XMLCh * getPooledString (const char *src)=0
virtual void * allocate (size_t numElements)=0
virtual void deallocate (void *p)=0
 This method deallocates memory.
virtual Collation * createCollation (CollationHelper *helper)=0
 create a collation
virtual XQillaNSResolvercreateNSResolver (xercesc::DOMNode *resolverNode)=0
 create a resolver
virtual VariableTypeStore * createVariableTypeStore ()=0
 create a store for variables
virtual ATDecimalOrDerived * createInteger (int value)=0
 create a ATDecimalOrDerived for the given integer
virtual void dumpStatistics () const =0
virtual size_t getAllocatedObjectCount () const =0
virtual size_t getTotalAllocatedMemory () const =0
virtual const StringPool * getStringPool () const =0

Constructor & Destructor Documentation

virtual XPath2MemoryManager::~XPath2MemoryManager ( ) [inline, virtual]

Member Function Documentation

virtual void* XPath2MemoryManager::allocate ( size_t  numElements) [pure virtual]
virtual Collation* XPath2MemoryManager::createCollation ( CollationHelper *  helper) [pure virtual]

create a collation

virtual ATDecimalOrDerived* XPath2MemoryManager::createInteger ( int  value) [pure virtual]

create a ATDecimalOrDerived for the given integer

virtual XQillaNSResolver* XPath2MemoryManager::createNSResolver ( xercesc::DOMNode resolverNode) [pure virtual]

create a resolver

virtual VariableTypeStore* XPath2MemoryManager::createVariableTypeStore ( ) [pure virtual]

create a store for variables

virtual void XPath2MemoryManager::deallocate ( void *  p) [pure virtual]

This method deallocates memory.

Parameters:
pThe pointer to the allocated memory to be deleted

Implements xercesc::MemoryManager.

virtual void XPath2MemoryManager::dumpStatistics ( ) const [pure virtual]
virtual size_t XPath2MemoryManager::getAllocatedObjectCount ( ) const [pure virtual]
virtual const XMLCh* XPath2MemoryManager::getPooledString ( const XMLCh *  src) [pure virtual]

Returns a copy of the given string.

virtual const XMLCh* XPath2MemoryManager::getPooledString ( const XMLCh *  src,
unsigned int  length 
) [pure virtual]
virtual const XMLCh* XPath2MemoryManager::getPooledString ( const char *  src) [pure virtual]
virtual const StringPool* XPath2MemoryManager::getStringPool ( ) const [pure virtual]
virtual size_t XPath2MemoryManager::getTotalAllocatedMemory ( ) const [pure virtual]
virtual void XPath2MemoryManager::reset ( ) [pure virtual]

Use with extreme caution!


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMTypeInfo-members.html0000644000151400015140000001170411653571065021656 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMTypeInfo Member List

This is the complete list of members for xercesc::DOMTypeInfo, including all inherited members.
DERIVATION_EXTENSION enum valuexercesc::DOMTypeInfo
DERIVATION_LIST enum valuexercesc::DOMTypeInfo
DERIVATION_RESTRICTION enum valuexercesc::DOMTypeInfo
DERIVATION_UNION enum valuexercesc::DOMTypeInfo
DerivationMethods enum namexercesc::DOMTypeInfo
DOMTypeInfo()xercesc::DOMTypeInfo [inline, protected]
getTypeName() const =0xercesc::DOMTypeInfo [pure virtual]
getTypeNamespace() const =0xercesc::DOMTypeInfo [pure virtual]
isDerivedFrom(const XMLCh *typeNamespaceArg, const XMLCh *typeNameArg, DerivationMethods derivationMethod) const =0xercesc::DOMTypeInfo [pure virtual]
~DOMTypeInfo()xercesc::DOMTypeInfo [inline, virtual]
XQilla-2.3.0/docs/dom3-api/DOMRange_8hpp.html0000644000151400015140000000552611653571066015427 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMRange.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
Include dependency graph for DOMRange.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMRange

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/DOMLSException_8hpp__dep__incl.map0000644000151400015140000000022611653571065020523 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMImplementationLS_8hpp__incl.png0000644000151400015140000001105011653571065020567 00000000000000‰PNG  IHDRÍubGò&bKGDÿÿÿ ½§“ÝIDATxœí{TÇÇ' /%"žb¨BU´ÚS¤|¸§§óŽŽV{œ¿fÍ.—ÛÔÔ `¡o455q¹Ü>»¿!úa*¤RivvvddäôéÓ£££÷ïß/—Ë ô%~»žeee?~¼¨¨hÍš5 ‰žêììLLL¼ÿ~bbâÞ½{£¢¢ÊÊÊRSS•J%4hiiyøð!ÖT{{û­[·ú+0ÒÁÁÁX[[GFFöK¿;vìxðàÁ·ß~[XX˜žž~éÒ%×/-÷#ý¦3:nkkËd2ÇŽûÝwß±X¬¢¢"xêàÁƒt:}Û¶m~ø!›Íž2e Çkii9}ú44ðññ©¨¨Àšº|ùò˜1cú+0ÒP*•b±Ø@›„„„~é÷âÅ‹K—.uss£ÓéÞÞÞ)))—.]ê—–û‘7²?£P(sæÌ©ªª‚‡eee±±±&&ÿëËÜÜ|Á‚eeeðÐ××·¢¢[:+++§M›FØ2—Ë=}út\\\HHÈ‘#GΜ9ùé§ŸîÛ·üw1ºtéRLLLhhèÎ; Þ½»»›Çã…†††††òx¼îîn½mêð:{öl\\Üœ9s~ùåÀòåËaaaÐëÊ•+K—. ?r䈚~Ý”H$›6m ŽˆˆÈÎΆ«žfûÚ°´´,))Áìíí]XXHhyãÆ¨¨¨Ù³g>|X[ºôæ°o¼©û6›ÝÜÜ H$B¡Ãá¨p8œ'OžÀòèÑ£¥R)\:;::ª««?þøcm-ÿõ×_ÙÙÙ 999W®\ÉËËKJJÊÏÏÇ]RR²qãÆ~øáêÕ«p‚1Ž;&öìÙóÓO?UWWïß¿ß6µy]¼xq×®]‰‰‰{öìiooß½{7 ¸¸ÐÙÙùÍ7߸¹¹:t()))''§­­ o€gûöíÏŸ?çñx›7o¾~ýzAAaûÚ’––V]]=wîÜ´´´ÂÂÂÖÖVm–W¯^ÍÉÉIOOÏÍÍÕ.9ìv¿I¡P°ý™‰‰ÉÔ©SáÒyåÊ//¯!C†hsœ?¾¥¥e`` `áÂ…–––AAAl&’’’Øl¶§§çgŸ}†]2!§OŸ^¹r¥ƒƒƒ««kbbâµk× iS›WHHˆµµõôéÓj+¦™™Y^^^JJŠƒƒ ££ƒp8ÝÝÝçÏŸONNf±X®®®‹/ÆbÖÑ>žñãÇnß¾ÝËËëÏ?ÿ\¸pá¹sçt¤nòäÉzÓ¥#‡}àç›} ±±ÑÉÉ `mmmkkËçó}||ð|>äȑء¯¯ï–-[âããu,šKKK•JU+c°ÙlXpqqyþü9þTKKKxx8vheeeH›Ú¼˜L¦fï*•ÚØØ¸uëV©Têææ¦c8"‘H©TÂ\œ±˜u´!“É._¾ìëëëééééésàÀççç§ilgg P(øJÂtéÈaßx#:S©T'Nœ˜4i<ô÷÷?xðàØ±c±-šL&+((ÀOž——WggçíÛ·oܸ±zõê×é½±±ÑÕÕðôéS˜Y ›ŸþÙÙÙüwA7¤Am^j†§««+#####ã£>R(Ø& ÃÄÄD  >ÐÜÜ å¥»} •J•™™éââw& e„ 'Ož$4&l0]:rØ7úmÝlkk …/^¼¸uëÖºuëÁ¼yó੸¸8‘H´jÕªk×®566^¸p!))‰Édâ?€Kç¶mÛ<==étúëD’••ÕÔÔtÿþýÜÜÜ€€ü©)S¦äää´¶¶Ö××§§§—””Ò`¯¼¤R)@¡PtwwS©T¹\÷sx *•ÊårwìØ!òòòüýýu´óŒaaa¸aƪª*@P[[›]Ì~ûí7më5aºtä°oôÛõlÅŠ°ààààíí½wï^üª´wïÞýû÷óx¼ææf‹åççA£Ñð-p¹ÜÒÒÒÐÐÐ׌ÄßßõêÕ2™ÌÏÏ/** ÙÏÊÊZºt)…B™:ujbb¢! è5tèP//¯ðððßÿÝÚÚ:)))33ÓÂÂbáÂ…~~~éééÇŽà ðŽ+W®ÌÊÊZ¶lFûä“O¢¢¢tƒåR^^žžžžŸŸŸ““ÓÔÔÄ`0¸\î¢E‹àÙ­[·Ž3›BÓ¥Vi@’ô@Ñý½º£GΟ?¿¼¼üõ{"¦¦¦èèhc‰vÀ!LWr¸aÃ{{û£Gê°AÏ7dðNéÌÊÊjöìÙ…Ñ@˜®7”ÃwJgt:}ÕªU…Ñ@˜®7”ÃwJgˆ·¤3 !Èé AHg2@:CAÏRSSßt㥾¾^÷3Y WgÆ ‹ˆˆè¿ÞnÜptuýÛÖV6м-¸ººbïæhCÏóM„&NNŸóxqsæß7´?CÒ‚ Îd€t† ¤3 !Èé AHg2@:CÒ‚ Îd€t† ¤3 !Èé AHg2@:CÒ‚ Îd€t† ¤3 !Èé AHg2@:CÒ‚ Îd€t† ¤3 !Èé AHg2@:CúŽúù׿òïÝ`‡MMm¶¶Vÿü¨#•júïdzX¯õ›¡ïÜÎÛÛ™ðÇÊ{z”!!ãHÈø@:3ˆ¹s'˜šªçÊÄ„âã3ÜÉ -šúA:3ˆààqš7L eîÜ ÑtfL¦õĉÍKÚ¬Y HÎd€t† ¤3 !ÈÀèuöäɓŋë5ãóù _Ps§à°±±™5kVCCƒ¦½T*Utt´µµuG¢…Báóùºk€ö¡õ¶ñ7ŠÑ묤¤$$$„ðT}}=“É„e:¾fÍÝî—/_ÍÍÍ•••J¥2::Zoïø.š››>|÷îݾ £—2´· £ÿ^Ý™3gŠŠŠO)•Ê—/_Â2“ÉÜ´i“nw{{û¡C‡X,VNN›Í‹Åº{Çw!•J...}Gï0dho½¾ž8qÂÙÙ>-((9rdGG@¡P¤¥¥9:::88¤¥¥) x?w‹KEEÅúõë]\\ìíícccÛÚÚ`kš^€“'Oz{{›››»ººæç纻» Ý_¼xaeeeaa_2°ò¤I“P:„k æ®9LSSSØ/¾òÔ©ScÇŽµ´´d±Xpjñ]àË€¶¶¶E‹1™L6›šš*“Éð ¹xñ"…BÙ·oŸ§§§½½ý¦M›òóóß{ï=›uëÖé½CÓÌ¡&gΜáp8 cãÆX;¥¥¥îîî)))]]]„•zÃ#@…£µµµ¼¼\¥ØØØ¸¸¸––GGÇ«W¯ÂÊÍ›7‡‡‡?yò¤¦¦fܸq_|ñŃ3fÌ8þ|FFƨQ£jjjnß¾=qâÄÔÔTm^‰dРA<O äååQ©T‰D²eËB÷}ûöåçç«T*جÄÊz+1wøBöÍ›7ÛÛÛÅb1ŸÏ ?~<Þ^,›™™-Y²¤±±ñСC€gÏžv‰ŠŠòóó{øðaMMÍèÑ£322ð ‘H$€ÈÈH±Xœ›› ˜7ožX,Þ³gàÅ‹0¤à3ÕèaÕ&0kÖ,±X|üøqØ#t ¬«««ªªâp8XÌj•zrçÎ;wî¼ÒþÀ@‰D"6›íííïÒÃÃC ÀrYYÙ˜1c`ˆ555*•ÊÝݽ¸¸ž½{÷.VÖô …4mëÖ­"‘H©T¶··÷ôôhs …ª¾ê sW½ú]&6mÚ4µíêêºwïžD"éé马¬„S®Mgr¹ÜÔÔËuqq1‡ÃÁ'öX]] Õʰë>ëŒ0‡j“¨¨¨P©T===ø±`ájÆ + 4ñ*š:ëË}NOHH¨­­MJJÂ*=zÄb±àýZ@@¼Yxxx?~ìææk<==CCCµy1Œòòòªª*6›=mÚ´ .˜˜˜ºK$…B)¢2ì?†hºc“*—Ë+**8ÞÞÌ̬®®.((ÈÇÇçÀºommíéé1b<äp8ø„@  Ñhje±8.a5Íœœœj§°<{xx`1VöоèìéÓ§YYYþþþ«W¯Æ*™L&6O"‘¨ªª ÖÃÄ999=zôÖܼyóûï¿×æ%•J•JeQQ‘P(ŒŸ={¶P($tÿã?‚‚‚ðÁíTSS“!£Ðt×T*7o^ZZZuuõîÝ»u;::šššÖ××ÃÇ:;;òš’tàââ‚ÿèáÞ½{T*uذa†„ª™CM3ÂAà PWW…¨­²WôZgJ¥rÉ’%ÉÉÉgÏž=yò$¬ ûòË/?~\SS´k×.¼WLLÌÚµkáåtÅŠ?ÖæE¡P?.‹år9F³´´$t/-- †íÐétÀÁƒÅbñŽ;ð]Ã&xwCèêê’ËåfffR©týúõ€öövm]Ðh´ùó秤¤444ܹsçë¯¿ŽŠŠ2¼/È¢E‹’““O:ÕÐÐpîܹèèèØØØAƒaÚ†F˜C@nnîßÿ­»Ó•+WòùüëׯõÕWØ';„•½¿ˆ²?Û¹sç| —ËU*Õ¯¿þÊb±àG,/^¼˜Á`ØÙÙ%$$tttà÷2™,55ÕÉÉÉÆÆ&22R$ÁzM/¸ 1b„™™™‡‡Gii)¡»\.Ÿ9s&>°ÌÌL:>bĈÒÒRدB¡˜ XQilla-2.3.0/docs/dom3-api/DOMXPathException_8hpp__dep__incl.png0000644000151400015140000001147611653571065021251 00000000000000‰PNG  IHDRµu‡Ù7JbKGDÿÿÿ ½§“óIDATxœíkTGÆ'Ë%ȱ4(ÊEZ¬ú*·¼UA£–›U[å"í[ãJ¨ÊU­F-GDÐZΔØ*(P¨UÄJ$ HÄdßÓw»†e‹J›œ:¿O3³3óföÙÙ% 4 Ã1 Jò€Ph?T  ¨@þ@PA'f-Z$/Å᫯¾rvv†é—üQ^^>kÖ,===y¨B('$$ÏÒeûøø¸¸¸ü£ŠŠ‡Ã!fÑþAò‚ äÈ*?TÈ>¿ü%, OëëëÏž=;""BKK / …ÇŽ«©©áñxS§NuttôóóSVV†mOœ8A£Ñðú;v쨮®f³ÙƒƒƒáááqqqøÔõëײ³³ÍÍ͉qÕÕÕmmm·nÝjhh8FÍl6ÛØØx´àTTTŒ¥Ã7áÉ“'ëÖ­{“@¤Ãù›xe222 ¥Ri[[ÛÙ³gCCC9¢¡¡ŒˆˆÐÖÖ 322jmmÍÏϯ­­MIIQRRttt´´´0™LØU}}=L[XX¬[·.==}Μ9iiiÁÁÁæææÄ¸†ñùü¼¼¼½{÷fdd*äñxááá%%%cÈkÌÀ«BÔ£¡¡áïïÿ^g}ÑÒÒÒÑÑÑÕÕ}ÿý÷wïÞmhhxæÌxèøñãZZZ©©©sçÎ511qttÌÊÊêèè(--…ìíí‰OØ•••vvvx600PSS3;;““Ã`0üüüdâ2 &“uçÎÁÁAR…R©´¯¯oŒ!òÊs16ˆz455CCCÿ¦@ãΛî?h4ÚÊ•+oܸ³eeeAAAðVQSSóóó+++ƒY‡ƒèäêÕ«ø«\N---=yòdiiill,N~‡ƒ!$  ªª*$$déÒ¥ÞÞÞ§NlÚ´ °jÕ*¼~mmm@@ÀŠ+Nž<}Íš5yyyAAAï¾û.ñP(looÿöÛog̘1yòäÁÁÁøøx 6›‘››ÛÛÛ{èÐ!@QQÞöæÍ›¹¹¹111yyyø¥ ;$X°`½½}ff&ŸÏÏÌÌüïÿ«¦¦VXXøÓO?%%%¥¥¥µµµ±ÙlØCaa!ÇËÎÎNII©««;zô(,/..NJJJLL¼yóæ©S§Fê8p ««++++99¹¦¦æôéÓ°üÚµk™™™aaaÙÙÙЩ2G&(EáØyýÇ«B£Ñ¤R)L+))999q8&“YUUeccóÎ;ï+cöûï¿+))á–Âùä“OþM§[YYÅÅÅ&L˜ŸŸ¯§§§ªª ÿr4000RÚ5kÔÕÕýýý0(Þ!Ü6nÙ²eÆ QQQ–––€‹/†„„ÀÐŽ;pm¥¥¥iii:::zzzaaaYYYü1 ""ÂÄĆÈËËsss)I,_¹r%??îÖ¯_Ÿ ðôôÔÐÐX²dÉþýûûúú&OžL=XHT¦ö?vÆÁ\.×ÈÈ ¡¡¡££ÓÜÜlooO¬ÐÜÜ<}út<ëââ²oß¾7Ê,.òòòÛ·o§¥¥EGG;;;ï.¤›v:Îår÷ïß?44daa1šHƒ >7Ö!ˆ»»ûwß}—’’K:;;á,ÌÌÌÌÌÌ`º££ÃÛÛo8iÒ$˜À+O:µ««‹TŸÏ—J¥pêÆÆÆxM]]]8´Wiб(¡àM× ÃΟ??þ|˜uss;~ü8~·…ÂÓ§OÏ;/±±±lll¬­­…WγgÏÒÓÓÃÃÃmmmƒƒƒSRRþr›ùâÅ‹„„??¿œœœÏ?ÿ|´j2SIÍÓ§OÏ;goo׃Áèèè€éææf|}ÑÔÔd³Ù.\Àës¹\˜hkkƒçr$ÚÚÚJJJ<fÛÛÛ¡-Æ¢–´iб(¡àuüÑÛÛÛÓÓÓÝÝ]__Çãñ|}}á¡àà`>Ÿ¿}ûöêêj.—ûóÏ?GDDèêêzxxüRIÉÉÉ)55uæÌ™Ä'†¥¤¤˜››/_¾àëë«­­}ðàAj1ÃÃÃb±˜N§‹D"¸üã5p?ñ—!e|óÍ7«V­Š‹‹ûå—_*++‹/ÎËËkmmmmm=pà@gg'ìÁÑÑ177·³³óáÇ111ÅÅŰ<##ãÉ“'÷îÝËËËÃ?U#£‡N§³X¬ƒòx<ø"€t‚\¼x‘tÝ$B”´pì¼Îú²yóf˜ÐÓÓ³µµÍÉÉÁï«êêê999GÍÊÊjoo744tuuõññQQQ!öÀb±JJJ¼¼¼ˆ…—.]ª­­=rä¼8ètzttô¦M›œœœœœœF£¡¡±gÏž‰'®]»ÖÕÕ5&&¦°°ÐÆÆÆÛÛûÇË@p***Š‹‹{{{ýýýétú¶mÛRSSmll„Batt´P(œ?~XX¬¿qãÆŒŒŒæääÖÝÝ pss‹ŒŒ …®®®ÊÊʤz>û쳌ŒŒððp•>ú( `4©û÷ï·³³Ãç™™ p5‘)¤hN øý¶sçNôù7áÍ_ŽWÐ×SÂb± ðýýAòÇ83iÒ¤+V(BÐqQ‚ü1Îhiimß¾]‚Ž‹äÈ*?T  ¨@þ@Püñ÷î=“·ÅBöýú‰'~øá¹HQººì´µïÑéBy Q^ò‡¼t(CCôööÉ'Î05%ùHÎ[‚¹¹¹©©)ž¥¡ß—ÂÙ·¯4-í’™£ªê+ykQÐþãOΜ©üþû³»wÛå­EQ@þøƒ[·s¹|€ŠŠòÙ³¿È[Ž¢€üñÅÅutº2`xXræLTŠ–]? ‰´°°F,–ÀlWWuõCùJR? ªª™Ïÿó«V**ÊçÎÕÉQâ€üEEutúŸS1<,))©–ÈQ’‚€üD"ñùó·Åb)±°¯ïÅO?5ÉK’â€ü®\¹;4ôB¦N§¡§äŠŠ~!~a"Kü±~pP$IŠÃÛîàÅ¥Kw$éÈCÃÃ’òò;ÿ¼$…âm÷GYÙ‘H<ÚQôó¶û£¸xTH¥XEÅݾ¾¿øÞ¿›·ýïs\.Ÿ¸¸üç?{vï^åæ6 /10ÐTUý'~å@1y{G11Ñ–)™2e²™Ù+ùßÊÛ¾¾ ¨Aþ@Pü ùAò‚ äÈ*?T  ¨@þ@Pü ùAò‚ äÈ*?T  ¨@þ@Pü ùAò‚ äÈ*?T  ¨@þ@Pü ùAò‚ äÈ*?T¼ôû0999òÒ¡8”——wtTË[…xð€hýÑü1²ðoBF"3ÎþÀ0ìÔ©Sööö0m``PVV&Ó$33ÓÙÙ¶ÍÏÏg2™R©rwwÏÏÏ'öY[[K§ÓUUUG‹ËãñÏž=Ã0ìÂ… vvv'N400HJJÂ0ŒÁ`ôõõñ¶™™™ï½÷ž––Vbbâh”””õôôÀ¡YXX‚áááøøxSSS]]ÝÀÀ@ü~)‰¢¢¢ôôô¦L™%‰ Š‹‹§OŸ>eÊ”-[¶…B¢¢Wø|~pp0ƒÁ066ŽŒŒ‚ÂØl¶¥¥¥¶¶vrr²ŒŸobbbkk‹OèŒ3ŠŠŠ`ú·ß~ÃÓ–––ø®¥¬¬ÌÎΆnhh€…L&“Ô"‘HYYù×_…åEEEL& «¨¨€FÎ6©Š 2…d§ô%ä°¾>|xÉ’%x[‡—OOÏììl™>Oœ8¡©©yõêU55µââbЏ8%%%vvvëׯÍMMM2ýPï?víÚ¥¬¬ÜÙÙ ³jjjÄÅGMMh/MMM®†Õ×׫©©‘ú£­­X³¡¡AMM »ÿþh£&UBT¦p´ñçŠè7}ÿaØáÇ—/_³»ví‚—)d`` 99yéÒ¥x‰ƒƒCÿµk×ÊÊÊ<==‰½µ··oݺuß¾}NNN;wî {öìµ€¡¡!__ßèè躺ºC‡Ví•)ÛÚÚ222ÜÜÜ"##a‰‘‘Ñ£G`úöíÛ{÷î…i]]]üüñùü7nÀrxnMMMFFF¤Qôõõ•••>üã¹·´´ÃôÈÿ§‰3š’Ñ‚ŽE ÞÍ_øó-‡ÃÏ·½½½ðèóçÏg̘Ÿo›ššŠŠŠ¬¬¬.\wFàÿWæM›fΜÉb±ˆW‰T*uwwwvv–H$†‰D"[[[ÿÑ®$ü¬Ðh´ÒÒÒ˜˜@]]œ|?Al ÷Òç[‰Dâææ¶{÷îžžƒóçÏc¶sçN[[ÛÆÆÆÆÆÆ… †„„ÀÞ¶nݺzõêGÕ××Ï›7oóæÍ04‹ÅzðàAuuµ……E||¹#=ð:þÀ155 ÀoÂ@imm­®®neeµgÏžÁÁA™Ñr8@ff&±üرcªªªø­ðêêj%%¥ÂÂBŒr9HMMÕÑÑ155=tè¿¿¿žžÞð𰃃ƒ†††L\ìe^-ééé³gφÏÕçÎ344ìéé …QQQFFFšššþþþÄ÷=ëׯ×ÖÖf0¡¡¡ð¬äåå™™™éêênÙ²ehhˆ¨‡èžžžÀÀ@ƒahh¸mÛ6üù…T-L*! JZH}r±7÷‚¹¼ê úzJÀøî?ÿn?Æ™wÞy',,L‚Ž‹’—þÿ-FCŸ?}Ë‘ñº ¨@þ@Pü ùAò‚ ÙïÏ]¾|¹··W.RŠˆÌ»3‚øþ”†l í?T  ¨@þ@Pü âN“+iÚßIEND®B`‚XQilla-2.3.0/docs/dom3-api/inherit_graph_19.map0000644000151400015140000000037311653571066016034 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMNotation_8hpp_source.html0000644000151400015140000002217511653571065017544 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMNotation.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  * 
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  * 
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMNotation.hpp 527149 2007-04-10 14:56:39Z amassari $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMNOTATION_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMNOTATION_HPP
00024 
00025 #include <xercesc/util/XercesDefs.hpp>
00026 #include <xercesc/dom/DOMNode.hpp>
00027 
00028 XERCES_CPP_NAMESPACE_BEGIN
00029 
00030 
00044 class CDOM_EXPORT DOMNotation: public DOMNode {
00045 protected:
00046     // -----------------------------------------------------------------------
00047     //  Hidden constructors
00048     // -----------------------------------------------------------------------
00051     DOMNotation() {}
00052     DOMNotation(const DOMNotation &other) : DOMNode(other) {}
00054 
00055 private:
00056     // -----------------------------------------------------------------------
00057     // Unimplemented constructors and operators
00058     // -----------------------------------------------------------------------
00061     DOMNotation & operator = (const DOMNotation &);
00063 
00064 public:
00065     // -----------------------------------------------------------------------
00066     //  All constructors are hidden, just the destructor is available
00067     // -----------------------------------------------------------------------
00074     virtual ~DOMNotation() {};
00076 
00077 
00078     // -----------------------------------------------------------------------
00079     //  Virtual DOMNotation interface
00080     // -----------------------------------------------------------------------
00083     // -----------------------------------------------------------------------
00084     //  Getter methods
00085     // -----------------------------------------------------------------------
00094     virtual const XMLCh *getPublicId() const = 0;
00095 
00104     virtual const XMLCh *getSystemId() const = 0;
00105 
00106 
00108 };
00109 
00110 XERCES_CPP_NAMESPACE_END
00111 
00112 #endif
00113 
00114 
XQilla-2.3.0/docs/dom3-api/dom-context-item_8cpp-example.html0000644000151400015140000001243711653571065020652 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

dom-context-item.cpp

This example parses a document and sets it as the context item. It then executes an XQuery expression that navigates relative to the context item.

#include <iostream>
#include <xercesc/dom/DOM.hpp>
#include <xercesc/framework/StdOutFormatTarget.hpp>
#include <xqilla/xqilla-dom3.hpp>

XERCES_CPP_NAMESPACE_USE;

int main(int argc, char *argv[]) {
  // Initialise Xerces-C and XQilla using XQillaPlatformUtils
  XQillaPlatformUtils::initialize();

  // Get the XQilla DOMImplementation object
  DOMImplementation *xqillaImplementation =
    DOMImplementationRegistry::getDOMImplementation(X("XPath2 3.0"));

  try {
    // Create a DOMLSParser object
    AutoRelease<DOMLSParser> parser(xqillaImplementation->createLSParser(DOMImplementationLS::MODE_SYNCHRONOUS, 0));
    parser->getDomConfig()->setParameter(XMLUni::fgDOMNamespaces, true);
    parser->getDomConfig()->setParameter(XMLUni::fgXercesSchema, true);
    parser->getDomConfig()->setParameter(XMLUni::fgDOMValidateIfSchema, true);

    // Parse a DOMDocument
    DOMDocument *document = parser->parseURI("foo.xml");
    if(document == 0) {
      std::cerr << "Document not found." << std::endl;
      return 1;
    }

    // Parse an XPath 2 expression
    AutoRelease<DOMXPathExpression> expression(document->createExpression(X("foo/bar/@baz"), 0));

    // Execute the query
    AutoRelease<DOMXPathResult> result(expression->evaluate(document, DOMXPathResult::ITERATOR_RESULT_TYPE, 0));

    // Create a DOMLSSerializer to output the nodes
    AutoRelease<DOMLSSerializer> serializer(xqillaImplementation->createLSSerializer());
    AutoRelease<DOMLSOutput> output(xqillaImplementation->createLSOutput());
    StdOutFormatTarget target;
    output->setByteStream(&target);

    // Iterate over the results, printing them
    while(result->iterateNext()) {
      serializer->write(result->getNodeValue(), output);
      std::cout << std::endl;
    }
  }
  catch(XQillaException &e) {
    std::cerr << "XQillaException: " << UTF8(e.getString()) << std::endl;
    return 1;
  }

  // Terminate Xerces-C and XQilla using XQillaPlatformUtils
  XQillaPlatformUtils::terminate();

  return 0;
}
XQilla-2.3.0/docs/dom3-api/functions_func_0x6e.html0000644000151400015140000001073311653571065016754 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
 

- n -

XQilla-2.3.0/docs/dom3-api/DOMConfiguration_8hpp_source.html0000644000151400015140000002576011653571065020563 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMConfiguration.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  * 
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  * 
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 #if !defined(XERCESC_INCLUDE_GUARD_DOMCONFIGURATION_HPP)
00019 #define XERCESC_INCLUDE_GUARD_DOMCONFIGURATION_HPP
00020 
00021 //------------------------------------------------------------------------------------
00022 //  Includes
00023 //------------------------------------------------------------------------------------
00024 
00025 #include <xercesc/util/XMLString.hpp>
00026 #include <xercesc/util/RefVectorOf.hpp>
00027 #include <xercesc/dom/DOMStringList.hpp>
00028 
00029 XERCES_CPP_NAMESPACE_BEGIN
00030 
00350 class CDOM_EXPORT DOMConfiguration
00351 {
00352 protected:
00353     //-----------------------------------------------------------------------------------
00354     //  Constructor
00355     //-----------------------------------------------------------------------------------
00358     DOMConfiguration() {};
00360 
00361 private:
00362     // -----------------------------------------------------------------------
00363     // Unimplemented constructors and operators
00364     // -----------------------------------------------------------------------
00367     DOMConfiguration(const DOMConfiguration &);
00368     DOMConfiguration & operator = (const DOMConfiguration &);
00370 
00371 public:
00372 
00373     // -----------------------------------------------------------------------
00374     //  Setter methods
00375     // -----------------------------------------------------------------------
00376     
00390     virtual void setParameter(const XMLCh* name, const void* value) = 0;
00391     virtual void setParameter(const XMLCh* name, bool value) = 0;
00392 
00393     // -----------------------------------------------------------------------
00394     //  Getter methods
00395     // -----------------------------------------------------------------------
00406     virtual const void* getParameter(const XMLCh* name) const = 0;
00407 
00408                                         
00409     // -----------------------------------------------------------------------
00410     //  Query methods
00411     // -----------------------------------------------------------------------
00412 
00422     virtual bool canSetParameter(const XMLCh* name, const void* value) const = 0;
00423     virtual bool canSetParameter(const XMLCh* name, bool value) const = 0;
00424 
00433     virtual const DOMStringList* getParameterNames() const = 0;
00434 
00435     // -----------------------------------------------------------------------
00436     //  All constructors are hidden, just the destructor is available
00437     // -----------------------------------------------------------------------
00444     virtual ~DOMConfiguration() {};
00446 };
00447         
00448 XERCES_CPP_NAMESPACE_END
00449 
00450 #endif 
00451 
XQilla-2.3.0/docs/dom3-api/StDOMNode_8hpp.html0000644000151400015140000000744711653571066015573 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

StDOMNode.hpp File Reference

#include <xercesc/dom/DOMNode.hpp>
#include <xercesc/dom/DOMAttr.hpp>
#include <xercesc/dom/DOMElement.hpp>
Include dependency graph for StDOMNode.hpp:

Go to the source code of this file.

Classes

class  xercesc::StDOMNode< T >

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


Typedefs

typedef DOMNode * xercesc::DOMNodeSPtr
typedef DOMAttr * xercesc::DOMAttrSPtr
typedef DOMElement * xercesc::DOMElementSPtr
XQilla-2.3.0/docs/dom3-api/graph_legend.png0000644000151400015140000004461311653571066015333 00000000000000‰PNG  IHDR¥èYã þbKGDÿÿÿ ½§“ IDATxœíÝw@çûð7!ì=dƒâ@\¸E†­GÕZmµbÛ¯à¶`Å R­ÕÖjU©U©ˆ’°p¢€ ²÷ †²î~¤¿Ù#äBx>%—»{Ÿ{s÷>ÉÝ{÷’pGhd¢À€ƒ|H>È÷€äƒ|H>J§ŸÄÅ!F"¨T¢#!ˆ‹‹ó‚mx—fÍšuøða¢£ Lçù¾²ÑhÈÍM„Áª¸={Ft •••4Ímè´áÝyúô©ºº:ÑQ©ó|Ï(’0Ä@` Z½šè @˜‡NÞU«VÁàú= ù ß’ò= ù ß’ò= ùú•ïoݺEêHrr²°âŠÜÜ\‰Dt ^DІ÷ªù,9eêî~¼.-]º´¼¼!”ŸŸ?mÚ4þk„¦¦¦Bë\^^ÞäÉ“kjj´lDµáƒ% Ó¯|//////jllDéêê '¨î`V[[+š²@RÕ†–x$Ì€\¿çŸÀ‰ŠŠ222ºzõªàdNë;$éÆÖÖÖ'Nœ@q¹\///###mmíÏ>û¬¾¾ž?gXXØøñãôôô|}}Bööö¨Õ®Àáp<==‡ ¦££ãééÉápx<ž¿¿¿¥¥¥²²òôéÓŸ?>› ’ª}»Š"‘HW®\±¶¶ÖÖÖöõõ 055UUUå?¤–߇„„Œ9RGGg×®],«‹"ª««›››{Xß–!„wæöm¼‹O?–““ÓzUü· ,ˆŽŽæ_wi?BhåÊ•t:ýâÅ‹¡ÚÚZ›ÔÔÔ·oßN™2ÅÃÃÇqƒ!##³yóæ’’’¿þú !TUUÕ¦8??¿+V¥¦¦ÚÙÙíÛ·ïÔ©S:::ÁÁÁeeeáááúúú]miï·ÄÜíÛ·»o÷þ_›Fï¨]Åq!´víZƒqéÒ%„ЪU« Æ… B555ü•¸¸¸dgg?{öÌÂÂÂÛÛ»ýšqñâÅÆµµµËÊÊz•JåÿÉËËëáÖñ¹¹¹¹¹¹õj 3€ù>55µÍGmò}LL Žãl6!”““3räÈàà`þ§ü×,+33³±±‘ÇãÅÅÅñçlSœ••Uyy9ÿ5•Jµµµµ´´¼zõª`†k×®A¾ )ýÌ÷íÛUÇB¯_¿Æÿ¿ÝnýZÐ2ó[~~­×Ìd2¯_¿>yòäñãÇ_¸p¡¡¡¡çñ´VZZêååe``àêêúèÑ#דm„|߯ë÷]³²²j3ÇñÖoù»¥¥¥ùo GŒÁmmmmmm’‘‘ÉÎÎÞ²eKccãøñã;,¨  @OOOðVUU•ÍfÛÚÚ ¦Œ;¶¿CIûv•ÿBYYý»Ýúµ€ ·²²*))L§ÑhëÖ­[°`ÁÙ³g'MšÔŸ{¦ôõõ½½½¯pˆÀûï[ï\.!TZZúQÙäJ×××/((à¿NNN>vìBˆÉd®ZµÊÓÓóõë×çÎë° --­œœþï:þìÙ3“””Á éééÂÙ$Ú·«=\ÿ×!”ÍÿSǧ­­=jÔ¨ÄÄÄ„„A÷¬þ¨¬¬LOO/))±³³ã÷ò]ðçí¨©©!„®_¿Î`0Μ9ÓÅœ6l8xð`ZZZZZÚÎ; B,‹ÍfËÈÈ0™L///„PCC~~N„ÐòåË÷ïß_XX˜šš:þüß~ûmûöížžž!!!>üþûïv#@²´oW{¸à7ß|“››ûòåˬ_¿^0}ܸq111ÁÁÁYYY–––_~ùeRRRÃ0,22rÙ²eööö8Ž'$$ܼySKK««r:=Óßïë÷‚·>>>jjjæææ!!!¨Õõ{ÁGþë––}}}UUÕµk×Òétþ§§NÒÐÐ044EEµÿûß<ùDÇ R¿GiG‘’Z"ò³¶àcâuý>#£¬¨¨!tçÎK¢cÐoù!Ô˜‡êS‰e¨¯|÷î+ii)„Pqq]rrÑáè‡Ú¨©!„È2(ÿ/‚ƒòÄ(ßc~ûöK‡‡’‘‘ºwï5Ñè‡Â›ˆ,ƒBå_G8Ft@CšåûçÏóêêù¯Ùl^PÐ+vœpÊ @ûß·-•¨:žÐ€†:1Ê÷ÿüóšB‘¼­«k~úúwÀàT‹Øµÿ½%ˠ¿‰‹ˆM¾çpx÷î½æry‚)ÒÒäþI"0$}Wø7"Iÿ÷c£‚[ãÐP'.ù>..«©‰Õz ‡Ã»?…Íí]øúc¡Â@„œÝ¹ TA%( 6ù>88IJŠÔfbs3+&æ!ñ軲Ämj;‘$…òo @HLò}S+""•ËmÛ;L&ß½ §ô`°É¿ÈRm'b\TÜÁï b‘ïi´ 6›×~:Ç‹ŒLksž€Xã4 ²P„ut5c£Ò0‘“|ÿÏ?I$RÛ“ù|l6JMq<ú®4ñ:ÿŸ½ô B|¾g0˜11YÖÙ­öø?ÿÀƒw`ð(¼ÙéG8†Ê!v½£ÿ"~¼‹[QñAð–FË8|8øéÓC‚)RRdu"BÐ{M…ou‰ö¾9šxé/úoм>’’}\C\çãኊ¬,ÅØXSðV[[!Ôz €ÁDѸí¹aHÉŒˆPÀˆ?Ÿ€ù|ïÉù|ïÉùÀ@2rC †DÄà~<’lF Ñ„àÿ=0@¾$ä{@òA¾$ä{ÄËÍÍíl`t ïOMMmïÞ½}š——§¥¥%Êx$ä{©èj.îv.---__ßÎ>Å0¬¶¶V¨a 9ï ¤øU¨æi›iÕÕÕÍÍÍ­§´>ŸO"‘nܸamm­¡¡qâÄ „½½=BHWW·Ûõ€Î@¾ :/_¾üüóÏmll>|øÐÅl÷îÝ{úôé‰'öîÝ[WW÷ìÙ3„PEEE›ÙRRRLMM÷ìÙ“ŸŸ?€AKÈ÷\KKK@@À”)S¶mÛ6mÚ´¼¼<==½.æÿúë¯ÕÔÔ6n܈ª««ël6''§7oÞ(((Ìš5kÉ’%‘‘‘† ?z‰ùÀÀ¢Å¿566ŽŠŠ:{ölRRÒÖ­[•””º^D__!$--ÝíÊõõõ½½½óòò6lØpôèQkkëââî» Aï ,mM•Q£F%&&&$$Ô××÷d2¹w驲²2==½¤¤ÄÎÎN^^¾OaJ8È÷Ö8k㘘˜ààବ,KKË/¿ü2))©ëilll3ðÈÈÈeË–ÙÛÛã8žpóæM¸s¯CïˆÂèѣϟ?Ÿ““ccc³zõêž/kbb2cÆŒö—üÿùç///77·¼¼¼#GŽð¯€‘p':†Ü¿Ÿ¼}ûµ²²Ÿ‰€0įBVß!­©­§a†a…Òß1Ù9NO®ñ„PëèÊŒÀöÓÈdro¯Ðw’}ÏÁù|@òA¾$ä{@òA¾$ä{@òA¾$ä{©èj†Úò=€¿ Õ<%:ù ß’ò= ù ß’ò= ù ß’ò=€dä† ‰ Ñh3‰Ž ÿò= ù ß’ò= ù ß’ò= ù ßHEwPs1ÑAÈ÷Tü*Tó”è ä{`€|H>È÷€äƒ|H>Žã‚7qqq>>>FƒjjR¬®Ö61) 6 „•JíçÄ¡>»Y³f>|¸Ÿ+9zôèãÇ…äéÿ~^___XX(”`€±±±ššZ?Wâìì,”`„ÅoÞë)¦©êDòŸC‡Íž=»Ÿ+·zn¯MûùÑøx•••4ÍÍÍMäQýG]|@ˆÈ=£¸¸øÙ³gý_8Ôç öôéSuu!ì oß¾}÷îÝÔ©Sû¿*I"¬ýœÍfÓétmmíþ¯jˆ«®®ÖÓÓëÿzh4š½½½¡¡¸ AëûÂ!$ŒCY8îܹ³eË–þ¯GÜê¹öígãáõ± W¯^-ĵ kUCͪU«„µª©S§Âцp÷sa­jÈŠÖª¾ûî;!>†D" kUâ\Ïíƒë÷€äƒ|H>È÷€äƒ|H>È÷€äëK¾'µ¢ªªºxñâüüüÎfÎÍÍmßR0±ÃO;+K]]}ÕªUÕÕÕ}ˆYlõª2EOðIüzö]t»Çö¿h‰¬^‰”››Ûõ”. Pµ‹Œ¸ÅëÖ-RG’““…UD¯6YÜêGˆú¹çw¨ÏÕÕÇÿ÷‰‰‰åååeeeqqq†­_¿¾oëQSSÛ»woË¢R©%%%îîî}+Klõ­2óòò´´´z[Vß–â“ø/õà»èÉÛFë|(T¯ÄèÏq$–.]Z^^^^^ž˜˜ˆ*ÿDÝTÙõa5Øk[|tpÿ}Ohkkëêê"„ôôô.^¼h``À`0TTTz»---__ßž—åçççêêÚ·˜ÅVß*ðÚÚÚÞ–Õ·¥ÚÇ)‘_êÁwÑ“=¶ÖùP¨^‰ÑŸãHÈËËËËË#„Bü@]Vƒ½¶Å‡®ßKII!„¸\në“ mN8ܸqÃÜÜ\[[û«¯¾jnnLÌÆår½¼¼ŒŒŒ´µµ?ûì³úúúÎÊÒÑÑá¿ ?~¼‚‚‚žžž`_ ;v¬œœœ™™Y@@"‡Ãñôô6l˜ŽŽŽ§§'‡ÃéÿV6•edd___ÿùçŸkiixxx´´´ØÛÛ£Vjûmì°J»]ŠÇãùûû[ZZ*++OŸ>ýùóçÅ)Ù_ê仸zõ*ýä“Oþ÷¿ÿñçd±XêêêááᨣÚè¶Î;,Zâ«·5‰tãÆ kkk 'N „:ÛÛîçµE$éÊ•+ÖÖÖÚÚÚ¾¾¾¦¦¦ªªª‚gŽvX‡íÃÖq$†:«.ê_Ã!!!#GŽÔÑÑÙµk‹ÅꢈêêêÖYµûŽº®í.Ö3èôð@Úî„·rûöí6S:„JNNnhh`0¹¹¹Ë—/Ÿ8q"Žã999‚ůù/æÎ›ýìÙ3 ‹}ûöµùÇq›ÔÔÔ·oßN™2ÅÃã}YïÞ½›3gÎ?ü€ã8ƒÁ‘‘Ù¼ysIIÉ_ý…ªªªjll”••=þ|yyùåË—)Jcc#Žã~~~+V¬(**JMMµ³³Û·o_רÃzèVOÖÓue.X° ::º±±qݺuŽŽŽïß¿OMM=z´··wëÚîp;¬Òn—:uꔎŽNpppYYYxx¸¾¾>~B¾77777·>Ö~ï×Ó“ï‚Çñ[·na†ãxHHˆ¾¾>‡Ãé°6º­s|ïç•••111]σÊÉÉél BhåÊ•t:ýâÅ‹¡ÚÚÚÎöÃöB·ûyëסµk×2ŒK—.!„V­ZÅ`0.\¸€ª©©Á;ÿvÚ„×çã¨k111•••=ªôîjûöíÛ=™³Í†à×@õÆ_‰‹‹‹ ‘oß@ñ½xñbãÆÚÚÚeee…Ñmm P©T~FÌËËëyåཀྵŸþ¯§‹=¿çrßv§öí^ó½€´´ôìÙ³ùÑw‘ïSSSE˜šš¶Ï÷#GŽ æÏ“‘‘!xÝæ×‰ŠŠ ¿,‹•™™ÙØØÈãñâââø5XWW'--ýÓO?Ñét Ãx<ŽãVVVåååüR©T[[Û®7PÄù¾‹Êäכ͖’’JKKã/laaÑæh¿Vi·KYZZ^½zU0õk×ù^ô_„èó}·ß… ›šš_¼xãøš5köïßwRÝÖ9>È÷s¡ä{þØl6z‡ûa‡B·ûy›\òúõkAA­_óƒéìÛi^Ÿ£®‰C¾ï¬º¨·ö|›ŠÉd^¿~}òäÉãÇ¿páBCCCat[Û­•––zyy¸ºº>zôˆ tKLò}Ïä¾íNíÛ½>^¿ÏÉɱ°°èbüã&lĈüü-i?aa¡`kkkkkëöe577Ÿ>}zîܹ………222ÙÙÙ[¶lill?~<Nuuõ˜˜˜Ó§O{yyÙÙÙíß¿Á‚¡‚‚‚Ö£P¨ªªöa“N•iee…ª¬¬äñxæææü‰%%%mæl¿,«³*íb)6›mkk+˜2vìØöqJêzð](((,]º4((hÔ¨Q¡¡¡oÞ¼AuXmtV _½­Û¼ÝOþ_iiiþÛâââöûagB×ûy›²”••µ~Í×Y¶ ¯^Gb®³èºÞÐÇ|ëŠF£­[·nÁ‚gÏž4iRO:–w]Ûmæôöö>xðà½{÷Ž=êîîN£ÑÄm›ÎöüžÈÂÚ„ÿ=—ËE•––¶žÈÿ†ÊÎÎ666n¿”¾¾~AAÿurrò±cÇÚÏ£  °eË–ââ⪪*&“¹jÕ*OOÏׯ_Ÿ;wŽ?“ÉÄ0ìÎ;uuu_|ñ…««k]]BHKKKð ‹N§ eL0ÑàïñÆ “’’ÊËËãO|ÿþýðáÃÛÌÙ~{R¥í—211IIIÌžžÞ~©!øE ŽZŸµk×Ý¿„ üÆ®ÃÚh£ÛJÈê522j}Rff&…BiÝ.“ɵEî‡]ìç¶E]ë¬Û„×íR=9ŽÄSŸ÷¢ÖÿüóöËnذáàÁƒiiiiii;wîl=œvuuuEEEEEEQQ‘ŸŸŸ¡¡¡¶¶6‹Åb³Ù222L&ÓËË !ÔÐÐ@"‘\\\îÞ½Ë`0Øl¶´´´‚‚Bhùòåû÷ï/,,LMM?þo¿ý&Ä­iiéÕ«WïÚµ+???--íСCëÖ­ãÄï^‹:ÚÆ.ª´‹¥¶oßîééRQQñðáÃï¿ÿ^°|m¸¸¸Ðét//¯Í›7ó§tXüº¨sþtÉ®ÞÏ?ÿÜÝÝ=,,,???**jýúõŸ}ö™¬¬lgów¸vx t¸ŸwÑu­WuØ·ãHÌõy/úæ›o|ëYÇœ••eiiùå—_&%%õ!0Am `¹lÙ2{{{ÇnÞ¼)nwîu±ç÷ü@ÚîÔúä~ϯ߷¹ !àã㣦¦fnn‚Z]¡¿uë–‰‰‰ŽŽÎîÝ»Y,Vûë÷---úúúªªªk×®¥Ó邲ÈdòرcŸ={ÆÿèÔ©S†††çÎ[»v­ŽŽÌÍÍedd¬¬¬BBBøs2ŒM›6©««kjjnݺµ©©©ë ñõû+³Í%«ººº 6hjjêéé}÷ÝwL&“Ãá̘1CII‰?Cûmì°J»]ŠËåúûû[XX(**N:•ÿë'è‹ýõûn¿‹6ßËÖ­[•””ø½løÚ×F·uŽòý¼'×ï9Ή'FŽÉïŠ|ðàÁÖᡯåçäät¶¶?:k:Ú·EÔæugßN›9û|uM®ß÷°Z¿æ¯äÒ¥KÆÆÆZZZîîîL&³Ã‹ît:ýÔ©Sæææ…Ñmm ÙÛÛ߸qƒÅbõdcz^?ý_O×{~ä¾íNÂé¯'ñD™ïADœï‡Qæ{ТÏ÷BÑEºñx<‡ÓÿrÙlvße¾'Ðúë}@&“{{…¾C=éÐZƒñrôŠŠÊ¶mÛˆŽtò=€¾ÓÑÑ9þ<ÑQ€îA¾$ä{@òA=!„êr˜Ì:ng¶VžÂ-Pà²0Šìàøç ù@¡¢„/Ï–õpææ§±ú`IöÎç|æ.¨ûü#²’×¢ü”ó¥Ì˜†Jhàÿ}7pg0˜ÖÔÄjiá°XœÆF‡Õ×7óxXc#‹ÅâLœh:nœxÐvc#—ÅRÐÔ$:Á­°°ÖØêô‘²¾ŒîXÅÊ·M8Öé<$2Ò³Sv¼ûŸ™ý¦®®Þfß¾‘““ÓÖÖîÿzú£¡õãѯ^•îßï@¡ ÖÓ–ÚÚÚrr==:ºÐE³ƒã¤–©–JK ¥¥…ÌdR˜L ›Máñþ=‹M"¡‘#éZZJýCl¹¹¹u6fnË.Íë0Ù“)$’šãmbæ¢.XÏFÙoíÛOÞn jÀñv×®¿Y,—ËëlÊgŸMûá‡e¢ LÌýôè'Ï ÏÖSH$…Láb\þÎ&'-g¤ad­g=Rwä…TåÅk˜v%]¼ãíH$3'§EgÏÊ*+Ñàœ\´iÓ媪Ç_¿öÖÕ…=ê#ÕÕ Ç?ÈÎ./*ª«­mä†RR$„÷QûO"‘Nž\½fÍb%»‰Wóá}d]éó²IAGº±œqÿ«’IQ[zÞisâ5Þn¯@½N-X0&6vÍp)©Nk‰ÍæÎ›7F”Q‰?yß»~OjÕéÇq#øeÙÂiɮ̾Ÿ|?!7’}kFÓ§#„ŽÆÆ^™9³¬OÆ)8Žÿö[”«ëéêêÇ Ô!Ù·§­­œ•UöúuaMMƒà0äñðöÉÞÇgùJöÏ£Ò©y9½}ìSH"“f{¯§™°]oõ/DBú•–ß´ÔÉ!$åííMt âKEE~Íš)$zö,L&µ?"##%''-#CÑ×WëâgÁPã0ÒÅc%ä&t=Û­­· 5 Ÿã45__ºÄc³q ã±XooߦÈÈ Ÿ<™è¸ÄƒÁܲåj@@"†á8ޤ¥¥-çâbCt\âÈÒR÷Ö­ç]ÏsìØòM›fŠ&1ñPÄ×9*Ãe'íПyÈÈr±¦Æy)i²ŠìÛ¿*1"‘"¡É;‡Ï<`D‘ô-<äûnɤiÓ,&M2¡Ñ2x<¬u÷= EÊÊJ¯´”~î\ôŸÆ¿{WŽaøðáê22ƒõò¡9Z;~`~x‘ÿïèJ˜´”´ó(çý ÷‹>0qF"‘J_¾¬/(à-Šp¼0>¾*-Ítî\Ь,Ñщ—Ì̲åËËÈ(åñþíHãhëÖÙÖÖúÄ&ž†WOHx_^^ßá\‰äíýÉ—_ §oì B–"rÓ¶X ¡j,G¦üwJ’L!Õå´ÐóXRÒäÙ^Æ£Vi÷ä&Î3ƒ4 IDAT=ñù¾GŒµ–/ŸðêUAEÅÁñ‚ãø±c+Ž]¶iÓLÍ´´Òß9{–—UWר­­¬®.¢ŽÖâÉe”K1½8µ8µ}ÊǸ-POUÀÄYSuuqBŽýw3P}aaÖ½{F3f(hi˜Xùûïg›6]nh`µé[sôè2ee!ôw“HÆÆšþÅ'‘зߺìÚå$úDG)ÜLN­ƒbdéŽ3¹”4¹2¥qáï†ÓT8>Ñþz½Àãa§OGþüs$‰Dâñ0Jfæ1yyÁ L&;>>'44922Á`ZZê:;Û8;š4É”D’ˆß‡½ÄÃxk/® ~ÌÃþk—¥¥¤¥ÈRŒ']zÔÁÊÀðÄPejjÀ‚m&’)…²àäI«O>!$*ñÁd²==ƒƒ_#„Út¢ÖÓSKJò"$*1Çáð‚‚^ž>MmjbøÀäñþ;I$ÒŽs\L`x§.—ù>‚žû¨®±œm÷¥Þ„¯zñãàìFžœºD¬…|ßk4Z†»û_>´88Œ¼q£ãQŸy<,)© 44åÁƒÔòòzõ9s¬œmæÌ±’––qÀÄâð8K~]BË q±ŸJMB¤à¯ƒÿ~þwPRÐÓ)pçJlâçñÎXYqš›Û~@"!»nã±cRÒÒD„F¼‚‚šM›.çæV Îá P(äåË'ž>½–ÀċŠHüý÷:½é‹/f͘1âÓO/Ú|2™´aô\!aÿFê Z²Ckß?¢7–³µ¬F,Ò0™£¦¤'Óý’’ò}_”—×õÕõ•+'­_ßý“=²²*ÂÂ’©ÔŒÔÔb55'§QÎÎ6ÖJJCåŠ,“ÃtùÙåYÞ3.+-%½rÂÊ¿·üz–÷ìXø±°Ô°éÓ῾Àµk‹ž<éìÀ4°·_~회’$ßÝ¡¤¤Âõë/0,¼£'Ÿ‘ɤ“'׬^ }ÿÅfs¯_O¼p!¶¦¦aýúi;v8èé©!„>ýô|||—‹II‘W¯žìï¿JÂ’ý‡BVàŠtEi3gus m¢##ïûˆÃá±XÜ^å좢ÚÈÈt*5ýéÓ\ EjæLKgg—Ñ::’›5½™>ëĬŒò „£ôÒ­tÿ{ÌKBnÂáÃ1ïbœ¬~\þã$“IÆ)žŸ=›ðÓO·í ]RÒÒ2ŠŠŽ?þhµt)!‹Éd?~ùò EŠÃé`³§OÁ“tB\.vëÖó3g¨UU 6Lûê+}}5Á§II®®¿É$GÇQ—.m’ÈÓÕéMZÖŠ¤Aß›^ø ߀No¢Ñ2h´Œ¨¨ ‹kggìâb3þss¢C@U UÓŽO›j>5à‹€öŸÒ2i‚¼,xédíä·ÒÏÎÈNôЉò7on,þèz*YJ ð±Ÿ~:ûðá!þžÌ̲]»þÎÌ,kó ëaÃTÞ¼9BTTb‚ŸéÏž¥•—ׯY3e×.gõö³­]{Ãð€€-ƒúN"N3$EDcÓ‰È÷DjiáŸøŒ3'ÊðÄÆåž±²â2™ü·$ EVQÑéøñ¡ù·¾=.Û¹3 <<•LF†¢PÈK—Ž?{v=Ñ¡†ÇÃnÞ|þë¯Qeeô5k¦¸»;jt6s~~µžžšœÜ ìÂiæ=fäÑèÅ Œéû G.…3:½ù^,ðû÷Q©¤æçW®îà0Dû÷á8–v8äðÛ’·+&¬8¶ìØD%j·ÝÜŠŸ>%KIa<Þ¸uë*’“É22ŸÞ»G’Z;C‡rr*Z¿ÞþÅ‹üŒŒ2 Ã¥¤È¾¾+×­ŠÃäðxXppÒ¯¿FååU¯];eçNG## Lœf¬èɇ<*½$‘qqýIʦÎj&jrªƒø…èA¾;YY4Zzddú«W**ò³fY:9š?̺±ñ»Iwþs° ¶`Íä5Þ®ÞfÚfD%:OOŸNð÷W54\pú´½}uffÀüùs¼¼ì6o&:4‚a¾té‡ö-‰„þø#Î×7œÃáÅÇ03#xÌÃ0üîÝWçÎEçæV-[fçîî4bÄ0¢ƒe¯ízqq½‰Êfü4ßÑô [ïÅWI ýá÷Tjú³gïÉdÒäÉfÎÎ6®®¶Ã†IÎóºÆáqn¾¸y$ôH ½äóiŸ{¹zé« ‰§§•¾|™ûèÑtÊÿ–âDÒlŒŠR36&66b]½šàåõODÄÿFúwO((¨ñõ ?~#±‰Žãaa)?ÿ™]±|ù„;--u‰j±yyT:¤ùþƒ|?Ô×7S©é4ZFtt&“É=ÚÀÙyÔ’%ã%õç|l.ûjâÕ#¡Gjk7NÛxdÉ]UInÝ:ÄãpæÍSÐÒZuû6’ľ=QXXëèxâ‹/fíß¿ˆèXˆÁÏô§OG¾{W±xñ¸ï¾s±²’œ‡Tb<œ,5D÷mÑ€|?˜ú÷EF¦UU5k:9Ù¸ºŽ“Ôþ}­±¸¬k‰×¼î{5´4ìtعwÁ^u…úK°ò7oþ^ºÔåĉ1kÖ p_½ú|U#2r÷ îXÞgTjú/¿Pß¼)Z¼xܷߺX[KH¦Ç1Tñ¦1/’žE_øÛÍ‘ƒ{ :qù~Pôï{øðíû÷UššJV®®¶ß¿¯‰Õôk̯~~\Œ»cÎŽý ÷©uc¼½ÓnÝú<&FYOBÚúž»}û…‡Çí{÷vM˜0ä®hP©égÎP“’ ]]m¿ùÆYp-cpÃQUzÓûGô|½©Š£a!oæ¢>òMÍAyãÀ ù~ÐkÝ¿O^^zúô‹›7oŒŠŠÄöïkhi8{îøƒã)ÊN‡»]v+Ë ‰»Ò9Læ5'' sóåׯ‹HUT|˜3Ç×ÍmòѣˈŽE¤ž<Éö÷øêU¾³³Í®]Îó[§0öÃÓSÅ ¥lU#Ys 3uus‰m¯Ää{ÉQZJ‰yG¥¦ÇƾÃq|üxcWWÛÅ‹ÇéêJæ?àÚÆÚ³ÑgOQOÉIËívÙ½Ëq—¼´äŸ ,~úô¶›Ûâß~R·ãoÜx)'§2*ʳõðT’->>Çß?âåËü™3-==çOœØéS+£ª´¦ü¨zóyêZVð¼[Ñ|/>|h~ü8›JMô(­©‰Åïßçêj+‘x«ªOFž<uFSIÓcžÇöÙÛe)>0AäÞ½9lЉ"#䆆&oß~=0pÇôéDÇ" ‰‰¹~~^¾ÌŸ1c„‡ÇüÉ“‡Ð¨`@A¾—d,÷Å‹¼ÈÈô°°äÊJ† ßĉ¦d²Dõï+¡—ø?ò¿wAWU÷À›gl¦%¶K»¡áϹs‡Ož¼ø·ßˆŽeÀÕÖ6Ξí;oÞ˜“'WË€{ó¦È×7üÉ“ìiÓ,öìY0¨3ý‡Â–y2ѱÇ‘#!·n½ˆÝ+CAæçWûú>O11ÑÚ»wá Êô©×+³BjÿMósÕÍœÕtƈѵyA.¯­­5j”««ë–-[”••#""<2oÞ<È÷­A¾=U[Û–—ÅãavvÆ..6 Ž55|ãŽÓ2i{ƒö¾)~³hÌ¢cËŽ5KtDýrwýúEEŸQ©ÙAÿ¬¡—/ó—-;ëï¿jíZ{¢c鯂‚šS§…„¼10ÐØ·o0ez¾ç¿”b\ÜÒ¼€ —ïܹ³¦¦æÖ­[‚<==“““©T*äûàôRs3+22ÍÝý¯‘#÷ëé};{¶¯Oèóçï1 #:´^À0ì~òý±ÞcÉ[Ènçݲ+³‰Ž¨ï>””übiùØ×—è@ú«¥…3sækÖü>¸ö¥ö jÜÝÿ22Ú=uªO`à 6›KtD‡º|ù²•••––Öñãǯ_¿nbb¢¢¢rèСÎÉÉÉ$Ö¯ïß¿?fÌYYYSSÓëׯó'²Ùlmmm6›ÍårOœ81bÄ%%¥iÓ¦ýõ×_ü5èêê&&&¶.¨¡¡¡°°°M)¡¡¡¶¶¶òòòºººÇï¢è'JÈ÷ ï¸\Þóçï ¶³óÖÓûvòä ~ü8kµn<Œø2pÄÒÛ¤7\Þð¾ê=ÑõÑë?ÿàîþ×ýûo[ˆŽ«GØ\öµÄkfûÍd¶Ël½¾µ”^JtD½†ñx7—/¿êäÄãpˆŽ¥RS‹ ÿwéRÑôQEÅ¿™~üx¯€€DqÎôõÌ×—Êï®ÍüÃ.éºCÊ‹3}ÙáB¯_¿ÆqœÍf·y““Óá"æûºº:iiéŸ~ú‰N§cÖÐÐÀãñp·²²*/ÿ÷‡•Jµµµµ´´¼zõª`m×®]ãgz~ÖïºD‹•™™ÙØØÈãñâââøAvXtgñHÈ÷@È k.^Œ[µêœ¡áÿLM=?ûìb@@be%ƒè¸ºÇâ°.Ä]Ð÷ЗÝ.»õúÖòú¾üé!PÝû÷?›™=ýå¢é 6›ëèxbéÒ3<Þà;“_QñáС`3³=¶¶béy,éBÙ·Œ?ì’œRŸ+,yÆàqûXá­ózg¯Ûhï³³³¯ãããW®\©¨¨8sæÌð'ÊÉ}ôeUUUyyùäädÁÚÞ¼yÃ_ðaÃZôâÅ‹‰'655µ.1$$dÆŒ¶¶¶›6mÙaÑN”ïÁ@©­m |±uëUsó=ÿ[²ä—_¥½_Et\Ýhá´\ˆ» »[WñkŽA{ëšÓ¹åç¿ývÊĤúÝ;¢éµ³gi¦¦ž¹¹•DÒ;UUŒC‡‚ÍÍ÷ØÚ~Èb‰ûÉ•°mÙ ~Ee¯°~ÿ®ês¾çp88ŽÇÄÄð3qssóãÇqg±XW¯^•’’ª­­ÅqÜÀÀ@°:ž™™imm}íÚ5ÁÚ×ï·lÙ²|ùòÖ}>víÚ5nÜ8¼Õ/ŒææfYYÙ ØL&?È‹î, ù 8&“™æéy{̘Cƒ¥_cK£o„¯ú.uåÊ{ƒöÖ7×Q`\nÀÂ…-Z„qÅô/f‡²²Ê=Ξ¥H/ÐéM>>¡ææ{Æ;|ñb\S‹èˆD­ù¾ººšßËïÇüûãqg2™rrrAAAÕÕÕüñ‡œœ“ÉÄq|×®]+W®,((HII™2eÊÎ;ùå{÷î•——GDD˜™™ñ×PUU¥©©¹nݺ„„„””ooo„PXXÞ*ßÓét‰ÑÔÔ´gÏþˆ‹î, ùˆ¿ŸOèÔ©>zzßNœxÄÓóvddšØžÿd0¾¾ªîªšßjz…x1˜ƒàªDufæ)cãWüAt =Ååò/þyþü“Îà¸JZ_ßäãja±w̘Câ–é1^þ¦!ñDñûG~^ªùÇq555ssóÁ™öÛ·o›››ËÈÈXYY…„„ð'2ŒM›6©««kjjnݺµ©©‰Ëåúûû[XX(**N:õÙ³g‚5¬\¹R___YYyòäÉ÷ïßçOo}>ÿÔ©S†††çÎ[»v­ŽŽNgEw8QÀý÷€YYaaÉTjÆÛ·%**ò³fY:9Z°`¬’’ØÝA^ÛX{6úì)ê)9i¹Ý.»w9î’—ë±~úéÕùói45¢céÞ•+OŽ yøðÖÖúDÇÒ ƒyölÔµkñRRR;wÎýüóŠŠb±»âªLm̧ÖçGÓ›ª8êfr¶›t-j/ïÁŠ‹ë=J£RÓŸ={O&“&O6sv¶quµ·g«U7TŸŒkÀy¸ÞDeSG5Uy iB‚’ò=¬êë›ù—ù>|ÛÜüoÿ>WW[KK]¢Bz–÷ìXø±°Ô°éÓ}>ñ™3rQ‘°¯Î«?aÂâß':–ÕÔ4Ιã»páØ'V B±ÙÜë×/\ˆ­©iX¿~ÚŽzzjÆS™Ò”üg…©£šñlUYqì )È÷`Ðc±¸/^äEF¦‡…%WV2ýû&N4%d¸ñ„Ü„C÷ÅfÅ:Y;ý¸üÇI&“DCkùÑÑw7lXzéÒˆbqÏÛŽ/^äÅÄì%üZ —‹ÝºõüÌjUUÆ Ó¶oŸ3|¸:±!0p ßÉaxZZ •šò&7·JSSÉÁÁÊÕÕvöì‘22¢þŸDˤ>ð²à¥“µ“ßJ?;#;ÐZÄ7ß<~¼)6VN•È«¡‡ßnÞ|% `«££5að3ýÙ³´òòú5k¦ìÚål` ºLßPÊʪ/ŠgÌ?kN‘%‹¬\0ÄA¾’©°°–JM M~õª@NNzÆŒ‹›7oŒŠŠHÿSÒ2i{ƒö¾)~³rÂÊ–þ`¥k%ÊÒZêëÿtp0›;wÞÉ“„À÷áCóœ9~3fXž=KØSx<ìæÍç¿þUVF_³fŠ»»“¡¡ˆžCWŸß’UŸ]_›Õ,§J1ž£:i§>\˜"ùH¸²²úèèL~ÿ> ÃíìŒ]]m-+²k´8އ¥†ºw(­4mńǖ¡3B4E·–~ëÖ•7n˜Ì™#úÒù<4?~üïc|Z,-u]]Ç9;ÛŒk(‚Ò1»›t÷à? j ÖL^ãíêm¦m&‚r[»¿ukEJÊçQQ2Jô<‹ËúôÓ çÏæêj+â¢1 ¿{÷Õ¹sѹ¹UË–Ù¹»;1L”d‡ÖÖf3MÕ†U"Áù{@È÷`ÈiÕ¿/¥²òƒ‘‘¦³³‹‹ÍÔ©ÊÀ6Æçæ‹›GB”ÐK>Ÿö¹—«—¾šè~×\[{ÕÁaä’%Ž>>"+”¯©‰5wî‰1c .]Ú$Êrq KùùçÈììŠåË'|ýµãÈ‘„ݾ± ߃¡Kпïþý䜜J Źs­mG)( àC`Ø\öÕÄ«GBÔ7×9óËý ö몊( ¥=üî»ÕAAS¦ˆ¦D¾ï¿ÿ'(èUlì>eÑ”ÈÏô§OSß½+_¼xÜwß¹XYé PYœf¬8þC~T}s Çõ²å•@?A¾¡Výû’’ de¥gÌáìl3þ˜{è ‹Ëº–xÍë¾WCKÃN‡{ìUWEñ6mªËÍÝH¥RäDÔuñÅ‹¼åË=yrÍêÕ“ES"•šþË/Ô7oŠ/÷í·Î4Ò.‹Á+zü!?š^ò”ÿl%Ó¹êÖ+´\—b ò=©­mŒŽÎ K‰‹Ëâñ0~ÿ¾… ÇêëHÿ¾&VÓ¯1¿úEøq1îŽ9;ö/ܯ*?°·Ì5VTüéà0nÆY hA|,×ÉÉßÈHãÆm"(ŽJM?s†–”TàìlóÍ7Î7OÔþü‚èz Ÿ¬bê¨f4[UNžÄä{:Æd²ããsBC“##ÓŒíß×ÐÒp.öÜñÇ)RÏyžîsÝdpÐÕäë×£þôþ}Ýq㮾ãÇÃÿüóILÌÞ~”M||ö‰_½Êwv¶ÙµËy„s/ývµ¬ª”ÑLUEâ‡n ' ßÐ þ0}¡¡)áá) 5\\F»¸ØØÛ› w˜¾ÚÆÚ³ÑgOQOÉIËívÙýã7rÒsÊÇ׬aÖÖ®ˆ’Àû¿SS‹/>}äȲM›f \)ññ9þþ/_æÏœiéé9âDS!®ãápã ïè…¬¬Š°°d*5#5µX]]ÑÑÑÚÙÙfî\kEEYaQÝP}2ò䙨3šJšó<¶ÏÞ.KÚÊ>]utœüõ×S¿ýVè+çãpxóçŸRU• úz€lœ˜˜ëç÷àåËü3FxxÌŸ_]w<ŒB $ä{ú¥®®)**ƒFˈŠÊ`±¸vvÆ..6 ½Ó¤) (IDATŒJ’+¬-üñÁWâ¯XèXì_¸Ý”uRd¡]AÀ1ìæ²e8—ûéýû$)!_„Îʪ˜7ïäž= vì˜+Ü5§¤ÿøcØ“'ÙãÇíÛ·hæLáÜÿÖò´2“YÇQ5’5ž­fâ ¦3Fž$ ä{„£Uÿ¾tƒii©ëìlãìä{„Lп/""µ¬¬ÞÀ@}Î+gg›9s¬úÓ¿/£,Ã;Ô;()h´þèË»MtJ´OþùÅo¿m¤ÑÔLL„²B„ÐÅ‹q>>¡î¶¶Î#nÒÒJýý#h´Œ1c \ÜŸLß\ˡȑ¡S=‚ ß0€Z÷ïSSS˜9ÓÒÉiÔ‚c•”úØïméÛ£aGZcofô“£NÖNýŒãrÿZ´HVYyõ;H§ jýwìpؽ{~ÿ×–‘Qæç÷€F˰±Ñ÷ô\àä4ªoç6+ØÑõùÑõ•)3öY-×êl .ï…ââºGÒøýû¤¤È“'›9;Û¸ºÚ¦Ò‡µ=Ë{vøÞaZ&mºÅtŸO|挜ӟتÒÓÿZ¸Ðñرqë×÷g=!ÇÝÜÎÑéMîîçÍŠïßW8žbm­¿gO3ý‡"V~4½ º¾:£™"K6˜ªb2GÍh–Ь < 9ï):½‰FË Ñ2¢£3™LöèÑÎΣ–.µ³°Ðéíªâsãß;›ëdíôãò'™LêsTKØ­¬ß¯GÏÞ¸ñtß¾ ÐÐolmû~[^^µŸßƒððSSí={,Z4®o·óÄÔS=òäT)F³TMæ¨ ŸªL‘…x`è‚|1ZZ8Ožü;>ouuCŸû÷Ñ2i‚¼,xédíä·ÒÏÎÈ®ÁðØìë..*††+ú°8_YY½ƒƒßúõS^Ò·5Ô?žbb¢µwïÂ>gz>v¯&³YÏN‰40wÿ0¸@¾€`üþ}TjFDDj^^µ¾¾˜¾^õï£eÒöí}Süfå„•G—©;²·a”%%Ýüä“?ÿ±ëɯƒWÿ¡ ¶¾8‘Áca+GÁ}tt ò=⨤„ûŽJM}G&“þ¿߸aÃ>=/..ÎÇǧõœ„—)•婿Éñä&•÷îŠ>æååeéèTªôºai©!‰„éë—övÁÂBã–y-­ : ký•Jm3sS%§ðq}AL}yR#‰Œô'*›8¨ÍVUÐÀQ ïkõõÍüËü¾mnþ·ß’%ãGŒ† \½zõœ9sÚ,…‘0–Kž+ßÛâÈ8Žõõ®<'‘H½nO8)).™üQ¦¯ªªÊÈÈhß:=?]šû Îh¶ªñLÕáöÊR2Ðÿ€ž‚|ÀàÀbq_¼È‹ŒL }SUÕ`l¬éäd£¨X»ÿÖ˜˜h¢£²ØØØ#GŽ´oX EŽ,%×êè5¸ €ÁAV–2s¦åÌ™–ß¿$117""5,,¥¶¶DB§²eUà¹xôœ `‘––š={¤¯¯Ûë×^{öŒÅq6ÑÈ÷ V$IG§×WèCä{@òA¾$ä{$ŸƒƒCiiWwÆw;C{¥¥¥}¦Ï úò= /”””Ö®]‹*//_ºt)ÑáºùЪªª[·nEaÆ`0ˆÐ È÷ -4mãÆK–,¹uë–`ú«W¯Ö­[çêêzãÆ þ.—{þüùeË–-[¶ìüùó\.—*þõë׫W¯~øð!ÿ´üŽ;BË—/ïl) ÃnݺµaÆ… îܹ333Sä €|ÀÐÿÛo¿mÛ¶íÂ… ü‰ÏŸ?¿xñâž={.]ºÄÿ¿T^^~áÂ…“'O¾~ýúÏ?ÿäϸoß¾#þŒçܹs¡àà`þÛöKݽ{÷öíÛ[·n ذaÃùóçE½ÁÈ÷ AŸ|ò‰’’Ò¼yóB‚Sñ«W¯VPP˜1cBˆÿ# ""â›o¾ÑÑÑ133Û¶mÛ‹/øsnݺuüøñrrG×~©û÷ïoß¾}æÌ™šššS¦Lá_ˆ|ÀCêh¼öUUUþùçáÇ#„ëêêøÓÛüPèv©ï¿ÿþýû÷æææü ú½€^ƒóù€ŽÍœ9óâÅ‹•••yyy{öì¹wï^33™ÌΖZ²dÉï¿ÿžPWW÷âÅ‹+W®ˆ$|ÀGàÿ= c_|ñů¿þºeˉ4kÖ¬mÛ¶ÕÔÔ´ŸMWWw̘1+V¬xðàA‡KIKKs8œßÿ½¶¶ÖÜÜüðáÃü.ýQ"µa0X®^½:&&†è@„,66öÈ‘#Ð: Dp>|ïÉù|ïÉù|ïÉù|ïÉù|ð<]=¢C2:NtHÈ÷ b†††nnnDG1 &L˜@tHx~> ùàú= ù ß’ò= ù ß’ïÿž¢zÉ ²ëIEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMLSParser_8hpp__incl.md50000644000151400015140000000004011653571065016734 000000000000004b29e3581fafa9c849682a6fd16947deXQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMAttr__inherit__graph.png0000644000151400015140000000772711653571066022437 00000000000000‰PNG  IHDR•uÈ„4šbKGDÿÿÿ ½§“ŒIDATxœí{P×€O @”"(^”"âå¥Ò-%À,޶"‚(XËm;T±aÐÖA†©(b;ñAk…™1ò*(R[ÃãBJx“‰ä±÷Ó»wK>xÝûýuö·çwöœý²g7›Ç’¸Eo¾;@0-ø†ð‡oø†Œ]¸{÷îñãÇç«+/NOMMEÿæo``àÎ;ááásÞ+‚¢¾¾~ñâÅØY³RQQÑ\õ‡à娾}û„qþÃ7„?|CøÃ7„?|CøÃ7ºé„aÙ²eÑÑÑCCCØ R©4))ÉÓÓÓÄÄäí·ßþæ›o”J%š»bÅŠ ·õ7nÜH"‘x<¬Ž­ÀãñH$Ò öí¥*?Ýô¨««|>ŸÉd¯]»V"‘ÀU###o½õVcccfffSSSJJÊ?ü¤R©`…žžžÖÖV´)±X\[[‹mœÅb]»vmÎÆ2:ëÏÒÒÒÚÚÚÎÎ.  ¤¤ÄÑÑ1''®ÊÈȰ´´¬¬¬ vvv mhhèééa2™°ƒÁ(..F›*++óóóÃ6·ÿ~¡P8gÃÑÆKû+++³³³‹Å€«W¯:;;K¥R€B¡HJJ²²²¢R©III …N•••ööö555iiiööö–––ÑÑÑè¡ ™¸y󦇇…Bqtt¼rå @©TNšŽ‹¦˜—H$Ò§Ÿ~Z^^ =ª¯¯V066NJJ*,,„‹áááEEEè Éb±Â° &$$¸¸¸ÄÆÆj~z*‘H>þøc –˜˜(—ËU*UVV–³³³‰‰‰ÏǧûKƒ`€sò<¢££wïÞ- ­¬¬>|ƒ™™™Û¶mëíímkk[»víáÇŸEÛ„…ŽŽŽ 0™LAàHa;‘‘‘mmmnnnéééÙÙÙT*•Íf÷÷÷———ÛÚÚÂÊšc§^”Wñ'‹i4š‡‡Gzz:tqq°ÌápV¯^ GÕÖÖ† ÈÊ•+Ùl6\ûÛo¿¡eÍ,‘Hd``pêÔ)±X¬V«GFFT*•¶tm¼‚¿úúz 4wÿþý)))‚aÛD ¹¹¹‹-êííEýëëëÿú믰M6›íäääìì|ñâEtC—.]‚•5Ç>õ ™ò‡ HFF†¾¾þÀÀ¡P(ØÃÚÔÔŽj||®år¹šíhf!rïÞ½°°0ccc__ß[·nM‘® M?þø£——,[[[s8œ )çÎ{ÿý÷ÑÜšš'''µZrþüyd2*•ÊÏÏoÆ p¿õõõd2l³­­B¡,X° ¥¥ÝУG`åIÇ>5šþ^åú¥¯¯ïÌ™3 ãàÁƒhÐÂÂÝeb±øÁƒ0n``°µµíéé‘–––¯¿þZ[–L&S«ÕÅÅÅ"‘(&&æƒ>‰DÚÒ_¨gÓ¦Mp1222##½ÚH¥ÒÌÌÌàà`4òÞ{ܻwÃá„„„LÚ¬žž“ɼÿ~AAŒXYYéëëwuuÁÅÎÎN;;»eË–a¯f?~<õ{9°2_äøS©T ãØ±c"‘ÈÚÚº¬¬ Æ?ÿüó°°0xåííí}àÀìY!--ÍÃÃËår¹\Ÿ½{÷jË’Éd …Åb P(™L¦-}Šóúþ¡¦¦fË–-4M"‘ÀµþùçÊ•+ýüü***:::Øl¶«««\.G0‡W||üªU«Ð6'sçÎÁë&¸ØÕÕÅår]]]=š››K¥RKKKAEE…££#¬¬9ö©÷<2#óç·ß~ëéé gÅ’’‘H„ Èðððž={/^lnn+•J±þärybb¢­­­©©é®]»Äb1ŒkfÁn¼ù曆††...7nܘ"» lû]ºtidd$vªGdttôàÁƒnnn .tuu=~üøØØš õÔÔÔòòò&Ä'øS«ÕAAAè¦E"QTT”¹¹¹MBB‚L&S*•YYYNNNÆÆÆëׯ‡Ç™¶±O¦?v´EEE;vì@ˆoþ¿?ÿÃ~@«³ïß_ø†ð‡oø†ð‡oø†ð‡oøFÇý=|Ø5ß]˜]&ùþ5¼¤tu½I£õŽÏwGf.—K§Ó±‘¿ù[ºt©.ýøA&#Ëd ÆÇ­­¬Fæ»/3N_·n6BÒá»YY99·Ìëëÿ9ß}™-tùüW\Üø×¿þýûïýóÝ—ÙBgý=zÔËç‹úׯ7Íwwf õWZÚL&ë Uqq£Z­›§ Ýô§R©Y¬F¥ò¯oH 44èæ ÝôW_Ï‹ÇÐEý’’æyìÏì¡›þØìf2ùCS(T7n4+ª)RpŠúW–•µ(•jlpxøYmmÇ|uiöÐAUU¿ËdÏ&Éd›­ƒW¡:èÍnÒÓ›8.¥R}ëVëØ˜ŽÜHCÑ5££Ïnß~¬R©5W)ª;wÏ}—f]óÇá<Wj[«{W¡ºæ¯´T«!µ©®þ}xX6—ý™mtíþ5Ÿ/ÆNžë×?v,”Áø±¶652šäS3œ¢;#Ðh‹'D,-MÌç¥3s€®ÍŸ¯„?|CøÃ7„?|CøÃ7„?|CøÃ7„?|CøÃ7„?|CøÃ7„?|CøÃ7„?|CøÃ7„?|CøÃ7„?|CøÃ7„?|CøÃ7„?|CøÃ7„?|CøÃ7„?|CøÃ7„?|CøÃ7„?|CøÃ7„?|óœßo¢OÖÂ/wîÜ æ»¯ƒÁ€¼šœ©˜4‡ýœ ¨zzFóÝ‹iqíÚµ)=ÿ÷Óiiiþþþ³ßO‚I˜ºqþÃ7„?|CøÃ7„?|CøÃ7„?|£kÿ¿4)Ø«p+++OOÏ}ûö™™™¡A¹\~ñâÅÆÆF@`ooïëë»sçN}}}˜kggwåÊøiHrrrCCCaa¡Œ\¾|™ÉdîÝ»7""b®†Àësü9sæúõëÅÅÅÉÉÉR©466vtt®‹‹‹koo‹‹+((ˆŒŒäp8‰‰‰jõ_ÿ£& ;;;ѦFFF°Ïs RUUE¥R«««Ñ @ زe‹fyfy]ü™™™-Y²ÄÂÂbÍš5ÇŽ³±±)..†«._¾lff–ýÎ;ïÐh4__ßüü|¡PXQQ+xyyÁg‰CêêêV¯^m¼»»»··÷СC<ÏçàZ­Ö,Ï,ÓõWWW622¨¬¬ŒŠŠ’Ëå¥R™ŸŸ¿uëÖ­[·æçç+•Ê?þø#  ¹¹yÇŽ---L&sÇŽ!!!'Nœ@Í,¸‰˜˜˜ 6DDDܾ} R©&M‡›Ð,O€D"}øá‡ð9ì‡ýË^ …²sçN‡ýýýkjjл‰wïÞõóóÃ6XUUåéééååeoo_UUƒñññ€ÐÐÐ eì~àr¹¯¾ëÓ÷÷î»ïzyyååå‰Åâ¼¼¼¯¾úŠB¡X,–@ 8þüéÓ§›››™L&¬_TTtøðáÖÖÖÚÚÚ'NäääôõõµšYr¹<===$$ä§Ÿ~ŠŠŠ:yò¤\.g±X“¦›™™%&&j–5¡Ñhýýý€ÑÑQ‘Häää4¡‚““Soo/,»¹¹Éd28…J¥Òææf´&œ<t:BÏž= `³ÙÊØý°bÅŠ—ßåcæÏÏ>û¬¹¹911qË–-...0XQQñÅ_P©TGGǸ¸¸††¿>ˆ]³fMeeå'Ÿ|âèè¸|ùòäädWWWmY …A™Lfhh|óæM##£òòòIÓ7mÚ¤Y~H$zþÓÓÓ£Óép ­¯¯www_´hZ³½½}pp>ÖN§÷ôôtww?·}¸àk}:ÌÀõço¼±yóæK—.>} …ÂmÛ¶¡‹ÆÆÆ°`oo Ñh0âààààà -ËÄÄ$''‡Åb1™Lgg爈ooomé/ŸÏ·µµ…_²d ÇóòòÂVàñxÎÎÎ袿¿VVVLL̤“§J¥Â^žTWW/_¾|êÀý0}fÀßàà`II‰——×Ù³g9ƒ¦¦¦999ðòÎQmL˜›› …B8H÷àÁƒ>úhÒ¬gÏž©Õêôôt¥RYYYyäÈ‘ÒÒRmé/‚ eeeèƒô Æå˗׬YƒžårùÕ«W±¯$ww÷±±1.—ûË/¿!7VSSÛ½{wEEÅÕ«Weâ?~¼­­Ëå9räÎ;IIIiiiÉÉɾ¾¾/^ôòòâr¹ÊÆí"‘¨‡D¿üpbccéééÔ¡àäO›6MÙ´¨œaÝš+++ƒ‚‚V®\9cÆ h¼råÊŽ; 8ŽŸŸ_YY´ûúúÚÚÚæççûøøp8 ‹™3g*ó‹Å8Ž÷ôô°X¬¥K—æäähhhäææ*t×ÖÖþì³ÏäËCÃ0©T ËjjjÎÎÎpw¾}û¶••Õ¸qãdÚ›™™ùúúž8q¢µµ•0J$’ëׯs8œÍ›7çååeggûûû;99M˜0ÁÁÁØd•ÍØÖ­[?%AØ) ž|¸R Ãz³¢££óùçŸÿøã‘‘‘„±¹¹ÙÍÍ8ÔÖÖ†sss@KK‹™™´Lš4iÒ¤IʼƎšš?}úôõë×;88(s<&&&0ùñãÇ×ÕÕÙÙÙ‘ÔÕÕMŸ>8œ7o^DDÄ–-[ä÷eWW×¢¢¢ˆˆˆ;v@ ŸÏ—J¥°#€©©i[[†aä˜Ãá(;,À{srGMMMÔ££žüádX…ØÚÚš‘‘agg»wï^hÔÕÕŽŽ†3·¿¿3c2&Lhnn¶°°ÔÕÕ•––nܸQ¡Woo¯T* —H$ùùù{÷îÍÌÌTæ>HpÏÎÎvtt„‡ .¼pá‚­­-q™(‰’’’ÈŸ¥••UwwwMMMyyù®]»†Å0,$$ÄÇÇçÒ¥KТ§§§¦¦Æãñà©òüùs}}}uuõGM™2¶yüø1õŒ êÉN†okÆqüèÑ£«W¯ ­¨¨())v''§3gδ´´Ô××óÍ7™™™d¯Å‹Ÿ={¶¡¡¡¡¡áøñã---ʼ0 .**êêê‹ÅL&SCCC™{WWWnn®|ÐÑÑÑÞÞþâÅ‹ªªªÐÐP·víZXµiÓ&>Ÿ¿sçβ²²ÆÆÆ›7oèëë¯\¹’p‡»sTTÔ|@þRcc €””xÈd2]\\~øá¿Z¸páŠ+ââânݺÕÞÞ^VVvþüùÁÌØ`èééQU(U1|ÂÏÌÌìèèðôôd2™_ýuTT”••ÕØ±c·lÙròäÉ/¾øÃ0ggg??¿/^^6l‰DÁÁÁ"‘ÈÑÑÑÏÏÚå½X,Öž={N:ÕÚÚjbbÆb±”¹wtt;v ^’Ë€í۷µµõéÓ§‰ KKKëôéÓñññ\.÷ùóçÆÆÆ ,pwwWWW'ÔÅÅ%++ËÕÕ•zB–/_~óæÍòòrx¸cÇŽ“'Oúûû«««ÏŸ?Æ L&S,ÇÅŽ|ùrÊ”)¡¡¡ðžW~ìƒÿŒŒŒ¬¬¬ÜÜÜ._¾¬0yò‡U>†žGü÷ŸGT•~ÐÚZ€„ˆ HˆZ€„ˆ HˆZ€„ˆ HˆZ€„ˆ HˆoË‹=/_öŒt£Uþ²ÂápôôôTm!šttG:‘á†Ïç×××Óî•#îîîª 5º¨¨0À0ŒÃat"#€ÌqoƒÊVÄ'µµÏ,ˆäçóÁƶG(]#¾ÙÙ÷˜L5&“‘“so¤sÝ !Ç“’þH¤IRR)Ú[Þ$Ä¡S^þ¸µõï?Íli鬨x<¢éŒn‡Nff¥º:–ÕÕwG6ŸQ â‘H¤éébñß²)÷§§—K$Ò‘Íjô‚„8DŠ‹ÿzõJD¶¼z%ºuëáHå3ÚAB"Læk³Çdbéé#•Ïh q(ˆDâK—ª$’×^¥ ‘H/]ª‰Ä#•Õ¨ q(\»ö@$RðÆ‘HœŸÿ`øóy@B iiå &og0°´4´;$Ä7F ]¿^«ðY"‘æç? {‡?«ÑâsåJ ñ­}zS¥üúkÀÝÝt¤}øúúåׄˆa Þ” †ÁÐô÷¿éDFdíɾº899yíڵÛâ_GJJЇ‡Ù‚®´ A ´ A ´ A ÞA!b$&OžìííÝÖÖFnÐÕÕ¿¨¨ˆº»ÀÀÀ'Ož¤¥¥Mœ8±¶¶ö«¯¾joo?qâu5l6;$$DUͨÓE¶0™L™°õõõööö/^¼x˾”‚“$''ã£ÀljC©Têìì¼ÿ~xäää$‘HˆB¡pòäÉgΜ¾K—.Ý»w/Q›°lÙ2"¦Lp›Í.--% ÍÍͬz>|(óÙ …#’ïH…=â8žœœ,íͶæììlSSS>ŸHJJš>}zWW@,‹Åb¸¤ççç›››„……™››¿÷Þ{ÞÞÞ0š¼ ''ÇÚÚZSS“Ãá\¼x ‘Hº“w ŠÃ0ÿÜÜ\x˜˜˜¸ÿ~¸øA´µµƒƒƒá¡»»{JJ þ¿Ý955uÍš5ÔÓ2nÜ¸ØØØ—/_ÂCggç'Ož XE=i Ĉ.]ºdkk«¥¥ell|øðar×äkþuuuÂHÝKqq±ÂÉϧ££#ÀÈÈèmÂR!sr ¸"z{{oÚ´©¹¹ÙÐÐð?þ€Æ#Gޏ¹¹=}ú´ººzöìÙ»wï†'вeË®_¿>sæÌêêêšš‡   e^B¡PCCƒËåòx¼sçÎ1™L¡P¡Ð½££.c2e wŠß¹s‡Ífã8O¡¶¶6™AݺuËÐÐúþùçŸFFFwïÞ…aµ´´à~D±"^½zÕÔÔTCCcÑ¢E?Lõ¤Ý»w~:,ËÇǧ±±ž-­­­ •T*]»v­¿¿ÿ`z …€{÷î HˆÅbùø2 –ZEò+â ‘Ïç›™™Y[[‡‡‡Æ3fðxá»mÛ¶={öà8ž˜˜¸hÑ"rL…BÄq\"‘”––8pÀÒÒ’Á`üôÓOVQOñÁ÷ööÖÖÖ …ÂþþþÂÂB˜…¹\®£££H$L/¸¢ÿÖ““3  K „ˆãø FKK aÑÔÔ$DWW¦Õ××kkjjäãÈ{á8^\\¼fÍmmm''§Ë—/S¸+C^+?ÿü³,åååɸÄÅÅ-Y²„ð-((˜:uªT*]µjÕ©S§pJ! …¤¤$â¢S*•†††šššRW 8iä>++kΜ9666›7o¦bUUÕ¤I“)&™Ü‹ÂáŠô'ÓÑ€a©QŸ>}j``°dÉ’7F333b0|>¿¶¶–œ7‡ÃÉÉÉå»wï?D"QPP‰‰‰®®®§§'ŸÏ‡vy/x®L™2…Åb͘1#++‹Â]áú¿~Ñ3qâÄ 6¯"p …»ví²´´ÔÒÒš9sæÁƒ»»» _x¢bbbdì 'P"‘„‡‡[[[3fòäÉ!!!===Б¢ŠzÒÈ娨¨ñãÇOœ8166ÖÓÓÓÀÀ@áB`±X$ìôŠ(‹çÌ™£££3˜äD~E”}B=‹àƒ±dí½ƒ?ñ!F#HˆZ€„ˆ HˆZ€„ˆ HˆZ€„ˆ HˆZ û„v~~>ñÀñQQQ!cAï¾AŒ¯iOáï§Ä0ƒ®´ A ´ A þ ÷!·¸0IEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMLocator_8hpp__incl.md50000644000151400015140000000004011653571065016644 00000000000000cfd74a5ad1250c7ec1c05dd179e41e95XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMLSParserFilter-members.html0000644000151400015140000001207011653571065022757 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMLSParserFilter Member List

XQilla-2.3.0/docs/dom3-api/DOMNode_8hpp__incl.md50000644000151400015140000000004011653571065016126 00000000000000a884535c995299f0bc7ba93676c81165XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMComment__inherit__graph.map0000644000151400015140000000066611653571066023113 00000000000000 XQilla-2.3.0/docs/dom3-api/inherit_graph_8.map0000644000151400015140000000037411653571066015753 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMRange_8hpp__incl.map0000644000151400015140000000003511653571065016371 00000000000000 XQilla-2.3.0/docs/dom3-api/inherit_graph_38.png0000644000151400015140000000277611653571066016055 00000000000000‰PNG  IHDRs(BhR…bKGDÿÿÿ ½§“³IDAThíš_HSoÇŸ3·sX¨mšNE‰X‚DšºH æ¶ !PVHz¡¢†`7 ZB‰T‚0¤¥^¬.+¢,R6È冫PƦžsæŸÛy»8üólNó×QŠó¹:ïû>ïû|÷}Þsx† P¶€ÙY©• ÙY©PŠÚwîܱÛí‡"實³³Ó`0„÷ˆu:.—«¸¸øUýõ 744ˆ:ÅÎ@qqñóçÏDÒ?†a‘ò9+²³R!;+²³R!;+ûqvjjJ©T =V«Çq§Ó XG-//÷z½{\Ã0dzÇHµZ}þüùééé}ü–H<OÔwýï²g nÞ¼yýúõÕÕU (ª¹¹¹««+77—xûö-I’‹‹‹ÇUWWï´ÔÜÜܱcÇb§£(ª¦¦&###))éêÕ«~¿?< I’‡#;;ûÊ•+öÞn/Úb¶c2™L&Ú`0xúô鯯F„еk×ŠŠŠX–å‡Àív ‘óóó@QTÔuÜnw¸Ñ\£ÑXRRâr¹<ÏÅ‹yy¢È¥¥%XZZÚUù®’DÚb‹EÜ)jïÑY„ÐÇ•JeOOAN§3ŸïçÏŸn·{kk‹¸{÷î™3g³0 ³°°ÐÜÜ\[[+¬sïÞ½ÊÊÊïß¿;ŽÂÂÂŽŽŽ@ @Ä“'OH’P*•@ ¶³‡V³Ç]ºt)..®ººZ”F@¥R ¾¸‚ÁàÌÌL …B|ÑE:k³ÙB¡PHT•Eµ··?~üÓ§O(â<ÿüù³œ““C’$ÿüêÕ«üüüååe•Juÿþý••Žã† …B’:»ÿ¯®gÏžÙl¶±±±‘‘«Õ>$8²¬Íf;yò$à8>;;k4‹ŠŠÌfóNËfdd€B±MØÐÐЩS§|>߇ DYÖÖÖšššêêê„ø¯_¿¦§§ó_¥¥¥^¯W«ÕŽ¿{÷.33Ó`0¼~ýZ”"r·þ/"§÷X³ Z­¶¿¿!ÔÛÛ«Óé|>Ÿ°‘o!„Ðúú:AV«•㸠ءf…¹Â󃲳³ùR‰r: ÇñÍÌÌLateeefff}}?¬ƒÁ ÙlŽ‹‹óûý|vþ¨‡C¯Y„PSSS^^^}}=´¶¶êtº–––س‚Á ˲8ŽolltuuÃ0üP ØiEQ·nݺ}û¶Z­výGdXbb"Ã0Â:7nÜøöí›Ãá0}}}†•••ŽŽÒ4Ͳ¬J¥:räˆF£€ÁÁAš¦=zU@ m» rz/5k6› ‚øòå‹Ð399©P(FFF"«)œ‡&%%eee=~ü¸ªª*55ukkëÂ… ñññÂæ‹jöÍ›7Q5‹²„B¡ÄÄD¯×Ë7iš®­­ÕjµÉÉÉkkk!‹Å¢×ëqÏÉɱZ­|dww·F£Ñëõü†ÂJU¤-­f1´ý|¹|ù2È÷³¿†a‹…·N@¾7 ÙY©• ÙY©• ÙY©• ÙY©•Š(ÿ‘±Ûí¥¥¥/åCìì¹sçEÇ_ÉdÊÊÊuŠï dþò9+²³R!;+²³Rñ XQilla DOM3 API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- d -

XQilla-2.3.0/docs/dom3-api/DOMAttr_8hpp_source.html0000644000151400015140000002554711653571065016671 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMAttr.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  * 
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  * 
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMAttr.hpp 527149 2007-04-10 14:56:39Z amassari $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMATTR_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMATTR_HPP
00024 
00025 #include <xercesc/util/XercesDefs.hpp>
00026 #include <xercesc/dom/DOMNode.hpp>
00027 
00028 XERCES_CPP_NAMESPACE_BEGIN
00029 
00030 class DOMElement;
00031 class DOMTypeInfo;
00032 
00057 class CDOM_EXPORT DOMAttr: public DOMNode {
00058 protected:
00059     // -----------------------------------------------------------------------
00060     //  Hidden constructors
00061     // -----------------------------------------------------------------------
00064     DOMAttr() {}
00065     DOMAttr(const DOMAttr &other) : DOMNode(other) {}
00067 
00068 private:    
00069     // -----------------------------------------------------------------------
00070     // Unimplemented constructors and operators
00071     // -----------------------------------------------------------------------
00074     DOMAttr & operator = (const DOMAttr &);
00076 
00077 public:
00078     // -----------------------------------------------------------------------
00079     //  All constructors are hidden, just the destructor is available
00080     // -----------------------------------------------------------------------
00087     virtual ~DOMAttr() {};
00089 
00090     // -----------------------------------------------------------------------
00091     //  Virtual DOMAttr interface
00092     // -----------------------------------------------------------------------
00095     // -----------------------------------------------------------------------
00096     //  Getter methods
00097     // -----------------------------------------------------------------------
00102     virtual const XMLCh *       getName() const = 0;
00103 
00112     virtual bool            getSpecified() const = 0;
00113 
00121     virtual const XMLCh *       getValue() const = 0;
00122 
00123     // -----------------------------------------------------------------------
00124     //  Setter methods
00125     // -----------------------------------------------------------------------
00133     virtual void            setValue(const XMLCh *value) = 0;
00135 
00144     virtual DOMElement     *getOwnerElement() const = 0;
00146 
00157     virtual bool            isId() const = 0;
00158 
00159 
00166     virtual const DOMTypeInfo * getSchemaTypeInfo() const = 0;
00167 
00169 
00170 };
00171 
00172 XERCES_CPP_NAMESPACE_END
00173 
00174 #endif
00175 
00176 
XQilla-2.3.0/docs/dom3-api/inherit_graph_22.png0000644000151400015140000000415311653571066016035 00000000000000‰PNG  IHDR½($l—bKGDÿÿÿ ½§“ IDATxœí›mLIǧV°€ˆHiËkbÁ”¢ !€BŒ‘(Å E#1&jäƒ@ƒ!*(ÆT#jRE> ¦‘ØúÞB€XíVÚZÚ¹“löºmO÷ÎÓóæ÷iöÙyþûÌ쿳»í–!Ìw²èg€ùO‚}ƒaö † Ø7&,¦n´··—””ü¬R0¿2ÑÑÑ'Ož$7ÿ䛩©©G‰Åâ½*Ì/MWW—««+5²˜Þ©¶¶öߪóß 55Õ,‚ïo0LÀ¾Á0ûÃì °o0Lø=}âàçç—‘‘1==Mí ×ë%Ihh¨³³óúõëÏœ9³°°@æ®ZµÊìçÞ¤¤$‹544„:ˆÅbj‡¡¡!‹õµÙîLåç÷ô àéÓ§*•jbbB*•ÎÌÌ„‡‡k4´K«Õ®[·®§§§´´ôÅ‹ùùù·nÝJHH0¨ÃèèèË—/I)‚ ž::*•JQ‡øøøºº:Rª©©)&&†*~èСìììÉÉÉW¿ÉdúôéÓÏU°Áwû¦©©ÉËË‹ À;w„B¡^¯ÌÏÏK$>ŸÏãñ$Éüü%%…*˜““”••E{I£ÑìÛ·Ëåz{{çååÍÎÎƲ²2¡PèììÙÝÝmcì$6lk©ÓÛÑÑñàÁƒ5kÖ8::zxxœ={–®@/ÌLÁÖY§) µþ{÷äóùÝÝÝ(XZZºsçα±1…B~âĉÁÁA@RRÒãÇ‹ŠŠD"‘B¡P*•yyyÖ²t:Ý’%K._¾¬R©®]»¶xñbNWVVf1]£Ñ\½z•Þ RkîééY¾|9„9~zzÚlP|>å¾{÷N ôõõ!YGGÇ?’š¨100ààà •J!„h¤H'===..nxxX¡P•——óx<™LöþýûææfOOOÔ™>vjåTÍ¿œ^•Jeoo¿ÿþ‰‰ äþ>˜)Ð £*èt:g\,£[:&¾!ÂÛÛ;$$¤¨¨ˆ ©T*Ônmm Ce) a`` L&C{ß¼yC¶éYjµÚÎÎîܹsA˜L&­Vk4­¥[ƒoººº¸\.™›ŸŸ!¬©©IHH j’ŠŠŠeË–‘ghnnŽÍf¿zõ iÊd²€€¡Pxýúuò@7nÜ@éc‡Ö}c{z¿~ýúöí[Ng4ÛÛÛ‘UÁbaTÛü3¾³Ùì©©)2Âáp¨Ë˜‹‹ *knníU*•tz„°££#%%ÅÉÉiÓ¦M>´‘n ºonß¾½víZÔ­­­f)UUU[¶l!såry@@€ÉdJNN¾rå ´ä£Ñ³yóæ4oãããƒÁ€4 ‡Ãqppèïï'Ô×ׇ:[»5ߨž^acccTTTXXXff&Ý7 3S°Ý7Lî‹ÇÇÇ/^¼Ÿ››K¹\.yª‚xöìŠÛÙÙ<==GGGQ¤¿¿ÿôéÓÖ² ƒÉdª««S«Õضm›Z­¶–þ [lݺm¦§§“OO½^_ZZš˜˜HF¢¢¢´ZmGGGkkkrr²EÙE‹I¥ÒÎÎÎêêjáóùl6{ddm{yyùùùQŸÎ^¿~m{Æ,b{z CjjªD"éíí­¬¬¤§[,ŒªðÝPMô-ëÑhŒ?uê”Z­MMM(~ìØ±””ôqôèQªß CBB”J¥R©ŒŒŒ XQilla DOM3 API Documentation SourceForge.net Logo

Namespace List

Here is a list of all namespaces with brief descriptions:
xercescThis class holds the list of registered DOMImplementations
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMProcessingInstruction__inherit__graph.map0000644000151400015140000000033211653571066026055 00000000000000 XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMEntity__inherit__graph.png0000644000151400015140000001011311653571066022760 00000000000000‰PNG  IHDR˜u=z¿*bKGDÿÿÿ ½§“IDATxœí{TGûÇ'$`‘"âá¦ÒV[ È~ZE…zA±-•¨µí±B½Uåx©GQ<Eµ¥Å D1§,¥€¨€´ÚÃM·€r’H³5—}ÿßíB~@¹Ôy÷ó×̳óÌ>³ßÙ™Ýl–†ã8 xó1ë(†JHD „DJHD`èš,X0úqP ŠÂÂÂ>šî¬•F£Í›7oÊ”)£Å hmm­¬¬Ô³ÖÀu\¹rE×NñoàÊ•+zU£®‘ˆ@ ‰”ˆ@ ‰”ˆ€¬4ÎÎÎ111ÏŸ?'P( >>>æææï¼óÎwß}§V« ßéÓ§ã½§øááá4­±±ˆŠŠ"hll¤ÑhŒmP…²B***D"Q[[—Ëíéé™3gŽT*…›d2ÙÛo¿ýàÁƒ#GŽTWWïܹó‡~X°`F£ž>}ZWWGT%‘HJKKÉ•çääÀ•À¿Ý @b hhh ²Z­6 `ïÞ½0ïïï¯V«‰r¹ÜÙÙùܹsÐ7,,l×®]ÄÖŒŒŒððp¢N‡Ã™4i’H$‚ôL½ ªp†s™ŸŸïàà ‘HÙÙÙnnn … R©lmmmllT*CŠ‹‹œœJJJöíÛçää4yò䘘¢sèznÞ¼éííÍd2]\\.]ºP«ÕzÝÉÃT?CFÛ¸qcAAÌfeeíÝ»—N§LMM²²²`6**êêÕ«øÏœœœÈÈHr…[·nuww‹‹Ãun²H¥Ò?þ˜Åb9::ÆÇÇc¦Ñh’’’ÜÜÜÌÍÍýüüîÝ»×OÛ‡ˆ®¶`=2&&fýúõ¶¶¶÷î݃Æ#GެX±¢¥¥E Ì™3gÇŽðÔ ¿sçNbb¢‡‡‡@  …sçÎ7ä%—ËÇ—šš*‰.\¸À`0äryRR’^w©T »QŸ4èÝ#qð॥%Žãð|þüyŸF•——ÛÚÚBß?ÿüÓÎÎîáÇ°Ú &twwRlhh¨¯¯?~<—ËÅ{w²èèèààদ&@àé陘˜˜œœlccÃãñ::: ìííaaݶ÷ØqÃ=rˆBJ$GGGooïÄÄDÂèîîN 5………³fÍ‚Í8ŽÏ˜1ƒÇãÁ­="Òº^b±ØØØøØ±c‰D«ÕÊd2FcÈÝCòîÝ»,‹ðýüóÏwî܉ãxVVÖ‚ Èu‰“'ONœ8±¥¥…òÕ«Wt:ý÷߇uòxìBâ8¾ÿ~:ÞÕÕEX˜L&¹¯[XXÀæ½zõ n …ºõèzá8^VVijjêïïûöí~Ü ¡+ä?þèëë Óvvv………}\Ξ=»páB·¤¤ÄÕÕU«ÕFDD¤¥¥áú„Ôh4¡¡¡õõõðø¶¶¶”J%¬S 0™ÌñãÇ×ÖÖ;zøð!,¬·íý3Ì÷Z[[[OŸ>²mÛ6ÂÈb±ˆc'‘H*++¡ÝØØ`ooÿôéSh©­­=tè!/¥R©Õj¯]»&‹ccc?üðC±XlÈ}€@-Z³ÑÑÑû÷ï'樅BqäÈ‘°°0ÂòÁÈd²²²²Âˆˆ½Õq¹Üòòòôôth±µµ¥ÓéÍÍÍ0ÛÔÔäàààììLžÿñÇý±¡ ÷\î¿Gj4šˆÅb;;»üü|hÿòË/###áÄ}îܹ[¶l!_9öíÛçíí- …B¡ŸŸß†  y)•J&“™““óüùóôôt&“©T* ¹÷s$–%%%K—.utt”J¥pë‹/f̘Èçóëëëy<ž‡‡‡ŸŸ†a8©ÃmÞ¼yæÌ™AAAD}z$äìÙ³p’³kÖ¬ nnn …{÷î=yò¤M^^žH$âóù...°°nÛû9ìáZO:åããÌÜÜ\6›-‹qïééùä“O¬¬¬¬­­ãââ YH Ãâããííí-,,V¯^-‘H ]× †ûÖ[o™˜˜¸»»ß¸q£wò.ÈiòÉ:eÊ”èèhòUÇq¹\¾mÛ6OOÏ &xxxv=/ñDEEJH£Ds³5F›>]óÿ}°²²rww×µëé‘(ñøqGpp ¸ø›™3Ùc΂ø52?¿–Á0b0è7oÖŽu,# ÊBâ8ž}O­ÖªÕšìl}¯¢!ÊBVU=}ö¬¦»ºzª«ŸŽi8# ÊBæåÕ¿þÁ£±1=7÷áØÆ3¢ +¤Z­åñªUª×“U•JÃãU©ÕÚ±jä@VȲ²ú/0²åÅ ¬¼¼a¬âi27·šÁèÕ:ƒÆãUU<# šBb˜êÖ­:µº×MµZ{ëV†ýƒŸåÿ‹ASÈ¢¢G¦Öµc˜ª¸øÑèÇ3  )äõëUtºž·yètÚõëhŽ® )“awî<Ö;AU«µÅÅäò¿F?ª‘A!ù|!±êÐE¥Òðù‚ÑŒgt@ð¦¹D¢èéù{á±{7pèÐrÂ2q"ÓÊÊt "Iô<ÆzÓ±²2%ëdjj˜:Õzì" Zÿ7¡„DJHD „DJHD „DJHD „DJHD „DJHD „DJHD „DJHD „DJHD „DJHD „DJHD „DJHD „DJHD „DJHD „DJHD „DJHD „D„^o,777a4#Áµk퀨(‡±d˜ K{îw—ƒN· Ó-Æ:Šá§Ï÷Ëô¼zþË/¿Œ~Xƒ"((¨…ºF"%$"PB"%$"PB"%$" øÏW ÷ìÜÖÖÖÇÇgÓ¦M–––„ðŒŒŒˆD"'''ÿU«VÑétèëààpéÒ%ø!sÈöíÛïß¿Ÿ••åàà ;õ[³µ··¯]»v„Vwh 8}ú4›ÍÖjµ­­­×¯_‹‹ûþûïÍÌÌ/_¾Ü´i“••‡Ã±··òäÉ… ªªªŽ?nddèììljjruu…UÉd²ºº:ÝʆH$Ú¸qã7fff«W¯îc.Z---'MšÄb±fÏž}àÀ6›}íÚ5¸éâÅ‹–––ÉÉÉï¾û®£££¿¿jjjgg'ŸÏ‡|}}á‡ë!³fÍÒ­œŒ¡0´ZmOÏëOVXXXÄÅÅõ1ƒ²¢¢"22R&“Š‹‹×­[‡a@­V§¦¦.[¶lÙ²e©©©jµº½½=((¨¦¦fåÊ•µµµ\.wåÊ•‡–Ëå°6]/¸‹ØØØÐÐÐ5kÖüüóÏF£×îB7ݶdÉ’ÊÊJ˜-,,Œ‰‰Âd2W­ZUXX³óçÏ/))!îBÿúë¯98AAAEEEëׯ_²dÉåË—›7o,_¾œ!ÙxêÔ©£GBw¥RÖÐ0”дï¿ÿ¾¯¯oJJŠD"IIIÙ½{7“ÉäääˆD¢´´´ãÇ×ÔÔp¹\XþêÕ«;v쨫«+--=|øð‰'Z[[³²²àV]/ Ã#""._¾¼nݺ£Gb–““£×ÝÒÒ2>>^7­‹££cGG@.—‹ÅbbØ$puumiiiOOO¥RÙÔÔP(555~~~ä†){Cl*++KIIáp8iii2™ìÌ™3Gv'ËËË5  ¼¼œÍfëÆ6†2´~ñÅ555ñññK—.%¾œÆçó¿úê+‡sÿþ}h‹‹›={vqqñ§Ÿ~êââ2mÚ´íÛ·{xxòR©T8Ž+•J“°°°›7oŽ7®  @¯»©©é¢E‹tÓC€F£iµ¯ÿtÙÈÈ( Ž®wïÞõòòš8q"¹ðgŸ}ö½!6EDD˜™™-\¸0ñÓÓÓ“Á`@QQQhh(y’5p†2Ù133[¼xqffæñãÇ cggçŠ+ˆ¬©éëLurrtuu9::BËÔ©S§NjÈËÜÜüĉ999\.×ÍÍmÍš5sçÎ5ä>pÚÚÚìííað“&Mjllôõõ%hlltss#²óçÏOJJŠÕ;®Âé«Þ±X,ƒ1Ðkddäïï_ZZêââR]]½mÛ¶7ŠÌP„|öìYnn®¯¯ï™3gvíÚ'Nœ€ÍƒÃ×ë0kkëÎÎÎiÓ¦+++×®]«×믿þÒjµ‰‰‰jµº¸¸x×®]yyy†ÜŽãùùùóæÍƒÙ‹/Ξ=›¸Lb–M>¥¼¼¼^¾|) «ªªup‡ÐŸæÏŸðàAggg//¯É“'Ö2è¡Çñ£G._¾|Ïž=ÕÕÕÐîïïîܹ®®®æææo¾ù&//ìzþüù'OžbĈ˜˜ã677WWWûúúΙ3§/‘÷ïß777'kÆókœ ##ƒ(©««#.ÙG}äééYYYùôéÓÒÒR—M›6i(µµµ!!!ãÆS«Õ¯Ù¡$Èþ?ÈÌÌÔôäs;CÅ ä‹­V«ß{ï½;và»\.×ÝÝ·#ŽD"5jTrr2ëããóÕW_µ©©©¾¾¾DÎîîî)S¦„‡‡C7nÜ8cÆŒžžž^ÛÔÔèèèèU¤Æ•îË 6l033ÚQ&&&ø3mœÒÒRGGÇ^³µ´´ZZZúî³—…êÍÉÉ1b„P(„¦§§s8‰D!ìééár¹VVV–––\.·§§?“ÂÂB‡+W®ìرÃÁÁÁÂÂ"((ˆÌ´£ „/^œ:u*“É=zôÉ“'!„ …¢×prg‘·µ/vzzúŒ3ðm›‚‚ó:zô¨‡‡›’’2vìXb¼Y¼xqJJ 9ç­[·0 Û»w/“ÉäóùäÞ#W ÚÚÚ „¹¹¹Ó¦M300°±±Ù·o„ÐÜÜ`mmMÄ=zt̘1&&&{÷î% ÿúë¯9sæ,Y²×C>MGGÇàààgÏži_& %B¡Á`ÈåòWêv¡H$ 177·³³Û¶m›L&#,]ºtëÖ­x3¹\nbb’——÷B'üúë¯ÚjÉ Àò÷ß[[[ÿöÛoxáþýûW¬XÑØØXSS3}úôèèh\–¯¯oqq1Ç›}ª=‚.^¼X,Ÿ?€Û?hmm­Á‰'àó½té’“Éôöö>xðàǵ•tvv>yòä“O> %j_²Û!„kÖ¬ñòòºÿ~MMÍ”)Sx<!àôéÓŽŽŽøÇ¶ Å €§í‡0¨H$²··wvvæñxDá„ ˆi¨  `Ú´i¸¬ššáøñã³²²ðÚ;wîÛÚQB¡P__ÿСC"‘H­VwvvªTª¾Âûâ5 zýúu "öÓO?ýòË/!„iiiÞÞÞ9ÕjõÒ¥KétúÚµk5ŽK ¯¯ïááA¬ îÞ½+‘HT*Uii)žJÛ %%%B•JE‹Ø8|øððáÃ5¢”JeEEÅîÝ»§L™B§ÓO:¥­`ddtçÎ~.V¯ÝÞÓÓC§Óÿøã¼eVVÖØ±c R©”Íf߸qB¸zõj¼»zMNv ˜5èîÝ»ét:yMÃb±È=bllŒË§‹Ež û‰‚^½zÕÏÏÍf»»»ÿòË/ý„÷ÅkLñ .$bKJJðY~Ù²eIII9úé'ccãÒÒR‹•ÝÏq rrræÎ;mÚ´ÐÐо Z[[«‘‡ØP©T ,¨­­Å£$IFF±’V«ÕÛ·o·³³ÓV"•J·mÛ6{ölâX/Ùí?Èd2<ª¦¦†Åb‘eFEEI$6›Mˆïß /d ÚØØheeµpáBòøaooOôˆH$º{÷.ùLœœœrssñíêêjbfÔŽêêê*++ƒvww§¦¦Òéô¶¶¶¾ÂûhÝ$¹»»7IÛ¶mëõ&)..ŽˆU*•ÖÖÖeeel6ÿ9ŸŸÏçóÝÜÜÂÂÂúŠ’Éd,ëܹs­­­Çg±X2™¬¯ð~Ö Äc¦’’ü1S{{;^ÛÑÑ1~üxü1SmmmVVÖäÉ“ÝÜÜð{âÒ~òÉ''Nôôô$rÖÕÕ©ÕêÅ‹{xx¨T*aOO³³s@@¹v§‰D"–ŸŸ/•J£¢¢UUUxÿtvvjÇöjPaBBþ ßÅåååÝ¿¿¼¼|öìÙŸþy¯J=z‹Å¯ÔíÂÀÀ@//¯††>Ÿ?yòä;v/kww·©©)‡ÃIMM%ŽÕ¿^È›4>>ÞÅÅ®/\¸`kk‹ßÑ‹ÅâÐÐPSSSssóððp©TJ–%—˹\îˆ#ŒÈ$5¢p‰cÆŒa0&LÈÉÉé'¼Ÿ»x‡5kÖhüÁƒ¯ÔíB¡Pdnnnkk»uëVò]NNNóçÏ×µ Jøûûëº?Þ:ݘN7ÖµŠ7Âßß_×.xÊýø¼yóvîÜ©kÿRvíÚ¥k š 5(‚Ò ƒ"( 2(‚Ò ƒ"( 2(‚Ò ƒ"(Íà3h]]——WII QR^^îííM<á—ËåIIIëׯ÷õõˆˆ8uê”J¥>>+V¬HOO'Êýýýccc¡ÖK †††ÙÙÙb±ßuvvÎÌÌì59NÇ0ŒÍþçßÎ*•ÊÄÄÄåË—/_¾<11Q©T®]»¶~ýú ^¾|o)‘H¾ù曥K—úûû'$$KÀ×_}ìØ1|[¡P,Y²¤¢¢¢×äø‰WUU­ZµŠÏç¿°{)Å 4(`ܸq«V­úᇂƒƒGJ$¡P8vìXÆçÁƒýdëêêÚ±c‡ÃIKK‹ˆˆHNNnooÇ«ôôô¢££+++/]º¤YUUåçç™™™ÙÒÒB®•Ëå2™L&“µµµ¥¤¤x{{ëëëãUçÎIII±±±UUU'NœËå<oÙ²e§OŸ :pà€\.>|¸µµ511qÿþý7oÞÌÈÈ ò{yy•––â››7o2™LWW×^“ãíÏœ9Íáp^¡—)À`5(„ðÑ£GzzzUÚë<!yLÕ†Á`¤¤¤lÞ¼ÙÜÜÜÊÊ •J‰Z{{ûðððøøø§OŸ’£fΜ™™™yøðá©S§^ºt)00°¨¨ˆ¨ýøã-Z´hÑ"??¿Ë—/¯ZµŠ¨ÊÏÏß²e‹•••““Ó† nܸ¡P( „2™ŒÁ`øøøäææ2™L¥RY\\üÙgŸÙÚÚ:99…††IæÌ™#‹ïÝ»(**òññ¡Óé½&ÇÛ‡‡‡¿óÎ;,ëÅK%ßMNaaáíÛ·ãââ"##=<<ÜÜÜFFFfffõõõÓ§O'7®¯¯wttì'†aMMM‡’Éd½Ž1Ë—//++;xðà–-[ð¹\~íÚµyóæMœ8qâĉAAA©©©‰‰‰^^^xƒ´´4;;;@ww÷?þxàÀ£GâUÿý÷Š+ˆäl6{ذaqqqçÎ;qâĸqãgÍš%‰Ôjõˆ#ðfvvv­­­D“Étss+--5jÔµk×’““ûJŽoôß”eP´­­->>~ãÆÎÎÎ!!!±±±S§N>|8`þüù'Ožœ6m>dîÙ³gΜ9éééý$ìîîæñx<ïÝwßU(ùùù h4Ú_|±nݺ¼¼<¼Bãè舯(h4š««knn®vr&“éãã“——!ÄGwcc㸸8ܾø²¤»»[­Vóx<¥RYTTôÕW_egg›ššêéé ‚‘#Gš››-,,È™½¼¼âããÇŽ;nÜ8{{{¼P;9^N,ÓƒoЇÆÆÆ:99}ðÁ€•+Wššš9r¯  …\.÷æÍ›MMM¶¶¶111===xã¾P(J¥ðžž|ÑÖÕÕ¥ÑÆÖÖ6""âÌ™3ø®Á‚ víÚUQQ!þüóÏ„„bøÔ€ÍfwuuÉd2|×ÝÝ=99¹¥¥¥¡¡!***;;›F£EFF–••I¥R…Ba“ÉÄ0ÌÓÓóÈ‘#^¦ñ*±«««D"IMM]´hQ¨üåû–‚ >ƒ^¾|ùÖ­[\.0 ‹ŒŒ,...++?~œÃá$$$¬_¿þÊ•+k×®9räÞ½{ûÉiddlccãåå¥ÝlÉ’%3fÌ v£¢¢æÏŸŸœœãââÖk~KKKCCCâ~ýúõ†††aaa[·n3f̆  Æ—_~™””äççwöìÙ;w2 À–-[,,,6nÜéêêºfÍrZ Ã<<<ÚÚÚ<<<ˆBíä/Ù±Ô„Zò±råÊÖÖÖaY©TÖÖÖNš4i`Ó=víÚeiiIÌT`𠯆aȃ”…AƒdP¥AEPdP¥AEPdP¥AEPÊ}?ÛÜÜL|ßxË477[ZZêZÅsPΠµµµ±±±ºVñïÅÅÅEמƒZ_u" 5(‚Ò ƒ"( 2(‚Ò ƒ"(ÍÿŒûÌ™@ú”„IEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMComment_8hpp__incl.png0000644000151400015140000001730011653571065016751 00000000000000‰PNG  IHDRÐuq™'¾bKGDÿÿÿ ½§“uIDATxœíÝi@WÛ0à¾ÈŽˆqAqA틨Qܪ¸<(‚±Rë‚Z«} €;VAA–÷«RÙ\hY*¢EE%ZQEµ.ˆV¨,KÈ|?Æw“\0ä¾~MNÎ9sÏÉ™;Ã0™¡`†|y dò.È$\H¸ #Šd>˾}ûnܸAv@ÔÎ;§NJv Ç„Û»•––ÛØØø“É\»v-ÙQ€žn¯gccãïïOvà_L&“ì@çp@F ဌ@„ 2 d®R 4X622=zô† tttˆÂ–––¸¸¸‚‚‹ennîèèèææF¥Rñ¶ ˆ§P(D}??¿üüü„„„ „jkk###ïß¿ßÐÐ0hÐ :îèè(Ãíû4ˆÙ€#\y‘šššœœìçç×ÔÔ´nÝ:.—‹¿ÕÜÜìééùèÑ#OOϘ˜:ž••Å`0^áõë×Ïž=#ºâp8ÅÅÅÄËÆÆÆ5kÖ¨¨¨øûûGEEMŸ>}ß¾}²ÜºÎ°X¬… ’ïÀ®¼ÐÑÑéß¿?BH__ßÎÎî§Ÿ~JNN^µjBè÷ß×ÑÑ WPP@™™™ÙÛÛ¯Zµ*33sÞ¼y¡qãÆ1™L+++¼«[·nÙÙÙåååá/Oœ81fÌüå Aƒêêê’’’ìííe¿™"Acc#ÙQðáÊ# …²`Á‚ÜÜ\üeVVÖÊ•+ñl‹SUUussËÊÊÂ_N›6Éd·N¾~ýºðïVoܸáââ"Ü¿‡‡‡¯¯/¾Ìårƒ‚‚.\¸téÒÈÈȶ¶6„FËÌÌôððX´hÑÉ“'/_¾ìîî>oÞ¼ãÇã­º¬Àçó£¢¢/^¼xñ⨨(>Ÿ·ºr劇‡Ç‚ NŸ>Ú¸q#Bè?ÿùÄq¸sçNwvvNLLDUVVÒh´œœœo¿ývñâŇnoo—XøéCä$\9effVUU…âr¹uuuÄÑ+ÁÊÊêåË—øòÈ‘#y<~V¡©©©°°ÐÁÁ onnn.ÜVMMÍÐÐ_þå—_ª««£¢¢‚ƒƒ N:…—ß½{722rݺu±±±·oß>vìØ† âãã‰RéRRRX,VtttXXXaaá‰'ðV7oÞüõ×_===£££9Α#GBiii!///66Ö××÷èÑ£ÄzÏž={àÀýû÷çååÿÚµk?þø£‰‰‰¥¥åªU«ˆ£æeË–©««Ïš5 !´|ùruuõ9sæ „8·TÈÌÌܲe‹¡¡¡¥¥¥§§g~~>ÞjÑ¢Eššš³gÏFuy2_ÅäÉ“…×»aÃ333kkë5kÖÑJ,àcA•S¦¦¦!MMÍþýû—••‰T(++:t(ñ’8« r>AKKKWW÷ŸþnûèÑ£õë×·¶¶²Ùl@€¯!4`À€êêj|Y]]!¤¨¨(²L^áõë×...4F£1 ‹…—ëëë‹wÕ===$ömaff†/˜››ÑJ,àcA•G†;wnÒ¤IøK''§ßÿ8žEµ´´œ:uj„ DɨQ£š››KKKïܹƒ’’’„Ž—••ÅçóUTTtuuˆlXUU…'Äϧ­­‘‘Ÿ:@kK$±rEE¾ðêÕ+<#wVÀÇ‚„+/êëëëêêjjjŠ‹‹wíÚÅb±\]]ñ·<<<Øl¶——W~~~EEÅ_ýµaÃ}}}á ªð³ áááÖÖÖÂð"„V¯^]\\¼ÿþ”——ÿöÛoiiikÖ¬A)**Òh´C‡±X¬çÏŸ;vÌÉÉ©[6ÇÑÑ166öÍ›7ååå¾¾¾gÏž•R™Çãá .\hjj’ÞsDDDeeå£GŽ=:sæL)…|,¸,L^lÚ´ _044´µµ‰‰ÑÐÐÀKÔÕÕcbbNœ8UUUebb2cÆŒ¥K—*)) ÷@£ÑÒÓÓ/^,Ò³ŽŽNLLLdd¤¿¿?Ç377 $Ÿ·lÙ±~ýz%%¥éÓ§ÓéônٜիWGDD¬]»–B¡L™2ÅÓÓSb5ccãQ£F¹¸¸üù矡ÐÐP;;;bÃ%rrròöönii™1cNÇO ˆvË&9DǤ÷j®®®ÕÕÕp?ÜnQYY¹bÅŠììì. ¥£ÑhIIIÄà”È$\ÞÑÐÐpvvþB> $\ÞÑÑÑñòòúB> $\H¸ #p@F ဌ@„ 2?ííõŠ‹‹ ¹1`è mä†ÑÑ¡J¥¶!$èº*d€„Û»·, QCƒÊÓ§:êêü#jɤ¸Ø@ P<˜Ý¯™©ßÒÒràÀ$z,¸—øtµµÜíÛS32Š–,¿{÷B}}Mrãyó¦aûöÔ‹ﻸŒÛ»w±ŽŽ:¹ñ .øDÉÉûöSRR ^êä4‚ìpþ•‘Q´}{*•J t™7o4Ùáð/H¸à£±Xõ~~ÉW¯þM§OÚ¹sA¿~ªdG$ª¡¡90ð|BÂí™3m‚ƒ—k“AÂðÄÄÜ€€szzZaaË&MLvDÒdg?òó;ÓØØ²s§3>é£À— |¨çÏ«½½“ ž¯_Oóò𥦦LvD]ãñÚÂÃ/GEeÛÛºÌÒҀ숀\ƒ„ ºÖÑ!ˆŠÊ¿lf¦î6nœÙ}œ»w_x{'½|Yëí={ýz• —Ÿr@Â]xúô—×é’’W›7;mÚ䤢Ò+/%loa†„\2Ä(<ÜmÔ(3²#ò.èT{{Ç¡CYW‡7 w³¶6%;¢Ïõè‹ÁH*)yåéIóñ™£¬Ü+¿<@ï HV\üÊËëtyù[cާ'MQ±ü.`'OæþüsºVHÈ2+²#r.ÕÚÊ ½=a‚ehè2 }²#ê~¯^Õùúž¹qã >i÷î…šš*dGä$\ðž[·ÊŒ¤êjŽ¿ÿÂ>)UFFѶm)JJŠû÷»Ì;Šìp@ß ¼ÓÔÔúóÏ鉉¹ŽŽCCB\ìOvD²PSÃÝ»7=%厳³Ýþý.zz$ÿ:ômpBݸñØÇç —Û´ÄÙÙŽìpdíÊ•‡[·&75µíØ1ÅŠ¯ÉôYpå›Ý´ukJFFѼy£] µÈŽˆNËÁƒ™'Nü5uê°à`W33]²#}$\¹váBñŽ©è"‡¶â ž{{Ÿ®¬¬÷òš?‘Ý®œª©áîØ‘š‘Q´bÅ×;vÌ×Ö†;¾ÓÚʈ¸rèÐ[Ûaaˆ5&;"Ðw@•G ·Ïkh(<è:}º5ÙáôDÿ]åíôàAåºuÓà' »@•/UUõ¾¾g˜ÌG«V9úúÎÕÒêqwVì9ø|A\ÜÍ   ææz¡¡ËÆŽDvD ×ƒ„+/ìøñ¿BB2 ´ÂÂÜ&N´$;¢ÞáŸj}}Ïää<]¾|’¿ÿB ø‰øtpå³go½½“îÞ}±~=ÍÛ{¶ªªÙõ&†¥¤ÜÙ³']SSåàAשS‡‘è­ áöqøÃÂ. ¤ê6nü]ü‰Þ¾åìÜ™zþ|±³³ÝKú÷× ;"Ðû@ÂíËî߯ôò:õøñk_ß¹ëÖMSR¢’Q¯—•õ`ëÖ”övþ®] –.µ';ÐË@Âí›ÚÛ;ÌŒ‰aÚØ  s³¶6!;¢¾£±±% à\bbîŒÖAAKMMuÈŽôpû ¢¢—^^§_¾¬ÝºuÞwßMî3wVìQòòÊŒ¤·o}|æ~ÿ½£‚B_¾Ëè.pû”ææ¶.üöÛ͉-CBúæ{Ž––ö°°KQQÙcÇ s³²2$;"ÐÓAÂí;rrÊ||’jj8»w÷ý;+öVyy~ü˜µiӌ͛g‰r $ܾ€ËmÝ»7=11wÖ,›  %FFÚdG$_ø|AttvhèEKKð°evvædGz(H¸½Þ¥K÷ñÿ›8 wVì9^¼¨ñõ=“›ûÌÃcò¶móÔÕ{ÁcäŒAÂíÅêêš¶mKÉÈ(rv¶ øœÞY±çÀ0,11wß¾sýûk<èêè8”ìˆ@Ï ··ÊÈ(Ú¹3JU^:s¦ ÙွyÓ¸cGjff©‹Ë¸Ÿ^¤« ?‘ï@Âí}^¿nðóK¾rå!>içNç~ýÔÈŽH‘Q´cGª‚% ÀeþüÑd‡zH¸½ þk@@F¿~ªºN›6œìˆ€4¼€€ŒÄÄ\'§AAKLLà'òn¯QQÁöõ=sãÆã ¦{yÍRSƒÿÉôLæ#?¿ä††æ;Àåzrn/ `‘‘×ÂÃ/ æfoÿÙÃãµ…‡_ŽŠÊ?Þ"4tÙàÁð 9 ·§++{ëí}º¨èåæÍN›69©¨À£z«»wÿa0NÿóO­·÷lx`š|‚„K2ëìgøíí‡eED\:Ôøÿ×}ÄSǺ]{{GL 3$䢕•ax¸›­í@²#2ß±$ ¿töl¡xyiiÅܹá‡_e0æ\¸ð_ȶ}ƒ’õ‡fdgûjk«ÍŸÿÿÏ·¶òÅ«íÚõǃ•²|ip„K¦k×þþöÛØ~ýTsrv7´nk㇄\ŒŽÎ¶µæ6l<5¶Â/8Ù»7]__ëàA×É“‡oå䔹º11ѾzÕž¦ÜÇ@Â%ME{úôƒ\n •Jýæ›QÑѡ¼½OWT°ýý._> nú×·½yÓ°ukÊåËèôI»v-ÐÒRåñÚƒX¬z*Uaòä! ë`ô%pÉÁãµÍ™þüy5Ÿ/@Q(”Ç—çæ–Ÿ<™û?ÿ3$4ÔÕÜ\ìŒddmßžª¨¨èrëVY|ü­öö„•ª°iÓ ?¿oÈtH¸äøé§Siiwðl‹¢P²²’‚Ú¶m>ÜÍZ½yÓ°m[ê¥K¥!á=’B¡ÄÆ~÷Í7¶¤Eº$\œ>çí}Zdà©NN#Žÿž¤ ÉZ[ù_P]Íéè… EMMùÊÜK¾o€«d­´´ÂÏ/!ÑcX>¿ãâÅÒË—ï“ Ý/¿dÕÔ¼—mB†µµñ=¿ãùóZ/¯Ó² t;H¸2åãs¦¶–+rC55ÜÐЋ2Ž K À|}Ï$O „âó;22î<™+àÀ Wvbc¯gf–´·‹îXJJ øƒ°tuÕçÏýÕWœX—#ÕÕœI“aJ¥R¢¨¨(‰ßßÃÐÖ­É%%¯Ètø§™ŒÜ¸ñxùòh"“**R@€YXè;8XM™2l„¯àYdrŽÏ<|Xù×_OnÝz–—WÞÜܪ¨¨ÐÑñî•JÑÑQ¿rÅ×ȨÙ‘‚Oô^Âåñxl6›ÄhúªººæeËN°ÙÍ Ã0]]‰ÍÇŽ8nÜÀAƒú“ÝgQSSÓÕÕýÌNØl6g®ßÓÚÊ¿ŸUXøêîÝW¥¥U­­||òØÛúõ×¥pá`o¡«««¦öï#ÞK¸oß¾}øð!Qõe†¸UQÁ9ÒÀÚZÏÚZÏØX“ì ºÍç>àçÁƒÕÕÕÝOŸÄç ž?oxü¸öáÚÇëfͲX¶lÙA2bÄCÃïÆ)á^Ó¦M“]8r€ÍnЉÙ'¯£|ðàAwuÕ-‰[`V^^ma¡wwìù˜L¦H Ü\õ‹ÓÕՀǂîB¡Pàþå½|I€Œ@„ 2 d.ÈH¯O¸/_¾\µjU—ÕÊÊÊ(Šð‚pó{÷î)**&''åéééÊÊÊ¥¥¥_"f!+W®”~Q*†a+V¬ÐÔüЋy)JYYYwD þ%qâ‰Ì®Ïé¶ËYÑÔÔäãã3zôh---{{ûýû÷óùïF¡P† "ò#Ò¹sç Ï„ªªªåË—[XXhjjÚÛÛÿñÇDÍ5a>vïø„þe¹±½>áž={vÑ¢Eß*//××wõ«ŽŽŽŸŸ_gÍÇŒ³}ûöÍ›7×××#„6nÜèïï?jÔ¨/¹°[·n±X¬ŠŠŠ'N466Ž;D¢ªªªÄÄDø‰ ¹¤L¼îêVʬàp8ãÇ/((¾{÷î¶mÛgΜÙÑÑWxñâEqq1Ñ-›Í¾qãñ²¶¶v̘1êêêIIIùùùnnnîîî—.]êöÍ'¼W~ Ú;>¡™Â„¼yó&;;ëUæÍ›×ÜÜ,ñ­§OŸŠl x!ѼµµuäÈ‘ëÖ­Ã0lýúõãÆkkkûbQ¿!ôôéSâ¥@ ˜2eÊîÝ»;«/q»>¼ÿntÿþýû÷ï÷œ~dIâÄûØFJ·ÒgƒÁpttäóùD.—kaa‹·3gÎöíÛ‰wãââæÎKôùÃ?,[¶Lx½ ÃÉÉ _þrûìÙÛ‹ö ò³³ß¼y#\òÑG¸çÎ0`~Ë…S§N :´©© !ÔÞÞîããcdddhhèããÓÞÞŽÿyuõêUsss&“éïïonnn``°råJâ J¼B(##ÃÖÖVUUÕÒÒ2>>!Äçó%6¯©©ÑÐÐPSSþSŽXž4iBÈØØuò·Ñ!¤¬¬wüøñœ8q"..NII©³ »qÓÄQ(”õë×_¸p¡³~„·ëû¼|ù²•••®®îˆÑHOO6l˜¡¡áæÍ›[[[%~è´øòzæÄëèè :t¨–––ƒƒC^^^¡¾¾þ»ï¾Ó××733c0---! …rüøqkkkƒ   øøø¯¾úJ[[{×®]"ÝŠo¾È¬HHHؽ{7•J%*hhhøøø$$$à/—.]zæÌìÿÎ*¤¤¤,Y²„¨œššºeËáþýýý;F¼™0¡óçÏãÅ&&&AAAèÿf>Î7oÞ¯ qôDf¯ôïæÍ›ÒÇA|¥"ý‹W'Ó½C8û~àîÊ•+=<<^¿~mdd”——‡»¸¸¼|ù²¤¤dìØ±[·nÅ¿jæÎ{íÚµ={öØØØ””””––Nœ8‘Á`tÖŠË媨¨DEE±X¬cÇŽ)**r¹Ü‰Í?½ÿµF,wYH4'lݺ! \øE7 “ô[PP ££#}íø»õ) !4þüÆÆÆÔÔT„PMM ÞìY³ž.—+e¤D…×”X¡Ëí®½“t„û) —Íf›™™ÙÚÚ ¯røðá, _ÎÊʲ³³ÃC,))Á0lذaiiiø»>$–Å[ÕÕÕ)))…††²Ùl@Àáp::::kîââ‚Ï›OK¸Dsœ@ X¸p!•J]±b…ðö~ÑMúJ¸­/é¬Oa!&“‰a~‚ïéÓ§Âñc–””dee%±“JÆ ·N¼¡C‡ÆÅÅÁüöÛo¡¶¶6*•JlQZZ>’¡ÂÂB ÃÚÚÚD–ñ $á 7ÇÅÇÇkkk_¿~]UUõìÙ³²Ù4LÒ”:yòä¸q㤯¨,±Oa¡'Ož¯ ïÇãá…ÅÅŪªª Å{&ûs¸=mâ©©©oÝ»w!ôêÕ+á‘,))ÁGRøƒ_™Òg…±±qVV–H`‘‘‘³gÏ&Ú2™L+++@°hÑ¢èèhá>ŒŒrrr„Ûæçç?¾©© “4a0 KOOŸŸ"""œœœ¼½½‰B}}}bcØlvnî»ÇàgBMMM_¼x—vÖŠÇã ‚ää人ºÕ«W;;;×ÕÕIl~ñâÅ9sæ†_SYYù![!Ò¼ªªjóæÍ!!!S¦Lñ÷÷÷ôô¬­­•Á¦‰†aXddä¼yó¤¯÷}J¼V ŸC¡'Ožà wVØCôÀ‰gaa!|1~û4###*•Z^^Ž>{ölÀ€]nø|&2+ètúÞ½{‰kBMMMÁÁÁÂ=Lž<™Ãáܼy3++K䂊 „……aB×%$$´··«««ã/E& Çsuuõññ),,ÍÏÏ2dÈîÝ»%JŸ ²<Âí™ï—_~144<{ö,‹ÅÊÌÌ´´´ÄW½|ùò3f”———––ÚØØà#)þA/ w‹u5+† 6uêÔÌÌÌ'Ož¤¥¥ÙØØ888´´´w¾qãFkkk&²Ò·oßêééÑéôœœœâââ={ö „Ο?ßYll6›B¡dff655ùúú"„ …ÇYb‰£'¼WvùñI)QáýK¬€ÉjïÀºå”ÂáÇGðÿñÇ&&&øY§ÆÆÆU«Véêêêéé­[·®©©IxàZZZ †©©©¶¶¶»»;qþH¼†aIIIƒVVV>|xzzºÄæmmmß|óp`:::ƒNOOÇ×ÛÞÞ>yòdMMML,áŠ4‹‹SQQyüø1Q’ŸŸ¯  ’’ò¥7 {ÿêôÒétáIúÚ¥ô)e߯{8zôè AƒôõõüñG'±PúdeÂí™Ï燄„XYYihh|ýõ×ø†auuuß~û­žžž‰‰Éÿû_⛵³åáÇ"óYú¬À0ŒËåz{{9R]]ÝÆÆ& €¸Lè¿믿þ*¾Ò/^,Y²ÄÔÔTKKk„ ÄXgq†‡‡÷ïßàÀGŽqww744™‡â$¾ð^ÙåÇ×å8ˆ¯T¤ñ Ò?ˆnÜ;0I WÂàä}^YY™ø/‘$J‡ÿÝ-O|è–~ø|ݵw „˜L¦Èzý/Í ·€„+úõëçééù!…È›/ºwÀ)ðéà”RÀ) $\H¸ #p@F ဌ(ŠUUUÉ>е´´ˆÜ|äsº‚‰ú< ¿Û¢».‡Ãáp8ÝÒ=åc¬àÓÀ9\H¸ #p@F ဌü;–ƒrƒ1دIEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMXPathException_8hpp__incl.map0000644000151400015140000000003511653571065020240 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMXPathExpression_8hpp.html0000644000151400015140000000660311653571066017474 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMXPathExpression.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <xercesc/dom/DOMXPathResult.hpp>
Include dependency graph for DOMXPathExpression.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMXPathExpression
 The DOMXPathExpression interface represents a parsed and resolved XPath expression. More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/inherit_graph_0.map0000644000151400015140000000024011653571065015732 00000000000000 XQilla-2.3.0/docs/dom3-api/inherit_graph_14.png0000644000151400015140000000357711653571066016047 00000000000000‰PNG  IHDR­(°íbKGDÿÿÿ ½§“4IDATxœí›}HS]ÇϵÍõâdS×t6qÓÕl‹"ÔÙÀ¥£"#-JšETP‹^À9Ö Äþ+É^eheM¢Åh®"Ê ¢¦‚ô‚ÙdSwmC·ç—û8·iO˜OÏùüuÎïÞïùsÏ÷ž{Ï^hB€ùßó×ïîfQ€}€ûƒÀ>À@4µb6› Ãïê f!‘Ëå555dõ>éèè(++[ð^a”ÞÞÞøøxj$:ø¤–––…êæ÷°k×®ü~€ûƒÀ>À€}€A``øS}@£ ÔjµÃá ž099yòäI™L¶|ùò7^¸pÁçó‘Z‘H4ãë7•JE£ÑÐ ¨@… F“––+‰jkk½^ï\Ò- …æææ‘ÿ(€/^ ùò¥³³sûöí))).— ˜˜‹ÅOŸ>ýøñãƒÖ¬Y³iÓ&ŸÏ‡´ÑÑÑoß¾%[s:L&ÐßßN@*û÷ïW(oÞ¼ùþý»Ùl–Éd•••sIÌàà ›Ížïç¥*+++++£FþXP§*Èår­V‹ª&??Ÿ: A‚ëׯ#mqqñÙ³gÉ£7oÞT©Tá}Àb±, Y5›Í©©©sILÿO̼T¿À&“‰Çã9NaSS“H$"B855¥Ñh4ÍÔÔêYGGŸÏþü¹V«åóùgß¾}ä­¬‚¶µµ­]»–N§§¥¥Ýºu B8===«œ:xj9xªššš6lØ€Ê\.·½½}Ƹ Öh4 …Â@ €mݺÕh4†÷AjjªZ­ ¾baÒÍÚ6› HJJ"ƒ=ÊÈÈHHH¨ªªòz½Uù5ëZ­®¨¨øöí[RRÒË—/Q°®®nçΟ>}²Z­ëׯ?}ú4ê¢J¥êììÔét‰ÄjµÚl¶ììlFJENoll6ÑÑÑAÔ××Ï*#ï*j9xª^¿~Íb± „.— àp8f ª§§]DÀ‡¸\.z4Œ1™ÌÑÑÑð>xöìYrr2NW*•õõõCCC(>ݬ3ܼy³Ýn·X,B¡P§ÓETEä×øÀår¥¤¤H¥RNGÅbñðð0*···¯[·õÌjµB333[[[ÑÑ÷ïß“å`•Ó錉‰¹xñ¢Ëå n·Ûï÷‡’‡â'|ÐÛÛËápHí±cÇΜ9!¼}û¶R©¤¶9« „>ŸÏb±èõú¬¬¬¨¨¨;wîDL7G k!lnn …‹ÅB½^522BF õõ3..õ -õ Ãf³·¬‚vww—––.]º4??ÿÉ“'a䡸‰ç•+WŠŠŠHmWWz4”””\½z†õAwïÞ%ß@MMMrrrÄtÔɳÛí¡|àñxPµ¯¯Á`DTE$Ø?³oüüùóåË— «««É r7jÔårY,‰‰ðx¼¡¡!y÷îÝùóçC©<O ¸wïžÓé|¸råJ´w˜˜˜8pà@||<›Í>|øðää$Õ^¯W£Ñðx¼¸¸¸={öP·ò3T¨éééK–,‹Å&“)Œ<Ì~„Ïç———SaB‚ ª««³²²˜L¦D"1 ?~ü µh¾»ºº 3â³ÞK>ŸO§ÓI¥ÒØØX@pêÔ)r1ŸÎ`0°X¬ôôt“É„ššžžÎËË[¶l9¨7n¬ZµŠÃáTUU¡fë"ìu`---»wïžu¨˜ßÂÀÀ@ð‡›ÿôûêMþÌÏ•1óû`Q³bÅŠ#GŽ,@"ìƒEMbbbccã$Â>À€}€A``À>À °0``³üŸI©T.|?0 ‰Íf“ËåÔÈ?|ÀçóñŸÿÈåòœœj„†¿MÀü~€A``À>À °0ð7°ã"Ô”Ì2IEND®B`‚XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMImplementation-members.html0000644000151400015140000002016211653571065023104 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMImplementation Member List

This is the complete list of members for xercesc::DOMImplementation, including all inherited members.
createDocument(const XMLCh *namespaceURI, const XMLCh *qualifiedName, DOMDocumentType *doctype, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)=0xercesc::DOMImplementation [pure virtual]
createDocument(MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)=0xercesc::DOMImplementation [pure virtual]
createDocumentType(const XMLCh *qualifiedName, const XMLCh *publicId, const XMLCh *systemId)=0xercesc::DOMImplementation [pure virtual]
createLSInput(MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)=0xercesc::DOMImplementationLS [pure virtual]
createLSOutput(MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)=0xercesc::DOMImplementationLS [pure virtual]
createLSParser(const DOMImplementationLSMode mode, const XMLCh *const schemaType, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager, XMLGrammarPool *const gramPool=0)=0xercesc::DOMImplementationLS [pure virtual]
createLSSerializer(MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)=0xercesc::DOMImplementationLS [pure virtual]
DOMImplementation()xercesc::DOMImplementation [inline, protected]
DOMImplementationLS()xercesc::DOMImplementationLS [inline, protected]
DOMImplementationLSMode enum namexercesc::DOMImplementationLS
getFeature(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMImplementation [pure virtual]
getImplementation()xercesc::DOMImplementation [static]
hasFeature(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMImplementation [pure virtual]
loadDOMExceptionMsg(const short msgToLoad, XMLCh *const toFill, const XMLSize_t maxChars)xercesc::DOMImplementation [static]
MODE_ASYNCHRONOUS enum valuexercesc::DOMImplementationLS
MODE_SYNCHRONOUS enum valuexercesc::DOMImplementationLS
~DOMImplementation()xercesc::DOMImplementation [inline, virtual]
~DOMImplementationLS()xercesc::DOMImplementationLS [inline, virtual]
XQilla-2.3.0/docs/dom3-api/DOMDocument_8hpp_source.html0000644000151400015140000006010111653571065017516 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMDocument.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMDocument.hpp 672232 2008-06-27 10:16:38Z borisk $
00020 */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMDOCUMENT_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMDOCUMENT_HPP
00024 
00025 #include <xercesc/util/XercesDefs.hpp>
00026 #include <xercesc/dom/DOMNode.hpp>
00027 #include <xercesc/dom/DOMDocumentRange.hpp>
00028 #include <xercesc/dom/DOMDocumentTraversal.hpp>
00029 #include <xercesc/dom/DOMXPathEvaluator.hpp>
00030 
00031 XERCES_CPP_NAMESPACE_BEGIN
00032 
00033 class DOMConfiguration;
00034 class DOMDocumentType;
00035 class DOMElement;
00036 class DOMDocumentFragment;
00037 class DOMComment;
00038 class DOMCDATASection;
00039 class DOMProcessingInstruction;
00040 class DOMAttr;
00041 class DOMEntity;
00042 class DOMEntityReference;
00043 class DOMImplementation;
00044 class DOMNodeFilter;
00045 class DOMNodeList;
00046 class DOMNotation;
00047 class DOMText;
00048 class DOMNode;
00049 
00050 
00064 class CDOM_EXPORT DOMDocument: public DOMDocumentRange,
00065  public DOMXPathEvaluator,
00066  public DOMDocumentTraversal,
00067  public DOMNode {
00068 
00069 
00070 protected:
00071     // -----------------------------------------------------------------------
00072     //  Hidden constructors
00073     // -----------------------------------------------------------------------
00076     DOMDocument() {};
00078 
00079 private:
00080     // -----------------------------------------------------------------------
00081     // Unimplemented constructors and operators
00082     // -----------------------------------------------------------------------
00085     DOMDocument(const DOMDocument &);
00086     DOMDocument & operator = (const DOMDocument &);
00088 
00089 public:
00090     // -----------------------------------------------------------------------
00091     //  All constructors are hidden, just the destructor is available
00092     // -----------------------------------------------------------------------
00099     virtual ~DOMDocument() {};
00101 
00102     // -----------------------------------------------------------------------
00103     // Virtual DOMDocument interface
00104     // -----------------------------------------------------------------------
00127     virtual DOMElement     *createElement(const XMLCh *tagName) = 0;
00128 
00134     virtual DOMDocumentFragment   *createDocumentFragment() = 0;
00135 
00142     virtual DOMText         *createTextNode(const XMLCh *data) = 0;
00143 
00150     virtual DOMComment      *createComment(const XMLCh *data) = 0;
00151 
00159     virtual DOMCDATASection   *createCDATASection(const XMLCh *data) = 0;
00160 
00172     virtual DOMProcessingInstruction *createProcessingInstruction(const XMLCh *target,
00173         const XMLCh *data) = 0;
00174 
00175 
00192     virtual DOMAttr     *createAttribute(const XMLCh *name) = 0;
00193 
00194 
00212     virtual DOMEntityReference    *createEntityReference(const XMLCh *name) = 0;
00213 
00225     virtual DOMDocumentType       *getDoctype() const = 0;
00226 
00232     virtual DOMImplementation  *getImplementation() const = 0;
00233 
00239     virtual DOMElement     *getDocumentElement() const = 0;
00240 
00255     virtual DOMNodeList      *getElementsByTagName(const XMLCh *tagname) const = 0;
00256 
00258 
00261 
00360     virtual DOMNode        *importNode(const DOMNode *importedNode, bool deep) = 0;
00361 
00417     virtual DOMElement         *createElementNS(const XMLCh *namespaceURI,
00418                                                       const XMLCh *qualifiedName) = 0;
00419 
00482     virtual DOMAttr        *createAttributeNS(const XMLCh *namespaceURI,
00483                                                     const XMLCh *qualifiedName) = 0;
00484 
00497     virtual DOMNodeList        *getElementsByTagNameNS(const XMLCh *namespaceURI,
00498                                                              const XMLCh *localName) const = 0;
00499 
00513     virtual  DOMElement        * getElementById(const XMLCh *elementId) const = 0;
00515 
00518 
00525     virtual const XMLCh*           getInputEncoding() const = 0;
00526 
00534     virtual const XMLCh*           getXmlEncoding() const = 0;
00535 
00542     virtual bool                   getXmlStandalone() const = 0;
00543 
00551     virtual void                   setXmlStandalone(bool standalone) = 0;
00552 
00560     virtual const XMLCh*           getXmlVersion() const = 0;
00561 
00569     virtual void                   setXmlVersion(const XMLCh* version) = 0;
00570 
00579     virtual const XMLCh*           getDocumentURI() const = 0;
00588     virtual void                   setDocumentURI(const XMLCh* documentURI) = 0;
00589 
00600     virtual bool                   getStrictErrorChecking() const = 0;
00611     virtual void                   setStrictErrorChecking(bool strictErrorChecking) = 0;
00612 
00657     virtual DOMNode* renameNode(DOMNode* n, const XMLCh* namespaceURI, const XMLCh* qualifiedName) = 0;
00658 
00659 
00719     virtual DOMNode*               adoptNode(DOMNode* source) = 0;
00720 
00741     virtual void                   normalizeDocument() = 0;
00742 
00743 
00751     virtual DOMConfiguration*      getDOMConfig() const = 0;
00752 
00754 
00755     // -----------------------------------------------------------------------
00756     // Non-standard extension
00757     // -----------------------------------------------------------------------
00767     virtual DOMEntity     *createEntity(const XMLCh *name) = 0;
00768 
00777     virtual DOMDocumentType *createDocumentType(const XMLCh *name) = 0;
00778 
00779     /***
00780      * Provide default implementation to maintain source code compatibility
00781      ***/
00782     virtual DOMDocumentType* createDocumentType(const XMLCh *qName,
00783                                                 const XMLCh*,  //publicId,
00784                                                 const XMLCh*   //systemId
00785                                                )
00786     {
00787         return createDocumentType(qName);
00788     }
00789 
00798     virtual DOMNotation *createNotation(const XMLCh *name) = 0;
00799 
00809     virtual DOMElement *createElementNS(const XMLCh *namespaceURI,
00810                                         const XMLCh *qualifiedName,
00811                                         const XMLFileLoc lineNum,
00812                                         const XMLFileLoc columnNum) = 0;
00814 
00815 };
00816 
00817 XERCES_CPP_NAMESPACE_END
00818 
00819 #endif
XQilla-2.3.0/docs/dom3-api/DOMError_8hpp.html0000644000151400015140000000620211653571066015454 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMError.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
Include dependency graph for DOMError.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMError
 DOMError is an interface that describes an error. More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMLSSerializer.html0000644000151400015140000007412211653571065021044 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMLSSerializer Class Reference

#include <DOMLSSerializer.hpp>

List of all members.

Public Member Functions

Destructor
virtual ~DOMLSSerializer ()
 Destructor.
Functions introduced in DOM Level 3
virtual DOMConfigurationgetDomConfig ()=0
 The DOMConfiguration object used by the LSSerializer when serializing a DOM node.
virtual void setNewLine (const XMLCh *const newLine)=0
 The end-of-line sequence of characters to be used in the XML being written out.
virtual void setFilter (DOMLSSerializerFilter *filter)=0
 When the application provides a filter, the serializer will call out to the filter before serializing each Node.
virtual const XMLCh * getNewLine () const =0
 Return the end-of-line sequence of characters to be used in the XML being written out.
virtual DOMLSSerializerFiltergetFilter () const =0
 Return the WriterFilter used.
virtual bool write (const DOMNode *nodeToWrite, DOMLSOutput *const destination)=0
 Write out the specified node as described above in the description of DOMLSSerializer.
virtual bool writeToURI (const DOMNode *nodeToWrite, const XMLCh *uri)=0
 Write out the specified node as described above in the description of DOMLSSerializer.
virtual XMLCh * writeToString (const DOMNode *nodeToWrite, MemoryManager *manager=NULL)=0
 Serialize the specified node as described above in the description of DOMLSSerializer.
Non-standard Extension
virtual void release ()=0
 Called to indicate that this Writer is no longer in use and that the implementation may relinquish any resources associated with it.

Protected Member Functions

Hidden constructors
 DOMLSSerializer ()

Constructor & Destructor Documentation

xercesc::DOMLSSerializer::DOMLSSerializer ( ) [inline, protected]
virtual xercesc::DOMLSSerializer::~DOMLSSerializer ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual DOMConfiguration* xercesc::DOMLSSerializer::getDomConfig ( ) [pure virtual]

The DOMConfiguration object used by the LSSerializer when serializing a DOM node.

In addition to the parameters recognized in on the DOMConfiguration interface defined in [DOM Level 3 Core], the DOMConfiguration objects for DOMLSSerializer add or modify the following parameters:

"canonical-form" true [optional] Writes the document according to the rules specified in [Canonical XML]. In addition to the behavior described in "canonical-form" [DOM Level 3 Core], setting this parameter to true will set the parameters "format-pretty-print", "discard-default-content", and "xml-declaration", to false. Setting one of those parameters to true will set this parameter to false. Serializing an XML 1.1 document when "canonical-form" is true will generate a fatal error. false [required] (default) Do not canonicalize the output.

"discard-default-content" true [required] (default) Use the DOMAttr::getSpecified attribute to decide what attributes should be discarded. Note that some implementations might use whatever information available to the implementation (i.e. XML schema, DTD, the DOMAttr::getSpecified attribute, and so on) to determine what attributes and content to discard if this parameter is set to true. false [required] Keep all attributes and all content.

"format-pretty-print" true [optional] Formatting the output by adding whitespace to produce a pretty-printed, indented, human-readable form. The exact form of the transformations is not specified by this specification. Pretty-printing changes the content of the document and may affect the validity of the document, validating implementations should preserve validity. false [required] (default) Don't pretty-print the result.

"ignore-unknown-character-denormalizations" true [required] (default) If, while verifying full normalization when [XML 1.1] is supported, a character is encountered for which the normalization properties cannot be determined, then raise a "unknown-character-denormalization" warning (instead of raising an error, if this parameter is not set) and ignore any possible denormalizations caused by these characters. false [optional] Report a fatal error if a character is encountered for which the processor cannot determine the normalization properties.

"normalize-characters" This parameter is equivalent to the one defined by DOMConfiguration in [DOM Level 3 Core]. Unlike in the Core, the default value for this parameter is true. While DOM implementations are not required to support fully normalizing the characters in the document according to appendix E of [XML 1.1], this parameter must be activated by default if supported.

"xml-declaration" true [required] (default) If a DOMDocument, DOMElement, or DOMEntity node is serialized, the XML declaration, or text declaration, should be included. The version (DOMDocument::xmlVersion if the document is a Level 3 document and the version is non-null, otherwise use the value "1.0"), and the output encoding (see DOMLSSerializer::write for details on how to find the output encoding) are specified in the serialized XML declaration. false [required] Do not serialize the XML and text declarations. Report a "xml-declaration-needed" warning if this will cause problems (i.e. the serialized data is of an XML version other than [XML 1.0], or an encoding would be needed to be able to re-parse the serialized data).

"error-handler" Contains a DOMErrorHandler object. If an error is encountered in the document, the implementation will call back the DOMErrorHandler registered using this parameter. The implementation may provide a default DOMErrorHandler object. When called, DOMError::relatedData will contain the closest node to where the error occurred. If the implementation is unable to determine the node where the error occurs, DOMError::relatedData will contain the DOMDocument node. Mutations to the document from within an error handler will result in implementation dependent behavior.

Returns:
The pointer to the configuration object.
Since:
DOM Level 3
virtual DOMLSSerializerFilter* xercesc::DOMLSSerializer::getFilter ( ) const [pure virtual]

Return the WriterFilter used.

Returns:
The writer filter used.
See also:
setFilter
Since:
DOM Level 3
virtual const XMLCh* xercesc::DOMLSSerializer::getNewLine ( ) const [pure virtual]

Return the end-of-line sequence of characters to be used in the XML being written out.

Returns:
The end-of-line sequence of characters to be used.
See also:
setNewLine
Since:
DOM Level 3
virtual void xercesc::DOMLSSerializer::release ( ) [pure virtual]

Called to indicate that this Writer is no longer in use and that the implementation may relinquish any resources associated with it.

Access to a released object will lead to unexpected result.

virtual void xercesc::DOMLSSerializer::setFilter ( DOMLSSerializerFilter filter) [pure virtual]

When the application provides a filter, the serializer will call out to the filter before serializing each Node.

Attribute nodes are never passed to the filter. The filter implementation can choose to remove the node from the stream or to terminate the serialization early.

Parameters:
filterThe writer filter to be used.
See also:
getFilter
Since:
DOM Level 3
virtual void xercesc::DOMLSSerializer::setNewLine ( const XMLCh *const  newLine) [pure virtual]

The end-of-line sequence of characters to be used in the XML being written out.

The only permitted values are these:

null
Use a default end-of-line sequence. DOM implementations should choose the default to match the usual convention for text files in the environment being used. Implementations must choose a default sequence that matches one of those allowed by 2.11 "End-of-Line Handling". However, Xerces-C++ always uses LF when this property is set to null since otherwise automatic translation of LF to CR-LF on Windows for text files would result in such files containing CR-CR-LF. If you need Windows-style end of line sequences in your output, consider writing to a file opened in text mode or explicitly set this property to CR-LF.
CR
The carriage-return character (#xD).
CR-LF
The carriage-return and line-feed characters (#xD #xA).
LF
The line-feed character (#xA).


The default value for this attribute is null.

Parameters:
newLineThe end-of-line sequence of characters to be used.
See also:
getNewLine
Since:
DOM Level 3
virtual bool xercesc::DOMLSSerializer::write ( const DOMNode nodeToWrite,
DOMLSOutput *const  destination 
) [pure virtual]

Write out the specified node as described above in the description of DOMLSSerializer.

Writing a Document or Entity node produces a serialized form that is well formed XML. Writing other node types produces a fragment of text in a form that is not fully defined by this document, but that should be useful to a human for debugging or diagnostic purposes.

Parameters:
nodeToWriteThe Document or Entity node to be written. For other node types, something sensible should be written, but the exact serialized form is not specified.
destinationThe destination for the data to be written.
Returns:
Returns true if node was successfully serialized and false in case a failure occured and the failure wasn't canceled by the error handler.
Since:
DOM Level 3
virtual XMLCh* xercesc::DOMLSSerializer::writeToString ( const DOMNode nodeToWrite,
MemoryManager manager = NULL 
) [pure virtual]

Serialize the specified node as described above in the description of DOMLSSerializer.

The result of serializing the node is returned as a string. Writing a Document or Entity node produces a serialized form that is well formed XML. Writing other node types produces a fragment of text in a form that is not fully defined by this document, but that should be useful to a human for debugging or diagnostic purposes.

Parameters:
nodeToWriteThe node to be written.
managerThe memory manager to be used to allocate the result string. If NULL is used, the memory manager used to construct the serializer will be used.
Returns:
Returns the serialized data, or null in case a failure occured and the failure wasn't canceled by the error handler. The returned string is always in UTF-16. The encoding information available in DOMLSSerializer is ignored in writeToString().
Since:
DOM Level 3
virtual bool xercesc::DOMLSSerializer::writeToURI ( const DOMNode nodeToWrite,
const XMLCh *  uri 
) [pure virtual]

Write out the specified node as described above in the description of DOMLSSerializer.

Writing a Document or Entity node produces a serialized form that is well formed XML. Writing other node types produces a fragment of text in a form that is not fully defined by this document, but that should be useful to a human for debugging or diagnostic purposes.

Parameters:
nodeToWriteThe Document or Entity node to be written. For other node types, something sensible should be written, but the exact serialized form is not specified.
uriThe destination for the data to be written.
Returns:
Returns true if node was successfully serialized and false in case a failure occured and the failure wasn't canceled by the error handler.
Since:
DOM Level 3

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/DOMNodeList_8hpp__incl.map0000644000151400015140000000003511653571065017056 00000000000000 XQilla-2.3.0/docs/dom3-api/functions_func_0x66.html0000644000151400015140000001012311653571065016666 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
 

- f -

XQilla-2.3.0/docs/dom3-api/DOMXPathResult_8hpp__incl.md50000644000151400015140000000004011653571065017464 000000000000002467c2d904d2ea47e589818b53f5684fXQilla-2.3.0/docs/dom3-api/DOMRangeException_8hpp__dep__incl.map0000644000151400015140000000023411653571065021240 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMNodeList_8hpp.html0000644000151400015140000000637011653571066016112 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMNodeList.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
Include dependency graph for DOMNodeList.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMNodeList
 The DOMNodeList interface provides the abstraction of an ordered collection of nodes. More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMXPathNSResolver__inherit__graph.map0000644000151400015140000000035711653571066024515 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMDocumentType_8hpp__incl.png0000644000151400015140000001646611653571065020003 00000000000000‰PNG  IHDR˜uüô`êbKGDÿÿÿ ½§“ëIDATxœíÝi\×Úð²‰l¢ ¢€,.èվȦîÒJA¸–[YÄ(ÚŸÛU[ô*â‚€‚@µDÐZ¸ˆ(UQAQѺÊ !ɼÆ›ÆlR…Lžÿ§ÉIΙg&'OΙÌLH†!d2DŸ @âA"H<<¼´´4--môèÑm\ÜîÛ··<>>ÞÔÔt°ÖâììŒïŸÁj™x‰ŽŽÖ××g±X¯_¿¾xñâºuëUUUB½½½šššþþþ/^¼8sæLyyydd¤ŒŒ B¨±±ñùóçìyWW×Çظ˜ P(ÙÙÙ!;;»‹/â…ÁÁÁø2BHMMÈX‚©¥xÑÐÐÐÒÒÒÖÖž:uê¾}ûôõõÓÓÓñ§RRR444Ž9òüÃÐÐÐÞÞ>..®±±1''­­mQQ»©ßÿ}Ê”)l\L°X¬ÎÎN|YAAAKKKKK 6jý¬,|ûnÈĉDZºté;wð‡ùùù>>>øà §¨¨¸zõjöE0NNNEEEìSÉoܸáèè8ÀÆ»»»8°lÙ2ØØX:Îd2“’’¾úê«åË—GDDtww#„Þ¾}Ëž¢r.;;;çääøúú._¾üܹsyyyžžž‹-JLLÄ_À`0âââV¬X±bÅŠ¸¸8ƒ×*((ðõõ]ºtéÏ?ÿŒ B­\¹RÈn9qâÄþó|™J¥ÎŸ?¿¶¶¦¤¤dÍš5+V¬8qâD¿ õr)//÷òòZ²dÉÙ³gÙÛÅÕ” ö˜€D&Ö BÝÝÝ­­­¼Ç†LMM_½z…/[YYQ©ÔçÏŸ#„zzz***ìììÒ8BèØ±cÍÍÍqqq,++;þ|FFFqqqDDDTTÔëׯÓÒÒ„‡zïÞ½ØØØuëÖÅÇÇß¾}ûÌ™3©©©ø+##ƒB¡œ:u*22²¢¢")) ¯uëÖ­“'OúûûŸ:uª««+&&!”™™)dEŽŽŽ%%%L&!TRR¢¯¯ÏÞ-YYY?þøãÝ»wÏ;'d½œîÞ½ÿÝwß%$$°Çƒ¼M *â™d#‘H, _–‘‘qppÀg—·oß¶¶¶àá$ƒQXX¸aÃ}}}“µk׿çç_½zõ›o¾1117n\xx¸¥¥¥ðF¾úê+eeeWWW„Ð×_­¬¬<þ|„PWWB(''gÓ¦M:::&&&þþþ¥¥¥x­åË—«ªªº¹¹!„ØID8+++YYÙÊÊJ„PAA««+û÷ÀÀ@CCC ‹ýë_ø@UÐzy#Ÿ={6;Z¾M *â7ˆµ7oÞ „TUUµ´´êêêlmm9_PWW7qâDöC''§C‡ùùù ŸWr5ÞÖÖÆb±ðe„ÐèÑ£›››B†††x‰‘‘‘‘‘Wu®Ë¡•••Bø,Îe\cc£»»;û¡ŠŠ ¾ ­­ÍõÊ’‘‘±··/..611¹wï^HHû)vÀcÇŽÅ7AÐz99!Äùk/ߦq‰L|avùòåY³fá]\\RRR¦NÊ>LF£ÑΟ?ÏùAµ¶¶îíí­ªª*//çü„ o\SSSFF†B¡àÙª¡¡A[[Ã°ÆÆÆqãÆ!„êêêîܹãíí×e2™d2¹¥¥eàÛ¢®®…Ÿå€O“ñr®ô1@NNNû÷ï766¶¶¶5j»üÍ›7&&&¡×¯_ãéIÐz9ñ·)A…@ÀÔR¼´···¶¶¶´´<|øpçÎ åË/¿ÄŸòõõmkkÛºukiié›7onÞ¼¨­­½lÙ2vu|vyäÈ ÞsÄ5.++ëìì|üøq …‚ŸÕáâââêêšðâÅ‹/^;v¬©© !„Ÿ«‘——×ÛÛ+üH{{ûøøø¦¦¦úúúï¾û.++KÈ‹©TªðÖlll˜LæO?ý„ÏdÙ¢££ß¾}ûôéÓ„„üp|×{õêÕžžá«àmJP!0"/ÁÁÁø‚ŽŽŽÍéÓ§Ù³!eeåÓ§O'%%ÅÅÅ544èëëÏ;×ÃÃCNN޳ggçììì+Vü­Æ7mÚ ''7gÎ///‰D£ÑÂÂÂh4Ú¬Y³üýýBêêê~~~111iiiëׯ¿yóæ·ËÏÏ/::úÛo¿%‘Hxk¼ôôô¬­­ÝÝÝûí7!­áùúÚµkœå...!!!4mîܹ^^^‚Ö{øðá)S¦ðf j ŸHò¶ÄÜXQDH$ÒîÝ»á~dƒ%!!¡±±qÇŽøÃ·oßz{{_¿~ýó[æÛÔ'´ß >_¢SK aèt:…BÉÉÉY¼x1ѱq‰ H˜'Ožøûû/X°€óº•%K– Jû|›ÄöÁP€©¥ˆÀÔr¸©¥(Áˆ ñ ‘$$2€ÄƒDxÈ@âÁé"B"‘LLL455‰äS`‰ÅR “i"^/“©(#ÓG"Idmkk«¯¯‡Ï—hÀµ–"âááAtŸ¨¯OöéSM‹4eÊ»OºWÅ'Â0ô஌ ËܼMAÏ]Å×=—ÀÐæâÅòíÛ3ÌÌôcc} E=œ|ýº5((åٳƈˆUîîÓE¼v A ‘þzzú¶oÏÈ̼·e‹ë¦M®²²ÄNe0XÇŽåEEå­\i±JEE0€˜ƒDøxüøm@@JWõÄ o{û‰¯0ÄŠ‹ŸmÜxvÄ¥¸8KKøJÀ ~µÀ0,!¡xÑ¢£††šùùaâÅBfùùa††š‹MH(†o_ÀFdà/íí½[¶œ/,|²sçR??ûO»õÐÁ0ìÌ™›ûö]ž3Ç"*ÊSCC™èˆ€¸€DÞ»{·~ýúTYYrLÌšiÓ¸ÿjD|TTü”Ê`0Ož\3s¦ Ñá±SK€˜LVddîªU'mmóòBÅ9‹!„¦M3ÊË µµ5öð8™Ëd²ˆŽFdÃ]SSGppÚ½{<èáá1ƒèpþ†ôô²ððt[[£èho]]u¢ÃD‚D6¬ToÞ|NGG-6ÖÇÌLèpþ¶gÏ~ji鎊òtq™Dt8€00µ¦úû™;w^òõMX¸Ðæ·ß¶HbC™™éýúëfggs_ß„;/õ÷3‰ŽFdÃÑË—-)uuï~üÑ]²¦“‚¤§—}ÿýESSØXccm¢Ã¢#²a'3óž«ëa&“uíZˆtd1„‡ÇŒk×B˜L–›[ä¥KD‡D FdÃHo/}Û¶ô‹ï}óýÎKäå¥í–t:cß¾+‰‰7ÝÝmðPV–':" "Ȇ‹êꆀ€Ÿþü³'*jµ««Ñá ¡¼¼G[¶üÑá€OSKI•P¼pa”––JAAd±OææfUP¦©©²pḞIrÁˆLòttô†„\¸víÑæÍóüë\i‚ÿ ðÑ£ùnnV‘‘_ÁõL™„)/”ÚßÏŠŽö¶³3%:©RRRœ&''³fút¸žI’À—¹ÄÀ¯:Z¹2ÚÜ\¿  ²Ø ³³3-(53Ó[¹®g’00"“ MM6œ½{÷¹xþu®4a_Ï4kÖøãǽàz&‰‰L\¿þtÓ¦³ªªŠ±±>“'!:œaááÃ×)ÝÝ´ãǽœœÌ‰|L-Åþ_GÞÞ§íí'^»YLd&OsíZˆ½ýD/¯ÓðÿLâFdâë?þ Jyö¬1"bœ¯O”ôô²íÛ3ÌÌôbb|ŒŒFàFdbêòåûnn‡ûú¹¹Òó_G’ÈÃcFnnÆps;|ù2\Ï$¦`D&v¨TzxxzFF¹ŸŸÃŽKàª#âá×39S¼jÕt¸žI A"#Fuuƒ‘ÑHî;íÿÏžîç—H£õÛ0GÞ³gÑ1 ;»wgݼYS]M12‰ÿñbg'uƳññ76nt9rÄSC.‘SjjJ3X,ÖWŸ>¥8:š)(È!„ÒÓË¢¢ò;;iÔ¹sáö³¢SKQ+(¨öõMÀ0ŒD"ÉÊÊäæníí¥¥ÒéŒ'¼gÏž@t€`@nݪݰ!M^^6&ÆGYYnþü#ø)$)%å[Èe"‰L¤ÚÚzìí#ÚÚzñÝ.++£§§ÞÒÒ=eÊØ“'½õõ5ˆü Jûúõiü1räˆÆÆ&“…"‘¦¦ÊÍ›Û55Uˆpcd"µeËùÎN*û˃Á`56vLj”žYLâèëk¤§M™bÔÔô>‹!„0 uvR·ný™ØØ†Hd¢séRE~~5ƒÁâ,d0X·o×ýúëC¢¢ŸãÊ•wî<ç}OóògeUÕ0SKihhwp8@¥Òyw8‰„””®_ÿnÌ-BbŸæÕ«?çÌ9$ä=-.Þf`mQ€™ˆ„…ýB§÷óýÚÀ0D£õ§²§'@ü1™¬àà4OCa¢ÓûÃÂ~}`Ã$2Q8wîNQÑ® NVV†L–Á0¬¯QSÓ(úØÀ§©©iìëc`"“eøÞ¤—Á`=9þŽèc†`j9äêë›çÌùÎà,”——¥Ó**òóç[»ºZÙÛO„sÇ$Q{{ïÍ›5yyrs«zzèøÛÊùyyÙÂÂïLLFá0‰lh1™¬Å‹>~ü–Á`‘HHNN–Ngèè¨-Y2eÉ’ÉÓ¦Ã÷¥ƒÁª¨xyåÊÃ+W¼{×)//Ûßÿ~¼feeøë¯›Èdx£‡Ð‰ŒJ¥¶µµôII)=~ü‰„0 £éì<ÁÁa¼µµÔtk%%%MMÍÏiAÊz“ɪªj(.~^XXóæM;þÖoÚä´f ÜÂdüuYë‰ìÝ»wÕÕÕD„$Þ¼éڱ㆑‘úôézÓ§ëëë«Ñà5j”¥¥åç´ Å½ŽBé./§”—7þñGÇ?8Ž=‚èˆ¤Š““{™Ï-b8ŸŸãÉ“†û÷çHñÞ?¬¦¤µ×yz"„P[[OccÜc°ð~ùÁ½®†t\€ÓÔT‘âï3q %GjÃ$2€ÄƒDxÈ@âI|"{õêÕÚµk?ú²ºº:‰Ä¹ÀYýþýû²²²ééÝD?;;[^^¾ªªj(bæBâ`llìããÓÜÜ,äõ†y{{«ªô¬4‰TWW7‘‚÷øö:®®õ9Í~´Kôôô„……Mž++«uëÖa`kkK§Ó‡,ê „jkkÙY,–ƒƒÃ®]»½žïv ¼ýAôèÑ£G}f#RÓëþîû"¤Yá]"44ÔÞÞžÁ`°_ÐÝÝmll×?þ÷ßÏ~699yÁ‚ì6BþþþZZZ å"ø‹‡®ãñö™¿="»|ùòèÑ£ñ‹ãΟ??qâÄžž„PXX˜®®®ŽŽNXXX?>ýïÿ;vìØ¢¢¢Ý»w;vÔ¨Q>>>ìïÞZ¡+W®ØØØ(**š˜˜¤¦¦"„ ßê---***JJJœÃ]öò¬Y³BzzzHÀx˜]!$//Ÿœœœ˜˜‘”””œœ,'''(ÈAÜ4^$) àêÕ«‚ÚáÜ®¶™——gjjª©©ÁÞÙÙÙfff:::7nìëëã[8Ðn1Äij×1™ÌC‡Mœ8qĈvvvwïÞÅ_ÐÞÞþÏþS[[ÛÐÐ044”F£!„H$Rbb¢……ŨQ£8šš:nÜ8uuõ;wr5Ë»ù\]"--m×®]d2™ý•°°°´´4ü¡‡‡Ç/¿ü‚ýoò˜‘‘±jÕ*ηlÙbnnŽms­‹7xA›Éw7r]ÇžçøòñññõõmllÔÕÕ½{÷.^xðàAww÷W¯^UVVN›6mÛ¶mxæ^°`Aaaáž={,--+++«ªªfΜ*¨Vww·‚‚B\\…B9s挬¬lww÷¡C‡øVOLLLMMÅ>ü–`/´]mÛ¶m¡ýû÷sé¦aü¾¸ÊÊÊ444„¯VP›œB‹/îìì¼xñ"B¨¥¥oÁÕÕµ¦¦æÎ;¦¦¦{öìá[(¼'ˆrD&†½îÈ‘#:::™™™ W¯^ůaÆ0ÌËËkîܹϟ?¯¬¬´²²Âw#BÈÓÓ³³³3!!!ôå—_vvvž:u G°{£.góææf®ýSRR¢««‹×}úô©žžÞýû÷1 kooWVVniiA#²ÚÚÚšš%%¥¤¤$ìÃoð‚6“w7r…4t·Ï|J"kkk344´±±á\Ÿ¹¹9{¤šŸŸ?eÊ<¾ÊÊJ ÃÌÌÌ233ñg«««Ù˼µZ[[åää>ÜÖÖÆb±ººº˜L¦ êîîî­­­Ø§&2vu‹ÅZ¶l™LöööæÜÞ!Ý4ìc‰LÐÚñAmrBa†C©­­åŒð .˜ššò-Ä„e"Ã^7qâÄäädv0?ýôBˆN§“ÉdönÉÌÌÄw#B¨¢¢Ã0:εŒ¿ûœ½ñÙíÛ·µµµÙuׯ_¿}ûv ÃÒÒÒæÍ›ÇÙ&{áØ±cjjj¯^½b÷(¾ÁóÝL¾»‘+¤¡ëxƒ“È0 Û»w/™Lnjjb—(**rôÔÕÕñøð#MŠŠŠUUU¼íðÖÂ0ìÖ­[«V­RQQ±··ÿí·ßUïêêZºt)¾ÌùÙ®©©H"㬎KMMUWW¿qㆢ¢bVV–h6 ã×kÏ;gkk+|íìóm“B¨¦¦†s]x T*/|øð¡¢¢"ßBÞÖ8‰ø™¸õ:%%¥°Ÿºÿ>Bèõëל»±²²ßœï2ï2WoÞ%ôôôòóó¹‹ussc×-**255e±XË—/?uêÆ/‘1™LGGG|(„÷(¾ÁóÝLA»‘ÓÐu¼A8F†¿UÑÑÑ...!!!ìBmmmö®okk»sçý~ñ#M/_¾ÄKg`ø/Ðoß¾ÈVpUohhظqã¡C‡vïÞíïïÿ矊`ÓxÃ;å¢E‹„¯7À6ùþ^Žw „PMM ûÖN| Åö:cccÎñ{èêê’Éäúúz¼ðùóç£GþèÖñvfN\]ÂËËkïÞ½ìß(B===älaöìÙ]]]·nÝÊÏÏô«ŒŒLRRRIIÉéÓ§ñ¾ÁóÝLô±ž‰]Çžçx1™L—}ûöµ¶¶êéé]¾|/߸qãªU«ðß}gΜÌ9pؽ{·MUUUUU•Ý·ß~+¨•JUTTÌÈÈhnn>}ú´¢¢"•Jå[ÝÛÛûíÛ·x;øY6gΜéèèX±bâ|uuuaüFdœÕY,ÖâÅ‹ñyN·±±ñôôÁ¦a†8~k/**Z¶l™¡¡a{{û@Ö.¨Íøøxv ˆçûoÁÙÙ¹¶¶¶´´t„ »víâ[(¼3ˆlD&ž½îرc:::YYY %''ÇÄÄ_õ×_=wîÜúúúªª*KKK|7ò¾ œËœÍbëfffŽŽŽ999555™™™–––vvv4³ñ   ggg®•¢‡{±±±xºÁò/h3yw#&ªŽ7SË'NLž<º_ºtI__ŸØwvv®]»VSSsäÈ‘ëÖ­ëééáìR4-44ÔÀÀ@]]ÝÓÓ³­­ /ç­…aØ… Æ///onnžÍ·:N_¸p!g`û÷ï×ÐÐ?~|vv6¾ÞþþþÙ³g«ªªb<‰Œ«zrr²‚‚³gÏØ%¥¥¥222C½i؇?3ÆËË‹sö$|íBÚò±Á[HHH022ÒÖÖÞ°a•Jå[(¼3ˆ,‘‰g¯c0‡255UQQùâ‹/ð! †a­­­kÖ¬9r¤¾¾þ–-[Ø_W‚Þ‘êêj®Î,¼K`ÖÝÝbee¥¬¬lii¹ÿ~öé ìÆ‹ŠŠB'Ožä*çJd,kÞ¼yˆã¨+Wð‚6“ïnMÇãí3|î+­·¸luuu¼'ó-Ÿe Êb¡× ƒÕñxûŒÄŸÙȆ#555ÿ0ˆ†®ãÁÔ|:˜ZBÀÔ … ‘$$2€ÄƒDxÈÏô644ˆ> ‰h4וß z¸îîn®>‰ ¿€¬D½|Òߺ2Ä#H XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::XMLPlatformUtils Member List

This is the complete list of members for xercesc::XMLPlatformUtils, including all inherited members.
alignPointerForNewBlockAllocation(XMLSize_t ptrSize)xercesc::XMLPlatformUtils [inline, static]
closeFile(FileHandle theFile, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtils [static]
closeMutex(void *const mtxHandle, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtils [static]
curFilePos(FileHandle theFile, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtils [static]
fgAtomicMutexxercesc::XMLPlatformUtils [static]
fgDefaultPanicHandlerxercesc::XMLPlatformUtils [static]
fgFileMgrxercesc::XMLPlatformUtils [static]
fgMemoryManagerxercesc::XMLPlatformUtils [static]
fgMutexMgrxercesc::XMLPlatformUtils [static]
fgNetAccessorxercesc::XMLPlatformUtils [static]
fgSSE2okxercesc::XMLPlatformUtils [static]
fgTransServicexercesc::XMLPlatformUtils [static]
fgUserPanicHandlerxercesc::XMLPlatformUtils [static]
fgXMLChBigEndianxercesc::XMLPlatformUtils [static]
fileSize(FileHandle theFile, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtils [static]
getCurrentDirectory(MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtils [static]
getCurrentMillis()xercesc::XMLPlatformUtils [static]
getFullPath(const XMLCh *const srcPath, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtils [static]
Initialize(const char *const locale=XMLUni::fgXercescDefaultLocale, const char *const nlsHome=0, PanicHandler *const panicHandler=0, MemoryManager *const memoryManager=0)xercesc::XMLPlatformUtils [static]
Initialize(XMLSize_t initialDOMHeapAllocSize, XMLSize_t maxDOMHeapAllocSize, XMLSize_t maxDOMSubAllocationSize, const char *const locale=XMLUni::fgXercescDefaultLocale, const char *const nlsHome=0, PanicHandler *const panicHandler=0, MemoryManager *const memoryManager=0)xercesc::XMLPlatformUtils [static]
isAnySlash(XMLCh c)xercesc::XMLPlatformUtils [inline, static]
isNELRecognized()xercesc::XMLPlatformUtils [static]
isRelative(const XMLCh *const toCheck, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtils [static]
isStrictIANAEncoding()xercesc::XMLPlatformUtils [static]
loadMsgSet(const XMLCh *const msgDomain)xercesc::XMLPlatformUtils [static]
lockMutex(void *const mtxHandle)xercesc::XMLPlatformUtils [static]
makeFileMgr(MemoryManager *const manager)xercesc::XMLPlatformUtils [static]
makeMutex(MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtils [static]
makeMutexMgr(MemoryManager *const manager)xercesc::XMLPlatformUtils [static]
openFile(const char *const fileName, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtils [static]
openFile(const XMLCh *const fileName, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtils [static]
openFileToWrite(const char *const fileName, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtils [static]
openFileToWrite(const XMLCh *const fileName, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtils [static]
openStdInHandle(MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtils [static]
panic(const PanicHandler::PanicReasons reason)xercesc::XMLPlatformUtils [static]
readFileBuffer(FileHandle theFile, const XMLSize_t toRead, XMLByte *const toFill, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtils [static]
recognizeNEL(bool state, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtils [static]
removeDotDotSlash(XMLCh *const srcPath, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtils [static]
removeDotSlash(XMLCh *const srcPath, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtils [static]
resetFile(FileHandle theFile, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtils [static]
strictIANAEncoding(const bool state)xercesc::XMLPlatformUtils [static]
Terminate()xercesc::XMLPlatformUtils [static]
unlockMutex(void *const mtxHandle)xercesc::XMLPlatformUtils [static]
weavePaths(const XMLCh *const basePath, const XMLCh *const relativePath, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtils [static]
writeBufferToFile(FileHandle const theFile, XMLSize_t toWrite, const XMLByte *const toFlush, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)xercesc::XMLPlatformUtils [static]
XQilla-2.3.0/docs/dom3-api/DOMXPathException_8cpp__incl.map0000644000151400015140000000023511653571065020235 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMXPathResult_8hpp__incl.png0000644000151400015140000001052211653571065017571 00000000000000‰PNG  IHDRÅuq²ÒbKGDÿÿÿ ½§“IDATxœíyP×öÇï0Ã0l2,‚Àˆ `DF”÷Ä*ᮈ€¢ ”EECù”XQHÔXq# D‡'¨±@%&Œ1nÈ3"ê3H,£Àà° ³°MÿþèWýk™¥Ùžçó×íÓ÷œ{nóí{o/C30 C@:cð?è  Ð@' '€NXÃáçç7ü Àxà³Ï>[´hÑp"Р§Ë—/Ïœ9ÓÒÒrø¡€1D$EGG3 zB…„„xyyÑ +D"ÑðƒÀú  Ð@' '€N@O€ž:¡çúnH¼½½‰²••ÕìÙ³ãââ¸\.aT*•·oß‹Åvvv¡¡¡L&÷µµµ-,,d0Dý;wVWWÉåòØØØÝ»w˜×®]KMMÍÌÌ´··'·k`` ¬­­µÌ¹¨¨ÈÖÖVSGØl¶ƒƒÃÖ­[ù|þ[ JšššÂÃ몪Þ6¥qÅèOgÏž-..Þ¹s§L&Û´iSWW¾K.—ÇÄÄ?11ñÁƒr¹œ2C•JÕÙÙ©eGÌÌÌx<^lllcccGGÇ[Íh™ÆødlÖO cåÊ•7oÞÄ7+++#""ttþ?‡ZYY‰ozyy‰D"b¸rå ù±‹ÅJNN.//?yòdyyyrr2‹E=ãMô÷÷#„nܸíïïtêÔ)„P||üðCò.¥R©P(äryssó×_íäädll,—Ë÷ìÙãààPTT—ÝÞÞ~ìØ1„йsçß[·neggïØ±#''‡3ð€ …¢µµ577×ÏÏOWWßURR"‹3339rçÎüü|¥R™ššºjÕªï¿ÿ~Æ T*•ƒõ4ÈP¦TZZzàÀ/¿üòÖ­[ø¹¡É8ÒŒÒzü`0ÄúIGGÇÓÓS$ñùü7n¸¸¸Lš4‰\ð¿þúKGG‡ ÁÇŒX,–³³óîÝ»Bl6;77×ÒÒROOò(“ÉÔsX»v­ÁÂ… BR©o”ˆÒ××?~ü8±Y^^ž––ffffii# CCC1 S(l6ÛßßßËËKOOo8‡e@J¸1..ŽÇãá¹åääøúúª###‡Ó®–Œ™žmllBFFFfff nnnä ŽŽŽÄ¦——סC‡¢¢¢Lv8—/_¾{÷nZZZRRÒ¢E‹È£å‹Åjll<|ø°B¡pppД¤¹¹9Bˆ|]IØÝÝ——wðàÁï¾ûßÕÒÒDÔ444466NKK+))ÉÏÏwtt\¿~½»»;9ÚÛ®å)SÂuƒ²³³{õêÕ Æ‘flæ; ÃΟ??þ||Ó××÷ĉÄh„R*•§OŸž7oaqqq‘Ëåuuu555øÙIÐÚÚšžž+"##92äz¶»»;555444++këÖ­šª ø³ @OOÏßßÿéÓ§„&LLLŠŠŠªªªªªª.\¸pìØ±îîn•J•ššzáÂ…¥K—îÚµ‹TðeÜëׯOU›”ñÂóçÏqÁi2Ž4£§§ööv‰DòúõëÚÚÚÝ»w‹Åâ5kÖà»"##ÛÚÚ¶mÛV]]ÝØØxõêÕ¸¸8 òe3>å=zô£>"߸Â0ìÈ‘#öööË–-C­Y³ÆÔÔôÛo¿<™ÞÞÞ¾¾>‹ÕÓÓ“ŸŸ".ú …ö244”Ëå„‹‡‡Gvvö‹/ž>>;vì())qqq ºté’–š`cóO¡0råJס«¾ßÀú  Ð@' '€N@O€ž:=tzèôÐ è  Ð@' '€N@O€ž:=tzèôÐ è  Ð@' '€N@O€ž:=tzèôÐ è  Ð@' '€N@O€ž:=tzèôÐ è  øÿtÔlÞ\øŸÿˆ‰Í¦¦v33C}ýÿ~?Åbþë_QÖÖ\ Þï/ã÷ûÁc ŸoUZz‡|®I¥ ò^%0ßQ³zµBÔ{e±˜¡¡ó(w 'j¦M3l)?Ü߯Zµjî¨g41=i$8øïLæÀ㣣Ãps›fc“5 'ÌU¿Xa0ÁÁ“|& 'XX¹»óÕ‡¨åËgI>ÐÓ`„„üyòäÇG'··#ñâÅ‹ªª*lB±lÙ2¹\N¹ëñãÇ:¨n$Ü»»»gÍšµiÓ& ÃbccÝÜÜzzzF,ë7@=~ü˜ØT©Tžžž{öìÑTŸ²_Úǧ‘û÷ïß¿Ÿlyëñéüùó¶¶¶øc¾Ó§O;::Êd2„PoooRR’•••¥¥eRRRoo/>³üüóÏvvv"‘(%%ÅÎÎnòäÉÄɧî…ºpá‚@ àp8ööö………¡¾¾>J÷ׯ_êëë“g1¢<þ|„Д)SÚ47À!Äf³ òòò8ŸŸ_PP «««)I»¦ƒÁˆ½xñ¢¦8ä~i³¢¢‚Ï盚š8p€8eeeNNN––– ÝÝÝ”FmeA@—–ãSDDDdddKK‹••Õ­[·pãW_}ôìÙ³{÷îÍ;799?–,YòË/¿¤¦¦:;;ß»w¯®®ÎÝÝ=11Q“WWW—žžžP(‹Å¹¹¹,«««ëСC”îyyy………Ø›§,QÒH¸$''#„öíÛG6Žh×0ªñãöíÛ\.wðÖñ½šb’A-_¾¼³³óìÙ³øY„GX¼xq}}ýÍ›7ù|~jj*¥qp%¨O¶¶6'Èí͘1C,ãåÊÊJWWW<¿{÷îaæäätîÜ9|ïlj²º—D"ÑÕÕ=|øp[[›J¥’J¥ýýýšÜƒ‚‚$ ö®z"ÜqT*U@@“É '÷wD»† ¥'M­ãM1É „D"†aýýýx[äü1 ;sæ ŸÏ§4bƒBž0 ûâ‹/˜Læ‹/ ‡Ã!{&&&x~ø*„ÃáÔÕÕ©ÇQ÷Â0ì·ß~ 644ôðð¸té’&w©TºråJ¼L>Äø[ØPz"»ãš˜˜\¹r…Ãá”––ŽN×0*=:uÊÍÍmð։ʔ1É „êëëÉmá n¬­­åp8”FõhdhX?!„ž?ž‘‘áëë»}ûvÂhaaA”¶¶¶›7oâv|bccóôéSÜr÷îÝýû÷kòR(*•ª¸¸X"‘DEE­X±B"‘PºÿôÓOþþþäÄúúúBMMMÚôb€{sssBB¡C‡<==SRRbbbZ[[G¡kê‰avüøñeË– Þ:Ž–1Õ׎!\@¡úúz›AŒoY\ÚŒOýýý¾¾¾{÷î•H$S¦L9þùä…BAi\ êzzãÿ?½|ùòáÇð>Ýÿ< ¤Liü}:gggÂ2áïã ÐÓûȤI“bbb´1¾-0ßïÌwÀÈzèôÐ è  Ð@'¿nnný<€‰ˆR©ð¸šBOð+}@{è ¾·Ð ¬Ÿ:=tzèôÐÉÿ¥LéÚ_$ÆIEND®B`‚XQilla-2.3.0/docs/dom3-api/inherit_graph_32.md50000644000151400015140000000004011653571065015725 0000000000000021502aa826f48ec3239c9a0103386f17XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMXPathNamespace__inherit__graph.md50000644000151400015140000000004011653571065024243 0000000000000098d799f6ef3d4ad66277874f4335eff7XQilla-2.3.0/docs/dom3-api/inherit_graph_22.md50000644000151400015140000000004011653571065015724 0000000000000094a55304d932f841838cc9fdc0b97d64XQilla-2.3.0/docs/dom3-api/DOMRange_8hpp__incl.md50000644000151400015140000000004011653571065016275 000000000000004cee47207bd7499dc921d4af66e54fc4XQilla-2.3.0/docs/dom3-api/MemoryManager_8hpp.html0000644000151400015140000000613211653571066016570 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

MemoryManager.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <stdlib.h>
Include dependency graph for MemoryManager.hpp:

Go to the source code of this file.

Classes

class  xercesc::MemoryManager
 Configurable memory manager. More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/DOMLocator_8hpp__incl.map0000644000151400015140000000003511653571065016740 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMTreeWalker_8hpp__incl.map0000644000151400015140000000003511653571065017402 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMLSResourceResolver_8hpp__incl.md50000644000151400015140000000004011653571065021011 000000000000004e6c9e2a5f22c0eb7cd0287775a97446XQilla-2.3.0/docs/dom3-api/DOMAttr_8hpp__incl.md50000644000151400015140000000004011653571065016153 00000000000000f4dba53e9191168827f57d46f7f34084XQilla-2.3.0/docs/dom3-api/functions_func_0x73.html0000644000151400015140000002733611653571065016702 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
 

- s -

XQilla-2.3.0/docs/dom3-api/inherit_graph_37.png0000644000151400015140000000411711653571066016043 00000000000000‰PNG  IHDR½($l—bKGDÿÿÿ ½§“IDATxœí›[L[ÇWí…I*R(åÒD FE0F}Àò I4 BA.‰$*$PL‰Áˆb|QˆE0D@”K| 5/€mj¹ŠQl¡-)´2sv2ߨ–ZæóóxüöïiÍš½f­½æß½§7I’€Á¬“ ÿt˜%X7&`Ý`˜€uƒa‡~ T*ËÊÊþ©R0¿3R©ôÒ¥KÔáwº™››ëîî–Éd¿¼*ÌoÍ‹/<==éŽý ¦¦¦_UæßAbb¢?ß`˜€uƒaÖ † X7&`Ý`˜ðêfppÃá477Sž¶¶6§V«€ÅbmÛ¶ÍæÛܘ˜‹5::Š ƒ‹†@ 8vìØÄÄŒŽŽ²X,Wª"IR.—{xxü—³£—dS§ÃÊ© ]/Õþ@Ý„‡‡_¼x177waaOŸ>­P(vïÞLNN¾yó†¯×ëŸ?þÃËö÷÷ÏÎÎÎÌÌ(•J‚ ärùCÆÇÇ…B!²gff‰D¢W¯^!çµk×âãã?|ø R©öîÝ[XX¨Õj &&æÙ³g¥¥¥;wîT©TjµúÀùùùkE™L&77·;wîÌÎÎÞ»wÃá˜L¦ŠŠ ‡á 555ö6¢°°ÊÊÊèNxûö­¯¯ïàà ŠrwwŸŸŸ­V‹ Ã&jhhÈh4 †ÑÑѸ¸¸}ûö‘$‰æH’¤Á`àñx™™™?~lhh€ÏŸ?Sgé#)))‡S©T»ví*--¥·Ëd2@rr²Á`¸{÷.$&& †êêj˜ŸŸwX'åq˜—2vØù—Éd2™ì»\ôu£×ëBCCKKK)gHHÈìì,²»ººÂÂÂP¡*•Š$ÉàààÖÖVtvxx˜²í£t:—˽qã†^¯'Âh4®®®®î‚ Nœ8Áf³årùwÐjµgΜ)**"I²¡¡!::š¤5}-ÝPp¹ÜÈÈH›;´²²222b2™VWW•J%ºÈZº±X,l6[£Ñ ÃÖÖÖ   z»PÆ4ØÆ^«Nuã°ÃΛùstC’äåË—ÙlöÜÜåáóùôæ T¨ÅbAgÕjµýuì£H’ìëëKHHظqã¡C‡ž>}ê$Ü õõõ@©Tòùü'OžügÂZ­¶··7((ˆ ˆØØØêêjÒÝØ;ÉïïP[[[DDDXXXFF†sÝLOO€ÙlF‡*•ŠÏçÓÛe“Ñ¡ ïß¿§*!ÂEÝ8ì°sìuÃä¹xzzúöíÛQQQyyy”S(RsÓëõ/_¾¤^àçç799‰ XQilla DOM3 API Documentation SourceForge.net Logo

DOMLSParserFilter.hpp File Reference

#include <xercesc/dom/DOMNodeFilter.hpp>
Include dependency graph for DOMLSParserFilter.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMLSParserFilter

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/DOMImplementationList_8hpp.html0000644000151400015140000000672611653571066020217 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMImplementationList.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
Include dependency graph for DOMImplementationList.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMImplementationList
 The DOMImplementationList interface provides the abstraction of an ordered collection of DOM implementations, without defining or constraining how this collection is implemented. More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMXPathNSResolver__inherit__graph.md50000644000151400015140000000004011653571065024411 000000000000007cde97780c0cd0a79813eafb3bdbff28XQilla-2.3.0/docs/dom3-api/DOMDocumentTraversal_8hpp__incl.map0000644000151400015140000000003511653571065020777 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMAttr_8hpp.html0000644000151400015140000000632311653571066015301 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMAttr.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <xercesc/dom/DOMNode.hpp>
Include dependency graph for DOMAttr.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMAttr
 The DOMAttr class refers to an attribute of an XML element. More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/inherit_graph_16.md50000644000151400015140000000004011653571065015727 00000000000000ab548152d81fd1eb735616892b5b2228XQilla-2.3.0/docs/dom3-api/DOMImplementation_8hpp.html0000644000151400015140000000725511653571066017361 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMImplementation.hpp File Reference

#include <xercesc/dom/DOMImplementationLS.hpp>
#include <xercesc/dom/DOMException.hpp>
#include <xercesc/dom/DOMLSException.hpp>
#include <xercesc/dom/DOMRangeException.hpp>
#include <xercesc/util/PlatformUtils.hpp>
Include dependency graph for DOMImplementation.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMImplementation
 The DOMImplementation interface provides a number of methods for performing operations that are independent of any particular instance of the document object model. More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/DOMLSInput_8hpp__incl.md50000644000151400015140000000004011653571065016577 000000000000009a69967cd5cf1a29d684dca63b6a259fXQilla-2.3.0/docs/dom3-api/DOMElement_8hpp__incl.png0000644000151400015140000001544711653571065016752 00000000000000‰PNG  IHDR˜uüô`êbKGDÿÿÿ ½§“ÜIDATxœíÝ{œg6[[[¢¢¢´´´X,Ö›7oΟ?¿nݺ„„„Pww·¯¯¯ŠŠŠ···¶¶ö_ý_\\!!!jhhxõꕾ¾>ÞTGGÇ“'Oú6.ø“ÂQ(Ÿ¬¬,¢B¦–âCYYy̘1jjjÓ¦MÛ³g––VZZþPrr²²²ò¡C‡þõ¯éèèX[[ÇÄÄ444dggã;XZZ°›º{÷®……E߯9 ê´BˆÅbµ·· òˆ@´@"O$iùòå÷ïßÇÿÌËËóððÀ_8™5kÖ°ßÌ›7¯  €ýö7nÌ;÷“ŽÈ`0bbbV­ZµjÕª˜˜ƒ²µµÍÎÎöôô\¹råéÓ§sss]]]ø×ÊÏÏ÷ôô\¾|ùÙ³gB~~~¡Õ«W󌎎^·n]llì½{÷âãã}}}SRRðVµnß¾}ìØ1ooï'Nttt?~!”‘‘ÁóL ccc7oÞǸeff†……íÛ·¯°°ðôéÓ| €D6r‘H$‹…oKHHØØØà³Ë{÷î™™™)**rîüã?.ýWkÙÙÙ6lPWW×ÓÓóöö.**ÂË¿ýö[999;;;„Ðwß}'''·xñb„PGGŸZ+W®TPP°··G 8©Ä1gÎv³!___ccãü‘=ðäYļÙ/¶jkkµµµB cÆŒ©ªª²´´äÜ¡ªªÊÀÀ€ýç¼yóÂÃý¼¼xÎ+üd°¡¡ÁÉɉý§¼¼<¾!''‡’””äÚæ_KMMkO>TUUBœ¹"„tttð &¼{÷ŽO!ÈĆa/^œ={6þçÂ… “““§M›Æ~›ŒF£9s†3‰˜™™uww—••}ê•””"##ñd‡Of¿¤WVâçεµµzzz¡7oÞà™®¿B `j)>Z[[››››ššžâÂ…¢Ã‚#²¤»›¾ukÚùóøÁzÇGiiq»eÎØ³çRBÂ-''Ëýû]ä䤉Ž$²‘¢¼¼ÞÇç÷÷ï»"#×ØÙ™Î0ÊÍ}xVUU>&ÆsÊm¢Ã‚SË!.C¤šÚèüü`ñÎb!;;Óüü`5µÑ‘qq7‰ŒÈÄ\kk÷¦MgóòžmܸhãF;2y¤¼t1™¬Ã‡sγ³39th’¬ggÈÄÙƒùù¥0™¬cÇÖ~ýõ$¢Ã!ÀÝ»Uþþ©d²ÄñãkgÎüŠèpÀp)¯Ï# ‹…EDä89EM™¢Ÿ22³BèþG???dÊm'§¨ˆˆ ^¶ÅŒÈÄPccÛúõ§ŠŠþúåG!¼‰…à±o›1k–ÞÑ£îŠDG†$2qsíÚó N+*ÊÆÄx˜™éŽ)-}ãë›ÒÞN=rä»ùó‰ %Hd⣷—¹{÷Å„„[ø]¡à®ÐÜ:;?Ü¿û‡¬wî\.%E&:"04 ‘‰‰×¯›üüR*+ÅfÕÑðÁ×3Mž¬qüøZXÏ$àÍ~q™YboÑÛËÌÉÙYl@..3sr6õö2íí#²²0"mb¿êhøôô0öîý°žéÀYYXÏ$ ‘‰°çÏë}|’߽눌tµ·óïë“«WŸž;vtLŒ§±±Ñá€ÏSKQwséÒÈ1cäóóC ‹}6{{Óüüù¥KÁz&Ñ#2ÑÓÖÖtîêÕ§7."ð§sÅ þ3À‡çÙÛ›FD| ë™D$2S\ü—Ÿ_Jo/+*ÊÝÊJŸèpÄÊ;Uþþ©RRǯ1Ö3‰x1øª£Õ«£ŒŒ´òóƒ!‹ 9++ýüü`CCÍÕ«a=“ˆ™hhll_¿þTaá+áüé\qÂ^Ï4{ö¤ß~sƒõL"™¸~ýņ §d¢£=¦NOt8#“'o|}“;;i¿ýæ6ožÑá€ÀÔR¨á¿uäî~ÒÚÚàêÕ Èb3uêø«Wƒ¬­ ÜÜNÂï3 ?‘ ¯¿ÿ~ïç—üòeCX˜3|_Ÿ(ii¶mK74Ô<~ÜCWW•èpo0"R/>²·?ØÓÃÈÉŸß:E..3sr‚h4†½ýÁ‹a=“‚™Ð¡Ré[¶¤¥§{yÙüò‹ã¨Q°êˆxøz¦øø›ÎÎ3`=“‚DFŒòòz]]Uyyî;í<NñõM~û¶="bÍ’%f„Äú“]¶iÓY Ř##îõL]]=55ïáw›SKP©t/¯Ä-[Ò¸Êñß:RR’ÍË †,&„–,1ËÏVR’]º”Çï3mÙ’æå•@£õÛGÞµkÑ1Œ8¡¡™·nU”—StuUñ^lo§®_*6öF@ÀÂC‡\••a‰ŒRT”uq™Éb±öï¿üâeî\ÃQ£¤Bii"#óÚÛimmÔ àö³‚SKAËÏ/÷ôŒÃ0ŒD"IJJäälêî¦ûù¥Ð錣GÝçÌ™Lt€`Pnß®\¿>UZZòøq99©Å‹á_Ñ ‘HÉÉ?A.0HdÕÒÒemÖÒÒ_vII MM¥¦¦N ‹ ÇŽ¹ki) øJëÏ?§>~ü·ªê膆6&“…"‘ŠŠü­[ÛTTä‰p÷È*0ðL{;•ýâÁ`°Ú¦MÓMKóƒ,&r´´”ÓÒü,,t?d1„†¡övê¦Mg‰m¤D&8.”äå•3,ÎBƒuï^ÕŸ>!**ð%.]z|ÿþ«¾Ïinî³ÌÌ¢¢`j) õõ­66û©Tzß N"!YÙQׯo?~ !±ÏSSó~þüp>ÏéÍ›[µµa -0"?èô^ž/†h´^ÿöô?&“åïŸJ£ñÈb! CtzoHÈ‚ld‚D&§Oß/(xÎ5ÁIJJɆõô0**ø< == Cd²Ï›ô2¬‚‚çgÎÜ|l#L-‡]uõ»ùóÿ—NgpJKKÒé yyéÅ‹ÍììL­­ à»c¢¨µµûÖ­ŠÜܧ99e]]tüiåÜAZZòÚµÍzzc‰Šp„€D6¼˜LÖ²e‡Ÿ=«c0X$’’’¤ÓêꊎŽŽŽS§OŸwÜ «¤äõ¥KO.]züöm»´´doï‡ñš©©ÎŸn “á‰F%2*•ÚÒÒB`4â'9¹è·ßnHÃÐøñ*¶¶“ml&™™i‹M·–••UQQù’Ĭ×1™¬²²ú›7_]»VQ[ÛŠ?õ6Ì[»na2Ä´µÿYÖúQ"{ûömyy9!‰§ÚÚŽ_~¹¡««4c†æŒZZZ DG4ôÆŽkbbò%-ˆq¯£P:‹‹)ÅÅ ÿÝöë¯sÇMtDbeÞ¼yìm·ˆá||‰çÏë=š/Æßð~öìÙP5%®½ÎÕ!„ZZºÚàÆC¥ï‹ÜëjAÇ8y1~=bòN `$ƒDyÈ"@äA"ˆ<‘Od555ßÿý€»UUU‘H$Î Îê=’””LKûç&úYYYÒÒÒeeeÃ3‡‰'zxx¼{÷ŽÏþ†¹»»+( ö[i$©ªªj("ðìu\]ëKš°Ktuu…„„L:uôèÑ3gÎÜ·oƒñai‰Dš]¢££cÆŒ<8pàÀÇ·mÛvêÔ©E‹1™~ýõë×Ožüs‡»–––›7?ú©”ôôôsçÎ yüDÂ8466^¿~)ÝÝÝ<ª¬¬ä:Á¾…ìê===¦¦¦ëÖ­Ã0ÌÇÇÇÒÒ’N§[ÔAUVV²ÿd±X666;wîìožç5øö‡ÐÓ§OŸ>}ú…ˆM¯ûÔç…O³ü»Dpp°µµ5ƒÁ`ïÐÙÙ9qâÄØØX¼îâÅ‹·oßÎ~4))iÉ’%ì6BÞÞÞcÆŒ¡P(Ÿùàw¾Ž×·Ï|òˆìâÅ‹ãÆÃÇ9sÆÀÀ «« !ÔÛÛ¢¡¡¡®®ÒÛÛ‹AÿûßÿN˜0¡   44t„ cÇŽõðð`¿¶ô­…ºté’¹¹¹ŒŒŒžž^JJ BˆÁ`ð¬ÞÔÔ$///++Ë9ÜeoÏž=!¤©©‰ú³«#„¤¥¥“’’“’’¤¤¤ú rO­/‰äããsùòåþÚá<¯A¶™››«¯¯¯¢¢ƾYYY†††êêê===< Û-†™pö:&“n``0zôh++«ÂÂB|‡ÖÖÖÿûßjjj:::ÁÁÁ4 !D"‘ŒÇŽ»ÿþ”””¯¾úJIIiÇŽ\Íö=}®.‘ššºsçN2™ÌÞA^^>$$$55ÿÓÅÅå?þÀþò˜žžîììÌÙ``` ‘‘þ²Íu¬¾Á÷wš]ÏæïÞ½ãº>wîÜÑÐÐÀë¾xñBSSóÑ£G†µ¶¶ÊÉÉ555!ŽYeeeEE…¬¬lbb"öñ?Eßàû;;—‘+¤áëx}ûÌç$²––sssÎã±Gªyyyx|¥¥¥†fddà–——³·ûÖjnn–’’:xð`KK ‹Åêèè`2™ýUwrrjnnÆ>7‘±«ãX,ÖŠ+Èd²»»;çùë©a%²þŽŽ—ô×&'„PAA†aø{(•••œñcvîÜ9}}}ž…_‚LdBØë ’’’ØÁüþûï!:N&“Ù—%##¿Œ¡’’ Ãèt:×6þìsöÆÏHd÷îÝSSSc×ýù矷mÛ†aXjjê¢E‹8Ûdo9rDQQ±¦¦†Ý£xÏó4y^F®†¯ã M"Ã0l÷îÝd2¹±±‘]"##Ã9ÐSRRÂãÃßi’‘‘)++ëÛNßZ†Ý¾}ÛÙÙY^^ÞÚÚúÊ•+ýUïèèX¾|9¾Íù¿]QQ1˜DÆY—’’¢¤¤tãÆ ™ÌÌLÁœƫמ>}ÚÒÒ’ÿÑÙ;ól“B¨¢¢‚óXx T*/|ò䉌Œ Ͼ­qð{dÂÖëdee?~Ì~èÑ£G¡7oÞp^ÆÒÒRü2r>Ë}·¹z#ÿ.¡©©™——ÇXtt´½½=»nAA¾¾>‹ÅZ¹rå‰'0^‰ŒÉdÎ; á=Šgð`•HLL¼sçÎÉ“'ñžÁóË’;ÄB¯ †ªãõí3"ÿÍ~€D6)**z{{¦€!4|¦–àóÁÔ¦–1‰ ò ‘D$2€ÈƒDy<~ ·¾¾^ðqQD£Ñ¸V6èu`ð:;;¹Jx$2|)<ƒ1T‰ zø¤OZBÞ#ˆ¼jÕª/^.N&H™ÙóóóY,ÖüùóSSS%ktûöíO>ùdñâÅ„…}ß`€ü8YZZâ×õÚÚÚ8ŽäÜYÂÚÚºººŸ?~<ŸÏ¯ªªBµ··¸¸¸ôe)gΜ‰ŒŒ´±±IOOohhHLLÜ»woAAArr2Bˆ°Á`àù1??òäÉvvv ¥¬¬L ”——ãù±££cóæÍ666)))AAAGŽ‘¹œŠÂ0,11±   ..N__¿§ÅI)SÃÝ»w9qôèÑ––¼ðÂ… »víÚ¹sçÝ»w%y™°¨ȪˆB¡ˆÅb|ZMMmÆŒø)vNN΄ úxy1 `Ò¤I4-##cݺut:}ôèÑyyy!ÂBGGLJbvÿþ}'''*•:yòäüüüŠŠ ±XŒ?i®©©yìØ±àà`ccc:Žjoo—YtRRÒéÓ§£¢¢$¡.N:H™–-[6dÈéÓ§#„Z[[ñ   KKK{{ûU«VIúׄ…@EÀï3ƒPmm­……BHWW×ÈȨ²²ÒÉÉIú•••¶¶¶’—³fÍŠõ÷÷ïËɵ„••>ñìÙ3oooI¹ŽŽNO…ŽŽŽ<¯¬¬¬ªªjÒ¤I¡©S§^»vM[[ÛÎÎN[[!¤®®^[[»gÏ>Ÿ/ßïÕ••1Œ”””ÈÈÈ^bR†±±1BˆB¡HZZZJæjjjꥨȃ †a—.]rvvÆ_º»»ÿý÷“&M’\‚ììì|8ú猾§B##£#FœßŸ2eJ]]Ýøñãñ—ºººAAAÛ·o×ÖÖöõõuss‹ˆˆ8xð ür}}}³²²ÒÒÒ>ûì3ùÅ577KxÏž= C²Y¹»»‡††vvvº¹¹±X,ülZ¦ð ¶P^øW…µtéÒ¦¦&ÿqÔÕÕùùùegg¿²°wøøð4àüˆA~éèèÌŸ?¿/…@¥@~|ýõ×})*ò#ƒüÄ ?1È@ ò#ƒüÄàùB…VTTFvD"m*•OÞÒ5ÕÔDŠˆ¬zÂårÉô'ÈŠK2B‹Qm­^Cƒîøñéëw‘Ci©Ÿ¯icÃÑÓë&%€^È %”< ^CIImppjccKLÌ’ùód…ÑÔÔqæÚµG,–sTÔBø×ðN@~}"‰÷í»¶ÿõ3l÷î]A§%;"tùòƒˆˆ³Úß}·ÂÙy Ùá€Aò#xµ?þh Nýý÷†èèE,–3áತ¨«ã†„œÊÉ©Z³†>WS®þùôðcÇ~۵늭­é~ÖÖt²#’…aXjjntô…#ŒöïgM˜`IvD`ð€üzÔØø"$ä‡Û·+""<™êêŠ{7ØŸþµ~}ZAÁŸ³""<54¨dGÈ€Ø?lܘN§Ý¿ŸÅ`ÿË•B‰Ä Ù±±W,âãY ØÕJò#ÅãulØpöÊ•¢  CCçÐh¯žGa”•= N­¨h ô¡šš¢\*Êò#xÉ­[!!§Äblß¾®®¶¯žAñ¢¤$öîÝ †U|¼ï¨Q&dG”äGð7>¿;*êBjj.‹åüÍ7 ôôhdGôV «×­KmllÙ´iŸß4²ÃJ ò#@¡â⚯¾Jmnn‹‰YâååHv8ý£«K¸gÏÕÇ9ÓnïÞåffúdG” äGU'ˆvïÎHLÌf2í÷ìY6lù7~÷¯{÷þX·.Ãiß±ãcoï)d‡” äG•VUõ<88µ¼¼1*j¡BÝøÝ¿ÚÚº¶n½˜ššëååøí·>††½ý 6U”XŒ>üëÞ½¿8:Žˆ÷µ²2&;¢wŽÍ~üõ×?ˆDâØØ¥³g';  ?ª¢†^HÈ99•žkÖ0©TŽñ»µ´ð·o¿œ’’ãã3eçN]]Øôò£ÊIOÏÿæ›s––FøÙÛ›“ ._~°qcºŽŽV\Ü k²ÃŠ ò£ árÛ##Óñ¿ÃÂæji©îhÍÍmg~ùå!‹å¼eË"mmM²#Šò£ª¸~½4,ì‡!C´âã}§N}ìp>B>4>ÞW)ž¡ òãà×ÑÑý÷ß›6-:T¹oüî_uuÜrs+™0°ùqËË{²n]ZkkçîÝKçÍ›Hv8Š!mË–‹VVFû÷³†“PªòÃ¥ D;vüäãshìXs6;’cO(ŠŸß´ë×Ãõõ‡xyí;t(K$“PМ~ÿ½~íÚÔšš¿vìð^²d*Ùá(±;~ü·íÛ/O˜`ï;zô0²#$ƒþã`#c‡eÍ›÷vVV$ǾSS£¬Z5ã—_B»»…îî±GÞ„ÞƒŠƒþã R_Ï[¿þT^Þ“o¾™ïïï:XŸ|ׄBqbböîÝÓ¦YÇÅ-·°0 ;"@ȃGJJÎöí—¬¬Œð³³3#;¥‡öüyË7ßÀi* òã`Àá´oØpöêÕ’õë=‚ƒ=à&•þ"!É»gÏrSS=²# ò£Ò»víaxø­XNN£ÈgÊÏÿ#88­­­3&f©§ç²Ãò£koïÚ¸1===ßÏoÚæÍ a´…wGz„´˜˜%CÈŽ ÈÊ*7·jýúS]]¸¸åLæX²ÃQ löãÐÐÓb±86v™»û8²ÃïäGå#ˆ¶n½”œüÛœ9ãwï^jl¬KvD*! X3*j¡ŽôÙ3ÈJæÑ£º¯¾Jmhx±{÷’ùód‡£¢~ú©(2ò¬®.mß¾ÎÎcȼ+p¸Ò‰Ä‡eyyí36Ö¹~= ’#‰¼¼ÙìÈqã,||mÚôcw·ìˆÀ;ýGåðôisppÚ£Gu[¶,Ä£tðÒÌÌôöïgM˜`Iv8 ŸAÿQ ¤¤äÌ™³·«K‘âç7 ’£â˜?Ÿqýzذaz}ôÝŽ? "²#ý ú ­±±%4ô‡7ÊÖ¯÷X·n¶º:Ï‘d„4[[Óøx–µ5ìˆ@ÿ€ü¨¸®^-‰ˆ8£§§½?kòä‘d‡^¡ºú¯õëOþ67(èC55èæ+=Èdzñ¢C_ŸàNã–~xø™Ÿ~*ú÷¿]ÿïÿ¼h4 ¼Éiø¿æŽe"ÿ™ŽŽnMMu8P °“HSXXíæ¶ç¯¿ÚdÊïÜ©tw½wï´´ÀmÛCrT"’Ò:;sæìMIÉ‘ïlÙr1>>“”ðÀë‚þ#9Z[;™Ì˜úzÞìÙ'N¬Â »»…Û¶]>~ü·?vÚ±ãc==mrƒoL2Bš‹‹M\Ür33}¼üÆ2_ßD =ûå´ip㤢ƒüHŽÏ??–•õ»P(¢PÐîÝKY¬i%%µÁÁ©-11pã÷ ñÏi­Û·ìã3…ËmwuÝÅãu „ôô´³³7À€@ ò# Nž¼™þÏ–§hiQƒ‚˜ ì‰GÄÇûŽiLr| ÿ´·wmÛvéäÉœ¥K§¾xÁ¿~½T(!„44¨NN#Ïžý’J…k\Š òã@+-­÷ôŒÄý½å54ÔtthAAÌ/¾ø¾-ƒ›ý822½ºš#Ùé!*U-<Ü38ØÄÀ@ïàÛ8 øüb1’þžâ/ø ’ã`5nÜp.·By©/"‰ccÎË{BVTà•à 9 ¢¢.TWÿ%É>eaXLÌÏEE5¤DÞµS|¾@þT ÃЪU'8œv2‚¯ùqàdf>JMÍ {üoåuëÒàµÁçÇ ØìßñËŽ2ÄbŒÇë?=ðQ¾ FGG“ƒJxöìŲe‡aO×{©TJSS+•ªöÁÖx‡êëy+Wz<(ŠÅXUU“‰‰.ƒa5¾€ßg‚H$öö>xÿ~µÌ™µ¦&U !D±µ5ýðCû™3íœÇhjª“'èw"‘øÁƒê7ÊØì²Â§b1¦¥¥ÙÕÕ-óµSWW»z5tÜ8 ’ÂÄ ?„Ý»3öïÏ‹1„•ª†a˜XŒ™›¸¹Ù{x8|ð5 C­ ºº„yyOnÞ,ÏÎ~üûïõ!uuª@ DQ©33ƒ¬¬==Ùa‚ÿy)?Ö×דÊ`õàAm@ÀøoÖêêTÃòƒF9;²±68F*344ÔÖ~óG}ø|>—ËíÇx”BSS[nîÓ»wŸææ>åñø Â04oÞ¸­[?";4U'Ýž_Êl6›œˆ¯övAdd¶–•Á00noo¬©9Øþœzܸqtú›èõüùóÒÒÒ~ŒG¹`VSÓZRÒT\ÜXVÆñ÷wtuAvP*Mº=Ë^êz˶dÔÖr³²œéô¡dò®ô×1uÖ¬YýRRDååφ“ˆê’iÏðSÀ»eiiHv@ihhP!9*¸ÿˆA~b€äG ùˆ)w~¬®®þüóÏe +++ßò¾kIµ)£FZ¹reSS“ô'ÛÛÛÃÃÇ:uêÔ;w …Bü- …bcc#óx’§§'…B©¬¬Ä?°dÉé¼Vä}ÿ°d‰ ¿@Ãëé] É,o¿‰ÐÀ¶gåÎ.\X´hÑ;­öÎ; µµµÉÉÉ---“'Oæñxø[­­­S¦L¹wï^LLÌýû÷7nܘššêáá!yÈúéÓ§EEE’j¹\îÍ›7¥”žž~ú4ŒÝ¢| áõ\šÁ† ¤?óäÉ‚?wT8˜”ìììÆÆFLy|ôÑG2…2ëõÆÕ"„***$åb±xÆŒ›7oÆ_†……¹ºº …BÉÚÚÚFuäÈ|Þ¹sçþç?ÿ‘¼{âÄ OOOI¡ÀÀ@##£†††7ˆ¼ï–Y‹þõöm¦±±1;;»ŸÂ Ððzz·÷Æ&™÷m¶Õ@¶ç×ë?^ºtiøðáøÓ²§N²µµmooG ‚ððpSSS:.ðŽtVV–••›ÍŽŠŠ²²²6lØÊ•+%‡Aù¹B—/_ž8q"F=zôÉ“'BB¡pöææfmmm‘Hkkk;tèP—»wïâàñxŸ}ö™‰‰‰¥¥eXXXgg'BˆB¡?~ÜÞÞ~ذaß~ûíÉ“'ß{ï=}}ýM›6ÉT+¿ú eÍš5W®\Á_¦¤¤lÞ¼™Jýßó‚:::ááá)))øË%K–œ9sûçD&==ÝÇÇGºÂ±cÇ`r£„ÈßÓjnF×®]³¶¶644ܵkúç4çâÅ‹vvvt:=88¸««‹°°÷ö0` á)iÃÃÉŸV;;;#„ÌÌÌzªJz?ÞºuK¦ÂkϽäNB+W®üôÓOŸ={fjjz÷î]¼0&&ÆÛÛ»ººº¸¸xòäÉ‘‘‘øñÁÓÓó×_ŽŽvpp(...))yÿý÷ÃÂÂzš«­­MKK+!!¡¡¡áرcêêêmmm±±±„³?~üäÉ“†ÅÅÅÑéôóçÏ×××_¹rÅÂÂ_/‹åææVUUU\\<~üøèèh¼5¬X±¢¥¥åèÑ£¡¥K—¶´´$&&"„𛛥«ÅˆŽT÷îÝ300À0 ÿ®655ÉlŸÛ·o›ššâó>~üØÌ̬°°Ã07dÈææf$u¯¨¨(//×ÖÖNNNÆ^>¨ÊßÓjÊoF™B^^^---çÎÃW_ÐìÙ³ËËËsss­­­£££ {o }l3½ëcÿžR4<„ЃZ¥ùn£Lÿ±÷ýØÖÖ&½¦Ùž_;?r¹\KKˉ'J/lìØ±’¾zff&ƒÁÀƒ+..Æ0ÌÎÎîüù󸻥¥¥’iù¹8ކ†Æž={¸\®X,nmm‰D=ÍîííÍáp0 ³µµ=qâ„$˜ÿþ÷¿¡îîn*•úðáC¼ðüùóÖÖÖøÆ-((À0¬»»[fo=’j±7j¦999&&&’y¿üòË7b–’’âáá!]§d">>^OO¯ººZÒhƒ'\MÂÍ(BˆÍfc†_Ÿª¨¨Þ;†>}ÚÚÚš°{•ËÐð”¢áÉ÷À._¾üÊüØû~”1íùM®?nݺ•J¥J’F{iÐ:}}}<¸îînüÝ’’ùzäçÂ0ìÖ­[>>>:::®®®?ÿüsO³·¶¶.X°ŸÖÖÖ~ðàä­ÂÂB„PMM BˆÏçã…ÅÅÅ4 {¹åÉOKW‹5Ó´´4'''|ÚÌÌ,33S&°Ã‡Ï™3G2/›Í¶¶¶‹Å‹-JLLĈš©H$š9s&~ CèB<ájö´¥!„ÊËË¥×ß;’ú‹ŠŠh4a!ö*yý>­È O>rŒ(-ÊäÇÞ÷£ŒlϯýûuMMÍÁƒÝÝÝCCC%…&&&’Âårsssñr „……ÅÓ§Oñ’ìØ±£§¹ø|¾X,>{ö,‡Ãñ÷÷Ÿ?>‡Ã!œýêÕ«sçÎÅ G%ýkÝ£GB¦¦¦T*õÉ“¿ÿ®ªªjøðW?ù/]­<¼~ôÑß#ô±X¬­[·J ÞÞÞ#]ÃôéÓ[[[oݺ•™™ÙÓ/žjjjÉÉÉ·oßNJJÂKƒ'\MÔóÆ—FxSÞ€BåååøISO…Šž26¼>ê}?ʸöÜKî”'‰ÜÝÝ·mÛÆápÌÌÌ.]º„—ûøøàw¼ÿþûk×®•>>DEEMœ8±¤¤¤¤¤ÄÅÅeõêÕ=ÍÅçói4ZzzzSSSRRFãóù„³ûùùÕÕÕáõÄÇÇÓéô .444dddŒ=_´¯¯¯››Û“'OJJJðŸÿP¯‡qéjñBÉml6{áÂ…–––<÷Å‹vvv3gÎÌÈÈ(//?þ¼ƒƒƒ‹‹Kgg§tå_|ñ…½½=“É”Y(zùH{øða|¯ã/åƒïi5å7#†aGŽ‘Ä)¿šøÞa2™yyy666›7o&,ì¥1ô±Í¼R_úÐð”¥á¡×é?¶¶¶öe?bäµç×ËpttÄ;½?þø£¹¹9~Ť¥¥åóÏ?744466hoo—^½ÎÎΰ°0 }}ý+Vp¹\¼\~. ÃNŸ>=fÌMMͱcÇ^¼x‘pöîîîyóæI¢ …±±±ÖÖÖ:::Ó¦MÃ>†q8œO>ùÄØØØÜÜ<$$ïi÷ÒLKKK¥«Å^¾˜2bÄ‹%³}ÚÚÚBCCÇ?dȇíÛ·KnûTŽ(wèÐ!™r™–$‹=<<$M>øžV“p3öþmÄ÷ÎÑ£GGŽibbòÕW_ñù|ÂÂ^n`ò#4]WW·§="“Éjϲã‡Ãø¸ª ²²Rþ ÂÂWzû6ƒãã‚7öîÚ³r??ïäGU¤§§Ø—Bß»kÏUNOHHèK!ŠïݵgÈ@ ò#ƒüÄ ?1È@L]æ5Ç“ ÔÀ€©¯¯';dÉæGh¦€ø2(Êë>*®?1È@ ò#ƒüÄþª–SÍV´IEND®B`‚XQilla-2.3.0/docs/dom3-api/PlatformUtils_8hpp_source.html0000644000151400015140000010176411653571065020220 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

PlatformUtils.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: PlatformUtils.hpp 808072 2009-08-26 16:01:20Z amassari $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_PLATFORMUTILS_HPP)
00023 #define XERCESC_INCLUDE_GUARD_PLATFORMUTILS_HPP
00024 
00025 #include <xercesc/util/XercesDefs.hpp>
00026 #include <xercesc/util/XMLException.hpp>
00027 #include <xercesc/util/PanicHandler.hpp>
00028 
00029 #include <xercesc/util/XMLFileMgr.hpp>
00030 #include <xercesc/util/XMLMutexMgr.hpp>
00031 
00032 XERCES_CPP_NAMESPACE_BEGIN
00033 
00034 class XMLMsgLoader;
00035 class XMLNetAccessor;
00036 class XMLTransService;
00037 class MemoryManager;
00038 class XMLMutex;
00039 
00040 //
00041 //  For internal use only
00042 //
00043 //  This class provides a simple abstract API via which lazily evaluated
00044 //  data can be cleaned up.
00045 //
00046 class XMLUTIL_EXPORT XMLDeleter
00047 {
00048 public :
00049     virtual ~XMLDeleter();
00050 
00051 protected :
00052     XMLDeleter();
00053 
00054 private :
00055     XMLDeleter(const XMLDeleter&);
00056     XMLDeleter& operator=(const XMLDeleter&);
00057 };
00058 
00059 
00068 class XMLUTIL_EXPORT XMLPlatformUtils
00069 {
00070 public :
00071 
00074 
00087     static XMLNetAccessor*      fgNetAccessor;
00088 
00099     static XMLTransService*     fgTransService;
00100 #ifdef OS390
00101     static XMLTransService*     fgTransService2;
00102 #endif
00103 
00108     static PanicHandler*        fgUserPanicHandler;
00109 
00114     static PanicHandler*        fgDefaultPanicHandler;
00115 
00121     static MemoryManager*       fgMemoryManager;
00122 
00123     static XMLFileMgr*          fgFileMgr;
00124     static XMLMutexMgr*         fgMutexMgr;
00125 
00132     static XMLMutex*            fgAtomicMutex;
00133 
00134     static bool                 fgXMLChBigEndian;
00135     static bool                 fgSSE2ok;
00137 
00138 
00141 
00173     static void Initialize(const char*          const locale = XMLUni::fgXercescDefaultLocale
00174                          , const char*          const nlsHome = 0
00175                          ,       PanicHandler*  const panicHandler = 0
00176                          ,       MemoryManager* const memoryManager = 0);
00177 
00227     static void Initialize(XMLSize_t initialDOMHeapAllocSize
00228                          , XMLSize_t maxDOMHeapAllocSize
00229                          , XMLSize_t maxDOMSubAllocationSize
00230                          , const char*          const locale = XMLUni::fgXercescDefaultLocale
00231                          , const char*          const nlsHome = 0
00232                          ,       PanicHandler*  const panicHandler = 0
00233                          ,       MemoryManager* const memoryManager = 0);
00234 
00241     static void Terminate();
00242 
00259     static void panic
00260     (
00261         const   PanicHandler::PanicReasons    reason
00262     );
00263 
00265 
00268 
00273     static XMLFileMgr* makeFileMgr(MemoryManager* const manager);
00274 
00288     static XMLFilePos curFilePos(FileHandle theFile
00289         , MemoryManager* const manager  = XMLPlatformUtils::fgMemoryManager);
00290 
00301     static void closeFile(FileHandle theFile
00302         , MemoryManager* const manager  = XMLPlatformUtils::fgMemoryManager);
00303 
00314     static XMLFilePos fileSize(FileHandle theFile
00315         , MemoryManager* const manager  = XMLPlatformUtils::fgMemoryManager);
00316 
00327     static FileHandle openFile(const char* const fileName
00328         , MemoryManager* const manager  = XMLPlatformUtils::fgMemoryManager);
00329 
00340     static FileHandle openFile(const XMLCh* const fileName
00341         , MemoryManager* const manager  = XMLPlatformUtils::fgMemoryManager);
00342 
00353     static FileHandle openFileToWrite(const char* const fileName
00354         , MemoryManager* const manager  = XMLPlatformUtils::fgMemoryManager);
00355 
00366     static FileHandle openFileToWrite(const XMLCh* const fileName
00367         , MemoryManager* const manager  = XMLPlatformUtils::fgMemoryManager);
00368 
00379     static FileHandle openStdInHandle(MemoryManager* const manager  = XMLPlatformUtils::fgMemoryManager);
00380 
00397     static XMLSize_t readFileBuffer
00398     (
00399                 FileHandle      theFile
00400         , const XMLSize_t       toRead
00401         ,       XMLByte* const  toFill
00402         , MemoryManager* const manager  = XMLPlatformUtils::fgMemoryManager
00403     );
00404 
00419     static void writeBufferToFile
00420     (
00421           FileHandle     const  theFile
00422         , XMLSize_t             toWrite
00423         , const XMLByte* const  toFlush
00424         , MemoryManager* const manager  = XMLPlatformUtils::fgMemoryManager
00425     );
00426 
00436     static void resetFile(FileHandle theFile
00437         , MemoryManager* const manager  = XMLPlatformUtils::fgMemoryManager);
00438 
00440 
00441 
00465     static XMLCh* getFullPath
00466     (
00467         const XMLCh* const srcPath
00468         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
00469     );
00470 
00484     static XMLCh* getCurrentDirectory
00485     (
00486         MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
00487     );
00488 
00498     static inline bool isAnySlash(XMLCh c);
00499 
00509     static void   removeDotSlash(XMLCh* const srcPath
00510         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
00511 
00522     static void   removeDotDotSlash(XMLCh* const srcPath
00523         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
00524 
00538     static bool isRelative(const XMLCh* const toCheck
00539         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
00540         );
00541 
00561     static XMLCh* weavePaths
00562     (
00563         const   XMLCh* const    basePath
00564         , const XMLCh* const    relativePath
00565         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
00566     );
00568 
00571 
00581     static unsigned long getCurrentMillis();
00583 
00586 
00594     static XMLMutexMgr* makeMutexMgr(MemoryManager* const manager);
00595 
00604     static void closeMutex(void* const mtxHandle, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
00605 
00613     static void lockMutex(void* const mtxHandle);
00614 
00624     static void* makeMutex(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
00625 
00638     static void unlockMutex(void* const mtxHandle);
00639 
00641 
00642 
00645 
00653     static XMLMsgLoader* loadMsgSet(const XMLCh* const msgDomain);
00654 
00656 
00657 
00671     static void recognizeNEL(bool state
00672         , MemoryManager* const manager  = XMLPlatformUtils::fgMemoryManager);
00673 
00677     static bool isNELRecognized();
00679 
00691     static void strictIANAEncoding(const bool state);
00692 
00697     static bool isStrictIANAEncoding();
00699 
00707     static inline XMLSize_t alignPointerForNewBlockAllocation(XMLSize_t ptrSize);
00708 
00709 private :
00710     // -----------------------------------------------------------------------
00711     //  Unimplemented constructors and operators
00712     // -----------------------------------------------------------------------
00713     XMLPlatformUtils();
00714 
00717 
00723     static XMLMsgLoader* loadAMsgSet(const XMLCh* const msgDomain);
00724 
00734     static XMLNetAccessor* makeNetAccessor();
00735 
00746     static XMLTransService* makeTransService();
00747 
00755     static int  searchSlashDotDotSlash(XMLCh* const srcPath);
00756 
00758 
00761 
00768     static bool fgMemMgrAdopted;
00769 
00771 };
00772 
00773 
00774 MakeXMLException(XMLPlatformUtilsException, XMLUTIL_EXPORT)
00775 
00776 
00777 // ---------------------------------------------------------------------------
00778 //  XMLPlatformUtils: alignPointerForNewBlockAllocation
00779 // ---------------------------------------------------------------------------
00780 //  Calculate alignment required by platform for a new
00781 //  block allocation. We use this in our custom allocators
00782 //  to ensure that returned blocks are properly aligned.
00783 //  Note that, although this will take a pointer and return the position
00784 //  at which it should be placed for correct alignment, in our code
00785 //  we normally use XMLSize_t parameters to discover what the alignment
00786 //  of header blocks should be.  Thus, if this is to be
00787 //  used for the former purpose, to make compilers happy
00788 //  some casting will be necessary - neilg.
00789 //
00790 //  Note: XML_PLATFORM_NEW_BLOCK_ALIGNMENT may be specified on a
00791 //        per-architecture basis to dictate the alignment requirements
00792 //        of the architecture. In the absense of this specification,
00793 //        this routine guesses at the correct alignment value.
00794 //
00795 //        A XML_PLATFORM_NEW_BLOCK_ALIGNMENT value of zero is illegal.
00796 //        If a platform requires absolutely no alignment, a value
00797 //        of 1 should be specified ("align pointers on 1 byte boundaries").
00798 //
00799 inline XMLSize_t
00800 XMLPlatformUtils::alignPointerForNewBlockAllocation(XMLSize_t ptrSize)
00801 {
00802     //    Macro XML_PLATFORM_NEW_BLOCK_ALIGNMENT may be defined
00803     //    as needed to dictate alignment requirements on a
00804     //    per-architecture basis. In the absense of that we
00805     //    take an educated guess.
00806 #ifdef XML_PLATFORM_NEW_BLOCK_ALIGNMENT
00807     static const XMLSize_t alignment = XML_PLATFORM_NEW_BLOCK_ALIGNMENT;
00808 #else
00809     static const XMLSize_t alignment = (sizeof(void*) >= sizeof(double)) ? sizeof(void*) : sizeof(double);
00810 #endif
00811 
00812     //    Calculate current alignment of pointer
00813     XMLSize_t current = ptrSize % alignment;
00814 
00815     //    Adjust pointer alignment as needed
00816     return (current == 0)
00817          ? ptrSize
00818          : (ptrSize + alignment - current);
00819 }
00820 
00821 
00822 
00823 // ---------------------------------------------------------------------------
00824 //  XMLDeleter: Public Destructor
00825 // ---------------------------------------------------------------------------
00826 inline XMLDeleter::~XMLDeleter()
00827 {
00828 }
00829 
00830 // ---------------------------------------------------------------------------
00831 //  XMLDeleter: Hidden constructors and operators
00832 // ---------------------------------------------------------------------------
00833 inline XMLDeleter::XMLDeleter()
00834 {
00835 }
00836 
00837 XERCES_CPP_NAMESPACE_END
00838 
00839 #endif
XQilla-2.3.0/docs/dom3-api/classAutoDeleteArray.html0000644000151400015140000002461711653571065017155 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

AutoDeleteArray< TYPE > Class Template Reference

#include <XPath2MemoryManager.hpp>

List of all members.

Public Member Functions

 AutoDeleteArray (TYPE *p)
 ~AutoDeleteArray ()
TYPE & operator* () const
TYPE * operator-> () const
 operator TYPE * () const
TYPE * get () const
TYPE * adopt ()
TYPE * swap (TYPE *p)
void set (TYPE *p)

template<class TYPE>
class AutoDeleteArray< TYPE >


Constructor & Destructor Documentation

template<class TYPE>
AutoDeleteArray< TYPE >::AutoDeleteArray ( TYPE *  p) [inline]
template<class TYPE>
AutoDeleteArray< TYPE >::~AutoDeleteArray ( ) [inline]

Member Function Documentation

template<class TYPE>
TYPE* AutoDeleteArray< TYPE >::adopt ( ) [inline]
template<class TYPE>
TYPE* AutoDeleteArray< TYPE >::get ( ) const [inline]
template<class TYPE>
AutoDeleteArray< TYPE >::operator TYPE * ( ) const [inline]
template<class TYPE>
TYPE& AutoDeleteArray< TYPE >::operator* ( ) const [inline]
template<class TYPE>
TYPE* AutoDeleteArray< TYPE >::operator-> ( ) const [inline]
template<class TYPE>
void AutoDeleteArray< TYPE >::set ( TYPE *  p) [inline]
template<class TYPE>
TYPE* AutoDeleteArray< TYPE >::swap ( TYPE *  p) [inline]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMTypeInfo.html0000644000151400015140000005303111653571065020225 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMTypeInfo Class Reference

The DOMTypeInfo interface represent a type used by DOMElement or DOMAttr nodes, specified in the schemas associated with the document. More...

#include <DOMTypeInfo.hpp>

List of all members.

Public Types

Public Contants
enum  DerivationMethods { DERIVATION_RESTRICTION = 0x001, DERIVATION_EXTENSION = 0x002, DERIVATION_UNION = 0x004, DERIVATION_LIST = 0x008 }
 

These are the available values for the derivationMethod parameter used by the method DOMTypeInfo::isDerivedFrom().

More...

Public Member Functions

Destructor
virtual ~DOMTypeInfo ()
 Destructor.
virtual const XMLCh * getTypeName () const =0
 Returns The name of a type declared for the associated DOMElement or DOMAttr, or null if unknown.
virtual const XMLCh * getTypeNamespace () const =0
 The namespace of the type declared for the associated DOMElement or DOMAttr or null if the DOMElement does not have declaration or if no namespace information is available.
virtual bool isDerivedFrom (const XMLCh *typeNamespaceArg, const XMLCh *typeNameArg, DerivationMethods derivationMethod) const =0
 This method returns if there is a derivation between the reference type definition, i.e.

Protected Member Functions

Hidden constructors
 DOMTypeInfo ()

Detailed Description

The DOMTypeInfo interface represent a type used by DOMElement or DOMAttr nodes, specified in the schemas associated with the document.

The type is a pair of a namespace URI and name properties, and depends on the document's schema.


Member Enumeration Documentation

These are the available values for the derivationMethod parameter used by the method DOMTypeInfo::isDerivedFrom().

It is a set of possible types of derivation, and the values represent bit positions. If a bit in the derivationMethod parameter is set to 1, the corresponding type of derivation will be taken into account when evaluating the derivation between the reference type definition and the other type definition. When using the isDerivedFrom method, combining all of them in the derivationMethod parameter is equivalent to invoking the method for each of them separately and combining the results with the OR boolean function. This specification only defines the type of derivation for XML Schema.

In addition to the types of derivation listed below, please note that:

  • any type derives from xsd:anyType.
  • any simple type derives from xsd:anySimpleType by restriction.
  • any complex type does not derive from xsd:anySimpleType by restriction.

DERIVATION_EXTENSION: If the document's schema is an XML Schema [XML Schema Part 1], this constant represents the derivation by extension. The reference type definition is derived by extension from the other type definition if the other type definition can be reached recursively following the {base type definition} property from the reference type definition, and at least one of the derivation methods involved is an extension.

DERIVATION_LIST: If the document's schema is an XML Schema [XML Schema Part 1], this constant represents the list. The reference type definition is derived by list from the other type definition if there exists two type definitions T1 and T2 such as the reference type definition is derived from T1 by DERIVATION_RESTRICTION or DERIVATION_EXTENSION, T2 is derived from the other type definition by DERIVATION_RESTRICTION, T1 has {variety} list, and T2 is the {item type definition}. Note that T1 could be the same as the reference type definition, and T2 could be the same as the other type definition.

DERIVATION_RESTRICTION: If the document's schema is an XML Schema [XML Schema Part 1], this constant represents the derivation by restriction if complex types are involved, or a restriction if simple types are involved. The reference type definition is derived by restriction from the other type definition if the other type definition is the same as the reference type definition, or if the other type definition can be reached recursively following the {base type definition} property from the reference type definition, and all the derivation methods involved are restriction.

DERIVATION_UNION: If the document's schema is an XML Schema [XML Schema Part 1], this constant represents the union if simple types are involved. The reference type definition is derived by union from the other type definition if there exists two type definitions T1 and T2 such as the reference type definition is derived from T1 by DERIVATION_RESTRICTION or DERIVATION_EXTENSION, T2 is derived from the other type definition by DERIVATION_RESTRICTION, T1 has {variety} union, and one of the {member type definitions} is T2. Note that T1 could be the same as the reference type definition, and T2 could be the same as the other type definition.

Since:
DOM Level 3
Enumerator:
DERIVATION_RESTRICTION 
DERIVATION_EXTENSION 
DERIVATION_UNION 
DERIVATION_LIST 

Constructor & Destructor Documentation

xercesc::DOMTypeInfo::DOMTypeInfo ( ) [inline, protected]
virtual xercesc::DOMTypeInfo::~DOMTypeInfo ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual const XMLCh* xercesc::DOMTypeInfo::getTypeName ( ) const [pure virtual]

Returns The name of a type declared for the associated DOMElement or DOMAttr, or null if unknown.

Returns:
The name of a type declared for the associated DOMElement or DOMAttribute, or null if unknown.
Since:
DOM level 3
virtual const XMLCh* xercesc::DOMTypeInfo::getTypeNamespace ( ) const [pure virtual]

The namespace of the type declared for the associated DOMElement or DOMAttr or null if the DOMElement does not have declaration or if no namespace information is available.

Returns:
The namespace of the type declared for the associated DOMElement or DOMAttr or null if the DOMElement does not have declaration or if no namespace information is available.
Since:
DOM level 3
virtual bool xercesc::DOMTypeInfo::isDerivedFrom ( const XMLCh *  typeNamespaceArg,
const XMLCh *  typeNameArg,
DerivationMethods  derivationMethod 
) const [pure virtual]

This method returns if there is a derivation between the reference type definition, i.e.

the DOMTypeInfo on which the method is being called, and the other type definition, i.e. the one passed as parameters.

Parameters:
typeNamespaceArgThe namespace of the other type definition.
typeNameArgThe name of the other type definition.
derivationMethodThe type of derivation and conditions applied between two types, as described in the list of constants provided in this interface.
Returns:
If the document's schema is a DTD or no schema is associated with the document, this method will always return false. If the document's schema is an XML Schema, the method will true if the reference type definition is derived from the other type definition according to the derivation parameter. If the value of the parameter is 0 (no bit is set to 1 for the derivationMethod parameter), the method will return true if the other type definition can be reached by recursing any combination of {base type definition}, {item type definition}, or {member type definitions} from the reference type definition.
Since:
DOM level 3

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/DOMImplementationLS_8hpp.html0000644000151400015140000000567411653571066017623 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMImplementationLS.hpp File Reference

#include <xercesc/util/PlatformUtils.hpp>
Include dependency graph for DOMImplementationLS.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMImplementationLS

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMImplementation__inherit__graph.md50000644000151400015140000000004011653571065024367 000000000000003f7e7f16bc99cc7d251bc94aebd12346XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMNamedNodeMap.html0000644000151400015140000006547011653571065020772 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMNamedNodeMap Class Reference

DOMNamedNodeMaps are used to represent collections of nodes that can be accessed by name. More...

#include <DOMNamedNodeMap.hpp>

List of all members.

Public Member Functions

Destructor
virtual ~DOMNamedNodeMap ()
 Destructor.
Functions introduced in DOM Level 1
virtual DOMNodesetNamedItem (DOMNode *arg)=0
 Adds a node using its nodeName attribute.
virtual DOMNodeitem (XMLSize_t index) const =0
 Returns the indexth item in the map.
virtual DOMNodegetNamedItem (const XMLCh *name) const =0
 Retrieves a node specified by name.
virtual XMLSize_t getLength () const =0
 The number of nodes in the map.
virtual DOMNoderemoveNamedItem (const XMLCh *name)=0
 Removes a node specified by name.
Functions introduced in DOM Level 2
virtual DOMNodegetNamedItemNS (const XMLCh *namespaceURI, const XMLCh *localName) const =0
 Retrieves a node specified by local name and namespace URI.
virtual DOMNodesetNamedItemNS (DOMNode *arg)=0
 Adds a node using its namespaceURI and localName.
virtual DOMNoderemoveNamedItemNS (const XMLCh *namespaceURI, const XMLCh *localName)=0
 Removes a node specified by local name and namespace URI.

Protected Member Functions

Hidden constructors
 DOMNamedNodeMap ()

Detailed Description

DOMNamedNodeMaps are used to represent collections of nodes that can be accessed by name.

Note that DOMNamedNodeMap does not inherit from DOMNodeList; DOMNamedNodeMaps are not maintained in any particular order. Nodes contained in a DOMNamedNodeMap may also be accessed by an ordinal index, but this is simply to allow convenient enumeration of the contents, and does not imply that the DOM specifies an order to these Nodes.

Since:
DOM Level 1

Constructor & Destructor Documentation

xercesc::DOMNamedNodeMap::DOMNamedNodeMap ( ) [inline, protected]
virtual xercesc::DOMNamedNodeMap::~DOMNamedNodeMap ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual XMLSize_t xercesc::DOMNamedNodeMap::getLength ( ) const [pure virtual]

The number of nodes in the map.

The range of valid child node indices is 0 to length-1 inclusive.

Since:
DOM Level 1
virtual DOMNode* xercesc::DOMNamedNodeMap::getNamedItem ( const XMLCh *  name) const [pure virtual]

Retrieves a node specified by name.

Parameters:
nameThe nodeName of a node to retrieve.
Returns:
A DOMNode (of any type) with the specified nodeName, or null if it does not identify any node in the map.
Since:
DOM Level 1
virtual DOMNode* xercesc::DOMNamedNodeMap::getNamedItemNS ( const XMLCh *  namespaceURI,
const XMLCh *  localName 
) const [pure virtual]

Retrieves a node specified by local name and namespace URI.

Parameters:
namespaceURIThe namespace URI of the node to retrieve.
localNameThe local name of the node to retrieve.
Returns:
A DOMNode (of any type) with the specified local name and namespace URI, or null if they do not identify any node in the map.
Since:
DOM Level 2
virtual DOMNode* xercesc::DOMNamedNodeMap::item ( XMLSize_t  index) const [pure virtual]

Returns the indexth item in the map.

If index is greater than or equal to the number of nodes in the map, this returns null.

Parameters:
indexIndex into the map.
Returns:
The node at the indexth position in the DOMNamedNodeMap, or null if that is not a valid index.
Since:
DOM Level 1
virtual DOMNode* xercesc::DOMNamedNodeMap::removeNamedItem ( const XMLCh *  name) [pure virtual]

Removes a node specified by name.

If the removed node is an DOMAttr with a default value it is immediately replaced.

Parameters:
nameThe nodeName of a node to remove.
Returns:
The node removed from the map if a node with such a name exists.
Exceptions:
DOMExceptionNOT_FOUND_ERR: Raised if there is no node named name in the map.
NO_MODIFICATION_ALLOWED_ERR: Raised if this DOMNamedNodeMap is readonly.
Since:
DOM Level 1
virtual DOMNode* xercesc::DOMNamedNodeMap::removeNamedItemNS ( const XMLCh *  namespaceURI,
const XMLCh *  localName 
) [pure virtual]

Removes a node specified by local name and namespace URI.

Parameters:
namespaceURIThe namespace URI of the node to remove.
localNameThe local name of the node to remove. When this DOMNamedNodeMap contains the attributes attached to an element, as returned by the attributes attribute of the DOMNode interface, if the removed attribute is known to have a default value, an attribute immediately appears containing the default value as well as the corresponding namespace URI, local name, and prefix.
Returns:
The node removed from the map if a node with such a local name and namespace URI exists.
Exceptions:
DOMExceptionNOT_FOUND_ERR: Raised if there is no node named name in the map.
NO_MODIFICATION_ALLOWED_ERR: Raised if this DOMNamedNodeMap is readonly.
Since:
DOM Level 2
virtual DOMNode* xercesc::DOMNamedNodeMap::setNamedItem ( DOMNode arg) [pure virtual]

Adds a node using its nodeName attribute.


As the nodeName attribute is used to derive the name which the node must be stored under, multiple nodes of certain types (those that have a "special" string value) cannot be stored as the names would clash. This is seen as preferable to allowing nodes to be aliased.

Parameters:
argA node to store in a named node map. The node will later be accessible using the value of the nodeName attribute of the node. If a node with that name is already present in the map, it is replaced by the new one.
Returns:
If the new DOMNode replaces an existing node the replaced DOMNode is returned, otherwise null is returned.
Exceptions:
DOMExceptionWRONG_DOCUMENT_ERR: Raised if arg was created from a different document than the one that created the DOMNamedNodeMap.
NO_MODIFICATION_ALLOWED_ERR: Raised if this DOMNamedNodeMap is readonly.
INUSE_ATTRIBUTE_ERR: Raised if arg is an DOMAttr that is already an attribute of another DOMElement object. The DOM user must explicitly clone DOMAttr nodes to re-use them in other elements.
Since:
DOM Level 1
virtual DOMNode* xercesc::DOMNamedNodeMap::setNamedItemNS ( DOMNode arg) [pure virtual]

Adds a node using its namespaceURI and localName.

Parameters:
argA node to store in a named node map. The node will later be accessible using the value of the namespaceURI and localName attribute of the node. If a node with those namespace URI and local name is already present in the map, it is replaced by the new one.
Returns:
If the new DOMNode replaces an existing node the replaced DOMNode is returned, otherwise null is returned.
Exceptions:
DOMExceptionWRONG_DOCUMENT_ERR: Raised if arg was created from a different document than the one that created the DOMNamedNodeMap.
NO_MODIFICATION_ALLOWED_ERR: Raised if this DOMNamedNodeMap is readonly.
INUSE_ATTRIBUTE_ERR: Raised if arg is an DOMAttr that is already an attribute of another DOMElement object. The DOM user must explicitly clone DOMAttr nodes to re-use them in other elements.
Since:
DOM Level 2

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMCDATASection__inherit__graph.map0000644000151400015140000000121311653571066023637 00000000000000 XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMElement-members.html0000644000151400015140000006507011653571065021517 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMElement Member List

This is the complete list of members for xercesc::DOMElement, including all inherited members.
appendChild(DOMNode *newChild)=0xercesc::DOMNode [pure virtual]
ATTRIBUTE_NODE enum valuexercesc::DOMNode
CDATA_SECTION_NODE enum valuexercesc::DOMNode
cloneNode(bool deep) const =0xercesc::DOMNode [pure virtual]
COMMENT_NODE enum valuexercesc::DOMNode
compareDocumentPosition(const DOMNode *other) const =0xercesc::DOMNode [pure virtual]
DOCUMENT_FRAGMENT_NODE enum valuexercesc::DOMNode
DOCUMENT_NODE enum valuexercesc::DOMNode
DOCUMENT_POSITION_CONTAINED_BY enum valuexercesc::DOMNode
DOCUMENT_POSITION_CONTAINS enum valuexercesc::DOMNode
DOCUMENT_POSITION_DISCONNECTED enum valuexercesc::DOMNode
DOCUMENT_POSITION_FOLLOWING enum valuexercesc::DOMNode
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC enum valuexercesc::DOMNode
DOCUMENT_POSITION_PRECEDING enum valuexercesc::DOMNode
DOCUMENT_TYPE_NODE enum valuexercesc::DOMNode
DocumentPosition enum namexercesc::DOMNode
DOMElement()xercesc::DOMElement [inline, protected]
DOMElement(const DOMElement &other)xercesc::DOMElement [inline, protected]
DOMNode()xercesc::DOMNode [inline, protected]
DOMNode(const DOMNode &)xercesc::DOMNode [inline, protected]
ELEMENT_NODE enum valuexercesc::DOMNode
ENTITY_NODE enum valuexercesc::DOMNode
ENTITY_REFERENCE_NODE enum valuexercesc::DOMNode
getAttribute(const XMLCh *name) const =0xercesc::DOMElement [pure virtual]
getAttributeNode(const XMLCh *name) const =0xercesc::DOMElement [pure virtual]
getAttributeNodeNS(const XMLCh *namespaceURI, const XMLCh *localName) const =0xercesc::DOMElement [pure virtual]
getAttributeNS(const XMLCh *namespaceURI, const XMLCh *localName) const =0xercesc::DOMElement [pure virtual]
getAttributes() const =0xercesc::DOMNode [pure virtual]
getBaseURI() const =0xercesc::DOMNode [pure virtual]
getChildElementCount() const =0xercesc::DOMElement [pure virtual]
getChildNodes() const =0xercesc::DOMNode [pure virtual]
getElementsByTagName(const XMLCh *name) const =0xercesc::DOMElement [pure virtual]
getElementsByTagNameNS(const XMLCh *namespaceURI, const XMLCh *localName) const =0xercesc::DOMElement [pure virtual]
getFeature(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNode [pure virtual]
getFirstChild() const =0xercesc::DOMNode [pure virtual]
getFirstElementChild() const =0xercesc::DOMElement [pure virtual]
getLastChild() const =0xercesc::DOMNode [pure virtual]
getLastElementChild() const =0xercesc::DOMElement [pure virtual]
getLocalName() const =0xercesc::DOMNode [pure virtual]
getNamespaceURI() const =0xercesc::DOMNode [pure virtual]
getNextElementSibling() const =0xercesc::DOMElement [pure virtual]
getNextSibling() const =0xercesc::DOMNode [pure virtual]
getNodeName() const =0xercesc::DOMNode [pure virtual]
getNodeType() const =0xercesc::DOMNode [pure virtual]
getNodeValue() const =0xercesc::DOMNode [pure virtual]
getOwnerDocument() const =0xercesc::DOMNode [pure virtual]
getParentNode() const =0xercesc::DOMNode [pure virtual]
getPrefix() const =0xercesc::DOMNode [pure virtual]
getPreviousElementSibling() const =0xercesc::DOMElement [pure virtual]
getPreviousSibling() const =0xercesc::DOMNode [pure virtual]
getSchemaTypeInfo() const =0xercesc::DOMElement [pure virtual]
getTagName() const =0xercesc::DOMElement [pure virtual]
getTextContent() const =0xercesc::DOMNode [pure virtual]
getUserData(const XMLCh *key) const =0xercesc::DOMNode [pure virtual]
hasAttribute(const XMLCh *name) const =0xercesc::DOMElement [pure virtual]
hasAttributeNS(const XMLCh *namespaceURI, const XMLCh *localName) const =0xercesc::DOMElement [pure virtual]
hasAttributes() const =0xercesc::DOMNode [pure virtual]
hasChildNodes() const =0xercesc::DOMNode [pure virtual]
insertBefore(DOMNode *newChild, DOMNode *refChild)=0xercesc::DOMNode [pure virtual]
isDefaultNamespace(const XMLCh *namespaceURI) const =0xercesc::DOMNode [pure virtual]
isEqualNode(const DOMNode *arg) const =0xercesc::DOMNode [pure virtual]
isSameNode(const DOMNode *other) const =0xercesc::DOMNode [pure virtual]
isSupported(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNode [pure virtual]
lookupNamespaceURI(const XMLCh *prefix) const =0xercesc::DOMNode [pure virtual]
lookupPrefix(const XMLCh *namespaceURI) const =0xercesc::DOMNode [pure virtual]
NodeType enum namexercesc::DOMNode
normalize()=0xercesc::DOMNode [pure virtual]
NOTATION_NODE enum valuexercesc::DOMNode
PROCESSING_INSTRUCTION_NODE enum valuexercesc::DOMNode
release()=0xercesc::DOMNode [pure virtual]
removeAttribute(const XMLCh *name)=0xercesc::DOMElement [pure virtual]
removeAttributeNode(DOMAttr *oldAttr)=0xercesc::DOMElement [pure virtual]
removeAttributeNS(const XMLCh *namespaceURI, const XMLCh *localName)=0xercesc::DOMElement [pure virtual]
removeChild(DOMNode *oldChild)=0xercesc::DOMNode [pure virtual]
replaceChild(DOMNode *newChild, DOMNode *oldChild)=0xercesc::DOMNode [pure virtual]
setAttribute(const XMLCh *name, const XMLCh *value)=0xercesc::DOMElement [pure virtual]
setAttributeNode(DOMAttr *newAttr)=0xercesc::DOMElement [pure virtual]
setAttributeNodeNS(DOMAttr *newAttr)=0xercesc::DOMElement [pure virtual]
setAttributeNS(const XMLCh *namespaceURI, const XMLCh *qualifiedName, const XMLCh *value)=0xercesc::DOMElement [pure virtual]
setIdAttribute(const XMLCh *name, bool isId)=0xercesc::DOMElement [pure virtual]
setIdAttributeNode(const DOMAttr *idAttr, bool isId)=0xercesc::DOMElement [pure virtual]
setIdAttributeNS(const XMLCh *namespaceURI, const XMLCh *localName, bool isId)=0xercesc::DOMElement [pure virtual]
setNodeValue(const XMLCh *nodeValue)=0xercesc::DOMNode [pure virtual]
setPrefix(const XMLCh *prefix)=0xercesc::DOMNode [pure virtual]
setTextContent(const XMLCh *textContent)=0xercesc::DOMNode [pure virtual]
setUserData(const XMLCh *key, void *data, DOMUserDataHandler *handler)=0xercesc::DOMNode [pure virtual]
TEXT_NODE enum valuexercesc::DOMNode
~DOMElement()xercesc::DOMElement [inline, virtual]
~DOMNode()xercesc::DOMNode [inline, virtual]
XQilla-2.3.0/docs/dom3-api/DOMLSSerializer_8hpp__incl.md50000644000151400015140000000004011653571065017611 0000000000000081321f32c0246c4e4773ddac4c52728dXQilla-2.3.0/docs/dom3-api/DOMProcessingInstruction_8hpp_source.html0000644000151400015140000002466611653571065022336 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMProcessingInstruction.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  * 
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  * 
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMProcessingInstruction.hpp 527149 2007-04-10 14:56:39Z amassari $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMPROCESSINGINSTRUCTION_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMPROCESSINGINSTRUCTION_HPP
00024 
00025 #include <xercesc/util/XercesDefs.hpp>
00026 #include <xercesc/dom/DOMNode.hpp>
00027 
00028 XERCES_CPP_NAMESPACE_BEGIN
00029 
00030 
00038 class  CDOM_EXPORT DOMProcessingInstruction: public DOMNode {
00039 protected:
00040     // -----------------------------------------------------------------------
00041     //  Hidden constructors
00042     // -----------------------------------------------------------------------
00045     DOMProcessingInstruction() {}
00046     DOMProcessingInstruction(const DOMProcessingInstruction &other) : DOMNode(other) {}
00048 
00049 private:
00050     // -----------------------------------------------------------------------
00051     // Unimplemented constructors and operators
00052     // -----------------------------------------------------------------------
00055     DOMProcessingInstruction & operator = (const DOMProcessingInstruction &);
00057 
00058 public:
00059     // -----------------------------------------------------------------------
00060     //  All constructors are hidden, just the destructor is available
00061     // -----------------------------------------------------------------------
00068     virtual ~DOMProcessingInstruction() {};
00070 
00071     // -----------------------------------------------------------------------
00072     //  Virtual DOMProcessingInstruction interface
00073     // -----------------------------------------------------------------------
00076     // -----------------------------------------------------------------------
00077     //  Getter methods
00078     // -----------------------------------------------------------------------
00087     virtual const XMLCh *        getTarget() const = 0;
00088 
00099     virtual const XMLCh *        getData() const = 0;
00100 
00101     // -----------------------------------------------------------------------
00102     //  Setter methods
00103     // -----------------------------------------------------------------------
00113     virtual void             setData(const XMLCh * data) = 0;
00115 
00116 };
00117 
00118 XERCES_CPP_NAMESPACE_END
00119 
00120 #endif
00121 
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1StDOMNode-members.html0000644000151400015140000001213011653571065021307 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::StDOMNode< T > Member List

This is the complete list of members for xercesc::StDOMNode< T >, including all inherited members.
ClearNode()xercesc::StDOMNode< T > [inline]
operator T *() const xercesc::StDOMNode< T > [inline]
operator!=(T *node) const xercesc::StDOMNode< T > [inline]
operator*()xercesc::StDOMNode< T > [inline]
operator*() const xercesc::StDOMNode< T > [inline]
operator->() const xercesc::StDOMNode< T > [inline]
operator=(T *node)xercesc::StDOMNode< T > [inline]
operator==(T *node) const xercesc::StDOMNode< T > [inline]
StDOMNode(T *node=(T *) 0)xercesc::StDOMNode< T > [inline]
StDOMNode(const StDOMNode &stNode)xercesc::StDOMNode< T > [inline]
~StDOMNode()xercesc::StDOMNode< T > [inline]
XQilla-2.3.0/docs/dom3-api/XPath2Result_8hpp__dep__incl.md50000644000151400015140000000004011653571065020175 00000000000000339ef677b054d76a1e918157274139b4XQilla-2.3.0/docs/dom3-api/DOMRangeException_8hpp__incl.map0000644000151400015140000000003511653571065020250 00000000000000 XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMDocumentType-members.html0000644000151400015140000005132611653571065022545 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMDocumentType Member List

This is the complete list of members for xercesc::DOMDocumentType, including all inherited members.
appendChild(DOMNode *newChild)=0xercesc::DOMNode [pure virtual]
ATTRIBUTE_NODE enum valuexercesc::DOMNode
CDATA_SECTION_NODE enum valuexercesc::DOMNode
cloneNode(bool deep) const =0xercesc::DOMNode [pure virtual]
COMMENT_NODE enum valuexercesc::DOMNode
compareDocumentPosition(const DOMNode *other) const =0xercesc::DOMNode [pure virtual]
DOCUMENT_FRAGMENT_NODE enum valuexercesc::DOMNode
DOCUMENT_NODE enum valuexercesc::DOMNode
DOCUMENT_POSITION_CONTAINED_BY enum valuexercesc::DOMNode
DOCUMENT_POSITION_CONTAINS enum valuexercesc::DOMNode
DOCUMENT_POSITION_DISCONNECTED enum valuexercesc::DOMNode
DOCUMENT_POSITION_FOLLOWING enum valuexercesc::DOMNode
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC enum valuexercesc::DOMNode
DOCUMENT_POSITION_PRECEDING enum valuexercesc::DOMNode
DOCUMENT_TYPE_NODE enum valuexercesc::DOMNode
DocumentPosition enum namexercesc::DOMNode
DOMDocumentType()xercesc::DOMDocumentType [inline, protected]
DOMNode()xercesc::DOMNode [inline, protected]
DOMNode(const DOMNode &)xercesc::DOMNode [inline, protected]
ELEMENT_NODE enum valuexercesc::DOMNode
ENTITY_NODE enum valuexercesc::DOMNode
ENTITY_REFERENCE_NODE enum valuexercesc::DOMNode
getAttributes() const =0xercesc::DOMNode [pure virtual]
getBaseURI() const =0xercesc::DOMNode [pure virtual]
getChildNodes() const =0xercesc::DOMNode [pure virtual]
getEntities() const =0xercesc::DOMDocumentType [pure virtual]
getFeature(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNode [pure virtual]
getFirstChild() const =0xercesc::DOMNode [pure virtual]
getInternalSubset() const =0xercesc::DOMDocumentType [pure virtual]
getLastChild() const =0xercesc::DOMNode [pure virtual]
getLocalName() const =0xercesc::DOMNode [pure virtual]
getName() const =0xercesc::DOMDocumentType [pure virtual]
getNamespaceURI() const =0xercesc::DOMNode [pure virtual]
getNextSibling() const =0xercesc::DOMNode [pure virtual]
getNodeName() const =0xercesc::DOMNode [pure virtual]
getNodeType() const =0xercesc::DOMNode [pure virtual]
getNodeValue() const =0xercesc::DOMNode [pure virtual]
getNotations() const =0xercesc::DOMDocumentType [pure virtual]
getOwnerDocument() const =0xercesc::DOMNode [pure virtual]
getParentNode() const =0xercesc::DOMNode [pure virtual]
getPrefix() const =0xercesc::DOMNode [pure virtual]
getPreviousSibling() const =0xercesc::DOMNode [pure virtual]
getPublicId() const =0xercesc::DOMDocumentType [pure virtual]
getSystemId() const =0xercesc::DOMDocumentType [pure virtual]
getTextContent() const =0xercesc::DOMNode [pure virtual]
getUserData(const XMLCh *key) const =0xercesc::DOMNode [pure virtual]
hasAttributes() const =0xercesc::DOMNode [pure virtual]
hasChildNodes() const =0xercesc::DOMNode [pure virtual]
insertBefore(DOMNode *newChild, DOMNode *refChild)=0xercesc::DOMNode [pure virtual]
isDefaultNamespace(const XMLCh *namespaceURI) const =0xercesc::DOMNode [pure virtual]
isEqualNode(const DOMNode *arg) const =0xercesc::DOMNode [pure virtual]
isSameNode(const DOMNode *other) const =0xercesc::DOMNode [pure virtual]
isSupported(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNode [pure virtual]
lookupNamespaceURI(const XMLCh *prefix) const =0xercesc::DOMNode [pure virtual]
lookupPrefix(const XMLCh *namespaceURI) const =0xercesc::DOMNode [pure virtual]
NodeType enum namexercesc::DOMNode
normalize()=0xercesc::DOMNode [pure virtual]
NOTATION_NODE enum valuexercesc::DOMNode
PROCESSING_INSTRUCTION_NODE enum valuexercesc::DOMNode
release()=0xercesc::DOMNode [pure virtual]
removeChild(DOMNode *oldChild)=0xercesc::DOMNode [pure virtual]
replaceChild(DOMNode *newChild, DOMNode *oldChild)=0xercesc::DOMNode [pure virtual]
setNodeValue(const XMLCh *nodeValue)=0xercesc::DOMNode [pure virtual]
setPrefix(const XMLCh *prefix)=0xercesc::DOMNode [pure virtual]
setTextContent(const XMLCh *textContent)=0xercesc::DOMNode [pure virtual]
setUserData(const XMLCh *key, void *data, DOMUserDataHandler *handler)=0xercesc::DOMNode [pure virtual]
TEXT_NODE enum valuexercesc::DOMNode
~DOMDocumentType()xercesc::DOMDocumentType [inline, virtual]
~DOMNode()xercesc::DOMNode [inline, virtual]
XQilla-2.3.0/docs/dom3-api/DOMLocator_8hpp__incl.png0000644000151400015140000000754211653571065016761 00000000000000‰PNG  IHDRÅuq²ÒbKGDÿÿÿ ½§“IDATxœí{PçúÇß\€ TDK±GƒÚ"ñÂ9ꌂ¦Ç;"(X( ÓâQÚ£(Lg*¶ØRGÇŽ•©A8âe,hŽÖ)S‰¶õÛ˱@‹Ã%Ñ pËþþxÏìoM6!¶KHêóùëÝg÷¹¼Ëwß÷Mvò‚@ÀìÉ.øKz˜ô0 è `®•óåææÞ¸qÃÊI_djjj¬™ÎÚz’Ëå2™,((ÈÊy_@=zÔØØhå¤ÖÖB((((''Çúy_4¤Ré|`夰~˜ô0 è `ÐÀ$ '€I&áó%ˆÅb²ííí=þüôôt>ŸOu:]iii}}½R©  ‹‹ãp8Ø×Ïϯ¬¬ŒÅb‘ÇgeeÕÕÕ9sÆÏÏO,ã†5{d ›*æÏc»ãS~~þÅ‹ËË˳²²RSSûûûñ®ÁÁÁ´´´¤¥¥ÆÇÇ×ÔÔdffêõz|@WW×o¿ýF†Òh42™lâJU*•‘‘‘ߎ°]=ñù|@°páÂÜÜ\Ÿòòr¼ëôéÓ|>ÿèÑ£‹/ö÷÷ -((èêêúæ›oð!!!R©” uóæÍ L\©z½¾¯¯oââÛ¶«'*,kãÆ·o߯›555‰‰‰löÿÏãñâââÈ{ +W®”J¥ä£]ׯ__±b…ùýýýŸ|òIddä–-[Nœ81<<<66VRR»iÓ¦¼¼ô„ò÷÷W(¡þþ~•J%  …mmm¸=oÞ<­V‹§¼{÷î-[¶Ì|ücÇŽõôô:t¨¾¾þüùó7nÜÈËËûôÓOÛÛÛÏœ9ƒÜ¿``à™3gÒÓÓOž<ÙÛÛûùçŸ#„.]ºd*¶ùå—ÙÙÙ©ïܹsòäÉ}ûö‘ã\eee^^ÞÇ|çάZSF›ÂF×ã‹E®ŸØlvXX˜T* …·nÝ ž:uªßÑÑÑk×®ûøø „’““¿øâ 6›’’2sæL„PVV«££cqq±———“““——Bh```ÜP‰!”ššŠ£;eÊ”åË—#„4 6¦§§ûûû#„Þ~ûí¢¢"ÁÀ˜””ô§NÙ`7ãSGG‡¯¯/BÈÕÕÕÃ㥥Åà€–––Ù³g“›ä”gÉd§V«õz=ŽòóóëéééîîÆ<„ÐŒ3BCCB\.·££cß¾}©©©W¯^µ0nÐf÷ôôDQ?"„ÈÔdZ£Maz"¢ººzéÒ¥xS"‘œ>}šB:îüùó‹/&-ÁÁÁƒƒƒr¹üîÝ»øÒ7ƒ»»;›ÍV*•xS¡POOÏ®®.liiiÁóÝÐÐÐâââ ß}÷] Cá6—K?( ÓÑÑíííXp¦Œ6…íê©··W¥R=~üX&“½ÿþûJ¥rëÖ­xWRR’Z­Þ½{w]]]GGÇ÷ߟžž.¨Úñ”wôèÑW_}•úÅ58 —ˋş}ö™R©lmm-..–H$«V­***jmmmmm=vìXww7Bhdddtt”Ëå—”” „qL­V‹¢ eýòå˳¤1ùùù<(**Šˆˆ0c´)lwý´sçNÜðòò‰D………...Ø2eÊ”ÂÂÂ’’’‚‚…Báãã¾eËj±X\UUe&8¦¶¶öwÞÉÏÏß¾}»ƒƒÃ믿Ïb±t:ÝÞ½{u:ÝÒ¥KÓÒÒB®®®ééétvv~ã7ÂÃÃ÷íÛWQQ}åÊ„q(ƒ¹éÈ‘# , »C‹D"Ù³gN§ '#Ÿ÷”Z–•/µuëÖžžxþÉ µµµã̓Ÿ²òß×vç;À=Ù...6l°Ähƒ€žl>Ÿ¿{÷nKŒ6è `ÐÀ$ '€I@O“€ž&=L2 ÷[d2Yff¦õó¾h¨Õjë'µ¶žÈgì‹»w½gÎ|êá¡›ìBž+g´öý;;Å×÷_I7NàCè `ý0 è `ÐÀ$ '€I@O“€ž&=Lz˜ô0 è `ÐÀ$ '€I@O“€ž&=Lz˜ô0 è `ÐÀ$ '€I@O“€ž&=Lz˜ô0 è `ÐÀ$ '€I@O“€ž&=Lz˜ô0 ü:zþùϲÿþWInvvözx¸8;ÿï}h\.çßÿ~ËÇÇðµz€í¾ÿnr ½++ïQ¯5FKÝ b¢æ;z6oAˆæ5¬!.—·˜vz¢gÆ O‘ÈîžhlL¿iÓ"«Wd€žLóÇðü°Ù¬¾¾0ÙÑz2Idä"ã+,+&æ“R]z2‰@àºd‰ÐxˆZ¿~þ¤Ôc€žÌ±eËß©C‡Ã ôð0÷^òГ9Ö®QÇ'½žˆŽþû$Öcû€žÌñÒK¼ðð׸Üÿ%GGΚ5¢É-ÉÆ=ÃæÍ!z=âr9ó¦LqœìŠlÐÓ8DDñx¡±±±èhk¿®Éî=ƒ“wõê` 9;;®\9w²Ë±už¹§Õj'å%|6ŽXü·K—þ1çÉ“G“]‹ÍáìììîîNn>£'FÓÔÔdõ’l77ýK/9¾öš+œc¦M›fRO˜•+WZ¯;a×.bÇŽ×Ùlú;Ä/,¿üò‹ÖO‘–¶Äd  '‹ppàLv öè `ÐÀ$ '€I@O“ؽžÚÚÚ’““Ç=¬¥¥…ÅbQT÷Ÿ~ú‰Ëå–——“öªª*GGG¹\>5À¢ðÊ+¯$&&öôô˜9ž ˆ„„WWWËã·´´0QéøØ½ž*++7mÚD»ë÷߸Íçó³²²L¹/\¸ð½÷ÞËÈÈèííE=}útÇŽ999ÁÁÁW9•›7o*•ÊŽŽŽ’’’¾¾¾E‹áJhQ(gÏžmll´NmÏA¡»»»¶¶–°+Ö­[788H»«¹¹Ù ƒÆFÒ}hhhÞ¼y©©©Alß¾=$$dxxxª~„Pss3¹©×ëÃÂÂöïßoêxÚ~YŸAîß¿ÿþ}ªå¹Ç§êêj???|›ïüùó³gÏ@ŒŒìÝ»×ÛÛÛËËkïÞ½###xfùî»ï¤RiNNN@@À´iÓÉ‹ÏØ !ôõ×_‹D"7sæÌ²²2„Ðèè(­ûãÇ]\\œ©³Ù^ºt)BhúôéÈhš3pG9::–––ž:u*//¯¤¤¤´´ÔÁÁÁT‘ vÍ‹µ}ûöË—/›ŠCí—…1¿ýö[¡Pèîîž——Gžªªª9sæxyyedd Ñ-• U\ŽO‰‰‰III]]]ÞÞÞwîÜÁÆC‡EGG·µµ544,Z´(;;_FkÖ¬¹víÚ‚‚‚ärù’%K233Myõ÷÷;99(•Êââb.—ÛßßøðaZ÷S§N•••Ï^²d{\#éN’:xð Õ8¡]#èÆúúz>Ÿo>;Þk*&„Ðúõëûúú.^¼ˆ¯"aÕªUMMM·oß … 5šW‚ñøôGô¤V«ýýýE"5ßܹs•J%n×ÔÔ,X°××ÐÐ@Äœ9s.]º„÷666’mc/•JåààpäȵZ­×ë5ÍØØ˜)÷èèh•JEüQ=‘î½^Éáp¨ýЮãéÉTvl1“ BH*•166†sQë'âÂ… B¡ÖH˜…=ñá‡r8œîînÒÂãñ¨Ãž››®¯Bx<ž\.7ŽcìEÄ?üãââzåÊSîfãÆ¸M=Åø)b<=QÝ1eeennnׯ_çñx•••ÖéA§§sçÎ…„„˜ÏNL“ B¨©©‰š GÐjµØ(“Éx<­Ñ8ÖO¡öööüü|‰D²gÏÒ(È“¢V«oß¾íxâëëûðáClùùçŸ?úè#S^Z­V¯×———«Tª·ÞzkÆ *•ŠÖýêÕ««W¯¦6::Šêìì´¤î …"##ãðáÃaaa999iiiOž<±B׌ #âĉëÖ­3ŸcaLãµ#B !ÔÔÔäëëkÆøPÅeÉø466&‘HrssU*ÕôéÓ«««±=###&&æáÇ2™lÉ’%;wî¤^F999"‘H.—ËåòeË–¥¤¤˜òÒjµ<¯¢¢¢§§§°°ÇãiµZZ÷„„„ÎÎNaS\\üôéÓ¨¨(DŠ4 A7>QÝõzýúõëW¬X'‹ááa‘H´mÛ6+t Dù¾@*•FFFúûû÷ööZ’ÝTÌ“'O’eüC”ñI,777×ÕÕîß¿ŸÖh^ ÌwÇŸ?>ê¿úê+¼éëëKNNvww÷ôôLMM v[§Óeffúúúº¹¹mÛ¶M­Vc»±A.\˜5k–££ãܹs«ªªh݇‡‡×®]K-ìàÁƒ|>Ö¬YUUU8ïÈÈÈòåË]]] #=¸—––:99ýú믤¥®®ŽÍfWTTLt׈g‚üòË/ÇÇÇSæ³›‰i !jG(**š1c†@ صk—V«¥5šƒ±žžùÿO=jll„çéþò´´´H™Öhü<]PPi±ûïÇ›ôô"2uêÔ´´4KŒÏ ÌwÀæ;`b=Lz˜ô0 è `šß+ ëר#:Îàv5žàWú€åè Þ·0 ¬Ÿ&=Lz˜ô0Éÿ…?°U îvIEND®B`‚XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMXPathEvaluator__inherit__graph.png0000644000151400015140000001151211653571066024417 00000000000000‰PNG  IHDRÐu°ø~bKGDÿÿÿ ½§“ÿIDATxœíy\GÇ'$å(§Üõ@@(‚Zm‘« ÅZ È)ÔR.µöc%Šöå¨G©‚Ê)VƒE[åó‘¢ñƒ£­­ h &rIŽ}ÿ˜¾Û¼$Ä í"v¾ÍÎÎóÌ3³¿™, Ã0€@…ÊX€øw‡ $8¡ Á!…"}°p᱊ñS]]§IÒO©$éí·ß666‹¨¯!Ož<¹s玴Æ(CJyxxâõ…N§ýõ×Ò9h ‡ $8¡ Á! A(HpBú”úàé鉧MLLf̘‘ §§‡g ‚Ç×ÕÕ1Œ‰'ººº†††’ÉdhkaaqôèQ‰„—߸qã­[·h4Ç‹ONNÆä¯]»––––——gee%]¯¦¦¦““ÓÚµkÍÌÌ”Œ™F£YXX ל‹/*ãòøñã+VŒÈäŸæ5 ''ÇÌÌL"‘tttœwî\¹µ(¾šÊ¶wïÞÞÞÞÜÜÜôôôºººÒÒRé+kcc£¸ YF¼†ûüóÏ?ýôÓÄÄD___;;;˜YUU•••e```ll—››ûá‡bcc­¬¬²²²bbbàBgãÆø¥•µ Å0ŒÏç«©©ùøøxxx¨««Ÿ={V®¹––Ö’%KdÓ/‰D’H$0­¢¢âææF§Ó­­­¯_¿îèèøæ›oJÆ0ì?þPQQÁ#Áùì³Ï`‚B¡888$''ÔÔÔŠŠŠŒÕÕÕáïÔ\.W6†MMÍ `¥¸Cœ‹/¾÷Þ{wïÞµ³³«©©ñññ!“ÉJÖ"Í MD"Ñ… ŠŠŠà:råÊ•yyyÞÞÞàWV±¹ŒXpÚÚÚ}ôÑwß}—™™‰gvwwà‡ZZZ01qâD@OO¥¥%Ì™4iÒ¤I“†³ÒÑÑÉÊÊ*///..¶µµ ›7oÞpæÊÓÙÙinnƒ700hmmuvv–.ÐÚÚjkk‹zxxìÚµ+::zÈ| ùé§Ÿnß¾••E¥RÝÝÝ¥Ç?Ù'M…Béììܽ{7ŸÏW0$¤ŸŽ‡s¨®®îââréҥɓ'×ÖÖ(_ _-¼Ð„ÅbI$Øu ‹ÞÞ^˜†Wö%±àž>ÞÉÉ)***33SvÂóçÏÓÒÒÒÒÒÞ}÷]¡Pˆ? aˆÔãåå•mmmmkk ïFej‹Åd2¹¯¯OÉÀôõõUTT ¼É»ººŒŒŒà©áV®/ddk8 Ã222–-[–œœÜÐÐP[[ ó]]] zzzÚÛÛ7lØpúôii«E‹>xðàÁƒ{÷îíééΊD"Q©ÔË—/s¹\¡PH¡PÔÕÕ‡3çr¹gÏž•MØl6“ÉìëëkjjJNNf0ÁÁÁðTTT‹ÅúòË/oݺÕÙÙyåÊ•„„###__ß¿:EEÅÍÍmÏž=öööÒx†effZYYÁé;88X__ß¾}Š;M(ŠD" …288W·ø£+\“)6D˜?wî\‡søða¸tQ\ n ?žÇãáë³F¡P<==÷íÛÇ`0àþœOGÃÈtzúôi6›½|ùr …²nݺ={ö8::êèèDGGçääÄÄÄH$77·¸¸8ü6„‡‡ *•*æÏŸóe­ÔÔÔ6mÚ”——÷äÉssóÔÔT55µáÌÙlöîݻᵗNÖ¬YÆÆÆNNNùùùø,¯©©™ŸŸ_\\œ››ÛÕÕeffæå太ª*ÝROOÏÊÊJéÌóçÏ×××:tŽF …J¥®ZµÊÍÍÍÍÍm¸NÓÖÖNHHضmÛo¼æååµaÆòòrGGÇ€€€sçÎ)èp¼!8p—B¡¸»»×ÔÔà3¾ÜZð]@]]ÝèèèÐh´Õ«W_¹rEÉÀ¾øâ‹œœœøøxUUÕ÷ß?<<ŸU_Ž¡/`¦¦¦¢÷áð}8i½ž¿ˆW$8¡ Á! A(HpBA‚C ‚Pà„‚÷2ôõñŸ>}Á¯R¹ ý¥ÁÊÊJ__ p8–míαäU‡Åbµ··û©‡   ÂC—44“H$++µ±d0äM0úäêHùí·./¯]€šš öö„þ…ËkZØ3gnS(* ù‡nu,ã$¸‘aXiéM‘H"‰KKo ùa¤ ÁŒúú‡Ožüù.==ý Ç4œñÜÈ8}ºQU• ÓªªäS§~ÛxÆHp#@$’TT4…bx(Š+*êE"ÉØF5¾@‚W¯Þ{öL óì™àÚµûcÏx nœ:Õ@¡ü_Q(¤ŠŠ†±Šg<‚§,ðÇ›D"±t¦H$ùñÇ&@8VQ;à”å§Ÿî"Ù|@XSs‡øxÆ)HpÊròd=™,ço•ÉdÒÉ“hVU$8¥\¸ð›ÜR‘HRSs‡ÃyN|Tã$8¥¨ªjÁwCd ÅUUÍDÆ3~A?Þ+‹ÅíïÿkC䫯*Û·ÿõu·7ßÔÐ××ƒÈÆ¯ç'Wÿvôõµ¤õ¤¥¥˜4Épì"¯ )A(HpBA‚C ‚Pà„‚‡ $8¡ Á! A(HpBA‚C ‚Pà„‚‡ $8¡ Á! A(HpBA‚C ‚Pà„‚‡ $8¡ Á! A(HpBA‚C ‚Pà„‚‡ $8¡ Á!eT_ÀÌÏÏÿCGœ8ñd1ÖŒ ±±±/m;*Á‘Hr¾êýo€LÖˆÅÏÆ:±a4ší'WËÊÊ‚ƒƒGé1^8~üxHHÈh< 5‚Pà„‚‡ $8¡ Á! A(Hp€$ÅäÉ“###{{{¥ p¹\*•:cÆ ¹sç~óÍ7"‘·µ±±²/µxñb‰ÔÚÚªŒóHpP[[Ë`0:;;‹‹‹ûûûgÏžÍf³á©9sæÔÕÕ¥§§744lÚ´©¤¤dáÂ…bñŸÿëíáÇMMM¸+‹uùòe%¿"´··T6 eee£ñð*¸ÿ>~(‘HÜÜÜRRRàabb¢«««H$ p8œÉ“'@[ŸÍ›7ãg>¼xñbܧbç¯÷ïßWR eee£ÔÌ?;Â9sÆÂ‚ÅbJKKmmm¹\.@(R©Tccc*•* [[[I$RMMÍĉétzjjêĉ'L˜‰²V€~øÁÉÉICCÃÊÊêèÑ£‘H$×V!›‰DŠ?{ö,<¤Ñh)))d2/ ¥¥E¥Ri4< :~ü8ö¿Yµ¼¼<00p¸âœÍfòÉ'FFF–––‰‰‰@nðÃEN"‘:doo?a„;w=ztÊ”)ºººÉÉÉ zŒD"•””ØÛÛdddæÏŸ055}ñ=£Q+Pb„‹ŒŒŒŠŠêîî611¹yó&ÌLOOxôèQssóìÙ³“’’àM¶xñâ .¤¥¥988477·´´Ì›7/11q8+‡£®®ž››Ë`0ŠŠŠ( ‡ÃÙµk—\s6› ‡¥!iðÿƒ†auuuzzz†Á[¥··wH£®]»fbbmÿýwSSÓŸþºÕÔÔìëëÃŒpÒÎ1 ÷òòjkkknnž>}zZZšÜà¥G é4`ùòåýýý………€àààþþþ¼¼<@__ŸÜƒV,«  ðôéS"G¸\p,ËÒÒÒÉÉ)-- Ï´³³c00]]]=sæLØæææf æM›VQQÏÞ¹sOËZ1™LUUÕÝ»w³X,‰D200 ‹‡3WЊ‘ îúõëFFF¸íêÕ«7mÚ„aF[¸p¡´OÎÉdò/¿üó+**¬­­å¯@pÐÕ4¬T¶Ç ÕÅ‹¥K¾V‚Ã0lË–-d2¹§§ÏÑÐÐeuuua›áÙ––Y?²V†]½z500PKKËÕÕõܹs Ì´bˆ&Ž;æìì Ó¦¦¦ÕÕÕCL<øÁà¶t:ÝÚÚZ"‘øùùåååa ‡;ïèèðù|˜ßÜܬ¡¡!7xiAÜ»wOZp¸s¹i¹=¸{÷®tÉ×g èèèÈÉÉñöö^¿~=židd„÷‹ÅºqãÌWUU˜››?|øæÜ¾}{ûöíÃYñù|‰DrâÄ &“½téR&“9œ¹’`vðàÁ%K–ÀÃððð-[¶àϤ.—›žžîããƒç,X°```àêÕ«ÕÕÕ~~~J:711!“ÉíííðT[[›………‚àá^ÌãÇ•oËpý¬¢2v»£Q+xÑ'‹½½½·nÝÊd2MMMÏœ9ó×®]7æÍ›·fÍé›,55ÕÉÉ©¥¥¥¥¥ÅÅÅ%&&f8+>Ÿ¯¡¡Q^^ÞÛÛ›ŸŸ¯¡¡Áçó‡3W°†Ãw.ètº¯¯¯¥¥%›Í†gŸ={6mÚ4ww÷ªªª{÷îUTT888¸¸¸Lj,Yµj•½½½§§'îá8 óòòjoooiiqppHII‘<ܺ+**zö왿¿?Pz„“í1¹%aç ¼ðŠ¿êSjvvöŒ3àDyêÔ)333&“‰aXÿÊ•+õõõ ccc¹\®´àAbb¢¹¹¹®®îòåËY,Ì—µÂ0¬¬¬lêÔ©jjjvvv••• ̬„pÞzë­ððpéÙÃ0‡³~ýúéÓ§kjj:88lÛ¶Çãá¶ðâÑétÀþýû‡ä+vÎd2#"" ÍÌÌÖ­[Ççó‡ ~Û¶mzzzS§N­¬¬T^pr{L¶¤P(\°`¶¶ö‹.øß ¸Ñ¾ñ‹^ÀüW_ÀfÐ/ BA‚C ‚Pà„‚‡ $8¡ Á! A(£ýËûšššWíýUÄ?GCCÃ(= o‹ F̨43cb¤ 5‚Pà„‚‡ $8¡üB¤©¦~ætIEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMLSException_8cpp__incl.png0000644000151400015140000002442111653571065017541 00000000000000‰PNG  IHDR¡Ã¤9pbKGDÿÿÿ ½§“ IDATxœíÝi\×ÚðÂ*Ⱦƒ€ˆ,‚¨`¯ú*(w-»· nUD­ÒVA«ý)Ö¥q¹V¬(¨XQkEÅ¢’º¢(²TŠlR#‚ B0HæýpzçÆDDHÂðü?MNæœóäÌäÉ™d2C#E)É;èAãT9@eãT¦,ï€[¶l¹qㆼ£ÝÀÓÓsÆ òŽ¢Oƒ§ˆŠŠŠ œåø(?ÖÓÓ“w}ä8åìì-ï(ÀGùþûïå€ïã”9@eãT9@eãT¿«öb^^^䲉‰É°aÖ-[¦««Kòx¼¤¤¤ÜÜ\&“ieeåááñùçŸÓét\×ÂÂâøñã4\íÚµ÷ïßONN¶°°ðòò Â=r¹Ü¤¤¤7n°X,###ooïUUU‘`HÙÙÙÝþªEÔÖÖ†††Ê #ÐKAŽëÝâââÌÌÌAMMÍÙ³g—,YräÈ---„Л7o–-[¦§§nnnþôéÓÇ?xð`×®]JJJ¡/^TTTØÙÙᦚ›› ¤w÷ÓO?ÕÕÕmÞ¼ÙÈȨººú§Ÿ~jnnŽˆˆ¦'_î?˜LæÒ¥KÓÒÒBZZZ³gÏ–A§ —‚cÕÞMWWW__ßÐÐpĈ[¶l133;sæ ~ê—_~ÑÕÕݽ{÷¿þõ/KKKøøø/^\¾|¯àîîÎ`0Ȧîܹ3|øpéÝݺu+,,lðàÁººº®®®·oß FX7¿ÚÿMMMxYGGgÉ’%=Ô ÈqÔA£Ñ>û쳜œü0++kÞ¼yxʆ©««þùçYYYøá„  yÁ?þøcüøñÒ»èׯßùóçÉüâêêzúôiéUîܹÔÜÜŒºvíÚܹsy<ŸÏ?zôè¿ÿýo??¿íÛ·s8¼r{{{||¼¿¿¿¿¿|||{{{mm­——×íÛ·çÎëïï¿oß¾¶¶¶åË—#„Bx\Ãáüøã¾¾¾ÁÁÁhmmEyyy]½zuþüùŸ}öÙ¯¿þ*žØHÄv*¶PúkŠr¥XZZ>þ!ÄápX,yJ²³³«®®ÆË...\.·¢¢!ÔÒÒ’——7vìXéíGEEåååEEE>}º®®NøYÇ}BèÿþïÿÜÝÝ÷ïßÏf³÷ïßÿÝwß©««§¤¤Ü¸qcûöí{öì©©©INNÆ-¤¤¤0™ÌƒîÚµ+//ïèÑ£¸üüùóÛ·oÿá‡îÝ»wòäÉŸþ!”šš*ÞÞ½{ëëëãããcbbrssO:…ËoݺµÿþðððƒâlK’IÇN¥E9®o¡Ñh/+))yzzâÃÕ»wï:T[[[zõ‘#Gž>}zïÞ½C‡½råÊœ9s®]»F>»xñâiïÂå+W®ÌËË‹ŒŒôõõuttDedd|ñŶ¶¶\»v-ùÏÜË—/õÕWÆÆÆ¶¶¶ááá÷ïßÇåË–-³´´trrZ¼x19ÑÞÞ~ýúõ•+Wš™™ÙÚÚ.\¸\ÓÏÏOKKkòäÉ!rŠIŠDR§‰(øÍRž={fnnŽÒÒÒÒ××///www^¡¼¼ÜÞÞž|8aÂ„ØØØE‹uæ@•Çãݹsg„ NNNNNNsçÎMJJŠ÷ööÆ+tüÓÒÒš1cƱcÇvíÚ…Kêêê,--ñ²µµµµµ5^~ñâE`` YQSS/+[YYÕ×׋ Íf üòB䚆††!ee1{»¤H$uÚ™H€Byu‘žž>zôhüÐÇÇç—_~!gm!wêÔ©ýë_dÉСCß¼ySTTôàÁƒqãÆ½·ý­[·VVVâ‡4í“O>áóùï ìåË—çÎswwÇǘ!ƒ/^àåòòròQGG'999;;;;;ûÂ… äúÏž=à 555b{ÑÓÓSRRb2™øáóçÏqjáJŠMR$’:íL$@¡@ŽëÝY,VCCCAAÁ† ˜Læ¬Y³ðSóçÏg³Ù«V­ºÿþ³gÏnÞ¼¹lÙ2CCC___²:>\ݽ{·“““ð‰u“444&Mšôý÷ßçää0™ÌÇ8p€œÄu\ŸÅb!„‚رcG@@À† >|xç΄ФI“Ÿ>}úôéÓ½{÷’ßëyxx$$$ÔÕÕUVV®Y³æüùó¸<..®¶¶¶¤¤$11qâĉ¸ßGRVVöòòúé§Ÿ˜L&>QÆÇÇGÒ¸edd´´´H‰DR§b "ƒcÕÞmÅŠxÁØØØÕÕõСCäñ]¿~ý:tôèÑøøøçÏŸ›™™y{{«¨¨·àåå•––æïï/¥q,;;{Íš5ÇOHH¨­­ÕÓÓóòòZ°`¤õq•óçÏ766Ξ=[YYù›o¾Ù½{÷СCCBBx<^TTÇ=ztxx8^Ñ¢Eqqqaaa4ÍÓÓ3<<¼¡¡!äãã³zõj‡Ï:¦ÓéC‡ ¼té’pw_}õU\\ÜÒ¥KUTT>ýôÓIã¶sçÎáÇkjjJФc§øÈT¤PRû@qÐàÞƒ hÖ¬Yõõõpý8$§¿1ˆí´ ‘|ÿý÷FFF¿ýö[w>«¨ rPhššš3gÎT„Nå øxã€BÓÕÕ]µj•"t*—HÀǃ 2Èq*ƒ 2Èq*ƒ 2Èq*ƒÿr)¨‚‚‚ÈÈHyGñ~ATéô·2ë‘ÏWSRj¥ÑzÁÿs*++¥ügÈä8ED^;DÁµ¶*•”ðù´#^ʬÓGŒétÂÑñ•ªªàýkË•­­moÙ”ÿW]”]²bE²©©vBÂB[[#™õ[YYvôÅ‹¦¸¸P//G™õ z)ø>|0€Ø¶íbhè¡I“œ32¾‘e‚CÙÚed|3i’shè¡mÛ. ð! ¤yø0oV¬H¾y³tÛ¶ÀÐÐ1rŒ$9ùîwßõð°‹ ÕÕí'ÇH€"ƒ>@^ÞßK–$ÑéJ \]È;TXX–Äç Zàæfýþ  ïcUÐY‰‰7âìíM33W)B‚C¹º¸|y•½½i@@\bâ y‡ÌãÀûq¹­kÖœ9wîáºuÓ—/ÿTÊíä‚ ˆŸ¾¾}{†¿¿ûŽÁªòŽ(Èqà=ªª/>úüyã¾}¡ÞÞNòG¢k×þZ¹2ÙÂB/!a¡¼ÃŠŽU4“'ïRWW¹z5J‘BÈÛÛ)++RMMyòä]ò( ˜ÇñÚÚø›7§9ró‹/<6l˜©ªÚ;Nommß²å;:ÚWY>Åû:Èq@Œ—/›—-;–Ÿ_³cGp`àHy‡óÁRR¬]{føðÌ76î/ïp€_ðŸÿü¾gÏïî;vÌRWW‘wD Û@Ž£¸êêWaaI55,¿Â¥"¸zµ8"âÄ€ú ¬¬ äèp¬JeÙÙ%S§îQVVÊÊŠ„÷^>>C²²"•••¦NÝ“]"ïp@÷€GMä-PÜÏ[ia¡'ïˆz ½sçVNŸî 7o¥ 8V¥ | Ô»w+bb‚ƒ‚zß.Á™3¹ß~›2fÌ ¸yko9Žjð-PUU•8;[È;œ^ _e³µµnÞÚ«Á±*¥à[ Ža}åÊjHp _esÄk¸yk¯ó8ŠÀ·@MOD¥+\*|•ÍÍ›Ó|}Ýàæ­½ä8*À·@mhh>p`þ˜1¼œÜݽ[±lÙ1##m¸yk¯Ǫ½¾ª¦¦ZfæjHp=d̘A™™«ûõS…›·ö:0ëÅÈ[ ö…+\*ò*›póÖ^r\o…oúøqíþ3gÊ”¡ò§ÁWÙtv¶€›·ö ãz%| T]Ý~‰‰ ûàà䮢âeXXRcã¸y«âƒÉ¶âb0Jªª:–ã[ Že{áÂWàäbÐ ã ¾5ÊVÒÍ[«ªþøã‰ìÁ­g±Z¶n½ ßð‚yœbúã'sæÄ›†F£mÝêo` µzõé‘#mö¯¯)ïÁ;X¬–/¿<þàAÕ®]ÿnhàlÜxÿ™ŸF£:îéé ïû4Èq §¥å­‡Çö—/›È‹^ÐéJš~~nß}7î ª˜ÚÚø[·^HKË{õª…ÏàB%%š±±öÍ›ëÈÃX {p¬ªpvì¸T_ϾªA|>±r¥$8…¥¢Bˆðáó áIƒ@@Ô×sbc/Ë109N±äæ>ML¼Éçó… ¢©‰–DN€¢áó‹mjâŠ\rŽÏç'$Üxð੼ãÈÛ·í'Äþ›¾­Ÿ›ût÷î+2 tÊ®]W<¨jkãw|ŠF£­\y¢µµ]öQ9N¡ÄÇg×Ô°$]{–ÏìÝ›uãœu¥pþøãÉÞ½Y’fÙ ¦†ÏmPàãEYYÝ®]WÄ&8|›(33ðð &&:2 ¼‡©©Nxøx33„šš2B¢Sq€Ø¹óryùKyD××Áïª ÏL™²»¤„)4 ©ªÒ[[Û4 pŸ1c¸ƒƒ©}Ú ªªÜÚÊGˆüqœ>dˆé¥K«èt˜XÈä8…päÈMò¤*uu¯ÍÌLÇÏÏmÆŒáÇ€ ^ö.Aäç×\¼˜þ|“ùZMMùí[>B„’mËÿ… =ä`ß"»wõêÕÊÊJÙôÕ»46¶ÅÅU¶· BÚÚ*C‡j¢mn®¦°©ÍÖÖÖÇÇçcZàr¹l6»»âQXA×]½ZråÊ_/_rBjjÊ))‹ÌÌ´åÅéééihhàeÙå¸Y³f9sF6}õ.úúþÊÊú<^)—[ÖÖöBÞá¼_ppðo¿ýö1-¼|ù²¸¸¸»âQ|ATV¾¾w¯öîÝZKËþk×Â_ñzÖ!CŒñ²²,;þø÷õ¼zÅ©®fõ¢ÒY³fuWS&L讦Ÿ—Z´èŸÃXkkøC^Ïa0Âešã@GZZòŽÈF1ÂJÞQô-ð€Ê Ǩ r€Ê Ǩ r€Ê.ÇÑ„ØØØÌ›7¯¾¾^x…–––¨¨¨aÆõïßÿ“O>ùá‡ÚÛÛɺƒ9ãoêÔ©4­¼¼¯€„q8œÈÈÈjhh <8::šÇãu †ÔS¯\HyyùGv$ö•‚Q]]½páÂ÷®Fn;‘ˆ«?zôHYYYøDÑ´´4UUÕ¢¢"ÔÕ¸§ß2ÒWèYîŸ —ãBwîÜa2™Ïž=;zôhSS“››[cc#~ª¹¹yäÈ‘¹¹¹111>\·n݉'&NœH^p­ªªª à·1g³Ù7nÜÞÝÊ•+óòòΞ=[]]}øðá´´´¨¨(‘`„u÷ËýGee¥¡¡!^ÖÕÕ]»vmuºæüùó~~~bŸê̶ÃÕGŒ±~ýúˆˆ¼K¿~ýzùòåÑÑÑC‡þs‡Ü.ìÀ¨‡ß2] I²üÞÕBeeeäC@àéé¹qãFü022ÒÃã½½\ÃáØØØ$$$àºS¦LY¿~=ùlRRÒÔ©SÉ6EÇtuusrrȇüñ‡•••Ø`zTYYY7nŽž‹¼“ÛQººººìììîGv¦OŸþæÍ±O‰Ýv"…dõ·oߺ¸¸,Y²„ ˆ¥K—º»»·¶¶âuº¶÷ô[Fú ]Ó£ï¬ìì캺:ò¡"Îã„Ñh´¥K—fddà‡ÉÉÉ7n¤ÓÿwÉoMMͨ¨¨äädüÿ•‚øïÔ:%%%((HzÚÚÚ?ÿüó«W¯ðCOOÏ¿ÿþ[z•ôôt üËS§NÙÛÛ·´´´··GGG[YYÍ›7ü mkk‹ŠŠ211166ŽŠŠjkkÃG1iiiÆÆÆoß¾=z4BÈÔÔ½{˜ÓØØ¸`ÁCCCKKËÈÈH|M£ÑNœ8áä䤯¯¿cDZAþþûïvvvzzzÛ·o'ÛéTl¡ô×.3bIÏk×®YYY1ŒNn„Ð… \]]ÕÕÕmmm?Ž’´455544„7 ¹,iÛ‘Èê!UUÕ¤¤¤#GŽlß¾ýèÑ£III***äš]ØEtû[Fú Ç ˆøøø!C†hkkúé§/^ûÅ‹ìöÏJ¥umGDnn®®®.Axw¯¯¯©rûöm\·¤¤ÄÔÔôÑ£GA466öëׯ¡¡Iý¼r劅……ššÚĉccc«ªª„ƒÉÏÏo~~jÞ¼yóçÏñâ…‰‰É½{÷‚ˆuvv.,,,**5jTdd$^3&&&00°ººº°°ÐÍÍíÛo¿ÅŸð“&M*--ÍÉɱ³³Û´i“ðǾðrHHˆ··wEEEaa¡‹‹Ë¦M›p`AAAl6;!!!ôêÕ«ŽÃ8cÆŒ¦¦¦³gÏ"„¤t*R(}Ér×q Éã9uêÔëׯoÚ´©“[Ãᨩ©ÅÇÇ3™ÌÇ+++s8IñÈ‘#Ç'ÞÝ4äò{ Éê¤o¿ý!´uëVá®íÀ=ý–‘²‚Ø1LHH°°°ÈÌ̬¯¯ÏÊʲ³³ë˜gznÿ$:Ìã¨ãîÞ½khhHÖýòË/×­[GDrròĉ…Û»‹ÑÞÞž““³yóf:~âÄ 2IŸ l6ÛÒÒÒÕÕ•t‡ÔÔT¼\\\L.;::2™L¼œ••5|øp¼å qáéÓ§íììľOZ[[étúŸþ‰ËSSSíììp`8G´¶¶JÚï Aøk—²²2)ŠJÚ4˜,s\ÇA&Þ7žß ,KEEeçÎl6[ 477óù|IÕY,ÑÕGVǯ¯/N ~½]Ûeð–‘´‚Ø1tqq!ßAAœ~ù!;;;rMsss„ða޼‚’Ò;›Xl§‰D.:2’<žŽŽŽèC¶‚žž^vvvNNŽ¥¥åøñãoÞ¼©¤¤$¶:‡ÃikkÓÓÓ ð)(¢cõ'N0Œëׯ§¤¤¤¥¥‰¬ÿA;°XÝþ–‘´‚Ø1¬¨¨pqq!×2dˆØ e¶*zŽ#âÀÓ§OÇCBB6oÞ,|Ûª–––˜˜˜)S¦%ãÆknn¾uëVVV–¤„۟3gþå!D£Ñ&OžLþ².EMMM\\œÏêÕ«q‰¹¹yUU^ÎÏÏß¶m^644$%›ÍÎÉÉÁåø3 !TZZŠ·wG&&&t:¼î^EE………^Ù9:û%ˆØN;‰\td$yŸODkk«««ëìÙ³ñ³]Û{ú-#e±c¸oß>KKË+W®444\»vÍÁÁF£²Ú?‰^ñ}iÀ€!!!ÂáÁápV¯^íââÒ¯_?ggç­[·’¿è“‡/ µÿ~‘r±)¾½½}Ó¦M®®®666k×®år¹ƒ®²oß¾aÆáŸüÏ;gffÆb±x<^dd¤¹¹¹ŽŽÎìÙ³Ùl6n¤©©iáÂ…zzzK–,iiiÁ[.11ÑÚÚÚÐÐpåÊ•\.·­­mܸqZZZÄ»9ŽÅbÍ;×ÀÀÀÌÌì›o¾Á±‰Íqb ‰w÷!‘NÅvËv”®39Nì ’Ç×êüV âôéÓƒ RUUuttLKK[½µµuÚ´iÂmݺUWWwРAø0“ ±Û/ˆTOJJRSS{òä Yrÿþ}%%¥””¢«;pO¿e¤¯Ðq ù|þž={ ¤££3eÊ”´´4###BVû'¡ø9®/~OÊ·Ó.DÒgÏtáÂ…üü|òaJJÊðáÃß[«»öO¢7þæèE CCCóòòÞ¼y“““³aÆŋË1¸°hkk‡‡‡+B§r‰PÛš5kÞ¼yãççW__okkûÅ_tfë¹ýS¦÷¬AÁýz»nÙŽøž5}ê~@f †ð=kàX@eãT9@eãT9@e2=w¤²²òСC²ìt»ÊÊJ[[ÛniêùóçÝÒRÈ4Ç=|øÚgcih8"„¸ÜyÒ³º+Ç•––vK;H!»óãú‚ððc¡ƒçË;À?àû8•AŽPä8•AŽPä8•AŽPä8•AŽPä8•AŽPä8•AŽPä8•AŽPä8•AŽPä8•AŽPä8•AŽPä8•AŽPä8•AŽPä8•AŽPä8•AŽPä8•AŽPä8•AŽPä8•)Ë;€ÞíÎòGþ&–—×!„öï¿F–¸¹ÙŒ3H‘BÑ‚w ½ƒQ2gÎA:FyŠ ˆ¶6þ©SKÇwKló¸äéé`` õêGì³Zö2 ¾û(JJ´€wzǧTTèîJJ¢ó;€,AŽûX~~nmmüŽåmm|??7ÙÇ9îcaei©ß±|Àýáíd@ä¸n4RäpUE…4R^ñHãºA@€»Èáj[ßßß]^ñH㺱½½)yöFsp0µ³3–kP„ Çu—Y³>¡ÓÿL:ü‰|ã`㺇ŸŸŸÿÏÙÔ|>¿¨  Çuss]77+%%š’ÍÝÝÚÜ\WÞ‚×ÜqŽó÷‡IŠr\·ñõu#DÈ×rŠâÿ«2 9…ANN¡ÂÂ\yÒ»M˜0AÞ!êýO¾¥¥¥ŽŽŽ\B¡€Ù³  9;;Ë;Þêõë×Ïž=“w€RDsœ¶¶¶‘‘‘\B¡€  1¡þýÕåHoWúÝ®­Ô » hà7"ì ƒºIDAT•AŽPä8•AŽPYïÎqÕÕÕ .),//ïx™®5Kbcc3oÞ¼úúzá5[ZZ¢¢¢† Ö¿ÿO>ùä‡~hooÇOÑh´Áƒ‹üP8uêTV^^.Ò8écÂî¤ò% øzwŽ;þ¼ŸŸ_6{çÎ&“ùìÙ³£G655¹¹¹566â§š››GŽ™››óðáÃuëÖ8qbâĉ|þ?×’«ªª*(( ›e³Ù7nÜî7.¬Û_ VYYihhˆ—uuu×®]ÛC p!ÙÙÙuuuDï1}úô7oÞˆ–••‰¼®.7‹*++#˧§çÆñÃÈÈHöövr‡ccc“€ëN™2eýúõä³IIIS§N%Ûi¼G}ü˜ë¹Èëêê²³³{¢eÐg}Ø<.==Ý‚Íf#„N:eooßÒÒ‚jkk‹ŠŠ211166ŽŠŠjkkÃD×®]³²²b0ÑÑÑVVVFFFóæÍ#çAk!„.\¸àêꪮ®nkk{üøq„P{{»Øê ššš|>?66ÖÞÞ¾ÿþcÇŽ½wï^¡±±qÁ‚†††–––‘‘‘<!D£ÑŽ9âäädddôã??~|àÀ:::6li¶ã˧ÑhK—.ÍÈÈÀ“““7nÜH§ÿï*çšššQQQÉÉÉøappðo¿ýFü÷p5%%%((¨kƒ,i$|ZZšƒƒƒ±±qDDÄÛ·oG255Eï«J¢'N899éëëïØ±Cl¿ÿþ»žžÞöíÛÉ6E:[øÞ—@7Nx™ÇÍ›7oþüù/^¼011¹wï.Œ‰‰ ¬®®.,,tssûöÛoñÄaêԩׯ_ß´i“³³saaaQQѨQ£"##%Õâp8jjjñññL&óðáÃÊÊÊ'66Vlõ#GŽ?~œ ˆÝ»w§¦¦>þ<##ÃÜÜ¿®ooŠÂÂB—M›6át3{ö즦¦ÄÄD„ЬY³ššš<ˆjhhn–7aÉÍÍÕÕÕ%ç úúz‘ñ¹}û¶‰‰ ®[RRbjjúèÑ#‚ ûõë×ÐЀ„æqùùùÍï’4È’AÒÈOš4©´´4''ÇÎÎnÓ¦MÂó8áeICÄf³B¯^½y¡3f455={›”NE ¥ï]0Ýîƒs›Í¶´´tuuÞ_™L&^ÎÊÊ>|8Þ¿ ‚pppHMMÅÏ“Ëk±X,•;w²Ùl@ÐÜÜÌçó%U d±XAØÛÛ'%%‘Á;v !ÔÚÚJ§ÓÿüóO\˜ššjggGB(// ˆÖÖV‘eœzÈf‰.帻wï’u¿üòËuëÖ‘œœõèÑ#„PMM BˆËåâÂÂÂBuuuâÝ´ÕqY¸YB\Ž;yò¤»»;^655ÍÊÊ ìÀ“'O&ë2 ;;;@àççwðàAâÝ'å[-‘Aîüâ‘'_xAAºººØ'eˆž>>«W¯& Éw›ÍÎÉÉÁå***!ssóªª*\’ŸŸ¿mÛ6Iµ¸\®@ 8sæ ‹ÅZ´hÑÌ™3Y,–Øê™™™S¦LÁ…666Â?_>~ü!dbbB§Ó+++qaEE………Å{_p³qàÀéÓ§ã‡!!!›7o&EEµ´´ÄÄÄ·0nÜ¸æææ[·neeeuþ'àŽƒÜù1Äå8¿ „JKKñÁ{GR†HIé=;†Ø³OÄvÚ™HèA ï½ó8>Ÿïãã³eË‹ejjšžžŽË#""‚‚‚ð©£FZ±b…ðÄ!::ÚÕÕµ¨¨¨¨¨hìØ±aaa’jq¹\uuõ”””úúúC‡©««s¹\±ÕCCCkkkq;{÷î566>þ<“ɼ|ù²­­-îzΜ9ÞÞÞ•••EEEÎÎÎø÷P$u'Ü,.$Ïa0¾¾¾–––øÙׯ_;88Œ?þòåË¥¥¥©©©ÎÎÎcÇŽåñxÂ/_¾ÜÉÉÉËËK¤S$îÜIƒÜù1Ä#ïååUVVvÿþýÁƒoܸâïû„7Mç‡(!!|áWÒ©H¡”½‹€yè–ãöíÛ7lØ0|zîÜ9333üÕUSSÓÂ… õôô –,YÒÒÒ"üFâñx‘‘‘æææ:::³gÏf³Ù¸¼c-‚ NŸ>=hÐ UUUGGÇ´´4±Õ[[[§M›FFÕÞÞkgg§©©9fÌ<—!‚ÅbÍ;×ÀÀÀÌÌì›o¾ÁMRr\qq±p³Ä»_™ 0 $$Dd|8ÎêÕ«]\\úõëçìì¼uëVò\²q|åÑýû÷‹”KúÈ;ÈC<ò‰‰‰ÖÖÖ†††+W®är¹mmmãÆÓÒÒ"ÞÍq"éŸ b;[(eï" Ç@#„Þl cÈ!ÆÆpcÐ^¬¼¼¼ãÿ+äÒi"yùòeqq1\t£Þý?rÕhkk‡‡‡+B§r‰p¬ «‚nó8•AŽPä8•AŽPä8•AŽP™è=¤‹‹‹‹‹‹å t»wι! radd$ïuÐdüÇF%ø>@eãT9@eãTöÿIþmt¬üVUIEND®B`‚XQilla-2.3.0/docs/dom3-api/inherit_graph_37.map0000644000151400015140000000032111653571066016025 00000000000000 XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMEntity.html0000644000151400015140000004412711653571066017753 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMEntity Class Reference

This interface represents an entity, either parsed or unparsed, in an XML document. More...

#include <DOMEntity.hpp>

Inheritance diagram for xercesc::DOMEntity:

List of all members.

Public Member Functions

Destructor
virtual ~DOMEntity ()
 Destructor.
Functions introduced in DOM Level 1
virtual const XMLCh * getPublicId () const =0
 The public identifier associated with the entity, if specified.
virtual const XMLCh * getSystemId () const =0
 The system identifier associated with the entity, if specified.
virtual const XMLCh * getNotationName () const =0
 For unparsed entities, the name of the notation for the entity.
Functions introduced in DOM Level 3.
virtual const XMLCh * getInputEncoding () const =0
 An attribute specifying the encoding used for this entity at the time of parsing, when it is an external parsed entity.
virtual const XMLCh * getXmlEncoding () const =0
 An attribute specifying, as part of the text declaration, the encoding of this entity, when it is an external parsed entity.
virtual const XMLCh * getXmlVersion () const =0
 An attribute specifying, as part of the text declaration, the version number of this entity, when it is an external parsed entity.

Protected Member Functions

Hidden constructors
 DOMEntity ()
 DOMEntity (const DOMEntity &other)

Detailed Description

This interface represents an entity, either parsed or unparsed, in an XML document.

Note that this models the entity itself not the entity declaration. DOMEntity declaration modeling has been left for a later Level of the DOM specification.

The nodeName attribute that is inherited from DOMNode contains the name of the entity.

An XML processor may choose to completely expand entities before the structure model is passed to the DOM; in this case there will be no DOMEntityReference nodes in the document tree.

XML does not mandate that a non-validating XML processor read and process entity declarations made in the external subset or declared in external parameter entities. This means that parsed entities declared in the external subset need not be expanded by some classes of applications, and that the replacement value of the entity may not be available. When the replacement value is available, the corresponding DOMEntity node's child list represents the structure of that replacement text. Otherwise, the child list is empty.

The DOM Level 2 does not support editing DOMEntity nodes; if a user wants to make changes to the contents of an DOMEntity, every related DOMEntityReference node has to be replaced in the structure model by a clone of the DOMEntity's contents, and then the desired changes must be made to each of those clones instead. DOMEntity nodes and all their descendants are readonly.

An DOMEntity node does not have any parent.If the entity contains an unbound namespace prefix, the namespaceURI of the corresponding node in the DOMEntity node subtree is null. The same is true for DOMEntityReference nodes that refer to this entity, when they are created using the createEntityReference method of the DOMDocument interface. The DOM Level 2 does not support any mechanism to resolve namespace prefixes.

See also the Document Object Model (DOM) Level 2 Core Specification.

Since:
DOM Level 1

Constructor & Destructor Documentation

xercesc::DOMEntity::DOMEntity ( ) [inline, protected]
xercesc::DOMEntity::DOMEntity ( const DOMEntity other) [inline, protected]
virtual xercesc::DOMEntity::~DOMEntity ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual const XMLCh* xercesc::DOMEntity::getInputEncoding ( ) const [pure virtual]

An attribute specifying the encoding used for this entity at the time of parsing, when it is an external parsed entity.

This is null if it an entity from the internal subset or if it is not known.

Since:
DOM Level 3
virtual const XMLCh* xercesc::DOMEntity::getNotationName ( ) const [pure virtual]

For unparsed entities, the name of the notation for the entity.

For parsed entities, this is null.

Since:
DOM Level 1
virtual const XMLCh* xercesc::DOMEntity::getPublicId ( ) const [pure virtual]

The public identifier associated with the entity, if specified.

If the public identifier was not specified, this is null.

Since:
DOM Level 1
virtual const XMLCh* xercesc::DOMEntity::getSystemId ( ) const [pure virtual]

The system identifier associated with the entity, if specified.

If the system identifier was not specified, this is null.

Since:
DOM Level 1
virtual const XMLCh* xercesc::DOMEntity::getXmlEncoding ( ) const [pure virtual]

An attribute specifying, as part of the text declaration, the encoding of this entity, when it is an external parsed entity.

This is null otherwise.

Since:
DOM Level 3
virtual const XMLCh* xercesc::DOMEntity::getXmlVersion ( ) const [pure virtual]

An attribute specifying, as part of the text declaration, the version number of this entity, when it is an external parsed entity.

This is null otherwise.

Since:
DOM Level 3

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/inherit_graph_31.map0000644000151400015140000000066511653571066016032 00000000000000 XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMException__inherit__graph.png0000644000151400015140000002130511653571066023447 00000000000000‰PNG  IHDRƒuºX|ôbKGDÿÿÿ ½§“ IDATxœíÝy\W÷0ð ¬AEÔˆ •E¶ê[DQQˆ€&Z÷Z­¨­v´ÚZxZ[kmõããRÔZ}Z•*Q‰­ ¬Zd“E«U6Y BBYæýcú›¦YZÈp¾M&sgÎÜ8ÉÌÍ Ã0’‘0 A%È• Tb€L4² §rrr¶oßNv@§>þøã²£ oA%z£±±ñÊ•+S¦L!; #ÙÙÙo½õÙQÐç =“@v@G²³³É]€ûÄ™ d‚J *1@&¨Ä™`ì4ºJ,;::úùù­]»ÖÆÆ†X)‘HŽ?žŸŸ___ïææ6iÒ¤×_J¥âm]\\~üñG …Bl¿yóæ¼¼¼'N¸¸¸(ïœpõêÕ¾vìØ‚ ¢££wìØ! ñ½©·Â±råÊ3f,Z´(##!$—Ë56Ç¡¾¬‚B¡Ì™3'77˜™™¹lÙ2üã/ŽN§¿þúë™™™øÃ)S¦dgg¿,ž““Ó“ù 5öŒ¶Èµu×7–.]³oß>©TºnÝ:„ÐܹsUNP(~ùå—QQQçÛo¿íêêB…††^¹reùòåsæÌùé§Ÿ^0Tb`P^{íµÀÀÀ‚|ôÑGt:!Äårëëë:ôÍ7ß;v ßþÌ™3~øaIIɵk×vìØ±gÏžššš'NàϪ·’H$‰‰‰ÑÑÑ?ýôÓÒ¥K¿úê+‰DÂår56·±±‰‹‹S_VçêêZWW‡ …---Ä•g‚»»ûãÇñeooo±X\QQ‰DEEE&LPÞX"‘ˆÿN[Ïh‹\[w¥¦¦îرã‹/¾¸uëÖ©S§<ˆ:wîœJ´{÷îmjjJJJÚ¹sg~~~rr2¾þúõëˆ=tèþž€ ó~ýú¢¢¢¸¸¸¨¨¨Ñ£Gã+/]ºôî»ï:880™ÌØØØ¼¼<|ýêÕ«ýýý³²²Þ|óM&“9bĈ͛73F[+©TŠa˜X,611 çóù¦¦¦ééé›[XXDDD¨/¿ …¢P(ðe##£É“'ã¨ûí7kkkåW­Z5ûï´õŒ¶Èµu×Úµk]]]½¼¼V­ZE|FW!“É~ùå—õë×;991™Ì+V[FGG[ZZΜ9!D\ÖÀˆ-`h,--###ÿ÷¿ÿ}óÍ7Äʆ††yóæ-,,ð777„Pcc£««+¾fذaÆ ÓÖÊÊÊjÏž=\.÷رc‹-7nœ¶æ=W[[ëììŒ?hРòòòÀÀ@å ÊËË=<<ˆ‡S¦LÙµk×Ê•+5^šÆQ«E½gz~âø±±››[SS“Æs …?„‹‹ ±¥½½=BˆFƒ;ü üICóôéÓóçÏáW€ñõxU°³³khh1bB¨¼¼<77wÉ’%[uvv*ŠÄÄD™L–••µuëÖÔÔTmÍ{ð .Œ?öÃ?øûû·Š%Irr²riôññéèè(+++((ظqãK÷LÏOßCmm-“ÉDÕÔÔØÙÙi<Š­­­‘‘Q}}=^×ëêêðŒRþæ€W§AÁ0쫯¾š;wî¶mÛ oÞ¼‰¯Ÿ4iÒ‘#G+++7mÚ”ššªÜjÆŒß}÷]UUUUUÕÞ½{µµ¢P(ñññ×®]‰DR©”F£™ššjk.‰ÒÓÓÕ—B­­­---ÍÍÍ%%%Û¶m«¯¯Ÿ?>þÔòåËÁ|——W[[û믿®]»ÖÞÞ>**ŠhŽ_ Þ½{·———ò‘•w®L[ÏôüÄñõû÷ïòäÉýû÷¿ûî»éÓ§ã+ñûÐúßÿþ·¾¾ÿ VXXØ?~!Hà310(©©©­­­ .¤Ñhï¿ÿþîÝ»}||¬¬¬V®\¹ÿþ·Þz‹B¡Lž<966¶¹¹™hµxñb‰D/‘HÆ‹¯Woebb²eË–C‡=}úÔÙÙ9!!ÁÄÄD[óÖÖÖ¯¿þ¿=¬¼Œzçwð__ßÇW€ÍÍÍ>|ìØ±¤¤¤ºº:''§iÓ¦q8cccå3 åñx111ê@ìœpõêU=ÓóÇ»+,,lãÆ‰dÚ´i‹/¦R©>>>óæÍ»xñ¢òáÞ}÷Ýýû÷¯Y³ÆØØxêÔ©‹/þ§¯# …ø.ýÜ™3g,X³8‘‚”)´BCCOŸ>M\-ÀPÁÕi€LP‰/faaÁb±ÈŽÃ•ðb666|ðÙQ`˜ d‚J *1@&¨Ä™ d‚J @×Ü,~öLüâíú f»z¦›_ù}9 µ­mD7§`ÕÒ²ÎØXw?ê'º"„,-kuvD„B¡ÐE*µÒø”\®á_‡±qƒQÞ×a`x ½1tèP‡Ó{¾}Û^$2~áa22B-öööÙ÷E$:P(&ÓDgGÄa¥¢Â¬¡Á¢‡ÛŠ991{1&“9tèÐ^Ü!ýÌ; :zôÚþÓÉÝlC£¹¸Øž<ËdÖY`¡{÷ê¦MÛ…ÊÊÚäåå¤ËCãx¼Ûï½wJ.Wtß?T*¥¸øS;;K€Á€ûÄ ¨¨€îß’Q^}uä¥Kè¸ #„.\(¦ÑŒh4*Ÿ_¬ãC㢢ü/^|ßÑ‘A£iýwA¥RÆs‡2 ÀËJ ²··œ0a•ªñÏB¡PÖ®zúôs†aXrò-™L!“É““sɺ‚åååüË/›BBFi¾‚aˆÅòÕqT jbb"Ù1@¦»wŸ$%]½sçɳgB•JG¥Rh4£}û¯^¢­õ©‚‚ê£G¯áË"Qç”)žÎζº!djJ‹‰ 05¥]¿þ¢vGB¡\½zÿÖ­J„››©) @à€ÏÄ`€zòD°oß•ÐÐÓ§–V2uª—‰Éßêfdgg•žþ~ttYA¦¦Sñeccêùó·ÉŠ!D¡PÞy'ìøñUff&4•XO¥MœèñÅó Åûï'ýgÆ“W®ü.•ÊIŒ=#¶ÀÀòôi{JJ^JJÁƒ ŽŽÖlv0›äé9!´víéé¥2™!D¥y{»?¾ÊÑÑš¬Pe2…ÏÇÏŸÿõMbì¬l{7÷ku£²²iùò#=ÃÇpQöî]4o^Bèù󎌌»ii%W¯Þ£Ñ¨“&y°ÙAáá>Äû €:¨Ä`@ ;SS‹RRò «ÍÍM¢£Øì   Êל33ï._~!ÌȈé·gÏB33]qHYvöýE‹#¤üJINŽ ñ$-¦ÿóüyÇš5?üú녣Ѩwîl·¶¦+o ˆ®\ùË-¸~ý¡•}ÆŒ1,ÖØ)SFCI@Tb`ȤRyvö}.· #ãŽB…‡û°ÙA“'{j¼‘)•Ê}|>noïܲ%âí·§ªß Õ±wß=yþümü3:ŽF3Љ Ü»w‰Q l×®Kÿýï•iÓ¼~øá-m›Õ×·¦§—òùÅÕ66æÓ¦yq8Á&Œ"å¾;ýTb`€0 Ëϯâr ÒÒJž? çp‚Y,?ミ·oç?2,ìÝÄÙ ‰D:fÌGb±Te½™™ÉÝ»ÛétcR¢R—‘q‡J¥N›æõÂ-kk?ÿ\Æå”–Ö89ÙÌžíËbù ý¤ƒJ JUUÓ©S·x¼¢ÚZÁÈ‘¯¿þjtt€‹ 9ãÿ´´’ØØÿ©ÿyR(”Ç—GDø‘U¯øã†´´âÔÔÛO]]mgÎôa±ü^}µ7'ç@¿@%† ©©Ç»Þrp°âp^%Æaé©+Žfeý®>­f6æûïß$%ªÞ…—ä³g ««›=<†°X~ÑÑ#G:º•è1‘¨óâÅR.·àæÍr33c|V`àp-stèöv‰·÷ÇÚ¾dlL½{÷sKKSGÕwJKkRR ÒÒŠÛð’¦ÿÜ=ý—ΜÉï½SÝl°wï"'Xgñè†BTñù%<^Qs³Ð×w(›Äb%ñ‹dèTb Oòò*ùü’´´â§OÛñqX‘‘~ºŸ„²¯ ¢¶6 ñð£Î!„>ÿ|.±ÆÚšnkÛÓŸHÒ;r¹¢°°šË-¸pá¶PØ8œÅ`oóZÕèêêæ³g .\(~ø°‘ɼpḨ¨WWý‡õrbcÿ‡:th9ÙèZW—,'ç>¿øçŸËÄbi@À0'8*ÊßÊŠþâÆè¨Ä ÿzöLxþ|>kð`«ùóõ~Ö˰•˜ ‘HýõŸ_œž^*—+BB<##ýfÏöµ°0œ›å` ƒJ úŽŽ®ôô’´´’ììû&&´Y³|8œà×^s×÷qX/ *1¡­MrùržTª>›æÌ™Þ*s† _ ƒþ‡ÅçgdÜ‹¥†7ë¥A%V§<Áµ¹¹)̦ ôTb@>|VzzIcc›ÃziP‰»!ˆÒÓKSRò ª ³°°WX¬±¡¡^¤ÿN=•æÑ£g\n>Ÿ_òàAȃ-Xã°z*qOÔÕµ^¼øç׎ŽÖ~0›&ÐP‰®µ´ˆÎ+äó‹ «íì,çÌñçp‚|}‡’Wÿ•ø©©i¹|ùNJJ~YY­‹‹mx8̦ ú;¨Ä@GÄâ®´´’´´’œœ?Œ©0«ç ¿|6Íóç‹*+›ÜÜìX¬± ¼êî³i‚~*1è[†]¿þ0%%?#ãnGGgh¨ŒÃú§ ÿKê\Ãlš _J úÊ;ONŸÎ»x±´¾¾58x‡ákÀ3Cõ¨Ä½Ee‚k'ˆÍrtdè ƒ^VSÓræL>køpûyó£¢à’à¿•¸w)OpÝÒ"ÂgÓŒŠò<ØŠìÐÀ•ôŽöv w;%%¿°°zÐ ‹¨¨‡Õ[ ÷b‚kïvGGW@À0kìܹƒÁ• SP‰Á¿"•Êþ¹ŒË-¸ví*Õhöl_‡Õë ÷5b‚ëK—ʤR9>›æ¬Y¾†ôÓ“ ?ƒJ ^1+3ów‘Hã°úTbQžàðI“<"#ý"#ýÌÌLÈ 2¨ÄàŸ©¨xúÓOyçÏÖÕµ`±Æ²X~0æ¥OA%Ö=å ®ÍÌŒgÌð†Ù4AßJ zäéÓö””¼””bÖœ9þ£F9’×€•˜D­­™™NpmaAŸ>fÓ½*1èŽPØ™šZ„òµµˆŽ†qX$€JÜ´´ˆ.^üs‚k[[óÙ³}Ùì ˜Mô ¨Ä@©Tž}ŸË-Èȸã°H•¸_!&¸Îϯrv¶™5ËfÓÿTbð Ãòó«¸Ü‚´´¡Pêé7s¦µ5ìÐ4¨ÄýSMMË… ·ÏœÉø°qèÐAsæøÏŸ ·lÀK€J B¨²²)9ùWT[+€qXý Tâ~Ny‚k|6͹sGŒLv\@o@%КšÚy¼Û\nAii >‹Åëá1„ì¸Àß@%ÖxIær =z†—d'ØÍÍŽì¸@•x ‰:/^,år nÞ,·±1Ž`±ü‚‚FÁØ“þ*±~!fÓäóo77 ñÙ4çÌñwp€Ù4fP‰™Lqõê=.· 3ó.…B‰ˆðe±Æ†„xš˜ÐÈ t*±žRžàZ èÀgÓŒ‰ °³³$;4п@%òò*¹Ü‚ôôÒ¶6ñÔ©0KÏ@%Öwr¹âæÍò””üË—ïtvÊ`6M *±!«®n>{¶€Ç»]^þÔ×w(›é7dŒÃÒ3P‰ Fg§ìÚµ?'¸–Éä“'{FFúEDø™›ÃlšTbÔÜ,LM-ÂÇa fÇfEFŽõô„qXú *±áÁ'¸ær ._¾C¥……½ÂfÁlšTbÃÑÑÑ•ž^‚Ãb0Ìbba–a€JlÀÚÚÄ—/ßÁ'¸677…Ù4&¨Äz‡ÅçgdÜ‘J0Ëð@%”'¸¶²2‹ˆ€Ù4¨Äz,/¯’Ï/IO/yú´m„QlvÐÌ™ÞÖÖfdÇzT⥡áyZZ Ÿ_\PP=dcöl_ËJ²aƒJ¬=zÆåæóù%4øø¸r8Á¾NN6dÇú TâéÉÁ¥Keø×®®¶3gúÌŸìããJv\ ÷A%Ö--¢sç ùüâÂÂjW×AŒÃ( p?ãó‹ñ ®ñ©»bb™L˜MÓp@%îïÄâ®´´’´´’œœ?,,LçÎ…qXTb€ÃgÓÜ+Á ))OBŽ Ùè“Õ«WÿË=ôÿ,U(Pe¥ðζû÷…R©bäH‹ñã1™dÇ^ŒÉd†……ýõSrúôiòa0¦[Yý?Í–ì@48}ú4ö¯‘}z†JeP©03Ú?3 ²”B¡ÒéL›p33O²c=Âáp”“MÃ¥NýJA K½ø=ŠÓ§OÏŸ?¿·öáÌ™3 ,è•]A–‚¾ žT0 @&¨Ä™ d‚J *1@&¨Ä™ ³S” >|Ù²eMMMʈD¢øøx???++«ààà/¾øB&“mG¥òU®Y³fQ(”òòr||A™P(Œ‹‹1b„™™Ù¨Q£$‰z0„¾:s%åååðã-}ª¯ÓŒ`ff6a„ââb$ªÁè»,½}û6FKII!žâñx&&&eee*Çe0‘‘‘UUU=Yý¬aç§aVb„ÐÍ›7ëëëkkk;ÖÖÖÐÚÚŠ?ÕÞÞ”ŸŸ¿sçÎÂÂÂ-[¶œÝ?UVVÚÛÛãË666›7oî£\Ÿ¦‘6¥¥¥£FZ°`A_×Õ õQ–úûûoݺuÆ øÞž?¾nݺ„„åãÖÕÕåää(Š%K–h‹P9^x"†™ŸÊÓ|àslýû¹iH‡zøð!ñP¡PLž<ù“O>ÁÆÅÅMš4I&“…ÂáÇ9ro¾uëVâÙãÇÏš5‹Ø§ÊÎq666¹¹¹ÄÜœ777Áô©‡öé+ˆzoŽ­^Ù¹t™f¡ÆÆFNŸêÓDí­ÿc¥/ÌÒÎÎNooïÕ«Wc¶fÍšÀÀÀ®®.Ç­­­E=þ\c*ù 1 &?1 ãp8*slýãÏÄ.\pqq¡ääd‘H„’J¥ñññŽŽŽñññR©ÿPŸ••åææ–àææ6xðàeË–ïÈÔ[!„ø|¾¯¯/Ng2™?þø#BH&“il®|Ý ›k eÍš5éééøÃ'N|òÉ'Tê_39[XXÄÇÇŸ8qÈápΜ9ƒýßç.—Ëf³»ïkkëƒ>{ö 8yòäG½DOj;SmÝËãñ<==6lØÐÙÙ9~üx„Ð!CT:¤µµõ7Þ°··wuu‹‹Ã¯œS(”“'Ozyy 4諯¾ê>Zƒ4SalllbbÂ`ü9çeZZš¿¿¿¹¹¹““Ó—_~I ò‚b–””ôÊ+¯X[[O:5-- ^c‡ü£×A–"dbbrüøñï¿ÿ~ÇŽÇŽ;~ü¸±±±Æãâ‡À¯{«g¯r>à222ÜÝÝmmmwìØñ¯‚þå§rYîá{ÉeË–-_¾¼¡¡ÁÑÑñÖ­[øÊ;wΛ7ïñãÇ¥¥¥~ø!þ¶bÖ¬Y¿üòKbbâ˜1cJKKËÊÊÆ§­•P(455MJJª¯¯?zô(F …»víÒØ¼µµ零ŒÔÞ=åççÛØØ`†¿`MMM*'uãÆ GGG¼íýû÷‡ rûöm|·æææÍÍͨÛÏÄ—/_vqq155>}ú®]»ª««‰§BÅÅÅí§­'µ©¶î1cƃrssÝÝÝ•ßÊ)//^¼xÚ´i¥¥¥ÞÞÞ‰‰‰x`l6[ 9r!ôìÙ³¾ôH‡Ÿ‰!͈´yòäɺuëV¬X來­ÍÄÄäÍ7߬­­Åÿc>}úÓô‚9rÄÅÅåçŸnjjÊÌÌtwwÇSB½C0JT]~&àYŠûðÃBÛ·oWé=<ÚÚÚÊËËç΄iÉ^õÏÄ‘‘‘mmmgÏžE577c”Ÿ˜¦ÏÄ/S‰«««¯¯/nôèÑõõõørffæØ±cñ(--Å0ÌÓÓóܹsø³¿ÿþ;±¬Þª¥¥ÅØØøë¯¿ …¢½½].—kk®ÍK$ßo¿ýfooO´}ûí··lÙ‚a؉'¦OŸ®¼O•Ã0™L–››ûé§Ÿz{{S©Ô“'OÁh{¤Þ“=ï(åîÅ0ìôéÓîî«‹J¥Þ¹s_îÜ9www<°«W¯âh;)õŽÕY%†4Sfiiùûï¿ã;éìì¼wïžP(”Ëå999ÊMT^Pooo"1 ;uêžê¢~DýMT]V➥†)Ѝ¨(*•ºdÉ•ãŒCBBˆ ÚêÙ«^‰³³³1 ÃoWkü‹ÐßüÄz«cöé§ŸR©Tå»Vt:]¹ƒ ~øm:^VV¦¾õV†]¿~Íf[XXLš4éâÅ‹Ý4×F½;N:ˆ/2$33S¥É·ß~;sæL¢mvv¶»»»B¡ˆŽŽ>tèÖm% …ÉÉÉĽ…B±mÛ6mÁ(SéÉžwÞ½b±ß ¤¤„N§kL ššå-KKKét:ØüÑ“ =ùßÔ=ܤÞJ$mܸqüøñÄ~x<ÞĉÇŽ»bÅ å&*/¨™™YII Ñ }­­C &Qu|Ÿx g)†a?þø#ƒÁÈÉÉ¡Óé©©©Ý— ž½ê•øÁƒ*û1˜üÄzå>1B¨¦¦fÿþýaaa7n$VÚÛÛ‚ÜÜ\|=~ÛÀÙÙ¹ºº_S\\üùçŸkk%‹ EJJJKKËÊ•+Y,VKK‹¶æ=„aØ·ß~?\¼xñ§Ÿ~J D‰D¢;w†‡‡k&NœØÞÞ~ýúõÌÌÌèèèîÑ¢EøØ}„…B™9s&ñM€n¨÷dÏ; _g BèÁƒÎÎÎâèèH¥R+++ñ‡..þÒ­‘Qÿ<iF077ã7îÞ½‹ÿ©‹ÅâùóçÇÇÇnܸwÞyGùmEBB‚¯¯oYYYYYÙ„ Þzë-m­Äb1Nçr¹MMM‡¦Óéb±X[ónn÷³³³£¢¢\]][[[ñgŸ?îééréÒ¥œ;wn̘1&LH$˜Ò›šuëÖyyy…††û$Þš© ¦Ç0lùòåiii7nÜ?~ü{ï½§ŒJ=ÙóŽÂ»744ôáÇyyy£Fúä“Oð•øíåþ_´hÑ´iÓ*++ËÊÊÆŒƒœDJoßP?ûL i¦òŠàÛÚÚ0  åÒ¥K"‘hÓ¦M¡¢¢"LÓ ºoß>WW×Ë—/777geeyzzR(‚P¢êì3ñÏR…B"—Ë1 ëêêòõõ]¸p¡ò6ê¦1{•óÓòŠL~b½ruhº´MnIDATzß¾}~~~øe–óçÏ;99µ´´`ÖÖÖ¶bÅ [[[;;»Õ«W‹D"åH$qqqÎÎÎ cáÂ…_¯Þ cäÈ‘&&&£GæñxÝ4×v_]ù­ÆÐ¡C/^¬òõ¡P¸qãFooossó1cÆlß¾½££C¥+³³³BPY¯ñÝŒL&KLLôõõ533>|øæÍ›‰‹ÚÞiìÉžw~¾ß}÷ݰaÃìííׯ_/‹¥Réĉ---U:¤¥¥eéÒ¥vvvNNNï¿ÿ>[®Äf*¯ˆ\.·¶¶®ªªÂîÞ½{РAC‡=xðàÂ… 0M/¨\.ß³gÏÈ‘# Fxx8Ç|X÷q€&++‹øÑPzQaaaoí ²ô…ÊÊJ&“ù·UÊÓ|àsÓÐÞšc €>Y ú3•9¶(p‰à>1@&¨Ä™ d‚J éÿ(N°ânšLvIEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMLSException_8hpp__dep__incl.png0000644000151400015140000001050411653571065020532 00000000000000‰PNG  IHDR£u­iÆåbKGDÿÿÿ ½§“ùIDATxœíyTWûÇoÔˆ(Ašê”âN$DßV…º¤€V±‚U©í‹(R-ZíQAP°P)ÊÞZŽ/XÀʾTˆå¸Z¶€hB!!óûãö7Æ0å…Ä—™Ï_÷>sï}¾s¿3w–BBà5U P„Óxp/NãuÙJQQQDD„ª¤Œ/yyy²ÕלîììÌÏÏwrrRª"‚ñæÙ³gõõõrAõá픢‡`¢(,,wî\ooopp°¬˜±íÈ[ÁãñvíÚ• ÐÒÒÚ¼y³’Žc\½©TêÌ™3i4Úûï¿ìØ1##£7nÀMW®\¡R©gΜYºt)ƒÁpppˆíèèÈÍÍ… ììì Ñ¡JJJ.\¨8ÝÝ»wwîÜinnN¥Rmmmƒƒƒ‹‹‹åÄÈ2¶©TÚÓÓËÚÚÚþþþ”h"‡ë4‰DZ·n]YY¬æååùúúÂÓB¡P6mÚ„¾œsrr*,,D?/**Z¹r¥âšššYYYè,ÛÚÚ¦¦¦*îRRRâååÕÛÛ ¸}û¶X,JHHظq£‡‡Ç‰'„B!l,‘Hbcc======ccc%I[[“É,..öñññôô<þüàààîÝ»ëׯÀ°»P(üöÛoÝÝݽ½½cbbL&3??ßÏÏoݺu?ýô¦Èªª*‹µvíÚäädtL¹¤˜AÅûŽÉøÜ‘1Œööv€P(äóùèÊŒbffÖÜÜ ËÖÖÖýýý‘HTSS³|ùrÅãs8œšš///‡“ššÚÙÙ)»U,÷¿àƒ>°³³‹ŽŽÑÑÑ_ý5…BIKK»sçΉ'¾ÿþû–––¤¤$8BZZÇ»xñâéÓ§kjj`<++ëĉÇ///¿víÚ… ròΞ=ÛÕÕYYY™’’ãwïÞŽŽ¸xñ"<æä(//‹‹;xð`||ûlîܹsæÌ ±²²‚-sss÷îÝ«¯¯?wîÜ€€€ŠŠ  d0–––;vìûÀE"‘üöÛoAAAFFFsçÎݶmÚÒÃÃCKKËÍÍ €)ËÆ555W¬X@̤o¢D1c¼#“£µµÕØØ ¥¥5sæÌ††;;;Ù hÕÉÉéÔ©SÛ·o“¥[,—””899YZZZZZúøø$&&ÆÆÆ:;;Ã#ÝÁjii}üñÇ?þøãéÓ§a¤³³“Á`À²©©©©©),wttlذí8mÚ4X@›˜˜tuuaÊR©î>€N§£-i4@]}ÄIÖÕÕÈ>†Œ”ôM”(fÎiArrrìííaÕÅÅåÊ•+è ‹Å)))K—.E#666}}}\.·ªª ъLjˆhjj‚U‰´dÉ’¡¡¡Q…={ö,33ÓÎήº]]ÝŽŽXnhh@Wommí¤¤¤‚‚‚‚‚‚ŸþmßÚÚ ---Еáèè訩©ñxùä¸ÉÏÏO ìß¿¿¢¢¢µµõ÷ß ¤Ñhîîª©9::ž9sÆÒÒRöA\vp”©S§®ZµêèÑ£eee<ïÏ?ÿŒ‰‰AOèáíù|>A“'O®_¿>44´ººº¤¤°jÕªøøø'OžRº¸¸Œ4o7oÞ‰DŠç3)fð­ãê½gÏXÐ××·µµ½téºâijj^ºt)!!!66¶½½ÝÈÈÈÙÙÙÛÛ[CCCv&“™íéé©`pHAAÁÁƒ¯^½×ÖÖ¦££Ãd2·nÝ:R{Ø%++«»»{óæÍêêêûöí;sæŒ ‹Å‹ÅG,ÛÛÛÀöÛ·oŠŠÚ¹s'‰Drtt xþü9ÀÅÅåÀb±¾«!“É6666løõ×_eÓíÝ»7**j×®]~ø!‹ÅiÞ¾ûî»… ¢s…‰\R¸VËt ’ì__¿~}ãÆJxÁôîóß¿¯¤cP?Ÿ–ûûnâ½7^ œÆfÚ´ik×®}’Ž—Âil¨Têþýûß…¤ã¥„p/NãÂi¼@8§ñ~ðà…ª%¨Œ·¡l6[ù:”†DBæëéÝSµ D  ¾æô¬Y³¼½½•¥G5´´Lölº±±…"Qµ– DîSc ÷ÞØÛG47¿Ø¿ßÍ^­j-J_×éúúöææ€7*U­EÙàËéôô* 2 ¥…ï^³ªå(9-•"©©•ƒƒCuurVVª)9]^ÞÄç£ö;”–V54$UÜe2#§33kÔÕ_í/Ÿ/*-mT¡%ƒ§‡²²j$’W'±º:93³Z…’” ^œ.*z(¾”H$C99µ“ù©Z¼8‘QM&ËÿÉm_Ÿ¸ àJô(\8-½ÌÍ­~ÿ¥¦¦–žŽ—Nçç×Ç+9††¤ÿùÏ}‘èåðM“\8™Y=Ò;ßI^ÞŸÊ•£&¿Ó==ý¼ÞÏÌÄÅ+”Éÿ ÇË—’ŽŽ¿Ñj~~}hhFié¿Ñ™¬Æ`è¨BšRŸïZ¾ËL™¢njúê+kzzÓ²œ0ùWoá4^ œÆ „Óxp/NãÂi¼@8§ñá4^ œÆ „Óxp/NãÂi¼@8§ñá4^ œÆ „Óxp/NãÂi¼@8§ñá4^ œÆ „Óxp/NãÂi¼@8^û¦|SSS~~¾ª¤(‡û÷{—.]Rµ Çßßÿµ:"CjjªŠT)5µ)úªV¡ ×Áøï“þ?ŸLzà/Ñʉë4^ œÆ „Óxp/NãÂi¼0§I2Ìž=Û××·««K¶H$âp8 ,˜>}ú’%KŽ?.‘HÐ¾ææærrkÖ¬!‘H °,È" Ùlöœ9s¦Njnn&‹‡‹AÃN½- ÊI4^Œñœ.))áñx­­­ ===‹-êîz{{/^\YYY]]}èСäädWWס¡þïòÓ§OkkkÑ¡Á;w§ ª©©IOOonn¾|ùrvv6‡Ã‘#ËØvjTšššh4,S©Ô J4! G†ŒàñãÇhU*•:::>|VÙl¶ƒƒƒD"A…ÂÙ³gÇÅÅÁ¾«W¯þꫯЭ‰‰‰kÖ¬AÇ”B¥RËÊÊÐjQQ‘‰‰ ¦˜ åñãÇo2?*ÓÇq¸N“H¤]»vݼyV“’’>L&“ÑÓ¦Mãp8III°êíí}ýúuäÿð´´4///Å)f̘qáÂ…/þùYGGÇ¿þúKq—œœ:Ë3%%ÅÂÂB$I$’°°0===___täp8úúúgpp.ÎÙÙÙóæÍÓ××~ùò¥½½=ÀÐм¾zwwwoݺ•F£1 6› ¯,$)99ÙÒÒræÌ™'Ož”“‡©3)fPñ¾c3ê±00ì4ª¬¬¤R©‚À™íêê’ëR\\l``û>xðÀÐÐð?þ@¤»»[SSóùóç@á9}ëÖ-:>eÊWW×S§N=}úTV̽{÷z_nòõõõóóëèè000(//GäÔ©SVVVuuu\.wÙ²el6¶ŒŒŒÜ°aCsss]]Ý¢E‹¾üòKxú®ZµêÑ£GeeefffGŽ‘=§eË,ËÙÙ¹±±±®®ÎÚÚúÈ‘#P˜———@ ˆ‹‹¼xñBv0•(H*Tl¦Jrº´´”F£¡}?ÿüóC‡!’””äêê*;&¦Ó‚H$’²²²ððpkkk2™œœœŒŠéð ÃÖÖšyóæeddÀr}}=Zž?>ǃ弼¼… Âù­««CgÆÌÌ Óé2™|ÿþ}ÏÈÈ033ƒÂ `ƒá;…©DAR¹àÎ h›‰rúÚµkvvv°lhh˜——'×%&&ÆÍÍ í[XXhff&•J=<<.^¼ˆ(tZ(¦¤¤ ~©TJ§ÓG#Kxx8™Lîìì„U …Âår‡7£P(²ж¶6œßþþ~Ø ¶¶–B¡`:ÝÒÒ"Û²®®ŽB¡@a>I$¦Iå‚#í/d¢®Ó‚ÄÄÄ|ôÑG°Êb±ÂÃÃÑ;m€H$ŠŒŒ\½úÕ¯¯X±¢··÷îÝ»yyy£Ž¿eË.— «$ÉÍÍ }lS@KKKTT”‹‹Ë`ÄØØøéÓ§°|ïÞ½o¾ù–i4ê„@ (++ƒq8Ë€Gcf100 “ÉMMM°ÚØØH§ÓaYMmÄéIÉHIßDÉ(Œz, Ȇ™ó-ÇÅÅÁ‰ÂT¢ ©\p çôF™5k‹ÅB—GˆP(¢££‡;=üX”H$Gޱµµ:uêìÙ³CBBÐÕl¤Ã÷üùó ,@$33ÓÈȈÏç‹Åb6›mll¬­­½yóf@éééÙ¶m›ŽŽŽ®®®¿¿¿H$‚óojjJ£Ñ‚‚‚úûûW¬X¡¥¥%ç4ŸÏ÷ññÑÕÕ522Ú·oÔ†é4ZÀT‚™3¨$§ñ€J1“ŽAÉD]§ þ' œÆfÆŒïBÒqS2êYOð?±zãÂi¼@8§ñá4^Àø¾³4¹©®®Æˆ¿;'˜È=eMþߟ&€×i¼@8§ñá4^ø?ê åu+µÄIEND®B`‚XQilla-2.3.0/docs/dom3-api/namespacemembers.html0000644000151400015140000000463211653571065016377 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
Here is a list of all namespace members with links to the namespace documentation for each member:
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMXPathResult-members.html0000644000151400015140000002456111653571065022351 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMXPathResult Member List

This is the complete list of members for xercesc::DOMXPathResult, including all inherited members.
ANY_TYPE enum valuexercesc::DOMXPathResult
ANY_UNORDERED_NODE_TYPE enum valuexercesc::DOMXPathResult
BOOLEAN_TYPE enum valuexercesc::DOMXPathResult
DOMXPathResult()xercesc::DOMXPathResult [inline, protected]
FIRST_ORDERED_NODE_TYPE enum valuexercesc::DOMXPathResult
FIRST_RESULT_TYPE enum valuexercesc::DOMXPathResult
getBooleanValue() const =0xercesc::DOMXPathResult [pure virtual]
getIntegerValue() const =0xercesc::DOMXPathResult [pure virtual]
getInvalidIteratorState() const =0xercesc::DOMXPathResult [pure virtual]
getNodeValue() const =0xercesc::DOMXPathResult [pure virtual]
getNumberValue() const =0xercesc::DOMXPathResult [pure virtual]
getResultType() const =0xercesc::DOMXPathResult [pure virtual]
getSnapshotLength() const =0xercesc::DOMXPathResult [pure virtual]
getStringValue() const =0xercesc::DOMXPathResult [pure virtual]
getTypeInfo() const =0xercesc::DOMXPathResult [pure virtual]
isNode() const =0xercesc::DOMXPathResult [pure virtual]
iterateNext()=0xercesc::DOMXPathResult [pure virtual]
ITERATOR_RESULT_TYPE enum valuexercesc::DOMXPathResult
NUMBER_TYPE enum valuexercesc::DOMXPathResult
ORDERED_NODE_ITERATOR_TYPE enum valuexercesc::DOMXPathResult
ORDERED_NODE_SNAPSHOT_TYPE enum valuexercesc::DOMXPathResult
release()=0xercesc::DOMXPathResult [pure virtual]
ResultType enum namexercesc::DOMXPathResult
SNAPSHOT_RESULT_TYPE enum valuexercesc::DOMXPathResult
snapshotItem(XMLSize_t index)=0xercesc::DOMXPathResult [pure virtual]
STRING_TYPE enum valuexercesc::DOMXPathResult
UNORDERED_NODE_ITERATOR_TYPE enum valuexercesc::DOMXPathResult
UNORDERED_NODE_SNAPSHOT_TYPE enum valuexercesc::DOMXPathResult
~DOMXPathResult()xercesc::DOMXPathResult [inline, virtual]
XQilla-2.3.0/docs/dom3-api/inherit_graph_3.md50000644000151400015140000000004011653571065015643 000000000000006a6b9dca6d1746777723fa972e3bb187XQilla-2.3.0/docs/dom3-api/classXQillaNSResolver-members.html0000644000151400015140000000744711653571065020732 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

XQillaNSResolver Member List

This is the complete list of members for XQillaNSResolver, including all inherited members.
addNamespaceBinding(const XMLCh *prefix, const XMLCh *uri)=0XQillaNSResolver [pure virtual]
DOMXPathNSResolver()xercesc::DOMXPathNSResolver [inline, protected]
lookupNamespaceURI(const XMLCh *prefix) const =0XQillaNSResolver [pure virtual]
lookupPrefix(const XMLCh *uri) const =0XQillaNSResolver [pure virtual]
release()=0XQillaNSResolver [pure virtual]
XQillaNSResolver()XQillaNSResolver [inline, protected]
~DOMXPathNSResolver()xercesc::DOMXPathNSResolver [inline, virtual]
XQilla-2.3.0/docs/dom3-api/dom-resolver_8cpp-example.html0000644000151400015140000002553311653571065020074 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

dom-resolver.cpp

This example shows an example of running multiple queries, using a DOMXPathNSResolver to resolve namespaces.

/*
 * Copyright (c) 2001, 2008,
 *     DecisionSoft Limited. All rights reserved.
 * Copyright (c) 2004, 2011,
 *     Oracle and/or its affiliates. All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#include <iostream>

#include <xercesc/dom/DOM.hpp>
#include <xercesc/framework/StdOutFormatTarget.hpp>

#include <xqilla/xqilla-dom3.hpp>

XERCES_CPP_NAMESPACE_USE;
using namespace std;

int main(int argc, char *argv[])
{
  if(argc != 2) {
    cerr << "Data file not specified." << endl;
    return 1;
  }

  // Initialise XQilla //

  // 1. Initialize XQilla
  //
  // Note that this initialisation takes care of initialising
  // xerces-c as well
  try {
    
    XQillaPlatformUtils::initialize();
    
  } catch (const XMLException& eXerces) {
    cerr << "Error during Xerces-C initialisation.\n"
              << "Xerces exception message: "
              << UTF8(eXerces.getMessage()) << endl;
    return 1;
  }

  try {

    // 2. Obtain a DOM3 XPath2 implementation.  This is a XQilla-specific 
    //    implementation that overrides the standard DOMDocument, the standard 
    //    DOMWriter and the standard DOMBuilder
    DOMImplementation* xqillaImplementation = 
      DOMImplementationRegistry::getDOMImplementation(X("XPath2 3.0"));

    // 3. Obtain a parser and set 'do namespaces', 'use schema' and 'validate' to 
    //    true.
    // Create a DOMLSParser object
    AutoRelease<DOMLSParser> parser(xqillaImplementation->createLSParser(DOMImplementationLS::MODE_SYNCHRONOUS, 0));
    parser->getDomConfig()->setParameter(XMLUni::fgDOMNamespaces, true);
    parser->getDomConfig()->setParameter(XMLUni::fgXercesSchema, true);
    parser->getDomConfig()->setParameter(XMLUni::fgDOMValidateIfSchema, true);

    // Parse our XML document //
  
    DOMDocument *document = parser->parseURI(argv[1]);
    if(document == 0) {
      cerr << "Document not found: " << argv[1] << endl;
      return 1;
    }

    // Create a parsed expression //
    // (compiled) and evaluate it //


    // 1. Create a Namespace Resolver.  This holds a map of namespace prefixes 
    //    to namespace URIs.
    AutoRelease<DOMXPathNSResolver> resolver(document->createNSResolver(document->getDocumentElement()));
    resolver->addNamespaceBinding(X("my"), X("http://example.com/myURI"));
  
    // **************** Example 1: max() function ****************** //

    {  
      // 2. Create a parsed expression
      const char* expression = "max(/Catalogue/Book/Price)";
      AutoRelease<DOMXPathExpression> parsedExpression(document->createExpression(X(expression), resolver));

      // 3. Evaluate the expression. We choose to have a first result, since we
      //    know the answer will have only one item. Could also choose
      //    XPath2Result::SNAPSHOT_RESULT and XPath2Result::ITERATOR_RESULT
      AutoRelease<DOMXPathResult> firstResult(parsedExpression->evaluate(document->getDocumentElement(), DOMXPathResult::FIRST_RESULT_TYPE, 0));

      // 4. Work with the result: output it to the screen in this case
      cout << "The answer for expression '" << expression << "' is: " << firstResult->getNumberValue() << endl;
    }

    // **************** Example 2: output of nodes ****************** //

    {
      // 2. Create a parsed expression
      const char* expression2 = "//Magazine";
      AutoRelease<DOMXPathExpression> parsedExpression(document->createExpression(X(expression2), resolver));

      // 3. Evaluate the expression. We choose to have an iterator result
      AutoRelease<DOMXPathResult> iteratorResult(parsedExpression->evaluate(document->getDocumentElement(), DOMXPathResult::ITERATOR_RESULT_TYPE, 0));

      // 4. Work with the result: output it to the screen in this case
  
      // Create a DOMLSSerializer to output the nodes
      AutoRelease<DOMLSSerializer> serializer(xqillaImplementation->createLSSerializer());
      AutoRelease<DOMLSOutput> output(xqillaImplementation->createLSOutput());
      StdOutFormatTarget target;
      output->setByteStream(&target);

      cout << "The answer for expression '" << expression2 << "' is: " <<endl;

      int i = 0;
      while(iteratorResult->iterateNext()) {
        if(iteratorResult->isNode()) {
          cout << "Node " << i++ << ": "<< flush;
          serializer->write(iteratorResult->getNodeValue(), output);
          cout << endl;
        } else {
          cerr << "Expected a node but received an atomic value!"<< endl;
        }
      }
    }

  }
  catch(DOMException &e) {
    cerr << "DOMException: " << UTF8(e.getMessage()) << endl;
    return 1;
  }

  // Terminate //

  XQillaPlatformUtils::terminate();
  
  return 0;
}
XQilla-2.3.0/docs/dom3-api/inherit_graph_25.png0000644000151400015140000000374111653571066016042 00000000000000‰PNG  IHDR(kCoGbKGDÿÿÿ ½§“–IDATxœíškLKÇgåb)J¹ß$\„¢ ÑÐHcŒ$¶‚AÁkÐøJÄD P¨Ñ(¢Äh"ÅX †‹¢iÐJP1D,m¸($¢`*»µŠ@;çÃäÝ·n[ŽG+ž³Ùß§™göÿìÌü;;»ÝÅ „€†r,ùÓ ù-оRÚWjBûJMIõªªª®®®?Òš_A,›WɾÊåòááá”””EìÍ/1>>ÞÓÓC ’}¤¤¤ˆD¢Eé‰DÙÙÙ¤ ½¿RÚWjBûJMh_© í+5¡¬¯˜!!!yyyJ¥Òü½^Ïçóããã—/_¾aÆӧOÏÏÏÚˆˆÒ‡ƒaØèè()¹‹‹KjjªT*]´¡ý”õðüùs…B111qãÆ F“˜˜¨V«Q“V«]¿~}ooouuõ«W¯JKK…B!›Í6耱±±þþ~"Žã¤¿kPr…B!“É"""²³³ÿ]oÆà÷ðx<ÿûFFFˆªÉdÚ¸qcYYª§§§ÏÏÏètºúúz¤ÍÌÌþÌzmmm ÀqpûöíÕ«WëõzÀÜÜŸÏ÷ñññööæóùsss£££†uvvK$’òòòàà`//¯¼¼|ÿþ}Tmhh(++spp puuåóù ¨ÊãñD"üßljjâr¹¶&ÄÉÉÉÙÙ™Åb¡j{{ûÚµk™L¦ŸŸß™3gˆ…Âèèh³gÏ „uuukÖ¬qssÛ²eK{{;ê¼Õ ùÇ|þÁõš——·gÏžOŸ>ùøø¼|ù«««wîÜùáÙL–˜˜xüøñ‘‘‡ÃyüøqEEELLŒL&“ËåIIIÅÅŶT:néÒ¥uuu …âúõ뎎Ž:îܹsVåjµ-2R|¿¤ „½½½+V¬€¢_¤R©$ êÙ³g>>>H;<<ìëëûúõk”–ÉdNMM³õ*•JµZ­V«ýøñcaaa~~>J¢Ñhœ &&&ЯäóçÏHÂårq¯¯¯|ùò¥¾¾> àáÇJ¥R,‡‡‡#;,'da/¬®×ŸôÇñÀÀÀ¸¸¸ŠŠ "¥P(PY,'$$ _e2„022²¹¹µeK•J¥rrr:þ<Žã&“I«ÕF[r[ü„¯/^¼ðôô$´GŽ)--…644°Ùl󜤵±lÙ²ÁÁA”äÛ·oCCC:Îh4>}úÔ\òäÉáìì, ÆÆÆ …BâìÈË Yx¤öôBXYYéàà`¾©0 óѲX,äëìì,j•Ëå–y,UÂîîn.—ëêêšžžþàÁƒä¶°ôµ±±qݺu¨ìëë+‹I’+W®lݺ•ÐJ$’ððp“É”••uõêUø½¯Dr½^_TT”œœLäiiiIKKKHHÈÏÏ7—¼yóƼo...ýýý„ ÝQÛš°Ûþ ¿téRFFFQQôôô$F‹ã8ñ’ÁÉÉ àïï?66†"R©ôÔ©S¶TƒÁd2ݽ{W¥RíÛ·oûöí*•Ê–üA¶mÛ¶ Usss+++‰»_€^¯¯®®ÎÌÌ$"iiiZ­¶»»[,geeÙÊÌd2÷îÝ;00€ 3 »víâóù}}}µµµæG.YòÝl¯Zµj``€¨ Ùš4ÒÿØœY¯F£1##£ªªJ¥Rùúú¶¶¶¢ø±cǸ\.zBHJJ:zô(Z¯¨µ¼¼<..N.—ËåòÔÔÔØR ƒÑÔÔ¤T*¯]»Æ`0 ƒ-ùû+ñœ#‘HvìØ¨V«Qëׯ_###7mÚÔÑÑñöíÛæææ˜˜˜ÔÔÔ™™h¶ £££7oÞLä´z?üþý{€F£AN`ÖÑÑ¡×ëKJJ}}}$ *×ÔÔ>zôhjjª³³322Ã0«²°v»×ÔÔÄÇÇ£«ë½{÷üüüT*„P£Ñäçç»»»¯\¹òàÁƒz½ÞÜ×™™™ââb‹•““ƒã8Š[ªP_Ü£¢¢ZZZ›ŸÂ¼lþÛ ÊÍÍ%=‡ètº¢¢¢ØØX&“#¦§§ÍçB(‘H—/_&ÅI¾F77·wïÞ¡ê… <<<‚‚‚jkksrr¼½½¡5_FãÅ‹ÃÂÂX,VfffKK‹———­ Y;ï¯4¿H[[›T*%ªMMM{‹d{î¯4¿ŽL&Û½{w__ßôôtOOÏÉ“'÷ïßo¯äV¾— YJJJ¦§§³²²”JehhhAAÁ¡C‡ì•œöõáèè(ÁïHN_‡© í+5¡}¥&´¯Ô„ö•šÐ¾R+Ï9]]]l6{ñ»Bós ¯5H}MNN^”ÎÐØ ww÷¨¨(Rƒÿª¯­h콿RÚWjBûJMh_©É_›¯Tq ö”IEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMXPathNSResolver_8hpp.html0000644000151400015140000000657111653571066017403 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMXPathNSResolver.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
Include dependency graph for DOMXPathNSResolver.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMXPathNSResolver
 The DOMXPathNSResolver interface permit prefix strings in the expression to be properly bound to namespaceURI strings. More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/inherit_graph_28.map0000644000151400015140000000036211653571066016032 00000000000000 XQilla-2.3.0/docs/dom3-api/functions_0x70.html0000644000151400015140000002055011653571065015653 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- p -

XQilla-2.3.0/docs/dom3-api/DOMNode_8hpp.html0000644000151400015140000001576211653571066015263 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMNode.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
Include dependency graph for DOMNode.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMNode
 The DOMNode interface is the primary datatype for the entire Document Object Model. More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


Defines

#define GET_OWNER_DOCUMENT(ptr)   ((DOMDocumentImpl*)(ptr->getOwnerDocument()))
#define GET_DIRECT_MM(ptr)   (ptr ? ((DOMDocumentImpl*)ptr)->getMemoryManager() : XMLPlatformUtils::fgMemoryManager)
#define GET_INDIRECT_MM(ptr)
#define GetDOMNodeMemoryManager   GET_INDIRECT_MM(this)

Define Documentation

#define GET_DIRECT_MM (   ptr)    (ptr ? ((DOMDocumentImpl*)ptr)->getMemoryManager() : XMLPlatformUtils::fgMemoryManager)
#define GET_INDIRECT_MM (   ptr)
Value:
(!ptr ? XMLPlatformUtils::fgMemoryManager :                              \
        GET_OWNER_DOCUMENT(ptr) ? GET_OWNER_DOCUMENT(ptr)->getMemoryManager() : \
        XMLPlatformUtils::fgMemoryManager)
#define GET_OWNER_DOCUMENT (   ptr)    ((DOMDocumentImpl*)(ptr->getOwnerDocument()))
#define GetDOMNodeMemoryManager   GET_INDIRECT_MM(this)
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMDocumentFragment__inherit__graph.map0000644000151400015140000000033211653571066024741 00000000000000 XQilla-2.3.0/docs/dom3-api/inherit_graph_35.map0000644000151400015140000000024711653571066016032 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMDocumentRange_8hpp__incl.map0000644000151400015140000000003511653571065020070 00000000000000 XQilla-2.3.0/docs/dom3-api/functions_0x6f.html0000644000151400015140000001703111653571065015740 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo XQilla-2.3.0/docs/dom3-api/DOMNodeIterator_8hpp.html0000644000151400015140000001007011653571066016760 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMNodeIterator.hpp File Reference

#include <xercesc/dom/DOMNodeFilter.hpp>
#include <xercesc/dom/DOMNode.hpp>
Include dependency graph for DOMNodeIterator.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMNodeIterator
 DOMNodeIterators are used to step through a set of nodes, e.g. More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


Defines

#define GetDOMNodeIteratorMemoryManager   GET_DIRECT_MM(fDocument)

Define Documentation

#define GetDOMNodeIteratorMemoryManager   GET_DIRECT_MM(fDocument)
XQilla-2.3.0/docs/dom3-api/inherit_graph_40.png0000644000151400015140000000476111653571066016042 00000000000000‰PNG  IHDR(x±xšbKGDÿÿÿ ½§“ ¦IDATxœíœiHT]ÇÏ8fcZ¢ÎŒ»i®©˜¨¡˜)EA.LVf‘”T®d. ¡%}Ũ©”ÔL*-Ê Sg& WÄÔÁÌFÍmÖû~8¼w¦;w&5ë}ÏïÓ½ç>ó<Çÿ½ÿ³Ì"Ã0€@ èluˆ?äBò¡ùP «|ÒÒÒ’››»U]A ´‹ÅÊÈÈÀOòÃÔÔTSSSDD„Ö{…@lmmmÆÆÆÊ-ºªAUUUÚ걕DFFZÐþP€ü€@(@~@  ?  köCOO®®î³gÏ𖺺:===>ŸOSRRöíÛghhèëë›——'•JCCC …ô@3999 %??oYk†?„ŠŠ ½½½Zî ©nkó7•ÿs¤ ‚)QYYIh!%##ÃÜÜ\(b6;;kii™›› /ÍÏÏ»ºº²X¬W¯^õ÷÷?þÜÍÍ-88X*•NOO§¦¦b688«àËånnn¶¶¶^^^xãš2¬†ááaSSÓßÏ£™¥¥%@ Z[[‚‹Å›]š©nø Zw†Õ³>)VVVètúº‹ª¡Ü²?ˆD"¸¸8 Ã.]º´ÿ~üÏHJJ:xð T*Ńìì슋‹ñ–5=Í\.—B¡466úûûבa5lTž?³Üft@ËÊÏÍÍ•––†„„l¬nª~XÏþAOOÃá}o„~øöí!¸µµ•N§kðƒH$úüùó‚L&kii bÖÞÞ®«« ~øðÀçóI3ˆÅb*•úñãGX±¦¦ÆÑÑÑÅÅ¥¦¦¶|úô “ÖRš4 àñx°qyyùñãǾ¾¾ÞÞÞ%%%?~üXh8¤ž¼²²ÒÑё𒉉‰¬¬,kkëcÇŽ544Èd²_æÇººº xÜØØèåå¥ZÑÞÞžà‡ææf¨”ÈÙÙ™Ãáà%=zƒµ)…†ÅÕšôÁÙ0?}šŸŸÏf³5$\^^ŽŒŒLNNîîî.**‚2™¬²²²°°ðǿܸq£²²#ûÁ·™™•J§ÃÃÃVVV–––£££°¥··÷öíÛêjý2<†Û$ƒáææÖÚÚúþý{|OòûÀ› €«U¦¦¦úúúÆÇÇ}||ôõõ5'Ä7upr†÷[(¶··«Vܽ{7áå::?=vvv\.?íëë[*)kÒ‡es¬f~ËåG ‚S’X,öôôd³ÙðêÜÜœ‹‹KppðëׯûûûoÞ¼ `2™"‘HÃü  )J}}=üìÐÝÝÝÜÜL¥R§¦¦ðÒ]]]ðé sêÔ©‘‘>Ÿïîîž™™™••åééÉçóù|~@@ÀÅ‹ÕÕ‚yð¹^5•êÈÄçóãããétú… ººº~9)C:(vvv:99eff*ÇËd²†††'NXYYeffNLLà—4ì𘄄„ðððÑÑQ.—ëççwåÊŠWÌËË#̸…àñ½{÷˜Lfmm­@ ¨¯¯ß³g¬5)ÔÍôÑ̬—8ÎöíÛñÉðÎÎNêêjxº°°˜˜èááA£ÑÒÓÓƒ‚‚¢¢¢4¯— MLLlllŠŠŠØl6“ÉŒ S.-—ËRSSI3|ÿþýÌ™3¦¦¦ׯ__^^^YYIJJ²´´422b³ÙðÒZ‰$00ÐÐÐP]*uwB(:88ŒŽŽjÖMÒ‡àþýû»wï¦ÓéW¯^Å êêjÿòòr‘H¤!•º·¡çççcccMMMãââa@EE…“ÉLLLT°02?H¥Ò‚‚GGGƒÀIFËR¨» ôÑŒª(˜Òò£ªª*** Ûèÿ@#‹»»»á{šÿIär¹\.×Õ%ù1ÉjrrrÒ »D"Á?8›-)ëÖþþAù?ëì÷šÐÓÓû› ££CXmo,‹ÀæKAÊê£ ?üQ÷É#éÈ·k×®øøøMîÑ–ñwIü°)¬iÆg2™ÅÅÅ›×™­åï’}ßP€ü€@(@~@  ?  È„’÷[CCCµßBûðù|‹¥Üò“lllÐ?oEü`±X„oNP6üÛJÄß Ú?  È„äBÁ?a‘vYŸlIEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMCDATASection_8hpp_source.html0000644000151400015140000002040411653571065020103 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMCDATASection.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  * 
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  * 
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMCDATASection.hpp 527149 2007-04-10 14:56:39Z amassari $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMCDATASECTION_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMCDATASECTION_HPP
00024 
00025 #include <xercesc/util/XercesDefs.hpp>
00026 #include <xercesc/dom/DOMText.hpp>
00027 
00028 XERCES_CPP_NAMESPACE_BEGIN
00029 
00030 
00065 class CDOM_EXPORT DOMCDATASection: public DOMText {
00066 protected:
00067     // -----------------------------------------------------------------------
00068     //  Hidden constructors
00069     // -----------------------------------------------------------------------
00072     DOMCDATASection() {}
00073     DOMCDATASection(const DOMCDATASection &other) : DOMText(other) {}
00075 
00076 private:
00077     // -----------------------------------------------------------------------
00078     // Unimplemented constructors and operators
00079     // -----------------------------------------------------------------------
00082     DOMCDATASection & operator = (const DOMCDATASection &);
00084 
00085 public:
00086     // -----------------------------------------------------------------------
00087     //  All constructors are hidden, just the destructor is available
00088     // -----------------------------------------------------------------------
00095     virtual ~DOMCDATASection() {};
00097 
00098 };
00099 
00100 XERCES_CPP_NAMESPACE_END
00101 
00102 #endif
00103 
00104 
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMNodeList.html0000644000151400015140000002210611653571065020210 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMNodeList Class Reference

The DOMNodeList interface provides the abstraction of an ordered collection of nodes. More...

#include <DOMNodeList.hpp>

List of all members.

Public Member Functions

Destructor
virtual ~DOMNodeList ()
 Destructor.
Functions introduced in DOM Level 1
virtual DOMNodeitem (XMLSize_t index) const =0
 Returns the index item in the collection.
virtual XMLSize_t getLength () const =0
 Returns the number of nodes in the list.

Protected Member Functions

Hidden constructors
 DOMNodeList ()

Detailed Description

The DOMNodeList interface provides the abstraction of an ordered collection of nodes.

DOMNodeLists are created by DOMDocument::getElementsByTagName(), DOMNode::getChildNodes(),

The items in the DOMNodeList are accessible via an integral index, starting from 0.

DOMNodeLists are "live", in that any changes to the document tree are immediately reflected in any DOMNodeLists that may have been created for that tree.


Constructor & Destructor Documentation

xercesc::DOMNodeList::DOMNodeList ( ) [inline, protected]
virtual xercesc::DOMNodeList::~DOMNodeList ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual XMLSize_t xercesc::DOMNodeList::getLength ( ) const [pure virtual]

Returns the number of nodes in the list.

The range of valid child node indices is 0 to length-1 inclusive.

Since:
DOM Level 1
virtual DOMNode* xercesc::DOMNodeList::item ( XMLSize_t  index) const [pure virtual]

Returns the index item in the collection.

If index is greater than or equal to the number of nodes in the list, this returns null.

Parameters:
indexIndex into the collection.
Returns:
The node at the indexth position in the DOMNodeList, or null if that is not a valid index.
Since:
DOM Level 1

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/DOMImplementation_8hpp_source.html0000644000151400015140000003336711653571065020743 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMImplementation.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMImplementation.hpp 671894 2008-06-26 13:29:21Z borisk $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMIMPLEMENTATION_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMIMPLEMENTATION_HPP
00024 
00025 #include <xercesc/dom/DOMImplementationLS.hpp>
00026 #include <xercesc/dom/DOMException.hpp>
00027 #include <xercesc/dom/DOMLSException.hpp>
00028 #include <xercesc/dom/DOMRangeException.hpp>
00029 #include <xercesc/util/PlatformUtils.hpp>
00030 
00031 XERCES_CPP_NAMESPACE_BEGIN
00032 
00033 
00034 class DOMDocument;
00035 class DOMDocumentType;
00036 
00043 class CDOM_EXPORT DOMImplementation : public DOMImplementationLS
00044 {
00045 protected:
00046     // -----------------------------------------------------------------------
00047     //  Hidden constructors
00048     // -----------------------------------------------------------------------
00051         DOMImplementation() {};                                      // no plain constructor
00053 
00054 private:
00055     // -----------------------------------------------------------------------
00056     // Unimplemented constructors and operators
00057     // -----------------------------------------------------------------------
00060         DOMImplementation(const DOMImplementation &);   // no copy construtor.
00061         DOMImplementation & operator = (const DOMImplementation &);  // No Assignment
00063 
00064 
00065 public:
00066     // -----------------------------------------------------------------------
00067     //  All constructors are hidden, just the destructor is available
00068     // -----------------------------------------------------------------------
00075     virtual ~DOMImplementation() {};
00077 
00078     // -----------------------------------------------------------------------
00079     // Virtual DOMImplementation interface
00080     // -----------------------------------------------------------------------
00099     virtual bool  hasFeature(const XMLCh *feature,  const XMLCh *version) const = 0;
00101 
00102     // -----------------------------------------------------------------------
00103     // Functions introduced in DOM Level 2
00104     // -----------------------------------------------------------------------
00132     virtual  DOMDocumentType *createDocumentType(const XMLCh *qualifiedName,
00133                                                  const XMLCh *publicId,
00134                                                  const XMLCh *systemId) = 0;
00135 
00174     virtual DOMDocument *createDocument(const XMLCh *namespaceURI,
00175                                         const XMLCh *qualifiedName,
00176                                         DOMDocumentType *doctype,
00177                                         MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager) = 0;
00178 
00180     // -----------------------------------------------------------------------
00181     // Functions introduced in DOM Level 3
00182     // -----------------------------------------------------------------------
00200     virtual void* getFeature(const XMLCh* feature, const XMLCh* version) const = 0;
00201 
00203 
00204     // -----------------------------------------------------------------------
00205     // Non-standard extension
00206     // -----------------------------------------------------------------------
00214     virtual DOMDocument *createDocument(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager) = 0;
00215 
00223     static DOMImplementation *getImplementation();
00224 
00236     static bool loadDOMExceptionMsg
00237     (
00238           const   short  msgToLoad
00239         ,       XMLCh* const                 toFill
00240         , const XMLSize_t                    maxChars
00241     );
00242 
00244 
00245 };
00246 
00247 XERCES_CPP_NAMESPACE_END
00248 
00249 #endif
XQilla-2.3.0/docs/dom3-api/DOMError_8hpp__incl.map0000644000151400015140000000003511653571065016426 00000000000000 XQilla-2.3.0/docs/dom3-api/inherit_graph_1.md50000644000151400015140000000004011653571065015641 00000000000000f957807d7e5960c8f0b07003c82ab901XQilla-2.3.0/docs/dom3-api/inherit_graph_11.png0000644000151400015140000000465211653571066016037 00000000000000‰PNG  IHDRø(\ sbKGDÿÿÿ ½§“ _IDATxœíœYLSÏǧ¿Ê*B‘²Ö*P.¼€< [Ôe "0JŒ¢QJD %ãƒÊh4„%@+Ñh CD)Ä…} «-–‹@Îÿa’›k7Yò·óyš93çÌ™™oîN›Ò „ƒù×ùo§À`¶,tŒJ€…ŽQ °Ð1*Á.j¥±±1--m§RÁ`6‘ÄÄD777²ú‡Ð'&&êêê¶=+ f3©¨¨¸téÕ²K¶SyyùvåƒÁl 4MÊ‚Ïè• £`¡cT,tŒJ€…ŽQ þM¡Ó(˜››‡……MMMQ;ÌÍÍÅÆÆ:88ìÙ³çØ±c÷ïß_^^&}­­­¥~ëæããC£ÑzzzPTØ===²w;ÎÆ²"‚ÃáXXXhiiY[['''/,,lEzÏ¿)t@ssóØØØÈÈÈÓ§OE"‘““ÓÌÌ jš=zôhkkkFFƧOŸâãã‹‹‹=<))‰Íf3™ÌÐÐP¡Pˆ¢ÉzA_¼xqøða ‹ÂÂBáÒÒ’\wêVQ˲Z,))9rä*›˜˜ÔÖÖJÍ+++ËÍÍ ùr¹\+++‰D‚šNŸ>Íårå u¶±±a2™ééé………æææººº‰‰‰dJÏŸ??xð ¡¡attôÂÂ5O¹ÓWS‰WQQ‘¾¾~FF„ÐÀÀ`llŒ¼jjjµ´´LLLÒÓÓ¥:P³ …ááá,+&&f~~^n|áþýûæ§§eu"DîfmX$ÊÙ¡CÃÂÂÂÃÃÇÇÇ?~üˆŒ~~~CCC|>ßÉÉéöíÛh>>>oß¾MII±µµåóùÎÎÎG‘A¹¹¹ccc\.w×®]AdffÊuŸ™™Aa©²¬Ð[[[ ÚÀÔÔ”Ô¤Þ¿¶ðýûw“ÏŸ?£°ÚÚÚÓÓÓŠ„,‰ "‘(//0==VÀÓÓ³«««¥¥ÅÊÊ*%%…ºß²Ó_5¦/¡P˜ŸŸøùó'u ‘H¤®®922RTT˜œœTô˜ qwwïííåóùvvv)))rãCß¼yÃb±444<<<233Èõ” ¢DèëɪÝ¡ …Â}ûöÙÛÛ£%@ØØØŒ¡rmm­££#šŸÏ‡:t¨ªª µ~ýú•,Ëz 55µ…B‰D2;;»²²¢È]É<×+ô>0™LÒ÷êÕ«ñññ¢¢"jL)¡·µµAÅb±T¹»»›ºhy­¬¬¨û-;ýUc*ñª¯¯—u[\\üöíA+++²ȲX,¦ÓéÈ^UUeee%7>ê°¼¼ÜÒÒ’ššjggG§Ó‹‹‹Q"ôõŠDùîÃÍ:„055•N§OLLMMMêÑ_OOͽh455;::dãÈzA›ššüýýwïÞíêêúêÕ+%îJæ¹Þ£KNNŽ——éÛÐЀN/¾¾¾yyyP±Ð•”Ñ  W?„°½½]SS“ºßr§¿j|E^?~üœ ÇsqqqttŒˆˆP"ôááajÎ|>_SSSn|‚ JKKÉ:‰äîÝ»,KQêp]]]T¡o@$Ê‘úFn]†‡‡Ÿ XQilla-2.3.0/docs/dom3-api/DOMNodeIterator_8hpp__incl.png0000644000151400015140000001571511653571065017756 00000000000000‰PNG  IHDRµuFWèŠbKGDÿÿÿ ½§“‚IDATxœíÝy@Wð—4€rr¢r)ų¶+VQ°x ²ˆWPW­®B‘ÚªP¥‚ ‡/l+ (PÄ"íb5õ<9¬«€HU.A@ cöé¦1ðàB¾ß_ÉË›7ß̼|™™Ì¼¡`†H¡’ P€äG ùˆÑÈôȾ}û®^½Jv §víÚ5wî\²£’ ?ʶ’’’¢¢" ²ŽÅbmÞ¼™ì(È2ÏÂÂ"00ì(À‡c±Xd‡ˆÁùG ùˆA~b€äG ùQ.؈YµjÕþýû›››Å+p¹Ü„„„M›6-\¸ÐÃÃ#99Y ˆ¦uuu•Ç$ ÀÆÆ¦ªª ¯$^¡ªªÊÆÆæcë¾²h.ä a€~ùQ^ÄÅÅ¥§§Ÿ;w.  µµÕÍÍÃá൵µ¹»»?zôÈÝÝýèÑ£ #77—Éd …B¼Bmmí“'ODM±Ù좢"ñÆÿý÷+W®ôiü555K—.%· o ?Ê uuõ#FhiiM›6mß¾}zzzçÎÃ?úñÇÕÕÕ###ÿñXYY%$$ÔÖÖæääà¦OŸ.~ÞÍ›7§N*Þ¸££ã¡C‡û.~¡PØÒÒBn @Þ@~”G eÉ’%ùùùøÛÜÜÜuëÖQ©w:¾jÕªÜÜ\ü­µµ5‹ÅAÿþûï7ù¸¸?!!ÁÉÉÉÉÉ)!!Ïç‹·³eË„Ð?ÿùÏ®*ãÇé÷îÝ[¹reIII^^ÞæÍ›œSRR¤[L¢‰¹sçƒÁpttLNNFÿ?-pãÆµk×:99ÅÆÆòx<ÂÂ÷Þ<`À€ü(§ ª««B§±±ÑÄÄD¢‚‰‰É³gÏð×'NlooDZ[[[ïÝ»7kÖ,ñÊT*uÇŽwïÞýõ×_%Ú‰ŽŽ®¯¯OHH »}ûöéÓ§ÓÓÓSSSÝÜÜN:µvíÚ„„¼fZZZMMÍ‘#GyòÄØØ¯SYY‰¿PSS‹ŠŠÒ××Gÿ?êïfºªL£ÑBAAAAAA3gÎäñx¢?šDopé¤ _¼xç÷çÏŸã ´«B ‹àøZ^477766644íÞ½»¦¦fÅŠøGëׯojjÚ¾}û­[·^¼xqíÚ5OOO---ñ«aðCìÈÈHsssuuõ®æ¢§§çééyöìYü-F³±±‰‰‰©©©yúôé‰'ììì–,YãÆÆÆÆ[·n%&&â•­¬¬Ž;VWWWQQáï™)Ý~{{û»Tæñx|>ŸF£uvvâ§&ÛÚÚÄ[ Lb^ÙÙÙGåÒââ⪪ª=ztüøq{{ûn ,‚ýGy±uëVü…¶¶öäÉ“=*:&UVV>zôèÉ“'ª««õôôlmm]\\Å[°±±9þ¼““S÷3rtt¼víÚ;wð·ÞÞÞqqqŠŠŠóæÍc04ÇãÅÇÇ¿zõÊØØx÷îÝø?Ë›6mŠ‹‹Û¼y3…B™3gŽ»»»x³ººº“&Mrvv¾xñ"a円QåaÆyzz+))­Y³ÆÖÖÖßß?--M¼éÀ$Ž…#""¦NÚýa¾¯¯/—˵µµµ QØýêžï*ÓV¬XQ__ã?ö¿ªª*WWW‰«â ßÊÆÆ&55U´;8¾bø***ŽŽŽïRdäG>„ººúöíÛߥÈ.È@ ò#ƒüÄ ?1È@ ò#ƒû e^QQ“É$;ŠîðùtKÖÜ%…v²ædäGÙ&ƒg`êèP(+ÓhkSüä“Z*•„;Yù|êíÛ:êê&&ÍŠŠÂþà]=šì(¸ÿô ÃNœ¸¶¶™™NL ÃÔT‡¬Hnß~êí񯯼k—£«ëL²Â²ò#è}uu¯}|ÎܸQæï¿ÀÝ݆F#ù47›ÍÝ·/+99Ѣɡ¡.#Ft7$"A/»x±8 àœººrL cÚ4ⱸIÁb=Ú¾ý Ÿ/8p`…ƒÃ$²Ã2ò#è5¯_·ùûŸËÎ.òôœçëû9®øöiúWKK{pð…¤¤y.\(ܹ3MIiHTÔêÙ³ žNò#è©ööÎÀÀÌää|gçéÁÁΪª’Oþ€êëÙç~ýõƒa´LYyÙò#è‘ââç^^)õõìÐÐ厎SÉçý\¸PèïN]]éС53f‘p ?‚Äã È9räŠyxøJmíádGô!ªªš||Îäå•{xØøù9 Wƒ¿A~¢¢¢ÞË+ùñãÚÀÀ¥ †%á³Oe†aÉÉùAA™††š11Œ‰õÉŽ pÿ5x?†?~ÕÎ.œFS¸tÉÏÕu¦L'G„…BquùÛoþêêÊ‹E<ø‹@0@ï´ý öÁ{¨­}íãsúæÍòráwï ±ÄÄkÁÁ&NÔŽ^cl¬MvD€dÁ»JO¿óõ×úúqq sóQd‡ÓW?®õòJ.+«óõýÜÓs•*Û{Ç ' ?‚·knn øëÂo&ÓaèÐAþ'Ÿ/œNW¼|Ù’£4kë ,VÀüùׯ?îå•Ìátè[°ÿB¨ººÙÇçtAAÅ®]Ž7ZÁEÝûùç¢;Ω¨ ŠZýÙg&d‡ú äG€’’ò‚ƒ³FÖŒeL˜ Gv8²¡¡ãï!í›o–))ÁiƒäG¹ÖÔÔp.'§F¯ù0øi::ªÑÑk¦Lg6åWnîLfªŠÊÐØXÆôécÉGVá#¤åç—»»Ûøû/PTT ;"Ðk ?Ê£ÖÖŽ;ÓÒÒî¸ºÎ”Ï ¿{>BÚ7ßœ74ÔŒe|ôÑ ½9]Þ@~”;ÞÞ)¼ƒWÍ›gNv8ƒÇŸ¾òñ9}ÿþŸL¦ƒ‡‡‚\"ó ?ÊüÂï„„+ööáá+45áÂï^&!mÒ$ƒ˜˜5ãÆ$;"Ð#åÅÇÕÛ¶%UW¿>pÀEæ#[ðÒÊË_îܹhÓ&+Y?XžA~ü„B,>þrDÄ/Ó§=thŒÖÕçD#¤}ö™Idä*==u²#òã WYÙàå•R\ü|×.GØ—égøi/_¶ìÚ#¤É$ȃYRRÞ¾}YcÇjÅÄ0Æ×%;y$!máÂÉ¡¡.#FÀÀ²òãàTW×Âdža±ù¥½——=\”G.|„4‡{àÀ ‡Id‡ÞäÇAè×_øù¥®Ø>} Ùá„joï ÉNL¼¶xñ”\ÔԔɎ¼äÇA…Ãéøê«´ôô»7Z}ýõb:]‘ìˆÀX¬G¾¾©T*%*j•\=¬BFA~<òòž|ùe 'ˆŒ\em=ìp±––öàà øS+—ª¨ %;"Ð%ȃAg'ß¾ ‰‰×œœ> qVUU";"ðøiÇӣ¢V[Z“ ùQ6ðùB.—7lÁ¾ÆƒUÛ¶%ÕÕµ„…Á…ß²!-7÷nOji᪪ÂÝñ¤[DeCDD“yF¢P <øË¢EQ#GÏÍeBr”-ZZÃ7~÷ÝÚ¤¤¼Ï??XRòB¢‡Ó±paäƒU¤„äG™pýzil쥬¬ÂÌÌ{¢ÂÊʆeËbãã¯|û­sjª'<Ã^F9:N½t‰9r¤êâŇ¾ýögO ú(00³¢¢~Ó¦DxYàøz ««k±¶e³¹†)) a±vèë«''çïÝ{ÞØX;&†ajªCvŒ §D#¤™™éDG3LL´³³‹ÜÜ~À0LQQÁÎî£'6’£<‚ü8  ÂåËß½û'Ÿ/@Ñh £ Gdg»»[,„¿“Çk½½S**^úú::ôŸ–.þõ¤R)!!Ë×­ûŒìåäÇíðáßöïÏ ÿÞFT*EGGíðaWøÓsPâñ11¹)) -<žPT®¨¨pñ¢……>‰±É!8ÿ8pݽ[úFrD …X}=Œµkk›Å“#BÃÐÆp"²¿A~ ^¿nûâ‹“F8ܶeË)ñù`Ш©if2Ï"$¹Ýù|Ammó×_§“•Ü‚ü8@íÚõSCG(JÄç KKkcbrû?*Ð×ÎuvòÏzñx´´;YY÷û?*¹ùq JO¿“‘qW HŽ!*•J¡ èè܇«û90ЧRSo]ºô°Û*Øöíg*+ú) ¹ÿÏ 8•• óæàrùý½i(¤¨HëìäB³´4š;w‚µõxssxNÞ Âát\¿^zõêãË—={öŠFSPP ttðÅëÐhT33Ýœœí0f]?€ü8°p¹¼ùó#ž>mÀwi4*Ÿ/TP ~úé8[[s++3 }x0žúH[[-y÷…øg ŸéèT{x8Á ¶¡?þø£WÚ|ýyþü¿^45µ¾~Ý>v¬©á 6¿©pwÚÿ·€w§¡¡¢¡!wg]úœéb€äG ùˆA~b²Ÿ={¶aÉÂòòò^6(j–"fìØ±ëÖ­«¯¯¯ÙÚÚêçç7eÊ”áÇúé§!!!|þ_wƒQ(SSS‰Û“,X@¡PÊËËñ ...âÞ+òî+Sˆˆ&éù*Âg/è-Пߥfv<ÙΙ™™Ë–-ëÓfoÞ¼YSSóâÅ‹“'O¶´´|üñÇÍÍÍøGl6û“O>¹}ûvXXØÝ»wwîÜ™œœloo/ü5òXeeeQQ‘¨Ù¦¦¦«W¯ŠÏ(---55µ×ã\œººz@@€xŠŠ --¸€n €þ<à`b®\¹RWW‡ÉŽE‹µµµI–••I,×7‹*++• …Â9sæìÙ³Ëd2­¬¬ø|¾¨‡Ã;vì±cÇði¾úê+ѧßÿý‚ Dm"„ÜÝÝGŒQSSó‘w_Y"ò®¦íɺê~=ôàÁƒô°èÏÍÊn×§O¢Ï¼ßþcVV–¾¾~SSBèôéÓfff­­­!ççç§£££­­íççÇãñð½åß~ûÍÐÐÅbŽ9rݺu¢ß+é©B.\˜kÖ¬‚‚¼Bssó¿þõ/---&“ÉårB %11ÑÜÜ|äÈ‘¡¡¡§N7nœššÚîÝ»%š•^| …âáá‘¿MJJÚ³g‚Âß訨¨øùù%%%áo]\\Ξ=‹ýÿˆ#--mùòåâ úøøL˜0ÁÍÍ “%D:ø®“p5’>„±´´DéêêvÕ”øv¼~ýºDƒÿùÏLLL444öïß/jÿüùóãÇ×ÖÖöòòêèè ,ì*Â~ýYFûsÿu¼nr'¡uëÖ­_¿¾¶¶VGG§  / svv~öìYqqñǼcÇü×`Á‚—/_ ²°°(...))™1c“Éìj*‡3tèЄ„„ššš'NÐh4‡N8ybbâ©S§0 ‹ŒŒÔÖÖÎÈȨ®®ÎÎÎ5j¾\ ÃÖÖöÉ“'ÅÅÅ'N Â7ÛêÕ«[ZZŽ?ŽZ±bEKKË‘#GB âÍbD¿T·oßVWWÇ0 ÿRÕ××K¬Ÿ7nèèèàÓ>zôHWW÷þýû†577+++744 ±ßÛ²²²ÒÒR%%¥“'Oboþ„JßÕbJ¯F¼ñÂÂB¶'½Û(ñ£Ýýväp8âKŠZ¼xqKKKzz:¾öðÊóçÏ/--ÍÏÏ711 ",ì¾aý¸ÿýY&ú³¸>íx}æ½ócSS“ÁäÉ“Åg6aÂÑNunnîÔ©SñàŠ‹‹1 ?~|FFþéÇE¯¥§jllTTTŒˆˆhjj …l6[ t5¹³³scc#†afffßÿ½(˜~ø!ÔÙÙ©   úŽedd˜˜˜à+÷Þ½{†uvvJ¼Æ7³¨YìƒúS^^ž–––hÚÿûß;wîÄ0,))ÉÞÞ^¼MÑ‹èèhUUÕgÏž‰úað„‹I¸1¢1ë.\¸ðÖüØýv”€b±X†áç§ÊÊÊ$*§¦¦š˜˜J·&¡ßò#ôg™èÏâú´ãõ4?b¶wï^ñšt:]ü«¨¦¦†×ÙÙ‰ZRR"ÝŽôT†]¿~}ùòå***VVV/^ìjr6›½dÉüµ’’Raa¡è£û÷ï#„ž?ŽjooÇ ‹‹‹ét:öf‘~-Þ,FÔŸRRR¦OŸŽ¿ÖÕÕÍÍÍ•,>>þóÏ?MËb±LLL„Bá²eËŽ9‚õ'@0wî\ü‡ï"„Á.fW«Q:rŒ(-JäÇî·£„Pii©øŠÂ+‹Â.**¢Óé„…Ò­IèÏóПñ×¹?‹ëӎףóøvŠ‹‹³³³óõõjii‰Ö{SSS~~>^®¨¨ˆ5jTee%^RXXøí·ßv5U{{»P(yòD_ÿíÏÆoVÞ]-Z„¿e0{÷îý»‡jmm oaöìÙl6ûúõë¹¹¹]ý5I¥ROž†ëŸýGèϲҟû­ãõèø:66vÊ”)øQÆO?ý¤§§‡ŸÚhiiÙ°aƒ†††¦¦¦››[kk«xâr¹L&sÔ¨Qjjj«W¯njjÂË¥§Â0,55ÕØØxÈ!&L8þ<áä .EÅçóÃÃÃMLLTTTfΜ‰ÿà`ÖØØ¸víZMMM===|O»›þôðáCñf±7Ïâ=šÁ`H¬‡ãëë;qâDeee ‹àà`Ñõ¢Æñå>,Q.ÑŸ„B¡½½½h¥IßÕb®ÆwÌ<oöìÙÆ ëj‹HäÇî¿xåãÇ3FKKkÛ¶mííí„…]u0‘þÉПe±?÷iÇ“è3’ㇾñDA¿)//—¾Å‚°ð­ð£­žýYôbÇ“è3²}ÿ ôȠרªªº»»¿K!½¨ï:_ƒޝ)àøÞ äG ùˆA~b€Mâ}ss³hDuÈÂår%Æ)ø0ПAOHæÇêêjRâ@B¯äGèÏ '(ï{ÿ È 8ÿÄ ?1È@ ò#ûK{/x$³oIEND®B`‚XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMEntityReference-members.html0000644000151400015140000004661611653571065023226 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMEntityReference Member List

This is the complete list of members for xercesc::DOMEntityReference, including all inherited members.
appendChild(DOMNode *newChild)=0xercesc::DOMNode [pure virtual]
ATTRIBUTE_NODE enum valuexercesc::DOMNode
CDATA_SECTION_NODE enum valuexercesc::DOMNode
cloneNode(bool deep) const =0xercesc::DOMNode [pure virtual]
COMMENT_NODE enum valuexercesc::DOMNode
compareDocumentPosition(const DOMNode *other) const =0xercesc::DOMNode [pure virtual]
DOCUMENT_FRAGMENT_NODE enum valuexercesc::DOMNode
DOCUMENT_NODE enum valuexercesc::DOMNode
DOCUMENT_POSITION_CONTAINED_BY enum valuexercesc::DOMNode
DOCUMENT_POSITION_CONTAINS enum valuexercesc::DOMNode
DOCUMENT_POSITION_DISCONNECTED enum valuexercesc::DOMNode
DOCUMENT_POSITION_FOLLOWING enum valuexercesc::DOMNode
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC enum valuexercesc::DOMNode
DOCUMENT_POSITION_PRECEDING enum valuexercesc::DOMNode
DOCUMENT_TYPE_NODE enum valuexercesc::DOMNode
DocumentPosition enum namexercesc::DOMNode
DOMEntityReference()xercesc::DOMEntityReference [inline, protected]
DOMEntityReference(const DOMEntityReference &other)xercesc::DOMEntityReference [inline, protected]
DOMNode()xercesc::DOMNode [inline, protected]
DOMNode(const DOMNode &)xercesc::DOMNode [inline, protected]
ELEMENT_NODE enum valuexercesc::DOMNode
ENTITY_NODE enum valuexercesc::DOMNode
ENTITY_REFERENCE_NODE enum valuexercesc::DOMNode
getAttributes() const =0xercesc::DOMNode [pure virtual]
getBaseURI() const =0xercesc::DOMNode [pure virtual]
getChildNodes() const =0xercesc::DOMNode [pure virtual]
getFeature(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNode [pure virtual]
getFirstChild() const =0xercesc::DOMNode [pure virtual]
getLastChild() const =0xercesc::DOMNode [pure virtual]
getLocalName() const =0xercesc::DOMNode [pure virtual]
getNamespaceURI() const =0xercesc::DOMNode [pure virtual]
getNextSibling() const =0xercesc::DOMNode [pure virtual]
getNodeName() const =0xercesc::DOMNode [pure virtual]
getNodeType() const =0xercesc::DOMNode [pure virtual]
getNodeValue() const =0xercesc::DOMNode [pure virtual]
getOwnerDocument() const =0xercesc::DOMNode [pure virtual]
getParentNode() const =0xercesc::DOMNode [pure virtual]
getPrefix() const =0xercesc::DOMNode [pure virtual]
getPreviousSibling() const =0xercesc::DOMNode [pure virtual]
getTextContent() const =0xercesc::DOMNode [pure virtual]
getUserData(const XMLCh *key) const =0xercesc::DOMNode [pure virtual]
hasAttributes() const =0xercesc::DOMNode [pure virtual]
hasChildNodes() const =0xercesc::DOMNode [pure virtual]
insertBefore(DOMNode *newChild, DOMNode *refChild)=0xercesc::DOMNode [pure virtual]
isDefaultNamespace(const XMLCh *namespaceURI) const =0xercesc::DOMNode [pure virtual]
isEqualNode(const DOMNode *arg) const =0xercesc::DOMNode [pure virtual]
isSameNode(const DOMNode *other) const =0xercesc::DOMNode [pure virtual]
isSupported(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNode [pure virtual]
lookupNamespaceURI(const XMLCh *prefix) const =0xercesc::DOMNode [pure virtual]
lookupPrefix(const XMLCh *namespaceURI) const =0xercesc::DOMNode [pure virtual]
NodeType enum namexercesc::DOMNode
normalize()=0xercesc::DOMNode [pure virtual]
NOTATION_NODE enum valuexercesc::DOMNode
PROCESSING_INSTRUCTION_NODE enum valuexercesc::DOMNode
release()=0xercesc::DOMNode [pure virtual]
removeChild(DOMNode *oldChild)=0xercesc::DOMNode [pure virtual]
replaceChild(DOMNode *newChild, DOMNode *oldChild)=0xercesc::DOMNode [pure virtual]
setNodeValue(const XMLCh *nodeValue)=0xercesc::DOMNode [pure virtual]
setPrefix(const XMLCh *prefix)=0xercesc::DOMNode [pure virtual]
setTextContent(const XMLCh *textContent)=0xercesc::DOMNode [pure virtual]
setUserData(const XMLCh *key, void *data, DOMUserDataHandler *handler)=0xercesc::DOMNode [pure virtual]
TEXT_NODE enum valuexercesc::DOMNode
~DOMEntityReference()xercesc::DOMEntityReference [inline, virtual]
~DOMNode()xercesc::DOMNode [inline, virtual]
XQilla-2.3.0/docs/dom3-api/XQillaNSResolver_8hpp__dep__incl.png0000644000151400015140000001026011653571065021151 00000000000000‰PNG  IHDR£u­iÆåbKGDÿÿÿ ½§“eIDATxœí}PÇÇ7‚ò"á-NHêKÒb+ÕVFÑŠbP¨–¶ŒònA‘t*ŒJ:¾˨Ê‹ PEm¬J|*‚ˆ­ 3V¥UŒ0›4¼äüþ¸_Ï4 `œ”½Ï_{Ïî>÷ì~ïvïör9œZ­`6Ú`˜LiXÀ”†LiXÀkn,^¼x´âÀ0:^^^[·nE7ÿ£tEEÅ´iÓH$’É£Â02 öööš¼V‰ÀÀÀ… š."Œ×CJJŠ–›§aS0¥aS0¥aÁ0¥>|Èd2¯^½ŠZ®_¿¾xñ⦦&dS*•æççÇÄÄ|öÙg,ëØ±c*•  ½½½õ&†ÂÛÛ›Ãáh>€Ñ¬"‘HrssCBB|}}ÃÃÃ‹ŠŠär9ZÅ××÷Ûo¿5s(FŒÙ ¼½½…B¡±¼ˆö]Ö𸺺†‡‡geeÍš5ËÆÆ¦¿¿?###**ŠF£X,‘HŒ¥P(ÍÍ͇ºuëÖÞ½{mllBBB ®ºººªªjÑ¢EºY™™™]]];vìpvvniiÉÌÌìííGr³³³Éd2RIIIJJÊ‘#Gp8œ¡Œ% ½#""ìììòóóttt\¹r%’uäÈ"‘˜‘‘1{öl*•:þü¼¼¼ŽŽŽ‹/ÚÙÙÅÆÆº/ÿýû÷‹D"ݬßÿ}Íš5®®®D"ÑÝÝ=>>þúõëh.‘Htppppp R©qqqmmmÏŸ?7tïc ƒ•ÆãñÉÉÉeeeÇŽ+++KNNÆãÿ?0\¾|922ÒÌì…ÏqãÆ­\¹²¢¢bøqïæÍ›kÖ¬ñóó[¾|ùñãÇQ{``à¤I“ÒÓÓu¢[YYñx<±XŒlº»»s¹\½ÎÍÍÍñx¼µµ5²©T*óòòòòò”J%àÆ111K–, -//GJöõõíÞ½ûË/¿ ÌÍÍEgÀ–-[rrr´B¡ð÷÷¯©©Ñëi8ŸÏ¾{÷®VlõõõaaaþþþÇŽÿÎׯ_ˆˆÈÊÊR(zCõä0¼ÊƒÁ.,,ŒŒŒœ:u*Ú/"‘ˆN§kvuumnnÆÛÀÀÀ¶mÛ\]]KJJX,VAAÁ³gÏþœ™Yrrò­[·.]º¤U‹Ífóùü+V°Ùl.—ÛÕÕ¥™+•J%‰D"yúôé¡C‡/^laad:uª££#???==ÏçI¥R‡óÕW_ýüóÏ{öì‘J¥€<~ü8//ï‡~¨««;qâêŸÉdVWW#Ç_]]¥¥¥‡‡‡^çHù“'O&''»ººjµ¢¶¶¶   ))©°°=jy<Þ®]»vîÜY[[‹÷zñ*J«ÕêþùÇÌ̬¥¥E+Kw.T«Õšg¹.áСCñññŽŽŽÈ’{?šK¥Rccc³²²º»»5kÍš5‹Ëå8p`úôé—.] ­¬¬DsW¯^½téÒ¥K—®X±¢¼¼<88Í*++KHH ‘H4míÚµüñ‡B¡P«Õ‰„@ øùù?ÞÒÒR©T^¹reݺud2™F£}ýõ×—/_FÌ;W,?xðPYYéççgnn®×9R>66væÌ™ãÆÓj{pp°••Õ§Ÿ~ èííEŒ,‹J¥º¹¹­^½Ý©^£AvE†PQQqûö파 6›½`Á‚yóælllÁǬYX Lš4i¸ðø¶¶¶½{÷J$Ý£píÚµ´´´„„Ä"•Joܸ±páB77777·ˆˆˆâââ¼¼<&“‰())¡P(™Lvøðá={öüøãHVggçòåËQçÖÖÖ¶¶¶§N***b0¡¡¡³gÏîéétqqAŠQ(”Ç£µ,--çÍ›W]]=eÊ”7n åI ÕŽŽŽ@çô R©h-t§za°ÒOŸ>ÍÊÊŠ‹‹swwŠŠJOOŸ>}ú„ >>>GŽ™1crÿý÷sçÎ=~üxhhè0e2‡Ãáp8žžž …¢¬¬L«‡Û´iSttô… ‹Z­NMM4i2Yàp8óçÏë:·´´ôóó»pá‚Z­F:ÔÎÎ.##9G&“ r8¥RYYY¹yófgoooffÖÑÑ1yòd@{{»“““¦g&“™••E§Ó *ƒ®sÄŽ^Êè6MרÖÖ†ÜË´¶¶"‡ÂPFƒ0lôV«Õééé4mÙ²e€   {{ûÌÌL$7**J$%&&ÖÕÕµµµ‘ÉäÔÔT¹\Ž …B¡T*ñx¼\.G&¶­2d2™ÅbŒŒx<žÍfóÍ7^^^^^^VVV,**ÊÍÍ …NNNáááwïÞݹsgLLÌP>mllX,VjjêøñãCCC™LfRRRii©V1ÿß~û­¾¾ÙLJJ:zôhAAP(´··÷öö^µj•^ÿÎÎÎVVVb±ØÊÊ “½fÍçååµvíZðÝwßåççwww»¸¸lß¾@ ²³³ãââ,,,-Z¦9lâñø TVV.X°5ê:òä‰f0{÷î1c:ªëÅÇÇgãÆR©”Éd¢;Õ2S}(pš708nûöíÆ}>­T*§M›fDŸc¡P^UU5¢qDRRRœÑQ˜`ÝÇc2¿ `O8Þ ¬­­ýýý_Æø `J¿A‰Ä 6¼ŒñÀ”†LiXÀ”†LiXÀ”†•¾ÿéh‡0 h¯‘Ñh4­·<ÆJ帞ž÷ov ¯—¦¦&Í5²ÿ¬{š<$SÓÚjÛÝmëâÂ7N9Ú±¼Fh4Úœ9s4-8ØþýbΜԖ–§6ø&&úv,&®yú¯¿Ú[Zž~ù¥n´c15p)}út½……9 µUtû¶öO£Æ6)=8¨ærë 7çñø£‘IHéÚÚ&‘¨I+•ªS§êUªÁÑ É”@¤ti)Ñ^‘¨ÿæÍG£‰Ei…BÅãñ•Ê'1o^ZzkC21°(]]ý ¯O¦iQ*UçÎý)—å»jM`QúÌ™[ææÚ?¹VUÝ•xLJ÷÷ËÊÊîè^™™™> Ë…Ò!7WZ¨Tƒåå÷úûeºYc(”.-½5Ôš¯\®¼|¹Á´áŒc_i±XRUõ`˜åýÒR(–PÆþ™LÙÙùâ5ùŠŠ¿¶n=sóæÔbnnF¥Žåµ¯ò®åÛ…¥%~ò䯬9;Û4-0öGo LiXÀ”†LiXÀ”†LiXÀ”†LiXÀ”†LiXÀ”†LiXÀ”†LiXÀ”†LiXÀ”†LiXÀ”†LiXÀ”†LiXÀ”†LiXÀ”†LiXÀ”†LiXÀ”†LiXÀ”†LiX0Ú›ò4–«×ʽ{bðöDK£Ñ´¾œúꨄq¢yý˜™YZXF;Š—%00ÐXóß/¸\nPPBŽq;›§aS0¥aS0¥aSÞD¥‡Ó›xeW¯ '^Ÿ#ò&*M$7mÚ4ÚQ€B¡Ø¸q#…B±µµõõõ}ôè-þnÇ›¨´““ÓîÝ»G; ÈÉÉáñx<O É䘘˜ÑŽèÕ1ÒçΣP(===€'N0ŒþþþÁÁÁììl777[[[OOϪª*d<fȽpáÂÌ™3­¬¬Èd²î¡R©ÒÒÒ †­­í¼yójkkû³gÏV­ZåääD¥R¥R)‡Ã>|ØÍÍÍÙÙy÷îÝG:uªÝÖ­[‘ZW®\‰ŽŽöðð˜8qb||<Ÿ¯çÿ¡ËËËétº½½ý®]»À¿óÅÙ³gß{ï=‰/“ÉôÑ©†`¬eU—˾LdddTTTggçĉkkkÕju~~>‰D:sæL{{ûÅ‹©T*àáÇH`º ±XL ¢££ÛÚÚJJJÝÝÝš»Ø·oŸ¦C¤bXX“É|ôèÑ;w>üðC‡ƒÄ"‹ AAAb±8??ðäÉÔ§R© …ëׯ_¶l™n«?ÿüs±X|úôi¤ê’%Kkjjèt:‡ÃÑk±K¸îmR¥{zz¨Tª»»;ÚÎ>ø ¸¸-ðÓO? ¯´L&ûûï¿ûúúT*Uuu5RXs Cס\.777¿wïbùä“ââbÔŽû—ÖÖV]‡]]]*•êÝwßEŒt:½­­ IÛÚÚ,,,´Òš$&&¶··¯^½:,,L7$dØ03ûOOººº"‰÷ßÝ—^£É0©Ò­­­ÙÙÙ>>>7nD, åÏ?ÿD 44ŒðI ‰DÄf³ù|~NNjGÜ)S¦è:œ8q¢¹¹ySSb|ôè…By™€W­Zuûöm™LŽŒŒ¼{÷®n½—ÈI hllD…¡Œ&ÃtJFGG¯[·îĉçÏŸDGG³Ùì³gÏvvvþúë¯ÉÉÉÃ;‘Édr¹œ@ H$’íÛ·z{{5 ÄÅÅi:ܶmÀÂÂ"888>>¾¹¹ùÞ½{[¶lÑ{vê¢R©’’’ÛÛÛ÷ïß?wî\@aaáóçχ¯˜ êêê6oÞ>ŒÑtk#ÍÓYYY}ô‘\.W«Õ¥¥¥d2Y$Éåò;vL:ÕÆÆÆÓÓóøñã`ØyZ­VïÛ·ÏÁÁáwÞÉÉÉ !‘Hš{Q*•iiit:ÝÚÚÚÓÓ³¦¦©(‰"""Édòúõë% 3:ëM÷ööFEEQ©Ô &|ñÅ­­­#ÖBB-,,œ¸ ÑIEND®B`‚XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMXPathNSResolver.html0000644000151400015140000003311311653571066021477 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMXPathNSResolver Class Reference

The DOMXPathNSResolver interface permit prefix strings in the expression to be properly bound to namespaceURI strings. More...

#include <DOMXPathNSResolver.hpp>

Inheritance diagram for xercesc::DOMXPathNSResolver:

List of all members.

Public Member Functions

Destructor
virtual ~DOMXPathNSResolver ()
 Destructor.
Functions introduced in DOM Level 3
virtual const XMLCh * lookupNamespaceURI (const XMLCh *prefix) const =0
 Look up the namespace URI associated to the given namespace prefix.
Non-standard extension
virtual const XMLCh * lookupPrefix (const XMLCh *URI) const =0
 Non-standard extension.
virtual void addNamespaceBinding (const XMLCh *prefix, const XMLCh *uri)=0
 Non-standard extension.
virtual void release ()=0
 Called to indicate that this object (and its associated children) is no longer in use and that the implementation may relinquish any resources associated with it and its associated children.

Protected Member Functions

Hidden constructors
 DOMXPathNSResolver ()

Detailed Description

The DOMXPathNSResolver interface permit prefix strings in the expression to be properly bound to namespaceURI strings.

DOMXPathEvaluator can construct an implementation of DOMXPathNSResolver from a node, or the interface may be implemented by any application.

Since:
DOM Level 3

Constructor & Destructor Documentation

xercesc::DOMXPathNSResolver::DOMXPathNSResolver ( ) [inline, protected]
virtual xercesc::DOMXPathNSResolver::~DOMXPathNSResolver ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual void xercesc::DOMXPathNSResolver::addNamespaceBinding ( const XMLCh *  prefix,
const XMLCh *  uri 
) [pure virtual]

Non-standard extension.

Associate the given namespace prefix to the namespace URI.

Parameters:
prefixof type XMLCh - The namespace prefix to bind. An empty or null string denotes the default namespace.
uriof type XMLCh - The associated namespace URI. If this argument is null or an empty string then the existing binding for this prefix is removed.

Implemented in XQillaNSResolver.

virtual const XMLCh* xercesc::DOMXPathNSResolver::lookupNamespaceURI ( const XMLCh *  prefix) const [pure virtual]

Look up the namespace URI associated to the given namespace prefix.

Parameters:
prefixof type XMLCh - The prefix to look for. An empty or null string denotes the default namespace.
Returns:
the associated namespace URI or null if none is found.

Implemented in XQillaNSResolver.

virtual const XMLCh* xercesc::DOMXPathNSResolver::lookupPrefix ( const XMLCh *  URI) const [pure virtual]

Non-standard extension.

XPath2 implementations require a reverse lookup in the static context. Look up the prefix associated with the namespace URI

Parameters:
URIof type XMLCh - The namespace to look for.
Returns:
the associated prefix which can be an empty string if this is a default namespace or null if none is found.

Implemented in XQillaNSResolver.

virtual void xercesc::DOMXPathNSResolver::release ( ) [pure virtual]

Called to indicate that this object (and its associated children) is no longer in use and that the implementation may relinquish any resources associated with it and its associated children.

Access to a released object will lead to unexpected result.

Implemented in XQillaNSResolver.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/DOMEntityReference_8hpp__incl.map0000644000151400015140000000003511653571065020430 00000000000000 XQilla-2.3.0/docs/dom3-api/functions_0x66.html0000644000151400015140000001752311653571065015666 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- f -

XQilla-2.3.0/docs/dom3-api/StDOMNode_8hpp__incl.md50000644000151400015140000000004011653571065016435 00000000000000543e78e6e3b3567636cc421718a5c09aXQilla-2.3.0/docs/dom3-api/XPath2MemoryManager_8hpp__incl.md50000644000151400015140000000004011653571065020473 00000000000000f3f8ecad31771e1632edd9998dd1ac94XQilla-2.3.0/docs/dom3-api/functions_0x6d.html0000644000151400015140000001234511653571065015741 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- m -

XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMElement__inherit__graph.map0000644000151400015140000000033211653571066023070 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMEntity_8hpp__incl.md50000644000151400015140000000004011653571065016515 00000000000000e157a9c60a3904e3dc67bb3472d8cd63XQilla-2.3.0/docs/dom3-api/inherit_graph_3.png0000644000151400015140000000355011653571066015754 00000000000000‰PNG  IHDR¨(å™&;bKGDÿÿÿ ½§“IDATxœíš]LMǧôƒR ) ±šh•4Jˆ1­Ôr¡/$FTU£‰‰DÑ*F &x¡ÆôÂD"Þ Õ•ØhL” JE ¶ ÖB«ØÒ§`Z쇵­Ýy/6n–Ý¥ð Àû¾»¿«ÎÌ9gæÌ÷L·[„0Ф…^ÃÂÀOSái #¨¬¬$w2g\·nŸÏ_¹råÍ›7ge||üÇ3Ü™êêêâââS§NAêëëóóó)-Ùl6àׯ_3Œü¯–1 3¹:È ²bÅŠ¶¶6áÙ³g×®]‹öã/ì3ážP©T[¶l6›ÍùùùçÏŸ‡úûû@ p¹\GŽQ«Õ˜Ë¥K—vïÞ=22b6›‹ŠŠñ1É£~¿ŸÇãíß¿ßétÞºu 066 “““¯_¿îv»oܸÁáp‚Á ¥;>Óׯ_×ÖÖfeeŽŽRneí±Z­ÉÉÉGÍÍÍEoh,M¿ß?44T^^¾aÃÂBØ®®.ôê´ÛíÓj„A©é,…ïëëãp8ß¾}ƒ¾yó€V³i…F£l6{``mvvv®Zµ ’ÎòÔÔÔ÷ïßcÓI¥R·Û%_PP€ID">|ƒñx¼»»`³Ù¼^/—˽råŠÏçC$ÄãqJwa8noo߸qcaaa[[YŒ©ææfÀíÛ·ñø¹\nII VÞgr[B].Wss³X,.++{òä šBbþ¦ðÇŽ#,±©© NÞ…OŸ>‘…ÿúõ+ £M³ÙÌçóáä. 8qB&“aÓñù|ü\B¡“< !4 …¢  @­VcÁ_¼x±gÏžE‹mÞ¼ùñãÇS¹£7Vmmí«W¯I¼S ¦OpSä †ÈD£ÑŽŽ…B‘——722’Øø¯ññxÜ`0hµZ¬"544 øû²E-—ËEöÍÉÉa³Ùv»m/]º”`#êêê±€"‘ÛŸÏ××ׇ·'†ÃáÊÊJFóöíÛÖÖVÔ,#r÷î]¯×{àÀ²²2¯×Kéž••µfÍ“ÉÔÛÛ;111‹- ßoæè‘Ìãñ :΢¢¢”””YD˜ðÏŸ?S©T©¿©©©±Ùlýýýééé€ööv¿ßõêU¼W0p¹Üªªªúúz‡Ã100ÐÔÔ¤R©ÈS¤¥¥ÔP^^~æÌ™/_¾˜ÍæíÛ·_»v oLD"Ñh”Çã…Ãa´ä‹UZZzÿþ}¿ßF¹\®@  t_¿~ý³gÏ:;;­Vk^^ÞÁƒÑãl®ÿg2Až>}ºk×.´öööÞ¹sg&Ê̤,8|øpii)¾A‰Drúôiá… ÒÓÓ%‰ÑhDãÇb1…B‘ššŠ{½Þ}ûöeffæææ?~-û`r¡‹Çãiii‡múý~µZ‘‘‘™™yèСP(„/°äQ¡V«]¼xñ²eËZ[[«««³³³!„ƒA"‘ðx<©Tj4¸cø|>­V+‘HÐÇ32S•zÊ~°ÔO«Î½{÷d2™N§‹D"”A(¡Ô”E˜}w˼'€ ‚ Åßæ“X,Æårÿ­¥¦ œÉÿ IIIII ÿ^cªOÅÂ'ð 0ÂÓFxšÂOSái #>>2™Œ˜¡ªªª´´”\”@ ¸víšâÂ333ÓÒÒºm[] A´—………•••­­­§§gvvöÀ÷ïßO<caaqùòe__ßÁƒ/X°àÖ­[UUU)))Ä ÞÞÞä¢rss§Nª¸ððððµk×ÖÖÖvÛæZ@‚t½ÜÜ\[[[@€:sæÌàÁƒE"B¨µµ522’Íf[ZZFFF¶¶¶‡ë—/_vpp(((ˆŠŠrpp°°° !”[!„~øá‡#F°X¬žEÍœ9óÊ•+ÑÑÑ®®®eee\.w„ §½VB¡P__?11‘Çã=z”Éd …ÂÝ»w«lÞØØ˜œœ¬<Œzúô©bÍ%%%&&&8ŽÙW__ßf£ Ùl6ÑöñãÇVVV÷îÝ#k``ÐÐÐ@.“xòäIŸ>}RRRp'¶”XNPP——WEEEYYÙ°a⣣÷íÛgii™••USSóã?ÚØØ3+oû[÷qêôÖÙ@W¾î´Ž$ˆ@ °³³1bDtt49ÑÅÅ…ÇãÃùùù#GŽ$^Weee8Ž2$++‹xôÑ£Gä°r+>Ÿ¯««»gÏ@ —Ë›››e2Y{ÍÕlEg䯿æædÛµk×nÙ²ÇñÔÔTÅe’èׯßóçÏÉiiia0< –™••åää4xðàcÇŽ‘+:~ü81³ò¶«ß(¤ÛA_wZGÇñ˜˜ƒñòåKr ‹ÅR<ú366&^W---Ä£\.Wy9Ê­p¿~ýº¿¿¿¡¡¡‡‡Ç… Ô4W³mäôéÓcÆŒ!†­¬¬òóóÛ4IHH˜1cÙ¶  ÀÉÉI.—ûùù>|W• 2™lêÔ©Ó§Oòä ñ®®®F‰Åbb™eee,«OŸ>÷ïß'WtïÞ=bf•Û®$H7ƒë ïEuuõ¡C‡¼½½#""È‰æææä‹V ÓuuuB666UUUÄ”û÷ïïØ±£½Vb±X.—gddðùü°°°9sæðùüöšwŽã ³fÍ"Fƒ‚‚bbbÈ;/!‘HçëëKN™ßÊÊ*77—˜¾~ýzâ>è„ Ö­[§xu **jĈ\.—Ë庻»¯\¹²½Vb±˜ÅbeffÖ××'%%±X,±XÜ^s5×AÈ»¹óæÍ³³³kll$}ýúõ!C¦NzñâÅ'Oždee¹ººº»»K$\ácÍš5C‡õôô$—Ùæ„@\Á%F½¼¼*++¹\®««ë¶mÛ8`ii™““Ããñ.^¼8pà@bfåmëÞcn}ÝioMƒº¹¹ç&ÙÙÙÖÖÖ|>Çñ¦¦¦åË—›ššš™™­ZµJ$)&ˆD"áp8666ÆÆÆK—.ÄtåV8ާ¥¥ 4HOOÏÅÅåüùójš+®BqXñ]ÄÞÞ>((Hñ„ Çq¡P1lØ0WW×o¾ùæÍ›7d[" Bñññm¦·I¹\Nü,1Êç󃃃ÍÌ̬­­7nÜ(‹¥RéîÝ»œœ 'MšDk´·íêA‚t3ø}NƒßéÉà÷Aº\P  @$€:Hu ê AÔA‚¨ƒÑv/^þøC@w@SÁgR; ðádzÙlº é æ!sóº é/_¾$¾£Lw!Úþy»Óè.¡+UVšaæì,{û¬šÀÔÔÔÅÅ…î*´ƒhµ_­ñòÚº|yÓСÖt—4\Ñj¹¹÷™L&“ñÃ÷é®h$Hí…ãø™37¥R¹T*;s¦ŽF Úëöíªºº&bøå˦;wªh-h$Hí•“sWW÷¯ÿsÐÕedgߣ· ‰ A´”T*ÏʺÓÚú×-˜ÖVYVÖm©TNoU@ã@‚h©ëן¼~-Qœòúµ¤°ð)]õ  ¢¥²³ï0™ÛûL&–•u‡®z€†‚ÑFIk^^©Tú·O‘I¥ò¼¼R‰þYt$ˆ6ºté‘D"Už.‘´^¾ü¨ûëš D;w›ÁPñÜ vîœÈ€N€Ñ:ÍÍ’+W~UyÛE*•_¾üH(ü³û« Dë\¼È%oâ*km•]¼XÖõ߬Ó:¨©éÿßÇýê«,„ÐŽ È)ýú±LM i¨ h øv¿Ö155T CC=„PÿþfôU4œÅ¨ƒP  @$€:Hu ê AÔA‚¨ƒP  @$€:Hu ê AÔA‚¨ƒP  @$€:Hu ê AÔA‚¨ƒP  @$€:Hu ê AÔa8ŽÓ]ÃûuéÒ¥ÊÊJº«è¹22þ@ØÒ]HÏ5pà@oooº«è©ðÞ. €î>îÑ cØî*z´€€ºŸÅ=“î½Ó¦M›Ew@#mß¾îz4¸ @$€:Hu ê AÔiÅÝÜÞÁÓÓ“f³Ùnnn«W¯611!'J$’cÇŽ•””ðx<%K–0 ¢­­­íÉ“'1 #çß¼yó­[·RSSmmmB¯^½JHHxðàÁëׯû÷ïäááA®šœvoíÐàD“:tèܹs›7o‰D«V­ …ÄCoÞ¼ üøqxxxRRRPPP~~>‡Ã‘ËåÄ µµµ䢚››KKKÉѦ¦¦+VèëëGEE%&&~üñDZ±±%%%ݰQ<oÞ¼yj¢¦ºdù ã A4‰‰‰É|`nn>jÔ¨ØØXkk댌 â¡'N˜˜˜ìÛ·oüøñvvv‰‰‰µµµ/^$f3fLAA¹¨¢¢¢‘#G’£)))£FŠŒŒ:thÿþý-Z´`Á‚´´´nØ(¹\ÞÔÔÔ©&jú¡K–:!„ŠŠŠüýý›››B—/_–H$!©Tš˜˜8þüùóç'&&J¥Ò?þøÃÓÓóîÝ»‹/¾ÿ~JJÊâÅ‹ýüü¾ýö[òmP¹±Š°°°éÓ§þç?ÿAÉd2•͉U(·aØÜ¹s‹‹‹‰Ñüüüÿ¿CY,Ö’%Kòóó‰ÑiÓ¦àÿýÔÏ?ÿ}š¬–è.—«<ƒÊM^³f BhÁ‚íõ^›Åªïå•¶Y¾ò à]@‚ „ÐG}4f̘øøx@ÿÕW_±X,„Pff&Ç;|øðÞ½{ïÞ½›’’BÌŸžžþÅ_”––^»víÛo¿Ý¿uuujj*ñ¨r+‰DíççwöìÙààà]»vI$’ÌÌL•ÍMLL8Žò°2;;»šš„P(äóùNNNmfprrzþü91ýôS‡3oÞ<bâÅ‹÷ïßÿÁXZZ†‡‡'&&þãÿ@­ZµjàÀû÷ï_¹råÀB›7o&_«Ê­–,Y‚ã¸X,ÖÓÓóõõ6mš¾¾þ?þ¨²¹¡¡á¬Y³”‡)À0Œ¼¢££3eÊ”‚‚''§7n >¼_¿~ÄCĉâEVe‹/600˜ø ¼¼|̘1Š3”——<˜6mÚîÝ»ÃÂÂڜ™šš>{öÌÕÕ•œøøñãýë_Ð××G™™™!…”a2™/^¼Ø³gX,ns\@tŽÊ:²Éêû\}?¨©ê­ej AþRWW—=f̘ï¾ûîË/¿$&ïß¿Ÿ¸‹IêÓ™L&BÈÌ̬¶¶vÀ€¡òòòâââeË–©lõçŸÊåòèèh©Tzùòå/¿ü2''§½æ„ãxnnîĉ‰Qooï'NŒ5м"‘HΜ9£øj>|ø›7o¸\îíÛ·#""—æîîž––¶}ûv2#òóó¥R)HéåÏ?ÿŒŽŽŽŽŽž4iRkk+y½–ì•3td“Õ÷¹ú~PSÕ[ËÔÀu„Âq|×®] ,غuë;wŠŠŠˆéÉÉÉ/_¾¬¬¬Ü´iSNNŽb«éÓ§9rä÷ßÿý÷ß8ðòåËöZayíÚ5‘HÔÚÚÊd2õõõÛkNí+#„ù|~CCCiiéÖ­[y<Þ¢E‹ˆ‡BCCÁçŸ~ëÖ­/^üòË/«W¯677W¼‘IœÈìÛ·oèСmÝÃÂÂJKKwîÜùðáÃÊÊÊãÇgee­X±¢½kmm•J¥L&³¥¥…¸TñæÍ›·ÎÐÞ&#„ÄbqGú\}?¨©ŠXþ[ËÇ !”““ÓØØ¸téR&“¹qãÆ}ûö >ÜÈÈ(,,ìСC+W®Ä0lÊ”)ááá d«   ‰D)‘H&NœNLWn¥§§·e˖Ç×ÕÕÙØØDEEéééµ×¼±±qÏž=ÄåÅa„кuëˆKKË#F$%%‘ùIII)))‰‰‰555ÖÖÖ^^^ºººŠ[êééyþüùùóç·é“¤¤¤„„„¨¨(±Xìàà°cÇòGYß¾}W¯^ýÍ7ßôéÓ'00ÐËËkÓ¦M‡R?Czzºò&[YY >|áÂ….\PÙ{Š}®¾T®433“\¾Ê²³³Õ?=€½ÿW-ZT__¿0¨Ù¾}»……Ezz:Ý…ôPp @$€:Hu ê AÔA‚¨ƒP§ŸI­©©ÉËË£»ŠîS[‹K$ÈÑQÝwm©©«ÃE"äà€1]¾ìª¦¦ÆÂ‚î*z.­H'Ož(~ã¶·Â0}ƒ¡††£ttúÖןÉ^¿‡•èXX„èèô‹ˆDeïg=Ž››Ý%ô\½ÿSíÚàñcÞ÷ßÿ’‘q»¥EŠãxXØ”ØØ¶ß|é*/rþÇ0 !|òäÁ+VLñòúPG§ëw€F€Ñ`IkfæícÇ =úCOÑÒ"CõíË*)ÙjllðþÖ»pa|IÉïR©ŒŽ~ýXAA…†ºÛÙ™¾¿•‚ž D#UWó“’~>{ö¦XÜ‚’ËÿÚ‰:::_~9kÍšßëÚ>ücúô½ŠÏ==Fk«|Ò¤AááÓ¼½?Tÿsg 7Ñ$8Ž_ºô()é碢r&S§µU¦ø(†a––FÅÅ[õõßûå­uëRøá~›˜L†T*·µ5ùä÷ÀÀ‰¦¦†ï» @;H‘ŸÿpÇŽ¼'Oj †L&SžAGÛµkQ``»?êÑ…ž?5yò·R©Š20 1:ººÌ¶n —Hz7ø<ˆÆ°·ÿ ¦F€a˜Êø`0tÍ/ß=Å88˜­\9EWWÅM]GR©\"i=º?ÄG¯ ¢1\\¬32Öêë3U^eÉä11óŒîÛ¡7Î04ÔWY †a»vÌ™3Rù!ÐË@‚h77û'V2:m^·ºº:}äôñÇC»³˜¾}õ##g*ˆŽ¶qãô  IÝY   $ˆ†qwwš?4B»z%•âÛ·ûu1ÁÁõïo®xª¢££clÜgÑ¢qÝ_  $ˆ&im•­_:'çn`à$òÍ_W—1{¶›««m÷×ÃdêlÛ6÷¿ÿi…˜L©Shé뻯¤ä÷î¯t?HÑÔ$Yº41?ÿÁ™3ÿܽ{Ñ'ŸLf0!¹ß¼ùtU5}ºëèÑL&CW—1dˆuRÒ'ii«ÇŽu\²$1?ÿ!]Un ¢jk_ûùý_ee}NÎú>rBÅÆ.ðõ†Z¶lÒÀ´}õ ðíÛçËdrKË~gÎüÓÐPßÀ@/%%láÂ1Ÿ~úýÉ“Etº#::šîÀ[TVÖûûÇ#„23×ô׿acæë;ŒË}ígh¨Ocy66&uuM»v-²±ùë_¬tt0W}}æ¶m9‰tÊ”Áê—4|¢¬§++«Nvp0;qb…ò§<år¼'æâìÙ››6¥/\8v÷îÅL&ðöBZñí~ÍuõêãU«Ž? 9y¹žò =9>BK–LøàÃÕ«Oòù¢ÄÄ>}TlÐhp Òs?oýúS³g»ýë_*?ý©)îÞ}zÄÁáƒ'Vš™õ¥»Е Az¨ÄÄ‚ØØÜÕ«=¿újv/øªkUUC`àa„ÐéÓᎎæt—º $Hƒãø¶m9ßÿËöí~+VL¡»œ.SW×¼lÙẺ¦“'W nGw9 k@‚ô,R©<"âlNÎݽ{—øû¥»œ.&ý¹rå±’’ß“’>ñôt¡»Ð Az‰¤5<üøåGŽ,Ÿ2eÝå¼­­² Nçå•îß¿tÁ‚1t—ÞÜ‹é)ø|QHHò³g¯ÒÒÖŒå@w9ï‹®.ãСe66¦Ÿ}vê÷ßë#"|鮼H¡¦¦10ð°HôgVÖ:gg6Ýå¼_†}õÕl6»_ttŽ@ð&&f~¿' Ô€³ú•—×&öë×çÔ©p6»ÝåtŸ ÊÖ®=ùñÇCããƒY,]ºËT@‚Ь¤ä÷ÐÐ#C†X;ö^`½g*,, ;:l˜Ý÷ßÚ¯_ºË B§Ë—]µê˜—×ÐC‡–ééiéåãǼeË’ŒŒX§N…“߬š¾ª@›3gŠ—/?²pᘄ„­„‹‹õ?nÐÑÑ™5ë_ÕÐ]èHzÄÇ_æpÒÿç|ââºóÇM{&6Û8+k­££ÙÂ…ñÅÅt—:Îbº›\ŽGE夤ü»`ùòÉt—Óƒ´´H?ûìÔO?=ø¿ÿ š;~¥Y3@‚t«ÖVÙ矟ÍË»ÿÝw!3g§»œG&“oÝšuò䘘ù¯A{O¿»ŸPøgXØ÷¥¥ÏSSÃÝÝè.§'b0tvîô8Ðò믳*+ëcbüzÁ· {7Hnòê•088¹¶öuvöú¡C­é.§G[±bбq'íõë7{÷.Ñè_6èõà,¦;üñ‡`éÒD¹?}:ÜÁÁŒîr4Ã/¿< û~äÈþG.72bÑ]P ä½{ô¨&(è0›m|òäJ #ºËÑ$¥¥ÕÁÁI66¦Ðu=–¶ßG|ßnÞ¬\°àÐС6çέ…×@g¹¹Ùçåm %s樨¨£» $È{”—Wºxq‚§§Ëñã+èý9uÍåà`öÃÿcaa4gÎÛ·á_¬zH÷%5õÆêÕ'ÂÂ<¾û.®¾ SSô´ÕcÆô_²$ñÒ¥Gt—þ®ƒ¼{÷þ{ÿþÿDG÷ªŸ)¤—T*ß²%óìÙ›ß~ë¿lü­wOws»˜\ŽoÝš•šzcÿþ¥ðÔ]†ÉÔÙµ+ÀʪߦMéÏž½úê«ÙtW‚éZþ)]³æDAÁoGŽ,÷ñq¥»œÞðˆ_[[ÓM›Ò_½îÚµþÅŠv ]¦¹Yòé§Gý•—‘±fôèþt—Ók-Y2ÁÔÔpõê|¾(!!þÅŠ^p¤k44—-KzõJxútx¯ÿ™ÂžàÎg¡¡ÉŽŽæÇ¯€±¢$Høý÷ú¥KêŸ>½ŠÍ6¦»mñôéËÀÀúº ø+Áiä»zðà?¿ƒVVÆYYk!>º“³3;/oƒ¡¡¾Ÿßÿ=xðÝåh)HwòóϿ͟pܸé髵ðWNiÇf÷ËÉùlèP›ùó<¦»m B]nî½d?¿Ñ‡‡jóÏÒËÐPÿĉ•>>®¡¡G²³ïÒ]ŽÖç=EÇ~ýuÖ† >Ÿ>~Â^ººŒøøe66&ëÖ¥ÖÔÖ®õ¢»"- BÅŽy Wbcç/_îAw-!„0 ûúë9VVÆÑÑ9µµMÛ·ûÁ¿Xu¸Ó9R©<22-'çn||ð?þ1‚îr@[?þXºn]ª—ׇññÁúúðùþá è®E`˜®™™¿¾þº éiiiø»  {#TÐ×`a±LGGKÿ¿ê÷igµ é7Nš_[z«Etð®-êšM˜8qâçŸÞ%‹êB8Ž0l.ÝUt·7nìß¿¿›WÚ6A&NœØ3ßX@ÏdooO˜§ã4îæ¨ƒP  @$€º^˜ ˜GGÇúúzÅD"Qdd¤›››‘‘ѸqãvîÜ)•JɶÎÎÎm®iÏœ9ðòòrb´¦¦&00ÐÑѱoß¾ãÆËÎÎîžíïÏû{Μ={SåþýûÝ·yïS/L„PQQÇ{ñâEJJJSSÓèÑ£‰‡š››ÇŽ[RRwçÎ-[¶œ:uÊÇÇG&“3TUU•––’‹×®]#G_½z5jÔ(ƒ´´´[·n-Y²déÒ¥?ýôSwn]{*++ÍÍág2(zOÏ™yóæñx<WTT„âý—«kG³§ïVÅ—¡®øœ"íBOŸ>%Gårù”)S¶mÛFŒr8©TJÎ  “““‰¶¾¾¾_~ù%ùè±cÇfΜI.síÚµ‹/V\‡Ãñöö~¯[ÔAOŸ>EþHb—ì뀀€€€€w\HOð^Ÿ3„NíEo˜––Fmï¢s rþüy>ŸãøéÓ§…B!Žã---ÇÒÒÒ‚Ãá´´´›}éÒ%{{û«W¯nÛ¶ÍÞÞÞÜÜ<88X KSn…ãxnnîðáÃõõõ pâÄ Ç[[[U6WìYÅá6{Ž(u̘1İ••U~~~›íŠŸ:u*ÑöèÑ£NNNr¹œxhöìÙG%—ieeUTT¤Ø¶¹¹ùÙ³gİ@  533³µµˆˆ‹Åä2]\\ÌÍÍ¿ýöÛ'N8::öë×ï믿& V?ƒÊŽB¥¦¦º¸¸˜ššÆÅÅá8nff†b³Ùjö ©Ûž3Ê«ko[TöUÇw«$Žã!!!¡¡¡µµµl6ûæÍ›Äĸ¸¸… >þ¼¬¬lôèÑ_|ñÑ_3gμråJtt´««kYY—Ë0a‡Ãi¯•P(Ô××OLLäñxGe2™B¡p÷îÝ*›766om†•Ÿ %%%&&&8Ž „P}}}›*,,$öBèñãÇVVV÷îÝ#k``ÐÐÐ@,“hNì`•‚‚‚¼¼¼***ÊÊʆ M,séÒ¥MMMGŽA-Z´¨©©éðáᆆ†ŽÌ ÜQD+@œœŒzõêU=Ñæç 9¿òÞQ¹[•ûªWƒà8.ìììFŒA¼<...<ÎÏÏ9r$±Ùeee8Ž2$++‹xôÑ£Gä°r+>Ÿ¯««»gÏ@ —Ë›››e2Y²SËŸMIDAT{ÍÛݤÎ?nܸannN¶]»ví–-[pOMMõññ!§óù|„ù†ÖFKK ƒÁxðà1š••åääD´½{÷.1C›a¢Î·Î ÜQD««W¯*ÎÙcD›Ÿ3äüÊ{GånUî«Þ– 8ŽÇÄÄ0Œ—/_’SX,–âµcccb³‰ƒL‹Åår•—£Ü Çñëׯûûûzxx\¸pAMóv7©óG¤ 3fÌ Û¥~~~‡V\&›Í.,,Tl{ëÖ­±cÇŠD¢êêj„qæ‚ãxYY‹ÅjSÊá·Î ²£B¿ýö›âœ=6Apí~Δ÷ŽÊmQ ¾S]]}èÐ!oor¢¹¹9ÙY ¸¸˜˜®««‹²±±©ªª"¦Ü¿ÇŽíµ‹År¹<##ƒÏ燅…Í™3‡Ïç·×¼ƒpOHH˜5k1C^EG‰D¢¸¸8___rÊäÉ“›››¯_¿žŸŸïç秸´¹sçîÝ»W¸u—ššÚÚÚj``Àf³ Fee%1½¢¢ÂÖÖ¶S¥¶§½îÕÑÑŒ[iZþœiÊPÙW=šbœ ·½/Éd2ooïØØX>Ÿoee•››KL_¿~½¿¿?qOk„ ëÖ­S Ψ¨¨#Fp¹\.—ëîî¾råÊöZ‰Åb‹•™™Y__Ÿ””Äb±Äbq{Í՜Ӓwæ æÍ›gggרØH<úúõë!C†L:õâÅ‹Ož<ÉÊÊruuuww—H$¸ÂûÆš5k†êééI.“˜^WWgffTXXXZZÊËË#f ôòòª¬¬är¹®®®ÄÅ|ôÎÇ Ê¥rN¢Ï›››ÕìÁŽïëŽèÈ1}éâbMŽÖÖ¾611`±t‰QƒQ_ßlaaDSuš¾Y²±Ù˜˜:wîHº Ñ|Çñ¯¾úÊÕÕµMsåQÓä§Ÿ~²µµÕ××÷ññÙ½{wUUùrǪìÃö"8((ÈËË«¢¢¢¬¬lذaÑÑÑĦùûû ‚ääd„ЫW¯Úë$ˆÖé`‚;;»#FO,‚‹‹ Ç#†óóóGŽI<#ËÊÊp2dHVVñè£GÈaåV|>_WWwÏž=@.—777Ëd²öš·‡B‚ܸqÃÜÜœl»víÚ-[¶à8žššêããCNçóù!Åë_5ŽãÅÅÅL&“8j¸sçBˆËå*άœ ê›H¥Òââ☘˜aÆ1ŒS§NÓ•;VeªL––ƒñàÁbzVV–““±iW¯^%fPÞLe Z§ã×Abbb ÆË—/É),KñŠ»±±1ñŒ$NLX,V›—J{­p¿~ýº¿¿¿¡¡¡‡‡Ç… Ô4o…³˜„„„3fm ˆ???âýŸ\&›Í.,,Tl{ëÖ­±cÇŠD¢·®zÆ mnM|ýõ׊3+'H{M„Bá™3gÈ«9r¹|ëÖ­¶¶¶íu¬Ê>T™ ÕÕÕ!âÌÇñ²²2‹Ely†r‚ÀÝ\€ª««:äííAN477'ŸR€üR¦®®.BÈÆÆ¦ªªŠ˜rÿþý;v´×J,ËåòŒŒ >Ÿ6gÎ>Ÿß^óÂq>¾ÍtÇ«ªªüýýmllŒŒŒÆOƨúU‡‡‡OŸ>]± ¹\>hÐ ÅOa´IõM¤Rittôˆ#úôéãèè¸yófòÔC¹cUöakkëäÉ“ûöíÛfÕ|>?88ØÌÌÌÚÚzãÆä½˜wOø²ÞlÑ¢E!ø}Ð%ˆßi“p@$€:Hu ê AÔA‚¨ƒP  @üg]/wíÚ5º«½ÁË—/•'B‚ôf'N¤»Ð{˜ššº¸¸´™ß‹P×AÔA‚¨ƒP  îÿcVç…~µ.ÂIEND®B`‚XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMDocumentRange__inherit__graph.md50000644000151400015140000000004011653571065024135 00000000000000b8781ffcc9e2225ec777dd7c096d015bXQilla-2.3.0/docs/dom3-api/DOMErrorHandler_8hpp_source.html0000644000151400015140000002024711653571065020336 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMErrorHandler.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  * 
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  * 
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMErrorHandler.hpp 830538 2009-10-28 13:41:11Z amassari $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMERRORHANDLER_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMERRORHANDLER_HPP
00024 
00025 #include <xercesc/util/XercesDefs.hpp>
00026 
00027 XERCES_CPP_NAMESPACE_BEGIN
00028 
00029 
00030 class DOMError;
00031 
00046 class CDOM_EXPORT DOMErrorHandler
00047 {
00048 protected:
00049     // -----------------------------------------------------------------------
00050     //  Hidden constructors
00051     // -----------------------------------------------------------------------
00054     DOMErrorHandler() {};
00056 
00057 private:
00058     // -----------------------------------------------------------------------
00059     // Unimplemented constructors and operators
00060     // -----------------------------------------------------------------------
00063     DOMErrorHandler(const DOMErrorHandler &);
00064     DOMErrorHandler & operator = (const DOMErrorHandler &);
00066 
00067 public:
00068     // -----------------------------------------------------------------------
00069     //  All constructors are hidden, just the destructor is available
00070     // -----------------------------------------------------------------------
00077     virtual ~DOMErrorHandler() {};
00079 
00080     // -----------------------------------------------------------------------
00081     //  Virtual DOMErrorHandler interface
00082     // -----------------------------------------------------------------------
00100     virtual bool handleError(const DOMError& domError) = 0;
00102 
00103 };
00104 
00105 XERCES_CPP_NAMESPACE_END
00106 
00107 #endif
XQilla-2.3.0/docs/dom3-api/inherit_graph_38.md50000644000151400015140000000004011653571065015733 00000000000000d3a66eb7912fc7659044cccfea36d910XQilla-2.3.0/docs/dom3-api/DOMException_8hpp__dep__incl.md50000644000151400015140000000004011653571065020166 0000000000000020a72f61a56588bba4ec283bf51b32c6XQilla-2.3.0/docs/dom3-api/DOMDocumentRange_8hpp_source.html0000644000151400015140000001757211653571065020511 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMDocumentRange.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  * 
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  * 
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMDocumentRange.hpp 527149 2007-04-10 14:56:39Z amassari $
00020 */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMDOCUMENTRANGE_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMDOCUMENTRANGE_HPP
00024 
00025 #include <xercesc/util/XercesDefs.hpp>
00026 
00027 XERCES_CPP_NAMESPACE_BEGIN
00028 
00029 
00030 class DOMRange;
00031 
00032 
00037 class CDOM_EXPORT DOMDocumentRange {
00038 
00039 protected:
00040     // -----------------------------------------------------------------------
00041     //  Hidden constructors
00042     // -----------------------------------------------------------------------
00045     DOMDocumentRange() {};
00047 
00048 private:
00049     // -----------------------------------------------------------------------
00050     // Unimplemented constructors and operators
00051     // -----------------------------------------------------------------------
00054     DOMDocumentRange(const DOMDocumentRange &);
00055     DOMDocumentRange & operator = (const DOMDocumentRange &);
00057 
00058 public:
00059     // -----------------------------------------------------------------------
00060     //  All constructors are hidden, just the destructor is available
00061     // -----------------------------------------------------------------------
00068     virtual ~DOMDocumentRange() {};
00070 
00071     // -----------------------------------------------------------------------
00072     //  Virtual DOMDocumentRange interface
00073     // -----------------------------------------------------------------------
00087     virtual DOMRange    *createRange() = 0;
00088 
00090 };
00091 
00092 
00093 XERCES_CPP_NAMESPACE_END
00094 
00095 #endif
XQilla-2.3.0/docs/dom3-api/DOMCharacterData_8hpp.html0000644000151400015140000000706611653571066017062 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMCharacterData.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <xercesc/dom/DOMNode.hpp>
Include dependency graph for DOMCharacterData.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMCharacterData
 The DOMCharacterData interface extends DOMNode with a set of attributes and methods for accessing character data in the DOM. More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/DOMException_8cpp__incl.md50000644000151400015140000000004011653571065017172 000000000000001b2dcce643f484f116225a436053df20XQilla-2.3.0/docs/dom3-api/inherit_graph_17.md50000644000151400015140000000004011653571065015730 00000000000000afb7d16702907292f8d227bec6e5a532XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMProcessingInstruction.html0000644000151400015140000002771111653571066023055 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMProcessingInstruction Class Reference

The DOMProcessingInstruction interface represents a "processing instruction", used in XML as a way to keep processor-specific information in the text of the document. More...

#include <DOMProcessingInstruction.hpp>

Inheritance diagram for xercesc::DOMProcessingInstruction:

List of all members.

Public Member Functions

Destructor
virtual ~DOMProcessingInstruction ()
 Destructor.
Functions introduced in DOM Level 1
virtual const XMLCh * getTarget () const =0
 The target of this processing instruction.
virtual const XMLCh * getData () const =0
 The content of this processing instruction.
virtual void setData (const XMLCh *data)=0
 Sets the content of this processing instruction.

Protected Member Functions

Hidden constructors
 DOMProcessingInstruction ()
 DOMProcessingInstruction (const DOMProcessingInstruction &other)

Detailed Description

The DOMProcessingInstruction interface represents a "processing instruction", used in XML as a way to keep processor-specific information in the text of the document.

Since:
DOM Level 1

Constructor & Destructor Documentation

xercesc::DOMProcessingInstruction::DOMProcessingInstruction ( ) [inline, protected]
xercesc::DOMProcessingInstruction::DOMProcessingInstruction ( const DOMProcessingInstruction other) [inline, protected]
virtual xercesc::DOMProcessingInstruction::~DOMProcessingInstruction ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual const XMLCh* xercesc::DOMProcessingInstruction::getData ( ) const [pure virtual]

The content of this processing instruction.

This is from the first non white space character after the target to the character immediately preceding the ?>.

Exceptions:
DOMExceptionNO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
Since:
DOM Level 1
virtual const XMLCh* xercesc::DOMProcessingInstruction::getTarget ( ) const [pure virtual]

The target of this processing instruction.

XML defines this as being the first token following the markup that begins the processing instruction.

Since:
DOM Level 1
virtual void xercesc::DOMProcessingInstruction::setData ( const XMLCh *  data) [pure virtual]

Sets the content of this processing instruction.

This is from the first non white space character after the target to the character immediately preceding the ?>.

Parameters:
dataThe string containing the processing instruction
Since:
DOM Level 1

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/DOMXPathException_8cpp__incl.png0000644000151400015140000004115211653571065020247 00000000000000‰PNG  IHDRPÃ*Xr•bKGDÿÿÿ ½§“ IDATxœíÝy\gþð' ÷!÷¡"rŠj/¯zª(h­×öPt»Ú_[±Õ­Çö¶öØmµõªÚªµ V«VÑZ«r(7È}B8C2¿?žîl’!Ÿ÷¾’Éß™yˆóÉÌ<Ãa†h#®¦ è-< µx@k!ð€ÖÒÑtÀûï¿ãÆ MW6yòä-[¶hº x<<]»ÿ~jjª···¦ ÉÈȰ°°ÐtðØxTâíí½mÛ6MWó¯ýKÓ%@wàÐZ< µx@k!ð€ÖBà­…^ÚÔfÚ´iìk[[[__ßµkך››³[[[>œP^^>|øðI“&½ð <NëèèxäȇÎÿöÛoß½{÷èÑ£ÍÍÍkÖ¬Ù²eËÔ©SéG¿ÿþûöíÛ÷îÝëââ"½\CCCŸõë×ÛÛÛ«XóÑ£G­ëÚµkªÌ°'JKK—-[Ö €Á@víÚeoo/‘HŠ‹‹O:µzõêƒBš››×®]kaaáààPPPðÝwß%&&~þùç\.—RQQ‘——çêêJgÕØØ˜ššJ_»¹¹-[¶ì믿 466njjúòË/W®\éââ"½\†aø|þ>üðÃ]»vÉ­°¼¼|Íš5111ª¬ˆZ¶‰rÒõ/Y²¤ ƒ.iP'ssó¡C‡ZYY7îý÷ß···ŠŠ¢ýðÃæææ_|ñÅ„ œœœ&Mš´gÏžŠŠŠ .ÐâããÙYݺuËÏÏ}»|ùr33³½{÷BöíÛgiiù /È,×ÒÒÒÕÕuÆ ÍÍÍr+”H$@Å‘öØÛB5Òõ˜™™­^½º—ƒ@oáp8Ï?ÿüíÛ·éÛË—/¯X±‚žÌ¡ôõõ_xá…Ë—/Ó·S§Ng†¾½~ýú”)SØ‘uttÞyç .;vìÂ… ï¼óŽŽŽü³ôtb±˜òǬZµ*((háÂ…?þø#!äïÿ;!dÁ‚ìø‰‰‰K—. 9vì˜ò5ºuëVXXXcc#!ä×_]¾|ykk«X,>tèÐâÅ‹çÏŸÿñÇ …B:rGGÇž={BCCCCC÷ìÙÓÑÑQZZ:mÚ´ßÿ}ùòå¡¡¡_ýµH$’®‡Ž@' …Ÿ|òɼyóÂÃÿýöÛöövBÈ´iÓ®\¹²råÊçŸþ§Ÿ~’)On%r*w òu€  999•••B„Ba]]{¹ËÕÕõÑ£Gôõ˜1cZZZòòò!MMMÉÉÉO?ý´ôÈîîî‹/>pàÀŠ+FŽ)ýQkkkKKKsssYYÙ¿ÿýo“æææ­[·º¹¹=ztíÚµû÷ﯯ¯ÿæ›o!§OŸf§½sçÎþýû7nÜxàÀöd ¡4BÈSO=°{÷n>Ÿ¿{÷îþóŸúúúÑÑÑ7nÜøøã¿üòËâââ£GÒ9DGG———ïÝ»÷óÏ?ONN>tè~öìÙ?þø£>ºsçÎ?þعê?ÿùOuuõž={vìØ‘püøq:üæÍ›»wˆØ»w/^,E•t^¨’ ep€&q8‰DB_s¹ÜÉ“'ÇÇÇ»ººþñÇcÇŽ555•™a˜¢¢".—Ëf$Ö«¯¾J_èèèx{{oÙ²…¢§§÷ÝwßÙØØ 2ÄÆÆ†ÒÔÔÔ¹†Å‹>óÌ3„ÆÆFºPv†,Ú—Àºuë^~ùå 6Ì›7ÏÓÓ“rþüùU«VÑ»‰Þ~ûm¶¶ .|ùå—C‡µ±±‰ˆˆØ³gÏœ9s!k×®urr¢‹8pàÀŒ3:—ÔÑÑqõêÕï¾ûŽÞGôÒK/íÝ»wåÊ•„ùóç?÷ÜsŸ}ö™@ 011a§RT‰¢…Ê ¤ó-ƒÀЋJJJ!ÆÆÆC‡ÍÍÍ !77×ÝÝ};uêÔ;w¾òÊ+2׳QW®\IIIùòË/###§L™"}þ§sOk„’’’Ï>û¬¥¥ÅÍÍMQ‘–––„éÞáÍ®Hppð÷ßÿùçŸÓ!•••46BFŒ1bÄúº¢¢báÂ…ì„FFFô;òðáë««å–Äçó% Ýt„GGGvL+++ºj§RT‰¢…ªR t¸¤  ·0 sîܹ'žx‚¾1cÆ?üÀžÏ!„´¶¶?~|„ ì±cÇ677ß¿?11‘žraÕÖÖ~ýõ×kÖ¬ñññY¹råçŸÞeßmmmÛ·oá…öíÛ÷ÿ÷ŠF“‰:ÊUUU9s& €^ŠF±´´¬¨¨ ¯sssÙ ÉÌÌÌŽ=zíÚµk×®ÅÆÆ²ã—””ÐÅÅÅ4kufaaÁårËËËéÛ²²2šs”W«¨E U¥èxÔ©¾¾¾®®®¦¦&55uË–-ååå‹-¢­\¹’Ïç¿ùæ›wïÞ-))ùí·ßÖ®]kee5oÞÿüs—¹sçB-ZdaañÕW_)/F$uttèèè´··Ó[hØ®Ûè=9]®ˆ4ZƧŸ~º`Á‚-[¶$%%ݺu‹2kÖ¬üç?ÿ©¬¬¤s˜4iÒþýû+++óóó7nÜxöìY:|×®]¥¥¥>yòäÉ“'+*ÆØØxíÚµ|ðÁ‹/¾8}úô7FGG;váÂ…?ÿü³*+ºvíÚÙ³gëëë—,Y¢££óÆo|ñÅcÇŽ]ºtikkkdddkkëO<AÇå•WvíÚµjÕ*‡3yò䈈ˆššBÈŒ3Þzë­ÖÖÖéÓ§/]º”ÇãÉ­çõ×_ßµkך5ktuuŸ}öÙ¥K—**õ³Ï>óóó322RTIç…Ò Ød*Ù0pqØþO@‘E‹UWWoÛ¶MÓ… l¥¥¥Ë–-£hv¡Ý¨ä_ÿú—µµõÉ“'Õ] ô.\ÒZ úˆ‘‘QHHHX¨F*@à€>bnnþæ›oö‡…j¤ÐÐZ< µx@k!ð€ÖBà­…ÀZKGÓ ©©©6lÈ0:ííÆF\n»AuïWÁmm5çp8C†Ôöþ²ú‘ÖVkBÄúúõ„Hú~éíífmmfµµü'Ÿ´ïèèèà·B€ kO<ñ}ÑÒÂkjÒmnÖ u›štÛÚx„}}±µuóˆ&½W€@0¤ºÚ ºÚ £ƒkkÛìâbÖ{Ë’+?ßœââRßÇË¥>ZSc £ÃXZ¶XY5››·s8LŸ-½ºÚ°¤ÄxÈáIIœQ£6ººÚº»ÛzzÚ»¹ÙzzÚaÉã!ô_†é»ÿ3–ºº¦¤¤Âì슬¬Š´´’‚‚j‘Hlaa4fŒ£»»“Ï0k]]^o,a˜„„‚èèÄóçÓêë›ÃÃÇÏëcaaÔ‹S."â{BÈÞ½+û~ÑŸßtåJf\\êÕ«ôôtfÌ8uªg/m|¹šiK MâÁƒ2¡°Çã:9Y¸»Û¹»Û¹»Ûzxع¹ÙèõYU ÀŸ$&'§2-­8;»2;»"-­¸²RÀápÜÜl=<ìÜÝm}|†ùø8ÙÚöúÙ•‚‚ê¼sîܽââ:ë%K&ΛçïädÑÛËUBã‡UQÑ—›’˜Xhb¢?k–wHˆ_'VeeCvveVV…tÒÑá::þ%¹»Ûéëëö}y@x`0km¥¥³?Ø?|XÞØØ:dˆŽÏ0zêããäéé`jªß7õTW7ž¸DM.‘Hÿ0::ñòå ±X46,,pòdþyÔÛŸ«¸¸î—_Ò££ÓÒŠíìÌæÎõ ñ?~$‡ÃÑti!ÒÓK[Zz h¦¦¶ŒŒRoØ> õ¼½éí7v..6ÆÆC4X$ÛA\\jCCË3ϸ……Κåmff¨Áªº4 ++«"..%&æ^nn•ƒƒùìÙ>ý3ù°ØD“yNNeKK»®.ÏÁÁ\:yzÚëé!<¨†yô¨Žö.@CNe¥€2b„%Û…š»»““E?¹6,/¯ê§Ÿîž=›\ZÊ÷öv\¼xœ9>æš®K%+ð°hò9s&9?¿ÚÑÑ"(hlHˆï„ .𮫠’ÒR~vöŸ§€h/­­"6±W`ººÚô“æ Ðo!ðÀ€ÑÖÖ‘šúˆý!<+«B hÑÓÓñô´g»Póð°ëo§J*+ÑÑ ´+‚aÆ.Z4>8دŸtE ºxX4ùœ:•TXX3lØÐY³Æ ˆäÃê²²ÊÛÚ:tuy#GZÓ‹3äBà€þ«¶V˜œ\$óœ¡C¼½ûâ18=ÔØØs/**!)©ÐÌÌpÁ‚€ßÀÀ‘\n?½ªJ¹xX4ùDG'Õº»Û…„ø>ÿü877[M×õØT„ÀýEÿy NOˆDâ‹ïGG'Þ¸‘ÅårçÎõ ñ›2Åc ßz¡5‡’H˜ÄÄ‚ØØÔ¸¸”ÊJM>¡¡..Öš.­ûD"qYY½tzø°¼½]Nrs³ Á x@cZZÚïß/‘y ޾¾îرÿëBÍËËÁĤƒÓ Ãܼ™•pùr¦PØúì³^ÁÁ¾Ï=7ÆÔÔ@Ó¥©‡–›|λW]ÝH“ÏÂ…ÎÎVš.M ØÄvÅž—W%K`PAà€¾Ã>‡†œÒR~G‡ÄÚÚÄÏo¸ƒÓCéé¥'Nܽp!­¬¬~üø‘!!~ÁÁ¾vvýú4T7hkàa‰Å’¤¤ÂØØÔ˜˜äš!M>aaãGŒ°Ôtiê$‰óó«éY D $x ·ôóÇàôУGµQQ ±±©ÙÙÎÎV „„ø¹»°®T§õ‡E“Ottâ¹s÷„¶€ç¿ßÚP»¤(ééé8;[!€@àµQå18£FÙiò18=Äç7:•›’”Thaa4¾xx Ï0M×ÕëOàaµ·w\¿ž›òË/éMM&ŸçŸgcc¢éÒzWç”›[)‘0&&ú#GZÓ'Ñ4|øÐ~ûh#tÃ0´wìì EÁéÿ} ¨¨¥¥=..5..õúõ,îœ9>ááãŸzÊuðt~5«­­ãÆ¬ØØ” î·¶ŠüýG„„øÍŸïoee¬éÒú" h< ªNÁ)Zeƒãéi¯5·éBÄbÉÕ«bcS.]Êhnn›6Í+,,pæLo}}]M—Ö×sàaµ¶Š~û-;66åçŸÓÚÚ:hòY° `èP#M—Ö×ÚÛ; jØß;²³+Š‹ë$ÆÔTßÙúP¨¦FxïÞ@} N¥¥GE%þüsZEEC` sxøø¹s},,Ýq- GZKKûÍ›9Ñщ/Þçp8S¦xû= ö’ÆÆÖ‚‚jÚ6 BÕ1 "hüIÉcpèí74ähÇ%jŠÕFGÿÙÁÈ‘Ö/¾8ñùçÇ 6TÓui\AË/¿¤ÇÅ¥ÆÇ?är9“'{ûΞícl<€oTS µ°Pn2pv¶’Ž@ZÖô7<ƒûròó«„¶úœª­ž9“L»"°´4^´hBXX ‡‡Öv¹Ö <Ê544_º”A“Ç4É=8Øwî\_CC=M—Ö €F ð "••‚´´bö18%%|±Xbccâë;€ƒÓÍÍíçÏÿÙž/(hì`ëŠ@u<*âó›®\ÉŒ‹K½víŽoÒ$÷°°À瞣§§£éÒú# ¥°°F:ÕBÌÌ ÙüCÿµµ5Õt±0P!ðh-‘HüàA½ý†} Ç5ʆíBÍÃÃÎÌÌPÓ•öµŽɵk´+‚ô–ÑÔ©žƒ¶+Õ!ð<®ºº¦ŸN‹ŠJHL,41ÑŸ5Ë;$ÄoêTO­¼çMš‹ŠjÙÄvÿ(<<ìµ¾pPíÁç7¥§—Ò.ÔØ>ŒŒ†Œí@ã÷1 ¢»wóccSãâR«ª´+‚à`_sóAùº§ÛÊËëÏŸO‹MIL,455˜9s4’Ïcihh¦ù'+«";»"+«¼ªª‘tŠ@žžöÖÖˆ@ À@5¨ƒÓC……5§N%ž;—’“Séêj³xñ„ùóý-4]×@‚ÀÓs¥¥ü îÓäcff0cÆè¿iÓ¼ÏE¤ê">,¯®F…x EÁñõÆv¡¦eÁ顚áÙ³ÉÑщiiŶ¶¦aaãÑA·!ð¨QqqÝ/¿¤ÇƦ$$ jôì³^ááãŸ~ÚËEgÍÝ$<(«©’NÈËËað<.X<ý} ½ý&+«"?¿ª£Cbiiìï?ÂÝÝŽ>ës_¢&WSSÛÏ?§EG'Þº•kh¨7oÞ¸°°ÀÀÀ‘8šì žÞðèQmllÊÉ“ 99•ööæsæø„„øŽ?©é9™”™YV[+'í`i‰ åxú ö18´ µììŠÊJ—ËquDÁé ‘Hÿ0::ñòå ±X46,,pÊôŽ¥<½*+«"..åìÙ{yyUæ³g#ù¨ŸtJK+~ð L(l#@>>N£G;â1JZ@cš›ÛÓÓeƒc` 7fŒã`{ NO0 “Pxþ|ZCCóÓO»Ñ^€qiŸz!ðô š|NŸN.(¨vr²xî¹±!!¾&¸hº.íTYÙ ÕBlmMi7ýô{` Càè;EEµ´—U¹Áññæînçèh;˜UTPPýãwλW\\çã3,,,pî\{{sM×¥xúM>§N%Ö nâèîŽ;Ðz—LÊÌ,kj’¼½Œ €Þ‚Çàô’êêÆ“'ïFE%fgWŒa쇮z¦¤¥GE%ÆÅ¥VV6¸»Û…„øÎŸï?j”¦ë,d"PFFiss;APxÔÁéUBaÛ… vE`nn8¾Hˆ/º"è3<š%‘0‰‰±±©±±÷ªªiòY° `äHkM—6è¨ÆŒq24ÔÓt±@@·É} ‡Ãqs£7¿Úâ18j!Ý—Ë™3ÇmÔž~‚M>11É55Bš|. tv¶Òtiƒ—LJO/miAèGxTÕÚ*bo¿Éʪ Á2Dç¿ à18êÄvE—*¶N›æì4]8h O#K’’ ccSÏžM®­º»Û…‡†…âG‹%%%|úsí.;»¢µUD:E ±c z€BÕÕ))ðœ>–—WõÓOwÏžM.-å?2$Ä/$ÄÇp‡ÀÓoµ·w\¿ž›òË/éMMmÎ!!~Ï??ÎÆÆDÓ¥ÁŸ::$¥¥ #í±†víæf‹ v<Âcp4«²R@»"9ÒzÁÿyóü]]qgvÀÓÿµµuܸ‘›rñâýæævš|æÍgmäÓïtŽ@YYåmm::\GG zˆ}:¾¾®¦ëØx`ð’y N^^USÓÿƒCCŽ‹‹ ¿Ð«bîEE%$%ZZ?ÿü¸ðð@Ÿaš® ȉw÷ï¿!‘HèÛºº&BÈСFô-—Ë]µjòâÅ4V(Æ&Ÿ î·¶ŠüýG„„ø…†ú[Zkº4P¨szø°¼½@ x`‘~ íc€ü÷rö18NN<ƒÓëD"ñÅ‹÷££oÜÈÒÕå ÿÔS®ØøýGNNå”)Ÿ(áÆM8×ϵ¶Š~û-;66åüù´ööާžr Ľp…H$.+«g#PZZI^^•X,é<<ì‡ ÑÑt½ýh­ööއËñœ~…a˜›7s¢¢._Îlnn›:Õ3,,pæLoüZÙ?͘±óÁƒòÎÿMp8œÑ£._Þ ‘ª ‚Ö_~¹—ÿÃáL™âì;{¶Î`,"‘8?¿šF zs)"€*x@{ÔÕ5edÈ>ÇÂÂhÌGzû úРôôÒ'î^¸V^Þè>>8Ø×Üi³_Û»7þÃã::Ä2Ãutxï¾²zõT=ÑÐÐ|éRM>\.gòdà`ß9s|ðÐÌJQÒÕå98˜KG OO{==D ¤x` ¢Á¡§nè…jx NŸ©­&'ÍœéÝå˜ÕFE%ÄÆ¦fgWŒeó æÏ÷wt´èƒ"¡ç*+þ%‘Èþ7Áår’’¶ÛÚšj¤*P‹úúæË—3ââR¯]{ £Ã›4É=8Øwî\_sÿ~ÉØ±N½]$tCç”›[)‘02ÈÇg˜«« ®"†A ™Çà<|XÞØØù18¦¦¸6½w¥§—®X±ÏÔÔ >þEãðùM§N%ÅÆ¦$%Z[›„… ôð°ëË:A-BC¿JH(”Î<\.g„‘§O¯Ó`U F|~Ó•+™Ñщ¿ÿž3dˆîŒ£Ã•?Û÷ÁƒòçžûìÝwŸÇY¾AI9ÒšþDHƒ"h+P3†aΜI5ÊÆ×·§mÉ} Ž••ñ¸qÿ{ ΨQ6::øvî;gÏ&ÿßÿïèH$’«W7zzÚKÚÒÒ——zýzÖ!:óæ Éår4U0ôбc¼óN´X,a‡ðxÜ;Â_|ñ V½¡¢¢!..566%1±ÐÄDÖ,ï?¹ÉçÓO/|ýõ†afÏû￈ËáME üüj±Xâæf«®¨Ô))©èÝwO¥¦oÛ6/"bêcM«ü18ÿ=c‹KÔ4E$oÞ|êØ±?áÂèêòV­šòî»!„±XrõêƒØØ”K—2ZZÚƒ‚Ɔ…Nžì[fµ@CCóر[¥oãÑÑáÝ¿ÿzûÐbeeõ?ÿœF“™™ÁŒ£CBü¦Mó¢¿.1 3~ü{eeõ„==kk“~xÕËËAÓUC46¶T³EÍήxô¨ŽaÔümÛ¶3/¾øä† Ax<ô%P²²ú÷ß?wî\ ‡CᄆúýõRå“H?‡ícÁ韪«_~ù`JÊ#é_ú­­M¾ÿþÕS§’~þ9­¢¢á™gÜŸ{nŒ©©Kµ[¾|ÿõë;:$„îÔ©ž?ü°JÓEA_()á_¼x?66%!¡ÀÂÂhút¯?++ã¹sÿÍŽÃãq¹\ÎŽá/¼0Qƒ¥‚Ú©ÜÜlU<ÿöÛQÇŽÝær Ç[¿~FDÄTïè!è) uçÎ ‡ßär9"ÑŸ?»¸Xß¼¹YfL<g€JIy´rå>¿¹so]„gg«… BC\\¬û¾6è11÷^{í½‡Ëå|óÍò矧颠Oed”ž;—rîܽ¢¢ZSSƒ–‘HÔÁ~ÊáBÈ‹/>ñÑGaèS‹ ­……=Š@sæ|™’òˆ¾æñ8C^}ƪUSÐ}ô6è>±XrèÐÍÏ>»ØÒÒÎFŠÇãdf~D¢ñ&+«B hÑÕåyy9°]¨á18ýßÉ“ ‘‘'†¡?ðKÓÑá=û¬×áïh¤0è3--íÞÞï¶¶Š!úúºàGÙAêÞ½¢Å‹÷…­?âñ¸ö‡½~œÓzk×þpþ|*!œà`ßo¾Y®ér@c’“‹‚ƒÿ­èS]]žÞ¾}+'Oöè˪ ÿ(+«ÏÉ©|ø°<;»2+«<'§²±±•2t¨Ñ¨QÖ …'ár9 ;Öá_ÿ }â‰Q}]1 8LÇVXX³eË™_Íäñ¸ÐAñxœÐЀW^™ìêj‹^Ô¢úúæU«ÿñG.!DQÚ!„47·]½ú (hlŸ1¾ÿ¹s)„HæÏÇÅlƒZllŠ®.Oæ”>K$‹Åm/¾¸÷7f½ñÆsèžqrp0wp0Ÿ2剷¤„O#Ðo¿eË„HêÞ‚³³åÿ} +«öÛoï56¶ëë«ôý‘Qš‘ñPW·/ÎãY[[÷0ð uuÛøñv„pòós5]È€4zôèžPö“v›“ﮪ8r||ΪUGÖ¯47Çak×7í399OÉ]áñ¸b1Ã0’Ÿ~JJJ*X½ÚÏÎθÛUôVà!„„‡‡Ÿ{øŸ‹ÜæAzoöd³÷üÿÓÞ ‘oHE 툭™3<·nÝ*///))9tè@ ð÷÷¯¯¯§566&$$ìØ±#))iÓ¦MÇŽ›9s¦Xüç£ SSSÙYñùü7nÐ×ãÆÛ¼yóúõëéÜþþ÷¿oÛ¶mìØ±ÒË-++»~ýºD"Y¶l™¢ óó󭬬T\iÝÚ]“®ÇÜÜüí·ßî¥A÷œ={vþüùr?ReßÑÉ»lÀJ¿"ëÖ­KNN>uêÔ£G¾û˜˜ÈÈH¢¸…£uõCý¶uu{* ús»í¥ƒž”¤õÔûŸ‹tëêÕ½9 tyÈŠcHBaÔ'<<<<<¼ËÑ!999ì[‰D2yòä­[·Ò·6l˜4iRGG;‚P(tvvÞ¿?6((hóæÍ짇ž={6;϶¶¶1cƬ^½ša˜5kÖ´··Ë]nII !¤¡¡An‘999ÒGfZ%{‰L==Ô{•«Ø”«¬¬¼víš:Êé;sçÎmnn–û‘Ü}'3\yVÞøåîVssóÛ·o³o¯_¿>|øpEU©Eïµ®ôôôôôôέK­«Ë©T§ÆfÓ½¶Ý«ßç×®]«¬¬ìÉÐnÕÛn{ï DJjV¯Ñ>5ÞÞ›=Ùì½÷ÿìã.¨ç•ôҦ轆ݹMjþ‡³fÍšóçÏÓ·Gݺu+÷¿'ìEFF=z”¾ ?yò$óßSÑÑÑaaaìÈzzz‡>xðàÇ|èСÇëêêÊ].]=³7nÜ8CCC{{ûO>ù„òÄOBìììØñ/]ºäêêjaaññÇ+_£sçÎ9::òù|BÈñãÇÝÝÝ›šš:::¶mÛ6|øpkkë+V°??ˆD¢ÈÈH[[[›ÈÈH‘HDOüÅÄÄxxxØØØ¬_¿¾­­Mºé3ƒõõõûÛ߬¬¬œœœ6lØ@¯Vâp8ÇŽóòò:tè§Ÿ~*·H™Õ‘»P¹•¯{Ÿ‘»‘‰âíù믿><>>^Ž@‰õññÑ××wqq9rä!DÑN¬©©122200Þ5ìkEûŽÅNNºjÀÊ¿\¦¦¦ß|óMmm-};yò䢢"¹UÑMtøða¶ÂÎ ‰a˜={öŒ=ÚÔÔôÙgŸ‹‹“{’­k´®.§ê¼š*6!Jî÷[ç¯k±X¼sçNwww“§Ÿ~úÎ;ж¼ôþºyó¦ÌâÐnO»•¦Þƒ.GèöÅ@oŸÒ;šÃá9räÈÈ‘#ÍÌ̶lÙB¬šô¬¤›‡ µïMé9÷¤f¹PÊç©d*™ÿšeY•Óöü²‡›BFß5l5Æ©îáa&!!ÁÜÜœaúM]]]-3Éï¿ÿnkkK§}øð¡Ý½{÷†©¯¯744¬©©‘™ç;ï¼Cùàƒd–›’’ÒØØ(rss,XÈ0Œ@ ÐÓÓ{ùå—KJJèß@UUUç3<ÁÁÁàÔ©S„ššéJ£ã¯X±båÊ•¶¶¶wîÜafçÎÞÞÞiii÷ïߟ8q↠è˜;vìX¸pá£GÒÒÒüýýßyçºèY³feggß¾}ÛÕÕuûöíÒõH¿^ºtéôéÓóòòÒÒÒÆŒ³}ûvZXXXŸÏß¿?!¤¶¶¶ó.Y% •¨|çöåžÎ™Q¼=gÏž}õêÕíÛ·«¸„Bá!CöìÙS^^þÝwßéèè…BE;ñàÁƒGŽaþºkØ×]d'g)jÀÊç¿,†a~ùåGGÇ!C†Ìœ9sçÎ………2•°¯é&JIIa‡wnHû÷ïwtt¼xñbuuõåË—]]];‡ô^ëêË3]VVvþüy:OåûK(ʬK/µ[¦AG»U±ÝöÞAˆÿ(djèíSzÿB–,Y"8@Y´h‘@ Ø»wo—«F'—n½½7Ù™÷°æÎP]ÎSÉT2ÿ5K/¨ËcÚîCªqSH뽆ݹMŒÀóÇXYY±Ó¾öÚk›6mbæèÑ£3gΔ™§D"™7oÇ[¶l™ÌrYºººS¦La¯‚{ðàP(‹Åׯ_§³êxâãㆡ×}² Ññù|¾“““»K<<M_gff²¯===ËËËéëË—/ûùùÑE§¥¥Ñ'Nœpuu•ÛXÛÛÛy<{xúôiWWWZÝÍíí튾îeVGÉBeÊݧ¬¾ <72ÓÕöT}/ÔÕÕéêê~öÙg|>_"‘466ŠÅbE“/\¸°®®Žéîíìä”’¬¼ñËÝ× Ãtttܾ}û½÷Þ3f Ç;vì˜Üªè&’ù?I¦!3†NNýøãrÿcî¥ÖÕ—­K•Ö¥|*¹«©¨ už¿Üï7¹_×îîî‡f'üþûïé<»üv•Y—^j·L´[ÕÛ­ô5„¨ñB¦æÞ>eþsINNfþûŸ‹ôkå«F‡H7>Ø›j©¹óT—óT2•ÌÍÒ êò˜¶{ÇjÜÒz¯a÷ÇKÚ!999£F"„˜››ÛÙÙÑߘ¥¥¤¤°oÃÃ㢢†‘{òñرcñññW¯^ŽŽŽ‰‰‘Y]íöööøøxú;Šžž^vvvPPP@@ÀáÇI5ärÿ²Åä~“ÒY½zuFFÆÚµk颢"777úÚËË+44”¾.,,´··§ŒÌœ9“í8ŽÙÓÓ“ÞnÔYee¥X,¦›ŽâêêÊŽI«Ut9Ÿ¢Õ‘»PU*шΙ(Þžžžžäqö‚……ŵk×nß¾íää4eÊ”ß~ûËåÊ\(ŠD" ™òØÆ \çÉ•4`ÒUã—ÑÔÔôÓO?B&Nœ¸eË–´´´Í›7oܸQîÈtÉiHyyycÆŒa?=z´ÜY¡u †ÖÕåTrWSÅ&D|¿Éýº...öóóc'ôññ¡/”ï¯ÎÐnU»•¦Þƒ%#ôäB Ú§4òßÿ\¤_³­…¢ÖÅRûÞìyÍDñŸ¡òy*šJÉ1žŠÇ´¤gÇ=Ù2ú¬ak>ð0 óí·ßÎ;—¾]ºté{ï½Çv AijjÚ±cGPP;ä™gžill¼yóæåË—e:)++[¿~ýÎ;'Ož¼mÛ¶ˆˆöîEZZZ-Z™œœüÍ7ß(í±zñ+..Þµk׌3Þzë-:ÄÁÁ¡°°¾NIIùðÃék+++65ñùüÛ·oÓá4ÎB²³³ikèÌÖÖ–ÇãåççÓ·yyyŽŽŽôµLÓQquä.T•J4¢óF&Š·'ýST}/´´´H$’¨¨¨ºººW^y%$$¤®®Nîä/^”nœä¿7†•––ª²2“wÙ€•4þΆyñÅiÿ­„‡óÜsϱ=rÊûÕ&ÓFŒ‘‘‘Á¾}ðàÜY¡u †ÖÕåTrWSÅ&D|¿Éýºvvv–îg‰¿òýÕÚí j·,õ„(¡'ZÐ>‹¢µèܺ¤õÆÞìyÍDñŸ¡rЦRrŒ§â1-éÙ1d—To„}Ö°5xª««+**JKK¯_¿ZPPðæ›oÒ¶nÝZUU5}úô‹/æääœ9sfâÄ‰ŽŽŽÒ¿Wñx¼… FDDL˜0ÁÆÆ†Î0LDD„Ï+¯¼Byë­·lmm×­[§¼˜¶¶¶ööv==½–––mÛ¶BéGB¡P•‘F‘H$/¿üòºuëŽ?~åÊ•ØØXBÈòåËÿùÏÒkrþñÐÇ ! ,Ø´iSQQQZZZPPÐîÝ»éð×_=777!!aóæÍl÷Ù2õèêê.^¼xýúõéééï¾ûîÒ¥K•zàÀ††å«#w¡rjœÜLoOJõ½ÀápfÍšuêÔ)@ÐÞÞ®««khh(wò˜˜˜yóæÑù˜››B~øá@ðÕW_I/ZQ[’ž\•¬¨ñS2 ÒØØxÅŠ‹/>þ|~~þ­[·6lذdÉ’.«Räµ×^Û¸qã¥K—jkkéÕÿô« ­‹ ¾ÖÕåTrWSQê<¹ßor¿®×¬YSQQqñâÅ­[·ª²¿Ú-!d°¶Û^:ér„Çú£Ð²öù¸­…tó z{oö¼f¢Âב\5ýƒRý˜ö±Ž!—’M¡±†­ü¸Ç¢ú=<¬aÆ-]ºTæâQ¡PøÖ[o3ÆÐÐÐÛÛûƒ>`»¶$ÿ½Š,>>ž²{÷néá‡2dHVV;«»wïr¹ÜèèhFÁµ¼Ô_|1tèÐaÆ}óÍ7K–,±±±‰DÏ<󌱱±Ìr™¿^Ü)w{~ýõ×¾¾¾´ßÌ3gÎØÛÛ×ÕÕµ¶¶nذÁÁÁÁÌÌlÉ’%|>ŸÎM ¼ôÒK–––«W¯njj¢öÀ#FŒ°²²Z·n]KK‹t=Ò—BÖÕÕ-_¾ÜÒÒÒÞÞþ7ÞhiiQRmçìk¹ •;PùÎí³{xändFñö¤S©¾†9qâĨQ£ôôô<==cbbäNÞÞÞ>gÎéÂ>øàssóQ£FÑë.†‘»ïè ™ÉUlÀr?#¯A2 ÓÑѱ}ûvggç·ß~›îDE-Jæ2k™v"‹¿üòËQ£F™™™ÅÄÄX[[ËSúµºZWŸÝÃ֥bëêrªÎ«©¤ už¿Üï·Î_×;wîtuu522zòÉ'é ]î/¦¯Ú-ÓW÷H ÝªÞnYê=Qe„Çú£Ð¦ö©ü?é×JV­së꛽ٓšéhrÿ ºœ¿ŠSɲ*?¦ícÈÇÚ}Ó°ûE§ œÌÉ\h7*´Ïá$bccSRRØ·ÑÑÑôJåÔÕºísx´I÷šF¨«Ý2ä9' )šý^eú_ûÔÈQP Äš{I7…ºv?í´„´´´eË–%''777ß¾}{Ë–-¯¾úª¦‹‚M@þ(ú€Ž¦ Y¦¦¦ýa¡©ú³7677ÏŸ?¿ººÚÅÅåå—_V¥… u«{MH#Ðn¡oà{UÆ@\‹Xs/éá¦è½†ÍaTë&R‹-"„œþá‹/îÕÕåq8™†‰Äǯ™2ÅC#µÎðôÈäÉ––ƵµB¹ŸZZOšäÞÇ% ÷ðô—ËY° @W—×ù#]]ÞÂ…\®ì™è3<=5¾¿H$î<\$ÏŸïß÷õ §§Æîä4´óðaÆúù ïûz€…À£aa2WµéêòÂÂ5UP!äøñãîîîMMM„‘Hikkkcc)‰èuS¿þúëðáÃããã·mÛ6|øpkkë+V°gH:OE‰õññÑ××wqq9rä!¤££Cîä555FFFb±xçÎîîî&&&O?ýô;wèõõõûÛ߬¬¬œœœ6lØÐÚÚJáp8ôòò²¶¶þä“OŽ92räH33³-[¶È̶óês8œ5kÖœ?ž¾=zôèÖ­[y<;‚‘‘QddäÑ£GéÛððð“'O²WµEGG‡……uo#+Úж|LLŒ‡‡‡ÍúõëÛÚÚžxâ B TÒ—´)ÚDÇŽóòò:tè§Ÿ~*·ÈK—.¹ººZXX|üñÇìŸïäääãã#}ðêééY^^N__¾|ÙÏÏ즥¥1 ãááqúôiúiff&ûºóTuuuºººŸ}öŸÏ—H$b±XÑä .¬««cÆÝÝýðáÃl1ßÿ=!¤½½Ç㥧§Ó§OŸvuue†’œœÌ0L{{»ÌkšCØÙ2Ý <üñ‡••;ík¯½¶iÓ&†aŽ=:sæLéy*ÉŸ7²êÛPzË3 sâÄ WWW¹GÉ&¢©Cz³H#„ÄÇÇ3 CïVÊÉÉQ²P™ŒR< ^}¹¹ùêÕ«322Ö®]Ë,,,´··§ýŒÍœ9³  €÷ôô$„¹¹¹Ñ!^^^¡¡¡Š¦²°°¸víÚíÛ·œœ¦L™òÛo¿q¹\¹“ …B‘HdaaA)..öóóc‹ñññ!„TVVŠÅâQ£FÑ®®®%%%ôµ‰‰ !DWWWæµÌlåÊÉÉ¡ó477·³³KII‘!%%% €}Å0ŒÜëÙäf ¹YõmH‡³#{zz²+.CÉ&¢gÉØÍÒËýKû‘»PU*è%xŠ‹‹wíÚ5cÆŒ·Þz‹heeÅ»óùüÛ·oÓáôˆÙÁÁ¡°°IIIùðÃMÕÒÒ"‘H¢¢¢êêê^y啺º:¹“_¼x1((ˆtvv–î -##ƒbkkËãñòóóéÀ¼¼÷Åãñ.\1a™ÅÑ™KS´‘U߆tøë¯¿ž›››°yóæeË–ÑB¡Pz鵉8ÐÐР|ëÉ]¨ÜªS~éIDAT}Dúzª.ïáùúë¯}}}ÛÛÛ†9s挽½=½ÝE ¼ôÒK–––«W¯njj’¾i¤µµuÆ fffK–,áóùtx穆9qâĨQ£ôôô<==cbbäNÞÞÞ>gζªŽŽŽ;wººº=ùä“ô,Ã0uuuË—/·´´´··ã7ZZZ˜¿Þ–#ó:33Sz¶Ì_o³6lØÒ¥Ke¶P(|ë­·ÆŒchhèííýÁ477ËÌ<>>ž²{÷n™áŠv‡Ü¬ú6¤[þÀ#FŒ°²²Z·n]KK‹H$zæ™gŒ™¿vZ ú&R²ÝØ{xd*w ’ÖÅàP7#uä?zôèÎ'"`ÉÍÍusscª¾\h7*©ªªÊÌÌœ:uªšë€Áj`?x@ mcjjѪ‘J¤á’6èGpI¨Îð€ÖBà­…ÀZ ´h-ÐZ:2ï3333335R €zýå9<ÕÕÕ,€²¶¶Öt  %þx´ îá­…ÀZ ´h­ÿmR5W*­IEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMElement_8hpp__incl.md50000644000151400015140000000004011653571065016632 00000000000000e689637ffb25ac13a5651156593d3cacXQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMError-members.html0000644000151400015140000001240411653571065021210 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMError Member List

This is the complete list of members for xercesc::DOMError, including all inherited members.
DOM_SEVERITY_ERROR enum valuexercesc::DOMError
DOM_SEVERITY_FATAL_ERROR enum valuexercesc::DOMError
DOM_SEVERITY_WARNING enum valuexercesc::DOMError
DOMError()xercesc::DOMError [inline, protected]
ErrorSeverity enum namexercesc::DOMError
getLocation() const =0xercesc::DOMError [pure virtual]
getMessage() const =0xercesc::DOMError [pure virtual]
getRelatedData() const =0xercesc::DOMError [pure virtual]
getRelatedException() const =0xercesc::DOMError [pure virtual]
getSeverity() const =0xercesc::DOMError [pure virtual]
getType() const =0xercesc::DOMError [pure virtual]
~DOMError()xercesc::DOMError [inline, virtual]
XQilla-2.3.0/docs/dom3-api/tabs.css0000644000151400015140000000210711653571065013640 00000000000000.tabs, .tabs2, .tabs3 { background-image: url('tab_b.png'); width: 100%; z-index: 101; font-size: 13px; } .tabs2 { font-size: 10px; } .tabs3 { font-size: 9px; } .tablist { margin: 0; padding: 0; display: table; } .tablist li { float: left; display: table-cell; background-image: url('tab_b.png'); line-height: 36px; list-style: none; } .tablist a { display: block; padding: 0 20px; font-weight: bold; background-image:url('tab_s.png'); background-repeat:no-repeat; background-position:right; color: #283A5D; text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); text-decoration: none; outline: none; } .tabs3 .tablist a { padding: 0 10px; } .tablist a:hover { background-image: url('tab_h.png'); background-repeat:repeat-x; color: #fff; text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); text-decoration: none; } .tablist li.current a { background-image: url('tab_a.png'); background-repeat:repeat-x; color: #fff; text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); } XQilla-2.3.0/docs/dom3-api/examples.html0000644000151400015140000000322211653571065014700 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

Examples

Here is a list of all examples:
XQilla-2.3.0/docs/dom3-api/open.png0000644000151400015140000000016611653571065013647 00000000000000‰PNG  IHDR à‘=IDATxí1 “ت¦@@   ]01ÀQXY~Jr?D>„¥¶þ’n¼ áFÍ  }ÈúÂéãÏ\ ÄáÿòIEND®B`‚XQilla-2.3.0/docs/dom3-api/inherit_graph_21.md50000644000151400015140000000004011653571065015723 00000000000000e358fe38661f92eef2505da195ad6999XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMRangeException__inherit__graph.map0000644000151400015140000000024111653571066024411 00000000000000 XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMXPathExpression__inherit__graph.png0000644000151400015140000001156011653571066024617 00000000000000‰PNG  IHDRÛuH÷‰bKGDÿÿÿ ½§“%IDATxœíyTSÇÛÇ'!Ê¢aih b ‹x (¥ÇÚ²Hkd‘*Êâ)x”EÄ"ôÔµUÀ†E¡ "ŠZË©€àˆHq©¢TöE…ì ÉûÇý½·1„¸ä‚óùkîsgyfæ›gæ.Ipb±@ ˜¯h 瀊„` ¨H¶€Š„` ‚äÁåË—÷ìÙ£(W o'eee’‡Ï)²···¼¼|éÒ¥oÔ#ÈÛJ__ß½{÷¤Œ„±ùâââÞˆ?·ªªªï¿ÿ^Ê÷‘l ÁP‘l ÁP‘l!ãZ{`oo¦õôô.\B"‘P#—ËÍÉɹyófww·¡¡¡———’’RÖÀÀàøñã8Í¿cÇŽºººÜÜ\6›‹Þ#»~ýz|||zz:F“lWMMÍÒÒ2,,ŒB¡LÒçÜÜ\ƒñ:‚RYY9™ _9¾¾¾¯»õ™©H@jj*…B‰DííígΜ 11Çzzz?~lllŒT522rûöm$mbbâëë›’’òÑGihh°X¬ääd&Ù®X,f0YYY?þøcjjªL»»»ƒƒƒKJJ&Ó‘W2&/‰††Æºuë^w+3vÕ&‘HÚÚÚºººVVV?üð…B9}ú4rêØ±c$)))iñâÅT*ÕÆÆ†N§÷ôô”––"¬­­«ªªÐªª««-Z„úùùÍž=;==‘‘¡££ãåå%Õ®ŽŽŽ±±qDDÄÝ»wÙl¶LE"Ñððð$;"É”Çâ1{öìÀÀÀ×ÝÊ”Y]]½fÍš‘‘@EE…ŸŸ—Ë…B:îæææææF§Ó…Bagg§½½}CCƒ§§gcccvv¶§§çªU«˜L&RÛØRHÎÎÎÞÞÞ/^ŒŽŽÊ,Ž416-‡[¹remm-rXVV¶~ýz$"¨ªªzyy¡³–.]ZUU…¾9zùòe;;;43@ˆŽŽ.--ÍËË+--ŽŽ&d/5H£££€šššÍ›7»¸¸¸»»Ÿ8q°eËÀêÕ«Ñüõõõ>>>+V¬ÈËË“c¸~ýºŸŸŸ››[JJŠ@ œ…;wîLrÀe%G˜ÉdîÝ»×ÕÕÕÃÃã×_åóù{{ûòòrÿ•+Wž“Ìljjêé陕•µ~ýúyóæIžâr¹‡ÍfwuuýòË/óçÏ×ÔÔd³Ù»wï611ÉÍÍ ÉÌÌ:|ø0àìÙ³hÙ7ndffFEEeee¡á©P’ fP\\œðÓO?ݸq‘>: &&&“p™FÉnø`¼R@,s8"‘èâârþüy• .È,®®®¾|ùò±i9Àáp"‘胂ÇÛÚÚ" wMM……ŬY³$3‹Åâ§OŸâñxTÄ(›6múꫯ–/_îïï?<< ‰GŽ ÓÑÑ!“É‹5ÖOOO55µÏ?ÿ€N'R¡$ˆ]æ,BBB¨Tê‚ 6mÚ„F}dTUU'9à2hB¡ðÒ¥K¡¡¡ …F£mذmhÕªUË–-LfO2y®l444¾þúëß~û-115öôô¸»»£‡êêêHÂÐÐÐÛÛK¥RËܹsçÎ;^)MMÍäääÂÂÂììlSSSooï?þx¼â“§££C__q^[[»¥¥ÅÚÚZ2CKK‹©©)z¸téÒŸþ9 @jÉF(//ollLNNŽŒŒ´³³“Œ c¯—¡££ãÀÇÄÄd<'utt’×øãUÆ™:P†††ýýýhILrÀeÑR C$!ã 000@ÒÕÕEú;^_ˆ<%ûúúŠŠŠ¬­­>ƒgÏžœœŒŒ²2þ¯ ££ÓÓÓƒ,p---µµµ¾¾¾2Kñx<‘H/ +**bbbŠ‹‹Ç+>IÄbñ¹sç–,Y‚:::;vÌÊÊ ÝJr¹Üüü|É©²°°`³ÙwîÜ©¯¯—¬m`` %%%88ØÒÒÒßß?11ql•‚ÇãÅÇÇÇÇÇòÉ'½„’BJ‹#sÈ…{{;"q !‘I8‘HkD›ÐÒÒÂãñÝÝÝHhèêêB„8Õ.ÈdÊ«¶X,Þ¿ÿêÕ«cccoݺU]]Ømll233{{{Ÿ§È9sæxxx¼)fííš}}šúú¦ªªBEû2Íz'H=׆ÈÇ’%{ÚÚ¶o_á¢h_¦=pù²Ü»×ÕÖ68}ú¦¢}™ @E¾,gÎÔ+++ÚÛ¥¿ä™*P‘/…H$.(¸)Œ¥ââE{4íŠ|)nÜx28ˆ~Ów´°°~tT¤X—¦;P‘/EQQðß²jj+ПT¤ü£ÅÅ BáA‘@P**º¥@—fP‘òsùòßL&OÒ"Žž;w›Ï‡w%å*R~Ξ½¥¤$ýeP6›[Yù@!þÌ  "å„Åâ•–6½ŽÁãñgÎÀ…[~ "夼ürÓGŠÑQÑÅ‹Í,oì)Èd€Š”“¢¢[ã=åó…eew߬;3¨HyæTVþ=Á+EEðV¹œÀ7-äÇöôü‹–—ß‹=[SójQRÂS©ZŠpmÚ3cõùµ¢¢B˜;W=|÷]M€¤"7pÕ†` ¨H¶€Š„` ¨H¶€Š„` ¨H¶€Š„` ¨H¶€Š„` ¨H¶€Š„` ¨H¶€Š„` ¨H¶€Š„` ¨H¶€Š„` ¨H¶€Š„` ¨H¶€Š„` ¨H¶€Š„` ¨H¶€Š„` ¨H¶€Š„` ¨H¶€Š„` ¨H¶€Š„` ¨H¶ÀÖ/š–——?yòDÑ^L™ææa@FF†¢‘GGG¦h/$c‰iúóx¼Š²2YÑ^ÈIAA¢§ý9°#§NR´o 8œô?D)¸„` ¨H¶€Š„` ¨H¶€Š„` ¨H¶˜~Šü믿ÂéÓ§QKII ‘H¼sçrÈb±¢¢¢.\¨¡¡±xñâ„„¡PhiiAnvŒMŒN¯±oòBog˜»ùB¬¬¬bbbœœœH$Ò¿ÿþ»eË–¸¸8 ÀÈÈÈâÅ‹ÉdòÞ½{ŒŒš››cccËÊÊÊÊÊH$ÒŽ;¦Ú\uuõ¼yó^C?¦Œ|þO?}‹þ9<<<<<<^˜Çã™››ŠÅâàà`kkk>ŸœŠˆˆ°±± …hf&“ùþûïÓétÔòèÑ#¤ãhb<=’¯/Ó€½g6ÓoՉĜœœ£G&$$dggçää(++#§rsswïÞ­¤¤„fVWWŠŠÊËË›xÕûý÷ß­¬¬ÔÔÔ(ÊÞ½{'vàܹs ŸŸojjÊb±úKJJæÏŸO&“ÃÂÂx<b¬¨¨044¼víš@ ˆŒŒÔÓÓ#“É‘‘‘pþüyKKKUUUvüøq¤‰±FIÿ‡††¾ùæ]]]*•Áår8.//oÁ‚ÚÚÚû÷ï—{xŒ¢?Ï1ɉ سgjA$Òßß/•³¦¦F[[{lhDÃÃÃD"qãÆ¹¹¹€¾¾>±X hlly¤Îõë×ûûû÷ôôèééݸq­ÍÙÙùáǵµµÆÆÆñññˆñË/¿¼té“ÉÜ·oŸ»»{[[[SSÓ‡~Íd2UTTètzww÷‘#G“É”i”Œè>>>?njj277G¼]³f ƒÁÈÌÌ ¼p öbätU¤H$ruuURRòõõEˆ"Ÿ={&•¹ººZWWwEòx¼û÷ï3™ÌÑÑÑË—/ƒÿ_¬'ø 3 *•jii‰¨­­©© 9,((066–2š™™uww#é²²²E‹ *++8p€Á`ˆD¢‘‘‘ÑÑQ™FÔ[>Ÿ¯¤¤ÔÜÜŒÔsöìYcccÄÛÊÊJ$˜Ü~ƒŠœ–«6 //¯ªªêÒ¥K………%%%ˆ‘D"½÷Þ{R™ÍÌÌ&¨H$>|øÐÅÅÅÚÚ:''GòÔØyEÛ ¼{÷nHHˆd~$affÖÑѦ‘Ä?ÿüC¡Pkv''§ÖÖV--­ÊÊÊÚÚZ*•jggwõêU</Óˆ6ÑÛÛ;::jdd„£ éëëÐ=Ì´D!Ÿƒñ˜dŒìììÔÒÒÊÈȋŠzzzh\ ·³³C¯l¼¼¼Nœ8ahh˜––6AŒd³Ù***%%%"‘ˆÃá‰9^¤ikk#“ÉË–-Cƒ´T8<}ú4F“ºx¢R©h… ãþýûl6ûÊ•+b±˜Çãåää()) È4JÅÈ»wï"õIy;ç’#_±Xdii×ÓÓ EÎîÞ½»§§ÇÉÉéÏ?ÿ|øð!Fóööær¹›6mš NÇçó‰D"‡Ã‰‹‹ŒŒŒ §úûû{ž ‰6nÜšŸŸ_^^~þüy´ª­[·¶´´Ü¼y3&&Æ××Wª¡Õ«WïܹóéÓ§MMM...iii8ÎÙÙùÌ™3ÃÃÃ|>_YYYMMM¦­DYYÙÓÓ3,,¬µµµ¹¹ù»ï¾óññy#‹ý‘xŽÉÄÈœœ•¿ÿþµÔÕÕáñøÂÂBäÉd†‡‡›››«ªªíÚµËÎÎÎÓÓs‚)‹“’’´µµçÌ™søðáuëÖ‘ÉdñøûÈ”””… "·œŠŠŠ(Êàà R[VVÖܹsuuuCCC9ŽTŒÞ°aƒ–––ŽŽN`` ‹Å‹ÅFFFD"ÑÌ̬¤¤É9Ö(YÕàà ŸŸŸŽŽ…BÙ¶m‡ÃÏ”‰3î aíÚµ€WþÆ.ŸÏohhX²dÉ«­VŠ––Lç ÁápȰc„é·jË‘H|Ýr„¼*Þ E¾fÍš¤h/¦=P‘¯ 2™L§ÓíÅ´*‚- "!Ø*‚- "!Ø*‚-0÷ù“'O¦éè@^ ˜Sä­[·à]½·l=E„@à>‚- "!Ø*‚- "!Øâÿÿ-ÆÅv©Š,IEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMEntity_8hpp__incl.map0000644000151400015140000000003511653571065016611 00000000000000 XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMText.html0000644000151400015140000005377011653571066017427 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMText Class Reference

The DOMText interface inherits from DOMCharacterData and represents the textual content (termed character data in XML) of an DOMElement or DOMAttr. More...

#include <DOMText.hpp>

Inheritance diagram for xercesc::DOMText:

List of all members.

Public Member Functions

Destructor
virtual ~DOMText ()
 Destructor.
Functions introduced in DOM Level 1
virtual DOMTextsplitText (XMLSize_t offset)=0
 Breaks this node into two nodes at the specified offset, keeping both in the tree as siblings.
Functions introduced in DOM Level 3
virtual bool getIsElementContentWhitespace () const =0
 Returns whether this text node contains element content whitespace, often abusively called "ignorable whitespace".
virtual const XMLCh * getWholeText () const =0
 Returns all text of DOMText nodes logically-adjacent text nodes to this node, concatenated in document order.
virtual DOMTextreplaceWholeText (const XMLCh *content)=0
 Substitutes the a specified text for the text of the current node and all logically-adjacent text nodes.
Non-standard extension
virtual bool isIgnorableWhitespace () const =0
 Non-standard extension.

Protected Member Functions

Hidden constructors
 DOMText ()
 DOMText (const DOMText &other)

Detailed Description

The DOMText interface inherits from DOMCharacterData and represents the textual content (termed character data in XML) of an DOMElement or DOMAttr.

If there is no markup inside an element's content, the text is contained in a single object implementing the DOMText interface that is the only child of the element. If there is markup, it is parsed into the information items (elements, comments, etc.) and DOMText nodes that form the list of children of the element.

When a document is first made available via the DOM, there is only one DOMText node for each block of text. Users may create adjacent DOMText nodes that represent the contents of a given element without any intervening markup, but should be aware that there is no way to represent the separations between these nodes in XML or HTML, so they will not (in general) persist between DOM editing sessions. The normalize() method on DOMNode merges any such adjacent DOMText objects into a single node for each block of text.

See also the Document Object Model (DOM) Level 2 Core Specification.


Constructor & Destructor Documentation

xercesc::DOMText::DOMText ( ) [inline, protected]
xercesc::DOMText::DOMText ( const DOMText other) [inline, protected]
virtual xercesc::DOMText::~DOMText ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual bool xercesc::DOMText::getIsElementContentWhitespace ( ) const [pure virtual]

Returns whether this text node contains element content whitespace, often abusively called "ignorable whitespace".

The text node is determined to contain whitespace in element content during the load of the document or if validation occurs while using DOMDocument::normalizeDocument().

Since:
DOM Level 3
virtual const XMLCh* xercesc::DOMText::getWholeText ( ) const [pure virtual]

Returns all text of DOMText nodes logically-adjacent text nodes to this node, concatenated in document order.

Since:
DOM Level 3
virtual bool xercesc::DOMText::isIgnorableWhitespace ( ) const [pure virtual]

Non-standard extension.

Return true if this node contains ignorable whitespaces only.

Returns:
True if this node contains ignorable whitespaces only.
virtual DOMText* xercesc::DOMText::replaceWholeText ( const XMLCh *  content) [pure virtual]

Substitutes the a specified text for the text of the current node and all logically-adjacent text nodes.


This method returns the node in the hierarchy which received the replacement text, which is null if the text was empty or is the current node if the current node is not read-only or otherwise is a new node of the same type as the current node inserted at the site of the replacement. All logically-adjacent text nodes are removed including the current node unless it was the recipient of the replacement text.
Where the nodes to be removed are read-only descendants of an DOMEntityReference, the DOMEntityReference must be removed instead of the read-only nodes. If any DOMEntityReference to be removed has descendants that are not DOMEntityReference, DOMText, or DOMCDATASection nodes, the replaceWholeText method must fail before performing any modification of the document, raising a DOMException with the code NO_MODIFICATION_ALLOWED_ERR.

Parameters:
contentThe content of the replacing DOMText node.
Returns:
The DOMText node created with the specified content.
Exceptions:
DOMExceptionNO_MODIFICATION_ALLOWED_ERR: Raised if one of the DOMText nodes being replaced is readonly.
Since:
DOM Level 3
virtual DOMText* xercesc::DOMText::splitText ( XMLSize_t  offset) [pure virtual]

Breaks this node into two nodes at the specified offset, keeping both in the tree as siblings.

After being split, this node will contain all the content up to the offset point. A new node of the same type, which contains all the content at and after the offset point, is returned. If the original node had a parent node, the new node is inserted as the next sibling of the original node. When the offset is equal to the length of this node, the new node has no data.

Parameters:
offsetThe 16-bit unit offset at which to split, starting from 0.
Returns:
The new node, of the same type as this node.
Exceptions:
DOMExceptionINDEX_SIZE_ERR: Raised if the specified offset is negative or greater than the number of 16-bit units in data.
NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
Since:
DOM Level 1

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/DOMUserDataHandler_8hpp__incl.png0000644000151400015140000001641411653571065020362 00000000000000‰PNG  IHDR˜uüô`êbKGDÿÿÿ ½§“ÁIDATxœíÝi\×Úðö}d—«(à†^ÛWAĺ"­Êv{¹²Ü~E¸Õ–zqAAA°,.°Vªˆ»RTPT¶Zdd KB¶y?Œ77&! %™$<ÿO““9gž™œ<9g’™0 C Édˆþ*Hd‰‰ ñ ‘$žÑH§%K–S………D‡ …Hð­¥0H¤éÓ§ëéé#oß¾­¬¬„wœ0ÀˆLXÜÝÝíì숎ˆ‘âââÿûßDG!à@âA"Hþ°°°ÐÛÛ|á”””Ö­[ǾÀÅÎή¸¸˜=»¼yóæ¢E‹†¹­»wïúúú:99mذ¡  /d0 «W¯^½zuBBƒÁÀggeee_}õUEE…à€ïÝ»·qãF77·³gÏ"„‚‚‚BkÖ¬l…!ñ­boo_TTäãã³bÅŠóçÏ#„X,Öùóç½¼¼\]]ƒƒƒ_¼xÁÕÎÇîZii©‡‡ÇòåË322ÐçªwîÜñòòZ½zõ±cÇèt:ßÂa} ÈĈ±±qSSB¨···££ƒ=md311©¯¯Ç—---)Jmm-B¨¯¯¯¬¬lÁ‚ÃÙ •JŠŠZµjþæÿÏþC¥RBYYYÍÍÍ'OžŒ‰‰)++KIIÁ×ÿùçŸwîÜ9uêT÷÷÷ïÙ³gêÔ©éé鉉‰]]]'Nœ@egg¶; vãªÜ¾}ûøñãþþþ'Ožìéé¹xñâ… üüüÒÒÒ¼¼¼¸âüØ]{ðàAbbâöíÛ“’’؃ʜœœèèè~øáÁƒì¬Ê·ˆœ#“$$‰ÅbáË222¶¶¶ÅÅÅ&&&÷îݳ²²ÒÐÐN#t:Ã0 …¢  àââbgg§¨¨ˆºzõjllì˜1côôôüýý\]]B~~~“'Oܦ‚‚ÂéÓ§õôôñ+Lûúú†\AKK !ô¯ýkømâUV­Z¥¦¦æìì|ðàA2™œ——`ccƒÒÑÑñóó‹ŽŽælêcwí«¯¾RQQY¸p!B¨§§/ 466ÆNJJrttä-ôññ| €@"# FFF!55µ1cÆÔÔÔX[[s®PSScjjÊ~hggwàÀ___¾óJÎï49—ÕÕÕccc³²²RRRLMM7lØ0þ|„PKK‹››{5UUU|a„ C,''×ÐÐpðàA …Âwì&`…ôôôqãÆ±²¿jPEWW_ØÖÖÆ9zåÍM»k:::!‰ÄYˆ',¼V[[›€B zÈĆayyyŸ}öþÐÑÑ155uöìÙìÓdT*õܹsœoH++«þþþŠŠŠÒÒÒÐÐPÎÖôôôÙo³úúzYYY|\300Àb±¢¢¢ Æo¿ý¶{÷uuuMMÍØØX<§às[¼.;_x`` *****êóÏ?§Óéìo$؆\—€*\)ÆÀÀ ¶¶vÊ”)øÃׯ_s5õ±»ÆÕ>®¡¡O‘oÞ¼Á3Ý`…@ôà‘ººº:::ÚÛÛŸ>}ÑÜÜüå—_âOùøøtvvnÛ¶íáÇ ·nÝ ÔÕÕ]¹r%»:>»Ì€ÕÔÔ÷íÛ§¬¬¼aÇíÛ·geeYYY¹¹¹ýúë¯|W¸té’€ƒ3ü*«V­¢ÓéñññïÞ½›2eJDDþ…)Û»vðàÁY³f±>_ŽŽŽ¡¡¡T*ÕÁÁÁÃßHr ¨„ n¬($)22îG&===oܸ1d¡`øýÈà' 0µHÓ§˜ZŽ II%Ë–ÅêꪅIwC99Y…éêª/[›”TBt8@`D&庺ú·m;_Xø|ëÖ%[·:ÉÊŽ–.&“uøpÁáÃ…NN‡­ÓԄ뙤$2iöèÑAAiL&ëøq¯Ï?ŸBt8¸{·&88]VVæÄ ¯yóþFt8@XFËçóhÃba11ùnnqÓ§…Î,†ú¿ÿ3)* Ÿ>ÝÈÍ-.&&ŸÅ‚mé#2)ÔÚÚ½iSÆÃ‡|ûír1¼‰…è±o›1þäcÇ<õõ5ˆŽŒ0HdÒæúõ[¶œÕÐPNHð¶²2&:1R^þ&00L¦9²añâiD‡F$2éA§3¿û./9ù~Wh55¸+4·ÞÞ÷÷ïþç?möìY!//KtD`d@"“¯_·¥UW·JÍUGƒ_Ï4uªþ‰^p=“t€“ýÒ '§ÌÙ9†Ngæçoƒ,6$w÷yùùÛèt¦³sLnîc¢Ã#Fd’Mê¯:žƾ}ï¯gÚ¿ß]Y®g’`È$Ø‹M©mm=±±ë¥ü÷úBríÚ³scǪ'$øL›fHt8àÁÔRR%%•¸ºÆŽ£ZTYì“9;[…kk«ºº‚ë™$ŒÈ$Owwhè…kמmݺ„À¿Î•&øß>\èìló\Ï$q ‘I˜ÒÒ?‚‚ÒètV\œç‚&D‡#UîÜ© N———9qÂkî\¸žI’À‡¹ÄÀ¯:Z³&ÎÜܰ¨( ²Øˆ[°À¤¨(ÌÌÌ`͸žIÂÀˆL2´¶’7mÊxð V<ÿ:Wš°¯gúì³)GzÀõL™¸qãå–-jjJññÞ3gŽ':œQáéÓ7©½½Ô£G=ìì̉ ¦–b ÿ¯#OÏS66¦×®…B™™3Ç_»jccêáq þŸIüÁˆL|ýùç»  ÔW¯Z¢£×Âïõ‰’™ùh×®,33ƒ'¼'NÔ!:ÀŒÈÄT^Þcg烌ü|éù¯#Iäî>/??”Je8;Ì˃ë™ÄŒÈÄ…BÛ±#3+«Ô××öÛo—+*ÂUGÄïg:}ºdíÚ¹p=“‚DFŒÊʦ‰uTU¹ï´óâEs``ê۷䘘uK—ZÌÕ«Û¶×××HHð67羞©¯o ¾þÝ´ið¿M€©%(š¯oÊŽ™\åøij*†ACK—Z…ij*»ºòù¦;2}}“©T:!±r²QQQDÇ0êDFæÜºUUYÙ‹!„0 ‘É”mÛÎÛh‰Lt.]*+,¬d0Xœ… ëÞ½š_~yJTT௸|ùÉýûµ¼¯iAÁóœœ2¢¢…`j)"MM]¶¶?R(4ÞN"!eeÅ7¶?†ØÀ§©¯·xñ¯iIÉN##h‹ŒÈD$<ügÎ÷cÕJNcOO€øc2YÁÁéT*Ÿ,†Â0D£ÑÃÃ}`£$2Q8{ö~qñ ® NNNFVVðFUU‹ècŸ¦ªªe`€aHVV†ïMz Vqñ‹sçî‹>¶Q¦–BWW×¶xñh4g¡‚‚ÆPUUpq±rr²´±1…ߎI¢®®þ[·ª žåçWôõÑð—•s¹ë×·Ož<–¨G HdÂÅd²¾øâðóç ‹DBòòr4COOcùòYË—Ïœ3gÜq_:0¬²²×—/?½|ùÉÛ·d9:ýýxÍÒÒø—_¶ÈÊ -D$2 …ÒÙÙI`4Ò'5õáÑ£7I$„ahüxm{û©¶¶S¬¬Œ¤¦[+++kkkÿ•¤¬×1™¬ŠŠ¦’’Úë׫ºð—~Ë;//¸…É32úße­$²·oßVVV’tjhèùöÛ›'jÎk0w®¡¡¡Ñ¼±cÇZXXü•¤¸×57÷––6—–¶üùg÷÷ß/7N舤Š{™Ï-b8ŸÅ‹M/–â_x?þ|¤š’Ö^·~=Buvöµ´tÃ1F ï‡ÜëJˆ ãœ¶¶ªž‰)9SÍ ‘$$2€ÄƒDxÈOâY}}ý×_=äj555$‰s³úãÇåää23ÿwýÜÜ\…ŠŠ aÄÌ…ÄaÒ¤IÞÞÞmmmÖÇ0ÌÓÓSMm¸¿J#‘H555#)xo¯ãêZ¥Ù!»D___xxøÌ™3ÕÕÕçÍ›÷Ã?0ï/"‘HS§NåºbgéÒ¥ìn@"‘ÜÝÝ9Wø¨È‡¿²(;žÄ'²œœœU«Vñ}ª®®NWW_ÖÒÒÚ±cÇ`ÕgÏž½{÷îÍ›7wuu!„º»»ƒ‚‚"##­¬Dô wïÞmnnnhhHII!“ÉsæÌÁ#á«©©)##CZD*ôº‘jV@—èéé™;wî£Göïßÿûï¿ïÚµ+##cÉ’%Læû¿CýúõÓ§ÿ»Ã]gggIÉ•’••uáÂ…ŸH‡ÖÖÖ7n`eÙ²eýýý|Ÿª®®æÚAÞBvõKKK??? ì­­i4šÐ¢þB¨ººšýÅbÙÚÚîÙ³g°õùî×ðÛAÏž={öìÙ_lDjzÝǾ.šÜ%ÂÂÂlll {…ÞÞÞI“&%&&âu]\\vïÞÍ~öÌ™3K—.e·‰ò÷÷3fLssó'D>ü•…×ñxûÌGÈòòòƇ_wîÜ9SSÓ¾¾>„N××××ÓÓ §Óéøô·ß~›0aBqqqddä„ ÆŽëííÍþlá­…º|ùòŒ3”””&Ožœ––†b0|«···«ªª*++swÙËŸ}öBÈÀÀ 2fWG)((œ9s&999:::%%åÌ™3òòòƒ9‚»Æ‹D"\¹re°v8÷k˜m˜˜˜hkkGGG³Fnn®™™™žžÞæÍ›ø·[™xö:&“yàÀSSSuuõ yò$þŠ`öF]Ïæmmm\ÇçÎ;úúúxÝ—/_<~üð®®.•öövÄ1"«®®®ªªRVVNIIÁ>|Sð?ØnòF®„×ñxû̧$²ÎÎNccã3fpnÏÜÜœ=R-,,œ5k_yy9†afffÙÙÙø³•••ìeÞZòòòìììd±X===L&s°ênnnا&2vu‹ÅZ¹r¥¬¬¬§§'çþ u×°¡Ù`[ÇKk“B¨¸¸Ã0üJuu5gü†]¸pÁÄÄ„o!&(™ö:SSÓ3gΰƒùé§ŸB4MVV–}X²³³ñÈ*++Ã0ŒF£q-ã¯>goü„DvïÞ=]]]vÝo¾ùf×®]†¥§§/Y²„³Mö‘#G444êëëÙ=Šoð|w“ïaä Ixod†aß}÷¬¬lkk+»DII‰s §©©‰Ç‡ŸiRRRª¨¨àm‡·†a·oß^»v­ªªªÍ¯¿þ:Xõžžž+VàËœïíªªªá$2Î긴´4MMÍ›7o*))åääˆf×0~½öìÙ³ÖÖÖ‚·Î^™o›œBUUUœÛÂ[ P(xáÓ§O•””øò¶ÆIÄçÈÄ­×)++?yò„ýÔãÇBoÞ¼á<Œåååøaä|•y—¹z£à.a``PXXÈX||¼³³3»nqq±‰‰ ‹ÅZµjÕÉ“'1~‰ŒÉd.Z´ á=Šoð|ws°ÃÈIxoΑá/U\\œ££chh(»PWW—}è;;;ï߇_üL“‘‘Ñëׯñ’'Ož|ÿý÷ƒÕ¢P(,+33³££Ã××wùòå|«çç绸¸p†ÝØØ8œ½àªÞÔÔ´yóæØÚÚFFFúûû¿{÷N»ÆÞ)—-[&xë¸a¶É÷ûr¼!„ªªªØ·vâ[(İ×Mš4‰óËAü^ úúú²²²uuuxammí¸qã†Ü;ÞÎ̉«Kxxx|÷Ýwìï(B}}}û÷ïçlaáÂ…===·oß.,,ì V™”””;wîœ:u /á<ßÝDCõLœè:žà<Ç‹Éd:::îÝ»·££ÃÀÀ ///ß¼yóÚµkñï}çÏŸÌ9pˆŒŒœ1cFEEEEEÅ‚ 6nÜ8X- …¢¤¤”••ÕÖÖvêÔ)%%% …·º§§gcc#Þþ+›Ó§Owww¯^½q ¾zzz0~#2Îê,ë‹/¾X´h>/£Ñh3fÌX¿~½v Ã0Äñ]{qqñÊ•+»ºº†³õÁÚLLLd·€x>ÿñìíí«««>|8uêÔ={öð-ÜD6"Ï^wäÈ==½œœœæææ«W¯Nž<ßô† êêê***,,,ðÃÈû*p.s6‹ Õ%º»»ÍÌÌ-ZtõêÕªªªììl ‹ P©TÎÆƒ‚‚¦M›fooϵQôáp/>>O7øCÞàÛMÞȉªãÀÔòرc3gÎćî—.]244Ä'öd2ù믿ÖÖÖÖÑÑñóóëëëãìRT*5,,ÌÈÈHSSsýúõx9o- Ã.\¸0eÊssóÜÜ\¾Õi4š««+g`ûöíÓÒÒš2eJnn.¾]:¾páB555Œ'‘qU?s挢¢â«W¯Ø%>”‘‘ÉÊÊö®a~m4~üxÎÙ“à­ hSÀÛo!))iâĉººº›6m¢P(| w‘%2ñìu ãÀ&&&ªªªŸþ9>$Á0¬££ÃËËKGGÇÐÐ0$$„ýq5Ø+RYYÉÕ™w Ãz{{CCC---UTT,,,öíÛÇþ9»ñââb„Ðñãǹʹ‹ÅZ²d â8ëÊü`»É÷0Цãñö>wˆ•Ö[ܶššÞó- ŸeŒÈb¡×#ÕñxûŒÄÿ² ‘FþþþÃ)` ¯ãÁÔ|:˜ZBÀÔ … ‘$$2€ÄƒDxÈÏô655‰> ‰¨T*וß z¾ÞÞ^®>‰ ¿€á©D½ü¤º2Äœ#H XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::MemoryManager Class Reference

Configurable memory manager. More...

#include <MemoryManager.hpp>

Inheritance diagram for xercesc::MemoryManager:

List of all members.

Public Member Functions

virtual MemoryManagergetExceptionMemoryManager ()=0
 This method is called to obtain the memory manager that should be used to allocate memory used in exceptions.
Destructor
virtual ~MemoryManager ()
 Default destructor.
The pure virtual methods in this interface.
virtual void * allocate (XMLSize_t size)=0
 This method allocates requested memory.
virtual void deallocate (void *p)=0
 This method deallocates memory.

Protected Member Functions

Constructor
 MemoryManager ()
 Protected default constructor.

Detailed Description

Configurable memory manager.

This interface allows outside applications to plug in their own memory manager to be used by Xerces for memory allocation/deallocation.


Constructor & Destructor Documentation

virtual xercesc::MemoryManager::~MemoryManager ( ) [inline, virtual]

Default destructor.

xercesc::MemoryManager::MemoryManager ( ) [inline, protected]

Protected default constructor.


Member Function Documentation

virtual void* xercesc::MemoryManager::allocate ( XMLSize_t  size) [pure virtual]

This method allocates requested memory.

Parameters:
sizeThe requested memory size
Returns:
A pointer to the allocated memory

Referenced by XQillaAllocator< _Tp >::allocate(), and AutoDeallocate< TYPE >::AutoDeallocate().

virtual void xercesc::MemoryManager::deallocate ( void *  p) [pure virtual]

This method deallocates memory.

Parameters:
pThe pointer to the allocated memory to be deleted

Implemented in XPath2MemoryManager.

Referenced by XQillaAllocator< _Tp >::deallocate(), AutoDeallocate< TYPE >::set(), and AutoDeallocate< TYPE >::~AutoDeallocate().

virtual MemoryManager* xercesc::MemoryManager::getExceptionMemoryManager ( ) [pure virtual]

This method is called to obtain the memory manager that should be used to allocate memory used in exceptions.

If the same memory manager can be used, simply return 'this' from this function. Note, however, that if there is a possibility that an exception thrown can outlive the memory manager (for example, because the memory manager object is allocated on the stack or is managed by a stack-bound object), it is recommended that you return XMLPlatformUtils::fgMemoryManager.

Returns:
A pointer to the memory manager

Referenced by xercesc::DOMException::DOMException().


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/DOMRangeException_8hpp__dep__incl.png0000644000151400015140000001166411653571065021260 00000000000000‰PNG  IHDR¸ur'¼úbKGDÿÿÿ ½§“iIDATxœíiXSGÇ'$P )»¬QAD@QªòPPÔ*( Šâ¸+‹µ­ûŠëceS¬F¨AÜhK)hY*ZÙT–€ @ @Â}?Œïõš„ôº°hç÷if2sΙ¹ÿÌ’Ü›P0 Ä¿!Óß > P¤@BA A 1ãààÐ_q  )))xšB<õP(”Ñ£GkhhôGTˆÄË—/‹‹‹‰Ú ‰Ôpss›:ujŸ…x¤§§ïÚµ‹X‚ö(R ¡ H„‚  ‚H(Rˆžzþ[[[<­©©9vìXeee¼ÏçŸ;wîÁƒl6{èС666T*¶ÕÕÕ½pá…BÁëoÙ²%;;›ÅbéêêËÉÉnܸÑÀÀà=;÷ŽÝÁIKKë=êêêE‹}ˆ#[[[8h1*)¼³P¡¡¡ÚÚÚÝÝÝ•••W®\YµjÕÙ³g  ­­Íßß_EEÅ××WGG§¢¢âÌ™3999G•‘‘ÔÖÖ–••á×¾¥¥¥  @Ü84Åb±víÚuþüy¢°>:¸ÇÞ†Ífûùù%%% †§§g8ýX¼ÏÒ£¬¬¬ªªª®®>nܸ={öhkkÿòË/ð¥óçÏ+++;vlâĉL&ÓÆÆ&<<¼¶¶699V°°°HOOÇMedd˜››‹WUUe2™~~~UUUÍÍÍïÙ¹wé‘^rÔÝÝÍåraZIIiÕªU½ä¨7øÐ= …B™;wnVV̦¤¤x{{ÃÉ"//ïááÝÙÙ)±_âäääxyyÍ™3çâÅ‹¸M§ ¥t¼'>Âf–ÉdÖÔÔZ[[Å·/^¼€iSSÓööö²²2ÇËË˳²²"Væóùíííííí¯^½:s挃ƒƒ¬¬, ­­mûö톆†,Ëßß?**ª©© 6¹{÷nXX˜¯¯oDDDKKË­[·.\¸°fÍšØØX//¯°°0X->>žÍfGDD=z4///&&FÄ#à믿¶°° ãp8aaaßÿ½¼¼|||ü;w8püøñÊÊJ‹%ÝòÕ«W8°ÿþû÷ïÇÆÆž:u 2>'Nœ¨¯¯ yðàA\\œÄ~‰üýû÷£¢¢‚ƒƒ£££ñ¹JÄ©”Âw¢/N= ¥»»ûµ?™É“'ÃÕ'33ÓÌÌLQQ‘XyÅŠ³fÍš5k–««ëï¿ÿîîîËåääΜ9³~ýz555ømǃ/9;;3Œ3f¸\î•+Wüüü&L˜ ¤¤daaáãã«%''oذACCC__ß××7;;[Ä#,_·n]^^^`` ““Ó¨Q£7oÞ\¶l™¾¾þðá÷lÙbbb"ݲ¿¿?“É466^±bñ 6"àÏ?ÿ\·n¶¶¶¾¾¾^S¤_âmÝÝÝétºµµ5W’D§d"‘ÎûlfE¨ªªÒÑÑ0 UUÕÒÒR b…ÒÒÒ‘#GâÙ©S§>|xùòå×|'ßÑÑqöìÙC‡Á)F£UUU9r¤½½ÝÐÐØD]]V€ÙšššáÇã¯6 &jkk]\\ðr|EëéìÀ`0¾ù曟~úéèÑ£°¤®®ŽÉd´žžžžžžtËxå¡C‡Ö×׋»p8œîîn8€]]]¼¦H¿ÄQSSˆìô%:%‰t>tFKKK˜µ··?þ<>ø|~\\Üĉñ33³¶¶¶¢¢¢œœønÈ_|áèèøìÙ3¸¡éèèØ¹s§‡‡Gdd䯉5EFJSS³¢¢Ï>þ&”””X,VZZZZZÚõë×áB …—/_&&&ZXXà5ÕÔÔjkkaº´´_zz²\UU•••𢊣¢¢"##Ãf³a¶¦¦êC¼_âH¬ Ñ)™H¤ó>Bijjjlllhh(((ضm›Í^°`|iÉ’%góæÍÙÙÙUUUýõ—¿¿¿ººº““Ó—22“'O>v옱±1ñqÚÚÚড««K Ðh´ÎÎN¸ hkk“ØÊÙÙ9"""''‡Ëå>|øðܹsp@mll¢¢¢êêêÊË˃ƒƒ¯^½Jì†a‡š?þ¶mÛrss322Ó§OŽŽ®¨¨¨¨¨8qâD]]´Ð“åÐÐÐêêê'OžDGGã÷úÀîàÐh4[[Ûü‘ÍfÃOìíí{›7oâ nOHt*±ðxŸ¥gíÚµ0¡¡¡1f̘ÈÈH|²¥Óé‘‘‘111ááá555ÚÚÚvvvnnnpCŠckk›””4oÞ<éŽL§Ó¹\.Ng0þþþ{÷î4hÐÂ… íì삃ƒÅ[9;; …ÂãÇ777›˜˜øùù>|°|ùòÐÐЕ+WR(”É“'ûúúŠt'--íêÕ«MMMžžž4mÓ¦MÇŽ333óòòâóùAAA|>ßÒÒ· n¹¡¡`ooÀçóíìì¼¼¼¨Tª™™™‹‹Ë­[·ˆî6lØêçç'++;mÚ4//¯žäÈ‘#æææøhKDÄ)\hD ¥»DDo\Ú±cǧ~?Jff¦††Æˆ#`öÎ;.\ˆŠŠêË>üƒ×åôý"÷£µñ~×S^^¾oß¾’’’ŽŽŽâââ³gÏΞ=»¿ƒúäù§ž†‡‡ŸÏÿá‡ššš´µµgΜ9gΜ>ŽAAAa€8ýX‘|†KâÃùO,=ˆÞ A $)P¤@BA E”††öW¯Úÿ½Þ Ñã±¾¾¾ŠŠJ?Ôï´¶2 FUÒŸp8œòòò)ussëó¹¹ E__®¿égDî¡ Ÿæ"òøqÝa@jj°±q_Üqý©€ö(oqíZ>&C£Q¯_ÏïïXH(oÀ0,.î¾@Ð-ãâ²Ð\K å 99Ï^¾|}kj]77÷Y¿†3°@ByÃÕ«y²²T˜–•¥&&>ìßxH(¯ºr»º„0ÛÕ%LHȺ¥·úòš»wŸ67ó‰%ÍÍü{÷Jú+žÊksi´·FƒF£$$äöW< $àó»nÜ(„ÄB ûÆ>ÿ}Àüü@B€?þ(æó%<ŠÌçw¥¦÷}<$¸r%‡J•ð0•J¹r­> ¡ZZøþùXâG èNM-nmíèû¨H( 9¹?‹ÓÕ%LN.ìËx&èKAÀáð¸Ü7ãï¿OìÛ7/QT”WQ‘öpÞÏð¹žwEEE¨9€žÞû<Éýƒ–)P¤@BA A $)P¤@BA A $)P¤@BA A $)P¤@BA A $)P¤@BA A $)P¤@BA A $)P¤@BA A $)P¤@BA AŠ·~q)22²C üòK5ÀÍM·¿éV­Z…§Eÿ¬?âXP©J¡°¹¿ézü0À¥K—,Xзñ —/_vww'– = ‚H(R ¡ H„‚  ‚H(R¼³P(† æíí]__O¬Àãñ‚‚‚ÆŽûå—_N˜0aÿþýokhh(ò£ê3gΤP(¥¥¥"Æ dee•Ÿß»+K‘D¯z„”––~ZŸZ½ÏŒ’‘‘Áf³«ªªbbb¸\îøñ㛚šàK---_}õÕƒBBBrss·nÝzñâE¡ðõ¿<{ö¬  7Åápîܹ#nœÍfº»»÷ö¯õãqzÉQyy¹ºº:L+++oÙ²¥—õ À¥K—0©JJJðlww÷äÉ“·oß³666¯ÐÚÚ:lذ¨¨(ØÖÑÑñ»ï¾Ã_=wîÜÌ™3q›"ÆëêêuuuÒCúD<ö*%%%">`¹té’H¨ºG¡P(~~~7oÞ„Y‹µ}ûv*•ŠWPPP b±X0ëæævùòeìÿ“D||¼««kOÆeeeåää”””`öÆãÆ£ÓéÚÚÚĸxñ¢±±±ªªê¡C‡`÷ÂÃÃG­¨¨8mÚ´7nÀI¾««+((HSSSCC#((¨«KÚÀ]»vMWW—ÃáâââFŽÉãñÁŽ;†:xð`ooo|· W–¤¤$### õë×wttXZZ´´´ÀÛKOSSÓÒ¥KÕÕÕ™Lf`` ŸÏ—Ø/"#‘èTb¡´+ÚDÕ€wŸQ0 {ðಲ2†apXëëëEšÜ»wOSS¶}ò䉖–ÖÇ1 kjj¢Óé €0£äçç·´´´´´TWW¯^½ÚÇÇár¹rrrË–-«ªª‚²{ùò%lâêêÊáp¢¢¢¯^½ŠŠŠÒÕÕýõ×_ëëëSRR `7CBB\\\^¼xQXX8~üøo¿ýVÄ#ôèíí½dÉ’ÚÚZMMÍû÷ïcvøða“¢¢¢I“&šâ–áä1}úô§OŸfeeìܹ“8£Ó^^^vvveee………¦¦¦;wî”Ø/âJŒDŠS‘Bé—“4£ô…P233ÕÕÕñ¶kÖ¬Ùºu+†a,ËÁÁhSDÄ £¸¸éèèxüøqkk«P(¼}û6±IZZ†a°ÐÔÔôâÅ‹¸÷ØØXØçQ£F±ÙlX˜’’bnn.î‘øæáp8L&s̘1øÈ%$$Àtqq1ž· /Oaa!>î…ÒÙÙI¥RÿþûoXž``` ±_Ä!•‰§"…=\Û7ôŠPbcc-,,`ZKK+%%E¤ÉéÓ§g̘·MOO700èîîvvvŽˆˆÀÞ nœÇãXZZâv’’’¬­­ÍÍÍ}||ˆMþùçblƒ *((À[Ás†aòòòD5())Iì‘Ý»wS©T|“$//_TT$^MÜ2¼<ííí°BAA¼¼¼D¡TVVkÊËËKì—ˆGñH¤8)ì©¿8‚aØéÓ§gÏž ³^^^»wïÆÏ8âè舗X[[·´´Ü½{7%%ÅÙÙ¹'Ët:}éÒ¥=‚#ÕÞÞ¾`Á‚   ¼¼¼S§NkÊÈ¼Õ ==½GáÙÇĺº:>Ü'++Kz×*++CCCííí`‰ŽŽÎ³gÏ`:??ß¾}Ò-Ëxúô©ŽŽŽD/šššT*µ¼¼fËÊÊtuu%ö‹HO‘ôä”L$ÿQ5€ÜŒ‚ÓÓÓœœ˜LfSS|µ¹¹ÙÈÈhÊ”)ÉÉÉOŸ>MHH011±²²âóùÄwÆêÕ«mmmq›O=ÏŸ?p¹\x(Jrr2Ç äåå‰4é“'O2™Ìß~û­¡¡!55ÕÈȈB¡`¶~ýzWWWx>Ÿ4iÒÚµk‰Ý!‚a˜P(´··ß³gOcc£––Öµk×0 Û±cǘ1cŠŠŠŠŠŠ¬¬¬V®\ ýŠ[†ÆÖÖ¶¤¤$;;ÛÐÐpûöí°ËÂ… íììÊËË‹ŠŠLLLàR¼_†EEEÁ¡–‰§"…Ò/1ö±–œ!C†xyy‰_[[[LMMétº‰‰ÉÞ½{ÛÚÚD:œžž )ŠP(TTT¬¨¨€ÙcÇŽ©ªª2äÔ©SžžžT(?~|ĈJJJŽŽŽIIIƒÆ0ŒËåúøø¨¨¨¨©©­ZµŠÇãa=ïQNž<9vìØÎÎN õµµù|~`` ŽŽŽ’’’§§'‡Ã~Å-ÃË­§§§®®¾nݺööö®®.kkkƒ½-”ÆÆÆÅ‹«©©ikkoÚ´ .…‚'$F"Ñ©ÄBé—û(Bø\¿~=??ÏÆÇÇÃ}k_Ò/™Htú~‘|ü=ʤ°°pÑ¢EyyymmmYYYÛ¶m[±bEõÉóþKippp[[›³³s}}½¾¾þ²eË|}}û8EEÅâôcE"zs5ºgþÏ,QŸáÒƒè P¤@BA A $)DÇ©©©ømˆÿ,¹¹¹"%èÙcD¼¥ ¬‡ï;"h‚  ‚H(R ¡ Hñ?ª;+_;Tº—IEND®B`‚XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMXPathEvaluator__inherit__graph.map0000644000151400015140000000031211653571066024404 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMConfiguration_8hpp__incl.md50000644000151400015140000000004011653571065020050 00000000000000853bb5331b05b5db113da0a240eac0cfXQilla-2.3.0/docs/dom3-api/XQillaExpression_8hpp__dep__incl.map0000644000151400015140000000022511653571065021237 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMException_8hpp__incl.md50000644000151400015140000000004011653571065017177 00000000000000672ff199c8ca25f660314a7890a9090cXQilla-2.3.0/docs/dom3-api/DOMNotation_8hpp__incl.map0000644000151400015140000000003511653571065017130 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMException_8hpp.html0000644000151400015140000000661511653571066016331 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMException.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <xercesc/util/PlatformUtils.hpp>
Include dependency graph for DOMException.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  xercesc::DOMException

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMComment-members.html0000644000151400015140000005437311653571065021534 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMComment Member List

This is the complete list of members for xercesc::DOMComment, including all inherited members.
appendChild(DOMNode *newChild)=0xercesc::DOMNode [pure virtual]
appendData(const XMLCh *arg)=0xercesc::DOMCharacterData [pure virtual]
ATTRIBUTE_NODE enum valuexercesc::DOMNode
CDATA_SECTION_NODE enum valuexercesc::DOMNode
cloneNode(bool deep) const =0xercesc::DOMNode [pure virtual]
COMMENT_NODE enum valuexercesc::DOMNode
compareDocumentPosition(const DOMNode *other) const =0xercesc::DOMNode [pure virtual]
deleteData(XMLSize_t offset, XMLSize_t count)=0xercesc::DOMCharacterData [pure virtual]
DOCUMENT_FRAGMENT_NODE enum valuexercesc::DOMNode
DOCUMENT_NODE enum valuexercesc::DOMNode
DOCUMENT_POSITION_CONTAINED_BY enum valuexercesc::DOMNode
DOCUMENT_POSITION_CONTAINS enum valuexercesc::DOMNode
DOCUMENT_POSITION_DISCONNECTED enum valuexercesc::DOMNode
DOCUMENT_POSITION_FOLLOWING enum valuexercesc::DOMNode
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC enum valuexercesc::DOMNode
DOCUMENT_POSITION_PRECEDING enum valuexercesc::DOMNode
DOCUMENT_TYPE_NODE enum valuexercesc::DOMNode
DocumentPosition enum namexercesc::DOMNode
DOMCharacterData()xercesc::DOMCharacterData [inline, protected]
DOMCharacterData(const DOMCharacterData &other)xercesc::DOMCharacterData [inline, protected]
DOMComment()xercesc::DOMComment [inline, protected]
DOMNode()xercesc::DOMNode [inline, protected]
DOMNode(const DOMNode &)xercesc::DOMNode [inline, protected]
ELEMENT_NODE enum valuexercesc::DOMNode
ENTITY_NODE enum valuexercesc::DOMNode
ENTITY_REFERENCE_NODE enum valuexercesc::DOMNode
getAttributes() const =0xercesc::DOMNode [pure virtual]
getBaseURI() const =0xercesc::DOMNode [pure virtual]
getChildNodes() const =0xercesc::DOMNode [pure virtual]
getData() const =0xercesc::DOMCharacterData [pure virtual]
getFeature(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNode [pure virtual]
getFirstChild() const =0xercesc::DOMNode [pure virtual]
getLastChild() const =0xercesc::DOMNode [pure virtual]
getLength() const =0xercesc::DOMCharacterData [pure virtual]
getLocalName() const =0xercesc::DOMNode [pure virtual]
getNamespaceURI() const =0xercesc::DOMNode [pure virtual]
getNextSibling() const =0xercesc::DOMNode [pure virtual]
getNodeName() const =0xercesc::DOMNode [pure virtual]
getNodeType() const =0xercesc::DOMNode [pure virtual]
getNodeValue() const =0xercesc::DOMNode [pure virtual]
getOwnerDocument() const =0xercesc::DOMNode [pure virtual]
getParentNode() const =0xercesc::DOMNode [pure virtual]
getPrefix() const =0xercesc::DOMNode [pure virtual]
getPreviousSibling() const =0xercesc::DOMNode [pure virtual]
getTextContent() const =0xercesc::DOMNode [pure virtual]
getUserData(const XMLCh *key) const =0xercesc::DOMNode [pure virtual]
hasAttributes() const =0xercesc::DOMNode [pure virtual]
hasChildNodes() const =0xercesc::DOMNode [pure virtual]
insertBefore(DOMNode *newChild, DOMNode *refChild)=0xercesc::DOMNode [pure virtual]
insertData(XMLSize_t offset, const XMLCh *arg)=0xercesc::DOMCharacterData [pure virtual]
isDefaultNamespace(const XMLCh *namespaceURI) const =0xercesc::DOMNode [pure virtual]
isEqualNode(const DOMNode *arg) const =0xercesc::DOMNode [pure virtual]
isSameNode(const DOMNode *other) const =0xercesc::DOMNode [pure virtual]
isSupported(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNode [pure virtual]
lookupNamespaceURI(const XMLCh *prefix) const =0xercesc::DOMNode [pure virtual]
lookupPrefix(const XMLCh *namespaceURI) const =0xercesc::DOMNode [pure virtual]
NodeType enum namexercesc::DOMNode
normalize()=0xercesc::DOMNode [pure virtual]
NOTATION_NODE enum valuexercesc::DOMNode
PROCESSING_INSTRUCTION_NODE enum valuexercesc::DOMNode
release()=0xercesc::DOMNode [pure virtual]
removeChild(DOMNode *oldChild)=0xercesc::DOMNode [pure virtual]
replaceChild(DOMNode *newChild, DOMNode *oldChild)=0xercesc::DOMNode [pure virtual]
replaceData(XMLSize_t offset, XMLSize_t count, const XMLCh *arg)=0xercesc::DOMCharacterData [pure virtual]
setData(const XMLCh *data)=0xercesc::DOMCharacterData [pure virtual]
setNodeValue(const XMLCh *nodeValue)=0xercesc::DOMNode [pure virtual]
setPrefix(const XMLCh *prefix)=0xercesc::DOMNode [pure virtual]
setTextContent(const XMLCh *textContent)=0xercesc::DOMNode [pure virtual]
setUserData(const XMLCh *key, void *data, DOMUserDataHandler *handler)=0xercesc::DOMNode [pure virtual]
substringData(XMLSize_t offset, XMLSize_t count) const =0xercesc::DOMCharacterData [pure virtual]
TEXT_NODE enum valuexercesc::DOMNode
~DOMCharacterData()xercesc::DOMCharacterData [inline, virtual]
~DOMComment()xercesc::DOMComment [inline, virtual]
~DOMNode()xercesc::DOMNode [inline, virtual]
XQilla-2.3.0/docs/dom3-api/DOMNotation_8hpp__incl.md50000644000151400015140000000004011653571065017034 000000000000009d63d62bfdfe673d0a7fbace5a55299aXQilla-2.3.0/docs/dom3-api/classXPath2MemoryManager-members.html0000644000151400015140000001611111653571065021333 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

XPath2MemoryManager Member List

This is the complete list of members for XPath2MemoryManager, including all inherited members.
allocate(size_t numElements)=0XPath2MemoryManager [pure virtual]
xercesc::MemoryManager::allocate(XMLSize_t size)=0xercesc::MemoryManager [pure virtual]
createCollation(CollationHelper *helper)=0XPath2MemoryManager [pure virtual]
createInteger(int value)=0XPath2MemoryManager [pure virtual]
createNSResolver(xercesc::DOMNode *resolverNode)=0XPath2MemoryManager [pure virtual]
createVariableTypeStore()=0XPath2MemoryManager [pure virtual]
deallocate(void *p)=0XPath2MemoryManager [pure virtual]
dumpStatistics() const =0XPath2MemoryManager [pure virtual]
getAllocatedObjectCount() const =0XPath2MemoryManager [pure virtual]
getExceptionMemoryManager()=0xercesc::MemoryManager [pure virtual]
getPooledString(const XMLCh *src)=0XPath2MemoryManager [pure virtual]
getPooledString(const XMLCh *src, unsigned int length)=0XPath2MemoryManager [pure virtual]
getPooledString(const char *src)=0XPath2MemoryManager [pure virtual]
getStringPool() const =0XPath2MemoryManager [pure virtual]
getTotalAllocatedMemory() const =0XPath2MemoryManager [pure virtual]
MemoryManager()xercesc::MemoryManager [inline, protected]
reset()=0XPath2MemoryManager [pure virtual]
~MemoryManager()xercesc::MemoryManager [inline, virtual]
~XPath2MemoryManager()XPath2MemoryManager [inline, virtual]
XQilla-2.3.0/docs/dom3-api/classXQillaExpression__inherit__graph.png0000644000151400015140000001115211653571066022405 00000000000000‰PNG  IHDRÛuH÷‰bKGDÿÿÿ ½§“IDATxœíyTSGûǸ$PÀ ;.HE‘Š=¼U) ò–\ØEA¬è±‹ö'r*«9P)Ö"EÚ–s$ Xw”X@lYDDÄ„„l÷÷Ç}Ïõš„ˆHÍ Îç¯{Ÿ¹óÌ3Ï|™™»œ ƒ¢(€@Hƒ®¦€@^*B. "!ä*B.âIMMMJJЦB|˜TVVO_SdWW›Í^¹råû òÒÖÖvíÚ5#¢|ÝÉ“'ßK<“'O®^½ZÁ÷‘r !P‘r !P‘r1:©C`òäÉÝÝÝÄ ABBœ9sÆŽûñǧ¦¦J¥R¼.ƒÁPøÅßß_GG§¹¹¹¾¾AS§NáEååå …Ãá(´kllðøñã¡ÇÜÜܬ¦#8o›‘¢¹¹ù}´Ž(..V°h)€+W®tvv¶··_¸p!00ÐÖÖ–Çãa¥}}}ŽŽŽžžž><}úôÌ™3-Z$•J±º‚Ô××ãÞ¸\® ©© EÑ;wZZZbÞz{{­­­SRRÚ}òäI}}½¿¿ÿüùó òÑ£Gt:3æ_eGˆŒLŽÞžîîîo¾ùfªÔÛ¨U$qtår¹‡‡GRRvÊd2ÝÝÝ1ýaðùüÉ“'çååau—,Y²cǼôèÑ£þþþ¸ÏY³fEGG£(ºaÃWWW±X¬²ÝöövÀ‹/TÙÔÔDÌö`ŠT6ŽFF‘åååÖÖÖ\.EÑ¢¢"ƒÁçóQ‹ÅL&ÓÜÜ|„ L&S,cg³ÙvvvUUUIIIvvvfffáááøt¥\ EÑ3gÎÌž=›J¥N™2娱c(ŠJ$•Õ‰ƒJµ°°¸~ý:fÜ»wïŠ+Z[[æÎ›˜˜ˆuÀßßÿÂ… ÉÉÉNNN ÇÍÍÉdV‹ÏçS©ÔìììÎÎÎüü|Aø|þ?ü ²zoo/6±)+dmm­‰‰ –J@ww·B§._¾Œ‰ðàÁKKKláîíí500xþü¹‚ÏÄÄD¾^ãíÞ¾}ûåË—}}}ÍÍÍË—/Ÿ7oŠ¢}}} åË/¿loo/,,<{öLyŽ èëë;}ú4àùóçD‡DÌáâÅ‹¯]»æààœœL>Ÿ?Ä„«4 õöö~ôèQCCìY³’““±hƒ‚‚x<^^^þ§¨†S$dzµµuvvÆâÀpttÄ·8•••...XP>}zii)VzïÞ=üX¹—ËÕ××ß¿?Ç“Ëå/_¾”ÉdƒUŒa(òêÕ«fffxݯ¾újûöí(Šúúú*ø”Ëåzzzaaa íâèëë{zzâ ýýû÷ù|¾L&«©©Á\)+²ººEQ™L†·¥fë¯< Ä„£(Z\\ìàà `bÂUñ€Åb±žžÞÝ»w1?¥¥¥X´UUUØCÙoŒä>ò»ï¾ÓÓÓëêêÂ-4˜5ccc¬غ@£Ñˆ«›šZ(Š^ºt)((ÈÐÐÐÝÝý?þPS}0†±j>|ØÏϯ[]]-ÜK—.ÍÉÉQðùË/¿×ÔÔÐh4‹¥¦]œòòò… º¸¸¬]»v0E666*øQ?® £€9ÄPEïܹC£Ñˆ£€9á*xÀmmmĆh4íÇߘ œSdkk«¹¹¹ŸŸq†°µµÅ#àñx÷ïß'fÜÞÞþìÙ³Øq}}=¾Ø)×êïï¿xñ"Š¢GÕÓÓëéé¬ú`¥;wwwüÎ&>>^åMzz:^W*•ZXX\¼xÑÐÐrÜgGG‡©©inn.Š¢{öì±°°ÀVXåvqúûû©Tjyy¹\. …ƒ)¯;E*‚ÂtxêÔ){{{…V†˜p•F…9ò¯¿þÂü”••M:u°.¨ad)“É|||vïÞÍår---Ïœ9ƒÙ7oÞô÷ßß¹sÇÍÍmÓ¦MÄ\ìÚµËÙÙ™Ãáp8œ ¬_¿~°ZB¡F£•””twwçææÒh4¡P8Xu5ûHüéOuu5öô§··+}ñâÅôéÓ±§?¥¥¥NNN ,‰DÄTnܸqÆŒ^^^ÄËåò€€OOO™L†³³spp°úaàñx:::`Û¶m€ºº:,?ø¾p0Eª|ú£r0‡^^^MMM7nÜ`0III ŠbÂU‰®BBB¼½½[ZZ8Ž““ö×®EfddÌ™3[ÊÊʬ¬¬°;¾¾¾¾µkךššÒéôèèh@@ì€H$b2™ÖÖÖÆÆÆÁÁÁÄGƒ µ°0¦NJ¡PËËËÕTWs¯cggJÜ` (ÊçóãããgÍše``àää”’’Òß߯Êêêj@VVÑ~ôèQ*•НM(ŠÞ¸qCWW·¤¤U; ?~¼Ý¡C‡‚ƒƒÍÍÍ%ÉÂ… ŒŒÚE_W¤Ê}¤ÊQÀ2päÈ‘I“&™™™ÅÅÅ)Èhè Wi$ºâr¹ááát:ÝÊÊjëÖ­ø½ö»+R‡Ømì{µÁ!9ÍÍÍÊo›ÈŒJ½Î·ˆí*rô0nܸ˜˜MGñ®@EŽÌÍͳ³³5Å» !P‘r !P‘r !P‘#Ãõë-ša” â7-|}}ßZXLio·³·¤é@´Œ®®.eãkŠ´³³ƒ?ú3 ÚÚÆ …cÆŒ™@£I5‹6ajjêèè¨`ÔÑ¢× ¤å?ÿIimíùúk?&s‰¦cÑzà>ò]¹wïIkkàÔ©ZMÇ2€Š|WNŸ¾©¯¯hkã޾ݪép´¨ÈwB.G‹‹k%AôX¬:MG¤õ@E¾ׯ·p¹|ìX*••”Ü”Éäš IÛŠ|'ÊÊêäU¹\ÁÕ«ðÐ;9|$‹U'•¾šD¯¬ì–C@EŸšš‡|þÑ"•ÊΜ¹#ç’Ã*rø”–ÞÒÓSü­°þ~QUÕÄ3:€Š&Á@EEƒò}Œ®®îéÓpá>P‘Ä;‡=ôQ@&“Ÿ;wW P.‚ ¨ÈaRVvk°÷¯b±´²ò¯÷Îè*r8ôõ «ªªù$ ¬ >*&ðK‹á00 }úô~ÊfßÛ¹³ôêÕÿÃ-zzº¶¶¦šMëQñ}$äP©È¤Itüt„±¢2lઠ!P‘r !P‘r !P‘r !P‘r !P‘r !P‘r !P‘r !P‘r !P‘r !P‘r !P‘r !P‘r !P‘r !P‘r !P‘r !P‘rA®_4e³Ù---šŽâ­¹{·››«é@†ƒ½½½¦£ €’ -ýóººT}}sMG1LŠ‹‹5=ì¯A®9°hÑ¢]»vi:Š///M‡ ÜGBÈT$„\@EBÈT$„\@EBÈT$„\hŸ"›šš¼½½«««qËåË—}}}ñGë"‘('''**Êßß?66öøñã2™ ÐÑÑ=ìP> /Uü{]SÏ£îyäa0aaaóæÍ322ééé‘‘‘Ø‹‡þþþØØX“èèh›ÇçççߺukÿþýFFFÁÁÁoÛ\ff¦••տзfxñkÚ7GÂÃÃsrr¹¹¹t:}Íš5XѱcÇLLLÒÓÓÝÜÜlmmÝÝݳ³³;;;ÿýwccãèèè·mËÄÄdüëŒpg†Ìðâ×:´R‘‚$&&VTT?~¼¢¢"11Aþ7ÙWVVFDDèê¾êF[³f ›ÍV¿ê]½zuýúõK–,Y±bEQQ‘ú®\¹ôòåKÀùóçÃÃÃE"æÿòåËáááË–-ËÈÈH$˜±®®nõêÕG*•fgg/[¶lÙ²eÙÙÙR©óµxñâsçÎáM(‰ñóùüï¿ÿ>00påÊ•‡‹Å///6›ùÅ_œ8qbØéÕ,Z©HÀ´iÓV¯^}äÈ‘ˆˆˆ)S¦`F>ŸÏår.f0?Vã­¿¿?))‰Á`ÆÆÆæååõööbE"‘Hø:€ùó绺ºfeeñx¼¬¬¬o¿ý–F£a׳X¬={ö¤¦¦^¿~WöÉ“' FIIIgggNNNZZZ]]]AAH$JNN^ºté‰'ÂÃÃ÷íÛ'‰T‰ÿøãÝÝÝÙÙÙ{÷î­­­ýõ×_1û¥K—²²²bbbrrr°?­C[‰¢è?ÿü£««ÛÚÚªP¤£££|1qÖT†B¡äççoÞ¼™N§›››V´nݺÿ¾f‹‹«««c2™ŽŽŽ¸«ØØX[[Û3f¬[·®²²3FGGôÑG4­¢¢bË–-æææööö1117nÜH$(Š …B …²dÉ’³gÏR©T•F¼ ©TzáÂ…¸¸8+++{{ûµk×â -]ºÔÈÈÈÏÏÐ××÷–I%ÚwgƒÁf³oß¾žžžàéé¹`Á€‘‘Ñøñã›››çÎK¼¸¹¹yâĉj¼!ÒÞÞ¾ÿ~¡PÈ`0ˆE………666ÊUŒŒŒ~þùç´´4¢ÝÖÖ;˜8qbww7~Œ<}útÅŠøÅ†††cÇŽMOO/)))((˜6mZHHˆ›››J#^‹ÇãÉårkkkìÔÆÆoÈÌÌ ëŽšÎ’­ ½§§'##cÆ ÎÎΑ‘‘iii³gÏ7nÀÇÇçØ±c...ؤ¸{÷îùóç…„„¨q800œœœœœüÉ'ŸH$’ŠŠŠ7ÆðìÙ³²²2WW×C‡íر····cwýmmmtúÿþ<.ccãôôtLâØc``@.—'''K¥ÒóçÏïØ±ƒÅbQ(e#Þ„©©©®®nggç¤I“Ož<Á„T­Z‡ö­Ú(Ц¥¥ÙÛÛöÙg€U«V™šš XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMImplementationList Member List

This is the complete list of members for xercesc::DOMImplementationList, including all inherited members.
DOMImplementationList()xercesc::DOMImplementationList [inline, protected]
getLength() const =0xercesc::DOMImplementationList [pure virtual]
item(XMLSize_t index) const =0xercesc::DOMImplementationList [pure virtual]
release()=0xercesc::DOMImplementationList [pure virtual]
~DOMImplementationList()xercesc::DOMImplementationList [inline, virtual]
XQilla-2.3.0/docs/dom3-api/inherit_graph_30.png0000644000151400015140000017731011653571066016042 00000000000000‰PNG  IHDRÍsºcfbKGDÿÿÿ ½§“ IDATxœìÝy\TUÿð3 ƒ8€€3¬!› îÚ“EþÃÇÊQÜJ­Ô'LrÁÊ´4MSÓR@%!ŸÌ”ÜHÅEÙQe€ÁYØf¹¿?nÍ3±Œ¨Ãòy¿zõº÷Ì9ç~ï™ür9÷EQ4JGÛtCȳ4y6€æ!ÏÐ<ݶTJMMŠŠjïP!«W¯öööÖv/«Myvyyù¹sçüýýÛ;èá>øàmG mʳiñññí!„Á`h;ÍÀülÍCž  yȳ4y6€æ!Ïмž•g3TØÛÛ‡„„ðù|Õ ‰$<<ÜËËËÈÈhĈ›6m’ÉdʶÎÎÎE©ÖŸ0aƒÁÈÍÍmKçj̽{÷~íµ×222´@wгòlBÈ•+WJKK‹‹‹<( ‡ZSSC¿$‰†žžž}óæÍˆˆˆØØX___¹\NW(,,¼s玲+@péÒ¥6vÞIäçç›™™©–Ð1—––òxÜ¿ccã5kÖ¨1ƒëææÖ·oß/¾ø‚2zôhB—Ëm1f‹¥§§gllLïþúë¯C† a³Ù–––[¶lQFÒ¤OŠ¢öìÙ3pàÀ>}úüßÿý߯¿þJ‡ÝbH=Õqqqm©2{öì²²2‡sýúuº0::zÚ´i=âñxC‡]¹reNN!d„ .\X·n»»;Ç»{÷î¨Q£ÂÂÂZk%‹{õêµgÏžÒÒÒèêêŠÅâ/¿ü²Åæ555ûöík¾MÉÉÉQ9==ÝÄÄ„¢(ú7>Ÿßä¤þøã‡C·}ðà—˽}û6Ý-›Í®¬¬Tö©¦sŠ¢‚ƒƒÇ———Çãñ<<<Ö­[×bðôàÐMT· !AAAB¡pÿþý„€€¡P¸wï^BHeee‹#F·š>}º@ Ø·o!¤ªªJµOºBFF†H$‰D%%%}ôÑܹsé—„B¡žžÞ¼yóŠ‹‹éß4***Zìsß¾}ÖÖÖ§OŸæóùgÏžurr¢ÑbHêBâââžY  óÓdž-lll<==×­[§,tuu---¥·Ïž=;xð`:ÕãñxE 0àĉô«÷ïßWn7oU]]Íb±¶nÝ* …H$’Ëå­5oõlŸ?Ͼzõª™™™²íÇAQTLLŒ¯¯¯jŸj:olld2™™™™tù‰'œœœZ ^Mž}ëÖ-º«&ÛôA›ÝêâÅ‹ª5›çÙª ïß¿O¿ÔÐЕ•%‹åryjjªêi6éÓÃÃ#66VÙçÏ?ÿL¢Åžù!Ï€îA“ó³MLL,XpïÞ½?üPYXXXhiiI?ÑÂ××·  €.wuu%„9;;Ó%nnnS¦Li­•©©éÅ‹¯]»fccãíí}ùòeÖš·]NNŽ££#<—Ëmþ´ŒŒŒaÆ)wýýý(ŠR?i¤Içååår¹œÞ&„899?3xêŸy°‘‘!„Åb5Ù¦µ6ÎVVVMj6’þ(H$’… Λ7.×ÓÓËÎÎöóó6lØ¡C‡T›4é3//ÏÃÃCùêÀÕ‡Ðh2Ï~üøñ·ß~ëããª,433SfràÚµkt9¥YYYÒ%7nl­U]]B¡HHH¨®®ž?þ;ï¼S]]ÝZó6¢(ê»ï¾›8q"½¼~ýzåÓE!‰$::ÚÏÏOY2fÌ‘H”––vöìÙÉ“'·±s‡Ãd2óóóé—òòò¬­­ÕO?L°¤¤¤íçÒÚ8ëè´õ-f³ÙsæÌ¹wïß×ÕÕ„‡‡ßºuk÷îݪ5›ôùÊ+¯Ü»wO¹›••¥>$€ž@cy¶B¡˜7oÞ’%KŽ9rîܹäädº|êÔ©EEE<ÏÏÏo×®]ª­fÍšµjÕªÌÌÌÌÌÌÅ‹µÖŠÁ`Œ?þøñãB¡°±±‘Åb±ÙìÖš?}ú”žÇÜd›ÂçóËÊÊJJJRSS§L™RPP°|ùrú¥µk×VTTŒ7îôéÓ999‰‰‰£F²¶¶V½<Ïd2§M›¶pá‘#GZXX4„Ö:g±XK—.-((ÈÌÌ\½zuppp‹Á›˜˜B~úé'¡P¸cÇŽ¶¿úqnB,·XÞ§O‘HD¿ÚÐÐÐØØ¨§§WWWI‰D-¶úøãW¬XqæÌ™ªª*zÎ=}äs…ÐÝ´erI[ægïܹÓËË«±±‘¢¨ÄÄDKKËêêjŠ¢„BáܹsMMMûõë·`Á‰D¢:E¸¾¾>,,ÌÊÊÊØØ8((H ÐåÍ[Ña8::êé鹺ºž}¤¦¦¦mïÜßßßÖÖöeÂè$Tk)@ë._Î^±"¾¸X —+Z«£§Ç\¶ì­ÿü€žy6¼ ©TþãlÙrJ*•K¥ò똛™šxzÚ ÀuqánojjÐÁqhòlx)ååO7lHNL¼¥££#—7Ͷ׬y·°°23³øþý' 2]]ggî AÖ6ÖîîÖFFúZ  ½!Ï ÈÈx´reBff Eå'ªo_ƒÌÌ(eòò§<^1÷˜Ç+¾sçQE…ˆÂáôñô´uqẸp<=m]\8 C;ç QȳA3 êøñ?×­ûE$jÉä ;Ö-&fAkõËËŸfg—?|XFgÞ99åEõé£?`€¥§§­§§§§­³3GGi7tIȳA“ª«%[¶œŠ½Fµt©ï§Ÿþ» …Âúž(/xçåUÈå ƒ^ŽŽô¥nOO//»^½ðÄwègƒæef–¬^}âƒÞ˜8ÑëÅzHòò*>,û;ó~ÜÐ c±˜ýû›Ó—º==m<Š¢JJì^¾ŒÐcuÏ<›råÊ•ÒÒÒââ⃠…¡C‡ÖÔÔÐ/‰D¢áǧ§§GGGß¼y3"""66Ö××W.—Ó ïÜùßòàÒ¥Km켓ÈÏÏ733£·'MšTZZZZZzåÊBHéßÜÝݵ£&=|Xýß‘#×þùImÇMá˨ü2@Òmólsss.—kmm=vìØÄÄD‡íÛ·Ó/­_¿ÞÜÜüüùó~~~...S§N½qãFaaáÁƒé >>> Ê®’’’¼½½ÛØy'¡P(ªªªèíÞ½{s¹\.—knnNáþÅbi5F (.ìÚuþõ×7½k×ù’’Ε` _Få—z”çγ“’’¬­­!äÈ‘#...‰„"•JÃÃÃ9Ž……Exx¸T*¥gœ?ÞÎÎ.%%%22ÒÎÎÎÜÜ<$$DyÁ©y+BHrr²§§§¾¾¾ƒƒÃáÇ !2™¬ÅæªÔLB`0‹-:uê½³víZ&“©¬```CïúûûÇÇÇ+ÿZ}ìØ±éÓ§·6 M:¯©©™3gŽ™™™MXXX}}}‹Á·9ƒÁøá‡ÜÜÜÌÍÍ·lÙrøðáþýû¯Y³F͈1ŒØØX77·¾}û~ñńѣGB¸\®š·Rõ JKKûõ×_‡ Âf³---·lÙB™ó½.//oþ …Âæý·d‹!qqq|¾hß¾Ô ¶YY-³µ]neµÌÒò“&ÿ}ðÁÁ¶tØ%Ðg­¾¾Œ]ôËØ¢6þ€®‚A©ÜcHý󮣿jjj Ô·oß©S§FFFÒ…nnn/^¤¯Ùœ;w.<<}úlÚ´)66öÇú| ÐFȳ:Âù{÷¦üþ{¦¹yŸ¹sÇ̘1ÚÌÌPµŸ/ÊÈxÄã=æñŠy¼ÇååBBˆ©©Áðáö..\ާ§­££…®.žÅ Ð5 ÏhGE;wÿ›oÎÞºU4tè+ï¿ÿÆÄ‰^,“¢¨ììrïqvvyvv™2±¶°0òò²óô´ñô´õô´ápŒµ}ð‚g´ …‚:}úîöígîßâã3pñbŸ>}ô•—«>, ë †³3ÇÓÓfÀ®‹ ‰5@w‚<@óΜÉÜ´é×ÜÜrWWëþýûUTˆ²²žˆÅ :: ''Žòrµ««&XtWȳ4£®®ñîÝâß~»{âÄM>_¤£ÃP(¨^½t==mé¬zÀ®££…A/mG y6À ª®–ܼYHϱ~ø°,/¯B.WBŒŒôß|ÓÍÇÇÍÓÓÖÁÁœÅbj;RЬ ÐVååBïq“G‚ôëg8x°¹¹aQQ¥]¿Ï?Ÿäãã®íH@ûp= eÊG‚ÐYuvvùÓ§µ„§=„þfæ“5kNTVŠ–-{ëý÷ßÀÕk !Ïø‹\®ÈÍ­P&Ö”ŠDõMî\0€klü׺蕕âU«Ž''gLš4$2r—‹G…Àÿ φž«¾^ªÌªy¼â‚¾T*g±˜nnVôº0žž6nnVFF-<$1ñÖš5'zõbEGûûø ìøà “Cž =HMMíݻŖщu~~…L¦Ð×g d£œ òÌ;++Å¡¡GÏ»?cÆè5kÞŃù Eȳ¡;«¬ß¾]ÔäÎEö A6ôº0Ï»˜ùù‹ýDQÔŽÁ¯¿îÒž±@׆<º•‡˲³Ë²³ËTkss£Áƒ_v1s…‚Ú¼ùÔîÝ&Nôܺõ=\ÆõgC¦PP99å°˜¹PX¿tiì… ÷ÃÂ&,^zT5{öþššº½{CFŽtÐ`ÏÐ!φvñèQ‹Å´´4yÉ~èÅÌ›<DOO×ËËÖÓÓvÀ®‹ gà@kCÃöZÌ<--çƒõïovèÐûFítè~gƒ†ÕÖ6îÜyî»ï.lÞ<=(hôó6o²˜9ýHÞ½õ<<¬ÛþHMIL¼µ|ù‘ýËiïÞ9í—Ê@·„u×Ac(ŠJJÊX³&Q Pu÷nqPг[UTˆîÜyÔä‘ }û fÿÎ;^..\®“““ÙÖG‚hJLÌÕ•+fÎ|5*jZÛH@Cž š‘ž^°reÂÇeEè?’ܼYÔ¼šêbæôƒAèÄš^Ì|æÌW_æ‘ ´qã¯ß}waãÆi³g¿¦ÝH ‹Bž /ëÉ“šÈÈ_þû_žŽC¡øß4¤‡Ëd2ƒAT3ø°T(¬W>Ä××½ÉbæZ§PPkÖœ8|øÊ7ß̘6m¸¶Ã€® ó³áÅ56Êvî<÷í·ç J*•7¯0r¤CvvYMM-!ÄÖ¶ï A6Ö6ƒ<kÜ IDATYkýŠu‹ jõêã‡_ݺ500p¤¶Ã€. ׳á={/"âxyùS¹\ÑbFŸ>½—,ñ4ÈzÐ ›ÎsÅZuë~‰½¶k׬w߬íX kCž Ï­¸X°f͉ßÏl2Q¤ &SÇÑÑüÃÇvdl/Œ¢¨ððø'nÆÆ.3 ªÀËzîy# VÂë¹ –¡áƒ¡ †.!!Ïø0H¥%•• méY»ó—(ŠZ±"áØ±ô|ÿ7h1HHhÓ°C;ñ÷÷×v e/r={Ù²e¯¾úªÆCÎO&£øüºÊÊúŠŠ:>¿¾¢¢®¼¼V,–B †®.ƒ¢ˆLö¿i$v»vÅ©ÿÝìêÕ«Û·oo÷ÐÕŠŒü%!!ýàÁùÝ É¦=zùòåÚŽ¢‡Ú¶m›¶C€NáEòìÑ£Gûûûk<è¢D¢ú‚~AAe^^E^^EvvyAAemm!¤±Q>jÔ¸W^駦¹ÖïÄýúë3¦íØ\²$fÑ¢±sç¾®íX Bž =÷øƒN›6|Õª·µ tOȳ¡Çyü¸zöìÆÙGGûã9•ÐNzhžÍPaooÂçóU+H$’ððp///##£#FlÚ´I&“)Û:;;7yJÆ„  FnnîíÛ·uuuU8pòäI==½»wï69®±±ñÛo¿]PPÐö˜sssÕœˆÒs EnnnÊ5…º™3¿777Ü¿.‹ÅÔv8 Nû}O•%6l`0[¶lé€Ó€ž¦‡æÙ„+W®”––<===::úæÍ›±±±¾¾¾r¹œ®PXXxçÎeWàÒ¥Kôö!C>ûì³¥K—Ò½=}úô£>ŠŒŒ4hêqŸÔóÅÿýý÷̃ç9;s´‹öá{J9zô¨···«««ò’¶êÇ[u»s~ª S£ž!$..N}Ù³g—••q8œëׯӅÑÑÑÓ¦M{ôèÇ:tèÊ•+srr!&L¸páºuëÜÝÝy<ÞÝ»wGÖZ+±XÜ«W¯={ö”––8p@WWW,ùå—-6¯©©Ù·o_ómBHNNŽjÌééé&&&EÑ™ŸÏorRüñ‡Ã¡Û>xð€ËåÞ¾}›î–ÍfWVV6ésåÊ•„¨¨¨&£—‘‘!‰„BannîÔ©S‡NQ”P(ÔÓÓ›7o^qq1%TTTÐã£Úöí·ß …Ç'„TVVªv¨Šúû¯á …‚¢¨“'OZYYI¥RõGQ=œr»-7.//Çãyxx¬[·Nõ‹Åê?-t~£¾ÎË;v,ÝÊjÙáÃWÚû@¿¿¿¿¿ÿ3«õðï©B¡èß¿ÿÞ½{)ŠZµj•»»;ÝC‹_åv[>ÕmèöÚ%Ï666žžžëÖ­Sººº–––ÒÛgÏžgÃÕÕ•RTTäììL—¸¹¹M™2¥µV¦¦¦/^¼víš··÷åË—uttZkÞv999ŽŽŽtð\.7##£I…ŒŒŒaÆ)wýýý(ŠjþÇhBHlllJJÊ… Ž;vòäÉ&¢‡¾±±1%%ÅÉɉ¢§§—íçç7lذC‡µ¤••!DGçïZ“D„¢(B›Íž4iÒ±cÇ$IrròܹsÛ~BõwÿÌ&ååår¹œ:Bˆ““Sqq1½M¿³ZWXX9{öþ <ñ¨ì&zø÷ôèÑ£2™ÌÌÌŒÁ`ÐMTï†lM'ùT@—Ð.yöãÇ¿ýö[ŸÐÐPe¡™™™2#×®]£Ëé¹ËVVV………tIFFÆÆUWW§P(ª««çÏŸÿÎ;ïTWW·Ö¼(Šúî»ï&NœHï¯_¿^ùÔBˆD"‰ŽŽöóóS–Œ3F$¥¥¥={vòäɪ½=yòdéÒ¥_~ùåo¼¹páÂgÞJUWW~ëÖ­Ý»w·Ví¹ÀtìØ±¤¤¤aÆÑÉM[ŽBO/))ic`‡ÉdæççÓ»yyyÖÖÖôvk³Ò;Rmmãüùíìú}ýuPz|a[ôäï©\.‹‹Û¶m›r¶ÕòåËé¿Ô©¡3|ª «Ð|ž­P(æÍ›·dÉ’#GŽœ;w.99™.Ÿ:ujDDDQQÇóóóÛµk—j«Y³f­Zµ*33333sñâÅEEE­µb0ãÇ?~ü¸P(llld±Xl6»µæOŸ>Ý¿ómBŸÏ/+++))IMM2eJAAòÆÁµk×VTTŒ7îôéÓ999‰‰‰£F²¶¶V½ìÇd2§M›¶pá‘#GZXX(Ë)ŠZ¸p¡§§çüùó !¡¡¡gÉ’%ê­¡¡¡±±QOO¯®®.22’"‰è—Äb±ú¶ô‰¨¢ËÇ/"##çÍ›÷Ì£BLLL!?ýô“P(ܱcGc±XK—.-((ÈÌÌ\½zupp°ú€; EQK–ÄðùÂýûçêë#=ú‡þ=½|ùrEEEpp°áßf̘‘““£¼@®ú½{æw eÏ;Ñ„|¨ìêÆ:::ÇŽ£Zšoª´mÛ¶¾}ûÚÚÚîÞ½;((ÈÂÂB*•Ž3ÆÐаÉqU·Õ¿§ ,044T½g«ùQT‡%**ÊÄÄÄÑÑ‘žëÒÆÀª««gÍšÕ¯_?KKËeË–ÕÕÕ5™Y®^ûÍÏÞ¶í÷W^ KOÏoÎ;³¶ÌîáßÓ… Ž?^µ+…Báèèøé§Ÿª~¼U·Ûþ©Æül 1¨gý´ ƒð\­Zø¼ŸÃg:>kΜý6L3ç5ÍöÜùÑ_ÏøøxmÒCaü€Ösשn¬°°òãêI6tȳ¡»‰êgÍÚ7p Õ¦MMŸÐatµ€&Qµti¬DÒpâÄb]ÝôkdQQÕŸܺUtãFAe¥©³³@Ûôtȳ¡[ù.d8±ØÜÜHÛ±´»GªRR¦¤<¸y³Ï±XL//;oï—.ÝÑvh€<º‘ÔÔ‡›7ŸZ·nÒ°aöÚŽ¥½TU‰ÿø#çò圴´ì¢¢*CÃ^£F9ÌŸÿÆÈ‘ý¶£_pXÛaòlè.?®þè£ÃÓ¦ ›?ÿ mÇ¢aR©üúõü‹³RSfe•êêê nïï?âõ×]† y¥GMèBgCw “)–,‰í×Ï *jš¶cÑ>_táBÖùó÷SSŠDõ..ÜqãÜV¯~gäH6[OÛÑÀ3 φî`óæ_ïß/ùý÷PCÃ^ÚŽåeðùåö™3™<^±®®Î¨Qaa~¾¾îööfÚ  ]œ;w.??_ÛQ@qppðññÑvy6ty¿ÿž¹gOʶmïõïo®íX^\I‰àäÉÛII<Þc33ñcÝ-;v¬kŸ>½µ@ûúþûï´täÙÐs¼Hž¨ñP^@q±à“OŽøû ©íX^Ÿ/JNÎ8yòöŸöéÓûßÿöü쳉¯½æÌd¾Ô¬ë„„ƒ¡© áyùûûk;„.Æßß+höXLzšçγñ£:™L±dIŒ……Q—[’F*•Ÿ?ÿèÑ/fééé¾õ–ÇâÅãÞ|Ó•Åb¾|çË–-Cž§]666Ú´ï¹ólüû ÇÖ­¿ñxŧN}Ò…î ¼|9;!!ýÌ™ÌÚÚÆ <÷ïŸëí=@OO“3¸^}õU ö/󳡫JM}øí·ç·lñwuµÔv,Ï&—+èyäþY`mm:þþþ#pk#@7†<º¤òò§K–ÄLž:llÌŽŽîÔ³˜._ÎŽ‰¹zúô]##ý¹sÇÌšõš…E÷_ hȳ¡ëùúë³·o?:uêƒNú´ìë×ó¿úêtZZ޽½Ùš5ïŽ42Ò×vPС°b3t1—/goßþûêÕ︹Yi;–¤§~7eÊN™LñÓO¤¥}öþûo Éè *ìííCBBø|¾j‰Dîååedd4bĈM›6Éd2e[gggŠ¢TëO˜0Á`äææÒ»Ož<™1c†½½½¡¡áˆ#;æ¼à…!φ®¤¢B´xqŒŸß yó^×v,M={ïÝwwLš´C_Ÿ•œüɉ‹}|b6@råÊ•ÒÒÒââ⃠…¡C‡ÖÔÔÐ/‰D¢áǧ§§GGGß¼y3"""66Ö××W.—Ó ïܹ£ìJ \ºtI¹[UU5dÈ6›wãÆ÷Þ{/((è÷ßïȳkM~~¾™îêhæ@—¡PPŸ|òsïÞzÛ¶½§íXþ!+ëɆ É))†ï÷á믻h;"Ðsss.—K±¶¶~óÍ7ß|óÍíÛ·þùç„õë×›››Ÿ?žÉdB\\\Þzë-ƒ¾ÿþû„Ÿ„„„ÁƒÓ]%%%y{{ÿöÛoôndd䨱c÷ïßOï8°¬¬lëÖ­o½õVÇŸf …¢ªªJÛQtF¸ž ]ƾ}©iiÙ;vÌè|˜"“ÉZlN¢ùv cÑ¢E§N¢wcbbÖ®]K'Ù4ƒððð˜˜z—^S9u䨱cÓ§ÿo®ãÇÿç?ÿQí?22òÀôvMMÍœ9sÌÌÌlllÂÂÂêëëé~øá777ssó-[¶>|¸ÿþÆÆÆkÖ¬QF¨¾B‹Å`0bccÝÜÜúöíûÅ_BFM¡Á€ º‚{÷J^y%l×®óÚä/"Q}TT²ƒÃŠ7ßÜréÒCm‡Ð…ùûûûûû?³ZHHÈìÙ³ËÊÊ8Îõë×éÂèèèiÓ¦=zôˆÇã :tåÊ•999„ &\¸paݺuîîî<ïîÝ»£F k­•X,îիמ={JKK8 ««+‹¿üòË›×ÔÔìÛ·¯ù6!$''G5æôôtŠ¢èßø|~““úã?8ÝöÁƒ\.÷öíÛt·l6»²²’î“n^]]ÝÚà7.//Çãyxx¬[·Žî3((H(ÒWÁ„BáÞ½{ !•••m©Ð| èVÓ§Oûöí#„TUUÑcþÌwjó{ Ðm φ. ¶¶áõ×7Íœ¹W¡Ph;Š¢¨ääŒÑ£78;ºcÇÙúz©¶ÃèÚÚ˜{ OOO:‰¤¹ºº–––ÒÛgÏž³Bó¢[]¼xQµ&òl€Ö`Þt6$UWK¶n líﳦ¨¨jÆŒ½ þøê«Nii«–,ñéÕ 79t“ Ü»wïÃ?TZZZÒøðõõ-(( Ë]]] !EEEÎÎÎt‰››Û”)SZkejjzñâÅk×®ÙØØx{{_¾|YGG§µæm—““ãèèHÏår322šTÈÈÈ6l˜r×ßß?!!¢¨&“FLMM9Îýû÷UÛ¦§§1¢¶¶¶¼¼\.—Ó"„899ÓÛFFF„‹Õd[I}…Ö†×ÊʪyWÐòlèìΞ½÷ãW¶n äpŒµFc£lãÆ_ßxcsMMí™3¡Û¶½‡Eg:ÒãÇ¿ýö[ŸÐÐPe¡™™™ò²@ ¸ví]N§€VVV………tIFFÆÆUWW§P(ª««çÏŸÿÎ;ïTWW·Ö¼(Šúî»ï&NœHï¯_¿^ùtBˆD"‰ŽŽöóóS–Œ3F$¥¥¥={vòäɪ½½ûî»_}õ¥ò࿘˜©TÊf³9“ÉÌÏϧËóòò¬­­Ÿ+ÔÖ´6¼::HÚ_èÔø|ÑòåGGúù ÒbiiÙo¾}èPÚš5ï&%ýÇÝ]3ÿ†@)Šyóæ-Y²äÈ‘#çÎKNN¦Ë§NQTTÄãñüüüvíÚ¥ÚjÖ¬Y«V­ÊÌÌÌÌÌ\¼xqQQQk­ Æøñã?. Y,›Ín­ùÓ§O•ÏýPÝ&„ðùü²²²’’’ÔÔÔ)S¦,_¾œ~iíÚµãÆ;}útNNNbbâ¨Q£¬­­U/Ï3™ÌiÓ¦-\¸päÈ‘ªç²qãÆÔÔÔY³f]¹r…Çã}þùç;vì S‹¸téÒ‚‚‚ÌÌÌÕ«WkdØÕob±X#èV´0W ÍfÏÞÿ¯m”H´€HT¿jÕqkëeÓ§›—W¡­0º±¶ÌÙݹs§——Wcc#EQ‰‰‰–––ôMB¡pîܹ¦¦¦ýúõ[°`D"Q+\__feeell¤œßܼEQqqqŽŽŽzzz®®®'OžTÓ\õªÛªÿ¶ÚÚÚ———«ž…X, õðð`³ÙîîîQQQµµµÊ¶ô•ã””BÈ®]»š”SUXX8}út+++##£‘#G&%%){®®®ž5kV¿~ý,--—-[VWWפm‹ÛϬÐâ@5¯)•JÇŒchh¨þM¤0?zõÏ GlìÕˆˆc‰‰K† ³×Jii9¡¡Gë륟}öv@À­Ïè–!ñññÚÚÞkèip tRùùüÈÈ_–,ñÑJ’]SSûé§ ¿þz'8xôš5ïbátx^ȳ¡3’Jå}tØÕÕrÙ2-,uvöì½+â™LŸ^èí= ã€ny6tF;vœÍϯ8s&LW·CoÕ­«kܼùÔ?\~çÁ›6M355èÈ£@w‚<:›7 ¿ùæìÆÓìíÍ:ò¸wïüña vÏžÙo¿íÕ‘‡èiê륥¥5eeÂ'Oåål§VÛhòlè\Äâ†Å‹cþïÿΚõ¯;¨T*ÿâ‹ßöî½øÿ7pÛ¶÷úöÅelèòdùù|77K-Æ HÊÊ„OžÔ”—?--­yòäiEÅÓ’’š²²§55%Ö,“Å2Dž Ýòlè\"#©«küê«À;baaåâÅ1”~õÕ{þþ#:ì¸íD,nøé§?vï¾ðÚk.{÷†´ë±D¢ú'Oj**„EEUååOËË…ôEEUOŸþ•:ëè0ÌÍ8ãW^égoo>z´£]?§‡cÌáôÑ×gÑÏ è~gC'rîÜý£G¯ïß?·_?ÃŽ9âñã~öÙñW^éwút¨““ųtbäÀË{ö¤444ÊåTqqõË÷©PP|þ_©óßiôÓòrá£GUeeOdt5‹ieeB'Ð..ÜéÓûp8}^y¥‡Ó§o_C‹ùò‘t9ȳ¡³$aaGFL˜ÐK?Ö×K×®MŒ½6kÖ«‘‘“z÷Ö뀃Ò6lØpéÒ¥;t?o¼ñÆš5kTKòóùÛ·ÿþË/· †Lö×ÊÞ%%mͳe2EI‰€N+*„eeBå%j ¶±ñ¯dºOŸÞööft=rdúµ…E.·±1[ƒ'Ð= φÎbÙ²£lv¯§uÀ±òò*,ø±¤D°oßœÿÛ³ލêîÝ»ÐÕeR¥¼Œ­$“)ÂÃ㪫%Â'OžòùB…⯀ÍÍ8œ>––&£G;p8ÆVV&\®±¥¥±¥¥‰VVeºyóæÂ… ;þ¸ÐñgC‚<´¯¬ìiDı½öšS»H"iX¹òXbâÍeËÆÿç?ã;øáÜšR]­ÿöÛ_ߺU¤««CQ”T*k­æ;œ,†ï¯Ì¤¹\c.×XO¯ýðÇïœÐ]u¢µÐc}úiBß¾kÖ¼Û®GQ™+2·c¦€hÜ;33ÍjjzRD‘Éêëúé¿}}Ý;$4h ×ó@ËÒÏ»¿uk`»Îùý÷Ìÿ{»žóÌ™P$ÙÐuyxX÷ï_ãä$ð÷akÛ—¢£Ã`³{1-Tf2už<©éèào¸ž ÚôäIÍš5'æÌó¯µ×Œ©T¾jÕñ˜˜«<îÓOÿ¹"Ð¥1™:2Ù7ßÌ „TTˆÒÓóoÜ(¸z5/+«D.§ôõY2z6“©SVöTÛ!ô\ȳAk(ŠZ¾ühß¾†«W¿ÝN‡àóE þ˜‘ñhçÎàiÓ†·ÓQ´ÅÂÂhâD¯‰½!µµ·n¥§\¹’{ëVQ]]cc£¬´׳´×ö@k޽ž––ýÍ73ÚéÙÕ·o?òóÛVR"HJú’ìöÀPaooÂçóU+H$’ððp///##£#FlÚ´I&“)Û:;;S¥Z„ #77—Þ}òäÉŒ3ìíí GŒ‘˜˜¨zhe5­{æ8t 6[oÌçeËÆ'$|”½ùìÙ°§º»[w|$@Cž ÚQR"X·îäܹ¯Ñ¿=ú¿xñ¿ÿ.kkÓ¤¤¥H5ÚË•+WJKK‹‹‹<( ‡ZSó×T‘H4|øðôôôèèè›7oFDDÄÆÆúúúÊå=~®°°ðÎ;Ê®êò=UUUC† a³Ùqqq7nÜxï½÷‚‚‚~ÿý÷8©üü|33³çj¢f4{¥Fˆ IDATÒÿób2uÜÝ­çÎ}ýƒ¼Ûõ@ òlЊ¢–-;bffôÙgÛ£ÿýû/…„ì›4ièñãs8Æíq ™››s¹\kkë±cÇ&&&:88lß¾~iýúõæææçÏŸ÷óósqq™:uê7 L‘Éd-6§Ñ|» ƒ±hÑ¢S§NÑ»111k×®e2ÿ÷„‡‡ÇÄÄлþþþñññÊ©#ÇŽ›>}º²òñãÇÿóŸÿ¨öyàÀåî™3gœœœLMM7oÞL—üúë¯ô%pKKË-[¶(£¥'--­y…OyôèÑ„.—ÛÚè5éVý84?h“þ›W€n‚èX|GÇ‘‘‰ï¹¼\øöÛÛ=kÁ‚CãÆ¹}ûíL==|tþ¡¶¶ñÖ­¢ôô‚+WroÝ*ª«k$„ŒÐv\=’hG7nä>‹7ož˜rýú36»ýAAâ‘#‹¹Óˆ¶6&…B¯¬¤×VVR++©%%µÏŸTUQ?}¢0™l¼š„„¸‚Âèÿý'1fŒ ¾=fŒŒ„„ø@lW`9Lþ1x3lŽ;vL›6×Q€¡  ] äÙ Õœ8‘èêj©¥%ß»ØlÌÃ#*<<ýüùU?ÿ<¡oÃãS§vò/K ®N¤¶V´¾^”ÉPT¤«ªÖ|l€ÿÍš5‹ûRQ‘:rdñŽÖ!!OS[[Û8鲬ìÈv÷ê„…$$:]Hµ¡¡‰“WV6àé8™\öù3…FkÅ눈**JÈËVT”PW—áNÇUU¥l. ;;»Ù¦N Wè‘‘‘íJ Ï} Ã0wwÒ˜12®®–½ëÍÆvŒ|uá‚ã?šômx|bçΜí«ÿú‹|ÿþ?¯_‹ˆZXŒ³´gi9îÛgBÊ´ôˆ]»æ¯];38øÉ¥K©­­m ûkL•76îüvuCCSEµªŠZQÑPUõïíð'O>TV6TU5b†"JKPPàÜüæ¤ãÊÊ’BBÄ>8NT Ï})&&ãÙ³‚ØØ­½û›Êd²·m KL$_¹²Î ÏÃãµµ´„„ì[·^ÿý÷GQQ¡9sôOŸ¶·´')É_ʃAJJj„›ÛüM›æ^»–váÂCUUé¾êYBB\BB\OO±ã[­­ÌŠŠüþ7g,Êû÷Ož|(+£°XíÇ¢üoʿ鸆†,<” ª Ï}¦¦†vð`¬“ÓŒ)S4{ÑœÁ`¹º†&'¿ Û8}ºvŸ‡Çh´Ö»wsnÝzýøñ{!!AkkÃà൳g뉊 ñ:40tŒ)²e˼uëfVÀîDDÇŒ‘3F¦ã[ «®ŽÆÉ¿‹‹k++Š‹k_¾üXVV×ÔÔÆé¡ãX<—“ Sæ/ȳAŸñöŽÚ»·7³\·µ1ׯ¿úüy~hè3³Þ¤éüŒFkML$GEýýìY¾ˆˆà?ãé5¬úˆˆ oc"âÃÁ;¾Å`°ªª¨Ÿ?×——7TV6|úD©¨ –—×ge•TT4p¦O=ZLIIBYYR^~´ŠŠ”¢¢D^!ȼƒü™}ãÉ“QQ_¼¸zÔ(ѯmË`°\\BŸ=ËÿóOç!–dúD¹q#ýÆôêêÆ)S4}}—.\hc¯"ª¨Hu5¿~K ƒó,fII->4üÉ“UUÔŠŠz„°Žzg€ž C[k+sÏžHkk£… Çm[&“½eËõÔÔwááCg¸“ɾw/wÕªKffGnÞ|¹jÕô—/ÅÄlutœI6_$**4fŒÌ”)š Žwq±8rdñÅ‹«ãâ¶=~àÈ‘I¼Ž®o¸hhh8::VWÿgœNwww7115jÔäÉ“=Êd29muttðÇO9lllB~~þÍ›7 ÉÊʸëÿ.'üåçÏŸW¬X¡¡¡1räÈÉ“'ÇÆÆö|ס#GŽ„ãÇsJ¾x•vl‚¢ÑhnnncÇŽÓÑÑñôôliiéõIËÏÏ€ÙÓ!Ï}àÌ™¤êêF_ß%_ÛÉdoÚôgjê»ððÍ“&íØØ»wå»wGذ᪸¸Hxø¦W¯íÜù=, @Ÿ:¶ž={V^^^VVB¥RMMMëëÿͳ±±qÒ¤I¯^½òóóËÈÈððð ³²²b±þQSTT”ÍéŠB¡<~üßþùçŸËËËËËËŸ={†*ÿCCÃVXX(++ÛgljPe%õòåǶ¶çû°OÐN?]N¡ÚÚÚ &ˆ‹‹“H¤—/_þòË/ööö÷îÝëÉ®B†Ý¼yS]]D"q »¿J;m‚ruu}ýúutttIIIppp\\œ»»ûW%îk[RRrÏž=_Õ¼70¾Íû÷åêê».\xøµ Y,¶«k¨–Öî—/ û#°–’ònÅŠ@•ß}wÀÇ'¡¨¨†×0áwyE@åååq^²ÙìY³f:téææ6sæL&“É©@£Ñ444‚‚‚ð¶óçÏß·oçÝ«W¯ÚØØ´ë3//¯wçê«"„H$R§o544…‡§/]zNEe‡’ÒMM÷^Óߺ‰é×ËÉÅÅeùòåÜ»sss³´´ìÉ®1 ËÎÎ&III¡÷ïß·‹¼Ó‹­«&’’’éé霗©©©êêê=8=_Ø]²³³³³³ã.:7O`¶{w¤žžâúõ³¿¶¡›)>>ëÊ•µ“'â;Ù,;..ÓÚÚßÞ>°¡¡ùܹ•^û÷ÿØéô €¯¢¢B¡PBááẺºt:!Ä`0ÜÝÝäååÝÝÝ þÅqrr²ººzJJЧ§§ºººœœœ££#ç†\ÇV¡„„cccQQQMMÍëׯ#„˜Lf§Í¹¿›îæ{j°iÓ¦;wîà/CCC:D$þÿ©#FŒpww Å_âk;cÿû®?**ÊÖÖö‹g¦ã±tz®ð…;™Æ±'CŸ/\øû¸qûwïŽHO/`³±Á;ª.§èèè_ý•»OOÏàààžì!tóæÍÙ³g[ZZêëë·»?Ý•®šŒ=úÂ… µµµøËY³fãÛOl§çûÚæ>õõõNNN²²²ªªªnnnøpf`` --}âĉžDÞ‰þKêÁpö\Uugffñ×6|èååehhH&“srrÌÌÌÜÜܺjE£ÑDDDËË˃ƒƒi4ÚÉ“';m^__ß5l·þ{ðW¯^IJJb†§tÕÕÕí*--MAAoûîÝ;EEÅÌÌL¼[qqñššô¥ûÙ¥ÓsÕ»ûÙtzkDÄËU«.©«ïRVÞ¡ªºSIi;÷ƒ÷~öp¾œðæuuuÝœÀ®va›Í;vìÅ‹1 Û¿¿¡¡a»æ/¶nšÜ»wOEEEDDÄÊÊêäÉ“EEEœ·:žØNÏ!÷,,, Èd²‘‘‘——~h¶¶¶ %((!T[[ÛÕIàèx?òlÐ{ÕÕûöïþÚ†'O&ªªîLHÈê¨@EEý1ºº{54܈ùø±ýï/@?éažM¡PTUUñ¿—8}}ýòòr|;))iüøñøZ2™Œa˜žž^LL þî›7o8Û[ÕÕÕ ùûûS(6›ÝØØÈb±ºjÞ•^$FÏŸ?—••å´uqqñððÀ0,44ÔÊʪcŸ3˜ŽÇÒé¹úÊ<[àС@| ŠÊuõ]íÒë!gçË©®®!D¡Pz±k ÃÒÓÓkjj0 ËÈÈ@åääpWîx±uß„Éd¦§§{{{‰Ä°°0¼¼ã‰íôvšg·µµ‰ÄÜÜ\¼<&&F[[?´Gá:f§:æÙ0¯è=/¯[bbÂ_;aö¹sɧOßøe0.«ÞÒ yzöìƒÖVæ/¿˜mÜ8[]ƇÀw$%%7lØpøða|ˆ'®¨¨HIéÿç—øwbo}}}„Pqq±ŽŽ^b`````ÐU+))©GýöÛožžž¦¦¦666]5ï¹¼¼<---}:§ðÕ«W[¶lIMMïd cήB7oÞd2™ÜÕ’H$##£n"ïª NOHH°³³333333;pà€§§çîÝ»W¬X:;±­­­=<‡•••,‹³¶¶vYY¾­¬¬ŒêýZrgƒ^züø}LLFPÓÈ‘"=o˜rôèmŸ%Ë—Oé¿ØúƒÁ }~æÌƒææ¶M›æ¬Z5]Ff$¯ƒt®´´ôܹs–––»ví¼"„dee=z¤­­ª¯¯¯¨¨ÀËñ?¢ÊÊÊEEEx••uçÎýû÷wÚª¹¹™ÍfGFF¶µµ…‡‡/\¸°ªªª«æ=„aØü±`Á¿·-¼½½çÎËSK§Óýüü¸‡Éš››766>}ú4))éâÅ‹=ÙK§g ÓsÕÁÞÞlÍš%‹oÏÍ¥ÖÕÑ……ÛÚ˜ÝÔ¿xquÏû‹w>ΘÛ0¿œ~úé§S§NM›63š944”Á`tšdsïšÅb‘H¤€€€õë×ãïzzz’H$ooï®F–wÓð+Vèëë?!D ¾ÿþûK—.uõãX°`AÏ¡‚‚‘H,,,7nB¨  @EEK@à›Ÿcüâ=p:jnn›6ÍÇÉéòWµº~ý™²òŽßOꧨúIK ãܹß}w@Ooï¹sh´^GÀðÕ“q#,ËÒÒòÈ‘#uuuŠŠŠñññxù¶mÛlmmñ)ÌÌÌ̶nÝÊý%²§§§±±qNNNNNÎŒ3Ö¯_ßU«ææfQQѨ¨¨êêêK—.‰ŠŠ677wÕ¼›µœÙÐRRR~þùgUUÕúúzü݆†==½Ù³g'&&~øð!&&ÆÐÐpÆŒ---×7õ[¶l100˜;w.§ÏîÇt<–NÏÞ°±±±'?ô¿qÙÙ%ÄŒ·OIi»šZ'£G鸸œªªªdddÒÒÒ²³³½¼¼B·oßþâ®=zD$+++9'óï¿ÿF½~ýšSÒî*í¾ÉêÕ«uuuoß¾]PP––6uêÔíÛ·wub;=‡Ü×6÷®W¬XaaaQXX˜““chhˆÏ—ÂýB½7y6èãÇïhkïùô©Ë[ÅÄd¨¨ì8vìvÿEÕç ÖõëÏ&M:{ö¬‰‰I[[†a±±±JJJøS\T*uÍš5RRR2226l ÓéÜh[ZZÜÜÜ”••%$$ìíí9R;¶ÂÃÐÒÒÖ×׋‹ë¦yWÏ]qßðRSSsppàÎ-0 £Ñh»ví222744ôññijjâ´Åÿ䧤¤ „Ο?ß®¼ãîº:–NσÁ0779rdO~"íòT&“õâE›IKk·²òîAšgÃå„aXQQ‘­­­²²ò¨Q£¦L™ÂùÇF÷»Þ¸q£µµ5wl6[KKkÏž=œ’vWi÷M˜L¦———±±±˜˜˜††Æž={š››»:±žCîk›{×uuu«V­’‘‘QRRÚ±cÞmŸäÙ„vç€/zÿ¾ÂÚÚß¾7nœÓÃ&¾]³&ØÞÞìØ1ÛX~éÛ±X옘Œ³g””Ô­Z5ÝÅež¢¢¯ƒ ˆˆ|*_^þE H$Ò²eËÚ•76¶Ü½›“ñôéÀf#bAAo'Gë7]Å@/àRDD§Ægƒ¯Ãfc»vÝÔ×WrvžÕÃ&Åë×_]ºtÒÑ£ƒ#É&“K÷í‹ÎÌ,ùþ{£  5zz½œD†­Q£Díì&ÛÙM®©¡%$dEGÿýáC¯ƒ` Až ¾Nd䫬¬’¸¸mDbxóæóŠ Ÿ:µœÿ“ìêêÆãÇÿ"‘^˜™iÞ¾½}Âu^Gƒ›¬ìÈ5kÌ׬1ÿô‰ÂëXhgƒ¯P_ßäã“°bÅÔ‰5zR¿¬ŒâàpÉÔtÌ©S¿ðy’M§·þö[Ò•+OÔÕ¥ÃÃ7Íœù噞ôœŠŠ¯C` Až ¾‚·w¼  ÀÁƒ?õ¤r}}ÓÊ•—äåG­"~¹`õ÷±cwššÚ<<¬^=ƒŸ£À`y6è©çÏ H¤—¿ÿ¾bÔ(Ñ/Vnjj[¹òƒÁŠŽvùª ¶XFFñ¡C1dr™““ù®]ßKJv2(@/@ž z„Á`íß=c†¶­í¤/Vf2Ù›7_+-­‹‹ÛÆ·‹¹TU5úøÄGGgÌž­÷ðán^G€!òlÐ#!!O ª{RÙÃ#êÙ³ü¨( Ù/×p,ûÏ?Óüý 9³bÉ’‰|>vƒäÙàË**üý7l˜£«ûåîNºñ2$d‰‰ÚÄöµÈäÒÝ»#ß¾ý¼eËé–³ô+|hÆ ¼†#ȳÁ—yyÅIIعÓú‹5¯\ypÿìY‡yó  °¯RWG÷òº1gŽÞãÇcÆÈôaç7nìÃÞè[gO@ž ¾àá÷ññ™ÁÁkÅľpë÷ÎlOÏ[ –,™80±õ>£ˆO‚  ñêÕuVV†ý±XQ ð!|õD^GÑ÷`¬èCË—/’ÀvvvÜ/!ÏÝime8ceehcó]÷5_¿.þõ×ööf[·Z Ll=”Ÿ_µgOÄË—œÌÝÝmFþòd)¾5mÚ4î5?˜:u*¯Cè=¸œ@ßRUUå~ y6èÎ… «ª¨[º¯VZZçätyÆ cÇl&°žhkcž=ûàܹd}}¥¿þÚñÝwª_nàojjjjjüøì¤ÚÝ} oAž ºT\\{öìWWKUÕîñjhhZ±â¢ººÌÅ‹«{¸ûÈÈ(Þ³'¢  ÊÕÕrëV aa¸Ô0  ù]òðˆRQ‘ê~ƒÁZ³æJss[T”‹¨¨Ð€ÅÖ–†Ÿß_AA©Ó§kí;VŽ×`8‚<t.11'%åÝÍj«æ‡ IDAT››º_„|ϞȜœ²[·\FXlÝHKËß¹3œFkýãÇ… Çó: _gƒNÐé­ÆüôÓøY³ôº©vñbJdä««W U,¶®Ð魇Dž…¥ÿ½Ññãvòò£x†5~M øÊï¿'Ñh-ÞÞKº©sï^î‘#ñ ,,x?Uöóç'ïÜ!:^¹²’ìÞ!pÑÐÐptt¬®®æ®@§ÓÝÝÝMLLF5yòä£G2™LN[ øëÛØØ„üüüžt·áuP ȳA{Åŵ—.¥ººZv“­¾yóyëÖP‡i[¶ÌÈØ:jjjÛ½;ÂÖö¼¡¡rJÊ+òž={V^^^VVB¥RMMMëëëñ·'MšôêÕ+??¿ŒŒ °°0+++‹…W(**ÊÎÎætE¡P?~ÜÃÎùDaa¡¬¬,w 37^ÅÆÑ1Hü òlО·wœººô† sºªPQÑààpi„1>>ÝÝð/^ZZþ{;8x­œÜÆþVrrrŠŠŠ***sçÎÕÔÔ<}ú4þ–···œœ\rròüùóuuu—,YòòåË¢¢¢¼‚¥¥edd$§«øøøÙ³g÷°s>Áf³kkk¹Kð˜¹ñ*6ŽŽAàOgƒÿHJúçîÝ\ÿå]=þØÜÜæä»é¼­­H$æææâå111ÚÚÚßMžýúõk¼«vÛøN;ž1¼Õ£G¸kv̳ÛIHHàþµ¶¶¾}û–F£±X¬ÔÔT¼##£°°0N'7nÜàäÙýd÷ Ï‚yýÀ¿JKëΞ}àæ6¿«ÇsNž¼ëã³xÎýŽ WUÕ¸}û´´¼Ý»m6mšË?kOö¤¤ä† >œ””Ä),**RRRâ¼”À7ôõõBÅÅÅ:::x‰AW­¤¤¤=zôÛo¿yzzšššzxxØØØtÕ¼çòòò´´´ðà³²²,--¹+deeMœ8‘óÒÎÎÎÙÙÙ××·ûA#í:¯¬¬d±Xø6BH[[»¬¬ !Ô}ðØóàQ£F!„„„„Úmãº:ÏÊÊÊíjv ¿!ÍOŸ‚ÿ€„……?|ø°~ýz6a¼BAA‘‘§þ¸qãú;Hüie* ÿ>§ª*µ~ýìNß%“K]\®¯Z5mÍš™.9ù­¥å‰¢¢š[·¶¹¸X º$!TZZzîÜ9KKË]»vq eee9wy)Jzz:^Ž'UÊÊÊEEExIVV–¯¯oW­š››Ùlvddd]]ݺuë.\XWW×UóÂ0ì?þX°`þÒÁÁÁÛÛ›3»BˆN§ûùùÍŸ?ŸSbnnÞØØøôéÓ¤¤¤E‹õ°s"‘XXXˆ¿UPP ¢¢ÒMðød‚Ÿ>}êù±tužzy!á? æææeË–¹»»¿~ýúÂ… ø[cÆŒùçŸ85ß¾}Ë« ðüú!ôðáÛ¿þ"ûú.íôÑÆº:º³sÈøñêGŽð`‚‘¶6æÁƒ±ŽŽAóçwÿ¾Û„ ê÷c³Ùk×®uuu ðàABB^¾dÉââb2™<þüóçÏs·ZµjÕþýûssssss·nÝZ\\ÜU+`mmM¥RÛÚÚ„„„ÄÅÅ»jÞÐЀn·ª®®®¨¨øôéSjjêâÅ‹?~ü¸sçNü­C‡UUUYXXܽ{7///66ÖÌÌLEEeóæÍœæD"qéÒ¥7nœ2eм¼|»“ÐUçBBBË—/ß¶mÛÇsss8àààÐið’’’¡k×®Q©Ô3gÎôüüwžÛ¡Ñh=ì¶µµµ­­MXX¸¹¹ÙÓÓ!ÔØØèââ²{÷îû÷ï×ÖÖâƒì{8ëv? €gxœ àC­­ŒéÓ}×­»Òé» ËÎî‚©©WUU—ã¶ûÏ›7ŸæÌ9®¯¿/!!kà÷ÞsèKã³Ïž=kbbÒÖÖ†aXll¬’’R]]†aT*uÍš5RRR2226l ÓéÜ£o[ZZÜÜÜ”••%$$ìíí) ^Þ±†a$IKKKXXX__?..®›æÝŒræPSSspp¨¬¬ä> ¶k×.###qqqCCCŸ¦¦&N[ü^lJJ BèüùóíʻN®nÕªU222JJJ;vìhnnî*xIII--­¸¸8îÈ9w‚;ÝîôŒu¬É`0ÌÍÍGŽÙ±+Žv㤥¥ÕÔÔ.\¸`oo///Ïb±NŸ>­¥¥%!!1þü¸¸899¹þ ²{0>xˆ€uö¬V.\xpïñceeÉŽï9ü$&f«©é˜ìæÍÆêè(œ?¿rìX¹ÞûW!$iÙ²e¼ðÞíÛ·ÕÔÔLLLð—ÑÑÑ>>>™™™< &""bùòåð{xÆ w §OßߺբÓ$ûÖ­×)'O.à$›Nouu Ûµ‹´fy\Ü6>O²àF&“W®\ùúõ릦¦ôôôƒ:;;ó:(<ó wÞÞñ £]\,:¾E&—îÜyÓÑqºÝä )#£xóæ? vT”Ë´iZ¹k¾ÝîÝ»›šš-ZT]]­©©¹víÚ7ò:(<yö°–––ëÖë?ÿtîøøcm-ÍÙ9dÂuoïņaÁÁO||¦O×>{ÖAFfä€í€¾"((èãããããÃë@ðäÙÃÁÚ¿?ÚÊÊÐÊʰÝ[L&{óæë,8p‹«744íØq3)韽{زe^§hàOg_W¯>-.®ùóÏNFŽ=šð÷ßãâ¶ÉÉu¾fMŸ{ýºxÓ¦? ‰´yútí/7àoðä0UYI=y2qË–ycÆÈ´{‹Dz˜râIJï¾S˜`._~¼dÉ9mm…Ü!ÉÀÐ÷³‡©“'GÛ²e^»ò*ˆY±bª­í¤£­éæFŠŽÎØ¼yîÞ½ á~" Ï޲³KoÞ|qþüª#D¸Ë[œœ‚MMÇøùÙ @ååõë×_ýø±æÚµõ°G€yö°Ãfc»wGÌœ©ûóÏÚ½åîNjnn;wn%‘Øï÷•=zçâr]KK.9Ù]QQ¢¿w7’““ëëë`G--,‚°0Üû_–‘‘Áë`ø‚<{؉Œ|õöíçÜÛ•‡„<½s‡L"mîïgÙlìØ±;.<\±bª¯ïaá!r^ºt©ÿ:'„„…•……ÕDDÔ„„äëëï77¿í¿ÝàÛ ‘ô•Úâë›°rå4]]EîòììÒÇãvì°îïÇš\]Þ>Íûí7û^þ¦_õÇºÖ +#£(--ïéӼׯ‹ –††ì´iÚ3fhÏšå#+ “‹| òìáåÌ™$6Û³çîB …îì2}ºööíÖýº÷·oË×­»Âd²nÝr56Vë×} Rl6öÏ?Ÿ?~ÿôiÞË—››ÛÔÔ¤§O×^±bêŒ:ÊÊ’¼=yö0RPP”êåµHBBœSˆaØöíál6vö¬ƒ€@?. C"½ôðˆš4Iã?a¡Çvª«SSß§¤¼{üø}M MIIÒÜ\çèÑ¥Ó§k«©Ió::ôäÙÃÈáÃqÚÚ ŽŽÓ¹ SRRÞÅĸö_î‹/<úÜÅÅbÏž`ò>\ccKJÊ»'O>O²Ÿ>ý°aßZZòÁÁkååGõmçüƒÉd§¦¾Žþ;)韖Æ´iZÇŽÙþðƒ±´ô^‡þyöÕÒÂ8v쎭í$##¼äíÛÏÄlßn=a‚zßîëÆt¨Ÿ~špêÔò¡úÔã?ÿ|ŠŒ|uëÖ몪Ɖ5öí[°`Áø!ü/ |£¡™„P`à£úú¦½{à/[Z[¶\Ÿ}¢ìØqÓÉÉÜ¢Ï&ÚËÎ.urº,'7êÎíCcESS[LLFhès2¹tÌ'§vvS`ø5z æõjÚÍåÇb±mmÏÓh­wîlï«'ïÝËuq¹>c†Î… «FŒô³D¿_qãFztôß Íóæ88L7oœ  ¯ãÀà÷³‡š„„ìÌÌâ»wwá//^LÉÊ*ùë¯}•dŸ:u7 ྒྷ“¹·÷""q'£  NóüyŠŠÔš53W¬0SR’ürK€€<{Himeúú&,]úï\~™™%ÇßñòZd` üí³ÙØ‘#ñ—.¥îÝûƒ««å—ð«ÒÒºK—R##_µµ1mm'yzþll¬Æë 0Ô@ž=¤¥ÖÖÒ<< „š›Û~ý5lÖ,½5kÌ¿½ç¶6æ¯¿Þøë/ò¹s+/6ýö†a¼¹|ùqZZž²²¤««Åòåf²²#y†&ȳ‡ŽÊJê™3I›7ÏÃLôñ¹]SC‹ŒÜòíSÑÕÖÒV¯¾\TTã:q☾v@Õ×7……= K/.®57× Yga1®ç7èòì¡Ãßÿ®„„¸‹Ë<„PròÛ«WŸž?¿RAá[')*ªY±â"ƒÁŠ‰Ùª««Ø‘œ7o>>JHÈ"ìí§:9ÍÐÒ’çuP Ï"Þ¾ý|óæ‹ß~³¢Pènn¤Ÿ~¿hÑ·ðÈÍý´råE9¹Ñ¡¡8KÞð?ƒuëÖëàà'dr©ŽŽÂ‘#K~þy¨Q¢¼Ž ÃÌë7DØÙojj»}{;@X·îJvvéÇ»Gû–>=z·aÃÕI“4._^3Xæï««£ß¼ùâÚµg%%µÓ§k¯Ycþý÷ßñÏ$}Ë–-‹ŒŒäu`ˆ°³³‹ˆˆàuº÷³‡‚û÷sŸ=+ˆßF ¢¢þ¾{7÷æÍMߘdÇÆ¾Þ¾ýÆ‚&¿ÿ¾_ï†ÏÕ\º”B"½"ÐÒ¥“œœÌ ”xT'¦NºsçN^G½€€^‡à ÏôÚÚ˜^^q šLœ¨QVF9p ÚÉÉ|æLÝoé3,ìùÞ½Q+WNóñYÂÿ“dgd¦$&’åäFïØa½jÕ4 q^Õ%555;;;^G=øbøäÙƒÞŸ¦•—דH›Y,öÖ­¡rr£øñ[:¼x1åÈ‘x7·ùÛ·[÷UýÉdÇÆf\º”úÏ?Ÿ&NÔ€YDÀW ÏÜêêè÷ׯŸ­¦&}ùò㌌¢ØØ­bb½ëÍÆŒ½~=í÷ßW,]:©oCíCTjóõëÏþü3­¼¼añbÓS§–ÃB3à7gn÷DE·m³*,¬>zôö¯¿ZMš4¶w]1¬íÛo$&毵²2ìÛ8ûJyyý… ""^2™ì+¦®[7SCC–×AtòìAìýûŠk×ÒŽ³ܼùÚwß©îÜù}ﺢÑZ×­»’•U¶qÚ4­¾³O¼{W~áÂø¸L™‘Û¶YÚÛO•–Áë ºyö æë› ££øË/füñ(/¯òþ}·ÞN®«£¯Zu©¤¤.2r ¿ ÀÀK?w.ùÕ«zzŠþþË-2óŸ`˜ã÷©$@WRRÞ=xðÆÛ{q^^¥¿ÿ]7·ùÚÚ½Yé°¼¼~É’sUU±±®|•dcvÿ~î¢EgW¯¾Ìf³/]rzðÀÝÎn2$Ùü€ÀECCÃÑѱººš»Nwww7115jÔäÉ“=Êd29muttÚÍÜoccC òóó{Ò9¿¹yó&¡3YYY¼ /Až=(1™l/¯8kk£)SÆnÛ6~¼ú¦Ms{ÑOAAÕÏ?Ÿ! ·oÿÚ»4½?°X츸LKKÿ5k®HKˆ‹Û–°ýÇMø†ÁaåÙ³gåååeee!!!T*ÕÔÔ´¾¾«±±qÒ¤I¯^½òóóËÈÈððð ³²²b±Xx…¢¢¢ììlNW åñãÇ=ìœOÊÊþûlÀÏ?ÿ\^^^^^þìÙ3„PùÿòésŒ”nÜH/*ª¹zuÝÅ‹)ùùUII½1òþ}Å/¿JKß$/?ª?âüZ--ŒÐÐç—.¥TU5®Z5ýÊ•µcÆÈð:(Ð9999EEE„ŠŠÊœ9sæÌ™súôéÇ#„¼½½åää’““‰D"BHWW÷ûï¿722 qvvFYZZFFFŽ?ï*>>~öìÙ‰‰‰=éœO°ÙìÚÚZ|[LLLLL !D£ÑBxäÜ |¨Ô–“'W¯žÑÒÂÀGŒhi}õ­h2¹téÒsÊÊÑÑ.üdS©-§NÝ2ÅûèÑÛßÿ]ZÚ¾#GÏ$;>>^EE…B¡ „ÂÃÃuuuét:BˆÁ`¸»»+((ÈËË»»»3Œüü|œœ¬®®ž’’âéé©®®.''çèèȹûÛ±B(!!ÁØØXTTTSSóúõë!&“Ùis|·Û!›6mºsçþ244ôСCx’1b„»»{hh(þ_0œ3t$**ÊÖÖ¶«Ò®óúúz'''YYYUUU77·–––Nƒï*rpåÊ99¹ãÇ_¿~}ìØ±ìæŒ„°°0iié'N „¦Nо”RoÛ¶mݺuø6FÏÌÌ㉋‹ÓÓÓ“——ß¶m[kkkWû0¸a`°9r$ÞÐpu5ÕÊêäÏ?Ÿa±Ø_ÛCjê;-­ÝööMM­ýáW¡Pèþþ‰ãÆí×ÓÛëïŸX]ÝÈëˆú‘Ý«9::®^½º¢¢BAAáÅ‹x¡ŸŸßÒ¥KKJJÈd²©©éÞ½{óòòB666>ôòò244$“É999fffnnn]µ¢Ñh"""åååÁÁÁ‚‚‚4íäÉ“6¯¯¯ ê¸ÊËËãŽùÕ«W’’’†áÿB¨®®nwPiii xÛwïÞ)**fffâÝŠ‹‹×ÔÔpúì¦s Ã,,, Èd²‘‘‘——W§Áã'o½²··§R©—/_F-[¶ŒJ¥^¼x!TSSÓéÃ[ÙÚÚR(”   „Pmm-wŸí SSSedd †a¡¡¡†††l6¯cmmýáÇôôtmmm//¯®öÛ^KxòìA¦°°J]}Wpðã3g’ÆŽuÏϯüÚÉcƸ9;‡´µ1û#ž«¨h8p F[{Á>ÿĺ:oã=Ì(Šªªª±±1žáôõõËËËñí¤¤¤ñãÇã™LÆ0LOO/&&÷Í›7œíŽ­êêê„„„üýý) ›Ínlld±X]5ïJ/òìçÏŸËÊÊrÚº¸¸xxx`jeeÅÝg7·µµ‰ÄÜÜ\¼<&&F[[»Óà»É³_¿~wÕnßiÇ3†·zôèwÍžäÙL&SQQ199ð~øáøñãœ:øO Ã0‰¤­­ÝÕ~»y6ð?Ÿ=È=zGSSnÆ ›€íÛ­¿vÄH||–«kèâŦ§NýÂÃÇ ?®ÿí·û¯¤¤FìÙ󃽽و"¼ †IJJnذáðáÃIIIœÂ¢¢"%%%ÎK |C__!T\\¬££ƒ—tÕJJJêÑ£G¿ýö›§§§©©©‡‡‡MWÍ{.//OKK ^QQ1++ËÒÒ’»BVVÖĉ9/íììœ}}}»4Ò®óÊÊJ‹…o#„´µµËÊÊBÝýwn“Q£F!„„„„Úmãº:ÏÊÊÊíj~‘H\²dILLŒ±±ñƒð»æ8NÀúúúø!tµ_ƒŒÏLÒÓ îÜÉÞ·ïÇÝ»#tu·l™÷UÍoÞ|áâr}Õªé§OÛó*É.,¬Þ¶-lÚ4Ÿ‡ßúø,yñ″ó,H²Û)--=w¥å®]»8…²²²œ»¼ %==/Ç3?ee墢"¼$++Ë××·«VÍÍÍl6;22²®®nݺu .¬««ëªyaöÇ,X°éàààííÍ™]!D§ÓýüüæÏŸÏ)177oll|úôiRRÒ¢E‹zع‚‚‘H,,,Äß*((PQQé&x|2ÁOŸ>õüXº:ϽùÈØÙÙÅÆÆFDD˜››«ªªrÊñ»Ú¡>à|Wû0xAž=h°ÙØ¡C±sæèüX“]zîÜJAÁ¯øñ¥îÚEZ¿~Ö‘#‹»zš­_•–Ö¹»GÌë÷ìY¾§çÏOŸî[¹rš°0|£Ò›Í^»v­««c®ç# IDATkxxøƒðò%K–xxx“ÉäùóçŸ?ž»ÕªU«öïߟ›››››»uëÖâââ®Zkkëèèh*•ÚÖÖ&$$$..ÞUó††|s»m„PuuuEEŧOŸRSS/^üñãÇ;wâo:t¨ªªÊÂÂâîÝ»yyy±±±fff***›7oæ4'‰K—.ݸqã”)SäåÛ-ÓUçBBBË—/ß¶mÛÇsss8àààÐið’’’¡k×®Q©Ô3gÎôüüwžÛÁ'éÆÌ™3™L¦··÷ªU«¸Ëýõ×üüüW¯^íÛ·oåÊ•_»_ƒÃS½ý·ŠÊŽû÷s55wûû'~UÛððteåGŽÄ³Ù_ýÐä·+-­sw'©«ïš2Å;4ôÏÇ…óPOÆÔž={ÖÄĤ­­ Ã°ØØX%%¥ºº: èTêš5k¤¤¤ddd6lØ@§Ó¹G·´´¸¹¹)++KHHØÛÛS(¼¼c+ ÃH$’–––°°°¾¾~\\\7Í»åÌ¡¦¦æààPYùŸGh4Ú®]»ŒŒŒÄÅÅ }||ššš8mñ·)))¡óçÏ·+ï¾óºººU«VÉÈÈ())íØ±£¹¹¹«à}||$%%µ´´âââ¸#çÜ6ît»Ó3Ö±&ƒÁ0779r$÷Qw:h{Ó¦MbbbT*•»ÎåË—ÇŒ#++ëêêÚÜÜÜÕ~»ã³€ÿ°ÿþUü©µ•9sæÑéÓµ>}ª¯­¥ß»·«çË"’H/wíº¹}»µ›Ûü/×îS……Õ~~ݹ“=v¬ÜîÝ6 ˜ôneø!cÙ²e¡ˆˆ^Îþýû‹ŠŠÂÂÂð—ùùù—Ã츖€ÿÁ·öƒC`ࣺ:º¡¡jtôëøø_{žd?>tèÖÁƒ?mÚ4§?lïãÇêãÇÿºs'[CCö?!ÃÃPKKËçÏŸ¯\¹ÎëXðäÙƒ@UUã¹sÉ+WN?uêîš5æ&¨÷°áåË==o:ôÓÆsú3Àÿ(*ª ¸—©ª* 6Î^¼x±xñâÍ›7Ï™3‡S8zôè7ò.(òìAà·ßî)RRR+-=ÒÃcA[¥zyÅyzþ¼aÃì~ ƒ“a«¨Hùû/_´È´ç÷ÝzfÏž]WW×®P^^>00'ñ`gó»*BCŸÛÛO }N"mîI«³g?þ×±c¶ŽŽÓû;B6@gó»ãÇÿ;VöÞ½;»Iææ:=iòûïI'N$?n»jU¿'ÙÅŵ§NÝ…  ȳùÚ‹…wïæXXdf–<øSOšüöÛ}ÿ»~~v+WNëרêë›ÎK y:r¤Èþý §‹Š~ÅRyCäÙü Ã0oï8ccõGÞ:õ‹ŒÌÈ/69}úþ©Swýüìú1ɦÓ[ƒ‚R‰Ä]»¾_³Æ¼‡£Y†ȳùWBBVVVé˜1ÒææºË—Oùbý€€{÷NœX¶bÅÔ~ ©¹¹íÊ•'çÏ?ps³qp˜ 6@§ ÏæSmmÌ£G\PPuãÆ¦/Ö?uêÞéÓ÷üý—ÿò‹Y?Å”˜Ò֯ܶÍÒÉÉ|Ä‘þØÀÐy6Ÿºz5­¢¢¡²²aûvk Ùî+ûúÞþã‡ý”d³XìððgÎ$UW7:;ÏÞ¼y®´ôˆ>ßËðI ôrBqAPHHNPP^HHNHH¾©éŸ¦¦ì¾  "vvv¼@w`Ýu~T_ß4m𝄄¨˜˜ðýûnÝÏàáã“pñbÊÙ³‹™öy$ Y÷ ª~ùÅlÇk%%É>ßŰòüùó²²²ž×onf––ÒËÊèŸ>ÑËÊèUUÍl6&,, ¢2RUU|üxYmíÑý-àsªªªÓ¦õïãξÜÏæGgÏ>`2Y¥¥”ØØ­Ý'Ù§Oß |äçg×çIvZZþñã·³²JííÍ®][¯¦&Ý·ýOÝgEl6–—WI&—’Éedr釕 M¡1cdtugÏV56V36VUP¨xÐ{g󢢚  Ç¢¢‚ööfS¦hvSŸÂÏß™½}_>ø˜“Sæã“ðôiÞ?šøûÿ¢§§Ø‡n ëíÛÏïßWà‰õ»wå-mmccÕ… Ç«êë+-ÆëHðÕ Ïæ;'O&Š‹ XØMµßOò÷¿{ú´ý²e“ûj×ååõ'N$FEýmb¢F"m27×í«ž®¥…Á¹]M&—}üXÍ`°„…MLÔôôñÄzÜ8•‘#áS`Ѓ<›¿de•ܺ•) €þERR¼«j.<éP(ô¿ÿ.úð¡¿i]XXÅd²ÅÄ„ŒTfÎÔuq™gl¬¦©)‹hCäÙüåðáxqqáñãÕº™0ûêÕ4_ßÛ‡/ê“á"4Zëï¿']½úTFfä￯X°ÀD@ —³a„PuucVV ç¦ue%!$%5bÒ$ ++C]ÝyÆÆjZZò‚‚¼Žý òl>’”ôÏË—D¢€¯ïҮꄆ>ß¿?ÚÝ}¾³ó¬oÜ“ɾyóE@À½æfÆž=?¬^=îª~- Ã>|¨ÄŸYüð¡‚“XËË21Q_¹r<¹ [gó &“íéyKPPpíZs]ÝÎ=Œ‰ÉØ»7ÒÕÕbûvëoÜ]BBÖÉ“‰¥¥uÎγ·n'!ÑåÀ­Ý” ïß—S©-AGGÁØXÕÅÅBOOQWWk@žÍ/ÂÃÓKJj¥¥GîÚ5¿Ó ññ™¿þzcÓ¦¹{÷.ø–½|YxäHBVV‰½½ÙÍ››••aJìî´¶2³³K8íTÑé­D¢€––<×” Ê£G‹ò:Rðȳy£©©­±±EAáßEF[޽ƒaØáË:k")éW×°U«¦íßÿc¯wúñcµ—W\RÒ?VV†¸Ã„}jjjËÍ-k7%ˆˆˆ ±±ÚäÉc×­›©§§¨¥%ËΠ{gó†M@QQíÎÖ[¶Ì"¦ÐhÍS¦hZX`Ön]î‡ß:;‡,[6Å×wiï–ìnhh:{698ø±ººÌի묭úè8†‚ÚZÚë×ÅxVýáCEY…Åb‹‹ þÿ” ðä"¾¬»ÎÍÍmZZ{ðm)©þ´gO›%'»_»ö¬¹™qâ„‘øoV÷üyÁÊ•—æÏ7:sÆSØs ëÚµ´€€ûÂÂD7·ùË—›A¾X\\‹?³È=%ˆ¬ìÈ ÆÚ‹èp?›òó«8Û }çÎpÂO?WR’ OonfÖÖÒ.]Z-,,˜™YâätÙÊj\/’l6»q#ýôéû4Z˶m–ëÖÍêëCº_̦@?ûÙ<“±ukh»Béè(âë˜  ”\èìbf¦uùòšŽ3îaæí¿k×üNÇs§§>—›ûÉÉÉ|Çkiéýu0ü§ûÅÌñ¬3@ƒûÙ<—WÙ±ÃЇø6“Éz÷®|Ë–Pmm…?þpìtZëcÇî\¼˜"$DÜ·ï?OFÕxzÞJJúÇÂÂàáÃÝ:: ýq|3‚<›23‹¿X‡Á`544}þL(/¯×Ò’o÷nxxúùóB)ÓÆŒ‘AÕÖÒüüþ"‘^jjÊ‘H›gÎÔíàù,fþãFxÀØø`M ­'5‰bbB7nlœ8QƒSxÿ~îÚµWØl ¯0k–î•+kƒ‚RÏŸH$ ìÙóÃòåS†XŠYUÕ˜ÝùbæººŠºº 0%ø äÙÁ`ëÆf÷´>‘( ""¶ÑÌL!ôÏ?Ÿ.ü½­‰çÙ8UUéòòú+¦º»ÛÈÊŽì°{èÝ»ò¦¦6SÓ1ßÒI÷‹™Ã” `ÜÈ@+.®íy’"­­Œ»wsÌÌ4?®ÿå—@ƒÅd êë鉉;ŒŒTû>Ükhh:qâîµkO7l˜óµy6,f€¡òìÆyØ‘ÐÉ BB‚,kùò);vX++KÒé­©Ô&ë?y:›55µ=^À«<›Åb߸‘îë›@§·±XXffÉ›Àbæò Ïhí‚42R~÷®’ÉdqJ„„˜LÌÚÚp÷n|Â&“íìRPPÍdvr3œÍÆüü—.4ðó÷%'¿Ý¿?ª¬ŒÂ¹ÅN&—u\Ò3Àpyö@ËÎþÿÛ½ruµ }ÆI²‰D‹=i’æ 'LPçÔôõMxòä÷p‘vZZÚNºëë»´ÿ"o§¸¸öÀ˜ää7D¢w`MM­eeqqaXÌÃäÙ3n„@ =ºtôh±úú&„‘(Àf³ ”ü©Ý”|ׯ?»t)µÓ'V ‚,ò֭׿þj-/?ª¿FkõóûëêÕ§D"!Ôn €-:[UEÅëqãTæÍ302R12RÕ×Wb¡tòì…a…BG‰„?ÿ\?ožÍi6PPسç‡%K& ügÄEJÊ;(N’-,,ÈfcøýoEE cc5CCeCCCCuuév£5ú#þ¨¨¿½½ãšX,6‹ÕI!!¢ŠŠÔÁƒ ŒT55åÚÀ0ÁGóúYYYñ:„~Çd ½¯G °55?ŠŠ677‹j‰,yùJ)) ÐþgÑÚ*ZX¨Éf „$$Ô*.Þ,*Ú""Ò,&ÖL$~ÍÄ%߬µUD^þ‡gÏòP7#XÂܹú¡¡2¶ab8|F†›¤¤$^‡ ¿ðQžM ¦Nª¦¦Æë@úQm­X^žä„ Õ""L„PA¤KE…F$vòS`± $Ù#G2ÄÅÛFŒ`vLÄ‹EÈÍhl”GH€H$`Xwy6BHFfTNŽ÷€…7| ‡ÏÈðQZZšžžÎ?¿ô9þʳI$Ò²eËxH?ÊÎ.ÑÑQÆ_R©Í£G‹ñ6¤ºv-ÜÙyWhh\QQMaauAAUQQ5Þ†" ÛÚXÜS¦ää‘‘áåŠ9CÒpøŒ Ë—/çŸßÀúŒÏP&&êÜ/K’%2åË–Mæ.¬­¥}üX]XXƒÿ?/¯²¤¤¦©© !”“S6gŽ>‚à=ȳAïÉÈŒ”‘9iÒXîšZQQµ¬l¿O{ÀÏ Ï}LVv¤¬,ŒÀp«„Ð÷ Ï ïAžÝÇ\444«««¹+Ðétwww“Q£FMž<ùèÑ£L&“ÓVGG§Ýü666!??¯`ggÇ]!??¿çkÓ|UeúIF:BpñàȳûÞ³gÏÊËËËÊÊBBB¨Tª©©i}}=þVccã¤I“^½zåçç—‘‘áááfeeÅúßÊŠEEEÙÙÙœ®(Êãǹ;ŠŠ"‘Hv,½™Yrûvö—ëa¬_?#xçÜì¸B………²²²¹G| òì¾'''§¨¨¨¢¢2wîÜØØXMMÍÓ§Oãoy{{ËÉÉ%''ÏŸ?_WWwÉ’%/_¾,** Á+XZZFFFrºŠŸ={6wç7ntqq©¨¨°Ã顼¼Ê“''M:¼`ÁéÄD2¯Ã|­_?#xçÜì¸Bl6»¶¶v ÷€o ¦<;>>^EE…B¡ „ÂÃÃuuuét:BˆÁ`¸»»+((ÈËË»»»3 ü;âääduuõ””OOOuuu999GGGÎm³Ž­B ÆÆÆ¢¢¢ššš×¯_G1™ÌN›s ÝÍWÒaÓ¦MwîÜÁ_†††:tˆH$r*Œ1ÂÝÝ=44iggÁùZ<**ÊÖÖ–»Ã;vèëëoذ¡ãòõõõNNN²²²ªªªnnn---,ëäÉ“ººº£Fš1cÆ‹/º9öÞùü¹þÂ…‡³fŸ=ûø™3>®‡oçy>#=Ñéq„+W®ÈÉÉ?~üúõëcÇŽ•8xð`÷­Â ¤¥¥Oœ8š:u*Bh€“{| ã!‰Ô}GGÇÕ«WWTT(((¼xñ/ôóó[ºtiII ™L655Ý»wo^^BÈÆÆæáÇ^^^†††d29''ÇÌÌÌÍÍ­«V4MDD$00°¼¼<88XPPF£|ø &&‚a~¤x?d2ÙÈÈÈËË+ @^^>&&æóçÏwîÜQVVÆ+w<ö/þtðÁ*œ—ÅÅ5þþ‰3fURÚ®¦¶SIi;ç?eå[¶\ûb‡ à3Ò“ÏHVVVãaÿý¤tzý#„ìíí©TêåË—BË–-£R©/^DÕÔÔtÓÊÖÖ–B¡!„jkk¹wÔ½vŸ)þ½;‡ªû~gÆØ‰ìkeY¢¨”ŠJ‹B%J{´ã‰´x¤”VÚ$-ä±”¢EÉVÚhÚ(K)DFvf¹¿?n¿ùÎcY,Ÿ÷½Æ™s>çsg>®sÏ >ýè»|Oj‰$//¯££ãííMoÔÐÐ(++Ã'%%éééa?êrrrPUWW¿~ý:öì»wïèÛª®®&‰‡&‘H4­®®ŽJ¥v6¼‹£øÓâéÓ§âââô±...žžž(І‡‡›››3Ƥ?8~ü¸°°ð—/_è?Ô[[[ B^^óúõë***jjj/^¤OtéÒ%¬sûcïú Ðÿ¯ ªªêBBÒçÌ9*+»]^~‡¬ì6Æ êlVƒÏHO>#žM`,;üÿ È«W¯Pmmmmó‹ÜÙ¨ÔÔTÆžPg `÷©Y·nÝßÿ””Do,..–‘‘¡9lØ0솆‚ %%%ªªªX‹¦¦¦¦¦fg£DEESSS;¶oß¾±cÇzzzZZZv6¼ç ”••±ä¥¥¥³³³ÍÌÌ;dggп´±±Y³fͺøƒø¦M›®_¿¾fÍš   ¬¥¢¢‚J¥b!¢¢¢RZZŠÃáôôôè£ttt:;ö®J¥½{W#"2ÛÀào …РТTjÇ5 ‚ ùùåvv§»Ž zA@@¯Û>ð)((PQQébºÎ^ !!!AˆDb›Ç]ÂþLÄØÀ °:ûëׯAAAfff®®®ØÚPAÄÅÅSSS±Ÿ¬555ôk±Ÿ|²²²ÅÅÅÚÚÚ‚dggß¾}ÛËË«ÃQMMM4-&&¦µµ522ÒÊÊêÇ ï!EOŸ>=gÎìK{{{ŸiӦїŸ644øûûoݺ•>ÄÄĤ®®.###)) û³u{x<>,,l̘1çÎÃZ¤¤¤BaaáèÑ£ùüù³œœ77÷›7otuu±>oß¾íúë ™L%“©=_xM àEDø{ØôŠRºíŸ‘nýéÿÿ®Gáñé*lÅáóé îþ&N¥RÍÌÌöïß_]]---µoÙ²eñâÅØn_FFF›6mbüÓí¾}ûtttrsssss'Mš´víÚÎF555ñòòÆÆÆVVVž;wŽ——·©©©³á]¬=¥ïY–––6þ|yyùššìÙ_¿~©««›ššÞ½{7??ÿúõëZZZ“&MjnnFþöíì쬩©9mÚ4zÌ6ëF0§OŸÆj_ìËe˖͘1£°°077WKKkï޽Ǘ””¼qãFYYÙÝ»w•””°Îí½ÛwûwK ùþý#=ùŒ´ß×ýﺑÿÿ3~¸:|ÜÃQØDØ¢ð®ÁºôúÑwùnkˆ“'Oêêê¶¶¶¢('##S]]¢hmm­“““¨¨¨˜˜Øºuë¦677»¹¹ÉÊÊ6léÒ¥$ ko? EѨ¨(eeennn ›7ov1œq ÆÇŒ¿Ã(((ØÛÛWTT0E}}½«««¶¶6??¿–––¯¯occ#},ö3;-- Aààà6ímêlfnnNŸºººÚÁÁALLLFFfûöíMMM åСC***&LxöìÖ¹ÃcïZ›šàׯ¦èèÌeËÎÈËï“Û.'·êl6€ÏHO>#žM`L Ããê¶Îîá(2™lbb"((Øí» u6 z8´“ŸLì‡Ãᢢ¢lmm9è@tt´]ûÿ-ß¿×ܸñ*::+?¿œ››ÐÚJÃá ôƒƒ8’çàŸ‘Á¤³Ï€AV‚>‘•qvžž–¶3=ÝÃÅe†¬ì0¨w$è·TU¥ÜÝ-ÝÝ-_¿þòí‰ÓépÔÙ€Éôõõõ9‡Áº˜êl˜êl˜êlÀdUUõ/^Wq:N‚ë AïýüY_TTYXX…ý[PPñåKUcc+‚ W¯®9RœÓ p ÔÙl’šúaÚ4††"×ï?#ÔÖ6 óq6±jn¦‰2ÑÑYÅÅUùù奥ÕMMdA<‡£P¨ŒýÇŒ‘çP¦ýBÿºä˜1c¤¤¤8K% Ö—–Ê+(”âñTAÊÊd¹¸(bbUx<­ýPV&‹ÇSøøšyy›yxšq8μY4¾¨H¨¹YAðE­«LÄÄ„rs}Ø–ÞÐ1¸?#CMEEEnnnÿù €éúÑùlN§ÀBß¿s}û&?fL™Ì_R¢¢­ý“››J$R³³%I$qEÅZiéÆöe4_Ë›7ÕÕ8Ap8„——"$Ô* @ ¶rq±ï'´˜ÒØX) 09#£€@ÀÓhÔÎzâp8==8™Íƒû32ÔˆŠŠjhhp: ,ÔÎgn«V…&&扊òëè(¦§æ»ti‘‘Òœ9Dz³Kðxœ„İ]»æX[àñ8ÆiiÎQ©¿ß&<‡ 8† ˆ„„ŽŽ‚ŽŽ¼––œ––œ¢âp×ÁÜL•‘‘ïé[TTE£!ÒÁ"‘`d¤´h‘¡¶¶œšš4‘H`uJýÔÙlâì|åæÍ×\\xžúú&ʼn„³gWÉÔ5k."ŠÃáðxœ¤¤Ðöí³–-3f¬¶¯\yâáÛá;…ÃáˆDBk+AQQþÔTII!V ™L½t鱿ÿíÖV™LiŸ”’’ø×¯Õd2•H$hjÊŽ#¯­-§­-?z´ 7«Óè Îf“íÛ#cc³¨T”@ÀS©4AðxŠ"Û·›GFf–•ýÂÎ cåµ’’¤»»…••}øþýñgϦc§±;„ÇãW®œäëkÍúCùDj ¼ñâ#<ßæ"È/öÉÊŠTTüÊÉ)ÍÉùš“SúúuIUU=‚ RRÂØ9x))a¶% ÀNPg³‰‡GLdä32¹m¡ŒÇã´µåóò¾1ÖÐ\\x*ÕÕUسgÞ„ Ê‚ (ºiSDBÂk ¥ƒR‡CDEùŸ>Ý#$ÄËÒ£h/7·ÔÓ3öÕ«/xüï‹#……y?|ø§}OƲ;?¿¼¤ä'‚ RRÂjjÒjjÒXå­¦&ņ¥/lu6›ìÝwéÒ“ŽVYü®ªÛ¿\\ …:i’ª·÷|--92™jküêÕ2¹í5ˆx<ÎÏÏfùò ¬Ê¾KT*íêÕgÞjhh¥R©ÆÆ*×®¹t;ª¶¶éÇ2zåýéS† óª«ËÐOx«ªJµY­0P@Í&Ü IÇR·‡ÇãÐ*mA..ŠÒÖ¬1Ý·o>‰Ô`iyäû÷ƳÚAX˜'&ÆeôhY%ß¿~5$^¾œ±nÝÔ={æýéðúú–wï¾a§º?~,óækk+E@€GYYRMM «¼uuyxúÑ9]€:›MN Jî¬ÎFApmßÁÍM_od¤„ Hqq•¥åÑúúfl‘7‚ 8NQqxi)iÙ2cwwKqqA–@Ï|øPÖØØ:vìˆ>Æ!“©……•ة¯yyßššZ‰D¨Qÿ¿¶[^[[žŸ®ª@?u6›œ8ñàÈ‘{]ÖÙ ¹†ˆŽÞ¨ªú¿[“<^hcsŠJ¥¢(B$fÍÒ>{vÅ­[o|}ªªêW­š¼u«¹  ³€“(ÚçÏ?rr¾æçWäç—¿xQL"5xeeIuuiì„·ÁÈáÃ8)ÀoPg³É™3iÿüs»ÃõÙ! #GŠEG;KI kó˜4¥ IDATTdä37·hE¹¸yŽ!† Hs394ôá‰øùy\]g-]jD à™y ý ãU•oÞ|ùñ£ùïf&ººŠlØâ 3Pg³IXX†·÷ö—0þ÷ÿo‘H–‘–ŠŒÜØáꈃo%oÚ4c×®¹ŒíÕÕ GÞ¿t)CSSÖÛ{¶]É ‡•ÝØÚ҂‚ Ea3pÔÙlrõê3˜wåC„@À‰\¦¦jIIïi4aÒ$•={æÙÛŸUP‹Œ\/ ÐvŠ¢>>ñ®®.ùôéÇþýñIIoÍ͵þþ{ÁÈ‘âÌ?¤~¬¶¶ùÇﰙ 8êl6‰}±uëUìÕÆãñôݲ±ÛÖ¨«KŽÜ»w¾žÞÞ¦&Š……ö™3ŽÜÜ\Ÿ?ÿ°¶RW—¹|y //ñO'}ô(ÿï¿oT8:Nrw·æcòQ  -Ÿ?ÿÀNuçä|ÍÉùÚÒBà=ZV]ý÷ o==EnnØÌLu6›$$d¯_‰‹‹@¥Ò&OVûö­æóçxrä>77ÁÍÍÂÎΈ‹kÐ.Úî¡6›™¼}û­±±íf&cÆÈÃ-âÐPg³Éýûy{÷ÞX²d¼­íxYY‘èèÌmÛ"W¬˜èãcM$±µ=UW×¹aØ0¾6ˈ_½*Y²ä´‰‰Ú¹s+{W%ÿúÕxòdrhèCEE1/¯¹3gj3ç¨*•VZJÊÏ/Ç*ïW¯J~þ¬‡ÍLÐGPg³IK …››@/ [Z(³gÕÖ–;~|Ö’Ÿ_nn~øŸ/[fÜ~ø‹EK—ž6MãÔ)Ç^Ÿ¦_"©¥%·{÷¼I“TzgÐcÜÌ$'çkEE-›™àAÍ1Owï¾þê•·¨èï¥>>7ÿý73#cW‡§N32òBæÏ×?rdi_.àûüùG@ÀÝ[·Þ˜˜¨îÛ7Ÿ³w‘~ýjdXÛý¿ÍLttÔÔ~Ÿð†ÍLÐÔÙÓØØª¯¿oÇŽYë×OÅZêë[¦LùgæL-??›‡¤§\±âü¢E†‡Ûö±ª{õªÄ×7!3³pÎÝÝ»­†÷%ÚRW×üþýïÍLòó+Þ¿ÿN&Sa3´u6'yzƦ§|üx½h¾qãÕ¦Má Ûôõ;r÷nîúõW®4ññYØ÷=Ê÷ö¾ñéÓ!¾!I_´¹ª27·´¹™,(È£© ›™CÔÙœôþý÷3Åĸ0.•Æ.ˆ¼}{{g'DoÝz³qãåÍ›Íþú˲ï9P(´ÿ}˜ØÒBqq™¾f)T„½G¿E°ƒ[¿°råd‡sïß—ijÊÐ%$„víšãåumÞ<ý®O$;:NÄáXE¶la~©=y²ÚÝ»ÛoÝzãïÇÔÔÏÎn¼«ë¬.®Ñ,B àÕÕ¥ÕÕ¥±/)ZHH¸³3¿-÷ð7‚ðÝw¬7}º†’’ÄåËÛ´ÛÛOÐ×±k×µn )‡‰þþ6wŽ»ÏŠ q8œ••ÞÇžAAË>ÌŸ8ñàž=qUUõ¬˜ ô^LŒ—ÓY cPg÷ 8ÎÑqRlì‹ÚÚfÆv<wðà¢W¯Š££³º ²|ù›Ã‡eI©åce¥—œì¾y󌘘LSS¿S§RššZY4ÀÀuv±dÉxA¢£3Û´kiÉ99MÞ¿?þçÏîOÛÛO° LlwäȽÀ@–Ú‚ˆˆðïÞmõòå>GljGŽ$ü˜Øæ|<Àuv?²jÕä’’ŸééÛ´óñq:dwûvÎÝ»¹=‰³d‰ÑáÃvGÞ;pà Òü~WW‹§Ow¯Ze’>a‚o``b]TÛê ÎîGÔÔ¤'LP¾x1£ýS&&ª66†»vÅþúÕØ“PK–-?s&Õ×7Ùiv@TT€^mŸ;Õ6ÔÙýŒ£ã¤””÷_¿V·ÊÛ{†îßßÓºyÁ‚±AAËÏKcO©0TÛNN¿«íààd¸JôŽÁÈ‘#+++;444¸»»ëêê 7îàÁƒ …>VUUµÍž<–––8îÓ§Om‚Óõ$«OŸ>Á~|z êìþÅÒrŒ””pXØ£öO‰ˆðïßoùüÑ£üF›?_+µ÷ïgjš]>üwµ½t©ñ‘#÷ÇßÕ6è‰'Ož”•••––†……ÕÖÖŽ;¶¦¦{ª®®ÎÐÐ0++ËßßÿåË—žžžæææT*ëP\\üæÍz(‰ôðáÃöÁu–Faa¡¸øï;1‰ˆˆìܹ³M#ÐCPg÷/D"aíZÓðð§µµMíŸ7OoÖ,mw÷èÆÆž–­óæé:dwölÚáÉLÍ´Ç xyÍÍÌܳd‰½Ú†=I@$$$¤¥¥åää¦M›§¤¤tôèQì) ‰ääd 555kkëÌÌÌâââ°°0¬ƒ™™YLL =T||¼©©iûàŒ:KƒF£ýüù{,..îççצè!¨³û{û x<."âY‡ÏþóÏâ_¿šÿ h¶³äÈÒãÇ“|}Ø|ã@11A/¯¹éé––cîššúED<%“©ìÌÄÇÇËÉÉ‘H$A"##ÕÔÔ!“ÉîîîRRR’’’îîîd2[&‘œœ¬¨¨˜––¶oß>EEE GGGú©åö£IHHÐÑÑáååURRºrå ‚  ¥ÃáŒ+1ºX•Ãá6lØpûömìËððð½{÷zww÷ððpìK›èèhúïØØØÅ‹÷äÅÁápšššÃ‡@ÄØØA¬§gÈØ¸eË–Õ«WcÃëëëùùù_¿~Ý“¹ 9(èöí‹34ü›L¦vøì•+Oäåwdgù£˜÷ïçé¶iSxgaYíË—ŸnnQŠŠ®Þ¡¡›šZ9’Æ Õ“O±££ãŠ+ÊËË¥¤¤ž?Ž5úûû/Z´èË—/999cÇŽõðð(((@ÄÒÒ2%%ÅÛÛ[KK+'''77×ÈÈÈÍÍ­³Qõõõ<<|––~ýú5–ŸŸ¿ªªŠAìììºÿ¢Ï»xñb‰‚ ÈÏŸ?±{–þ˜±1==]LLŒL&£(®¥¥E£Ñº} ‰ŠŠê¶€Áêìþèë×j…7o¾êðY*•6oÞñY³ÿ´bNIy?j”ûúõ[[)ÌH³7ªªê¾«®î©¦æáë›@"5p*“Á¡‡u6‰D’——×ÑÑñöö¦7jhh”••a“’’ôôô°j2''EQuuõëׯcϾ{÷Žþ¸ý¨êêj"‘xøða‰D£Ñêêê¨TjgÃ;Ó‹:ûéÓ§âââô±...žžž(І‡‡›››3Æìâ‚ ©©©(ж¶¶bý»­³)Š´´trr2Š¢³gÏöóóëúÐèA C ¬éäåE-,Æœ>Úá³x<.0pI~~yppò…6M#2rCjê‡U«B9µTZLLÐÕÕ"+kï–-fW¯>7ÎgÏž¸ŠŠ_IfèY·nÝÛ·o7nÜHo,..–‘‘Á6ß077/**ÂÚ544)))QUUÅZ455.\ØÙ(QQÑÔÔÔgÏžÉËË›šš>zôÇw6¼ç ”••±ä¥¥¥³³³ÛtÈÎÎ600 iccƒ¢h‡‹FÚñ(Cñ-++‹ ‘HìabÁÚÚúúõëUUU<°··ÿÓC0D@ÝO­[gúæÍ×/Š:|VEEÒËkn``â›7_ÿ(¬‘‘Rt´ó«W_ìíÏÖ×·0#ÓÞâuq™‘™¹gçÎÙ·n½12òݲ%¢¸¸ŠSù z_¿~ 233suu¥7Š‹‹Ó«O‰ôìÙïK°ŠSVV¶¸¸kÉÎÎ>pà@g£šššh4ZLLLuuõêÕ«­¬¬ª««;ÞC(Šž>}zΜ9Ø—ööö>>>ôÝEihhð÷÷·°° ·˜˜˜ÔÕÕedd$%%-X° çsáñümÐÆÆ&...::ÚÄÄD^^þO‡" Îî§ GŒ8w.½³NN“ǵuëÕ–ÊEÖÕUˆŠÚ˜Ÿ_ak{ŠDjès¦½' À³fÍ”ÌÌ=‡Ù¾xQljê·eKÄçÏ?8˜Ò D£ÑV­ZµyóæÈÈÈ$$üÞOÝÚÚÚÓÓ³¤¤$''ÇÂÂ"88˜q”ƒƒƒ——W^^^^^Þ¦M›JJJ:…ÃáfΜyíÚµÚÚÚÖÖV"‘ÈÏÏßÙð_¿~?¾ýcA*++ËËË¿}û–žž¾pᢢ¢;v`OíÝ»÷Ç3fÌHLL,((ˆ‹‹322’““c<=O -Z´~ýúñãÇKJJ¶y°àŒº~Ñêëë»hœÒOVH·¶R¢£3'O>('·ÝÑ1$'ç+§3z²>ûäÉ“ººº­­­(ŠÆÅÅÉÈÈTWW£(Z[[ëää$***&&¶nݺ††ÆUÈÍÍÍnnn²²²Ã† [ºt)‰DÂÚÛÂÒPVVæææÖÐиyófÃ;\ýŒþw µ‚‚‚½½}EEãQÔ××»ººjkkóóókiiùúú666ÒÇb§ØÓÒÒ nÓÞÅ·>„aI ö˜L&›˜˜ 2fÈØˆÙ°a_mmmß)ÖgÀЃCÙ»Ñè9*•6iÒA moïNÿ~áÂ#oï7onÕ×WüÓøùùåvvg†ˆŒÜ ))Ô·d™ƒFC““ßÞËÍ-53½u«ùر#8T¿mggŸböóòò*..ŽˆˆèaekkËÒ¬ô+°n¤ÿ"ð+VLºzõYmmsg}V®47nÔÖ­½¸®QMM:1q‚ sæí'«5ðxœ¹¹ÖíÛÛNr(-%YYwr ÍÊêx‘:ÑÜÜ\XXxáÂ…µk×r:ýÔÙýÚ²eF4“ÙY<wôèÒ²²_½»Ý£””ðõë›ddD¬¬Ž¿zUÒ‡L™‰@ÀÏŸ¯ÿà[Xتêê†ùóOXY»uë •Jãtj ÏŸ?744\µjÕÔ©S9 €~ êì~mØ0~;;£S§R»¸‡¢¢¢Ø®]sΜIÍÌ,ìÝÿþ»aìØvv§>ü؇d™ ‡ÃÍœ©}óæ–ÜG’pq¹b`à˜XSÓÈéÔÀfjjZ]]ý§;¨‚ Îîï6mš^UUÕé)mAV¬016VvuêÝ®ØüüÜaa«ÍÌF;:ž¿}ûMo3e•Ñ£eOœ°ÏÊÚçà01$äá¸q>ý]XXÉ鼺uv'##bmmœÜŪ <`ûíéÈ‘{½›…H$œ:åàäd²aÃåÈÈg½M–…$%…\]-^¼Ø·sçì””÷S¦ü³bÅù—/‹9@Ç Î\\f|ýZ}ûvN}””$¼¼æž>Úë«q8ܾ}ó=þ‰„„lXº €þêì@EEÒÜ\ëĉ¤®·o[µjòôéš6\þõ«÷+˜]\fìÝ;ïÀ„ƒoõÛÝâˆD‚••Þ;ÛoÜØ,"¿aÃåÉ“ÿ9þaSS+§Sø êìaËówï¾?z”ßE¸„B¡îÙ×—¹Ö¯Ÿzüø²³gÓ6oŽèâúËþ`üx¥K—ÖÄÇoÑÒ’óö¾1qâÁ  ä¾üšÀ,pŸšcÑ¢ ½±ën÷îå99…ž9ã8ož~_¦{ù²dÅŠuué°°ÕÂÂ|} ÅÅÅUçÎ¥EEeápˆµµÁÊ•&£GËr:)–ÃîSsöìYN'º±~ýz¸O 5Pg))ï—/?—°ÍÀ ›[$nßy÷nnJÊ_²²"}™1?¿ÜÞþœ  ODÄú>†b©!2òùåËO¾|ùid¤äädbi©C$8«`u6§³=u6 5Pg$³f**Š…„¬ìº[CC‹¹ùaEE±ÈÈõ8®/3VTÔ._~îׯƫW7¨¨Hö%›ef††>º{7‡ŸŸÛÆfüÚµSÅ8†‚··7§s=%$Ä{âDÒ‚cEEºèÆÍÍ¥££pøp¢ˆ¿¾~7'¿»&(Ècmm‘QpôèýñãGÉɉö%;ÉɉZYé-[fL$¢¢2ƒ‚’Ÿ?/äå%ª¨Hâñ}úÝ ' ÎHTU¥®_Y^þkæLí®{Êɉ67“½oa1F\\¨/“rssÍŸ¯ÿáC™¿ÿÝÑ£e••ÒYmAAÞ‰UÖ¬1ÕÐÉÉ) N‰‹{ÕÜLVU•âããætvÌ`ÝÈsñâcoïÏží––ÖuO2™:þ …zûöö¾/P¦Ri^^×"#Ÿ:dgk;®Ñ8%7·ôÊ•'×®½¤ÑhVVzë×OÕÒ’ãtRœà|ö£©)ñ´©©ÕÔT½ëž~üx¥'ÉTÕ>΋ÇãÌÌ´h4tß¾¸¦&²‰‰ZW~s„””°¹¹Ö’%F||Ü oΜIËÊ*ä5J“€¹ Î`¸¸ðMMä°°GŽŽ“xxˆ]w$ ÇŽÝ75U—‘a†!'ªÈË÷÷¿óâEñÌ™Ú<<\}É~‚‚<&¨¬^=YCCæÕ«âàà”è謺ºæQ£Ä…„x9 X72ð44´û:8Lüë/Ën;£(êät!7·ôÁ·®¯žì¹¬¬"'§P)©aW®¬(ûýuáãÇò«WŸ]»öâׯ¦éÓ5íí§OÍÅ·p@Ÿ@= ;vÿôéÔçÏ÷ˆˆðwÛùçÏz3³Ã#ΟwbVÅÅU!õõ-W®¬ÕÖ Kœi4ôñã‚ð𧉉¹||Üóæé99MÖÔ”át^¨`ÝÈ€¤¥%úA‰UºíÌÏÏ­««àçw[BBHWW) ˆˆð[[{ âááji!‡„¤÷dãAðxœ‰‰êéÓ)?~ÔΘ1šYiàp¸ñã•dd†9r¯¨¨ÊÌl40¨® äâ««KÛØŒ›?_E‘›7_Ÿ9“š–ö±¥…,'7\@€‡Ó  Ÿ‚óÙXmmóøñ>6Lݶmf‡$$doØp94ÔÉÂb s“ÉÈ(X·î¢²²dhè*IIæ,M釨TÚÇù±±Y÷ï¿mn&O˜ ÞÉØX™¹Áû*•öäɧ˜˜¬{÷òZ FZYéÍ›§?ˆÇÀ:{`«­m?~¿³óô-[Ìz8¤±±ÕÂ"PLL06Ö…ék<[·l‰xðà¿¿ÝxæïŸZîß{óæë´´‚˜šªÏŸ¯?s¦¶  ,)†4XŸ=°ñðëë›/\ÈX±b7wîÎH$ôôF=zŸ››küx%ææC$¬¬ô¸¹ {öÄ‘H¦¦êƒïÊÈ6¸¹¹45e,»jÕä‘#Å?|(;w.ýÌ™Ô/ŠZ¤¤„á“ÀPuö€§¥%wöl//±çE³ŒÌ0®€€»&&ªrrL^=‚]©ª*uèPbVV‘¹ù@½=ûŸâá!jkËY[¬\9IYYòË—êK—§uª†ŒŒ§³K@=HøøÜŒ‹{õø±??wÏG½ÿ}ΜckךzzÎaQb­›6…§¤¼÷õµ^¾|‹f@JKIIIoÓÒ><~\ÐØØª®.mjª>uª†±±2:{¨­m22ò]·Îtûöžî¥¹r則Gì… «fÍÒfQnØ=#ýüîXYéÚññýÁoƒ•J{ûöÛ£Gùæ?{ö™FCµ´ä&OV37mh8jÐ_? zPgÇŽÝ?s&õéÓÝ¢¢vÏ”­[¯Þ¿ÿöÞ½ŠŠb,Ê AÔÔ..WdeEBCWÁ‰¢Êʺôôii>üXUU/##bb¢:q¢Êĉ* Ã9zêìÁ£±±uÂßÅ‹ ÷ì™÷§gÏ>ÊÏÏ}ãÆænØ;߿׬YV\\uê”ÃÔ©¬›hà¢Ñзo¿=|ø1#£ 3³¨©©UAa8VpOš¤*+ ‹¹€êìAåüù‡$gÎQ;;£¬Y”¦¥…â铵m›ùöí³`uDÈdêË—Ådd¼zUB&SGŽŸ0AeÒ$•)SÔÅÅ9 ºuö B&S'OþÇÔTÝßßæOÇÞ¸ñÊÙùÊÉ“ö‹²"7FááO½¼®MªqòäraáÁ—èèh;;»¾DÀáˆÜܲÜÜ << D¢dMÍý¦¦÷ÌJ tQQQ¶¶¶œÎ@[Câ"C‘HغÕÌÃ#vãÆi#GŠÿÑØ ÆfdxxÄêè(¨ªJ±(CÌòåÆŒ‘_³&lΜ£¡¡NjjÒ,®ŸˆŽŽfJœ¦& oÌÃC`J40ÐA… ýœÏl¨TÚôéZZr§N9ü騖Š•Õ1 …vëÖ¶?Ú°wÊÊjÖ®½øéS…ŸŸÍ‚cY=aç³á³X‡ÃÁùlèŸXrwÀAÞÕuÖÍ›¯óò¾ýéX®  å_¿VïÙÇŠÜÚ‘‰‹Ûlc3ÞÙùЧglK … “°ÔÙƒ••žk #‰ IDAT¶¶Ü¡Cw{1VMMúÔ)‡¨¨ç!!éLO¬="‘°ÿÂK—ÖܼùÚÜüЇel˜€  Î„p8Ü_ÍNJz›•UÔ‹áææZ;vÌÚ¿?þñãOLÏ­³~|Ù‘#KÂÂ2æÏ?QTTÙýÀÒÒÒrrrÓ¦M‹‹‹SRR:zô(ö”„„Drr²………šššµµufffqqqXXÖÁÌÌ,&&†*>>ÞÔÔ´}pF¥A£Ñ~þü}ñ€¸¸¸ŸŸ_›ÆnAZZZUU5 ??¿ÍYyFMMM‚(**vhêìAnß¾ùee¿BCõ:¶mæ³gë8;_aÛ5‘tvvãÓÒvòò§O8þáà¾ÏK||¼œœ‰DB$22RMM­¡¡A2™ìîî.%%%))éîîN&“±eÉÉÉŠŠŠiiiûöíSTT”ptt¤ŸZn? A„„^^^%%¥+W® B¡P:裋U8nÆ ·o߯¾ ß»w/ð¿U ¸»»‡‡‡c_ÚØØDGGÓßÇØØØÅ‹÷äÅÁápšššÃ‡@ÄØØA¬§gÈØ¸eË–Õ«WcÃëëëùùù_¿~Ý>2‘Häææ6lXg¯cÌnߎŒŒŒ_ùöùwöÊw8À@…‚ÁîàÁ[êêž?Ö÷:B}}óÔ©~3f46¶01±¢Ri!!銊®K–œ./ÿÅþú.**ª'Ÿ5GGÇ+V”——KII=þkô÷÷_´hÑ—/_rrrÆŽëááQPP€ ˆ¥¥eJJŠ···––VNNNnn®‘‘‘››[g£êëëyxxΜ9SVVÊÅÅU__èС‡×ÔÔ„„„´Œ HAAcÎYYY"""(Šb¿!TVV¶9¨ÇKIIac?|ø --ýúõk,,??UU=&‚ ÙÙÙuÿEŸwñâÅ$)$$AŸ?b/ö,ý1cczzº˜˜™LFQ4<<\KK‹F£µ™åÛ·oÎÎÎNNNôl;{µ»í€½õõõí;t˜g¯|‡Ã»† HTTT·Ý°ÔÙƒ_]]³®îžÝ»¯÷%HaáuuOgçËÌÊêO½~]2qâ1cvß¿ŸÇ©z­‡u6‰D’——×ÑÑñöö¦7jhh”••a“’’ôôô°Â.''EQuuõë׿³ïÞ½£?n?ªººšH$>|˜D"Ñh´ºº:*•ÚÙðÎô¢Î~úô©¸¸8}¬‹‹‹§§'Š¢áááæææŒ1»8€ Hjj*Š¢­­­Xÿnël …"--œœŒ¢èìÙ³ýüüè¡ ¾{÷®ÛW»‡oG‡:Ì¿ço\×ï u6ôcPg —.=VTtýüùG_‚ܹ“#+»ýÂ…‡ÌÊêOÕÕ5»»GÉÊnwwâÈ™õ^ëa¢¨@¨¨¨ ·ðòò2օÆ à »ÖÖVìÙÜÜÜöqÚBQ4##cñâÅ“'O¾sçNÃ;ӾξzõªöXZZ:))©ÍÓ§OÏš5‹>6--MEE…F£-X°àìÙ³èëì6Áçýøñ#cÝÖÙ(Š:;;»¸¸TVVrssýúµý!444¸ººwñºµ‰ÙõÛÑa‡óÿ£7®kPg@¿볇{{ceeI_ß„¾±´ãîn±oß 6_I'(È`{îÜŠ[·ÞXZ}ûöGÒ`¯_¿™™™¹ººÒÅÅÅéu!‰DzöìÖN$‘••-..ÆZ²³³8ÐÙ¨¦¦&S]]½zõj++«êêêΆ÷Š¢§OŸž3gö¥½½½}wAüýý-,,è-&&&uuuIII ,èù\xü³²±±‰‹‹‹ŽŽ611‘——oߟŸåÊ•oß¾EÿÿJ¥Ò8• sÑh´U«VmÞ¼922òÁƒ ¿)²¶¶öôô,))ÉÉɱ°°fåàààåå•—————·iÓ¦’’’ÎFáp¸™3g^»v­¶¶¶µµ•H$òóów6üׯ_çÏŸoÿAÊÊÊòòòoß¾¥§§/\¸°¨¨hÇŽØS{÷îýñãÇŒ3 ââ⌌Œäää6nÜHN -Z´~ýúñãÇKJJ¶y°àŒº~Ñêëë»hœ>¾ÚÚZz òßÕ)T*UXX¸¨¨¨³×­Íº‘^tè0ÿ?z㺆Àºè¯pè Þ+ 0zÿþûÌ™G.]¼Ø°/qjjçÎ=&(È{ýú&~~nf¥× ùùåÛ¶E¾}ûmݺ©ýeI$ºà ÑÑÑ]ß °ˆ——WqqqDD§a!ekkËéD´ëF†MMY[ÛñÞjjjíKþˆˆõ¥¥Õ[·^íÝMÝ™EMM:>~ë_Y†„¤[ZáàjÐß477^¸paíÚµœÎÀuöÐâá1»¾¾¹ï÷Q1B,4tURÒÛÇ™’X¯qqá]\fÜ»çJ$æÌ9œýàtF€ÃLMM«««ÿt€‰ Îrœ§ÆÈ„óÐvvã7nœæêúï“'Ÿú­°Û‰‰®--sóCpbœuöÃËKtw·ŒŒ|þþ}YߣíÚ5wÆŒÑk×^,.®ê{´¾ÓÔ”‰ßºr¥É?ÿÜ^ºôLQQ%§3ÀuöP´x±¡ššÔ?ÿÜê{(<wê”ÈbŽŽ!µµM}Øw¼¼Ä}ûæß¼¹µººaúô€#Gîµ¶R8†¨³‡"ïïo“œüþΜ¾Gãå%ž=»¢¦¦qÆËd2µûla`0")É- Àöüù‡S¦ø¥¤¼çtFZ Î¢ GÙØîÝ×ØØ§=þ0 Ã/]Z›™Y¸uëÕþ³K4‡³±—–æ1~ü¨åËÏ­Xqþû÷N'€¡êì¡ËË˪¾¾%88™)Ñôõ/]Z{çNއG,S2‹¤¤Ð‰ö11.Ÿ?ÿ˜>Ýÿüù‡p}$Øêì¡KBBÈÕuVppJa!s.œ4IåøñeOOž|À”€L4i’ʃîkךîß?{öÑìì/ìÏ °ÿ2€‚û®i ÍÂ"PNNôÒ¥5ÌŠyñâc/¯kGŽ,±³Ϭ˜L”“óõ¯¿bÞ¿ÿîì<}óf3öÜ7þëׯϞ=cÃD`h266VPPàtÚ‚:{¨ËÌ,\¸0èâÅÕææZÌŠéë›’~ñâšiÓ4˜“‰¨TÚåËJäå%zy͵¶6€“‚`:¨³âì|åõë’´4.¦DQtÇŽãã³££ F0%&Ó56¶ž>ròd²ššÔß/œ0A™Ó`PõÙñö^P]ÝpêT ³âp¸€[cc¥+B˜µø›éøù¹]]-ÒÒvŽ%±hQЊç¿|ùÉé¤0xÀùl€ rêTÊáÉii;Ř³©©ÕÖöÔÏŸ 7on‘bVXVÈÈ(Ø·/îÓ§ŽŽ“vîœ-(ÈÃéŒ0àA AÈdª™Ù!ÉÐÐUL []Ý0oÞq!!ÞØX~]¼R(´ÿ}î‹àê:kÙ2c<m ÷`Ý@! Xß½›ËÜû&.±¾¬¬fýúKJ¿Þµš‹ ¿|ù„””¿¦O×ôðˆ±± ~ýš{ÿ`ЀóÙàÖ­»˜—÷--m'77s.ˆÄ¼|Ybk{jÞ<½ÀÀ%â$q^Þ·ƒo¥§œ5K{çÎÙêêÒœÎÁÛÛ›Ó9€þÂÀ`dPP2‘È5~¼ÃÊÊŠèè(üóÏí?jgÌÝÿ7Ñ“”^´ÈpútÍÔÔ÷û÷'ää|ÕÐîçKÌÐß@ þGHˆE‘ãÇ“-2æcbäQ£ÄÇŽáë›PYY;}ºfÿ/µ‘‘fc3nòdÕääw~~w>~,×ÑQáçt^ Îÿ¡§§›õþ}Ù¼yzÌKqqá GÚÛóð¯^}œòíIMMÖm  ¨³Aøø¸ÅÅ…üün›šjÈÊŠ0=¾¾þ..üþýñÒÒÂ:: LÏj¼¼Dcce'§ÉRRÃââ^;–ôþ}™œœ+^+ P°6èÔ’%g*+ëw‰VÄ÷ó»œrò¤ý‚cYŸ=h44&&+$$ýݻ£6l˜ja1f@l–‚óÙ S††#Oä50ÉŠø&&j -ÞÒÒ’UV–dÅl€Ãá´µå'«|üXvìØý‹WUÕÉÊŠŠ‰ r:;p ÔÙ S""ü -(è­í8AA–\í7eŠZyyí?ÿÜÖÕU5J‚S°¢âðùóõ/6$ð±±/‚‚’>ÌÇãqJJ,úƒú3X7ºÒÚJ™93PIIâÂ…U,š‚B¡mÜx9=ýÃÕ«ë G±h6CQ4+«(6öŵk/i4ÚÌ™ÚË—O01Q7èS@ º‘ýÅÊêø±cK-2dÑd2ÕÙùJZÚ‡K—Ö ¬}µ»õãG]LLæÕ«Ï‹Š*55eíí­­ `s`(€:tÏÇçfTTVZÚN !MA¥ÒÜÝ£¯]{qöì ‹1,š…SP}ö¬02òÙ­[o¨TÚ”)jóæéÏš5FXöÞ-¨³A÷ššZgÌ84fŒüÙ³+X7 Š¢»wÇ…‡? v˜;W—uqP}}˽{¹ññÙiip8Ü´ióçë››k ÀÜ€ÁêlÐ#Ož|²±9uîÜŠ9sXX£(êí}óÂ…GKlmDZn"Žkn&?z”Ÿ}çNNK eâD•Å‹ -,ÆÀÝ%€AêlÐSnnQ¼MKó`õò »Ç'ùúZ;9™°t¢þ ººáöí7ññ¯Ÿ=+äå%Ž;bÆŒÑff£•”öî+€:ôTmmó´iþ“'«;¶ŒÕs&9rÿ↓Y3…Õsõ?~Ôݹ““œüöñãOÍÍä‘#ÅgÌ=c†æ„ *<<\‚ìß¿ÿáÇœN0Ù”)SöìÙÃé,°ÔÙàÄÇgoÜxùÒ¥5ff£Y=Wppò·þúËrÛ¶™¬ž«_¡Ri/_'%½{ô(?'ç+^_ÄÌ™Z·o_ÈÍ}8aÂN'˜æéÓ§&LˆŽŽæt"Xêlðg6l¸ôüyaJÊ_¢¢¬žëÌ™4Ÿ›..3¼¼æ²z®þ)?¿<9ù}JÊ»ÌÌ"<¾eܸ ¨É[[[Aà=€Á ÏéÀ`G àwìø— smØ0ÕÏÏæôé_ß6Lש©IoÜ8-&Æ%/ÏWS³šÓéà@ þŒ°0ïÑ£Kïß{ãÆ+6Lçè8ÑÛ{ÁéÓ©ÿüs› Óõ[BB¼‚‚dNg€?ÀÅéÀÀ3y²Úòå<ôƾ}óÅÄ=}ú„u°±±aìðéÓ'Ž9k˜ ÀPu6è=/¯¹ââ‚;vü˶Ý!ÕÔ¤cc]ZZÈ‹—”üdϤ€éžEEE GGGú©åö£IHHÐÑÑáååURRºrå ‚  ¥Ãጫ,ºXqÃá6lØpûöï}ÃÃÃ÷îÝK èÜÝÝÃÃñ/mll¢££éB‰]¼x1cÀíÛ·khh¬[·®ýŸYjjjV®\)...//ïææÖÜÜlllŒ ˆ´´4ÖáÖ­[úúúüüü222XIÍØñ(ڇŽ%""BSSsøðá=}Û V(}C¥Òll‚MMýššZÙ9/…Bݵ+V^~GhèCvÎË)666ØÊã®9::®X±¢¼¼\JJêùóçX£¿¿ÿ¢E‹¾|ù’““3vìX‚‚A,--SRR¼½½µ´´rrrrssŒŒÜÜÜ:U__ÏÃÃsæÌ™²²²ÐÐP..®úúúC‡u8¼¦¦&$$¤ýcA sÎÊÊAQû ¡²²²ÍA=~üXJJ ûáÃiiéׯ_caùùù«ªªè1±ùùù|||aaa(ŠbGŠÅ±··Ÿ1cÆçÏŸsrr´µµ½½½Ÿ­­­åææ^µjUii)VÖÿøñƒ±Cס°Ù/^L"‘BBBùùó'SÞSÔÙ€ ¾'ihìòòºÆþ©CBÒåä¶ïÞ}J¥±vvêaMF"‘äååutt°Ê£¡¡QVV†=NJJÒÓÓÃJÆœœEÕÕÕ¯_¿Ž=ûîÝ;úãö£ª««‰DâáÇI$F«««£R© ïL/êì§OŸŠ‹‹ÓǺ¸¸xzz¢(nnnΓþàøñãÂÂÂ_¾|¡Ç­­­!//‹yýúuÆÒ¹¥¥åýû÷õõõT*5== ÕaÝa(löÔÔT¬CûÃlêlÜ`Ý`‘¬ÃÂ2xð !!k·¶¶öôô,))ÉÉɱ°°fåàààåå•—————·iÓ¦’’’ÎFáp¸™3g^»v­¶¶¶µµ•H$òóów6üׯ_çÏŸoÿAÊÊÊòòòoß¾¥§§/\¸°¨¨hÇŽØS{÷îýñãÇŒ3 ââ⌌ŒäääOÏ„E‹­_¿~üøñ’’’½£F:|øp`` ö%‘H´³³Û²eKQQQ^^ÞîÝ»ííí±§êëëiiiimmåæænjjÚ·o‚ uuuŒèºü‡Ö«€ÁéáÃrrÛ¯\y‘ÙëêšCFŒp»víG`©ž¬å=yò¤®®nkk+Š¢qqq222ÕÕÕ(ŠÖÖÖ:99‰ŠŠŠ‰‰­[·®¡¡qÙqss³›››¬¬ì°aÖ.]J"‘°öö£PŠŠRVVæææÖÐиyófÃ;»‚ñû‚‚‚½½}EEãQÔ××»ººjkkóóókiiùúú666ÒÇb§ØÓÒÒ nÓŽüwU4F377§O]]]íàà &&&##³}ûö¦¦&2™lbb"((ˆu8räÈðáÃN:µtéRIIIÆŒGÑ>T›ÙXŸ Ce×FÀxïäÉ·nmÓÖ–ë¾7³Q©4?¿;§N¥8;OßµkÎ`º{Ÿ­íÿµwçaM\{À'‚¢aA6×ÖJUðÅ* P/‹u)Ô"¸ ÕŠõÅ*jÝQZA/›È¢RqÁjUd©VPÀ %š‘-óþ1½¹¹50¾Ÿ¿&'sÎùž‰òü˜ç0q'"))‰î 1øLz6ì [¶lê˜1C}}ãøüú®ŸÉ”YµÊé§ŸfEGŸ Jllln¿@'@ &#ÃØ¹ó_\nÝêÕ4lÔ¦,\8ñðáo³³ ]]£ž?CW èÍPgƒäij*íÜ陜ügrò º2|ù¥É¹s+ÁäÉ›/^ü›®Ðk¡Î†N1y²é·ßN K)-}AWMM¥cÇ;:ZxzîŠ:‹?E€®„::KX˜ÓàÁjK–$иIšÅ’ݲÅcÆٛ6Z´èðÛ· t%€Þu6tyyÙ}ûæ–”<_·.ƒÞ$^^ãùîÊ•W×ݽ¢7 ô¨³¡¨GEy:t)1ñ:½I>ÿÜðäÉe ÍS§þrêT!½a 7@ ËÞÞÌßrhhÚÌj?)IDATrQÑSz“èé ÌÎ^îíýÙÂ…± uuØCu6tºÐÐécÇøúÆq¹ïèM"'Ç\µÊéСù999:nûûï*zó@†ïƒ„®ðò%êÔ-ºqq ¤á;þš·÷øðð™}û²èNÔŽ­[·æååÑ$lܸqË—/§;t ÔÙÐu¢¢ÎnÚt*5ÕÔ¨!tgùÇ¥K÷°XÌÝ»½F––TРΆ®C’ä7ß,,|rêÔr tÇùÇ«WüåËÿ}þüÝ%Kì—.Êdâ@PgC—âó뜶³XÌôô@éÙªA’dBB^xøñáõvïö4H•îDÐíáÖt©þýåœ÷èÑ«+’éÎò_ ÃËküñãoÞÔMŸ¾-##ŸîDÐí1×®]Kwè]ìgl¬yRI©¯µõ ºãü—†Æ€¯¿ûê?""óîÝÊñã úõ“§;tW¨³ê$IFFž3Æ@_ ÝqþKNŽ9i’é—_š9’·k×eå~ºÒð Bèv°?èA’¤Ÿß¯W®”ž<¹L ÷C××7mÙ’}~£-[7¶ ãPgî߯rrÚ>mšåöíÿ¢;‹x|~ýÆ'ââ.oé>t(›îDÐ=`6ÐIUµÿ¨QC""2ò³Ï éŽ#‹%;y²©££Å©S…‘‘'kjÞŽg 'Ǥ;H;ÔÙ@3=½šš~ú)cÈ5SSmºãˆÇf+~ýõXuõ{÷žKN¾ad¤1x°Ý¡@ª¡ÎúYXèr¹u›7Ÿúâ cmmeºãˆÇ`0,-õ¾újäÍ›[·þþäIÍÈ‘úýû÷¡;H)ìÏ© óçúóϲ¬¬¥Ò«øÄ‰;™ÕÕ¼E‹&-Z4YAAÿˆè…:¤EmmýÌ™;›šK öûÄMM‚ÿûÈÈ“ÍÍÿɾ¾_bÓ6ˆB R¤ªêÍ´iÛLMµ~ýõ[YYºã´ïåKþ¦M'ýcØ0Í5k¾š8q݉@Z`6H‘þýûŒ©¿uëi>ÿ­­ ÝqÚ§ À²·7st´¸~½lëÖß/^¼¯©©4dˆ´ï{€.€:¤‹ŽŽÊ!ìÿû¿ EÅ>66ƒéŽÓ!l¶¢›ÛèiÓ,KJžoØp"33¿_?ùaôddð½6½êl:&&Zl¶âêÕiºº*ææ:tÇé(6[ÑÑÑrÊ”á÷îUFEËÎ.TQégd¤o‘èPgƒ4²²Ò««kˆŒ<9b„~÷Ú†¡©©4k–õ´i%%/¶mû=-íƒAi²X²tG€.…¿ƒ)E’ä’%G²³ SS[XèÒçcÜ»W¹o_îñã·X,Ù¯¿;oÞéd!H êl^ÍÞÞ1ÅÅO32‡ aÓç#ÕÔÔ9’÷ë¯W*+_ÛÙ™-\øÅøñ†Lf7xš | ÔÙ Õx¼wÎλ޾mHOd³éŽóñš›§OÇÆ^ºr¥T]}€««‡Ç## ºs@gA Òîñãš3¶Ì>zÔ¯oßnÿÍ‹¥¥/’’®§¤üYUõÆÚz›ÛèY³F*))Ð $ u6teeÕ³fí26Öˆ÷“—§ÿ >|xæÌ™OA >|›ŸÿúÞ=A&&ŠÎÎÚL&žL]ÁÎÎnèСt§èùPgC÷ð×_Ï\]£ÆŒràÀ<Ú¿á<))ÉÃÃC"CÉÈÈ÷é3LNNõÍ›ó ]‰‰‰îîît§èùè¿5ÐÇkÇÇëá±wÙ²£;wzJÃWÀàwTèŽð@w€.ƒ‡@·ac3øÐ¡ùYYwV­J¥; @;PgCw2qâ°½{}®mÜx‚î,ïƒ:ºGG‹Ÿ~šµsç™C‡.Ñ MØŸ Ýϼy_ðxõ?þ˜Ö·¯Üœ9ãèŽ êlè–íäåeƒƒ“ê뛿ùæsºã´„:º+?¿/rÕªT†ÏgtÇøØŸ ÝØ¢E“–/Ÿ–’pî,ÝCÄàÁƒ}||ª««EO¨­­ ±²²RTT=zôÏ?ÿÜÔÔ$ìkddÔâá†ŽŽŽ £´´´ÅàJJJNNNeee]¶´JKK?âyvµÐåãb€”@ Ý[PÃ’%ö¡¡)©©Ò¥[ºzõjeeå“'Obcc¹\®µµõëׯ©·x<Þ¨Q£nܸyóæÍ°°°„„{{ûææfê„òòò;wî‡âp8/^l=ø³gÏ.\¸ ¼¼¼ºl]-(++¯\¹² &zøð¡ššš¤Fè²ØÐPgC··b…£¿ÿä¥K¦¥Ý¢;K÷Ãf³555utt&Mš”––6tèÐmÛ¶Qo­[·ŽÍfŸ={ÖÁÁÁØØØÅÅåúõëååå±±±Ô vvvÉÉÉ¡222lmm[®¥¥5bĈ˜˜˜«W¯r¹Ü.[š(55µ7vÁDàÕ«W’¡Ëb@g@ =ÁʕӼ½Ç/]zäøqi)µ322ttt8AG566®­­%¢±±1$$DCCC]]=$$¤±±‘ÚpöìY}}ýÜÜÜððp}}}6›íãã#¼µÜºA™™™–––}úô:tèáÇ ‚hjjÛ]tûÁ{¶"0Œï¾ûîĉžM¿fÍ&ó¿ßr߯_¿øøx꥛›[RR’pëHJJÊìÙ³Ûº Ô8MMM¢ë½|ùòëׯ¿ùæ555]]ÝàààwïÞµµŠ^±¢«f0 ¦¦¦Ü´iA$IFGG>|À€“'OÎÊÊj}‰Z÷;Ѹqã‚ÐÔÔNJ­4..®õG v¥­G zµ¾Pm¥iAôà‡Rut–9r­³çJLLìÈÿŸ¹sçVUUihhüñÇTcdd¤««ë£G ¬­­CCCKJJ‚pttŸ///]YYyðàAYYY>Ÿ¿yóf±Ý_¿~Óú˜ ˆ’’ÑÌ7nÜPVV&I’ú ¡ºººÅ¢®\¹¢¡¡Aõ½w¦æíÛ·©a^¾|)“ ˆüü|ÇårKKK]\\FE’¤èzù|¾§§ç”)S|øj|ðàŽŽÎ'^±-foQ4¨¸¸XøòîÝ»b3·èÕ‘‰ˆÿ­€©§">}ú”zÙñÏKì…› ¤~@Cäé9>*Ê;&æBhh²@@¶ß¡‚ùóç=zôÌ™3™™ÿý...aaaQQQ¢½¼½½W­ZUTTTTT´xñâŠŠŠ¶z1Œ©S§¦¦¦r¹Ü††999…¶º¿yóæÀ­ ‚¨®®®ªªzúôé… œËÊÊ–/_N½µfÍš/^L™2%;;»¤¤$--mìØ±:::¢·ç™L¦«««ŸŸß˜1cÔÕÕ?ô*ÉÉÉyxx–••­^½ÚÓÓó/‚ØÆ÷Çð÷÷_±bÅéÓ§_½zEí’ïÈS«ß3ŸÏoq²²²2A¿ýö—Ëݹs'ÕØÖJ[ öBµ›hÖÅûTºÌñã·ôõƒBC“›%;rGögïÚµËÊʪ¡¡$É´´4--­šš’$¹\î¼yóTTTTUU}}}kkkE÷ã¾{÷.88X[[[IIiΜ9‡joÝ‹Ša``Àb±LLLÒÓÓßÓ½­?­ýQ §§çééùüùsÑUðùü   sss33³ˆˆˆ·oß ûRw—sss ‚ˆŠŠjÑN´±]X4I’555ÞÞÞªªªZZZË–-«««ûÄ‹ ¶±ÅªEw]—””477oÛ¶ÍÀÀ@IIÉÁÁ!==Íf‹=³Åqë‰'L˜Ð¿ÿÖ+ˆˆPVV600HOO§ÚÅ®´­Z_¨÷$|û³º ƒ$é¹ÛÐrrŠýü~ýâ ãèhŸ¾}Y’6))ÉÃÃÿwzŒ¬¬,===+++êejjjDDÄíÛ·éMÕI Fbb¢»»;ÝAz>ìžÌÞÞ,--àöí gçÝÕÕ<ºã€”*((ðòòºuëÖÛ·oóòò~üñÇ… Ò º=ÔÙÐÃYYéee-åñÞ͘±ãáÃjºã€4Z±bÅÌ™3gÍš¥ªªº`Á‚ùóçûùùÑ º=ÔÙÐóéë«? ¬¬à켫 à1Ýq@êÈÊÊFDD¨;± ïï]‡Þ®±±9,,%1ñzXØôE‹&1 º@O€:€ bÿþ “'ß¹ÓsÀ€>tÇ€nu6À? ûm\s³`ÿþo¬­Ñº7ÜÏè¦&Áާ·oÏùüs£;æhh(Ѥêl€pþü½¥K0™2;vüë‹/ŒéŽÒ u6À‡yñ‚·bERNN±‡Ç˜ð𯔔èNÒu6ÀÇ8{önhh2Ÿ_¿j•“—×xºã€ÔA ð‘x¼w›6нdk;,2Ò]WW…îD EPg|’ þ^±"éÍ›ºe˦Λ7Å’¥;HÔÙŸêíÛ†½{ÏïÝ{NMM14tÚÌ™# Ý¡€f¨³$ƒÃ©Ý³çüþý¹ƒ«;̘1‚îD@'ÔÙ’T\üô§Ÿ2._¾oooâhnŽïè¥PgH^NNñ/¿ü^XødÊÓ%K¦ÚØ ¢;t5ÔÙåúõ‡QQçrrŠG0ÅÎn8ömô¨³:×åË%Û·Ÿ¾zµÔÆf°Ïg3gŽÄ3IzÔÙ]áúõ‡Ñѹ99Åöóòïã󹆯ºC@'B Ðuž>åüöÛÕ#Gò¸ÜºéÓ­.œhm­Û=êl KJJòððxÏ ³Oã~ý¬ddú¾xGø?–˜˜èîîNw €ÞûD:ERRR»çÔÖ6õëçØa WA… %Pgt 777º#dèСÎ<ÔÙ’‡:@òPgHêl!bðàÁ>>>ÕÕÕ¢'ÔÖÖ†„„XYY)**Ž=úçŸnjjö522jñx~GGGƒQZZzûömYYÙäädá[ééé,«°°°Å¼JJJNNNeeeÏ\ZZÚºÑÍÍM4Lii)ƒÁèð•ø¨³ MW¯^­¬¬|òäIll,—˵¶¶~ýú5õÇ5jÔ7"##oÞ¼–`ooßÜÜLP^^~çÎáPçâÅ‹ÔñÈ‘#øá‡ÀÀ@j´7oÞ|ÿý÷ááá¢ó>{öìÂ… ÀËË«­„>TSSkw!)))‰‰‰u >êlh›ÍÖÔÔÔÑÑ™4iRZZÚСC·mÛF½µnÝ:6›}öìYccc—ëׯ———ÇÆÆR'ØÙÙ‰Þ±ÎÈȰµµ¾\½zµššÚÊ•+ ‚ ÕÒÒZ±bE‹yµ´´FŒsõêU.—+6¡@ xõêU» ñóóó÷÷¯ªªúðkð‘PgÐ ##CGG‡ÃáqôèQccãÚÚZ‚ CBB444ÔÕÕCBB©gÏžÕ××ÏÍÍ ×××g³Ù>>>Â[Ë­{‘™™iiiÙ§OŸ¡C‡>|˜ ˆ¦¦&±ÝE7Q¼gCƒÁøî»ïNœ8A½Œ_³f “ɞЯ_¿øøx꥛›[RR’p·FJJÊìÙ³…'³X¬¸¸¸C‡mذ!666..NNNNì¼ÔÔŽ”¬¬¬‘#G*((hiimܸ‘ ˆqãÆ¡©©)<ÿôéÓ†††***6l6.[¶ÌÄÄÄ××·ÅV±cR‹=tè©©)›ÍÞ¸qãáLJ ¢¤¤ôã?~Ð5§®gzzú°aÃÔÕÕëëëÅNÚÖ§#v"èH(jB»§ùøøÌ;·ªªJCCã?þ ###]]]=zTPP`mmZRRB„££ã¹sçÖ®]kffVPPPXX8vìØààà¶zñù|yyùèèèÊÊʃÊÊÊòùüÍ›7‹íþúõ똘˜ÖÇA”””ˆf¾qㆲ²2I’ÔoÕÕÕ-uåÊ ªï½{÷455oß¾M «  ðòåËc†††!:Aùùù<Ëå–––º¸¸Œ5Š$I.—Ëb±æÏŸÿäɪšñâu}Dû:99q¹ÜÔÔT‚ ^¾|)\Èýû÷ûöíK’¤°—Ø1©.sæÌár¹ ÂÝÝËåîÛ·O8f¯95ÑÔ©Sïß¿Ÿ——ghh¸víZ±“¶õé´ž¨ÝZA$&&¶{t6ÔÙÖÁ:›ÃáèêêZZZ®]»VØhbbRYYIçääŒ1‚*Ô H’6lرcǨwÿúë/áqë^555rrr[¶láp8€Çã577·Õ½-Qg_»vMMMMØ×ßß?,,Œ$Éøøx{{ûc ‚™3g2™L//¯ó ÉÉÉÙÚÚR]êëëïÞ½Ëçó›››/\¸@ ÕºÎÎÍÍ%I’Ú&NuìØ±cÀ€=ö;&ÕåÖ­[$I644´8¦Nèà5ýøH’LLL444;iÇ?Ü÷j$êl©}#ôPVVöõõ-..^´h‘°±¼¼\KK‹zÔ†½½½ð9&&&ATTTQ-¦¦¦ÎÎÎmõRQQ9þ|^^ž®®®­­í¥K—dddÚêÞq%%%TxMMÍüüü'äççÛØØ_º¹¹%''“$ÙbÓ%!!!77÷ܹs)))ééé-&¢~B544äææÁb±îß¿ïàà`cc×VHmmm‚ ddÄüp[¼xñÈ‘#.\Hþ§šÏ˜ŠŠŠAP»YD)¼æÔÉÂËnbbòäɱ“vüÃmká mPgÐãñãÇ»wï¶³³ 6ª©© KL‡“——GµSž¶¶vyy9Õ’ŸŸ¿~ýú¶zÕÕÕ ‚äääššš ̘1£¦¦¦­îD’äÞ½{§OŸN½ôôô\·nðé"AÔÖÖFFF:88[&L˜Àãñ._¾œ““3kÖ,ÑÑž={¸yóæ‰'†‡‡ûùùµûçŒuuuîîî!!!·nÝÚ³gO[§½ç}222±±±W®\Ù¿ÿÙZ¯9u2uW› ˆû÷ïkkk‹´ãnÇC½PgÐ@ ÌŸ?? àèÑ£gΜÉÌ̤Ú]\\ÂÂÂ*** ¢¢¢D{y{{¯Zµª¨¨¨¨¨hñâÅmõb0S§NMMMår¹ rrr muóæ µ ¹Å1AÕÕÕUUUOŸ>½pႳ³sYYÙòåË©·Ö¬YóâÅ‹)S¦dgg—””¤¥¥;VGGGôö<“Étuuõóó3fŒººº°$I???KKË ¤¡¡ðþ‹V__ßÐÐÀb±êêêÂÃà ‚àñxÔ[|>¿ƒW~È![¶lùå—_Úóý:xÍ©“—,YRZZzãÆ~øÁËËKì¤ÿp;¸R _×mQè:²?{×®]VVV $I¦¥¥iiiÕÔÔ$ÉårçÍ›§¢¢¢ªªêëë[[[+ºÿøÝ»wÁÁÁÚÚÚJJJsæÌáp8T{ë^T ‹ebb’žžþžî¢Sˆ‹þ ÐÓÓóôô|þü¹è*ø|~PP¹¹¹‚‚‚™™YDDÄÛ·o…}©»°¹¹¹ADEE‰¶ÇÅÅÉËËÿý÷ß¡®_¿.##“’’BŠÛ.´uëÖêééíÙ³gΜ9êêê&Lèß¿‹yE[ (ìíí…Ël=f[ãˆwðšS×óÀƒ RSS ¨««;é}¸ïG`6€t`­žrŸ"))ÉÃÃÿ³€ ˆÒÒÒÖß‹ÙÙ Fbb¢»»{WN ­a߀ä¡Îè, ðóó£;Ðu6@gQWWŽŽ¦;Ðu6€ä¡Î<ÔÙ’‡:@òPgHêlÉ“¥;@ÏÄ`0èŽtÂ÷®HØãÇóòòèN½Ú¸qãôôôèNÐÛ¡Î<ìÏ<ÔÙ’‡:@òPgHÞÿÙ¯t'¡IEND®B`‚XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMStringList.html0000644000151400015140000002765711653571065020611 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMStringList Class Reference

The DOMStringList interface provides the abstraction of an ordered collection of strings, without defining or constraining how this collection is implemented. More...

#include <DOMStringList.hpp>

List of all members.

Public Member Functions

Destructor
virtual ~DOMStringList ()
 Destructor.
Functions introduced in DOM Level 3
virtual const XMLCh * item (XMLSize_t index) const =0
 Returns the index item in the collection.
virtual XMLSize_t getLength () const =0
 Returns the number of strings in the list.
virtual bool contains (const XMLCh *) const =0
 Test if a string is part of this DOMStringList.
Non-standard Extension
virtual void release ()=0
 Called to indicate that this list is no longer in use and that the implementation may relinquish any resources associated with it and its associated children.

Protected Member Functions

Hidden constructors
 DOMStringList ()

Detailed Description

The DOMStringList interface provides the abstraction of an ordered collection of strings, without defining or constraining how this collection is implemented.

The items in the DOMStringList are accessible via an integral index, starting from 0.


Constructor & Destructor Documentation

xercesc::DOMStringList::DOMStringList ( ) [inline, protected]
virtual xercesc::DOMStringList::~DOMStringList ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual bool xercesc::DOMStringList::contains ( const XMLCh *  ) const [pure virtual]

Test if a string is part of this DOMStringList.

Returns:
true if the string has been found, false otherwise.
Since:
DOM Level 3
virtual XMLSize_t xercesc::DOMStringList::getLength ( ) const [pure virtual]

Returns the number of strings in the list.

The range of valid child node indices is 0 to length-1 inclusive.

Since:
DOM Level 3
virtual const XMLCh* xercesc::DOMStringList::item ( XMLSize_t  index) const [pure virtual]

Returns the index item in the collection.

If index is greater than or equal to the number of strings in the list, this returns null.

Parameters:
indexIndex into the collection.
Returns:
The string at the indexth position in the DOMStringList, or null if that is not a valid index.
Since:
DOM Level 3
virtual void xercesc::DOMStringList::release ( ) [pure virtual]

Called to indicate that this list is no longer in use and that the implementation may relinquish any resources associated with it and its associated children.

Access to a released object will lead to unexpected result.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/DOMXPathNamespace_8hpp__incl.map0000644000151400015140000000003511653571065020176 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMDocument_8hpp.html0000644000151400015140000000672411653571066016152 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMDocument.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <xercesc/dom/DOMNode.hpp>
#include <xercesc/dom/DOMDocumentRange.hpp>
#include <xercesc/dom/DOMDocumentTraversal.hpp>
#include <xercesc/dom/DOMXPathEvaluator.hpp>
Include dependency graph for DOMDocument.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMDocument
 The DOMDocument interface represents the entire XML document. More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/DOMNamedNodeMap_8hpp_source.html0000644000151400015140000003054711653571065020243 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMNamedNodeMap.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMNamedNodeMap.hpp 671894 2008-06-26 13:29:21Z borisk $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMNAMEDNODEMAP_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMNAMEDNODEMAP_HPP
00024 
00025 #include <xercesc/util/XercesDefs.hpp>
00026 
00027 XERCES_CPP_NAMESPACE_BEGIN
00028 
00029 
00030 class DOMNode;
00031 
00045 class CDOM_EXPORT DOMNamedNodeMap {
00046 protected:
00047     // -----------------------------------------------------------------------
00048     //  Hidden constructors
00049     // -----------------------------------------------------------------------
00052     DOMNamedNodeMap() {};
00054 
00055 private:
00056     // -----------------------------------------------------------------------
00057     // Unimplemented constructors and operators
00058     // -----------------------------------------------------------------------
00061     DOMNamedNodeMap(const DOMNamedNodeMap &);
00062     DOMNamedNodeMap & operator = (const DOMNamedNodeMap &);
00064 
00065 public:
00066     // -----------------------------------------------------------------------
00067     //  All constructors are hidden, just the destructor is available
00068     // -----------------------------------------------------------------------
00075     virtual ~DOMNamedNodeMap() {};
00077 
00078     // -----------------------------------------------------------------------
00079     //  Virtual DOMNamedNodeMap interface
00080     // -----------------------------------------------------------------------
00083     // -----------------------------------------------------------------------
00084     //  Setter methods
00085     // -----------------------------------------------------------------------
00112     virtual DOMNode   *setNamedItem(DOMNode *arg) = 0;
00113 
00114     // -----------------------------------------------------------------------
00115     //  Getter methods
00116     // -----------------------------------------------------------------------
00129     virtual DOMNode     *item(XMLSize_t index) const = 0;
00130 
00140     virtual DOMNode   *getNamedItem(const XMLCh *name) const = 0;
00141 
00149     virtual XMLSize_t getLength() const = 0;
00150 
00151     // -----------------------------------------------------------------------
00152     //  Node methods
00153     // -----------------------------------------------------------------------
00169     virtual DOMNode    *removeNamedItem(const XMLCh *name) = 0;
00171 
00185     virtual DOMNode   *getNamedItemNS(const XMLCh *namespaceURI,
00186                                       const XMLCh *localName) const = 0;
00187 
00211     virtual DOMNode   *setNamedItemNS(DOMNode *arg) = 0;
00212 
00235     virtual DOMNode     *removeNamedItemNS(const XMLCh *namespaceURI,
00236                                            const XMLCh *localName) = 0;
00238 
00239 };
00240 
00241 #define GetDOMNamedNodeMapMemoryManager   GET_INDIRECT_MM(fOwnerNode)
00242 
00243 XERCES_CPP_NAMESPACE_END
00244 
00245 #endif
XQilla-2.3.0/docs/dom3-api/DOMRangeException_8hpp__incl.md50000644000151400015140000000004011653571065020154 00000000000000bce534e8be8e9a21bba967a5ef9a9a26XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMLSParser-members.html0000644000151400015140000002412111653571065021611 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMLSParser Member List

This is the complete list of members for xercesc::DOMLSParser, including all inherited members.
abort()=0xercesc::DOMLSParser [pure virtual]
ACTION_APPEND_AS_CHILDREN enum valuexercesc::DOMLSParser
ACTION_INSERT_AFTER enum valuexercesc::DOMLSParser
ACTION_INSERT_BEFORE enum valuexercesc::DOMLSParser
ACTION_REPLACE enum valuexercesc::DOMLSParser
ACTION_REPLACE_CHILDREN enum valuexercesc::DOMLSParser
ActionType enum namexercesc::DOMLSParser
DOMLSParser()xercesc::DOMLSParser [inline, protected]
getAsync() const =0xercesc::DOMLSParser [pure virtual]
getBusy() const =0xercesc::DOMLSParser [pure virtual]
getDomConfig()=0xercesc::DOMLSParser [pure virtual]
getFilter() const =0xercesc::DOMLSParser [pure virtual]
getGrammar(const XMLCh *const nameSpaceKey) const =0xercesc::DOMLSParser [pure virtual]
getRootGrammar() const =0xercesc::DOMLSParser [pure virtual]
getSrcOffset() const =0xercesc::DOMLSParser [pure virtual]
getURIText(unsigned int uriId) const =0xercesc::DOMLSParser [pure virtual]
loadGrammar(const DOMLSInput *source, const Grammar::GrammarType grammarType, const bool toCache=false)=0xercesc::DOMLSParser [pure virtual]
loadGrammar(const XMLCh *const systemId, const Grammar::GrammarType grammarType, const bool toCache=false)=0xercesc::DOMLSParser [pure virtual]
loadGrammar(const char *const systemId, const Grammar::GrammarType grammarType, const bool toCache=false)=0xercesc::DOMLSParser [pure virtual]
parse(const DOMLSInput *source)=0xercesc::DOMLSParser [pure virtual]
parseURI(const XMLCh *const uri)=0xercesc::DOMLSParser [pure virtual]
parseURI(const char *const uri)=0xercesc::DOMLSParser [pure virtual]
parseWithContext(const DOMLSInput *source, DOMNode *contextNode, const ActionType action)=0xercesc::DOMLSParser [pure virtual]
release()=0xercesc::DOMLSParser [pure virtual]
resetCachedGrammarPool()=0xercesc::DOMLSParser [pure virtual]
resetDocumentPool()=0xercesc::DOMLSParser [pure virtual]
setFilter(DOMLSParserFilter *const filter)=0xercesc::DOMLSParser [pure virtual]
~DOMLSParser()xercesc::DOMLSParser [inline, virtual]
XQilla-2.3.0/docs/dom3-api/DOMCharacterData_8hpp_source.html0000644000151400015140000002640111653571065020433 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMCharacterData.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  * 
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  * 
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMCharacterData.hpp 527149 2007-04-10 14:56:39Z amassari $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMCHARACTERDATA_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMCHARACTERDATA_HPP
00024 
00025 #include <xercesc/util/XercesDefs.hpp>
00026 #include <xercesc/dom/DOMNode.hpp>
00027 
00028 XERCES_CPP_NAMESPACE_BEGIN
00029 
00030 
00046 class CDOM_EXPORT DOMCharacterData: public DOMNode {
00047 protected:
00048     // -----------------------------------------------------------------------
00049     //  Hidden constructors
00050     // -----------------------------------------------------------------------
00053     DOMCharacterData() {}
00054     DOMCharacterData(const DOMCharacterData &other) : DOMNode(other) {}
00056 
00057 private:
00058     // -----------------------------------------------------------------------
00059     // Unimplemented constructors and operators
00060     // -----------------------------------------------------------------------
00063     DOMCharacterData & operator = (const DOMCharacterData &);
00065 
00066 public:
00067     // -----------------------------------------------------------------------
00068     //  All constructors are hidden, just the destructor is available
00069     // -----------------------------------------------------------------------
00076     virtual ~DOMCharacterData() {};
00078 
00079     // -----------------------------------------------------------------------
00080     //  Virtual DOMCharacterData interface
00081     // -----------------------------------------------------------------------
00084     // -----------------------------------------------------------------------
00085     //  Getter methods
00086     // -----------------------------------------------------------------------
00100     virtual const XMLCh *     getData() const = 0;
00101 
00110     virtual XMLSize_t       getLength() const = 0;
00111 
00126     virtual const XMLCh *     substringData(XMLSize_t offset,
00127                                      XMLSize_t count) const = 0;
00128 
00129     // -----------------------------------------------------------------------
00130     //  String methods
00131     // -----------------------------------------------------------------------
00142     virtual void               appendData(const XMLCh *arg) = 0;
00143 
00155     virtual void               insertData(XMLSize_t offset, const  XMLCh *arg) = 0;
00156 
00174     virtual void               deleteData(XMLSize_t offset,
00175                                   XMLSize_t count) = 0;
00176 
00196     virtual void               replaceData(XMLSize_t offset,
00197                                    XMLSize_t count,
00198                                    const XMLCh *arg) = 0;
00199 
00206     virtual void               setData(const XMLCh *data) = 0;
00208 
00209 };
00210 
00211 XERCES_CPP_NAMESPACE_END
00212 
00213 #endif
00214 
00215 
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1MemoryManager-members.html0000644000151400015140000000703711653571065022330 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::MemoryManager Member List

This is the complete list of members for xercesc::MemoryManager, including all inherited members.
allocate(XMLSize_t size)=0xercesc::MemoryManager [pure virtual]
deallocate(void *p)=0xercesc::MemoryManager [pure virtual]
getExceptionMemoryManager()=0xercesc::MemoryManager [pure virtual]
MemoryManager()xercesc::MemoryManager [inline, protected]
~MemoryManager()xercesc::MemoryManager [inline, virtual]
XQilla-2.3.0/docs/dom3-api/DOMLSSerializerFilter_8hpp__incl.png0000644000151400015140000001146611653571065021074 00000000000000‰PNG  IHDRãu3ÓÁEbKGDÿÿÿ ½§“ëIDATxœí{PSGûÇ÷$ á¢á–RKŠÈÅ[ÕA Áz)*ÞPÔQ@¬¥£\ÔΈ¨Të ¶*­Ü*¨ƒ"¬¢P%µ €Ôq¸ÕA P˜@ !ç÷ÇþÞÓcJ^ððîç¯sžÝ}öÙ=ßìî¹Ãq <´±H©j€”Š H©j ¥)Gžžžšr…7¸¹¹8p@#®4¦Ôß~ûmúôél6[STçùó熆†šò¦1¥üüüÜÝÝ5èAi:¤AohŠ H©j€”Š H©j€”Š š<÷Gl›šš:99…„„0™LÂ(•JSSS=z$ ­¬¬\]]×­[G§ÓaYKKË´´4 Èü{÷î-++KOO·´´äñxpƒ\£D"IMM½ÿ¾H$211ñððð÷÷Ÿ0a‚ú$õ455mܸ±°°P}ªúlÃÜ]éééšò«Pî´“QU* ..ÎÜÜ\.—¿~ýúúõëAAA.\Ð××ôöö†„„[XXüõ×_çÏŸüøñÉ“'i4 ¥¥¥®®ŽËåBWb±¸¢¢B}ugΜimm=|ø°‰‰ICCÙ3gÄbqhh¨ú$õèëë¯_¿^SÙÔ»‹l¡Óé n…BáŽ;rrrFX×ÎhÏþL&ÓÈȈÅbÍœ9óÈ‘#æææ×®]ƒI/^d2™§Núì³Ï8Ž««k|||KKK^^Ì0{öl@@¸zðà³³³úꊊŠmll˜L¦££chhhqqñIê100 ÒT6õÀî"£ìV.—wuu°¢Ÿ±\§b¶bÅŠ’’¸[PP‡OƒÁX·n]AAÜuwwĵ¿ÿþû¢E‹ÔW¡««›MHGGÇŒŒŒ!“d2Y||¼·····w||¼L&kjjâñxåååk×®½}û61/?|ø000pÉ’%>>>—/_&W ‹ÀíÅÿÏçFõµTUU©lÙ-dç΀իW¿ŸÛÇûûû{yy]ºt‰ð_\\¼iÓ&ooï³gÏö÷÷«4ªïy3ÆgT§¹¹ÐÝÝ-‰ˆ™€Ëå644Àí3fH$’ºº:@OOOyy¹‹‹‹zÿååå¾¾¾­­­ÃIÊÌÌ … 'Ož,//OIIö«W¯îÛ·ÏÆÆîöööFEEÙØØ¤§§‡„„$%%uvvª #?????ÿÎ;®®®+V¬~-R©TBb``@ÙùO?ýÈÊÊz§à JKK“’’"##“““‰ßmvvö±cÇŽ=ZZZJüUGýÜÃ0¹\·i4š››\<|øÐÁÁaòäÉê‹Ï™3'##ãôéÓwîÜÙ°aÃÝ»w‡LÊËËûúë¯Ùl¶µµupppYY´Íœ9“Á`ÀÝ &œ?>44ÔØØ>ðÐÓÓ£&˜_ýõï¿ÿÞµk×ðkÙ¾}û2D5 3x‚µk×êêê.\¸ ‹¡1$$„ÃáØÙÙmß¾˜ÓTGÑ>£R ±±Ñ ¯¯oddT[[;{ölr†ÚÚZ[[[b×ÝÝ=66vÛ¶mÙú¥RéƒÜÝÝíììììì6mÚ”ššïáá¡& ÐÒÒâããCøÑÓÓƒVVVdÿZZZ'NœH$Êc•õõõ—.]Š‹‹ÓÖÖ†–áÔ¢|bÞÔÔ¤¾¢aO`ll _Qp8¢T[[›ã¨1–JÅq<77wþüùp—Ïç_¼xqæÌ™ÄRU*•^¹r…Üï½½½UUU? ÒLLŒ••\T`6wîÜ7n¨O|ÿý÷P"pYíZZou×›7o¢£££££,XÐßßOœù)#‘HbbböïßÏb±ã0kyWÞÕ­‚F!ÖÖրׯ_C)f5F{öïìì‰Dííí …kÖ¬I›7oîèèØ³gOYYYccãüÂb±V®\ùo¸4š››Û©S§ìììÈbÉÎ ttt/^|èС’’¡PøüùósçÎÁQSMÀÕÕ5))©µµµ¾¾>222;;[e[úûûe2™––V__\öööªÌùÃ?,_¾ÜÉɉlf-ÃD"‘ ÓíÍ›7Õ¯RqqqMMM/_¾LNN&žŸ¯©{T»ïïçç§)W”F$bÔ×Ì™Ó:tÖñ޵µ5ñ ÜÈÑØ˜Š€äæ>ݱãçææïÇ:ñZ§"¨R*‚ ¥"¨R*‚ ¥"¨R*‚ ¥"¨R*‚ ¥"¨R*‚ ¥"¨R*‚ ¥"¨R*‚ ¥"¨R*‚ ¥"¨R*‚ ¥"¨R*‚ ¥"¨R*‚ ¥"¨R*‚ ¥"¨R*‚ ¥"¨R*‚ ¥"¨R*‚ ¥"¨R*‚ ¥"¨ú&õHinîܲå¼L6w%’~‘¨ÇÒ’Id˜>Ý".nãE7~ÐØwþÿg±°`J¥}µµ“/_Jà†//籈k¼f °nÝ<-­Ázóó›;ªÑŒSR5ÀªU³T,¢h4ÌÑ‘Ãá >ÒH©À‚9k–†)Øi44 j ¤TÍàë;WY©8ޝ\9sLâ ¥j//g…‹(t:mþ|®±±þE4Þ@JÕ FFz ÚÐéÿö'Žã¾¾sÆ0¤qRªÆðñ™C¾8M§Ó–-sÃxÆH©cÉ--:ÜÖÒ¢ñùö“&1Æ6¤ñRªÆÐן¸x±=\ à«WÏëˆÆH©šdõêÙr¹ ££ÍçÛu8ã ¤TMÂãÙéèLÀ0°t©ÃĉèNµ&y«7›››Ç*ŽqŸ?-7·’dzF9Bttt ÿ½½÷–R«««G=žñ†½½~aáDƒ7¨3Gˆ‰‰É JLŸ>ÍfnHã 77ÃŒ<1008pà€‚[åæc¶cÇŽ›7oÂÝôôô¨¨(:ýß«§zzzééép×ÏÏïêÕ«øæ÷ÌÌL___²ÃÝ»wO›6-((Wú>ˆrðƒ5Se7ªDyÒŸ?>ÀÌÌl0WäãXTT¤à0??ŸËå;vŒðŸ““3uêT6›úæÍ•ÆÁ"TY¶ÃS6oÞÜÒÒbjjZZZ Ç÷ññihh¨¬¬œ5kÖ¾}ûàuéÒ¥÷îÝ‹ŽŽ¶··¯¬¬¬ªªš7o^xxø`¥º»»'Nœ/ ÏŸ?¯¥¥ÕÝÝ«²ø… ÒÒÒp?uê›ÍÎÊÊjnn¾yó¦……l—¿¿¿‡‡G]]]eeåŒ3¢££¡ Ö¯_ßÕÕ•œœ X³fMWWWBB ½½ìW5l}J$=yòðúõk€D"ÆÊÊJƒ¿->åm²[\•R/_¾<{öl¸mffVPP عsç>ÿüs¢¬@ àr¹r¹|ÕªU ¸*¥ ,Z´Ž:P7*ƒWÙÌÁºQ9r\•@”ªþ8*¨®®&wÌL„]QQÁ`0T•½)0Òu*T@\\ŸÏ #Œ,‹è—ŽŽŽ’’h×ÖÖXXX¼zõ Zž>}úí·ßVJ"‘Èåòk×®‰D¢mÛ¶yyy‰D"•Åoß¾½dÉhœ2e ù>†cjjJ§Óëë롱®®ÎÒÒrÈÖ‘Ý*…¸|ùr¸ëïïøðaâLÐÓÓsüøq²‡… ŠÅ⢢¢‚‚‚Á.SÐh´”””âââÄÄDhQ¼Êf‚Á;ÿ=P•Qy© JP]] —(ƒß ²l‡Sø|þ‘#GD"‘™™Ynn.´‡††úúú‹2óæÍÛµkùÇzðàAGGǪªªªª*—ÀÀÀÁJI$ƒ‘™™ÙÖÖ–˜˜È`0$‰Êâ7nljj‚~NŸ>Íf³³³³…Ba^^žµµ5¬zÆ õõõUUUöööðœ¨SÉn¡‘¸J%V®\Éáp:;;aê?ÿü3uêÔE‹åååUWWgeeÙÛÛ»¸¸H¥R²ó;wÚÙÙñx<…JÁÛÃÞ¹sçà‡»ÊÁÖLånTvlL‹ÅÃ9Ž8Ž'%%ÍWî=˜™ÇãÕÔÔ”••ÙØØDEE©4ªÑd¤³ÿÙ³gœœà\ðË/¿˜››Ã%]WW×Ö­[ ƒ‚‚zzzÈ-”J¥áááëׯïèè€våR8Žgdd|úé§&L˜6mZNNŽÊâ}}}Ë–-#¢’Éd±±±\.WOOoÁ‚p$Àq\$mÚ´ÉØØØÜÜ|÷îÝpR£Ô/^Ýâo¯ö>úè#…þéîî ›1c†®®®½½}LL qÕŒp.?þø£‚]ALr¹ÜÓÓ“è4åàk¦Ên¦Rûûû.\¨¯¯?ØQPªúß9ÌœœœüñdzX¬¯¾úJ"‘¨4&0e¥¾õýT@€ž¤F¼7µµµÊ·åT‡®mìíÿ}k’Ú÷¨ÿ; ¥"4ÆäÉ“ƒƒƒ‡c|ÐìøA³?‚ª ¥"¨R*‚ ¥"¨R*‚(~C¥³³“x¿+¤R©Âã2ŠJEßýB| ((ý%‚ u*‚ ¥"¨R*‚ ¥"¨ÁÿHš¢÷$dIEND®B`‚XQilla-2.3.0/docs/dom3-api/XPath2Result_8hpp__incl.map0000644000151400015140000000003511653571065017302 00000000000000 XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMDocumentRange__inherit__graph.map0000644000151400015140000000031211653571066024230 00000000000000 XQilla-2.3.0/docs/dom3-api/inherit_graph_12.png0000644000151400015140000000352511653571066016036 00000000000000‰PNG  IHDR£(yÝÌbKGDÿÿÿ ½§“ IDATxœí›}HS]ÇÏ}–6faåt›o„™5+L\ˆ¸‘‘”ldYQ„[$„ʬHŠú£²7Â?²b*íÅ?ÄX²^%«Ý(I’ªսËmÝ¥nçùãÀåv÷òøôhyïç¯s~÷ü¾÷wÎ÷ž{·;Å „€‡üõÀó›àæ ¼Ó\wš+,`õúúúþ—Rxf‘cÇŽåçç3#l§qÌÍÍýUñÌ2mmmUUU¬ Ûi@nnnkkëo)‰gNÀ0Ì?È?§¹ï4Wàæ ¼Ó\wš+Ì[§1Ë—/¯¨¨°ÛíÌn·[§Óeff.^¼xݺu'Ožœžž¦sW®\Éúí§¸¸ðááa45þ æ­Ó€ÇÛl¶ñññæææ‰‰‰ììl‡Ã9εk×ö÷÷766¾xñ¢¦¦ææÍ›*•Êëõ¢£££¯_¿¦¥H’œÓJV«U,Ï>˜ßNGGGK¥Ò¸¸¸‚‚‚ŽŽŽ¤¤¤sçΡCz½>::º···¨¨(%%eëÖ­ÏŸ?mnnF”Je[[-ÕÕÕÅzå4»ø|¾¯_¿Î>ø5§»ººâââH’ܾ};%%Åív¦¦¦t:D"‰‰‰ÑétSSSÃÃÆõöö&&&šL¦ºººÄÄÄèè芊 z{ùgîܹ“‘‘! “’’nܸ˜žž˜ŽNáßfaؾ}ûîÝ»‡º---µµµ€¡ÓéZZZPW­V·¶¶Ò7ðöööÒÒÒÐËâp8víÚ%‹ãããµZ­Çã VóÝ»wW¯^-‰d2Ù©S§ëׯH¥Ò`RÌ•4›Í33êgàϨÕjµZ ÿ‰ŠŠŠ;w~üøQ"‘<{ö ·mÛöáËŒ}ôèÑ¡¡!@qqñƒêëëår¹ÅbÁq<''G«ÕËr¹\ .¼|ù²Íf»~ýú‚ \.×éÓ§¦;Žk×®ù·CCCÌšûûû—,Y!DרÝngMêÑ£G‰åJ¥Ò—/_"Y‘HôåËZÓ_B¨Ñh GFF,Kzzz}}}Àš'&&ÂÃÃwïÞ=>>Ž.¬ÏŸ?£… !Å\I—ËÚ€Á``Yý:M’d|||FFF}}=LKK³Ùl¨ÝÓÓ“••…ê³X,ÂÔÔT£ÑˆŽ¾}û–nûgvæÌ’$}>ŸÓéôz½ÁÒCÌöß:ýäɱXLç8p ¦¦BØÒÒ¢R©˜šþâ“““àÍ›7¨k4“““ÖüãÇwïÞ¹\.¯×ûðáC$Åt: s%ÿ‘ÙtB¨×ëÁ§OŸèˆP(dÞ-"##Q}“““è(Žãþ:þYB³Ù\ZZ±aÆû÷ï‡H1[–·nÝZ³f jK¥ÒžžVÊ¥K—6nÜHçšL¦äädŸÏWRRråÊÒé±±1EQ¨k±X„Ba°š;;; EVVVee¥¿Ó¥˜+9“¹û;ý‹ŸÈÆÆÆ.\¸ T*«««é X,¦çO’äÓ§OQ<,, ;::Š"¯^½:qâD°,Š¢|>_[[A{öìÙ¼y3AÁÒg2rÓ¦M¨«Ñhôz=ýIàv»‹ŠŠèˆB¡p:f³¹§§§¤¤$´¾D"V«uGFFâââÖLQTYY™N§hjjš¡j£•üEXÎÏdO{½^¥RÙÐÐ@„T*íêêBñC‡•––¢ï'999d^ªuuu8Žã8ž——WUU,‹¢(¡PØÞÞn·Û¯^½* )Š –â9MË2™L[¶l‰w8èè·oßRSSóó󻻻߿o4åry^^žÇãŒ-»ÿþU«VКôžFâ4ÂíÛ·Z­VÇårymmmÀšI’Ä0¬»»Ûív9r000€Êét¢ùK±ä¡³u÷>þ|ff&º“tttÈd2‚ „•••K—.ŠŠÚ»w¯ÛífÖçñx´Zmllldddyy9I’(îŸ!4 +V¬OKKëìì ‘Î<³Í¼š4 óA!t¹\ÕÕÕééé"‘H.—?~üû÷ït.rÔd2.^¼ÈŠÜ0AìØ±#**J&“>|˜¢¨`5Ÿ={vÙ²e MMMååå111SSS …bÑ¢Eh€¿ÔwcÕ]VVàŸþ£Á0Ì`0 +iæó›&¼Ó\wš+ðNsÞi®À;Íx§¹ï4Wàæ þ‡£¯¯O¥RýþRxæ¶ÓèxþhÔjuBB+È~ïÍ3_áŸÓ\wš+ðNsÞi®ð7—€2‰ñŠ5IEND®B`‚XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMXPathNSResolver-members.html0000644000151400015140000000776111653571065023140 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMXPathNSResolver Member List

This is the complete list of members for xercesc::DOMXPathNSResolver, including all inherited members.
addNamespaceBinding(const XMLCh *prefix, const XMLCh *uri)=0xercesc::DOMXPathNSResolver [pure virtual]
DOMXPathNSResolver()xercesc::DOMXPathNSResolver [inline, protected]
lookupNamespaceURI(const XMLCh *prefix) const =0xercesc::DOMXPathNSResolver [pure virtual]
lookupPrefix(const XMLCh *URI) const =0xercesc::DOMXPathNSResolver [pure virtual]
release()=0xercesc::DOMXPathNSResolver [pure virtual]
~DOMXPathNSResolver()xercesc::DOMXPathNSResolver [inline, virtual]
XQilla-2.3.0/docs/dom3-api/DOMEntity_8hpp.html0000644000151400015140000000617011653571066015643 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMEntity.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <xercesc/dom/DOMNode.hpp>
Include dependency graph for DOMEntity.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMEntity
 This interface represents an entity, either parsed or unparsed, in an XML document. More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/DOMRangeException_8cpp.html0000644000151400015140000000536011653571066017275 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMRangeException.cpp File Reference

#include "DOMRangeException.hpp"
#include <xercesc/util/XMLDOMMsg.hpp>
Include dependency graph for DOMRangeException.cpp:

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/DOMErrorHandler_8hpp__incl.md50000644000151400015140000000004011653571065017630 000000000000001a7fca3def7de369913d90f9fccfda47XQilla-2.3.0/docs/dom3-api/XQillaNSResolver_8hpp__incl.png0000644000151400015140000002242411653571065020167 00000000000000‰PNG  IHDRuQC²bKGDÿÿÿ ½§“ IDATxœíÝy ”ùÿðÏŒÁ`œ¡+ e•î­6%I‡²eu‘®mSúvì’ÍmSI}‹ ©¨èØäèX[R­¨$GRˆa†9žßÏwŸß4ó*Œãýúkæyæù<ïçyÞϼç9æóP0 Cú<ª¤Ð-@=€Ô8¨Bˆ&é€ÄܼySÒQ€“šš*é@Ïõ ï*((xøð¡©©©¤_ëÝ»wOž<‘t ÇƒzЧ™ššúøøH: ðµÒÓÓýüü$èñàú„ ÀA=€Ô8¨‚zÄ+**²²²JOO'†deeY[[¿|ùËf³###W¯^={öl—¸¸8‡*//·´´$}ÑKKK___Á'a±Xááá3gÎtrrŠŽŽnii!&$Ìœ9sÆ ÅÅŲømÆüY,--ËËË;ª5:Üo Ä122rrr ;v,ƒÁhllÜ¿ÿŠ+ BMMM...***ÎÎÎ:::¯^½:zôhNNÎÞ½{ †ƒƒÃçÎ.##ãÆÓ¦MuðàÁªª* ÒÒÒƒ644lÚ´ ¦¥¥…‡ëççwâÄ …òuK@ßÇ  Ë–-SVVŽŒŒD>|¸_¿~K–,ÁG8qBEEeÿþýãÇ×ÕÕ êhFóððHII‰‹‹KIIñðð ÑþwX™ššº|ùr*õÿ³ˆN§/Y²äÚµkâÏ´üóÏ?kÖ¬™5k–½½ý©S§ˆá .ÔÓÓ },‡¼¼|RRR}}=þÖÌÌììÙ³¤KIIÑh4ü-—ˈˆ°³³³³³‹ˆˆàr¹¡Û·o¯^½zÆŒŽŽŽW¯^Å?Éd2wíÚ5oÞ¼… †‡‡ç£B;vì8tèþšÃáØÚÚfgg“6Ž/xnnîâÅ‹ „b»ÿþÒ¥Kmmmãââп磲²²–-[fggÊápH¶¶&è@P@ÛŒ/^|äÈ‘åË—4Èd2kjj …>lddôêÕ+1­555y{{ÅÆÆº¸¸DEEÕÕÕᣨTª‡‡GNNΕ+W„¦rssËÍÍ]°`››ÛÙ³g«ªªDzÙl‹Åb±>|øpôèQkkkiii|T|||eeedddHHHnnntt4›Íöõõ?þ™3g–-[¶gÏ6›:pà@uuuDDÄîÝ»ïÝ»wúôi¢}++«ŒŒ ¼JÝ»wOVVvܸq¤ãŸÿóÏ?=<<ŒŒŒ„–âÎ;QQQîîîGŽ!j[RRRPPÐÎ;ïܹCTGÒt*¨ m†½~ýšJ¥––– =Ga˜àƒ(™£GnÚ´©_¿~ššš¡ÆÆFb¬®®®³³shhè»wï§;vìÙ³g80|øð+W®8::¦¥¥cþùg› \½zuñâÅĨ”””Í›7kjj¬]»öîÝ»Ã0‹%##3kÖ¬‹/ÊÊÊr¹ÜëׯoܸQKKËÀÀ`ÕªU‚ÝÃ}ÿý÷õõõÏŸ?G¥¥¥Íš5KJJŠ´qüóÎÎΣF¢ÓéB˾xñbyyysss„PCC>ÐÅÅEWW×ÄÄäçŸ&fJ:€NדAÛ®]»–——·ÿ~777 ‹I“&!„ †ššZqqñèÑ£?\\\¬§§'¦5VVV¶wï^‹%ú !dggwóæÍàààÍ›7ãCØlöíÛ·§Njbbbbb²lÙ²˜˜˜ˆˆ+++ü±±±:::¡æææcÇŽíÙ³ç?þÀG½}ûÖÞÞžh\AAAQQqÿþýñññÑÑÑÆÆÆŽŽŽãǯ­­åóùÚÚÚøÇtttª««‰©dee'M𔑑¡¯¯ûöí¨¨¨ÖÇ_´¶úõë‡DЍ®®.11SÒt*¨  >| ]·n™™ÙŠ+BBB†®¤¤„š>}ú‰'Fމ|ÿý÷§NrttÓ`ss³¯¯¯¯¯ïĉ9NJJŠÐ(ʶmÛ~úé§K—.áC0 ÔÓÓÃOOQ(”qãÆ]¼xQ´qYYÙY³f]ºt Ã0ükWYYyÿþýxµÀÏq577óù|___.—›––æéé™””¤ªªJ¥R+++ˆª¨¨PWWlÙÊÊ*44ÔÐÐÐØØ˜ø²mN\b]4ÑeeeøýZoÞ¼Á FkèTp¾ˆƒaXHHˆÁœ9sB‹-RUU=xð >vÅŠ555®®®÷îÝ+++ÓÒÒ liiÁ?܇Ãåri4ZKK ~½©©Iè3ZZZ...þù'þVNNnÆŒ~~~ÙÙÙ•••?'„(((455±X,üíäÉ“£¢¢ªªª^¾|éîîž””D¡PÜÜÜnÞ¼ÙØØÈáph4š¬¬,F³´´þÖÝÝýäÉ“QQQåå媪ª–––+W®$m_CCC^^¾¾¾^^^!´zõê°°°5kÖP(”)S¦¬]»VFFfûöí‘‘‘ïÞ½ÓÖÖöññ‘‘‘AmÞ¼9,,lݺuÒÒÒÓ¦M[ºt©à‰faa‘––faaA müýû÷‚ÁìÝ»wäÈ‘Äy$RÓ§Oߺu+›Í¶²²"f*4PÌätŠè} X´hQuuu‡?ÿ€Ëå~ûí·Ûl¯T^^îäätãÆ6Ї?ÿöeð•à|è`4 Š=Ô$FAAÁÖÖ¶=èP•-[¶´g ]ê„ ÀA=€Ô8¨‚zýUôi>tuu•t$ø|B*µ{=†Ë•£ÑX’Ž‚Dmm­¤C½Ôƒ¾k„ ’†Q*+åKK•44š ºÑ3/¹\Êýûäå9ƒ×+(´´=A×3fŒ¤C=ô_º‘kמøø$UW×»»Û¬X1IZZJÒ}âÅ‹w¾¾Iׯ?›;w„·÷::ª’Ž€Žõt EEU;v$dfÙÛñôœ;`€²¤#jÕ­[…;v$”•Õ®_o¹aÃtYY8È½Ô a ì={RNœÈ24ìøãĉƒ%QÛ8ÞñãYÁÁ)ŠŠômÛl.'éˆèP€Ä`çÎK\.ßÛû{û±T*Éãú­ªªú¿OÊž8q°¿¿‰‰¶¤#à«@=’‘“óÚË+¡  låJsW×™ÊÊò’Žè åç¿Ù±#17·äÇÇøøÌë×!éˆøBP@W{ÿžé3nÜ ÀÀMMu$Ñ×Â0ìÒ¥‡þþ˜Ìæ ¦9;OínWÂh¨ ëp8¼Ã‡ÓCCÓ””è¿ÿnomm*éˆ:RSSKxøõ°°4]]5?¿ùÓ¦™H:">ÔÐEnÜxæíXVV³aƒÕúõÓääd$Q§()ytùâÅÉÝ}¶¢"]ÒÐ6¨ 566ÿ÷¿©GÞ8°_@€¹¹±¤#ê:\.ÿÌ™;»v]–––Úºu–£ã„žu÷胠€NßKt¹©©ÙÕuv7ü³qר«k ¹“9l˜N@€Ýرƒ$­‚z:ÞÓ§;v$ܹórÕªÉ[¶ÌPUUtDVTTåã“”‘ñ:ºÝÔБ>|`úù%'$䌭hgfö¤#êFRS{y%¾ßàâ]€îêè<?::3$䊬¬Ôo¿Ù.X0–BÓåÂØlÎÑ£7HUR’ƒŽ.@wõt€ìì^^‰EEU7Z¹¸L“—ï÷’v”·o?îÜyéüùœï¿‡Ž.@7õ|•²²Úß~;ŸšúØÊÊÄÏÏÎÀ@CÒõ”z{'<|øfÉ’ñÛ¶Ù@G@â €/ÔÜÌ »vèÐ MME»^ögã®ÁçcçÏß ¼ØÒÂÛºuæÊ•æ4<ÂH Ôð%λ·{÷_õõ¬îùàšž¥±±9"âFhhšžžšŸŸ¥åPIGú(¨àó<{Vé형Ulo?æ·ßæöïß}\Ó³¼zUí뛜šúØÚÚÔßßnàÀ~’Žô9P@{ÕÖ6]>s掱ñ€ÀÀ'Lè®éqnÝ*ôöN|ù²:º]êh~/é¾}W¤¤¨=ñÁ5= þðµ½{Sääd·n ]€.õ´áîÝ—^^‰OžTôô×ô,µµûö]…Ž.@W‚zZU^^ëïáÒ¥‡ãÇþøí·p›|W+((óòJ¼wïÕܹ#||æik«H:"ЛA=$ZZ¸¡¡×ÂÃo¨©)ô¾×ô,øÃ×.ÔÔ4BG SA=ÂRSûø$UVÖõî×ô,,VË¡C×ÃÂÒ´´T¶oŸck;RÒ^êø……o½¼oÝ*\°`¬‡Ç8;ÑÝTVÖ]Ž¿onnäçggb¢%éˆ@¯õ „PC{Ïž”'²Öô÷·377’tD U·o{y%½]²d¼‡Ç5µ¾Þ8è(Pú:>;u*;$äo«¥/?¸¦gÁ;ºð÷¿Àãñ·lŽ.@Ç€zЧåä”ìØ‘ðèQùÊ•æðàšçãǦ½{¯?ž©¯¯îïo7u*tt¾ Ôƒ>ªºº! àÂùó9cÆÀƒkz¶/Þùø$]¿þ:º_ êAŸÃáðLˆHWP×ô©©½½+*ê–/Ÿ´m› ƒ!+éˆ@Ïõ oIK{êã“XVV ®é}ðŽ.öìùKAîé9*=ø\PúŠ×¯?x{'â®ñ÷·4\Ó;UU} ¹rêT¶™Ù7vcÆèK:"Ðc@=èý˜ÌæÝ»ÿ:q"KGGÕÏo>üÙ¸/xøðÍŽ ¹¹¯ííÇìØñƒ¦¦¢¤#=ÔƒÞ Ã°øøû;w^nldÃkú|ëÿþûE&³ÙÅÅrãÆé22ÐÑêA¯õàAéŽçóòÞÀƒkú²¦¦–ððë¡¡iÚÚÐÑhÔƒž*'§DKK…´K‰÷ï™þþÉ 9#F|h?j”^ׇº•’’÷AA—/^Ì377ö÷Ÿ?t(yGׯ?6ͤ‹cÝÔƒéÍ›šÙ³÷YX ýã'Áá\.?&&3$䊴4ÕË \>‘™YèíT\\EÚÑÅ­[…K–D<èho?VRÉ‚zÐó44°mlö—”Tóù()iã¸qÿ{RJzú3oïÄ’’÷+VÀƒk9.—æÌ]».óùØ–-3W­2—’¢âçNÝõêU5•JÿÏøñ’ŽHÔƒ†Ãá-Xðǃ¯¹\¾”uàÀ~7nl{ûö㎠©©-,†ühh¨)é0A·VW×r%&&ÓÀ@ÃÏoþÔ©C##Ó.ðù•J¡Ó¥/^ü:O탠ô0¿ürúüùû<K¥R-úîÒ¥\JŠª¡¡xåÊV ¸KµozГDD¤\Údrr2‹Û¾}®¢"]RŠÏÇλ——WÊåòˆá4šÔ!ý/\Ø OCêS Üãï¿ D‹BˆËå±Ù\(à P©”!Cä䔄—Ë{öìí† ±|>ü^ìC ô yy¥ëÖ'=ÄáðΞ½ûàAi—z< Ã<=ÏKI‘$Ç¿råÑîÝu}T@R ôÕÕ ?ýtŒÇã·öcJ¥zy%À©?ð¹._ÎÏË{ÃåòIÇòùXXXZbbnG$êAw×ÜÌ]¾<êÃ&Gþu/##E¡ ÜÜ×/æuql Gc³9~~I &--¦ lóæSwï¾ìº°€äÀõän ðµk§¤7Q(:]šËår8|:dˆÖÈ‘zffºÃ‡ë¬ W@ûq¹üçÏ+óóßVZZûüyÕóçïž>­zú´ŠÉd#„h4*—Ë×ÖVŽ]®¤?8z¡ýë“zðîÝ»'OžH"*@"#£ôøñmmECCÕAƒ” T´µI/ýõb¦¦_ÛA÷ãÇ«««;$ž>åÃVIÉÇ’’ºW¯>–”|ÔÐ÷ôü^Zº—ÿéS„ö/’ó†S§Níºp@댌j½¼–õåˆ?~ÜQMuH]éã>~l¢P¨pˆÐkˆî_Ðz÷¥£óµçIè@Ð#V¯‡~‚zõBPà @¨SëAqq1Þ¿è 1JKKW­Z…a˜““ƒÁè¼ð¾’˜eÁáÁƒ4íܹsÄðääd™‚‚ümcc£»»ûˆ# Æwß}ÄårÑ­7 ™ŽZÒ6Q(”âââ.›]g‘ÐÀöìAílV0Uôõõ—/_.ôÆÆF77·#F(**Ž7nçÎx~âÓ um0{öl<Äg¾à|•••çÎûêÕ«vOši eáÂ…‚Á®%&“éêê:hÐ 999###6›MLH““›4iR^^Çôøòõ›IPWî_XTTT¶mÛö¹S%%%ÍŸ?¿¢¢"..®‡þ9_„Q£FyzznÚ´©®®!ôñãÇõë×ûøø >!ÔÐÐ0vìØ;wîìÚµ+77×ÃÃ#66vÆŒ<ïËÖÛíÛ·+?Õ± õòåKuuè® ëàYÔ©Íâ9SVV]__?zôh$š­­­½yó&þZ|æ󭨨ÈÈÈàóùNNŸ<\P;³.>>þìÙ³¤£6nܘ››{þüùÒÒÒ£G&''»¹¹c‰½&??ßÈÈhñâÅ}½ÿL@UUÕ7°ŽVTT„ψx!Æœ9sšššÚóIÉ!¾†5776ÌÙÙðuëÖ3¦¥¥ÿŒ««ëäÉ“¹\.1“ÉÔ×׈ˆE›k!TTTôÕË$Ž˜:oî=zôèQ÷i§+Y$èë÷ ¢Y¡­Æçó§L™âíí¿m-?£¢¢ðigÍšåééIŒ‰‰™={6Ѧ˜ÌšoYYBèãÇ¤Ñ -/i¦!„Ö®]«¦¦VYY):•ŠŠJvv6ñጌ ===ÒÖªªªBUUU­®»vëØ¯¯®Ü¿>ûøàÂ… :::x7G§OŸ666nlläóùaaa&&&ŠŠŠ'N¼qã~Œ#æ éÒ¥K£F’——×ÒÒÚµk>ðýû÷ rrr&L@ 0ý{ð•––¦§§—™™I:!…B9v옉‰‰††Æ®]»Nž<9hÐ eee///üÇÍÍ­ÿþšššnnngâĉû÷ïGÕÔÔP©TWWW„ÇSUU½|ù2B¨®®nåÊ•êê꺺º®®®l6[(¢ ºººŽ9òýû÷‚‹€’‘‘‰‰‰9vìXPPPtttLLŒ´´4>Ull¬···””±BÜÝÝãââ¾`½}ÖÆÂÛONN2dˆ¦¦æ¦M›š››Û\^###b‹ˆºzõª¡¡¡ªªjPP±É„fÑÚ|» Òu…È2Gpµ¤§§ûøøèééihh,_¾œø}-:BèâÅ‹ffft:ÝÀÀàäÉ“!.—K:9‘E</88ØØØXQQqÒ¤IwîÜÁ? º±P;öÁäB¡PÖ­[‡g>j%?ÝÜÜbccñ· .üóÏ?±MÇÇÇ/X°€ø°˜Ì‚Ï?%šÛ‚ß8¡LÃýúë¯C‡ÅËPûJJJ‡úðáþvÊ”)¯_¿&DZZZFFFYYÛÎ-ˆZÙ¸ùóçoÙ²ÝÜÜL|·ˆO*⻥µ¥îÄýK°8´óø`ùòå+V¬xûömÿþýïܹƒaXdd¤¦¦fBBBEEÅåË—uuuB¢?o‰õõõ222?ýôSYYžaïÞ½Ã0ìØ±c'OžÄ>-°øëÙ³g_¿~½²²’tB„ƒƒC}}ý‘#GB‹-ª¯¯ŒŒD½ÿðݻwÛÛÛ—––æçç=ÚÃÃÃßßΜ9†%''+))=ðû÷ïÓéôÆÆF Ö.]jeeõâÅ‹üüüaÆùúú F‚ŸjäóùD1À£%àáá $†à_:ÕÕÕB+öŸþQSSû‚õ†ÊËËkøTk omÆŒ………ÙÙÙ†††¾¾¾í\^Ò|@Í;·¾¾þüùóø 'Ekó£‹D×F–9‚«Å×××ÔÔ4??¿  `üøñ®®®­MÅd2eee#""*++=J£Ñ˜Lfpp0éäDíÛ·OpÏÒÖÖÆ·‚èÆÂÚ±&'ùÕyïÞ=¬õüÌÊÊêß¿?>í³gÏ ðàÁ ÃêêêäååñßC‚mŠf>&«õõõÅÅÅ?þøãرc±Vr[ôø@(Óˆ),,”““‹ŽŽÆ>ýö¸råŠŽŽŽ¬¬¬µµupppII‰h$ åååëׯǯ\~Ö$ÝDgΜÑÓÓãóù†%''kkks8œ6“ oVÌRwÞþõ%õ ¶¶VWW×ÌÌŒ˜Ÿ©©iLL ñãÇ‹¯ÍÍÍOŸ>e2™</##ƒH#{{ûššŒ¬äçç‹™!”››‹aXKK‹ÐküC‡%'SSSGŽyÿþ}ƒÑÒÒ²eËOOOiiéÚÚÚàà`|Z)))be%$$ F‚¿vwwG=þœXvbp|>Þ¼yRRRNNN‚+ÈfA·oßVWWÿ‚õ&¦Ò‹n,Á¥À0ììÙ³†††í\^Ò|@¥§§c†Ÿ\.**"é@Ò ]\D×F–9‚ 2dÈ„„|ì“'Oˆ×¢SÕÔÔHKKïÝ»·¶¶–Ïç744ðx¼Ö&'²ÈØØXtÏ"ÝXX;öÁäü‚zðÏ?ÿ¨««Óþç?ÿÙ¾};†a±±±ÖÖÖBm’f>öi®JKK[XX§˜Ds[´ešàL8 ¤¤TZZ*4—ËÍÎÎö÷÷6l˜””T\\œh$!ƒñäÉ1Ût ŠÙq0 kllTPP¸{÷.†aK–,ÁWiãB{‡Ðë²ýë ¯øûûKIIçÚäääòòòˆ±<_0 KNN6779r$~·CQQQCCÃ?ü€­ÄùGÑ ±O‘ô5þI'\ÊÊÊ<¯ÿþYYYcÇŽÍÎÎþî»ï’““mllþøã ÃÞ¼yƒb±Xx;ùùùt:]0üµ¥¥åÔ©SW¬XLpp'OžTVVÎÈÈ ÓéIIIÄð\»vMh­:tÈÜÜüs×ÖÖF¡…·F,ÚÇétz;——´}„Paa¡à 'éÀÖbÆuýõ¡u…‘eŽàj¡Óé¢íˆN…aXffæ‚ &Ožü×_µ6¹`‘îY¤ kk/JNÑœ9uêÔ˜1cð× HMM ,<<|æÌ™Ä´éé醆†|>þüù‘‘‘Bm¶–ùbrU4·EëP¦ ¾àñxød|*&“yúôiâ*ŸÏ÷òòÒÑѤ±±qëÖ­&L æÕÎ-(fÇÁ‡8::º»»3™L"xñI%¤+÷¯/¹¿èÍ›7aaaÓ§Oߺu+>DGGGðfƒ6»¥d±X‹-rssËÍÍ=tè>ðï¿ÿž5kVk“àçI'lüw7¾ÌµµµÙÙÙT*ÕÆÆ&99¹°°pôèÑÓ¦MKMM½yóæœ9sBýû÷—’’zùò…zñâ…ŽŽŽ`$¸‹/FDDœ9sæÆ¢‹PQQ±iÓ¦ààà)S¦øøø¬]»–8¹téÒ€€ân ‡Ó§OïÚµËÁÁás×›x¢ ‡gB¨°°P[[»ËÛÒ B³3°› ]W¢™ƒÇW‹¶¶vII >$//ï÷ßom*‹ÅçóÏ;WSS³zõj[[ÛššÒɳH___tϳ±Ä¿aŽ'?BhéÒ¥þþþD~"„wïÞ-Ø‚¹¹yCCCfffjjªÐ­Pb2¿5íÌm1—Ö¨Tjttµ{½IDATtVVÖálj…rtt$îð¦P(3gÎ$îš$//¿råÊÇcÿ7´s ¶¹-âãã/\¸0fÌü"iãøðÖöµ®Û¿‹C{Žx<ÞôéÓjjj pá ÃvîÜ©©©™””TYY™’’ÒæõƒÚÚZ …’’’‚߃ÊÍÍurr*//Çç"z|@¬;Ñ ±vlÚ´iÁ‚øMrãÇß°a†açÎc0ø¡njj*ƒÁ055%–ÔÑÑÑÊÊêåË—¦¦¦ÞÞÞ­EåããcllÌb±ÏçÏ;ׂÇãaÖÒÒbffæàà€ýøñã!C,--ÿþûïçÏŸ{zz"„455›››?w½á‹)z¿ik‹8²)**º{÷®‘‘~WI{–—¸,UWW×Ú 'Ekó£+H×F–9B›ÞÌ̬     `Ò¤IkÖ¬im*‹E§Óããã«««>L§ÓY,éä‚YtàÀÁ=ËÀÀýû5'´±°¶öÁf1œ)++KOOŸ7ož®®.±Mñü´°°HII),,LHH0554i›Íl|ýúõ&&&–––‚3Ÿù¨•ãÒÜÊ:Òj0<<ÿöÄß®X±ÂØØøÒ¥K/^¼ÈÊÊš0aÂ/¿üB ~¹¾¾þ³¶ é¶Ìü2²‘‘‘ày?ñI…Inÿúìz:bÄü¸&11QKK«¦¦¦¥¥ÅßßРA câĉ§N_0 Û·oŸššÚ7ß|sèÐ!UUUüÄ=®µo^Ñ 555IW™ÐëúúúU«V©ªªöë×ÏÙÙ¿b\WWG£Ñðë]222îîîÄŒjjj–-[Ö¯_?--­_ý•Åbµ‹Å266öôô\„˜˜YYYÁK wïÞ¥R©ñññø[&“¹uëÖaÆÑéôÁƒÿöÛo‹/þ¬õF,>i¥'ÝXxkGŽ8p ººúÆñ´¿¼ÇÜÜœÁ`ˆYÉØ§ù*4‹Öæ+FWÖÒu…‘eŽàja³Ù®®®ÚÚÚÊÊʵµµøpÒ|;{öìàÁƒedd†šœœL:yKK‹`q¹Üàà`CCC…‰'â?$1²…‰Ý(Ož<lû4g¾ù曥K— ÝjIä§¼¼¼©©i`` qÿ+Ñxzz:B?ÅJ Ÿù­ÕŒ,·Û“uB òù|kkkbq¹\___333999}}ýmÛ¶Y'4!ÇSRRzõêÕgmAÒm!ô•åììÌ`0¯‹O*ñ›²S÷/’ç£}ýópŠ‹‹Eÿ¾ÚÔÒÒ’››‹ßc×yº`ëÎâ æ‹Ÿéç£uH;t·AÿE݈ŒŒLgh Ôƒ>GIIiíÚµ]?‹.˜/}Açí_r¾€ç‹èD±Ùl¡ž¿¾¦)Hl‰î_$õï€î £êÞÍ}‡4@¯!´Q W ®ÀA=€Ô8¨Bèÿб¹àF‡æIEND®B`‚XQilla-2.3.0/docs/dom3-api/inherit_graph_34.md50000644000151400015140000000004011653571065015727 00000000000000c275709a5f6cd65d711fa4720000f0ffXQilla-2.3.0/docs/dom3-api/DOMDocumentRange_8hpp.html0000644000151400015140000000563611653571066017130 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMDocumentRange.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
Include dependency graph for DOMDocumentRange.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMDocumentRange

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/StDOMNode_8hpp__incl.map0000644000151400015140000000003511653571065016531 00000000000000 XQilla-2.3.0/docs/dom3-api/XQillaExpression_8hpp.html0000644000151400015140000000776211653571066017311 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

XQillaExpression.hpp File Reference

#include <xqilla/framework/XQillaExport.hpp>
#include <xqilla/dom-api/XPath2Result.hpp>
#include <xqilla/runtime/Sequence.hpp>
#include <xercesc/dom/DOMException.hpp>
#include <xercesc/dom/DOMNode.hpp>
#include <xercesc/dom/DOMXPathExpression.hpp>
#include <xercesc/dom/DOMXPathException.hpp>
#include <xqilla/dom-api/XPath2Result.hpp>
Include dependency graph for XQillaExpression.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  XQillaExpression
 The XQillaExpression interface extends the DOMXPathExpression interface, providing the ability to release the object. More...
XQilla-2.3.0/docs/dom3-api/DOMXPathNSResolver_8hpp_source.html0000644000151400015140000002270011653571065020752 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMXPathNSResolver.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMXPathNSResolver.hpp 698579 2008-09-24 14:13:08Z borisk $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMXPATHNSRESOLVER_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMXPATHNSRESOLVER_HPP
00024 
00025 #include <xercesc/util/XercesDefs.hpp>
00026 
00027 XERCES_CPP_NAMESPACE_BEGIN
00036 class CDOM_EXPORT DOMXPathNSResolver
00037 {
00038 
00039 protected:
00040     // -----------------------------------------------------------------------
00041     //  Hidden constructors
00042     // -----------------------------------------------------------------------
00045     DOMXPathNSResolver() {};
00047 
00048 private:
00049     // -----------------------------------------------------------------------
00050     // Unimplemented constructors and operators
00051     // -----------------------------------------------------------------------
00054     DOMXPathNSResolver(const DOMXPathNSResolver &);
00055     DOMXPathNSResolver& operator = (const  DOMXPathNSResolver&);
00057 
00058 public:
00059     // -----------------------------------------------------------------------
00060     //  All constructors are hidden, just the destructor is available
00061     // -----------------------------------------------------------------------
00068     virtual ~DOMXPathNSResolver() {};
00070 
00071     // -----------------------------------------------------------------------
00072     // Virtual DOMDocument interface
00073     // -----------------------------------------------------------------------
00076 
00083     virtual const XMLCh*          lookupNamespaceURI(const XMLCh* prefix) const = 0;
00085 
00086 
00087     // -----------------------------------------------------------------------
00088     // Non-standard extension
00089     // -----------------------------------------------------------------------
00092 
00102     virtual const XMLCh*          lookupPrefix(const XMLCh* URI) const = 0;
00103 
00114     virtual void addNamespaceBinding(const XMLCh* prefix, const XMLCh* uri) = 0;
00115 
00123     virtual void release() = 0;
00124 
00126 };
00127 
00128 XERCES_CPP_NAMESPACE_END
00129 
00130 #endif
XQilla-2.3.0/docs/dom3-api/XQillaPlatformUtils_8hpp__dep__incl.png0000644000151400015140000000742211653571065021722 00000000000000‰PNG  IHDR¨uU‰=bKGDÿÿÿ ½§“ÇIDATxœíyPS×À¿*‹€ÐÐ@Z XlKµNÇ¡¶¶4HQjµuØ—X ΀µ,E_ںТ¢À°‰àÔ>6EJ‡EiçYdXžŠ`Y^…€¢‚†%{îûãöå¥$BОóûëäËY¾{¹çn¹ … À ‡ž®Àè,Q°xDÁâ…¦übýúõºÊ3TWW+Êå£z …²bÅ ƒ¡‹¬0sÈàà`{{»²kÚ„ï¼óμ&…™{êêê¾üòKåÞÇ# (X<¢`ñˆ‚Å#ŠvâïܹÃápêêê‘«W¯®_¿¾»»›|) ³²²‚ƒƒ7lØžŸŸ/“É€Çã9;;«-L†³îîî»wï˜NCA8p`Æ Z-£æ”x<žæh³ŒSv5wh'ÞÎÎÎßß?55uttÆÆÆ’““¹\®­­-Œoß¾½½½=44ôĉ¾¾¾ÕÕÕ111r¹ÜÈÈÈÇÇGÛäÒÒÒŠ‹‹‹ŠŠŽ?NZœ²ÉÀÀÀæÍ›Éò£GjjjNŸ>­í¸3@yÜ™-ì<£õT`bb’••ÙÙÙæææÞÞÞä[gΜ155MNN^³f ‹Åzë­·233***LLLBCCµËÔÔtéÒ¥æææl6;::º­­m||\s¹\ÎçóɲH$€ù¹¥<îÌvžÑZ-Zäíí]SS£yÒ«¯¯ÿä“OÜÜܶnÝZPP >Q== wîØ±>úè£ eMLLܼy³‡‡GFF†X,&³jiiñòòjmmuvv®¬¬är¹[¶l)((¨ªªòññqwwÏÍÍrµ(¥vaùå—àà`WWW__ߪª*µ455ùùùmÚ´)??_ÑÏÕ«W>üðÃÔÔT‰D¢68ezªÌäàÎÞÞÞËË+'''00ÐÆÆ† ŽŽŽ ±Ùì •íììzzz4ô6>>¾oß>;;»sçÎ…‡‡Ÿ8qâñãÇä[B¡P Œ÷÷÷;vlùòåÆÆÆš¦§§@II (—àøñã<ÈÌÌüæ›o Éø÷ßgggÍÍÍ䮪¾¾þäÉ“ááágÏžUlÍ“1a¬ …„„„-[¶|÷Ýwß~û­P(T­ÖÐÐpâÄ‰ØØØœœňeee‡:xð`CCƒb«PÔŠ™ˆ'â·ß~ÓÓÓ»{÷î„·(Šjeå9@:~òäÉÈÈHsssrZ#ß Ù¸q£»»;—Ëåóù{÷îfCU¤RéåË—#""˜L¦­­íǬ¸cºjÕªE‹€———««+øúú¸¹¹ÀÈÈÈÔëer$ A€N§»¹¹•——?õÔSªÕÈÑß|óMåÃÃÃY,–ƒƒCHHˆ"gµA­˜x­~:ÔÔÔ\¿~=999&&æí·ß^»v--]º´³³óµ×^S®ÜÙÙùÜsÏiÊ€Fëëë;|ø°@ 7;çγ¶¶žACU†‡‡år¹••ùÒÚÚúÁƒdY9=²ç eÊ÷9¦ÿ­5ccãää䢢¢¼¼<{{{__ß5kÖ¨V377•‡Åb)òTä¬6¨Zoñ=JMM sttär¹GŽQLJ...gΜ‘Ëåä˯¿þº¶¶¶  €ÃáhèP$%$$x{{gggúé§ÓÏD«†fffzzzä !ô÷÷[XXå j5À`0”ϸîÞ½K¥R§sð(‰äryBBByyùÆ÷ìÙ£v Q/ ¯¯,ôöö’ŸŒÉ‚Z¡x‚ Ž9bkkëîîžžžfff)))ä»\.whh(::º±±±¯¯Édîß¿_,“•'C"‘H¥R&‹óòò`ÊC÷) ‚ •i4š³³sJJÊÀÀ@OOÏÉ“']\\´ZvpssKII©¯¯hii9pà€«««¾¾¾¢‚ê¸$ %&&æçŸ“H$4œê+**4ìžHÒÒÒx<Þ¯¿þš““£øÂ„Ú Vh7ÕWUU555åææ’ŸM³cÇŽuëÖ­[·ÎÀÀ ;;;///##ƒÇãYXXøûû·¶¶ŒŒÂÃÃ÷ïß¿xñb___‡Z:e2j½òÊ+[·nýá‡&Ôß¹sgZZZXX˜¾¾þ»ï¾ëçç§í$¸xñ⌌Œû÷ï›››s8ò­gžyf²q€N§ïÞ½;++kppÐÊÊ*>>žN§ÀáÇW®\ihh¨aP—¨¨(¡PÈáp9Ojµ$¿ˆ?»÷ã¥RiGGÇŠ+f±ODàñxþþþW®\™28%äýxe×s~­žF£aë |“fábhh¸iÓ¦ég¿p155ýì³Ï¦œX<¢`ñˆ‚Å# (X<¢ +þáCÁ£G꯰¢ÀÄ+w¶¶¶fff:LhÞe€‘QŸ®™†‡‡»»»'}„ÊÃÃcÞSÒÍÍ …bkK×u"óÄêÕ«•_RÐü)”Û·û9œ$¨­up`ê:€è>þâÅë4šF-/¿®ë\tŠâ ‚(,lJåR©¬°ðšsŠâ›šþ38øû·†îßç77ÿG§éèÅ—•µèëSɲ¾>µ´ôߺÍG' '^*•—”4K$¿?_"‘•”4I¥rÝf5ÿ 'þ_ÿêxòäßiòDxõê]å£+_ZÚL£ýa©i4JII³®òÑh‰ %—.ÝJÿð–T*¿té†P8“‘þº %¾¦¦](”ªÆ…BImmûüç£CÐ_\ÜD¥ªyhJ¥£5Û#$~dDxùòmµðR©¼¶¶}tT4ÿYé „ÄWV¶*ÎâT‘Hd••7ç3Ý‚ÐMšáá1>ÿÿ'rÿøG 8ð‘"²dÉ"33Mµü˜ÉÓ²QÌÌ •½Ò`Ù²™ŸN§õõõ;w•‡8zô¨r‡VVVdC???‡ÓÕÕuóæÍ—_~9!!¼ÀìããÃçósrrÀÓÓ“ÏçgeeÀÇ}J¥R·k×.ww÷ Kï¿ÿ>ŸÏ/..&[‘©ºººvtt\»vÍf'$$¨ N¹º`®ÕëFüðð0‹ÅrttT,öK/½têÔ)E…Ó§Ok/‰nß¾=::*“É~úé'²²òöööªŠÅb*•zëÖ-2XRRÂf³ ‚€––‚ Äbñ„²r·III`ddÔÓÓ3a‰ ®®Ž ™LF¶"S½yó¦bͰÙlµÁ)W×\ˆ×Í>ÞÔÔ444´­­-<<œŒtww¯\¹RQÁÑÑQst:½££ÃÍÍmõêÕ§NRÄ)ÿ£··WµÃû÷ïËd²^x ²Ùì¾¾ßÿ?ÞØØôõõ'”•‰ŽŽîïï ñóóSM‰œTôôþ°JíììÈ‹/¾¨KmpžÑøÞÞÞ´´4—¨¨(2bmm}ãÆ E…¶¶6Í=OOϘ˜˜–––ôôtE\ñ‰~þùçU;´´´¤R©ÝÝÝd°««ËÚzZ÷ã·mÛvýúu`2™­­­ªuÔŽ›8tttŸŒÉ‚óŒÄËåò   ˆˆˆÂšššòòr Љ‰¹pá½{÷~üñǸ¸8͈D"±XL§ÓA||<ŒŒŒ(W Sîpß¾} ¯¯ïååÙÓÓsëÖ­/¾øBí¶«ŠL&‹íèèèïï?vìØo¼999Ož<ÑÜpçÎ{öìñ÷÷לofwÏ1}|jjꫯ¾*‹ ‚(--e2™CCCb±ø«¯¾²±±122rrr*((ûx‚ Ž=ºtéÒgŸ}6==ÝÇLJÁ`("•J“’’Øl¶¡¡¡““Óµk×ȆCCCæææL&s×®]€ PÚ—«-ŒŒp¹\‹µdÉ’>ø ··wÊVdª999Ë–-³°°ˆˆˆjƒS®UøÛÜM‰²à¿(jafË5âôÌÜÅÏK–,Ù¾}ût‚:aŠWœ^ÿua0™™™Ó ê„*3×`ñˆ‚Å# (X<¢ÌÉ“4ÙÙÙsÑ-f™ñ äT£„þ?£ ÞÇ# (X<¢`ñˆò_£×¨2¤óIEND®B`‚XQilla-2.3.0/docs/dom3-api/inherit_graph_25.map0000644000151400015140000000023011653571066016021 00000000000000 XQilla-2.3.0/docs/dom3-api/classXQillaAllocator-members.html0000644000151400015140000001636311653571065020605 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

XQillaAllocator< _Tp > Member List

This is the complete list of members for XQillaAllocator< _Tp >, including all inherited members.
_memMgrXQillaAllocator< _Tp >
_singletonXQillaAllocator< _Tp >
allocate(size_t _n, const void *=0)XQillaAllocator< _Tp > [inline]
const_pointer typedefXQillaAllocator< _Tp >
const_reference typedefXQillaAllocator< _Tp >
construct(pointer _p, const_reference _v)XQillaAllocator< _Tp > [inline]
deallocate(void *_p, size_t _n)XQillaAllocator< _Tp > [inline]
destroy(pointer _p)XQillaAllocator< _Tp > [inline]
difference_type typedefXQillaAllocator< _Tp >
max_size() const XQillaAllocator< _Tp > [inline]
max_size(size_type) const XQillaAllocator< _Tp > [inline]
operator!=(const XQillaAllocator< _Tp > &o) const XQillaAllocator< _Tp > [inline]
operator!=(XQillaAllocator< _Tp > &o)XQillaAllocator< _Tp > [inline]
operator==(const XQillaAllocator< _Tp > &o) const XQillaAllocator< _Tp > [inline]
pointer typedefXQillaAllocator< _Tp >
reference typedefXQillaAllocator< _Tp >
size_type typedefXQillaAllocator< _Tp >
value_type typedefXQillaAllocator< _Tp >
XQillaAllocator()XQillaAllocator< _Tp > [inline]
XQillaAllocator(xercesc::MemoryManager *memMgr)XQillaAllocator< _Tp > [inline]
XQillaAllocator(const XQillaAllocator< _Tp > &o)XQillaAllocator< _Tp > [inline]
XQilla-2.3.0/docs/dom3-api/inherit_graph_6.png0000644000151400015140000000411611653571066015756 00000000000000‰PNG  IHDRÀ('©b¿bKGDÿÿÿ ½§“IDATxœí›{HSoÇßµf6ó¶©S³e(jv1ÉŒPK‰À¼… - Ê襃¤R± ™a”VXh¤IZŠš!˜¥²2“rm« 55-MkǶ³¦Óíüþxáp:s«ó½{÷V®\ÉårÏž=K6U^^¾bÅ ;;»sçÎôz}~~¾P(´¶¶^¿~}GG-ù5úa³@|O|||||<ñ#’““wîÜ9::Êçó;:: 1///66öýû÷2™,00ðèÑ£===€¨¨¨‡æääøøøÈd2¹\”‘‘a* ÇñE‹]¹reddäúõë .ÄqŸc»»»œœººº`Z.—ûùóg2'@*•ª¿‡ j¿R©”ã8.‰ÂÂÂúúúd2™¯¯oNNÕÇqãœät*•ÊÂÂ"55uxxJ|ll –‡aXqq1àË—/<¯ººúãÇ ...0 ¹Ðæ×Çq3‹>«6æ( Ã\]]ýüürrrH£··÷ÈÈ755Àâd2AË—/¯®®†g_¿~MŽ£”J%‡Ã9þ<†aƒA­VëõzSᦘƒ€ÚÛÛÈØýû÷gffQVVAÍiê¥Hí—:Öétl6[¡PÀ‰ª««½¼¼¨¦rÂ馦¦Þ¼yƒã¸^¯omm¥–ñèÑ#˜…Baii)ÙÑ7h2¿Fæù?DDnn.›Íþôéi±´´¤6occ‹Óétð¬\.7ÎcE„D"‰‹‹³²²Ú°aÃýû÷Í„›ÂX@·nÝZµj;99555ÑB._¾¼eË2¶¥¥ÅËËË`0DGG_½z•ø^@´äj¿ÔñÐÐ@«ÕB7™LfiiIu˜5'ÕR[[’’B-ãíÛ·TçÅ‹K¥R2CWWM@æ×È<³jcŽÑCCC—.] OOO'dÆ=}úÚ9ÀÅÅe``Z¤RééÓ§MEiµZƒÁPUU¥T*wïÞ½mÛ6¥Ri*ü'úغu+<‰D¹¹¹ä{.€F£ÉËË‹ŒŒ$-!!!jµZ"‘455EGGÿü\°_ê˜Ïç³ÙìwïÞAc__Ÿ@ 0v6…V«MHH‹Å/^¼(**¢žZ°à»ôðð ¾y|õê-•ù5šsÁ`HMM=xð`EEŃêëë¡=&&&33sppP&“EFFR£’’’Ž;¦P( ÅME±X¬Í›7ß½{W¥Rét:‡ÃårM…ýúõÚµkÆcÀøøøèèè‡Z[[·oßÞßßäÈx*++kll,,,¬±±±§§§¦¦&((H ìÛ· g³Ù±±±{÷î]»v-Ç£]˜œŠ™+ÆápvìØqèСþþ~…Bqüøq‘Hôó|jjJ§ÓYXXhµÚììl|B2&--M,×ÖÖŽŽŽ666feeÑ̯Ñ\ø™mŠÆÅ‹ýýýá¦WSSãìì¬T* ‚P©T)))¶¶¶ööö{öìÑh4ÔÍsrr2##ÃÅÅÅÆÆ&11Ã0h7Ž"âöíÛK—.µ°°ðöö®­­5N‚:¦öèææ&‰¨w[‚ pOOO÷õõår¹>>>§Núöí _¦---€ÂÂBšÝÔ•4U AJ¥2))ÉÞÞÞÙÙùðáÃZ­–æÌÞ ìììÜÜÜŠŠŠy<ÍŽgffòóó½¼¼¬¬¬‚ƒƒáCÈü™gVm°h—þæýaÌ¬Úø—?HDÌH@F !„`‚H@F !„`‚³ü3µ­­-""bþKAüáÈåòÐÐPš‘. uëÖÍW=ˆ¿ŒÐÐPcyп C ~ ô „`‚H@F !ñÃTkÍe"B–IEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMAttr_8hpp__incl.map0000644000151400015140000000003511653571065016247 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMError_8hpp__incl.md50000644000151400015140000000004011653571065016332 00000000000000c755489d9dded024247323b2a98cfb56XQilla-2.3.0/docs/dom3-api/DOMText_8hpp__incl.map0000644000151400015140000000003511653571065016261 00000000000000 XQilla-2.3.0/docs/dom3-api/functions_func_0x70.html0000644000151400015140000001161311653571065016666 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
 

- p -

XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMElement.html0000644000151400015140000022017511653571066020067 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMElement Class Reference

By far the vast majority of objects (apart from text) that authors encounter when traversing a document are DOMElement nodes. More...

#include <DOMElement.hpp>

Inheritance diagram for xercesc::DOMElement:

List of all members.

Public Member Functions

Destructor
virtual ~DOMElement ()
 Destructor.
Functions introduced in DOM Level 1
virtual const XMLCh * getTagName () const =0
 The name of the element.
virtual const XMLCh * getAttribute (const XMLCh *name) const =0
 Retrieves an attribute value by name.
virtual DOMAttrgetAttributeNode (const XMLCh *name) const =0
 Retrieves an DOMAttr node by name.
virtual DOMNodeListgetElementsByTagName (const XMLCh *name) const =0
 Returns a DOMNodeList of all descendant elements with a given tag name, in the order in which they would be encountered in a preorder traversal of the DOMElement tree.
virtual void setAttribute (const XMLCh *name, const XMLCh *value)=0
 Adds a new attribute.
virtual DOMAttrsetAttributeNode (DOMAttr *newAttr)=0
 Adds a new attribute.
virtual DOMAttrremoveAttributeNode (DOMAttr *oldAttr)=0
 Removes the specified attribute node.
virtual void removeAttribute (const XMLCh *name)=0
 Removes an attribute by name.
Functions introduced in DOM Level 2.
virtual const XMLCh * getAttributeNS (const XMLCh *namespaceURI, const XMLCh *localName) const =0
 Retrieves an attribute value by local name and namespace URI.
virtual void setAttributeNS (const XMLCh *namespaceURI, const XMLCh *qualifiedName, const XMLCh *value)=0
 Adds a new attribute.
virtual void removeAttributeNS (const XMLCh *namespaceURI, const XMLCh *localName)=0
 Removes an attribute by local name and namespace URI.
virtual DOMAttrgetAttributeNodeNS (const XMLCh *namespaceURI, const XMLCh *localName) const =0
 Retrieves an DOMAttr node by local name and namespace URI.
virtual DOMAttrsetAttributeNodeNS (DOMAttr *newAttr)=0
 Adds a new attribute.
virtual DOMNodeListgetElementsByTagNameNS (const XMLCh *namespaceURI, const XMLCh *localName) const =0
 Returns a DOMNodeList of all the DOMElements with a given local name and namespace URI in the order in which they would be encountered in a preorder traversal of the DOMDocument tree, starting from this node.
virtual bool hasAttribute (const XMLCh *name) const =0
 Returns true when an attribute with a given name is specified on this element or has a default value, false otherwise.
virtual bool hasAttributeNS (const XMLCh *namespaceURI, const XMLCh *localName) const =0
 Returns true when an attribute with a given local name and namespace URI is specified on this element or has a default value, false otherwise.
Functions introduced in DOM Level 3
virtual void setIdAttribute (const XMLCh *name, bool isId)=0
 If the parameter isId is true, this method declares the specified attribute to be a user-determined ID attribute.
virtual void setIdAttributeNS (const XMLCh *namespaceURI, const XMLCh *localName, bool isId)=0
 If the parameter isId is true, this method declares the specified attribute to be a user-determined ID attribute.
virtual void setIdAttributeNode (const DOMAttr *idAttr, bool isId)=0
 If the parameter isId is true, this method declares the specified attribute to be a user-determined ID attribute.
virtual const DOMTypeInfogetSchemaTypeInfo () const =0
 Returns the type information associated with this element.
Functions introduced in the ElementTraversal specification (http://www.w3.org/TR/2008/REC-ElementTraversal-20081222/)
virtual DOMElementgetFirstElementChild () const =0
 The first child of type DOMElement.
virtual DOMElementgetLastElementChild () const =0
 The last child of type DOMElement.
virtual DOMElementgetPreviousElementSibling () const =0
 The previous sibling node of type DOMElement.
virtual DOMElementgetNextElementSibling () const =0
 The next sibling node of type DOMElement.
virtual XMLSize_t getChildElementCount () const =0
 The number of child nodes that are of type DOMElement.

Protected Member Functions

Hidden constructors
 DOMElement ()
 DOMElement (const DOMElement &other)

Detailed Description

By far the vast majority of objects (apart from text) that authors encounter when traversing a document are DOMElement nodes.

Assume the following XML document:<elementExample id="demo"> <subelement1/> <subelement2><subsubelement/></subelement2> </elementExample>

When represented using DOM, the top node is an DOMElement node for "elementExample", which contains two child DOMElement nodes, one for "subelement1" and one for "subelement2". "subelement1" contains no child nodes.

Elements may have attributes associated with them; since the DOMElement interface inherits from DOMNode, the generic DOMNode interface method getAttributes may be used to retrieve the set of all attributes for an element. There are methods on the DOMElement interface to retrieve either an DOMAttr object by name or an attribute value by name. In XML, where an attribute value may contain entity references, an DOMAttr object should be retrieved to examine the possibly fairly complex sub-tree representing the attribute value. On the other hand, in HTML, where all attributes have simple string values, methods to directly access an attribute value can safely be used as a convenience.

Since:
DOM Level 1

It also defines the ElementTraversal helper interface defined by http://www.w3.org/TR/2008/REC-ElementTraversal-20081222/


Constructor & Destructor Documentation

xercesc::DOMElement::DOMElement ( ) [inline, protected]
xercesc::DOMElement::DOMElement ( const DOMElement other) [inline, protected]
virtual xercesc::DOMElement::~DOMElement ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual const XMLCh* xercesc::DOMElement::getAttribute ( const XMLCh *  name) const [pure virtual]

Retrieves an attribute value by name.

Parameters:
nameThe name of the attribute to retrieve.
Returns:
The DOMAttr value as a string, or the empty string if that attribute does not have a specified or default value.
Since:
DOM Level 1
virtual DOMAttr* xercesc::DOMElement::getAttributeNode ( const XMLCh *  name) const [pure virtual]

Retrieves an DOMAttr node by name.

Parameters:
nameThe name (nodeName) of the attribute to retrieve.
Returns:
The DOMAttr node with the specified name (nodeName) or null if there is no such attribute.
Since:
DOM Level 1
virtual DOMAttr* xercesc::DOMElement::getAttributeNodeNS ( const XMLCh *  namespaceURI,
const XMLCh *  localName 
) const [pure virtual]

Retrieves an DOMAttr node by local name and namespace URI.

Parameters:
namespaceURIThe namespace URI of the attribute to retrieve.
localNameThe local name of the attribute to retrieve.
Returns:
The DOMAttr node with the specified attribute local name and namespace URI or null if there is no such attribute.
Since:
DOM Level 2
virtual const XMLCh* xercesc::DOMElement::getAttributeNS ( const XMLCh *  namespaceURI,
const XMLCh *  localName 
) const [pure virtual]

Retrieves an attribute value by local name and namespace URI.

Parameters:
namespaceURIThe namespace URI of the attribute to retrieve.
localNameThe local name of the attribute to retrieve.
Returns:
The DOMAttr value as a string, or an null if that attribute does not have a specified or default value.
Since:
DOM Level 2
virtual XMLSize_t xercesc::DOMElement::getChildElementCount ( ) const [pure virtual]

The number of child nodes that are of type DOMElement.

Note: the count is computed every time this function is invoked

Returns:
The number of DOMElement objects that are direct children of this object (nested elements are not counted), or 0 if there is none.
virtual DOMNodeList* xercesc::DOMElement::getElementsByTagName ( const XMLCh *  name) const [pure virtual]

Returns a DOMNodeList of all descendant elements with a given tag name, in the order in which they would be encountered in a preorder traversal of the DOMElement tree.

Parameters:
nameThe name of the tag to match on. The special value "*" matches all tags.
Returns:
A list of matching DOMElement nodes.
Since:
DOM Level 1
virtual DOMNodeList* xercesc::DOMElement::getElementsByTagNameNS ( const XMLCh *  namespaceURI,
const XMLCh *  localName 
) const [pure virtual]

Returns a DOMNodeList of all the DOMElements with a given local name and namespace URI in the order in which they would be encountered in a preorder traversal of the DOMDocument tree, starting from this node.

Parameters:
namespaceURIThe namespace URI of the elements to match on. The special value "*" matches all namespaces.
localNameThe local name of the elements to match on. The special value "*" matches all local names.
Returns:
A new DOMNodeList object containing all the matched DOMElements.
Since:
DOM Level 2
virtual DOMElement* xercesc::DOMElement::getFirstElementChild ( ) const [pure virtual]

The first child of type DOMElement.

Returns:
The DOMElement object that is the first element node among the child nodes of this node, or null if there is none.
virtual DOMElement* xercesc::DOMElement::getLastElementChild ( ) const [pure virtual]

The last child of type DOMElement.

Returns:
The DOMElement object that is the last element node among the child nodes of this node, or null if there is none.
virtual DOMElement* xercesc::DOMElement::getNextElementSibling ( ) const [pure virtual]

The next sibling node of type DOMElement.

Returns:
The DOMElement object that is the next sibling element node in document order, or null if there is none.
virtual DOMElement* xercesc::DOMElement::getPreviousElementSibling ( ) const [pure virtual]

The previous sibling node of type DOMElement.

Returns:
The DOMElement object that is the previous sibling element node in document order, or null if there is none.
virtual const DOMTypeInfo* xercesc::DOMElement::getSchemaTypeInfo ( ) const [pure virtual]

Returns the type information associated with this element.

Returns:
the DOMTypeInfo associated with this element
Since:
DOM level 3
virtual const XMLCh* xercesc::DOMElement::getTagName ( ) const [pure virtual]

The name of the element.

For example, in: <elementExample id="demo"> ... </elementExample> , tagName has the value "elementExample". Note that this is case-preserving in XML, as are all of the operations of the DOM.

Since:
DOM Level 1
virtual bool xercesc::DOMElement::hasAttribute ( const XMLCh *  name) const [pure virtual]

Returns true when an attribute with a given name is specified on this element or has a default value, false otherwise.

Parameters:
nameThe name of the attribute to look for.
Returns:
true if an attribute with the given name is specified on this element or has a default value, false otherwise.
Since:
DOM Level 2
virtual bool xercesc::DOMElement::hasAttributeNS ( const XMLCh *  namespaceURI,
const XMLCh *  localName 
) const [pure virtual]

Returns true when an attribute with a given local name and namespace URI is specified on this element or has a default value, false otherwise.

HTML-only DOM implementations do not need to implement this method.

Parameters:
namespaceURIThe namespace URI of the attribute to look for.
localNameThe local name of the attribute to look for.
Returns:
true if an attribute with the given local name and namespace URI is specified or has a default value on this element, false otherwise.
Since:
DOM Level 2
virtual void xercesc::DOMElement::removeAttribute ( const XMLCh *  name) [pure virtual]

Removes an attribute by name.

If the removed attribute is known to have a default value, an attribute immediately appears containing the default value as well as the corresponding namespace URI, local name, and prefix when applicable.
To remove an attribute by local name and namespace URI, use the removeAttributeNS method.

Parameters:
nameThe name of the attribute to remove.
Exceptions:
DOMExceptionNO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
Since:
DOM Level 1
virtual DOMAttr* xercesc::DOMElement::removeAttributeNode ( DOMAttr oldAttr) [pure virtual]

Removes the specified attribute node.

If the removed DOMAttr has a default value it is immediately replaced. The replacing attribute has the same namespace URI and local name, as well as the original prefix, when applicable.

Parameters:
oldAttrThe DOMAttr node to remove from the attribute list.
Returns:
The DOMAttr node that was removed.
Exceptions:
DOMExceptionNO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
NOT_FOUND_ERR: Raised if oldAttr is not an attribute of the element.
Since:
DOM Level 1
virtual void xercesc::DOMElement::removeAttributeNS ( const XMLCh *  namespaceURI,
const XMLCh *  localName 
) [pure virtual]

Removes an attribute by local name and namespace URI.

If the removed attribute has a default value it is immediately replaced. The replacing attribute has the same namespace URI and local name, as well as the original prefix.

Parameters:
namespaceURIThe namespace URI of the attribute to remove.
localNameThe local name of the attribute to remove.
Exceptions:
DOMExceptionNO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
Since:
DOM Level 2
virtual void xercesc::DOMElement::setAttribute ( const XMLCh *  name,
const XMLCh *  value 
) [pure virtual]

Adds a new attribute.

If an attribute with that name is already present in the element, its value is changed to be that of the value parameter. This value is a simple string, it is not parsed as it is being set. So any markup (such as syntax to be recognized as an entity reference) is treated as literal text, and needs to be appropriately escaped by the implementation when it is written out. In order to assign an attribute value that contains entity references, the user must create an DOMAttr node plus any DOMText and DOMEntityReference nodes, build the appropriate subtree, and use setAttributeNode to assign it as the value of an attribute.

Parameters:
nameThe name of the attribute to create or alter.
valueValue to set in string form.
Exceptions:
DOMExceptionINVALID_CHARACTER_ERR: Raised if the specified name contains an illegal character.
NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
Since:
DOM Level 1
virtual DOMAttr* xercesc::DOMElement::setAttributeNode ( DOMAttr newAttr) [pure virtual]

Adds a new attribute.

If an attribute with that name (nodeName) is already present in the element, it is replaced by the new one.

Parameters:
newAttrThe DOMAttr node to add to the attribute list.
Returns:
If the newAttr attribute replaces an existing attribute, the replaced DOMAttr node is returned, otherwise null is returned.
Exceptions:
DOMExceptionWRONG_DOCUMENT_ERR: Raised if newAttr was created from a different document than the one that created the element.
NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
INUSE_ATTRIBUTE_ERR: Raised if newAttr is already an attribute of another DOMElement object. The DOM user must explicitly clone DOMAttr nodes to re-use them in other elements.
Since:
DOM Level 1
virtual DOMAttr* xercesc::DOMElement::setAttributeNodeNS ( DOMAttr newAttr) [pure virtual]

Adds a new attribute.

If an attribute with that local name and namespace URI is already present in the element, it is replaced by the new one.

Parameters:
newAttrThe DOMAttr node to add to the attribute list.
Returns:
If the newAttr attribute replaces an existing attribute with the same local name and namespace URI, the replaced DOMAttr node is returned, otherwise null is returned.
Exceptions:
DOMExceptionWRONG_DOCUMENT_ERR: Raised if newAttr was created from a different document than the one that created the element.
NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
INUSE_ATTRIBUTE_ERR: Raised if newAttr is already an attribute of another DOMElement object. The DOM user must explicitly clone DOMAttr nodes to re-use them in other elements.
Since:
DOM Level 2
virtual void xercesc::DOMElement::setAttributeNS ( const XMLCh *  namespaceURI,
const XMLCh *  qualifiedName,
const XMLCh *  value 
) [pure virtual]

Adds a new attribute.

If an attribute with the same local name and namespace URI is already present on the element, its prefix is changed to be the prefix part of the qualifiedName, and its value is changed to be the value parameter. This value is a simple string, it is not parsed as it is being set. So any markup (such as syntax to be recognized as an entity reference) is treated as literal text, and needs to be appropriately escaped by the implementation when it is written out. In order to assign an attribute value that contains entity references, the user must create an DOMAttr node plus any DOMText and DOMEntityReference nodes, build the appropriate subtree, and use setAttributeNodeNS or setAttributeNode to assign it as the value of an attribute.

Parameters:
namespaceURIThe namespace URI of the attribute to create or alter.
qualifiedNameThe qualified name of the attribute to create or alter.
valueThe value to set in string form.
Exceptions:
DOMExceptionINVALID_CHARACTER_ERR: Raised if the specified qualified name contains an illegal character.
NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
NAMESPACE_ERR: Raised if the qualifiedName is malformed, if the qualifiedName has a prefix and the namespaceURI is null or an empty string, if the qualifiedName has a prefix that is "xml" and the namespaceURI is different from "http://www.w3.org/XML/1998/namespace", if the qualifiedName has a prefix that is "xmlns" and the namespaceURI is different from "http://www.w3.org/2000/xmlns/", or if the qualifiedName is "xmlns" and the namespaceURI is different from "http://www.w3.org/2000/xmlns/".
Since:
DOM Level 2
virtual void xercesc::DOMElement::setIdAttribute ( const XMLCh *  name,
bool  isId 
) [pure virtual]

If the parameter isId is true, this method declares the specified attribute to be a user-determined ID attribute.

This affects the value of DOMAttr::isId and the behavior of DOMDocument::getElementById, but does not change any schema that may be in use, in particular this does not affect the DOMAttr::getSchemaTypeInfo of the specified DOMAttr node. Use the value false for the parameter isId to undeclare an attribute for being a user-determined ID attribute. To specify an DOMAttr by local name and namespace URI, use the setIdAttributeNS method.

Parameters:
nameThe name of the DOMAttr.
isIdWhether the attribute is of type ID.
Exceptions:
DOMExceptionNO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
NOT_FOUND_ERR: Raised if the specified node is not an DOMAttr of this element.
Since:
DOM Level 3
virtual void xercesc::DOMElement::setIdAttributeNode ( const DOMAttr idAttr,
bool  isId 
) [pure virtual]

If the parameter isId is true, this method declares the specified attribute to be a user-determined ID attribute.

This affects the value of DOMAttr::isId and the behavior of DOMDocument::getElementById, but does not change any schema that may be in use, in particular this does not affect the DOMAttr::getSchemaTypeInfo of the specified DOMAttr node. Use the value false for the parameter isId to undeclare an attribute for being a user-determined ID attribute.

Parameters:
idAttrThe DOMAttr node.
isIdWhether the attribute is of type ID.
Exceptions:
DOMExceptionNO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
NOT_FOUND_ERR: Raised if the specified node is not an DOMAttr of this element.
Since:
DOM Level 3
virtual void xercesc::DOMElement::setIdAttributeNS ( const XMLCh *  namespaceURI,
const XMLCh *  localName,
bool  isId 
) [pure virtual]

If the parameter isId is true, this method declares the specified attribute to be a user-determined ID attribute.

This affects the value of DOMAttr::isId and the behavior of DOMDocument::getElementById, but does not change any schema that may be in use, in particular this does not affect the DOMAttr::getSchemaTypeInfo of the specified DOMAttr node. Use the value false for the parameter isId to undeclare an attribute for being a user-determined ID attribute.

Parameters:
namespaceURIThe namespace URI of the DOMAttr.
localNameThe local name of the DOMAttr.
isIdWhether the attribute is of type ID.
Exceptions:
DOMExceptionNO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
NOT_FOUND_ERR: Raised if the specified node is not an DOMAttr of this element.
Since:
DOM Level 3

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/DOMDocumentRange_8hpp__incl.png0000644000151400015140000001077411653571065020112 00000000000000‰PNG  IHDRÅuq²ÒbKGDÿÿÿ ½§“±IDATxœíyT×ÇoH€°T#DP7žÕ¡€EPŠB¡ÄûÜOZµÔâr¬¨(ë3ˆõˆ Ö¥¬âRA¤ZÄòZ@±²Š&@ K2ïÛ3oL&‹:²´÷ó×ßÜßo~÷ò{ï,ah†‚"t†:Äß ¤'• =!¨é A% õ»}||'ÄHaûöí .TµWƒž®^½:mÚ4 ª³BŒHJKKãââÔTР'@XX˜‡‡e!F2¥¥¥ê+ õ‚JžT‚ô„ ¤'• =!¨DóõF<==ñ²¥¥åŒ3¸\®©©)n”J¥¹¹¹÷îÝãóù¶¶¶nnnááát:úÚØØðx<†×ߺukEEE^^žÆàÃbÎzzzŽŽŽŸ~ú©ƒƒÃ vÝàN ôHKK³²²’ËågÏžÏÎÎ666ˆÅb.—kff–`mmÝÐЕ•UYY¹oß>@kkëãÇñî‰DUUUZ&ðù|‡STT„[`αXœ——÷Å_œ8q‚xÎü]¡f¾355577g±X³fÍÚ¹s§••Õ™3gà®'N˜ššîß¿ÿÝwße³Ùnnnééé­­­W®\\]]‰w5îܹ3sæL-ƒäryWWÑs677g³Ù§©©©³³s¨ÒL¨_?Ñh´€€€òòr¸YRR‡"“É /))›¥¥¥økX7nÜPs;_!xww÷×_vôèѾ¾>™L–““³|ùò   ”””îîn@ss3>ËžžžW®\‰ŽŽ ÊÏÏ/..^±b…¿¿vv6¬000žžœžž>00½®^½ðÝwßV¯^ X¶liÎt:Á`ÁͲ²²¸¸8__ßüü|<…˜†]¸páã?ö÷÷ß°aCYYL›4%*++#""–.]zòäI¼É?ýôÓG}|èСþþ~R£ªnמ·²g³Ù---€îîn@ ¼tpppxöì,OŸ>]"‘<~üÐÓÓsÿþýùóçkpðàÁöööôôô={öÜ»wïÔ©S7oÞLII9pà@ccc^^žúTþùç£GÆÇÇgdd”••eeeq¹\Ç›‚‚>Ÿìر}ûöÝ¿?''zݾ}ûðáà ǎ‰DGŽœ;w+•J%‰D"yñâEVV–®®.@,ïØ±ÃÑÑ1//ËåfddtttƼ|ù2Ç[³fM~~~DDÄáÇa5U)¹{÷nFFÆ–-[233ñ³°°0%%嫯¾º{÷.®cRã›04×w4M.—ÿ•ŽŽ»»;œòÊÊÊœG¥Mk×®­[·ÎÊÊÊÞÞ>&&¦¤¤äÒ¥KŸ|ò‰½½ý„ ¶nÝêää¤>ÈòåË -ZX¹r¥¡¡¡¯¯/@$®\¹²~ýz {{û„„„ŠŠ èdllüÁf:ȪU«üüüüüüBCC‹‹‹—/_ízzzYYY‰‰‰£G†OE{zzHcž={–ÃáÌ™3ÇÄÄÄÕÕ5&&VS•’r£,X€7ÀårÙlöÔ©SW­Z…O¤Æ7šõ¸MMMÖÖÖcccssóúúzWWWb…úúúI“&ᛩ©©±±±ê';…àB¡P.—Ã2ÀÆÆ¦½½Àf³¡ÅÎÎÎÎÎNÁ]áýfCCCƒÁP(CZ[[CBBðM|Îb±X 5À¯°z{{³³³¿ùæ8À0Œ¦¦¦½{÷J$GGG¢‹BÌ––– &à{ǯ>%"£G(,ÿñn±µµ…¥Êø&P¯'8ñÏ›7nz{{Ÿ8qbÖ¬YøJ*•ž:uŠØ)ÎÎÎb±¸ººº²²rãÆZ733ÓÑÑáóùP4---, ðÖÖVø—¨¯¯///ŒŒ„¾2™ŒN§?þ\û¶˜˜˜8p*ÎÝЮý•š¾¾¾¯¯ïÅ‹1 £Ñh½½½ÉÉÉÉÉÉï½÷^?~Q¢ÓÒÒ²¡¡ÁÞÞnþñÇêS"Bš^SSŒÖØØ§Êø&P3ßutt‚çÏŸWUU}þùç|>ÿÃ?„»¢££…Bᆠ***šššnݺÅårY,V``àÿ“ÐÑqwwß¿ÿÔ©S•ï-© Î`0<==¿ýö[>ŸoCx{{/Z´(33³¡¡¡¡¡áàÁƒmmmxs¡¸¸X,W9qssËÈÈhkk{òäÉ–-[ ÕT–H$¤v###±X ÷ö÷÷ 0Œ¾¾>¸ô‹Å¤^AAAÇŽ«¬¬ìêêzðàAnn.T iJ—.]ÂçMU¤¥¥577ÿöÛo™™™økm¤Æ7šñiíÚµ°`aaáâârüøq|644<~üxNNNzzzKK‹•••——WXX\Ÿâxzz¿Rðõë×§¥¥q8]]Ý÷ß?""‚F£I¥ÒÍ›7K¥Òyóæ%$$LLLbcc9’——·fÍš[·niÙ®ØØØ´´´¸¸8æîî£)3vìXggçË—/+ï3fŒ¡¡aWW—¡¡¡±±1—Ëݵk—ÁÊ•+½¼¼¶lÙrþüye¯   ™LvàÀÎÎN'''‡“ššª*¥½{÷Μ9“tîÃñööÞ¸q£T*õòòŠˆˆ€³›‚QËnQMýï¥h4ZRRzÿið)++³°°˜8q"ܼyó&ÇËÈÈxPÍÍÍ‘‘‘ׯ_×hÔˆ§§çéÓ§ñÉGôün˜òäɓݻw×ÕÕõööÖÔÔdggûûûuRšy+×wˆ7'<<\*•nß¾½££ÃÊÊjñâÅK—.}½PFFFʾ¤Æ7ÍwˆWÍwˆAé A%HO*AzBP Ò‚JžT¢ùþÇ»xñâ ¤‚ø AOaaaƒ“Ç0§²ÒÒÞ¾ÓÜ\:Ô‰ 1öööãÆSSAÃýLÄÚúßééÑ35WýgƒÖO*AzBP Ò‚JžT‚ô„ ¤'• =!¨é A%HO*AzBP Ò‚JžT‚ô„ ¤'• =!¨é A%HO*AzBP Ò‚JžT‚ô„ ¤'• =!¨é A%HO*AzBP Ò‚JžT‚ô„ ¤'• =!¨é A%HO*AÿŸŽœ5kxÿý/ßlnî07720øëk ý?ÿ‰µ²RüT}ˆËÂÂûÄsM$’÷"1‘‚æ;r–-s€ü£® =<üÝAÎg¤€ôDŽÝhÒÏËdò  ÙƒžÑÈéI%¡¡sètÅþÑÑ¡¹ºÚY[£Éޤ'•ÎV¾X¡Ñh¡¡s†$ŸÒ“JX,ã¹s”‡¨%Kf I>#¤'u„…ý‹8DÑé:nnŽææê>#þéI~~.ÄñI.ÇBBþ5„ù žÔñÎ;L/¯i Æ_½¤§G_¼ØehSæ =i`Ù2W¹0tŸé††zCѰéI>>NL¦.@&“…„¸u:ä' èë3|}i4`` çá1e¨Óî¼ôüN"‘…¡JeØâé9áܹŸ}|&¿xñçPç2ì000033Ã7_Ò“H$ª­­ô”†;&&òwÞÑ›6ÍuŽ2cÆŒQ©'ˆ‡‡Çà¥3BX·[½ú}ò'ÄÿX~ýõW Z?iEB‚“6 =i…®.}¨S =!¨é A%HO*AzBPɈ×Ó³gÏbbb4V«¯¯§ÑhÄÑýÁƒ ãÌ™3¸½¨¨HOO¯ººúmä¬Àøñ㣢¢ÚÛÛÕÔÇ0,22ÒØØXûøõõõTdª™¯§Â   Ò]Ož}z||<†aÇÕÕµ¯¯ï­eý€ºº:|S.—»»»ïرCU}ÒviŸB=zôèÑ#¢å•ǧ .ØØØÀÇ|§Nš4iROO ¿¿óæÍ–––›7oîïï‡3Ë?þhkk[ZZš””dkk;f̘¨¨(üäSö|ÿý÷...L&ÓÞÞžÇãHÝŸ?nddd``@œÅðò¼yócÇŽJÓœ‚;@OO/777;;;%%%'''77WWWWU’6MÆáp.]º¤*±]ZÆ,..vpp033KIIÁ{£¨¨hòäɉ‰‰½½½¤FmeC—–ãSTTTtttkk«¥¥åÝ»w¡qÏž=!!!Ïž={øðáìÙ³·mÛO£Å‹_»v-99ÙÉÉéáÇÕÕÕsçÎÝ´i“*¯îîn}}ýôôt>ŸŸ••Å`0º»»SSSIݳ³³y<öò)‹—5qwœmÛ¶víÚE4¾Õ¦adãǽ{÷LMMÕîU“`É’%]]]gÏž…gŒ°hÑ¢ÚÚÚòòr‡äädR£z%(O¯£'¡PÈf³]\\ˆÇ›2e ŸÏ‡å’’’™3gÂü>|ˆaØäÉ“Ï;÷ÖÔÔàee/@ ««»wï^¡P(—ËE"‘L&Så"°×Õî‘Ëåt:=22’ØÞ·Ú4L“žTZTÅ$(--Å0L&“ÁcóÇ0ìôéÓ¤FL-Ôè ð/¿ü’N§·µµá&“IöLLL`~pÂd2«««•ã({avûöíÐÐP###77·Ë—/«r‰D°Lìbø¦IODwÇ311¹qã“É,,,œ¦adzÊÏÏwuuUt¼2iL"€ÚÚZâ±`‰DUUUL&“Ô¨ë'@cccZZš··÷Æq#‹ÅÂ;E(–——C;\…X[[?}úZ~ùå—Ý»w«ò’H$r¹üÌ™3 66véÒ¥€Ôý‡~ðõõ%&600hnnÖ¦ î---‰‰‰©©©îîîIII /^¼„¦)'†aØÑ£GýýýÕ¢eLåµ# P[[kmm­Æø Å¥Íø$“ɼ½½wîÜ)ÆŽ{áÂhOLL }úôiUUÕܹs×®]K<’’’\\\ª«««««çÏŸ§ÊK"‘0™Ì‚‚‚öööãÇ3™L‰DBêÙÜÜ ãÀ6YYYÁÁÁ€0‰D"Œl|"ºËåò%K–,\¸N}}}...+V¬„¦a÷ JKKÙlvGG‡6GW3##ã ŒOžžžuuuŽŽŽ;vì 5ªóÝ¡C‡f̘‡úóçÏ[YYÁ%HWWWLLŒ™™ÙèÑ£ããã{zzˆÍ–J¥›6m²¶¶611Y±b…P(„ve/ ÃNŸ>=qâD==½)S¦‘º÷õõùùùÛµk—©©éĉ‹ŠŠàqûûû,X`llŒ)éIÁ=77W__ÿ÷ßÇ-:::o»iØË?A7n\DDq!¡þèjb*hˆX†233íììX,Öºuë$ ©Q½”õôÒÿúóÏ?kjjÐût{êëë¤LjT|ŸÎÉÉ ·ŒøûãˆaÒÓ?‘Q£F%$$hc|UÐ|‡x}Ð|‡x» =!¨é A%HO*AzBP Éïƒ[ZZ?ÄHD*•*<®&Ñú•>B{ô„¾· ´~BP Ò‚JžT‚ô„ ’ÿ{M“f]ÿ^ÑIEND®B`‚XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMLSException__inherit__graph.png0000644000151400015140000001111011653571066023677 00000000000000‰PNG  IHDRÀu—¹y–bKGDÿÿÿ ½§“ýIDATxœíyT×Ç_HÀP‚DvÑR\8.¸*hÊ¢Ö* P j«xTâÖªÔµ¸J-TQ "²¨œ¤€BZkÐ#`@h‚$˜Ñ„ÌïçoH‚Á)&¶ïó×{wÞ}sßÍ7wæM ¡à8ˆ·EGÓ Þo€¤@B A š:ƒnÞ¼¹wïÞ¡U|óÍ7³fÍzã0µÔÚÚš——çççG:*ÄûÁ¥K—BBBÔ©–€ ©©©oâ=ƒB¡¨9Ý!H„ ‚H@R !HñßEŽ‘#GµµµÉèêêb³ÙãÇ`nnÞk+V¬`2™ÖÖÖ‘‘‘†Áež?ÞÞÞ~èС|cÀýC•©Y‚‚‚–/_ÞÒÒbffvûömhŒŽŽ^¼xñ“'Ojjj&Mš´uëVøî™7oÞ7¢¢¢jjjjkk§M›©ÊK$ 4ˆÃáðx¼3gÎÐh4‘HtèÐ!¥î°lôj…"QQQÁ`0p‡/p[[[¯E•””˜™™Aßû÷ï›››ÿúë¯pZ}}ýööv WîÞ½+쉪̨Š\Uº<==Ÿ¯««{øða@ “É„Baww·*w•«í¿€nݺÅd2 ߯¾újÛ¶m8Ž'''{xxÈÏÙÇûS13ê/\>]8Žs¹\;;;¥zõê•Jýí·ß ===ÝÎÎVPP(f@U¢4 ÇwïÞM¥R[[[ N—O¨‘‘\ð«W¯àÑÚÚZÅy½p/..öõõ500pqq¹~ýzîªPLß… œaÛÜÜ<77·—K\\Üœ9sßÂÂB;;;™Læíí÷P¯M¯Ì¨¿p˜.±X TWWÓét¥jll”YSSC§Óa`þù§ª ¨JÔ»¾466ÆÄĸ»»oÚ´‰02™L"b@PVVíºººKKËÇCËÝ»w÷íÛ§ÊK,Ëd²K—.ñùüààà ðù|Uîj‚ãx\\Üüùóa7 `÷îÝÄž ÐÕÕ=wî\Â2sæL¡PX\\œ››ëííýÖ™QáÐUxð॥¥Ò³˜™™Q©Ô††Ø­¯¯·²²‚mÛn«£2u*Pww·»»ûž={ø|¾¹¹yVV´GDDøúú ð´iÓÖ®]+ÿîÙµk—““SmmmmmíŒ3BBBTy‰Åb:ž––ÖÖÖvêÔ):.‹U¹÷qDlã ½¼¼¬­­;::àÑçÏŸ3fÖ¬Y999úHOOoìØ±™™™}¸«ºÇ”ç >< @þj‹ã¸H$Ú´iÓ¸qãôõõöîÝûâЦ¾°°ÛË®êý©43ê/Æúôé#F0™ÌuëÖ‰Åb‰D2sæLCCÃ^ äóù&&&6l€—³÷C@ˆb ù(E}ýçžD#þY€´!C†„……i: • i;¦¦¦GÓQ¨ A $ )€¤@B A $ ¾hj47 4…VÓÿLõðð¸8´“öv&€Él×t Ú‹Z>|øóãL(ʨQÝoúïÂÏÏoøðáꌤàè+îTðÇOÝÜòó7ÛÛ[h:-Ý©$+ë.¦C£Q³³ïj:í H98ާ¤Ü–JeRiwJJªÓª@RÎ;Ÿ=ë„íÖÖÎÊÊÇ G{ARNFF•®îëÿïÑÕ¥^¹ò«fãÑZ€” •ÊÒÓ+%’×›/‰¤;=ýŽT*ÓlTÚ Š‹<ŽÉ[ž?ÇJJj*m H W®TÒh=2C£QÒÓ+56ƒÔ “\½Z-•öxx(•Ê®^­Æ0‰¦¢ÒZ€z“—wäŠv “äçß{÷ñh9H@½¹|ù•ªä˨TÊåËè*Ö$ …Ø(ÝpI¥²üü{"ÑËw•6ƒÔƒœœZb÷®ˆDÒ“Só.ãÑ~Ї©=º:;ÿÞÀýu:`ß¾E„eȺ±±"ÓVúñ÷@ÿŒ äõa` 1ÂDsi;è† ‚H@R !H„ ‚H@R !H„ ‚H@R !H„ ‚H@R !H„ ‚H@R !H„ ‚H@R !H„ ‚H@R !H„ ‚H@R !HÑãÊòòò4¶qéR3ÀÏÏJÓhîîî¶¶¶÷q9¸\®æÓF¨T#*ÕHÓQh\.W^3J¾â®  à݇…x/`±X½,èA $ )€¤@B A $ )þßT/¿Û433?~|xx8ƒÁ Œ†%%%UTTðx<—¥K—R©TèkeeuîÜ9 åïßìÙ²eKyyyrr²••‹Å‚ ù3ŠÅ⤤¤¢¢">Ÿ?lØ077·€€=== lë Þɳ’æææ/¾øb Oôï &&ÆÂÂB&“566^¾|944ô‡~044¼xñ"<<ÜØØ8,,ÌÒÒòÑ£GgΜ¹sçΑ#Gttt---õõõvvvp*¡PX]]Ý÷éNœ8ÑÚÚº{÷îaÆ=yòäĉB¡0""B>˜\îkx<ÞêÕ«333†††Ë–-è3þk/a cèСL&sâĉ{öì±°°¸té55uëÖ­ÕÕÕEEE8vìXcccrr2<ªè…aXTT”··÷Å‹<ˆaXZZšRwƒ©ØVÄÚÚúéÓ§‘HÄçó‰ËÝ“'O`{ܸqb±¸¾¾ÐÕÕUUU5cÆŒ¾ÓÂf³«ªª|}}Ùl6—Ëmmm•?Ša˜¸'ª2©j¥ªÒ›‘‘qàÀýû÷ß¾}ûÂ… ßÿ= ==½WxÇokkãp8ÑÑÑ)))Ð^\\¥Ü_Þæ¶nݺªªªÈÈH//¯±cÇBcNNÎúõëMMMmmmÃÂÂÊËË¡=44tâĉùùù_~ù¥­­í‡~¸eËU^‰Çq±X¬§§7wîÜìììAƒ]»vM©»ÁüùóÛo…B‘É^ÿP¡ŽŽŽ««+¼ŠÝºuËÑÑqÈ!}»Ož<™Ëå?~ÜÑÑñ§Ÿ~ò÷÷ÏÏÏ'Ž®ZµêÓž¨Ê¤ª•ªJoxx¸µµµ½½ýªU«ˆ Ú ©TzãÆuëÖYXXØÚÚ®\¹’éíímhh8gÎQ>ûÅÛÜD~öÙg?þøã‘#GcKKËâÅ‹‰®Áë_ݲ±±´¶¶Z[[Cˈ#FŒ¡ÊkðàÁÇŽKKKKLL=z´¿¿ÿ´iÓT¹«OSS“¥¥% ~èСuuuÎÎÎòêêêFMtgÏž}èСàà`u®_†•––Ξ=ÛÞÞÞÞÞ>000))‰Ãḹ¹ÁŠ»6ˆb&ÕOlƒmllÚÚÚ”†'d2\>ÀÊÊŠÉd24ÚÛï¥Þ¦={öìÊ•+ÎÎΰ`BŒŒŒ’““ ²³³‰C08“––h©««#*³¢×Ë—/e2YTTTvvö§Ÿ~º}ûv¡P¨Ê]MpÏÊÊš>}:캻»Ÿ={–¨7 ÃRRR¦NJX_¼xQ[[{çΙ3g¾qþ½{÷644À.…B™2eJw·ÊŸÎ$P̤ú‰‚ö¦¦&Øhll41QþÃxÆÆÆ:::<vŸ>} uC}c}Óoá8~ðàÁE‹íر£²²²´´Ú]\\Z[[6oÞœ‘‘!ïåééyúôéG=zôèøñãÄ-‚¢…Ba³ÙEEE]]]‰„F£ 4H•{WW×µk×Û€ŽŽ>ŸßÞÞ^]]½cÇ÷ùçŸÃCË—/7n,//ojjúå—_ÂÃÙL¦——×ßyÑÑquu=zô¨½½½ü$ùÉ >øàOOÏo¿ý¶¬¬ŒÇãýþûïqqqDùQÏçóUeRýDA{LLLssóýû÷OŸ>íááð‹€F£±X¬'Nðx<øÌÂÝÝ]ýW¼oú]»222:::–-[F£Ñ6lØpôèQGGÇÁƒÇÄÄ„„„P(WW×°°°öövÂ+ Ã06›aØôéÓà]ÑKOOoÛ¶mñññÏž=³´´Üµk—žžž*÷ŽŽŽÃ‡Ã[ù6`íÚµ°ajjêäätêÔ)¢ìëëëŸ:u*11‘Ãá<}úÔÂÂÂÍÍÍÏÏOWWW~¥,+33ÓÇÇG1 Ää‚‚‚Í›7Ÿ;w.!!¡¹¹ÙØØ˜Åb­X±BÕxè¢4“ê' ¦×ÝÝ}Ó¦M†ÁG—T*ÕÑÑqñâÅׯ_—?ÝúõëcbbV¯^­««ûÉ'Ÿôý*«O?iMMM]²d úƒ²÷‚wó ¹,‹Ëåµü‹$"Þ H@ï+ ,ÐtH@ï- cãÆšŽ A$ )€¤@B A %O¢¯^½úîã@¼§(ügìDßôø(è/èA $ )€¤@Bâ¨iÜý¿ùõIEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMRangeException_8cpp__incl.md50000644000151400015140000000004011653571065020147 000000000000005168ea7a5986c1a6ca07bf5963a7d5e8XQilla-2.3.0/docs/dom3-api/bc_s.png0000644000151400015140000000124511653571065013613 00000000000000‰PNG  IHDR /ð9ÐlIDATxíÝKHTmðÿóžwfÎgæÌ¯å8ŽÓ˜—Š6ñ-BÚ´‘]d–VZMa…D}ßg¸háB¤¶*Ñýbå¥U9Š—3ƒŽFy<£‹ šaæè²í³yøÿÎóžÅóî©ýÁÇåþtðªÚ %”8Vj•LÜlø·ÅCF@mÃÿˆÞ[”ïü À7ªj¿RÀ•ûC0TâU‹Y¸øYÕú’ÿsv~Æî,Ûi)€.w €™ˆæwø\cT i Ðúÿ`¼owgÛö»âH0¤5%À¥ÿ>Äû\.°ÉÒ×*O0¬-c}BàÞûä+msË…VÑÔ5Ö:€Îß}— *l’©Çç–cÁV¸€OÅ^ÅaâìÔXxñ)µÜ0‚ãé²xrKfÚÜxx±Ššo½5Ièk±WaŒÑjºùÆà¶;ÛVá´[¨ñÆ«Í@¥ÃfnöäØ¿°ÍRÕ.‡¨¬®B¥×_C™ˆæK|.¬ý²Ÿ®½0‚3ŠTŸ¥H¡‰½†Ž¶=7‚ ßã´™8k˜œÑ_Ó‘«Ï’Ã2«Èz·:V&fôBv—Ní9iVÎY— Õµ>‰‡.Qx{¾E“³ú»Ê‡˜'‰|dj6ÚØ‡ÚÀãx?åÏsJ‚@uÓ‘hbI„Ò½‡Ö2ì“,¼F¶[bÓ‘h e'«Ïõ@;Û^d•x·‰þ›¶ôg2Fa¿G^ÿ @,é) êlß… §Të’-ãêÜRý†—UÙÜ*È•EΩ64·4lÜÄÙ #èjDßþú Ųo{”N IEND®B`‚XQilla-2.3.0/docs/dom3-api/doxygen.css0000644000151400015140000002735511653571065014400 00000000000000/* The standard CSS for doxygen */ body, table, div, p, dl { font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif; font-size: 12px; } /* @group Heading Levels */ h1 { font-size: 150%; } h2 { font-size: 120%; } h3 { font-size: 100%; } dt { font-weight: bold; } div.multicol { -moz-column-gap: 1em; -webkit-column-gap: 1em; -moz-column-count: 3; -webkit-column-count: 3; } p.startli, p.startdd, p.starttd { margin-top: 2px; } p.endli { margin-bottom: 0px; } p.enddd { margin-bottom: 4px; } p.endtd { margin-bottom: 2px; } /* @end */ caption { font-weight: bold; } span.legend { font-size: 70%; text-align: center; } h3.version { font-size: 90%; text-align: center; } div.qindex, div.navtab{ background-color: #EBEFF6; border: 1px solid #A3B4D7; text-align: center; margin: 2px; padding: 2px; } div.qindex, div.navpath { width: 100%; line-height: 140%; } div.navtab { margin-right: 15px; } /* @group Link Styling */ a { color: #3D578C; font-weight: normal; text-decoration: none; } .contents a:visited { color: #4665A2; } a:hover { text-decoration: underline; } a.qindex { font-weight: bold; } a.qindexHL { font-weight: bold; background-color: #9CAFD4; color: #ffffff; border: 1px double #869DCA; } .contents a.qindexHL:visited { color: #ffffff; } a.el { font-weight: bold; } a.elRef { } a.code { color: #4665A2; } a.codeRef { color: #4665A2; } /* @end */ dl.el { margin-left: -1cm; } .fragment { font-family: monospace, fixed; font-size: 105%; } pre.fragment { border: 1px solid #C4CFE5; background-color: #FBFCFD; padding: 4px 6px; margin: 4px 8px 4px 2px; overflow: auto; word-wrap: break-word; font-size: 9pt; line-height: 125%; } div.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px; padding: 0.2em; border: solid thin #333; border-radius: 0.5em; -webkit-border-radius: .5em; -moz-border-radius: .5em; box-shadow: 2px 2px 3px #999; -webkit-box-shadow: 2px 2px 3px #999; -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); } div.groupHeader { margin-left: 16px; margin-top: 12px; font-weight: bold; } div.groupText { margin-left: 16px; font-style: italic; } body { background: white; color: black; margin: 0; } div.contents { margin-top: 10px; margin-left: 10px; margin-right: 10px; } td.indexkey { background-color: #EBEFF6; font-weight: bold; border: 1px solid #C4CFE5; margin: 2px 0px 2px 0; padding: 2px 10px; } td.indexvalue { background-color: #EBEFF6; border: 1px solid #C4CFE5; padding: 2px 10px; margin: 2px 0px; } tr.memlist { background-color: #EEF1F7; } p.formulaDsp { text-align: center; } img.formulaDsp { } img.formulaInl { vertical-align: middle; } div.center { text-align: center; margin-top: 0px; margin-bottom: 0px; padding: 0px; } div.center img { border: 0px; } address.footer { text-align: right; padding-right: 12px; } img.footer { border: 0px; vertical-align: middle; } /* @group Code Colorization */ span.keyword { color: #008000 } span.keywordtype { color: #604020 } span.keywordflow { color: #e08000 } span.comment { color: #800000 } span.preprocessor { color: #806020 } span.stringliteral { color: #002080 } span.charliteral { color: #008080 } span.vhdldigit { color: #ff00ff } span.vhdlchar { color: #000000 } span.vhdlkeyword { color: #700070 } span.vhdllogic { color: #ff0000 } /* @end */ /* .search { color: #003399; font-weight: bold; } form.search { margin-bottom: 0px; margin-top: 0px; } input.search { font-size: 75%; color: #000080; font-weight: normal; background-color: #e8eef2; } */ td.tiny { font-size: 75%; } .dirtab { padding: 4px; border-collapse: collapse; border: 1px solid #A3B4D7; } th.dirtab { background: #EBEFF6; font-weight: bold; } hr { height: 0px; border: none; border-top: 1px solid #4A6AAA; } hr.footer { height: 1px; } /* @group Member Descriptions */ table.memberdecls { border-spacing: 0px; padding: 0px; } .mdescLeft, .mdescRight, .memItemLeft, .memItemRight, .memTemplItemLeft, .memTemplItemRight, .memTemplParams { background-color: #F9FAFC; border: none; margin: 4px; padding: 1px 0 0 8px; } .mdescLeft, .mdescRight { padding: 0px 8px 4px 8px; color: #555; } .memItemLeft, .memItemRight, .memTemplParams { border-top: 1px solid #C4CFE5; } .memItemLeft, .memTemplItemLeft { white-space: nowrap; } .memTemplParams { color: #4665A2; white-space: nowrap; } /* @end */ /* @group Member Details */ /* Styles for detailed member documentation */ .memtemplate { font-size: 80%; color: #4665A2; font-weight: normal; margin-left: 9px; } .memnav { background-color: #EBEFF6; border: 1px solid #A3B4D7; text-align: center; margin: 2px; margin-right: 15px; padding: 2px; } .memitem { padding: 0; margin-bottom: 10px; } .memname { white-space: nowrap; font-weight: bold; margin-left: 6px; } .memproto { border-top: 1px solid #A8B8D9; border-left: 1px solid #A8B8D9; border-right: 1px solid #A8B8D9; padding: 6px 0px 6px 0px; color: #253555; font-weight: bold; text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); /* opera specific markup */ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); border-top-right-radius: 8px; border-top-left-radius: 8px; /* firefox specific markup */ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; -moz-border-radius-topright: 8px; -moz-border-radius-topleft: 8px; /* webkit specific markup */ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -webkit-border-top-right-radius: 8px; -webkit-border-top-left-radius: 8px; background-image:url('nav_f.png'); background-repeat:repeat-x; background-color: #E2E8F2; } .memdoc { border-bottom: 1px solid #A8B8D9; border-left: 1px solid #A8B8D9; border-right: 1px solid #A8B8D9; padding: 2px 5px; background-color: #FBFCFD; border-top-width: 0; /* opera specific markup */ border-bottom-left-radius: 8px; border-bottom-right-radius: 8px; box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); /* firefox specific markup */ -moz-border-radius-bottomleft: 8px; -moz-border-radius-bottomright: 8px; -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 60%, #F7F8FB 95%, #EEF1F7); /* webkit specific markup */ -webkit-border-bottom-left-radius: 8px; -webkit-border-bottom-right-radius: 8px; -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.6,#FFFFFF), color-stop(0.60,#FFFFFF), color-stop(0.95,#F7F8FB), to(#EEF1F7)); } .paramkey { text-align: right; } .paramtype { white-space: nowrap; } .paramname { color: #602020; white-space: nowrap; } .paramname em { font-style: normal; } .params, .retval, .exception, .tparams { border-spacing: 6px 2px; } .params .paramname, .retval .paramname { font-weight: bold; vertical-align: top; } .params .paramtype { font-style: italic; vertical-align: top; } .params .paramdir { font-family: "courier new",courier,monospace; vertical-align: top; } /* @end */ /* @group Directory (tree) */ /* for the tree view */ .ftvtree { font-family: sans-serif; margin: 0px; } /* these are for tree view when used as main index */ .directory { font-size: 9pt; font-weight: bold; margin: 5px; } .directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; } /* The following two styles can be used to replace the root node title with an image of your choice. Simply uncomment the next two styles, specify the name of your image and be sure to set 'height' to the proper pixel height of your image. */ /* .directory h3.swap { height: 61px; background-repeat: no-repeat; background-image: url("yourimage.gif"); } .directory h3.swap span { display: none; } */ .directory > h3 { margin-top: 0; } .directory p { margin: 0px; white-space: nowrap; } .directory div { display: none; margin: 0px; } .directory img { vertical-align: -30%; } /* these are for tree view when not used as main index */ .directory-alt { font-size: 100%; font-weight: bold; } .directory-alt h3 { margin: 0px; margin-top: 1em; font-size: 11pt; } .directory-alt > h3 { margin-top: 0; } .directory-alt p { margin: 0px; white-space: nowrap; } .directory-alt div { display: none; margin: 0px; } .directory-alt img { vertical-align: -30%; } /* @end */ div.dynheader { margin-top: 8px; } address { font-style: normal; color: #2A3D61; } table.doxtable { border-collapse:collapse; } table.doxtable td, table.doxtable th { border: 1px solid #2D4068; padding: 3px 7px 2px; } table.doxtable th { background-color: #374F7F; color: #FFFFFF; font-size: 110%; padding-bottom: 4px; padding-top: 5px; text-align:left; } .tabsearch { top: 0px; left: 10px; height: 36px; background-image: url('tab_b.png'); z-index: 101; overflow: hidden; font-size: 13px; } .navpath ul { font-size: 11px; background-image:url('tab_b.png'); background-repeat:repeat-x; height:30px; line-height:30px; color:#8AA0CC; border:solid 1px #C2CDE4; overflow:hidden; margin:0px; padding:0px; } .navpath li { list-style-type:none; float:left; padding-left:10px; padding-right:15px; background-image:url('bc_s.png'); background-repeat:no-repeat; background-position:right; color:#364D7C; } .navpath li.navelem a { height:32px; display:block; text-decoration: none; outline: none; } .navpath li.navelem a:hover { color:#6884BD; } .navpath li.footer { list-style-type:none; float:right; padding-left:10px; padding-right:15px; background-image:none; background-repeat:no-repeat; background-position:right; color:#364D7C; font-size: 8pt; } div.summary { float: right; font-size: 8pt; padding-right: 5px; width: 50%; text-align: right; } div.summary a { white-space: nowrap; } div.ingroups { font-size: 8pt; padding-left: 5px; width: 50%; text-align: left; } div.ingroups a { white-space: nowrap; } div.header { background-image:url('nav_h.png'); background-repeat:repeat-x; background-color: #F9FAFC; margin: 0px; border-bottom: 1px solid #C4CFE5; } div.headertitle { padding: 5px 5px 5px 10px; } dl { padding: 0 0 0 10px; } dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug { border-left:4px solid; padding: 0 0 0 6px; } dl.note { border-color: #D0D000; } dl.warning, dl.attention { border-color: #FF0000; } dl.pre, dl.post, dl.invariant { border-color: #00D000; } dl.deprecated { border-color: #505050; } dl.todo { border-color: #00C0E0; } dl.test { border-color: #3030E0; } dl.bug { border-color: #C08050; } #projectlogo { text-align: center; vertical-align: bottom; border-collapse: separate; } #projectlogo img { border: 0px none; } #projectname { font: 300% arial,sans-serif; margin: 0px; padding: 0px; } #projectbrief { font: 120% arial,sans-serif; margin: 0px; padding: 0px; } #projectnumber { font: 50% arial,sans-serif; margin: 0px; padding: 0px; } #titlearea { padding: 0px; margin: 0px; width: 100%; border-bottom: 1px solid #5373B4; } XQilla-2.3.0/docs/dom3-api/xqilla-dom3_8hpp.html0000644000151400015140000000643711653571066016167 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xqilla-dom3.hpp File Reference

#include <xqilla/dom-api/XQillaExpression.hpp>
#include <xqilla/dom-api/XPath2Result.hpp>
#include <xqilla/dom-api/XQillaNSResolver.hpp>
#include <xqilla/exceptions/XQillaException.hpp>
#include <xqilla/utils/XQillaPlatformUtils.hpp>
#include <xqilla/utils/XStr.hpp>
#include <xqilla/utils/UTF8Str.hpp>
#include <xqilla/framework/XPath2MemoryManager.hpp>
Include dependency graph for xqilla-dom3.hpp:

Go to the source code of this file.

XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMRange.html0000644000151400015140000023742211653571065017534 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMRange Class Reference

#include <DOMRange.hpp>

List of all members.

Public Types

Public Contants
enum  CompareHow { START_TO_START = 0, START_TO_END = 1, END_TO_END = 2, END_TO_START = 3 }
 

Constants CompareHow.

More...

Public Member Functions

Destructor
virtual ~DOMRange ()
 Destructor.
Functions introduced in DOM Level 2
virtual DOMNodegetStartContainer () const =0
 DOMNode within which the Range begins

Exceptions:
DOMExceptionINVALID_STATE_ERR: Raised if detach() has already been invoked on this object.

virtual XMLSize_t getStartOffset () const =0
 Offset within the starting node of the Range.
virtual DOMNodegetEndContainer () const =0
 DOMNode within which the Range ends

Exceptions:
DOMExceptionINVALID_STATE_ERR: Raised if detach() has already been invoked on this object.

virtual XMLSize_t getEndOffset () const =0
 Offset within the ending node of the Range.
virtual bool getCollapsed () const =0
 TRUE if the Range is collapsed

Exceptions:
DOMExceptionINVALID_STATE_ERR: Raised if detach() has already been invoked on this object.

virtual const DOMNodegetCommonAncestorContainer () const =0
 The deepest common ancestor container of the Range's two boundary-points.
virtual void setStart (const DOMNode *refNode, XMLSize_t offset)=0
 Sets the attributes describing the start of the Range.
virtual void setEnd (const DOMNode *refNode, XMLSize_t offset)=0
 Sets the attributes describing the end of a Range.
virtual void setStartBefore (const DOMNode *refNode)=0
 Sets the start position to be before a node.
virtual void setStartAfter (const DOMNode *refNode)=0
 Sets the start position to be after a node.
virtual void setEndBefore (const DOMNode *refNode)=0
 Sets the end position to be before a node.
virtual void setEndAfter (const DOMNode *refNode)=0
 Sets the end of a Range to be after a node.
virtual void collapse (bool toStart)=0
 Collapse a Range onto one of its boundary-points.
virtual void selectNode (const DOMNode *refNode)=0
 Select a node and its contents.
virtual void selectNodeContents (const DOMNode *refNode)=0
 Select the contents within a node.
virtual short compareBoundaryPoints (CompareHow how, const DOMRange *sourceRange) const =0
 Compare the boundary-points of two Ranges in a document.
virtual void deleteContents ()=0
 Removes the contents of a Range from the containing document or document fragment without returning a reference to the removed content.
virtual DOMDocumentFragmentextractContents ()=0
 Moves the contents of a Range from the containing document or document fragment to a new DOMDocumentFragment.
virtual DOMDocumentFragmentcloneContents () const =0
 Duplicates the contents of a Range.
virtual void insertNode (DOMNode *newNode)=0
 Inserts a node into the DOMDocument or DOMDocumentFragment at the start of the Range.
virtual void surroundContents (DOMNode *newParent)=0
 Reparents the contents of the Range to the given node and inserts the node at the position of the start of the Range.
virtual DOMRangecloneRange () const =0
 Produces a new Range whose boundary-points are equal to the boundary-points of the Range.
virtual const XMLCh * toString () const =0
 Returns the contents of a Range as a string.
virtual void detach ()=0
 Called to indicate that the Range is no longer in use and that the implementation may relinquish any resources associated with this Range.
Non-standard Extension
virtual void release ()=0
 Called to indicate that this Range is no longer in use and that the implementation may relinquish any resources associated with it.

Protected Member Functions

Hidden constructors
 DOMRange ()
 DOMRange (const DOMRange &)

Detailed Description


Member Enumeration Documentation

Constants CompareHow.

START_TO_START: Compare start boundary-point of sourceRange to start boundary-point of Range on which compareBoundaryPoints is invoked.

START_TO_END: Compare start boundary-point of sourceRange to end boundary-point of Range on which compareBoundaryPoints is invoked.

END_TO_END: Compare end boundary-point of sourceRange to end boundary-point of Range on which compareBoundaryPoints is invoked.

END_TO_START: Compare end boundary-point of sourceRange to start boundary-point of Range on which compareBoundaryPoints is invoked.

Since:
DOM Level 2
Enumerator:
START_TO_START 
START_TO_END 
END_TO_END 
END_TO_START 

Constructor & Destructor Documentation

xercesc::DOMRange::DOMRange ( ) [inline, protected]
xercesc::DOMRange::DOMRange ( const DOMRange ) [inline, protected]
virtual xercesc::DOMRange::~DOMRange ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual DOMDocumentFragment* xercesc::DOMRange::cloneContents ( ) const [pure virtual]

Duplicates the contents of a Range.

Returns:
A DOMDocumentFragment that contains content equivalent to this Range.
Exceptions:
DOMExceptionHIERARCHY_REQUEST_ERR: Raised if a DOMDocumentType node would be extracted into the new DOMDocumentFragment.
INVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
Since:
DOM Level 2
virtual DOMRange* xercesc::DOMRange::cloneRange ( ) const [pure virtual]

Produces a new Range whose boundary-points are equal to the boundary-points of the Range.

Returns:
The duplicated Range.
Exceptions:
DOMExceptionINVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
Since:
DOM Level 2
virtual void xercesc::DOMRange::collapse ( bool  toStart) [pure virtual]

Collapse a Range onto one of its boundary-points.

Parameters:
toStartIf TRUE, collapses the Range onto its start; if FALSE, collapses it onto its end.
Exceptions:
DOMExceptionINVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
Since:
DOM Level 2
virtual short xercesc::DOMRange::compareBoundaryPoints ( CompareHow  how,
const DOMRange sourceRange 
) const [pure virtual]

Compare the boundary-points of two Ranges in a document.

Parameters:
howA code representing the type of comparison, as defined above.
sourceRangeThe Range on which this current Range is compared to.
Returns:
-1, 0 or 1 depending on whether the corresponding boundary-point of the Range is respectively before, equal to, or after the corresponding boundary-point of sourceRange.
Exceptions:
DOMExceptionWRONG_DOCUMENT_ERR: Raised if the two Ranges are not in the same DOMDocument or DOMDocumentFragment.
INVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
Since:
DOM Level 2
virtual void xercesc::DOMRange::deleteContents ( ) [pure virtual]

Removes the contents of a Range from the containing document or document fragment without returning a reference to the removed content.

Exceptions:
DOMExceptionNO_MODIFICATION_ALLOWED_ERR: Raised if any portion of the content of the Range is read-only or any of the nodes that contain any of the content of the Range are read-only.
INVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
Since:
DOM Level 2
virtual void xercesc::DOMRange::detach ( ) [pure virtual]

Called to indicate that the Range is no longer in use and that the implementation may relinquish any resources associated with this Range.

Subsequent calls to any methods or attribute getters on this Range will result in a DOMException being thrown with an error code of INVALID_STATE_ERR.

Exceptions:
DOMExceptionINVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
Since:
DOM Level 2
virtual DOMDocumentFragment* xercesc::DOMRange::extractContents ( ) [pure virtual]

Moves the contents of a Range from the containing document or document fragment to a new DOMDocumentFragment.

Returns:
A DOMDocumentFragment containing the extracted contents.
Exceptions:
DOMExceptionNO_MODIFICATION_ALLOWED_ERR: Raised if any portion of the content of the Range is read-only or any of the nodes which contain any of the content of the Range are read-only.
HIERARCHY_REQUEST_ERR: Raised if a DOMDocumentType node would be extracted into the new DOMDocumentFragment.
INVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
Since:
DOM Level 2
virtual bool xercesc::DOMRange::getCollapsed ( ) const [pure virtual]

TRUE if the Range is collapsed

Exceptions:
DOMExceptionINVALID_STATE_ERR: Raised if detach() has already been invoked on this object.

Since:
DOM Level 2
virtual const DOMNode* xercesc::DOMRange::getCommonAncestorContainer ( ) const [pure virtual]

The deepest common ancestor container of the Range's two boundary-points.

Exceptions:
DOMExceptionINVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
Since:
DOM Level 2
virtual DOMNode* xercesc::DOMRange::getEndContainer ( ) const [pure virtual]

DOMNode within which the Range ends

Exceptions:
DOMExceptionINVALID_STATE_ERR: Raised if detach() has already been invoked on this object.

Since:
DOM Level 2
virtual XMLSize_t xercesc::DOMRange::getEndOffset ( ) const [pure virtual]

Offset within the ending node of the Range.

Exceptions:
DOMExceptionINVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
Since:
DOM Level 2
virtual DOMNode* xercesc::DOMRange::getStartContainer ( ) const [pure virtual]

DOMNode within which the Range begins

Exceptions:
DOMExceptionINVALID_STATE_ERR: Raised if detach() has already been invoked on this object.

Since:
DOM Level 2
virtual XMLSize_t xercesc::DOMRange::getStartOffset ( ) const [pure virtual]

Offset within the starting node of the Range.

Exceptions:
DOMExceptionINVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
Since:
DOM Level 2
virtual void xercesc::DOMRange::insertNode ( DOMNode newNode) [pure virtual]

Inserts a node into the DOMDocument or DOMDocumentFragment at the start of the Range.

If the container is a DOMText node, this will be split at the start of the Range (as if the DOMText node's splitText method was performed at the insertion point) and the insertion will occur between the two resulting DOMText nodes. Adjacent DOMText nodes will not be automatically merged. If the node to be inserted is a DOMDocumentFragment node, the children will be inserted rather than the DOMDocumentFragment node itself.

Parameters:
newNodeThe node to insert at the start of the Range
Exceptions:
DOMExceptionNO_MODIFICATION_ALLOWED_ERR: Raised if an ancestor container of the start of the Range is read-only.
WRONG_DOCUMENT_ERR: Raised if newNode and the container of the start of the Range were not created from the same document.
HIERARCHY_REQUEST_ERR: Raised if the container of the start of the Range is of a type that does not allow children of the type of newNode or if newNode is an ancestor of the container.
INVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
DOMRangeExceptionINVALID_NODE_TYPE_ERR: Raised if newNode is an DOMAttr, DOMEntity, DOMNotation, or DOMDocument node.
Since:
DOM Level 2
virtual void xercesc::DOMRange::release ( ) [pure virtual]

Called to indicate that this Range is no longer in use and that the implementation may relinquish any resources associated with it.

(release() will call detach() where appropriate)

Access to a released object will lead to unexpected result.

virtual void xercesc::DOMRange::selectNode ( const DOMNode refNode) [pure virtual]

Select a node and its contents.

Parameters:
refNodeThe node to select.
Exceptions:
DOMRangeExceptionINVALID_NODE_TYPE_ERR: Raised if an ancestor of refNode is an DOMEntity, DOMNotation or DOMDocumentType node or if refNode is a DOMDocument, DOMDocumentFragment, DOMAttr, DOMEntity, or DOMNotation node.
DOMExceptionINVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
WRONG_DOCUMENT_ERR: Raised if refNode was created from a different document than the one that created this range.
Since:
DOM Level 2
virtual void xercesc::DOMRange::selectNodeContents ( const DOMNode refNode) [pure virtual]

Select the contents within a node.

Parameters:
refNodeDOMNode to select from
Exceptions:
DOMRangeExceptionINVALID_NODE_TYPE_ERR: Raised if refNode or an ancestor of refNode is an DOMEntity, DOMNotation or DOMDocumentType node.
DOMExceptionINVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
WRONG_DOCUMENT_ERR: Raised if refNode was created from a different document than the one that created this range.
Since:
DOM Level 2
virtual void xercesc::DOMRange::setEnd ( const DOMNode refNode,
XMLSize_t  offset 
) [pure virtual]

Sets the attributes describing the end of a Range.

Parameters:
refNodeThe refNode value. This parameter must be different from null.
offsetThe endOffset value.
Exceptions:
DOMRangeExceptionINVALID_NODE_TYPE_ERR: Raised if refNode or an ancestor of refNode is an DOMEntity, DOMNotation, or DOMDocumentType node.
DOMExceptionINDEX_SIZE_ERR: Raised if offset is negative or greater than the number of child units in refNode. Child units are 16-bit units if refNode is a type of DOMCharacterData node (e.g., a DOMText or DOMComment node) or a DOMProcessingInstruction node. Child units are Nodes in all other cases.
INVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
WRONG_DOCUMENT_ERR: Raised if refNode was created from a different document than the one that created this range.
Since:
DOM Level 2
virtual void xercesc::DOMRange::setEndAfter ( const DOMNode refNode) [pure virtual]

Sets the end of a Range to be after a node.

Parameters:
refNodeRange ends after refNode.
Exceptions:
DOMRangeExceptionINVALID_NODE_TYPE_ERR: Raised if the root container of refNode is not a DOMAttr, DOMDocument or DOMDocumentFragment node or if refNode is a DOMDocument, DOMDocumentFragment, DOMAttr, DOMEntity, or DOMNotation node.
DOMExceptionINVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
WRONG_DOCUMENT_ERR: Raised if refNode was created from a different document than the one that created this range.
Since:
DOM Level 2
virtual void xercesc::DOMRange::setEndBefore ( const DOMNode refNode) [pure virtual]

Sets the end position to be before a node.

Parameters:
refNodeRange ends before refNode
Exceptions:
DOMRangeExceptionINVALID_NODE_TYPE_ERR: Raised if the root container of refNode is not an DOMAttr, DOMDocument, or DOMDocumentFragment node or if refNode is a DOMDocument, DOMDocumentFragment, DOMAttr, DOMEntity, or DOMNotation node.
DOMExceptionINVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
WRONG_DOCUMENT_ERR: Raised if refNode was created from a different document than the one that created this range.
Since:
DOM Level 2
virtual void xercesc::DOMRange::setStart ( const DOMNode refNode,
XMLSize_t  offset 
) [pure virtual]

Sets the attributes describing the start of the Range.

Parameters:
refNodeThe refNode value. This parameter must be different from null.
offsetThe startOffset value.
Exceptions:
DOMRangeExceptionINVALID_NODE_TYPE_ERR: Raised if refNode or an ancestor of refNode is an DOMEntity, DOMNotation, or DOMDocumentType node.
DOMExceptionINDEX_SIZE_ERR: Raised if offset is negative or greater than the number of child units in refNode. Child units are 16-bit units if refNode is a type of DOMCharacterData node (e.g., a DOMText or DOMComment node) or a DOMProcessingInstruction node. Child units are Nodes in all other cases.
INVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
WRONG_DOCUMENT_ERR: Raised if refNode was created from a different document than the one that created this range.
Since:
DOM Level 2
virtual void xercesc::DOMRange::setStartAfter ( const DOMNode refNode) [pure virtual]

Sets the start position to be after a node.

Parameters:
refNodeRange starts after refNode
Exceptions:
DOMRangeExceptionINVALID_NODE_TYPE_ERR: Raised if the root container of refNode is not an DOMAttr, DOMDocument, or DOMDocumentFragment node or if refNode is a DOMDocument, DOMDocumentFragment, DOMAttr, DOMEntity, or DOMNotation node.
DOMExceptionINVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
WRONG_DOCUMENT_ERR: Raised if refNode was created from a different document than the one that created this range.
Since:
DOM Level 2
virtual void xercesc::DOMRange::setStartBefore ( const DOMNode refNode) [pure virtual]

Sets the start position to be before a node.

Parameters:
refNodeRange starts before refNode
Exceptions:
DOMRangeExceptionINVALID_NODE_TYPE_ERR: Raised if the root container of refNode is not an DOMAttr, DOMDocument, or DOMDocumentFragment node or if refNode is a DOMDocument, DOMDocumentFragment, DOMAttr, DOMEntity, or DOMNotation node.
DOMExceptionINVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
WRONG_DOCUMENT_ERR: Raised if refNode was created from a different document than the one that created this range.
Since:
DOM Level 2
virtual void xercesc::DOMRange::surroundContents ( DOMNode newParent) [pure virtual]

Reparents the contents of the Range to the given node and inserts the node at the position of the start of the Range.

Parameters:
newParentThe node to surround the contents with.
Exceptions:
DOMExceptionNO_MODIFICATION_ALLOWED_ERR: Raised if an ancestor container of either boundary-point of the Range is read-only.
WRONG_DOCUMENT_ERR: Raised if newParent and the container of the start of the Range were not created from the same document.
HIERARCHY_REQUEST_ERR: Raised if the container of the start of the Range is of a type that does not allow children of the type of newParent or if newParent is an ancestor of the container or if node would end up with a child node of a type not allowed by the type of node.
INVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
DOMRangeExceptionBAD_BOUNDARYPOINTS_ERR: Raised if the Range partially selects a non-text node.
INVALID_NODE_TYPE_ERR: Raised if node is an DOMAttr, DOMEntity, DOMDocumentType, DOMNotation, DOMDocument, or DOMDocumentFragment node.
Since:
DOM Level 2
virtual const XMLCh* xercesc::DOMRange::toString ( ) const [pure virtual]

Returns the contents of a Range as a string.

This string contains only the data characters, not any markup.

Returns:
The contents of the Range.
Exceptions:
DOMExceptionINVALID_STATE_ERR: Raised if detach() has already been invoked on this object.
Since:
DOM Level 2

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/DOMImplementationLS_8hpp_source.html0000644000151400015140000002752711653571065021203 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMImplementationLS.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMImplementationLS.hpp 671894 2008-06-26 13:29:21Z borisk $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMIMPLEMENTATIONLS_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMIMPLEMENTATIONLS_HPP
00024 
00025 #include <xercesc/util/PlatformUtils.hpp>
00026 
00027 XERCES_CPP_NAMESPACE_BEGIN
00028 
00029 
00030 class DOMLSParser;
00031 class DOMLSSerializer;
00032 class DOMLSInput;
00033 class DOMLSOutput;
00034 class MemoryManager;
00035 class XMLGrammarPool;
00036 
00049 class CDOM_EXPORT DOMImplementationLS
00050 {
00051 protected:
00052     // -----------------------------------------------------------------------
00053     //  Hidden constructors
00054     // -----------------------------------------------------------------------
00057     DOMImplementationLS() {};
00059 
00060 private:
00061     // -----------------------------------------------------------------------
00062     // Unimplemented constructors and operators
00063     // -----------------------------------------------------------------------
00066     DOMImplementationLS(const DOMImplementationLS &);
00067     DOMImplementationLS & operator = (const DOMImplementationLS &);
00069 
00070 public:
00071     // -----------------------------------------------------------------------
00072     //  All constructors are hidden, just the destructor is available
00073     // -----------------------------------------------------------------------
00080     virtual ~DOMImplementationLS() {};
00082 
00083     // -----------------------------------------------------------------------
00084     //  Public constants
00085     // -----------------------------------------------------------------------
00094     enum DOMImplementationLSMode
00095     {
00096         MODE_SYNCHRONOUS = 1,
00097         MODE_ASYNCHRONOUS = 2
00098     };
00100 
00101     // -----------------------------------------------------------------------
00102     // Virtual DOMImplementationLS interface
00103     // -----------------------------------------------------------------------
00106     // -----------------------------------------------------------------------
00107     //  Factory create methods
00108     // -----------------------------------------------------------------------
00141     virtual DOMLSParser* createLSParser(const DOMImplementationLSMode mode,
00142                                         const XMLCh* const     schemaType,
00143                                         MemoryManager* const   manager = XMLPlatformUtils::fgMemoryManager,
00144                                         XMLGrammarPool*  const gramPool = 0) = 0;
00145 
00146 
00156     virtual DOMLSSerializer* createLSSerializer(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager) = 0;
00157 
00166     virtual DOMLSInput* createLSInput(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager) = 0;
00167 
00176     virtual DOMLSOutput* createLSOutput(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager) = 0;
00178 };
00179 
00180 
00181 XERCES_CPP_NAMESPACE_END
00182 
00183 #endif
XQilla-2.3.0/docs/dom3-api/xqilla-dom3_8hpp_source.html0000644000151400015140000001050611653571065017536 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xqilla-dom3.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #include <xqilla/dom-api/XQillaExpression.hpp>
00021 #include <xqilla/dom-api/XPath2Result.hpp>
00022 #include <xqilla/dom-api/XQillaNSResolver.hpp>
00023 #include <xqilla/exceptions/XQillaException.hpp>
00024 #include <xqilla/utils/XQillaPlatformUtils.hpp>
00025 #include <xqilla/utils/XStr.hpp>
00026 #include <xqilla/utils/UTF8Str.hpp>
00027 #include <xqilla/framework/XPath2MemoryManager.hpp>
00028 
XQilla-2.3.0/docs/dom3-api/functions_0x77.html0000644000151400015140000001164111653571065015663 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- w -

XQilla-2.3.0/docs/dom3-api/xqilla-dom3_8hpp__incl.map0000644000151400015140000000113711653571066017134 00000000000000 XQilla-2.3.0/docs/dom3-api/functions_func_0x6d.html0000644000151400015140000001101311653571065016743 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
 

- m -

XQilla-2.3.0/docs/dom3-api/classXQillaNSResolver__inherit__graph.md50000644000151400015140000000004011653571065022202 000000000000005baba95a7973866ee103a684ae431a53XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMDocumentRange-members.html0000644000151400015140000000601411653571065022652 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMDocumentRange Member List

This is the complete list of members for xercesc::DOMDocumentRange, including all inherited members.
createRange()=0xercesc::DOMDocumentRange [pure virtual]
DOMDocumentRange()xercesc::DOMDocumentRange [inline, protected]
~DOMDocumentRange()xercesc::DOMDocumentRange [inline, virtual]
XQilla-2.3.0/docs/dom3-api/DOMDocumentTraversal_8hpp_source.html0000644000151400015140000002512111653571065021405 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMDocumentTraversal.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMDocumentTraversal.hpp 671894 2008-06-26 13:29:21Z borisk $
00020 */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMDOCUMENTTRAVERSAL_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMDOCUMENTTRAVERSAL_HPP
00024 
00025 #include <xercesc/util/XercesDefs.hpp>
00026 #include <xercesc/dom/DOMNodeFilter.hpp>
00027 
00028 XERCES_CPP_NAMESPACE_BEGIN
00029 
00030 
00031 class DOMNode;
00032 class DOMNodeIterator;
00033 class DOMTreeWalker;
00034 
00035 
00047 class CDOM_EXPORT DOMDocumentTraversal {
00048 
00049 protected:
00050     // -----------------------------------------------------------------------
00051     //  Hidden constructors
00052     // -----------------------------------------------------------------------
00055     DOMDocumentTraversal() {};
00057 
00058 private:
00059     // -----------------------------------------------------------------------
00060     // Unimplemented constructors and operators
00061     // -----------------------------------------------------------------------
00064     DOMDocumentTraversal(const DOMDocumentTraversal &);
00065     DOMDocumentTraversal & operator = (const DOMDocumentTraversal &);
00067 
00068 public:
00069     // -----------------------------------------------------------------------
00070     //  All constructors are hidden, just the destructor is available
00071     // -----------------------------------------------------------------------
00078     virtual ~DOMDocumentTraversal() {};
00080 
00081     // -----------------------------------------------------------------------
00082     //  Virtual DOMDocumentRange interface
00083     // -----------------------------------------------------------------------
00110     virtual DOMNodeIterator *createNodeIterator(DOMNode* root,
00111                                                 DOMNodeFilter::ShowType whatToShow,
00112                                                 DOMNodeFilter* filter,
00113                                                 bool entityReferenceExpansion) = 0;
00144     virtual DOMTreeWalker  *createTreeWalker(DOMNode* root,
00145                                              DOMNodeFilter::ShowType whatToShow,
00146                                              DOMNodeFilter* filter,
00147                                              bool entityReferenceExpansion) = 0;
00148 
00150 };
00151 
00152 
00153 XERCES_CPP_NAMESPACE_END
00154 
00155 #endif
XQilla-2.3.0/docs/dom3-api/inherit_graph_4.md50000644000151400015140000000004011653571065015644 00000000000000fbdce274498ea69b09e805af72d245e4XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMLSSerializerFilter.html0000644000151400015140000002254611653571066022216 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMLSSerializerFilter Class Reference

#include <DOMLSSerializerFilter.hpp>

Inheritance diagram for xercesc::DOMLSSerializerFilter:

List of all members.

Public Member Functions

Destructor
virtual ~DOMLSSerializerFilter ()
 Destructor.
Functions introduced in DOM Level 3
virtual FilterAction acceptNode (const DOMNode *node) const =0
 Interface from DOMNodeFilter, to be implemented by implementation (derived class)
virtual ShowType getWhatToShow () const =0
 Tells the DOMLSSerializer what types of nodes to show to the filter.

Protected Member Functions

Hidden constructors
 DOMLSSerializerFilter ()

Constructor & Destructor Documentation

xercesc::DOMLSSerializerFilter::DOMLSSerializerFilter ( ) [inline, protected]
virtual xercesc::DOMLSSerializerFilter::~DOMLSSerializerFilter ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual FilterAction xercesc::DOMLSSerializerFilter::acceptNode ( const DOMNode node) const [pure virtual]

Interface from DOMNodeFilter, to be implemented by implementation (derived class)

Implements xercesc::DOMNodeFilter.

virtual ShowType xercesc::DOMLSSerializerFilter::getWhatToShow ( ) const [pure virtual]

Tells the DOMLSSerializer what types of nodes to show to the filter.

See DOMNodeFilter for definition of the constants. The constant SHOW_ATTRIBUTE is meaningless here, attribute nodes will never be passed to a DOMLSSerializerFilter.

Returns:
The constants of what types of nodes to show.
Since:
DOM Level 3

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMLSOutput-members.html0000644000151400015140000001115111653571065021654 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMLSOutput Member List

This is the complete list of members for xercesc::DOMLSOutput, including all inherited members.
DOMLSOutput()xercesc::DOMLSOutput [inline, protected]
getByteStream() const =0xercesc::DOMLSOutput [pure virtual]
getEncoding() const =0xercesc::DOMLSOutput [pure virtual]
getSystemId() const =0xercesc::DOMLSOutput [pure virtual]
release()=0xercesc::DOMLSOutput [pure virtual]
setByteStream(XMLFormatTarget *stream)=0xercesc::DOMLSOutput [pure virtual]
setEncoding(const XMLCh *const encodingStr)=0xercesc::DOMLSOutput [pure virtual]
setSystemId(const XMLCh *const systemId)=0xercesc::DOMLSOutput [pure virtual]
~DOMLSOutput()xercesc::DOMLSOutput [inline, virtual]
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMNode__inherit__graph.png0000644000151400015140000016070611653571066022407 00000000000000‰PNG  IHDR{= ÙöqbKGDÿÿÿ ½§“ IDATxœìÝy<Ôùÿð÷$åÊ1ãLD,_¤P»6«(¾ÛA%›J›îm¶6Ò±éÜ]’v±…¢¨­MBI¢CCm›kHs†1ƒæúüþøìw~³®¤ãx=ûÇçóž÷ëý~ÍÛÄk?×0 CHŒŒ´Tœ@² â’',Yi'€¤dffîÙ³GÚY v©©©ÒN€ôAÅ ¬êêê»wïzzzJ;‘AêíÛ·999ÒÎ@Ÿ'àâãã¥Â ¿`Áig O€ë8€dAÅ $ *N YPqÉ‚ŠHTœôu†††>>>µµµ¢Ølv`` µµµ’’’ݾ}ûx<ž0ÖÄÄÃ0Ñþîî¸Xز{÷n°ÿþ^x;!¨8è²³³i4ZeeeTT“É´µµmhhÀ_jjj?~|^^^XXØÓ§Oƒ‚‚bcc]]]ù|>ÞJ¥¾xñB8ƒÁ¸ÿ¾èà†]¾|ÙÀÀ ..NØXZZª¡¡Ñ~è¨8è455Éd²®®®³³sRR’‘‘ÑÑ£Gñ—BCC555ÓÒÒÜÜÜLMMçΛ››K¥R£¢¢ð... ¡’““œœD/((øë¯¿"##óóóß¼yƒ7 ‚úúúöÛ@@Å µääd]]]ƒºté’©©)›ÍFq¹ÜÀÀ@‰¤¥¥Èår‹‹‹ BZZšAFFFpp°¦¦¦ðpcû(„PJJŠ•••‚‚‚‘‘Qtt4BˆÇãuŽOÑ~» °jÕª›7oâ»111;wî$‰ÂÆ Œ‰‰Áw===ããã…'Ö¯\¹âáá!:àåË—œœ\\\ÌÌÌ„‡9'L˜€"“Ém¶E×!++«çK`0Š j³fÍrqqÙ¼ysuuõæÍ›cbb† †:zôhYYÙ“'OÒÒÒîÝ»·sçN¼ÿáÇýõ×ÌÌÌ«W¯Þ¼y3==ýÍ›7{÷îÅ_mÅf³===×®]K¥RwìØáëëËf³ùå—Ã555#""Úo·gbbRRR‚jhh¨ªª²±±iÓÁÆÆæõë×øöW_}Åb±ðë÷îÝûöÛo…=ñSê^^^¡yóæ +Nü *«ªªÚl‹®Ãرc?}É J^<}´ƒÁÐÓÓ³²² 6š™™Ñh4|;55ÕÆÆ¦¨¨!D¡P0 3fLbb"þê«W¯„Ûí£ètºœœÜ¡C‡ †@ hjjâóù…w!TTT$Ú’——§ªªŠ'ª­­mòèÑ# aìÚµkƒ‚‚0 ‹‰‰quu3''GVV¶®®ð§OŸ"„ 0 Ãß/>Zûm|ºÖÍõ0À1N0Ø©ªªúùù½|ùrõêÕÂF*•ª­­ßîêêZVV†·›™™!„ÊËËMLLðssó9sæt¥¦¦–žžž““£§§çääôàÁ™Î»¯¨¨ÈØØOžL&ççç·éŸŸ?nÜ8á®§§gBB†ažRçñx½¨3ø:Ý'ìÞ¾}{òäIa£†††ð°"ƒÁÀO+#„äääB:::T*oÉÏÏžoÕÒÒ"ètúòåËgΜI§Ó; ï& ÃNŸ>=}út|×ÛÛ;44Txg:BˆÍf‡……¹¹¹ [›šš²²²RSSgÏž-lçóùqqqGŽiúŸ-[¶ÄÅÅaÿ~šR{ø:Ý'Ô¯¯ïúõë/]ºt÷îÝ””¼}îܹAAAååå ÅÍÍ-<<\4jñâÅÛ·o/,,,,,\·n]yyygQaêÔ©W¯^e2™GNNNQQ±³ðÆÆÆóçÏ·ßFÕÖÖVUU½{÷.33sΜ9eee[¶lÁ_Ú¹sgMMÍ”)Snß¾]TT”””äàà ««+zÈ–H$Λ7oåÊ•öööZZZÂöÔÔÔx{{ÿŸE‹ š²X,agÑmàÓHél>×ëOœ8ammÍáp0 KJJÒÖÖ¦Óé†1™ÌeË–©©©©««ûùù±ÙlÑk[[[tttTTT¼¼¼ ÞÞ> OÃØØX^^ÞÌÌìúõë]„wvé¤è?X}}}ooïêêjÑwÁb±üýý----,,öìÙÓÜÜ,ŒÅ»fdd „ÂÃÃEÛW®\9uêTÑ¡±±ñ?üÀår‡Ža˜è¶hbŸ¿þ ö±Ógô;|¾àÍ›êsç®üòË& ã<H@||ü‚ à7 „¬´@\ØSä»Ä MPq‚þÃá=xPtûvÁ;…µµM$’ʤI¦¾¾_ýµ ‰¤"íìШ8AŸÖÔÔzïÞ_·nÜ»÷ŠÍæØØè¯Xáäêj1f YÚ© » â}ч¼?ÿ,¼r%ïþý7†M˜`üã3ÝÜ,Éd8œ ô?Pq‚>ð'O¨ yÉÉù,VëW_™<8êT Ei§€žƒŠô t:ûâŬ+WžP©u&&¤uë¦Ì›7N[[UÚy@  âRöú5-2òÁÕ«O†•Ÿ=ÛÖÓs¼´“@ ðgæK; Ð{àûÀ 'O”ô42ò…òvÜ8Ãcǹ¹ýGNŽ(ö‰\]]Å>&èŽêêji§Ð/ÅÇÇK; q=:zô¨´³ WAÅ z[K çòåÜÈÈûTjÝäÉæqq«M‚Ø'Ò××÷ôôû° ›ÔÔÔÌÌ̤EÿÚÁŽn‚A*NÐ{8^LÌ£ãÇS›š>,\hÿÛo+ŒŒ4%7Ýĉ'Nœ(¹ñÐMPq‚ÞÐÚÊŒ¼æL‡ÃóósZ¾|’ª*Ü~ PqÉâpx¿ý–}út:ƒÁ^¾|ÒêÕÎ#F “vRèUPq ¢PÞ]¡P*çηeË´‘#Õ¥¤*N ÍaaDG?²³•š`f¦-íŒ 52ÒN 4|¾àüùû{îÞ}uá‚obâ:(7T" }||jkkE;°ÙìÀÀ@kkk%%%;;»}ûöñxÜÎÎ.))©wÞàs@Å ÄéõkÚœ9'wíºîéiw÷îVWW ig‚ììlVYYÅd2mmmð—šššÆŸ——öôéÓ   ØØXWWW>Ÿw R©/^¼Å`0îß¿/Ü­¯¯;v¬¢¢b\\\nnîÂ… ½¼¼þüóÏÞ|w)--ÕÐÐvôQpVˆ†a.<Ø»÷†¥¥ÞíÛ[,,t¥@j455Éd2BHWW÷›o¾ùæ›oŽ=ºk×.„Phh¨¦¦fZZ‘HD™ššN›6ÍÒÒ2**êûï¿G¹¸¸$$$ØØØàC%'';99ݺu ß vvv>þ<¾ûÅ_TUU:thÚ´i½ÿ6ÛõõõÒ΀> Žq1 Ñ¼¼Î††&ûûO»vm=”›HHrr²®®.ƒÁ@]ºtÉÔÔ”Íf#„¸\n`` ‰DÒÒÒ är¹ÅÅÅ!--ÍÀÀ ###88ØÀÀ@SSÓÇÇGx¸±}B(%%ÅÊÊJAAÁÈÈ(::!Äãñ: ǧh¿Ý@XµjÕÍ›7ñݘ˜˜;wâå&nذa111ø®§§g||¼ðÄú•+W<<<„¯^½ºqãFÑñƒƒƒ###ñ톆†¥K—jhhèéé´¶¶â \¸pÁÜÜ\SSsÿþýÑÑÑ£FRQQùé§Ÿ„vݡÅ"±±±æææ#FŒ8pàBh„ !¼Ô´…ðyîÜ)43ûÑÙ9¬°°RÚ¹ÐÅÅÅuçw²Ï’%KªªªH$ÒãÇñư°°yóæUTTP([[ÛmÛ¶!„ÜÝÝïÝ»baaA¡P :‹b±XC† 9sæ F‹ŒŒ”••e±Xì0¼¡¡!""¢ý6B¨¨¨H4ç¼¼{ö ïÐfÏó£Ú/•žž.Ú*NºgÕAÑéì NGE=ÿîС rÒ΀AAUUÕÏÏïåË—«W¯6R©TmmmüöpWWײ²2¼ÿjûòòr¼ÅÜÜ|Μ9E©©©¥§§çääèéé999=xð@FF¦³ðî+**266Æ“'“Éùùùm:äçç7N¸ëé陀aX›Sêjjj$éÕ«W¢±yyyvvvÍÍÍÕÕÕ|>Ÿ!4zôèÊÊJ|[II !$''×f[¨ë-¯ŽŽNû¡‚ŠôÄßWMŸ~ôýû†›77Ïžm+ítDÞ¾}{òäIa£†††ð°"ƒÁÈÉÉÁÛñbHGG‡J¥â-ùùù{÷îí,ª¥¥E $$$ÐéôåË—Ïœ9“N§wÞM†>}zúôéø®··whh¨ðÎt„›Í sss¶8::655eee¥¦¦Îž=[t´Y³f>|y|RLL —ËUTT$‘HD"±´´o/))ÑÕÏ5å-¯Œ ü  »à_ ød‰‰OÝÜ£}çN€‰ IÚé0ˆ__ßõë×_ºtéîÝ»)))xûܹsƒ‚‚ÊËË)Š››[xx¸hÔâÅ‹·oß^XXXXX¸nݺòòò΢ÂÔ©S¯^½Êd29Žœœœ¢¢bgáÂ{ÆE·BµµµUUUïÞ½ËÌÌœ3gNYYÙ–-[ð—vîÜYSS3eʔ۷o%%%988èêꊲ%‰óæÍ[¹r¥½½½–––è{Ù»woffæâÅ‹³³³)Ê®]»Ž?ŽÁrrr ,ذaCYYYaaáŽ;¼½½Å²ì]/o,K,“0ÐHáL>è·ø|Áž=)::›÷ìIáñøÒN€¥;×ö8qÂÚÚšÃá`–””¤­­ßFÃd2—-[¦¦¦¦®®îççÇf³E¯)lmm ÐÑÑQQQñòò^Ù> OÃØØX^^ÞÌÌìúõë]„‹N!º-ú'F__ßÛÛ»ººZô]°X,KKKEEE ‹={ö477 cñ£‰¡ððð6í†Q©T%%%{{ûäädáÈt:}ñâÅêêêÚÚÚ›7oniiiÛáöG;t¸Pí{r¹\GGÇáÇwýCÄà:N0(°ÿv 3--œOM}yäˆ×œ9p&1‹_°`üN àg !x<è–ÚÚ&_ßÈ’’Úè莎¦ÒNý Tœàã¨ÔºE‹ÎböÇ› á;ÜðiàÎ!ðyyeîîG55•nÝÚå&z*NЕÔÔ— ž±³3¼|y•ªª¢´Ó`ÀÂ0¬±‘C ?Þú!8«:ûhÛ¶+ :ìßïA$Âÿœ€þŠÏô‘puucu5ÿ¯¼¼^t·±±!$'_É ˜ â;|øö‘#w¶l™ºeË4 ítè‰æfNLÌ£èèì‚zmR&³•Fk Ñª«™ïÞ1ª«™UUïß7TW7ÖÕýó¤F"QFCCIWWUKKÙÑÑD[[…DRyó&ÿ§ŸN÷ZžÐ› âO;räÎ?N_»vŠ´s '›/\È:s&ÅjÅ0Äd¶(+×àlö‡ÊJFM ³ªª±¦?ZùÏaKüP%Bˆ@ hi)‘H*#Gª¨ÛÛÒÒR&“U ÔI$å¿6>¾T ø ®$ OŠ´uìXê·öí›·dÉW¨´´ôîÝ» x~~~mZ¨ÔºÃ‡o_¿žâñþù*Å÷ï>©âÄ0¬¦†Ùõp„¬¬Œ®®^J~ýµ©‡‡2‰„ÿ§¢­­"/¿`àð üËîÝÉ™§N-þöÛ±’žëÉ“'+W®”ô,``­8‹ŠªO½ví9@Öš8­ÑÌL»M,'x÷Ž—’õUULáa˪ªÆxx7%%mmUIyäHu{ûQ$’ ^VŽ©®¢·Ó@·@Å þaØ?^}tòäâY³lzsÞ^› $ø·¶àÛÏŸW9òç½{ÉÊÊðù‚6=‰D™'O¨ïÝ;FUUcUU#ÖPUÅ|ÿ¾¡¥…ƒ÷QPÓÖV%“• ÔííÈde5IYGGUSS©7o<‚˦Tœ!„,(èÊåËOò™1ÃZÚéÐ]©©/K}ö¬\NŽˆa—Ëo߇H$ÄÄd3l]]5ü2J›‘Âã”$’²šÚ°¾p|âĉñññÒÎ$Bú¿dÔ Ø?$$$äEFúº¸|!ítè–7oGŒð\²ä¼Œ !Ôa­‰°I“Æ:´`È>ýO______ÚY€Dô‰gÔé ¹Ÿþ”› ¿hhh®«kX$’²@€‰2Æ é¬3'¨¯oêãå& lð+x°Û¹3éâŬˆˆeÓ¦YJ;ºKUUñË/IÇŽÝzþüº:ÖóçåÊÛGJrsËx<¾¼¼,Ÿ/½ óí[†³ç vüøÝ üòË"(7Aÿ¥¡1ÜÕÕÂÕÕ!ÔÔÔúä õÉ“²œœ’gÏ*>|à*(Èq¹¼š¦´Ó€A *ÎÁëìÙŒýûoîÝ;ÏÃc¼´s@<””œÍœÍB\.¿°ð]^^ÙãÇ%OŸR[[¹>w@/€ë8©K—rBC“·nu_¶ÌQÚ¹ô{†††>>>µµµ¢Ølv`` µµµ’’’ݾ}ûx<ž0ÖÄĤÍ#¢ÜÝÝ Bqq1¾ûþýûE‹>ÜÎÎ.))Itja7©ûè:ô299âØ±~~N‘‘¾ùù¡Pn€AÅ9¥¤äoÝš°zµó¦MS¥Ë‘M£Ñ*++£¢¢˜L¦­­mCCþRSSÓøñãóòòž>}ëêêÊçÿso5•J}ñâ…p(ƒqÿþ}án}}ýرcãâârss.\èååõçŸö›*--ÕÐÐø¤.ÖA,ãè§ âtrsK7nü}îÜqÛ·Ïv.‡¦¦&™LÖÕÕuvvNJJ222:zô(þRhh¨¦¦fZZš›››©©éܹssss©TjTTÞÁÅÅ%!!A8Trr²“““p788ØÙÙùüùó_|ñ…¿¿ÿúõë:Ô oJ Ô××RHë –ñôSPq.¥¥µË–]˜2å‹#Gö‹¯6INNÖÕÕe0¡K—.™šš²Ùl„—Ë $‘HZZZ\.·¸¸˜@ ¤¥¥dddhjjúøø³µB¥¤¤XYY)((EGG#„x<^‡áøí·Û «V­ºyó&¾³sçN"‘(ì0lذÀÀÀ˜˜|×ÓÓ3>>^xbýÊ•+ÂÎW¯^ݸq£èøÁÁÁ‘‘‘ÂÝ;wîŒ=ZMMíçŸÆ[nܸÕÖÖÞ¿¿0[|q²²²Úwèð-O˜0!D&“;[½6Ãv½í'm3~û ÕÕL{ûPOÏSOÚ¹`†ÅÅÅuçèãã³dÉ’ªª*‰ôøñc¼1,,lÞ¼y ÅÖÖvÛ¶mEEE!ww÷{÷î…„„XXXP(”‚‚‡€€€Î¢X,Ö!CΜ9C£Ñ"##eeeY,ÖÁƒ; ohhˆˆˆh¿***Í9//OUUÃ0¼V®­­mó¦>|H"‘ðØ×¯_“ÉäçÏŸãÃ***ÖÕÕácâát:½³ÅA͘1ƒÉd^½z!TWWÇd2ååå}}}+++ñ¢¶¦¦Ftqh4Zû¾e¿³ðÎô â|ô葆††0víÚµAAA†ÅÄĸºº Ûét:BˆÁ`t1uFF†aøU¡EEE>|øë¯¿X,ŸÏÏÌÌÄE§Ã¾å6g×kÞõ:t‘Þ³Ã]/;TœÐÀYõAǬZõkUUcLŒŸªª¢´Óù4ªªª~~~/_¾\½zµ°‘J¥jkkã·E»ºº–••áífff¡òòr¼ÅÜÜ|Μ9E©©©¥§§çääèéé999=xð@FF¦³ðî+**266Æ“'“Éùùùm:äçç7N¸ëé陀aX›Sêjjj$éÕ«W¢±yyyvvvÍÍÍø®ŽŽBHFæŸËòòòoÞ¼qss7nÜÅ‹EñÅé°CwÞr×kÞõ:t‘ÕGÓ0@Å9(üøã•GJ~ûm…º´sùdoß¾=yò¤‹‹‹¿¿¿°QCCCx ŒÁ`äääàírrr!*•Š·äççïÝ»·³¨––@@§Ó—/_>sæL:ÞYx7avúôééÓ§ã»ÞÞÞ¡¡¡Â;ÓBl6;,,ÌÍÍMØâèèØÔÔ”•••šš:{ölÑÑfÍšuøðaLäñI111\.WQñŸÿshs9iKKËüùóŸ={vêÔ)Ñ—ðÅé°CwÞr×kÞõ:t‘ÕGÓ0@Å9ðEE=øý÷œ#G¼¬­õ¥Ë'¾¾¾ëׯ¿téÒÝ»wSRRðö¹sç•——S(77·ððpѨŋoß¾½°°°°°pݺuåååE„©S§^½z•Édr8999EEÅÎÂÏŸ?ß~!T[[[UUõîÝ»ÌÌÌ9s攕•mÙ²içÎ555S¦L¹}ûvQQQRR’ƒƒƒ®®®è!["‘8oÞ¼•+WÚÛÛkii‰¾—½{÷fff.^¼8;;›B¡ìÚµëøñã]Á>|àp8òòò---ÁÁÁ¡¦¦¦vèì-#„ð 4?ºæ]¯CYáã4mý[ïŸÈ½)3óµ¾þ–Ó§Ó¥HºsÞ‰'¬­­9†aIIIÚÚÚøm4L&sÙ²ejjjêêê~~~l6[ô¢ÀÖÖÖ€€///áuí£ð4ŒåååÍÌÌ®_¿ÞE¸è¢Û¢ÿ ôõõ½½½«««Eß‹Åò÷÷·´´TTT´°°Ø³gOss³0?p˜‘‘ oÓŽa•JõððÐÑÑQRR²··ONNŽ,ÚM¸}äÈ‘#FèëëŸ:uÊËËKKK«Í™í;tø–¹\®££ãðáÃ;[½6Ãv½í'm3~û]6à:NèGØ¿ÿN€äï¿«fÎüeîÜqû÷{J;—ÄÇÇ/X°> gàóýœU°ètö’%ç­¬ôwïž+í\0¨AÅ90ñx‚Õ«CED,•“#~´?Xk+77·”Ëå¼+É•v@"öìI~ò„šœ¼AMm˜´s@ êëYOžPssK³³K +BTêAi'ƒTœPl죈ˆûgÏ.±°Ð•v.ôž’’š'O¨99¥ÙÙoÞ¾eÈȈDüЦ††‘§t@j âh ßíØ‘èëûõŒÖÒÎÉ"†¤¦¾ÌÍ-ËÉ)yùò]k+WNŽˆaˆÇã#„L øçLºŽŽªT3€Á*Î…Á`/[9vìÈàào¥ ÔÐÐ]D"­X²ä¼¬¬ †!>_€êðbM §§Öë9øpšiàÀ0lãÆßy<þÙ³Kdeá' 2UUÅE‹F3™™ººjÁG$''SUÕøë¯SS_¾«©gË@oƒcœÇ™ `·c IDAT3éé¯ãâVkj*I;$ŽH$47äæ¾¸{÷Õá÷)”J"Q?ÒÙ†¡·oé?ÿ|ƒÉlÅ[ääˆd²Š¶¶ª¶¶ ™¬¢££J"©hk«èè¨ji)÷—Ç;¸ººJ;ð/“&Múé§Ÿ¤EíÞ½ûþýûÒÎ (©©©¢»Pq¹¹¥?ÿ|# ÀíË/GK;—Osöì9>“•%|¼+"ž>}Š"®®®®¹¹¥ÇŽÝMOÿKV–ˆ_Ç)Äã BCç|ûíX„Pccsyy}u5³ºšY^^_]ÝøêÕûôô×ïÞ1Øìxÿ!CdÉd--e2YÅÀ@DR&‘”GŽT'‘”55•edúÊgõîÝ»&LÐ×ïß^; =zôHM­_¼QPPðúõë‰'J;0¼}û6''§M#TœA}=kõêè)S¾Ø°ÁEÚ¹|‚–þ°a¶;wæ47²XyÒNôoööF±±~……ï~ùåέ[²²2Âk:1 #“UðmE++ÅGhll®ªbÖÔ0«ªkjðz”ùàÁ›òòúÆÆf¼¼¼¬šš"‰¤2r¤º––2™¬,,LutT{ÿàèæÍ›çÏŸßË“‚ €Äĉããã¥ðï„kÓg¿‡a˜¿†a‡- úÊÑ—®•–ÖFF>HHx¡§7uáB‡eËŽ©.í¤À@`i©{þü²üüŠcÇRïÜy)'Gäpx!aÅÙEÅ1cÈí_jmåVW3««««™õxaJ¡¼½{—YYÉžÊWQQ= *,LutT•”ÄûN гß;þþ½{¯®\Y«®>\Ú¹|\VÖüzS##Í  óçÛ 6DÚIÆÆÆ *jù›7UÇß½~ý™@Ð­Š³ r#GªwøÿE\.ŸNgá§é…gêËËë"+«èðáÛ—::šÆÄø}óÍø+ $ÊÔ”|òäw?üðߘ˜GC†Hêwœ‘DR!‘:®h…gêñJ¯Jß¼©¦Rk…·1µ?S/,LuuÕเ*Î~ŒÅú°vm´ƒƒñÚµS¤K§0 »qãűc©ýE›1Ã:--ÐÜ\GÚIAD_DPÐtiÍ.///,,ìéÓ§AAA±±±®®®|þ?·dQ©Ô/^‡b0Âǘûí·4F£egg#„hÿcaaÑÍÄJKK544Äö>Bµ¶r““Ÿ¿yS%Þa( }¢BõõõcÇŽUTTŒ‹‹ËÍÍ]¸p¡——ןþÙ©B†]¾|ÙÀÀ ..NØØõµÃ„ÐúõëŸ={võêÕŠŠŠÈÈÈëׯ~Ò*‰~¼UUUøá‡O ï ô7à»ïÎ~ùå^«UÚ¹ü‹@ øí·‡––;ÌÌ~<>“ËåK;#2„P\\œ´³ø\¡¢¢"á®@ ˜4iÒÎ;ñÝ€€€¯¿þšÇã ;°X,CCȈ<ÖÍÍíǾzñâEww÷6cõìÝ'zzzzzzvö*—ËOK{µvmô¨QÚÚ›ÒÒ^õ ‰ê:ÿ~D¢Ÿ¨µk×.X°@tº€€—îLaØ‹/þM<ÿýw›Ì;ü¼u¢ªªš““#ÜÍÌÌ400èÆò|d:qÁëã6pŒ³ÿùí·ìÌÌ¿ÃÿëSÏ*/¯Ÿ?ÿÔŽ‰3gZggÿ¸|ù$¸ÇéJNNÖÕÕe0¡K—.™šš²Ùl„—Ë $‘HZZZ\.?§–––f``‘‘l`` ©©éãã# !”’’bee¥  `ddâñx†‹ž¶ëâ@XµjÕÍ›7ñݘ˜˜;w‰ÿÿhýaÆÆÄÄໞžžñññØÿNƒ^¹rÅÃÃã£+Óþ½t¸V&L@‘É<¢µ›0 ËÍ-ݶ-ÁÂbûwß»víYk+·Ç£I|¢®^½ºqãFÑñƒƒƒ###»35BèòåËNNN...fffmŽYv¦³eeåS§NÕ××㻓&M*//Ç·Û/l‡k(úñ]À†††¥K—jhhèééà'ë Bll¬¹¹ùˆ#8ÐÌ; ¡òHHii‘ÑÖC‡nK;‘ÿÇáðöìI10ðŸ;÷•Z'ít,P7Žqúøø,Y²¤ªªŠD"=~üo ›7o^EE…B±µµÝ¶m~´ÃÝÝýÞ½{!!! ¥  ÀÁÁ!  ³(‹5dÈ3gÎÐh´ÈÈHYYY‹uðàÁÃðÃHm¶Ñ¿ a–——§ªªŠa^ÙÔÖÖ¶yS>$‘HxìëׯÉdòóçÏñaëêêÐÇŽq¶/®Uq ‚ÇKãLM·ikoÖ×ߢ­½Iô¿þ{Œs0¢ðp:ÞÙât15†a`Ô¨QgÏžÅ0lûöímÂÛÞºùóÏ?uuu‡ âêêzðàA*•*|©ýÂv¸†¢Ó‰n{{{O™2¥¤¤„B¡XZZ†„„àoÍÃÃÁ`DDD „êëë;[\‡Ç8¡âìOx<þŒ¿¸¹î;'¬óó+&O>`l¼5::[ H;‘îTœ COOÏÊÊ ÿ³333£Ñhøvjjª þ÷†B¡`6f̘ÄÄDüÕW¯^ ·ÛGÑét99¹C‡1 @ÐÔÔÄçó; ïâ]|j}ðèÑ# aìÚµkƒ‚‚0 ‹‰‰quum?fû?äíßK‡kÕƒŠ“By»cG¢M°¶ö¦ö…æ¨8ó'ŠN§#„ F¦Æ0,''GVV¶®®ð§OŸ"„ D;·ÿ¼uÂãñrrrBCC---‰Dbll,ÞÞ~a;\Ã+N‡C$ ñöÄÄÄÑ£Gão-==ïÐþm¶×aÅ OGêOΟ¿_XXùçŸþ}ᄵ@€…‡§>ü§¹¹ö›ÌÌ´¥ -UUU??¿]»vá×á¨Tª¶öÿÿƒUQùçyfff¡òòr¼ÅÜÜÜÜܼ³(55µôôô_~ù%88ØÖÖ6((ÈÝݽ³ðî+**266Æ“'“Éùùù...¢òóóÇ'Üõôôüþûï÷îÝÛÍSê¾ÔÉZuƒÁ¦Ñ†WW+N›v˜H”Á¿ø”ÇtÖÿرԳg3>u‰ª¨P20húh·Áü‰RSS#‘H¯^½úòË/…yyykÖ¬ÉÌÌTTTìbj„ÐåË—y<žè½hqqq–––]dÞY›ÍNIIñôôtpppppرcGppðÖ­[-Z„:ZØ>ts «««ù|¾0çÑ£GWVVâÛ:::!99¹.îšô ÐMoÞTýüóÍ]MM{~Q‘¸ÔÔ4-\xæàÁ[7º¦¤@¹ @õöíÛ“'Oº¸¸øûû 544„‡( FNNÞŽÿ-ÑÑÑ¡R©xK~~þÞ½{;‹jii t:}ùòå3gΤÓé…w†a§OŸž>ýŸ‡ö{{{‡†† ï#F±Ùì°°0777a‹££cSSSVVVjjêìÙ³»3K‡+ÐáZuSs3Gð¿ò²;™QT¢ªªØ§þ#±ç=è?Q³fÍ:|ø0&òø¤˜˜.—Ûa¹):5ŸÏ‹‹;räHÓÿlÙ²?GÑYæ]„`¶hÑ¢‚‚¼'@˜6mšðOí¶ûkH"‘ˆDbii)¾[RR¢««‹oËÈ|vÅØõqQÐGðxü3Žº»é çÓïÜ)üâ‹í'îyñ¢BÚ¹0x¡Uçóù...»wï¦Óéd2999oß°aƒ‡‡þ‡uëÖ‰ž_ ¶²²*(((((øê«¯V¬XÑYTKK‹‚‚•+WjkkÏ;§  ÐÒÒÒYxWÝ (“‘‘ñí·ßêéé544à¯666Ž3ÆÉÉéÖ­[oÞ¼ILL´°°øê«¯Z[[1‘“˜kÖ¬177wvvŽÙõYõöï¥ÃµÂ›ššºóãÀÏJÓh ™nn‡ut6ëéù°³êð‰ª©©QWW÷öö~øðá‹/BBBB7nÜøèÔéééD"±ººZ¸˜Ož°fÍdÿiRL£ººqõêèçÏ˃ƒg/]ú•3 „B\\Üüùó¥@!ü/ÚˆaX^^ÙµkÏŸ1™-rrD.—Љñ›<ù“¯G”¨ó gâããñ—Š6ÂC}†a›7_26ÖܸÑUŠiäæ–®\ùëСòü±ÙÜ\GŠ™@A ìíìíBCçÞ¿ÿwbâÓ?þ ôëGrÐcPqöuññy¹¹e))¥u:†a§NÝÛ¿ÿw÷ÿ=êÕ§;ý‚¬¬ÌäÉæ“'›·¶rïÜ)ÔÓS“vFô6¨8û´º:Ö®]×—-s´±1JLfë† ±ii¯¶mûïš5“;ûRÝ¡  7kÖXig€@ÅÙ§íÚu]YyhPÐt©Ì^[Û´xq•Z{Ⴏ««…TrÀgß•™ùwbâÓèèC‡Ê÷þì¯_Ó||"äåeoÝÚ2j”fï'€žßG57s¶nÿöÛ±R¹Ÿñöí‚3~17×ùóO(7ð™ âì£Nº×ØØümïO}øðíåË£¼¼&\¸à ÷ àóÁYõ¾¨¸¸æÄ‰»»vÍ!‘”{s^O|í×_³¶oŸ±fÍäÞœTœ}ÑöíW--u}|¾ìÍI[[¹«Wÿ–™ùwDÄ2w÷ÿôæÔ]›?~BB‚´³½ žm Tœ}ÎÍ›/>,ºqc“ŒLï=Ѝ¾žµxqÄÛ·ôÄÄuÒzS&L˜°eËigzԚݴgÏžˆˆigB¨  `Ò¤IÒÎâ³Ü¿ßÕUš_5ŒêêêöPqö-ÍÍœààkóçÛ÷fÙ÷îÃËëLK 7)iýèÑZ½6o÷éëë{zzJ; úøGѧLš4i„ Ò΢çúuò ¯QSS333kÓgßrüxjK ÷§ŸföÚŒýõ~Ñ¢³#F OHXÛË—>|6#8$ îUïCJJjNŸN tWSÖ;3¾|ùnÁ‚Ó$’J\Üj(7 !Pqö!¡¡É£Gk}÷ÝÄÞ™îÅ‹·žž§ŒŒ´Öhh ïI0ÁYõ¾âþý¿SS_ÆÅ­–•íÿ ÈÊ*Zºôü×_›ž=»D^> 8ÆÙ'p¹ü;ÝÜþóõצ½0݃o–,9ïìl~îÜR(7 iPqö ±±9ô;gõÂ\ÙÙž¾œÍNZ,'Gì…Ž ÂÐÐÐÇǧ¶¶V´›Í ´¶¶VRR²³³Û·oÇÆš˜˜`&ÚßÝÝ@ wgp@Š â”>&³õðáÛK–|eh¨!é¹=*Y¼8bêT‹3g–@¹Ùû²³³i4ZeeeTT“É´µµmhhÀ_jjj?~|^^^XXØÓ§Oƒ‚‚bcc]]]ù|>ÞJ¥¾xñB8ƒÁ¸ÿ~7ï#JKK54$þ!ÐAÅ)}ǧ Ø–-S%=ÑÇÅÞÞgÿû_«'¾ë«EAšššd2YWW×ÙÙ9))ÉÈÈèèÑ£øK¡¡¡šššiiinnn¦¦¦sçÎÍÍÍ¥R©QQQxÑï^JNNvrrêæà}„@ ¨¯¯—v¤Ê)£Rë""27mrUQQ”èD99%>>nnÿùå¯Þü6£Þ‘œœ¬««Ë`0B—.]255e³Ù!.—H"‘´´´¹\nqq1@HKK300ÈÈÈ600ÐÔÔôññl…JII±²²RPP022ŠŽŽFñx¼Ãñ)Úo·A V­ZuóæM|7&&fçÎDâÿx6lX```LL ¾ëéé/<±~åÊΤÍà K—.ÕÐÐÐÓÓ hmmí0ùÎ2'.\077×ÔÔÜ¿ttô¨Q£TTT~úé§.VŒ@ ÄÆÆš››1âÀè˜&“Éÿ‰`0 UkÖü6aÂî¸åùórSÓmK—žçpxH<=====?ÚÍÇÇgÉ’%UUU$éñãÇxcXXؼyó***(Š­­í¶mÛŠŠŠBîîî÷îÝ ±°° P(E±X¬!C†œ9s†F£EFFÊÊʲX¬ƒvÞÐÐÑ~!TTT$šs^^žªª*†ax­\[[ÛæM=|øD"ᱯ_¿&“ÉÏŸ?LJUTT¬««ŽÙÅà†y{{O™2¥¤¤„B¡XZZ†„„t˜<¾8xˆè6BÈËË‹Édž?!4þ|&“yöìY„P]]]‡+†Gyxx0 ükëëëEÇìB(..®;=ô PqJÓ‹::›ÿøƒ"ÑY^¿¦YZîðô oiáHt" éfÅÉ`0ôôô¬¬¬BBB„fff4 ßNMMµ±±Á‹ …‚aؘ1cñW_½z%ÜnE§Óåää:Ä`0ASSŸÏï,¼3=¨8=z¤¡¡!Œ]»vmPP†a111®®®¢cv18‡Ã!‰………x{bbâèÑ£;L¾‹ŠóÙ³gøPm¶ñIÛ¯•žž.Ú*N´à¬º4…„\ÿê«Ñîîÿ‘ÜoßÒ.<3j”æÅ‹ß+(ÈIn"©SUUõóó{ùòåêÕ«…T*U[[¿ƒÛÕÕµ¬¬ oǿﵼ¼ÜÄÄo177Ÿ3gNgQjjjééé999zzzNNN<‘‘é,¼ûŠŠŠŒñäÉdr~~~›ùùùãÆîzzz&$$`Öõ)õ6ƒWWWóù||!4zôèÊÊÊ&ýû¾x%%%„œœ\›m\g묣£Ó¦'€Á *N©IKûëñãÒ  ’›âýû†9sNÉʱ±~ŠŠò’›¨/xûöíÉ“']\\üýý…Â# #''oÇk *•Š·äççïÝ»·³¨––@@§Ó—/_>sæL:ÞYx7avúôééÓ§ã»ÞÞÞ¡¡¡Â;ÓBl6;,,ÌÍÍMØâèèØÔÔ”•••šš:{öìnN"‘ˆDbii)þRII‰®®nÉãdz÷î]÷ßKgë,#¿a §´ؾ})nn–cÇHhІ†foï³Ã† ‰]©¤¤ ¡Yú@àëë»~ýúK—.ݽ{7%%oŸ;wnPPPyy9…Bqss Z¼xñöíÛ ×­[W^^ÞY@˜:uêÕ«W™L&‡Ã‘““STTì,¼±±¿Þ±Í6B¨¶¶¶ªªêÝ»w™™™sæÌ)++Û²e þÒÎ;kjj¦L™rûöí¢¢¢¤¤$]]]ÑC¶D"qÞ¼y+W®´··×ÒÒj³ .''·`Á‚ 6”••îØ±ÃÛÛ»ÃäUUUB¿ýö“É<~üx÷׿ëunƒÅbudDïŸÈ†%$äéëo).®–Ðølö‡éÓÚÛ‡Òh š¢×tç:Î'NX[[s8 Ã’’’´µµét:†aL&sÙ²ejjjêêê~~~l6[ôRÂÖÖÖ€€///ƒ··Â0,..ÎØØX^^ÞÌÌìúõë]„wq5¤¾¾¾··wuõ¿>,ËßßßÒÒRQQÑÂÂbÏž=ÍÍÍÂXü bFFB(<<¼M{׃ÓéôÅ‹«««kkkoÞ¼¹¥¥¥³ä÷ìÙ£ªªjll|ýúuÑÌ…‡0;ÜîpÅÚ÷är¹ŽŽŽÃ‡ïú§‰Áuœ0à°ÿ­½€Ãá9:îst4=rd¡$Æçó+V\|ü¸41qݘ1ýþI4óçÏGÅÇÇK;Ð{B\\þ£0ÀwjKÁÅ‹ëêX[·ºKhü;“23ÿŽ_3ÊM Pqö¶x§O§{{O$“U$1þ±c©ÑÑÙ/~?nÜHIŒð© âìm.<`³[7o–ÈwZ^¹òäÀ[xNžl.‰ñzîUïU,Ö‡ðð´¥KGŒ&öÁ³²Šüý/¯Zõ·÷D±ÐcPqöª‹³¸\þêÕÎb™J­[½ú7ggó”à>z*ÎÞÓÔÔzútúòå“ÔÔÄ|€“Élññ‰ÐÕU;uj1‘?Sô-pg¼/`«V}#Þa¹\þ’%ç[Z¸W®¬ð_,€þ*Î^ÒØØ|æLÆŠ“”•‡Šwä­[ã *¯_ß ¥¥$Þ‘¥®¢¢þÆL¦¼²2GÚ¹ ç âì%/>D[¾|’x‡=þ~BB^DÄ2 ]ñŽ,E••Œ””ü””üüü 5µašš²PqýTœ½Íþpî\¦¯ï$UUE1›•U´{wò¦MSÝÝÿ#Æa¥¥¤¤æÚµg))/Þ¼©"‘”g̰ ùvüøQ .HHH ÒN=ßrÙNžL;yònnn°²²‚¸Æ¬¨¨ww?úå—£Ï[Ò¯«1ëCròóË—sŸ>¥*))¸¹YΜ9vÒ$S99"ÞáÑ£G•••ÒMô¾ &èëëK; â§Äµ´pv/\è Æç55µNŸ~tèPùë×7((ȉkØ^öô)õ÷ß''?çpxÓ¦YzzÚ99‘—‡ãîÀ@Ý%î÷ßsZZ¸«V‰íœ†mÚô{}=ûöí•ý±Ü¬¬düúë䤧ïß7üç?zÁÁßΚ5VŒGÐ×@Å)Y\.ÿÔ©ôE‹&ˆñK†ÎžÍ¼sçel¬Ÿ¾þqÙ;>,ŽŽ~xûv¡¬¬ÌÌ™6‹M°³%í¤ qPqJVBBƒÁ^»vЏÌÌü{ïޔ͛§Nš4F\cJš@€Ý¾]žöüy…¥¥îîÝsf϶UR‚ƒšÀ`×qJ'øúë}ß|cöóÏb°®Žåêzð‹/t¢£ýddúÁÝB--œØØœˆˆÌ÷ïæÌ±ýþûIVVp/0èÀ1N ºu‹RYÉX¹ò±ŒÆç V®¼¨¤¤pîÜÒ¾_n644GFÞŠÊjnæx{O\¾ükCC i'逊SR0 ;v,uÖ,qUZ'NÜ}þ¼âæÍÍÆ Ë€ÒÐÐ|ölÆÅ‹y<þ¢EV¬pÒÓS“vR&¨8%åáâ¿þ¢?î-–ÑrsKù3$d¶¹¹¶X”ëùsçÎe2+W:-]ê(Þ'Þ Ÿ‚ë8%ÅÛû,—+ˆ_ýùC1l—C66ú‘‘¾Ÿ?š$p8¼ÈÈááioÅ §•+¿û×Ç ÿ‚cœñòå»ôô׿ÿ¾òó‡Â0lãÆßeeeŽõúüÑ$!5õepðµ÷ïqÐ+ IDAT|}×­sãs 00@Å)çÎeZXè~óÙçuñbVfæß×®mèƒG ‹Šªƒƒ¯ed¼ž>ÝúÒ¥U#GªK;#ôEPqŠß»wŒkמ>¼ðó‡*,|·kWr` ûرŸ?š}øÀ;v,5<<ÍÜ\')i½ƒƒ‘´3@ß§øýúëÃ#†Ïšeó™ã°Xüü.~ùåè5k&‹%1qùãÊŽ‰>ðZàá1ž@èëj€tAÅ)f--œèèG«V}#/ÿ¹k»cÇÕ–î‰Þ}çé›4ZömWRS_zxŒÿé§YššJÒÎýTœbŸÇáð–.ýê3ÇINοråIt´Ÿºúp±$ö™ø|ATTÖ¡C·TTcbü&O6—vFè7 â' Ã.\xðí·cUT>ë9”ïß7lÝçççäì,†{>ßë×´­[^¼¨Ø°ÁeíÚ) rÒÎý Tœâ”•UTTT}êÔâτϬ^ý›®îˆ  âJìs\¾üxÇŽDCC¤¤õ¶¶#¥ú¨8Å)2òƒƒ‘……îg’Ÿ_qëÖ99¢¸뙆†æ­[ãoÝ*X»v²¿¿›Ôó@?§Ø”—×ß½ûòôiŸÏäï¿«öí»±iÓÔ/¾ÐWb=“šúrË–ËÊÊCSR6ÚØô­g3 ŠSl~ý5‹LVqw·êñ\.ÆX õë]Ęاjnæ„„\‹ÍñõýzûöpÕ&>TœâÑÜÌùý÷ÇkÖL–••éñ ááiEEÕwî|Î Ÿ©°ðÝÚµÑuu¬ˆˆ¥ÿýoÏ«g!©U6ÌÕ«O>|à~÷ÝÄðâÅÛ#Gþ p=ZKŒ‰u†a/>œ5똪ªâ­[›¡Ü€¸À1N1À0,2òÁìÙ¶#F ëÙ>ð6nü}üøQ«V9‹7·njjjÝ´é÷ÔÔ—›7OÛ°Á…H„ÿ€Ø@Å)¿ySuòäw=áðáÛïÞ1~ýõ{©|½Ðóç+VDÉÈRR6Y[ëÎP»wï¾ÿ¾¸@¼vìØáää$í,`0‚ŠS .\x`g7ÊÒ²‡Ezü¸ôÔ©{»wÏ9R]¼‰uÇï¿çlß~ÕÞÞèÔ©ÅŸÿýF¯_¿ž8±çW ! +V¬v0HAÅù¹**êSS_†‡÷ð'‡ÃÛº5ÞÎnÔ’%ŽâMì£Z[¹[·Æ_½útÍšÉÛ¶ýW\gÒ'Nœ/–¡#A 'à âü\¿ý–­¥¥üßÿZ÷,üäÉ4­¡÷ϧWTÔ¯Xq±¼¼.*ÊwêTËÞœƒ Ü òY>|à]¾üxÑ"‡ž=Ïèï¿«ŽKýñÇ™††bÏ­ ¯ÝÝr¹ü?þØå&$ *ÎÏòÇ”ÆÆoïž\¶ˆaØ?$X[øø|)öĺõÀÇ'ÂÎnÔµkëŒ4{sj NpVý³ÄÄdO™ò™¬ÒƒØßÏyþ¼üömÿ^;ŸÎç BB®GE= š¾fÍd¸¬ ½*Ξ++«ÍÉ)ŠòíAluuãîÝÉ+V8™›k‹=±1™-+V\Ìϯˆ‰ñûæ³Þ™ÁYõÏqùr®––òäÉ_ô 6$亚Ú0ÿibϪCoßÒgÍ:^ZZ{íÚ(7»ƒ ÂÐÐÐÇǧ¶¶V´›Í ´¶¶VRR²³³Û·oÇÆš˜˜`&ÚßÝÝ@ wgð>ˆÐi' ß€Š³‡ø|A||ž§çøÜ3”šúòúõçûöy */‰ÜÚxü¸ÔÍíÈСr7nlêµCª@vv6F«¬¬ŒŠŠb2™¶¶¶ øKMMMãÇÏËË {úôiPPPll¬««+ŸÏÇ;P©Ô/^‡b0mŒßÅà}Dii©†Æ¿nhÃs%­Ü„Ú'  o‚г‡ÒÓ_×Ô0½¼>5Íþ°}ûÕ™3mœ{ãXcRÒ³ NÛÛºzu‰¤Ü 3šššd2YWW×ÙÙ9))ÉÈÈèèÑ£øK¡¡¡šššiiinnn¦¦¦sçÎÍÍÍ¥R©QQQx—„„áPÉÉÉm¾ê¦‹Áû@P__/Ú‚ç,JZ¹ µO@ßg]º”ãà`4jÔ'ßë}ôè&³u÷ȪˆˆÌ b.´ˆX¦¨ØÇS»#99YWW—Á` „.]ºdjjÊf³B\.700D"iiir¹Üââb––f``‘‘l`` ©©éãã#<"Ø> !”’’bee¥  `ddâñx†ãS´ßnƒ@ ¬ZµêæÍ›ønLLÌÎ;‰D¢°Ã°aÃcbbð]OOÏøøxá‰õ+W®xxxt¶ mohhXºt©†††žž^@@@kkk‡Éw–9@¸pႹ¹¹¦¦æþýû£££G¥¢¢òÓO?u±b!66ÖÜÜ|Ĉ@M˜0!ÔuY)úÊÊʺqãÆØ±cµµµ÷ïßÂ0ìÌ™3_|ñ…²²òäÉ“oܸçÙ›Iè0ð骫™úú[âãs?5°  R_Ë… $‘•(@z]GgóéÓé’žK”§§§§§çG»ùøø,Y²¤ªªŠD"=~üo ›7o^EE…B±µµÝ¶m[QQBÈÝÝýÞ½{!!! ¥  ÀÁÁ!  ³(‹5dÈ3gÎÐh´ÈÈHYYY‹uðàÁÃ"""Úo#„ŠŠŠDsÎËËSUUÅ0 ¯•kkkÛ¼©‡’H$<öõë×d2ùùóçø°ŠŠŠuuuÂ1»Ã0ooï)S¦”””P(KKË“ÇÝFyyy1™ÌóçÏ#„æÏŸÏd2Ïž=‹ª««ëpÅð(ƒª¯¯ß$‚ËåŠþ€h4š¼¼¼¯¯oee%^y×ÔÔDDDèêêÞ¾}»¶¶655uôèÑø˜J²k¡¸¸¸nv ^PqöÄ©S÷ÆŒ jiá|RŸ/˜5ëØ´i‡y<¾„õ¶r}}# nÝ¢Ht¢öºYq2 ===++«a£™™F÷SSSmllðz‚B¡`6f̘ÄÄDüÕW¯^ ·ÛGÑét99¹C‡1 @ÐÔÔÄçó; ïL*ÎGihhc×®]„aXLLŒ«««è˜] ÎápˆDbaa!Þž˜˜8zôè“ï¢â|öì>T›m|Òö+†G¥§§‹öl_q¶‘’’"úú?öî;®¦þø÷®4I{k)) ”Bˆ"›IÙ…¬(É~ì¬l!2êA!É®H¨”†d<íhjÜÆ½»ÎïãwŸû´Üh©Ïûçuî÷~¿ßó9§^Oç;N}}ýçÏŸi4›Í~ùò%Þ‰žž^@@·“¿ÿþ››q¶G-ƒŒ:ìŽÔj†ýýwìŒF‚‚”V5¼uëmRRîÇ®mõó&ÑhõK–\zÿþ›¿¿óˆšíw¢ß!..îääô×_………q srräåÿ]ØÔ§Ï]N €ÊÍÍíß¿?^¢£££££Ó\«¾}û¾xñâøñã;wî~üÈ­ùùóçÎ @ç‚ÿ}·Úß¿ÕÕU40PnU«cÇžõêEÞ°ÁúçUUAA…Íé’’êàà5­ ¯#q8œ%K–¬Y³æÆááá¡¡¡x¹§§gnnnJJеµõ™3gx[988lݺ555555uõêÕ¹¹¹Íµ"ãÇ¿sçNUUƒÁ P(ÂÂÂÍ5¯¬¬Ä§68F•””åçç¿|ùræÌ™ÙÙÙ6lÀ¿Ú±cÇ÷ïßÇ÷äÉ“ôôôàààaÆ)**®\¹’ÛœD"Íš5ËÙÙÙÄÄDFF¦ÁMh®s …2wîܵk×fgg§¦¦nÛ¶ÍÞÞ¾ÉàÅÅÅB×®]«ªª:yò$ÿ÷¿åûÜFã³Ûúúzƒ! P[[»sçN„Puuµ‹‹Ë¦M›ž={VVV†OÆåsÏv @§éØAü?^uu¦¦‡¯ïËVµúô©@Yyñí~ CÃcÇzU¶ßY~ŠŸyœ§N200`0†ËËË———cVUUµxñâ¾}ûJJJ:99ÑétÞYzuuunnn }úô±³³£R©xyãV†ÝºuKCCC@@`À€!!!-4oa6$—²²²½½}qq1ïUÐh´7êéé ëêêîÝ»·¦¦†Û>‰:sæLƒò–;///wpp”””——wuu­­­m.ø½{÷Š‹‹khh„„„ðFÎ}:Øäq“w¬qM&“9räHQQÑÆ]q5˜FyìØ1 eeå³gÏÚÙÙÉÈȰÙlooo >}úX[[‡„„HKK·_-C0:kjMhÎÍ›o==o'%ý%..Ì«9sÎÒéõ¡¡ëÛéê?æÛÛŸ—‘éà,--Ö§àÓœ9sBè:>/¨TúöíÓÚ#žW¯Ò-ºda1àÜ9GH7AD&“÷îÝ»wïÞÎ@'ƒQõV¸{7aÊ2™ß›–ŸO=y2|õêq22m?ØõÏÂ…¾ÖÖzçÏÃÓMtiqò+55?#ã»ÍŸWý¿ýûÈÉõY±Â¢Íƒyö,ÕÑÑwòdƒ“'íÛu?y€ß£êüº{÷ŠŠ$ÿÓ1cc3ïÝKº|yI›?€|ò䃳óÕéÓ¼½í Ý@×ù _ØlNppÒŒF|î_aؾ}¡ff&èý¼vkDEý³råµ ôŽé&þðŒ“/11™ÅÅ•³f å³~HHRRÒ×gÏÜÚ6Œ„„œ¥Ký&O68~|>ÿÓI:d-| NÔÕUìß_–ŸÊ ëÀ‡3g8P¡ cˆ‹Ëš;÷ÜŒƒO²‡txÆùsuuÌ’×­³â³þÕ«oŠ‹«<<&µa ))ß/ޝwðàl>Gö;KTT”•¿÷ŠOF¨©&‘Ø‚‚umÛ3:dœ?÷üùçšƬY|­R¯¬¬9vìÙ’%#•”ú¶UiiEööLM5Oœ˜ßÅçnššš¶aoõõäòò^Tj¯ÊJA6› ¤T-/_Õ†ýƒÅÖÖVYY¹³£€ 2Ο N6L]V¶?•Ïž}A þˆþTNNé¼y>Ê/.êúûnnذá7{¨®®‹ŒüòêUÚË—ÿ|ûVÞ»·ÐøñºVVº#Fô—i“ ÐÁ ãü‰ªªÚððûöÍâ§rAAÅ… ‘îîûôiÅ‹×[ðí[ùìÙgÔÔ¤þˆtówTUÕ†…}|ø0%*Ꟛ†ŠŠ¤¥å@KK]33 AAJgG€ßçO|ÿúu:BÈÜ\kóæÉ£Gkó¹H È8"$$i̘½{ ý´æ—/…AAñGÎëÕ« îjuu›Í¹}Û¥­ž˜v™™ßïÝK }Ÿ–VÔ»·àøñz¾¾‹Í͵àq&Ð-AÆÙ’òrú›7é'NØóSyÿþ::ò³gó»gg jjóçûP©ôÐÐu’’¢¿ßaQ^N I NLLÌ7n ››õر:ÂÂÝó .pq¶äÑ£2™4~¼îOk¾~þ) À™HüÝ­‹X,ÎÊ•×23KBBÖò¹\©‹««c>{–zçNBdä‰hm=hÍšq£Fi·ÉÃ`t}ðO~K=J5J[D¤×Ok:ôdøpM ‹¿yF Ã6l¸ñæMzPËŸ>—‘Éd?yòáöíwQQÿp8˜µõ _ßÅh=üÛ߬ÊÊš7oÒ™ûÓšaarž<ùÝB‡=¾w/ñòå¥FF*¿ß[gÉÎ. ˆ½{7¡¨¨RWWqóæÉ3fuçµøq6+,ìBh½–«avøðckk½Aƒ”~óŒ.¼}°ººô/Ÿ¨²²ÆÎÎGAAüòå%d2ñ—ûé0ååt?¿×W®¼®ªª:ÕðìYåÎ ]dœM¨¯g…‡Ú²erËÕîÝKüúµÌßßé—OÄ`°/¾\[Ë réúsrJ/\ˆ¼u+^@€¼`Ù’%#ååÅ;;(ü ãlBTÔ?µµŒ–‡ÔY,αcOgͪª*õË'òðúô© $d­¬lï_î¤|ùRxòdxhh²²²Ä¶mSæÌ1ágRdœMxô(ÅȨ_Ë+`nߎÏϧnÜhýËg9~üÙ;ï®][Þ•÷úø1ÿøñ°ÇS´´äNŸ^0uª!¬@@kAÆÙ‹Åyú4uíÚ–ÖŒ3™ì“'Ãgͪ¤Ô÷×Îrûö»Ã‡Ÿ92g̘ß}MQ;IJúzüø³ððOºº .,²¶¹&~ dœ ÅÆfVTÔX[·´ñûÝ» yyåëׯøµS$&ænÚ¸hÑH;;Ó_ë¡]}ü˜ïåõ(<ü“‘‘Ê•+K--þ)+èÐ5AÆÙÐÓ§©ÚÚr-ÌÎd±8Ç?›=ÛXEEòú/(¨X²äÒèÑÚ»wÏø0ÛEfæ÷LJ†¾××Wò÷w;V§³#@wgCOž|˜5kH BC“óó©k×ZþBçÕÕuóçŸWR’ðñYH"u¡½²²J¼¼=xð~Ø0õààÕ&&êºÈ8ÿãË—Âü|ª••ns8ìĉ°)S a‰:‡ƒ­[÷wuu]`àª^½ºÊ/+£y{?»~=ZMMÚÇÇqÊC@Ûê*yOþIZZÌȨ_ó>fd_¸°ð:÷ö~ù%$d­ŒŒØoÄØfjk/F9Ñ»·ÐÑ£óll†ÀÚ ´È8ÿ#<ü“…Å€¯'¬¬tµ´Z½ŸÑýûÉÇŽ=;qbþ AJ¿c`0X/¾<{ö™Lܾ}Úܹ& ©³ƒ@·ç¿ÊËé 9Ë–j®Âë×iII_=rmmÏŸ?lÜxÓÙyôìÙC/Æ6ñy߾Ь¬’Å‹G®[g%..Üñ1dee…‡‡wüyAwåäôë¯þÐ ãü׋ŸI$¢…E³dž<>j”¶¡¡J«º--¥-\èkf¦±m۴ߎñ·dg—ìÜy/"âóôéFW¯.SV–è¬HÞ½{çììÜYgÝdœÐÅAÆù¯ððO¦¦ͽ¿ñÝ»ìׯÓïÜYݪ>ÙlÎêÕþ$ñĉù8K’J¥8ððæÍ·††ýž<ÙÐFöB†uvà8wîÜÎŽÀO@Æù“É~ñâ³›ÛÄæ*œ:1l˜º™™F«ºÝ»74))÷Ñ#×¾}E~;Æ_Áfsüü^;öT@€tôè¼Ù³‡ÂRtt0È8ˆÏ®ªªkn_¤´´¢ˆˆO~~K[ÕgPPüùó‘>>Ž2mc«½{—½uëÝþ)Z³fÜÊ•c……:% ôpqþþQKK®_¿¦_#töìs…öél,55ßÃ#hùòÑÓ¦µQŒ­ðý{õÞ½÷ïÜI;vÀ¹sŽêêÒ2ÎÂÂ>M˜Ðô»Ô *‚ƒiÅ\±ªªZ'§+††*Û·wôj!ƒuêTø¹s/¤¥Å®\YÚª, =@ƉB¹¹e™™ßÇØä·—/¿’–›1c0Ÿ½q8Øš5µµÌóç’Éú*ËØØÌmÛîfd|wv³n £ +€Œ!„ž?ÿ,&&8t¨j㯪ªê®_^·ÎŠÿ=Ò½½ŸEF~¹{wµ´tǽ[ˆJ¥ÿõWHPÐ;K˾¾‹á%œí¤CŸÀuY‘‘_Ì͵šÌ)o܈%ƒÃp>»zû6ëøñg›6M2Dµ-Cl‡ƒùúF™™í‹ŽÎ¸vmùÕ«Ë Ýì0ªªªŽŽŽ%%%¼ètº»»»˜˜˜±±ñþýûY,·mÿþýl5qâD‘‘ÁOç]ÍÍ›7 MINNîìÐt2È8“ÉŽ‰É5J»É¯.\xigg*&&ÈOWååôU«®7pÕª±mfÓÒÓ‹mlNÿõWˆƒÃð—/7§Ó1ç\ÑÑÑ………yyy~~~UUUƒ®¨¨À¿ª®®:th||¼——WBB‚§§g@@€••›ÍÆ+äää¼ÿžÛ•JŠŠâ³ó."++KJêÇ_8Ó§O/,,,,,ŒŽŽFþŸ®.L&€ž2Nôî]Vß䫆BC“KK«œFóÓ›Íqrº",,púô‚Øó’Á`íÛ÷ÀÒòp}=óñã [·N‚Y›@ZZZNNNQQÑÂÂ"88X]]ÝÛÛÿj÷îÝÒÒÒÖÖÖZZZ666qqq999~~~xKKË   nW÷ïß=z4Ÿw§¬¬ ?’““““““––FÉý…BéÔt>È8QTÔ?ªªR_ùˆaØ™3ϧN5”—ç§ŸãÇŸ%&æ^¸°PT´é·µ¡7o2,,]¹òzûöi¡¡ëõôÛûŒïþýûŠŠŠT*!tãÆ ---:Žb2™îîî²²²222îîîL&3##ƒ@ DDD¨¨¨DFFîܹSEEEZZÚÑÑ‘ûD°q+„Phh¨¾¾¾   ººúõë×B,«Éæø)7@ V¬XñðáCü£¿¿ÿŽ;H¤gkˆˆˆ¸»»ûûûãmmm¹ë·oßž={vs7¤Aç‹-’’’RRRrss«««k2øæ"'—/_ÖÑÑ‘––>xðàõë×ÕÔÔúôé³}ûöî@ÐÑÑ‘8tèBÈÔÔ!$''×ÂríÚµK—þØË–F£ '%%áÁ„„„hkkËÈȬ]»¶¾¾¾¹óøãa=ÞĉÇ<=ƒ—¿zõ‚‚ë§OùütùEQÑõêÕ7m]CUUµîî·\çÍ;—“SÚÞ§k'·nÝâçwÏÑÑqáÂ…EEE²²²o߾н¼¼fÍšõõë×”””ÁƒoÞ¼9==!4qâÄçÏŸïÚµKWW7%%åÇÆ sssk®FëÕ«—Oaaá¥K—Èd2F;|øp“Í+**.^¼Øø!”žžÎs||¼¸¸8†ax®\RRÒà¢Þ¼y#++‹·ýò勜œ\RRÞ­°°pii)·Ï:Ç0ÌÞÞ~ܸq™™™)))zzz»víj2xüæàMxBvvvUUU¾¾¾¡9sæTUU?!TZZÚäÃ[Íž=ßg‚t IDAT›J¥^¼x!TVVÆÛ'WƒÂ—/_JJJ2™L Ãüýýuuu9^güøñiii±±±ššš»víjî¼-àów @çêéÿ§.-­VTt}ü8¥ñWŽŽmlNñÓIQQÅ AÛV¯öoëèº?ÉÐp‡žÞ¶û÷“Úû\íŠÏ,J¥*))éëëã¹nÀ€………øqXX˜¡¡!ž»¤¤¤`¦­­}÷î]üÛOŸ>q·*//§P(GŽ¡R©§ººšÍf7×¼9¿qÆÄÄHIIqÛº¸¸xzzbæïïoeeÅÛg 3 ‰”ššŠ—ß½{WSS³Éà[È8ñ®ã'm|ÇðV/^¼à­ÉOÆÉb±äää"""0 ›4iÒÁƒ¹uðŸ†a·nÝÒÔÔlî¼-€Œþ=}TýÍ›t‰8r¤Vƒòìì’ˆˆOË–ý|'‹ÅYµêzß¾"6;úû¨Tº‹Ëugç«C‡ª…‡»OjØ~çê:ÄÅÅœœ>~ü¸råJnaNN޼¼<¾ÚÊÊ*;;/0`B(77·ÿþx‰ŽŽÎÌ™3›kÕ·oß/^ÄÆÆ*))=úÕ«WD"±¹æüKOO×ÐÐÀƒ—““k¼L;99yÈ!ܶ¶¶AAA†µ<¤Þ óââb6›#„455óòò~<ößuñbbb!|’%ï1®¹û¬  Ð æO‘H$›»wï–––†‡‡ÛÛÛs¿â<`À€¼¼¼Î àÖÓ3Η/ÓŒŒú5žyé륢"ÙÜ[ˆx8–{ꔽˆH{Mß ûhaáõæMºŸßÒ‹ÉÊön§u5ß¾};}ú´¥¥åƹ…RRRÜ'T*566/Çs …œœ¼$99yß¾}͵ª­­åp8AAAåååK—.:ujyyysÍù„aعsç&OžŒ´··ß½{7we:BˆN§{yyY[[sKFŽY]]ýúõë°°°3fðÙ¹¬¬,‰DÊÊÊ¿ÊÌÌTTTl!x|K¦üü|þ¯¥¹ûL$þÊÿ4lmmƒƒƒGŽ©¤¤Ä-ÇŸt"„ÒÒÒð\¶¹óø£õôŒ32ò˨Q pVUÕÆ/\8‚Hüɒ󸸬ãÇŸmß>U__¹=Â+/§;;_]´èÒøñz¯^má'î68Î’%KÖ¬YsãÆðððÐÐP¼ÜÆÆÆÓÓ3777%%ÅÚÚúÌ™3¼­¶nÝššššššºzõêÜÜÜæZ„ñãÇß¹s§ªªŠÁ`P(aaáæšWVVâó#„JJJŠŠŠòóó_¾|9sæÌììì 6à_íØ±ãû÷ïãÆ{òäIzzzppð°aÃyÙ’H¤Y³f9;;›˜˜ÈÈÈ4¸ ÍuN¡PæÎ»víÚìììÔÔÔmÛ¶ÙÛÛ7¼¸¸8BèÚµkUUU'Ožäÿþ·|Ÿ Ñh-÷fnnÎb±vïÞíààÀ[¾nݺŒŒŒøøø-[¶,X° µçðÇèØAü®%-­H^~ý»w9 Ê/\ˆÔÔô¨¬¬i¹yy9ÍÈhç¢E¾íÞ“'ôõ·¼ëùóÏítŠÎÂÏÜ»S§N0 ƒƒåååËËË1 «ªªZ¼xqß¾}%%%œœèt:ï¬Áºº:777…>}úØÙÙQ©T¼¼q+< „„„´Ð¼…Ù\ÊÊÊöööÅÅżWA£Ñ6nܨ§§',,¬««»wïÞššn[üa^dd$BèÌ™3 Ê[î¼¼¼ÜÁÁARRR^^ÞÕÕµ¶¶¶¹à÷îÝ+..®¡¡Â9÷Qb“ÇMÞ±Æ5™LæÈ‘#EEEy¯ºÉÉ+V¬ªªªâ­ãëëÛ¯_?))©5kÖÔÖÖ6wÞÀ~ÌöÌ­µo‚‘t~p8Xjjžb6X÷³`™‰‰z¿~’#ÚLË8ãã³§N5Ä“’¾þóOÑ‘# ßZ™–VtðàCW×ñýûËòß3Œ¤·¬ªªîíÛÌ””o ÖýÌž=ÔÄDÝȨ¬ûº«ž•q–•Ѳ²JŒÕð7o¾ÕÖ–2¤o6›³qã-y—qü÷œ•U²|¹_AAå¥KK&LÐkË ÿdÿüS„?ÅŒ‹ËÎÌüÎfú 'êæ'^/(HÁÓš¼<êÖ­w4t¨*B¨¶–qï^â‚f55 ÞQõË—_¥¤|{òdÿãéOŸ¦®[ЯŸÔ³g••%Úá:þ +9ùk“ë~¶n…u?@ÕÍ3ÎGR<=okk˦&%Õ;,ì#BÈÊêȼy&BBõõ¬¢¢JsóGŽÌµ°€ÊÎ.9xðѺuV::Ml–Ô“ÉÞºõŽ¿Œ‹Ë8I­ôÙ=”•Ñ¢£3ð355¿¶–!!!2bD—qúúJƒ)5¹µ>z†aC;zû6kæÌS!‰Àáü{­D"ÃAÊÊ}kjeet„°I“ öì™éì|•Á`=x°ž7wäp°W¯ÒFÖnÐyqq•³óÕòžcc3¤£®©óµ°îG__ Öý nžqU¼‹Ÿš$‘@ p8œu fvúûÇlÙrçÎîP„P||¶“ÓU!!Нïâ&wïfªªjß¾ÍÂ×ý$%åÒhõBBC‡ªš˜¨™˜¨ªˆ‰ vvŒè¢ºyÆÉá`jjîL&›Ïú¡™£Gí¸Igi)møð½4£o_¡ðpwyyq„Й3^^,-uOœ˜ß3­Æë~TT$ñÓØXMCC¦gÎ"@kuóŒ!djºçë×rþë“ÉDsv¶Ø¸q‚°°ÀŠ×?þÀd²Èd¢ººôíÛ«wî  Iòôœ¼jÕXîËÙ»‡úzÖû÷ÿY÷C¡ ULLÔMLÔôõ•deûtvŒøótÿŒÓÞþü‹_~¡áˆškÖXΛçÃ-!“‰ZZrß¾•{{ÛMš¤ßv1v¦ÒRZLLF\\v||öçÏL&»o_|¸ÜØXMOO©ñöø­ÒÍת#„TU¥(ÿë!‰hf¦qúô‚©SOHD6›ƒ—³Xœ/_ -ºBºùùsÁµkÑÌnmCøøì¸¸¬ââ*п¿¬‰‰ÚÒ¥æ°îm®ûgœÊÊ’ñ;ö’{xLtqwüxXAA7ÝÄq8˜Ï SSu++Ý6•OµµŒcÇžùø¼À0´eË~&’VVÖÄÅeÇÅeÇÅe}þ\@£Õ R¸¯”„u?hWÝ?ãTQ‘hò'‘Hàpþ3£€D"öêE>wÎÑÊJ7+«ÄÛûYƒt“kÅŠ«mÐÖ–k—ˆ[ôòå?7Þ,.®ÂcKJÊ5ªá¶M! ÃÒÒŠñ§˜))yøºee‰aÃÔmmaÝ:R÷Ï8ûõ“D¨á\U"‘@$Bܤ“L&))õõ÷wRW—FíØÜÜ¢ Ãêê˜NNW>tíÈWTxx=þ™@ø¶€)..››qÖ׳ââ²ðóýû¯ß¿Wãë~Ì͵6nœ`b¢ë~Ð)ºÆ©¬ÜĬD‰Š VTÔà‰D˜1ÚgÎ8àƒËOž|xñâKã5UD"B!Õ׳ôõ•mm<"m?l6ÇÏïõÁƒ™L6†ý“Éyõ*mÈÕ„„œøø·É40Pž;wØÐ¡ªC‡ªöí+Ò1A4§û¯UGiim¦ÑêyÖÜÜ&9ò!„ooäé9ÉÅe~\UU7|ø*µ–÷Î ¶¶¶œ½½ÙäÉúø®œ#%囫ëÍ/_ ›üI‘É$6›ƒ¯û16Vƒu?肺ÿ3N„²²äçÏø#I‰8eŠ––BˆL&„£GçÍž=”[ùÈ‘'UUuxzG¡™L–„„ˆéìÙC;xâ&^àÀ£+W^‰ÍþaÀb±ýýÆŽÕéÈÀZ¥GdœÒŸ?˜šªÇÄdêèÈ{{Ûyy=BIHˆ^»¶L__™[óË—B?¿W†‘H"‘hi9ÐÖvè¸q)RÇüömÖúõûFåp°†ïI$â·o­Øß ãýçáY``àܹs;1švÒ»·¹°°~eeTïÞ¦¥¥7Ølš”Ô\ CTj(‡SÃ[SRrŽ€€ƒQP[û¹®.éïøh‰DA11saa|÷%B„vw"‘ˆÓ§>½ ÃÂë æÌ™ÔÙQ€¶tëÖ­9sætvÚKÏ8wîÜÙñq´«OŸl6Ö»÷4QQ¢¤äF6%%ÕÒ‹@À[íûwva!K]"&¦ƒP§S×Õa••l:£Ó94þ_Nu5VWÇÁÿ:   ™HD ›ÍæDGgtV¨ÈÔÔtÆ hk@·×DÆ9f̘£}éèÐ¥¤„ „aظqÞûÐY,ή]^¢¢2NNë * +¾~-ÿúµìû÷ªïß«edÄ:;À¥¬¬lkkÛÙQ€/=b§¬ìv"4·Óf×F&)FïÞõ66C:;€V€·Î€ö'h_q€ö'h_Ý3ã´à1oÞ¼TTTðV¨««óññYºté¤I“V¬XÀf³¹m,XÐà?ùùùx…]»vñVÈÏÏ·°°à3¶VU݇ªªª££cII o:îîîn`` &&fll¼ÿ~‹ÅmÛ¿ÿ¿¨'N$ :çBeddü¡‹çü¹ºgƉ:}úô;w‚‚‚<<<ètº““Fÿª©©qvvþò勳³ó… ìííÃÂÂÜÜÜ8ü­ë¨¨¨(33“ÛUuuõû÷ïy;ùòå‹/:ìZZ…Íæ¼z•æêzãÆØÎŽü\tttaaa^^žŸŸ_UUÕàÁƒ¹UWW:4>>ÞËË+!!ÁÓÓ3 ÀÊÊŠû×QNNïo&•JŠŠjÜ9¯».„PVV–””TGž@—Õm3Nqqq )))##£={öÈËËsßRsíÚ5qqñcÇŽ™˜˜())™››ûøø=~ü¯0dÈÈÈHnWÑÑц††¼O:õøñãåå]ëõ’‰‰¹;vîœ;÷Ü­[ñÕÕðÂ$ÐZÒÒÒrrrŠŠŠÁÁÁêêêÞÞÞøW»wï–––Žˆˆ°¶¶ÖÒÒ²±±‰‹‹ËÉÉñóóÃ+XZZò¾{éþýû£GnÜ9¯».„‡Ã)++ëÈ3è²ZqFGGÏž=»ºº!áààPWW‡b±X>>>3gΜ9s¦‹Å‡çΛœœìçç7wîÜ3f8p€û¸±q+üK—.?~üüùóŸ={†b³ÙM6ç¡na´š@ L›6-6öÇ3¿°°0GGG"ñßkœ7o^XXþq̘1‘‘‘ÜñÊ—/_6ø‡ÜÖÖVEEåèÑ£ Æ4B4íàÁƒÓ§O·µµ=wîƒÁàp87oÞtpp˜4iÒêÕ«?þܵ·†aqqYÛ·ëëï˜2åøµkÑee4„…Òmÿ–àÓýû÷©T*BèÆZZZt:!Äd2ÝÝÝeeeeddÜÝÝ™L&>Ê¡¢¢¹sçNiiiGGGîãÆÆ­B¡¡¡úúú‚‚‚êêêׯ_G±X¬&›ód·0¨M V¬XñðáCü£¿¿ÿŽ;H$·‚ˆˆˆ»»»¿¿?þÑÖÖ600ûKxûöíÙ³g·ê.5y]áòåË:::ÒÒÒ¼~ýºššZŸ>}¶oßÞr«€€ ‰C‡!„LMMBœæèšZ— >|È!gΜ¡R©gΜٺu«   BèöíÛ………çÏŸ?zôhbb"÷1L``àæÍ›ß¿uàÀooïoß¾qÿÉlܪ®®n×®]3fÌÀ³´C‡ÕÕÕݾ}»ÉæââânnnSRR*((@Ñh´òòrMMÍ455¿~ýŠëééÕÖÖâët:=11qĈÿ¹kDâæÍ›ž>}Ú Ÿ'N”””øøøxyyÅÇÇ߸qãÎ;·nÝrrrº~ýºƒƒƒOs×ÞªDfæ÷}û º{ÆŒS×®E—–V#„Œ_I[»¥iÓ¦YZZººº»ººúûû‹ˆˆ „¼½½³³³ß½{ñüùó;vàõ=zõêÕ—/_Þ¹sçáÇ/^¼HKKÛ·oþmãVt:ÝÖÖÖÅÅ%''gÛ¶mK–,¡ÓéÇo²¹´´ôÅ‹7Ö¿ü¯¢¢¢¨¨¨ÁÃu„¡¡á—/_ðã#FÐh4|`½²²òùóçÓ§Oç­L§ÓiÿÕ ·æîFxxx\\ÜÁƒ===}À€¯&üøñºuëdddÔÕÕãââðr'''##£ˆˆˆ%K–¨«««©©yxxèêê6׊ÉdbV[[+ `mmÚ«W¯‡6Ù\DDdòäÉ@àÎã$‰£FÂÖcbb Ô»wïõ•””œœœN:õýûwn!‹Åzþüùš5käååÕÕÕ/^vÿþý+V˜››KJJ6ÌÉÉ©å;Ö²º:ÒÑ£OÌ͘›¸x1²¨¨!ÄdB¢Ù„'NDDDŒ?~åÊ•&&&x¡ŸŸßéÓ§••• äååõäɼÜËËËÂÂâÆ{öì4hžžžŸŸßðáÛk…?½¦Ñh‚‚‚‹/¦R©BBB¾¾¾M6ïӧϲeËÿ"‘ÈÇI"‘fÍšˆzðàÁˆ#$%%y+ŠýWƒÞš»îîîbbbŽŽŽ¡Í›7‹‰‰-^¼!„?3n®•‹‹‹¸¸øÂ… B]mÎ €Îõ+o¹2eÊÕ«W=Ê-,**š5k÷#þ< !¤¢¢‚*..VRRÂKúõëׯ_¿æZ‰‰‰y{{ß¾}ÛÏÏOKKkþüùÆ k®9ÿòòòðà%$$222† ùÏ»"322´´´¸ÇŒsøðá¥K—6Rçš9sfTTÔáÇ׭[‡—P©T‡ƒŸ!¤¨¨XRRB x©ª««7wí-_BYYm~¾*ÞçÝ»§ø¨,ƒÁn¡þ®]÷víº×rŸ(YÙ¾ýûSZM\\ÜÉÉ鯿þâΗ@åääÈËËs?öéÓ?ÀÿvÊÍÍíß¿?^¢£££££Ó\«¾}û¾xñâøñã;wî}úx{{+**¢ÿ\ÿ8™Œ’””,**RSSCeddÄÆÆ.X° ÉVõõõg×®],+""bË–-÷îÝk®9Ÿ0 »ÿ>>« !diiyíÚ5###îTκºº7nðæƒ ª©©ùðáûwï6nÜØd·ÁÃÃcÉ’%<ÀKúöíK$ ñœ¸  @JJŠB¡dffâiB(''§å;ÖII!9¹<„„Äàøøl …Àba'’rÙÚ[Zl¹Ï?Ô¹sGø©öíÛ·Ó§O[ZZnܸŸg‰’’’zñ➇á#×x9ž')((äääèéé!„’““>|¸uëÖ&[ÕÖÖr8œ   ƒqãÆ©S§~ÿþ½¹æ|Â0ìܹsÜGõööö»wï¶°°àNå¤Óé^^^Ü¿pB#Gެ®®~ýúuXXØùóçù?WËwã×ZñÎxµ:ãÄ0ìСC6663fÌX´hQtt4>thnn~ñâÅ•+WÒéô#GŽ 0€7?~¼¯¯/¾†àĉªªªxyãV+V¬pwwߺu«“É$“ɽzõj®9NŒŒÄÿ…æ=FUTT q8œüüü   ÂÂÂýû÷ã_-\¸pÅŠ6l˜?¾‚‚BvvöåË—¥¤¤xçÀáëÇŽÓÑÑoînÈË˯\¹òøñã?î&™laaqòäI77·ºººK—.YZZöéÓçܹs""":::—/_nîÚ×®]ÛòÍ'‘XÒÒôÀÀ55aaoÞ|›E"ÙlNãÔSWWqêÔ†³»‡ë×?­Ãáp–,Y²fÍ—†††N:!dccãééyäÈ‘ÊÊJ'''cccÞÎÁÁaëÖ­ø/ØêÕ«ü‘²7nuøðáñãÇûûû=šÁ`P(aaáæšWVVáƒé¼Ç¡’’QQQ6›‘‘Ï Å¿Ú±c‡‰‰É¸qã6oÞ¬¡¡‘ššº}ûvEEÅ•+WrÆÖMLLdddܼsÞ’ëx_שS§~zo[ÕŠF£5ˆ@ÔêŒóÞ½{vvvd2ÙÕÕõرcƒ [ºtééÓ§—/_N Fåìì\ZZÊmeoo_WWçîî^WWgjjêì쌗7nŒµê IDAT% àééyþüyü‰ÑÎ;šk^QQqäÈ<Ëä=F­^½?‘‘Ñ×׿páwØZXXøÂ… ~~~>>>òòòãÆ³µµm0haa2sæÌ–oÈÔ©S_½zõîÝ;üãºuëNŸ>½bÅ …2vìX{{{2™Ìd2Ï;WVV¦¡¡±}ûöU«V5yíüÿÄÅ…mmmm +>L¹s'áýû¯ ™Éd#ÔìSÏåìÙ³%%% åܹsÎÎÎ#GŽìÛ·ïÞ½{×­[‡?áž5k–——¾¤ çééI§Ó'L˜@§Ó'Mš„¯¹F5n%((xõêUoß¾©««ßºuKPP°¹æ%%%Ë—/dzLÞc„w®§²²ò¨Q£¸ƒÔ½{÷NHHعs§»»{VV–šššÝ† zõêÅ{¥sæÌ9{ö,÷ž·s®™4¾.~î-Ÿ­TUUGŽ)//om '#ðþ 8wîÜ.»·9øë¯¿¤¥¥ñ•" ¤¤|»w/ñîÝÄïß«„„(õõì;¦995=õO7g΄P“÷ü‰­[·ð+€néWæq‚.H__Y__yÛ¶ioßf'„†¾ÿy€g·B$ÌÌ4ÌÌ4öí›E¥Ötv8uã·\öp IF¦áæ‹2Nо ãí 2Nо ãí«G¬Ug0ؤΎ¢Í0¬‚‚ŠÂÂÊü|jAAE~>ÕÝ}¢”¼Ö]TÈ8ß¾-ìÕ‹,//"""À`°ÓÓËuu¥TËϯ¦PH22ÂdVYY_ZZSVVW^^[ZZSZZ““3 +K@UÕ¯C ‚åÀÙ-@ šÈ8-,,:>Žv%*j*$¤E£½X^~!LZÚ±¦&•NOä­F$ö’–^ÈfW×Ö~®­ý‡Ã©í”hÉä¾ââ(îœ ãB$„ykâï‹2¤‘Hè„@;UPPÐã®øCýç-—ß¾}‹íÄhÚI@@z\\‰±±t||ɘ1ò3gªùû§ÇÇ— "mg§A¡ü;™õÝ»’ë×ÓBD"A[»‰‰Ì A¼:F]ûáï¯^ˆÃié=éäuë¬\]ÇwXl]ALLL^^^gGÚ’©©©²²rgG ½ü'ã쮦N=‘# @b0Ø!oo;ƒåáD"ú÷—¿~}™¢b_nåùóÏ¿z•ÆfsH$"‡ƒ‘ÉÄÑ£µmm­­Q(:ôóçBW׿SSó9„P³?¦Û·]†×ìÀ¸Z§Gdœƒm/+£‘HD6›ƒ"‘ˆ‡ÏÙ°á&BˆL& R.^\>;..ûÝ»*•N&T46VÓ×W>\“wæ@GêþçóçŸ,¸Ð¸´É›S’É$55©ë×—«¨HFEýcgw¾¹›C Îs˜6ͨbnNm-ãØ±gçÎ=' ,‡H$œ=Ût¹¹eqqYxšž^Œa˜¬loucc55==¥¸¼¥ûgœW®¼Ù±#˜û\°ed2IHˆâë»ØÜ\kÍš€¤Æ ‰D‚«ëø­Û!X¾¼}›µqãÍœœR‹ßñÓ‡—ÕÕuÉÉ_ãâ²ðÇŸµµ ‘^*˜˜¨›˜¨™˜¨õéÓ%¶ @wÕý3Î={î_ºôŠÁ`ý¼*B!OÏÉó盚™í­ªªç]'N&“&LлpaaçnÉ`°NŸŽ z³µU Y,Nfæ÷øøl<ýúµŒD"jhÈèë+áO@µ´daŸK´­îŸq.]zùéÓÔ–wµl’©¡¡²§çmn[2™(+ÛGEEÂÇg¡´´X[GÚj4Z½¨h¯ß顸¸2%%/..;..ëýûo KFFÌÀ@ÅÄDÍØXÍÀ@¥W¯ñV*´«îŸqŽs0-­¸UMÈd¢’’ÄÑ£ó† SŸ2åxjj>‹Å& ¢¢½Îœqغõ.ƒÁºxqÑ!ªír稭e|ø—’’ŸýæMzy9B!éè(àS?ÍÌ4áÕíø5Ý?ãÔÔô¨©aðY™L&‘ÉÄ-[¦,Z4’L&"„>|È›8ñ‡ƒ„+W–ZYéÒhõ6ÜxüøÃæÍ“¸*u?øÚ#<MMÍãp`í~Q7Ï8«ªj ØÂOM€aHLLàîÝÕººJ¼_mÛ|ùrÔæÍ“×®µÄK0 »téÕîÝ!cǸkRRò޾ͬªªí¥£ócíѰaê½{ uvŒèººyÆùáCÞ„ GñãÛ§„$ÅbS($‘^žž“Ož :TíÜ9GÞNª«ë|¸w¯MƒÇ™11™+V\¼ti‰¶¶\\NWÀfs22~¬=JIÉKK+Â×áS?õõ•{έŸºyÆùðáûå˯ „DDµµes †aZZòýûËÄĤÜ/"â‹­­ñÎÓúöyý:mî\Ÿ NžlÀOÿ……NNW¾|):vlÞÔ©†íz-]SqqUJÊ7ÞµG²²½õõ•ñÔÐPE@Ö=]7Ï8?|ÈËÌü®¯¯¬¦&•–V<}úI:½þÁƒõÊ%%ÕC‡þåè8|Ò$33 n“ n†…}ŒŒô”äk¡ ƒÁÚ³'ôòåWK–˜ïØ1B!µÛÕtuL&ûó炸¸ìøøìè茲2ïÚ£áÃ5ù¼¥èfºyÆÉ‹Íæ|ýZ6bÄþÐÐuø2óE‹.ÕÕ1oÞ\Á[­ªªnìX/SSÓ§ðß¹Ÿß«]»BFŽìêÔ ‘¶üÕxíQ¿~’øÈ;¬=z””q⌌v._>zÕª±¡gÏR/¾üæÍUU)Þ:Ÿ.\º´dâÄAü÷œ˜˜»rå5‹sö¬Ã°aêm÷ŽF«OJÊýÿÚ£¬ªªZQÑ^FFýLLÔôõ•aíнõ¸ŒsÙ2?6›ãç·!ÄbqŒwÛÛ›º¹5|eåúõ¿|ùÏ‹ââ­x$V¿iS`HHÒªUc7ožD"Û2ôîÖ=MË8ÏŸ{ÖAV¶O›…ÞM}ÿ^ýþýW|íQJÊ·úzX{t7=.ãLJú:y²wT”§¦¦ B(;»däÈþþNÔ ÿäèxñòå%ÖÖ­[Ç}ü˜ïätµªªöÔ)û1cö šÃ»ö(&&£´”&$$ §§ˆ' #Fô‡9²ÀŸ¨ÇeœL&{À€-{÷δ³3ÅK¦O?©  Þ`NÜš5¯_§EFzôéÓŠ±uŒ°ÿ¾ââʸ¸l<…µGÀŸ«Çeœ¡Y³N«¨Hz{Ûáÿþ;vË–;‰‰»??«ªª3ÆkôhmnåÖ‚ö¶B£Õú”Ÿç ••5bb‚††*&&j&&êC‡ª tvŒhZOÌ8xøèQÊ«WžøÇº:¦‘Ñ®U«,Ö¬±l\9,ìã¢E—®__>v¬Î¯.11wÅŠ«l6kØÛ ¾ö(%垀¦§“Huõk† SWQ‘ìì𯞘qFF~™?ÿ|bâ.9¹·o~òäClì¶&Ǿœ®$&憅¹õíû‹“++k6n¼õôiêÚµ–®®ÈdaoKøÚ#=22êד·åº‚ž˜qÒéõn=~|þÌ™ƒñ’ŒŒï£G¼vmù¸qM<È,/§wxÈ~¾¾‹缡¡É›6ÉË÷9sÆAGGþwºYYY!„8Rm­ .\[+\[+Ìf“H$ޏ8UN®°³?Œ5jûöí€Õ3N„ÐÔ©' ?|x·dÖ¬Ó¢¢‚W¯.k²þÛ·Y³gŸÙ»×fá¿sÞ¼<êš5þïßÛ²eÊÒ¥æøM MSSSeeen †¡šruu/ “–®éÄØWLLŒ™™Y```g CõÐGŒÐ }Ï[²páˆU«®ûV®¬,Ѹþ°aê+WZìÚuÏÄDýwO*)õ r9þÅž=÷££3Ž™ Ûý´!WW×9sæü¼è<ð€ž©‡N(43ÓÌÎ.),¬à–Lœ¨/))ú÷ß±Í5Ù´iÒÀ ëÖ0™ìß95™Ltq¼æË—B ¯çÏ?ÿNo]_Í8MLÔ(Rtt·„B!Í›7ìÆØæJ2™xæŒCvv©—×£ß`ðà~OŸn=ZÛÁáâöíÁ ë÷ûèšzhÆ)$$`` “É[hg7¬´”ö±¹VªªR;vLóñyñúuÚïÇ &&xò¤½ãíÛשּׂ}þ K[Ð=õÐŒ!4b„&ï3N„ªªÔ˜1®\yÝB+‡á“&é¯]û7•Jo“0¦N5|ð`€yêÔãçÏGr8=q!º·ž›qš™iä䔿çSy œF¿~ž’ò­…†Úbææv«­"ÑÐ ]·|ùè}ûBgÍ:›[ÖV=t=7ã46V£PH ÖGÒÖÑ‘¿z5º…†"'NÌò$õÖ­¸¶ †B!yxLzöÌ­¦†1fÌÁ3g"ØlN[uþ ªªªŽŽŽ%%%¼ètº»»»˜˜˜±±ñþýûY,·mÿþýìw6qâD‘‘Ñ s.~¢ÊÈÈ€¼üŽž›q èë+¿}›Õ ÜÑqDppByyKƒæ£Fi/]j¾u묬’ªµÖ€ò¬ws³>tèñÌ™§³³Û²s𧈎Ž.,,ÌËËóó󫪪nlÜ !ª¯¯/((¨®®~ýúu„‹Åj²9ï8u cÖaÅŠ>Ä?úûûïØ±ƒDú÷5ñ"""îîîþþþøG[[ÛÀÀ@î_)·oßž={6?7‡@ èèèHHH:t!djjŠÂSRn„¼…k×®]ºt)ÞœF£ '%%ñs.=Öƒ1™lmíÍ—/G5(ÿúµLIiÃýûI?íáÌ™•‰‰¹í Ÿ5|ø>míÍׯG·Ó)º „Э[·Z®ãèè¸pᢢ"YYÙ·oßâ…^^^³fÍúúõkJJÊàÁƒ7oÞœžžŽš8qâóçÏwíÚ¥««›’’òáÇaƹ¹¹5׊F£õêÕËÇǧ°°ðÒ¥Kd2™F£>|¸Éæ/^l|ŒJOOç9>>^\\Ã0I’l6{îܹÊÊÊ***‹-âp8UÏV,))Y³f¶¶¶¢¢¢³³3‹Å¢ÚkŽ"I2,,ÌÀÀ@JJÊÔÔ4::ºŽá|Ï’$ÿ{bFçÎ]\\¾|ùRu+ =<g'LØWïDD'A„¥eW5µŽ×¯§ðýtÉ’áÏŸ|ðཀÑde¥ŽŸ—šúå÷ߣ…—cýd|}nßöRV–utôwwÿëÓ'–(à 'AN>Ü4&æßO-,:d؀Üݺ©íÛç|7<ü±rT×®ª'O.<{vñ›79¶¶Ûwï¾VVV!âªBÅù¯‘#»?}šùíŸû]±p¡mlì«=égÔ¨K—ŽX¿>"%å“rl€!CŒoÞô\¿~ìáÃñÆùݼɿ˜Tœÿ6ÌTB‚÷šï§£F™››ëüùgLƒbzyµ²Ò_´è›],Œ†ÁX°`è;^ýúuus;:}ú¡ÔÔ/¢Oç¿:v”±²2ˆå,F£-[6âÂ…§y‚ǤÓiþ9³¸¸lÅŠÐÊJî¯$tŠûö¹œ;·ìû÷B;»7F–Š%h·ðÌ¡ÿ9r$a÷îk))¾ †DÍO++¹Ã†ù h°cGÞjóÏ?S§\°`èo¿R¦Q^^yìØÿë:Éyx889YŠàÁH¢D£Ñzöì©¡¡!îD ./^¼:t(ž9ÐÞ âüŸÌÌoƒm _jccÄ·CXØ£uë"ÓÔTlPäË—Ÿ»»ÿåçÇœ5k 02m¼¯_ ¶m»ñØÄDsÆñ#F˜‰7!Âó-[ kkëÕ«W‹; )Tœÿ1tè¶‘#»oÞ<‘ï§åå•66[zþþû¤†FÞ²åò‘#ñgÏ.8РÉi6UzzžŸßÕË—Ÿ÷é£÷Ûoã­­ÅŸ´a8ó?ìíÍcb^Öö)ƒ!±dɈµ]Ò^/¯±Ã†™.^ü×çÏ⥾¾ÚáÃngÏ../¯œ:5`ùòóÅ´Y¨8ÿcäÈîééyééµ^4s¦•‚B‡  „†F¦Ói³;u’ss;ZTTÖ´4…cÈã¿ÿ^½oŸË£GéC†lÛ¸1*/¯@ÜI@„Šó? ÐWT”­ã0§””ä¢E¶'NÜýù³¨¡Áå奛—Íúå—Ó-äd:æädy÷î¯7Ž¿xñÙÀ¾Û¶]iĦÔAÂÛÛ[Ü9´ t:íåËO/_~b2û×ÖÇÜ\çøñ;t:­§?*+Ë™˜hîÚuM^^¦_¿®MÊUx$$è}ûvY°`¨šZÇ  øb J{÷î,-ÍwjР⬮¤¤üøñ;  •––äÛÁàpJÿúëÞœ96|ï£T7uiiÉ­[¯ôì©k` Þä|…FB‚Þ«Wç™3­¹\òøñ;§NÝ'Z÷îÚRRü÷€€PqV§§§§¯¯Þ½»vm}ÌÌ´¼Õèã”èççs¶n½ßè‰44CB½zõiݺˆFŽe–.ñäÉæ£Gç~øðÝÑqϨQ»""——WŠ;5hépåÅÅå'NÜ[´ÈVR²Ö«Ñ¥¥%++ÉC‡nÍœ9PVVªq©ªv47×ݺõ2Ö˜Û-‰F30Pwv¶êÛ·KJʧ#GŒ; 7 IDAT.\xZVVih¨Þ¡C#÷´y¨8ùÓÖV ¸eaÑÙа®õì©û×_÷ŠŠÊlmM=W·nª²²ÒÛ·_16Ö46Ölt‘¡Ñhݺ©1™ýGê‘ŸÏ ¾—žž§¦ÖQ[[YÜÙ@‹ƒŠ“?99éÛ·ß}ýÊvtìUG7C‚$‰€€Ø3¬äåsÑ:ÅÒ²KNÎÏÝ»¯YYtîÜ©ÑqDLCCaÔ¨îîÃ5ãâÞìÞ}ýüù§%%e††8ä <¨8kUPPòÀÝ}˜„D]g»ö쩚øãGшfž‹F£ÙÙ™¿}›ëïÝÖÖDCC±Ñ¡DOR’nb¢éìl5x°QnîÏ'î8q÷óç ¸›¸grr~ôëç²høpÓº{=zû?.Þ½ûkO–—Wº¹}ñ";:z¥¾¾ZSB‰Ñ·o…gÏ> }•õÝØXÓÉÉÒÉÉRW«íí*κŒãß½»ö®]ÓëîV\\6p ï˜1½¶nÚÄ K§N øù³(:úuõŽMŒ&^oßæFFþùøË¶±±&“ÙÉÐÚ7 g]bŠKJò‘”¬ç6R'NÜÛ¼9*!a}Ó ”ŸÏ™8qŸœœtdä2yyé&F»òòÊØØWçÎ=¹yó%I#GšMÚäH3<® ý@ÅY—ÌÌoƒm‰ˆX6x°aÝ=++¹vv;õõÕŽ›×ôy?|ø>qâ>CCõÐP÷6S™±ÙÅW®<ŒüçáÃt99é#Ì{aÖªj¨*Îz î7hÑ–-Nõö¼q#eΜc.¬0@¿éó&%}`2:8ôüóOçº/]jurr~üý÷‹k×^$&¾— bìèØsÔ¨**òâN š*ÎzìÛw300îùs£Ö[Áó0™ÅÅå—.ýB£Ñš>õÝ»ïfÏš4©ïž=3„°¥a±811¯þþ;9!ámyyeÿþÝ{:8ôlE÷‡A â¬Gv6ËÊê'æÛÛ›×ÛùÙ³ãÆýyôè\GÇžB™WtîÞ=ƒNoƒE'¥¨¨,.îõµk)7o¾úù³ÈÔTkij‘#»÷ïß­Þ3h åCÅY¿ öéè(:ä*Hç… O¼~ý9.n ÇDÿfΜc..YÙoíÊË+oÞ|÷ú֭ן?ÿPPè0l˜ÉÈ‘ÝGŒ0Ú;@ë…Š³~'NÜûã‹ÉÉ>rrõ_ã’žž7|¸ß8¹ºVW¯&/^ü×¼yC¼½' +¦¸9rDÀž_¿–¦¦¾ÏÉÊ*ârIÖÖzôÀ-å¡VúúúvvvâÎø@ÅY¿ü|NŸ>›÷ì™1eJ?AúÿúkäåËÏïßÿMˆWaGD<^µêŒ§§ã/¿Ø +¦X4â„T!-­'-ݵ¬ìsqñëæÈ Ú&“.î,€6rçfÕ©“œ­­ÉùóO¬8=<Î{røp¼‡ÇhaåÀdöçpÊ6l8Ç`H,]:BXaÅ",,lÚ´iâÎÚüP´d¸,C “'[Þ¹ó./¯@Î**òîîÃã¾~¨¿€æÌìá1zëÖË… ¹¡âˆƒCiiÆ¥KIö_´hX‡Œn 7Õ«G/[6rõê³(: AÅ)¤FîõDÀþòòÒžžŽýu/-í«p3ñòëå5öÿþï̱c·… ™ â”““å“'YyöwqØ£‡Î¯¿F =“¥KGlØ0nÓ¦ AA B t¨85t¨‰šZÇ ž ØŸN§ùø8Ý»—vùòs¡'³téˆ'lÞ|aïÞ¡.Tœ‚’”¤g!øÂ:A––]¦L±ôö¾PTT&ô|/¶yóD?¿«{ö\zp!BÅÙNN–ii__¼È|ÈÆ JºÕù¸»ûý÷I»w_ß²årsćÚЪèÚµ«««k^ÞN·àp8žžž;vìß¿ÿÖ­[+**xcŒŒªÝ×ÑÑ‘F£¥¥¥U Î#HViii‚ßî´jð: <8)©® ãH’œ5k–¼<žüгúöíÒ¹s§èhAÖ ‚PSë¸b…]@À­ó›#¥… m7l‹åu»ÿ~NNNvvvpp0›ÍîÛ·ï?¨ úõë÷øñc??¿'Ožxyy…††ÚÛÛWVVR233Ÿ?ÿß¹,ëöíÛ5ƒWU[éé骪ªÔk%%¥uëÖUk¬wrrr’““ŒŒ¦OŸ^Çó >þúêÕ«zÃÔ„Š³h4š³³Õ™3ËÊ*åî>L[[é?.6SVK—ŽØ¼yâŽoÙrO555MMMáÇGEEéëëûûûSùøø¨©©ÅÆÆ:88;99=zô(33388˜ê`ggÁ uñâE[[ÛšÁ«ª- .—ûýûw굪ªêöíÛ«5Ö» šššFFF;vìx÷î]µ#µU¡§§WoX€šPq6ÌŒVlvqLÌKÁ‡0›6M¸|ùyBÂÛfÊÊÝ}ØÑ£sƒ‚–/)/¯l¦YDãâÅ‹:::,‹ ˆ3gÎs8‚ ÊËË===544ÔÕÕ===ËËË©E䨨X==½øøøÍ›7ëéé©©©¹ººò7ÖEÄ¥K—zõê%##£¯¯êÔ)‚ ***ø¯ºN]Çš5F[¼xñ•+W¨·!!!›6m’àu““óôô ¡ÞRcäý÷ 22rêÔ©‚ìjffÖ©S§;vammMU’ò2¬Ú¸råÊùóçSà eeeŸ=ãsžÁ`HII)**ֶߪƬ÷ë¸{÷.ß=_3ÿÚö<ßáЊ‘Ð@³fvq9ÜÐQ3gÚÚn/+«hŽ”(wî¼32ZÇd,((i¾Yšˆ ˆ°°°ºû¸ººº¹¹åææjhh<|øjôóó›2eʇ’““ûöí»~ýúÔÔT‚ oݺåíímnnžœœüâÅ ++«5kÖÔ6ª°°PZZ:000''çØ±c’’’………;wîä;üÇAAA5_‘ššZ5çÇ+))‘$IÕÊyyyÕ6êÞ½{ÔØ7oÞhjj>{öŒ +++ûíÛ7^L‚ ’’’ þ‹7ïÔ©SY,VPPAß¿§võ)ïuÕÆ„„•òòr’$CBBÌÍ͹\nµY>}ú´téÒ¹sçò²­mo×Ûú: kvà›m{žïðº1™L&“Yo7 Tœ våÊsUÙÙù õî]®žžÇÑ£ Í”åÙ³,só cÆìùþ½°Y'j4A*N‹¥««Û«W/ooo^£©©iNNõ:&&¦wïÞT‰“œœL’¤‰‰Éùóç©O_½zÅ{]sT~~>ƒÁصk‹Åâr¹•••µ ¯c+Zq>xð@UU•7vÙ²e^^^$I†„„ØÛÛWYÇÿ ‚ˆ‹‹#I²¬¬Œê_oÅYQQ¡©©K’ä˜1c¶oßÎ U•¼¼ü«W¯êÝÛ~|;ðÍ_ð/®îo„DŠв¡âl°òòJ ‹{ö\oèÀ_ìÞ}‹Åiެx޽˵´ô¶µÝþù3«Y'jA*N’$}||$$$¾|ùÂk‘‘‘©Z!)**R%NYYõé‹/jÆ©9Š$É»wïN:UNNnÈ!W¯^­cx[Q­â<}ú´¥¥%õZSS3&&¦ÚC‡=š76>>ÞÐÐËåNš4éðáÃä+ÎjÁ«ÎûöíÛª9Ô[q’$¹téÒeË–åååIII}üø±æ&p8kkë:ö[µ˜u|;ðÍ¿A_\ÝPq´d8³Á$%éS¦ô;{ö!—Û°Ët<=%$h¾¾—š)1Š‘‘FtôÊÊJîĉûÞ¿ò36Eããǰ³³óððà5ªªªò*$‹•˜˜Hµ3 ‚ ´µµ333©–¤¤¤-[¶Ô6ª¸¸˜ËåFDDäççÏŸ?üøñùùùµ I’‡;v,õÖÅÅÅÇLJwe:AÇÏÏÏÁÁ×bccSPPp÷îݘ˜˜I“& >ÞàßY&“ncc£««[³ƒ¬¬ìœ9s^¾|IþÿcŸµímžº¿Ž::TË_ð/®¡[ - *ÎÆ˜9Ó:;›uÿ~jƒF))ÉnÙ2åôéÄ;wÞ5SbåÈÈe ¦N=øúu­7Öi™¸\î¼yóV¬XqæÌ™›7o^ºôoîäääåå••••œœìààPuÔìÙ³7lØ’’’’’²|ùò¬¬¬ÚFÑh´Q£F;wŽÍf—••1 YYÙÚ†ÿüùóèÑ£5_‘———››ûéÓ§„„„É“'gdd¬^½šúhÓ¦M_¿~9räµk×RSS£¢¢¬¬¬ttt–,YÂ.!!1eÊww÷¨««WÛ TðªêÞi………u42¤¢¢ÂÇÇgöìÙµEPPP(((à ©{o ¥Eð/®î=-¨¦¶5ãÇï]²äd#ºº è[RR.ô”ªùù³hÊ”ÆÆëoÝzÝÜs ލoU}ÿþýÔâlTT”––V~~>I’l6{îܹÊÊÊ***‹-âp8U×yKJJÖ¬Y£­­­¨¨èììÌbý{FAÍQ$I†……HII™ššFGG×1œïš5ùß“ ;wîìââRõ’$ =<-¢+pGŒ0»paå§O¬ñã÷¦¥µÊ Ø¡qlmmóóózõ=€p¡âl߸á#GšÙÛ›oÞ|¡´´B¨yÕ…Áøý÷Iýµ *êÙ˜1þYYßE65´O¨8›jþü!))Ÿþù'£q÷m›šŸ_¸cÇUáfU/{{ó¿ÿ^Åå’£Fíºví…ˆg€vERÜ ´z––]{÷Ö;vìN¿~Ý1\[[iÛ6æŠ!#Gv4ÈPèéÕ¡kWÕ«WW­_1~ðÒ¥#¼¼ÆÒé4ÌûãÇLíJzzº¾¾¾¸³þðÌ!!¼fÍÙ‡7ji)5.¢E'ž?ÿ»V^^Z¸¹ "$äÁ† ç† 1>p`–’’l³ÎE£‰¢¨…ö‰Édâ™C-*N!(+«èßßgÖ¬žž|pe~>gøp¿Ñ£{ìØ!žÇ?Þ¿Ÿ¶dÉÉŽeޙӽ»¶Xr€¶ çq ””äÌ™Ö'OÞoô@:ÉíØ1-44ñÖ­×ÂÍM@ƒ^¿î¡­­4fŒÿáÃñø*Ná˜3g0›]|éRR£#ŒÝcòä¾a? 11Áij*†…-ñõuÚ¹óï öff~KÐö â EGÇžAA M ²uë:¶iÓaeÕP4mÖ¬ÿ½º´´bôèݸK<…„···¸sh#ÔÕöí»9l˜™¶v#¯’–f˜™iýñÇ%SSMccMá¦'8ù3¬***½½/¼}›;t¨±Œ C\É@€+‡„ÉÑq¾¾Z@Àì¦ñð»q#%.nªª¼°kœ»wß­\yZB‚¾¿‹µµx“€Ö «êÂ4gŽÍåËÏss6%ˆ·÷Äk׊ÿ&/66Æ×¯{˜˜hNŸ~hÓ¦(§TÜ@«„Uua26Ö8yòNkʽܥ¥% 5vîüÛØXÃÄDlkë99éÉ“ûjj*:æL¢¾¾º¾¾šxS€VÇ8…IJJÒÙÙúÔ©ûåå•M‰3|¸éœ9ƒ×¬ k ŒÓh4ggë‡6ÌÔÕ5ÈÍíè§O,q'­ *N!ssœŸÏiÊm’(ÞÞ“Œ5æÏ?^RR.”ÄšHA¡ÃŽÓÎ[–žžgk»= ¶²’+uÀªºuì(“’òéÞ½´™3­›GB‚>x°ÑÁƒ·¾~eÙ]Xé5‘®n§™3­I’ܳçF|üÛ¾}»ˆýò&hùPq _×®ª;wþ=p açΚGII¶KU_ßK††¦¦ZÂJ¯‰$%% 2´µ5¹r%ùÀXÖ»·ž¤$–@­pw¤f1eÊYY©S§5=ÔÚµá/&ݸᡧ§ÒôhBT^^yäHü¾}7;lØ0~„Þ4MÜI@K„гYÄļts;³ÆÜ\§‰¡JK+ÆŽõ—’’ŒŽ^É`H%=!úö­p×®¿OŸNìÕ«³·÷Ä~ýº‰;#hq°Ú,ì캛˜h9Ò¤‡^R¤¥%œýöm®ŸßÕ¦G:UUùíÛ™11žŠŠ&NÜ?þñ7orÄ´,8³YÐh4ƱӦõWPèÐÄh**ò [¶\îÕK×À@]( —ªªü”)ýzõÒ½zõÅž=×ÓÒ¾ššjuê$'î¼ EÀªzs)+«°²ò4©ÏæÍ…påÊи¸77o®ÑÐPJÀæ@’äõë)»w_û6gÌ‹%K†[XtwR f¨8›ÑŸÞ Œ{ôh³‚‚LÓ£q8¥ŽŽ{ÔÔ:†‡/•hѧC$ù÷ß/üü®¦¦~:ÔdÅ »Áƒÿ&hí°ªÞŒLMµŽI––´²Òoz4))ÉÞ½»ìÙsÁJÀæC£ÑŒŒ4ÜÜ÷ê¥{ÿ~ÚŸÞˆ£¬,§¯¯F§ãzv€vg3’‘ap8¥ÇŽÝqs³‘’’lz@--EiiI?¿«ýûwëÒ¥eÝ,©&f` îìlekkòúuΟÆ„…=*+«02ÒèÐAJÜÙ€è`U½y±XœþððpX¼x˜°b®ZuæÚµ”¿ÿ^Õµ«ª°bŠ@v6믿î9“Èá”NšÔ×ÍmpïÞzâN Dg³Û¼ùBtôÓÄÄ22 ¡,-­˜8q_yyÅ¥Kÿ'+ÛÊ––V\¸ðôĉ»ÏŸ41Ñœ>ÝÊÉÉR]½£¸ó€f„гÙåæþ´¶öýý÷Innƒ…3;›åè¸gÈãƒg +¦ˆ½|ùéôé‡çÏ?ápJ†7›6­¿½½¹PÎ=€–§(¬]÷æþý B|hЭ[¯]]ƒ¶l™"ÄBVôJK+._N {tÿ~š¼¼Ì¸qS¦ô³²ÒÇFm *NQÈÊú>dÈÖ]»fL›Ö_ˆa¼åçwõ̙ѵú{åäüˆŠzzîܓׯ?kk+M˜Ð{ôèžýúu­y¨ðððéÓ§‹%IhVø[І¡â‘¥KO½~ý96v­pÞ­]ýìâÅ_LL4…VŒ^¿Î¹páéµk/RS¿¨¨ÈÛÙu=º‡­­ ïòvªâ ož D<ð÷÷Çß"€6 §ˆdf~:tÛîÝ3˜Laæ,/¯tvÌÎf]½ºª=UòÓ'V\Ü›˜˜—ñño¸\²oß.ãÇ÷3¦×Ý»7¦OŸŽŸÛ¶„ú_¾S€6 §è¬^}61ñýíÛ^’’Â|b‹Å3Æ_KK),l‰Ïm9¾/Œ‰yyýzJBÂÛ²²Š.]ä<ØÎå–‰;/Tœm^‹~Xb³zõèOŸX‘‘…VYY.0Ð-)éÃ\näBEE~Æ «ààù/_ú;6ÏÐP$ËÅ4*NÑÑÕUž>}Àž=×ËË+…Ù¢³¿¿ó±cwNœ¸'ÜÈ-J‡R£G÷;÷hePqŠÔ/¿ØýZöHè‘'Nì³iÓ„ß~;wõj²Ðƒ4*N‘ÒÑQž9ÓjïÞ˜²² ¡ww6gŽÍòå!Ožd =8@£¡âµ¥KG~ýÊŽˆòÙœŸÉÆ™º¹ÍÈÈkŽø D´*ºvíêêêš—÷ŸoÃáxzzZXXtìØ±ÿþ[·n­¨¨à522ªv©££#FKKK£:0™ÌªÒÒÒh4áÜ™Kˆ¡ @Å)jººÊ®®ƒ÷ì¹QR"üË_ètÚÞ½354çÏþñ£HèñA¸îß¿Ÿ“““Ìf³ûöíûãÇꣂ‚‚~ýú=~üØÏÏïÉ“'^^^¡¡¡ööö••ÿžœ™™ùüùs^(‹uûöíªÁ###ÃÂÂÌ$==]UUUÀJJJëÖ­02ŠS,Ö¬]TT×Á;v” YÈfÏœy˜Ã)mŽ)@XÔÔÔ455utt†¥¯¯ïïïO}äã㣦¦ëàà`llìääôèÑ£ÌÌÌàà`ªƒ]DD/ÔÅ‹mmm«www_¶lYnn® ™p¹Üïß¿ ØAUUuûöí‚o&*N1PT”uw·=xðÖ·o…Í_KK)2rÙçϬ3‹‹Ûã}+/^¼¨££Ãb±‚8s挱±1‡Ã!¢¼¼ÜÓÓSCCC]]ÝÓÓ³¼¼œZ ŽÕÓÓ‹ß¼y³žžžššš««+ïpcÍQA\ºt©W¯^222úúú§N"¢¢¢‚ïðªkÐu¬GÓh´Å‹_¹r…z²iÓ& ‰ÿÝ`UNNÎÓÓ3$$„zËd2ÃÃÃyëæ‘‘‘S§N­pÕªU¦¦¦‹-ªyŸË?~Ì™3GUUUWWwÍš5%%%ÖÖÖAhjþûäªË—/÷éÓGVVVKK‹*.«v¨º5CQÛjffÖ©S§;vúµ@F‚8p8¥7mŠj¾)^½úljú««kPyyeóÍ"zÔJq½Ý\]]ÝÜÜrss544>|H5úùùM™2åÇÉÉÉ}ûö]¿~}jj*AŽŽŽ·nÝòöö677ONN~ñâ…••Õš5kjUXX(--˜““sìØ1IIÉÂÂÂ;wòþãÇ   š¯ ‚HMM­šóãÇ•””H’¤jå¼¼¼juïÞ= jì›7o455Ÿ={F…•••ýöí/&õâÝ»w:t&I’ÚR*Ž‹‹ËÈ‘#ß¿ŸœœÜ£Goo犯²Ùl))©yóæeggSîׯ_«v¨;5ûÔ©SY,VPPAß¿Êw ­þÊ‹Íñãwôô<23¿5ß÷ï§uíºfùò.—Û|³ˆ˜€Õ ‹ÅÒÕÕíÕ«UQLMMsrr¨×111½{÷¦Š§ääd’$MLLΟ?O}úêÕ+Þ뚣òóó Æ®]»X,—Ë-((¨¬¬¬mxmQq>xð@UU•7vÙ²e^^^$I†„„ØÛÛWÉ{±wï^…>ðÊIJ²2 ‰””*æùóç «‘¥¥¥¯_¿.,,¬¬¬LHH Bñ­8ù†¢f‹‹£:ÔÜÌšPq´yXU›Y³êè(ïÞ}­ù¦8Ð`ïÞ™QQOvíjÆYZ&%%¥E‹½|ùrÉ’%¼ÆÌÌL---êòp{{ûŒŒ ªÝÔÔ” ˆ¬¬,###ªÅÌÌlòäɵRVVŽ‹‹KLLÔÕÕµµµ½sçN¯m¸àRSS ¨ä555“’’ªuHJJ²´´ä½e2™$IÖ\RçY¾|yŸ>},X@þÿµõ/_¾TVVRahh˜]uˆ””Ô»wï,--Oœ8QGÂu„ÒÖÖ&‚Á`´åÐÖ¡âCbÕªQQQOß¾èÚŽÆ™0¡ÏÖ­Sÿü3&00¾ùfi>~üxàÀ;;;^£ªª*ïx‹ÅJLL¤Ú©ÂH[[;33“jIJJÚ²eKm£Š‹‹¹\nDDD~~þüùóÇŸŸŸ_Ûp‘$yèС±cÇRo]\\|||xW¦Áápüüüx-666wïÞ‰‰™4iß°t:=88øÞ½{GŽ¡Z444$$$ÒÓÓ©·½^ÌE IDATïß¿×ÑÑ©:¤¸¸xÚ´ižžžOŸ>=xð`9׊NÇßøü« NS¦ô36ÖܲåR³Îâê:h÷îéüqñÀØf¨åàr¹óæÍ[±bÅ™3gnÞ¼yéÒ¿{ØÉÉÉËË++++99ÙÁÁ!  ê¨Ù³goذ!%%%%%eùòåYYYµ¢Ñh£F:wî›Í.++c0²²²µ ÿùóçÑ£Gk¾&"///77÷Ó§O “'OÎÈÈX½z5õѦM›¾~ý:räÈk×®¥¦¦FEEYYYéèèT=d+!!1eÊww÷¨««×¶7ºuë¶k׮ݻwSo ÆôéÓW®\™‘‘‘’’òÛo¿¹¸¸PQZZZVV&%%U\\¼yóf‚ ªvà©#Àˆi5þõèQº¶öª›7_5÷DÇŽÝÖÒú¿ƒo5÷DÍMsþöïßoaaQVVF’dTT”––V~~>I’l6{îܹÊÊÊ***‹-âp8UOO,))Y³f¶¶¶¢¢¢³³3‹Å¢ÚkŽ¢Ò000’’255ŽŽ®cxm×ÜTý5ìܹ³‹‹Ë—/_ªnEaa¡‡‡G=deeÍÍÍ}}}‹ŠŠxc©Ã®ñññATk'þ{ö$—˵··çMŸŸ?{öl--­U«V———ÛØØÈËËSöìÙÓ©S§Î;R\\~òä33mQN-¸?&&&Š; >&“)î ¹ âl¡fÏ>òùóÏë×=šûaëÕp8¥K—žº}û­¿¿ó¤I}E95´UÞÞÞâÎø°´ìºwoŒ´´dÿþÝD9¯””ä„ ½‹ŠÊÿ=š ÈAƒ E9;´I¨8[(%%YYY©íÛ¯Žk¡¢"/Ê©étÚСƲ²R;vüýí[Á°a¦t:nÕ ‡Uõ–‹Ë%'NÜË`Hž;·L,·g¿~=eÅŠÞ½»:4[ÄU/´%¸;RËE§Óvì˜öäIæ™3Å’ÀèÑ=nÜXóí[Á°a~÷%hPq¶hffÚ ÚúøDçæþK]»ª^ºô‹µµ³ó¡€€X±ä­Îãléú÷ïþøÕ«ÏãÇ÷KRR’ãÆY”–VìÞ}ýëWö°a¦x&4J‡–®C)ŸÉ—/?¿u뵸r Ói^^cv;þÉĉû23¿‰+hPq¶ööæ&ôY·.‚Í.cãÆYÄǯ“ ±ãèÑÛbÌZ\«Þ:°Ù%Çû l¸oŸ‹x3©¨àîÝ{Ãßÿ†£c¯]»¦)*ÊŠ7hùpŒ³uPPñócFFþsõj²x3‘”¤{x8:äzçÎÛñã÷¾zõY¼ù@Ë‡Š³Õ°³ë>}ú€_d±8âÎ…?¾÷µkòò2ŽŽ{öì¹^^^)åªzkÂf—Œáge¥0[ܹA$šøûïÑjjw횎Gb_8ÆÙš((Èøû;_¸ðìòåçâÎ… ‚F£Íš5ðÖ­µzz*LæÁµkÃ9œRq'-Žq¶>+W†Þ¹“¿¶å\µÃå’'NÜݶ튦¦âöíÌÁƒq°þgëóógÑÈ‘;ûõëè&î\þããÇ|³w年k±qãx==qg-VÕ[EEÙÀ@׫W“Ož¼/î\þ£sçNááKÖ¤§ç ²mãÆ(6»XÜI€øá)—­’¶¶2—KîØquôèžjjÅÎté¢2s¦µ¼¼Ì±cwBBdLMµð`L€ö «ê­UE×Éé@aaÉÕ««ddâN‡‹³k×õûêê +WÚ͘aÅ`Hˆ;)Tœ­Ø‡ßííw͘aõûï“ÄK­¾/ Œ?~üެ¬ÔâÅÃæÏÚ2ëch>XUoÅe55·n½Ò«—®º¸ÓáOVVjèPã©Sû±XœÃ‡ã#"ËÈ0LMµ$%±ÎÐ^àg«·`Að“'Y±±ž:ɉ;—z|úÄÚ¿ÿfXØ#yyë9sl45Å4;Tœ­ÞE£Fí26ÖâäÉ…#F˜‰r^fmmݹsçFG((`0¤ŒL…³¨×ƒ.îDÚIq'Â1kÖÀ'O2—- ¹qãsçN¢œzÕªUÓ¦MåŒM‡ZQÂõÂmǶmSuu•/þ«¼¼Rܹü*ζCF†qäˆ[ZÚWŸ‹âÎàPq¶)ݺ©ùú:?~çúõqçð/Tœm “Ùúô+V„¼}›+î\g›äçÇ´°è<**J__ßßߟúÈÇÇGMM-66ÖÁÁÁØØØÉÉéÑ£G™™™ÁÁÁT;;»ˆˆÿUö/^´µµ­\KK«wïÞAAA÷ïßg³Ù"Û´ªTUU·oß.‚‰¸\î÷ïß…Adi@3AÅÙ–9:ö\¶l„·÷…GÒÅ•ÃÅ‹uttX,AgΜ166æp8A”——{zzjhh¨««{zz–——S+§±±±zzzñññ›7oÖÓÓSSSsuuån¬9Š ˆK—.õêÕKFFF__ÿÔ©SATTTð^uq¶Ž…Z¶xñâ+W®PoCBB6mÚ$!!Áë ''çééB½e2™ááá¼…õÈÈÈ©S§Ö¶C¨8U·÷îÝ»?~ü˜3gŽªªª®®îš5kJJJjÛ w߯ª[M£ÑBCCÍÌÌ:uê´cÇ‚ H’ ìÞ½»‚‚ˆ#._¾\sÕÅw"kkk‚ 455y“R[zâĉš_ß-­UsGÕ–´ $´i••\W× ž=ËÈÈkŽøA„……ÕÝÇÕÕÕÍÍ-77WCCãáÇT£ŸŸß”)S>|øœœÜ·oßõë×§¦¦áèèxëÖ-ooossóäää/^XYY­Y³¦¶Q………ÒÒÒ999ÇŽ“””,,,ܹs'ßá?~ü ªùš ˆÔÔÔª9?~üXII‰$IªVÎË«¾÷îÝ»§¡¡A}󿦦æ³gϨ°²²²ß¾}ãÅ$"))©  €Íf§¥¥999õë×$ɪÛ[XXèââ2räÈ÷ïß'''÷èÑÃÛÛ»¶­p'ðm¤&åmõÔ©SY,VPPAß¿ ÒÑѹvíZ^^^LLŒ¡¡!Õ¹êþ©9ªÞ‰ªniRRRµv’$ùniÍÔëš;ŠoVuÿL’$Éd2™Lf½Ý@(Pq¶}%%åãÇïµ²úã˶Ѓ Rq²X,]]Ý^½zQÅÅÔÔ4''‡zÓ»woªªHNN&IÒÄÄäüùóÔ§¯^½â½®9*??ŸÁ`ìÚµ‹Åbq¹Ü‚‚‚ÊÊÊچױ ­8iiÉ¿þš/)Iwu âpJEŸ€’’Ò¢E‹^¾|¹dÉ^cff¦––u·½½=ïòmSSS‚ ²²²ŒŒŒ¨33³É“'×6JYY9...11QWW×ÖÖöÎ;t:½¶á‚KMM500 ’×ÔÔ¤ŽÌU•””diiÉ{Ëd2#""H’令Î+€ÊÊÊâãã©c‡U·÷Ë—/•••ÔŒAfgg7q'ðm¬–˜¶¶6A ƒzûþýû=zð>íÞ½;ßSm” ñ¶´*òÿ—ã‚_|w߬ EAÅÙ.(+Ë…„,úü™µxñ_\ÏþñãÇØÙÙyxxðUUUyu‹ÅJLL¤Ú©ŠA[[;33“jIJJÚ²eKm£Š‹‹¹\nDDD~~þüùóÇŸŸŸ_Ûp‘$yèС±cÇRo]\\|||xW¦Áápüüüx-666wïÞ‰‰™4i’àsQÛ«¡¡!!!‘žþïé¶ïß¿×ÑÑiâNàÛXmöj¥a—.]^¾|É{ûúõk¾9W%ÈDÄkAêÞRŸ>}¢Þ þ}ñÝQ|³€£Û‹®]Uÿúkáýûïׯéý’¸\î¼yóV¬XqæÌ™›7o^ºt‰jwrròòòÊÊÊJNNvpp¨:jöìÙ6lHIIIIIY¾|yVVVm£h4Ú¨Q£Î;Çf³ËÊÊ †¬¬lmÃþüyôèÑš¯ ‚ÈËËËÍÍýôéSBBÂäÉ“322V¯^M}´iÓ¦¯_¿Ž9òÚµk©©©QQQVVV:::UÙJHHL™2ÅÝÝ}À€êêê ÝK cúôé+W®ÌÈÈHIIùí·ß\\\š¸ø6ÖÆ²eËÖ®]{ãÆïß¿SgÓ rÌ:&*,¬þ %%%‚ Nž<Éf³÷íÛG5Ö¶¥5#ðÝQõfâ'âU|¯‹Ÿéè¬Ú·/FX‰úÎãÜ¿¿……EYYI’QQQZZZùùù$I²Ùì¹sç*++«¨¨,Z´ˆÃáT=o¯¤¤dÍš5ÚÚÚŠŠŠÎÎÎ,‹j¯9Š$ɰ°0)))SSÓèèè:†×v1JÕ߈Î;»¸¸|ùò¥êVzxxôèÑCVVÖÜÜÜ××·¨¨ˆ7–:âOD@@@µv¢–Ó «&@’d~~þìÙ³UTT´´´V­ZU\\ÜÄÀ·±ÚVW=;355µ²²ÒßßßÀÀ@QQÑÁÁ!::ZMMoÏj¯kNT^^ncc#//_sK}}}•”” ¢££©v¾[Z[„š;ªŽ ë€ó8D‰Fþ÷Ÿ[hóüýoìÞ}íàA× z7=F ›6mZÓCØ]¾|¹sçÎÔÛsçÎùúú>{öL¼Y5ê‡6<<\܉´ XUowV­åæ6xÅŠ[·øŸ¥íVrrò¬Y³ž>}ZTT”˜˜¸qãÆ ˆ;)h $ň¯¯SyyåܹÇNœX0|xõ+ˆ¡ÝZ»vmQQѤI“òòòôõõçÍ›çîî.-@ÅÙÑh´íÛ™% Ÿ>íne¥/E””ôõõõõõw"ÐÖ`U½¢Óiûö¹ØØ¹¹½x‘-ît -CÅÙ~1‡»õè¡;sæá´´¯âNÚ,TœíšŒ ãøñy ®®A99?Ä´M¨8Û;…gÏ.éÐ1eJÀ§O,q§m*N TU壢Vª¨Èëÿî]®¸Ó€¶'A((Èœ>½XOO•É<øæMޏÓ€6Ï‚ÿ)**›3çè›79aaKÍÌ´B£Ñzöì©¡¡Ñܹ׋/†Šgˆ*Nøââ²9sŽ%'gŸ=»ØÂ¢s½ýñ|Kh½¬­­W¯^-î,ÚTœP‡SêꔚúåÌ™Åææ:âNZ=œÇ ÕÉÉIŸ<¹ÐÄDÓÉéÀÝ»©âNZ=TœÀ‡œœô™3KÆë=sfàéÓ‰âNZ7 oooqç-N5Êœ$IŸ‹Ad(µ’wÐrÑh4%%ÙÍ›/°XE>>“étš¸“€Ö'Ôcþü¡rrÒk׆s8¥;wN—”Ä™Ð0¸VórÉ’“ýûw;|ØMA¡ƒ¸Ó€Ö'*##ÏÍíhyyepð|SSî@àZu\·nj/þÒ¹³Êøñ{¯_Ow:Ðj â„PR’=}Ú}Æ «yóŽïÞ}MÜé@ë€UuhŒ6œ3¦—¿¿³Œ CÜé@‹†Š)6öõÒ¥' ÕtíÒEEÜé@Ë…Uuh¤‘#Í¢£W”Œ½ëÒ¥$q§-ŽqB“”–Vøú^:~üΔ)–Û·3ee¥Ä´8¨8A.\xºn]„žžÊþý.¸qTƒUu‚I“ú^¿î!##9zôî;þ.-­wFЂà' I’‘‘ÿx{Gwì(ãçÇ´µ5wFÐ" â!ËÎf­[žðvöìA¿þ:®cGqgb†ŠšÅ¹sÿlÞ|Ë%W­5gŽ ƒ!!îŒ@lPqBsa±8þsâÄ]å_7vl/&î¤@ PqBóÊÌü¶uëå+W’--»nÞ<ÑÒ²‹¸3QCÅ ¢ðÏ?¿ÿýôé;»î+WÚYZvwF :¨8ADH’¼yóÕ¾}7Ÿ<É4ÈpåJ»¡Cq1;@»€ŠšÑ‘#Gj6ffݾý-=££ÓÁÉI[E)‚梯¯ogg'î,'4§:.b04ääúüüy‹$ËD™´+L&3<<\ÜY!)î  ›6mš¸³€ö?x-žr Í '4/TœÐ¼Pq@óBÅ Í '4/Tœõ UѵkWWW×¼¼¼ª8ާ§§……EÇŽû÷ï¿uëÖŠŠ ÞX##£jw½utt¤ÑhiiiÏž=“””Œˆˆà}-%%õâÅ‹jó***Ž7.##CðœÓÒÒj62™ÌªÉ¤¥¥ÕqÏTaAÅ P¿û÷ïçäädgg³Ùì¾}ûþøñƒú¨   _¿~?öóó{ò䉗—Whh¨½½}ee%Õ!33óùóç¼P,ëöíÛÔë>}úüúë¯+W®¤¢ýüùséÒ¥›7oîÙ³gÕy?þœÀårgÍšU[†éé骪ªõnHdddXXX£ö@ã¡â¨Ÿššš¦¦¦ŽŽÎðá㢢ôõõýýý©|||ÔÔÔbccŒœœ=z”™™Lu°³³«zóâÅ‹¶¶¶¼·¿ýö›ªªêºuë‚X¿~½––ÖÚµk«Í«¥¥Õ»wï   û÷ï³Ùl¾r¹Üï߿׻!îîîË–-ËÍÍmø>h²²²ZZZÛ·o'ÂÚÚš MMM^ÿ7n*++o۶׸jÕ*SSÓE‹Õ|¼mÍ˜ÔÆ?~ÜÌÌLMMmûöí§NêÖ­›¢¢âÆ´Ï©ýmbb¢®®¾råÊÒÒR¾“ÖöíðZ  ÙVwWWW77·ÜÜ\ ‡R~~~S¦LùðáCrrrß¾}ׯ_ŸššJ„££ã­[·¼½½ÍÍÍ“““_¼xaeeµfÍšÚFJKKæää;vLRR²°°pçÎ|‡ÿøñ#((¨æk‚ RSS«æüøñc%%%’$©Z9//¯ÚFÝ»wOCCƒûæÍMMÍgÏžQaeee¿}ûV-æúõë ‚ðõõ­¶÷’’’ ØlvZZš““S¿~ýH’d³ÙRRRóæÍËÎΦêÚ¯_¿Rû§êØqãÆ±ÙìsçÎñíÛ7Þ†¼{÷®C‡ÁÁÁ$IòFñI qvvf³ÙG%bÚ´il6ûðáü˜îsj¢Q£F½{÷.11ÑÐÐÐÛۛ蘆};5'ªûçŠ$I&“I· b‡Šš‘ '‹ÅÒÕÕíÕ«—··7¯ÑÔÔ4''‡zÓ»woªdINN&IÒÄÄäüùóÔ§¯^½â½®9*??ŸÁ`ìÚµ‹Åbq¹Ü‚‚‚ÊÊÊچױ ­8¯úõ‘$fhhÈwRÁ¿Üº¿5'@K‚Uu3%%¥E‹½|ùrÉ’%¼ÆÌÌL---ê2m{{{Þ5Ú¦¦¦AdeeQ-fff“'O®m”²²r\\\bb¢®®®­­í;wètzmךšj``@%¯©©™””T­CRR’¥¥%ï-“ÉŒˆˆ I²Ú’:%444>>þÖ­[‘‘‘ÑÑÑÕ&¢~QËÊÊâãã ‚’’z÷ƒ¥¥å‰'jKR[[› :ÏïøòåËûôé³`Áòÿ×µuÄìØ±#AÔZÕ×÷9Õ™·ÛMMM³³³ùN*ø—[Û†@ „ŠÄìãǰ³³óððà5ªªªòŠ-‹•˜˜HµSµŽ¶¶vff&Õ’””´eË–ÚFs¹Üˆˆˆüüüùóç?>??¿¶á"IòСCcÇŽ¥Þº¸¸øøøð®L'‚Ãáøùù988ðZlll îÞ½3iÒ¤ªÑ>þ¼råÊ;w:tóæÍîîîõ^T\\>‰DŽÛÛÛý~¿µU__ßääd( …BÃÃÑHä£V‡£­­mss3꺞““ãr¹>jþðð`žV|WBÜÜÜ\^^^\\tttœŸŸŽŽš—¦¦¦®¯¯[ZZvvvNOOƒÁ`SSSyy¹õ–mvvvWW—ªªŠ¢$ë ÃPUµ¾¾~ppPáóùJKK5Mû|Ñ^__u]w:ñx|zzZñøøh^ŠÅb®|eeåìììÜÜÜûü\†kn~xdd$MLLôöö¦4óÍÍp¦€oáëàãç:ǹ°°ÐÐРëºaÁ`°¬¬ìööÖ0Œh4Úßß_XXX\\<44ôôôd=§øòò266æv» ¼^ïÝÝYŸÚÊ0Œ@ P]]ít:kjj¶¶¶>inÂZ¶þ^<OOOÏÕÕ•u±XÌçóÕÕÕ¹\®ÚÚÚ™™™çççd[óÎÜþþ¾Âï÷[ëWW£„>°'IDATWsssONN’]feemlléÎ&ÍÏÏy<žÅÅE¯×«(ÊÛÛ[sss^^Þ»q­åw&‰ÖÖÖä4Sûü¨k9Ã57×see¥¢¢¢¤¤DÓ´x<žvпÚÜÏq޾‡‘ò')À¿âp8@ww·ÝÀfáp8õÝK²™_¼õõõ¯OÕ 'éòóóUUµ; €mÈ8H§(ÊÒÒ’ÝQlCÆ ¹È8 'ä"ã€\dœë—Ýà?···wowø‰ÎÎΪªªìŽ 'd[^^¶;ü\dœðMð–KÈÅ9NÈEÆ ¹È8 'äú •·§ZÑÃIEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMImplementationLS_8hpp__incl.md50000644000151400015140000000004011653571065020465 00000000000000823a48d79cd6db483d54b3b4d89aa5b5XQilla-2.3.0/docs/dom3-api/inherit_graph_31.md50000644000151400015140000000004011653571065015724 0000000000000098b4ba2e3fe2a162de7f6b65b77b5954XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMCDATASection__inherit__graph.png0000644000151400015140000002226011653571066023653 00000000000000‰PNG  IHDRÐNYm#bKGDÿÿÿ ½§“ IDATxœí{XSGúÇ'$\) È¤(  *Þ¶ˆÊ [[QA«T¬µ‚·Ú§¬Ô_…zëR­®V j]P©6€ Pe»ÈEªâ‚·D4 4A’’œßÓž¦ä"aÛ qßÏÃ3sæyç=ß3snœ0(ŠB@ ];üo‚ˆ‚ˆ‚ˆÂ"ÓMPP™Ž€SXXH ™«Tƒ1}útggg}ÚÒÜÜ\QQAH ÄÇf³—,YB /@[222–.]JF p§ \]]###ÛÛÛ+ˆD¢ØØXssó)S¦ìÙ³G*•Ò¶îîî}®CBB F}}=®®X¡¾¾žÁ`ôÓ7­*ëœv”——s¹Ü–––ÔÔÔ®®®I“&uvvâM`òäÉUUU‰‰‰7n܈‹‹ûöÛoƒ‚‚d2®ÐØØXSSC7ÅçóËÊÊÏÊÊb³ÙÄÆ¢@pÚ1bÄ;;;GGÇ€€€œœ77·àM;vì1bDQQQppð˜1c-Ztí򵮮ÆÔÔT\!00033“n*//oÖ¬YŠGGGoذ¡µµ•ØpÈ3X———çèèÈçóBgΜ3fŒH$BõööÆÆÆÚÚÚÚØØÄÆÆöööâµ£¨¨ÈÅÅ¥´´4>>ÞÅÅeĈ‘‘‘ôd£l…ÊÏÏ÷öö611qss;uêBH*•ª4W\ž4,U cíÚµçÏŸÇÙôôôíÛ·3™Lº‚™™Ylllzz:Ά‡‡gddЋfVVVXX˜bƒ~ø¡‡‡GTT”ò=ØÎÎÎwÞyÇÚÚÚÉÉ)&&F"‘Èd²½{÷Ž3ÆÜÜÜÏϯ²²RÃØBl6[sÈÈÈ•+W¶¶¶ÚÚÚVVVâÂÄÄÄÅ‹755q8œI“&mݺµ®®!R\\œàååÅápjkk§M›£ÎJ(§¤¤p¹ÜãdzX,¡P¸wï^•æÇŽSN#„êêê}®ªª²´´¤( *ííí}uåÊ[[[l{ÿþ};;»[·náfMMM;::è6qâÁƒC† IMM¥( ·1gΜ‡r8œqãÆ%$$ìß¿ßÆÆ&;;ûéÓ§çÏŸwppÀ••Çþ½ƒ×ñVûCD‚ãóùNNNÞÞÞ t¡‡‡—ËÅé &àÝÀáp(Š;vlvv6Þz÷î]:­lÅãñ ÷íÛÇçóår¹@ ÉdêÌ5ŒB[Á]½zÕÚÚš¶Ý°aC\\EQéééAAAŠmÒ‰ƒ¾òÊ+MMM´àzzz˜LæíÛ·q›ÙÙÙ£G3fLZZÝщ'peå±kõ?+8Š¢vìØÁd2ÛÚÚèÅùØÂÂž¼µ¶¶V¹e+Š¢._¾fffæïïá æFÑGp§OŸöõõÅi;;»ÂÂÂ>&ÉÉÉóæÍ£mKKKG-—ËCCC9B©œL&›5kÖܹsnMÙŠ¢¨¼¼¼ñãÇ¿úê«'Ož¤(ª··W¥¹b€ÓÊ{ýôéÓ¾¾¾8mggWXXØg\III³fͶÇ=z´\.Ç›æÏŸüøqºM;;»òòrE[@ðøñcºë¤¤¤Q£FYZZîÙ³æççO˜0aÈ!vvvŸþ9í-Î?þ¨\A凎²µµU½>ÍjŽƒr§}ÚW® ™?EpEEFF®\¹²µµÕÖÖ¶²²&&&.^¼¸©©‰ÃáLš4iëÖ­xð!!!ÅÅÅ ^^^§¶¶vÚ´i111ꬄB¡±±qJJ —Ë=~ü8‹Å …{÷îUiÞÙÙ‰§¥>iå@WUUYZZRÅçóBííí}uåÊh„Ðýû÷íììnݺ…›555íèèÀmbs|¼©Ž,BóçÏïêê:{ö,B¨£££««ËÈÈèÝwßmiiIOOG={öL18\.W¹‚Ê!÷™4Ç\(jˆƒ¯pM•4 ãÏŸÏwrròööNHH  =<<¸\.NN˜0{Ïáp(Š;vlvv6Þz÷î]:­lÅãñ ÷íÛÇçóår¹@ ÉdêÌÕ1Á]½zÕÚÚš¶Ý°aC\\EQéééAAAt9ÇCÑS¬Ê®KKK)ŠÂg„uuu?ÿüó½{÷„B¡L&»té.T ŽÊ *‡ÜGpšc®9¼Â5UVÐv úù¯.,--£¢¢îܹ³nÝ:º°±±ÑÞÞ_=zô—{xx „?~ìîîŽK<==.\¨ÎÊÊʪ¤¤¤¢¢ÂÉÉiÖ¬Y?þø£:óþSWW7jÔ(ì¼]uuuŸ ÕÕÕ¾¾¾t6<<<33“¢¨¬¬¬°°0ºÜÊÊÊÖÖöîÝ»Š¶UUUS¦LéîîÆY„Á/A622zðàApp°¯¯oZZš¢!ŽÊ ý²æ˜kŽƒ¯^èö@ÐV¡Š455ÙØØÌ›7ïí·ß¦ œœè#€Ïçß»wOñpqssËÏÏÇé[·níÚµKUwwwYY>ÂÒÒÒ˜LæO?ý¤Î\HédÙßߟ>YÞ¼y³Ê‹†жR©ÔÖÖ¶¬¬ÌÌ̬­­M±Í5kÖ,Z´ˆ>ã(jÓ¦M>>>Ê]ãtww·±±qnn®\.‹ÅHi.QYAåûÌpšc®9óJsØÿ”N.—¿ûî»ï¿ÿþ™3g.^¼˜ŸŸË-Z÷øñc‡œ””¤hµbÅŠm۶ݾ}ûöíÛ7n|üø±:+ƒ1wîܳgÏvuuõôôšššª3þüù7ß|£œFµ···¶¶>yòäÒ¥K .|ôèÑG}„7mß¾ýÙ³gsæÌù׿þUWW—““3mÚ4GGGÅ ›Éd.^¼8::zêÔ©666ŠcÙ½{÷¥K—V¬XQ^^Îáp>ûì³C‡íÞ½[]Ä~þùçžž###±X/¬ nÈ!|rö˜kŽƒ¯pû/t[;´U(ÍW_}åããƒ/'srrìííñtWWתU«¬¬¬†%‰‰Dãàà`aa±lÙ2úHÙŠ¢(6›=jÔ(###ÜÜ\ æ®Riœ#""ð,E# 7oÞ!tæÌ™1cƈD"„Poooll¬­­­Mlllooo}}=ƒÁ(**rqq)--wqq1bDdd$=Ù([!„òóó½½½MLLÜÜÜN:…’J¥*ÍqÊé>0Œµkמ?gÓÓÓ·oßÎdþök¾fff±±±ééé8ž‘‘Aýºªfee………½02ÊcQ«éÓ§#„ììì´:IHª»Ÿ3\ddäÊ•+[[[mmm+++qabbââÅ‹›šš8ΤI“¶nÝŠåâââ„„///‡S[[;mÚ´˜˜uVB¡ÐØØ8%%…Ëå?~œÅb …½{÷ª4ïììÄÓRŸ4úýlDQTUU•¥¥%EQx÷···÷Ô•+Wlmm±íýû÷íììnݺ…›555íèè@/šá”Ç¢2Vƒ|†Œ‚ãóùNNNÞÞÞ t¡‡‡—ËÅé &àÈr8Š¢ÆŽ›·Þ½{—N+[ñx>ÞÛÛ»¶¶¶¶¶ÖÏÏoÍš5ê¬Äb±‰‰IVVV{{ûÑ£GMLLÄb±:s çpôm‘ÒÒÒ 899uvvâ­ÏŸ?;vì¬Y³ <**J$)î‰Dãàà`aa±lÙ2>ŸË•­°£F222òððÈÍÍÕ`®Ø…bZñˆuvvŽˆˆP\ý)Š …›7o7nœ©©©——×®]»º»»i[,¬ÒÒR„PRRRŸråîÔEe¬z{{g̘1tèÐþìò‚#ú›÷K—.%Ù# ƒÁf³I¾†9Ïဗ@@@@@@Ü@ ïšÚ‚ •• ºöB/ÑÁÞ«{Q°°@=^¢kGô¢¶š››é·<ô™ŒÚ¶­ŠÁ víšÊdêýÁ3}útgggbÝáœIŽíO¢¸øžX\ekëð’|C‰p§5™™UL&ƒÅ2È̬ҵ/úN;D¢Ÿÿõ¯Z™L.•Ê 8ÝÝ=ºöHÏÁiÇÅ‹w{{y•··WvñâÝú£w€à´#+ëºBŽñû,ðb@pZÀç‹JKïËå¿\×Ëåò’’û|¾H·^é 8-¸pÓç.E¡‚‚Z]ù£€à´ +Kù²”RU¨×_¸ÜÎk×éõ#—S••Z[ŸëÊ+½×_òòªU>W`2yy/É·´‚ë/™™U2™ŠÇ€2™î÷\¿hlì¸w«ò¹3E¡»wŸ66v÷JÑÁÛ"úÈžžr¹g;;»B––¦8k``pãF£«ë þ à èÛ"/ ÑÑ'BGŽ¬Ôµ#ú,©Q@pQ@pQ@pQ@pQ@pQ@pQ@pQ@pQ@pQ@pQ@pQ@pQ@pQ@pQ@pQ@pQ@pQ@pQ@pQ@pQ@pQ@pQ@pQ@pQ@pQ@pQ@pQ@pQ@pQ@pQ@pQ@pQ~÷ÌK—.íÚµK‡Þè ­­!;»§ºvDø¿ÿû¿Y³fÑÙß}ã·­­íâÅ‹³gÏ&픾amÝ„’JuíÇ §´´tÍš5Š%*>*OÊà%§´´´O œÃDÁDÁDÁDÁDy9ú( €NÛÚÚúøø¬[·ÎÒÒ’.”H$iiiUUU\.×ÅÅÅßßÿ­·Þb2™ØÖÑÑñÔ©S Æo¿øñÇ_»v-==ÝÑÑ!ôÓO?%''ß¾}ûùóç#GŽŒˆˆð÷÷ïgס“'O¦¦¦®Y³fùò帤¸¸xçÎÊ9vìØèÑ£Uš „ÄbqZZZYYÇ1bÄœ9s"""ŒŒŒ´'Ož¼ýöÛ%%%3ï'/§àB‡¶··—ËåÍÍÍgÏžŠŠúç?ÿ9tèP„Pww÷ºu묬¬¢££=ztüøñëׯùå—¡ÖÖÖ‡â=555tË]]]ï½÷Þk¯½ojjZYY¹sçÎÝ»wO™2å…]#„(Š*..¶±±)))¡ÕãççwöìY„—Ëݸq#N#„^yåu&¡C‡µµµíرcĈMMM‡›6mꔸ\îÚµksssBC‡]¶lÙB­/í’jii9lØ0kkë‰'îܹÓÞÞ>33o:yò¤¥¥åþýû§Nêäääï’ÒÚÚZPP€+øúú*Þ@*//Ÿ0aMMM8qbll¬§§çÈ‘#—,Y²hÑ"6›ÝŸ®B=jjjÚ²eK}}}KK .4666lذaÃð\8ìWX,–:„Ðå˗׬Yãîîniiéíí½iÓ¦+W®h%¹\ÞÕÕ…ÓQQQZ™­W^^&BEEE+V¬H$!©Tš’’²páÂ… ¦¤¤H¥Ò'OžܼyséÒ¥ÕÕÕ©©©K—. ýüóÏ…B!nMÙ w±zõê¹sç._¾üßÿþ7BH&“©4Ç](§ûÀ`0Þ|óÍŠŠ œ-,,ŒŒŒÄ“ÆÄÄä­·Þ*,,ÄÙÙ³g—––Òý.]º¤øp¦¬¬lñâÅŠí¯\¹rË–-ýé!T\\ìãããëëëââR\\ü€k0155=wî­oooZ÷ÊUÃõë×#„-Z„~@¡Pø÷¿ÿ}Á‚áááÉÉÉ===¡€€€‹/®\¹òÍ7ßüî»ïúã¹2Z îµ×^óõõMJJâóùIIIÛ¶m311Aeeeq¹Ü#GŽ|ùå—7oÞLMMÅõ322¶nÝZSSSVVöùçŸ8p ¹¹9==oU¶’H$ ¡¡¡ß}÷ÝŠ+¾øâ ‰D’••¥ÒÜÒÒ2&&F9­Œ““ÓÓ§OBB¡ÇãÑË%ÍèÑ£›ššpzܸqb±øáÇ!‘HtóæM???¼ ›»¸¸(Ú2ÄÆÆæ…]£_Ç9sæ „fΜٟ& &±±±7oÞ ‹e³Ùmmmô&åÀªŒá×_ÊÎÎîÓéÁƒÛÛÛSRR«ªªÎœ9ƒË/_¾œ””}äÈ<éhË@–Ô÷ßÿæÍ›111 ,ðððÀ…|ð››[ttôµk×pyTTÔĉ‹ŠŠÞ}÷]77·W_}õã?öòòRgÕÛÛKQ”X,622 ÎÏÏ766>þ¼Js33³×_]9= ýs¨3gÎÄ«êÕ«WÇÏ¥BxÚS¼žÐŠû÷ï?{ölæÌ™¡™3g666>zôhÀ&“'Of³Ù?~ü?ü°|ùò¢¢"¼I9°êb¨ŒT*-..~ÿý÷íííÝÜÜV­ZEÏý¡¡¡C‡7oBˆžYµb  C‡?þ‰'¾üòKº°µµU=hãYIDATq¡133à <´µµ999á’‘#GŽ9R•¹¹ù²²²RSSÇŒ³|ùòiÓ¦©3ï?---ØùaÆÕ××ûúú*V¨¯¯3f ={öÞ½{W¯^Ýg=577·²²züø±â»ÿþ?þñƒkè!T\\,“É,X@o-))yõÕW5x®ÎD"‘”——Ïž=ÛÓÓÓÓÓsÅŠiii)))x.Tlooo?cÈçóår9í³££c{{;N[[[#„ð™åÀÈ ÷ìÙ³œœ___ùD ¨3ï'EåååMŸ>gOž}ztt4.W¶222Š‹‹;räȳgÏâã㌌ԙwvvîÛ·Ÿº)¦B7nÄ ooï£GÒ«¼©©éÑ£GSSSSRRž>}joo?gΜððpCCCő俿.\¸°O,--=šœœ/‹]\\vïÞMOŸº...ž4i’¢|ÝÝÝJJJÜÝÝUF[³É–-[N:uìØ±'OžXYY¼óÎ;êk`` C;;»ñãÇ/^¼øÂ… Šý~ðÁ‡^»v­¡¡á_ÿú׈ˆ•î €ß½ñ›‘‘±téÒ?û^3ð¿C@@›Í¦×ôßø' 8€( 8€( 8€( 8€( 8€( 8€( 8€( 8€(*mix« þK~'8ggçððp]¹¼|¸¹¹9;;+–04¼8påÿ˜šï“åYIEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMConfiguration_8hpp__incl.map0000644000151400015140000000003511653571065020144 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMConfiguration_8hpp__incl.png0000644000151400015140000002257711653571065020172 00000000000000‰PNG  IHDR}u´ÝÀÞbKGDÿÿÿ ½§“ IDATxœíÝw\÷ÿ8ðw+€ eˆ ŠL¬­1 I\PGµŠZ­ŸŠ£}TÑÖQ?ö×~[­XpADpa­ A¦¢‚âbÊ{&¹ßgïsÍr ¼ž].÷~çuwïÜ+w—{¿i†!È„Õýä]@v ï²yeª@š›7oîØ±ƒê(@Oš4iÒ–-[¨ŽÊ@Þr­¢¢âÚµkS¦L¡:Ð3?~¬§§GuP ò.PaaaT‡zÆöíÛ©ŠÁý]@v ï²yÈ»€ì@ÞdþÏ úwwwbÚÈÈÈÉÉiåÊ•ºººÄÌÖÖÖÈÈÈôôô²²233³‰'Λ7N§ãeMLL¢¢¢h4±ü¦M›xðà£GêêêÌÍ̓‚‚&NœøAb¶k×®Û·o_ºt©¤¤$88øÆÝ]m º_¿»»;±î€žç» Ø¿ÿ¹sçbcc7mÚÔÔÔ´|ùòÆÆFü­æææ+V<}útÅŠáááAAA)))¡¡¡_ ¼¼üÅ‹DU 999ÄËúúúeË–©©©………:tÈÃÃãÇLOOÿ ðª««¯]»vâÄ „––Öüùó»»ÂÿVVVæçç‡O÷Fý€žç» ÐÕÕ8p BH__ßÙÙyݺu±±±K–,Aýù矺ºº¿üò‹’’BÈÔÔÔÍÍmÉ’%—.]òññA¹¸¸¤¦¦ZYYáUݽ{×ÙÙ9-- yüøñÑ£Goذinn^SSsöìY77·®‡×ÖÖ†244Déèè,_¾¼§V'êëëñéÞ¨ÐSà|ôA4Í××÷þýûøË”””… âI§®®>oÞ¼””üå”)SRSS‰±¨oÞ¼9yòdbá[·n’ë_´hÑÆñéÆÆÆŸ~úÉÏÏÍf¿o:nÜ8üå´iÓþüóOâì!ÔÚÚzúôé±cÇsš››óòò222ð“<ÂøñãÏž=KN)))<OMMMOOOII©¬¬ Ÿ_ZZŠç3$ù™ÌÈÈèåË—ÄKrvçóù¡ªª*òòxšlkkÛ¶mÛ¼yóÂÃÃ×­['¥þî„'vââb|âíÛ·xb–4 ä]ÐGÔÖÖÖÔÔTUUåäälÙ²¥¬¬lΜ9ø[‹-âr¹ß|ó̓Š‹‹ÿþûï•+WêëëÞ .5ÿòË/¶¶¶äBK—.ÍÉÉÙµk×ãÇ‹ŠŠNœ8·lÙ2„²²²»»ûï¿ÿ^VVöòåË£GN›6­ë1ûûû>|8##£¾¾>+++22’F£iii!„®^½ÚÜÜ,z¿!ÔÑÑÁãñ”••ÛÛÛ?ŽjnnÆßjii!/ùAá%''Kº^MØ¿IIÉÓ§O9âéé)e&@xŽô_}õ>ahhèè让©‰ÏÑÐÐ?~üø¡C‡JKK§NÊf³UTTÈ5¸»»'$$Õ¬««~ðàÁ°°°––33³;w'Ó_ýõþýûCBBTTT<<<‚‚‚º³¿¿?ŸÏÿõ×_ëêêìììBBBöîÝ«££³téÒDGG¯^½úï¿ÿ*¥¥¥µråÊ;v0Œ L:uãÆÇÁÁ!00ðâŋ䅻ÞÏ?ÿìììLl4±¦M›¶~ýúÖÖÖ©S§áW•…fv}õèŸhB7+111sçÎí½®¨uïÞ=CCÃáÇã/oݺAmTb‰íë#:ÆÚ¾}»ALLLO€Â€ëÌP¦¨¨hçÎ………mmmùùùÇŽÃûñôapÊÌ›7¯µµõû￯­­566öööf2™T%ž¦¦¦hlbg¤ƒ¼ eètúÒ¥K—.]Ju ÓÕÕýæ›oº2 \gdò. ;wÙ¼ Èä]@v ï²Ï*Ëãñ4Z[õ´´Jdù¡jn6¤ÓÛUUk»0”Cw}PÖô=w\:t(›Í–ÍgñxJïÞ1*+5TUUù¶¶ AçÅzHF†‘¥eÝÀ­2ûD£GúÕÕjªª‚AƒZ šµµÛ{ï³,--‰®­蟠fÐßµ´´'%åp8wîjjªùùþÔÑq¨ŒÃ2ä?‡-òõu–ñçâÊÊj““s³32^éêjLjËf»M˜`Ý•Ñ ò.è§0 »}»066ýêÕGÍÍíîî¶,–ëôéöjjÔ\¢6ïÞ¾­¹p!+&&½°°ÂØXwæLG&ÓiìXKj£ /¼ ú7oªccÓãã³^¼xgk;dþüO˜L'##j£’“¼Kxö¬<));..óåËÊ¡CúúŽž3ÇÍÚÚˆê¸PxwAÑÔÔvþ|fllúǯtu5\ØlWÙ_O–DÞò.áÙ³r'ƒÃɨ¨¨³±Ìd:ºZXèSŠ ò.èãðëÉÑÑ÷RRóù//Ëuò䪪òõ§B¹Í»8ËÈx™˜˜“YUÕhc3˜Íve±ÜŒŒ´© yôY¯^U‚Çܸñ„Ãɸzõ‘@€yy9úÙgVtºbtʦpy—ÐÚÚñ÷ßNÆåËyJJ´I“FÌšåäã㤡¡JuhÈ#È»@á=yRzêTZrrNyy›Û06ÛÍ××Y[›Au\Fqó.¡¾¾åÊ•GII97np¾+ª´´öâÅÜÄÄìôô—ƒëøø81™Nnnà,ПAÞ #/¯8*ênRRN]]Ë„ Ö,–ëŒÚÚêTÇÕ3údÞ%àÝ`=ûàùów¦¦z3f8ÈÕÃÓÈä] ï*+bbÄÆf”›› þÔߌ‰‰Õqõ°¾w x7XçÎ=|õª ï…# ÀÅÒÒ€ê¸È»@Náד££ïݽû\]]% ` ‹åêê:Lѯ'KÒOò.áŸn°Ò+*êñÌf»™™ ¢:.zä] w<(âp2sêë[&L°þÔÓÓN]]…ê¸zWË»8r7X55Mx/~~£ P½ò.ÅÅܳgÓ.\È.,¬6Ì`Á‚OfÏv16Ö¥:.éŸy—Àç îÞ}›~åÊ£ææö1cÌÙl7_ßÑ}æþ=È»€bÍÍíÉÉÕÑј=[¾†+™~žw D7X/æòx‚É“GÌšå4s¦£¦&tƒúÈ»€ò6ü-å ï iii¿v-ŸÃÉHM}J§+MœhÃb¹zy9@/@ÑõÓc Ðë×ÕÑÑ÷âã3KJ¸£F õ–‡áo¼a0T™Lg&Ó¹®®ùêÕÇII9«WGih¨MŸn½p…yÈyø[==Íyó>Qˆá ått4ðn°jjš.^|ß –®®†#‹å ½p…×™AïR”áo)×™»ŽÜ Ö!ºÞÞŽL¦Óر–TÇ@—@Þ½ååËÊS§Òââ–•Õ:: þTž‡¿¥äÝPXXqáBVBBÖóçïÌÌ1™Îs玵²2¤:.¤¼ z—ÛtîÜûá hø[ÊAÞíÑn°]-,ô©Ž 1 Aþ–F£ÍšåÄf»)Ð𷔃¼Û#rs߯Æf$%eWTÔ;:e±\™Lg##mªãà ï‚îÊÏ/=}:-))§¢B‡¿¥äÝDtƒŸÉå¾ï+ `Ì AZT‡ä]𱪫ÏŸÏį':pÎ7?¿1pkí£AÞí D7X—/çµ´t|ö™‹åêíí¨¥½pÊ@ÞFhøÛÙ³]úöp2y·W‘»Áâó“&˜5ËiÖ,'C•êÐ@¿yt•èð·^^@÷¹=ò®l»Áb0T¦O·g2§L Ý`™g(A'ÈÃßZXè¯^íÑ'‡¿ý„h7XK—ÓÒRŸ6m“éìáa ÿ½ Îwx­­‰‰ÙNÆÝ»Ï ÿ>>ü-åà|—*ååuII9‰‰Ù¯ŒŒ´}|œ˜L'è ôÈ»@>üí… ÙMMm¶,–kþ–rw)WR½t)ïËÔToÆ ‡9sÜL©Ž ô5wÁ{oßÖÄÄ<À»þé‡ÃßRò®ü(((OLÌŽÏzñâÞ ÇìÙ.ÆPè# ïöw0ü­œ€¼+‡ðn°8œŒ×¯«ml³Ù®,–+Œº òn?%vøÛ3ìa¸ª@Þ•gx7X‰‰YUUx/~~£ PPHwûòð·vv&s玅Žô(±zuÔ“'eÄË’’Ú5Œ÷÷Ñ••é'N,…ëür…Ü Vmmó˜1æl¶›Ÿßhxš|È»ýEcc[|< +G~ýõêÏ?_’ôý³²2ºuk³l#]ÕÞλyóYbböåËy|¼' è…tònÇç ®_Âád‡¿…^äÁë×ÕŸ}¶SìPY™¾yóÌU«\xÄÌòò:—í4ÁP9|x‘‡‡-%Ñ€¼+×l÷îä®#„0 £Ñаa·o‡ª®nX¿þŒ@ðþkH§+Mœh}êTµQÞ€÷Âqþ|fQQ%Þ V` «……>þîÁƒ7vïNæñøøéU«<6ož ׫ú$È»ò«¥¥}Íš“—/çeÜ÷ß3ÓÒŠRSŸª¨Ðaø[E×ÐÐjoÿ}GI£Ñ~ÿ}A` +µQ^EîËÑq(‹åêë;zÁ‚Cùù¥Ä2tº’‹‹Å‘#Kôõµ( ôÈ»rª¤„^TTÉãñÉó•••x<“ÓP6Û- `Œž\Tx_|qì򵂿¿«ÔÔ”?Þ ö<žàöí‚„„¬K—r[[;ÚÛùB ¨¨Ðõô4Ž_6z´%‚^yWef¾^´(¢®®U(éâ Pôh< Øg$%å„„œ0eeº——Cxø"ª#2ÕÞÎÛ¸1æüùLâ²NWRR¢ýôkþüq”ÄzÜ<;11éþþûêêZÄ&]„Pcc[jêSGz1Ì"ŸÏ t¡: kªªÊ¾î舾Åç x<~hh̆ gE³2PPwåˆ@€mÙr~ݺS<ž@è™N2%%Ú™3i² ô*55e// 1ªS¦Œ¤: kOŸ–½xñ!ñ—1 avöì?¿}u2Ž ô† >ÓÒÒÂår© ¥ŸkkãmÝšü×_!Iß@Ÿ/¸v-¿ à¥––šlbC1 ==½îÔ­K w÷aqq==GTW¿£:9ÕýXZZÚùBT8sæÖÉ-?OýÚÃã¿ÿ÷vvÐ ŽâÑÓÓc0Þ?Þù¯¼ÛÐÐPPP@EHý]}}ûÏ?ßó¦^]ýýÑÐx?¡ªJ'nåji½¬FMMùæÍ,kë2‹ÐÀÀ ›G=h]Rèè P5J 6‘$Ýor»m/\Èéâÿl¸Ü毿ŽY²ÄÉÍ͸·£=kÔ¨Qâó.nÊ”)2  „òõNu=~ü¸§ª‚Ö%Éš5تUð<˜X=ÕGeh(wϸgfN¡:лRSSÉ/áþ.raÅŠ)tè ï àÁ0ú È»€ì@Þdò. ;wÙQø¼ûæÍ›%K–tºØóçÏñѵˆ rñ¬¬,ee娨Xb~BB‚ªªj^^BˆF£Y[[ =`çííM£Ñž?Ž/€O566†††6ŒÁ`X[[‡……µ¶¶v%Â&6 Ð=ÒºB4ƒ1~üøììl)b¬¥¥…Ú¿¿‰‰‰@ ¿knn¾oß¾^¯®hjjÚ°aƒ““Ó€ÜÜÜvíÚÅãñ„b-°g‰m~Ý?Pˆm– .¬¬¬$/)©  .esmr½}dÙz>ïÆÇÇûûû‹}«¨¨H_ÿýØ–ººº›6m’T|ôèÑß}÷ÝÚµkkkkBuuu«V­ sppÀ{õêUNNQŠËåÞºuKz`kÖ¬ÉÌÌüöÛoOž<éééÉçóɱ^%¥ùõTµx³,..>~üx}}ý˜1cðc ’Úð¤©:J¯çC¿½#©¨¨¸qã¦P|||š››Å¾UXX(´‚¢3‰âmmmöööË—/Ç0,$$ÄÅÅ¥½½_!äååõÝwߥ"##½½½B………øø™®®îýû÷‰—7oÞ433“UFxôèÑ£GºYIn]B»¦¢¢!TQQ!és…êñôô\³f ñò»ï¾›}ÚÆÆ¦©© !ÔÑѱaÃ###CCà 6tttàçûýõ—™™YjjjXX˜™™™ÁÂ… ‰ŸT¢¥B‰‰‰ŽŽŽêêê–––QQQ!'¶xUU•¦¦&ƒÁ _[ ¦Ç‡ •Tª±±QMMíСCeeeGUVVnllÜ»w¯ØâÇŽ‹ŠŠÂþý+†˜ît&Qœ°yóf„ÐŽ;È3BOŸ>&ïr¹\SSSGGGòç9²¬¬ ŸNIIqvvÆãËÍÍÅ0lĈqqqø»ùùùÄ´h©šš•Ÿþ™Ëå ‚††>Ÿ/©x```MM ö±GF¢8N øùùÑéôàà`òúâ»võêÕß~û-†aÑÑÑžžži—‹Í»†ñx¼û÷ïÿðÃöööt:ýäÉ“b£Â7y>BßíííxåöööxqÜ©S§ÄæÝÔÔT Ãð£ÂÂBrý†={ÖÊÊJìLÑàÉd™wûdëú±«¥¥•ŸŸßéÚ‘7K@@ÀêÕ«1 Û¹s§‡‡‡”²bW‡\a{{;N'vh\\œP«t̽wïž¾¾¾ô#—<·À®ä]9l~666‘‘‘D0'Nœ@‰Ý‰†!„233±äiü%Ô,?4ïâmëÂQ“ÉPJÞ»µ)i½Xä] Ã~øá:N®H]]|dÑÑÑÁãÃï’ª««çåå‰Ö#Z ð۷o³X,MM͉'^¼xQRñ††___|š¼5ñQG°ÎŽŒä⸨¨(›7oª««ÇÇÇÿo!TXX˜ššjee%üýý>ŒIÍ»§OŸ&n‚-[¶˜˜˜ˆ ßDBÍîÙ³gäOg0999Dýä߆ä8 È¥ð:[ZZð™999êêêbgŠî2ßßí{­‹ÜBšššÖ¯_?nܸN׎OLLŒ‘‘ÇsqqÁ›Ÿ¤²bW‡\áÛ·oÉ 77—hÄœ’’"TÉÁƒg̘!ýÈ%Ï-°‹÷wå­ù1Œììlâ­¬¬,„؈ý»¥‰NKi–¸S§N¹¸¸àÓRÚÖÙQQf@ÑU ×#ºµ)i½X÷ïïâ»|ÿþýÓ¦M[¿~=1ÿ!ŒWÊårïß¿ÏÇï’2äÕ«Wøœììì;wJ*ÕÒÒ"bcckjj–.]Êd2kjjÄ¿|ù²——90ü?î%%%]Y ¡â¥¥¥k׮ݻwï¤I“ÂÂÂV¬XAÜ™ÀM˜0¡¡¡áöíÛ)))þÉð à!!„h4ÚŒ3ˆ¿à !ßH&()ýkט››“‡dyòÒæÅÇ(IDAT䉨ªÄÞóÀ B¨  ¿H%i¦<è“­‹LCCcñâÅ?Æþ9–´vd>>>MMM'OžÌÉÉ ²e$m ‚‘‘N/**Â_¾xñÂÄÄŸ&šbPPÐ?ü@ÜQF555íÙ³GÒJ½Êaó³°° ÿm?HÙ‰RHi–! Ã<èãヿìJtT¤êH&vkK/"»ÖKÎÉ]9#áóùÓ¦MûñÇkjj|áÂ|þÚµkY,þÏòO>ù䫯¾"ÿ² sttÌËËËËË?~ü—_~)©TKK‹ºº:‡Ã©¬¬ WWWoii[<88¸¤¤¯ììèÑ£uuuøQ ûç§MCC&\\ Ìš5kòäÉ|>ðöövGGÇùóçãï¢~R­ZµÊÖÖÖÝÝ]h>"=%‚Ã0lÑ¢E666III/^¼¸sçθqãÖ­[')*LäçžÐÕ}ûö™šš^¹r¥ªªê¯¿þ1b>PvDDDmm­¤Rxîîî………<°¶¶Þºu«Ø™ÒwºÌÎwûdëÂD~•ã0©¯¯ïÊÚ‚ƒƒõôô¦OŸNž)ZVìê£Å0lÁ‚S§N-**ÊË˳³³#ZQm]]݈#&Ož|éÒ¥‚‚‚¸¸8;;»ñãÇ·¶¶ -©@-°Óó]ùl~¿ýö›¡¡a|||YYÙ¥K—,--Ñ?‰Mh'bïŠ6Kâ9¢ÔÔT???SSSboJiXŽŠ²9Š{‰zÄnm¡/‚lZ/ÖýëÌûöísrr¯ œ?ÞØØ¿[P__¿dÉ==½Aƒ-_¾¼©©‰¼[[[CCC‡ ¢££3þ|.—‹Ï-…aØÙ³g‡®ªª:räÈ„„±ÅÛÛÛgΜIlÇŽºººÃ‡OHHÀ?·££c„ ZZZ˜È‘Q¨xdd¤ššqeð())q8òþÀÇPüã?„ö“Ø_3<oÛ¶mŽŽŽ ÃÂÂbÓ¦Mø¥ ±Qa5;>Ÿÿ믿>\GGÇËË+!!ÁÀÀ@ì’äi¼Î#GŽ˜››ëëë¯Y³†hyB3¥ït™åÝ>Ùº0‘¼Ëçóµµµ_¾|))N±y÷âÅ‹øŽ#Ï-+vk£Å0¬¦¦æóÏ?4h±±ñþó¢Uknll\¿~½½½½†††ÝŽ;ð‡O„–T ØiÞ•ÏæÇãñöîÝkee¥©©ùé§ŸâgÛ˜¸ˆIÝùùù¢Í’0tèР  ¡í#© `]8*Êì(„\èÖú"Ȧõb=uÈXbb"ù‡Ãqvvî´”ØÃ·”;’ôÛçwA7ÉU T¸çwáã€ÝÔS­ë‘û»@örssƒƒƒ333›››ïß¿¿eË–eË–QÈB;*Sè’7677ûûûWVVZZZ~ñÅ+V¬è´”¶¶¶èbbgР‚ñqÀnê½ÖûþÖ4îÝ»wùùùS¦Léf¥ ÁÿIhgg×J uÖ#-055uÔ¨Q†††=]%Ôöà:3 ;wÙ¼ Èä]@v ï²#æ9¢ÒÒRÙÇäYkk«P'ï Zø=Õkkk%õ €ÌˆÉ»øˆ+õTÞ…Ö>N´@øÙäÁ¿žß@¯‚û»€ì@Þdò. ;wÙùÿé6¶øé¬IEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMXPathException_8hpp__dep__incl.map0000644000151400015140000000023411653571065021230 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMLSSerializer_8hpp_source.html0000644000151400015140000003127511653571065020322 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMLSSerializer.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMLSSerializer.hpp 883665 2009-11-24 11:41:38Z borisk $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMLSSERIALIZER_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMLSSERIALIZER_HPP
00024 
00266 #include <xercesc/dom/DOMNode.hpp>
00267 #include <xercesc/dom/DOMLSSerializerFilter.hpp>
00268 #include <xercesc/dom/DOMErrorHandler.hpp>
00269 #include <xercesc/dom/DOMConfiguration.hpp>
00270 
00271 XERCES_CPP_NAMESPACE_BEGIN
00272 
00273 class DOMLSOutput;
00274 
00275 class CDOM_EXPORT DOMLSSerializer
00276 {
00277 protected :
00278     // -----------------------------------------------------------------------
00279     //  Hidden constructors
00280     // -----------------------------------------------------------------------
00283     DOMLSSerializer() {};
00285 private:
00286     // -----------------------------------------------------------------------
00287     // Unimplemented constructors and operators
00288     // -----------------------------------------------------------------------
00291     DOMLSSerializer(const DOMLSSerializer &);
00292     DOMLSSerializer & operator = (const DOMLSSerializer &);
00294 
00295 
00296 public:
00297     // -----------------------------------------------------------------------
00298     //  All constructors are hidden, just the destructor is available
00299     // -----------------------------------------------------------------------
00306     virtual ~DOMLSSerializer() {};
00308 
00309     // -----------------------------------------------------------------------
00310     //  Virtual DOMLSSerializer interface
00311     // -----------------------------------------------------------------------
00314     // -----------------------------------------------------------------------
00315     //  Feature methods
00316     // -----------------------------------------------------------------------
00391     virtual DOMConfiguration* getDomConfig() = 0;
00392 
00393     // -----------------------------------------------------------------------
00394     //  Setter methods
00395     // -----------------------------------------------------------------------
00427     virtual void          setNewLine(const XMLCh* const newLine) = 0;
00428 
00439     virtual void         setFilter(DOMLSSerializerFilter *filter) = 0;
00440 
00441     // -----------------------------------------------------------------------
00442     //  Getter methods
00443     // -----------------------------------------------------------------------
00452      virtual const XMLCh*       getNewLine() const = 0;
00453 
00461      virtual DOMLSSerializerFilter*   getFilter() const = 0;
00462 
00463     // -----------------------------------------------------------------------
00464     //  Write methods
00465     // -----------------------------------------------------------------------
00483     virtual bool       write(const DOMNode*         nodeToWrite,
00484                              DOMLSOutput* const destination) = 0;
00485 
00503     virtual bool       writeToURI(const DOMNode*    nodeToWrite,
00504                                   const XMLCh*      uri) = 0;
00524     virtual XMLCh*     writeToString(const DOMNode* nodeToWrite, MemoryManager* manager = NULL) = 0;
00525 
00527 
00528     // -----------------------------------------------------------------------
00529     //  Non-standard Extension
00530     // -----------------------------------------------------------------------
00539     virtual void              release() = 0;
00541 
00542 
00543 };
00544 
00545 XERCES_CPP_NAMESPACE_END
00546 
00547 #endif
XQilla-2.3.0/docs/dom3-api/XPath2Result_8hpp__dep__incl.map0000644000151400015140000000042311653571065020272 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMCDATASection_8hpp__incl.map0000644000151400015140000000003511653571065017476 00000000000000 XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMAttr.html0000644000151400015140000004571511653571066017415 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMAttr Class Reference

The DOMAttr class refers to an attribute of an XML element. More...

#include <DOMAttr.hpp>

Inheritance diagram for xercesc::DOMAttr:

List of all members.

Public Member Functions

Destructor
virtual ~DOMAttr ()
 Destructor.
Functions introduced in DOM Level 1
virtual const XMLCh * getName () const =0
 Returns the name of this attribute.
virtual bool getSpecified () const =0
 Returns true if the attribute received its value explicitly in the XML document, or if a value was assigned programatically with the setValue function.
virtual const XMLCh * getValue () const =0
 Returns the value of the attribute.
virtual void setValue (const XMLCh *value)=0
 Sets the value of the attribute.
Functions introduced in DOM Level 2.
virtual DOMElementgetOwnerElement () const =0
 The DOMElement node this attribute is attached to or null if this attribute is not in use.
Functions introduced in DOM Level 3.
virtual bool isId () const =0
 Returns whether this attribute is known to be of type ID or not.
virtual const DOMTypeInfogetSchemaTypeInfo () const =0
 Returns the type information associated with this attribute.

Protected Member Functions

Hidden constructors
 DOMAttr ()
 DOMAttr (const DOMAttr &other)

Detailed Description

The DOMAttr class refers to an attribute of an XML element.

Typically the allowable values for the attribute are defined in a documenttype definition.

DOMAttr objects inherit the DOMNode interface, but since attributes are not actually child nodes of the elements they are associated with, the DOM does not consider them part of the document tree. Thus, the DOMNode attributes parentNode, previousSibling, and nextSibling have a null value for DOMAttr objects. The DOM takes the view that attributes are properties of elements rather than having a separate identity from the elements they are associated with; this should make it more efficient to implement such features as default attributes associated with all elements of a given type. Furthermore, attribute nodes may not be immediate children of a DOMDocumentFragment. However, they can be associated with DOMElement nodes contained within a DOMDocumentFragment. In short, users of the DOM need to be aware that DOMAttr nodes have some things in common with other objects inheriting the DOMNode interface, but they also are quite distinct.

Since:
DOM Level 1

Constructor & Destructor Documentation

xercesc::DOMAttr::DOMAttr ( ) [inline, protected]
xercesc::DOMAttr::DOMAttr ( const DOMAttr other) [inline, protected]
virtual xercesc::DOMAttr::~DOMAttr ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual const XMLCh* xercesc::DOMAttr::getName ( ) const [pure virtual]

Returns the name of this attribute.

Since:
DOM Level 1
virtual DOMElement* xercesc::DOMAttr::getOwnerElement ( ) const [pure virtual]

The DOMElement node this attribute is attached to or null if this attribute is not in use.

Since:
DOM Level 2
virtual const DOMTypeInfo* xercesc::DOMAttr::getSchemaTypeInfo ( ) const [pure virtual]

Returns the type information associated with this attribute.

Returns:
the DOMTypeInfo associated with this attribute
Since:
DOM level 3
virtual bool xercesc::DOMAttr::getSpecified ( ) const [pure virtual]

Returns true if the attribute received its value explicitly in the XML document, or if a value was assigned programatically with the setValue function.

Returns false if the attribute value came from the default value declared in the document's DTD.

Since:
DOM Level 1
virtual const XMLCh* xercesc::DOMAttr::getValue ( ) const [pure virtual]

Returns the value of the attribute.

The value of the attribute is returned as a string. Character and general entity references are replaced with their values.

Since:
DOM Level 1
virtual bool xercesc::DOMAttr::isId ( ) const [pure virtual]

Returns whether this attribute is known to be of type ID or not.

When it is and its value is unique, the ownerElement of this attribute can be retrieved using getElementById on DOMDocument.

Returns:
bool stating if this DOMAttr is an ID
Since:
DOM level 3
virtual void xercesc::DOMAttr::setValue ( const XMLCh *  value) [pure virtual]

Sets the value of the attribute.

A text node with the unparsed contents of the string will be created.

Parameters:
valueThe value of the DOM attribute to be set
Since:
DOM Level 1

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/functions_0x7e.html0000644000151400015140000003136211653571065015743 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- ~ -

XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMXPathException__inherit__graph.map0000644000151400015140000000024111653571066024401 00000000000000 XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMNode__inherit__graph.md50000644000151400015140000000004011653571065022267 0000000000000015155e79fee9b619e9ccf449569eb2ddXQilla-2.3.0/docs/dom3-api/inherit_graph_24.md50000644000151400015140000000004011653571065015726 00000000000000f883e25054d59d63b7551f5f6b13e30cXQilla-2.3.0/docs/dom3-api/inherit_graph_35.png0000644000151400015140000000461611653571066016045 00000000000000‰PNG  IHDRÃ(ÌžÙ¼bKGDÿÿÿ ½§“ CIDATxœíšiL]ǧZEÙ)ÊRPŒa“1D©‰C£ÄH(q‰ÒÔ„`Hˆ ‚1 ‚ÈbU i$@(‚K€V ²Ù*¢m…B‘.ó~¸qÒ§Û«<ŸWßûû4÷Ì9çÎÜùϹwnK@Q@þ1Fÿö@þ ’ ø•Á¨$>k´‹‹‹»»»ÿ•KüFœ;w.22RÝ¢©$@022ò ¯ ò›ÑÔÔ”••¥aÔT‚ !!!¿ä’ ¿%AÛ×I|€J‚àT ’ ø•Á‡?VIR©”Édnݺ•L&{yy±X¬µµ5m7‚T*5--mqqQÝaee¥   ÀÂÂb×®]—.]R(X¬———ÆOà a||80 u‡ññq>:ù)gmîß¿OÐÅààà†sý; ÜüïNFFFTTÔ›7o>}úÔÕÕ››‹¢èÄÄ„ æ† Hoo¯P(œíèèØ¿¿‹‹‹X,g—––|||"##ÛÚÚÞ¿ÿàÁ__ß={ö( kll<00€e‰Dfff‚Œ¡ßT__9Œi¹>~ÊY›ÕÕU¡P( {{{~g}}}Ã9‚444h5ÚŒ’¬­­ûúú°fWW—››ªõx°§P©T……… Éd2ÃÃÃnR©”J¥Þ¼yÄÆÇÇŸ={;[SS“ ®¤œœœ-[¶…Bàð+•„{ JÚÈìÖÒÒB¡PÄb1xáh4ÚÊÊ ‚ r¹¼  ÀÁÁÁÞÞ¾  @.—ƒúüüùs77·ÎÎN‹åææfgg—––&‘H@6í(Až¨[ZZ^¿~ýË—/ ñáÃA‚ƒƒqttÔykáèÑ£­­­ Y[[[XXH$1ssó‚‚‚ÚÚZÐd0è÷òÓÜÜœœœ¬ž0//ÏÇÇ';;Õú˜D"ÉÈȰµµuqqa2™kkkJ¥²´´”F£YXX„††ö÷÷" WWWõ<1½l,J7ÊúÁš”–––žžþñãG‡þþ~`,))9pàÀôô4ŸÏ <}ú4x:::Øl6Nçóù ((ˆÉdê‹’J¥¦¦¦7nÜ …·nÝ266–J¥¥¥¥:Ã% ¨Çííí ÅÔÔ466¶´´tjj Ø ×$E_½zemm¢(xU5îÇã988€Ø‘‘GGG0ÁI$33³ÏŸ?#j5illltt”L&WWWkôžšš=11ÁçóýüüØlvYY™½½=‡Ã™ŸŸommuvvÎÚC¤~=/_¾LOO·³³›ŸŸ×ù° Ô$.— Ô999©ÓA'޳›X,vqqñ÷÷g³Ù˜ÑÇÇ+ã\.wûöíàø|>Š¢ÞÞÞœ}÷îv¬%‰LLL._¾,‹U*Õòò²R©Ôn…BÑ××WTTäççG$ëêêP<”ôâÅ [[[,öøñãgΜAQ´¶¶666V='vP^^nii9==õ¾¾¾N$ß¾} rr8OOOVSSƒutûömà¬=D(ŠÊd²;wîìÞ½{ÇŽ•••ËËËúÆÁðì677Çb±\\\ÛÛÛ•JåVÜ×IEEED"qaa³H$õjgeeî,ñH$’@ ÐΣ…¢hOOOrr²¹¹yxxø³gÏ „ëD*•Ö××cë•Juþüy …‚þ€’îÝ»·sçNpìèèÈår5’WTTÄÅÅa±žžž*•*))©²²Õ¥$¥R¹wïÞÑÑQÐûÌÌ ‚ 2™ ääóù$‰L&b gí!µ$==½¿¿_¥RY'­¯¯766†……Ñh´ééiÃÎ:•´Á]€™™™«W¯ÆÄÄäççcF[[[쩈Åâ¾¾>`711AÄÙÙyjj X/^¼¨/J&“©Tª¦¦&‘H”™™™˜˜(‰ô…ëEÑ””@š!..ûz7XQQ±oß>ÐLMM-**R*•˜ÃÊÊJIII||˜˜àñxÁÁÁ'OžD¿¿ Ø\€¨ítvv‚]‰DÎ~ýúÕÛÛ쌎Žr8:º¶¶†ª•œcÇŽmÛ¶-** Ë©Q“àƒ4SRR¢££'''N/,,,//···ôè‘P(lkkswwÎÚC2‚œœ[[ÛÌÌÌׯ_ë{^j’R©looOJJ¢P(………sss†=vƒøÌnW®\ sÖÇœœD"Š¢KKKGŽÙ¼y³MvvöÊÊŠú=¬­­1™Lggg++«C‡©ïÙhD¡(ÚÐÐàááñ×_ùøø<~üØ@¸zêÇ …‚Ífûûû“Éd*•zêÔ)0•Èåò°°°M›6aƒ‚áêêšššª>_£(*•JóóóýüüÌÌÌètú… VWW±X ”ÎÎNA®]»¦aG´¶bcc±+‰D‡¶±±qrrÊËË“Éd …¢´´ÔÓÓÓÜÜ<$$u}C„!‹ËÊÊ<<<°¯ (©¹¹988¸®®îÛ·o:t¢SIôï£yðàAAàÿ“~;T*•J¥26Öñ‡3Èår°öø)BCC ÆÏu ùŸÅÈÈÈÈè§W½‘Þ À+äÿ¨$>@%Að* ‚PI|€J‚àT ’ ø cg²»»lêC ?ަ’À_ !0 WWW £æïnÈÆ€ë$>@%Að* ‚PI|øýªv®ÆgIEND®B`‚XQilla-2.3.0/docs/dom3-api/inherit_graph_27.md50000644000151400015140000000004011653571065015731 000000000000001ac31d3c10b75fceb9e404b705368857XQilla-2.3.0/docs/dom3-api/DOMStringList_8hpp_source.html0000644000151400015140000002333711653571065020054 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMStringList.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMStringList.hpp 671894 2008-06-26 13:29:21Z borisk $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMSTRINGLIST_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMSTRINGLIST_HPP
00024 
00025 #include <xercesc/util/XercesDefs.hpp>
00026 
00027 XERCES_CPP_NAMESPACE_BEGIN
00028 
00029 
00037 class  CDOM_EXPORT DOMStringList {
00038 protected:
00039     // -----------------------------------------------------------------------
00040     //  Hidden constructors
00041     // -----------------------------------------------------------------------
00044     DOMStringList() {};
00046 
00047 private:
00048     // -----------------------------------------------------------------------
00049     // Unimplemented constructors and operators
00050     // -----------------------------------------------------------------------
00053     DOMStringList(const DOMStringList &);
00054     DOMStringList & operator = (const DOMStringList &);
00056 
00057 public:
00058     // -----------------------------------------------------------------------
00059     //  All constructors are hidden, just the destructor is available
00060     // -----------------------------------------------------------------------
00067     virtual ~DOMStringList()  {};
00069 
00070     // -----------------------------------------------------------------------
00071     //  Virtual DOMStringList interface
00072     // -----------------------------------------------------------------------
00075     // -----------------------------------------------------------------------
00076     //  Getter methods
00077     // -----------------------------------------------------------------------
00090     virtual const XMLCh *item(XMLSize_t index) const = 0;
00091 
00099     virtual XMLSize_t getLength() const = 0;
00100 
00108     virtual bool contains(const XMLCh*) const = 0;
00110 
00111     // -----------------------------------------------------------------------
00112     //  Non-standard Extension
00113     // -----------------------------------------------------------------------
00124     virtual void release() = 0;
00126 
00127 };
00128 
00129 XERCES_CPP_NAMESPACE_END
00130 
00131 #endif
XQilla-2.3.0/docs/dom3-api/DOMXPathNSResolver_8hpp__incl.md50000644000151400015140000000004011653571065020250 00000000000000e0c098a58835ddb7e90b420f08947e36XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMUserDataHandler-members.html0000644000151400015140000001157511653571065023135 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMUserDataHandler Member List

This is the complete list of members for xercesc::DOMUserDataHandler, including all inherited members.
DOMOperationType enum namexercesc::DOMUserDataHandler
DOMUserDataHandler()xercesc::DOMUserDataHandler [inline, protected]
handle(DOMOperationType operation, const XMLCh *const key, void *data, const DOMNode *src, DOMNode *dst)=0xercesc::DOMUserDataHandler [pure virtual]
NODE_ADOPTED enum valuexercesc::DOMUserDataHandler
NODE_CLONED enum valuexercesc::DOMUserDataHandler
NODE_DELETED enum valuexercesc::DOMUserDataHandler
NODE_IMPORTED enum valuexercesc::DOMUserDataHandler
NODE_RENAMED enum valuexercesc::DOMUserDataHandler
~DOMUserDataHandler()xercesc::DOMUserDataHandler [inline, virtual]
XQilla-2.3.0/docs/dom3-api/closed.png0000644000151400015140000000017611653571065014160 00000000000000‰PNG  IHDR à‘EIDATxíÝA @! PŠ­iš/`Є.È?,!ƒu zlÞ–Jh1ߘ+výRLé§x@‘Ù (*79HÑ þl)¡ó²‰IEND®B`‚XQilla-2.3.0/docs/dom3-api/inherit_graph_30.map0000644000151400015140000000743411653571066016032 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMCharacterData_8hpp__incl.map0000644000151400015140000000003511653571065020023 00000000000000 XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMXPathException__inherit__graph.md50000644000151400015140000000004011653571065024305 00000000000000db9e81b8d5badd77477b94d297723676XQilla-2.3.0/docs/dom3-api/DOMLSOutput_8hpp__incl.map0000644000151400015140000000003511653571065017074 00000000000000 XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMLSException-members.html0000644000151400015140000002630711653571065022323 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMLSException Member List

This is the complete list of members for xercesc::DOMLSException, including all inherited members.
codexercesc::DOMException
DOMException()xercesc::DOMException
DOMException(short code, short messageCode=0, MemoryManager *const memoryManager=XMLPlatformUtils::fgMemoryManager)xercesc::DOMException
DOMException(const DOMException &other)xercesc::DOMException
DOMLSException()xercesc::DOMLSException
DOMLSException(short code, short messageCode, MemoryManager *const memoryManager)xercesc::DOMLSException
DOMLSException(const DOMLSException &other)xercesc::DOMLSException
DOMSTRING_SIZE_ERR enum valuexercesc::DOMException
ExceptionCode enum namexercesc::DOMException
fMemoryManagerxercesc::DOMException [protected]
getMessage() const xercesc::DOMException [inline]
HIERARCHY_REQUEST_ERR enum valuexercesc::DOMException
INDEX_SIZE_ERR enum valuexercesc::DOMException
INUSE_ATTRIBUTE_ERR enum valuexercesc::DOMException
INVALID_ACCESS_ERR enum valuexercesc::DOMException
INVALID_CHARACTER_ERR enum valuexercesc::DOMException
INVALID_MODIFICATION_ERR enum valuexercesc::DOMException
INVALID_STATE_ERR enum valuexercesc::DOMException
LSExceptionCode enum namexercesc::DOMLSException
msgxercesc::DOMException
NAMESPACE_ERR enum valuexercesc::DOMException
NO_DATA_ALLOWED_ERR enum valuexercesc::DOMException
NO_MODIFICATION_ALLOWED_ERR enum valuexercesc::DOMException
NOT_FOUND_ERR enum valuexercesc::DOMException
NOT_SUPPORTED_ERR enum valuexercesc::DOMException
PARSE_ERR enum valuexercesc::DOMLSException
SERIALIZE_ERR enum valuexercesc::DOMLSException
SYNTAX_ERR enum valuexercesc::DOMException
TYPE_MISMATCH_ERR enum valuexercesc::DOMException
VALIDATION_ERR enum valuexercesc::DOMException
WRONG_DOCUMENT_ERR enum valuexercesc::DOMException
~DOMException()xercesc::DOMException [virtual]
~DOMLSException()xercesc::DOMLSException [virtual]
XQilla-2.3.0/docs/dom3-api/StDOMNode_8hpp__incl.png0000644000151400015140000002057111653571065016547 00000000000000‰PNG  IHDRuu§ €*bKGDÿÿÿ ½§“ IDATxœíÝi\çÖð' ÙWAD‘¥lÚº¢`]ˆ€&¸€Ö^¯ mµ­í¢Ö«½Ukõ½¶ÞBÝh$"›RåWAÈæ†€… ÁYL„$ó~˜Þ4fXB8ÿO“'3“3ÃaNæd’!`† RDM BP_Õƒú ¨ÔW@õÈš€±sçÎk×®i:Š¡eË–-3fÌÐth ¨¯`pªªªª¨¨ðððÐt CE~~þš5k4Zê+´<<<¾þúkMG1Täççk:´ |þ ¨ÔW@õ ¾ªõP=¨¯€êA}CÇKHHX¶lٻヤ”ÔÝÝ-;[„¥K—îÚµ«­­Mr>ŸŸ˜˜¸zõêùóç¯]»öäÉ“B¡P¼ltt´Ô46oÞÔÔԄϰ}ûvÉššš‚‚‚”Üåg¿"@ àû9`Hûᇞ>}ºcÇ++«ÆÆÆ~ø¡££cÆ ,kíÚµâ9zôèèÑ£L&sß¾}D"!ÔÒÒRWWçâ₯ª£££¢¢B2Œ«W¯æååÍš5K›Xpþ †´‚‚‚5kÖ¸ººšššzyymذ¡°°!$‰ÚÛÛ%ç455577·´´|ë­·vîÜigg—ššŠ?uüøqSSÓýû÷:88L›6-11±¥¥%''ŸÁÏÏOòë¡7nÜðññ‘\9•JýÏþÃáptcêõ iéééâRêåå•’’‚úàƒB‹-’»@X¸pá­[·ð‡¹¹¹+W®ÄOUq eéÒ¥¹¹¹øÃ™3gæçç‹;ÀW¯^•úA:îèè¸oß>Ùû1wvvîÞ½;,,ŒN§'$$tww‹D¢3gάX±bþüù}ôѽ{÷ð9AbbbDDDDDDbb¢@ œÉdFEEQ©Ô“'O¢ÿõ– W¬Xñã?öôôÈT~—pP_Á_VVF£ÑâããSRRž>}ŠÿôÓO¡´´4E :88477#„:;;9ޏ÷+æââÒØØˆOOœ8‘ÇãÕÕÕ!„ºººÊÊʦL™"93‘HüüóÏKKK/]º$µž°ÙìÄÄÄ={ö”””œ>}úܹs)))111'NœX±bEbb">'ƒÁ`±X?ÿüó¾}ûÊÊÊ’’’dÃ.**:|øð¦M›Ž9"~W‘žž¾k×®o¿ý¶¨¨èÔ©S½ ”õ iþþþ)))ðôô¼téÒòåËÿýw•¬™@ ˆD"|šH$NŸ>oß¼yÓÓÓÓØØXj~‡˜˜˜üñÙ³gâA@påÊ•õë×ÛÙÙ9;;¿ÿþû¹¹¹™™™k×®6mš……ŤI“bbbð™srr>þøckkkggçØØØââbÙ¨–,Yb``0uêT„PGG>¸nÝ:ww÷þóŸâsn¹ƒåA}CŸÏ¿rå BÈÝÝ}åÊ•GŽŽŸöîÉ“'#GŽD™››×ÖÖJÍP[[ëææ&~(nË6‡Å"""\]]÷îÝ+îs¹\‘H„¿BÈÞÞžÍf³ÙlÉÓeggg|¢¥¥eñâÅøEÎqqq,Kö%,,,BArÐÁÁŸpttd³Ù½ ”õ ]†}óÍ7õõõøC þ^Mï fffNž<|üøqñÙ*BˆÏçŸ>}:00P<âééùòå˪ª*&“‰Ÿ>Ê"›7o®®®ÎÎÎÆGÌÌ̈D¢¸R677[ZZÚÚÚâ­f\CC>abb’œœœ——————••…·¸e_BvðÉ“'øÄãÇñ¬h <¨¯`èÒ×ן3gοþõ¯[·n±X¬;wî$$$Ìž=[<ÇO·µµq8œÖÖÖŠŠŠ­[·²X¬ÈÈHü©÷Þ{Ëånܸ±¸¸øÉ“'ׯ__·n¥¥eXX˜xq¼E¼ÿ~wwwSSSE!ÙÙÙ­[·îìÙ³øC2™ôÃ?°X,ük?ÁÁÁ .LHH(,,äp8ÅÅÅÇŽÃgž6mÚáÇŸ>}Z__¿iÓ¦ôôt„Ð… ºººzßljjºÿþ‘#GBBBz(¾ÿ †´M›68qâðáÃMMMfffAAA«V­BÙÚÚzzz.^¼øâÅ‹øœ}ô>ammíååuèÐ!CCC|ÄÀÀàСCIII‰‰‰ÍÍÍvvv³gϦÓézzz’¯”‘‘Ñ{HT*õúõëL&øñÇöìÙQQQx7XjðÍv+!‚ì÷"##Ùl6ÜÿµwMMMÑÑÑyyy}ö)(((%%E|N€þ0 zP_º ©Tª2ƒ€7õ€¡ËÔÔtãÆÊ ÞÔW@õ ¾ªõP=¨¯€êA}Tê+ zðûˆ`Ъ¨¨ˆ‹‹ëÏzzŒº»GʹÍ óê•©H¤G¡<'D}Ï PÔW08‰onó7twÙlƒgÏ ººô(‡‡‘¨¦Ÿåp(õõ&þþOÕórb &MMF$faÁ³¶~ilüJÞvzãìì°ŽÖWœP(ºq£65µ$'§ŠÏïyçÍþ|/CC¸ EP_Îëì|•ž^–œ|³²ò±¥¥‘NôÑéú*Æç÷äæÞa0˜yy÷Èd~%TP;™ ?x†¸¾ è*¡PtåÊ=ƒyùrµH„ÍëùÕW¡ï¼ãB"ÁA\Ã(=üJ¨§OÛ³²Ê³²Êß{ïˆIh¨7•êè¬éP8ºG²ìå5*:úm*ÕÛÄD—úÀŠ ŽóWY>Í̼}î\iCC«««ÍÂ…>‹û;9Yj:.ÔW 3$ûÀVV#"#u·¬È`­¯bø•PééeÏŸwâWBEDøZXÀ•P`‚ú ´l8:úíÁÚôõ'¾êâÅÊžáÌ™ãCC½CC½õõ‡i:4Tê+Ð^±O*:wŽÙÒò" ` 0húÀŠ ‘ú*ÖÞοt©*;»"/ïžÁ°9s&R©>³f¹Ê7O`¨ë›€Öik{É`0 ¦¸L§û»¹ ª>0ÀSèô:= ¥åEvv~%”­­É‚Þê¿9 ªç¯@[¢¼¼?ûÀ!4Ô›N¬}`E†Úù«¬šš–¬¬rƒùÇÏÝÜl©To:=ÀÑÑBÓqðÆ ¾Í«¯gŸ>ýZxáBcc}MÇ¥P_qøM{²²*Ο/mk{éççD¥ú,Zägnn¨éÐPÔW 1\n×¹s¥xØÚzàêj£é¸4 ê«”înÁÕ«²²Ê/\¨ E3fŒ£ÑüçÎõÔ‰_»CÔW n’}`"‘¸`×ì+õU‘övÞ¥KÕ ³ àሔ9s<èô€©S]á¦=@kA}êsï^ó©SEÙÙOŸõ>°"P_ûÄbµ]¸Pyölquu“éüù^K–Nœh¯é¸õ 8§+-íÏ>°ƒƒÙ’% ¾5ÄûÀŠ@}UÞƒ-ÙÙågÏ–<~ÌÁ¯„ŠŒ 5Ê\Óqð'¨¯` ˆûÀ—.U“Hö§Lq%¡¡§Ô×7…_ Å`032nwu½òós¢ÓÂÂÞ1‚¢éÐÀPõ¨ÞݻͧOegW<{ÖîïïD§,\ø–±1ïúõõo{õJpíÚƒùÛoUD"aút¸ hü¾P©>ptôä°0_kMdž„áÃÉ!!!!/^¼¼|ùƒÁ\»ö¸±±~Hȸ hœ¿‚þD99• óêÕÐî'8U¡ææ¶óçKÏœ)®«{fooî»tiàØ±ð†¨ ÔWð÷ݹÓtæLqvvù³gS§ºÒhþï¾ë }àþ€ú:° A}UƒW¯—/W3Ìüüû$1$ăFóŸ9s<\ T ê+è[uuSJJqVÖm6»úÀ ê«:µµ½ÌήHM-a2LLôCC½i4ÿ€€1p%P ¨¯@!É>°££îáçìl¥é¸3¨¯ñä 7#£ìôé¢úz¶ƒƒYX˜ïò哯ŒTýõH÷óóïëé‘ ¬NP_5«²òqj*33ó6›Ýáå5ŠFó {ËÊ ®„ÔWð—êê¦ãÇ ³³+^¼àá}à¹s=áwpÔ ê«6 E7nÔ¦¦–ääTñù=ï¼ãB£ùÏŸïehWB7õ ÖÖΔ”?ûÀ£G[DG¿îkoo¦é¸†"¨¯Z…ÏïÉͽÃ`0óòî‘É$üJ¨  w2îõúõuè’ìFŽˆð…>°ú57·­ZuT ây¼§ËÞÞT<Ä #ŒÖPtàO\n×… •©©%%%llLBC½©TïÀ@gMÇ´Ôס¨ªêɉ7 ¬%¦OßU[ûLîSŠ‹›÷é§sÔP¤¶öYFFÙ¹s¥ ­®®6 ú,^ìïäd©é¸€6‚ú:„Èö#"üFŽ4í{I0~úéÊîÝ‘ìS¡¨h«ƒôêµ~%TFFYkk'~%TD„¯……‘¦ãZêëà‡÷““oÞ¸QK¡èAXÛ47·ìýO$ žž995P†øJ¨‹+{z„3gŽ õ^°ÀÛÀ`˜¦CšõU'UV>®¯g‡‡ûö>[qq=ƒÁÌʪhoçMêývHˆ…¢§ž ò¨ÔÿܾÝ(½öÏH&·oÿÇ?¦i** ¼övþ¥KUÙÙyy÷ †Í™3‘JõQæJ¨»w›{z„ÞÞ£Ô'P'¨¯º'+«|ýú“NN–ùù›åÎÀfwœ=[Œ÷œ,£¢&CXËýúkáÖ­iR-b‰P^¾ZŽº¥¥åEvvEVVyIÉ#[[“ ¼ét//…åóË/§Níß¿tÑ"?uÆ Ôê«.Á0lß¾Kû÷_FC忯yxØ‹Ÿ•ìëëë…‡CXgp8]ÞÞۄ¿ê+‰Dœ}ŠéŽ ¼|ùRjðáÇRÛõ·W‹zøð¡x\$MŸ>}Û¶møÃ¸¸¸iÓ¦ ñ NNN‡Æ—;wî—_~)~ö—_~™7ožx¡ØØXsss‹õ7"W~f©­P-•äLuuuuuµJâQÎ= Ã***Bnn.BèÁƒ²ñ+¹-ÚŸ]*\Úètv)J‰þǯ¤^^h@ÓUö8öf篙™™ööö\.!túôi77·®®.„POOO||¼µµu|||OOÞ øý÷ßóóó¿þúkGGG++«•+WŠß%É.…ÊÊÊòòò¢P(ÎÎÎ'Nœ@ ¹‹·¶¶êëë …Â½{÷º¹¹1bÊ”)EEEø mmm«V­²´´tppˆ‹‹ãóù!pìØ1www++«Ý»wŸ8qb̘1&&&[·n•Z­ì愵k×^¸p˜œœ¼mÛ6é¯o+ÆÇÇ'''ãétúÙ³g±ÿ5R F“\á§Ÿ~:~üø˜˜Læ§HeƒW´™rw£”Ë—/»¸¸˜™™íÚµ ý¯Q“‘‘1nÜ8kkë 6¼zõJî`ïù N{ªÍ½3gÎ̘1#88xüøñâSØÉ“'#„lmm¥¦%wiAATl]]RÙÕ'¹»¨ÏMP´ÔÉ“'ÝÝÝÍÍÍ¿ûî;ôzêÊRkºJ[eÞå­\¹ò½÷Þkii±±±)**Â÷ìÙ³xñâÆÆÆÊÊJ__ßÏ?ÿ1oÞ¼+W®lß¾ÝÃã²²²ªªjÒ¤IqqqŠ–êìì>|xbb"‹Å:zô(™LîììÜ»w¯ÜÅ;vâÄ Ãöïßomm––ÖÜÜ|áÂ…‘#GâÛ5{ö캺ºÊÊʉ'nß¾OˆeË–µ··9r!ÙÞÞþóÏ?#„Z[[%W‹É{³SRRbjjŠaþ¯Èf³¥öOaa¡ ¾ìýû÷mmmoß¾aX[[›Akk+zý]^MM¾¾~RRöúÛ.Ùàm¦ìn” !ÚÞÞ~îÜ9|3ñš3gNMMÍ­[·\\\¶oß.w°÷dP2gú¤äù+䞪rO$3æçŸÆ0쫯¾òððÀ× èüUr—vvvJ¾¨ög—’ëìRá‘­¼¼¼ãuØë%÷¨Õç&(ZŠF£q¹ÜÇ#„ž?ÞûùëÀ¥«ìqìë+—Ëuppðòò’|½ñãÇ‹›œ¹¹¹>>>x|•••†7.-- öîÝ»âiÙ¥8ŽžžÞ÷ßÏårE"QGG‡P(T´øâÅ‹9†annn¿üò‹8˜_ý!ÔÝÝM"‘Ä[›––æââ‚ïß²²2 ú»»¥¦ñä¯û[YxóæMKKKñ²~øá_|aXrrrHHˆä:Å066nll§…Üàån¦ÜÝ(B(??Ã0ü㓇Jþu0 KIIqqq‘;ˆõEõrOU¹wëÖ-2™Œ³JKKBUUUX_õUœ’´?»”\d— lrOä$3JîQ«ÏMP´T^^žäœ½××KWÔW ÃvìØA"‘$ç¤P(’»ÒÄį»»ÿï•"»†a4ÍÐÐpÚ´i/^T´xGGÇÂ… ñi}}ýòòrñS·oßF=~ü!ÄãñðÁÊÊJ …‚½žX²Ó’«Åäeá©S§üüüði[[ÛÜÜ\©ÀÞ}÷]ñ²ùùù..."‘(<<?]­¯B¡pÆŒø{%<-ä/w3íFI¡ššÉ-Âÿ:âõWTTP(¹ƒX_Ôüù+ä>ÝÏÜûä“O¤[¶lÁúª¯ø.•¢ýÙ¥üz »ðiUÙ¤Hf”Ü]Ôû&ô²”ø¤D}¸tíïç¯ø_÷àÁƒÁÁÁŸ}ö™xÐÒÒR¼/¸\î­[·ðq===„ÐÈ‘#ð‘òòòÿûߊ–âñx"‘(55•Ãá¬^½šJ¥r8¹‹ÿöÛosçÎÅœœ$/fÃob`ccC"‘êëëñÁºº:{{û>·Nrµ²ð$[°`þ0**jÇŽâkêB]]]{öì‘\ÃÔ©S;:: rss]H$“’’ :„È ^îf"Å;_’ÜËâñBÕÔÔà­'EƒZrO%¹' SRRöïß/îÝmܸ1%%ëë~¤ø.•Ù… »Þ2G-å—"ß ©5]%‹mŸïò„BappðÎ;9Ž­­mff&>¾aÆ_´=iÒ¤>úHòÄ×_íååUUUUUU5eÊ”5kÖ(ZŠÇãQ(ƒÁf³:D¡Px<žÜÅ£££›ššðõ8pÀÚÚ:==Åbåää8;;ã/½|ùòÙ³g×××WUUyxxàWÇ¡^ß"I®_ÅžŸŸæààÐÖÖ†?ûâÅ‹qãÆÍ˜1#''§¦¦&--ÍÃÃcÊ”)|>_rå|ð»»{PPÔ‹¢×ßå%$$àxü¡lðŠ6Sv7bvøðaqœ²›‰ÿu‚‚‚>|X\\ìêêºmÛ6¹ƒ½$ƒ’9£ eÎ_!÷T•{yyyRgiL&!TVV†ï:ÉOËd?9Ãt-»”Yd—jl²ßÏÁ^Ï"¹G­Þ7Aù¥$SScºö·?üã?z{{㽑óçÏÛÙÙá ýööö÷ßßÌÌÌÂÂ"&&¦««KrWòùü¸¸¸‘#Gš˜˜,[¶ŒËåâã²Ka–’’2vìØaÆ?>##CîâÝÝÝóçÏG%öîÝëââbhhøöÛoãoj0 ãp8+V¬°°°°³³ûôÓOñ“ý^þ„wïÞ•\-öúÛùQ£FEEEIíŸÎÎÎÏ>ûlâĉß|óøªzñÊñ{Xþ÷¿ÿ•—ª¯"‘($$D¼ÓdƒW´™rwcÿuŽ92zôhKKËõë×óx<¹ƒ½$NmõrOU¹;gÎÉU‰«g"IDATD¢±cÇnÞ¼¹§§gêÔ©FFF†INKÕWÝÊ.eÖÙ¥Ú#›,ìõ,úG-å—’LÝ>W«Ât•=Ž$wG~~¾¶Ý… „ÚÚZÙ_`‘;Ø'•ä Þø‚û«Ú–]*\|T˜®²Ç1Ýþý&@;A}ŠŒccc•àMAv2 é ýaÐ/ÐúÃ@‡@P¨¯€êA}Tê+ zP_Õ#K=nkk  e|>¿¹¹YÓQ€A Žl` ñù|©;H×W8ÆÀh^ÓQ€A Žl@ ¤ê+áM }‚Ï_Õƒú ¨ÔW@õ ¾ª÷ÿ)éð;IEND®B`‚XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMText__inherit__graph.md50000644000151400015140000000004011653571065022326 00000000000000306932146123d7b0451691a391febb55XQilla-2.3.0/docs/dom3-api/inherit_graph_33.md50000644000151400015140000000004011653571065015726 000000000000009cd0e7afbb7722534d6d9f10056783b7XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMCharacterData__inherit__graph.map0000644000151400015140000000167711653571066024202 00000000000000 XQilla-2.3.0/docs/dom3-api/XPath2MemoryManager_8hpp_source.html0000644000151400015140000013061611653571065021203 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

XPath2MemoryManager.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef __XPATH2MEMORYMANAGER_HPP
00021 #define __XPATH2MEMORYMANAGER_HPP
00022 
00023 #include <algorithm>
00024 #include <assert.h>
00025 #include <cstddef>
00026 
00027 #include <xqilla/framework/XQillaExport.hpp>
00028 
00029 #include <xercesc/framework/MemoryManager.hpp>
00030 
00031 XERCES_CPP_NAMESPACE_BEGIN
00032 class DOMNode;
00033 class XMLGrammarPool;
00034 XERCES_CPP_NAMESPACE_END
00035 
00036 class VariableStore;
00037 class VariableTypeStore;
00038 class DynamicContext;
00039 class Collation;
00040 class CollationHelper;
00041 class XQillaNSResolver;
00042 class ATDecimalOrDerived;
00043 class StringPool;
00044 
00045 class XQILLA_API XPath2MemoryManager : public XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager
00046 {
00047 public:
00048   virtual ~XPath2MemoryManager() {}
00049 
00051   virtual void reset() = 0;
00052   
00054   virtual const XMLCh* getPooledString(const XMLCh *src) = 0;
00055   virtual const XMLCh* getPooledString(const XMLCh *src, unsigned int length) = 0;
00056   virtual const XMLCh* getPooledString(const char *src) = 0;
00057 
00058   // from MemoryManager
00059 #if _XERCES_VERSION >= 30000
00060   virtual void* allocate(XMLSize_t numElements) = 0;
00061 #else
00062   virtual void* allocate(size_t numElements) = 0;       
00063 #endif  
00064   virtual void deallocate(void* p) = 0;
00065   
00067   virtual Collation* createCollation(CollationHelper* helper) = 0;
00068 
00070   virtual XQillaNSResolver* createNSResolver(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *resolverNode) = 0;
00071   
00073   virtual VariableTypeStore* createVariableTypeStore() = 0;
00074 
00076   virtual ATDecimalOrDerived* createInteger(int value) = 0;
00077 
00078   virtual void dumpStatistics() const = 0;
00079   virtual size_t getAllocatedObjectCount() const = 0;
00080   virtual size_t getTotalAllocatedMemory() const = 0;
00081   virtual const StringPool *getStringPool() const = 0;
00082 };//XPath2MemoryManager
00083 
00084 template <class _Tp>
00085 class XQillaAllocator
00086 {
00087 public:
00088   typedef size_t size_type;
00089   typedef ptrdiff_t difference_type;
00090   typedef _Tp* pointer;
00091   typedef const _Tp* const_pointer;
00092   typedef _Tp& reference;
00093   typedef const _Tp& const_reference;
00094   typedef _Tp value_type;
00095 
00096   template <class _Tp1> struct rebind {
00097     typedef XQillaAllocator<_Tp1> other;
00098   };
00099 
00100   // Should never be used - for compiling on AIX only
00101   XQillaAllocator()
00102   {
00103     assert(false);
00104   }
00105 
00106   XQillaAllocator(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr)
00107   {
00108     _memMgr=memMgr;
00109   }
00110 
00111   // define a copy constructor, because we don't want to copy the singleton object
00112   XQillaAllocator(const XQillaAllocator<_Tp>& o)
00113   {
00114     _memMgr=o._memMgr;
00115   }
00116 #if _MSC_VER >= 1500
00117   // Needed for Visual Studio 2008      
00118   template<class _Tp1> XQillaAllocator(const XQillaAllocator<_Tp1>& o)
00119   {
00120     _memMgr = o._memMgr;
00121   }
00122 #endif
00123   pointer allocate(size_t _n, const void* = 0)
00124   {
00125     if(_n==1)
00126       return (pointer)_singleton;
00127     //std::cout << "XQillaAllocator::allocate(" << _n << ")" << std::endl;
00128     if(_memMgr)
00129       return _n != 0 ? static_cast<pointer>(_memMgr->allocate(_n*sizeof(_Tp))) : 0;
00130     else
00131       return _n != 0 ? static_cast<pointer>(malloc(_n*sizeof(_Tp))) : 0;        
00132   }
00133 
00134   void deallocate(void* _p, size_t _n)
00135   {
00136     //std::cout << "XQillaAllocator::deallocate(" << _n << ")" << std::endl;
00137     if(_p) {
00138       if(_p!=_singleton) {
00139         if(_memMgr)
00140           _memMgr->deallocate(_p);
00141         else
00142           free(_p);
00143       }
00144   }
00145   }
00146 
00147   void construct(pointer _p, const_reference _v)
00148   {
00149     new ((void *)_p) _Tp(_v); 
00150   }
00151 
00152   void destroy(pointer _p)
00153   {
00154     _p->~_Tp();
00155   }
00156 
00157   size_type max_size() const
00158   {
00159     return 0xFFFFFFFF;
00160   }
00161     
00162   size_type max_size(size_type) const
00163   {
00164     return 0xFFFFFFFF;
00165   }
00166 
00167   bool operator==(const XQillaAllocator<_Tp>& o) const
00168   {
00169     return &o == this;
00170   }
00171 
00172   bool operator!=(const XQillaAllocator<_Tp>& o) const
00173   {
00174     return &o != this;
00175   }
00176 
00177   bool operator!=(XQillaAllocator<_Tp>& o)
00178   {
00179     return _memMgr != o._memMgr;
00180   }
00181 
00182   char _singleton[sizeof(_Tp)];
00183   XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* _memMgr;
00184 };
00185 
00186 // ---------------------------------------------------------------------------
00187 //
00188 //  Operator new.  Global overloaded version, lets any object be allocated on
00189 //                 the heap owned by a MemoryManager.
00190 //
00191 // ---------------------------------------------------------------------------
00192 inline void * operator new(size_t amt, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr)
00193 {
00194     void *p = memMgr->allocate(amt);
00195     return p;
00196 }
00197 
00198 inline void operator delete(void* ptr, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr)
00199 {
00200   memMgr->deallocate(ptr);
00201 }
00202 
00203 template<class TYPE>
00204 class AutoRelease
00205 {
00206 public:
00207   AutoRelease(TYPE *p)
00208     : p_(p) {}
00209   ~AutoRelease()
00210   {
00211     if(p_ != 0)
00212       p_->release();
00213   }
00214 
00215   TYPE &operator*() const
00216   {
00217     return *p_;
00218   }
00219   TYPE *operator->() const
00220   {
00221     return p_;
00222   }
00223   operator TYPE*() const
00224   {
00225     return p_;
00226   }
00227   TYPE *get() const
00228   {
00229     return p_;
00230   }
00231   TYPE *adopt()
00232   {
00233     TYPE *tmp = p_;
00234     p_ = 0;
00235     return tmp;
00236   }
00237   TYPE *swap(TYPE *p)
00238   {
00239     TYPE *tmp = p_;
00240     p_ = p;
00241     return tmp;
00242   }
00243   void set(TYPE *p)
00244   {
00245     if(p_ != 0)
00246       p_->release();
00247     p_ = p;
00248   }
00249 
00250 private:
00251   AutoRelease(const AutoRelease<TYPE> &);
00252   AutoRelease<TYPE> &operator=(const AutoRelease<TYPE> &);
00253 
00254   TYPE *p_;
00255 };
00256 
00257 template<class TYPE>
00258 class AutoDelete
00259 {
00260 public:
00261   AutoDelete(TYPE *p)
00262     : p_(p) {}
00263   ~AutoDelete()
00264   {
00265     delete p_;
00266   }
00267 
00268   TYPE &operator*() const
00269   {
00270     return *p_;
00271   }
00272   TYPE *operator->() const
00273   {
00274     return p_;
00275   }
00276   operator TYPE*() const
00277   {
00278     return p_;
00279   }
00280   TYPE *get() const
00281   {
00282     return p_;
00283   }
00284   TYPE *adopt()
00285   {
00286     TYPE *tmp = p_;
00287     p_ = 0;
00288     return tmp;
00289   }
00290   TYPE *swap(TYPE *p)
00291   {
00292     TYPE *tmp = p_;
00293     p_ = p;
00294     return tmp;
00295   }
00296   void set(TYPE *p)
00297   {
00298     delete p_;
00299     p_ = p;
00300   }
00301 
00302 private:
00303   AutoDelete(const AutoDelete<TYPE> &);
00304   AutoDelete<TYPE> &operator=(const AutoDelete<TYPE> &);
00305 
00306   TYPE *p_;
00307 };
00308 
00309 template<class TYPE>
00310 class AutoDeleteArray
00311 {
00312 public:
00313   AutoDeleteArray(TYPE *p)
00314     : p_(p) {}
00315   ~AutoDeleteArray()
00316   {
00317     delete [] p_;
00318   }
00319 
00320   TYPE &operator*() const
00321   {
00322     return *p_;
00323   }
00324   TYPE *operator->() const
00325   {
00326     return p_;
00327   }
00328   operator TYPE*() const
00329   {
00330     return p_;
00331   }
00332   TYPE *get() const
00333   {
00334     return p_;
00335   }
00336   TYPE *adopt()
00337   {
00338     TYPE *tmp = p_;
00339     p_ = 0;
00340     return tmp;
00341   }
00342   TYPE *swap(TYPE *p)
00343   {
00344     TYPE *tmp = p_;
00345     p_ = p;
00346     return tmp;
00347   }
00348   void set(TYPE *p)
00349   {
00350     delete [] p_;
00351     p_ = p;
00352   }
00353 
00354 private:
00355   AutoDeleteArray(const AutoDeleteArray<TYPE> &);
00356   AutoDeleteArray<TYPE> &operator=(const AutoDeleteArray<TYPE> &);
00357 
00358   TYPE *p_;
00359 };
00360 
00361 template<class TYPE>
00362 class AutoDeallocate
00363 {
00364 public:
00365   AutoDeallocate(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mmgr, size_t size = sizeof(TYPE))
00366     : p_(0), mmgr_(mmgr) {
00367     p_ = (TYPE*)mmgr_->allocate(size);
00368   }
00369   AutoDeallocate(TYPE *p, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mmgr)
00370     : p_(p), mmgr_(mmgr) {}
00371   ~AutoDeallocate()
00372   {
00373     if(p_ != 0)
00374       mmgr_->deallocate((void*)p_);
00375   }
00376 
00377   TYPE &operator*() const
00378   {
00379     return *p_;
00380   }
00381   TYPE *operator->() const
00382   {
00383     return p_;
00384   }
00385   operator TYPE*() const
00386   {
00387     return p_;
00388   }
00389   TYPE *get() const
00390   {
00391     return p_;
00392   }
00393   TYPE *adopt()
00394   {
00395     TYPE *tmp = p_;
00396     p_ = 0;
00397     return tmp;
00398   }
00399   TYPE *swap(TYPE *p)
00400   {
00401     TYPE *tmp = p_;
00402     p_ = p;
00403     return tmp;
00404   }
00405   void set(TYPE *p)
00406   {
00407     if(p_ != 0)
00408       mmgr_->deallocate((void*)p_);
00409     p_ = p;
00410   }
00411 
00412 private:
00413   AutoDeallocate(const AutoDeallocate<TYPE> &);
00414   AutoDeallocate<TYPE> &operator=(const AutoDeallocate<TYPE> &);
00415 
00416   TYPE *p_;
00417   XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mmgr_;
00418 };
00419 
00420 #endif //__XPATH2MEMORYMANAGER_HPP
00421 
XQilla-2.3.0/docs/dom3-api/functions_0x6e.html0000644000151400015140000001665011653571065015745 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- n -

XQilla-2.3.0/docs/dom3-api/DOMCharacterData_8hpp__incl.png0000644000151400015140000001633311653571065020042 00000000000000‰PNG  IHDR˜uüô`êbKGDÿÿÿ ½§“IDATxœíÝy\LëÿðgšöhQÚ•›¨T¶¸Ü_Š”²oÉrK}ï7¤®-Jx]òµÅÄ¥¢T¸”1}IvI%[+i™–™f;¿?Žß¹cfšBÍÖçý×™gÎóœÏ9óÌgžgfÎ9$ ÃH39q? @êA"H=Hd©'/îz—É“'‹; " EÜ!ô"$øÕR”H$ÒСCuuuÅèA?~,**‚w–(ÁˆLÔ<<<&Nœ(î(@ÊÎÎþÏþ#î(zøŽ õ ‘¤$2€ÔƒDzÈR~µ”8NNNIJžžÞðáÃýýý555‰B:ž››[]]mbbâàà°hÑ"2™Œ×522JJJ"‘HÄú!!!=JNN622B}þü9**êùóçMMM¦¦¦žžžĦ‰ÕÄ®ÓãðãíKÎ΂#2Iyþüù”””ÖÖÖåË—·´´àOµµµùùùûùùÅÄÄxzzR(”   ‡ƒ¯PSSóúõk¢©æææüü|â!•J]ºt©’’Rhhhttô¤I“vìØ‘››+‚ª®®ž={ö7Urº¥} 3 ‘I"MMÍ~ýúéèèŒ9rÇŽ)))øS‰‰‰šššøù矢££kjj®^½Š¯`gg—M4uïÞ½#FãããGŽleeejjº`Á‚yóæ={V;Åáp¨Tê7Urº¥} 3 ‘I:‰4kÖ¬à)Š···œÜ?/œ²²ò¢E‹ˆb&Nœ˜Mü­üÖ­[&L VÎÉÉqwwçnßÇÇgÆ ÄÃÇ{zzΜ9óÔ©SxÉýû÷—-[6eÊww÷Ó§O#„*++œœòòò.\XXXÈ¿›ÍŽ_¸páœ9sÂÂÂðaT@@BhÞ¼yx³,+::zîܹsçÎŽŽf±X<Í ?üåiŸ~<;‹p÷îÝ%K–Ì;÷ðáÃL&S`ag/5HdRÀØØ¸ªª !ÔÒÒR__onnγ‚¹¹ùû÷ïñe†Ï.[[[óòòìííñ§ðê&&&ÜuUTT¸O™zøðallì† âââ¨Tj[[ÛÖ­[œœœìïïÛØØˆ¯yîܹ7ñ¯ššš““ñáÇääd„ÐÑ£GBiiixõÔÔÔêêêcÇŽ…‡‡çååÅÇÇs7;xð`!ÇA`TÜí ›ÏÎâ…éééaaa»wï~øð!‘É_öˉD|G&''çèè˜mnn~ÿþ}[[[uuuü)|˜Æý;¿… ªªªŽ?!ÔÜܬ§§wüøq]]]%%%<ßµ¶¶âk._¾ÜÌÌŒÅbñ¯pùòåeË–™™™!„BBBˆ$ËíêÕ«ýúõÓÕÕõóó‹ŽŽž6mѬðýUTTì(*!+ðÿPÀ³³x¡¿¿¿±±1BhéÒ¥qqq...ü…>>>Â#"‰L TTT"„úôéÓ¯_¿²²2;;;îÊÊʆ B<œ8qâ¾}û|}}yæ•}ûöÕÒÒz÷îµµ5QX\\|ðàÁC‡)))!„´µµW²“——¯¨¨Ø¿?Fã%á#;+ÔÖÖâo{„©©©©©)ÿNÕÔÔpOrÕÔÔ¸›~„DÕiØÜxvGDnbbòéÓ'!…@rÀÔRÒavñâÅqãÆá]\\‰ñBˆN§Ÿ9sæçŸ&JlmmÛÚÚ ?~Œ7ööögÏžå¾0…Ba±XxC|ïêööömÛ¶-Z´(&&fíÚµÜOÉËËw´‚¶¶vMM ¾\VV†O-yhhh$''ß¼yóæÍ›—.]Â'†D³Âƒ¨: ››ÀÁiEE¾ðáÃ<ÓuT$$2IÔØØX___WW—ŸŸ¿eË–êêê àOùøø444¬[·îÑ£G·oßö÷÷×ÑÑáþç>»rdÉØ±Üo ô0µˆÍ愇gΟÄÎnàõëA’œÅB£F™^¿dg7ÐÃãHxx&›Íé¼u0"ëíjk›V®L~òäÝÞ½cÄÎ7HIÉ I±³3ŒôÒÓÓw8@œ ‘õjYYEkמÖÕUŠò¶°Ðw8ßìÕ«š+NÖÕµDD,vq*îp€ØÀÔ²—b2Ù[¶\ðñ‰›6mØ•+Ò˜ÅBúÿ½ÖÉÉÒÇ'nË– L&[Üñ€Yoôöm¿bYÙÇݻݥk:Ù‘””Ü͛ϛ›ëFEy¨#îp€¨Áˆ¬×IK{âêºŸÍæ\»¶^6²BÈÃc̵këÙlŽ›[ø… y∌Èz‘¶6ÆÆ)çÏ?ù÷¿¶l™©¨(k— `0X;v\:qâ¶»»Ýž=ªªŠâŽˆ$²Þ¢¨¨jÅŠ“Ÿ?·FD,ruµw8=èúõçik«EGû j(îp€(ÀÔ²Wˆ‹Ë™>=BG§oVVlg1„««MVVŽNßéÓ#âârÄ‘É¸ÆÆ¶uëþ¢P^¬];yíZW2¹·|t±Ùœƒ¯p`‘†œÏ$Ë ‘ɲÜÜ7Il6çÈ‘%¿ü2HÜáˆÁ½{e+W&“ÉrG.3æ'q‡zJoù|îm8,<<ÓÝ=rèPì¬àÞ™ÅBÿó?æYYÁC‡º»G†‡gr8ð±-›`D&ƒjk›V­:õèÑ›?þ˜)±=â²cÇš>쥧§.îˆ@7ƒD&knÜx¹fÍiuu•èho[[cq‡#A >øû'Q©´C‡~4ÉJÜá€î‰Lv0™ìíÛ/ž8q¿*tŸ>pUh^--_®ßýï;lÝ:KA,îˆ@÷€D&#Þ¾­ H*-­•™³Žz~>ÓàÁzG.ó™d|Ù/ ÒÓóÜÜ™Lvfæ:Èbòð“™¹ŽÉd»¹…gd<w8 ÀˆLºÉüYG=§½µsç—ó™öîõPQó™¤$2)öòeÕŠ‰Ÿ>5GD,vs“ñÿë÷kמžéß¿ot´••¸Ãß ¦–Ò*..gÚ´ˆ~ýÔ²²‚!‹}777›¬¬`--µiÓÀùLÒ FdÒ§©©mýú³×®=_»v²o+KðÛ“4s©Ÿu4o^¤¥¥AVVd±ngoož•da¡?oœÏ$e`D&jk©«VzøðµdÞ:W–ç37èÏ?=á|&©‰L ܼY¼fÍ©>}”£¢¼‡ îpz…üüþþ‰--ô?ÿôœ8ÑRÜá€NÀÔR¢á÷:òòŠqpríÚzÈb"3|ø€k×Ö;8 ñôŒû3I>‘I®wï>$¾zU6þ¯/.))¹›6¥ZXè=êmjª-îp€`0"“P/>usÛßÞÎÊÌ”{I#1™™ëét–›Ûþ‹á|& #2‰C£1BBRRSûú:þñÇL%%8ëHüðó™ŽÏ™?4œÏ$ ‘‰GQQ•©©¶šï•v^¾¬ö÷Oüø‘¾hêT[±Ä:rõjáºuéé©GG{[ZòžÏÔÚÚþþýg++¸o“ÀÔR h4†¯o|HH O9~¯#  %²˜š:Õ6++HCCeÚ4÷g Iñõ=A§3Å[/GÞ¶m›¸cèuBCÓoß.)*ª65ÕÆo¼H¥ÒV­:{kõj—kjÂ)2J]]ÅÃc ‡ÃÙ³çrqqõ„ JJ ¡””܈ •Joj¢9;ÃågE ¦–¢–•Uäã‡a‰D’——ËÌ\×ÖÆHb0X‡{?XÜ‚.¹s§tÕªdEEù£G½UU¦L9€ÿEƒD"%&.ƒ\&bÈDª¡¡ÕÁ!¬¡¡ ?ìòòrúúuu-#F˜9âe` )îÁ7¨®nüý÷ägÏÞik÷­©ib³9! ii©Ý¾½IKKMÜö"ð™Hž¡Rić‹Å©©i9Ò4%%²˜Ô10ÐLI 1´¶öKCa¢RiëÖý%ÞØzHd¢sáB…RÄbq¸ Y,Îýûeÿ/®¨À¸téÙƒ¯ù_Óë×_¤§ç‰+ª^¦–"RUÕè踇Fcðp ©¨(ݼ¹aÀ€~b‰ |Ÿ÷ï?Oš´OÈkš“³ÑÐÚ¢#2 >Ç`0~l`¢Ó™+W&Ó ùØlÎÊ•Étº€,†Â0Ä`0ƒƒÏ‰>°Þ ™(œ>ý ;û%Ï'//G&ËaÖÞÎ*)©}làû””Ô´·³0 ‘Ér/ÒËbq²³_ž9ó@ô±õB0µìqååŸ&Mú_ƒÅ]¨¨(Ï`°ÔÔ§L±uuµqpÿ“Fm·o—\¿þ<3³°µ•¿¬Ü+(*Ê߸±Á̬¿¸"ì% ‘õ,6›3cÆÁ/*Y,‰„ä –®®úÌ™#fÎ>jÔ@¸â¾l`±8yyo/]Ê¿téÙÇTEEy&óËxÍÆÆøï¿×ÉðB÷ ¯Fkhhc4²'1ñÑŸÞ"‘†¡´œœ;:²µ5”™n­¢¢¢¥¥õ#-ÈX¯c³9……U99¯oÜ(©¨hÄ_ú5k&.Y—0éf††ÿœÖúU"ûøñcQQ‘8B’MÍüqËÔTcôhýÑ£ úˆ;¢î׿kkëiA†{]uuËãÇÕ×¼{×´k×#£¾âŽH¦Lœ8‘Xp‰î§Áxù²êéÓI2üï/^tWS²Úë/F¡††Öšš&¸0Fwáÿðƒk]õ 踧¥¥&ßg’@F¾©ôfÈR@êA"H=Hd©'õ‰ìýû÷¿ýö[§«•••‘H$îîêOŸ>•——OIùç"úŠŠŠ………=3—z{{úôIÈú†yyyõéÓÕ¥‘H¤²²²îˆ|!°×ñt­i¶Ó.ÑÚÚ<|øð¾}ûŽ3f÷îÝ,Ö—S£H$ÒàÁƒyÎØ™:u*Ñ H$’‡‡÷ ßy×WeÇ“úD–žž>gÎO•——ëèèàËššš!!!U9räæÍ›W¯^ÝØØˆjjj  µµÑ@îÝ»W]]]QQO¥RG…G"PUUÕ©S§dõO¤RAH¯ë®f…t‰æææÑ£GçææîÝ»÷É“'›6m:uêÔäÉ“Ùì/·Cûöm~þ?W¸khhÈÉùêV)©©©gÏžíöøÅ ãR[[{óæMLªLŸ>½­­MàS¥¥¥<;È_HTooo·±±Y¾|9†a+V¬°³³c0=õWB¥¥¥ÄC‡ãèè¸uëÖŽÖ¸_]o¿=þüùóç?؈Ìôºo}]„4+¼K988°X,b…–––ÆÆÆâu§L™²yófâÙ„„„©S§m"„üüüúõëW]]ý‘w}åžëxü}æ›Gd/^422ÂOŽ;sæÌ!CZ[[BL&388XOOOWW788˜ÉdâCÐÿþ÷¿&&&ÙÙÙ¡¡¡&&&ýû÷÷öö&>[øk!„.]º4lØ0eee33³¤¤$„‹ÅX½®®NMMMEE…{¸K,7!¤¯¯:ÕBŠŠŠ 'Nœ ‹OHHPPPè(ÈnÜ5~$iÅŠ—/_î¨îýêb›×¯_777×ÒÒ #ŽFFF†………®®îêÕ«ÛÛÛvµ[ô0Éìul6{ß¾}C† éÛ·¯½½ýÇñÿõ¯éèèÑét„‰D:qâ„••Uÿþý÷ìÙ“””ôÓO?ihhlÙ²…§YþÝçéÉÉÉ[·n%“ÉÄ jjjÁÁÁÉÉÉøCsçÎaÿ?yLMM?>wƒ–––øÇ6϶øƒïh7F¢ëxÂóœ@ÞÞÞ>>>555zzz>Ä ÷îÝëîîþþýû‚‚‚Q£FmܸÏÜS§N½qãÆ¶mÛ¬­­ ÇŽÔQ­––%%¥èèèêêêãÇËËË·´´ìÛ·O`õ'N$%%a_JËÕ 7nDíܹ“»°Gw ôÁ•››«©©)|ëø³µÉ !4cÆ *•zþüy„P]]Þ‚««kIIɃÌÍÍ·mÛ&°PxOåˆL{ÝtuuÓÒÒªªª._¾ŒŸÃŒa˜§§§³³óëׯ lllðÈZ¼x1•J‹‹C-X°€J¥;v E°¯{£.góOŸ>ñŸ»wïêééáu‹‹‹õõõŸ>}ŠaXcc£ªªj]]â‘•–––””¨¨¨ÄÇÇc_¿)øƒïh7ù#OH=×ñøûÌ÷$²††ccãaÆqoÏÒÒ’©R(”#Fàñ`faa‘––†?[TTD,óת¯¯WPPØ¿CC‡Ãinnf³ÙUwww¯¯¯Ç¾7‘ÕqgöìÙd2ÙËË‹{{t×°ÎYG[ÇK:j“B(;;Ã0ü;”ÒÒRîø1 ;{ö¬¹¹¹ÀBL(Q&2 ìuC† IHH ‚9yò$BˆÁ`Édâ°¤¥¥á‡!”——‡aƒÁàYÆ_}îÞø‰ìþýû:::DÝßÿ}Ó¦M†%''Ož<™»MbáСCêêêïß¿'z”Ààî¦ÀÃÈRÏu¼îId†mß¾L&×ÖÖ%ÊÊÊÜ= <>ü›&eeåÂÂBþvøkavçÎùóç«©©988\¹r¥£êÍÍͳfÍ—¹ßÛ%%%]IdÜÕqIII·nÝRVVNOOÍ®a‚zíéÓ§íìì„oXY`›ÜB%%%ÜÛÂ[ Ñhxa~~¾²²²ÀBþÖ¸‰ø;2Iëu***Ïž=#žzúô)BèÇ܇±  ?ŒÜ¯2ÿ2OoÞ%ôõõ) O`QQQnnnDÝììlsss‡3gΜcÇŽa‚›Íž0a>Â{”ÀàîfG‡‘[Ïu¼nøŽ ©"##]\\Ö¯_Oêè臾¡¡áÁƒ/WøÅ¿i244|ûö-^òìÙ³]»vuT‹F£q8œ”””úúz__ß™3gÖ×× ¬ž™™9eÊîÀð_ +++»²<Õ«ªªV¯^½oß>GGÇÐÐP??¿ÏŸ?‹`×øÃ;åôéÓ…o×Å6þ^Žw „PII qi'…’@{ÝÀ¹į¢§§G&“ËËËñÂׯ_uºwü™O—ðôôܾ};ñ%B¨µµuïÞ½Ü-Œ?¾¹¹ùÎ; ¥£XåääâããïÞ½ƒ— ^àn¢Îz&NtOxžãÇf³]\\vìØQ__¯¯¯ñâE¼|õêÕóçÏÇ÷;vìÊ•+¹¡¡¡Ã† +,,,,,´··_¶lYGµh4š²²rjjê§OŸbbb”••i4šÀê^^^•••x;ø¿lŽ?ÞÔÔ4wî\Ä5øjnnÆȸ«s8œ3fL˜0Ÿ—1ŒaÆ-^¼X»†aâú­=;;{öìÙÆÆÆ]ÙzGmÆÆÆ- ¾Ï¼''§ÒÒÒG _"㩞 ¤¤ôêÕ+¢äÑ£Grrr©©©=½kØ×? 0ÀÓÓ“{ö$|ëBÚò¶Á[ˆ‹‹355ÕÑÑYµjFX(¼3ˆ,‘If¯c±Xûöí377WSSûå—_ð! †aõõõK–,ÑÖÖ600 $>®:zEŠŠŠx:³ð.aXKKËúõëmllTUU­­­wîÜIü„h<;;!täÈžržDÆáp&OžŒ¸¾uå ¾£ÝxEÓñøûŒ€+ÄÊê%¬ŒÿÏß …ÃgÝr…Xèu½Awu<þ>#õÿìHd½‘ºººŸŸ_W èF=×ñ`j ¾L-XÀÔ ƒ ‘¤$2€ÔƒDzÈROÀ z«ªªDFt:çÌáï½t]KK O‰€D†Ÿ @WtW"ƒ^~é›Î ß‘¤$2€ÔƒDzÈRïÿ‹ç>êX4•IEND®B`‚XQilla-2.3.0/docs/dom3-api/functions_func_0x74.html0000644000151400015140000001031511653571065016670 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
 

- t -

XQilla-2.3.0/docs/dom3-api/inherit_graph_15.png0000644000151400015140000000373211653571066016041 00000000000000‰PNG  IHDR­(°íbKGDÿÿÿ ½§“IDATxœí›[LÛÇWwåVÔ‚—,Š¢$@D‘DðÁThâƒr‘±¼Dy‘6ŠÆ– 1Œ>P£DAb#’Z1ÔЦb Q´!¡‘‹UnB¡(”vÖ~X9“ž™¶¸Ù<Û½~Oëö_ó­oþ³f¥„`þõüñ«Àü_€}€ûƒÀ>ÀÀ ZýÒ¥KZ­ö—„‚YNZZZ\«ttvvöôô¤¤¤,cH˜eåëׯz½žÖH÷ %%E©T.KH˜_€R©ÌÍÍ¥5âóì ûö}€à7öË¡P(‘HÆÆÆ\LOOËd²øøøU«VíØ±ãòåˇƒÒFEEѾ‹Å,Ëh4¢¨à AR©tãÆQQQ …bvv– —ËÝ¿__ßÿjå‹â·õ ­­mhhÈd2Ý»wÏb±$&&NNN¢.«Õš””ÔÞÞ^QQñþýû’’’úúz‘Hät:Ñ€þþþOŸ>QS™Íæ?^+**úðáCccãàà`MMJ¥’Éd´`¾ÿ®ÑhH’ÌÏÏ_êåþ=à““““““ÿùz{{©*I’iiir¹U¥RijjªÃá ! ïܹƒ´çÏŸ§zkkkÅb15'mrDPP^¯§ª&""Âm0&“ 055µT‹ýK<|øyß³ݶm‡Ã ½rå µ ”4NÇLÅ‚©ÖétÞCuÍ?¹H$’£GóùüwïÞ¡ÆŠŠŠ¬¬¬ÁÁAƒÁ˜˜xîܹÞÞ^€X,~ýúuiiiLLŒÁ`èììLNN–J¥žTAøùùݺukhh¨¦¦fÅŠATVVº•ONN¢‡˜VŒG¶½½=((Bˆ<66F[Ô›7oø|>Òöôô„„„ttt i9Î?€×ýàÅ‹ÀÏÏO$UVVö÷÷S]€?Z­V‹Åb4333“’’ „‹Å××·°°Ðd2! ŽŽŽº&mdd„™ŠSÆxÂí~°H˜Íæ°°°¸¸¸ÒÒRª1::zhh•[ZZPpƒB¸uëÖÇ£ÞÏŸ?Se¦jbbÂÇÇçêÕ«f³™$I«Õêt:=É=±¼}ûvݺu”öÔ©S%%%ºº:‘Hä:§[@‡^¯/++‹e³ÙõõõT0>>>{öìAò¹¹¹îîn‚ œN§F£AÓº&Ím*Lµw–Ò²²26›=22Bµøûû».˜Ëå¢àìv;êíììdÎÃTAu:]vvv```jjê³gϼÈ=Á¼U<ؾ};*‡„„´´´Ð$7oÞLOO§´­­­›7o&IòÀ·o߆^}@DCCuà IòâÅ‹ÀS0*•j÷îÝ ®>@Is› ·I£©¼°”>äñxéééùùùTcXXµZ³ÙÜÝÝ‚C-‘‘‘jµ•;::ÊËË=©fff´Z-„pnn®¶¶–Íf{’{0Ή©©©Ô9±¸¸Øí9ñúõë”Öápðù|­VˆìîÅV«•Åb¡÷B§Ó¡·ŒÛñˆ™™???•JE’¤Ífsõ5€™ŠSí%;'’$YXXXTTÔÐÐðòåKµZÚ333KJJ CFFFUU•«êÈ‘#.\èêêêêê:}ú4u†bªX,Ö¾}û-‹Ýn÷ññáp8žäSSSwïÞe–cccÃÃÃß¾}Óh4ìëë;sæ ê’Ë壣£{÷î}þüyoooSSSrr²@ 8yò$%g³ÙYYYÇß¹s'Ç£%MN±råJ‰D’››ÛÜÜüåË—¶¶6©Tš——ç=“sssv»Ý×××f³) €Õjuà6 ¦z1Ð|ñ3ûÁ7âããÑÔÔÔ:11!´X,ÁÁÁk×®=vìØôô´«Iggg¥Ré† ¸\n^^žÙlFíLòì¦M›|}}£££U*•¹ë%\Ë®k ?|ø°ë+ BHDqqqll,‡Ã‰‰‰)//Ÿ™™¡´èikmmTUUÑÚݦÑáp”––ÆÅÅ…³gÏÚl6šÉµk×Ö¬Y^]]——ÇãñhO63 ¦Ú;n÷mU‡àßüÆ ßÐîûïüy"æçÁ>À€}€A``À>À °0``ذ07ÿgÒjµ"‘hùCÁ,###ÌFºvíÚµ,Á`~ÁÁÁÑÑÑ´Fú÷ ˜'ø|€ûƒÀ>À€}€Aü 5ϱÊÙÐIEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMXPathException_8hpp__dep__incl.md50000644000151400015140000000004011653571065021133 00000000000000b821c64ecb3dc6b98fd119104f3c7dc2XQilla-2.3.0/docs/dom3-api/inherit_graph_28.png0000644000151400015140000000412311653571066016040 00000000000000‰PNG  IHDR«(®8bKGDÿÿÿ ½§“IDATxœíš}HSßÇÏZÚÔÊÊ=\uZ˜L4Ì0Ñ0QK‹Pj ʲ±DK$…ŠVdýQ‘eåmÙTê±–˜ù@¨[ˆé”‘áŠÕ½K·¶tîüþ8|/ûÝ=d}û*´ûúëœÏ=ŸÏù|Î}ï܇]„и0Ë–:š%†V€«C+ÀÕ¡àê,§ô«ªª:;;—$šEàüùóIIIÖª”JåÈÈH||ü"fE³H466æååQŒTâãã%%šE…Á`ØéûW‡V€«C+ÀÕ¡àêÐ puþZ0¬Ø°aCNNŽV«µ`0ÄbqttôªU«¶lÙréÒ%³ÙLú†„„Pþ3ËÈÈ`0*•êñãÇ { þûœU*•££ÂC‡­\¹ò_ÎBá¯U »»[£Ñ|üø±®®nzz:&&F§Ó¡C333±±±ýýýÕÕÕoß¾---•J¥iiióóóh€Z­"CA¾(ËÌÌÔh4¦»» ù@ðŸ–355%•J‡‡‡ÿlØ¿YÃ0ÿäää–––   ëׯ£C•••§££#===44tïÞ½}}}jµº®® HMMmll$Cµµµ‘¯Ò<<<0 Ã0ŒÃá°pssûOË1€ÀÀÀ?öwÐÖÖæïïO ¾¾>44Ô`0æææÄb1Çãr¹b±xnnN¥R1ŒŽŽŽÀÀ@¹\^^^ÈáprrrÈŸ£­àÉ“'QQQ,+((èádzÙl×MaÛ¦À`0òóóŸ>}Šº‰¤¬¬ŒÉd’¼¼¼Äb±D"A]‘HÔÐÐ@^ššš„B¡óe)**ÊÍÍEm½^ïéé900€Rjmm ãr¹EEE?~üpT5%a©T±nݺ+W®¶nÝ À0 ÐétGe³Ù|>¿¤¤Äd29OÏ!ðÿ‰D"‘þŒœœœ#GŽ|úô‰Çãõöö"cuuõ¾}û>|ø P(bbbΞ=;66ÈÈÈxñâEEE…@ P(J¥2..®¤¤Ä‘—^¯_±bEMMF£¹ÿþòåËõzýÕ«WíºëtºÚÚZÛ6`llÌ:çþþþ5kÖ@‘vµZ-¥¨×¯_óx<ä;22‚aØÀÀ ëééùåËJLTÙ}õê•ÏÜÜ„P"‘‹Å‚Æìرctt´§§'88¸¢¢ÂnÕ”œB¡ ˆÚÚZÀׯ_)Óegg§¤¤Œ+ŠÈÈHÖ9™LF5Rú TA|>?**ÊzâððpFƒÚííí›6mBI+ aXXXss3::<¶n»Uÿ’p?|ø°¯¯ï™3gÈ+‚ì*€AY¬ýû÷èï~›sçΩÕj©TŠº*•ÊöõâRÁ`0d2:Å$v¾¡ù=L&ÓÔÔÔƒêëë—:—_ào~'¸ÈôööÆÆÆ?~|ûöí¤qõêÕ'Ož\º¤~½ü1’’’p§¹\nMMÍ’ä³@è=ÀÕ¡àêÐ puh¸:´\Z®Ž§ÁÎÎδ´´ÅO…fI *}ˆBóW"‰(Fêÿ4®}àêÐ puh¸:´\ÿÞù×L‘‹IEND®B`‚XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMLSSerializer-members.html0000644000151400015140000001262011653571065022467 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMLSSerializer Member List

This is the complete list of members for xercesc::DOMLSSerializer, including all inherited members.
DOMLSSerializer()xercesc::DOMLSSerializer [inline, protected]
getDomConfig()=0xercesc::DOMLSSerializer [pure virtual]
getFilter() const =0xercesc::DOMLSSerializer [pure virtual]
getNewLine() const =0xercesc::DOMLSSerializer [pure virtual]
release()=0xercesc::DOMLSSerializer [pure virtual]
setFilter(DOMLSSerializerFilter *filter)=0xercesc::DOMLSSerializer [pure virtual]
setNewLine(const XMLCh *const newLine)=0xercesc::DOMLSSerializer [pure virtual]
write(const DOMNode *nodeToWrite, DOMLSOutput *const destination)=0xercesc::DOMLSSerializer [pure virtual]
writeToString(const DOMNode *nodeToWrite, MemoryManager *manager=NULL)=0xercesc::DOMLSSerializer [pure virtual]
writeToURI(const DOMNode *nodeToWrite, const XMLCh *uri)=0xercesc::DOMLSSerializer [pure virtual]
~DOMLSSerializer()xercesc::DOMLSSerializer [inline, virtual]
XQilla-2.3.0/docs/dom3-api/inherit_graph_6.md50000644000151400015140000000004011653571065015646 000000000000000a538aee5a46646b155ea68db190f6a3XQilla-2.3.0/docs/dom3-api/globals_func.html0000644000151400015140000000407211653571065015524 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
 
XQilla-2.3.0/docs/dom3-api/DOMXPathResult_8hpp.html0000644000151400015140000000663111653571066016614 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMXPathResult.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
Include dependency graph for DOMXPathResult.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMXPathResult
 The DOMXPathResult interface represents the result of the evaluation of an XPath 1.0 or XPath 2.0 expression within the context of a particular node. More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/inherit_graph_0.png0000644000151400015140000000360611653571065015752 00000000000000‰PNG  IHDRµ(7É,cbKGDÿÿÿ ½§“;IDATxœí›oHS]ÇÏÜf+gnÚÌIa˜¤ZÔ*™/úCPSt©Q½(©±•¡eA`/‚ _’6GŒ„zQ1ÂeE±¶U¬¹Mmsé¢ÙÔ¦›»çyqhÜvï®k¥<Ïù¼ºçÜßýï=÷{ç^weAƒ¤…€YÔ``˜ÀþÀ0ýa‚CnèõúÖÖÖ…’‚Y H¥Ò .Dš¿øcttôéÓ§2™ì¯«Â, ^¼x‘ššJîáPƒ´ZíßÒƒY\TTTDõàç Ø&°?0L``˜ÀþÀ0‘¸?._¾Ìb±®^½úïE°H¬^½º¶¶Öëõþn’‹EÞX h4Û¶mËÊÊšššŠDÚíöäääÎÎNð네¤¤ìÛ·Ïét¢0ÚlN‚þ€j4šìììîînæH‡Ã!æLh0<ËåºsçŽßï/..OLÛ|§rf8àñx<Á`x~òàÁƒP(týúõHdccãÖ­[«««QMÈÈȈ^¯'âСC‘H´‹Ì¿É$.6ŒƒwïÞ±X¬ÞÞ^€Õjeˆ´ÙlsæØl¶H“ ©TzñâÅx”PŠgÄßJ8/P³uvvòx¼ÁÁAa__‡Ã1›ÍhWÔ„¸\.À÷ïß©»æ™L&“ÉÈ= ÖFSZZºsçμ¼¼H !öȶD"¬\¹õ>|X dee)•Êééijr‹uâĉG¡f(R©Tééé*•* >|XTT´lÙ2‘HİÆQ‡›miiÉÎÎ …µµµ‘*EM¥œVF^¯÷ÇqÎaUUÕöíÛÏž= !T( ´‘l60;;gæß’1d³ÄY?‚X³fM{{;„°©©)??õ“o‘Xw³\.ß±c‡Ýn7™L—.]‚t÷Äëׯù|>Ú¾víÚÁƒ‡‡‡M&Sqqqcc£ßïONN>räˆËåº{÷.`llŒvDêp7nÜÈÏÏ7™Lf³yË–-J¥BÈœ0– ²àW¯^ÕÕÕ …‘‘ÚI£­FV«uÉ’%§N‰D¨< F£qbbÂï÷ ”——oÚ´)j™¨´½½½ÈćƒVL,¨õ#ô÷÷s8œ¯_¿Bß¼y@…qNƒA6›m±XPS§Ó­]»Îå¼¼<Ç9ó™™™?NNN†Ãa½^§ŽH;ܺuët:êùðáÚfNK„0tttlÞ¼¹¨¨¨½½z©"ÄZ­ZZZ]]]äNò ÌårKKK#ó3çMŽp»Ý---YYYû÷ïüøq8Ž%ŒÌüøãôéÓQúš››á¯SðéÓ'ª?>þ ¨i2™x<¤óGWWׯÑ6Ç#•’’!ìéé)))),,¬¯¯åÚáx<^d™'Ã0– t›ÖÕÕ½|ù’ æI‹å4QQ‡S'$ž]T‚Á V«-))ÉÍÍž3~ž?Âápww·Z­Ž7…BÑÝÝ Z-“n·›zlFF›Ív8¨i·ÛW­ZE ƒÞ¾}{ïÞ½¨)"3âóùúûû@EE…J¥zûöm[[[,©´Ãeff¢£ÑxåÊ@< ©2„Báúõë C___Âo[è)í½£ŽŽŽ¾ÿÞår/]º4 ¿íçÏŸÉåòå?©®®¶ÙlF£‘Ïç:::ü~ÿÍ›7ÉGMNN¸\neeeCCƒÓé´X,ÍÍÍr¹x½Þ/_¾¸Ýn½^_VVæt: ÚU^^~þüù¡¡!“É´gÏž[·nÍÌ̃Áäää@ €êóÄÄU*íp555MMM‹Åb±œ¶k×®¿¯³0›ÍR©”Üó‹?Äb1þçÛÿ3R©}5…mÁ0€Ÿ?0L``˜ÀþÀ0ýaâ¹Õw)äÕ-IEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMDocument_8hpp__incl.md50000644000151400015140000000004011653571065017017 00000000000000aba3634ed6441d31c7209a02e8ec41b6XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMNodeList-members.html0000644000151400015140000000633411653571065021645 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMNodeList Member List

This is the complete list of members for xercesc::DOMNodeList, including all inherited members.
DOMNodeList()xercesc::DOMNodeList [inline, protected]
getLength() const =0xercesc::DOMNodeList [pure virtual]
item(XMLSize_t index) const =0xercesc::DOMNodeList [pure virtual]
~DOMNodeList()xercesc::DOMNodeList [inline, virtual]
XQilla-2.3.0/docs/dom3-api/DOMRangeException_8hpp__dep__incl.md50000644000151400015140000000004011653571065021143 0000000000000026593b87a1dfe90103950815f3be8aaeXQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMElement__inherit__graph.md50000644000151400015140000000004011653571065022773 0000000000000035b6e8d2a8b9dc5c9d078107c0bb9ff1XQilla-2.3.0/docs/dom3-api/DOMLSParserFilter_8hpp__incl.md50000644000151400015140000000004011653571065020102 00000000000000c3281c5cd8f56d667bd35b1b9978783dXQilla-2.3.0/docs/dom3-api/XQillaNSResolver_8hpp__dep__incl.md50000644000151400015140000000004011653571065021045 0000000000000029091cf15b5c895d052e56eb3d0f0cedXQilla-2.3.0/docs/dom3-api/inherit_graph_29.md50000644000151400015140000000004011653571065015733 000000000000001279a6f99bff43369d0a8000fe7297eeXQilla-2.3.0/docs/dom3-api/PlatformUtils_8hpp.html0000644000151400015140000000771211653571066016637 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

PlatformUtils.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <xercesc/util/XMLException.hpp>
#include <xercesc/util/PanicHandler.hpp>
#include <xercesc/util/XMLFileMgr.hpp>
#include <xercesc/util/XMLMutexMgr.hpp>
Include dependency graph for PlatformUtils.hpp:

Go to the source code of this file.

Classes

class  xercesc::XMLDeleter
class  xercesc::XMLPlatformUtils
 Utilities that must be implemented in a platform-specific way. More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


Functions

 xercesc::MakeXMLException (XMLPlatformUtilsException, XMLUTIL_EXPORT) inline XMLSize_t XMLPlatformUtils
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMImplementationSource-members.html0000644000151400015140000000677211653571065024300 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMImplementationSource Member List

This is the complete list of members for xercesc::DOMImplementationSource, including all inherited members.
DOMImplementationSource()xercesc::DOMImplementationSource [inline, protected]
getDOMImplementation(const XMLCh *features) const =0xercesc::DOMImplementationSource [pure virtual]
getDOMImplementationList(const XMLCh *features) const =0xercesc::DOMImplementationSource [pure virtual]
~DOMImplementationSource()xercesc::DOMImplementationSource [inline, virtual]
XQilla-2.3.0/docs/dom3-api/inherit_graph_26.map0000644000151400015140000000045211653571066016030 00000000000000 XQilla-2.3.0/docs/dom3-api/classAutoDeallocate.html0000644000151400015140000003130511653571065017001 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

AutoDeallocate< TYPE > Class Template Reference

#include <XPath2MemoryManager.hpp>

List of all members.

Public Member Functions

 AutoDeallocate (xercesc::MemoryManager *mmgr, size_t size=sizeof(TYPE))
 AutoDeallocate (TYPE *p, xercesc::MemoryManager *mmgr)
 ~AutoDeallocate ()
TYPE & operator* () const
TYPE * operator-> () const
 operator TYPE * () const
TYPE * get () const
TYPE * adopt ()
TYPE * swap (TYPE *p)
void set (TYPE *p)

template<class TYPE>
class AutoDeallocate< TYPE >


Constructor & Destructor Documentation

template<class TYPE>
AutoDeallocate< TYPE >::AutoDeallocate ( xercesc::MemoryManager mmgr,
size_t  size = sizeof(TYPE) 
) [inline]
template<class TYPE>
AutoDeallocate< TYPE >::AutoDeallocate ( TYPE *  p,
xercesc::MemoryManager mmgr 
) [inline]
template<class TYPE>
AutoDeallocate< TYPE >::~AutoDeallocate ( ) [inline]

Member Function Documentation

template<class TYPE>
TYPE* AutoDeallocate< TYPE >::adopt ( ) [inline]
template<class TYPE>
TYPE* AutoDeallocate< TYPE >::get ( ) const [inline]
template<class TYPE>
AutoDeallocate< TYPE >::operator TYPE * ( ) const [inline]
template<class TYPE>
TYPE& AutoDeallocate< TYPE >::operator* ( ) const [inline]
template<class TYPE>
TYPE* AutoDeallocate< TYPE >::operator-> ( ) const [inline]
template<class TYPE>
void AutoDeallocate< TYPE >::set ( TYPE *  p) [inline]
template<class TYPE>
TYPE* AutoDeallocate< TYPE >::swap ( TYPE *  p) [inline]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMText-members.html0000644000151400015140000005750411653571065021055 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMText Member List

This is the complete list of members for xercesc::DOMText, including all inherited members.
appendChild(DOMNode *newChild)=0xercesc::DOMNode [pure virtual]
appendData(const XMLCh *arg)=0xercesc::DOMCharacterData [pure virtual]
ATTRIBUTE_NODE enum valuexercesc::DOMNode
CDATA_SECTION_NODE enum valuexercesc::DOMNode
cloneNode(bool deep) const =0xercesc::DOMNode [pure virtual]
COMMENT_NODE enum valuexercesc::DOMNode
compareDocumentPosition(const DOMNode *other) const =0xercesc::DOMNode [pure virtual]
deleteData(XMLSize_t offset, XMLSize_t count)=0xercesc::DOMCharacterData [pure virtual]
DOCUMENT_FRAGMENT_NODE enum valuexercesc::DOMNode
DOCUMENT_NODE enum valuexercesc::DOMNode
DOCUMENT_POSITION_CONTAINED_BY enum valuexercesc::DOMNode
DOCUMENT_POSITION_CONTAINS enum valuexercesc::DOMNode
DOCUMENT_POSITION_DISCONNECTED enum valuexercesc::DOMNode
DOCUMENT_POSITION_FOLLOWING enum valuexercesc::DOMNode
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC enum valuexercesc::DOMNode
DOCUMENT_POSITION_PRECEDING enum valuexercesc::DOMNode
DOCUMENT_TYPE_NODE enum valuexercesc::DOMNode
DocumentPosition enum namexercesc::DOMNode
DOMCharacterData()xercesc::DOMCharacterData [inline, protected]
DOMCharacterData(const DOMCharacterData &other)xercesc::DOMCharacterData [inline, protected]
DOMNode()xercesc::DOMNode [inline, protected]
DOMNode(const DOMNode &)xercesc::DOMNode [inline, protected]
DOMText()xercesc::DOMText [inline, protected]
DOMText(const DOMText &other)xercesc::DOMText [inline, protected]
ELEMENT_NODE enum valuexercesc::DOMNode
ENTITY_NODE enum valuexercesc::DOMNode
ENTITY_REFERENCE_NODE enum valuexercesc::DOMNode
getAttributes() const =0xercesc::DOMNode [pure virtual]
getBaseURI() const =0xercesc::DOMNode [pure virtual]
getChildNodes() const =0xercesc::DOMNode [pure virtual]
getData() const =0xercesc::DOMCharacterData [pure virtual]
getFeature(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNode [pure virtual]
getFirstChild() const =0xercesc::DOMNode [pure virtual]
getIsElementContentWhitespace() const =0xercesc::DOMText [pure virtual]
getLastChild() const =0xercesc::DOMNode [pure virtual]
getLength() const =0xercesc::DOMCharacterData [pure virtual]
getLocalName() const =0xercesc::DOMNode [pure virtual]
getNamespaceURI() const =0xercesc::DOMNode [pure virtual]
getNextSibling() const =0xercesc::DOMNode [pure virtual]
getNodeName() const =0xercesc::DOMNode [pure virtual]
getNodeType() const =0xercesc::DOMNode [pure virtual]
getNodeValue() const =0xercesc::DOMNode [pure virtual]
getOwnerDocument() const =0xercesc::DOMNode [pure virtual]
getParentNode() const =0xercesc::DOMNode [pure virtual]
getPrefix() const =0xercesc::DOMNode [pure virtual]
getPreviousSibling() const =0xercesc::DOMNode [pure virtual]
getTextContent() const =0xercesc::DOMNode [pure virtual]
getUserData(const XMLCh *key) const =0xercesc::DOMNode [pure virtual]
getWholeText() const =0xercesc::DOMText [pure virtual]
hasAttributes() const =0xercesc::DOMNode [pure virtual]
hasChildNodes() const =0xercesc::DOMNode [pure virtual]
insertBefore(DOMNode *newChild, DOMNode *refChild)=0xercesc::DOMNode [pure virtual]
insertData(XMLSize_t offset, const XMLCh *arg)=0xercesc::DOMCharacterData [pure virtual]
isDefaultNamespace(const XMLCh *namespaceURI) const =0xercesc::DOMNode [pure virtual]
isEqualNode(const DOMNode *arg) const =0xercesc::DOMNode [pure virtual]
isIgnorableWhitespace() const =0xercesc::DOMText [pure virtual]
isSameNode(const DOMNode *other) const =0xercesc::DOMNode [pure virtual]
isSupported(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNode [pure virtual]
lookupNamespaceURI(const XMLCh *prefix) const =0xercesc::DOMNode [pure virtual]
lookupPrefix(const XMLCh *namespaceURI) const =0xercesc::DOMNode [pure virtual]
NodeType enum namexercesc::DOMNode
normalize()=0xercesc::DOMNode [pure virtual]
NOTATION_NODE enum valuexercesc::DOMNode
PROCESSING_INSTRUCTION_NODE enum valuexercesc::DOMNode
release()=0xercesc::DOMNode [pure virtual]
removeChild(DOMNode *oldChild)=0xercesc::DOMNode [pure virtual]
replaceChild(DOMNode *newChild, DOMNode *oldChild)=0xercesc::DOMNode [pure virtual]
replaceData(XMLSize_t offset, XMLSize_t count, const XMLCh *arg)=0xercesc::DOMCharacterData [pure virtual]
replaceWholeText(const XMLCh *content)=0xercesc::DOMText [pure virtual]
setData(const XMLCh *data)=0xercesc::DOMCharacterData [pure virtual]
setNodeValue(const XMLCh *nodeValue)=0xercesc::DOMNode [pure virtual]
setPrefix(const XMLCh *prefix)=0xercesc::DOMNode [pure virtual]
setTextContent(const XMLCh *textContent)=0xercesc::DOMNode [pure virtual]
setUserData(const XMLCh *key, void *data, DOMUserDataHandler *handler)=0xercesc::DOMNode [pure virtual]
splitText(XMLSize_t offset)=0xercesc::DOMText [pure virtual]
substringData(XMLSize_t offset, XMLSize_t count) const =0xercesc::DOMCharacterData [pure virtual]
TEXT_NODE enum valuexercesc::DOMNode
~DOMCharacterData()xercesc::DOMCharacterData [inline, virtual]
~DOMNode()xercesc::DOMNode [inline, virtual]
~DOMText()xercesc::DOMText [inline, virtual]
XQilla-2.3.0/docs/dom3-api/DOMImplementation_8hpp__incl.png0000644000151400015140000003305111653571065020335 00000000000000‰PNG  IHDRëuÝò3bKGDÿÿÿ ½§“ IDATxœíÝy`“EÞðÉÑû¾Òû MÓ“rª¸P @ (UX¼pÕ=8Ü]DÅw=¸ÁÝt½…VÂQ(È%…^!)mé•ÞM¤i’çýcäÙÇ$½Ó¦i¿Ÿ¿r<ÏdžÉLòüž™g†Ç0 òøÖÎ@ ‚Û€l"X° BkgFº'NlÚ´ÉÚ¹€Á6uêÔõë×[;`cÁ€•)•Ê#GŽLŸ>ÝÚÁ“››ëååeí\€íA C‹/¾hí,Àày饗¬°I¸l"X° ˆ`À6 ‚Û€l"X° )=ôÐë¯¿ÞØØÈÝ@£ÑlÛ¶mùòåwÝu×Ê•+÷íÛ§×ëÙ}—,YÂ0 wûçŸ>%%¥¼¼œn@ôMyyyJJJŸw ýÏU?‹ÀâÁ€Íøðÿþúë/¿üòùçŸomm}ê©§ZZZè[mmm+V¬(((X±bÅŽ;/^,•J׬Yc0èUUU …‚Mª¹¹ùÊ•+V8†þ©¬¬¼÷Þ{{¸««ë¢E‹%_ƒ,Ø OOOooo__ßqãÆ½òÊ+_~ù%}ë?ÿù§§ç»ï¾{ûí·‡„„$''oÛ¶­ªªêàÁƒtƒ &dee±IýôÓOcÇŽüCè'ƒÁ R©z¸‡‡ÇSO=5(ù$ˆ`À&ñx¼{î¹çìÙ³ô©T*]ºt)Ÿÿ¿ÿ5GGLJzH*•Ò§Ó§OÏÊÊbŸ8qbÚ´ifSNII9xðà²eËæÏŸÿé§Ÿ>|xÑ¢Ewß}÷ž={È­¡¹§OŸ~ä‘G,XðÁtttpw×étÛ¶m[°`Á‚ ¶mÛ¦ÓéºM³‹½Ž9²lÙ²{î¹ç¿ÿý/!äé§Ÿ&„üþ÷¿§{9sæÉ'Ÿœ3gÎÂ… ?ýôS£ ¸£ˆ[ZZÞxã{ï½÷þûïߺu«V«5›¾©ŸþyñâÅéééûöíëìð»-KA ¶*$$¤¢¢‚ÒÒÒR__/‹6‹Å¥¥¥ôqbb¢Z­¦‰[[[/]º4yòäÎR¾xñâÖ­[Ÿzê©;wž9sf÷îÝ«V­úä“OØîÍï¾ûîõ×_íµ×Î;GCGÖW_}UYY¹}ûöwÞyçÒ¥KüqOÒìl¯S§N}ôÑG+V¬Ø¾}{ssó–-[!ß|ó !¤­­mÆ ÑÑÑ{÷î]µjÕÎ;¹pýóŸÿ¬©©Ù¶mÛ›o¾yáÂ…Ï>ûÌlú¦Eqîܹ;w®[·n×®]]~e`)ˆ``Øâñxì}°|>êÔ©t ñ™3gFíîîÞÙŽ>ø ³³sZZ!äá‡vvvž3g!„ñV­Z÷ÄO°Ý¼ÔÁƒÿøÇ?ŠD¢ÈÈÈ+Vœ?¾'iv¶×üùó]]]gÏžM1?loo¿{÷îçž{ÎÇÇG$BZ[[ÍŽN§;vìØ³Ï>ùØc±yî"}n¶§L™ÒíáwQ&–"´vú¨¬¬,((ˆâêêêíí-—Ë'L˜ÀÝ@.—K$öéôéÓ7oÞ¼|ùò.†SÎÎ΄¡Phô˜B„……ÕÔÔpߪªªZ¸p!ûÔÅÅ¥'iv¶—¯¯¯é§SB¡°¬¬ìí·ßV«ÕÑÑÑ]NCCƒÁ` eE fóÜEú”!„Çãq_4{ø]” €¥ ‚›Ä0Ì&MšDŸÎš5ë?ÿùϸqãØ[a5ÍgŸ}Æ GÝÖÖvõêÕŸþyõêÕýùô²²²ÈÈHBÈÍ›7iŒÇòððxï½÷‚ƒƒÉ­áÍ=I°³½ŒBG®ööö7nܸñÎ;ïìèè`ç¬2åååÅçó+++ÃÃà !4pí:ý.60{ø]” €¥`1ØŒÆÆÆúúúÚÚÚ+W®¬_¿¾²²ò o-[¶¬¡¡á/ùËùóçËÊʲ³³W­ZåëëË]{†$~÷Ýwãââ<==û““?ü°¼¼¼  `×®]©©©Ü·’““wîÜ©T*‹ŠŠÖ­[÷Ýwßõ$Á^í¥V« !:N(jµZzßl[[w–P(LIIyÿý÷+++oܸ±{÷îY³fu–ø÷ßßÙhd–ÙÃï¢L,}°`3žyæú@$%%%íØ±ƒ;FwÇŽüñ¶mÛ***gΜyÿý÷ÛÙÙqSHIIÙ¿ÿ‚ ú™“Y³f­^½Z£ÑÌœ9sñâÅÜA³Ë—/ÿðß|òI7uêÔ+Vô$Áî0zôè… þðî®®«V­Ú´i“““ÓÃ?xüøqkg¤GÊËË—,Yb+¹µ8³‡ß‡2y饗üüü¾øâ Kg†9Œ"Û€ \\\ÒÓÓ­ «1{ø#¼L`0!‚èOOÏ¿üå/ÖÎ…Õ˜=ü^&0˜Á€m@ ¶,ØD°`Á€mZ;0â44´*ÕryµBQ£PT_»VdíäåùÄŽî#‘øÇÄ„…ù„‡ûÄÄ:8àä:ÅcÆÚy€a«£C_RR'—+Šj…¢F.¯V(ªZ !ööÂQ£|ÅbÿööÚ½{ÿ6~ü˜AË•Nç¤Ñø8;WóùÚAûP› ×;¨Õ~õvvmúAEEE·ß~÷ý÷?I+FQQMEE#Ã0ÎÎö£FùEEùEFŠÄbQd¤_d¤ÈÝÝq@36,X†^oË«e²ªÒÒº’’ºÂÂ*™LÙÔÔFøQQ"ÚÏF;ÜÂÃ}<<œéŽgΜyï½÷!‡--öuuŽuuNmmB;;Cll‡‡•#ØŸöŒlòöÖX7¬ÆFÇÂBÏŽ££ÞËKíåÕîéÙÎçȩ¤I“¸«Èêt†òòNå©*-­+-­gÆÝÝ1"Â/<܇­?‘‘"WW‡È qˆ` /T*MAA…L¦,)©“ɪd²ªŠŠÆŽ=!D$r‹‰ ÷ ÷‘H$’€  O;;Uò©ÕêNœ(Ìȸ|ôh~CCkRRhjjü¼yccb¬’#AAÞ¶mÙ=÷ŒµvF~£¤¤N*Í•JsÏžU Ìøñáii ÉÉ’¤¤ÐAΉV«»q£–F³ôšHQQuKK;!ÄÃÙ½æ#‘ˆÅ"| sˆ` :A¡¨æF%%u´sÕÁAHƒU³«V¤Riºš™yåÔ©ëMÇĉéécSSÂÃ}¬µßš,«­M{úôu©4W*ÍS*›BC½§M‹IN–̘çâbµ.Ц¦6¶Ò:©PTëõ;;AP'fÙÈv¨}ãÐOˆ`à7”J•LVÅÉÉv®²!ÂÂ|‚ƒ½„Â!Ôë¥T6ed\Éȸ|éR ŸÏ›>=vÞ¼13fÄùø¸Z;kæ ñ–e00×®•egËνx±ØÞ^xÛm£RSæÌâeíÜ‘Ž}EEã­+,U4²-)©#„¸»;EDør/²DE‰¬~@?!‚¹4šzº/“ýÚ£Åv®:9ÙGGûÓyb%’€ðpŸˆ_ww'kgÙ<¹¼zÿþKRiÞµkeÎÎösæŒNMM˜:U2zƒ»f+,W]]ËO?É¥ÒÜÇsU*ux¸Ï¬Y ii “&EYk¬¸Y*•º¸¸–í§•É”r¹²­MK~;™t ñÂd›€`D`¦´´Þ¨“ª¼¼A§3ðx¼°0oîØK‰ÄßßßÃÚYîÃ0.ÜJó¤Ò\™¬ÊÏÏmöìÄÔÔ„©Sclh9[Œ`Yz½áâÅb©4/;[–“sÓÙÙ~òäèÔÔ„ÔÔø![”Ê&öb ½»¬¬L£YönwkçŒ!‚†ÔjíõëJnçjqq­J¥&„¸¸8DE‰Ø8%’€Q£|íím&äëèÐgeH¥¹Ç”—7Œåw×]I©©ñ&DØbšMG°\7oÖŸ8Q˜-;v,¿µµ]"  ¡ìĉ£ø|žµs×:™F³4²-,¬¬®n&„xx8ߊf‰íïädoí,Œhˆ`l›içªLV¥Tª!|>/4Ôû·ÝJ6йjV[›öèÑ<©4÷È‘¼ÆÆ¶¡6¥pŸ ›–¥Ñt\¸pãäIÙ?^U(ª½½]&OŽž5+~öìÄ!; ÝTSS§ŸVYRRwýºR­ÖBüýݹý´I@h¨÷Ò†D°¶¤µµ]¡¨¦7õѨµ¸¸V«ÕB\]â₸‹‹ØVçªY*•úСk™™W²³eZ­n„ˆôô±ii aaÃd‚ÙáÁr­Ê“œšŸšš0ztg{!;™äìæÍzƒ1èççfíü Oˆ`†(ƒ¹y³žÜH£V:Í’@ÀŠÑaÀ´g5&&`èÏZÔsUUM™™ÆS Ïœïííbí¬YØðŽ`YìªCk¤¬¬!+« ;[vüx~K˯«òL*¹óN±Ph{«%õVSSûÓAFŠj½Þ`vrX˜·-NˆÐOˆ`úˆžbr‡ÒÎUæMgfgö çß©­mùñÇ«Rinv¶L§Óßy§855aöìÄÐPokgÍÊÁv¦½]wþ|ÑÉ“²C‡®Êåÿ[•'--aD]ú¡ËÕr—Ë¢?;„îdÚa)²é™±z,@÷ÔjíõëJîâl窳³½XìÏïákCë^¨ÊÊÆï¿Ï¡S üiÓb†ë”Â}†¶'†Ùª<ýgº\­\®lkÓB<<œÙ[èéu4±X$ŒÜËg0ü ‚ø †aJKë¹=2Y•R©"„ðù¼ÐÐßt®J$þþþÃö>½>“ɪ22.Ó)…ÝÝÓÒÓÓÇN™íä4l§î3D°½b´*ŸŸÛ´i1©© ¶¾*E°ËÕ²·Üs—«5>LVT€,ŒhmmZ¹\É]÷¢¸¸F¥ÒB\\¢¢DlçªD0j”¯½=&S1ÏhJa÷y󯦥%ÜqG$ ­ ˆ`ûŒ®Êsò¤ì̹@À§«ò¤¥%FGû[;kCÌ®)]RRWPPYSÓLqwwŠˆð½ÕOë%rqéWÀ& ‚€‘Â``nÞ¬çžÌu®Ò¥VÙ)@GÔ½v}F§Îȸ|üxA]]KT”hþüq©© ‰‰!#jJá>CÛìª|íúu¥——Ë”)#qU‹ #¹V¶·ë!þþîÜ~Z‰$ 4Ô·À@@ C—NgP(~í\¥çLì6B¬¢suàääÜ”Js1¥ð€B;˜JJê²³eRiz½«òôŸÙåjKKëÆÌ䨨@??7kgl"X*”J=boÄb;WÙåØÎÕà`/ óóÏ722®H¥¹¥¥uþþóæIO3aB&tˆ`­B­Öž:u]*Í=z4¿²²‘]•gúôX77GkçÎæ©Tšââv™L©PT·¶¶s#££ýqQ z,XFÓÁ.µÊ.`H;Wœì££ý¹ç7¾îîNÖÎò0g4¥°X,º÷^L)<ÁZwUBȸqáii ©©  ¦%³¤¦¦6v( lŠj½Þ@8#Ùk” ]@ ‹a˜ÒÒz£1fåå :Çã……yÓ5nÍ ìïïïaí, ì”Â'N67k0¥ðàC;t44´ž:u=;[vèеššf¬Ê3ÐLG ³+œÙÛ #"|i4Kÿââ‚Ð="X°¤¶6­\®äÎóQ\\«R© !..QQ"zÏ*ZGòÅy¡UTW78ð‹Tš{þ|‘ÁÀLŸ›šš’Œ)…"Ø!ÈtUž‰#RSîº+)(«ò ,Óåjåre[›–ÜÌþ‰„‡ûÄÄ:8àO`ÄA }dÚ¹Ê^>çóy¡¡Þ¿]B«ÖwãFÍ?ä>œ{éR‰££ÝŒq³fŧ¦&xzb,«A;ı«òde47kØUy&MŠÂ<çƒF©lbï7¡SÐÓåj…B~p°—Ñ, aaÞ˜— `xC =ÒÚÚ®PT³«……UÅŵZ­ŽâêêD‡£suúí”ÂNii ééc““%ŽŽvÖÎ ‚µ:áÒ¥b©4O*͕ɪèª<ÉÉ’´´D‘óë6:™F³4²-(¨¬©i&æF ÇÇ»º:X;Ë`1ˆ`À˜ÁÀܼYÏžШ•N³$ð£¢DÜ3ƒ˜˜¬a3ét†3gä‡çÒ)…<î¾S Eˆ`mVåšL—«•ɪ4šBˆ‡‡3»î½Ò%„ö6 ,ÀH×ܬÉϯ ´hÔÊ®aãççÈ]¡>(Èç†2­VwâDaFÆåcÇòëë[££ýï¹gì¼yc13Ó…Ö¦©ÕÚŸ.>|8÷àÁœŠŠF__WzW9Vå"t:CyyfÙuÚ¸ËÕr§Äd[`Ñë ry5ý gW5 «ööB¬†…ù°ªÑ¹j+š›5?þx53óÊ©S×5šŽ‰#ÒÓǦ¦&„‡ûX;kÐ D°Ã»*ÏÙ³ †a°*Ï¥Õênܨ¥…4²-(¨lnÖBÜÝ""|¹…QQ"Œ@ZÁ [ÕÕÍ……•Ü©/ØÎUÓÅ÷йj‹”JUFÆe£)…g̈Ãt©6ìðÓØØ–-ËΖ>|­º«òأȅ…UEEÕ:˜,‹p;€!‚ÚÛu4X5í\ut´»¬ú³3£sÕ¦Õ<˜søpîÅ‹ÅNNösçŽNMMHN–`Ja[„v3˜k×ʰ*2]®¶‹ÈI€¿¿»µ³ 0R ‚°=ô”{WOyyƒNgàñxaaÞFwõ{a²Ša€a˜ n°ó úúºÎ™ókàŠ)…m"Ø¢¶¶åøñü#GòNœ(P©4áá>³f%¤¥%`UÛ¢R©‹‹k¹×‹ŠêÖÖvrk¹Zîõb±ØßÙÙÞÚY†Á ijµöúu%wmw¶sÕÙÙ^,öç®íáëîîdí,ƒ%±S >|íæÍúÀ@Ï»îJ”Â6íø$?¿’}Z^Þèííâäôëe¡Pðï/ DݰŮʓ-Ëɹéé霜,¡ÃŒÑ‰g£ššÚØÑO4²U(ªõzáܳÃNˆêÍçc²(€~A 0T0 SZZϰ$“U)•*BŸÏ õ¦~ì%^kg ;¥ðÑ£ù ­I@zúL)<<¼÷Þá·ß>ØÙ¯Xìòä_7G`5ÜUyt:}bbHr²$55þ¶ÛFaF\›fº\-û‡NG sÿÐcb±¤0@¯ ‚°Ž¶6­\®ä.[W\\£Ri!®®‘‘"¶sU" 5ÊóŒ*•æÐ!L)<Ì•”Ôýîw¯šýó ýë]O?=cðsÖÕÙª<Ӧź»cUža‚NÅTuýºR­Ös#££ýœ0ÀœûóÏÅÂÛn•šš0wîèà`¯ž¤ —WoßžõÒKó15®2Z®–vØj4äÖdî´ŽI樇á , +¥¥uaauÇ`mmK~~w¨OEEcG‡ž"¹ÅÄÒ¿ ú‚ÎÕ‘C©T­\ù¯sçŠù|’“óŠ··‹é6ú¬¬©47+« ¬¬!"Â÷î»Ç¤¦ÆcJáë¾û¶œ;§ ³•RÿÊ•—ÍÖV]]˱c½^•gëÖ㯼r 4Ô{ÇŽGÇŒÁhäá@§3”—7-­G—« ùÁÁ^l4KOK¼hz°ÖÖv†!®®½‚ÐOˆ`a˜¨®nþ¿ÿ;¼oß™œœ—ûßÕ©ÓŠ_;WÙ)òi窃ƒ«è\BHfæ•?ÿùÓöv½N§øo¾yÿÃObßmkÓ=š'•æÒ)…“’BSSã1¥0B>ÿüüêÕÿ¥w»B~rrô§Ÿ®´n®À†èõ†‹{º*Ï‚ïŸ?ƒÇãñx¼uëæþá3q;å°¤Õênܨå Ëϯhii'æF ÇÇ[$ì6--aà€ÍinÖ$&þƒþÎBx<Þûï?¼páDëæ lTiiÝÉ“2©4÷äÉÂŽãUyššÚÿÁŽZøqq;v<ákÝlÃà0]®¶¨¨šÞ‡o4Y" ˆŠõö$gÏžì ¾%„çááüüós-ºcÐ` !‚¦Ri>øàÈ®]'†Ð©’ø|Þ;ï<ôàƒ·w¶‹FÓÁ.µÊÎþG;Wœì££ý¹sÙGDøº»; Þñ€í()©{â‰=UÜQ „€Ÿ’wúôu­V7qbÄܹIsæ$"p³|Ï‘#¹ô<ÒÁA˜›û*îQ„~R©ÔYY…ÇŽå;–_[Ûæ3cF¬››ãGc;ü !B!ßÎNðÒK –,¹Óйk¡“Eqן§}¶äÖrµ4š¥£Ìºü _ïÝ{†^ãóyÞÞ®ëÖÍ}è¡;p¹"X°Iííº]»N¼ÿþ¦ƒíÄ „ØÛ žzjúßÿ>Â0Lii½ÑtyyƒNgàñxaaÞÜh‰ÄßßßÃz¶„;rØè->Ÿ7ztÈ#ü.--Ñ×ká@W23¯¬\ùoƒ sæŒÞ±c™µsùðŸÃÒIDATà »*Ïùó7ôzƒÑïGæÎMzûí==q# •J]\\ËöÓÊdJ…¢ºµµâîîá˽**JÄν¿páGgÎÈÙtx<ÂãñBB¼_xaÞ¼ycèæ[áÁ‚Ñé ÿýï¹·Þ:ØÐÐjÔýEáóy&DÄÆ*Õ E5]sU(䇆úˆÅ"±Xé%‹ý]@˜Ž6"òçͳeËÒÁÏØœöv]B mmZìÙ³|öìDkç†!ƒ‰A¥R›}W(x{»lÛ¶tÒ¤¨AÎ }úÒÒ:¹¼Z¡¨.*ª)*ª‘Ë•µµ-„;;Ah¨wT”H,íÛwÖ´‚ñù<ƒDG‹Ö¬™“ž>ÖÙ‡á ,Ø †a23¯¼öZfii=}jv3??·ˆ_±Ø?*Ê/2Ò/:Ú?,Ì·d@ÿu6r؈³³}~þk¨rÐÏ<³÷Ûo/:9Ùçæ¾Šå”` \ºT2oÞÿu±ÒiÕªëÖÍÅtK¥RÕ(Õ EMQQõõëÕùù•„˜?%øz½aüøðü#WIÀ‚~ÁVTTX1+]ÈÉ)÷Ýã×®Uòx¤ë«.B!ÿôé?[p…’   þìÞÐРV›¿ø 6ä§Ÿn¼ðBfs³¦'oÝúÀm·õn:±æåååäÔ÷›ºÕjuCCƒóÔ™37ž}ö«{ï½~ýkçerrròòêÑr©5ÇŽÓ{öœ¥·[w-))èµ×ÒŒç1†‘©‡ÿùù3gnîz>ŸÇ0ÌÌ™±Ï<“âi¡ ÂÈbt6þ›+¾2™lp3Ð=†aŽ-ùú낦¦vBˆ@À7³8)ÎpæÌ‘Èbk*ö3‚­¨¨¨©©±Tf`ð1 “™)ß¿_ÖÖ¦ën[ž@ÀÓë™o¿½àáÑ>™ë±øøøþD°ÍÍÍøƒ77ûøxWï@ðóóëg; jþ¡C¹z½Ïç <ÚoÁ0Ä`0˜^ ¾zµbùò½+VŒ‹ÅäsÐÓ ¹¼šÇëjD§@ÀcÂ0äÈ‘‚k×n>öXÒèÑ"‹æF„®"XBH||¼H„ŠCKJ Ù´‰47kòó+d2eaaÕÅ‹ÅyyåZ­žÏç …‚Ž=÷×Ó×7rúô¸þnuuu^^^ÿÓñóóKHHè:`-)))ï¼C!z½¡¥Ec00*•†a•Jm00ÍÍô5Ãz/··ËôéIVÎ4GVV–EÒ™>}ºEÒ®gŸež~zç´¸ÜÜ\K%e»5_£éˆŠ’%%rwwrq±wqqpqqpwwrsstv¶wqqpuupww¢°’'°zþ¯!—W …|vNM>Ÿgo/Ôjuãêêê:nܨ;îˆNJ ŒôÃ0uè³gã¸ël†››ãí·GÞ~{$}ªVkóó+ssËssË/_.-,¬jo×Ñ1ÆEE53fX ‚0"ð=<œ !^^ëä‡nÅŠé_a€8:ÚíÝû”µsÃÙ5:žÏçÑuôèà¤¤Ðøø ÄÄ`±ØÿôélôÁ@@ ¶ÊÉÉ~üøðñã½ÛÐ``nܨÉÍ-¿v­Ü˸€m@§Ø®ï5kæ&$%$÷kÐ>@Ï!‚…a‚ÏçEE‰¢¢D÷Ü3ÎÚyþÖ­›kí,ÀHd±ùZ"X° ˆ`À6Øv[ZZúØc½(—Ëy¼~ÍëÈ&Ë㈈ˆXºt©Ñž­­­k×®3fŒ››Ûm·ÝöÚk¯ét¿®Éãñ¢££Èš;w.Ç“Ëåtú oú˜¡o¹2[---kÖ¬5j”““Sttô‹/¾¨Ñhz¸/ô“­·,SýÉvõ¿|P™-ËÖ«q¯~Qíeë5Ÿåää4yòäË—/÷'ÛÝBÛ.³ÍÇûõ}f›‰‡‡Ç¼yónܸaº}†Y²d‰««kÄ„i…1[…:;´Þ&>Ðl;‚ýî»ïæÏŸ? ÉþôÓO•••eeeü±J¥?~|cc#}«¹¹yâĉ.\xóÍ7/^¼ø·¿ýmß¾}©©©zý¯‹b_¹r…M¶¡¡áäÉ“Ïí@+**òõõíážžžÏ?ÿ¼E>÷ÙgŸ½téÒ×_]ZZº{÷îýû÷¯]»Ö")C·l½eÑĹ,~,ÔU~°[¯Æ¦ºþUDµÊÖk>[“srr¢££|ðA£ˆ×âÐv€ÕEóéÉ×gÚL***Nœ8a0–,YÒí§s?¢¢¢bß¾}¦ë ›¬™ ÇñãÇ•J%c;î¾ûî¶¶6£¯_¿nt\}N–rýúuöuƒÁ0uêÔ 6ЧkÖ¬INNÖétì---;wî¤ûΙ3çïÿ;ûî¿þõ¯¹sç²i%Þ[ý?LK}Pÿsb¶(<==Ïž=Ë>=qâDXXX÷µ¥Ryüøñ~&ríÚµk×®Y";ƒg$·¬^±l3¸œ÷ÿ·Ý"ma ¿jÜů"ª½)‹üö¢æ›&;˜5_©TBôÔmÇ,KEÃ#² Ì~}F/vÖLÊÊÊ!MMM]×î»?Ï7­0ì+=9´Þ&nAf‡{×{àÀààà††BÈgŸ}&‘HZ[[ !k×®õ÷÷‰Dk×®íèè ]ÏG ËÊÊzñÅÃÂÂüüü–.]Ê^¨3Ý‹’‘‘‘””äèèùÉ'ŸBt:ÙÝkkk]\\œœœôzýæÍ›%‰››ÛäÉ“Ï;G7hll|ôÑG}}}CBBÖ¬YCG[ñx¼={öÄÅÅùùù½ñÆŸ|òɨQ£<<<Ö¯_o”¬éáóx¼•+W~ÿý÷ôéÞ½{7lØ üo)?—µk×îÝ»—>½ÿþû¿øâ æÖµÃ¯¾úê¾ûî3[°]çŠæþýûcbbD"ÑsÏ=×ÞÞÎÝÝlIv{¤íµoß¾¸¸8ooï·Þz‹2iÒ$BH@@Ý+33sܸqÎÎÎo¼ñ†ÑÜ!•¿Qúqwwß²eK]]}:uêÔ’’³[>|X,{yy½þúëW·eh]hYÔ²º-äÎ ¡³’7ªB¯ü6]™Qº÷üW±ë/ÕÞ²Pó®æÛÙÙÙÛÛ{xxЧ¦g Ä\cfÛ¶mñññîîî3fÌÈÌ̤µÔlÙöêkEÛ±¸¡Ù|¸ßû¸³¯ÕE3¡-‚NOu}FmtúmZI¸rêÔ©n[qº=4Ó245ص‘ÎöäJÉÒ¥K—-[VUUåïïîÜ9úâ›o¾¹páÂÒÒÒœœœñãÇÿõ¯¥ûܹs;¶qãÆ„„„œœœ«W¯ÞqÇkÖ¬él¯––‡mÛ¶UVVîÞ½[(¶´´lÞ¼Ùìî{öìùä“O†y÷ÝwE"Ñ7ß|SQQñý÷ßÑãZ¼xñÌ™3 ENNNbbâÆé/æ¢E‹T*Õ®]»!<ð€J¥Ú¾};!¤¶¶–›,cîŠÂ… <==†¡­¦¦Æ¨|NŸ>íïïO÷-((øå—_†illtvv®­­%æ.4v+Z˜iii2™ììÙ³b±xãÆÜK#¦%Ù“#íl¯û¡¡aç΄ºº:î©T*{{ûǼ¬¬ŒþUWWwvŨ³ò7Jßl93 sèСàà`‡ÔÔÔÍ›7›­„yóæ©Tª¯¿þºÛâ2z±ójþ«ÁìƒE˲`˺|ùróouVÈBg%ßE3ì[åç¸Ê6Ý«¾¾ÞÎÎîí·ßnhh0 ÍÍÍz½¾³Ý.\X__Ï0ŒD"ù׿þÅfæßÿþ7!D«Õ ößë›o¾‹Å´ˆ/]ºÄ0ŒV«5zL¿E6Y¦O?ÓgΜñõõe÷ýÃþð·¿ýa˜½{÷¦¦¦rÓ4Š`»È·0†ùüóÏÅb1·¶™–dOŽ´³½h-1útºY{{{~~~KK‹^¯?qâ„éìã.Êß(}³åLétº³gϾüòˉ‰‰`ß¾}¦ÛB²²²†¡÷Øt]\F/š¦fd0#X´, ¶,SrÏ˰ÛfØ·ÊÏ5p•yÐ"XTãøƒàêìWÕÞÔ`F°¨ùôîêêš——G1{˜«c‰‰‰Ü†O?ý”ÖÒÎN{ÐvL f;›Oß"X£f²³³›6mšQ¬Øó3j¦“JbôÍvÛŠMkûJׇf¶ ¾Ä­–‰`†yùå—wKGGGîWåááA³¨Õjé»W¯^5MÇt/†aN:uß}÷¹¸¸$''ÿðÃíÞÜÜ|Ï=÷ÐÇNNN—/_fßúå—_!7oÞ$„¨ÕjúbNNŽ££#c7=æ&˘û²?ýôÓ &ÐÇR©Ô(c[·n={6»oVV–X,6 óçÏß¾};ÓÉ J×ia²ÇråÊGGGnm3[’ݦßÙ^………¦ŸÎàþýû§L™2vìX:ÙZgí­‹ò7Jßl9·´´|öÙgì4ƒaýúõÁÁÁŒ BˆL&ëaq½hšš‘A¾-‹>¶`Ëê¶{^†Ý6þU~®«Ìƒy,ª1}lñjÜõ¯"ª½©A¾5Ÿ>¶`Íomm]½zõ¤I“ØtLÏ@suÌÉÉéÊ•+ì^t6ãÎÊmǬA¾v¨5î7%“ÉH"Øn›‰iÊ=<£f:©$ÜaºkÅÌo+ Ã0ƒ}«ÛàÜ´ hm´À}°„›7o~øá‡³fÍZ½z5û¢¯¯/[R gÏž¥¯ÛÙÙB‚‚‚Š‹‹é+—/_~õÕW;ÛK­V †/¿ü²¾¾~ùòåéééõõõfwÿñÇçÌ™C_ŒˆˆàÎk—››Kñ÷÷EEEôE…BÜíÑq“5Å0ÌÖ­[ï¾ûnútñâÅ/¿ü2;½!¤µµõÍ7ßä¦0eÊ”æææS§NI¥Ò~Î H¿uBˆL&£ÃX•×:Û‹Ïï´V¨Õêx`íÚµ—.]Ú²eK‰wQþ]¤Ïbæá‡¾zõ*}ÊãñfÏžmtÿËìdßf‹«‹2´:´¬AhY¦…Üó2¤¯÷¤ õ§òÛzeF5¸jÜ«_E.TûA€š?5ßÙÙùÑGÍÍÍ¥çÄ]œÕ±ððpz¼T~~>}ÐÛ“%´Á1›E`ËËË{r]7S=?£&]VZ =Æ]ð&??_(†††ö$«¦ehºÙ`×Fn8Û핽^?kÖ¬W^y¥¾¾> àÀôõçž{î¾ûî£3¤ßqÇÏ<ó 7pñÅ“’’®^½zõêÕÉ“'?ùä“í¥V«¿ú꫚šš;v8::ªÕj³»/Y²¤¼¼œ¦óÏþS$}÷Ýw•••ŒŒŒ$·þìgΜYTTtõêÕ„„:Qéò7Yú";e|VVÖ½÷ÞÒØØHßmjjЉ‰™6mÚÁƒe2Ù7ß|“0yòdFÃMüé§ŸŽ‹‹KII1úЮsÂ}L 3%%åúõëçÏŸŽŽÞ°a·„MK²'é÷p/úAô¶††wðàÁÖÖÖuëÖB.]ºÄÝ€›«ž—?1™Ëža˜eË–I$’ÌÌL…BqúôéI“&ýéO¢;îܹ“ýzU\F/vQÕ©AëƒE˲lË2]¡³BîyvQ¯úSù§2N,ªñ€Vc¦Ë_ET{SƒÖ‹š?@§F ÃйÊT*ÓɈ٠ðÁ!!!‡ª­­=zôhLL Ç3[¶ ÚN'­vh6ºÄñîÝ»›šš,X@8}’F_ûÀ´™pk2‹Ý¾WgÔŒ¹Jb´A·§ý6lˆŠŠÊÈÈ(**:räȸqãüqn®:;4³eÈXûl¼wì|0fÌÚaýí·ßÒß*•ê±Çóòòòññyê©§Z[[¹ÅªÑhÖ¬Yäáá±hÑ¢††úºé^ Ã|þùçQQQööö±±±û÷ï7»»V«½ë®»Ø\étºÍ›7‹Åb—;3^§a¦¾¾þ‘Gñññ üóŸÿL‹»‹/8//›,}‘ºxñb£òiiiY½zubb¢³³sBB¦M›Ø9¸Ùij²²!}ô‘Ñë½`wíÚîëëûì³ÏªÕjn ›-ÉnÓïá^S¦Lquu¥/¾ûî»ÞÞÞ¡¡¡[¶lY´h‘H$ânÀÍUÏËŸ˜ _ëÆ“’’œœœ"""žþyvÔAŸ‹ËèE¦;ƒÁ¢eY¶e™­Qf ¹çeh¶ Y¤òBeœÕx@«1Óݯ"ª½‘A‹`QóèÔˆa½^ïîî~ãÆ úÔô Älæõzý{ï½åáá1gΜýû÷ûùùuV¶h;f Z;4›Ã0›6mòôôŒŠŠÚ¿?ý\³_ßõ[CyM›I×,Ó›3jÆ\%émÛÑÑñÖ[oÅÄÄÐ)…_xáZ>]ÝÀ´ »ýÄ>ç1œÖ›••/‰Ì¶g°¹\Ítò; FÌWßʰºº://oúôéýÉ˔ПDÀê¬Ò -U™ûÿÛn‘¶6Ǧ«½E~{QómQfffhhè˜1cèÓ¯¿þzÓ¦MôNàAcÓm‡X."@d1b ôÙx¯ïƒšrrr–,YréÒ¥¶¶¶³gÏ®_¿þ‰'ž°v¦À’„ÖÎtÏÝÝ}ÅŠÖÎ…Í0[\(Cè'«T!Tf°.T{°EëÖ­kkk›?~MMMddäã?>Dª±U>m¬b k#Ft £ˆaxÀ(b0Š Ï0ІŒ"†l"X° ˆ`À6 ‚Û`¼šNcc£N§³JV†š––‹¤£Ñh***,’€¡ƒ Ñh4ŽŽŽI 5 ÏY@?™=7Ž`ñ3 `qÍÍÍÍÍÍÖÎ@Éd2kg ,Á¢æô" ¿Y`ÈÂ}°`Á€m@ ¶,؆ÿ‡DaÀë ÏIEND®B`‚XQilla-2.3.0/docs/dom3-api/inherit_graph_7.map0000644000151400015140000000121311653571066015743 00000000000000 XQilla-2.3.0/docs/dom3-api/tab_s.png0000644000151400015140000000027511653571065013777 00000000000000‰PNG  IHDR$ÇÇ[„IDATxíÝë ‚P@áKg"%(IE|¡%¦I¡7iÚlmÐ" ÓäÛC¼ÞòÛ“\.dåOZ̤ÅBr‰/¿‰(ŸˆÎ#a6⟂ôŽ› 8q÷ØÇëÐaF-û°Et¿Aó4¯fçÖlŠ]±¶äJjJC¢%Š!¿<Å#üÀÄ«IEND®B`‚XQilla-2.3.0/docs/dom3-api/DOM_8hpp.html0000644000151400015140000001172411653571065014446 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOM.hpp File Reference

#include <xercesc/dom/DOMAttr.hpp>
#include <xercesc/dom/DOMCDATASection.hpp>
#include <xercesc/dom/DOMCharacterData.hpp>
#include <xercesc/dom/DOMComment.hpp>
#include <xercesc/dom/DOMDocument.hpp>
#include <xercesc/dom/DOMDocumentFragment.hpp>
#include <xercesc/dom/DOMDocumentType.hpp>
#include <xercesc/dom/DOMElement.hpp>
#include <xercesc/dom/DOMEntity.hpp>
#include <xercesc/dom/DOMEntityReference.hpp>
#include <xercesc/dom/DOMException.hpp>
#include <xercesc/dom/DOMImplementation.hpp>
#include <xercesc/dom/DOMNamedNodeMap.hpp>
#include <xercesc/dom/DOMNode.hpp>
#include <xercesc/dom/DOMNodeList.hpp>
#include <xercesc/dom/DOMNotation.hpp>
#include <xercesc/dom/DOMProcessingInstruction.hpp>
#include <xercesc/dom/DOMText.hpp>
#include <xercesc/dom/DOMDocumentRange.hpp>
#include <xercesc/dom/DOMDocumentTraversal.hpp>
#include <xercesc/dom/DOMNodeFilter.hpp>
#include <xercesc/dom/DOMNodeIterator.hpp>
#include <xercesc/dom/DOMRange.hpp>
#include <xercesc/dom/DOMRangeException.hpp>
#include <xercesc/dom/DOMTreeWalker.hpp>
#include <xercesc/dom/DOMLSParser.hpp>
#include <xercesc/dom/DOMLSParserFilter.hpp>
#include <xercesc/dom/DOMConfiguration.hpp>
#include <xercesc/dom/DOMLSResourceResolver.hpp>
#include <xercesc/dom/DOMError.hpp>
#include <xercesc/dom/DOMErrorHandler.hpp>
#include <xercesc/dom/DOMImplementationLS.hpp>
#include <xercesc/dom/DOMImplementationList.hpp>
#include <xercesc/dom/DOMImplementationRegistry.hpp>
#include <xercesc/dom/DOMImplementationSource.hpp>
#include <xercesc/dom/DOMLSInput.hpp>
#include <xercesc/dom/DOMLSOutput.hpp>
#include <xercesc/dom/DOMLocator.hpp>
#include <xercesc/dom/DOMPSVITypeInfo.hpp>
#include <xercesc/dom/DOMStringList.hpp>
#include <xercesc/dom/DOMTypeInfo.hpp>
#include <xercesc/dom/DOMUserDataHandler.hpp>
#include <xercesc/dom/DOMLSSerializer.hpp>
#include <xercesc/dom/DOMLSSerializerFilter.hpp>
#include <xercesc/dom/DOMXPathEvaluator.hpp>
#include <xercesc/dom/DOMXPathNSResolver.hpp>
#include <xercesc/dom/DOMXPathException.hpp>
#include <xercesc/dom/DOMXPathExpression.hpp>
#include <xercesc/dom/DOMXPathResult.hpp>
#include <xercesc/dom/DOMXPathNamespace.hpp>

Go to the source code of this file.

XQilla-2.3.0/docs/dom3-api/XPath2Result_8hpp__incl.png0000644000151400015140000003222411653571065017316 00000000000000‰PNG  IHDR uö‡dbKGDÿÿÿ ½§“ IDATxœíÝy\×ú?ð“…°ïPYÑ~­{—‚¶V[¯õöjmë÷Õ[õ«öV­]´µ­·ËµX×þÔ¶Vª"(^ÑŠVm­¨‚PÙwÂIæ÷Ç´Ó˜Í!Ÿ÷_!dfΜ<™Ì“yæEQLÛÐ Ý@‚`&à˜ $xf‚kè€.EGGº ýÝ¿þõ¯I“&ºÐO!Á0+çÎ áóù†nH?•™™ùÊ+¯ºÐ!Á07óçÏŸüðÃÄÄÄÙ³g¿ÿþûB¡P~+?ýôÓÞ½{½½½ß}÷]Š¢t´‹Ú¶ Àü Áèw^|ñEGGÇ]»vB¾ùæWW×矞ù¯“““‹‹‹«««¿¿ÿêÕ«óòòÚÛÛU®G&“1 ›:[¶l©­­Ý±cGRR’P(ܱc‡üV\\\¼½½W¬XQVVÖÜܬ£ýÓ¶mæ @¿Ãår×­[—žž~øðáôôôuëÖq¹\•¯d³Ù„©TJùõ×__yå•™3g&$$|÷Ýw„•+WBž}öYæõYYY‹-Š?|ø0!D"‘\¿~}éÒ¥ƒ òòòzùå—ÿýwå­p8.—kkkKÿ)‘H’’’æÍ›7oÞ¼¤¤$‰DB¹zõê²e˦OŸþ /œ={–<^©\™©Ü6y í¤¿råÊ‹/¾8oÞ¼/¿ü²««Kå“Úw2€A ÁèŸ{î¹={ö¼ôÒKƒ–ÿWGG‡H$joo¯¨¨ø÷¿ÿdooßÞÞ¾qãÆ€€€C‡½úê«»wïnjjÚ¹s'!䨱c̲׮]Û½{÷Úµk÷ìÙ# ÙlöÁƒCCCéÿÞºukÀ€ò[‰Dõõõ{÷¶°° ÿ•œœ\YY¹k×®O?ýôæÍ›û÷ïïèèØ¼yóܹsøá‡_|ñã?îèèмƒÊm“§ÐNúÉ'NlݺõÃ?¼víÁª{Àh©þÉÌEQ>d³Ù¥¥¥ ÿúûßÿN?àr¹¡¡¡ï¼ó!„ÇãíÝ»—Ïç[ZZòù|BH[[›òjŸ{î9›ñãÇBZZZHioo?tèÐÏ?ÿüÞ{ï)l…bmmýõ×_3¦§§ïرÃÅÅ…Ïç/_¾<))éù矧(J$ñx¼™3gNž<ÙÒÒ²7»¯ÐNúÉW_}ÕÛÛ›nÛž={¦M›¦üä’%Kz³]€¾† ?:wî\vvöŽ;Ö¬Y3iÒ¤qãÆ1ÿ:tè•Éãr¹eeeŸ|ò‰H$ P·ZWWWB‹Å’òüùóIIIcÆŒIJJrrrRØJggç¾}û>þøãÿüç?ô¿ªªª˜ÅmmmíííwìØ‘œœ¼ÿþÀÀÀ^xá©§ž’ßDwhQÙN:‘#„øøøÔÖÖjxÀh!Áèwêëë¿üòË+V„……-Y²äÓO?1b„ƒƒƒ†E:;;7oÞ¼yóæ±cÇvuu¥§§«|™BÊD9zôèÉ“'?üðCui¡¥¥åÌ™3ÓÒÒ(Š¢wttܱcþµ¶¶644tvvÊd²Í›7K$’óçÏoذáĉôâR©”ÃáÔÕÕu«”ÛI)++£‡}ôèª{Àhá<€þ…¢¨O?ýtÈ!±±±„ 8;;ñÅš—êêê’H$\.W,ïß¿Ÿ ­)‰Ô-ÕÖÖ¶wïÞ¥K—ZZZ–þIùe¶¶¶íííÌz&L˜°{÷îêêê¬]»öĉ,kÍš5—.]jkkëêêâr¹–––vvv„³g϶··«»×ŽYç©S§TÖ”ÊûꫯÊËËïÝ»·gÏžèèh O-\Áè_Ξ=›••µoß>ú*—Ë]³fÍÊ•+'Nœ8qâDuKÙÙÙ½úê«ï¿ÿ¾µµõ /¼0uêÔµk×&''1"!!áôéÓ*—*..îììd]¸pAáeîîî666B¡ÐÆÆ†²lÙ²¯¾úê•W^a±X'N\¾|9Ç[¿~ý®]»jjj¼¼¼6mÚÄãñx<Þ²eËvîÜyèС×^{í—_~‘_§§§§|Û>ù䓈ˆf N•¦M›öÖ[outtL:uÑ¢EtA¦Â“0,ÝN, †Åb±6mÚ4yòdC7Ä””——/^¼X!óTùäM™2åÈ‘# ,Ði´…M3ú;[[Ûøøxmž0rHð ¿srrúç?ÿ©Í“F €™@‚`&0M€Î°ÙVçΕÛÛçxøúºZXp Ý"è_à˜ƒ¦¦ö»w+ ªx¼†nK¿ÆáØ_¾\–¶baÁññq ô:”ïïïà1t(ßÁÁÊÐms†Àô´·‹‚ª{÷* ªîÞ­,(¨¬®Bìì,-,< ݺ~­««vóæÈyó**š‚* êáÃúk×8p¹µµ“âà`íççæëëèèèéïÏçppÇè<c×ÖÖ™—Wž“S&TT ÕÍÍí„;;Ëà`¯°°AqqáAAžŽŽ6,ÖG„Ì6t“û; ޝ¯«¯¯ktt(ódss;ýöT UÉÉY¥¥ EYXp¼¼œèdNüBBÚÙY°ý`ºXEº ð—ŽŽ.:‘£3: Š¾:gee1b„wPg` gPg` ‡‡‡£òâ,kÈ!ÎÎÎ=nE±;:\Øl©¥ecÏwÃdµ·àrEM,VO¿qãÆ‘#G,X Í‹…BQIIÝÇõA•@Pýðaý½{•b±„âèhC'íôÛíããêããÂêY› ?A‚`HR©¬¨¨†Nä茮¼¼Q"‘q8ì¡Cùaadtž:s¹O.äÓ2µPFQ¬¦&ËÚZë†k©”ååÕ:xpsÏVÕYYC†4»¸tèÓ´Û·Ý[Zx2WW‘››ÈÑQÌbuï‹òÍ7ß;vl϶ÞÕ%•¯í,(¨º{·âÏÚN+??w¦¶Ó××5(h€¥%*qà1Hðô‡¢¨ÒÒ *'ç]ªW\\ÛÕ%e±X>>.žaaÞt:7dˆ»~`”Hd.ÜMMÍ>{öN{»xʔุðéÓCmô°ue^^o&%-™=; [§UV6:•“‘‘wõjÇ?> ..|Ö¬0[[ÔM2µ^ë«Bm'¨ƒ ÕÖ¶ÐC¡Ð]II­PØAáóíÃÃ}=é2Šöºº¤™™÷¦:˜1c¸ƒƒµ¡›Öm¦›à1D"ñåË…©©Ù§Oç0™ÞìÙ#ù|ÓËôb±¤¸¸ŽNö˜Ä¯££‹¨ªí4ÈÅhk€Ì<0Ìh(A5=1†¢=fªƒ´´ÛÍÍ¢¨(¿ùóGÇÆ†9;Ûºi=g £££ë—_©©Ùéé¹"‘xÔ(¿øøˆøøC7Mj;>¬¿{·¢®®• ¶À à€¹Ñ< }Ò6ÈØFCé–œœGGf¥§çTT4á=þ蘘:º]:`N ƒÉôΜÉmog2½pÓúAA¨í08$x`ÚL}4”n‘ŸêÀÏÏ-!a”qNuÐf™à1:;%—.¤¦fÿ÷¿wÚÚ:éLÏæ—ï;LmçŸ×úªQÛ Ð§à€‰aFC¡3º‚‚*z4wwûaÃLf4”n‘Ÿê€Ï·9~TXØ C·«O˜w‚Ç`2½³gï…žññá Q~~n†nZŸS®í¼w¯²¶¶…ÈÕvúø¸Ò¹_@€‡µ5ÏÐM0%HðÀ¨i …žzŽÎèLb4”nihh;vìFjjö%vv–³gLLŒ2æ)ìt¢Ÿ$x ±XríÚƒ³góNœ¸Y_ßJgzÏ>;jð`wC7M¯š›Û>ü럆ÚÎaØâÀ¤zƒŒˆºÑP,-¹AALw4”na¦:¸x±€ËeÏš1iRg2SôFKðR©ìÆ’ÔÔÛ))7ëêþÈôæÎ:”oè¦FW—ôÁƒZùÚÎÂÂj‘HLqt´ñõýãj; ÁƒQ ¥¢¢©«KjN£¡hžê 99ëܹ|‰D:yò°ÄĨiÓBú[}Z¿MðL¦—šz«¦¦…ÎôæÌ‰ô÷ï§™ž¼êêfúz>]ÛYPPYSÓB±°à ìŽÚN‚ô‰XÏìGCÑEQ—/=zýܹüæfÑøñ‰‰QÑÑ¡NNæVqª%$x &ÓKKË®®Ò™^||D` Y «ÓKòµôµ¾¢¢j™Œ"„xx8Їº¶3(h€IOE %$xÐWúáh(ÝòûïRSoÓSŒ=8>>"66lÀ'C·ËÀà)“ɨ¬¬âÔÔÛii·««›=££C££CÆŒbè¦#-k;éûú>®ÑÑ¡ññáÈôžˆ®íüóZ_•@PEßß«\ÛéïïacƒÚN0aHð '0JwUW ““¯=š%Tyx8&&F%&F™Ùv:O2uçNYFFÞO?Ý()©4Èeúôáññá£Gf±p=J+ʵ÷ï×H¥2ògm'=;ý㔇‡ƒ¡Û  -$xðdò£¡Ð×èèÛçØl–¿¿G ¥[ä§:pv¶;72>>Üì§:è $xÝUPP•––}ìØÍââZooç3F ÓëåÚ΢¢êövÕµþþ|Ç:0FHð@Í£¡þ‘Ñõ«ÑPºE~ª NL̈~5ÕAo Áë1:Ó;~ü惵:Ïœ‰LO4Ôvzy91ÇCÔv€ñ@‚¤¾¾5?_Åh(nnvÁÁ^r£¡¸98Xº±F™ê ##O*•Íœ9"11j„@++ C7Íd Áë=:ÓKI¹UTTãåå†ëÆ:¤}m§«¯¯«¡Û ý<€~G~4ù¤mlx¡¡1JÈOuÐÚÚ1eJp\\øôé¡èÀ@‚§Ct¦wòdvaaµ««Ý”)Ãâã#¦L FµnuuI+*š˜ª úþýš¶¶N‚ÚN0$xfN,–Ü»§i4&£Ãh(=@OupútNUUsT”_||D\\¸§'z²çàõ:ÓËÈÈÏÉyäâbûÌ3ÁÈôúšBmgiiýÇõDUmçС|[[KC·Ì<³¢ýh(^^N¸}®Ç<¨=~ü}aÄߟÿÜscæÌ‰ôöv6t»Ì¼>õða}FF^jjöõëÅÎζS§ÇÇGLž< G=@m'è<Ó&?Š@PýàAMkk'FCé#òSøúº&&FÅÅE`ªÝB‚§¥¥õgÏæ¥¦fge•8:ZO›‚LOÿäk;éÜ/?¿‚®ítp°öósCm'ô<S¢0 3™83 }nذ E‡êë[¿IOuàêj7{öH YÑwàéYYYã™3¹t¦çà`LÏÀ´©í¤ïë ˆÚNP†Àx‰DâÜ\Œ†b0mm§OçÐSðxœ¹s#£FòÃè} ž¡”—7¦§ÿ‘éÙÛ[MŸй=Œ„P(*)©û³^£Zsm§ &Æèçà …ÑP‚ª²²F©T†ÑPôL~ª‹1qb¥%Nsõ žÁUT4>C_²¶´´?> ..<66“¼åÚλw+Z[ÿªí¤/ñÑ—ûPÛ Ðß Á0 mFC¡¿›qûœ~ÈdÔ•+…G^ÏÈÈokûcªƒ3†£ØUÏàÊʦóçïfdä]¸pׂKgz³f…¡,Ð857·Ó?2µ¥¥ E)×v†„ ´³Ã›`¶àè‰ÊÑP!ti FC1 …©æÏæìlkèvõSHðŒPCCÛùóùii·/\¸Ëår&LŒ‹ ‰ C’`äj;>¬¿w¯R,–Bm˜ÂÔv˜$x}¢¡¡-/¯£¡³û÷kNœ¸IOu0b„÷üù£cbF ˆ© ž1kll;w.?-ívfæ=6›5qbP\\øÌ™#ìí­ Ý4ЊÆÚN+??w¦¶Ó××5(hJÓL<Àh(&¤´´þèÑë©©·‚*??·„„Q˜êÀ¨ Á3 MMíy ™ÞŒ#陦¶“©4Am'€IC‚ÐmêFCáñ¸Ã†a4#%?Õ››]|üÈùó£Âº]  žiinn?{öLÅbMš3ÂÕÕÎÐMƒž ;JJjåk; *;;«ídî/@m'€±A‚ð ŤÑS$'g]½Zäèh=oÞ(Lagl^{íàÝ»•ÌŸååM..¶ÖÖôŸ\.çÛo— àd Ö¶˜LïâÅ©Té1wn¤›2=s \Ûyï^eKKAm'€ñA‚ ¨ºZ˜“óˆ¹w®¸¸–þS eð`7Le´ºº¤gÎä&'gýò‹€ÍfÍš†½ŒÖŽg?ù$]Ýw‘¿¿Ç¥KëôÛ"è¡PtñbAFFÞéÓ9:Ó›3g¤»»½¡›:¦®¶“ËeèìããÊÜpì…5ô ôwêFCquµ Áh(&F*•ýüóÝÔÔ쌌üööÎÉ“‡%&FM›bmù»Œ×ÇõO?ýÊ/#.—³nݬ•+ŸÑ« ÷D"ñåË…©©Ùéé¹]t¦7{öH>™žÙjié(.Fm'€!ÁƒþE›ÑPèŒ·Ï™Š¢®_/NM½}êÔíêjáøñ‰‰QÑÑ¡NNÒÆ4ÄÄ|š“S¦üuÄb±®_ßèå…úLÓÖÑÑõË/‚ÔÔì3grÛÛÅ£FùÅÇGÄLJã0ÛH$²òòÆÒÒzæ‡T¦¶“Çãúù¹1w:ЉŸ••…¡› `òà9“JeEE599˜ÑPÊË%Œ†bì22ò¦N Ñæ6¹û÷k~øá÷“'o=zÔ0zôàøøˆØØ0ܯeröî½ôî»)‰LþI6›é{òäÿªU s*3½¸¸pOOmÀÅŵƒ»÷i#A”k;=jÉk;}}]ƒƒ½p'@w!ÁóAQ“Èa4%•ʶn=õõ׎}̘!ê^&?ÕÁ!îóæEΞ=2 ÀCŸMª«k9r£TúØ÷‡Ãþàƒ„—^zÚP­‚¾ÓÙ)¹t© 55û¿ÿ½ÓÖÖ9j”ßô顱±á~~n–ª­m3æ½g/]:^oMý‹%ÅÅuÌ78øuttUµƒ¹` , àþttt]»ö`Ò¤ ]­P›ÑP‚‚<‡ ácÞ“ÐØØöÊ+ßþö[‹E/»uë|…ÔÕµž8ñÇTîQ‰‰Q˜ÂÎ<$&î¼ví¾Tú×E<‡}ûö[¶ úšX,¹x± 55ûìÙ;BaG` g||xBB”ÊLïÿý¿«ë×'BÅÅE|öÙó¶¶8°›3…Ú·ëïÞ­¨«k%rµ>>®L1N_ÔvÞ½[ì¥óÕô5$x 2uüø-[NÚÛ[_¾¼¾g+imíÌÏ/ÏÉ)Ó< &7Q7n<\ºtOS“H"‘Blm­òóß§/´¶¶v¦§ÿ1Õ““Íܹ‘˜êÀü9òû[oý “ýñ•Äá°'Løî»†mèT*»q£$5õvJÊͺºV:Ó›7oÔ!dÎûEVV‰LFYXpø|‡o¿ý{HN¾ûík;‡ Ðû[£¢Þõöv~ç9£Fùê¤ýúúܯ¿Þ_¿>¹¨¨Z&£8öƒkS©n4kkÞðá ÅÜ|÷ÝoëÖ%SÅ\Àa±X{ö,•H¤ÉÉY—.p¹œ˜˜óç~úi‡mØÖB_hié>ü_]]RúO‹õÅ/$$D¶U L¦wòä­ÚÚ:Ó›;7ÒÎÎ*2r3sÒÂápØlòÁ ‹5lƒÁ°˜ÚÎ?¯õU몶S$ûûÿ1GË´i!ï¼3ÛߟßW» SHð åå•ÿë_ǯ]{Àfæ‡ùsçÖ(ÿæªåh(žÞÞÎ8¿7']]Ò ’¿ûîEBþ:q¹''ëÆÆö±cýçÍ9kV.Ìš½—_Þwî\=ÔŠ¥%7/ïÌoÑuvJ23便ÝÎȸÓÒÒ:ðÞ½ ù‘xèöç͵}ûL… åÚÎ{÷*kk[ˆªÚ΀uÁ“›[6cƧôc ŽD"›5+ìí·ã4ß) ` àAŸ(+k|÷ݔӧo³Ùlù›jØlÖ_,š7/£¡!¤ºZøòËûrrÉ ƒÇã\¸°nð`|•öii·W¬øV&£¸\ÎÌ™#¾ùf‰¡[F¾Oï½÷Rï߯Q>iáp8þþîû÷/Ãi7hÐÜÜþðá_—ø´©íIoo+ÌgÅ`±ÈðáÞ³gG æäéíí¬çF‚‘سçÒ»ï¦BT^»£q8ìÉ“‡<øŠÛöú뇎¿amÍËËûÀÒ’kèæ€±8tè×õë“5.X,!déÒ ›6ÍFÝôŒX,¹¿¦¨¨†Nü²³KKKëÕý¬Àá°mm-ßxcêßÿ> +06%x"‘¨±±Ñ€­Óuóæ£íÛÏÕ>ñ>ßîôéWµ\­µµµ³s¯’@Dµ±‘HdŸ~úóÑ£·´y1‡Ã>þuƒÌráåÕÛÑù***tÒ’~å×_‹ßx#yΜï¼3ÓÐm1=ÎÎÎÖÖÖ½YCcc£H$ÒU{thåʳ²JÕjË5jжm³qË® 3’HNHØóð¡¦ó‹Eåååø¿ÿ;ù™g{¹9€ÞPøÔ<ö“CKK‹@ Ð{“À´I¥TZZQjja{{‹Ex<ŽLF©»‚G©­mËÉÉ·²Òêç.ww÷^&xˆj£"I’’næåÕi,+9ùÊÓO{÷uÔõ>ÁCàõ€££ÌÞžb‡Þë^žWTTÔÖÖêª=ºÒÖÖuãÆ#m²;BÈ­[eË–\µj´— þM•1D²LF••5ix›MX,Üα=IDAT–TJ•—7oÞ|úÊ•» A\.ÃPøÔ¨8ÇšLðŠŠŠX,–Ê”––.]º”¢¨Å‹ÛÙï$6ö…Þ…[·nq¹Ü£G2ϧ¤¤ðx¼ÜÜ\ú϶¶¶µk׆‡‡ÛÙÙ3fëÖ­‰„ô¨ßXªèjOŸˆÅbémsýB OjóñÑrµòqâçç÷ÒK/)ÌÔÖÖ¶fÍšððp{{ûÑ£Gøá‡tpÒËPÏgċŚ?¾ü ºÕrí_ŒÀÓ9Ó ¼~øAåa0;;»7-'O ³î~U!hû‚éÆ-1Ü×wïûÁ¬s¦ÉšÏxå·ëèèW\\¬eãU†>5ÚèÃÏÉÉéÿþïÿº»Ô‰'æÎ[QQqøða]ME¥gô.Œ9rÆ «V­jjj"„477¯\¹rÓ¦M#FŒ „´´´DEE]»vmÛ¶m7oÞ\·nÝ¡C‡¦OŸ.•J{ÖoW¯^­|œnwêÁƒnnnº]'¨C‡PŸ®–˜²²²ýû÷ …ÂÈÈH:PÉŸÁyýúõ>úèÆëׯ?|øptt´T*¥_PRRrûömfµ—.]’ßPrrò‘#GtÞ~èk¦xsæÌ¡{W¯^%„0‡Á¾žÏͤ¿ªÌ†éÆ­üÊûîë›!ÿ=Þ³3 èS¦ÉšÏx™íVTT\¼xQ&“-^¼X]kµ<ÛħæÉ(9ÕÕÕ.\ t­°°Þó@ƒØØØöövm^iXZHïEQÇÿÇ?þAQÔŠ+F%‹é׬^½z„ ‰„YªµµÕÏÏ/))IyOì BHaaa¯÷I mè»­ß¹sçÎ;½\IEuŸbBH^ï?ÌjÞ2™L6qâÄ7Òª ÎÝ»wÓËΜ9sÆ Ì8쓲|ùr—ÊÊÊ´\û÷]àé*f.\¸P]]ÝûõèIž®Z«@s˜uws}z¬ÖI¼é䨫g&·zøúfèöÓÑw-G$Ë3•HÖpÆ«°Ý²²2BHss³ÊÖ*ì¯Ê0çF™ò§¦ÛWðNž<9pàÀÆÆFBÈ÷ߨÖÖ&“ɾúê«àà`{{û±cÇ^¸p¾ ©áRfZZÚÈ‘#mll °mÛ6úɺº:[[[kkëÿùŸÿ!„xzz’?/‰ž?ÞÇÇçòåË*d±Xûöí vwwß¶mÛÁƒìèèøÎ;ïÐ/èêêZ³f‡‡ŸÏ_³fMWWר±cwìØAihh`³Ù«W¯&„H¥RggçS§NBšššþö·¿¹¹¹y{{¯^½º££C¡%ôš)ŠZ½zuDDD]]ü.Bx<ÞöíÛ·uëÖýû÷8pÀ‚^êСC7näpþšîÉÖÖvíÚµ‡îA¿uë͢ן’’ÄçóW­ZÕÙÙùÄý `ÞegÏžõ÷÷wvvÞºu+ó–)lBÝvÊŽ"ªÂF¾O2337mÚäãããîîþÒK/1?ƒ)/EIMM ³²²2dÈÁƒ !‰DåâLI¥ÒíÛ·ÚÛÛ7îÚµkô ”ß)¢ÅG@>2°X¬+VÐaOÔçš5k:Dÿ9þüü‘ú³T#99911Q~…o¾ùæ°aÃè½Â¶”¯n7Uv£Os¯ZµjÙ²eôãÖÖV›[·n© ‰'†‹Å:|øppp°‹‹ËÇL‘ÿªR×E L=h â¶ïãV]'«ëu=¯BÊgVš»H!Ú•™z0#’uÉÎxЛ ‹?•ÏiªD)̺û†ößO|¶§åïÖ/½ôÒ’%Kªªª<<<®]»FQÔ®]»ø|þ±cÇ***N:åííMQ¾Å< …<ïå—_.++£C§¦¦†¢¨}ûö|øæÍ›å[BßÚ!“ɘìŽn-³ ŒuëÖBÞÿ}æ:øjkk:ö×_uqqéA¿B²³³[§îÍ¢×6}út@ðÛo¿ùûûoÞ¼YËýU„¸¸8¡PøÓO?Ñ®rê¶«>¯à)w¥*läûdóæÍ¡¡¡999¹¹¹O=õÔêÕ«Õ-ÕÚÚjii™””TYY¹wï^.—ÛÚÚº}ûv•‹3!ôÙgŸÉ¬¼¼¼è·@ù¢´øÈG&Qú éúõëNNN”úà¼r劇‡½ì½{÷<==oݺEQTSS“ ýë†üÒÀÚÚzÿþýÔãg寫ÛMånThRßž>¯à!ðtx4…_[/^¼èêêÚÕÕEQÔ¡C‡BCCe2™ºPròë'„$&&666îÞ½›R__¯°9•]$¯ï‚–ÒïuÄ­˜Ú}«ëu=¯2®èE4–)UÑ®°}̈dSŒdšò/%äB¡°¨¨èÙgŸŠŠ¢ÔœÓ*_ÁS3 ŸU”?5=I𽽽Ø텆†8p€yÁ·ß~«9Áëìì¼{÷nkk«T*½xñ" ”ª/''G„›7oR%‹Ó/6lS0–‘‘‘••egg'‹ÿùÏnذÁ¢±±qûöí³fÍ¢—åp8ÌÑáØ±cþþþò-¡¯]»–RPPÀì;³ 4™L6g·³xñbùdÂTÞÕ«WÝÜÜzÐoDuo–ü^PuäÈ-÷We<B233)Š¢ µ UnBå“*WÈÐg‚§ÜQ”ª°‘ß‹   cÇŽÑÿÍÏÏg+/ÕÐÐ`aañÉ'Ÿ466Êd²––©Tªnq&„•?V*ß)J‹€|döà(ÿ믿º¹¹1˾öÚkëׯ§(êСCÑÑÑòëd|þù祥¥Lð¨l¼ÊÝTÙ Mê»ÀÓg‚‡ÀÓUàÑŽT‰ÄÓÓóüùóEÍš5kÛ¶m”šc Ê¤”<:0˜”ßœº.’×wAKé÷´q«Ã¦ö_ßÚ÷¡†¸¢ŸÑ|X¦TE»Â>ö]0#’M1’)5g¼ÔãAnaa1iÒ$¦ªSùœV9ÁS3 ŸUt“àQµeˇìËÚÚ:;;›ùï­[·ˆÆ¢¨”””ñãÇGDDÐcû¶´´Ìž=›þ¯r‡2µ¼Ê RJßÁÊ­¬¬äãÀÑÑQ*•zxx\¹r%**ê·ß~3fLJJʬY³þóŸÿPõèÑ#BˆH$¢×“““cee%ßúñ”)S&Ož¼dÉúeò»@;xð ££ãÅ‹­¬¬Nœ8Á<ïééyîÜ9…^ݹsçøñã»Ûo”ª­†7‹^³k·oß¶²²ÒrU®Ÿ"ä;\å&T>©®Í4=߃§ÐQ”ª°‘ï++«ÜÜ\åõ(/EQÔåË—mmm'L˜púôiu‹Ë‡Ê•ÊwŠzÒG@!2•æ»ï¾5jýØÓÓ3##C¡a_ýõŒ3˜e333ýýýe2ÙܹswíÚE=~¾B?J¥“&M¢‚¢ƒGeãUn”×w§ç{ðxôã^MùHµråÊ×^{­¶¶–Çã=zôˆRs T× ;ÅüœG”ÎEÔu‘¼¾ ZJïw.!néǺ:`jÓÉÚ÷¡†¸¢Ÿakè"…hWØhß3"Ù#™RÆ«!È•Ïi•<…0Ó¼B Ÿš?õdÍG}õÕWÓ¦M{ë­·èg(?´N^^žæ5ˆD¢ ¬Y³ææÍ›;wüðC>ŸâĉÊÊÊôôô'Þƒ×ØØÈb±ÒÓÓé¹à!7oÞ\¼xqyy9½•³º)-®à­Zµ*11‘ãõ©§žzýõ×)Š:zô¨}•9##ÃÎÎ.44”ÙÓ^xaêÔ©<ÈÍÍ Ý¸q£ºVmÚ´)00P$Éï‚L&‹‹‹›4i’T*¥(J,‡……-\¸þosssPPД)SΜ9SPP°aÃBŸÏïìììn¿Ñ»©ãU8J3TžÓ*œmªÜA|j”é DóË/¿ §¯S?~|À€ b±xË–-ƒ¶³³;vìwß}§9Á£(ê³Ï>sqq4hÐÎ;.\èììLßüFS—J)/ÈçóÕõ©üc¡P¸téRgggWW×üãô0*MMM\.—¾´­­Çã­]»–ÙPCCË/¾èêê:`À€7ß|S$©k•H$ ܰaƒü.8pÀÒÒRþö¼ßÿÍf'''Ó¶¶¶¾õÖ[Ç·²²:tèÛo¿=iÒ¤çž{®[ýÆì¾2uo½¶={öøúúº¹¹½ñÆôU`ÍûÛÕÕ5~üx;;; L=¯ ›P·] ô–à©ì(JUØÈ÷IGGÇêÕ«½¼¼.\ØØØH?¯2ØŽ92tèP7lذ””•‹‹Åbù’H$Û·o÷÷÷·µµ;v,ýó¥ê¢4¾#ùùùò«¥˜Aƒ-Z´Há¸À§Mhhèûï¿ÏŒÝ̬<33“B—4Syåå2™,::šé4寫ÛM•ݨŸÀÓ[‚‡ÀÓaàÑ”<Š¢V¬Xamm- å_£=9fCÝí"-¥ÇÓbÄ­n˜Ú}k߇*CHþ{\þ­Ñ¾‹ô̈d“‹dÍg¼ GiyÊç´ÚœmâS£LùSÒ署ššüüüÉ“'«ì;í)OxO$‹oÞ¼IÉÚwôðî¨ÜD¶KW&ôrªb]E5?]ž®b&333$$„Ïç÷r=ÐKo¿ývIIÉáÇé?êJWAKto:9ê‚Á$Èüd03ûÔpuÖFè5××Ù@ÿÑÑÑQQQ±oß¾ï¿ÿÞÐmГž ²&ÍÁÁaùòåúß„¶ ý\»v-**êå—_–¿kT! …¾`B0ƒI3³OMŸ”hèJ4Á P¢ ¦…m`ÉÝ¥ü©Á<3ÀL Á0HðÌ<3¡b¼ŠŠ ý·@YGG‡•••NV…¨íµ¶¶êjUMMM‰DWkÐzò@C· ·ÉП©HðþÛ ’® XQilla DOM3 API Documentation SourceForge.net Logo

DOMMemoryManager.hpp File Reference

Go to the source code of this file.

Classes

class  xercesc::DOMMemoryManager
 The DOMMemoryManager interface exposes the memory allocation-related functionalities of a DOMDocument More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/inherit_graph_41.md50000644000151400015140000000004011653571065015725 0000000000000027fe3a9849e659c75682d4744e1df172XQilla-2.3.0/docs/dom3-api/functions_func_0x6c.html0000644000151400015140000001236311653571065016753 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMNodeFilter-members.html0000644000151400015140000002040211653571065022147 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMNodeFilter Member List

XQilla-2.3.0/docs/dom3-api/DOMNodeFilter_8hpp__incl.png0000644000151400015140000001100611653571065017377 00000000000000‰PNG  IHDRÅuq²ÒbKGDÿÿÿ ½§“»IDATxœíyTWûÇo°T¶D´QDq¡-íA–´¢DÀ¥Öª,Öå(àÒs·ªÔÖJKÔ‚HViK«qAeêrØêA XhBYL $óûã¾ïüÆd Nx½Ÿ¿î}æ¹Ï<÷Îwî™ Ã0€@P]× þ§@zBP Ò‚JžT¢§ ×¯_?pà€6"#¨ÂÍÍ-..Žò°ZÑÓóçÏùåmG¼:>455ÕFd­è ¯½àˆWaïÞ½ZŠŒ®ŸT‚ô„ ¤'• =!¨é A%Z¼¿>Ÿ—-,,fÏžebb‚e2ÙéÓ§ËËËE"‘««ëŠ+ lkmm™™I£Ñpÿ;v”••eeeY[[óù|ww÷øøxÜ¡¥¥eÕªU×®]Jnš‰™ãdeeÁ&ÃÚ‘:ø|>ìÈ«ù÷Ñ¥žIIIG¡P<{öìÒ¥KáááééécÇŽ¼xñ"**ÊÔÔ4""ÂÊÊê÷ß?uêTEEÅÑ£Gét: ­­­¡¡ÇãÁPÝÝÝUUUÄàׯ_¿víÚ‚ ´—9ÑÂ`0V®\I´ˆD¢ÈÈÈ‚‚m$02ÑñzgbbbffÆb±æÎ»ÿ~‡sñâE¸éìÙ³&&&ÇŽ{çw¸\®«««@ hkk+**‚NNNB¡uûöí9sæƒûúú~ùå—b±X{™166'ú(Š®®.mì}Ä2‚®Ÿh4šŸŸßÝ»waµ¸¸8,, NE&“¹bÅŠââbXõðð …øû[ׯ_www' ¶±±9zô¨ê;^===‡ö÷÷NNNîëëS(ß~ûmhhè¢E‹6nÜøøñcè900 ÁÀÀ€ºü[ZZ”ÖÁ 6–.]ª.lRYY¹|ùòšš¥€!!!¾¾¾çÎÃã—””„††œ8q¢¿¿ŸÔ8èPk¤'—ËmmmôôôˆÅb|-ÃáñxMMM°†ðòòòóóKNN.))‹ÅeeeéééÐÙÕÕ555õùóçÛ·oÏÏÏn¥RéC]¾|¹··Ws´¤¤¤–––'Ož¤¥¥y{{k0êÏO7n„6›íè蘒’‚¯†††))) µµ•Ãáxzzëëë#ðùü‚‚‚€€Í;òõõ½yófEE¬nÙ²%)))22R__Á‚!!!zzzýýýÉÉÉþùç”)SâââàÝÙÚµk“’’Ö¯_O£ÑÜÜÜ"""†Þ;KKËY³f^¹r…4TGGÑÿÈ‘#sæÌÁG€//¯èèh™LæééW7%ãÐ3¤š6þ^*''gùò坸€¡éc÷ö,~ïÞ½&LÀ'l e÷wˆÒÓ¨ÁÈÈÈ××w(F‚ô4j011Ù¶mÛPŒ:é A%HO*AzBP Ò‚JžT‚ô„ -þÞ£½àˆW¡±±ÑËËK‘µ¢§‰'k#²®¨¨°°µýËÌL¦ëD¨ÁÖÖƒZ´òûÝÿVV[‚Õ~~sw}½A×O*AzBP Ò‚JžT‚ô„ ¤'• =!¨é A%HO*AzBP Ò‚JžT‚ô„ ¤'• =!¨é A%HO*AzBP Ò‚JžT‚ô„ ¤'• =!¨é A%HO*AzBP Ò‚JžT‚ô„ ¤'• =!¨é A%HO*AÿŸŽœO?Í|üX„W[Z:ÍÌŒ þó©4==Æ™3k9µ_Ü{mAßçQðxùù•Äs­»[JÜŠÄD ZïÈYºÔ ’Ï­ôô+V¼ó/ç3Z@z"gÒ$sGGk²ø¹\±dɼ=£ÑÒ“Z‚‚Þf0”LJN§99M²²B‹9HOjñ÷Ÿ§z³B£Ñ‚‚ÞÖI>£¤'µ°XcyªSÔ‡ÎÖI>£¤'M¿Eœ¢ º«ëT33MßÍAzÒÄ¢EŽÄùI¡ÀßÒa>#¤'MŒÇôôœ¡§÷ŸQ3†áãã¨Û”F8HOƒ°t©“BôôÞÞ3 Çè:£ ÒÓ x{;0™ú¹\è¤ëtF:HOƒðÆz ΢рÁéºNg¤óÒïw­­­ºÊc$Ãç¿™—wÏÛ{ÚŸþ¡ë\F"¦¦¦°ü’žjkku‘ÏHÇØX1nܘ3Æ¢ñ!eÆŒäz‚ÛØlö¿žÒHgÓ&lÆt:ù/į3B¡XE×OC""‰i( = }}†®S =!¨é A%HO*AzBPÉèÖSSSÓš5k”Œõõõ4Òu‡–F`òäÉaaaíííDÏÞÞÞØØØÙ³g7îí·ß>xðàÀÀÜD£Ñ¦NªôFžF«¯¯‡ÁÁÁD‡ae>tg|ÿ£[OùùùK–,ÑjØÛ·o‹D¢æææŒŒŒ®®®yóæuvvÂMÝÝÝo½õVyyyBB½{÷víÚuîÜ9ooo¹\ž>}ZUU…‡•H$7nÜ î(777;;›òüu FàÚµkÏŸ?ÇF‹/~ñâ…’±®®N©_ÿ8, ®®·+ 77·Ý»wÃjLLŒ««ëÀÀîÐÓÓ3yòäÔÔTØváÂ…Ÿ}ö¾õôéÓ>>>xL@DD„™™™H$ú™ÝY©Ô¢¤™áÍO………ÖÖÖ‰páÂ;;»ÞÞ^@ll¬……›ÍŽíïñ¯¿þjcc# ãããmll&L˜†Ÿßª­ßÿ½££#“É´µµÍÌÌ 6ïèè022200Ë剉‰vvvãÆsqq)--…ü1‹Åâr¹1112™ @£ÑÒÓÓííí'L˜pøðáÌÌÌ7ß|ÓØØ8..N)¬j÷i4ZddäåË—a5++k÷îÝ Æÿ?š222ŠÍÊÊ‚Õàààœœì¿+ZnnnPP1àÖ­[§OŸŽ©¼¨®š¼ºn’£?ÿü3Ç355=tèøïZYPP0mÚ46›½yóæ¿ÿþ›Ô¨Y$hÐ)aaa«W¯nkk³°°(--…Æ„„„ÀÀÀ¦¦¦êêêyóæíܹž=>>>W¯^ݳgƒƒCuuuMM³³sLLŒºV===o¼ñ†@ ‰D§NÒÓÓëééILL$mžžžž™™‰aرcÇØlv^^^kkëåË—­¬¬`¿BBB<==ª««gΜ¹gÏxØV®\ÙÕÕ•––X¶lYWW×É“'İÙ™]^^nbb‚a<©ÚÛەƧ¤¤Ä¶}ò䉥¥åýû÷1 ëìì444ìèè„ù©®®®¶¶ÖÀÀ ##{yÊQM^]7U‡Q)%À‡~ØÕÕuéÒ%ØM¸£÷ß¿¶¶öîÝ»<oÏž=¤FÍbPÕ̰õ$‘H¸\®££#qgÓ§OÇ'íâââ9sæÀ䪫«1 ›6mZ^^ÜúèÑ#¼¬ÚJ,ëëë9rD"‘(Šîîn¹\®®y`` X,Æ0ÌÎÎîôéÓx2gΜôõõ1Œß~û óòòx<ÜÊÊJ Ãúúú”Êð0ãa±¤§;wî°X,¼í§Ÿ~ºk×. ò²²¼½½‰1ñÂñãÇÇßÔÔ„ë‰4yÒn’£RJ¡Pˆa¼°«««# ò³³y<©ŒWÕ†aûöíc0DO&“IœóŒar}}}pkMMjÕV†Ýºu+((ÈÈÈÈÕÕõÊ•+êšwwwûùùÁ²ÁƒðM÷ïß<{ö •J¡±ººšÉdb/KDµL ‹‘ééüùóNNN°liiY\\¬”Xrrò|€· …<O¡P,Y²ääÉ“™žär¹»»;œ DH“'í¦ºa$¨­­%ö<~UU“É$5bƒñJ×Oð8%%%yyyEGGãF‹…»D"¹{÷.´ëë묬¬ž>} -<øüóÏÕµ’J¥ …ââÅ‹b±xíÚµ¾¾¾b±˜´ù?þ¸páBhœúÈÓÓ³±±±¦¦ÆÁÁÞ—ó1,4âÏ „B¡¿¿?—Ëíìì„[ÿúë¯iÓ¦¹»»ÕÖÖæåå988¸¸¸Èd2bð 6ØÛÛóù|¥‚—'¿äädxÔaU5yuÝTF ÃRSSñŽi =½ŽŒ?>""b(Æá‚ôô:Âf³ÁPŒÃé A%HO*AzBP Ò‚JžT¢ü÷Áø«ÄpQÖú—ˆW}oA%èú A%HO*AzBP Ò‚Jþ—¾?èK¬ˆIEND®B`‚XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMProcessingInstruction-members.html0000644000151400015140000005065011653571065024502 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMProcessingInstruction Member List

This is the complete list of members for xercesc::DOMProcessingInstruction, including all inherited members.
appendChild(DOMNode *newChild)=0xercesc::DOMNode [pure virtual]
ATTRIBUTE_NODE enum valuexercesc::DOMNode
CDATA_SECTION_NODE enum valuexercesc::DOMNode
cloneNode(bool deep) const =0xercesc::DOMNode [pure virtual]
COMMENT_NODE enum valuexercesc::DOMNode
compareDocumentPosition(const DOMNode *other) const =0xercesc::DOMNode [pure virtual]
DOCUMENT_FRAGMENT_NODE enum valuexercesc::DOMNode
DOCUMENT_NODE enum valuexercesc::DOMNode
DOCUMENT_POSITION_CONTAINED_BY enum valuexercesc::DOMNode
DOCUMENT_POSITION_CONTAINS enum valuexercesc::DOMNode
DOCUMENT_POSITION_DISCONNECTED enum valuexercesc::DOMNode
DOCUMENT_POSITION_FOLLOWING enum valuexercesc::DOMNode
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC enum valuexercesc::DOMNode
DOCUMENT_POSITION_PRECEDING enum valuexercesc::DOMNode
DOCUMENT_TYPE_NODE enum valuexercesc::DOMNode
DocumentPosition enum namexercesc::DOMNode
DOMNode()xercesc::DOMNode [inline, protected]
DOMNode(const DOMNode &)xercesc::DOMNode [inline, protected]
DOMProcessingInstruction()xercesc::DOMProcessingInstruction [inline, protected]
DOMProcessingInstruction(const DOMProcessingInstruction &other)xercesc::DOMProcessingInstruction [inline, protected]
ELEMENT_NODE enum valuexercesc::DOMNode
ENTITY_NODE enum valuexercesc::DOMNode
ENTITY_REFERENCE_NODE enum valuexercesc::DOMNode
getAttributes() const =0xercesc::DOMNode [pure virtual]
getBaseURI() const =0xercesc::DOMNode [pure virtual]
getChildNodes() const =0xercesc::DOMNode [pure virtual]
getData() const =0xercesc::DOMProcessingInstruction [pure virtual]
getFeature(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNode [pure virtual]
getFirstChild() const =0xercesc::DOMNode [pure virtual]
getLastChild() const =0xercesc::DOMNode [pure virtual]
getLocalName() const =0xercesc::DOMNode [pure virtual]
getNamespaceURI() const =0xercesc::DOMNode [pure virtual]
getNextSibling() const =0xercesc::DOMNode [pure virtual]
getNodeName() const =0xercesc::DOMNode [pure virtual]
getNodeType() const =0xercesc::DOMNode [pure virtual]
getNodeValue() const =0xercesc::DOMNode [pure virtual]
getOwnerDocument() const =0xercesc::DOMNode [pure virtual]
getParentNode() const =0xercesc::DOMNode [pure virtual]
getPrefix() const =0xercesc::DOMNode [pure virtual]
getPreviousSibling() const =0xercesc::DOMNode [pure virtual]
getTarget() const =0xercesc::DOMProcessingInstruction [pure virtual]
getTextContent() const =0xercesc::DOMNode [pure virtual]
getUserData(const XMLCh *key) const =0xercesc::DOMNode [pure virtual]
hasAttributes() const =0xercesc::DOMNode [pure virtual]
hasChildNodes() const =0xercesc::DOMNode [pure virtual]
insertBefore(DOMNode *newChild, DOMNode *refChild)=0xercesc::DOMNode [pure virtual]
isDefaultNamespace(const XMLCh *namespaceURI) const =0xercesc::DOMNode [pure virtual]
isEqualNode(const DOMNode *arg) const =0xercesc::DOMNode [pure virtual]
isSameNode(const DOMNode *other) const =0xercesc::DOMNode [pure virtual]
isSupported(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNode [pure virtual]
lookupNamespaceURI(const XMLCh *prefix) const =0xercesc::DOMNode [pure virtual]
lookupPrefix(const XMLCh *namespaceURI) const =0xercesc::DOMNode [pure virtual]
NodeType enum namexercesc::DOMNode
normalize()=0xercesc::DOMNode [pure virtual]
NOTATION_NODE enum valuexercesc::DOMNode
PROCESSING_INSTRUCTION_NODE enum valuexercesc::DOMNode
release()=0xercesc::DOMNode [pure virtual]
removeChild(DOMNode *oldChild)=0xercesc::DOMNode [pure virtual]
replaceChild(DOMNode *newChild, DOMNode *oldChild)=0xercesc::DOMNode [pure virtual]
setData(const XMLCh *data)=0xercesc::DOMProcessingInstruction [pure virtual]
setNodeValue(const XMLCh *nodeValue)=0xercesc::DOMNode [pure virtual]
setPrefix(const XMLCh *prefix)=0xercesc::DOMNode [pure virtual]
setTextContent(const XMLCh *textContent)=0xercesc::DOMNode [pure virtual]
setUserData(const XMLCh *key, void *data, DOMUserDataHandler *handler)=0xercesc::DOMNode [pure virtual]
TEXT_NODE enum valuexercesc::DOMNode
~DOMNode()xercesc::DOMNode [inline, virtual]
~DOMProcessingInstruction()xercesc::DOMProcessingInstruction [inline, virtual]
XQilla-2.3.0/docs/dom3-api/inherit_graph_37.md50000644000151400015140000000004011653571065015732 00000000000000154d1eaa20da74a1518d24bc294db9f0XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMDocumentFragment.html0000644000151400015140000002741011653571066021735 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMDocumentFragment Class Reference

DOMDocumentFragment is a "lightweight" or "minimal" DOMDocument object. More...

#include <DOMDocumentFragment.hpp>

Inheritance diagram for xercesc::DOMDocumentFragment:

List of all members.

Public Member Functions

Destructor
virtual ~DOMDocumentFragment ()
 Destructor.

Protected Member Functions

Hidden constructors
 DOMDocumentFragment ()

Detailed Description

DOMDocumentFragment is a "lightweight" or "minimal" DOMDocument object.

It is very common to want to be able to extract a portion of a document's tree or to create a new fragment of a document. Imagine implementing a user command like cut or rearranging a document by moving fragments around. It is desirable to have an object which can hold such fragments and it is quite natural to use a DOMNode for this purpose. While it is true that a DOMDocument object could fulfil this role, a DOMDocument object can potentially be a heavyweight object, depending on the underlying implementation. What is really needed for this is a very lightweight object. DOMDocumentFragment is such an object.

Furthermore, various operations -- such as inserting nodes as children of another DOMNode -- may take DOMDocumentFragment objects as arguments; this results in all the child nodes of the DOMDocumentFragment being moved to the child list of this node.

The children of a DOMDocumentFragment node are zero or more nodes representing the tops of any sub-trees defining the structure of the document. DOMDocumentFragment nodes do not need to be well-formed XML documents (although they do need to follow the rules imposed upon well-formed XML parsed entities, which can have multiple top nodes). For example, a DOMDocumentFragment might have only one child and that child node could be a DOMText node. Such a structure model represents neither an HTML document nor a well-formed XML document.

When a DOMDocumentFragment is inserted into a DOMDocument (or indeed any other DOMNode that may take children) the children of the DOMDocumentFragment and not the DOMDocumentFragment itself are inserted into the DOMNode. This makes the DOMDocumentFragment very useful when the user wishes to create nodes that are siblings; the DOMDocumentFragment acts as the parent of these nodes so that the user can use the standard methods from the DOMNode interface, such as insertBefore() and appendChild().

Since:
DOM Level 1

Constructor & Destructor Documentation

xercesc::DOMDocumentFragment::DOMDocumentFragment ( ) [inline, protected]
virtual xercesc::DOMDocumentFragment::~DOMDocumentFragment ( ) [inline, virtual]

Destructor.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/functions_vars.html0000644000151400015140000001043411653571065016130 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
 
XQilla-2.3.0/docs/dom3-api/DOMLSOutput_8hpp.html0000644000151400015140000000606711653571066016133 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMLSOutput.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
Include dependency graph for DOMLSOutput.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMLSOutput
 This interface represents an output destination for data. More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/inherit_graph_9.png0000644000151400015140000000572611653571066015771 00000000000000‰PNG  IHDRÕ(' ÷ÓbKGDÿÿÿ ½§“ ‹IDATxœíÜ}L[UðÓuã£s£Œ(“ϦÈÓ°e£d(ht) Á¯M_u„½´LtRæ ›Y4*CÙÔˆ'“1] Îqƒ¹Ð±v™{)Øxk±´+”–ûþqâõzûA©Àìù…?î½=ϹÏ==çÜöörYA KnÓ À} æ_`Ì¿À ˜€+i륥¥íí팤€X,~çw˜ÎâOmmmeeeLg–––ê*}þU©T7oÞܶmÛ¦Buttx{{3Å_ŒŽŽþøã‰„éDÀ?ÞíÛ·;;;iéó/BhÛ¶m K’JOOg:Û`8€¿¯¡¡aÏž=´pý˜ó/0æ_`Ì¿À ˜€ËvþeQ„„„dggQ  ™L¶iÓ¦5kÖ<òÈ#ï½÷žÙl&cÃÃÃiO&JMMe±X½½½¸^pMoo/‹År9|‘¸–•ͦÐëõR©tãÆžžžááár¹|jjjÒ®€á0_K“Õ²B—.]úâ‹/t:]\\ÜÄÄ~irròᇾråJEEEWWWaaa]]]rr²ÅbÁ®]»FV¥Õjÿ‰ÿ–ÒßßÏãñœ,Àår<¸ ûÝ¿¿B¡øæ›onݺuòäɦ¦&™L¶ 5#„¦§Í߯¼~ý Uá}†SÃÁâ¯$‰D"!þùBjµš\‹ÅEEExU*•&$$˜Íf²€^¯ ©®®Æ±)))o½õùê—_~™ššJÖI«|¾ÔjµuË/†9wô÷3±Ù\.·³³“\mkksVå¸ï™Í–ööÿææÖ…†ðùyMMW]ÎÙyõõõKóN-6ÎìhQ3±Ù—\ùü{æÌ™ÀÀ@­V‹úꫯ""" BhffF&“ùùùùúúÊd²™™üþüùó µµU.— ‚õë×ggg“ç^ë(„PsssLLŒ‡‡Çƒ>XSSƒ2›Í6é_|e`±X¯¾úêwß}‡Wkkk‹ŠŠØl6Y`õêÕ2™¬¶¶¯J$’††âï\§NJKK³WóçŸ. ׯ__^^^SS³qãF///ü´8¥¦¦¦ÈÈH__ßÜÜÜééij¸ÍÃw\§ƒ¨ºº:¡P¸nݺ#GŽ „¶nÝŠò÷÷ÇQgÏžåp8|>¿¼¼œV€ÚzÏ?ÿ<Ç ’J¥øêuýö¬]»¶²²òÎ;xU,:(ïXW×àÛo7>ôС={Ž76vݽkr¹ªÅÃV3 ‡y ÍÇN~þÍÎÎÎÉÉñóó»|ù2ÞXQQñì³ÏÞºuK©TÆÅŽùæ›ø|’ššúÓO?‹D"¥R©R©âãã¥R©½(½^ïîî^UU5<<|òäÉ•+Wêõú£GÚ Ÿ˜˜ÀgiÚ2²:'_¹r…Ëå‡ÊØØí .^¼èçç‡coÞ¼éïïõêU\-‡ÃG¶Nø¡ŒŒ NwâÄ „PzzºN§ûôÓOBããã¸}ôÑžžžÎÎΰ°°ââbêiÖúðç¬ÓATZZšV«­®®Fݹs‡º#Nçææöâ‹/ áqõÛo¿Q P—³²²víÚÕ××§T*£££‹‹‹mÖo³ ‚øá‡ÝÝÝ“““=:000g"þÚ÷fgg/_î;t¨Q$z›ÏÏòùü<êß=õù† <°Ù—\œµZmPPPLL N‹ŠŠÆË---›7oÆÇ T* ‚ˆŒŒlllį޸qƒ\¶ŽÒh4«V­zÿý÷µZíìììää¤Åb±n ®££ƒÇ㑱¯¿þzaa!AµµµÉÉÉÔ:iN¡Pa2™hËjµšÚAÔ×ׇ……QßZëß³NQ.\°Þ;.6==ý믿êõz‹ÅÒÖÖf]€\6™Ll6ûúõëx{cccXX˜Íúm¶3f6›;;;KJJ¢££Ùlv]]ã÷‹ø£ï©Õ£eeͱ±r>?O Ò¦Ý{sþ…áÃaÎ+06û’ç?8ƒËåîÛ·ïÝwߥ>Îg``€Ïç“«^^^x!** !488Ž·…B¡Ph/ÊÛÛûÂ… |ð\.‹‹+,,LMMµî<µZŠ“÷÷÷ïîîNJJ¢èîîÞ²e ¹*‘H^~ùåÇ;ø¶…­Y³!´jÕ*Ú2‰Ì<**jhhˆú’½Fs\§½¨€€ë½cnnn==={÷îÕëõ±±±gttÔb±à¶B………‘9;¨Ÿd0š››%I|||||ü¡C‡äryAAAff¦ƒ(Î82²zd„“˜X¾bËb™EÍ̘í•ÿðÖºº.­vÜ™b0¨`88ÏÅûnß¾ýñÇ'%%åçç“y<yÐjµäÃ~p~xKww÷áÇíEÆÙÙÙ¯¿þZ£Ñ¼ôÒKO>ù¤F£±î$‚ Ž?þÄOàÕ¬¬¬’’òç]„Á`¨¨¨HII!·ìرcrròçŸniiyúé§çµ;|.Eõôôà÷Œd¯Ñ³µb…Ý7Ôh4¦§§Ëd2…BQYYé r???6›ÝßßWûúú笟DDff¦J¥Â«,ë±Ç#of²Ÿž‰ æq»‡ãÎårûÏÓ“=w*0æé¾s }væúƒÅbIJJ*--Õh4þþþgΜÁÛsssÓÒÒð­*ññño¼ñõó¼\.‰‰Q©T*•jûöí{÷îµe4=<>>ûöí3 Ôc˜šš’J¥^^^Z­o·ŽÂ¹†††º¹¹EEE5559·wÉœzŽ ÎÊÊ¥…^¯ÏÏÏŽŽæp8"‘¨¬¬ìîÝ»´ÖlmmE}òÉ'´íóíp'NœØ°aÇÛ¿¿Ñh¤ý`}øsÖïdÔÌÌÌŽ;xà¼ñرcëÖ­ ®¬¬ÌÈÈðõõ¥ f¥Ñhž{î9>ŸàÀ£Ñh/›gt³Ù\\\ãéérðàA\ƒc´¾74¤©®nKLüŸŸ|ïþþƃËó/‹öÞàg°ÂOJoo¯õÿ›ìõ½®®Áo¿Uœ>Ý¥ÑÜÜVšLf„PUUÎSOm^ì”ð3[áí[(÷óp°Ù—–óÿ¿åaË– ¥¥Ï\»VR_ÿ¯Ý»c97¦3`a¸xÿpÒÚµk_y妳XØì  GޤŸ?C ða:#0o0h`þ]\¾¾¾UUULg±¬¸»¯|üñ¦³®€á@×€0ÿ3`þfÀü Ì€ù˜ó/0ÃÆýgíííÉÉÉKŸ ¸Ï©T*±XÌt6Àpßèè¨õFúü‹ŸÀÒ‹Å÷Z÷ –H$Lg–oooüèQ*úó, ¸þ Ì€ù˜ó/0æ_`Æÿ.€oûJ‘†IEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMImplementationList_8hpp__incl.png0000644000151400015140000001032211653571065021165 00000000000000‰PNG  IHDRÅuq²ÒbKGDÿÿÿ ½§“‡IDATxœíkT×ÇO „QD”€Ú‹à›TåÞb—‚¤ E‘—VÂrQx×õ]W+¬jK­VW+-äQñ¹@ ZµK|`k} µE¬×"µ.%E$@" ™ûaî;$“q$Äîß§™=gï³ÏÎ?çœdÃÀ0 MØX:à•ôÐ è  Ð@'LòÉܹs-•`½|ðÁsæÌÁûèéôéÓ“'Ovww·DV€UR[[›žžNœ2õ.ÇÇÇjF€5S[[K>…ý@' '€N@O€ž:=tòÜz’X´hQ^^^{{;¹Z­–H$iiióçÏÏÌÌÜ·o_oo/ᛜœ¬wzݺuB¡P*•â ðƒ!•J…Bá€Ý_ËʰÝ Võ¹Èü”ŸŸøðኊŠuëÖuuueddtvvâ—º»»ÅbñíÛ·ÅbqaaaRRRMMÍêÕ«u:Þ µµõ?þ B)•ÊúúúÆ #“É¢££ÍlÀáp^¼SÓqúMipˆž¸\®««+Ç›>}ú¦M›<<<***ðK{öìár¹Û·oã7¼¼¼%IkkëÉ“'ñþþþäo,.^¼8mÚ´Å`£Óé:::Ìlàì윑‘ñ⚎ÓoJƒÃ‹îŸ FTTÔåË—ñÓššš””›ÿ‡e³Ù‹-ª©©ÁOƒƒƒkkk‰%ïüùóÄWõz…“'O¦¦¦ÆÄÄìß¿ÿÔ©S %%%è“ÿO?ý´xñâØØØ;wj4²»V«•H$±±±±±±‰D«ÕöÓ„×éÓ§SSS£¢¢<ˆZºt)BháÂ…¸×¥K—ÒÓÓÃÃÃE"ÑþýûõשÎÎÎO?ý4:::>>¾   §§‡2>%ä8/^LKK KLL~/•J…Òh4Z­–Édöôôàû­îînr&“) ¿üòK™Lö矇††šˆ×™€°3Œ5kÖüðÃ]]]†ÉdëÑãñãÇ-»”Õ3QRsÈü´lÙ2üÀÝÝ] ’W“ÂÂÂÒÒR‰DÒÒÒâááoggGŽ  «««cccÐ;™ÐÐÐU«V©Õꤤ$òüœ–––ŸŸŸžžÎ`0‚‚‚Äb±9Íô5j”ŸŸŸH$:qâ‡ÃÉÊÊÚ¼y³ƒƒCbbbHHÈÚµk+++‰dÇ+VäççgffÚÙÙ½õÖ[III&’!ꌳwï^ü€Åb½ÿþû»vízôèŸÏÏÉÉa±Xä”BÛ¶m›6mñºPBY==£5ëƒüm5ƒÁÈÉɱŠß?I¥ÒäääsçÎY:«„²z+©P(uÉ´ýæ›4zxß+ Ï{}%ññYUuü^S*Uä« &J`½£fáB„¨ŸÁÊdÚ.ZôÆ çc-€ž¨;ÖM ð¤|ªoo¯.&fÆ gd€žŒ÷[[ýúØØ0üýÇòù°ØQz2Jtô Ã+ #.îÉÇ*=…ÇãøNQ ¼n‘|¬Г)âãÿNž¢lmm}]]M=4ü/èÉóç Èó“N‡‰D·`>CГ)† c‡„Lf2ÿ[%ËvÞ}ú† ²³³ÛÛÛBOŸ>]ºtiNNŽŸŸßËËœÌÅ‹e2YsssiiiGGÇŒ3ðL(iiiÙ·oß­[·'·ç#ñðáÃsçÎaVEDDDww7å¥;wîè ÐÐH¸?{ölêÔ©†effúûû÷ôô¼´¬û€ºsçqªÓé‚‚‚6nÜh¬=å¸ÌO#7oÞ¼yó&ÙòÜóÓÑ£G===ñÛ|?~|WWBH£Ñ¬Y³fäÈ‘îîîkÖ¬Ñh4øÊræÌ™1cÆÔÖÖæääŒ3fĈ)))Ä›ÏÐ !tìØ1@Àf³½½½ËËËBZ­–ÒýñãÇNNNäUŒ8ž9s&BhÔ¨QÈ`™ÓsG±X¬²²²’’’¼¼¼ÒÒÒ²²2;;;cIÒ84C FffæñãÇÅ!Ë̘§NòññqqqÉËË#ªQ]]=aÂww÷ìììgÏžQÍ•Y\fÎO)))©©©­­­#G޼rå nܲe‹H$ºÿþ7f̘±~ýzüm4oÞ¼³gÏæææN™2åÆ «W¯6æÕÙÙioo/‘Hd2Yqq1“Éìììܺu+¥{IIIyy9Ö÷-K÷k$Ü Ö¯_Ú¼y3ÙøR‡†QÍW¯^år¹¦{ǯ‹I!´`Á‚ŽŽŽÃ‡ãï"ß„ñ9 ‹Ëœù©··744tÓ¦Mr¹|Ô¨QGÅíÙÙÙqqq÷îÝ«¯¯X¶lùm”““#fÍš•žžnÌK¥R±ÙìÊÊʶ¶¶ÂÂB6›­R©(Ý“““¥R)ÿ¦¸¸øéÓ§±±±ˆ4)•JŒj~"»ëtº Ì™3_,zzzABB Ã0Dú¾ ¶¶6::ÚËË«½½ÝœÞÅ,**"" Òü‡Hó“P(¼sçN]]¯¯ïÆ)¦Å@Ãz·sçÎ×_Ÿê¿ýö[| ÒÑѱdÉ77·ŒŒŒ®®.ò°ÕjõêÕ«ù|¾³³sBB‚B¡Àí†^†:thܸq,kâĉÕÕÕ”î===óçÏ''¶yóf.—;nܸêêj¼_F3{öl‡ƒèIϽ¬¬ÌÞÞþ÷ß',uuu666•••/{hXß?A=ztRRy#aºw1õ4D>Æ#ìÞ½{ìØ±<oùòå*•ŠÒhZ †zêóÿŸ=ztëÖ-ø=Ý+OSS“¯¯¯ž”)¦ÁO7eÊÂbõßC ÐÓ_‘áÇ‹ÅbsŒÏ ¬wÀÀõx¹€ž:=tzèôÐ Åß·´´ ~€5¢V«õnWSè þJ0==Áó6:ý@' '€N@O€ž:ùxvfU½ì?IEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMLocator_8hpp_source.html0000644000151400015140000002245211653571065017352 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMLocator.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMLocator.hpp 676853 2008-07-15 09:58:05Z borisk $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMLOCATOR_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMLOCATOR_HPP
00024 
00025 #include <xercesc/util/XercesDefs.hpp>
00026 
00027 XERCES_CPP_NAMESPACE_BEGIN
00028 
00029 
00030 class DOMNode;
00031 
00032 
00041 class CDOM_EXPORT DOMLocator
00042 {
00043 protected:
00044     // -----------------------------------------------------------------------
00045     //  Hidden constructors
00046     // -----------------------------------------------------------------------
00049     DOMLocator() {};
00051 
00052 private:
00053     // -----------------------------------------------------------------------
00054     // Unimplemented constructors and operators
00055     // -----------------------------------------------------------------------
00058     DOMLocator(const DOMLocator &);
00059     DOMLocator & operator = (const DOMLocator &);
00061 
00062 public:
00063     // -----------------------------------------------------------------------
00064     //  All constructors are hidden, just the destructor is available
00065     // -----------------------------------------------------------------------
00072     virtual ~DOMLocator() {};
00074 
00075     // -----------------------------------------------------------------------
00076     //  Virtual DOMLocator interface
00077     // -----------------------------------------------------------------------
00080     // -----------------------------------------------------------------------
00081     //  Getter methods
00082     // -----------------------------------------------------------------------
00089     virtual XMLFileLoc getLineNumber() const = 0;
00090 
00097     virtual XMLFileLoc getColumnNumber() const = 0;
00098 
00105     virtual XMLFilePos getByteOffset() const = 0;
00106 
00113     virtual XMLFilePos getUtf16Offset() const = 0;
00114 
00121     virtual DOMNode* getRelatedNode() const = 0;
00122 
00129     virtual const XMLCh* getURI() const = 0;
00131 };
00132 
00133 XERCES_CPP_NAMESPACE_END
00134 
00135 #endif
XQilla-2.3.0/docs/dom3-api/XPath2Result_8hpp.html0000644000151400015140000000677511653571066016347 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

XPath2Result.hpp File Reference

#include <xqilla/framework/XQillaExport.hpp>
#include <xercesc/dom/DOMNode.hpp>
#include <xercesc/dom/DOMTypeInfo.hpp>
#include <xercesc/dom/DOMException.hpp>
#include <xercesc/dom/DOMXPathException.hpp>
Include dependency graph for XPath2Result.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  XPath2Result
 The XPathResult2 interface represents the result of the evaluation of an XPath 2.0 expression within the context of a particular node. More...
XQilla-2.3.0/docs/dom3-api/DOMDocumentFragment_8hpp__incl.md50000644000151400015140000000004011653571065020503 0000000000000056b4076cc0cd4bc6bc0ad786bbbc6abaXQilla-2.3.0/docs/dom3-api/DOMNamedNodeMap_8hpp__incl.map0000644000151400015140000000003511653571065017625 00000000000000 XQilla-2.3.0/docs/dom3-api/classAutoDeleteArray-members.html0000644000151400015140000001025511653571065020576 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

AutoDeleteArray< TYPE > Member List

This is the complete list of members for AutoDeleteArray< TYPE >, including all inherited members.
adopt()AutoDeleteArray< TYPE > [inline]
AutoDeleteArray(TYPE *p)AutoDeleteArray< TYPE > [inline]
get() const AutoDeleteArray< TYPE > [inline]
operator TYPE *() const AutoDeleteArray< TYPE > [inline]
operator*() const AutoDeleteArray< TYPE > [inline]
operator->() const AutoDeleteArray< TYPE > [inline]
set(TYPE *p)AutoDeleteArray< TYPE > [inline]
swap(TYPE *p)AutoDeleteArray< TYPE > [inline]
~AutoDeleteArray()AutoDeleteArray< TYPE > [inline]
XQilla-2.3.0/docs/dom3-api/DOMLSResourceResolver_8hpp__incl.map0000644000151400015140000000003511653571065021105 00000000000000 XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMLSParser.html0000644000151400015140000024001211653571065020160 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMLSParser Class Reference

DOMLSParser provides an API for parsing XML documents and building the corresponding DOM document tree. More...

#include <DOMLSParser.hpp>

List of all members.

Public Types

Public Constants
enum  ActionType {
  ACTION_APPEND_AS_CHILDREN = 1, ACTION_REPLACE_CHILDREN = 2, ACTION_INSERT_BEFORE = 3, ACTION_INSERT_AFTER = 4,
  ACTION_REPLACE = 5
}
 

A set of possible actions for the parseWithContext method.

More...

Public Member Functions

Destructor
virtual ~DOMLSParser ()
 Destructor.
Functions introduced in DOM Level 3
virtual DOMConfigurationgetDomConfig ()=0
 Get a pointer to the DOMConfiguration object used when parsing an input source.
virtual const DOMLSParserFiltergetFilter () const =0
 Get a const pointer to the application filter.
virtual bool getAsync () const =0
 Return whether the parser is asynchronous.
virtual bool getBusy () const =0
 Return whether the parser is busy parsing.
virtual void setFilter (DOMLSParserFilter *const filter)=0
 Set the application filter.
virtual DOMDocumentparse (const DOMLSInput *source)=0
 Parse an XML document from a resource identified by a DOMLSInput.
virtual DOMDocumentparseURI (const XMLCh *const uri)=0
 Parse an XML document from a location identified by a URI reference [IETF RFC 2396].
virtual DOMDocumentparseURI (const char *const uri)=0
 Parse an XML document from a location identified by a URI reference [IETF RFC 2396].
virtual DOMNodeparseWithContext (const DOMLSInput *source, DOMNode *contextNode, const ActionType action)=0
 Parse an XML fragment from a resource identified by a DOMLSInput and insert the content into an existing document at the position specified with the context and action arguments.
virtual void abort ()=0
 Abort the loading of the document that is currently being loaded by the DOMLSParser.
Non-standard Extension
virtual void release ()=0
 Called to indicate that this DOMLSParser is no longer in use and that the implementation may relinquish any resources associated with it.
virtual void resetDocumentPool ()=0
 Reset the documents vector pool and release all the associated memory back to the system.
virtual Grammar * loadGrammar (const DOMLSInput *source, const Grammar::GrammarType grammarType, const bool toCache=false)=0
 Preparse schema grammar (XML Schema, DTD, etc.) via an input source object.
virtual Grammar * loadGrammar (const XMLCh *const systemId, const Grammar::GrammarType grammarType, const bool toCache=false)=0
 Preparse schema grammar (XML Schema, DTD, etc.) via a file path or URL.
virtual Grammar * loadGrammar (const char *const systemId, const Grammar::GrammarType grammarType, const bool toCache=false)=0
 Preparse schema grammar (XML Schema, DTD, etc.) via a file path or URL.
virtual Grammar * getGrammar (const XMLCh *const nameSpaceKey) const =0
 Retrieve the grammar that is associated with the specified namespace key.
virtual Grammar * getRootGrammar () const =0
 Retrieve the grammar where the root element is declared.
virtual const XMLCh * getURIText (unsigned int uriId) const =0
 Returns the string corresponding to a URI id from the URI string pool.
virtual void resetCachedGrammarPool ()=0
 Clear the cached grammar pool.
virtual XMLFilePos getSrcOffset () const =0
 Returns the current src offset within the input source.

Protected Member Functions

Hidden constructors
 DOMLSParser ()

Detailed Description

DOMLSParser provides an API for parsing XML documents and building the corresponding DOM document tree.

A DOMLSParser instance is obtained from the DOMImplementationLS interface by invoking its createLSParser method.

Since:
DOM Level 3

Member Enumeration Documentation

A set of possible actions for the parseWithContext method.

ACTION_APPEND_AS_CHILDREN: Append the result of the parse operation as children of the context node. For this action to work, the context node must be a DOMElement or a DOMDocumentFragment.

ACTION_INSERT_AFTER: Insert the result of the parse operation as the immediately following sibling of the context node. For this action to work the context node's parent must be a DOMElement or a DOMDocumentFragment.

ACTION_INSERT_BEFORE: Insert the result of the parse operation as the immediately preceding sibling of the context node. For this action to work the context node's parent must be a DOMElement or a DOMDocumentFragment.

ACTION_REPLACE: Replace the context node with the result of the parse operation. For this action to work, the context node must have a parent, and the parent must be a DOMElement or a DOMDocumentFragment.

ACTION_REPLACE_CHILDREN: Replace all the children of the context node with the result of the parse operation. For this action to work, the context node must be a DOMElement, a DOMDocument, or a DOMDocumentFragment.

See also:
parseWithContext(...)
Since:
DOM Level 3
Enumerator:
ACTION_APPEND_AS_CHILDREN 
ACTION_REPLACE_CHILDREN 
ACTION_INSERT_BEFORE 
ACTION_INSERT_AFTER 
ACTION_REPLACE 

Constructor & Destructor Documentation

xercesc::DOMLSParser::DOMLSParser ( ) [inline, protected]
virtual xercesc::DOMLSParser::~DOMLSParser ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual void xercesc::DOMLSParser::abort ( ) [pure virtual]

Abort the loading of the document that is currently being loaded by the DOMLSParser.

If the DOMLSParser is currently not busy, a call to this method does nothing.

Note: invoking this method will remove the installed DOMLSParserFilter filter

Since:
DOM Level 3
virtual bool xercesc::DOMLSParser::getAsync ( ) const [pure virtual]

Return whether the parser is asynchronous.

Returns:
true if the DOMLSParser is asynchronous, false if it is synchronous
Since:
DOM Level 3
virtual bool xercesc::DOMLSParser::getBusy ( ) const [pure virtual]

Return whether the parser is busy parsing.

Returns:
true if the DOMLSParser is currently busy loading a document, otherwise false.
Since:
DOM Level 3
virtual DOMConfiguration* xercesc::DOMLSParser::getDomConfig ( ) [pure virtual]

Get a pointer to the DOMConfiguration object used when parsing an input source.

This DOMConfiguration is specific to the parse operation. No parameter values from this DOMConfiguration object are passed automatically to the DOMConfiguration object on the DOMDocument that is created, or used, by the parse operation. The DOM application is responsible for passing any needed parameter values from this DOMConfiguration object to the DOMConfiguration object referenced by the DOMDocument object.

In addition to the parameters recognized in on the DOMConfiguration interface defined in [DOM Level 3 Core], the DOMConfiguration objects for DOMLSParser add or modify the following parameters:

"charset-overrides-xml-encoding" true [optional] (default) If a higher level protocol such as HTTP [IETF RFC 2616] provides an indication of the character encoding of the input stream being processed, that will override any encoding specified in the XML declaration or the Text declaration (see also section 4.3.3, "Character Encoding in Entities", in [XML 1.0]). Explicitly setting an encoding in the DOMLSInput overrides any encoding from the protocol. false [required] The parser ignores any character set encoding information from higher-level protocols.

"disallow-doctype" true [optional] Throw a fatal "doctype-not-allowed" error if a doctype node is found while parsing the document. This is useful when dealing with things like SOAP envelopes where doctype nodes are not allowed. false [required] (default) Allow doctype nodes in the document.

"ignore-unknown-character-denormalizations" true [required] (default) If, while verifying full normalization when [XML 1.1] is supported, a processor encounters characters for which it cannot determine the normalization properties, then the processor will ignore any possible denormalizations caused by these characters. This parameter is ignored for [XML 1.0]. false [optional] Report an fatal "unknown-character-denormalization" error if a character is encountered for which the processor cannot determine the normalization properties.

"infoset" See the definition of DOMConfiguration for a description of this parameter. Unlike in [DOM Level 3 Core], this parameter will default to true for DOMLSParser.

"namespaces" true [required] (default) Perform the namespace processing as defined in [XML Namespaces] and [XML Namespaces 1.1]. false [optional] Do not perform the namespace processing.

"resource-resolver" [required] A pointer to a DOMLSResourceResolver object, or NULL. If the value of this parameter is not null when an external resource (such as an external XML entity or an XML schema location) is encountered, the implementation will request that the DOMLSResourceResolver referenced in this parameter resolves the resource.

"supported-media-types-only" true [optional] Check that the media type of the parsed resource is a supported media type. If an unsupported media type is encountered, a fatal error of type "unsupported-media-type" will be raised. The media types defined in [IETF RFC 3023] must always be accepted. false [required] (default) Accept any media type.

"validate" See the definition of DOMConfiguration for a description of this parameter. Unlike in [DOM Level 3 Core], the processing of the internal subset is always accomplished, even if this parameter is set to false.

"validate-if-schema" See the definition of DOMConfiguration for a description of this parameter. Unlike in [DOM Level 3 Core], the processing of the internal subset is always accomplished, even if this parameter is set to false.

"well-formed" See the definition of DOMConfiguration for a description of this parameter. Unlike in [DOM Level 3 Core], this parameter cannot be set to false.

In addition to these, Xerces adds these non standard parameters:

"http://apache.org/xml/properties/entity-resolver" A pointer to a XMLEntityResolver object, or NULL. If the value of this parameter is not null when an external resource (such as an external XML entity or an XML schema location) is encountered, the implementation will request that the XMLEntityResolver referenced in this parameter resolves the resource.

"http://apache.org/xml/properties/schema/external-schemaLocation" A string holding a set of [namespaceUri schemaLocation] entries that will be treated as the content of the attribute xsi:schemaLocation of the root element

"http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation" A string holding the schemaLocation for the empty namespace URI that will be treated as the content of the attribute xsi:noNamespaceSchemaLocation of the root element

"http://apache.org/xml/properties/security-manager" A pointer to a SecurityManager object that will control how many entity references will be expanded during parsing

"http://apache.org/xml/properties/scannerName" A string holding the type of scanner used while parsing. The valid names are:

  • IGXMLScanner: the default one, capable of both XMLSchema and DTD validation
  • SGXMLScanner: a scanner that can only perform XMLSchema validation
  • DGXMLScanner: a scanner that can only perform DTD validation
  • WFXMLScanner: a scanner that cannot perform any type validation, only well-formedness

"http://apache.org/xml/properties/parser-use-DOMDocument-from-Implementation" A string holding the capabilities of the DOM implementation to be used to create the DOMDocument resulting from the parse operation. For instance, "LS" or "Core"

"http://apache.org/xml/features/validation/schema" true Enable XMLSchema validation (note that also namespace processing should be enabled) false (default) Don't perform XMLSchema validation

"http://apache.org/xml/features/validation/schema-full-checking" true Turn on full XMLSchema checking (e.g. Unique Particle Attribution) false (default) Don't perform full XMLSchema checking

"http://apache.org/xml/features/validating/load-schema" true (default) Allow the parser to load schemas that are not in the grammar pool false Schemas that are not in the grammar pool are ignored

"http://apache.org/xml/features/dom/user-adopts-DOMDocument" true The DOMDocument objects returned by parse will be owned by the caller false (default) The DOMDocument objects returned by parse will be owned by this DOMLSParser and deleted when released

"http://apache.org/xml/features/nonvalidating/load-external-dtd" true (default) Allow the parser to load external DTDs false References to external DTDs will be ignored

"http://apache.org/xml/features/continue-after-fatal-error" true Parsing should try to continue even if a fatal error has been triggered, trying to generate a DOM tree from a non well-formed XML false (default) Violation of XML rules will abort parsing

"http://apache.org/xml/features/validation-error-as-fatal" true Validation errors are treated as fatal errors, and abort parsing (unless "continue-after-fatal-error" has been specified) false (default) Validation errors are normal errors

"http://apache.org/xml/features/validation/cache-grammarFromParse" true XMLSchemas referenced by an XML file are cached in order to be reused by other parse operations false (default) XMLSchemas loaded during a parse operation will be discarded before the next one

"http://apache.org/xml/features/validation/use-cachedGrammarInParse" true During this parse operation, reuse the XMLSchemas found in the cache false (default) Don't reuse the XMLSchemas found in the cache

"http://apache.org/xml/features/calculate-src-ofs" true During parsing update the position in the source stream false (default) Don't waste time computing the position in the source stream

"http://apache.org/xml/features/standard-uri-conformant" true Require that every URL being resolved is made of valid URL characters only false (default) Allow invalid URL characters in URL (e.g. spaces)

"http://apache.org/xml/features/dom-has-psvi-info" true Add schema informations to DOMElement and DOMAttr nodes in the output DOM tree false (default) Don't store schema informations in the output DOM tree

"http://apache.org/xml/features/generate-synthetic-annotations" true Create annotation objects in the representation of the loaded XMLSchemas false (default) Discard annotations found in the loaded XMLSchemas

"http://apache.org/xml/features/validate-annotations" true Check that annotations are valid according to their XMLSchema definition false (default) Don't validate annotations

"http://apache.org/xml/features/validation/identity-constraint-checking" true (default) Enforce identity constraints specified in the XMLSchema false Don't enforce identity constraints

"http://apache.org/xml/features/validation/ignoreCachedDTD" true Don't reuse DTDs found in the cache, even if use-cachedGrammarInParse is true false (default) Reuse DTDs found in the cache, if use-cachedGrammarInParse is true

"http://apache.org/xml/features/schema/ignore-annotations" true Don't process annotations found in an XMLSchema false (default) Process the annotations found in an XMLSchema

"http://apache.org/xml/features/disable-default-entity-resolution" true Entities will be resolved only by a resolver installed by the user false (default) If the entity resolver has not been installed, or it refuses to resolve the given entity, the parser will try to locate it himself

"http://apache.org/xml/features/validation/schema/skip-dtd-validation" true If XMLSchema validation is true, DTD validation will not be performed false (default) If a DTD is found, it will be used to validate the XML

Returns:
The pointer to the configuration object.
Since:
DOM Level 3
virtual const DOMLSParserFilter* xercesc::DOMLSParser::getFilter ( ) const [pure virtual]

Get a const pointer to the application filter.

This method returns the installed application filter. If no filter has been installed, then it will be a zero pointer.

Returns:
A const pointer to the installed application filter
Since:
DOM Level 3
virtual Grammar* xercesc::DOMLSParser::getGrammar ( const XMLCh *const  nameSpaceKey) const [pure virtual]

Retrieve the grammar that is associated with the specified namespace key.

Parameters:
nameSpaceKeyNamespace key
Returns:
Grammar associated with the Namespace key.
virtual Grammar* xercesc::DOMLSParser::getRootGrammar ( ) const [pure virtual]

Retrieve the grammar where the root element is declared.

Returns:
Grammar where root element declared
virtual XMLFilePos xercesc::DOMLSParser::getSrcOffset ( ) const [pure virtual]

Returns the current src offset within the input source.

Returns:
offset within the input source
virtual const XMLCh* xercesc::DOMLSParser::getURIText ( unsigned int  uriId) const [pure virtual]

Returns the string corresponding to a URI id from the URI string pool.

Parameters:
uriIdid of the string in the URI string pool.
Returns:
URI string corresponding to the URI id.
virtual Grammar* xercesc::DOMLSParser::loadGrammar ( const char *const  systemId,
const Grammar::GrammarType  grammarType,
const bool  toCache = false 
) [pure virtual]

Preparse schema grammar (XML Schema, DTD, etc.) via a file path or URL.

This method invokes the preparsing process on a schema grammar XML file specified by the file path parameter. If the 'toCache' flag is enabled, the parser will cache the grammars for re-use. If a grammar key is found in the pool, no caching of any grammar will take place.

Parameters:
systemIdA const char pointer to a native string which contains the path to the XML grammar file to be preparsed.
grammarTypeThe grammar type (Schema or DTD).
toCacheIf true, we cache the preparsed grammar, otherwise, no chaching. Default is false.
Returns:
The preparsed schema grammar object (SchemaGrammar or DTDGrammar). That grammar object is owned by the parser.
Exceptions:
SAXExceptionAny SAX exception, possibly wrapping another exception.
XMLExceptionAn exception from the parser or client handler code.
DOMExceptionA DOM exception as per DOM spec.
virtual Grammar* xercesc::DOMLSParser::loadGrammar ( const DOMLSInput source,
const Grammar::GrammarType  grammarType,
const bool  toCache = false 
) [pure virtual]

Preparse schema grammar (XML Schema, DTD, etc.) via an input source object.

This method invokes the preparsing process on a schema grammar XML file specified by the DOMLSInput parameter. If the 'toCache' flag is enabled, the parser will cache the grammars for re-use. If a grammar key is found in the pool, no caching of any grammar will take place.

Parameters:
sourceA const reference to the DOMLSInput object which points to the schema grammar file to be preparsed.
grammarTypeThe grammar type (Schema or DTD).
toCacheIf true, we cache the preparsed grammar, otherwise, no chaching. Default is false.
Returns:
The preparsed schema grammar object (SchemaGrammar or DTDGrammar). That grammar object is owned by the parser.
Exceptions:
SAXExceptionAny SAX exception, possibly wrapping another exception.
XMLExceptionAn exception from the parser or client handler code.
DOMExceptionA DOM exception as per DOM spec.
See also:
DOMLSInput::DOMLSInput
virtual Grammar* xercesc::DOMLSParser::loadGrammar ( const XMLCh *const  systemId,
const Grammar::GrammarType  grammarType,
const bool  toCache = false 
) [pure virtual]

Preparse schema grammar (XML Schema, DTD, etc.) via a file path or URL.

This method invokes the preparsing process on a schema grammar XML file specified by the file path parameter. If the 'toCache' flag is enabled, the parser will cache the grammars for re-use. If a grammar key is found in the pool, no caching of any grammar will take place.

Parameters:
systemIdA const XMLCh pointer to the Unicode string which contains the path to the XML grammar file to be preparsed.
grammarTypeThe grammar type (Schema or DTD).
toCacheIf true, we cache the preparsed grammar, otherwise, no chaching. Default is false.
Returns:
The preparsed schema grammar object (SchemaGrammar or DTDGrammar). That grammar object is owned by the parser.
Exceptions:
SAXExceptionAny SAX exception, possibly wrapping another exception.
XMLExceptionAn exception from the parser or client handler code.
DOMExceptionA DOM exception as per DOM spec.
virtual DOMDocument* xercesc::DOMLSParser::parse ( const DOMLSInput source) [pure virtual]

Parse an XML document from a resource identified by a DOMLSInput.

The parser owns the returned DOMDocument. It will be deleted when the parser is released.

Parameters:
sourceThe DOMLSInput from which the source of the document is to be read.
Returns:
If the DOMLSParser is a synchronous DOMLSParser the newly created and populated DOMDocument is returned. If the DOMLSParser is asynchronous then NULL is returned since the document object may not yet be constructed when this method returns.
Exceptions:
DOMExceptionINVALID_STATE_ERR: Raised if the DOMLSParser::busy attribute is true.
DOMLSExceptionPARSE_ERR: Starting from Xerces-C++ 4.0.0 this exception is raised if the DOMLSParser was unable to load the XML document. DOM applications should attach a DOMErrorHandler using the parameter "error-handler" if they wish to get details on the error.
See also:
DOMLSInput::DOMLSInput
DOMConfiguration
resetDocumentPool
Since:
DOM Level 3
virtual DOMDocument* xercesc::DOMLSParser::parseURI ( const XMLCh *const  uri) [pure virtual]

Parse an XML document from a location identified by a URI reference [IETF RFC 2396].

If the URI contains a fragment identifier (see section 4.1 in [IETF RFC 2396]), the behavior is not defined by this specification, future versions of this specification may define the behavior.

The parser owns the returned DOMDocument. It will be deleted when the parser is released.

Parameters:
uriThe location of the XML document to be read (in Unicode)
Returns:
If the DOMLSParser is a synchronous DOMLSParser the newly created and populated DOMDocument is returned. If the DOMLSParser is asynchronous then NULL is returned since the document object is not yet parsed when this method returns.
Exceptions:
DOMExceptionINVALID_STATE_ERR: Raised if the DOMLSParser::busy attribute is true.
DOMLSExceptionPARSE_ERR: Starting from Xerces-C++ 4.0.0 this exception is raised if the DOMLSParser was unable to load the XML document. DOM applications should attach a DOMErrorHandler using the parameter "error-handler" if they wish to get details on the error.
See also:
parse(DOMLSInput,...)
resetDocumentPool
Since:
DOM Level 3
virtual DOMDocument* xercesc::DOMLSParser::parseURI ( const char *const  uri) [pure virtual]

Parse an XML document from a location identified by a URI reference [IETF RFC 2396].

If the URI contains a fragment identifier (see section 4.1 in [IETF RFC 2396]), the behavior is not defined by this specification, future versions of this specification may define the behavior.

The parser owns the returned DOMDocument. It will be deleted when the parser is released.

Parameters:
uriThe location of the XML document to be read (in the local code page)
Returns:
If the DOMLSParser is a synchronous DOMLSParser the newly created and populated DOMDocument is returned. If the DOMLSParser is asynchronous then NULL is returned since the document object is not yet parsed when this method returns.
Exceptions:
DOMExceptionINVALID_STATE_ERR: Raised if the DOMLSParser::busy attribute is true.
DOMLSExceptionPARSE_ERR: Starting from Xerces-C++ 4.0.0 this exception is raised if the DOMLSParser was unable to load the XML document. DOM applications should attach a DOMErrorHandler using the parameter "error-handler" if they wish to get details on the error.
See also:
parse(DOMLSInput,...)
resetDocumentPool
Since:
DOM Level 3
virtual DOMNode* xercesc::DOMLSParser::parseWithContext ( const DOMLSInput source,
DOMNode contextNode,
const ActionType  action 
) [pure virtual]

Parse an XML fragment from a resource identified by a DOMLSInput and insert the content into an existing document at the position specified with the context and action arguments.

When parsing the input stream, the context node (or its parent, depending on where the result will be inserted) is used for resolving unbound namespace prefixes. The context node's ownerDocument node (or the node itself if the node of type DOCUMENT_NODE) is used to resolve default attributes and entity references. As the new data is inserted into the document, at least one mutation event is fired per new immediate child or sibling of the context node. If the context node is a DOMDocument node and the action is ACTION_REPLACE_CHILDREN, then the document that is passed as the context node will be changed such that its xmlEncoding, documentURI, xmlVersion, inputEncoding, xmlStandalone, and all other such attributes are set to what they would be set to if the input source was parsed using DOMLSParser::parse(). This method is always synchronous, even if the DOMLSParser is asynchronous (DOMLSParser::getAsync() returns true). If an error occurs while parsing, the caller is notified through the ErrorHandler instance associated with the "error-handler" parameter of the DOMConfiguration. When calling parseWithContext, the values of the following configuration parameters will be ignored and their default values will always be used instead: "validate", "validate-if-schema" "element-content-whitespace". Other parameters will be treated normally, and the parser is expected to call the DOMLSParserFilter just as if a whole document was parsed.

Parameters:
sourceThe DOMLSInput from which the source document is to be read. The source document must be an XML fragment, i.e. anything except a complete XML document (except in the case where the context node of type DOCUMENT_NODE, and the action is ACTION_REPLACE_CHILDREN), a DOCTYPE (internal subset), entity declaration(s), notation declaration(s), or XML or text declaration(s).
contextNodeThe node that is used as the context for the data that is being parsed. This node must be a DOMDocument node, a DOMDocumentFragment node, or a node of a type that is allowed as a child of an DOMElement node, e.g. it cannot be an DOMAttribute node.
actionThis parameter describes which action should be taken between the new set of nodes being inserted and the existing children of the context node. The set of possible actions is defined in ACTION_TYPES above.
Returns:
Return the node that is the result of the parse operation. If the result is more than one top-level node, the first one is returned.
Exceptions:
DOMExceptionHIERARCHY_REQUEST_ERR: Raised if the content cannot replace, be inserted before, after, or as a child of the context node (see also DOMNode::insertBefore or DOMNode::replaceChild in [DOM Level 3 Core]). NOT_SUPPORTED_ERR: Raised if the DOMLSParser doesn't support this method, or if the context node is of type DOMDocument and the DOM implementation doesn't support the replacement of the DOMDocumentType child or DOMElement child. NO_MODIFICATION_ALLOWED_ERR: Raised if the context node is a read only node and the content is being appended to its child list, or if the parent node of the context node is read only node and the content is being inserted in its child list. INVALID_STATE_ERR: Raised if the DOMLSParser::getBusy() returns true.
DOMLSExceptionPARSE_ERR: Raised if the DOMLSParser was unable to load the XML fragment. DOM applications should attach a DOMErrorHandler using the parameter "error-handler" if they wish to get details on the error.
Since:
DOM Level 3
virtual void xercesc::DOMLSParser::release ( ) [pure virtual]

Called to indicate that this DOMLSParser is no longer in use and that the implementation may relinquish any resources associated with it.

Access to a released object will lead to unexpected result.

virtual void xercesc::DOMLSParser::resetCachedGrammarPool ( ) [pure virtual]

Clear the cached grammar pool.

virtual void xercesc::DOMLSParser::resetDocumentPool ( ) [pure virtual]

Reset the documents vector pool and release all the associated memory back to the system.

When parsing a document using a DOM parser, all memory allocated for a DOM tree is associated to the DOM document.

If you do multiple parse using the same DOM parser instance, then multiple DOM documents will be generated and saved in a vector pool. All these documents (and thus all the allocated memory) won't be deleted until the parser instance is destroyed.

If you don't need these DOM documents anymore and don't want to destroy the DOM parser instance at this moment, then you can call this method to reset the document vector pool and release all the allocated memory back to the system.

It is an error to call this method if you are in the middle of a parse (e.g. in the mid of a progressive parse).

Exceptions:
IOExceptionAn exception from the parser if this function is called when a parse is in progress.
virtual void xercesc::DOMLSParser::setFilter ( DOMLSParserFilter *const  filter) [pure virtual]

Set the application filter.

When the application provides a filter, the parser will call out to the filter at the completion of the construction of each DOMElement node. The filter implementation can choose to remove the element from the document being constructed or to terminate the parse early. The filter is invoked after the operations requested by the DOMConfiguration parameters have been applied. For example, if "validate" is set to true, the validation is done before invoking the filter.

Any previously set filter is merely dropped, since the parser does not own them.

Parameters:
filterA const pointer to the user supplied application filter.
See also:
getFilter
Since:
DOM Level 3

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMDocumentType__inherit__graph.md50000644000151400015140000000004011653571065024022 000000000000006dd230b65548543bcdde5e299da19696XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMElement__inherit__graph.png0000644000151400015140000001005211653571066023077 00000000000000‰PNG  IHDR¥u w¶¢bKGDÿÿÿ ½§“ßIDATxœíkT×ÇO @”7DPJ/*mÕR@–ˆxmDA¡-Dm»¬P½*¢­KQX®ŠVリ…YK@‘*(©mzIo’B"yÌýpº¦SB0P%÷rÎïÓ™={ïÙçü3g^I†FÀ ƒž® ÀŒ)Xo´Àz£Ö-èÚ8ݺuëÀ¯»ÌßÁÏÏo÷îÝ/uÓJïîîî²²²ððð¿]æµP]]=yòdm<µÒ’››;Úz0¯—Õ«Wké‰ßhõF ¬7Z`½ÑëhéM£0mÚ´èèèžžªƒD"IJJòòò255}ûí·¿ùæ…BAƾù曃/-]º”F£µ´´@‡ððpªCKK FÓ²¶9´ôTUUñx¼ÎÎN‹ÕÛÛ;wî\‘HW‰Åâ·Þz«¶¶öСCuuu;wîüþûï/^¬T*¡Ã“'OÉTB¡°²²’šœÍfÿðÃcÖ—Q€œÞVVV¶¶¶ùùùÎÎÎééépUJJŠ••Uyyypp°««khhhMMÍ“'OX,t ÌËË#SùûûS“ÇÇÇoÞ¼™ÏçYwFÊ+Ó»¨¨ÈÁÁA(.]ºäêê*‘Hr¹<))ÉÆÆÆÚÚ:))I.—É«¼¼ÜÑѱ¢¢bïÞ½ŽŽŽVVVÑÑÑ䮦¸zõª§§'ƒÁpvv¾pá@¡P N‡™'i4ÚÆ‹‹‹ábNNΞ={ôõõI“¤¤¤œœ¸ž››KÎØl6;,,ŒšpëÖ­nnnqqqêß*‰D~ø¡¥¥%“ÉLLL”ÉdJ¥255ÕÕÕÕÔÔÔÇÇçÞ½{Ãôý•Ahœ£^êÃçómllîÝ»‡ZµjU{{{SSÓܹswìØñèÑ#ÀÒ¥Koܸ‘œœìîîÞÔÔÄårçÍ›—˜˜¨)ª¯¯ÏÈÈ(33“Çã>}šN§÷õõ¥¦¦.‰N:¥ÞÿöÛo½¼¼à,ŸŸogg'‚èííýè£&Ožlaa'‘H¨zËd²ÄÄD{{{33³µk× …BhW‚e¼ñƆ††nnn………ÄS7AmS?èS§NŠŠ¢z‚èëëÛ¶mÛ¬Y³ŒÝÝÝ8ÐßßOÆB9+**ƒìƒôV©T‹/&7-Ö¯_oaaagg·uëV©TªP(RSS]\\LLL,X÷cM}íõ¦Z|9777""BOŒN€Ï¿µù‚r÷[ëXo´Àz£Ö-°ÞhõF ¬7Z ª÷½{mº.A7Œà÷%ðîàø ­í &³ÃÐp@×…¼¸\®ŸŸŸ6žZé=uêÔñôã1©”.•N°µ±뺖WƒŸŸßüùóµñÔêþù8#5µ$=ýº““Euõ¿t]ËXƒâñ;/¯ðïÿç×_»t]ËXƒœÞ´wv úW®Ô麜±9½ êét}€\®ÌË«U©Ð:œ¡¥·R©b³kŠ?¾±ÔÓ#®©Aë -½««[„Â~rÑÀ@??¿^‡õŒ=héÍáÔÓévY.WÖËåÊaBÆé=0 (*jP(TTcoï‹ÊÊf]•4ö ¤÷¿J¥/ét‡ƒÐY:Bzs8uzzƒû«P¨®]kìï'7V_ *z÷õ½¸~ý¡R©R_%—+ËÊŽ}I:½KK (4­Eç,½ 4*ªR7oþÚÛ+Ëzt*ÏK:;…ÔÉ|Á‚û÷‡þƒ´ØÚšàéðÿ)㿇&sðßMZY™:9Y褂Ê|Ž`½ÑëXo´Àz£Ö-°ÞhõF ¬7Z`½ÑëXo´Àz£Ö-°ÞhõF ¬7Z`½ÑëXo´Àz£Ö-°ÞhõF ¬7Z`½ÑëXo´Àz£Ö-°ÞhõF‹¿üÞ¿­­­¬¬LW¥Œ1eee|~®«xí8;;þ¹L}™(|/, Xëé麊±`Ð{d‡ø?›7oŽ}Y˜×Á¾}ûYðñ-°ÞhõF ¬7Z`½Ñëãóÿȶ——WBB‚¹¹9i”ÉdgÏž­­­åñxŽŽŽ¾¾¾kÖ¬Ñ×ׇ±.\ Ñh¤ÿöíÛkjjrrr¨ÉInÞ¼ùôéÓuëÖý_ÍŽO½Ç·³³S©TW®\‰‹‹;sæÌĉýýý “'OŽ···üøñéÓ§ïß¿ôèQøé|>¿µµÕÅŦ‹ÅêÉǾS·qãÆÂÂÂQÄŽÛùÜÜÜ|Ê”)–––sæÌÙ¿¿]^^\uþüyssó´´´wÞy‡Édúúúfffòùü’’èàíí]QQA¦ªªªš={¶zr*cÕ-P©T½½½£‹±ÞUUUaaab±P^^¾~ýz™LP(™™™+W®\¹reff¦B¡xúôi@@@}}}DDDCC‹ÅŠˆˆ 9xð`__̦7yýúu€R©2nB½=¶|ùò»wïÂÅÒÒÒèèhê» Æš5kJKKáâÂ… +**È޾uë–¿¿ÿˆFiÈ~”””ÄÄÄ„„„\¼xñúõëk×®]¶lÙ™3g†*++‹‰‰Y¾|ùåË—›6m„††Ž¨$Ȉõ~÷Ýw½½½322„BaFFÆW_}Å`0l6›Çãeee=z´¾¾žÅbAÿÜÜÜ;v466VVV>>++K,Ÿ8qÀáp´”ŒÊhæóO?ý´¾¾>11qÅŠnnnÐXRRòùçŸ[[[;;;ÇÇÇ×Ôüñè)..nΜ9åååü±³³óôéÓ·oßîîî®)J.—!•J ƒƒƒ¯^½jddT\\Ÿ?}út@KKËÝ»w×­[7dÔ‹/T*Urr²B¡(//ßµkWAA¦p-!¢¨¨ˆ|Cv``àùóççÌ™CÂe2Ù¥K—¨cíááÑßßÏårïß¿¿mÛ¶‘‘¦Ñ]õÊðo2âùœ ˆÃ‡‡††îÞ½»®®®ªª Ú}}}O:ÕÝÝÝÖÖöå—_P£‚‚‚¾ûî»Ç?~üøØ±cÝÝÝš¢h4ZRRRee¥D"‘Ëåt:ÝÈÈHS¸D")..VoD"‘@ xþüyccãîÝ»y<Þêի᪘˜¡PøÅ_ÔÔÔtvvþôÓO –––+V¬øs\ôôüüüÒÒÒfΜI½p§&§2ÈaøÑÐĈ¢ÔO´aÄûwAAH$Z»v-NߺukZZš‡‡‡©©illìñãÇ7lØ@£ÑüüüâããŸ?NFEEEÉd²¤¤$™L6þüøøxhW244ܹsgVVÖ³gÏìíí÷îÝkhh¨)\$9r¶©mÀ–-[`ÃÚÚÚÓÓ3;;›:©fgg³X¬ÌÌÌ®®.;;»E‹…‡‡P{PXX¸råJõA ““ ºÍ¢Þ/mÆVË([[[U«V]»vM›´Tþò¾šÜÜ܈ˆˆÿñ;DíÙ·oŸ••Unn.i·÷[0C‚õF ¬7Z`½ÑëXo´Àz£Ö-†¸¿öã?Ž}˜×AWW—••Õ2„ÞÔ§^˜ÿw¼¼¼¨‹¨¼ÿÁÇo´Àz£Ö-°Þhñ_`høŸ±ú?IEND®B`‚XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMDocumentType.html0000644000151400015140000004146511653571066021121 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMDocumentType Class Reference

Each DOMDocument has a doctype attribute whose value is either null or a DOMDocumentType object. More...

#include <DOMDocumentType.hpp>

Inheritance diagram for xercesc::DOMDocumentType:

List of all members.

Public Member Functions

Destructor
virtual ~DOMDocumentType ()
 Destructor.
Functions introduced in DOM Level 1
virtual const XMLCh * getName () const =0
 The name of DTD; i.e., the name immediately following the DOCTYPE keyword.
virtual DOMNamedNodeMapgetEntities () const =0
 A DOMNamedNodeMap containing the general entities, both external and internal, declared in the DTD.
virtual DOMNamedNodeMapgetNotations () const =0
 A DOMNamedNodeMap containing the notations declared in the DTD.
Functions introduced in DOM Level 2.
virtual const XMLCh * getPublicId () const =0
 Get the public identifier of the external subset.
virtual const XMLCh * getSystemId () const =0
 Get the system identifier of the external subset.
virtual const XMLCh * getInternalSubset () const =0
 The internal subset as a string, or null if there is none.

Protected Member Functions

Hidden constructors
 DOMDocumentType ()

Detailed Description

Each DOMDocument has a doctype attribute whose value is either null or a DOMDocumentType object.

The DOMDocumentType interface in the DOM Core provides an interface to the list of entities that are defined for the document, and little else because the effect of namespaces and the various XML schema efforts on DTD representation are not clearly understood as of this writing.

The DOM Level 2 doesn't support editing DOMDocumentType nodes.

See also the Document Object Model (DOM) Level 2 Core Specification.

Since:
DOM Level 1

Constructor & Destructor Documentation

xercesc::DOMDocumentType::DOMDocumentType ( ) [inline, protected]
virtual xercesc::DOMDocumentType::~DOMDocumentType ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual DOMNamedNodeMap* xercesc::DOMDocumentType::getEntities ( ) const [pure virtual]

A DOMNamedNodeMap containing the general entities, both external and internal, declared in the DTD.

Parameter entities are not contained. Duplicates are discarded. For example in: <!DOCTYPE
ex SYSTEM "ex.dtd" [ <!ENTITY foo "foo"> <!ENTITY bar
"bar"> <!ENTITY bar "bar2"> <!ENTITY % baz "baz">
]> <ex/>
the interface provides access to foo and the first declaration of bar but not the second declaration of bar or baz. Every node in this map also implements the DOMEntity interface.
The DOM Level 2 does not support editing entities, therefore entities cannot be altered in any way.

Since:
DOM Level 1
virtual const XMLCh* xercesc::DOMDocumentType::getInternalSubset ( ) const [pure virtual]

The internal subset as a string, or null if there is none.

This is does not contain the delimiting square brackets.The actual content returned depends on how much information is available to the implementation. This may vary depending on various parameters, including the XML processor used to build the document.

Returns:
The internal subset as a string.
Since:
DOM Level 2
virtual const XMLCh* xercesc::DOMDocumentType::getName ( ) const [pure virtual]

The name of DTD; i.e., the name immediately following the DOCTYPE keyword.

Since:
DOM Level 1
virtual DOMNamedNodeMap* xercesc::DOMDocumentType::getNotations ( ) const [pure virtual]

A DOMNamedNodeMap containing the notations declared in the DTD.

Duplicates are discarded. Every node in this map also implements the DOMNotation interface.
The DOM Level 2 does not support editing notations, therefore notations cannot be altered in any way.

Since:
DOM Level 1
virtual const XMLCh* xercesc::DOMDocumentType::getPublicId ( ) const [pure virtual]

Get the public identifier of the external subset.

Returns:
The public identifier of the external subset.
Since:
DOM Level 2
virtual const XMLCh* xercesc::DOMDocumentType::getSystemId ( ) const [pure virtual]

Get the system identifier of the external subset.

Returns:
The system identifier of the external subset.
Since:
DOM Level 2

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMLSOutput.html0000644000151400015140000003757411653571065020245 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMLSOutput Class Reference

This interface represents an output destination for data. More...

#include <DOMLSOutput.hpp>

List of all members.

Public Member Functions

Destructor
virtual ~DOMLSOutput ()
 Destructor.
Functions introduced in DOM Level 3
virtual XMLFormatTarget * getByteStream () const =0
 Returns the byte stream for this input source.
virtual const XMLCh * getEncoding () const =0
 An input source can be set to force the parser to assume a particular encoding for the data that input source reprsents, via the setEncoding() method.
virtual const XMLCh * getSystemId () const =0
 Get the system identifier for this input source.
virtual void setByteStream (XMLFormatTarget *stream)=0
 Sets the byte stream for this input source.
virtual void setEncoding (const XMLCh *const encodingStr)=0
 Set the encoding which will be required for use with the XML text read via a stream opened by this input source.
virtual void setSystemId (const XMLCh *const systemId)=0
 Set the system identifier for this input source.
Non-standard Extension
virtual void release ()=0
 Called to indicate that this DOMLSOutput is no longer in use and that the implementation may relinquish any resources associated with it.

Protected Member Functions

Hidden constructors
 DOMLSOutput ()

Detailed Description

This interface represents an output destination for data.

See also:
XMLFormatTarget
Since:
DOM Level 3

Constructor & Destructor Documentation

xercesc::DOMLSOutput::DOMLSOutput ( ) [inline, protected]
virtual xercesc::DOMLSOutput::~DOMLSOutput ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual XMLFormatTarget* xercesc::DOMLSOutput::getByteStream ( ) const [pure virtual]

Returns the byte stream for this input source.

See also:
InputSource
virtual const XMLCh* xercesc::DOMLSOutput::getEncoding ( ) const [pure virtual]

An input source can be set to force the parser to assume a particular encoding for the data that input source reprsents, via the setEncoding() method.

This method returns name of the encoding that is to be forced. If the encoding has never been forced, it returns a null pointer.

Returns:
The forced encoding, or null if none was supplied.
See also:
setEncoding
Since:
DOM Level 3
virtual const XMLCh* xercesc::DOMLSOutput::getSystemId ( ) const [pure virtual]

Get the system identifier for this input source.

If the system ID is a URL, it will be fully resolved.

Returns:
The system identifier.
See also:
setSystemId
Since:
DOM Level 3
virtual void xercesc::DOMLSOutput::release ( ) [pure virtual]

Called to indicate that this DOMLSOutput is no longer in use and that the implementation may relinquish any resources associated with it.

Access to a released object will lead to unexpected result.

virtual void xercesc::DOMLSOutput::setByteStream ( XMLFormatTarget *  stream) [pure virtual]

Sets the byte stream for this input source.

See also:
BinInputStream
virtual void xercesc::DOMLSOutput::setEncoding ( const XMLCh *const  encodingStr) [pure virtual]

Set the encoding which will be required for use with the XML text read via a stream opened by this input source.

This is usually not set, allowing the encoding to be sensed in the usual XML way. However, in some cases, the encoding in the file is known to be incorrect because of intermediate transcoding, for instance encapsulation within a MIME document.

Parameters:
encodingStrThe name of the encoding to force.
Since:
DOM Level 3
virtual void xercesc::DOMLSOutput::setSystemId ( const XMLCh *const  systemId) [pure virtual]

Set the system identifier for this input source.

The system id is always required. The public id may be used to map to another system id, but the system id must always be present as a fall back.

If the system ID is a URL, it must be fully resolved.

Parameters:
systemIdThe system identifier as a string.
See also:
getSystemId
Since:
DOM Level 3

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/DOMText_8hpp.html0000644000151400015140000000753411653571066015320 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMText.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <xercesc/dom/DOMCharacterData.hpp>
Include dependency graph for DOMText.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMText
 The DOMText interface inherits from DOMCharacterData and represents the textual content (termed character data in XML) of an DOMElement or DOMAttr. More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/DOMImplementationSource_8hpp_source.html0000644000151400015140000002133711653571065022116 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMImplementationSource.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  * 
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  * 
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMImplementationSource.hpp 527149 2007-04-10 14:56:39Z amassari $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMIMPLEMENTATIONSOURCE_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMIMPLEMENTATIONSOURCE_HPP
00024 
00034 #include <xercesc/util/XercesDefs.hpp>
00035 
00036 XERCES_CPP_NAMESPACE_BEGIN
00037 
00038 
00039 class DOMImplementation;
00040 class DOMImplementationList;
00041 
00042 class CDOM_EXPORT DOMImplementationSource
00043 {
00044 protected :
00045     // -----------------------------------------------------------------------
00046     //  Hidden constructors
00047     // -----------------------------------------------------------------------
00050     DOMImplementationSource() {};
00052 
00053 private:
00054     // -----------------------------------------------------------------------
00055     // Unimplemented constructors and operators
00056     // -----------------------------------------------------------------------
00059     DOMImplementationSource(const DOMImplementationSource &);
00060     DOMImplementationSource & operator = (const DOMImplementationSource &);
00062 
00063 
00064 public:
00065     // -----------------------------------------------------------------------
00066     //  All constructors are hidden, just the destructor is available
00067     // -----------------------------------------------------------------------
00074     virtual ~DOMImplementationSource() {};
00076 
00077     // -----------------------------------------------------------------------
00078     //  Virtual DOMImplementationSource interface
00079     // -----------------------------------------------------------------------
00093     virtual DOMImplementation* getDOMImplementation(const XMLCh* features) const = 0;
00094 
00105     virtual DOMImplementationList* getDOMImplementationList(const XMLCh* features) const = 0;
00107 
00108 };
00109 
00110 XERCES_CPP_NAMESPACE_END
00111 
00112 #endif
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMDocumentTraversal.html0000644000151400015140000004022511653571066022134 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMDocumentTraversal Class Reference

DOMDocumentTraversal contains methods that create DOMNodeIterators and DOMTreeWalkers to traverse a node and its children in document order (depth first, pre-order traversal, which is equivalent to the order in which the start tags occur in the text representation of the document). More...

#include <DOMDocumentTraversal.hpp>

Inheritance diagram for xercesc::DOMDocumentTraversal:

List of all members.

Public Member Functions

Destructor
virtual ~DOMDocumentTraversal ()
 Destructor.
Functions introduced in DOM Level 2
virtual DOMNodeIteratorcreateNodeIterator (DOMNode *root, DOMNodeFilter::ShowType whatToShow, DOMNodeFilter *filter, bool entityReferenceExpansion)=0
 Creates a NodeIterator object.
virtual DOMTreeWalkercreateTreeWalker (DOMNode *root, DOMNodeFilter::ShowType whatToShow, DOMNodeFilter *filter, bool entityReferenceExpansion)=0
 Creates a TreeWalker object.

Protected Member Functions

Hidden constructors
 DOMDocumentTraversal ()

Detailed Description

DOMDocumentTraversal contains methods that create DOMNodeIterators and DOMTreeWalkers to traverse a node and its children in document order (depth first, pre-order traversal, which is equivalent to the order in which the start tags occur in the text representation of the document).

In DOMs which support the Traversal feature, DOMDocumentTraversal will be implemented by the same objects that implement the DOMDocument interface.

See also the Document Object Model (DOM) Level 2 Traversal and Range Specification.

Since:
DOM Level 2

Constructor & Destructor Documentation

xercesc::DOMDocumentTraversal::DOMDocumentTraversal ( ) [inline, protected]
virtual xercesc::DOMDocumentTraversal::~DOMDocumentTraversal ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual DOMNodeIterator* xercesc::DOMDocumentTraversal::createNodeIterator ( DOMNode root,
DOMNodeFilter::ShowType  whatToShow,
DOMNodeFilter filter,
bool  entityReferenceExpansion 
) [pure virtual]

Creates a NodeIterator object.

(DOM2)

NodeIterators are used to step through a set of nodes, e.g. the set of nodes in a NodeList, the document subtree governed by a particular node, the results of a query, or any other set of nodes. The set of nodes to be iterated is determined by the implementation of the NodeIterator. DOM Level 2 specifies a single NodeIterator implementation for document-order traversal of a document subtree. Instances of these iterators are created by calling DOMDocumentTraversal.createNodeIterator().

To produce a view of the document that has entity references expanded and does not expose the entity reference node itself, use the whatToShow flags to hide the entity reference node and set expandEntityReferences to true when creating the iterator. To produce a view of the document that has entity reference nodes but no entity expansion, use the whatToShow flags to show the entity reference node and set expandEntityReferences to false.

Parameters:
rootThe root node of the DOM tree
whatToShowThis attribute determines which node types are presented via the iterator.
filterThe filter used to screen nodes
entityReferenceExpansionThe value of this flag determines whether the children of entity reference nodes are visible to the iterator. If false, they will be skipped over.
Since:
DOM Level 2
virtual DOMTreeWalker* xercesc::DOMDocumentTraversal::createTreeWalker ( DOMNode root,
DOMNodeFilter::ShowType  whatToShow,
DOMNodeFilter filter,
bool  entityReferenceExpansion 
) [pure virtual]

Creates a TreeWalker object.

(DOM2)

TreeWalker objects are used to navigate a document tree or subtree using the view of the document defined by its whatToShow flags and any filters that are defined for the TreeWalker. Any function which performs navigation using a TreeWalker will automatically support any view defined by a TreeWalker.

Omitting nodes from the logical view of a subtree can result in a structure that is substantially different from the same subtree in the complete, unfiltered document. Nodes that are siblings in the TreeWalker view may be children of different, widely separated nodes in the original view. For instance, consider a Filter that skips all nodes except for DOMText nodes and the root node of a document. In the logical view that results, all text nodes will be siblings and appear as direct children of the root node, no matter how deeply nested the structure of the original document.

To produce a view of the document that has entity references expanded and does not expose the entity reference node itself, use the whatToShow flags to hide the entity reference node and set expandEntityReferences to true when creating the TreeWalker. To produce a view of the document that has entity reference nodes but no entity expansion, use the whatToShow flags to show the entity reference node and set expandEntityReferences to false

Parameters:
rootThe root node of the DOM tree
whatToShowThis attribute determines which node types are presented via the tree-walker.
filterThe filter used to screen nodes
entityReferenceExpansionThe value of this flag determines whether the children of entity reference nodes are visible to the tree-walker. If false, they will be skipped over.
Since:
DOM Level 2

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/DOMText_8hpp__incl.png0000644000151400015140000001660611653571065016303 00000000000000‰PNG  IHDRÐuq™'¾bKGDÿÿÿ ½§“;IDATxœíÝi@W»àÂ¾È¾ŠˆŠ("ˆâÖ*­VZE\º|µ–ÞBX\qQ–ÜÛŠ–Å…°"‹ ZT´  ¨È¢ÔÑ*Y$@€°„Ìý1ýÒ˜„€2Þç×prΙwNμ™ “†aÀð“":+ ဘ@Â1„ b"Mt@|nܸBt£Unn.Ñ!€QîÒÐÐpíÚµ%K–È(ÓØØXUUEt@@Âs‚ƒƒ‰a”ÉÏÏß¿?ÑQIçp@L ဘ@Â1„ b Ä®R¼ìíí9˺ºº³fÍÚºu«šš§°»»;!!áöíÛ4ÍÈÈÈÎÎÎÃÃL&ãmÇŸ˜˜H"‘8õKJJ’’’=ztðàAþ5ÆÇÇ›˜˜¼ØIIIãÇÏ~>pÑÑÑúúúl6ûåË—ééé›7o>uꔲ²2B¨««këÖ­êêêÞÞÞÏž=;yòä;w¢¢¢¤¤¤B¯^½zúô)'2Œòòr|ÙÆÆ&==!D£Ñ¶oߎ/#„Æ7ÄÀh4Ú–-[²²²D»½ˆœR¨©©ihhhiiÍž=ûàÁƒúúú©©©øK¿üò‹šš•J?¾¡¡¡]LLÌ«W¯rrrð ÖÖÖùùùœ® ­¬¬ðe999 üxY㿤¥‡úÁÏf³ÛÛÛEµ™ˆ$\0‰´zõꢢ"üÏÜÜÜ7â³8yyyÎ/_—,Y’ŸŸÏ¹Ïò7/^<èZX,VLLÌš5kÖ¬YÃb± ]]] Bèúõë6lèîîÞ¶mBè³Ï>ØÉ;w¼¼¼œœœ’““Buuuööö6lX³fÍÑ£Gûúú¾ûèð6 á‚ÁÖ××#„:::ZZZøÏ·š˜˜¼xñ_ž9s&“É|úô)B¨³³³´´ÔÆÆfÐU¤¥¥Ñh´ØØØ¨¨¨ÒÒÒÓ§Oøá‡ÖÖÖÇŽ£ÓéÇŽÛµk—¼¼üñãÇB;)..Ž8qâç@8333,,ìСCÅÅÅgΜRÀpƒ„ D€D"±Ùl|YJJjÑ¢EøY…?ÿüÓÂÂb(§hsrr¾ûî;É“'{{{—”” „¾ýöÛÒÒR …âìì<}úôA;qwwWTT´µµEá‡Æ¡­[·š™™ýç?ÿᆠ,`¸Aƒ«­­500@)++khhTWWóT¨®®655åüÉ9«0Äó ¡W¯^¹¸¸ØÛÛÛÛÛS(†¯ÎÑÑñùóçÎÎÎCéDSS!Ä}BÈÐÐ_022jjjRÀpƒ„ aØ… .\ˆÿéààðË/¿pŽgBÝÝÝ¿þúëüùó9%]]]•••wîÜÁ7¥ªªš”””——————Ÿ:hll<þ¼µµ5þç xR-®¶¶_xùò%ž‘*`¸A´¶¶¶´´477———ïÙ³‡F£¹¹¹á/mÚ´‰N§ûúú–””ÔÖÖþñÇ[·nÕÒÒâ>ÅÏ*P©T333î x…°³³‹ohh¨©© ÈÌÌÄ0,<<ü³Ï>Û³gÏÝ»w 9•™L&¾péÒ¥ÎÎNá=GGG×ÕÕ=|øðĉË–-RÀpƒëpÛ·oÇttt,--ãââ”””ðEEŸ¸¸Ó§OÇÄÄÔ××ëëë/]ºtíÚµ222Ü=ØÛÛgee­Y³fˆküꫯ¢££¿þúk‰´hÑ"ooïÌÌÌÖÖVOOOiiéï¿ÿžJ¥ZXXèééYXX¸¸¸üöÛo¡ÈÈH+++Nl988øùùuww/]ºÔËË ?ÀSø¶ãÀ»!ÁcÒÇŽsçι»»çå刘ÔÕÕ­_¿žg{ ‡ßöðþà”ˆ $\ ±”””œœœ†R€x@ÂKMMÍ××w(…ˆ$\H¸ &p@L ဘ@Â1„ b?ís(ŠÈûÄ02†‘¥¤zEÞó[éï—'“{b^õmÐétÑvÆ,H¸cÈ„ Ö®]+ònÛÚ䞤Q()/½½íýýWÈÊŽÊ0zA‚•—¿ôõ=[SÓH¡¬ðö¶—––¯ál6væLÑþýYÚÚ*î66&DGÆH¸€WO+2òrllÞüù“##ݵˆŽHô^¾l 8wóæc/¯…{÷:++Ë á‚7VS()MMŒà`g‰¿”*;»lÇŽ4éC‡\V®´ : ù á‚tvöìߟ•œ\dggá6a‚щCssÇYiiwœœ¬rÑÔ$ø×É@²AÂ!tóæ#ÿs=‡»:9Yޏ]»V”ÚÙÙ»k—ãúõXpÇ::½3((-;»lÕªY¡¡.::*DGD £;<<çôé?/žv䈛¡¡:Ñ  wL»t©|×®t6 uƒ¶ünß~æçw¶®®Õ×w9üDˆ$Ü1ª¹¹c×®ôìì²õë?صËQUîdøžVtôµ¼fi9!*ÊÝÔT舀䀄;%%ýzQII6<Üí£Ìˆg$úë¯z?¿”ê6o^?‘¢ wl©¯o 8—Ÿÿð‹/ìVª¨Œ¸;+Ž,;!áÖá׌Œ4##ÝçÌ™HtD`Ôƒ„;V°ÙØ©SDDähk«DEy,X0™èˆF‡¿ÿ~p® àɺu ƒƒ•”à'àÝAž>môóK¹{÷ù–-ö~~ËËËÑh‚aXZÚ}û²”•åÂÃÝ/žFtD`´‚„+áð;+FE]™8Q32ÒÃÚ¾¿£ÆFÆîÝé/–;9Y……¹jh(} áJ²û÷ë|}}ôèU@ÀÊÍ›—ÈȉŽhÔËÍ}”Ö×ÇÚ³gõÚµóˆŒ2p%S__xxN\\¾¹ùø¨(33}¢#’ííÝ!!’“‹–.5;|x­ÑQ®*+{áë{öÅ‹×AA«>ÿÜVbî¬8¢×P()íþþ+¿üÒNJJ’ïòD®Déêê »ôóÏ·,˜!™wV9º»û¢¢®ÄÄäÍ™31*ÊÃÄD‡èˆÀH WrTûû§473öî•ü;+ŽUUõ¾¾g=¢mß¾ÔÇgœ(B@•=d%'-_n~ø°«®®*Ñ-,;66/2òòäÉ:QQîVVFDGF(H¸£Þ•+÷ñÿ›‡…Å;+ŽÏŸ7œ+*zºi“펫GÁcä˜AÂÅZZ:wìHËÎ.sr² ùL[{ŒÞYqäÀ0,9¹èàÁ Jáánvv¦DGFH¸£UvvÙîÝd²Ô‘#k—-3':𯆆ö]»Òsr*]\¬÷ïÿT]~"þ wôyõª-00õÚµ*/¯…»w;§@tD@€ìì²]»Ò¥¤H!!.ŽŽ³ˆŒpGükHHö¸qòáánK–L':" L{;3$$;9¹ÈÁaÆáîúúð‰±î¨Q[K8w󿣭[?òõ]® ÿ“ò󦶵uíÞ½.×ã áŽl6öÓO¿S©WÇW‹Šò˜7oÑ·ÃdöR©WcbòæÎ5ŽŒtŸ2~"1FAÂ骫ýüΖ•½ðñqؾÝAN=0Zݽû7…röï¿_ûù} L› áŒÍÆú~__ÿ?æFG_75Õûßÿõœ1Ã@̱‘ëëë‹Ëˆ¸lb¢C¥zXZN :" VðK0*õJff)yeeíʕԣG¯S(+.]ú²­d‘!óÍÒ¼¼UUGÇÿ ½ØÓÃ⯶gÏùêÄnp„K¤ßÿkÆøqãä vqnhÝÛËŠˆ¸›gi9!*ÊcÚ4xj¬Â/89p KKK%<ÜÍÖv*祂‚j7·ãúúª×¯ûÃÓ”% $\ÂÔÖÒ?ú(¼££›L&ò‰Elì&„Piéß~~gkkéÁÁÎëÖ-„›þI¶††¶  ´«Wxy-ܳgµŠŠ<“Ùkgw˜Fk%“¥lm§&%m†9 I áƒÉì]±‚úìY‹ÅF‘H¤£G×Õœ9Sôá‡S##ÝŒŒ4‰ŽˆIvvÙÎéÒÒR¡¡.……Õ‰‰…}}ý!2Yjûö¥Ÿ H¸ÄøŸÿù5#ãžmB$’••‘’B;v8ÂݬǠ††¶;Ò¯\©Dqï‘$)>þóO>±$,2 Rp pöl±ŸßYž—–&;8Ì8uêK‚‚ëéa}ðAHS£¿ŸÍ)$‘H ²×®Qà^ò’®R·ÊÊÚÀÀT„xaY¬þË—+¯^½OHT€p?üÛÜüF¶EaÖÛËÚ´)¾««—¨À€A«ÖÖ®M›âÙlLà ))) %¥½)þÀ±*+kÍåœbâÆbõ?{öÚ×÷¬ø£" W¬üýϽ~ÝÁsÃÁf³››;"#/‹9*@,6 8Ç<)BˆÅêÏξwæL‘ƒÃ®øÄÇßÈÉ©èëãݱdd¤ða©«+::Κ4I›Í†ëcHScáÂ)3fÉ$„Hrr2ü÷·Á0”ZQñ’ˆÈÀ?ÍÄäæÍGëÖÅr2©´4™Íf³Ù˜±±–É¢EÓæÏŸÏ"ãX,vUUÝ<.,|Z\\ÓÕÕ#--ÕßÿÏ (2™¤¦¦xíZ€®î8¢#ïè„Ëd2ét:ÑHª––.w÷Ótz‰DÂ0L]]iÁ£9s&X[O˜8QƒèèÞ‹‚‚‚ººú{vB§Ó™L8sý†žÖýû´ÒÒ—wᆲ¬¬ïéaá“gÞ¼‰ÇŽ­… G uuu…ðFÂmll¬ªª""*I†a(,¬°¶–1s¦¶™™¦™™¦žž2ÑA‰Œ¶¶¶¹ùû>àçÁƒMMM"‰G"±XìgÏÚ=z]UÕüèQËòåÆîî3ˆ ÉŒ3ttþ½§€{ý-Y²D|áŒtzg\ÜL‰¼ŽòÁƒ¢êJ$‰{,À0¬¦¦ÉØX îî8òåççó”ÀÍU‡ººá¾xñâ‹/¾´Zuu5‰Dâ^àn~ïÞ=iiéÔÔTNyVV–¬¬leeåpÄ̃ÄÅØØxãÆÂ/JÅ0lýúõÊÊC½˜—D"UWW‹"Rð/gv½O·ƒÎŠÎÎNÿY³f©¨¨Ì›7ïСC,Ö?G#‘HS§NåùéÊ•+¹gB}}ýºu댕••çÍ›wþüyNÍ5aÞvïx‡þʱ£>áfff~úé§_ª©©ÑÒúçêW55µÀÀÀšÏž={çÎ>>>­­­¡¶¶¶mÛ¶[XX _äÜ i4ZmmíéÓ§ÛÛÛçÌ™ƒG"P}}}rr2üD…XB&ž¨º2+ ÆÜ¹soß¾}äÈ‘»wïîØ±#99yÙ²eýýýx…çÏŸ———sº¥Óé7oÞäüùúõëÙ³g+**¦¤¤”””xxxxzz^¹rEä›Ã{¯¢·Ú;Þ¡±Â¸444äååa£ÊªU«ººº¾ôäÉž ä/ä4ïéé™9sææÍ›1 Û²e‹µµuooï°Eý„Г'O8²ÙìE‹íÝ»w ú·kèý‹Ðýû÷ïß¿?rú'ïmß!Ý Ÿ ÅÎÎŽÅbq*tttÇÇÇãmW¬X±sçNΫ +W®äôùÍ7߸»»s¯—B¡888àËÃ7a°÷ž½£hïÀ0,//¯¡¡»ä­p/\¸0~üxü– ¿þú«©©igg'B¨¯¯Ïßß_WWWGGÇßß¿¯¯ÿzuýúu##£üüüàà`###mmí7r> ø[!„²³³---ååå'Ožœ˜˜ˆb±X›777+)))((p•ã,/\¸!¤§§‡ø®ÇiŽ’••MHH8uêTXXØéÓ§ddd R„›ÆD"mÙ²åÒ¥Kõý]CìóêÕ«&&&êêêaaaœÑÈÊÊš6mšŽŽŽOOOÀ¡N‹á72'^DD„©©©ŠŠŠMqq1^¡µµõóÏ?×ÒÒ244¤P(ÝÝÝ!‰têÔ)333mmíÇ'&&Nš4IUUuÏž=<Ýòo>ϬHJJÚ»w/™LæTPRRò÷÷OJJÂÿ\»ví¹sç°ÿžUHKKsuuåTNOOÿî»ï¸û>yò$çOž ƒºxñ"~P¬¯¯øðaôßY„ó­[·ø+=žÙ+üí»uë–ðqà_)Oÿüø‰uïàξC<Âݸqã¦M›^½z¥««[\\Œ9rÄÅÅåÅ‹sæÌ Â?jV®\ùûï¿ïÛ·ÏÜܼ¢¢¢²²rÁ‚ e Vrrr1114íäÉ“ÒÒÒ›Ÿ:u*11{óc³…Âg‚˜pGàÄ£R©:::õõõ—.]200Àß//¯¥K—>}ú´¢¢bæÌ™øH"„<==ÛÛÛOœ8rsskooÅßìÍ )dVàŸ:MMM<ãSPP ««‹·}øð¡žžÞ½{÷0 kmmUTTlnnÆûÄ›·´´ 4Îü¦½½]VVöË/¿¬­­Åszcc#÷8Óh4þ GçTøÛ×ÑÑ!d„D…×XaÐÕÞ :Â}—„K§Ó ---¹W9}út†/çææZYYá!VTT`6mÚ´ŒŒ üÕªª*Î2«––™ÈÈH:Îf³ Fÿ@Í]\\ðyón —ÓÇf³Édòúõë¹·wX7 ,á´v¼d >¹!„òóó1 ÃOð=yò„;~ ÃRRRLLLbB‰9áŽÀ‰gjjšÀ æçŸFõöö’ÉdÎeddà#‰*--Å0¬··—gŸÜòîŸþ©¥¥ÅiûÍ7ßìØ±𤤤eË–qÊ[ZZBt:} qæŸ0===ýõWGGGÿ7øg‘À G'á û„ƒ¨ðš+ º±¢Ú;0Q%\ Ã8@&“¹û’——ç>pVUUÅCÄÏ„ÊËËWVVò÷Ãß Ã°[·n¹ºº*))ÙÙÙýöÛo5g0«W¯Æ—¹GùñãÇCI¸ÜÍq‰‰‰ªªª7nÜ——ÏÌÌϦa‚¦Ô™3g¬­­…¯SY`ŸÜB?æ^Þ“ÉÄ ËËËåååò÷ÆMüçpGÚÄSPP(++ã¼tïÞ=„ÐË—/¹G²¢¢Iî7š™gB Ÿzzz¹¹¹<ýôÓOü1§m~~¾‰‰ ›ÍþôÓOccc¹ûÔÕÕ-((àn[RR2wîÜÎÎNLЄÁ0,++ËÖÖÖÊÊ ¿ˆ‚3‹8ÿê௠pôxf¯ð·oÐq(*Neþ <ñ ßÞ‰ä.>Ÿ¢££üüü8…ZZZœ¡ÓéEEÿ<?j``ðüùs¼¤¬¬,44t VL&“Íf§¦¦¶´´|õÕWNNN---›_¾|yÅŠÜá—ÅÔÕÕ e+xš×××ûøøDDD,Z´(88ØÛÛûõë×bØ4þÀ0 ûé§ŸV­Z%|í¸!ö)ðZ%|!„?~Œ¨p„ÏØØ˜ûbüöiºººd2¹¦¦/|úôéøñãÝ:þùÌgVxyy8p€sMB¨³³óÈ‘#Ü=ØÚÚ2Œ[·nåææò\P±zõꨨ(Œëº±¤¤¤¾¾>EEEüOž Ãd2ÝÜÜüýýKKK?Îý>Î+ 4øÜ„¿}ÂÇAHTƒ†ÍM¬{wöÊn¿ƒƒÃÁƒ[ZZôôô.\¸€—ûøø¸ººâ£,X°`ûöíÜ5ÁÁÁ–––••••••666_ýõ@­˜L¦¼¼|ZZZSSS\\œ¼¼<“ÉØ|ýúõuuux?ø¥y'Ožlkk[³f â:˜e0˜ #\îæl6ÛÑÑqñâÅø÷ñÞÞ^KKKOOO1l>é9¾äçç;;;¶¶¶eíõÏéñLá=ØÛÛ?yò¤¤¤dêÔ©{÷îX(|2ˆówdN¼~øAGG'33“F£åääLž<_õºuë–.]ZSSSYYinnŽ$ÿÁ½ÌÝ-6جhkk›6mÚâÅ‹srr?~œ‘‘annnccÓÝÝÍÝù¶mÛÌÌÌìííyV򯯬©©éååUPPP^^¾oß>„ÐÅ‹ŠN§“H¤œœœÎÎ΀€„Pii)÷8 ¬ pô¸÷ÊAß>áã $*¼0qí˜HN)=ztÖ¬Yøÿùóçõõõñ³Nííí_|ñ…ººº¦¦ææÍ›;;;¹®»»›B¡¨ªªzzzrÎñ·Â0,%%eÊ”)²²²Ó§OÏÊÊؼ··÷“O>á,$$DMMmÊ”)YYYøzûúúlmm•••1¾„ËÓ…ìÛx'Nœ˜8q¢––Ö·ß~Ëd2 Ÿ âL¸#sâ±X¬ˆˆ%%¥>ø?@Ã0¬¥¥eÆ šššúúúßÿ=ç“u 7¥ªªŠg> Ÿ†uttøùùÍœ9SQQÑÜÜ<$$„s™§sü~¬ÇŽã_éóçÏ]]] TTTæÏŸÏù(N*•ª¡¡1a„ãÇ{zzêèèðÌCþ Ÿ{¯ôítøWÊÓ?áo„÷LPÂðĸ¹Ä«®®æÿ%’ÀBáðoÐ"yâƒHúàý‰jï@åççó<ñaÔÿÒ F H¸cѸqã¼½½‡RÀX3¬{œRïN) œRÂ@Â1„ b Ä.ˆ‰4Q}}½øã£Qww7ÏÍGÞ§+˜x@â H¸øÝ¶ Q%\ƒÁ`0DÒ#ém¬àÝÀ9\H¸ &p@L ဘü?€´Ô¸–”f‡IEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMDocument_8hpp__incl.png0000644000151400015140000003327711653571065017140 00000000000000‰PNG  IHDRãuƒ ²ÇbKGDÿÿÿ ½§“ IDATxœíÝy|SUÞ?ð“4ÝÒÒ}ßí’Ò¦ HHÙÚ#UE\QœgTÐñ7Š:ƒ>n㈂¢À àòˆ<”‚,ÛR”M MhZè¾ïMÚ¤m’ûûã8wB’¦¥K’¦Ÿ÷«¤7¹'ßÜœ“Üoî÷ÞÃa†X ®¹¸2U°,ÈTÀ² SËÂ3w0ˆ·ÞzëÌ™3掌ùË_þ2gÎsG`=©Xº‚‚‚üü|¡Phî@À°ìììgžyÆÜQXdªã€P(ܲe‹¹£Ã²³³Í€µÁyª`Y©€eA¦ –™*Xdª`Ypí_+1oÞ<ö¶¯¯obb↠ÜÜÜØ…J¥rÏž=—.]ª¯¯ ‰D?ü° ]700pïÞ½‡}üË/¿|ñâÅ}ûöÚ¸…›7o}!憙*€õضm›¿¿¿F£©®®þá‡Ö®]»k×.gggBHOOφ ÜÝÝ×­[P^^þÕW_ýúë¯|ð—Ë%„444ܸq#22’6%“Éòó󇨏…¨¯¯_¿~}FF†¹€‘Bõ/€õpssóðððòòš:uê[o½åïïÿý÷ßÓ»þõ¯¹¹¹}øá‡wß}wPPH$Ú±cGCCñcÇè¦M›¦=/è/¿ü2eÊ”!6n!4MWW—¹£€Q€LÀ:q8œ{ï½÷üùóô_±XüØcÑ甃ƒÃÃ?,‹é¿sçÎÍÎÎf†þ›““3gΜ!6.—Ëßyçûî»ïÁܾ}{__ŸZ­Þ½{÷C=´téÒ­[·ÊårBHmm-[E¬}{Þ¼yÇŽ{üñÇ—.]úõ×_Ÿ#„wî\||¼‹‹ËPQ©T?ýôÓÆýýýÃÃß|òI±X|ôèѧžz*<<üŽ;îxùå—…B¡ñFzè!>ŸŸ––Fyä‘Gø|þ¢E‹!2™ŒrìØ±?þñ>>>áááëÖ­»xñ"]kéÒ¥ÎÎÎ .$„ Z÷KŸböìÙl³„ 6ÅÄÄ<ýôÓìáeƒ À”pE%«USS@qvvöðð(++›6mšöÊÊÊûïܹsß{ï½5kÖ/ýÕi¼½½]£ÑÐÛ„ÀÀÀææfBHPP]ª³:[fLñù|BÇÓ¹M544,_¾œý×ÉɉÞðòòÒy¤žžž„í‹kBÃh!˜Ž©X'†a>>¾§§§  à×_¥Ç‡Ò¸»»;—Ë­¯¯§wÕÕÕyyyyzz644Ð%eeeÚÕ¿jµšÒÒÒ2ô×âêêºoß¾¬¬¬¬¬¬ÌÌLZåKôÒNã >¸¦¦†Þ¨®®¦©ì@ À”©XŽŽŽ¶¶¶–––üüü×^{­¾¾~ÅŠô®Ç¼½½ý…^¸xñbMMMnnî† ¼¼¼î»ï>vuZüá‡ÆÄÄèÏ•:Pã<oÞ¼yÿøÇ?êëëéä7)))iii_~ùeyyyyyùÇÜØØH¡SÚœhkk«Ý¼yó222–-[v[ÿñܶmÛúõëmmmçÏŸ¿jÕ*‡£T*7mÚ¤T*g̘±nÝ:Bˆ««ëš5k>ûì³}ûö=÷Üs¹¹¹C|]kÖ¬Ù¶mÛ3Ï<Ãáp’““ikúüüüâãã—/_þã?BÞÿý)S¦°A”’’òâ‹/*•Ê ¬ZµŠÖúê,b0Š8:g €¥Y±bEssó–-[̈U©­­]½zuVVÖ  5oÞ¼ï¾ûŽ=| #‡ê_°,ÈT`"rrrJOOÊB0=dª0¹¹¹½ð CY¦‡L, 2U€‘êììà Ff©‡÷Æy[¶\vuå ¾ÑÑ~¡¡ž!!ž¡¡žaaÞ..æ`üA¦ 0" £yî¹ØððøŠŠ–ŠŠÖ‚‚š#Gò;:z!\.Çßß-,Ì3$Ä+,Ì34Ô+4Ô3,ÌÓÕ•oî¨,2U‹Ã0LMM{IICII}IIÃn..Íæ ŒÐDFº¬X1]{Q¿º®®£ªªµ²²µ²²µªªõèQIii£BÑG±³ãùû»Òã®ìب(_GG;3½Ë‚LÀü:¥Ò†k×ê¥ÒÆë×ëJKåò^Bˆ·÷¤èh[[¹„ÛfkkC³P‘è–å=lîZRÒ ‘Ô>|µ«KAïuuåÓµ_À/4Ô3,ÌËÅÅÑ /À¬8¸€)i4Lii£TÚ •6H¥%% ååÍýýj‡â!ø ~oBBpx¸·­­ !dÅŠ§N áS÷÷;)•ÎεRßÉdÁvvr;»Î¡o¥Ë—/÷Ýw+V¬ö“j§¯ìššvµZC´ÒWíc°ÁÁ\.gØÏ`ápL` 1 SUÕFóÒ’’©´±¼¼Y&SB|}]‚SS…ôD–Ÿ©j«¬lÍÍ•ææJÏœ‘vvö„†zŠDúçæfA×ïFýpP» ¦U …L`¨º»{‹ŠjéÉ¥ô)ÍKù|;¡00:Ú=dêëëjÊÀ;33ó33¯æåUr¹œ¹s'/Y’¸`A¬‡‡“)âñ•©²ÔjMQQ-MYÏŸ¿¡Ñ0Ba H$HNLŸngg‰gÓè×WV¶Þ¸ÑÔÝÝKP? – ™*€a E_AA ÍK鉦´ÀÒÁÁ–^ôˆ¦¦ A&ÎKYeeMybqqaa Ÿo·hQ|zú”Y³¢,<Ó§™ª¶žž¾Ë—+Μ‘ææJ%’jGG»¤¤ßʃããƒ8K¿Ð‘Á°••­ô^ƒ`CC=Í3L4ÈT!¤·WEÏ/•J»0/­œ´³ãMžìÏæ¥_` ;g¶šI†a.]*‹‹é)”ÞÞ“î½wjZšðî»Ãíí-ñ°ž>+ÈTµ55É.\¸‘›+‹‹»||&MŸ! RScÍõÆðôöª**Z¤ÒÔ€%@¦ ‘Z­)+k¢©DR#•6ÔÕuô÷«¹\Nd$MJ}i^ÊNc^*•æÜ¹²“'‹Nœ(¨©i÷÷wûýïÒÓ§M w©‚•eª,†),¬¡åÁ.ÜìëS ~©©ÂädÁ8úAÇ0ê‡#"|œœìÍ8Œ{ÈTÀú :…iBBE奬¾>UNNIfæÕÓ§¯µ·w ~éé‰K–L±„Kø›µfªÚо_ý­<¸  ÆÞžw×]wŒ£òàA¬®ªj£;¨€‘C¦ ÖFg S‰¤¦¢¢¥¯OE õ¤)­æ½ãïI“ Oaj^2™òøñ‚#GòÏž-U*û“’ÂÒÓ§¤¦ ­c_"dªÚZZäçΕåæJO*nhèôòrž93R$,XãïïfîèFSo¯ª¡¡³ªª•žÚMÓ×ÚÚv•JC±·çùù¹Òˆúa2U÷»$’jvž˜ŠŠæ®.%!ÄÇgRt´?=díæeá³J65ɾ"]¼xS£aæÎœš*œ??& Àªò™‰–©jcç¼Éʺ&—÷²sÞÌ›ãìl³ë‡oÞl’ˬ÷±Ö­C‡LÆ™–ùµk¦0õôtŽ `ç‰1Ù¦#WQÑrôhþÉ“Eyy•¶óçǤ¤Ä¦¦ -jºÎQ4‘3U–RÙéR9-.,¬ár9S§†¦¥ E"A\\—;î˃5Œúá+(œ€!B¦ M.ï-.®¥=ÒÎKœìccÌ8…éÈI$ÕbqQff¾TÚàââ–—ž>E$88Øš;´±…LUGk«ü—_Êrs¥YY×kkÛ=<œfÍŠ‰sçN r7wt&ÅÖÓÜ•ÖðëÔÓÜ•üOó^‹Æ2U° ==}……¦0ut´‹Šò|‚Çi^JÑ9f23óO*ª¬lõõu]²$qœ^ÂwØ©Á–gg_—É”lyðœ9“]\,ñœj0X?\^Þ,“) ꇬ2U0¥²Ÿ=R*•6H$Õ4/µ·çEG[Ц#×߯Îξž™y5+ëzk«<"ÂgéÒ©©©Â Rç©™êP¨TšââZ:ç͹se„ØØ@‘Hœ,˜1#¢®Pm.¨°nÈTÀDè¦I5ÍKÙ¢>nD„=Rš,ø¸YÇŽxwwïO?]‹‹Äââ®.ERRXZš0%E8®ç˜9dª·«½½ûìÙÒÜ\iNNIuu›““ýï~Igj ±†ËA¢¾>U}}§ÎØ’’úÞ^!ÄÎŽçï請 ~>ãú‡0k…LÆÄ@S˜r¹œÈHz°Ô×2§0¹®.ʼn…GŽäçæJU*õÌ™‘©©Â… ゃ=ÌšE@¦:lypNNIW—‚-NNŒ—Kˆ™žJ¥©­m¨~˜ÇãºëÔ[ìV2Uì¦ô)›—r8œí)L­øü±††Î#Gò33¯æåUr¹œ¹s'/Y’¸`A¬‡‡“¹C³,ÈTG…Z­)*ú­<øüù #¢<øö¬®®nÓhP? `~ÈT`8ØËrÒ³LÙ£¾¾.´‚—楖?…éÈ••5edä‰ÅÅ……5NNö Æ¥§O™5+ŠÏ·3wh ™ê¨ëîîÍË«¤sÞH$Õ|¾Ý´iaÉÉ‘HlîèÆƒõÃRiƒRÙO ÕÓ [ý%»L™* ®¹Yvýz=;…iIICW—‚âåå3.§0!z _±¸X,.’J¼½'Ý{ïÔ´4áÝw‡ÛÛóÌ¥C¦:¦ØòàÜ\iGG¯¯‹H$HMŠDk¡×4:;{èslúZQÑÜÕ¥¤÷úúº~ÚékX˜÷„½\3À¨@¦ ºÚÚº‹ŠjÙ¼ÔঠA'/e©TšsçÊNž,:q¢ ¦¦= Àmñ℉6ÇÌÈ!S5 ò`µZD˃§O·³ÃO*£`õÃÁÁðŠßÀL`¢32…i\\ ÍKÇõ¦#××§ÊÉ)É̼zúôµöönÀ/==qÉ’)ü¾Ã†LÕôzzú._® åÁ5¶II¿•ÇÇáÄËÑe°~¸´´Q¡è#¨2dª ;…©DR£—êLaš4aóR–L¦<~¼àÈ‘ü³gK•Êþ¤¤°ôô)©©ÂÐPÌ 2"ÈTÍ«©IváÂÜ\©X\ÜØØéí=iÆŒ‘H’ëç7ÑGý˜bÀÒ+¢WV¶VT´Ð3)È¿ÀÒaÔdªÖ­¯OõïóK LaJ+xé…yÝ1£ ÕÔ$;|øŠX\tñâM†™;wrjªpþü˜€7s‡f%©ZŽ’’†S§ŠÎœ‘^¼x³·Wê™’"Äצ„úa€ S°jµ¦¬¬‰f¤ôi]]Ç™ÂtäÊË›üQròdQ^^¥ƒƒíüù1))±©©B\„fÔ!Sµ@Jeÿ¥Kåly°½=ï®»î@y°¹ô÷«ëê:tê‡ËÊ{zú!¶¶6n:õÃQQ¾ŽŽ¸Þ8Xdªã•FÔ–þv¤ÔȦ ÁÈKHªÅâ¢ÌÌ|©´ÁÅÅ1-M˜ž>E$àœ±±ƒLÕµ´ÈÏ+ËÍ•ž>}­¾¾ÃËËyæÌH‘H€Ê³Ó9«}%vrë؉3OX1dªãÃ0UUm§0¥WãК§6 ‚Î1“™™êTQee«¯¯ë’%‰¸„¯É SGØ9o²²®É彡¡ž"‘@$Ì;yÒ$|ÎXƒõÃ55íjµ† ~Æ3dªª©IVRR_RÒ ‘TK¥ì…7¼½'Mžì?§0¹þ~uvöõÌÌ«YY×[[å>K—NMMÆÅa§Í”©ŽG*•&/¯B,.ÎÍ•Öp¹œØØÀÔÔXŒ Ë4ŒúáÈH_>õÃ`A©X„ÖVyqqþ¦ÎÎö11 ÁÈK‡­»»÷Ç%§NŸ9#íêR$%…¥¥ SR„˜cÆ\©ŽwmmÝ?ÿ\š›+Íʺ^[Ûîáá4kV=ÐänîèÀƒ`++[é½ú`?__óÆ 2U3èîî-*ª¥'—ÒC¦4/åóí„BLa::ºº'N9’Ÿ›+U©Ô3gF¦¦ -ŠÇž´Ù!Sµ&lypNÎõ®.%[{¶47Wš“SR]Ýæädç¡©©Â´4aHˆ§¹£ƒ¹Ýúazü1À8…L`D覴‚—極µí*•S˜š½„¯X\,I¥ >>“ÒÓ§¦¥ ï¾;ÜÞžgîè`@ÈT'­òà’®.[œœ,ÀY÷V£·WÕÐÐI¿õë‡ííy¡¡^ÑÑ~¨€Û‚Là6 :…iBBòÒ±¦RiÎ+;y²èĉ‚ššö°0¯{îILMÅ3ã2Õ‰I­ÖýV|þü †Ay°u3X?|óf“\ŽúadªÒ™ÂT"©¡y)Ñ›ÂôŽ;¼1µàXëëSåä”df^=}úZ{{·@à—žž¸dÉ\ÂwÜA¦ ==}—/Wœ9#ÍÍ•J$Õ|¾Ý´iaÉÉ‘Hlîè`l¬®ªj£{¤ë‡CB<8Ì„0á SøÆÆN‰¤†'¦¢¢¹«KIññ™íO™FGû……y¹¸8š;؉B&S?^päHþÙ³¥JeRRXzú”ÔT!N|¿©‚¶ªªV𲿿J;:z|}]î¾;<%%6%%ÖÝB›(hý0Í]éÕ«ªZéÙ4„{{žŸŸkHˆ'½0>M_q­«‡L&®–ùµk¦0õôtŽ `ç‰Á¦fÑÔ$;|øŠX\tñâM†™;wrjªpþü˜€7s‡·­®®ã‰'¾R©Ôô_…¢¿­­;0ð?oellÀ¶m«ÍX íòà nªT길 Z<}z¸N>Ÿp†Q?îãìŒúa+L& ¹¼·¸¸Vû)ÍKœìcc0…©…(/oþñGÉÉ“E—/W8:ÚÍŸ“’›š*tsÃã[ròÖ²²&ƒwq8䥗ÿéOi& ,™BÑ÷믿•Ô88Ø&%ýV„BÐ õÃ2U°N==}……¦0ut´‹‹ D^ji$’j±¸(33_*mpqqLK¦§O‰¶æ FÇgŸýôÎ;Gi!Ÿ‡sáÂkAAî¦ Æ…æfÙùó7rs¥bqqcc§·÷¤3"D"AJJ¬Ÿ>Àá7}}ªúúNíܵ¤¤áæÍ&úaš»b®8€q™*X¥²Ÿ=R*•6H$Õ4/µ·çEGc S Eç˜ÉÌÌ‹‹ªªZ}}]—,ILOOÄ%|­R]]Ç]w½©ÿÃårâノ{Á,QÁ¸SRÒpêTÑ™3Ò‹oööªèœ7©©ÂäähÌMúT*Mmm»Nýpyy³L¦$Ô㉖™*Œ?}}ªë×ëÙ¼”ÂÔÆ†áC”&$ ~n˜ù`¬1 #“)‡~‰©þ~uvöõÌÌ«YY×[[å>K—NMMÆÅq¹(Ͳféé¿r¥J£¹åK‡Çã¾ñÆÒ§ž™+*§”ÊþK—ÊÙò`{{Þ]wÝò`"ÔŒ ÈTÁÒ 4…)—ˉŒ¤K}1…©¹ttôlܸÊ”_\hü‘Ýݽ?þ(9uªøÌiW—")),-M˜’"Ä3Ç?ÿùók¯Ô)¶±á\½ú¦§§³¹¢+ÐÒ"?w®,7WzúôµúúOOçßý.R$Üî5ØŠŠj++[ÿû„± ,™~ýpee«TÚ TöBììxþþ®:`££ýq0`ì S…‘ºpáfP{`àèœcÆNa*‘Tkç¥'$ÄC{ S\ßÏì._®|úé]²¨(ŸœœW >¦¥E~üxX\”›+U©Ô3gF¦¦ -ŠÇI‰P[[wbâëjõ2UîŒßÿ¬£+SYÙJ'¼Éʺ&—÷Òò`‘H0wîäAK:?øàøœ¸ÿþiûÛrLE¬ÆÆN©´Q;}e'±ãñ¸îf¬V«58_¬2U¾²²¦ÿþïC§O_ûä“UË—' ¯úƒ%{–){öˆ¯¯ ­à¥yiX˜·‹ α óÑG'>úè$!FC9{öÕðpoö GŽägf^ÍË«´±áΙ½dI₱˜qB[¹rÇÙ³¥l²Êår>øàᇺۼQUR©4yybqqn®´°°†ËåÄÆŠD‚ÔÔØ¤¤; žk°xñGùùÕ<×Ý¿mÛj‘H`ú°a¼0X?\]ÝFOp0X?ì1ê'¹<ðÀ§3gF<óÌ\ì#UB¦ ÃÑÒ"ÿýcûö£çllØ0ïÕW— eŦ&YII}IÉo‡L+*Zºº„//ç˜La:>46v­_ÿÏK—ÊÙy<î+¯Üóì³óËÊš22òÄââÂÂ''û… ãÒÓ§ÌžåèhgÞ˜ÁB8ðëý××lϱµµ),|/±ÖÖÖýóÏ¥¹¹Òììë55íN³fEÑ­l}GGGO\Ü_hçär9 C–-»ówDñ Ý0ꇿ‘\å>"âe…¢ŸÏ·ûÃæ?ýôtW°2ÈTáöÈdÊüãÔÎ9 Ãô÷«éÂyó&ïß¿NÿÁ­­òââ::OŒö¦ÎÎö11¿Maš„¼t9s¦dýúuw÷²ï>!„Ãᄆzº¹ñóó«íçÏY¼8aþü|e‚¹¼7.î/}}*BÇMMûê«'ÍL,lypNÎõ®.%[Ü×§zþùýÚûD<ž§§Ó§Ÿ>ú»ßEš/^°ô,ÝÒ©&„¸ºòéoôlú:Ä:²ÖVy|ükô¶ ×ÖÖfÍšä v¬2U*•J³gÏÙ>8.—÷jŸiFñõu¹rå¿»»{‹Šj1…©µR«5ÿûIíŠß[q–-›zÿýI"Q”./Z»vϱcjµ†Ãá|ñÅã÷Ü“hîˆ`‚R(úΟ¿yæLÉ™3%ׯ7øù¹´´Èµƒ#„ØØp5æ‘Gf¼ùæRÔ†ÀèyýðåË•éé×nÓÆ†kggóÔS¬c?hIDATÉ7¦ ¬2U’ÌÌ«[·©ªjc¢ßg8Nd¤OEE ½$oHˆ'MJ'Oö|£¢|‘ºŒwú¿:x<î›oÞÿijLŒ;ǬY³‹aŸoWTôW\6,AS“,-íý¦¦.ƒ÷òx6ÁÁÛ·?šlâÀ`¢éì쩨 ‰kKEEkeeKeek}}ýòus㇅y…„x†…y†…yUV¶~òÉ)ýïeëèh·v휵kçâô ×©Â ŠŠj_ýÐùó7¸\ŽÎ¡TmË—'ÍžESSüðlerrJ6lø—\Þ«R©z —Ë>=ü‡ž3e`0õöª„Âÿ§PôÝÿ´O>Ymîp!¤ªªuÆŒ·<€Ç³aÍúõó7o^ŒéÐÀô´ÀÒ*⊊™LikkCϧÐÇãqù|û<õ”;f0NÝ’©*Šööv3F¥½½çóÏÏ<(ápˆZmì‘\À½Î’1 ³o߯۶å¨Õ„A~Õ²±áœ>½Ñd禌dõööv…B1ZÁÀmyó͇K¶m{pÆŒ0sÇ2A¹»»;:ÿL6ëûÜÎÈüõ¯'ªÑðöÛ÷ÞÆ4­0Á9::º»hb6ƒ#Ža˜?ÿ93+Kj|Ã!NëÖͺ÷ÞxóÙ€¥ÓÙ»»¥ìJ&“I¥RÓÆªººë‹/®”—wj4 ‡Ãáñ¸jµf ð66Üë×ë‡÷DèuK¡PíÞ-¹x±Îø· K­f¾ÿþçY³‚Æ:0j„™j]]]ssóh·E(tÎʲwuíÅØ7—ØØØ‘dªÖ÷¹}òd¡ö÷\.‡Ã¡×¶gÔê[ŠÏ ë׬Ù÷Ì3Sâã}L'ŒGÞÞÞ#ÌTqååMÆ¿ ml8 ÓÚÚýÁ§Ïž½öØc |>N¸‹f,S¥æÎk¢XÀ²=úè½}}ªÒÒÆÒÒÆë×ë¥ÒÆ¢¢ÚÚÚFÃårììxýýjZÜ߯.*ªÉs¡×Y¦Å‹Sè †aè|BÝÝ}ýýêþ~uOO/!¤³SAéééëëS©Tšà`÷¤¤;Æ:ª¦¦¦âââ‘·ãíí- GÞÜ®äd†ÃñX°`ž¹™ ²³³G¥«ùÜV«57žš4ÉÑÕÕÑÍïååìééìæÆwsã»»óÝÜœ´nóÝÜp¥z¸ EEE£Õ”þˆkkë,±µå©Õj†™4É!)éŽ;ï IHNH•,ÁòÜ»Ã/+`ŒO(  Ù%½½ªÒÒF:ëÌ¥KÒ›7Ûš›»†))æ1U8Ió ÁÈq¹œuëæš; €ßØØp Œ¤ `оŽ… —Ëåô÷«y<›èh¿¤¤°„„ ÄÄÀµ¾`©Âí±·çÅÅÆÅBŠŠÂ!‚ÒÒÆ7š†¡ÅRÆáš4#Q[Ûã?ujHbbHbbðäÉþø\ëƒLFÊÁÁ6>>(>ÞDg'Lp‘‘>§Nm2wc …`Y©€eA¦ –eÜgªUUUO>ùä +++£ûaoh¯~åÊ÷ý÷ß³Ë322ììì Æ"f-aaa=ö˜ñi†Y½zµ³³óÐÛ/++Há7{N×I³ƒv‰îîîM›6%&&Nš4é®»îúÛßþ¦R©è]'**йuêÛÅ‹³Ý€Ãá<øàƒÚ¸­È‡þ`t¼Q7Þ;Þm}ÐYí˜gÍšuõêUS>;FÐ(Âð1¥o¿ý–cˆ)GA½ãn£nüŽ8ãIö󺺺.Y²¤¼¼|ˆÁìfGÊmm“‘oÕÛbâÁ2î3ÕC‡-]ºÔà]7oÞôòò¢·ÝÜÜ^~ùåVŸ:uꫯ¾úüóÏwttB:;;Ÿ}öÙ-[¶ÄÇÇ]äÚ~ùå—úúúšššÝ»wwuuÝyç4ƒêêêöïß?*óIÂðéu£Õ¬‘.!“É’’’.]ºôî»ï^¾|ùÏþóþýûSSSÕj5}@EEE~~>Ûl{{û™3g´ŸèÀß}÷ݨÇcm¼w¼Ûú 3 ío ŠÆ\__/‘H¢¢¢zè!/0|Æšöð¹ï¾ûèÀùå—_!õÿ†)¬'Žñ;âM èóÖÕÕåääh4šÕ«W­þwŠAì ë¶·Ëmb`ÑÒØØ˜••ÅŒ+÷ÜsOOOÁ»JKKu^ þBvõÞÞÞ¸¸¸µk×2 ³~ýúiÓ¦õõõYÔ· „”––²ÿj4šäää×_} Ç|]Coް«éu·û¾iÖx—x饗D"‘J¥b —ËÃÂÂvîÜI×]´hÑ«¯¾ÊÞ»gϞŋ³mBÖ­[çááQ__?ŒÈ‡þà±ëx£ÒgF¥÷šØxïx·õAg:S'æÆÆFBHcc£i‚»”••5ÂWÏmýf1|†²ÓevŃ=¥Q7®Gœ‘¤@çykjj!£5þbdámÆVÉaâ½»Û>¦zøðáÀÀÀöövBÈ7ß|#º»» !ýýý›6mòõõõññÙ´iS?=}úôéììì-[¶„„„x{{?öØcìoúkB233ÂÃÃ÷îÝKQ©TWoiiqrrrttÔ>ðÍÞž1c!ÄÏÏ pdœ]bgg·gÏž]»vmݺu÷îÝ{öì±µµ(ÈQ|iú8Îúõë=:P;Ú¯kˆmžúïƒ>ø¿ÿû¿Ì¿ü8pàÐnðOúÓäÉ“éG°Îsé?ÐË4¸u ã¡ã ´mu×Þàv0øQ?”—ipãs8œýû÷ÇÄÄxxxüÏÿü¹õ[CŸ­­­««+ý÷È‘#S§Nåóùþþþï¼ó‰N› ÃìØ±#66ÖÅÅeþüùGŽ¡a[ýÂðÁðѧý^Ÿ={V-]ºô…^ îííuww§/Óx·9{ö¬Á}!ƒƒt ãz¸Œ¸QqF’ô)h]±~Ó:Ý̈Ƃ‘^=Ð40ý·Cg|éÄfÒÁ2h.«ï±Ç{üñÇ|}}/\¸@¾ûî»Ë—/¯ªª’H$wÞyç+¯¼BóõÅ‹ÿôÓOo¼ñ†P(”H$Ó§O饗ZK.—ÛÛÛïØ±£¾¾þ«¯¾âñxr¹ü½÷Þ3¸ú®]»öîÝËÜúÛ{{Ð…ìê¬W^y…òöÛok/Ó—ÆúqâÒ¥KnnnÆŸÞ;P›Ú!K–,éêêúá‡!---´…´´4©TzþüùÈÈÈ7ÞxÃàBã=Á”¿Z`¯ûðÃ}||ŸßÒÒBným^*•:::îÞ½›¹uPè?ÐËÔߌ:!]Ç3å1Ut¼Ñíx7¼Áí`ðS}(/Ó`w%„<ðÀííí;wî$„´¶¶êÿþ}õêU™L&“ÉjkkŸ}öÙ'Ÿ|’ÞÕÕÕegg÷ÔSOÕÔÔÐ]Ÿ¦¦&ƒmîܹ300ðøñãÍÍÍb±822Òì#ÈdÇT1|&òðÑ"ö_ú^×××ë¢o¿ý6$$D£Ñ0 “‘‘Ðßß?h·illÔï ©‘cªØSˆÓiÓ`RÀ~/tuu•••ÝÿýIIIÌ_ úß):ÝŒ¹õ‹†Å0ŒÁ±`üY Žñ¡¦ÿvhwÌÂÄ{wÃÉTÛÛÛƒ‚‚´ŸròäÉl1¡X,ž2e Q"‘0 }ðàAzoqq1{[­¶¶6[[Û÷ß¿½½]£ÑÈd2µZ=ÐêË—/okkc†›©²«Sæ¾ûî³±±Y½zµöëÓ—Æ ö 4гÓ%µ©’Í0 ­Î/--ÕŽŸa˜ï¾û.22ÒàBÆ(S~þZ`¯{öìaƒùç?ÿIéëë³±±a7ËÁƒéf$„äåå1 Ó××§s›¾ûÚ½qŸ¿çÎóòòb×}î¹çþüç?3 ³oß¾ÔÔTí6Ùü±‹‹KUUÛ£ oðeÜŒ:!]Ç3e¦ŠŽ7êO¿qƒÁÜFvµ¿LƒÝ•B;ûHý½ mÎÎÎÅÅÅô®ÞÞÞk×®ÉårµZ““£ý2uÚŒ‹‹Û¿?Ûæ×_möd²LÃg"ý'bÿ¥ïµÁAÔÝÝíäätñâE†a~øaºA Æ Ý”ÁÎ`°}#™*ö”0â´Û()ÐþR°µµ3gNé¿ †íoúÝŒÑû¢¡†18Œ?‹Á1>h`ß®®³L¹w7ÌóTß|óMí¯:íMìêêJC¤…Ýúíè¯Å0ÌÙ³gxà'''‘Hôã?´ºL&»÷Þ{émí-.•J¼aì íÕ©½{÷ºººæää888:tÈ4/14ؾþúëiÓ¦vöÁÛÔF‘J¥ÚÏE[P(ta~~¾ƒƒƒÁ…ú­i3ñÙ–Öë¯^½ÊÞuåÊBHuuµöf”H$t3j¿Ëú·uz£ñ.áçç'‹uÛ¾}ûÂ… Ùu³³³###5ÍÒ¥K?ÿüsÆÐZ­ž3gý¹‹ö(ƒÁ|™mFmc×ñL|ž*:½=ZO¿qƒÁÜ?ê}™m|BHII‰ö#õ÷*ئº»»_|ñÅ3f°÷fddÌž={Ê”)ôB”ìËÔiÓÑÑ1??Ÿ]‹^ût ´Ý2åyª>ôö>úOÊþËžògp=òÈ#›7o–ËåNNNì0Þm˜ö…ôÛ7’©bOIÛqÌÀIþó²íoúÝÌxƒÇ‚‘ghŒÌàÛ¡3¾´Ý`óTiÛ¶m[JJÊ‹/¾È.ôòòb7t{{ûùóçérZØPQQA—\½zõ¯ýë@k) Fóý÷ß·µµ­Y³&==½­­ÍàêÇ_´h‘v`´L¼¶¶v(¯BgõºººçŸþ½÷ÞKNNÞ²e˺uëZ[[MðÒôcfûöí÷Üsñg§†Ø¦Á«WÓ>D‘J¥´c …–À{]XX˜ö…㊊Š!¾¾¾6667oÞ¤ oܸ8è«ÓïÌÚtºÄªU«Þ|óMöúu„îîîwß}W»…Ù³gËd²³gÏŠÅâ.¾ÇårwïÞýóÏ?ñÅt‰Áà ¾L2XϤÐñÐñ†Ò¸ÁàÚŒä6?ê©Þ2.w¨_‚|>ÿ‰'ž(**¢ßÍ …bÅŠ›6mÊËËûì³Ï´©Ófhh(;j!×®]3’¶ñ>‚0|0| ¢ïõ@ƒhåÊ•8|øð´iÓ¢¢¢ŒÇÀ6¥ßŒ RƒÆûp#q£7âŒ$b»­édôÇÂPžEgŒºŠ‘·c ³sM:XÍeu¨Õê”””·Þz«­­ÍÏÏïðáÃtùóÏ?ÿÀЋ>OŸ>ýøƒv¾¾eË–„„„‚‚‚‚‚‚Y³f=óÌ3­¥P(8ÐÜÜüÅ_888( ƒ«¯^½º¶¶–¶CçPúꫯ:;;—-[F´~Z ÕÞú¿7h¯®Ñh–,Y2gÎZ:Û××—°råJ¼4ºÓÃ^h;;;û¾ûî êèèʳÔæÎ;ÙˆÞïR´…yóæ•––^¼x1**êõ×_7¸Ðxg0Ù/…–Ùë>þøcŸC‡Õ××;v,<<œ>õ#<²`Á‚›7o…BºõßíÛÚÍ2ƒu‰ÎÎÎèèè9sæ;vL*•Íáp É4#È4ÇT1|&øð¡tŽ)iÿ;Ð ¢‰ŠŠÒ®ƾÁöµ×žƒghÄO t¾XFú›ÁïýÑ­>F,ïÕÇøPÓ;tF®÷în;Sýä“Oéáàÿû¿ÿó÷÷§%ã]]]O>ù¤»»»§§çÚµk»»»µ_¤R©|饗\]]W®\ÙÞÞN—ë¯Å0Ìwß}agg7yò䌌 ƒ«÷õõýþ÷¿×ìí·ßvss‹ˆˆÈÈÈ ÏÛßß?{ölgggF/SÕY}Ïž=öööl Ã0/^är¹ë—ÆÜZ¡¼jÕ*í}ãÏn¤M#£¶ðå—_†††zyymܸQ¡P\h¼3˜ìó×2{J¥zï½÷"##œœfΜI§d¦­­íÑGõôôô÷÷ÿÓŸþÄþ1Ð;R\\¬Ó™w †aärù‹/¾Ççó…BáÛo¿Í^ žm<;;›òé§Ÿê,×ùÕh4©©©ìFÓ~ —ip3š¦ã™,SEÇÝŽg¤qýàÚŒúõÆ_&½=Äîªý­Áè µZíââR^^NÿýðÃ=<<‚ƒƒ?û쳕+WúøølS­VôÑG®®®‹-ÊÈÈðöözHÚ·Gk™&SÅð™àÇ2’©2 "†aÖ®]ëìì¬}—áí é·¯½ö”Œ8C#ÎxR ó½ M¿¿ùN18ºYl›úcÁx¯68Æ LÿíÐ_¦,û9G{555Ï;×àV«QVV¥3< .4ŽVqŒp"oôº‰c´:Þ¨ô™Q齃:räHpppbb"ý÷‡~xûí·éÉZ·k´FPvvvll¬Ï0b ð¹ V{JC4¦{wÃ<Ç%‘HV¯^——×ÓÓsþüù×^{íé§Ÿ6wPãÏÜ€¸¸¸¬[·n( F:L@›7oîééYºtisssxxøSO=5ì`2nC4¦ƒÕ¿0|¨i³@õ/ÀH úÀd°§0D¨þ€q™*Xdª`Y©€eA¦ –ÅÀ,5uuu¦Æ#¥Réàà0*M¡×ÁÐÉåòQiG©T¢ã †À °§0D÷î dªR©tìƒ+1ZŸ¿èu`z2™L&“™; €ñ ŸÛC=%€a»e>U³Ãyª`Y©€eA¦ –™*X–ÿõϹÁFžIEND®B`‚XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMNotation.html0000644000151400015140000002370311653571066020267 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMNotation Class Reference

This interface represents a notation declared in the DTD. More...

#include <DOMNotation.hpp>

Inheritance diagram for xercesc::DOMNotation:

List of all members.

Public Member Functions

Destructor
virtual ~DOMNotation ()
 Destructor.
Functions introduced in DOM Level 1
virtual const XMLCh * getPublicId () const =0
 Get the public identifier of this notation.
virtual const XMLCh * getSystemId () const =0
 Get the system identifier of this notation.

Protected Member Functions

Hidden constructors
 DOMNotation ()
 DOMNotation (const DOMNotation &other)

Detailed Description

This interface represents a notation declared in the DTD.

A notation either declares, by name, the format of an unparsed entity (see section 4.7 of the XML 1.0 specification), or is used for formal declaration of Processing Instruction targets (see section 2.6 of the XML 1.0 specification). The nodeName attribute inherited from DOMNode is set to the declared name of the notation.

The DOM Level 1 does not support editing DOMNotation nodes; they are therefore readonly.

A DOMNotation node does not have any parent.

Since:
DOM Level 1

Constructor & Destructor Documentation

xercesc::DOMNotation::DOMNotation ( ) [inline, protected]
xercesc::DOMNotation::DOMNotation ( const DOMNotation other) [inline, protected]
virtual xercesc::DOMNotation::~DOMNotation ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual const XMLCh* xercesc::DOMNotation::getPublicId ( ) const [pure virtual]

Get the public identifier of this notation.

If the public identifier was not specified, this is null.

Returns:
Returns the public identifier of the notation
Since:
DOM Level 1
virtual const XMLCh* xercesc::DOMNotation::getSystemId ( ) const [pure virtual]

Get the system identifier of this notation.

If the system identifier was not specified, this is null.

Returns:
Returns the system identifier of the notation
Since:
DOM Level 1

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/inherit_graph_29.map0000644000151400015140000000037111653571066016033 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMLSInput_8hpp_source.html0000644000151400015140000003040611653571065017303 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMLSInput.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  * 
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  * 
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMLSInput.hpp 527149 2007-04-10 14:56:39Z amassari $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMLSINPUT_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMLSINPUT_HPP
00024 
00025 #include <xercesc/util/XercesDefs.hpp>
00026 
00027 XERCES_CPP_NAMESPACE_BEGIN
00028 
00029 
00030 class InputSource;
00031 
00032 
00059 class CDOM_EXPORT DOMLSInput
00060 {
00061 protected:
00062     // -----------------------------------------------------------------------
00063     //  Hidden constructors
00064     // -----------------------------------------------------------------------
00067     DOMLSInput() {};
00069 
00070 private:
00071     // -----------------------------------------------------------------------
00072     // Unimplemented constructors and operators
00073     // -----------------------------------------------------------------------
00076     DOMLSInput(const DOMLSInput &);
00077     DOMLSInput & operator = (const DOMLSInput &);
00079 
00080 public:
00081     // -----------------------------------------------------------------------
00082     //  All constructors are hidden, just the destructor is available
00083     // -----------------------------------------------------------------------
00090     virtual ~DOMLSInput() {};
00092 
00093     // -----------------------------------------------------------------------
00094     //  Virtual DOMLSInput interface
00095     // -----------------------------------------------------------------------
00098     // -----------------------------------------------------------------------
00099     //  Getter methods
00100     // -----------------------------------------------------------------------
00107     virtual const XMLCh* getStringData() const = 0;
00108 
00114     virtual InputSource* getByteStream() const = 0;
00115 
00126     virtual const XMLCh* getEncoding() const = 0;
00127 
00128 
00136     virtual const XMLCh* getPublicId() const = 0;
00137 
00138 
00148     virtual const XMLCh* getSystemId() const = 0;
00149 
00150 
00160     virtual const XMLCh* getBaseURI() const = 0;
00161 
00162     // -----------------------------------------------------------------------
00163     //  Setter methods
00164     // -----------------------------------------------------------------------
00165     // -----------------------------------------------------------------------
00170     virtual void setStringData(const XMLCh* data) = 0;
00171 
00177     virtual void setByteStream(InputSource* stream) = 0;
00178 
00191     virtual void setEncoding(const XMLCh* const encodingStr) = 0;
00192 
00193 
00204     virtual void setPublicId(const XMLCh* const publicId) = 0;
00205 
00219     virtual void setSystemId(const XMLCh* const systemId) = 0;
00220 
00230     virtual void setBaseURI(const XMLCh* const baseURI) = 0;
00232 
00233     // -----------------------------------------------------------------------
00234     //  Non-standard Extension
00235     // -----------------------------------------------------------------------
00238 
00248     virtual void setIssueFatalErrorIfNotFound(bool flag) = 0;
00249 
00250 
00259     virtual bool getIssueFatalErrorIfNotFound() const = 0;
00260 
00267     virtual void release() = 0;
00269 };
00270 
00271 
00272 XERCES_CPP_NAMESPACE_END
00273 
00274 #endif
XQilla-2.3.0/docs/dom3-api/DOMLSSerializerFilter_8hpp_source.html0000644000151400015140000002102411653571065021457 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMLSSerializerFilter.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMLSSerializerFilter.hpp 671894 2008-06-26 13:29:21Z borisk $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMLSSERIALIZERFILTER_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMLSSERIALIZERFILTER_HPP
00024 
00042 #include <xercesc/dom/DOMNodeFilter.hpp>
00043 
00044 XERCES_CPP_NAMESPACE_BEGIN
00045 
00046 
00047 class CDOM_EXPORT DOMLSSerializerFilter : public DOMNodeFilter {
00048 protected:
00049     // -----------------------------------------------------------------------
00050     //  Hidden constructors
00051     // -----------------------------------------------------------------------
00054     DOMLSSerializerFilter() {};
00056 
00057 private:
00058     // -----------------------------------------------------------------------
00059     // Unimplemented constructors and operators
00060     // -----------------------------------------------------------------------
00063     DOMLSSerializerFilter(const DOMLSSerializerFilter &);
00064     DOMLSSerializerFilter & operator = (const DOMLSSerializerFilter &);
00066 
00067 
00068 public:
00069     // -----------------------------------------------------------------------
00070     //  All constructors are hidden, just the destructor is available
00071     // -----------------------------------------------------------------------
00078     virtual ~DOMLSSerializerFilter() {};
00080 
00081     // -----------------------------------------------------------------------
00082     //  Virtual DOMLSSerializerFilter interface
00083     // -----------------------------------------------------------------------
00090     virtual FilterAction acceptNode(const DOMNode* node) const = 0;
00091 
00101     virtual ShowType getWhatToShow() const =0;
00103 };
00104 
00105 XERCES_CPP_NAMESPACE_END
00106 
00107 #endif
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1XMLDeleter.html0000644000151400015140000001037611653571065020102 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::XMLDeleter Class Reference

#include <PlatformUtils.hpp>

List of all members.

Public Member Functions

virtual ~XMLDeleter ()

Protected Member Functions

 XMLDeleter ()

Constructor & Destructor Documentation

xercesc::XMLDeleter::~XMLDeleter ( ) [inline, virtual]
xercesc::XMLDeleter::XMLDeleter ( ) [inline, protected]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/DOMCDATASection_8hpp__incl.md50000644000151400015140000000004011653571065017402 000000000000007e5d66fa787fc017886dc5d24ee1f675XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMXPathException-members.html0000644000151400015140000002660111653571065023026 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMXPathException Member List

This is the complete list of members for xercesc::DOMXPathException, including all inherited members.
codexercesc::DOMException
DOMException()xercesc::DOMException
DOMException(short code, short messageCode=0, MemoryManager *const memoryManager=XMLPlatformUtils::fgMemoryManager)xercesc::DOMException
DOMException(const DOMException &other)xercesc::DOMException
DOMSTRING_SIZE_ERR enum valuexercesc::DOMException
DOMXPathException()xercesc::DOMXPathException
DOMXPathException(short code, short messageCode=0, MemoryManager *const memoryManager=XMLPlatformUtils::fgMemoryManager)xercesc::DOMXPathException
DOMXPathException(const DOMXPathException &other)xercesc::DOMXPathException
ExceptionCode enum namexercesc::DOMXPathException
fMemoryManagerxercesc::DOMException [protected]
getMessage() const xercesc::DOMException [inline]
HIERARCHY_REQUEST_ERR enum valuexercesc::DOMException
INDEX_SIZE_ERR enum valuexercesc::DOMException
INUSE_ATTRIBUTE_ERR enum valuexercesc::DOMException
INVALID_ACCESS_ERR enum valuexercesc::DOMException
INVALID_CHARACTER_ERR enum valuexercesc::DOMException
INVALID_EXPRESSION_ERR enum valuexercesc::DOMXPathException
INVALID_MODIFICATION_ERR enum valuexercesc::DOMException
INVALID_STATE_ERR enum valuexercesc::DOMException
msgxercesc::DOMException
NAMESPACE_ERR enum valuexercesc::DOMException
NO_DATA_ALLOWED_ERR enum valuexercesc::DOMException
NO_MODIFICATION_ALLOWED_ERR enum valuexercesc::DOMException
NO_RESULT_ERROR enum valuexercesc::DOMXPathException
NOT_FOUND_ERR enum valuexercesc::DOMException
NOT_SUPPORTED_ERR enum valuexercesc::DOMException
SYNTAX_ERR enum valuexercesc::DOMException
TYPE_ERR enum valuexercesc::DOMXPathException
TYPE_MISMATCH_ERR enum valuexercesc::DOMException
VALIDATION_ERR enum valuexercesc::DOMException
WRONG_DOCUMENT_ERR enum valuexercesc::DOMException
~DOMException()xercesc::DOMException [virtual]
~DOMXPathException()xercesc::DOMXPathException [virtual]
XQilla-2.3.0/docs/dom3-api/functions_func_0x7e.html0000644000151400015140000003103211653571065016750 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
 

- ~ -

XQilla-2.3.0/docs/dom3-api/MemoryManager_8hpp_source.html0000644000151400015140000002126611653571065020154 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

MemoryManager.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018  /*
00019  * $Id: MemoryManager.hpp 673975 2008-07-04 09:23:56Z borisk $
00020  */
00021 
00022 
00023 #if !defined(XERCESC_INCLUDE_GUARD_MEMORYMANAGER_HPP)
00024 #define XERCESC_INCLUDE_GUARD_MEMORYMANAGER_HPP
00025 
00026 #include <xercesc/util/XercesDefs.hpp>
00027 #include <stdlib.h>
00028 
00029 
00030 XERCES_CPP_NAMESPACE_BEGIN
00031 
00032 
00039 class XMLPARSER_EXPORT MemoryManager
00040 {
00041 public:
00042     // -----------------------------------------------------------------------
00043     //  Constructors are hidden, only the virtual destructor is exposed
00044     // -----------------------------------------------------------------------
00045 
00048 
00052     virtual ~MemoryManager()
00053     {
00054     }
00056 
00057 
00070     virtual MemoryManager* getExceptionMemoryManager() = 0;
00071 
00072 
00073     // -----------------------------------------------------------------------
00074     //  The virtual memory manager interface
00075     // -----------------------------------------------------------------------
00078 
00086     virtual void* allocate(XMLSize_t size) = 0;
00087 
00093     virtual void deallocate(void* p) = 0;
00094 
00096 
00097 
00098 protected :
00099     // -----------------------------------------------------------------------
00100     //  Hidden Constructors
00101     // -----------------------------------------------------------------------
00104 
00108     MemoryManager()
00109     {
00110     }
00112 
00113 
00114 
00115 private:
00116     // -----------------------------------------------------------------------
00117     //  Unimplemented constructors and operators
00118     // -----------------------------------------------------------------------
00119     MemoryManager(const MemoryManager&);
00120     MemoryManager& operator=(const MemoryManager&);
00121 };
00122 
00123 XERCES_CPP_NAMESPACE_END
00124 
00125 #endif
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMEntityReference__inherit__graph.md50000644000151400015140000000004011653571065024475 00000000000000e975f0b5a5ef0c1296935bd1c39ca17cXQilla-2.3.0/docs/dom3-api/DOMImplementationSource_8hpp__incl.md50000644000151400015140000000004011653571065021407 000000000000007f8b3c668c7be7f9a7300a9a30349d6bXQilla-2.3.0/docs/dom3-api/inherit_graph_35.md50000644000151400015140000000004011653571065015730 00000000000000b6cc62b98e17bfe96fb3659357388644XQilla-2.3.0/docs/dom3-api/annotated.html0000644000151400015140000006066511653571065015055 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

Class List

Here are the classes, structs, unions and interfaces with brief descriptions:
AutoDeallocate< TYPE >
AutoDelete< TYPE >
AutoDeleteArray< TYPE >
AutoRelease< TYPE >
xercesc::DOMAttrThe DOMAttr class refers to an attribute of an XML element
xercesc::DOMCDATASectionCDATA sections are used to escape blocks of text containing characters that would otherwise be regarded as markup
xercesc::DOMCharacterDataThe DOMCharacterData interface extends DOMNode with a set of attributes and methods for accessing character data in the DOM
xercesc::DOMCommentThis interface inherits from CharacterData and represents the content of a comment, i.e., all the characters between the starting ' <!--' and ending '-->'
xercesc::DOMConfigurationThe DOMConfiguration interface represents the configuration of a document and maintains a table of recognized parameters
xercesc::DOMDocumentThe DOMDocument interface represents the entire XML document
xercesc::DOMDocumentFragmentDOMDocumentFragment is a "lightweight" or "minimal" DOMDocument object
xercesc::DOMDocumentRange
xercesc::DOMDocumentTraversalDOMDocumentTraversal contains methods that create DOMNodeIterators and DOMTreeWalkers to traverse a node and its children in document order (depth first, pre-order traversal, which is equivalent to the order in which the start tags occur in the text representation of the document)
xercesc::DOMDocumentTypeEach DOMDocument has a doctype attribute whose value is either null or a DOMDocumentType object
xercesc::DOMElementBy far the vast majority of objects (apart from text) that authors encounter when traversing a document are DOMElement nodes
xercesc::DOMEntityThis interface represents an entity, either parsed or unparsed, in an XML document
xercesc::DOMEntityReferenceDOMEntityReference objects may be inserted into the structure model when an entity reference is in the source document, or when the user wishes to insert an entity reference
xercesc::DOMErrorDOMError is an interface that describes an error
xercesc::DOMErrorHandlerBasic interface for DOM error handlers
xercesc::DOMException
xercesc::DOMImplementationThe DOMImplementation interface provides a number of methods for performing operations that are independent of any particular instance of the document object model
xercesc::DOMImplementationListThe DOMImplementationList interface provides the abstraction of an ordered collection of DOM implementations, without defining or constraining how this collection is implemented
xercesc::DOMImplementationLS
xercesc::DOMImplementationRegistry
xercesc::DOMImplementationSource
xercesc::DOMLocatorDOMLocator is an interface that describes a location
xercesc::DOMLSException
xercesc::DOMLSInputThis interface represents a single input source for an XML entity
xercesc::DOMLSOutputThis interface represents an output destination for data
xercesc::DOMLSParserDOMLSParser provides an API for parsing XML documents and building the corresponding DOM document tree
xercesc::DOMLSParserFilter
xercesc::DOMLSResourceResolverDOMLSResourceResolver provides a way for applications to redirect references to external entities
xercesc::DOMLSSerializer
xercesc::DOMLSSerializerFilter
xercesc::DOMMemoryManagerThe DOMMemoryManager interface exposes the memory allocation-related functionalities of a DOMDocument
xercesc::DOMNamedNodeMapDOMNamedNodeMaps are used to represent collections of nodes that can be accessed by name
xercesc::DOMNodeThe DOMNode interface is the primary datatype for the entire Document Object Model
xercesc::DOMNodeFilterFilters are objects that know how to "filter out" nodes
xercesc::DOMNodeIteratorDOMNodeIterators are used to step through a set of nodes, e.g
xercesc::DOMNodeListThe DOMNodeList interface provides the abstraction of an ordered collection of nodes
xercesc::DOMNotationThis interface represents a notation declared in the DTD
xercesc::DOMProcessingInstructionThe DOMProcessingInstruction interface represents a "processing instruction", used in XML as a way to keep processor-specific information in the text of the document
xercesc::DOMPSVITypeInfoThe DOMPSVITypeInfo interface represent the PSVI info used by DOMElement or DOMAttr nodes, specified in the schemas associated with the document
xercesc::DOMRange
xercesc::DOMRangeExceptionRange operations may throw a DOMRangeException as specified in their method descriptions
xercesc::DOMStringListThe DOMStringList interface provides the abstraction of an ordered collection of strings, without defining or constraining how this collection is implemented
xercesc::DOMTextThe DOMText interface inherits from DOMCharacterData and represents the textual content (termed character data in XML) of an DOMElement or DOMAttr
xercesc::DOMTreeWalkerDOMTreeWalker objects are used to navigate a document tree or subtree using the view of the document defined by their whatToShow flags and filter (if any)
xercesc::DOMTypeInfoThe DOMTypeInfo interface represent a type used by DOMElement or DOMAttr nodes, specified in the schemas associated with the document
xercesc::DOMUserDataHandlerWhen associating an object to a key on a node using setUserData the application can provide a handler that gets called when the node the object is associated to is being cloned or imported
xercesc::DOMXPathEvaluatorThe evaluation of XPath expressions is provided by DOMXPathEvaluator
xercesc::DOMXPathException
xercesc::DOMXPathExpressionThe DOMXPathExpression interface represents a parsed and resolved XPath expression
xercesc::DOMXPathNamespaceThe DOMXPathNamespace interface is returned by DOMXPathResult interfaces to represent the XPath namespace node type that DOM lacks
xercesc::DOMXPathNSResolverThe DOMXPathNSResolver interface permit prefix strings in the expression to be properly bound to namespaceURI strings
xercesc::DOMXPathResultThe DOMXPathResult interface represents the result of the evaluation of an XPath 1.0 or XPath 2.0 expression within the context of a particular node
xercesc::MemoryManagerConfigurable memory manager
XQillaAllocator< _Tp >::rebind< _Tp1 >
xercesc::StDOMNode< T >
xercesc::XMLDeleter
xercesc::XMLPlatformUtilsUtilities that must be implemented in a platform-specific way
XPath2MemoryManager
XPath2ResultThe XPathResult2 interface represents the result of the evaluation of an XPath 2.0 expression within the context of a particular node
XQillaAllocator< _Tp >
XQillaExpressionThe XQillaExpression interface extends the DOMXPathExpression interface, providing the ability to release the object
XQillaNSResolverThe XQillaNSResolver interface extends the DOMXPathNSResolver providing the ability to add additional namespace bindings
XQillaPlatformUtilsStatic utility methods for initializing and terminating the XQilla and Xerces environments
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMNotation__inherit__graph.map0000644000151400015140000000033211653571066023272 00000000000000 XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMAttr__inherit__graph.map0000644000151400015140000000033111653571066022410 00000000000000 XQilla-2.3.0/docs/dom3-api/inherit_graph_23.map0000644000151400015140000000033711653571066016027 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMComment_8hpp__incl.map0000644000151400015140000000003511653571065016737 00000000000000 XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMXPathNamespace-members.html0000644000151400015140000004763111653571065022772 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMXPathNamespace Member List

This is the complete list of members for xercesc::DOMXPathNamespace, including all inherited members.
appendChild(DOMNode *newChild)=0xercesc::DOMNode [pure virtual]
ATTRIBUTE_NODE enum valuexercesc::DOMNode
CDATA_SECTION_NODE enum valuexercesc::DOMNode
cloneNode(bool deep) const =0xercesc::DOMNode [pure virtual]
COMMENT_NODE enum valuexercesc::DOMNode
compareDocumentPosition(const DOMNode *other) const =0xercesc::DOMNode [pure virtual]
DOCUMENT_FRAGMENT_NODE enum valuexercesc::DOMNode
DOCUMENT_NODE enum valuexercesc::DOMNode
DOCUMENT_POSITION_CONTAINED_BY enum valuexercesc::DOMNode
DOCUMENT_POSITION_CONTAINS enum valuexercesc::DOMNode
DOCUMENT_POSITION_DISCONNECTED enum valuexercesc::DOMNode
DOCUMENT_POSITION_FOLLOWING enum valuexercesc::DOMNode
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC enum valuexercesc::DOMNode
DOCUMENT_POSITION_PRECEDING enum valuexercesc::DOMNode
DOCUMENT_TYPE_NODE enum valuexercesc::DOMNode
DocumentPosition enum namexercesc::DOMNode
DOMNode()xercesc::DOMNode [inline, protected]
DOMNode(const DOMNode &)xercesc::DOMNode [inline, protected]
DOMXPathNamespace()xercesc::DOMXPathNamespace [inline, protected]
ELEMENT_NODE enum valuexercesc::DOMNode
ENTITY_NODE enum valuexercesc::DOMNode
ENTITY_REFERENCE_NODE enum valuexercesc::DOMNode
getAttributes() const =0xercesc::DOMNode [pure virtual]
getBaseURI() const =0xercesc::DOMNode [pure virtual]
getChildNodes() const =0xercesc::DOMNode [pure virtual]
getFeature(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNode [pure virtual]
getFirstChild() const =0xercesc::DOMNode [pure virtual]
getLastChild() const =0xercesc::DOMNode [pure virtual]
getLocalName() const =0xercesc::DOMNode [pure virtual]
getNamespaceURI() const =0xercesc::DOMNode [pure virtual]
getNextSibling() const =0xercesc::DOMNode [pure virtual]
getNodeName() const =0xercesc::DOMNode [pure virtual]
getNodeType() const =0xercesc::DOMNode [pure virtual]
getNodeValue() const =0xercesc::DOMNode [pure virtual]
getOwnerDocument() const =0xercesc::DOMNode [pure virtual]
getOwnerElement() const =0xercesc::DOMXPathNamespace [pure virtual]
getParentNode() const =0xercesc::DOMNode [pure virtual]
getPrefix() const =0xercesc::DOMNode [pure virtual]
getPreviousSibling() const =0xercesc::DOMNode [pure virtual]
getTextContent() const =0xercesc::DOMNode [pure virtual]
getUserData(const XMLCh *key) const =0xercesc::DOMNode [pure virtual]
hasAttributes() const =0xercesc::DOMNode [pure virtual]
hasChildNodes() const =0xercesc::DOMNode [pure virtual]
insertBefore(DOMNode *newChild, DOMNode *refChild)=0xercesc::DOMNode [pure virtual]
isDefaultNamespace(const XMLCh *namespaceURI) const =0xercesc::DOMNode [pure virtual]
isEqualNode(const DOMNode *arg) const =0xercesc::DOMNode [pure virtual]
isSameNode(const DOMNode *other) const =0xercesc::DOMNode [pure virtual]
isSupported(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNode [pure virtual]
lookupNamespaceURI(const XMLCh *prefix) const =0xercesc::DOMNode [pure virtual]
lookupPrefix(const XMLCh *namespaceURI) const =0xercesc::DOMNode [pure virtual]
NodeType enum namexercesc::DOMNode
normalize()=0xercesc::DOMNode [pure virtual]
NOTATION_NODE enum valuexercesc::DOMNode
PROCESSING_INSTRUCTION_NODE enum valuexercesc::DOMNode
release()=0xercesc::DOMNode [pure virtual]
removeChild(DOMNode *oldChild)=0xercesc::DOMNode [pure virtual]
replaceChild(DOMNode *newChild, DOMNode *oldChild)=0xercesc::DOMNode [pure virtual]
setNodeValue(const XMLCh *nodeValue)=0xercesc::DOMNode [pure virtual]
setPrefix(const XMLCh *prefix)=0xercesc::DOMNode [pure virtual]
setTextContent(const XMLCh *textContent)=0xercesc::DOMNode [pure virtual]
setUserData(const XMLCh *key, void *data, DOMUserDataHandler *handler)=0xercesc::DOMNode [pure virtual]
TEXT_NODE enum valuexercesc::DOMNode
XPATH_NAMESPACE_NODE enum valuexercesc::DOMXPathNamespace
XPathNodeType enum namexercesc::DOMXPathNamespace
~DOMNode()xercesc::DOMNode [inline, virtual]
~DOMXPathNamespace()xercesc::DOMXPathNamespace [inline, virtual]
XQilla-2.3.0/docs/dom3-api/inherit_graph_13.md50000644000151400015140000000004011653571065015724 0000000000000058b4e7952461a00548f7b4ffa5ec1075XQilla-2.3.0/docs/dom3-api/XQillaPlatformUtils_8hpp__dep__incl.md50000644000151400015140000000004011653571065021610 00000000000000afc72135dc992409cecff48c287bbf36XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMDocument-members.html0000644000151400015140000010241411653571065021676 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMDocument Member List

This is the complete list of members for xercesc::DOMDocument, including all inherited members.
adoptNode(DOMNode *source)=0xercesc::DOMDocument [pure virtual]
appendChild(DOMNode *newChild)=0xercesc::DOMNode [pure virtual]
ATTRIBUTE_NODE enum valuexercesc::DOMNode
CDATA_SECTION_NODE enum valuexercesc::DOMNode
cloneNode(bool deep) const =0xercesc::DOMNode [pure virtual]
COMMENT_NODE enum valuexercesc::DOMNode
compareDocumentPosition(const DOMNode *other) const =0xercesc::DOMNode [pure virtual]
createAttribute(const XMLCh *name)=0xercesc::DOMDocument [pure virtual]
createAttributeNS(const XMLCh *namespaceURI, const XMLCh *qualifiedName)=0xercesc::DOMDocument [pure virtual]
createCDATASection(const XMLCh *data)=0xercesc::DOMDocument [pure virtual]
createComment(const XMLCh *data)=0xercesc::DOMDocument [pure virtual]
createDocumentFragment()=0xercesc::DOMDocument [pure virtual]
createDocumentType(const XMLCh *name)=0xercesc::DOMDocument [pure virtual]
createDocumentType(const XMLCh *qName, const XMLCh *, const XMLCh *)xercesc::DOMDocument [inline, virtual]
createElement(const XMLCh *tagName)=0xercesc::DOMDocument [pure virtual]
createElementNS(const XMLCh *namespaceURI, const XMLCh *qualifiedName)=0xercesc::DOMDocument [pure virtual]
createElementNS(const XMLCh *namespaceURI, const XMLCh *qualifiedName, const XMLFileLoc lineNum, const XMLFileLoc columnNum)=0xercesc::DOMDocument [pure virtual]
createEntity(const XMLCh *name)=0xercesc::DOMDocument [pure virtual]
createEntityReference(const XMLCh *name)=0xercesc::DOMDocument [pure virtual]
createExpression(const XMLCh *expression, const DOMXPathNSResolver *resolver)=0xercesc::DOMXPathEvaluator [pure virtual]
createNodeIterator(DOMNode *root, DOMNodeFilter::ShowType whatToShow, DOMNodeFilter *filter, bool entityReferenceExpansion)=0xercesc::DOMDocumentTraversal [pure virtual]
createNotation(const XMLCh *name)=0xercesc::DOMDocument [pure virtual]
createNSResolver(const DOMNode *nodeResolver)=0xercesc::DOMXPathEvaluator [pure virtual]
createProcessingInstruction(const XMLCh *target, const XMLCh *data)=0xercesc::DOMDocument [pure virtual]
createRange()=0xercesc::DOMDocumentRange [pure virtual]
createTextNode(const XMLCh *data)=0xercesc::DOMDocument [pure virtual]
createTreeWalker(DOMNode *root, DOMNodeFilter::ShowType whatToShow, DOMNodeFilter *filter, bool entityReferenceExpansion)=0xercesc::DOMDocumentTraversal [pure virtual]
DOCUMENT_FRAGMENT_NODE enum valuexercesc::DOMNode
DOCUMENT_NODE enum valuexercesc::DOMNode
DOCUMENT_POSITION_CONTAINED_BY enum valuexercesc::DOMNode
DOCUMENT_POSITION_CONTAINS enum valuexercesc::DOMNode
DOCUMENT_POSITION_DISCONNECTED enum valuexercesc::DOMNode
DOCUMENT_POSITION_FOLLOWING enum valuexercesc::DOMNode
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC enum valuexercesc::DOMNode
DOCUMENT_POSITION_PRECEDING enum valuexercesc::DOMNode
DOCUMENT_TYPE_NODE enum valuexercesc::DOMNode
DocumentPosition enum namexercesc::DOMNode
DOMDocument()xercesc::DOMDocument [inline, protected]
DOMDocumentRange()xercesc::DOMDocumentRange [inline, protected]
DOMDocumentTraversal()xercesc::DOMDocumentTraversal [inline, protected]
DOMNode()xercesc::DOMNode [inline, protected]
DOMNode(const DOMNode &)xercesc::DOMNode [inline, protected]
DOMXPathEvaluator()xercesc::DOMXPathEvaluator [inline, protected]
ELEMENT_NODE enum valuexercesc::DOMNode
ENTITY_NODE enum valuexercesc::DOMNode
ENTITY_REFERENCE_NODE enum valuexercesc::DOMNode
evaluate(const XMLCh *expression, const DOMNode *contextNode, const DOMXPathNSResolver *resolver, DOMXPathResult::ResultType type, DOMXPathResult *result)=0xercesc::DOMXPathEvaluator [pure virtual]
getAttributes() const =0xercesc::DOMNode [pure virtual]
getBaseURI() const =0xercesc::DOMNode [pure virtual]
getChildNodes() const =0xercesc::DOMNode [pure virtual]
getDoctype() const =0xercesc::DOMDocument [pure virtual]
getDocumentElement() const =0xercesc::DOMDocument [pure virtual]
getDocumentURI() const =0xercesc::DOMDocument [pure virtual]
getDOMConfig() const =0xercesc::DOMDocument [pure virtual]
getElementById(const XMLCh *elementId) const =0xercesc::DOMDocument [pure virtual]
getElementsByTagName(const XMLCh *tagname) const =0xercesc::DOMDocument [pure virtual]
getElementsByTagNameNS(const XMLCh *namespaceURI, const XMLCh *localName) const =0xercesc::DOMDocument [pure virtual]
getFeature(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNode [pure virtual]
getFirstChild() const =0xercesc::DOMNode [pure virtual]
getImplementation() const =0xercesc::DOMDocument [pure virtual]
getInputEncoding() const =0xercesc::DOMDocument [pure virtual]
getLastChild() const =0xercesc::DOMNode [pure virtual]
getLocalName() const =0xercesc::DOMNode [pure virtual]
getNamespaceURI() const =0xercesc::DOMNode [pure virtual]
getNextSibling() const =0xercesc::DOMNode [pure virtual]
getNodeName() const =0xercesc::DOMNode [pure virtual]
getNodeType() const =0xercesc::DOMNode [pure virtual]
getNodeValue() const =0xercesc::DOMNode [pure virtual]
getOwnerDocument() const =0xercesc::DOMNode [pure virtual]
getParentNode() const =0xercesc::DOMNode [pure virtual]
getPrefix() const =0xercesc::DOMNode [pure virtual]
getPreviousSibling() const =0xercesc::DOMNode [pure virtual]
getStrictErrorChecking() const =0xercesc::DOMDocument [pure virtual]
getTextContent() const =0xercesc::DOMNode [pure virtual]
getUserData(const XMLCh *key) const =0xercesc::DOMNode [pure virtual]
getXmlEncoding() const =0xercesc::DOMDocument [pure virtual]
getXmlStandalone() const =0xercesc::DOMDocument [pure virtual]
getXmlVersion() const =0xercesc::DOMDocument [pure virtual]
hasAttributes() const =0xercesc::DOMNode [pure virtual]
hasChildNodes() const =0xercesc::DOMNode [pure virtual]
importNode(const DOMNode *importedNode, bool deep)=0xercesc::DOMDocument [pure virtual]
insertBefore(DOMNode *newChild, DOMNode *refChild)=0xercesc::DOMNode [pure virtual]
isDefaultNamespace(const XMLCh *namespaceURI) const =0xercesc::DOMNode [pure virtual]
isEqualNode(const DOMNode *arg) const =0xercesc::DOMNode [pure virtual]
isSameNode(const DOMNode *other) const =0xercesc::DOMNode [pure virtual]
isSupported(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNode [pure virtual]
lookupNamespaceURI(const XMLCh *prefix) const =0xercesc::DOMNode [pure virtual]
lookupPrefix(const XMLCh *namespaceURI) const =0xercesc::DOMNode [pure virtual]
NodeType enum namexercesc::DOMNode
normalize()=0xercesc::DOMNode [pure virtual]
normalizeDocument()=0xercesc::DOMDocument [pure virtual]
NOTATION_NODE enum valuexercesc::DOMNode
PROCESSING_INSTRUCTION_NODE enum valuexercesc::DOMNode
release()=0xercesc::DOMNode [pure virtual]
removeChild(DOMNode *oldChild)=0xercesc::DOMNode [pure virtual]
renameNode(DOMNode *n, const XMLCh *namespaceURI, const XMLCh *qualifiedName)=0xercesc::DOMDocument [pure virtual]
replaceChild(DOMNode *newChild, DOMNode *oldChild)=0xercesc::DOMNode [pure virtual]
setDocumentURI(const XMLCh *documentURI)=0xercesc::DOMDocument [pure virtual]
setNodeValue(const XMLCh *nodeValue)=0xercesc::DOMNode [pure virtual]
setPrefix(const XMLCh *prefix)=0xercesc::DOMNode [pure virtual]
setStrictErrorChecking(bool strictErrorChecking)=0xercesc::DOMDocument [pure virtual]
setTextContent(const XMLCh *textContent)=0xercesc::DOMNode [pure virtual]
setUserData(const XMLCh *key, void *data, DOMUserDataHandler *handler)=0xercesc::DOMNode [pure virtual]
setXmlStandalone(bool standalone)=0xercesc::DOMDocument [pure virtual]
setXmlVersion(const XMLCh *version)=0xercesc::DOMDocument [pure virtual]
TEXT_NODE enum valuexercesc::DOMNode
~DOMDocument()xercesc::DOMDocument [inline, virtual]
~DOMDocumentRange()xercesc::DOMDocumentRange [inline, virtual]
~DOMDocumentTraversal()xercesc::DOMDocumentTraversal [inline, virtual]
~DOMNode()xercesc::DOMNode [inline, virtual]
~DOMXPathEvaluator()xercesc::DOMXPathEvaluator [inline, virtual]
XQilla-2.3.0/docs/dom3-api/DOMTreeWalker_8hpp.html0000644000151400015140000001047311653571066016435 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMTreeWalker.hpp File Reference

#include <xercesc/dom/DOMNode.hpp>
#include <xercesc/dom/DOMNodeFilter.hpp>
Include dependency graph for DOMTreeWalker.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMTreeWalker
 DOMTreeWalker objects are used to navigate a document tree or subtree using the view of the document defined by their whatToShow flags and filter (if any). More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


Defines

#define GetDOMTreeWalkerMemoryManager   GET_INDIRECT_MM(fCurrentNode)

Define Documentation

#define GetDOMTreeWalkerMemoryManager   GET_INDIRECT_MM(fCurrentNode)
XQilla-2.3.0/docs/dom3-api/inherit_graph_27.png0000644000151400015140000000424611653571066016045 00000000000000‰PNG  IHDR»()ÐbKGDÿÿÿ ½§“[IDATxœí›[LÏÇg)hcÀK/%€  `U* (Dx0"P¢B ‘KС¢Db$x0¨D &¢ÜTUƒr*P‘´Á€ ˆ)‚Rl ´tþ›ß¦ÿ¶–øSf>OsÎΙ=g滳Ûm‹A±j,~wˆÿH1j Å ¨ƒ †¥}á‰Dò[RAüœ;wnÿþýúCÅôõõ úûûÿ¬(555'Ož4p*àïï_]]ýKRBüÑ`fìDÏ1j Å ¨ƒ R ‚H1jüµŠÁôpqq‰‹‹›ššÒï0;;+‰|||Ö­[·gÏž‹/jµZ2vÛ¶mßÑFDD`6<<\YY‰™âÍ›7kÈ3--M faa!†a>| ÌÏŸ?cöâÅ “±ÃÃÃÄDzñ økèìì”ËåãããeeeJ¥’ÏçÏÌ̇T*ÕîÝ»»»» {zz²³³ïÝ»º´´Dtyûö-9”B¡ _l>|X.—ËåòÎÎN€ü¼¼¼ÖdPPPoo¯Z­&̦¦& ‹ÆÆF”J¥t:}ïÞ½kš€…¿Y1,‹Ëå:::×ÖÖº¹¹‡òóóY,Vsssxx¸»»{TTÔëׯGFFÊÊʈ!!!555äPõõõä«O[[[.—ËårY,€ûVVVkHrß¾}¦§§ V«_¾|O*æÕ«W~~~¶¶¶kƒŸÏZS__ïèè¨P(îîî³³³F#‰8›Í‰D†Ø-›››[[[sssY,V\\y¹GÄb±···››ÛÝ»wZ­Öd¸þ†lfsÆ0,%%åÉ“'„Y^^ž““C£ÑÈL&S$•——¦P(¬®®&oL<ˆ‰‰1?-úŶ··›¬ËØÉáp¶oß.•J</))©¹¹™¸EJ¥RR©?Þ¹s'ƒÁppp¸té’É „¾¾¾ß¾}[qEÚÛÛÍWdøÿ…B¡PW"...>>~bb‚ÃátuuÎÂÂÂèèè±±1™LÆçó³²²†††---yyy^^^2™¬¯¯O ddd,…㸵µõ7ärùíÛ·---q¿|ù²Éð™™™›7o·CCCú9wwwÛÛÛC ­OMMÕÑÑÁápˆØÁÁA.—ÛÛÛK Ë`0ˆ5Г¨ÎÀ$ŠÅqܸ.“ÅBSSS###!„™™™ÉÉÉÆÞÞ^*•ÎÏÏÓéôçÏŸC•J%NOLL'd=99I&@4t:)—Õ¬ŽãæWPUUeè4°W©…Báäääíí——G:===år9Ñnllôõõ%ò“ÉdBGGß½{G¶£¦§§­¬¬®\¹¢P(t:J¥ZZZZ.ÜLµT#•J7mÚDƦ¥¥eggCËËËCCCÇ4©¢X“u-第¬d³Ù:ŽÏç×ÔÔ@£££ÏŸ?/•Ji4šJ¥‚.,, à8¾´´ÔÖÖFdb ˜ÌÌLÀû÷ïW¹"+ò3!ÌÏϧÑh_¿~%=666ú»—‘ßââ"q´¯¯Ïxã(a{{{LL “É |úô©™p3Õ(æþýû»ví"Ú\.·±±Ñ äúõëaaadlkkëÖ­[u:]dddii©ñ˜&C»\]&r¹ÐÕÕE£Ñˆí¡´´4  ¨¨H ã×ÕÕøúú&$$˜TLpppPPP||ü*Wd5søÓ366Æf³ÃÂÂŽ?N:œœÈ U(úsêææ&‹‰voooAAÁrQsss‰B¸°°pçÎöýû÷åÂÍT«¿º:.000''‡0ÓÓÓµZ-ÙÇq—ââb2V«Õr8‰DÂd2‰ c5Š13Ë9!„‡âóù„ùñãGKKËðððÌÌLÂ377gmm]WW§ÓéˆVÆŠÁq|ppÐÚÚº¥¥e5+²"&³–'_N—˜˜xúôéŠŠŠ¦¦&±XLø£¢¢²³³GGGe2YxxxII‰~Ô‰'Ξ=ÛßßßßßêÔ©ÑÑÑå¢0 ;xðàÇ•Jåâ⢕•ƒÁX.üÇ·nÝ2n¦¦¦&&&¾|ùÒÖÖväÈ‘OŸ>9s†8”““399yàÀ†††¡¡¡ÚÚZ@àè蘚šJ†Óh´èèèääd???6›Mu–LÎÆrS$‹CBBÓÕÕÕÕÕµ¡¡|ì]XXX\\¤Óéjµ:77 R© ÎÈd2=<<²²²RRRæççW\‘5b  Õì1W¯^õññ!v¶ÚÚZ‡ééi¡R©LHHX¿~ýÆ“’’fggõ=??Ÿ‘‘±yóf;;»ØØX…BAø£ „UUU[¶l¡ÓéžžžuuufÂõO¡ßÖ¯‘Çã;vLÿ !Äq<==}ÇŽ ÃËË«  `nnŽŒ%.ÍÖÖV@II‰ßøtƦɺL:!„€gÏž‘áiii333¤§¨¨hÆ <ïÚµk±±±l6Û`!º©Õjww÷ÜÜÜWdE€©=3˜Ü£GÐïc ꪪIüÍoðÿH1j Å ¨ƒ R ‚H1j Å ¨ƒ R ‚&þ)‘HBCC}*ˆÿ†Šù£~RŠø½…Bgà4ü^ 0zŽAP)A ¤5bÔøÝÜ¿OÍ óIEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMImplementationLS_8hpp__incl.map0000644000151400015140000000003511653571065020561 00000000000000 XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMDocument__inherit__graph.map0000644000151400015140000000140411653571066023256 00000000000000 XQilla-2.3.0/docs/dom3-api/functions_eval.html0000644000151400015140000006532511653571065016115 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
 

- a -

- b -

- c -

- d -

- e -

- f -

- h -

- i -

- m -

- n -

- o -

- p -

- s -

- t -

- u -

- v -

- w -

- x -

XQilla-2.3.0/docs/dom3-api/DOMLSParser_8hpp__incl.png0000644000151400015140000003113211653571065017041 00000000000000‰PNG  IHDRðuf¨¯bKGDÿÿÿ ½§“ IDATxœíÝy\çºðIX « ›¬‚ˆ¬Š¢­+E­V­zE‹âÖÅíœÚ#‚K«¢uGèmëmq«žºbµ±UK­ØŠ"(BP}ßWC€@–¹ŒgL“!ðû~üøI&3ož™¼ïÌÃäÉ ƒ$ITSÙ@×!¡PaHèTz¦®ìú¢3f(;xåóÏ?Ÿ:uª²£è£ÐÈðûï¿5ÊÔÔTÙ·fÍeGÐw!¡mñâÅÓ¦MSv@ÄÅÅ);€> 5ô* =€ CB ÂШ0$ô* W¹è"ú±™™™‡‡Ç†  è‰<ïôéÓIIIååå666“'Oö÷÷WSS£–µ´´%7]g``0dÈccãÑ£GñÅæææ?þø#õÒ?ü```áíímee5yòäÈÈÈŠŠŠ7nP3xyy‰_aýþýûžžžòßîÞ½{kÖ¬qtt400 ÎÁÇÇÇKcddäàà°iÓ¦gÏž577+x… ïAB  ãÝwßMHH žÆÆÆ®\¹’:Oa±Xþþþ±±±ÔÓiÓ¦ÅÅÅ‘$I=½{÷îÔ©Så¿…¶¶öÕ«W9õÔÝÝ=**JæœÔû …B‚ ¢¿š9º ?ŠP˜’’ ‚ tuu‡ ’““ãåå%>CNNΈ#è§Ó¦M ûðÃ;SoÃãñîß¿?mÚ4gggggç+Vœ>}:22Ò××—šAæufÔÕÕKJJ>ÜÒÒ"qZÝÆÆ† ==½/¿üòòå˧N1bIJeËÆODEEÅ¢E‹è™uttÄ—’fddD„øE{‚°²²¢—ª®®–3º gèƒ$Ék×®M˜0z:}úô~ø>OÇ»pá‚··7=ÅÍÍ­¹¹9--íÑ£GÔ¹mùíïÙ³'//zÊ`0ÆGUÉËÑÚÚêïïìØ±O?ýTü%uuuj‘HóÎ;ïlÛ¶:¿>xðà³gÏÞ¹sçÎ;111ß~û­øRÒ$RyJII õ ¸¸˜ÊøÛ›]†„ ëêêêjjjRSS·oß^^^¾dÉê¥U«VÕ××oܸ111±¤¤ä¯¿þÚ°aƒ±±ñüùóéÅ©ª›ˆˆgggñ Ø‹7NÓÒÒš9sæ®]»ÊËËŸ={öÝwßѧçÛÃçóººz[[U/qéƒüçŸ655ñù|uuuªäfòäÉǯ¬¬ÌËË ¹zõªDË¿üò ]½Óž#GŽ”––>þüĉ3fÌ3º %7]÷ñÇSLMMÝÝÝ;F—¦hkk;vìÔ©S‘‘‘eeeæææ¾¾¾‹/ÖÐÐoÁÇÇ'::záÂ…r§Ü¹s'$$äÌ™3Ç/--544ôññY½zµüuuu7lذgÏ--­eË–ùúú†„„ˆ_Ÿ^SSsëÖ­G­ªª²°°Ø¹s'u§ª?üðÈ‘#kÖ¬a0S¦LY·n]MMxˇöôô¤×W¦éÓ§ñx<êXTÄDùñ@‡ôÓ€Æ`0vîÜ9mÚ4e¢ªJKK—/_~çÎ'vÈÇÇ'**Šþê$ ä@…!¡ÅÓÑÑ™7o^g&@7!¡Å300ظqcg&@7!¡PaHèTz†„@…!¡PaHè$ñùBC£ãùúÜ)€àñølv1›]BýŸ›[ÕÐojZmhh¨Ä¨„B-5µ%@„H¤É` ‘cHNfÏž½cî܉£GÛ¸¹Yéè Rb0}zˆD"2'§25µ˜ú÷ìY)Ç×××òð°¦þ?~@SS¨¬ðÚÚ˜99/^°ÆŽ­ÐÐPf2žnÔܬîàÐ``Ъ¬Z[ÕÛÚÜ _¼hVScŽaæáa3z´ÍèÑÃFŽ4WWÇWÍ0Ð!¡€¡­M’RDŸƒÏË«D&&zžž6îîVîîÖîîVffƒ•&!Š"#ïDDüfiiá?v¬rã©©áîÞ}ùò£yó<÷ï÷2DG‰ÁTV¾ ?ÁG êë›ÔÕ™öö¦ô'8zô0 5%F Hè  E99UIIù‰‰ylvI~~5Ÿ/2DÇË˶Oeðâ²³+ƒ‚¢RS‹§üñôAƒÔ•ÑK±±Ï¶l¹Ìç ¶owñâqÊç¥ÂÂZêÃe³‹ÙìâÖV¶¶¦‹‹%õẻ[aÆ`0”&@CBý„HDfgWÒ¥ðééeMM­ÚãÆÙõÙ žÆç ¿þ:öÈ‘ÛNNæþ£FY(;"IoÏžkçÎ%øú:<¸ØÜÜ@Ùý@ ÊÍ­b³‹“’òósr*E"’ª¡òö¶sw·3f˜‘‘®²ÃèHè@U‘$™•õ*ƒÏÈ(ãr[µ´4]]-ÝÝ­½½í¼½íúl/ŽÍ.þ÷¿/ææVÏZ·Î§/…'$äEÕÖ6~þù»úìùo.·5=½”®ÏÉʪ ÂÌLŸú»ÎÛÛ~ìX[--Me‡  Hè@•dfVÐ|ff9‡Ãc±4Üܬè* S5µ¾›Khk„…ÝËÉÉÜÛÛÞÛÛnôèaÆÆ(¾€> =(Ym-79¹P<ƒg2ft9„««•¶vÿ)wþ믬ààKNË®] üüƪú™àŒŒ²/>^þñǾ3úÁßZÏž¡øT zèm ÍIIùâ<ƒÁpt|•Áe©«ÛïÚÐмcÇÏW®<ž=Ûmß>?SS=eG¤èèÑ;aa7‡7ˆð÷ð°VvD Ãá´¤¦SÇLN.¬­å¢øú $ôÐ㚛۞>-¡®'(3ƒwv¶ÐÓc);Ìžõë¯ìmÛ. …ä¾}‹æÍóTv8ŠWPPt1))Ý:ŸààYšš}å"ú DÝÙ*11?11ïéÓÒ––6ß@_€„ÇãÓ'àÙì’ÜÜ*¡Pdf¦ïímO]~äHs}}-e‡ÙKjk¹Û¶]‰‰IY¾üÏ>›;x°¶²#ê)$Iž;—°kW´‰‰^x¸ÿo WvD=H¼øžÍ.NI)âó…(¾¥@B ÐÚ*HM-¢3ø¼¼*@db¢çéiÓ÷oêԣΞ}°wïu̓—øú:+;œÞP\\|鯿²&ìÜ9_G§VOI£¾†¢‡@vv%I’âÅ÷^^¶ýé§ Ð§ ¡€®hk¤¤¼Êàóó«ù|á!:^^¶<ƒ§••5lÞ|é?žLøüówõõûyM‘„˜˜”Í›ÔÓc……-™2ÅIÙáô6‡÷üyUföäIaM Šï !¡€N E99UIIùÔ© ÞÀ@›*¡A/Žª<ٳ皱±^x¸ÿøñöÊŽH9ªª·m»üë¯ìyó<\l`Ðok:Dß³Ùʼn‰ù47·ih¨9;[ÐÃÅ÷ÐHè@6‘ˆÌή¤K„ÓÓËššZµ´4]]-ÝÝ­½½í¼½íÁKËË« ºøèQÁúõ>AAo³XÊŽHÉbbR¶m»¢¦ÆØ·ÏïwÜ•ŽòQÓ#+5µ¸­M ^|ïéicbÒO®€½ =¼D’dVÖ« >#£ŒËme±4Üܬè‹x88˜ªÖ=A{“P(ŠŒ¼~ËÆÆ(<ÜßËk˜²#ê+^¼hÞ»÷úÙ³æÍóÜ·o‘‘~*ú Ÿ/ÌÈ(£.%]|ïîn=~¼ýÀù9t z€-3³‚Îà33Ë9ž¦¦º‡‡5L nª®Ž ¾cYYAAÙì’Ùk×NCy´´Û·36o¾ÔÔÔöÙgs—/CÙáôQâÅ÷))EÕÕÅ÷žž6ýò’ ÐHè–ÊJNbbu:03³‚ÃiÑÐPóô´¡3x{{$£¯…Ï:tãØ±8ËðpggseGÔwq8¼°°§Nýåã3òàÁ%ÊŽ¨¯£‹ï©ëß¿xÑŒâ{†„ Ÿ«®nLI)¿-+“ÉppxuS'WW+\M¯ËRRŠ‚‚.ÖnÙ2gõêIø6£3>Ì ºX]Ý<ûƒ&3™ÈG;Efñ½žkäHsêg-& Gñ=ÀÀ„„ ¿©«kzü¸@<ƒ—¸-ë¨Q–ººâÒà=ª¹¹mÿþ_þóŸ{ãÇÛ‡…½gkk¬ìˆT Ç¿ygìXÛðp{{eG¤zø|a^^5}ᩜœJ‘èoÅ÷ÞÞvýø.f  =€ÊkhhNJÊ—“Á;;[èé ¬‹ ÷´øøœàਚšÆ;æL@ÍC×<~\t±¨¨6(èíõë}ð{ëîhläed”±Ù%IIùæVU¡ø`AB z¨{RR?›£2x‚ ÌÌô½½í©ÊÚ‘#ÍqYŒÂå¶îÞ}î\”)#ÂÂÞ³²2TvDªÏ;wèÐ ww«Ã‡ýœ†*;¢~B¼ø>))¿¡Å÷ýzÀãñéðlvInn•P(21Ñóô´ÁMzÓÝ»™ÁÁQMMmøÍ›ç©ìpúŒŒò  ‹Ïž•®];-$d6~–­p……µTe›]Ìf·¶þ­ø~üøá¦¦(¾PaHèú¢ÖVAjjÁçåU ¢!Ct¼¼l‘Á+E}}Ó–-—cbRæÎõØ»w~z¨pèôé{ü2l˜Qx¸¿§§²#ê·¨â{6»˜ú–Å÷ýz€>¡­M’ò*ƒÏϯæó…Úô÷ãÈà•èúõÔÏ>»¢¦Æ>#•ÎÀRYùbóæË±±Ï&ìØ1ZU–Êʉ‰/Ÿ–VÂãñQ|Ð!¡è)$Ife½Êà32ʸÜVMMuk:ƒ>Ü·"êƒJKëCB.ݽ›¹aÃ[7ÎÔÒBá‡rÄĤlÙrYSSýàA¿™3]•Î@'ˆrs«è+ç<}Z"Q|?nœŠï” =€"efVÐ|ff9‡ÃÓÐPóô´¡xöö&¸‚G_&‘ß}÷GDÄo––ááþãÆÙ);¢®ººñ³Ï®\¿ž:ožç~††:ÊŽ^jjj}ö¬”®ÏÉʪ bØ0#ª2ÇÝÝÊÃÃfÐ ßô$ôÝRYÉa³‹óó23+8œ&“áàðê¦N®®VøaŸªÈÉ© º˜œ\¸~½OPÐÛ,–†²#‚—bcŸmÞü£P(Ú»wÑܹÊd v†TrÿøqA]Šïzz€×SSÃ}ò¤PÎmYG²D½¯Ê E‘‘wÂÃo9:šEDø»¸X*;"Äá´ìÙsî\Âôé£\-¡nšHgð&&zžž6¸©S?–œ\t±¸¸.4tÁ²ePÝ«Z’’òƒ‚.––6lÜ8sÆ·ðñ©.§%5µ˜º#Grram-—*¾ww·òö¶7ÎÅ÷BBǧOÀ³Ù%¹¹UB¡hÈ//[dðASSë®]ÑçÏ'¼ù¦cXØ’aÃPË«’Z[‡ߌŒ¼3f̰ðpSeG @ßÙ*11ÿÑ£‚––6]ÝAÎÎ(¾ = ­­‚ÔÔ":ƒÏË«DÚãÆÙ!ƒï—D"²½Sz÷îe_ª«kÚ¾ý]a÷ééeÿþ÷…¬¬ŠM›f­_ïÓÞ­ÙH’Äg­r¨;jË)¾;ÖW2 ÐCÅç Ÿ<)¤3øüüj>_¨­­éâbéímïím‡ ¾KM->z4îÛoWHLñ¢yûöŸ¯\yüöÛ®û÷û™™é+%‡wöìZŸ‘Ê ˆÃá=^FíóSRŠª«ÕÕ™öö¦(¾‡ =¨*:ƒ§ÎÖ¤§—55µjjª{xXÓüðá¦êêÈà‘ˆ 8Ÿ-ZññÛ uêêš¶n½“âç7vÇŽùÆÆºÊzŠHDž?Ÿ°kW´••ax¸ÿ˜1ÂX»öôÍ›iB¡HG‡õÇ!VV¸*NÿDß³Ù%æq8-âÅ÷ÞÞöøµ ôcHèAe$™•õ*ƒÏÈ(ãr[54Ô<=mè ÞÞÞÈÂÂn|ýõïB¡ˆ uuµY³ÜfÌõÅ×44Ôð›1ÃEÙBo(,¬ ¾tÿ~ö²eÆ· )=Á`¨«3¯_ÿTúb800‰ß'%å744‹ß»»[·wé+W}òÉy‘ˆÔÐP‰D«WOÞ¼ùœr¥@BŠÔÚ*8rä÷o¾¹M’$Ÿÿ*µºpaýÔ©NÔ㺺¦Ç Ä3x‚ llŒ¼½_^wläHs}}-嬨¦K.<¤Jçe:~Ý´i¸¼ÉÂá´Lœ¸¿¾ž+É8Æ©©1‡|ûv0v5 ­°°–ºm-›]Ìf·¶¶[|¿}ûÏgÎÄ·µ½<Øih¨éëkïØ1oñâqÊ ($ô 011)»wGWTp$ò*MMõ+Þ>Ü45µˆÍ.ÎήDzz,77+kê¢4ø¦ºìÚµ” ~»+cX[ÆÅmÆO!ŽíÛ>yòO93hh0ß~ÛíØ±Õ½¨$.·•º¡Õ“'EOž–•5¨«3œÌG¶=Úæøñ»ÏŸWˆÏÏd2IR4~¼ýÁƒKÍ”6 @HèA²³+·l¹üàAŽšSú,)“ɰ²2ljj3fnË Š•“S5sæa/1Édhh¨·¶ò54ÔÆŒ6i’£¿ÿxKK\¯p@‰Èÿü'þÁƒœøøìúúf &A0Ä¿3¤0™ŒÐÐ}4E)A‚*âr[ÓÓK©“÷‰‰ù¥¥uB¡Œ$JCCM$"W¯ž´uëmmœG€Þ€„º…Ëm=xð×Ó§ï1 éòeš±±Þ“'¡¸©(‡Ã›1#¬¬¬ú3’Á`0™ ¡P¤£3hʧ7Þîímçâb‰Ž7UV¾HLÌÿóÏÌøøœ‚‚&“Ád2é“ɸpaýäÉ#”$¨"6»xÖ¬93hh0MMõ÷ï_<}ú¨^‹ ¬¿%ô---õõõJŒTË_å8[YÉ%ˆŽÿ,Œý§¡a_iDKKËа»gaëëë[ZZô¨mÛb~ûí9ƒA$1hº››Å¸q6^^Ö®®¸¡˜8Œ JAA]rrqrrñÇEõõM ƒ$É!Ct¢¢V÷ÂÞi244ÔÒêÖ¯úr¯ûé§Ôƒcež¡§1™ ‘ˆœ>ÝiÓ¦·pK;P8 úñßúªªªôôte„ªç? ¯_Ï®ªj¦~sÆd¾<9ÚÎW>ŒÍ›'xx˜ötT&&&..ݽyгgϪ««ôœß/8þ™ƒƒ¡‹‹ñ¨QÆvvHâÛƒq!­¢‚›‘Q›‘Qûôiµµµþ–-o0pw E5j”©i·vû}¹×=úäÞ½b™ =“ÉPSc…$u|d±Ô­­õ?øÀ}Ø0Ôš‚"M›6~¬.ÿe€öL›FìÞM…¢²²†‚‚š‚‚šÂÂÚ‚‚šÜܪÂÂZª¦™Éd ¤.‘mm’4èé®õìÙ3E5¥z”‘QIhèJ$ñ¸èPAAÍàÁZ ¹o(ÐâââÒNŸíuŸ~_$"´´4Ÿ/ ‚Édš™éÛÙÛÚÛØ fDý?dº(˜ô)x =@ç©©1­­‡X[‘(B­ªj,,¬Éϯ),¬)(¨ÉÉ©**ªSVÐ/á"â (¸Ê¼®¶6Žköl7:w6ÌÈÒÒw.eAB=ÂÔTÏÔToÜ8;e `ššê·nmTv¯àÛj†„@…!¡PaHèT˜Ê'ôEEEï¿ÿ¾ÄÄœœF÷.)L7Ëckk»råJ‰kâ655{xxèéé7nß¾}€z‰Á`8::JÜ‹wöìÙ #''‡zZVV¶lÙ2[[[]]ÝqãÆýüóϯ*I’Ë—/×ÕIͦàIDATÕ%±âòu¿}ñuRé ³Wp¹ÜM›6ÙÙÙiii9::îܹ“ÇãÑ ÒŸO}Itûöm›¸¸¸;wÚØØ˜˜˜¬\¹’>» ½A111îîî,ËÞÞþÌ™3A™‹×ÔÔèèèhii …°°°#FèééMœ8ñáÃ‡Ô «W¯666¶²²Ú´iõ•=ƒÁøþûïMLL8pæÌ;;»Áƒoß¾]¢YéÕg0ëׯÿå—_¨§gϞݱc‡šÚ«IèèèŸ={–zºxñâK—.‘ÿ-6¸|ù²ŸŸ=ó•+W>ùäñöwîÜyòäIùÁŸ;wÎÙÙyÈ!‡"b„ A :”ûbŽ$ÉÈÈÈQ£Féëë¿õÖ[ׯ_¯ ¤¾ã£>¦{÷î]¿~úÒÀÜÜüÀíµßùð¤ýöÛo†††û÷ï§ÛŒŽŽvrr255 lmm•9QfkÊ‚ À “¾¾þ·ß~[[[K=2eJaa¡Ì9©÷¥*|¤;°D—Þª~j÷îÝ“ù¾Ò߃‹–.4Û†Fß2w}ííÙhâý_SSóôéÓßÿýþýûO:uúôi ö‚TàªI“zÒíHtÂδ©ê¯oöº lÜøòBõ­­­†††Ô§&½¢Ñý°½=¹ü4!kWß™ s{+Õµ#H‡3t>‹Œ·oß °‡¦6u‡ùŒBÂîð(#Ñ?{o|ÉÏ÷eZ¹råªU«***ÌÌÌ>|HMø ¤¤„JŪªªd.Õùð$VŠ ˆ¹sçr8œ+W®PœjsæÌ™YYY ¡¡¡2'Êí•$Ùëg"12d6N’ä­[·,-- 4cÆŒ°°°‚‚ú%‚ RRR9NNNÎÿüÏÿŒ;–$I‡Ó^¦¶ee¥ôVíðSãr¹ô;Òø|¾ô‰y‰³e6+¾¾=740.äìúäLïÿ”-[¶±gÏñ‰=ºj¤Ü¡'çÝ©WÛkS\Ïu¼Þ_Î>Šë~2÷äò—¥Hïê;³¤cno¥ºvép†Îgt„<ÉdVTTP‰ï“ÉNä3ݻãL¯íØ¥3ö®$ôõõõVVVîîîâï7räÈòòrêqll¬§§'›Í&IÒÉÉé§Ÿ~¢^MOO§K/UWW§¡¡qøðáúúz‘HÔØØ( Û[|Ñ¢ETB#:`™‡%WW×sçÎÑ­?^~BO}L­­­\.W(Þ½{WNûOb½‚ˆ‹‹#I’ª®¦Û§ I2**ÊÁÁAæD™J\/'. 2§‚„„„Ý»w»ººª©©Ñ]𣡡1uêTjq9˜Úþ2·j‡ŸšÄ;Rbbb:Lè;lV\Ï Œ‹®%ôâýŸ$I‘H4þ|55µåË—‹¯o®ÙQBßÞ»SSÚkS\Ïu¼ÞLèû`¯kjjÒÑÑILL$IÒßߟÚûÉ?ÈÒdîÉ;<@ËÜÕwfHÇ,s¥º|‘?Ãket„¥¥¥APé;ù÷=3Ù‰|¦ûawx”‘ÐsãK1 =I’»wïVSS«,K|Ë<˜Š*4d±XiiiÒíH/E’ä½{÷üüüttt&Ožü믿¶·xccã»ï¾K=ÖÒÒJII¡_zòä AÅÅÅA´´´PÙl6‹Å"ÿ¾”~,Þ,)kgzþüy///êñСCccc%ûî»ïÞ~ûmzÙ¸¸8‘H´`Á‚£GŠ·iff/¾lbbâØ±c›ššäŸ™™)›ÌÃ’––Vjj*ÝlJJ ñ÷„>++K|Ðõ ÑÑÑ“&Mòôô¤~NÞ^ûObã‘••%?ÝTjj*‹Å’9‘ìHï× c P»9¤çr¹.\ ‹òE"ÑöíÛ---Û †Ö^¦{¸ôV•¹ý%–’ùŽ&ô6+®ç†Æ…œ]ŸÄ ô‰þO’ä™3g|÷î]‹uõêÕÞY5²£¡×Þ»Ó3ËlS\Ïu¼^®¡ïk½Ž$ÉeË–…„„p¹\z#Ë9ÈŠÁ¥÷äò—%Û9.w¸YæJuíÒá Ï"Ä# …,‹J²iÔéQ²ùL÷Öó)ôòŽ]5ôA9rdúôéAAAôDccczµëëë¨éT¡¡……EAA5%%%eïÞ½í-ÕÒÒ"‰~üñǺºº?üpÞ¼yuuu2¿yóæ¬Y³¨‰¶¶¶â×ÐxöìAfffjjjyyyÔÄÜÜ\KKË×N¼Yi$I~÷ÝwsæÌ¡žìÞ½›¾”AMMMoaÒ¤I÷îÝ‹•øù»ï¾NŠý•yöìY>Ÿ¯­­-'x&³ãOmذaÔF dddЩRcêÏ\õ1µ´´,Y²$88899ùÛo¿•Ó~w“yù-ª7‘••E}½ØÞľAQAfûË–-£/ È`0Þ~ûmú:˜í‘Óé.½U‰Ž>µ.{ÝfûÇÐèƒã‚"s×׉ÅËÊÊæL™²sçÎuëÖÑ¿îèÑU“Lbèµ÷î”N¶Ù:^ßìuK—.½|ùòµk×¼¼¼‰NdeîÉ;\Vή^ÎPCTT”øÓ×Íg^K‡Gi½7¾äçûÒ„BáôéÓ¿øâ‹ººº¡C‡^»všèççG]œnüøñü±øŽ;wîtwwOKKKKK›8qâš5kÚ[ª¥¥…Åb]¾|¹ººúرc,«¥¥EæâË—//--¥ÚùꫯLMM¯^½Z^^~ãÆ {{{â¿9¯¯o^^^ZZš‹‹ ueBîŸ_âÍRéK†ÅÅÅÍŸ?ßÊʪ¡¡zõÅ‹NNNS§N½qãFVVÖO?ýäââ2qâD'Þø?þñggg‰7­ªª222 ˆOMM %âúõëÔl ^æy¦o¾ùÆÊÊêÖ­[555·oßvrrb0ÔÕ‹Ož<ùâÅ‹… R§©êëë Æ7šššBBB‚HNN¦f/P{­ðH’<~ü8½ÅÚ‹ßÇÇ';;;11ÑÑÑqÇŽ2'Êï™dÄ@Pà@ ¤. I’äªU«FŒqýúõÜÜÜøøø &|úé§ÒÑŠ“Ó©dnÕ?µöÞ±½3ôô×Á6Û;CãBήObÏF?_\$Í;wêÔ©T}B[[›»»ûÒ¥K{aÕÈŽ†žüwo¯ÍÞéx½v†¾oö:’$©ßÂ:::Òõ3ò÷Qô™{òФ¬]}‡ýA<æö¶IŽ ™¡“ÍJlÕ””ÔÔÔ'Ož„††Ž3FCCƒìD>Óý°;<ʽ5¾PróÍ7ßxxxPß,üüóÏæææTa‡Ãyÿý÷ ŒŒÖ®]ÛÔÔ$¾†<oÓ¦Mƒ^ºt)]8.½I’QQQÇ×ÔÔ9rdtt´ÌÅÛÚÚÞyç:*@æàà ££óÆoPˆ“$YWW·bÅ ###ssóÿûßôþ±½O+==]¼YòïZÖÖÖ{(.—äêꪭ­íââ²gÏúÚOtãqqqAüßÿýŸô›øùùYXXèééy{{Ó{¢Î/3¡ …_~ùåðáÃ}zРAtI’‰‰‰L&óòåË=½jdGC¯Ã>Ö^›½Ðñz-¡ï³½Ž$ɵk×êêêŠÿPRÎ>Š~ÐÞž\þ𔵫—ß$bno›¼î¤“ }gš•>‘$™œœìë뫯¯?räÈO>ù„ËåzxxÈgv‡G™Þ_Ò;ƒÛ_TUU¥§§O›6Múø ªåúõëÖÖÖÔÓ+W®ìÙ³‡ªÃëkrrr¤o#*sb‡¨ï%]\\º’¢ÚèE Œ x-Šêxqqq£F255íN0èuÐÏ(j|Igì*§X‰Íf/_¾<99¹¹¹9!!aûöí}ô‘²ƒÅSWvÐ#BBBš››,XP]]mooÿÁ¬[·NÙAɦ¯¯/›Ì‰ †(:@Ïé¹ñ…’è?PZ ã”%7=%7ý z†„@…!¡PaHèT˜ŒËV–••õ~ÝÇãñX,–¢šÂ@€þãTz€4.—+1EFBŸ••Õ+Á(ž¢—ÆÆÆÆÆF…4 t ºÐë:ƒñZwš€>5ô* =€ CB ÂШ°ÿ;d¦Í0µIEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMStringList_8hpp.html0000644000151400015140000000664011653571066016473 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMStringList.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
Include dependency graph for DOMStringList.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMStringList
 The DOMStringList interface provides the abstraction of an ordered collection of strings, without defining or constraining how this collection is implemented. More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/DOMPSVITypeInfo_8hpp.html0000644000151400015140000000724411653571066016631 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMPSVITypeInfo.hpp File Reference

#include <xercesc/util/XMLString.hpp>
Include dependency graph for DOMPSVITypeInfo.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMPSVITypeInfo
 The DOMPSVITypeInfo interface represent the PSVI info used by DOMElement or DOMAttr nodes, specified in the schemas associated with the document. More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/DOMDocumentType_8hpp__incl.map0000644000151400015140000000003511653571065017755 00000000000000 XQilla-2.3.0/docs/dom3-api/functions_0x61.html0000644000151400015140000002200011653571065015643 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- a -

XQilla-2.3.0/docs/dom3-api/inherit_graph_13.png0000644000151400015140000000366111653571066016040 00000000000000‰PNG  IHDR£(yÝÌbKGDÿÿÿ ½§“fIDATxœíœ{H“]ÇÏRsjy©å–—eéÜd2à /!¸tDd4‰&]¨”À2H‡Y°ì¿n–‚4Ñ̘݈u™¡µ’.:ˆÚ,L‹5Ì=Ómmé¶óþqxÖnùúúÚ[Ïóùëœß9ßs~Ïù>ç9{“!$`Þ¯N€dŽ & ¤ÓDtš(»Wº»»ëëëU*$³‹R©t¯þà´Á`¸ÿ~iiéܦD2ËŒŒŒ¨Õj`°w¿ööö9ɇ俢½½}Ë–-Aòœ& ¤ÓDtš(NÒi¢ðg:Mq#))I$ŽŽºw°Z­‰$##cáÂ…kÖ¬9~ü¸ÃáÀµ,Ëã‹@@¡PQTpÇb±ˆÅâåË—‡……±X¬ÚÚZ»ÝŽèÝîù3Ðh´™ë¡mmm‘߀N§Ã«.—+??¿¦¦UÅbq^^žÃáÀ;X,–¤¤¤¦¦&¤-..>|ø0Þzùòe@€é18"::Z­VãÕîîn&“é3™£Óé¦éŽOÿñžîêêŠÇ0 ÐÚÚšššjµZSSS‰„N§ÇÆÆJ$’©©©ÁÁA …òàÁ&“©R©jkk™Læ’%KD"¾½¼U€›7oòx<*•ºbÅŠ+W®‡O9šÂ»ì…BÙ³gÏíÛ·Qµ¹¹¹¦¦&((ï!‘Hš››Qµ´´´½½þýïèè …—%22òìÙ³ccc¨šŸŸÿñãGŸ™´´´¤¥¥-Z´èĉxÚ …‚ÍfÇÆÆVVV~ÿþÝçuegg FàLüòÓ{Á‘HT^^þåË:þìÙ3”Éd›7oÈÌÌþc§O:•‘‘žÉ7nÜXºt©Ñh„NLLlß¾=&&fñâÅ»ví²Z­îNÛív±XµuëV ÃPÜ[…ÒHNNž?>‡ÃQ(ä>Ï3øã=ËÊÊÜ¡Åb©ªªJOOçr¹õõõß¾}ó0C¥RΜ9ã÷¹[‡T*åñxaaaIIIÄÈÓqúâŋ˖-£ÑhHX__œœ¬P(ÐSSS¹¹¹ ,l?ÿÌ÷é߈韾ÓgÖÎi’ßÒé_LddäîÝ»ç`"Òé_LlllccãLD:MH§‰é4Q & ¤ÓDtš(øø ŸÏŸû XQilla-2.3.0/docs/dom3-api/functions_0x68.html0000644000151400015140000001223611653571065015664 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- h -

XQilla-2.3.0/docs/dom3-api/inherit_graph_33.map0000644000151400015140000000044211653571066016025 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMLSResourceResolver_8hpp.html0000644000151400015140000000656511653571066020147 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMLSResourceResolver.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
Include dependency graph for DOMLSResourceResolver.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMLSResourceResolver
 DOMLSResourceResolver provides a way for applications to redirect references to external entities. More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/inherit_graph_22.map0000644000151400015140000000031411653571066016021 00000000000000 XQilla-2.3.0/docs/dom3-api/inherit_graph_12.md50000644000151400015140000000004011653571065015723 000000000000003c88065c5a9a99314d921a06921644f5XQilla-2.3.0/docs/dom3-api/DOMNodeIterator_8hpp__incl.map0000644000151400015140000000003511653571065017734 00000000000000 XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMException-members.html0000644000151400015140000002243011653571065022055 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMException Member List

XQilla-2.3.0/docs/dom3-api/XQillaPlatformUtils_8hpp__incl.md50000644000151400015140000000004011653571065020621 00000000000000e137a46613874459e3e4cd4b7bdc9b08XQilla-2.3.0/docs/dom3-api/inherit_graph_25.md50000644000151400015140000000004011653571065015727 00000000000000c65f9dd7ea71ce5085daf2c9c3a32f18XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMNode__inherit__graph.map0000644000151400015140000000605311653571066022372 00000000000000 XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMEntity__inherit__graph.map0000644000151400015140000000033111653571066022752 00000000000000 XQilla-2.3.0/docs/dom3-api/inherit_graph_31.png0000644000151400015140000000626211653571066016040 00000000000000‰PNG  IHDR…(ž´q›bKGDÿÿÿ ½§“ gIDATxœíL[ÕÀOi) ›BY-”_)RaÓ™€%˜áçtKÇD§Ž-SqÀ"EÇ ²g¢Nât#d “Í#º•=„ ž¥R£B;dŽ +ÐBi-¿Úûþ8zß]{{­¼ îºó Üûíùžó=ßï7ß{ν·…a@ à±Ú Ä z„@ èªG‚. z„@ è‹xÒÕÕUYY¹Z¦ îM:;;WÛ„?@ù¿òˆÅâ·Þz ?½¥étº¯¾úJ"‘¬¸Uˆ{‘7n\¹reµ­ø(ÿW˜ÞÞ^.—K”°577¯”=ˆ{šæææmÛ¶­¶ö ü_1¶nÝj'A÷]@õ@ÐT]@õ@ÐT]pÏzÄ –——711Al`6›e2Y\\Ü}÷Ý÷è£>|xii ׈ˆ°ûšqff&ƒÁÐjµ,«¥¥ÿ¨½½Íf«Õj»q}||²²²~þùg×mÖjµÁù»Þ¸]hµÚU&P'Àl6ïß¿?..níÚµ=öXUUL-Ü{Žθ£ïžõÐÓÓ3>>>66vòäI£Ñ˜0== ?šÝ¸qcMMÍ·ß~[ZZÚÔÔ”žžnµZaƒÑÑÑï¾ûïÊ`0\¾|ÇÇÇ—••ÀÞffföîÝ+—Ë~øaâ¸7oÞìêê²Ùl;vìpfáÈÈÇsq"D–åÛ€¯¯ï›o¾¹òãZ­¶îîáË—‡V~hG¨¦ÖÕ«W«««•JeIIIccãæÍ›­Vëò¼wÏE#pæÌ;É] @£Ñà§6›M,———ÃÓâââ'žxbii o`2™ÂÂÂŽ?u322ÊÊÊðO233ñ>çççcbbòóó1 Û³gφ HÇÌÌÌ©ÑhˆÞ¶Ó¥º ™oJåõòò³"Ñ`_]]ǪÛ¡Hg©U__Kð¸Û%€#î} Ã$‰D"!JþöúèܹsAAAƒpúôéõë×›ÍfÀââ¢L&ó÷÷çóù2™lqq.ð¾þúëÐÐP…B!—ËCCCx༼<|©â¨8þ|ll,‡Ãy衇N:XZZ"U'®!)Ö“ cÏž=.\€§åååL&o°fÍ™LÖØØO%Iss3öç–­µµ5''oÌf³Nœ8QUUuòäɆ†OOOÒqáp¹þùçŸÇÇÇ{{{ ‚êêjÀã?ÀÛùå—B¡ËåVUU-# Ðííí‘‘‘|>¿  `~~ž…îînN*$zxzzú…^àñxÁÁÁÅÅÅsssÐÏMMMÑÑÑ~~~GŽ¡ž®¶¶#!¡bË–8ño½ÞÌbÑh!O‘¤©µÿþ¦¦&êýŽczPàÎÑ''¯yyyÏ?ÿü¯¿þêïïõêU(¬©©yöÙgùå—ÁÁÁ„„„’’Xþ333/^¼XQQ!‰Õjõ¦M›Š‹‹i™L&//¯úúúñññO>ù„Åb™L¦ÚÚZRõééi¸¨±;–þþ~___ Ã`'&&ì&õÍ7ßøûûCÝŸ~ú) ```vëíí=99i×gII  ²²’Ø @¥RÍÎÎF­VûÌ3ÏlܸÃ0£ÑÈf³_|ñű±1Xõ~ûí7ÇõQVV–ÑhüôÓO“““ĉ8‹ìpóæÍÃÃÃW®\ …Ä(˜L&N*$œ›››ššzíÚµÁÁÁ˜˜˜ŠŠ hmNNŽÁ`8~ü8`jjŠ:‘ìòM«ÕUVžOH ûBC‹‚}ø_XX1}ÖGÇp–Z½½½~~~ŽË"ü€4=0w>F¶>ZN=2 ÁÁÁ±±±ÐHTTÔøø8<îìì|ä‘Gà1 ‹ŒŒlkkƒŸþðÃø±£–^¯÷ôô¬««3 6›mvvÖjµ:SwÆ2êQoo/ÇÃu_yå•ÒÒR ÃÓÓÓíú´ÙlÙÙÙL&sÇŽvãâxzz&''ã[¼üÑd2Y­Ö®®.Ø•c=R(†ÁÛXP‘ââ¢Ã1 ;sæŒP(´ºèpR!nð“Éüþûïa?mmmB¡Z{éÒ%ØÀ1ŽÀ|»~}²®®#)é°@°/4ô b¢m="M˜ZðBB¤§§‡ÇãQÔ#ÒôÀÜ=úY="ùþÚ_âë뛟ŸÿöÛo¿™=::*ðSx¸~ýzDD”DGGGGG;Óâr¹—.]z÷ÝwåryBBBiiiff¦3u×Ñh4áááÐø€€•J•––Fl R©6lØ€ŸJ$’—_~ùСCv›5HSS“B¡¸xñâ“O>™“““MH(Úµg³ÙÃÃûví2™LñññÎŒ xxܲ7!í8‰wTTT¼þŒpÙá¤B\K§ÓY­VèO€P(Ä‚Sp¶%2?¿400åç÷ÏÄÄÃðºX\´‘6Æ0ÐÚúŸ¾>WV.NÇ`x¹Ò’4ðÔJMM%6V©T¸ÿI¡Hw¾3–³-¿qãÆû￟––VTT„ á/Þø÷¶¡q£££P¢R©:äLËb±Øl¶––½^ÿÒK/=õÔSz½Þ™º‹`öá‡nÙ²žæææ¾óÎ;øÓ4€Ùl®©©ÉÈÈÀ%III³³³ÝÝÝO?ý4±·›7oÔÖÖŠÅb¹\¾{÷î©©)j,ËÖ­[e2™R©úè#‡c±Xœ©SÜ?Ÿ÷+ŠìììàààééiøéÌÌLdddrrrGGÇððp[[›H$JLLœ››Ãû²½{÷FGG§¤¤à}j4›Í–•••œœlµZ1 [XXˆ•J¥Ä6ŽN3 £££¾œP*•Ð?ø¢. ¬ØŸø:‹ì0%%E£ÑôõõEDD”——Ûí ]t8©ØÕöíÛSSSGFFÔjµH$‚Ï.I§@Ì·™KssßöíõÁÁoÒy¿F0µRRR¾øâ‹¡¡¡²²2ŸÏŸŸŸ§Ø¯‘¦æîÑÇnËý£÷Þ{/..>à<{ö¬@ Ðëõ†Æ;wr¹ÜuëÖåçç›ÍfâæææŠ‹‹}||¤R©Á`€rG-hFxx8›ÍŽŠŠjoo§P'A<&ÜÜÜ\NGœ…Éd***Љ‰ñöö‰D•••¿ÿþ»+ àƒ> ʼ¼¼†††ð®úúú<< XQilla DOM3 API Documentation SourceForge.net Logo

DOMLSSerializer.hpp File Reference

#include <xercesc/dom/DOMNode.hpp>
#include <xercesc/dom/DOMLSSerializerFilter.hpp>
#include <xercesc/dom/DOMErrorHandler.hpp>
#include <xercesc/dom/DOMConfiguration.hpp>
Include dependency graph for DOMLSSerializer.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMLSSerializer

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/DOMImplementationRegistry_8hpp_source.html0000644000151400015140000001520511653571065022463 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMImplementationRegistry.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  * 
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  * 
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMImplementationRegistry.hpp 527149 2007-04-10 14:56:39Z amassari $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMIMPLEMENTATIONREGISTRY_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMIMPLEMENTATIONREGISTRY_HPP
00024 
00039 #include <xercesc/util/XercesDefs.hpp>
00040 
00041 XERCES_CPP_NAMESPACE_BEGIN
00042 
00043 
00044 class DOMImplementation;
00045 class DOMImplementationSource;
00046 class DOMImplementationList;
00047 
00048 class CDOM_EXPORT DOMImplementationRegistry
00049 {
00050 public:
00051     // -----------------------------------------------------------------------
00052     //  Static DOMImplementationRegistry interface
00053     // -----------------------------------------------------------------------
00069     static DOMImplementation* getDOMImplementation(const XMLCh* features);
00070 
00083     static DOMImplementationList* getDOMImplementationList(const XMLCh* features);
00084 
00092     static void addSource(DOMImplementationSource* source);
00094 
00095 private:
00096     DOMImplementationRegistry();
00097 };
00098 
00099 XERCES_CPP_NAMESPACE_END
00100 
00101 #endif
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMCharacterData.html0000644000151400015140000006307411653571066021167 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMCharacterData Class Reference

The DOMCharacterData interface extends DOMNode with a set of attributes and methods for accessing character data in the DOM. More...

#include <DOMCharacterData.hpp>

Inheritance diagram for xercesc::DOMCharacterData:

List of all members.

Public Member Functions

Destructor
virtual ~DOMCharacterData ()
 Destructor.
Functions introduced in DOM Level 1
virtual const XMLCh * getData () const =0
 Returns the character data of the node that implements this interface.
virtual XMLSize_t getLength () const =0
 Returns the number of characters that are available through data and the substringData method below.
virtual const XMLCh * substringData (XMLSize_t offset, XMLSize_t count) const =0
 Extracts a range of data from the node.
virtual void appendData (const XMLCh *arg)=0
 Append the string to the end of the character data of the node.
virtual void insertData (XMLSize_t offset, const XMLCh *arg)=0
 Insert a string at the specified character offset.
virtual void deleteData (XMLSize_t offset, XMLSize_t count)=0
 Remove a range of characters from the node.
virtual void replaceData (XMLSize_t offset, XMLSize_t count, const XMLCh *arg)=0
 Replace the characters starting at the specified character offset with the specified string.
virtual void setData (const XMLCh *data)=0
 Sets the character data of the node that implements this interface.

Protected Member Functions

Hidden constructors
 DOMCharacterData ()
 DOMCharacterData (const DOMCharacterData &other)

Detailed Description

The DOMCharacterData interface extends DOMNode with a set of attributes and methods for accessing character data in the DOM.

For clarity this set is defined here rather than on each object that uses these attributes and methods. No DOM objects correspond directly to DOMCharacterData, though DOMText and others do inherit the interface from it. All offsets in this interface start from 0.

As explained in the DOM spec, text strings in the DOM are represented in UTF-16, i.e. as a sequence of 16-bit units. In the following, the term 16-bit units is used whenever necessary to indicate that indexing on DOMCharacterData is done in 16-bit units.

See also the Document Object Model (DOM) Level 2 Core Specification.

Since:
DOM Level 1

Constructor & Destructor Documentation

xercesc::DOMCharacterData::DOMCharacterData ( ) [inline, protected]
xercesc::DOMCharacterData::DOMCharacterData ( const DOMCharacterData other) [inline, protected]
virtual xercesc::DOMCharacterData::~DOMCharacterData ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual void xercesc::DOMCharacterData::appendData ( const XMLCh *  arg) [pure virtual]

Append the string to the end of the character data of the node.

Upon success, data provides access to the concatenation of data and the XMLCh* String specified.

Parameters:
argThe XMLCh* String to append.
Exceptions:
DOMExceptionNO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
Since:
DOM Level 1
virtual void xercesc::DOMCharacterData::deleteData ( XMLSize_t  offset,
XMLSize_t  count 
) [pure virtual]

Remove a range of characters from the node.

Upon success, data and length reflect the change.

Parameters:
offsetThe offset from which to remove characters.
countThe number of characters to delete. If the sum of offset and count exceeds length then all characters from offset to the end of the data are deleted.
Exceptions:
DOMExceptionINDEX_SIZE_ERR: Raised if the specified offset is negative or greater than the number of characters in data, or if the specified count is negative.
NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
Since:
DOM Level 1
virtual const XMLCh* xercesc::DOMCharacterData::getData ( ) const [pure virtual]

Returns the character data of the node that implements this interface.

The DOM implementation may not put arbitrary limits on the amount of data that may be stored in a DOMCharacterData node. However, implementation limits may mean that the entirety of a node's data may not fit into a single XMLCh* String. In such cases, the user may call substringData to retrieve the data in appropriately sized pieces.

Exceptions:
DOMExceptionNO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
Since:
DOM Level 1
virtual XMLSize_t xercesc::DOMCharacterData::getLength ( ) const [pure virtual]

Returns the number of characters that are available through data and the substringData method below.

This may have the value zero, i.e., CharacterData nodes may be empty.

Since:
DOM Level 1
virtual void xercesc::DOMCharacterData::insertData ( XMLSize_t  offset,
const XMLCh *  arg 
) [pure virtual]

Insert a string at the specified character offset.

Parameters:
offsetThe character offset at which to insert.
argThe XMLCh* String to insert.
Exceptions:
DOMExceptionINDEX_SIZE_ERR: Raised if the specified offset is negative or greater than the number of characters in data.
NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
Since:
DOM Level 1
virtual void xercesc::DOMCharacterData::replaceData ( XMLSize_t  offset,
XMLSize_t  count,
const XMLCh *  arg 
) [pure virtual]

Replace the characters starting at the specified character offset with the specified string.

Parameters:
offsetThe offset from which to start replacing.
countThe number of characters to replace. If the sum of offset and count exceeds length , then all characters to the end of the data are replaced (i.e., the effect is the same as a remove method call with the same range, followed by an append method invocation).
argThe XMLCh* String with which the range must be replaced.
Exceptions:
DOMExceptionINDEX_SIZE_ERR: Raised if the specified offset is negative or greater than the number of characters in data, or if the specified count is negative.
NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
Since:
DOM Level 1
virtual void xercesc::DOMCharacterData::setData ( const XMLCh *  data) [pure virtual]

Sets the character data of the node that implements this interface.

Parameters:
dataThe XMLCh* String to set.
Since:
DOM Level 1
virtual const XMLCh* xercesc::DOMCharacterData::substringData ( XMLSize_t  offset,
XMLSize_t  count 
) const [pure virtual]

Extracts a range of data from the node.

Parameters:
offsetStart offset of substring to extract.
countThe number of characters to extract.
Returns:
The specified substring. If the sum of offset and count exceeds the length, then all characters to the end of the data are returned.
Exceptions:
DOMExceptionINDEX_SIZE_ERR: Raised if the specified offset is negative or greater than the number of characters in data, or if the specified count is negative.
Since:
DOM Level 1

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/DOMXPathExpression_8hpp_source.html0000644000151400015140000002353611653571065021057 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMXPathExpression.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMXPathExpression.hpp 698579 2008-09-24 14:13:08Z borisk $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMXPATHEXPRESSION_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMXPATHEXPRESSION_HPP
00024 
00025 #include <xercesc/util/XercesDefs.hpp>
00026 #include <xercesc/dom/DOMXPathResult.hpp>
00027 
00028 XERCES_CPP_NAMESPACE_BEGIN
00029 
00030 class DOMNode;
00031 
00036 class CDOM_EXPORT DOMXPathExpression
00037 {
00038 
00039 protected:
00040     // -----------------------------------------------------------------------
00041     //  Hidden constructors
00042     // -----------------------------------------------------------------------
00045     DOMXPathExpression() {};
00047 
00048 private:
00049     // -----------------------------------------------------------------------
00050     // Unimplemented constructors and operators
00051     // -----------------------------------------------------------------------
00054     DOMXPathExpression(const DOMXPathExpression &);
00055     DOMXPathExpression& operator = (const  DOMXPathExpression&);
00057 
00058 public:
00059     // -----------------------------------------------------------------------
00060     //  All constructors are hidden, just the destructor is available
00061     // -----------------------------------------------------------------------
00068     virtual ~DOMXPathExpression() {};
00070 
00071     // -----------------------------------------------------------------------
00072     // Virtual DOMXPathExpression interface
00073     // -----------------------------------------------------------------------
00076 
00106     virtual DOMXPathResult* evaluate(const DOMNode *contextNode,
00107                                      DOMXPathResult::ResultType type,
00108                                      DOMXPathResult* result) const = 0;
00110 
00111     // -----------------------------------------------------------------------
00112     //  Non-standard Extension
00113     // -----------------------------------------------------------------------
00122     virtual void release() = 0;
00124 
00125 };
00126 
00127 XERCES_CPP_NAMESPACE_END
00128 
00129 #endif
XQilla-2.3.0/docs/dom3-api/XPath2Result_8hpp_source.html0000644000151400015140000002266111653571065017716 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

XPath2Result.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef __XPATH2RESULT_HPP
00021 #define __XPATH2RESULT_HPP
00022 
00023 #include <xqilla/framework/XQillaExport.hpp>
00024 
00025 #include <xercesc/dom/DOMNode.hpp>
00026 #include <xercesc/dom/DOMTypeInfo.hpp>
00027 #include <xercesc/dom/DOMException.hpp>
00028 #include <xercesc/dom/DOMXPathException.hpp>
00029 
00037 class XQILLA_API XPath2Result
00038 {
00039 public:
00045   virtual ~XPath2Result() {};
00047 
00070   enum ResultType {
00071     FIRST_RESULT    = 100,
00072     ITERATOR_RESULT = 101,
00073     SNAPSHOT_RESULT = 102
00074   };
00076 
00079 
00085   virtual ResultType getResultType() const = 0;
00086 
00091   virtual bool isNode() const = 0;
00092 
00097   virtual const XERCES_CPP_NAMESPACE_QUALIFIER DOMTypeInfo *getTypeInfo() const = 0;
00098 
00110   virtual double getNumberValue() const = 0;
00111 
00120   virtual int getIntegerValue() const = 0;
00121 
00130   virtual const XMLCh* getStringValue() const = 0;
00131 
00140   virtual bool getBooleanValue() const = 0;
00141 
00150   virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* getNodeValue() const = 0;
00151 
00156   virtual bool getInvalidIteratorState() const = 0;
00157 
00165   virtual size_t getSnapshotLength() const = 0;
00166 
00177   virtual bool iterateNext() = 0;
00178 
00190   virtual bool snapshotItem(size_t) = 0;
00192 
00202   virtual void release() = 0;
00204 
00205 protected:
00208   XPath2Result() {};
00210 private:
00213   XPath2Result(const XPath2Result &);
00214   XPath2Result &operator=(const XPath2Result &);
00216 };
00217 
00218 #endif
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMEntityReference__inherit__graph.png0000644000151400015140000001076111653571066024610 00000000000000‰PNG  IHDRÓu[ C}bKGDÿÿÿ ½§“¦IDATxœíyTSGûÇ'$@dTÂQSD´´´¼wï¬ÖÀÀàåË—d°ðèÑ£Q£Fq¹\‚ `Oa=¡¡¡³gÏnll¬¯¯wrrŠMHH077ÏÎÎnkkËÏÏ·¶¶†Îª}räéééCºýS¼uʉDl6ÛÅÅ%66–4:88ðù|X.,,œ6mœúúz‚ ¦L™’ Ï>xð€,«F …B]]ÝÇ‹D"…BÑÕÕ%—ËÕ…«ã ”wëÖ-3332vãÆÛ·o'"--ÍßߟZ'Y8zôèèÑ£›››IåõõõÑéôû÷ïÃ:³³³íìììííÏ;G6tþüyè¬Ú÷Á;E`å±wï^:ÞÞÞNZ˜L&õ:mbb磯¯žåñxªõ¨FQVVlhhèééyýúõAÂÕ¡ª¼Ÿ~úÉÍÍ –--- •BNž<9gÎ2¶¤¤ÄÎÎN¡P¥¤¤)O.—{{{ÐÒÒrüøq??¿-[¶F333r²E"ÑíÛ·¡]WW`mmýôéSh©­­ýá‡ÔEI$…B‘™™) ÃÃÃ?ùä¡P¨.|˜qòäÉyóæÁÃÐÐн{÷’w²±X|èСÀÀ@ÒòñÇwuu••• X­ŽŽ—Ë-//OMM… :ÞÔÔmll&NœH½Sþã?±·­i|8×<¹\îçç·oß>¡Phii™——í_}õUpp0|1sæÌM›6Qw?111...<Çãyxx¬]»V]”D"a2™YYY/^¼HMMe2™‰D]ø û<ò©JIIÉÂ… ÙlvGG<ûúõë)S¦x{{¿  €Ãá@gÕ¾9Aàß¼Ú;vÌÕÕ®¡999VVVB¡ ˆÎÎÎÏ>ûl̘1ãÆ‹ˆˆ‹ÅTåI¥Ò¨¨(kkk“+VˆD"hW""==ý½÷ÞÓÓÓspp¸zõê áÔ&¨eêßíøñãCCC©‚ º»»·lÙâääd``àèè¸ÿþžž2 «¤¤””¤dWRžB¡ð÷÷'› …«W¯7nœ••ÕæÍ›%‰L&‹·³³344œ5k¼¶©ëûàhYy4B[ÿêqéÒ¥ü}Þ[ FKOO‡Ó¤Þº}æ_V Xy4`åaЀ•‡AV Xy4`åaЀ•÷æÜ¹Ó„:…ŒVc ´´¾ zèëÓkmÏá4¢Nd¤¢=å¹»»k­--ÐÒb,‘Œ5ŠÅdÊPçòÏ2~üx­5§½÷¶ïîîû››_}û휨¨À¡½1*à}Þ›ðàA[só+@ffê\F*Xyo•+wuu逖amm3êtF$Xy£PééUýýrƒAÏÍ­Aш+OcîÜi »aY&“geÝ•ËhS‰`åiLNN ƒñ׸ …â[·ð³ÁÊÓŒþ~ynnLö×EŽÁ çäT#Li„‚•§¿ýöŸîî^ªE&“çåÕõõ½#Oõ´VžfdgWÓéÊ?sÑÓ#½yó!’|F.Xy ÷Ô«ÞOèèè\¹‚\ÍÀÊÓ€¢¢ðaŠr¹âÆûbq¯ê)Œ:°ò4 '§Zݻƾ>YaáÚMgdƒ•7\:;%7oþg×Ü99ø‘²à/†Ko¯L xM=ص+ûÖ­¤…N×a³Ç HmD¢ÕïóF4úúŒ Æ‘‡,–1€jÁh^m1hÀÊà+ƒ¬< °ò0hÀÊà+ƒ¬< °ò0hÀÊà+ƒ¬< °ò0hÀÊà+ƒ¬< °ò0hÀÊà+ƒ¬< °ò0hÀÊà+ƒ¬< °ò0hÀÊà+ƒ¬< °ò0hÀÊà+ƒ¬< þöË©©©¨òqÜ¿ß ðˆi‡Ãñóóû똠€.«‘‡ŽŽ¾®®9ê,F!!!T±)ÿZmLLŒŠÄ0ï2{öìQ²à} Xy4`åaЀ•‡AV Xy4¼ƒÿ¯¯/Y¶°°puu]¿~½©©)i”J¥çΫªªâóù¶¶¶žžžË—/§Óé0ÖÆÆæâÅ‹4Ú_ÿ‰íÖ­[+++ÓÒÒlll¨•“ܼysȬž={¶jÕªáx*uAOOoòäÉß|ó:‚ 8PVVVPP0œúßÞAåŽ?nee¥P(ZZZ®\¹qöìY###@OOÏúõëÇŒimmýäÉ“3gÎܽ{÷È‘#:::@ÐØØHNsWWW]]jåÃIƒÏç¯[·îêÕ«##£+V(‡ìL8--mÏž=.\ þ=PyõêUQQQzzúp²zKx7W[SSÓ±cÇš™™MŸ>}ß¾}VVV™™™ðÔ… LMM>üðC6›íé陜œ,È«…››[II YUEEÅ´iÓT+§¢. …BÑÙÙ Ë&&&JÆ!»0vìX6›½nݺÖÖÖׯ_«sîí혛¤w*š)¯¢¢"88¸«« P\\¼zõj©T ÉdÉÉÉ‹-Z´hQrr²L&{ö왯¯oMMͲeËjkk¹\î²eË‚‚‚<ØÝÝ kS‚M„‡‡¬\¹òƹ\>`8lBµ¬F[°`ÁíÛ·áaaaaXX¼¼A˜LæòåË á¡OII ù.ñ·ß~óööÎàøúú­Y³fÁ‚—/_lذ°xñbj†Tã±cÇâââ`¸D" |üø±jÍt:Á`ª7jCNÇpäUóW7ò†kŠfÊûè£ÜÜÜ’’’D"QRRÒ÷ßÏd2YYY|>?%%åÈ‘#555\.úgddlÛ¶­®®®´´ôàÁƒ‰‰‰---iiið¬j”T* º|ùòêÕ«ãââ¤RiVVրᦦ¦QQQªeUØlv[[ »»[(ªn˜ìììš››aÙÉÉI"‘466ÄbqMM‡‡ÕY*•Jþyª¬¬,)))222%%¥««ëĉ€ììlj8Õèíí]^^.—ËåååVVVdnd+¯^½:s挿¿¿®®®ºqSjhðé˜ÜêI¥ÒK—.Q‡ÒÙÙ¹§§‡Çãݽ{—ª†!Qwï9>>>û÷ïŸ8q¢³³3‹ÅRuÐ×× üùçŸ ‚€õ«m’Á§c¥ü‡?qšöhºÚ·xñâ]»vUWWWTT@»§§ç©S§ÚÛÛ›šš¾ûî»ÜÜ\jT@@ÀéÓ§Ÿ¢Ù5/77·££cÅŠ cóæÍ ÎÎÎÆÆÆáááÇ_»v-FóòòŠŒŒ|ùò%*•J£££¥R©»»{dd$´«Fééémß¾=%%åùóçÖÖÖ111zzzêÂ;::> ·wÔ2`Ó¦M°`nnîââ’ššJ®©©©\.799¹­­ÍÊÊjöìÙ!!!äþâëë{õêÕE‹©Y9‰ºçÖ––ÎÎÎK–,¹~ýº:#Tù/¿üâåå¥nØY,–Agg§Á€ãFí7s°ÝáOœºÌFý™F£á/CµÏéÓ§ÁÎ;Q'ò?dÏž=,+##ƒ´¼›O’G }}}|>¿  `þüù¨sÑ6Xy(ùóÏ?###çΫôšäßÀ»ùÞv¤àêêš——‡: 4àk Xy4`åaЀ•‡AV Ê÷¶ÕÕÕägXÌ?E[[›ò[iü»*í ô»*4,8 ð>ƒ¬< °ò0hÀÊàáÿW 7ÏÜ:%IEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMDocumentFragment_8hpp__incl.png0000644000151400015140000001676411653571065020626 00000000000000‰PNG  IHDR˜uüô`êbKGDÿÿÿ ½§“©IDATxœíÝ{\LéÿðgšJ7]”îD"må_öG)´ˆ´¤ÔÚ–.ˆnb_n¯e7~I.©èº KI±”êKÂF%¡’[5¥¶{Í4·óûãøÍŽ™)-5gfú¼ÿ:=sžç|Ι§Ï<Ï™sÎ0 C Τˆ¾$2€ØƒD{ÈbOšèÄÛíÛ·8@t@ìíÚµkîܹDG!Æ ‘}•†††ÜÜÜyóæcyyy6l : ñ‰lìÝ»—è€ËËË#:±çÈb@ìA"ˆ=Hd±‰ öà[Ka°¶¶æ,kiiMž<ÙÛÛ[UU•SH£Ñ‹ŠŠ(ÊèÑ£---׬YC&“ñºzzzIII$‰³~pppaaarr²žžÞgAÜ1sܺuKø‘ô“µµ5~´‰‰LH"""tttØlöû÷ï/]º´qãÆøøx%%%„Pww····ššš§§§®®îëׯãâ⊋‹Ã¤¤¤Bõõõ¯^½222›êèèxòäI? ÅËË+##ƒS‚ÇL`Hüøƒâ¦–B¢ªª:bÄ ©S§îß¿_GG'%%éÌ™3ªªªGŽùÏþ£¯¯oii]__Ÿ™™‰¯`aaÁ}©Ñ_ý5eÊ”~6."Ølv{{;w 37¢bãàˆ Hd ‘HË–-»ÿ>þgNNŽ››>øÂÉÉÉ­Y³&''ÿsÞ¼yyyyœ'Çݾ}»ÛYxïìì ¾Ý’’’Õ«W—••lذaÑ¢EŽŽŽçÎCavåÊ•~øÁÞÞÞßß¿  S8A»¸¸,]ºôìÙ³œhïÝ»·nݺ+Vœ8q‚Á`,ìc—Á@DF }}ýºº:„Pgggss3gÚÈaddôîÝ;|ÙÌÌŒJ¥¾zõ !ÔÕÕURR2{öìþ4Ž:vìXcccttô¡C‡ŠŠŠÎŸ?ŸšššŸŸþþýûäää¾C}øðaTTÔÆcbb âââ¼½½“’’ðÁKjj*…B9uêTXXXIIIBB^ëîÝ»'Ožôôô}š3ÁQPP8}útBBBttt]]ŽŽÎ‚ œœœddd¸[°¶¶ÎÈÈX±bÅ¿j|ëÖ­^^^222óçÏwqq!‘H4-((ˆF£Íš5ËÓÓ!¤¢¢âáᙜœ¼iÓ¦;wîôs¿<<<"""6lØ@"‘¬¬¬ðÖøikk›››;::^¿~½?Í*))y{{8p@^^~íÚµ ,ؾ}{ZZ‹Å okk355õòò ¼ >>g^¾¬ Yåè8]È[b¬««gçÎÔ´´‡~~¶[·ÚJKs:•Éd;–ž½r¥EHÈ*EÅa„„D$2 À³gµ^^g::¨'N¸ZZNø|…A–ŸÿÒ×÷ìðáòÑÑn¦¦ðã’€|k >aXll¾½ýQ}}µœœ QÈb!++㜜 }}5{û£±±ùðé xÀˆ ü£µµÛÏïüÍ›Ïwï^æáaùÅ«$†ÅÅÝÙ¿ÿÊüù&ááΪª DGD$2ðуÕ›6%IK“##×M›Æû‹$¢£¤ä­O“É:yrÝÌ™†D‡DL-b±ØaaY«V´°“(ÊY !4mšAvv …Å'§“aaY,›èˆñ`D6Ô54´mÞœüðáÛC‡œœœfο’Rœbaa᪥¥Bt8€HȆ´ÜÜòmÛÎij*GE¹kοöòe½—×ïMMááÎ66ß L-‡(ƒµ{÷ew÷Ø%K&]¿î'ŽY !dl¬ýçŸÛ¬­'º»ÇîÞ}™Á` ŒÈ†¢7oš¼½ÏTU}øí7GñšNö&%¥èçŸ/iFE¹£At8@Ø`D6䤥=´µ=Ìb±oÜŒ,†rršqãF‹Å¶³ »|¹„èp€°Áˆléî¦ïØ‘réÒôܽ{©¬¬¤=2€Ngîß5>þŽ££ÅÁƒN ²DG„ÙPQ^^çåõûßw…‡¯±µ5#:œA”ýÔÏïuuÅèh÷o¾Ñ%: 0µbcóííÃ54†çæJvCÙÚšåæjh ··Í': 0"“p­­Ýþþää<Û¶má¶m¶dòPùèb±ØGf=šckkzäȸŸI’A"“dEE¯}|’X,öÉ“ë¾ývÑá௿ª6oN&“¥"#×͘1–èpÀ`*ŸÏC ›……e9:F|ónnnÐÐÌb¡ÿù£ÜÜ o¾ÑutŒ Ëb³ác[2ÁˆL54´mÙr¶°ðõ®]KEð!ÂÇylÆÌ™†'N¸ji)`È$Í͛Ϸn=§¬,ífn®Ot8"¤´ô½·wR{;õرµóç›HÈ$ƒÁúå—+ññwð§B+)ÁS¡yuv~|~÷?ZîÙ³LF†LtD``@"“oÞ4ùø$UV6HÌ]Gƒ¿Ÿiüx­ÈÈup?“d€“ý’ =½ÄÎ.ŒÁ`eeùCû,'§YYþ ËÎ.,#ãÑá€#2ñ&ñw žžæïg:tÈI^îgcÈÄØóçu^^g;ÂÃíì$üzýArãÆS?¿ó#GŽv71Ñ!:ð…`j)®bcó—, 1B177²Ø³³3ËÍ RSS\²äÜÏ$¾`D&~ÚÚº.ܸñtÛ¶…þt®$ÁøèÑ;;³°°Õp?“ØD&fŠ‹_ûø$1ìˆ×Ù³ˆG¢Ü»Wµys²ŒŒTdäºéÓá~&qæb¿ëhåʈ‰urs!‹ ¸Ù³rsµW®„û™Ä ŒÈÄCCCû–-g‘‰®·oÿöñ9óòe}HÈ*¸^Ÿ())E;w¦kGFº¨ Fd"êÊ•Gvv‡{z˜YY’ó[GâÈÉiFVVÆ´³;|å ÜÏ$¢`D&r¨TzppJjj±‡‡Õ®]K‡ ƒ»Žˆ‡ßÏ—¿jÕt¸ŸIA"#Fyyº¢"ï“vž?§x{Ÿùð¡=,lÍâÅæ„Äz“™Yæïÿ‡––rt´Ûĉ¼÷3uuõ¼{÷·‰ ün`jI*•îᑜÂSŽÿÖ‘ŠŠ|NN d1´x±ynn ŠŠü’%~Ÿ)88ÅÃ#žFcÛGÞ·oÑ1 9{÷¦ß¹SQ^N10PÇx±½ºeËÙ˜˜Û¾¾6GŽ8«ªÂ-2"JYYÞÉi›Í>xðÚ‹”¹s‡ “A¥¤…‡ç´·ÓÚÚ¨ Àãg… ¦––›[îî‹a‰D’––ÊÊòïî¦ûø$ÑéÌ'\çÌOt€ _îޭܲ%YVV:2ÒMAAfÑ¢#ø%$éÌ™ Ë„ ™Pµ´tYZ†´´tã‡]ZZJ[[¥©©sÊ”Ñ'Oºêè¨ ø(”ÖM›’?~«®>¼¾¾Åb#„H$¤¦¦xçÎN55E¢Bà™Pùùoo§r><˜Lv}}ÛÔ©))>ÅÄŽŽŽjJŠÏ”) ³BÃP{;Õßÿbcj ‘ ÏåË%99åL&›»ÉdTýù碢_ãêÕÇ÷ï¿âO³³Ÿ¥§—ÕSK!©«kµ²:H¥Òù8‰„äå‡Ýºµ}Ô¨„ľ̻wÏŸÚÇ{šŸ¿CWÚÂ#2! ºH§3~l`¢Ñ›7'q¦'@ô±XìÍ›“i4Y !„aˆNg]~`C$2a8wî~^Þsž NZZŠL–Â0¬§‡YQQ/üØÀ—©¨¨ïéab"“¥>¤—Édçå=?þ¾ðc‚`j9誫çÏÿ_:É](++M§3e-2·µ5³´œ×މ£ÖÖî;w*²³Ÿfe•uuÑñ·•{YYé›7·Ž$*Â!Ùàb±Øß}wôÙ³Z&“M"!i:©©©¼t锥K'O›6ž¸/˜LvIÉ›«WŸ\½úøÃ‡vYYiããxÍÌLÿÏ?·’ÉðF¢O•Jmii!0ÉsæLáñã·I$„ahÔ(5këñVVãÌÍu%¦[ËËË«©©}M ÖëX,vYY]~þ«›7+jjZñ·~ëÖyëÖÁ#L˜®î?·µ~’È>|øP^^NDH’©¦¦c×®Û*Ó§kOŸ®£££DtDoäÈ‘¦¦¦_Ó‚÷: ¥³¸˜R\\ÿömÛ¯¿ÎÕÓNtDeÞ¼yœeˆá~|çÏë=š/ÁWx?{öl š’Ô^çìŒB--]õõmð`ŒÂÿáϺDÐqNMMQ‚?ÏD„œ© eÈb@ìA"ˆ=Hd±'ö‰ìÝ»wëׯÿìjUUU$‰{»ú£G¤¥¥SRþyˆ~FF†¬¬lYYÙ`Ä̃Äe̘1nnn}¬a˜«««’R¯J#‘HUUU)øH`¯ãéZ_Óìg»DWWWPPÐäÉ“‡>cÆŒß~ûÉüxk‰D?~<Ï;‹/æt‰äääÄ½Â¿Š¼ÿ+ ³ã‰}"KOOwppøRuuµ††¾¬ªªÜ[õ©S§þüóϾ¾¾­­­¡¶¶6Ÿ½{÷š› é@þúë/ …RSS“ÐÞÞ>mÚ4<êêêΞ=+©‘Š…>zÝ@5ÛG—èèè˜>}zQQÑ¡C‡>|¸sçγgÏ.\¸ÅúøsèoÞ¼yòäŸ'ܵ´´äçòS)©©©.\ðø‰„qihh¸uë&Vìíí»»»¾TYYɳƒü…œê===fff7nÄ0ÌËËË‚N§ZÔŸ@UVVrþd³ÙVVV{öìém}ûÕÿöÐÓ§OŸ>}ú•HL¯û·ïKÍöÝ%---™L&g…ÎÎÎ1cÆÄÄÄàu-ZôóÏ?s^MLL\¼x1§M„§§çˆ#(ÊDÞÿ•¯ãñ÷™="»r办ž~sÜùóç'L˜ÐÕÕ…b0AAAZZZšššAAA ‚þ÷¿ÿ=zt^^ÞÞ½{G=räH777Îg -„ÐÕ«W'Mš$''ghh˜””„b2™«755)**ÊËËsw9˳fÍBikk£^ÆÃœê!YYÙÄÄÄøøø„„„ÄÄD™Þ‚À]ãG"‘¼¼¼®]»Ö[;ÜûÕÏ6³³³ŒŒÔÔÔBBB8G###ÃØØXSSÓ××·§§G`a»Å Í^Çb±BCC'L˜0|øðÙ³g?xð_¡µµõ‡~ÐÐÐÐ×× ¤Ñh!‰obb2räȃ&%%;VEEe÷îÝ<Íòï>O—HNNÞ³g™L欠¨¨”œœŒÿéäätñâEìÿ'©©©«V­ânÐÏÏoâĉøÇ6϶øƒïm7FÂëx}ç9ÜÜÜÜÝÝëëëµ´´…}÷aŽÈD°×9rDSS3--­®®îÚµkø=̆¹¸¸,X°àÕ«W¥¥¥ffføaD9;;···ÇÆÆ"„¾ÿþûöööS§Náïöioì£KàÙ¼±±‘çøÜ»wOKK ¯ûâÅ mmíGaÖÚÚª  ÐÔÔ„¸Fd•••òòò اÿüÁ÷¶›ü‡‘'¤Áëxü}æKYKK‹¾¾þ¤I“¸·7qâDÎH5''gÊ”)x|¥¥¥†§¥¥á¯–——s–ùk577ËÈÈ>|¸¥¥…Ífwtt°X¬Þª;::677c_šÈ8Õql6{ùòåd2ÙÕÕ•{u×°Ï%²Þ¶Ž—ôÖ&7„P^^†aø9”ÊÊJîø1 »pá‚‘‘‘ÀB¬OÂLd"Øë&L˜˜˜È æ÷ßGÑét2™Ì9,iiiøaD•””`F§Óy–ñwŸ»7~A"+((ÐÐÐàÔÝ´iÓÎ;1 KNN^¸p!w›œ…cÇŽ)++¿{÷ŽÓ£/p7Fž¯ã L"Ã0ì—_~!“É œ999îžŠŠ ~¦INN®¬¬Œ¿þZ†Ý½{wÕªUŠŠŠ–––ׯ_ï­zGGDzeËðeîÿ튊Šþ$2î긤¤$•Û·oËÉÉ¥§§ g×0A½öܹs}o³²À6¹!„***¸·…·@¥RñÂ'OžÈÉÉ ,äo›Ï‘‰Z¯“——üø1ç¥G!„Þ¿Ï}KKKñÃÈý.ó/óôƾ»„¶¶vNNO`QQQvvvœºyyyFFFl6ÛÁÁáÔ©S˜ DÆb±æÎ‹…ð%0x»ÙÛaä6xoΑáoUDD„M@@§PCCƒsè[ZZîßÿø„_üL“®®î›7oð’Çÿú믽բR©l6;%%¥¹¹ÙÃÃcéÒ¥ÍÍÍ«gee-Z´ˆ;0üèÚÚÚþìOõºº:__ßÐÐP++«½{÷zzzþý÷ßBØ5þÀðNiooß÷ÖqýlSà÷åxBUTTpí$°Pˆ`¯3f ÷—ƒø³@´´´Èdruu5^øêÕ+==½ÏîgæÆÓ%\\\~ùåÎw”¡®®®C‡q·0gÎœŽŽŽ»wïæääôö«””TBB½{÷NŸ>— ^àn¢ÏõLœð:^ßyދŲ±±Ù¿ss³¶¶ö•+Wðr__ßU«VáßûΜ9sóæÍ܇½{÷Nš4©¬¬¬¬¬löìÙ6lè­•J•““KMMmll<}ú´œœ•JXÝÕÕµ¶¶o¿Ê&..®­­mÅŠˆkðÕÑÑ ‘qWg³Ùß}÷ÝܹsñyNŸ4i’³³³v Ã0Äõ]{^^ÞòåËõõõ[[[û³õÞÚŒ‰‰á´€ø>ÿñ¬­­+++ Ç¿gÏ…}w¡ÈD³×;vLSS3==B¡dffâ›^»ví‚ ª««ËÊÊLMMñÃÈÿ.p/s7‹}®K´µµÏ;733³¢¢"--ÍÔÔtöìÙ4»qkkkž¢O‡{QQQxºÁÿä¾·Ýä?Œ˜°:ÞL-Oœ81yòd|è~ùòe|bßÞÞ¾~ýz555uuõ7vuuqw)¨«««¢¢âììÜÒÒ‚—ó×Â0ìÂ… ãÆ“••8qbFF†Àêt:}É’%Ü8p@UUuܸqøv Æœ9s”””0¾DÆS=11qذa/_¾ä”JII¥¦¦ö®aŸ~m4jÔ(îÙSß[ï£Í>þmðbcc 444¶lÙB¥RöÝ„–ÈD³×1™ÌÐÐP###EEÅo¿ý’`ÖÜܼnÝ:uuu???ÎÇUoïHyy9Ogî»K`ÖÙÙ`ff¦  `jjzàÀÎå œÆóòòB'Ožä)çIdl6{áÂ…ˆë¬+Oð½í¦ÀÃ(œŽÇßg XQilla DOM3 API Documentation SourceForge.net Logo

DOMElement.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <xercesc/dom/DOMNode.hpp>
Include dependency graph for DOMElement.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMElement
 By far the vast majority of objects (apart from text) that authors encounter when traversing a document are DOMElement nodes. More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/functions.html0000644000151400015140000001043211653571065015073 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- _ -

XQilla-2.3.0/docs/dom3-api/DOMXPathEvaluator_8hpp__incl.md50000644000151400015140000000004011653571065020150 000000000000006fb51c3549cff64c40364f97655fd273XQilla-2.3.0/docs/dom3-api/DOMEntityReference_8hpp__incl.png0000644000151400015140000001647111653571065020452 00000000000000‰PNG  IHDR˜uüô`êbKGDÿÿÿ ½§“îIDATxœíÝ{\Léÿðgšt§Ò=QÕvC|Ù/•èâ~«Ð·ä»kW—u¯ûr]VkI¬"¤Ú KI…•êK¢]BT„J,Õ”Ò½fšfæüþ8~gÇÜ 5gfú¼ÿšžyžç|Ι§Ï<Ï™9g(†!frdŸ @êA"H=Hd©'Ov2n÷îÝyyydGHæèè¸mÛ6²£eÈúWIIIQQ‘••ÙÒ8GzÈR@êA"H=Hd©ŸZJgggⱞžž]`` ††QÈ`0âããïÝ»G£ÑFŒáàà°lÙ2*•Š·6lXbb"…B!êoÚ´©   ))iذaÜnܸÑcTÕÕÕ¾¾¾½©É³ £G^¿~½™™™°ú†íÝ»÷öíÛW¯^íMÿýÍÙÙ?\d>$2Ii``ÀápÞ¼ysáÂ…U«VÅÆÆª©©!„:;;555ýýý _¾|yêÔ©û÷‡ËÉÉ!„jkk_¼xAd¶¶¶¢¢"þÎ{F HOOG©©©y{{óö¸ xÀIII»víJHHàN¯ÜÞ½{—““sîܹÞD€h°´”C‡ÕÖÖ7nÜîÝ» ’““ñ§444<ø¯ýËÈÈÈÁÁ!::º¶¶–˜ËØÛÛçææ]ýùçŸcÇŽå°08Nkk+þX]]}ÕªU<…=îÂСCŒŒªªªZZZ„UîêêBéêêöØ-=‚D&‰(Êüùóïܹƒÿ™íçç‡O¾pJJJË–-ËÎÎÆÿœ6mZnn.qk¹›7o:99õfCÎÎÎ999+V¬˜?þï¿ÿŽ B-^¼!T]]/¹ 9òË/¿àÍétúÌ™3ËËËù{¦R©òòòªªªøŸ,+::zÑ¢E‹-ŠŽŽf±XÜ} ¬€o½°°péÒ¥%%%üÆÏf³ãââ–.]ºpá°°°öövaýóÇ|ÿþ}Ÿyóæ>}šØýüüüåË—/Z´èÈ‘#ÝÝÝ {s¨A¿‚D&¡ŒŒŒjjjBíííü'›ÌÌÌ^¿~?¶¶¶¦Óé/^¼@uttN™2…»2ƒÁ ˆxêöíÛQQQþþþÇokk;zô(B(55•»9w¡““S~~>›ÍFåçç±[y÷îÝ©S§\]] „?•’’B£ÑŽ?^XXdz!þ xùùóç7oÞÓÖÖFÉË÷v$ÈÉÉ988äå噚š>xð 88˜+]]]±±±¿üòKTTþTmm­‡‡Q“Xr„U1b„è <ñ×ÕÕá{BHKK !ÄóéÑÛˆ#êëëEA"“D†eddLž<ÿÓÅÅ%!!aܸqÄi2ƒqöìYîÿL›ÎÎÎ’’’û÷ïs'— ûTQ„iÓ¦íÙ³ÇÄÄÄÆÆFGG‡¿‚¢¢âÌ™3/_¾ŒaÞ¿ººzDDžæðÅ2Oaˆ %¬OüZZZµµµ#GŽDUTTܹsÇ××·7;UUU¦¦¦¡7oÞà™NX! ,-%EssscccCCCQQѶmÛh4Ú’%Kð§V¬XÑÔÔ´qãÆ‚‚‚ªªª[·njkk/X°€hޝ.êjÜ®]»tttΟ?ßׂÀÒ|&“I£Ñ®^½:wî\²cà=Hdàã<}úÔßßÖ¬Y<ÈUUÕyóæõ¦Αcgg—‘‘Avâ ¡¡±qãÆÞÒÁŒ õ ‘¤$2€ÔƒDzÈR@êÁ×/ú]QQQHHÙQ| £p8ŠT*CÌÛe³•ääº(é¾ø¤²²ÒÅÅ…ì(d$²þEÜÁBzuuÉ?{¦ÉáPÆŽ}ûñwÊøt†=Ò““ãXX4)* ¸¡«´055•a áàZK Ê… ÷·lI1778vÌÏÈHSÌ[ó¦1((áùóÚ°0O bÞ:"È€`][¶¤¤¦>ذÁmÝ:7yyrN§²XœÃ‡³""²/¶ óTUU$% á ‘ž<©Hhk£9âëà0¦çý,/ïùÚµ§VŽŽö³²‚Ÿž¼àSKð ÃbbòæÌ9dd¤™* Y !äèhžjd¤9gΡ˜˜˜‘ tuu-«W'=xð÷¾}^^^Éç#$'ßÛ´)ÙÞÞ82ÒWOOìp™ ‘ h99¥ëןÑÕr옟¹¹>Ùá|´çÏk~khhˆðvqù‚ìpi`i9@uw³·m»¸bEÌìÙ¶ü±A³BÈÜ\ÿòåõÎÎ+VÄlÛv±»›MvD€0#ˆ^½j L¨¨x»w¯‡t-'…IN¾÷ÃÌÌtó31Ñ&; n0#pRS¸¹`³9×®ËFCyyM¼v-˜Í渻‡_¼XHv8@Ü`F6€tv27oN¾páÁ×_;lÛ6OAAÖnÀd²vï¾{ËÃÃþ矽TTÈŽˆ $²¢´´& à·wï:""–¹¹Y“N?ÊÊz¼aÃïZZªÑÑ+¾øÂìp€8ÀÒr@ˆ‰É›3'B[{pNNˆlg1„››uNNˆ¶öà9s"bbòȈÌÈd\ssçÆ¿gg?Y¿Þuýz7*u ¼u±ÙœC‡²Êvs³:xp™º:\Ï$Ë ‘ɲ{÷^%²Ùœ¨¨å_~9ŠìpHð矫W'Q©rG.Ÿ8q$Ùá€þ2PÞŸ Ïôðˆüâ ܜЙÅBÿþ·YNNè_zxD†‡gr8ð¶-›`F&ƒêêZÖ¬9]PðrëÖyx ñ#n›1i’é‘#¾zzCÈŽô1Hd²æúõ§ëÖ2D9:ÚÏÆÆˆìp$Hqñ›ÀÀÄÖVúáÃÿ™>Ý’ìp@_‚D&;º»Ù?þ˜{ ¿+´šÜšW{ûûûwýµÃöíó ¢’èÈdÄ«W AA‰ååu2sÕQÿÁ¯g=ZïèÑåp=“l€“ý² -­ÐÝ=¼»›™¹²X¼¼&ffnìîf»»‡§§?$;Ð`F&Ýdþª£þÓÕÅÚ³çýõLûöy)+ÃõLR ™{ú´& ¡¾¾-"ÂÛÝ]Æ¿¯ßO®]{¼aÃYÁÑÑ+,- È|"XZJ«˜˜¼Ù³#†UÍÉ …,öÉÜÝ­srB55UgÏ>×3I/˜‘IŸ––Îààs×®=^¿Þ•ğΕ%øÏ:”íîn¾®g’:ȤÌýû/ƒ‚»»9‘‘¾S¦˜‘ŽLÉϯX½:iÐ ¹£G—O˜×3Ix3—øUG‹GZXää„@ësS¦˜å䄘›ë/^ ×3I˜‘I‡ººÖ5kNß½ûB2:W–×3Mž<ê×_}àz&©‰L ܸñlݺÓjjJÇŽùÙÙ ';œ¡¨èM``B{;ã×_}¦M³ ;ÐXZJ4ü·Ž|}O88Œ¹v-²˜ØØÙ ¿v-ØÁaŒÏ ø}&É32Éõ÷ßï‚‚ž?¯ ó„ïë“%9ùÞ–-)ææúGúk‘ fd*#ã¡»û®.Vf¦ìüÖ‘4òòš˜™Ì`°ÜÝddÀõL fd‡NgnÚ”œ’råJÇ­[ç)*ÂUGäïg:u*ÏÓs\Ï$ ‘‘£´´ÆØXKU•÷N;OŸÒÞ¾m _6k– )±a®^-Ù¸ñw=½!ÑÑ~¼×3utt½~ýÎÒ~·‰°´$Î\¹2nÓ¦džrü·ŽÔÕ•³³C ‹I Y³lrrBÔÕ•gÏðûL›6%¯\Ë`t“ÛGݹs'Ù1 8;v¤ÝºUVZJ36ÖÂx±µ•¾fÍé“'o®]ërð ·†\"#¡† QöòšÈáp~þùʳg4''sEÅA¡ää{Ù­­Œ–úŒpûYqƒ¥¥¸åä”®Xƒa…B‘——ËÌÜØÙÉ Jd2YGŽøN:šìA¯Ü¾]¾fM’‚‚üÑ£~**ƒfÎ<ˆEƒB¡$$| ¹LÌ ‘‰USS‡ƒCXSS'~ØåååôõÕÚÇŽåk` Av€à#ÐhÍß}—ôèÑßZZƒkk[ØlBˆBAššª·nmÑÔT%;ÀΑ‰Õ† g[[éÄ›‹Å©­m7Î899²˜Ô10ÐHN;Ö¸®î}Cajm¥oÜø;¹± 4ÈÄçâÅÂììR‹Ã]Èbqþú«âòå"²¢ŸãÒ¥Gwî¼àM³²ž¤¥’ÕKK1©©ivtü™Ngòp )++Þ¸ñýðáCI‰ |š×¯ßMŸ¾_Äkš—·ÙÐ&Úâ321 =Ïdv |ÛÀ0Ä`t¯^H,O€äc³9«W'1²BÓÙz^ü LÈÄáÌ™;¹¹Oy 8yy9*Uð®.VYY­øcŸ¦¬¬¶«‹…aˆJ•x“^‹“›ûôìÙ;âm‚¥e¿«¬¬Ÿ>ý&“Å]¨  Ïd²TUfδqs³vpß“FÍÍ·n•ee=ÎÌ,éè`â/+wùë׿75Õ!+ÂYÿb³9sçzò¤šÅâP(hÐ y&“¥«;dÞ¼±óæÙowÜ— ,§°ðÕ¥KE—.=zû¶UAA¾»ûý|ÍÚÚèòåuT*¼ÐýèƒDF§Ó›ššHŒFö$$üúëM a>\ÓÙy´£ã(C™ÖÊÊÊšššŸÓƒŒ:6›SRR“—÷âúõ²ªªfü¥_·nÚòåp “>fhøÏe­$²·oß–––’’lªªjÛºõ¦±±ú„ ú&¨‘QßÓÑѱ²²úœdxÔÑhí÷ïÓî߯ýûï–Ÿ~r6l0ÙÉ”iÓ¦Ü"†ûið9ž>­yøpº ÃûÉ“'}Õ•¬Ž:oo„jjꨭmcôþ7?¸×U?‚ pššª2ü~& däL ` ƒDzÈR@êA"H=©Od¯_¿þꫯz¬VQQA¡P¸p7øð¡¼¼|rò?7ÑOOOWPP())é˜yP¸˜˜˜øùùÕ×׋¨a˜¯¯¯šZo¿•F¡P***ú"RðžÀQÇ3´>§Û‡DGGGhh¨ÝàÁƒ'Nœ¸wï^ëý¥Q eôèÑŸL—ººº7n`ReΜ9Ÿ*//çÙAþB¢yWW—µµõªU«0 °··g2™ýõBåååÄŸÇÑÑqûöíÂê ܯÞ÷߇?~üøñãÏìDfFÝǾ."º=$BBBX,Q¡½½ÝÄÄääÉ“xÛ™3gþðÃijñññ³fÍ"úDùûû:”F£}B佯ÜÌ|ôŒ,##cذaøÅqgÏž3fLGGB¨»»;44TOOOWW744´»»Ÿ‚þïÿ1bDnnîŽ;FŒ¡££ãççG¼·ð·B]ºtÉÖÖVIIÉÔÔ411!Äb±6ohhPUUUVVæžî'OžŒÒ××GBæÃDs„‚‚B|||lllXXX\\\||ü Aƒ„Ù‡»ÆB¡\¹rEX?ÜûÕË>³²²ÌÌÌ455È£‘žžnnn®««»víÚ®®.…½ýL2G›ÍÞ¿ÿ˜1c‰‡2dÈëׯ‰%0x»)ð0ò„Ô¯o†a?þø#•J­««#J”””¸'zêêêx|ø™&%%¥’’þ~ø[avûömOOOUUU‡?þøCXó¶¶¶ùóçã¹ÿ·ËÊÊz“ȸ›ãÕÕÕoÞ¼©¤¤”––&ž]ÃÚ3gÎØÛÛ‹Þ:QY`ŸÜBeeeÜÛÂ{ ÓéxaQQ‘’’’ÀBþÞ¸‰ù™¤:eeåGO=|ø!ôæÍîÃX\\ŒFîW™ÿ1Ïh=$ôõõ³³³y;v옻»;Ñ677×ÌÌŒÃá,\¸ðøñ㘠DÆf³œœð©>¢/p7…Fný7ðúàþREFFº¸¸…ÚÚÚÄ¡ojjºsçý~ñ3M†††¯^½ÂK=zôÓO? kE§Ó9NrrrccãÊ•+çÍ›×ØØ(°yffæÌ™3¹Ã?®®®îÍ^ð4¯©©Y»víþýûwìØáïïÿîÝ;1ì`ø œ3gŽè­ãzÙ§ÀÏËñ„*++#ní$°PHà¨311áþp¿ˆžž•J­¬¬Ä _¼x1lذ÷Ž0sã>>>?þø#ñ%B¨££cß¾}Ü=L:µ­­íöíÛÙÙÙÂ>`•““‹‹‹ËÏÏ?qâ^"0x»‰z™8ñ <ÑyŽ›ÍvqqÙ½{wcc£¾¾~FF^¾víZOOOüsßI“&­^½š{â°cÇ[[Û’’’’’’)S¦|ûí·ÂZÑét%%¥”””úúú'N())ÑétÍ}}}«««ñ~ðoÙœ:uª¥¥eÑ¢EˆkòÕÖÖ† š‘q7çp8sçÎurrÂ×eL&ÓÖÖÖÛÛ[ »†aâú¬=77wÁ‚FFFÍÍͽٺ°>Ož¬««›––F£Ñ®^½jjjŠoú?ÿùÏŒ3*++KJJ¬¬¬ðÃÈÿ*p?æîëiH´´´˜››;99]½zµ¬¬,55ÕÊÊjÊ”) ƒ»ó   KKKgggž¢§{ÇŽÃÓ þ'ðÂv“ÿ0bâx}°´u¿xñ¢¾°ommýꫯ455µ´´V­ZÕÑÑÁ=¤ FHHˆ¡¡¡ººº··wSS^Îß Ã°sçÎ5JAAÁÂÂ"==]`s&“9{ölîÀöìÙ£¡¡1jÔ¨ôôt|»ÝÝÝS§NUSSÃøOóøøxEEÅçÏŸ%rrr)))ý½k؇ >ÜÇLJ{õ$zë"úñoƒ÷cll¬­­½fÍ:.°Pô`["“ÌQÇb±öïßoff¦ªªúå—_âS ×/_®¥¥e``°aÃâíJØ+RZZÊ3˜E ÃÚÛÛƒƒƒ­­­UTT¬¬¬öìÙC|„è<77!ÅSΓÈ8Ž««+â:ëʼ°ÝxÅ3ðøÇŒ€;ÄÊê-î¡¢¢‚ÿËß EÃW}r‡XuA_ <þ1#õßìHdÑ!Cüýý{S@ê¿KKðé`i HKK€ ‚DzÈR@êA"H=?Ð[SS#þ8€4b0 XQilla-2.3.0/docs/dom3-api/inherit_graph_40.md50000644000151400015140000000004011653571065015724 00000000000000b141b214baece573a27825915c1e1e9fXQilla-2.3.0/docs/dom3-api/inherit_graph_26.md50000644000151400015140000000004011653571065015730 0000000000000023ebaa6bbf18cfaa9b62e4106afa39b4XQilla-2.3.0/docs/dom3-api/inherit_graph_28.md50000644000151400015140000000004011653571065015732 000000000000008a988258419da7954a9986b2e5af4191XQilla-2.3.0/docs/dom3-api/DOMComment_8hpp_source.html0000644000151400015140000002061311653571065017346 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMComment.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  * 
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  * 
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMComment.hpp 527149 2007-04-10 14:56:39Z amassari $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMCOMMENT_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMCOMMENT_HPP
00024 
00025 #include <xercesc/util/XercesDefs.hpp>
00026 #include <xercesc/dom/DOMCharacterData.hpp>
00027 
00028 XERCES_CPP_NAMESPACE_BEGIN
00029 
00030 
00039 class CDOM_EXPORT DOMComment: public DOMCharacterData {
00040 protected:
00041     // -----------------------------------------------------------------------
00042     //  Hidden constructors
00043     // -----------------------------------------------------------------------
00046     DOMComment() {};
00048 
00049 private:
00050     // -----------------------------------------------------------------------
00051     // Unimplemented constructors and operators
00052     // -----------------------------------------------------------------------
00055     DOMComment(const DOMComment &);
00056     DOMComment & operator = (const DOMComment &);
00058 
00059 public:
00060     // -----------------------------------------------------------------------
00061     //  All constructors are hidden, just the destructor is available
00062     // -----------------------------------------------------------------------
00069     virtual ~DOMComment() {};
00071 };
00072 
00073 XERCES_CPP_NAMESPACE_END
00074 
00075 #endif
00076 
XQilla-2.3.0/docs/dom3-api/MemoryManager_8hpp__incl.map0000644000151400015140000000003511653571065017540 00000000000000 XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMRangeException-members.html0000644000151400015140000002647411653571065023046 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMRangeException Member List

This is the complete list of members for xercesc::DOMRangeException, including all inherited members.
BAD_BOUNDARYPOINTS_ERR enum valuexercesc::DOMRangeException
codexercesc::DOMException
DOMException()xercesc::DOMException
DOMException(short code, short messageCode=0, MemoryManager *const memoryManager=XMLPlatformUtils::fgMemoryManager)xercesc::DOMException
DOMException(const DOMException &other)xercesc::DOMException
DOMRangeException()xercesc::DOMRangeException
DOMRangeException(short code, short messageCode, MemoryManager *const memoryManager)xercesc::DOMRangeException
DOMRangeException(const DOMRangeException &other)xercesc::DOMRangeException
DOMSTRING_SIZE_ERR enum valuexercesc::DOMException
ExceptionCode enum namexercesc::DOMException
fMemoryManagerxercesc::DOMException [protected]
getMessage() const xercesc::DOMException [inline]
HIERARCHY_REQUEST_ERR enum valuexercesc::DOMException
INDEX_SIZE_ERR enum valuexercesc::DOMException
INUSE_ATTRIBUTE_ERR enum valuexercesc::DOMException
INVALID_ACCESS_ERR enum valuexercesc::DOMException
INVALID_CHARACTER_ERR enum valuexercesc::DOMException
INVALID_MODIFICATION_ERR enum valuexercesc::DOMException
INVALID_NODE_TYPE_ERR enum valuexercesc::DOMRangeException
INVALID_STATE_ERR enum valuexercesc::DOMException
msgxercesc::DOMException
NAMESPACE_ERR enum valuexercesc::DOMException
NO_DATA_ALLOWED_ERR enum valuexercesc::DOMException
NO_MODIFICATION_ALLOWED_ERR enum valuexercesc::DOMException
NOT_FOUND_ERR enum valuexercesc::DOMException
NOT_SUPPORTED_ERR enum valuexercesc::DOMException
RangeExceptionCode enum namexercesc::DOMRangeException
SYNTAX_ERR enum valuexercesc::DOMException
TYPE_MISMATCH_ERR enum valuexercesc::DOMException
VALIDATION_ERR enum valuexercesc::DOMException
WRONG_DOCUMENT_ERR enum valuexercesc::DOMException
~DOMException()xercesc::DOMException [virtual]
~DOMRangeException()xercesc::DOMRangeException [virtual]
XQilla-2.3.0/docs/dom3-api/inherit_graph_34.png0000644000151400015140000000611411653571066016037 00000000000000‰PNG  IHDR‹(€}A(bKGDÿÿÿ ½§“ IDATxœíœP×ÇïH­‘,$ø*¡À(Œ3:-SÚ SèÐÑZB‹¢¶"Rmeä‚>h(Å1­<Û[Ç6Št„2ÄØJ 8–'õ `RKm€ÒJEÁ`~íûcßl×üä‰ÀÞÏðÇݳ÷ä~÷žÃÙìÍî"†¡$N -@l+¡.°BA ê+¡.Îä¶¶¶âââ…’¡ùùùÑÑÑ ­âÄÆÆ.´È}ÚÙÙY£Ñ=zÔªûøø¸X,¶l~ùå‹ÕÕÕ…ïrww( «ãâ^ÉÉÉjµúÔ©S€¤¤$µZýå—_FGG1 Ûºuë† úúúd2Yxxxaa!ù¿ûî;///½^aXyyyXX˜Édr(F­VÓéô;w–——îÝ»‡{%&&ªT*±X ³ÚS,ûûû766ŽŒŒH¥R.—‹GÐ~84ý$ Þ6™LW®ÜÚ·¯œËÍEÑL6ûï(ºŸü×ÑÑç0gf Y}òòòÅÅÅfîÝÝÝ“““jµº··wóæÍk×®Å0Ìê”âEöMHHP«ÕçÎÃ3Á`0( <І‰D¢Õ«Wc0ëfuVëÏ£T(•JÅf³ù|~aa!a ÂÛR©tÍš5¸8™L†aXpppmm-¾÷çŸ&Ú–^J¥ÒÅÅ¥¤¤D¥R™L¦ÉÉI£ÑhËÝxÞ{cbV^^KØ­Ž‹ïíììÄ0L§Ó™µ …N§£Ñh?ýôîU[[ËårÉÇh0X,Vss3†a¯¾úªH$š‰˜ôôôh4£ÑØÖÖF(´´´Xí^QQAø7ß|ƒGÐ~8‚W„ŽŽ¾üüÚU« Pt@@–Ya¢`…2™L7n¤Ñh)))fî...ÑÑÑø$[RË ÕÚÚŠa˜Ñh$¢ƒ311‘››»bÅ ûì3¡PyðàÁøøx[îö»ví:|ø°Ù÷[;jŸ~úi~u@n†‡‡Fc`` ¾ÉårÉÇH£Ñ6oÞ\[[Ëç󛚚ðÓ C1t:ý×_MKKÓh4d???²«=ûúúÂÃà —ÐÐPûˆKµÏÈÈäSOEˆD7îÞý·³³“Á`èõF[ý…Â-[¶ÄáÇÎW׿ͤ[EEEkkëåË—_yå•ÄÄÄ7» ~ª'cgòÉàprzhI¤²²2'''..îúõëL&“°Ã¬³<À™d-e¥üöíÛŸþyLLLVVaôöö&N/*•ŠxF?T??¿ÜÒÝÝ}øða[^Z­Öd2UWW+•ÊÔÔÔ×^{M©TÚr·OTTÔäääÕ«W¥Ré¦M›È»l©µƒ¯¯/FëïïÇ7ûúúüýýÉÇçÏŸ¯ªªŠŠŠb³Ù3£Õj“’’rrr:;;Oœ8Av1û—°ÚsÅŠ7oÞ$úôôôØ?@[K3¤CšÃnK—º._î>§f³>ܹs'##ãèÑ£/¼ð‚P(LOOw¸àmgòÉX>G}ìØ1¡PØÐÐpêÔ)ry0ë5ëlâð[–F£1&&æ£>R*•,«¾¾·gdd$&&â?p®[·îý÷ß'[ …|>_.—ËåòçŸ>--Í–—V«uss«©©ùꫯÜÜÜ´Z­-w;ëPøLíÝ»—Çã½ôÒKfvËqÉ{mµ·lÙ²aÆþþ~¹\öÁ˜] __ß3gÎFûbT*‚ /^œššÂ{"_28ìyüøq6›ýý÷ߎŽ677#â0H$’?ÿT‰ÅmqqÿDÑý–ËO”ºÊ3™L ÑÑÑF£Ã0NÇçó“““ wòÕÕ)Å'jrrÒÒoãk:•••=$0˜u³ÎºÇ³uüøñÕ«Wët: ÃΟ?¢¨R©Ä0L­V¿óÎ;^^^»wïžšš"‹›žžÎÎÎöóóc0ÉÉÉ*• ·[zá2étzHHH]]wòä61Ñ­­­€/¾øÂÌnu\‡¹¢T*·mÛæåå…¢hff¦V«µ À»ï¾»dɵZý×;sìØ1OOO‡sâĉääd[,{ÆO?ý400Á`ÄÅÅÕÕÕ1™L‡ápˆYE¸uk¨¤äâÚµE(ºŸÃ¡âJyYY™««ë­[·Ë?þèääTSSƒÙ®P˜µ)ÕëõQQQK—.%†6 „Õߤ0˜u³ÎºÇ¶R±Ã¡C‡¶lÙ2oÃ544tww›555øúë,±ZŒFÓ?(²²$AAy(šI¬S¡B=á,ެ³Zí›óÏôôtiié|¾R&“¥¤¤tvvÞ¿ÿÚµk»v횣±œœçžã–”$ݼYüõשqq«èôGù¥òYôY3ì±ÑÑÑñúë¯ïÙ³çÅ_œ·A8pÿþýM›6ŒŒ¬\¹rçÎééés=¨‹ -66,66ljêAc£ÜÇgÙ\±Å¢Ï:#Ý-‚¿…“l<™ "‘H¨óÖ]ªéÌVë¼Êƒ@ ÔV(B]`…‚@ ÔV(B]`…‚@ ÔV(B]¬Ü;ÿ: ûã/-‚,V†‡‡-U(‡#æK„º‡³Ð*þ¦å“€‡‡‡å{Zx&¡,p PX¡ u PX¡ uù/ˆ›sÑAŸjIEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMEntity_8hpp_source.html0000644000151400015140000002361111653571065017221 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMEntity.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  * 
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  * 
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMEntity.hpp 527149 2007-04-10 14:56:39Z amassari $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMENTITY_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMENTITY_HPP
00024 
00025 #include <xercesc/util/XercesDefs.hpp>
00026 #include <xercesc/dom/DOMNode.hpp>
00027 
00028 XERCES_CPP_NAMESPACE_BEGIN
00029 
00066 class CDOM_EXPORT DOMEntity: public DOMNode {
00067 protected:
00068     // -----------------------------------------------------------------------
00069     //  Hidden constructors
00070     // -----------------------------------------------------------------------
00073     DOMEntity() {}
00074     DOMEntity(const DOMEntity &other) : DOMNode(other) {}
00076 
00077 private:
00078     // -----------------------------------------------------------------------
00079     // Unimplemented constructors and operators
00080     // -----------------------------------------------------------------------
00083     DOMEntity & operator = (const DOMEntity &);
00085 
00086 public:
00087     // -----------------------------------------------------------------------
00088     //  All constructors are hidden, just the destructor is available
00089     // -----------------------------------------------------------------------
00096     virtual ~DOMEntity() {};
00098 
00099     // -----------------------------------------------------------------------
00100     //  Virtual DOMEntity interface
00101     // -----------------------------------------------------------------------
00104     // -----------------------------------------------------------------------
00105     //  Getter methods
00106     // -----------------------------------------------------------------------
00114     virtual const XMLCh *        getPublicId() const = 0;
00115 
00123     virtual const XMLCh *        getSystemId() const = 0;
00124 
00132     virtual const XMLCh *        getNotationName() const = 0;
00134 
00137 
00145     virtual const XMLCh*           getInputEncoding() const = 0;
00146 
00154     virtual const XMLCh*           getXmlEncoding() const = 0;
00155 
00163     virtual const XMLCh*           getXmlVersion() const = 0;
00165 };
00166 
00167 XERCES_CPP_NAMESPACE_END
00168 
00169 #endif
00170 
XQilla-2.3.0/docs/dom3-api/functions_func_0x75.html0000644000151400015140000000771011653571065016676 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
 

- u -

XQilla-2.3.0/docs/dom3-api/inherit_graph_2.png0000644000151400015140000000373011653571065015752 00000000000000‰PNG  IHDR½($l—bKGDÿÿÿ ½§“IDATxœíšoHS_ÇÏuj*šÓ9œRø#¤ùBMJKZ`ýÃþi¨•©ÒŸQ’&Ø ë…/ _”jÛˆJ(BÄJIÑ2Ó­(Ó­¡›c-t.×Ôm÷ü^ºÜî½›ófZp>¯ÎŸçžó`Ý`ø€uƒáƒ?£^[[ÛÝݽ*®`þf:::èU¦n4ͧOŸÒÓÓWÐ%Ì_ÍÄÄD__£‘©@zzºJ¥Z—0ÿ*•êøñãŒF|ƒáÖ †X7>`Ý`ø€uƒáÃo馶¶– ˆºººß÷ƒ ±~ýúS§NY,/öcccAüþ¼ËÂ’P(Û¶m“H$v»²Ôjµ---à×U =pàÀ—/_çhÎþº*Џ¸8¥RéÝR§Ó …ÂEìíí5™Lƒ¡©©Éf³¥¤¤X­V~¾ù8£ï!,;YYY&“Éd2õööL?yüø±Óé¼yó&eYYY™žžž——‡ªh•&''»ººH’.lnnîöíÛ+** „eeer¹<11‘ÓR \.—#/ÉE`èÈÇ|C’ä† !„UUUR©µÓwUfl©üüüÌÌL­V«V«¯]»¹¶Ë›7oÂÂÂPùÆGW«Õ)))•••ô1½÷r,ÂÞ½{Ÿ?>44D•M&S```QQ‘Á`hnn|ýúµ««+""ÂétB›››¥R)I’ô(^¿~]PP999ɹ’œ©qdddÍš5.\‹Å( CCCß¿·ÙlcccGŽIMMetÑa ÛÑÑvŽN§ãt†Î|ÃS7}}}þþþß¾}ƒ¾}û€r颺YXXïß¿GÕ‡þ÷ßp1Ý$$$˜L&TîèèHJJ¢é½—Ó`ÑÔj5£,++S*•ð§êщk4Ù׊D"@ ÓéPU«ÕÆÄÄ°Í „·nÝÚ¿?ª …BjQ¦§§Ïzïå4X4„€€êrTv8999åå僃ƒ Tovvö£GÐÏ ‘H‘‘‘›6mêíííééáýHˆn ÿг´ÙlþðáƒÁ`HII æ3CG¾ä›/^³ÙLµ ÑK—Û·oÏÌÌ>|Ðò •«óòò233u:F£‘J¥è¡ ОÃ_¾|™••%‘H¬V+ºD.—;vL¯×oݺõüùóômê©—š‘mà%Σ Ž ˆgÏžÙíöŠŠ d !t¹\QQQ"‘¨©©‰¾J¦¤¤D( xZLOù†³xÍ7ìçp†Ûínoo?tèPLLLuuµÑhôäe;§JJJöìÙCo!I2>>þÊ•+Âëׯ‡……ÅÇÇ·µµ¡ùœNgFFÆÚµk‘ñÔÔÔÉ“'#""Äbñ¥K—ЙE—rlll~~>ýGµÙl………ááágΜ±Ûíôee÷2fdx Á“n „õõõëÖ­‹mhhÈÍÍŠŠBí¥¥¥ÁÁÁ6›½VÓÓÓõõõñññ蹚Í2êfѤðàÁƒ´´´–––ùùyÎA8áÔ Á˜2''€¿¿YUUUz½½Òå„$I’$ýý9¾vZIœN'ýüõôý C'«É¿ÎÜÜÜäää;wîß¿ïÅÌÏÏÏÏoõÿ ä!O¬~0ÿ4ýýý©©©EEE;wî\m_Vœo~ ™L655µÚ^¬8ß`ø€uƒáÖ †X7>`Ý`ø€uƒáÇsxww÷îÝ»WÞÌ߉Ùlf72uƒ¾”Ã`(ÂÃÃÌÿ§0_À÷7>`Ý`ø€uƒáÖ †ÿ¢e©´IEND®B`‚XQilla-2.3.0/docs/dom3-api/inherit_graph_20.md50000644000151400015140000000004011653571065015722 000000000000009e560399322c2f649555b4f5c6881ff9XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMLSResourceResolver.html0000644000151400015140000003172611653571065022247 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMLSResourceResolver Class Reference

DOMLSResourceResolver provides a way for applications to redirect references to external entities. More...

#include <DOMLSResourceResolver.hpp>

List of all members.

Public Member Functions

Destructor
virtual ~DOMLSResourceResolver ()
 Destructor.
Functions introduced in DOM Level 3
virtual DOMLSInputresolveResource (const XMLCh *const resourceType, const XMLCh *const namespaceUri, const XMLCh *const publicId, const XMLCh *const systemId, const XMLCh *const baseURI)=0
 Allow the application to resolve external resources.

Protected Member Functions

Hidden constructors
 DOMLSResourceResolver ()

Detailed Description

DOMLSResourceResolver provides a way for applications to redirect references to external entities.

Applications needing to implement customized handling for external entities must implement this interface and register their implementation by setting the entityResolver attribute of the DOMLSParser.

The DOMLSParser will then allow the application to intercept any external entities (including the external DTD subset and external parameter entities) before including them.

Many DOM applications will not need to implement this interface, but it will be especially useful for applications that build XML documents from databases or other specialized input sources, or for applications that use URNs.

See also:
DOMLSParser::getDomConfig
DOMLSInput::DOMLSInput
Since:
DOM Level 3

Constructor & Destructor Documentation

xercesc::DOMLSResourceResolver::DOMLSResourceResolver ( ) [inline, protected]
virtual xercesc::DOMLSResourceResolver::~DOMLSResourceResolver ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual DOMLSInput* xercesc::DOMLSResourceResolver::resolveResource ( const XMLCh *const  resourceType,
const XMLCh *const  namespaceUri,
const XMLCh *const  publicId,
const XMLCh *const  systemId,
const XMLCh *const  baseURI 
) [pure virtual]

Allow the application to resolve external resources.

The DOMLSParser will call this method before opening any external resource, including the external DTD subset, external entities referenced within the DTD, and external entities referenced within the document element (however, the top-level document entity is not passed to this method). The application may then request that the DOMLSParser resolve the external resource itself, that it use an alternative URI, or that it use an entirely different input source.

Application writers can use this method to redirect external system identifiers to secure and/or local URI, to look up public identifiers in a catalogue, or to read an entity from a database or other input source (including, for example, a dialog box).

The returned DOMLSInput is owned by the DOMLSParser which is responsible to clean up the memory.

Parameters:
resourceTypeThe type of the resource being resolved. For XML [XML 1.0] resources (i.e. entities), applications must use the value "http://www.w3.org/TR/REC-xml". For XML Schema [XML Schema Part 1], applications must use the value "http://www.w3.org/2001/XMLSchema". Other types of resources are outside the scope of this specification and therefore should recommend an absolute URI in order to use this method.
namespaceUriThe namespace of the resource being resolved, e.g. the target namespace of the XML Schema [XML Schema Part 1] when resolving XML Schema resources.
publicIdThe public identifier of the external entity being referenced, or null if no public identifier was supplied or if the resource is not an entity.
systemIdThe system identifier, a URI reference [IETF RFC 2396], of the external resource being referenced, or null if no system identifier was supplied.
baseURIThe absolute base URI of the resource being parsed, or null if there is no base URI.
Returns:
A DOMLSInput object describing the new input source, or null to request that the parser open a regular URI connection to the resource. The returned DOMLSInput is owned by the DOMLSParser which is responsible to clean up the memory.
See also:
DOMLSInput::DOMLSInput
Since:
DOM Level 3

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMNamedNodeMap-members.html0000644000151400015140000001216411653571065022412 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMNamedNodeMap Member List

This is the complete list of members for xercesc::DOMNamedNodeMap, including all inherited members.
DOMNamedNodeMap()xercesc::DOMNamedNodeMap [inline, protected]
getLength() const =0xercesc::DOMNamedNodeMap [pure virtual]
getNamedItem(const XMLCh *name) const =0xercesc::DOMNamedNodeMap [pure virtual]
getNamedItemNS(const XMLCh *namespaceURI, const XMLCh *localName) const =0xercesc::DOMNamedNodeMap [pure virtual]
item(XMLSize_t index) const =0xercesc::DOMNamedNodeMap [pure virtual]
removeNamedItem(const XMLCh *name)=0xercesc::DOMNamedNodeMap [pure virtual]
removeNamedItemNS(const XMLCh *namespaceURI, const XMLCh *localName)=0xercesc::DOMNamedNodeMap [pure virtual]
setNamedItem(DOMNode *arg)=0xercesc::DOMNamedNodeMap [pure virtual]
setNamedItemNS(DOMNode *arg)=0xercesc::DOMNamedNodeMap [pure virtual]
~DOMNamedNodeMap()xercesc::DOMNamedNodeMap [inline, virtual]
XQilla-2.3.0/docs/dom3-api/classXPath2Result.html0000644000151400015140000006455611653571065016436 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

XPath2Result Class Reference

The XPathResult2 interface represents the result of the evaluation of an XPath 2.0 expression within the context of a particular node. More...

#include <XPath2Result.hpp>

List of all members.

Public Types

Public Constants
enum  ResultType { FIRST_RESULT = 100, ITERATOR_RESULT = 101, SNAPSHOT_RESULT = 102 }

Public Member Functions

Destructor
virtual ~XPath2Result ()
 Destructor.
Functions introduced in DOM Level 3
virtual ResultType getResultType () const =0
 Returns the result type of this result.
virtual bool isNode () const =0
 Returns true if the result has a current result and the value is a node.
virtual const
xercesc::DOMTypeInfo
getTypeInfo () const =0
 Returns the DOM type info of the current result node or value.
virtual double getNumberValue () const =0
 Conversion of the current result to double.
virtual int getIntegerValue () const =0
 Conversion of the current result to int.
virtual const XMLCh * getStringValue () const =0
 Conversion of the current result to string.
virtual bool getBooleanValue () const =0
 Conversion of the current result to boolean.
virtual xercesc::DOMNodegetNodeValue () const =0
 Retrieve the current node value.
virtual bool getInvalidIteratorState () const =0
 Signifies that the iterator has become invalid.
virtual size_t getSnapshotLength () const =0
 The number of items in the result snapshot.
virtual bool iterateNext ()=0
 Iterates and returns true if the current result is the next item from the sequence or false if there are no more items.
virtual bool snapshotItem (size_t)=0
 Sets the current result to the indexth item in the snapshot collection.
Non-standard Extension
virtual void release ()=0
 Called to indicate that this object (and its associated children) is no longer in use and that the implementation may relinquish any resources associated with it and its associated children.

Protected Member Functions

Hidden constructors
 XPath2Result ()

Detailed Description

The XPathResult2 interface represents the result of the evaluation of an XPath 2.0 expression within the context of a particular node.

Since evaluation of an XPath 2.0 expression can result in various result types, this object makes it possible to discover and manipulate the type and value of the result.

Since:
DOM Level 3

Member Enumeration Documentation

FIRST_RESULT
The result is a sequence as defined by XPath 2.0 and will be accessed as a single current value or there will be no current value if the sequence is empty. Document modification does not invalidate the value, but may mean that the result no longer corresponds to the current document. This is a convenience that permits optimization since the implementation can stop once the first item in the resulting sequence has been found. If there is more than one item in the actual result, the single item returned might not be the first in document order.

ITERATOR_RESULT
The result is a sequence as defined by XPath 2.0 that will be accessed iteratively. Document modification invalidates the iteration.

SNAPSHOT_RESULT
The result is a sequence as defined by XPath 2.0 that will be accessed as a snapshot list of values. Document modification does not invalidate the snapshot but may mean that reevaluation would not yield the same snapshot and any items in the snapshot may have been altered, moved, or removed from the document.

Enumerator:
FIRST_RESULT 
ITERATOR_RESULT 
SNAPSHOT_RESULT 

Constructor & Destructor Documentation

virtual XPath2Result::~XPath2Result ( ) [inline, virtual]

Destructor.

XPath2Result::XPath2Result ( ) [inline, protected]

Member Function Documentation

virtual bool XPath2Result::getBooleanValue ( ) const [pure virtual]

Conversion of the current result to boolean.

Returns:
asBoolean of type boolean, readonly
Exceptions:
XPathExceptionTYPE_ERR: raised if cannot be properly converted to boolean.
DOMExceptionINVALID_STATE_ERR: There is no current result in the result.
virtual int XPath2Result::getIntegerValue ( ) const [pure virtual]

Conversion of the current result to int.

Returns:
asInt of type int, readonly
Exceptions:
XPathExceptionTYPE_ERR: raised if current result cannot be properly converted to int.
DOMExceptionINVALID_STATE_ERR: There is no current result in the result.
virtual bool XPath2Result::getInvalidIteratorState ( ) const [pure virtual]

Signifies that the iterator has become invalid.

Returns:
invalidIteratorState of type boolean, readonly
virtual xercesc:: DOMNode* XPath2Result::getNodeValue ( ) const [pure virtual]

Retrieve the current node value.

Returns:
asNode of type Node, readonly
Exceptions:
XPathExceptionTYPE_ERR: raised if current result is not a node.
DOMExceptionINVALID_STATE_ERR: There is no current result in the result.
virtual double XPath2Result::getNumberValue ( ) const [pure virtual]

Conversion of the current result to double.

If the native double type of the DOM binding does not directly support the exact IEEE 754 result of the XPath expression, then it is up to the definition of the binding to specify how the XPath number is converted to the native binding number.

Returns:
asDouble of type double, readonly
Exceptions:
XPathExceptionTYPE_ERR: raised if current result cannot be properly converted to double.
DOMExceptionINVALID_STATE_ERR: There is no current result in the result.
virtual ResultType XPath2Result::getResultType ( ) const [pure virtual]

Returns the result type of this result.

Returns:
ResultType A code representing the type of this result, as defined by the type constants.
virtual size_t XPath2Result::getSnapshotLength ( ) const [pure virtual]

The number of items in the result snapshot.

Valid values for snapshotItem indices are 0 to snapshotLength-1 inclusive.

Returns:
snapshotLength of type size_t, readonly
Exceptions:
XPathExceptionTYPE_ERR: raised if resultType is not SNAPSHOT_RESULT.
virtual const XMLCh* XPath2Result::getStringValue ( ) const [pure virtual]

Conversion of the current result to string.

Returns:
asString of type DOMString, readonly
Exceptions:
XPathExceptionTYPE_ERR: raised if current result cannot be properly converted to string.
DOMExceptionINVALID_STATE_ERR: There is no current result in the result.
virtual const xercesc:: DOMTypeInfo* XPath2Result::getTypeInfo ( ) const [pure virtual]

Returns the DOM type info of the current result node or value.

Returns:
typeInfo of type TypeInfo, readonly
virtual bool XPath2Result::isNode ( ) const [pure virtual]

Returns true if the result has a current result and the value is a node.

Returns:
isNode of type boolean, readonly
virtual bool XPath2Result::iterateNext ( ) [pure virtual]

Iterates and returns true if the current result is the next item from the sequence or false if there are no more items.

Returns:
boolean True if the current result is the next item from the sequence or false if there are no more items.
Exceptions:
XPathExceptionTYPE_ERR: raised if resultType is not ITERATOR_RESULT.
DOMExceptionINVALID_STATE_ERR: The document has been mutated since the result was returned.
virtual void XPath2Result::release ( ) [pure virtual]

Called to indicate that this object (and its associated children) is no longer in use and that the implementation may relinquish any resources associated with it and its associated children.

Access to a released object will lead to unexpected result.

virtual bool XPath2Result::snapshotItem ( size_t  ) [pure virtual]

Sets the current result to the indexth item in the snapshot collection.

If index is greater than or equal to the number of items in the list, this method returns false. Unlike the iterator result, the snapshot does not become invalid, but may not correspond to the current document if it is mutated.

Parameters:
indexof type size_t - Index into the snapshot collection.
Returns:
boolean True if the current result is the next item from the sequence or false if there are no more items.
Exceptions:
XPathExceptionTYPE_ERR: raised if resultType is not SNAPSHOT_RESULT.

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/XQillaNSResolver_8hpp__incl.map0000644000151400015140000000003511653571065020152 00000000000000 XQilla-2.3.0/docs/dom3-api/inherit_graph_9.map0000644000151400015140000000061311653571066015750 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMXPathNamespace_8hpp.html0000644000151400015140000000713711653571066017234 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMXPathNamespace.hpp File Reference

#include <xercesc/dom/DOMNode.hpp>
Include dependency graph for DOMXPathNamespace.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMXPathNamespace
 The DOMXPathNamespace interface is returned by DOMXPathResult interfaces to represent the XPath namespace node type that DOM lacks. More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/inherit_graph_2.md50000644000151400015140000000004011653571065015642 00000000000000b4b5bee67b273b9f78743f4cf7d0d775XQilla-2.3.0/docs/dom3-api/classXQillaExpression__inherit__graph.md50000644000151400015140000000004011653571065022277 00000000000000e88ff3704b080b8644b32bbb73464036XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMEntity__inherit__graph.md50000644000151400015140000000004011653571065022656 00000000000000009da72d4a3be7a2c51063ca480ee9eaXQilla-2.3.0/docs/dom3-api/XQillaExpression_8hpp__incl.png0000644000151400015140000011042111653571066020260 00000000000000‰PNG  IHDRßÃüØÿÙbKGDÿÿÿ ½§“ IDATxœìÝw\çÿð „=V  *Š"PW-Z­[qï]QÛo«ÖZ[w«Ø:p´j-ÖZG­Ü ˆ Ù{$V FÖýþ¸ö~i’€Ÿ÷«¯¾âq÷Ü'—»\òÉó|Š¢P5eð^ƒì €2Av@™ ; LDe€·{øðá®]»”xÁÁÁ_~ù¥²£€Jƒì аÙì{÷î5JÙ€žÉÌÌ422RvPuúíÛ·+;Ð3_}õ•²C@?ug” ²3ÊÙe‚ì €2Av@™ ; ùùù¡¡¡ ø’§OŸ†‡‡aÿlkk;~üø¢E‹Æ·bÅŠ .ˆD"A˜LfHHˆÌ ‘¥ïžZ×Þí[…„„0™LyÅÐS0£60@8;;Ï™3çÈ‘#ƒÖ××çñx‡ŠŒŒtpp@¤¥¥eÅŠd2yéÒ¥T*µ¸¸øÔ©S¯^½Ú¿¿¾¾þÌ™3{º»èèhKKË>x=önñ¨è; sçÎ%‘HÇGäĉ&&&3fÌÀþôË/¿ÉäC‡Òh´#F;v¬²²òæÍ›$iéÒ¥=Ý™L6þ/9?™n{·øTdg€ƒH$nݺõÖ­[.\¸uëÖÖ­[‰ÄúÉÆÅÅÍ›7OMíÿoýÚÚÚ3f̸wï^×#ƒž?¾dÉ’±cÇN™2å×_í:€gÏžM:µ©© Aû÷ïÏ;·­­ kÿéÓ§sçÎøàƒY³fݽ{ß…ÔBÉø›››¿ûˆˆO>ùä§Ÿ~âóù‚„„„Ü»w/22ò£>úí·ßdFžœœ<{öì‰'^¸poSfÌR »õÂt ²3À€B§Ó§OŸ3oÞ<{{{lasss}}½“““ÔÊÎÎÎÅÅÅ]´ÖÒÒ²mÛ6ggçóçϯX±âäÉ“ ØŸÚÚÚZÿ AaÆùùù=z”Ãá=zôÿûŸ¶¶6¶þÕ«W¿ýöÛÝ»w¿|ùÏò\ºtiëÖ­ÎÎΗ/_®¬¬<~üøRRRΜ9ÓÖÖ¶cÇŽI“&ýöÛosçÎÝ»wo[[›Ì…’ÿðÃ555ÇŽÛ³gORRÒÅ‹±åOž<9zôè²eËŽ?Ž%¤¼|ùòäÉ“›7oމ‰ár¹]Ä,s!@o@vPP---USS+++“ú@踲došŽ455O:µvíZ …‚ ÇÃþ´xñâñÿ…-_³fMJJʦM›"""\]]ñ¦V¬XA£ÑÜÜÜ/^‡-\ºt©¯¯¯¶¶ö­[·Ö­[G¡P–-[–˜˜(PmmmÕÔÔ;vì7´´´d.Äw! }ëB$£¢¢V®\¬««{âĉ3gÎüôÓOL&ÓÔÔtΜ9»wï^´hQgmêëë¯X±b×®]:::³fÍ Ý¼yóŸþ‰ ÈêÕ«¥VŽ¿zõjCCÃÌ™3‰D↠<èåå…ý5,,ìÓO?mkk ={¶Ô˜ E‹EGG/Y²„@ /[¶LSSó³Ï>;~üxuuµ••ÕöíÛ555‘¹·nݺèèèåË—khhŒ=zöìÙ=µýû÷ûøøèééuqHeÆ,µ°‹Íº‰€¢¨²cÀ[\ºtiúôéñññòmV(æåå¹»»Ë·Y)L&sΜ9r¾OÉŒùžÈW_}effvéÒ%y€F6ï/"‘Ø×©ðV0² P9B¡˜Ín¬¨à”—×WTÔWTp ‹”Ô»ÓÓÓ›8q¢²£è™1÷Ç'€~²3€Ò (ZYÙX\\[VVËd6”—×c阪ªF¡PŒ ˆ††º•™J5"ß2å*#“É7nTv=#3æþøDÐ/@vP@ÄdrŠ‹kKJjKKkÿ}PÇç ÑÖÖ°¶6¦Rœœ(£F¹ÒhF4𑵵±¹9IM€ È¥K—._Vös菉^ûÞ½,ÍÈÊŠlh¨£ìp Š ;È™H$®¨à×VVÕ––Ö2™¬;Œ¡¡Ž©é¸q^Ø;;S ’²£}¥´”4oÞI챞ž•jdiI²´$S©FT*ÙÒ’liI¢ÑŒuu5»ndg€^©«kƳ0EEÕ……5%%µX2Y×ÁÁÌÁÁ,0ÐÁÎÎÔÖÖÄÞÞÔȨ«)œÁÀãë˾páb}}3›Í--­++««ªâVWsãâ2ÙìÆêê&lMMM¢¥%‰B1´° ÙØ˜˜›š›ÚÚb y pz€Ãáåç³±ÿ²³+ÓÒʹÜVA45‰X"æƒ<)ŽŽfcãÞ&bP-/¯ÏϯNN®‘Gø@944ÔÍÍIææ$ÃZêOííªªF6»‘Íæâ‰›ÇóJJj±S A--¢…Åÿ'nþMÙÚÙ™j+üÙ@þ ;tŠÅj((`çå±óóÙØƒººfAŒõ\]-ÍÇŒñtt¤ØÛ›ÒhÆX˜Þ‰Äeeu¹¹Uùùÿ¿Ó–>‚ ¦¦ð%|`ÒÒ"ÚÚšØÚštüS[›àß”Mcu5·´´ŽÍæ>~œ÷Ë/5MMmøæ}mHXSŠ!•j¤¯¯¥Ø§€wÙà/3“™•U™ÍÊÍ­*(`77·#bjªïâbáâbñÑG¾ÎÎæ..&&ú½ßמ™ÉÌËcçæVååUååU±Ù\AÔÕÕ)..ááî«V¦Ó-ìíM¯^½2}zï÷ úmmÎ7-X/›ÒÒ:¬ßMii]zzEEE=–ÎC„DÒ•…%nllŒut Æ  ZØPgà}#Š «³³Y™™¬¬,fVV%›Ýˆ ‰¤ëînéêjåâbáìlîêj!—J1µµÍÙÙ¬ÒÒ:©\Œ–ÑÅÅ’N7wq±°±1¡Ó-Ì44Ô¥6¿téÒôéÓýüüzÉ;@Qµ– ]ÝjA¨”ÞMK EG§–@+1†âb.>b×®MžžTssCìQ2qƒçnÊÊêðºÔ‚Hºøð(,eƒuÀ¡RˆD5 )ð¾àr[ÓÓ˱®1YY¬ÜÜ*>_¨®®fooêînåîNus³tw·¢Rz¿/¯½  :/¯  ”—WU^^/‰ÕÕÕ¬­±¼nA§›;9™wg²žçÏŸ:t¨÷õ”@ VY©_Y©'©¹ºÖ·É·ýÒRC#£6Cú{ˆÅ„œc­ _òÎZZ4RS͈D”Fk²°à©©)çOm­NMyCƒH$S(žž4OO*ö[[¡·£áz¤±±%QŸ¸±ºš[QÁ‰þ“¸ù7ecˆ™²¶–ÃØ=t²3,‡—‘Q‘ž^‘‘Q‘ž^^ZZ‡ ‰¤ëáaåæfåînéîNuq±ÐÖÖè厖‹ÉÎfåäTåæV–•Õ£(ª¡¡nooF§›c¹ggs''ЦfÿVœ—W}ÿÚµ×zzZ‹ˆŒnj*‡ñ\R·ìÞ=eúô|Ixø~»Ý»§ö¾ñúzÞ™3Ož|¨®®¾páð%KFêô¾Ùw€uÔJO/ÏËcçåU%'—p8<ìô`0h †5ƒAóò¢)kÀ‘@ §”Âr7x⦼¼^,FÑÐP76ÖÆGIM)E¡*8Í <0pÔÖ6c‰ìÿALMõ½¼h †µ—ÍË‹fmmÜ˽ (ZVVŸ“S™›[…U¨),¬DD¢š­­©››¥‹‹náêjiggÚqŒ’êKJ*ŽŽ¾ï^–•yÙ²Q3gêéõI}ÙÖV¾£ã–Ÿ^î/üþû»gÏ>IIùJ^=58ÞéÓOž|„¢è¼yAkÖ„*+G#‰ÍnLO¯HO/OO¯HK+«®nÂë Ñéæ †õ A¶r)oÔK|¾°²RzJ)|À¶NgsÛÚšHºÊè/ ; ãrÛRSKSRJÓÒÊÓÓ+*+177”LÇXY‘{³ ±ņ&ååU¥§WäåU±X H²^ nA§[ÐhFêêý¸f‡H$¾råÕ©SÓÓ˽½­W®=v¬WŸf—˜LŽ¿ÿÎ7ÖûùÙâ óóÙ#G~wíÚZ{9î«©©í—_ž9r_,GF_½z´J%ØìF¬>4–¯ÉÏg£(jnnˆu«a0¬ét ™å•¨¦¦©²²¡²²‘Éä°X ÿþÇa³¹[‡B1°²2²´$YYQ©Ø2•jD¡B@dgô'(;›•’R–šZúúuYAA5Š¢ff>>6ÞÞÖ^^4ƒfnNêÍ.JKë°\LnnUzzEqq@ ’ê×@§[XY‘ûc¿™ÚÚçÏ??}úqIImx¸ÇªU£°ßôôò±c>{ö?;;SÉå#G~âºcÇ$¹ï±¹¹ý矟DG?‰D‘‘ÃW­M&«PŽ×ÔÔ–ÍÂ:×äå±³³YˆDÒÅN?,_ãìl®²…`:ÎŽ™b29<^;¶ŽÌ)¥llLÒ•tdg¨4±}ó¦"1±ëSPTT-ŠŒô¶c0hÞÞÖ½¨R_ÏËÌdbó(åæVåå±[‚1nÁ`а~12çQbýòË3‡7iÒ ¥KGyzR¶÷øøœÙ³çæ~k` -¹|ïÞ[—.%&%më£j&XŽæèÑhÆŒÀµkÃÌÌ úbGò"ˆŠŠj°K¸×Ö&Ð××rs³Âºn14oo--U/i$ˆª«¹L&‡Él¨¬l`±**8,§²²±®®[GK‹hiI¦RÉXw++²¥%™F3²´$jwÝ>ÐAv€Êáó…ii剉E‰‰Å¯_—ÖÖ6«©œœÌ}}m||lüüì\]-ßyXDyy}NNevveV3;»²¸¸F(hÓ鿨,Ú....–ŠJ]ï=«á§Ÿâcc_ŠDè¬YC–, ¶±QôÀ™?þHÞ¸ñ·ÒÒýRË33™ááûÿþ{ƒMßíÇk¿xñå‘#÷ZZø3f®YÖ_^ôîÔöô¤ug.0•‚M)õn•‰{ÙcP:ÈÎP \n[RRqRRÑË—E©©eííB2Y×ßß~Ð [??[oo©îÝÔÔÔ&™‹ÉÍ­ärÛ44Ô)®®–îîVXïM³h÷¹¹UGÞ¿víµ¾¾öÂ…ÃçÏ®¬ê³'N<ü駸םwtüÓ°aßL˜àý¿ÿ}Ø×1`9šèè{ÍÍí3gY½:ÔÜܰ¯w*w’5†ÓÓ˱z½’ek|}mûbÊ-ÅD,VCÇÊÄ¥¥u-Ø:ZZD‰šÄ¤S6†ööfïöÖ(dg(Š¢yy줤âÄÄ¢¤¤âÒÒ:55‚§'Íßß> À> Àþ~ omågdTàÕU±aJX¿ƒ†yof‹ËŒ‰yôäI¾½½éºuá¾ÊÞûÀÛ7o¦?x°¹ãŸvî¼vûö›§O?WÌTÍ--ü_}qôèý¦¦¶þ›£Á56¶`U“dÖÆëÑéæ`ìΠܰXœæf(p ?ì …*.®yö¬àåË¢ÄÄâ²²: uƒ6x°}@€ÃàÁv=*ÿÑq6%&“#ŠMMõÝܬ°D ƒa=PKÆt6SLÌ£ŒŒŠAƒl×­  uW…‚²;w^KJ*¾qc}Ç?åæV…„ì¹reõ!Ž ‹çß͇7mšÿ§ŸŽ‰<™5† u\\,úEáwÓØØ"ÙËïzƒ½K`ëHºx/‰ÑR¤þ>ÿ€þ²3ú\YYݳgÏžS7Mœøƒ¿¿Ý¶m­pýzêÊ•¿$'oW…Ê/ïyŽ'Uc8'§’Ïj»¸Xâkœœ(t@ À €ž€ì €îb29ññ9qq™ÏžðxíVVäÑ£ÝÂÃ=† s’Yù¥­M€çbrs«²³YÍÍí::šžžT<ãà@Ñׇª1ïH(ÿùç«“'¾yÃôó³[»6LE&cê¦ÐнãÆ16mÛÙ ííBŸík׆­X¢ÈÀº •£Ù°á{{3e¥L2k kh¨ÛÛ›áY×]cøðùÂÊÊF(p@dgtE ½zU‚u“yó¦‚@ øøX‡„¸…„¸y{[K%jk›_¿.Å~QÏÍ­**ªÆæ·öõµe0hØ8GG ‘?ª÷Vk+ÿÂ…§N=*+«WÁɘºiÈ]óæ [¹rtëlÙò{bbQ|ü…EÕXŽæûïãJKk'LðÞ²e¼ƒÃ{£Á‰Dâ‚‚Nk »¸XÐé~~vÆÆzÊŽTEuVà†ÉäðxPà2ÈÎËm}ð ûöí7 Ù\n›¹¹á¨Q®!!®ÁÁ.’S·ÔÔ4á|33™ÅŵX᪇ÕÓ“æáaeooÖzs¨>‡wúôã³gŸ67·Í™3láÂáý·ïÆ A;–/Yºtdë$%GD¾{w“§'Uau“XŒÞ¼™¶gÏß%%µ&xoÞ<ÎÑ‘¢ì TÎ[k 3Öææ†ÊSÕ ¢êj.“Éa2*+X¬†Š ‹Å©¬l¬«kÆÖÑÒ"ZYQ©d++2fleEÆþ£ÑŒuu•0ñ€ì €ÿW^^÷î›;w2_¾,DdèP§1c<‡ qpuµÄJ~þûE«"=½<#£¢ªªQM`ooæáAõô¤bI™÷m2…©¨à?žpñâ "Q}É’à¹sƒúû¡öõݱreÈ’%]egP ÚîñÕW“X`9š½{o×L˜à5ÎÉ r4’Yc˜DÒ¥ÓÍñ|³³9¤t»¯­MÀdr*+˜L,eÓÀbq°ôMk+[‡LÖµ²"S©F4š1•J¶´$ÓhFTª…b@E@vÞwèŋ»w3ïÝË,-­37'}ø¡÷xøûÛkkkTU5b‰üwo"QÍÙ›¨…æåEsw§Â¯²}-5µìС»÷ïg™›“V¬™1#p`ëññÙ¶fMØ¢EÁ]¯vüx¡CwRR¾Rå3 ËÑìÛw«¨¨&4Ô}óæq*×ÙGá5†±êTiiå|¾ÐÀ@ÛÕÕ’Á°vq± ÓÍ}|lúE•k$Uà¯O\TT-s"p[[ Å«wC¥Aâ ²3ðžjjj»};ãÞ½¬'Oò9ƒaîꮥ¥ñæÍ?¹˜œœÊ¦¦6É:¾ †5ŽQEïÝËÂ&c¢Ó-V­=iÒ TWÂÛ{Ûºuá Žèz5.·Õ×wÇ®]“g΢˜ÀÞ™XŒÞ¿Ÿµwï­ìlVh¨û¦Mc½¼hʪ?éNa//šŽŽêæéú‹Î&¯¨àˆDbä¿óIQ(††66&0ŸôÈÎÀû¥µ•ï^Ö_¥ÅÇgóx|ƒ6h…bP[Ûœž^ŽM«¤««éáA…Éq•›Œéĉ‡™™Ì#苇…¹cƒË/¯/7n³`Áð·®¹nݯùùì¿ÿÞ €¨zËÑìßûÍfXähÞTá””Òººfuu5GG Ö­†Á°4ÈÖÄD_Ù‘¨¾¾™Íæ––ÖIÎ'…¥o°u:Î'…ep¬­¡À ¼;ÈÎÀ{OÊÜ»—Åç ÍLM ZZøùùlÒ1*›Œ)&æ“É™thf_G%_XŽæàÁ;iiå#FÐ?ûl‚²ƒ8dÖ64Ôqq±€ÃŠÔØØ‚µù·ÓMcu5·¼¼^,F‘ÿŽ“ú7echkkbggfh¨­ìð@%@v 7o˜¿þú"!!§´´{Ÿ'ÕÜÝ­|}m½¼hX­ÍT¾¤¿+*ªùþû»×¯§êêj.Z4"2r¸©é{1RÃÕõó/¾˜8gÎÐ¸yó¥—/¿´°è—ÉÄÇó¾ýöfjjÙˆô­['øúBŽFþš›Û³²˜R5†õõµÜܬ\\,èt ƒæím£¥5†D ±X Ë—”Ôp¹mØ:ø8)¼¨ –Á²Ä€÷ dg` ¨­mNM-KN.~ð ;/Íç 14Ôöð ŽÇ¨ÚŽÜ IDAT6ÌÉÙÙÒ1*(%¥ô‡âîßϲ´$/[6jæÌ@=½0S7¹º~öå—ÍžÝ­ì Ÿ/ Ø9{öШ¨q}Xßyü8ï»ïn¾~]6b}Ë–ñƒÙ*;¢LªÆpf&³¥EºÆ°§' J¥(E[›@"eÓˆwºa29B¡['Õ±,1…b8ðêpdg _âñÚ32*RSËSSK_¿.+/¯'‚¢ˆ££Ù„ Þ‘‘Ã-, •&Mr2&ooë•+Gëõ¦Ïz”AäÀÛgÏ>MJÚ¦­­Ñ§õµÇóöìù;%¥Ôßß~Ë–ñÆ9);¢÷‚H$®¨àäåUaù¬Æ0òß²5¾¾¶ïIÏ5U†“Â;Úàœêê&웋¦&ÑÒ’„OþWºqp èë¿G nÀÙèZ[ùIIʼn‰Åééål6WM`cc¬¥¥QYÙÈå¶zyYOê1ˆB1Pv° SØdLÇ'de±ÂÃ=V­à ì ”ÆÇgÛêÕa‹wsýÚÚfÿ¯vúSkwGbbѾ}·ž>-ð÷·Š7|¸³²#zït]c˜N· Ó-èts覡":–%ÆÒ7……Õ<^;¶‰¤‹µù·Ó ÉÆÆ„F3‚j÷ÙPQèõëRü›CQQµP(6332ÄÑÑѬ¬¬þÅ‹B«ÁÑ‘2cFÀäÉ~VVde‡ ºÒÒÂÿõ×'O>¬¬l˜4iÐÒ¥£<=©ÊJɆ ûfæÌÀ5kº¿ÉêÕçss«ââ6õ]T –˜X´ÿí'Oòýýí£¢ÆNWvDï/.·5'§j ÷G-øäßøP©²²ºŠ ŽH$F:/KŒUºQvø€ Õ¢h^[ªD‚ŽŽæàÁvö †µµµÑ“'—/'§§—›™L›0uê` eÞ‚ÍæFGßÿý÷D@În`DõõÍ3Iý§±±[/KŒ×$Æ:ÝX[CM"€"Av”©¶¶ùõëÒôôòÄÄâ´´2.·MCCÝÇÇÿÜïäDA$!!÷Ê•äÛ·ß…¢Q£\§NüÁž0íˆê+,¬þᇸë×Sõô´.>þp(iñÿ&NüÞÏÏnÇŽI=Újöìã\nëëû(*%JL,:zôA\\&ähTÌÃD¢šƒ{»vq±ðò¢‘ɺʎt‹Ì²Äl6·¼¼¾µ•­ƒ•%Æ;ÚàkkcèB;È΀Bµ¶ò““K‹°Ï÷l6Alž×Žˆ0™œ‹_^¼ø²²²ÁÏÏöãGDøë)õ€nyõªôðá¸û÷³ììL×­ ˆðÕÔ„lš´iÓ~²³3Ù»wZ¶zñ¢ð㣯\Y=dˆc¦\IIÅÑÑ÷ãâ2¶_³r4*JªÆðë×¥µµÒ5†½½m X¿Ãç Y¬«ÉäTTpX¬‹Ãd60™¼º¡¡•J¦ÑŒ­¬ÈØØc Ò{Xß /€>W[ÛüêUIRRqrrIZZY{»PGGÓË‹æãcíëkëëk#5ÎE(ß¿Ÿuþü³„„\íO>ñŸ={#˜úÉɘ|}mÖ¯ÿ 4Ô~bíÌüù§ôõµ¢£çôtȈÃúúZ.,단TDrrñ‘#÷ãâ2ýüìÖ® s‡Ú´*¯1Œ †ÊË«BÄÜÜ«.Œåk Æp¿ÖØØÂb5TTp˜Ì‹ƒ=f±8l6W !¢¦FÀ†DQ©FVVd*ÕˆF3¢ÑŒ©T²¡¡Ž²Ã¨:È΀ü‰ÅhnnUrrqrrIrrIqq ‚ ööfƒÛùùÙùùÙº¸X‰2&Èή|ïÞ½,ww«µkÃ>üоÛ÷ÔÖvq±Ä:׸¸X¸¹YAW‹@$×Ô4UTÔc]l˜Ì†ŠŠz¬ß ^ÝÆÀ@›J5²¶6Ʋ6TªÖûÆÜÜîò dg@>êꚟ=+HL,NJ*ÎÎf "2Y×ßß> ÀÞßßÞê§§ÕÙ¶­­ü?þxuþüóôôr*Õhþü )S[XÀ,ý—Ûvòd¹sÏêëy“& Z±"ÄÍÍJÙAõŸ~Ëbq.^\ÞÓ Åb4<|¿££Ù‰óû .•“™É<|øÞ_¥¹¹Y®[9šþHªÆpzzy{»PCCÝÞÞ Ù 5†©²Äø,àEEÕÍͲg‡ê6¼· ;ïH,Fß¼©HL,NO/OJ*.-­#ÎÎæX:& ÀÁÖöíóòdg³ÎœyrýzjKKû¸qŒ9s†9ç±þ‚ÍnŒŽ~péR"€ÌD£);¨þäË/ÿÌȨ¸zuÍ;l—sóæ__¹¦š²²X?ü÷×_i®®–ë×CަëºÆ°‹‹náçg…Æ0©YÀËÊꪪ««¹ååõb1Š ˆ¦&ÑÒ’D¡bSJÁdR x€àr[_¾,¦Xzýº´¹¹ÝÐP;0БÁ 8øøØhw³©””Ò'þõWª±±Þ´i³g±·7ëÓàT>wíÚkccýU«FOŸÐý—àvïþ+!!çîÝMï¶ùĉߓɺçÎ-•oT*.;›õý÷XŽÆbùò)SC>w`ÀËÖtVc˜Á°677Tv˜ ÏñùÂÊÊFl)¬» ÖãF²,qÇɤ°R(†´ ÿ‚ì ¼Ö =)©81±¸°°Z$cõüýíœ(=1.Šÿþ;íäɇ¯^•úùÙ.^i ú ;Òø|ajj–ŽÁ&½ÖÒ"8Ø÷f†ÔªªÆS§ÇƾlnnŸ:uðüùÃÝÝ¡:‰ 9wîÙŒ}~•œŒ ›C&cê½K—’¶l¹T\¼ï[˜2%šHT]!Ǩú‘œœÊ|ðçŸ)NN”•+Gw–£IL,ºq#íë¯'+>B /2k h»ºZ2Ö..tº¹ $‹ßOXw|lÞݦ¼¼¾µ•­ƒu·ÁÆFYXâC¥H$]åÀAvAš›ÛSRJ’’J^½*yõª¤©©DÒ<ØvÐ ;;__Û.jú¾UJJéñã ·og˜š,\8|úô@SS}9zïÀÛÜ9thæôéRjož;÷ìÌ™'%%µ0“|Ý¿Ÿ=wî‰üüïÞùúzò$oÚ´Ÿ®^]ó>¿(¹¹UGÞÿóÏGGʪU2r4S¦}þ¼`ùòQÛ¶E(+H _<^{fæ[j {yÑtt :Éûënƒ÷¸Á»Û°Ù\l¼»Í¿C¥HXw*ÕHæä’€¾ÙÀû«ºº)1±èåË¢ÄÄ¢¬,–XŒ:9Qüüìì ²uv6ïåàm¡P|ëVzLÌ£¤¤b??Û¥KGë]‹UЮ]ýôÓEííÍž<ù ݹÜÖ“'ž;÷¬±±uΜa ‡Ú@ò•–V>nÜÁ/¾°±y{ íÎÌŸŠÉäܹóé{Þ•)/¯*:úþŸ¦ÐhF«V…Θˆ}³JL,š4é‚ aÅŠÑ_|ñ¡²#ò'³Æ°ººf„ Åe0¬ ²51À?ÚÛ…UU’Él¨“É ÅØ:xw›‡JÚÚšØÙ™B5údgï—¢¢š¤¤â/ ‹‹‹kˆD5Ã:0ÐaÈG{2Y>ý{[[ù—/'ÇÄ<*(¨9ÒeéÒ‘#Gº@¡>$£QQ—bc_bd„“'çϨªj ÀÞÝ*ߎ»\nÛ™3Ož|ØÚ*˜:uðâÅÁÎÎærlÈ‘P(^³æü©XjA555ggó  §ß~{©­­±`Áðùó‡Ã¯Í}§­Màè¸%&fÁ¸q^½iç³Ï.ß¹óæÉ“Ïa–YLvvå÷ßß½y3F3.+«“ü“šaéÒ‘0Äé}#³Æ°¡¡Ž‹‹Å;×^´èÌ­[éAAÎß|ó1nÑwÁÑÖ&øï4RÿÌ*UQÁ‰Ä‚hh¨ëác£ðY¥(úúï><üq¹mÐÍô/ @mm‚W¯J_¾,LJ*NN.áñÚ µ¼½múbxQ]]sLÌ£3g£(²páˆ%KFëÉ}/@^ÑÊ•¿Ü¹óï£RÉ+WŽž1#J6(€—×—ëÖ…/^Ü›Fêꚇ ûfùò >W`@nnÕ´iG9œ©“œ@@6l³iÓXe”Nfa}}-77+ l0”··–VW5†ýüvTV6‰jb15N^ýOAÿ"ˆêë›ÿ;—Íæ×45µaëHºøØ(‰¡R$kkã¾”úÃq7n¤nÚ4vÌOè¿ úÈΈövá«W%ÏŸ<}Z’RÊç ÍÌ °tÌ!Ž®®–}×Û¶¸¸æÐ¡»×®½66Ö_µjô¬YCà|×Þ.\¸ðÔãÇyS3D¢Zp°ËùóK•Ø{h̘AAN½ïÊqàÀí'>}ú?(¹{ñ¢ðã£eþ‰@@6mÉ,€áñÚ «ss«þÍ×Ȩ1ìéI“¼µ54´xx|ÐÐPWWW[µjôš5a0oÀ56¶àc£$»Û”—×c½V55‰––$|l>TŠF3êÍl ˜Í›/]¸ðE NNf[¶Œ7Žñž—'ª²3€~L ¥¤”>}šÿüyArrI{»ÐÜœ4l˜ãСNC†8:9Qú:€ü|öþý·oÞL37'mØðÁ´iþð©Tõµµ "#cž?/ E2W ÷ïG¹ºZ*8°÷Ó‚§´´ˆÇŽEö²ÖVþÈ‘ß æôý÷³äØ0eÊѤ¤¢Ž)H €lÙ2aíÚ0GTŸP(.,¬Æk ge±x¼vä¿ekø|Ñ’%g¤6TS#P©F_|1qâDeú @Äb5àɼ»Maa5v²!ÿÖ$Æ{ÜàÝmllŒ»Ùæ“O~|ú4A,)caAZ¿þ¼b:*²3€~¦©© «éûøq^VS$BÍìGŒ 8˜›*&ŒÔÔ²C‡îÞ¿Ÿekkº~}ø¤Iƒ`2¦~¡¹¹}֬㩩e¥fÑÐPŸ4iÐ?À—|Eøâ‹+iiå7n¬ë}S 9³gŸˆ]1|¸sï[ëï^½*8ñû®×!»v}¼`ÁpÅ„ú)@”—Wõæ 3#£âÍfV³¹¹@ ‰@:÷§®®&‰‡ súæ›)..PŒôV“KÖü[™¸±ºš[VV}oźÛàɼ»±ÔxäÀÀ¯ËËëñ@077\±bô¼yÃàç4 ‚ ;è°Ê¾åá//VÖ70ÐQÁ“é¼zU²wï­Çóœœ(kÖ„A^¦áñÚçÌ9ñêUi©AÔÔjjjIIÛ–ì{Ÿ;–püxÂë×;äÒÚÂ…§‹Šjââ6ÁU9wî‰û÷³!ÕÔÔXæG>°gÏ'sæ Ux€ ¿‹Ñ’’Ú{õª«Û‘¨Ž¢èüùã¢Æê(8B0 q8<&³Åâ”—×3™ìqE§ºº ÏÚP©FT*™J5¢ÑŒ¨T£-[~¤o÷@@(ƒ•+CçÎÖuq% ²3%£ÙÙ¬'OòŸ>Íñ¢°¹¹ÝÊŠ¤Š η/]J²µ5Y»6lÊ”Á2¿ž8qBñ±·jkÿòK‹Õª¦FPW' (*ýÿ=PM ÑÕ%’HzzêD¢««…Eÿ›ë!,,ÌÁÁAÙQô@\\fddLnî·r8Ú,VCpð·7ŽY¹rtï[ëŽÖÖV‡£˜}õŸ/ª¨àTVrÿý¯‘Åj`±¸õõ-Ø êêjD¢Ÿ/BôË/Ç~ôQ¯¦Íݧ££cddÔËF8Nkk«\ây7“'Ç”—¿åÌ'IwÆQãÇ»CMVÐGôô 8œv&³Éü'qÃbýó˜Ïv¶–£155X½:tâDw‘ˆ¯È˜ÀIÝ ;P-EE5XFæéÓüúz…bä<|¸ó°aζ¶&ÊŠª®®ù‡â~ùå™­­É¦McÇgtQc>ƒª 55-2y‚ºº>ж …Mbq‹HÔ,·ˆÅ<‘¨E,n‹•ù=GŽbcc§M›¦ì(z ¨¨føðÝ·nmôö¶–KƒÜ9q"áÑ£­ææ$¹4صêêꬬ,ìH^qmmKmmkMMKM ¯¶¶µ²’רØ6}ºÛðáòy @×ÌÌÌ<<€ü¹»»S(2ê ¦¥•w°;-˜™éED8Û@= xRwèÊP¾ôôòÄÄ⤤âgÏ êêš--É¡¡nß~;5 À^1߯ºP[Û¼wïß±±‰TªÑ‘#³?üл;É—~÷  ý13hcc¢¡¡^TT#¯ìÌêÕ¡—/'}þù§N-”KƒÝ1jÔ(…í ôk™™™òjJ.Yžw“’RŠ¥f‚–Q(cÃE54ÔmmMœœÌÌÌìíÍ) } Þ+ ý‰ÉäHgýÔÕÕD(««ôô4kk…$’½¿¿}Å €Lï(“ɉÏyü8ïåËÂêê&I78˜¾eËø#èJì##I ýòËÓï¿„Ÿ~:vÉ’`©js€Þ#ÕllLŠŠªåÕ –1:zΤIG.]Jš6Í_^ÍpoÞ0ÕÔÔ(CggŠ““¹““™½½™ƒƒ•jÔEÇR©¼¼žH$ ÿ nRS#`c9 ‚iP“¿¿=ƒaíèHÉÍÍFÄÃR3@ù ;P>_˜˜Xüðaî£G¹™™Luu5__Û9s†9ûùÙªTñüGr·m»ZZZ»hQðÊ•£õ”–ƒƒYa¡<ÇhøùÙ-Z4bÛ¶+Ç;[Y‘åØ2AI“|gÌP©»6RX¬¡P¤¡¡.ˆ45‰^^´€ûAƒl ²µ´„ûPQð® èsùùì‡s>Ìyþ¼°¥…ïâb1r¤Ë–-ãôô´”´ììÊíÛÿ|ú´`Ê¿ØØåJZÀ€çînõ×_iòmsëÖ ÷îemÙréܹ¥òmÓ0Õ§®N˜:u°¯¯­ŸŸ­››Ô”ýdg}‚Åjxð ûñã<¬¸/•jâzèÐÌáÃŒT´JK ÿûïïž8ñF3:~iHˆ«²#à½àáA=rä×.Çt­¶¶ÆÞ½Ó¦MûñÏ?S&O$¯fô Û¶E(;z ²3¹innÏ~ü8ïñã¼ÒÒ:íQ£\·n :¥dºðìYÁæÍ—ØlnTÔØ¥KGÉœ*Ð<=©b1š“Séçg'Çf‡ sZ°`Äÿþ÷G@€=•ÚÛ Œúdg½UZZŸŸýìY×îèH u9ÒeØ0'¸ÔQCCËÎ×cc§LñÛ¶-ÂÔT_Ùð~±µ514ÔÎÈ`Ê7;ƒ ȶm¥¦–-^|æúõur€*ƒx€wÑÞ.|ø0wûö«#F|;tè®ï¾»©­­ñÕW“’’¶=~üÙ®]‡‡{¨~jF,Fcb ²+%¥ôêÕ5‡ÏVµÔLAA6GrÇ](++[°`AgM)ŒÔ±¨^¿~M$ÿýw|ùµk×455322!H ‘H~øaqqq7wG  º¹&NGG'(((55µ'ϬSÝ9ÈÝóýA \]­²³YroYCC=:zNqqÍ®]7äÞx_ã%ß›½÷Lssó¦M›ìííuttœ·oßÞÖÖÖû .Ò>ÒG÷&¼YÉ÷v;;»yóæÕÔü§Ü8Ç‹ŠŠòöö600ð÷÷ß½{·PøÏ„>ÁÙÙýïôËãÆÃNß¹²ôð¨ÈMï_ ÷í‚‚OnðÉ­7 ;è.EÓÓ˽qØÙy˼y'sr*g̈ߒ“³ûøñÈY³†ô£áeeusçžøúëësç»}{£¿¿*ΤH&“·lÙÒÓ­®^½:iÒ¤¾ˆ§G¤‚Ç¢òõõýüóÏ×®]ÛÐЀ HccãÊ•+·oßîåå…­öìÙ³ÊÊJ‹õðáC±XøøøÞß¾ûèj‚OnÁ'7)Ï=è;•è&ãéù¿Õ«Ï³ÙÜ%KFÆÇoyýzÇÞ½Ó&Nô!“u•æ»(*ªùè£Ã_}}ûöˆ›7×»¹Y)>†ëׯS©T‡ƒ ÈÅ‹ét:Ç‹ÅÑÑÑnnnC‡Ç:RvÑßò¯¿þòõõÕÕÕµ´´üî»ï°…µµµzzz:::"‘hß¾}t:ÝÀÀ ((èåË—Ø óçÏ755¥Ñh›6mÂÆ„Ó§O»¹¹™™™}÷Ýwçγ··'‘H_~ùewö‹ÅyíÚ5 …²víÚöövÉàñ¨ÑÔÔ<{öìéÓ§¿ýöÛ3gΜ={VCCCæTWWGëyÞq§C† AÄÂÂ_ÿîÝ»NNNFFFß~û-‚ àîÝ»;wîtqqqttܹsçíÛ·;îECCCSS“Dúgêt@ennN¡P¢¢¢‚ 7nÜ`0ÚÚÚçÎCþÛ¶ãËÔ16IRqvqô¤Êlm`<ØAää’>jÿ›o¦H:Ë—ÿ"ˆúh]PÌ%m{ÿþ}›³gÏÊùäÒ¥Kè¿¿Æ_¾|yêÔ©øÊ »sõôíâäÄ^Ð'Ožt󵓹PòÒëì5’ºô:|rƒOn :‡û" 觸ÜÖë×_GEÅì”ì&S_߬ìÐä@$GGß³·Šˆ8\\\Ów;BºÑaÞ¼y‘‘‘UUUæææ/_¾DQôøñã åÊ•+,ëæÍ›4 AŽ}ü—ËÕÔÔ\¸paEEöᲺºEÑÓ§OŸ;wEуJ6hee…m8{öìÐÐÐÂÂÂôôtOOÏ;v`1Ïœ9“Ëå1”  IDATÆÄÄ 2mÚ4.—{üøqAjkk%#—¹_,ª>ø //ïÅ‹NNN;vìü ·uëVAvíÚ%uèRSS›šš¸\nAAÁǶkɳA©S§r8œ“'O"RWW'óLF»ñžÐñJAÿ{¥ß¹s‡J¥jii…‡‡ïÛ·¯¤¤?·íúhHÅ&sןھ}û<<<ÒÓÓ3227mÚÔÅæ’úô"Upß™Ž'*ëHž<;vìèæq“ùÞØÙaï£{“ä)‡tø};))‰L&£(Š}©®©‘¾õ?}úÔÜÜÛ6''ÇÂÂâõë×(Š644èêêÖÖÖJµ©€;úß›®³´‹“{A›››»ùÚ½õf×Ùk$uéIä>½ Ùw>¹Á'7¹ŸÃÏ=ÈÎд´²èè{}ôƒµõFkëÓ¦ý}/-­L$+;4¹©ªj˜;÷„µõÆ={þæó…oß ºó ™ÃáÐh4ƒ¿q{xxœ={_áçŸîúßÞÞžÝÜÜ,‰>|ˆ‚œ2eJ}}=Š¢t:½cƒ|>_]]¿\¹rÅÉÉ ‹9%%EQ>Ÿ/õXêîÌýbQ¥§§cëÄÆÆ:99IÞçð¨0b±8""B]]}Μ9R‡§¡¡1räH¼Kyg;•Ü6!!EQ¬ˆ€dØ[¶l±µµÅžò_úúúYYYøÊ®®®•••Øã¸¸8Ÿúúz ýû÷s8±XÜÔÔ$‰zs—г‹£'µPfƒR÷ßìÌúõ¿~üñ‘>ÝEBB޵õÆcÇâåØf7³3 ¸ä%Ï™.r.X´øÕÝÅš]¿'t¼RÐWºP(|ñâÅÎ;===ÕÕÕ/\¸€-ï¸m×GC*6™»îøÔ\\\®\¹‚­–••…?–¹¹¤>½Hœéxâ¡²Ž€äséþq“ùÞØÙæ}to’<åÞ!;óüùsSSS|ÛU«V}öÙg(Šž?><<\ªM…ݹY:{A»srvóµëúf×Åk$uéIä>½ ™OnðÉMîç0Œlü£©©íÆÔÍ›/~=vìÁ˜˜Ç..GÎMKÛ»bÕªPÃZMMisÈ×;oFÞWZZwýúºÍ›Ç©Âĺd2yéÒ¥™™™+V¬À–ùøøà+0Œ®[ÐÔÔÌËË;v¬ŸŸßÙ³g±…ÍÍÍÀÈÈAòòòŽ ²Ùl‘Häèèˆ-trrÂF#b``€ ÖUUò1/•/s¿gggì««+Þ¬TT˜ .$$$ùý÷ßQ•Ö„QäKfŽéäE:9ñwƒn¾v]ßìºxÞú®20.(øäŸÜpCv€÷ ^MÆÃã«V+-­›7oØíÛ_½ÚŽU“12ÒSvŒòÄ㵯]{aÑ¢Ó³f ‰‹Ûäãc£ìˆþQ^^öé§ŸbK¨Tªäl™™™]·ÐÚÚ:mÚ´¨¨¨”””ü[xûöí±cÇbíìì:6hnn®®®^TT„-,,,¤R©Ý ÿ€(s¿ìGAòòò°ÛXǨa±Xk׮ݷo_ppðöíÛ—-[†W¦èÑ“í¨ãHïƒnß¾ýÆ111fff7ÑÕÕ?~ff&~Ÿ655Å?p8œ/^´¶¶ŠÅâßÿ½¾¾~Ñ¢E'N¬¯¯ÇVÆFV3™Ì®ãkœH'G¯³C: í&ˆž<ÉëÓ½,]:ròd¿uë.””Ôö鎤(à’ÇH~4—y~J}¸|g¯É`P5k6ß*‚ a̘1øìÅ·íâht|7—ùÔ¬¬¬JJJ°Ç©©©ß|óM×›K0iÇéü`'O÷›Ì÷F™›÷ѽ©ãù/ EÑŸ~úi„ Ø?gÏž½sçN|†&Ax<Þž={$[>|xSSÓ“'Oâââ¤&ÐQä« 2_P¤“ó7èæk×ÅÍéò5zë»ÊÀ¸ à“|r“Ò'çpW]mŸ/|ü8oÇŽ«ÁÁßZZ®wqÙºxñ™_}ÞÓ—¨”ääâÀÀ¯}|¶=|˜£Èý"o]"‰Â¾þúëúúz ‹ëׯ£(º{÷n …rõêÕÊÊÊ[·n½uô2‡Ã!·nÝâñxØ/Ò)))sæÌa2ÿ™…ê‡~lÐÁÁù÷+ShhhQQQFF†‡‡6Ÿ"ñ£Dg12÷‹E’ŸŸŸ˜˜èìì¼mÛ6¿cØXဋ/fK踬R)—ËÅþ¹víÚ©S§bS«®^½ºµµU[[ûòåË555'NœÐÖÖnmm­©©AäÔ©SØÃ_&<¶“'O644tgGOja'Þ`ÿÙ„¢èøñ·ný½¯÷ÒÖ&?þ``à×UUrxìÎÈ&Å\ò’½²ežŸhç§v®Jlêú=¡ã•" Š¢‘‘‘t:ý¯¿þ*,,|úôé!CÖ¯_ý©ã¶2FgÏ¢ãæ2ƒÜ¾};ƒÁÈÈÈÈÈÈ Z²dI›+ì"UäÈ&™'*ëH¾ôÝ?n2ßenÞG÷&©S‘˜Q;!!!""‚F£á/kcc£‹‹ËÈ‘#oݺ•——wåÊ   ¶¶6ÉÆW®\éææ"¹#EÞ¹$Ÿˆ¤Î^Юï¿=zíd.”lªû¯‘Â.(…l‚OnðÉMò±¼Îa¨;À{„Ãá]¹òjÙ²Ÿ]\>³´\?zôÞ]»n<{VÐ×UWTX,>}ú±Ý¦É“0™ïý­ß9âííMFøçŸZZZÖ××óùü;wÚÛÛëëë:ô×_íú¢èÁƒ­­­üñÇ™3g?ß‹P(Ü·oŸ“““žžÞСC±_GQ­¯¯Ÿ;w®‰‰‰¥¥å† Z[[ÑžÜã;î—B¡`QÅÄÄØÚÚššš®Y³ÿHÇçó%£:{ö¬––Vnn.¾$11QMMíòåËí®³ ‚áÇëëëwö“'O:îE$cÿär¹ ,022211Yºt)ÇCQ466ÖÑÑQSSÓÕÕõÚµkØš»ví"“ÉŽŽŽX_ÉWç­±I>îâèI-”yd$õ÷ìÌþý·v*`GõõÍ#G~7tè®êjn/›êNvF1—¼Ô÷±Žç'*ëô“̋ˌÏa29¤ ¼¿þz²¿¿½¶öÛK?$Ë–ýÜÚÊ]9t¨£²Ãô€¯¯-™¬{ófÚš5a}½/ Rl슈ˆÃ ž¾pa™–|"€2Ágú16›——ùäI~[›ÀË‹6cÆÿµwßMÜíÀ/{ï” ²ÕZPPAYA­ µ®WmÕjkû¾U_«¿ª¯­VkkÇku¶bm…ªŠ‚÷`¯€€ì=ÂLHr¿?®½7ÍÀ!—„çóW¹»ï]ž»\ž|¿ÏwRt´‹‹ÑM#Š¢‡ÝÚ·ïjp°Ë?,V±òÆ NOOoÍš5D·BY‰=zcóR(dÃçÂ…çrÈÎ B§›œ<¹jáÂCï¿ÿË‘#ËÔÕᦈ')PXʇpB)8à#1z1 #›P>¹¹Õéééé…ùù5 9$Ä5,Ì#$ÄÕÆF⤒*Åêûè£_oÝ*ú쳘U«¦i™SöÑ%@y©@ìÝ¿_÷ãíÛÿ–[–ùÁƒ²üãx@€Ã‰+45Õ‡º¸¬F61F6 C 5² €¡‚‘M(«^FFqzzÁ;%ÕÕm¦¦º³g{~òÉìÀ@'-­!P1/_6­Zuª¥¥ëôéw§Ow%º9€á›2e¼¹¹þåËY›6EÈg‹o¾éxñ⇋™?ÿÇ_]c` %Ÿí‚ì ­¹¹ëúõüôô‚û÷K{{9NNæ11¾aaîþþtù»ULéé~ïà`zýú'ÖÖc·÷ªL&EDx&'gË-;ƒ ˆ‡‡õÅ‹.XpxáÂÃçέ;5Ô 8 ;€"ÂÇ.Ô’HÈ”)Ž[¶D……yØÛÝ4Âãñ÷î½zèЭuëfüûß‘T*¤«PóçO<}ú~vv•Ü6:~¼YBº… ¿óÎÑŸ^en®/·M @q ð=z™–VpãFÁ«W­ºº´Ù³=ׯŸänEuvö®[wæÑ£òÿþwñ[oùÝ€ÌøûÛ{{Ûž>ùÝwïÈs»ãÆ™^¼øá‚‡Âÿ=yr¥¯¯ürC€`73³455/==¿©©ËØX'4Ôý³Ïb‚ƒ]´µ5ˆn‚*/o^¹ò$‹Õwþüûþþt¢›±eËÞܶíÂŽs䜛¶±1LKÛ¸aÃÙ¹sØ»7vÑ¢7ä¹uŒe€ÝÝì[·ŠRSsoÝ*êêêwp08{¶§ŸŸ=”ܽ{ÌÕ«vv6?~™™.ÑÍïæÍ›#YŠ"íí …¤¯¯&«VIÃá³Ù<]]6M¸¶6Ž™Lä´_˜®.n?ÏÈHB!¾1r6ožÿ®]ÉçÏ?]³&DΛÖÑÑ8qbÅ¡C·6m:Ÿ•Uµ{÷|55Êk—ª««“CÛ€ èïï§Ñh²Z2g „è'dg«úúŽ+Wr““³_¼x…”Ù´)bölO[[#¢›¦~üñæÞ½W—- üÏæ*r¡™Ÿ~úi¨‹P(:Tª1•j¢¦fL¥S©Æ$µ§'›ÅÊ…ŠG"QÔÕí45]h´ñýý/;:®ÉmÓ8]Ý þþâùocf¶ŠD¢ô÷¿ìï/e³k„OTKtu§èèLF>—ÛÉå¶q¹í\nöEÙDµJ>h4µyó|ýõÑêÕÁ$’¼“S$iýú™ú›6¯«ëøöÛE¦¦¯I3™Lù´ ¨Yegººººººd²*Æ88›Q„>H(ŠÕÆ&³!99;99‡ÉlÐÒRŸ9Ó=4Ô=4Ô ÊHo`€·eKbB“={b—,™BtsFEѪª6&³!7·šÉl,)i¨¨hàÑhjÎÎÎÎæ^^¶..ÎÎæò)MŠÍמ˜ø,=½€ËåMŸîí={¶§žž¦¶.ÄÊêŸGŽ,‰ñ‘ÿ¦1uuW¯æ&'g?^©¡¡äíåMÈÔõ½%% Lfã«W­Lf“ÙP]ÝÆç£zzštº‰½½±³³¹³³…½½±««¥ººJýâRRÒ0sæW?ýôÈH/¢Ú“S½bÅ .—wàÀ¢ÐPw¢š€±²3ŒEŸ>­HNÎÁªüêéiΚåÁ`ø9ijð5O©µ¶v¯\y²¤¤áèÑåÁÁ.D7gÈš›»Š‹ëKJþLÇTV6³Xý yüx3, ãåeëìlamm(ÏA(Šff–&$<½q£°³³/ €71*ʋؤ!áÙ\kk÷­[E))9·oQ©”©S££½##½ˆ-Åáp+*Z°L žµéïPS£XY8;[`Éggswwkå®]µví/ÅÅõ·nm&p Y{{ϦMçSSó–/sÛ6”À(ì 2†uCHO/¸u«¨®®ÃÂB?*Ê›Áðö÷§CA™á©ªj]ºôXOûçŸßõð°&º9¯×ÓÃ.(¨Å:Å`é˜ÎÎ^‰dggäìláåeƒ}…7ÎTšz£áÉ“òä䜫Wsëë;&L°‰‹›1ÁÚÚÆQœì ®­­çæÍB¡4MD„—‚ä>¸\~mm{UUkII“ÙðêUkQQ]KK7‚ úúZÎÎæ..X¾ÆÂÙÙÂÎÎHþ…†Él˜1ã«£G—GEyÛ’óçŸîÚ•¤¥¥¾oß‚éÓ]‰m Tdgžö­[Eéé7nvtô:9™ÇÄøDGû¸¸XÝ4å–›[½lÙ133½3gV››ëÝ1ØlnI Ö/¦ëÑÐØÈBÄÔT×ÕÕKǸ¸XÐé¦zz²©50lååÍ/>¿|9»´´‘N7™?ß_CT³3¸ööž7 SRr22ŠÉdÒ´i.ÑÑÞáátu ~gEIE£ÓM‡D¹¸Xjh(î¨Õ«O—•5ݸ±‰ð:Ímm=Ÿ~ùüù§Ó¦9oß>ÇÍÍ’Øö@Å@v€a±ú®_ÏOIɹwÉfsè †OX˜‡½½1ÑMS—/goØp68ØåÈ‘e 2ŒÏGKK±¯»X:¦¶¶Ëåki©{xX»¸Xàé}}-¢û§ÆFVbâÓ„„gLfƒ™™.ƒáàåeKt»ÄSäì ®££7=½@(M3{öÂpƒÀ‡DýÕ˦±´´±¯ƒ ‰²³3vv¶ÀÆÙ¹¹Y)N¾ «>süøŠðð D·A$3“¹sgRIIÃÛoOÞ´)Ba§€Òì ÃÑÐЙ’’ƒM½D&“BB\££½§Ow31Ñ!ºiªãÔ©{Û·_ZºtÊ矿EÔ 0¼|/“Ù€õŽÁÊ÷jhP]\,±1#X:F>å{‡¤µµûâÅXu[˜ßØØ€€Âû N)²3¸ÎÎÞ´´?Ó4$iòäqaaóæù+Á¥@tHTqq}ss¢`C¢–/?ÞÒÒ•’ò±âŒÉJO/رãRCCçªUÓ6lUœd”dg‚²²¦¤¤éé…ùù5ZZêááÂÂ<¦MsVœ^ªÏGwì¸têÔ½;ç¾ûî4ynº¥¥»¨¨N |o ‹ÕG&“ÍË÷ZYU2æµzzØW¯æ¦¤äܹSB¥’##½ Ÿà`e™ÐG¹²38¼Ý;%<ßÏÏžÁð™;×Oé2¶½¯^ýÙ¹FpH”º:•N7Á΂¿ [Ðhjrh“ÙöõÞ½±‹½!‡ÍI©¿àر;ÞÔÕ¥­_?ãí·'+Hÿ>()ÈÎðzUU­W®ä^¹’“•U¥££1}º[dä„éÓÝà÷ÒÑÀfs?ø >--ÿÀ·çÏÕmõöròók„Ê÷"‚÷ÀÒ1–ï•žà¬Ø<?$Ä566 4Ô]é¾1*iv××ÇÉÌ,MNξz5—Íæbiš˜_å30À+/oE¥’­­ å3$jûö‹—.½ÈÌÜJÈ,ïƒhmíþá‡ññµµÕW¯Y¾<>0<@¢ÊÊ–+WrRRrrrª µgÏöŒŠòž:ÕIYú (#«oåÊ“ùù5ǯ r’íÊñò½X§€ÜÜj¬|¯±±Ž»»þ ÓÕÕRѾ‚ÏGïß/MHxšž^Èbõ9ÅÆ„…y(k.eÏÎàð4Mjj^ÿ–¦a0|³¸õP56vbiMlHTII}S“ø!Q¶¶F#LÇbõî™?ßçι²h¾Œuw³ûíñÁƒ7zz8o¿=yýú 7Ô ²3Ã&NO/¨ªj¥ÓM¢¢¼ÃÂÜ¿Z‡ ¨­m_¼ø§îîþøøÕ®®#ERù^MMuOÏ?Ë÷bé,# ÁY±'Nt`0|"#½¬¬ ˆn×H©Lv×ß?pï399ûÚµ¼Þ^Ž¿?Áða0¼•4ð$…õ²)+k”á¨øø‡[·&¦¥mùÅa”°X}§Ne;v‡Íæ.]:eÕªi 2K=”dg@AQôéÓŠä䜴´üêê¶qãLçÍóSÀɆUX~~íÒ¥?™˜èÆÇ¿7Œo­’Ê÷ª«S]]½|ïΊjLŒ¯““9Ñí’ÕËÎàØlîÝ»%ÉÉÙׯç÷ô°±4Mt´·ªö³UVÖØÛ+<$ÊÞÞØÍÍêµzx<þ¬YßXZêÇǯ–Oû‡§·—ÿððáÛÍͬ×åËgÎt‡ä>^ ²3`LÓ2ׯçÕÔ´;:šÍ™ã IùËÍ­~ûí#ŽŽæ?ÿ¼ÊÐP[šEðò½X:¦¤¤A¨|/6ªB)JÆH£±±31ñ6+¶¹¹~ll@ll€Jª ggpxš&--¿»›íéiæ>~nBtÓF6$ê¯^6 Lf6ÀPš!QOŸVÌ›÷ßo¾y{áÂI5_Z¼+WrNŸ¾ÿäI¹­­ÑÒ¥o¾ýöd¥+ y‚ì ‹ð¤ÌµkyµµíÎÎ †7$eˆòìYÅ’%Ç&OwôèrIã$•ï57×Ã&Q¾×98˜ªXINÁY± µçÎõc0¼U{œÝXÈÎà8î;%éé©©y­­Ýص護üL‰nšüˆ‰zù²‰ÇããC¢ì쌱ÜÉÉüÀ´_~¹ëÖfe4TYÙröì£_}ÔÙÙèôî»ÓBCÝgjp(È΀1„ÏGŸ=«HNÎIMÍ­«û³TGX˜‡½½1ÑM»®_Ï_³æçyóü¾þz!…BÆž”T¾WGGÃÍÍÊËËëãâb¡ªs™c³b'&>{ð ŒFS‹ˆ˜ \³bĘÊÎàx<þóç•ÉÉ9II/ZZþLÓÌ›ç?nÜJÓàxuuø@EÁ!QVV--=š}F§›¸ºZšš*ÁdX]]ýüñüçŸ3KJÜܬÞ~{Ò¼yþЕ‚ ;T—Ë¿}»(99ûöíâ¶¶ž€:ƒá3{¶§­­ÑMëRRrÖ¯?³tià’%o`|±ò½uu<MmÂ(ß+½Þµky‰‰ÏîÝcòxüðð ±±S§:£„ªò›Ùž¦¹|9«¹¹ KÓÌ™ãçèhFtÓ†‰ÊÌ,½|9ËØX»µµA}}-{{c¼¶”¬f‰%½üí·ÇW®är8Ü× &†…yŒ…¬+^ ²3@eáI™[·ŠÚÛ{±¤LDÄeé¯Â^½je2Ÿ¦¤ähuw÷ ð(òøñf^^6øW,kkC*•LtcåÇãߺU”œœž^ØÓÓ?}º[t´÷¬YªÚ3hpc<;ƒÃÓ4ÉÉYMM¦iT¬ô°ýç?IçÎ=NNÞÐ×7 :$JMâà`*4$JSSèVÿ6¢-1ñÙµky 9,ÌcÉ’)AAN0â Ë ;T Ÿ>^™’’såJN]]‡——mt´wt´÷X(·©˜Ä–ï%‘H(Š:9™ÇÄø¨XùÞ!Áfžr%§±‘…%Ux)AvF>$3%%»±‘…¥iÂÂ<¼¼l‰naúûfÍúÚØX'!a½`WpHV˦°°®§‡ ˆ¹¹v©Á »¸Xš™?$ª¶¶=1ñYbâ³—/›ÍæÏ`0|Ææp6@v¨E_¼xuùrvJJNCC§ŸŸ]T”OT” _’3Iå{ÍÌt]\,±9­ss«OžÌüâ‹·V¬"º½Äxù²é·ßž\¾œU]Ýæèh¶pᤘ_ˆU dg$ÁÓ4W®ä44tÚÛ‡†z0Þ“&#ºi¨¨h?ðÎ;oìØ1gðW ÍUUÕúêU+ò÷!QØôÞNNæD}@òä IDAT ‰zþ¼21ñYJJNkk·››ö£ô“ÆÈÎ冢hVVUrrvJJNmm»¯¯]LŒ/ƒácee@tÓÆ‡[\,¦|¯¶¶†»»øò½»w§>|kïÞ¸%K¦ÚvTUµ&$þá÷ß¿3w®ŸüÛO”––îK—þœÛØX'&ÆWågÅ ÈÎ Éÿ2¿qãï))9iiŸØÙhê½×‰²·7þ«<¹…¹¹žŒš/Çò¤"%%çêÕÜÆÆN''óèhïðð žžÖcäÆ ÈÎe‚ýbœ˜øìêÕ\¼ÐoT”—¥%ô”ý¶ÜPRÒ›[SYÙÂápÉd’£#6=й——­”å{QݾýÒ/¿Ü;©™învjꟳbkjªÍëàïOÇ'bAvfx°4ÍÅ‹/ÊË›­­ ÃÃÇDš†Íæ2ßQ©”¤¤ 2/\ÕÙÙ‹u ćDUUµ¡(*:$ÊÑÑl”ÎkìS/%%'55¯¶¶ÝÒÒ`Ö,Y³<a¦'@Å@v(EŸ>­HNιz5·¡¡f_%­­Ý……bÊ÷ÚÙaÕ4±tÌ0Ê÷¢(ºmÛgÏ>:ztyxøÐÆ (ÁY±I$RT”ƒá3mš‹†|•’ dgFKÓ\º”õòe“••AD„—j÷Õ*)iˆŠúvþü€}ûâF{[¢C¢ÊË›¸\¾šÅÊÊ¿NŽÒ¨W¯ZÓÓ ÒÓ =zI&“&Mæé#yÕÙ ¸ð¤Ljjn]]Çĉ †OxøHÊÈ€`ù^¬ƒ V2ÆÄDÇÍÍ +ßëâbA§›èéiŽdC|>ºqãï/>?ujUHˆ«Œš¯pðÑvii½½llVìÙ³=GxôÆ ÈÎÈ –¦¹|9»´´ÑÒÒ`æL·°0éÓÝTo¢úŒŒâ¥KmÛÆX»6DΛUTT×Ý-fH”±½ýˆ†_á:ÓÓ ÒÒò33K¹\¾¿?}Ö,™3Ý¡ˆ Ô ;ž”¹v-¯¶¶ÝÙÙ"..€ÁðaY1NRù^--uk¬˜–ŽÁË÷ʄʧfðpÅgÅŽ‹›åeh%† ²32‡¥i°rÔFFÚ3f¸1>*–¦ùé§;»v%:µ*,̃è¶ÈoHTo/çÎ’´´ü›7 [Zº­¬ ¦Ow›>Ý5(ÈYO&Ã=€@v( ü[îõëy55펎fsæøÂŒ6ÃóÚò½x:Flù^6cÓ¦ó.<;yrÕô骖š)+kúý÷'II/jjÚ'L°‰‹›£íd²3£“œœýôi…¡¡öÌ™n †OHˆ«Ì+¶bË–„ ž_¾ü‘««%ÑmÆbõWV6ãC¢^½j-)©g³¹‚C¢°Ä‡‡µ¶¶Æ06ñêUë½{Ìôô‚»wKxžž6S§:O›æüÆãUãýTdgñž<)ONÎIK˯®n7ÎtÞ;uJ¥R3¯^µ&&þ9+6n2¾?„«lAvFªªZÓÒ ’“³Ÿ=«Ô×× uW4 ‡Ã‹;ÔÞÞ“’ò±â(U\\ßÕÕŒxH‹Õw÷.óöíâÛ·‹:ÍÌtCB\CB\LMuGm‡0R„©ªjMJʺ|9»  ÖÔT7:Ú›Áð™4iœª–®”!¡ò½Lfcgg/‚ ØÝ<^¾×ÁÁ„¨I=Pݼ9!!áéÉ“+gÌp#¤ ²%8+¶‰‰ƒáàåeKt»Tdg䩺ºíúõ|,M£§§¦Üiš––îÈÈ¿ÿ¾VSSÆEyå…'ܱ!Qzzštº Ö¹»ÈK9$ª¨¨þöí¢ŒŒâ'O*x..AANAANo¼áCŸEÙ o¬””ìK—^¼xQe` åã;eÊx˜fX’¾>N^ž˜ò½ÆÆ:îîVØ«Ø`%Ù–Œ6<5sâÄÊ™3•;5#8+¶¾¾æ¼yþª=ý"€ì !jjÚ¯]ËÃÒ4ºº´Y³< Ÿà`¥›¶¹²²%&æ{WWËøøÕJ×xQÒ‰rw·ÖÑ‘8$ŠÇãÔ޻Ǽ{—ùäI9›Íµ·7ž:Õý¤ ŸÀÙ '¬ääìÄÄg¹¹Õ&&:sæøÁ·\±„Ê÷2™ 55í<_SSÝÓóÏò½X:fTKÆ Š¢ÿþwÂùóÊšÁgž{·„B!GFz)é7UeÙbÕÕu\½š‹§i‚ƒ]BCÝ£¢¼e>?ôèÉÎ®Š‹;êþãKUï#†Ëå×Ö¶WUµâÝ'ñ!QúúZxY1lH”‰$|X¬þGÊ23Kïß/-.nPS£øûÛ:½ñÆx??{MˆÝdgÀ(kmí¾xñÏñ ZZêááââ&¾ù¦#ô”ÁH*ßK¡Ç7Ã&QÂ~µ±1TŠƒ¶{wÊ‘#·ÿûßÅsçúÝ–!œ»¯âꮌC$”dgD}}Ç•+¹é锩«Sƒ‚œ¢£½##½†W³VÎ23™K–{çÉ{öÄÝyU]ÝÆç ‰²·7vuµÌ2·´tß¿_š™YúðaYyy³šÅÛÛnòäq“'›4ÉAñË÷ª²3`T`ãARRrîÜ)¡PÈQQ^ †Ï´i.c½ëAc#+7·¯SQÑÜÕÕO"‘œœ+ß+C?üp㫯®~÷Ý;±±D·eðùÂRRrššXAAN±±aaÐÛŸQ4mm=7o¦¤äܾ]D¥R¦NuŽŽöŽˆðd"8wîÑÆç·oY³&„è¶€ÃáVT´à©,kÓß?0ȨînvVÖ+lèSvvÕÀÏÞÞxâD‡I“ÆMœèµÏ€ÑÙ Køx{÷˜<?$Ä5:Ú{öì c¶ú`[[OAA­hù^ss=//[¬|¯‹‹…ƒƒ©®®Ò¢Ã‡oñEò·ß.Z°`"Ñm‘ViiãùóO±Y±'Nt`0|¢¢¼,- ˆnטÙ…ÕÞÞsãFaJJNFF1…BÆÒ4ááöòuèЭݻSö왿|y Ñm!žÐ¨W¯Z‹ŠêZZº!Qxiymmõ'O*>|ùðaYqq=ŸÒé&“&9øûÓèÎÎJÑ—P.2 8¤««Ìv=T¾WGGÃÍÍÊËËVÑÊ÷ÊЯ¿>Ú´éüçŸÏ[¹r*Ñmy½ÊÊ–?þx†ÍŠMâãëädNt»‚@vF¦iÈdÒ´i. ›¦9vìÎÎIÊri’?ÉC¢htº)Ö¹ÆÆÆÅ꯭mÏʪÊÍ­f³¹::>>ö'Òýüèþþöcí³%ÇIL|våJn{{ÏXëzÀãñËÊšrs«…Ê÷ÒhjøœÖŠ\¾W†._Î^¿þÌG…mÜNt[ÓÜÜ•””…•¦67× ˆ €îúв3J¤££7=½KÓH¤à`ì/yôhÆ®]—¿øâ­+‚ˆn‹À‡DýÕ˦QhH”……>‡ÃíéaWT´Õñù(ÖtÒ$‡‰||ì z:0<ÃñäIyrrNjjn]]‡££ÙÂ…“bb|mmˆn×(’¾|¯µµ!•ªš]¾QýöÛ´ ÂwðÖ­¢+N¼ûî´Ï>‹!°mƒèêêOJÊJHxúâÅ+­¹sa¾0ÅræÌ«ÿs÷î”yóüÜÝ­ðg,˜djªKDÓ€´:;{ÓÒþLÓðù¨ŸŸ=ƒá3w®Ÿ‰‰ÑMCùê«Ô~HWº’X BtHTqq}ss‚ zzZÖÖú4šZw7»¡¡³««_Mâæf5q¢ƒ——Í”)Ž66†D7PCÐÐÐyéRÖÅ‹ÏóòjLMu Ÿ¹s}ýýé¢vªIå{í쌜-¼¼l”º|ïðdf–.Xp($ÄõøñØôº—¿óÎÑ·Þòÿê«8E ƒ¾>NJJNJJÎÝ»%T*%"æ SP7þ~îÜ#551¿·óx<]]Íœœ]cç,Sv,Vßõëù7nÞ¸QÈáp±4Íœ9¾„ç×°éä¾ýv‘P‚æá×78Ø…¨†)©ÎÎÞW¯þ×¹¥©©¦­Mãóù½<jd¤íëkÿÆã [ ðZ¯×ÙÙ{åJîÅ‹Ï>|©££áõÖ[þ*ö-WRù^SS]WWK,ãâbA§›*T}9{÷ÝSׯç#ÉÕÕü·ßÞ¯¯ïŒ=8}ºÛÁƒK'„fÅŸ0uª3¦FtÓ€x¾œ?ÿ Ø©«S–,yó‹/Þ’s“ÀÈõõq23K““³¯^Íe³ÿLÓÄÄøš™–¦ùæ›k¤íÜ9ç½÷‚±g˜Ì†¨¨ïLLtîÞý2€#40À+/oƇDÕ—–6r8\ !‘H|>ª®N¥ÓMüüìBB\'Oon®Gt“ÅÙ ‘àxMMµðpÕéz ©|¯¶¶†»»6F KǨ^ùÞa«©iãÏù|A*•bd¤Åç#®®–gμ§¥ VAêêê›>Ý-:Ú{Ö,xŸúúîÀJˆJNþÈߟ.ßYêï¸w™œœšš×ß?€¥i B¾œÿøãÍÝ»S6oŽøøãYMM]ááß47w¡(úŸÿÌ]µjšüÛ£ò;™ÌÆââú§O+JJjjÚúú°©©QÌÍõÆ3õ÷§Ï˜áæëk£MŒq+Z[»ÕÔ(zzš¯}%>+öÝ»%|>Šu=˜6ÍE¾hùÞÚÚv.—¯¡Auq±Så{GbÿþÔƒo ð±?©T2…B9}zÕhŒèèè•~üüÚßríZ^]]G@Áð‰Žö¶°€·R™|þùåcÇîr¹<¡ç-- ž=Û®hƒæÀðàišk×òz{9þþtÇÁð–ó…÷çŸïoÛöÇÊ•Ó22Š_½jà!¢©©öðágöë;:;{ËË›ïÝ+}ú´¢¼¼¹¡¡³¯ƒýKSSÝÂBßÕÕbÒ¤q“'suµ„>ÆÈÎŒ µË—ÿøãYK–L‘ô>½¿4!á©à¬ØÊØõEQ< #X¾—L&9:šcY//[Õ.ß+s<_ßímm½‚O’É$2™|ðàÙN¯óìYÅ»ïþœœ¼að:Ó‚³bc¥©çÌñƒ ”J*/¯föìo„žTS£¬];ýÓO£i=l6÷îÝ’ääìë×ó{zØXšFš¤*‡Ã]¼øèþý ét“‘4àäÉ̯¿Níéac©A¨TÊ¢E“öí[0’Õ‚áéë¸{·äÎ’‚‚Úòòæ¶¶ìÖ”DBtuižž6“';Ðé&nnV Rg Q}ÉÉÙ6œe³¹þþôääD_€MÀtõjn}}Ç„ 6qq##½¬¬FeVì––n™ßZ‰-ß‹ ˆ½½1V¸KÇŒ©ò½2wõjî{ï{µ “Iß|óöÂ…“d²¡_~y°mÛ<ºukÔÌ}à¬ØööƱ±ÑÑ>0+¶  ÜSQÑ,ôäÍ››ÝÜ, i’õtw³ kssk„Ê÷š˜è¸¹Y9;[`½c\]-¥Æ¤ûããÇåB_f0$‚ ¤'V„‡ÿË‚ }}œ?>—’’]“èt“¶áÿ¬‚dd¤ã ³b«˜o¾¹þý÷邃›ÍîÞý”À&¹áp¸—§¥\ºô¢µµKÓ¼õ–¿ƒƒ©àË>úèìÅ‹Y\.D"­^=mÛ¶˜aôÑžYëêêÏË«ÉÉ©~þ¼";»º®®Auuªš¥¯Ãç£jj:ÝÔÕÕÂÎÎØÙÙÜÅÅÂÉÉ\SS]Êõ—•5ÅÄ|ÿñdzV¬ý gÕª“þþô•+§Â+rÙ•ÕÙÙûÞ{§>|‰£VS#ôѬ¥KßÄ»˜˜èÌ™ãàåe;z-a³¹'NÜ=pàz_E‘¬¬ÿH_ ²¿«#T¾WKKÝÃÃÊ÷ÊÇË—MÓ¦í½VÉdAÇ3ݱcîÌ™n#ÙDUUë²eÇ^¾láñþ÷åüæÍMtº >+¶º:uÎߨغ ”¦B*+[÷àa¦¦FÞ¸1âÃC‰m3ÿüyerrNRÒ‹––?Ó4sçúoÆfsÝÝ·â5e©T²““ù©S«ì쌥_ÿõëù«VMÍàâãWϘ1¢«U,V_nnMnnunnMQQÝË—Í|>ŸJ%ëêÒH$Rww?‡Ã£RÉÖÖ†vvÆØ6ööÆ®®–’ætOIÉY³æ4‚,- v숉Žö,tåéùmm=&&º[¶D.X0 FCUQM%% K—þÔØÈÂÕc µ{{Ù|>:c†Û¼yþ³fyŒêÏA<ÿܹÇûö]íèèÅ“Dçέ•TGVRù^uuª««%ö›–Žò½òôÿwáÌ™B±D"‘,,ôvîœ+t/; w^ýs_G°ß„šÕÛÛ¦¢¢¥³³7(Èyî\¿ˆˆ ººcw:ó± 4tQQý_%'H…„Æ,6›{ûvQJJÎ]]lº»»Õ™3÷ïYÔÔÈ4šÆáÃK¥Ì§tuõÏšõÍ«W- YlO@ …lkktçΫ,¸\~mm;“Ù€ÿSZÚ€¢¦®¯¯I¡ØìÖÖAôõµìíñ |HÔ×__;xð‡Ã#“I(ЏºZìÚõV` #‚ ½nnXN™Œ˜šê}òÉìE‹&ÃÏF dgTеkyëןárùB_§1|0sݺÒOˆ3l7nîØq©²²Aþejj”O?^»6AE«ªÚoªDË÷b·PP2†@½½/¯Ïz{9ø3T*ECƒòñdzV­š6Â슢‡ÝúòË+Bâó…¿,éèжl‰Œ‰ñ…2cÄÑ£»w§p¹< ñò²MMýÑ-Äãp¸w¤ä<{VQ]ÝÆåþíB¥†×­›±eK¤4ß™±ú÷¿üòàÚµ< Z‚  yÛ6ö!”‹Õ_\\‡ÝTäæVÔöör(’©©žŽB!uw³:y<¾šÅÁÁ´««¿¡¡¿MÁ2wN»vÍëíå0ßákÆÒ7ãÆ™nÞÁ`Ȳ>€ìŒJAQtÏž+‡ÝB3"ÔÕ)‹¿¹{÷[£ÚŒ¢¢ºÏ>»øàA™èï“ ÅÏÏÎÇÇ®¸¸¾¤¤¾©© A]]š³³…››¥««%öÀؾ+Šøø‡[¶$`¨T Šòÿñ©ÿú×,CCí®¹·—óñÇç®\Éä*””´aâD‡n(‹ÆF–¿ÿN>¥RÉ;wÎ]¹r*Ñ-Šb`€çæ¶­·—-ö¿d29 €þÓOÿ~J즦®„„'§O߯­m§R)‚÷´´Ô>ü?Ia€rà1™ ……uÅÅõuEEuÍÍ]B²°Ð35ÕÓÔ¤æäÔ°ÙBKaÍ<=­óók…ÆÁa76¾¾öÛ·ÇLž}Zqþü“„„g(Šb]i¨TÊ;ïLÞ»7NíЧ¹¹«¨¨®°°¾¨¨®°°¶°°~wÂXFëbóÊÈΨˆÆÆÎeËŽÖ ò]7U9î‰÷¾ùæ›Í¼ 4šZYÙ>˜jG)deUEE}‹ ˆ££ÙÈKÿâîß/[µêdw7[t4“CC­ÜÜÏaÿØqöìÃM›Î:%$¬#º-@|òÉo‰‰ÏÄ×Å‘H$ …ôÅó—-{s¨ëohè'm^øÓO§L˜`&“MIHHÈב‘!ƒvŒ1ÝÝœ÷ß¿¾j•WHˆ=ÑmQ>îîîff#:Y š››eÕYáñеkSûú¸xZ+DŽ¢~ ÃçóñÇS§Ú®Zå­®>ä.¢(Šäæ6ݸQ‘Ý8a‚ÙæÍoÈ¢ù`ÈäÉÔ:ô|ðÇҠѨsæ8GDŒFÔ #?kŠ€*úÔ¿ ùc³«¿úÊFì¿tu5„ž!‘H††Z²2`oïèëëöòeKYYSYYsiiSgg?‚ T*™J%³Ù¼¿wÑ"‘Húί]muuµ¬ZQ= oâÄî}ûji©ËjÝÝì  í   Ò/bcc`mm «H£³³³¦¦F&«²±±Ñׇùņ&4ôÕòå3ut„¯]`p2Yžžž­­­LV%+ÍÍ] àêèh`Éb …Œ_´µÕ±Ž T*E[[ÝÜÜÐÊj8§ž§§Ç;ïLoié¹x1[CÃÌÑÑT{†@ž‘|óf3…Bæóÿ×'‹L&««‹Þ·àÿ%©«SÙl.Š¢ ÉÆÆÐÍÍÂÅÅÜÙÙÌÉÉc¢Èê¬NLvÆÔîE”ÌìÙ¿e¦¦È¸q»jkë).®/-m,)©Çªñ±Xækx<~}}Ÿ4aÖÔÔ$»BTÇ'ŸDËv…¦¦ˆƒƒøL¢âáxO===ˆ½¡Ú³'ÎÒR®ù8 HCCCÑ‚ÖÔÔt÷n¹–_555us£Ës‹@椉äW¯:¹\>™LºϘ›ë¹ºZº»[9;[Ðhjï¿ÿ •J¦PÈl6A]]Ú„ ÖîîÖîîVîîV..–baƒÏ0*ŒŒ´ß|ÓñÍ7ñgZ[»‹‹˜Ì&³nh’@j ÖÖkÖc389™ëêÒðݸQèèhîæfåéiåîníîn —&£ ¾$916Ö t t|ýKFÙ—_ÆJúWh¨{h¨»<ÀL(D‚ì ‘ ;@¤QÌΔ••‘H$±QUUµbÅ E—,Y¢££3zÍ¡AöÛ…¬¬,*•š€?Ÿ””¤®®ž——‡ýÙÓÓ³yófoooI“&}ùå—\.Öq#‰#«=}-‰TVV&·ÍX =)Íé#åjã„N§/[¶¬¹¹Yð•===›6mòööÖÕÕ8qâž={°àÄ–urršÕ(""‰'ø‚!µ\úCàÉœòÞo¿ý&ö2˜=’–#¯ ³¡~TAÐŽå[„¸ï‘f™SÞHüŽWp»úúúÑÑÑR6^l˜ÁYPa£˜100ø÷¿ÿ=Ô¥.]º4wîܺºº³gÏŽFÃF¶ ¾¾¾[·nݰaCGG‚ ëÖ­Û±cÇ„ éêê xüøñÞ½{_¼x±eË–øøøY³fñx¼á·Ôÿlwª¼¼ÜÄÄD¶ë’`!4ª«Å¦¦¦æÔ©S,ËÏÏ Tä¯à|úôé¾}ûž?þé§Ÿž={6,,ŒÇãa/¨¬¬ÌÉÉÁWÛÞÞ~÷î]Á %&&þþûï2o?mÊxsæÌÁ®{<@¿ zxxÈ|w)õG•ÊPÞ¸\ùè}|ã?LJw§F•òFòàw¼øvëêêîܹÃçó—,Y"©µRÞmÂYPY¨€ÆÆÆÛ·o£²VZZŠm0ˆ¨¨¨ÞÞ^i^I¬AZˆíŠ¢l6ÛÓÓsõêÕ(Š®]»ÖßߟÃá`¯Ù¸qãÔ©S¹\.¾Tww7N?räˆè&^{4)--ñ> f6ŒÞÖóóóóóóG¸’QŠêQ…‡ ‘Ÿøj…Þ2}9¹*–IDAT>Ÿ?mÚ´íÛ·cJ ÎcÇŽaˆ‡‡oݺÿïéÓ§#""ðu"²fÍ##£úúúa´\ú^àÉ*fnß¾ÝØØ8òõÈRž¬Z+dð0êæFõZ-“x“ÉUWΔ:nåðñ“íÙ1z-‡H¤,‘<ȯÐvkjjéììÛZ¡ýfpÖˆRºû €$Cî;sùòekkëöövAÎ;çììÜÓÓÃçó<èææ¦««;eʔ۷oc÷阒’âëë«¥¥eii¹wï^ìÉ––mmmMMÍ7ÞxA 䯞„7oÞ´³³ËÌÌ» ‰D:yò¤›››©©éÞ½{Ïœ9ãàà ¯¯ÿÙgŸa/Ø´i“¹¹¹™™Ù¦M›¦L™òí·ß"ÒÖÖF&“7n܈ Ç344¼rå ‚ ÿøÇ?LLLlll6nÜØßß/ÔlÍ(ŠnܸÑÇǧ¥¥EpQWW?}úôÉ“'¿üòËS§N>}ZMM [*>>~ûöí ? ÚÚÚ›7o>{öì0ŽÛÞ,lýIII...fff6l`³Ù¯Ý_'''ü•––æèèhhhøå—_âo™Ð&$mWˆ=Pˆ¸°<&;vì°³³355]¶lþ”èR‚$''{yyÑh´qãÆ9sA.—+vq<„x<Þþýûuuu?~Œ½@ôB¤8#S‰DZ»v-öˆ„àÜ´iS||<ög\\ÜùóçÑ¿z8'&&ÆÆþmRÒþóŸ®®®Ø]šÐ¶D/i7ÅF!xxƒá 6¬Zµ {ÜÝÝ­¥¥•••%)$^r$éìÙ³nnnFFF_}õ‚ ‚U’‘eZâvôãVÒA–t$y¡½³ü E»(efˆdFò w¼B°M`c¦Dïi….ªˆH˜ õ …³ dS5Rþb¼lÙ²åË—744˜››?~üEÑ£Gš™™]¸p¡®®îÊ•+666‚ˆvýÀ°X,uuõ•+WÖÔÔ`×ý¦¦&EOž{öŒF£õôô (ºxñâ™3g¾|ù277×ÓÓsç΂-ÁÊðù|<5ƒµßÜ–-[ùâ‹/ðg°OŽææf¡ûðáC##£a7A²³³»þNÒ›…­mÖ¬YL&óÑ£GŽŽŽ;wî”rÅÆ‚ ÑÑÑ,ë?þÀ¸ØMHÚî äÙwFô@¡âÂFð˜ìܹÓÃÃ#777//oòäÉ7n”´Tww·††Æ‘#GêëëOœ8A¥R»»»÷ïß/vq<„8 xZYYYaoè;…Jq F&"òëÍÓ§O PÉÁyÿþ}ssslÙââb ‹¬¬,E;::´´´°Ô¤àOÁL&SSSóÔ©SèßOgÑÆKÚMÑÃ(Ô¤Ñ _RHˆ 9Áõ#ÛÞÞ~ìØ1AZ[[…6'ö ½ EåÛãâV†Lé?¾%IG^l\a‹ ~YFÅE»Ð>Ž^0C$+c$cDïxQ g±Xeeeo½õV@@*ážV´ïŒP˜¡pÖˆ}gPÃÉδ··ÛØØxyyá Ó§Oã/øùçŸÏΰÙ좢¢îînwçÎüâ>þü¶¶6T\v&77wyñ⊢Gè1öWWW|œEzzºÏ³gÏttt8οþõ¯­[·ª©©µ··ïß¿?22[–B¡àí.\pttl öxóæÍ‚”””àûŽï†ÏçÏ™3‡B¡,Y²DðâŸ1‚)v…8yfgD*.l÷ÂÅÅåÂ… Ø ñÇ¢Kµµµ©©©}ýõ×ííí|>¿««‹ÇãIZ!gggÑÓJì;…Jq Fæ0nÑ>|hbb‚/»~ýúO?ýEÑøøø°°0Áuâ¾ÿþ{==½ªª*|xöìÙø²ŽŽŽ|>îܹGEÿþe{Àãñ‚ƒƒ±°àÛx±»)é0 ½À“sÝ<ìñ#z¥Z·nÝúõë›››ÕÕÕ«««Q ×@IPh§ð\<"òEBÒ!4zA‹Ê½ZÄ-öXVLi²ôÇp¸ÂžÁrˆ„¢]h££ÌÉÊɨä;ÞA‚\ôžV4;#fƒ¯…³ ä†3gSuuõÁƒCCC?ùäìkkkÁB¡¯¯oÁ‚›6mzñâÅ¡C‡°'¯]».ilüªØ¥õIÁö¹½½ýÑ£Gd29222))‰Édúùù͘1#==ýîÝ»QQQ‚˜››S(”òòrlñ—/_Z[[ ¶“œœ|äÈ‘ß~ûíöíÛ¢»PWW·aÆýû÷O›6mÇŽkÖ¬immÅþµxñâÏ?ÿ¯„¿hÑ¢sçÎíÝ»wÑ¢EC=nƒ}³0Ø¥A&“iee%åþJ"¶PŽÐ&yRˆ=P¢aƒ=++«ÊÊJì™ìììÝ»wKZª¯¯Ïç'$$´µµ­ZµŠÁ`´µµ‰]\0„ètºèi5È;5ˆÁO.E>ŒE>‚ ‹/Þµkœ‚ôôôìÛ·Op AAA]]]™™™ééé’æ˜ “ɧNºÿþO?ý„=#¶ñbw‘|ðAàAà½V\\Üŋϟ?„ºÅˆ†„4!G&KüДò©@Ð"·£·ˆ¸ƒ,ý1Äž—&„9DƒD;F‚"YV‘<ȯ$RÞÓik8kJO0U#Í/Æ</44ôóÏ?okk³°°¸|ù2Š¢{öì133»téR}}}jjêkëδ··“H¤ÔÔÔžžlpЋ/–,YR[[‹mEl®ZÒ‚¨}g6lØ‹M8yòä>øEÑ„„¬sfzzºŽŽŽ‡‡¾§ï¼óÎÌ™3ËËËóòò<<<¶oß.©U;vìpvvîëëÜ>ŸÌãñPåp8^^^‹-ÂþÛÙÙéââ2}úôk×®•””lݺA3336›=Ôã†í¦èä‚’Þ,¼×Oiié“'Oœœœ°ŠýÒì/>²÷رc’¸ØMHÚî äÖwFìBÅ…Ðûîåå•—————øÞ{ïIZª¯¯F£%&&677ÿôÓO4­¯¯Oìâ‚!ôý÷ß žVãÆÃ6-úN¡¯;W‹ LMMMFFÆœ9slllð7 ÎàààÔÔT&“yáÂÀÀÀþþ~Á•¯[·ÎÍÍmúôéBEþþ{ÑáDZ{ìOÑÆKÚM±ç¬|On}g ðdxѾ3\.×ÌÌÌÜÜ«‚„J¾Š ¹ÁwPhsb‘|‚•cˆ[Ù^0¥ÿø–þWØç¸à[#ý!’O0C$+]$~Ç+t•Ɖ½§ºÛ»ƒpÖˆ‚¾3¨Œ!ggþûßÿz{{cÝ;/^¼hiiÙÖÖÆápvíÚåàà ££3eÊ”_ýuðì Š¢022²µµ=tèТE‹ ±‚/IyÑÍÌÌP)²3,kÅŠ†††ÆÆÆ«W¯ÆêþvttP©T¬zYOOººúæÍ›ñ µµµ-]ºÔØØØÒÒòŸÿüg__Ÿ¤Võõõ9;;oݺUpNŸ>­¡¡!X’æÉ“'d2911û³»»û“O>ñôô¤ÑhãÇß¶m[ppðÂ… ‡tÜðÝ%éÍÂÖvüøq{{{“?üë<9øþ éèè rÑ¿ØmBÒv!·ìŒØ…Š ÁcÒßß¿qãF+++}}ýE‹µ··cÏ‹ ¶ßÿ}üøñêêê®®®IIIbçp8‚!Äår÷ïßïè設­=eÊì‡TÜ;…úŽ ®ý{ÀØÚÚ.^¼XèCN---/¾øŸæ_yFF‚ ØH@ôï·M‚÷a|>?,, ?h¢—´›b£|OnÙ<F4;ƒ¢èÚµk555Y,–àkDCbØ!‡oh¨‡H†A‹Êñ;-Ä­l/˜Ò|K ņàç¸à[#ý!’O0C$+]$~Ç+t•$zO+ÍÝ&œ5¢ ;€Ê ¡—¹¦¦¦Â±>é•••999¡. @‡óâÅ lö¾Ñ#‡wGì&†±]¬C¯‡‡ÇH#«¨ŠOV'«˜ÉÈÈpww733ázÀmÛ¶­²²òìٳ؟ õ %« Edo2¹êÂä² fˆd@8kŠ€JtÀÿ¨««vjÆŽþþþººº“'Ož;wŽè¶0˜áTJMOOoÍš5òß„¶ Æ8< äñãÇ+W®ì ¥P!A F!!Á ”œ5E0*#› Ù#›€2‚ñ @5@$0Tp¿€Ê€¾3D‚ì ‘ ;@$ÈÎ ²3D‚ì ‘¨¢OeddȽˆgjj*“õ@TBÝ † ¹¹.˜@@$P:$Eñ?Øl6‹Å"°5ÑÐÐÐÓÓÉ ªÁðŒ<3ØÜÜ,“– %=== ‘¬Åb±ÙlYµ€áH`¨F~ÖÁß²3@Î î ‘ ;@$ÈÎ ²3Dúm<Ê…FšIEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMNodeFilter_8hpp__incl.md50000644000151400015140000000004011653571065017274 00000000000000be208b73bebce465753f4a55138dbac6XQilla-2.3.0/docs/dom3-api/inherit_graph_36.png0000644000151400015140000000314511653571066016042 00000000000000‰PNG  IHDR(kCoGbKGDÿÿÿ ½§“IDATxœíšmHSmǯã^&Liº©%boƒh•A%hh$"Yº"ªE -*ýZ³‚I/Dô¡¤¢Ô‘45S©/«˜2¢—Ö&aLJ³šbí蜮Îý|8pžÓ™;ÎÕSt?÷ïÓ}®ûþŸ]×ýß®s8gBØõ§ ü'_ñ„øŠ'ÄW<‘ ŽOŸ>ÝÝÝýGR!ü 6›(ôÕårõõõeffþÆ”?ÅÐÐГ'OA¡¯™™iµZKJ„_€Õjݾ}» H®¯xB|Åâ+ž_ñ„øŠ'xúÚÓÓ#•J›››¹H{{»\.w¹\@QÔ¢E‹/<òòò(Šêïïg°>´´4ƒÁ0::*’C?EQ¿¬¤Y‚§¯+W®<~üxYYÙØØŒþ™6"ñµ££#%%…¦ihjjZ¼xñää$ÊÊJµZ˜˜XYYØ^ôðáÃÔÔT»Ýn6›SSS ÷MV@gg§N§S(éééðíÛ·iåüvÇËår‹ÅR__îܹ††‹Å"“ɸôz½ÕjåZqKKKqqñ¬6¢¨Ü»wO¤ ŽàÙµk×€F£ µ€¿u‡cV¹ Ñëõz½Í„Á`سgÏðð°Z­~úô)<þ|QQÑ»wïœNgFF†Édr»Ý——÷èÑ£êêê¥K—:N—˵fÍšŠŠŠP*¿ß}õêUÇSWW'•Jý~MMÍ´ò±±±ëׯYL&œ9s†€¾¾>FÓÓÓêbbb>}ún·›]À*Aðùóçqqqⵇ3;ãÖùý~/nß¾ìc„¾Ò4=oÞtèPUUBèæÍ›¹¹¹ˆç\¾†ª=œÙ·Nœ_é+BèÔ©S‰ddd„‹( ~'P*•lrSSSì¬Ëå >O° !äp8Š‹‹çÌ™“}ÿþ}¹J¥²««K¡Pܽ{÷ßšÜn·Ýn_¸p!Ã0………×®]C³÷õÖ­[«V­¯=œÙ·Nœi}ð¾ihhèòåË999ååå\P¥Rq•Ó4ͽd`/lÉÉÉläÅ‹gÏž ¥úòå Ã0ÍÍÍ^¯·¤¤¤  Àëõ†’‡âãÇeee555ëÖ­3›ÍF£QpŸ’••511áp8l6[aaálw!tåÊ•üü|ñÚÙYÀ¿'˜‘øÊ0̾}ûJKK›ššŸojjJ&“ÅÄÄ„’߸qC0FFNWRRåååjµº´´”ŸD")**2«W¯NLLÔ8:::̃üðáCWW×–-[Þ¾}{äÈ‘pj5ë÷ûÑG‚à÷N¾téÒòåËÙÑÖÖ–””äõzB>ŸoïÞ½ñññsçÎÝ¿ÿää$¿Û|ýúµ¢¢"99Y©TîØ±ƒ¦i6¬b{Ë‚ är¹V«moo‘ó?‚[,–èèèׯ_s9?{ö,**ª¥¥ñ:ªÝn€ÚÚZv ðúpð.ñçÏŸ¿sçNþ5H¼öàÙ@ ••Ž\œiû0%ÈxÛ¶m@Þ¿þE°ï_>bû\âñOˆ¯xB|Åâ+ž_ñ„øŠ'ÄW XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMNotation__inherit__graph.png0000644000151400015140000001037611653571066023312 00000000000000‰PNG  IHDR¥u w¶¢bKGDÿÿÿ ½§“³IDATxœí{T×·ÇO @”7D´/‚ZµEÁTÔ* ÄT¬eIÄg­ Ú^%Km-¢P*Ô€u¥Z|A EVQAAˆ¶.Dô§H@¼I „Dò˜ûÇéš;‚ÁZ².g>³ÏÞ{ö™oæÌdò †a€ ô]ɰBê¤ÞhAêT]œ®]»vðàÁ»’‚¯¯ïÞ½{ß覓Þ%%%L&óWEò¯PUU5vìX]^Z¼x1…Binn†L&“èÐÜÜL¡Pt¬mHÎo Zz*++…Bakk+—Ëíêêš9s¦D"CÝÝÝ|ðAMMMbbbmmíž={Μ9³`Á•Jž>>·oßdîï LàõF·ÈÈÈuëÖµ··ÛÙÙݾ}CCCŸ>}ÚØØ8sæÌÝ»w?|ø°xñâ«W¯²ÙlÆÆF@0{öìØØXmQ===&&&G(ž¿­­­°°ÐÑÑ:kÎý{žÉdÂK‡7ò.õ‹Åt:ÝËË‹ÍfãFwww¡PÛÅÅÅÓ§O‡{¡±±ðɓ'óù|8úÇàmÍ(‘HdddtäȱX¬V«»»»U*•¶p­³ºÞUUUÖÖÖxìæÍ›÷ìÙƒaXVVÖ‚ ˆ9ñFjjê˜1cž>}ŠëÝ××ghhxïÞ=˜“Ï绺ºº¹¹ýòË/ø†N:5ç>ø¤0}éaØþýû ;::p F#.'p/ôõõÁQ@ ™G3 ð7n„……™ššÎ›7ïòå˃„kCSï³gÏz{{ö½½}qqq¿ãÇ/Z´-//wuuU«ÕÁÁÁØ@z«T*??¿… 655ÁýöìÙ3€L&ƒ9i4Ú¨Q£êëëñ ݽ{:8÷ÁÑ]ïwy½öìÙ³´´´€€€;wâFkkk|‹Åâ[·nA»‘‘ÀÑÑñÉ“'ÐR__ÿí·ßj‹’Édjµ:''G$EEE-[¶L$i ×(çÒ¥Ka7""bÿþýøÕ8@*•&&&â–¹sçvww߸q£¸¸888xÀ´\.÷æÍ›™™™ÐbggghhØÒÒ»=rrrš8q"ñjÿþýûƒï±wƒ./ ]Žo•JpàÀ‘HdooŸŸŸíÛ¶m ƒïdfÏž½eËâY-!!ÁËËK Ÿ 6h‹’Éd4ÇãuvvfffÒh4™L¦-|ó7þ~¬¼¼<((ˆN§K$8ú×_Mž<ÙÏϯ¨¨¨©©‰Ïç{xxøøøÈårŒpønÚ´iÊ”) ÏÙïø†?~^'Ânxx¸¿¿KK‹@ ðððØ·o_jjª­­m^^žP(,**rqqΚs£@zXÏ;6mÚ4¸Jçææ:88ˆD" úººÖ¯_?vìX++«èèh©TJÔ[.—ÇÆÆ:::ZXX¬Y³F,C»f,ãý÷ß766vww¿téÒ áÄMÛÄúøñã#""ˆ§ ÃzzzvîÜ9uêÔÑ£G{xxŒ€×Ÿ«×ª†##[}W1L\¸p—¸ÿÿy$$$ÌŸ?_U‘ü+0 b—<£©7Zz£©7Zz£©7ZŒ@½V¯^}èÐ!‰DBtËå'**jÉ’%7n˜|Ù²e?üðƒH$Ò¥µZÝÕÕ¥£ƒ……Ett´Î³|†¦weeeXXXww7 ´´tíÚµr¹ T*9NHHHHH‡ÃQ*•piª««[µjU}}=—Ë]µjUppð¡C‡ðCM3 n"**jáÂ…áááW®\¨TªÉ«ß +!…BY¾|ù­[·`·¸¸822’ø ¶zõêââbØ?~yy9¾b_»vÍÏϘÉd:;;=zTótOOÏ÷ßÄd2?Þ××·iÓ&ÀŠ+ CUUÕ† CCCÏž= :g¡™ À`0JJJÖ­[·|ùòóçÏë*¡éýñÇ{{{§§§‹Åâôôôo¾ù†F£x<žP(ÌÈÈ8zôh]]—Ë…þÙÙÙ»wïnhh¨¨¨8tèPJJʳgϲ²²à¨f”\.g³ÙÁÁÁçÏŸ_»víáÇår9Ç0ÜÒÒ266V³­ NokkôôôˆD"WW×~®®®OŸ>…í©S§Êd2¸¤K¥Òºº:Ÿ×v™ÁîÝ»kkkÿý÷~yRSS;;;9NbbbMM͹sç~úé'ŸÏôööîÛ·oÒ¤IYYY111'NœH$D‡ÁSAû7ÒÓÓY,VFF<ð†Ä×ó­[·ÖÕÕÅÆÆ¹»»CcQQÑöíÛmmm]\\X,Vuõߟ;EGGϘ1£´´ô‹/¾pqqyï½÷âãã=<<´E) Ãd2™±±q```AA‰‰Iaaá€á¦¦¦K—.Õl¿ ?øúúÂ%½ªªÊÓÓs̘1ýüétzttô±cÇ^¼x•JåÕ«W·nÝêàààââ²~ýz|Í€ŸýôÓS§N=z7¶··‡††â]SSSØpvvtttÐéth™0a„ ´E™››§¤¤ðx<.—ëææ>{ölmáºÓÚÚêèè‹7n\ss³··7Ñ¡¹¹ÙÍÍ ïΟ??)))**Js1Ç ©¨¨HJJÚ¾};´ˆÅbµZ 7prrêìì$†P©ÔÖÖÖ#GŽÈd²I“& R𠩬­­a*gÿC>¾_¼x‘››ëíí "ˆ……EVVVYYYYYYAA>˲²²joo‡–ææf|AÖŒzõê•Z­f³ÙK–,ùú믻»»µ…ë†aùùùøã±NŸ>͹\~îܹY³fáOOÏÞÞ^@pçιs瘖B¡ÄÇÇß»wï·ß~ƒ–±cÇ…BØmkkƒÚà¼zõŠÍf¯^½:33óË/¿¤æARQ(Ýç®ÉÐôÆ0ìðáÃ+V¬Ø»wommmee%´Ï›7ïĉ---»víÊËË#F-\¸ðçŸ~üøñãÇSSS;::´EQ(”¸¸¸ŠŠ ©TªP(¨Tª‰‰‰¶p©TZXX¨ÙH$‘Hôò分†½{÷ …•+W¡uëÖ‰Å⯾úªºººµµõúõë111ÖÖÖÄwMpIONNž2eŠ¥¥¥¶½áàà“ »T*•Á`üøãB¡ðñãÇ'Ož €C2™  P(”J%•Jíë냗8½½½DœARýC†¶,äååI$’5kÖP©Ô;v$''{zzš››GEE¥¥¥mذB¡øúú²X¬—/_âQr¹<..N.—Ï™3‡ÅbA»f”±±ñž={222^¼xáèè˜`ll¬-\"‘9rž¶‰mÀ–-[`ÃÖÖÖËË+33?ÅŒ=:33“Ëår8œ¶¶6&“iddDœ)ƒÁ¸téRHHÈà;dÙ²eׯ_¿sçìnß¾=--mãÆFFFŸ|òIDD„¡¡¡§§ghhèåË—ÍÌÌbbb<8jÔ¨ððpÿ]»vñx<ܘY3Õ”ÒÆkÏ«¡P(ä÷F ãÂ… øò62ï·hƒÔ-H½Ñ‚Ô-H½Ñ‚Ô-H½Ñ‚Ô-úß_«­­Å?`& ùû1¤ þ~ •ç“@Èó7Zz£©7Zz£ÅÿíOkE\ÁÁIEND®B`‚XQilla-2.3.0/docs/dom3-api/inherit_graph_32.png0000644000151400015140000000701011653571066016031 00000000000000‰PNG  IHDR“(´€4bKGDÿÿÿ ½§“ ½IDATxœí}PTåÇŸeady –]—0 @L*T”R £IV[HlŒñJ¬¯ æÐmjttHjTDVÀÉ ÁB V¶LÞØ]p_–Ý}îϽ§ã¾^m]y>Ãç<çüžó;¿óÝïy?P „ƒÁ`, +s'€Á`0÷ v. cy`çÂ`0–v. cyXëŒçåå?Þ,©`0;wîär¹æÎâ¿444äçç›;‹™Nmm-yT×¹ÄbñÕ«W.\ø¦„ÁÜCEEEZZš¹³ø›¡¡¡³gÏòxålW¯JÊË[]åååÓY_ª@z‹ˆˆøî»ï½EFFªÕêááá­[·BRU§,ïL“„Áú?ÉÎEv­V‘FÁ’%KO! …——×áÇQì²eËvìØAL---%úœ˜˜ JOO‡¾ÿþû¡¡¡*•ÊàrwîÜ1˜¤Îö6æ\ëׯwvv–H$úQ £¹¹™˜¹¡¡ÁÓÓÓ`oCCC€¡¡!ã5›.æu®¾¾Ûûö]¼¸ÀÃcÓ›o~ùèÒ ˜¦s™P…1½::Š”t†õë—_~a0¨î€ááa•jllD&‚”Ád2Ñ ãèè(N¿uë–NŸÛ¶mgÄrE"‘\.—ÉdÝÝÝo¿ýöK/½!”Éd4míÚµGܼySÿ˜+..N&“:u €Ä‡ÚÙÙiooäÈx¯Løá6›mkkSXXØÛÛ«Ÿ‰\.ÿóÏ?7lØššJLfÙ!„IIIQQQ===íííAAA¹¹¹D'NœðôôD?´?›œœœR ¨[kxX~øpÃë¯Îber8²X™È³O炆TaLoMMMÎÎÎ&œË fàÌ“ÄÃt®‘‘‘Ù³gçææþþþÄákmmí¼yóPríííB??¿ÊÊJ4õÊ•+İ~”T*µ±±ùì³ÏFFF´Z­\.×h4ÆÂñÎÕÔÔäêêJÄ~ðÁÛ·o‡=z4&&F§O­VO¥Rß}÷]娨Øp¹\âó?þP(¦¡¡u¥ï\õõõBFC,‹øòË/gÍšÕ××§¥V«›››wíÚD¥R;¦Ÿ ÀÁÁáÊ•+&6–Á²«T**•úÛo¿¡9+++}||ˆ”JåSO=ÕÒÒ!|çwP¹ vNV”¾þúøÉ“-+Vìg³3gÏþ;ǰ[ç2¨ ¤7ýƒ  .¸ººšp.ƒš3Oëoà½ÅéÀ`0ÒÓÓ?ùäò ܽ½½Ĩ££#ð÷÷ܸqÃ××µ‹rrr:wîÜ_|‘““3þüíÛ·ÇÆÆ Ÿ>]]]ÞÞÞ(y&“)‰¢££É3ˆD¢ÐÐPb”Çã­[·n÷îÝB¡0!!A§·cÇŽÕ×××ÕÕ-]º4!!!>>ž¼ ùi4ZgggZZšB¡xñÅ%Éb±VVîùfddTVV®[·nÿþý¨E©TÖÔÔðx¼°°°°°°;wæäälÙ²%11Q'“»wïfgg¯]»¶©© MšfÙ5 ªÀÇÇ]¹CÐéôøøx¡P8wîÜššš¶¶6c£¤@››¯9:¾–}ir²…JµÒj!F?8.‘ÜYµê€é>ÿ†††¬­§3§AUz‹ŠŠ"Ï,‰LdJÍÌI㟊èïïß¿tttVVшv Ä~†x½ÛÆÆÀb±z{{Q‹H$Ú½{·±¨±±1­V[QQ!•Jß{ï½åË—K¥RcáÓBxàÀ7Þx&%%íÚµ Ú ”JåÞ½{—-[F´,^¼X.—ÿüóϵµµo½õ¹·ÁÁÁ7FDDäää¬_¿þöíÛ¦[¹råæÍ›[[[‹‹‹ÍfâÖ²••Õ‘#G:D¬Tbb"qßB¡,]º”x¶ƒ N_³fÍï¿ÿNìx§Yvwww*•zíÚ5ÕÓÓÃf³É=óù|¡PX]]JìZL+Ájµöî]Q„)ÿG•Ja0èúN·@;E*&U‘”””——GèÏç—••}úé§|>ßD‡Sjf&HÂ(:Ç`Ó9[Ôh4ÑÑÑyyyR©”ÉdVWW£ö7&$$ôöö^¾|9,,,##ƒ|›““,‹ÅbqxxxZZ𱍱±1;;;¡P8<<|èÐ!;;»±±1cá&®sOEÔ××£§"FGGÑÔ;wîøùù¡§":;;+++ÃÃÃÑÕJð¿£ñ 6DFF}vuuiµÚ¸¸8.—«Ñh „*•*88˜Ïç“çÑ/ÚÈÈ…B9sæ z®ÐÚÚŠê#—ËõcÞ©âÀè‡FÑíÓ§O÷ôô466.X°`Ó¦M3¹qã@&“ÝWÙ!„‰‰‰QQQ×®]‹ÅÙÙÙäÍ:11áäääëë[ZZJ,Ë´¦PVvââÅž¬¬²çžÛÂbm".É?¶g‹¦Uôùý÷ßwttìØ±àææ611aâlÑ fàÌ“ÄC»Îµoß¾tëáÛo¿õðð@÷e2Yjjª“““‹‹KzzºR©$'7>>.X,–££#ŸÏ'?Z¥…rõöö¦ÑhþþþUUU&ÂMÜ[$àp8III:w EVVVPPN ÌÏÏ¿{÷.‹6p}}= ¨¨ˆÜ^ZZjkkÛÑÑAtÕÒÒbee% ¡qç‚~þùçÎÎΧ¸¸˜Ï绹¹MNN.^¼ØÁÁAg¹Ð¸siµÚ˜˜b5Õjunnnpp°½½½——×Ö­[‘¶ô5ͬY³®_¿~_e‡J¥ÒÕ«W»¸¸xxxdff’o$!ÒÓÓÈYM+aJé ýøøä?þ¶aÃ7Ï>+`³3u.x=>ÎeZ¤7;;;ooï>úˆËå®ZµÊô½E}ÍÀ™' ƒõ§À{ä+W®øSD³B¡PÊËË‘ nÝRÔÔ´ …¿ŠD}Tª•F£„†zÕÔüëQ烾§ XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMXPathException Class Reference

#include <DOMXPathException.hpp>

Inheritance diagram for xercesc::DOMXPathException:

List of all members.

Public Types

enum  ExceptionCode { INVALID_EXPRESSION_ERR = 51, TYPE_ERR = 52, NO_RESULT_ERROR = 53 }
 

ExceptionCode
INVALID_EXPRESSION_ERR The expression has a syntax error or otherwise is not a legal expression according to the rules of the specific DOMXPathEvaluator or contains specialized extension functions or variables not supported by this implementation.

More...

Public Member Functions

Constructors
 DOMXPathException ()
 Default constructor for DOMXPathException.
 DOMXPathException (short code, short messageCode=0, MemoryManager *const memoryManager=XMLPlatformUtils::fgMemoryManager)
 Constructor which takes an error code and a message.
 DOMXPathException (const DOMXPathException &other)
 Copy constructor.
Destructor.
virtual ~DOMXPathException ()
 Destructor for DOMXPathException.

Detailed Description

Since:
DOM Level 3

Member Enumeration Documentation

ExceptionCode
INVALID_EXPRESSION_ERR The expression has a syntax error or otherwise is not a legal expression according to the rules of the specific DOMXPathEvaluator or contains specialized extension functions or variables not supported by this implementation.


TYPE_ERR The expression cannot be converted to return the specified type.
NO_RESULT_ERROR There is no current result in the result object.

Enumerator:
INVALID_EXPRESSION_ERR 
TYPE_ERR 
NO_RESULT_ERROR 

Reimplemented from xercesc::DOMException.


Constructor & Destructor Documentation

home jpcs xml xerces xerces c src xercesc dom DOMXPathException cpp xercesc::DOMXPathException::DOMXPathException ( )

Default constructor for DOMXPathException.

xercesc::DOMXPathException::DOMXPathException ( short  code,
short  messageCode = 0,
MemoryManager *const  memoryManager = XMLPlatformUtils::fgMemoryManager 
)

Constructor which takes an error code and a message.

Parameters:
codeThe error code which indicates the exception
messageCodeThe string containing the error message
memoryManagerThe memory manager used to (de)allocate memory
xercesc::DOMXPathException::DOMXPathException ( const DOMXPathException other)

Copy constructor.

Parameters:
otherThe object to be copied.
xercesc::DOMXPathException::~DOMXPathException ( ) [virtual]

Destructor for DOMXPathException.


The documentation for this class was generated from the following files:
XQilla-2.3.0/docs/dom3-api/DOMXPathException_8hpp__incl.png0000644000151400015140000001212711653571065020254 00000000000000‰PNG  IHDRàuØäzFbKGDÿÿÿ ½§“ IDATxœíiXSGÔÇ'! «l1¬u¡¤´âÖ"÷PZ‹€U[\ÚÄ‘­ T–àŠZõAúˆJj7T–êcÐÊLR$BÈ}?Lßû^CˆT¢¹ðÎïÓÜsgΜ9ùgfî `²BUu„"@¤ Aj@¤†¦D_;wî¼qã†""...‘‘‘Êò¦LVTT”••±X,%úD ,?~lhh¨D‡Ê(€ÅbmÛ¶M¹>ˆíÛ·+×!Úƒ"H (‚Ô "H (‚Ô "H’¯âû‚››^611;vlXX˜n‹ÅG޹ÿ>—Ë>|¸³³óÒ¥KÕÔÔ`[ ‹ãÇS(¼þæÍ›ïÝ»—ÝÑÑéêê Oݺu+:::==ÝÊʊد¶¶¶ƒƒÃºuëÌÌÌúsvv¶……EoÁ)**ê‹ÃþP__¿|ùòþt$w8äD¤¤¤˜™™I¥ÒÚÚÚsçέZµêСCººº€ŽŽŽ°°0CCÃssóçÏŸgee•””$$$P©T@cccuu5“É„®ÚÚÚÊÊÊ`ÙÚÚzùòåÉÉÉ&LÐÕÕmooOJJ ²²²"ö‹aŸÏg³Ù»wïNII‘!—Ë ½páB_¢”œ(†®®®ŸŸßGè” ¨f‰700022¢ÓéŸþùÎ;ÍÌÌΞ= O;vÌÀÀ 11qÒ¤I–––ÎÎÎiii°‚££#‡ÃÁ]7? Ð××OOOddd/]ºT¦_ccc&“þøñ㎎¹J¥ÒÖÖÖ>„ÈÎEß Æ£¯¯¿jÕªÔÙPý”B¡,X°àÎ;ð°°°000N–MMÍ¥K—ÂCWWW‡ƒ¿Æúûï¿O›6 ¯L£Ñ¶lÙRPPpâĉ‚‚‚-[¶ÐhòW ØEww7àöíÛÁÁÁ³fÍòöö>yò$`õêÕ€E‹áõKJJüýýçÏŸâÄ Å#*..öññikk\»v- @,www>|xÉ’%^^^111B¡V–H$iii .\¸paZZšD"©¯¯wss»uëV@@ÀÂ… “““»ººˆñÀ °¹P(Ü»w¯§§§¯¯ïÁƒ;;;nnnW¯^ Z°`Á¯¿þ*7H™áÈíT®QñØ•Žê °´´lhh…B‡/ß8L&óåË—° íyyy111{öì¹{÷îÉ“'{ÆÙ¿sssZZZllìýû÷O:í7oÞLMM IOO‡_äG¦SƆjö ÿ …"•Ja™J¥º¸¸p8&“yûöm{{û¡C‡+cö÷ßS©T\Ó8ß~û-,Ðh4‹ßiÐÐÐÈÊÊb0C† a0€öööž1,Y²D[[{êÔ©€¶¶6Ø)î^»¬]»ö›o¾ ÷ôô=z4 ???88î†7oÞŒÇVPP””dddÄ`0BBBÒÒÒæÌ™ ³´´„]°Ùlž!I$’ëׯgeeÁ}ðŠ+ÒÓÓƒ‚‚^^^ººº3gÎŒommÕÓÓS<h”Û©ŒúÿhB uuuæææ]]]##£ªª*GGGb…ªª*üÐÕÕ5..nåÊ•2ë;äêÕ«¥¥¥IIIÓ¦M#ίr/]i4Z]]]||¼H$²¶¶î-HcccñîAoá@æÍ›wôèÑ„„hijj‚3`Ĉ#FŒ€åÆÆFooo¼¡ŽŽ,à•‡ÞÜÜ,7$>Ÿ/•JaêxM:‡öŸ†#·Ó¾DòáPýaØÅ‹§L™=<<Ž;†Ï—±X|êÔ©I“&á{{ûŽŽŽŠŠŠ’’8à¼~ý:99944ÔÁÁ!(((!!á×:oÞ¼‰ŽŽ^ºtiFFÆ?üÐ[5™ÏR1¯^½:þ¼££#\𯯯°\UU…/ñúúúÙÙÙEEEEEE—.]Âë×ÕÕÁBmm-SO ©T*—Ë…‡ P—}‰Vn¹ö%’‡j*x<^KKKYYYdd$—Ë]¼x1<Äçó7lØpïÞ½ººº?þø#,,ŒN§{zzþ_ÐTª‹‹Kbb¢ñ*†a VVVsçÎ,^¼ØÐÐðÀŠƒéêê’H$4­³³nñK{¸§|ç@ˆÀ0öíÛ·hÑ¢ÈÈÈf̘Áf³Ÿ?þüùóýû÷755AÎÎΙ™™MMM555›6mÊË˃ö”””úúú§OŸ²ÙìéӧˇF£¹¹¹8p€ËåÂûqrwüü|¹["r;•küh¨f‰_³f ,0 ‡ŒŒ |iÓÖÖÎÈÈ8|øpZZZCCƒ™™™»»»¯¯¯ºº:у››Û… .\H4^¹r¥¤¤äСCpz Ñh«W¯vqqqqqé-]]ݰ°°]»viii-[¶ÌÝÝ}Ó¦M999öööÞÞÞ—/_îË@pŠŠŠòòòŸŸF[¿~}bb¢½½½¿¿¿X,Žˆˆ‹ÅS¦L õW®\™’’L¡P\\\BBBZZZ7n‹ÅîîîþþþjjjrãùþûïSRRBCCÕÕÕ¿úê+ÿÞB7nžg¹Èt t£‚æŠv¼xñâææfô>h?éÿƒ"euú‘lß¾}ذagΜQV`ªßƒ" @%:::óçÏ'C§*‰D$PÒa``°aÃ2tª’Hd@E$P©AE$P©AE$P©Qò£Î²²²ððpåúD jjj¼ð(S øIÿo©©1XY TˆÊ°²²R® ”ù,ržþQ_éÜ =(‚Ô "H (‚Ô "H (‚Ô "H (‚Ô "H (‚Ô "H (‚Ô "H (‚Ô "H (‚Ô "H (‚Ô "H (‚Ô "H (‚Ô "H (‚Ô "H (‚Ô "H (‚Ô "H (‚Ô "H (‚Ô "H (‚Ô ¿°Ü/NŸ¾—™yC*•ÂC¯`dô¦R©ÁÁ.K–LRY|Õü¿øAÃøñ#ž<©—1¾zÕŠ—G~Ô€h‰ïÖÖ&Ÿ}fN¡Pzž¢P(,–“ÉøøQ &@û‹¯ïD559iTS£úúNüøñ 2@û‹—×çø”ˆT*õôüüãÇ3È@í/&&ú'ޤRßZå©TʤI£LL†ª*ªA¨ðñ™(³ ¥P(>>h}WH J`Þ¼±=:w®ƒªâL *}}íiÓli´“I£Q]]mõõµUÕà T9øøLJÿ}ä!•b>>TÏ  T9̘ÁÒÐø÷©‡†mút–jã4 *--™3ÇÐhTMmÖ,{-- UG4H@U^^ã»»±îîn//tûSi¼õ,¾¡¡AUq ìì tt4£G Lösss¼ü–@+++?z0ƒŠ‰M ÔÔT©:M¯|öÙg z¿á=2ä L™ò©ª¨¼zõêÉ“'D zÝN™Lžl¥êH ÊDæ‰<¢ÿ «x©AE$P©AEš-З/_®X±BÆXUU%÷GBïá–B`äÈ‘ÍÍÍÄšííícÇŽÕÓÓ›8qâž={$ ¢¢¢¦¦&là0wîÜŽŽã³gÏdÆõÞnÏž=ÃíR©ÔÅÅ%** †‡‡;;;K$¼‚P(9rdff&l;kÖ¬ü?{äȑٳgã>eœPúŸ".ò¦¦¦¢¢"¢å¿Í /^´°°àóù€S§NÙØØ´··ººº"""LLL FDDDWW\G®]»6|øp‡³mÛ¶áÇ6,00Ÿz¶\ºtÉÁÁASSÓÊÊêøñã‰D"·yKK‹ŽŽŽ––Vwww\\œžžž““ÓÝ»wa@ðõ×_ÓétKKËððp±X  P(‡²³³6lØÞ½{?>jÔ(}}ýÈÈH·=‡O¡PBCCóóóáavvvTT”šš^AGG'""";;úúúž9sûßU>''ÇÇÇçý’Ü[zËü… lmm ƺuëÞ¼y3eÊ€©©)x{‰ï-E'Nœ°³³322Ú·oŸÜ ¯\¹Âd2 cbbpŸ2Ê5¾sø²ÕÚ—4000((¨±±ÑÄÄäîÝ»ÐëííýòåËòòòñãÇoÙ²~egÏž}ýúõèèh‹U^^^QQ1yòäðððÞZ …Â!C†¤¥¥q¹Ü¬¬,& ãââä6?tèÐñãÇ1 KLLd0¹¹¹ ùùùðI.†aþþþîîîÕÕÕåååcÆŒ‰ŽŽ†Zñóókmme³Ù€Å‹·¶¶¦§§ZZZˆn1ySÅýû÷ 0 ƒjnn–ÉÏ­[·LLL`Û§OŸššš>zôÃ0@ ­­ÝÒÒ3hiiiÛÛô–äÞ’Ð[æg̘QYYyçÎ&“MœA‰åÞRäããÃçó333¯_¿–#`Þ¼y­­­ç΃ySЩŒQ±ºzΠÿY |>ßÒÒÒÁÁØÙèÑ£¹\.,Ž7W^^Ža˜­­mnn.<ûäɼܳÇSWWçóùR©´­­­»»»·æÞÞÞ<Ã0›#GŽàÁ=zÐÙÙ©¦¦öçŸBcnn.“É„É}øð!†a2e¨Ü-ö^½}û6NÇÛ~÷Ýw[·nÅ0,;;{úôéDŸ 拞Iî{‰™Ç0ìôéÓL&S®@¤ª„˜"‡ƒaÜm?{öLA§2FL!J(†a;vìPSS#ÖÔÔÔ$fY__×ÙÙ ÏVTTôôÓ³†a7oÞôññÑÑÑqvv¾|ùroÍÛÚÚ,XËZZZ¥¥¥ø©Gjkk"‘ËËË555±·5׳Lt‹ÉèÉ“'aÙÔÔ´°°P&°ƒΜ9oËáp˜L¦T*õòòJOOÇÞ¨‚œL’ûžC˜y|àeeešššrª EýõWo€ÆÊÊJbÊ{/¤¿{PøÁ§¤¤xxxlܸ7Òét||>ÿÎ;Ю®®077ñâ´”––îÞ½»·V"‘H*•ž={–Çã­\¹rþüù<Onóß~ûmÖ¬YÐ8räHâÅòãÇ&&&jjj555ÐX]]maañÎÑÝöðƒÎ;úûûïØ±¿f´··ÇÆÆ=L:µ­­íæÍ›………}¿áÐ3É}Ï!´Cq*++‰o¯Q"*õÂ{£Jn§}‰DDµ¾síîîöððعs'Ç355½xñ"´¯[·ÎÇÇÞU™99yìØ±pá>þ¼™™Ü®µ¶¶®X±ÂÐÐÐØØxÕªUíííÄ,ˆÅâððpsss}}}???>Ÿí=[avúôéO?ýTCCcôèÑ.\Û¼³³sΜ9xT‰$..ŽÉdêèè|ñÅpÁ0ŒÇã›™™­_¿®5 úäÉ¢[ìímâ'Ÿ|âïï/“¡P¸qãÆ1cÆhkk³X¬]»vá·½pçšš*cïm¾›ä¾çfžÍf1‚N§¯]»V$uuuM:UWW{[ }O‘â/¶ÜNå¨ “'зþ>(‡ÃA/,tªªªz>ÁRI§ï |aÙÕÕ· ì'IˆAè`cèС!!!dèT)‘ %A"Ð` "H (‚Ô "H (‚ÔÈþ.^ à?Z@ >2B¡PÆ"+PôW¯¤ý+D©A{P©AE$P©AEšÿúóñ ÙÝ-äIEND®B`‚XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMXPathExpression__inherit__graph.md50000644000151400015140000000004011653571065024506 00000000000000f5abfa3011d5da12ad0646671f74f56cXQilla-2.3.0/docs/dom3-api/DOMRangeException_8cpp__incl.map0000644000151400015140000000023511653571065020245 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMXPathExpression_8hpp__incl.map0000644000151400015140000000003511653571065020441 00000000000000 XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMLocator.html0000644000151400015140000003127411653571065020100 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMLocator Class Reference

DOMLocator is an interface that describes a location. More...

#include <DOMLocator.hpp>

List of all members.

Public Member Functions

Destructor
virtual ~DOMLocator ()
 Destructor.
Functions introduced in DOM Level 3
virtual XMLFileLoc getLineNumber () const =0
 Get the line number where the error occured, or 0 if there is no line number available.
virtual XMLFileLoc getColumnNumber () const =0
 Get the column number where the error occured, or 0 if there is no column number available.
virtual XMLFilePos getByteOffset () const =0
 Get the byte offset into the input source, or ~(XMLFilePos(0)) if there is no byte offset available.
virtual XMLFilePos getUtf16Offset () const =0
 Get the UTF-16 offset into the input source, or ~(XMLFilePos(0)) if there is no UTF-16 offset available.
virtual DOMNodegetRelatedNode () const =0
 Get the DOMNode where the error occured, or null if there is no node available.
virtual const XMLCh * getURI () const =0
 Get the URI where the error occured, or null if there is no URI available.

Protected Member Functions

Hidden constructors
 DOMLocator ()

Detailed Description

DOMLocator is an interface that describes a location.

(e.g. where an error occured).

See also:
DOMError::DOMError
Since:
DOM Level 3

Constructor & Destructor Documentation

xercesc::DOMLocator::DOMLocator ( ) [inline, protected]
virtual xercesc::DOMLocator::~DOMLocator ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual XMLFilePos xercesc::DOMLocator::getByteOffset ( ) const [pure virtual]

Get the byte offset into the input source, or ~(XMLFilePos(0)) if there is no byte offset available.

Since:
DOM Level 3
virtual XMLFileLoc xercesc::DOMLocator::getColumnNumber ( ) const [pure virtual]

Get the column number where the error occured, or 0 if there is no column number available.

Since:
DOM Level 3
virtual XMLFileLoc xercesc::DOMLocator::getLineNumber ( ) const [pure virtual]

Get the line number where the error occured, or 0 if there is no line number available.

Since:
DOM Level 3
virtual DOMNode* xercesc::DOMLocator::getRelatedNode ( ) const [pure virtual]

Get the DOMNode where the error occured, or null if there is no node available.

Since:
DOM Level 3
virtual const XMLCh* xercesc::DOMLocator::getURI ( ) const [pure virtual]

Get the URI where the error occured, or null if there is no URI available.

Since:
DOM Level 3
virtual XMLFilePos xercesc::DOMLocator::getUtf16Offset ( ) const [pure virtual]

Get the UTF-16 offset into the input source, or ~(XMLFilePos(0)) if there is no UTF-16 offset available.

Since:
DOM Level 3

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/functions_0x67.html0000644000151400015140000006452111653571065015667 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- g -

XQilla-2.3.0/docs/dom3-api/inherit_graph_41.map0000644000151400015140000000034211653571066016023 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMTreeWalker_8hpp_source.html0000644000151400015140000003267111653571065020020 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMTreeWalker.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMTreeWalker.hpp 671894 2008-06-26 13:29:21Z borisk $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMTREEWALKER_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMTREEWALKER_HPP
00024 
00025 #include <xercesc/dom/DOMNode.hpp>
00026 #include <xercesc/dom/DOMNodeFilter.hpp>
00027 
00028 XERCES_CPP_NAMESPACE_BEGIN
00029 
00030 
00050 class CDOM_EXPORT DOMTreeWalker {
00051 protected:
00052     // -----------------------------------------------------------------------
00053     //  Hidden constructors
00054     // -----------------------------------------------------------------------
00057     DOMTreeWalker() {}
00058     DOMTreeWalker(const DOMTreeWalker &) {}
00060 
00061 private:
00062     // -----------------------------------------------------------------------
00063     // Unimplemented constructors and operators
00064     // -----------------------------------------------------------------------
00067     DOMTreeWalker & operator = (const DOMTreeWalker &);
00069 
00070 public:
00071     // -----------------------------------------------------------------------
00072     //  All constructors are hidden, just the destructor is available
00073     // -----------------------------------------------------------------------
00080     virtual ~DOMTreeWalker() {};
00082 
00083     // -----------------------------------------------------------------------
00084     //  Virtual DOMTreeWalker interface
00085     // -----------------------------------------------------------------------
00088     // -----------------------------------------------------------------------
00089     //  Getter methods
00090     // -----------------------------------------------------------------------
00091 
00098     virtual DOMNode*          getRoot() = 0;
00109     virtual DOMNodeFilter::ShowType getWhatToShow()= 0;
00110 
00116     virtual DOMNodeFilter*         getFilter()= 0;
00117 
00135     virtual bool              getExpandEntityReferences()= 0;
00136 
00142     virtual DOMNode*          getCurrentNode()= 0;
00143 
00144     // -----------------------------------------------------------------------
00145     //  Query methods
00146     // -----------------------------------------------------------------------
00158     virtual DOMNode*          parentNode()= 0;
00159 
00170     virtual DOMNode*          firstChild()= 0;
00171 
00182     virtual DOMNode*          lastChild()= 0;
00183 
00194     virtual DOMNode*          previousSibling()= 0;
00195 
00205     virtual DOMNode*          nextSibling()= 0;
00206 
00219     virtual DOMNode*          previousNode()= 0;
00220 
00232     virtual DOMNode*          nextNode()= 0;
00233 
00234     // -----------------------------------------------------------------------
00235     //  Setter methods
00236     // -----------------------------------------------------------------------
00254     virtual void              setCurrentNode(DOMNode* currentNode)= 0;
00256 
00257     // -----------------------------------------------------------------------
00258     //  Non-standard Extension
00259     // -----------------------------------------------------------------------
00268     virtual void              release() = 0;
00270 };
00271 
00272 #define GetDOMTreeWalkerMemoryManager GET_INDIRECT_MM(fCurrentNode)
00273 
00274 XERCES_CPP_NAMESPACE_END
00275 
00276 #endif
XQilla-2.3.0/docs/dom3-api/DOMXPathNamespace_8hpp__incl.md50000644000151400015140000000004011653571065020102 00000000000000802f55bf014c00c75ec1022de98d3d68XQilla-2.3.0/docs/dom3-api/inherit_graph_11.md50000644000151400015140000000004011653571065015722 00000000000000cadebba192d2997908f8d5d6a5956a3cXQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMDocumentType__inherit__graph.map0000644000151400015140000000033211653571066024117 00000000000000 XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMDocumentTraversal__inherit__graph.png0000644000151400015140000001135011653571066025152 00000000000000‰PNG  IHDRèuË3:²bKGDÿÿÿ ½§“IDATxœíyPS×ÇoHP¶È*"Ê ¸P«ASP±VP¨eq+¸UQ¬â:VMÄ Š ²h•1 JÁŠP![Ð4 4 $!‘„¼ß·Í/%‹ÑáÑûùë¾óî9ï¼{¿¹9Ü$†aÀêNøp¸ Kp¸„$}PYY™˜˜¨®T%ìÝ»wÁ‚’÷££ãöíÛ .TTTDDDH[H²âãã‡+B%***XP‹À%H¸\‚„‹À%H¸\‚„‹À%rvFT*UÒ655>}ztt´Ä(Ο?_[[Ë`0lllÜÜÜV¯^M$¡¯¥¥eNN@ôß¹sçÇsss---ß|¤qçÎÈÚ333íìì†? ¯_¿^³fÍÝ»w?Âwt œœlnn.‹[[[¯^½yîÜ9===@ooott´¡¡aTT”……Å‹/²²²=ztüøq @{{{ss³dR9NCCƒŠÁG cýúõ¥¥¥WW׫W¯Bã¦M›`0vìXu¦øïµ¥‚‘‘…B™9sæÌÍͯ\¹O]¸pÁÀÀàĉŸ}ö™•••››[ZZZ{{{YYìàââ"½qX]]=cÆ ƒÄbqOOlkiiÁ·£¿!‘p¼l}°p«««ýýý9€F£­]»V D"QZZ𝝝¯¯oZZšH$zýú5•J­¯¯ |üøqvvv`` Ï¡C‡¸\.Œ&ë/¾xñâààà[·núûûåºÃKȶ@ V¬XñàÁxX^^ Wˆ¶¶öêÕ«ËËËááÂ… +**$ßT®¬¬”þ°Qyp.—{øðaoo€ÔÔÔ¾¾>¹É+ÊœJ¥–••………ùøø\ºtéÖ­[AAAË–-;w£R©·oß [±bÅåË—6l¬\¹RÉTJON¯©©‰ˆˆðòòòóó»té`ïÞ½gΜ…BáòåËám*Ÿk:.;ƒÙøÿ†î¼yó\\\RRRX,VJJÊwß}§­­ (,,d0éééǯ¯¯ÏÎΆý víÚÕÐÐpïÞ½C‡>>—/_^»ví‘#GAaa¡\wƒ˜˜Ù¶,VVVoÞ¼p¹\&“)[ÛÙÙÙ½zõ ¶§M›Æçó›››<¯¾¾ÞÕÕUɘH‚N:ÕÙÙ™–––””T[[›——§(yEÔÕÕ¥¦¦FFFfffÖÔÔdeeEGGçääÀTÑ8WUU¥¤¤DEE¥§§s8(¸¢¢"å×O¥¥e\\ÜäÉ“sss£££333Ùl¶‡‡Gee%|×ÖÖjiiÍž=[I0”µµµì öööÊÆonJø˜RaóæÍõõõ111ÞÞÞS§N…Ʋ²²­[·š˜˜ØÚÚFEE=|øÚ###gΜI£Ñ¾ùæ[[Û‰'îܹÓÑÑQ‘—P(Ä0ŒÏç“Éd//¯ëׯkiiݸqC®»®®î²eËdÛ@‹Å І†»»;¬jjjœœœT,E"Ñ;w6oÞlnnnkk»nݺòòrEÉ+"00PGGgñâÅ€àà`///|—S4Î>>>zzzK–,HŠU€4vìØ¬¬¬-[¶›˜˜x<Þ¼yózzzž>}  Ñh^^^ðïWåsM$egL&ËÆW=IY>¦ÊÑÓÓûꫯ~üñÇãÇKŒííí~~~’C]]]ذ±±tttXYYAËøñãǯÈk̘1'Ož,,,ÌÎζ··ž3gŽ"wÕikk³°°€É555¹¸¸Hwhjj²··—.\¸ðèÑ£áááÊë„ÁY,–X,†m€¥¥egg'@yò~=¥££€¨t¢hœ)Ê€ž*'ˆD"µµµ;vŒÏçOž<žÒÒÒruu­¬¬œ0aBuuuff¦ò`(¹3(7þ¿ác„ûöíÛââb—3gÎìÙ³õõõOž8AïÞ½KHHHHHøüóÏ…B¡äïTÓ§OÛÙÙÙÛÛK^~ÊçZî ’Éd¹ñ?š.0 ;räÈÊ•+÷íÛWWWW]] ínnn™™™---;vì())‘öZ¼xñÙ³g_¼xñâÅ‹S§Nutt(ò"±±±÷îÝãñxB¡D"iii)rçñx7nÜmØl6“ÉìêêjhhØ·oƒÁXµj<Æb±¾ýöÛ‡¶µµÝ¿?::šB¡x{{ÿ\44ÜÝÝOœ8áàà »G«(8‰D¢R©?üðƒÁ€»lžžžr“‡{g·nÝêííU¥• |œÀçóU + E"‰Dêëëƒ5koo/`öìÙ\.÷üùó_~ù¥Š9ÈAEñ?š^qKJJØlvPP‰DÚ¶mÛ‰'œœœÆŒžœœA ÜÝÝ£¢¢¤’@+æÎí²^d2y÷îÝéééoß¾µ°°ˆ'“ÉŠÜÙlö±cÇ`i+ÝlÚ´ 6LLLœ322$ïh:::ÙÙÙiiioÞ¼177÷ððÐÔÔ”¾S*•ZZZêëë+;J‚oݺ599yýúõššš_|ñEHH@M^__?<<üÌ™3¹¹¹7n¼ÿ¾Šã/;br»™™™999ùùùݼyS•°zzzÑÑщ‰‰Ÿ|òIpp°‡‡ÇŽ;Š‹‹I$Ò‚ h4št½¤|®åÎ ™L–Ÿœœ¬â]ËB.° ?î“ bè R©ùùù’÷L0Š?€@Œnp¸ Kp¸ Kp¸ Kp¸ w¨èêâÿù§ªŸ¸">9ù*ùV+Bu¸\+€ž^›ºüC¸ÖÖÖêJe”QWgB lmÉêNd4`kkkmm-m! Gé¿ÿþÆÃã(€FÛáà`®îtF!¨Æ®]{L"iHÄë׫;—Ñ îàƒaX^Þ/"‘X$êÏË{€ÞÓ†$ÜÁçÑ£—oßþõ«¯ŽŽžºº—jMgt‚„;ø””Ôkja[S“X\ü«zó• á2"‘¸¨¨N(쇇BaQÑ#‘H¬Þ¬FH¸ƒLUÕ³în´¥»[ðóÏÏÕ•Ïh w).®#‘þ1ª$¡¨¨N]ùŒVp@øÓO "Q¿´Q$ÿôSƒ@ TWV£$ÜÁäöí'HÖ.i´'ßÏ( w0¹zõ‘(çÁD"áêUT- &H¸ƒ‡#¸sçw¹"‘˜F{Âå¾þ¬F+H¸ƒFY]² &‹PØ_VÖ8œùŒnЗl ‹×Óóÿ°ï¾+<øÿ'ÔŽ«mh¨«†ÌF#8~&õHÃÐPWZ—ººdÀøñÆêËh4ƒJ.AÂEà$\.AÂEà$\.AÂEà$\.AÂEà$\.AÂEà$\.AÂEà$\.AÂEà$\.AÂEà$\.AÂEà$\.AÂEà$\.AÂEà$\.AÂEà$\.AÂEà$\.AÂEà$\.AÂEà$\.AÂEà’!"yFFÆÆ±\¹ò`©îDÔCddäÆrárþ Í"QÐßß­îDÔÃPëj8¥ŸŸŸ¿jÕªa¸b$PPP8ÔWA5.— á"p .— á"p .— á"p ®J¤˜0aBhhhgg§t;}úô1cÆÌž=ûû￉DßÉ“'Ø×\ºt)@hjjR%8B$\U©®®f0mmmÙÙÙ===³fÍb³Ùð‡ÃùôÓOkkk“’’êêêvïÞ}ñâÅE‹õ÷ÿõ?©_¾|ÙÐÐ Åb±îÝ»§bðBKK …BQwR`C ??¨¯2Ôž?.9‹Åîîîqqqð0&&ÆÍÍM$I:p¹Ü &dffB_//¯={öHΞ?~éÒ¥’˜Êƒž?®¢Zòóó‡AWê_q¯]»fiiÉb±yyyööö<  cccMMMMLLbcc…BaSS@ Ñh666ñññ666ãÆ •¬O²^€ëׯ;;;kkkÛÚÚæääD"‘\wx ÙöÂúõëoܸsssãââˆD¢¤ƒ®®nlllnn.< (((Àþ® ýýý È€àl6û믿¦P(VVV111@nòŠ2'çÎspp7nÜáÇsrr&Nœ¨¯¯¿oß>%#F .^¼èàà`ddtäÈÀܹsfffïŸÑáa¨_@…7444,,¬½½ÝÔÔô—_~Ƥ¤$??¿W¯^566Κ5k×®]ðE¿téÒ;wî$$$8::666Òéô9sæÄÄÄ(òâr¹ZZZiii #++‹D"q¹Ü£GÊug³Ùp™Ðÿ\1 «­­500À0 ¾ä:;;ÜÔÏ?ÿljj }ÿøã33³_ý†ÕÑÑéêê V\éà†…„„xxx477766N›6-!!AnòÒ+¢tÔÓÓsöìYÀªU«zzzÒÓÓ]]]rG zùûû³X¬ÌÌLÀŸþ9ÒVÜ!\‹eeeåììœ 1N:•Á`ÀvyyùŒ3àØ566b6eÊ”¢¢"xöÉ“'’¶¬“ÉÔÔÔû÷ï'‰‹¶¶¶ô;ƒ¾¾>»¾¾>x–N§ËÆ‘õÂ0¬ªªÊßß_WW×ÍÍíæÍ›JÜ•ÜÅm]ºtÉÅŶÍÌÌÊË˸¤¦¦.Y²Dâ[QQagg'‹}||ÒÓÓ1¥Â•ommðù|hollÔÖÖ–›¼´°ž={&-\Ip¹m¹#xúô©tÏ‘&\õ׸€ÖÖÖäädOOÏíÛ·KŒ E2Ê,ëÁƒЮ©© °°°xùò%´<~üøàÁƒŠ¼ø|¾X,¾rå “É _¾|9“ÉTä®"†¥¦¦.[¶ †„„ìß¿_²‡àñxIII^^^Ëüùó9NUUUyy¹ŠÁMMM‰DbKK <ÕÜÜlii©$y¸÷úõkÕïEÑ8khŒm(d¨_à}+n¿§§ç˜L¦™™Ùµk× }Ë–-þþþp#iΜ9›6m’~ÑÇÇÇ;;;Óét:îêê¡È‹Ïçkkkvvvfddhkkóù|EîJj\ÉŽUEE…···••›Í†g»»»§L™²`Á‚²²²gÏž9::ººº LjmÛ°aƒƒƒ•J•Ä”¬¸J‚{xx´´´ÐétGGǸ¸8¹Éí߬¬¬îîn___ òŠ+;br{ÂÁçp8ïñÿJ©púôééӧุØÜÜœÉdbÖÓÓ³nÝ:CCCccãÈÈH'-\@caa¡¯¯Äb± ]Ö Ã°üüüI“&‘Éä©S§–––*qWR)J°¶¶ ‘®j0 ãr¹Û·oŸ6mšŽŽŽ££cbbboo¯ÄŠ ¢¢’’2À®<8“É\»v­±±±¹¹ù¶mÛø|¾¢ä &MšTZZªºp厘lO¡P8þ|==½÷Mø0 w8~¾HþŸ~‘|¨u5²ëBH¸\‚„‹À%H¸\‚„‹À%H¸\‚„‹À%H¸\2O²¡Ñh#íûüˆ¡£®®n®‚ž††\WC}b(@5.— á"p .— á"pÉÿô©© ÛGIEND®B`‚XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMDocument__inherit__graph.md50000644000151400015140000000004011653571065023160 00000000000000d7234addb3dddee463745e930223241bXQilla-2.3.0/docs/dom3-api/classxercesc_1_1MemoryManager__inherit__graph.png0000644000151400015140000001106411653571066023715 00000000000000‰PNG  IHDR¸ur'¼úbKGDÿÿÿ ½§“éIDATxœíiTWÇ/$„²‰¶€ Ѓ ¥´§‹BªR¬T‘U¶Z¡lõ ÇŠ€ ÇCE­Ê±çDEÄ¥"ˆ ²TéQÖTÁÅJÛ(h‹IHB¶y?Œï4ÍÆˆ¼!¯½¿Owî}ž¹ÿgæ?wfBŒZ‚d*´g[äÿh. Q ¸€Fà‚(½ÑØØ˜••5[R EZZš‡‡¶ù£ ÖÔÔxzzª[DÃhhhˆŽŽ–î!Êedd¨KDCihhéÏ(\@£@pÁ4 Ð(\¼žF¡Ñhááá2ïLNN¦ÑhOž<ù7‹™6¯§Q>Ä6ÙlvGG3m^[£¸¹¹IÐÔÔäââÅL›—6JSSS@@›ÍÔÖÖFDDðù|€H$:vìØ† 6lØpìØ1‘HôäÉÖÖÖÜÞÞ~êÔ©àà`__ßììl‡ƒîM> "**ÊËË+44ôêÕ«±X¬0B¾ ðôôlhhÀüÆÆFé¤ÎK£Ñª««7mÚäëë[XXxõêÕµkמŸŸ™™éëë{þüùˆˆˆýû÷óùüÒÒR…ésçÎMLL”oœœœx<ºàOLL´µµ}øá‡Ø¨2µ­­­G‰‰ÉËËknnÎÏÏ?{ö,‹Å>|xhhèØ±cûöí»sçNQQ‘tQQQ7n܋ŀ7nP({{û)Åp¹Üo¿ýÖÁÁ¡   >>>//oll º~ý:NÍÍÍe³Ù #¯\¹röìÙ-[¶†……ÑétÕ¢R^ö¼OçÖ“ÐÖÖ–˜˜¸~ýzGGG´³ººzÛ¶mæææT*566ööíÛhLLŒ««kmmmdd$•J]¸parrò’%K”e …BAx<‰Dòöö®ªªÒÕÕ½|ù²Âtƒµk×Ê·ÚÚÚ+V¬@üææfggç9sæ`£ÊÔëëë{yyBCCõõõ½½½l6[$ÕÕÕ%$$P(*•ºyóæk×®I×èîîN$;;;555^^^ZZZSŠ!‘Hùùù[·n%“Éæææ€‰‰ tÈ×××ÐÐð“O>°X,…‘/^Œ‹‹sww766vssÛ¼y3žÓ^Û/…‚¿õL‰¡¡¡Ï™3g<ˆu øûûc›hãÍ7ß Ο?í±µµµµµU–edd”““SZZzêÔ©·Þz+44ô½÷ÞS–®OOÏï¿ÿ>**Jf©W¡V__@$eÚ€ÑÑQ‰Dbee…nZ[[ Iר­­½|ùrƒA¥R[[[wìØG ‘Hìëë;pàÇ“¹ÐMMM¥(Œ|úôéÂ… ±” ¨.•: ¦c”gÏž]ºtÉÍÍíÈ‘#©©©h§±±qNN޵µ5€Ãá<þüÅD"€L&  %=xðàæÍ›ááá ³&''%Iff¦H$ª­­MMM-//W–®ggg.—ÛÕÕÕÒÒ"sÚ”©U‰‰‰¶¶v?jÓ§OŸ¢'HKOOϬ¬¬ 8;;›™™á399™™™™™™ùþûï …Âêêjl[TDZXXôööR©T4æñãǪ Ĥ¾,/}ëAdÿþý~~~ééé­­­MMMhÿòåËóòò{zz’’’ÊËË¥³¼¼¼Nœ8ÑÛÛÛÛÛ{øðáÁÁAeYZZZ;wîd0B¡H$êêê*KŸ˜˜¸|ù²|ûEmÚÚ+V¬8tèТE‹æÎ+=¤Z­BˆD"Fûá‡úûû{{{óóóW­Z%³téR±X|æÌôæ…GŒP(‰DD"Q  O\.W¡…‘¾¾¾¹¹¹---,ëîÝ»§OŸFí5UóÒF)// 122Ú¾}û¡C‡Ð7 ¨¨(}}ýèèèíÛ·ÛÙÙÅÆÆJg………¹»»ïܹ3!!Á•Ï"‘H»víÊÍÍ ())ÉÈÈ ‘HÊÒÇÆÆ8 ߯ Ñh?–¹ïL©VÛ¶m355‹‹Û¹s§»»{XX˜Lê.—»bÅ ùt…b ããã³²²>ÿüsKKË•+W&%%)œ]a¤¯¯oPPPNNNhhèùóçãâ⌧]  ´¤?1¼páBppp}}ý+îôß̉'ÒÒÒÔ3]ss³¹¹¹ºÉ`0Ξ=›——÷Š»¥ÑhÅÅÅAAAXÏkû›úýýýÕÕÕ>>>j›´§§ç»ï¾c2™“““÷ïß?yò¤ô«ß 2ÍGˆ<ÝÝÝéééëÖ­Sç§®7näóùiiiccc eÍš5Ÿ}öÙÿb"h”cÙ²e•••jž”@ DEEEEEý¯'‚·. Q ¸€Fà‚ h. QdæŒðf[…Æ¡àõXú[ÿB8œùCþÙ¢YüÃ(666³%EChm5×ÒÒ¢RI³-d6¡R©666Ò=Z𧹤éî~ºrå÷€ÚÚ¤E‹(³-Gƒ€Ï(ÿ ²²HÔ& UUí³­E³€FùAŠŠn‰D‘H\Tt®µÒ@£üMKË£gÏXh{pÕÚúhVåhÐ(S^Þ¦£C@Û::„K—îήå"‘¤¬¬U(£›B¡¸¬¬E$’Ì®*Íåׯÿ1>Ηîç߸Áœ-=š4Ê .]j%ÿq4ˆD­²²ÖÙÒ£i@£Ÿ/üé§‘H,Ý)I~ú©ƒÏΖ*jjîóù"ù~>_X[{_ýz4h¸x±…@Ð’ï'´.^„w Ql6¿®®[á ŽH$©­½ÏáLª_•¦ª«»°·by„Bquu§:õh&ð‚`tt‚ÅúûÅø›oÊß}ç‡õ̙󆉉Á,(Ó$à?×&&Ò>00 lmɳ§H·. Q ¸€Fà‚ h. Q ¸€Fà‚ h. Q ¸€Fà‚ h. Q ¸€Fà‚ h. Q ¸€Fà‚ h. Q ¸€Fà‚ h. Q ¸€Fà‚ h. Q ¸€Fà‚‹)~qéøñãj“¢!””<Z϶u£bt £hi)ø­Ä×Á ϶u£Ú Sÿ4WqqqPPÐÌéh.\VŸQ ¸€Fà‚ h. Q ¸€FàâUr÷î]"‘XRR‚õTTTH¤®®.€–ÆÆÆ>>>½½½8÷¬¥¥õàÁœ‘2¬Y³ÿf3ƒ¼ªQ\]]SSS·nÝ:66ÿꫯ222œÑ€¦¦¦þþþ§OŸ666J$’ððpe»êéé155U=ÝøøxDD„••Õ¼yóÂÂÂFFFÐþGutt`a£££ ãK›6%f¦˜[OZZš©©irr2 %%…B¡$%%a£fff––– ÅÅÅ%//¯©©‰Åb)ÜD"ÁN¼26nÜØ××W__çΑ‘‘øøx´ÕªUÒ«Zee¥‡‡Ç«6]4JÌŒ¨P\\¬:A––"‘¸gÏ]]Ý®®.ét&“‰mö÷÷FFF©ªªrqqÑÓÓ³´´ÌÎÎF„L&,,,°\:ngg7wîÜ={ö "´µµ pëÖ-###42??ßÞÞ^"‘ C>>>ùùùØì 11ÑÜÜÜÌÌ,11Q `YŽŽŽ¦¦¦ÙÙÙ?þøã‚ æÌ™“––†îdtttÓ¦Md2ÙÚÚzÇŽ<Édjjjlll\]]###ÑH6›­§§×ÖÖ†GŒ|áhVAA£££‰‰É¾}ûÐNùH‰DrôèÑE‹Ñh´ªª*ô Ê(-õ—_~Q}úŠ‹‹§vÂÃøŒ‚ HJJ ++K&½½½Íf³X¬øùù½óÎ;‚°X,‰Ù××WPPxöìZ›t®‹Åºxñ"`xxX$1™L¡PˆìÝ»wÙ²ehäo¿ýfiiy÷î]AÆÆÆôõõ‡‡‡±s³oß>ÿ?ÿü³³³óí·ßNIIA³BBBX,Ö‰'AAA,+77 A°°°•+W>|ø°³³ÓÉÉ)33U¸fÍšººº+W®ÉdTLAAÁ’%KPg¨£°p4+ `tt4//½–FæååY[[ÿüóÏCCC×®]³··G˜|ÒR9Žês§>£H$’õëׄððp™t ôÌMNNvwws8±XÜØØˆDy£444 "‹eV¦ñññääd[[[ì"f2™[¶lÙµk‚ «W¯F¤Ö3GGÇþþ~4÷Úµk...è(š.dÚL&S „{÷î¡Yeeeööö¨ÂÎÎNAD"‘¥¥emm-‚ Ÿ~úéÞ½{1Ù*Ä(,­¯¯— 0ÒÉÉéܹsØq(,,D˜|ÒR§QfæõøÜ¹s uuu¥¥¥ÒCØ  èE@"‘þøãooo77·Ó§O+Û­••@[û"‹ŠŠ/^<<<|çÎWWW¬?00°¤¤AÒÒÒ€€é”GQ(ôåkõêÕØ›—‘‘@GGG¦ ‹Åvvv覽½}__Úvtt??¿²²²áááššš°°0镉QQ8Z,&@aäÇœœ°”Å‹«.•:3¨öÀ±¢¶«ÑÑÑîîneûÇÚèŠò믿¢—.]²³³“QX__oeeE§Ó?þøcœb®P€ÂHGGÇÂÂBl®¢¢"T|2RU£ŽAØØØ¥K—FEEvìØaaa‘ :krrR H$—‘‘`³Ùè‡ÃQ–5>>žžž¾{÷n==½ßþ 6J üýýcccß}÷]ssséD??¿]»v=~ü¸³³ÓÛÛ›N§OY—ŽŽNppðÖ­[{{{ïÝ»—––&³f–/_.‰vïÞ!3¤LŒŠÂñ¢-[¶$%%]½zudd¤®®.33ýÂÐ4 |iTûLµ¢œ>}ZWW÷÷ßÇznß¾­­­]ZZŠ(_Q9tèмyólllŽ9bnn. ?úè#CCClj™‹ìúõë õc‘ :.³‹µyóf2™311¡pÿ2íçÏŸGDDÉd …²}ûvì­GºŠ¸¸8===‹%}ÄT‹‘/\™ùH±Xœ““cgggllìíí]QQaff¦°À_Qfì­çßIjjjhh¨Ú¦«ªªjooÇ6KKKÑóWD}³ÿBø|~OOÏÉ“'£££Õ6igggxxx[[—˽yófzzú—_~©ž©áÿR:MnݺµaÆøøxOOOµMš””Äår}}}‡††¨Tjdddll¬z¦†F™&ÏŸ?Wó¤D"1+++++KÍóø5N Q ¸€Fà‚ h.¦~ë©­­E¿½y]imm2þÛcÈ ¦p‚êa>£@pÁ4 Ð(\ü»wñŸ6üIEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMLSException_8hpp_source.html0000644000151400015140000002072711653571065020147 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMLSException.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMLSException.hpp 671894 2008-06-26 13:29:21Z borisk $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMLSEXCEPTION_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMLSEXCEPTION_HPP
00024 
00025 #include <xercesc/dom/DOMException.hpp>
00026 
00027 XERCES_CPP_NAMESPACE_BEGIN
00028 
00029 
00043 class MemoryManager;
00044 
00045 class CDOM_EXPORT DOMLSException : public DOMException {
00046 public:
00047     // -----------------------------------------------------------------------
00048     //  Class Types
00049     // -----------------------------------------------------------------------
00065     enum LSExceptionCode {
00066          PARSE_ERR        = 81,
00067          SERIALIZE_ERR    = 82
00068         };
00070 
00071     // -----------------------------------------------------------------------
00072     //  Constructors
00073     // -----------------------------------------------------------------------
00080     DOMLSException();
00081 
00089     DOMLSException(short code,
00090                    short messageCode,
00091                    MemoryManager* const memoryManager);
00092 
00098     DOMLSException(const DOMLSException &other);
00099 
00101 
00102     // -----------------------------------------------------------------------
00103     //  Destructors
00104     // -----------------------------------------------------------------------
00111     virtual ~DOMLSException();
00113 
00114 private:
00115     // -----------------------------------------------------------------------
00116     // Unimplemented constructors and operators
00117     // -----------------------------------------------------------------------
00118     DOMLSException & operator = (const DOMLSException &);
00119 };
00120 
00121 XERCES_CPP_NAMESPACE_END
00122 
00123 #endif
XQilla-2.3.0/docs/dom3-api/DOMPSVITypeInfo_8hpp__incl.png0000644000151400015140000001165711653571065017617 00000000000000‰PNG  IHDR½u”w¾bKGDÿÿÿ ½§“dIDATxœíiXWÛÇï„-,Ê" ,ŃˆBÄÒª½LØW¨»Ôº V°oµ^R¬kµUP£ Rq)ÔV-(‹`-ÊâRkAL ‰H2ï‡Óg³ Ì‚ç÷éÌ=ç>óÏ™ÿœsf&A€ÁtfO À¼•`ß`è€}ƒ¡ö †š¯êååÕ}:0½uëÖ7®#5;á›ÌÌÌ¡C‡š››ÓU…éÕdgg/Z´¨ƒ•;á âr¹V„yÈÎÎîxe¼¾ÁÐûCì °o0tÀ¾ÁСs÷S¯…Çã‘åþýû><44ÔÈȈ J¥Ò„„„ëׯ WW×3fhhh \++«ÄÄDƒAÖ_½zuaaá±cǬ¬¬¨ëééq8œððp H$ ¹¹¹B¡ÐÌÌÌÃÃcöìÙÚÚÚ§OŸ>~üxrr2Ù&A3f̘>}ú´iÓx<jùòåË7nTþ8qqql6û¿ìt•{ ‚زeK^^ÞùóçÿûÖÞ$]숵°°ËåUUU©©©‹/>|ø°´´´„††‡„„XZZþõ×_‡ºqãÆÎ;™L&ÔÖÖVTT§J,+7N„H$Šß¼ysll,ìÙ³§®®nÆ fff•••{öì‹Åááá\.7&&¦¬¬ÌÉÉ µP^^^__¯ðtk̘1©©© –-[†Êзoß.ï*Ož<ÉÌÌLJJêÖ£t]?O™˜˜˜ššŽ1bãÆÉÉÉh×Ñ£GŒŒvíÚ5räHkkkWWW>Ÿ_[[K^m...Ô§W¯^uvvVn¼_¿~l6{åÊ•·oßnii€¼¼¼E‹ÙÙÙ¡q(??ŒÚÌÍÍåp8ýúõ£6«££cbbbbb‚†F“ÿ ©ÙõוçÏŸÀÛø(µ{×7 cÊ”)h3##cÞ¼yhhA°X¬3fddd M.—›M~%(''§ÇÞ¨™LzzziiiMMMh‡Ã!/bww÷œœ¹\Ž6¯\¹BïÚ'&&fûöí¨,‘H|||ÊËË«««y<^~~þܹsýýýcbb^¼xmmm|>ßßßßßߟÏç·µµ)´Æãñ233ƒƒƒ§L™òÓO?ÀÒ¥K`Ú´i¨Bssówß}7uêÔ   ýû÷·¶¶*KºqãÆìÙ³'Ož|üøqP)FÂ.¤Û×ÅÖÖÖ555ÐÜÜ, •— l6»²²•%IEE<{ö¬¨¨h̘1ÔÊR©T"‘´´´ÔÔÔüðÃööö}úô€ˆˆˆ¢¢¢ÀÀÀˆˆˆ¤¤¤ºº:2ÅÕÕµ©©©¬¬ *++«ªªÜÜÜ:(~ܸqùùùÈšùùù¤þ´´´­[·nÙ²åÚµk'Nœ€””@pàÀ;w9rD¹Á¼¼¼½{÷†„„8p@,ïÛ·N:…öîÞ½»¾¾žÏçoÛ¶íúõë'OžTnáÚµkqqq«V­Š'¯e1ê‚]EÏßO1 r0`2™nnnhZùý÷ßœœV .œ0aÂĉƒƒƒ›šš"##Qü£>JJJÚ½{·““ÓÅ‹gÍšuéÒ%´ËÀÀ`ôèÑYYYpåÊgggccãjsttÔÔÔ,))€ÌÌLooor}jmmíàà°páB4^ž?~ùòåæææ¶¶¶!!!………Ê úùùŒ?ȳŽhkk»|ùrXX˜………­­íüùóÉa˜ÊôéÓõôôÆŽ b±XuÁ®¢{çoxüø±¥¥%˜˜˜þøc4¹ >ùä©Tš™™YQQÑÁ6I¸\î•+W²³³œœÌÌÌÈøãÇQ¡ªª KCCÃcÇŽeeeeee={ÍA (œo*ÆÆÆL&S  Íššd²Ž´ ,F]°«èzß466 …†††âââÈÈH@ðé§Ÿ¢]ÁÁÁ"‘諯¾*,,|üøñ•+WBCCMMM§NúR“éææ¶k×.ꃟvÐÕÕõööþöÛo ÁíÛ·÷ïßO6 ££3vìØØØØ#Ft°M‡#“É~üñGoooj<66¶ººúÞ½{ñññè›I®®®qqquuu>\µjUZZZ§¤©©ÉãñöìÙ#Ð OOOøå—_ž={Ö~®²uÁ®¢ëç©eË–¡‚¹¹9‡Ã9xð 9bëé鿦¦ÆÂÂÂÃÃ#((HKK‹ÚÇKOO÷÷÷ïøAW­Z•˜˜W]]mllÌãñ>ûì3jŒŒŒŽßI‘ _¼xQa5íéé¹bÅ ©TŠž1À‚ bcc-ZÄ`0ÜÜÜBBB:{¬åË—ÇÆÆ.Y²DKKËÝÝ5»cÇggg•³ž:1hVRVØ…0:þw0 #**êüþM|||mmíºuëÐfuuõœ9sÐB»ÇQ)†žB—””DNíÓó÷S½™ÖÖV@pþüùI“&õ´–ÞöM{ܽ{7$$Ä××—úØZ__¿S7eÝŠJ1o@!ž§0ÿ‚ç)L·ƒ}ƒ¡ö †Ø7:`ß`è€}ƒ¡CçÞ3$&&ž;w®›¤`Þ":á›   îÓÑ ¹q£¿­íSiO yCØÚÚ¾÷Þ{¬Ü‰ç~ï––ÿÇçO™âüúªïx}ƒ¡ö †Ø7:`ß`è€}ƒ¡ö †Ø7:`ß`è€}ƒ¡ö †Ø7:`ß`è€}ƒ¡ö †Ø7:`ß`è€}ƒ¡ö †Ø7:`ß`è€}ƒ¡ö †Ø7:`ß`è€}ƒ¡ö †Ø7:`ß`è€}ƒ¡ö †Ø7:`ß`è€}ƒ¡þ[/ùâ‹Ä»wäfuu£‰‰¾®î¿¿q¤©©ñã ,,:÷óUÿ«tûï$¾E°ÙýÓÒŠ¨×‘X,¡îŦ!ÁóÔK¦MsPý;†šš3fŒT¹ëÝûæ%öãp¬Tþ¦L&÷óûð+ê½`ß¼B`àÇŠ}Âd2\\ZZâIê%Ø7¯0uê‡Ê7 #0ðãÑÓkÁ¾ySSƒQ£ØÊCΤIÃ{DO¯ûF‘  ¨CކÓÕÕÎĤ½ŸÓ}Á¾QdÂu¼‘ˉ€€zPOïûF‘>}XC55ÿímm __NÏJê…`ߨ`Ú4¹œMM //G==ížVÔëÀ¾Q—×0K d2Y@€KOËé`ߨ@GGÓÇljÁ]]m.wHOËé¼ò~J"‘ˆD¢ž’Ò«àñ>8uê//û'Oþéi-½]]]cccró߈Åâû÷ï¿qI½CCyŸ>ÚC‡àA˜™™©õ ‚Ëå¾99½˜°0béRw&Sõ›ÎwŠÛ·o+DðúF-!!\lu`ߨEKK£§%ô^°o0tÀ¾ÁÐûCì ÞzßTVVΟ?ÿµÕ|hjjŠÊFFF«W¯V—>bĈµk׆‡‡766ÀÓ§O—.]åä䄪=zô¨¸¸˜Ì‰D¹¹¹í +**JMM­¬¬|xëÖ­GŽIHHÐÒÒ"kýüóÏĦª”””ÀÀÀö;ªoß¾ûöí{òä Útssûûï¿UªB]”@*d0Çwpp011Ù¾};Áçó‡Ú·o_ww÷sçΩœÔ~ûí76›mll¼uëV²ýôôt{{{ssóðððçÏŸ« ¶ÿYT@5QÇ›yóæ×ÖÖöïßÿÚµk(¸mÛ¶€€€ÊÊÊ’’’?üpÍš5èÂòõõ½|ùòúõë‡ VRRRZZ:jÔ¨•+WªËjnnÖÑÑáóùàСCšššÍÍÍÑÑÑ*Ó>œ˜˜H¼z“å×Ét’5kÖÀ¦M›¨A¸wïÞ€nÞ¼IDcc£žž^CC´;Þ\¼xÑÊÊJGGÇËË+::úÑ£G JÈ2ê¢[·n‘q ‰DqqqðäÉ“¸¸8++« .Ô××gdd°ÙlP´`Ò¤IMMM©©©ÐÐЀÚ÷öö¾ÿ~AA›Í^¿~½Ê`ûg\y¼¡ã‘HdmmÍáp¨Ç2dˆ@ @匌 ggg¤¯¤¤„ {{ûS§N¡½wîÜ!ËÊYB¡PKKkÇŽ"‘H.—‹Åb™L¦.= @(t}C¦#ärùÔ©S544æÌ™óJ”——ñÅ_ý5AÇŽóòò"(vQé‚ ÚÚÚ 6lØàè訡¡qüøq•ªPQã€NDkk+jÜÑÑ¥#Nœ8¡Ò7ÙÙÙAÈd2”EmŸ ˆ¤¤$6›­2¨,žJ×ø† ˆ 6hhhÔÕÕ‘‹EÆ ‘>´J`±X¥¥¥Êí(g‘——¨¯¯ïêêú믿ªK‹ÅS¦LAej§£7ØÄë|CMG$&&æää°X¬´´´—}P^^žÍf³år¹ŸŸßˆv}ÓÜÜ|òäɶ¶6´)—Ë###­¬¬TªB]¤à›?ÿü“zt]]Ýââb²}êàDÕyÿþ}jjS"‘ `qq1‹ÅRT>5Tº`}UUU±±±žžž+V¬ ƒ¦¦¦d߉D¢‚‚G«KKËG¡È­[·6oÞ¬.K"‘Èåòääd¡P¸`Á‚É“' …B•é.\ðññ¡ kkk€êêêŽ| …ôšššðððèèh77·¨¨¨ri‚;v¬X,ÎËËËÈÈPwGBĬY³Ðm<0ŒñãÇ#yÊPR$Læ+§fàÀÔ—ÒwïÞUÙ”ÊE2 Ü¿ßÒÒ²`' š¨#ãL&óôôܸq£P(0`À™3gP<<<<00ݯŽ5jÙ²eÔ (**ŠÃá”–––––Ž3fÑ¢Eê²$ ‹ÅJII©¯¯?xð ‹Å’H$*ÓçÌ™S]]Ú©¯¯€C‡=}úÔßß(C‹X,&T7Ôt¹\>iÒ¤qãÆÉd2‚ Z[[9ÎÌ™3©×.AK—.uppàñx q¸zõª€AÁÁÁƒ>wî\EEE~~þèÑ£¿üòKuª¥ñ†¼œP9&&ÆÚÚúâÅ‹ —.]²··g0AÄÅÅ566ªËBmòx¼òòòÂÂB;;»o¾ùFe°ý“ÞóTLLÌðáÃÑÐzúôi ´Dhjjš?¾±±q¿~ý/^üìÙ3jGH¥Ò•+WZZZΜ9S$¡¸rAIIIƒ ÒÖÖ2dHzzºÊôÖÖÖ &P…mÚ´ÉÈÈhРAéééè¸/^¼;v¬¡ä…ô„„rj ¢°°Éd¦¤¤PÏGvv6ìÝ»Wá<©¼ÛÚÚÖ¯_ÏáptuußÿýÕ«W£©A¥*âu¾‘Édßÿý Aƒ }||ÒÓÓÍÌÌTÖ¤–Q›ñññ455 “H$*ƒíŸô.[ß`Þ0gÏž½uë¹™’’âììüÚ¬Ž<Áê]³¾Á¼yJJJæÌ™STTÔÒÒRPP¹páÂÔƒÿoÒÛÁªU«ZZZüüüêëëmmm?ÿüó×fõíÛW¹šÊ`gyåÿ´ýóÏ?wîÜÁß/Æ(€nå† FFð<…¡ö †Ø7:`ß`è€}ƒ¡ƒŠûðššš7¯Ó›‘J¥ o UøÿE4Fßàÿ³¡^ß`è€}ƒ¡ö †Ø7:ü?q³ls]ñIEND®B`‚XQilla-2.3.0/docs/dom3-api/inherit_graph_36.md50000644000151400015140000000004011653571065015731 00000000000000132afd5ae277ad60e72df998509491fbXQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMConfiguration-members.html0000644000151400015140000001112311653571065022723 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMConfiguration Member List

This is the complete list of members for xercesc::DOMConfiguration, including all inherited members.
canSetParameter(const XMLCh *name, const void *value) const =0xercesc::DOMConfiguration [pure virtual]
canSetParameter(const XMLCh *name, bool value) const =0xercesc::DOMConfiguration [pure virtual]
DOMConfiguration()xercesc::DOMConfiguration [inline, protected]
getParameter(const XMLCh *name) const =0xercesc::DOMConfiguration [pure virtual]
getParameterNames() const =0xercesc::DOMConfiguration [pure virtual]
setParameter(const XMLCh *name, const void *value)=0xercesc::DOMConfiguration [pure virtual]
setParameter(const XMLCh *name, bool value)=0xercesc::DOMConfiguration [pure virtual]
~DOMConfiguration()xercesc::DOMConfiguration [inline, virtual]
XQilla-2.3.0/docs/dom3-api/DOMTypeInfo_8hpp__incl.md50000644000151400015140000000004011653571065016776 000000000000008069674b5b1cf7ff49f243354da725b6XQilla-2.3.0/docs/dom3-api/DOMNotation_8hpp__incl.png0000644000151400015140000001565711653571065017157 00000000000000‰PNG  IHDR˜uüô`êbKGDÿÿÿ ½§“dIDATxœíÝg\ÙÚðH“"HË"H± «û"*‚`ÆٕáºÞ¥­¢ˆú[Å«®È«XQA\Š®‚V®boØ@Q]Wi zBÚ¼Æw6&!° ™$<ÿOádΙg&‡'ç$s& ÃÈ2²€¯‰ ó ‘d$2€ÌS$;еéÓ§“BŸ–ŸŸOv  øÖRúQ(”‘#Gêëë“HŸóáÇÒÒRø‘~0"“ 4mêÔ©dGÑçþç?ÿ!; Ð5øŒ ó ‘d$2€ÌƒDyÈ2™œpâ³xñ⨨¨ÆÆFþ ˜Lf||ü²eËfÍšžžÎår‰ºÞÞÞDDD899UUUálÚ´‰ƒªª*''§‰üë›"â}$2ù{êÔ©ŒŒŒˆˆˆ¶¶6??¿ÖÖVü©öövÿ/^øûû'$$xyyåç燅…ñx<|ƒÚÚÚW¯^Mµ´´JD€D&Ÿ(Êܹsïܹƒÿ™ŸŸïã㣠ð÷Ë­¢¢²xñbbñÍÔ©S ‰ÉãÕ«W§L™Âß F2dHLLŒðeî­­­Û·oŸ7oF‹‹‹c±XAAA¡… âܾ}û矞1c†‡‡Ç±cÇBüðO-…›B999øúúÎ;÷?þy¼EEE^^^îîîéééD›7oÞ\²dÉ‚ öïßÏf³E~áùR™Ü211©®®Fµ¶¶644˜™™ l`ffööí[ü± ƒÁÀg—mmm>tppàßXAAaíÚµ<¸té’@;{÷î­««‹ŽŽ¾ÿþñãÇ<ˆÊÊÊBµ··oܸÑÜÜ<---00ððáÃüˆo /¿qãÆüýý:ÔÒÒ"|°wïÞ=|øðš5k‰±^vvvTTÔ¶mÛîÞ½‹'ÐÎ ¬ƒDÖwQ(â32…É“'ã³ËÛ·oÛÚÚjjj lobbâçç·ÿþ>…çòåË+V¬022255]ºt©Àkee夤¤àà`]]]|¹h[[›ÈxÄ45þ| 777„ÈIë?ü ¦¦6iÒ$„‘éMLL¬¬¬þýïM‰,²™Üª¬¬466Fihh 0 ¢¢B`ƒŠŠŠ#F³Káy%aÁ‚æææ;vì &˜t:Çãá;B 4¨®®Ž¿Š¢¢beeåš5küüürssÅ,¦)===¼©Îêêêê"„( ¡‰‰ þ`È!DS" ¬ƒD&Ÿ0 ;sæÌĉñ?]\\RRRˆñBˆÉd?~üÛo¿%JlmmÛÛÛKJJŠŠŠð¡0 …ñôéÓsçÎá%::: 555øŸÕÕÕxÒ!tttlÚ´iñâÅ «V­³˜¦2”ÈÀ„ +++ñïÞ½Ã3]g…@ÖA"“ õõõOž<Ù°aCMMÍ÷ß?åëëK§ÓW¯^}ïÞ½ÊÊÊëׯêééñ_$Ï.wíÚeee¥­­ÝÙ^ŒŒŒOž<‰ÿ©¨¨èää´oß¾ššš?ÿü3))ÉÅÅŠÁ` „Øl6‡ÃQTTd±XÉÉÉ¡öövþ bšvþüùΦ¨„ØØØªªª/^$&&÷tYdÜÆG~,_¾ ¯¯ogg— ®®Ž—¨©©%$$$''ÇÇÇWWW9;;Óh4%%%þœœœrrr,X ~Gîîîׯ_/**Âÿ\¹relll@@€’’Ò´iÓ¼¼¼¨Tª­­­‡‡Ç… 444·nݪªªúã?:;;¯Y³&33“Ø€¿eá¦:‹açΣG&P$—ÐÐP&“éìììåå…O$ Å)pcE@¡P"##á~dÝWUUåíí-p¯ÈBñðû‘Áÿˆôƒ©%@æA"rH]]ÝÝݽ;…@>@"rH[[{õêÕÝ)ò@æA"ÈŠÍænØpÚ×7qÖ,» Bd1‹!„,, Ï[åädé뛸aÃi6›KvD€0"ë‹Þ¼© L©¨ø°m›‡lM';“‘qýúSffúqq>Æéu]È‘õ9YY\]wr¹¼K—Bå#‹!„h´ñ—.…r¹<7·˜Ó§’4‘õ!íí¬µk3NzðÓOŽ6¸++ËÛ-X,Ζ-g¹îáa¿};MMM™ìˆ€„@"ë+JK«~ÿø±m÷îÅ®®6d‡Ó‹òòž†„ü¡««ï;r¤1ÙáI€©eŸ˜xmöìÝzzý Âä;‹!„\]m ÂôôúÏž½;1ñÙáI€™œkll_½úüüg«VM_µÊ•Jí+o]\.oÏž¼={ò]]­wíZ¬¥ë™ä$2yvÿþŸAA©\.ïÀ%ß}7œìpHpëVÅòåiTªÂÁƒKÆÿ†ìp@oé+ïÏ} ‡ÅÄäzxÄŽi\PÞ7³BèþǬ  |äHcؘ˜\Þ¶åŒÈäÐû÷M+V¤ß»÷篿ºKáM,$¸mÆ„ ¦û÷{h’èaÈäÍåËÏW®<¦©©ïckkBv8R¤¸ø]``js3cïÞ§M³";Г ‘É6›»yó™#G®ãw…ÖЀ»B jmýtÿîŸ~rܸq®’•ìˆ@Ï€D&'Þ¼© J-//7«Žz¾žÉÜÜààÁ%°žI>À‡ýò ;û¡›[ ›ÍÍÍ] Y¬K4ÚøÜÜÕl6×Í-&'çÙá€#2Ù&÷«ŽzOGgëÖO뙢£iªª°žI†A"“aÏŸW¤ÔÕµìÞíéæ&ç×ë÷’K—ž†„8°|¼¯••Ùá€/SKY•˜xm֬ݨ„Cûbnn6á::ê³fí‚õL² Fd²§©©=4ôÄ¥KOW­šNâOçÊüg€÷ìÉws³‰‰ùÖ3ÉHd2¦¨èÏ  T6›ëíà`Fv8råæÍŠåËÓ””\2n¬g’%ðf.3ðUG ÆZZ„Aëqfa† Âz&#2Ùðþ}óŠéwメΟΕ'Äz¦‰‡ïÛçë™d$2påÊ‹•+Ó54Tââ|FLv8}“'ïSZ[™ûöyMjIv8  0µ”jøoy{'8:ޏt)²˜ÄŒ5øÒ¥PGÇ^^ ðûLÒFdÒ믿>¥¼|Yµ®×'KFÆýuë2-, ô:T—ìp€h0"“RgÎ|=SRÒµE‹ÆÁz&)‰Œ¥¥ÕC‡êª« ÞiçùóšÀÀ”šcbÏœiKJl 3/–¬^ý‡f|¼¥¥àz¦¶¶Ž·o?ZYÁï6‘¦–$`0XË–%GDd”ã¿u¤¥¥šŸYL Íœi[P¦¥¥:k–ˆßgŠˆÈX¶ì“É&%¶>ŽºiÓ&²cès"#³¯_/+-­:TÿáÅæfÆŠé‡_ vÙµËS[–ÈH)MMUm<ÇÛ¾ýü‹5S¦Xôë§„Êȸ¿{w~s3³©‰áì ·Ÿ•4˜ZJZAA©¯o"†a EQQ!7wu{;+((•Åâìßï=i’9Ù‚n¹q£|ÅŠ4eeŃ}ÔÔ”fÌØ…_¢A¡PRR~†\&aÈ$ŠNostŒ¢ÓÛñÓ®¨¨`h¨U_ß:zô¼Œ´Éü55¿ü’öøñ_ººýkk›¸\BˆBA::êׯ¯ÓÑQ';À>>#“¨ãÍÍ â̓ÃáÕÖ634##²˜Ì12ÒÎÈ=zèû÷Ÿ²BÃPs3cõê?È­¯D&9§O?ÌÏ/åpxü…ïöíŠsçžøgÏ>¾sç•ðkš—÷,;û!YQõA0µ”êêÆÉ“·3,áN¡ UÕ~W®¬6ðeÊÊj;:8†¨T‘7éåpx……Ï¿#ùØú ˜Zöº×¯ë¦Mû_‹Ã_¨¬¬ÈbqÔÕ•g̰uuµqt×ŽÉ¢ÆÆöë×Ëòòžææ–´µ±ð—•eeÅ˗טš$+Â>Yïârysæìyö¬ŠÃáQ(HII‘Åâèëkº»vw5vì0¸ã¾|àpx¾9{öÉÙ³?|hVVVd³?×llLÎ[I¥Â Ý‹>Kd ƒN§“üII¹·oßU a|øPZZJFHò©²²å×_¯ª5nœá¸qFFFdGÔóhmmý5-Èq¯«©i-*ª)*ªý믦ß~›2hP²#’+S§N%‹¸E ÿÓàk<^ýèÑ49¾ÂûÙ³g=Õ”¼ö:OO„¢ÓÛjk›àÆ=EøÍîuÕ‹ ãœŽŽº¿ŸI9ù¤ЗA"È}ú•ÈM¯û§¯‹˜fÅw‰°°0GGG‡ClÐÚÚ:lذÇãug̘±~ýzâÙ£GΜ9“h!äïï?`À€ššš/ˆ¼û÷^Çî3ÿxDvæÌ™Aƒá‹ãŽ?>bĈ¶¶6„›Í700Ð××g³Ùøô¿ÿýï!C ###‡ 2pà@â½E¸BèìÙ³vvv***¦¦¦©©©!‡#²z}}½ºººªª*ÿp—xü“&•’’áv„kavãÆE‹©««;::^¸p¡³ê---sçÎÅóÿo—••u'‘ñWÇ¥¦¦jii]½zUEE%;;[2‡†‰êµÇ޳··¿wbc‘mòC•••ñï oÁ`à…Ožmdd„Oì›››—.]ª£££««ëçç×Ö֯ߥ˜LfXX˜±±±–––§§'NÇË…kavâĉáÇ+++[ZZæä䈬Îb±fÍšÅØÖ­[µµµ‡ž““ƒï—ÍfOš4ICCJdÕ=Ú¯_¿—/_%÷îÝSPPÈÌÌìíCÃ>ÿÚhðàÁ^^^ü³'ñ{Ó¦˜¼…ÄÄÄ¡C‡êéé­X±‚Á`ˆ,ß$–Ȥ³×q8œ;v˜™™©««÷Ýwøð†††%K–èêê…„„oW½"¥¥¥Y|—À0¬µµ544ÔÆÆFMMÍÚÚzëÖ­Äå Dã………¡” $27}útÄ÷©«@ð¦ÈÓ(™Ž'ÜgDÜ!V^oq‹,ŸeôÈb¡×õ=Õñ„ûŒÌ_ÙÈú"MMMÿîЃz¯ãÁÔ|9˜ZRÀÔ ‡ ‘d$2€ÌƒDyÈ2OÄôVWWK> ‹˜L¦ÀÊá/½t_kk«@‰ˆD†/… ;z*‘A¯_ƒòV€‚ÏÈ2@æA"È XQilla DOM3 API Documentation SourceForge.net Logo

DOMLSException.cpp File Reference

#include "DOMLSException.hpp"
#include <xercesc/util/XMLDOMMsg.hpp>
Include dependency graph for DOMLSException.cpp:

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMNodeFilter__inherit__graph.map0000644000151400015140000000026411653571066023536 00000000000000 XQilla-2.3.0/docs/dom3-api/functions_0x72.html0000644000151400015140000002230111653571065015651 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- r -

XQilla-2.3.0/docs/dom3-api/PlatformUtils_8hpp__incl.md50000644000151400015140000000004011653571065017506 0000000000000092613c4cacaa424aacb5cf5b52bd836cXQilla-2.3.0/docs/dom3-api/inherit_graph_5.md50000644000151400015140000000004011653571065015645 00000000000000d16572f555d06a7d2fd494ad21959f6cXQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMXPathException__inherit__graph.png0000644000151400015140000001163511653571066024421 00000000000000‰PNG  IHDRÓu[ C}bKGDÿÿÿ ½§“RIDATxœíyTSÇÛÇ'$@d) û"jÊ¢Á[i•(kpC °.G!ŠöÇâ^T¤ (›bTõ(çµ*²–Åz¬ZA¢I $ä¾LßkšJ½Eçó×ÜçÎ3÷™g¾wæn'!aˆ÷ŽÑ >RòÄ€”‡ ¤<1P†ß„««ëðAŒ"ètzDDÄ0å988Œ7nøM!þû”••éèè ¿P`ëÖ­Ë–-‘¦ÿqFj Ñu‚òÄ€”‡ ¤<1 å!ˆ)ïoHL˜0Áßß¿³³S²Çc0S§NÕÔÔüì³Ï8 ‰p_KKK©o/.\H"‘¥Çyjll|?z òÞpïÞ=&“ÙÚÚšžžÞÕÕ5cÆ ‡wuwwÏœ9³²²2&&¦ººzçΙ™™®®®ýýý°Â³gÏêêêð¦ØlöíÛ·e—äõ¢¹¹YOO–µµµwìØñŽ4\°aÈÊÊ~;Äxòä ¾)‹étzdd$Ü stt‰Dx.—;a„ÔÔTèëææ¶k×.|ï™3g.\ˆ·)Õø;åÉ“'#2¬òðñññññ~;ïcλzõª©©)›Í\¸pÁÊÊŠÇã„B!ƒÁ044400`0B¡®ÅÅÅæææ¥¥¥QQQæææúúúþþþøô#ë¸víš•J¥ÑhçΈD¢Ý% A#‰|ýúu¸™‘‘I&“ñ êêê ###núøødggcÿ¿àæääx{{¿]fäE./]W®\±¶¶600ؼysoo¯ƒƒÀÈÈHªƒçÛo¿ÕÓÓ333 °›™™™“'O;vì¡C‡þ5à‘døâC˜óüýýÚÛÛ ËËË¡1&&ÆËËëùóçõõõ3ḟçëÂ… oݺmccS__ßÐÐ0kÖ¬°°0y^\.WUU5))‰Édž:uŠB¡p¹ÜÇèÎápàD%U2ÓRee¥¶¶6†aPRº{÷®¡¡!ô}ôè‘‘‘Ño¿ý›USS{õê˜ójkk»ÿ‰¼ÌÈ‹\^ºæÏŸÿøñãû÷ï[XXDGGKÎy’e___gg禦¦úúú)S¦DGGÃÀ¼½½Ùlvjj*àõë×ÿ:Ü#5ç½'å±Ùl333;;;ØaȤI“˜L&,N›6 fª¾¾Ã0kkëÜÜ\¸÷áÇxYÖ‹Åb)++9r„Íf‹Åâîîîþþ~yîƒôBQå•••éééá¾ßÿýÎ;1 ËÈÈpuu•lss^63Cï¸dº0 ËÊʲ°°Py}}}d2ùÁƒО››kaa+))d30 £Ly†íÙ³‡L&wttà*•*9ZZZ0S}}}poCCƒl;²^†Ý¹sÇÛÛ[]]ÝÑÑñƃ¸Ò ©¼Ÿ?ÞÞÞ–ŒŒ ¥\Nž<¹`ÁÜ·´´ÔÂÂB,{xx$''cÿTÞ ƒ*•™¡w¦‹Ïçà uuuT*u@åµ´´HÖ¬¯¯§R©0°?þøC^d4]çZZZ\\\BCCq£žžÞU6›}ÿþ}hWVV˜˜˜<{ö Zjkk÷ïß/Ï‹Ïç‹ÅâK—.±X¬ÀÀÀÅ‹³X,yîCð“'O.Z´núúúîÙ³¿“ðx¼˜˜777Ü2gΜîîî;wîzxx¼uf†Þqh‡ò<~üØÄÄdÀ£’Éäææf¸ÙÔÔdjj ËJJ=ß¾xÁ¿Íyýýý...{÷îe±XFFFW¯^…öÍ›7{{{Ãç³fÍÚ¸q£äùegg×ÐÐÐÐÐ0{öìuëÖÉóâóùT*5''§³³3%%…J¥òù|yîƒ\çáOUJKKÝÝÝÍÌÌ8Üû×_Y[[Ï;·  àñãǹ¹¹666³gϘÄl±aÆɓ';99ámâsžìSy™zÇaºœœœž•ÖÖq4ZѼoètúðßaŒÀ¯[øøø ¿‘QGK‹&Ÿ?fÌ}*UDt,ï:?{�ç}œ88ì{þüõ¶m ÂÂÜþ½6Bt÷6<|ØöüùkÀ¥K•DÇ2ZAÊ{._®RV&ZZXµµÏ‰gT‚”§0b1–•U)ö(r~~ ÑJò¦¼¼™Åâ²HÔŸ“SÕß/&6¤ÑRžÂäåÕP(oòÆbñÊÊ>ºg+Ã)O1„Âþüü‘èÍ$G¡óòª i”‚”§¿üò—Û+i‰ú¯^­ëëû¸žê ¤<ÅÈÍ­&“¥£§GPRòˆxF/Hy ÀãõÔËÞO())]¾Œ\Å@ÊS€¢¢‡ðaŠýýâ›7ðx½²»ò@ÊS€¼¼jyïûúD……¿¿ßpF7HyC¥«‹_RòÇ ¯¹óòÐ#e@_ •Þ^Q{û_øfQÑȈܲ²ÿá2YÉÌlþç#adþèc@U•2~¼.¾©¯¯ ´ ­¶b@ÊCR‚òÄ€”‡ ¤<1 å!ˆ)A Hyb@ÊCR‚òÄ€”‡ ¤<1 å!ˆ)A Hyb@ÊCR‚òÄ€”‡ ¤<1 å!ˆ)A Hyb@ÊCR‚òÄ€”‡ ¤<1 å!ˆ)A ÿøåÆ””¢âu}ZCCÐÓÓ¢££dbbòôéÓS§NUUUÅÆÆ*))ÚÛÛ›šš,,,`SÝÝÝuuu°lii¹zõêøøø™3gjhhðx¼¸¸¸€€&y\ ÃØlvZZÚþýûŒÉd_¹re(‘œ Žd<+W®|×Gü0W[mmí±cÇêééMŸ>}ïÞ½ÆÆÆ—.]‚»Îž=«­­}ôèÑÏ?ÿÜÌÌÌÑÑ1))©½½½  V°··/--Å›ºwïÞ´iÓðM???--­ääd@JJŠ®®îŠ+¤Ž«««kaaöûï¿÷ôô ¡X,îêêbG$Q8CC2--­õë׿£á(¦¼{÷îy{{wwwŠ‹‹ýüü@$%%%yzzzzz&%%‰D¢/^899ÕÔÔ,_¾¼¶¶6==}ùòåär¹°5Y/xˆÀÀÀùóç¯ZµêæÍ›€þþþÝá!dËRH¤%K–Ü¿núûûÃé B¥RW¬XQXX7çÍ›WZZŠ¿Küå—_æÎ‹W¦P(ááá™™™áááÊÀë>^(JÆ#™L.—ûã?º»»ûøøœiÒ$h,((زe‹F ª¨¨€öõë×OŸ>½¸¸ø»ï¾£Ñh'Nܱc‡–°AI ]väeIÞЄ„„˜™™MžIFü÷AÊûèPWW_¼x1ÑQ å}|hkkoÛ¶è(ò”‡ ¤<1 å!ˆ)A Òï0ª««ñO»ˆ‘¢­­M__ÿ&ô»*ˆ÷ƒÔïªà„€®óÄ€”‡ ¤<1 å!ˆáÿ–€1r£?ë4IEND®B`‚XQilla-2.3.0/docs/dom3-api/globals.html0000644000151400015140000000606111653571065014511 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
Here is a list of all file members with links to the files they belong to:
XQilla-2.3.0/docs/dom3-api/DOMNamedNodeMap_8hpp.html0000644000151400015140000001027611653571066016661 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMNamedNodeMap.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
Include dependency graph for DOMNamedNodeMap.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMNamedNodeMap
 DOMNamedNodeMaps are used to represent collections of nodes that can be accessed by name. More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


Defines

#define GetDOMNamedNodeMapMemoryManager   GET_INDIRECT_MM(fOwnerNode)

Define Documentation

#define GetDOMNamedNodeMapMemoryManager   GET_INDIRECT_MM(fOwnerNode)
XQilla-2.3.0/docs/dom3-api/DOMDocumentFragment_8hpp.html0000644000151400015140000000677011653571066017637 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMDocumentFragment.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <xercesc/dom/DOMNode.hpp>
Include dependency graph for DOMDocumentFragment.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMDocumentFragment
 DOMDocumentFragment is a "lightweight" or "minimal" DOMDocument object. More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/DOMTypeInfo_8hpp__incl.png0000644000151400015140000001066311653571065017111 00000000000000‰PNG  IHDR½u”w¾bKGDÿÿÿ ½§“hIDATxœíkT×ÚÇŸ„áRnrÂÂãˆåu-‰‚B«\­V*Ëz‰PÁ¾/uÕâ«õÚÕ‚6 (”ZÁ‚ÚªE%*XDŠÖ  µ(å4@’ÌûaŸ3ŽÉuŽ1xÜ¿O{ž™ç™fþ³÷žL`XAó‚° -óZ‚}ƒaö † Ø7&pôT799ùܹsz*Žy~ õQV_¾©®®®¬¬ôôôÔS}Ì3yðàÁµk×ôT\_¾OOϤ¤$ýÕÇôD"ù׿þ¥§âx~ƒaö † Ø7&`ß`˜€}ƒa‚ï§ž¡PH¶œœFŽkccC»»»333/]º$•JÝÜÜüüüfÍšedd„ry<^VV‹Å"·_¹reYYYvvöÍ›7“““µ÷˜––ÆçóÿKÍÙÙÙ<v-A6l(..>~üø_­ßb`ß@jjª³³³Z­¾{÷n^^Þ¢E‹öìÙcii ]]]±±±¶¶¶"‘ÈÅÅ寿þÊÈÈ(//ß¶m›Í€¦¦¦[·n‘>Ëå•••¨=nܸ¼¼<J¥K–,Am°²²ÒëÇimm=uêÔÁƒõºƒcøqÊÆÆÆÎÎÎÞÞ~Ô¨QÉÉÉÎηB«öíÛgcc³}ûöÑ£G»ººúùù‰Å⦦&òRöõõ•H$d© .øøø ¶©©©ê½ìþ‡£ßKåñãÇàèè¨×½Ãû† ‹Å ---E‹………sçÎE] ‚ËåΚ5‹üî< @"‘?!:{öì„ úÞEJJÊæÍ›Q[¡P×ÖÖ644…Â’’’>ú("""%%¥··”J¥X,Žˆˆˆˆˆ‹ÅJ¥R£šP(>ÞÙÙÙÝÝ}Þ¼y´O?øàssóñãÇ€\.×%FWÐ ô;ßÜ»wÏÅÅ,--íììêêê46¨««:t(¹HUÏ3H›Íöóó;wîÜÇÿøãÀÀ@r•««+j¸¹¹577@SSSdd¤P( …‰‰‰R©T» ½½=ÐN›d2™Z­Fx<*«Á€€zWH+FWÐ ô/ßqäÈ‘±cÇ¢ÅÀÀÀ}ûö‘½ twwçääŒ=šŒx{{wuuUWW———£Kö™œ?^"‘x{{;88ñ{÷î¡ÆÝ»wѹ´¶¶ÎÎÎ.*****:zô(ƒ4Ð8ßTlmmÙl6é¶ÆÆFd²ç© -FWÐ Þ7ííímmm---•••kÖ¬‘J¥3gÎD«bbbd2ÙgŸ}VVVvïÞ½óçÏÇÆÆÚÛÛ‡……‘éh¨Ú¾}»‡‡õ‹Ÿ>*•ê‡~˜>>äǤEC •´ –žþfæÌ™ÍÍÍýö÷7éééMMM_|ñZlhhˆŽŽ.**2¬*­ Ñïoôt~ ?N½bzzz¤RéñãǧNjh-¯1oœo®_¿.‰BBBÈo–ÀÂÂbÚ´iTE…VL¿Roì8õ&€Ç)L¿ûÃì °o0LÀ¾Á0ûÃ=>g¨¬¬LLLÔ_}LßÈd2ý×—oÈgÚ¯/ååNîîíìº -„9¾¾¾zª¬¯ïýþpqù?±8&4ÔçÙ›¾yàù † Ø7&`ß`˜€}ƒaö † Ø7&`ß`˜€}ƒaö † Ø7&`ß`˜€}ƒaö † Ø7&`ß`˜€}ƒaö † Ø7&`ß`˜€}ƒaö † Ø7&`ß`˜€}ƒaö † Ø7&`ß`˜€}ƒaö † Ø7&`ß`˜€}ƒaö † øÿm=á“O²®_òF»††v;; 3³¿³ˆÃ1úá‡ùÎÎÏõŠ«ÿy ÿþ©þŸï”Ÿ_A½Žäru-6 §ž0}º/ýK9£Y³FÓ®z3Á¾y Aíë2U*uxø»¯\Qÿûæ)¢¢þid¤yLØl–¯ï 0´–~™™™­­-¹ø”oäryMMÍ+—Ô±¶V¿õ–Ɉ–ø€ túðêäôcâ㉸¸‰l6ý“Î7Š?ÿüS#‚ç7:‰°it}£cc#CKè¿`ß`˜€}ƒaö † Ø7&¼ö¾©¯¯Ÿ7oÞ37«««c±XÔ5ýòåËçСCd¼  ÀÄĤººX,Ö!C4~ÏÂb±êêêШA¥££#11ñwÞ1332dHRRRww_¯°×ÆZzâµ÷M~~~xx8íªÛ·oÛÛÛ£¶ÍÊ•+u¥5jõêÕ íííððáø¸¸¤¤$ooo´Ù;w*++É,™Lvîܹ¾…ÅÇÇWTTäååÕ××gdd,_¾\C] û)…û÷ï¯ï¿ÿ~WWíªÚÚZ¨$Ó?~ìååµhÑ"‚ /^ìëëÛÓÓƒ¶€àààÕ«W“Y™™™!!!P[[‹6@ *666¥¥¥äâÙ³gÝÜÜt©z)ÐÊx)\½zõêÕ«ÔÈ ÷7GŽáñxè1VNNÎСC;;; ··wùòåNNNŽŽŽË—/ïííEïéÓ§ÝÜÜ$IRR’›››ƒƒÃܹsÑeM›G\.×ÝÝ=++ ”J%mzKK‹………™™µ“'ÛcÇŽ€‚ŽQ€L“ÌÌÌ={ölܸqïÞ½™™™ÆÆÆä–3fÌøé§Ÿˆÿ U¹¹¹QQQ}(++«;w¶¶¶¢Eÿ¿ÿþ›V:D™™™¤B‹µÿ~;;»Í›7Ab±xĈVVV'Nzô(//ZZZPýÉ“'×ÔÔ”––òùüµk×Òû>ãÚý ßÈd2WWW@@ÝßðáÃ¥R)júøø }UUUA 6ìðáÃhíµk×ȶvV[[›±±ñÖ­[e2™Z­–Ëå*•JWzddd[[ÁÔ7d:B­V‡……EGG?uŒjkk?ùä“Ï?ÿœ ˆììì   ‚bZß¡T*KKK×­[çååedd´ÿ~ZUèQã€NDOO*îåå…Ò õD"!B¥R¡,j}‚ <ÈçóiƒÚ⩼ß±nÝ:##£û÷ï“.—KíÆ¬­­‘>4Kàr¹ÕÕÕÚu´³‚(..ŽŠŠ²°°ðóóûõ×_u¥ËåòÐÐPÔ¦tô›x–o¨éˆ¬¬,kkë³gÏr¹Üüüü'Ç ¶¶V"‘ðù|µZ¾k×.¢Oßtttäää(•J´¨V«×¬YÃãñhU¡C¤á››7oR÷nffVYYIÖ§vNT555Ô,TS¡P `ee%—Ë¥ jŸ*/a~wïÞMMM \¶l´··'L&+--Eq4Kpqq¹sçŠ\¹r嫯¾Ò•¥P(Ôjõ¡C‡ÚÚÚæÏŸ?mÚ´¶¶6Úô'NS…)•JhhhxžO¡‘ÞØØ˜°eËÿ¤¤$‘HDNMãÇ—ËåÅÅÅ………ºîàH‚øðÃÑm<°X¬)S¦ yÚP'R$löS§fРAÔ‡Òׯ_§-E;éAF€šš—>‚/ÕDÏÓߨTªÀÀÀäää¶¶¶9rÅ¢¢¢Ðýê˜1c–,YB½€’’’Auuuuuõ¸qã.\¨+K¡Pp¹ÜÜÜÜæææÝ»ws¹\…BA›ÝÐЀê477@FFÆÃ‡#""€ÒµÈår‚®¿¡¦«Õê©S§N˜0A¥RÑÓÓ#fÏžM½v ‚ˆ‹‹óðð …q¸pá‚”A111C‡=vìØ­[·JJJÆŽûé§ŸêREhõ7äå„Ú)))®®®'Ožlii9}úô°aÃX,Aiiiíííº²PM¡PX[[[VV6dÈ/¿ü’6Ø÷I ãTJJÊÈ‘#Q×úóÏ?;;;£)£GæÍ›gkk;`À€E‹uvvRDwwwbb¢‹‹‹µµõìÙ³e2ŠkgqðàÁÁƒ›˜˜ >¼  €6½§§ç½÷Þ£ [¿~½ÍàÁƒ Ð~{{{ÇoiiIhùF#=33ÓÔÔ”‚(++c³Ù¹¹¹Ôó!‘H`ÇŽç‰öjT*•k×®fffo¿ýöÊ•+ÑÐ@«Šx–oT*Õ7ß|3xð`kkëààà‚‚Ú-©mT3==}РAöööñññ …‚6Ø÷IióÌ+æèÑ£W®\!sss}||ž™õ<ß`=/g~ƒyõTUUEGGWTTtuu•––®Y³fÁ‚ÔƒÿoÒëÁŠ+ºººÂÃÛ››ÝÝÝ?þøc‘HôÌ,+++íÍhƒ/ÊSÿ§íÁƒ×®]ÿ/Æh€nå<==ɧ0LÀ¾Á0ûÃì °o0L ¹oll|õ:0ý™îîn'Ð4¾ÁÑFÃ7øÿìc˜€ç7&`ß`˜€}ƒaö † ÿåÊà­ŠÈ?AIEND®B`‚XQilla-2.3.0/docs/dom3-api/PlatformUtils_8hpp__incl.png0000644000151400015140000002726411653571065017626 00000000000000‰PNG  IHDR8u$ûÆybKGDÿÿÿ ½§“ IDATxœíÝw`uÞ?ðïôdÓCH/¤NEIb Ù¨åÅCñ¹;ðПxâ)âsžå°  Gñ„¥Äižé†ô¶É¦l’-óûc|æ†mÙ$›my¿þZ&;3Ÿ™ý0»Ÿ™oáPEL ר(C¡&… ˜*`r¬Œ([°`±C˜pΜ9cìàŒú`j8NLL ŸÏ7v Bkkkyy9¾ L ž¨˜¢ìììäädcG1!äçç¿ùæ›ÆŽ”¡ ˜*`rP¨€ÉA¡&… ˜*f)…%==ýÕW_mjj"„444¤¤¤è²Š¢Þ~ûí… ê1¤††íKØêª¦M€C¡`®>ùä“Ç …Â?ü®:†]¥©©iÉ’%ô뎎Ž~øá믿ç0•÷;iÒ¤åË—`§`ÖP¨˜+WWWwww°°° 6”••õ÷÷k_E¡PˆÅbúõàà !Ä0ÓJ²÷ëââ²víZìÌ KÀår !r¹œ½ðÒ¥KÏ=÷\ZZÚ²eË8@yá…!>ú¨ÒkBHooï»ï¾»dÉ’ìììO?ýthhˆnšuýúõǼ¤¤$%%åĉ«W¯ÎÊÊ:pàÀéÓ§—/_žžž¾{÷îaÃcïKm‹¯‹/®Y³&55uÅŠ§OŸV»‘‚‚‚•+Wfffîß¿ŸÙÎO?ýôä“O.]ºôã?–J¥jŽèL€‰@¡`®$Iccãßÿþ÷ÈÈH'''æ¯ýýýþóŸÃÃÃ÷íÛ·nݺ;wvuuíØ±ƒräÈBû5!äÃ?lkkûì³Ï¶mÛvõêÕo¾ù†^~ðàÁM›6…‡‡B®]»öé§Ÿ®]»vçΗ.]Úµk׺uëöîÝË<-ÑDi_ª²eË–¬¬¬ýë_O>ùä{ï½700 ú¶Ë—/ïܹó•W^ùòË/™=;vìwÞùë_ÿzùòeºÓ´Ì sõì³Ï.Z´(==}õêÕb±ø7Þ`ÿÕÆÆf×®]ëׯ÷ðð ÛwõõõiÚ”L&ûñÇ_zé%__ß§Ÿ~úÌ™3ôŸÖ®];mÚ4;;;BÈã?îààššJY±b…ƒƒCZZ!¤§§g,"•J)Š’H$666iii¹¹¹¶¶¶ªo£÷>gÎö×­[ýì³Ï21«]æÅÊØÀ(íÛ·Ïßß_Ó_­¬¬êëëßÿ}‰DB?ÑB$) ???úŸþþþmmmôë   æmô–•^3(ŠRûZ;''§>ø@(îÙ³'""bÅŠ³gÏV}›‡‡!„Ãá°0q21«]æOT,Óààà–-[žxâ‰/¾øâ¿ÿû¿µ¿ÙÍÍËåÒB===é×J¥ˆ|>Ÿ=‚p]]ÇÓ¥³þàà B¡Ø²eKnnî¢E‹^{í5µh”JZ}}=ýâîÝ»t%£i!˜*–I*•Êd2++«¡¡¡={öB˜1Á$‰Ò›­¬¬RRR>ú裦¦¦Û·oïÚµkþüù#ÝcZZÚG}téÒ¥¦¦¦ëׯ¿ýöÛ©©©ÖÖÖÌT÷Kãp87n<þ|__ŸT*µ²²¢›~?~\Ks5Ú'Ÿ|ÒÐÐPYYùå—_.X°@ËB0/hú`™&Mš´nݺ­[·ÚÛÛ¯X±bÞ¼y¯¼òŠP(Œ‹‹[¶lÙ÷߯ôþ—_~ù“O>ùÝï~gmmýðï\¹r¤¦žzê){{ûO?ý´¥¥ÅÃÃcÞ¼y«V­¢ÿäãã£i¿„›W_}õóÏ?ommõóóÛ¼y³ !äý÷ßOLLtttÔ²Óùóçÿñ˜7o³Ò˜ŽîmˆÀ08ÎæÍ›“““ˆIkhhXµjÕÙ³g‡]¨]~~þ›o¾‰oCSƒ¦_`rP¨€YrttÌÌÌÔe!˜#*`–\]]ÿð‡?è²Ì 09(TÀä P“ƒyTŒopPV]Ý\QÑTUÕT^ÞèätŸ±#šX¬­ùÿó?§¢£}cbü‚‚<¸\ޱ#*§PPuuåå••M••MMwî´Ëå kk^h(?2ÒG&;Ɖ…Ç›têTÉG‘Jå6QQ¾ÑÑ~ÑѾQQ¾11~®®Æ`"B¡0¾ ª¦¦¥ºº¹ºº¹¸¸¾ºº¹¡A$“)ll¬¢¢|#"¼ŸxbVD„O||€·· ½ÊgŸ­6nÌÍÀ@íéÓ!--ÝôgTUÕüÏ^¼u«U.W8;ÛGFúDFúÐSl¬¿££­±C°|˜™@ÏZ[{ŠŠêè»ÕÕ-µµ­½½ƒ'(Èþ¥ááâemÍS»‡âææ6òsÝ(Šcg×>Æ£0ÜÞ^;»6+«Ñ­/‰jkkÕ~J¥òÚÚ¶ââ»ÕÕ-ÕÕÍEEu­­=„ooçøøÀˆŸˆïøøÀðpo´Ð;*cÒß?TZZ_]ÝRUÕLÿ¢íîî'„xxLЉñ‹ˆ ïÄ{GEù9;Ûé¸ÍÇ{lD1Péî¶mk³ï谗ɸ|~D„ÕÖºBBBº ¹Ó¾>ëÒRO©”ëì<äåÕïå%±²RŒb;ÔåmÝÝýUUÍÌS—ÒÒ‰dÈÚš7eŠW||ýÔ%11ÈËËi1 €Ë7o¶2·Ø‹‹ï¶´ˆ !vvÖÌýuº2aÚq™LqölEnná™3åb±$))8;{fzz¼››ãxïZ­çŸÿšòùç†n·¦PP·…‚œœ}}ƒ3fggÏÌÊš>iÒ¸7Ð’É ":èbµ¦¦…¢(v2ÄÇÚÙYw0… €FEÕÕu²†Þ¾Ý&•ʹ\NX˜7ó4"ÂÇßßÍÊÊ@¾SuõêíÜÜ¢ãÇ‹š›»gΜ’™™¸hQ¼ŸŸ«aÐÄX… cpPvþ|•PXpòd —ËIM*$%'Gijb7zznßncžº”•5tvöYYqCBøì„ rçpÐZ @*ÿÑÙÙWVÖPUÕL7쩪j‹%„>ß)!!ˆ~féÂ7ÀÝzU¥¥ ß~{åÔ©’úzQHˆ×Ò¥Ó33#"| ‰ZF/T]]ýyyE‡]-(¸ãêêž/$Íšb”`ZZºÙ-+*¥R¹³³]d¤/:èhB&®ÁAYUUs󻺺™nÇåà`ëÏüˆŒŒôqq1æµwî´>\›[T]Ýä‘”‘‘i*õ Ãt F}½('çúþý?ß¹Óî½xqâ²eIÁÁžF I©ƒ>ÓzP©ƒ~XŸÇäÌ0¡¡P€‰‚=L0}‡»¶¶U&SðxÜÐP>Óš=L°qµ´ˆss …‚ââ»^^N‹OËÌLHJšb²L™`¡Â(.¾{èPÁ±c×;:zãイGáînœÎ>P HZ²dš—×Dœ±D©ƒ~UUÓà rýØXü'µP¨L\EÕÕu²§VPîî5ëïïf¦ÓGèÝyšž…þݹpaœ¿¿›±ã29(TØärÅÅ‹7ºzâDÉÀÀ¯sG¦§'88LÜvPZ:èÓ[è'´QQ¾­¨…B`éèè-/W3L°Ò0>¡{‰.ØS L™âõè£Ó-x ½@¡¢3wäÙ³öö6<2533Ñ|çŽÔ/±XRYÙ„ú  ‹50 e•L´a‚Ç¢¥¥[(, §@ñöv’‚$Ô'º@¡¢]KKwnnQnnáÕ«·}|\ÒÓ{lf\\€±ã2-t}f¸tИÈP¨Xˆa‡ þ¿{“°{‰.ØS ¸»;.Y2}BM¢(TtT]Ýœ›[(üòK=wdvöÌ  Ë™;RèÖbÅÅwéËZEEc{{/Ç ¸§ƒ~x¸7þ«X*檵µ§¨¨ŽŒ«¶¶µ·wpb<½½ƒ'N …/Þ´··NK‹ËΞyÿýa˜ÃnP¨ŒˆBAÜÎÍ-:räZwwÿŒÁÙÙ3—,™æä4QÐtИ8P¨˜‡þþ¡ÒÒzö×3=L°‡Ç¤˜˜ :LðX0S œ?_ÅårÓÓã33z(ÒÖ]xG…ÊèÐsG …'O–p¹œ‡²ü¹#õHµƒ~]]'EQè `P¨˜"¹\qóf+]( ÌtyŸ°Ã{ ‰d(99*##á‘GâPÝé •1êîî?}ºŒž;ÒÅÅ>##A Hš9s f¥úåå}}ƒt}ö`†“'£­€©C¡`|&x¼)M2gN¸@´`A¬«+FÐ'*úÒÐ :vìú7ß\®­m p[²dúг§L™@sGê—–úLç=tÐ0A(TŒ ³³¯¬¬Œ«ªª¹ªªY,–Bø|§„„ ú™Id¤OHÒ$[ckÞ®\©ÍÍ-:q¢¸±±kæÌ)™™‰ééñ¾¾®ÆŽË2¡PÑ;zîȃ¯´µý:wdVÖtOÏIƎ˼1ôéGÖ……umm=è `‚P¨Œ»ÁAYUU}'=L°ƒƒMl¬?s?ÃëQmmÛÑ£¿NÊâ‰Y‹O t7v\…Ê8aæŽüþûâÁA=wdFFžèKww?}‰fwП4É6$„Ï4µ‰ñóð@‰`P(TôLÓ0Á<74”Ϛ Ãë{ ”É“=‚$LÑhH(TÆ[OÏÀÉ“%yyEgÏV88ؤ¦NÍÌL|øáh R§_2™âÖ­VtÐ0:*cÕÖÖSYÙÄ Æuûv[OÏ!dòd líí½ÇŽý:Š‡Ç¤Å‹§eg'ÅÇ;® …ŠÁ47wçå …ÅÅw}}]-ŠüñYS§ú;.‹%TV6¢ƒ>€¡P‰d¨¤DÍ0Áî±þ>ô—VT”¯³³½±ƒµpì)Pm/ž&$͘Œ»ËÆ‚BÅ𪪚óò *¨«ëˆˆðÉÎNfz{;;.˧ÔAÿÖ­V¹\áìléÃ<6Ÿ:5ÀÁÍóF… €6JÃWW7×׋är…­­Ud¤/† 6 ‰d(/¯(/¯èüù*»hQ|ffâܹ‘hƒat(TŒ…ž;R(,ÈɹÑ×7HÏ™•5£qŒÚú„oogúa ý}ú#‚Bà¿üÒA$ôM2Õa‚év\¡¡| l`R©>hbgB¾ýöÊÎç ýÏÎÎ>Bˆ»»#ýO.—ûÜs=þø,£Å„Ô׋rr®8pùöí¶°0þ’%Ó–-K ö4v\€úÃC¡‹¢(¦c {ºw¥a‚#"|ÜÐýÚt°§@‰‹ ÈΞ™–àfì¸@šš–¹sßÕò†óç_ ã,Т¸øî¡C99×ÛÛ{é¹#—.މAL :è(A¡–£½½·¢¢QÓ0ÁL_F lšêê:ºJ×'ÁÁžË–ÍÀ(faþüíMª_%'&ÆïÌ™ F‰ 4aÏ)“)æÎÌÈHÀÜ‘¦I©ƒ~QQ]k+:èÃÄ‚BÌ{˜`v;.GGÛ˜?f0.´ã2qì)P¼¼œ‚™Aê3òùçùo¿'“É•–[Yñ^=síÚ¹F‰ †%œ:U’—Wô㎎¶©©±ÙÙ3çÌ çpð“×t©í O·cš L›6ôÁb Pó iºw«¨( l*jjZlüý‡o¦EO°MOâêê•5=33!)i î š––î3ÞT(”¿J¸\εk[0¡‡ékjê:~¼øàÁ+¥¥ ~~® Æ/_>;&Æoؽ¾pa†Ý3"v}ú¶]MM :èƒ%A¡&ª¥E\\|Wi˜`‡~Ï0ÁhÇe:¾û®ð÷¿ÿæÅþÃÑôö(ÖÖ¼´´¸ìì™÷߆>BfméÒ®^½Ã®U¸\άYSŽyɈQÁHUU5 …BáÕ–1=wdvö,>ßIí›ûû‡ââÞ˜<ÙcïÞçt¹7†!ܹӯ{±–aÿþK›6 år³„ÇãnÛ–½bÅoŒŒ3wä±c×ûû‡è¹#—.îèxÏÜ‘G^é¥}„pœœl÷ìYó›ß„+`ÐN—ú±±þJŸïèÔÕuÖef&¢ }A¡#&“)ömÛ÷ƒƒ²[·¶¢­ÎЬ²²‰.Hèg֪ã—¹hmíyæ™ÝEEuÌïÔ“'ÿH¡(êÂ…šC‡®þðCyoï=Ê#Luv¶7jÈ gÝÝýqqfwS±²â•”üÝÃÌÚà ìôéR¡° ?¿’Çã.X+$¥¤DÓsÝ>öØŽK—nÉå ‡p8œW_MñÅyƆ7®ôsrn¬[÷ÏiÓ&¿õÖÒéÓ'Cø0á P‘9s¦ì7ŽÔ׋èf?ýôÚ”)^ÚW¡(ª®®“݈Vuºwúúèïï†éÞÍ˵k¿<ýô—]]æGªµ5oÍšÓÒâØS dgÏLOwss4n´0~ž|rç¹s•2™‚beÅMNŽúç?Ÿ3vP ]]ýyy¿ÎÉç;ed$Ι¾fÍn¥Æ~éé ÿûrŒfv”:è—–6H$CJôƒ¼¼Ô7d{÷ÝãÿøÇYŠ¢(ŠZ¼8ñõ×3Ñ,Æ… èêêÕÛ¯¿~¸¤¤‘Ë%ô÷‡C¾øâ·éé Jïìèè-/ÿÏ0Áwî´‰ÅDå† º—˜»ýû/½úêaŠ¢Øm~!¶ýýƒ!!^YYÓ³²¦c‰ 'çÆ‹/ \.gÇŽ'/žfì @ÏÊÊè&aR©B,î§ëRÇ óÚ»w-f=2kš:軸8°Ç­‰Tm»»råçùù•ôïJºçáòå³ÿô§E˜®F … ¯®®ã­·r¿ÿ¾˜Ëå°’Z[óÖ¯Ÿÿâ‹ó˜Ë† ž ¤Rùk¯ ¸LQ„5×íÛ[¹ò>ƒÇF#‘ ÅÆ¾>0 %„ØÙY—•mÅuK%—+’“·ÕÖ¶©þ~°²â:8ØîÞýÌý÷‡%6==·oÿ§ƒ~YYCg§úú‰‰›ÛÚzØëòx\{{›—_žÿÜssml0òŒ Ц§gà£~øâ‹|…Bù®9!„Ë儆òëëEÉ!$0Ð=*Ê72Ò'&Æ/2Ò7,Œ&©¡A´zõ®êê&¥û© kkÞòå³ß}7ÛÀq­[÷ÏãÇ‹ádd$ìØñ¤±ÃñRYÙôðÃïiú+—ËápÈ–-YkÖ‘‘¾NNËòýôÓÍgŸÝÓ×7 ©J¡9;Û•”lE¥:¡œ:UúÌ3» ¡öìY“š:ÕØáÀxy÷Ýã;vœÕò½@!„³bÅìwÞà"0ˆÅ••'N”|þy¾¦÷ðx\¹\qß}¡ùËÒØXFæížÇp‰D$+0……õÛ¶ýPSÓ®¶U[GGovöÌ1Î$%‰$ÉX¶†‘›[úöÛ§ärŰ÷7Äâï¾ûù¾û¦$®á¹¹¹ÙÛi¨1dé°¢£]m!QQ®ÆǤÙÛÛ»¹©#‡±Î0EQß~{y¸*…B8ðseeÃöíK\\0ÊŸ©¿+a@€««5]¨]‘^~ùrí#üϲe Ï??ÇÕ‰j(eé=¿/{zzª«« ˜Š¢ÎŸ¿›“SÝÚÚOÅår¬¬¸R©BÓ“7…‚ª®nŽ‹ ËNÛÚÚÆ²oE„ÂÊ'niÂ&^ñðŽkTº‹‰‰ã×3²T3gú©­½iì@L——× c}Y76öZYwwåçç254¤\½TT4?ûì¾—_žÉ磃¢I×+áµk5ŽÆ›X\.‡îæJQäÈ‘¢Âºµkýý‡I &¥,Us#<99Ùpá€éII!›7©T~ófKuuKeeSMMKYYÃÝ»"…BÁårlm­¥R9}GÃ!Mc,T!^^^±±±úÆKJJ²±C¥üü|½lY:,[Û@‡`î?íÊÊÊô²˜˜>ßCê­X‘aøÂØ÷•ð½÷nÈd¿*t¿ù¡!!ÄÊŠâåîîî.¬ ‰j–bPÏÚšíí·dɯcŒ ÉjjZjjZè¹KK›šD UUÕdÜPÀDÌžbìÀ(Šºy³…bkkÂõ£k’ÈHŸÀ@Ì£†BteccëÏîwãFq]]Wp°©ôCãÅTÖ`d2Å_ü¶…Õ]IDAT64”àÆáà:zƒBFÏÆ†æhì@Àh¬­yÉÉQÆŽ,Æ€ÉA¡&… ˜³/Têêêž~úéaßvóæMºwó‚½ú7¬¬¬:Ä,ÏÉɱ±±)))˜•pX‚ƒƒŸzê)íÓ5PµjÕªI“&é¾ý›71­ž ñ8Nxx¸Ò 6 .d>PµŸ,G1¨®”p¨z§—,%÷&•‹‹KFFÆíÛ·Gɰé¡úé=èŽ:3‘úe^×LMa¨v§#‚¬¦œ{zLíÌ7Q;P9vìXVV–Ú?ÕÖÖzzzÒ¯]]]ÿô§?iZ}Ú´i¯½öÚúõ뻺º!ÝÝÝ/¼ðÂæÍ›ãââÆ/r¶‹/655Õ××ïÙ³G,OŸ>ŽD­ÆÆÆýû÷———&6PË0‰wç΢¢"f-‘Htþüùac£Ó‰m¤G§#]ŽŒH/YJ¿¦“ª±±ñܹs …bÕªU#ŠéæuÍQÆŽn§`0¦œ{#]‹ðH™i¢š}¡rúôéÔÔTµR(ôkOOÏwß}WË꯿þº§§'£›6mòõõ}å•WÆ-je^^^>>>þþþ)))G ùàƒ4½Y"‘B‚‚‚ ¨2LâÍŸ?Ÿ}ÿæ»ï¾›;wî°±ÑéÄ6’#]ŽŒH_YJþ/©|}}wîÜyñâE±X¬{$H0¯kæˆ2vt;ƒ1åÜéZì€GÊLuÄ…Êwß}çïï/‰!ß|óMDDD__!D*•nܸÑÛÛ›ÏçoܸQ*•ÒÏÎþýïåççoÞ¼9((ÈËËë©§žb¨®EÉÍÍ·³³ Ù»w/!D&“©]½½½ÝÑÑÑÞÞžýœŽyý›ßü†BÿJSûô–YbccóÕW_íÞ½ûwÞÙ³gÏW_}emm­)H=š*‡ó»ßýîøñãš¶Ã>.·yúôé°°077·wÞy‡9999‘‘‘|>ýúõƒƒƒjêšão&!$;;ûàÁƒÌ³Z¡P(ôx5 ¦³ª”šŽ´««ë·¿ý­§§g@@À† !gÿþýÑÑÑîîîï½÷žÚ Í=Q-5K•ðx??¿;wîÐK ß~ûmMkI$…BqèСÎÎÎ5kÖdffvvvª]ýäÉ“iiiìÀè6Ó º…Òêëׯ߾}ûC=´yóæçŸžÝ¿jüM50Š¢>ýôÓôôtí{§é¸Mµ£+Ò D©®®¦ÛHhZh"&ZâÑæÌ™ÓÓÓsáÂ…3gÎh·DGª'P÷óC/×%=¼½½y<^mm-ýÏ[·nùûûÓ¯¹Üa.8¨™¥šH$’Ç{lãÆ×¯_ß±cûOš>kM«—½³Ç´)++SÚ”öB•¹'¤Ef£!¯™J´|kÚéäÉ“ÙyXQQÁ¼¶Ô¬£!÷tÏ=íkiXí)U{òµïˤ•]µèòDE.—ÏŸ?ÿ­·Þêììôññùî»ïèåëׯôØg³gÏþ¯ÿú/vÙ·yóæøøø’’’’’’xà¹çžÓ´–D"±³³ …mmm_|ñ…D"Q»úªU«èíÐìÚµ«»»{éÒ¥„UwÒ ôU eöê …"##cîܹt»©¡¡¡øøøåË—àÐ(Š"¬á‰óóó—,YÐÕÕ¥ËÞ5msçÎÌ«Ž'¬Â7%%¥¦¦æÊ•+áááþóŸÕ.Ôž †|¢2ùà^xá…èèè””¥åDeTMµ éåjO îçGKÎ()EQ+V¬˜7o^mmmIIIll,HªyH*Q vÑ"³”ÒüDE$q8œ'NôõõÑ£ß\¿~ÒüQj9XÕ]0Ktߡ~Èçó;ÖÔÔtâĉæ;R—‚2«+ç°Ym‘Ù8N×LŸ¨¨ž„awúñÇœ:uª½½ýßÿþwdd$‡Ã1JÖQ¸špî©]kØ€ÕžM'ß\UM¿>þøã„„úIÐÑ£G}}}éÖ{b±øé§ŸvssóððX»vm__û6lØàçççââ²|ùr‘HD/W]‹¢¨o¿ý644ÔÆÆ&***''GíêCCC‹-b¶uëVWW×ÐÐМœz¿R©tΜ9“&M¢TòOiõ¯¾úÊÖÖ–iE@QÔ•+W¸\®P(ïC£îm ¸råJö‡¤}ïZ¶©ú£º7Ÿ¾üòËÉ“'{zz¾ôÒK‰DíBíÉ`ÈBe&óÁåççBþñÐïa_ø”¨]H/W{u??jÓCí‘RÕÙÙùä“Ozxxøúúþþ÷¿g rÕœ4L¢ìëÙ"³”ÒÚôëoû›»»{``àŽ;–/_Îçó)Í¥–ƒUÝ{‰Ž{‘ÉdÛ·o stt¼ï¾û蛋ìS=ìåÔŒ®œÃfµEfã8]3u,TÔží;•Ëå|ðAhh¨‹‹KZZZNNŽ———Q²ŽÂ•ЄsOÓZÚV{r4|sITÕ,å°O_kkkyyyrr²ê KróæMÕ JÕ.ÔŽ~P;Æxôµ?£HqÚé("ÉÏω‰áóùc Y &uåÔKVÃxËËË LHH ÿyøðá­[·Ò½§t¤¯¬#¸‚f¦“¨ªYjö>˜ âââU«V]¿~½¿¿ÿçŸ~ã7ž}öYc Ì”ÕÊØ€8;;?ÿüóº, %=¨`R0R¯¼òJVVV[[[HHÈ3Ï<3ÒlAÖ˜r¢¢éŒš~Y@ƒ0)húF+!˜>4ý3€BL 09(TÀä P“£fxâÆÆFÃÇæh``ÀÎÎN_›Bâ‰C–‚^èëÊÙÕÕ%“ÉÆ¾€Á• IM¡R]]mø8ÀLé«PééééééÑË¦Æ ²ôE/WNüX£À• ‰3¢™í }TÀä P“ƒBL 09ÿ¯ÂÈ£µçìIEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMUserDataHandler_8hpp__incl.md50000644000151400015140000000004011653571065020247 000000000000005973742f1c408d215f6b7153ffa70fedXQilla-2.3.0/docs/dom3-api/inherit_graph_26.png0000644000151400015140000000410411653571066016035 00000000000000‰PNG  IHDR­(°íbKGDÿÿÿ ½§“ùIDATxœíœYLSÏÇçZUe“ "‹¢ ¸àôA­”ªA´F4¢A^¤Ѱ„  b⃢$’È$ˆ´¨`jˆ-n  °Ò‹p Jçÿ0ùÏÿÚ–Eä¿e>O3çΙ9gú½çNÓ „þõ,[ê ˆD0bwêëë333—*ÂbÂãñRRRp÷ ÔÖÖ …ÂEа¨455ÙÚÚ²-FúƒJKK+ÂÒpàÀ 9 : ˆDþ©: X¸¹¹‰D"¥RÉ V«%‰¿¿ÿŠ+¶nÝzéÒ%Fƒ}½¼¼t~~ £(ª³³À0ŒX,^·n™™™——WZZÚøøø ÁtvvR5Ðr8ÏùgêÐØØØ××÷õë×;wî  ¡K###[¶linnÎÊÊzóæMrrrQQŸÏŸššBº»»ÛÚÚðT4M¿|ùwããã[ZZÊËË{{{óóó+++%  ««ËÎÎN?›¤¤¤?Ïhæy¦[}®@÷îÝÓ±üMtttà®V«åñx©©©¨+‹CBB4 À0Œ››[^^òçÏŸÇW ÂÂÂðœ6662™ _­¯¯wuu…vtt,àîé¤0+¿µºP( …lËo׃‡r¹\š¦%%%ëׯW«Õ€ÉÉI‰Dâèèèàà ‘H&''Q{ö왫«k]]]ZZš«««½½½H$·¦¾ ªªÊÏÏÏÔÔÔÝÝýîÝ»FcÐ]*g(›E:uªººu SSS9`aa!‘H QW(–––Âÿ>ÊÊÊ"##ñ`++«7n ¢.Çëéélß¾àä䄃A¹àÀ(Š***Ú¸qãÊ•+/_¾Œ>¹ÜÜÜM›6YYYíØ±ãÑ£GÓeÁNP‹Ø«Ï¶(æXD"ÑÑ£Gûûû_¿~ŒYYY½½½r¹<00ðܹsH¡aaaÏŸ?OOO÷ññ‘Ëå …"((H,OçÅ0Œ‰‰Innn___~~¾‘‘Ã0ÙÙÙ݇††ÐM¬Óz7Sss³ „)X©Tê$õêÕ+GGGäûñãG''§·oߢiÍÍÍüøç|òä —Ë511áóùÙÙÙÝÝÝhöÉνµµÛ‘‘‘4Mçååóòò¸\nMMR©”J¥žžžh°~ x~ƒ[ô‡õ`>: izÍš5~~~éééØèííÝ×ׇÚR©4 E&—Ë!„6lxðàºúþý{ÜÖ÷R©TÆÆÆW®\¡iZ«ÕŽŒŒLMMMç>óÐASS“ö‹‹KNN†òù|95L&ËÈÈðõõåp8EEEÐPîl;àÅ‹‰‰ 4¡¯¯/rGϪƒ[´:€fddp8œl155e—kkkÙÄĺªP(ôçÑ÷‚644DFFZXX„„„<~üx÷éÐßÄâââÍ›7£¶“““T*Õq¹yófhh(ö­««óôôÔjµááá·nÝÂv†aJJJðÙB«Õ¦¤¤p¹\hH(w|úô‰¤™™Y[[t`p‹û|øòåËõë×wíÚ•€vvv8nš¦e2²œ»»»‘¥µµõâÅ‹ÓyiµÚû÷ï«TªãÇïÝ»W¥RMç>GÐǼgÏÔŽŽÎÈÈÀßjµ:++K `KppðÈÈHCCƒT* gOuèÐ!…BºE…††âïœ: ÜuX¶ì—=_»ví»wïp÷dz¦cp‹fõš™ßÖV«‰‰‰/))©­­­ªªBöýû÷'''÷ôôÈår@““Ãö:räÈ… ÚÛÛÛÛÛÏœ9ƒV½(ŠÚ½{wyyùðððÄÄ„±±±¹¹ùtî?þ¼}û¶~ T*ûûû¿}ûV__¿o߾ϟ?Ÿ={]JMMýþýûÎ;kjj:::***‚‚‚¸\îéÓ§±;‡Ã‰ˆˆˆÝ¶m›ƒƒ¶[ZZŠD¢ƒVWWwuu566ŠÅ⨨(<€a˜ßÚϸ¸¸ÄÄħOŸ¢ƒ> ¢0ØÅàÍoõÿÁ.sy.\»vÍßßU¼ŠŠŠÕ«W«T*áððð±cÇlmmW­ZuòäIµZÍ®Tãããb±ØÙÙÙÚÚ:**Цid×÷Baxxx,_¾ÜÛÛ»²²rwýRŒÚì]\\¢££Ù0!Ã0 ¾¾¾æææ>>>™™™£££Ø•¨ºº:@NNŽŽ]£Ñ¤§§ûùù™™™¹¹¹%%%A'''ƒƒƒ---g ×?Ôžššºzõª‡‡‡µµµ@ ¨¬¬´··‡†^"gÏ£¿EìÕgeÁ΄…¢ªªªµµwËÊÊþß‹.Ìù€°€ÈåòÇ·´´ŒŽŽÊd²”””'N,~ÞG",&‰‰‰£££áááJ¥ÒÝÝ=&&&66vñà :XbŒŒŒ233—üõ`ò\ @t@@ : ˆ¾7òùüѰ˜( Ƕü¢òÇÿx<z CAòqä|@@ : ˆð‘¢ýš-*IEND®B`‚XQilla-2.3.0/docs/dom3-api/inherit_graph_4.png0000644000151400015140000000450011653571065015750 00000000000000‰PNG  IHDRÃ(ÌžÙ¼bKGDÿÿÿ ½§“õIDATxœíœ{H“ßÇϼ7]ó2çF~SQÓÔ4ó-”nFšy'+£Œ œ–A&µ éö‡©‘Œ$Tð‚¢&³ÔL³$Ó™ÞÒ4M§›ºÍ™ºßÖtËjæÏ8¯¿Îù<çóy>ç³÷žçœg„`0ŒÖF'€ùGÀJÂh¬$ŒfÀJÂhÅNCC›ÍÞ¨T0› .—«ØýAIµµµaaa7%Ì&cdd¤¥¥Eɨ³r\qqñ_ɳY)..W2âuF3`%a4VF3`%a4VF3ü›J")`mmËçóH$’äädWWW###OOÏ[·n-//¾vvvJl“H¤þþ~Ô‹ŒŒ´¶¶644ôôô,//ÿÕ !„ÑÑц††€þþ~‰ô›S]ëño* ÐÜÜ<>>>::úäÉ“¹¹9ww÷™™tH$íÞ½»µµ5##ãýû÷©©©2™ êèè B …ÂW¯^Ýééé]»v‘É䢢¢wïÞ?~<""¢¦¦æ—Ò+((èî˜\ºtéO'ü#ƒƒƒ¦¦¦¨½ñW*PTT¤dÙ¤úúúˆ®\.ß·o_ZZê²X¬½{÷.//Äb±µµunn.ò ºrå q4///88˜ˆ™˜˜®x:‹ðKöõõ­k©×5þª:ùe%UTTÐét@!,,,´³³‹ÅÂÅÅE‹ennnffÆb±Ñdjkk™Lf]]]ZZ“É455‰‰ …(ÚJ/aeeåÎ;õõõÿûï¿§OŸB—––VuW¬—b[II(UÔ¦Ñh\.Wi^YYY¾¾¾È—ÃáØÚÚÊårtèÀ‡ˆI£Ñš››}E"Ñðð0j …¸¸8*•jee•””$•JQÌüü| …’‘‘!¤R© ÅÌåryNNŽ£££‘‘‘ŸŸ_UU:éÊ9*Ö¶±±±ªªÊÍÍmË–-4íöíÛªâ¯==õhFIÂØØØ¸¸¸oß¾YXX¼}û322Ž=úåËçîî~ùòe4ààà—/_¦§§;99ñx¼ÎÎN///‹¥ÊK,ëëë?zôh||œÃáèèèˆÅâ;wî¬ê>33ƒ.$Jí•Jjmm511A¥ðù|¥I555¡º>}úD£Ñ>|ø€Â’Éä©©)¹£7ÒªDEEùûû ðx—˵µµU¯$TÛññq==½øøøÑÑÑüü|Àä䤪÷ØÓS/)I(2 ”ÂÁÁa||µ¹\®››šÇƒÚÛÛ—••¡£ÝÝÝD{¥—@ ÐÕÕ½{÷®P(”Ëå"‘H&“©rWÅo(éÍ›7¦¦¦„obbbjj*„0???00° qQTbqqQ[[ûãǨ[VVfkk‹|ëêêÐgÕWÚÙÙ¹  €ˆVXX¨^I¨¶ß¿ïéé‹Å2™¬¡¡AMüµ§§¾¼«êäwVÜ&&& ]]]gÏž%ŒCCC–––h»øùógdwpp ÛÙÙ!‹££ã‘#GTyQ(”ººº––ƒáëë󯯬¥¥¥Ê}íôõõÙØØ äi4Z{{»Ò€ööv¢VRR!,-- %ì Å­” Z[[===ççç'&&d2:ÀÖÖvttµét:@WWWM’ÎÎÎDwÇŽJà;JT[==½ÞÞÞ   ¼¼<5ñÿ0=õüŽ’FFF>|””DMMM - …Bâ³b”NB–ööö›7oªò’J¥r¹¼¤¤D œ­ÊK*•”––òùüÇH¥RUîjÖIÄS€úúúÇ3Œ™™ttvvÖÞÞÞ××·ººº···¬¬ÌÉÉÉÛÛ{aa*ÜÏ;çèèèççGÄDöÉÉI*•ÕÔÔÔÑÑ‘žžxöìéïï?88ØÙÙéää„6Œ@á–Tß}233 FMMÍÔÔÔ‹/ìííI$zÆápfggÑÅ®XD“H¤êêj‰D’’’hkkCD"‘Òà5¦§^šY'effººº¢MVyy¹¥¥%Z~ÎÍÍ8q‚B¡P©Ô„„‰D¢8……‹E§Ó#""ˆuÆJ/”†žžžƒƒCEE…w5{7&“511¡8 ±Xœ””äììL&“œœØlöüü¼R)ëëëYYY+K<44J§ÓŒŒöìÙC¼ „ &&†J¥ZZZ^¼x‘Ø­EI2™ìÁƒ666ÆÆÆAAAfffB6›mbbbccSQQ±RIÂû÷ïoݺ•ÉdfggGDD˜››/--ùøø* ^czê5 ±7f¨ªªjoo'º¥¥¥nnn˜*4¶âƬ</::º­­m~~¾¥¥åêÕ«§NÚè¤ÖÊ*ß™Äl)))óóó!!!|>ûöíñññgΜÙè¤Ö VÒÿ:::l6{“þ(ßÝ0š+ £°’0š+ £°’0š+ £Vy ø÷óÀl"&&&VP“ÉÄ €ù) }¡EÄÿˆÑx„Ñ XIÍ€•„Ñ XIÍð?Û(“ºëþv´IEND®B`‚XQilla-2.3.0/docs/dom3-api/XPath2MemoryManager_8hpp__incl.png0000644000151400015140000003161111653571065020602 00000000000000‰PNG  IHDRuBÐ*bKGDÿÿÿ ½§“ IDATxœíÝw\SWûð“lE†Ì¢ÖUˆZÇ[µ*Š(Kж¶¯ƒZëúY«¾uu Å2D­Ú Šƒâ@\ Ò  Ê!’Üß§½p C<ß?üàÍÏ9Üsópî½çЂ@ ëèò@YA"ÐMHt$RÝÄw€Â7ß|“––&ï(€2Ù²eËäÉ“åô9H)¢œœœ'Ož899É; RSSƒ‚‚äôEH)(''§íÛ·Ë;  RSSåôQðŒ@7A"ÐMHt$R݉@7A"¥¬ <==E_׺sçδiÓ B"fÏžýÕW_•——K¸gÒÒR ×ôññi3ïõ—_~)ù¤H¡‚¡¤8‘H¤”•­­­ÏO?ýÔØØˆâp8‡Z±b…µµ5^!,,ììÙ³ ?üðAß~ûmG»*//Ÿ;w®øÃq8œÝ»w/\¸pΜ9»víb³ÙxyEEÅ‹/ÈÕžŠGñùüøùù 8pÀ€þþþ÷ïßÇkº»»§¦¦’7ÔþüóOщJø|~xx¸—————Wxx8ŸÏGyxx$%%­X±bÞ¼y'Ož¼zõª··÷ìÙ³£££ñV{÷î;wîÇüóÏ?·´´”––zxx<~üxñâÅ«V­úî»ïðš\.wÆŒ’Ó¾à8˜k×®­X±bΜ9¿þúkGkqñâÅ•+WΞ={ݺuééé” 5''§Í/¢MÅâ•ïܹ³|ùr//¯Ÿ~ú©µµ•r¡$çÙƒDJ¹ÙÙÙ-^¼822Ò××wÈ!¢577s¹Ü¦¦¦²²²ï¿ÿÞÞÞ^GG§©©iÛ¶m¶¶¶qqq«W¯Žˆˆ¨¯¯?räBèܹsä¶¡¡¡‘‘‘l6›N§ÇÆÆ’SÖdffš››ãŸ¹\.¾¡Æáp?~<~üxr? åååG=pàÀãÇ;†—?zôèçŸ^µjUDDDzzzTTÔêÕ«cccqÇØ?üP]]þ¿ÿýïÁƒ§NÂ[ýöÛo›6m ¸sçN ïܹcnnnccÓi0”Çݾ}ûðáÃÁÁÁGmhh \óòå˱±±Ÿ|òÉÉ“'—-[vøðañÄ¡ÚÚÚ¶ù}µ©X¼ðÂ… {öìÙ½{wFF™áQ. h ‘RnAÓéôW¯^µù(00pÖ¬Y³gÏ^±b›ÍÞºu+BHMM-**jíÚµ†††&&&!‡Ó~·‹/ÖÔÔœ0aB¨¡¡N§[XX¨¨¨455ýòË/‰‰‰_~ù%^“N§Oš4 ßPKOOwqqÑÕÕ%÷“””ôù矛˜˜X[[“ýXxÿÓ§OG-]ºTSSsÆŒøX|>ÿÆŸ}ö™¹¹¹µµµŸŸ_JJ ÞjÕªUÇ5jƒÁÈÎÎF]»vmúôé4­Ó`Ä|Þ¼yÚÚÚ~ø!BˆÍfS®yöìÙQ£Fééé9ÒÏÏO|q¨êêêâ+/\½zµ¥¥¥ƒƒC`` YXÊ… ̵§Ü®]»–••uèС7NžqâÄ´´4kkëG­_¿^ôˆ#¦àFFF¢P®YVV&Úá7xð`ñÄ¡¶GY±–––äVda)P4H)±ÚÚÚŸ~ú)$$ÄÕÕuÅŠhÓ!ÔÇÛ±cÇŽ;Æ×ÚÚš””D¹Z›oz„Й3g.^¼¸{÷îöé—‹‹KSSSNNÎÇÛ¤5zzz‡Âù\cc#‹Åê´Púúút:½¼¼ÜÊÊ !TVV†$’븻»ïÚµkðàÁ...ÆÆÆ’#¦àm K¹¦©©iQQùFdqq±øvô°ZûŠE•””à=¿~ýgZ- hàÖž²"âÀÖÖÖ³gÏF-Z´H__ÿÇ¿Ukk+ŸÏg0---øòU>.—ÛÑV'**ÊÏϯ_¿~¯þA~Šo¨|ø0::£3Œ7®Y³fÒ¤I“&Mêh+mmíÕ«WïÚµKCCcéÒ¥žžž¡¡¡ ... ,¸|ù2åVEEE<ï›o¾]xóæMògÄÄD//¯6„……Ñh´I“&KR´Ï?ÿ<,,,$$DUUuÊ”)Ë–-kso gKW®\¡,)e0”?þ|ûÍ)×>>¢)iG Åóðð8}úô¢E‹Þ1]·ö€’iii)//OJJúÏþ#³ƒ~ûí·<////::ßQÐÇÁ­= dž={¶uëÖ9sæÈrÔò%K–477oÙ²¥¾¾ÞÜÜ|æÌ™}ôÑ»ïVKK«ý~(PLpkOÁ­=Ð%pkänít$R݉@7A"ÐMHt$RÝãH)¨'OžlذAÞQH„ gH§óÕÔÞtiC¡PNo顨ºŠË5d0xªªò!„‚ÑÐ0PU•Ã`42\ Æ(‰”";v¬¼CHK ½²R«¢B‹ÇS±´lþÞË—5'ÚùøŒûðCg5µ.ôk>}Zêë¡££~âD••a—ŽÞ£‰éþýÂÇo\»–gi©4yÙ²±j=zDɵ¶ «™Ì &óï쪲’25Õuuhgg†³+[[S:&ï` O€D HäÁƒ¢ÈÈ´+Wž2ôùóG._þ‹‹eWw’’’»fM¬›ÛÀÈH?==Í®n.›D {ö¬üçŸo$&fêêj¬\9> `Rÿþ]XÈ.+&³â¯¿*rrJš›[µµûY[›à¤ÊÞÞÌÉÉÂÀ@KÞ‘@Ëm9{öQ\\zvök{{³€€Isæ ×ÕUïÆ®¢¢ÒvìH\¶lì®] ºwËL–‰VRRwôhêÉ“÷ètÚ’%cÖ¬ñ07ï/³£wŸ/,-­c2+²³_ãìêÕ+Amº¬llLTTà]H¤µ‚‚ʈˆ?/^Ìär[gÌp ˜8z´u÷vÅç 7oN8yòÞŽó'u;$Ù'R‹Å9vìVTÔ-‡7wîðµk§ÙؘÈ8†nc³¹ùùåLfå_Udg¿~ú´”ËmQUU2ÄØÕÕwY98 02Ò–w¤ ” ‘oáó…IIÙqqéwéùùMX¸p”©©n·wØÐÐ|<#£ðÇ—ΞýÞ»Ä&¯D ãpx§Ne„‡ß¬¨xãééøùçÓFŒ°’K$ïB –”üÝe…³«‚‚JÜeeggfggæêj‰S+UUy J)ð·ššÆãÇoÇÇß«¬dO˜`8iʇw¼TZZçëQSÓxìXÀ»§òM¤°ÖVÁ… ¾ÁdVŒ5äÓO=§Nu¤Ñ”øÉn6»9?¿Œì²ÊÍ-mjú·ËÊÞÞÌÎÎÌÍm±±Ž¼#E‰@·n1ãâÒ““s45ûùøŒóöcmmüî»ÍÊzåçed¤sâD T-R„D  ‰ë×ó~üñÚ£G/œ,V­š<þÈ^óÔQeå‘*ž?¯ ==MrÀ{{3{{ó~ý`:€DªÃ÷ªbcïT::X¹r‚—×iH”œœóé§q|`s䈯¶¶tö©8‰‰+aÐ ƒ€€I>>ãÔÕUå””544U“ÃYåå•q8<ÜeeooöOv5ð]îÿ€ò‚Dª/ÊÏ/޾•˜˜ÙÚ*X¸ð}Ÿq®®ÒûÀ䃯®\9~çN/)öÓ(`"…={VöóÏ7/\x¬¯¯åëûAPÐd]] yÕƒp—p!;»¤M—™]õ¾œÚƒDªim$'çDF¦=xP4p ¯ï‹‘îëZ­­‚/¿<óÛo÷ßñ=J ›Ha¯_³~ùåÏ“'難Ð/óé§SLMõä”,àaBÉrsKY,ƒA·¶6!“*;;³®Ž¿ J©>¡´´.&æÎ™3÷kk9³f¹úøŒ?ÞVêƒ_³ÙÜÀÀ˜¬¬âððS¦8HwçHá)¬¶¶1&ævTÔ­¦¦–9sܾøbºT8S.••oȧ׳³K^¼¨„ººööfd—•‹‹¥â ݉ToFÄíÛ‘‘i7n<ÓÓÓèê¤x]RXX½|y×äà0 '¡‰†Ÿ?ûù盕•o<=ÿûßénnƒä”Ü]VLf%“Y‘™Y\SÓÈ`Ð-,ôñ€ ¸ËjÐ ¥~ÿÐ7A"Õ;Õ×7ÅǧŸ:•QXXݽIñºäÞ½Ç48~< çîg)Q"…á±®TⱦMs’wP A´ËŠÉ¬ÌÏ/oiáëêªÛÛ›ã\]--55¡Ë  è ‘êmrsKM½t)KE…>þH©?HÞÞÙ³ׯ?íî>ìðai½ôGIé)쟱R=*vq± œÔ›ÆJŠ6]VOž¼ªªj@ÿLÆìêj‰ µ³3….+€¢Dª—hnnMHx(•Iñ$GÄÁƒW¼ºfÍ”M›fõtr ¤‰‰+ÁÊÊÐߢ¯ï=×G¨ìÈɘÿΪœÇãëè¨bLgåädÑ£‰;H)¥÷ú5ëĉ»§OgÔ×7Íœéú.“âuIssë_œº|ùÉîÝ }|ÆÉàˆÊžHayyeáá7/\xl` 4ÙÏo"ÜÀêî²b2+˜Ì¿³«ÊJ6ú§ËŠœŒÙÖÖTê¯P€xH)+@xù²4'Åë’ššF?¿¨‚‚Š£GWNžl/›ƒöŽD {õª6""->>]SSÍÏo‚¿ÿD}}-y¥LÈ.+<œUNNIss«¶v?kkr8+'' ¨U@Ï‚DJù°XœS§îÅÇß+.®0ÁÖÇgÜŒ.²œb¶  Ò×7B ž84l˜¹ÌŽÛ›) Ïoy«µ•ïí=6$ÄÝÂB_ÞA)%>_XZú÷dÌ8»zõŠ…'cí²²±1§ÓÒ‰”2yð (22íÊ•§j>>ã–,=t¨‰Œc¸sçy`à±!CŒŽ ñ¬ ½/‘Ây¿þšqäÈÚÚÆ¹s‡ò‰§½½™¼ƒRzl67?¿œ|7ðéÓR.÷ßɘq—•£ãCCiH èƒ ‘R\nËÙ³ðƒäxR¼yóFHk».9qâî–-g§Nu ó‘ý“=½5‘ÂðX ?þx­°°zêTÇÏ>ó|ÿý!òª÷„%%wYá쪠 wYáWñdÌdÙ¹ è ‘RhLfEddÚÅ‹™--=2)žä„Bbûö QQië׸n݇ry ½w'R+áûï¯ff¾ÂCOMêïü÷6»9?¿Œì²ÊÍ-mjú·Ë gåæ6ÈØXGÞ‘$RŠˆÏ&%ýý ¹……~OLŠ×%\nËÚµ'¯^}ºwïBoï±ò £/$R$­±‘WXXEg•›[Êbq ºµµ ™TÙÙ™YYÊ;R@‚DJnž=+?vìVbb¦@ ”ͤx]}kûö sç?xp‰‚$v}<‘šOŸ¾øð «qîÜák×N³±‘õ #¢“1gg—¼xQ%uu5ìíÍÈ.+K¸? @o‰”¬á·Ü£¢nÉrR¼.áó…›7'ÄÇß[·nº¼^У‰©¥…Ÿ˜˜ùÃ)/_Öxz:~þù´#¬äh«ÍdÌ™™Å55 ÝÂB¸€»¬ 2PœVè*H¤d§´´.&æÎ™3÷Y,ÎÌ™®>>ã&L°U´ hCCspðñ;w ¾ûnÑâÅ£åÎ[ ‘j•pèÐÕ¬¬¿ÇJ˜6ÍIÞAqD»¬˜ÌÊüüò–¾®®º½½9pÁÕÕÒÙÙ¦_@‰@"Õジ}» 22íúõÑÐÐüñÇ£m,ƒŽ´¶ 6mJ8}:㫯f¯Y3EÁŸÃ€Dª«þ+áz]]Óœ9n_|1ÝÚÚXÞAiâó…/^T‘]VLfEqq-j×eeccÍÐC ‘z'ðòå·&Å[´h´Îr*í{þÙlnPP̃E?ü°ô£Üä˜xeeõ+WFñùü_.·•ÅâXXü; ¥£ã€°09E§4ðX ߟR\\ãéé¸n݇ァY>è6››Ÿ_N¾øôi)—ûïd̸ËÊÑq€¡¡Üæî —Dª›X,ΩS÷âãï½~ÍRIñ:ÂdV|÷]Ò/¿¬ ïÕ«Z_ßH«ñرÀ‘#w¢I“ö<^Eù†6l˜ùßÿN—qHJ •pàÀ•ìì×0VBß!KJê˜Ì r2æ‚‚J‚ LMuñ+8»‚.+º ©.Óâ]¹òT[»ŸâLŠ'ÆÂ…‡ïÞ}4ùÿþo^’‘Qèïmd¤4hBÏ_qäȽ{ÿàó…í?¢Ñh[--õe•R»¿ðÀ+·n1]\,'ÁX } ›ÝœŸ_FvYåæ–65ýÛe…‡³rs¤€=ë(&H¤B¨¢â™Y'â65µœ;÷?H>jÔÀÀIŠ3)žII9Ç"¢íÞ½`åÊñçÎ=Z·î×Ñ£‡DD¬ÔÓSÐôHeeõ£Fíl–Òé4ˤ¤ur‰ªÀCO]»–geeèï?Ñ×÷ƒŽNæÊÊ7W®äúú~ ãÌàɘÉ.«6“1ãìjØ0sÅ¿Ü H¡Ó§ïïØ‘øàÁ¶Ž^¯c2+"#Ó.^ÌäóqR<1ššZÆŽÝU[ÛˆË4méÒ1§NeÌ›7BqfÐëÔG}Ÿ™ùJ(|ëDe0è;vÌó÷Ÿ(¯¨z‡üüò#Gn$&fš˜è»/]:¶ý˜Úß~ûû‘#7vì˜4Y.Akhh.*ª&‡³ÊË+ãpx¸ËŠœŒÙÕu ©©®¼#@!ôõDê§Ÿ®íÝ{!´{÷‚+Æ‹~Äç “’²ãâÒoß.°µ5 T¸Iñ:uà@ò?¤÷ÅètD§Ó-½oß"AOÔñãw¶n=×æîžŠ -+k'<0+%%uG¦ž:uO]]ÕÏo‚¿ÿD}ý¿_žg³›‡ßÎå¶Ðh´Í›gò‰§|Cr»¬ð€ ÙÙ%mº¬ÈìJ]]UÞ‘ }7‘jmlØðëÙ³„B!ÚàÁ†wîlÆéEyy}tôí„„‡µµ ;)^§^¿fM˜°»µU ºPE…Þ¿¿Fròz ¥y´ˆÅâ¼÷Þ6àßDJE…>vìÐ3gÖÈ1ªÞ‡Åâ;v+:ú6×êí=võjúÿýÕƒ¯â'étÚêÕS¾þú?òŽÈYc#¯°°ŠÎ*7·”Åâ0tkk2©²³3³²’Âó—ååõéé/¼¼F(Ýô}4‘âr[V­ŠIMýKôëùôéÕ¡¸¸ôää##EžOÇRRrÛ$R!CÅÊÊà?Ö)Qïš·wøíÛä/‹N§8°DÑæTîØìæãÇoGF¦±ÙÜ… ß¿t)‹Ín&?¥Ói«V¹oÛ6GŽ$:svvÉ‹UPWWÃÞÞŒì²rq±ÔÐèòdÌÉÉ9þþÑ..–»vÍWÀ @@}3‘ª­m\ºôè³gåäE!CÅÌL·¤¤î½÷®\9aîÜáJÝM}ÿ~¡—WXG¿\:6eŠCLL bŽ×Ð^BÂÃ/¾8I>&¥ªªòôé.¥I•Ç?}úþþýÉuuÑ?6Bt:ÍÇçƒ={@èH›É˜33‹kj º……>9à‚Ù AžE\ùᇂ „BbÖ,—­[ç(ø‹Æ ês‰TIIÝ¢EGJJêD³(ŒN§ÅÄLªôƒëÂiÓöTµù Ä >_àà`¶ÜÁÁ\öáuCc#ÏÙyKK !Ä`ЧMsŽŠò“wP½Ÿ/3æ›òòúöÑé´%KÆ|÷Ý"eIÄ܉vY1™•ùùå--|]]u{{s<à‚««¥³³eûwüü¢RRrñQ † AÞÞcBCgÁó‘@Q(Ç{[Ò’›[ºdÉÏoÞ4·Ï¢B**´'O^÷‚Dêĉ»Lfe›×ÜTTèB¡°Í¥K•`å6´µûMŸî”””#bþüòލ÷»t)«²ò åGB!ñë¯B!±ÿbÈ¥€$LMõLMõ&N´ÃÿmÓeuõêÓªªôÏÌ6®®–x°P;;ÓœœòR†¯Û§Ogœ?ŸùÅSƒ‚&+˫ǠwëC=Réé/–/ÿ…Çk:,²Vfæÿ)òĽb±8cÆìâpþ}®·øá‡Î+VŒÿà%}199' 𠦦Znî·ýúÁ´1yòÿ «Ú¤ã¢TTè³g¿æÃ`(åAÅŵyyeÏž•?{V–—WV\\K„‘‘vm-‡òKŠN§YXèoÙò‘bNoú”¾òm”’’Ãç Ä|1 „X,εky3gºÈ,0©;xðJs3!¤¦¦ÒÚ*45ÕY¶ìƒÅ‹G+ûàj\nËÌ™.Eõ´´4æóç•**t uô·–@ üý÷,uuÕƒ—@¿x4°ýdÓ2IDATmð`£ÁƒfÍrÅK8^~~ErröáÃ7(7 ‰ÒÒºààÑÑ·¾ùf¾³³… ãà-o}!q¹Üºº:y…Òs³¿ýö*N¡TThtº ~ÀQ($ø|!Bo}OÄÄÜî4‘ª««ãr¹=o÷½xQs[($ º»»í¼y®ï¿?ˆN§!Ä-+ë$à¼ãÑËÊÊÞqâM:ìâÅlë=†††¾þ;%½ ñx_|áQUÕP[Ë©¨`×Ô4ÖÔpx<>þ”NG CE…Æã ~ûí>›Ýðÿ7KI{:ûˆw?«‘̯{ææªzz :峞!|Ið hÆŒ^^®!!ôõ}ªÐ;èëëkhhÿ}+‘jhh`2™2©g]½Z””ôÂÂBGKKM[›a` cii¦££®££®««¡««®­­®£ó÷¿::ý$™5¥¬¬¬ººZÁwÕž=é:žžVãÇ[ji©!Ä{þ¼@Âmß=‘êé“ÇÉIûæÍ~zz¼=±±ñ;~åô‚v¤¦†FÖEè­¡«¹\~]]ó›7<‹‹ÿ­¯o®®æfe½ =覢ýR êÝÏj$ëÞÇâ._t:N§ñùBÄ… ÙÙÙ¯V­naS‚çèèØa"…¹»»Ë.œžçîî¾{÷ß?çææ"„œœ¤ð8¹±±±Tö#E,gÏž!#FXuuꪪ¼¼<©ÄàèèhbÒS±OšDÐhžž=´ôÏ"½¬å%ųZÆ×½ýû³pwFSWg´¶ ñóæjÖÖÆööf¶¶¦C‡šØÚšZ[+õ³­@‰¤¦¦¶YÏšôZZòŽ¢Ñé´à`wyG‚ *BúúšvvfÆ™ÛؘàÌI‰&f}$R@™ÀôqêTˆ‰®®Fçk ?HP8 ½* {ð¢ @7A"ÐMHt“t©çÏŸ¿ËTðmN£Ñž?þqõQ½»Þ(Ï1g A>>>ÚÚÊ:Å)Y´ö?ˆñêÕ+???Å/»˜²à"dff2Œ3gÎËÕÔÔrrrð9Nhhè{ï½§­­=zôè={öðù|Ô­z£Q‘VI;Õ»›­¼ôš†€¢Ñh¶¶¶mf˜9s¦\Î… †’,#Qˆ©þýûùå—¡ÂÂB###y‡£zw]I±teeeñññÒ(KöÈÖÑ%.\˜7ožR—aøðá›7o^»vm}}=BèÍ›7kÖ¬Ù¾}»‹‹ B¨¡¡áý÷ßÏÈÈØ»wïãÇ7mÚ7}út@нz»{÷nùÛ¤[¨ÞÝlP¯iøç—/_>yò„ü¨®®.--MNq)V0ò¥‰”‘‘ÑÞ½{BB¡°¶¶VÞá(‡Þ]WR,žÔbРARٛ쑭£K®^½:}út¥.;.BhË–-FFF8+Ú´i“¹¹yhh(^gçÎÆÆÆ7nܘ9s¦Ýüùóïß¿_TTÙ½z3666{›t Õ»›­êM !4uêTÑÞÙ‹/Nž|¸¦¦¦¹¹y›KAáááŽŽŽºººS¦Lùý÷ßqwe}}ýÊ•+ŒŒ,--7lØÐÜÜŒ{2¯_¿>hР˜˜¼ÚرcB¢¯«W¯ÚØØèëëïÙ³/¡ÑhÑÑÑÆÆÆ{÷î2dˆžžÞÖ­[»] =„²¢.]ºäêꪮ®nmm+fakkëÆMMMMLL6nÜØÚÚ*Zi¶¶¶èíºÕ¾ÞŸÏß¾}û AƒŒ}}}q¢*¾è™ öíÛggg§££3~üøŒŒŒŽ"ªJkR)‚‹/ZXXà)ùN:eggÇáp„BaXX˜ƒƒƒŽŽÎ¸qãnÞ¼‰{§ÅÜ`¢<Çjjj´´´444DË.zòܾ}›rÃNWûê7nÜ¡C‡B,‹N§oذ!$ôõõÿøãÔYÛ¿}û6Þ3A6lpss«©©-BHMM-&&&::zÏž=ÇŽ‹‰‰QUUÅ[ÅÅÅmÛ¶MEåßÑÅ´´´BCCããã»Qo]úeáý'&&ÚÛÛ›˜˜¬]»–ÇãuZÞ.5[ÊCtt\AYW¨³«Yjj*å•¡ýVˆêrÑÑ…¥—5„ÐÇüÛo¿‘7Ô.\HV>euuZñ1" ¯ÙØØ¨©©™™™)I0Ul||¼ƒƒƒÁwß}×Ñš%âÏ"²I²kP„ˆÊÊÊ›7ob±Ùl555ÿ’’’¸¸8„PUUUAAÞUDD„……ErrruuuJJŠ ^¾lÙ2OOÏ/^dgg;;;ïØ±o2sæÌ7ndee¡¿Ç±- !ôŸÿü‡ÍfŸ={ŸRx¡··7›ÍŽŒŒD-Z´ˆÍf=z”\AŒ§OŸ>}úTü:’d?”ÕØØØ¯_¿ðððòòò¨¨(ƒÑØØH¹ ˆÿýï ,xõêUvvöˆ#6mÚDYiíQÖ›’üÞ%qóæÍÊÊJ1+ìÛ·ÏÉÉ);;;''g̘16l ‚²ø¢gÂÁƒMLLÎ;WVVöÇà9)Wš„EÊ"a}úúú®X±¢¢¢ÂÔÔ4##ƒ ˆ£GŠÊÒÒ!DÆßþÊsŒ ˆèèèØØXâí%zò”——SnØiãj_½;wîœ={6A‰‰‰ººº#FŒ âáÇêêê‡¬í …BòËGK´iÓ&„Ю]»È%øÛººººMŦ§§t£ÞBYYY oëè—…÷6}út&“yïÞ=›;vHX^Êó¡}³¥>>¢HùwÂÝ»wŒŒºQoíþÌDdíµÿe‰–‚ ˆÓ§OÛØØH~­k¯}³¥<åBÊ’dœHµ¯+¢³«å•r+ÊËEG›÷²†€þÉ'Ÿ|õÕWAÄÅÅM›6\NU§eé40>Ÿoffvýúu‚ fÍšµwï^I‚S±øÚH@¹&e"ÑéYÔFÏ5¨ößt]¾µ§¦¦Æd2g̘1räȘ˜˜6Ÿ¾xñÂÙÙ™ü¯££#B¨²²R  :/´±±)))Á?6LüápOþVœ:::!ܽ/ú³B¡¬(}}ý›7oÞ»wÏÒÒròäÉ·nÝ¢Óé” B/_¾477ǯM›6­¨¨ï¤ÓJCÔ›Üã[!///ÔAˆnõúõk777ò¿®®®-DWšêß¿ÿªU«rssW¯^—Rª#”çXccckk«¾>õddøäÓŠÅ7®öÕ;|øp--­¤¥¥Í™3gøðáiii7oÞœ={6’¸í?xðÀÝÝ}÷?³‹·/B|||jjê7É 433ÃÊ‹ÊÊÊßFÄ¿ý_ä±Úü²0ò|6lXIIÉ»\ëPͶÍ!Ä,T”u%þjFye ÜŠòrA¹y¯l¡?þøÌ™3A´¹•&¦’Å”¥ÓÀTTTæÏŸîܹšššk×®-[¶L’`ÄT,>ÉÉ(פL$İ£Æ%³Õå/Z.—»hÑ¢7>~üøÈ‘#m>µ²²iüÙ³g!SSS•ÂÂB¼ðÅ‹øçN Y¾~,]”Åår…Bá™3gX,V@@ÀG}Äb±("„ð_Õøj^WWwïÞ=¼I²FŬ·¼|ùÿœ••õí·ß¢êDt«Áƒ‹¾‚O0Ê…¨ãJS@¯_¿ ›:uêúõëñ ÊBu„òKNNž1cFG›à“G|+£}õÒéôY³f%&&2™Ì#FL™2%%%%-- HØö/]ºþ믿޼y³}ÊÊÊÖ®]»oß¾I“&mß¾=88˜|^{Ù²eß|ó þ‹!äíí}êÔ©½{÷z{{wµÞÄkÿËÂðŸ³!&“9`À€w¹Ö¡šm›CˆY¨ (ëJüÕŒòÊ@¹åå‚róÞ×° &444ܾ};%%…|›O|%‹!I`üñùóçûí· &àç : FLŶIk(פL$İ£Æ%³ÕåDŠÇãµ´´¨©©q¹ÜíÛ·#„ÈO?ùä“ÐÐЫW¯ÖÖÖâ;ß4MUUuñâÅk×®-**zúôé–-[Údµm466v5*DYQ4múôégÏže³Ù---ªªªššš” BóçÏÿê«¯Š‹‹³³³g̘qøðáöG!ë*22òÍ›7²,`7,_¾ü믿Æ7>ýôÓââb„PGÅGÿ”.$$dãÆ‰‰‰ÉÉÉÛ¶mëh!’¬ÒP(ô÷÷ÿì³ÏN:uíÚµK—.!„üýýE …Ÿ ƒòKLLœ;wn76”$lÊê5kÖ‘#GÆŒ£ªªêééceeeee…’°íkiiÙÛÛoÚ´)$$¤¹¹Y´A»ººâ'^ׯ_ojjúÙgŸáO·mÛVQQ1mÚ´+W®0™Lkkë¥K—677v¯øÕÕÕoCü²°Ï?ÿüùóç<ؼy³„åíR³ms1 AGu%¾aR^(·¢¼\PnÞËIEEeÁ‚ÁÁÁ£G611é4*ñ$ lâĉ|>çÎË—/—0É+–rMÊDB’Ê­A‰vbKølÇÁƒ xäÈoooò´@ 8tèÐСCõôôf̘‘˜˜hllL‹ÅZ¾|¹¡¡¡¹¹ùÿû_.—Ûþ¦5A­­­&LÐÖÖ&;ÕÉô‰Üdm¿°ÍÏ‘ñ³í+Š ˆÓ§O:TMMmذa‰‰‰xMÊ…l6ÛÏÏO__ßÐÐpÕªUG´Ò$©+B²j‘Ù3RÍÍÍ6l0`€žžž··w]]^Þ¾ø¢¥ãóùûöí³±±ÑÒÒ7nþ+„r!ÑY¥uJfÏHýôÓOï½÷^KK AçÏŸ777g±X---;wî2dˆ¶¶ö¸qãð“bžõ!Úcúúúø™ Œ²•QnˆOÎNÏ¢öÕKD}}=ƒÁÀs855µÐÐPò@¶}‚ ¸\®ÝæÍ›E‹Ó¯_?ѧFîß¿O§Óðׯ_ïì쬮®>tèЯ¿þzòäÉ‹/îR½‘ŧ¼BRþ²ðÞ"##­¬¬ŒŒŒ>ûì3.—Ûiy»Ôl)ÑÑqÅåu²®ˆÎfGWÊó­ýå¢ýæ---½¬!ˆ=55!tøðaI¢ê´,âÃBBB444Øl¶äÁH^±í×ì(‘èôò.›%…‡ÍÅ»téRVVùß„„ü¼›‚q"¥,d–H)>Y>lÞ©.¥€€ÄãñÒÓÓ{ú(2øíP¢Ç…ëxG›7o^ºt©Ì×C‰„´”6/;;ÛÇÇçñãÇMMM÷îÝÛºu«ø>v.555 XQilla DOM3 API Documentation SourceForge.net Logo

DOMRange.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  * 
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  * 
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMRange.hpp 527149 2007-04-10 14:56:39Z amassari $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMRANGE_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMRANGE_HPP
00024 
00025 #include <xercesc/util/XercesDefs.hpp>
00026 
00027 XERCES_CPP_NAMESPACE_BEGIN
00028 
00029 class DOMNode;
00030 class DOMDocumentFragment;
00031 
00036 class CDOM_EXPORT DOMRange {
00037 protected:
00038     // -----------------------------------------------------------------------
00039     //  Hidden constructors
00040     // -----------------------------------------------------------------------
00043     DOMRange() {}
00044     DOMRange(const DOMRange &) {}
00046 
00047 private:
00048     // -----------------------------------------------------------------------
00049     // Unimplemented constructors and operators
00050     // -----------------------------------------------------------------------
00053     DOMRange & operator = (const DOMRange &);
00055 
00056 public:
00057     // -----------------------------------------------------------------------
00058     //  All constructors are hidden, just the destructor is available
00059     // -----------------------------------------------------------------------
00066     virtual ~DOMRange() {};
00068 
00069     // -----------------------------------------------------------------------
00070     //  Class Types
00071     // -----------------------------------------------------------------------
00099     enum CompareHow {
00100         START_TO_START  = 0,
00101         START_TO_END    = 1,
00102         END_TO_END      = 2,
00103         END_TO_START    = 3
00104     };
00105 
00107 
00108     // -----------------------------------------------------------------------
00109     //  Virtual DOMRange interface
00110     // -----------------------------------------------------------------------
00113     // -----------------------------------------------------------------------
00114     //  Getter methods
00115     // -----------------------------------------------------------------------
00124     virtual DOMNode* getStartContainer() const = 0;
00125 
00134     virtual XMLSize_t getStartOffset() const = 0;
00135 
00144     virtual DOMNode* getEndContainer() const = 0;
00145 
00154     virtual XMLSize_t getEndOffset() const = 0;
00155 
00164     virtual bool getCollapsed() const = 0;
00165 
00175     virtual const DOMNode* getCommonAncestorContainer() const = 0;
00176 
00177     // -----------------------------------------------------------------------
00178     //  Setter methods
00179     // -----------------------------------------------------------------------
00202     virtual void setStart(const DOMNode *refNode, XMLSize_t offset) = 0;
00203 
00226     virtual void setEnd(const DOMNode *refNode, XMLSize_t offset) = 0;
00227 
00244     virtual void setStartBefore(const DOMNode *refNode) = 0;
00245 
00262     virtual void setStartAfter(const DOMNode *refNode) = 0;
00263 
00280     virtual void setEndBefore(const DOMNode *refNode) = 0;
00281 
00298     virtual void setEndAfter(const DOMNode *refNode) = 0;
00299 
00300     // -----------------------------------------------------------------------
00301     //  Misc methods
00302     // -----------------------------------------------------------------------
00313     virtual void collapse(bool toStart) = 0;
00314 
00331     virtual void selectNode(const DOMNode *refNode) = 0;
00332 
00347     virtual void selectNodeContents(const DOMNode *refNode) = 0;
00348 
00366     virtual short compareBoundaryPoints(CompareHow how, const DOMRange* sourceRange) const = 0;
00367 
00381     virtual void deleteContents() = 0;
00382 
00398     virtual DOMDocumentFragment* extractContents() = 0;
00399 
00412     virtual DOMDocumentFragment* cloneContents() const = 0;
00413 
00442     virtual void insertNode(DOMNode *newNode) = 0;
00443 
00469     virtual void surroundContents(DOMNode *newParent) = 0;
00470 
00481     virtual DOMRange* cloneRange() const = 0;
00482 
00493     virtual const XMLCh* toString() const = 0;
00494 
00507     virtual void detach() = 0;
00508 
00510 
00511     // -----------------------------------------------------------------------
00512     //  Non-standard Extension
00513     // -----------------------------------------------------------------------
00523     virtual void release() = 0;
00525 };
00526 
00527 
00528 XERCES_CPP_NAMESPACE_END
00529 
00530 #endif
XQilla-2.3.0/docs/dom3-api/DOMTypeInfo_8hpp_source.html0000644000151400015140000002503211653571065017501 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMTypeInfo.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 #if !defined(XERCESC_INCLUDE_GUARD_DOMTYPEINFO_HPP)
00019 #define XERCESC_INCLUDE_GUARD_DOMTYPEINFO_HPP
00020 
00021 //------------------------------------------------------------------------------------
00022 //  Includes
00023 //------------------------------------------------------------------------------------
00024 #include <xercesc/util/XMLString.hpp>
00025 
00026 
00027 XERCES_CPP_NAMESPACE_BEGIN
00028 
00035 class CDOM_EXPORT DOMTypeInfo
00036 {
00037 protected:
00038     // -----------------------------------------------------------------------
00039     //  Hidden constructors
00040     // -----------------------------------------------------------------------
00043     DOMTypeInfo() {};
00045 
00046 private:
00047     // -----------------------------------------------------------------------
00048     // Unimplemented constructors and operators
00049     // -----------------------------------------------------------------------
00052     DOMTypeInfo(const DOMTypeInfo &);
00053     DOMTypeInfo & operator = (const DOMTypeInfo &);
00055 
00056 public:
00057 
00058     // -----------------------------------------------------------------------
00059     //  All constructors are hidden, just the destructor is available
00060     // -----------------------------------------------------------------------
00067     virtual ~DOMTypeInfo() {};
00069 
00070     // -----------------------------------------------------------------------
00071     //  Class Types
00072     // -----------------------------------------------------------------------
00129     enum DerivationMethods {
00130          DERIVATION_RESTRICTION = 0x001,
00131          DERIVATION_EXTENSION   = 0x002,
00132          DERIVATION_UNION       = 0x004,
00133          DERIVATION_LIST        = 0x008
00134         };
00136 
00138     // -----------------------------------------------------------------------
00139     //  Getter methods
00140     // -----------------------------------------------------------------------
00149     virtual const XMLCh* getTypeName() const = 0;
00150 
00161     virtual const XMLCh* getTypeNamespace() const = 0;
00163 
00165 
00184     virtual bool isDerivedFrom(const XMLCh* typeNamespaceArg,
00185                                const XMLCh* typeNameArg,
00186                                DerivationMethods derivationMethod) const = 0;
00188 };
00189 
00190 XERCES_CPP_NAMESPACE_END
00191 
00192 #endif
00193 
XQilla-2.3.0/docs/dom3-api/DOMStringList_8hpp__incl.md50000644000151400015140000000004011653571065017343 00000000000000461a661a3cf81737e9f472f1185ed28fXQilla-2.3.0/docs/dom3-api/DOMImplementation_8hpp__incl.map0000644000151400015140000000003511653571065020322 00000000000000 XQilla-2.3.0/docs/dom3-api/tab_a.png0000644000151400015140000000021411653571065013746 00000000000000‰PNG  IHDR$ÇÇ[SIDATxí» €@wçÉ¡œˆ˜*æ‚M˜ØIïÎF†ýL :®‡±nÌëN™ ¶±Á’„ØN&â¼_ ɭɾ}Õ¶8~î¾îOwv-ÿêA4Y)Ñ}IEND®B`‚XQilla-2.3.0/docs/dom3-api/functions_func.html0000644000151400015140000001545211653571065016115 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo XQilla-2.3.0/docs/dom3-api/DOMImplementationList_8hpp_source.html0000644000151400015140000002331411653571065021566 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMImplementationList.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMImplementationList.hpp 671894 2008-06-26 13:29:21Z borisk $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMIMPLEMENTATIONLIST_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMIMPLEMENTATIONLIST_HPP
00024 
00025 #include <xercesc/util/XercesDefs.hpp>
00026 
00027 XERCES_CPP_NAMESPACE_BEGIN
00028 
00029 
00030 class DOMImplementation;
00031 
00032 
00040 class  CDOM_EXPORT DOMImplementationList {
00041 protected:
00042     // -----------------------------------------------------------------------
00043     //  Hidden constructors
00044     // -----------------------------------------------------------------------
00047     DOMImplementationList() {};
00049 
00050 private:
00051     // -----------------------------------------------------------------------
00052     // Unimplemented constructors and operators
00053     // -----------------------------------------------------------------------
00056     DOMImplementationList(const DOMImplementationList &);
00057     DOMImplementationList & operator = (const DOMImplementationList &);
00059 
00060 public:
00061     // -----------------------------------------------------------------------
00062     //  All constructors are hidden, just the destructor is available
00063     // -----------------------------------------------------------------------
00070     virtual ~DOMImplementationList()  {};
00072 
00073     // -----------------------------------------------------------------------
00074     //  Virtual DOMImplementationList interface
00075     // -----------------------------------------------------------------------
00078     // -----------------------------------------------------------------------
00079     //  Getter methods
00080     // -----------------------------------------------------------------------
00093     virtual DOMImplementation *item(XMLSize_t index) const = 0;
00094 
00101     virtual XMLSize_t getLength() const = 0;
00103 
00104     // -----------------------------------------------------------------------
00105     //  Non-standard Extension
00106     // -----------------------------------------------------------------------
00117     virtual void release() = 0;
00119 
00120 };
00121 
00122 XERCES_CPP_NAMESPACE_END
00123 
00124 #endif
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMUserDataHandler.html0000644000151400015140000003134611653571065021503 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMUserDataHandler Class Reference

When associating an object to a key on a node using setUserData the application can provide a handler that gets called when the node the object is associated to is being cloned or imported. More...

#include <DOMUserDataHandler.hpp>

List of all members.

Public Types

Public Constants
enum  DOMOperationType {
  NODE_CLONED = 1, NODE_IMPORTED = 2, NODE_DELETED = 3, NODE_RENAMED = 4,
  NODE_ADOPTED = 5
}
 

Operation Type.

More...

Public Member Functions

Destructor
virtual ~DOMUserDataHandler ()
 Destructor.
Functions introduced in DOM Level 3
virtual void handle (DOMOperationType operation, const XMLCh *const key, void *data, const DOMNode *src, DOMNode *dst)=0
 This method is called whenever the node for which this handler is registered is imported or cloned.

Protected Member Functions

Hidden constructors
 DOMUserDataHandler ()

Detailed Description

When associating an object to a key on a node using setUserData the application can provide a handler that gets called when the node the object is associated to is being cloned or imported.

This can be used by the application to implement various behaviors regarding the data it associates to the DOM nodes. This interface defines that handler.

See also the Document Object Model (DOM) Level 3 Core Specification.

Since:
DOM Level 3

Member Enumeration Documentation

Operation Type.

NODE_CLONED: The node is cloned.

NODE_IMPORTED The node is imported.

NODE_DELETED The node is deleted.

NODE_RENAMED The node is renamed.

NODE_ADOPTED The node is adopted.

Since:
DOM Level 3
Enumerator:
NODE_CLONED 
NODE_IMPORTED 
NODE_DELETED 
NODE_RENAMED 
NODE_ADOPTED 

Constructor & Destructor Documentation

xercesc::DOMUserDataHandler::DOMUserDataHandler ( ) [inline, protected]
virtual xercesc::DOMUserDataHandler::~DOMUserDataHandler ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual void xercesc::DOMUserDataHandler::handle ( DOMOperationType  operation,
const XMLCh *const  key,
void *  data,
const DOMNode src,
DOMNode dst 
) [pure virtual]

This method is called whenever the node for which this handler is registered is imported or cloned.

Parameters:
operationSpecifies the type of operation that is being performed on the node.
keySpecifies the key for which this handler is being called.
dataSpecifies the data for which this handler is being called.
srcSpecifies the node being cloned, adopted, imported, or renamed. This is null when the node is being deleted.
dstSpecifies the node newly created if any, or null.
Since:
DOM Level 3

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/XPath2Result_8hpp__incl.md50000644000151400015140000000004011653571065017206 000000000000008f4058d3bb023262bef12cf109381a3cXQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMDocumentRange.html0000644000151400015140000001637611653571066021237 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMDocumentRange Class Reference

#include <DOMDocumentRange.hpp>

Inheritance diagram for xercesc::DOMDocumentRange:

List of all members.

Public Member Functions

Destructor
virtual ~DOMDocumentRange ()
 Destructor.
Functions introduced in DOM Level 2
virtual DOMRangecreateRange ()=0
 To create the range consisting of boundary-points and offset of the selected contents.

Protected Member Functions

Hidden constructors
 DOMDocumentRange ()

Detailed Description


Constructor & Destructor Documentation

xercesc::DOMDocumentRange::DOMDocumentRange ( ) [inline, protected]
virtual xercesc::DOMDocumentRange::~DOMDocumentRange ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual DOMRange* xercesc::DOMDocumentRange::createRange ( ) [pure virtual]

To create the range consisting of boundary-points and offset of the selected contents.

Returns:
The initial state of the Range such that both the boundary-points are positioned at the beginning of the corresponding DOMDOcument, before any content. The range returned can only be used to select content associated with this document, or with documentFragments and Attrs for which this document is the ownerdocument
Since:
DOM Level 2

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/MemoryManager_8hpp__incl.png0000644000151400015140000001411711653571065017555 00000000000000‰PNG  IHDRuüØ¢¯bKGDÿÿÿ ½§“IDATxœíi\×ÞÇO@*P6E6¯‚[©ú(–´qAЬ¢ˆl*Xe‘«(Úb­â­ÕŠÀM€(‚ ×â¬à£ n((mwVQ‚ ËÜÓO>i!è$“Àù¾šügÎ9¿ÿÉü2'³œ!  ¦ñŒB ¯ 쾂@°ú Á%¼(åååñññx«€ŒŒ’’Ù7 }5ÚÛÛKKKíííñ‘ˆ7oÞÔÕÕáÒ4ôÕˆ‰‹‹Ã[D"ÊÊÊ8€KÓðÿ‚=ÐWö@_A Ø}`ô‚=ÐWØC&“}}}…nhÞµk™LnnnËbD"?J0úJ*´µµ=}ú”ÿ±»»ûÑ£GPÌØúJ*ÌŸ?¿¬¬Œÿ±¢¢bΜ9PÌØúJ*ØÛÛ—••ñG_ååå_|ñ-‡ÃINNvuuuuuMNNæp82™\\\¼a×ììì«W¯zyy­Zµ*-- -ÕÓÓóã?®Y³ÆÝÝ=))i`` ¹¹™L&?xðÀÃÃ#((èÈ‘#è–,ËÑѱ¡¡A1•••ŽŽŽnnnÙÙÙhL&—––nذÁÙÙ977w¨-¹xñâÆW­ZµsçÎÊÊJ2™,2AA©µµµBÝuïÞ=''§3gÎÐoݺµ~ýzWW×_~ù…Íf‹ bôuaô•T˜5k‹ÅBG_L&óÁƒ‹/æ¯=þ|kkkJJÊ¿þõ¯¤§§£ñû÷ï'%%Q(”ÊÊÊÔÔÔÐÐÐÌÌLƒ8~üxGGGrròáÇïÞ½›““ƒ–:wî\LLL@@À­[·¸\.àÖ­[†††–––ÊéííÝ·oßÔ©S³²²BCC)JWWºêæÍ›‰‰‰ÁÁÁ)))ÝÝÝ"·üõ×_333·nÝšíã㓘˜(>ATêÔ©S…º«ªªŠB¡DGGS©T4Y@aaá¡C‡~øá‡ªª*¾áEåè+©@$—.]ŠŽ¾*++­­­'L˜À_[\\¼}ûv}}}ssóààà;wî q555€···ššš££# »»›ÃáüöÛoaaa†††æææþþþüÛIƒ‚‚æÎkkk«¤¤TSS(--upp ÊQQQIMM ×ÑÑÑ××0™Lt•‹‹‹††ÆòåË Cä–ùùù!!!¶¶¶šššóçÏ÷÷÷Ÿ *UUUU¨»ÐÄ—,Y‚&‹CCC'Mš4cƌ͛7ó“”CàýÒÂÞÞ>!!! @hÜhkksssãTWWGÔÔÔJJJBË:ÎãñŒŒŒÐÆÆÆ貉‰ €H$ÚÙÙݸqÃÜÜüþýû’ˆQRRjjj:zô(‹Å:Œèêê ¹eKK‹™™¿ˆ©©©øQ©ƒÑÑÑðP&MšÄ/ÅOVdP¾’ÖÖÖ½½½µµµ÷îÝÚË555;fll èéééìì¶6mmm"‘ØÚÚ:eÊ@KK ºß]ßÞÞ>>>ÞÔÔÔÚÚZOOO1ýýýû÷ïß¿ÿ¢E‹Ølvqq1•Ð^.rKƒçÏŸ›››£Û¼|ùR|‚|©Bµ…ÒÔÔ„ÖüúõkÔxCå8”èèë§Ÿ~š1c†–––à*;;; …ÒÞÞþìÙ³èèèÂÂÂakSRR"“É'Nœhmm}þüyjjê²eË„¶±±±ár¹§OŸFG’’ˆa³ÙGIIi``ýÔÛÛ+R€È-]\\RRRîÝ»Ç`0ª««i4êa¼|ù2À9'Ožlnnþã?¨Tê×_-&(‡@_I2™üòåK¡A @MM-00pÇŽÁÁÁ’Ô¶}ûv]]ݨ¨([[[¡ Póôöö.]ºTB1¡¡¡ñññ~~~'Nüꫯ¢££E¶.rK—uëÖ;vÌÛÛ;777$$DSSS’=Ê?A2Ë–-‹ˆˆˆ‰‰ùüóÏùÉŠ Ê!8Ï™äœ;wÎÃÃãúõëx *•ÚÖÖ+›æ*++õõõ-,,Ð7nÜÈÌ̤P(Ymss³¯¯¯P?‹ Š}þ —=¯F ­­­ÅÅÅ«W¯–Y£Ïž=;xð`CCC]]]ZZÚªU«dÖº<Ï[Œ~ÿý÷½{÷:;;Ëò^ OOϾ¾¾ØØØ®®.CCÃ+V899}|µêêêƒë”[à8pÈÿ8"B £ è+{ ¯ 쾂@°ú Áè+{àõ«‰· !ðxJD"Æÿq¹Ê$’ü>P(NÇ«iè«0yòdwww¼UHJCƒvw·òܹfpzzTjjt­¬:?ý´«:¥Êüùóqi^…ðxHDDna჌Œ@;»iÖŒ HllAVV%•êÿõ×31¬y”ÿ_6‰Ž>wáƒôôlM ññk==lÞœ~íÚïØV>š€¾mÄÅž;w')ÉÏÞÞJõ„C‡¾qvž˜~ëV£4š@_*Ž)NO¿™˜¸~Å kéµB$~þÙkùòY~~”ªªgÒkHq¾=?^râDÉÑ£NNR¿¥D"ž8ácg7mÃÊǯ¤ÝœÂ}5JHL¼väHqBÂ:ÏeÓ¢²2‰BÙhkkæé™\[Û$›Fè«Ñvë‡.8àâåµP–í*+“(kkcoï”úú6Y6-ç@_)o9²¯†ÚÚ&OÏd[[3ù7ÀÌL/;;äÙ³7þþiýý¼åÈx¼R êëÛÜܧOŸ˜•¤ªªŒ·I©«kùæ›ÄÙ³'Ÿ>½YEe =D W ÀÓ§oÜÝOYZêgd*©ÿø‡QVVÐýû/BB2Øl.Þrd<^É;¯^½[»ö¤¾þ„ÜÜÐ „ß ªÜ»÷ÜË+…L¶:uÊOIiLü”‰$—¶¶÷žžÉ::¹¹! j*ÀgŸ™¥§o*)y™Ëã‰ßqè+ù¥½áæ–¨¢¢”}óÀ"¼µH—1têSQèéé÷õý÷»w=ÛŒŒ´†/ P¬^=»·×sçΜ ÆïØ!ü~ñQô•|Ádö{{§47Ó ¶™šêâ-G*¬[gËãñ""Î*+“¶mû o9RúJŽèïçlÚ”öôé›óç·š™éá-GŠxz.`2û÷î½@"CCÉxËÁè+ya`€ãïŸZ[Û”—·eÆ C¼åH€€¥ï»ï.ª«óóû?¼å` ô•\ÀáðBC3îÝ{ž›:s¦1ÞrdDp°}wwßîÝçÕÕUÜÜ>Ã[–@_á‡ÃÛ²%ãÆúœœàyó¦à-G¦DF: p¾ý6‡D"º¸ÌÃ[f@_á ‡DFæ–”<ÉÈüì33¼åàÀîÝ«¹\ÞöíÙjj*³ð–ƒ ðúž u®°°Zï(P bc¼¼ÒJKëðÖ‚ ÐWxW˜—w'9YZï(PÐw)¸»ÛÑFÇ» ¯pãÀ"íæ©S~ŽŽR|G¢@ vwt´öó£Ü¾ýo9 ô>üüóU ¥üèQÏÕ«gã­E^ ‘ˆÇ{ÛÙMÛ°Z]­ØïR€¾’./^¼­¨Ø$&^KH¸’°nÝ:[\TÉ-è»,0÷òJ®©y-¸ AììÛx 1DšìØ‘kbQZZǤ¥ý¿‘Ñ*µGUr‹5àîž8kVì´¢“ghømYÙøj“x¼’"ííŒóçï²ÙÜ©ÿýïc@ffEllÁ¾}Î8¼£@QPUU>}zóÔ©îî‰ í<²cGnff‘H8q¢ouŸÃ—"ß‘J½Áfs ¼½fgßÿ::zÞÒ€îî>OϤÖÖ÷VV†7nüÉÐøÒ¥oçÏ—÷«çÐWÒ‚Á`ÍÇb±Ñ@ÂÂ…ùù[äjægy¦µµëË/ôôôq¹í¥ÊÊ$‡YÊF\u J‹¬¬JÁˆHUÕÓôô›8ªR úúØ;vä0™ý|SØlnqqÍ‹oq& ÐWRÍæ&%]çpx‚A‚ìÝ{B)ÇK˜¢Àdö{z&UT<êC‰DLI)ÃCÔ€¾’ EEÕt:Sä*Aöï/’ÿ=G˜Ì~ÿÔ;w^p8"¦d³¹¹¹U]]½²&9ÐW؃ ÈP§­H$"ÌÌtµá?Û¡@`kk¦¦¦<ÔtÙB£Éõpž·Àž’’'7R…ú•D"òxÈŒFqqÎcù[Éa2ûi´›Ç—²X\®ðhPCCõáÃjj*¸hè+ìqv>^]ýŠ¿+ðµk׊eËþOŽˆ¡ÜE$¿ÿÞÕß ŽÚÄ}…1÷ï¿pr:Ž.£Ž²²2Œ‰Y õ1 îúùçÒ¾¾¿ÜE €‰µªªöÊçÄÔÐWH+.®!‚Lžüid¤£‹Ë<I¿{…£³“™œ|=5õ‡ÃC¯aP©þ+WÚà­Kó‹Å¢Óé8ªQtššºÖ®¥òxˆ‘‘fpðbGÇ£ÞQãÇ×ÖÖþÈJèt:‹Å’pã®.VfæÝ³gï÷õqfÌ0ÈÌôûÈÖ1A¨þæ«7oÞÔÕ’6qF«yôèÍÚµÓ/ž$Ÿ/)Å==½™3g~d%Ož<éèèQ£ÿ?ÿi,)y¾k×"++ðñõƒˆù-ìííe'gÁáð -*ÕF>GüÒàÉ“'XUõþtv^þömOmmîO[î8o f()çà­bl¡««A&Ëãcå—‘%ÐWö@_A Ø}`ô‚= ï«W¯^ùûû»Ycc#zA°xuuµ’’R^^?^TT¤¢¢R[[+ ÍB055õóó1A___ I_ŽJ GÃd—#ý¢ïB;€H>¾ÇÞW………..."W={öLW÷¯W³iiiíÚµk¨âsçÎݽ{wxxxWWàýû÷[¶l‰‹‹³¶–ÑŒ™­­­MMMééé cÞ¼y¨‘´´´œ9s^ÁÿŠÅ3Ô %ÞWW¯^upý:M÷îÝ;tYWW÷ÇS<66VWWíú˜˜CCÃèèh©©FOOoâÄ‰ÆÆÆd2ùÂ… æææÇŽjcô–™É“[¿bñ µH‰ûêâÅ‹ÆÆÆèm„999Ó¦Mc2™6›e`` ¯¯Åf³Ñîµk×LLLÊÊÊâââLLLôôôüüüø?ƃK.]ºdcc£ªªjnnž™™ àp8"‹¿}ûV]]}üøñ‚wþòÂ… 'NCýùÅ***4---íСCééé4MYYy(‘¦6rùòå¡êÌKÂ:¯^½jii©­­}èÐ!~oMŸ>]__?<<¼¿¿_dPÒÝB& ÎT°+¸\nBB´iÓ>ùä“Å‹WUU –ÚΜ9caa¡§§ÚÛ+âÑc¡1‚“ ¶··_¿~}Ø9ýüü6lØÐÖÖf``PUU…>ìææöêÕ«šššyóæÅÄÄ444V¬XñÛo¿íß¿æÌ™555µµµ ,ˆŒŒªTOOϸqã’““[[[SSS•””zzzDOKKËÌÌDm ò—‡ ò‹ó‰‰‰ÄÇÇ ¥šzfCCƒ`‹wïÞÕÒÒß:ºv¨:¬^½šÁ`äççÞ¾}‹ÖàààP__ûömKKËýû÷‹ Šß?~üøñcñÛH‚$õˆÌT°+~úé'}}ý‚‚‚–––Ë—/¡+ô½£ _~ù%?͘˜¡¶÷ØHõˆ¯ètú¤I“lllûÝÊʪµõ¯ÙIKJJæÌ™ƒ&PSSƒ ÈôéÓ ÐµuuuüåÁ¥:;;•••=J§Óy<^ww7—˪¸››[gg'ò¡¾âGáñxkÖ¬!‘H¾¾¾‚ùJ55d8_ Õ:ªNAeee‚p¹\´-Aý‚œ={ÖÒÒRd‹,}%2SÁ®˜6mFãoúôi1¾LÓÌÌL¨­Á=6Rýâ+A¾ûî;‰ÔÞÞΨªª 555Ñеµµµƒë\ A›7o~óÍ7êêêvvv¿þúëPÅ»»»ÑeÁþ­¯¯—ÄW‚ÅQ233555ËËËUUU e“"ÊWÙÙÙóçÏß:c‘u ¨¯¯l ­Åb¡ÁG©ªªŠ ®MYú •©`WŒ?þáÇü«««ÅøJ|šƒ{l¤ú?ä¼ÅëׯOž<¹lÙ²ˆˆ~PWW—ßÔ8077×ÔÔT__?""¢¿¿®ÇFª_ÄóÂð¹ÆQOccãÔ©S‘¿[ZdP<èX “ç…1©/ëWøëˆ}5™0aBpp°$Aȇ}5Ñ××ONN–$ù0 ¯ 쾂@°ú Áè+{ ¯ ì1/gKK‹ìu@‘¾¾>¡Û‚?¦*ÅÝñ÷ƒ_¡÷ƒC ’€•¯º»»»»»1© „ú¾§Áøÿ Áè+{ ¯ 쾂@°ç5cà•ÏIEND®B`‚XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMConfiguration.html0000644000151400015140000006542311653571065021307 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMConfiguration Class Reference

The DOMConfiguration interface represents the configuration of a document and maintains a table of recognized parameters. More...

#include <DOMConfiguration.hpp>

List of all members.

Public Member Functions

virtual void setParameter (const XMLCh *name, const void *value)=0
 Set the value of a parameter.
virtual void setParameter (const XMLCh *name, bool value)=0
virtual const void * getParameter (const XMLCh *name) const =0
 Return the value of a parameter if known.
virtual bool canSetParameter (const XMLCh *name, const void *value) const =0
 Check if setting a parameter to a specific value is supported.
virtual bool canSetParameter (const XMLCh *name, bool value) const =0
virtual const DOMStringListgetParameterNames () const =0
 The list of the parameters supported by this DOMConfiguration object and for which at least one value can be set by the application.
Destructor
virtual ~DOMConfiguration ()
 Destructor.

Protected Member Functions

Hidden constructors
 DOMConfiguration ()

Detailed Description

The DOMConfiguration interface represents the configuration of a document and maintains a table of recognized parameters.

Using the configuration, it is possible to change Document.normalizeDocument behavior, such as replacing CDATASection nodes with Text nodes or specifying the type of the schema that must be used when the validation of the Document is requested. DOMConfiguration objects are also used in [DOM Level 3 Load and Save] in the DOMLSParser and DOMLSSerializer interfaces.

The DOMConfiguration distinguish two types of parameters: boolean (boolean parameters) and DOMUserData (parameters). The names used by the DOMConfiguration object are defined throughout the DOM Level 3 specifications. Names are case-insensitives. To avoid possible conflicts, as a convention, names referring to boolean parameters and parameters defined outside the DOM specification should be made unique. Names are recommended to follow the XML name production rule but it is not enforced by the DOM implementation. DOM Level 3 Core Implementations are required to recognize all boolean parameters and parameters defined in this specification. Each boolean parameter state or parameter value may then be supported or not by the implementation. Refer to their definition to know if a state or a value must be supported or not.

Note: Parameters are similar to features and properties used in SAX2 [SAX].

The following list of parameters defined in the DOM:

"error-handler" [required] A DOMErrorHandler object. If an error is encountered in the document, the implementation will call back the DOMErrorHandler registered using this parameter. When called, DOMError.relatedData will contain the closest node to where the error occured. If the implementation is unable to determine the node where the error occurs, DOMError.relatedData will contain the Document node. Mutations to the document from within an error handler will result in implementation dependent behaviour.

"schema-type" [optional] A DOMString object containing an absolute URI and representing the type of the schema language used to validate a document against. Note that no lexical checking is done on the absolute URI. If this parameter is not set, a default value may be provided by the implementation, based on the schema languages supported and on the schema language used at load time.

Note: For XML Schema [XML Schema Part 1], applications must use the value "http://www.w3.org/2001/XMLSchema". For XML DTD [XML 1.0], applications must use the value "http://www.w3.org/TR/REC-xml". Other schema languages are outside the scope of the W3C and therefore should recommend an absolute URI in order to use this method.

"schema-location" [optional] A DOMString object containing a list of URIs, separated by white spaces (characters matching the nonterminal production S defined in section 2.3 [XML 1.0]), that represents the schemas against which validation should occur. The types of schemas referenced in this list must match the type specified with schema-type, otherwise the behaviour of an implementation is undefined. If the schema type is XML Schema [XML Schema Part 1], only one of the XML Schemas in the list can be with no namespace. If validation occurs against a namespace aware schema, i.e. XML Schema, and the targetNamespace of a schema (specified using this property) matches the targetNamespace of a schema occurring in the instance document, i.e in schemaLocation attribute, the schema specified by the user using this property will be used (i.e., in XML Schema the schemaLocation attribute in the instance document or on the import element will be effectively ignored).

Note: It is illegal to set the schema-location parameter if the schema-type parameter value is not set. It is strongly recommended that DOMInputSource.baseURI will be set, so that an implementation can successfully resolve any external entities referenced.

The following list of boolean parameters (features) defined in the DOM:

"canonical-form"

true [optional] Canonicalize the document according to the rules specified in [Canonical XML]. Note that this is limited to what can be represented in the DOM. In particular, there is no way to specify the order of the attributes in the DOM.

false [required] (default) Do not canonicalize the document.

"cdata-sections"

true [required] (default) Keep CDATASection nodes in the document.

false [required] Transform CDATASection nodes in the document into Text nodes. The new Text node is then combined with any adjacent Text node.

"comments"

true [required] (default) Keep Comment nodes in the document.

false [required] Discard Comment nodes in the Document.

"datatype-normalization"

true [required] Exposed normalized values in the tree.

false [required] (default) Do not perform normalization on the tree.

"discard-default-content"

true [required] (default) Use whatever information available to the implementation (i.e. XML schema, DTD, the specified flag on Attr nodes, and so on) to decide what attributes and content should be discarded or not. Note that the specified flag on Attr nodes in itself is not always reliable, it is only reliable when it is set to false since the only case where it can be set to false is if the attribute was created by the implementation. The default content won't be removed if an implementation does not have any information available.

false [required] Keep all attributes and all content.

"entities"

true [required] Keep EntityReference and Entity nodes in the document.

false [required] (default) Remove all EntityReference and Entity nodes from the document, putting the entity expansions directly in their place. Text nodes are into "normal" form. Only EntityReference nodes to non-defined entities are kept in the document.

"infoset"

true [required] Only keep in the document the information defined in the XML Information Set [XML Information set]. This forces the following features to false: namespace-declarations, validate-if-schema, entities, datatype-normalization, cdata-sections. This forces the following features to true: whitespace-in-element-content, comments, namespaces. Other features are not changed unless explicity specified in the description of the features. Note that querying this feature with getFeature returns true only if the individual features specified above are appropriately set.

false Setting infoset to false has no effect.

"namespaces"

true [required] (default) Perform the namespace processing as defined in [XML Namespaces].

false [optional] Do not perform the namespace processing.

"namespace-declarations"

true [required] (default) Include namespace declaration attributes, specified or defaulted from the schema or the DTD, in the document. See also the section Declaring Namespaces in [XML Namespaces].

false [required] Discard all namespace declaration attributes. The Namespace prefixes are retained even if this feature is set to false.

"normalize-characters"

true [optional] Perform the W3C Text Normalization of the characters [CharModel] in the document.

false [required] (default) Do not perform character normalization.

"split-cdata-sections"

true [required] (default) Split CDATA sections containing the CDATA section termination marker ']]>'. When a CDATA section is split a warning is issued.

false [required] Signal an error if a CDATASection contains an unrepresentable character.

"validate"

true [optional] Require the validation against a schema (i.e. XML schema, DTD, any other type or representation of schema) of the document as it is being normalized as defined by [XML 1.0]. If validation errors are found, or no schema was found, the error handler is notified. Note also that normalized values will not be exposed to the schema in used unless the feature datatype-normalization is true.

Note: validate-if-schema and validate are mutually exclusive, setting one of them to true will set the other one to false.

false [required] (default) Only XML 1.0 non-validating processing must be done. Note that validation might still happen if validate-if-schema is true.

"validate-if-schema"

true [optional] Enable validation only if a declaration for the document element can be found (independently of where it is found, i.e. XML schema, DTD, or any other type or representation of schema). If validation errors are found, the error handler is notified. Note also that normalized values will not be exposed to the schema in used unless the feature datatype-normalization is true.

Note: validate-if-schema and validate are mutually exclusive, setting one of them to true will set the other one to false.

false [required] (default) No validation should be performed if the document has a schema. Note that validation must still happen if validate is true.

"element-content-whitespace"

true [required] (default) Keep all white spaces in the document.

false [optional] Discard white space in element content while normalizing. The implementation is expected to use the isWhitespaceInElementContent flag on Text nodes to determine if a text node should be written out or not.

The resolutions of entities is done using Document.baseURI. However, when the features "LS-Load" or "LS-Save" defined in [DOM Level 3 Load and Save] are supported by the DOM implementation, the parameter "entity-resolver" can also be used on DOMConfiguration objects attached to Document nodes. If this parameter is set, Document.normalizeDocument will invoke the entity resolver instead of using Document.baseURI.


Constructor & Destructor Documentation

xercesc::DOMConfiguration::DOMConfiguration ( ) [inline, protected]
virtual xercesc::DOMConfiguration::~DOMConfiguration ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual bool xercesc::DOMConfiguration::canSetParameter ( const XMLCh *  name,
const void *  value 
) const [pure virtual]

Check if setting a parameter to a specific value is supported.

Parameters:
nameThe name of the parameter to check.
valueAn object. if null, the returned value is true.
Returns:
true if the parameter could be successfully set to the specified value, or false if the parameter is not recognized or the requested value is not supported. This does not change the current value of the parameter itself.
Since:
DOM level 3
virtual bool xercesc::DOMConfiguration::canSetParameter ( const XMLCh *  name,
bool  value 
) const [pure virtual]
virtual const void* xercesc::DOMConfiguration::getParameter ( const XMLCh *  name) const [pure virtual]

Return the value of a parameter if known.

Parameters:
nameThe name of the parameter.
Returns:
The current object associated with the specified parameter or null if no object has been associated or if the parameter is not supported.
Exceptions:
DOMException(NOT_FOUND_ERR) Raised when the i boolean parameter name is not recognized.
Since:
DOM level 3
virtual const DOMStringList* xercesc::DOMConfiguration::getParameterNames ( ) const [pure virtual]

The list of the parameters supported by this DOMConfiguration object and for which at least one value can be set by the application.

Note that this list can also contain parameter names defined outside this specification.

Returns:
The list of parameters that can be used with setParameter/getParameter
Since:
DOM level 3
virtual void xercesc::DOMConfiguration::setParameter ( const XMLCh *  name,
bool  value 
) [pure virtual]
virtual void xercesc::DOMConfiguration::setParameter ( const XMLCh *  name,
const void *  value 
) [pure virtual]

Set the value of a parameter.

Parameters:
nameThe name of the parameter to set.
valueThe new value or null if the user wishes to unset the parameter. While the type of the value parameter is defined as DOMUserData, the object type must match the type defined by the definition of the parameter. For example, if the parameter is "error-handler", the value must be of type DOMErrorHandler
Exceptions:
DOMException(NOT_SUPPORTED_ERR) Raised when the parameter name is recognized but the requested value cannot be set.
DOMException(NOT_FOUND_ERR) Raised when the parameter name is not recognized.
Since:
DOM level 3

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/functions_func_0x65.html0000644000151400015140000001054411653571065016674 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
 

- e -

XQilla-2.3.0/docs/dom3-api/functions_0x73.html0000644000151400015140000003742211653571065015664 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- s -

XQilla-2.3.0/docs/dom3-api/DOMXPathEvaluator_8hpp_source.html0000644000151400015140000002577211653571065020666 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMXPathEvaluator.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMXPathEvaluator.hpp 698579 2008-09-24 14:13:08Z borisk $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMXPATHEVALUATOR_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMXPATHEVALUATOR_HPP
00024 
00025 #include <xercesc/util/XercesDefs.hpp>
00026 #include <xercesc/dom/DOMXPathResult.hpp>
00027 
00028 XERCES_CPP_NAMESPACE_BEGIN
00029 
00030 class DOMXPathNSResolver;
00031 class DOMXPathExpression;
00032 class DOMNode;
00033 
00047 class CDOM_EXPORT DOMXPathEvaluator
00048 {
00049 
00050 protected:
00051     // -----------------------------------------------------------------------
00052     //  Hidden constructors
00053     // -----------------------------------------------------------------------
00056     DOMXPathEvaluator() {};
00058 
00059 private:
00060     // -----------------------------------------------------------------------
00061     // Unimplemented constructors and operators
00062     // -----------------------------------------------------------------------
00065     DOMXPathEvaluator(const DOMXPathEvaluator &);
00066     DOMXPathEvaluator& operator = (const  DOMXPathEvaluator&);
00068 
00069 public:
00070     // -----------------------------------------------------------------------
00071     //  All constructors are hidden, just the destructor is available
00072     // -----------------------------------------------------------------------
00079     virtual ~DOMXPathEvaluator() {};
00081 
00082     // -----------------------------------------------------------------------
00083     // Virtual DOMXPathEvaluator interface
00084     // -----------------------------------------------------------------------
00087 
00108     virtual DOMXPathExpression* createExpression(const XMLCh *expression,
00109                                                  const DOMXPathNSResolver *resolver) = 0;
00110 
00111 
00125     virtual DOMXPathNSResolver* createNSResolver(const DOMNode *nodeResolver) = 0;
00126 
00127 
00169     virtual DOMXPathResult* evaluate(const XMLCh *expression,
00170                                      const DOMNode *contextNode,
00171                                      const DOMXPathNSResolver *resolver,
00172                                      DOMXPathResult::ResultType type,
00173                                      DOMXPathResult* result) = 0;
00174 
00176 };
00177 
00178 XERCES_CPP_NAMESPACE_END
00179 
00180 #endif
XQilla-2.3.0/docs/dom3-api/functions_func_0x78.html0000644000151400015140000001051311653571065016674 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
 

- x -

XQilla-2.3.0/docs/dom3-api/DOMCDATASection_8hpp.html0000644000151400015140000000632311653571066016530 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMCDATASection.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <xercesc/dom/DOMText.hpp>
Include dependency graph for DOMCDATASection.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMCDATASection
 CDATA sections are used to escape blocks of text containing characters that would otherwise be regarded as markup. More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMAttr-members.html0000644000151400015140000005177611653571065021050 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMAttr Member List

This is the complete list of members for xercesc::DOMAttr, including all inherited members.
appendChild(DOMNode *newChild)=0xercesc::DOMNode [pure virtual]
ATTRIBUTE_NODE enum valuexercesc::DOMNode
CDATA_SECTION_NODE enum valuexercesc::DOMNode
cloneNode(bool deep) const =0xercesc::DOMNode [pure virtual]
COMMENT_NODE enum valuexercesc::DOMNode
compareDocumentPosition(const DOMNode *other) const =0xercesc::DOMNode [pure virtual]
DOCUMENT_FRAGMENT_NODE enum valuexercesc::DOMNode
DOCUMENT_NODE enum valuexercesc::DOMNode
DOCUMENT_POSITION_CONTAINED_BY enum valuexercesc::DOMNode
DOCUMENT_POSITION_CONTAINS enum valuexercesc::DOMNode
DOCUMENT_POSITION_DISCONNECTED enum valuexercesc::DOMNode
DOCUMENT_POSITION_FOLLOWING enum valuexercesc::DOMNode
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC enum valuexercesc::DOMNode
DOCUMENT_POSITION_PRECEDING enum valuexercesc::DOMNode
DOCUMENT_TYPE_NODE enum valuexercesc::DOMNode
DocumentPosition enum namexercesc::DOMNode
DOMAttr()xercesc::DOMAttr [inline, protected]
DOMAttr(const DOMAttr &other)xercesc::DOMAttr [inline, protected]
DOMNode()xercesc::DOMNode [inline, protected]
DOMNode(const DOMNode &)xercesc::DOMNode [inline, protected]
ELEMENT_NODE enum valuexercesc::DOMNode
ENTITY_NODE enum valuexercesc::DOMNode
ENTITY_REFERENCE_NODE enum valuexercesc::DOMNode
getAttributes() const =0xercesc::DOMNode [pure virtual]
getBaseURI() const =0xercesc::DOMNode [pure virtual]
getChildNodes() const =0xercesc::DOMNode [pure virtual]
getFeature(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNode [pure virtual]
getFirstChild() const =0xercesc::DOMNode [pure virtual]
getLastChild() const =0xercesc::DOMNode [pure virtual]
getLocalName() const =0xercesc::DOMNode [pure virtual]
getName() const =0xercesc::DOMAttr [pure virtual]
getNamespaceURI() const =0xercesc::DOMNode [pure virtual]
getNextSibling() const =0xercesc::DOMNode [pure virtual]
getNodeName() const =0xercesc::DOMNode [pure virtual]
getNodeType() const =0xercesc::DOMNode [pure virtual]
getNodeValue() const =0xercesc::DOMNode [pure virtual]
getOwnerDocument() const =0xercesc::DOMNode [pure virtual]
getOwnerElement() const =0xercesc::DOMAttr [pure virtual]
getParentNode() const =0xercesc::DOMNode [pure virtual]
getPrefix() const =0xercesc::DOMNode [pure virtual]
getPreviousSibling() const =0xercesc::DOMNode [pure virtual]
getSchemaTypeInfo() const =0xercesc::DOMAttr [pure virtual]
getSpecified() const =0xercesc::DOMAttr [pure virtual]
getTextContent() const =0xercesc::DOMNode [pure virtual]
getUserData(const XMLCh *key) const =0xercesc::DOMNode [pure virtual]
getValue() const =0xercesc::DOMAttr [pure virtual]
hasAttributes() const =0xercesc::DOMNode [pure virtual]
hasChildNodes() const =0xercesc::DOMNode [pure virtual]
insertBefore(DOMNode *newChild, DOMNode *refChild)=0xercesc::DOMNode [pure virtual]
isDefaultNamespace(const XMLCh *namespaceURI) const =0xercesc::DOMNode [pure virtual]
isEqualNode(const DOMNode *arg) const =0xercesc::DOMNode [pure virtual]
isId() const =0xercesc::DOMAttr [pure virtual]
isSameNode(const DOMNode *other) const =0xercesc::DOMNode [pure virtual]
isSupported(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNode [pure virtual]
lookupNamespaceURI(const XMLCh *prefix) const =0xercesc::DOMNode [pure virtual]
lookupPrefix(const XMLCh *namespaceURI) const =0xercesc::DOMNode [pure virtual]
NodeType enum namexercesc::DOMNode
normalize()=0xercesc::DOMNode [pure virtual]
NOTATION_NODE enum valuexercesc::DOMNode
PROCESSING_INSTRUCTION_NODE enum valuexercesc::DOMNode
release()=0xercesc::DOMNode [pure virtual]
removeChild(DOMNode *oldChild)=0xercesc::DOMNode [pure virtual]
replaceChild(DOMNode *newChild, DOMNode *oldChild)=0xercesc::DOMNode [pure virtual]
setNodeValue(const XMLCh *nodeValue)=0xercesc::DOMNode [pure virtual]
setPrefix(const XMLCh *prefix)=0xercesc::DOMNode [pure virtual]
setTextContent(const XMLCh *textContent)=0xercesc::DOMNode [pure virtual]
setUserData(const XMLCh *key, void *data, DOMUserDataHandler *handler)=0xercesc::DOMNode [pure virtual]
setValue(const XMLCh *value)=0xercesc::DOMAttr [pure virtual]
TEXT_NODE enum valuexercesc::DOMNode
~DOMAttr()xercesc::DOMAttr [inline, virtual]
~DOMNode()xercesc::DOMNode [inline, virtual]
XQilla-2.3.0/docs/dom3-api/classAutoDeallocate-members.html0000644000151400015140000001074011653571065020431 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

AutoDeallocate< TYPE > Member List

This is the complete list of members for AutoDeallocate< TYPE >, including all inherited members.
adopt()AutoDeallocate< TYPE > [inline]
AutoDeallocate(xercesc::MemoryManager *mmgr, size_t size=sizeof(TYPE))AutoDeallocate< TYPE > [inline]
AutoDeallocate(TYPE *p, xercesc::MemoryManager *mmgr)AutoDeallocate< TYPE > [inline]
get() const AutoDeallocate< TYPE > [inline]
operator TYPE *() const AutoDeallocate< TYPE > [inline]
operator*() const AutoDeallocate< TYPE > [inline]
operator->() const AutoDeallocate< TYPE > [inline]
set(TYPE *p)AutoDeallocate< TYPE > [inline]
swap(TYPE *p)AutoDeallocate< TYPE > [inline]
~AutoDeallocate()AutoDeallocate< TYPE > [inline]
XQilla-2.3.0/docs/dom3-api/DOMMemoryManager_8hpp_source.html0000644000151400015140000003307011653571065020510 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMMemoryManager.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  * 
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  * 
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 #if !defined(XERCESC_INCLUDE_GUARD_DOMMEMORYMANAGER_HPP)
00019 #define XERCESC_INCLUDE_GUARD_DOMMEMORYMANAGER_HPP
00020 
00021 //------------------------------------------------------------------------------------
00022 //  Includes
00023 //------------------------------------------------------------------------------------
00024 
00025 XERCES_CPP_NAMESPACE_BEGIN
00026 
00032 class CDOM_EXPORT DOMMemoryManager
00033 {
00034 protected:
00035     // -----------------------------------------------------------------------
00036     //  Hidden constructors
00037     // -----------------------------------------------------------------------
00040     DOMMemoryManager() {};
00042 
00043 private:
00044     // -----------------------------------------------------------------------
00045     // Unimplemented constructors and operators
00046     // -----------------------------------------------------------------------
00049     DOMMemoryManager(const DOMMemoryManager &);
00050     DOMMemoryManager & operator = (const DOMMemoryManager &);
00052 
00053 public:
00054 
00055     // -----------------------------------------------------------------------
00056     //  All constructors are hidden, just the destructor is available
00057     // -----------------------------------------------------------------------
00064     virtual ~DOMMemoryManager() {};
00066 
00067     // -----------------------------------------------------------------------
00068     //  data types
00069     // -----------------------------------------------------------------------
00070     enum NodeObjectType {
00071         ATTR_OBJECT                   = 0,
00072         ATTR_NS_OBJECT                = 1,
00073         CDATA_SECTION_OBJECT          = 2,
00074         COMMENT_OBJECT                = 3,
00075         DOCUMENT_FRAGMENT_OBJECT      = 4,
00076         DOCUMENT_TYPE_OBJECT          = 5,
00077         ELEMENT_OBJECT                = 6,
00078         ELEMENT_NS_OBJECT             = 7,
00079         ENTITY_OBJECT                 = 8,
00080         ENTITY_REFERENCE_OBJECT       = 9,
00081         NOTATION_OBJECT               = 10,
00082         PROCESSING_INSTRUCTION_OBJECT = 11,
00083         TEXT_OBJECT                   = 12
00084     };
00085 
00087     // -----------------------------------------------------------------------
00088     //  Getter methods
00089     // -----------------------------------------------------------------------
00095     virtual XMLSize_t getMemoryAllocationBlockSize() const = 0;
00096 
00098 
00100     // -----------------------------------------------------------------------
00101     //  Setter methods
00102     // -----------------------------------------------------------------------
00108     virtual void setMemoryAllocationBlockSize(XMLSize_t size) = 0;
00110 
00112     // -----------------------------------------------------------------------
00113     //  Operations
00114     // -----------------------------------------------------------------------
00122     virtual void* allocate(XMLSize_t amount) = 0;
00123 
00132     virtual void* allocate(XMLSize_t amount, DOMMemoryManager::NodeObjectType type) = 0;
00133 
00140     virtual void release(DOMNode* object, DOMMemoryManager::NodeObjectType type) = 0;
00141 
00149     virtual XMLCh* cloneString(const XMLCh *src) = 0;
00151 
00152 };
00153 
00154 XERCES_CPP_NAMESPACE_END
00155 
00156 #endif
00157 
XQilla-2.3.0/docs/dom3-api/inherit_graph_20.map0000644000151400015140000000035111653571066016020 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMImplementationRegistry_8hpp__incl.md50000644000151400015140000000004011653571065021757 00000000000000ff2ab7d9de56852fc8c0e5699f039c30XQilla-2.3.0/docs/dom3-api/DOMImplementation_8hpp__incl.md50000644000151400015140000000004011653571065020226 00000000000000b6b2b2ccb222ed897c8c444dbce8a6d1XQilla-2.3.0/docs/dom3-api/DOMXPathNSResolver_8hpp__incl.map0000644000151400015140000000003511653571065020344 00000000000000 XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMImplementation__inherit__graph.png0000644000151400015140000001203111653571066024472 00000000000000‰PNG  IHDRÝuEésÎbKGDÿÿÿ ½§“ÎIDATxœíkXGÛÇ'J GA(xiÕ¶ž(±V9 ¨RAZÑKID­ —µ"/+ ˆH« "ˆ E[A«€RR9´ZEPƒ „†„„$dßÛgŸ}r’“²âü>ÍÌÎÿÞ{&ÿìL’e!! ‚¡6Ü @ €¾„èK¾„2¾âææ6\y@ Û·oŸ?>Zþ_Ïž={üøñÑä½&''gÍš5X•,sxãÆ~~~o7%H$|î/!DúBD /!DúBD /!Ddú’„c„ ÁÁÁíííø|>ŸÉdN›6môèÑ}ôÑž={$ ¦8q¢Ì½,‹-"‘Hõõõh´00êëëe>xe¥p*x<ƒÁ°²²5jÔĉcbb„BáR¾”••±Ùìæææôôt.—;cÆŒÎÎNôPWWׇ~XYY_UUµuëÖÌÌL77·ÞÞ^´Ã“'Oª««±PçæÍ›Ã0†ÁÑÐÐ`hhØÇT*5::zHÎÉb±ÎŸ?ÿìÙ³´´´‚‚&“9@@vv6òŽxôèV•J¥óæÍÛ¹s'Ze0sçΕH$X7a„ÔÔTTëáá±mÛ6ìè?þ¸hÑ",¦LðþòèÑ#™9C¼öDƒÏDáTP©ÔŠŠ ¬ZZZjaaÑÇhxïõïzyñâE333‡ÈÊÊš4iŸÏˆÅb&“iddD£Ñ˜L¦X,F—†k×®YXX”””ÄÄÄXXXŒ7.88»tÉ«—.]rppÐÒÒ²¶¶>}ú4@"‘(”ãW+‰DZ»vmaa!ZÍÈÈØ¹s§ºº:ÖAGG‡Édfdd U__ßsçÎ!ÿYÊsss}||”E>yò¤­­í¸qãöîÝ{úôi+++==½;v`)Lž<™F£­_¿¾§§/W8|Õ1U¨233mmmõõõ÷íÛ˜={6ÀØØUýüóÏŽŽŽÚÚÚ&&&{÷î•速½ÎÎÎ/¿üÒÐÐÐÜÜœÁ` «°||eŒ3&))éÕ«WhuÞ¼yOŸ>UÑ_)*<«àààÖÖV##£;wî ñññÞÞÞÏž=«©©™1cÆ–-[зã¢E‹®_¿;uêÔšššÚÚÚY³f1 e*§©©™œœÌf³ÓÒÒÈd2ÇÛ¿¿Bygg'z‘“)¹÷qee%•JE}Gµ··Ë êöíÛFFF¨öÁƒÆÆÆüñV[[ûåË—@ÑõÀårOœ8ðóóãr¹)))€—/_¢3àîîþðáÃŠŠ ›ØØXüUJ~ø¯©BåããÃápRSS¯^½ÂŸˆËåjhh¬^½º¹¹}ûµµµá;àËt:ÝÅÅåñãÇ555vvv±±± ã+œgA~ýõW333MMM77·ýû÷?yòDµ0d¼×o_r8sss4c”)S¦°Ùl´\TT4}útt¨555‚Lž<9//=ú×_aeyUGG…B9pà‡Ã‘J¥]]]½½½Êä*FØ__–——bÚo¾ùfëÖ­‚ddd¸¹¹ácÊø’Åb!"‰dÊ=ÂÏ‚ ÙÙÙ666xÈÿµ1U¨nܸ!v´[OOÏýû÷y<^oooii©|¬,‰ÔÕÕëêêÐö¼¼<…ñÎ3ŠD"©¨¨Øµk—ººzff¦ê× ›ÌAùA]»v©««¿xñkÑÒÒÂ_ƒõôôСŠD"ôhmm­|y‚ ·nÝòññÑÑÑ™;wîåË—UÈUŒPf¾Îœ9ãää„–‹ŠŠd$ÇŽ[¸p!¦-))±±±‘J¥žžž)))ˆr_ª(£3 ÐÆêêj---¼ÿµñ•©þþûoù³c,((˜3gÎôéÓW­Z¥Â—MMMøœkjj´´´ÆW8Ï</++ Û»K¥Ò;v˜™™©|¹,ìÀ÷—€¦¦¦„„WWר¨(¬ÑÐÐK‘ÃáTTT í `jjúäÉ´åÞ½{ßÿ½2•@ J¥999¡¡¡K–,éèèP&ï#¨í/^ŒVétú®]»°Oß>ŸïááµÌ™3§««ëÖ­[EEEžžžý: èKxøð¡©©)þ²IS2•ššÒ—R øùù1™L‹•””¤"¸‘‘‘ººzCCZ}üø±™™Ùkãc X[[‹VI$ÒÂ… ±ïàúEÿ|)•JW¯^™••U\\|éÒ%´}ùòå[·n}úôiMM‡‡Gbb"^ôí·ßÖÕÕÕÕÕ­[·ÛË«H$’»»ûùóç¹\®H$¢P(ÚÚÚÊäÿüóº “)ÚÛÛ[[[[ZZJKK½¼¼7mÚ„Ú¹sg[[›‹‹Ë/¿üòèÑ£ .Ìš5ËÌÌ,""“«««{{{‡‡‡Ïœ9“F£õkŠdذaC}}}eeå¶mÛV®\‰?¤zÒ”Ñ/ÇôôôˆD" @èêêÂwÀ P(þþþëׯoll¬««Û¾};NWg ]]Ýàà`ÿ†††²²2ƒЗqÉ¢âZ*ÏÑ£G§M›†®Î.\011éèè@„Ëå®ZµjìØ±aaa|>¿L…Bƒajjª§§ÀápÐvy‚ ÙÙÙ|ð††Æ”)S TÈ•íÜñ£?~# x߯Àinæàñ?ÞýÝwË]]ÿk16ÖÓÔ”½“Òଠsó±2-ãÆ¶´4–dFp‡èK¾„èK¾„èK¾„èK¾„èK¾„èK¾„èK¾„èK¾„èK¾„èK¾„èK¾„èK¾„èK¾„èK¾„èK¾„èKéÓsY?þ¦ó·¶Þî,ˆŽ«««µµõk:!}à­dûÎC¡ÐÔÔ4‡;‹w€ììì×Z®¯Ï±Ž‰‰Y°`Á›Ìò^àììÜ—np !"З"} !"З"} !"З"òùÒÇŠ+âââ:;;ñ„Barrrhhè矾víÚÌÌÌÞÞ^L»råJ™¯r£££[ZZÐha`´´´ôñ ”·É0fõùpþüùœœœèèh>ŸÆãñÐCÝÝÝááá<?~ü8N/**b0Ré¿ÿ²µµõñãÇX¨®®®êêêaÃà`³ÙË–-ëc]]Ý€€€·’—,ï—/©Tª¾¾¾¡¡¡££ãwß}gbb’““ƒ:uê•J=tèÐÌ™3ÍÍÍçΛœœÜÚÚzåÊ´ƒ““SII ª¬¬lúôéoƒD*•r¹Ü>vÐÓÓ {+yÉ24¾,++óññéêê\»v-((H($Irr²—————Wrr²D"A—‹åïïïÞ½ôôtOOϸ¸8ìÒ%¯BOêîîxõêU@oo¯B9~õQ±‘H¤¥K—VTT Õ¢¢¢àà`5µÿNˆ––ÖŠ+ŠŠŠÐê‚ JJJ°¥¼´´tþüù #;;;_¹r%$$ÄÓÓóÌ™3W¯^ X¼xñÉ“'±”nß¾äååuôèQ±XŒ—+¾ê˜*TÅÅÅ!!!K—.={ö,à믿,_¾U•——¯Y³ÆÃÃÃÛÛûÌ™32ð³ÇãñöîÝ»lÙ2__ßcÇŽ‰D"…ñ‡Š¡ñå'Ÿ|âä䔘˜Èáp¿ýö[---@nn.›ÍNII9xð ‹ÅJOOGûŸ;wnË–-ÕÕÕ7oÞŒ‹‹;|øpSSSFFzT^% ccc===Ïž=´oß>¡P˜››«PN¥R †|YssóçÏŸx<^GG‡L›gÏž¡e;;;@€.å|>ŸÅb}úé§Ê"WUU;v,,,,55µ¼¼<---""âôéÓØ¥(???..nÏž=wîÜA ¡lÒTÇT¦ºuëVbbbxxxJJJWWWRR //ÐÝݽsçΉ'fddDDD¤¦¦vvvâ;à9räH{{{rrr|||eeeVV–ÂøÊ&¤¿ Ù:Éb± Ʋe˦L™‚6^¹reÆ 4ÍÚÚ:<<üîÝïµ stt¼víÚêÕ«­­­­¬¬¢££§NªL%‹—.]ÒÔÔ,,,T(×ÑÑY¼x±|yH$l©¦¦6oÞ XQilla DOM3 API Documentation SourceForge.net Logo

DOMConfiguration.hpp File Reference

#include <xercesc/util/XMLString.hpp>
#include <xercesc/util/RefVectorOf.hpp>
#include <xercesc/dom/DOMStringList.hpp>
Include dependency graph for DOMConfiguration.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMConfiguration
 The DOMConfiguration interface represents the configuration of a document and maintains a table of recognized parameters. More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/inherit_graph_13.map0000644000151400015140000000031311653571066016020 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMDocument_8hpp__incl.map0000644000151400015140000000003511653571065017113 00000000000000 XQilla-2.3.0/docs/dom3-api/inherit_graph_24.png0000644000151400015140000000501211653571066016032 00000000000000‰PNG  IHDRÈ(4~"KbKGDÿÿÿ ½§“ ¿IDATxœíœiLSKǧ¥€ŠÒBQAÀ0‚ÈR¹ì.bXÄ-.a‹†•(DãöMT\Ad*Æ H# ¸hÊ* ¡ Úh¡tî‡yïɱ /V_Éü>Í<3Ï3Ï™ó?3Ã@ @ó³ÑúÝ `f'XX€……ÑXX M®p¹Üôôôß• ææøñãl6›¨~'¬þþþ'Ož„††þò¬06………ûöí#[´•;üª|0³ …¢`Ág,ŒFÀÂÂh,,ŒFÀÂÂh,,ŒF˜Â¢°²²ŠŠŠ wJ¥‰‰‰NNNóçÏ_³fÍéÓ§e2ákcc£ð»ù   …ÒÞÞ®ÜÀÀ`ãÆ>|@Ý$ ‡ÃYºt©®®®MJJÊØØ ##ƒÉdÊår" „pÉ’%/^DQä»wïRTÑÔÔ4ó AC¨B9oÞ¼Ž¢” ??_Áò‡¨««===UUU›7o677‰D¨uhhÈÎÎŽÍf?zô¨¥¥åÞ½{+W®\·nL&C¾ÚÚÚD4¡P¨§§hkk#ïíímll Z»v-ê¹k×.ooïׯ_þü™Ëå:99ÅÆÆBûúú´´´ž={FÄ|õê…BéííEQä‘‘@ êêꂟù„ !TÒÓÓøøñãLâçççg!Wf“°Èó(—˽¼¼’““Q•Ãáxzz"!$‰••UVVò LJJ"ZoݺD98z+ƒƒƒÂ… Ö××M\.×ÒÒ•ýüüââ∦¤¤$6›­2[a[[ÛÏ}S kæÃ) 뇷²²2&“)‰yyy+V¬J¥€‰‰‰ÄÄD:nbb’˜˜811ÑÞÞN¡P*++---«««SRR,--/^%‹Q4e/Àýû÷i4Ú²eËnß¾ Éd*ÝÑÊe(ÊÁƒ>|ˆª999ÉÉÉT*•è ¯¯Ÿ˜˜˜““ƒª¡¡¡ðŸÝ°¨¨($$DÝ„ 8h']°`ÁåË—¿~ýŠš¼¼¼>~üˆÊaaaEEE“““¨Z\\¼}ûöiÎy||üÞ½{QY"‘èéé566¢ç---µµµ511‰ÿö훺)U˜ÜÜ\{{ûE‹;wàææ`0¨ƒX,Þµk—±±±¹¹9‡ÃA»ùCVÙ4W¬¨¨¨;wöõõÑéô††d<{öì¶mÛ>}úÄãñV¯^}ôèQôUUU¥¦¦²X,Ççó]]]9Ž:/‰D¢££“™™)®_¿®­­-‘HΟ?¯Ò],£eF¡ ”>З/_.\¸Bˆ>‰…‡ª­­¥ÓéÈ÷ýû÷ í†b±XOOïË—/€´b555  µ··oݺÕÅÅyüø1“ÉÔÑÑñóó;þ|WW_$éèèp¹\á»wï´´´úúúÔe«°„p¹\##£‰‰ aNN‹Å’Ë娿¿kkk}}½µµujjªÊ)U"‰²²²_¿~U.""ÂÇǧ££ƒÇã988 °S~ÊV(‰ÌÍÍÉCÚÙÙ T®¨¨XµjJ—ÇãAmmm‹‹‹QëÛ·o‰²²—P(œ3gÎ… D"‘\.žœœTç>Åsþ¨°ž?nllLøÆÄÄ;v B˜““ãççGŽIþ,çÌ™Ãf³ÉcÉd²úúú´´4*•š››K4mÙ²%&&BxêÔ©¿þúkŠlÞ´L&c0•••Âõëן9s†èƒ¦B˜ŸŸomm­rJ¡’°ž>} !GvòpãããT*õÍ›7¨Z\\ŒÂþë„ÿœ3VZZ•Jíïï',4<ã(]tð¤Ñh|>_9޲„°¦¦&$$D__ßÓÓ³¼¼| ÷)žSáUݹsÇÙÙ• FEE…‚Ë•+Wßêêjkkk¹\|õêUø½°TžW$I^^qt“Ëå'Nœ`2™D‡‚‚:.“ÉœQLuÙ*z¢££cbbæÎÛÝÝMôEš››i4T3¥ Âjii!M®»»›–Çã¡°S£,¬ÿrÝÐÝÝ‘‘áëë›@‰ÔE"Q}}=ñMÌÌ̺ºº¥©©éÔ©Sê¼FGGåryaa¡P(Ü»wï¦M›„B¡:÷i!¼råʆ P5"""--8î¤RéÙ³g ‹‡‡ÇððpMMMEEEppð4G çóù¨J¡Pˆ[ À† ¤Rinnnssó–-[~èBCCKJJ <<<ÌÍÍ ;Ò µµÕÌÌ ¨d´´Ô¾w:N¥R;;;Qµ££ƒÉdþPªÿƒ¬²é¬X“““¾¾¾'Ož … £¬¬ ÙãããCBBºººš››]]]cccÉßAJJŠ££#ŸÏçóùîîîûöíSç5::J£ÑŠŠŠ®]»F£ÑFGGÕ¹OqÆ"®ª««ÑuƒX,F­ƒƒƒ¶¶¶èº¡µµµ¸¸˜Åb¹»»AÒÇmooïííMÄœzÅ‚îܹsÅŠ<èè設­uss;tè¹Cdd¤¡¡¡¿¿?Ù¨PyÅ’Éd&&&t:ýæÍ›ä>ÞÞÞmmm/^¼°±±A?ö*O)TZ±Ê Ã…‡‡ûøøtvvòù|‹Eü4=`æ[áÅ‹œœÐWRRbjj* !„CCC»wï644422Ú¿¿T*%§;66ÆápÌÌÌ ÂÂÂÈWJ ^(åË—Ï;×Îή´´t wòä2ù˱°°ˆˆˆ ïÚB‰D’ààà §§Çb±ÒÓÓGFF潺ºpéÒ%ûÂ’Éd©©©ŽŽŽºººVVVGŽ!öDyy9 ;;û»w0½ë†ƒêêê ‘ûdgg/Y²ÄØØ8..¥rJHXB¡pÇŽFFF¦¦¦‡Vx•üaa~IIIáááDõ§ßuÍea©øC?Ìÿccc½½½7nÜÈËËûݹL—Ùù»ÂYFCCƒ‹‹Ëž={Ö­[G,XpàÀß—Ô¿€W¬?6›- Œ&&&™™™¿%Ÿé€W,ŒFÀÂÂh,,ŒFÀÂÂh,,ŒFÀÂÂh× ~~~¿>Ì,ã;aYXXàÜ€ù„††ZXX-ˆÿU$Fà3F#`aa4F#`aa4Âß³"!gFbIEND®B`‚XQilla-2.3.0/docs/dom3-api/files.html0000644000151400015140000003314311653571065014171 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

File List

Here is a list of all files with brief descriptions:
DOM.hpp [code]
DOMAttr.hpp [code]
DOMCDATASection.hpp [code]
DOMCharacterData.hpp [code]
DOMComment.hpp [code]
DOMConfiguration.hpp [code]
DOMDocument.hpp [code]
DOMDocumentFragment.hpp [code]
DOMDocumentRange.hpp [code]
DOMDocumentTraversal.hpp [code]
DOMDocumentType.hpp [code]
DOMElement.hpp [code]
DOMEntity.hpp [code]
DOMEntityReference.hpp [code]
DOMError.hpp [code]
DOMErrorHandler.hpp [code]
DOMException.cpp
DOMException.hpp [code]
DOMImplementation.hpp [code]
DOMImplementationList.hpp [code]
DOMImplementationLS.hpp [code]
DOMImplementationRegistry.hpp [code]
DOMImplementationSource.hpp [code]
DOMLocator.hpp [code]
DOMLSException.cpp
DOMLSException.hpp [code]
DOMLSInput.hpp [code]
DOMLSOutput.hpp [code]
DOMLSParser.hpp [code]
DOMLSParserFilter.hpp [code]
DOMLSResourceResolver.hpp [code]
DOMLSSerializer.hpp [code]
DOMLSSerializerFilter.hpp [code]
DOMMemoryManager.hpp [code]
DOMNamedNodeMap.hpp [code]
DOMNode.hpp [code]
DOMNodeFilter.hpp [code]
DOMNodeIterator.hpp [code]
DOMNodeList.hpp [code]
DOMNotation.hpp [code]
DOMProcessingInstruction.hpp [code]
DOMPSVITypeInfo.hpp [code]
DOMRange.hpp [code]
DOMRangeException.cpp
DOMRangeException.hpp [code]
DOMStringList.hpp [code]
DOMText.hpp [code]
DOMTreeWalker.hpp [code]
DOMTypeInfo.hpp [code]
DOMUserDataHandler.hpp [code]
DOMXPathEvaluator.hpp [code]
DOMXPathException.cpp
DOMXPathException.hpp [code]
DOMXPathExpression.hpp [code]
DOMXPathNamespace.hpp [code]
DOMXPathNSResolver.hpp [code]
DOMXPathResult.hpp [code]
MemoryManager.hpp [code]
PlatformUtils.hpp [code]
StDOMNode.hpp [code]
XPath2MemoryManager.hpp [code]
XPath2Result.hpp [code]
xqilla-dom3.hpp [code]
XQillaExpression.hpp [code]
XQillaNSResolver.hpp [code]
XQillaPlatformUtils.hpp [code]
XQilla-2.3.0/docs/dom3-api/inherit_graph_33.png0000644000151400015140000000421311653571066016034 00000000000000‰PNG  IHDRÀ('©b¿bKGDÿÿÿ ½§“@IDATxœí›}HSßÇÏÚÜtj›iÛ2–Y’¦’•QÚ‚0–f!¥¢‘öä?mö`C‰¢ XÏ‚˜jfK¨@Q'=ÐL6ÑÔ…(Ú|Üôn>M·óûãÂåv7‡~oÔÏ8¯¿î=wïÏùœÏ}ßsÎÝBˆÿʪ¿beƒ „ 2‚È@Z°È'jµZ¡Pü­T+‚+W®H$âô 766¦¦¦þñ¬+ƒšššS§N‘[XŽª®®þSù V ƒÒ‚ö@Z !h „ 2‚È@Zü›b ÌÈÈ%`jjêâÅ‹ÞÞÞ;wî,..^XX ´ÁÁÁ”ߘ¥R)ƒÁÐëõ†ÅbÕÔÔ—T*›ÍÖét”~y<^bbbooïÒsÖëõ.âáá±wïÞ¶¶¶åVÃ)z½Þñ•ê¿ITUUQZV(€? †¦¦¦¤¤¤€€“É„_Å0,$$D"‘¼}û¶«««¶¶vëÖ­û÷ï_XXÀµ,K£ÑÑŒF#—Ëôôô@¯^½*‰ðhþþþ …‚ÒïÏŸ?5T*ݳgÏbIþøñÃ××—œ3ßé@ CwwwffææÍ›ív;ýõôôà÷š’†kUUU¿´Oþ%‘o†Ýnß·o_aa!~*—Ëcccq»àX,–ÀÀÀ'OžàÚ„„„K—.WËÊʤR)snn.,,,''Bxúô騨(«Õê´ßÀää¤Ó$‰[èTë´qxx0<<¼¬j¸î’†k~ƒT*•¿¿¿Ñh„VVV[,¡Õj•Ëå`íÚµr¹Üjµâ™566ŠÅâæææÂÂB±Xìçç—žžNLŽ*áëׯ·mÛÆáp6lØP^^!œŸŸw*'ž|ìx3*++£¢¢ðc‘HÔÐÐ@—R©”H$¸¶´´tÓ¦Măž˜˜XZZJŽùíÛ7‹U\\Ìápt:¹¾ä~ `||BX__éáá!‰JJJ „¾¾¾¡PHh•JePPŸÏ/..vÐh4²ÙìÙÙÙeUÏi•ˆJ®ù=3PFFFffæÐÐP(üüù3ÞxãÆ”””þþ~­V»}ûöüü|¯º»»“§z*áû÷ï9âééûæÍrã\îöàÁƒøøxBÛÒÒ‚¯b‡zôè%æ³gÏx<žZ­vwwõê•‹~ T*ULLLdddVVÖbêîî¦Ä!œšš’Éd»wï^nõÈuwwÿ}õ÷÷ ‚øøxòó@ Õd2uvv’3Û¸qc}}=~¬Ñhˆ™ßQ5==ÝÚÚ !œ››+++c2™ããã‹É]Œ“²‰Ž%6Ñ2™Ìé&úÎ;„vaaA(¶¶¶zzzâÏ sppÐÇÇçñãÇÂ’’¡Pˆ/7ŽýLOOs8•Je·Ûgff3¡uj ¡N§óöö&6gK¬ÞÑüü<„°¹¹ù÷hÙßÙíöììì¼¼¼çÏŸ766Ö××ãíÉÉÉ}}}Z­6!!A©T’Uééé—/_nooooo?þ|__ßb*ƒqðàÁÚÚZ ìV«››—Ë]L>99ùôéSÇcÀèèèÐÐÐàà Z­>|øpooï… ðK………###x÷î]OOO]]]ttôúõëÏœ9CÈ™LfJJJnnî®]»Ñ!ÌÍÍ ?yò$@&“ …¼¼<×E›››³Z­l6{ffæÚµk³ÙŒ_²X,K/þêÕ«Íf3!Ybõø|> ¼¼ð»wï:¼¬4~즥Ì@÷îÝ‹ˆˆÀ¦ºººuëÖáod†eeeùøøøúúæääLMM‘­=;;+—Ëýýýy<^ZZù+Š O#((ˆÍf‡„„¨T*roab±øøñã”W_‹Å"“ɸ\nhh¨B¡˜žž&´øcÝÒÒP*•äö²²2‡ÓÕÕE„úòå˪U«^¼x].a·oß^³fX,¾ÿ~ZZš@ ˜ŸŸ‰‰ñòò¢ô Ÿl6ÛêÕ«{{{—U=¡B¡àóùAAA*• ü:ñPÒp p˜ärWWW;v :ì݃QUUuôèQ¢åßü)ñÇ@BÐA d -´@BÐA d -´pòÏÔ¸¸¸?Ÿb…ò‹Äb1úc<©©©b±˜ÜÂ@¿|!è€ö@Z !h „ 2‚ÿ–‡O±r¡HVIEND®B`‚XQilla-2.3.0/docs/dom3-api/tab_h.png0000644000151400015140000000030011653571065013751 00000000000000‰PNG  IHDR$ÇÇ[‡IDATxíÝÛ ‚`€áÿ¥ºˆFŠ¢‚hšYÒ ÿÌ26@c´HwÍñì!ïÏ—K1ê^‰©HtO’÷ÄyG˜µD׎ k9¦ç?iðâ7zá„vPaŸž˜þãÏðJŒ}ÉÆ)غwV»‚õ®`ai–Ö¥¥™›Z‰ˆšŒP³éøC"àèP=€IEND®B`‚XQilla-2.3.0/docs/dom3-api/functions_func_0x63.html0000644000151400015140000002340611653571065016673 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
 

- c -

XQilla-2.3.0/docs/dom3-api/inherit_graph_12.map0000644000151400015140000000027611653571066016027 00000000000000 XQilla-2.3.0/docs/dom3-api/inherit_graph_21.png0000644000151400015140000000602311653571066016032 00000000000000‰PNG  IHDR³(ûYƒäbKGDÿÿÿ ½§“ ÈIDATxœíœ}LSWÇO-”7Ñ (ocZÞ+Š3@`ºEšA–eKfÉ#d¸‰0³é­Œ=„âÛ”`œF‡FÃÀ ã*ØMÁtÙ&„ŒÕV7Æ[‘1dkÜZ /÷ùãd÷©·í¥¢´<î÷ Üóò;çwÎýò»çÜ—²H’D€+\íÀ²"#ˆŒt 2Ðq£¥++‹j!ôöÛoûùùã Ö“iæÊ4ÏíÙ>TÌ „d2™½Ò¹9ƒB¡ÊÏÿ$"¢„Ç+R*GK§Ì€IÇth-.—ÛÕÕE%ÛÛÛ#"",z¯,~ÒŽþ³f¼víZhh¨V«E]ºt)::Z§Ó!„ ƒD" ”H$ƒ¯~¿ù曈ˆˆ¶¶6©TñÔSOåååQ—Mk+„Pss³@ ðôô\»ví§Ÿ~Š26Í-Ø ‹m‹µ{÷îëׯãdCCCEE›Í¦*øøøH$’††œ‰D—/_&ÿÞÈ455m۶ͲÁâââØØØÂÂBÒê.§¦¦Þ|óÍ€€€°°0±X<;;k2™ª««£££}}}ÓÒÒº»»Ænë¡¥¤¤ „‚ƒƒí5e9ùöZ¶‡Édîèè/*º÷ŸüüO¾üRm0˜¶‘%th“U«VÕÔÔüùçŸ8¹yóæ»wï.XÄëî*/—'$”óxEO?-¦ÄåA‡6÷žF£±««ëÀ l6ûâÅ‹ 1O%¶¹¹¹Ÿþ™ “ÉÔÞÞŽ`ˆŒgÏžMII™u¤Òâ'íDFßM;—Ë-,,Ü¿kk+•922Âãñ¨äêÕ«ñAll,BèîÝ»QQQ8'.....Ξ՚5k¾ûî»'NH¥Ò¤¤¤²²²¬¬,{æŽ300°nÝ:ì|pp°R©ÌÈȰ¬ T*7nÜH%E"Ñ®]»>̰…Ù³g\.ßµk×éÓ§qÎÄÄ„ÉdÂ!„ø|þØØ‹ÅZ¿~=e%ìr•Ïç[vdý’óä3011íã³ñÈ‘[÷îu±Ùl|ï~Þh¯~YY“¯¯'s›Î/¿øÅÄh¬:¤¡Óéš››E"Qrrrrrryy¹T*Ý·o_NNCÑ‚“FÁápúûû ‚ذa³3*•êÈ‘#8Ç‘^œ)~ùlú×_=}útFFFII •@]Á´ZmWWÎwwwG…„„ŒŒŒà¥Ryøða{Vz½Þl6766j4šüüüW^yE£ÑØ3w’$Ïœ9óòË/ãdnnî¨'€!NWUU•™™I大§ÏÌÌttt´¶¶¾öÚk6›]±bE]]]ggç¹sçpNPP›ÍÆÉ¡¡¡ÐÐÐÈÈHË'ŒwîÜaž±EÀ<ù èõó,ÖCÈÀ×דËõ^ê?6Ûìˆ3 CëösrrÔj5N²X¬—^z ¿ÄP´à¤Qèõúììl‰DÒÛÛ[SSÃà A¹¹¹.\ ¥2­Rf–¤YÚÒ‘]ŒÉdÊÈÈ8xð F£ ¾víÎï½÷¶mÛ†ß3HNNÞ³gå¢W*• µZ­V«ÓÒÒ ìYéõzOOϦ¦¦ÉÉÉsçÎyzzêõz{æ ÷w¨·%ÚÚÚ^}õÕ°°°©©)\ú×_ÅÄÄlÙ²E¡Pô÷÷Ëåòøøø´´4¼ìGoRÞy縸¸_|‘jÓæ.æÌ™3ø1NæäälݺuxxX­VÇÇÇWTTœÆûŒ§NJLLœŸŸ'IòóÏ?çñx†$Éééé·ÞzkÍš5þþþ………:ÎÒ¿ÙÙY±X²zõêíÛ·kµZœomE’¤L&[·n‡Ã‰½zõ*ƒ¹ÍóG>xÃ"<<<77wbbÂrA”””$$$x{{ÇÇÇ:tèþýû”->=mmm¡?þ˜–¬^Å …T׿7Þð÷÷çñxÅÅÅz½Þh4VWWóù|ŸÔÔT|M³7vÅa0ÒÓÓW®\io62Rɾ¾ñcÇ7îçñŠð›:Ë32‚m.tŒFcee¥@ ðòòŠŒŒ,--ÕëõØ¡ˆyÒ,?îçç^SS³}ûöÀÀ@›‘!Äáp<,X°Òâ'íDFm~³³³Bð»xÿ(X,–L&çžÂd2ß¼9xåJoK‹òþý9776~kG¡øwbbøR»:œ†Mý?ÉßÀ›½"==ú£þuçΡÚÚBa¼»;{a3x"Xä³iàŸ‡ã–™ùlfæ³1§P¨üýWºÚ#Xr 2޲r¥‡H´ÉÕ^€3€Ý4ˆŒt 2ÐÈ@"#ˆŒtl¼µsãÆ ü­¸Ð!àBè‘ÿX.ðB$…‡/ùèp6õOÿn€ûŒt 2ÐÈ@"#ÿîHÞŸÎIEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMNodeList_8hpp_source.html0000644000151400015140000002144211653571065017466 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMNodeList.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMNodeList.hpp 671894 2008-06-26 13:29:21Z borisk $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMNODELIST_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMNODELIST_HPP
00024 
00025 #include <xercesc/util/XercesDefs.hpp>
00026 
00027 XERCES_CPP_NAMESPACE_BEGIN
00028 
00029 
00030 class DOMNode;
00031 
00032 
00045 class  CDOM_EXPORT DOMNodeList {
00046 protected:
00047     // -----------------------------------------------------------------------
00048     //  Hidden constructors
00049     // -----------------------------------------------------------------------
00052     DOMNodeList() {};
00054 
00055 private:
00056     // -----------------------------------------------------------------------
00057     // Unimplemented constructors and operators
00058     // -----------------------------------------------------------------------
00061     DOMNodeList(const DOMNodeList &);
00062     DOMNodeList & operator = (const DOMNodeList &);
00064 
00065 public:
00066     // -----------------------------------------------------------------------
00067     //  All constructors are hidden, just the destructor is available
00068     // -----------------------------------------------------------------------
00075     virtual ~DOMNodeList()  {};
00077 
00078     // -----------------------------------------------------------------------
00079     //  Virtual DOMNodeList interface
00080     // -----------------------------------------------------------------------
00083     // -----------------------------------------------------------------------
00084     //  Getter methods
00085     // -----------------------------------------------------------------------
00098     virtual DOMNode  *item(XMLSize_t index) const = 0;
00099 
00106     virtual XMLSize_t getLength() const = 0;
00108 };
00109 
00110 XERCES_CPP_NAMESPACE_END
00111 
00112 #endif
XQilla-2.3.0/docs/dom3-api/inherit_graph_17.map0000644000151400015140000000037011653571066016027 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMError_8hpp__incl.png0000644000151400015140000000715011653571065016442 00000000000000‰PNG  IHDRÅuq²ÒbKGDÿÿÿ ½§“IDATxœíÝ{PçÞð'0•H@ìÁ ¶JDsŽ:£ ©Ðñ†H¢…al¹x”ΫX™Î(Zi©ƒu¦•)r;Reµ@ÇÖ)­†ik¹½¶å´€Ö’@Ñ È%ûþ±5ÙìûH’ö÷ùkóË>Ïþ6óÍîæaÀ„mëÀ_ ä ày8AžN\[7€B ¹¹¹¶î±…††9rÄÖ]ØGž¾ùæ›°°0[7â¨îÞ½+lÝBv’'RNNŽ­[pTÇ·u €ë'€ä ày8AžN'€“½¾›–L&£–½½½W®\™‘‘Áçó©¢Á`(//oiiQ«Õþþþ!!!»víâp8äX__ßŠŠ ‹E­øðáæææÏ>ûÌ××—>9åæÍ››'7„kBûäHyBøøøÆÞÞÞ+W®¤¦¦–––º¹¹!„ÆÆÆ222AZZšH$úí·ßJJJZ[[?úè#6›êïï¿wïžX,&§Òétmmmæ“ÏþNý•8ØùŽÏç{xx…ÂU«V8qÂÇǧººš¼ëüùó|>ÿôéÓkÖ¬ñóó ),,ìïïÿꫯȤR©\.§¦ºuëVpp°ùät³µ[–':‹µcÇŽÆÆFòf}}}RRy("ñx¼]»vÕ×ד7ÃÂÂär9õ}¯†††7N»¥R)“Énß¾ýúujY¡PŒŒŒ|øá‡QQQqqqgÏž§¯¬P(L¦jmmMHHˆŒŒ¼pá5ó?üðÆoDGGŸ9sfbb‚±øÿ¬fç !äçç§R©B###†:—QÄbqOO¹¼bÅ ½^ïÞ=„Ðèèèí۷ׯ_O_Ù`0èŸFÝUUU•H_þøã Ož<ÙÒÒRYYi¾2]SSÓ¹sçÞyçâââááa²XSS“——÷Á455]¼xÑJÑ!8ØõÓ³b±XF£‘\f³Ù¡¡¡r¹\,ÿøãAAAóæÍ£¯üæ›oš §®ÇSSS”J%µ<99yãÆ’’ò’+%%åÓO? §V0o&>>~îܹ6l@ét:²˜‘‘áççGn½¸¸˜œÁ¤˜œœŒëyÞ;O}}}"‘!äæææááÑÝÝ-•Jé+tww/Y²„º–ŸŸ¿gÏÆ“•×_þþþ&ËZ­Öh4’[Gùúúš¯L7þ|„ý&BˆÌ 9Šš±èø|GD]]ݺuëÈ›áááçÏŸ§ŽF!ƒÁPYY¹fͪ466¦P(Z[[ÉãÄ q¹\“e@Àf³Õj5YT©TB¡Ð|e:“$‘úúúÈ…ÞÞ^2p–ŠÁÁò444¤Ñh>|ØÖÖväȵZýú믓w%''kµÚ477÷õõ}÷ÝwB¡0**ŠNžòNŸ>ýÒK/Ñ߸¢ONg¥.—+“É>ùäµZM¾7Ažªè®]»6::j} ”Jå/¿üR\\a¥èì|·oß>rÁËËK"‘¹ºº’•¹sç•••ªT*ŸM›6ÅÅÅ999ÑgÉdµµµÑÑÑV&§X?óí·ß.((HOOwrrzå•WLÎM§N ¦:d~ðàAƒÁ°iÓ&j“¢•áö†e/UUUñÍh‡ T*Möš±8­ãÇ{zzVUUamðÏp°ó°s'›quuŒŒœIÑ@žl†Ïç8p`&Ey8AžN'€ä ày8AžNvôyKVV–­[pT÷ïß7ÿôÐ&ì"O .Œ‹‹³uÖ´¶z<öð0غfÔ÷,lË.>¿³"Ñÿ&ïØ<ýªopýp‚<œ O'ÈÀ òp‚<œ O'ÈÀ òp‚<œ O'ÈÀ òp‚<œ O'ÈÀ òp‚<œ O'ÈÀ òp‚<œ O'ÈÀ òp‚<œ O'ÈÀ òp‚<œ O'ÈÀ òp‚ÿOÇìßÿ®øïÕÔM¥rÈÃÃÕÅåŸ>ãr9ÿùÏÓ_Ðvñÿ3íXì]Ss›þ\Óéôô{!LŒà|Çìµ×¤1ü<+BˆËåìÚµ†ñ.yb¶hÑ|‰Ä—éÑÔ”qçÎÕ³Þ‘c€O===)))Ó®ÖÝÝÍb±è ôá?ýô—Ë­®®¦êµµµÎÎÎ …âyôl‚Eóâ‹/&%% ZYŸ ˆÄÄD77·™ÏßÝÝ£Óé9|žjjjvîÜÉx×ýû÷…B!¹Ìçó>liøªU«Þ}÷ÝÌÌÌ¡¡!„ÐãÇ÷îÝ›““ôü:§»uë–Z­îëë+++^½z5Ù #•JuáÂ…ŽŽŽÙéíÙ47oÞ$ʶmÛÆÆÆïêêê2ÙAó"5üÉ“'+V¬HMM%"==]*•Ž?·®Ÿ‚êêê¢nÆÐÐУGZZŸq¿f>?Fwîܹsç½òÌǧºº:___òc¾ÊÊÊ%K–ŒŽŽ"„&&&:äíííååuèС‰‰ òÌòí·ßúûûËåòœœOOϤ¤$êÉg> !ôÅ_H$PQQšœœdþðáCWWWúYŒZ^·nBhÁ‚Èì4g2!äìì\^^^ZZš——WVVV^^îääd©IŒ»fŽÅb¥§§_»vÍÒ<ôýšáœ_ýµX,yyyÔ£Q[[»téR//¯ÌÌÌ'Ož0g =\3<>%%%%''÷÷÷{{{755‘Å“'OÆÄÄôôô´··¯^½:;;›|mÙ²åÆÇŽ[¾|y{{»B¡X»vmVV–¥Q###sæÌ),,T«Õ%%%\.wdd$??ŸqxiiiEEñôS–Zž¶H §dgg#„rsséÅçºkÓñ£¥¥…Ïç[ß:y¯¥9éBÛ·o¾rå ù,"gxõÕW;;;Åbñ±cNj֓`~|ú3yÒjµ~~~‰„¾½eË–©Õjr¹¾¾>88˜ì¯½½ ˆ¥K—^½z•¼·££ƒZ6¥ÑhœœœN:¥ÕjF£N§›šš²4<&&F£Ñ6OÔp’ÑhŒŠŠâp8‰‰‰ôý}®»FL—'K['+–æ¤CÉår‚ ¦¦¦ÈmÑû'âÒ¥Kb±˜±HX…'OA¼÷Þ{g``€ªðx<úaÏÝÝì¼ áñx …Â|óQA|ÿý÷±±±®®®!!!_~ù¥¥á:nÇŽä2ý!&¿@L—'úpREE…»»{CCÇ«©©™]#˜òtñâE©Tj}ëÔÊŒsÒ!„:;;éÛ"gÐëõd±­­Çã1Íg£Ãpý„êíí-((?xð U …Ôƒ¢ÕjÉ:y"‰ÝòåË©ŠÃ¿?ì äéïhÞ¼yiii3)>+8ß?Îwàù‚<œ O'ÈÀ òpbøû`•J5û}Gd0L>®fÈü•>˜9“<Áïmœàú ày8AžN'€Óÿä5˜M¾1¿IEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMXPathException_8hpp__incl.md50000644000151400015140000000004011653571065020144 0000000000000023ec91dba1f7baca13ed0f10f047ed0aXQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMException.html0000644000151400015140000006444711653571066020444 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMException Class Reference

#include <DOMException.hpp>

Inheritance diagram for xercesc::DOMException:

List of all members.

Public Types

Public Contants
enum  ExceptionCode {
  INDEX_SIZE_ERR = 1, DOMSTRING_SIZE_ERR = 2, HIERARCHY_REQUEST_ERR = 3, WRONG_DOCUMENT_ERR = 4,
  INVALID_CHARACTER_ERR = 5, NO_DATA_ALLOWED_ERR = 6, NO_MODIFICATION_ALLOWED_ERR = 7, NOT_FOUND_ERR = 8,
  NOT_SUPPORTED_ERR = 9, INUSE_ATTRIBUTE_ERR = 10, INVALID_STATE_ERR = 11, SYNTAX_ERR = 12,
  INVALID_MODIFICATION_ERR = 13, NAMESPACE_ERR = 14, INVALID_ACCESS_ERR = 15, VALIDATION_ERR = 16,
  TYPE_MISMATCH_ERR = 17
}
 

ExceptionCode.

More...

Public Member Functions

const XMLCh * getMessage () const
Constructors
 DOMException ()
 Default constructor for DOMException.
 DOMException (short code, short messageCode=0, MemoryManager *const memoryManager=XMLPlatformUtils::fgMemoryManager)
 Constructor which takes an error code and an optional message code.
 DOMException (const DOMException &other)
 Copy constructor.
Destructor.
virtual ~DOMException ()
 Destructor for DOMException.

Public Attributes

Public variables
short code
 A code value, from the set defined by the ExceptionCode enum, indicating the type of error that occured.
const XMLCh * msg
 A string value.

Protected Attributes

MemoryManagerfMemoryManager

Member Enumeration Documentation

ExceptionCode.

INDEX_SIZE_ERR: If index or size is negative, or greater than the allowed value.

DOMSTRING_SIZE_ERR: If the specified range of text does not fit into a DOMString.

HIERARCHY_REQUEST_ERR: If any node is inserted somewhere it doesn't belong.

WRONG_DOCUMENT_ERR: If a node is used in a different document than the one that created it (that doesn't support it).

INVALID_CHARACTER_ERR: If an invalid or illegal character is specified, such as in a name. See production 2 in the XML specification for the definition of a legal character, and production 5 for the definition of a legal name character.

NO_DATA_ALLOWED_ERR: If data is specified for a node which does not support data.

NO_MODIFICATION_ALLOWED_ERR: If an attempt is made to modify an object where modifications are not allowed.

NOT_FOUND_ERR: If an attempt is made to reference a node in a context where it does not exist.

NOT_SUPPORTED_ERR: If the implementation does not support the requested type of object or operation.

INUSE_ATTRIBUTE_ERR: If an attempt is made to add an attribute that is already in use elsewhere.

The above are since DOM Level 1

Since:
DOM Level 1

INVALID_STATE_ERR: If an attempt is made to use an object that is not, or is no longer, usable.

SYNTAX_ERR: If an invalid or illegal string is specified.

INVALID_MODIFICATION_ERR: If an attempt is made to modify the type of the underlying object.

NAMESPACE_ERR: If an attempt is made to create or change an object in a way which is incorrect with regard to namespaces.

INVALID_ACCESS_ERR: If a parameter or an operation is not supported by the underlying object.

The above are since DOM Level 2

Since:
DOM Level 2

VALIDATION_ERR: If a call to a method such as insertBefore or removeChild would make the Node invalid with respect to "partial validity", this exception would be raised and the operation would not be done.

TYPE_MISMATCH_ERR: If the type of an object is incompatible with the expected type of the parameter associated to the object, this exception would be raised.

The above is since DOM Level 3

Since:
DOM Level 3
Enumerator:
INDEX_SIZE_ERR 
DOMSTRING_SIZE_ERR 
HIERARCHY_REQUEST_ERR 
WRONG_DOCUMENT_ERR 
INVALID_CHARACTER_ERR 
NO_DATA_ALLOWED_ERR 
NO_MODIFICATION_ALLOWED_ERR 
NOT_FOUND_ERR 
NOT_SUPPORTED_ERR 
INUSE_ATTRIBUTE_ERR 
INVALID_STATE_ERR 
SYNTAX_ERR 
INVALID_MODIFICATION_ERR 
NAMESPACE_ERR 
INVALID_ACCESS_ERR 
VALIDATION_ERR 
TYPE_MISMATCH_ERR 

Reimplemented in xercesc::DOMXPathException.


Constructor & Destructor Documentation

xercesc::DOMException::DOMException ( )

Default constructor for DOMException.

xercesc::DOMException::DOMException ( short  code,
short  messageCode = 0,
MemoryManager *const  memoryManager = XMLPlatformUtils::fgMemoryManager 
)

Constructor which takes an error code and an optional message code.

Parameters:
codeThe error code which indicates the exception
messageCodeThe string containing the error message
memoryManagerThe memory manager used to (de)allocate memory

References fMemoryManager, xercesc::MemoryManager::getExceptionMemoryManager(), and msg.

xercesc::DOMException::DOMException ( const DOMException other)

Copy constructor.

Parameters:
otherThe object to be copied.

References fMemoryManager, and msg.

home jpcs xml xerces xerces c src xercesc dom DOMException cpp home jpcs xml xerces xerces c src xercesc dom DOMException cpp xercesc::DOMException::~DOMException ( ) [virtual]

Destructor for DOMException.


Member Function Documentation

const XMLCh * xercesc::DOMException::getMessage ( ) const [inline]

Member Data Documentation

A code value, from the set defined by the ExceptionCode enum, indicating the type of error that occured.

A string value.

Applications may use this field to hold an error message. The field value is not set by the DOM implementation, meaning that the string will be empty when an exception is first thrown.

Referenced by DOMException().


The documentation for this class was generated from the following files:
XQilla-2.3.0/docs/dom3-api/functions_0x69.html0000644000151400015140000002207311653571065015665 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- i -

XQilla-2.3.0/docs/dom3-api/xqilla-dom3_8hpp__incl.png0000644000151400015140000017775411653571066017166 00000000000000‰PNG  IHDRÖj|çbKGDÿÿÿ ½§“ IDATxœìÝw|SÕÿ?ð›Ù6-I÷^@à ‚à`ËDeÉTQPqà—|à#*?ˆ Á T°€ŠlheÏ2›ºGºÒ$Y÷÷ÇÁkLÒ4mÓÜ$}=>|„ôææÜ›{On^9yMÓØ—í¸&Dð­<@«@Ð*øl7 ¥~ÿý÷õë×³Ý ´fÍšž={²Ý '†œ^AAÁÉ“'ûôéÃvC\‡V«MMM]²d Û pnˆàÀ¸»»¯X±‚íV¸ŽêêêQ£F±Ý §‡Zð­<@«@Ð*Á´ Dð­<À¿ 8Ðìf¯ª• 8°   õÖ-Äg»ŽÅËËkÒ¤Il·‚¢(J«ÕnÞ¼ùøñã555]ºtY´hQhh(Û€&À(x€‘H$³gÏf»EQÉÉÉ©©©«V­Ú¹s§ŸŸßG}Äv‹ iÁ@›pæÌ™qãÆ©T*Š¢Ž;6mÚ´ºº:š¦÷íÛ÷â‹/Ž9òµ×^»zõ*)íb¡zÌÙ³g_yå•áÇ;öÇ4ú«^¯ß½{÷´iÓFŽùúë¯ß¹s‡Ü_UUµvíÚ1cÆŒ?þ«¯¾R«ÕE 8ð?þxñÅŸ}öÙüñðáÓ&Mzúé§¿ùæò¨+W®Œ92!!ÁÇÇgìØ±¦í¹téÒ”)SF½sçNêïÒ7ýõ×´iÓž{î¹/¾øB£Ñ˜½Ó;B4Ð&<ñħNÚ°aÜ9s6lØðßÿþ×ÝÝýàÁƒß}÷ÝâÅ‹;w™¹fÍË+©©©ùàƒ† ²fÍšk×®­^½zäÈ‘ÞÞÞÌ¿üòËO?ýĬpݺuäþÏ>û¬¢¢bÓ¦Mµµµ«V­‰D/¾ø"EQ—/_þꫯNž<¹nݺlÛ¶íøñãŸ|òɸqãÄbñêÕ«)ŠÒëõr¹üÈ‘#‰‰‰¦M:þü–-[._¾üÁŒ=šÜù믿®Y³F¥R­^½Z,<ØôNÒhUmÅüùó¯\¹²dÉ’1cÆ$$$PõË/¿Ì;·oß¾~~~½{÷ž5k–å5…ÂmÛ¶-X°ÀÏÏ/00¢¨êêjÃöïßo¸BRÐF«Õ?~|þüù!!!:t˜1cÆ‘#GÈò'N‰DC‡¥(jòäÉ"‘høðáE‘ÑúÄž={ÆwðàÁ7ÞxôId }úô1|Ô«¯¾Þ©S§Y³f1ÏeöNhUm…——רQ£¾ýöÛO>ù„ÜSTTÃ,СCËkàóùùùùüqmmmll,s?S¸ÆÍÍÍt…r¹\¯×33©†……•––’Û"‘ˆ¬Öè¶¡‰'¹‘——G2ú†î€V…Úš¦?úè£çŸþý÷ß¿|ùò™3g(Š1bÄW_}õ×_UTT\¸paóæÍ–W¢Ñh´Z-ŸÏW«ÕÛ·o§(ª¦¦ÆpgžyÆp…dbU>Ÿ?pàÀÏ?ÿ¼¨¨(++kÛ¶m¤8{£ôzý×_ŸŸ_^^ž””Ô¥KŠ¢~ûí7£ê7¦¾üòË‚‚‚»wïnݺuÈ!î€V…B4Ð&üú믕••“&Mâóù‹-úôÓOz衉'êtº 6TVVvèÐaΜ9«V­²°//¯W_}uÕªU“'O~ê©§–-[¶oß>fgŸ}V£Ñ|õÕWååå;v|ÿý÷çÍ›GQÔo¼ñå—_Î;W  4hÊ”)Ö´yÑ¢EŸ}öÙâÅ‹«««»uë¶téRŠ¢>þøãnݺyzzZxààÁƒß|óͺºº§žzjÊ”)¤ìŒÑÖ4ZˆCÓ4ÛmhF'—×TVVËå5ryurò;w®Ù¿_ã´¨  `êÔ©'Nœ°I#Yavš±]ÕÕÕ£F:tèаaÃlÝF€6£àÀÔÔ¨åòj¹¼¦¼¼ŠÜ0øueeMEEuEEµJUgø(¡ËáˆØj3@CÁ@«S*k‹Š EBQ[YY£PÔ*5••µ%%ÊâbÅßÿ¬©¯×>J"‰%oo‘DâÑ¡C ··¹3(H,‘ˆÈ?ÝÝ[¶lY¼XÉÖÖ9OOÏÑ£G[s§5RS ÜÝÓCB$aa>žžn¶h @Û‚B4ÐL:¾¬LUYYËdë%%Êâb¥IÔþ¯lÇãúû{I$"’­3y:µfë–PQQŸ_‘—W‘œüç®]ÿ9pà@+oqR]]ýÌ3cÃÃ_ÓhôäžvíÜCC½CB¼ƒƒ%aaÌ Ÿ‰XìÁnkFÁ€1FWQQ%“)e2¥á u’­ËdJ™La:h](䇄HÅ$IŒô#IºQÔÞh°nJ.¯ÎË«ÈË«ÈÏ—“ä¿êêzŠ¢ÜÝ ¢86Û~ (Š¢ôúúÍ›‡ðTq±B&SÈdÊÜÜòâbeI‰òÈ‘Û2™¢´T¥×ÓE <__Ï  y•£¢üÅÁÁ’ÈH¿°0>ŸËö¦°<@[AÓtI‰ÒpÐ:“§[´ÎårÚŽRŒô 3Q»õƒÖ-ÓéôùùòÜÜòœœòœœòÜÜòâbEI‰²°°R£ÑQ$ ’DEùÅÅÒ%*Ê/2Ò/8XâæÆß²eËâÅø¯ÍqõzÚÍåågúgµZ+—WËdÊœœrò…MnnyzzqJŠ4?_®Ó=>/‘ˆ¢¢üLÓùÐPo€gß-°7DðN Z'Ù:IB ­3Q»BQcø(2r™)­n4hdëÁÁb‰ÄÆÓœZµ÷êÕ„¿LÔnÛ–€eq³g¿¼B!?(H$ILŒ0z,óCŠFÓy&šg^÷À@qx8JÏ€‹À%,€ã²É,¦L¶n:‹i«6Q»³S« §MëÌçû¥§'%]”É”E‰DÂØØ „„òÿ¸¸àðpÓÇ ¼†ÒyŠ¢Š&šÏÉ)—É99å))Ò‚¹VÛH:æãå…tœ.mìÍ&³˜ÆÇ7{S›oŽaÔÎ g¢vR‡Q»ÓÑé”ýûG 6ŒüS£ÑÝ¿_*•K¥ÅR©ìçŸ/ffÊôzZ àµoDÆËÇÄòx–ê¿K$¢ÄDó¿®h(g'Š¢ÜÜø¤” Í“°>::@,v·íNh!\òØL³g1õñ‘©,m;‹©mYµ'&FŒÝDíAAbÖ[6!ðâãƒãベ{ÔjmVVYZZžT*“J‹“’.åæVд™P>66ˆËµj¾\Ëé<™ –9ürrÊÓÒò ädb^ªát>*ÊÏæ%•¬ fg1eª®74hÃáÚcS›k4j‹=¢£ý-j¯­­]²dI£‹étµµþžž…Ž®%O§Ó x @ÜÔ¯ !‚d“YL™lÝγ˜Úœ+EíM•––·gÏ¥£Goåä”GEù×sÔ¨n†£¶›aÏž‹K—þ=½X*-NO/*)QQ%»GGÿ+”Šò³Å5¨¡tžœ#d¦N™ 68XÌT¹ ÷±\ò€BNÄ&³˜2y:볘ڜQ»{tt€aÔN"EǰßTRiñ׸.•IFzxôè‡{ölßÂáÌz=½bů۶~óÍa‹³Oé’ë×ó^xaSÏžQ[·Î´ÿ¶µµêK—²OŸ–¦¤HoÜÈwsã?úhû~ýâúöëÚ5ÜVÃÃBù»w‹JKI(ïíOj×\>(Hl“glT}½¶¸XÁœD†UnJJTäs4ùA Òy° <°Ï&³˜„qœYLmÎ0jgÊ^·Í¨ÝHF†lÿþ«6OÞ F·téO{÷^^µjìôéO´|…ÖKKË{á…MÝ»G~óÍËöOáeeUgÏf¦¤HOœ¸[P ÷õõ|òÉX2:>2ÒÆÃÕBùÛ· ËË«(Š’HDÌ0ùøøà„„€€v¶}êF™MçÉ8ú¼¼ ½þÁGl2;1SÓ†©ræÃç#hCÁ@k±Õ,¦¤´ºãÏbjsˆÚ­”™Y’œ|åïä]@+AÐ ÌbêìhšÎÍEÔî¸*y'ö칸hÑ®—^êóŸÿ<ç…8òóåãÇoðôtûé§WdÂØb ÇŸ66È5ÆŒ××k‹‹$‹ÏÍ-7LçKJT$X`&1MçÃÂ|ø|¤óÐF!‚€¶³˜º˜F£v‘H„¨ÝA+~ùåÒž=—¤Òb±Øý™gºדÝäøî»33ôæÍÄnKš¤ @>~üF>Ÿ»gÏkAAb¶›c3 Ç?öXGG+Ðoʧ¥åK¥Å¹¹4M …üèhÿÄÄp2Åk\\pd¤¯S|»c=µZ[TdœÎ“Þ8/¯B¯9H$"f2Ø¿{cId¤ÒypyˆàÀuØpSooÓ¨Ù:묌ڙˆQ»C‘É\?pàÚåËÙ^^nC‡v=º[ÿþñ¬LÂiêûïϼývÒâÅÃÞ|sÛmi²ÂÂÊqã6ðxܤ¤yAA¶›c{†…ãÓÒòD"aQ8Þ•ª.+«”LñJ¢yÊ·kçÞ¾}™âÕUCyó…7SqžéÀóóå:ž,f6 GDøŠDBv7 åÁ€°fSÓl³˜:/Dí®Ä0y÷ôt6̱’wâçŸ/.^¼ká¡K– g»-ÍTR¢š0a£V«KJz-8ØSx†L¦¼pá~JŠôÈ‘Û2™"  ÝcuìÛ7nРN¡¡Þl·Î¥².;û_¡|NN9EQb±Gt´¿a(åÇvc[i:ÏŒ£/(kµÿ¤óLWOjÚŒ><ÜÇÓÓÝM°"x`f1mãHÔÎÄ.¦Q»‡‡06Q»S’É”\3JÞûõ‹wss ä8|øæ¬YÛgÍê÷ÁcØnK‹”–ª&LØXS£NJz-"Â—íæØS8þĉ;UUõ…ãÄbw¶[×8¥²6;»,=ýAí©´˜Ìz*‘ˆ˜D>>>8>>$0°Ûµ+…¢†‰æ™ù`ssË +5YÆ4'ÿlß> ];'xõ í@¶§×Ó¥¥JÌb Dím‡aò. ‡Èa“wâÂ…û/¼°iÒ¤Þ«We»-6PZªš8ñ«ªªº¤¤×"#]$5C«Õ_¹’}äÈí”éÍ›ù\.§sgÇ-oBQC†É§§K¥Åwï•–ª(“P¾S§PW˜}· Óyò¶Bþ™Ÿ_QS£&˸¹ñI¡yfà>>8..¨K—0TKg0é<3ŹÈÉÎ.U*ëÈ2$'“ÁþÑ?HçÅN÷å 8Dð®¬y³˜òù\??/Ìb ¢vh@i©*9ùê×®\ÉqwŒñÐèÑÝúös¢ïÛòóåcÆ|í·sç'j¶õŠšI“¾.,”ÿü󼸸`¶›Ã>½ž¾y3Ÿ ¿pá~}½–)?`@‚³——ÉÌ0ùôôâÛ· ««Í„ò]»†‹DB¶ëpêê4ä=Î$/S*kÉ2B!?$Ä8'ç#"|¹\¤ó` "x§T_¯-.VÈd ›Ìbjµ»d–5µóùܰ0&aGÔÞ6••Uýúë§NÞ ¥²î¹ç>§ijïÞ×½½]öV*k'MÚ”Ÿ/ÿùçyññHáÿQW§¹x1ëôi©³Ž·À(”¿u«€ÔIgBùÄÄðøøàØØ „ò 2Jç «Ü””¨HœÂTÛ‹Šò ‹™*7áá>.ö hDð³˜BkCÔÍ`˜¼»¹ñGŽLtÒäÐéôÓ§o¹u«à?‡„x³ÝœÖ¥TÖMž¼)7·üçŸç%$„°ÝGTQQý×_))ÒS§Òóò*<=Ýy$ŠŽOLŒ`»u¶dÊß¼YP[«&}> å™ÊòNzjÛ3âïŒÞªtžGæÃç#h+ÁؙŴ²²–!µÉ,¦LÔŽÊ`3¢vhžòòª}û\'yg,^¼{ÿþ«ÉÉ ºt c»-ö TÖM™òuNNÙO?½Ú©S(ÛÍqhLáøÓ§¥ EMP¸W¯}ûÆ ÒÙõ&êÔjõr©ôA"/•ʤÒâº:i(Ÿ":ÁìŽC­Ö=HçÉÌ8ú¼¼ ½þA#‘ˆþžVüwF/‰Œô õvŸb<@óaSpˆÚÁ¶ “w¡ÿôÓ‰£GwëÓ'Ö5ªUlÛvzÅŠ_·l™1bÄCl·Å~jjÔÓ§o¹u«p÷î¹?ìR#»[‰N§¿u«€dñçÏßW«ÿ)?p`'//לãÔ4”OO/ª¯× ¼ÐPoR»†Dó11¨¯Ò±_ý"‡Ó³ÂÚZõ‹/nKKËûñÇ9<ÅvsœRyyÕ™3™))Ò“'ïæçË}|<ûô‰%ó¸FFú±Ý:{Ðht÷ï—’PžT–G(o E 3pÞ0/,¬Ôhtd&g¢yr;::@,vg·ým"xp˜Åœ‘å¨Çㆇ#j‡Ö¢RÕ:Ô&’wB­ÖŽý‡Ãùõ×ùm¹K¯­UϘñ͵k9;wÎéÑ#šíæ87¦pü©SéJe-S©¦oß8oï6ôs7ÓP>3S¦×ÓB!?:Ú?11œLñéÛ6¿ýjm Eád°L•›üüŠš5YÆÍO Í›¤óþ®Úí8DðàÐ0‹)¸€¦Fíäã1fcƒÖÀ$ï§O§ëõ®Ÿ¼3–,ùé?n9²$4Ô›í¶°L­Ö¾òÊŽ¿þÊøî»Wžx"†í渣ÂñZ­®k×p24¾W¯nnmn"Ó†By±Ø=::€LñŠPÞ>Jç åUUõd£tÞ°ÊM` /€M ‚`SpIäGâˆÚÁUUÕÿñGšQò>th—625Åž=.Üõí·³îÌv[‚F£{å•©©Ò;fõéËvs\ŠQáx77þ£¶ï×/®-Ž·@¥ªËÊ*%S¼’h>7·‚¦i±Ø#:ÚŸ å#‚‚Äl7¶­`Òy2,Så&;»T©¬#Ët>0PlÑ#hDð`K†³˜*µ2™R&SØdSooooÏ6I ™Û IDAT8” ¢vpmql7Ç5••U=›™’"=~üNaa¥¯¯ç“OÆöí׿|D„/Û­c™RY—m&”—HDL"ØŽíÆ¶9uuRhÞ(ÏÉ)W(jÈ2B!?$äA:(3<¾möÛ&€† ‚«4oSfì f1gÔ¤¨#†¨Xg6y2¤K›ªOMhµúQ£þEQû÷/ ñ%î¿h4º¹s¿=y2}ûö™ýúųÝgP8þ®RYÇŽï×/®M}%fRY›]Æ„òiiy2™’¢(£P¾S§P/¶Ûv‘tž™ Ö°ÊMI‰ŠäKLAÈ¿¯ŽþIçÃÃ}x<.ÛÀDðmZóf1år9í0‹)¸ ò±Q;8»êêúßO;xðzJŠT§Ó·åäñÅG?ýôÏ£G—vìÈv[‘F£›7ïû#GnmÙòÒ!]ØnN›`X8þܹ{z=Ý¥KÉâ{÷î€/Š )5$‘OO/–J‹ÓÓ‹JJTÔ¿CùÄÄðÎü¼ÜØn,PõõÚâb…Ùt¾´T¥×ÿ+gjÚ0—Uaa>|>ÒypYˆà\f10e9jçr9¾ˆÚÁé&ïZ­nàÀN£F=11œ±ÁÐÇGfåa&ƒeªÜȵÚFÒù°0T(Ç u5oS¡‚YL@ÔP[«>xðúÁƒ×SS34-IÞŸzª³¯/’w3²³Ë úhþüÁ‹ e»-NC¯§ß|swRÒ¥Ï>›üüó=È*UÝ„ ==Ý“’æ±Û¼¶I«Õß¾Âñ-eÊߺUPS£æó¹aa>$”'•åããC0fʼn4”ÎVj4:² “Î3ׇävtt€XìÎnû ­AЦ³˜2C×1‹)@³™FíÌ7UTÃQ{Hˆ1¸*µZ{êTzRÒ¥£Go××kzôˆ?þÑ‘#‘¼[6kÖöìì²?þXŒïáš„¦éwßýåûïÏ®_?iܸžÕÕõãÇoLKË×ëõ¼Ñ£G4Û lÓª«ë¯\É!…ãÓÒò<<„(ßlF¡üÍ›µµfBù„„\`8#…¢Æp2X¦ÊMA¼ººž,ãæÆ'uÒù¨(?‰¤íÎa­<À¿´dSfœf1°L©¬ËÎ.m4jg>!j‡¶F£Ñ}Ö Öå¿ÿÇv[œUMzâįÒÒr5½é_ûmQ÷î‘öo4UUUýÕ«ÿމ„=z4¡pü‚?þúë•eËF¼úê@Ô]iˆF£»¿”„ò¤²ü½{%:¾];÷öíH5yÊGFú¢z‰«ª¯×+˜É` «Ü””¨HàFj–šMçÃÃ}pŠ´ˆàÀ®0‹)@Ë¥¦f¬_ÿçÿþ7!&¦µÆx"jh¡ƒ¯¿ñÆNF§ÕêîóÏ÷\¿~ù“Ùä}Ĉ‡ÂÂ|Øm³ ضíôêÕÏž}/(HÌv[œ’F£{é¥m§OßÕéÌ|Häñ¸ƒuúöÛYöo´„L¦<}:ýèÑÛ©©ryu@@»ÇëØ·oÜSOuj¨ÈU×®ïWTTq¹Ü®]C6l˜Žß”XÉ4”ÏÌ”éõ´Xìý¯P>*ÊÏ&O÷òËß¼óÎÓø½‚c²Î—–ªôúݬD"2œ –¹À ó±ðû¹Ö°jÕ™3ûb@+A¶YLì 55cÍšƒW¯æRõãs Hhá ¢v’³çä”[ŽÚƒƒ%¨ÑÐF÷ÿ·ûöŠ¢˜+m‘È--må_e8píèÑÛ ’wÛÓht½{ÿgĈÄÕ«Ÿg»-Îêøñ;óæ}_]]¯×ëÍ~Läp8G.AÞç¤ôzúæÍ|R©æÂ…ûõõZ¦pü€ íÚ=(÷nÑ A‘Û|>—¦©… ‡,\8cu›¡áPÞ#:Ú?..(11‚äòÍøâ0#CÖ¿ÿZ‡3~|Ï·Þ‰YCœˆZ­•Ë«™É` «ÜäçËuº?Bj( õnRi)kTVÖtîü.Ç7®çüùƒ;t°íú<4¢³˜REòtÌb `4Mù3/¯œËåÉ|>oР„;0ÞéÕÕi.^Ì"•jnÞÌçr9;?(ófÁš5µÚ^zÛ¹sèÆÓ0¾åÔjmVVYZZžT*#Ñ|nnMÓ‰ˆ&œÐÎòª¼>wî·z=Íãq¹\Îܹ_ý)æ«pRdd›Ùt¾ @Μ˜Ì ¶¿3úUnÂÃ}<=Ýšñ¼wî>õÔ:Š¢x<®^¯92qá¡]º„ÙrÛÚ6DðmTËg1õöþgè:f1h%$|ÿøãC™™2‡ÃüdU(ä¿òJÿwße´<¢v]¼˜5sæ7Je­á$–ŸÏKHùì³É:!yo-Ï=÷…ŸŸ×Ö­3Ønˆ+ÐëécÇn¯[÷ÇÍ›<Þ¿‚x‡säÈ’Î1Þu+NJOI‘¦¦JKJT±±÷î•2—r»lÙˆW_„‰%m‹\¼‘)^-„ò;‡úùy>ðã}ùåQµúÁ;ŸÏus.\8xÖ¬þ¸®sU Eá>SåÆšt>4ÔÛÂ74GÞž>} óO>Ÿ«Õê»wZ¸pÈàÁ1™@Ë!‚p5f15ˆÚ1‹)€£3ßK8Êè“0—Ë4¨óìÙý äyy¹¹åyyyy2™’%nnüˆ_ÃÿÂÃ}ÃÃ}Qͳañµk£i㳕!¹Ý¹³Úæ¿‚”Îøùçy}úIJÝ—ráÂýÏ>;zâÄ>Ÿ§Õê(ЏC†tÅW.‰¦é7 ÆŒùÌ蓃Ëå<üpĆ Óð[“V¥TÖfg—†ò99åE‘PþïÚ5A6œ8vì–é%¢ŸŸ×Ò¥#&MêÚAmŠÙt^&SæçWÔÔ¨É2nn|Rʆ‰æIXœ|åÝw1üù õ ˆ§ããƒæÍôüó=pD´"xç`«YL%Qp°Ø4jG¶à8Hø¾nÝ÷†ï ±ØC©¬%5"1ª€EÕÕõ‹ï>xðzc×Õœï¿å©§:Ù©YmÌÿý_ò¡C7þúë]ŒÏm ©©Ÿ~45U*òÕj-—Ë9uêmÔ$qIgÏÞ;öK ðù<€÷ÿ÷ì”)a`¬ÝÈ32dwîedÈîÞ-ÊÈUW׋DB&Z5ÄårhšêÐ!àßśh4º¢¢ÊâbEAAeQQeQ‘¢°P^\¬(,T”–*É .—# Õj-ó£ Cäˆ õ~ã!'öÂ`€æ1Áÿþûïùùùöo € ýúõ³¼ŒL¦ÈÏ—÷èm—Ùf1mUèÍÀédeÕ=*+(¨ãp(ËižDâ~òä;͘¼ Ø‚É%ÉåšÌ+-­otI‡Ó­›dÌ'+D3räÈððp¶[ÑNߣLJ/¾ØgÑ¢¡V>¤¼¼¼¾¾ñW ݹS¼cÇ…ãÇÓiš>¼ÓªUÆÅЀ]\.788¸%k(//ÿüóãÛ·Ÿ3 kV¿~1ï½7Ì×WÔ’gkøùù¹¹ý«º7MÓYY¥ýú­mh EQ¤„ÔOÄ,_>"8â]–H$òönæL¼N&Sܸq¯¤DõÃïÞ•ét Q\.‡¦éÉ+¯<1bDg>#âaô¾l~ˆÜgŸ}vøða{5 À*³fͲÁ_¿ž·yó©ýû¯ŽÛÃA"x›Ìbé‡YL[½8ŽH”èéù0ŸïKQ”^¯åp,dW*ë%{µ l=’ë C¼½‡óxbŠj|((MÓ—/Ë~ÿ}%E5žm9ŽC‡9~ñbVI‰ê™gºYÿ‚‚‚ŠŠŠÖk’Kâñ¨—_Nxúéðýû3—ž>}58Ø“íFÁ?ø|~ #ø‚‚‚cÇîåï<‡Œv×éô†ƒRSï͘ñÝ«¯>Ò¡C3ã?°Rbb¢QÏápÔj…ü¢(R™ðÌ™Ì1c6 =vl¼——°u l iv/ð‚ƒÅ™™ÕQQ\ŠÒZÈß .—SX¨X»öðÉ“·¦OÈÃ?º°Äè}¹ÁfÖ¬Y[¶liè¯v6lØ0³÷kµúC‡n|õÕñ«Wsù|®N§//¯nÕ–ètú²²–ÎbŒYLí½8šõÍ›ùiiùׯçž9s¯¨¨’¢(¡¯Ñh ?úÒ4—WÄZC¡éÐ#¹¤øúzJüü<}}=}|<}|D>>ž>>ž¾¾"ò{\›´,Ðjµ©©©fÿ$•s¹ÓžÇã ¼úz-MÓ<'2Ò?&ÆO"áúøtxòɘÖo2ØUZZšMÖ“˜˜XUeæH ùd†ùèhÿ'ŸŒyôÑö½zuˆŠò³É“¸6Ó÷e„}à¬d2ÅÖ­)?þxN¡¨!÷ñ¥¥Šæ­Ð&³˜’Aë˜ÅZB$öêÕ¡W¯EÑ4ý¿ÿmüøãí3f¼sáBVzz‘V«x4Miµºü|9"x‡Âãq c)‰„Ŷ´!§NIL`»m ©…Èv+ÀÆÜÝùû÷ÏìÞ½+Û Æ¥§SÅårÝÜxõõ:½^ÏápBC½;wîÔ)4>>866H à‘ù;XVR¢¢(ŠËåüúz ‡ÃéÐ!àñÇ;>úhûGm˜Z<8Ÿ;w 7n<žœ|¢(­Öx¶òòÃÚjÓÈH?Ìb öÇápüü„ZmæêÕc)Šª«Ó¤¥å]¹’{ùrÖ¥KÙyy¨¢m]EEuzzÑÛod»!NË帹áÓsHO/öööHHíÒ%,>>8!!$..ØËË­ñG˜¨ªª¯­U ¼‡Šx≱»·7~é`KˆàÁiÐ4uàÀµM›N^½š#òMÃw¢¬¬êõ×Ë«åòšŠŠj¹¼Z¥ª3\ÀËËÍÛ[äëëåëëîóÐCáÌo*É òCK\¾€rwü=@~EQä—¡mÙµk¹z=Š(ЦlØ0 %LÁVx<îþý #„BT­g8µZ+—{ß¿ïùûïßr¹\rOà kTªºÀ@q||°§ŸŸ—§··ˆ‰×¥+@£Ð¡ܸ‘á‹ÁzЦ òðôì‰o²ZzmpþyS©ôª¯çPÅçsµZÚÂäï4M­_?É××ÓŽ vܽ[”Âv+Äe»=º[TTþ°aUgϾ·jÕóÇ?$ )ŠxÇty¹¼ÚîmäçË##ýØn@ƒìÁgff’œÔô†¹¹¹3fÌhÆÊ]çÕ«Wù|þž={˜û“““…Bá7È?«««—-[öðÃ{yyõêÕkÍš5Z­¶yÂ1 ‘HF•••eek š¦§NêååeÍÂÖàp8™™™–¸c-¯Ê†¢¢ü¦N}|ëÖiiÿùá‡Ù3fô‰‰ ¤(ŠËåÖ,C­Ä†½Y“Î,›0zFVúÃñãÇÓô??a1|HUUÕ’%KÚ·oïáá»bÅŠºº:æ 'Ÿ|òÚµk­±OZ¨µ;@#è‘lu…Æh-µFË÷!!vÛЪŸwZƒmÏú¶s ãlmçÊ,\‹Z£í¼²Žö²R#ŽÝ»w›í.®]»Ö¤n‡‡•ZrxØ<û²9 ÛbM'cx¤ƃְþâp8±±±†º)Š1b+¡C5Æ,;·Ä¼··÷[o½ÕÔGýúë¯Ï>û¬Ù?Ý¿ßßß¿+'ëìÞ½ûòåË,XPYYIQ”B¡˜7oÞŠ+zè!Š¢T*UÏž=ÏŸ?¿víÚ+W®¼ýöÛ?üðÃСCu:]ó6äÌ™3EEE………§NÒëõS§Nmô!†XXX¸sçÎÛ·o7õy›¡Ù;ÖþD"á A>üðÙS§Þ¾vmåÿû“ÇŒéîç÷ øŒ\^ÃnóÀUÙ¼7³'£Æ³Ò&%%ýôÓOfÿ4þü+W®üòË/¹¹¹Û¶mKNN^ºt)óWÒ‘¥¥¥ÅÆÆNœ8Ñè  Bd“+4C6ÜÀ&qð‹.Ç'—W³^Ð)ÎÇÖ»ÔwíS؉>"9çʺ5|R ïeµ¼Ì˜1cHÿpæÌŠ¢˜î¢K—.TÝÈ¥K—z÷îíééÙ»wïK—.‘õàð°RK{f_6gM'C5%´æÐR(Ó¦M õõõ2eJyy9¹?;;ûúõëÌbr¹üôéÓ-ÝÂær¨Æ°6gèС³fÍ2û§–ÈÈÈ ÏÈܰàé§Ÿ®©©±¼žFïlhõõõ]»v={6MÓsçÎíÑ£‡Z­&Ë,Y²¤oß¾Z­–yTUUUttô¦M›š±!Eedd0ÿÌÏϧ(J¡PX~ á_­Ù®&1j’á=ÍÞ±Vn+V“wïmÝzêÊ•œÖh8#‡íÍl~j7+ýáœ9s|}}‹ŠŠŒKÓ´··÷¹s瘅O:É<аc‘ÉdEÉd²æo¼Iãm¢õ:ÀÍ›7K$’ÖX3Øz¤†°~…æìZisÈÈC‡Ù|Ͷùæ/¿\j꣮_¿~÷î]›7ÆVŸwZCëé®} ;ËÕBaaaJJJ WâàçE«æ ]‹Zy´Ò+«ÑhNœ8Q^^Þ’•ØäØ0å8/«…ˆÃ ;d:.<<|Ñ¢E .ŒˆˆÐét´£´-ÎY›c¦šqx°~9Ú( -´¦“i(´æ¹ÌBÇ0`ÀÝ»w333‡ Æüâ|øðáË—/gÛ±cLj#X¹ôu¨Æ˜Õª-1í{›? ~ÿþýaaar¹œ¢¨]»vÅÅÅUWWëõú/¿ü²S§NíÚµ{üñÇOœ8AFõ[øáÉÁƒ»wï.‰BBBÖ®]Kî,++óôôôðð0|,sû±Ç£(*88˜jà— HLLtwwïСÃ÷ßo´NŠ¢„BáŽ;¾ùæ›5kÖlß¾}ÇŽ€,öÃ?|ðÁ<Y›§§ç²eËvîÜÙŒ 1BVK~qiá†hx›¢¨ÊÊÊ—^zÉßß?<<|É’%uuu¤UÇŽ‹ŒŒLMMåp8ß|óM§NÖ®]ûý÷ß·oß^"‘¼ÿþû µœÑ¼käðáÃ111>>>kÖ¬aÖ“œœ¸`Á‚úúz³w6Ú>>¿ýö›Ù•u¹Fmc·×€‰•+4ËûßÂ&0½õ}‘é†íoè%عsg§N|}}?úè#³-o³ýMÓN à5¾hÓÙç|¤Ì½Ý˜}j­V»bÅŠÈÈÈ€€€éÓ§“ïHÌ>ÜìkÝÐ¥¾õGÃ~Ȳü’±¾ßŒ8ûÙêª9@C×¢¦Oê’×Ný²ÚPiii~~þÒ¥Kcbb–-[–——WVVFáð°Ëáaagš}`£¨¦üã?¾~ýzŠ¢***¸\î’%K(ŠÒéţ¿F7²fš¦—,YÒ­[7rxXÙÉ1Œ-§‚„Ñ!¤Ñh>¼råÊøøøŽ;®\¹òСCdÉñãÇÿüóÏÌ'¤qãÆ1ë1{ÉÚèδ¼gyä‘—_~™,YUU%‰®^½jMczeMßIM—¤izÓ¦M;w‹Åƒ :xð 9öú#¼Ù¨ÞÊQZÓ§OñÅ‹‹‹ƒ‚‚Ο?OÓô×_¸wïÞÂÂÂß~û-<<œ¢(Ó¯¿˜J¥R(Μ93??ÿ‡~ (ª¤¤„¦éo¾ùæûï¿§ÿýÍÙ¯ÑLשׁªrssÛ´iSQQѶmÛø|~UU•á:o¿ý6EQ«V­bî!}Jii©Ñ–ž={Ö××·BQÔµk×T*•R©ÌÌÌ|þùç{öìÙè-Œ‚Ÿ2eÊSO=uïÞ½´´´®]»~øá‡d#F?~¼ªªŠ¢¨I“&)•Ê­[·R5aÂ¥Rùõ×_SUVVF[= Þúk´ªQ£F)•Ê_~ù…<#yøÐ¡C¥Ré¹sçbbb˜6Ýiù`k¥‘ƒàò§7ûôÓO WJhzRÓ4Ýè‰Ì°Ð‡˜=ïÈ£Øê322¤R©‡‡ÇöíÛé÷9þùgXX˜››Û!CÖ­[—Í<#Ó‘ªTª‚‚‚yóæ‘ZÄÿþ÷¿±cÇæææ¦¥¥=òÈ#o¿ývCUCý'MÓ»wŒÔëõ4M'''‡††j4³+7êr ÷Lëu€ï2Ð#9TÄt,Œ†ö¿…M`z+û"³wî†^‚qãÆÉåò-[¶Pe:T­•úgߡòݻÏ7õQVŽ´ÃùH›{»1ûÔëÖ­ëÒ¥KZZÚ7z÷î½dÉ’†Þèy׌£Î1?dYs ³»ßŒ6¹õ®ì9 ÞõrºákQÓ'µçu =GÁ;ïËj!â`˜oÔh4½^ߥK—÷Þ{¯¸¸ø½÷ÞëÔ©ù€à˜‡mÇQð¬dg5ôF`ùÕ´“_¹råÓO?MÓtrr²X,~ä‘Ghš¾té’»»{uu5ÝXàF&$ÓëõLþNZke'C56š Òæ!­V›‘‘A>´Ò4½víÚ‡~˜,y÷îÝààà«W¯Ò4]YY)‰ÈWä¤0{ÉÑèδ¼g~ÿýw???Ò˜~ø¡K—.äıÜ oñFï¤f—ܲeKXXØ¡C‡JKK9Cö˜ƒ|„§Íõ½-Šàåryxxxbb"óÜ]ºtÙ±c³À·ß~kù$¬¯¯¿sçNUU•N§;uêsLŒ;¶¢¢‚nV]QQ!>þøc¹\®×ëU*ùé³NB¯×3†ÇãM:Õp‹(“Ï“4MŸ9sÆßß¿Býû÷7 »Í>°¡ë<µZÍãñnÞ¼Iþ¹wïÞ˜˜²@ZZÚƒW”¢®\¹B6ºÍ4©y|C;ÖhU'Ož¤iZ§Ón Ó¼Ÿ~úÉ´ÍäNÚ"DðÐ<ŽÓ›ÅÅÅ™®Ðì£c IDATIM[q"3,ô!fÏ;r[ý!¹ñÙgŸ‰ÅâÜÜ\£ ­V{îܹ•+WvíÚ•Çãíܹ“ÜOý›——×íÛ·™G%$$0•mŽ9Ò­[7³•…þ“¦éêêjOOÏ .Ð4ý /¼óÎ; ­Ühßj½¼Ë@D;Rdª¡ýo͹le_döN¦µ^‚'N4´ÛéVëœ%‚ïÑãÃM›N4õQVÆv8isÇÙ§Žß»w/¹}ûömæv£ïV¦ç]3Ž:‡ýÕè)Ìî~3ÚäÖ»Z°gïz9aöZÔôIíyhÏÞy_VÓsÍô£Ï´¹näÀ4M_¸p¹‡|: ðð íÁ³rx]aáÀòªi'éÒ%///µZ½xñâåË— ¹\¾nݺ‘#GÒVnäö²eË(ŠJOOg¶ÝÊNÆð`3ŒMis‡ó'…BñÖ[oEEE‘=@þúÚk¯‘´?üðÃ!Chƒ“Âì%‡åÙèžÑjµÁÁÁÇŽ£izäÈ‘k×®ešm¡1^Y£wR³KvíÚ•I hšþñÇÉsð´m ÑPåíí={öì[·n½úê«äžû÷ïwëÖY 11Ñò„B¡T*>|x=vìØAªÒh4>>>F Ó \lñññ9qâĹsçÂÃÃû÷’ÂårM×¹sçΓ'O?~<)))99™Ù¢àà`òÕ–¡k×®%$$4uCæÜP«Õ'Ož$ßÌXó@S2™L§ÓuìØ‘ü3&&†T¢(ʰyíÚµ£(ŠüÚÅð6ÃpOZ¹W©v¬ébd$ÑŸbcc™v2m6{'+ìЛååå™®ÐÂImùDfæR·Ð‡4tбØ¯¿þz÷îÝIIî©®®Þ½{7EQ½{÷~ÿý÷ÓÒÒ–/_N.n¦#­®®ž3gÎÌ™3™?egg‡„„½1dȬ¬,³•…]MQ”H$3fLRRRuuõf̘ÑÐÊ™]jvÛÑ‚M G²óšáU8enÿ[ØæÙ­ì‹,_MYx H÷ÒÐo™©¶Ýÿøùy•–ªZiåöù¼cöíÆô©srr˜—¯S§NÏ=÷œ…‡SÖ½ÖÖuû!«ÑS˜ÝýfÊÎV×˽5äª×Ný²6/â0êFFEÓôäÉ“—/_^XXøöÛoOž<™|Ááaçà ;ÓÂå TÓN¾{÷îžžž/^<}úô3Ï<Ó½{÷Ó§OŸ8qâé§Ÿ¦¬Ü.^¼8`À€ÿþ÷¿ m‚ÙN†0Z™ š=„víÚÕ¹sç²²²‹/vïÞ¹üøñ{öì¡iÚ¨ð‹ÙÝÒèÎltÏðx¼çŸ~ïÞ½eeeG2eŠá36Ô nôNjvÉ{÷îuíÚ•yHçÎ-o #œ›-Šàóòò¾üòËÁƒ¿ùæ›äž°°0ùnoݺey µµµ&LXºté•+W6nÜHîØ¤=cÊôúôÓOW¬XqàÀ­[·þ©OŸ>*•*55õÈ‘#Ï>û¬åÝb¹y”u{füøñûöíûùçŸûôéCª5Ú nzbºdTT”áQwçÎËèçfó#x½^?sæÌùóçïÚµëèÑ£ (jæÌ™K—.MNN...>tè©dA}}½Z­ …µµµ+V¬ (J¥R%''3†,àííMQÔwß}§T*?ÿüsÃÇ’ºç¦8ÎСCùå¥R©V«H$2\'MÓsæÌILL$Ó¼ùæ›AAAóçÏ'ýàƒŠ‹‹‡ òçŸJ¥Ò:Lž<¹®®nÖ¬YMÝFö`c4Ý@@0qâÄ deeݼyó½÷Þ3úrÉ/½ôÒüùó<˜••uìØ±©S§NŸ>ÝÍÍY I;–¢¨­[·* ËOúÆodff^¼xqùòåS§Nµp'€ýÙ§7›;w®á ?øàÊ'µ…>¤¡SÌúÃöíÛüñÇŸ|ò ù§——×ôéÓ'NœøÛo¿Ý¿ÿÌ™3K–,iè3¹X,V©TLOõüóÏ¿óÎ;999iiiÇß°aƒÙΪÑ]=tèP¹\¾bÅ Ã!ö¦+7j :@°9ôHvë‘JKK‹ÿj`ÿ[ÞÂʾ¨¡«)¢I/úF\\Pzz«Dðö9)sÇÙ§ž6mÚ»ï¾{óæÍ›7o¾þúëÌ¼å ½[™}­.õ­?êíC–õ§0»ûr¹³Õ%s€F¯EÍ>©+½²Îû²RVDÖ ˆŒŒüè£233ÿ÷¿ÿEEEàð°Û»¡õ´¦Ùf;ù‘#Gnܸ±wïÞà©§žÚ±cGTTTTTeuÇîééÿöÛoÏ;·®®Îú÷Áfl`CçEQ …âý÷ß_¹r¥‡‡ÇÝ¿1åñxcÇŽ3gN¯^½Ý-–Y³gúöí«ÕjW®\9mÚ4£?5Ôë_Y³K¾öÚkË–-;|øpyyùñãÇ?üðC¦;ôGxÚkj•~ñÅ?ü°Z­¦izß¾}!!!jµzåÊ•íÛ·÷òòzüñÇI- Õ hšþôÓO}}}#""6nÜ8iÒ$R†‰±jÕ*ooïŽ;’_pÐ4­ÑhúôéãååÕÐ:úé§Ž; …„„„äädµZm¸Î;v¸¹¹Vnºpá—ËMJJ"ÿ¬ªªzóÍ7»víêîîÞ±cÇwß}·ÿþ'NlÒ†Òæj–hv‰ŠŠŠiÓ¦ùùù…„„,Z´¨¶¶Ö´DóŒfok4š>ú(>>žL)þî»ï’y'š±c­yFòð­[·FEEùûûÏŸ?Ÿi³Ñ¦{ÉjÁCó8No¦Õj×­[ãééùøã“/cis'5mʼnlÈ´±pÞ9N¨×ë‡ ÂÛ '‹çÌ™cÍ`+8Å:@Ê%ŽygÜ„¶ÖÿL˜ðèœ9ßæåUDDø²Ý‡à¯u«be¿µµ³µíÀ+ àðWrþüùçž{îÕW_0`€ÝžtÙ²e555Ï>ûliii‡fΜi“Ó§UÏMm®”Þ°aÃ"##·lÙÒò'° “Ð<8rÀlÙ²eéÒ¥¤"85ôHà\ …··÷¡C‡† Æv[¡VkyäÃ_|réÒV>$--ÍÍÍ->>¾U`7EEE÷îÝëÓ§OKV‚óÂÑhµÚÔÔÔÄÄD_ßæ¿h“cSËÏY›c`Ê´ïE!pbB!úô'·mKQ*kÙn €1DðàÜæÎÈår¾þú$Û 0†œ›XìþúëOmÚt2+«”í¶ü "x0¯°°ª´TÅv+¬2{ö€øøàùówêtz¶Ûð>Û GÄãµ[±â¯wßM¥(ª];÷  IHˆ$*Ê/(H$ ‰££ýÅb¶[JQÅçs?úhÂÓO¯ß¸ñøüùƒÙnÀ FðwïÞݼy³=›b^ ÀÀ§”ŸŸÉv+À)¹doÖT …F"°Ý h¦ÔÔT¶›6c¹GR©´jµÞÏOhÛ'U©´<>ŸcÛÕ¶„^Os¹Ô‡RS£««Óùø8–wQmm-×N,vS©4N¥ªS©ê²³Ë.]ÊÖëõjµŽ¦iŠ¢8ÊÇGêâæ$ õ ‘žžnöls×®ao½5r͚ߺv 80ÁòÂ555………öi@kS(6YÎ ‡¢×Ûæ7=z½/«Kª¯¯ws³ÁûlEEE]]]Ë× Ó÷å#øÔÔTWúÌïæíéù0ç]ZúEÑv{^‘¨‹^__W—i·gtaO<ñÛM§äb½YqÜÝ;xzöJJ¶êõõ6¡0D(Œ¨ªº`ó5ƒ!‰DÂvÀ6 {$GÀçû ~|~€@àÇçûs¹îõõ¹{[ø,\®§P$ AA —ëYQ‘\_ŸÕâæÛ‡Ã÷ôüÿìÝw\÷ÿðËf&ì0ÃÞÊ&¸ÀQpTmmÝZ­­¶uT;ÔºGÝÚílµ®jµÖ½úUNdÈ  ìq¿?Φü%p!¼Ÿ>úÀŒ»wà.¹¼îsïO˜¹y„PxJ­®ÓË2‰Ds*ÕY./FŽF¶¶cU*acã}Uꥶ7`nF§Òj*•@÷ŸFƒ[+˜~4lØ0…BÍç‹‘@ .+òùâêj1‡SËç7…’º:i]47—G¥’ Š¢ … èÉd¢••™““µ£#ɤ»»Û:8Ð,–­³³…BÒ{Ásæ Îή˜;÷ÈìÙƒBBÜBB\mm-Z}¤H$ÒWj €! “õp;ìFI«Õà]èt:½ã ©¨¨èøB-´ø\&`ÇÆª©IqòdÊwKJj ðýä“C†v娫ɓuq±þþû‰]¶F@D*U;öpß¾ÛõññAóæ a³½:cE?ýtíÌ™´ääe±pŒ‰F£åpjóòxyyUùùUyy¼²²:Ei4²¿¿S` S@€SPs@€“½½åë.¼ºº1+«<3³<+«<+«B ‘ÉD__ÇÐP7,‚ v¡Ñðo?xåJö¦M—JKk'MŠY¼xļÒV¥¤”Œ³##cƒC‡¨Ñh÷î½ýÓOWmm-¾ývÌС½ôRÞDYYØ_3%…#I-,hÎØ_3$ÄÍωûyVÓùÒÒZ>_T[Û„}×  4™D"ˆL¦R«5Øs--MœX4¯Çæ6R©rÍšs÷î––Ö"booéëËôñqðñyþ+Ãù£g´|^oÏž›.d˜˜P¦Më÷Á}ÝÝm»¾ ˆà]ŒÏíÚuãï¿S”JõøñÑ}èÔy«[µêlvvŹsó;otGZ-ZX(((àð³²* ø••õjµ Üýü˜!!nþþŽ~~L&óµ/q@Q´ @€å³YYåÏžU‰ÅrJïÞ®ºˆÖÛÛL6 æ{wïlØpééÓŠ)Sú|ñE‚‹‹µžŸ_5dȶ۷—úú2;¾´†é?\=tè.›í¹aÃûÎ_fq¹Â””ìÏ]!—«èt'ÝŸÛßßï[×j:Ïå ùü†ššæé<…B!‰¥R-“)±o'T*ÙÑ‘Îd2°!óX4Åônn6íRS[Û”‘QVTT]RRÍáÔ×ðù"ALM©ÞÞöžžö,–­»»­‡‡-‹eëìlmP{ 0FÁ?|X¼{÷7òè3f øàƒ¾66æx< Ë vì¸~þü33Ú¬Y±Ó¦õïà€Ðö˜;÷ˆ\®:pàãÎ^N.W={ÆÇ¹çåUååñ„Â&A¬¬Ì°±íNÎþþŽoл;fî:OŸV®_!9¹ !!xÙ²‘ú?)Èç‹""Ö^¼øEd¤‡¾–™]±bÅ™Œ î¤I1K—ŽÄñ`²µZ[\\­Û23Ë•J5“I×m aa,}]^Щ”JuUU«é¼¨¦¦û†B"ML(d2‰D"¨TZ‰D®ÕbÍmH66掎χ̿Vs‰DQRRƒÅñ\n-—+,- "A(’‹‹5Ê»»Ûê~0Éf@÷e<¼V‹^¹’½{÷ôtn¿~>}4`èÐ^Ñ_òµ@è©©œ;“’’r³gž4)ÆÂ¢‹¦¿›4éW77›ï¾›Ð5«ÀpH¥ÊœœÊììç“ jµ–B!ùù96ï*ãèø†}üÅbyVVYFFyFFYffyee=‰DôövÀbÖÐP·à`33=Oܪ_\®pÓ¦K—.eöêå²råèØX¿NZ‘TªôñYräȧo½¨ÇÅ¢(zêÔã .ªTš¯¿öÑGH$ƒ;É¡RiJJj°D>5•““S©Ñh›'òQQÖÖ†rþ ÚHçkk±žDÂÆÎ“I$‚B¡–Ë• Š …Bvt¤;9Y9;[9:Ò­œŽŽ k{{Ë—ýÕjmee}Y™Ër¹B짦±QŽ •Jvrb´ˆæ½½ºx¦YÐ}C/˹wøð=@üî»ásæ éÔ® ¯"x@çÑh´gΤíߟœ•Uè4{öà1c"ºøÔcBÂ÷C†.[6²+W .$ÅÓ§Ï3÷¬¬ŠââjFkaAëÕ˵wo××^½\;2]¡P?}Z™‘ÁÍÌ,ÏÈ(+.®AÄÓÓ.,Œ…µtïÕË¥»D~µµMÛ¶ýsâDŠ‹‹õ²e#G íì¾Ûîî‹~úiòûïGê}Éb±lÇŽ¤½{o8mÚ4Ví;ƒD¢ÈÉ©Ôõ‘/*hµ¨.‘g³½"#= üÌMÛ^–Î ¢š]:O41¡P©d‰¨Ri¤R¹J¥E„H$ÚÛ[ºº>å±tÞɉáìlÍdÒ[ýô‰¤ÍCyì‡òò:lE †Y‹ñò,–-‹e]æ@ øOÌÕb±ìС{܉d&°gÏäéiwQÐéärÕÑ£Hær…ññAçÎÍï¤ÙV_I(l2œþ èWMMcFF™®ã‡@ FÄÁÁ24”5zt(–i¾A'w¹\¥[xj*‡Ë__fHˆëôéýÙlÏÀ@gܯç{]r¹jÿþ;;wÞ Pˆ7Ž8‘Ý5/Á0‰d±d:ÝtÅŠQ“&±W­:ûÎ;ÛÇŽ\µêƒíôbnNc³½tŸò¼<¶]¼˜ùã׈D‚îZ ìÿ&&|k~-T* »_¼K©T××K,‘ÿ›Ñ‹ª«ÅXh®Õjkk¥REYY…BÔhP¥RÕÐ ÅÆ#ÑhdGG†®¡®Å “IïÝÛµyª^_/)-–• KKkKKkËÊ„—òù"l`“¹»»­››››­›› ‹eãæfãæfC¥vï¯] #ºë(øúzɾ}w¸C gÌèÿñDZ†ù]FÁô«¾^rà@ò¡C÷D"é˜1Ÿ}6(8ØÇz<<ÿýÄqã¢p¬}©®nÌÌl™¹7ïéÑÁÌ]£ÑæäT¦¤p°U””T«ÕZË–ÍöÄèlii¢¿Ô¥4íñã~úéZc£ì‹/fÌЕcöcc7ùå—C;u-‰‰9+Vœ‹åóç¿õ駃ºÝ ±X–Ÿ_•šÊIIádf–UW7’ÉD/¯ÿù°0–Q&ůLç!‘ˆffT*‘HÐjµjµF$’awahZ¤ó-&†U(ÔX(¯)_^^WQQ'Ë!t,Žg±lÝܬ±€þ•ë€qè~<Ÿ/úñÇ«ÿjmm>oÞ)Súòå´Áô¥¤¤æ×_ož9“F&§Më?}z?77|Kjl”ûû/ûóÏÏÀ·ÞŒD¢ÈÈ(ÏÌ,Ã2w.Wˆ¢¨••6Í)Ö^ÆÃÃî—ßbÕÜ\žD¢°±1ŒôÐK¦o8.^Ìøþû+NͤI1_=ì;࿱Q£~f³=W¯~·³W$“)wï¾±sg’««Í† ïèßÙkì<Hײ&=+6Q($OO{6Û3:Ú3$ÄÍ×—‰åËFL¥ÒÔÕ5µÎ#bbBµ´4y1§PH66æL&ãß)aéÿfô k2™ˆuÎÑõ±ÑµÐ)+«Ã¾…5ïf£zïãÃ4ä/8àuu§žÇkøùçk'N¤ØÙY~õÕÐ ¢ œDð€ŽKKãnßž˜””ëà@Ÿ;wÈĉl'›Ÿ_5dȶ[·–øù9â] í‚¢hIIMZ7=½ôñãÒgÏøÖÆÆËÜCB\{÷ve±ZéqÑ~‰"+«"=½ôÉ“²ŒŒ2¯L&úû;……±ÂÃYaa,??Ç7îo€RRJÖ¯¿˜–V:ztØâÅ#||p)cÆŒýææÔ]»¦uÍêJKk׬9—˜˜“¼qãXWWë®Yo§jžÈ§¦r¤ææ´  gÝU ~~ÌÕåüµÒy2™ˆ¢¨B¡Ò¥óÈ¿ñº.X×£wv¶BQ´y4¯[r«Ñ¼î,ÖÇí7ÞT÷ˆàÅbùÏ?_=|ø¾¥%möì!Ó§÷ë.C ‚¼1E¯_Ïݹ3)5•ãçç8oÞ®ŸmµmׯçNŸ¾¯°pKw™"ôLµµMaí_rr*¥R%ƒaÆf{þ;Ýɤwdù¶°Pðä 7=½,=[PÀ×h´váá¬ðp÷°0·^½\»W»ívâpjÖ®=Ÿ˜˜Ó§÷Š£##Ýq,fùòSùùü3g>ïÊ•&'¬Xqº²²aîÜÁŸO£úÐ×"ˆRR8ØŽóôi¥L¦´´4 pÒ%òþþ=÷äké|EE½F£ÅfjJµ°xi:߼ݼn½½½ec£üu£yWWk ¢yÃeè¼L¦>ÈÇ>|oÛ¶ÿåälÀ»Z*+¦¤pRRJRS9……­õò²wˆ`……¹÷êåÒ‘³Yºö2XOm§F¥Ò¸¹ÙÄÄxaédp°‹qŸ—ª®nüþûÿ8‘âãã°ví˜ØX?¼+B¶o¿~üøÃVvñzU*ÍáÃ÷¶nýÇÞÞòÛoÇ$$wq]C­ÖWëZ*ee•+j:Ý44Ô ›É ,Œe˜Ó2u½v¦ó&&ss‘HÐh´J¥º©IÝN¡ìí-]\¬œŽŽ k''+''†©)E*Uòx X—yÝ …A Zó `Y,[77WWk:Ý·_hÆpGëÈåªýûïìÞ}“L&._>jâD¶Aý€Î IÿýΑ#÷ëê$cÆDüüó”Þ½]ñ.ê¥*+ë]\¬ð®A­Íϯzô¨8%…óèQ Ÿ/23£FDxŒîáneeÖ‘å××K?.ÍÊ*Çæ±‹å¦¦Ô¨(Ñ£C©¥û+56Ê·o¿~ð`²¥¥ÉÆc'MŠ1¶NN >_„¢hŸ­¤PH³fźiÓ¥?ü=6ÖoÆ÷}}™]YC “‰þþŽþþŽãÇG#¢RiJJj°Dþ΂íÛ¯«TšæGFzØØ˜ t| IDATã]5>(“É`2!!n-îj#—ÉTX:¯Riêê¤J¥†Ë­Õh´ Åé<™Ltp c¡¼ŸŸãàÁNN ;;K2™ØÔ¤(/¯ÃFͧ¦rJKkÅbVŒ³³•®==4´À‹!Ž‚W*Õüq÷î‰bÁ‚ø3tß¡d0 ÐN<^Þ=7Oœx¤Ñ S¦ô™5+ÎݽC ©»ÀܹGd2åÁƒ3ñ.ôP …:#£ìÑ£’ÔÔ’ÔTŽX,·³³ˆŽöŒ‰ñŽŽöìÝÛµ#“R©ÎÈx>Mkj*‡Ë‰¦n¦Joo‡•a©Tš½{oíÙsS­ÖÌŸÿñDZ¦¦ÔðîÝ vgg¯·µµÀ«†û÷‹V®}Z¡ë#_T$ÐjÑæ‰<›íÉ`tè˜Ñ{³Î6b±\wW‹Î6¦¦T¬P¨e2euucyy]EÅ£æĮ́®®6nnÖnn6®®6®®Ö..6®®ÖìÊ^Æà"ø¤¤¼õë/W½hÑpgçî=¾"xÀ+åçWíÞ}ãüù'66æ³fÅMžÜ§» |çí¡¡në׿‡w! ‘É”ii¥–Ü»WøäI™R©öð°c³=cb¼¢£½:8hmmÓ“'Ü'OÊÒÓ¹\±XniiÊŠˆ`ED¸‡‡»÷ÌV(Š^º”¹uë?õŸ|2pîÜÁÖÖ÷U\\»ùÚµE½z¹àX†Z­=tèî÷ßÿÏÔ”¶|ùÈq㢠°‡XgkjRäæVêùÂB‘Hðövøwö×·îÕX_úMçíì,h4*…B”ÉTòªª.W(ˆ±îÁÍ{ÍcOôñav—‰¸ “E𥥵ß~{þêÕ§#Fô^ºt¤q\à <  ‰‰9Øl«>>óçÇ¿ûn8•j¸ýÁ^ùí'Ÿ œ={Þ…#'•*?æeJŸ/¾Hpq±Æ»¢ÖI¥JŸ%‡Ï2„nìX¯ücÇÆÄxmØ060Ð ïŠð$ËóóyX"Ÿ’Â)+’ÉD/¯ÿù°0V÷úì3ºtûO¦—• ++ëÕêטÖÕÕÚÜœF ¤±Q!Ikj[ÖÁîèHÇzOO{KKÜ^?@÷aÇ»BaÓÖ­ÿüõ×£ðp÷ÿýïëÐЖÀ˜¨ÕÚ³gÓöSåyøð¬·Þ êv1ŸJ¥©®C/xÐId2å£G%Xìž™Y¦RiX,Û~ý|¦MëÛ¿¿¯£ã›7^ ›ÒÒJÓÒ¸s23Ë¥R¥yd¤ÇäÉ1QQž¡¡n0Ø“—Ç[»ö|rrÁ€¾—/eà‡gffTÃŒÇkÀ»AËmÛ&LÚwÅŠÓÆ}?iR̲e# ðÒ®A§›°Ù^l¶öO@¤ ¿}{bmm…Bòô´×µ¬ v!‘zP‹§ŽÐõoõ^‘Hª8ßýûûºº¾áÆ&—«RS9))%Xð'ˆ©Trh¨›í5{öàž3“jûUTÔ¯_áòåÌ  ç'æÄÆúá]Q»8;3ø|ÞUü'4ÔíÂ…/NŸ~¼nÝ…Ë—³¾újèÇÇv»³­zÇd2º‹š'ò?ýt­¾^bnN rÖµ¬+QÞƒaÒz þ—¥óMMŠæé|mmcCƒ´¸¸úÅt¾W/ÃÔÄ„B¥’ µB¡zöŒçÎ³ŠŠzìa4ÙÑ‘%òÿ¿­ ¼ß '³Íõë¹ß~{¾²²~Þ¼!sç1¨I½ôÑ0hçÎ'O¦(•š©SûΜëáa‡wQ’””7}ú¾üüMp:è ÚÚ¦;wžÝ¾ýìöíüêêF&“ç?hP@¿~ÞoÖ<{ÆÇ¦QMIá””T«ÕZ{{Ë>}¼££=ÙlÏÀ@g …¤ßWaÄbÙŽI$;8X._>jäÈÐn”~N›¶×ÊÊ|ÇŽ©xÒ’H$ýþû«‡Ý vÙ¸ñýÈH¼+2\X"Ÿ’ÂII)yú´R&SZZš8éyG¼k4r/Kç›w¶¡Ñ(&&‰ Õ¢r¹J.Wý{;™ÉdXY™š››ÉDµZ+—«D"iM¸±Q=ÆÞÞÒÕÕ›ößl\]­áXÆ Ÿ¾¦¦qõê³çÏ?IH^»ö]OOû®¯¡k@(,ìØqýÂ… 33êÌ™±~8ÀÎÎï¢ô`÷îû÷'§¥­Á»Ð-©TšGJîÜyvëV~NJ%ÅÄxè?h@€Ó\÷âPw …ÆÂZ[°Ùž0ô²m …ú÷ßoïÚuƒL&~óÍÛ'²»ÝYŠ5kÎ=~̹|ù+¼ i]NNåŠgRS9cÇF®^ý®q|t*F[TT ÏÊ*ÏÊ*W(Ôtº©¿¿#›íÅf{††²zâ ÉxéH:ojJup Óé&T*AP¥RÓØ¨ ›eØ 3+WW7·æé¼µ­-ì)0]Á£(zòäãµkÏ™™Q·lÔ•kïzÁГ¥¦rvîLJJÊuv¶úôÓA“'ǘ›Óð.Jo¾øâXMMã±cŸá]èNêë%IIyׯçܺ•/Ëýýô80 O¯7¸®®N’–Vš–Vúøqiff¹D¢03£†…±¢£=#"Ü£¢{ãF^BBðÆcßx¶a€ijRäæVêfv-, (êîn퉅ò½{»å¼SÝZ«é<—+¬ªú/§R)4 E¥R¥T>¿‘B!YY™1f4Y­ÖH$Êúz‰Dò¼Ý<ƒa†”×Ǧe±lޠˀ^»`¹¹¼… ÿÊÍå-X?~<•Ú+€®T_/9p ùðá{òñã£÷ïÿ80Ð ï¢:QY™P&SúùÁ´x %…B}ëVþ?ÿd]»–#Ißy'lèÐ^aa¬ö_ R_/¹{·0%…“šÊÉÍ­T«µvv}ûúÌ›÷›íäCÝ;‚ËnÚtéÒ¥L6Û³»ÖíáâbmjJ-*ªî¯ÈËËþèÑOsV®<3pà–¹sþy<ÉoÈ‚Æf{éN{‹Åòü|–È=ú  €O&½¼°ò!!®¡¡,ømãŽÁ0 iýJ…—¤óµ<žH­Ö¨TšššF‘HF&“´Z­R©ÆΓHDssª¹9M«E««y¼†+W²ëêš´ZAìèÈhÖ͆ô®®Ö$|¦ suî¡'Š¢¿ýv{óæKaa¬k×ùûCX06NÍž=7ÏœI£PȳfÅN›Ö¿'Ì÷ìŸ@ øùuûa³@_$ERRÞ?ÿd&%åÉdÊÈH¯¾:bDo77›v.áÙ3>6Ÿjj*‡Ë„Þ½]££=gÎŒe³½ÜÝm;µþ¢¶¶iÛ¶NœHñövøë¯Ù±±~xW¤OD"! À17—‡w!¯!!!86Öo×®¤;“NŸNûöÛ1 Áxe èt“扼@ Æ&tÍʪرãzMM#…Bòô´×%òááîÝnþaãöZé<Ÿ/âñD••õ …J,–‹År …L"T*Fó¼=™L45¥¢(Âç‹ÊÊ„MMІ)v/…Brv¶rp ëz,šwv¶‚­úÒ‰hÊÊ„óæÉÍ­Ú²eÜøñÑ´h0bééÜ_~ILJÊutdÌž=xÒ¤ ‹n9‡áؾýúÑ£÷SRVã]À™@ ¾x1ãâÅŒôt.‰D8ÐԨСCƒŒW·`ÖjѧO+°¡îX‡Ìf{±Ùžl¶WXËÒúùê\®Úµ+é×_oYXÐ.>iRŒQ^I°pá‰ŠŠº'æà]Èkãñ¶l¹|êÔãØX¿Çúø8à]‘1Dº–5ii¥uu33jp°‹®¼¯/Óøfp1zJ¥ºªJÄç‹*+ëù|×PYYÏã5ðxõB¡{ ‘H “IA¥z>pA ƒaJ£‘µZD©T74H•ÊVf‚Õ5·ñòrè9Ç{ЗΊàÏK_ºô¤««Íž=Ó »èƒモèõë¹;w&¥¦rœæÌŠ533ÚŽØûöÝÞ¹3)3sÞ…¼¡»w V®<ËáÔLŸÞÉ’·!æëºD>%…“–V*•*-,hκDÞÏ =Ä»5•JSUÕPUõ<¯ª•• ËËëQCƒ û:L D"Q«Eÿý'ÁÔ”biibjJ#‘2™ª¾^"“)±bѼ.”ÿw&X;:ÝÏ× ¦ÿ^"Q,[vêôé´?Ž]¹rto³<ÆD¡PŸ<™zð`r~>߸g[}¥„„ïãâüV­zïB@—BQôñãÒ“'S/\Èhj’à7n\ÔС½èô¶†«+êôtîƒE–¤§—J¥J&“íÉf{EEyôêåj”ñ Äŋ߅Ë~òÉÀ¹s[[¿âIww÷nÁ„ {²²ÖÛÙYà]ËR©4‡ßÛ¶í “eËFŽáoWÒh´EEÕØù¬¬òìì ¹\E§›øû;…„¸a×èÀÐFF$’òùâêj1—+är…\nmyy=W_W'Ñõ±!þûÖL£‘Į́¦¦T‰¨Vkär•.ÇoÞn¾ùL°nn6p]ÐÃé9‚/(àÏ™s¤²²þ»ï&Œ¦Ç%wSÁ`ÄbÙ¾}·¹_W'3&â³Ï»à]nd2¥¿ÿ²;?xçp¼k]$'§ò¯¿R.]ÊDÑÑžãÇGÚF·™LùøqéÇÅ?yÂU(Ô^^ö}úxÇÄxAc÷®‘’R²~ýÅôtîØ±‘ß|ó¶««5Þu…êêÆ°°Õÿ=gÀ€îÝæ^ mÜxéôé´¾}½×¯߸ç÷6djµ¶¸ø¿D>3³\©T3™tÝùðp÷î{¾¼Ró¾óNmiiMEE}UUC]D×ÇA‚"B$LL(4…J%D¥RÝÐðüaT*Ùɉ¡Käu=Ì ôúŒàÿù'ëË/ùú2÷îáâÒ#¾é½Dðtw<^Þ=7OœxD$¦Më?}z¿öO/i¬RS9ï¾»ýáÕ,©FN*Už;—þ÷ß©©©ó1c"Æ qkõÁuu’{÷ ““ RR8EE‰Æb³½ââüÂÃÝ¡¥F—ápjÖ®=Ÿ˜˜3`€ïòå£ÂÂXxWÔ¥¢¢¾ýðÃþóçÇã]ˆ<|X¼bÅ™ÂBþ‡X¼xDÛ—›€. RiJJj²²ÊSS9ØV‹6O䣢<ŒþZ€Ñ¥ó<^Cn.¯¼¼ŽÏ "‘HÖ,G! T*™F#“É$"‘ Ri庙`mḻP^7vÞÁÎbÙ˜šmÇ0 gÒO¯Ñh¿ûî;v$Mš³yóX*µG7Ÿi"xº¯üüªÝ»oœ?ÿÄÖÖbîÜ!'²arHÌo¿ÝÚµ+)+k=Þ…€NT\\}øð½¿ÿN•É”C‡öš0!zР€µóx ÷r’“ ¸\!•Jމy>ŸjD„»¹9Äî]ªººñûïÿwâDŠŸŸãêÕïÄÆvï‘àofÖ¬ƒ(Šîßÿ1Þ…è‡Z­ýë¯G[¶\FQ䫯†~üq,´³0‰"'§R7³ka¡EŸ'òl¶gt´gïÞ®¤ö@X:õ´)*ª..®Á¢ù¦&Eó¯ÞL&R($L" ‚X,S(Úš ÖÓÓŽE€nJ¼D¢˜;÷È­[ùë׿?}z?½”e4 ‚ ;JLÌÁf[õósœ7oHœmµmsæü!‘(þøã¼ ú'—«Nz|ô胬¬rÇ™3ãÞy'¬Åürååu·o?KI)IMåp¹BŒ u‡¼ GòíÛ¯<˜lgg¹bŨ‘#C{lP»sgÒÁƒwÓÒÖà]ˆ>54Høáê¡Cwƒƒ]6néŽwE ò¼<ž.‘/(à“HDool€|Hˆkh(«‡Ï’ÕéTšºº&@œ—Ç{öLÀáÔ–• kk%…L¦lþ¥œH$Òhd*•L¡µZD*•ËåÿEóºD^7vëoƒÏ«@ût4‚¯¨¨Ÿ6moS“â?>>•/‚€nD­Öž=›¶oßí§O+ccýfÍŠ‹‚yð^Ô¯ßÆ±c#.Žw!@ŸÊÊ„ûöÝ9y2U&SÞ{æÌØæ³ ?{ÆÇ†º§¤”bJt´g\œ_l¬_` 3œ£Â‘J¥Ù»÷Öž=7 Â’%oOœÈîálFÖ'O¾5¾93³²ÊW¬8ƒõ÷_½ú]hAnàÄbYffyJJIVVEFFYMM#™Lôòú/‘wïá{+ÐÁÒùââêôô²ââêÊÊ>_TW×ÔÔ¤P*Õº‡‰2™D¥b£æFÛÔ$Ǿͷ˜ ÖÁŽýf‚ D‡"ø¼¼ªéÓ÷™›ÓŽùš#· "xº©TyìØÃß¿SYYÿÞ{Ÿ|2°woW¼‹2PÕÕáákŽùdÈ@¼kúñì×®¤sçÒmm-&MŠ™:µ/6ugUUÃÅ?|X\TTM¥’ÃÂXýúùôéãåif£Ýq†¢è¥K™[·þÃã5Ìœ÷ùçCÚ˜ ·ç‰¤AA+š™Œw-ú‡¢è©Sׯ¿ Tj->cÆ2ærì‘n€|ZZi]„B!:GG{b¡¼¯/¢Rð"©T™]‘›[YXX]RRÍç‹ëê$b±L¥R7ÿO&Éd…BBQD¥RëÚÐé¦..Ö®®Ö,–-öƒ««µ‹‹µ½½%>¯è©Þ<‚OK+ýàƒ}þþއÏ„¯|/<N íÜyãäÉ•J;eJŸY³âÜÝaŠÑ¶œ?ÿdÁ‚?ss7B›o#ðäIÙŽׯ]{êëËüüó·Þy'\,–Ý»Wtï^áÝ»…N‰ %2Ò½OŸ¾}½#"ÜML(x— ž»¿hãÆ‹YY“'Ç|õÕP''+¼+2 o½µmà@ÿÕ«ßÅ»Î"˾ûîÊáÃw=<ì6lx?.ÎïŠÀkkžÈ§¤pD"©…-0ÐY7³«Ÿ®ÃmÐjÑÊʺŒŒòüü*§–Ë­¤2™²EÇy*•D"‰D¢F£•ËUؽ&&dWWkkk77,šwtdÀÅ@gxÃþòåÌyó޼k×4ønîöígOŸVèþyüø#:ÝtäÈÝ-}úø@O AQQõöí‰.dX[›Íš7iRŒ­-\ÔÿjK—žÌή¸|ù+¼ o=½sgRvvEBBðÇÇ*•j,vÏË«"“‰‘‘ýûûà} N^oíÚóÉÉ£G‡-Z4Ü×—‰wEgÅŠÓOž”ýó‘¿MU¯\yæÎg Á›6uq±Æ»"ð†4mQQ5Çge•ggWÈå*:ÝÄßß KäÙl/ÚO$’Vge•ð9œÚŠŠºÚZIS“¼Å]:¢ˆB¡Öjµ‚‰{{K¬ƒ –ÎccçÝÜlàê7 #Þ$‚¿{·pÚ´½o¿òóÏSà›y /f|öÙa …ô⸭U«5—.}<xzü˜³cGRRR®§§ý‚ñï¾N¥Âôhí5hÐÖøø •+Gã]x(Š^¹òtÇŽëeÎ..V…….WH¥’cb¼°ÞîAA.ÐÚÂ0•—×mØpñòą̊(ÏU«FGFzà]‘ºx1cÞ¼#¹¹›,,ŒÿbÄÄœåËO×ÕIæÎ<~<|œµZ[\ü_"Ÿ™Y®Tª™Lºn€|x¸;Ì^—X,ãr…\®°¤¤:?ŸÏáÔTVÖ××K4A¬ ’Vû<  &&2™¨Ñ Réóaõ ÉÑ‘îáaÍþª›ÖÅÅ€Wzí>%¥dÊ”ßFŒùùçÉ$|Ö¶¤Tªƒ‚VJ¥ŠVïe±l>\ÙÅ%0öÌ™´ýû“³²Ê##=,ˆë­ è»úZjk›BCWk“e£÷àAѲe§ŠŠª--MåD"!<ÜÍöŠ‹ó‹Šò05…Ñm†K,–íØ‘tà@²£#cíÚwal[MMcXØšcÇ>8°Gth‘É”»wߨ±#ÉÙÙjݺ÷âãƒZ}˜X,£RÉÐNªÛQ©4%%5X"ŸšÊÉÉ©Ôh´Íù¨(kks¼ËÝ’F£åñ¸\aY™Ër85%%5ee¦&‚ ÁÄ„B" •J¥ÁžB"(2‘HP(Ô»ÑÂÂÄÝÝÎËˎŲe2éL&ÝÝÝÖÓÓÞÒҷט׋àÓÒ¸S¦üšüË/S ™/¿Ý@§›â] h•JóðañÙ³éÿü“%Ë t2$(.Î/<ܽ'Œî>,¾¿è믇½x—B¡þý÷Û»vÝ RI‹˜8‘  ¶Gÿþ›Þy'lÉ’·ñ.¤ë”–Ö®Zu&))/!!xݺ÷^ì[²lÙÉúzÙž=Ó Ãx·&‘(rr*u}䋊Z-ªKäÙl¯ÈHh:H¥Òðx X.Ïå Ÿ=ãççóªªDXæN£‘MM©A¡PÉå*lì<€Ðh"‘ Rity½……‰ƒƒ¥³³•‡‡6dAïæfƒ`ô4¯ÁU¿óÎ/øîÙ3ò÷6ܹólҤߤ•_ìýû+Ú ¯+11gΜ#·n-qum¥ nCƒtÿþ;‡ßkjRLÚwæÌXØ;⫯Žs¹Â3g>Ç»ÐE³³+’“ îÜ)HKãbf98Ð?þxÀäÉ}ìí-ñ.ü?yy¼Ñ£Ñh´®b2éºÛ5íñã~ù%Q,–-XÿÑG±«µß²e§ÒÓ¹W¯.Ä»®–˜˜³zõY¯aúôþK—¾­›7ûéÓÊáÃ@Qô믇ÁpcÒØ(ÏËãéùÂB‘HðövÀÈcÿ‡K€^H$ l¤<—+äpjKKkJK…UU XoaabeefbB&‰J¥º¡A&I±¨H$É$Q(4Øwd2™dggáînçæf =môíà++ëGúÅßßñÈ‘O`øUÛ4mHȪúzió B@€SRÒb¼ªÀ(]º”9gÎZ-:sfܺucšßUQQÿÛo·þúë…Bš93öÃ@ãÔBQ4<|ÍÌ™qóçÇã] hųgüÔTNrrÁýûEBa“ÉpuµÎͶnyû IDATåYXЖ/5~|4Œ83@eeÂ#~‰¤D"2q"û»ï&b·'&ælÚt‰Ã©ýä“sæ ¶±.¯çÚµ§}t =}mó³=„J¥9|øÞÖ­ÿXZš,[6rüøh­:ô‡‚¾Z­!Û¶Ÿ:µ/Þe‚N!Ëòó«RS9))œÌ̲êêF2™èåõ_"Æ‚ €)•j,—/-b¡<‡SSQQ¯Ñh ‚“ÝÑÑÚÞÞÂÔ”B&“T*MeeCE…°¦¦I×ĆH$"‚M‹ ˆ©)ÕɉááaïïïèäÄÀzÚxxØÓéÐÓ@÷Ö®^¥Ò¼÷Þ±XváÂVVf]PVw·jÕÙ?þ¸§»A‰´bŨٳáWÆæàÁ»+WžAE*•œž¾K©ž<)ûùçkII¹ÎÎVŸ~:hòäÝ0@й¹¼øøï»à] xN.W=xP|ûvþ­[Ï ø&&”èhÏ|èûöÝ)*ÌŸÿÖܹC Ï»aâñFŒø±®N‚%D"áúõÅ*•fÆ‹wdÉÛ^^öx—Ù-I¥Ê  Û¶M˜0!ïZðÁáÔ¬ZuöƼøø èhÏ­[ÿÑ5‹ ‰'NÌé×ÏïA§Dºòéé\¡°‰B!yzÚ³ÙžÑÑž!!n¾¾ÌŽœ½~=×ÏÉbµìz€@ *(`Ml øee²²:EÉd¢‹‹5‹eëáakmmnbB!ˆMMòŠ aYY]EE½PØôï›@øo†Xеµ¹ƒƒ¥‡‡]p°‹»;ô´ÐÍ´+‚_µê쉮\YßÛ)-;zôÏÍo! iik˜L^%`döí»½víyÝ;‰Düú롽z¹îÜ™”šÊ‰ˆpÿ⋘mU¿vîLÚ¿?9=} ôÆ]^^ÕíÛÏnÝÊô¨X©Ô;0p`@T”Š¢›7_>p ™Íöܶm‚··ÞÅ‚Ö54HGþ…˪ÕÏOØ“ÉD77ÛòraHˆÛŠ£ûöõÆ·Âîn„Ývv–»wOû<Ý»W´lÙÉÊʹ\©;ä' ææ´«WBg¶ž¦y"ŸšÊihš›Ó‚‚œu-küü˜¯õ?cÆþ›7ó¾ø"aÞ¼·h4\ÚRSÓXX(()©))©.,×”—×ag ­¼½œéÕÕ\®P WV6 **êjkë륺t‚ƒ ‘H´²2up »¸X±X¶ÎXOgg+¸v€Ayuÿ÷ß©_}uüС™ Á]S“qˆŽ^WYYýL$¢¢<Î[€oIŸ~ºöÝwÿkq#•JV*Õ}úxÏ™38>>bb½?~—““ÕöíSñ.¤‡ª¬¬¿y3?9¹àîÝÂúz‰››ÍС½† Žˆp×]ç‘—Ç›;÷HuuãêÕïL˜ {Á’J•cÇîÈÉá©Õ-'oÿúëá …¿]ÇíÜ™ôÛo·23×õðs±K—ž;{=tïl(ŠfgW$'ܹS’R¢RizõrMHJH riõãX"Q,\xâòåÌÅ‹G|þù[° 2E?ÿüÏ Ò5šÖÀdïÞ#G†vqaFiðà­ýûûnØð>Þ…àEÑQ£~Îήxñb ‰Düàƒ~›7íâ€áÆ'ëùŒŒ2•JÃdÒuä##=RS9¼¿ùWI2™¨Õ¢3fÄ~ó͘<è…D¢((èùÜ\^]„J%;‡…±BCYaan¾¾m5PR(Ô|¾H UTÔçæò ø<^CMMSCƒ¤ùÌm‚‰D33н½¥¥³³U@€sh¨›§§^zÚx{/‘É”‚8;[mØðþðá½;¸@ÝN[ü±c—,9yþü‚ˆ÷®¬ÉhÄÅm)*ª&‘ú=ú)ÞåнiµèÒ¥'{ØjþŽ!ƒgÂuÐaâÄ=tºé¾}3ð.Äh âÄÄœä䂊jk›ññA±±~ýúùØÚZ´ñD.W8cÆïx÷îiƒtYÁàÍlÛö¿_~Ilãè‹@ ¸»Û&'/#‘`ôCGýðÕ#Gî§§Û3ÏK]¸1{öa¡­£}ðÝw¦LéÓ•…nG$’ff–gd”gf–ef–óx d2ÑÚÚ¢¡AªR©[<˜L&ZZš,[6jÊ”>=sת²²>#£L·566ÊmlÌ££=ûôñŽõ rnÿ¢är•@ .)©Éϯârk9œZ>_$JÄbi‹3— ™Á0µ··`±lÝÜl<<ì""ܽ¼Úyª EQWׯ›¿[Zš,YòöÇǶ¿ZÝÝKÊÅbYß¾ÇZ»vL×d4~ù%ñǯj4ÚŸž2n\ÞåС(º|ùé#Gî·‘¿#B ØlϳgçwYa=„PضfÇŽ©cÆDà]‹QQ©4ß¹Sœ\ðôi™LЉñJHNHnÑgæersyS§þfgg¹ÿG,V»žptð`òŠgZ½‹D"‰lD™LüõסéSÇååU½õÖ¶óçDG÷Ä^4©©œÛ·Ÿef–¥§—Õ×K‚‰ E©TcóêHÄ¿þšÓ¿¿^u‚n§¦¦1#£lݺ %%5­~—ÄúÒ¹lÝ:ÆrΣբyy¼{÷ŠîÝ+|ô¨X,–ûù9¾óNØÔ©}™LzG–,Iù|1‡S“‘QÎáTWU‰ø|±H$•HÍ¿Œ33ªµµ¹£#Ųñòrðñq qc±l›Ÿ ›z÷^õâZÌÍiŸ>dÁ‚è>=ÁK#ø5kÎ;—~ïÞ Z×d4*+ëÙìõ49'g´nài4ÚE‹þ>qâQóI$"v½³Z­Ñ½‘HD{{˳gç·3¾ítâDÊ7ßü½&îÓ‹úzÉyׯç&'ÔÕI\\¬ô4( 6Ö÷µZ–=yR6yò¯ÁÁÎ΂Kþ ßùóOæÎýE@£‘´ZT©Ô B£Q¼½íœüü}|üýÝÝí  ¾ÄÅm4(æ4âñ²²Ê33Ë33Ëž<)‰dB£Q”JµV‹š›Ó®^]èåew™ ; X.ËÚxv)ÏÌ™q ³´„)йPMK+={öÉùóéjµfëÖ ï¾®÷µ¨Tšªª†Ü\^Né)/¯ãóÅ ™LÙ|à<‰D05¥Y[›;8XººÚP©¤“'S_¶LÊÌ™±Ë—‚ Œ[ë<Ÿ/êÛwÃòå£>ùd`{–¢V«ïÞ½«ïÚŒÁÊ•·ìíÍ¿ø"ïB ™L0`@RUUõìÙ3½Ô –Fƒþúkú½{‚HD Š••‰µµ ƒAÃþO§Ó¬¬Lèt*ƒA³°€s]¢§ý«¹‰÷˜™Qœ©Çeö@yyUII¹‰‰9éé\‰Ø¯ŸÏ!ƒøø8¼ÁÒrsyãÆíЉñúõ×i4r«‰DVVV«è•êfc3†@ ¡¨J­®W©jÔê:µºN­j4-fŠ3W®\6l¾5lÞ|ùôéÇ))«õØÃŽ{kke%%õލ¨¨¾¤¤^&S;:š¯_gn£ÂøŽ{kke \{åÃEkk“©Sƒûõsí‚Â@OàäääïÿÒIM%ÅúõŽtêÔ¼®¼J¡P—— ³³+ ø¥¥µååu¨¡A*“©Ú¾ŠcbB™6­ß»ïzˆÅ ]P-/j{Ït\ë_ÚH¶²2Ÿ1ãõŽÝÝÝ-,ÚêWÛMœ(srbûâ]ˆa©¯¯¯®®ÖË¢H$R@ô>6f|¾xÆ ËÅ‹-ììÌaU{èqÿÂp¹Â»w ‚üýMˆÅò«W³¯_Ͻw¯°®Nâíí0|xï+FEDxtd˜sVVù„ {ôß½{Ú+;†¯X±"4æöÄ“V‹¦¤T[[ÓÍŒqJ¥Ò3fà]‚ ÈÔ©}vîLº}ûÙàÁz>Zèîǽ› ³©¨hxú”'“QØl8dÕ?£<î½~=AØéC@£‘U*5XÔhnNsuµrw·qq±ruµb±¬ÝÜl˜LKh :ŽËå¶ýssÚ¦Mãjk›fÍ:xõêBGGF×F£‘}|˜>>ÌïZ°àÏS§·ýt¹\µoßíÇï¾÷^ð’%oÃ|0 ‹½rÏt\+|c£üðá{ Ä¿îÄß ÃÆÆFO…‰)Sb--M¨ÔÖOuôXjµZ__E‚½=\7mÌìíí{÷Æ»ˆnEûæÔ©Çööƒêq™F¯¨¨úêÕìk×rž<á„>}¼¿ürhû;¼·­´´vúô}ÁÁοü2¥=ßÐbccq‰ &NÄ»‚®%‰ð.á9Ë6&ÆëĉGzàé¸×ÞÞ><Â÷Îb”ǽ%%%‘tOO{//{ww[ËÖÝÝÖÝÝöµšªðZªªª^ù"‘ðË/S¾_¸ð¯£G?ŽÁKuuc{F $!3“Ÿ‘Q3|x¯Î® €æÚ³g:¨•høÒ¥ •J3yrŸ®¯ÆøØÚvãáQ€¢èß§¼÷^$t¦~%lnÕk×r®_Ïár… †YBBЬYq±±~VVz #å~ø;“É8|øо €›8‘ýÍ7×ÕIllÌñ®#1aBôôuq±†Ã`˜ÌÍi;v|ðÞ{Û}0mZ?|‹©¬¬á¶ç‘P(dww›>}¼ÇŒ‰`³½rsŸÒh4hF©•þÂ…Œ!Cá[ €ÔTNyyÝØ±Qxb¸jj¯^}šœ\pçNH$ q7.*!!88ØEï«ÕÚY³65)Nžœ“¥ÐN£G‡­Zuæüùô>ŠÅ»Œ„¯o+Ý60(‘‘îŸ}6xóæË#G†ân…MºÌA33ª··C¿~>cÆ„‡†²p, @WjÁ‹DÒû÷‹~üq.Õ0(ÇŽ= rîÕËïB NVVybbNbbnNN%‰D8ÐÅŠQqq~,–ZͼÌúõ?.=wn¾ƒƒeç­#cfF}ûíãÇA=Ê—_&œ:õø§Ÿ®­_ÿŽeHD&Ó2,Ì=>>hÔ¨èÔ=SËþÑ£F;dôü€žN Ÿ=›¾uëx¼ 1J¥úöíg‰‰9·o?+/¯c2 A 0À×Ô´ÓçØ<{6}ß¾Û?ü0±wo×Î^Fæ³ÏÇÇwçγ¸8¸ºz ssÚ—_&¬^}ö³Ï¹ºZãUFvöz¼V Àp´ŒàŸ<)óöv°¶†.4ÐÓ=zŸÁ0}ÿýH¼ ÁYCƒôæÍüÄÄœ[·ò¤>>£G‡ Èf{uYܲ2áÒ¥'gÌè3µðú÷÷Ù»÷6DðУLšóóω‡Ý]¹r4ÞµèÑZf™™å¡¡n¸”ÒÅÊÊÊ>úè£W>¬¨¨›B]÷Có§?yò„L&Ÿ|oÊ”>Tj+³†ô<^ÃÉ&ì Yõå—Çêê$_=ìþýwî,[¹rt¿~>]–¿«TšO?=ìæf³v혮Yc«^ü@lÏNÑIoz¯ë >Äõþ¶ö²Gâø–eøoDzôÉ'oÞÌ/(àã]HKzܳ:²öŽÐÓÆ§³ëQûBW‚ãÞ½ì¸÷E¯ù[Ñ›Žÿ j‡¢ÑÈ}4àøñGJ¥ïZº¹Á‘À ´Œ8œš2»Î¹sçÆŒi=Ë())±³³Ã~¶²²Z²dÉËž¾|ùò 444 "‰æÎ»fÍšÞ½{w^åÍÝ¿¿ªªª¢¢âàÁƒb±8""«¤U<ïÏ?ÿÌÍÍíšÚ@«ÚØðôµØ6¶ŠÆÆÆ¨¨¨ÔÔÔ­[·¦¥¥-[¶ìÏ?ÿLHHÐh4ØJKK333u‹­¯¯¿sçöó+·vl½<ïöíÛZ­öƒ>xYµÍw±6œ:uêĉ­Þ5þüôôôÓ§O—••íß¿ÿüùó‹/ÖÝ‹URUU•••åëë;qâÄ߯@{\¸ðD$’}ôѼ éjüíÛ¯ñctôºmÛþ±³³Ü¹sZNÎÆ¿þš=kVœ‡Ç«7]½Û¹3)?¿ê—_¦à{:äeˆmë¤7½×Õ¢øv~ˆë÷mM$M›6ÍÙÙÙÆÆfêÔ©B¡°ùZ:ï-«o¹F/>>ÈÇÇaß¾;xÒR×ïYí9Ð}³bÚþt=÷"í~Ö}è¼öïEOôò¶`PƉ¤·nåã]HWƒ#78rôÿóó[úçŸÐפR©nÞ¼) _÷‰89r¤T*mõ®ÂÂÂ3-nÔ=]¡PôêÕëÓO?EQtöìÙ‘‘‘J¥²Óªþ),,ÔýS«ÕÆÅÅ­^½úeoõuµùzÄãñ’““ g9]©Õ ïuÿ4m,¶í­bÑ¢E±±±jµZ÷€¦¦&}ûöaÏ>|øòåËu÷:thĈºe¶±µ·XoEE‚ "‘¨Õj[¼ÞV·4A>ûì3›ªªªŸeeeõðáC݃oß¾Íb±Z]š@ @D ¼ôw×nÿ35gøû׈?Κu°ãËé”JõµkO/>õ­“Ó—ýûoܰáâ£GÅïÒÐÂB‹µpÏž›oð\ìûÉ•+Wô]Òó}¡=;E'½éuP{>Äõþ¶6|øðAƒåçç 6Lw¡Og¿eµñÛî¼7¢NÚö:èÀ;^^ßÔÕ5up9tÜÛñ=ëuW¤/ºbÚøt6p·/ pÜ Ç½í;îí¼-°ëuêËÉÌÌÌÏÏÝg³ýË/uF=úõf¯î•àÈíEpäÖB'm{€æþß(xµZÛÔ¤°²ê”º/\¸àââR__ ÈñãÇýüü$ ‚ *•jñâÅL&ÓÁÁañâÅ*• »'))‰ÅbݺukÍš5,ËÞÞ~úôéºA /> A‹/†„„˜˜˜xyy9rAµZÝêÓkkkÍÍÍMMM›_ì£û¹OŸ>‚8::"/¹H÷tA¨Tê¡C‡8°yóæƒ:tˆB¡¼¬H=¾´„Ù³g_¾|ùeËiþºÚ¹Ìk×®ùøøX[[oÞ¼Y÷Û8þ¼¿¿¿ƒƒÃ‚  E«7¶w³è|†¹ái4šï¾ûÎÏÏÏÒÒ²ÿþ=ÂÐÐÐ0cÆ ;;;WW×E‹a—o„ÚÛÛoÙ²åÈ‘#žžž cÕªU-ûâËo±U=ztõêÕ$I÷ssóÅ‹=zûçøñãÿþûoôßÓø§N7nœîÁmlí-`«À.õ½téRxx¸™™™““Ó–-[ÿ¿‹aZli˜¯¾ú* ;Àj±|:¾{÷nÝH„¸¸8.—Ûj% …J¥2 ìŸíß¿Zý[`ÆŒóõ×_c?+ kkkì7ÜöFu÷îݵòþ•˜˜“™Yþå— ]°.I$Š‹3,ø34tõ‡þþìÆŒþ7o.¹{wùŠ£Øl/"·ËÀ1(Š.Zt"4”õÙg;i­¾IjµÚ;wZZZöíÛ÷æÍ›Øu¯m\û➎tÚ›^ÛëmcWjQÒ…ok*•êÚµkëÖ­ó÷÷÷öö^·nÝ•+W^\Ë›½eµz0£óbmÍò‘ÞM˜À67§îÚu£ ÖÕ5{VóO™C‡µº„?ÿü300ÐÆÆfÛ¶mÈËt_¹ëµºA6ß¡Úøt~ñ¹¯üm4ÿ¹ÕU¿øÒ^vÖêÓ[0Ž}Ž{»ïqoûÿ mlœºcÎöñ¶ý™ò²¿Q‹]ïE†¶CÅÇݸ‘÷âwŠîŽÜàÈÍ v.ÀkhžÇ+•j'§/¯^Í~Ý ¿£¦OŸþá‡òù|&“ùèÑ#ìÆ­[·Ž;¶¬¬,+++""béÒ¥ØI¿#FܸqcíÚµÁÁÁYYYÙÙÙ111‹-zÙ³šššh4Ú¯¿þZUUµÿ~2™ÜÔÔôÝwßµúô9rýÿ'[=ëØêº§ë,]ºA 64¿±S_ÚÚ)ÐÔÔT++«¶×ŽÝû²e6‡ ȨQ£ÄbñéÓ§©­­Å–0tèЂ‚‚‡þ{÷ÖÔù=üf±‡Ì°÷RP ¢‚hÝ NÔ¢ÖV­[u´âÞ£T¥jÕº«UŠJ­ZPkÙ"aoÂ&ì¬ûûãúË7MBd’Àù<}ú`Ƚ9á®7'ï=ÇÆÆfÏž="¿'ôòl ÜñŽ?®¯¯ïÞ½ÒÒÒGa›fÁ‚cÇŽÍÉÉIIIqrrÂþ’‚0Œ‹/"2wî\ƒqþüyl£ ÿÝ!ÅìØ@­²²Ràïóúõk2™Œ-ûéÓ'ƒÄÄDEëêêTTTªªªÖ)roG$))©¡¡Á`dggÏš5ËÝÝEQƒ¡  °dÉ’ââbìOEE…ð¤=÷Fh4š²²ò•+WÐÿƒOŸ>566VTT?~üÏ?ÿœŸŸ/ICCCIIÉêÕ«/^ÌûmÇ/ámÁ àöíÛfff\.Eшˆ###‹õÅJà“åã‹ËåN˜¼dÉ¥î¬D–UV6\¿þfÑ¢ ––[LM˜;÷· ^Êâ\¡¡T3³M¥][¼ƒ3‘…O’çÏŸç?G™˜˜`‡¤À‘÷ƒÈ#í±“˜3ŒÈC [ªƒqÉžÖØlvVVv®@QôÈ‘#...¨„NYâÇ-âçRõЉH6gÁ£(zùò?›KJj»³’.{%~dñ_e°Z´ØKóotAüýýkkk/\¸€ HuuµÈíÀ¡'¼C¢ÿ= Ä\…—ÿ׈MäK ¿µö`"ç×sÇ ã^÷vlÜË»ð´·AÅ으1g·Ý¯)ím#COàÜ£T׿ê&$änÈÌ,ë삽¬ƒïFn0r“øÁ³àè‚¶¹ùæððøÎ®¥ƒEjkkMLLœù^¡‰˜˜WWWì|‘’’‚¢¨½½ý½{÷°ß~üø‘÷³ðR555$)88¸¶¶–Ëå644p8œöŸ={vMM ÚÕ}:@X¸p!ÿûíÑ·†~)ßÞ«c´·N~‚¼|ùEQ¬`bVVü(І††ÚØØˆ|«—?ŠÈàŽgggwõêU^0×®]C„Éd„´´4ìÁ{÷îaIA>|ø€¢(“ÉøÛøwÈ.|yûö­®®.oÙ5kÖlÛ¶ EÑ7nŒ?^`ííí‰äããû‡7##£±±‘Ãá¼zõŠGâ_V`OãÑ ÂÂB¥Ølö¿ÿþ»oß>'''ðçŸ G‚ ˆššÚÇÅlw‘[Pä¶àÐÔÔ¤ªªJ¥RQýú믱?—È• 1™=¾ž?ÿhd´1-­¸;+‘A¥¥µ.¼š6-ÄÄäsóÍ‹]¸s‡Z]ÝÝ’=§¾¾ÅÕuWPPx—×ÐÁ4¨ðIÒÑÑQø%æ‚È#í±“˜3ŒÈC {¤ƒq‰ŸÖ0õNú IDATõõõ?þø£¹¹9ö¾$rÊêι:Él žÉd¶ëÖ;ÝYI—ǽ?²ø7˜Äú‹/P¾ƒHÌ3ÅzÂ;$*t@µwu^Vü_C 6‘/-üÖ:>~ØX=w, 0î…qoÇÆ½ÂÚÛ Ù9;¸íÄ_SÄl#COàÜ£T×…mm,sóÍ¡¡ÔÎ.ØË:øî`ä#7‰\‚ ØŽŽÛ¯\‰ëìZ:^sß¾}¿T–’’ÿ)LSS;_`%½”””RSEÌÊ^ EѸ¸8UUUooïÇ··xCCôiÓ°ŸùÏn4Mø”'|ä_sýúuMMÍW¯^)))=xð wÞ*jÐyóæM777ñ¯Î{²ÈuòC„F£ñ¿¶†––ìÁääd%%%‘ ¯_ï×Ä”µOYY9))‰÷«ÄÄDAŠŠŠøÿ’)))Ø_’C ÿ,°CŠß+ bbb;{öìĉy˾|ù񮮠ËåΘ1ãüùóëloo~]žˆˆ///WW×Å‹·7âØÓøàp8>>>ØwøØR·nÝâUöär¹;wî466ޤ©©iÓ¦Mžžž¼×êà¹-øÃž?þÖ­[UUUyÁ‹ß©Èòñ5uê‰Å‹ûÎøÌ̲ààhŸ#††ìí ¼ñìYZss›´ãú²}û"·××w±Ü3Ú™4¨ÀIRä9Jü'á#½‡Nz(߇‘¯+æPB;s—øi EÑ›7o/]º›k†Jè”%~0#þƒ\ˆd6¢è­[ÿš™mÊËLÌu\—ǽ?²ø¯2"wEÉÌÌäý,>/þÐÞ!ùƒu^Vü_Cà]ˆ<„ßZ§ÆoüzîX@aÜ ãÞÎŒ{EØ bvNÞ˜³ãŸ(Å\SÄl#CO à= ºœ(7îçýûvaÁÞÔñw#7¹Iöà‚<½à?µà17×ÉΦ#=£¨¨èôéÓãÆÛ´iïA]]]Þ)¬¶¶ößÿÅÇJzåççc$%%|øí·ßÚ{š˜2…x<þÊ•+¯_¿þý÷ßyojþüù©©©¼e'NœˆÅTTT¾ûî»ôôtôÿG~Ü‚_Üááá>tss³µµmoåØãí(”Íã+&&=1±pݺq=ú*= EQ*5wçÎûÇ=úèo½½í<LK;øë¯ ÆwTVVvŒ_PPP}ñâ?›6MÒÐQîV²„O’ÆÆÆÂç(1Dé=tÒCø>“ˆ9ôwÔtü"Þ©7+Lø?~üøîÝ»###/^¼¨§§'¼H—OYØ“;5˜'"'¢5{¶»±±VHHLO¿P/Yþ«ŒÈÝðwðÉŒø«³ð²bþÂ+¬À[ëøøMøÝõ™cƽr=î&rƒ"í쇼³A·ø„b¶ÑÏ*2x@YZêæçWõÜú{ŒÜ`ä&@¯VôG)ù-[BgÌøUtº¾}™ ÄápÆ·ÿþššƒ‡?½nÝ:ÿüüüäääaÆ­]»–ÿK¿Ý»w;;;§¦¦¦¦¦Ž9rÙ²eí-ÕÒÒ¢¤¤^YYùûï¿+))µ´´ˆ\|áÂ…%%%Øz*++¹téR}}ýÌ™3¾o±|Â_Eò/Îår}}}}||°*.L&ÓÙÙ9  Þv–óæMYYYqqñË—/§OŸnbbRWWבWoo.\à­ú[Ø1c²²²¨Tª­­í®]»D>(~‡éÍÙ@²¹ã…„„èëë?x𠬬,::ÚÊÊ ùÿÏ®cÇŽÍÍÍMMMuttÄþ’‚ÿgþÕ¢_Ú+êëëííí}||¢££i4Ú½{÷GŽÙÚÚÊ¿òÕ«W8p̘1ü/$~oGÚ™tP[[‹Ãᢣ£›šš¶nÝŠ ȇø±öÞ À Ïž=‹6°~ûí·vvvQQQ999¯_¿öôôܰaƒÈH°Fp £S[Pä¶àßC°.¬¶¶¶üwhŠß©Py8¾ÚÚXžžûW¯þ£k‹K“É~ö,-0ð†“ÓCà ^^‡‚ƒ£““ 9®´Cë´ÀÀ#Fd2ÙÝYIGf"‹Â¯ÒµS–˜Á úßQ Ú['"Yž¢hDD¢±ñÆ„„ü®-Þåq¯Ä,þ«ŒÈÝm+ tE>SàgáR`"æê,¼¬È¿F{ïBxq‘Av|ü†öÖ±€Â¸ƽ÷bo„_{Tüe®SÛNäƒü«êø6굪Ësuƒ‚»èèeyw0rƒ‘ÿÏ’:¸`<½@0åJœ½ýOl¶`Ypñ:òQäÔ©S...ØÍq÷ïß744Äêy1ŒÅ‹kiiéèè,_¾¼©©‰ÿªßÚÚºyóf###MMÍ€€€ÚÚÏí³„—BQ444ÔÚÚZAAÁÁÁ!""BäâL&sÊ”)ü8p`À€ÖÖÖØë²X,///555Tè<(°øÕ«Wy7â¡(J¥Rñx|xxxO¿5ô¿eÈLMM,XÀéøW³N1—Ol /^477×ÕÕ äÒ³' ½ûQD6w<6›ýóÏ?󯯬ªª>›‹„¢hMMÍ7ß|£££chh¸qãFÞw-ím”? ìÏâ÷ E7mÚää䤢¢âèèxàÀææf•¿|ùA3gÎð?.~oooă¢èñãǵµµMMMûí·€€}}}þC¬½7(°B.—;~üxÞb³Ù{öìqvvVVV¶°°øñÇy{À‚GCC#//¯S[Pä¶8‚–/_®¦¦Æßdõ‹ì_gÎ<·¶ÞZZÚ­F…½ÍæÄÆÒ~ú)ÌÙy'–y?x02!!k™+>}*31ùáþý„n®§#iP‘'I&“¹oß>KKK55µáÇ߼ySü9TèH×ÒÒꉓžðyFø #æPêÔE\²§µ¸¸8Dˆð«tù”%<˜ámŽœrQIŸˆd<¢èÂ…çÇŒ9Úµo¹º<î•ø‘%p•Þ PQ[Yä@Wä3~Ø!ëêê!b®ÎÂ;³È¿F{ïBä± d§Æo½s, 0î…qoÇÆ½"¯"7¨˜“FÇ/Âò¯ªãۨר.' ÷ï8aBpìMyw0rƒ‘ÿÏ’:¸ @/À¡ÿ½äÕ ¶?4t•··È¡€Hl6;..ÎÙÙY[[»ãK¹“mkk+°Ïˆ|P¼²²²œœ//¯nÆ#©õ ¤~|UT4xy\¾|ôæÍíÞâ-S8îÛ·ÙQQɧTU5däëë2uª‹­-YÚ¡u׊×rr*bb6wê^uaõõõ xòäÉĉ»³ž.ì‡R$_ÑÊIˆ$µïõœüüªÑ£ù._îÓÙe%5î…}•Ÿ¬ý5$u, 0î’&kKGHð€JIIQTT´··ïl Ç?½ÿClì¶Î.Ø›ºüîÈ×N"_ÑÊI\’Ú÷bþmjª=hÑ£GÉJÁw!!ÏTTV®#í@¾€Éd¿z•™ôìYzCC«»»Åºuã§Lq62 íÐ$ƒF+ŠJ>wnQ7óï1,,tW®=m𫦴ÃгTT››™ÒŽ@ÿ%˜‚GdâD§?ÿ|»oßL¿ý™††ÆŠ+:ò  ³¤{|¥¦߸ñöÈ55Å^x¹.hiaFE%GE%ÇÅeµ¶²ÜÝ-6ožÔ—2ï<çν´²Ò›:ÕEÚÈ+¸*uG¿ºÐ¯];.,ìýÞ½gÏ.’v,@æô«cÈyÜeá€BQ‡É ²HwiÙ!  ƒ Ñ RQÑ0lؾ}ûf~ó͈® Ñ€Nrè9]8.Z[Y&›šj߸±\Öf^773=úœyokc¹¹Yøù¹NêlhØ×2ï˜ÒÒºáÃ=:ç믇um²_ ôUò²ïQ©¹³gŸ ž7o¥ãKÁ¸t Œ{ .—Ë8p 2..ëÉ“z"*Ib @Z`ß ˆ˜ç®¯¯îïïñÛoÏŸïI à{?&½)8øIEEÃ;«e'ÿ.œyß¶mjμó\¿þfÀ•Y³Ü¤ý…bµjÕ˜;îQ(–––zÒ@O©©iÒÑQ•vú/Ñ¥fV¬}ûö»û÷?øû»÷r@z•š{îÜ‹cÇæÊB5dþÌ;‹Å3fàÞ½3Æ$ ±õ‚¶6öõëo¾ýv$‚ ×lÙ2ùõë¬õëoÝ¿¿¦ž@_U]ݨ­­&í(ô_¢?äÛØè/Yâ½k×ý1cttàB}“ÉÞ¶-|Ä›€ ”=鲦¦¶ÇS¢¢’ccil6g̘GŽø;H[»MVzü8…ÁhY¸p¸´ !‘ÁÁ_O™rüÌ™¿×­'ípôˆŠ †•Üí@jÚg·eËäÈȤ"OœèÍ€ôš;î•”Ô^¹²T*%h„3ïGÎ釙wžk×^;¨ÏÛ@Ö h¸c‡ßîÝ4?ÞQÚá0‹“‘QöÝwÐJ€Ô´›‚WSS òݰáæÌ™CG‚ž Ð×üñÇ››7ÿ½vm™™™No¾.‹ÅùçZTTÒ“'i F‹««é–-“}}]LMûucÃüüªøø¼«W—J;ú£¥KGegW¬XqíÞ½µ®®fÒ€$egÓ™L¶³³‰´Ð‰«6ëïïþúuÖŠDGo´°Ðíµ˜ô´øø¼;ïŽ;v`ï¼"‡Ã}û6ûÁƒÄÇSêë[† 1[¿~¼¯¯‹‰‰Vï ãÂÃßëé©}õU/mz‰¤wútâÛ·-¦¦Úff:&&Z&&ÚêêJÒŽ«]û÷ÏÊÉ©\¼ørtôÆ~Òú‰ÔÔEE¢­­´Ð}¡áÛ³>|(X½úúýûŠŠ_xrJJŠä}‘(™fƒl6ûåË—Y}ƯººæÀÀ?ÝÜ,6mšÔÓÁ (úþ}þƒ‰QQI•• NNÆkÖ|5mÚ~>ç]Š¢÷î%LŸ>´'ºANš$ù­L h’Hú$’>‰¤‡Ç«TUÝ”øKtGPQÌbU1™ÅÒŽA‡#ªªº65%¢(§7_WAÁPSs,“YŠýÇá0zóÕù‘Hºªª¤ŒŒ²˜˜ÅÅ5,AMMSS-SSmmSSm33mmm é§æ‰DüÙ³ßL™rbÕª?îÜYM"Ä?ƽ ã`Ü €vv‘´´b;;"Qzn—•••••I; ÐuáÈt EQñÏÈÌ,÷ó;I¡X]º´¤½,<Š¢UUU=è³p8œ®nwo­hiiill”H<ô%â/‹³`ÁïÙÙôèèÈdŠËE_¿Î ‹þ<£®®ÙÝÝÂÏÏuÊg##(t.BBB¾Ÿ_Htô..¦\-‹ÅzðàA÷×Ãá tzKqqcIIsqqcIISK ‡HÄ©š˜¨š˜¨Ža nŸ¡(š”TUX[Û6}º…L|~(,lüí·ZZ ß|ckdÔ{í ªªZ©ÔÊÜ\FAA#“É0@ÑÊJÝÒRÝÚZÃÐPïÕíäíím`ðyÊa}}sy9£¢‚QPP]PP]XX]PPŸ_Å`´ B"ŒŒ˜™éÉd²¦¹¹Ž¹¹Ž™™Ž©©v/Çœ‘Q6sæ©Ñ£ΜYØÞWb0îã^$HIII]]½S‹|õÕ±#l˜ÕC!IJ]]‹Å’v Ÿê‘è”/§àIHÈ_°à÷¡CÍÏ[¤¡¡Ü aè \.ºjÕ±±´ˆˆu¶¶d‰¯EÑøø¼ÈÈäÇSÊÊêlmÉsçzÀœ÷/Ú¹óþßg¼~$í@>«©iJHÈOI)¢Ñ虙幹l6W__ÝÅÅÌÙÙÄÙÙÔÙÙ„L–‰J‘‘IÁÁOrs+†mÜ8A¦šÙVU5nÚtûÅ‹Œ+ÆlÝ:ù‹³ª%®  šJÍÏ£Róh´r‰0p ‘‡‡%…béåe«¥%}[[Yt:ËÈóRóÕõõÍHû©y­ž¸e“ž^âïÿ›——íÙ³‹äbÊ$1ŠŠj† ÛëÖJhq@j:”‚G$5µøÛo/‰ø_]àéiÝÓaè {ö<¸víõíÛ«† ³’ìšSRŠÂÂÞ?}šZ\\ki©7kÖP__W{{¨¹ùe(ŠºwáÂá›6M”V t:#%¥(%¥(%¥8%¥ˆNgàp8[[2–p··7°³#ËH·JÍÝ¿?2!!ßÏÏuóæI=ñ•’D„…ÅoÛîà`xêÔKK=i…mb*5JÍMJ*d±8ææ:–Š•‡‡¥ ª"Sótz=Î@z>5Ÿÿõ×ç¦Lq>q" —§á¬?þx³ÿÃôô ’) tAGSð‚ÔÖ6mÙrçéÓ´+FoØ0AMM±G# Y×®½ º{êÔ‚Y³Ü$µÎœœŠ>DF&Óhåff:sæ¸Cæ½³>|(ðõ=ù×_[ 2êWDQ”F£óî4½¾¾™@À[[ëó&¹;8ÉByn‘òò*÷쉈‰I§P¬vîôss³vD_PPP½nÝŸii%Û¶MýþûQÒijjKO/ÁfÇ¿{—Ã`´b·8P(––C†˜÷þ„ýŽkkc——׋OÍëëkhš™ét'5“þý÷W¾ývä¾}3{æ­è ß}w EÑk×¾—v úµN¤à1·o¿;p ’HÄÿøã”yó†ÁÌ wï¾_¿þæ–-“ׯßýµåçWݽû˼ëë«ûù ñósqw·„‹B>üèáÃÄ·owôÜK°XœŒŒÒÌÌr,çþéSYCC«¢"ÑÙÙK¸;;›ZYéÉrâSQÑJ51ÑÞ³gúøñŽÒލ£Ølîùó/Ž‹öò²=~< çÚ0t‡ÃÍήˆÏ£Rsß¾Í))©UQQpt4¦P¬(Ëaì䥡pj¾¼¼¾¢‚QXXƒ¢h{©ycc-1¥fîßÿxãûïGíÞ='Åvºª¡¡ÕÕu÷îÝÓ-!íXôkNÁ#Â`´œ8ñìòåXýuëÆûúºô\9N݇åß×­¿uëäNgDF&…‡¿OI)ÒÑQ›1c¨ŸŸ‹››\ºc̘£^^vû÷Kr¦mk+‹7É=%¥8/¯’Å⨪*dÄ˹[[ëËQ놆Ö_ýëÊ•Xuu¥M›&Í›G‘ý/ „}øPøgCCKpð¼ œ¤Žtz=•šG¥æÅÇ祥ãp8kk}lvüðá6&&ZÒ°Ó¾˜š×ÖVÅJÙˆLÍ?{–¶|ù5__—“'çËÑñsýú›={"’’öª«Ëè½}ú‰®¤à1ÙÙ¿üò$**ÙÔT;0pììÙîP[ dPDDâÚµ7V®³}»o×ÖPUÕøàÁ‡ÈȤ„„|…I“ûù¹úøØÃi¿û°a·o¯5ª[-Âjk›Þ¿Ï§Ñʱ©îXU]]µ!CÌe­jg±Xœßyöì ‹³nݸŋ½UT¤T×µ´0ztéÒ?þþî‡û«ªÊnY¿††Ö¤¤B*5« ßÖÆ&“5°ÚñŠ¥““‰\ßõ"šÇJÙV §æQyú4ÕÃÃòر¹ff:ˆ9âçwÒÌLçÌ™o¤€þ®ë)xL^^åéÓß½û^CC) Àó›oFÈã )è«þúëã²eWfÍržÛÙB mmìçÏ?>xð᯿>²Ùoo»éÓ‡Nš4XfK„Ë£ë×ßìÝ‘‘q¨³sº+*’“ ù¨"bgg€µN•ëœ;Š¢QQÉG>..®]¶ÌgÕª1ÚÚªÒJ2^¼øô÷I§N-ðð°”v8_†Õ2ÂfÇÇÅeÕÖ6©©)bN¡|n誤D’vŒ’Ád²ËÊSó™™å ì šš*¼Éò,h@*²²è>>GBCWy{ÛI;ý]wSð˜Êʆë×ß\¿þ¦ªªqìØA =Ú>Š€tEF&­]{cÁÏfw|¾*—‹¾}›s÷îûÇS[==­§O2uªKŸÉ~Ê”å˯673oÜX.þiü Ti´r­œNgàñ82_UCy)ÛÝoßæ8ð0)©höl·­[§ô½/ø«ª7oýûï+VŒÙºu²|ÕÕ)(¨¦Rs±†®4Z9‘ˆ4È›?r¤mŸQºË oÔ×·Ï›8ÑIÚáH^O¥æa ]ÓÒŠq8œµµ>6;~Ø0+33iØ l6wïÞˆK—þYºtÔÞ½3$ròìTjËË››ëX[뫪öÁjTÐM‰7^¿Þnjª-íXé<‡Ã}÷.÷Ù³´gÏÒóó«ôôÔÇw?ÞÑËË>?@7ÕÖ6-_~55µøÒ¥¥#GÚü¶¥…••üêU&€Ÿ:ÕÙÏÏÕÇÇ^A(•hû<^UN£•c9wgkû¿ªëÖý9gŽÇ¦M“¤¬tp¹èÍ›ÿ†„ÄTW7.]:jíÚ¯ätZ´µ¶²Œº|9völ·Ã‡ýûê許±-1±€JÍÅ2ò­­,2Y«O¡X:9™ÈÅ7‚7n¼Ý¾ý®··Ýo¿}Ós±Ô<¯û+¤æà‹¸\tüø`{{ƒß~ûFÚ±Ÿõj ž_ffyLLúÓ§iII…x7tUR"I;Æv½z•¹rå&&Z/.67ïÕ‰ü]KÍ[Yé÷ÉÎÀ/4”ºuëØØmòu‹€¾Mj)xž–æû÷ùÿüC‹¥¥¤))‘<<,G²óö¶“—iP ]¡¡Ô £P¬ÎŸ_¤¥¥Š=H¥æFF&?z”\^^ïáa‰uã00èwuNzN[;9¹K¸ÓhôœœŠ¦¦6%%ÒàÁ&i “¾xñ¥ö·¯CÒÒJöïKóósÝ´i¢øž–ýVuuãæÍ¡ÏŸ\±bÌÖ­“ûOqž‚‚j*5kèš•E'pƒc³ãGŒ°ÑÑQ“v€‚òó«–/¿ZXX2_ʱXœššF^÷W^j¾¤¤–ÍþOj^__ÃÀ@«8©y@ŸÁd²½¼;èðaiÇüôSðü**޽ˉ‰Iÿë¯uuÍÚÚª#GÚz{ÛùøØC7†¢hpð““'cæÍ£9⯠@Ìϯº{÷=ÖdÕÂBwöl7??WÈrJDSS[zz –sç5PÕÒRur2¶³3ÀrîÖÖú¼—ëèÑÇ%ÿó϶ž[vT:•ìîn±s§Ÿ»»¥´#’uaañAAwmmɧN-°¶Ö—v8½ kŸ@¥æQ©¹II…,ÇÜ\ÇÃãóìx;;2'5ØlnHȳ'žÍŸïyàÀ,Ù¬îÕµÔ¼¥¥ïÆ .¼:zôñë×ÛûFos}†l¥àyX,Îû÷ù¯^}úçZJJŠ"žžÖ–žžÖ0‹©¯o^·îæË—Ÿvíšöõ×Ã?N¹{7áõë,…ɓϜéæåeK @i¯®«ªjLL,h ª§§îêjÖýªsçž56pâD€DC–QUUÇŽ= ¥š˜hÿôÓ__IžÊ¾ÂÂêuën¦¤ù.]êÝoÿnÍÍÌ´´blv<•šW_߬««†Õ«ñð°tu5“zâ;22iË–P£'¾¶´Ô“n0R_ßÌËÈ·—šç•²Ô<@–Õ×7{{ž3ÇcçÎiÒŽøMÁó«­mŠÍz÷.çÝ»ÜÌÌr‡kf¦3l˜V$ÔÖ–,í@ ò—/¿¦¨H\¾Ü'!¡ ::…ÅâŒí0{¶Û„ N²\=Yfa Ti´r­œ—sç5Pµ·7À¦ºw9çÎËE Ú¶Í÷ÛoGvm²¬µ•uæÌósç^ªª*lÞêëërø°¿´cDë›)xeeu‰‰…‰‰…‰‰))Em D''c3WWSSkk}¡·§@€TjnxøûÈÈd£eÈ3:QW×Ü7ZüIVAA5VΫçN§317×ÁZ§ÊNÎ]ÀäÉÇ)«½{gH;ɨ¨hŽ ¥ÚÚ’wïžÞ*oHWXX|PÐ]ýÓ§Z[ëK;yRUÕ˜˜X@¥æQ©¹ÉÉEL&›¿^ÍàÁ&8œÄêÕ46¶>uíÚk__×ýûg¨_ÄŸš//gTT0 ªsr*ššÚHÍDùöÛ‹YYôçÏ·(+Ã4;2ª_¤àùq8ܬ,zRRabbᇙ™el6WEEaà@£Áƒ6qr2qp0„ e©((¨ˆHÌή°´Ô›3Ç=+‹‘8~¼ãÑ£sõõû{î¦c T e¼¸0Š¢vvÛvïž¾pápiÇÒ] ­¿þúו+±::j;vøMêÒ;µ¶¦¨¨fݺ?““‹‚‚|—.õ–`â¸ÿhia¦¦c³ãããóêêšÕÕ•\]Í(K ÅŠB±RT$vÿUÞ½Ë]¿þf]]ó?N^´h$Ìüè‚®¥æõõ5ภo»ÿÃÚµ7ÂÂVa#íX€võ»¼€ÖVVzziZZqZZIjjñ§OeL&›D"ØÛ89™`Iù Ž< G54´FD$†…Å'$äki©Î˜1tÎw6›»yshaaõöí¾ß}çÕ?“L&;)©F£gf–§¤a Tˆ..¦ööØT÷AƒŒå«/eii»ûÞû÷åº7‹Åùý÷—gϾ`³¹›7OúöÛ‘ðíµTp8Üsç^;=b„ÍÉ“0¸;°/ù°J†ññyÕ$aà@#lv¼——­–V× ³Xœk×^=ú˜LÖ8thö¨QöŒ¼?ã¥æ±R6XY›ÜÜŠÆFÑ©ylʼ™™vÿ¼ªÐÇÔÔ4}d§ààyÒŽ§¿§à…Ñéõ¼Æ}II…•• ‚ðêÈ;;›ÚÙ˜›ëH;L@_€¢èÛ·9aañ§473½½ífÏv›<Ù¹­uèУ[·þ1ÂæØ±¹ºÒŽ´÷`3R¨*++89ý¯ª••ž\g{_½Ê 8—ž~ ;é<)BQ4**ùèÑÇ%%µßï³fÍW@ãD)KN.Z»öFmmÓÏ?Ï›/¯²¡¡Ô<}ŲeWò_¾ü©?w½  /—‹æåUbäSS‹ÓÒJjk›16Örp0pp08ÐÐÁÁÐÖ–,×É @ïà Îܹ_TT3p Ñœ93g!“5Ùlîùó/Nœx¦­­zðàìñã¥iã5PŦºçäTp8\mmU77 gg;;;;kk}"±ïÔm¸zõõ±c?~<(í@ºâíÛœ¦¤ Û°aB5±]ÐÚÊ:x0êòåØÙ³Ýò—¯[Cd_SS[zz V¯æÝ»£›Ÿ5t2ļSCÁ‡“Œ¬«k^·nܲe> ¨u:KÍcyy^3X^j^Ahhø¿Ô¼¾¾–©‡Ô<2èÚµ×;vÜ _#×·è' ß9ÅŵiiÅeŸ>•ed”æçW±Ù\‰`e¥goo8h‘ƒƒƒƒ¡©) Ó"ÔÔ4Ý»—þ>%¥ÈÌLgÎ÷3†òú(R©¹Û¶ÝÍÉ© »zõW}µ£ÿÍF¼ªü7ÉfU :x0êÕ«OÏžm–v “‘QºgODl,ÍÏÏuÓ¦‰vv]™ zÚ«W™6ÜRP „„Ì÷ô´–v8}›ÍÍÉ©ÀêÕ¼}›SRR«¢¢àèhL¡XQ(–ÆYu¤E[û÷ß_ž:õ—¶¶ÚŽ~¾¾.½9Cdj>?¿’Á—š75Õ†HEFFÙ”)Ç—-ó ò•v,À—A ¾[8nqq-VN£•gf–§¤ggÓ¹\”D"XZêÙÛØÙ‘±Ú50w€þŒÍæFG§„‡¿õ*“D"Ìœ9ÔßßÝÝÝ’÷¹½²²aÿþ‡wï&x{Û:4ÛÊJOºK@U^_ߌÃálm?7PÅN•};ç.`Íšëm×®}/í@:ª¸¸vÿþ‡%;9™ìØáëåe'툀855M[¶„>{–¾r嘭['Ãz=N¯§R?wsMM-ÆãqÖÖúØìøáÃmLL´Ä,[QÑpìØãÐPª­-ù§Ÿ¦L˜àÔkaƒª¯oæuŸšÇJÙ`em 5@b±8Ó§ÿÊd²?Þ7 ‚—°ººflŽü§Oee™™eØm­d²VNÁÎŽŒý_NK:åãÇÒ[·ÞEE%UT4xyÙúû»Oš4X]ýÕ*¹\ôöíw‡Eq¹hPïüùžòþ¡] ê§Oe ­ÞÚZŸ7ÉÝÁÁ¨?—ìœ5ë´½½ÁáÃþÒäËŒ–S§ž_¾K&klÛ6Õ××¾N–aañÛ·ß55Õ>}záÀFÒ§¿hhhMJ*¤Rs± òmml2Y«O¡X:9™ˆ<ÃúTväÈãgÏÒÜÜ,‚‚|‡‡Ûä@;©ù*£Ô<= +¼öøñÆ®µåz¤à{\QQͧOe™™å™™åYYô¬,zK A]]5{{[[²¡­-ÙÞÞZrÐg𜱰Ð]°ÀsæL7áªÙÏŸg:™™Y>w.eûv_¹< ˆl ª¤D<ؤÏ4P•,OÏóç{®[7NÚˆÓÖÆ¾xñÕ™3“H„-[&Ï›G-(wŠŠjÖ¯¿™˜X°yó¤U«¾‚Ä_/c±8¥Øìø¸¸¬ÚÚ&uu%WW3 Å’B±¢P¬ÿ3s3!!ÿС¨·osÆŒqغuŠ‹‹©´"ÝÑÚÊâuNÍ“H#£¼î¯¼f°&&ZBßiy@ŠŠJ^±âÚÙ³ßL›6DÚ±)x)¨¯oÎÌ,ǦˆbEl°RÈüåk°)ó66ú0@ŽðœQP ̘1táÂáÎÎ"Ò(oÞd<™œ\4¾g`à8SSíÞ¶Ëjjšòy Tss+Ølî€*ƒ›ØÙ`9÷>Ö@U‚Pµ°Øy’ÊápEþvÓ¦‰›6Mêå0UUÇŽ= ¥ÚØ÷ì™.³wf b0Z¶m ˆH\¼Ø{×®iÂÕí^½Ê4Ⱦȗtz=•š‡5tMK+FQE Å1cŽ4ÈXÚ©yÐǬYs#"⇳·7¸}{UrrÑwß] ò]µjŒ´CºRð}Mk++7·2'§"'§"7·2/¯27·ª¶¶ A‰`jª¥ã--?ÿßÈh€LÍÆ@656¶=xðáÆ·))E––zóçó÷w_‰%7·òäÉg‰zzê6L˜;×CŠÉ÷ÚÚ¦÷ïói´rlª;Ö@UEEÁÑÑ›äîìlje¥­&zHXXüÆ·¸\\Ÿ°§‡ê‰ED$NŸ>Dä¯Z[YgÎ~¼cttê‘ÿþ»£½”úû÷yüñæÁƒ&&ÚkÖ|5w.¥w’ïü T±/Û°œ»¹¹Ö:›ê T¥h„àôôRáknXØš‘#m$þrþùvË–0<Ø$:z#oÊXddRpð“ÂÂêï¿÷Y³æ«Ž|ú0.½|9vÿþ‡žžÖ'ODF&ïÝí¥îÁƒõnnæÒŽˆC¥æ^ºûøqв2ÉÜ\·¥…™—WE à 2öð°¤P,GŒ°ÑÑQã_äÉ“TWW³öÚ†ÀŸšÇòòØÜ1©y}} 33mø6H ‡Ã:tOeeÿƒx<ÇŸ>½`Ú4Ñ·÷2Rðà°âòyy•yyUØŒ˜‚‚ª‚‚ꆆVAH$‚±±–š77×Åòòææ:X{äÅýûÖ¯¿Éfs7mš \€»µ•™þþõë,#£óæQfÎt³²ÒCQôøñ§Ç?CQôÒ¥%“'æ_ŠÅâDE%_¸ð*)©ÐÁÁpÍš¯¦O*ü•“É–T-¬eo’{ffƒ!Ø@ÕÞÞ@S¬²â—_ž„„üśυ ‡³´Ô‹ ’øk……ÅoØp »¾ãpÈÙ³ßN›æJ¥æîß™”T0lÆ FF$þº@N%$Þ`0šëë[y ðx¼Æ‹?ª«+I7<ðEYYô+WbÃÃß3™œ œ6a0Z¨Ôܤ¤B‹cn®ãáñyv¼ÙÇçHeeãùó‹F²ïàúÛ¢£SæÌñèÑwd¤æA¯ù믋]DÁ4‡Ã៞à)•À€î€<ø2;U±²²è--LA‰ææºööü·©B ƒ¸\t÷î—/Ç"Š¢ˆŽŽZRÒ^ÞŽššZ|ýú›‡“˜L¶¯¯Ëœ9#GÚb¥u››™«Wÿñ×_¹\”HÄi{ëÖJl©²²ºË—ãnß~Ç`´LŸ>äûïG9;› ¿4›Í½v-î?Þ¼zõSׂÙ@•D" hdgGÆrîA²Lf%%N™r‚ÿ<·wKGIö…^¼ø´hÑ.Å®ïx<ŽLÖ1ÂæþýË;üÜÜ,$ûŠ ¨«köñ9R[ÛÄfÿ¯i0‘ˆŸ>}è©S ¤踆†Ö;w¨7o¾ËÈ(57×ñ÷÷ðõu©¯oŽÏÃzºÖ×7kk«ÖÔ4awŬ[7~Ë–É© K›7﬷·mpð×bîý‹Å)-­ãuå}Xh/5O&kÉ66d˜ÄÚ3þ¹ØØ,‘Mìq8Š¢.|7uªKït¤àA×Õ×7ó'å ªyå/H$‚‘Ñþ¤¼¹¹Žµµ¾ªª¢´£ýTK sõêë11é|-1q7n,sq1½}û]XØ{­|ð`“o¾1m𫆆2oÁ’’Ú ~Çú—~^ ‡‹ßUVVÿûï/Ÿ„†R‹‹kMýýÝgÍrÓÔTÎή8räÿuPMMÉßß}ÌK1e©~ùåiHÈ3E|PïÒ¥Þ0Í|Q{©ùââZ,µ*ÅÔ|k+ëÊ•¸E‹FÀTPP=bÄAáÃássÝÝ»§ï(•Ø€î€<0á¼¼˜Ñ6ïiG ú¸ÒÒºùóÏçæVò—!ñFFZUU x<ÎÏoÈ×_S<<,LN.Z¸ðƒÑÌbýoA‰àìlúáCµµÞ’%£æÌqoï#\FFYPPø»wyx<Â墂»vmi{*+’’¨ji©º»[ØÙ`SÝ­­õ¡%ƒüZ¿þÏû÷?`ßåH_~™'ÁõgeÑ}}O651…©¸”¨ÔÝjjk"¼y“=gÎo"„8NY™ô÷ß[ÍÌàJ-g¸\ôõ묰°øGR8®½¿¿{pð“ìl:oSãp8¬ /‡³¶Ö§P,=<,‡ ³ØÜ³f~÷.÷ÿ›àÍÍuBB@ŸÐ5JÍcyy‰ÏãÉF—JMIDATÊ¢ûøÑÐPZ³fìâÅÞpq”)ûöE\ºË?ðF„D"êêªîÙ3Ã××…×Þ/‚½¡©© ËÈççWVåçWT×`£+2Y+.ojªcf¦mb¢mjªm` Ù ©ÆG’ñxü¤IN0˜ëÃRRŠ,L£cp8Üþý3¿þz˜È)WOž¤®Zõ‡Ãå¯Ì€-§§§vòdÀèÑíí9ÕÕGŽ<ºuëã-® @X¿~ÂÆ¾ª4F+çåÜõõÕ]\Ì jŸôðaÒªUð.»11›%µò’’ÚÉ“OÔÖ6‰¼q›@ üðÃç}~ÍÍLŸ#¥¥uí  ü!f÷ïÂÄg9UUÕxï^Bh(5#£Tø·x<AÐÙ³ÝLMuâãóâãóZ[Yd²V;žB±tp0²·ÿ©­Í·EÑùó=wïž¹K )Xj«2ÿÅy<ÝLÍÿýwÆÂ…¿#B à”•׬ùjÉo(å' ZZ˜ƒïjnnã=B"H$ÂÆ–,ñ†¾ä¤àÔp8ÜÒÒ:^ÓW¬jdQQMUU#‚ D"ÞÐp€‰‰–©©¶©©¶‰ –š×24 ÁÊÛ¶…_»öÚÆFÓ¦I~~®©ˆ äËÓ§i+W^ãpPþùï<~×®iË–ùÿê—_ž?þ ‡Cø ×üǽ{k==­…g³¹W¯Æ=ÝÖÆÈÝãp¸!CÌÆŒqHI)NK+)+«CDWWÍÉÉÄÉÉxð`“ÁƒMÌÍuà ¡¾ŠÁhutÜÎáp ¼££ñ“'?HjÍuuÍS§ž,*ª¹Ÿc””HïÞíÔÓ]. ô[qqY;vÜËÊ¢#B à„¾qDÁáp[¶LÚ°¾Â‘o»vÝ¿z5Nä&Æãq>>ögÎ|£ @üð¡€JÍÏKHÈollÓÒR©­m^„HÄkh¨;6gÊçžô_í¥æKJj±™—š×××00ÐÀ²ÒóýÐÕ«¯wíºÏ»b’H¿`ÁðÀÀqí½#4”ú÷±…‚‘Ãá|÷÷Æ´µU¥Ð]‚2‡ÅâÔÔ4Òé j6CmÞül¨ma¡×…’Ê œñâ‚ 8bjª½iÓ¤™3Ý ÐGŸñÅ4:‡³´Ô‹‹ÛÆÿ ‹ÅÙºõÎ;ñbN$aæÌ¡'OÎxüÅ‹OÛ·‡Ô´·¬‚ÁÂB7ÉÝÁÁH²¥ÀŒ›:õdRR!‚ ÁÁs<%²Î¶6ö¼y¿}øPØ^þ‡Ã)(ÚÚØ+WŽÞµkºD^ô1uuͱ±´ØXÚ³gé <¢¨@G;wVi#Å A7M˜œž^ÚÞå‰HÄkk«^º´”Wa†Ãá~úTvòdÌÓ§i"O/Øtø1cÏ30€{¶@¯êàç‘©ù"/^ü‡Édó¯DÂãñø… G¬];¶ƒm{€ÄMšôKjj ‘ˆg³9ÇÛìÞ=}ð`iH¤à<.4͈ime!¢©©ÂËËw05ïåu(7·û‡Ãápˆ¦¦òêÕ_-]:JI‰ÔKï ô‡»wïË_uäÉOŸnâïZ—-»úúu–Èjü”•I©©xl ªwì¸÷üùG/~ÙôôZZ0—§Ÿ:}úù¡CQêêJÉÉû$r’áp¸K–\~þü#ï{&"O"™L‡ƒâñ8CCMC{{C}CWW³î¿(èø\49¹èåËOÏŸg$%r¹\EEb[‡C ¼xñ#|k(§JJj)”ýâ‡ý‡ÃíÚ5íûïGñ\¶ìjttJ{ßd#ŸËD÷왾`'ÜŤ®¥…YTTSTT[TTS\ŒýW[TTSYÙ€ ‘ˆ70Ðd³ÑŠŠz‘{5‰DÀãq ŽX»ö+(ØËRS‹'NüA++=è¹  ï<è D¦æ‹ŠjZZ˜H»©y] ekë­--¬ÿ® ‡Ç#JK—ŽZ¾|4V277·¡¡Aï tEk+ûðáWTj‡#ñX£9A±•Âùq__û5k†#RYÙ´s糂‚zlAAÅΓؙR`Ù~ð?Þ†Åâܽ›~ëV2“Ùn ~‡Otu5ìæ{´²²RWïÖ½Ò'--­›a€ÎÊÍ­Y³æáôéW®&‘†„¼yò„†ýŒÇãôõU­¬´Í̘›k™šjššj*(H¬r—¼#NNNÝ\Iuuuqq±Dâ‘}m‰‰e ¥ïÞÕÕµ 2z´å?ЍÜzN÷÷[ìlÿðaÆÙ³ï¾ødAQdÂÛ5k<±³G@@(¶õ¿hÈ£õëGÉj݉ÈŽî4dJk+ «xY\\ûë¯1¥¥ubžL àI$Â÷ß{EVW‡†½$$äÍ›7‹ 4ÉŽ@€ïó>“Èè€, J;$@SSÅÙYÅÙÙ”ÿA&“]R‚MùüÿÌÌò¿þúXQÁàrQ§§§.”G°Dm]]KHHÌ… ÿ,[6jÙ2ŸÆÆÆ–––¾ô9¤CQôÑ£tUU…©SðxœŠŠ¨ª*àñx€SV&áñ8UU§¦¦€Ãá´´”‰D"“ɹÿ£ž““!‡SUU@DY™H$â‰D‚’A55A””H$žH$ÉjD"1)©œÁhsu5Ìϯ«®nâpPAH$‡'å‰D|^^»»©PàxƒUUU,–ð®ÛéõÔÖÖjjj*(@o«Þck«§§§:}º‘(ëï«W¹--¬o¿u33`f6ÀĤ7ºXË©ÖÖV‰|“Êd2ëêêtuu»¿*Ù7`qÌ›1clÉϯ/NJ*}û¶ÈÛÛRÚ¡õÙo±³}RR™®îç°H$¼¢âç»pÔÕ°©ë x^[K<ÿìYöôéƒ**šøóï8NA ‹…r¹¼NãD====5]]Õþ)˜1c²2ÜG(ß$5Ò)JJ$[[²­-A£G‰2‡Ãår¹§Oÿ}éqΜÁóç…ŒpOc±8FFšü1Œ¤F/dÌ‚ý‹Å))©-.®¡RsƒƒŸŠ2×ÐPš={ÐìÙ.®®0|‹Å)*ªÉÉ©ÈÉ©ÌË«ÌÊ¢ggWTU5 ‚Ã!$ÅâΘ1ôÌ™…]~ 6›çì쬭­ÝP%µÐY‘‘I~~®ÒŽ¢ß)++ËÉÉñòò’‘õÐÙߺs¶¿w/aíÚ‚¨¨(’Éêff:FFZFFšFFÈdMcc-CCM åî„dPß!´¶²¬­þL àI$bk+‡Ã™™éP(–..¦x|Í”)#õõûÅ×®@Á¨ú˜ú‰`a¡ka¡+j ¼ ­«k¾té}dä§óçU† ³ê…ü"‘VVzVVzãÿ¯½{Šª|øþ,—‘‹ wPQå·r1u4ÑÇ[iÞ‚,µÔ̘1Á'q´£±q2ï!7BÑLA¼_B4ER„LÝE‘…Ýçýã±ówÏYØ]Xü~¦?–Þç<—ïs8=ž=õÿŸ=SÞ¹ó°´ôŸ‘ꕆõw0C†øŸ<¹ÄÇÇ™ûâsW^®`ëï ±±±V*ÕjjooÑ#<Ü/,Ì/,¬»““ùïŸ"ðñ20,Áëëþý*kkˆ†—baa!•Z²ïwõõu~ýõ^áá=‚‚¼ÿ÷?¬¿CKØÙIe2™Ì§­+Ð NøFJè`ÊËå„KKI@€ç A½BC{„…õèÕË _& F…%xxuUT(ÔêíV«©J¥¶±± é6`@ψ¿°°nn/þ^XXˆG@˜5??×ýû? öíÔ ŸíÓÁ<¼ºîßW¨Tj/¯.ö0À/,ÌO&óÁ§M:$ö8ʶ®¼r°¯®9s†'%MrwwhëŠ@Ç„~áÕÒ­MÖßoݺÅ7©ýB‡»wïΜ9“RkoooŠŠ¶ˆŽ¶°&\¹rÅÊÊjß¾}Üöììl©TZTTÄ~¬­­]¼xqHHˆ½½ý믿¾fÍšÆÆFÒ¢~“1TK›$‘Hnݺe²Ã½ X„46ê3}ô,–Ÿ??¿3f<|øÿÎÚÚÚ„„„‡¬^½š…“íÀ¾á3vìXݱç×ÉÉi„ wîÜѳò‚1k«ä·~,0kŒÁ|'ÎîÝ»Ã|õêÕÖÔœ4•´æþ©En Î|CËÞ0mÚ4þšUsýߌà6sŸ;¸z€ Kð¦Ö¥K—/¾ø¢¹{8p`Ò¤Iׯ_7FÅŒ5!444111..®ªªŠòäÉ“ùóç'%%½öÚk„§OŸFDD\¸p!999??É’%ééé£GV©T-ë·³gÏV¾Ì°*--uuÅÇ™M„EȨŲÀ”——ïØ±£ºº:,,Œ•üÎK—.­]»ö?þXºtiFFFTT”Jõâ+ËÊÊ ¸b E^^{­;öÜq+**Nž<©V«cccÅj«gäŒ|Áú´l’‚±™ïÄ™8q"KïÙ³g !\˜e2™Á›ÃgÖj;ó -“™™¹gσנIæ>wpõ€¦ܸqÃàÅ–””°9ȽÐaüøñÏž=ÓçmKG Y(¥õõõýúõ›3g¥tÞ¼yáááJ¥’½'>>þ7Þhlläöª©©ñóóÛ¼y³ö!šì BHIII«Û¤‹Ž:éè 999?n'å˜!¾ÖO ®X!S«ÕÆ [¾|9ûQ,œÛ¶mcûŽ3&11‘ûmZZÚØ±c¹2uÄ^ã¸ååå„'OžÖV£½‚13AòÅêÓJÆ«yEEÅ©S§ÚO9¦dÖÇPµÕ ;iÍ=\;Ï-ÎöÚÅ5´„¹s纸¸TVV¶ æú¿ÙxÁ3Ç̃9öƒ¹Ï\½h0Ç«ƒ»à ãàÁƒ>>> …‚²k×®ÀÀÀÚÚZµZ½aÆ   ‡Áƒçää°*êø´ã¯¿þjggçå啜œÌ6>zô¨sçÎ:u4h!ÄÓÓ“ü÷©ÉãÇwïÞýôéÓ‚;J$’ÔÔÔ   77·äää;wöìÙÓÉÉéË/¿dohhhHHHðððpwwOHHhhhøàƒþùÇÃÃãÂ… ”Ò-[¶¸»»geeUTT>|Ø××—¢}7÷¢ººZ*•Κ5«¼¼œ]­þûï¿”ÒÔÔÔ;wÒ—oÙ`¯ÇŽ{âĉÊÊJÁ !ÑÑÑÕÕÕÛ·o'„LŸ>½ººzË–-„GQJ×®];eÊ”»w…-Y²dåÊ•ãǧ”fgg;::†……QJ/_¾lkk[[[K)‰‰9räíÛ· ûõë·bÅ ~MØ#zÕj5·þÎjË5³dÉBÈW_}Åma×Ö>ÔèØsçι¸¸´ ß!W¯^}ú2±Áb¥=º¸¸øüùóþþþ+V¬Ð³½‚y „L˜0¡ººú—_~a.x±ãŠ1ñ]ðÚE…bÃï“+VÈd²Â¢¢¢ÆÇÇ‹íUSSccc³yóæÊÊÊüÑÊʪ¦¦&%%Epw.BëÖ­ãO+ooo6Ú#Eõ˜üd­›˜.]ºÔ¥K*Î3gÎxxx°}oܸáééyåÊJiUU•û÷'~™Ú±§¼ VWWߺukòäÉT$ØÚwÁkÄŒ63ùb.6Ê‚f»ð_‹ ÇÔ©S ŶmÛ!Úñ3Ò¬¡&¿ ǰG#ö'OžìÚµkCC¥4==]&“©Õj±Thw Fµc©q8Á.âkç¹ÅÙÞÄ¡e/Š‹‹;uê´cÇÚÔ¹Q¬™‚Ñå3^ðÌñîocÀÜ1ýÜÁÕ‹ÜБ`  iz.Á+ __ßàà`îrJ&“¥¥¥qoøé§Ÿt/Á×××ÿõ×_555*•êäÉ“Ü%é”)Sär9Z‚/,,Ô±#!$??ŸRªT*5^³7ôíÛ—û ô±cÇú÷ïùòe{{{¥RùùçŸ'&&Z[[+Š”””qãÆ±}---ÿüóO¶KVV–¿¿?¿&ìõâÅ‹ !7oÞäÚÎ5Q«Õ'N´´´Œåw w¹ÏwöìYWW×ô"6XüVPJ÷ìÙãïï¯g{ó@ÉÍÍ¥”²'`–””Bp£`Œ‰—àµ;Š Å†ßŠ>}údee±ß^¿~{­½—\.·¶¶þöÛo …Z­~úô©J¥Û‹P`` ö´)ªÇà'³ÿcyîÜ9WWWnßO?ýtéÒ¥”Òôôô¨¨(2cO_ªµµudd$÷ìí`k/ÁkÄŒ63ùú—޳-ÜkÑ““£1]aŒYCM¾‰cÀ‰CµÎ´žžžÇ§”Ž7.99™ŠœÃ;j-ÁkÄ’8±.âkç¹ÅÙÞÄ¡å^¬_¿ÞÑÑñîÝ»ºÏ‚ÍìF*/xX‚g0wL?wpõ¢Kð D`0]ºt™3gεk×>ùä¶¥´´´ÿþÜ‚ƒƒu— •J‹‹‹ÇŒž––Æ6ÖÔÔ4448;; îÒ·o_±B{äÿ5SVVæåå%‘H$ITTÔ;wBCC;wî|éÒ¥¼¼¼·ß~;444///''güøñ„¨TªÞ½{³ÝýýýÙs«¹š0—.]>|øêÕ«Åš‘‘‘››{âĉÌÌÌììl®===Ù}å|W¯^å®g¿1‚WÉDh°ö`Öœòòr=Û+†ÝvdañÒ™Vã:6¶‚¥¶õÉßÿÍ5'((èwÞÛËÙÙ9''çüùó¾¾¾‘‘‘§N²°°Ü¡{÷îiO+#¥c èž\„’’V¦Žp†‡‡s?N›6mß¾}”RÁÏV Æž;˧R©ÌÍÍõ÷÷':ƒÍ'3ý“¯ÿx±íúdUÇp°ÚŠ=„G¬9æ5k&ŽA'Ž6KKËÉ“'gee=zôè÷߉‰á~¥ ±nçÓK]¤]‚Yç¡5xh,XúÑGqg`ÁÊ 6SGçóu€àu˜;œ;¸z€ KðsïÞ½ 6Œ5jÑ¢El‹OAA÷†k×®é.¡®®núôé ùùù7nd=:f̱]ص àŽú`w—³k\…Bqþüy ‹qãÆegg‡……½ùæ›ÇŽËËËcKð–––¥¥¥l÷Û·oûøøðkÂ:thóæÍ»wïÎÉÉÑnBEEE\\\JJʰaÃ’’’æÎûøñcö«˜˜˜U«V±[H!ÑÑÑ»víJNNŽŽŽnn¿é¦=X »?…R\\ìíí­g{Å>¼^ã:6¶‚¥¶õ‰··wYYÛrõêÕ¯¿þZl¯ºº:µZ½oß>¹\>{öì·ÞzK.— îΟŸŸö´Ò1R:èž\”ÒM›6±äBbbbV®\É…“R[[»víZ~ C‡}úôééÓ§;6iÒ$~i:b/FÏ`ëøŽmÚªÿx±íúdUÇphüß©žÍ1¯YC0q 7qÄL›6mÿþý{÷î:t({È£ ±nçÓK=»¨ä¡5xh-,,vìØqæÌ™­[·²-‚•l&Ñ/º x掱OøW/Ð1ˆß /èó •J5jÔ¨U«VÉårOOσRJW¯^íîî~àÀÊÊÊ#GŽ4ù,x…B!‘HŽ9R[[Ëžå’ŸŸ{ÿþ}v± îHµ>k¯ý:..nêÔ©eee\°`¥tß¾}öööìáǎ³··—Éd\Kß{q#G–––Éd²åË—‹Õ*)))00°®®ŽßµZ=a„ÈÈH•JE)U*•ÁÁÁÑÑÑì·Ož<éӧψ#Ž=zóæÍÄÄDBˆ»»{}}}sû5óìÙ³•/,VÚˆ#JJJ.^¼°|ùr=ÛË=ªrÛ¶mUUUb.x±ãŠ1åƒh;Š ÅFc܃ƒƒ‹ŠŠŠŠŠ† òñÇ‹íUWWgkk›™™ùðáí[·ÚÚÚÖÕÕ îÎÐúõëùÓªW¯^ìÐÚ#E›šüb)/0ååå¹¹¹'Nôõõå”…322òÈ‘#ÅÅÅYYY2™lÈ!ÏŸ?ç>þü   #Fð¤;öDè¶/*lÈ 6°YÉ×¼t˜Õ‡ý‡Ã³†šöA4˜8†š8Ü!4DC)mlltww÷ðð`ÏÚ¦âçpÁ?sº¨q8Á.2£ÜâloâÐj¤wÓ¦MlmŽý¨]y±f F×4ÁÃhÌÓÏ\½hÀƒh:,Á4MŸ%øï¿ÿ>$$D©TRJ÷ïßïåå%—Ë•JåÊ•+{öìioo?xðàŸþY÷<¥tݺu...ݺuÛ¸qctt´³³3{;#¶Ø­½£»»;Õc ¾ººzæÌ™ÎÎÎ]»v3gûÂÕªª*+++ö‘µµµR©tñâÅÜärùûï¿ßµkW//¯… ÖÕÕ‰Õª®®.00011‘ß„´´4þcâ/^¼haa‘™™É~¬©©Y´hQ¿~ýlmm{÷î½lÙ²ÈÈÈwß}·YýÆ5_›Ø`±Ò¶oßÞ£GWW×Ï>û¬®®®Éö644 :ÔÞÞ^G'Ó—/Ç5!v\1¦\‚ì(*~Ÿ<þ<>>ÞÛÛÛÉÉ)::Z¡P°í‚aÛ³gOïÞ½¥Riß¾}³³³wW*•ü566¦¤¤øûûwîÜyðàÁìþ&*4RTçˆ\¿~_,}90ݺu‹‰‰yðàÿ \8íììd2ÙW_}õìÙ3Âsss !?üð»îØ‹-ÁS¡`ë¹f%_ÿñÌ*¿>üè?&˜5Ô´Kð˜8†š8\ ÚKð”ÒyóæuêÔ©ººšÿíTv >©ãÔÜ.jo¹ÅÙÞÄ¡ÕH¯Z­ŽŠŠÒqnkf‹£Ûúàa žÁÜ1ýÜÁÕ‹,Át$*ò×8………666}úôie9·nÝ À¤k.¥R™ŸŸ?hÐ £Å£#xˆæ·±±ñôéÓÁÁÁ...­©Œ¡ÊWG›œÁ 2k!•••·oß:th+ëc¨r õ–-[VVV–‘‘Á~lWaÛUnq¶u*xÈ ƒ~èpõí„U[W  R©ÔØëï`.ž?^QQ‘ššºk×®¶® @Óðu¬„âèè8wî\ÓÂÇ0ˆ6É*f h»páBDDĬY³†ÎmlW©@n¡M xÚpõíDÐ4C=ˆ õð €ÀƒhÀáA4Ð&ýmW î‚0 ,Á–àŒKðF%x£À<€QXµũ\./((hëZJ©K+--½wïž hŸêëë U”J¥ÂŸ0 æg{Пa¯4Ìæ´!þ€6‡%x€¦999YZZ¶u-^pss“J¥­,D"‘¸¹¹¤>ퟕ••££cë˱µµuuum}9ú0Hnq¶‡0È•†¹ÃÜ6g¨«h$¸ÍÀð,x£À<€Q` À(°`ÿŒJsõ†¤fIEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMPSVITypeInfo_8hpp__incl.map0000644000151400015140000000003511653571065017574 00000000000000 XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMNodeIterator-members.html0000644000151400015140000001233511653571065022521 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMNodeIterator Member List

This is the complete list of members for xercesc::DOMNodeIterator, including all inherited members.
detach()=0xercesc::DOMNodeIterator [pure virtual]
DOMNodeIterator()xercesc::DOMNodeIterator [inline, protected]
DOMNodeIterator(const DOMNodeIterator &)xercesc::DOMNodeIterator [inline, protected]
getExpandEntityReferences()=0xercesc::DOMNodeIterator [pure virtual]
getFilter()=0xercesc::DOMNodeIterator [pure virtual]
getRoot()=0xercesc::DOMNodeIterator [pure virtual]
getWhatToShow()=0xercesc::DOMNodeIterator [pure virtual]
nextNode()=0xercesc::DOMNodeIterator [pure virtual]
previousNode()=0xercesc::DOMNodeIterator [pure virtual]
release()=0xercesc::DOMNodeIterator [pure virtual]
~DOMNodeIterator()xercesc::DOMNodeIterator [inline, virtual]
XQilla-2.3.0/docs/dom3-api/DOMLocator_8hpp.html0000644000151400015140000000624011653571066015770 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMLocator.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
Include dependency graph for DOMLocator.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMLocator
 DOMLocator is an interface that describes a location. More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/DOMUserDataHandler_8hpp.html0000644000151400015140000000651111653571066017374 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMUserDataHandler.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <xercesc/dom/DOMNode.hpp>
Include dependency graph for DOMUserDataHandler.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMUserDataHandler
 When associating an object to a key on a node using setUserData the application can provide a handler that gets called when the node the object is associated to is being cloned or imported. More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/inherit_graph_5.png0000644000151400015140000000331711653571065015756 00000000000000‰PNG  IHDR“(uŠ_ôbKGDÿÿÿ ½§“„IDATxœíš}HS]ÇÏ}æjLÂÂåÔ©HY І½˜õ‡­6"°tE ×½Ñ ”´’5ìFýWRQ‘ÐJ¦¦”Á*–¬7$Zw#„ij³÷®í®Éœ;Ïçy.·;7_è±çÊýüõ;¿{¾çžßùîœ;î†AùëOO€gŠðÎqÞ9®Â;ÇU’Xí3gÎtvvþ‘©ð$ ®®níÚµÌ Û9§ÓÙÝÝ]VV6³â‡–––½{÷²’lçeeeÍÍÍÓ2%ž aXl’ÎqÞ9®Â;ÇUxç¸ ïW™±Îa rss5×ëevƒ:®¸¸xΜ9+V¬8þ|$¡µ‹-b½‹W*•†õôô°§™¶Ò3Ö9ÀË—/=ÏçÏŸoݺå÷ûKJJ|>º–/_ÞÕÕe2™Þ¾}«×ëïܹ#—ËGGGQ‡þþþ÷ïßÓC‘$ÉzAg2muýü•J¥R© ÷¸ÝnºF׬Yc0PS«Õ–——G"ºEQ¹¹¹×¯_GZ…BqòäIújcc£R©¤Çd þ_°X,¬äTö܃d2I’€¦¦¦Å‹ƒAÀÈȈN§“J¥iii:ndd¤§§ð§OŸæääØl¶Ó§OçääÌŸ?_£ÑÐÿX £££¨¨H$-X°àöíÛ€H$2¦Ý"6faØ>|ˆšf³Ù`0ºCrr²N§3›Í¨©R©š››á¿fkkkuuõ¸+ì·±±‘Žív»ÏçÛ¹s§D"ÉÊÊÒjµÃÃÃÌÎv»}R0Õ=§ÑhvìØ144$•Jß¼yƒ’&“©ªªêÓ§O8Ž—””œ8qÂív”Jå³gÏŒFcAAŽãN§³´´T«ÕÆSQ5{öì«W¯z<ž›7o&%%QuáÂ…1å>ŸmV b¶EWW×ܹs!„è3çõzYE½xñB*•"mwwwzzú»wïаb±øû÷çGàW „ÌzS¥V«+**z{{q/,,4ÌÎE%Xm0Öž›¢s$IfeeF:™ŸŸïñxPlµZ—.]Š&‡ã8„pÉ’%mmmèê‡è8VE„P(¼xñ"I’Ñh4ŒŽŽÆ“'¨v²Î½zõJ"‘ÐÚC‡éõz¡Ùl–ËåÌ1ãíf½Ì8 —Ë…nÔÖÖ–——Çì0n-¿Í9a}}½@ øúõ+‰DÌJRRRÐäÂá0ºêt:cljUAív{uuurrryyù£GÈTËrîîݻ˖-CqzzºÕjeI®\¹²aÃZk³Ùòòò¢Ñheeåµk×à¯ÎùœcÖËŒ¡PuÃq\$1;Œ[ËïyÎ/_¾¼nݺÚÚZ:)‘HèzH’|ýú5Ê …B@fff?Ê8ŽsçÎÅS…B¡h4ÚÒÒBÄž={6mÚDD<ùAÆlܸ5Õju}}=ýM M&“B¡ 3«W¯v»ÝjµVVVNü^¨^f,•JÁÇQ²··W&“ÅvžSq.îÞ½ûÈ‘#MMMOž<éèè@ù-[¶èõúÇ ECCSUSSsêÔ)—Ëår¹><00O…aØúõëïÝ»ç÷ûÃá°P(‹Åñä?~ü¸qãFl ðz½CCC_¾|yþüùæÍ›ûúúŽ?Ž. †oß¾UTT<~üØív···—––Êd²ƒÒr@PUUµÿþ•+W¦¥¥± Î$ÁŠ …ÂmÛ¶=z´¯¯ÏårÕÕÕ©ÕêÉ.;ÖœÈiyéÒ¥ââb´ÍÛÛÛ322‚€úýþ]»vÍ›7/55uß¾}Á`H5<<¬Õj333SRR¶oßN’$ÊǪ „‹eáÂ…³fÍÊÏÏ¿ÿ~9ó̘Ycvv¶Z­fìBŠ¢jkk ÅbqAAÁÙ³gþüIkÑ1`³Ù ¬|¼•Œ7!A555©©©ÇŽ …B¬ c–k[·nð¿Ïý¯À0Ìb± khfò;”™ ïWáã*¼s\…wŽ«ðÎqÞ9®Â;ÇUxç¸Êÿqîìì”ËåÓ?žIÁvnÕªUd< P©TÙÙÙ¬$û½%WàŸs\…wŽ«ðÎqÞ9®ò7z˜6÷B™ÝIEND®B`‚XQilla-2.3.0/docs/dom3-api/classxercesc_1_1MemoryManager__inherit__graph.md50000644000151400015140000000004011653571065023605 00000000000000a89f5c8ff7029bea7811a73c8e24c18fXQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMImplementationSource.html0000644000151400015140000002147311653571065022643 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMImplementationSource Class Reference

#include <DOMImplementationSource.hpp>

List of all members.

Public Member Functions

Destructor
virtual ~DOMImplementationSource ()
 Destructor.
Functions introduced in DOM Level 3
virtual DOMImplementationgetDOMImplementation (const XMLCh *features) const =0
 A method to request the first DOM implementation that supports the specified features.
virtual DOMImplementationListgetDOMImplementationList (const XMLCh *features) const =0
 A method to request a list of DOM implementations that support the specified features and versions,.

Protected Member Functions

Hidden constructors
 DOMImplementationSource ()

Constructor & Destructor Documentation

xercesc::DOMImplementationSource::DOMImplementationSource ( ) [inline, protected]
virtual xercesc::DOMImplementationSource::~DOMImplementationSource ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual DOMImplementation* xercesc::DOMImplementationSource::getDOMImplementation ( const XMLCh *  features) const [pure virtual]

A method to request the first DOM implementation that supports the specified features.

Parameters:
featuresA string that specifies which features are required. This is a space separated list in which each feature is specified by its name optionally followed by a space and a version number. This is something like: "XML 1.0 Traversal 2.0"
Returns:
An implementation that has the desired features, or null if this source has none.
Since:
DOM Level 3
virtual DOMImplementationList* xercesc::DOMImplementationSource::getDOMImplementationList ( const XMLCh *  features) const [pure virtual]

A method to request a list of DOM implementations that support the specified features and versions,.

Parameters:
featuresA string that specifies which features are required. This is a space separated list in which each feature is specified by its name optionally followed by a space and a version number. This is something like: "XML 1.0 Traversal 2.0"
Returns:
A list of DOM implementations that support the desired features
Since:
DOM Level 3

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/namespacemembers_type.html0000644000151400015140000000425111653571065017435 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
 
XQilla-2.3.0/docs/dom3-api/StDOMNode_8hpp_source.html0000644000151400015140000003310311653571065017136 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

StDOMNode.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  * 
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  * 
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: StDOMNode.hpp 570480 2007-08-28 16:36:34Z amassari $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_STDOMNODE_HPP)
00023 #define XERCESC_INCLUDE_GUARD_STDOMNODE_HPP
00024 
00025 #include <xercesc/dom/DOMNode.hpp>
00026 #include <xercesc/dom/DOMAttr.hpp>
00027 #include <xercesc/dom/DOMElement.hpp>
00028 
00029 XERCES_CPP_NAMESPACE_BEGIN
00030 
00031 /* This class is a smart pointer implementation over DOMNode interface and
00032 ** classes derived from it. It takes care of reference counting automatically.
00033 ** Reference counting is optional so use of this class is experimental.
00034 */
00035 template <class T> class StDOMNode {
00036         T* m_node;
00037 
00038         static inline void INCREFCOUNT(T *x) { if (x != (T*)0) x->incRefCount(); }
00039         static inline void DECREFCOUNT(T *x) { if (x != (T*)0) x->decRefCount(); }
00040 
00041 public:
00042         inline StDOMNode(T* node = (T*)0) : m_node(node) { INCREFCOUNT(m_node); }
00043         inline StDOMNode(const StDOMNode& stNode) : m_node(stNode.m_node) { INCREFCOUNT(m_node); }
00044         inline ~StDOMNode() { DECREFCOUNT(m_node); }
00045 
00046         inline T* operator= (T *node)
00047         {
00048                 if (m_node != node) {
00049                         DECREFCOUNT(m_node);
00050                         m_node = node;
00051                         INCREFCOUNT(m_node);
00052                 }
00053                 return (m_node);
00054         }
00055 
00056         inline bool operator!= (T* node) const { return (m_node != node); }
00057         inline bool operator== (T* node) const { return (m_node == node); }
00058 
00059         inline T& operator* () { return (*m_node); }
00060         inline const T& operator* () const { return (*m_node); }
00061         inline T* operator-> () const { return (m_node); }
00062         inline operator T*() const { return (m_node); }
00063         inline void ClearNode() { operator=((T*)(0)); }
00064 };
00065 
00066 #if defined(XML_DOMREFCOUNT_EXPERIMENTAL)
00067     typedef StDOMNode<DOMNode> DOMNodeSPtr;
00068 #else
00069     typedef DOMNode* DOMNodeSPtr;
00070 #endif
00071 
00072 /* StDOMNode is a smart pointer implementation over DOMNode interface and
00073 ** classes derived from it. It takes care of reference counting automatically.
00074 ** Reference counting is optional so use of this class is experimental.
00075 */
00076 #if defined(XML_DOMREFCOUNT_EXPERIMENTAL)
00077     typedef StDOMNode<DOMAttr> DOMAttrSPtr;
00078 #else
00079     typedef DOMAttr* DOMAttrSPtr;
00080 #endif
00081 
00082 /* StDOMNode is a smart pointer implementation over DOMNode interface and
00083 ** classes derived from it. It takes care of reference counting automatically.
00084 ** Reference counting is optional so use of this class is experimental.
00085 */
00086 #if defined(XML_DOMREFCOUNT_EXPERIMENTAL)
00087     typedef StDOMNode<DOMElement> DOMElementSPtr;
00088 #else
00089     typedef DOMElement* DOMElementSPtr;
00090 #endif
00091 
00092 XERCES_CPP_NAMESPACE_END
00093 
00094 #endif
00095 
XQilla-2.3.0/docs/dom3-api/graph_legend.html0000644000151400015140000001133111653571065015501 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

Graph Legend

This page explains how to interpret the graphs that are generated by doxygen.

Consider the following example:

/*! Invisible class because of truncation */
class Invisible { };

/*! Truncated class, inheritance relation is hidden */
class Truncated : public Invisible { };

/* Class not documented with doxygen comments */
class Undocumented { };

/*! Class that is inherited using public inheritance */
class PublicBase : public Truncated { };

/*! A template class */
template<class T> class Templ { };

/*! Class that is inherited using protected inheritance */
class ProtectedBase { };

/*! Class that is inherited using private inheritance */
class PrivateBase { };

/*! Class that is used by the Inherited class */
class Used { };

/*! Super class that inherits a number of other classes */
class Inherited : public PublicBase,
                  protected ProtectedBase,
                  private PrivateBase,
                  public Undocumented,
                  public Templ<int>
{
  private:
    Used *m_usedClass;
};

This will result in the following graph:

graph_legend.png

The boxes in the above graph have the following meaning:

  • A filled gray box represents the struct or class for which the graph is generated.
  • A box with a black border denotes a documented struct or class.
  • A box with a grey border denotes an undocumented struct or class.
  • A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.

The arrows have the following meaning:

  • A dark blue arrow is used to visualize a public inheritance relation between two classes.
  • A dark green arrow is used for protected inheritance.
  • A dark red arrow is used for private inheritance.
  • A purple dashed arrow is used if a class is contained or used by another class. The arrow is labeled with the variable(s) through which the pointed class or struct is accessible.
  • A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labeled with the template parameters of the instance.
XQilla-2.3.0/docs/dom3-api/DOMElement_8hpp_source.html0000644000151400015140000004542711653571065017347 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMElement.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  * 
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  * 
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMElement.hpp 792236 2009-07-08 17:22:35Z amassari $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMELEMENT_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMELEMENT_HPP
00024 
00025 #include <xercesc/util/XercesDefs.hpp>
00026 #include <xercesc/dom/DOMNode.hpp>
00027 
00028 XERCES_CPP_NAMESPACE_BEGIN
00029 
00030 
00031 class DOMAttr;
00032 class DOMNodeList;
00033 class DOMTypeInfo;
00034 
00035 
00066 class CDOM_EXPORT DOMElement: public DOMNode {
00067 protected:
00068     // -----------------------------------------------------------------------
00069     //  Hidden constructors
00070     // -----------------------------------------------------------------------
00073     DOMElement() {}
00074     DOMElement(const DOMElement &other) : DOMNode(other) {}
00076     
00077 private:
00078     // -----------------------------------------------------------------------
00079     // Unimplemented constructors and operators
00080     // -----------------------------------------------------------------------
00083     DOMElement & operator = (const DOMElement &);
00085 
00086 public:
00087     // -----------------------------------------------------------------------
00088     //  All constructors are hidden, just the destructor is available
00089     // -----------------------------------------------------------------------
00096     virtual ~DOMElement() {};
00098 
00099     // -----------------------------------------------------------------------
00100     //  Virtual DOMElement interface
00101     // -----------------------------------------------------------------------
00104     // -----------------------------------------------------------------------
00105     //  Getter methods
00106     // -----------------------------------------------------------------------
00116     virtual const XMLCh *         getTagName() const = 0;
00117 
00126     virtual const XMLCh *         getAttribute(const XMLCh *name) const = 0;
00127 
00136     virtual DOMAttr       * getAttributeNode(const XMLCh *name) const = 0;
00137 
00148     virtual DOMNodeList   * getElementsByTagName(const XMLCh *name) const = 0;
00149 
00150     // -----------------------------------------------------------------------
00151     //  Setter methods
00152     // -----------------------------------------------------------------------
00175     virtual void             setAttribute(const XMLCh *name,
00176                                   const XMLCh *value) = 0;
00197     virtual DOMAttr       * setAttributeNode(DOMAttr *newAttr) = 0;
00198 
00215     virtual DOMAttr       * removeAttributeNode(DOMAttr *oldAttr) = 0;
00216 
00230     virtual void              removeAttribute(const XMLCh *name) = 0;
00232 
00246     virtual const XMLCh *         getAttributeNS(const XMLCh *namespaceURI,
00247                                                  const XMLCh *localName) const = 0;
00248 
00288     virtual void             setAttributeNS(const XMLCh *namespaceURI,
00289                                             const XMLCh *qualifiedName, const XMLCh *value) = 0;
00290 
00305     virtual void              removeAttributeNS(const XMLCh *namespaceURI,
00306                                                 const XMLCh *localName) = 0;
00307 
00319     virtual DOMAttr      *  getAttributeNodeNS(const XMLCh *namespaceURI,
00320                                                const XMLCh *localName) const = 0;
00321 
00343     virtual DOMAttr      *  setAttributeNodeNS(DOMAttr *newAttr) = 0;
00344 
00360     virtual DOMNodeList   * getElementsByTagNameNS(const XMLCh *namespaceURI,
00361                                                    const XMLCh *localName) const = 0;
00362 
00373     virtual bool         hasAttribute(const XMLCh *name) const = 0;
00374 
00387     virtual bool         hasAttributeNS(const XMLCh *namespaceURI,
00388                                         const XMLCh *localName) const = 0;
00390 
00393 
00414     virtual void setIdAttribute(const XMLCh* name, bool isId) = 0;
00415 
00416 
00435     virtual void setIdAttributeNS(const XMLCh* namespaceURI, const XMLCh* localName, bool isId) = 0;
00436 
00437 
00438 
00456     virtual void setIdAttributeNode(const DOMAttr *idAttr, bool isId) = 0;
00457 
00458 
00459 
00466     virtual const DOMTypeInfo* getSchemaTypeInfo() const = 0;
00467 
00469 
00470     // -----------------------------------------------------------------------
00471     //  DOMElementTraversal interface
00472     // -----------------------------------------------------------------------
00475     // -----------------------------------------------------------------------
00476     //  Getter methods
00477     // -----------------------------------------------------------------------
00484     virtual DOMElement *         getFirstElementChild() const = 0;
00485 
00492     virtual DOMElement *         getLastElementChild() const = 0;
00493 
00500     virtual DOMElement *         getPreviousElementSibling() const = 0;
00501 
00508     virtual DOMElement *         getNextElementSibling() const = 0;
00509 
00519     virtual XMLSize_t            getChildElementCount() const = 0;
00521 };
00522 
00523 XERCES_CPP_NAMESPACE_END
00524 
00525 #endif
00526 
00527 
00528 
XQilla-2.3.0/docs/dom3-api/functions_0x65.html0000644000151400015140000001475511653571065015671 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- e -

XQilla-2.3.0/docs/dom3-api/inherit_graph_4.map0000644000151400015140000000036711653571065015750 00000000000000 XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMXPathEvaluator__inherit__graph.md50000644000151400015140000000004011653571065024311 00000000000000266e57841f39dc82717e81f114a11e85XQilla-2.3.0/docs/dom3-api/DOMXPathNSResolver_8hpp__incl.png0000644000151400015140000001170211653571065020356 00000000000000‰PNG  IHDRÅuq²ÒbKGDÿÿÿ ½§“wIDATxœíiXWÛÇOBa±„UY´PŠD­¶Ê&àEADEYk‘ÍG±¯R¯*¨X«ˆ(ÐÊ E nT, ¨ˆ@©婈Ö"M-@æý0½æ“£ïˆRÏïÓ™{Î}Ÿû ÿ9ç̆‚ €@H‚ú®€ü£€z‚ Ô„L ž dB“ØÞ³gOEEÅ;I2¹rå ~SRO§¾¾ÞÔÔtS‚LH:;;$Œ’z˜ššFGGKJ LYYÙ®]»$Œpý!¨'™@=AÈê B&PO2!¸¾“[[[¬î:vì“É>^z“`pp0&&&&&æ³Ï>‰DØÂ_‚1.¾(ʶmÛ¾úê« .`Š500@çn …2þüóçÏKû*((8::^¸pA´ UUÕ„„Tmè`ppP,ÇÄÄ —––nß¾½°°PMMJ¥r¹Ü©S§ÚÚÚ455ñ‘íìì’’’X,–±±1öÇ–ŽÚG[eöº¥¥½d~úô)*¸ÑŒ¯Å›ÏwÝÝÝ<ïÙ³gõõõ;vìàr¹«W¯Fwùûûóùü-[¶TWW·´´\¿~=44TSSÓÕÕõÿ¦R­¬¬:dbb‚¿q… H||¼¡¡¡³³3`õêÕjjj‰‰‰c'#‰†‡‡i4ÚÐкžÀ.úŒ=ÒÑÑ =u꺩¨¨¸téÒ]»vUUUq¹Üû÷ï=zœ$PVVÀÚ²´´LOOïèèxüøqdddaa!…B‰ˆˆ¨¨¨èïï‰D4MAAF£ÙÚÚ&&&r¹\ô®Š½½=>ìüùóûúúrrrœœœ0£tp‰d.^¼H8ÝãINNnmmýã?222Æ0¾o>>mܸ-hkk³Ùì´´4làURRJKKËÎÎNIIikkÓÑѱ³³[µj¶\E±µµ-**rssÃKJJjkk³²²Ð³ŠF£EDDlذÁÊÊÊÊÊj´dTTTBCCccc½¼¼ììì"## ÌÌÌÜÝÝ/]º$c§\\\®_¿^[[‹nFFFæææ¦§§·¶¶ª©©ÙÚÚ~ùå—„ŽZZZJJJ===JJJ€€€€äääÀÀ@ …beeL§Ó¿ùæ›ÔÔÔÎÎN]]Ýèèhô¾èæÍ›“““CBBäåå—,YâííŸhh4šµµuii)~I üÙ³gød<8gÎìÏAˆ½½ýÖ­[…B!z“mTÂ(ãAÃC‘¸H^½zuWW|ÿé áý÷7¸)¾ÿ$¡øüB&POÊÊÊ...²ߨ§&“¹eËYŒoÔ„L ž dõ!¨'™@=AÈê B&Ï[êëëÃÃÃÇ?ÈÄ‚ÏçK%õ„½#ÁS[;ÙÐð…ººð]'ò~!ñJ~~!DW÷RRü—/Ÿóêª6pý!¨'™@=AÈê B&PO2z‚ Ô„L ž dõ!¨'™@=AÈê B&PO2z‚ Ô„L ž dõ!¨'™@=AÈê B&PO2z‚ Ô„L ž dõ!¨'™@=AÈê B&PO2z‚ Ô„L ž dõ!øÿéˆù÷¿sÿû_.¶ÙÚÚ­®®¬¨ø÷÷Öh4¹ÿü'@G‡9Š÷‡ iß{ý‡ÁbM.,¬ÃŸk½½ü^(&Bà|GÌÊ•–F“[³æÓqÎg¢õDÌÔ©l¶áç†GFÄ+VÌ÷Œ&PO£âá1_NNòøP© ‹©ººp²#êiT\]çJ_¬P(ùï$Ÿ ÔÓ¨hjª,XÀ’¢–-›ýNò™@=ŪUóðC”œÕÒÒH]}¬ï†à@=…“?>‰Åˆ»û¼w˜ÏûÔÓXLšÄ°³û„Fûû(Ñér_|Á~·)½ç@=½‚•+-Äb@£É98ÌRR¢¿ëŒÞk ž^ƒƒ)ƒ!qw—üœD¨§W  @st4£P€¢"ÝÆfæ»Nç}ç¥çw€ð#y8¶¶Ÿ=û›ƒÃŒçÏ;ßu.ŠjjjØæKzêíímll÷”ÞwTUÅ“&Ñ?ùDi´´´FÕŠÍø¥3AØ´ Ù°a •Jü„øƒåþýû¸~’‰à`(&Y€z’ yy¹wÂÄê B&PO2z‚ Ô„L&¼žš››×­[÷ÊjMMM _À»ÿþûï4íôéÓ˜½¨¨ˆN§s8œ·‘³Ó¦Móóóëêê£>‚ >>>***²Çojj"#ÓW3áõTXX¸bÅ Â]?ÖÔÔDËL&sÛ¶m£¹›››oß¾=,,¬»»ðâÅ‹ 6DGG›™™½½ÌñTVVr¹Ü–––ìììžžž¹s碙ÒÖÖvüøñ†††ñÉíõ@pttt\»v ™P8;; îzøð¡D¥˜ûààà¬Y³‚‚‚ ±°°zkY¿àáÇئX,¶²²Ú¹sçhõ û%{|¹wïÞ½{÷ð–ןÎ;§§§‡>æ;yò¤±±q?@$EDDLžšW__Ÿ‚‚BJJ —ËÍÌ̤Ñh}}}qqq„îYYY¹¹¹È˧,V~¥sÇˆŠŠÄÆÆâoµkÑøQSSÃd2ÇnÝ;ZL<€eË–õôôœ9s=‹ÐK—.mll¬ªªb±X111„Ʊ• =>½‰žø|¾¾¾>›ÍÆ·7sæL.—‹–¯\¹2gÎ4¿»wï"2cÆŒ³gÏ¢{°²´Ç“——?xð ŸÏ‹Å½½½###£¹»»»óx<äMõ„¹£ˆÅbWWW999|ßj×Wéi´ÖQËh1ñÊÊÊAÛÂç H~~>‹Å"4"cBŽžÙ½{·œœ\GGfa0øaOUUÍ]…0 ‡#GÚ A7nxxx(++[ZZ^ºti4÷ÞÞÞåË—£eü!Fß@^¥'¼;Jnn®ªªjyy9ƒÁ(,,Ÿ®!Dz:qâ„……ÅØ­c• câ466âÛB#ÔX__Ï`0ÒÑð°~<}ú499ÙÞÞ~ëÖ­˜QSS;(|>¿ªª µ£«]]Ý'Ož –;wîìÝ»w4/@ ‹OŸ>Íãñ\\\x<¡û/¿üâèèˆOlxxÐÚÚ*K/$ÜÛÚÚÂÂÂââ⬬¬¢££ƒƒƒŸ?>]“N A£G:;;Ý:ŠŒ1¥×ŽT@€ÆÆF]]Ý1Œ¯^\²ŒO###ööö{öìáñxS¦L9wîj óððxòäI}}ý‚ 6n܈?¢££Ùl6‡Ãáp8‹- ÍK 0Œ‚‚‚®®®´´4ƒ!Ý}||Z[[Ñ8è ›ÌÌÌ/^¸¹¹ÜPÔÛÛ‹Oxw±X¼lÙ2kkkt²b³Ùk×®‡®!p÷ ÊÊÊ\]]õõõ»»»ei}´˜éééX€ÿn|²µµ}øðauuµ‘‘ÑÎ; c‹„ù.))iöìÙèPÿóÏ?ëèè KžžžuëÖ©©©ihhõ÷÷ã»- ÃÃÃuuuUUU×®]ËçóQ»´‚ ùùùÓ§O§Óé3gÎ,**"trrrÂ'Ëd2§OŸ^TT„¶+‰/^¬¢¢‚HéIÂ=''GAAáÁƒ˜¥ººšJ¥¼í®!/ÿù_ÿú—··7~!1vëcĔоŒFÈÈȘ:uª¦¦æ¦M›¡ql1Hëé¥ÿÿÔÙÙÙÐÐß§ûÇÓÔÔddd$!eBãØ ïÓ™ššb– ò^õô!òÑGËb|]à|ysà|y»@=AÈê B&PO2z‚ ÁïƒÛÚÚÆ?ÈDD(J<®&Ðü•>Dv$ô¿·!¸~‚ Ô„L ž dõ!“ÿ@4Õ2lH¶IEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMLSException_8cpp__incl.map0000644000151400015140000000022711653571065017530 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMProcessingInstruction_8hpp__incl.map0000644000151400015140000000003511653571065021713 00000000000000 XQilla-2.3.0/docs/dom3-api/DOM_8hpp_source.html0000644000151400015140000002401511653571065016023 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOM.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  * 
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  * 
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOM.hpp 527149 2007-04-10 14:56:39Z amassari $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOM_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOM_HPP
00024 
00025 //
00026 //  This is the primary header file for inclusion in application
00027 //  programs using the C++ XML Document Object Model API.
00028 //
00029 
00030 #include <xercesc/dom/DOMAttr.hpp>
00031 #include <xercesc/dom/DOMCDATASection.hpp>
00032 #include <xercesc/dom/DOMCharacterData.hpp>
00033 #include <xercesc/dom/DOMComment.hpp>
00034 #include <xercesc/dom/DOMDocument.hpp>
00035 #include <xercesc/dom/DOMDocumentFragment.hpp>
00036 #include <xercesc/dom/DOMDocumentType.hpp>
00037 #include <xercesc/dom/DOMElement.hpp>
00038 #include <xercesc/dom/DOMEntity.hpp>
00039 #include <xercesc/dom/DOMEntityReference.hpp>
00040 #include <xercesc/dom/DOMException.hpp>
00041 #include <xercesc/dom/DOMImplementation.hpp>
00042 #include <xercesc/dom/DOMNamedNodeMap.hpp>
00043 #include <xercesc/dom/DOMNode.hpp>
00044 #include <xercesc/dom/DOMNodeList.hpp>
00045 #include <xercesc/dom/DOMNotation.hpp>
00046 #include <xercesc/dom/DOMProcessingInstruction.hpp>
00047 #include <xercesc/dom/DOMText.hpp>
00048 
00049 // Introduced in DOM Level 2
00050 #include <xercesc/dom/DOMDocumentRange.hpp>
00051 #include <xercesc/dom/DOMDocumentTraversal.hpp>
00052 #include <xercesc/dom/DOMNodeFilter.hpp>
00053 #include <xercesc/dom/DOMNodeIterator.hpp>
00054 #include <xercesc/dom/DOMRange.hpp>
00055 #include <xercesc/dom/DOMRangeException.hpp>
00056 #include <xercesc/dom/DOMTreeWalker.hpp>
00057 
00058 // Introduced in DOM Level 3
00059 #include <xercesc/dom/DOMLSParser.hpp>
00060 #include <xercesc/dom/DOMLSParserFilter.hpp>
00061 #include <xercesc/dom/DOMConfiguration.hpp>
00062 #include <xercesc/dom/DOMLSResourceResolver.hpp>
00063 #include <xercesc/dom/DOMError.hpp>
00064 #include <xercesc/dom/DOMErrorHandler.hpp>
00065 #include <xercesc/dom/DOMImplementationLS.hpp>
00066 #include <xercesc/dom/DOMImplementationList.hpp>
00067 #include <xercesc/dom/DOMImplementationRegistry.hpp>
00068 #include <xercesc/dom/DOMImplementationSource.hpp>
00069 #include <xercesc/dom/DOMLSInput.hpp>
00070 #include <xercesc/dom/DOMLSOutput.hpp>
00071 #include <xercesc/dom/DOMLocator.hpp>
00072 #include <xercesc/dom/DOMPSVITypeInfo.hpp>
00073 #include <xercesc/dom/DOMStringList.hpp>
00074 #include <xercesc/dom/DOMTypeInfo.hpp>
00075 #include <xercesc/dom/DOMUserDataHandler.hpp>
00076 #include <xercesc/dom/DOMLSSerializer.hpp>
00077 #include <xercesc/dom/DOMLSSerializerFilter.hpp>
00078 
00079 #include <xercesc/dom/DOMXPathEvaluator.hpp>
00080 #include <xercesc/dom/DOMXPathNSResolver.hpp>
00081 #include <xercesc/dom/DOMXPathException.hpp>
00082 #include <xercesc/dom/DOMXPathExpression.hpp>
00083 #include <xercesc/dom/DOMXPathResult.hpp>
00084 #include <xercesc/dom/DOMXPathNamespace.hpp>
00085 
00086 
00087 #endif
XQilla-2.3.0/docs/dom3-api/DOMEntityReference_8hpp__incl.md50000644000151400015140000000004011653571065020334 00000000000000d1c8605879a37a71d9987a9f736d15d9XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMLSSerializerFilter__inherit__graph.map0000644000151400015140000000031711653571066025220 00000000000000 XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMRangeException__inherit__graph.md50000644000151400015140000000004011653571065024315 00000000000000a202c7b07186fd9b17427472902725c6XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMLSSerializerFilter__inherit__graph.md50000644000151400015140000000004011653571065025120 00000000000000a752c01f3c5da0b57eff3f2d7b65b312XQilla-2.3.0/docs/dom3-api/DOMLSOutput_8hpp__incl.png0000644000151400015140000000735011653571065017112 00000000000000‰PNG  IHDRÅuq²ÒbKGDÿÿÿ ½§“IDATxœí{P×ÇO`xTò )öjP)Q|Í(p|!"hµP¬cåá#3WAÎTTh™ŽÖ™*£ ïŠaPKèh[%> ȵ QÚZÁ ’½ì5/¢=`Ÿ¿Îþv³ùî9›ÝM–ALXwÀ;è À è À è À‰µY£gffÞºuˬ)€7¥ªªÊ|ÁÍ«'‰D"‹ýýýÍš0‘gÏž566š5…yõ„ò÷÷ÏÈÈ0wÀD"ÑáÇ͚Οœ€žœ€žœ€žœ€žœ˜ýû)„……Qm9s椦¦²ÙlʨV«KJJîß¿/“É|||‚ƒƒ7mÚÄd2I_ooïÒÒRƒAm¿ÿþººº³gÏz{{‡……‘ zF•JURRrëÖ-¹\îææokk;jº1@oÁ‹ÐB(''ÇËËK£Ñ´µµ]ºt)))©¨¨ÈÑÑ!488˜ššêì윜œÌápþúë¯ÂÂÂúúúo¾ùÆÊÊ !ÔÙÙùøñcG†R*•b±Øxº'Ntuu9rÄÍÍ­µµõĉJ¥R ˜’N ™L–’’" ߨ¿oçeùXÊ|Çf³]\\\]]çΛ™™éååU^^N®:sæ ›Í>~üøÂ… ¹\npppnnnggç?þHn$‰¨P÷îÝ 4žîÎ;Û·o÷õõe³Ù|>_ ܽ{×ÄtZh4š¾¾¾7íïÛyY>–¢': cíÚµ555äbUUUbb"}l`±X›6m¢î„††ŠD"êA®›7o.[¶Ìx {{ûŠŠ êåóùeee£¦“J¥ÔÔLµwìØZ¿~=e¼{÷î'Ÿ|sòäÉáááQ½t©¯¯ŠŠ:wîœñ°ZFö®y±D=!„¸\nGGB¨¿¿_.—SsÇkmm%Û³gÏV©T?F þü²²²o¿ý6 àçŸþøã¯_¿nbºQIMMår¹~~~Ÿ}öÙÛÝ|ýè£ìíí—.]ŠR*•FÂþý\x±P=µ··s8„£££‹‹KKK‹Ö---3fÌ ©)Ï”ÉN­V߸q!äçç—˜˜XXX˜››kz:„‘礹\.Ùðññéîî6ыΔ)SBôo¬†ÂÉ5.X¢ž‚¨¬¬\¼x1¹qæÌúð V«/\¸°páBÊ088(‘HêëëÉÃÚxü¬¬¬'Ož‹ cÁ‚###&¦#·ìéé1¿½½l´µµ‘Ê0ŋޖ’Œ„ÕkG,EO½½½r¹¼§§G,ñÅ2™lãÆäª-[¶(Š={öÔÕÕµ··ß¾};55ÕÕÕ5::šr'§¼ãÇûùùÑ/\уSØÙÙ-_¾üðáÃ5552™ìÑ£G§OŸ5yýâÚµkƒƒƒZ§>*•ŠjçääH¥Ò?þø£   22Ò¯+W® ßEZaÇK¹þ´k×.²áîîÎçóóòòH‹½½}^^^qqqnnnGG‡——Wxxø† lllè„BaLLŒ‘à$ÕÕÕûöí+--ÍÏÏ—J¥ÎÎÎaaaŸ~úé¨éœœœ¶mÛvêÔ©³gÏîܹóöíÛ!OOÏ€€€ØØØ«W¯’"""öîÝ«V«©Ë¤£z;v,00ê²^´Â’³›–ñMw;vfý½ÔÆ»»»ÿ9Ï?I¥Ò„„„êêê1û¹ÈçŸÌú‰[Ê|¼€žpâàà56aÍ”ëoz ›ÍÞ³gÏØ„5S®¿ è À è À è À è À è À è À‰Ùï·ˆÅâ´´4sgLA¡P˜;…yõD=#0Ñ©¯÷˜6í…‹‹z¼ ù»™5¾yïß½3p8ÿÉÍݲví(¥pþàôàôàôàôàôàôàôàôàôàôàôàôàôàôàôàôàôàôàôàôàôàôàôàôàôàôàôàôàôàôàôàôàþŸN?;w–þþ»ŒZ”J{]\ììþÿ†4kkæwßmóòÒ~Ñ`)￳4x<ŠŠôcM©TÑׂ˜ôó~Ö¯BHÏKWBÖÖÌM›ê]€žô3uê>ß[ßk|ÑȈfݺyc^ÑÄôd¸¸L¦öþ±²bMåp`²ÓèÉ ÑÑót¿¬0Œ¸¸ãRÏ„ôdWWÇE‹xºCÔš5sÆ¥ž èÉ6̧QL¦Up°¯‹‹±·ÿÃ=cÕ*>}|ÒhˆØØùãXåz2Æ{ï±ÂÃ?´¶þÿ^²µe®\Éß’,ÐÓ(¬_¤Ñ!kkfdäl{{Ûñ®È¢=Bd¤?‹eƒ‰5ïË™Þ@O£0i’õŠ ²³³ 5ÞåX:¯Ý¿S©Tcðʽ GXØ¿._þodäÌçÏŸw-‡³³3µøšž”JeSSÓ˜—dé89iÞ{ÏöÃaçèâææfPO$¡¡¡cWÎa÷nbÇŽ[Yé¿CüåÑ£GZ82‰ääP“)€žLÂÆ†9Þ%L @ON@ON@ON@ON&¼žZ[[·nÝ:êf--- ƒÞ »ÿúë¯ÖÖÖååå”](ÚÚÚJ$sÔ¬ƒÆ|˜˜ØÝÝmd{‚ MßÒÒ‚£ÒÑ™ðzª¨¨X·nÞUOž%&&nÙ²¥³³ÓÃã¶¶–4~ýõ×±±±­­­ óæÍ;pày­\¹òƇò÷÷ohhH$‹-JKK3äÕßß?iÒ¤ÜÜ\™LVXXhmmÝßßôèQ½îEEE¥¥¥Äë‡,ÕÕH¹S8p!”••E7šµk„¾ñãþýûl6Ûxvr­¡˜tBkÖ¬éëë»téy‘–/_ÞÔÔTSSÃãñ:¤×h\ ºãÓÛèI¡Pp¹\>ŸOÏ7kÖ,™LF¶«ªªÉú‚˜9sæå˗ɵT[×K.—ÛØØ;vL¡Ph4¥R922bÈ=66V.—o«'ÊD£ÑDGG3™Ì„„zÍÚ5b4=ÊNZ Ťƒ‰DAŒŒŒ¹èõQVVÆãñô £àÑAGŽa2™]]]”…Åbч='''²>ò,„ÅbI$Ý8º^Aܹs'..ÎÁÁ!88øêÕ«†Ü•JåÚµkÉ6}“O£é‰îNRZZêäätóæM‹UQQ16]#ôééüùóAAAƳSëI!ÔÔÔDÏEFP©T¤Q,³X,½FÝht0œ?!„ÚÚÚrrr"""öîÝK]]]©¢P(jjjH;yÂápž>}JZ~ûí·/¿üÒ—J¥Òh4ååår¹|Û¶mQQQr¹\¯ûO?ý´bÅ za¯^½BI¥RSz¡åÞÑÑ!Ž=’‘‘‘œœüüùó1èšnaAœ>}zõêÕÆ³“˜S÷Ü!D !ÔÔÔÄápŒߺ¸LŸFFF"""233år¹§§gee%iqqqOŸ>‹Å‹-Úµký0ÊÈÈàóù‰D"‘,Y²dûö톼T*‹Åºxñbwww^^‹ÅR©TzݤR)‡¼`SXXøâÅ‹˜˜DŠ”J%¡o|¢»k4š5kÖ,[¶Œœ,†††ø|þæÍ›Ç kA Úõ‘HÍår{{{MÉn(f~~>ÑÆ?DŸÂš››ëêê|}}<¨×h\ 滓'OΙ3‡ê¿ÿþ{///ò¤¯¯oëÖ­ÎÎÎS¦LIJJ w[­V§¥¥q8''§Í›7+ Ò®ëEDYYÙôéÓmmmgÍš% õº ­ZµŠ^XVV›Íž>}ºP($ó/]ºÔÑÑ‘ÐÑ“–{IIɤI“þüóOÊRWWgeeuñâEswxý'Èï¿ÿ~||<ýDÂxv#1µ4Do“ ¦Nêêêº{÷n•J¥×h\ ºzzíÿŸž={ÖØØÏÓ½ó´´´øúújIY¯Ñ8äótþþþ”eÂ_, ÐÓ?‘É“''''›b|S`¾Þ˜ïózpzpzpzp¢ç÷Ác_0Q«ÕZ·«õè ~¥˜Ž–žà}Nàü À è À è À è ÀÉÿÌb€­/¨IEND®B`‚XQilla-2.3.0/docs/dom3-api/XQillaPlatformUtils_8hpp.html0000644000151400015140000000727711653571066017760 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

XQillaPlatformUtils.hpp File Reference

#include <xqilla/framework/XQillaExport.hpp>
#include <xercesc/util/XercesDefs.hpp>
Include dependency graph for XQillaPlatformUtils.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  XQillaPlatformUtils
 Static utility methods for initializing and terminating the XQilla and Xerces environments. More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/DOMLSSerializerFilter_8hpp__incl.md50000644000151400015140000000004011653571065020757 000000000000000f03656c718951afcee2fd1d06ac6297XQilla-2.3.0/docs/dom3-api/DOMDocumentType_8hpp_source.html0000644000151400015140000002370111653571065020365 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMDocumentType.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  * 
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  * 
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMDocumentType.hpp 527149 2007-04-10 14:56:39Z amassari $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMDOCUMENTTYPE_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMDOCUMENTTYPE_HPP
00024 
00025 #include <xercesc/util/XercesDefs.hpp>
00026 #include <xercesc/dom/DOMNode.hpp>
00027 
00028 XERCES_CPP_NAMESPACE_BEGIN
00029 
00030 
00031 class DOMNamedNodeMap;
00032 
00045 class CDOM_EXPORT DOMDocumentType: public DOMNode {
00046 protected:
00047     // -----------------------------------------------------------------------
00048     //  Hidden constructors
00049     // -----------------------------------------------------------------------
00052     DOMDocumentType() {};
00054 
00055 private:
00056     // -----------------------------------------------------------------------
00057     // Unimplemented constructors and operators
00058     // -----------------------------------------------------------------------
00061     DOMDocumentType(const DOMDocumentType &);
00062     DOMDocumentType & operator = (const DOMDocumentType &);
00064 
00065 public:
00066     // -----------------------------------------------------------------------
00067     //  All constructors are hidden, just the destructor is available
00068     // -----------------------------------------------------------------------
00075     virtual ~DOMDocumentType() {};
00077 
00078     // -----------------------------------------------------------------------
00079     //  Virtual DOMDocumentType interface
00080     // -----------------------------------------------------------------------
00089     virtual const XMLCh *       getName() const = 0;
00090 
00108     virtual DOMNamedNodeMap *getEntities() const = 0;
00109 
00110 
00120     virtual DOMNamedNodeMap *getNotations() const = 0;
00122 
00131     virtual const XMLCh *     getPublicId() const = 0;
00132 
00139     virtual const XMLCh *     getSystemId() const = 0;
00140 
00151     virtual const XMLCh *     getInternalSubset() const = 0;
00153 
00154 };
00155 
00156 XERCES_CPP_NAMESPACE_END
00157 
00158 #endif
00159 
00160 
XQilla-2.3.0/docs/dom3-api/inherit_graph_11.map0000644000151400015140000000026611653571066016025 00000000000000 XQilla-2.3.0/docs/dom3-api/XQillaExpression_8hpp__dep__incl.md50000644000151400015140000000004011653571065021142 00000000000000d44897047af512e93af0a3c158ded636XQilla-2.3.0/docs/dom3-api/DOMLSInput_8hpp.html0000644000151400015140000000606611653571066015731 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMLSInput.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
Include dependency graph for DOMLSInput.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMLSInput
 This interface represents a single input source for an XML entity. More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMNode-members.html0000644000151400015140000004466411653571065021021 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMNode Member List

This is the complete list of members for xercesc::DOMNode, including all inherited members.
appendChild(DOMNode *newChild)=0xercesc::DOMNode [pure virtual]
ATTRIBUTE_NODE enum valuexercesc::DOMNode
CDATA_SECTION_NODE enum valuexercesc::DOMNode
cloneNode(bool deep) const =0xercesc::DOMNode [pure virtual]
COMMENT_NODE enum valuexercesc::DOMNode
compareDocumentPosition(const DOMNode *other) const =0xercesc::DOMNode [pure virtual]
DOCUMENT_FRAGMENT_NODE enum valuexercesc::DOMNode
DOCUMENT_NODE enum valuexercesc::DOMNode
DOCUMENT_POSITION_CONTAINED_BY enum valuexercesc::DOMNode
DOCUMENT_POSITION_CONTAINS enum valuexercesc::DOMNode
DOCUMENT_POSITION_DISCONNECTED enum valuexercesc::DOMNode
DOCUMENT_POSITION_FOLLOWING enum valuexercesc::DOMNode
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC enum valuexercesc::DOMNode
DOCUMENT_POSITION_PRECEDING enum valuexercesc::DOMNode
DOCUMENT_TYPE_NODE enum valuexercesc::DOMNode
DocumentPosition enum namexercesc::DOMNode
DOMNode()xercesc::DOMNode [inline, protected]
DOMNode(const DOMNode &)xercesc::DOMNode [inline, protected]
ELEMENT_NODE enum valuexercesc::DOMNode
ENTITY_NODE enum valuexercesc::DOMNode
ENTITY_REFERENCE_NODE enum valuexercesc::DOMNode
getAttributes() const =0xercesc::DOMNode [pure virtual]
getBaseURI() const =0xercesc::DOMNode [pure virtual]
getChildNodes() const =0xercesc::DOMNode [pure virtual]
getFeature(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNode [pure virtual]
getFirstChild() const =0xercesc::DOMNode [pure virtual]
getLastChild() const =0xercesc::DOMNode [pure virtual]
getLocalName() const =0xercesc::DOMNode [pure virtual]
getNamespaceURI() const =0xercesc::DOMNode [pure virtual]
getNextSibling() const =0xercesc::DOMNode [pure virtual]
getNodeName() const =0xercesc::DOMNode [pure virtual]
getNodeType() const =0xercesc::DOMNode [pure virtual]
getNodeValue() const =0xercesc::DOMNode [pure virtual]
getOwnerDocument() const =0xercesc::DOMNode [pure virtual]
getParentNode() const =0xercesc::DOMNode [pure virtual]
getPrefix() const =0xercesc::DOMNode [pure virtual]
getPreviousSibling() const =0xercesc::DOMNode [pure virtual]
getTextContent() const =0xercesc::DOMNode [pure virtual]
getUserData(const XMLCh *key) const =0xercesc::DOMNode [pure virtual]
hasAttributes() const =0xercesc::DOMNode [pure virtual]
hasChildNodes() const =0xercesc::DOMNode [pure virtual]
insertBefore(DOMNode *newChild, DOMNode *refChild)=0xercesc::DOMNode [pure virtual]
isDefaultNamespace(const XMLCh *namespaceURI) const =0xercesc::DOMNode [pure virtual]
isEqualNode(const DOMNode *arg) const =0xercesc::DOMNode [pure virtual]
isSameNode(const DOMNode *other) const =0xercesc::DOMNode [pure virtual]
isSupported(const XMLCh *feature, const XMLCh *version) const =0xercesc::DOMNode [pure virtual]
lookupNamespaceURI(const XMLCh *prefix) const =0xercesc::DOMNode [pure virtual]
lookupPrefix(const XMLCh *namespaceURI) const =0xercesc::DOMNode [pure virtual]
NodeType enum namexercesc::DOMNode
normalize()=0xercesc::DOMNode [pure virtual]
NOTATION_NODE enum valuexercesc::DOMNode
PROCESSING_INSTRUCTION_NODE enum valuexercesc::DOMNode
release()=0xercesc::DOMNode [pure virtual]
removeChild(DOMNode *oldChild)=0xercesc::DOMNode [pure virtual]
replaceChild(DOMNode *newChild, DOMNode *oldChild)=0xercesc::DOMNode [pure virtual]
setNodeValue(const XMLCh *nodeValue)=0xercesc::DOMNode [pure virtual]
setPrefix(const XMLCh *prefix)=0xercesc::DOMNode [pure virtual]
setTextContent(const XMLCh *textContent)=0xercesc::DOMNode [pure virtual]
setUserData(const XMLCh *key, void *data, DOMUserDataHandler *handler)=0xercesc::DOMNode [pure virtual]
TEXT_NODE enum valuexercesc::DOMNode
~DOMNode()xercesc::DOMNode [inline, virtual]
XQilla-2.3.0/docs/dom3-api/DOMXPathResult_8hpp_source.html0000644000151400015140000003575511653571065020204 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMXPathResult.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMXPathResult.hpp 698579 2008-09-24 14:13:08Z borisk $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMXPATHRESULT_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMXPATHRESULT_HPP
00024 
00025 #include <xercesc/util/XercesDefs.hpp>
00026 
00027 XERCES_CPP_NAMESPACE_BEGIN
00028 
00029 class DOMXPathNSResolver;
00030 class DOMXPathExpression;
00031 class DOMTypeInfo;
00032 class DOMNode;
00033 
00046 class CDOM_EXPORT DOMXPathResult
00047 {
00048 
00049 protected:
00050     // -----------------------------------------------------------------------
00051     //  Hidden constructors
00052     // -----------------------------------------------------------------------
00055     DOMXPathResult() {};
00057 
00058 private:
00059     // -----------------------------------------------------------------------
00060     // Unimplemented constructors and operators
00061     // -----------------------------------------------------------------------
00064     DOMXPathResult(const DOMXPathResult &);
00065     DOMXPathResult& operator = (const  DOMXPathResult&);
00067 
00068 public:
00069     // -----------------------------------------------------------------------
00070     //  All constructors are hidden, just the destructor is available
00071     // -----------------------------------------------------------------------
00078     virtual ~DOMXPathResult() {};
00080 
00081     // -----------------------------------------------------------------------
00082     //  Class Types
00083     // -----------------------------------------------------------------------
00163     enum ResultType {
00164                 /* XPath 1.0 */
00165                 ANY_TYPE = 0,
00166                 NUMBER_TYPE = 1,
00167                 STRING_TYPE = 2,
00168                 BOOLEAN_TYPE = 3,
00169                 UNORDERED_NODE_ITERATOR_TYPE = 4,
00170                 ORDERED_NODE_ITERATOR_TYPE = 5,
00171                 UNORDERED_NODE_SNAPSHOT_TYPE = 6,
00172                 ORDERED_NODE_SNAPSHOT_TYPE = 7,
00173                 ANY_UNORDERED_NODE_TYPE = 8,
00174                 FIRST_ORDERED_NODE_TYPE = 9,
00175                 /* XPath 2.0 */
00176                 FIRST_RESULT_TYPE    = 100,
00177                 ITERATOR_RESULT_TYPE = 101,
00178                 SNAPSHOT_RESULT_TYPE = 102
00179     };
00181 
00182 
00183     // -----------------------------------------------------------------------
00184     // Virtual DOMXPathResult interface
00185     // -----------------------------------------------------------------------
00188 
00194     virtual ResultType getResultType() const = 0;
00195 
00201     virtual const DOMTypeInfo *getTypeInfo() const = 0;
00202 
00210     virtual bool isNode() const = 0;
00211 
00222     virtual bool getBooleanValue() const = 0;
00223 
00234     virtual int getIntegerValue() const = 0;
00235 
00249     virtual double getNumberValue() const = 0;
00250 
00261     virtual const XMLCh* getStringValue() const = 0;
00262 
00277     virtual DOMNode* getNodeValue() const = 0;
00278 
00291     virtual bool iterateNext() = 0;
00292 
00304     virtual bool getInvalidIteratorState() const = 0;
00305 
00319     virtual bool snapshotItem(XMLSize_t index) = 0;
00320 
00330     virtual XMLSize_t getSnapshotLength() const = 0;
00331 
00333 
00334     // -----------------------------------------------------------------------
00335     //  Non-standard Extension
00336     // -----------------------------------------------------------------------
00345     virtual void release() = 0;
00347 };
00348 
00349 XERCES_CPP_NAMESPACE_END
00350 
00351 #endif
XQilla-2.3.0/docs/dom3-api/DOMNamedNodeMap_8hpp__incl.png0000644000151400015140000001024211653571065017635 00000000000000‰PNG  IHDRÅuq²ÒbKGDÿÿÿ ½§“WIDATxœíyPS×ÇOBÀ°TDŒØ‡àNªòž8£ )è He†’€UìsÃéT`ª-u@§-LIYÄ—R\km¥¬uC´E¬Z¤ÖQBP4A„%ä¾?nç¾+YÑÃÖþ>Ýû»ç·Åï=ç›A0Á逿 '' '' '',×—-[6|æÌ™5kÖ¬\¹rß¾}äµZ-‹CCCCCCÅb±Z­Öh4_}õULLL``àúõëoß¾mJöŽŽŽ?þ8$$$"""//¯··W_팦ô®Ý¹€^¸p!&&&444''§¯¯OûŸ ¶¶6***((èСCú¼L 5X†d?Îãñš››Br¹ÜÍÍmÀ77·ÇsçÎU©Tä´ßÙÙyýúõÅ‹?W"“¹}ûök×®}ÿý÷t{WWWZZš»»ûÁƒ“““ ¨}Ûµk×òòò„BaAAÁ¥K—ŠŠŠ’““%I{{;BèèÑ£2™ì‹/¾Ø³gÏõë׋‹‹;VRR" %ILLŒX,6š!ôé§Ÿ¶¶¶ŠÅâÝ»w_½zõÈ‘#úâhg4Ú»îÊÊÊ233?úè£+W®Pw+W®lÛ¶­°°lYŸ—ÑPƒedþ¾c0Ôþ‰ÉdúøøÓþ¥K—<<<Æ?`<Ç …999?¦ŒEEE)))äÆÎÎNòÒ[o½eeeµ|ùr„ÐÚµk­¬¬BJ¥!túôé7:::ºººŠD¢šššŠŠŠ¤¤$ooo///¡Ph4»Z­>{öì† œœœ\]]ããã+++õÅÑÎh´wÝ%''óx¼Y³f½ýöÛÔ4O‡lÉ’%TËú¼Œ†,ÆŸß½MMMÎÎÎ!{{ûÆÆFOOOú€ÆÆÆéÓ§S§¾¾¾YYY Ú‹EhhèO?ý”••µqãÆ¿Jg±ššš²³³U*•»»;}°••9`À1IKKKXXujmm­V«é“¨«««Ñì …B£Ñm"„&OžÜÚÚÊ`0tÆÑÎh´wÝñx<òÀÅÅ¥µµUûµrpp@1 £^FC üóA‹-"Oýýý8@ÍF¡îîî#GŽ,\¸²xxxtuuÕ×××ÖÖ’w•6 #55õæÍ›ß|ó iéééÉÈȈŒŒÌÏÏ÷ÝwM¯ÐÖÖöàÁƒUUUUUU'OžüüóÏ'MšDÿ;ëþýûF³ÛÙÙ1™L™LFž677s¹\}q´3íÝ@wMMMäÁÇIéhW«mÔée4Ô`Á£§¶¶6¹\þäÉ“ººº;vÈd²7ß|“¼§P(6mÚTSSÓÔÔtþüùääd.—òÿ"˜LŸ½{÷Κ5‹ÃáèËâä䔜œüõ×_“§}}}jµšÅbõöö’;’®®.Sªõöö.((xôèѽ{÷¶mÛVVVœ——wá¹\^SSCíÜ dg±Xà³Ï>“ÉdþùgQQ‘¿¿¿¾8Úön »ÜÜ\©TzçÎÂÂBòj§N¢VC}h{é3¾ xÖ»õëדŽŽŽ|>???ŸšÒ­¬¬òóó‹‹‹Åbqss³“““ŸŸ_DD„¹¹9=‚@ (// 5œ(((èüùóµµµ!›äää]»vYZZ®]»ÖÏÏoÛ¶m'Nœ0ZmBBBnnnbb"ƒÁðññ‰Dæææ}}}yyyOŸ>6mÚŽ;Ö­[g8;BhãÆ¹¹¹IIIæææ¯¿þzTT‹ÅÒG;£ÑÞuv—››‹ò÷÷ß¼ysww·ŸŸ_TTB(;;{Þ¼yôeT›^äê¦ê%aþ¾ƒÁHOO‡Ï?¤Rittô`ß_Õéõb¡AII µøhÏžÆÖÖÖAAAX¼^,”Q@Oc ‡³iÓ&,^/Ê( '' '' '' '' '' ''ÆŸ·H$ê!(ƈž"""†§ŽQNmíDW×gööÝ#]Èãêê:eÊŒ<¿Hœÿ+Çíw°pzpzpzpzpzpzpzpzpzpzpzpzpzpzpzpzpzpzpzpzpzpzpzpzpzpzpzpzpzpzpzpzpÿ?nÞyGrû¶Œ:•JÛìí­--ÿú5ËìË/œœôþTß?–!ù½×¿nnËÊ®Óï5¥RE¿ bÒ ¬wºyã O„tüj*BˆÅ2‹Œ\¨ózÒÍÔ©|þd]¿Ã‹úû5«W/öŠÆ '½„‡ÿÇÌlàëÃd2<=§:;Ãb§Г^BBhÿ±Â`0ÂÃÿ3"õŒ @Ozárm¼¼Ü´§¨U«^‘zÆ 'CDDü›>E™™1½½Ýíí ýŒø?Г!ùôùI£!ÂÂþ=‚õŒ~@O†xå¶Ÿßlë¯WÉÂÂlÅ þÈ–4Ê=á7<5!Äb™-[6×ÊÊb¤+Õ€žŒ°lÙ6Û!Ôßßæ9ÒåŒv@OF7ŽàÁ` KK _ß™#]Îhç¹çw*•J¡PŒT)£à_Ç_[¶lÆÓ§Gº–Q‡¥¥¥uúœž”JeCCð—4Ú±µÕ¼òŠÅìÙ6ðâh3a½z"ñõõ¾rÆ6ëÖ½Îdê~Büå·ß~`ý“IˆD¾ &S=™„¹¹ÙH—06=8=8=8=8ózzðàA||¼Ña ƒ~@wÿå—_X,Vii)e///·°°¨¯¯ŠšÀ ñê«¯ÆÆÆ¶¶¶ODtt´éñqTjœ1¯§²²²Õ«Wë¼tïÞ=.—Ks8œÔÔT}îóçÏï½÷RRRÚÚÚBÏž=[·n]zzº‡‡ÇÐUNçâÅ‹2™¬©©©¸¸¸½½}Á‚d%:inn>tèЭ[·†§¶ÁAÐxôèQUU1¦X¹reWW—ÎKwïÞР¶‘rïéé™;w®P($"))ÉÓÓ³··wȪ~„ÐÝ»w©SFããã“––¦o¼Î¾L‘›7oÞ¼y“nôüTQQ1yòdò1ß‘#G¦OŸÞÙÙ‰êëëÛºuëĉ·nÝÚ××G®,?þø£‹‹Kuuuzzº‹‹Ë„ bcc©›OÛ !tòäI>ŸÏf³]]]% BH­Vëtò䉵µµ¥¥%}£Ž-Z„š4iÒZæ¸#„,,,öïß¿oß¾ÌÌÌâââýû÷›››ë+ckÚ0Œ¤¤¤S§Né‹CïËĘgΜqss³³³ËÌ̤^òòò3f8::¦¤¤ôôôè4š* º¸LœŸbccãââZZZ&NœxåÊÒ¸{÷î°°°ܸqcÁ‚Û·o'o£+Vœ={6##cΜ97nܨ¯¯÷òòÚ²e‹>¯ŽŽŽqãÆ‰Åb™LVTTÄb±:::²²²tºïÛ·O"‘Ïß²Ô±Q#åN±}ûv„Ю]»èÆ!mÐ5\½z•ÃáÎN^Õ“BhÕªUíííÇŽ#ï"2ÂòåË._¾ìææ–‘‘¡ÓhX ÚóÓ‹èI¡Pðx<>ŸOÏ7sæL™LFWVVΛ7¬ïÆA̘1ãøñãäÕ[·nQÇÚ^r¹ÜÜÜ<;;[¡Ph4¥RÙß߯Ï=,,L.—/ª'ÊD£Ñ„„„˜™™EGGÓûÒÖczÒ—´è‹I!T]]MD?™‹^?A%%%nnn:„Aðè‰ ˆ>øÀÌÌìÑ£G”…ÍfÓ§=[[[²>rÂf³ëëëµãh{ñóÏ?‡‡‡[[[{{{ûí·úÜ•Jepp0yL‰ÉOÆôDw'‘H$¶¶¶çÎc³ÙeeeÃÓ¡KO‡öôô4œ¬3&„PCC=A¥R‘ƺº:6›­Ó¨†ýBèáǹ¹¹þþþ›7o¦Œ\.—zQ ÅåË—I;¹ qvv¾ÿ>iùõ×_?üðC}^*•J£Ñ”––Êåò„„„   ¹\®Óý»ï¾  ¦V«BR©Ô”.¸777§¤¤deeùøø¤§§‹D¢§OŸCkÚ…‘——·råJÃÙILŒ©½wD‘B5448;;0º¸L™ŸúûûýýýwîÜ)—Ë'MšTQQAÚSRRÂÃÃïß¿_WWçååµ~ýzúm”žžÎçóëëëëëë/^œ˜˜¨ÏK¥R±Ùì£G¶¶¶æçç³Ùl•J¥Ó=::Z*•’qÈ7lŠŠŠž={ŠhS‘R©$tÍOtwF³jÕª¥K—’‹Eoo/ŸÏ_³fÍ0´F¢½_P]]ÂãñÚÚÚLÉ®/fAAÑæ?D›ŸÁÝ»wkjjÜÝÝÓÒÒt ‹Ãz—““óÚk¯‘Sý‰'œœœÈ-H{{{||¼ƒƒƒP(ìì줷ÝÝݽeËggg[[Û5kÖ( Ò®íEDIIÉ´iÓ,,,fΜY^^®Ó½··700^Ø®]»8δiÓÊËËɼ}}}K–,±±±!´ô4À}ÿþýãÆûý÷ß)KMM “É XQilla-2.3.0/docs/dom3-api/inherit_graph_9.md50000644000151400015140000000004011653571065015651 00000000000000c6e4d5401ad5e8f4e2a024861f2c0154XQilla-2.3.0/docs/dom3-api/DOMNamedNodeMap_8hpp__incl.md50000644000151400015140000000004011653571065017531 000000000000002420d2530ad1b62a06a9b9c0a809a536XQilla-2.3.0/docs/dom3-api/functions_0x62.html0000644000151400015140000001057511653571065015662 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- b -

XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMDocumentFragment__inherit__graph.png0000644000151400015140000001136411653571066024757 00000000000000‰PNG  IHDRèuË3:²bKGDÿÿÿ ½§“©IDATxœíiT×ÿÆoH@dÈ.*"âAp¡V-ELAÄUP@*h©,ârTpkêR‹(Z­ ¢‹œ#ÅRT@6ZÛ*‹$ œ$!#YæÿâöŸ¦„ ´h29÷óêÎûýæ¹wfnîLŽã *ò€@üq„AHq„„"o³jÕ*yK@¼’’yKø ’â¬*H¤eË–MŸ>]ÞB#ÐÞÞ^UU¥@nQ )$RnnîÆå-1W¯^õõõU· 9.‚ ã" 2.‚ ã" 2.‚ ãN0$ fΜÐÓÓ#Ù€ËåFFF.X°@[[{É’%_}õ•@ ÇΙ3gØ7÷5kÖH¤ææfØÀÇÇG²Ass3‰D£¶q5Vpq'žŠŠ &“ÙÑÑA§Óûúú/^Ìápà®þþþ÷Þ{¯¦¦&&&¦®®îðáÃßÿýªU«„B!lðìÙ³††q*6›]^^.™mÚ´€€ñÉO: póæM;;;uuu ‹ÌÌL€@ 1\ò²;Ê%˜D"…††Áͬ¬¬cÇŽ‘ÉdqMMÍÈÈȬ¬,¸éããsõêUñd //ÏÛÛ[2áÞ½{­­­ƒƒƒ¥ïp8œ­[·R©T33³ˆˆ ÄBall¬•••¶¶¶ƒƒÃƒFé;ÁÀ@nnîèm»ºº •Ô\SS£««‹ã8ü“ëééÖ©û÷ïÂØßÿÝÈÈèáÇ0­††Foo¯8',wî\ƒ÷>~üX\–Žb±XªªªgÏže³Ù"‘¨¿¿_(Ê ¥ã5nee%•Jdž‡‡>|Çñ¬¬¬U«VIæ¦L™òüùs±q‡††Èdò/¿üs2 KKK++«‹/Š?èÒ¥K°±tßG; c1.ŽãÇ'“ÉÝÝÝâuuuÉkˆŽŽ<œCCCpoSS“té(ÇïÝ»çíí­©©éèèxëÖ­QÂGéÅ0ãfggÛÛÛò‘‘QIIɰäääÕ«W‹cËÊÊ,--E"‘§§gjj*>’q…B¡“““««ë“'O ŸÚÛÛ<ælllTWWŸ{ù²–»»ûêêžÉUŽr‚Œ;ñÔ«ªþõtUUr~þCùêQJq'@Ä`Ôñù-&ðùB£V ÉW•òŒ;ÁÜ»÷äÕ+L²æÕ+ìþý§òÒ£¬ ãN0ùùuÊ?F•B!1uòÒ£¬ ãN$Æÿá‡à7Ñ?4`_s¤À ãN$?þøÃÒõÆ/-}üîõ(1ȸÉõëµdòo¿#“Iׯ£ÙÂD‚Œ;aô÷cwîü6â‚@ *-}<0ðúÝ«RVq'Œââ&ñ*˜4|¾°¸¸ñ]êQnÐC6›Ííëû{!ìóÏ€S§6ˆk¦LQ×ÓÓ”ƒ2eDk$:zzš’¾ÔÔT̘¡/?EÊ š*  2.‚ ã" 2.‚ ã" 2.‚ ã" 2.‚ ã" 2.‚ ã" 2.‚ ã" 2.‚ ã" 2.‚ ã" 2.‚ ã" 2.‚ ã" 2.‚ ã" 2.‚ ã" 2.‚ ã" 2.‚ ã" 2.‚ ã" 2.‚üãäiiir”¢d\»öàãc*o!ÊCpp°¸üã’H#üÇÄ¿ƒLÖ…¯ä-DyôêðWéGEE­\¹òÊA ÞDYYÙ—_~)Yƒæ¸B‚Œ‹ $ȸB‚Œ‹ $ȸB‚Œ‹ $JøŸ%i4š¸lhh¸`Á‚°°0]]]q%†a/^¬©©a2™æææŽŽŽ›6m"“É0ÖÔÔ433SrIûàÁƒÕÕÕYYY¦¦¦oL®€HjóÓO?½{%ˆ˜˜hll,‰ÚÛÛ¯_¿|áÂ---Ààà`XX˜žž^HHˆ‰‰I[[[FFFmmí¹sçTTT]]]---–––0UCCÓ+L&344ôÆâ¨YŽ’¤‘9.”sª ««;uêT*•ºhÑ¢'N_»v îº|ù²®®n\\Üûï¿offæè蘒’ÒÕÕU\\ ØÛÛ—••‰SUTT,\¸pŒÉ‘HÔ××'Y5K"/mb¤EŽ‹ñ·¢¢ÂÛÛ»¿¿PZZºeË Ã %%eýúõëׯOII/^¼ Ñhõõõ¾¾¾=¢Óé¾¾¾žžž§OŸ€Ù¤£àG¹ººúùùݾ}  G ‡!]‰DZ·n]UUÜ,)) €'Wˆººú¦M›JJJàæÊ•+ËÊÊÄwþùg'''Y2,ùÀÀÀ×_íáááã㓜œ<444¢xYÊi4Zqqq`` §§gvvöíÛ·7oÞìîî~áÂ…QFŒF£ýøãëÖ­»rå `ÇŽ€ 6ÙH ¦¦¦ÊÊÊíÛ·»¹¹yyyeggp/,,ܺu«»»û¾}û*++¡Îw)rÆgÜ>øÀÞÞ>))‰Íf'%%}þùçêêꀼ¼<&“™ššzîܹúúz:Û_½zõСC ååå§OŸŽoooÏÊÊ‚{¥£0 ‹ŽŽöôô¼råÊ–-[Μ9ƒaX^^ވẺºÒeiÌÌÌ:;;,K< ciiùüùsXž?>Çkiip¹Üúúz‡QÆDœÐÓÓ“’’SSS“““#K¼,êêê’““ƒƒƒÓÓÓ+++322ÂÂÂ233áÉIÖ8ß»w/)))$$$55µ¿¿ÿüùóƒ!N‹aO¡P(y€LMM;6gΜ¬¬¬°°°ôôt‡sëÖ­ÌÌÌðððììlÿ¤¤¤·-r\Œ{ª°k×®úúúˆˆkkkXY\\¼gÏ ‹êêjX¼hÑ¢ÒÒÒO?ýÔÂÂbÖ¬Y´±±‘Åçóqçñxjjjnnn7oÞœ4iRQQшᚚšîîîÒå‰D‰DˆŠÊŠ+àl¡²²ÒÖÖvÊ”)cI"îܹ³k×.ccc ‹mÛ¶•””È/ ___ WWW€ŸŸŸ†††››^åd³§§§––ÖêÕ«#^?ûì³ÿI0ìM™2%##c÷îÝúúú.—{ýúõÐÐÐ%K–èèèØÛÛoÛ¶ím‹ãþr¦¥¥õñÇ_ºtéܹsâÊ®®.///ñ¦¦¦&,˜››º»»ÍÌÌ`ÍŒ3f̘!+J[[;>>>//N§[YYùùù-]ºTVøØéèè011â§NÚÜÜloo/Ù ¹¹ÙÊÊJ¼¹råÊØØØ   Ñç Ã’³Ùl‘HËSSÓžžÀèâ%Ÿxhhh(ʰ2DÖ8S©Ôa-‡—D$k^¼xþÿQ(”ŽŽŽ³gÏòx¼9sæÀ³fÍ·Ÿ9sæÛ9.ÆååË—ùùùöööçÏŸ?rä¬ÔÑщ‡C/Çe§Púúú]]]pš››«ªª>ùä“£^¿~-‰¢££Aiié‘#G d…8W[¶lÜtqq¹|ùò¢E‹ÄÓ\ Ãrrr$ÇÚÖÖvpp°©©©¶¶vÿþýcL®§§§¢¢Âd2¡;;;;©T*Žã²Ä …B2™ÜÛÛ;ö¾Èçý<*<@¯_¿ŽŽŽŽŽŽ^¾|9ŸÏ‡ßS ÛÚÚ,,,`Ë?ÿüS^"Gd|SÇÏœ9³aÆ£GÖÕÕUTTÀzGGÇôôôîîîÖÖÖHF¹ºº~÷Ýwmmmmmm ÝÝݲ¢H$Rdddyy9—Ëåóù eÒ¤I²Â¹\nQQ‘tÀápX,VoooCCÃÑ£G™LæÆá®ÀÀ@6›½oß¾êêêŽŽŽ»w…Q©T¿EEeÅŠqqqóæÍ“^£••œB¡Ðh´o¾ù†ÉdÂU6—Åõ³Û·oŽk’7ú8ƒÇã1-ŸÏ ehhNI===SSSkkkûúú>|xñâÅ1:ï-‰ÆøÎ¸góæÍ eïÞ½qqq¶¶¶ÚÚÚAAA‰‰‰Û·o'‘H+V¬ ‘<‘øûûc‰aزeËBBB`½t”ššÚáÇSSS_¾|ibb¥¦¦&+œÃáœ={Nm%Ë€;w‚]ZZšø‚¥¡¡‘––F§ÓSRR:;;}||TUU%{J£Ñnܸ±~ýzéA%ùž={CCCUUU?úè#‰$-^GG'((èüùóYYYáááwïÞãøK؈͌ŒŒlmm½¼¼nݺ5–´ZZZaaa'Ožœ}Z]]ýé§ŸJ¥Ò%K–à‡¢££[[[ׯ_ëÖ­ÆÆÆŸ~úiÕªU\.—ü÷6>åíÞ½{ìØ±‡°[YYùûûoÛ¶­¼¼\*•Þ½{7++ËÇLJh P(^©ÎœœœÊÊÊŽŽŽÛ·oçççŸ=ÞÂ…Á`$''_½zµ«««··—Édó‘ýìÙ³]]]úSgffJ$’{÷î8pÀÏÏO±1úó*²víZ|ÃÑÑ‘ÏççææÚØØàkkëÜÜܼ¼¼ìì즦&ŸÅ‹[XX#…Â’’’… jDÞ¸qcAAÁþýû%‰½½½P(\±bBÈÙÙÙËË+44ôܹs†×¢R©öìÙÓÞÞîé陑‘¡Ñœo¾ùß`±XüqNNNss3ÇKIIa±XÙwíÚåííMt™__ß 6(•JŸÈÈH|vÓ0Þ#Á0ê稜,YÒÒÒò&=ÿtóæMGGG777|÷êÕ«¸XšT"‘ˆD¢Ë—/÷iÔþü“Q?qS™ï ÷ïßß¹sg}}}wwwmmí¡C‡û»(ÂTæ»Bxx¸R©üä“OÚÚÚ\\\æÍ›·`Ác'µ±±ÑÎBiìw`¾{‹€ù`€ž:=tzèôÐ è  £ÿT]]””dì,€!´¶¶;…qõD<#0Щ¬t9²ÝÁAÙß…ü]Qã÷ûÌ7ïŸÙÙÑAAÞ}7}»õ@' '€N@O€ž:=tzèôÐ è  Ð@' '€N@O€ž:=tzèôÐ è  Ð@' '€N@O€ž:=tzèôÐ è  Ð@' '€N@O€ž:=tzèôÐ è  Ð@'ðÿé¨Y³¦à?ÿ‘»I›ƒƒ•ÕŸoHc2Íÿõ¯XŽï·x5îîNÅÅUäkM.W‚˜(ùŽšE‹Q¿å—É4ŸLy=Q3|ø>ÿÊ÷F«Tê ¯½¢èI'aa“ÌÍ5Ï™C ÎãÁdG èI'ÁÁ´ÿXa0aa“ú¥žèI'\®í”)îÚCÔüùôK=Г>/žH¢ÌÍÍfÌðppÐ÷ò·Г>øäñI­ÆBC'öc=¦èIƒ±}|Þg2ÿm/„Й3gø|>›Í9rdAABèÅ‹”îOŸ>µ±±±²²"ÏbÄöÔ©SBÎÎÎHkšÓpG±X¬üüüC‡¥§§çåååçç[XXè*’Æ®iÃ`0Ξ=«+¹_Ƽpá‚»»»½½}zz:q6JJJFíè蘘˜ØÝÝMi4Tdq8>EEEEGG?~üØÉÉ©¢¢7~þùç¡¡¡>¬©©™0aÂæÍ›ñËhÞ¼y—.]JMMõôô¬©©‹ÅS¦LIJJÒåÕÙÙiii™-•J<Èd2;;;322(Ý:TPP€½|ÉÛ} w‚Í›7#„ÒÒÒÈF£v £?~þùg‡£?;~TWL2¡ùóçwttœ9ߘ1c¤R)¾]ZZêíí×WSSƒaØèÑ£O:…­­­%¶µ½d2™……Å®]»Z[[Õjµ\.W©TºÜCCCe2öWõD¸ã¨Õêàà`sss‘HDî¯Q»†õ¥']Ùq‹®˜dBeee†©T*<¹~ à ÝÝÝ)˜^èцaÛ·o777òä aa³ÙäaÏÎί_…°Ùl±X¬GÛ Ã°k×®………ÙØØÌ˜1ãܹsºÜåryPP¾M>ÅøSX_z"»ãØÙÙ]¹r…Íf¿ž®aTz:zô¨@ ПhL“ B¨®®Žœ  P(pcuu5›Í¦4jG#CÃú !ôèÑ£ÌÌL__ß 6F.—Kœ”ÖÖÖòòrÜŽ¯Bx<ÞƒpË/¿ü²sçN]^ …B­VÉd²ØØØ Èd2J÷óçÏÏ;—\Ø‹/B‰Ä^h¸755%&&fddÌœ93%%%>>þÙ³g¯¡kÚ…a–••¨?;Ž1µ×Ž!\@¡ºº:§Çø ÅeÈø¤R©|}}wìØ!“ÉœOŸ>Ûß/‹Åbñ´iÓV®\©ËK¡P°Ùì'N´´´äææ²Ùl…BAé.‰$ ÿÂæàÁƒííí .D¤¡H.—cTãÙ]­VÏŸ?Ö¬YødÑÓÓÃçó#""^C×0 C¤ï ÊÊÊ‚ƒƒ]]]ÛÚÚ É®+æþýû‰ˆ4þ!Òø$ ëëëoݺåáá±uëVJ£~1Ð0ßíÝ»÷ƒ>À‡úï¾ûÎÅÅ_‚tttÄÄÄØÛÛ2$..®««‹Üm¥R™””Äãñììì"""Z[[q»¶†a………nnn,k̘1%%%”î===äÂÒÒÒ8Ž››[II ž···wúôé¶¶¶˜–ž4Üóóó---ýõWÂrëÖ-33³'N»kØË?A~÷Ýw###É ýÙõÄÔÐypàÀáÇs¹ÜuëÖ) J£~1hëé¥ÿÿÔÜÜ\[[ ÏÓ½ñ444xxxhH™Ò¨üy:OOOÂ2à¿L ÐÓÛÈàÁƒããã 1¾*0ߘïãzèôÐ è  Ð@'¿njjzýu¥R©q»šBOð+}Àp4ôïÛèÖO€ž:=tzèä¿zŸko5h‡IEND®B`‚XQilla-2.3.0/docs/dom3-api/functions_enum.html0000644000151400015140000001160711653571065016124 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
 
XQilla-2.3.0/docs/dom3-api/inherit_graph_39.md50000644000151400015140000000004011653571065015734 000000000000009a443655779c352b3cb2968fb852c13dXQilla-2.3.0/docs/dom3-api/inherit_graph_16.png0000644000151400015140000000416411653571066016042 00000000000000‰PNG  IHDRË(ßI™HbKGDÿÿÿ ½§“)IDATxœí›[LSKǧ§–KAAEn‚”ˆ(’pyÐ DM(Ñ0Þ¢¼HÄ ¼D‚ñEM DŒ5”TÄ[¢$n¢Ü´…v×-{ÎÜog»¥õð±=ß!ó{šY{Öš5‹ÿžÙm7!À`Xã:Ì"+ Ã.XavÁ ðËFÿâÅ‹ÍÍÍÿH*˜EÀùó磣£é¦Â”JeWWWxxøoÌ ³H¨®®>räÃÈT <<¼ªªê·¤„YTp8S#~ð V†]°Â0삆a¬0 »,Z…qhøøøˆÅâññqúN'•Jƒ‚‚–.]ºeË–+W®FÊ×××—ñN@\\‡ÃéééAPƒA‰dÍš5ööö¾¾¾¹¹¹SSS¦É899íÞ½»¯¯­•›ÌHÑÓÓƒ>îQßÀ¢U ¥¥exxxhhèÞ½{&$$dbb]Òjµ¡¡¡mmmïß¿ÏÎÎ.// …³³³h@ÿÇ©PjµÚêÑííí555ƒƒƒ¥¥¥uuuR©”‘Ì·oßd2I’Xèå2A3ÒqvvÎÊÊ¢éííuqqa7øßˆD"‘Hÿýº»»©.I’QQQ999¨+‘H"##F#5€ Ÿ;wî ßØØØ³gÏRWïß¿GÅdG8;;·¶¶R]™Læíím6™¡¡!ÀäääB-Ö³Rtww£?=ÕX¨I+++ÆùìaOž<jµPQQ±aÃN0 R©ÔÍÍÍÕÕU*• ´¿zõÊÛÛ»©©)77×ÛÛ{ÕªUb±˜ÚNL½õõõvvvk×®}ðàÀh4šu§oø6‡süøñ††Ô-++ËÉÉár¹Ô©TZVV†º"‘¨ªª þç |ôèQRR’å²,[¶¬¸¸øÇ¨500`v$šÊOŸ>Ý´iŸÏ÷ðð¸zõ*µ T4¹\nZ «¥–Ëåfç5­Ï¶mÛîîîÿKX+0÷‹{˜X,>tèÐÈȈ››Û»wï±   11qppP¡P„„„œ9sÝ"qqq¯_¿ÎËËó÷÷W(J¥2,,L"‘ÌåE„­­í­[·†‡‡KKK—,YBDaa¡Y÷‰‰ ´ñ0ÚÀä&nkksvv†¢{c||œ±¨7oÞ¸¹¹!ß®®.ww÷> °|>ÿû÷ïÀâöâÅ @`kk+ ûûûé7wGG‡V«Õh4=== ¡¡¡BFccc“žž>44„Ä=66F/Úèè¨i)¬–š jF ƒÁ`ºu1ö0«a-«˜ÛÃæ©0µZ½zõêÀÀÀ¼¼<Êèçç7<<ŒÚÁÁÁ(?…B!ܸqããÇÑÕOŸ>QmS/•JÅãñ®]»¦V«I’Ôjµ³³³s¹[XíßUØÛ·o]\\(ß“'OfggCËÊÊ„B!=¦Y…AFckkk~~~@@—Ë-//§’¡àñxÑÑÑÈ}zzúóçÏAÌÎÎÊd2–^4³¥°Zjhî½åúúz« ³ÖjÍLaÂüü|.—;::JYìììèKrrrBùÍÌÌ «J¥Ò4Ž©„P.—'%%988DFF>{öÌ‚»…Õ2DððáÃÍ›7£¶»»{cc#Ã¥¤¤$&&†òmjjZ¿~=I’ñññ·o߆FDEEõ`G’ä… Á\ÉPÔÕÕEDD§¥¥Ñ†Šf¶f‹Æð2;£U…Y k³ ›çgÉ/_¾Ü¼ysÇŽ™™™”ÑÅÅ…Z•Z­nmmEvðôôìïïG–ŽŽŽË—/Ïå¥×ëI’¬®®V©T‡Þ³gJ¥šËý–””ìÚµ uSSSóóó©OŽNWPPKY"""´Z­\.ollŒ·ÿþýJ¥u9NLL õõÇ\èõúääd©TÚÞÞ^\\L¿„Šf¶ÀZ©ç aç£0’$ÓÓÓ322***^¾|Y__ì ÙÙÙ …"66¶¨¨ˆîuðàÁsçÎuvvvvvž:uŠz 6õâp8;w©Ñh4333<ÏçÏå>99y÷î]Ó6`|||ddäëׯ2™lïÞ½}}}§OŸF—rrrÆÆÆ¶oßþüùóîîîÚÚÚ°°0@pâÄ ÊËå&&&;vlëÖ­®®®Œ" àŽŽŽb±xß¾} ½½½---‰$%%År%§§§gfflllôz}nn.@«ÕÒ˜-…ÕRÿ]ÐsÛ‚‡ý Æžö+§ä7‚‚‚ÐÎY[[ëáá¡R© „&--mùòå+W®ßßßÿÒ¥K?þ¤|Ñ­ÜÔÔ(**bØÍ–Ñh4æååÚÛÛûøødeeéõz†£)ׯ__±b…——WqqqJJŠ««+ãä2-…ÕRÏ5£éáh0"""1¬e€¹S’èWrr2¿†™§²²Iˆb1§ù+ Ã.XavÁ ð V†]°Â0삆a¬0 »`…aØÅÌÿ|777 …Âߟ fQÂTz郙"‘ÈËË‹adþ.‰Á,,ø9 Ã.XavÁ ð V†]þ»2Îì΃uIEND®B`‚XQilla-2.3.0/docs/dom3-api/functions_func_0x77.html0000644000151400015140000001102611653571065016673 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
 

- w -

XQilla-2.3.0/docs/dom3-api/DOMErrorHandler_8hpp__incl.map0000644000151400015140000000003511653571065017724 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMException_8hpp__dep__incl.map0000644000151400015140000000022211653571065020260 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMException_8cpp.html0000644000151400015140000000602311653571066016315 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMException.cpp File Reference

#include <xercesc/dom/DOMImplementation.hpp>
#include <xercesc/framework/MemoryManager.hpp>
#include <xercesc/util/XMLString.hpp>
#include <xercesc/util/XMLMsgLoader.hpp>
#include <xercesc/util/XMLDOMMsg.hpp>
#include "impl/DOMImplementationImpl.hpp"
#include "DOMException.hpp"
Include dependency graph for DOMException.cpp:

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMEntityReference__inherit__graph.map0000644000151400015140000000033211653571066024572 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMException_8hpp_source.html0000644000151400015140000003436311653571065017711 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMException.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMException.hpp 671894 2008-06-26 13:29:21Z borisk $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMEXCEPTION_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMEXCEPTION_HPP
00024 
00025 #include <xercesc/util/XercesDefs.hpp>
00026 #include <xercesc/util/PlatformUtils.hpp>
00027 
00028 XERCES_CPP_NAMESPACE_BEGIN
00029 
00030 
00050 class MemoryManager;
00051 
00052 class CDOM_EXPORT DOMException  {
00053 public:
00054     // -----------------------------------------------------------------------
00055     //  Class Types
00056     // -----------------------------------------------------------------------
00137     enum ExceptionCode {
00138          INDEX_SIZE_ERR                 = 1,
00139          DOMSTRING_SIZE_ERR             = 2,
00140          HIERARCHY_REQUEST_ERR          = 3,
00141          WRONG_DOCUMENT_ERR             = 4,
00142          INVALID_CHARACTER_ERR          = 5,
00143          NO_DATA_ALLOWED_ERR            = 6,
00144          NO_MODIFICATION_ALLOWED_ERR    = 7,
00145          NOT_FOUND_ERR                  = 8,
00146          NOT_SUPPORTED_ERR              = 9,
00147          INUSE_ATTRIBUTE_ERR            = 10,
00148          INVALID_STATE_ERR              = 11,
00149          SYNTAX_ERR                     = 12,
00150          INVALID_MODIFICATION_ERR       = 13,
00151          NAMESPACE_ERR                  = 14,
00152          INVALID_ACCESS_ERR             = 15,
00153          VALIDATION_ERR                 = 16,
00154          TYPE_MISMATCH_ERR              = 17
00155         };
00157 
00158 public:
00159     // -----------------------------------------------------------------------
00160     //  Constructors
00161     // -----------------------------------------------------------------------
00168     DOMException();
00169 
00177     DOMException(short code,
00178                  short messageCode = 0,
00179                  MemoryManager* const  memoryManager = XMLPlatformUtils::fgMemoryManager);
00180 
00186     DOMException(const DOMException &other);
00187 
00189 
00190     // -----------------------------------------------------------------------
00191     //  Destructors
00192     // -----------------------------------------------------------------------
00199     virtual ~DOMException();
00201 
00202 
00203 public:
00204     // -----------------------------------------------------------------------
00205     //  Getter
00206     // -----------------------------------------------------------------------
00207     inline const XMLCh* getMessage()    const;
00208 
00209     // -----------------------------------------------------------------------
00210     //  Class Types
00211     // -----------------------------------------------------------------------
00218     short   code;
00219 
00226     const XMLCh *msg;
00228 
00229 protected:
00230     MemoryManager*  fMemoryManager;
00231 
00232 private:
00233 
00241     bool            fMsgOwned;
00242 
00243 private:
00244     // -----------------------------------------------------------------------
00245     // Unimplemented constructors and operators
00246     // -----------------------------------------------------------------------
00247     DOMException & operator = (const DOMException &);
00248 };
00249 
00250 inline const XMLCh* DOMException::getMessage() const
00251 {
00252     return msg;
00253 }
00254 
00255 XERCES_CPP_NAMESPACE_END
00256 
00257 #endif
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMTreeWalker.html0000644000151400015140000011026211653571065020535 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMTreeWalker Class Reference

DOMTreeWalker objects are used to navigate a document tree or subtree using the view of the document defined by their whatToShow flags and filter (if any). More...

#include <DOMTreeWalker.hpp>

List of all members.

Public Member Functions

Destructor
virtual ~DOMTreeWalker ()
 Destructor.
Functions introduced in DOM Level 2
virtual DOMNodegetRoot ()=0
 The root node of the DOMTreeWalker, as specified when it was created.
virtual DOMNodeFilter::ShowType getWhatToShow ()=0
 This attribute determines which node types are presented via the DOMTreeWalker.
virtual DOMNodeFiltergetFilter ()=0
 Return The filter used to screen nodes.
virtual bool getExpandEntityReferences ()=0
 The value of this flag determines whether the children of entity reference nodes are visible to the DOMTreeWalker.
virtual DOMNodegetCurrentNode ()=0
 Return the node at which the DOMTreeWalker is currently positioned.
virtual DOMNodeparentNode ()=0
 Moves to and returns the closest visible ancestor node of the current node.
virtual DOMNodefirstChild ()=0
 Moves the DOMTreeWalker to the first visible child of the current node, and returns the new node.
virtual DOMNodelastChild ()=0
 Moves the DOMTreeWalker to the last visible child of the current node, and returns the new node.
virtual DOMNodepreviousSibling ()=0
 Moves the DOMTreeWalker to the previous sibling of the current node, and returns the new node.
virtual DOMNodenextSibling ()=0
 Moves the DOMTreeWalker to the next sibling of the current node, and returns the new node.
virtual DOMNodepreviousNode ()=0
 Moves the DOMTreeWalker to the previous visible node in document order relative to the current node, and returns the new node.
virtual DOMNodenextNode ()=0
 Moves the DOMTreeWalker to the next visible node in document order relative to the current node, and returns the new node.
virtual void setCurrentNode (DOMNode *currentNode)=0
 The node at which the DOMTreeWalker is currently positioned.
Non-standard Extension
virtual void release ()=0
 Called to indicate that this TreeWalker is no longer in use and that the implementation may relinquish any resources associated with it.

Protected Member Functions

Hidden constructors
 DOMTreeWalker ()
 DOMTreeWalker (const DOMTreeWalker &)

Detailed Description

DOMTreeWalker objects are used to navigate a document tree or subtree using the view of the document defined by their whatToShow flags and filter (if any).

Any function which performs navigation using a DOMTreeWalker will automatically support any view defined by a DOMTreeWalker.

Omitting nodes from the logical view of a subtree can result in a structure that is substantially different from the same subtree in the complete, unfiltered document. Nodes that are siblings in the DOMTreeWalker view may be children of different, widely separated nodes in the original view. For instance, consider a DOMNodeFilter that skips all nodes except for DOMText nodes and the root node of a document. In the logical view that results, all text nodes will be siblings and appear as direct children of the root node, no matter how deeply nested the structure of the original document.

See also the Document Object Model (DOM) Level 2 Traversal and Range Specification.

Since:
DOM Level 2

Constructor & Destructor Documentation

xercesc::DOMTreeWalker::DOMTreeWalker ( ) [inline, protected]
xercesc::DOMTreeWalker::DOMTreeWalker ( const DOMTreeWalker ) [inline, protected]
virtual xercesc::DOMTreeWalker::~DOMTreeWalker ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual DOMNode* xercesc::DOMTreeWalker::firstChild ( ) [pure virtual]

Moves the DOMTreeWalker to the first visible child of the current node, and returns the new node.

If the current node has no visible children, returns null, and retains the current node.

Returns:
The new node, or null if the current node has no visible children in the DOMTreeWalker's logical view.
Since:
DOM Level 2
virtual DOMNode* xercesc::DOMTreeWalker::getCurrentNode ( ) [pure virtual]

Return the node at which the DOMTreeWalker is currently positioned.

Since:
DOM Level 2
virtual bool xercesc::DOMTreeWalker::getExpandEntityReferences ( ) [pure virtual]

The value of this flag determines whether the children of entity reference nodes are visible to the DOMTreeWalker.

If false, these children and their descendants will be rejected. Note that this rejection takes precedence over whatToShow and the filter, if any.
To produce a view of the document that has entity references expanded and does not expose the entity reference node itself, use the whatToShow flags to hide the entity reference node and set expandEntityReferences to true when creating the DOMTreeWalker. To produce a view of the document that has entity reference nodes but no entity expansion, use the whatToShow flags to show the entity reference node and set expandEntityReferences to false.

Since:
DOM Level 2
virtual DOMNodeFilter* xercesc::DOMTreeWalker::getFilter ( ) [pure virtual]

Return The filter used to screen nodes.

Since:
DOM Level 2
virtual DOMNode* xercesc::DOMTreeWalker::getRoot ( ) [pure virtual]

The root node of the DOMTreeWalker, as specified when it was created.

Since:
DOM Level 2
virtual DOMNodeFilter::ShowType xercesc::DOMTreeWalker::getWhatToShow ( ) [pure virtual]

This attribute determines which node types are presented via the DOMTreeWalker.

The available set of constants is defined in the DOMNodeFilter interface. Nodes not accepted by whatToShow will be skipped, but their children may still be considered. Note that this skip takes precedence over the filter, if any.

Since:
DOM Level 2
virtual DOMNode* xercesc::DOMTreeWalker::lastChild ( ) [pure virtual]

Moves the DOMTreeWalker to the last visible child of the current node, and returns the new node.

If the current node has no visible children, returns null, and retains the current node.

Returns:
The new node, or null if the current node has no children in the DOMTreeWalker's logical view.
Since:
DOM Level 2
virtual DOMNode* xercesc::DOMTreeWalker::nextNode ( ) [pure virtual]

Moves the DOMTreeWalker to the next visible node in document order relative to the current node, and returns the new node.

If the current node has no next node, or if the search for nextNode attempts to step upward from the DOMTreeWalker's root node, returns null, and retains the current node.

Returns:
The new node, or null if the current node has no next node in the DOMTreeWalker's logical view.
Since:
DOM Level 2
virtual DOMNode* xercesc::DOMTreeWalker::nextSibling ( ) [pure virtual]

Moves the DOMTreeWalker to the next sibling of the current node, and returns the new node.

If the current node has no visible next sibling, returns null, and retains the current node.

Returns:
The new node, or null if the current node has no next sibling. in the DOMTreeWalker's logical view.
Since:
DOM Level 2
virtual DOMNode* xercesc::DOMTreeWalker::parentNode ( ) [pure virtual]

Moves to and returns the closest visible ancestor node of the current node.

If the search for parentNode attempts to step upward from the DOMTreeWalker's root node, or if it fails to find a visible ancestor node, this method retains the current position and returns null.

Returns:
The new parent node, or null if the current node has no parent in the DOMTreeWalker's logical view.
Since:
DOM Level 2
virtual DOMNode* xercesc::DOMTreeWalker::previousNode ( ) [pure virtual]

Moves the DOMTreeWalker to the previous visible node in document order relative to the current node, and returns the new node.

If the current node has no previous node, or if the search for previousNode attempts to step upward from the DOMTreeWalker's root node, returns null, and retains the current node.

Returns:
The new node, or null if the current node has no previous node in the DOMTreeWalker's logical view.
Since:
DOM Level 2
virtual DOMNode* xercesc::DOMTreeWalker::previousSibling ( ) [pure virtual]

Moves the DOMTreeWalker to the previous sibling of the current node, and returns the new node.

If the current node has no visible previous sibling, returns null, and retains the current node.

Returns:
The new node, or null if the current node has no previous sibling. in the DOMTreeWalker's logical view.
Since:
DOM Level 2
virtual void xercesc::DOMTreeWalker::release ( ) [pure virtual]

Called to indicate that this TreeWalker is no longer in use and that the implementation may relinquish any resources associated with it.

Access to a released object will lead to unexpected result.

virtual void xercesc::DOMTreeWalker::setCurrentNode ( DOMNode currentNode) [pure virtual]

The node at which the DOMTreeWalker is currently positioned.


Alterations to the DOM tree may cause the current node to no longer be accepted by the DOMTreeWalker's associated filter. currentNode may also be explicitly set to any node, whether or not it is within the subtree specified by the root node or would be accepted by the filter and whatToShow flags. Further traversal occurs relative to currentNode even if it is not part of the current view, by applying the filters in the requested direction; if no traversal is possible, currentNode is not changed.

Exceptions:
DOMExceptionNOT_SUPPORTED_ERR: Raised if an attempt is made to set currentNode to null.
Since:
DOM Level 2

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/functions_0x76.html0000644000151400015140000001050311653571065015656 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- v -

XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMMemoryManager.html0000644000151400015140000005404611653571065021242 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMMemoryManager Class Reference

The DOMMemoryManager interface exposes the memory allocation-related functionalities of a DOMDocument More...

#include <DOMMemoryManager.hpp>

List of all members.

Public Types

enum  NodeObjectType {
  ATTR_OBJECT = 0, ATTR_NS_OBJECT = 1, CDATA_SECTION_OBJECT = 2, COMMENT_OBJECT = 3,
  DOCUMENT_FRAGMENT_OBJECT = 4, DOCUMENT_TYPE_OBJECT = 5, ELEMENT_OBJECT = 6, ELEMENT_NS_OBJECT = 7,
  ENTITY_OBJECT = 8, ENTITY_REFERENCE_OBJECT = 9, NOTATION_OBJECT = 10, PROCESSING_INSTRUCTION_OBJECT = 11,
  TEXT_OBJECT = 12
}

Public Member Functions

Destructor
virtual ~DOMMemoryManager ()
 Destructor.
virtual XMLSize_t getMemoryAllocationBlockSize () const =0
 Returns the size of the chunks of memory allocated by the memory manager.
virtual void setMemoryAllocationBlockSize (XMLSize_t size)=0
 Set the size of the chunks of memory allocated by the memory manager.
virtual void * allocate (XMLSize_t amount)=0
 Allocate a memory block of the requested size from the managed pool.
virtual void * allocate (XMLSize_t amount, DOMMemoryManager::NodeObjectType type)=0
 Allocate a memory block of the requested size from the managed pool of DOM objects.
virtual void release (DOMNode *object, DOMMemoryManager::NodeObjectType type)=0
 Release a DOM object and place its memory back in the pool.
virtual XMLCh * cloneString (const XMLCh *src)=0
 Allocate a memory block from the mnaged pool and copy the provided string.

Protected Member Functions

Hidden constructors
 DOMMemoryManager ()

Detailed Description

The DOMMemoryManager interface exposes the memory allocation-related functionalities of a DOMDocument


Member Enumeration Documentation

Enumerator:
ATTR_OBJECT 
ATTR_NS_OBJECT 
CDATA_SECTION_OBJECT 
COMMENT_OBJECT 
DOCUMENT_FRAGMENT_OBJECT 
DOCUMENT_TYPE_OBJECT 
ELEMENT_OBJECT 
ELEMENT_NS_OBJECT 
ENTITY_OBJECT 
ENTITY_REFERENCE_OBJECT 
NOTATION_OBJECT 
PROCESSING_INSTRUCTION_OBJECT 
TEXT_OBJECT 

Constructor & Destructor Documentation

xercesc::DOMMemoryManager::DOMMemoryManager ( ) [inline, protected]
virtual xercesc::DOMMemoryManager::~DOMMemoryManager ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual void* xercesc::DOMMemoryManager::allocate ( XMLSize_t  amount) [pure virtual]

Allocate a memory block of the requested size from the managed pool.

Parameters:
amountthe size of the new memory block
Returns:
the pointer to the newly allocated block
virtual void* xercesc::DOMMemoryManager::allocate ( XMLSize_t  amount,
DOMMemoryManager::NodeObjectType  type 
) [pure virtual]

Allocate a memory block of the requested size from the managed pool of DOM objects.

Parameters:
amountthe size of the new memory block
typethe type of the DOM object that will be stored in the block
Returns:
the pointer to the newly allocated block
virtual XMLCh* xercesc::DOMMemoryManager::cloneString ( const XMLCh *  src) [pure virtual]

Allocate a memory block from the mnaged pool and copy the provided string.

Parameters:
srcthe string to be copied
Returns:
the pointer to the newly allocated block
virtual XMLSize_t xercesc::DOMMemoryManager::getMemoryAllocationBlockSize ( ) const [pure virtual]

Returns the size of the chunks of memory allocated by the memory manager.

Returns:
the dimension of the chunks of memory allocated by the memory manager
virtual void xercesc::DOMMemoryManager::release ( DOMNode object,
DOMMemoryManager::NodeObjectType  type 
) [pure virtual]

Release a DOM object and place its memory back in the pool.

Parameters:
objectthe pointer to the DOM node
typethe type of the DOM object
virtual void xercesc::DOMMemoryManager::setMemoryAllocationBlockSize ( XMLSize_t  size) [pure virtual]

Set the size of the chunks of memory allocated by the memory manager.

Parameters:
sizethe new size of the chunks; it must be greater than 4KB

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/XQillaPlatformUtils_8hpp__incl.map0000644000151400015140000000003511653571065020715 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMException_8cpp__incl.map0000644000151400015140000000022711653571065017271 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMTypeInfo_8hpp.html0000644000151400015140000000717111653571066016126 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMTypeInfo.hpp File Reference

#include <xercesc/util/XMLString.hpp>
Include dependency graph for DOMTypeInfo.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMTypeInfo
 The DOMTypeInfo interface represent a type used by DOMElement or DOMAttr nodes, specified in the schemas associated with the document. More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/DOMImplementationSource_8hpp__incl.png0000644000151400015140000001102711653571065021515 00000000000000‰PNG  IHDRÛuH÷‰bKGDÿÿÿ ½§“ÌIDATxœí{PSGûÇ7!`€¼Q.bEPIAl¥£"))â"AK!`g”‹Ó™ *-u´:*•ÈExÅK´€£¶â%Ö¢¥"êX ê(I Ð¹%rÉùýq~ïé19‰!\rÀýüµç9û<ûìî—ÝåœLBA@ ¤ªï ·€Š„ ¨H¹€Š„ þâúõëéééúJò~RQQ¿|K‘ÍÍÍ—/_öööÑŒ ï+ÿý÷“'O”Œ4Õz©©©#’ä}G ìØ±CÉÏ‘r !P‘r !P‘r¡‹"Ù8V¯^‘‘ÑÖÖ†¯ —Ëù|~ttô²eËâââNœ8Ñßßùr¹\¥w¤¤¤°Ùl¡PˆV@ º! Ùl¶ÎîÄnYÉd²¬¬¬ððð%K–p¹ÜüüüžžžáHO3ƒœ‘¢ã™™™yæÌ™âââ”””®®®ØØØÎÎNôVww7Ç{úô)ÇËÎÎŽˆˆ¨¨¨HLLT(h…¦¦¦¿þú ÕÑÑQSS3ÈnŒŸß××÷Θ¼._¾µråÊŸ~ú °aÃÀªU«P¯;wîÄÄÄøùùŸÀÄĤ´´“5‹Å***RßVF ÕÕÕaaa<ÈÏÏ ÌÈÈÀö4Âþ*qÿþýˆˆÿ'N¨ùwN‡– Í6vvv"‘ÐÙÙ)‘H•*8::¾|ù-Ï™3G&“¡wWWWuuõ‚ ÔEþý÷ß³²²bccsrrîܹ“——_XXˆÍSiiiFFÆwß}w÷î]T %%%b±øÈ‘#?üðCuuu~~¾61ÕyݼyóÇäñxGŽéèè8|ø0àìÙ³€îîîíÛ·;99?~<>>>''§­­ _ÏZZZø|þîÝ»ïÝ»wêÔ)Âø€¤¤¤êêꤤ¤¢¢¢æææw!äôéÓÛ¶m«©©ùí·ß222öïßÿêÕ«ãÇk%>>‚ (=ʰ··477cc5uêÔ©S§jî/ …BÁ G^ÃthÉ(AòòrOOOô’Ãá;vÌÝÝ;JÊåòS§Ná»íêêÚÝÝ][[{ÿþý­[·¦õÆÆFÀ«W¯ÐÃ033Û¿¿­­-øßqB›€ê¼”æÏ›7oÒÒÒÒÒÒ>ùä“ÞÞ^ì8UÌÍÍ©TªX,F!‰P!ªÆG$==ÝÞÞ=Q(”>úèܹsšƒô÷÷´¶¶âC¡*·°°hjjš6m ¡¡¡²²’Ëåj9J„}'y Ó¡%:îÚmmm‰¤µµµ¦¦æ›o¾‹ÅŸþ9z+**J*•nÙ²¥ªªª±±ñÆñññ–––øg%èÆ½oß>ggg&“©[(™™™B¡ðéÓ§¹¹¹Ÿ}öþÖ¢E‹rrrš››Ÿ={–œœ\ZZªMÀyÉd2@ooo__FëééAÏaÝÝÝø 4Íf_$Y[[ûøø„††â#°Ùì²²²   ÝÀàp8[·n•Ëå>>>ø":::333&&†B¡xyyñx|øðñãÇ¿úê«7n(E‹ˆˆËåIIIr¹ÜÓÓëa÷îÝëææF¸ƒc޼’QóPBÁŸ9NŸ>víÚ5È{ˆT*U5¾¥È)S¦„††ŽT>c‰„þì™Ù¼yÍï® y¥O-¥÷ÚÝ(/÷_‘h¿¾ Às$„\@EBÈT$„\@EBÈT$„\@EBÈT$„\@EBÈT$„\@EBÈT$„\@EBÈT$„\@EBÈT$„\@EBÈT$„\@EBÈT$„\@EBÈT$„\@EBÈT$„\@EBÈT$„\@EBÈT$„\@EBÈT$„\@EBÈT$„\@EBÈT$„\ÀïØÕ‘¨mݺ¼¾¾~ôR&ë•Hºlmÿý¡ðÙ³m23¹zÊnt£ãïk¿çØØ0åòž††¿ñƧOÿÿÇÝ)àï寮Æp×Ö‘Õ«çÓhêFúшf3†€ŠÔ‘ÀÀ¹ýý*•ÂbÙÙÙ™|Jc¨H±±aÎkO¥R”ìT*\ T¤î„„|¤ªHAÜõ’ÏØ*RwüýÝ”TP==-,zÊh,©;&˜.\èd`ðï"2O) "Epð<ü]ê²e,=æ3€Š~~®4šZ¦Ñ¨ŽËþC×oJ£¨ÈAÁ`ŒóõuA7îþ~dÕª¹úÎhÔ9XV­òP(ccCÇEßéŒz " ›ílllD¡€¥K]ǃoeËÀFP*•Êd²aJeôÂáÌ*/Èf;ˆD"}çB:ÌÍ͵¯?0EŠD¢–––¦4öqqa\»6ÎÌìM]]¾s!³gÏFE&NœèâOKoáå…P(||ØúN„t‚ºÀsä@¥RxøàƒÈÈHÍO…ár¹ †¶Ó¤P( C‘é0öYZZHxëÙ³g–––h™Éd¦¤¤¨swwwÿúë¯ÚÚÚ¯_¿Þ°aCjjª««ëðeŽçöíÛb±¸±±1??¿½½}îܹh&„ˆD¢'NþríÚµæææ¹ ýY^^nkk+•J§Nš1cFWW ··7))iÒ¤IVVVIII½½½èþxåÊ{{{@ššjoo?qâÄÈÈHlPõœ;wŽÅbÑét‡ÂÂB@__¡{kk«©©©±±1~/ÆÊžžž€É“'•ÍZÉ`ddTPPpôèÑŒŒŒüüü‚‚CCCuIa×T¡P(qqqçÏŸWß/-c^ºtÉÑÑÑÜÜ<##²²²™3gZYY%$$¼yó†Ð¨­,´g@úÕrŒŒŒŒŠŠjjjš4iÒÝ»wQãîÝ»ƒƒƒ_¾|ùðáùsçnÛ¶ ýS^ºtéÕ«WÓÒÒ\\\>|X[[;þüÄÄDu^ãÆãóùb±8//F£uvvîÙ³‡ÐýèÑ£………ÈÛËV~§sÇØ¶m ==oÖ®!Dkؽ{÷˜L¦æÖÑ»êbâ¬X±¢½½ýÌ™3€ÖÖV4‚¯¯o]]]ee¥££cZZ¡Q³tX#‡E‘R©ÔÎÎŽÅbá3ž5k–X,FËnnnh>|ˆ ÈÌ™3Ïž=‹Þ}òä VVõ’H$†††{÷î•J¥ …¢£££¿¿_{pp°D"AtU$探P( ¸\.¾¿ÃÚ5ä]ŠT×:jQ@  Òßß¶…ÏA¢¢"GGGB#¢²(A;wೡÓßú¸¿™™ÚCô4F§ÓkkkUã¨z!róæÍSSÓE‹]¸pA{GGÇÊ•+Ñ2~’ÐOè ïR$Þ¥°°ÐÌÌìúõët:½´´tdº†)òäÉ“š[Ç*ÆÄ¨««Ã·…FÉd¨±¦¦†N§U£á!Å9ðêÕ«ÌÌL‡³uëVÌhii‰ «T*­¬¬DíèiÌÆÆæÅ‹¨åÁƒß~û­:/™L¦P(Š‹‹%Itt´¿¿¿D"!tÿå—_üüüð‰õõõ„B¡6½Pr‰D {öìñòòJMMåñxÿüóÏtM51A²²²–/_®¹u-cªž¡¨uuu666ŒCÉ€ô«ÍÙßßÏápvíÚ%‘H&Ož\^^ŽÚBBB^¼xQSS3þü7âÿ”SSSY,Vmmmmmí‚ bbbÔyÉd2:^RRÒÒÒ’M§Óe2¡;—Ë …hô^^^Þëׯƒ‚‚n9ìèè@ˆÖH¼»B¡X±bÅâÅ‹Ñ-¯§§‡Åb…‡‡@׸§? ÀÎή­­M›ÖÕÅÌÉÉÁ"Ü pk$›Í®¯¯¯ªªrrrÚ¾};¡Q³H±k:tèÃ?D7¬ŸþÙÚÚ=е··¯_¿ÞÜÜÜÂÂ"66¶«« ?pr¹<11ÑÆÆÆÌÌ,<<\*•¢vU/AŠŠŠ¦OŸndd4kÖ¬²²2B÷žžžeË–áKOOg2™Ó§O/++CÛííí]¸p!ƒÁ@T©ä^PP0nܸ?ÿü³TUUQ©Ô’’’áîòö·L™2%""?Íš[×SI…ø2!77wêÔ©–––›6m’Éd„FÍbÐA‘ûþÈÇà'vÇ< NNNJÚ 4jF Ìž=ÛÊÊJ{—±ÿÎ2º€Š„0~üx§qÈ»6d»6dÔ !P‘r !P‘r1àï´ËåðÛm ÃÇ€ÙÑÑÑÑÑ1©@ þ „lÀs$„\@EBÈT$„\@EBÈÅÿjCá$ê[‚IEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMXPathEvaluator_8hpp__incl.map0000644000151400015140000000003511653571065020244 00000000000000 XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMLSResourceResolver-members.html0000644000151400015140000000636611653571065023701 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMLSResourceResolver Member List

This is the complete list of members for xercesc::DOMLSResourceResolver, including all inherited members.
DOMLSResourceResolver()xercesc::DOMLSResourceResolver [inline, protected]
resolveResource(const XMLCh *const resourceType, const XMLCh *const namespaceUri, const XMLCh *const publicId, const XMLCh *const systemId, const XMLCh *const baseURI)=0xercesc::DOMLSResourceResolver [pure virtual]
~DOMLSResourceResolver()xercesc::DOMLSResourceResolver [inline, virtual]
XQilla-2.3.0/docs/dom3-api/namespacemembers_func.html0000644000151400015140000000371311653571065017411 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
 
XQilla-2.3.0/docs/dom3-api/inherit_graph_1.png0000644000151400015140000000320011653571065015741 00000000000000‰PNG  IHDR(kCoGbKGDÿÿÿ ½§“5IDATxœí›oHS_ÇÏu[,œ¹´hF±ÉÀ²ˆU2ßTa±DW© V#­ÀôE¾¨^½ „Ù6BòE„­? Ù²,È?½°9W¶u]‹Ô­eyóž^¼œvï®ëšúûÝÎçÕ=çyÎsžç~½ÏÙ?)! ÈŽ”ùN€0+]å ÑUž]剸\®ÆÆÆùJ…0ŒFã… ¸áoº†B¡G™L¦9ÏŠ0#ž={–žžŽÏ(ùN‡c®ò!ü87CÎWyBt•'DWyBt•'DWy"]׋/RuéÒ¥™'Aa¬X±âðáÃápXÄ``€¢¨™ï+‚Íf£„زe‹N§‹Åbœ§Ïç[°`Õj+$--m÷îÝ~¿Ÿ_#Çìå/QW¡Íf[¾|¹Ýn÷ÔjµÓôx<4MÛ·oG"‘‚‚‚ÑÑQi¹%¹£8{÷î¥iš¦iÇ §¸wïÃ0W®\á<Ï;·yóæ²²2¼?º\.–e<Èy"Î “b ‘`twwSåt:ýýý"ž^¯wÚ˜¯×Ë Y–5õõõÒb&³còð£Y­VµZýîÝ;¡ÛíV*•½½½ÈWH ŒñM“Éd2™ð‰Ï«Íf+**Ú¶m[nn.÷Èâí‘»6 €%K– ùÑÑÑŠŠ ­V«ÓéΜ9óýûw~pŠ¢Ž;vÿþ}4d¦¦¦&+++33³¦¦†aÜ™oÛQ|9"ûö-ÉÚKKK·nÝZ[[ !´X,ÕÕÕk×®ôT(€Ÿ?&ùÒGŠ®B›ÍVZZ Ø¿¿x+îìì £á‰'À‹/ÜÙÙ©T*?þ !|õê5"¼eq×øäÄÄ„B¡èëëCÃÖÖÖU«VA¡ÕÕÕ¥ÑhÐunn.MÓèÚét®[·)nt€Ž777oÚ´iýúõ·nÝŠF£‰ŠMÔÕ‘œ---ø$~cU*UQQW×´7 t:Ýž={ÚÛÛ'''%†ÃïÃRt=uêT\~uuuð÷[ðöí[¾®>|Œ£aOOZ­†Bº¶´´lذ]«Õj|¯´´4<¦¸UÐÁétfff–——?þœeYñbéŠ Œ[Î/$Ÿ‰‰ ‡ÃQXX˜““3444­ÿ_8_'''ív{SSSt ‹Åb·ÛáÔŸ$:N‚Á mVV–B¡DCŸÏ·lÙ2¾„ðæÍ›»víBC­VËÝ‘‘‘Ôf9Ä­‚‹/^³fÇãq»Ý’_u£W³ô^% ½yó&,\¸PB„?Öµ££ãÓ§Of³9uв²2¯×ûúõkFhnnŽD"×®]ÃW¡³D¥R•””TWWûýþ¾¾¾ºº:³ÙŒÂáðððp0t¹\ÅÅÅ~¿ßb± Ó¾}ûΟ?ÿþýûžžž;w^¿~œÈÊ^|‡üüü§OŸ¶¶¶ö÷÷çääTUU¡Ód¶A5âÄ9°,ûðáÃââbƒÁ!t»ÝwîÜ‘øž x“éÃGݱc>ò¬^¯?{ö,„°±±Q£Ñèõú¶¶6Ša˜ÂÂÂÔÔTäüåË—C‡edd,]ºôôéÓ¨'ãùdgg›ÍæP(ÄÅD"•••éééGމÅbxoä[ãvä;àÉŒŒ455éõzô¾…O¢>,8Dû°øÍ‡Þ½{×`0X­Ö?~I¿Sø–‡£¤¤$Q2†eY–e•Jo£ç†aT*•„…èûWü‹óy®ä?BJJJJÊüT.MTAæ¿Âl@t•'DWyBt•'DWyBt•'DWyBt•'ŸKlß¾}îó Ì„ÞÞ^£ÑˆÏü¦kvv6ùçœÿ#F£ýJ„ƒú? þ ç« XQilla DOM3 API Documentation SourceForge.net Logo
 

- d -

XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMComment.html0000644000151400015140000001404211653571066020072 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMComment Class Reference

This interface inherits from CharacterData and represents the content of a comment, i.e., all the characters between the starting ' <!--' and ending '-->'. More...

#include <DOMComment.hpp>

Inheritance diagram for xercesc::DOMComment:

List of all members.

Public Member Functions

Destructor
virtual ~DOMComment ()
 Destructor.

Protected Member Functions

Hidden constructors
 DOMComment ()

Detailed Description

This interface inherits from CharacterData and represents the content of a comment, i.e., all the characters between the starting ' <!--' and ending '-->'.

See also the Document Object Model (DOM) Level 2 Core Specification.

Since:
DOM Level 1

Constructor & Destructor Documentation

xercesc::DOMComment::DOMComment ( ) [inline, protected]
virtual xercesc::DOMComment::~DOMComment ( ) [inline, virtual]

Destructor.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/inherit_graph_5.map0000644000151400015140000000027011653571065015742 00000000000000 XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMText__inherit__graph.map0000644000151400015140000000122211653571066022422 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMComment_8hpp.html0000644000151400015140000000640011653571066015765 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMComment.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <xercesc/dom/DOMCharacterData.hpp>
Include dependency graph for DOMComment.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMComment
 This interface inherits from CharacterData and represents the content of a comment, i.e., all the characters between the starting ' <!--' and ending '-->'. More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/classxercesc_1_1StDOMNode.html0000644000151400015140000003153011653571065017664 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::StDOMNode< T > Class Template Reference

#include <StDOMNode.hpp>

List of all members.

Public Member Functions

 StDOMNode (T *node=(T *) 0)
 StDOMNode (const StDOMNode &stNode)
 ~StDOMNode ()
T * operator= (T *node)
bool operator!= (T *node) const
bool operator== (T *node) const
T & operator* ()
const T & operator* () const
T * operator-> () const
 operator T * () const
void ClearNode ()

template<class T>
class xercesc::StDOMNode< T >


Constructor & Destructor Documentation

template<class T >
xercesc::StDOMNode< T >::StDOMNode ( T *  node = (T*)0) [inline]
template<class T >
xercesc::StDOMNode< T >::StDOMNode ( const StDOMNode< T > &  stNode) [inline]
template<class T >
xercesc::StDOMNode< T >::~StDOMNode ( ) [inline]

Member Function Documentation

template<class T >
void xercesc::StDOMNode< T >::ClearNode ( ) [inline]
template<class T >
xercesc::StDOMNode< T >::operator T * ( ) const [inline]
template<class T >
bool xercesc::StDOMNode< T >::operator!= ( T *  node) const [inline]
template<class T >
T& xercesc::StDOMNode< T >::operator* ( ) [inline]
template<class T >
const T& xercesc::StDOMNode< T >::operator* ( ) const [inline]
template<class T >
T* xercesc::StDOMNode< T >::operator-> ( ) const [inline]
template<class T >
T* xercesc::StDOMNode< T >::operator= ( T *  node) [inline]
template<class T >
bool xercesc::StDOMNode< T >::operator== ( T *  node) const [inline]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/DOMLSInput_8hpp__incl.png0000644000151400015140000000744311653571065016714 00000000000000‰PNG  IHDRÅuq²ÒbKGDÿÿÿ ½§“ØIDATxœí{P×ÇO `xT†W@ìUP©Q|Í(H.`}"XµP¨cåკ« NgQZ¦£u¦J•ò¾â£ˆZ £mE*Z@®- Ü:@L‰ ÙûÇÞÙYÉ&ÄöBý}þ:ûÛó{œå»çl6–ELLtÀß Ð€Ð€Ð€¶.“•••%%%é2#àååuøða¥Ó©žºººnß¾ííí­Ë¤o2õõõ–––ºÌ¨S=‘$$$è>é›Ibb¢Ž3Âõ€Ð€Ð€Ð€Ð€“ ø|7&B¡jÛÚÚ.X° &&†ËåRF…B‘““óðáC±Xìäääéé¹uëVCCCÒ×ÁÁ!77—ÅbQý¹ëüùó\.÷Ô©SK—.uttôôôLMMíììüî»ïÈ¥¥¥T¨¸»»kNW^^¾sçN.—+bccïß¿wDJ¥²¯¯oL=DOõD‡ÅbTTT›ÅÅÅáááäTDÂáp¶nÝZ\\Lnz{{—––RÏu•••­ZµJs SSÓ‚‚êï-òòòT» …ÂÛ·oGDD|ýõ×!‘H$ ïß¿ÿÁ9sfxx˜4’.T{×®]¡M›61P]]êïïñâEÍaGµ9€ºdè !äèèØÑÑêïï—H$ÔZFáììÜÚÚJ¶çÏŸ/—ËŸ>F?~üøñcºåµç§¢¢"òk¾Ë—/Ïž={``!4<<okkkcc?<U/„зß~+8ÎÌ™3sssB/_¾dtïéé133311¡¯bT{ùòå!;;;¤²ÌrGçäädee%''gggçää©+ãÐTa±XÑÑÑ7nÜP‡>.-cÞºuËÙÙÙÒÒ299™:………sæÌ±±±‰}ñâ£Q[YPÐÅ¥åüÑÙÙikk[YYI?ûì³àààÖÖÖÚÚÚE‹:tˆ<Ö®]{÷îÝ£GΛ7¯¶¶¶®®nÙ²eqqqê¼úûû§L™’šš*‹333Ùlvÿ‰'ݳ²²rss‰WOYª=¦‘r§8tèB())‰nסLóÇǹ\®æìä^u1é „6lØÐ××wíÚ5ò,"#¬^½º±±±¢¢ÂÙÙùèÑ£ŒFÍJPŸþŒž¤R©£££@  ç›;w®X,&ÛÅÅÅîîîd}µµµAÌ™3çúõëäÞ††ª­ê%‘HŒŒŒNž<)•J•J¥L&Qç,‘Hˆ?«'ÊD©T†……ÑÇ;®C#ÆÒ“ºì¤E]L:¡ÒÒR‚ FFFÈ\ôú ‚ÈËËsvvf4Á£'‚ Ž;fhhØÕÕEY8}Ú³°° ë#¯B8N]]jU/‚ ÊËËCBBÌÌÌ<==oÞ¼©Î]&“mú!&Ÿ ÆÒÝ$77×¢¬¬ŒÃáèfh“ž.]ºäáá¡9;Õ™1&„Pcc#=A.—“Æšš‡ÃhTFÃõB¨­­-%%Å××wÿþý”‘ÇãQE*•VTTvò*„Ïç?}ú”´üòË/Ÿ|ò‰:/¹\®T*óóó%ÉŽ;üýý% £û÷ß¿fÍza/_¾D‰D"mF1ʽ££#66öĉ^^^ QQQÏž=ÓÁÐT #âܹsëׯלD˘ª×Ž!R@¡ÆÆF>Ÿ¯ÁøÐÅ¥Íü422âëë{üøq‰DbggWTTDÚcccCBBž>}ZSS³lÙ²={öÐO£„„@PWWWWW·bÅŠ;wªó’ËåçêÕ«ÝÝÝiiiG.—3º‡……‰D"2yÃ&33óùóçAAAˆ6Éd2‚i~¢»+•Ê 6¬ZµŠ\,†††Á¶mÛt04‚ í~Aiii`` ££coo¯6ÙÕÅLOO§" Úü‡hó“P(ljjªªªrqq9rä£Q³0¬wgΜY°`9ÕóÍ7öööä%H__ßöíÛ---§M›900@¶B¡ˆ‹‹ãóùÛ¶m“J¥¤]Õ‹ ˆ¼¼¼Y³fÏ;·°°Ñ}hhhݺuôÂ’’’¸\î¬Y³ ɼÃÃÃ+W®477'Tô4Ê=''gÊ”)¿ýöe©ªª200¸zõêxxõ'ÈÓ§O ¥_Hhή!æ( ÑÛd„ŒŒŒ3fðx¼½{÷ÊårF£f1¨êé•ÿÿôÇ444Àót{š››]\\FI™Ñ¨òyºyóæQ–IÐ+@Oo"S§NŠŠÒÆøºÀzüy`½ÆÐ€Ð€Ð€Ð€†ßwttè¾`2¢P(F}]Í 'ø•> =£ôïÛp×ON@ON@ON@ONþÕçñV±IEND®B`‚XQilla-2.3.0/docs/dom3-api/classXQillaAllocator.html0000644000151400015140000006516611653571065017162 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

XQillaAllocator< _Tp > Class Template Reference

#include <XPath2MemoryManager.hpp>

List of all members.

Classes

struct  rebind

Public Types

typedef size_t size_type
typedef ptrdiff_t difference_type
typedef _Tp * pointer
typedef const _Tp * const_pointer
typedef _Tp & reference
typedef const _Tp & const_reference
typedef _Tp value_type

Public Member Functions

 XQillaAllocator ()
 XQillaAllocator (xercesc::MemoryManager *memMgr)
 XQillaAllocator (const XQillaAllocator< _Tp > &o)
pointer allocate (size_t _n, const void *=0)
void deallocate (void *_p, size_t _n)
void construct (pointer _p, const_reference _v)
void destroy (pointer _p)
size_type max_size () const
size_type max_size (size_type) const
bool operator== (const XQillaAllocator< _Tp > &o) const
bool operator!= (const XQillaAllocator< _Tp > &o) const
bool operator!= (XQillaAllocator< _Tp > &o)

Public Attributes

char _singleton [sizeof(_Tp)]
xercesc::MemoryManager_memMgr

template<class _Tp>
class XQillaAllocator< _Tp >


Member Typedef Documentation

template<class _Tp>
typedef const _Tp* XQillaAllocator< _Tp >::const_pointer
template<class _Tp>
typedef const _Tp& XQillaAllocator< _Tp >::const_reference
template<class _Tp>
typedef ptrdiff_t XQillaAllocator< _Tp >::difference_type
template<class _Tp>
typedef _Tp* XQillaAllocator< _Tp >::pointer
template<class _Tp>
typedef _Tp& XQillaAllocator< _Tp >::reference
template<class _Tp>
typedef size_t XQillaAllocator< _Tp >::size_type
template<class _Tp>
typedef _Tp XQillaAllocator< _Tp >::value_type

Constructor & Destructor Documentation

template<class _Tp>
XQillaAllocator< _Tp >::XQillaAllocator ( ) [inline]
template<class _Tp>
XQillaAllocator< _Tp >::XQillaAllocator ( xercesc::MemoryManager memMgr) [inline]
template<class _Tp>
XQillaAllocator< _Tp >::XQillaAllocator ( const XQillaAllocator< _Tp > &  o) [inline]

Member Function Documentation

template<class _Tp>
pointer XQillaAllocator< _Tp >::allocate ( size_t  _n,
const void *  = 0 
) [inline]
template<class _Tp>
void XQillaAllocator< _Tp >::construct ( pointer  _p,
const_reference  _v 
) [inline]
template<class _Tp>
void XQillaAllocator< _Tp >::deallocate ( void *  _p,
size_t  _n 
) [inline]
template<class _Tp>
void XQillaAllocator< _Tp >::destroy ( pointer  _p) [inline]
template<class _Tp>
size_type XQillaAllocator< _Tp >::max_size ( ) const [inline]
template<class _Tp>
size_type XQillaAllocator< _Tp >::max_size ( size_type  ) const [inline]
template<class _Tp>
bool XQillaAllocator< _Tp >::operator!= ( const XQillaAllocator< _Tp > &  o) const [inline]
template<class _Tp>
bool XQillaAllocator< _Tp >::operator!= ( XQillaAllocator< _Tp > &  o) [inline]
template<class _Tp>
bool XQillaAllocator< _Tp >::operator== ( const XQillaAllocator< _Tp > &  o) const [inline]

Member Data Documentation

template<class _Tp>
char XQillaAllocator< _Tp >::_singleton[sizeof(_Tp)]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/classXQillaExpression-members.html0000644000151400015140000000610111653571065021011 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

XQillaExpression Member List

This is the complete list of members for XQillaExpression, including all inherited members.
DOMXPathExpression()xercesc::DOMXPathExpression [inline, protected]
evaluate(const DOMNode *contextNode, DOMXPathResult::ResultType type, DOMXPathResult *result) const =0xercesc::DOMXPathExpression [pure virtual]
release()=0XQillaExpression [pure virtual]
~DOMXPathExpression()xercesc::DOMXPathExpression [inline, virtual]
XQilla-2.3.0/docs/dom3-api/inherit_graph_41.png0000644000151400015140000000324311653571066016035 00000000000000‰PNG  IHDR(ž½ä÷bKGDÿÿÿ ½§“XIDATxœí›oHÇ?s»;‹UêF[ÔÄÜ =˜ýA‰$÷ ”‚ ÌÌõ‡þ(Ä¢$Gö@ZDô,±H¢ÁÒŠU‘™KЊ°áŸ"]퉹¬ty;wº}Žk›çfb¿£{=ú~?÷ùÞçóý¼ï³û26Bd¤CÚßN@&5dÁ$†,˜Ä“*áÄãñÔÖÖþ­Tdb·ÛI’ä§¿ 6::ÚÖÖVRR²äYÉ$¦¥¥åĉB‹*ÞéÞ½{K•Ì<(Š‹ü“²`CLbÈ‚I Y0‰‘²`ïß¿W©T---¼Åívã8Þ××ÇM'''ÏŸ?¿iÓ&µZ½uëV‡Ã1;; >Ÿ;óÄæB!`ÕªU»wïöûýÉ,äAY­VµZê6ERòù|âHe©’²`[¶l¹xñbeeå¯_¿`bbâÌ™3555yyy … Þ¼ysõêÕžžžªªª¦¦¦âââH$’‘‘qáÂ…TÃuuu‘‘ÇF­Vë¼K¾|ù¢Õj¹ñÈÈHssó‡R»„q¶Ù¤@\.WŒ%! ÃX,–“'O"„NŸ>ŸŸÏ²,wéܹs………³³³¼3MÓ999õõõ¼ehhˆ‹Â憆†øéðð0LLLˆ/^7DªÄ¤$´$Œõ‡ €ËåúÍ"œ$)BèÝ»w*•êÊ•+Aôõõñv½^ÿüùó纺ºÂÂÂx„›yüøñæÍ›—-[¦×럮°:@ÆÆÆÄj4Ðét1c„P0<|ø°F£Y»v­Íf ‡ÃÜ­ÚÚÚ Cgg'444˜Íf­Vëp8srrV®\i·Û¦$´c%Üã£Gòòò‚X¿~}ccc2u^4ÁBUUUP[[Ë[‚Á üøñ#Ƴ»»;++KD0Š¢p?zôèððpSS|ÿþK×ëõ†B!Š¢|>ßÞ½{ æ](Òaååå;vìøüùsoo¯Åb¹|ù2ç°k×®ööv𦠬¬Œ¢¨;wîÀ¾}û(Šºuëüüù%Ýañ{¤iš ˆúúú@ ÐÐРR©hšž·È‹&X4ݳgR©´Z­¼‘ŒÛ˜®®.­V+"Ã0?~¤i:‰x<¾Ân ÃH’Œ)MÂ…s Ʋ¬R©ìïïç¦<0™LœCoo/_ žžÎ9f̧´0ÁÆÇÇ1 »~ýz0ŒF£¡P(‰Ì[çxÁx¬onnîèèhooommu»Ýœ1##C¯×{½Þg¯×k6›Eî†ãøàààÎ;óóóN§ð_–e;::L&S’ ãD"F£‘›šL&î¥ÂôV¬X†ÅŒy„OJú™™™/_¾|ýúõºuëH’ìììLK[Pñ…ê%Ùa_¿~ÍÌ̼}û6BÈápèt:¾«l6I’ü¡cÿþýwïÞÍÎξyó¦H‡MMMáv»£Ñh8†¹ç˜ç7áBñà¦>41Ÿ™Âˆ ÇÙÙÙOŸ>åýT*Õôô4š¯Ã¦¦¦^½z…bÆét*•ʱ±±yK Þa¡S§Nmܸñرc`³Ùt:]EEwõÒ¥Kß¾}+**zöìÙàà`nn§?.rO†aX–Åq<×ÔÔ@(J&‘…Ü I†a¥¥¥•••~¿¿¿¿ßn·———§¸{8räHEEÅ“'Oü~ÿ‹/¬Vë¡C‡‚àâãr(Šâââû÷ïSŲ,†aË—/O5:@êæt: ‚øôéoyûömZZZkk+7¥iÚf³Y,–ôôt£ÑX]]M’dii©ø)ñÆYYYƒ¡®®®¬¬lõêÕ(‰K¸pfffûöíjµÅ:ÆÇÇ<¨ÑhÖ¬YsöìYþ”(|¢Å;lffæÚµk6lHOOÏÍÍ­®®žœœä|ÆÞßårFÇÍf³Ûí¯3wÑN‰ÉÃ0Lww÷¢ßö_ ^°¥ø.ÇñmÛ¶-A ùË_‰! &1dÁ$†,˜Ä“²`CLbÈ‚IŒ¿ü-**Zú XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMStringList Member List

This is the complete list of members for xercesc::DOMStringList, including all inherited members.
contains(const XMLCh *) const =0xercesc::DOMStringList [pure virtual]
DOMStringList()xercesc::DOMStringList [inline, protected]
getLength() const =0xercesc::DOMStringList [pure virtual]
item(XMLSize_t index) const =0xercesc::DOMStringList [pure virtual]
release()=0xercesc::DOMStringList [pure virtual]
~DOMStringList()xercesc::DOMStringList [inline, virtual]
XQilla-2.3.0/docs/dom3-api/DOMLSSerializer_8hpp__incl.png0000644000151400015140000002730411653571065017724 00000000000000‰PNG  IHDRÝuÜ ÏbKGDÿÿÿ ½§“ IDATxœíÝy\õÿðÙe¹‘ûP@äÁEHÞ"©™&^y¥•©Yj‡¢V_R3ýV’’dZ©e‰'ž¤RI!*rˆrÉ}_ ,°Çüþ˜oã¸,˵0¯çƒ?–9ß3ûþì¾wç³óá$I«¸l¨ËzÔåìC]À>ÛtÌüÂvÐyQQQl‡Ð¡.€>¦¤¤ä÷ߟ:u*Û@‡•––>zôˆí(z)ÔåÐ'°tXttôÎ;ÙŽ —Bÿrö¡.`êrö¡.`êrö¡.€þiÃÒ¥KwíÚU]]Í\ ±±1,,lÍš5/½ôÒÛo¿}âÄ ‰DB¯»råJ’$™Ëoß¾}Ú´iÔÔ&¡PxèСeË–Íœ9såÊ•Gmnnns–bÓ¦Mks®âÅ:JîÑ@wÃ} ß 2dˆT*ÍËË‹ˆˆX·nÝ÷߯££CDCCÆ  Ö¯_onnž}äÈ‘{÷îíÛ·ËåQ\\œ™™iggGmJ $&&*ÞÝ×_]RRdbb’››ûõ×_ ‚Í›7+ž¥˜ŽŽÎ²eË”µôfø¾ú-}}}CCCccãÑ£G2ä·ß~£fýøãúúúû÷ï÷ôô´´´œ4iRXXXqqñ•+W¨ÜÝÝ£££éMýý÷ßnnnŠwwûöíµk×ÚÛÛëëëóùüÍ›7ÇÄÄ´9K1==½uëÖ)k1èÍP—À€ÀápæÍ›KýµjÕ*ê«qІ†ÆÒ¥Ké!â§NMweùã?¦L™¢xZZZçΫ­­¥þåóù§Njs–X, óñññññ ‹ÅT§”øøøW_}õêÕ«t•þùgíÚµ³fÍZ¸páÉ“'™»föcyñ_3fÌ '*ÞKrr²Ì±Ü»woÅŠsçÎ=qâ½ý˜˜˜×^{ÍÇÇçÀ"‘HîÄ6žhêr(,-- ‚¨«««¬¬¤û¨Ðìììrss©Ç...B¡033“ ˆúúúøøø &(Þ¾¯¯o||ü¢E‹|}}O:URRÒžY§OŸ.**úöÛo÷íÛôèQjú¯¿þºcÇ{{{ê߆†{{ûãÇoذ!<<\¦»<íúõëׯ_¿víÚ¤I“æÍ›×¡½Ðîܹ¾mÛ¶ï¾ûŽþ8qîܹ]»v}öÙgwîÜ¡?È€ºà8ŽT*¥s¹ÜÉ“'S]YþùçŸQ£Féêê*^}ìØ±§NúꫯFuíÚµå˗߸q£ÍYW®\yï½÷LMMmmmׯ_GM_·nÝèÑ£544¨ÕÔÔŽ9²yóf###SSS‚ êëëYZZºqãÆí…öꫯjiiMœ8‘ @@Mܰaƒ¥¥¥““Ó[o½E_X;:¿û€"??ßÜÜœ CCÃŒŒ wwwæô¿S§NÝ»wïš5kÚÓ‰¥±±ñï¿ÿž:uª“““““Ók¯½vìØ±°°0///³‚(..^¸p!½mmmê••sû</??ÿ‹/¾ …-¿Þ–‘••uâĉÐÐPUUUjJ;÷B322"‚Ãá0'ZZZÒk•••)˜€º’$/\¸0nÜ8êß3füøã£G¦»˜766þüóÏÌâuÔ¨Q ÉÉÉ÷îÝÛ²eK›Û ±²²¢ºÇp8‹/*žE„žžÞÿû_ âß6Ôtï¹×禦¦ÀÀÀÀÀÀñãÇ‹D"ú÷©- …Â>úÈØØ˜žØÎ½Ðd*rJ~~¾­­-AyyyTáÞÚDèôc€~«ººº²²²¼¼<11ÑÏϯ¨¨hÉ’%Ô¬Õ«WWUU}øá‡qqqùùùýõ׆ Œ_yåzuª+Ëþýûœœôõõånœ¦©©ùâ‹/îܹ366¶¨¨(%%åСCÔ7â f1iÒ¤ððð’’’¬¬¬mÛ¶;wND"±XÌãñš››©Þá r—üòË/çÌ™ãêêÊœØæ^.]º¤¸c A¡¡¡?þî»ï¼½½L€NÀ÷åÐoѽ«MMMù|þáÇéþZZZ‡>zôhXXXaaá!C¼¼¼/^Lwü L›6íüùó>>> 6N¹uëÖ¶mÛ~úé§ððð‚‚ƒiÓ¦½þúëÔ\³Ö¬YºvíZ‡3yòäõë×———·ÜŽŽÎ† BBB455—/_îååµmÛ¶ÐÐЖK^¿~ýæÍ›ß~û-sJ›{ùâ‹/ÜÜÜèó#׌3¶lÙÒØØèååµbÅ ª×ŠÌD«€b™íz¹_ýõÕW_½uëÛ +W®”9çr'*½sçN¼ïÈ…~,ìC]mÐÖÖž;wn{&@§¡.€6èëëøá‡í™†º€}¨Ë؇º€}¨Ë؇º€}¨ËØÇc;€Îغu+IrÄbíæf‡ÐÒ*f7±X“DzC ±X£7D%•òêê,UUë„¶cè½8ú ±XúäIÉ™3·Îœ‰®«S««ã‘$GUUjdÔhgWÅVTõõj™™º ª%**R¶Âh©¼\3-Í`È+«Í—z¡—žnH=_<9~¼#Ÿ?tÔ(K>ßÒÚÚ˜ÅÀzÔåÐ{57‹r“’ò“’ò’’ò³²JÅb©™™®§§­‡‡ Ÿo9bÄ]]M¶ÂËϯ ¾™8}úˆ;}lmMØŠ¤5QQ)ÿùÏ™šá¦M^k×NQScùiII ýlÞ»—SUU¯ªªbccÂç[òùCù|K77+Öƒ` êrèED"ɃOéÒ-;»L$’ëŒ=Œ.ÝÌÌôØ“hj‡†þ~ðà-KKƒ“&9°Q«EGŽüùå—Q¦¦º¯x{;³Ñ3Ì2ýþýœÊJ”é0 ¡.6I¥ä“'%Te–””—’RÐÐÐl` =v¬u¯*Ä™~ûíîž=—‚F_ßÙ«WOPUUa;¢¶×|öYdDÄý‰탂|³‘Ì2=>þiEEL™îêj¥®Ž2ú-ÔåУH’LOVˆ§¦ÖÕ5ii©¹»[{zÚôÎBœ–šZèçw666sùòq[¶Ì23Óe;¢Ž‰êï699Õª ¾¾³uu5ØŽH‘6Ët>¨††*Ûa( êrèviiÅt!ž–VT[Û¨¡¡:jÔ³êÊÎÎTE¥Wß¶µ¼¼.(èü™3÷ÝÝ­ƒƒ}øü¡lGÔIR)q/8ø‚DB~ðÁ‹o¼1±—Ÿy³Lðàiyyǵµ5E™ýêrP¾²2ABB.]‹—”Ôª«óøü¡tý4|¸)×7ÊA‘HrøpthèMuÿy/¿ìÊápت«jk…Ü8|8ÚÑqppð‚^°e;¢c–é ¹ee™2}Ô(KMM5¶ÃèÔå uññO™…¸ªªŠ››]ˆÛÚšô‰~Ø2nÜH <—Ÿ_¹q£×;ïLïgu^VVY`à¹ßäíí²`èPC¶#êß²§x÷n¶ŸßÙG V¯ž¸eËÌ[–%%åùù½?gÁwÿWŒuØŽ¨ÛÕÔ4¤¥ә߲L;ÖÚÀ@›í0 ÿC]0pQcúPýRèÁ5ŒtÆŒé]ƒkv·‚‚ª   ‘‘‰S¦8ùØÙ™²ËH’ŒŒL º 4nÚäµnÝÔ¾ø›ÝN«­>~\D—éOž”$É,ÓÝÝ­ Q¦€ò¡.@d×|ô¨°¾¾I__ËÃÃf@â´¦&qhèïÞ21ìӫƨgPØ|ðàÍÐÐógÌÉvDìh³L3f˜‘Qÿ¿ª=u9@&3¸æãÇEA£¦¦š‹‹…§§­§§Í@+Ä™~ûíîž=—kk…ï½ç½fÍd I#WaaõîÝ—NŸ¾7i’Cp°ƒÃ`¶#bYmmããÇ… ÊôÑ£‡ „Î?ÐP—ô7%%µqqYqqÙIIyiiŵµÂ>7¸fwKM-ô÷?û÷ß™ ºüñ˃ÐO&í“áï6#£dÕª ¾¾³ûÙï}»¢Í2ÝÍÍÊÄdÛa@߀º Ï+/¯{ðà¹1}ÔÔx®®}rpÍîVQQ·gÏå_~¹ãê:48x››Ûõb±ô—_îìÙsY*%?øàÅ7Þ˜8À?ÝÉ%4¦¦>+Ó32J¤ÒçÊtWW+SS”é êr€¾§²²þþýœ–7cöô´ñð°é»ƒkv+±XzìØí}û®©©©üç?sûß-º{FMMÃ_\ûá‡ÛNNæÁÁ>žž¶lGÔ«µY¦óùCÍÌtÙz Ôå}@MMÕ/¥µÁ5-úÇ0ÝäæÍÔÀÀs¹¹•›6y½ýö4œ«.ÊÈ(õ÷?ýØÛÛùÓOZZ°QßPW×ôèQAkeºƒÃ`‡ÁŽŽ½?À@†º 7jlÑU85¦TJ2×tr24}|Ûöôi…¿ÿÙ¨¨ooçÀÀWllLØŽ¨ÿˆŠJñó;[V&xçiï¾ë…Îv”Ü2]OOËÁÁŒþBe:À€‚º W\“ÓgØ0#ª_J¿\³» Ÿ~åÇclmM‚‚|&Mr`;¢~H$’üðCÌçŸ_4HsÇŽ—Ð;¨+êë›RR ’žaWWWÓÑq0]¦;8˜á ôc¨ËØ!IñÃ_Äðé=&!!×Ïï̃¹ ¸ûû¿‚{x+WCCsFFIZZ1U©'$äŠD]] GÇ!(Óú ÔåÝEfLŸÔÔºº&==-j4âJWPPt!22ÑÃÃ&8ØgÔ(K¶#pH’<}ú^HÈŦ&ñ¦M^ëÖMÅ•Šn"I²²Êè——Äļæfñ A#F<+Óíí͸\”é} êreJK+¦ß)ÓÒŠjkÿ7¸&õNééi;l˜Û1öCMMâÐÐߺeh¨ýé§ ½½ÙŽh@khh>tèæ7,- vîôñòrb;¢þe:@ÿ€º KJK‰‰¹IIyqqÙ‰‰yµµBuuu[bŒéÓ3.^LصëRqqÍ»ïNçéššjlGAÙÙe磢R&Mr Y`ooÆvDˆL™ž””×Ô$ÖÑQwr2G™Л¡.è˜ŠŠºøøç×TUUqs³¢ßí0¦OIM- 8{ûö“E‹Æ~ôÑœ!CôÙŽdýõWº¿ÿÙ¬¬²U«&lÛ67÷dE{Êt;;S à À:Ôåm¨ªª¿w/§µ1}<=mœœÌQˆ÷°ŠŠº={.ÿòË{ûÁÁÁ>ÿ÷vlG­¢î¥øÅW45Õ¶l™µlÙ ¨ÿØ%·L×ÖV9e:ËP—Èjhh~ø0ÿîÝljˆÍ’’Z‡ÃÓgäH  ɱXzìØíýû¯ñx\?¿y ŽÅµø>¡ªª~ÿþëÇŽÝvv¶ šïéiËvDð?b±43³”.Ó““óEªª*66&ô‹ÞèÑÃðí@@] gpM‰Dêà0ƒkö6·n=8ûôiźuS7nœ®§§ÅvDÐ1øù‰‹Ë~ùeW?¿y––lG²ÚS¦»¹Y©©ñØŽ B]Qs³8!AvpMSÓA®®Vžž66#F ÑÕÕd;LxæéÓ ÿ³QQ)Ó§;íÜ9øpS¶#‚΋ŠJùä“ˆŠŠúwÞ™¶qã uuTx½—L™þðaPØŒ2 › .‡A"‘¦¤PýRèÁ5uF†[‰÷ruuM{ö\þñÇssý  ܱ ›¼ùÍ77 µ·oiñb¶#‚viO™îêj…ÏZƒºú'æàšIIyÖ×7h‹Á5û ©”(•JmmMoÝÚNý@"‘=z{ÿþk\.gÇŽ9K—¾€€\%%µûö]=y2ÖÅÅ28ØÇÃÆšž’R0sæ>’$lm/_þ#òö{Ì2ýÁƒ§åå(Ó¡B]ÝN$’ÔÌL—í0¡[¤¦Íû¥P("I’Ëåøû¿²nÝ”èèÇç²²Ê^}â–-3qaÚ”˜˜ççwöþýœ—_võ÷Ÿgn®ÿÒK_¦¤ˆÅOÅÍmèéÓïbÈÉ¥Í2ÝÝÝÚÐe:ô1¨ËAŽœœòÀÀó_}µLO¯3=¦ÏÝ»ÙqqÙÔàš††ÚîîÓg`)+Ìœ¹¯¼\ K©)ZZjsçºýúë]7·¡AA Ü݇±!ô!‰ôĉØÏ?¿,K—.õ ÿ“~ÿâñ¸>>c¾új»‹˜ezBBnY™€x¾L3f˜‘Qço¿{÷¥‰&N´W^Èr .‡ç…Í_ýû7ßÜ‹¥¿üòöäÉŽíYKfLjpM}}-ú®)(Ä ¡°yÞ¼¯ÒÒJÄb =QUUÅÕÕjÅŠqK–xàˆÐ 55 »w_>þAMùþÅår¶m{ióæ,ƽ³LOLÌ--•-ÓGÖ¡¬\]ýËʳgÚ¹ÓÇÒ¿g€î‚ºž‰ŒLü䓈ÊÊ:‰„TUUÙºuÖ¦M­¾É¥¥Ó…øãÇEA£¦¦š‹‹Ÿ?ÔÓÓÆÓÓ…ø@&•’k×½~=E"‘ÊÌâp8—.½{h@§íÙs94ô†ÜÔ:p`Å‚î¬D½Y›eº››•‰É ÖV//¯ãóý‚PQár¹ÜM›¼6nô¨¥ÐP—Aă¹Û·ÿ–’R@’AAp¹ooç£G×ÐË”– sãâ²ãâ²ÒÒŠkk…êê<ªw8ן}véàÁR©œ—ëâbyéÒûø¾:!;»lÊ”=Ì‹0 sæÌƱcmz:,èS˜e:uC^âù2ÝÕÕÊÔôY™~ãFêk¯…SoŽAðx\]]Í€€W0ö(êò®²²> àì™3ñ\.Gæû'ccÇ_OLÌ£þrrÊ ‚°±1vuêêjåê:ÔÅ·9Μ¹¿iÓ …¯-œððÕsæ¸ö\LÐ_¬]{ôêÕ‰Dn]Np¹}}-Ü9:„*ÓÓÓ‹ÓÒŠ©ÄóezllÖwßý!=Ë:ªwv¶Øµk~'J„º|à¢nT÷ùçW›éŸåÉ o%îéiëáaƒÁ5¡Mwîd-^|P"‘´öÒ¢ªÊ‹Åþù.C‡üóOæÂ…¡**‚à¶Všóx*ÖÖF—.}€;'BçäæV$%å''ÿï õªªzuu^s³¤e½¤¢Â•JÉ ÆÌïPou€Ö . îÝËÞ¾ýôãÇEtÇy8ß|³ÒÇgLO}ZvvÙÌ™ûšè,\.GM×Ô$&IRCCÕÉÉÜÍm(õ;GÇ!¸g9tˆ@И˜˜÷ðaÁÇù y99eR)Éãqy<•¦&ýnÆãqÇ~âÄÛH0躼¼Ê_ÜWSÓÐÚ<žŠº:oûö—^}"Rºè¹º¼°°ÅP gþ‘H„Üî¿4UU•5kÆ¿õÖxÅ400ÐÔÔìJHUUUB¡°+[€Þ ¦F¸råEEµ<—º£££áädæädæèhêèhfee 3^#P455 ºÔïB(VUU)+ž¾¢±QôäIyZZIZZé£GE™™b±„ËåG*•.XàúñÇ/²#(Ò'2¿ªªÁÛûÅËp8’$íìL>ùäÅQ£Ì»5ègdZÁs£0¤§§÷x<Ð£Š‹ëÂÂdfVS¹Š ‡ÃáH$R¹WM$é;“')ÞæÈ‘#»X—–••ue ÀºæfÉgŸýÝÔ$3f°žµµ¾µµž‘‘&còŒŒr#ìÍLLLºX‚ù®®NðùZ|¾5AX‹ÅÒ¢¢ºììšœœê¬¬ê«WSÔÕEsçâ†Ó½WŸÈü¤¤Rs¹\ý묌Œ²÷ß?½téÈ)Sp¿)h/™V ;:ÚÈ‘#MMM{6$èQK—¾,Kóó+Ÿ>­ÈÉ)ú´<'§"+«4'§¢¹YL—ËUUåJ$¤X,ÉÍ­›:uª‚­EGG+%*ggg¥l XQ[+<~|ç¢àRRR”µ)Å­uÊϯ²°ÐÇ3z§¾’ùII¿s8ApÔÕyAÐ=¦ ´llLíìLllLllŒ­­mlLð«è–­£D<×ÚÚØÚÚxÊ”ç† *)©ÉÎ.§êõœœòŒŒÒââê²2‚»ºPtu»tÍ ;`ü躤¤<]]-kkcGG3º·¶6ÑÕE ʇºž13Ó33Ó7n8Ûô ß|óõM9@À‡äCQ= u9ûP—°u9ûúv]ž››ûÆoÈLÌÈÈèâ]±èÍr¬­­W­Z%s›íúúz___WW×Aƒyxx|öÙgb±˜šÅápìííe†S={6‡ÃÉÈÈ X¼x1sEÞþ…é=‚õõÜk™uuu[·nµ±±ÑÔÔ´··hllls–bŠO=·ëç#·O uƒ¾ÞˆZêJØ„¼ëzÖQç³ÓgißútæQXX¸|ùrkkk³gÏv4T’$W®\©££C(éõY¥¼¿ôd+èÛuù¹sçæÏŸß­›ýûï¿‹ŠŠòóó=Z[[;f̘êêjj–@ ;vìÝ»w÷ìÙsÿþý>úèĉÞÞÞ‰„Z '''11‘ÞlUUÕŸþÉÜÑéÓ§O:¥ôø¡ôõÜkiÓ¦Mñññ¹¹¹GŽ9þ¼¯¯o›³Ó××ß¾}»²SŒ:]L-7›••ellÜŲôõFÔ2å”~,Ð/õé̯¨¨=z´––Ö©S§âââ–.]ºlÙ²k×®u(ÔÂÂÂ'N}zÑ¢EÌ ~ðÁ#FŒX·nùü5#¹Á·v˜rO£ŒëׯÛÙÙìÚµ‹ø÷²ÎùóçMMM7oÞÜÔÔ$w¢â|èIÈ=åæ^Kººº¬¨¨ þW­Zµzõêââb33³;wîP÷ìÙ³páÂÜÜܤ¤¤1cÆìرƒú°2{öì›7o:;;'%%%''¿ð [·nmm­ºº:uuõ°°°¢¢¢#GŽðx¼ººº½{÷Ê]ýûï¿ÿé§ŸH’Ü¿¿©©é™3g /]ºdnnN׊+¼¼¼233“’’\\\©<[¶lYmmíwß}GÄ’%Kjkk¿ýö[‚ ÊËË™›%å}Hº{÷®¾¾>I’T /++“9?111fffÔº?ŸŸœœœœœ:Éj+èX]~àÀWWWêÚÁÙ³g‡ Bõgª­­}ã7 ŒŒŒÖ­[W__Ï<[·n577×ÓÓ[¶lÝ3©åZ$Iž:ujøðájjj#FŒ8þ¼ÜÕ›››_zé%:*±X¼wï^;;;mmíñãÇSyI’¬¬¬|íµ×ŒŒŒ† òÁP$÷£G˜›%Ÿïí7tèÐ+VÈœŸººº-[¶¸¸¸hii9;;‡„„Ð7?¢7MÄ7ß|#3]æ%X*•z{{Ó'­eð­¦ÜÓ¨¸ SÏÎwß}7lØ0ccãM›6 …B¹$¥ÇêräžrsOu,|>_SSÓÚÚzûöít(˜¥øü3ïß¿ßÐÐpèС\¶l™©©©Üºœ 555u†6÷B¶hM2{§ˆD¢‰'êèè´'xÅO™ÛQU'hDÝÚˆZ&³L:µ<¢ö×夼$÷„È=ŸÌõ’´'‘ù}3óI’ÌÉÉY´h‘¹¹ù Aƒ<==éÏ9í^n3‘H$ÿý§§7kÖ¬óçÏ›˜˜$¢¯¯?|øðóçÏ·le¤¼¦Á|©g.ÜþsËb+à0ŸÂèèè‘#GšššÊ}Å~###£å€^r'¶I)9C]ºrvvîÊFz˜²Ú‘Rò¿´´ôÑ£GS§NíÊFڤķd>0EFF:ÔÕÕ•ú7"""$$„êvßÛtk+èÛã}@_—””´råÊøøø†††ØØX??¿·Þz‹í XÀc;`®®îúõëÛ3ZƒvҺɶmÛæÏŸ_VVfkkûæ›oöÚ¤êÖV€~,Ð%èÇÐE¸š2ýXz#ÔåìC]À>ÔåìC]À>Ùû$VWW‹ÅbVB¬±±±°°í(XÐØØ¨¡¡¡”M¡A‚ÌhÙ dër$7°B ¶£`‡²ª“ôôt¥l g ódZ§£C†€Ò¡9ûP—°u9ûP—°ïÿEmœ˜z©~æIEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMErrorHandler_8hpp.html0000644000151400015140000000611511653571066016755 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMErrorHandler.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
Include dependency graph for DOMErrorHandler.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMErrorHandler
 Basic interface for DOM error handlers. More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMProcessingInstruction__inherit__graph.md50000644000151400015140000000004011653571065025760 0000000000000038e41660a0c9250525356b6d09dc3cb8XQilla-2.3.0/docs/dom3-api/functions_func_0x6f.html0000644000151400015140000001524411653571065016757 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo XQilla-2.3.0/docs/dom3-api/structXQillaAllocator_1_1rebind-members.html0000644000151400015140000000476211653571065022650 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

XQillaAllocator< _Tp >::rebind< _Tp1 > Member List

This is the complete list of members for XQillaAllocator< _Tp >::rebind< _Tp1 >, including all inherited members.
other typedefXQillaAllocator< _Tp >::rebind< _Tp1 >
XQilla-2.3.0/docs/dom3-api/DOMStringList_8hpp__incl.map0000644000151400015140000000003511653571065017437 00000000000000 XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMXPathNamespace__inherit__graph.map0000644000151400015140000000033211653571066024340 00000000000000 XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMErrorHandler.html0000644000151400015140000001720311653571065021060 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMErrorHandler Class Reference

Basic interface for DOM error handlers. More...

#include <DOMErrorHandler.hpp>

List of all members.

Public Member Functions

Destructor
virtual ~DOMErrorHandler ()
 Destructor.
Functions introduced in DOM Level 3
virtual bool handleError (const DOMError &domError)=0
 This method is called on the error handler when an error occures.

Protected Member Functions

Hidden constructors
 DOMErrorHandler ()

Detailed Description

Basic interface for DOM error handlers.

DOMErrorHandler is a callback interface that the DOM implementation can call when reporting errors that happens while processing XML data, or when doing some other processing (e.g. validating a document).

The application that is using the DOM implementation is expected to implement this interface.

See also:
DOMLSParser::getDomConfig
Since:
DOM Level 3

Constructor & Destructor Documentation

xercesc::DOMErrorHandler::DOMErrorHandler ( ) [inline, protected]
virtual xercesc::DOMErrorHandler::~DOMErrorHandler ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual bool xercesc::DOMErrorHandler::handleError ( const DOMError domError) [pure virtual]

This method is called on the error handler when an error occures.

If an exception is thrown from this method, it is considered to be equivalent of returning true.

Parameters:
domErrorThe error object that describes the error, this object may be reused by the DOM implementation across multiple calls to the handleError method.
Returns:
If the handleError method returns true the DOM implementation should continue as if the error didn't happen when possible, if the method returns false then the DOM implementation should stop the current processing when possible.
Since:
DOM Level 3

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/DOMLSSerializerFilter_8hpp__incl.map0000644000151400015140000000003511653571065021053 00000000000000 XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMDocumentTraversal__inherit__graph.map0000644000151400015140000000031211653571066025137 00000000000000 XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMXPathExpression-members.html0000644000151400015140000000664011653571065023230 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMXPathExpression Member List

This is the complete list of members for xercesc::DOMXPathExpression, including all inherited members.
DOMXPathExpression()xercesc::DOMXPathExpression [inline, protected]
evaluate(const DOMNode *contextNode, DOMXPathResult::ResultType type, DOMXPathResult *result) const =0xercesc::DOMXPathExpression [pure virtual]
release()=0xercesc::DOMXPathExpression [pure virtual]
~DOMXPathExpression()xercesc::DOMXPathExpression [inline, virtual]
XQilla-2.3.0/docs/dom3-api/DOMRange_8hpp__incl.png0000644000151400015140000001002211653571065016375 00000000000000‰PNG  IHDRÅuq²ÒbKGDÿÿÿ ½§“ÇIDATxœí{T×öÇOHRyEÑ"øB"šëc-ÉZåQ b¡PbÀõç{uY±ëjQû‡Ø"ÈãÔº|VíR[°µ¢ÈÕ"–Û>ª@°j€DHxe~œ»fdÐ;’ ûó×9{Î>gŸá›³Of& ‹  aaê€× ÐÀ$ '€I@O“pL5ppp°©†~ؼyó¼yó†~\“ééâÅ‹“'Ovvv6U¯1ååå)))&ÚdzBÅÆÆ˜0€×•òòrS û'€I@O“€ž&=Lz˜Ä”ßïD*•’e—©S§¦¥¥ÙÛÛ“F­V[TTtýúu…BáîîîççÇf³±¯›››\.g±Xdû7VVV»¹¹Q;çr¹^^^«W¯öôô’™!©TŠÃšá† ³ÖB(;;ÛÕÕU§Ó=|øðøñãË–-+((àóù¡ÎÎδ´4™L& ïÝ»—ŸŸ_UUµk×. „PKKË;wH‰¨ÕêêêjýÎqWÅÅÅŸ}öÙ¨ú^sÏwöööŽŽŽ`Ú´iÛ¶msuu=zô(>tàÀ{{ûÝ»wÏœ9S$ùùùåää´´´œ;w7H$Ô+1W®\ñõõÕïÜÑÑQ$¥¦¦666¶··ÕÌ^OÌ]OTX,VxxøÕ«WqõÂ… ‰‰‰x)Âðx¼¸¸¸ .àj@@@yy9ù€×¥K—ŒÜ‚`³ÙÇÖÖW+**RRRBBB¢££:„R©ôâÅ‹IIIáááß}÷Bˆ ˆS§N}ôÑGaaakÖ¬©¨¨Ài´··7'''******''§··WĪªªøøø… }šŸŸlii‰êììܲe‹——WqqqZZZ^^^[[v¹|ùòÞ½{e2Ù¾}ûÔjõÙ³gårùŠ+:¿wï^ÜìØ±c …bß¾}»víºqãFaa¡þ\®]»–——·aÆýû÷«T*l,))Ù±cÇ_|qíÚ5RÇ´Fód˜éi@X,–N§Ãe œò***|||FŒAm¼téÒÐÐÐÐÐИ˜˜óçÏ/Z´Û¹\n~~~zzº““¾ÃØÑÑEFFòùüwß}!¤R©Ž?žšš:cÆ ;;;‰D²dÉÜìܹsü±³³³‡‡‡L&«¬¬ÔuÑ¢E666sçÎE©ÕjlLKK‰D“&MZºt)¹ÐÒÍsß÷£±±Q("„ø|¾££cCCƒD"¡6hhh?~|xæÌ™¤ÅÇǧ³³³¦¦¦ªª ¯´XYY…„„Ü¿o¶ººº¶nÝ—››»zõjjË~~—{÷î‘Õ¿þú ìì슋‹ËÊÊÊÊÊNŸ>ýÍ7ßèJûE²±±>|ˆgÈhž˜»žÚÚÚ”Jå“'Oª««?ýôS…BñþûïãCIII­­­kÖ¬©¬¬lllüå—_ÒÒÒADDéŽSÞîÝ»'MšD½p¥­­mgg§F£Aõôôôöör8œîîn¼õéìì¤õŠŒŒÜ·o_UU•J¥ºyófQQV‰ŸŸ_^^Þ£GîÞ½»aÆ’’„Й3gȼiˆìì즦¦?þøcÿþýä#b´FóÄÜóÝÊ•+qÁÙÙY,çææ’¹ÃÆÆ&77·°°0''§¹¹ÙÕÕ500066ï©I¤RiiiiTT”ñFŽicc£R©lllø|~ZZZff¦µµõ|¸aÆ“'Oê{EFFöõõ}ýõ×íííÞÞÞ©©©YYY¡äääììì””‹åïï/“ÉB;wîôõõ¥Í}$AAAk×®Õjµñññ8»õ3öÜ™–©~/Åb±222†ûóOÎÎÎãÆÃÕŸþY.—çåå½DWMMM eeeD*•9r„\ȇsÏwfÎÝ»w·oß^__ßÕÕU[[[PPfê L‰¹ç;3'..N«ÕnÞ¼¹­­ÍÕÕuþüù .|¹®lmmõ}iæ ä»×ÈwÀkè `ÐÀ$ '€I@O“€ž&1åõ'¹\þý÷ß›0€qL¦§ØØXS ýTU¹xx´;:jMÈ ððð=z´I†6ÙõÌá…Pø99Iáá¾7}³ýÀ$ '€I@O“€ž&=Lz˜ô0 è `ÐÀ$ '€I@O“€ž&=Lz˜ô0 è `ÐÀ$ '€I@O“€ž&=Lz˜ô0 è `ÐÀ$ '€I@O“€ž&=Lz˜ô0 è `ÐÀ$ðÿéèY±BþŸÿ(ÈjSS›££­µõß„Æá°ÿõ¯dWWc/Ô{3÷ÑãééRRrƒúYS«5Ô£ &Z ßÑóÞ{„hÞÇŠâpØqq3i 'zÆŒq‹ÝèÞð‹úút‘‘Ó‡<¢áèÉ 113ØìþçÇ‚%‘Œ !ÙÑz2HDÄtý/+,+&f†I„ "ðgÍòÔ_¢,˜j’x† 'cÄÆþƒºD±Ù~~^ŽŽÆ^Pþ†z2Fh¨˜º>étDtô?Lùz2Æ[oñ's8ÿ=K\.{þ|±iC2s@OðÞ{Ž@q8ìàà)66\SGdÖ€ž 8؛dzDõõõEGKL޹z++NHˆ‹…¬­¹M޹óÜý;FÓÚÚjªPÌ©ôí'þ<áéÓ¿M‹Ùammíàà@VŸÓ“Z­®««òÌ;;Ý[oq'OæÃÉÑgäÈ‘õ„ ºp† «VË—ÿÓ‚þñËï¿ÿÞÏû§A!“€˜èiPXZ²MÂðô0 è `ÐÀ$ '€I†½ž‡ÃyöìYVV­{AA\.'žÿÈ’å¤;ɦM›B™™™Tã+A·~\¿~ÝÞÞÞøèø¨¡>© „,X R©Ž?Ž?E¸‡wÞy§®®îêÕ«žžž[·n¥5W‚þúô2zjmm‰Db±˜:Þĉ ._¸pÁ××ÇwëÖ-‚ &L˜pâÄ |´¶¶–,ë{)•JKKË;w¶¶¶êt:µZÝ××gÈ=::Z©T/«'Ò£Óé"""ØlvBBu¾¯tjÄ@z24:¶ê“ B¨¼¼œ ˆ¾¾><5~‚ Ž9âééIk$ŒÂŒž‚øüóÏÙlö£GH Ç£.{vvv8>¼ áñx555úýè{qùò嘘[[[??¿³gÏrW«Õááá¸L=Åø)b =QÝ1r¹ÜÎÎîÒ¥K<¯¤¤dh¦FÐééСC‰ÄøèdcÚ>© „êêê¨cá4 6VWWóx|˜´víZÒ(È“ÒÚÚzõêUlÇ»¡Pxÿþ}lùí·ß¶oßnÈK£Ñètº£G*•Êäää… *•JZ÷~ø!$$„Xoo/B¨©©i0³èçÞÜÜœžžž••åï‘!“Éž>}:SÓŒ ˆo¿ý6,,Ìøè˜Aö©¿wDa!„êêê„B¡ã @×`Ö§¾¾¾   mÛ¶)•ÊQ£F:u ÛÓÓÓcbbîß¿_]]=kÖ¬•+WR?Fb±¸¦¦¦¦¦fΜ9)))†¼4 Ç;vìØãÇsssy<žF£¡uOHHhjjÂýà 6ùùùíííQQQˆ²©Õj‚n}¢ºëtº Ì›7'‹îîn±X¼xñâ!˜Aˆr½ ¼¼<""B$µµµ ftC}æåå‘= Êú‡(ë“T*­¯¯¯¬¬ôòòÚ²e ­Ñ¸Èw{öì™:u*^êOž<éêꊷ *•jÉ’%NNNË–-ëèè N[«Õ®[·N(ÚÙÙ-^¼¸µµÛõ½‚8räȸqã¸\îĉKKKiÝ»»»CCC©effÚÛÛ7®´´ÛÓÓ3wî\>ŸOè驟{QQ‘••ÕŸþIZ*++-,,Ž;öª§F<ÿäÑ£GÇÇÇS7ÆG7Òg? Q˸‡ýû÷3F ¬ZµJ£ÑЋA_OÏýÿ§¿ÿþ»¶¶ž§{íihhðòòê'eZ£qðótÞÞÞ¤eØ_Ì ÐӛȈ#d2Ù`Œ/ ä;àå|¼Z@O“€ž&=Lz˜„æ÷ÁÍÍÍC0ÑjµýnWÓè ~¥ ž~z‚÷mLû'€I@O“€ž&=Lòÿ ³*VU¡jsIEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMRangeException_8hpp__incl.png0000644000151400015140000001211311653571065020257 00000000000000‰PNG  IHDRàuØäzFbKGDÿÿÿ ½§“IDATxœíiXSGÛÇ'$ ›²Ö*bPA+Em„ ¢DQê¸/ ÝT\Qq¹¬PÙQA¬UõBzI•Ô*È" ´\–ÕÊLbX¶œ÷Ãô9oÌV pà™ß§9÷™¹çž;fæ, $ ÃAT†;BH BƒŠ 4H BC‘—#y¹BŒ²³³åâ‡$¯«x‰4}út*•*oˆ‘ËÛ·oËËËå¥+¹Í 9:DŒD Æ¡C‡äå íA„ Ah@„ Ah@„FžWñÿŠ££#^ÖÓÓ›9sfHHˆ¦¦&näóù—.]*,,d2™&L°³³óõõ%“ɰ­‘‘QJJ ‰DÂëïÛ·¯   55ÕÈÈHع’’’™™ÙÎ;i4ÚÐ '''gðz„444¬^½z 9::¤É1ªAbH ˆŠŠ200uuu·nÝÚ´iSRR’ºº: ³³3$$DKK+((ÈÐа¶¶611±¨¨èÌ™3 €¦¦¦êêj\smmm%%%âΡ«ÔÔÔC‡]¹rEXЃ4œÁóÃd2ƒƒƒïܹPWW÷óó‚N‰ÀP/ñšššÚÚÚºººŸ~úé‘#G nܸO]¹rESSóìÙ³sæÌ166¶³³‹‰‰ijjÊÊÊ‚¬­­ î*77wÖ¬Yâεµµƒƒƒëëëß¿?Ãf:\.–5446mÚ4Há܃’H¤eË–={ö fggÀÉ¢¬¬ìëë‹?4spp`0ø#Šß~ûmÁ‚Òœ“Éd …¢¦¦óòò6nÜèêêêíí––ŽŽŽ¿þúëÚµk—-[öÓO?0 »{÷îºuëÜÝÝwïÞ——×ñÞÞÞ˜˜/////¯˜˜˜ÞÞ^ãÊÍÍ¥Óémmm€‡®Y³†Ïç÷õõ%''¯\¹ÒÓÓ3""¢½½V÷ÜÐÐàèèøôéÓ5kÖxyy]¸p¡§§góæÍ€åË—`ؼ½½ýĉ>>>/^ìîî–8.qŠŠŠüýý—.]zõêUܧH§2> óE’±±qcc# ½½Åb‰oi4Ú›7o`yÆŒ<¯ººÐÑÑQ\\lkk+\™Ïçóx<÷îÝ»ÄÄDEEE@ggçÌÌÌRSSCBBâãã9lòäÉ“èèè   ØØØ¶¶¶û÷理¤lÙ²%--Íßß?::V»yó&“ÉŒ=sæLqqqrr²H8€/¾øÂÚÚ:::šÍfGGG÷ÝwÊÊÊ7oÞ|üøqDDĹsçêêêRSSe{ÎÈȈˆˆ8~üx~~~ZZÚ?þHOOÉÏùóç[ZZbbbNžxðàH4//J¥Nž<>~ü8%%%>>~(cøƒ"yuúq‘À÷Aå¥+¢_Å1555ÇŽ«¬¬ìêê*//OJJrwwî þ§æ«x¢áëëËçó¿ÿþ{‡c``àææ¶téÒ!ŽAMM K$" %!gÐø Ah@„ Ah@„ Ahäy›ÉÔÔTKKK.Þ#6›]SSC¸Ÿ¾ñññ‘—«‘KM&ÀÔ”3Ü 3"ïL¹Í @PÐe@lìÚádô€ö BƒŠ 4H BƒŠ 4H BƒŠ 4H BƒŠ 4H BƒŠ 4H BƒŠ 4H BƒŠ 4H BƒŠ 4H BƒŠ 4H BƒŠ 4H BƒŠ 4H BƒŠ 4H BƒŠ 4H BƒŠ 4H BƒŠ 4H BƒŠ 4H Bƒ~ay@\¿^ÿX ÀC« ­ýÏ¿¼VPPظÑ~åÊ9ÃßÈý3Ù1{öÄòòãÛ·\¼lmm2¤:Ð? ÌÌô¦O7$‘Hâ§H$’……Fú¨FH ÅÇdžL–F2YÁÇÇfèãe OÏOñ=¨0ÀÃãÓ¡g”:Pôô4llL>XåHsæLÒÓ7\Q@ån#² %‘Ht:Zßå¨X²d¦¸@ÝÝ­†+žÑ¨ÐÐP]°`*…òO2)‡©ªÃÕè T>ÐéŸ ÿ<ò0:ý³ágÔ€*.´PRú穇’ÅÅÅbxã5 Ê¥E‹fP(  ÙÕÕREEi¸#% Ê OÏÙ}}X__Ÿ§'ºý)7>xߨØ8\qŒÌÍ5ÕÔ”Ó¦i¢LCCC¼ü@+**†<˜Q…>¤ššªádd#U €éÓ§S©èý†d̘OH$0oÞäád¤òöíÛòòra zÝNžÌk:Ü!Œ6@å‰ÈyÄÀAWñBƒŠ 4H BƒŠ 4#[ oÞ¼ 1VUUIü’ÐG¸% abbÐÒÒ"\³££#,,læÌ™cÇŽµ±±9~üxoo/|8aƒqðàÁ &Œ?> ŸÄ[îÝ»gee¥¬¬ljjš’’èíí•Ø¼µµUMMMEE¥¯¯/22rÊ”)cÇŽµµµÍÏχ8κuëtuuCCCù|>€D"%%%™››?þĉ)))“&MÒÐÐØ¿¿ˆ[ñá“H¤àààÌÌLx˜ššzàÀ2™ŒWPSS KMM…‡>>>?ÿü3öŸUþæÍ›t:ýã’,- Ò2çΩS§R©ÔíÛ·wuuÍ›7 ¯¯>\⥥èêÕ«æææÚÚÚ§N’äƒh4š––VDDîS¤S‰Æ¾(ÂjíÏ °víÚ¦¦&==½üü|h}ª§§Û¾zõJ__ÿÅ‹†q8UUÕÖÖV 4ƒ¾|ù²íC¤%YZ¤e~áÂ…Ïž=£ÑháááÂ3¨pYZŠèt:›Í޼{÷NdŒ€%K–p¹Ü[·nÁ¼ÉèTÄ([]â3è-P6›mlllee%ÜÙ´iÓ˜L&,gggÏš5 WZZŠaØÔ©SÓÓÓáÙòòr¼,ÞŠÅb)**ž>}šÍf ‚¶¶¶¾¾>iͽ½½Y,†aS¦L¹téÌåË—ÝÝÝd2ù?þ€Æôôt“[\\ŒaXww·Hêw‹}”@óòòtuuñ¶[¶lùæ›o0 KMMuqqö)c¾Orÿs(œy î_¿N£Ñ$ TFŠ J„Ó" €Á``wÛ•••2:1b2‘ƒ@1 ;|ø0™L®©¬¬,œe \ww7<[VV&îG¼†aOž<¡Óéjjjvvv÷ïß—Ö¼­­mÙ²e°¬¢¢òòåKüÔ‹/uuu¥¥¥ÊÊÊØ‡š/ »Å$ 4--ÍÚÚ–õõõ³³³E»xñâ¢E‹ð¶ ƒF£ OOÏØØXìCÊØÉ‰$¹ÿ9„™Ç^RR¢¬¬,Q 2Rô×_IË4VTTWÑ©ˆQÚx!݃Â>**ÊÙÙyÏž=¸QWW›Í~öì´+** _¿~ -/_¾ùÄßß_$?ííí{öì™1c†ªªª……ÅÑ£GñÛ^¸sƒˆŽŽ±K›/$&¹ÿ9„™OHH˜8q¢®®î¶mÛx<^OOÏüùóÕÕÕ±ÚÿÉþÖةD£ ua’úÁïƒ2 ôÂòH§ªªJü Ö°tú‘À–pËÈ~’„õ Ž6ÆD„Nå Zâ-ñˆ(‚Ð " (‚Ð "è÷â9þ¥bˆioo±ˆ ýê‚P …ˆ 4hŠ 4H BƒŠ 4H Bóñ =ŸogAäIEND®B`‚XQilla-2.3.0/docs/dom3-api/inherit_graph_10.md50000644000151400015140000000004011653571065015721 000000000000001e120b53dcdbe37985d7b80c22ebf280XQilla-2.3.0/docs/dom3-api/classxercesc_1_1XMLDeleter-members.html0000644000151400015140000000524311653571065021527 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::XMLDeleter Member List

This is the complete list of members for xercesc::XMLDeleter, including all inherited members.
XMLDeleter()xercesc::XMLDeleter [inline, protected]
~XMLDeleter()xercesc::XMLDeleter [inline, virtual]
XQilla-2.3.0/docs/dom3-api/classAutoRelease.html0000644000151400015140000002511311653571065016324 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

AutoRelease< TYPE > Class Template Reference

#include <XPath2MemoryManager.hpp>

List of all members.

Public Member Functions

 AutoRelease (TYPE *p)
 ~AutoRelease ()
TYPE & operator* () const
TYPE * operator-> () const
 operator TYPE * () const
TYPE * get () const
TYPE * adopt ()
TYPE * swap (TYPE *p)
void set (TYPE *p)

Detailed Description

template<class TYPE>
class AutoRelease< TYPE >

Examples:

dom-basic.cpp, dom-context-item.cpp, and dom-resolver.cpp.


Constructor & Destructor Documentation

template<class TYPE>
AutoRelease< TYPE >::AutoRelease ( TYPE *  p) [inline]
template<class TYPE>
AutoRelease< TYPE >::~AutoRelease ( ) [inline]

Member Function Documentation

template<class TYPE>
TYPE* AutoRelease< TYPE >::adopt ( ) [inline]
template<class TYPE>
TYPE* AutoRelease< TYPE >::get ( ) const [inline]
template<class TYPE>
AutoRelease< TYPE >::operator TYPE * ( ) const [inline]
template<class TYPE>
TYPE& AutoRelease< TYPE >::operator* ( ) const [inline]
template<class TYPE>
TYPE* AutoRelease< TYPE >::operator-> ( ) const [inline]
template<class TYPE>
void AutoRelease< TYPE >::set ( TYPE *  p) [inline]
template<class TYPE>
TYPE* AutoRelease< TYPE >::swap ( TYPE *  p) [inline]

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMXPathEvaluator.html0000644000151400015140000005464011653571066021407 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMXPathEvaluator Class Reference

The evaluation of XPath expressions is provided by DOMXPathEvaluator. More...

#include <DOMXPathEvaluator.hpp>

Inheritance diagram for xercesc::DOMXPathEvaluator:

List of all members.

Public Member Functions

Destructor
virtual ~DOMXPathEvaluator ()
 Destructor.
Functions introduced in DOM Level 3
virtual DOMXPathExpressioncreateExpression (const XMLCh *expression, const DOMXPathNSResolver *resolver)=0
 Creates a parsed XPath expression with resolved namespaces.
virtual DOMXPathNSResolvercreateNSResolver (const DOMNode *nodeResolver)=0
 Adapts any DOM node to resolve namespaces so that an XPath expression can be easily evaluated relative to the context of the node where it appeared within the document.
virtual DOMXPathResultevaluate (const XMLCh *expression, const DOMNode *contextNode, const DOMXPathNSResolver *resolver, DOMXPathResult::ResultType type, DOMXPathResult *result)=0
 Evaluates an XPath expression string and returns a result of the specified type if possible.

Protected Member Functions

Hidden constructors
 DOMXPathEvaluator ()

Detailed Description

The evaluation of XPath expressions is provided by DOMXPathEvaluator.

In a DOM implementation which supports the XPath feature, the DOMXPathEvaluator interface will be implemented on the same object which implements the Document interface permitting it to be obtained by casting or by using the DOM Level 3 getFeature method. In this case the implementation obtained from the Document supports the XPath DOM module and is compatible with the XPath 1.0 specification. Evaluation of expressions with specialized extension functions or variables may not work in all implementations and is, therefore, not portable. XPathEvaluator implementations may be available from other sources that could provide specific support for specialized extension functions or variables as would be defined by other specifications.

Since:
DOM Level 3

Constructor & Destructor Documentation

xercesc::DOMXPathEvaluator::DOMXPathEvaluator ( ) [inline, protected]
virtual xercesc::DOMXPathEvaluator::~DOMXPathEvaluator ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual DOMXPathExpression* xercesc::DOMXPathEvaluator::createExpression ( const XMLCh *  expression,
const DOMXPathNSResolver resolver 
) [pure virtual]

Creates a parsed XPath expression with resolved namespaces.

This is useful when an expression will be reused in an application since it makes it possible to compile the expression string into a more efficient internal form and preresolve all namespace prefixes which occur within the expression.

Parameters:
expressionof type XMLCh - The XPath expression string to be parsed.
resolverof type XPathNSResolver - The resolver permits translation of all prefixes, including the xml namespace prefix, within the XPath expression into appropriate namespace URIs. If this is specified as null, any namespace prefix within the expression will result in DOMException being thrown with the code NAMESPACE_ERR.
Returns:
DOMXPathExpression The compiled form of the XPath expression.
Exceptions:
<code>DOMXPathException</code>INVALID_EXPRESSION_ERR: Raised if the expression is not legal according to the rules of the DOMXPathEvaluator.
DOMExceptionNAMESPACE_ERR: Raised if the expression contains namespace prefixes which cannot be resolved by the specified XPathNSResolver.
Since:
DOM Level 3
virtual DOMXPathNSResolver* xercesc::DOMXPathEvaluator::createNSResolver ( const DOMNode nodeResolver) [pure virtual]

Adapts any DOM node to resolve namespaces so that an XPath expression can be easily evaluated relative to the context of the node where it appeared within the document.

This adapter works like the DOM Level 3 method lookupNamespaceURI on nodes in resolving the namespaceURI from a given prefix using the current information available in the node's hierarchy at the time lookupNamespaceURI is called. also correctly resolving the implicit xml prefix.

Parameters:
nodeResolverof type DOMNode The node to be used as a context for namespace resolution. If this parameter is null, an unpopulated DOMXPathNSResolver is returned, which can be populated using the Xerces-C extension DOMXPathNSResolver::addNamespaceBinding().
Returns:
DOMXPathNSResolver The object which resolves namespaces with respect to the definitions in scope for the specified node.
virtual DOMXPathResult* xercesc::DOMXPathEvaluator::evaluate ( const XMLCh *  expression,
const DOMNode contextNode,
const DOMXPathNSResolver resolver,
DOMXPathResult::ResultType  type,
DOMXPathResult result 
) [pure virtual]

Evaluates an XPath expression string and returns a result of the specified type if possible.

Parameters:
expressionof type XMLCh The XPath expression string to be parsed and evaluated.
contextNodeof type DOMNode The context is context node for the evaluation of this XPath expression. If the DOMXPathEvaluator was obtained by casting the DOMDocument then this must be owned by the same document and must be a DOMDocument, DOMElement, DOMAttribute, DOMText, DOMCDATASection, DOMComment, DOMProcessingInstruction, or XPathNamespace node. If the context node is a DOMText or a DOMCDATASection, then the context is interpreted as the whole logical text node as seen by XPath, unless the node is empty in which case it may not serve as the XPath context.
resolverof type XPathNSResolver The resolver permits translation of all prefixes, including the xml namespace prefix, within the XPath expression into appropriate namespace URIs. If this is specified as null, any namespace prefix within the expression will result in DOMException being thrown with the code NAMESPACE_ERR.
type- If a specific type is specified, then the result will be returned as the corresponding type. This must be one of the codes of the DOMXPathResult interface.
resultof type DOMXPathResult* - The result specifies a specific result object which may be reused and returned by this method. If this is specified as null or the implementation does not reuse the specified result, a new result object will be constructed and returned.
Returns:
DOMXPathResult* The result of the evaluation of the XPath expression.
Exceptions:
<code>DOMXPathException</code>INVALID_EXPRESSION_ERR: Raised if the expression is not legal according to the rules of the DOMXPathEvaluator TYPE_ERR: Raised if the result cannot be converted to return the specified type.
<code>DOMException</code>NAMESPACE_ERR: Raised if the expression contains namespace prefixes which cannot be resolved by the specified XPathNSResolver. WRONG_DOCUMENT_ERR: The DOMNode is from a document that is not supported by this DOMXPathEvaluator. NOT_SUPPORTED_ERR: The DOMNode is not a type permitted as an XPath context node or the request type is not permitted by this DOMXPathEvaluator.

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/inherit_graph_30.md50000644000151400015140000000004011653571065015723 000000000000006b9238f4cae5935f411b2a1c348b60caXQilla-2.3.0/docs/dom3-api/classXPath2MemoryManager__inherit__graph.png0000644000151400015140000001101511653571065022722 00000000000000‰PNG  IHDR¸ur'¼úbKGDÿÿÿ ½§“ÂIDATxœíyPSWûÇOƒ5bØb5€JÜF;Š€¸ TEÙ”EªŽ- ¶P©EWª ¨6•ÅŽt(µ²”ú‹Bq !²‘„Üß×7Æ$„+Ò×÷|þ:÷œçÜó}r¾9wÉM‚C@ #oÿ Q ˜€F`‚ ¢âÆíÛ·“’’ÆK D§ˆwrr’o¾e”/^”——{{{k]D·ÈÏÏß¹s§b Q5èÊ•+ÚÒÑQp8œR |ˆÃá***¦OŸ^UUuðàÁéÓ§›˜˜ö÷÷£{Sí(--upp000 ÑhYYY©Tª¶;:„jàíí}åÊù‚_PPàåå%oU;.‡ËÌÌ´³³311INNÎÊÊš9s&™LNHH@{õ÷÷oß¾ÝØØxÚ´iÑÑÑ"‘H1ÇE‹…††¢‘<D"555asíÚµ… ’H$*•šœœŒVâp¸œœ;;»©S§;vl¸HAètú'Ÿ|2yòä+V\»v }4OGMMÍ»Î;@¸|ù²RZƒ‚‚º»»ÍÌÌîܹƒV=zÔÓÓóñãÇL&sÑ¢Eqqq, °víÚÊÊÊÄÄĹsç2™ÌÖÖÖO?ý4::z¸^<o„ t:Ífgdd‰DwüøqµÝûûû †jð×_™››755¡M$éåË—‹¥v\´—¯¯/—ËMOOlÙ²…Ë妥¥^¾|‰ ˆŸŸŸ««ë£G˜Læ¼yós¼~ý:…B‘H$‚dggÏ;W&“(†Ëåêë뇄„<}ú4;;ðÏ?ÿ ½¼¼¼8ƒÁôööªd0–––¿ýö[OOÏÍ›7mllÐÔ<<Oó._¾üVÍ(ŒÂáp¦M›æàà˜˜(¯œ3g›ÍFË7oÞ\°`ªŒÉd"2{ö좢"´õþýûò²j¯¾¾>==½'Np8™L6000444\w y²X¬¨¨¨ ’½jÕ*y½ÚqÑÖÆÆFAÄb±R™Åb‰ÅbÐÖÖ†ö***²±±QÌQ*•š››WTT ²nݺääd,bÛÛÛy<ÞÐÐÐíÛ·å ·nÝR 6rÞ¼y999òÄsssÑÔ<#26FAäСCáÅ‹òÅ…ŠL&£ÊÄb1ÚÚÚÚªºÕ^‚ÔÔÔxyy:::^¿~]Cw y²X¬ªª*™Læáá‘––†(Eí¸òVµå'Ož„B!ZÉd2 sDd×®]QQQ===úúúOž<Á(¦¸¸xÙ²e ,V4ʃ”ĨFNœ8±¥¥Ežxss3:ƒš§Ë 8Fyüø±©©éš5küýýå•Ó¦M“¿²§½½U†ÖÐh´ÒÒR´ÜÔÔ”””4\/@P]] ÈàààÅ‹ BooïpÝ5äÉb±¤R©™™Yuuµ¡¡!êiù+®:.2’QÐåÞ½{håÕ«W­­­sDäÖ­[©©©+V¬À(F L˜0¡¸¸X&“ …BE£( P9gΜÜÜ\ùXyyy¨ÍÓ1"ªFyç“Y™L²{÷î¼¼¼òòòÒÒR´~óæÍèêêb2™nnn©©©Š½¾ýöÛ¶¶¶¶¶¶/¿ü²««k¸^8nõêÕ………\.W,ëéé‘H¤áº¿zõ =ŸP*£OOÏððð¥K—ššš*6iV«===Ÿ={ötvv¶µµÅÇÇûùù)Å8::J¥ÒC‡(5 'fppP,ëëë …ÂƒÔ P{ãÆÞÞ^ô\=™E‚# è,+ÊÙ³gçÏŸ®`W¯^¥R©}}}‚p¹Üàà`### …Æçó-,‰¢££-,,Èd²¯¯/‡ÃAëU{¡2¬­­õõõçÌ™S\\¬¡»âŠeðŸ·cUU 55U©^í¸@㊂ H___@@…B¡R©ûöí …ªoÓˆˆˆ‰'r¹\Åw§f1§Nš:uª••Õ¹sç|}}MMM‡ 944”’’bmmM&“ÝÜÜŠ‹‹MLLFœŽcuŽŽo¾ùfÛ¶mZ®´´´¹¹Y¾YPP€ž˜¿'ªFù`o¸i‘HÔÑÑ‘™™©ôlØ¿ “Éô÷÷ollüñGBBÂŽ;þÔ<áwîÜÙ´iSdd¤³³³Ö===4-$$$<<üßeÌprrêëëÓò D"1))I ÄÃCÐ(L@£@0Á4 Ð(Ê<}ÊyöŒ3Þ*t5—Ç«V­Ò¾ÝáåKc€±ñËñ¢[¼e+++øÅ㎠‡³µo!㉷··•••b ?Í¥@{ûsW×《ŠX;;êxËÑ!à9Ê[””4‰x"‘PZÚ<ÞZt h”7 ’—wG*•I¥CyyÀµVh”7Ô×ÿýÏ?\´üâ·¡áïq•£[@£¼á×_õôhYOpõjÓøêÑ) Q^#•ÊŠŠ$’×;ÉPQQ½T*_Uº4ÊkjjþïÕ+‘bÍ«W¢ÚZÖxéÑ5 Q^sõj‘øÖ«A$⊊ÆK®"‘äÚµ©ô­›lR©ìÚµ‘H2^ªt h(/¿/IUëE"IEÅ}íëÑA Q °°ž@PþD€+,„G Q¢ÊÊvµ8R©¬¢â>7¨}Uº4 (+k•_«"‘ ••1µ©G7 ‡Ïå¾¹0þöÛ"ÀáÛå5“'Žƒ2]~]*úÀÐPðñÇ”ñS¤‹ÀCÐ(L@£@0Á4 Ð(L@£@0Á4 Ð(L@£@0Á4 Ð(L@£@0Á4 Ð(L@£@0Á4 Ð(L@£@0Á4 Ð(L@£@0Á4 Ð(L@£@0ÁÄ¿¸tá­IÑò󟼽-Ç[ˆ¶ ÓÐ:‚Qp85¿•øaC CC¯Æ[ˆ¶Ñì„‘šëàÁƒÚüyˆö©ªªúþûï5ÇÀs& Q ˜€F`‚ h& Q ˜x_£°X,WWתª*yMmmíªU«:::. ¸»»8p€Ífcܳ‹‹Ë³gÏ0Fúûû+ÝØ¿?ö=Œ!:%f y_£ØÚÚúûûŸ={–Çãø|~JJJPPFC~úé§Â‚‚‚Ó§O#røðáávÅf³7nܨy8>ŸäÈ//¯ 6$%%q¹¯ÿT´»»ûÑ£Gò°–––÷LmÔ蔘±b =d29-- pá …²uëVyë”)S¦NJ¡Plll¢££ïÝ»'ÔîG&“É'~8:ÔÓÓ“’’B§Ó¹\nJJ Z¿xñbÅUí÷ß_°`Á{æ5jtJÌX1F!‰qqqeee999eeeqqqD¢ú¾x<044¨««Û¹s§›››§§gnn.`×®]€Í›ßü­E}}½ŸŸßúõësrrR©ôîÝ»ÁÁÁVVV!!!þù'éìì\UU%_ðoß¾íää$ßT*¥Óé›6mÚ´iN—J¥—²²²   ÜÜÜ7nøúúº»»gff¢½x<^rròƽ½½ÏŸ?/‹Ÿ={æââÒØØèããvìØ14R(º¹¹±X,,bTGÅ”——mذáÒ¥KÃE"RRR²}ûvww÷¯¾úª®®ÎÅÅEm‚ŠR[[[ß}VUæîýw˜5k–Ozzz``àÌ™3›D"‘P(ÏŸ?ÿñÇgÏžýÑG ‚ï¾ûÎÖÖ6;;;22’Á`ô÷÷Ÿ;wPTT$ï{ç΃›žžÎårñx|VVÖܹsÑÖ¦¦&*•Š–çÍ›' ÑŸÏç766~þùçòý°Ùì´´´“'O666þüóÏh}CCÃùóçàF]]]FFFdddVVº°>}º§§‡N§=zôîÝ»yyyh¯+W®ÄÅÅ…††ÖÖÖ¢¦¯­­¥R©666#ŠQ›8ÚTSS“ššž––600 6òúõëYYYQQQ¹¹¹~~~©©©šD¥ÚÚÚ¾÷ ‘QéêêÂãñ?VjÚ±cǺuëÜÝ݃‚‚¸\nBB@__?##cÏž= ÅÔÔÀçóUwëããC"‘–-[Àãñ–––A \¸p¡¸¸xÿþý¯ÓÀã—/_Ž.øuuuööö“'O–溺¬lïÞ½¦¦¦4-<<\¾¡û_½z5`Û¶m$ÉÍÍ K*•VVVîÞ½›J¥Òh´ààà›7o¢½ÂÂÂ.\¸dÉ"‘Èd2ååå«W¯–€ªAŒ†Ä=<<&Mš´fÍ—ËUYXX±dÉ2™¼xñâàà`Í ¢R ÞyFU›ÿë)//onnNII‰‰‰qrrR|7ggg[Z*dO$Ÿ>}zâÄ ¡P¨Áï ¨|‚]QQA§Ó—.]J§Ó§L™"¯wvv>~üxhh¨ÒRèîîöôô”o¾þw‰„ŠQ*8ŽL&³°°@7---{zzÐòôéÓx<ÞÑѱººšF£544|ýõ׊#'FCâÆÆÆŠÔF>þ\qÁž1c†æQ©cÂ¥··÷ìÙ³AAA'OžTzC«288˜˜˜˜˜˜øÙgŸI$’²²2µaª9äçç—””9rDÕ^ööö µµµ¾¾^iÚÈdrJJ êW×××7bRFFFx<žÍfüñÇ€çÏŸ£ æÒÙÙ9))iÆŒööö&&&XÄhH\)Yµ‘fffò+Ê®®.Í w²8 Þ÷Ѓ ÈÉ“'i4š»»;`Ë–-FFFgΜÑÜK"‘H¥R"‘(‹ÑªüRH(׋ÏçgddO˜0áñx“ ¿|ùòS§NÙÙÙ)®4GGGƒñâÅ‹ŽŽŽØØØ_ýuļˆD¢‹‹Ë™3gØlvgggFFÆÊ•+•b†††~ùåôà¥Èpb4$Žå%òððHKK«¯¯çr¹MMM/^Dí5Šß•÷5Ê7êë룣£QÅD"1&&¦²²²ººZC¯I“&EFF&%%š››»ººÆÆÆš››ÛÛÛ+.¡JtvvþðÃA (¸¸¸tuu)w¡¡¡$içÎûöí³¶¶Ç’ÚÞ½{#""bbb–,Yâçç§€ºA ,_¾\µ»Z1jW;ºÚH-[¶¤¤¤lÛ¶íÒ¥Kd2yÔ ¾#?á\Ò@zzzwww||¼v†«««355µ¶¶F7«««³²² Æ{î}pI³àg=£D,³Ùì²²²/¾øBkƒvtt>|˜Åb Þ¿?33=âkø/¥£¤½½=!!aÆ Ú¼ëºuëV‘HßßßO¥R×®]»~ýzí 2JæÏŸ_RR¢åA Bhhhhh¨–ÇðÐÁ4 Ð(L@£@0ÁÄÈW= èÓk•Œ¿{ yÍNÐÜ  Às& Q ˜€F`‚‰ÿ˜,Ù¬áûIEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMLSParser_8hpp_source.html0000644000151400015140000004407111653571065017443 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMLSParser.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMLSParser.hpp 832686 2009-11-04 08:55:59Z borisk $
00020  *
00021  */
00022 
00023 #if !defined(XERCESC_INCLUDE_GUARD_DOMLSPARSER_HPP)
00024 #define XERCESC_INCLUDE_GUARD_DOMLSPARSER_HPP
00025 
00026 #include <xercesc/dom/DOMConfiguration.hpp>
00027 #include <xercesc/dom/DOMLSParserFilter.hpp>
00028 #include <xercesc/util/XercesDefs.hpp>
00029 #include <xercesc/validators/common/Grammar.hpp>
00030 
00031 XERCES_CPP_NAMESPACE_BEGIN
00032 
00033 
00034 class DOMErrorHandler;
00035 class DOMLSInput;
00036 class DOMNode;
00037 class DOMDocument;
00038 
00047 class CDOM_EXPORT DOMLSParser
00048 {
00049 protected :
00050     // -----------------------------------------------------------------------
00051     //  Hidden constructors
00052     // -----------------------------------------------------------------------
00055     DOMLSParser() {};
00057 
00058 private:
00059     // -----------------------------------------------------------------------
00060     // Unimplemented constructors and operators
00061     // -----------------------------------------------------------------------
00064     DOMLSParser(const DOMLSParser &);
00065     DOMLSParser & operator = (const DOMLSParser &);
00067 
00068 public:
00069     // -----------------------------------------------------------------------
00070     //  All constructors are hidden, just the destructor is available
00071     // -----------------------------------------------------------------------
00078     virtual ~DOMLSParser() {};
00080 
00081     // -----------------------------------------------------------------------
00082     //  Class types
00083     // -----------------------------------------------------------------------
00117     enum ActionType
00118     {
00119         ACTION_APPEND_AS_CHILDREN = 1,
00120         ACTION_REPLACE_CHILDREN   = 2,
00121         ACTION_INSERT_BEFORE      = 3,
00122         ACTION_INSERT_AFTER       = 4,
00123         ACTION_REPLACE            = 5
00124     };
00126 
00127     // -----------------------------------------------------------------------
00128     //  Virtual DOMLSParser interface
00129     // -----------------------------------------------------------------------
00132 
00133     // -----------------------------------------------------------------------
00134     //  Getter methods
00135     // -----------------------------------------------------------------------
00136 
00377     virtual DOMConfiguration* getDomConfig() = 0;
00378 
00388     virtual const DOMLSParserFilter* getFilter() const = 0;
00389 
00397     virtual bool getAsync() const = 0;
00398 
00406     virtual bool getBusy() const = 0;
00407 
00408     // -----------------------------------------------------------------------
00409     //  Setter methods
00410     // -----------------------------------------------------------------------
00431     virtual void setFilter(DOMLSParserFilter* const filter) = 0;
00432 
00433     // -----------------------------------------------------------------------
00434     //  Parsing methods
00435     // -----------------------------------------------------------------------
00463     virtual DOMDocument* parse(const DOMLSInput* source) = 0;
00464 
00492     virtual DOMDocument* parseURI(const XMLCh* const uri) = 0;
00493 
00521     virtual DOMDocument* parseURI(const char* const uri) = 0;
00522 
00590     virtual DOMNode* parseWithContext(const DOMLSInput* source, DOMNode* contextNode, const ActionType action) = 0;
00591 
00600     virtual void abort() = 0;
00602 
00603     // -----------------------------------------------------------------------
00604     //  Non-standard Extension
00605     // -----------------------------------------------------------------------
00614     virtual void              release() = 0;
00615 
00639     virtual void              resetDocumentPool() = 0;
00640 
00666     virtual Grammar* loadGrammar(const DOMLSInput* source,
00667                                  const Grammar::GrammarType grammarType,
00668                                  const bool toCache = false) = 0;
00669 
00693     virtual Grammar* loadGrammar(const XMLCh* const systemId,
00694                                  const Grammar::GrammarType grammarType,
00695                                  const bool toCache = false) = 0;
00696 
00720     virtual Grammar* loadGrammar(const char* const systemId,
00721                                  const Grammar::GrammarType grammarType,
00722                                  const bool toCache = false) = 0;
00723 
00730     virtual Grammar* getGrammar(const XMLCh* const nameSpaceKey) const = 0;
00731 
00737     virtual Grammar* getRootGrammar() const = 0;
00738 
00745     virtual const XMLCh* getURIText(unsigned int uriId) const = 0;
00746 
00750     virtual void resetCachedGrammarPool() = 0;
00751 
00757     virtual XMLFilePos getSrcOffset() const = 0;
00758 
00760 
00761 };
00762 
00763 
00764 XERCES_CPP_NAMESPACE_END
00765 
00766 #endif
XQilla-2.3.0/docs/dom3-api/DOMDocumentFragment_8hpp_source.html0000644000151400015140000002006311653571065021205 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMDocumentFragment.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  * 
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  * 
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMDocumentFragment.hpp 527149 2007-04-10 14:56:39Z amassari $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMDOCUMENTFRAGMENT_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMDOCUMENTFRAGMENT_HPP
00024 
00025 #include <xercesc/util/XercesDefs.hpp>
00026 #include <xercesc/dom/DOMNode.hpp>
00027 
00028 XERCES_CPP_NAMESPACE_BEGIN
00029 
00030 
00071 class CDOM_EXPORT DOMDocumentFragment: public DOMNode {
00072 protected:
00073     // -----------------------------------------------------------------------
00074     //  Hidden constructors
00075     // -----------------------------------------------------------------------
00078     DOMDocumentFragment() {};
00080 
00081 private:
00082     // -----------------------------------------------------------------------
00083     // Unimplemented constructors and operators
00084     // -----------------------------------------------------------------------
00087     DOMDocumentFragment(const DOMDocumentFragment &);
00088     DOMDocumentFragment & operator = (const DOMDocumentFragment &);
00090 
00091 public:
00092     // -----------------------------------------------------------------------
00093     //  All constructors are hidden, just the destructor is available
00094     // -----------------------------------------------------------------------
00101     virtual ~DOMDocumentFragment() {};
00103 
00104 };
00105 
00106 XERCES_CPP_NAMESPACE_END
00107 
00108 #endif
XQilla-2.3.0/docs/dom3-api/inherit_graph_2.map0000644000151400015140000000024211653571065015736 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMXPathNamespace_8hpp_source.html0000644000151400015140000002247611653571065020616 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMXPathNamespace.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  * 
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  * 
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMXPathNamespace.hpp 527149 2007-04-10 14:56:39Z amassari $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMXPATHNAMESPACE_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMXPATHNAMESPACE_HPP
00024 
00025 #include <xercesc/dom/DOMNode.hpp>
00026 
00027 XERCES_CPP_NAMESPACE_BEGIN
00028 
00029 class DOMElement;
00030 
00055 class CDOM_EXPORT DOMXPathNamespace : public DOMNode
00056 {
00057 
00058 protected:
00059     // -----------------------------------------------------------------------
00060     //  Hidden constructors
00061     // -----------------------------------------------------------------------
00064     DOMXPathNamespace() {};
00066 
00067 private:
00068     // -----------------------------------------------------------------------
00069     // Unimplemented constructors and operators
00070     // -----------------------------------------------------------------------
00073     DOMXPathNamespace(const DOMXPathNamespace &);
00074     DOMXPathNamespace& operator = (const  DOMXPathNamespace&);
00076 
00077 public:
00078 
00079     
00080     enum XPathNodeType {
00081         XPATH_NAMESPACE_NODE = 13
00082     };
00083 
00084     // -----------------------------------------------------------------------
00085     //  All constructors are hidden, just the destructor is available
00086     // -----------------------------------------------------------------------
00093     virtual ~DOMXPathNamespace() {};
00095 
00096     // -----------------------------------------------------------------------
00097     // Virtual DOMXPathNamespace interface
00098     // -----------------------------------------------------------------------
00108     virtual DOMElement     *getOwnerElement() const = 0;
00109 
00111 };
00112 
00113 XERCES_CPP_NAMESPACE_END
00114 
00115 #endif
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMRangeException.html0000644000151400015140000003227211653571066021410 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMRangeException Class Reference

Range operations may throw a DOMRangeException as specified in their method descriptions. More...

#include <DOMRangeException.hpp>

Inheritance diagram for xercesc::DOMRangeException:

List of all members.

Public Types

Public Contants
enum  RangeExceptionCode { BAD_BOUNDARYPOINTS_ERR = 111, INVALID_NODE_TYPE_ERR = 112 }
 

Enumerators for DOM Range Exceptions.

More...

Public Member Functions

Constructors
 DOMRangeException ()
 Default constructor for DOMRangeException.
 DOMRangeException (short code, short messageCode, MemoryManager *const memoryManager)
 Constructor which takes an error code and a message.
 DOMRangeException (const DOMRangeException &other)
 Copy constructor.
Destructor.
virtual ~DOMRangeException ()
 Destructor for DOMRangeException.

Detailed Description

Range operations may throw a DOMRangeException as specified in their method descriptions.

See also the Document Object Model (DOM) Level 2 Traversal and Range Specification.

Since:
DOM Level 2

Member Enumeration Documentation

Enumerators for DOM Range Exceptions.

BAD_BOUNDARYPOINTS_ERR: If the boundary-points of a Range do not meet specific requirements.

INVALID_NODE_TYPE_ERR: If the container of an boundary-point of a Range is being set to either a node of an invalid type or a node with an ancestor of an invalid type.

Since:
DOM Level 2
Enumerator:
BAD_BOUNDARYPOINTS_ERR 
INVALID_NODE_TYPE_ERR 

Constructor & Destructor Documentation

home jpcs xml xerces xerces c src xercesc dom DOMRangeException cpp xercesc::DOMRangeException::DOMRangeException ( )

Default constructor for DOMRangeException.

xercesc::DOMRangeException::DOMRangeException ( short  code,
short  messageCode,
MemoryManager *const  memoryManager 
)

Constructor which takes an error code and a message.

Parameters:
codeThe error code which indicates the exception
messageCodeThe string containing the error message
memoryManagerThe memory manager used to (de)allocate memory
xercesc::DOMRangeException::DOMRangeException ( const DOMRangeException other)

Copy constructor.

Parameters:
otherThe object to be copied.
xercesc::DOMRangeException::~DOMRangeException ( ) [virtual]

Destructor for DOMRangeException.


The documentation for this class was generated from the following files:
XQilla-2.3.0/docs/dom3-api/DOMDocumentTraversal_8hpp.html0000644000151400015140000000721611653571066020033 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMDocumentTraversal.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <xercesc/dom/DOMNodeFilter.hpp>
Include dependency graph for DOMDocumentTraversal.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMDocumentTraversal
 DOMDocumentTraversal contains methods that create DOMNodeIterators and DOMTreeWalkers to traverse a node and its children in document order (depth first, pre-order traversal, which is equivalent to the order in which the start tags occur in the text representation of the document). More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/DOMNodeIterator_8hpp_source.html0000644000151400015140000002624511653571065020352 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMNodeIterator.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMNodeIterator.hpp 671894 2008-06-26 13:29:21Z borisk $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMNODEITERATOR_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMNODEITERATOR_HPP
00024 
00025 #include <xercesc/dom/DOMNodeFilter.hpp>
00026 #include <xercesc/dom/DOMNode.hpp>
00027 
00028 XERCES_CPP_NAMESPACE_BEGIN
00029 
00030 
00044 class CDOM_EXPORT DOMNodeIterator
00045 {
00046 protected:
00047     // -----------------------------------------------------------------------
00048     //  Hidden constructors
00049     // -----------------------------------------------------------------------
00052     DOMNodeIterator() {}
00053     DOMNodeIterator(const DOMNodeIterator &) {}
00055 
00056 private:
00057     // -----------------------------------------------------------------------
00058     // Unimplemented constructors and operators
00059     // -----------------------------------------------------------------------
00062     DOMNodeIterator & operator = (const DOMNodeIterator &);
00064 
00065 public:
00066     // -----------------------------------------------------------------------
00067     //  All constructors are hidden, just the destructor is available
00068     // -----------------------------------------------------------------------
00075     virtual ~DOMNodeIterator() {};
00077 
00078     // -----------------------------------------------------------------------
00079     //  Virtual DOMNodeFilter interface
00080     // -----------------------------------------------------------------------
00083     // -----------------------------------------------------------------------
00084     //  Getter methods
00085     // -----------------------------------------------------------------------
00091     virtual DOMNode*           getRoot() = 0;
00103     virtual DOMNodeFilter::ShowType getWhatToShow() = 0;
00104 
00110     virtual DOMNodeFilter*     getFilter() = 0;
00111 
00133     virtual bool               getExpandEntityReferences() = 0;
00134 
00135     // -----------------------------------------------------------------------
00136     //  Query methods
00137     // -----------------------------------------------------------------------
00150     virtual DOMNode*           nextNode() = 0;
00151 
00162     virtual DOMNode*           previousNode() = 0;
00163 
00173     virtual void               detach() = 0;
00175 
00176     // -----------------------------------------------------------------------
00177     //  Non-standard Extension
00178     // -----------------------------------------------------------------------
00188     virtual void               release() = 0;
00190 };
00191 
00192 #define GetDOMNodeIteratorMemoryManager GET_DIRECT_MM(fDocument)
00193 
00194 XERCES_CPP_NAMESPACE_END
00195 
00196 #endif
XQilla-2.3.0/docs/dom3-api/inherit_graph_16.map0000644000151400015140000000025211653571066016025 00000000000000 XQilla-2.3.0/docs/dom3-api/functions_func_0x69.html0000644000151400015140000001612611653571065016702 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
 

- i -

XQilla-2.3.0/docs/dom3-api/functions_type.html0000644000151400015140000000662511653571065016145 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo XQilla-2.3.0/docs/dom3-api/DOMLSParserFilter_8hpp_source.html0000644000151400015140000002360211653571065020606 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMLSParserFilter.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMLSParserFilter.hpp 671894 2008-06-26 13:29:21Z borisk $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMLSPARSERFILTER_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMLSPARSERFILTER_HPP
00024 
00038 #include <xercesc/dom/DOMNodeFilter.hpp>
00039 
00040 XERCES_CPP_NAMESPACE_BEGIN
00041 
00042 class DOMElement;
00043 class DOMNode;
00044 
00045 class CDOM_EXPORT DOMLSParserFilter {
00046 protected:
00047     // -----------------------------------------------------------------------
00048     //  Hidden constructors
00049     // -----------------------------------------------------------------------
00052     DOMLSParserFilter() {};
00054 
00055 private:
00056     // -----------------------------------------------------------------------
00057     // Unimplemented constructors and operators
00058     // -----------------------------------------------------------------------
00061     DOMLSParserFilter(const DOMLSParserFilter &);
00062     DOMLSParserFilter & operator = (const DOMLSParserFilter &);
00064 
00065 
00066 public:
00067     // -----------------------------------------------------------------------
00068     //  All constructors are hidden, just the destructor is available
00069     // -----------------------------------------------------------------------
00076     virtual ~DOMLSParserFilter() {};
00078 
00079     // -----------------------------------------------------------------------
00080     //  Class Types
00081     // -----------------------------------------------------------------------
00101     enum FilterAction {FILTER_ACCEPT = 1,
00102                        FILTER_REJECT = 2,
00103                        FILTER_SKIP   = 3,
00104                        FILTER_INTERRUPT = 4};
00105 
00106     // -----------------------------------------------------------------------
00107     //  Virtual DOMLSParserFilter interface
00108     // -----------------------------------------------------------------------
00128     virtual FilterAction acceptNode(DOMNode* node) = 0;
00129 
00145     virtual FilterAction startElement(DOMElement* node) = 0;
00146 
00157     virtual DOMNodeFilter::ShowType getWhatToShow() const = 0;
00158 
00160 };
00161 
00162 XERCES_CPP_NAMESPACE_END
00163 
00164 #endif
XQilla-2.3.0/docs/dom3-api/inherit_graph_7.png0000644000151400015140000002227311653571066015763 00000000000000‰PNG  IHDR«“¿-¡NbKGDÿÿÿ ½§“ IDATxœíÝy\SWÚ8ðBBÙcBØd BÃ"‹}Ý^GQ™¶Ÿ:tŪã2.L-PÅi±Ø–êÛÎ;V¥¢#ót@‹Å­í }]jÁ—²ƒ( ’@Håþþ8;i Èóýðǽ'÷ÜûÜsožœsss¡À(™:0È€ã`¼ Œ—©¡`°®]»–žžnè(À˜öþûïÏ;wðËCãF[[ÛåË—cbb £NŸ>½aÆ!U Æ™üü|C‡Æ( …2Ô*p`¼ Œd@€ñ‚ 0^Æ 2 £¢ÆÝÝ=..®½½]}©Tš””heeöÑG) ²®···ÆM¢¢¢(JMM ^O¨“H$‰‰‰æææÞÞÞ©©©½½½ÚÁFjÏÕÔÔԌΆ¸uëVKKKssóñãÇÅbqHHHgg'~©»»;44´¬¬,##ãîÝ»ÉÉɹ¹¹‘‘‘J¥/ÐÐÐpïÞ=rU"‘èúõëonûöí?þøãW_}ÕÔÔtìØ±Â¤¤$`Ô ÷îþ¬®®ŽÉdâi[[Û;wŽÐ††€`œÈËË›g,B¨ººšœU©TsæÌIIIÁ³‰‰‰³gÏV(ä‰ÄÝÝ=++ ×]¼xñîÝ»ÉW³³³£¢¢Èuj¬³µµ-))!g¯]»æææ¦3˜U]]=¢G!”——7¤*ÐʹsçœE"BèÔ©SS§N•J¥!¹\ž””Äf³Y,VRR’\.Ç£°+W®¸¹¹§¦¦º¹¹Mž<9..ŽìŽi×B?žÇã1 OOÏ'N „ …Îêê½} eóæÍ/^ij999)))T*•\ÀÒÒ2)))''ÏÆÄÄäççÿŸ9s&::zàf±¶¶>tèPGGž3gNccãK´¤¾=Õ×¼………>>>,+>>¾¯¯oÆŒ!GGGéìì|ûí·™L¦‹‹Kbb"¡S(”ÜÜ\???{{ûO?ýtàh_ÞÈäb†ß û€qqqkÖ¬imme³ÙwîÜÁ…K—.mjjâóù!!!»víÂý‘¨¨¨ï¿ÿ>--ÍßߟÏç ‚ˆˆˆÄÄD}µ$‰™™YfffKK˱cÇLMM%ɾ}ûtVïììÄ7i¤Õí*++³µµ%gœöövºyó&›ÍÆu=zäèèX^^ŽWkaañüùs4`ð»ï¾svv633‹ŒŒÜ·o_CCùB¨¢¢¢û—ôµ¤¾=Õ×¼ .¬ªª*))ár¹iiiê}@õ騨Øùóç×ÖÖòùü€€€´´4Xtt´H$ÊÊÊButt¼ðУ¡÷!‚qcP$¹¸¸ðx<üFÂ|}}[ZZðtQQQPP~òù|‚ ||| ð«< §µk …B¶ÿ~‘H¤R©º»»•J¥¾êú¼D¼}û6“É$ënݺ599™ ˆœœœÈÈHõuêÌ€A(Š’’’={öP©ÔÜÜ\2}#í–|C©7/Ayyy\.Wgìïï§R©•••¸¼  €ËåâÀ®^½ŠзSÚ LXƒ¿¸gÏ*•ÚÖÖF–0 õw¸ ~ö÷÷ãWöz´kqãÆèèhKKËÙ³g_ºti€êúh¿ŸOž<9}út<íèèXTT¤QåðáË-"ës¹\•JµdÉ’/¿ü’0J$’S§N‘U*Õ|àìì¬/u-9ø†ÂÍ+“Éð÷îÝc0:3àãÇÕ—äóù öÓO? &HÒKd@¸&šÇñÅ ,HHH ™L&ù‰D%%%¸œF£!„œœœpIEEÅÞ½{õÕ’Éd*•êôéÓB¡pýúõo¼ñ†P(ÔW}‚8|øðk¯½†gccc÷ìÙC~ó‹’J¥‹/&KfÍšÕÝÝ}ãÆ¢¢¢%K–¼pý+W®x–B¡,Z´ˆ¼½fÚ-9ø†Âå8Í!„ªªªœœœtn…ÍfS©Ôºº:<[[[ëì쌧MLF>A )_`@ƒé*•Ê |øá‡B¡ÐÑÑñܹs¸<>>>::ßG±mÛ6õþHjj*Ç`æÌ™6lÐWK&“1Œ3gδ··9r„Á`Èd2}Õ¸HÞ S\\üæ›oº¸¸tvvâW»ºº|||æÎûÍ7ßTUUøûûÏœ9³··—Pë mÙ²ÅÏÏoÞ¼yä:É> ÆÝ-A¬Y³fêÔ©.\¨­­½yóæŒ3Þyç`4ªèlÉÁ7nÞyóæUWW—––z{{§¤¤àB|Q½ýW®\9þüºº:@àïï¿Gjý>£`“8ˆÇ¶gÏžåp8B¡ ±X¼víZ;;;‡7J¥Rõw`ooobb¢“““ÍŠ+D".×®…Ãðòò¢Óé¾¾¾………T×wá_½ âêê«>`'B"‘$$$XXXøûû§§§÷ôôuq.(..FkÖ¬I“&i4ˆP(\½zµƒƒ‡ÃÙ±cŽmt2 E_0Öäçç/_¾ÎØq¡¦¦Fû·+#B¡äåå-[¶lðUà: ÀxA ?kkëM›6:Šƒ ~,+33ÓÐQ¼d@€ñ‚ 0^Æ 2 ÀxA/È€ãejèšÈÈÈa\›Ba*“YÈdæ,VÛ0®ŒÁ¸áêêóë×ÓÓcÚÝm&ÓÅbºLfJ¡“&)&MRÒhÊWcXLLŒ««ëªÀï‚ÁÄ×ÙÙSVV_ZZ_ZZwÿþ“žž~gg»W_õâñ\ÃÃ=¦Ms65…ËAF 2 ˜€‚¨ªj++«/-­++«olì01¡¸„…y„‡{„‡{°Ù6†ŽŒ ÁÑ߯¨¨hÂ}½{÷šž=ë67§‡†º‡‡{„‡{O™4ÉÌÐ1‚12 Ç„Bé͛ե¥õeeõ>•Ë•..v3fx…‡{†…yxy±`x Œ'0¼à 2 ëz{å8åáá­XÜkm͈ˆðâñ\`x ~%È€`,zþ\rûv Þ>xðD¡P¹ºÚGDxâá-—Ë¢Rax †d@0&¨TDee3Ny¥¥ummbÞ‚QŒLÖÿà xx[^Þ(‘ôY[›GDx†‡{„…yøû;[ZÂðŒ,È€`T57‹nß®Á÷¬ÔÕ=S(Tnnø†Þ‚ÑŒ,íá-F r ÷ ÷àñ\`x 2 ~b±ìÎ:ü+´žJ¥}66ør oÁ˜ ÆÆ|^ii}mí3¥R5uª#¾a†·`Ì‚ ^’\®,/oÄ)Ϭ5¼ue³­ #/ öCVlm-ð +aa.tCÇÀ@œà‚èê’ÙÚZ¼tu_¡!„¦NuÄ)Çs…á-× Nd Ïþî¹sço_Kû!+tºi` + oÁÄψž˜ärå¡CßÿÏÿ|§T* Õ —×~ÈŠeh¨û† sÃÂ<^yÅÅ܆·`‚>àôÿWõî»ÿlmíT* „N­®Î Ñ¨êËho)Š·7oÃÃ=§Lq0PøŒèN(B¡tçÎÓ/Þ31¡¨T?¶õ÷+++Ÿ»õõ)JKëÔ²‚‡·¯¿îèÆbY6~Fô'‚ rsKöì)”ÉJå/þã©)uæLo¥RU^Þ(•öYXЃƒÝÂÂ{÷ÝS?üÐ@„4(…B±²2ûïÿö ýù'ðäd0È€ã›\®üÛߊþö·ËA ð‡Åýû{G30Æ…_dÀºººË—/00$­­½g϶´µõfáwÞáÚÚÒ´Ë,Xàéé9Ü¡½¤#GŽ:0ÁmܸQ}ö0??ùòå£xææÓ¬­g™˜·:«‚ P(éáÑÕõLöHû¥¼¼¼eË–d¤C@¡P ˜à4F½:¾ †qñ8ÒÛ+òDôôiçÓ§x¢¹YØÔ$lmíêí•ãe¨T•JµcGúÞ½K5ªÁŒ3¦22˜Htöðàn˜ñÁ yy±¼¼XÚ/‰Å²§O;››E--OŸvZYÁw¾h‚ 8aY[›[[›ûúr cÜ0^Æ 2 ÀxA¯‰™)jÜÝÝãââÚÛÛÕJ¥IIIVVVaaa}ô‘B¡ ëz{{kÜE¡Pjjj4VN…ª©©1àÍ+ííÝýý Cm}|µÓÏÜÜ|æÌ™£¶;˜!tëÖ­–––æææãÇ‹ÅâÎÎNüRwwwhhhYYYFFÆÝ»w“““sss###É 444Ü»w\•H$º~ýºöÊÕÐ^ÔÕÕ1™LIßéÓe+VdNŸž&IGyëã×èœ~|>ßÛÛ{ùòå#}ïD>á 5yyy%ãB¨ººšœU©TsæÌIIIÁ³‰‰‰³gÏV(ä‰ÄÝÝ=++ ×]¼xñîÝ»ÉW³³³£¢¢Èuj¬|DUWWèAåååi—÷õÉ/]â¯_ÿw7·gçNN;8œwZ[;G.’ã_FóôkkkCµµµÚ=áuæ·!÷Ï;çìì,‰B§Nš:uªT*EÉåò¤¤$6›Íb±’’’är9îÄ^¹rÅÍÍ­¸¸855ÕÍÍmòäÉqqqäç¡v-„Ðùóçy<ƒÁðôô;þüÚÚZ>Ÿ––†‹ŽŽ‰DYYY¡ŽŽŽJ„P^^ž\®ü׿*·m;áåõ‡³ÃÕ5ÃyGûoŒôáô#O¿'OžlÙ²eíÚµx%b±˜N§¯[·®¹¹çÓgÏžºNŒ¬¬,ggço¿ý¶½½½¨¨ˆËåâSK»Aˆ tÂëÌo/“E"‘‹‹ ÇÃq`¾¾¾---xº¨¨(((ïŸÏ'ÂÇǧ  ¿úàÁrZ»–P(¤Ñhû÷ï‰D*•ª»»[©Tê«®ÏKœ‚·oßf2™dÝ­[·&''‘““©¾Î>H´[fð;®Þ\Aäååq¹\'D?•J­¬¬Äå\.võêU¼€v èdjê·/88…ÃyÇÙy‡ÎÄGþïß¿ËÏž=ëå奨Aj4ÔáÃÿï‹/.¿úê‡Î;nnºÇ¿cj §ŸúÊ•••J¥"¢§§ÇÌ̬°°P¥RÉd2U𴯯ïÉ“'É•œ:u ·•vƒhoqàc1–Oøá+•Ê |øá‡B¡ÐÑÑñܹs¸<>>>::‘±mÛ6õIMMåñx@ Ìœ9sÆ újÉd2ƒqæÌ™ööö#GŽ0 ™L¦¯úbÈÛŠ‹‹ß|óM—ÎΟßÀ]]]>>>sçÎýæ›oªªª üýýgΜÙÛÛ«Þ”[¶lñóó›7ožF#]7èk™Áï8n®yóæUWW—––z{{§¤¤àB|ÙE½=W®\9þüºº:@àïïß]/—ÉŒóèQËþýß„„¤q8︹%ŽÍ §ŸÆ‘mllD‰Åb‚ D"…Bùæ›o¤Ré{gúñÇ ]'Æ\\\¾ûî»çÏŸ_¹rÅÇLJB¡èlbðÓ8ØßßOÄÙ³g9ŽP($B,¯]»ÖÎÎÎÁÁaãÆR©T}z{{œœlllV¬X!‰p¹v-†——N÷õõ-,, º¾ë¦ê\WWרØXÛ$IBBB@@€………¿¿zzzOOFS#„<¨Q®¯+­³e¿ã8þ£GN™2…Édnß¾]&“ÉåòY³fMš4Ic…BáêÕ«8ÎŽ;d2ñ«3 ¦TªîÜ©ýóŸ |}“9œwÔ¿ N?#«T*­­­ëëëñìgŸ}fooïêêzèС+V°X,B׉¡T*?ÿüs///›Å‹NžŸŸœœüüÃ××—ÏçðÁ[·n5tP†p¬°¶¶Þ´i“¡£ÐÁÚÚü÷¿øýï# 6ï½÷^OOÏ’%KÚÛÛ===×­[7úçÞ9á!Ž,+33ÓÐQ£`jjšžžžžžnÀÆÈ ã€ñ‚ 0^Æ 2 ÀxÁ7!DÒ÷ä‰èÉQKKgKKWs³°©IÔÜÜáïï|üøzCGÀØ¢#9rdôãCÕÑÑßÕ%ïîVtuÉ»ºä"Qg§¢»[.—ÿ|?…‚ðOQ(OOê¸8²W®\!*À0º{÷®v¡Ž 8nÒ/D§s¬­çÓhL„A¨´oWÆ?øù÷4ñõ×ÇòòêG;Ê¡iLBÏïþÀاR'O–¤¦~-—+ åKš˜P>üÈÊŠ1j±0.À7!㘉 eÕªWoÝÚ½`Á4„ÐÿXËÙÙÞÌ ®ù  ú€DQÑýÄÄ<¡PªTª4^¢Ñ¨øé§^^¬ðp°0ˆO77C„ ÀØpâ‹{32.ýã7(¤Tþç°š˜PvízÍÆÆü‡ÊÊêž#„¼¼X¡¡îž¡¡^^“ øŸˆ0 È€Í?ÔïØñÏúúvõ§Þß¹ó««=ž–HúÊËKKëøüæ;wjÅâ^ º¿¿sx¸gx¸Gx¸‡…b`´Aœ€úúÿû¿E\¦PB¡²··¬¬Ôýx¥RUS󬬬¾´´®´´¾©©ƒJ5!Ë<ž«ã(Àh‚ 8aýôS뎧**š~û[ÞÑ£kS¥­­«´´¾´´žÏ\QÑ$—+ÙlkÏ'Äàà)4õÅk`ü€ 8‘©Tĉ·h4êÊ•3†ZW*í»ÿIYY=Ή]]=êƒå°0[[,ƒq2 x1õÁ2Ÿß\UÕŠË<žKx¸gX˜ –Á8 Y[›˜Ï\ZZ_ZZwïÞãþ~‹eè†û†AAnt:Ü{ÆÈ€àW‘Éú‚f>¿¹¬¬þÆj‘HjnNøy°ênggièÐ 2 N¥¥uøêauuAS¦8„…yàÁòÔ©l¸ñŒ)ÁHioﮨh"ÇË}}0Xcd@0äråÇOKKëËÊêoݪéèàÁ2¾ÕfÖ,o,ƒ€  –ñÕC ËÀP ëîî­¨hÂ?J)+«ïí•Ožlä†oµ ÷„§Ú€‘Œ! …êÁƒ'øG)·o×>y"¢Ñ¨~~Naaáá3gzÛÛÃ` 'È€`ì"¥WVV_YÙ¬RÁ` 3È€`|Ð~¤µ5³ ƒeðÒ ‚ñGû‘6¦¦&Ó¦9ãÁòý×Áa’¡cãd@0îi?Ò–ñ­6¯¼âƒe d@0¡h?ÒÆÊŠôó`9,̃Á :F0†@–ö#mÔ˯¾Êe2a°lì c¡ýH6Ûw ÃÃ=\LL`°lt ‚1$??ùò声!3͉NçÐéN4š#…bÚÖvD¥ê…MÊËË[¶l™z Ü@ÆœüüüÑÜœRI´¶ö8;gæFÁèÓÈ}d@0æÄÄÄ:`,L  d@€ñ‚ 0^Æ 2 ÀxA`øQÔ¸»»ÇÅŵ··«/ •J“’’­¬¬ÂÂÂ>úè#…BAÖõööÖ¸Q7**ŠB¡ÔÔÔ”——›ššž>}š|©°°N§ íÚØØ¼þúëõõõƒ¹¦¦f€! µ5^BMMÍèl2 #âÖ­[---ÍÍÍÇ‹Å!!!ø¥îîîÐÐв²²ŒŒŒ»wï&''çææFFF*•J¼@CCý{÷ÈU‰D¢ëׯãéàààÝ»wÇÇÇãµuuumÙ²%55õ•W^QßîÓ§O¯]»¦R©V­Z¥/ºº:&“9ÈQ÷RíñbêñØÚÚîܹs„6ô cF^^ÞÄ8'BÕÕÕä¬J¥š3gNJJ žMLLœ={¶B¡ H$îîîYYY¸îâÅ‹wïÞM¾šE®³¯¯/ `ãÆAlÞ¼yúôéýýý:·ÛÜÜŒêêêÒduuµzkkÔ p„hÄ3ìByyy…Ðã̹sçœE"BèÔ©SS§N•J¥!¹\ž””Äf³Y,VRR’\.Ç#©+W®¸¹¹§¦¦º¹¹Mž<9..ŽìŽi×B?žÇã1 OOÏ'N „ …Îêꃵn eóæÍ/^ij999)))T*•\ÀÒÒ2)))''ÏÆÄÄäççÿŸ9s&::š\˜N§gggÿýïÿøã?žM£é~à Þ__¸p!88ØÂ‚Ãá|òÉ'¡3f „Éåÿõ¯q¹\;;»?þø%Ž‚¾VÒwh }||X,V|||__Ÿz<êÙÙÙùöÛo3™L—ÄÄÄÞÞ^ܤ¹¹¹~~~öööŸ~úéÀÑdä2.C5È>`\\Üš5kZ[[Ùlö;wpaFFÆÒ¥K›ššø|~HHÈ®]»pŸ"**êûï¿OKKó÷÷çóù """11Q_-‰Dbff–™™ÙÒÒrìØ1SSS‰D²oß>Õ;;;qÇMciuÊÊÊlmm ‚ÀY£½½]c§nÞ¼Éf³qÝG9::–——ãÕZXX<þ\c»víB¥§§«¯!TQQÑÝÝ-‹kjjÞzë­ÐÐP‚ Äb1N_·n]ss3γϞ=Óî¾þúëb±ø«¯¾B=þ\}…êô}­¤ïÐ,\¸°ªªª¤¤„Ë妥¥©Ç£>;þüÚÚZ>Ÿ––†‹ŽŽ‰DYYY¡ŽŽŽž6HW2 C™E"‘‹‹ ÇÃoÌ××·¥¥OáwŸÏ'ÂÇǧ  ¿úàÁrZ»–P(¤Ñhû÷ï‰D*•ª»»[©Tê«®ÏKdÀÛ·o3™L²îÖ­[“““ ‚ÈÉɉŒŒÔX§J¥zóÍ7©TêªU«4¶K¢ÑhsçÎ%Î>”H$J¥òÚµkxUÚ°¸¸˜ |9W Û¤}ßÈꇆ ˆ¼¼<.—«3ö÷÷S©ÔÊÊJ\^PPÀårq`W¯^Å h·8øDßdIDAT¶¾ƒŒiƒ¿¸gÏ*•ÚÖÖF–0 õw© ~ákd C h¯G»A7nÜˆŽŽ¶´´œ={ö¥K—¨®ö{òäɓӧOÇÓŽŽŽEEEU>¼hÑ"²nqq1—ËU©TK–,ùòË/5ÖyâÄ ›k×®1Œ¯¿þz€í’ gÍš´víZ}°ªªJc='£0øFÆ›–Édx{÷î1 ðñãÇêKòù|ƒûé§Ÿ^¸×êtf@¸ÆŸÇñÅ ,HHH ™L&ù6‰D%%%¸_#srrjhhÀ%{÷îÕWK&“©TªÓ§O …Âõë׿ñÆB¡P_õA"âðáï½öžÝ³gùÍ/BH*•fdd,^¼˜,™5kVww÷7ŠŠŠ–,Y¢¾¶§OŸÆÇÇïÛ·oΜ9©©©›6mêèè8™L¶lÙ²¤¤¤üñСCúÒ (ÚGaðŒËqšCUUU999éÜ ›Í¦R©uuux¶¶¶ÖÙÙO›˜ Cú‚ Æ•JµnݺíÛ·Ÿ:uêòåËçÏŸÇåo½õVrrrcc#ŸÏ_¼xñÁƒÕk­^½úÏþseeeeeå¶mÛõÕ¢P( .üꫯÄbq?F³°°ÐW½««ëèÑ£ÚÓ¡öööÖÖÖ'Ož\»víw¿û]}}ý»ï¾‹_JIIyöìÙüùó¿ýöÛêêê³gÏFDD8;;ÿñ$«S©Ô¥K—nÚ´)<<œÅb‘åAlÚ´‰Çã­_¿!”Àf³·oß>p£õõõõ÷÷Óét™L–ššŠêîîÆ/I$’ëâQ§ï( ¾‘qùŸþô§ššš²²²Ý»w“wíhÄC£Ñ–/_____YYùþûïÇÆÆðм°ëÀ¨Ì(øÀxl{öìY‡# ‚‹Åk×®µ³³sppظq£T*UUõöö&&&:99ÙØØ¬X±B$áríZ8 ///:îëë[XX8@u}ïÕßb®®®±±±êv‚ $IBBB@@€………¿¿zzzOOY÷˜Š‹‹BT/ÏÎÎ633#€A”––š˜˜œ9s†p<øÙgŸÙÛÛ»ºº:thÅŠ,K.—Ïš5kÒ¤IÛ%~9 Ö™4t…Á72n«£GN™2…Édnß¾]&“©Ç£Þ˜B¡põêÕgÇŽxD¬3Ú!]£`xF4Cð3¢áœœðjjj´÷2Ò(Šö3¢a 0^£ÍÚÚzÓ¦M†Ž!È€€ÑÇb±233 BÆ 2 ÀxA/È€ã`¼ Œ—©¡@ÓèüƒBð«80†<~ü˜|pÃnÆŒ®®®ê%Æ ®Œd@€ñ‚ 0^ÆëÿÍ…æäRfâÚIEND®B`‚XQilla-2.3.0/docs/dom3-api/XQillaPlatformUtils_8hpp__dep__incl.map0000644000151400015140000000022511653571065021705 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMNodeFilter_8hpp_source.html0000644000151400015140000003156611653571065020010 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMNodeFilter.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMNodeFilter.hpp 671894 2008-06-26 13:29:21Z borisk $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMNODEFILTER_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMNODEFILTER_HPP
00024 
00025 #include <xercesc/dom/DOMNode.hpp>
00026 
00027 XERCES_CPP_NAMESPACE_BEGIN
00028 
00029 
00049 class CDOM_EXPORT DOMNodeFilter
00050 {
00051 protected:
00052     // -----------------------------------------------------------------------
00053     //  Hidden constructors
00054     // -----------------------------------------------------------------------
00057     DOMNodeFilter() {};
00059 
00060 private:
00061     // -----------------------------------------------------------------------
00062     // Unimplemented constructors and operators
00063     // -----------------------------------------------------------------------
00066     DOMNodeFilter(const DOMNodeFilter &);
00067     DOMNodeFilter & operator = (const DOMNodeFilter &);
00069 
00070 public:
00071     // -----------------------------------------------------------------------
00072     //  All constructors are hidden, just the destructor is available
00073     // -----------------------------------------------------------------------
00080     virtual ~DOMNodeFilter() {};
00082 
00083     // -----------------------------------------------------------------------
00084     //  Class Types
00085     // -----------------------------------------------------------------------
00112     enum FilterAction {FILTER_ACCEPT = 1,
00113                        FILTER_REJECT = 2,
00114                        FILTER_SKIP   = 3};
00115 
00177     enum ShowTypeMasks {
00178         SHOW_ALL                       = 0x0000FFFF,
00179         SHOW_ELEMENT                   = 0x00000001,
00180         SHOW_ATTRIBUTE                 = 0x00000002,
00181         SHOW_TEXT                      = 0x00000004,
00182         SHOW_CDATA_SECTION             = 0x00000008,
00183         SHOW_ENTITY_REFERENCE          = 0x00000010,
00184         SHOW_ENTITY                    = 0x00000020,
00185         SHOW_PROCESSING_INSTRUCTION    = 0x00000040,
00186         SHOW_COMMENT                   = 0x00000080,
00187         SHOW_DOCUMENT                  = 0x00000100,
00188         SHOW_DOCUMENT_TYPE             = 0x00000200,
00189         SHOW_DOCUMENT_FRAGMENT         = 0x00000400,
00190         SHOW_NOTATION                  = 0x00000800
00191     };
00192 
00193     typedef unsigned long ShowType;
00194 
00196 
00197     // -----------------------------------------------------------------------
00198     //  Virtual DOMNodeFilter interface
00199     // -----------------------------------------------------------------------
00214     virtual FilterAction acceptNode (const DOMNode* node) const =0;
00216 
00217 };
00218 
00219 XERCES_CPP_NAMESPACE_END
00220 
00221 #endif
XQilla-2.3.0/docs/dom3-api/DOMXPathException_8cpp__incl.md50000644000151400015140000000004011653571065020137 0000000000000056afba568550582d5090970582e3da2fXQilla-2.3.0/docs/dom3-api/XQillaExpression_8hpp__dep__incl.png0000644000151400015140000000747511653571065021264 00000000000000‰PNG  IHDRuÛStnbKGDÿÿÿ ½§“òIDATxœíyT×Ço D„ _LÔJ*]¬–öX´ÒRPiÝkÙ—X@ =jJmQ¬¥"ÒÊ"Á(jQ”*D)Œ¢žº ’gEŽ p, ‹T AÈžyÌ{i CعÎ篙ßܹó½óIf&É8Ðafê8îNp¯p‚{…¢îÌ•+WRSSMg,¸»»'''kgŸñÚÑÑÁçó?øàc‡ÂõõõöööºâÀF;vì0VœñaçÎzüü '¸W8Á½Â îNp¯p2b¯>ôôô¼|ù²¶ríÚµåË—755¡³2™ŒÃᄇ‡ôÑGl6ûĉjµ ‹=<<0'Ë‘/†L;$b±x¼òãsŽa˜LfpppVVÖÛo¿M&“ûúú233Y,–““ ¿¿ŸÍfÛÙÙEFFÒh´æææÃ‡×ÖÖîÛ·L&ŒtsÙÙÙT*u¤kM£Ëo*Fs ±µµåp8€üü|tÑñãÇíìì233/^L§Ó—-[–——×ÖÖV^^nkk9ÒmÙÙÙM–QF—ßTŒÆ+‘HLJJª¨¨8qâDEEERR‘ø¿÷ý… BCCÍÌþéÖÒÒÒßߟÏç>ŽÝ¸qcóæÍÞÞÞ7n>>T(>ŸÏb±Ö®]{êÔ)Ìä·oß Z³f͉'´}bfÖ+KŒ£¼nrvvöóóãr¹¡¡¡óæÍÓŽ¶««‹Á`è5f2™ÍÍÍzëïïß¾};“É,,,d³Ù‡êééAÉd2é³–,Yâêêš““ÓÝÝ““óí·ßZZZ¢íy<Þž={vïÞ]]]­}}'%%1™Ì3gδµµq8œŒŒ @PPP “ÉRRRÖ¯_êÔ©½{÷Êd2Ì¢nàŸ~ú©³³3//ï‡~¨©©)**Bë¿ÿþ{NNNTT‡ÃA_vzTWW:t(11‘ËåJ$™1‹Ãg”^yôè‘™™ÙŸþ©·ˆ@ l¬û‰D:|øpll¬ƒƒ…Bôõõ¡‹""">~´#âãã×­[7þ|mWl6›N§»¸¸DDD\¸p-FFF.Z´ÈÒÒ²¢¢"..ŽB¡899EEEݺuK©T""•JI$’··wYYÙ”)S0‹ÚM¨TªK—.ÅÄÄP©T''§Ï>ûL»¡õëדÉä•+W´Útñóó³²²zï½÷Zñ˜™1‹ÃgÄ×M(|>ÿÎ;™™™ ï¿ÿþÒ¥Kd2yúôéB¡ð­·ÞÒm, çÌ™c(‘(‰öíÛ'•J™L¦î¢ÂÂB6p2™¼zõêcÇŽeddèÖét::1gΜÎÎNí4:ÑÞÞ¾qãFmckkk›ÌÌÌ3gÎ8;;.^¼³¨]«»»[£ÑÌš5 ¥ÑhÚ 9::¢Ãl¤`ÀK33fqøŒæýúäÉ“¬¬¬èèè °X¬ŒŒ íkÓËËëøñãݵk×Å‹Ož<éééi C¹\ž’’âïŸÿå—_'ÃãÇKKK]]]sssuë"‘hiiAw"ÐÙѶ¶¶………UUUUUUeee¹¹¹r¹\£Ñ¤¤¤”••}üñÇÛ¶mëííÅ,j7aoooffÖÖֆζ¶¶¢:Ö±J̘™1‹ÃgÄ^ÉÈÈprrZµjÀ×××ÞÞþÀèR‹ÕÕÕ_SS#‰¨TjjjªB¡@†R©T©TD"Q¡PúûûÑE===]Ï‚fØ»wï'Ÿ|’œœ\[[{ýúumWÙÙÙb±øÁƒ\.wùòåzZ¶lÙ¡C‡:::šššy<@HHH¸zõj__ŸR©$‰S¦LÁ,j;!‰hkkC?Èyyy 6´òòrí9e003ÈŒø8\YYyûöí#GŽ /="‘˜ðù矻»»»»»[YYåççÉd2›ÍNMM:uj`` §§gbbbii)à‹/¾Ðk\UUÅãñzzzˆDâ–-[öïßÿÆo K½¼¼¶nÝ*“É<==ƒ‚‚ôŽ`áááÙÙÙ›7o&îîîQQQ$é›o¾áp8?ž5kÖŽ;H$³¨%...;;;::ÚÂÂâÃ? lhûöí[¸p¡µµµ]Š™Y¯h`uLºÿgZ\\ìççWUU5Ò^ £R©^}õÕñíV±X<îá'ÌÌ£ÈÎ;g̘Q\\¬­ãþ0‘Hœh©8zÀsßßÚÚzÍš5¦N1203Ë@àñjgg÷ÕW_™:ÅÈÀÌ<.Ç+Ž.¸W8Á½Â îNp¯pòy}ðà‰©#ŒûˆñññÆÏa:;ÚÛ? eC7l455éÝ£~ÆëìÙ³}||ŒÉHH¥ÄÖV›©S_™=ãÏÝ“''§wß}W·BxA~‡ =½"3³rî\‡7¾3ucð¢œ_ù¥ðèÑ“û÷[Mż^ÿóŸ?E¢n€……ùÙ³µ¦Žc ^¯<ž€H4(•ê_~©Ñhà?õÀïU­Öœ9S£R©ÑÙÎÎÞ[·šLÉÀïõÆ aww¿vÖ¼´T`Â<Æ~¯%%"ñŸa*•êsçJ¥Ú„‘Œä^ ÕùówT*nQ"‘_½Ú`ªHÆr¯—.Ý—JåzE"‘PRùU1ä^KJj~Õ@¥Òüûßô÷+LÉ8ÀìõéSyee½Z­¸H©TóùõÆd4`özáB½B¡l)ÜWÅ0{åñ5§Ñ UU÷%©1ó˜ïû‹Dݺa7·Ô]»>ñòúç?™ÿõ/Û)SFùͳç8G…B§ÛëUf̰™;wÄßašŒÀ|~‘Á½Â îNp¯p‚{…Ü+œà^á÷ '¸W8Á½Â îNp¯p‚{…Ü+œà^á÷ '¸W8Á½Â îNp¯p‚{…Ü+œà^á÷ '¸W8Á½Â îNp¯p‚{…Ü+œà^á÷ 'cý^3ŸÏojš4?KÇçóÛÛo™:Űë3¿‘±1‰~‡Ú‚bf6eèvÏcô2ÇaŸ1†0 E‡Z-3uŠ¡9}úôØ¥àçW8Á½Â îNp¯p‚{…Ü+œ<_^…B!@ÀœuW@ …×ÿy¾¼ÚÙÙ}ýõצNJ¥rëÖ­4ÍÆÆfåÊ•¦N42ž/¯ŽŽŽiii¦N¹¹¹<Çã …B*•nêD#Ã^ÏŸ?O£Ñº»»EEEÎÎÎ}}}&;;ÛÅÅÅÆÆÆÍÍ­ªª =²8xþú믋-²²²¢R©õ«Õêôôtggg›¥K—VWW£õžžžM›69::Òéôøøx™L GŽqqq™1cFZZÚÏ?ÿÍ`00‹†÷Õ¸x5ÒùÕÎÎ.22²¾¾žÍf£•¦¦¦… j,X°Àp$©¡¡ÁÛÛÛÕÕõèÑ£Ú:áÿ´´´ ì°££C­V¿üòËh‘Á`ˆD"tÚÆÆ`aa¡7­K|||kkkDDDPPÐÀHè!Aï¹L&˜?¾v[˜Å ÅH^[ZZ²³³½¼¼¶nÝŠVh4Úü¡mP_?ÄS¤R©¯¯oBB‚@ ÈÍÍÕÖµ¯Ð—^zi`‡3gÎ477×þ…¸±±‘F£ 'ð¦M›îܹ R©¡¡¡uuuÛ`^  oP@CC*~°â„b ¯&,,,&&¦¨¨ˆÏç—••ÂÂÂÎ;×ÞÞþÛo¿%%%îD.—+ ‰$•JwìØèí}æ ½ÑÑѺnß¾`aaáççÛÜÜ|ïÞ½ï¾ûó7µZ˜˜ØÐÐÐÚÚúã?.Y²ÀårÿþûoÃ+ÆÅÅ …šššmÛ¶(N,c<Žçüš••õæ›o* AJKK©TjWW—B¡øþûïçÍ›G&“ÝÜÜNž< ž_Ù¿ÿôéÓgÏž››@¡Pt·¢R©ÒÓÓ †µµµ››ÛÍ›7Ñ»ººBBB¨Tê–-[¤R)‚ @ç<Š9ÝÛÛËb±ètú´iÓÖ®]ÛÒÒ2äZhT.—;wî\GGǘ˜©TŠY4¼»&ÓuÓèú›¤`aãšL×M8F÷:nL›6-**j8E#ð¼xÕ~¬œ¼P(”¼¼¼áÀóâg|Á½Â îNp¯p‚{…“qxî`SSS~~þØûÁA©­g„ñ¾Æ$ú~ÎäbŒ^`~þë‹ ~~…Ü+œà^á÷ 'ÿ¦~þ7$:IEND®B`‚XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMRange-members.html0000644000151400015140000002566311653571065021166 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMRange Member List

This is the complete list of members for xercesc::DOMRange, including all inherited members.
cloneContents() const =0xercesc::DOMRange [pure virtual]
cloneRange() const =0xercesc::DOMRange [pure virtual]
collapse(bool toStart)=0xercesc::DOMRange [pure virtual]
compareBoundaryPoints(CompareHow how, const DOMRange *sourceRange) const =0xercesc::DOMRange [pure virtual]
CompareHow enum namexercesc::DOMRange
deleteContents()=0xercesc::DOMRange [pure virtual]
detach()=0xercesc::DOMRange [pure virtual]
DOMRange()xercesc::DOMRange [inline, protected]
DOMRange(const DOMRange &)xercesc::DOMRange [inline, protected]
END_TO_END enum valuexercesc::DOMRange
END_TO_START enum valuexercesc::DOMRange
extractContents()=0xercesc::DOMRange [pure virtual]
getCollapsed() const =0xercesc::DOMRange [pure virtual]
getCommonAncestorContainer() const =0xercesc::DOMRange [pure virtual]
getEndContainer() const =0xercesc::DOMRange [pure virtual]
getEndOffset() const =0xercesc::DOMRange [pure virtual]
getStartContainer() const =0xercesc::DOMRange [pure virtual]
getStartOffset() const =0xercesc::DOMRange [pure virtual]
insertNode(DOMNode *newNode)=0xercesc::DOMRange [pure virtual]
release()=0xercesc::DOMRange [pure virtual]
selectNode(const DOMNode *refNode)=0xercesc::DOMRange [pure virtual]
selectNodeContents(const DOMNode *refNode)=0xercesc::DOMRange [pure virtual]
setEnd(const DOMNode *refNode, XMLSize_t offset)=0xercesc::DOMRange [pure virtual]
setEndAfter(const DOMNode *refNode)=0xercesc::DOMRange [pure virtual]
setEndBefore(const DOMNode *refNode)=0xercesc::DOMRange [pure virtual]
setStart(const DOMNode *refNode, XMLSize_t offset)=0xercesc::DOMRange [pure virtual]
setStartAfter(const DOMNode *refNode)=0xercesc::DOMRange [pure virtual]
setStartBefore(const DOMNode *refNode)=0xercesc::DOMRange [pure virtual]
START_TO_END enum valuexercesc::DOMRange
START_TO_START enum valuexercesc::DOMRange
surroundContents(DOMNode *newParent)=0xercesc::DOMRange [pure virtual]
toString() const =0xercesc::DOMRange [pure virtual]
~DOMRange()xercesc::DOMRange [inline, virtual]
XQilla-2.3.0/docs/dom3-api/DOMXPathEvaluator_8hpp__incl.png0000644000151400015140000001562311653571065020264 00000000000000‰PNG  IHDRÃu½UbKGDÿÿÿ ½§“HIDATxœíÝi\×Úð’°+ ûR¤¨EqÁ­ÙжZ¥VE‚PkE ­½·€¢·¨·bÕ¢¸€;-P*Rq)}Å´.(EEÜ!QAÂdÞ§wî˜@ !áùNrÎ<39yòÌd&Ђ@d ¦è@éA&YA&YA&Y1@7n¼|ù²¢£ “››«è€¬ “*^YYYII‰£££¢òöêÕ«òòrEGúdÒÁÑÑqýúõŠŽÈ[^^ÞþóEGúœ'YA&YA&YA&YA&YÁw÷JÃÓÓ“\6557n\XX˜¾¾>ÙØÞÞžššzëÖ-6›mmmíêêºxñb:ŽûZZZ¦¥¥Ñh4òù«W¯¾yófzzzkkkhhhLLŒ‡‡~èêÕ«6l8pà€­­-u½ÚÚÚNNN+W®477—2æôôtKKKqBºté’4b555=ê" ‘[dRe’˜˜hnnÎçóŸ?~âĉääd]]]„PkkkXX˜ÁŠ+,,,?~|øðáÂÂÂíÛ·«©©!„^¼xñðáC;;;¿°°0 ÀÛÛ;##Cò}ÿý÷{÷îÅËÞÞÞxë„×Bª©©!ÏP—» ŒËånÙ²eÞ¼y‹-Ú·o_GGî^TTäççWVV&›ÀVà'_½zuÉ’%óçÏOHHèììÙ(y“Ê€LªÄ¬¬¬X,BˆËåÖ×דGî$;;»gÏžáå1cÆ´µµ=|ø!ÔÒÒRTTäââB}²ƒƒƒŸŸ_RRRPPлï¾K}¨½½½­­­µµ•ÅbíܹsäÈ‘C† imm]·n½½}zzzXXØ¡C‡p*ÌÊÊ"û:thÕªUIIIdUˆ¤Byyyåççã\ëÖ- É“'‹\‹äÝ"M`»víª­­Ý¿ÿÖ­[oݺuäÈÜ~ìØ±èèh{{{1EnÅÉ“'7oÞüã?)^d#PypžT•Ñh4>Ÿ—ÕÔÔÜÜÜòòòììì®_¿>vìØ¡C‡RŸLÄÓ§OÕÔÔÈäKúòË/ñƒÁpttŒ‰‰A©««>|ØÄÄDCCÃÄÄ!ÔÒÒ"ƒŸŸŸ¶¶öôéÓBÍÍÍx¥ä€¤K—.ýãÿøé§Ÿyòd.—›ššúñÇw»„¾ìܹs­­­ä9Ðnc0žžž»wïf³Ùør1|`NuöìÙnO#$&&ÖÔÔÜ¿?))iæÌ™ʃ£{eòõ×_ã''§ƒêèèàmm탦¤¤ìß¿ŸÅb™››{yy-Z´ˆÉdRGðôôÌÎΞ?>µñܹs………ÉÉɸòb0QQQááánnnnnnâ‚ÑÕÕ ‹ÕÒÒúì³Ï¼¼¼V­Z•™™9vìØ… þþûïÒl _fÏ`0ÜÝÝ/\¸@ž|¹òjV==½eË–íÝ»7==ý«¯¾ºr劔}ûí·‰‰‰¡¡¡L&óƒ>8ß¶mÛøñãÉÝ+ÒŒ3"""ÚÛÛ½¼¼È%tª„ÿ¥Yá|}}kkká÷I•ˆÈ›¬zqçþ}Rxª8ºYA& Çttt¼½½¥iƒdRzL__ÿ»ï¾“¦ I@VI@VI@VI@VI@VI@Vp·è€PRR©è(zƒÇS§Ñxjj<…Æ E§ws§ÿÀÄápèIü='¥S[«ý𡞙Y‹Âþ±—«^RblfƵ±i¢Ó•ï¶KBJ QSÉŒ“›{wÕªãL¦§@$ȤªJÑ~񯯼iÓ™ŒŒPœaIU”¢rÅ) 2©Š€RTn 8 “*=(EŠS@™T¹áRÔÔT/>ÞJQ9ƒâ “*+(E(N‚Lª¤ P 8I• ”¢YœÆÇ/ž>ŠÓÁ2©2!KÑ;ü'N„RtÀijj‹= Åé ™T9°Ù QQÇòó@):ð?_uL]¾}»§ƒdR%¥¨Òât°L: A)ªÔ 8< “*Xg'ɤ‹|JQ MqÊãñi4ššMþá¾™T‘Êʪcb~ËÌüŠÁP£¶C)ªbΟ/_µê“)º8ݹóŸO|÷ÝG ‰ ô ú† à ÕÔÔ¾paâýûl&“>mÚ²==ýú²eÉ<‘šú¥Ÿß$ ”‘­­±¿ÿÔgÏ^¯[wòåËÆ÷ß·SWÿûÓñÞ=VxxÚµk•S§ÚZ[*6NÐkP“*A_|‘|á½®.®vî\äèÑæPŠª<â´«‹ÿá‡Û*+_òù„žžÖ¥K«MM‡*:FÐIcïÞ‹›6Á;ŸÁP³±1Žˆø(&&KWWsÇÿ©Sm è/µµÍÑÑÇÏ»»|¹›º:sÏž <!Ä`Ðß{ÏâôéoÅ7dR((xäã“ÈãýoÏÓéjãÆ½3qâð5kæhi©+06 'O%$äVT¼¤NC-$Äãûï½è8'o¯_s—/Oøüâñø%%Ï||&A$æÌ×ÕEÐho}_ßÕÅß·ïÒ”)**ÐkIåŠÇ㇄üÜØØÊç  оù&£³“§€°€ÜíÞ}þÑ£Ú®.¾ðCß|óë³g¯ådR¹Ú³çbAÁC‘é’Çã?zT›p^þQ9++«Þ¹óÿðéQA¼yÓñå—©ð™ª\ “ÊOaá㸸QÕèß‚ص+·²ò¥<£rÆãñW¯>&atuñïÝcmÝú»<£2‚ëI夾¾eÁ‚ÄÖÖ3¤L&Á óx|}}í™3ƒƒ§;8˜ ª¥ 0A¿{ó¦ÓÈhˆ‘Ñææv§EM¦©©ÞÕõVJDaá''«#L'èøî^x<¾Ïž¿þzŠß0tºn44Ôõð9uêWW‡áÃáªìA‡Ë}sûöÓË—+.^¼wÿ>!Ä`Ð;;»ð£ÚÚ.DÁÄP oeÒ¶¶6‡£ÀhTUJÊ={®Ðh4‚ ÔÕãÇ[N™2|Ò$ëÑ£MqVU^ZZZ²Œ³«©i(,|VXø¼ àI}}+ž-£G›¦¤Â}nÀÌ+“¾zõª¼¼\Q©²û÷_oÙrÝÚZÏÉÉØÑÑØÞÞ@•ÞÆÆÆŽŽŽ²Œ³NXMMóÝ»uwîÔÞ»Wçáa0FÑA3_Äýˆò g03cykk«à…¢wïÞí«¡`Ö‰Äç÷ï³ííMáÆ§ExæÃÝýnÔ(sE‡”•ší½÷,èžêf€¢@&YA&YA&YA&Y)}&}öìÙÒ¥K»}ZUUþ3rÚýöíÛ ãøñãd{vv¶ººzY™<~ߌFaccT[[+áùAêêêJ?~UUU_D þ&rÖ L-Y†ívJ´´´DEE7nÈ!“'OþñÇ»ºþ¾3ŠF£ÙÛÛ Ü»8{öl< $OuêzõôôæÎûøñc)ƒ9ͨjii¹¸¸÷p¯ˆ&ÍÞ–çÌWúLzòäÉO?ýTäC=222ÂËúúú«W¯×}„ k×®]¹reCCB¨±±1<<|ýúõcÇŽí¿È©®]»Æf³«««SRRššš&Nœˆ#‰ÅbeddÀÕì $aÖõÕ°¦Dssó¤I“nݺµuëÖ¿þúkÍš53gÎäñþ¾yÿÉ“'%%%ä°çòåËx¹Û©Ž×Ëb±òóóù|~`` ¸h©ï/ ð€l6»´´ÔÞÞÞÏϯoïP—2Œ~GP¼|ùòÒ¥K„R™3gNkk«È‡*++6P¸‘ìþæÍ›1cÆ„„„êììÜÑÑÑoQ¿!TYYIþÉçóÝÜÜÖ­['îù"·KúñûÐ;wîܹ#ã *3ëzúºHVò”ˆŒŒtuuíêê"ŸÀårmll:„ûΚ5kíڵ䣩©©³gÏ&Ç”0ÕÖ[]]jll­ÀöŠœf/_¾D½|ù²'{E4rív»}ÚÉÉISSÓÖÖ6-- !ÔÕÕ%²{]]ŽŽŽ––µÔ'—§M›†233CbŽÈî!uuõÔÔÔäääÍ›7§¤¤¤¦¦2™LqAöᦠ£Ñh¡¡¡gÏž7u»¤óܹsvvv›7o&÷FvvöÈ‘#MLLV®\ùæÍ‘ÒN‹~60gÇ‹‹‹spp2dˆ‹‹KAA~BCCÃçŸndddeeÙÞÞŽ¢ÑhÉÉÉ£G666Þ²eKZZڻᆱ§§#0¬ðæ L‰ôôôuëÖÑéÿ»ëIGG'***==ÿ¹hÑ¢cÇŽÿ-ý233}||È'K˜êð*ðyƒ3gÎL˜0A[[ÛÜÜ|Ë–-èí÷&0Í„1™Luuu==½½"ßÝ$á0¨ä7ó©iUÊê (((88øÅ‹¦¦¦¸qëÖ­ .|öìYiiéĉ£££ñgÅìÙ³/^¼¸aÃGGÇÒÒÒ²²²©S§FFFŠëÅår544öïßÏf³>Ì`0¸\n\\œÈîÉÉÉiiiÄÛŸK"?¬D6’ÝIÑÑÑ¡ØØXjc¿n!ê“óÖ­[úúú’׎7&BhîܹMMM'Nœ@ÕÕÕá>üðÃŠŠŠ7nØÙÙmذAd£ä™ Ïštκøøx“¬¬,‹uöìY üºxyy=|ø°´´t̘1x7"„üýý›šš’’’B¾¾¾MMMÀ¯ñöl”0%ðÇImm­Àþ¹zõª©©)î{ÿþ}33³Û·oÑÐР­­]WW'0¦È©Ž*..nnnnjjªªªZ°`Á¤I“‚hjjRWWÿâ‹/ª««q¾~õê•pM*0ͨ677×ÔÔ„‡‡/]º”ì"å !ù,¹&•ÛÌïM&åp8VVVNNNÔõ5ŠÍfãåÜÜÜñãÇãøJKK ‚9rdVV~´¼¼œ\îU__Ïd2·mÛÆápø|~ss3Ç×}áÂ…õõõDo3)ÙãóùóæÍ£ÓéÔíí×M#ºË¤âÖŽ[ÄI…ÊËË#ŸG«¬¬¤ÆOÄÑ£GíììD6É3“ÀYçààššJóóÏ?#„:::èt:¹[²²²ðnDÑÑÑ!°Œ_}êlìE&½~ýº‘‘Ù÷«¯¾Z³f Aééé3gÎSÜT§ÖXL&ÓÝÝúè#²o^^žŸÏÿôÓO8 0¦¸©.¼^RvvöôéÓǯ.™I¦™À€---Ó¦Mëé !ùÝ-9“Êmæ÷æ»ûçÏŸ'&&Θ1#""‚l422"w‡Ã¹qãnǧ`,,,ž2×8 ÀYgccCýŠÿ>©©)Nôèn|øð¡¥¥e·['<™©¦D@@À?ü@~SjiiÙºu+u„éÓ§777ÿù矹¹¹—H˜êâ´µµùúúFEEíÝ»WÜÓ$_–¤­­ýùçŸß½{—øo­Ú£÷HÞÝ’Cê—™OM«ÒT<oÆŒ7n¬¯¯733;uên_¹r¥¾übêÔ©_ý5õ³býúõNNNeeeeee...Ë—/׫­­MSS333³¶¶öàÁƒšššmmm"»ÖÔÔàqðÕv‡nllœ?>¢|X577¢>Á¨Ýù|þܹsÝÝÝñ¡qGG‡“““¿¿¿6 Ï*ò’—¼¼¼yóæYYY544H³vqc:tˆ U@xOOÏÊÊÊ›7oÚÛÛ¯[·Nd£äÉ ·št`κ]»v™˜˜œzôhOOOêŠ$Ou$¦&åp84-''§¥¥eÕªU¡¢¢"êûKÜ øôéS„PSSS^ ïnâí·9¡¸™ßãLš0nÜ8|ôôÛo¿™››ã“;MMMK—.500044 iii¡ÎéöööÈÈH ===‡ƒÛ…{qôèÑ#F¨««5*;;[d÷ŽŽŽ?þ˜Xll¬¾¾þˆ#²³³ñz;;;§OŸ®««+¼ßº§¦¦jhhÜÈÈè›o¾ikkÙ(y2È-“ÌY×ÕÕggg§££óþûï㊘ ˆúúú%K–š››ÿë_ÿ"?/Ž"ååå“Yò” ‚ËåFDDŒ3F[[ÛÑÑ166–¼*‹ XQilla DOM3 API Documentation SourceForge.net Logo

DOMNotation.hpp File Reference

#include <xercesc/util/XercesDefs.hpp>
#include <xercesc/dom/DOMNode.hpp>
Include dependency graph for DOMNotation.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMNotation
 This interface represents a notation declared in the DTD. More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/hierarchy.html0000644000151400015140000002066211653571065015047 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

Class Hierarchy

Go to the graphical class hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically:
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMLSParserFilter.html0000644000151400015140000004254111653571065021335 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMLSParserFilter Class Reference

#include <DOMLSParserFilter.hpp>

List of all members.

Public Types

Public Contants
enum  FilterAction { FILTER_ACCEPT = 1, FILTER_REJECT = 2, FILTER_SKIP = 3, FILTER_INTERRUPT = 4 }
 

Constants returned by acceptNode.

More...

Public Member Functions

Destructor
virtual ~DOMLSParserFilter ()
 Destructor.
Functions introduced in DOM Level 3
virtual FilterAction acceptNode (DOMNode *node)=0
 This method will be called by the parser at the completion of the parsing of each node.
virtual FilterAction startElement (DOMElement *node)=0
 The parser will call this method after each DOMElement start tag has been scanned, but before the remainder of the DOMElement is processed.
virtual DOMNodeFilter::ShowType getWhatToShow () const =0
 Tells the DOMLSParser what types of nodes to show to the method DOMLSParserFilter::acceptNode.

Protected Member Functions

Hidden constructors
 DOMLSParserFilter ()

Member Enumeration Documentation

Constants returned by acceptNode.

FILTER_ACCEPT: Accept the node.

FILTER_REJECT: Reject the node and its children.

FILTER_SKIP: Skip this single node. The children of this node will still be considered.

FILTER_INTERRUPT: Interrupt the normal processing of the document.

Since:
DOM Level 3
Enumerator:
FILTER_ACCEPT 
FILTER_REJECT 
FILTER_SKIP 
FILTER_INTERRUPT 

Constructor & Destructor Documentation

xercesc::DOMLSParserFilter::DOMLSParserFilter ( ) [inline, protected]
virtual xercesc::DOMLSParserFilter::~DOMLSParserFilter ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual FilterAction xercesc::DOMLSParserFilter::acceptNode ( DOMNode node) [pure virtual]

This method will be called by the parser at the completion of the parsing of each node.

The node and all of its descendants will exist and be complete. The parent node will also exist, although it may be incomplete, i.e. it may have additional children that have not yet been parsed. Attribute nodes are never passed to this function. From within this method, the new node may be freely modified - children may be added or removed, text nodes modified, etc. The state of the rest of the document outside this node is not defined, and the affect of any attempt to navigate to, or to modify any other part of the document is undefined. For validating parsers, the checks are made on the original document, before any modification by the filter. No validity checks are made on any document modifications made by the filter. If this new node is rejected, the parser might reuse the new node and any of its descendants.

Parameters:
nodeThe newly constructed element. At the time this method is called, the element is complete - it has all of its children (and their children, recursively) and attributes, and is attached as a child to its parent.
Returns:
One of the FilterAction enum
virtual DOMNodeFilter::ShowType xercesc::DOMLSParserFilter::getWhatToShow ( ) const [pure virtual]

Tells the DOMLSParser what types of nodes to show to the method DOMLSParserFilter::acceptNode.

If a node is not shown to the filter using this attribute, it is automatically included in the DOM document being built. See DOMNodeFilter for definition of the constants. The constants SHOW_ATTRIBUTE, SHOW_DOCUMENT, SHOW_DOCUMENT_TYPE, SHOW_NOTATION, SHOW_ENTITY, and SHOW_DOCUMENT_FRAGMENT are meaningless here. Those nodes will never be passed to DOMLSParserFilter::acceptNode.

Returns:
The constants of what types of nodes to show.
Since:
DOM Level 3
virtual FilterAction xercesc::DOMLSParserFilter::startElement ( DOMElement node) [pure virtual]

The parser will call this method after each DOMElement start tag has been scanned, but before the remainder of the DOMElement is processed.

The intent is to allow the element, including any children, to be efficiently skipped. Note that only element nodes are passed to the startElement function. The element node passed to startElement for filtering will include all of the attributes, but none of the children nodes. The DOMElement may not yet be in place in the document being constructed (it may not have a parent node.) A startElement filter function may access or change the attributes for the DOMElement. Changing namespace declarations will have no effect on namespace resolution by the parser.

Parameters:
nodeThe newly encountered element. At the time this method is called, the element is incomplete - it will have its attributes, but no children.
Returns:
One of the FilterAction enum

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/functions_func_0x67.html0000644000151400015140000006417111653571065016703 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
 

- g -

XQilla-2.3.0/docs/dom3-api/DOMComment_8hpp__incl.md50000644000151400015140000000004011653571065016643 00000000000000e94c349da7fd6da94992e9be177faf48XQilla-2.3.0/docs/dom3-api/XQillaExpression_8hpp__incl.map0000644000151400015140000000024711653571066020255 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMDocumentTraversal_8hpp__incl.png0000644000151400015140000001755211653571065021022 00000000000000‰PNG  IHDRµuFWèŠbKGDÿÿÿ ½§“IDATxœíÝ{ Tiÿðg ãš{îI’’”¶íMYi¢ÒEiÑÕÛÚH[ʺ¤~[Ú]Vi#…wÑUE—Õ&5]‰¶ [[èò C„Üs9¿?N;ï4sfØÂ|?yfžg¾çœg¾óœ3çTÄ)((,Y²$;;8mÚ4ƒÁŸ¾óÆnGj¼¹¹ù§Ÿ~Z°`»»û¡C‡:::¸\nRRÒâÅ‹]\\víÚÕÜÜŒª¨¨à§ .Óéô¬¬¬+V¸¸¸;vìÊ•+K—.;wnbb"þ‡·páÂ… ÆÅÅq8¼ÖÕ«WW¬X1þü'N „Ö¬Yƒúúë¯%lü}>> ¹¹¹GõóóKIIÁǃéééL&3>>~Ïž=??¿¼¼üÖ­[~~~ÚÚÚ ,àWDZ÷îÝkaa!zm£¸Æeeeétúþýû™L&~Ù££ãÌ™39òêÕ«W¯^ÅÄÄTWW#„ð‹®\¹ÒÚÚÚ•³„|vvv ÕÕÕ/_¾ ÉÈÈðb‹ÕÅfÙl6‡Ã‘••íèèÀÏ'¶¶¶"„&NœØÜÜœœœ|˜¨¤¤tøðᤤ¤¸¸¸ÊÊJ}}}www999ÁètzffæÂ… ÿQãëׯ]½zµœœÜôéÓ===)J[[[ppp[[›¯¯/BHMMÍÛÛû—_~IMMýî»ïnݺÕÅõòööŽ]µj…B™:u*Þš(===+++WW×ß~û­+ͪ¨¨øùùEDD(**zxx888„„„œ;wNVVÖÞÞ>''Gð$ƒh ‚C`¶iÓ¦øøø·oß„……Ñh4&Ú~ll,¿ÖîÝ»­­­ù›‘££c```[[›ƒƒƒ§§'~4-TØ••Ò€ÿïÚ(JXXÌÿ8 Þi#îöÉètúÉ“'ù€,p| Ä ?Ð=”••»Rú Ètuuõï¿ÿ¾+… ¯€üÄ ?1È@ ò#ƒüÄ ?1¸¿°§¤¤¤\¼x‘ì(z —«H¥võ¾éxwšŒ —Bá’ ?öwww²Cè)<*/We2UÆŒy§¦ÖNJ OŸj²X´#êTU;H  §™šš2„ì(Ü þ‰¢¢rÿ´êêÆÈHwggëÎ+ôŒšš¦SW®<ñô´ [ ¬,OV$ ƒüº„Ëåýüó•ýû¯Nj¾gÏRAdG„.\xrZ]]qß¾¥66ÃÉôCAç^½ªñ÷Oûë/fx¸‹§§Í'OsÛí**êŽçæ¾X½šìD£Áù"Ð ?I0 ;zôÖ®]—ÌÍuð23Ó!;"a†¥¥å…‡g ¢¹¿§••Ùþò#«ºú}@À‰;wJBBfûúÒee¥÷j°ÿþ÷݆ Ç<ø¯Ï´ÙrrT²#ýäG@ìܹ›6¥ëè Ú¿ßÓÚÚ˜ìp:Çåòââ®GG_¶´4ˆ‰ñ”¡.ès ?a ­7ž¾t鱟ßôÀÀY rבÏŸWùû§•”TÎòó›.##-§JA_ù|äöí’€€ã<öóÏKíìÌ;¯ }ØlîáÃŒ¨¨,kkã˜m²#}äGð‹Õ–‘––çéi³eË|UU²#ú,–­_ŸV]ݸuë|/¯Éd‡ú$È!„ ߬[—V[Ûé>oÞ8²ÃéííœÝ»/:tÍÞ~äž=KôôÔÈŽô1:6›•N·Ø½{ñàÁä_øÝ½ ^­_¬®®eçί]]¿$;З@~Ð^¼xëïŸV\\¶@ª.üî^ÍÍíÛ·g¦¥åÍ›7î§ŸÜ44$ý5|(;tèÚž=¿7$&ÆÃØX‹ìˆzƒñìûïOp¹¼èèE3gŽ!;Ð@~ˆ˜Ì†€€¹¹¥!!³W¯¦S©Ò{áw÷jldED\HMÍusûòÇÝTT`b äÇ'=ýþ–-gŒŒ4ð²°Ð';\¸ðhÓ¦teeù½{—ÚÚš‘^úú–ÐÐtüÂï  'yù;›CmmsHÈ©ßÿÓÓÓæ‡\idG¤äÇâêÕ§AA'””äcb<&NFv8RŸ!MGgPLŒGŸ¸‡ô2Èý_kkGxø‡ ¿·n?hPß¾ð»{UTÔœÈË+õõ¥ÃÄ@äÇ~.?ÿåúõÇššÚ¢¢Í™3–ìp¤>CÚ?dkîßïiiiHvD@Z ”. 6›»sçE7·ƒ£Fé3¡Å¡P(^^“¯^ VSSš7ïçƒs¸\ÙA©ãÇþ鯿*×®M{óæÝήîîɧoàñ°ÄÄ[¬¬ŒbbŸ!MOOuÿ~O++#²ÃÝ Æ}@jjî¬Y{ÚÛÙYY^^“!9Jggë«WƒV;wßÎÙl.ÙîãG©V]ÝxâÆç6ÌX¿~¦¬,|ŸI#þ iææº11žff:dGºäGéuùrQHÈ)UUÅýû=¿øb(Ùá€N”•½Û°áøÃ‡ÿ ròó›.#Ãü>ò#™Þ¿oUS#¸Ò¸±‘|êâÅÇß|c÷ÿ7OAA®÷cŸ€?Cþ¯¹&&Ú¢¯imí ÑdáP O€Dš‡Ëv¿{×,T~÷n©£ctAÁ«cÇ|wìXɱáÏÖÖÆž5kOjj®èøã‡2cb²I üS0~$GSSYYÙ0s¦erò·xaGgÇŽ ‰‰·¾þzÂÎ_«ª*’$ødüÒlmGìÝ»DOO /¿q㹇G<…‚NŸþnòd¸pRÚA~$ÇÊ•Gsrþâp¸ ŠŠZäé9¹¨¨Üß?­ºº12.üî'þž!­)"âk7·/ëë[ììv54´"„TU¯_ßI9È$HI¹šþ÷–§ÈËSýüèqqŒ±c‡ÄÄx ªEr| û´´´ïØq>%%wÑ¢‰ïß³®^}ÊápBrrÔ †ž>ý• 縤äÇÞöôiåìÙ{ÙlB¶¼œœŒ²²‚Ÿ}Íšéðié—Œg¡¡éeeuüŽ¢Re‚ƒgûû;’ >½ŠÅêðñIæñàç„Íæ½Ï¢P(û«Ñ£ ëë[(”Æ"\./:ú·üü—dE:È^–QVöŽË¾ËðÈÈß?~CJT §g±Ø¢‡j†¾ý6¹®®…Œ @ç ?öžìì'iiyŽØÿV^¿þÜ Öÿœ;÷€Áø ?í(„ÇÃZƒƒOö~T +¨ááádÇ0 TU½_¼ø›Íw¾—J¥ÔÔ4Q©2S¦˜õnh UV6,_žÀf‹ýRäñ°/j´µU¬­{30ÐðûLoàry®®±üQ&tdM£QÙl.BssÝéÓ-ìíGÚØ §ÑdÉŠt;.—÷èQÙÏŒç¾æñ0yyZ{{‡ÐÇNVVæòåÀÑ£ H ƒüØ¢¢²öïÏæñ0„•*ƒa‡éë«;8X̘a9eŠLC=´·sòó_Þ¼Y|ýú³¿þªDÉÊRÙlBˆJ¥èé©ç䄨ª*&øŸò#‹Åª¯¯'1š~éÑ£rŸøoÖ²²Tkk£)SLllLFŒÜf*STTÔÐÐøœf¯«©iÎË{}ïÞë¼¼× , aš3gôöísÉm ÓÐÐPTüpëÚGùñíÛ·OŸ>%)ªþ©¥…z]^žjm­ke¥ca¡E£õ«?§ëØ (rrTHŽR®b€äG ùˆA~b}>?–••­\¹²Ó—•––âcó«?|øPVVöôéÓüòÌÌLVTTÔ1 ¡011Y¾|yMM„×cæå奢¢ÒõöKKK»#Rða¯êZŸÓl§]¢¥¥%88xܸqƒ š8qâ?þÈápð§(ʈ#„î‹›={6¿P(wwwÁü£È%¿˜BDܧïÓôfîóù1##ÃÅÅ…ð©—/_jkø9uuõ7Š«>~üøÍ›7ûûû744 „Þ¿¿fÍš°°0++«ž‹\ÐÝ»w™LfyyyRRRccã_|GB¨²²2--m _SM: ½®»š•Ð%ššš¾üòË‚‚‚ÈÈÈ?þøcÓ¦Miii3fÌàßÝÿúõëÇó›­¯¯¿yó¦à¥§§Ÿ<ÙS“á‘ ýô ~6¥& ººúúõëXŸ2wîÜÖÖV§JJJ„VP´_½½½}̘1>>>†­^½z„ =õGB%%%ü‡<oêÔ©Û¶m÷zÂõêzûÝèÏ?ÿüóÏ??³‘~Óëþé~‘Ьä.dggÇápø/hnn611IHHÀë:99mÞ¼™ÿlrròìÙ³ùm"„|}}555™Læ'D.ùÅ’;¿îçl«žëφ]¿~½ººšÿðÏŸ?ohhˆß0{üøqssó––„›ÍÖÕÕÕÑÑ f³ÙøX:''ÇØØ˜Á`„……..ŽÉd=zTVV¶¹¹9::š°zbbbJJ öñ×áwa!¿:_hh(B(""B°°GW #ú>,((PWW—üîø³âÚ„š7o^ccã™3gBµµµx 3gÎ,..ÎËË333 ',”Üzsü(…½nïÞ½:::gÏž­¬¬¼té’¾_<==^¼xQXX8fÌ|3"„–.]ÚØØxäÈ„ТE‹ãããñ=‚}Ü%t üK¢¦¦FhûܹsGWW¯ûìÙ3==½‡bÖÐР¤¤T[[‹Æ%%%ÅÅÅŠŠŠIIIØÇ ÑàÅ­¦èfÄôèQ“6›-úé?JÞB]ºçú3&2~ü”üX__odd4vìXÁ÷5j¸žmmmÇWXXˆaØÈ‘#Ïž=‹?ûôéSþ²h­ºº:99¹Ý»w×××óx¼¦¦&.—+®º««k]]ö©ù‘_Çãñ,X@¥R½¼¼×·GW ë,?Š{w¼D\›‚B Ã0üüTII‰`ü† ÇŽ›0a‚äw翘°MA¡ââbÁ÷Â[`±XxáãÇ E[ÔË祭×)**>zôˆÿÔÇBo޼܌………øfÜË¢ËB½Qr—ÐÓÓËÎÎ ìСC³fÍâ×e0fff<ÏÅÅ%>>#Ê\.×ÞÞa¡3 O¸šâ6£häѧO¨KÞBz®?cŸþï±±±ŽŽŽüBmmmþv©¯¯ÏËËÃËñ³x¯_¿ÆK=z´sçNqµX,Ç;}út]]···³³s]]aõË—/;99 †_âPQQÑ•µª^YYéïï=uêÔ°°0__ßwïÞõª‰†÷õ¹sçJ~w\Û$¼¨ï@¡ââbü I\¡4Â^gbb"ø31>›‘®®.•J}ùòÿ¾xñÂаó)'D;³ ¡.áéé¹}ûvÁ¹è[ZZ"##[øê«¯šššnß¾-î§v™¤¤¤;wî>|/! žp5Qg=ó‘¼Eõ^Ì]ù&çr¹ŽŽŽ;v쨫«ÓÓÓ;þ<^îïïïææ†_X0iÒ¤µk× ~E„……;¶¨¨¨¨¨ÈÖÖvÕªUâj±X,…ôôôšššÃ‡+((°X,Âê^^^x;øÕaG}ÿþýÂ… ‘ÀwTSSFôÅ%XÇãÍ›7ÏÞÞ?8íèè;vìÒ¥K{aÕ0 Cs0Œ 544tåÝŵ™Ào‰ŒVðètzIII~~þˆ#¶mÛFX(¹3ôÚøQ:{]LLŒŽŽNFF“ÉÌÊÊ255ÅßÚÃÃÃÁÁáåË—EEE–––øfÝ ‚Ë‚Íbu‰÷ïß9ÒÞÞ>++«¸¸øìÙ³–––¶¶¶mmm‚¯Y³ÆÂ‚N§ ½)úxˆwèÐ!<ÝàEƒ·š¢›Q´qœ¸ñ#þÙìt?b½ÕŸ±Ï?¾>pàÀ¸qãðqï¹sçôõõñ“&+W®ÔÐÐÐÒÒòññiii\ö¶¶   55µ¥K—Ö××ã墵0 ;yòäðáÃi4Ú¨Q£233 «wttÌ™3G0°ˆˆuuõáÇgffâïËf³¿úê+Ñ#T=99Y^^þùóçü’üü|™ôôôž^5ìãS6C† ñôôÜC’ß]B›>x GŽ:t¨¶¶öºuëX,a¡äÎÐkùQ:{‡Ã‰ŽŽ633SVVžêÁ0¬®®nÙ²eZZZúúúüoAq{äéÓ§BYr—À0¬¹¹900p̘1JJJ–––üëøãS XQilla DOM3 API Documentation SourceForge.net Logo

DOMXPathException.cpp File Reference

#include "DOMXPathException.hpp"
#include <xercesc/util/XMLString.hpp>
#include <xercesc/util/XMLMsgLoader.hpp>
#include <xercesc/util/XMLDOMMsg.hpp>
#include "impl/DOMImplementationImpl.hpp"
Include dependency graph for DOMXPathException.cpp:

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/DOMLSParser_8hpp.html0000644000151400015140000000674211653571066016067 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMLSParser.hpp File Reference

#include <xercesc/dom/DOMConfiguration.hpp>
#include <xercesc/dom/DOMLSParserFilter.hpp>
#include <xercesc/util/XercesDefs.hpp>
#include <xercesc/validators/common/Grammar.hpp>
Include dependency graph for DOMLSParser.hpp:

Go to the source code of this file.

Classes

class  xercesc::DOMLSParser
 DOMLSParser provides an API for parsing XML documents and building the corresponding DOM document tree. More...

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMPSVITypeInfo-members.html0000644000151400015140000001674511653571065022372 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMPSVITypeInfo Member List

XQilla-2.3.0/docs/dom3-api/XQillaNSResolver_8hpp_source.html0000644000151400015140000001642111653571065020563 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

XQillaNSResolver.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2001, 2008,
00003  *     DecisionSoft Limited. All rights reserved.
00004  * Copyright (c) 2004, 2011,
00005  *     Oracle and/or its affiliates. All rights reserved.
00006  *
00007  * Licensed under the Apache License, Version 2.0 (the "License");
00008  * you may not use this file except in compliance with the License.
00009  * You may obtain a copy of the License at
00010  *
00011  *     http://www.apache.org/licenses/LICENSE-2.0
00012  *
00013  * Unless required by applicable law or agreed to in writing, software
00014  * distributed under the License is distributed on an "AS IS" BASIS,
00015  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00016  * See the License for the specific language governing permissions and
00017  * limitations under the License.
00018  */
00019 
00020 #ifndef __XQILLANSRESOLVER_HPP
00021 #define __XQILLANSRESOLVER_HPP
00022 
00023 #include <xqilla/framework/XQillaExport.hpp>
00024 #include <xercesc/dom/DOMXPathNSResolver.hpp>
00025 
00026 XERCES_CPP_NAMESPACE_BEGIN
00027 class XercesDefs;
00028 class DOMNode;
00029 XERCES_CPP_NAMESPACE_END
00030 
00031 class XPath2MemoryManager;
00032 
00038 class XQILLA_API XQillaNSResolver : public XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver
00039 {
00040 public:
00041   
00042   // -----------------------------------------------------------------------
00043   // Non-standard extension
00044   // -----------------------------------------------------------------------
00047   
00056   virtual void addNamespaceBinding(const XMLCh* prefix, const XMLCh* uri) = 0;
00057 
00064   virtual const XMLCh* lookupNamespaceURI(const XMLCh* prefix) const = 0;
00065 
00076   virtual const XMLCh* lookupPrefix(const XMLCh* uri) const = 0;
00077       
00079 
00088   virtual void release() = 0;
00090 
00091 protected:
00092   // -----------------------------------------------------------------------
00093   //  Hidden constructors
00094   // -----------------------------------------------------------------------
00097         XQillaNSResolver() {};
00099 };//XQillaNSResolver
00100 
00101 
00102 #endif //__XQILLANSRESOLVER_HPP
XQilla-2.3.0/docs/dom3-api/DOMNode_8hpp__incl.map0000644000151400015140000000003511653571065016222 00000000000000 XQilla-2.3.0/docs/dom3-api/functions_func_0x68.html0000644000151400015140000001142011653571065016671 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
 

- h -

XQilla-2.3.0/docs/dom3-api/classXPath2MemoryManager__inherit__graph.md50000644000151400015140000000004011653571065022617 0000000000000055248d659e6c2edb2f3e4efb95ab955dXQilla-2.3.0/docs/dom3-api/DOMImplementationRegistry_8hpp__incl.map0000644000151400015140000000003511653571065022053 00000000000000 XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMComment__inherit__graph.png0000644000151400015140000001540611653571066023120 00000000000000‰PNG  IHDRËãÊr bKGDÿÿÿ ½§“»IDATxœíiXTGÖÇ«iv$‚";.ˆˆ**!êD"(>:‚@€Q#hÔd M“îC4:&"ˆap!YÇ0#.ˆŠÙ\^AD»ºéºû¾*ÏNo ±h1ç÷ð¡ªnªS§ÿ·ªîíK_EQˆ¡¡n€·P@P@P@M¢­ïÚµ«°°hÀä믿vss#×>Y…UWWß¿öìÙD{LZZÚÚµk‰vAVa¡Ù³g§¦¦’î ƒt°È È È È È ë )ÆŽÜÖÖ&]ÏçGDD899º¸¸ìÝ»W$Ѷ&LyÂ`Ñ¢E £®®Wðõõ•®PWW×ÿ«¼Wª<ø€ÂúKQQ›ÍnnnNJJêììœ1cFGG>ÔÕÕõî»ï–––ÆÄÄ”••EFFþôÓOžžžb±Whhh¨¬¬¤›âr¹27¢ÓÓÓSRRm,ƒ (¬¿Œ5ÊÜÜÜÊÊÊÝÝ=33ÓÖÖöСCøÐÎ;GuéÒ%///{{ûåË——””444$%%á iiitS9992·ÑÃÂÂ6lØÐÚÚ:hÃ4Ô¯°œœ+++.—‹:{ö¬½½=ŸÏGõööFDD˜™™™ššFDDôööâåàÒ¥K£G.((ˆŠŠ=zô¨Q£‚ƒƒééDÞ !”››;uêT]]][[ÛÓ§O#„D"‘BséGÅêÃ`0Ö­[wþüyœMNNÞ¾};“ɤ+DDD$''㬯¯ojj*½¦§§ûøøH7¸yóf‡ÐÐPùÇõ:::þö·¿™˜˜X[[³X,¡P(‹÷ïßoooohh8gΜââbcW?I|}}ñC5ÁÁÁ!!!­­­fffÅÅŸ0&&fÅŠMMMUUU3fÌØºukmm-BhÑ¢E—/_ŽŽŽvtt¬ªªª®®ž9s&‹ÅRfÅãñtttâããÙlvbb¢¦¦&ÇÛ¿¿BóŽŽŽãÇ˧BµµµÒ>—––Q…϶¶6™AݸqÃÌÌ ÛÞ¿ßÜÜüöíÛ¸Y}}ýöövºMœxðàžž^RREQx¤¸ÀÀÀùóç?|ø°ªªjòäÉÑÑÑ455ÍÈÈhii9þ¼¥¥%®,?ö>#JIIé³ÚáP—˵¶¶ž:ujtt4]èààÀf³q:??Ú´i8îUUUEMœ81##½{÷.–·âp8ZZZàr¹‰¤««K,+3WÆvóæMÚvÆ ‘‘‘E%''{zzJ·I'>üÎ;ï455Ñ ëééa2™555¸ÍŒŒ ;;;{{û'NÐ|8Ž{OO>Z]]-ߎ¼EQׯ_÷ññ100puuýå—_T˜+C^agΜqvvÆissóüü|“¸¸¸… Ò¶vvv‰ÄÛÛûرc”"…‰Åb77· ûÌÇÇ_çÏœ9sãÆÒ»“¨¨¨©S§VWWWWWÏ™3gíڵʬ®®nzzz[[[BB‚®®®@ Pf®bFß­(((Xºt©µµuGG>úâÅ‹‰'º¹¹ååå=xð ##ÃÑÑqΜ9B¡’š¢>ýôÓI“&¹»»ÓmÊÌa˜¸¸8|…³óçϯ¯¯¯®®vttܾ}ûáÇMMM³²²Ølv^^ž­­-®,?ö>? ôgX%øá'''¼öeffZXXp8Š¢:;;W­ZellŸ/­0¡PÈb±,--‡îïïÏårq¹¼EQ)))ãÇ×ÖÖvppÈÎÎVa.Ý…tZúœ´±± ”^Ð)Šâñxááá“'OÖ××wttܽ{www7m‹TPP€Š•)—Q˜D"ñôô¤»æp8AAA#GŽ´°°Ø¼y³@ ‰Dû÷ï·³³300˜={6ž«”]5ƒ 0Eò¿Ù>úè#„<öÆÂ`0RRRðÇDˆ7b¼Å€Â²€Â²€Â²€Â²€Â²€Â²€Â²€Â^ââzu»0Ä þ?ß………ø;·€žíæf[Û‡êvd(AVa³fÍ"Úþ 󸱡@ §§7JWW¤n_^¾¾¾666D» û½ä[ƬY»›šžñÅBË«ïÚBöaýçîÝ–¦¦ç¡´´Ruû2”…õ—sç~ÕÒb"„?æTT4©Û!(¬_H$TJJio¯!¤©ÉÌÊ*W·GCPX¿(.®çpx8-‰ÓÓ‹%êui¨ 뙙嚚ÿ‹‡Ã¿yîYô PXßôöг²ÊE¢ÿMZššÌÌÌ25º4„…õÍÕ«ÿÇã½”.‰Ä99•==oÉ]1¢€Âú&#£ŒÉ”ýyîná•+÷ÕâÏÐÖ|þ˼¼*ù}½††Æ¹s°Pö (¬.^¼‹oRÈ K.\¨áó_ʤ…õAff™²ïÕzzDùùwס(L‚+WþOÅW·™™pëµà›oU¼|)jm}Ag/^¼ûÍ77o~M—0™ÖÖÆêpmÈ@üù°!ŽŽæ˜1#éì¨Q†!é O`•È È È È È È È È È È È È È È È È È È È È È È È È È È È È È È È Èò»_¨«¯¯¿xñ¢º\yó©©éD%$$¨Û‘7šÐÐÐßå))RRRÔäÕÐ@CCGKËTÝ^¼éP¿GÁ¯lÂ/»#55ÕÏÏO¦öaY@aY@aY@aY@aY@aYÞN…1¤;vlppp[[›t>Ÿáäädhhèââ²wï^‘HDÛN˜0Aæ–Í¢E‹ F]]ζ´´Œ;vذa...™™™Ò]ÓÕÔNŸqÞN…!„ŠŠŠØlvsssRRRggçŒ3:::ð¡®®®wß}·´´4&&¦¬¬,22ò§Ÿ~òôô‹{Ë_CCCee%Ý—Ë-,,¤³ÏŸ?Ÿ>}º¾¾~JJJIIÉÊ•+ýýýÿûßÿ êëëMLL^ÉDE^Kû}#OŸú „jkké¬D"™;wîöíÛq–Åb¹ººŠD"ºÇ;vìñãDZ­——×¶mÛè£'NœX´hÝæ† üüü¤»c±X »~½ÔÖÖ¾Ò¤:¼}êç•–miiÉáp(Š:sæÌ„ x<EQ===,ËÔÔtÔ¨Q,«§§»{ñâE›+W®lß¾ÝÆÆÆÄÄ$((ˆËåâÖä­(ŠÊÉÉ™2eŠŽŽÎ¸qãN:EQToo¯BséˆH§å?æ3gÎ8;;ã´¹¹y~~¾Ì¸bccÝÜܰmbb¢D"Á‡–,Y’˜˜H·inn^TT$mÛÕÕÕØØHw;~üx##£½{÷âÂÜÜÜiÓ¦ééé™››ïÛ·öçÚµkòyäÈ‘!333eÑ“iVuä;•i_¾‚j^Â(Š  imm533+..Æ…111+V¬hjjªªªš1cÆÖ­[ñh-ZtùòåèèhGGǪªªêêê™3g²X,eV<OGG'>>žÍf'&&jjjòx¼ýû÷+4ïèèÀLZ>²¥¥¥FFFEq¹\„P[[›Ì nܸ#‹ºÿ¾¹¹ùíÛ·q³úúúííí¸MlŽO0… „–,YÒÙÙyîÜ9„P{{{gg§¶¶öêÕ«›››“““BÏž=“›Í–¯ pÈ2sŒê˜óx<qPᮩ°‚ja¼6…q¹\kkë©S§FGGÓ…l6§óóó§M›†Ý­ªª¢(jâĉøèÝ»wé´¼‡ÃÑÒÒ:pà—Ë•H$]]]b±X™¹2 °›7oš˜˜Ð¶6lˆŒŒ¤(*99ÙÓÓ“.çp8!zUØuAAEQxWW[[ûòåË{÷îñx<±X|õêU\(…YFaªc®:*¼Â5VPv…úÈNßÈÈ(44ôÎ;ëׯ§ ,,,ðe‹§§ç£Gp¹ƒƒB¨±±q„ ¸dÒ¤IË–-Sfell|åÊ•[·nY[[»¹¹]»vMCCC™yÿ©­­?~Ý~5úÔ jkkkmm}òäÉÕ«W—-[öèÑ£/¾øÚ¾}û³gÏæÏŸÿŸÿü§¶¶633sæÌ™VVVÒS2“É\±bEXXØ{ï½gjú»gÂöìÙsõêÕ   ¢¢¢ªªª;v|ÿý÷{öìQ±—/_öôôhkk ‚¨¨(„PWWWŸ” !„7X}Æ\uTx…ÛïÓíþÒ§eøá‡œœœðE_ff¦……Þövvv®ZµÊØØxäÈ‘¡¡¡|>_ú„ …,ËÒÒrøðáþþþô>FÞ »1~üxmmm‡ììlæ*®%illlñ>Vêvä ¥¬¬LA©ü]@zz“ÌÍ72:êväFÕ·F€j||ŽÕ8à0Kݾ `Ö_ž?ç×!Ä8wNÑZ(Ö_²²Êb Dݺõ°µõ…ºÝ2€ÂúKZZ©DB!„˜LFNŽì#²€2@aý¢±ñyuõ¼g‹%ii¥êöhÈ ëÙÙ·™LNSºsçI}ý`ÿóôÖ/~þ¹X$’ÐY--fVV¹ýB€ÂúæÞ½–††vé’Þ^1,”ýÖ7™™åZZ²jl|^SóD-þ -@a}@QTjjio¯D¦Ê~ 냲²†gÏ:åËñB‰ï_*…õAfæm--¦ÂCmm]%%õƒìϦ ±X’“S.SÚÚšò¡Ü\¸õÚ žÞh::º×­s§³´ææV†‡/¤KŒ Ôá×Pž­xrr*Ö­;ÙÒrHÝŽ %`•È È È È È È È È È È È È È È È È È È È È È È È È È È È È È È È È C ˆ?ç»Nµ´L ßW·êa`:¡(êýŽkTTÔëÀb¾ºTîÞ½›––6`ó?¤°yóæýsàÏìò€Â²€Â²€Â²€Â²üÙß:ãîþ¿—ʘ™™999­_¿ÞÈȈ. …'Nœ(--e³Ù£Gvuu]¹r%“ÉĶVVV§OŸf0tý-[¶”””$''[YY!„ž?WSSóâÅ‹1cƺººâøÔÌaèÈ‘#çÎKKKÛ²e ŸÏ åñxøPwwwXXØýû÷ÃÂÂóóóY,–DòÛë&[[[>|H7ÕÕÕUYYIg;;;?ù䨨¨øøø>ø`×®]¥¥oÄËuÙlöÒ¥K¡£?û†2221bBÈÄÄdÚ´iÿûßÓÒÒV­Z…:uꔑ‘ÑÁƒ544BÖÖÖ...«V­ÊËË[¼x1BÈÙÙ¹  ÀÎÎ7UTT4mÚ´ââbœMJJš>}zDDÎŽ3†Ãᤤ¤¸¸¸ þ0eH$ Þ›ùÚ!8‡ùøøtuu!„.]º$ B"‘(>>~Ù²eË–-‹‰DOžvìØwß}W^^ž””„맦¦nݺµ²²²°°pß¾}‡züøqrr2>*o% £££½½½þùç   o¿ýV(¦§§+4722b±Xòiy¬­­[ZZB<ÃáÐó]SSNOžLCCcîܹ¡›7oN™2åwÞÁ‡ðÄ&} H$º|ùò¦M›,,,lmmW­ZEÏ‹~~~úúú ,@èëë{yy!„ðjÐgeáõöö6lØÂ… Bƒ³>bÈîÆ ¶dÉ’“'O~÷Ýwtakk«ôÚa`ðÛK@ñéþôéSkkk\2f̘1cÆ(³244|¸³³S"‘àŽBVVVmmm8­¯¯ÒÔÔ”IÓ¨® ,¼&&&òM dû{öìYff¦³³óÑ£G·mÛ† ‡~èÐ!|1—’ß\ÑÔD9²µµuܸq¡ººº[·n}üñÇ ­^¾|)‘H¢££E"Ñ¥K—¶mÛ–••¥Ì¼ŸP•““3kÖ,œõðð8uêÔôéÓé­˜P(<{ö¬ôG8eÊ”îîîêêê_ý5<<\ºµ9s椤¤ìرƒžÉòóóE"‘ŽŽŽ±±±††›ÍÆç@KK VÀGYx•ͦ¤!¸JRõí·ß._¾ü›o¾)+++**Âå®®®Çúôi}}ý—_~™••%mµ`Á‚üñÑ£G=:|øðÓ§O•Y1ŒˆˆˆÂÂB>ŸßÛÛ«©©©£££ÌœÏçŸ?^>êèèàp8ííí•••ß|ó ›Íþè£ð¡.—ûÅ_”””477_»vmýúõ&&&Ò×ùx¡Aijjº»»ÿý÷l6ûÑ£G‰‰‰¯%ìªÃ+ƒ@ x-ª€à–••ÕÑÑáïﯩ©¹yóæƒN™2ÅÐÐpÍš5GŽY»v-ƒÁ˜;wnXXX{{;m( #""„Bá¬Y³ÂÂÂp¹¼•¶¶vddä±cÇž={fii¥­­­Ì¼££ãÀxû%Fmܸ'LMM§Nš@¯,úúú IIIñññ---óçÏ÷õõÕÒÒ’©»»{vvö²eËd"`dd”%F½gÏz‚üüóÏ9²nÝ:--­>ø 00ðµ„]>P «™››O™2eÅŠ¿üòËkéW|ÏwjjªŸŸß•+W^»CÀ›FAAÁŽ;ü>x¸§å}k¤ì9>  ÂfÏžššúz]ÞJø½$ô؇d…d…d…dùnœÑJg°¬×IEND®B`‚XQilla-2.3.0/docs/dom3-api/inherit_graph_32.map0000644000151400015140000000071211653571066016024 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMUserDataHandler_8hpp_source.html0000644000151400015140000002553711653571065020764 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMUserDataHandler.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  * 
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  * 
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMUserDataHandler.hpp 527149 2007-04-10 14:56:39Z amassari $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMUSERDATAHANDLER_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMUSERDATAHANDLER_HPP
00024 
00025 #include <xercesc/util/XercesDefs.hpp>
00026 #include <xercesc/dom/DOMNode.hpp>
00027 
00028 XERCES_CPP_NAMESPACE_BEGIN
00029 
00040 class CDOM_EXPORT DOMUserDataHandler {
00041 protected:
00042     // -----------------------------------------------------------------------
00043     //  Hidden constructors
00044     // -----------------------------------------------------------------------
00047     DOMUserDataHandler() {};
00049 
00050 private:
00051     // -----------------------------------------------------------------------
00052     // Unimplemented constructors and operators
00053     // -----------------------------------------------------------------------
00056     DOMUserDataHandler(const DOMUserDataHandler &);
00057     DOMUserDataHandler & operator = (const DOMUserDataHandler &);
00059 
00060 public:
00061     // -----------------------------------------------------------------------
00062     //  All constructors are hidden, just the destructor is available
00063     // -----------------------------------------------------------------------
00070     virtual ~DOMUserDataHandler() {};
00072 
00073     // -----------------------------------------------------------------------
00074     //  Class Types
00075     // -----------------------------------------------------------------------
00098     enum DOMOperationType {
00099         NODE_CLONED               = 1,
00100         NODE_IMPORTED             = 2,
00101         NODE_DELETED              = 3,
00102         NODE_RENAMED              = 4,
00103         NODE_ADOPTED              = 5
00104     };
00106 
00107 
00108     // -----------------------------------------------------------------------
00109     //  Virtual DOMUserDataHandler interface
00110     // -----------------------------------------------------------------------
00127     virtual void handle(DOMOperationType operation,
00128                         const XMLCh* const key,
00129                         void* data,
00130                         const DOMNode* src,
00131                         DOMNode* dst) = 0;
00132 
00134 
00135 };
00136 
00137 XERCES_CPP_NAMESPACE_END
00138 
00139 #endif
00140 
XQilla-2.3.0/docs/dom3-api/inherit_graph_21.map0000644000151400015140000000054511653571066016026 00000000000000 XQilla-2.3.0/docs/dom3-api/inherit_graph_17.png0000644000151400015140000000436111653571066016042 00000000000000‰PNG  IHDRó(¤m[„bKGDÿÿÿ ½§“¦IDATxœíœkLSËǧ·…"€(4(0%Å€1Ð1FŒT"ˆÁGTZ£Ðšüæ!‡Dyˆ)¾bˆ¦P”¨Ø*!¼DT‚¶…¶¶BÛ¹&g§§”*Àë¾óû4³ö¬éšÕÿ^{:ì@ †tüçw€Á, XÙr‚•!'XÙr²Ê¢_VVÖÞÞþ[BÁ`Í™3gâããÍ-–Ê–Éd}}}ÑÑÑ+ó¯hjjÊË˳0Z*ÝØØ¸"!a0K…B™kÄûl 9ÁÊÆ¬l 9ÁÊÆ¬l 9!­²)føûûgeeMNNšÐjµB¡0,,lõêÕ›7o>þ¼Á` |Ùl¶Å»b))) epp @ s4@ X·n££#›Í.))ÑëõsƒqttŒ‰‰éééY®•ÿ –/ÎÁÁA«'Ëi• xþü¹\.ÿüùó_ý5==®R©Ð%µZ½iÓ¦îîŠ×¯_ÕÕÕñx<£ÑˆŒŒŒ¼{÷Ž˜J©TþôX‡~óæÍ;wFGG«««Åb±P(´F.—K¥R6›½gÏžÿÍ·,ÿ”8ü'|>ŸÏçÃ?ÀÀÀÑ5™LqqqÅÅŨ+bcc 1@£Ñøûû߸qù&''Ÿ>}š¸ZSS“’’BÌi19ÂÍÍ­««‹è>{öŒÅbY fbb011±T‹]*–/ιb[* ÆÅÔìÖÖV&“©T*õõõAAAZ­0;;+  ÆÚµk…Báìì,z=yò„ÅbI$’’’‹µfÍš¬¬,¢|ÎõÜ»wËåÒh´õë×ß¼y`0¬º›?æl<ò(Ê}údu¤½½½««ë‚2P©T999žžž¾¾¾@¯×[]þ¢Ó¾|qs¦¦¦?~µüøáîÛâéèè°|+X(ýkvVVVvvö—/_ ÆË—/‘±¢¢b×®]£££R©4<<üÔ©SèNMIIyúô©H$âp8R©T&“EFF ‚ù¼4ƒƒÃÕ«WåryuuõªU«4Mee¥Uw•J… ­EÌ)«ÝÝÝnnnBtONNNZ,ª³³“Á` ß¾¾>//¯·oߢiœœ¾~ý lÖìÇ3™LWYY922b^TzzzÔjµZ­/((ÈÍÍ%®þb „™™™ CCCR©444T$™×B¢½¸´¯Lœ·oßf±X&“ B(‹}||fgg*4í|k5{‘ÊV*•¾¾¾\.W$ƹ\ŽÚmmm7nDÁI¥RapppKK ºÚÛÛK´çz) ;;» .(•J“ɤV«Fã|î6V»Pe¿xñÂÓÓ“ð=xð`QQ„°¶¶–Çã™ÏiUÙBƒÁÐÕÕUZZJ¥Rëêêˆ`Ìqvvîííµ‘7«˜™™¡R©ïß¿G#[ZZm({¡i_™8µZ-Nõê„pïÞ½(ÃV'7_…m–RÙÂÒÒR*•j¾ £ÑhæyquuEÁÍÌÌ «2™lîÀ¿kä/f€Á`P©Ôááaä544Äd2Q}Ðøø¸ù-4í+'"==½¹¹¹µµ5""‚ÍfÛŽ­b1X(ýWj¶ÑhLLL,++S(^^^­­­È~äÈ‘´´4t^yèÐ!ó;µ¤¤„ËåÊd2™L“——7Ÿ—N§£ÑhÍÍÍ“““ׯ_§Ñh:n>wûlâÔO"‘ìØ±Ã××W¥R¡«SSSÁÁÁñññ=êïïoiiáp8111z½š•®‚‚‚ 6lݺ•˜“¨ÙÄéB˜tÿþý¡¡¡ÎÎΨ¨¨£GZ8"Ð/ËéééeÝ< ÃÃÃ2™ŒÃá£Cúêêê©©©;w³š½Ð´/kœæ!¡Žl6»¦¦†ø,Ûâ± XªÝÈÅ‹ÃÂÂÐcâîÝ»ÞÞÞ …B8==››ëîîîáᑟŸ¯Õj̓ÓëõÀÇÇÇÕÕ5==]©T"û\/aCCC@@€½½}HHˆX,¶ánu£ ÿ¹eôóóËÌÌ´8½Òh4………¡¡¡NNN§¼¼üû÷ï„/ú‚% àòåËv«Â`0ˆD".—ëèèèïïòäIâ‰l¡£ÑèââòñãÇeB¨P(öíÛçáááíí}ìØ14yy¹››[@@€X,ž«ì¥}ùâ´i~~¾³³³ùïBÛâ±UeS,¾§Ý»wðûÙ˜? …ÒÐЀ¤K@æ¿AbþŸÁÊÆ¬l 9ÁÊÆ¬l 9ÁÊÆ¬l 9ÁÊÆ¬l 9±ò?¢ÚÛÛy<Þʇ‚Á,!–ÊŽŠŠú-q`0‹†ÏçûùùY-ßÁ`ÈÞgcÈ V6†œ`ecÈ V6†œü¥(rƒ6äš<IEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMLSException_8hpp__incl.map0000644000151400015140000000003511653571065017532 00000000000000 XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMImplementation__inherit__graph.map0000644000151400015140000000025611653571066024471 00000000000000 XQilla-2.3.0/docs/dom3-api/functions_0x78.html0000644000151400015140000001157111653571065015666 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo
Here is a list of all class members with links to the classes they belong to:

- x -

XQilla-2.3.0/docs/dom3-api/DOMProcessingInstruction_8hpp__incl.png0000644000151400015140000001722511653571065021733 00000000000000‰PNG  IHDR˜uüô`êbKGDÿÿÿ ½§“JIDATxœí\LÙÿÇÏ4ýþ¡Rú%")m?üˆe?‘B‹HH©µí*!¤6<–ìbã“$’"j•Ÿ%Ñ"Õ‡äwÙH„J~7¥¶Ó™¦™¹ß?®ïÝ1s§BÍ4Óûù×sïyŸ×9÷=ï{ν÷œKÁ0 H22âðµ@ @â@€Ä ‰GVÜ$ŒmÛ¶ååå‰[ åØÙÙmÞ¼YÜ*$ dŸGqqqQQ‘………¸…RË“'O455Å­B€@öÙXXX„††Š[ µüöÛoâ– yÀ=2$dH<Èx  ñ@ @â§–=‚½½=±­««;räÈ+Vhhh‰L&311±  €F£ <ØÖÖvñâÅT*Ï;pàÀ¤¤$ …B’ŸŸŸœœ{ölJJJHHHKKËòåË›››ñ]­­­¾¾¾Ïž=óõõ=t臇GvvvPP—ËŨªªzñâaª©©©¨¨HÐxjjjTT†a;vìY½øPUUuwwAA4mîܹÝeAd²Ѭ§ÐÐÐèß¿¿¶¶öèÑ£·mÛ¦¯¯Ÿ’’‚ï:v옆†Æž={¾ýö[CCC[[ÛØØØªªªË—/ãØØØäææ¦nß¾=jÔ(AãZZZ&&&AAAOžA]]}ùòå"(ˆËåÒéôî² 2Ù€h€@& (Êœ9sîÞ½‹ÿÌÎÎöòò’‘ù·ñ/^œÿœ2eJnn.±TÜõë×'Ož,Ì8n‡Ãá¼ÿÞÞÞ¾°°pÑ¢EÅÅÅÍÍÍ;wîœ;w®››ÛÁƒY,‡ÃIHHX´h‘‹‹KXXÑCd³Ù±±±óæÍ›7o^ll,›ÍFݾ}ÛÇÇÇÑÑqÉ’%YYYø‘‚‰x¡ø^{{ûœœooï9sæœ:u !„aØ… ~øággçÀÀÀ;wîðŽ‹…å"-Èßß!4þ|¢P¼¦™™™„MB iM-à¹J˜*>îß¿ïáá1{öìãÇ6oݺµtéÒyóæíß¿¿½½4QØ©¾d"ÂÐа²²!ÔÜÜ\WWgbbÂw€‰‰É›7oðmKKKƒ.[ZZ 'NœÈ{0“Éd0­­­•••{÷î533SSSÃw9sfÆ ÇŠŠª©©‰ÝµkWAAÁÉ“'SSSóòòÂÂÂ"##ß¾}›œœŒgIMM¥Ñhqqq……… L&sëÖ­...§NZºtéÿû_&“IšÈW‹›7o8pÀ××7..®©©éÒ¥KIII+W®ºÜ³g¹¹9ï h]DVVÖÞÞ~ß¾}4íåË—GŽqpppttŒùòåË—/£¢¢ª««ñƒmmm>\]]]QQñË/¿¤§§S(”àà༼¼–––öövYYYÒÄŽe¸¸¸ÄÅÅÝ¿ŸN§?xð 11±Óè€ê  ƒÁw°ªª*B(++«µµ•¸ÿ%¬¦‚HJ˜°‹/¶´´t,>::úýû÷Ïž=‹Ÿ>}z‰@7CËžbÕªUø†ŽŽŽµµõ¡C‡TTTðeeåC‡%$$ÄÆÆVVVêëëO›6ÍÍÍMNNŽ×‚½½ýùóççÍ›÷eÖ¬Yíçç'''7uêT …Âd2ƒƒƒ™Læ„ |}}ñ#}||¢££þùg …bggçëë+//¿qãÆ¸¸¸>„††ÊËË#„H;ÀÅÅ…ÃáDFF666ZXXøùù…‡‡wªœ´t===+++WW×K—.ñ¬®®îã㓜œ¼råÊ7n „<<<k*Ì‚`C ¶{÷îQ£F瑇õë×3™ÌiÓ¦yxxàI¾ÄN[ø\(ð9¸ÏbáÂ…555°Y¹s玎ŽÎ°aÃðŸyyyIII‡¯ª‚t¶ÀL!øí·ß pæÌ™î(ÍÀÐèA***vìØQVVÖÖÖVRRrôèQgggq‹¤Z=ÈâÅ‹™L毿þÚÐР¯¯?sæÌÙ³g‹[TO¡¢¢"X;ÒD Û@ô T*ÕÇÇÇÇÇGÜBD††F```Wn†–H<Èx  ñ@ @â@€Ä ‰^¿ølŠŠŠ‚‚‚Ä­B¤`…ËU RùWëi8E™6 ¥oM>©¨¨è`¾'@ ²ÏƒXÁ¢ïÐÖ&ûì™&—K5êCf|w†>Ô•‘áŽQ¯ À]ÁâÆØØ¸ºÙWs-Ž8{öþÆ©ffúzjЏô·oëüý=^¶ÀÕu¬ˆK$d9--m7¦¦¥ý½nãš5޲²â¹Êfs£¢²"#³æÏ· [ ¢ÒÉÂA@ß@“'ïýüŽ551öï÷´µ5íŸiøpݘ˜¥0ŸI:€›ýÒ@zz¡“SD{;'33¢X§¸¹ËÌ loç89Eœ?ÿ@Ür€nzd’ÔÏ:ê9ÚÚØÛ·œÏ´k—›’Ìg’` I0OŸVúù«©iŠŒtwr’ò÷õ{ˆ+W¯[wrÀµØXoss}q˾ZJ*ññy³fEö﯒“ Qì‹qr²ÌÉ ÖÔT™5kÌg’\ G&y46¶®_úÊ•Çk×Nã§s¥ ü3À{÷f;9YFD,‚ùL2 ãþý—þþIííÜèhωMÄ-Gª¸u«|Õªd99™˜˜¥cÇÂ|&I.æ>ëhþüè#ôsr‚ Šu;'šää™™éÍŸó™$ è‘IÕÕôÕ«ß»÷¢w~:Wš æ3M˜0lß>˜Ï$@ “®]{¶fÍqUUѽFŽ$n9}‚¢¢·+VknfîÛç1eÊqË:†–½ü[Gžž‡lmM¯\YQLdŒ9èÊ•õ¶¶¦‡àûL½è‘õ^^¿þÇßÿØóçUaa à}}q‘’R°qcª™™^LŒ—‘‘–¸åä@¬—ráÂ'§ÝmmìÌLéùÖ‘$âæ6.3s=“ÉvrÚ}áÌgê¥@¬×Á`°BBRRSïûøØýúël˜u$~ðùLGŽä-X0æ3õB ‰‡’’J##-þ•vž>¥­XqìÃzDÄâ™3­Ä¢ ÆåËŧtuûÅÆzÁ?Ÿ©¥¥íÍ›ÌÍá»Mb†–b€Á`ùø$„„¤ð¥ãß:RWWÊ΂(Ö ™9Ó*''H]]iÖ,’ï3…„¤øøe2ÛÅ¢­Cݺu«¸5ô9BCÓoÜ(-)¡iá^¤Ó«W?|øz@€Ãž=î0E¦—Ò¯Ÿ’›Û8.—»sçÅgÏh“'›)(È!„RR "#³étfc#cÚ4X~VÔÀÐRÔää”x{ÇcF¡Pdee23[[YþþI,{ÿ~ÏI“†‹[ Ð%nÞ,[½:Y^^6&ÆKYYnÆŒ=ø+ 娱Ÿ!–‰d"¥¾¾ÅÖ6¬¾¾ovYY==õÚÚæQ£8੯¯!nÀg@£5¬\™üðák--µªªF‡‹¢P¦¦Ê55UÄ-°÷ÈDʺu'étqñ`³¹UU£G¥¤øC“8ôõ5RRüG2ª®þÅB†ètF`à)ñjëk@ çÎfg—°Ù\ÞD6›{çNù_‰Kð5dd<¼{÷…à9ÍÊz’ž^(.U}ZŠˆÊÊ;» K°Á)¤¤¤píÚ/ƒõ‹6àËxóæŸ©SÃ;8§yy  £-  G&"‚ƒÏ°Xí¤— CLfûªUIÄðèýp8ÜU«’™L’(†Â0ÄbµŸ½°¾ 2QpâÄÝÜܧ|YY*Uð¶6vii•èµ_FiiU[Õ*CºH/›ÍÍÍ}zòä]ÑkëƒÀвǩ¨¨™:õ¿,›7Q^^–Åb«¨ÈϘaåèhikk ïŽI" ­7n”fe=ÎÌ,niaá§•÷yyÙ«W16 .…}d= ‡Ãýþû½Ož¼g³¹ ’““e±Ø::ýfÏ5{öÈ1c†ÀŠûÒ›Í-,|•‘Q”‘ñðú¼¼l{ûÇþš¥¥á_­¡RáD÷ Ÿ2ƒQ__/F5ÒDZcùûö]§P†¡Aƒ4íí‡ÛÙ ³²2·VRRÒÔÔü Ræu·¸¸2/ïÅÕ«¥ïÞ5à§~Íš)K—Â&ÝŒÁ¿ÓZ? d>|())‡$éäÝ»¦_½nd¤>v¬ÞرúúúªâVÔý 0ÀÂÂâk,H±×ÑhÍ÷ïÓî߯zýºqǎɪ‰[‘T1eÊb›d‰ÞÝÀ×ðôiåƒS¥ø ï'Ožt—)iõ:ww„ª¯o©ªj„…1º Á‹¬uÕƒ€ã8šš*R|=ë HÉú2Èx  ñ@ @â@€Ä#ñìÍ›7Ë–-ëô°òòr …»Á›ýÁƒ²²²))ÿ.¢þüyyyùâââžÐÌ…‡!C†xyyÕÔÔtp<†ažžžªª]}+B¡”——w‡Rà#¤^ÇçZ_c¶S—hii 9r¤ššÚ¸qãþøã6ûãÔ( …2|øp¾;3gÎ$Ü€B¡¸¹¹ñðYÊ»~°(OâYzzº‹‹ é®ŠŠ mmm|[CC#$$DXöÑ£GoÚ´)  ¡¡!ÔØØèïïje%¢/€Ü¾}›F£½{÷.!!N§3WBJeeåñãÇ¥õ%R‰ ¯ë.³¸DSSÓØ±c víÚõ÷ßoܸñøñãÓ§Oçp>~ýÕ«WEEÿ®pW__Ÿ—÷ɧRRSSOŸ>ÝíúÅ ÆCuuõµk×0‰ÂÙÙ¹µµ•tWYY_‰ìmmm–––Ë—/Ç0ÌÏÏÏÆÆ†Åbõ˜êO@•••?¹\®Ý–-[„OZ¯®ÛïF?~üøñã¯4"5^÷¹ç¥³»DPP­­-›Í&hnn2dÈáÇñ¼3fÌØ´i±711qæÌ™„M„¯¯oÿþýi4Ú(ïúÁ=çx‚>óÙ=² . 8ŸwòäISSÓ––„P{{{pp°®®®ŽŽNppp{{;Þýßÿþ7xðàÜÜÜÐÐÐÁƒ0ÀËË‹¸¶æBeddX[[+**'%%!„Øl6iöÚÚZ%%%Þî.±=a„žžÒ&²#„äåå=–˜˜('''Ld7VM …âççwñâEavxëÕE›YYY&&&šššaaaDkœ?ÞÌÌLGG'  ­­4±«nÑÃôN¯ãp8ááᦦ¦jjj'N¼wï~@CCÃ?ü ­­mhhÄd2B åèÑ£æææ عsgRRÒСCÕÕÕ7oÞÌgV°ú|.‘œœ¼eË*•J ¢¢œœœŒÿtss;sæ öÿƒÇÔÔÔ ð\·n݈#ðË6_Y‚â…U“´ùãuçHñòòòöö®ªªÒÕÕ½wk×.WW×7oÞ((HX®ææf…ØØXväÈYYÙæææððpÒìGMJJÂ>½JÛ&Ù 6lØ€Ú¾};obV #»phhht\:¾W˜M^Bßÿ=N?{ö,B¨¶¶·àèèXZZz÷î]“­[·’&vì ¢ì‘õB¯Û³gŽŽNZZZeeåÅ‹ñ9̆yxxL›6íÅ‹=²´´Ä›!äîîN§ÓãããB .¤ÓéqqqøÁ>õÆ\æ555|ísëÖ-]]]<ï³gÏôôôܱc‡°\ ƒË妤¤ÔÕÕùøøÌž=»®®Ž4{ffæŒ3x…áO ß¿ß•Zðe¯¬¬ ·³³ õõõýçŸDP5Aa¸S:;;w\:Nm’>/Ç!TZZJ,íDšØè…^7dÈÞ‡ƒøZ ºººT*µ¢¢O|ñâÅÀ;­ 3óÂç¿ÿþ;ñŒ!ÔÒÒ²k×.^ “&Mjjjºyófvv¶°¬222 ·nÝ:tèžB*ž´š¨3ÏÄãuçáp8Û¶m«««ÓÓÓ»páž°`Áü¹ïøñãW­ZÅÛq µ¶¶......ž8qâÏ?ÿ,,ƒÁPTTLMM­©©9t袢"ƒÁ Íîééùþý{Üþ–Í‘#GçÍ›‡x:_MMMYŒ7;—Ëýþûï'OžŒËX,–µµµ»»»ª†aâyÖž››;wî\CCƆ†®”.ÌæáÇ Hàú[°··/++ËÏÏ>|ø–-[H;v‘õÈz§×EEEéè褧§Óh´Ë—/ãE/Y²dÚ´iÅÅÅx3 žÞm^³Xg.ÑØØhff6yòäË—/—––¦¥¥YXXLœ8‘Édò÷÷÷777···ç+}ÚÝ;xð nðŸ‚â…US°1Q9^7 -÷ïß?räH¼ë~îÜ9}}}|`O§Ó—-[¦©©©¥¥µ|ùò––^—b2™AAAêêêîîîõõõxº`. ÃNŸ>=lØ0yyù#Fœ?ž4;‹Åš5k¯°íÛ·khh 6ìüùóx¹ííí“&MRUUÅ_öÄÄD…çÏŸ)ùùù222©©©=]5ìÓÇFƒ òððà=u\z6;øÛàâã㌌´µµW¯^Í`0H;v‘²Þéul6;<<ÜÄÄDEEå»ï¾Ã»$†ÕÕÕ-]ºTKKK__ݺuÄåJØ)))ásæŽ]Ã°æææõë×[ZZ*++[XXlß¾x„0ž››‹:pà_:_ ãr¹Ó§OGÐ[YY)z€$Âd2ùf1àu@×innæK! døTxè ÝÈÀ뀯òY3z!p ‰2$dH<ÿ @%múînÏIEND®B`‚XQilla-2.3.0/docs/dom3-api/inherit_graph_18.png0000644000151400015140000000377711653571066016055 00000000000000‰PNG  IHDR½($l—bKGDÿÿÿ ½§“´IDATxœí›[LKǧ§ÒB«^Z°PEI ñ$‚¦BßTn!j Ä(y‘6X@ F ˆQ"‰`c#’Z1Ô”C)DH ˆáR¡Ø.÷²{&nÖmÙröp>>??vU*U\\œÃá `tëÖ-›˜˜xîÜ9Ò[UU¥P(È9i“C|||ZZZÈncc£T*uëú7ôôô8ßÁeçþýûΫ°©7=’H$V« Õj·nÝ:99 ˜ŸŸW«Õb±X$©ÕêùùyX?_¼x!•JFcAAT*]¿~½R©$}ç(€Á`ÉdžžžÁÁÁwïÞ8—áÔÍP®9NVVV}}=ìVWWçççs¹\r€P(T«ÕÕÕÕ°›’’¢Óéˆï¯ª$''3§eõêÕåååccc°ßßßïÖÅœ´ªª*òŠ?~¼}ûv@àïïùòeêÒÔ ÷üއ‡id^¥©©‰ùÒ\@ÓÑëR©>>A@Å[,ÚE½zõJ,ÃØîîn??¿¶¶68­@ øúõ+`¬7Ïž=“H$|>_.——––öõõ-ÅÅœ´÷ïßÃ{d³Ùx<^ffæàà ÷èè(Yoœ Žã©©©YYYKYÃ0†{í²Þ°ÔÕj Éd………¤144thh¶"##áæÌf3AÛ¶m{øð!ô~øðl;G{xx\¹rÅjµâ8n·Û _ ºyýúõºuëÈØììlFCDuuµ\.§ÎéR7A8Ž–––¢¢¢ððp.—[SSãÖÅœ4R³³³]]]†-,,466 0覢¢"&&ffff)«0³œº!¢¨¨ˆË厌ŒOOOj%óöö†››››ƒÞŽŽçyœ£‚hjjJNN …qqqOž9sºòóóGGG÷íÛ÷ôéÓžžžºººèèh‰DrêÔ)2œËå&%%~üøÞ½{©Æ%®ò éh)õæúõë°ÄÕÕÕùûûa³Ù222|}}×®]{âĉÉÉIª¨gffT*Õ† ¼½½ÓÓÓ­V+´;GAoÞ¼™Çã…††êõz†p—O'ñãGv‡¦¾R ‚À0,777<<\ „……OMM‘±ðé4€²²2šÝeGaa¡L&óòò ÊËË›žž† .æ¤QÛW¯^]³fM```yyyzzºH$rYo<OÁí*̸¬7ZRSSè÷7øûšNþäÏ‹ÿH76 Ý Ø€tƒ`Ò ‚ H76 Ý Ø€tƒ`Ò ‚ .þ¯i2™ärùÏß â×dddÄÙH×MLLÌOÙ â·Á××744”f¤?…@,t¾A°éÁ¤nløxõ¶±C¶.IEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMImplementationList_8hpp__incl.map0000644000151400015140000000003511653571065021156 00000000000000 XQilla-2.3.0/docs/dom3-api/classXPath2MemoryManager__inherit__graph.map0000644000151400015140000000025011653571065022712 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMRangeException_8cpp__incl.png0000644000151400015140000002543511653571065020265 00000000000000‰PNG  IHDR¬ÃQ²ÀbKGDÿÿÿ ½§“ IDATxœíÝg@ÙÚàBéEê‚XÐÕ½V®à‚ۢإ¨¨+Xv×ríX¯« Š+ Eë®\…źVŠ¢""$´@HæûqöÎS2À¼Ï¯ÉÉœsÞ9“y3“)a€®ä¨¨I@k´I@kòTжmÛÒÒÒ¨Žt¿üòËèÑ£©Ž‚F R/+++##ÃÞÞžê@õRSS—,YBuôI°S°··ß¼y3ÕQꥦ¦RíÀo‚Zƒ$ 5H‚Zƒ$ 5H‚Zƒ³Ã]†³³39mhhØ¿---²ËåFGG?zô¨´´´W¯^#GŽœ5k“ÉÄuMMMcbb 9ÿºuë>|kjj*ܸ¢¢¢••ÕªU«,--e³8¤”””Žë+..ž3gŽ :]$Á®äÈ‘#ÆÆÆàýû÷çÏŸ_ºtidd¤ºº:B¨±±Ñßß_[[Û×××ÄÄäíÛ·'Ož|üøñþýûåääBeeeoÞ¼!óZ}}}FF†xã¸©ØØØýë_§NNš´8×>©´´ÔÏÏ/)) !¤®®>{ölt º 8îJ´´´tttôôô¸mÛ6ccãsçÎá·N:¥¥¥uàÀo¿ýÖÌÌläÈ‘áááeeeׯ_Ç3899 _ƒvïÞ½ˆ7®££cffæççWTTT[[+ƒÅÖA ‚ºº:<­©©¹téÒêtE»*ƒ1yòäà—ÉÉÉ>>>x§SVVž5kVrr2~9f̘ÔÔTòñ‘þùg+÷f1™Lyyy555üòþýûK–,qssóôô<}ú4.tvvþïÿ;o޼ɓ'ÿç?ÿAqéÒ¥ùóçO˜0áǼÿ>>æmii Ÿ:uêÔ©SÃÃÃ[ZZZY®{÷îyyyÕ××#„nÞ¼9wî\.—Ëçó£¢¢fΜéáá±k×®††<³xËÅÅÅÎÎÎwïÞ;wîÔ©S>ÌãñBÓ¦MCápõ†††Ý»wO™2eúôéGmnn–¸\Â$F"±S‰…­­Q@H‚]˜™™YII B¨¡¡¡ººZü'>|¸ðÌ\.—Ãáp8œ>œíííŠgKHH(--=vìØþýûŸ>}%Ò# !ôüÃÉÉ)44”Åb…††þüóÏÊÊÊ iii»ví:xðàû÷ïccc[oùâÅ‹»víÚ¹sç_ýuúôé°°0„Pbb¢Èø:t¨²²2<<<$$äÑ£GgΜ‘¸\ÂU¤E"Þi+… S$Ø1 @€§åääF…ˆï߿߯_? á™/^<~üøñãÇ{yyݸqcæÌ™¸\QQñäÉ“ººº!6›ßòððPWWÿþûïBuuuçÏŸ÷óó2dˆ¦¦¦““Ó‚ ðlׯ__¹r¥………¯¯ïÇEz$áò+V<}ú4((hÊ”)¶¶¶¡«W¯.\¸Ð¢OŸ>ëÖ­#ï³–Ö²¿¿¿™™™ÝâÅ‹É}a---·nÝZ±b…±±±……Å‚ È9E–K¸–´H¤uÚ–HµàÄHVTTdbb‚RWW×ÑÑÉËËsrrž!//ÏÚÚš|9f̘½{÷.Z´Hâ±0>MŒjjjŠŒŒÜ³gÞ•“——/**Ú·o‡Ã±²²®¢§§‡gÀ/KJJúôéC¾Û»wo8mEEEÅ… œœœÈ9uuuËÊÊðt^^y*­å¢¢"<ñþý{]]]‰½hkkËÉÉ•––â—%%%8÷‰/—0i‘Hë´-‘jAìJjjjª«««ªª2226nÜXZZ:cÆ üÖ¼yóX,Ö?þøðá⢢۷oûûûëééM™2…¬Žˆ8`gg'|¡855µÆÆFü#Çkii‘——onnÆ?º566J¬åááqìØ±Ç×ÕÕ={ö,::g“‘#GFDD”——ççç¯]»öâŋ‹# !DÄž={¦M›¶qãÆ'OžÜ»w!4nܸ'N¼}ûöíÛ·‡*//Ç-HkùÈ‘#ÅÅů^½:qâ„««+.Ä‹C’——wvvþõ×_KKKñE...ÒäêÕ«øGi‘HëTb!èTàp¸+Y¾|9ž000ptt<~ü8y¨ªªzüøñ¨¨¨ððð’’ccã±cÇNŸ>ŸÜ 9;;'%%M:µõŽôõõUUUëêêTUUÕÕÕýýý·oß®¢¢òÃ?Œ;víÚµ.\¯åááÁçópà@¿~ý¼½½¹\npp0—Ë6lÙ‚xËUUU!—5kÖp¹Ü±cÇz{{3™Ì~ýúyzz^»vM¸»•+W9rÄÏÏOAAáŸÿü§···´Ù·o߀ÔÔÔ¤E"Þ)>ø)l}Ø%ð—›”›1cFeee7xžàýû÷ úöí‹_¦¥¥ÅÄÄDDDÈ2Jn‘Øé—EâììOîà€ÃaÐnòóówìØ‘››ÛÔÔ”9aªƒààp´›Y³fq¹Ü_~ù¥¦¦ÆØØØÝÝ}Ò¤I2ŽAMM­“tJI$à Àá0õºÍá0øzp8,{p8  5H‚Zƒ$ 5H‚Zƒ$ 5H‚Zƒë;…ŒŒŒ   ª£h|¾ “Éùô|íŠ äBAN®IÆý‚î’ õÈ'ÁtiÁ((èQQÑcÀ€r5µÖžÝî {””¨[[³tt¸²ì·#XXXôìÙ“ê(è.–íàÕ«R?¿SååuÌrwï'ãÞ››[¶m»yÛÓÓi÷î骪Š2tiÁ×:q"mçÎ+ýú™……Í55Õ¦*Œ?þx¾zõ}ýáá>vv&T…ºH‚àËÕÕq‚‚â¯]Ë\½zÜÊ•ãäå)>ÏVRR³lYLzzáÏ?OZ¼xµÁ€®’ øBOž¼ 8ÕÜÜrøðœ#¬>]A&ø|Á¿ÿ}ãßÿNþþ{‡ýûgjjªRèì ‚Ï&þqèPò¨Q6‡ý ««NuD¢îÞÍ[¾]Ð$Aðy**êãîßÏÛ¸qò¢E#[ù;jUW³W­:šújåJ×Õ«¿—“ë¤qÊAŸáÏ?_Æ©©)……Í0 Õá|A'OÞÞ¶íÒС}ö64Ôøt@?A›ðxü­[/EFÞžuj„þ{öÌÐÐè2wÂuœôô€€ü«èèÑ6T‡d’ M••Õ._ûìYa½®ãÔ×s×­;—”ô î±£ H‚t”œübõê3áá>ÖÖFT‡Óá{ìlmÃÂæöê÷ØugÝö*0 Ç߸ñÂüù'§Nuºvm5d@i¦Orýúoܸ}—/§Sè@°'H#oßVúûÇTíÛ7sâÄþT‡Óßc·gÏ eeª#í’ ]œ?ÿ˜|†JÏž:T‡Ó•\»–¹fM¼‘‘ÆÑ£>¶¶p]wI°û£Ïp§¨ˆóüyÑÖ­SçÌùŽêp@{‚$ØÍ½xQìçwª¾žóë¯Þ£FÁ5_޼ÇnÚ4§]»¼ÔÔ”¨Ž´H‚ݾúwÇŽËÆõýõWo}}¸ú·ܹ“³bEœššRxø<SªÃí’`÷TSÓ¸zõ™[·è{'\Ç©ªjX¹2îîݼ_~™cÛ @ì†>̈‘—g††Îur2§:œnˆ¼ÇÎÙÙîàÁYÚÚjTG¾$Ánß wèP²»»ãÞ½3áN¸õìYa@À©æf~hèœaÃúRøB»òòÚåËc=*ؾ}œÁ”º:îÚµg¯^ÍXµÊuÕªqL&œyïz v7o¾\µê´¦¦ÊÑ£>ýú™Q½œ;÷hýú„z††Î52Ò¤:ðy vyäߢ{zÂ¥”ÉÉ)ó÷?U^^wðàlWW{ªÃŸ’`×VPPåï*/¯bçNOx µ¸\ÞŽW"#o/\8rãÆIŠŠ]þJi’`váÂÓõëÏ™›ë†‡Ï³°Ð§:€BW®dÅ››ë†‡ûôé+¥ €ßq;5.——•U$^ÞØØ·|yìŒß^¹² 2`ç1qbÿää EEùï¿ßþüc‰ó<~üVÆQV@ìÔvï¾6wn‹Å.|ù²ÄÍmÿÍ›/£¢nÛ6»:›ž=u.\Xáë;fåÊÓqlv“ð»ÉÉ/¦M;y°ó€ÃáÎëþý7^^G Ƙ1v11‹ñ 'N¤íØqyà@óÐÐ9ÆÆZTÇZ“–ö:00®G•ðp{{S„Pii͘1! \cc­´´ ªªŠTÇsË–-TÇ$¨©iœ6í‡Ã#âÝ»*EkkÃeËb"#oº80 þ$·ó37×óô|÷nnHÈuuueÓ™3––Ö ‡Ó\RRëæÖêì vV±W®¤·´ðñK&“af¦Ãf7:äíìlKmlà³´´öì¹vËÉ©÷Ó§ïø|ùVDÄü à鶃$Ø]º”îïJxÕ0™ršš*/®´´„s ]RhèÍ;¯omrr¨G•´´ ð€jÁ‰‘N§¢¢~íÚx„>úrâóõõœ«TE¾FEE}hè-‘ç͈Ín úUQ ’`çBÄŠ±Íâ;è<žàÚµŒ3gPør±bElCC“@ ºR[ZøÉÉ/Ïž}DI`ƒ$ع$$<¾};·¥E m†ŸN|û¶R–!¯uûöíòç] úå—óeeµ2Ž v"ÅŬŸ~Jøƒå ih¨¤¥åÈ80ðÅx<þãÇJJ RR’pE'A\.oåÊÓðëΞ=;sæÌ¯oG__ßÞž.O'0!„x<~zzáàÁ½a—¢ãTTTdgg —ÀH¨g`ÐÃÀîHA9dHª£ øõ@k´I@k´I@k2M‚ !½{÷öññ¹ŒÍf÷ïß¿GC† Ù¹sgKK Y×ÊÊJäê3wwwƒ‘——'Ò¸ŠŠÊðáÃÓÓÓe¶8¤íËËËûÊŽÈAí¨°°pÁ‚Ÿœ\}"ëWö왼¼ü¹sçÈò¤¤$EEŬ¬,Ô¶­@|Ívôv×ú _F–QYï Þ»w¯´´´¨¨(**ª®®nРA555ø­úúúÁƒ?zô($$äÉ“'6lˆ‹‹suuåóÿ¾—¶   ##ƒlŠÅb¥¥¥‰7^ZZš™™iee5sæÌ޾)ì‘ÔAåççëééái--­uëÖuPGà‹]¼xÑÃÃCâ[mY}¸úÀúé§ÀÀ@¼]ÔÖÖlÞ¼¹_¿¿ÄÿÉ­@¢Ýî¾,¤N„h'¡øøøOΓ››K¾£FÚ´i~4räÈ––r††††Þ½{GDDàºnnn?ýôùntt´»»;Ù¦Hãååå¡òòòöX¸6-N‡ÊÍÍmß•Õq‘ÇÇÇ}¨ÏŸ?þüy»Ä#3&Lhll”ø–ÄÕ'RHVojjrppXºt)A~~~NNNÍÍÍxžÏÝ ÈZºÝµ>×é¸hyyyJJŠp •¿ 2 ??¿«Wÿ~Zrllì¦M›˜L&9ƒššZpppll,~9}úô³gÏÿÛ¹KHHðòò’Ö¸‚‚‚¢¢¢¦¦&~yåÊ•ªªªïÞ½› ..ÎÎÎNGGgÏž=!‚ ÂÃÿùæ þóŸW®\Á,</88ØÐÐÐÀÀ 88˜Çãµ²\—.]255e±X¡3gÎX[[³Ùì–––Í›7÷êÕK__ßÇLJüo%%%%ÙØØ655 6 !ddd„>>Œª©©™?¾žžž™™YPP—Ë•¸\ânܸaii©­­½k×.²M‘N%¶²à2&qœ‘ô!½yóf¯^½RSSÛ¸"B—/_vttTVV¶°°ˆ‰‰AI[UUUjjj***Âk‡œ–¶úHdu„¢¢btttddä®]»¢¢¢¢££È9?k+¨Ý·»ÖgCi[™Ù}DÛ+¿¢Ïß$âÑ£GZZZAàree¥H•»wï⺯^½222zöìA555ªªªUUUHè)==½¾¾¾¾¾¾¸¸8 `Á‚¸‘ºº:EEÅ… áU[QQ«xyy±X¬ˆˆ„Ї"""LMMÿý÷ÊÊÊäädKKKÎħ†´í+¢ººZAAaß¾},K Ô××óù|iÕ===«««‰/M‚duL L™2…ÉdΙ3GxyÛ²´Kü¬í®•$Ž¡´­L$æúˆv®Ãa¼l}ûöEiii‰ŸÏMOOwrr"_NŸ>ýܹsAH< ×4›Íöõõ]¸p!.WTTÌÉÉqsssrrŠŽŽ®‚Ÿ¨Cn¼yóÆÁÁ|÷›o¾ÁÆÆÆøüš««ëÛ·oEz^yxq–.]úâÅ \òîÝ;+«¿Ÿbgg7uêÔÖ[&g¶µµ-**’8zååå|> BÈÒÒ’œSd¹Äáää>úHì´-‘PE|œ‘ô!µµµEŸ³"´µµSRRfhhÈd2óóóñË7oÞ˜ššJ\.q…‘Øi["¡Šø8#éCŠ¿Ú¾"8Ž@ 8wî\uuõ¢E‹&MšT]]-±úï¿ÿ.ü)EáKLŠ‹‹Û²"ÕKJJ÷îÝ;jԨ͛7ûúú~øðAxþ6nÒtÄv'm‰c(m+!»h뻎m‡Úv8LžªOMM2eŠ™™YMM ~·¶¶ÖÆÆfôèÑׯ_ÏÉÉILL´··>|8—Ë%„v¿ìììœÉ6%¼{÷!TWW‡?Ó ãúõël6{íÚµ¡§OŸŠTÁÓ‡633ûã?ªªªnÞ¼iccÃ`0‚ ôòò— :tùòå‹#Œ >Ÿïââ²mÛ¶êêj##£K—.±yófGGǬ¬¬¬¬¬áÇ/Y²÷+Þ2^£ÎÎι¹¹>´²²Ú´i.Ä¿9 FýðÃcÇŽÍÏÏÏÊʲ··Ç§üÄ—‹ ˆˆˆr¨Ågh¥S‘ÂO~dv8,qœ éCŠßmûŠàp8ÊÊÊ •••ÇWVVæp8«Ï™3§¸¸·ƒ/Á;yòdmm-ÞO$þ·ÊDV9!\] Lœ8qôèÑ|>Ÿ ˆææfGGÇÙ³gãwÛ²ˆ|& Ymwg8†Ò¶2Ù|D©ÿMÔ³gOooo‘KXÖ¬Yãàà ªªjoo¿}ûvòšrPRSSB¡¡¡"å"IÏçkhh¼}û¿ŸðàÁ¾}ûjjjº¹¹%%%éëëQWW·`Ámmm]]Ý¥K—²ÙlBÊ‘A‡îß¿?¾¬áÂ… ÆÆÆÕÕÕ\.7((ÈÄÄDSSsöìÙ, ÷+Þ2^¯'Nœ077×ÓÓ[±b‡Ãáñx#FŒPWW'>N‚ÕÕÕsçÎÕÕÕ566^½z5‡Ã‘¸\Ò ‰?a"J,üä'AfIPâ8Ò‡×jûŠÀËÒ·o_EEE[[Û¤¤$‰Õ›››Ç/ØöíÛµ´´úöí‹d ‚¸úð„Hõèèh%%¥×¯_“%>”““KHH Ú¶ˆ e³ÝI›A| ¥me²ùˆRœ;¿Ë—/§§§“/ð9YÞb©íôË"¡íu‚ ¾l+k¯h§;1ÒÙdffΙ3çéÓ§<ظqãâÅ‹© €n¥³meðdé¬]»¶±±ÑÃã²²ÒÂÂbáÂ…¾¾¾2ŽACC£“tJI$ Ûû²­¬ã>¢íùGKð#ýï?F¾òs…ÏÒç?F€Ìàÿþ£%8Ð$A­AÐ$A­AÐZ{^"sóæMòñj€¶ž#ÕQ€î¯Ý®!_ßßBÇŽÍ£:@[Áo‚Zƒ$ 5H‚Zƒ$ 5H‚Zƒ$ 5H‚Zƒ$ 5H‚Zƒ$ 5H‚Zƒ$ 5H‚Zƒ$ 5H‚Zƒ$ 5H‚Zƒ$ 5H‚Zƒ$ 5H‚Zƒ$ 5H‚Zƒ$ 5H‚Zƒ$ 5H‚Zƒ$ 5H‚Zh¹Î ÆIDATZƒ$ 5H‚Zƒ$ 5H‚Z“§:€®íÞ½¼gÏÞ‘/óòÊB¡¡7É’Aƒz÷]_ "´ ƒ ªcèÂRS_ýðÃ1&ƒÁy‹ æŒßèÑ6”Äh Øü*£FÙèêªøÐ ñ]]]õ‘#­eà³Ào‚_ENŽ1mš“‚Sü-¦§§“œœè" S$øµ<<ñx|ñrïá1Höñ> $Á¯5p`/33ñòž=u è%ûxŸ’`;ðò,rD¬ ÀôòLU<€¶ƒ$ئMs9"æñøS§:Q í ¶KKkk#ò"ƒaccdii@iP€6$Ø>fÌÂdþ=˜L&cúô!ÔÆh#H‚íÃÃcŸÿ÷eç|>ç…è* ¶­AƒzÉÉ1ääNNæ&&ZTGhH‚ífÚ4'œ§N…Ý@º H‚ífÊ”AM™I€.ã£{‡SSS) £›°³ÓEef>¢:®m̘1T‡hDô fffššš”„Ò ÌžM0ÈÞÞžê@ºªÚÚÚ¢¢"ª£ô"š544ôõõ) ¥ðòú!Ô£‡2ÕtUð`7 {ð(­öé€.NŒh ’ €Ö h ’ €Öºv,,,\°`Ha^^žøß}Y³ !½{÷öññ©¬¬ž“Íf÷ïß¿GC† Ù¹sgKK ~‹Á`XYY‰œîtwwg0yyy"“¾&ì6úúñ!€n k'Á‹/zxxth³÷îÝ+---**ŠŠŠª««4hPMM ~«¾¾~ðàÁ= yòäɆ âââ\]]ùü¿Ÿ-XPP‘‘A6Ëb±ÒÒÒ„; k÷eÁòóóõôôð´––Öºuë:¨#ºœ®oܸ1nܸmV__ßÈÈÈÔÔÔÙÙùÂ… ÄomݺU__ÿæÍ›nnnÖÖÖÓ¦M{øðaAAATTžÁÅÅåܹsd³—.]=z´pG¸qaí¾,˜@ øðážÖÓÓÛ½{wu@—óyIðÒ¥K¦¦¦, !tæÌkkk6›âñxÁÁÁ†††ÁÁÁ<sݼy³W¯^©©©›7oîÕ«—¾¾¾¹'%^ !tùòeGGGeee ‹˜˜„PKK‹ÄêUUUjjj***|>ïÞ½ÖÖÖ=zô>|ø_ý…g¨©©™?¾žžž™™YPP—ËE1ŒÈÈH;;;}}ýÝ»wÇÄÄôéÓGSSsãÆ"ÍŠ/>ƒÁðóó»zõ*~»iÓ&&óÿ¬¯¦¦‹_NŸ>ýìÙ³äqBB‚——×— ²´A6òIII666MMMÆ Cá$+|8,mˆâââìììtttöìÙ#1È7nXZZjkkïÚµ‹lS¤S‰…Ÿ\|d’’’R^^N´ÊÇÇgÞ¼yeee†††ýõ. ñôô,,,ÌÌÌ4hÐúõësssBîîî·nÝÚ²e‹½½}fffVVÖСCƒ‚‚¤ÕjhhPRR /--=yò¤¼¼|CCÃÞ½{%VŒŒŒ‰‰!âÀ‰‰‰%%%W¯^511ÁËåíí=vìØ7oÞdff:88lÙ²ç£Ù³g×ÕÕ8q!4cÆŒºººcÇŽ!„ªªª„›Å3çææ /þ£G´´´‚ÀIª²²Rd|îÞ½khhˆë¾zõÊÈÈèÙ³gAÔÔÔ¨ªªVUU‘m"„ÒÓÓë?&m¥ ‚´‘7n\NN΃,--·lÙ‚ qáiiCäååÅb±"""B>|YF„ÐĉëêêΟ?Ç­•NE [ÿt•——§¤¤´>í볓 ‹Å233sttþ@ÛÚÚ–––âéäääà 33“ ›ÄÄDünvv69-^«ººZAAaß¾},K Ô××óù|iÕ===««« ‚°¶¶ŽŽŽ&ƒùí·ßBÍÍÍL&óùóç¸011ÑÒÒ’ „ÐÓ§O ‚hnn™Æ¹‰l–ø¢$xÿþ}===²î²eË6lØ@Dll¬«««p›­|'‰rÛÇPxä ‚ˆ·´´”˜["œ‰„‡EB(55• üëgnnn+Š­‚$dﳓ A[·ne2™Âs*+t»˜¦¦&Þš››ñ»YYYâíˆ×"âÎ;^^^jjj#G޼víš´êõõõ“'OÆÓ***éééä[Ïž=C½ÿ!Äáppaff¦²²2ñq^Ÿn–”OŸ>íää„§ŒŒ’““E;zôè÷ßOÖMMMµ´´ÇŽ#>N‚âùEÚ ·} ñÈ“ ž‘‘¡¬¬,1 ¶2D¯_¿–6¸0''Gx†V:)”¶¼$A {Ÿ}bäýû÷GŽqqqY³f Y¨§§Gn*,ëÁƒ¸\AA!dbbRPP€KÒÓÓwìØ!­‡ÃçΫ®®^´hѤI“ª««%Vÿý÷ßÝÜÜpaïÞ½…O¾xñ!dhhÈd2óóóqá›7oLMM?¹tÂÍŠ#âèÑ£&LÀ/½½½·nÝJž F±ÙìáFŒQ__çÎäää¶ŸÈä¶!.Ç !”““ƒ×ÊÉÉ}âƒ!ñ"‰¶%¨$œ?¹'Èçó]\\¶mÛV]]mddtéÒ%\èåå…¯:tèòåË…w=6oÞìè蘕••••5|øð%K–H«Åáp”••*++?®¬¬Ìáp$VŸ3gNqq1nçСC/^,--½~ýº……îú‡~;vl~~~VV–½½ý¦M›ˆOí 7‹ ÉKdRSS§L™bffVSSƒß­­­µ±±=zôõë×srrííí‡Îår…°³³svvéIºDFÚ ·} ñÈ;;;çææ>|øÐÊÊjÓ¦M¸ÿæ(¼jÚ>Dä‚‹ÏÐJ§"…­|ºØTø¼$xøðáþýûãƒÜ .ãŸÏêêê,X ­­­««»téR6›-¼¥q¹Ü   MMÍÙ³g³X,\.^‹ ˆøøø¾}û***ÚÚÚ&%%I¬ÞÜÜ<~üx2ª–––½{÷ZZZª©©}÷Ýwxoˆ ˆêêê¹sçêêê¯^½—µ’³³³…›%>þÙ®gÏžÞÞÞ"ãÓÐаfÍUUU{{ûíÛ·766Š4ŽU*R.í;Iâ ·} ñÈŸ8qÂÜÜ\OOoÅŠ‡Çã1B]]ø8 ¶}ˆZÿòØ©ÄÂV>]$A@!´5¦¦¦~óÍ7ð‡¹]X^^žø*”tú‘TTTdggÓ¥,uí‹¥à+Aìn444|}};C§”DÀç‚ÃaЉÀá0=ØÐ$A­AÐ$A­AÐ$A­‰þùzvvvvv6%¡€ì}t È¿@ }}}ªC4ÂñM¦Ð©Ào‚Zƒ$ 5H‚Zƒ$ µÿÓ,3ýÅ17ÃIEND®B`‚XQilla-2.3.0/docs/dom3-api/classes.html0000644000151400015140000003254511653571065014531 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

Class Index

A | D | M | R | S | X
  A  
DOMImplementationRegistry (xercesc)   DOMTreeWalker (xercesc)   
AutoDeallocate   DOMImplementationSource (xercesc)   DOMTypeInfo (xercesc)   
AutoDelete   DOMLocator (xercesc)   DOMUserDataHandler (xercesc)   
AutoDeleteArray   DOMLSException (xercesc)   DOMXPathEvaluator (xercesc)   
AutoRelease   DOMLSInput (xercesc)   DOMXPathException (xercesc)   
  D  
DOMLSOutput (xercesc)   DOMXPathExpression (xercesc)   
DOMAttr (xercesc)   DOMLSParser (xercesc)   DOMXPathNamespace (xercesc)   
DOMCDATASection (xercesc)   DOMLSParserFilter (xercesc)   DOMXPathNSResolver (xercesc)   
DOMCharacterData (xercesc)   DOMLSResourceResolver (xercesc)   DOMXPathResult (xercesc)   
DOMComment (xercesc)   DOMLSSerializer (xercesc)   
  M  
DOMConfiguration (xercesc)   DOMLSSerializerFilter (xercesc)   MemoryManager (xercesc)   
DOMDocument (xercesc)   DOMMemoryManager (xercesc)   
  R  
DOMDocumentFragment (xercesc)   DOMNamedNodeMap (xercesc)   XQillaAllocator::rebind   
DOMDocumentRange (xercesc)   DOMNode (xercesc)   
  S  
DOMDocumentTraversal (xercesc)   DOMNodeFilter (xercesc)   StDOMNode (xercesc)   
DOMDocumentType (xercesc)   DOMNodeIterator (xercesc)   
  X  
DOMElement (xercesc)   DOMNodeList (xercesc)   XMLDeleter (xercesc)   
DOMEntity (xercesc)   DOMNotation (xercesc)   XMLPlatformUtils (xercesc)   
DOMEntityReference (xercesc)   DOMProcessingInstruction (xercesc)   XPath2MemoryManager   
DOMError (xercesc)   DOMPSVITypeInfo (xercesc)   XPath2Result   
DOMErrorHandler (xercesc)   DOMRange (xercesc)   XQillaAllocator   
DOMException (xercesc)   DOMRangeException (xercesc)   XQillaExpression   
DOMImplementation (xercesc)   DOMStringList (xercesc)   XQillaNSResolver   
DOMImplementationList (xercesc)   DOMText (xercesc)   XQillaPlatformUtils   
DOMImplementationLS (xercesc)   
A | D | M | R | S | X
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMXPathResult.html0000644000151400015140000011461011653571065020714 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMXPathResult Class Reference

The DOMXPathResult interface represents the result of the evaluation of an XPath 1.0 or XPath 2.0 expression within the context of a particular node. More...

#include <DOMXPathResult.hpp>

List of all members.

Public Types

Public Contants
enum  ResultType {
  ANY_TYPE = 0, NUMBER_TYPE = 1, STRING_TYPE = 2, BOOLEAN_TYPE = 3,
  UNORDERED_NODE_ITERATOR_TYPE = 4, ORDERED_NODE_ITERATOR_TYPE = 5, UNORDERED_NODE_SNAPSHOT_TYPE = 6, ORDERED_NODE_SNAPSHOT_TYPE = 7,
  ANY_UNORDERED_NODE_TYPE = 8, FIRST_ORDERED_NODE_TYPE = 9, FIRST_RESULT_TYPE = 100, ITERATOR_RESULT_TYPE = 101,
  SNAPSHOT_RESULT_TYPE = 102
}

Public Member Functions

Destructor
virtual ~DOMXPathResult ()
 Destructor.
Functions introduced in DOM Level 3
virtual ResultType getResultType () const =0
 Returns the result type of this result.
virtual const DOMTypeInfogetTypeInfo () const =0
 Returns the DOM type info of the current result node or value (XPath 2 only).
virtual bool isNode () const =0
 Returns true if the result has a current result and the value is a node (XPath 2 only).
virtual bool getBooleanValue () const =0
 Returns the boolean value of this result.
virtual int getIntegerValue () const =0
 Returns the integer value of this result (XPath 2 only).
virtual double getNumberValue () const =0
 Returns the number value of this result.
virtual const XMLCh * getStringValue () const =0
 Returns the string value of this result.
virtual DOMNodegetNodeValue () const =0
 Returns the node value of this result.
virtual bool iterateNext ()=0
 Iterates and returns true if the current result is the next item from the sequence or false if there are no more items.
virtual bool getInvalidIteratorState () const =0
 Signifies that the iterator has become invalid.
virtual bool snapshotItem (XMLSize_t index)=0
 Sets the current result to the indexth item in the snapshot collection.
virtual XMLSize_t getSnapshotLength () const =0
 The number of items in the result snapshot.
Non-standard Extension
virtual void release ()=0
 Called to indicate that this DOMXPathResult is no longer in use and that the implementation may relinquish any resources associated with it.

Protected Member Functions

Hidden constructors
 DOMXPathResult ()

Detailed Description

The DOMXPathResult interface represents the result of the evaluation of an XPath 1.0 or XPath 2.0 expression within the context of a particular node.

Since evaluation of an XPath expression can result in various result types, this object makes it possible to discover and manipulate the type and value of the result.

Note that some function signatures were changed compared to the DOM Level 3 in order to accommodate XPath 2.0.

Since:
DOM Level 3

Member Enumeration Documentation

ANY_TYPE
[XPath 1.0] This code does not represent a specific type. An evaluation of an XPath expression will never produce this type. If this type is requested, then the evaluation returns whatever type naturally results from evaluation of the expression. If the natural result is a node set when ANY_TYPE was requested, then UNORDERED_NODE_ITERATOR_TYPE is always the resulting type. Any other representation of a node set must be explicitly requested.

ANY_UNORDERED_NODE_TYPE
[XPath 1.0] The result is a node set as defined by XPath 1.0 and will be accessed as a single node, which may be null if the node set is empty. Document modification does not invalidate the node, but may mean that the result node no longer corresponds to the current document. This is a convenience that permits optimization since the implementation can stop once any node in the resulting set has been found. If there is more than one node in the actual result, the single node returned might not be the first in document order.

BOOLEAN_TYPE
[XPath 1.0] The result is a boolean as defined by XPath 1.0. Document modification does not invalidate the boolean, but may mean that reevaluation would not yield the same boolean.

FIRST_ORDERED_NODE_TYPE
[XPath 1.0] The result is a node set as defined by XPath 1.0 and will be accessed as a single node, which may be null if the node set is empty. Document modification does not invalidate the node, but may mean that the result node no longer corresponds to the current document. This is a convenience that permits optimization since the implementation can stop once the first node in document order of the resulting set has been found. If there are more than one node in the actual result, the single node returned will be the first in document order.

NUMBER_TYPE
[XPath 1.0] The result is a number as defined by XPath 1.0. Document modification does not invalidate the number, but may mean that reevaluation would not yield the same number.

ORDERED_NODE_ITERATOR_TYPE
[XPath 1.0] The result is a node set as defined by XPath 1.0 that will be accessed iteratively, which will produce document-ordered nodes. Document modification invalidates the iteration.

ORDERED_NODE_SNAPSHOT_TYPE
[XPath 1.0] The result is a node set as defined by XPath 1.0 that will be accessed as a snapshot list of nodes that will be in original document order. Document modification does not invalidate the snapshot but may mean that reevaluation would not yield the same snapshot and nodes in the snapshot may have been altered, moved, or removed from the document.

STRING_TYPE
[XPath 1.0] The result is a string as defined by XPath 1.0. Document modification does not invalidate the string, but may mean that the string no longer corresponds to the current document.

UNORDERED_NODE_ITERATOR_TYPE
[XPath 1.0] The result is a node set as defined by XPath 1.0 that will be accessed iteratively, which may not produce nodes in a particular order. Document modification invalidates the iteration. This is the default type returned if the result is a node set and ANY_TYPE is requested.

UNORDERED_NODE_SNAPSHOT_TYPE
[XPath 1.0] The result is a node set as defined by XPath 1.0 that will be accessed as a snapshot list of nodes that may not be in a particular order. Document modification does not invalidate the snapshot but may mean that reevaluation would not yield the same snapshot and nodes in the snapshot may have been altered, moved, or removed from the document.

FIRST_RESULT_TYPE
[XPath 2.0] The result is a sequence as defined by XPath 2.0 and will be accessed as a single current value or there will be no current value if the sequence is empty. Document modification does not invalidate the value, but may mean that the result no longer corresponds to the current document. This is a convenience that permits optimization since the implementation can stop once the first item in the resulting sequence has been found. If there is more than one item in the actual result, the single item returned might not be the first in document order.

ITERATOR_RESULT_TYPE
[XPath 2.0] The result is a sequence as defined by XPath 2.0 that will be accessed iteratively. Document modification invalidates the iteration.

SNAPSHOT_RESULT_TYPE
[XPath 2.0] The result is a sequence as defined by XPath 2.0 that will be accessed as a snapshot list of values. Document modification does not invalidate the snapshot but may mean that reevaluation would not yield the same snapshot and any items in the snapshot may have been altered, moved, or removed from the document.

Enumerator:
ANY_TYPE 
NUMBER_TYPE 
STRING_TYPE 
BOOLEAN_TYPE 
UNORDERED_NODE_ITERATOR_TYPE 
ORDERED_NODE_ITERATOR_TYPE 
UNORDERED_NODE_SNAPSHOT_TYPE 
ORDERED_NODE_SNAPSHOT_TYPE 
ANY_UNORDERED_NODE_TYPE 
FIRST_ORDERED_NODE_TYPE 
FIRST_RESULT_TYPE 
ITERATOR_RESULT_TYPE 
SNAPSHOT_RESULT_TYPE 

Constructor & Destructor Documentation

xercesc::DOMXPathResult::DOMXPathResult ( ) [inline, protected]
virtual xercesc::DOMXPathResult::~DOMXPathResult ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual bool xercesc::DOMXPathResult::getBooleanValue ( ) const [pure virtual]

Returns the boolean value of this result.

Returns:
booleanValue of type boolean The value of this boolean result.
Exceptions:
DOMXPathExceptionTYPE_ERR: raised if ResultType is not BOOLEAN_TYPE (XPath 1.0) or if current result cannot be properly converted to boolean (XPath 2.0).
NO_RESULT_ERROR: raised if there is no current result in the result object (XPath 2.0).
virtual int xercesc::DOMXPathResult::getIntegerValue ( ) const [pure virtual]

Returns the integer value of this result (XPath 2 only).

Returns:
integerValue of type int The value of this integer result.
Exceptions:
DOMXPathExceptionTYPE_ERR: raised if current result cannot be properly converted to int (XPath 2.0).
NO_RESULT_ERROR: raised if there is no current result in the result object (XPath 2.0).
virtual bool xercesc::DOMXPathResult::getInvalidIteratorState ( ) const [pure virtual]

Signifies that the iterator has become invalid.

Returns:
invalidIteratorState True if ResultType is UNORDERED_NODE_ITERATOR_TYPE or ORDERED_NODE_ITERATOR_TYPE (XPath 1.0) or ITERATOR_RESULT_TYPE (XPath 2.0) and the document has been modified since this result was returned.
Exceptions:
XPathExceptionTYPE_ERR: raised if ResultType is not UNORDERED_NODE_ITERATOR_TYPE or ORDERED_NODE_ITERATOR_TYPE (XPath 1.0) or if ResultType is not ITERATOR_RESULT_TYPE (XPath 2.0).
virtual DOMNode* xercesc::DOMXPathResult::getNodeValue ( ) const [pure virtual]

Returns the node value of this result.

Returns:
nodeValue The value of this node result, which may be null.
Exceptions:
DOMXPathExceptionTYPE_ERR: raised if ResultType is not ANY_UNORDERED_NODE_TYPE, FIRST_ORDERED_NODE_TYPE, UNORDERED_NODE_ITERATOR_TYPE, ORDERED_NODE_ITERATOR_TYPE, UNORDERED_NODE_SNAPSHOT_TYPE, or ORDERED_NODE_SNAPSHOT_TYPE (XPath 1.0) or if current result is not a node (XPath 2.0).
NO_RESULT_ERROR: raised if there is no current result in the result object.
virtual double xercesc::DOMXPathResult::getNumberValue ( ) const [pure virtual]

Returns the number value of this result.

Returns:
numberValue The value of this number result. If the native double type of the DOM binding does not directly support the exact IEEE 754 result of the XPath expression, then it is up to the definition of the binding to specify how the XPath number is converted to the native binding number.
Exceptions:
DOMXPathExceptionTYPE_ERR: raised if ResultType is not NUMBER_TYPE (XPath 1.0) or if current result cannot be properly converted to double (XPath 2.0).
NO_RESULT_ERROR: raised if there is no current result in the result object (XPath 2.0).
virtual ResultType xercesc::DOMXPathResult::getResultType ( ) const [pure virtual]

Returns the result type of this result.

Returns:
ResultType A code representing the type of this result, as defined by the type constants.
virtual XMLSize_t xercesc::DOMXPathResult::getSnapshotLength ( ) const [pure virtual]

The number of items in the result snapshot.

Valid values for snapshotItem indices are 0 to snapshotLength-1 inclusive.

Returns:
snapshotLength of type XMLSize_t
Exceptions:
XPathExceptionTYPE_ERR: raised if ResultType is not UNORDERED_NODE_SNAPSHOT_TYPE or ORDERED_NODE_SNAPSHOT_TYPE (XPath 1.0) or if ResultType is not SNAPSHOT_RESULT_TYPE (XPath 2.0).
virtual const XMLCh* xercesc::DOMXPathResult::getStringValue ( ) const [pure virtual]

Returns the string value of this result.

Returns:
stringValue The value of this string result.
Exceptions:
DOMXPathExceptionTYPE_ERR: raised if ResultType is not STRING_TYPE (XPath 1.0) or if current result cannot be properly converted to string (XPath 2.0).
NO_RESULT_ERROR: raised if there is no current result in the result object (XPath 2.0).
virtual const DOMTypeInfo* xercesc::DOMXPathResult::getTypeInfo ( ) const [pure virtual]

Returns the DOM type info of the current result node or value (XPath 2 only).

Returns:
typeInfo of type TypeInfo, readonly
virtual bool xercesc::DOMXPathResult::isNode ( ) const [pure virtual]

Returns true if the result has a current result and the value is a node (XPath 2 only).

This function is necessary to distinguish between a string value and a node of type string as returned by the getTypeInfo() function.

Returns:
isNode of type boolean, readonly
virtual bool xercesc::DOMXPathResult::iterateNext ( ) [pure virtual]

Iterates and returns true if the current result is the next item from the sequence or false if there are no more items.

Returns:
boolean True if the current result is the next item from the sequence or false if there are no more items.
Exceptions:
XPathExceptionTYPE_ERR: raised if ResultType is not UNORDERED_NODE_ITERATOR_TYPE or ORDERED_NODE_ITERATOR_TYPE (XPath 1.0) or if ResultType is not ITERATOR_RESULT_TYPE (XPath 2.0).
DOMExceptionINVALID_STATE_ERR: The document has been mutated since the result was returned.
virtual void xercesc::DOMXPathResult::release ( ) [pure virtual]

Called to indicate that this DOMXPathResult is no longer in use and that the implementation may relinquish any resources associated with it.

Access to a released object will lead to unexpected result.

virtual bool xercesc::DOMXPathResult::snapshotItem ( XMLSize_t  index) [pure virtual]

Sets the current result to the indexth item in the snapshot collection.

If index is greater than or equal to the number of items in the list, this method returns false. Unlike the iterator result, the snapshot does not become invalid, but may not correspond to the current document if it is mutated.

Parameters:
indexof type XMLSize_t - Index into the snapshot collection.
Returns:
boolean True if the current result is the next item from the sequence or false if there are no more items.
Exceptions:
XPathExceptionTYPE_ERR: raised if ResultType is not UNORDERED_NODE_SNAPSHOT_TYPE or ORDERED_NODE_SNAPSHOT_TYPE (XPath 1.0) or if ResultType is not SNAPSHOT_RESULT_TYPE (XPath 2.0).

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/inherit_graph_10.png0000644000151400015140000000532311653571066016032 00000000000000‰PNG  IHDR(ž˜³ÞbKGDÿÿÿ ½§“ ˆIDATxœíœ}PL]ÀϾkW-Zjû.¥6¢&ÉGÍ(ŒD1fBe’¢òj£$MSþ e"fT¦š„1eBM#µ}Q)¤I–ÝìG[[»÷ýãÌ{çÚ»»}0õ²ç÷×9Ï=ÏsžóœûÜsîÙ †aÐVþ™lˆÉ%B«A €ÐjP ´š)ÄJEEErròd¹‚@Lñññ+W®Ä«?%@ooï“'Oüýý'Ü+b"(((ؽ{7Q2…Ü(??¢üA & …¢$Aï­%B«A €ÐjP ´”­æïL kkëGl ‘H8ÎÂ… g̘±téÒ3gÎ ãºvvvJßôññ¡P(ííí°,ŒöövòYĤ3>¯ˆqÖÕÕ]¾|y]]ÝÄtý»ø;ðòåËžžžÏŸ?߸qC(º¸¸ôõõÁK"‘hÉ’%555©©©¯_¿ŽÍÉÉñòò’Ëå°Á‡êëëqSàùóç“0†_£££ƒÅb²ÁÌ™3;6Ž^`œ{zz¸\®ÝÖ­[ÇúýbÍ]8Š_#——§$ùC´µµáU…B±bÅŠ„„XŽŽöððƈÅbkkëÌÌL¨ëíí‡_½yó¦nSÉøXikk›˜ ØÑ¯{¢ŠÞÞ^@ooï¯ØTâ÷† ——G”Œy¸wïž¹¹¹@ ܾ}{îܹ‰044ÄápŒŒŒ8ÎÐÐ\ÚÊÊÊfÏž]^^~êÔ©Ù³g†„„àc² ¤¤ÄÉÉIGGÇÆÆæÖ­[€ááa•êÄÕSÃJJ¡PöíÛ÷àÁXÍÎÎNHH R©xƒiÓ¦q8œììlXõ÷÷ÏÏÏÇþ{’úùù©³œ••5þ|CCÔ””[·nÍ™3‡Édž}š˜˜èààÀår\]]£££Õi‰Åâ©S§fddôôô\¿~}Ê”)b±øÜ¹s*Õûúúàc[© Héššš™3gbS—Çã) êÅ‹ÆÆÆP÷íÛ·&&&oÞ¼f Æ·o߀ª( ¯]» …W¯^|ûö F`íÚµ­­­UUUl6;11‘øH#D›´üüüAff&àû÷ïÄŽ„B!N ûüù3Ìó¯_¿ËAAAžžžïß¿çr¹ŽŽŽ‰‰‰*íCa]]H$‰DÝÝÝ ÅCJö333ÓÜÜüÑ£G<¯´´”ÍfÃ`®UN=ÙIxG=|øÐÀÀ&Uvv¶ƒƒƒB¡ñÖ¤`< ,,,œœœ`h ööö===°\ZZêìì Ýår¹†Í›7ïîÝ»ðjss3^&kñù|vþüy@ P(D"‘\.W§®aœcM€W¯^±X,\7"""66ðììl///¢M¥¨­­Å0L&“)•ÛÚÚˆ€áe³ÙÄ%D›´ž={Fî6lii‹År¹¼¢¢‚Ü/Ëd2*•ÚØØåwïÞe³Ù*íc¤½þôéÓ›››ñ’ýtttÌÉÉÁäææ@åÔ“„ñ611)++Ã0lýúõ)))šo |¾~C`–””D¥R‰»=b,˜L&tW&“Á« d;d- Ã*++ýüü¦M›æááñðáC êÆ©”¹¹¹‹/†e“ÒÒR%•ôôôuëÖáºååål6[¡Pøúú^½zSŸÊ0R© ëëëuttˆ3ªrø#ÚW§õîÝ;rïø‹‹‹ÝÝÝCCC5$@WWÑg.—«£££Ò¾’{‰$**ÊÍÍ ï‘ì§®®n}}=ÞÝ O=ÙIxGavàÀˆˆG§Ó»ºº°Q@N€ñœuuu]¾|yÍš5QQQ¸Åbá±UUUPN£Ñfff>|€’ºººÓ§O«Ó’J¥ …¢  €Ï燇‡oܸ‘Ïç«S%†¥§§oذVƒ‚‚’’’ð3€D"IMMõööÆ%îîî"‘¨²²²´´Ô××wLÝ)§ ÐÚÚjffF¼¤.hšQ§õÏ?jgS*•p8œÚÚÚ+W®h0nllL¥R;::`õýû÷æææ#Ú0Œ;w655aÿ­ d?­¬¬šššp•––%'ÉSOîÞQÿ¢¢¢üü|www ¾i`Ì  P(ÂÂÂ"##oß¾ýäÉ“’’(ß¼ysllìǹ\®··wZZQ+88øÄ‰üøñ£:- …²víÚ;wî…B™LF£Ñ †:õ?~À²RÀãñ¾|ùÒÝÝ]QQ±iÓ¦ÎÎΣGÂK _¿~õôô|ôèQ[[[QQ‘«««¹¹ùþýûqu*•ºeË–½{÷.[¶ÌÈÈh¬Q"røðáöööššš¸¸¸íÛ·/iš:Ƥ%‹ƒƒƒ2™ŒN§K¥ÒS§ND"±FÛºuë¡C‡:;;ããヂ‚F9R===‘H„$ûóøñãïß¿Ã7Câ¹…Ê©Wé$å%%%ÒC—ƒÑl.]º´páB¸ ™ššòù| ÄBahhè¬Y³ öìÙ#‘Hˆ‹×ÀÀ@tt´™™“É PNÖ‚nØÚÚÒét{{ûââb êê^㈴´´ R:›‹ÅQQQŽŽŽ ÃÁÁ!99¹¿¿×…Ï­òòr@ZZš’Œq tíÚ5+++‹)•J•ÞMÉÃÑþ(µ†††ÜÝݧOŸ….\Ð××·´´¼råJ`` ‘‘±Ñ+>Ÿl```jjzäȸRé øy«)—Ëõôô:;;ÕN.—_¼xÑÖÖ–Édz{{»&O½:'!ûöíÓÕÕ …Øè¿ë1&ìÈÿO¡¤¤¤®®¯Â7øq·mÛ¶Ñ·''À_ûI0â—Ëݾ}{mmmUUÕÉ“'wíÚ5>SYYYJ¿ð+*~†ø]èééíÝ»w²½øÓßßïëëËãñlllÂÂÂÆŸêêêM›6í߿ժU¿â#ì˜óóóÇñ]âOB¡äååà´Bh5(Z J„Vƒ¡Õ @h5(ZŠÏ¼¼¼&ÞbRø),--у"þbüýý---‰ úØ ¡Í w„Vƒ¡Õ @h5(ZÍ¿5+¦m7H:CIEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMDocumentType_8hpp__incl.md50000644000151400015140000000004011653571065017661 000000000000002782c9bfcef42d3f4579453c11f47f05XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMImplementationLS.html0000644000151400015140000005575411653571066021733 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMImplementationLS Class Reference

#include <DOMImplementationLS.hpp>

Inheritance diagram for xercesc::DOMImplementationLS:

List of all members.

Public Types

Public constants
enum  DOMImplementationLSMode { MODE_SYNCHRONOUS = 1, MODE_ASYNCHRONOUS = 2 }
 

Create a synchronous or an asynchronous DOMLSParser.

More...

Public Member Functions

Destructor
virtual ~DOMImplementationLS ()
 Destructor.
Functions introduced in DOM Level 3
virtual DOMLSParsercreateLSParser (const DOMImplementationLSMode mode, const XMLCh *const schemaType, MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager, XMLGrammarPool *const gramPool=0)=0
 Create a new DOMLSParser.
virtual DOMLSSerializercreateLSSerializer (MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)=0
 Create a new DOMLSSerializer.
virtual DOMLSInputcreateLSInput (MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)=0
 Create a new "empty" DOMLSInput.
virtual DOMLSOutputcreateLSOutput (MemoryManager *const manager=XMLPlatformUtils::fgMemoryManager)=0
 Create a new "empty" LSOutput.

Protected Member Functions

Hidden constructors
 DOMImplementationLS ()

Detailed Description

DOMImplementationLS contains the factory methods for creating Load and Save objects.

An object that implements DOMImplementationLS is obtained by doing a binding specific cast from DOMImplementation to DOMImplementationLS. Implementations supporting the Load and Save feature must implement the DOMImplementationLS interface on whatever object implements the DOMImplementation interface.

Since:
DOM Level 3

Member Enumeration Documentation

Create a synchronous or an asynchronous DOMLSParser.

See also:
createLSParser(const DOMImplementationLSMode mode, const XMLCh* const schemaType)
Since:
DOM Level 3
Enumerator:
MODE_SYNCHRONOUS 
MODE_ASYNCHRONOUS 

Constructor & Destructor Documentation

xercesc::DOMImplementationLS::DOMImplementationLS ( ) [inline, protected]
virtual xercesc::DOMImplementationLS::~DOMImplementationLS ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual DOMLSInput* xercesc::DOMImplementationLS::createLSInput ( MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager) [pure virtual]

Create a new "empty" DOMLSInput.

Returns:
The newly created DOMLSInput object.
See also:
DOMLSInput
Since:
DOM Level 3
virtual DOMLSOutput* xercesc::DOMImplementationLS::createLSOutput ( MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager) [pure virtual]

Create a new "empty" LSOutput.

Returns:
The newly created LSOutput object.
See also:
LSOutput
Since:
DOM Level 3
virtual DOMLSParser* xercesc::DOMImplementationLS::createLSParser ( const DOMImplementationLSMode  mode,
const XMLCh *const  schemaType,
MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager,
XMLGrammarPool *const  gramPool = 0 
) [pure virtual]

Create a new DOMLSParser.

The newly constructed parser may then be configured by means of its DOMConfiguration object, and used to parse documents by means of its parse method.

Parameters:
modeThe mode argument is either MODE_SYNCHRONOUS or MODE_ASYNCHRONOUS, if mode is MODE_SYNCHRONOUS then the DOMLSParser that is created will operate in synchronous mode, if it's MODE_ASYNCHRONOUS then the DOMLSParser that is created will operate in asynchronous mode.
schemaTypeAn absolute URI representing the type of the schema language used during the load of a DOMDocument using the newly created DOMLSParser. Note that no lexical checking is done on the absolute URI. In order to create a DOMLSParser for any kind of schema types (i.e. the DOMLSParser will be free to use any schema found), use the value NULL. Note: For W3C XML Schema [XML Schema Part 1], applications must use the value "http://www.w3.org/2001/XMLSchema". For XML DTD [XML 1.0], applications must use the value "http://www.w3.org/TR/REC-xml". Other Schema languages are outside the scope of the W3C and therefore should recommend an absolute URI in order to use this method.
managerPointer to the memory manager to be used to allocate objects.
gramPoolThe collection of cached grammers.
Returns:
The newly created DOMLSParser object. This DOMLSParser is either synchronous or asynchronous depending on the value of the mode argument.
Exceptions:
DOMExceptionNOT_SUPPORTED_ERR: Raised if the requested mode or schema type is not supported.
See also:
DOMLSParser
Since:
DOM Level 3
virtual DOMLSSerializer* xercesc::DOMImplementationLS::createLSSerializer ( MemoryManager *const  manager = XMLPlatformUtils::fgMemoryManager) [pure virtual]

Create a new DOMLSSerializer.

DOMLSSerializer is used to serialize a DOM tree back into an XML document.

Returns:
The newly created DOMLSSerializer object.
See also:
DOMLSSerializer
Since:
DOM Level 3

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMDocumentTraversal__inherit__graph.md50000644000151400015140000000004011653571065025044 00000000000000ddbdffcf5ec1ffd66a4cfcf725d46395XQilla-2.3.0/docs/dom3-api/DOMImplementationRegistry_8hpp__incl.png0000644000151400015140000001142411653571065022066 00000000000000‰PNG  IHDRãu3ÓÁEbKGDÿÿÿ ½§“ÉIDATxœíyTSÇÛÇ'!„°T#Z7„ŠÔj‚¤""È&XdÊAI°Šç(.õ¨`ÅRÅêiÅÊŰ€UZp‰VEq+`©ªV!AÑ„=,÷ýãž÷þ®ÙŒ1€—Î篹Ïç™gf¾ÎLn®„ €@Þ{ÈâP©b• !P©b@Á_\¹r%99y¸R@ðTUUá/_SêóçÏ/\¸àîî>¤A ¯óâÅ‹††#E¾^bbâä(†ÍfïÚµKÆÏ©b• !P©b• !P©b ‰R8V¬X‘’’ÒÑѯ  ÓÓÓcbb¼½½Y,ÖñãÇ% æ!óZÌ–-[ Fkk+Z-hFkk+ƒÁÐØ}Ð,+ü8/^¼xíÚµÍÍÍCÓ´šé½ËL½-®©iii%%%EEE[¶léíííééAoõõõ1™Ì‡2™ÌÌÌÌðð𪪪„„©TŠVhkkû矰PÝÝݵµµïØ¡‡Ëåúûû«YÁÈÈ(44TƒVÐq.))ÉÉÉ¡Óé»vízÛwßT7ýÆ^¼?h¨T333sssggçÝ»w[YY¡·Ž=jbbràÀO>ù„N§»ºº¦§§·µµUTT \\\Øl6êÆ3gÎ|·^ R©´««KÍ ÆÆÆ±±±´‚޳™™Ng±X---oAuÓoìÅûƒΩ$ÉÏÏïæÍ›èeUUUdd$™ü¿È4mÅŠØ—cîîîl6[®\¹²`Á…‘ FEEETTT@@@aaaeeehh¨Onn.øÿ}íúõë+W® Ìd2322º»»üñGÀ™3g}}};wî´··?vìX\\\VVVGG¾žï¿ÿ¾½½===}ïÞ½·oß>qâ„Âø¨Q( @ðêÕ«œœœE‹éêê*ëÝùóç ¾üòËÂÂÂðððÇãÛ …III'Ož\¹rå¾}û„B¡|’§OŸÞºukLLÌõë×ÑOׯ_·²²’ŸSÀ­[·²²²6oÞœ­zFTL“š Ñg‰„SÉd²››z¨®®vtt5j”2ÇOOO@XX˜——›Ë¸¸8:>mÚ´U«VɼÓPQQ±~ýzKKK[[[&“YSS£NLe^FFF‹/Èì˜T*5'''>>~ôèÑ–––€ÞÞ^…݋ŗ.]Z·n•••­­mtt4–³Âø«V­òööööö®¬¬ QÑ»’’‹5{ölccc—èèh|Ó"‘A@@¥R½¼¼Îž=«§§'Ÿall¬³³óìÙ³)J]]àÂ… žžž$IÙìÌŸ?ÿ3¢bšÔDÁ÷þÐÒÒbmm 022233knnvqqÁWhnnž_*•¢c7n–³ÂøÇŽ7n ¿¿?77wß¾}ØJ)Ÿ§X,þðÃ1Ëĉñ¡>øàƒƒçååMž<9,,lΜ9òÚØØÈd²««ëÕ«WmmmïÞ½»qãF…Ý=z4@FÄ gDÅ4©‰”ŠæÎ‹^zxx=zÔÙÙ;ª …Â'Nà‡ÕÑѱ¯¯¯¾¾þÎ;ÊFAMZZZlmmÏž=CÃØØøàÁƒèL£Çu*óR¸¨ ô÷÷'%%%%%}úé§"‘ûì(©©)™Lær¹&Lp8T ªãôôô¼¼¼~ùåAКòyîØ±ãñãÇèhþý÷_™$¥RiRR’X,¾xñâ¶mÛJKKåÂþ©¸»»'''Oœ8ÑÑÑÑÂÂBaV sV8#*¦IM4Üý;::x<ÞË—/kkkwìØÁår?ÿüsôVTTŸÏß°aCMMMKKËï¿ÿgnnŽ‚80mÚ4Ír@IKKkmm}øðavvö¢E‹ð·\]]³²²ž?þèѣ͛7+œyÞÊK D"‘X,¦P(è¹¶¯¯_ƒB¡0Œ~øËå>~ü8''ÇÃÃCÍžöõõaåó ÈÈȸsçNWW×ýû÷óóóñJ"‘H›6mºzõjoo¯H$¢P(Øî/“$Š“““D"ùé§ŸÐcʹsç”l0ΈŠiR ×Ôµk×¢KKK''§ÌÌLüÞš™™™———žžÎáp¬¬¬.\¸|ùrì£ ƒÁ(++ Ô, 7 …Â… †‡‡ãw–˜˜˜´´´Õ«W“H$777&“©N@5½ÆŽëèètþüy##£¸¸¸ääd}}ý°°°… nÞ¼¹¸¸«€w\¿~}ZZ‹ÅÒÕÕýì³ÏÂÃÃÕì©………AWWzb‘Ï“J¥J$’ƒvvv:88°X¬ÔÔTÌJ¥~õÕW/^¼°¶¶NLL¤R©ø^È4‡®&¿ýö›››fÜ¿ÿÌ™3±¹VˆÂ‘1ªÙe<$ü“äÓ§O‡„„\¾|Yƒ@COkkkDDQ²ª««---'Mš„^^½zµ   ++Kã€ÙÙÙmmmÛ·oW³¾ÂÑ`šÐ÷Se¾ã€ßû=z´gÏž¦¦¦þþþ†††ÜÜ\ÍB p¹ÜŠŠŠ¥K—j7IÑÎgÿaÁÐÐÐ××w¸³xX±b…P(ܾ}{GG‡••Õ’%K4Ÿ¿þúkÇŽ~~~oõõ¡ÂÑÖ4x÷‡ŒTàî!0P©b• !P©b• !P©b àyjBBÂÐç`ðù|yãkJ?~üòåˇ*Ÿ‘ G{ôÈøãŸw"ÄFæ­Q óäòî”—ÿÁbýÄáîDFðœ !P©b• !P©b• !P©b• !P©b• !P©b• !P©b• !P©b• !P©b• !P©b• !P©b• !P©b• !P©b• !P©b• !P©b• !P©b• !P©b• !ð7©ß§ã‹/rÄb z)ˆx¼ÞqãL° Ó§[§¥E Sv#ÿ…ß÷kk¡p ¹ùÞøð¡-HÀ×÷-þH.Dp÷×+VÌ¡P”$iùòÙCšÍ*U Ì’H¢Èd’“N7ú”FP©ZÀÚÚdÖ,2™$c'“Ⴊ5 RµCpðly¥"âïï<,ùŒ< Rµƒ¯ïL™‡(::ä¹síF6¦ŒFP©ÚÁÌÌpþ|{ÿ'‚ ÁÁcJ# ¨T­ô1þá´ŽÙÛÛióa@¥j //G E-S(d‡>  oJ# ¨T­ad¤çéé€$dÙ²YÃш*U›,[æ"•JúúºÃΈ*U›0Óôõ©$X²ÄQO~S­M4M>Ÿ/´˜ÊÈÀÃcjyyƒaËáp†;—÷SSS}}}Í|5W*‡Ãiooר}¤âà`tù²ž±qccãpçòÞ1}úôaP*ÀÂÂÂÁžÆ^ÃÍ !‘Ì.d w"ïl6û]Üá9UËÉ$&Ó}¸³@¥j]]áNa• !P©b• !P©bðßRêÓ§O£££ßX­¹¹™D"á x÷û÷ïS(”¢¢"Ì^VVF¥Rëëë#gH8&Nœ©ú©6‚ FFê¾&K"‘š››µ‘©–ùo)µ´´4 @á­G™››£e“-[¶(swvvÞ¶m[|||GG ³³sÍš5‰‰‰ŽŽŽƒ—9ž7np¹Ü–––¼¼¼®®®Y³f¡™(„Ãá?~¼¡¡ahrDMyðàÁƒ4v|||úúúÞjjj’ #æÞßß?cÆŒØØXAX,–‹‹ËÀÀÀ eý€¦¦&ìR*•º¹¹íܹSY}…ýR?¾¹|ùòóçÏ5vÜ5µ¼¼|ܸq|>pâĉɓ'÷ööD"ѦM›ÆŒcii¹iÓ&‘H„î³/^´±±a³Ù‰‰‰666‘‘‘Ø‚!ï8{ö¬““F³µµ-((ˆÅb…î/_¾444Ô××ÇïéXyîܹ€±cǹM_Æ@¥RóóósssSRRòòòòóóuuu•%©Å®ÉC"‘X,Ö¹sç”ÅÁ÷K͘•••vvv¦¦¦)))Øh”••M™2ÅÒÒ2>>¾¿¿_¡Q]Yh†ÆWsMŒŒŒŠŠjkk3fÌ­[·PãÞ½{ƒ‚‚ž>}ZWW7kÖ¬­[·¢ÿô—,YréÒ¥¤¤$‡ºººúúú9sæ$$$(óêééÑÓÓKOOçr¹999 ¥§§'55U¡{nnnAAòú2ƒ•ßhÄÜ1¶nÝ HNNƵkˆ¢5ïöíÛ&&&ª[Gï*‹‰°téÒ®®®’’ÀË—/Ñžžž7oÞ´³³KJJRhT­„w\S]©|>ŸN§;99á{2uêT.—‹–«ªªfΜ‰ö¼®®A)S¦œ9s½ÛÐЀ•å½x<ž®®îþýûù|¾T*íîî–H$Ê܃‚‚x<¢©R1w©Têïﯣ£ïï v y“R•µŽZ”ÅÄ`³Ù‚H$´-|þ‚œ:uÊÎÎN¡QÉû®TA¾þúk|–4ÚkÿmÃØØí9zÚ£Ñhõõõòqä½¹víZpp°¡¡¡««ëùó畹wwwûùù¡eüä¡o>>ª[GQ3¦ü€JÐØØhmm­Â8Xh¬quÖT‰Dâáá±{÷n7vìØòòrÔüäÉ“ÚÚÚ9sæ¬]»ÿO?11ÑÉÉ©¾¾¾¾¾~Þ¼y«W¯Væ%h4Zqqq{{{ff&F Ý#""Z[[Ñ8èÈœœœÎÎÎÀÀ@€[>»»»Ek*Þ]*•.]ºtÁ‚èÖ900àää:]CàžR±Ùl:ÞÑÑ¡NëÊbfeean͸5•Á`455ÕÔÔØÛÛïܹS¡QµÞëÝÿСC}ôºñýüóÏVVVèQ¯««+::ÚÔÔtôèѱ±±½½½ø … ÖÖÖÆÆÆ¡¡¡|>µË{!rêÔ©I“&Q©Ô©S§–••)tðööÆ'–œœlbb2iÒ¤²²2´]‘H4þ|###DN©2îùùùzzzÿý7f©©©!“ÉÅÅŃÝ5äõ_¿?~|xx8~úU·®"¦Œ:ñe4Bvvö„ ÌÍÍ×­['U‹á•ªùï§þùçŸø&õˆ§¹¹ÙÞÞ^F' ªa³ÙÓ§O·´´Ô,ÿÖwTâ• y£Fb2™ê¸ûC†¸ûCþ@¥BˆT*„@¥BˆT*„¼Óo¨…BøëK¡á”ÚÝÝÝÝÝ­­T À¿F !ðœ !P©b• !P©bð2Äã°>IEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMText_8hpp_source.html0000644000151400015140000002420211653571065016666 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMText.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  * 
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  * 
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMText.hpp 527149 2007-04-10 14:56:39Z amassari $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMTEXT_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMTEXT_HPP
00024 
00025 #include <xercesc/util/XercesDefs.hpp>
00026 #include <xercesc/dom/DOMCharacterData.hpp>
00027 
00028 XERCES_CPP_NAMESPACE_BEGIN
00029 
00030 
00051 class CDOM_EXPORT DOMText: public DOMCharacterData {
00052 protected:
00053     // -----------------------------------------------------------------------
00054     //  Hidden constructors
00055     // -----------------------------------------------------------------------
00058     DOMText() {}
00059     DOMText(const DOMText &other) : DOMCharacterData(other) {}
00061 
00062 private:
00063     // -----------------------------------------------------------------------
00064     // Unimplemented constructors and operators
00065     // -----------------------------------------------------------------------
00068     DOMText & operator = (const DOMText &);
00070 
00071 public:
00072     // -----------------------------------------------------------------------
00073     //  All constructors are hidden, just the destructor is available
00074     // -----------------------------------------------------------------------
00081     virtual ~DOMText() {};
00083 
00084     // -----------------------------------------------------------------------
00085     //  Virtual DOMText interface
00086     // -----------------------------------------------------------------------
00107     virtual DOMText *splitText(XMLSize_t offset) = 0;
00109 
00120     virtual bool     getIsElementContentWhitespace() const = 0;
00121 
00128     virtual const XMLCh* getWholeText() const = 0;
00129 
00158     virtual DOMText* replaceWholeText(const XMLCh* content) = 0;
00160 
00161     // -----------------------------------------------------------------------
00162     // Non-standard extension
00163     // -----------------------------------------------------------------------
00172     virtual bool isIgnorableWhitespace() const = 0;
00174 
00175 };
00176 
00177 
00178 XERCES_CPP_NAMESPACE_END
00179 
00180 #endif
00181 
00182 
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMXPathNamespace.html0000644000151400015140000002747711653571066021351 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMXPathNamespace Class Reference

The DOMXPathNamespace interface is returned by DOMXPathResult interfaces to represent the XPath namespace node type that DOM lacks. More...

#include <DOMXPathNamespace.hpp>

Inheritance diagram for xercesc::DOMXPathNamespace:

List of all members.

Public Types

enum  XPathNodeType { XPATH_NAMESPACE_NODE = 13 }

Public Member Functions

Destructor
virtual ~DOMXPathNamespace ()
 Destructor.
Functions introduced in DOM Level 3
virtual DOMElementgetOwnerElement () const =0
 The DOMElement on which the namespace was in scope when it was requested.

Protected Member Functions

Hidden constructors
 DOMXPathNamespace ()

Detailed Description

The DOMXPathNamespace interface is returned by DOMXPathResult interfaces to represent the XPath namespace node type that DOM lacks.

There is no public constructor for this node type. Attempts to place it into a hierarchy or a NamedNodeMap result in a DOMException with the code HIERARCHY_REQUEST_ERR. This node is read only, so methods or setting of attributes that would mutate the node result in a DOMException with the code NO_MODIFICATION_ALLOWED_ERR. The core specification describes attributes of the DOMNode interface that are different for different node types but does not describe XPATH_NAMESPACE_NODE, so here is a description of those attributes for this node type. All attributes of DOMNode not described in this section have a null or false value. ownerDocument matches the ownerDocument of the ownerElement even if the element is later adopted. nodeName is always the string "#namespace". prefix is the prefix of the namespace represented by the node. localName is the same as prefix. nodeType is equal to XPATH_NAMESPACE_NODE. namespaceURI is the namespace URI of the namespace represented by the node. nodeValue is the same as namespaceURI. adoptNode, cloneNode, and importNode fail on this node type by raising a DOMException with the code NOT_SUPPORTED_ERR. Note: In future versions of the XPath specification, the definition of a namespace node may be changed incomatibly, in which case incompatible changes to field values may be required to implement versions beyond XPath 1.0.

Since:
DOM Level 3

Member Enumeration Documentation

Enumerator:
XPATH_NAMESPACE_NODE 

Constructor & Destructor Documentation

xercesc::DOMXPathNamespace::DOMXPathNamespace ( ) [inline, protected]
virtual xercesc::DOMXPathNamespace::~DOMXPathNamespace ( ) [inline, virtual]

Destructor.


Member Function Documentation

virtual DOMElement* xercesc::DOMXPathNamespace::getOwnerElement ( ) const [pure virtual]

The DOMElement on which the namespace was in scope when it was requested.

This does not change on a returned namespace node even if the document changes such that the namespace goes out of scope on that element and this node is no longer found there by XPath.

Since:
DOM Level 3

The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/DOMException_8hpp__dep__incl.png0000644000151400015140000000757711653571065020313 00000000000000‰PNG  IHDR“uÅšDÝbKGDÿÿÿ ½§“4IDATxœíyPS×ÇO˜:5H,a³Ò*SM«¯U@ HS°Ve±¢£©ísiµR´Ð±BE ÅÚPª"[‡2ShƒVÙ¡,–á±—- šP !É}œ÷®1 iB¼ñ~þ:çwÏ=¿ï9ßÜs.A€ƒAˆš€³@pç° îVÁÃ*:Ò•[·n9sFSRp”SRR"]}¹áááÒÒÒM›6-ª"œ¹¸ÿ~KK‹LPG¾ÝÉ“'EÎ|)++ûä“Od‚øy«àÎaÜ9¬‚;‡Upç°Š‚kË9a0hÙØØØÙÙ9**ŠB¡ A¡PxåÊ•šš.—knnîáá±sçN‰÷533ûþûï Ú>..®ººšÍf›™™IwŽÂáp ó©x÷ÝwÿI"ƒ‡ BUJXˆs€ääd&‘HúúúnÞ¼þí·ß’ÉdÀäädTT”ADD„©©iww÷7ß|S[[›˜˜H$CCCVVV°«ñññÆÆFùÎÿÙ¸æ—ËŒŒ,((ÉäEHª*¸ZR(”+VP©Ô—_~ùôéÓ4íÆpÓÕ«W)JRRÒúõëétº‡‡GjjêÐÐPqq1làââRVV†vU^^¾víZùÎ¥Y˜È9‘H$ccc°¼|ùòððp5%R*8Ï„íÛ·WVVÂjIIIXX<¼ K–,Ù¹s'úðfÓ¦MeeeèßoݺµqãÆ9³”——Ž~ýõ×ÐÐP¡P(‹333ƒƒƒýüüâãã'&&`c‘H”ššêïïïïš*‰ ÆÝ»wCCCýýý/^¼833³ÿ~ÀŽ;°Ü}bbâóÏ?÷õõ ºtéÒôô4€Á`”––îÚµkûöí?þø£B‘µµµL&sÛ¶mYYYhŸ2IŸvΪ®Pètúàà `bb‚Çã¡+!Š••Uoo/,;88LMMuvvA}}½›››tc¡P8õ$€×^{ÍÅÅ%%%…Ï秤¤|üñÇK–,ÉÉɹ}ûv||ü—_~Ù××Çf³a999\.÷òåˉ‰‰õõõ™™™0žŸŸöìÙªªª~øá믿äææÊ¨½páÂÈÈHjjjBBBMMMvv6Œß¹s'%%%""âòåËð3$CUUUzzúÑ£G322УY&©’àS±H×–A"‘ü/%‘èéé ÌŠŠ GGÇeË–I7Þ»w￞Æ£££ëëëY,–¯¯¯­­- ¨¨èý÷ß·´´|ñÅãââìííaËâââC‡YZZFDDTWWÃxTTN·³³Û»w¯Ì\‘HôÛo¿EGGÓh4KKËÝ»w£-ýüüÈdòo¼@‘&88XOOÏÝÝ€Z«0é|”(gW(2ô÷÷›ššÈdòŠ+:::\\\¤ttt¬Y³­nÚ´éüùó{öìQ¸TÎv…F&“ßzë­ï¾û.11F†‡‡ét:,[XXXXXÀòÐÐP@@º£¾¾>, ÍÍÍGFFŽ…ÏçK$8€™™Ú’J¥ttf4CCC€ôeólIç£D9*8æ),,tuu…Uooï«W¯¢G@(fgg¯_¿8::NNN677×ÖÖÂOè|¸ÿ~^^ž‹‹ \円†CCC°ÜÑÑ®–Ë—/g³Ù‡ÃáüôÓOhûþþ~Xèë냳,‘Här¹°:88 r–È£°Â¤óQ¢œ:7::Êãñúè#të•+W¶nÝŠö)Ó¹ZiooŸÏx5ŽB_Tpž#‘‘‘EEE°Êf³Oœ8A"‘Ðúúú±±±l6Vƒ‚‚®_¿ŽüÁÌÉÉ œ3Kaa¡™™|·Pvvöš5kH$:yò¤¹¹ùÊ•+ÃÂÂÐã~ff&66ÖØØØÈÈ(66vff.†666FFF|ôè‘««+ÀÄÄ<¹ZŽŽŽ¾÷Þ{T*•N§³X,¡P‡™••egg·bÅŠsçÎÉÈS¨DaR…Á…ÌûœÞÊä‹šš …‚ œÙ‘‘™]îÞ½kll ÷mmm511ùã?ÕÓÓƒ¯iG¹†††ñ'„……íÚµkhhÈØØ¸ªª AóçÏÛÛÛ755577oذÅbÁ– ½½½MMMëÖ­ûðÃááµyóæ¶¶¶ÊÊJ++«S§NIsÒe&“éååÕÙÙÙÔÔäààpêÔ)(,00Ïç§§§>|(=@…J”$• *Ÿp…¾,’sT*Ý÷ƒ>8vì‚ l6ÛÇÇGºO%/>ŸO§ÓœœÐ¡ÚØØäææÂrKK Z¶µµår¹°\RR²víZ8_MMMèH­¬¬:7==M"‘îݻ㹹¹VVVP‡Ã äg@¡%Ie‚Ê'\]«%ÆK/½ P(&&& ²o}khh~WPPÐ7Q¸TÊŸç`œB¡„‡‡ÿùçŸQQQ0ò×_Y[[ò¿¿?,÷ôôÐh4x]êããÓÝÝ ãhc[[Ûþþ~…c‹Åp8+++´¥©©)@WWW~¯Ù”Ì–t>J”£ç¹téÒ›o¾ «L&óÓO?E¯$ !!aË–Çosww¿sçNII‰ŸŸß<õõõ%''{{{ÇÄÄÀˆ©©iOO,744|öÙg°L¥RQûù|~ee%ŒÃÏ; ­­ Ú ±±1‰Dêêê‚ÕÎÎN333X&g®Ù”Ì–t>Jæ`ΣR uWPVVæëëK§ÓGGGáÖ¿ÿþÛÆÆfãÆÅÅÅmmm¹¹¹ööönnnB¡‘Z÷ïßoggÇ`0Ð>ÑÕRþ®A±Xìíí}úôigbbRXXˆ ÈÉ“'œœš›››››ÝÜÜöíÛ{;xð``` ¼ýذaÃàL1Œöööêêjkkë'NÀ ìmlll÷î݆††áááÎWFF†……•JŽŽžššš™™qww'“É2Îñx¼ÐÐPCCCvøðá©©©ÙœC •(Lª0¸HÎaܺ)Lº%j¼BÁY|žç–-[ñ,$U™’9Jƒ¯–ZîVÁÃ*¸sXw«(øŽ³6}_;¨«SôÂJù«Oœg™»íyÿÜó~žÃ*¸sXw«àÎa•ÿÿP0***BBBÄ-ÉF|Wù@>P***†Yà‚  !˜ ‚  !˜ ‚ ¤Ü5¿899‰Ê†††³gÏŽˆˆÐÑÑy<Þ¹sçjjj¨Tª¹¹¹ƒƒÃÚµkñx<êkjjšÃáDíwïÞýðáC …bjjúÆàDýôS333‡”””®®®’’´½½½øFWUUÕœ9sF#…B&“)nAsÖÓÓ333 ïèèèëëSVz’ŒZˆUUUÞÞÞýýý€òòòuëÖñx<€@ HIIñôôôôôLII/_¾trrª¯¯÷õõ}üøqVV–¯¯/™L>zô(‹ÅB£Iz¡§^¶l™¿¿ii)`hhHª;z Éò0p8ܪU«>žÇãHu×ÑщŒŒ”,KbffÖÙÙ `±X4MrydiiùâÅ ´Ÿ —ËUSSsuu½v횺ºú7¤ºkjjº»»K–LJ …ÿtŠŠŠ££#:;WWWÛÚÚ~üñÇ# "nß¾½eËccc ‹ 6”••ÉJ^¾¾¾D"qÙ²e"‘èêê @g!YýL&“µ´´–/_6)£|ûí·+V¬X±b…··wii©¯¯/jWSSËÈÈØºu«¾¾¾€ÍfKyùòåðððùóçkkkÛÛÛoذm&+¥Q1–›--­¯¾úê—_~9yò¤ÈØÕÕååå%ªŠ†}sss@ww·™™j™r:::LLLÐäõôôš››íííÅ477OŸ>]T]²dÉñãǃƒƒåÏËÂÓét¡Pˆ–¦¦¦===ùÉûµ‘H„aeYýL"‘†µzËÈÌÌŒG‡4ÐÑÑqâÄ .—kee%î2,fggçÔ©SEG§L™"?¥Q1!¾zõª¨¨ÈÞÞþÌ™3ûöíCÚÚÚ è¥¢Óß?' úúú]]]èe477?xðà믿–ê500  cbbAyyù¾}û®\¹"Ë}„ ‹›… ¢U—óçÏÏ;W´Läñx¹¹¹â½ikkËápšššjkkwîÜ9Â຺º***T*U[gg'‰DBDVòCCCx<¾··wä×"«ŸG~ÿ«®®îêêzýúuAp8ÜÀÀ@LLLLLÌgŸ}ÆçóEwl’1 ÛÚÚ,,,Ðêßÿ-?¥Q1ê©AøøøÕ«W8p ®®®ªª µ;88¤§§www·¶¶îÚµëÊ•+â^Ë–-;{öl[[[[[ÛéÓ§»»»eyáp¸¨¨¨ÊÊJ6›Íçó ‚ººº,w6›}ãÆ É2€Á`Ðh´ÞÞÞ†††P©Ô5kÖ ‡‚‚‚ètúŽ;>|ØÑÑqïÞ½ˆˆ‰äááño¿¨¨8::ž:uÊÚÚZrPVpàääôÓO?Q©TtWÈÅÅEjòè^Oii)‡Ã_ɽùý< .—+Õ®©©ÉápУ|>_ „ÁÁAtyÇáp¤z‘ÉäÔÔÔÚÚZ&“ùèÑ£sçΡJUJ²õˆxåʃáççG ¶oß~êÔ)[[Û &'&&†„„àp8GGǰ°0ñ/z@@Ç‹ŠŠâñx . Cí’^jjj{÷îMMM}õꕉ‰ÉÁƒÕÔÔd¹3Œ'N KCñ2`óæÍhÁÀÀÀÎÎ.--M4e‰Ä´´´¬¬¬”””ÎÎNcccgggtñ.ÂÉÉ©¸¸ØÓÓS²äß¶m[bbbxx¸ªªê—_~€Ãá$“×ÖÖ>sæ …BÙ´iÓ½{÷FØÿ’=&µ™‘‘‘­­­——×Í›7%Nœ8‘H$2™L"‘¨¥¥ûÑGùûû;;;ïÚµ«¨¨HÒ‹L& %$$ôõõÙØØ„‡‡?~|ä)É'¾@ÉÏÏ÷õõ½sçÎAÞ{ª«« ¦M›†V+++³³³ÓÓÓÇÊÉÉ)//O4G÷xC¢pZ[[9òìÙ³'Oždff¾Í6Å0ÞÛ?ñAÎÚµky<Þþýû †±±±››ÛÊ•+ 2Rðx|pppppðÿ"8œš!˜ ‚  !˜ ‚  !˜ ñméíå¾~-ý/i‘#eûFÎS}IX,3€–V‡²ßüGˆ“&MòññQV*㔺:ga¡¦ìDÆ“&M·àો߆?þètv>(/ßemm¬ìtÆ1pøV\½ú˜@P!ð×®=Vv.ã(ıƒ HnîoP ÊÍ}ç–· qìÔÖ>õêŸ_‡tw3ëêž+5ñ âØ¹r¥^U–UUñEE”›Ï¸ qŒÂÂÂ:>­òùC……µP¹Y_ ÇÈýûOûúxâ–¾>Þ¯¿>SV>ã(Ä1RTTG ü§÷\aa²òï@!Žýzƒ@0$n„ׯ7ðx|ee5®B ·n=áñ¤¼á…Çã——?y÷ù¼@!Ž…Ë—kñx)?hÇãq—/ÃÙy,@!Žšþ~ÞíÛH½A„ååOX¬wŸÕx qÔ””4‰vm$áó‡JJße>ïð¡‡QC§³™Ì7n¾ÿ¾päÈ¿o"üøc ]ݱ¼ˆèCþœtÔèêjŠëLSS 0y²¾ò2z€S3@!B0"@!B0"@!B0"@!B0"@!B0"@!B0"@!B0"@!B0"@!B0"@!B0"@!B0"@!B0"@!B0"@!B0"@!B0"@!B0ÂÞ›––¦8ãŽK—^||L•ˆr UH… ‡“ò–ý<^04Ô§ìD”ƒ¢ô£ÈWçåå­Y³F!X&??ß××WQÑà‚  !˜ ‚  !˜ ‚  !˜ ñ?àĘ2eJ```OOx6›5{öì &ÌŸ?ÿÇ"_++«aûjnnn8®¹¹y$Á?d ‡SUUE¥R;::²²²˜Læ¼yó z¨¿¿ÿ“O>©©©‰‹‹«««Û»wï… –.]:4ôÏÿˆ|þüyCCƒ(N¯¬¬apŒÐÚÚJ"‘”pbDAòòòMYž={&ª …BGGÇèèh´éàà D X,Ö”)SÒÓÓQ_WW×}ûö‰Žž;wÎÍÍMS~pŒðìÙ³ª"//Oúyw#âÕ«WMMMét: 77wúôél6Àçó£¢¢ ¢¢¢ø|~ss3‡+//777¯¨¨8xð ¹¹ùĉE㇤àÚµkvvvÙÙÙ@ Õ=…dy8.<<üÆh•B¡DGGãñxQMMͨ¨( …‚V}||òóó‘ÿŸ ¼½½euȰà cýúõ$ÉÌÌ,22’ÇãIM^Væ8.33ÓÚÚzâĉǎËÎΞ:uª¶¶öäô‡»pႵµµžž^||<`áÂ…##£7¢ŠEQŠ#ƒ‚‚ººº ûí7ÔçååõâÅ‹ÆÆÆyóæíÙ³ýRº¹¹Ý¾};&&ÆÆÆ¦±±±©©iÁ‚‘‘‘²¼X,–ººzJJ •JÍÈÈ ,ëøñãRÝ :Œ +ƒÿZ‚ÔÔÔèèè ‚~…zzz†]Ô¯¿þjhhˆúþùçŸFFF=BÉÄÞÞ^ cDŽ H@@€³³sKKKccã¬Y³bbb¤&/>b‰—~~~L&óìÙ³€5kÖ0™ÌÔÔT@oo¯ÔC½¼½½étzzz:àõë×Êß©étº™™™]LLŒÈ8sæL*•Š–ËÊÊæÌ™ƒöEcc#‚ 3fÌ(,,D>yòDT–ô¢Ñhªªª'Nœ ÓéB¡°¿¿hhH–»œ«­«««I$’ÈwÓ¦M{÷îE„B¡,]ºT<¦œàƒƒƒx<þ÷ßGí………–––R“—#Äúúz4Ô°2zRÉC½îܹ#Þòƒ"‚ ‡ÂãñÝÝÝ"‹†††ø­­­öÅàà z´©©I2ޤ‚ ÷ïß÷ööÖÔÔtpp¸yó¦w9W1L+999öööhÙÈȨ¬¬l˜KrròòåËE¾–––B¡L&§¦¦"r…( ÞÞÞàr¹¨½±±QCCCjòâByúô©¸EÁ¥–¥ö௿þoùþ¯íí퉉‰...;wîI$’¨×ètúƒP»ªª*ÀÄÄäùóç¨åñãÇGŽ‘åÅår…Bá¥K—h4ZppðÊ•+i4š,÷‚ Hrr²»»;Z 8tèèÀf³ãââ\]]E–Å‹÷÷÷ß¿¿¬¬ŒL&0¸¡¡!ommEµ´´˜ššÊIÝ3zùòåȯEV?«¨`cçDQŠo‡††\\\>L£ÑŒŒŒ®^½ŠÚ·nÝêíín|,X°`óæÍâ_ʃÚÙÙ555555-Z´($$D–—ËÕÐÐ(((èééIKKÓÐÐàr¹²Üå¬E;,fff =Ú××7cÆŒ/¾ø¢¤¤äéÓ§………666‹-âñxˆØØ³qãFkkk'''QLш('¸¿¿¿³³skkkSS“Mtt´ÔäÑ­ÇŒŒŒ¾¾>OOO0âQ²Ç¤¶D;¿¿¿ÿŸøxšþùçÙ³g£nQQ‘±±1FC„ÉdnذAWWW__?44”Íf‹ ‘ÇãEFFš˜˜hkkûùùÑétÔ.é… H^^Þ´iÓÔÔÔfΜY\\,Ç]ÎJKĤI“ÄW‚°X¬;wΚ5‹H$ÚØØÄÆÆr8‘/ú¡VTT’’’†Ùå§ÑhëÖ­Ó××766Þ¾};—Ë••|ll¬ŽŽÎ´iÓŠ‹‹G.D©=&Ù’Ïç/^¼XKKëM¸‚…¨È'´áƒ±胱ŠÒ6Ö(D&€B„`(D&€B„`(D&€B„`(D&Pä›ÊË˱ö¼1äG]]£Áwß@Þ …éGQ ·®!˜ ‚  !˜ ‚ þ1N[ánsHIEND®B`‚XQilla-2.3.0/docs/dom3-api/structXQillaAllocator_1_1rebind.html0000644000151400015140000000761611653571065021221 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

XQillaAllocator< _Tp >::rebind< _Tp1 > Struct Template Reference

#include <XPath2MemoryManager.hpp>

List of all members.

Public Types

typedef XQillaAllocator< _Tp1 > other

template<class _Tp>
template<class _Tp1>
struct XQillaAllocator< _Tp >::rebind< _Tp1 >


Member Typedef Documentation

template<class _Tp>
template<class _Tp1 >
typedef XQillaAllocator<_Tp1> XQillaAllocator< _Tp >::rebind< _Tp1 >::other

The documentation for this struct was generated from the following file:
XQilla-2.3.0/docs/dom3-api/DOMXPathException_8hpp.html0000644000151400015140000000662711653571066017301 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMXPathException.hpp File Reference

#include <xercesc/dom/DOMException.hpp>
Include dependency graph for DOMXPathException.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  xercesc::DOMXPathException

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/inherit_graph_20.png0000644000151400015140000000440211653571066016030 00000000000000‰PNG  IHDRØ(У£bKGDÿÿÿ ½§“·IDATxœíœHSßÇï¾–N‡ZéæÔÍÍ9•‰š&"jæ_E¹À,Ë@,AÜ"¡TLB1‰RËRÑ 0›fþaÆ”~øƒ2·ÊP1iš¶ÙÜœ?¶Ï.·ÝýðCfûÖyýuî¹çyžó<ç}ï¹w#äwó¿ß=A !V"Ä*€B„X[ð===………¿k*¿ŠË—/GFFb‡?qvvöéÓ§<oÓgù»hnnNMMÅ÷l!jjjÚ¬ù@þRH$’A|F„XPˆ« b@!B¬(DˆUðg ‘„ÃÛÛ;99ynn?@­V ‚àà`GGǽ{÷^»vM«Õb¶¾¾¾¿‰'‘Hãããè‡0>>N| ÜX°?Ýü`‹¹ÿ:þL!"òòåK™L6==]SS£T*CCCÐS‹‹‹{öì,..~ýúuNNÎýû÷cccu::`rrrxxs¥P(z{{ñÎ[ZZ7-~it‹¹ÿ"þX!R©T:îééÕÚÚÊb±ÊÊÊÐST*µ»»ûàÁƒçÈ‘#“““555耘˜˜ææfÌU[[þ;AÒÓÓ322fff6-M‹n1÷_Äb[[›§§§B¡@äáÇG­V#²¶¶&ÜÜÜh4š@ X[[Cwîîn///±Xœ——çååE¥R“““±›Ñ Aööö   2™Ìb±êëëÑjµFÍñ™M‡D"={¶££=lhhÈÍ͵±±ÁP(@ÐÐЀòx¼¦¦&l‡jiiIHHÀ;ÌÊÊò÷÷OKK#þšóñãÇ»vírpppww/**Â&pïÞ½€€*•ZTTT__¿sçNggç+W®˜ªƒN§+))áp8ŽŽŽáááýýý뉾°°púôiWWWƒÁçó———Mù1Zy‹¹³CË.‰üüüh4ZffæÊÊŠÑU°ÀÞð%’““O:533ãææÖßßv=ztjjJ"‘„††^ºtill AøøøgÏžåççs¹\‰D"•JÃÂÂø|¾)+•JeggWYY)“ÉîÞ½»eË•JURRbÔ|aaáÎ;Ä6‚ cccø9nÛ¶ €^BsssI½xñÂÍÍ µýøñ#NBÝ:88ÌÏÏc>ÑÆè訽½}MM Í T*mmmÏœ93==Êúëׯ¨Ibb¢R©¬®®F䨱cJ¥²ªª Aùùy£u(--¥ÑhB¡ðË—/h3ÑIIIÑÑÑŸ>}’H$ùùù¦ü#ZÌÝhvhôŒŽŽöõõ±Ùìüü|‹B¤±±ñ‡üÁ:…¨P( FPP>¤¿¿¿L&CÛ]]]!!!è% ÀÏÏO(¢g?|ø€µ‰Vr¹|ë֭ׯ_W(z½~qqQ§Ó™27“çâ«W¯\]]1ÛŒŒŒœœ@CCCll,Þ'Ö(//wrršššÂ¤°²²222¢R©t:]OOÞäÍ›7€ÕÕUƒ6:€X‡S[[‹M¯®®/D£ÑWWWmllÞ½{‡š…B6›mÊ1¢ÅÜf‡_e@cc#›Í6¿:`£„(((°±±™ÅzÈd2þFëììŒNquu=+•J‰~ˆV€çÏŸ'$$P(”ˆˆˆ'Ož˜17“§:zG|ÿþ=z¶µµÕÇÇÇ”bD‹¹ÍÎàŽØÜÜÌb±Ì¯Ø!êtº˜˜˜«W¯Êår:ÞÖÖ†ögff&$$ /ÿaaaçÏŸÇ 1///((H*•J¥ÒðððÔÔTSV†L&·´´ÌÍÍݾ}›L&k4Sæfž±oÄbñ¡C‡ ÆÂÂzöû÷ï~~~‘‘‘£££B¡Ë冇‡///ÜJŸ;w. ** óIT ¢¢}IBW”D"uvvªÕê‹/b»°E!ëP^^N£Ñ=z$“É:;;Y,QˆÑÇŽŽž˜˜J¥\.777×”bD‹¹Í]娨¨±±±___ì‚7ÃñÆÁÁÁè†ÛÚÚêîî.—ËJ¥2%%eûöí...iiijµ/Äååe>Ÿïáááì윘˜¨P(Ð~¢: [[[‘HdÆ߯o:L&3)) ÿP©TÙÙÙ\.·°°pii _t€X,FäæÍ›ýÄÛmll,º´´tÇŽL&óÖ­[‰‰‰4 ¬CˆÄ:hµÚ’’6›M¡PöíÛ×××gTˆÑårùÉ“']\\ÜÝݳ²²4)?F+o1wbvhÙ«««ÿùçWW× .`Û´6fk†@0ð×ÿú! ñý@òÿ"ä§prrJOOÿy?PˆŸ‚F£UVVþ¼(DˆU…±  !V"Ä*€B„XPˆ«ÀÈ?= _A ›ÉBd2™ðo ›Çc2™ø€] ±à3"Ä*€B„XPˆ« bü ÞOck_IEND®B`‚XQilla-2.3.0/docs/dom3-api/inherit_graph_15.map0000644000151400015140000000036211653571066016026 00000000000000 XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMCDATASection.html0000644000151400015140000002447111653571066020640 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc::DOMCDATASection Class Reference

CDATA sections are used to escape blocks of text containing characters that would otherwise be regarded as markup. More...

#include <DOMCDATASection.hpp>

Inheritance diagram for xercesc::DOMCDATASection:

List of all members.

Public Member Functions

Destructor
virtual ~DOMCDATASection ()
 Destructor.

Protected Member Functions

Hidden constructors
 DOMCDATASection ()
 DOMCDATASection (const DOMCDATASection &other)

Detailed Description

CDATA sections are used to escape blocks of text containing characters that would otherwise be regarded as markup.

The only delimiter that is recognized in a CDATA section is the "]]&gt;" string that ends the CDATA section. CDATA sections cannot be nested. Their primary purpose is for including material such as XML fragments, without needing to escape all the delimiters.

The data attribute of the DOMText node holds the text that is contained by the CDATA section. Note that this may contain characters that need to be escaped outside of CDATA sections and that, depending on the character encoding ("charset") chosen for serialization, it may be impossible to write out some characters as part of a CDATA section.

The DOMCDATASection interface inherits from the DOMCharacterData interface through the DOMText interface. Adjacent DOMCDATASection nodes are not merged by use of the normalize method of the DOMNode interface. Because no markup is recognized within a DOMCDATASection, character numeric references cannot be used as an escape mechanism when serializing. Therefore, action needs to be taken when serializing a DOMCDATASection with a character encoding where some of the contained characters cannot be represented. Failure to do so would not produce well-formed XML.One potential solution in the serialization process is to end the CDATA section before the character, output the character using a character reference or entity reference, and open a new CDATA section for any further characters in the text node. Note, however, that some code conversion libraries at the time of writing do not return an error or exception when a character is missing from the encoding, making the task of ensuring that data is not corrupted on serialization more difficult.

See also the Document Object Model (DOM) Level 2 Core Specification.

Since:
DOM Level 1

Constructor & Destructor Documentation

xercesc::DOMCDATASection::DOMCDATASection ( ) [inline, protected]
xercesc::DOMCDATASection::DOMCDATASection ( const DOMCDATASection other) [inline, protected]
virtual xercesc::DOMCDATASection::~DOMCDATASection ( ) [inline, virtual]

Destructor.


The documentation for this class was generated from the following file:
XQilla-2.3.0/docs/dom3-api/namespacexercesc.html0000644000151400015140000014441111653571065016401 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

xercesc Namespace Reference

This class holds the list of registered DOMImplementations. More...

Classes

class  MemoryManager
 Configurable memory manager. More...
class  XMLDeleter
class  XMLPlatformUtils
 Utilities that must be implemented in a platform-specific way. More...
class  DOMAttr
 The DOMAttr class refers to an attribute of an XML element. More...
class  DOMCDATASection
 CDATA sections are used to escape blocks of text containing characters that would otherwise be regarded as markup. More...
class  DOMCharacterData
 The DOMCharacterData interface extends DOMNode with a set of attributes and methods for accessing character data in the DOM. More...
class  DOMComment
 This interface inherits from CharacterData and represents the content of a comment, i.e., all the characters between the starting ' <!--' and ending '-->'. More...
class  DOMConfiguration
 The DOMConfiguration interface represents the configuration of a document and maintains a table of recognized parameters. More...
class  DOMDocument
 The DOMDocument interface represents the entire XML document. More...
class  DOMDocumentFragment
 DOMDocumentFragment is a "lightweight" or "minimal" DOMDocument object. More...
class  DOMDocumentRange
class  DOMDocumentTraversal
 DOMDocumentTraversal contains methods that create DOMNodeIterators and DOMTreeWalkers to traverse a node and its children in document order (depth first, pre-order traversal, which is equivalent to the order in which the start tags occur in the text representation of the document). More...
class  DOMDocumentType
 Each DOMDocument has a doctype attribute whose value is either null or a DOMDocumentType object. More...
class  DOMElement
 By far the vast majority of objects (apart from text) that authors encounter when traversing a document are DOMElement nodes. More...
class  DOMEntity
 This interface represents an entity, either parsed or unparsed, in an XML document. More...
class  DOMEntityReference
 DOMEntityReference objects may be inserted into the structure model when an entity reference is in the source document, or when the user wishes to insert an entity reference. More...
class  DOMError
 DOMError is an interface that describes an error. More...
class  DOMErrorHandler
 Basic interface for DOM error handlers. More...
class  DOMException
class  DOMImplementation
 The DOMImplementation interface provides a number of methods for performing operations that are independent of any particular instance of the document object model. More...
class  DOMImplementationList
 The DOMImplementationList interface provides the abstraction of an ordered collection of DOM implementations, without defining or constraining how this collection is implemented. More...
class  DOMImplementationLS
class  DOMImplementationRegistry
class  DOMImplementationSource
class  DOMLocator
 DOMLocator is an interface that describes a location. More...
class  DOMLSException
class  DOMLSInput
 This interface represents a single input source for an XML entity. More...
class  DOMLSOutput
 This interface represents an output destination for data. More...
class  DOMLSParser
 DOMLSParser provides an API for parsing XML documents and building the corresponding DOM document tree. More...
class  DOMLSParserFilter
class  DOMLSResourceResolver
 DOMLSResourceResolver provides a way for applications to redirect references to external entities. More...
class  DOMLSSerializer
class  DOMLSSerializerFilter
class  DOMMemoryManager
 The DOMMemoryManager interface exposes the memory allocation-related functionalities of a DOMDocument More...
class  DOMNamedNodeMap
 DOMNamedNodeMaps are used to represent collections of nodes that can be accessed by name. More...
class  DOMNode
 The DOMNode interface is the primary datatype for the entire Document Object Model. More...
class  DOMNodeFilter
 Filters are objects that know how to "filter out" nodes. More...
class  DOMNodeIterator
 DOMNodeIterators are used to step through a set of nodes, e.g. More...
class  DOMNodeList
 The DOMNodeList interface provides the abstraction of an ordered collection of nodes. More...
class  DOMNotation
 This interface represents a notation declared in the DTD. More...
class  DOMProcessingInstruction
 The DOMProcessingInstruction interface represents a "processing instruction", used in XML as a way to keep processor-specific information in the text of the document. More...
class  DOMPSVITypeInfo
 The DOMPSVITypeInfo interface represent the PSVI info used by DOMElement or DOMAttr nodes, specified in the schemas associated with the document. More...
class  DOMRange
class  DOMRangeException
 Range operations may throw a DOMRangeException as specified in their method descriptions. More...
class  DOMStringList
 The DOMStringList interface provides the abstraction of an ordered collection of strings, without defining or constraining how this collection is implemented. More...
class  DOMText
 The DOMText interface inherits from DOMCharacterData and represents the textual content (termed character data in XML) of an DOMElement or DOMAttr. More...
class  DOMTreeWalker
 DOMTreeWalker objects are used to navigate a document tree or subtree using the view of the document defined by their whatToShow flags and filter (if any). More...
class  DOMTypeInfo
 The DOMTypeInfo interface represent a type used by DOMElement or DOMAttr nodes, specified in the schemas associated with the document. More...
class  DOMUserDataHandler
 When associating an object to a key on a node using setUserData the application can provide a handler that gets called when the node the object is associated to is being cloned or imported. More...
class  DOMXPathEvaluator
 The evaluation of XPath expressions is provided by DOMXPathEvaluator. More...
class  DOMXPathException
class  DOMXPathExpression
 The DOMXPathExpression interface represents a parsed and resolved XPath expression. More...
class  DOMXPathNamespace
 The DOMXPathNamespace interface is returned by DOMXPathResult interfaces to represent the XPath namespace node type that DOM lacks. More...
class  DOMXPathNSResolver
 The DOMXPathNSResolver interface permit prefix strings in the expression to be properly bound to namespaceURI strings. More...
class  DOMXPathResult
 The DOMXPathResult interface represents the result of the evaluation of an XPath 1.0 or XPath 2.0 expression within the context of a particular node. More...
class  StDOMNode

Typedefs

typedef DOMNodeDOMNodeSPtr
typedef DOMAttrDOMAttrSPtr
typedef DOMElementDOMElementSPtr

Functions

 MakeXMLException (XMLPlatformUtilsException, XMLUTIL_EXPORT) inline XMLSize_t XMLPlatformUtils

Detailed Description

This class holds the list of registered DOMImplementations.

DOMLSSerializerFilter.hpp: interface for the DOMLSSerializerFilter class.

DOMLSSerializer provides an API for serializing (writing) a DOM document out in an XML document.

DOMLSParserFilter.hpp: interface for the DOMLSParserFilter class.

This interface permits a DOM implementer to supply one or more implementations, based upon requested features and versions.

Implementation or application can register DOMImplementationSource to the registry, and then can query DOMImplementation based on a list of requested features.

This provides an application with an implementation independent starting point.

See also:
DOMImplementation
DOMImplementationList
DOMImplementationSource
Since:
DOM Level 3

Each implemented DOMImplementationSource object is listed in the binding-specific list of available sources so that its DOMImplementation objects are made available.

Since:
DOM Level 3

DOMLSParserFilter provide applications the ability to examine nodes as they are being created during the parse process.

DOMLSParserFilter lets the application decide what nodes should be in the output DOM tree or not.

Since:
DOM Level 3

The XML data is written to an output stream, the type of which depends on the specific language bindings in use. During serialization of XML data, namespace fixup is done when possible.

DOMLSSerializer accepts any node type for serialization. For nodes of type Document or Entity, well formed XML will be created if possible. The serialized output for these node types is either as a Document or an External Entity, respectively, and is acceptable input for an XML parser. For all other types of nodes the serialized form is not specified, but should be something useful to a human for debugging or diagnostic purposes. Note: rigorously designing an external (source) form for stand-alone node types that don't already have one defined in seems a bit much to take on here.

Within a Document or Entity being serialized, Nodes are processed as follows Documents are written including an XML declaration and a DTD subset, if one exists in the DOM. Writing a document node serializes the entire document. Entity nodes, when written directly by write defined in the DOMLSSerializer interface, output the entity expansion but no namespace fixup is done. The resulting output will be valid as an external entity. Entity References nodes are serializes as an entity reference of the form "&amp;entityName;") in the output. Child nodes (the expansion) of the entity reference are ignored. CDATA sections containing content characters that can not be represented in the specified output encoding are handled according to the "split-cdata-sections" feature.If the feature is true, CDATA sections are split, and the unrepresentable characters are serialized as numeric character references in ordinary content. The exact position and number of splits is not specified. If the feature is false, unrepresentable characters in a CDATA section are reported as errors. The error is not recoverable - there is no mechanism for supplying alternative characters and continuing with the serialization. All other node types (DOMElement, DOMText, etc.) are serialized to their corresponding XML source form.

Within the character data of a document (outside of markup), any characters that cannot be represented directly are replaced with character references. Occurrences of '<' and '&' are replaced by the predefined entities &lt; and &amp. The other predefined entities (&gt, &apos, etc.) are not used; these characters can be included directly. Any character that can not be represented directly in the output character encoding is serialized as a numeric character reference.

Attributes not containing quotes are serialized in quotes. Attributes containing quotes but no apostrophes are serialized in apostrophes (single quotes). Attributes containing both forms of quotes are serialized in quotes, with quotes within the value represented by the predefined entity &quot;. Any character that can not be represented directly in the output character encoding is serialized as a numeric character reference.

Within markup, but outside of attributes, any occurrence of a character that cannot be represented in the output character encoding is reported as an error. An example would be serializing the element <LaCa&#xF1;ada/> with the encoding="us-ascii".

When requested by setting the normalize-characters feature on DOMLSSerializer, all data to be serialized, both markup and character data, is W3C Text normalized according to the rules defined in . The W3C Text normalization process affects only the data as it is being written; it does not alter the DOM's view of the document after serialization has completed.

Namespaces are fixed up during serialization, the serialization process will verify that namespace declarations, namespace prefixes and the namespace URIs associated with Elements and Attributes are consistent. If inconsistencies are found, the serialized form of the document will be altered to remove them. The algorithm used for doing the namespace fixup while seralizing a document is a combination of the algorithms used for lookupNamespaceURI and lookupPrefix. previous paragraph to be defined closer here.

Any changes made affect only the namespace prefixes and declarations appearing in the serialized data. The DOM's view of the document is not altered by the serialization operation, and does not reflect any changes made to namespace declarations or prefixes in the serialized output.

While serializing a document the serializer will write out non-specified values (such as attributes whose specified is false) if the output-default-values feature is set to true. If the output-default-values flag is set to false and the use-abstract-schema feature is set to true the abstract schema will be used to determine if a value is specified or not, if use-abstract-schema is not set the specified flag on attribute nodes is used to determine if attribute values should be written out.

Ref to Core spec (1.1.9, XML namespaces, 5th paragraph) entity ref description about warning about unbound entity refs. Entity refs are always serialized as &foo;, also mention this in the load part of this spec.

When serializing a document the DOMLSSerializer checks to see if the document element in the document is a DOM Level 1 element or a DOM Level 2 (or higher) element (this check is done by looking at the localName of the root element). If the root element is a DOM Level 1 element then the DOMLSSerializer will issue an error if a DOM Level 2 (or higher) element is found while serializing. Likewise if the document element is a DOM Level 2 (or higher) element and the DOMLSSerializer sees a DOM Level 1 element an error is issued. Mixing DOM Level 1 elements with DOM Level 2 (or higher) is not supported.

DOMLSSerializers have a number of named features that can be queried or set. The name of DOMLSSerializer features must be valid XML names. Implementation specific features (extensions) should choose an implementation dependent prefix to avoid name collisions.

Here is a list of properties that must be recognized by all implementations.

"normalize-characters"
true
[ optional] (default) Perform the W3C Text Normalization of the characters in document as they are written out. Only the characters being written are (potentially) altered. The DOM document itself is unchanged.
false
[required] do not perform character normalization.
"split-cdata-sections"
true
[required] (default) Split CDATA sections containing the CDATA section termination marker ']]>' or characters that can not be represented in the output encoding, and output the characters using numeric character references. If a CDATA section is split a warning is issued.
false
[ required] Signal an error if a CDATASection contains an unrepresentable character.
"validation"
true
[ optional] Use the abstract schema to validate the document as it is being serialized. If validation errors are found the error handler is notified about the error. Setting this state will also set the feature use-abstract-schema to true.
false
[ required] (default) Don't validate the document as it is being serialized.
"expand-entity-references"
true
[ optional] Expand EntityReference nodes when serializing.
false
[required] (default) Serialize all EntityReference nodes as XML entity references.
"whitespace-in-element-content"
true
[required] ( default) Output all white spaces in the document.
false
[ optional] Only output white space that is not within element content. The implementation is expected to use the isWhitespaceInElementContent flag on Text nodes to determine if a text node should be written out or not.
"discard-default-content"
true
[required] (default ) Use whatever information available to the implementation (i.e. XML schema, DTD, the specified flag on Attr nodes, and so on) to decide what attributes and content should be serialized or not. Note that the specified flag on Attr nodes in itself is not always reliable, it is only reliable when it is set to false since the only case where it can be set to false is if the attribute was created by a Level 1 implementation.
false
[required] Output all attributes and all content.
"format-canonical"
true
[optional] This formatting writes the document according to the rules specified in . Setting this feature to true will set the feature "format-pretty-print" to false.
false
[required] (default) Don't canonicalize the output.
"format-pretty-print"
true
[optional] Formatting the output by adding whitespace to produce a pretty-printed, indented, human-readable form. The exact form of the transformations is not specified by this specification. Setting this feature to true will set the feature "format-canonical" to false.
false
[required] (default) Don't pretty-print the result.
"http://apache.org/xml/features/dom/byte-order-mark"
false
[optional] (default) Setting this feature to true will output the correct BOM for the specified encoding.
true
[required] Don't generate a BOM.
"http://apache.org/xml/features/pretty-print/space-first-level-elements"
true
[optional] (default) Setting this feature to true will add an extra line feed between the elements that are children of the document root.
false
[required] Don't add the extra line feed.

See also the Document Object Model (DOM) Level 3 Load and Save Specification.

Since:
DOM Level 3

DOMLSSerializerFilter provide applications the ability to examine nodes as they are being serialized.

DOMLSSerializerFilter lets the application decide what nodes should be serialized or not.

The DOMDocument, DOMDocumentType, DOMNotation, and DOMEntity nodes are not passed to the filter.

Since:
DOM Level 3

Typedef Documentation


Function Documentation

xercesc::MakeXMLException ( XMLPlatformUtilsException  ,
XMLUTIL_EXPORT   
)
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMDocument__inherit__graph.png0000644000151400015140000003637211653571066023301 00000000000000‰PNG  IHDRÀÈðc¦ýbKGDÿÿÿ ½§“ IDATxœíÝi\×ÚðBÙ‘%ì* KA@P´U@« ¶.  U«Þ‚Vm¯^—Š\K­[õµq©Å«ˆE´ZãÂb•E¸‚¨Ö$d!mÞÓ››BŠyþ??LNæ9óÌŒy83“Ì0 CúNEÙ ÀPú (ôPè'ÕÞÌ”““?Щ€úæ›o|}}•½Ò«ÚÔÔtóæÍÐÐÐÎ sçÏŸÿâ‹/”½Õ«ŠKKK¸<@e§@À9Pè'( ÐOP@ Ÿ €@?A€~^” eôèÑááá---Ò3p¹Ü˜˜777‰'îÚµK(JbÇŽÛíÞ+³gÏ&ÕÕÕ½é|’ÎyĈS¦L)--UvR ë€"„îÝ»G£Ñ^¿~””Äb±<<<˜L&þ›Íž0aBQQÑž={Š‹‹·lÙröìY???‘H„ÏðâÅ‹GIºb0¹¹¹½ì|¨©©122’nÁs¦ÑhT*uìØ±‹-‚tÐ[X/¤¦¦örÎA!TUU%y)‹}||bccñ—ÑÑÑÞÞÞB¡P2‡Ã=zô‰'ðØ€€€­[·JÞ=uêÔìÙ³%}*î|¨ªª’Þ•ÝrnjjB555)#µ?óIMMUÖÒè«·6½|ù²……ƒÁ@;wÎÞÞžËå"„ALL ™L611‰‰‰ÕÕÕáÖ­[ÖÖÖÙÙÙ;vì°¶¶666—Œ×zF!„²²²\]]544lllΜ9ƒ …2ÃñEôœî†@ ¬^½úêÕ«øËää䨨X"‘(™AKK+&&&99š––†ýw€–žž"oƒtëœÉd~þùçFFF–––ÑÑÑ2“——9@øå—_œœœŒwïÞ}æÌ™1cÆèéémß¾]Á#gÏžurr9räÞ½{B“'OF™ššÊÌ™D"©©©éééá/¯\¹2~üxMMM33³Ý»wK2éÖ'†aGýàƒtuu?þøã+W®àiËL €÷Joªl/G áááË—/oll$“Éxãž={‚ƒƒ_¾|I¥R=<<6oÞŒ‚fÏž}ûöí¸¸8ggg*•ZVV6iÒ¤èèhyQG]]ýèÑ£4íäÉ“ªªªgß¾}2ÙL&>lì6þ:àÂ0¬¨¨H__Ã0¼ô·´´t[©?þøƒL&ã±OŸ>555-))Á»ÕÔÔlmmErF Òc6cÆŒçÏŸS©T—¸¸8™ÉK¥§B‹/f±X?ÿü3BháÂ…,ëØ±c¡ÖÖV™[ a0'Nœ@µµµõ–––²Ùl6›]__ÿå—_®X±‹Åb©©©­\¹òõë×øŸææf™}ž8qÂÂÂâúõë--- ÅÎÎ_„Ì”C0CÊÛ,  ÃÒÒÒÕÕ5..NÒèèèH£Ñði …âî©T*†aø»?–L÷Œ¢Óé$iÿþý C,³Ùl‘H$/\îÚö½€Þ¿ßÈÈH»víÚ-[¶`–œœìçç'ݧ‚Îù|>‘H,//ÇÛ322ìììd&¯ €>|øïªÛ4¾Ðž[ ºsçŽôœ= ¨4mmíÇãouuu=yò„ÃáˆD¢œœéÕìÖ§‹‹ËÙ³g%}¦¤¤à‹™ÒwP0„¼Í‹HúúúkÖ¬‘4¾xñÂÌÌ ¿ÎëççW[[‹·;::"„êêêÆŽ‹·899É‹200¸sçN~~¾¥¥¥¯¯o^^žŠŠŠ¼ðÞ«ªª²µµÅ“755íy º´´ÔÓÓSò244ôüùó†)>~ïÖySS“H$§Bvvv¯_¿~còØ_ œŽŽBˆD"u›ÆÉÛÎæææÝæì™$þ_ËåFFF®\¹oWSS«¬¬ ðôôŸ?îââ"y÷ƒ>Pœï·Y@_½zuøðá™3gFEEIŒŒ$Qƒ‘ŸŸ·ã?ssó/^à-¥¥¥ß}÷¼('‹ÏŸ?O§ÓW­Z5wî\:./¼—0 KLLüôÓOñ—aaa;wî”\sGq¹Ü={öHZ¦NÊf³ïÞ½K¡P{Ù9™L&‰555ø[ÏŸ?·°°P<þÝ©úúúÞ¯‹¼í¬¢ÒÛ]¬©©ùùçŸWTTà…›Çã-\¸0&&æáÇGŽ‘ž³[Ÿ£Fª¨¨¼|òä‰â”xo¼µ*‹W®\¹~ýúsçÎݼy3++ o_°`Á–-[êêê¨Tj@@@BB‚tÔ²e˶mÛV^^^^^¾nݺºº:yQÁßßÿÂ… ,‹Ïç“H$MMMyáíííø¹ÂnÓ¡–––ÆÆÆúúúœœœ   ÚÚÚ7âoÅÆÆ677Ϙ1ãúõëUUU/^œ4i’………ô€šH$GFFzyy™˜˜tÛò:'‘H‹-úꫯjkkËËË¿ùæ›°°0™Éëëë#„NŸ>Íb±~üñÇÞoÅÛ¹‡#³]WW—Ífãïvuuñù|555·cÇ„›Í–µvíÚM›6ݸq£­­ ?¯_DêSJ I½9ÎïÍ9П~úÉÍÍÏçcvñâE333:Ža‹ÅZ±b…¡¡aDD—Ë•> ×ÙÙmnn®§§·xñbƒ·÷ŒÂÓ°µµUSSsttÌÌÌT®àL¢„••UXXX·¯ìp8œ¨¨(MMMggçøøøŽŽI,>žÊÎÎF%$$tkWÜ9N_¶l™¡¡¡™™Ù† x<ž¼äãããõõõmmm333¥3—ŒædNËÜb=çS§NÕÖÖîÙ†a"‘HWW·¶¶yàÀ‘#GZYY9rdñâÅ&&&2û‰D´µµÕÓÓ ÈÌÌ466–—’b΂!…€õâ[Óiiiðýj Ï•+W¬¬¬ÜÜÜð—.\ˆ/))éGW!55uáÂ…o5Aʰû%xë¨TêÒ¥K>|ØÑÑ‘ŸŸ¿}ûöüãÊN €w¡w¤@¦M›6utt¶´´ØØØ¬\¹222RÙIð.@—ªªj||<C]][^^e^^enne{{ǨQ†ÞÞöÞÞö¾¾ºº#”™:oPÐ÷îUýuJSS»P(F]»¶ÑÍ­ûÕs‘H\QQWÒüüçb1æìláímïãcÿá‡v Ψ0T@ýÔÑÁßµëJRRÞˆêÏží"Äæfvnœg¹¹ÏZZØd²îôéNþþÎ>>ššjï,gÞ.( ào)(¨¹zõÑν} 4†a7dg?½q£âáÃ:UU•©SÇúû»øù9›šê hª¼uP@Òðxü»w«(”Šß/oiae8s¦³¿¿3àƒ¡ (P>ül)…R‘•õ¨²²ÑÀ@kêÔ±3g~0NGGCÙÙ P0¸ÔÕµQ(JE~þs‚——ŸŸó'Ÿ¸š›ÿÝ߉ðÖAƒTSS;…ò˜B©ÈË«äó…'Ž™7Ïý“OÜà‹¥`ð€ ;ŸýìÊ•R ¥¢£ƒïåe3w®TR0@C†H$..~‘•õ(3óak+ÇÞÞtî\· <ÇŒ1Vvj`˜‚ †¨¤`€ †°ÎNÁ;O³²J)” ?ºwŸ7ÏÝÐP[Ù©a (xà•ôòå ¥‚Ïúø8yŒÓÒRWvjà}¼Wø|aN㬬ҫW©"‘Ø××aηO?uƒŒ‚¼ŸX¬Îß/»råÑ;OFŒP›5Ëeî\÷éÓà7Nà-‚ ÞsMMíYY²²J<âP0L ¢ìì§éé®_/#Uüüœ—.ýpêÔ±phz¯Ïôøñã” Î"""”µh&³ãÊ•GgÎÜ++{mn®ä6yôh#eå†>Pøû Â`8zö¬1=ýAjjAk+ÇÕÕjéÒ=´µá›¤@®þÐÔÔÔ… PB`¸IKK[´hÑ`( ¸ÎNÁµkeii…yy•ÚÚã/žÜó‰O „àÄ9¡¡A ò ò Ñ˜ééÎ+8}úÞ˜‡…M^°ÀSOOSÙ ‚A¾T €lffúë×ϼwoÛõë==qâÎï¾»RWצìÔ€’Á!<½¢®®:w®ûܹîÕÕÍ©©…¿þZ˜x{Ê”±!!æÎu×Ð );A 0 oììL¶m›SX¸ýÀÅ]]¯¿NùðÃïvï¾ ÒaF ôLjj N\¸pâóçÍ))ù))ù‡ßòñqXºôC¸eÉ01Lw3AÊèÑ£ÃÃÃ[ZZ¤gàr¹111nnn:::'Nܵk—P(”ÄŽ;¶Û×nfÏžM ª««KJJTUUÏŸ?/y+33SMM­¬¬¬ÛrõôôæÌ™S[[Ûûœ«««¬ˆDŸ6Euu5|·÷ï°µ5Ù¾}^iéÎsçVëèh¬^ý—o6mJ{ú”¦ìÔÀ€¦!tïÞ=öúõ뤤$‹åááÁd2ñ·Ølö„ ŠŠŠöìÙS\\¼eË–³gÏúùù‰D"|†/^>>±±±øËèèhooo¡P(™ÃáŒ=úĉxl@@ÀÖ­[%ïž:ujöìÙ’>»ºº\\\"""0 [½zµ§§'ŸÏ—¹Üׯ_#„ÚÛÛe&YUU%½ƒºÅ*hì“nK RSSßboƒ„P(ÊÍ}qÊÒr££ãÖo¾É¨­mQvRàí{û433ÓÜÜœN§c–’’2vìX‡ƒaŸÏŽŽ611166ŽŽŽæóùøçðæÍ›VVVwî܉µ²²222Z¶lƒÁÀ{ë…aØå˗ǧ®®>f̘ӧOc&d†KÔ¥§{Ö””OOO|ÚÔÔ”B¡t[¯„„___<öäÉ“vvvb±kΜ9'Ož”îóÁƒªªª»víRWW/++“ÞzÒËÅG‹mmm†eee¹»»1ÂÔÔôûï¿Ç0ÌÐÐ!D&“%± ¶¶¶úúú»ví’·"¸ùóçoذŸîììÔ×׿råŠÌ¥H6‹¼mõÆÄ ÆòåË -,,¢¢¢x<žôžÍËË뙞´÷²€J<{FÛ¾=ÃÑq«¥åÆå˾yó±H$VvRà­hxxøòåËÉdrAAÞ¸gÏžààà—/_R©TÍ›7ã³Ù³gß¾};..ÎÙÙ™J¥–••Mš4)::Z^‡ÃQWW?zô(F;yò¤ªª*‡ÃÙ·oŸÌp&“‰»M÷¬;EEEúúú†1 „PKK÷ñÂü— „ÐÓ§OMMMKJJðn555[[[»õ¹yóf„P|||·­WZZÊf³Y,Vuuõ‚ &L˜€a‹ÅRSS[¹råëׯ“““BÍÍÍ=G sæÌa±X.\@µ¶¶Jw( ð_ýÕÚÚ/ñøŸ4@ x)2 ho ›1cÆóçÏ©Tª‹‹K\\œôžÅÿ|*ð~PÇOM-œ3çÿÌÌþ9yò· ·èô7l0$ He0–––®®®qqq’FGGG†OS(wwwücF¥R1 sppÈÈÈÀß}üø±dºgN'‘Hû÷ïg0b±˜Íf‹D"yá Ö¢¯ôþýûFFF’صk×nÙ²ðääd??¿n}ŠÅâùóç‰Ä¥K—v[®‰Dòõõ•õ?yò„ÃáˆD¢œœ¼«ž4;;Ã0üT,(ï´ —ËÕÒÒ*,,Ä0ì³Ï>ÃSU¼™ô‰ñù|"‘X^^Ž¿ÌÈȰ³³“Þ³o4 ¨DEEý¦Mivvÿ=:úŸÿL))©SvFào¨s ;wî$‰MMM’ 鹞žþ1ÃÊ544¤uDav÷îÝ---ooïß~ûMA¸‚µèë!|bbâ¬Y³$±ÙÙÙøQ|``à±cǺõyæÌ==½œœ K—.)X®DffæÔ©SÝÝÝW¬X!¯€VVVvëGA‡K–,Ù´i‡ÃÑÒÒ’*XŠôâ*++%ÓŠ{õêBˆÇãá/©Tª†††ôž}£aU@q]]‚Ë—KæÍ;dföÏ©Sw8‘Ãát*;)ÐR@_¾|ibb2kÖ,éñ—¥¥¥ä£Î`0žëëë Ž?ŽaØ÷ßO&“ñÃížË•èèèPWWÏÌÌ‹Å<O^•Äö¦€feeÙØØ¤¤¤øøøôf)ø„@ À0ìÎ;xãÃG øË‹/ÚÚÚöé*Ó0, ½Œ‰IµµÝ4vì¿bbRŸÍb±~üñÇ^&F"‘-ZôÕW_ÕÖÖ–——óÍ7aaaŠø¯ìïßÿfݺ™ÙÙOgÎÜ·|ùÏ·o?‹ËÍýÀôµâ¢7@úé'777üðíâÅ‹ffføy‹µbÅ CCȈ.—+=Néì쌎Ž677×ÓÓ[¼x±ä2zÏ( ÃRSSmmmÕÔÔ333„+¸ /aee&}¶Ã0‡åâ⢩©éììßÑÑ!‰Å}ÙÙÙ¡„„éöS§N©««?{öLÒUaa¡ŠŠJzz:¦pÀxàÀ‘#GZYY9rdñâÅ&&&`êÔ©ÚÚÚÝ–‹ýuª`ŸFDDhkkK_Æé¹éͯ¯¯okk›™™)i|cbt:}Ù²e†††fff6l\…—û_䯆óTšP(ºq£<,옅ņ>úîçŸsX,ž²“o7TJ6Øn¨¬t/^´&%ÝMM-‹±… ½V­ò3ÆXÙIÙ†ï/‘œF6ú÷¿©Ôo¿û.8?ÿù”)»æÏÿnB:8A`0RSS xófÌõëG2\»öÌÔ©»n1\e§þ (ÑÇuÇŽeoÝš®ì\Þ5WW« +*Š päȸ¯¾: w*$àvv`b±:<¨}ðàÅT=zôŠÏÈÙÙBÙy)™¬°nÝÌË—K޽óñÇ{'Nóø|ò‰+‘à ¥  ÃÊÊ^ÖÔÜ¿_M§sUTD¢Š@ úï,kkCe¦¨lêꪡ¡CC'Öœ<™÷å—g,- –.ý0,ìC}}xÚ@Ê$ˆ^½âji¹¯Z•”ŸÿœÁન¨˜H„!„ÄbL,–TO¤ªJ43ÓW^²ƒˆ————M]][ròý„„Ûÿ÷”  U«|L•Úðƒ Lmmœ‡[tt¦\»FÅ/ˆÅb¼zöD 33½w›à 6j”á¶msŠŠbwì˜_TTûñÇ{ñ‡†ŠDp½þï%KKKûì³¥Çß>þ].ñ0 q8ºmm#¹\m¶µu²3zùøølß¾]º¥?‡ð·nݒܼ€¿©¸¸Ãÿø‡OxøGiiEûö]kkã „zþœQ,FS¦Œ%U™ååõ4Z{{{þ–ššª©©ž¤¤JWXcc]•·üÌ’¦¦¦›7oN›6íívû7A·´¤wu‰ˆ’'Ѐ·¥¢¢ÂÀÀ [cF o/%þ$ù(ˆ.]zøÃ¿¿zÕ¦¢¢Òíh´ `»•ÕHé–ööŽºº¶¦&VS«®®­©©½©‰õòe[CSrõIOO“LÖýï?½Q£ ñéÑ£uuÿr»¯^Â=…ßr ÿþ÷¿ÓÒÒ¤û<…ŸÜE"CC'O¸uëñ÷ß_}ú´‘H$àe”@ ˜šv?ª§§éê*û´tmÅ k]]•úº¾žÁåvá󨫫ššêY[v«­øË]Sð€«ð`0RQ!øù9ü±ÓåË¥ÿ÷7ª«›‚®î‰ØûN×ÖÆFVsóÿ­xm¥Ñ˜lv'>^[MLt¥*¬.^aapP@ÁàE$ªyŽÿý÷ò~¸ŽÐ[;}¤§§©§§éà`êíý—v‘HÜÒ®¯g662i´ö†Fc#«¡YZú²±±]rN@K‹¤®>êm%†.( `°#ãÆÕÔ´ ô²ˆDübBÝë#†a--ÙÔÔž•u;1‘>ÐÉ€Á (2ll”yW7`b¢cb¢ƒ“ùøðaö›cÀû (Ã×ôéÓ%Ód2ÙÍÍmÍš5ø³ p§N***¢ÑhÖÖÖÞÞÞŸ}ö‘HÄc-,,Μ9#ýÍœýë_………ÉÉÉoìü=€aíðáÃfffb±øÕ«W.\ˆˆˆøå—_´µµBkÖ¬100ˆŒŒ477¯­­=yòäƒ~øá„PccãóçÏíììð®Ølö£GzÙù A£ÑV¯^?‚¡à§œ kúúú#GŽ422?~ü·ß~kffvþüyü­Ó§Oëëë8pÀËËËÒÒÒÛÛûèÑ£×®]ÃgðôôÄlƒ»wïž»»{/;$Äb1‹Åêw8PĽ{÷BBBðgðݺukÙ²e!¡PxôèÑ      £G …ÂúúúéÓ§?|øpÑ¢E¥¥¥III‹- üþûï%ì…/bÕªUþþþK–,¹qãBH$É ÇÑsº0oÞ¼üü|ü%…B Ç›8 Ï>ûŒB¡à/§M›–-ùRWNNޝ¯¯¼ Ò­s‡³{÷îùó燆†&&&òù|™ÉËË|úôé×®][¾|y```JJÊ7/^üé§ŸþòË/ ¶ØôéÓoÞ¼¹|ùòyóæýú믡/¿ü!´`Á‚7ïQY €0 >úè#OOÏ„„ƒ‘°mÛ6 „Pzz:F;vìØ?üððáä¤$|þ´´´Í›7?zô(77÷ûï¿?xðà«W¯’““ñw{FuvvÆÅÅþúë¯Ë–-Û»wogggzzºÌp}}ýèèèžÓ=YZZ644 „8N—žKØÙÙ½|ùŸvqqáñxÏŸ?Gq¹Ü‡N™2EÁ6‘tŽ:tèPKKËÑ£G÷ìÙSTTtîÜ9yÉËS\\œ˜˜qâĉû÷ïŸ>>øQüýû÷ǧ««Û›N„Báí۷ׯ_offfcc³bÅ …"/yy-Z¤©©éïïZ²d‰¦¦f@@úï“·åmçÀÀ@mmíY³f!„þÎÁ;."0P´µµçÌ™óŸÿüç‡~4666K^jiiáÖÖÖ¡¦¦&KKK¼eÔ¨Q£F’¥££sðàÁôôô¤¤${{û%K–Lš4I^xï½~ýÚÜÜO~äÈ‘ÕÕÕžžžÒ3TWWÛÛÛK^N›6mß¾}«V­R|üÞ­sƒ!‹ñi„……EKK BHqòÝ~¦©©‰RUUí6“·ŒŒºÍùw@` 477_¼xÑÓÓóÈ‘#[·nÅõôôqâDSSSMMͦM›.]º$åïïÿóÏ?×ÖÖÖÖÖ:t¨©©I^@ˆ‰‰ÉÍÍår¹@UUU]]]^8—˽zõjÏi„“ɤÓé­­­=Ú¾};F“Üíwùòå cãÆ………¯_¿ÎËË[³f‘‘Ñüùó%áøQüœœœz~ÇS^窪ªÓ§OÿñÇi4þí¨™3gÊLÿÎÓ7:::út¦Rñvî†Çãõ¾gi0`@\ºt‰Éd.^¼XUUuÆ 7nœŽŽÎªU«>üÅ_ŸÈÈHéUXXXgggLLLggçäÉ“###ñöžQjjj[¶l9vìXss³¹¹ùŽ;ÔÔÔä…3™Ìýû÷ã§>¥§BëÖ­Ã'LLL\]]?.9ÚÕÔÔ<~üxRRÒÑ£GÌÌÌf̘J"‘¤×túôé™™™AAA=7‚‚οþúëǯ^½šD"}üñÇaaa¡gòzzz«V­:räHrròÚµkóòòz¹ý{n1™³™ššŽ7.88ø·ß~ëeÏÒú|?PÜt’y?P8„€~‚ ýú (xOˆDâË—á‰¾à‚«ð`ÈDééER^¿¦—”Ä Ð³ŒQs3«¡I£1ssi±0ä@CXG?%%ÿС›t:ÿ:ICCûß) ¨©‰ÕÐÀhh`Òhí4³¡ÙØØ^_ÏliaáOZVQ!hk“Ò{ï=( `Hjjb>|ëìÙûX$úóQEjh`Œo­8–Åâ½xÑÚóIÈí]]>N][[ÝÜÜŠœ““þÀN]SS]==Í´´´E‹»†`(€ †˜†æÁƒ7RS $yÊNU•ØÐÀħñ²¨¸Jêèh˜™éãUÒËkL·*ù®W A) ø×ƒ•• ¤¦¦zxL;tèÆ¥K%A(õœ‡@ œ:u7=ýAcc{KËŸÏ,RUU11Ñ57707×sr2³°003Ó73Ó³°006Ö!á:*è?#Ðn_µ@é–,Yœ\U@ ×Ù†¡)SìÌÍ ÌÌôLMõ--õŒªJ*¸«¦ ZFRSc*;‘÷MMMÍÌ™3»5Ê( ¡¡¡ï$ÞŒÇãÿûß™ÆÆËy² ~'´–vQQmaaMaaMyy½P(VS#ŠÅ?+ÚÚÊ‹1•·yÏÇA«¸¸îøñìë×Ë µ¿øÂwáB/cce'5¼@CŒ±±Î'Ÿ¸~ò‰+BˆÇã—”¼,,¬)(¨yð –Ëå‹DâÖVމÉû\GÑ¥KOžÌ£R_yzŽ>|xi@À8‰¨ì¼†#( `1Bí£ì>úÈ!$cÏžÑ k•Ô¢Ó¹IIyÉÉ÷étîüùã÷î …£uå‚ Þ**''s''se'2 ?n8zôÎåË¥::Ÿ>eÙ²)ï÷({¨x?¿G2zôèððpü‘U\.7&&ÆÍÍMGGgâĉ»víÂÇŽ;¶Û•´Ù³g„êêêÞt>Øüúë¯YJKK•›XuuõÛ}@ÍûG(Ÿ?_p`æÌ}7ìÛ·°¸xGTTTÏAâ½Þ»wo̘1"‘¨²²òСCeeeø3[Øl¶——™LÞ³gMyyùöíÛ)ÊÍ›7‰D"BèÅ‹=rwwÇ»b0¹¹¹½ì|¨©©ñòòŸ1þ|†ª­­ýè£ði„¡¡¡2S 1Ü_~ÉKNÎokczÀÑú …IIMMíÖ2D!„ªªª$/Åb±Oll,þ2::ÚÛÛ[(Jfàp8£G>qâ°uëVÉ»§Nš={¶¤OÅUUU=w¥ÌF%ê}>¡ÔÔÔÎg¨¬lŒ½èà°yìØmÛv¡¦¦YÙ¹ú|ùòe ƒ:w½=—ËE ‚˜˜2™lbb#ð´[·nY[[gggïØ±ÃÚÚÚØØ8<<œÉüóg=£BYYY®®®666gΜA …B™áÒÇ€ Ž ÂêÕ«%O"LNNŽÅ›8--­˜˜˜äädüehhhZZöߣøôôôy¤[çL&óóÏ?722²´´ŒŽŽîìì”™¼¼Ì Â/¿üâäädll¼{÷î3gÎŒ3FOOoûöí ¶@8{ö¬““ÓÈ‘#÷îÝ‹¿ñkjjª`WJï »wï^¹reüøñšššfff»wïFnܸŸ¹««ËÀÀ_MÅûúîÝ»=÷ B¨gÿ@Zg§ -­hΜÿóõÝ}óæã˜˜ÙÅÅqññ ÆŒ1Vvj@>éjÚËhxxøòåËÉdrAAÞ¸gÏžààà—/_R©TÍ›7ãã‹Ù³gß¾};..ÎÙÙ™J¥–••Mš4)::Z^‡ÃQWW?zô(F;yò¤ªª*‡ÃÙ·oŸÌp&“‰»M£¿1 +**Ò××Ç0 /ý---ÝVê?þ “ÉxìÓ§OMMMKJJðn555ñca™#PéÎ1 ›1cÆóçÏ©Tª‹‹K\\œÌä¥_ÒÓ¡Å‹³X¬Ÿþ!´páB‹uìØ1„Pkk«Ì-†G…„„0Œ'N „ÚÚÚz3•ÞA4MMMmåÊ•¯_¿Æÿ477ÿúë¯ÖÖÖb±ðÌÌLsss@ðÆ}ÝÔÔÔs²X¬žýÃ÷üys\Ü%'§­––?ÿüçÛ·ŸˆDbe'z¥?”Á`XZZºººÆÅÅIi4>M¡PÜÝÝñ•JÅ0ÌÁÁ!##÷ñãÇ’éžQt:D"íß¿ŸÁ`ˆÅb6›-‰ä…Ë]«¾Ðû÷ïIb×®]»eË Ã’““ýüü¤ûTÐ9ŸÏ'‰åååx{FF†ÌäЇâ]u›ÆÚs‹áQwîÜ‘ž³÷ßA]]]Ož<áp8"‘(''ï„ËåjiiböÙgŸáDfÒ]É܃2ûæ”ÇãŸ9soÖ¬ÌÌþ9iÒ·‡ßlnf);)Ð7ý<ºsçN"‘ØÔÔ$iÑÐÐØêééá>Ÿ¿[VVÖ³ŸžQ†Ý½{7$$DKKËÛÛû·ß~S.w­zÔ¸””OOO|ÚÔÔ”B¡t ILLœ5k–$6;;ÛÎÎN,;v SX@%¿zõ !Äãñðv*•ª¡¡!3yéÚQYY)]@%Ëœ–¹ÅBÏž=“ž³÷ßA†effN:ÕÝÝ}ÅŠ’Å-Y²dÓ¦MGKK«²²ŸSñ¾ÆdíA™ýÛúâEë7ßd88l±²Úq*7÷ 9‡¨þЗ/_š˜˜Ìš5kéÒ¥’FKKKɧÁ`‰DÒÔÔ”ÞÞÞŽŸ+ì6jiiill¬¯¯ÏÉÉ ª­­•\‰mnnž1cÆõë׫ªª.^¼8iÒ$ ‹5kÖH‰Dbpppdd¤———‰‰I· ¯s‰´hÑ¢¯¾úª¶¶¶¼¼ü›o¾ “™<þ§Ó§O³X¬ü±÷Û_ñvî†Ãáô²Û®®.>Ÿ¯¦¦ÆãñvìØb³Ù!ƒ±cÇŽ•+Wö2™{P^ÿÃDCó»ï®Lœ¸sõêÓ¡ÄÄðâ⸨¨SÓy|xw¤«ioF ?ýô“››~°vñâE333:Ža‹ÅZ±b…¡¡aDD—Ë•_tvvFGG›››ëéé-^¼˜Á`àí=£ð4lmmÕÔÔ333„+8“(aee&}¶Ã0‡åâ⢩©éììßÑÑ!‰Å‡WÙÙÙ¡„„„níŠ;§ÓéË–-344433Û°aÇ“—|||¼¾¾¾­­mff&êõTæë9§@ ˜:uª¶¶¶ôZ+bvàÀ‘#GZYY9rdñâÅ&&&x{DD„¶¶6‡Ã‘Ì©x_Ë܃2ûïG b±87÷Yxø KËNN[ã㳪«›Þ†¸Bjj*~7¦!Áত䧤ÔÖ¶¸¸X|ñ…ï¼yãÕÕßÛß­ [°Gx›òò*““ïÿþ{9‘¨왘¸ ~Aôƒ À[ÐÑÁÏÈ(NN¾O¥¾rp0_0oÞx]]7G‚¡ (ËóçÍ))ùiiE wÚ4ÇÿüçìϪ& €Ð<?+ëQJJ~aa ™¬6yÉ’ÉÖÖp–á (}€aØÝ»UÉÉ÷oÜ('!!¶nýt„1Ãä!" ( ôJK ;-­ðܹ‚ššgg‹o¿]0ož»®îeç” (Š…âkרÉÉ÷ïÝ«1‚èqä\X‚ €l43=ýÁ¹s/^´~ðùÎ xêéi*;/0ˆ@à/:;×®•¥¥æåUjkkŽOL wsƒ!'AF…ÇÔ€aH$ß¾ý$=ýÁåb10îܹÕ}d_H üå§œ¯^½ÊÏÏWb6È3yòd+«ÖÖ¶¤¤\¸ð ±±}âÄ1¡¡çÎuƒCuÐøå;ž î… Åéé¨ÔW&&:¡¡^¡¡ìí=€n €‚áE,Æ jÒÓ\¹RÚÑÁŸ6Í!4Ô+ ÀEM ®€>ƒ †‹ŠŠúŒŒâK—Jh4¦““Ypð„àà d²®²óCPðž+/¯OM-¼~½¬¾žakkòÙg^óç{XZ(;/ð>€Ãð~zù²íüù¢¬¬G••d²^HÈ„ pмM0ï•¶6ÎÅ‹³²J‹‹_èëkyÎë¿U (xtv îÜyzùr …RÁç }|‚‚<Æii©+;5ð>ƒ †0¼nfe•R(<ßËËfî\÷yóÜ µ• €‚¡‡Íî¼~½ìÊ•G¹¹ÏÄblÚ4Ç9sÜüýáÛïàƒ † ¨›`° ;ŸýìÊ•R ¥¢£?Nwûä7ø 'P:( `jjj§PS(yy•|¾pâÄ1óæ¹C݃ P0ˆ…âû÷«oܨ¸y³¢®®ÍØXgÖ,??ç)SÆjjª);;ºƒ ”ÍîÌÎ~J¡Tܾý„NçŽKö÷wñóûÀÓs4ÜM fP@Ò440ûJ¡TÖˆÅØäɶ~~Î~~ΣFÁ³-ÁÐü-5W¯>Ú¹3¨—ócöøqCvöÓ7*>¬SUU™:u¬¿¿‹ŸŸ³©©Þ€¦ À[ôSG×®+IIy#F¨?{¶Kñ±vs3;7÷YNγÜÜg--l2YoútGg8¹ †.(  ?îÝ«^¿>¹¹™%a¡k×6ö|j‹Õ™“ó4/¯2/¯²®®MWw„¯¯ƒ··½··=¤ƒ÷Ü ô “Ù“võê#‚XŒ!„H$•»w+ñ*cÔR(óò*+*êUT“'Û.]ú¡··½³³\ï(  ®_/‹Žþµ½½!„WO„P(¾u뉥åÈìì§99ÏÛŒ´½½íW®ôöõu€¯m‚÷ƒ^a0¸›6—xJSU%"„&Mãëëèëëàìl·ÃPðf×®•EG§²ÙB¡HÞúhìùó_¾ƒ¬<Q%“'O¶²êþm ]]ªMMš ŸOäóUx/^¼xô葤+ƒ‘››+Ýyzzzjjê;[€P@ß>cccSSS ‹éÓ§_¼xÑÆÆæàÁƒø[;wî466¾uëV@@€½½ý‚ _¼x‘””„Ï0sæÌóçÏKºº|ù²¯¯¯tç‘‘‘k×®mll|g«g(ÐË—/[XX0 „йsçìíí¹\.BH ÄÄÄÉd“˜˜@€«ÞºuËÚÚ:;;{ÇŽÖÖÖÆÆÆááá’Á`Ï(„PVV–«««†††Í™3gBB¡Pf¸ôá°‚Cc°zõê«W¯â/“““ccc‰Äÿý\GKK+&&&99š––&9HOOO ‘îpÆ ŽŽŽ=BÆd2?ÿüs###KKËèèèÎÎN‘H´oß>{{{)S¦(Xw@ŸaƒB(55Uñ<áááË—/oll$“Éxãž={‚ƒƒ_¾|I¥R=<<6oÞ\UU…š={öíÛ·ãâ✩TjYYÙ¤I“¢££åEq8uuõ£GÒh´“'Oªªªr8œ}ûöÉ g2™'Nœè9ªªª’騨H__Ã0¼ô·´´t[©?þøƒL&ã±OŸ>555-))Á»ÕÔÔlmm•ô‰OTVVŽ1")) Ã0|Mñ~ÂÂÂf̘ñüùs*•êââwàÀ“ŒŒŒ†††«W¯š››ã3÷\÷7îü¼Ág`XD‰ÞPƒaiiéêê'ittt¤Ñhø4…BqwwÇË •JÅ0ÌÁÁ!##÷ñãÇ’éžQt:D"íß¿ŸÁ`ˆÅb6›-‰ä…+X‹¾Ðû÷ïIb×®]»eË Ã’““ýüü¤û”L:tHWW÷åË—’Êçó‰Dbyy9ÞgFF†½½ý©S§$ úÏþƒÏÜsݯYÑG¢7ð;w‰Ä¦¦&I‹†††ô˜ZOO/+|>·¬¬¬g?=£0 »{÷nHHˆ–––··÷o¿ý¦ \ÁZt+ )))žžžø´©©)…Bé’˜˜8kÖ,Ilvv¶X, ©Tª††Æˆ#JKK% *))Ág–¹îŠA §¡t!ôêիÇÏœ93**JÒhdd$©Y #??o'‘H!ssó/^à-¥¥¥ß}÷¼('‹ÏŸ?O§ÓW­Z5wî\:./¼—0 KLLüôÓOñ—aaa;wî”\sGq¹Ü={öHZ¦NÊf³ïÞ½K¡Pev«¢¢’””ôÇ?~o!“ÉD"±¦¦ùüùs ‹Ñ£GK_Ó¯¨¨P¼Å}£”²-zÓT$Íœ9óÛo¿¥Ó馦¦—/_ÆÛ¿úê«ü @“&MZ·nô™Á;v¸ºº–•••••M™2å‹/¾Åãñ444ÒÓÓ[ZZŽ?®¡¡Áãñä…+8*ùSvvöüùó---™L&þn{{»ƒƒƒ¯¯ïµk×*++322œ§L™ÒÙÙ‰I 0¿üòK''§éÓ§Kúì6Å%&&â¯ð—K–,™1cFMMMYY™³³sllì¡C‡LLL.]ºD£Ñ®]»fccƒÏÜsÝ߸w` @Oƒè#ñÆúÓO?¹¹¹áæ/^433£Ó醱X¬+VFDDp¹\éÚÙÙmnn®§§·xñbƒ·÷ŒÂ0,55ÕÖÖVMMÍÑÑ133SA¸ô"¤§¥ÿ8YYY………IŸmÀ0ŒÃáDEE¹¸¸hjj:;;ÇÇÇwttHbñú˜JHHèÖÞ­€ŠÅbü.ÔøK:¾lÙ2CCC33³ 6ðx<¡P¸oß>;;;--­?üiÊ[wÅ €ÐÓມrjj*ÜtpÂï:xþ·0 ±s 0x@€~‚ ýú (ôPè'( ÐOP@ Ÿ €@? ®_"7ŽL&+; CSS~W*e'À ¢ªìþ'44TÙ)¹ •ƒË ÀÐç@ Ÿ €@?A€~‚ ýôÿ[8/$qÎ6ïIEND®B`‚XQilla-2.3.0/docs/dom3-api/DOMLSResourceResolver_8hpp_source.html0000644000151400015140000002243511653571065021520 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMLSResourceResolver.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  * 
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  * 
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: DOMLSResourceResolver.hpp 527149 2007-04-10 14:56:39Z amassari $
00020  */
00021 
00022 #if !defined(XERCESC_INCLUDE_GUARD_DOMLSRESOURCERESOLVER_HPP)
00023 #define XERCESC_INCLUDE_GUARD_DOMLSRESOURCERESOLVER_HPP
00024 
00025 #include <xercesc/util/XercesDefs.hpp>
00026 
00027 XERCES_CPP_NAMESPACE_BEGIN
00028 
00029 
00030 class DOMLSInput;
00031 
00053 class CDOM_EXPORT DOMLSResourceResolver
00054 {
00055 protected:
00056     // -----------------------------------------------------------------------
00057     //  Hidden constructors
00058     // -----------------------------------------------------------------------
00061     DOMLSResourceResolver() {};
00063 
00064 private:
00065     // -----------------------------------------------------------------------
00066     // Unimplemented constructors and operators
00067     // -----------------------------------------------------------------------
00070     DOMLSResourceResolver(const DOMLSResourceResolver &);
00071     DOMLSResourceResolver & operator = (const DOMLSResourceResolver &);
00073 
00074 public:
00075     // -----------------------------------------------------------------------
00076     //  All constructors are hidden, just the destructor is available
00077     // -----------------------------------------------------------------------
00084     virtual ~DOMLSResourceResolver() {};
00086 
00087     // -----------------------------------------------------------------------
00088     //  Virtual DOMLSResourceResolver interface
00089     // -----------------------------------------------------------------------
00131     virtual DOMLSInput* resolveResource(  const XMLCh* const    resourceType
00132                                         , const XMLCh* const    namespaceUri
00133                                         , const XMLCh* const    publicId
00134                                         , const XMLCh* const    systemId
00135                                         , const XMLCh* const    baseURI) = 0;
00136 
00138 
00139 };
00140 
00141 XERCES_CPP_NAMESPACE_END
00142 
00143 #endif
XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMDocumentType__inherit__graph.png0000644000151400015140000001120111653571066024123 00000000000000‰PNG  IHDRÍubGò&bKGDÿÿÿ ½§“6IDATxœíyTSGßÇ'Adß#jJ_6•¶ÚR–”€x\Q¨¥‚¸Ô£@]Z…#V‹(*Ȧƅº²yS¶" ( ÔêQ@AÄ7¡l‰d¹ïÓç>y ¡O¹Ï_3sç·Ìä˹ Ã0€@L2 SâÒ‚ÎD€t† òd¸}ûöÑ£G'; â¿ÁÉÉéСC“bÒuÖÓÓS^^îëë;Ùºº:mmíÉŽ2é:ƒdgg1Q6lØ@@´?CÒ‚ÎD€t† ¤3 É IŒùóçõööŠwŠŠŠ²³³ÓÐÐøøã;&pÛ?üpÔ+ +W®$‘Hmmm°ƒ¯¯¯x‡¶¶6‰$gnê<% M€ÚÚZ&“ÙÕÕÅ`0úûû—.]Ú×× |ôÑG qqqøùçŸÝÜÜ„B!ìðòåËææf܇é®®wž››{ýúuÂÆB0Hg@__ßÈÈÈÔÔ”F£åççS©ÔÄÄDxèÈ‘#úúúëÖ­«¯¯ùò%ƒÁ€ètzNN¨ÈÙÙYÜyXXØŽ;X,aÃ!’÷BgEEE¦¦¦põêU ‹¡¡!ŸÏŠŠ244400ˆŠŠâóùp¨¨¨033«ªªŠŽŽ633Ó×× ÂO-’V€›7oÚÚÚªªªR©ÔË—/Á˜æâkŒõˆD"mÛ¶­¸¸V³²²>¬¨¨ˆwPWWŠŠÊÊÊ‚U__ßììl|eÌÍÍõññw¸gÏKKËÐÐPÉ7ûúú¾üòK=== …Éãñ„Ba||¼………†††ƒƒÃýû÷eŒý½›dàZ0n·   àà`‹ehhxÿþ}Ø·~ýúW¯^µ´´,]ºtÿþýÏŸ?¬\¹²²²2&&ÆÊʪ¥¥¥µµuÙ²e‘‘‘Ò¬UTTÒÒÒ˜Læ¹sçÈdòàà`||ü˜æ}}}™™™’eÀóçÏÅsnhhÐÒÒÂ0 þ…ôööŽTMM¡¡!´}úô©‘‘ÑÇ¡[55µ·oßâ>aáÙ³g³fÍb0†Á‘B?®®®ííí---ÖÖÖ111 yyyÝÝÝÅÅÅ&&&°³äØÇy___¸5œTÞq8 …bkkƒ7ZZZ2™LX.++[¼x1œý–– Ã.\˜——þþûïxYÒŠÍf+))>>êêêŽŽŽ·nÝ’a. I]¹rÅÞÞ–ŒŒÊÊÊF™¤¦¦®X±·­ªª277‰D^^^éééØX: …ÎÎÎîîîÏž=ƒóÖÙÙ àr¹ÐgKK‹ªªê¬Y³=z„zøð!ì<æØeCŒÎÞ‹ý ³³399™N§GDDàzzzøGËápîݻە””&&&/_¾„-=úᇤYq¹\‘H”““Ãf³CBBÖ¬YÃf³¥™Ë †a©©©«V­‚Õ€€€#GŽàW—€¡¡¡¸¸8¼åóÏ?¸{÷nYY™——טn FMMMFFl144TTTìèè€ÕöövSSÓùóç‹_½>~üXöŒM=“-dyÎgB¡N§ÇÆÆ²Ùl##£¢¢"ØþÍ7ßøøøÀ;Ë–-Û¹s§ø®%::ÚÖÖ¶µµµµµÕÁÁaëÖ­Ò¬¸\®ªªjnnnoooFF†ªª*—Ë•f.c†ßרªªòôô¤P(}}}ðèü±páBggç’’’gÏžåååYYY988ðxîôZ7OŸ>mggWÃüü|ccc6›aXÿ–-[´µµuuuCCC‡††ÄuÆãñ"##MLL4557mÚÄáp`»¤Lãƒ>PVV¶´´,,,”a.B¼,þÇ9wîÜ€€ñ%ðÁÁÁˆˆkkk555++«£Gã¶PFUUU€”””Qí£t&‰ÜÜÜðÐl6;00PWWרØxÏž=\.W ÄÇÇ›››«««úé§ð¼%mì²!Fg$l’ÿ¯.;;ÛÏÏo²£ þ2ðý³É~Að}ÙŸ!f6Hg"@:CÒ‚ÎD€t† ¤3 !ˆélÂÜ¿ß1Õ)L?útøefÐÑñ…Ò©¬<2Õ‰ü=´¶¶:99Mv”I×ÙܹsgÒ—kp¹d.wÖȈ‘¡áÀTçò÷àää´|ùòÉŽ2éÏ7gññ%‰‰¥óæéÖÕ}?Õ¹L'Ðþlbää4þõ¯ÿ}ò¤{ªs™N M€‡_uuqJJŠ7n4Nu:Ó ¤³ PPÐD&+ø|aNNƒH„¶ò‚t&/B¡(7·A øóÍìÞÞúztƒC^Î䥮®ÃÆ«JJŠùùMS˜ÏôéL^òòšÈäÿLŸ/,,lâó…2L8Hgr12"(*z$ˆÄûûßUW?›ª”¦HgrQYù„Ë}7ª‘L&åå¡«N¹@:“‹¼¼F…Ñs%ˆnÝjž! &¤³ñ|WZúX(Iâó…åå‰OiÚt6>eeGFÒŽ¢«Ny@:Ÿ‚©J‰°_}ÒßÏ%2ŸézŽ>>]]ñEóÓOÆÆ®£Óÿo12ÒTQ!è «i šñ¡PFÿ,¾¾Æ¼yºS’Ì4­›"@:CÒ‚ÎD€t† ¤3 !ˆé AHg"@:CÒ‚ÎD€t† ¤3 !ˆé AHg"@:CÒ‚ÎD€t† ¤3 !ˆé AHg"@:CÒ‚ÎD€t† ¤3 !ˆé Aÿï{ö222¦*éEyy9‹U?ÕY¼ïÐét*•úgcJ³š6()((¨LuÓ€ëׯãÒý½¡ÑÑÑ...S‘bFA£ÑÄ«h† ¤3 !ˆé AHg"@:CÁ ü=ñ+jCCC;;»ððp---¼‘Çã]¸p¡¡¡Édš™™9::nܸQQQÚššš^¾|™D"áý÷íÛW__Ÿ••ejj:®ó÷ÊÊÊØØXÉöÌÌLsssÂÒ˜:$''‹D¢ÎÎÎ7n„††ž?~öìÙ€áááððpmmí°°0“/^œ;wîÁƒ§N‚¿°Éb±ÚÛÛñÏ``` ¹¹YNçï L&sÛ¶m………‡7nÀÆ;wÂ2`Μ9D¦43×M---==½%K–ÄÆÆçääÀC—.]ÒÒÒJHHøä“O(Š££cZZ‹Å*))ìíí«ªªpWµµµ‹/–Óù{‚H$êïï‡exÒÕù7d2¡§˜‰é¬¶¶ÖÇÇg``PQQÈãñ --ÍÛÛÛÛÛ;--M ¼~ýšF£555ùùù=zôˆÁ`øùùyyy?~|ppz“´‚!BBBÜÝÝýýýKKKB¡pLsB²< ‰´víÚ{÷îÁjYYYPPø«ªªnܸ±¬¬ V]\\ªªªð§p·oßvvv–6!£œþøãžžž¾¾¾©©©###c&/-sVRRìååuåÊ•ÒÒÒM›6­Zµêüùó2fŒF£•——¯]»öÚµk€íÛ·Ö­['ã£<}úô‰'`™Ëåzxx<þ&SSSèíí}úôi>Ÿ/-˜Î>ûì3{{û””‡“’’òÝwß©ªªrss™Lfzzú©S§ššš 쟽ÿþæææêêêãÇ'&&vvvfeeÁ£’V</&&ÆËËëÚµk'Nœàñx¹¹¹cškiiEFFJ–%¡P(ÝÝÝ€ÁÁA6›-¹/177õê,[[[s¹ÜöövÀÐÐPSS“ƒƒƒŒ9Á’’’z{{ÓÒÒâââ®^½*-yi466¦¦¦†††fffÖÕÕ;w.<<üòåËðü$mžïÞ½›’’–žž>00pæÌ@^^žŒ@ÎÎÎ555B¡PSScllŒOKAAÁñãÇ;vÿþý+W®Èˆ+?^7wíÚÕÔÔéééiii KJJvïÞm``@¥RÃÂÂêëÿ|—!44tÉ’%_}õ•J]°`Á¾}û¬¬¬¤Yñù| ø\®²²²‡‡ÇÍ›7UTTŠ‹‹Ç4WWW_µj•dù/@"‘D¢?aSAAÁÉÉ .uuu666rneAeeå®]»Œ©Tê–-[ÊÊʤ%/ ???555www€¿¿¿ššš‡‡®!ÒæÙËËköìÙ+V¬à+¦l¬­­ÉdrKK  ¼¼ÜÝÝ¿ô §P(‹-úúë¯ái^Z\ù™ð"={öìÕ«W_¼xñÔ©Sx#‹ÅZ¿~=^UWW‡333@OO…B-óæÍ›7ož4+ ÄÄÄÜÜ\ƒaaaáïï¿lÙ2iæòÓÕÕebb“×ÑÑikk³··ïÐÖÖfaaW]\\âããCBBd/š£œs8‘HËSSÓÞÞ^€ìäG½&£¦¦€›'ñ2DÚ<ëééê9. ŽŽŽÕÕÕT*µ±±1""?„'lff‡ -®üLXgoÞ¼ÉÏÏ···?sæÌÁƒa£¦¦fbb¢©©)ø÷Úô§w2 ««Ëb±,Xhkk»wïÞæÍ›Ç´z÷îH$Љ‰,((f.'†-_¾Vétú¥K—–,Y‚oÑx<ÞÕ«WÅçÑÆÆfxx¸µµõÁƒâ€lçÚÚÚ L&Š©»»[OOÃ0iÉ …BEEÅ·oßÊ?ió,~F~\\\Ž=:þ|}}}¼½«« ¾7ÖÙÙ©««+#®üLlÝÄ0ìĉëÖ­;tèPcccmm-lwttÌÌÌìéééèèøöÛo Ä­ÜÝÝÏž=ûâÅ‹/^$%%õôôH³"‘HQQQÕÕÕCCC|>ŸL&«¨¨H3*..–,úúúØlöÛ·o›››:Äd27lØs8œ½{÷Ö××wuuݹs'<<\OOÏÓÓó?“¢ àää”°hÑ"É{cÒœ“ÉdöÓO?1™Lx»„N§™<¼ RZZ:<<,{5 Ùó< .wœ_m·µµ …/^„Ë4NrròëׯŸ>}zöìY77·‰Æ“‰Ï úúú6mÚD&“÷ìÙ“`cc£¡¡’œœ¼uëV‰äää&þgÀãñ¢¢¢x<ÞòåËÃÂÂ`»¤•²²òÒÓÓß¼ycbb­¬¬,ͼ¯¯ïäÉ“p[&^ìܹ lmm322ðS½ššZFFƒÁHKKëîî666vuuõõõURR)F+,,ôöö–œÎwïÞœœ¼mÛ6%%¥/¾ø" €D"I&¯©©ræÌ™¬¬¬;vܹsGÎù—œ±1»ÙØØ¬_¿þÖ­[2¼Á?§_~ùÅÉÉI¼N§GDDðxßDŒ‹]QQѨF--­½{÷NF8t>CÒ‚ÎD€t† ¤3Œ¾ÞlllÄ_ðB þ6Ð÷k & ñï× !y!íÏD€t† ¤3 !ˆàÿ>(‰¢ßÁ—ýIEND®B`‚XQilla-2.3.0/docs/dom3-api/inherit_graph_10.map0000644000151400015140000000027211653571066016021 00000000000000 XQilla-2.3.0/docs/dom3-api/classxercesc_1_1DOMException__inherit__graph.map0000644000151400015140000000100711653571066023435 00000000000000 XQilla-2.3.0/docs/dom3-api/DOMLSException_8hpp.html0000644000151400015140000000655211653571066016570 00000000000000 XQilla DOM3 API Documentation SourceForge.net Logo

DOMLSException.hpp File Reference

#include <xercesc/dom/DOMException.hpp>
Include dependency graph for DOMLSException.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  xercesc::DOMLSException

Namespaces

namespace  xercesc
 

This class holds the list of registered DOMImplementations.


XQilla-2.3.0/docs/dom3-api/MemoryManager_8hpp__incl.md50000644000151400015140000000004011653571065017444 00000000000000988e81deb946febbf9f651f393db3f42XQilla-2.3.0/docs/dom3-api/inherit_graph_18.map0000644000151400015140000000024611653571066016032 00000000000000 XQilla-2.3.0/src/0000755000151400015140000000000011653572442010503 500000000000000XQilla-2.3.0/src/lexer/0000755000151400015140000000000011653572443011623 500000000000000XQilla-2.3.0/src/lexer/FlexLexer.h0000644000151400015140000001310011571227106013575 00000000000000// FlexLexer.h -- define interfaces for lexical analyzer classes generated // by flex // Copyright (c) 1993 The Regents of the University of California. // All rights reserved. // // This code is derived from software contributed to Berkeley by // Kent Williams and Tom Epperly. // // Redistribution and use in source and binary forms with or without // modification are permitted provided that: (1) source distributions retain // this entire copyright notice and comment, and (2) distributions including // binaries display the following acknowledgement: ``This product includes // software developed by the University of California, Berkeley and its // contributors'' in the documentation or other materials provided with the // distribution and in all advertising materials mentioning features or use // of this software. Neither the name of the University nor the names of // its contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED // WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. // This file defines FlexLexer, an abstract class which specifies the // external interface provided to flex C++ lexer objects, and yyFlexLexer, // which defines a particular lexer class. // // If you want to create multiple lexer classes, you use the -P flag // to rename each yyFlexLexer to some other xxFlexLexer. You then // include in your other sources once per lexer class: // // #undef yyFlexLexer // #define yyFlexLexer xxFlexLexer // #include // // #undef yyFlexLexer // #define yyFlexLexer zzFlexLexer // #include // ... // // Since this header is generic for all sizes of flex scanners, you must // define the type YY_CHAR before including it: // // typedef xxx YY_CHAR; // #include // ... // // where xxx = char for 7-bit scanners, unsigned char for 8-bit, and // wchar_t for 16-bit. #ifndef __FLEX_LEXER_H // Never included before - need to define base class. #define __FLEX_LEXER_H #include #include extern "C++" { struct yy_buffer_state; typedef int yy_state_type; class XQILLA_API FlexLexer { public: virtual ~FlexLexer() { } const YY_CHAR* YYText() { return yytext; } int YYLeng() { return yyleng; } virtual void yy_switch_to_buffer( struct yy_buffer_state* new_buffer ) = 0; virtual struct yy_buffer_state* yy_create_buffer( std::istream* s, int size ) = 0; virtual void yy_delete_buffer( struct yy_buffer_state* b ) = 0; virtual void yyrestart( std::istream* s ) = 0; virtual int yylex() = 0; int lineno() const { return yylineno; } int debug() const { return yy_flex_debug; } void set_debug( int flag ) { yy_flex_debug = flag; } protected: YY_CHAR* yytext; int yyleng; int yylineno; // only maintained if you use %option yylineno int yy_flex_debug; // only has effect with -d or "%option debug" }; } #endif #if defined(yyFlexLexer) || ! defined(yyFlexLexerOnce) // Either this is the first time through (yyFlexLexerOnce not defined), // or this is a repeated include to define a different flavor of // yyFlexLexer, as discussed in the flex man page. #define yyFlexLexerOnce class XQILLA_API yyFlexLexer : public FlexLexer { public: // arg_yyin and arg_yyout default to the cin and cout, but we // only make that assignment when initializing in yylex(). yyFlexLexer( std::istream* arg_yyin = 0, std::ostream* arg_yyout = 0 ); virtual ~yyFlexLexer(); void yy_switch_to_buffer( struct yy_buffer_state* new_buffer ); struct yy_buffer_state* yy_create_buffer( std::istream* s, int size ); void yy_delete_buffer( struct yy_buffer_state* b ); void yyrestart( std::istream* s ); virtual int yylex(); protected: virtual int LexerInput( YY_CHAR* buf, int max_size ); virtual void LexerOutput( const YY_CHAR* buf, int size ); virtual void LexerError( const char* msg ); void yyunput( int c, YY_CHAR* buf_ptr ); int yyinput(); void yy_load_buffer_state(); void yy_init_buffer( struct yy_buffer_state* b, std::istream* s ); void yy_flush_buffer( struct yy_buffer_state* b ); int yy_start_stack_ptr; int yy_start_stack_depth; int* yy_start_stack; void yy_push_state( int new_state ); virtual void yy_pop_state(); int yy_top_state(); yy_state_type yy_get_previous_state(); yy_state_type yy_try_NUL_trans( yy_state_type current_state ); int yy_get_next_buffer(); std::istream* yyin; // input source for default LexerInput std::ostream* yyout; // output sink for default LexerOutput struct yy_buffer_state* yy_current_buffer; // yy_hold_char holds the character lost when yytext is formed. YY_CHAR yy_hold_char; // Number of characters read into yy_ch_buf. int yy_n_chars; // Points to current character in buffer. YY_CHAR* yy_c_buf_p; int yy_init; // whether we need to initialize int yy_start; // start state number // Flag which is used to allow yywrap()'s to do buffer switches // instead of setting up a fresh yyin. A bit of a hack ... int yy_did_buffer_switch_on_eof; // The following are not always needed, but may be depending // on use of certain flex features (like REJECT or yymore()). yy_state_type yy_last_accepting_state; YY_CHAR* yy_last_accepting_cpos; yy_state_type* yy_state_buf; yy_state_type* yy_state_ptr; YY_CHAR* yy_full_match; int* yy_full_state; int yy_full_lp; int yy_lp; int yy_looking_for_trail_begin; int yy_more_flag; int yy_more_len; int yy_more_offset; int yy_prev_more_offset; }; #endif XQilla-2.3.0/src/lexer/XSLT2Lexer.hpp0000644000151400015140000002222311653565523014132 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XSLT2LEXER_HPP #define XSLT2LEXER_HPP #include "../config/xqilla_config.h" #include "XQLexer.hpp" #include "../schema/FaxppDocumentCacheImpl.hpp" #include #include #include #include XERCES_CPP_NAMESPACE_BEGIN class GrammarResolver; class XMLScanner; class Locator; XERCES_CPP_NAMESPACE_END struct InstructionInfo; class DynamicContext; class XQillaNSResolverImpl; class XSLT2Lexer : public Lexer { public: enum EventType { START_DOCUMENT, END_DOCUMENT, START_ELEMENT, END_ELEMENT, NAMESPACE, ATTRIBUTE, TEXT }; XSLT2Lexer(DynamicContext *context, const XERCES_CPP_NAMESPACE_QUALIFIER InputSource &srcToUse, XQilla::Language lang = XQilla::XSLT2); virtual ~XSLT2Lexer(); virtual int yylex(YYSTYPE* pYYLVAL, YYLTYPE* pYYLOC); virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver *getNSResolver() const; virtual void undoLessThan(); protected: enum State { LANG_TOKEN, NEXT_EVENT, CURRENT_EVENT, POP_STACK }; struct ElementStackEntry { ElementStackEntry(ElementStackEntry *p); bool reportWhitespace() const; const InstructionInfo *info; bool xmlSpacePreserve; XQillaNSResolverImpl *nsResolver; ElementStackEntry *prev; }; int lang_token_state(YYSTYPE* pYYLVAL, YYLTYPE* pYYLOC); int attrs_state(YYSTYPE* pYYLVAL, YYLTYPE* pYYLOC); int next_event_state(YYSTYPE* pYYLVAL, YYLTYPE* pYYLOC); int current_event_state(YYSTYPE* pYYLVAL, YYLTYPE* pYYLOC); ASTNode *wrap(ASTNode *result) const; ASTNode *makeDirectName(const XMLCh *prefix, const XMLCh *name) const; ASTNode *makeQNameLiteral(const XMLCh *uri, const XMLCh *prefix, const XMLCh *name) const; ASTNode *makeStringLiteral(const XMLCh *value) const; void pushElementStack(); void popElementStack(); void setNamespace(const XMLCh *prefix, const XMLCh *uri); virtual void nextEvent(YYLTYPE* pYYLOC) = 0; virtual EventType getEventType() = 0; virtual void getEventName(const XMLCh *&prefix, const XMLCh *&uri, const XMLCh *&localname) = 0; virtual void getEventValue(const XMLCh *&value, unsigned int &length, std::vector &offsets) = 0; virtual void getEventLocation(YYLTYPE* pYYLOC) = 0; virtual void getValueLocation(YYLTYPE* pYYLOC) = 0; DynamicContext *context_; AutoDelete childLexer_; std::vector offsets_; ElementStackEntry *elementStack_; State state_; XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer textBuffer_; bool textToCreate_; }; //////////////////////////////////////////////////////////////////////////////////////////////////// class XercesXSLT2Lexer : public XSLT2Lexer, private XERCES_CPP_NAMESPACE_QUALIFIER XMLDocumentHandler, private XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityHandler { public: XercesXSLT2Lexer(DynamicContext *context, const XERCES_CPP_NAMESPACE_QUALIFIER InputSource &srcToUse, XQilla::Language lang = XQilla::XSLT2); virtual ~XercesXSLT2Lexer(); struct CachedEvent { CachedEvent(EventType t, const XERCES_CPP_NAMESPACE_QUALIFIER Locator *locator, CachedEvent *pv); CachedEvent(const XMLCh *p, const XMLCh *u, const XMLCh *l, const XERCES_CPP_NAMESPACE_QUALIFIER Locator *locator, CachedEvent *pv); CachedEvent(EventType t, const XMLCh *p, const XMLCh *u, const XMLCh *l, const XMLCh *v, const XERCES_CPP_NAMESPACE_QUALIFIER Locator *locator, CachedEvent *pv); CachedEvent(const XMLCh *value, size_t length, const XERCES_CPP_NAMESPACE_QUALIFIER Locator *locator, CachedEvent *pv); EventType type; const XMLCh *prefix, *uri, *localname; XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer value; XercesFileLoc line, column; CachedEvent *prev, *next; }; protected: // From XSLT2Lexer virtual void nextEvent(YYLTYPE* pYYLOC); virtual EventType getEventType(); virtual void getEventName(const XMLCh *&prefix, const XMLCh *&uri, const XMLCh *&localname); virtual void getEventValue(const XMLCh *&value, unsigned int &length, std::vector &offsets); virtual void getEventLocation(YYLTYPE* pYYLOC); virtual void getValueLocation(YYLTYPE* pYYLOC); // From XMLEntityHandler virtual void startInputSource(const XERCES_CPP_NAMESPACE_QUALIFIER InputSource& inputSource) {} virtual void endInputSource(const XERCES_CPP_NAMESPACE_QUALIFIER InputSource& inputSource) {} virtual bool expandSystemId(const XMLCh* const systemId, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &toFill) { return false; } virtual void resetEntities() {} virtual XERCES_CPP_NAMESPACE_QUALIFIER InputSource* resolveEntity(const XMLCh* const publicId, const XMLCh* const systemId, const XMLCh* const baseURI = 0) { return 0; } virtual XERCES_CPP_NAMESPACE_QUALIFIER InputSource* resolveEntity(XERCES_CPP_NAMESPACE_QUALIFIER XMLResourceIdentifier* resourceIdentifier); // From XMLDocumentHandler virtual void startDocument(); virtual void endDocument(); virtual void resetDocument() {} #if _XERCES_VERSION >= 30000 virtual void startElement(const XERCES_CPP_NAMESPACE_QUALIFIER XMLElementDecl& elemDecl, const unsigned int urlId, const XMLCh* const elemPrefix, const XERCES_CPP_NAMESPACE_QUALIFIER RefVectorOf& attrList, const XMLSize_t attrCount, const bool isEmpty, const bool isRoot); virtual void docCharacters(const XMLCh* const chars, const XMLSize_t length, const bool cdataSection); virtual void ignorableWhitespace(const XMLCh* const chars, const XMLSize_t length, const bool cdataSection) {} #else virtual void startElement(const XERCES_CPP_NAMESPACE_QUALIFIER XMLElementDecl& elemDecl, const unsigned int urlId, const XMLCh* const elemPrefix, const XERCES_CPP_NAMESPACE_QUALIFIER RefVectorOf& attrList, const unsigned int attrCount, const bool isEmpty, const bool isRoot); virtual void docCharacters(const XMLCh* const chars, const unsigned int length, const bool cdataSection); virtual void ignorableWhitespace(const XMLCh* const chars, const unsigned int length, const bool cdataSection) {} #endif virtual void endElement(const XERCES_CPP_NAMESPACE_QUALIFIER XMLElementDecl& elemDecl, const unsigned int urlId, const bool isRoot, const XMLCh* const elemPrefix=0); virtual void docComment(const XMLCh* const comment) {} virtual void docPI(const XMLCh* const target, const XMLCh* const data) {} virtual void startEntityReference(const XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityDecl& entDecl) {} virtual void endEntityReference(const XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityDecl& entDecl) {} virtual void XMLDecl(const XMLCh* const versionStr, const XMLCh* const encodingStr, const XMLCh* const standaloneStr, const XMLCh* const actualEncodingStr) {} XERCES_CPP_NAMESPACE_QUALIFIER GrammarResolver *grammarResolver_; XERCES_CPP_NAMESPACE_QUALIFIER XMLScanner *scanner_; XERCES_CPP_NAMESPACE_QUALIFIER XMLPScanToken pptoken_; CachedEvent *currentEvent_, *firstEvent_, *lastEvent_; }; //////////////////////////////////////////////////////////////////////////////////////////////////// #ifdef HAVE_FAXPP extern "C" { #include } class FAXPPXSLT2Lexer : public XSLT2Lexer { public: FAXPPXSLT2Lexer(DynamicContext *context, const XERCES_CPP_NAMESPACE_QUALIFIER InputSource &srcToUse, XQilla::Language lang = XQilla::XSLT2); virtual ~FAXPPXSLT2Lexer(); protected: virtual void nextEvent(YYLTYPE* pYYLOC); virtual EventType getEventType(); virtual void getEventName(const XMLCh *&prefix, const XMLCh *&uri, const XMLCh *&localname); virtual void getEventValue(const XMLCh *&value, unsigned int &length, std::vector &offsets); virtual void getEventLocation(YYLTYPE* pYYLOC); virtual void getValueLocation(YYLTYPE* pYYLOC); bool nextNamespace(); bool nextAttribute(); void setLocation(YYLTYPE* pYYLOC, const FAXPP_Event *event); void setLocation(YYLTYPE* pYYLOC, const FAXPP_Attribute *attr); void setLocation(YYLTYPE* pYYLOC, const FAXPP_AttrValue *attrval); void setErrorLocation(YYLTYPE* pYYLOC); FaxppParserWrapper wrapper_; EventType eventType_; unsigned int attrIndex_; XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer value_; }; #endif #endif XQilla-2.3.0/src/lexer/XSLT2Lexer.cpp0000644000151400015140000014042011653565523014125 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "XSLT2Lexer.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef XQ_DEBUG_LEXER #include #define RECOGNIZE(token) { std::cerr << "Recognize: "#token << std::endl; return token; } #else #define RECOGNIZE(token) return token #endif XERCES_CPP_NAMESPACE_USE; using namespace std; const XMLCh XSLT_URI[] = { 'h', 't', 't', 'p', ':', '/', '/', 'w', 'w', 'w', '.', 'w', '3', '.', 'o', 'r', 'g', '/', '1', '9', '9', '9', '/', 'X', 'S', 'L', '/', 'T', 'r', 'a', 'n', 's', 'f', 'o', 'r', 'm', 0 }; const XMLCh STYLESHEET_NAME[] = { 's', 't', 'y', 'l', 'e', 's', 'h', 'e', 'e', 't', 0 }; const XMLCh TRANSFORM_NAME[] = { 't', 'r', 'a', 'n', 's', 'f', 'o', 'r', 'm', 0 }; const XMLCh TEMPLATE_NAME[] = { 't', 'e', 'm', 'p', 'l', 'a', 't', 'e', 0 }; const XMLCh FUNCTION_NAME[] = { 'f', 'u', 'n', 'c', 't', 'i', 'o', 'n', 0 }; const XMLCh VALUE_OF_NAME[] = { 'v', 'a', 'l', 'u', 'e', '-', 'o', 'f', 0 }; const XMLCh TEXT_NAME[] = { 't', 'e', 'x', 't', 0 }; const XMLCh APPLY_TEMPLATES_NAME[] = { 'a', 'p', 'p', 'l', 'y', '-', 't', 'e', 'm', 'p', 'l', 'a', 't', 'e', 's', 0 }; const XMLCh CALL_TEMPLATE_NAME[] = { 'c', 'a', 'l', 'l', '-', 't', 'e', 'm', 'p', 'l', 'a', 't', 'e', 0 }; const XMLCh WITH_PARAM_NAME[] = { 'w', 'i', 't', 'h', '-', 'p', 'a', 'r', 'a', 'm', 0 }; const XMLCh SEQUENCE_NAME[] = { 's', 'e', 'q', 'u', 'e', 'n', 'c', 'e', 0 }; const XMLCh PARAM_NAME[] = { 'p', 'a', 'r', 'a', 'm', 0 }; const XMLCh CHOOSE_NAME[] = { 'c', 'h', 'o', 'o', 's', 'e', 0 }; const XMLCh WHEN_NAME[] = { 'w', 'h', 'e', 'n', 0 }; const XMLCh OTHERWISE_NAME[] = { 'o', 't', 'h', 'e', 'r', 'w', 'i', 's', 'e', 0 }; const XMLCh IF_NAME[] = { 'i', 'f', 0 }; const XMLCh VARIABLE_NAME[] = { 'v', 'a', 'r', 'i', 'a', 'b', 'l', 'e', 0 }; const XMLCh COMMENT_NAME[] = { 'c', 'o', 'm', 'm', 'e', 'n', 't', 0 }; const XMLCh PI_NAME[] = { 'p', 'r', 'o', 'c', 'e', 's', 's', 'i', 'n', 'g', '-', 'i', 'n', 's', 't', 'r', 'u', 'c', 't', 'i', 'o', 'n', 0 }; const XMLCh DOCUMENT_NAME[] = { 'd', 'o', 'c', 'u', 'm', 'e', 'n', 't', 0 }; const XMLCh ATTRIBUTE_NAME[] = { 'a', 't', 't', 'r', 'i', 'b', 'u', 't', 'e', 0 }; const XMLCh NAMESPACE_NAME[] = { 'n', 'a', 'm', 'e', 's', 'p', 'a', 'c', 'e', 0 }; const XMLCh ANALYZE_STRING_NAME[] = { 'a', 'n', 'a', 'l', 'y', 'z', 'e', '-', 's', 't', 'r', 'i', 'n', 'g', 0 }; const XMLCh MATCHING_SUBSTRING_NAME[] = { 'm', 'a', 't', 'c', 'h', 'i', 'n', 'g', '-', 's', 'u', 'b', 's', 't', 'r', 'i', 'n', 'g', 0 }; const XMLCh NON_MATCHING_SUBSTRING_NAME[] = { 'n', 'o', 'n', '-', 'm', 'a', 't', 'c', 'h', 'i', 'n', 'g', '-', 's', 'u', 'b', 's', 't', 'r', 'i', 'n', 'g', 0 }; const XMLCh COPY_OF_NAME[] = { 'c', 'o', 'p', 'y', '-', 'o', 'f', 0 }; const XMLCh COPY_NAME[] = { 'c', 'o', 'p', 'y', 0 }; const XMLCh FOR_EACH_NAME[] = { 'f', 'o', 'r', '-', 'e', 'a', 'c', 'h', 0 }; const XMLCh OUTPUT_NAME[] = { 'o', 'u', 't', 'p', 'u', 't', 0 }; const XMLCh IMPORT_SCHEMA_NAME[] = { 'i', 'm', 'p', 'o', 'r', 't', '-', 's', 'c', 'h', 'e', 'm', 'a', 0 }; const XMLCh ELEMENT_NAME[] = { 'e', 'l', 'e', 'm', 'e', 'n', 't', 0 }; const XMLCh VERSION_NAME[] = { 'v', 'e', 'r', 's', 'i', 'o', 'n', 0 }; const XMLCh MATCH_NAME[] = { 'm', 'a', 't', 'c', 'h', 0 }; const XMLCh AS_NAME[] = { 'a', 's', 0 }; const XMLCh SELECT_NAME[] = { 's', 'e', 'l', 'e', 'c', 't', 0 }; const XMLCh MODE_NAME[] = { 'm', 'o', 'd', 'e', 0 }; const XMLCh NAME_NAME[] = { 'n', 'a', 'm', 'e', 0 }; const XMLCh PRIORITY_NAME[] = { 'p', 'r', 'i', 'o', 'r', 'i', 't', 'y', 0 }; const XMLCh TUNNEL_NAME[] = { 't', 'u', 'n', 'n', 'e', 'l', 0 }; const XMLCh REQUIRED_NAME[] = { 'r', 'e', 'q', 'u', 'i', 'r', 'e', 'd', 0 }; const XMLCh OVERRIDE_NAME[] = { 'o', 'v', 'e', 'r', 'r', 'i', 'd', 'e', 0 }; const XMLCh TEST_NAME[] = { 't', 'e', 's', 't', 0 }; const XMLCh SEPARATOR_NAME[] = { 's', 'e', 'p', 'a', 'r', 'a', 't', 'o', 'r', 0 }; const XMLCh REGEX_NAME[] = { 'r', 'e', 'g', 'e', 'x', 0 }; const XMLCh FLAGS_NAME[] = { 'f', 'l', 'a', 'g', 's', 0 }; const XMLCh COPY_NAMESPACES_NAME[] = { 'c', 'o', 'p', 'y', '-', 'n', 'a', 'm', 'e', 's', 'p', 'a', 'c', 'e', 's', 0 }; const XMLCh INHERIT_NAMESPACES_NAME[] = { 'i', 'n', 'h', 'e', 'r', 'i', 't', '-', 'n', 'a', 'm', 'e', 's', 'p', 'a', 'c', 'e', 's', 0 }; const XMLCh METHOD_NAME[] = { 'm', 'e', 't', 'h', 'o', 'd', 0 }; const XMLCh BYTE_ORDER_MARK_NAME[] = { 'b', 'y', 't', 'e', '-', 'o', 'r', 'd', 'e', 'r', '-', 'm', 'a', 'r', 'k', 0 }; const XMLCh CDATA_SECTION_ELEMENTS_NAME[] = { 'c', 'd', 'a', 't', 'a', '-', 's', 'e', 'c', 't', 'i', 'o', 'n', '-', 'e', 'l', 'e', 'm', 'e', 'n', 't', 's', 0 }; const XMLCh DOCTYPE_PUBLIC_NAME[] = { 'd', 'o', 'c', 't', 'y', 'p', 'e', '-', 'p', 'u', 'b', 'l', 'i', 'c', 0 }; const XMLCh DOCTYPE_SYSTEM_NAME[] = { 'd', 'o', 'c', 't', 'y', 'p', 'e', '-', 's', 'y', 's', 't', 'e', 'm', 0 }; const XMLCh ENCODING_NAME[] = { 'e', 'n', 'c', 'o', 'd', 'i', 'n', 'g', 0 }; const XMLCh ESCAPE_URI_ATTRIBUTES_NAME[] = { 'e', 's', 'c', 'a', 'p', 'e', '-', 'u', 'r', 'i', '-', 'a', 't', 't', 'r', 'i', 'b', 'u', 't', 'e', 's', 0 }; const XMLCh INCLUDE_CONTENT_TYPE_NAME[] = { 'i', 'n', 'c', 'l', 'u', 'd', 'e', '-', 'c', 'o', 'n', 't', 'e', 'n', 't', '-', 't', 'y', 'p', 'e', 0 }; const XMLCh INDENT_NAME[] = { 'i', 'n', 'd', 'e', 'n', 't', 0 }; const XMLCh MEDIA_TYPE_NAME[] = { 'm', 'e', 'd', 'i', 'a', '-', 't', 'y', 'p', 'e', 0 }; const XMLCh NORMALIZATION_FORM_NAME[] = { 'n', 'o', 'r', 'm', 'a', 'l', 'i', 'z', 'a', 't', 'i', 'o', 'n', '-', 'f', 'o', 'r', 'm', 0 }; const XMLCh OMIT_XML_DECLARATION_NAME[] = { 'o', 'm', 'i', 't', '-', 'x', 'm', 'l', '-', 'd', 'e', 'c', 'l', 'a', 'r', 'a', 't', 'i', 'o', 'n', 0 }; const XMLCh STANDALONE_NAME[] = { 's', 't', 'a', 'n', 'd', 'a', 'l', 'o', 'n', 'e', 0 }; const XMLCh UNDECLARE_PREFIXES_NAME[] = { 'u', 'n', 'd', 'e', 'c', 'l', 'a', 'r', 'e', '-', 'p', 'r', 'e', 'f', 'i', 'x', 'e', 's', 0 }; const XMLCh USE_CHARACTER_MAPS_NAME[] = { 'u', 's', 'e', '-', 'c', 'h', 'a', 'r', 'a', 'c', 't', 'e', 'r', '-', 'm', 'a', 'p', 's', 0 }; const XMLCh EXCLUDE_RESULT_PREFIXES_NAME[] = { 'e', 'x', 'c', 'l', 'u', 'd', 'e', '-', 'r', 'e', 's', 'u', 'l', 't', '-', 'p', 'r', 'e', 'f', 'i', 'x', 'e', 's', 0 }; const XMLCh XPATH_DEFAULT_NAMESPACE_NAME[] = { 'x', 'p', 'a', 't', 'h', '-', 'd', 'e', 'f', 'a', 'u', 'l', 't', '-', 'n', 'a', 'm', 'e', 's', 'p', 'a', 'c', 'e', 0 }; const XMLCh SCHEMA_LOCATION_NAME[] = { 's', 'c', 'h', 'e', 'm', 'a', '-', 'l', 'o', 'c', 'a', 't', 'i', 'o', 'n', 0 }; const XMLCh SPACE_NAME[] = { 's', 'p', 'a', 'c', 'e', 0 }; const XMLCh PRESERVE_NAME[] = { 'p', 'r', 'e', 's', 'e', 'r', 'v', 'e', 0 }; const XMLCh DEFAULT_NAME[] = { 'd', 'e', 'f', 'a', 'u', 'l', 't', 0 }; const XMLCh YES_VALUE[] = { 'y', 'e', 's', 0 }; const XMLCh NO_VALUE[] = { 'n', 'o', 0 }; struct AttrData { const XMLCh *name; int token; enum { PATTERN, SEQUENCE_TYPE, EXPRESSION, ATTR_VALUE_TEMPLATE, STRING, QNAME, YESNO, TEMPLATE_MODES, OUTPUT_METHOD, QNAMES } type; }; #define AS_ATTR_DATA { AS_NAME, _XSLT_AS_, AttrData::SEQUENCE_TYPE } #define SELECT_ATTR_DATA { SELECT_NAME, _XSLT_SELECT_, AttrData::EXPRESSION } #define NAME_ATTR_DATA { NAME_NAME, _XSLT_NAME_, AttrData::QNAME } #define SEPARATOR_ATTR_DATA { SEPARATOR_NAME, _XSLT_SEPARATOR_, AttrData::ATTR_VALUE_TEMPLATE } #define END_ATTR_DATA { 0, 0, AttrData::STRING } const AttrData STYLESHEET_ATTR_DATA[] = { { VERSION_NAME, _XSLT_VERSION_, AttrData::STRING }, { EXCLUDE_RESULT_PREFIXES_NAME, _XSLT_EXCLUDE_RESULT_PREFIXES_, AttrData::STRING }, // TBD the rest of the attrs - jpcs END_ATTR_DATA }; const AttrData TEMPLATE_ATTR_DATA[] = { { MATCH_NAME, _XSLT_MATCH_, AttrData::PATTERN }, NAME_ATTR_DATA, { PRIORITY_NAME, _XSLT_PRIORITY_, AttrData::EXPRESSION }, { MODE_NAME, _XSLT_MODE_, AttrData::TEMPLATE_MODES }, AS_ATTR_DATA, END_ATTR_DATA }; const AttrData FUNCTION_ATTR_DATA[] = { NAME_ATTR_DATA, AS_ATTR_DATA, { OVERRIDE_NAME, _XSLT_OVERRIDE_, AttrData::YESNO }, END_ATTR_DATA }; const AttrData VALUE_OF_ATTR_DATA[] = { SELECT_ATTR_DATA, SEPARATOR_ATTR_DATA, END_ATTR_DATA }; const AttrData APPLY_TEMPLATES_ATTR_DATA[] = { { MODE_NAME, _XSLT_MODE_, AttrData::TEMPLATE_MODES }, SELECT_ATTR_DATA, END_ATTR_DATA }; const AttrData CALL_TEMPLATE_ATTR_DATA[] = { NAME_ATTR_DATA, END_ATTR_DATA }; const AttrData WITH_PARAM_ATTR_DATA[] = { NAME_ATTR_DATA, SELECT_ATTR_DATA, AS_ATTR_DATA, { TUNNEL_NAME, _XSLT_TUNNEL_, AttrData::YESNO }, END_ATTR_DATA }; const AttrData SEQUENCE_ATTR_DATA[] = { SELECT_ATTR_DATA, END_ATTR_DATA }; const AttrData PARAM_ATTR_DATA[] = { NAME_ATTR_DATA, SELECT_ATTR_DATA, AS_ATTR_DATA, { REQUIRED_NAME, _XSLT_REQUIRED_, AttrData::YESNO }, { TUNNEL_NAME, _XSLT_TUNNEL_, AttrData::YESNO }, END_ATTR_DATA }; const AttrData G_TEST_ATTR_DATA[] = { { TEST_NAME, _XSLT_TEST_, AttrData::EXPRESSION }, END_ATTR_DATA }; const AttrData VARIABLE_ATTR_DATA[] = { NAME_ATTR_DATA, SELECT_ATTR_DATA, AS_ATTR_DATA, END_ATTR_DATA }; const AttrData COMMENT_ATTR_DATA[] = { SELECT_ATTR_DATA, END_ATTR_DATA }; const AttrData PI_ATTR_DATA[] = { { NAME_NAME, _XSLT_NAME_, AttrData::ATTR_VALUE_TEMPLATE }, SELECT_ATTR_DATA, END_ATTR_DATA }; const AttrData ATTRIBUTE_ATTR_DATA[] = { { NAME_NAME, _XSLT_NAME_, AttrData::ATTR_VALUE_TEMPLATE }, { NAMESPACE_NAME, _XSLT_NAMESPACE_A_, AttrData::ATTR_VALUE_TEMPLATE }, SELECT_ATTR_DATA, SEPARATOR_ATTR_DATA, // TBD validation and type - jpcs END_ATTR_DATA }; const AttrData NAMESPACE_ATTR_DATA[] = { { NAME_NAME, _XSLT_NAME_, AttrData::ATTR_VALUE_TEMPLATE }, SELECT_ATTR_DATA, END_ATTR_DATA }; const AttrData ELEMENT_ATTR_DATA[] = { { NAME_NAME, _XSLT_NAME_, AttrData::ATTR_VALUE_TEMPLATE }, { NAMESPACE_NAME, _XSLT_NAMESPACE_A_, AttrData::ATTR_VALUE_TEMPLATE }, // TBD inherit-namespaces - jpcs // TBD use-attribute-sets - jpcs // TBD validation and type - jpcs END_ATTR_DATA }; const AttrData ANALYZE_STRING_ATTR_DATA[] = { SELECT_ATTR_DATA, { REGEX_NAME, _XSLT_REGEX_, AttrData::ATTR_VALUE_TEMPLATE }, { FLAGS_NAME, _XSLT_FLAGS_, AttrData::ATTR_VALUE_TEMPLATE }, END_ATTR_DATA }; const AttrData COPY_OF_ATTR_DATA[] = { SELECT_ATTR_DATA, { COPY_NAMESPACES_NAME, _XSLT_COPY_NAMESPACES_, AttrData::YESNO }, // TBD validation and type - jpcs END_ATTR_DATA }; const AttrData COPY_ATTR_DATA[] = { { COPY_NAMESPACES_NAME, _XSLT_COPY_NAMESPACES_, AttrData::YESNO }, { INHERIT_NAMESPACES_NAME, _XSLT_INHERIT_NAMESPACES_, AttrData::YESNO }, // TBD attribute sets - jpcs // TBD validation and type - jpcs END_ATTR_DATA }; const AttrData FOR_EACH_ATTR_DATA[] = { SELECT_ATTR_DATA }; const AttrData OUTPUT_ATTR_DATA[] = { // { VERSION_NAME, _XSLT_VERSION_, AttrData::STRING } }; const AttrData IMPORT_SCHEMA_ATTR_DATA[] = { { NAMESPACE_NAME, _XSLT_NAMESPACE_STR_, AttrData::STRING }, { SCHEMA_LOCATION_NAME, _XSLT_SCHEMA_LOCATION_, AttrData::STRING }, END_ATTR_DATA }; struct InstructionInfo { const XMLCh *name; int token; const AttrData *attrs; enum { STRIP, PRESERVE, DEFAULT } whitespace; }; const InstructionInfo INSTRUCTION_INFO[] = { { STYLESHEET_NAME, _XSLT_STYLESHEET_, STYLESHEET_ATTR_DATA, InstructionInfo::STRIP }, { TRANSFORM_NAME, _XSLT_STYLESHEET_, STYLESHEET_ATTR_DATA, InstructionInfo::STRIP }, { TEMPLATE_NAME, _XSLT_TEMPLATE_, TEMPLATE_ATTR_DATA, InstructionInfo::DEFAULT }, { FUNCTION_NAME, _XSLT_FUNCTION_, FUNCTION_ATTR_DATA, InstructionInfo::DEFAULT }, { VALUE_OF_NAME, _XSLT_VALUE_OF_, VALUE_OF_ATTR_DATA, InstructionInfo::DEFAULT }, { TEXT_NAME, _XSLT_TEXT_, 0, InstructionInfo::PRESERVE }, { APPLY_TEMPLATES_NAME, _XSLT_APPLY_TEMPLATES_, APPLY_TEMPLATES_ATTR_DATA, InstructionInfo::STRIP }, { CALL_TEMPLATE_NAME, _XSLT_CALL_TEMPLATE_, CALL_TEMPLATE_ATTR_DATA, InstructionInfo::STRIP }, { WITH_PARAM_NAME, _XSLT_WITH_PARAM_, WITH_PARAM_ATTR_DATA, InstructionInfo::DEFAULT }, { SEQUENCE_NAME, _XSLT_SEQUENCE_, SEQUENCE_ATTR_DATA, InstructionInfo::DEFAULT }, { PARAM_NAME, _XSLT_PARAM_, PARAM_ATTR_DATA, InstructionInfo::DEFAULT }, { CHOOSE_NAME, _XSLT_CHOOSE_, 0, InstructionInfo::STRIP }, { WHEN_NAME, _XSLT_WHEN_, G_TEST_ATTR_DATA, InstructionInfo::DEFAULT }, { OTHERWISE_NAME, _XSLT_OTHERWISE_, 0, InstructionInfo::DEFAULT }, { IF_NAME, _XSLT_IF_, G_TEST_ATTR_DATA, InstructionInfo::DEFAULT }, { VARIABLE_NAME, _XSLT_VARIABLE_, VARIABLE_ATTR_DATA, InstructionInfo::DEFAULT }, { COMMENT_NAME, _XSLT_COMMENT_, COMMENT_ATTR_DATA, InstructionInfo::DEFAULT }, { PI_NAME, _XSLT_PI_, PI_ATTR_DATA, InstructionInfo::DEFAULT }, { DOCUMENT_NAME, _XSLT_DOCUMENT_, 0, InstructionInfo::DEFAULT }, { ATTRIBUTE_NAME, _XSLT_ATTRIBUTE_, ATTRIBUTE_ATTR_DATA, InstructionInfo::DEFAULT }, { ANALYZE_STRING_NAME, _XSLT_ANALYZE_STRING_, ANALYZE_STRING_ATTR_DATA, InstructionInfo::STRIP }, { MATCHING_SUBSTRING_NAME, _XSLT_MATCHING_SUBSTRING_, 0, InstructionInfo::DEFAULT }, { NON_MATCHING_SUBSTRING_NAME, _XSLT_NON_MATCHING_SUBSTRING_, 0, InstructionInfo::DEFAULT }, { COPY_OF_NAME, _XSLT_COPY_OF_, COPY_OF_ATTR_DATA, InstructionInfo::DEFAULT }, { COPY_NAME, _XSLT_COPY_, COPY_ATTR_DATA, InstructionInfo::DEFAULT }, { FOR_EACH_NAME, _XSLT_FOR_EACH_, FOR_EACH_ATTR_DATA, InstructionInfo::DEFAULT }, { OUTPUT_NAME, _XSLT_OUTPUT_, OUTPUT_ATTR_DATA, InstructionInfo::DEFAULT }, { IMPORT_SCHEMA_NAME, _XSLT_IMPORT_SCHEMA_, IMPORT_SCHEMA_ATTR_DATA, InstructionInfo::DEFAULT }, { ELEMENT_NAME, _XSLT_ELEMENT_, ELEMENT_ATTR_DATA, InstructionInfo::DEFAULT }, { NAMESPACE_NAME, _XSLT_NAMESPACE_, NAMESPACE_ATTR_DATA, InstructionInfo::DEFAULT }, { 0, 0 } }; // Strip elements: // // xsl:analyze-string // xsl:apply-imports // xsl:apply-templates // xsl:attribute-set // xsl:call-template // xsl:character-map // xsl:choose // xsl:next-match // xsl:stylesheet // xsl:transform XSLT2Lexer::XSLT2Lexer(DynamicContext *context, const InputSource &srcToUse, XQilla::Language lang) : Lexer(context->getMemoryManager(), lang, context->getMemoryManager()->getPooledString(srcToUse.getSystemId()), 0, 0), context_(context), childLexer_(0), elementStack_(0), state_(LANG_TOKEN), textBuffer_(1023, context->getMemoryManager()), textToCreate_(false) { } XSLT2Lexer::~XSLT2Lexer() { while(elementStack_ != 0) { popElementStack(); } } void XSLT2Lexer::undoLessThan() { if(childLexer_.get() != 0) { childLexer_->undoLessThan(); } } int XSLT2Lexer::lang_token_state(YYSTYPE* pYYLVAL, YYLTYPE* pYYLOC) { state_ = NEXT_EVENT; RECOGNIZE(_LANG_XSLT2_); } int XSLT2Lexer::attrs_state(YYSTYPE* pYYLVAL, YYLTYPE* pYYLOC) { const XMLCh *prefix, *uri, *name, *value; unsigned int length; getEventName(prefix, uri, name); getEventValue(value, length, offsets_); getEventLocation(pYYLOC); if(XPath2Utils::equals(uri, XMLUni::fgXMLURIName) && XPath2Utils::equals(name, SPACE_NAME)) { value = mm_->getPooledString(value, length); // Keep track of the xml:space policy if(XPath2Utils::equals(value, PRESERVE_NAME)) { elementStack_->xmlSpacePreserve = true; } else if(XPath2Utils::equals(value, DEFAULT_NAME)) { elementStack_->xmlSpacePreserve = false; } } else if(elementStack_->info != 0 && uri == 0) { if(elementStack_->info->attrs != 0) { for(const AttrData *entry = elementStack_->info->attrs; entry->name != 0; ++entry) { if(XPath2Utils::equals(name, entry->name)) { switch(entry->type) { case AttrData::PATTERN: case AttrData::SEQUENCE_TYPE: case AttrData::EXPRESSION: getValueLocation(pYYLOC); childLexer_.set(new XQLexer(mm_, m_szQueryFile, m_lineno, m_columnno, value, length, offsets_, (XQilla::Language)((m_language & ~XQilla::XSLT2) | XQilla::XPATH2))); break; case AttrData::ATTR_VALUE_TEMPLATE: getValueLocation(pYYLOC); childLexer_.set(new XQLexer(mm_, m_szQueryFile, m_lineno, m_columnno, value, length, offsets_, (XQilla::Language)((m_language & ~XQilla::XSLT2) | XQilla::XPATH2), XQLexer::MODE_ATTR_VALUE_TEMPLATE)); break; case AttrData::TEMPLATE_MODES: getValueLocation(pYYLOC); childLexer_.set(new XQLexer(mm_, m_szQueryFile, m_lineno, m_columnno, value, length, offsets_, (XQilla::Language)((m_language & ~XQilla::XSLT2) | XQilla::XPATH2), XQLexer::MODE_TEMPLATE_MODES)); break; case AttrData::OUTPUT_METHOD: getValueLocation(pYYLOC); childLexer_.set(new XQLexer(mm_, m_szQueryFile, m_lineno, m_columnno, value, length, offsets_, (XQilla::Language)((m_language & ~XQilla::XSLT2) | XQilla::XPATH2), XQLexer::MODE_OUTPUT_METHOD)); break; case AttrData::QNAMES: getValueLocation(pYYLOC); childLexer_.set(new XQLexer(mm_, m_szQueryFile, m_lineno, m_columnno, value, length, offsets_, (XQilla::Language)((m_language & ~XQilla::XSLT2) | XQilla::XPATH2), XQLexer::MODE_QNAMES)); break; case AttrData::STRING: pYYLVAL->str = (XMLCh*)mm_->getPooledString(value, length); break; case AttrData::QNAME: pYYLVAL->str = (XMLCh*)mm_->getPooledString(value, length); if(!XMLChar1_0::isValidQName(value, length)) { getValueLocation(pYYLOC); std::ostringstream oss; oss << "The attribute value \"" << UTF8(pYYLVAL->str) << "\" is not a valid xs:QName [err:XTSE0020]"; error(oss.str().c_str()); } break; case AttrData::YESNO: XMLBuffer valueBuf; valueBuf.set(value, length); XMLString::collapseWS(valueBuf.getRawBuffer()); if(XPath2Utils::equals(valueBuf.getRawBuffer(), YES_VALUE)) { pYYLVAL->boolean = true; } else if(XPath2Utils::equals(valueBuf.getRawBuffer(), NO_VALUE)) { pYYLVAL->boolean = false; } else { getValueLocation(pYYLOC); error("The attribute does not have a value of \"yes\" or \"no\" [err:XTSE0020]"); } break; } state_ = NEXT_EVENT; RECOGNIZE(entry->token); } } } // Is it one of the standard attributes? if(XPath2Utils::equals(name, XPATH_DEFAULT_NAMESPACE_NAME)) { // TBD xpath-default-name - jpcs } } if(elementStack_->info == 0) { pYYLVAL->astNode = makeQNameLiteral(uri, prefix, name); // Set up childLexer_ to lex the attribute value as an attribute value template getValueLocation(pYYLOC); childLexer_.set(new XQLexer(mm_, m_szQueryFile, m_lineno, m_columnno, value, length, offsets_, (XQilla::Language)((m_language & ~XQilla::XSLT2) | XQilla::XPATH2), XQLexer::MODE_ATTR_VALUE_TEMPLATE)); state_ = NEXT_EVENT; RECOGNIZE(_XSLT_ATTR_NAME_); } else if(uri != 0) { // Extension attribute - ignore for the moment state_ = NEXT_EVENT; return yylex(pYYLVAL, pYYLOC); } else { ostringstream oss; oss << "Unexpected attribute {" << UTF8(uri) << "}" << UTF8(name) << " [err:XTSE0090]"; error(oss.str().c_str()); } // Never happens RECOGNIZE(MYEOF); } #define checkTextBuffer(uri, name) \ { \ if(textToCreate_) { \ bool isWS = XMLChar1_0::isAllSpaces(textBuffer_.getRawBuffer(), textBuffer_.getLen()); \ if(((name) != 0 && XPath2Utils::equals((uri), XSLT_URI) && \ XPath2Utils::equals((name), PARAM_NAME) && isWS) || \ (!elementStack_->reportWhitespace() && isWS)) { \ textBuffer_.reset(); \ textToCreate_ = false; \ } \ else { \ pYYLVAL->astNode = makeStringLiteral(mm_->getPooledString(textBuffer_.getRawBuffer())); \ \ textBuffer_.reset(); \ textToCreate_ = false; \ \ state_ = CURRENT_EVENT; \ if(isWS) { \ RECOGNIZE(_XSLT_WS_TEXT_NODE_); \ } \ else { \ RECOGNIZE(_XSLT_TEXT_NODE_); \ } \ } \ } \ } int XSLT2Lexer::next_event_state(YYSTYPE* pYYLVAL, YYLTYPE* pYYLOC) { nextEvent(pYYLOC); state_ = CURRENT_EVENT; return current_event_state(pYYLVAL, pYYLOC); } void XSLT2Lexer::setNamespace(const XMLCh *prefix, const XMLCh *uri) { if(elementStack_->info != 0 && elementStack_->info->token == _XSLT_STYLESHEET_) { // If this is the xsl:stylesheet element, add the namespace bindings to the context if(prefix == 0 || *prefix == 0) context_->setDefaultElementAndTypeNS(uri); else context_->setNamespaceBinding(prefix, uri); } else { if(elementStack_->nsResolver == elementStack_->prev->nsResolver) { elementStack_->nsResolver = new (mm_) XQillaNSResolverImpl(mm_, elementStack_->nsResolver != 0 ? elementStack_->nsResolver : context_->getNSResolver()); } elementStack_->nsResolver->addNamespaceBinding(prefix, uri); } } int XSLT2Lexer::current_event_state(YYSTYPE* pYYLVAL, YYLTYPE* pYYLOC) { while(true) { switch(getEventType()) { case START_DOCUMENT: pushElementStack(); break; case END_DOCUMENT: popElementStack(); // End of file RECOGNIZE(MYEOF); break; case START_ELEMENT: { const XMLCh *prefix, *uri, *name; getEventName(prefix, uri, name); checkTextBuffer(uri, name); getEventLocation(pYYLOC); pushElementStack(); // See if we recognize the element if(XPath2Utils::equals(uri, XSLT_URI)) { for(const InstructionInfo *entry = INSTRUCTION_INFO; entry->name != 0; ++entry) { if(XPath2Utils::equals(name, entry->name)) { elementStack_->info = entry; } } if(elementStack_->info == 0) { std::ostringstream oss; oss << "Unrecognized XSLT element {" << UTF8(uri) << "}" << UTF8(name); error(oss.str().c_str()); } } state_ = NEXT_EVENT; if(elementStack_->info != 0) { RECOGNIZE(elementStack_->info->token); } pYYLVAL->astNode = makeQNameLiteral(uri, prefix, name); RECOGNIZE(_XSLT_ELEMENT_NAME_); break; } case END_ELEMENT: checkTextBuffer(0, 0); getEventLocation(pYYLOC); // Put off popping the stack until before the next token state_ = POP_STACK; RECOGNIZE(_XSLT_END_ELEMENT_); break; case TEXT: if(!textToCreate_) getEventLocation(pYYLOC); const XMLCh *value; unsigned int length; getEventValue(value, length, offsets_); textBuffer_.append(value, length); textToCreate_ = true; break; case NAMESPACE: { const XMLCh *prefix, *uri, *name, *value; unsigned int length; getEventName(prefix, uri, name); getEventValue(value, length, offsets_); const XMLCh *nsuri = mm_->getPooledString(value, length); if(!XPath2Utils::equals(uri, XMLUni::fgXMLNSURIName) && XPath2Utils::equals(name, XPATH_DEFAULT_NAMESPACE_NAME)) { setNamespace(0, nsuri); } else { if(prefix != 0 && *prefix != 0) { setNamespace(name, nsuri); } if(elementStack_->info == 0) { VectorOfASTNodes *valueVector = new (mm_) VectorOfASTNodes(XQillaAllocator(mm_)); valueVector->push_back(makeStringLiteral(nsuri)); pYYLVAL->astNode = wrap(new (mm_) XQAttributeConstructor(makeDirectName(prefix, name), valueVector, mm_)); state_ = NEXT_EVENT; RECOGNIZE(_XSLT_XMLNS_ATTR_); } } break; } case ATTRIBUTE: return attrs_state(pYYLVAL, pYYLOC); } nextEvent(pYYLOC); } // Never happens RECOGNIZE(MYEOF); } int XSLT2Lexer::yylex(YYSTYPE* pYYLVAL, YYLTYPE* pYYLOC) { if(childLexer_.get() != 0) { int token = childLexer_->yylex(pYYLVAL, pYYLOC); if(token != MYEOF) { m_lineno = pYYLOC->first_line; m_columnno = pYYLOC->first_column; return token; } childLexer_.set(0); } switch(state_) { case LANG_TOKEN: return lang_token_state(pYYLVAL, pYYLOC); case POP_STACK: popElementStack(); state_ = NEXT_EVENT; // Fall through case NEXT_EVENT: return next_event_state(pYYLVAL, pYYLOC); case CURRENT_EVENT: return current_event_state(pYYLVAL, pYYLOC); } // Never happens RECOGNIZE(MYEOF); } ASTNode *XSLT2Lexer::wrap(ASTNode *result) const { result->setLocationInfo(m_szQueryFile, m_lineno, m_columnno); return result; } ASTNode *XSLT2Lexer::makeQNameLiteral(const XMLCh *uri, const XMLCh *prefix, const XMLCh *name) const { return wrap(new (mm_) XQQNameLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_QNAME, uri, prefix, name, mm_)); } ASTNode *XSLT2Lexer::makeDirectName(const XMLCh *prefix, const XMLCh *name) const { static const XMLCh colon[] = { ':', 0 }; return wrap(new (mm_) XQDirectName(prefix == 0 ? name : XPath2Utils::concatStrings(prefix, colon, name, mm_), /*isAttr*/true, mm_)); } ASTNode *XSLT2Lexer::makeStringLiteral(const XMLCh *value) const { return wrap(new (mm_) XQLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, value, AnyAtomicType::STRING, mm_)); } void XSLT2Lexer::pushElementStack() { elementStack_ = new ElementStackEntry(elementStack_); } void XSLT2Lexer::popElementStack() { ElementStackEntry *tmp = elementStack_->prev; delete elementStack_; elementStack_ = tmp; } DOMXPathNSResolver *XSLT2Lexer::getNSResolver() const { return elementStack_->nsResolver; } //////////////////////////////////////////////////////////////////////////////////////////////////// XSLT2Lexer::ElementStackEntry::ElementStackEntry(ElementStackEntry *p) : info(0), xmlSpacePreserve(p ? p->xmlSpacePreserve : false), nsResolver(p ? p->nsResolver : 0), prev(p) { } bool XSLT2Lexer::ElementStackEntry::reportWhitespace() const { if(xmlSpacePreserve) return info == 0 || info->whitespace != InstructionInfo::STRIP; return info != 0 && info->whitespace == InstructionInfo::PRESERVE; } //////////////////////////////////////////////////////////////////////////////////////////////////// #ifdef HAVE_FAXPP static inline const XMLCh *nullTerm(const FAXPP_Text &text, XPath2MemoryManager *mm) { return mm->getPooledString((XMLCh*)text.ptr, text.len / sizeof(XMLCh)); } FAXPPXSLT2Lexer::FAXPPXSLT2Lexer(DynamicContext *context, const InputSource &srcToUse, XQilla::Language lang) : XSLT2Lexer(context, srcToUse, lang), wrapper_(context->getDocumentCache()->getXMLEntityResolver()), eventType_(END_ELEMENT), attrIndex_(0) { // We'll normalize attributes ourselves FAXPP_set_normalize_attrs(wrapper_.parser, false); FAXPP_Error err = wrapper_.parseInputSource(srcToUse, context->getMemoryManager()); if(err == OUT_OF_MEMORY) error("Out of memory"); if(err == UNSUPPORTED_ENCODING) error("Unsupported encoding"); } FAXPPXSLT2Lexer::~FAXPPXSLT2Lexer() { } bool FAXPPXSLT2Lexer::nextNamespace() { const FAXPP_Event *event = FAXPP_get_current_event(wrapper_.parser); eventType_ = NAMESPACE; while(attrIndex_ < event->attr_count) { FAXPP_Attribute *attr = &event->attrs[attrIndex_]; if(attr->xmlns_attr) return true; // Recoginze [xsl:]xpath-default-namespace as a type NAMESPACE too if(XPath2Utils::equals(nullTerm(event->uri, mm_), XSLT_URI)) { if(attr->uri.len == 0 && XPath2Utils::equals(nullTerm(attr->name, mm_), XPATH_DEFAULT_NAMESPACE_NAME)) { attr->xmlns_attr = 1; return true; } } else { if(XPath2Utils::equals(nullTerm(attr->name, mm_), XPATH_DEFAULT_NAMESPACE_NAME) && XPath2Utils::equals(nullTerm(attr->uri, mm_), XSLT_URI)) { attr->xmlns_attr = 1; return true; } } ++attrIndex_; } attrIndex_ = 0; return nextAttribute(); } bool FAXPPXSLT2Lexer::nextAttribute() { const FAXPP_Event *event = FAXPP_get_current_event(wrapper_.parser); eventType_ = ATTRIBUTE; while(attrIndex_ < event->attr_count) { if(!event->attrs[attrIndex_].xmlns_attr) return true; ++attrIndex_; } eventType_ = (XSLT2Lexer::EventType)-1; return false; } void FAXPPXSLT2Lexer::nextEvent(YYLTYPE* pYYLOC) { const FAXPP_Event *event = FAXPP_get_current_event(wrapper_.parser); if(eventType_ == START_ELEMENT) { attrIndex_ = 0; if(nextNamespace()) return; } if(eventType_ == NAMESPACE) { ++attrIndex_; if(nextNamespace()) return; } if(eventType_ == ATTRIBUTE) { ++attrIndex_; if(nextAttribute()) return; } if(eventType_ != END_ELEMENT && event->type == SELF_CLOSING_ELEMENT_EVENT) { eventType_ = END_ELEMENT; return; } eventType_ = (XSLT2Lexer::EventType)-1; while(eventType_ == (XSLT2Lexer::EventType)-1) { FAXPP_Error err = FAXPP_next_event(wrapper_.parser); if(err != NO_ERROR) { setErrorLocation(pYYLOC); ostringstream oss; oss << "Error parsing document: " << FAXPP_err_to_string(err); error(oss.str().c_str()); } event = FAXPP_get_current_event(wrapper_.parser); switch(event->type) { case SELF_CLOSING_ELEMENT_EVENT: case START_ELEMENT_EVENT: eventType_ = START_ELEMENT; break; case END_ELEMENT_EVENT: eventType_ = END_ELEMENT; break; case ENTITY_REFERENCE_EVENT: // TBD handle external parsed entities - jpcs if(event->value.ptr == 0) break; // Fall through case DEC_CHAR_REFERENCE_EVENT: case HEX_CHAR_REFERENCE_EVENT: case CHARACTERS_EVENT: case CDATA_EVENT: eventType_ = TEXT; break; case START_DOCUMENT_EVENT: eventType_ = START_DOCUMENT; break; case END_DOCUMENT_EVENT: eventType_ = END_DOCUMENT; break; case COMMENT_EVENT: case PI_EVENT: case IGNORABLE_WHITESPACE_EVENT: case DOCTYPE_EVENT: case ENTITY_REFERENCE_START_EVENT: case ENTITY_REFERENCE_END_EVENT: case START_EXTERNAL_ENTITY_EVENT: case END_EXTERNAL_ENTITY_EVENT: case NO_EVENT: // Ignore break; } } } XSLT2Lexer::EventType FAXPPXSLT2Lexer::getEventType() { return eventType_; } void FAXPPXSLT2Lexer::getEventName(const XMLCh *&prefix, const XMLCh *&uri, const XMLCh *&localname) { const FAXPP_Event *event = FAXPP_get_current_event(wrapper_.parser); if(eventType_ == ATTRIBUTE || eventType_ == NAMESPACE) { FAXPP_Attribute *attr = &event->attrs[attrIndex_]; // setLocation(pYYLOC, attr); prefix = nullTerm(attr->prefix, mm_); uri = nullTerm(attr->uri, mm_); localname = nullTerm(attr->name, mm_); } else { prefix = nullTerm(event->prefix, mm_); uri = nullTerm(event->uri, mm_); localname = nullTerm(event->name, mm_); } } void FAXPPXSLT2Lexer::getEventValue(const XMLCh *&value, unsigned int &length, std::vector &offsets) { const FAXPP_Event *event = FAXPP_get_current_event(wrapper_.parser); offsets.clear(); if(eventType_ == ATTRIBUTE || eventType_ == NAMESPACE) { FAXPP_Attribute *attr = &event->attrs[attrIndex_]; value_.reset(); // Normalize the attribute value and calculate offsets into // it to compensate for things like expanded entity references // and line ending conversion. const FAXPP_AttrValue *aval = &attr->value; int index = 0, line = aval->line, column = aval->column + 1; for(; aval; aval = aval->next) { if((unsigned)line != aval->line || (unsigned)column != (aval->column + 1)) { offsets.push_back(XQLexer::ValueOffset(index, aval->line - line, (aval->column + 1) - column)); line = aval->line; column = aval->column + 1; } const XMLCh *pos = (const XMLCh*)aval->value.ptr; const XMLCh *end = (const XMLCh*)((char*)aval->value.ptr + aval->value.len); for(; pos < end; ++pos) { switch(*pos) { case '\r': if((pos + 1) < end && *(pos + 1) == '\n') ++pos; // Fall through case '\n': offsets.push_back(XQLexer::ValueOffset(index, 1, -column)); line += 1; column = 1; value_.append(' '); break; case '\t': value_.append(' '); ++column; break; default: value_.append(*pos); ++column; break; } ++index; } } value = value_.getRawBuffer(); length = value_.getLen(); } else { value = (XMLCh*)event->value.ptr; length = event->value.len / sizeof(XMLCh); } } void FAXPPXSLT2Lexer::getEventLocation(YYLTYPE* pYYLOC) { if(eventType_ == ATTRIBUTE || eventType_ == NAMESPACE) { FAXPP_Attribute *attr = &FAXPP_get_current_event(wrapper_.parser)->attrs[attrIndex_]; setLocation(pYYLOC, attr); } else { setLocation(pYYLOC, FAXPP_get_current_event(wrapper_.parser)); } } void FAXPPXSLT2Lexer::getValueLocation(YYLTYPE* pYYLOC) { const FAXPP_Event *event = FAXPP_get_current_event(wrapper_.parser); if(eventType_ == ATTRIBUTE || eventType_ == NAMESPACE) { FAXPP_Attribute *attr = &event->attrs[attrIndex_]; setLocation(pYYLOC, &attr->value); } else { setLocation(pYYLOC, event); } } void FAXPPXSLT2Lexer::setLocation(YYLTYPE* pYYLOC, const FAXPP_Event *event) { pYYLOC->first_line = m_lineno = event->line; pYYLOC->first_column = m_columnno = event->column + 1; } void FAXPPXSLT2Lexer::setLocation(YYLTYPE* pYYLOC, const FAXPP_Attribute *attr) { pYYLOC->first_line = m_lineno = attr->line; pYYLOC->first_column = m_columnno = attr->column + 1; } void FAXPPXSLT2Lexer::setLocation(YYLTYPE* pYYLOC, const FAXPP_AttrValue *attrval) { pYYLOC->first_line = m_lineno = attrval->line; pYYLOC->first_column = m_columnno = attrval->column + 1; } void FAXPPXSLT2Lexer::setErrorLocation(YYLTYPE* pYYLOC) { pYYLOC->first_line = m_lineno = FAXPP_get_error_line(wrapper_.parser); pYYLOC->first_column = m_columnno = FAXPP_get_error_column(wrapper_.parser) + 1; } #endif // HAVE_FAXPP //////////////////////////////////////////////////////////////////////////////////////////////////// XercesXSLT2Lexer::XercesXSLT2Lexer(DynamicContext *context, const InputSource &srcToUse, XQilla::Language lang) : XSLT2Lexer(context, srcToUse, lang), grammarResolver_(0), scanner_(0), currentEvent_(0), firstEvent_(0), lastEvent_(0) { try { grammarResolver_ = new GrammarResolver(0); scanner_ = new DGXMLScanner(0, grammarResolver_); scanner_->setURIStringPool(grammarResolver_->getStringPool()); scanner_->setDocHandler(this); scanner_->setEntityHandler(this); scanner_->setDoNamespaces(true); scanner_->scanFirst(srcToUse, pptoken_); } catch(const SAXException& toCatch) { ostringstream oss; oss << "Error parsing document: " << UTF8(toCatch.getMessage()); error(oss.str().c_str()); } catch(const XMLException& toCatch) { ostringstream oss; oss << "Error parsing document: " << UTF8(toCatch.getMessage()); error(oss.str().c_str()); } } XercesXSLT2Lexer::~XercesXSLT2Lexer() { delete currentEvent_; CachedEvent *tmp; while(firstEvent_) { tmp = firstEvent_; firstEvent_ = firstEvent_->next; delete tmp; } delete scanner_; delete grammarResolver_; } void XercesXSLT2Lexer::nextEvent(YYLTYPE* pYYLOC) { if(currentEvent_) { if(currentEvent_->type == END_DOCUMENT) return; delete currentEvent_; currentEvent_ = 0; } while(currentEvent_ == 0) { if(firstEvent_ != 0) { currentEvent_ = firstEvent_; firstEvent_ = firstEvent_->next; if(firstEvent_ == 0) lastEvent_ = 0; currentEvent_->next = 0; } else { try { scanner_->scanNext(pptoken_); } catch(const SAXException& toCatch) { ostringstream oss; oss << "Error parsing document: " << UTF8(toCatch.getMessage()); error(oss.str().c_str()); } catch(const XMLException& toCatch) { ostringstream oss; oss << "Error parsing document: " << UTF8(toCatch.getMessage()); error(oss.str().c_str()); } } } } XSLT2Lexer::EventType XercesXSLT2Lexer::getEventType() { return currentEvent_->type; } void XercesXSLT2Lexer::getEventName(const XMLCh *&prefix, const XMLCh *&uri, const XMLCh *&localname) { prefix = currentEvent_->prefix; uri = currentEvent_->uri; localname = currentEvent_->localname; } void XercesXSLT2Lexer::getEventValue(const XMLCh *&value, unsigned int &length, std::vector &offsets) { offsets.clear(); value = currentEvent_->value.getRawBuffer(); length = (unsigned int) currentEvent_->value.getLen(); } void XercesXSLT2Lexer::getEventLocation(YYLTYPE* pYYLOC) { pYYLOC->first_line = m_lineno = (int) currentEvent_->line; pYYLOC->first_column = m_columnno = (int) currentEvent_->column; } void XercesXSLT2Lexer::getValueLocation(YYLTYPE* pYYLOC) { pYYLOC->first_line = m_lineno = (int) currentEvent_->line; pYYLOC->first_column = m_columnno = (int) currentEvent_->column; } InputSource* XercesXSLT2Lexer::resolveEntity(XMLResourceIdentifier* resourceIdentifier) { if(context_->getXMLEntityResolver()) return context_->getXMLEntityResolver()->resolveEntity(resourceIdentifier); return 0; } void XercesXSLT2Lexer::startDocument() { lastEvent_ = new CachedEvent(START_DOCUMENT, scanner_->getLocator(), lastEvent_); if(firstEvent_ == 0) firstEvent_ = lastEvent_; } void XercesXSLT2Lexer::endDocument() { lastEvent_ = new CachedEvent(END_DOCUMENT, scanner_->getLocator(), lastEvent_); if(firstEvent_ == 0) firstEvent_ = lastEvent_; } #if _XERCES_VERSION >= 30000 void XercesXSLT2Lexer::startElement(const XMLElementDecl& elemDecl, const unsigned int urlId, const XMLCh* const elemPrefix, const RefVectorOf& attrList, const XMLSize_t attrCount, const bool isEmpty, const bool isRoot) #else void XercesXSLT2Lexer::startElement(const XMLElementDecl& elemDecl, const unsigned int urlId, const XMLCh* const elemPrefix, const RefVectorOf& attrList, const unsigned int attrCount, const bool isEmpty, const bool isRoot) #endif { lastEvent_ = new CachedEvent(mm_->getPooledString(elemPrefix), mm_->getPooledString(scanner_->getURIText(urlId)), mm_->getPooledString(elemDecl.getBaseName()), scanner_->getLocator(), lastEvent_); if(firstEvent_ == 0) firstEvent_ = lastEvent_; unsigned int i; for(i = 0; i < attrCount; ++i) { const XMLAttr *attr = attrList.elementAt(i); if(attr->getURIId() == scanner_->getXMLNSNamespaceId()) { lastEvent_ = new CachedEvent(NAMESPACE, mm_->getPooledString(attr->getPrefix()), mm_->getPooledString(scanner_->getURIText(attr->getURIId())), mm_->getPooledString(attr->getName()), attr->getValue(), scanner_->getLocator(), lastEvent_); if(firstEvent_ == 0) firstEvent_ = lastEvent_; } else if(XPath2Utils::equals(attr->getName(), XMLUni::fgXMLNSString)) { lastEvent_ = new CachedEvent(NAMESPACE, mm_->getPooledString(attr->getPrefix()), XMLUni::fgXMLNSURIName, mm_->getPooledString(attr->getName()), attr->getValue(), scanner_->getLocator(), lastEvent_); if(firstEvent_ == 0) firstEvent_ = lastEvent_; } // Recoginze [xsl:]xpath-default-namespace as a type NAMESPACE too if(XPath2Utils::equals(scanner_->getURIText(urlId), XSLT_URI)) { if(attr->getURIId() == 0 && XPath2Utils::equals(attr->getName(), XPATH_DEFAULT_NAMESPACE_NAME)) { lastEvent_ = new CachedEvent(NAMESPACE, mm_->getPooledString(attr->getPrefix()), mm_->getPooledString(scanner_->getURIText(attr->getURIId())), mm_->getPooledString(attr->getName()), attr->getValue(), scanner_->getLocator(), lastEvent_); if(firstEvent_ == 0) firstEvent_ = lastEvent_; } } else { if(XPath2Utils::equals(attr->getName(), XPATH_DEFAULT_NAMESPACE_NAME) && XPath2Utils::equals(scanner_->getURIText(attr->getURIId()), XSLT_URI)) { lastEvent_ = new CachedEvent(NAMESPACE, mm_->getPooledString(attr->getPrefix()), mm_->getPooledString(scanner_->getURIText(attr->getURIId())), mm_->getPooledString(attr->getName()), attr->getValue(), scanner_->getLocator(), lastEvent_); if(firstEvent_ == 0) firstEvent_ = lastEvent_; } } } for(i = 0; i < attrCount; ++i) { const XMLAttr *attr = attrList.elementAt(i); if(attr->getURIId() == scanner_->getXMLNSNamespaceId() || XPath2Utils::equals(attr->getName(), XMLUni::fgXMLNSString)) continue; if(XPath2Utils::equals(scanner_->getURIText(urlId), XSLT_URI)) { if(attr->getURIId() == 0 && XPath2Utils::equals(attr->getName(), XPATH_DEFAULT_NAMESPACE_NAME)) continue; } else { if(XPath2Utils::equals(attr->getName(), XPATH_DEFAULT_NAMESPACE_NAME) && XPath2Utils::equals(scanner_->getURIText(attr->getURIId()), XSLT_URI)) continue; } lastEvent_ = new CachedEvent(ATTRIBUTE, mm_->getPooledString(attr->getPrefix()), mm_->getPooledString(scanner_->getURIText(attr->getURIId())), mm_->getPooledString(attr->getName()), attr->getValue(), scanner_->getLocator(), lastEvent_); if(firstEvent_ == 0) firstEvent_ = lastEvent_; } if(isEmpty) { lastEvent_ = new CachedEvent(END_ELEMENT, scanner_->getLocator(), lastEvent_); if(firstEvent_ == 0) firstEvent_ = lastEvent_; } } #if _XERCES_VERSION >= 30000 void XercesXSLT2Lexer::docCharacters(const XMLCh* const chars, const XMLSize_t length, const bool cdataSection) #else void XercesXSLT2Lexer::docCharacters(const XMLCh* const chars, const unsigned int length, const bool cdataSection) #endif { lastEvent_ = new CachedEvent(chars, length, scanner_->getLocator(), lastEvent_); if(firstEvent_ == 0) firstEvent_ = lastEvent_; } void XercesXSLT2Lexer::endElement(const XMLElementDecl& elemDecl, const unsigned int urlId, const bool isRoot, const XMLCh* const elemPrefix) { lastEvent_ = new CachedEvent(END_ELEMENT, scanner_->getLocator(), lastEvent_); if(firstEvent_ == 0) firstEvent_ = lastEvent_; } #define emptyToNull(p) ((p && *p) ? (p) : 0) XercesXSLT2Lexer::CachedEvent::CachedEvent(EventType t, const Locator *locator, CachedEvent *p) : type(t), prefix(0), uri(0), localname(0), line(locator->getLineNumber()), column(locator->getColumnNumber()), prev(p), next(0) { if(p) p->next = this; } XercesXSLT2Lexer::CachedEvent::CachedEvent(const XMLCh *p, const XMLCh *u, const XMLCh *l, const Locator *locator, CachedEvent *pv) : type(START_ELEMENT), prefix(emptyToNull(p)), uri(emptyToNull(u)), localname(l), line(locator->getLineNumber()), column(locator->getColumnNumber()), prev(pv), next(0) { if(pv) pv->next = this; } XercesXSLT2Lexer::CachedEvent::CachedEvent(EventType t, const XMLCh *p, const XMLCh *u, const XMLCh *l, const XMLCh *v, const Locator *locator, CachedEvent *pv) : type(t), prefix(emptyToNull(p)), uri(emptyToNull(u)), localname(l), line(locator->getLineNumber()), column(locator->getColumnNumber()), prev(pv), next(0) { value.set(v); if(pv) pv->next = this; } XercesXSLT2Lexer::CachedEvent::CachedEvent(const XMLCh *v, size_t length, const Locator *locator, CachedEvent *p) : type(TEXT), prefix(0), uri(0), localname(0), line(locator->getLineNumber()), column(locator->getColumnNumber()), prev(p), next(0) { value.set(v, length); if(p) p->next = this; } XQilla-2.3.0/src/lexer/XQLexer.cpp0000644000151400015140000324210611653567033013606 00000000000000#define yyFlexLexer xqFlexLexer #line 4 "../src/lexer/XQLexer.cpp" /* A lexical scanner generated by flex */ /* Scanner skeleton version: * $Header$ */ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */ #ifdef c_plusplus #ifndef __cplusplus #define __cplusplus #endif #endif #ifdef __cplusplus #include #include /* Use prototypes in function declarations. */ #define YY_USE_PROTOS /* The "const" storage-class-modifier is valid. */ #define YY_USE_CONST #else /* ! __cplusplus */ #if __STDC__ #define YY_USE_PROTOS #define YY_USE_CONST #endif /* __STDC__ */ #endif /* ! __cplusplus */ #ifdef __TURBOC__ #pragma warn -rch #pragma warn -use #include #include #define YY_USE_CONST #define YY_USE_PROTOS #endif #ifdef YY_USE_CONST #define yyconst const #else #define yyconst #endif #ifdef YY_USE_PROTOS #define YY_PROTO(proto) proto #else #define YY_PROTO(proto) () #endif /* Define the YY_CHAR type. */ #include typedef unsigned short YY_CHAR; /* Promotes a YY_CHAR to an unsigned integer for use as an array index. */ #define YY_SC_TO_UI(c) ((unsigned int) (unsigned short) c) /* Returned upon end-of-file. */ #define YY_NULL 0 /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN yy_start = 1 + 2 * /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START ((yy_start - 1) / 2) #define YYSTATE YY_START /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE yyrestart( yyin ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #define YY_BUF_SIZE 16384 typedef struct yy_buffer_state *YY_BUFFER_STATE; extern int yyleng; #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 /* The funky do-while in the following #define is used to turn the definition * int a single C statement (which needs a semi-colon terminator). This * avoids problems with code like: * * if ( condition_holds ) * yyless( 5 ); * else * do_something_else(); * * Prior to using the do-while the compiler would get upset at the * "else" because it interpreted the "if" statement as being all * done when it reached the ';' after the yyless() call. */ /* Return all but the first 'n' matched characters back to the input stream. */ #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ *yy_cp = yy_hold_char; \ YY_RESTORE_YY_MORE_OFFSET \ yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) #define unput(c) yyunput( c, yytext_ptr ) /* The following is because we cannot portably get our hands on size_t * (without autoconf's help, which isn't available because we want * flex-generated scanners to compile on their own). */ typedef unsigned int yy_size_t; struct yy_buffer_state { std::istream* yy_input_file; YY_CHAR *yy_ch_buf; /* input buffer */ YY_CHAR *yy_buf_pos; /* current position in input buffer */ /* Size of input buffer in bytes, not including room for EOB * characters. */ yy_size_t yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to * delete it. */ int yy_is_our_buffer; /* Whether this is an "interactive" input source; if so, and * if we're using stdio for input, then we want to use getc() * instead of fread(), to make sure we stop fetching input after * each newline. */ int yy_is_interactive; /* Whether we're considered to be at the beginning of a line. * If so, '^' rules will be active on the next match, otherwise * not. */ int yy_at_bol; /* Whether to try to fill the input buffer when we reach the * end of it. */ int yy_fill_buffer; int yy_buffer_status; #define YY_BUFFER_NEW 0 #define YY_BUFFER_NORMAL 1 /* When an EOF's been seen but there's still some text to process * then we mark the buffer as YY_EOF_PENDING, to indicate that we * shouldn't try reading from the input source any more. We might * still have a bunch of tokens to match, though, because of * possible backing-up. * * When we actually see the EOF, we change the status to "new" * (via yyrestart()), so that the user can continue scanning by * just pointing yyin at a new input file. */ #define YY_BUFFER_EOF_PENDING 2 }; /* We provide macros for accessing buffer states in case in the * future we want to put the buffer states in a more general * "scanner state". */ #define YY_CURRENT_BUFFER yy_current_buffer static void *yy_flex_alloc YY_PROTO(( yy_size_t )); static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )); static void yy_flex_free YY_PROTO(( void * )); #define yy_new_buffer yy_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! yy_current_buffer ) \ yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \ yy_current_buffer->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ if ( ! yy_current_buffer ) \ yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \ yy_current_buffer->yy_at_bol = at_bol; \ } #define YY_AT_BOL() (yy_current_buffer->yy_at_bol) #define yywrap() 1 #define YY_SKIP_YYWRAP #define yytext_ptr yytext #include int yyFlexLexer::yylex() { LexerError( "yyFlexLexer::yylex invoked but %option yyclass used" ); return 0; } #define YY_DECL int XQLexer::yylex() /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. */ #define YY_DO_BEFORE_ACTION \ yytext_ptr = yy_bp; \ yyleng = (int) (yy_cp - yy_bp); \ yy_hold_char = *yy_cp; \ *yy_cp = (YY_CHAR) '\0'; \ yy_c_buf_p = yy_cp; #define YY_NUM_RULES 269 #define YY_END_OF_BUFFER 270 static yyconst short int yy_accept[1384] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 227, 221, 221, 224, 224, 0, 0, 0, 0, 244, 244, 0, 0, 219, 219, 0, 0, 0, 0, 0, 0, 270, 268, 6, 268, 268, 177, 15, 268, 17, 18, 19, 11, 14, 10, 30, 247, 1, 268, 13, 215, 12, 23, 33, 28, 250, 31, 32, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 211, 20, 213, 250, 250, 8, 8, 8, 8, 232, 268, 233, 233, 233, 235, 268, 268, 268, 268, 253, 220, 223, 268, 230, 217, 250, 250, 250, 250, 218, 226, 227, 214, 215, 211, 212, 227, 221, 222, 214, 216, 211, 212, 221, 224, 214, 225, 211, 212, 224, 240, 268, 239, 239, 239, 239, 239, 268, 268, 268, 244, 268, 244, 210, 6, 210, 209, 209, 209, 219, 211, 212, 268, 219, 258, 268, 254, 254, 254, 264, 263, 263, 263, 263, 263, 263, 266, 265, 265, 265, 6, 21, 0, 4, 0, 0, 0, 0, 0, 0, 4, 231, 7, 0, 29, 2, 248, 2, 1, 267, 267, 27, 16, 0, 25, 22, 237, 24, 26, 250, 250, 0, 250, 250, 250, 250, 250, 250, 250, 250, 71, 205, 250, 250, 250, 77, 250, 250, 250, 250, 250, 250, 250, 250, 250, 97, 250, 250, 250, 250, 250, 250, 250, 102, 250, 101, 164, 41, 250, 76, 103, 250, 250, 250, 100, 250, 99, 250, 250, 250, 98, 166, 250, 93, 250, 83, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 85, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 9, 232, 233, 233, 0, 233, 233, 233, 233, 235, 234, 0, 0, 0, 0, 0, 236, 0, 253, 228, 250, 250, 0, 250, 250, 250, 250, 250, 226, 227, 0, 0, 0, 0, 227, 0, 0, 0, 0, 0, 0, 229, 227, 221, 0, 0, 0, 0, 221, 221, 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, 224, 0, 0, 0, 0, 0, 224, 240, 241, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 0, 0, 0, 0, 242, 0, 0, 244, 0, 244, 244, 245, 244, 209, 209, 0, 209, 209, 209, 209, 219, 0, 0, 0, 219, 219, 0, 258, 254, 254, 0, 254, 254, 254, 254, 264, 263, 263, 0, 263, 263, 263, 263, 263, 263, 263, 263, 266, 265, 265, 0, 265, 265, 265, 265, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 252, 252, 252, 2, 267, 0, 3, 0, 251, 250, 250, 250, 250, 135, 250, 84, 134, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 86, 250, 250, 250, 250, 250, 152, 250, 250, 250, 250, 250, 250, 250, 75, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 165, 250, 250, 72, 250, 184, 250, 250, 250, 88, 250, 250, 250, 250, 250, 118, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 233, 233, 233, 0, 236, 0, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 238, 0, 242, 0, 246, 209, 209, 209, 0, 254, 254, 254, 263, 263, 263, 263, 263, 263, 259, 265, 265, 265, 0, 0, 0, 0, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 252, 252, 252, 252, 252, 252, 3, 267, 243, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 172, 203, 96, 250, 250, 250, 250, 250, 199, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 82, 250, 250, 250, 250, 250, 250, 250, 250, 250, 139, 250, 250, 250, 191, 250, 250, 87, 250, 250, 250, 250, 250, 159, 42, 250, 158, 250, 250, 250, 250, 175, 250, 250, 153, 171, 250, 250, 43, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 144, 250, 250, 250, 107, 250, 250, 155, 78, 250, 250, 250, 128, 250, 250, 46, 81, 250, 250, 250, 150, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 167, 137, 250, 233, 233, 233, 233, 233, 233, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 209, 209, 209, 209, 209, 209, 254, 254, 254, 254, 254, 254, 263, 263, 263, 263, 263, 263, 260, 262, 263, 265, 265, 265, 265, 265, 265, 0, 0, 0, 0, 0, 0, 0, 0, 160, 250, 173, 250, 250, 250, 250, 250, 250, 105, 250, 250, 250, 250, 250, 250, 178, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 60, 250, 250, 79, 250, 250, 250, 157, 250, 250, 192, 193, 250, 250, 250, 250, 250, 250, 250, 250, 250, 38, 250, 250, 250, 250, 250, 250, 250, 250, 163, 250, 250, 250, 186, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 189, 250, 250, 250, 151, 250, 250, 53, 250, 250, 143, 94, 250, 89, 250, 250, 250, 204, 250, 156, 250, 250, 250, 185, 250, 250, 250, 129, 250, 249, 0, 261, 0, 0, 250, 250, 250, 250, 161, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 196, 250, 250, 250, 250, 250, 250, 250, 250, 250, 132, 250, 91, 250, 250, 250, 250, 250, 67, 250, 250, 195, 250, 250, 250, 127, 250, 250, 162, 201, 250, 250, 250, 250, 142, 55, 250, 250, 250, 111, 136, 250, 250, 250, 250, 180, 250, 198, 250, 74, 250, 250, 68, 250, 250, 187, 250, 73, 250, 250, 250, 250, 250, 250, 250, 250, 250, 117, 250, 141, 250, 200, 0, 0, 0, 0, 250, 250, 250, 250, 250, 250, 250, 39, 250, 250, 133, 250, 50, 54, 250, 250, 250, 250, 250, 250, 206, 250, 250, 138, 250, 250, 250, 250, 250, 63, 250, 250, 250, 250, 250, 170, 250, 250, 250, 250, 58, 250, 250, 250, 250, 179, 250, 250, 197, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 48, 250, 202, 249, 249, 249, 0, 257, 255, 112, 250, 250, 66, 250, 95, 250, 250, 190, 250, 250, 250, 250, 250, 250, 140, 116, 250, 49, 34, 250, 250, 176, 37, 250, 92, 250, 130, 250, 250, 250, 250, 250, 57, 250, 250, 52, 250, 250, 250, 250, 250, 250, 250, 148, 124, 169, 250, 250, 250, 194, 250, 104, 69, 250, 249, 249, 249, 249, 249, 249, 0, 250, 35, 207, 250, 65, 250, 250, 250, 250, 250, 250, 145, 250, 250, 110, 56, 250, 90, 119, 168, 250, 250, 250, 149, 114, 250, 250, 250, 80, 250, 250, 121, 146, 174, 125, 250, 59, 120, 131, 0, 250, 250, 250, 250, 106, 36, 250, 123, 250, 250, 250, 250, 250, 64, 250, 250, 147, 250, 250, 250, 250, 250, 250, 188, 0, 0, 0, 250, 250, 250, 250, 250, 250, 250, 250, 250, 122, 250, 62, 250, 250, 250, 250, 250, 250, 250, 0, 0, 0, 250, 250, 70, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 126, 154, 250, 250, 0, 0, 0, 250, 250, 250, 250, 181, 40, 250, 250, 250, 250, 250, 250, 250, 250, 0, 227, 0, 0, 250, 51, 250, 250, 47, 250, 183, 250, 250, 250, 250, 45, 227, 0, 0, 227, 0, 0, 227, 0, 227, 0, 250, 61, 250, 250, 250, 250, 250, 250, 0, 0, 0, 0, 0, 0, 227, 0, 0, 227, 0, 0, 227, 115, 250, 250, 182, 250, 250, 44, 0, 0, 0, 0, 0, 0, 0, 227, 0, 0, 227, 227, 0, 0, 227, 250, 109, 113, 250, 0, 0, 0, 0, 227, 0, 0, 227, 227, 0, 0, 227, 108, 250, 0, 227, 0, 0, 227, 0, 0, 227, 250, 0, 250, 0, 250, 0, 208, 0, 0 } ; static yyconst unsigned short yy_ec[65536] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 30, 34, 34, 34, 34, 34, 35, 36, 34, 34, 34, 34, 34, 34, 37, 34, 34, 34, 38, 34, 34, 39, 40, 41, 42, 43, 42, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 53, 69, 70, 71, 72, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 74, 73, 73, 73, 73, 73, 73, 73, 73, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 73, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 73, 77, 77, 77, 77, 77, 77, 77, 77, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 73, 73, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 73, 73, 80, 80, 80, 80, 80, 80, 80, 80, 73, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 73, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 73, 73, 73, 73, 73, 73, 73, 73, 73, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 73, 73, 73, 84, 84, 73, 73, 73, 73, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 87, 87, 87, 87, 87, 87, 87, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 88, 89, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 91, 91, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 92, 93, 94, 94, 94, 73, 95, 73, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 73, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 73, 98, 98, 98, 98, 98, 98, 98, 73, 73, 73, 99, 73, 100, 73, 101, 73, 102, 73, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 73, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 73, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 73, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 73, 108, 108, 108, 108, 73, 73, 73, 73, 73, 73, 73, 73, 73, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 73, 73, 110, 110, 73, 73, 111, 111, 73, 73, 73, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 73, 73, 113, 113, 113, 113, 113, 113, 113, 113, 73, 73, 114, 114, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 73, 73, 116, 73, 73, 73, 73, 73, 73, 73, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 73, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 73, 120, 120, 120, 73, 121, 73, 122, 122, 73, 123, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 73, 73, 73, 73, 73, 125, 125, 125, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 73, 73, 73, 73, 73, 127, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, 129, 129, 129, 129, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 73, 73, 73, 73, 73, 73, 131, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 73, 73, 133, 133, 133, 133, 133, 73, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 73, 135, 135, 135, 135, 73, 136, 137, 137, 137, 137, 137, 137, 137, 138, 138, 138, 139, 139, 139, 139, 139, 140, 140, 141, 141, 73, 142, 142, 142, 142, 73, 73, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 144, 144, 144, 73, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 73, 73, 146, 147, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 149, 73, 73, 73, 150, 150, 150, 150, 73, 73, 73, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 152, 152, 73, 73, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 154, 154, 154, 73, 155, 155, 155, 155, 155, 155, 155, 155, 73, 73, 156, 156, 73, 73, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 73, 158, 158, 158, 158, 158, 158, 158, 73, 159, 73, 73, 73, 160, 160, 160, 160, 73, 73, 161, 73, 162, 163, 164, 164, 164, 164, 164, 73, 73, 165, 165, 73, 73, 166, 166, 166, 73, 73, 73, 73, 73, 73, 73, 73, 73, 167, 73, 73, 73, 73, 168, 168, 73, 169, 169, 169, 170, 170, 73, 73, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 172, 172, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 173, 73, 73, 174, 174, 174, 174, 174, 174, 73, 73, 73, 73, 175, 175, 73, 73, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 73, 177, 177, 177, 177, 177, 177, 177, 73, 178, 178, 73, 179, 179, 73, 180, 180, 73, 73, 181, 73, 182, 183, 184, 184, 184, 73, 73, 73, 73, 185, 185, 73, 73, 186, 186, 186, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 187, 187, 187, 187, 73, 188, 73, 73, 73, 73, 73, 73, 73, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 190, 190, 191, 191, 191, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 192, 192, 192, 73, 193, 193, 193, 193, 193, 193, 193, 73, 194, 73, 195, 195, 195, 73, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 73, 197, 197, 197, 197, 197, 197, 197, 73, 198, 198, 73, 199, 199, 199, 199, 199, 73, 73, 200, 201, 202, 202, 202, 202, 202, 202, 202, 202, 73, 203, 203, 203, 73, 204, 204, 204, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 205, 73, 73, 73, 73, 73, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 207, 207, 207, 73, 208, 208, 208, 208, 208, 208, 208, 208, 73, 73, 209, 209, 73, 73, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 73, 211, 211, 211, 211, 211, 211, 211, 73, 212, 212, 73, 73, 213, 213, 213, 213, 73, 73, 214, 215, 216, 216, 216, 216, 216, 216, 73, 73, 73, 217, 217, 73, 73, 218, 218, 218, 73, 73, 73, 73, 73, 73, 73, 73, 219, 219, 73, 73, 73, 73, 220, 220, 73, 221, 221, 221, 73, 73, 73, 73, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 223, 223, 73, 224, 224, 224, 224, 224, 224, 73, 73, 73, 225, 225, 225, 73, 226, 226, 226, 226, 73, 73, 73, 227, 227, 73, 228, 73, 229, 229, 73, 73, 73, 230, 230, 73, 73, 73, 231, 231, 231, 73, 73, 73, 232, 232, 232, 232, 232, 232, 232, 232, 73, 233, 233, 233, 73, 73, 73, 73, 234, 234, 234, 234, 234, 73, 73, 73, 235, 235, 235, 73, 236, 236, 236, 236, 73, 73, 73, 73, 73, 73, 73, 73, 73, 237, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 238, 238, 238, 238, 238, 238, 238, 238, 238, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 239, 239, 239, 73, 240, 240, 240, 240, 240, 240, 240, 240, 73, 241, 241, 241, 73, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 73, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 73, 244, 244, 244, 244, 244, 73, 73, 73, 73, 245, 245, 245, 245, 245, 245, 245, 73, 246, 246, 246, 73, 247, 247, 247, 247, 73, 73, 73, 73, 73, 73, 73, 248, 248, 73, 73, 73, 73, 73, 73, 73, 73, 73, 249, 249, 73, 73, 73, 73, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 251, 251, 73, 252, 252, 252, 252, 252, 252, 252, 252, 73, 253, 253, 253, 73, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 73, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 73, 256, 256, 256, 256, 256, 73, 73, 73, 73, 257, 257, 257, 257, 257, 257, 257, 73, 258, 258, 258, 73, 259, 259, 259, 259, 73, 73, 73, 73, 73, 73, 73, 260, 260, 73, 73, 73, 73, 73, 73, 73, 261, 73, 262, 262, 73, 73, 73, 73, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 264, 264, 73, 265, 265, 265, 265, 265, 265, 265, 265, 73, 266, 266, 266, 73, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 73, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 73, 73, 73, 73, 269, 269, 269, 269, 269, 269, 73, 73, 270, 270, 270, 73, 271, 271, 271, 271, 73, 73, 73, 73, 73, 73, 73, 73, 73, 272, 73, 73, 73, 73, 73, 73, 73, 73, 273, 273, 73, 73, 73, 73, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, 73, 276, 277, 278, 278, 279, 279, 279, 279, 279, 279, 279, 73, 73, 73, 73, 73, 280, 280, 280, 280, 280, 280, 281, 282, 282, 282, 282, 282, 282, 282, 282, 73, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 284, 284, 73, 285, 73, 73, 286, 286, 73, 287, 73, 73, 288, 73, 73, 73, 73, 73, 73, 289, 289, 289, 289, 73, 290, 290, 290, 290, 290, 290, 290, 73, 291, 291, 291, 73, 292, 73, 293, 73, 73, 294, 294, 73, 295, 295, 73, 296, 297, 298, 298, 299, 299, 299, 299, 299, 299, 73, 300, 300, 301, 73, 73, 302, 302, 302, 302, 302, 73, 303, 73, 304, 304, 304, 304, 304, 304, 73, 73, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 306, 306, 73, 73, 73, 73, 73, 73, 307, 307, 307, 307, 307, 307, 307, 307, 307, 307, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 308, 73, 309, 73, 310, 73, 73, 73, 73, 311, 312, 313, 313, 313, 313, 313, 313, 313, 313, 73, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, 73, 73, 73, 73, 73, 73, 73, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 73, 316, 316, 316, 316, 316, 316, 73, 73, 73, 73, 317, 317, 317, 317, 317, 317, 73, 318, 73, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 73, 73, 73, 320, 320, 320, 320, 320, 320, 320, 73, 321, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, 73, 73, 73, 73, 73, 73, 73, 73, 73, 324, 73, 325, 325, 73, 326, 326, 326, 73, 327, 73, 328, 328, 73, 329, 329, 329, 329, 329, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 330, 73, 331, 73, 332, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 333, 73, 334, 73, 335, 73, 73, 73, 336, 336, 73, 73, 73, 337, 73, 73, 73, 73, 73, 338, 338, 338, 73, 339, 73, 340, 73, 341, 73, 342, 73, 73, 73, 343, 343, 73, 73, 73, 344, 344, 73, 345, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 346, 73, 73, 73, 73, 73, 73, 73, 73, 73, 347, 73, 73, 348, 73, 73, 349, 349, 73, 73, 73, 73, 73, 73, 73, 350, 350, 73, 351, 73, 352, 352, 352, 352, 352, 352, 352, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 353, 73, 73, 73, 73, 354, 73, 73, 73, 73, 73, 73, 73, 73, 355, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 73, 73, 73, 73, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 73, 73, 73, 73, 73, 73, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 73, 73, 359, 359, 359, 359, 359, 359, 73, 73, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 73, 73, 361, 361, 361, 361, 361, 361, 73, 73, 362, 362, 362, 362, 362, 362, 362, 362, 73, 363, 73, 364, 73, 365, 73, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 73, 73, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 73, 368, 368, 368, 368, 368, 368, 368, 73, 369, 73, 73, 73, 370, 370, 370, 73, 371, 371, 371, 371, 371, 371, 371, 73, 73, 73, 372, 372, 372, 372, 73, 73, 373, 373, 373, 373, 373, 373, 73, 73, 73, 73, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 73, 73, 73, 73, 73, 375, 375, 375, 73, 376, 376, 376, 376, 376, 376, 376, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 377, 377, 377, 377, 377, 377, 377, 377, 377, 377, 377, 377, 377, 73, 73, 73, 73, 378, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 379, 73, 73, 73, 380, 380, 73, 73, 381, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 382, 382, 382, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 383, 73, 384, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 385, 385, 385, 385, 385, 385, 385, 385, 385, 386, 386, 386, 386, 386, 386, 73, 387, 387, 387, 387, 387, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 73, 73, 73, 73, 389, 390, 73, 73, 391, 391, 73, 73, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 73, 393, 393, 393, 73, 73, 73, 73, 73, 73, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 397, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 398, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 1, 1 } ; static yyconst int yy_meta[402] = { 0, 1, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 5, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2 } ; static yyconst short int yy_base[1440] = { 0, 0, 0, 401, 404, 804, 0, 404, 416, 1205, 1208, 1608, 0, 415, 418, 2009, 2014, 2020, 2023, 2028, 2031, 2431, 0, 2832, 2835, 2838, 2842, 3242, 0, 3642, 4042, 4443, 0, 4844, 0, 5245, 0, 8932,25966, 429, 8906, 404, 401,25966, 392, 420,25966, 8907,25966,25966,25966, 418, 8907, 442, 388,25966, 430,25966, 424,25966,25966, 5629,25966,25966, 403, 467, 468, 465, 472, 482, 420, 495, 8876, 505, 409, 472, 472, 503, 8874, 525, 514, 479, 511, 526, 8861,25966,25966,25966, 0, 0,25966, 8898, 8905,25966, 587, 8892, 6008, 0, 0, 591, 8899, 1199, 2826, 1202, 595,25966,25966, 8884,25966,25966, 6387, 8853, 0, 0,25966, 3717, 2017, 562, 581, 8839, 8836, 3720, 3723, 8894, 577,25966, 8831, 8827, 3726, 3731, 594, 8885, 8827, 8824, 3734, 611, 8863, 6766, 428, 520, 0, 0, 389, 1185, 1181, 1196, 2004, 2817,25966, 621, 8866, 7145, 0, 0, 1146, 8818, 8815, 8867, 1150, 626, 563, 7524, 0, 0, 631, 7903, 8821, 8825, 395, 0, 0, 637, 8282, 0, 0, 643,25966, 644, 8865, 612, 8814, 8804, 8819, 458, 645, 8854,25966,25966, 8650,25966, 677, 25966, 1199, 1249, 1297, 1350,25966,25966, 8846,25966,25966, 25966,25966,25966, 9029, 0, 9411, 0, 0, 0, 0, 8794, 8801, 612, 8795, 8807, 8789, 8788, 8793, 8776, 0, 549, 8787, 609, 614, 626, 8790, 623, 8776, 636, 0, 8786, 640, 8772, 525, 8774, 660, 8774, 0, 8775, 0, 8769, 0, 8761, 630, 0, 8769, 8748, 689, 703, 8749, 0, 8751, 556, 8757, 0, 701, 8766, 0, 8748, 8757, 8742, 8741, 701, 8755, 706, 587, 636, 467, 8747, 8742, 732, 494, 8748, 8738, 0, 8745, 8733, 638, 501, 8739, 699, 8728, 8736, 8739, 715, 8720, 8716,25966, 779, 9790, 0,10158, 0, 0, 0, 0, 792,25966, 2829, 3739, 3742, 3746, 3749,25966, 3752, 1221,25966,10537, 0,10905, 0, 0, 0, 0, 8724, 3763, 3758, 1381, 8771, 8704, 8701, 3766, 653, 400, 8708, 8707, 8705, 734,25966, 3769, 3772, 8761, 1382, 8689, 8672, 3797, 3800, 695, 718, 8678, 8677, 8675, 3787, 1383, 8726, 8655, 8652, 3803, 1206, 1182, 8659, 8658, 8656, 3806, 1272,25966,11284, 0, 0, 0, 0, 0, 720, 1234, 1236, 1237, 1996, 2820, 1999, 2811, 25966, 2823, 2814, 3631, 921, 3755, 3778, 8693, 3783,11663, 0,12031, 0, 0, 0, 0, 1977, 8623, 8620, 8672, 1982, 1987, 8292, 1320,12410, 0,12778, 0, 0, 0, 0, 1334,13157, 0,13525, 0, 0, 0, 0, 8299, 8287, 8290, 8297, 1370,13904, 0,14272, 0, 0, 0, 0, 8344, 8317, 1413, 1363, 598, 694, 1360, 8268, 8261, 8272, 8298, 1409, 8297, 1411, 1227, 1365, 1276,14651, 0, 0, 1452, 2074, 8287, 2122, 8289,25966,15030, 0, 0, 15409, 8258, 8257, 8254, 7928, 731, 7927, 737, 7926, 1381, 1321, 1392, 1387, 1396, 1397, 1398, 1400, 1401, 1407, 1405, 1413, 7925, 1194, 7924, 1410, 743, 1411, 7897, 1328, 1423, 7896, 1429, 1417, 7895, 1420, 1430, 1447, 7894, 7883, 1473, 1474, 7882, 1475, 1476, 1479, 1480, 1478, 1484, 1489, 702, 1493, 7881, 1477, 1494, 1499, 7880, 1506, 1495, 7879, 1505, 7878, 7875, 7549, 1511, 1512, 1514, 7548, 1513, 7547, 1521, 7546, 1518, 1522, 7545, 1527, 1542, 2014, 2002, 1541, 2009, 1544, 2017, 2015, 2018, 2024, 7518, 2021, 7517, 1530, 1987, 2053, 2031, 7516, 2026, 1989, 2102, 2029, 2143, 2050, 2144, 7515, 2100, 7504, 1515, 2101, 2149, 7503, 2027, 2146, 2147, 2152, 2097, 2148, 2116, 2156, 2045, 2160, 7502,15788, 0, 0, 3811, 3814, 3817,16167, 7510, 2190, 2191, 7489, 7489, 7521, 7160, 7186, 2194, 2197, 7157, 7157, 7191, 7129, 2210, 2226, 7127, 7127, 7161, 7115,16546, 3793, 3820, 3823,25966, 16925, 0, 0, 7131,17304, 0, 0,17683, 0, 0, 18062, 2197, 2193, 7116,18441, 0, 0, 2243, 2247, 2225, 2107, 2244, 2227,25966, 7109, 7125, 2276, 2277, 2204, 2207, 2278, 2257,18820, 0, 0, 0, 0, 0, 2298, 2834, 25966,19199, 0, 0, 0, 0, 0,19578, 2200, 2243, 2225, 2251, 2322, 7107, 2253, 7104, 6778, 2276, 2255, 2323, 2257, 2220, 2330, 2350, 2278, 2327, 2308, 2329, 2345, 6777, 6776, 2796, 2814, 641, 2800, 6775, 2784, 2363, 6774, 2842, 2790, 2815, 6747, 2843, 2312, 6746, 2846, 2861, 2848, 6745, 2851, 2852, 6744, 6733, 6732, 2256, 2872, 6731, 6730, 6729, 2856, 6728, 2858, 2863, 6727, 2328, 6725, 2793, 2868, 6399, 2339, 2816, 6398, 2864, 2879, 6397, 2870, 6396, 2880, 2875, 2873, 2889, 2890, 2895, 2894, 2891, 2883, 2892, 2901, 6395, 2899, 6368, 2896, 2903, 2913, 6367, 2911, 2917, 6366, 6365, 2912, 2886, 2910, 6354, 2922, 2914, 6353, 6352, 2926, 2915, 2919, 2923, 2929, 2932, 2928, 6351, 2938, 2945, 2946, 2951, 2944, 2947, 2949, 2954, 2943, 2953, 2941, 6350,19957, 0, 0, 0, 0, 0,20336, 2995, 6348, 6344, 6049, 3024, 6018, 6016, 3053, 6016, 6014,20715, 0, 0, 0, 0, 0,21094, 0, 0, 0, 0, 0,21473, 0, 0, 0, 0, 0,21852, 0, 5995,22231, 0, 0, 0, 0, 0, 3082, 3002, 3012, 6001, 5984, 3111, 3001, 2275, 22610, 5984, 0, 5989, 5990, 5970, 5985, 5988, 5986, 0, 5965, 5645, 5640, 5648, 5642, 5641, 0, 5610, 5615, 5621, 5611, 5601, 5604, 5594, 5597, 5605, 5595, 5631, 4387, 4390, 0, 4382, 4373, 4378, 0, 4368, 4370, 0, 0, 4380, 4383, 4367, 4377, 4366, 4364, 4369, 4363, 4380, 0, 4361, 4376, 4373, 4352, 4371, 4359, 4366, 4368, 0, 4352, 4352, 4356, 2969, 4351, 4348, 4362, 4362, 4347, 4344, 4344, 4359, 4352, 4355, 4356, 4344, 4348, 4350, 4354, 0, 4334, 4336, 4341, 0, 4336, 4321, 0, 4339, 4315, 0, 0, 4312, 0, 4329, 4312, 4311, 0, 4309, 0, 4307, 4284, 4278, 0, 4293, 4264, 4265, 0, 4260,22989, 4295,23368, 4257, 4255, 4248, 4244, 4231, 4230, 0, 4229, 4234, 4233, 4221, 4216, 4222, 4212, 4230, 4219, 4191, 0, 4206, 4197, 4185, 4160, 4161, 4137, 4121, 4118, 4122, 0, 4092, 0, 4115, 4091, 4084, 4077, 4066, 0, 4064, 3983, 0, 3988, 3984, 3977, 0, 3982, 3962, 0, 0, 3972, 3964, 3948, 3961, 0, 0, 3959, 3946, 3944, 0, 0, 3933, 3917, 3931, 3908, 0, 3909, 0, 3908, 0, 3908, 3901, 3934, 3897, 3899, 0, 3879, 0, 3871, 3870, 3875, 3864, 3866, 3877, 3857, 3862, 3859, 0, 3854, 0, 3847, 0,23736, 3872, 3845, 3843, 3842, 3845, 3837, 3844, 3827, 3844, 3833, 0, 3844, 3825, 0, 3824, 0, 0, 2978, 3808, 3812, 3806, 3814, 3797, 0, 3811, 3807, 0, 3800, 3797, 3795, 3795, 3788, 0, 3786, 3800, 3800, 3797, 3782, 0, 3796, 3778, 3788, 3772, 0, 3780, 3769, 3769, 3776, 0, 3771, 3764, 0, 3769, 3764, 2985, 3745, 3761, 3756, 3737, 3720, 3718, 3730, 3726, 3713, 3724, 3723, 0, 3723, 0,24115, 0, 0, 3735,25966,25966, 3744, 3711, 3711, 0, 3740, 0, 3699, 3692, 0, 3704, 3694, 3692, 3696, 3694, 3676, 0, 3720, 3676, 0, 0, 3685, 3675, 0, 0, 3677, 0, 3664, 0, 3678, 3677, 3672, 3662, 3662, 0, 3666, 3666, 0, 3658, 3177, 3145, 3145, 3143, 3150, 3156, 3141, 0, 3140, 3139, 3154, 3152, 0, 3150, 0, 0, 3135, 0, 0, 0, 0, 0, 0, 3157, 3137, 0, 0, 3132, 0, 3141, 3130, 3128, 3140, 3127, 3126, 0, 3130, 3122, 3167, 0, 3119, 0, 0, 3165, 3119, 3116, 3128, 3117, 3160, 3127, 3125, 3123, 0, 3111, 3125, 0, 0, 0, 0, 3121, 0, 0, 0, 3775, 3110, 3111, 3111, 3109, 3149, 0, 3103, 0, 3107, 3116, 3101, 3114, 3104, 0, 3106, 3096, 0, 3090, 3133, 3098, 3091, 3087, 3091, 0, 3790, 3826, 3829, 3128, 3095, 3068, 385, 456, 529, 605, 622, 1341, 0, 1408, 0, 1442, 1541, 2065, 2087, 2148, 2173, 2205, 3832, 3835, 3838, 2343, 2379, 0, 2974, 2962, 2985, 2984, 2988, 2990, 2989, 2975, 2993, 2989, 0, 0, 3003, 2992, 3841, 3852, 3844, 3002, 3003, 3004, 3040, 0, 0, 3011, 3005, 3013, 2999, 3010, 3004, 3003, 3014, 3847, 3870, 3857, 3860, 3023, 0, 3017, 3018, 0, 3029, 0, 3035, 3036, 3027, 3028, 0, 3873, 3878, 3883, 3888, 3863, 3866, 3894, 3899, 3902, 3905, 3043, 0, 3045, 3037, 3049, 3039, 3043, 3058, 3909, 3913, 3917, 3920, 3923, 3927, 3936, 3940, 3945, 3967, 3933, 3948, 3951, 0, 3052, 3058, 0, 3059, 3046, 0, 3973,24491, 3956, 3960, 3976, 3963, 3982, 9029,24505, 3992,24116,24517, 3970, 9461,24520,24903, 3067, 3068, 3072,24574, 3987,24484,24501,25289,24509,24513,25292, 25295,10208,10955,25298, 3070, 3073, 3996,25301,25318,25304, 25313,12081,12828,25324, 3086,13577, 3075,24544, 3088,14322, 3071,24477,25966,25724,25729,25734,25739,25744,25749,25754, 25759,25764,25769,25774,25778,25782,25786,25790,25793,25796, 25800,25804,25808,25812,25817,25822,25827,25832,25836,25840, 25844,25848,25852,25855,25858,25862,25866,25870,25874,25878, 25883,25888,25892,25896,25901,25906,25911,25916,25920,25924, 25928,25932,25936,25940,25944,25948,25952,25956,25960 } ; static yyconst short int yy_def[1440] = { 0, 1383, 1, 1384, 1384, 1383, 5, 1385, 1385, 1386, 1386, 1383, 11, 11, 11, 1387, 1387, 1388, 1388, 1389, 1389, 1383, 21, 1390, 1390, 1391, 1391, 1383, 27, 1392, 1392, 1383, 31, 1383, 33, 1383, 35, 1383, 1383, 1383, 1383, 1393, 1383, 1383, 1394, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 1383, 1383, 1383, 61, 61, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 96, 96, 1383, 1383, 1395, 1396, 1395, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 110, 110, 110, 1383, 1397, 1397, 1383, 1383, 1383, 1383, 1397, 1398, 1383, 1383, 1383, 1383, 1383, 1398, 1399, 1383, 1383, 1383, 1383, 1399, 1383, 1383, 1383, 137, 137, 137, 137, 1400, 1401, 1400, 1402, 1403, 1402, 1383, 1383, 1383, 1383, 151, 151, 1404, 1383, 1383, 1383, 1404, 1383, 1383, 1383, 161, 161, 1383, 1383, 165, 165, 165, 165, 165, 1383, 1383, 172, 172, 1383, 1383, 1405, 1383, 1406, 1383, 1383, 1383, 1407, 1408, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 204, 1383, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 1383, 1383, 1383, 290, 1383, 290, 290, 290, 290, 1383, 1383, 1409, 1410, 1409, 1409, 1411, 1383, 1409, 1383, 1383, 1383, 308, 1383, 308, 308, 308, 308, 308, 1412, 1412, 1383, 1383, 1383, 1383, 1412, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1412, 1413, 1383, 1383, 1383, 1383, 1413, 1413, 1383, 1383, 1383, 1383, 1383, 1414, 1383, 1383, 1383, 1383, 1414, 1383, 1383, 1383, 1383, 1383, 1414, 1383, 1383, 1383, 357, 357, 357, 357, 357, 357, 357, 357, 357, 1415, 1416, 1415, 1415, 1383, 1417, 1415, 1418, 1419, 1418, 1418, 1383, 1418, 1383, 380, 1383, 380, 380, 380, 380, 1420, 1383, 1383, 1383, 1420, 1420, 1383, 1383, 1383, 395, 1383, 395, 395, 395, 395, 1383, 1383, 403, 1383, 403, 403, 403, 403, 403, 403, 403, 403, 1383, 1383, 415, 1383, 415, 415, 415, 415, 1421, 1383, 1421, 1421, 1421, 1421, 1421, 1383, 1383, 1383, 1422, 1422, 1383, 1422, 1422, 1422, 1422, 1383, 439, 439, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 448, 448, 1383, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 1383, 569, 569, 1423, 1423, 1423, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1424, 1424, 1424, 1383, 1383, 601, 601, 1383, 1383, 605, 605, 1383, 608, 608, 1383, 611, 611, 611, 1383, 615, 615, 1425, 1425, 1425, 1425, 1425, 1425, 1383, 1383, 1383, 1426, 1426, 1426, 1426, 1426, 1426, 1383, 633, 633, 633, 633, 633, 1383, 1383, 1383, 1383, 642, 642, 642, 642, 642, 1383, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 1383, 769, 769, 769, 769, 769, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 786, 786, 786, 786, 786, 1383, 792, 792, 792, 792, 792, 1383, 798, 798, 798, 798, 798, 1383, 804, 804, 1383, 807, 807, 807, 807, 807, 1427, 1427, 1427, 1383, 1383, 1428, 1428, 1428, 1383, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 1383, 1383, 1383, 1383, 1383, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 1383, 1383, 1383, 1383, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 1383, 1089, 1089, 1383, 1383, 1383, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 1089, 1089, 1089, 1089, 1089, 1089, 1383, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 1429, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 1429, 1430, 1429, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 1429, 1431, 1429, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 1429, 1432, 1429, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 1429, 1433, 1434, 1429, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 1433, 1429, 1429, 1435, 1429, 1429, 1433, 1429, 1433, 1429, 821, 821, 821, 821, 821, 821, 821, 821, 1429, 1429, 1429, 1429, 1429, 1429, 1433, 1429, 1429, 1436, 1429, 1429, 1433, 821, 821, 821, 821, 821, 821, 821, 1429, 1429, 1429, 1429, 1429, 1429, 1429, 1433, 1429, 1429, 1437, 1438, 1429, 1429, 1433, 1383, 1349, 1349, 1349, 1429, 1429, 1429, 1429, 1433, 1429, 1429, 1433, 1439, 1429, 1429, 1433, 1349, 1349, 1429, 1433, 1429, 1429, 1433, 1429, 1429, 1433, 1349, 1429, 1349, 1429, 1349, 1429, 1349, 1429, 0, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383 } ; static yyconst short int yy_nxt[26368] = { 0, 38, 39, 39, 39, 39, 40, 41, 42, 43, 38, 38, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 62, 38, 63, 38, 61, 64, 65, 66, 67, 68, 69, 70, 61, 71, 61, 72, 73, 74, 75, 76, 77, 61, 78, 79, 80, 81, 82, 83, 84, 61, 85, 86, 87, 38, 38, 38, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 38, 38, 38, 38, 61, 38, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 38, 61, 61, 61, 61, 61, 61, 61, 61, 61, 38, 38, 38, 38, 38, 38, 61, 61, 61, 38, 61, 38, 38, 38, 61, 61, 61, 61, 61, 38, 38, 38, 61, 38, 38, 38, 38, 61, 38, 61, 38, 38, 38, 61, 38, 38, 38, 61, 61, 61, 61, 61, 61, 38, 38, 38, 38, 38, 38, 38, 61, 61, 38, 38, 61, 38, 61, 61, 61, 61, 61, 61, 61, 38, 38, 38, 38, 38, 38, 61, 61, 38, 38, 61, 38, 61, 61, 61, 61, 61, 61, 61, 38, 61, 38, 38, 38, 61, 38, 38, 61, 61, 61, 61, 61, 61, 38, 61, 38, 38, 38, 38, 61, 61, 38, 38, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 38, 38, 38, 38, 38, 38, 61, 61, 61, 61, 61, 38, 38, 38, 38, 61, 38, 38, 61, 61, 61, 61, 61, 38, 38, 38, 38, 61, 61, 38, 38, 61, 88, 88, 88, 38, 38, 38, 38, 88, 38, 88, 88, 38, 88, 38, 88, 38, 38, 38, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 38, 88, 38, 38, 88, 88, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 88, 88, 38, 38, 38, 38, 38, 38, 38, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 38, 38, 88, 88, 88, 88, 38, 89, 89, 38, 38, 88, 38, 38, 38, 88, 38, 88, 89, 88, 38, 38, 38, 38, 38, 38, 184, 185, 38, 99, 99, 99, 99, 196, 178, 100, 197, 91, 179, 368, 91, 99, 99, 99, 99, 38, 92, 100, 38, 92, 38, 186, 1249, 38, 175, 175, 175, 175, 38, 198, 189, 38, 190, 38, 114, 187, 38, 114, 180, 412, 181, 182, 202, 203, 413, 211, 252, 199, 200, 579, 201, 212, 580, 213, 192, 214, 193, 363, 215, 216, 253, 238, 184, 185, 194, 194, 194, 194, 195, 194, 194, 194, 194, 194, 239, 110, 240, 364, 110, 194, 194, 194, 194, 195, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 217, 221, 224, 1250, 218, 254, 225, 257, 222, 255, 258, 540, 226, 541, 219, 223, 227, 228, 229, 256, 259, 230, 260, 233, 220, 278, 231, 279, 232, 234, 280, 241, 235, 242, 236, 237, 261, 556, 248, 548, 243, 244, 249, 262, 281, 365, 245, 246, 282, 557, 549, 272, 250, 263, 273, 274, 264, 251, 266, 323, 267, 275, 268, 283, 276, 366, 284, 285, 269, 491, 1251, 277, 270, 286, 338, 492, 328, 271, 289, 289, 289, 289, 297, 297, 297, 297, 306, 306, 306, 306, 329, 349, 515, 462, 423, 324, 180, 201, 181, 182, 463, 325, 355, 355, 355, 355, 326, 516, 423, 424, 339, 327, 175, 175, 175, 175, 340, 394, 394, 394, 394, 341, 402, 402, 402, 402, 342, 350, 414, 414, 414, 414, 536, 351, 175, 175, 175, 175, 352, 537, 178, 1252, 433, 353, 179, 425, 434, 453, 454, 470, 622, 426, 471, 465, 466, 467, 427, 468, 472, 475, 480, 428, 469, 577, 476, 473, 474, 494, 1253, 455, 502, 483, 484, 487, 481, 488, 538, 477, 435, 554, 478, 503, 504, 539, 436, 555, 846, 190, 485, 437, 423, 204, 489, 495, 438, 194, 194, 194, 194, 195, 194, 194, 194, 194, 194, 584, 496, 497, 518, 578, 194, 194, 194, 194, 195, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 507, 510, 519, 527, 204, 508, 446, 528, 559, 596, 509, 622, 520, 529, 560, 531, 585, 532, 521, 533, 511, 693, 512, 534, 564, 535, 565, 583, 586, 596, 544, 587, 566, 204, 545, 289, 289, 289, 289, 204, 650, 369, 369, 369, 546, 204, 672, 547, 297, 297, 297, 297, 652, 93, 93, 93, 93, 93, 93, 38, 94, 94, 94, 94, 38, 38, 38, 38, 38, 38, 38, 95, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 38, 38, 38, 38, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 38, 38, 38, 38, 38, 38, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 38, 38, 38, 38, 96, 38, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 38, 96, 96, 96, 96, 96, 96, 96, 96, 96, 38, 38, 38, 38, 38, 38, 96, 96, 96, 38, 96, 38, 38, 38, 96, 96, 96, 96, 96, 38, 38, 38, 96, 38, 38, 38, 38, 96, 38, 96, 38, 38, 38, 96, 38, 38, 38, 96, 96, 96, 96, 96, 96, 38, 38, 38, 38, 38, 38, 38, 96, 96, 38, 38, 96, 38, 96, 96, 96, 96, 96, 96, 96, 38, 38, 38, 38, 38, 38, 96, 96, 38, 38, 96, 38, 96, 96, 96, 96, 96, 96, 96, 38, 96, 38, 38, 38, 96, 38, 38, 96, 96, 96, 96, 96, 96, 38, 96, 38, 38, 38, 38, 96, 96, 38, 38, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 38, 38, 38, 38, 38, 38, 96, 96, 96, 96, 96, 38, 38, 38, 38, 96, 38, 38, 96, 96, 96, 96, 96, 38, 38, 38, 38, 96, 96, 38, 38, 96, 97, 97, 97, 38, 38, 38, 38, 97, 38, 97, 97, 38, 97, 38, 97, 38, 38, 38, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 38, 97, 38, 38, 97, 97, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 97, 97, 38, 38, 38, 38, 38, 38, 38, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 38, 38, 97, 97, 97, 97, 38, 98, 98, 38, 38, 97, 38, 38, 38, 97, 38, 97, 98, 97, 38, 38, 38, 38, 38, 38, 300, 368, 38, 300, 371, 372, 102, 375, 388, 102, 389, 390, 388, 442, 389, 390, 306, 306, 306, 306, 590, 194, 194, 194, 194, 195, 194, 194, 194, 194, 194, 592, 434, 669, 593, 204, 194, 194, 194, 194, 195, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 192, 596, 193, 596, 596, 591, 355, 355, 355, 355, 194, 194, 194, 194, 195, 194, 194, 194, 194, 194, 434, 596, 631, 596, 596, 194, 194, 194, 194, 195, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 443, 379, 379, 379, 394, 394, 394, 394, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 402, 402, 402, 402, 632, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 444, 423, 444, 204, 423, 445, 414, 414, 414, 414, 204, 434, 655, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 323, 338, 349, 674, 1254, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 620, 423, 434, 621, 434, 623, 324, 339, 350, 631, 204, 627, 325, 340, 351, 618, 657, 326, 341, 352, 654, 204, 327, 342, 353, 204, 204, 204, 656, 204, 204, 658, 659, 660, 204, 661, 204, 671, 667, 204, 204, 666, 204, 662, 663, 665, 204, 1255, 629, 204, 664, 630, 204, 679, 442, 673, 678, 628, 204, 204, 675, 619, 194, 194, 194, 194, 195, 194, 194, 194, 194, 194, 680, 677, 681, 1256, 204, 194, 194, 194, 194, 195, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 204, 204, 204, 204, 696, 204, 204, 204, 685, 691, 686, 204, 692, 687, 684, 688, 204, 689, 690, 697, 204, 698, 204, 391, 391, 391, 204, 391, 391, 391, 694, 699, 204, 204, 700, 701, 706, 702, 204, 707, 204, 204, 204, 708, 712, 204, 703, 715, 204, 204, 719, 713, 753, 717, 720, 709, 710, 204, 369, 369, 369, 716, 373, 373, 373, 721, 725, 727, 204, 204, 735, 204, 1257, 376, 376, 376, 301, 301, 301, 301, 301, 301, 103, 103, 103, 103, 103, 103, 38, 104, 104, 104, 104, 38, 105, 38, 38, 38, 38, 106, 38, 38, 38, 38, 38, 38, 38, 107, 38, 38, 38, 38, 108, 109, 38, 38, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 38, 38, 38, 38, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 111, 110, 38, 38, 38, 38, 38, 38, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 38, 38, 38, 38, 110, 38, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 38, 110, 110, 110, 110, 110, 110, 110, 110, 110, 38, 38, 38, 38, 38, 38, 110, 110, 110, 38, 110, 38, 38, 38, 110, 110, 110, 110, 110, 38, 38, 38, 110, 38, 38, 38, 38, 110, 38, 110, 38, 38, 38, 110, 38, 38, 38, 110, 110, 110, 110, 110, 110, 38, 38, 38, 38, 38, 38, 38, 110, 110, 38, 38, 110, 38, 110, 110, 110, 110, 110, 110, 110, 38, 38, 38, 38, 38, 38, 110, 110, 38, 38, 110, 38, 110, 110, 110, 110, 110, 110, 110, 38, 110, 38, 38, 38, 110, 38, 38, 110, 110, 110, 110, 110, 110, 38, 110, 38, 38, 38, 38, 110, 110, 38, 38, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 38, 38, 38, 38, 38, 38, 110, 110, 110, 110, 110, 38, 38, 38, 38, 110, 38, 38, 110, 110, 110, 110, 110, 38, 38, 38, 38, 110, 110, 38, 38, 110, 112, 112, 112, 38, 38, 38, 38, 112, 38, 112, 112, 38, 112, 38, 112, 38, 38, 38, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 38, 112, 38, 38, 112, 112, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 112, 112, 38, 38, 38, 38, 38, 38, 38, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 38, 38, 112, 112, 112, 112, 38, 113, 113, 38, 38, 112, 38, 38, 38, 112, 38, 112, 113, 112, 38, 38, 38, 38, 38, 38, 115, 115, 115, 115, 38, 115, 115, 115, 115, 117, 38, 378, 368, 38, 117, 368, 123, 318, 38, 123, 124, 38, 118, 124, 204, 736, 204, 118, 130, 131, 319, 130, 131, 125, 743, 388, 125, 389, 390, 204, 388, 125, 389, 390, 125, 388, 204, 389, 390, 722, 728, 204, 204, 726, 204, 204, 724, 731, 204, 729, 741, 204, 733, 204, 204, 723, 204, 119, 204, 120, 745, 730, 119, 757, 120, 320, 742, 321, 126, 739, 127, 126, 204, 127, 443, 766, 132, 204, 133, 132, 204, 133, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 747, 423, 737, 738, 1258, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 445, 751, 204, 1259, 762, 204, 204, 204, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 744, 754, 764, 204, 814, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 204, 204, 755, 204, 204, 204, 204, 758, 760, 204, 748, 746, 765, 204, 1260, 749, 767, 204, 763, 759, 577, 776, 330, 761, 584, 434, 337, 780, 434, 776, 776, 776, 776, 776, 1261, 780, 780, 780, 780, 780, 590, 423, 354, 423, 776, 776, 776, 776, 776, 776, 780, 780, 780, 780, 780, 780, 783, 403, 806, 423, 423, 403, 1262, 423, 783, 783, 783, 783, 783, 805, 204, 822, 631, 618, 819, 177, 177, 813, 434, 783, 783, 783, 783, 783, 783, 813, 813, 813, 813, 813, 204, 824, 833, 622, 815, 204, 434, 434, 434, 434, 813, 813, 813, 813, 813, 813, 627, 818, 183, 828, 183, 830, 825, 204, 832, 818, 818, 818, 818, 818, 823, 204, 864, 204, 820, 204, 865, 204, 639, 829, 818, 818, 818, 818, 818, 818, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 204, 631, 204, 826, 837, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 831, 836, 204, 856, 838, 839, 204, 834, 391, 391, 391, 835, 872, 391, 391, 391, 204, 204, 391, 391, 391, 204, 204, 204, 204, 840, 841, 369, 369, 369, 369, 369, 369, 204, 875, 379, 379, 379, 1266, 204, 121, 121, 121, 849, 204, 121, 121, 121, 322, 322, 322, 128, 128, 128, 128, 128, 128, 204, 1267, 134, 134, 134, 134, 134, 134, 38, 135, 135, 135, 135, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 136, 38, 137, 137, 137, 137, 137, 137, 137, 137, 137, 138, 38, 38, 38, 38, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 139, 137, 38, 38, 38, 38, 38, 38, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 38, 38, 38, 38, 137, 38, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 38, 137, 137, 137, 137, 137, 137, 137, 137, 137, 38, 38, 38, 38, 38, 38, 137, 137, 137, 38, 137, 38, 38, 38, 137, 137, 137, 137, 137, 38, 38, 38, 137, 38, 38, 38, 38, 137, 38, 137, 38, 38, 38, 137, 38, 38, 38, 137, 137, 137, 137, 137, 137, 38, 38, 38, 38, 38, 38, 38, 137, 137, 38, 38, 137, 38, 137, 137, 137, 137, 137, 137, 137, 38, 38, 38, 38, 38, 38, 137, 137, 38, 38, 137, 38, 137, 137, 137, 137, 137, 137, 137, 38, 137, 38, 38, 38, 137, 38, 38, 137, 137, 137, 137, 137, 137, 38, 137, 38, 38, 38, 38, 137, 137, 38, 38, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 38, 38, 38, 38, 38, 38, 137, 137, 137, 137, 137, 38, 38, 38, 38, 137, 38, 38, 137, 137, 137, 137, 137, 38, 38, 38, 38, 137, 137, 38, 38, 137, 140, 140, 140, 38, 38, 38, 38, 140, 38, 140, 140, 38, 140, 38, 140, 38, 38, 38, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 38, 140, 38, 38, 140, 140, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 140, 140, 38, 38, 38, 38, 38, 38, 38, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 38, 38, 140, 140, 140, 140, 38, 141, 141, 38, 38, 140, 38, 38, 38, 140, 38, 140, 141, 140, 38, 38, 38, 38, 38, 38, 303, 375, 38, 300, 368, 38, 304, 368, 873, 38, 844, 204, 371, 372, 847, 598, 372, 204, 848, 852, 204, 443, 146, 204, 845, 143, 146, 204, 143, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 876, 853, 204, 204, 204, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 204, 204, 857, 855, 204, 858, 204, 851, 859, 204, 204, 860, 861, 866, 204, 870, 204, 868, 869, 204, 874, 204, 204, 878, 879, 881, 204, 883, 204, 884, 204, 204, 885, 204, 886, 887, 888, 204, 204, 889, 890, 204, 893, 891, 204, 892, 902, 204, 204, 204, 204, 895, 204, 204, 204, 896, 897, 204, 898, 204, 899, 204, 900, 903, 901, 904, 906, 907, 204, 204, 204, 204, 204, 204, 908, 204, 912, 204, 905, 909, 204, 204, 910, 911, 204, 915, 204, 204, 913, 916, 204, 917, 918, 919, 921, 920, 204, 922, 923, 204, 925, 204, 204, 204, 204, 204, 423, 204, 924, 204, 434, 204, 204, 776, 983, 330, 423, 1268, 984, 1105, 1269, 776, 776, 776, 776, 776, 1136, 1106, 1270, 1271, 1137, 1272, 1273, 1274, 1275, 1276, 776, 776, 776, 776, 776, 776, 780, 1277, 337, 1278, 1279, 1284, 1285, 1286, 780, 780, 780, 780, 780, 1287, 1288, 1289, 1290, 1291, 631, 622, 1292, 1293, 1294, 780, 780, 780, 780, 780, 780, 783, 622, 354, 1295, 1306, 1307, 1308, 1309, 783, 783, 783, 783, 783, 1310, 1311, 423, 1312, 1313, 1327, 1328, 1329, 1330, 1331, 783, 783, 783, 783, 783, 783, 813, 1332, 177, 1333, 1349, 1350, 1351, 1352, 813, 813, 813, 813, 813, 204, 204, 1366, 204, 204, 204, 204, 434, 204, 1248, 813, 813, 813, 813, 813, 813, 818, 1379, 183, 204, 1375, 204, 1377, 1247, 818, 818, 818, 818, 818, 1381, 1246, 1242, 1241, 1240, 1239, 1238, 1237, 1236, 1235, 818, 818, 818, 818, 818, 818, 1234, 1233, 1232, 1231, 1230, 1229, 1228, 1227, 1226, 1225, 1224, 1220, 1219, 1218, 1217, 1216, 1215, 1214, 1213, 1212, 1211, 1210, 1209, 1208, 1207, 1206, 1205, 1204, 1203, 1202, 1201, 1200, 1199, 1198, 1197, 1196, 1195, 1194, 1193, 1192, 1191, 1190, 1189, 1188, 1187, 1186, 1185, 1184, 369, 369, 369, 369, 369, 369, 376, 376, 376, 373, 373, 373, 599, 599, 599, 305, 305, 305, 301, 301, 301, 144, 144, 144, 144, 144, 144, 147, 147, 147, 1183, 147, 147, 147, 148, 149, 149, 149, 149, 148, 148, 148, 148, 148, 148, 148, 150, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 148, 148, 148, 148, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 148, 148, 148, 148, 148, 148, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 148, 148, 148, 148, 151, 148, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 148, 151, 151, 151, 151, 151, 151, 151, 151, 151, 148, 148, 148, 148, 148, 148, 151, 151, 151, 148, 151, 148, 148, 148, 151, 151, 151, 151, 151, 148, 148, 148, 151, 148, 148, 148, 148, 151, 148, 151, 148, 148, 148, 151, 148, 148, 148, 151, 151, 151, 151, 151, 151, 148, 148, 148, 148, 148, 148, 148, 151, 151, 148, 148, 151, 148, 151, 151, 151, 151, 151, 151, 151, 148, 148, 148, 148, 148, 148, 151, 151, 148, 148, 151, 148, 151, 151, 151, 151, 151, 151, 151, 148, 151, 148, 148, 148, 151, 148, 148, 151, 151, 151, 151, 151, 151, 148, 151, 148, 148, 148, 148, 151, 151, 148, 148, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 148, 148, 148, 148, 148, 148, 151, 151, 151, 151, 151, 148, 148, 148, 148, 151, 148, 148, 151, 151, 151, 151, 151, 148, 148, 148, 148, 151, 151, 148, 148, 151, 152, 152, 152, 148, 148, 148, 148, 152, 148, 152, 152, 148, 152, 148, 152, 148, 148, 148, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 148, 152, 148, 148, 152, 152, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 152, 152, 148, 148, 148, 148, 148, 148, 148, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 148, 148, 152, 152, 152, 152, 148, 153, 153, 148, 148, 152, 148, 148, 148, 152, 148, 152, 153, 152, 148, 148, 148, 148, 148, 154, 154, 154, 154, 154, 375, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 155, 154, 156, 157, 1182, 1181, 1180, 1179, 316, 316, 316, 316, 1178, 1177, 1176, 1175, 1174, 318, 1173, 332, 318, 1172, 332, 333, 1171, 1170, 333, 1169, 1168, 1167, 319, 344, 345, 319, 344, 345, 303, 1166, 1165, 300, 1164, 1163, 304, 300, 1162, 1161, 303, 1160, 1159, 300, 1158, 1157, 573, 1156, 316, 316, 316, 316, 318, 1149, 1148, 1147, 375, 318, 1146, 1145, 318, 1144, 332, 318, 1143, 319, 333, 1142, 1141, 320, 319, 321, 320, 319, 321, 334, 319, 335, 334, 375, 335, 344, 345, 346, 375, 347, 346, 332, 347, 1140, 332, 333, 1139, 1138, 333, 1135, 1134, 344, 345, 1222, 344, 345, 300, 368, 1133, 300, 1132, 1131, 300, 1130, 320, 1129, 321, 1128, 1222, 320, 1127, 321, 320, 1126, 321, 320, 1125, 321, 334, 1124, 335, 1123, 1122, 1121, 368, 1120, 1119, 368, 1118, 1117, 1116, 1115, 1114, 346, 1113, 347, 1112, 1111, 330, 1110, 1109, 1108, 1107, 334, 1244, 335, 334, 1222, 335, 346, 1222, 347, 346, 1264, 347, 1281, 1222, 1104, 1297, 1222, 1304, 1297, 1222, 1314, 1103, 1222, 1319, 1102, 1101, 1100, 1282, 1298, 1099, 1098, 1298, 1282, 1321, 1097, 1222, 1096, 1095, 1222, 1297, 1094, 1222, 1093, 1092, 1088, 1299, 1322, 1297, 1299, 1087, 1086, 1085, 1298, 1222, 1084, 1083, 1315, 1082, 1222, 1081, 1298, 1080, 1316, 1323, 1334, 1079, 1281, 1317, 1078, 1299, 1077, 1281, 1318, 1300, 1222, 1301, 1300, 1299, 1301, 1076, 1222, 1297, 1314, 1075, 1222, 1319, 1074, 1073, 1222, 1072, 1071, 1324, 1222, 1325, 1298, 1222, 1297, 1300, 1222, 1301, 1340, 1070, 1222, 1336, 1069, 1300, 1337, 1301, 1222, 1298, 1335, 1299, 1342, 1068, 1338, 1222, 1067, 1338, 1315, 1066, 1222, 1339, 1065, 1222, 1316, 1343, 1299, 1344, 1334, 1317, 1281, 1222, 1319, 1281, 1318, 1222, 1281, 1064, 1222, 1300, 1063, 1301, 1345, 1062, 1061, 1222, 1060, 1356, 1222, 1338, 1059, 1222, 1354, 1281, 1300, 1355, 1301, 1222, 1058, 1376, 1057, 1056, 1222, 376, 376, 376, 1055, 1222, 1054, 1053, 1346, 1222, 1347, 1281, 158, 158, 158, 154, 154, 154, 154, 154, 154, 1338, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 155, 154, 156, 157, 322, 322, 322, 322, 322, 322, 336, 336, 336, 336, 336, 336, 1052, 1051, 348, 348, 348, 348, 348, 348, 1050, 1049, 305, 305, 305, 301, 301, 301, 1048, 301, 301, 301, 574, 574, 574, 301, 301, 301, 376, 376, 376, 322, 322, 322, 1047, 1046, 322, 322, 322, 322, 322, 322, 322, 322, 322, 336, 336, 336, 1223, 1223, 1223, 376, 376, 376, 1045, 1044, 376, 376, 376, 1043, 348, 348, 348, 1223, 1223, 1223, 369, 369, 369, 1042, 336, 336, 336, 336, 336, 336, 348, 348, 348, 348, 348, 348, 1041, 1040, 301, 301, 301, 301, 301, 301, 301, 301, 301, 369, 369, 369, 369, 369, 369, 1245, 1245, 1245, 1223, 1223, 1223, 1223, 1223, 1223, 1265, 1265, 1265, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1039, 1038, 1283, 1283, 1283, 1037, 1036, 1305, 1305, 1305, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1035, 1302, 1302, 1302, 1302, 1302, 1302, 1034, 1033, 1223, 1223, 1223, 1032, 1031, 1223, 1223, 1223, 1030, 1029, 1326, 1326, 1326, 1028, 1027, 1026, 1302, 1302, 1302, 1025, 1024, 1223, 1223, 1223, 1302, 1302, 1302, 1223, 1223, 1223, 1023, 1223, 1223, 1223, 1022, 1223, 1223, 1223, 1021, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1020, 1223, 1223, 1223, 1018, 1017, 1016, 1223, 1223, 1223, 1302, 1302, 1302, 1015, 1223, 1223, 1223, 1014, 1013, 1223, 1223, 1223, 1223, 1223, 1223, 1302, 1302, 1302, 1012, 1011, 1223, 1223, 1223, 1010, 1223, 1223, 1223, 1223, 1223, 1223, 1009, 1348, 1348, 1348, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1008, 1007, 1006, 1223, 1223, 1223, 1005, 1004, 1223, 1223, 1223, 1003, 1002, 1223, 1223, 1223, 1001, 1223, 1223, 1223, 1000, 999, 998, 997, 996, 995, 994, 993, 992, 991, 990, 989, 988, 987, 986, 985, 982, 981, 980, 979, 978, 977, 976, 975, 974, 973, 972, 971, 970, 969, 968, 967, 966, 965, 964, 963, 962, 961, 960, 959, 958, 957, 956, 158, 158, 158, 154, 38, 159, 159, 159, 159, 38, 38, 160, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 38, 38, 38, 38, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 38, 38, 38, 38, 38, 38, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 38, 38, 38, 38, 161, 38, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 38, 161, 161, 161, 161, 161, 161, 161, 161, 161, 38, 38, 38, 38, 38, 38, 161, 161, 161, 38, 161, 38, 38, 38, 161, 161, 161, 161, 161, 38, 38, 38, 161, 38, 38, 38, 38, 161, 38, 161, 38, 38, 38, 161, 38, 38, 38, 161, 161, 161, 161, 161, 161, 38, 38, 38, 38, 38, 38, 38, 161, 161, 38, 38, 161, 38, 161, 161, 161, 161, 161, 161, 161, 38, 38, 38, 38, 38, 38, 161, 161, 38, 38, 161, 38, 161, 161, 161, 161, 161, 161, 161, 38, 161, 38, 38, 38, 161, 38, 38, 161, 161, 161, 161, 161, 161, 38, 161, 38, 38, 38, 38, 161, 161, 38, 38, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 38, 38, 38, 38, 38, 38, 161, 161, 161, 161, 161, 38, 38, 38, 38, 161, 38, 38, 161, 161, 161, 161, 161, 38, 38, 38, 38, 161, 161, 38, 38, 161, 162, 162, 162, 38, 38, 38, 38, 162, 38, 162, 162, 38, 162, 38, 162, 38, 38, 38, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 38, 162, 38, 38, 162, 162, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 162, 162, 38, 38, 38, 38, 38, 38, 38, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 38, 38, 162, 162, 162, 162, 38, 163, 163, 38, 38, 162, 38, 38, 38, 162, 38, 162, 163, 162, 38, 38, 38, 38, 38, 38, 164, 164, 164, 164, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 38, 38, 38, 38, 165, 165, 165, 165, 165, 165, 165, 165, 166, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 167, 165, 165, 165, 168, 165, 38, 38, 38, 38, 38, 38, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 38, 38, 38, 38, 165, 38, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 38, 165, 165, 165, 165, 165, 165, 165, 165, 165, 38, 38, 38, 38, 38, 38, 165, 165, 165, 38, 165, 38, 38, 38, 165, 165, 165, 165, 165, 38, 38, 38, 165, 38, 38, 38, 38, 165, 38, 165, 38, 38, 38, 165, 38, 38, 38, 165, 165, 165, 165, 165, 165, 38, 38, 38, 38, 38, 38, 38, 165, 165, 38, 38, 165, 38, 165, 165, 165, 165, 165, 165, 165, 38, 38, 38, 38, 38, 38, 165, 165, 38, 38, 165, 38, 165, 165, 165, 165, 165, 165, 165, 38, 165, 38, 38, 38, 165, 38, 38, 165, 165, 165, 165, 165, 165, 38, 165, 38, 38, 38, 38, 165, 165, 38, 38, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 38, 38, 38, 38, 38, 38, 165, 165, 165, 165, 165, 38, 38, 38, 38, 165, 38, 38, 165, 165, 165, 165, 165, 38, 38, 38, 38, 165, 165, 38, 38, 165, 169, 169, 169, 38, 38, 38, 38, 169, 38, 169, 169, 38, 169, 38, 169, 38, 38, 38, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 38, 169, 38, 38, 169, 169, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 169, 169, 38, 38, 38, 38, 38, 38, 38, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 38, 38, 169, 169, 169, 169, 38, 170, 170, 38, 38, 169, 38, 38, 38, 169, 38, 169, 170, 169, 38, 38, 38, 38, 38, 38, 171, 171, 171, 171, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 38, 38, 38, 38, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 38, 38, 38, 38, 38, 38, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 38, 38, 38, 38, 172, 38, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 38, 172, 172, 172, 172, 172, 172, 172, 172, 172, 38, 38, 38, 38, 38, 38, 172, 172, 172, 38, 172, 38, 38, 38, 172, 172, 172, 172, 172, 38, 38, 38, 172, 38, 38, 38, 38, 172, 38, 172, 38, 38, 38, 172, 38, 38, 38, 172, 172, 172, 172, 172, 172, 38, 38, 38, 38, 38, 38, 38, 172, 172, 38, 38, 172, 38, 172, 172, 172, 172, 172, 172, 172, 38, 38, 38, 38, 38, 38, 172, 172, 38, 38, 172, 38, 172, 172, 172, 172, 172, 172, 172, 38, 172, 38, 38, 38, 172, 38, 38, 172, 172, 172, 172, 172, 172, 38, 172, 38, 38, 38, 38, 172, 172, 38, 38, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 38, 38, 38, 38, 38, 38, 172, 172, 172, 172, 172, 38, 38, 38, 38, 172, 38, 38, 172, 172, 172, 172, 172, 38, 38, 38, 38, 172, 172, 38, 38, 172, 173, 173, 173, 38, 38, 38, 38, 173, 38, 173, 173, 38, 173, 38, 173, 38, 38, 38, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 38, 173, 38, 38, 173, 173, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 173, 173, 38, 38, 38, 38, 38, 38, 38, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 38, 38, 173, 173, 173, 173, 38, 174, 174, 38, 38, 173, 38, 38, 38, 173, 38, 173, 174, 173, 38, 38, 38, 38, 38, 204, 204, 955, 205, 206, 954, 953, 952, 951, 950, 949, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 948, 947, 946, 945, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 944, 943, 942, 941, 940, 207, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 207, 207, 208, 208, 204, 207, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 208, 204, 204, 204, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 208, 208, 204, 204, 204, 207, 204, 208, 205, 208, 204, 204, 204, 204, 204, 208, 208, 208, 204, 208, 208, 205, 208, 204, 208, 204, 208, 208, 208, 204, 208, 205, 208, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 208, 208, 208, 204, 204, 208, 205, 204, 208, 204, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 208, 208, 204, 204, 205, 208, 204, 208, 204, 204, 204, 204, 204, 204, 204, 208, 204, 208, 208, 208, 204, 205, 208, 204, 204, 204, 204, 204, 204, 208, 204, 208, 208, 208, 208, 204, 204, 205, 208, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 205, 208, 204, 204, 204, 204, 204, 208, 208, 208, 208, 204, 205, 208, 204, 204, 204, 204, 204, 208, 208, 208, 208, 204, 204, 205, 208, 204, 209, 209, 209, 208, 208, 208, 208, 209, 205, 209, 209, 208, 209, 208, 209, 207, 208, 205, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 208, 209, 208, 208, 209, 209, 207, 208, 205, 208, 205, 208, 208, 208, 208, 208, 209, 209, 208, 208, 208, 208, 208, 208, 208, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 208, 208, 209, 209, 209, 209, 207, 210, 210, 208, 207, 209, 208, 208, 207, 209, 207, 209, 210, 209, 290, 290, 939, 291, 292, 938, 937, 936, 935, 934, 933, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 932, 931, 930, 929, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 594, 594, 588, 588, 928, 293, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 293, 293, 294, 294, 290, 293, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 294, 290, 290, 290, 290, 290, 290, 290, 290, 290, 294, 294, 294, 294, 294, 294, 290, 290, 290, 293, 290, 294, 291, 294, 290, 290, 290, 290, 290, 294, 294, 294, 290, 294, 294, 291, 294, 290, 294, 290, 294, 294, 294, 290, 294, 291, 294, 290, 290, 290, 290, 290, 290, 294, 294, 294, 294, 294, 294, 294, 290, 290, 294, 291, 290, 294, 290, 290, 290, 290, 290, 290, 290, 294, 294, 294, 294, 294, 294, 290, 290, 291, 294, 290, 294, 290, 290, 290, 290, 290, 290, 290, 294, 290, 294, 294, 294, 290, 291, 294, 290, 290, 290, 290, 290, 290, 294, 290, 294, 294, 294, 294, 290, 290, 291, 294, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 294, 294, 294, 294, 291, 294, 290, 290, 290, 290, 290, 294, 294, 294, 294, 290, 291, 294, 290, 290, 290, 290, 290, 294, 294, 294, 294, 290, 290, 291, 294, 290, 295, 295, 295, 294, 294, 294, 294, 295, 291, 295, 295, 294, 295, 294, 295, 293, 294, 291, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 294, 295, 294, 294, 295, 295, 293, 294, 291, 294, 291, 294, 294, 294, 294, 294, 295, 295, 294, 294, 294, 294, 294, 294, 294, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 294, 294, 295, 295, 295, 295, 293, 296, 296, 294, 293, 295, 294, 294, 293, 295, 293, 295, 296, 295, 308, 308, 581, 309, 310, 581, 926, 914, 204, 204, 204, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 204, 204, 204, 204, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 894, 882, 880, 877, 204, 311, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 311, 311, 312, 312, 308, 311, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 312, 308, 308, 308, 308, 308, 308, 308, 308, 308, 312, 312, 312, 312, 312, 312, 308, 308, 308, 311, 308, 312, 309, 312, 308, 308, 308, 308, 308, 312, 312, 312, 308, 312, 312, 309, 312, 308, 312, 308, 312, 312, 312, 308, 312, 309, 312, 308, 308, 308, 308, 308, 308, 312, 312, 312, 312, 312, 312, 312, 308, 308, 312, 309, 308, 312, 308, 308, 308, 308, 308, 308, 308, 312, 312, 312, 312, 312, 312, 308, 308, 309, 312, 308, 312, 308, 308, 308, 308, 308, 308, 308, 312, 308, 312, 312, 312, 308, 309, 312, 308, 308, 308, 308, 308, 308, 312, 308, 312, 312, 312, 312, 308, 308, 309, 312, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 312, 312, 312, 312, 309, 312, 308, 308, 308, 308, 308, 312, 312, 312, 312, 308, 309, 312, 308, 308, 308, 308, 308, 312, 312, 312, 312, 308, 308, 309, 312, 308, 313, 313, 313, 312, 312, 312, 312, 313, 309, 313, 313, 312, 313, 312, 313, 311, 312, 309, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 312, 313, 312, 312, 313, 313, 311, 312, 309, 312, 309, 312, 312, 312, 312, 312, 313, 313, 312, 312, 312, 312, 312, 312, 312, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 312, 312, 313, 313, 313, 313, 311, 314, 314, 312, 311, 313, 312, 312, 311, 313, 311, 313, 314, 313, 357, 357, 204, 358, 871, 204, 204, 204, 867, 863, 862, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 204, 204, 204, 854, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 850, 204, 843, 842, 204, 359, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 359, 359, 360, 360, 357, 359, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 360, 357, 357, 357, 357, 357, 357, 357, 357, 357, 360, 360, 360, 360, 360, 360, 357, 357, 357, 359, 357, 360, 358, 360, 357, 357, 357, 357, 357, 360, 360, 360, 357, 360, 360, 358, 360, 357, 360, 357, 360, 360, 360, 357, 360, 358, 360, 357, 357, 357, 357, 357, 357, 360, 360, 360, 360, 360, 360, 360, 357, 357, 360, 358, 357, 360, 357, 357, 357, 357, 357, 357, 357, 360, 360, 360, 360, 360, 360, 357, 357, 358, 360, 357, 360, 357, 357, 357, 357, 357, 357, 357, 360, 357, 360, 360, 360, 357, 358, 360, 357, 357, 357, 357, 357, 357, 360, 357, 360, 360, 360, 360, 357, 357, 358, 360, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 360, 360, 360, 360, 358, 360, 357, 357, 357, 357, 357, 360, 360, 360, 360, 357, 358, 360, 357, 357, 357, 357, 357, 360, 360, 360, 360, 357, 357, 358, 360, 357, 361, 361, 361, 360, 360, 360, 360, 361, 358, 361, 361, 360, 361, 360, 361, 359, 360, 358, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 360, 361, 360, 360, 361, 361, 359, 360, 358, 360, 358, 360, 360, 360, 360, 360, 361, 361, 360, 360, 360, 360, 360, 360, 360, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 360, 360, 361, 361, 361, 361, 359, 362, 362, 360, 359, 361, 360, 360, 359, 361, 359, 361, 362, 361, 380, 380, 204, 381, 382, 827, 817, 816, 403, 387, 785, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 354, 784, 594, 782, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 337, 781, 588, 779, 778, 383, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 383, 383, 384, 384, 380, 383, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 384, 380, 380, 380, 380, 380, 380, 380, 380, 380, 384, 384, 384, 384, 384, 384, 380, 380, 380, 383, 380, 384, 381, 384, 380, 380, 380, 380, 380, 384, 384, 384, 380, 384, 384, 381, 384, 380, 384, 380, 384, 384, 384, 380, 384, 381, 384, 380, 380, 380, 380, 380, 380, 384, 384, 384, 384, 384, 384, 384, 380, 380, 384, 381, 380, 384, 380, 380, 380, 380, 380, 380, 380, 384, 384, 384, 384, 384, 384, 380, 380, 381, 384, 380, 384, 380, 380, 380, 380, 380, 380, 380, 384, 380, 384, 384, 384, 380, 381, 384, 380, 380, 380, 380, 380, 380, 384, 380, 384, 384, 384, 384, 380, 380, 381, 384, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 384, 384, 384, 384, 381, 384, 380, 380, 380, 380, 380, 384, 384, 384, 384, 380, 381, 384, 380, 380, 380, 380, 380, 384, 384, 384, 384, 380, 380, 381, 384, 380, 385, 385, 385, 384, 384, 384, 384, 385, 381, 385, 385, 384, 385, 384, 385, 383, 384, 381, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 384, 385, 384, 384, 385, 385, 383, 384, 381, 384, 381, 384, 384, 384, 384, 384, 385, 385, 384, 384, 384, 384, 384, 384, 384, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 384, 384, 385, 385, 385, 385, 383, 386, 386, 384, 383, 385, 384, 384, 383, 385, 383, 385, 386, 385, 395, 395, 330, 396, 397, 777, 581, 583, 768, 756, 752, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 750, 740, 734, 732, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 718, 204, 714, 711, 705, 398, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 398, 398, 399, 399, 395, 398, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 399, 395, 395, 395, 395, 395, 395, 395, 395, 395, 399, 399, 399, 399, 399, 399, 395, 395, 395, 398, 395, 399, 396, 399, 395, 395, 395, 395, 395, 399, 399, 399, 395, 399, 399, 396, 399, 395, 399, 395, 399, 399, 399, 395, 399, 396, 399, 395, 395, 395, 395, 395, 395, 399, 399, 399, 399, 399, 399, 399, 395, 395, 399, 396, 395, 399, 395, 395, 395, 395, 395, 395, 395, 399, 399, 399, 399, 399, 399, 395, 395, 396, 399, 395, 399, 395, 395, 395, 395, 395, 395, 395, 399, 395, 399, 399, 399, 395, 396, 399, 395, 395, 395, 395, 395, 395, 399, 395, 399, 399, 399, 399, 395, 395, 396, 399, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 399, 399, 399, 399, 396, 399, 395, 395, 395, 395, 395, 399, 399, 399, 399, 395, 396, 399, 395, 395, 395, 395, 395, 399, 399, 399, 399, 395, 395, 396, 399, 395, 400, 400, 400, 399, 399, 399, 399, 400, 396, 400, 400, 399, 400, 399, 400, 398, 399, 396, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 399, 400, 399, 399, 400, 400, 398, 399, 396, 399, 396, 399, 399, 399, 399, 399, 400, 400, 399, 399, 399, 399, 399, 399, 399, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 399, 399, 400, 400, 400, 400, 398, 401, 401, 399, 398, 400, 399, 399, 398, 400, 398, 400, 401, 400, 403, 403, 704, 404, 405, 204, 204, 204, 695, 204, 683, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 682, 204, 676, 204, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 670, 668, 653, 651, 204, 406, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 406, 406, 407, 407, 403, 406, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 407, 403, 403, 403, 403, 403, 403, 403, 403, 403, 407, 407, 407, 407, 407, 407, 403, 403, 403, 406, 403, 407, 404, 407, 403, 403, 403, 403, 403, 407, 407, 407, 403, 407, 407, 404, 407, 403, 407, 403, 407, 407, 407, 403, 407, 404, 407, 403, 403, 403, 403, 403, 403, 407, 407, 407, 407, 407, 407, 407, 403, 403, 407, 404, 403, 407, 403, 403, 403, 403, 403, 403, 403, 407, 407, 407, 407, 407, 407, 403, 403, 404, 407, 403, 407, 403, 403, 403, 403, 403, 403, 403, 407, 403, 407, 407, 407, 403, 404, 407, 403, 403, 403, 403, 403, 403, 407, 403, 407, 407, 407, 407, 403, 403, 404, 407, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 407, 407, 407, 407, 404, 407, 403, 403, 403, 403, 403, 407, 407, 407, 407, 403, 404, 407, 403, 403, 403, 403, 403, 407, 407, 407, 407, 403, 403, 404, 407, 403, 408, 408, 408, 407, 407, 407, 407, 408, 404, 408, 408, 407, 408, 407, 408, 406, 407, 404, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 407, 408, 407, 407, 408, 408, 406, 407, 404, 407, 404, 407, 407, 407, 407, 407, 408, 408, 407, 407, 407, 407, 407, 407, 407, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 407, 407, 408, 408, 408, 408, 406, 409, 409, 407, 406, 408, 407, 407, 406, 408, 406, 408, 409, 408, 415, 415, 204, 416, 417, 649, 204, 641, 639, 432, 434, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 626, 625, 624, 422, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 423, 614, 613, 612, 611, 418, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 418, 418, 419, 419, 415, 418, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 419, 415, 415, 415, 415, 415, 415, 415, 415, 415, 419, 419, 419, 419, 419, 419, 415, 415, 415, 418, 415, 419, 416, 419, 415, 415, 415, 415, 415, 419, 419, 419, 415, 419, 419, 416, 419, 415, 419, 415, 419, 419, 419, 415, 419, 416, 419, 415, 415, 415, 415, 415, 415, 419, 419, 419, 419, 419, 419, 419, 415, 415, 419, 416, 415, 419, 415, 415, 415, 415, 415, 415, 415, 419, 419, 419, 419, 419, 419, 415, 415, 416, 419, 415, 419, 415, 415, 415, 415, 415, 415, 415, 419, 415, 419, 419, 419, 415, 416, 419, 415, 415, 415, 415, 415, 415, 419, 415, 419, 419, 419, 419, 415, 415, 416, 419, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 419, 419, 419, 419, 416, 419, 415, 415, 415, 415, 415, 419, 419, 419, 419, 415, 416, 419, 415, 415, 415, 415, 415, 419, 419, 419, 419, 415, 415, 416, 419, 415, 420, 420, 420, 419, 419, 419, 419, 420, 416, 420, 420, 419, 420, 419, 420, 418, 419, 416, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 419, 420, 419, 419, 420, 420, 418, 419, 416, 419, 416, 419, 419, 419, 419, 419, 420, 420, 419, 419, 419, 419, 419, 419, 419, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 419, 419, 420, 420, 420, 420, 418, 421, 421, 419, 418, 420, 419, 419, 418, 420, 418, 420, 421, 420, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 604, 393, 392, 392, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 600, 595, 594, 594, 354, 354, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 354, 589, 588, 588, 439, 337, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 337, 439, 439, 439, 439, 439, 439, 439, 439, 439, 337, 582, 581, 581, 330, 330, 439, 439, 439, 576, 439, 575, 568, 567, 439, 439, 439, 439, 439, 563, 562, 561, 439, 558, 553, 552, 551, 439, 550, 439, 543, 542, 530, 439, 526, 525, 524, 439, 439, 439, 439, 439, 439, 523, 522, 517, 514, 513, 506, 505, 439, 439, 501, 500, 439, 499, 439, 439, 439, 439, 439, 439, 439, 498, 493, 490, 486, 482, 479, 439, 439, 464, 461, 439, 460, 439, 439, 439, 439, 439, 439, 439, 459, 439, 458, 457, 456, 439, 452, 451, 439, 439, 439, 439, 439, 439, 446, 439, 183, 431, 430, 429, 439, 439, 177, 411, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 410, 393, 392, 392, 187, 356, 439, 439, 439, 439, 439, 354, 354, 354, 337, 439, 337, 337, 439, 439, 439, 439, 439, 330, 330, 315, 307, 439, 439, 298, 187, 439, 440, 440, 440, 288, 187, 287, 265, 440, 247, 440, 440, 191, 440, 188, 440, 176, 1383, 1383, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 1383, 440, 1383, 1383, 440, 440, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 440, 440, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 1383, 1383, 440, 440, 440, 440, 1383, 441, 441, 1383, 1383, 440, 1383, 1297, 1383, 440, 1383, 440, 441, 440, 204, 204, 1383, 205, 206, 1383, 1298, 1383, 1383, 1383, 1383, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 1383, 1383, 1299, 1383, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 1300, 1383, 1301, 1383, 1383, 207, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 207, 207, 208, 208, 204, 207, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 208, 204, 204, 204, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 208, 208, 204, 204, 204, 207, 204, 208, 205, 208, 204, 204, 204, 204, 204, 208, 208, 208, 204, 208, 208, 205, 208, 204, 208, 204, 208, 208, 208, 204, 208, 205, 208, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 208, 208, 208, 204, 204, 208, 205, 204, 208, 204, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 208, 208, 204, 204, 205, 208, 204, 208, 204, 204, 204, 204, 204, 204, 204, 208, 204, 208, 208, 208, 204, 205, 208, 204, 204, 204, 204, 204, 204, 208, 204, 208, 208, 208, 208, 204, 204, 205, 208, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 205, 208, 204, 204, 204, 204, 204, 208, 208, 208, 208, 204, 205, 208, 204, 204, 204, 204, 204, 208, 208, 208, 208, 204, 204, 205, 208, 204, 209, 209, 209, 208, 208, 208, 208, 209, 205, 209, 209, 208, 209, 208, 209, 207, 208, 205, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 208, 209, 208, 208, 209, 209, 207, 208, 205, 208, 205, 208, 208, 208, 208, 208, 209, 209, 208, 208, 208, 208, 208, 208, 208, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 208, 208, 209, 209, 209, 209, 207, 210, 210, 208, 207, 209, 208, 208, 207, 209, 207, 209, 210, 209, 447, 1302, 1302, 1302, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 1383, 1383, 1383, 1383, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 1383, 1383, 1383, 1383, 1383, 1383, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 1383, 1383, 1383, 1222, 448, 1383, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 1383, 448, 448, 448, 448, 448, 448, 448, 448, 448, 1383, 1383, 1383, 1281, 1383, 1383, 448, 448, 448, 1383, 448, 1383, 1383, 1383, 448, 448, 448, 448, 448, 1383, 1383, 1383, 448, 1383, 1383, 1383, 1383, 448, 1383, 448, 1383, 1383, 1383, 448, 1383, 1383, 1383, 448, 448, 448, 448, 448, 448, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 448, 448, 1383, 1383, 448, 1383, 448, 448, 448, 448, 448, 448, 448, 1383, 1383, 1383, 1383, 1383, 1383, 448, 448, 1383, 1383, 448, 1383, 448, 448, 448, 448, 448, 448, 448, 1383, 448, 1383, 1383, 1383, 448, 1383, 1383, 448, 448, 448, 448, 448, 448, 1383, 448, 1383, 1383, 1383, 1383, 448, 448, 1383, 1383, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 1383, 1383, 1383, 1383, 1383, 1383, 448, 448, 448, 448, 448, 1383, 1383, 1383, 1383, 448, 1383, 1383, 448, 448, 448, 448, 448, 1383, 1383, 1383, 1383, 448, 448, 1383, 1383, 448, 449, 449, 449, 1383, 1383, 1383, 1383, 449, 1383, 449, 449, 1383, 449, 1383, 449, 1383, 1383, 1383, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 1383, 449, 1383, 1383, 449, 449, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 449, 449, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 1383, 1383, 449, 449, 449, 449, 1383, 450, 450, 1383, 1383, 449, 1383, 1383, 1383, 449, 1383, 449, 450, 449, 290, 290, 1383, 291, 292, 1383, 1383, 1383, 1383, 1383, 1383, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 1383, 1383, 1383, 1383, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 1223, 1223, 1223, 1383, 1383, 293, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 293, 293, 294, 294, 290, 293, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 294, 290, 290, 290, 290, 290, 290, 290, 290, 290, 294, 294, 294, 294, 294, 294, 290, 290, 290, 293, 290, 294, 291, 294, 290, 290, 290, 290, 290, 294, 294, 294, 290, 294, 294, 291, 294, 290, 294, 290, 294, 294, 294, 290, 294, 291, 294, 290, 290, 290, 290, 290, 290, 294, 294, 294, 294, 294, 294, 294, 290, 290, 294, 291, 290, 294, 290, 290, 290, 290, 290, 290, 290, 294, 294, 294, 294, 294, 294, 290, 290, 291, 294, 290, 294, 290, 290, 290, 290, 290, 290, 290, 294, 290, 294, 294, 294, 290, 291, 294, 290, 290, 290, 290, 290, 290, 294, 290, 294, 294, 294, 294, 290, 290, 291, 294, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 294, 294, 294, 294, 291, 294, 290, 290, 290, 290, 290, 294, 294, 294, 294, 290, 291, 294, 290, 290, 290, 290, 290, 294, 294, 294, 294, 290, 290, 291, 294, 290, 295, 295, 295, 294, 294, 294, 294, 295, 291, 295, 295, 294, 295, 294, 295, 293, 294, 291, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 294, 295, 294, 294, 295, 295, 293, 294, 291, 294, 291, 294, 294, 294, 294, 294, 295, 295, 294, 294, 294, 294, 294, 294, 294, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 294, 294, 295, 295, 295, 295, 293, 296, 296, 294, 293, 295, 294, 294, 293, 295, 293, 295, 296, 295, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 1383, 1383, 1383, 1383, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 1383, 1383, 1383, 1383, 1383, 1383, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 1383, 1383, 1383, 1222, 569, 1383, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 1383, 569, 569, 569, 569, 569, 569, 569, 569, 569, 1383, 1281, 1383, 1383, 1383, 1383, 569, 569, 569, 1383, 569, 1383, 1383, 1383, 569, 569, 569, 569, 569, 1383, 1383, 1383, 569, 1383, 1383, 1383, 1383, 569, 1383, 569, 1383, 1383, 1383, 569, 1383, 1383, 1383, 569, 569, 569, 569, 569, 569, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 569, 569, 1383, 1383, 569, 1383, 569, 569, 569, 569, 569, 569, 569, 1383, 1383, 1383, 1383, 1383, 1383, 569, 569, 1383, 1383, 569, 1383, 569, 569, 569, 569, 569, 569, 569, 1383, 569, 1383, 1383, 1383, 569, 1383, 1383, 569, 569, 569, 569, 569, 569, 1383, 569, 1383, 1383, 1383, 1383, 569, 569, 1383, 1383, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 1383, 1383, 1383, 1383, 1383, 1383, 569, 569, 569, 569, 569, 1383, 1383, 1383, 1383, 569, 1383, 1383, 569, 569, 569, 569, 569, 1383, 1383, 1383, 1383, 569, 569, 1383, 1383, 569, 570, 570, 570, 1383, 1383, 1383, 1383, 570, 1383, 570, 570, 1383, 570, 1383, 570, 1383, 1383, 1383, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 1383, 570, 1383, 1383, 570, 570, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 570, 570, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 1383, 1383, 570, 570, 570, 570, 1383, 571, 571, 1383, 1383, 570, 1383, 1383, 1383, 570, 1383, 570, 571, 570, 308, 308, 1383, 309, 310, 1383, 1383, 1383, 1383, 1383, 1383, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 1383, 1383, 1383, 1383, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 1223, 1223, 1223, 1383, 1383, 311, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 311, 311, 312, 312, 308, 311, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 312, 308, 308, 308, 308, 308, 308, 308, 308, 308, 312, 312, 312, 312, 312, 312, 308, 308, 308, 311, 308, 312, 309, 312, 308, 308, 308, 308, 308, 312, 312, 312, 308, 312, 312, 309, 312, 308, 312, 308, 312, 312, 312, 308, 312, 309, 312, 308, 308, 308, 308, 308, 308, 312, 312, 312, 312, 312, 312, 312, 308, 308, 312, 309, 308, 312, 308, 308, 308, 308, 308, 308, 308, 312, 312, 312, 312, 312, 312, 308, 308, 309, 312, 308, 312, 308, 308, 308, 308, 308, 308, 308, 312, 308, 312, 312, 312, 308, 309, 312, 308, 308, 308, 308, 308, 308, 312, 308, 312, 312, 312, 312, 308, 308, 309, 312, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 312, 312, 312, 312, 309, 312, 308, 308, 308, 308, 308, 312, 312, 312, 312, 308, 309, 312, 308, 308, 308, 308, 308, 312, 312, 312, 312, 308, 308, 309, 312, 308, 313, 313, 313, 312, 312, 312, 312, 313, 309, 313, 313, 312, 313, 312, 313, 311, 312, 309, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 312, 313, 312, 312, 313, 313, 311, 312, 309, 312, 309, 312, 312, 312, 312, 312, 313, 313, 312, 312, 312, 312, 312, 312, 312, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 312, 312, 313, 313, 313, 313, 311, 314, 314, 312, 311, 313, 312, 312, 311, 313, 311, 313, 314, 313, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 1383, 1383, 1383, 1383, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 1383, 1383, 1383, 1383, 1383, 1383, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 1383, 1383, 1383, 1222, 448, 1383, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 1383, 448, 448, 448, 448, 448, 448, 448, 448, 448, 1383, 1383, 1383, 1281, 1383, 1383, 448, 448, 448, 1383, 448, 1383, 1383, 1383, 448, 448, 448, 448, 448, 1383, 1383, 1383, 448, 1383, 1383, 1383, 1383, 448, 1383, 448, 1383, 1383, 1383, 448, 1383, 1383, 1383, 448, 448, 448, 448, 448, 448, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 448, 448, 1383, 1383, 448, 1383, 448, 448, 448, 448, 448, 448, 448, 1383, 1383, 1383, 1383, 1383, 1383, 448, 448, 1383, 1383, 448, 1383, 448, 448, 448, 448, 448, 448, 448, 1383, 448, 1383, 1383, 1383, 448, 1383, 1383, 448, 448, 448, 448, 448, 448, 1383, 448, 1383, 1383, 1383, 1383, 448, 448, 1383, 1383, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 1383, 1383, 1383, 1383, 1383, 1383, 448, 448, 448, 448, 448, 1383, 1383, 1383, 1383, 448, 1383, 1383, 448, 448, 448, 448, 448, 1383, 1383, 1383, 1383, 448, 448, 1383, 1383, 448, 449, 449, 449, 1383, 1383, 1383, 1383, 449, 1383, 449, 449, 1383, 449, 1383, 449, 1383, 1383, 1383, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 1383, 449, 1383, 1383, 449, 449, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 449, 449, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 1383, 1383, 449, 449, 449, 449, 1383, 450, 450, 1383, 1383, 449, 1383, 1383, 1383, 449, 1383, 449, 450, 449, 357, 357, 1383, 358, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 1383, 1383, 1383, 1383, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 1223, 1223, 1223, 1383, 1383, 359, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 359, 359, 360, 360, 357, 359, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 360, 357, 357, 357, 357, 357, 357, 357, 357, 357, 360, 360, 360, 360, 360, 360, 357, 357, 357, 359, 357, 360, 358, 360, 357, 357, 357, 357, 357, 360, 360, 360, 357, 360, 360, 358, 360, 357, 360, 357, 360, 360, 360, 357, 360, 358, 360, 357, 357, 357, 357, 357, 357, 360, 360, 360, 360, 360, 360, 360, 357, 357, 360, 358, 357, 360, 357, 357, 357, 357, 357, 357, 357, 360, 360, 360, 360, 360, 360, 357, 357, 358, 360, 357, 360, 357, 357, 357, 357, 357, 357, 357, 360, 357, 360, 360, 360, 357, 358, 360, 357, 357, 357, 357, 357, 357, 360, 357, 360, 360, 360, 360, 357, 357, 358, 360, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 360, 360, 360, 360, 358, 360, 357, 357, 357, 357, 357, 360, 360, 360, 360, 357, 358, 360, 357, 357, 357, 357, 357, 360, 360, 360, 360, 357, 357, 358, 360, 357, 361, 361, 361, 360, 360, 360, 360, 361, 358, 361, 361, 360, 361, 360, 361, 359, 360, 358, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 360, 361, 360, 360, 361, 361, 359, 360, 358, 360, 358, 360, 360, 360, 360, 360, 361, 361, 360, 360, 360, 360, 360, 360, 360, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 360, 360, 361, 361, 361, 361, 359, 362, 362, 360, 359, 361, 360, 360, 359, 361, 359, 361, 362, 361, 380, 380, 1383, 381, 382, 1383, 1383, 1383, 1383, 1383, 1383, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 1383, 1383, 1383, 1383, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 1383, 1383, 1383, 1383, 1383, 383, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 383, 383, 384, 384, 380, 383, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 384, 380, 380, 380, 380, 380, 380, 380, 380, 380, 384, 384, 384, 384, 384, 384, 380, 380, 380, 383, 380, 384, 381, 384, 380, 380, 380, 380, 380, 384, 384, 384, 380, 384, 384, 381, 384, 380, 384, 380, 384, 384, 384, 380, 384, 381, 384, 380, 380, 380, 380, 380, 380, 384, 384, 384, 384, 384, 384, 384, 380, 380, 384, 381, 380, 384, 380, 380, 380, 380, 380, 380, 380, 384, 384, 384, 384, 384, 384, 380, 380, 381, 384, 380, 384, 380, 380, 380, 380, 380, 380, 380, 384, 380, 384, 384, 384, 380, 381, 384, 380, 380, 380, 380, 380, 380, 384, 380, 384, 384, 384, 384, 380, 380, 381, 384, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 384, 384, 384, 384, 381, 384, 380, 380, 380, 380, 380, 384, 384, 384, 384, 380, 381, 384, 380, 380, 380, 380, 380, 384, 384, 384, 384, 380, 380, 381, 384, 380, 385, 385, 385, 384, 384, 384, 384, 385, 381, 385, 385, 384, 385, 384, 385, 383, 384, 381, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 384, 385, 384, 384, 385, 385, 383, 384, 381, 384, 381, 384, 384, 384, 384, 384, 385, 385, 384, 384, 384, 384, 384, 384, 384, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 384, 384, 385, 385, 385, 385, 383, 386, 386, 384, 383, 385, 384, 384, 383, 385, 383, 385, 386, 385, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 1383, 1383, 1383, 1383, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 1383, 1383, 1383, 1383, 1383, 1383, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 1383, 1383, 1383, 1222, 601, 1383, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 1383, 601, 601, 601, 601, 601, 601, 601, 601, 601, 1383, 1281, 1383, 1383, 1383, 1383, 601, 601, 601, 1383, 601, 1383, 1383, 1383, 601, 601, 601, 601, 601, 1383, 1383, 1383, 601, 1383, 1383, 1383, 1383, 601, 1383, 601, 1383, 1383, 1383, 601, 1383, 1383, 1383, 601, 601, 601, 601, 601, 601, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 601, 601, 1383, 1383, 601, 1383, 601, 601, 601, 601, 601, 601, 601, 1383, 1383, 1383, 1383, 1383, 1383, 601, 601, 1383, 1383, 601, 1383, 601, 601, 601, 601, 601, 601, 601, 1383, 601, 1383, 1383, 1383, 601, 1383, 1383, 601, 601, 601, 601, 601, 601, 1383, 601, 1383, 1383, 1383, 1383, 601, 601, 1383, 1383, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 1383, 1383, 1383, 1383, 1383, 1383, 601, 601, 601, 601, 601, 1383, 1383, 1383, 1383, 601, 1383, 1383, 601, 601, 601, 601, 601, 1383, 1383, 1383, 1383, 601, 601, 1383, 1383, 601, 602, 602, 602, 1383, 1383, 1383, 1383, 602, 1383, 602, 602, 1383, 602, 1383, 602, 1383, 1383, 1383, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 1383, 602, 1383, 1383, 602, 602, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 602, 602, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 1383, 1383, 602, 602, 602, 602, 1383, 603, 603, 1383, 1383, 602, 1383, 1383, 1383, 602, 1383, 602, 603, 602, 395, 395, 1383, 396, 397, 1383, 1383, 1383, 1383, 1383, 1383, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 1383, 1383, 1383, 1383, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 1223, 1223, 1223, 1383, 1383, 398, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 398, 398, 399, 399, 395, 398, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 399, 395, 395, 395, 395, 395, 395, 395, 395, 395, 399, 399, 399, 399, 399, 399, 395, 395, 395, 398, 395, 399, 396, 399, 395, 395, 395, 395, 395, 399, 399, 399, 395, 399, 399, 396, 399, 395, 399, 395, 399, 399, 399, 395, 399, 396, 399, 395, 395, 395, 395, 395, 395, 399, 399, 399, 399, 399, 399, 399, 395, 395, 399, 396, 395, 399, 395, 395, 395, 395, 395, 395, 395, 399, 399, 399, 399, 399, 399, 395, 395, 396, 399, 395, 399, 395, 395, 395, 395, 395, 395, 395, 399, 395, 399, 399, 399, 395, 396, 399, 395, 395, 395, 395, 395, 395, 399, 395, 399, 399, 399, 399, 395, 395, 396, 399, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 399, 399, 399, 399, 396, 399, 395, 395, 395, 395, 395, 399, 399, 399, 399, 395, 396, 399, 395, 395, 395, 395, 395, 399, 399, 399, 399, 395, 395, 396, 399, 395, 400, 400, 400, 399, 399, 399, 399, 400, 396, 400, 400, 399, 400, 399, 400, 398, 399, 396, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 399, 400, 399, 399, 400, 400, 398, 399, 396, 399, 396, 399, 399, 399, 399, 399, 400, 400, 399, 399, 399, 399, 399, 399, 399, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 399, 399, 400, 400, 400, 400, 398, 401, 401, 399, 398, 400, 399, 399, 398, 400, 398, 400, 401, 400, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 1383, 1383, 1383, 1383, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 1383, 1383, 1383, 1383, 1383, 1383, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 1383, 1383, 1383, 1222, 605, 1383, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 1383, 605, 605, 605, 605, 605, 605, 605, 605, 605, 1383, 1383, 1383, 1281, 1383, 1383, 605, 605, 605, 1383, 605, 1383, 1383, 1383, 605, 605, 605, 605, 605, 1383, 1383, 1383, 605, 1383, 1383, 1383, 1383, 605, 1383, 605, 1383, 1383, 1383, 605, 1383, 1383, 1383, 605, 605, 605, 605, 605, 605, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 605, 605, 1383, 1383, 605, 1383, 605, 605, 605, 605, 605, 605, 605, 1383, 1383, 1383, 1383, 1383, 1383, 605, 605, 1383, 1383, 605, 1383, 605, 605, 605, 605, 605, 605, 605, 1383, 605, 1383, 1383, 1383, 605, 1383, 1383, 605, 605, 605, 605, 605, 605, 1383, 605, 1383, 1383, 1383, 1383, 605, 605, 1383, 1383, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 1383, 1383, 1383, 1383, 1383, 1383, 605, 605, 605, 605, 605, 1383, 1383, 1383, 1383, 605, 1383, 1383, 605, 605, 605, 605, 605, 1383, 1383, 1383, 1383, 605, 605, 1383, 1383, 605, 606, 606, 606, 1383, 1383, 1383, 1383, 606, 1383, 606, 606, 1383, 606, 1383, 606, 1383, 1383, 1383, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 1383, 606, 1383, 1383, 606, 606, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 606, 606, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 606, 1383, 1383, 606, 606, 606, 606, 1383, 607, 607, 1383, 1383, 606, 1383, 1383, 1383, 606, 1383, 606, 607, 606, 403, 403, 1383, 404, 405, 1383, 1383, 1383, 1383, 1383, 1383, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 1383, 1383, 1383, 1383, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 1223, 1223, 1223, 1383, 1383, 406, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 406, 406, 407, 407, 403, 406, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 407, 403, 403, 403, 403, 403, 403, 403, 403, 403, 407, 407, 407, 407, 407, 407, 403, 403, 403, 406, 403, 407, 404, 407, 403, 403, 403, 403, 403, 407, 407, 407, 403, 407, 407, 404, 407, 403, 407, 403, 407, 407, 407, 403, 407, 404, 407, 403, 403, 403, 403, 403, 403, 407, 407, 407, 407, 407, 407, 407, 403, 403, 407, 404, 403, 407, 403, 403, 403, 403, 403, 403, 403, 407, 407, 407, 407, 407, 407, 403, 403, 404, 407, 403, 407, 403, 403, 403, 403, 403, 403, 403, 407, 403, 407, 407, 407, 403, 404, 407, 403, 403, 403, 403, 403, 403, 407, 403, 407, 407, 407, 407, 403, 403, 404, 407, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 407, 407, 407, 407, 404, 407, 403, 403, 403, 403, 403, 407, 407, 407, 407, 403, 404, 407, 403, 403, 403, 403, 403, 407, 407, 407, 407, 403, 403, 404, 407, 403, 408, 408, 408, 407, 407, 407, 407, 408, 404, 408, 408, 407, 408, 407, 408, 406, 407, 404, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 407, 408, 407, 407, 408, 408, 406, 407, 404, 407, 404, 407, 407, 407, 407, 407, 408, 408, 407, 407, 407, 407, 407, 407, 407, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 407, 407, 408, 408, 408, 408, 406, 409, 409, 407, 406, 408, 407, 407, 406, 408, 406, 408, 409, 408, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 1383, 1383, 1383, 1383, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 1383, 1383, 1383, 1383, 1383, 1383, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 1383, 1378, 1383, 1383, 608, 1222, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 1383, 608, 608, 608, 608, 608, 608, 608, 608, 608, 1383, 1383, 1383, 1383, 1383, 1383, 608, 608, 608, 1383, 608, 1383, 1383, 1383, 608, 608, 608, 608, 608, 1383, 1383, 1383, 608, 1383, 1383, 1383, 1383, 608, 1383, 608, 1383, 1383, 1383, 608, 1383, 1383, 1383, 608, 608, 608, 608, 608, 608, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 608, 608, 1383, 1383, 608, 1383, 608, 608, 608, 608, 608, 608, 608, 1383, 1383, 1383, 1383, 1383, 1383, 608, 608, 1383, 1383, 608, 1383, 608, 608, 608, 608, 608, 608, 608, 1383, 608, 1383, 1383, 1383, 608, 1383, 1383, 608, 608, 608, 608, 608, 608, 1383, 608, 1383, 1383, 1383, 1383, 608, 608, 1383, 1383, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 1383, 1383, 1383, 1383, 1383, 1383, 608, 608, 608, 608, 608, 1383, 1383, 1383, 1383, 608, 1383, 1383, 608, 608, 608, 608, 608, 1383, 1383, 1383, 1383, 608, 608, 1383, 1383, 608, 609, 609, 609, 1383, 1383, 1383, 1383, 609, 1383, 609, 609, 1383, 609, 1383, 609, 1383, 1383, 1383, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 1383, 609, 1383, 1383, 609, 609, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 609, 609, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 1383, 1383, 609, 609, 609, 609, 1383, 610, 610, 1383, 1383, 609, 1383, 1383, 1383, 609, 1383, 609, 610, 609, 415, 415, 1383, 416, 417, 1383, 1383, 1383, 1383, 1383, 1383, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 1383, 1383, 1383, 1383, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 1383, 1383, 1223, 1223, 1223, 418, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 418, 418, 419, 419, 415, 418, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 419, 415, 415, 415, 415, 415, 415, 415, 415, 415, 419, 419, 419, 419, 419, 419, 415, 415, 415, 418, 415, 419, 416, 419, 415, 415, 415, 415, 415, 419, 419, 419, 415, 419, 419, 416, 419, 415, 419, 415, 419, 419, 419, 415, 419, 416, 419, 415, 415, 415, 415, 415, 415, 419, 419, 419, 419, 419, 419, 419, 415, 415, 419, 416, 415, 419, 415, 415, 415, 415, 415, 415, 415, 419, 419, 419, 419, 419, 419, 415, 415, 416, 419, 415, 419, 415, 415, 415, 415, 415, 415, 415, 419, 415, 419, 419, 419, 415, 416, 419, 415, 415, 415, 415, 415, 415, 419, 415, 419, 419, 419, 419, 415, 415, 416, 419, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 419, 419, 419, 419, 416, 419, 415, 415, 415, 415, 415, 419, 419, 419, 419, 415, 416, 419, 415, 415, 415, 415, 415, 419, 419, 419, 419, 415, 415, 416, 419, 415, 420, 420, 420, 419, 419, 419, 419, 420, 416, 420, 420, 419, 420, 419, 420, 418, 419, 416, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 419, 420, 419, 419, 420, 420, 418, 419, 416, 419, 416, 419, 419, 419, 419, 419, 420, 420, 419, 419, 419, 419, 419, 419, 419, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, 419, 419, 420, 420, 420, 420, 418, 421, 421, 419, 418, 420, 419, 419, 418, 420, 418, 420, 421, 420, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 1383, 1383, 1383, 1383, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 1383, 1383, 1383, 1383, 1383, 1383, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 1383, 1382, 1383, 1222, 615, 1383, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 1383, 615, 615, 615, 615, 615, 615, 615, 615, 615, 1383, 1383, 1383, 1383, 1383, 1383, 615, 615, 615, 1383, 615, 1383, 1383, 1383, 615, 615, 615, 615, 615, 1383, 1383, 1383, 615, 1383, 1383, 1383, 1383, 615, 1383, 615, 1383, 1383, 1383, 615, 1383, 1383, 1383, 615, 615, 615, 615, 615, 615, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 615, 615, 1383, 1383, 615, 1383, 615, 615, 615, 615, 615, 615, 615, 1383, 1383, 1383, 1383, 1383, 1383, 615, 615, 1383, 1383, 615, 1383, 615, 615, 615, 615, 615, 615, 615, 1383, 615, 1383, 1383, 1383, 615, 1383, 1383, 615, 615, 615, 615, 615, 615, 1383, 615, 1383, 1383, 1383, 1383, 615, 615, 1383, 1383, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 1383, 1383, 1383, 1383, 1383, 1383, 615, 615, 615, 615, 615, 1383, 1383, 1383, 1383, 615, 1383, 1383, 615, 615, 615, 615, 615, 1383, 1383, 1383, 1383, 615, 615, 1383, 1383, 615, 616, 616, 616, 1383, 1383, 1383, 1383, 616, 1383, 616, 616, 1383, 616, 1383, 616, 1383, 1383, 1383, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 1383, 616, 1383, 1383, 616, 616, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 616, 616, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 1383, 1383, 616, 616, 616, 616, 1383, 617, 617, 1383, 1383, 616, 1383, 1383, 1383, 616, 1383, 616, 617, 616, 633, 633, 1383, 634, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 1383, 1383, 1383, 1383, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 1223, 1223, 1223, 1383, 1383, 635, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 635, 635, 636, 636, 633, 635, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 636, 633, 633, 633, 633, 633, 633, 633, 633, 633, 636, 636, 636, 636, 636, 636, 633, 633, 633, 635, 633, 636, 634, 636, 633, 633, 633, 633, 633, 636, 636, 636, 633, 636, 636, 634, 636, 633, 636, 633, 636, 636, 636, 633, 636, 634, 636, 633, 633, 633, 633, 633, 633, 636, 636, 636, 636, 636, 636, 636, 633, 633, 636, 634, 633, 636, 633, 633, 633, 633, 633, 633, 633, 636, 636, 636, 636, 636, 636, 633, 633, 634, 636, 633, 636, 633, 633, 633, 633, 633, 633, 633, 636, 633, 636, 636, 636, 633, 634, 636, 633, 633, 633, 633, 633, 633, 636, 633, 636, 636, 636, 636, 633, 633, 634, 636, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 636, 636, 636, 636, 634, 636, 633, 633, 633, 633, 633, 636, 636, 636, 636, 633, 634, 636, 633, 633, 633, 633, 633, 636, 636, 636, 636, 633, 633, 634, 636, 633, 637, 637, 637, 636, 636, 636, 636, 637, 634, 637, 637, 636, 637, 636, 637, 635, 636, 634, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 636, 637, 636, 636, 637, 637, 635, 636, 634, 636, 634, 636, 636, 636, 636, 636, 637, 637, 636, 636, 636, 636, 636, 636, 636, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 636, 636, 637, 637, 637, 637, 635, 638, 638, 636, 635, 637, 636, 636, 635, 637, 635, 637, 638, 637, 642, 642, 1383, 643, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 1383, 1383, 1383, 1383, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 1383, 1383, 1383, 1383, 1383, 644, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 644, 644, 645, 645, 642, 644, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 645, 642, 642, 642, 642, 642, 642, 642, 642, 642, 645, 645, 645, 645, 645, 645, 642, 642, 642, 644, 642, 645, 643, 645, 642, 642, 642, 642, 642, 645, 645, 645, 642, 645, 645, 643, 645, 642, 645, 642, 645, 645, 645, 642, 645, 643, 645, 642, 642, 642, 642, 642, 642, 645, 645, 645, 645, 645, 645, 645, 642, 642, 645, 643, 642, 645, 642, 642, 642, 642, 642, 642, 642, 645, 645, 645, 645, 645, 645, 642, 642, 643, 645, 642, 645, 642, 642, 642, 642, 642, 642, 642, 645, 642, 645, 645, 645, 642, 643, 645, 642, 642, 642, 642, 642, 642, 645, 642, 645, 645, 645, 645, 642, 642, 643, 645, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 645, 645, 645, 645, 643, 645, 642, 642, 642, 642, 642, 645, 645, 645, 645, 642, 643, 645, 642, 642, 642, 642, 642, 645, 645, 645, 645, 642, 642, 643, 645, 642, 646, 646, 646, 645, 645, 645, 645, 646, 643, 646, 646, 645, 646, 645, 646, 644, 645, 643, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 645, 646, 645, 645, 646, 646, 644, 645, 643, 645, 643, 645, 645, 645, 645, 645, 646, 646, 645, 645, 645, 645, 645, 645, 645, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 645, 645, 646, 646, 646, 646, 644, 647, 647, 645, 644, 646, 645, 645, 644, 646, 644, 646, 647, 646, 204, 204, 1383, 205, 206, 1383, 1383, 1383, 1383, 1383, 1383, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 1383, 1383, 1383, 1383, 204, 204, 204, 204, 204, 648, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 1383, 1383, 1383, 1383, 1383, 207, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 207, 207, 208, 208, 204, 207, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 208, 204, 204, 204, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 208, 208, 204, 204, 204, 207, 204, 208, 205, 208, 204, 204, 204, 204, 204, 208, 208, 208, 204, 208, 208, 205, 208, 204, 208, 204, 208, 208, 208, 204, 208, 205, 208, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 208, 208, 208, 204, 204, 208, 205, 204, 208, 204, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 208, 208, 204, 204, 205, 208, 204, 208, 204, 204, 204, 204, 204, 204, 204, 208, 204, 208, 208, 208, 204, 205, 208, 204, 204, 204, 204, 204, 204, 208, 204, 208, 208, 208, 208, 204, 204, 205, 208, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 205, 208, 204, 204, 204, 204, 204, 208, 208, 208, 208, 204, 205, 208, 204, 204, 204, 204, 204, 208, 208, 208, 208, 204, 204, 205, 208, 204, 209, 209, 209, 208, 208, 208, 208, 209, 205, 209, 209, 208, 209, 208, 209, 207, 208, 205, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 208, 209, 208, 208, 209, 209, 207, 208, 205, 208, 205, 208, 208, 208, 208, 208, 209, 209, 208, 208, 208, 208, 208, 208, 208, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 208, 208, 209, 209, 209, 209, 207, 210, 210, 208, 207, 209, 208, 208, 207, 209, 207, 209, 210, 209, 769, 769, 1383, 770, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 1383, 1383, 1383, 1383, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 1383, 1383, 1383, 1383, 1383, 771, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 771, 771, 772, 772, 769, 771, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 772, 769, 769, 769, 769, 769, 769, 769, 769, 769, 772, 772, 772, 772, 772, 772, 769, 769, 769, 771, 769, 772, 770, 772, 769, 769, 769, 769, 769, 772, 772, 772, 769, 772, 772, 770, 772, 769, 772, 769, 772, 772, 772, 769, 772, 770, 772, 769, 769, 769, 769, 769, 769, 772, 772, 772, 772, 772, 772, 772, 769, 769, 772, 770, 769, 772, 769, 769, 769, 769, 769, 769, 769, 772, 772, 772, 772, 772, 772, 769, 769, 770, 772, 769, 772, 769, 769, 769, 769, 769, 769, 769, 772, 769, 772, 772, 772, 769, 770, 772, 769, 769, 769, 769, 769, 769, 772, 769, 772, 772, 772, 772, 769, 769, 770, 772, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 772, 772, 772, 772, 770, 772, 769, 769, 769, 769, 769, 772, 772, 772, 772, 769, 770, 772, 769, 769, 769, 769, 769, 772, 772, 772, 772, 769, 769, 770, 772, 769, 773, 773, 773, 772, 772, 772, 772, 773, 770, 773, 773, 772, 773, 772, 773, 771, 772, 770, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 772, 773, 772, 772, 773, 773, 771, 772, 770, 772, 770, 772, 772, 772, 772, 772, 773, 773, 772, 772, 772, 772, 772, 772, 772, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 772, 772, 773, 773, 773, 773, 771, 774, 774, 772, 771, 773, 772, 772, 771, 773, 771, 773, 774, 773, 308, 308, 1383, 309, 310, 1383, 1383, 1383, 1383, 1383, 1383, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 1383, 1383, 1383, 1383, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 775, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 1383, 1383, 1383, 1383, 1383, 311, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 311, 311, 312, 312, 308, 311, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 312, 308, 308, 308, 308, 308, 308, 308, 308, 308, 312, 312, 312, 312, 312, 312, 308, 308, 308, 311, 308, 312, 309, 312, 308, 308, 308, 308, 308, 312, 312, 312, 308, 312, 312, 309, 312, 308, 312, 308, 312, 312, 312, 308, 312, 309, 312, 308, 308, 308, 308, 308, 308, 312, 312, 312, 312, 312, 312, 312, 308, 308, 312, 309, 308, 312, 308, 308, 308, 308, 308, 308, 308, 312, 312, 312, 312, 312, 312, 308, 308, 309, 312, 308, 312, 308, 308, 308, 308, 308, 308, 308, 312, 308, 312, 312, 312, 308, 309, 312, 308, 308, 308, 308, 308, 308, 312, 308, 312, 312, 312, 312, 308, 308, 309, 312, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 312, 312, 312, 312, 309, 312, 308, 308, 308, 308, 308, 312, 312, 312, 312, 308, 309, 312, 308, 308, 308, 308, 308, 312, 312, 312, 312, 308, 308, 309, 312, 308, 313, 313, 313, 312, 312, 312, 312, 313, 309, 313, 313, 312, 313, 312, 313, 311, 312, 309, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 312, 313, 312, 312, 313, 313, 311, 312, 309, 312, 309, 312, 312, 312, 312, 312, 313, 313, 312, 312, 312, 312, 312, 312, 312, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 312, 312, 313, 313, 313, 313, 311, 314, 314, 312, 311, 313, 312, 312, 311, 313, 311, 313, 314, 313, 357, 357, 1383, 358, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 1383, 1383, 1383, 1383, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 1383, 1383, 1383, 1383, 1383, 359, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 359, 359, 360, 360, 357, 359, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 360, 357, 357, 357, 357, 357, 357, 357, 357, 357, 360, 360, 360, 360, 360, 360, 357, 357, 357, 359, 357, 360, 358, 360, 357, 357, 357, 357, 357, 360, 360, 360, 357, 360, 360, 358, 360, 357, 360, 357, 360, 360, 360, 357, 360, 358, 360, 357, 357, 357, 357, 357, 357, 360, 360, 360, 360, 360, 360, 360, 357, 357, 360, 358, 357, 360, 357, 357, 357, 357, 357, 357, 357, 360, 360, 360, 360, 360, 360, 357, 357, 358, 360, 357, 360, 357, 357, 357, 357, 357, 357, 357, 360, 357, 360, 360, 360, 357, 358, 360, 357, 357, 357, 357, 357, 357, 360, 357, 360, 360, 360, 360, 357, 357, 358, 360, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 360, 360, 360, 360, 358, 360, 357, 357, 357, 357, 357, 360, 360, 360, 360, 357, 358, 360, 357, 357, 357, 357, 357, 360, 360, 360, 360, 357, 357, 358, 360, 357, 361, 361, 361, 360, 360, 360, 360, 361, 358, 361, 361, 360, 361, 360, 361, 359, 360, 358, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 360, 361, 360, 360, 361, 361, 359, 360, 358, 360, 358, 360, 360, 360, 360, 360, 361, 361, 360, 360, 360, 360, 360, 360, 360, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 361, 360, 360, 361, 361, 361, 361, 359, 362, 362, 360, 359, 361, 360, 360, 359, 361, 359, 361, 362, 361, 786, 786, 1383, 787, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 1383, 1383, 1383, 1383, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 1383, 1383, 1383, 1383, 1383, 788, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 788, 788, 789, 789, 786, 788, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 789, 786, 786, 786, 786, 786, 786, 786, 786, 786, 789, 789, 789, 789, 789, 789, 786, 786, 786, 788, 786, 789, 787, 789, 786, 786, 786, 786, 786, 789, 789, 789, 786, 789, 789, 787, 789, 786, 789, 786, 789, 789, 789, 786, 789, 787, 789, 786, 786, 786, 786, 786, 786, 789, 789, 789, 789, 789, 789, 789, 786, 786, 789, 787, 786, 789, 786, 786, 786, 786, 786, 786, 786, 789, 789, 789, 789, 789, 789, 786, 786, 787, 789, 786, 789, 786, 786, 786, 786, 786, 786, 786, 789, 786, 789, 789, 789, 786, 787, 789, 786, 786, 786, 786, 786, 786, 789, 786, 789, 789, 789, 789, 786, 786, 787, 789, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 789, 789, 789, 789, 787, 789, 786, 786, 786, 786, 786, 789, 789, 789, 789, 786, 787, 789, 786, 786, 786, 786, 786, 789, 789, 789, 789, 786, 786, 787, 789, 786, 790, 790, 790, 789, 789, 789, 789, 790, 787, 790, 790, 789, 790, 789, 790, 788, 789, 787, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 789, 790, 789, 789, 790, 790, 788, 789, 787, 789, 787, 789, 789, 789, 789, 789, 790, 790, 789, 789, 789, 789, 789, 789, 789, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 789, 789, 790, 790, 790, 790, 788, 791, 791, 789, 788, 790, 789, 789, 788, 790, 788, 790, 791, 790, 792, 792, 1383, 793, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 1383, 1383, 1383, 1383, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 1383, 1383, 1383, 1383, 1383, 794, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 794, 794, 795, 795, 792, 794, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 795, 792, 792, 792, 792, 792, 792, 792, 792, 792, 795, 795, 795, 795, 795, 795, 792, 792, 792, 794, 792, 795, 793, 795, 792, 792, 792, 792, 792, 795, 795, 795, 792, 795, 795, 793, 795, 792, 795, 792, 795, 795, 795, 792, 795, 793, 795, 792, 792, 792, 792, 792, 792, 795, 795, 795, 795, 795, 795, 795, 792, 792, 795, 793, 792, 795, 792, 792, 792, 792, 792, 792, 792, 795, 795, 795, 795, 795, 795, 792, 792, 793, 795, 792, 795, 792, 792, 792, 792, 792, 792, 792, 795, 792, 795, 795, 795, 792, 793, 795, 792, 792, 792, 792, 792, 792, 795, 792, 795, 795, 795, 795, 792, 792, 793, 795, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 795, 795, 795, 795, 793, 795, 792, 792, 792, 792, 792, 795, 795, 795, 795, 792, 793, 795, 792, 792, 792, 792, 792, 795, 795, 795, 795, 792, 792, 793, 795, 792, 796, 796, 796, 795, 795, 795, 795, 796, 793, 796, 796, 795, 796, 795, 796, 794, 795, 793, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 795, 796, 795, 795, 796, 796, 794, 795, 793, 795, 793, 795, 795, 795, 795, 795, 796, 796, 795, 795, 795, 795, 795, 795, 795, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 795, 795, 796, 796, 796, 796, 794, 797, 797, 795, 794, 796, 795, 795, 794, 796, 794, 796, 797, 796, 798, 798, 1383, 799, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 1383, 1383, 1383, 1383, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 1383, 1383, 1383, 1383, 1383, 800, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 800, 800, 801, 801, 798, 800, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 801, 798, 798, 798, 798, 798, 798, 798, 798, 798, 801, 801, 801, 801, 801, 801, 798, 798, 798, 800, 798, 801, 799, 801, 798, 798, 798, 798, 798, 801, 801, 801, 798, 801, 801, 799, 801, 798, 801, 798, 801, 801, 801, 798, 801, 799, 801, 798, 798, 798, 798, 798, 798, 801, 801, 801, 801, 801, 801, 801, 798, 798, 801, 799, 798, 801, 798, 798, 798, 798, 798, 798, 798, 801, 801, 801, 801, 801, 801, 798, 798, 799, 801, 798, 801, 798, 798, 798, 798, 798, 798, 798, 801, 798, 801, 801, 801, 798, 799, 801, 798, 798, 798, 798, 798, 798, 801, 798, 801, 801, 801, 801, 798, 798, 799, 801, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 801, 801, 801, 801, 799, 801, 798, 798, 798, 798, 798, 801, 801, 801, 801, 798, 799, 801, 798, 798, 798, 798, 798, 801, 801, 801, 801, 798, 798, 799, 801, 798, 802, 802, 802, 801, 801, 801, 801, 802, 799, 802, 802, 801, 802, 801, 802, 800, 801, 799, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 801, 802, 801, 801, 802, 802, 800, 801, 799, 801, 799, 801, 801, 801, 801, 801, 802, 802, 801, 801, 801, 801, 801, 801, 801, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 801, 801, 802, 802, 802, 802, 800, 803, 803, 801, 800, 802, 801, 801, 800, 802, 800, 802, 803, 802, 403, 403, 1383, 404, 405, 1383, 1383, 1383, 1383, 1383, 1383, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 1383, 1383, 1383, 1383, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 804, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 1383, 1383, 1383, 1383, 1383, 406, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 406, 406, 407, 407, 403, 406, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 407, 403, 403, 403, 403, 403, 403, 403, 403, 403, 407, 407, 407, 407, 407, 407, 403, 403, 403, 406, 403, 407, 404, 407, 403, 403, 403, 403, 403, 407, 407, 407, 403, 407, 407, 404, 407, 403, 407, 403, 407, 407, 407, 403, 407, 404, 407, 403, 403, 403, 403, 403, 403, 407, 407, 407, 407, 407, 407, 407, 403, 403, 407, 404, 403, 407, 403, 403, 403, 403, 403, 403, 403, 407, 407, 407, 407, 407, 407, 403, 403, 404, 407, 403, 407, 403, 403, 403, 403, 403, 403, 403, 407, 403, 407, 407, 407, 403, 404, 407, 403, 403, 403, 403, 403, 403, 407, 403, 407, 407, 407, 407, 403, 403, 404, 407, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 407, 407, 407, 407, 404, 407, 403, 403, 403, 403, 403, 407, 407, 407, 407, 403, 404, 407, 403, 403, 403, 403, 403, 407, 407, 407, 407, 403, 403, 404, 407, 403, 408, 408, 408, 407, 407, 407, 407, 408, 404, 408, 408, 407, 408, 407, 408, 406, 407, 404, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 407, 408, 407, 407, 408, 408, 406, 407, 404, 407, 404, 407, 407, 407, 407, 407, 408, 408, 407, 407, 407, 407, 407, 407, 407, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 407, 407, 408, 408, 408, 408, 406, 409, 409, 407, 406, 408, 407, 407, 406, 408, 406, 408, 409, 408, 807, 807, 1383, 808, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 1383, 1383, 1383, 1383, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 1383, 1383, 1383, 1383, 1383, 809, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 809, 809, 810, 810, 807, 809, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 810, 807, 807, 807, 807, 807, 807, 807, 807, 807, 810, 810, 810, 810, 810, 810, 807, 807, 807, 809, 807, 810, 808, 810, 807, 807, 807, 807, 807, 810, 810, 810, 807, 810, 810, 808, 810, 807, 810, 807, 810, 810, 810, 807, 810, 808, 810, 807, 807, 807, 807, 807, 807, 810, 810, 810, 810, 810, 810, 810, 807, 807, 810, 808, 807, 810, 807, 807, 807, 807, 807, 807, 807, 810, 810, 810, 810, 810, 810, 807, 807, 808, 810, 807, 810, 807, 807, 807, 807, 807, 807, 807, 810, 807, 810, 810, 810, 807, 808, 810, 807, 807, 807, 807, 807, 807, 810, 807, 810, 810, 810, 810, 807, 807, 808, 810, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 810, 810, 810, 810, 808, 810, 807, 807, 807, 807, 807, 810, 810, 810, 810, 807, 808, 810, 807, 807, 807, 807, 807, 810, 810, 810, 810, 807, 807, 808, 810, 807, 811, 811, 811, 810, 810, 810, 810, 811, 808, 811, 811, 810, 811, 810, 811, 809, 810, 808, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 810, 811, 810, 810, 811, 811, 809, 810, 808, 810, 808, 810, 810, 810, 810, 810, 811, 811, 810, 810, 810, 810, 810, 810, 810, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 810, 810, 811, 811, 811, 811, 809, 812, 812, 810, 809, 811, 810, 810, 809, 811, 809, 811, 812, 811, 633, 633, 1383, 634, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 1383, 1383, 1383, 1383, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 1383, 1383, 1383, 1383, 1383, 635, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 635, 635, 636, 636, 633, 635, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 636, 633, 633, 633, 633, 633, 633, 633, 633, 633, 636, 636, 636, 636, 636, 636, 633, 633, 633, 635, 633, 636, 634, 636, 633, 633, 633, 633, 633, 636, 636, 636, 633, 636, 636, 634, 636, 633, 636, 633, 636, 636, 636, 633, 636, 634, 636, 633, 633, 633, 633, 633, 633, 636, 636, 636, 636, 636, 636, 636, 633, 633, 636, 634, 633, 636, 633, 633, 633, 633, 633, 633, 633, 636, 636, 636, 636, 636, 636, 633, 633, 634, 636, 633, 636, 633, 633, 633, 633, 633, 633, 633, 636, 633, 636, 636, 636, 633, 634, 636, 633, 633, 633, 633, 633, 633, 636, 633, 636, 636, 636, 636, 633, 633, 634, 636, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 636, 636, 636, 636, 634, 636, 633, 633, 633, 633, 633, 636, 636, 636, 636, 633, 634, 636, 633, 633, 633, 633, 633, 636, 636, 636, 636, 633, 633, 634, 636, 633, 637, 637, 637, 636, 636, 636, 636, 637, 634, 637, 637, 636, 637, 636, 637, 635, 636, 634, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 636, 637, 636, 636, 637, 637, 635, 636, 634, 636, 634, 636, 636, 636, 636, 636, 637, 637, 636, 636, 636, 636, 636, 636, 636, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 636, 636, 637, 637, 637, 637, 635, 638, 638, 636, 635, 637, 636, 636, 635, 637, 635, 637, 638, 637, 642, 642, 1383, 643, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 1383, 1383, 1383, 1383, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 1383, 1383, 1383, 1383, 1383, 644, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 644, 644, 645, 645, 642, 644, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 645, 642, 642, 642, 642, 642, 642, 642, 642, 642, 645, 645, 645, 645, 645, 645, 642, 642, 642, 644, 642, 645, 643, 645, 642, 642, 642, 642, 642, 645, 645, 645, 642, 645, 645, 643, 645, 642, 645, 642, 645, 645, 645, 642, 645, 643, 645, 642, 642, 642, 642, 642, 642, 645, 645, 645, 645, 645, 645, 645, 642, 642, 645, 643, 642, 645, 642, 642, 642, 642, 642, 642, 642, 645, 645, 645, 645, 645, 645, 642, 642, 643, 645, 642, 645, 642, 642, 642, 642, 642, 642, 642, 645, 642, 645, 645, 645, 642, 643, 645, 642, 642, 642, 642, 642, 642, 645, 642, 645, 645, 645, 645, 642, 642, 643, 645, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 645, 645, 645, 645, 643, 645, 642, 642, 642, 642, 642, 645, 645, 645, 645, 642, 643, 645, 642, 642, 642, 642, 642, 645, 645, 645, 645, 642, 642, 643, 645, 642, 646, 646, 646, 645, 645, 645, 645, 646, 643, 646, 646, 645, 646, 645, 646, 644, 645, 643, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 645, 646, 645, 645, 646, 646, 644, 645, 643, 645, 643, 645, 645, 645, 645, 645, 646, 646, 645, 645, 645, 645, 645, 645, 645, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, 645, 645, 646, 646, 646, 646, 644, 647, 647, 645, 644, 646, 645, 645, 644, 646, 644, 646, 647, 646, 204, 204, 1383, 205, 206, 1383, 1383, 1383, 1383, 1383, 1383, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 1383, 1383, 1383, 1383, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 821, 204, 204, 204, 204, 204, 204, 204, 1383, 1383, 1383, 1383, 1383, 207, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 207, 207, 208, 208, 204, 207, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 208, 204, 204, 204, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 208, 208, 204, 204, 204, 207, 204, 208, 205, 208, 204, 204, 204, 204, 204, 208, 208, 208, 204, 208, 208, 205, 208, 204, 208, 204, 208, 208, 208, 204, 208, 205, 208, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 208, 208, 208, 204, 204, 208, 205, 204, 208, 204, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 208, 208, 204, 204, 205, 208, 204, 208, 204, 204, 204, 204, 204, 204, 204, 208, 204, 208, 208, 208, 204, 205, 208, 204, 204, 204, 204, 204, 204, 208, 204, 208, 208, 208, 208, 204, 204, 205, 208, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 205, 208, 204, 204, 204, 204, 204, 208, 208, 208, 208, 204, 205, 208, 204, 204, 204, 204, 204, 208, 208, 208, 208, 204, 204, 205, 208, 204, 209, 209, 209, 208, 208, 208, 208, 209, 205, 209, 209, 208, 209, 208, 209, 207, 208, 205, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 208, 209, 208, 208, 209, 209, 207, 208, 205, 208, 205, 208, 208, 208, 208, 208, 209, 209, 208, 208, 208, 208, 208, 208, 208, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 208, 208, 209, 209, 209, 209, 207, 210, 210, 208, 207, 209, 208, 208, 207, 209, 207, 209, 210, 209, 769, 769, 1383, 770, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 1383, 1383, 1383, 1383, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 1383, 1383, 1383, 1383, 1383, 771, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 771, 771, 772, 772, 769, 771, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 772, 769, 769, 769, 769, 769, 769, 769, 769, 769, 772, 772, 772, 772, 772, 772, 769, 769, 769, 771, 769, 772, 770, 772, 769, 769, 769, 769, 769, 772, 772, 772, 769, 772, 772, 770, 772, 769, 772, 769, 772, 772, 772, 769, 772, 770, 772, 769, 769, 769, 769, 769, 769, 772, 772, 772, 772, 772, 772, 772, 769, 769, 772, 770, 769, 772, 769, 769, 769, 769, 769, 769, 769, 772, 772, 772, 772, 772, 772, 769, 769, 770, 772, 769, 772, 769, 769, 769, 769, 769, 769, 769, 772, 769, 772, 772, 772, 769, 770, 772, 769, 769, 769, 769, 769, 769, 772, 769, 772, 772, 772, 772, 769, 769, 770, 772, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 772, 772, 772, 772, 770, 772, 769, 769, 769, 769, 769, 772, 772, 772, 772, 769, 770, 772, 769, 769, 769, 769, 769, 772, 772, 772, 772, 769, 769, 770, 772, 769, 773, 773, 773, 772, 772, 772, 772, 773, 770, 773, 773, 772, 773, 772, 773, 771, 772, 770, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 772, 773, 772, 772, 773, 773, 771, 772, 770, 772, 770, 772, 772, 772, 772, 772, 773, 773, 772, 772, 772, 772, 772, 772, 772, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 772, 772, 773, 773, 773, 773, 771, 774, 774, 772, 771, 773, 772, 772, 771, 773, 771, 773, 774, 773, 308, 308, 1383, 309, 310, 1383, 1383, 1383, 1383, 1383, 1383, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 1383, 1383, 1383, 1383, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 927, 308, 308, 308, 308, 308, 308, 1383, 1383, 1383, 1383, 1383, 311, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 311, 311, 312, 312, 308, 311, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 312, 308, 308, 308, 308, 308, 308, 308, 308, 308, 312, 312, 312, 312, 312, 312, 308, 308, 308, 311, 308, 312, 309, 312, 308, 308, 308, 308, 308, 312, 312, 312, 308, 312, 312, 309, 312, 308, 312, 308, 312, 312, 312, 308, 312, 309, 312, 308, 308, 308, 308, 308, 308, 312, 312, 312, 312, 312, 312, 312, 308, 308, 312, 309, 308, 312, 308, 308, 308, 308, 308, 308, 308, 312, 312, 312, 312, 312, 312, 308, 308, 309, 312, 308, 312, 308, 308, 308, 308, 308, 308, 308, 312, 308, 312, 312, 312, 308, 309, 312, 308, 308, 308, 308, 308, 308, 312, 308, 312, 312, 312, 312, 308, 308, 309, 312, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 312, 312, 312, 312, 309, 312, 308, 308, 308, 308, 308, 312, 312, 312, 312, 308, 309, 312, 308, 308, 308, 308, 308, 312, 312, 312, 312, 308, 308, 309, 312, 308, 313, 313, 313, 312, 312, 312, 312, 313, 309, 313, 313, 312, 313, 312, 313, 311, 312, 309, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 312, 313, 312, 312, 313, 313, 311, 312, 309, 312, 309, 312, 312, 312, 312, 312, 313, 313, 312, 312, 312, 312, 312, 312, 312, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 312, 312, 313, 313, 313, 313, 311, 314, 314, 312, 311, 313, 312, 312, 311, 313, 311, 313, 314, 313, 786, 786, 1383, 787, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 1383, 1383, 1383, 1383, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 1383, 1383, 1383, 1383, 1383, 788, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 788, 788, 789, 789, 786, 788, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 789, 786, 786, 786, 786, 786, 786, 786, 786, 786, 789, 789, 789, 789, 789, 789, 786, 786, 786, 788, 786, 789, 787, 789, 786, 786, 786, 786, 786, 789, 789, 789, 786, 789, 789, 787, 789, 786, 789, 786, 789, 789, 789, 786, 789, 787, 789, 786, 786, 786, 786, 786, 786, 789, 789, 789, 789, 789, 789, 789, 786, 786, 789, 787, 786, 789, 786, 786, 786, 786, 786, 786, 786, 789, 789, 789, 789, 789, 789, 786, 786, 787, 789, 786, 789, 786, 786, 786, 786, 786, 786, 786, 789, 786, 789, 789, 789, 786, 787, 789, 786, 786, 786, 786, 786, 786, 789, 786, 789, 789, 789, 789, 786, 786, 787, 789, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 789, 789, 789, 789, 787, 789, 786, 786, 786, 786, 786, 789, 789, 789, 789, 786, 787, 789, 786, 786, 786, 786, 786, 789, 789, 789, 789, 786, 786, 787, 789, 786, 790, 790, 790, 789, 789, 789, 789, 790, 787, 790, 790, 789, 790, 789, 790, 788, 789, 787, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 789, 790, 789, 789, 790, 790, 788, 789, 787, 789, 787, 789, 789, 789, 789, 789, 790, 790, 789, 789, 789, 789, 789, 789, 789, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 789, 789, 790, 790, 790, 790, 788, 791, 791, 789, 788, 790, 789, 789, 788, 790, 788, 790, 791, 790, 792, 792, 1383, 793, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 1383, 1383, 1383, 1383, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 1383, 1383, 1383, 1383, 1383, 794, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 794, 794, 795, 795, 792, 794, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 795, 792, 792, 792, 792, 792, 792, 792, 792, 792, 795, 795, 795, 795, 795, 795, 792, 792, 792, 794, 792, 795, 793, 795, 792, 792, 792, 792, 792, 795, 795, 795, 792, 795, 795, 793, 795, 792, 795, 792, 795, 795, 795, 792, 795, 793, 795, 792, 792, 792, 792, 792, 792, 795, 795, 795, 795, 795, 795, 795, 792, 792, 795, 793, 792, 795, 792, 792, 792, 792, 792, 792, 792, 795, 795, 795, 795, 795, 795, 792, 792, 793, 795, 792, 795, 792, 792, 792, 792, 792, 792, 792, 795, 792, 795, 795, 795, 792, 793, 795, 792, 792, 792, 792, 792, 792, 795, 792, 795, 795, 795, 795, 792, 792, 793, 795, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 795, 795, 795, 795, 793, 795, 792, 792, 792, 792, 792, 795, 795, 795, 795, 792, 793, 795, 792, 792, 792, 792, 792, 795, 795, 795, 795, 792, 792, 793, 795, 792, 796, 796, 796, 795, 795, 795, 795, 796, 793, 796, 796, 795, 796, 795, 796, 794, 795, 793, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 795, 796, 795, 795, 796, 796, 794, 795, 793, 795, 793, 795, 795, 795, 795, 795, 796, 796, 795, 795, 795, 795, 795, 795, 795, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 795, 795, 796, 796, 796, 796, 794, 797, 797, 795, 794, 796, 795, 795, 794, 796, 794, 796, 797, 796, 798, 798, 1383, 799, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 1383, 1383, 1383, 1383, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 1383, 1383, 1383, 1383, 1383, 800, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 800, 800, 801, 801, 798, 800, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 801, 798, 798, 798, 798, 798, 798, 798, 798, 798, 801, 801, 801, 801, 801, 801, 798, 798, 798, 800, 798, 801, 799, 801, 798, 798, 798, 798, 798, 801, 801, 801, 798, 801, 801, 799, 801, 798, 801, 798, 801, 801, 801, 798, 801, 799, 801, 798, 798, 798, 798, 798, 798, 801, 801, 801, 801, 801, 801, 801, 798, 798, 801, 799, 798, 801, 798, 798, 798, 798, 798, 798, 798, 801, 801, 801, 801, 801, 801, 798, 798, 799, 801, 798, 801, 798, 798, 798, 798, 798, 798, 798, 801, 798, 801, 801, 801, 798, 799, 801, 798, 798, 798, 798, 798, 798, 801, 798, 801, 801, 801, 801, 798, 798, 799, 801, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 801, 801, 801, 801, 799, 801, 798, 798, 798, 798, 798, 801, 801, 801, 801, 798, 799, 801, 798, 798, 798, 798, 798, 801, 801, 801, 801, 798, 798, 799, 801, 798, 802, 802, 802, 801, 801, 801, 801, 802, 799, 802, 802, 801, 802, 801, 802, 800, 801, 799, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 801, 802, 801, 801, 802, 802, 800, 801, 799, 801, 799, 801, 801, 801, 801, 801, 802, 802, 801, 801, 801, 801, 801, 801, 801, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 802, 801, 801, 802, 802, 802, 802, 800, 803, 803, 801, 800, 802, 801, 801, 800, 802, 800, 802, 803, 802, 403, 403, 1383, 404, 405, 1383, 1383, 1383, 1383, 1383, 1383, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 1383, 1383, 1383, 1383, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 1383, 1383, 1383, 1383, 1383, 406, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 406, 406, 407, 407, 403, 406, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 407, 403, 403, 403, 403, 403, 403, 403, 403, 403, 407, 407, 407, 407, 407, 407, 403, 403, 403, 406, 403, 407, 404, 407, 403, 403, 403, 403, 403, 407, 407, 407, 403, 407, 407, 404, 407, 403, 407, 403, 407, 407, 407, 403, 407, 404, 407, 403, 403, 403, 403, 403, 403, 407, 407, 407, 407, 407, 407, 407, 403, 403, 407, 404, 403, 407, 403, 403, 403, 403, 403, 403, 403, 407, 407, 407, 407, 407, 407, 403, 403, 404, 407, 403, 407, 403, 403, 403, 403, 403, 403, 403, 407, 403, 407, 407, 407, 403, 404, 407, 403, 403, 403, 403, 403, 403, 407, 403, 407, 407, 407, 407, 403, 403, 404, 407, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 407, 407, 407, 407, 404, 407, 403, 403, 403, 403, 403, 407, 407, 407, 407, 403, 404, 407, 403, 403, 403, 403, 403, 407, 407, 407, 407, 403, 403, 404, 407, 403, 408, 408, 408, 407, 407, 407, 407, 408, 404, 408, 408, 407, 408, 407, 408, 406, 407, 404, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 407, 408, 407, 407, 408, 408, 406, 407, 404, 407, 404, 407, 407, 407, 407, 407, 408, 408, 407, 407, 407, 407, 407, 407, 407, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 407, 407, 408, 408, 408, 408, 406, 409, 409, 407, 406, 408, 407, 407, 406, 408, 406, 408, 409, 408, 807, 807, 1383, 808, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 1383, 1383, 1383, 1383, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 1383, 1383, 1383, 1383, 1383, 809, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 809, 809, 810, 810, 807, 809, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 810, 807, 807, 807, 807, 807, 807, 807, 807, 807, 810, 810, 810, 810, 810, 810, 807, 807, 807, 809, 807, 810, 808, 810, 807, 807, 807, 807, 807, 810, 810, 810, 807, 810, 810, 808, 810, 807, 810, 807, 810, 810, 810, 807, 810, 808, 810, 807, 807, 807, 807, 807, 807, 810, 810, 810, 810, 810, 810, 810, 807, 807, 810, 808, 807, 810, 807, 807, 807, 807, 807, 807, 807, 810, 810, 810, 810, 810, 810, 807, 807, 808, 810, 807, 810, 807, 807, 807, 807, 807, 807, 807, 810, 807, 810, 810, 810, 807, 808, 810, 807, 807, 807, 807, 807, 807, 810, 807, 810, 810, 810, 810, 807, 807, 808, 810, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 810, 810, 810, 810, 808, 810, 807, 807, 807, 807, 807, 810, 810, 810, 810, 807, 808, 810, 807, 807, 807, 807, 807, 810, 810, 810, 810, 807, 807, 808, 810, 807, 811, 811, 811, 810, 810, 810, 810, 811, 808, 811, 811, 810, 811, 810, 811, 809, 810, 808, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 810, 811, 810, 810, 811, 811, 809, 810, 808, 810, 808, 810, 810, 810, 810, 810, 811, 811, 810, 810, 810, 810, 810, 810, 810, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 810, 810, 811, 811, 811, 811, 809, 812, 812, 810, 809, 811, 810, 810, 809, 811, 809, 811, 812, 811, 204, 204, 1383, 205, 206, 1383, 1383, 1383, 1383, 1383, 1383, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 1383, 1383, 1383, 1383, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 1383, 1383, 1383, 1383, 1383, 207, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 207, 207, 208, 208, 204, 207, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 208, 204, 204, 204, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 208, 208, 204, 204, 204, 207, 204, 208, 205, 208, 204, 204, 204, 204, 204, 208, 208, 208, 204, 208, 208, 205, 208, 204, 208, 204, 208, 208, 208, 204, 208, 205, 208, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 208, 208, 208, 204, 204, 208, 205, 204, 208, 204, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 208, 208, 204, 204, 205, 208, 204, 208, 204, 204, 204, 204, 204, 204, 204, 208, 204, 208, 208, 208, 204, 205, 208, 204, 204, 204, 204, 204, 204, 208, 204, 208, 208, 208, 208, 204, 204, 205, 208, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 205, 208, 204, 204, 204, 204, 204, 208, 208, 208, 208, 204, 205, 208, 204, 204, 204, 204, 204, 208, 208, 208, 208, 204, 204, 205, 208, 204, 209, 209, 209, 208, 208, 208, 208, 209, 205, 209, 209, 208, 209, 208, 209, 207, 208, 205, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 208, 209, 208, 208, 209, 209, 207, 208, 205, 208, 205, 208, 208, 208, 208, 208, 209, 209, 208, 208, 208, 208, 208, 208, 208, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 208, 208, 209, 209, 209, 209, 207, 210, 210, 208, 207, 209, 208, 208, 207, 209, 207, 209, 210, 209, 308, 308, 1383, 309, 1019, 1383, 1383, 1383, 1383, 1383, 1383, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 1383, 1383, 1383, 1383, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 1383, 1383, 1383, 1383, 1383, 311, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 311, 311, 312, 312, 308, 311, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 312, 308, 308, 308, 308, 308, 308, 308, 308, 308, 312, 312, 312, 312, 312, 312, 308, 308, 308, 311, 308, 312, 309, 312, 308, 308, 308, 308, 308, 312, 312, 312, 308, 312, 312, 309, 312, 308, 312, 308, 312, 312, 312, 308, 312, 309, 312, 308, 308, 308, 308, 308, 308, 312, 312, 312, 312, 312, 312, 312, 308, 308, 312, 309, 308, 312, 308, 308, 308, 308, 308, 308, 308, 312, 312, 312, 312, 312, 312, 308, 308, 309, 312, 308, 312, 308, 308, 308, 308, 308, 308, 308, 312, 308, 312, 312, 312, 308, 309, 312, 308, 308, 308, 308, 308, 308, 312, 308, 312, 312, 312, 312, 308, 308, 309, 312, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 312, 312, 312, 312, 309, 312, 308, 308, 308, 308, 308, 312, 312, 312, 312, 308, 309, 312, 308, 308, 308, 308, 308, 312, 312, 312, 312, 308, 308, 309, 312, 308, 313, 313, 313, 312, 312, 312, 312, 313, 309, 313, 313, 312, 313, 312, 313, 311, 312, 309, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 312, 313, 312, 312, 313, 313, 311, 312, 309, 312, 309, 312, 312, 312, 312, 312, 313, 313, 312, 312, 312, 312, 312, 312, 312, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 312, 312, 313, 313, 313, 313, 311, 314, 314, 312, 311, 313, 312, 312, 311, 313, 311, 313, 314, 313, 403, 403, 1383, 404, 405, 1383, 1383, 1383, 1383, 1383, 1383, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 1383, 1383, 1383, 1383, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 1383, 1383, 1383, 1383, 1383, 406, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 406, 406, 407, 407, 403, 406, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 407, 403, 403, 403, 403, 403, 403, 403, 403, 403, 407, 407, 407, 407, 407, 407, 403, 403, 403, 406, 403, 407, 404, 407, 403, 403, 403, 403, 403, 407, 407, 407, 403, 407, 407, 404, 407, 403, 407, 403, 407, 407, 407, 403, 407, 404, 407, 403, 403, 403, 403, 403, 403, 407, 407, 407, 407, 407, 407, 407, 403, 403, 407, 404, 403, 407, 403, 403, 403, 403, 403, 403, 403, 407, 407, 407, 407, 407, 407, 403, 403, 404, 407, 403, 407, 403, 403, 403, 403, 403, 403, 403, 407, 403, 407, 407, 407, 403, 404, 407, 403, 403, 403, 403, 403, 403, 407, 403, 407, 407, 407, 407, 403, 403, 404, 407, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 407, 407, 407, 407, 404, 407, 403, 403, 403, 403, 403, 407, 407, 407, 407, 403, 404, 407, 403, 403, 403, 403, 403, 407, 407, 407, 407, 403, 403, 404, 407, 403, 408, 408, 408, 407, 407, 407, 407, 408, 404, 408, 408, 407, 408, 407, 408, 406, 407, 404, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 407, 408, 407, 407, 408, 408, 406, 407, 404, 407, 404, 407, 407, 407, 407, 407, 408, 408, 407, 407, 407, 407, 407, 407, 407, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 407, 407, 408, 408, 408, 408, 406, 409, 409, 407, 406, 408, 407, 407, 406, 408, 406, 408, 409, 408, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1383, 1383, 1383, 1383, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1383, 1383, 1383, 1383, 1383, 1383, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1383, 1383, 1383, 1383, 1089, 1383, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1383, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1383, 1383, 1383, 1383, 1383, 1383, 1089, 1089, 1089, 1383, 1089, 1383, 1383, 1383, 1089, 1089, 1089, 1089, 1089, 1383, 1383, 1383, 1089, 1383, 1383, 1383, 1383, 1089, 1383, 1089, 1383, 1383, 1383, 1089, 1383, 1383, 1383, 1089, 1089, 1089, 1089, 1089, 1089, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1089, 1089, 1383, 1383, 1089, 1383, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1383, 1383, 1383, 1383, 1383, 1383, 1089, 1089, 1383, 1383, 1089, 1383, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1383, 1089, 1383, 1383, 1383, 1089, 1383, 1383, 1089, 1089, 1089, 1089, 1089, 1089, 1383, 1089, 1383, 1383, 1383, 1383, 1089, 1089, 1383, 1383, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1383, 1383, 1383, 1383, 1383, 1383, 1089, 1089, 1089, 1089, 1089, 1383, 1383, 1383, 1383, 1089, 1383, 1383, 1089, 1089, 1089, 1089, 1089, 1383, 1383, 1383, 1383, 1089, 1089, 1383, 1383, 1089, 1090, 1090, 1090, 1383, 1383, 1383, 1383, 1090, 1383, 1090, 1090, 1383, 1090, 1383, 1090, 1383, 1383, 1383, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1383, 1090, 1383, 1383, 1090, 1090, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1090, 1090, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1383, 1383, 1090, 1090, 1090, 1090, 1383, 1091, 1091, 1383, 1383, 1090, 1383, 1383, 318, 1090, 1383, 1090, 1091, 1090, 1150, 1150, 1383, 1151, 1383, 1383, 1383, 319, 1383, 1383, 1383, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1383, 1383, 1383, 1383, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1383, 320, 1383, 321, 1383, 1152, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1152, 1152, 1153, 1153, 1150, 1152, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1153, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1153, 1153, 1153, 1153, 1153, 1153, 1150, 1150, 1150, 1152, 1150, 1153, 1151, 1153, 1150, 1150, 1150, 1150, 1150, 1153, 1153, 1153, 1150, 1153, 1153, 1151, 1153, 1150, 1153, 1150, 1153, 1153, 1153, 1150, 1153, 1151, 1153, 1150, 1150, 1150, 1150, 1150, 1150, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1150, 1150, 1153, 1151, 1150, 1153, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1153, 1153, 1153, 1153, 1153, 1153, 1150, 1150, 1151, 1153, 1150, 1153, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1153, 1150, 1153, 1153, 1153, 1150, 1151, 1153, 1150, 1150, 1150, 1150, 1150, 1150, 1153, 1150, 1153, 1153, 1153, 1153, 1150, 1150, 1151, 1153, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1153, 1153, 1153, 1153, 1151, 1153, 1150, 1150, 1150, 1150, 1150, 1153, 1153, 1153, 1153, 1150, 1151, 1153, 1150, 1150, 1150, 1150, 1150, 1153, 1153, 1153, 1153, 1150, 1150, 1151, 1153, 1150, 1154, 1154, 1154, 1153, 1153, 1153, 1153, 1154, 1151, 1154, 1154, 1153, 1154, 1153, 1154, 1152, 1153, 1151, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1153, 1154, 1153, 1153, 1154, 1154, 1152, 1153, 1151, 1153, 1151, 1153, 1153, 1153, 1153, 1153, 1154, 1154, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1153, 1153, 1154, 1154, 1154, 1154, 1152, 1155, 1155, 1153, 1152, 1154, 1153, 1153, 1152, 1154, 1152, 1154, 1155, 1154, 1353, 1314, 322, 322, 322, 1314, 1222, 1319, 1353, 1353, 1353, 1353, 1353, 1222, 1383, 1383, 1358, 1383, 1383, 1297, 1222, 1367, 1383, 1353, 1353, 1353, 1353, 1353, 1353, 1359, 1222, 1360, 1298, 1383, 1222, 1338, 1383, 1315, 1222, 1383, 1383, 1315, 1222, 1316, 1383, 1383, 1361, 1316, 1317, 1299, 1383, 1383, 1317, 1318, 1383, 1383, 1383, 1318, 1383, 1383, 1383, 1380, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1222, 1362, 1383, 1363, 1300, 1383, 1301, 1383, 1383, 1383, 1353, 1383, 1281, 1383, 1383, 1383, 1383, 1383, 1353, 1353, 1353, 1353, 1353, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1222, 1383, 1383, 1353, 1353, 1353, 1353, 1353, 1353, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1223, 1223, 1223, 1383, 1383, 1383, 1383, 1223, 1223, 1223, 1383, 1383, 1383, 1383, 1223, 1223, 1223, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1223, 1223, 1223, 1383, 1223, 1223, 1223, 1383, 1223, 1223, 1223, 1383, 1223, 1223, 1223, 1383, 1364, 1364, 1364, 1302, 1302, 1302, 204, 204, 1383, 205, 206, 1383, 1383, 1383, 1383, 1383, 1383, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 1223, 1223, 1223, 1383, 204, 204, 204, 204, 204, 204, 1365, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 1223, 1223, 1223, 1383, 1383, 207, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 207, 207, 208, 208, 204, 207, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 208, 204, 204, 204, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 208, 208, 204, 204, 204, 207, 204, 208, 205, 208, 204, 204, 204, 204, 204, 208, 208, 208, 204, 208, 208, 205, 208, 204, 208, 204, 208, 208, 208, 204, 208, 205, 208, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 208, 208, 208, 204, 204, 208, 205, 204, 208, 204, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 208, 208, 204, 204, 205, 208, 204, 208, 204, 204, 204, 204, 204, 204, 204, 208, 204, 208, 208, 208, 204, 205, 208, 204, 204, 204, 204, 204, 204, 208, 204, 208, 208, 208, 208, 204, 204, 205, 208, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 208, 208, 208, 208, 205, 208, 204, 204, 204, 204, 204, 208, 208, 208, 208, 204, 205, 208, 204, 204, 204, 204, 204, 208, 208, 208, 208, 204, 204, 205, 208, 204, 209, 209, 209, 208, 208, 208, 208, 209, 205, 209, 209, 208, 209, 208, 209, 207, 208, 205, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 208, 209, 208, 208, 209, 209, 207, 208, 205, 208, 205, 208, 208, 208, 208, 208, 209, 209, 208, 208, 208, 208, 208, 208, 208, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 208, 208, 209, 209, 209, 209, 207, 210, 210, 208, 207, 209, 208, 208, 207, 209, 207, 209, 210, 209, 1297, 1383, 1383, 1297, 1383, 1383, 1369, 1383, 1383, 1297, 1319, 1383, 1297, 1298, 1383, 1383, 1298, 1383, 1383, 1370, 1383, 1371, 1298, 1383, 1297, 1298, 1314, 1383, 1383, 1383, 1299, 1383, 1383, 1299, 1383, 1297, 1361, 1298, 1383, 1299, 1383, 1383, 1299, 1383, 1383, 1222, 1383, 1383, 1298, 1383, 1383, 1383, 1383, 1383, 1299, 1383, 1383, 1383, 1300, 1222, 1301, 1300, 1315, 1301, 1372, 1299, 1373, 1300, 1316, 1301, 1300, 1383, 1301, 1317, 1383, 1383, 1383, 1383, 1318, 1383, 1383, 1383, 1300, 1383, 1301, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1300, 1383, 1301, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1302, 1302, 1302, 1302, 1302, 1302, 1374, 1374, 1374, 1302, 1302, 1302, 1302, 1302, 1302, 1223, 1223, 1223, 1383, 1383, 1383, 1383, 1383, 1383, 1302, 1302, 1302, 1383, 1383, 1223, 1223, 1223, 1383, 1383, 1383, 1302, 1302, 1302, 90, 90, 90, 90, 90, 38, 38, 38, 38, 38, 101, 101, 101, 101, 101, 116, 116, 116, 116, 116, 122, 122, 122, 122, 122, 129, 129, 129, 129, 129, 142, 142, 142, 142, 142, 145, 145, 145, 145, 145, 38, 38, 38, 38, 38, 177, 177, 177, 177, 177, 183, 183, 183, 183, 183, 299, 299, 299, 299, 302, 302, 302, 302, 317, 317, 317, 317, 331, 331, 331, 343, 343, 343, 367, 367, 367, 367, 370, 370, 370, 370, 374, 374, 374, 374, 377, 377, 377, 377, 387, 1383, 387, 387, 177, 177, 177, 177, 177, 422, 422, 422, 422, 422, 183, 183, 183, 183, 183, 432, 432, 432, 432, 432, 299, 299, 299, 299, 302, 302, 302, 302, 572, 572, 572, 572, 317, 317, 317, 317, 331, 331, 331, 343, 343, 343, 367, 367, 367, 367, 370, 370, 370, 370, 597, 597, 597, 597, 374, 374, 374, 374, 377, 377, 1383, 377, 387, 1383, 387, 387, 422, 422, 422, 422, 422, 432, 432, 432, 432, 432, 299, 299, 299, 299, 367, 367, 367, 367, 422, 422, 422, 422, 422, 432, 432, 432, 432, 432, 422, 422, 422, 422, 422, 432, 432, 432, 432, 432, 1221, 1221, 1221, 1221, 1243, 1243, 1243, 1243, 1263, 1263, 1263, 1263, 1280, 1280, 1280, 1280, 1296, 1296, 1296, 1296, 1303, 1303, 1303, 1303, 1320, 1320, 1320, 1320, 1341, 1341, 1341, 1341, 317, 317, 317, 317, 1357, 1357, 1357, 1357, 1368, 1368, 1368, 1368, 37, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383 } ; static yyconst short int yy_chk[26368] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 44, 44, 4, 7, 7, 7, 7, 54, 41, 7, 54, 3, 41, 142, 4, 8, 8, 8, 8, 13, 3, 8, 14, 4, 13, 45, 1227, 14, 39, 39, 39, 39, 13, 56, 51, 14, 51, 13, 13, 45, 14, 14, 42, 168, 42, 42, 58, 58, 168, 64, 74, 56, 56, 324, 56, 64, 324, 64, 53, 64, 53, 138, 64, 64, 74, 70, 183, 183, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 70, 13, 70, 138, 14, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 65, 66, 67, 1228, 65, 75, 67, 76, 66, 75, 76, 268, 67, 268, 65, 66, 68, 68, 68, 75, 76, 68, 76, 69, 65, 81, 68, 81, 68, 69, 81, 71, 69, 71, 69, 69, 77, 279, 73, 272, 71, 71, 73, 77, 82, 139, 71, 71, 82, 279, 272, 80, 73, 77, 80, 80, 77, 73, 79, 117, 79, 80, 79, 83, 80, 139, 83, 83, 79, 234, 1229, 80, 79, 83, 124, 234, 118, 79, 94, 94, 94, 94, 99, 99, 99, 99, 104, 104, 104, 104, 118, 130, 253, 221, 426, 117, 160, 118, 160, 160, 221, 117, 135, 135, 135, 135, 117, 253, 179, 179, 124, 117, 149, 149, 149, 149, 124, 159, 159, 159, 159, 124, 164, 164, 164, 164, 124, 130, 171, 171, 171, 171, 266, 130, 175, 175, 175, 175, 130, 266, 177, 1230, 184, 130, 177, 179, 184, 213, 213, 224, 426, 179, 224, 223, 223, 223, 179, 223, 224, 225, 227, 179, 223, 323, 225, 224, 224, 236, 1231, 213, 244, 229, 229, 232, 227, 232, 267, 225, 184, 278, 225, 244, 244, 267, 184, 278, 674, 190, 229, 184, 427, 674, 232, 236, 184, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 338, 236, 236, 256, 323, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 248, 249, 256, 263, 500, 248, 328, 263, 281, 363, 248, 427, 256, 263, 281, 265, 338, 265, 256, 265, 249, 500, 249, 265, 285, 265, 285, 328, 339, 363, 271, 339, 285, 456, 271, 289, 289, 289, 289, 458, 456, 142, 142, 142, 271, 476, 476, 271, 297, 297, 297, 297, 458, 3, 3, 3, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 9, 101, 144, 10, 103, 143, 143, 9, 145, 154, 10, 154, 154, 158, 192, 158, 158, 306, 306, 306, 306, 349, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 350, 436, 473, 350, 473, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 193, 364, 193, 365, 366, 349, 355, 355, 355, 355, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 438, 364, 436, 365, 366, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 194, 375, 375, 375, 394, 394, 394, 394, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 402, 402, 402, 402, 438, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 195, 428, 195, 461, 425, 195, 414, 414, 414, 414, 479, 437, 461, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 318, 333, 344, 479, 1232, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 425, 424, 433, 425, 435, 428, 318, 333, 344, 437, 460, 433, 318, 333, 344, 424, 463, 318, 333, 344, 460, 462, 318, 333, 344, 464, 465, 466, 462, 467, 468, 463, 464, 465, 470, 466, 469, 475, 471, 475, 477, 470, 471, 467, 467, 469, 483, 1234, 435, 485, 468, 435, 480, 485, 442, 477, 483, 433, 482, 486, 480, 424, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 486, 482, 487, 1236, 487, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 490, 491, 493, 494, 503, 497, 495, 496, 491, 498, 493, 498, 499, 494, 490, 495, 499, 496, 497, 503, 501, 504, 508, 154, 154, 154, 505, 158, 158, 158, 501, 504, 510, 507, 505, 507, 514, 508, 514, 515, 518, 516, 554, 515, 518, 522, 510, 520, 520, 523, 525, 518, 554, 523, 525, 515, 516, 539, 144, 144, 144, 522, 143, 143, 143, 526, 529, 531, 529, 526, 539, 531, 1237, 145, 145, 145, 101, 101, 101, 103, 103, 103, 9, 9, 9, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 15, 17, 146, 367, 18, 16, 369, 17, 116, 19, 18, 17, 20, 15, 18, 540, 540, 545, 16, 19, 19, 116, 20, 20, 17, 545, 387, 18, 387, 387, 528, 391, 19, 391, 391, 20, 392, 530, 392, 392, 527, 532, 527, 533, 530, 532, 534, 528, 535, 537, 533, 544, 535, 537, 544, 558, 527, 547, 15, 542, 15, 547, 534, 16, 558, 16, 116, 544, 116, 17, 542, 17, 18, 566, 18, 443, 566, 19, 549, 19, 20, 541, 20, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 549, 621, 541, 541, 1238, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 445, 552, 562, 1239, 562, 552, 555, 546, 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, 546, 555, 564, 564, 621, 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, 548, 550, 556, 559, 560, 563, 556, 559, 560, 561, 550, 548, 565, 565, 1240, 550, 567, 567, 563, 559, 577, 578, 577, 561, 584, 629, 584, 585, 630, 578, 578, 578, 578, 578, 1241, 585, 585, 585, 585, 585, 590, 620, 590, 623, 578, 578, 578, 578, 578, 578, 585, 585, 585, 585, 585, 585, 591, 613, 613, 618, 622, 612, 1242, 619, 591, 591, 591, 591, 591, 612, 649, 649, 629, 618, 630, 618, 622, 619, 632, 591, 591, 591, 591, 591, 591, 619, 619, 619, 619, 619, 662, 651, 662, 620, 623, 651, 820, 627, 628, 631, 619, 619, 619, 619, 619, 619, 627, 628, 627, 655, 631, 659, 652, 650, 661, 628, 628, 628, 628, 628, 650, 652, 696, 655, 632, 659, 696, 661, 639, 658, 628, 628, 628, 628, 628, 628, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 658, 820, 665, 653, 665, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 660, 664, 667, 685, 666, 667, 685, 663, 387, 387, 387, 663, 706, 391, 391, 391, 653, 660, 392, 392, 392, 666, 706, 668, 663, 668, 669, 367, 367, 367, 369, 369, 369, 711, 711, 146, 146, 146, 1246, 669, 15, 15, 15, 678, 664, 16, 16, 16, 116, 116, 116, 17, 17, 17, 18, 18, 18, 678, 1247, 19, 19, 19, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 23, 102, 147, 24, 299, 370, 25, 102, 373, 708, 26, 672, 677, 368, 368, 675, 372, 372, 681, 677, 681, 708, 640, 25, 672, 673, 23, 26, 675, 24, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 712, 682, 673, 682, 712, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 680, 684, 687, 684, 687, 688, 689, 680, 689, 691, 692, 691, 692, 697, 701, 704, 703, 701, 703, 688, 709, 704, 714, 714, 715, 717, 709, 719, 717, 720, 697, 721, 721, 720, 722, 723, 724, 715, 719, 725, 726, 727, 729, 727, 742, 728, 742, 722, 723, 726, 728, 731, 725, 724, 733, 733, 734, 731, 735, 729, 737, 734, 738, 743, 741, 745, 746, 749, 743, 737, 741, 735, 746, 750, 750, 738, 754, 751, 745, 751, 745, 752, 752, 753, 749, 757, 755, 753, 755, 758, 754, 759, 760, 761, 763, 762, 757, 764, 765, 767, 767, 765, 761, 758, 759, 762, 814, 763, 766, 760, 819, 766, 764, 776, 882, 776, 815, 1249, 882, 1037, 1250, 776, 776, 776, 776, 776, 1074, 1037, 1251, 1252, 1074, 1253, 1254, 1255, 1256, 1257, 776, 776, 776, 776, 776, 776, 780, 1258, 780, 1261, 1262, 1266, 1267, 1268, 780, 780, 780, 780, 780, 1269, 1272, 1273, 1274, 1275, 819, 814, 1276, 1277, 1278, 780, 780, 780, 780, 780, 780, 783, 815, 783, 1279, 1284, 1286, 1287, 1289, 783, 783, 783, 783, 783, 1291, 1292, 813, 1293, 1294, 1306, 1308, 1309, 1310, 1311, 783, 783, 783, 783, 783, 783, 813, 1312, 813, 1313, 1328, 1329, 1331, 1332, 813, 813, 813, 813, 813, 1350, 1351, 1352, 1365, 1381, 1352, 1366, 818, 1377, 1226, 813, 813, 813, 813, 813, 813, 818, 1377, 818, 1375, 1366, 1379, 1375, 1225, 818, 818, 818, 818, 818, 1379, 1224, 1219, 1218, 1217, 1216, 1215, 1214, 1212, 1211, 818, 818, 818, 818, 818, 818, 1209, 1208, 1207, 1206, 1205, 1203, 1201, 1200, 1199, 1198, 1197, 1192, 1187, 1186, 1184, 1183, 1182, 1181, 1180, 1179, 1178, 1177, 1176, 1173, 1171, 1170, 1169, 1167, 1166, 1165, 1164, 1163, 1162, 1160, 1157, 1156, 1149, 1146, 1144, 1143, 1142, 1141, 1139, 1138, 1137, 1136, 1135, 1134, 370, 370, 370, 373, 373, 373, 147, 147, 147, 368, 368, 368, 372, 372, 372, 102, 102, 102, 299, 299, 299, 23, 23, 23, 24, 24, 24, 25, 25, 25, 1133, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 29, 29, 29, 29, 29, 374, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 1132, 1130, 1129, 1127, 115, 115, 115, 115, 1126, 1125, 1124, 1123, 1121, 115, 1119, 122, 121, 1116, 128, 122, 1115, 1112, 128, 1111, 1109, 1108, 115, 129, 129, 121, 134, 134, 300, 1107, 1106, 301, 1105, 1104, 300, 302, 1102, 1101, 303, 1099, 1097, 305, 1096, 1095, 303, 1092, 316, 316, 316, 316, 317, 1087, 1085, 1084, 376, 316, 1083, 1082, 322, 1081, 331, 330, 1080, 317, 331, 1079, 1078, 115, 316, 115, 121, 322, 121, 122, 330, 122, 128, 377, 128, 343, 343, 129, 379, 129, 134, 336, 134, 1077, 337, 336, 1076, 1075, 337, 1073, 1072, 348, 348, 1196, 354, 354, 572, 597, 1070, 573, 1069, 1067, 574, 1066, 317, 1065, 317, 1064, 1221, 316, 1062, 316, 322, 1061, 322, 330, 1060, 330, 331, 1059, 331, 1057, 1056, 1055, 598, 1054, 1053, 599, 1051, 1050, 1049, 1048, 1047, 343, 1045, 343, 1044, 1042, 1244, 1041, 1040, 1039, 1038, 336, 1222, 336, 337, 1223, 337, 348, 1243, 348, 354, 1244, 354, 1264, 1245, 1034, 1281, 1263, 1282, 1296, 1265, 1297, 1032, 1280, 1298, 1031, 1029, 1028, 1264, 1281, 1027, 1026, 1296, 1282, 1299, 1025, 1283, 1024, 1023, 1300, 1302, 1022, 1301, 1021, 1020, 1017, 1281, 1299, 1304, 1296, 1015, 1013, 1012, 1302, 1297, 1011, 1010, 1297, 1009, 1298, 1008, 1304, 1007, 1297, 1299, 1314, 1006, 1300, 1297, 1005, 1302, 1003, 1301, 1297, 1281, 1303, 1281, 1296, 1304, 1296, 1001, 1305, 1320, 1321, 1000, 1314, 1322, 999, 998, 1315, 997, 995, 1299, 1316, 1299, 1320, 1317, 1326, 1302, 1318, 1302, 1319, 993, 1319, 1315, 991, 1304, 1315, 1304, 1324, 1326, 1314, 1320, 1323, 990, 1316, 1321, 989, 1317, 1321, 988, 1322, 1318, 985, 1325, 1321, 1323, 1326, 1323, 1334, 1321, 1334, 1336, 1343, 1338, 1321, 1337, 1324, 984, 1339, 1320, 983, 1320, 1323, 980, 979, 1346, 978, 1340, 1334, 1336, 977, 1338, 1337, 1325, 1326, 1339, 1326, 1340, 974, 1367, 973, 971, 1354, 374, 374, 374, 970, 1343, 969, 967, 1323, 1367, 1323, 1346, 29, 29, 29, 29, 30, 30, 30, 30, 30, 1354, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 115, 115, 115, 121, 121, 121, 122, 122, 122, 128, 128, 128, 966, 964, 129, 129, 129, 134, 134, 134, 963, 962, 300, 300, 300, 301, 301, 301, 961, 302, 302, 302, 303, 303, 303, 305, 305, 305, 376, 376, 376, 317, 317, 317, 960, 958, 316, 316, 316, 322, 322, 322, 330, 330, 330, 331, 331, 331, 1196, 1196, 1196, 377, 377, 377, 956, 955, 379, 379, 379, 954, 343, 343, 343, 1221, 1221, 1221, 597, 597, 597, 953, 336, 336, 336, 337, 337, 337, 348, 348, 348, 354, 354, 354, 952, 951, 572, 572, 572, 573, 573, 573, 574, 574, 574, 598, 598, 598, 599, 599, 599, 1222, 1222, 1222, 1223, 1223, 1223, 1243, 1243, 1243, 1244, 1244, 1244, 1245, 1245, 1245, 1263, 1263, 1263, 1265, 1265, 1265, 1280, 1280, 1280, 950, 949, 1264, 1264, 1264, 948, 946, 1282, 1282, 1282, 1283, 1283, 1283, 1300, 1300, 1300, 1301, 1301, 1301, 945, 1281, 1281, 1281, 1296, 1296, 1296, 944, 943, 1297, 1297, 1297, 942, 941, 1298, 1298, 1298, 940, 939, 1299, 1299, 1299, 938, 937, 935, 1302, 1302, 1302, 934, 933, 1303, 1303, 1303, 1304, 1304, 1304, 1305, 1305, 1305, 932, 1314, 1314, 1314, 931, 1315, 1315, 1315, 930, 1316, 1316, 1316, 1317, 1317, 1317, 1318, 1318, 1318, 928, 1319, 1319, 1319, 926, 924, 923, 1324, 1324, 1324, 1320, 1320, 1320, 922, 1321, 1321, 1321, 920, 919, 1322, 1322, 1322, 1325, 1325, 1325, 1326, 1326, 1326, 918, 916, 1336, 1336, 1336, 914, 1337, 1337, 1337, 1339, 1339, 1339, 913, 1323, 1323, 1323, 1346, 1346, 1346, 1334, 1334, 1334, 1338, 1338, 1338, 912, 910, 907, 1340, 1340, 1340, 906, 904, 1354, 1354, 1354, 903, 901, 1343, 1343, 1343, 900, 1367, 1367, 1367, 899, 897, 896, 895, 894, 893, 892, 891, 890, 889, 888, 887, 886, 885, 884, 883, 881, 880, 879, 877, 876, 875, 874, 873, 872, 871, 870, 868, 867, 866, 865, 864, 863, 862, 861, 860, 857, 856, 854, 853, 852, 850, 849, 30, 30, 30, 30, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 61, 61, 848, 61, 61, 847, 846, 845, 844, 843, 842, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 841, 840, 839, 838, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 836, 835, 834, 833, 832, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 96, 96, 831, 96, 96, 829, 828, 827, 826, 825, 824, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 822, 817, 816, 806, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 785, 784, 782, 781, 779, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 110, 110, 778, 110, 110, 777, 768, 756, 748, 747, 744, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 740, 739, 736, 732, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 730, 718, 716, 713, 710, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 137, 137, 707, 137, 705, 702, 700, 699, 698, 695, 694, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 693, 690, 686, 683, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 679, 676, 671, 670, 657, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 151, 151, 656, 151, 151, 654, 626, 625, 614, 604, 595, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 594, 593, 592, 589, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 588, 587, 586, 583, 582, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 161, 161, 581, 161, 161, 580, 579, 576, 568, 557, 553, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 551, 543, 538, 536, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 524, 521, 519, 517, 513, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 165, 165, 512, 165, 165, 511, 509, 506, 502, 492, 489, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 488, 484, 481, 478, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 474, 472, 459, 457, 455, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 172, 172, 454, 172, 172, 453, 452, 446, 444, 434, 432, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 431, 430, 429, 423, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 422, 413, 412, 411, 410, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 393, 390, 389, 388, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 378, 353, 352, 351, 347, 346, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 345, 342, 341, 340, 188, 335, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 334, 188, 188, 188, 188, 188, 188, 188, 188, 188, 332, 327, 326, 325, 321, 320, 188, 188, 188, 319, 188, 315, 287, 286, 188, 188, 188, 188, 188, 284, 283, 282, 188, 280, 277, 276, 274, 188, 273, 188, 270, 269, 264, 188, 262, 261, 260, 188, 188, 188, 188, 188, 188, 259, 257, 254, 252, 250, 247, 246, 188, 188, 243, 241, 188, 239, 188, 188, 188, 188, 188, 188, 188, 237, 235, 233, 231, 228, 226, 188, 188, 222, 219, 188, 218, 188, 188, 188, 188, 188, 188, 188, 217, 188, 216, 215, 214, 188, 212, 211, 188, 188, 188, 188, 188, 188, 198, 188, 185, 182, 181, 180, 188, 188, 178, 167, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 166, 157, 156, 155, 150, 136, 188, 188, 188, 188, 188, 133, 132, 131, 127, 188, 126, 123, 188, 188, 188, 188, 188, 120, 119, 111, 107, 188, 188, 100, 95, 188, 188, 188, 188, 92, 91, 84, 78, 188, 72, 188, 188, 52, 188, 47, 188, 40, 37, 0, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 0, 188, 0, 0, 188, 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 188, 188, 0, 0, 0, 0, 0, 0, 0, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 0, 0, 188, 188, 188, 188, 0, 188, 188, 0, 0, 188, 0, 1341, 0, 188, 0, 188, 188, 188, 204, 204, 0, 204, 204, 0, 1341, 0, 0, 0, 0, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 0, 0, 1341, 0, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 1341, 0, 1341, 0, 0, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 206, 1341, 1341, 1341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 0, 0, 0, 0, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 0, 0, 0, 0, 0, 0, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 0, 0, 0, 1347, 206, 0, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 0, 206, 206, 206, 206, 206, 206, 206, 206, 206, 0, 0, 0, 1347, 0, 0, 206, 206, 206, 0, 206, 0, 0, 0, 206, 206, 206, 206, 206, 0, 0, 0, 206, 0, 0, 0, 0, 206, 0, 206, 0, 0, 0, 206, 0, 0, 0, 206, 206, 206, 206, 206, 206, 0, 0, 0, 0, 0, 0, 0, 206, 206, 0, 0, 206, 0, 206, 206, 206, 206, 206, 206, 206, 0, 0, 0, 0, 0, 0, 206, 206, 0, 0, 206, 0, 206, 206, 206, 206, 206, 206, 206, 0, 206, 0, 0, 0, 206, 0, 0, 206, 206, 206, 206, 206, 206, 0, 206, 0, 0, 0, 0, 206, 206, 0, 0, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 0, 0, 0, 0, 0, 0, 206, 206, 206, 206, 206, 0, 0, 0, 0, 206, 0, 0, 206, 206, 206, 206, 206, 0, 0, 0, 0, 206, 206, 0, 0, 206, 206, 206, 206, 0, 0, 0, 0, 206, 0, 206, 206, 0, 206, 0, 206, 0, 0, 0, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 0, 206, 0, 0, 206, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 206, 206, 0, 0, 0, 0, 0, 0, 0, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 0, 0, 206, 206, 206, 206, 0, 206, 206, 0, 0, 206, 0, 0, 0, 206, 0, 206, 206, 206, 290, 290, 0, 290, 290, 0, 0, 0, 0, 0, 0, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 0, 0, 0, 0, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 1347, 1347, 1347, 0, 0, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 0, 0, 0, 0, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 0, 0, 0, 0, 0, 0, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 0, 0, 0, 1362, 292, 0, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 0, 292, 292, 292, 292, 292, 292, 292, 292, 292, 0, 1362, 0, 0, 0, 0, 292, 292, 292, 0, 292, 0, 0, 0, 292, 292, 292, 292, 292, 0, 0, 0, 292, 0, 0, 0, 0, 292, 0, 292, 0, 0, 0, 292, 0, 0, 0, 292, 292, 292, 292, 292, 292, 0, 0, 0, 0, 0, 0, 0, 292, 292, 0, 0, 292, 0, 292, 292, 292, 292, 292, 292, 292, 0, 0, 0, 0, 0, 0, 292, 292, 0, 0, 292, 0, 292, 292, 292, 292, 292, 292, 292, 0, 292, 0, 0, 0, 292, 0, 0, 292, 292, 292, 292, 292, 292, 0, 292, 0, 0, 0, 0, 292, 292, 0, 0, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 0, 0, 0, 0, 0, 0, 292, 292, 292, 292, 292, 0, 0, 0, 0, 292, 0, 0, 292, 292, 292, 292, 292, 0, 0, 0, 0, 292, 292, 0, 0, 292, 292, 292, 292, 0, 0, 0, 0, 292, 0, 292, 292, 0, 292, 0, 292, 0, 0, 0, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 0, 292, 0, 0, 292, 292, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 292, 292, 0, 0, 0, 0, 0, 0, 0, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 0, 0, 292, 292, 292, 292, 0, 292, 292, 0, 0, 292, 0, 0, 0, 292, 0, 292, 292, 292, 308, 308, 0, 308, 308, 0, 0, 0, 0, 0, 0, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 0, 0, 0, 0, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 1362, 1362, 1362, 0, 0, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 0, 0, 0, 0, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 0, 0, 0, 0, 0, 0, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 0, 0, 0, 1363, 310, 0, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 0, 310, 310, 310, 310, 310, 310, 310, 310, 310, 0, 0, 0, 1363, 0, 0, 310, 310, 310, 0, 310, 0, 0, 0, 310, 310, 310, 310, 310, 0, 0, 0, 310, 0, 0, 0, 0, 310, 0, 310, 0, 0, 0, 310, 0, 0, 0, 310, 310, 310, 310, 310, 310, 0, 0, 0, 0, 0, 0, 0, 310, 310, 0, 0, 310, 0, 310, 310, 310, 310, 310, 310, 310, 0, 0, 0, 0, 0, 0, 310, 310, 0, 0, 310, 0, 310, 310, 310, 310, 310, 310, 310, 0, 310, 0, 0, 0, 310, 0, 0, 310, 310, 310, 310, 310, 310, 0, 310, 0, 0, 0, 0, 310, 310, 0, 0, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 0, 0, 0, 0, 0, 0, 310, 310, 310, 310, 310, 0, 0, 0, 0, 310, 0, 0, 310, 310, 310, 310, 310, 0, 0, 0, 0, 310, 310, 0, 0, 310, 310, 310, 310, 0, 0, 0, 0, 310, 0, 310, 310, 0, 310, 0, 310, 0, 0, 0, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 0, 310, 0, 0, 310, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 310, 310, 0, 0, 0, 0, 0, 0, 0, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 0, 0, 310, 310, 310, 310, 0, 310, 310, 0, 0, 310, 0, 0, 0, 310, 0, 310, 310, 310, 357, 357, 0, 357, 0, 0, 0, 0, 0, 0, 0, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 0, 0, 0, 0, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 1363, 1363, 1363, 0, 0, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 380, 380, 0, 380, 380, 0, 0, 0, 0, 0, 0, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 0, 0, 0, 0, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 0, 0, 0, 0, 0, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 0, 0, 0, 0, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 0, 0, 0, 0, 0, 0, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 0, 0, 0, 1372, 382, 0, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 0, 382, 382, 382, 382, 382, 382, 382, 382, 382, 0, 1372, 0, 0, 0, 0, 382, 382, 382, 0, 382, 0, 0, 0, 382, 382, 382, 382, 382, 0, 0, 0, 382, 0, 0, 0, 0, 382, 0, 382, 0, 0, 0, 382, 0, 0, 0, 382, 382, 382, 382, 382, 382, 0, 0, 0, 0, 0, 0, 0, 382, 382, 0, 0, 382, 0, 382, 382, 382, 382, 382, 382, 382, 0, 0, 0, 0, 0, 0, 382, 382, 0, 0, 382, 0, 382, 382, 382, 382, 382, 382, 382, 0, 382, 0, 0, 0, 382, 0, 0, 382, 382, 382, 382, 382, 382, 0, 382, 0, 0, 0, 0, 382, 382, 0, 0, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 0, 0, 0, 0, 0, 0, 382, 382, 382, 382, 382, 0, 0, 0, 0, 382, 0, 0, 382, 382, 382, 382, 382, 0, 0, 0, 0, 382, 382, 0, 0, 382, 382, 382, 382, 0, 0, 0, 0, 382, 0, 382, 382, 0, 382, 0, 382, 0, 0, 0, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 0, 382, 0, 0, 382, 382, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 382, 382, 0, 0, 0, 0, 0, 0, 0, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 0, 0, 382, 382, 382, 382, 0, 382, 382, 0, 0, 382, 0, 0, 0, 382, 0, 382, 382, 382, 395, 395, 0, 395, 395, 0, 0, 0, 0, 0, 0, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 0, 0, 0, 0, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 1372, 1372, 1372, 0, 0, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 0, 0, 0, 0, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 0, 0, 0, 0, 0, 0, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 0, 0, 0, 1373, 397, 0, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 0, 397, 397, 397, 397, 397, 397, 397, 397, 397, 0, 0, 0, 1373, 0, 0, 397, 397, 397, 0, 397, 0, 0, 0, 397, 397, 397, 397, 397, 0, 0, 0, 397, 0, 0, 0, 0, 397, 0, 397, 0, 0, 0, 397, 0, 0, 0, 397, 397, 397, 397, 397, 397, 0, 0, 0, 0, 0, 0, 0, 397, 397, 0, 0, 397, 0, 397, 397, 397, 397, 397, 397, 397, 0, 0, 0, 0, 0, 0, 397, 397, 0, 0, 397, 0, 397, 397, 397, 397, 397, 397, 397, 0, 397, 0, 0, 0, 397, 0, 0, 397, 397, 397, 397, 397, 397, 0, 397, 0, 0, 0, 0, 397, 397, 0, 0, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 0, 0, 0, 0, 0, 0, 397, 397, 397, 397, 397, 0, 0, 0, 0, 397, 0, 0, 397, 397, 397, 397, 397, 0, 0, 0, 0, 397, 397, 0, 0, 397, 397, 397, 397, 0, 0, 0, 0, 397, 0, 397, 397, 0, 397, 0, 397, 0, 0, 0, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 0, 397, 0, 0, 397, 397, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 397, 397, 0, 0, 0, 0, 0, 0, 0, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 0, 0, 397, 397, 397, 397, 0, 397, 397, 0, 0, 397, 0, 0, 0, 397, 0, 397, 397, 397, 403, 403, 0, 403, 403, 0, 0, 0, 0, 0, 0, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 0, 0, 0, 0, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 1373, 1373, 1373, 0, 0, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 0, 0, 0, 0, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 0, 0, 0, 0, 0, 0, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 0, 1376, 0, 0, 405, 1376, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 0, 405, 405, 405, 405, 405, 405, 405, 405, 405, 0, 0, 0, 0, 0, 0, 405, 405, 405, 0, 405, 0, 0, 0, 405, 405, 405, 405, 405, 0, 0, 0, 405, 0, 0, 0, 0, 405, 0, 405, 0, 0, 0, 405, 0, 0, 0, 405, 405, 405, 405, 405, 405, 0, 0, 0, 0, 0, 0, 0, 405, 405, 0, 0, 405, 0, 405, 405, 405, 405, 405, 405, 405, 0, 0, 0, 0, 0, 0, 405, 405, 0, 0, 405, 0, 405, 405, 405, 405, 405, 405, 405, 0, 405, 0, 0, 0, 405, 0, 0, 405, 405, 405, 405, 405, 405, 0, 405, 0, 0, 0, 0, 405, 405, 0, 0, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 0, 0, 0, 0, 0, 0, 405, 405, 405, 405, 405, 0, 0, 0, 0, 405, 0, 0, 405, 405, 405, 405, 405, 0, 0, 0, 0, 405, 405, 0, 0, 405, 405, 405, 405, 0, 0, 0, 0, 405, 0, 405, 405, 0, 405, 0, 405, 0, 0, 0, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 0, 405, 0, 0, 405, 405, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 405, 405, 0, 0, 0, 0, 0, 0, 0, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 405, 0, 0, 405, 405, 405, 405, 0, 405, 405, 0, 0, 405, 0, 0, 0, 405, 0, 405, 405, 405, 415, 415, 0, 415, 415, 0, 0, 0, 0, 0, 0, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 0, 0, 0, 0, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 0, 0, 1376, 1376, 1376, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 0, 0, 0, 0, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 0, 0, 0, 0, 0, 0, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 0, 1380, 0, 1380, 417, 0, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 0, 417, 417, 417, 417, 417, 417, 417, 417, 417, 0, 0, 0, 0, 0, 0, 417, 417, 417, 0, 417, 0, 0, 0, 417, 417, 417, 417, 417, 0, 0, 0, 417, 0, 0, 0, 0, 417, 0, 417, 0, 0, 0, 417, 0, 0, 0, 417, 417, 417, 417, 417, 417, 0, 0, 0, 0, 0, 0, 0, 417, 417, 0, 0, 417, 0, 417, 417, 417, 417, 417, 417, 417, 0, 0, 0, 0, 0, 0, 417, 417, 0, 0, 417, 0, 417, 417, 417, 417, 417, 417, 417, 0, 417, 0, 0, 0, 417, 0, 0, 417, 417, 417, 417, 417, 417, 0, 417, 0, 0, 0, 0, 417, 417, 0, 0, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 0, 0, 0, 0, 0, 0, 417, 417, 417, 417, 417, 0, 0, 0, 0, 417, 0, 0, 417, 417, 417, 417, 417, 0, 0, 0, 0, 417, 417, 0, 0, 417, 417, 417, 417, 0, 0, 0, 0, 417, 0, 417, 417, 0, 417, 0, 417, 0, 0, 0, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 0, 417, 0, 0, 417, 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 417, 417, 0, 0, 0, 0, 0, 0, 0, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 417, 0, 0, 417, 417, 417, 417, 0, 417, 417, 0, 0, 417, 0, 0, 0, 417, 0, 417, 417, 417, 439, 439, 0, 439, 0, 0, 0, 0, 0, 0, 0, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 0, 0, 0, 0, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 1380, 1380, 1380, 0, 0, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, 448, 448, 0, 448, 0, 0, 0, 0, 0, 0, 0, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 0, 0, 0, 0, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 0, 0, 0, 0, 0, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 451, 451, 0, 451, 451, 0, 0, 0, 0, 0, 0, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 0, 0, 0, 0, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 0, 0, 0, 0, 0, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 569, 569, 0, 569, 0, 0, 0, 0, 0, 0, 0, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 0, 0, 0, 0, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 0, 0, 0, 0, 0, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, 575, 575, 0, 575, 575, 0, 0, 0, 0, 0, 0, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 0, 0, 0, 0, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 0, 0, 0, 0, 0, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 596, 596, 0, 596, 0, 0, 0, 0, 0, 0, 0, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 0, 0, 0, 0, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 0, 0, 0, 0, 0, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 601, 601, 0, 601, 0, 0, 0, 0, 0, 0, 0, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 0, 0, 0, 0, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 0, 0, 0, 0, 0, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, 605, 605, 0, 605, 0, 0, 0, 0, 0, 0, 0, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 0, 0, 0, 0, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 0, 0, 0, 0, 0, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, 608, 608, 0, 608, 0, 0, 0, 0, 0, 0, 0, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 0, 0, 0, 0, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 0, 0, 0, 0, 0, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 611, 611, 0, 611, 611, 0, 0, 0, 0, 0, 0, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 0, 0, 0, 0, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 0, 0, 0, 0, 0, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 611, 615, 615, 0, 615, 0, 0, 0, 0, 0, 0, 0, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 0, 0, 0, 0, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 0, 0, 0, 0, 0, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 633, 633, 0, 633, 0, 0, 0, 0, 0, 0, 0, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 0, 0, 0, 0, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 0, 0, 0, 0, 0, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 642, 642, 0, 642, 0, 0, 0, 0, 0, 0, 0, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 0, 0, 0, 0, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 0, 0, 0, 0, 0, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 648, 648, 0, 648, 648, 0, 0, 0, 0, 0, 0, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 0, 0, 0, 0, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 0, 0, 0, 0, 0, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 769, 769, 0, 769, 0, 0, 0, 0, 0, 0, 0, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 0, 0, 0, 0, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 0, 0, 0, 0, 0, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 775, 775, 0, 775, 775, 0, 0, 0, 0, 0, 0, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 0, 0, 0, 0, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 0, 0, 0, 0, 0, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 786, 786, 0, 786, 0, 0, 0, 0, 0, 0, 0, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 0, 0, 0, 0, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 0, 0, 0, 0, 0, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 786, 792, 792, 0, 792, 0, 0, 0, 0, 0, 0, 0, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 0, 0, 0, 0, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 0, 0, 0, 0, 0, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 798, 798, 0, 798, 0, 0, 0, 0, 0, 0, 0, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 0, 0, 0, 0, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 0, 0, 0, 0, 0, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 804, 804, 0, 804, 804, 0, 0, 0, 0, 0, 0, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 0, 0, 0, 0, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 0, 0, 0, 0, 0, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 804, 807, 807, 0, 807, 0, 0, 0, 0, 0, 0, 0, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 0, 0, 0, 0, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 0, 0, 0, 0, 0, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 821, 821, 0, 821, 821, 0, 0, 0, 0, 0, 0, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 0, 0, 0, 0, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 0, 0, 0, 0, 0, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 927, 927, 0, 927, 927, 0, 0, 0, 0, 0, 0, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 0, 0, 0, 0, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 0, 0, 0, 0, 0, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 929, 929, 0, 929, 929, 0, 0, 0, 0, 0, 0, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 0, 0, 0, 0, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 0, 0, 0, 0, 0, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 0, 0, 0, 0, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 0, 0, 0, 0, 0, 0, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 0, 0, 0, 0, 1019, 0, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 0, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 0, 0, 0, 0, 0, 0, 1019, 1019, 1019, 0, 1019, 0, 0, 0, 1019, 1019, 1019, 1019, 1019, 0, 0, 0, 1019, 0, 0, 0, 0, 1019, 0, 1019, 0, 0, 0, 1019, 0, 0, 0, 1019, 1019, 1019, 1019, 1019, 1019, 0, 0, 0, 0, 0, 0, 0, 1019, 1019, 0, 0, 1019, 0, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 0, 0, 0, 0, 0, 0, 1019, 1019, 0, 0, 1019, 0, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 0, 1019, 0, 0, 0, 1019, 0, 0, 1019, 1019, 1019, 1019, 1019, 1019, 0, 1019, 0, 0, 0, 0, 1019, 1019, 0, 0, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 0, 0, 0, 0, 0, 0, 1019, 1019, 1019, 1019, 1019, 0, 0, 0, 0, 1019, 0, 0, 1019, 1019, 1019, 1019, 1019, 0, 0, 0, 0, 1019, 1019, 0, 0, 1019, 1019, 1019, 1019, 0, 0, 0, 0, 1019, 0, 1019, 1019, 0, 1019, 0, 1019, 0, 0, 0, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 0, 1019, 0, 0, 1019, 1019, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1019, 1019, 0, 0, 0, 0, 0, 0, 0, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 0, 0, 1019, 1019, 1019, 1019, 0, 1019, 1019, 0, 0, 1019, 0, 0, 1344, 1019, 0, 1019, 1019, 1019, 1089, 1089, 0, 1089, 0, 0, 0, 1344, 0, 0, 0, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 0, 0, 0, 0, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 0, 1344, 0, 1344, 0, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1089, 1335, 1342, 1344, 1344, 1344, 1358, 1382, 1359, 1335, 1335, 1335, 1335, 1335, 1355, 0, 0, 1345, 0, 0, 1348, 1335, 1356, 0, 1335, 1335, 1335, 1335, 1335, 1335, 1345, 1356, 1345, 1348, 0, 1342, 1355, 0, 1342, 1358, 0, 0, 1358, 1359, 1342, 0, 0, 1345, 1358, 1342, 1348, 0, 0, 1358, 1342, 0, 0, 0, 1358, 0, 0, 0, 1378, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1378, 1345, 0, 1345, 1348, 0, 1348, 0, 0, 0, 1353, 0, 1353, 0, 0, 0, 0, 0, 1353, 1353, 1353, 1353, 1353, 0, 0, 0, 0, 0, 0, 0, 1353, 0, 0, 1353, 1353, 1353, 1353, 1353, 1353, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1382, 1382, 1382, 0, 0, 0, 0, 1355, 1355, 1355, 0, 0, 0, 0, 1335, 1335, 1335, 0, 0, 0, 0, 0, 0, 0, 1356, 1356, 1356, 0, 1342, 1342, 1342, 0, 1358, 1358, 1358, 0, 1359, 1359, 1359, 0, 1345, 1345, 1345, 1348, 1348, 1348, 1349, 1349, 0, 1349, 1349, 0, 0, 0, 0, 0, 0, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1378, 1378, 1378, 0, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1353, 1353, 1353, 0, 0, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1357, 0, 0, 1360, 0, 0, 1361, 0, 0, 1364, 1370, 0, 1368, 1357, 0, 0, 1360, 0, 0, 1361, 0, 1361, 1364, 0, 1371, 1368, 1369, 0, 0, 0, 1357, 0, 0, 1360, 0, 1374, 1361, 1371, 0, 1364, 0, 0, 1368, 0, 0, 1370, 0, 0, 1374, 0, 0, 0, 0, 0, 1371, 0, 0, 0, 1357, 1369, 1357, 1360, 1369, 1360, 1361, 1374, 1361, 1364, 1369, 1364, 1368, 0, 1368, 1369, 0, 0, 0, 0, 1369, 0, 0, 0, 1371, 0, 1371, 0, 0, 0, 0, 0, 0, 0, 0, 1374, 0, 1374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1357, 1357, 1357, 1360, 1360, 1360, 1361, 1361, 1361, 1364, 1364, 1364, 1368, 1368, 1368, 1370, 1370, 1370, 0, 0, 0, 0, 0, 0, 1371, 1371, 1371, 0, 0, 1369, 1369, 1369, 0, 0, 0, 1374, 1374, 1374, 1384, 1384, 1384, 1384, 1384, 1385, 1385, 1385, 1385, 1385, 1386, 1386, 1386, 1386, 1386, 1387, 1387, 1387, 1387, 1387, 1388, 1388, 1388, 1388, 1388, 1389, 1389, 1389, 1389, 1389, 1390, 1390, 1390, 1390, 1390, 1391, 1391, 1391, 1391, 1391, 1392, 1392, 1392, 1392, 1392, 1393, 1393, 1393, 1393, 1393, 1394, 1394, 1394, 1394, 1394, 1395, 1395, 1395, 1395, 1396, 1396, 1396, 1396, 1397, 1397, 1397, 1397, 1398, 1398, 1398, 1399, 1399, 1399, 1400, 1400, 1400, 1400, 1401, 1401, 1401, 1401, 1402, 1402, 1402, 1402, 1403, 1403, 1403, 1403, 1404, 0, 1404, 1404, 1405, 1405, 1405, 1405, 1405, 1406, 1406, 1406, 1406, 1406, 1407, 1407, 1407, 1407, 1407, 1408, 1408, 1408, 1408, 1408, 1409, 1409, 1409, 1409, 1410, 1410, 1410, 1410, 1411, 1411, 1411, 1411, 1412, 1412, 1412, 1412, 1413, 1413, 1413, 1414, 1414, 1414, 1415, 1415, 1415, 1415, 1416, 1416, 1416, 1416, 1417, 1417, 1417, 1417, 1418, 1418, 1418, 1418, 1419, 1419, 0, 1419, 1420, 0, 1420, 1420, 1421, 1421, 1421, 1421, 1421, 1422, 1422, 1422, 1422, 1422, 1423, 1423, 1423, 1423, 1424, 1424, 1424, 1424, 1425, 1425, 1425, 1425, 1425, 1426, 1426, 1426, 1426, 1426, 1427, 1427, 1427, 1427, 1427, 1428, 1428, 1428, 1428, 1428, 1429, 1429, 1429, 1429, 1430, 1430, 1430, 1430, 1431, 1431, 1431, 1431, 1432, 1432, 1432, 1432, 1433, 1433, 1433, 1433, 1434, 1434, 1434, 1434, 1435, 1435, 1435, 1435, 1436, 1436, 1436, 1436, 1437, 1437, 1437, 1437, 1438, 1438, 1438, 1438, 1439, 1439, 1439, 1439, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383 } ; /* The intent behind this definition is that it'll catch * any uses of REJECT which flex missed. */ #define REJECT reject_used_but_not_detected #define yymore() yymore_used_but_not_detected #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET #line 1 "../src/lexer/XQLexer.l" #define INITIAL 0 /* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #line 21 "../src/lexer/XQLexer.l" #include #include #include #include "XQLexer.hpp" #include "../parser/XQParser.hpp" #ifdef XQ_DEBUG_LEXER #include #define CHANGE_STATE(state) BEGIN((state)); std::cerr << "Begin: " << xqGetStateName((state)) << ", " #define RECOGNIZE(token) { std::cerr << "Recognize: "#token << std::endl; return token; } #define RECOGNIZE_VALUE(token, value) { \ yylval.str = allocate_string((XMLCh*)(value)); \ std::cerr << "Recognize: \"" << UTF8(yylval.str) << "\" ("#token << ")" << std::endl; \ return token; \ } #define RECOGNIZE_VALUE_LEN(token, value, length) { \ yylval.str = allocate_string((XMLCh*)(value), (length)); \ std::cerr << "Recognize: \"" << UTF8(yylval.str) << "\" ("#token << ")" << std::endl; \ return token; \ } #define RECOGNIZE_VALUE_UNESCAPE(token, value, length, quot_char, unescape_brace, unescape_entities, unescape_cdata) { \ yylval.str = allocate_string_and_unescape((XMLCh*)(value), (length), (quot_char), (unescape_brace), (unescape_entities), (unescape_cdata)); \ std::cerr << "Recognize: \"" << UTF8(yylval.str) << "\" ("#token << ")" << std::endl; \ return token; \ } // yy_push_state pushes the current state and does a transition to the specified one; #define PUSH_AND_CHANGE_STATE(state) std::cerr << "Push: " << xqGetStateName(YYSTATE) << ", "; yy_push_state((state)); std::cerr << "Begin: " << xqGetStateName((state)) << ", " #define POP() yy_pop_state(); std::cerr << "Pop: " << xqGetStateName(YYSTATE) << ", " #else #define CHANGE_STATE(state) BEGIN((state)) #define RECOGNIZE(token) return token #define RECOGNIZE_VALUE(token, value) yylval.str = allocate_string((XMLCh*)(value)); return token #define RECOGNIZE_VALUE_LEN(token, value, length) yylval.str = allocate_string((XMLCh*)(value), (length)); return token #define RECOGNIZE_VALUE_UNESCAPE(token, value, length, quot_char, unescape_brace, unescape_entities, unescape_cdata) \ yylval.str = allocate_string_and_unescape((XMLCh*)(value), (length), (quot_char), (unescape_brace), (unescape_entities), (unescape_cdata)); return token // yy_push_state pushes the current state and does a transition to the specified one; #define PUSH_AND_CHANGE_STATE(state) yy_push_state((state)) #define POP() yy_pop_state() #endif /* UTF16 Surrogates, for chars above 0xFFFF */ /* [20] CData ::= (Char* - (Char* ']]>' Char*)) */ /* [16] PI ::= '' Char*)))? '?>' */ /* [66] PragmaContents ::= (Char* - (Char* '#)' Char*)) */ /* [104] DirCommentContents ::= ((Char - '-') | ('-' (Char - '-')))* */ /* from Namespace spec */ /* from XQuery spec */ /* [148] ElementContentChar ::= Char - [{}<&] */ /* [149] QuotAttrContentChar ::= Char - ["{}<&] */ /* [150] AposAttrContentChar ::= Char - ['{}<&] */ /* AttrValueTemplateChar ::= Char - [{}] */ #define YY_NEVER_INTERACTIVE 1 #define YY_STACK_USED 1 #define EXPR_COMMENT 1 #define PRAGMA 2 #define PRAGMAWS 3 #define PRAGMACONTENTS 4 #define START_TAG 5 #define END_TAG 6 #define ELEMENT_CONTENT 7 #define QUOT_ATTRIBUTE_CONTENT 8 #define APOS_ATTRIBUTE_CONTENT 9 #define PROCESSING_INSTRUCTION 10 #define PROCESSING_INSTRUCTION_CONTENT 11 #define XML_COMMENT 12 #define COMPUTED_CONSTRUCTOR 13 #define ATTR_VALUE_TEMPLATE 14 #define TEMPLATE_MODES 15 #define OUTPUT_METHOD 16 #define QNAMES 17 #line 177 "../src/lexer/XQLexer.l" const char *xqGetStateName(int state) { switch(state) { case INITIAL: return "INITIAL"; case EXPR_COMMENT: return "EXPR_COMMENT"; case PRAGMA: return "PRAGMA"; case PRAGMAWS: return "PRAGMAWS"; case PRAGMACONTENTS: return "PRAGMACONTENTS"; case START_TAG: return "START_TAG"; case END_TAG: return "END_TAG"; case ELEMENT_CONTENT: return "ELEMENT_CONTENT"; case QUOT_ATTRIBUTE_CONTENT: return "QUOT_ATTRIBUTE_CONTENT"; case APOS_ATTRIBUTE_CONTENT: return "APOS_ATTRIBUTE_CONTENT"; case PROCESSING_INSTRUCTION: return "PROCESSING_INSTRUCTION"; case PROCESSING_INSTRUCTION_CONTENT: return "PROCESSING_INSTRUCTION_CONTENT"; case XML_COMMENT: return "XML_COMMENT"; case COMPUTED_CONSTRUCTOR: return "COMPUTED_CONSTRUCTOR"; case ATTR_VALUE_TEMPLATE: return "ATTR_VALUE_TEMPLATE"; case TEMPLATE_MODES: return "TEMPLATE_MODES"; case OUTPUT_METHOD: return "OUTPUT_METHOD"; case QNAMES: return "QNAMES"; } return "unknown"; } void XQLexer::undoLessThan() { CHANGE_STATE(INITIAL); POP(); } #line 13963 "../src/lexer/XQLexer.cpp" /* Macros after this point can all be overridden by user definitions in * section 1. */ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus extern "C" int yywrap YY_PROTO(( void )); #else extern int yywrap YY_PROTO(( void )); #endif #endif #ifndef yytext_ptr static void yy_flex_strncpy YY_PROTO(( YY_CHAR *, yyconst YY_CHAR *, int )); #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen YY_PROTO(( yyconst YY_CHAR * )); #endif #ifndef YY_NO_INPUT #endif #if YY_STACK_USED #ifndef YY_NO_PUSH_STATE /* static void yy_push_state YY_PROTO(( int new_state )); */ #endif #ifndef YY_NO_POP_STATE /* static void yy_pop_state YY_PROTO(( void )); */ #endif #ifndef YY_NO_TOP_STATE /* static int yy_top_state YY_PROTO(( void )); */ #endif #else #define YY_NO_PUSH_STATE 1 #define YY_NO_POP_STATE 1 #define YY_NO_TOP_STATE 1 #endif #ifdef YY_MALLOC_DECL YY_MALLOC_DECL #else #if __STDC__ #ifndef __cplusplus #include #endif #else /* Just try to get by without declaring the routines. This will fail * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int) * or sizeof(void*) != sizeof(int). */ #endif #endif /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE #define YY_READ_BUF_SIZE 8192 #endif /* Copy whatever the last rule matched to the standard output. */ #ifndef ECHO #define ECHO LexerOutput( yytext, yyleng ) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, * is returned in "result". */ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ if ( (result = LexerInput( buf, max_size )) < 0 ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); #endif /* No semi-colon after return; correct usage is to write "yyterminate();" - * we don't want an extra ';' after the "return" because that will cause * some compilers to complain about unreachable statements. */ #ifndef yyterminate #define yyterminate() return YY_NULL #endif /* Number of entries by which start-condition stack grows. */ #ifndef YY_START_STACK_INCR #define YY_START_STACK_INCR 25 #endif /* Report a fatal error. */ #ifndef YY_FATAL_ERROR #define YY_FATAL_ERROR(msg) LexerError( msg ) #endif /* Default declaration of generated scanner - a define so the user can * easily add parameters. */ #ifndef YY_DECL #define YY_DECL int yyFlexLexer::yylex() #endif /* Code executed at the beginning of each rule, after yytext and yyleng * have been set up. */ #ifndef YY_USER_ACTION #define YY_USER_ACTION #endif /* Code executed at the end of each rule. */ #ifndef YY_BREAK #define YY_BREAK break; #endif #define YY_RULE_SETUP \ YY_USER_ACTION YY_DECL { register yy_state_type yy_current_state; register YY_CHAR *yy_cp, *yy_bp; register int yy_act; #line 209 "../src/lexer/XQLexer.l" if(firstToken_ != MYEOF) { int token = firstToken_; firstToken_ = MYEOF; RECOGNIZE(token); } switch(mode_) { case MODE_ATTR_VALUE_TEMPLATE: mode_ = MODE_NORMAL; CHANGE_STATE(ATTR_VALUE_TEMPLATE); break; case MODE_TEMPLATE_MODES: mode_ = MODE_NORMAL; CHANGE_STATE(TEMPLATE_MODES); break; case MODE_OUTPUT_METHOD: mode_ = MODE_NORMAL; CHANGE_STATE(OUTPUT_METHOD); break; case MODE_QNAMES: mode_ = MODE_NORMAL; CHANGE_STATE(QNAMES); break; case MODE_NORMAL: break; } #line 14119 "../src/lexer/XQLexer.cpp" if ( yy_init ) { yy_init = 0; #ifdef YY_USER_INIT YY_USER_INIT; #endif if ( ! yy_start ) yy_start = 1; /* first start state */ if ( ! yyin ) yyin = &std::cin; if ( ! yyout ) yyout = &std::cout; if ( ! yy_current_buffer ) yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); yy_load_buffer_state(); } while ( 1 ) /* loops until end-of-file is reached */ { yy_cp = yy_c_buf_p; /* Support of yytext. */ *yy_cp = yy_hold_char; /* yy_bp points to the position in yy_ch_buf of the start of * the current run. */ yy_bp = yy_cp; yy_current_state = yy_start; yy_match: do { register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; if ( yy_accept[yy_current_state] ) { yy_last_accepting_state = yy_current_state; yy_last_accepting_cpos = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 1384 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } while ( yy_current_state != 1383 ); yy_cp = yy_last_accepting_cpos; yy_current_state = yy_last_accepting_state; yy_find_action: yy_act = yy_accept[yy_current_state]; YY_DO_BEFORE_ACTION; do_action: /* This label is used only to access EOF actions. */ switch ( yy_act ) { /* beginning of action switch */ case 0: /* must back up */ /* undo the effects of YY_DO_BEFORE_ACTION */ *yy_cp = yy_hold_char; yy_cp = yy_last_accepting_cpos; yy_current_state = yy_last_accepting_state; goto yy_find_action; case 1: YY_RULE_SETUP #line 240 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_INTEGER_LITERAL_, yytext); YY_BREAK case 2: YY_RULE_SETUP #line 241 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_DECIMAL_LITERAL_, yytext); YY_BREAK case 3: YY_RULE_SETUP #line 242 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_DOUBLE_LITERAL_, yytext); YY_BREAK case 4: YY_RULE_SETUP #line 244 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE_UNESCAPE(_STRING_LITERAL_, yytext + 1, yyleng - 2, *yytext, false, !isXPath(), false); YY_BREAK case 5: YY_RULE_SETUP #line 245 "../src/lexer/XQLexer.l" { if(isXPath()) { RECOGNIZE_VALUE_UNESCAPE(_STRING_LITERAL_, yytext + 1, yyleng - 2, *yytext, false, false, false); } else { std::ostringstream oss; oss << "Bad escaping in string literal: " << UTF8((XMLCh*)yytext); return error(oss.str().c_str()); } } YY_BREAK case 6: YY_RULE_SETUP #line 255 "../src/lexer/XQLexer.l" /* Do nothing */ YY_BREAK case 7: YY_RULE_SETUP #line 257 "../src/lexer/XQLexer.l" beginComment(); PUSH_AND_CHANGE_STATE(EXPR_COMMENT); YY_BREAK case 8: YY_RULE_SETUP #line 258 "../src/lexer/XQLexer.l" /* Do nothing */ YY_BREAK case 9: YY_RULE_SETUP #line 259 "../src/lexer/XQLexer.l" endComment(); POP(); YY_BREAK case 10: YY_RULE_SETUP #line 261 "../src/lexer/XQLexer.l" RECOGNIZE(_MINUS_); YY_BREAK case 11: YY_RULE_SETUP #line 262 "../src/lexer/XQLexer.l" RECOGNIZE(_PLUS_); YY_BREAK case 12: YY_RULE_SETUP #line 263 "../src/lexer/XQLexer.l" RECOGNIZE(_EQUALS_); YY_BREAK case 13: YY_RULE_SETUP #line 264 "../src/lexer/XQLexer.l" RECOGNIZE(_SEMICOLON_); YY_BREAK case 14: YY_RULE_SETUP #line 265 "../src/lexer/XQLexer.l" RECOGNIZE(_COMMA_); YY_BREAK case 15: YY_RULE_SETUP #line 266 "../src/lexer/XQLexer.l" RECOGNIZE(_DOLLAR_); YY_BREAK case 16: YY_RULE_SETUP #line 267 "../src/lexer/XQLexer.l" RECOGNIZE(_COLON_EQUALS_); YY_BREAK case 17: YY_RULE_SETUP #line 268 "../src/lexer/XQLexer.l" RECOGNIZE(_LPAR_); YY_BREAK case 18: YY_RULE_SETUP #line 269 "../src/lexer/XQLexer.l" RECOGNIZE(_RPAR_); YY_BREAK case 19: YY_RULE_SETUP #line 270 "../src/lexer/XQLexer.l" RECOGNIZE(_ASTERISK_); YY_BREAK case 20: YY_RULE_SETUP #line 271 "../src/lexer/XQLexer.l" RECOGNIZE(_BAR_); YY_BREAK case 21: YY_RULE_SETUP #line 272 "../src/lexer/XQLexer.l" RECOGNIZE(_BANG_EQUALS_); YY_BREAK case 22: YY_RULE_SETUP #line 273 "../src/lexer/XQLexer.l" RECOGNIZE(_LESS_THAN_EQUALS_); YY_BREAK case 23: YY_RULE_SETUP #line 274 "../src/lexer/XQLexer.l" RECOGNIZE(_GREATER_THAN_); YY_BREAK case 24: YY_RULE_SETUP #line 275 "../src/lexer/XQLexer.l" RECOGNIZE(_GREATER_THAN_EQUALS_); YY_BREAK case 25: YY_RULE_SETUP #line 276 "../src/lexer/XQLexer.l" RECOGNIZE(_LESS_THAN_LESS_THAN_); YY_BREAK case 26: YY_RULE_SETUP #line 277 "../src/lexer/XQLexer.l" RECOGNIZE(_GREATER_THAN_GREATER_THAN_); YY_BREAK case 27: YY_RULE_SETUP #line 278 "../src/lexer/XQLexer.l" RECOGNIZE(_COLON_COLON_); YY_BREAK case 28: YY_RULE_SETUP #line 279 "../src/lexer/XQLexer.l" RECOGNIZE(_AT_SIGN_); YY_BREAK case 29: YY_RULE_SETUP #line 280 "../src/lexer/XQLexer.l" RECOGNIZE(_DOT_DOT_); YY_BREAK case 30: YY_RULE_SETUP #line 281 "../src/lexer/XQLexer.l" RECOGNIZE(_DOT_); YY_BREAK case 31: YY_RULE_SETUP #line 282 "../src/lexer/XQLexer.l" RECOGNIZE(_LSQUARE_); YY_BREAK case 32: YY_RULE_SETUP #line 283 "../src/lexer/XQLexer.l" RECOGNIZE(_RSQUARE_); YY_BREAK case 33: YY_RULE_SETUP #line 284 "../src/lexer/XQLexer.l" RECOGNIZE(_QUESTION_MARK_); YY_BREAK case 34: YY_RULE_SETUP #line 286 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_EXTERNAL_, yytext); YY_BREAK case 35: YY_RULE_SETUP #line 287 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_ASCENDING_, yytext); YY_BREAK case 36: YY_RULE_SETUP #line 288 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_DESCENDING_, yytext); YY_BREAK case 37: YY_RULE_SETUP #line 289 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_GREATEST_, yytext); YY_BREAK case 38: YY_RULE_SETUP #line 290 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_LEAST_, yytext); YY_BREAK case 39: YY_RULE_SETUP #line 291 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_COMMENT_, yytext); YY_BREAK case 40: YY_RULE_SETUP #line 292 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_DOCUMENT_NODE_, yytext); YY_BREAK case 41: YY_RULE_SETUP #line 293 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_IF_, yytext); YY_BREAK case 42: YY_RULE_SETUP #line 294 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_ITEM_, yytext); YY_BREAK case 43: YY_RULE_SETUP #line 295 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_NODE_, yytext); YY_BREAK case 44: YY_RULE_SETUP #line 296 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_SCHEMA_ATTRIBUTE_, yytext); YY_BREAK case 45: YY_RULE_SETUP #line 297 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_SCHEMA_ELEMENT_, yytext); YY_BREAK case 46: YY_RULE_SETUP #line 298 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_TEXT_, yytext); YY_BREAK case 47: YY_RULE_SETUP #line 299 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_EMPTY_SEQUENCE_, yytext); YY_BREAK case 48: YY_RULE_SETUP #line 300 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_VERSION_, yytext); YY_BREAK case 49: YY_RULE_SETUP #line 301 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_ENCODING_, yytext); YY_BREAK case 50: YY_RULE_SETUP #line 302 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_DECLARE_, yytext); YY_BREAK case 51: YY_RULE_SETUP #line 303 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_BOUNDARY_SPACE_, yytext); YY_BREAK case 52: YY_RULE_SETUP #line 304 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_PRESERVE_, yytext); YY_BREAK case 53: YY_RULE_SETUP #line 305 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_STRIP_, yytext); YY_BREAK case 54: YY_RULE_SETUP #line 306 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_DEFAULT_, yytext); YY_BREAK case 55: YY_RULE_SETUP #line 307 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_OPTION_, yytext); YY_BREAK case 56: YY_RULE_SETUP #line 308 "../src/lexer/XQLexer.l" { if(isFullText()) { RECOGNIZE_VALUE(_FT_OPTION_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 57: YY_RULE_SETUP #line 309 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_ORDERING_, yytext); YY_BREAK case 58: YY_RULE_SETUP #line 310 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_ORDERED_, yytext); YY_BREAK case 59: YY_RULE_SETUP #line 311 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_UNORDERED_, yytext); YY_BREAK case 60: YY_RULE_SETUP #line 312 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_EMPTY_, yytext); YY_BREAK case 61: YY_RULE_SETUP #line 313 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_COPY_NAMESPACES_, yytext); YY_BREAK case 62: YY_RULE_SETUP #line 314 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_NO_PRESERVE_, yytext); YY_BREAK case 63: YY_RULE_SETUP #line 315 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_INHERIT_, yytext); YY_BREAK case 64: YY_RULE_SETUP #line 316 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_NO_INHERIT_, yytext); YY_BREAK case 65: YY_RULE_SETUP #line 317 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_COLLATION_, yytext); YY_BREAK case 66: YY_RULE_SETUP #line 318 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_BASE_URI_, yytext); YY_BREAK case 67: YY_RULE_SETUP #line 319 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_IMPORT_, yytext); YY_BREAK case 68: YY_RULE_SETUP #line 320 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_SCHEMA_, yytext); YY_BREAK case 69: YY_RULE_SETUP #line 321 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_VARIABLE_, yytext); YY_BREAK case 70: YY_RULE_SETUP #line 322 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_CONSTRUCTION_, yytext); YY_BREAK case 71: YY_RULE_SETUP #line 323 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_AS_, yytext); YY_BREAK case 72: YY_RULE_SETUP #line 324 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_LAX_, yytext); YY_BREAK case 73: YY_RULE_SETUP #line 325 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_STRICT_, yytext); YY_BREAK case 74: YY_RULE_SETUP #line 326 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_RETURN_, yytext); YY_BREAK case 75: YY_RULE_SETUP #line 327 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_FOR_, yytext); YY_BREAK case 76: YY_RULE_SETUP #line 328 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_IN_, yytext); YY_BREAK case 77: YY_RULE_SETUP #line 329 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_BY_, yytext); YY_BREAK case 78: YY_RULE_SETUP #line 330 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_SOME_, yytext); YY_BREAK case 79: YY_RULE_SETUP #line 331 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_EVERY_, yytext); YY_BREAK case 80: YY_RULE_SETUP #line 332 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_SATISFIES_, yytext); YY_BREAK case 81: YY_RULE_SETUP #line 333 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_THEN_, yytext); YY_BREAK case 82: YY_RULE_SETUP #line 334 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_ELSE_, yytext); YY_BREAK case 83: YY_RULE_SETUP #line 335 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_OR_, yytext); YY_BREAK case 84: YY_RULE_SETUP #line 336 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_AND_, yytext); YY_BREAK case 85: YY_RULE_SETUP #line 337 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_TO_, yytext); YY_BREAK case 86: YY_RULE_SETUP #line 338 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_DIV_, yytext); YY_BREAK case 87: YY_RULE_SETUP #line 339 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_IDIV_, yytext); YY_BREAK case 88: YY_RULE_SETUP #line 340 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_MOD_, yytext); YY_BREAK case 89: YY_RULE_SETUP #line 341 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_UNION_, yytext); YY_BREAK case 90: YY_RULE_SETUP #line 342 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_INTERSECT_, yytext); YY_BREAK case 91: YY_RULE_SETUP #line 343 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_EXCEPT_, yytext); YY_BREAK case 92: YY_RULE_SETUP #line 344 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_INSTANCE_, yytext); YY_BREAK case 93: YY_RULE_SETUP #line 345 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_OF_, yytext); YY_BREAK case 94: YY_RULE_SETUP #line 346 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_TREAT_, yytext); YY_BREAK case 95: YY_RULE_SETUP #line 347 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_CASTABLE_, yytext); YY_BREAK case 96: YY_RULE_SETUP #line 348 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_CAST_, yytext); YY_BREAK case 97: YY_RULE_SETUP #line 349 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_EQ_, yytext); YY_BREAK case 98: YY_RULE_SETUP #line 350 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_NE_, yytext); YY_BREAK case 99: YY_RULE_SETUP #line 351 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_LT_, yytext); YY_BREAK case 100: YY_RULE_SETUP #line 352 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_LE_, yytext); YY_BREAK case 101: YY_RULE_SETUP #line 353 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_GT_, yytext); YY_BREAK case 102: YY_RULE_SETUP #line 354 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_GE_, yytext); YY_BREAK case 103: YY_RULE_SETUP #line 355 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_IS_, yytext); YY_BREAK case 104: YY_RULE_SETUP #line 356 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_VALIDATE_, yytext); YY_BREAK case 105: YY_RULE_SETUP #line 357 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_CHILD_, yytext); YY_BREAK case 106: YY_RULE_SETUP #line 358 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_DESCENDANT_, yytext); YY_BREAK case 107: YY_RULE_SETUP #line 359 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_SELF_, yytext); YY_BREAK case 108: YY_RULE_SETUP #line 360 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_DESCENDANT_OR_SELF_, yytext); YY_BREAK case 109: YY_RULE_SETUP #line 361 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_FOLLOWING_SIBLING_, yytext); YY_BREAK case 110: YY_RULE_SETUP #line 362 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_FOLLOWING_, yytext); YY_BREAK case 111: YY_RULE_SETUP #line 363 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_PARENT_, yytext); YY_BREAK case 112: YY_RULE_SETUP #line 364 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_ANCESTOR_, yytext); YY_BREAK case 113: YY_RULE_SETUP #line 365 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_PRECEDING_SIBLING_, yytext); YY_BREAK case 114: YY_RULE_SETUP #line 366 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_PRECEDING_, yytext); YY_BREAK case 115: YY_RULE_SETUP #line 367 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_ANCESTOR_OR_SELF_, yytext); YY_BREAK case 116: YY_RULE_SETUP #line 368 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_DOCUMENT_, yytext); YY_BREAK case 117: YY_RULE_SETUP #line 369 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_WEIGHT_, yytext); YY_BREAK case 118: YY_RULE_SETUP #line 370 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_NOT_, yytext); YY_BREAK case 119: YY_RULE_SETUP #line 371 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_LOWERCASE_, yytext); YY_BREAK case 120: YY_RULE_SETUP #line 372 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_UPPERCASE_, yytext); YY_BREAK case 121: YY_RULE_SETUP #line 373 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_SENSITIVE_, yytext); YY_BREAK case 122: YY_RULE_SETUP #line 374 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_INSENSITIVE_, yytext); YY_BREAK case 123: YY_RULE_SETUP #line 375 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_DIACRITICS_, yytext); YY_BREAK case 124: YY_RULE_SETUP #line 376 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_STEMMING_, yytext); YY_BREAK case 125: YY_RULE_SETUP #line 377 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_THESAURUS_, yytext); YY_BREAK case 126: YY_RULE_SETUP #line 378 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_RELATIONSHIP_, yytext); YY_BREAK case 127: YY_RULE_SETUP #line 379 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_LEVELS_, yytext); YY_BREAK case 128: YY_RULE_SETUP #line 380 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_STOP_, yytext); YY_BREAK case 129: YY_RULE_SETUP #line 381 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_WORDS_, yytext); YY_BREAK case 130: YY_RULE_SETUP #line 382 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_LANGUAGE_, yytext); YY_BREAK case 131: YY_RULE_SETUP #line 383 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_WILDCARDS_, yytext); YY_BREAK case 132: YY_RULE_SETUP #line 384 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_ENTIRE_, yytext); YY_BREAK case 133: YY_RULE_SETUP #line 385 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_CONTENT_, yytext); YY_BREAK case 134: YY_RULE_SETUP #line 386 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_ANY_, yytext); YY_BREAK case 135: YY_RULE_SETUP #line 387 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_ALL_, yytext); YY_BREAK case 136: YY_RULE_SETUP #line 388 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_PHRASE_, yytext); YY_BREAK case 137: YY_RULE_SETUP #line 389 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_WORD_, yytext); YY_BREAK case 138: YY_RULE_SETUP #line 390 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_EXACTLY_, yytext); YY_BREAK case 139: YY_RULE_SETUP #line 391 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_FROM_, yytext); YY_BREAK case 140: YY_RULE_SETUP #line 392 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_DISTANCE_, yytext); YY_BREAK case 141: YY_RULE_SETUP #line 393 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_WINDOW_, yytext); YY_BREAK case 142: YY_RULE_SETUP #line 394 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_OCCURS_, yytext); YY_BREAK case 143: YY_RULE_SETUP #line 395 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_TIMES_, yytext); YY_BREAK case 144: YY_RULE_SETUP #line 396 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_SAME_, yytext); YY_BREAK case 145: YY_RULE_SETUP #line 397 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_DIFFERENT_, yytext); YY_BREAK case 146: YY_RULE_SETUP #line 398 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_SENTENCES_, yytext); YY_BREAK case 147: YY_RULE_SETUP #line 399 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_PARAGRAPHS_, yytext); YY_BREAK case 148: YY_RULE_SETUP #line 400 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_SENTENCE_, yytext); YY_BREAK case 149: YY_RULE_SETUP #line 401 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_PARAGRAPH_, yytext); YY_BREAK case 150: YY_RULE_SETUP #line 402 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_TYPE_, yytext); YY_BREAK case 151: YY_RULE_SETUP #line 403 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_START_, yytext); YY_BREAK case 152: YY_RULE_SETUP #line 404 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_END_, yytext); YY_BREAK case 153: YY_RULE_SETUP #line 405 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_MOST_, yytext); YY_BREAK case 154: YY_RULE_SETUP #line 406 "../src/lexer/XQLexer.l" { if(isUpdate()) { RECOGNIZE_VALUE(_REVALIDATION_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 155: YY_RULE_SETUP #line 407 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_SKIP_, yytext); YY_BREAK case 156: YY_RULE_SETUP #line 408 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_VALUE_, yytext); YY_BREAK case 157: YY_RULE_SETUP #line 409 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_FIRST_, yytext); YY_BREAK case 158: YY_RULE_SETUP #line 410 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_LAST_, yytext); YY_BREAK case 159: YY_RULE_SETUP #line 411 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_INTO_, yytext); YY_BREAK case 160: YY_RULE_SETUP #line 412 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_AFTER_, yytext); YY_BREAK case 161: YY_RULE_SETUP #line 413 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_BEFORE_, yytext); YY_BREAK case 162: YY_RULE_SETUP #line 414 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_MODIFY_, yytext); YY_BREAK case 163: YY_RULE_SETUP #line 415 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_NODES_, yytext); YY_BREAK case 164: YY_RULE_SETUP #line 416 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_ID_, yytext); YY_BREAK case 165: YY_RULE_SETUP #line 417 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_KEY_, yytext); YY_BREAK case 166: YY_RULE_SETUP #line 418 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_NO_, yytext); YY_BREAK case 167: YY_RULE_SETUP #line 419 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_WITH_, yytext); YY_BREAK case 168: YY_RULE_SETUP #line 421 "../src/lexer/XQLexer.l" { if(!isXPath() && !isExtensions() && lookAhead() == _COLON_COLON_) { RECOGNIZE_VALUE(_QNAME_, yytext); } else { CHANGE_STATE(COMPUTED_CONSTRUCTOR); RECOGNIZE_VALUE(_NAMESPACE_, yytext); } } YY_BREAK case 169: YY_RULE_SETUP #line 429 "../src/lexer/XQLexer.l" { if(isExtensions()) { RECOGNIZE_VALUE(_TEMPLATE_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 170: YY_RULE_SETUP #line 436 "../src/lexer/XQLexer.l" { if(isExtensions()) { RECOGNIZE_VALUE(_MATCHES_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 171: YY_RULE_SETUP #line 443 "../src/lexer/XQLexer.l" { if(isExtensions()) { RECOGNIZE_VALUE(_NAME_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 172: YY_RULE_SETUP #line 450 "../src/lexer/XQLexer.l" { if(isExtensions()) { RECOGNIZE_VALUE(_CALL_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 173: YY_RULE_SETUP #line 457 "../src/lexer/XQLexer.l" { if(isExtensions()) { RECOGNIZE_VALUE(_APPLY_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 174: YY_RULE_SETUP #line 464 "../src/lexer/XQLexer.l" { if(isExtensions()) { RECOGNIZE_VALUE(_TEMPLATES_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 175: YY_RULE_SETUP #line 471 "../src/lexer/XQLexer.l" { if(isExtensions()) { RECOGNIZE_VALUE(_MODE_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 176: YY_RULE_SETUP #line 478 "../src/lexer/XQLexer.l" { if(isVersion3()) { RECOGNIZE_VALUE(_FUNCTION_EXT_, yytext); } else { RECOGNIZE_VALUE(_FUNCTION_, yytext); } } YY_BREAK case 177: YY_RULE_SETUP #line 485 "../src/lexer/XQLexer.l" { if(isVersion3()) { RECOGNIZE(_HASH_); } else { return error("Unrecognized token '#'"); } } YY_BREAK case 178: YY_RULE_SETUP #line 492 "../src/lexer/XQLexer.l" { if(isVersion3() && lookAhead() == _DOLLAR_) { RECOGNIZE_VALUE(_COUNT_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 179: YY_RULE_SETUP #line 499 "../src/lexer/XQLexer.l" { if(isVersion3()) { RECOGNIZE_VALUE(_PRIVATE_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 180: YY_RULE_SETUP #line 506 "../src/lexer/XQLexer.l" { if(isVersion3()) { RECOGNIZE_VALUE(_PUBLIC_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 181: YY_RULE_SETUP #line 513 "../src/lexer/XQLexer.l" { if(isVersion3()) { RECOGNIZE_VALUE(_DETERMINISTIC_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 182: YY_RULE_SETUP #line 520 "../src/lexer/XQLexer.l" { if(isVersion3()) { RECOGNIZE_VALUE(_NONDETERMINISTIC_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 183: YY_RULE_SETUP #line 527 "../src/lexer/XQLexer.l" { if(isVersion3()) { RECOGNIZE_VALUE(_NAMESPACE_NODE_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 184: YY_RULE_SETUP #line 535 "../src/lexer/XQLexer.l" { if(isXQuery()) { RECOGNIZE_VALUE(_LET_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 185: YY_RULE_SETUP #line 542 "../src/lexer/XQLexer.l" { if(isXQuery()) { RECOGNIZE_VALUE(_WHERE_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 186: YY_RULE_SETUP #line 549 "../src/lexer/XQLexer.l" { if(isXQuery()) { RECOGNIZE_VALUE(_ORDER_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 187: YY_RULE_SETUP #line 556 "../src/lexer/XQLexer.l" { if(isXQuery()) { RECOGNIZE_VALUE(_STABLE_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 188: YY_RULE_SETUP #line 563 "../src/lexer/XQLexer.l" { if(isXQuery()) { RECOGNIZE_VALUE(_TYPESWITCH_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 189: YY_RULE_SETUP #line 571 "../src/lexer/XQLexer.l" { if(isFullText()) { RECOGNIZE_VALUE(_SCORE_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 190: YY_RULE_SETUP #line 578 "../src/lexer/XQLexer.l" { if(isFullText()) { RECOGNIZE_VALUE(_CONTAINS_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 191: YY_RULE_SETUP #line 585 "../src/lexer/XQLexer.l" { if(isFullText()) { RECOGNIZE_VALUE(_FTOR_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 192: YY_RULE_SETUP #line 592 "../src/lexer/XQLexer.l" { if(isFullText()) { RECOGNIZE_VALUE(_FTAND_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 193: YY_RULE_SETUP #line 599 "../src/lexer/XQLexer.l" { if(isFullText()) { RECOGNIZE_VALUE(_FTNOT_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 194: YY_RULE_SETUP #line 607 "../src/lexer/XQLexer.l" { if(isUpdate()) { RECOGNIZE_VALUE(_UPDATING_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 195: YY_RULE_SETUP #line 614 "../src/lexer/XQLexer.l" { if(isUpdate()) { RECOGNIZE_VALUE(_INSERT_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 196: YY_RULE_SETUP #line 621 "../src/lexer/XQLexer.l" { if(isUpdate()) { RECOGNIZE_VALUE(_DELETE_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 197: YY_RULE_SETUP #line 628 "../src/lexer/XQLexer.l" { if(isUpdate()) { RECOGNIZE_VALUE(_REPLACE_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 198: YY_RULE_SETUP #line 635 "../src/lexer/XQLexer.l" { if(isUpdate()) { RECOGNIZE_VALUE(_RENAME_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 199: YY_RULE_SETUP #line 642 "../src/lexer/XQLexer.l" { if(isUpdate()) { RECOGNIZE_VALUE(_COPY_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 200: YY_RULE_SETUP #line 650 "../src/lexer/XQLexer.l" { int tok = lookAhead(); if(tok == _VERSION_ || (isVersion3() && tok == _ENCODING_)) { RECOGNIZE_VALUE(_XQUERY_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 201: YY_RULE_SETUP #line 658 "../src/lexer/XQLexer.l" { int tok = lookAhead(); if(tok == _NAMESPACE_ || tok == _STRING_LITERAL_) { RECOGNIZE_VALUE(_MODULE_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 202: YY_RULE_SETUP #line 666 "../src/lexer/XQLexer.l" { if(lookAhead() == _CONTENT_) { RECOGNIZE_VALUE(_WITHOUT_C_, yytext); } else { RECOGNIZE_VALUE(_WITHOUT_, yytext); } } YY_BREAK case 203: YY_RULE_SETUP #line 673 "../src/lexer/XQLexer.l" { int tok = lookAhead(); if(tok == _SENSITIVE_ || tok == _INSENSITIVE_) { RECOGNIZE_VALUE(_CASE_S_, yytext); } else { RECOGNIZE_VALUE(_CASE_, yytext); } } YY_BREAK case 204: YY_RULE_SETUP #line 681 "../src/lexer/XQLexer.l" { if(isFullText()) { RECOGNIZE_VALUE(_USING_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } YY_BREAK case 205: YY_RULE_SETUP #line 688 "../src/lexer/XQLexer.l" { int tok = lookAhead(); if(tok == _LEAST_ || tok == _MOST_) { RECOGNIZE_VALUE(_AT_LM_, yytext); } else { RECOGNIZE_VALUE(_AT_, yytext); } } YY_BREAK case 206: YY_RULE_SETUP #line 697 "../src/lexer/XQLexer.l" CHANGE_STATE(COMPUTED_CONSTRUCTOR); RECOGNIZE_VALUE(_ELEMENT_, yytext); YY_BREAK case 207: YY_RULE_SETUP #line 698 "../src/lexer/XQLexer.l" CHANGE_STATE(COMPUTED_CONSTRUCTOR); RECOGNIZE_VALUE(_ATTRIBUTE_, yytext); YY_BREAK case 208: YY_RULE_SETUP #line 699 "../src/lexer/XQLexer.l" CHANGE_STATE(COMPUTED_CONSTRUCTOR); RECOGNIZE_VALUE(_PROCESSING_INSTRUCTION_, yytext); YY_BREAK case 209: YY_RULE_SETUP #line 700 "../src/lexer/XQLexer.l" { CHANGE_STATE(INITIAL); if(lookAhead() == _LBRACE_) { RECOGNIZE_VALUE(_CONSTR_QNAME_, yytext); } else { undoUserAction(); yyless(0); } } YY_BREAK case 210: YY_RULE_SETUP #line 709 "../src/lexer/XQLexer.l" { CHANGE_STATE(INITIAL); undoUserAction(); yyless(0); } YY_BREAK case 211: YY_RULE_SETUP #line 716 "../src/lexer/XQLexer.l" PUSH_AND_CHANGE_STATE(INITIAL); RECOGNIZE(_LBRACE_); YY_BREAK case 212: YY_RULE_SETUP #line 718 "../src/lexer/XQLexer.l" return error("It is an error for a right brace to appear in element or attribute content"); YY_BREAK case 213: YY_RULE_SETUP #line 719 "../src/lexer/XQLexer.l" POP(); RECOGNIZE(_RBRACE_); YY_BREAK case 214: YY_RULE_SETUP #line 721 "../src/lexer/XQLexer.l" return error("It is an error for an ampersand to appear in element or attribute content"); YY_BREAK case 215: YY_RULE_SETUP #line 723 "../src/lexer/XQLexer.l" PUSH_AND_CHANGE_STATE(START_TAG); RECOGNIZE(_LESS_THAN_OP_OR_TAG_); YY_BREAK case 216: YY_RULE_SETUP #line 724 "../src/lexer/XQLexer.l" return error("It is an error for a left angle bracket to appear in attribute content"); YY_BREAK case 217: YY_RULE_SETUP #line 726 "../src/lexer/XQLexer.l" CHANGE_STATE(ELEMENT_CONTENT); RECOGNIZE(_START_TAG_CLOSE_); YY_BREAK case 218: YY_RULE_SETUP #line 727 "../src/lexer/XQLexer.l" POP(); RECOGNIZE(_END_TAG_CLOSE_); YY_BREAK case 219: YY_RULE_SETUP #line 729 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE_UNESCAPE(_QUOT_ATTR_CONTENT_, yytext, yyleng, 0, true, false, false); YY_BREAK case 220: YY_RULE_SETUP #line 731 "../src/lexer/XQLexer.l" CHANGE_STATE(QUOT_ATTRIBUTE_CONTENT); RECOGNIZE(_OPEN_QUOT_); YY_BREAK case 221: YY_RULE_SETUP #line 732 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE_UNESCAPE(_QUOT_ATTR_CONTENT_, yytext, yyleng, '"', true, true, false); YY_BREAK case 222: YY_RULE_SETUP #line 733 "../src/lexer/XQLexer.l" CHANGE_STATE(START_TAG); RECOGNIZE(_CLOSE_QUOT_); YY_BREAK case 223: YY_RULE_SETUP #line 735 "../src/lexer/XQLexer.l" CHANGE_STATE(APOS_ATTRIBUTE_CONTENT); RECOGNIZE(_OPEN_APOS_); YY_BREAK case 224: YY_RULE_SETUP #line 736 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE_UNESCAPE(_APOS_ATTR_CONTENT_, yytext, yyleng, '\'', true, true, false); YY_BREAK case 225: YY_RULE_SETUP #line 737 "../src/lexer/XQLexer.l" CHANGE_STATE(START_TAG); RECOGNIZE(_CLOSE_APOS_); YY_BREAK case 226: YY_RULE_SETUP #line 739 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_WHITESPACE_ELEMENT_CONTENT_, yytext); YY_BREAK case 227: YY_RULE_SETUP #line 740 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE_UNESCAPE(_ELEMENT_CONTENT_, yytext, yyleng, 0, true, true, true); YY_BREAK case 228: YY_RULE_SETUP #line 742 "../src/lexer/XQLexer.l" POP(); RECOGNIZE(_EMPTY_TAG_CLOSE_); YY_BREAK case 229: YY_RULE_SETUP #line 744 "../src/lexer/XQLexer.l" CHANGE_STATE(END_TAG); RECOGNIZE(_END_TAG_OPEN_); YY_BREAK case 230: YY_RULE_SETUP #line 746 "../src/lexer/XQLexer.l" RECOGNIZE(_VALUE_INDICATOR_); YY_BREAK case 231: YY_RULE_SETUP #line 748 "../src/lexer/XQLexer.l" CHANGE_STATE(PRAGMA); RECOGNIZE(_PRAGMA_OPEN_); YY_BREAK case 232: YY_RULE_SETUP #line 749 "../src/lexer/XQLexer.l" RECOGNIZE(_WHITESPACE_); YY_BREAK case 233: YY_RULE_SETUP #line 750 "../src/lexer/XQLexer.l" CHANGE_STATE(PRAGMAWS); RECOGNIZE_VALUE(_QNAME_, yytext); YY_BREAK case 234: YY_RULE_SETUP #line 751 "../src/lexer/XQLexer.l" CHANGE_STATE(INITIAL); RECOGNIZE_VALUE_LEN(_PRAGMA_CONTENT_, yytext, yyleng - 2); YY_BREAK case 235: YY_RULE_SETUP #line 752 "../src/lexer/XQLexer.l" CHANGE_STATE(PRAGMACONTENTS); RECOGNIZE(_WHITESPACE_); YY_BREAK case 236: YY_RULE_SETUP #line 753 "../src/lexer/XQLexer.l" CHANGE_STATE(INITIAL); RECOGNIZE_VALUE_LEN(_PRAGMA_CONTENT_, yytext, yyleng - 2); YY_BREAK case 237: YY_RULE_SETUP #line 755 "../src/lexer/XQLexer.l" PUSH_AND_CHANGE_STATE(PROCESSING_INSTRUCTION); RECOGNIZE(_PI_START_); YY_BREAK case 238: YY_RULE_SETUP #line 756 "../src/lexer/XQLexer.l" return error("The target of a processing instruction must not be 'XML'"); YY_BREAK case 239: YY_RULE_SETUP #line 757 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_PI_TARGET_, yytext); YY_BREAK case 240: YY_RULE_SETUP #line 758 "../src/lexer/XQLexer.l" CHANGE_STATE(PROCESSING_INSTRUCTION_CONTENT); RECOGNIZE(_WHITESPACE_); YY_BREAK case 241: YY_RULE_SETUP #line 759 "../src/lexer/XQLexer.l" POP(); RECOGNIZE_VALUE_LEN(_PI_CONTENT_, yytext, yyleng - 2); YY_BREAK case 242: YY_RULE_SETUP #line 760 "../src/lexer/XQLexer.l" POP(); RECOGNIZE_VALUE_LEN(_PI_CONTENT_, yytext, yyleng - 2); YY_BREAK case 243: YY_RULE_SETUP #line 762 "../src/lexer/XQLexer.l" PUSH_AND_CHANGE_STATE(XML_COMMENT); RECOGNIZE(_XML_COMMENT_START_); YY_BREAK case 244: YY_RULE_SETUP #line 763 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_XML_COMMENT_CONTENT_, yytext); YY_BREAK case 245: YY_RULE_SETUP #line 764 "../src/lexer/XQLexer.l" return error("It is an error for a double dash to appear in an XML comment"); YY_BREAK case 246: YY_RULE_SETUP #line 765 "../src/lexer/XQLexer.l" POP(); RECOGNIZE(_XML_COMMENT_END_); YY_BREAK case 247: YY_RULE_SETUP #line 767 "../src/lexer/XQLexer.l" RECOGNIZE(_SLASH_); YY_BREAK case 248: YY_RULE_SETUP #line 768 "../src/lexer/XQLexer.l" RECOGNIZE(_SLASH_SLASH_); YY_BREAK case 249: YY_RULE_SETUP #line 770 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_XMLNS_QNAME_, yytext); YY_BREAK case 250: YY_RULE_SETUP #line 771 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_QNAME_, yytext); YY_BREAK case 251: YY_RULE_SETUP #line 773 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE_LEN(_NCNAME_COLON_STAR_, yytext, yyleng - 2); YY_BREAK case 252: YY_RULE_SETUP #line 774 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_STAR_COLON_NCNAME_, yytext + 2); YY_BREAK case 253: YY_RULE_SETUP #line 776 "../src/lexer/XQLexer.l" RECOGNIZE(_WHITESPACE_); YY_BREAK case 254: YY_RULE_SETUP #line 778 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_QNAME_, yytext); YY_BREAK case 255: YY_RULE_SETUP #line 779 "../src/lexer/XQLexer.l" RECOGNIZE(_HASH_DEFAULT_); YY_BREAK case 256: YY_RULE_SETUP #line 780 "../src/lexer/XQLexer.l" RECOGNIZE(_HASH_ALL_); YY_BREAK case 257: YY_RULE_SETUP #line 781 "../src/lexer/XQLexer.l" RECOGNIZE(_HASH_CURRENT_); YY_BREAK case 258: YY_RULE_SETUP #line 782 "../src/lexer/XQLexer.l" /* Do nothing */ YY_BREAK case 259: YY_RULE_SETUP #line 784 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_XML_, yytext); YY_BREAK case 260: YY_RULE_SETUP #line 785 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_HTML_, yytext); YY_BREAK case 261: YY_RULE_SETUP #line 786 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_XHTML_, yytext); YY_BREAK case 262: YY_RULE_SETUP #line 787 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_TEXT_, yytext); YY_BREAK case 263: YY_RULE_SETUP #line 788 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_QNAME_, yytext); YY_BREAK case 264: YY_RULE_SETUP #line 789 "../src/lexer/XQLexer.l" /* Do nothing */ YY_BREAK case 265: YY_RULE_SETUP #line 791 "../src/lexer/XQLexer.l" RECOGNIZE_VALUE(_QNAME_, yytext); YY_BREAK case 266: YY_RULE_SETUP #line 792 "../src/lexer/XQLexer.l" /* Do nothing */ YY_BREAK case 267: YY_RULE_SETUP #line 794 "../src/lexer/XQLexer.l" { std::ostringstream oss; oss << "Invalid literal found: " << UTF8((XMLCh*)yytext); return error(oss.str().c_str()); } YY_BREAK case 268: YY_RULE_SETUP #line 800 "../src/lexer/XQLexer.l" { std::ostringstream oss; oss << "Unrecognized character '" << UTF8((XMLCh*)yytext) << "' (" << yytext[0] << ")"; return error(oss.str().c_str()); } YY_BREAK case 269: YY_RULE_SETUP #line 806 "../src/lexer/XQLexer.l" YY_FATAL_ERROR( "flex scanner jammed" ); YY_BREAK #line 15803 "../src/lexer/XQLexer.cpp" case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(EXPR_COMMENT): case YY_STATE_EOF(PRAGMA): case YY_STATE_EOF(PRAGMAWS): case YY_STATE_EOF(PRAGMACONTENTS): case YY_STATE_EOF(START_TAG): case YY_STATE_EOF(END_TAG): case YY_STATE_EOF(ELEMENT_CONTENT): case YY_STATE_EOF(QUOT_ATTRIBUTE_CONTENT): case YY_STATE_EOF(APOS_ATTRIBUTE_CONTENT): case YY_STATE_EOF(PROCESSING_INSTRUCTION): case YY_STATE_EOF(PROCESSING_INSTRUCTION_CONTENT): case YY_STATE_EOF(XML_COMMENT): case YY_STATE_EOF(COMPUTED_CONSTRUCTOR): case YY_STATE_EOF(ATTR_VALUE_TEMPLATE): case YY_STATE_EOF(TEMPLATE_MODES): case YY_STATE_EOF(OUTPUT_METHOD): case YY_STATE_EOF(QNAMES): yyterminate(); case YY_END_OF_BUFFER: { /* Amount of text matched not including the EOB char. */ int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1; /* Undo the effects of YY_DO_BEFORE_ACTION. */ *yy_cp = yy_hold_char; YY_RESTORE_YY_MORE_OFFSET if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW ) { /* We're scanning a new file or input source. It's * possible that this happened because the user * just pointed yyin at a new source and called * yylex(). If so, then we have to assure * consistency between yy_current_buffer and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a * back-up) that will match for the new input source. */ yy_n_chars = yy_current_buffer->yy_n_chars; yy_current_buffer->yy_input_file = yyin; yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL; } /* Note that here we test for yy_c_buf_p "<=" to the position * of the first EOB in the buffer, since yy_c_buf_p will * already have been incremented past the NUL character * (since all states make transitions on EOB to the * end-of-buffer state). Contrast this with the test * in input(). */ if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] ) { /* This was really a NUL. */ yy_state_type yy_next_state; yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state(); /* Okay, we're now positioned to make the NUL * transition. We couldn't have * yy_get_previous_state() go ahead and do it * for us because it doesn't know how to deal * with the possibility of jamming (and we don't * want to build jamming into it because then it * will run more slowly). */ yy_next_state = yy_try_NUL_trans( yy_current_state ); yy_bp = yytext_ptr + YY_MORE_ADJ; if ( yy_next_state ) { /* Consume the NUL. */ yy_cp = ++yy_c_buf_p; yy_current_state = yy_next_state; goto yy_match; } else { yy_cp = yy_last_accepting_cpos; yy_current_state = yy_last_accepting_state; goto yy_find_action; } } else switch ( yy_get_next_buffer() ) { case EOB_ACT_END_OF_FILE: { yy_did_buffer_switch_on_eof = 0; if ( yywrap() ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * yytext, we can now set up * yy_c_buf_p so that if some total * hoser (like flex itself) wants to * call the scanner after we return the * YY_NULL, it'll still work - another * YY_NULL will get returned. */ yy_c_buf_p = yytext_ptr + YY_MORE_ADJ; yy_act = YY_STATE_EOF(YY_START); goto do_action; } else { if ( ! yy_did_buffer_switch_on_eof ) YY_NEW_FILE; } break; } case EOB_ACT_CONTINUE_SCAN: yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state(); yy_cp = yy_c_buf_p; yy_bp = yytext_ptr + YY_MORE_ADJ; goto yy_match; case EOB_ACT_LAST_MATCH: yy_c_buf_p = &yy_current_buffer->yy_ch_buf[yy_n_chars]; yy_current_state = yy_get_previous_state(); yy_cp = yy_c_buf_p; yy_bp = yytext_ptr + YY_MORE_ADJ; goto yy_find_action; } break; } default: YY_FATAL_ERROR( "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ } /* end of yylex */ yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ) { yyin = arg_yyin; yyout = arg_yyout; yy_c_buf_p = 0; yy_init = 1; yy_start = 0; yy_flex_debug = 0; yylineno = 1; // this will only get updated if %option yylineno yy_did_buffer_switch_on_eof = 0; yy_looking_for_trail_begin = 0; yy_more_flag = 0; yy_more_len = 0; yy_more_offset = yy_prev_more_offset = 0; yy_start_stack_ptr = yy_start_stack_depth = 0; yy_start_stack = 0; yy_current_buffer = 0; #ifdef YY_USES_REJECT yy_state_buf = new yy_state_type[YY_BUF_SIZE + 2]; #else yy_state_buf = 0; #endif } yyFlexLexer::~yyFlexLexer() { delete [] yy_state_buf; yy_delete_buffer( yy_current_buffer ); if(yy_start_stack) yy_flex_free(yy_start_stack); } #ifdef YY_INTERACTIVE int yyFlexLexer::LexerInput( YY_CHAR* buf, int /* max_size */ ) #else int yyFlexLexer::LexerInput( YY_CHAR* buf, int max_size ) #endif { if ( yyin->eof() || yyin->fail() ) return 0; #ifdef YY_INTERACTIVE (void) yyin->read((char *) buf, sizeof( YY_CHAR ) ); if ( yyin->eof() ) return 0; if ( yyin->bad() ) return -1; return 1; #else (void) yyin->read((char *) buf, max_size * sizeof( YY_CHAR ) ); if ( yyin->bad() ) return -1; else return ( yyin->gcount() / sizeof( YY_CHAR ) ); #endif } void yyFlexLexer::LexerOutput( const YY_CHAR* buf, int size ) { (void) yyout->write((char *) buf, size * sizeof( YY_CHAR ) ); } /* yy_get_next_buffer - try to read in a new buffer * * Returns a code representing an action: * EOB_ACT_LAST_MATCH - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position * EOB_ACT_END_OF_FILE - end of file */ int yyFlexLexer::yy_get_next_buffer() { register YY_CHAR *dest = yy_current_buffer->yy_ch_buf; register YY_CHAR *source = yytext_ptr; register int number_to_move, i; int ret_val; if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] ) YY_FATAL_ERROR( "fatal flex scanner internal error--end of buffer missed" ); if ( yy_current_buffer->yy_fill_buffer == 0 ) { /* Don't try to fill the buffer, so this is an EOF. */ if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 ) { /* We matched a single character, the EOB, so * treat this as a final EOF. */ return EOB_ACT_END_OF_FILE; } else { /* We matched some text prior to the EOB, first * process it. */ return EOB_ACT_LAST_MATCH; } } /* Try to read more data. */ /* First move last chars to start of buffer. */ number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1; for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING ) /* don't do the read, it's not guaranteed to return an EOF, * just force an EOF */ yy_current_buffer->yy_n_chars = yy_n_chars = 0; else { int num_to_read = yy_current_buffer->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) { /* Not enough room in the buffer - grow it. */ #ifdef YY_USES_REJECT YY_FATAL_ERROR( "input buffer overflow, can't enlarge buffer because scanner uses REJECT" ); #else /* just a shorter name for the current buffer */ YY_BUFFER_STATE b = yy_current_buffer; int yy_c_buf_p_offset = (int) (yy_c_buf_p - b->yy_ch_buf); if ( b->yy_is_our_buffer ) { int new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; else b->yy_buf_size *= 2; b->yy_ch_buf = (YY_CHAR *) /* Include room in for 2 EOB chars. */ yy_flex_realloc( (void *) b->yy_ch_buf, ( b->yy_buf_size + 2 ) * sizeof( YY_CHAR ) ); } else /* Can't grow it, we don't own it. */ b->yy_ch_buf = 0; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "fatal error - scanner input buffer overflow" ); yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; num_to_read = yy_current_buffer->yy_buf_size - number_to_move - 1; #endif } if ( num_to_read > YY_READ_BUF_SIZE ) num_to_read = YY_READ_BUF_SIZE; /* Read in more data. */ YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]), yy_n_chars, num_to_read ); yy_current_buffer->yy_n_chars = yy_n_chars; } if ( yy_n_chars == 0 ) { if ( number_to_move == YY_MORE_ADJ ) { ret_val = EOB_ACT_END_OF_FILE; yyrestart( yyin ); } else { ret_val = EOB_ACT_LAST_MATCH; yy_current_buffer->yy_buffer_status = YY_BUFFER_EOF_PENDING; } } else ret_val = EOB_ACT_CONTINUE_SCAN; yy_n_chars += number_to_move; yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR; yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; yytext_ptr = &yy_current_buffer->yy_ch_buf[0]; return ret_val; } /* yy_get_previous_state - get the state just before the EOB char was reached */ yy_state_type yyFlexLexer::yy_get_previous_state() { register yy_state_type yy_current_state; register YY_CHAR *yy_cp; yy_current_state = yy_start; for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp ) { register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); if ( yy_accept[yy_current_state] ) { yy_last_accepting_state = yy_current_state; yy_last_accepting_cpos = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 1384 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; } return yy_current_state; } /* yy_try_NUL_trans - try to make a transition on the NUL character * * synopsis * next_state = yy_try_NUL_trans( current_state ); */ yy_state_type yyFlexLexer::yy_try_NUL_trans( yy_state_type yy_current_state ) { register int yy_is_jam; register YY_CHAR *yy_cp = yy_c_buf_p; register YY_CHAR yy_c = 1; if ( yy_accept[yy_current_state] ) { yy_last_accepting_state = yy_current_state; yy_last_accepting_cpos = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 1384 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; yy_is_jam = (yy_current_state == 1383); return yy_is_jam ? 0 : yy_current_state; } void yyFlexLexer::yyunput( int c, register YY_CHAR * yy_bp ) { register YY_CHAR *yy_cp = yy_c_buf_p; /* undo effects of setting up yytext */ *yy_cp = yy_hold_char; if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ register int number_to_move = yy_n_chars + 2; register YY_CHAR *dest = &yy_current_buffer->yy_ch_buf[ yy_current_buffer->yy_buf_size + 2]; register YY_CHAR *source = &yy_current_buffer->yy_ch_buf[number_to_move]; while ( source > yy_current_buffer->yy_ch_buf ) *--dest = *--source; yy_cp += (int) (dest - source); yy_bp += (int) (dest - source); yy_current_buffer->yy_n_chars = yy_n_chars = yy_current_buffer->yy_buf_size; if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) YY_FATAL_ERROR( "flex scanner push-back overflow" ); } *--yy_cp = (YY_CHAR) c; yytext_ptr = yy_bp; yy_hold_char = *yy_cp; yy_c_buf_p = yy_cp; } int yyFlexLexer::yyinput() { int c; *yy_c_buf_p = yy_hold_char; if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR ) { /* yy_c_buf_p now points to the character we want to return. * If this occurs *before* the EOB characters, then it's a * valid NUL; if not, then we've hit the end of the buffer. */ if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] ) /* This was really a NUL. */ *yy_c_buf_p = (YY_CHAR) '\0'; else { /* need more input */ int offset = yy_c_buf_p - yytext_ptr; ++yy_c_buf_p; switch ( yy_get_next_buffer() ) { case EOB_ACT_LAST_MATCH: /* This happens because yy_g_n_b() * sees that we've accumulated a * token and flags that we need to * try matching the token before * proceeding. But for input(), * there's no matching to consider. * So convert the EOB_ACT_LAST_MATCH * to EOB_ACT_END_OF_FILE. */ /* Reset buffer status. */ yyrestart( yyin ); /* fall through */ case EOB_ACT_END_OF_FILE: { if ( yywrap() ) return EOF; if ( ! yy_did_buffer_switch_on_eof ) YY_NEW_FILE; #ifdef __cplusplus return yyinput(); #else return input(); #endif } case EOB_ACT_CONTINUE_SCAN: yy_c_buf_p = yytext_ptr + offset; break; } } } c = YY_SC_TO_UI(*yy_c_buf_p); *yy_c_buf_p = (YY_CHAR) '\0'; /* preserve yytext */ yy_hold_char = *++yy_c_buf_p; return c; } void yyFlexLexer::yyrestart( std::istream* input_file ) { if ( ! yy_current_buffer ) yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); yy_init_buffer( yy_current_buffer, input_file ); yy_load_buffer_state(); } void yyFlexLexer::yy_switch_to_buffer( YY_BUFFER_STATE new_buffer ) { if ( yy_current_buffer == new_buffer ) return; if ( yy_current_buffer ) { /* Flush out information for old buffer. */ *yy_c_buf_p = yy_hold_char; yy_current_buffer->yy_buf_pos = yy_c_buf_p; yy_current_buffer->yy_n_chars = yy_n_chars; } yy_current_buffer = new_buffer; yy_load_buffer_state(); /* We don't actually know whether we did this switch during * EOF (yywrap()) processing, but the only time this flag * is looked at is after yywrap() is called, so it's safe * to go ahead and always set it. */ yy_did_buffer_switch_on_eof = 1; } void yyFlexLexer::yy_load_buffer_state() { yy_n_chars = yy_current_buffer->yy_n_chars; yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos; yyin = yy_current_buffer->yy_input_file; yy_hold_char = *yy_c_buf_p; } YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size ) { YY_BUFFER_STATE b; b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ b->yy_ch_buf = (YY_CHAR *) yy_flex_alloc( ( b->yy_buf_size + 2 ) * sizeof( YY_CHAR ) ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_is_our_buffer = 1; yy_init_buffer( b, file ); return b; } void yyFlexLexer::yy_delete_buffer( YY_BUFFER_STATE b ) { if ( ! b ) return; if ( b == yy_current_buffer ) yy_current_buffer = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) yy_flex_free( (void *) b->yy_ch_buf ); yy_flex_free( (void *) b ); } extern "C" int isatty YY_PROTO(( int )); void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream* file ) { yy_flush_buffer( b ); b->yy_input_file = file; b->yy_fill_buffer = 1; b->yy_is_interactive = 0; } void yyFlexLexer::yy_flush_buffer( YY_BUFFER_STATE b ) { if ( ! b ) return; b->yy_n_chars = 0; /* We always need two end-of-buffer characters. The first causes * a transition to the end-of-buffer state. The second causes * a jam in that state. */ b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; b->yy_buf_pos = &b->yy_ch_buf[0]; b->yy_at_bol = 1; b->yy_buffer_status = YY_BUFFER_NEW; if ( b == yy_current_buffer ) yy_load_buffer_state(); } #ifndef YY_NO_SCAN_BUFFER #endif #ifndef YY_NO_SCAN_STRING #endif #ifndef YY_NO_SCAN_BYTES #endif #ifndef YY_NO_PUSH_STATE void yyFlexLexer::yy_push_state( int new_state ) { if ( yy_start_stack_ptr >= yy_start_stack_depth ) { yy_size_t new_size; yy_start_stack_depth += YY_START_STACK_INCR; new_size = yy_start_stack_depth * sizeof( int ); if ( ! yy_start_stack ) yy_start_stack = (int *) yy_flex_alloc( new_size ); else yy_start_stack = (int *) yy_flex_realloc( (void *) yy_start_stack, new_size ); if ( ! yy_start_stack ) YY_FATAL_ERROR( "out of memory expanding start-condition stack" ); } yy_start_stack[yy_start_stack_ptr++] = YY_START; BEGIN(new_state); } #endif #ifndef YY_NO_POP_STATE void yyFlexLexer::yy_pop_state() { if ( --yy_start_stack_ptr < 0 ) YY_FATAL_ERROR( "start-condition stack underflow" ); BEGIN(yy_start_stack[yy_start_stack_ptr]); } #endif #ifndef YY_NO_TOP_STATE int yyFlexLexer::yy_top_state() { return yy_start_stack[yy_start_stack_ptr - 1]; } #endif #ifndef YY_EXIT_FAILURE #define YY_EXIT_FAILURE 2 #endif void yyFlexLexer::LexerError( yyconst char msg[] ) { std::cerr << msg << '\n'; exit( YY_EXIT_FAILURE ); } /* Redefine yyless() so it works in section 3 code. */ #undef yyless #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ yytext[yyleng] = yy_hold_char; \ yy_c_buf_p = yytext + n; \ yy_hold_char = *yy_c_buf_p; \ *yy_c_buf_p = (YY_CHAR) '\0'; \ yyleng = n; \ } \ while ( 0 ) /* Internal utility routines. */ #ifndef yytext_ptr #ifdef YY_USE_PROTOS static void yy_flex_strncpy( YY_CHAR *s1, yyconst YY_CHAR *s2, int n ) #else static void yy_flex_strncpy( s1, s2, n ) YY_CHAR *s1; yyconst YY_CHAR *s2; int n; #endif { register int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN #ifdef YY_USE_PROTOS static int yy_flex_strlen( yyconst YY_CHAR *s ) #else static int yy_flex_strlen( s ) yyconst YY_CHAR *s; #endif { register int n; for ( n = 0; s[n]; ++n ) ; return n; } #endif #ifdef YY_USE_PROTOS static void *yy_flex_alloc( yy_size_t size ) #else static void *yy_flex_alloc( size ) yy_size_t size; #endif { return (void *) malloc( size ); } #ifdef YY_USE_PROTOS static void *yy_flex_realloc( void *ptr, yy_size_t size ) #else static void *yy_flex_realloc( ptr, size ) void *ptr; yy_size_t size; #endif { /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter * because both ANSI C and C++ allow castless assignment from * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ return (void *) realloc( (char *) ptr, size ); } #ifdef YY_USE_PROTOS static void yy_flex_free( void *ptr ) #else static void yy_flex_free( ptr ) void *ptr; #endif { free( ptr ); } #if YY_MAIN int main() { yylex(); return 0; } #endif #line 806 "../src/lexer/XQLexer.l" XQilla-2.3.0/src/lexer/XQLexer2.cpp0000644000151400015140000002344411653565523013671 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "XQLexer.hpp" #include "../config/xqilla_config.h" #include #include #include XERCES_CPP_NAMESPACE_USE; XQLexer::XQLexer(XPath2MemoryManager* memMgr, const XMLCh *queryFile, const XMLCh* query, XQilla::Language lang) : Lexer(memMgr, lang, queryFile, 1, 1), firstToken_(_LANG_XQUERY_), mode_(MODE_NORMAL), m_szQuery(XPath2Utils::normalizeEOL(query, memMgr)), m_ownQuery(true), m_nLength(XPath2Utils::uintStrlen(m_szQuery)), m_position(0), m_index(0), m_currentOffset(0), m_nOpenComments(0) { if((m_language & XQilla::XPATH2) != 0) { firstToken_ = _LANG_XPATH2_; } else { firstToken_ = _LANG_XQUERY_; } } XQLexer::XQLexer(XPath2MemoryManager* memMgr, int firstToken, const XMLCh *queryFile, int line, int column, const XMLCh *query) : Lexer(memMgr, (XQilla::Language)(XQilla::XQUERY3_FULLTEXT_UPDATE | XQilla::EXTENSIONS), queryFile, line, column), firstToken_(firstToken), mode_(MODE_NORMAL), m_szQuery(XPath2Utils::normalizeEOL(query, memMgr)), m_ownQuery(true), m_nLength(XPath2Utils::uintStrlen(m_szQuery)), m_position(0), m_index(0), m_currentOffset(0), m_nOpenComments(0) { } XQLexer::XQLexer(XPath2MemoryManager* memMgr, const XMLCh *queryFile, int line, int column, const XMLCh* query, unsigned int length, const std::vector &offsets, XQilla::Language lang, StartMode mode) : Lexer(memMgr, lang, queryFile, line, column), firstToken_(MYEOF), mode_(mode), m_szQuery(query), m_ownQuery(false), m_nLength(length), m_offsets(offsets), m_position(0), m_index(0), m_currentOffset(0), m_nOpenComments(0) { } XQLexer::XQLexer(const XQLexer *other) : Lexer(other->mm_, other->m_language, other->m_szQueryFile, 1, 1), firstToken_(MYEOF), mode_(MODE_NORMAL), m_szQuery(other->m_szQuery + other->m_index), m_ownQuery(false), m_nLength(other->m_nLength - other->m_index), m_offsets(other->m_offsets), m_position(0), m_index(0), m_currentOffset(other->m_currentOffset), m_nOpenComments(0) { m_bGenerateErrorException = false; yy_start = other->yy_start; } XQLexer::~XQLexer() { if(m_szQuery && m_ownQuery) mm_->deallocate((void*)m_szQuery); } int XQLexer::yylex(YYSTYPE* pYYLVAL, YYLTYPE* pYYLOC) { int nextToken=yylex(); memcpy(pYYLVAL,&yylval,sizeof(YYSTYPE)); memcpy(pYYLOC,&yyloc,sizeof(YYLTYPE)); if(nextToken==0 && !isCommentClosed()) LexerError("Unterminated comment"); return nextToken; } void XQLexer::beginComment() { m_nOpenComments++; } void XQLexer::endComment() { if(m_nOpenComments==0) { error("Unbalanced comment found"); return; } m_nOpenComments--; } bool XQLexer::isCommentClosed() { return m_nOpenComments==0; } XMLCh* XQLexer::allocate_string(const XMLCh* src) { return (XMLCh*)mm_->getPooledString(src); } XMLCh* XQLexer::allocate_string(const XMLCh* src, int len) { return (XMLCh*)XPath2Utils::subString(src,0,len,mm_); } XMLCh *XQLexer::allocate_string_and_unescape(XMLCh *src, int len, XMLCh quoteChar, bool unescapeBrace, bool unescapeEntities, bool unescapeCDATA) { // The input to this method has already been validated by the lexer, // so we don't need to do error checking *(src + len) = 0; // Null terminate the source XMLCh *result = (XMLCh*)mm_->allocate((len + 1) * sizeof(XMLCh)); XMLCh *dst = result; for(; *src; ++src) { switch(*src) { case '&': if(!unescapeEntities) { *dst = *src; ++dst; break; } ++src; switch(*src) { case 'a': ++src; if(*src == 'm') { // & *dst = '&'; ++dst; src += 2; } else { // ' *dst = '\''; ++dst; src += 3; } break; case 'g': // > *dst = '>'; ++dst; src += 2; break; case 'l': // < *dst = '<'; ++dst; src += 2; break; case 'q': // " *dst = '"'; ++dst; src += 4; break; case '#': { // character reference unsigned int value = 0; unsigned int radix = 10; ++src; if(*src == 'x') { ++src; radix=16; } for(; *src != ';'; ++src) { if(*src >= 'a') value = (value * radix) + (*src - 'a' + 10); else if(*src >= 'A') value = (value * radix) + (*src - 'A' + 10); else value = (value * radix) + (*src - '0'); } if(!XMLChar1_0::isXMLChar(value)) error("Entity reference is not a valid XML character [err:XQST0090]"); if(value <= 0xFFFD) *dst = value; else if (value >= 0x10000 && value <= 0x10FFFF) { value -= 0x10000; *dst = (value >> 10) + 0xD800; ++dst; *dst = (value & 0x3FF) + 0xDC00; } ++dst; break; } default: error("Should never happen"); break; } break; case '\n': case '\r': case '\t': if(quoteChar != 0 && unescapeBrace) { // Normalize whitespace in attribute contents *dst = chSpace; } else { *dst = *src; } ++dst; break; case '<': { if(!unescapeCDATA) { *dst = *src; ++dst; break; } src += 9; // Length of "= 2 && *src == '>') { // Don't include the terminator "]]>" dst -= 2; break; } else { endSeen = 0; } *dst = *src; ++dst; } break; } case '\'': case '"': *dst = *src; ++dst; if(*src == quoteChar && *(src + 1) == quoteChar) ++src; break; case '{': case '}': *dst = *src; ++dst; if(unescapeBrace && *(src + 1) == *src) ++src; break; default: *dst = *src; ++dst; break; } } *dst = 0; return result; } int XQLexer::LexerInput( YY_CHAR* buf, int max_size ) { int nToRead=m_nLength-m_position; if(nToRead==0) return 0; if(nToRead>max_size) nToRead=max_size; memcpy(buf, m_szQuery + m_position, nToRead * sizeof(XMLCh)); m_position+=nToRead; return nToRead; } void XQLexer::LexerOutput( const YY_CHAR* buf, int size ) { // do nothing } void XQLexer::LexerError( const char* msg ) { error(msg); } void Lexer::Error( const char* msg, int line, int col ) { if(!m_bGenerateErrorException) return; if(strstr(msg, "[err:")!=NULL) XQSimpleThrow(X(msg), m_szQueryFile, line, col); const XMLCh* szMsg=XPath2Utils::concatStrings(X(msg), X(" [err:XPST0003]"), mm_); XQSimpleThrow(szMsg, m_szQueryFile, line, col); } void Lexer::Error(XQilla::Language lang, const char *where, unsigned int line, unsigned int col) { if(!m_bGenerateErrorException) return; XMLBuffer buf; buf.append(X("Invalid ")); if((lang & XQilla::XPATH2) != 0) { buf.append(X("XPath 2.0")); } else { buf.append(X("XQuery")); } if((lang & XQilla::FULLTEXT) != 0) { buf.append(X(" Full-Text")); } if((lang & XQilla::UPDATE) != 0) { buf.append(X(" Update")); } if((lang & XQilla::EXTENSIONS) != 0) { buf.append(X(" with extensions")); } buf.append(X(" syntax: ")); buf.append(X(where)); buf.append(X(" [err:XPST0003]")); XQSimpleThrow(buf.getRawBuffer(), m_szQueryFile, line, col); } void XQLexer::userAction(YY_CHAR* text, int length) { yyloc.first_line = m_lineno; yyloc.first_column = m_columnno; yyloc.first_offset = m_index; m_index += length; for(int i = 0; i < length; ++i) { if(text[i] == '\n') { ++m_lineno; m_columnno = 1; } else if(text[i] != '\r') ++m_columnno; } // Make adjustments for the offsets we've been given while(m_currentOffset < m_offsets.size()) { ValueOffset &off = m_offsets[m_currentOffset]; if(off.index >= m_index) break; m_lineno += off.lineOffset; m_columnno += off.columnOffset; ++m_currentOffset; } yyloc.last_line = m_lineno; yyloc.last_column = m_columnno; yyloc.last_offset = m_index - 1; } void XQLexer::undoUserAction() { // undo the changes done in the user action, or there will be a hole in the (first,last) sequence m_lineno=yyloc.last_line=yyloc.first_line; m_columnno=yyloc.last_column=yyloc.first_column; m_index=yyloc.last_offset=yyloc.first_offset; } void XQLexer::yy_pop_state() { if(yy_start_stack_ptr == 0) { char szMsg[256], text[256]; XMLString::copyString(szMsg, "Unbalanced '"); XMLString::transcode((XMLCh*)yytext, text, 256); XMLString::catString(szMsg, text); XMLString::catString(szMsg, "' token"); LexerError(szMsg); } else yyFlexLexer::yy_pop_state(); } int XQLexer::lookAhead() { return XQLexer(this).yylex(); } XQilla-2.3.0/src/lexer/XQLexer.hpp0000644000151400015140000002255711653565523013620 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XQLEXER_H #define XQLEXER_H // #define XQ_DEBUG_LEXER 1 #define YY_CHAR unsigned short #include #include #include #include typedef struct yyltype { int first_line; int first_column; int last_line; int last_column; int first_offset; int last_offset; } yyltype; #define YYLTYPE yyltype #define YYLTYPE_IS_DECLARED 1 #define YYLTYPE_IS_TRIVIAL 1 #define YY_USER_ACTION userAction(yytext, yyleng); #define YYLLOC_DEFAULT(Current, Rhs, N) \ do \ if (N) \ { \ (Current).first_line = (Rhs)[1].first_line; \ (Current).first_column = (Rhs)[1].first_column; \ (Current).last_line = (Rhs)[N].last_line; \ (Current).last_column = (Rhs)[N].last_column; \ (Current).first_offset = (Rhs)[1].first_offset; \ (Current).last_offset = (Rhs)[N].last_offset; \ } \ else \ { \ (Current).first_line = (Current).last_line = \ (Rhs)[0].last_line; \ (Current).first_column = (Current).last_column = \ (Rhs)[0].last_column; \ (Current).first_offset = (Current).last_offset = \ (Rhs)[0].last_offset; \ } \ while (0) #ifndef yyFlexLexer #define yyFlexLexer xqFlexLexer #include "FlexLexer.h" #endif #include #include #include #include #ifndef YYSTYPE #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include class LetTuple; class XQGlobalVariable; typedef union { XMLCh* str; ASTNode* astNode; XQSequence *parenExpr; XQUserFunction* functDecl; ArgumentSpec* argSpec; ArgumentSpecs* argSpecs; FunctionSignature *signature; XQUserFunction::Mode* mode; XQUserFunction::ModeList* modeList; XQGlobalVariable *globalVar; NodeTest *nodeTest; XQStep::Axis axis; QualifiedName *qName; SequenceType* sequenceType; SequenceType::OccurrenceIndicator occurrence; SequenceType::ItemType* itemType; VectorOfSequenceTypes *sequenceTypes; VectorOfASTNodes* itemList; VectorOfPredicates* predicates; TupleNode *tupleNode; LetTuple *letTuple; CopyBinding* copyBinding; VectorOfCopyBinding* copyBindingList; XQTemplateArgument *templateArg; TemplateArguments *templateArgs; XQTypeswitch::Case *caseClause; XQTypeswitch::Cases *caseClauses; OrderByTuple::Modifiers orderByModifier; VectorOfStrings* stringList; FTSelection *ftselection; FTWords::FTAnyallOption ftanyalloption; FTOption *ftoption; VectorOfFTOptions *ftoptionlist; FTRange ftrange; FTOption::FTUnit ftunit; bool boolean; int integer; } yystype; #define YYSTYPE yystype #define YYSTYPE_IS_DECLARED 1 #define YYSTYPE_IS_TRIVIAL 1 #endif // #ifndef YYSTYPE #include "../parser/XQParser.hpp" // to be included *after* defining YYSTYPE and YYLTYPE class XQILLA_API Lexer { public: virtual ~Lexer() {} virtual int yylex(YYSTYPE* pYYLVAL, YYLTYPE* pYYLOC) = 0; int error(const char* message) { Error(message, m_lineno, m_columnno); return 0; } int error(const yyltype &pos, const char* message) { Error(message, pos.first_line, pos.first_column); return 0; } int error(XQilla::Language lang, const char* where, unsigned int line, unsigned int column) { Error(lang, where, line, column); return 0; } XQilla::Language getLanguage() const { return m_language; } bool isXQuery() const { return (m_language & (XQilla::XPATH2 | XQilla::XSLT2)) == 0; } bool isXPath() const { return (m_language & XQilla::XPATH2) != 0; } bool isXSLT() const { return (m_language & XQilla::XSLT2) != 0; } bool isFullText() const { return (m_language & XQilla::FULLTEXT) != 0; } bool isUpdate() const { return (m_language & XQilla::UPDATE) != 0; } bool isVersion3() const { return (m_language & XQilla::VERSION3) != 0; } bool isExtensions() const { return (m_language & XQilla::EXTENSIONS) != 0; } void setVersion3(bool value) { m_language = (XQilla::Language)((m_language & ~(XQilla::VERSION3)) | (value ? XQilla::VERSION3 : 0)); } void setGenerateErrorException(bool bEnable) { m_bGenerateErrorException=bEnable; } virtual void undoLessThan() = 0; virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver *getNSResolver() const { return 0; } const XMLCh *getFile() const { return m_szQueryFile; } XPath2MemoryManager *getMemoryManager() const { return mm_; } protected: Lexer(XPath2MemoryManager *mm, XQilla::Language lang, const XMLCh *queryFile, int line, int column) : mm_(mm), m_language(lang), m_szQueryFile(queryFile), m_lineno(line), m_columnno(column), m_bGenerateErrorException(true) { } void Error(const char* msg, int line, int col); void Error(XQilla::Language lang, const char *where, unsigned int line, unsigned int col); XPath2MemoryManager *mm_; XQilla::Language m_language; const XMLCh* m_szQueryFile; int m_lineno,m_columnno; bool m_bGenerateErrorException; }; class XQILLA_API XQLexer : public Lexer, public yyFlexLexer { public: enum StartMode { MODE_NORMAL, MODE_ATTR_VALUE_TEMPLATE, MODE_TEMPLATE_MODES, MODE_OUTPUT_METHOD, MODE_QNAMES }; struct ValueOffset { ValueOffset(int i, int l, int c) : index(i), lineOffset(l), columnOffset(c) {} int index, lineOffset, columnOffset; }; XQLexer(XPath2MemoryManager* memMgr, const XMLCh *queryFile, const XMLCh* query, XQilla::Language lang); XQLexer(XPath2MemoryManager* memMgr, int firstToken, const XMLCh *queryFile, int line, int column, const XMLCh *query); XQLexer(XPath2MemoryManager* memMgr, const XMLCh *queryFile, int line, int column, const XMLCh* query, unsigned int length, const std::vector &offsets, XQilla::Language lang, StartMode mode = MODE_NORMAL); ~XQLexer(); // Implemented in XQLexer.cpp, output of XQLexer.l int yylex(); virtual int yylex(YYSTYPE* pYYLVAL, YYLTYPE* pYYLOC); const XMLCh* getQueryString() { return m_szQuery; } virtual void undoLessThan(); protected: // For look ahead XQLexer(const XQLexer *other); virtual int LexerInput(YY_CHAR* buf, int max_size); virtual void LexerOutput(const YY_CHAR* buf, int size); virtual void LexerError(const char* msg); virtual void yy_pop_state(); void userAction(YY_CHAR* text, int length); void undoUserAction(); int lookAhead(); void beginComment(); void endComment(); bool isCommentClosed(); XMLCh *allocate_string(const XMLCh* src); XMLCh *allocate_string(const XMLCh* src, int len); XMLCh *allocate_string_and_unescape(XMLCh toBeUnescaped, const XMLCh* src, int len); XMLCh *allocate_string_and_unescape(XMLCh *src, int len, XMLCh quoteChar, bool unescapeBrace, bool unescapeEntities, bool unescapeCDATA); YYSTYPE yylval; YYLTYPE yyloc; int firstToken_; StartMode mode_; const XMLCh* m_szQuery; bool m_ownQuery; unsigned int m_nLength; std::vector m_offsets; int m_position,m_index; unsigned int m_currentOffset; int m_nOpenComments; }; class XQILLA_API XQParserArgs { public: XQParserArgs(Lexer *lexer, XQQuery *query) : _lexer(lexer), _context((DynamicContext*)query->getStaticContext()), _query(query), _function(0), _moduleName(0), _flags(32), _namespaceDecls(13) { } XQParserArgs(Lexer *lexer) : _lexer(lexer), _context(0), _query(0), _function(0), _moduleName(0), _flags(32), _namespaceDecls(13) { } Lexer* _lexer; DynamicContext* _context; XQQuery* _query; XQUserFunction *_function; FunctionSignature *_signature; const XMLCh *_moduleName; XERCES_CPP_NAMESPACE_QUALIFIER BitSet _flags; XERCES_CPP_NAMESPACE_QUALIFIER RefHashTableOf _namespaceDecls; }; namespace XQParser { extern XQILLA_API int yyparse(void *); extern XQILLA_API int yydebug; } #endif XQilla-2.3.0/src/lexer/XQLexer.l0000644000151400015140000011004111653565523013246 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ %{ #include #include #include #include "XQLexer.hpp" #include "../parser/XQParser.hpp" #ifdef XQ_DEBUG_LEXER #include #define CHANGE_STATE(state) BEGIN((state)); std::cerr << "Begin: " << xqGetStateName((state)) << ", " #define RECOGNIZE(token) { std::cerr << "Recognize: "#token << std::endl; return token; } #define RECOGNIZE_VALUE(token, value) { \ yylval.str = allocate_string((XMLCh*)(value)); \ std::cerr << "Recognize: \"" << UTF8(yylval.str) << "\" ("#token << ")" << std::endl; \ return token; \ } #define RECOGNIZE_VALUE_LEN(token, value, length) { \ yylval.str = allocate_string((XMLCh*)(value), (length)); \ std::cerr << "Recognize: \"" << UTF8(yylval.str) << "\" ("#token << ")" << std::endl; \ return token; \ } #define RECOGNIZE_VALUE_UNESCAPE(token, value, length, quot_char, unescape_brace, unescape_entities, unescape_cdata) { \ yylval.str = allocate_string_and_unescape((XMLCh*)(value), (length), (quot_char), (unescape_brace), (unescape_entities), (unescape_cdata)); \ std::cerr << "Recognize: \"" << UTF8(yylval.str) << "\" ("#token << ")" << std::endl; \ return token; \ } // yy_push_state pushes the current state and does a transition to the specified one; #define PUSH_AND_CHANGE_STATE(state) std::cerr << "Push: " << xqGetStateName(YYSTATE) << ", "; yy_push_state((state)); std::cerr << "Begin: " << xqGetStateName((state)) << ", " #define POP() yy_pop_state(); std::cerr << "Pop: " << xqGetStateName(YYSTATE) << ", " #else #define CHANGE_STATE(state) BEGIN((state)) #define RECOGNIZE(token) return token #define RECOGNIZE_VALUE(token, value) yylval.str = allocate_string((XMLCh*)(value)); return token #define RECOGNIZE_VALUE_LEN(token, value, length) yylval.str = allocate_string((XMLCh*)(value), (length)); return token #define RECOGNIZE_VALUE_UNESCAPE(token, value, length, quot_char, unescape_brace, unescape_entities, unescape_cdata) \ yylval.str = allocate_string_and_unescape((XMLCh*)(value), (length), (quot_char), (unescape_brace), (unescape_entities), (unescape_cdata)); return token // yy_push_state pushes the current state and does a transition to the specified one; #define PUSH_AND_CHANGE_STATE(state) yy_push_state((state)) #define POP() yy_pop_state() #endif %} /* UTF16 Surrogates, for chars above 0xFFFF */ HighSurrogates ([\xD800-\xDB7F]) HighPrivateUseSurrogates ([\xDB80-\xDBFF]) LowSurrogates ([\xDC00-\xDFFF]) SurrogatePairs {HighSurrogates}|{HighPrivateUseSurrogates}|{LowSurrogates} NonPrivateUseSurrogates {HighSurrogates}|{LowSurrogates} Digits [0-9]+ Char ([\x0009]|[\x000D]|[\x000A]|[\x0020-\xD7FF]|[\xE000-\xFFFD]|{SurrogatePairs}) WhitespaceChar ([\x0009]|[\x000D]|[\x000A]|[\x0020]) Letter {BaseChar}|{Ideographic} BaseChar1 ([\x0041-\x005A]|[\x0061-\x007A]|[\x00C0-\x00D6]|[\x00D8-\x00F6]|[\x00F8-\x00FF]|[\x0100-\x0131]|[\x0134-\x013E]|[\x0141-\x0148]|[\x014A-\x017E]|[\x0180-\x01C3]|[\x01CD-\x01F0]|[\x01F4-\x01F5]|[\x01FA-\x0217]|[\x0250-\x02A8]|[\x02BB-\x02C1]|[\x0386]|[\x0388-\x038A]|[\x038C]|[\x038E-\x03A1]|[\x03A3-\x03CE]|[\x03D0-\x03D6]|[\x03DA]|[\x03DC]|[\x03DE]|[\x03E0]|[\x03E2-\x03F3]|[\x0401-\x040C]|[\x040E-\x044F]|[\x0451-\x045C]|[\x045E-\x0481]|[\x0490-\x04C4]|[\x04C7-\x04C8]|[\x04CB-\x04CC]|[\x04D0-\x04EB]|[\x04EE-\x04F5]|[\x04F8-\x04F9]|[\x0531-\x0556]|[\x0559]|[\x0561-\x0586]|[\x05D0-\x05EA]|[\x05F0-\x05F2]|[\x0621-\x063A]|[\x0641-\x064A]|[\x0671-\x06B7]|[\x06BA-\x06BE]|[\x06C0-\x06CE]|[\x06D0-\x06D3]|[\x06D5]|[\x06E5-\x06E6]|[\x0905-\x0939]|[\x093D]|[\x0958-\x0961]|[\x0985-\x098C]|[\x098F-\x0990]|[\x0993-\x09A8]|[\x09AA-\x09B0]|[\x09B2]|[\x09B6-\x09B9]|[\x09DC-\x09DD]|[\x09DF-\x09E1]|[\x09F0-\x09F1]|[\x0A05-\x0A0A]|[\x0A0F-\x0A10]|[\x0A13-\x0A28]|[\x0A2A-\x0A30]|[\x0A32-\x0A33]|[\x0A35-\x0A36]|[\x0A38-\x0A39]|[\x0A59-\x0A5C]|[\x0A5E]|[\x0A72-\x0A74]|[\x0A85-\x0A8B]|[\x0A8D]|[\x0A8F-\x0A91]|[\x0A93-\x0AA8]|[\x0AAA-\x0AB0]|[\x0AB2-\x0AB3]|[\x0AB5-\x0AB9]|[\x0ABD]|[\x0AE0]|[\x0B05-\x0B0C]|[\x0B0F-\x0B10]|[\x0B13-\x0B28]|[\x0B2A-\x0B30]|[\x0B32-\x0B33]|[\x0B36-\x0B39]|[\x0B3D]|[\x0B5C-\x0B5D]|[\x0B5F-\x0B61]|[\x0B85-\x0B8A]|[\x0B8E-\x0B90]|[\x0B92-\x0B95]|[\x0B99-\x0B9A]|[\x0B9C]|[\x0B9E-\x0B9F]|[\x0BA3-\x0BA4]|[\x0BA8-\x0BAA]|[\x0BAE-\x0BB5]|[\x0BB7-\x0BB9]|[\x0C05-\x0C0C]|[\x0C0E-\x0C10]|[\x0C12-\x0C28]|[\x0C2A-\x0C33]|[\x0C35-\x0C39]|[\x0C60-\x0C61]|[\x0C85-\x0C8C]|[\x0C8E-\x0C90]|[\x0C92-\x0CA8]|[\x0CAA-\x0CB3]|[\x0CB5-\x0CB9]|[\x0CDE]|[\x0CE0-\x0CE1]|[\x0D05-\x0D0C]) BaseChar2 ([\x0D0E-\x0D10]|[\x0D12-\x0D28]|[\x0D2A-\x0D39]|[\x0D60-\x0D61]|[\x0E01-\x0E2E]|[\x0E30]|[\x0E32-\x0E33]|[\x0E40-\x0E45]|[\x0E81-\x0E82]|[\x0E84]|[\x0E87-\x0E88]|[\x0E8A]|[\x0E8D]|[\x0E94-\x0E97]|[\x0E99-\x0E9F]|[\x0EA1-\x0EA3]|[\x0EA5]|[\x0EA7]|[\x0EAA-\x0EAB]|[\x0EAD-\x0EAE]|[\x0EB0]|[\x0EB2-\x0EB3]|[\x0EBD]|[\x0EC0-\x0EC4]|[\x0F40-\x0F47]|[\x0F49-\x0F69]|[\x10A0-\x10C5]|[\x10D0-\x10F6]|[\x1100]|[\x1102-\x1103]|[\x1105-\x1107]|[\x1109]|[\x110B-\x110C]|[\x110E-\x1112]|[\x113C]|[\x113E]|[\x1140]|[\x114C]|[\x114E]|[\x1150]|[\x1154-\x1155]|[\x1159]|[\x115F-\x1161]|[\x1163]|[\x1165]|[\x1167]|[\x1169]|[\x116D-\x116E]|[\x1172-\x1173]|[\x1175]|[\x119E]|[\x11A8]|[\x11AB]|[\x11AE-\x11AF]|[\x11B7-\x11B8]|[\x11BA]|[\x11BC-\x11C2]|[\x11EB]|[\x11F0]|[\x11F9]|[\x1E00-\x1E9B]|[\x1EA0-\x1EF9]|[\x1F00-\x1F15]|[\x1F18-\x1F1D]|[\x1F20-\x1F45]|[\x1F48-\x1F4D]|[\x1F50-\x1F57]|[\x1F59]|[\x1F5B]|[\x1F5D]|[\x1F5F-\x1F7D]|[\x1F80-\x1FB4]|[\x1FB6-\x1FBC]|[\x1FBE]|[\x1FC2-\x1FC4]|[\x1FC6-\x1FCC]|[\x1FD0-\x1FD3]|[\x1FD6-\x1FDB]|[\x1FE0-\x1FEC]|[\x1FF2-\x1FF4]|[\x1FF6-\x1FFC]|[\x2126]|[\x212A-\x212B]|[\x212E]|[\x2180-\x2182]|[\x3041-\x3094]|[\x30A1-\x30FA]|[\x3105-\x312C]|[\xAC00-\xD7A3]) BaseChar {BaseChar1}|{BaseChar2} Ideographic ([\x4E00-\x9FA5]|[\x3007]|[\x3021-\x3029]) Digit ([\x0030-\x0039]|[\x0660-\x0669]|[\x06F0-\x06F9]|[\x0966-\x096F]|[\x09E6-\x09EF]|[\x0A66-\x0A6F]|[\x0AE6-\x0AEF]|[\x0B66-\x0B6F]|[\x0BE7-\x0BEF]|[\x0C66-\x0C6F]|[\x0CE6-\x0CEF]|[\x0D66-\x0D6F]|[\x0E50-\x0E59]|[\x0ED0-\x0ED9]|[\x0F20-\x0F29]) CombiningChar ([\x0300-\x0345]|[\x0360-\x0361]|[\x0483-\x0486]|[\x0591-\x05A1]|[\x05A3-\x05B9]|[\x05BB-\x05BD]|[\x05BF]|[\x05C1-\x05C2]|[\x05C4]|[\x064B-\x0652]|[\x0670]|[\x06D6-\x06DC]|[\x06DD-\x06DF]|[\x06E0-\x06E4]|[\x06E7-\x06E8]|[\x06EA-\x06ED]|[\x0901-\x0903]|[\x093C]|[\x093E-\x094C]|[\x094D]|[\x0951-\x0954]|[\x0962-\x0963]|[\x0981-\x0983]|[\x09BC]|[\x09BE]|[\x09BF]|[\x09C0-\x09C4]|[\x09C7-\x09C8]|[\x09CB-\x09CD]|[\x09D7]|[\x09E2-\x09E3]|[\x0A02]|[\x0A3C]|[\x0A3E]|[\x0A3F]|[\x0A40-\x0A42]|[\x0A47-\x0A48]|[\x0A4B-\x0A4D]|[\x0A70-\x0A71]|[\x0A81-\x0A83]|[\x0ABC]|[\x0ABE-\x0AC5]|[\x0AC7-\x0AC9]|[\x0ACB-\x0ACD]|[\x0B01-\x0B03]|[\x0B3C]|[\x0B3E-\x0B43]|[\x0B47-\x0B48]|[\x0B4B-\x0B4D]|[\x0B56-\x0B57]|[\x0B82-\x0B83]|[\x0BBE-\x0BC2]|[\x0BC6-\x0BC8]|[\x0BCA-\x0BCD]|[\x0BD7]|[\x0C01-\x0C03]|[\x0C3E-\x0C44]|[\x0C46-\x0C48]|[\x0C4A-\x0C4D]|[\x0C55-\x0C56]|[\x0C82-\x0C83]|[\x0CBE-\x0CC4]|[\x0CC6-\x0CC8]|[\x0CCA-\x0CCD]|[\x0CD5-\x0CD6]|[\x0D02-\x0D03]|[\x0D3E-\x0D43]|[\x0D46-\x0D48]|[\x0D4A-\x0D4D]|[\x0D57]|[\x0E31]|[\x0E34-\x0E3A]|[\x0E47-\x0E4E]|[\x0EB1]|[\x0EB4-\x0EB9]|[\x0EBB-\x0EBC]|[\x0EC8-\x0ECD]|[\x0F18-\x0F19]|[\x0F35]|[\x0F37]|[\x0F39]|[\x0F3E]|[\x0F3F]|[\x0F71-\x0F84]|[\x0F86-\x0F8B]|[\x0F90-\x0F95]|[\x0F97]|[\x0F99-\x0FAD]|[\x0FB1-\x0FB7]|[\x0FB9]|[\x20D0-\x20DC]|[\x20E1]|[\x302A-\x302F]|[\x3099]|[\x309A]) Extender ([\x00B7]|[\x02D0]|[\x02D1]|[\x0387]|[\x0640]|[\x0E46]|[\x0EC6]|[\x3005]|[\x3031-\x3035]|[\x309D-\x309E]|[\x30FC-\x30FE]) /* [20] CData ::= (Char* - (Char* ']]>' Char*)) */ CharMinusBrack ([\x0009]|[\x000D]|[\x000A]|[\x0020-\x005C]|[\x005E-\xD7FF]|[\xE000-\xFFFD]|{SurrogatePairs}) CharMinusGT ([\x0009]|[\x000D]|[\x000A]|[\x0020-\x003D]|[\x003F-\xD7FF]|[\xE000-\xFFFD]|{SurrogatePairs}) CDATASection ("") /* [16] PI ::= '' Char*)))? '?>' */ PITarget {NCName} CharMinusQuestion ([\x0009]|[\x000D]|[\x000A]|[\x0020-\x003E]|[\x0040-\xD7FF]|[\xE000-\xFFFD]|{SurrogatePairs}) PIContentAndEnd (({CharMinusQuestion}|("?"+{CharMinusGT}))*"?"+">") /* [66] PragmaContents ::= (Char* - (Char* '#)' Char*)) */ CharMinusSharp ([\x0009]|[\x000D]|[\x000A]|[\x0020-\x0022]|[\x0024-\xD7FF]|[\xE000-\xFFFD]|{SurrogatePairs}) CharMinusClosePar ([\x0009]|[\x000D]|[\x000A]|[\x0020-\x0028]|[\x002A-\xD7FF]|[\xE000-\xFFFD]|{SurrogatePairs}) PragmaContentsAndEnd (({CharMinusSharp}|("#"+{CharMinusClosePar}))*"#"+")") /* [104] DirCommentContents ::= ((Char - '-') | ('-' (Char - '-')))* */ CharMinusDash ([\x0009]|[\x000D]|[\x000A]|[\x0020-\x002C]|[\x002E-\xD7FF]|[\xE000-\xFFFD]|{SurrogatePairs}) DirCommentContents (({CharMinusDash}|("-"{CharMinusDash}))*) /* from Namespace spec */ NCNameChar {Letter}|{Digit}|"."|"-"|"_"|{CombiningChar}|{Extender} NCName ({Letter}|"_"){NCNameChar}* Prefix {NCName} LocalPart {NCName} QName ({Prefix}":")?{LocalPart} XMLNSQName "xmlns"(":"{LocalPart})? /* from XQuery spec */ IntegerLiteral {Digits} DecimalLiteral ("."{Digits})|({Digits}"."[0-9]*) DoubleLiteral (("."{Digits})|({Digits}("."[0-9]*)?))("e"|"E")("+"|"-")?{Digits} NotNumber (("."{Digits})|({Digits}("."[0-9]*)?))(("e"|"E")("+"|"-")?{Digits})?[a-zA-Z][0-9a-zA-Z]* StringLiteral ("\""({PredefinedEntityRef}|{CharRef}|("\"\"")|[^"&])*"\"")|("'"({PredefinedEntityRef}|{CharRef}|("''")|[^'&])*"'") XPathStringLiteral ("\""(("\"\"")|[^"])*"\"")|("'"(("''")|[^'])*"'") /* [148] ElementContentChar ::= Char - [{}<&] */ ElementContentChar ([\x0009]|[\x000D]|[\x000A]|[\x0020-\x0025]|[\x0027-\x003B]|[\x003D-\x007A]|[\x007C]|[\x007E-\xD7FF]|[\xE000-\xFFFD]|{SurrogatePairs}) ElementContent (({PredefinedEntityRef}|{CharRef}|"{{"|"}}"|{ElementContentChar}|{CDATASection})*) /* [149] QuotAttrContentChar ::= Char - ["{}<&] */ QuotAttrContentChar ([\x0009]|[\x000D]|[\x000A]|[\x0020-\x0021]|[\x0023-\x0025]|[\x0027-\x003B]|[\x003D-\x007A]|[\x007C]|[\x007E-\xD7FF]|[\xE000-\xFFFD]|{SurrogatePairs}) QuotAttrContent (({PredefinedEntityRef}|{CharRef}|"{{"|"}}"|"\"\""|{QuotAttrContentChar})*) /* [150] AposAttrContentChar ::= Char - ['{}<&] */ AposAttrContentChar ([\x0009]|[\x000D]|[\x000A]|[\x0020-\x0025]|[\x0028-\x003B]|[\x003D-\x007A]|[\x007C]|[\x007E-\xD7FF]|[\xE000-\xFFFD]|{SurrogatePairs}) AposAttrContent (({PredefinedEntityRef}|{CharRef}|"{{"|"}}"|"''"|{AposAttrContentChar})*) /* AttrValueTemplateChar ::= Char - [{}] */ AttrValueTemplateChar ([\x0009]|[\x000D]|[\x000A]|[\x0020-\x0021]|[\x0023-\x007A]|[\x007C]|\x007E-\xD7FF]|[\xE000-\xFFFD]|{SurrogatePairs}) AttrValueTemplateContent (("{{"|"}}"|{AttrValueTemplateChar})*) PredefinedEntityRef "&"("lt"|"gt"|"amp"|"quot"|"apos")";" HexDigits ([0-9]|[a-f]|[A-F])+ CharRef "&#"({Digits}|("x"{HexDigits}))";" %option never-interactive %option noyywrap %option yyclass="XQLexer" %option c++ %option 16bit %option stack %x EXPR_COMMENT %x PRAGMA %x PRAGMAWS %x PRAGMACONTENTS %x START_TAG %x END_TAG %x ELEMENT_CONTENT %x QUOT_ATTRIBUTE_CONTENT %x APOS_ATTRIBUTE_CONTENT %x PROCESSING_INSTRUCTION %x PROCESSING_INSTRUCTION_CONTENT %x XML_COMMENT %x COMPUTED_CONSTRUCTOR %x ATTR_VALUE_TEMPLATE %x TEMPLATE_MODES %x OUTPUT_METHOD %x QNAMES %{ const char *xqGetStateName(int state) { switch(state) { case INITIAL: return "INITIAL"; case EXPR_COMMENT: return "EXPR_COMMENT"; case PRAGMA: return "PRAGMA"; case PRAGMAWS: return "PRAGMAWS"; case PRAGMACONTENTS: return "PRAGMACONTENTS"; case START_TAG: return "START_TAG"; case END_TAG: return "END_TAG"; case ELEMENT_CONTENT: return "ELEMENT_CONTENT"; case QUOT_ATTRIBUTE_CONTENT: return "QUOT_ATTRIBUTE_CONTENT"; case APOS_ATTRIBUTE_CONTENT: return "APOS_ATTRIBUTE_CONTENT"; case PROCESSING_INSTRUCTION: return "PROCESSING_INSTRUCTION"; case PROCESSING_INSTRUCTION_CONTENT: return "PROCESSING_INSTRUCTION_CONTENT"; case XML_COMMENT: return "XML_COMMENT"; case COMPUTED_CONSTRUCTOR: return "COMPUTED_CONSTRUCTOR"; case ATTR_VALUE_TEMPLATE: return "ATTR_VALUE_TEMPLATE"; case TEMPLATE_MODES: return "TEMPLATE_MODES"; case OUTPUT_METHOD: return "OUTPUT_METHOD"; case QNAMES: return "QNAMES"; } return "unknown"; } void XQLexer::undoLessThan() { CHANGE_STATE(INITIAL); POP(); } %} %% %{ if(firstToken_ != MYEOF) { int token = firstToken_; firstToken_ = MYEOF; RECOGNIZE(token); } switch(mode_) { case MODE_ATTR_VALUE_TEMPLATE: mode_ = MODE_NORMAL; CHANGE_STATE(ATTR_VALUE_TEMPLATE); break; case MODE_TEMPLATE_MODES: mode_ = MODE_NORMAL; CHANGE_STATE(TEMPLATE_MODES); break; case MODE_OUTPUT_METHOD: mode_ = MODE_NORMAL; CHANGE_STATE(OUTPUT_METHOD); break; case MODE_QNAMES: mode_ = MODE_NORMAL; CHANGE_STATE(QNAMES); break; case MODE_NORMAL: break; } %} {IntegerLiteral} RECOGNIZE_VALUE(_INTEGER_LITERAL_, yytext); {DecimalLiteral} RECOGNIZE_VALUE(_DECIMAL_LITERAL_, yytext); {DoubleLiteral} RECOGNIZE_VALUE(_DOUBLE_LITERAL_, yytext); {StringLiteral} RECOGNIZE_VALUE_UNESCAPE(_STRING_LITERAL_, yytext + 1, yyleng - 2, *yytext, false, !isXPath(), false); {XPathStringLiteral} { if(isXPath()) { RECOGNIZE_VALUE_UNESCAPE(_STRING_LITERAL_, yytext + 1, yyleng - 2, *yytext, false, false, false); } else { std::ostringstream oss; oss << "Bad escaping in string literal: " << UTF8((XMLCh*)yytext); return error(oss.str().c_str()); } } {WhitespaceChar}+ /* Do nothing */ "(:" beginComment(); PUSH_AND_CHANGE_STATE(EXPR_COMMENT); {Char} /* Do nothing */ ":)" endComment(); POP(); "-" RECOGNIZE(_MINUS_); "+" RECOGNIZE(_PLUS_); "=" RECOGNIZE(_EQUALS_); ";" RECOGNIZE(_SEMICOLON_); "," RECOGNIZE(_COMMA_); "$" RECOGNIZE(_DOLLAR_); ":=" RECOGNIZE(_COLON_EQUALS_); "(" RECOGNIZE(_LPAR_); ")" RECOGNIZE(_RPAR_); "*" RECOGNIZE(_ASTERISK_); "|" RECOGNIZE(_BAR_); "!=" RECOGNIZE(_BANG_EQUALS_); "<=" RECOGNIZE(_LESS_THAN_EQUALS_); ">" RECOGNIZE(_GREATER_THAN_); ">=" RECOGNIZE(_GREATER_THAN_EQUALS_); "<<" RECOGNIZE(_LESS_THAN_LESS_THAN_); ">>" RECOGNIZE(_GREATER_THAN_GREATER_THAN_); "::" RECOGNIZE(_COLON_COLON_); "@" RECOGNIZE(_AT_SIGN_); ".." RECOGNIZE(_DOT_DOT_); "." RECOGNIZE(_DOT_); "[" RECOGNIZE(_LSQUARE_); "]" RECOGNIZE(_RSQUARE_); "?" RECOGNIZE(_QUESTION_MARK_); "external" RECOGNIZE_VALUE(_EXTERNAL_, yytext); "ascending" RECOGNIZE_VALUE(_ASCENDING_, yytext); "descending" RECOGNIZE_VALUE(_DESCENDING_, yytext); "greatest" RECOGNIZE_VALUE(_GREATEST_, yytext); "least" RECOGNIZE_VALUE(_LEAST_, yytext); "comment" RECOGNIZE_VALUE(_COMMENT_, yytext); "document-node" RECOGNIZE_VALUE(_DOCUMENT_NODE_, yytext); "if" RECOGNIZE_VALUE(_IF_, yytext); "item" RECOGNIZE_VALUE(_ITEM_, yytext); "node" RECOGNIZE_VALUE(_NODE_, yytext); "schema-attribute" RECOGNIZE_VALUE(_SCHEMA_ATTRIBUTE_, yytext); "schema-element" RECOGNIZE_VALUE(_SCHEMA_ELEMENT_, yytext); "text" RECOGNIZE_VALUE(_TEXT_, yytext); "empty-sequence" RECOGNIZE_VALUE(_EMPTY_SEQUENCE_, yytext); "version" RECOGNIZE_VALUE(_VERSION_, yytext); "encoding" RECOGNIZE_VALUE(_ENCODING_, yytext); "declare" RECOGNIZE_VALUE(_DECLARE_, yytext); "boundary-space" RECOGNIZE_VALUE(_BOUNDARY_SPACE_, yytext); "preserve" RECOGNIZE_VALUE(_PRESERVE_, yytext); "strip" RECOGNIZE_VALUE(_STRIP_, yytext); "default" RECOGNIZE_VALUE(_DEFAULT_, yytext); "option" RECOGNIZE_VALUE(_OPTION_, yytext); "ordering" RECOGNIZE_VALUE(_ORDERING_, yytext); "ordered" RECOGNIZE_VALUE(_ORDERED_, yytext); "unordered" RECOGNIZE_VALUE(_UNORDERED_, yytext); "empty" RECOGNIZE_VALUE(_EMPTY_, yytext); "copy-namespaces" RECOGNIZE_VALUE(_COPY_NAMESPACES_, yytext); "no-preserve" RECOGNIZE_VALUE(_NO_PRESERVE_, yytext); "inherit" RECOGNIZE_VALUE(_INHERIT_, yytext); "no-inherit" RECOGNIZE_VALUE(_NO_INHERIT_, yytext); "collation" RECOGNIZE_VALUE(_COLLATION_, yytext); "base-uri" RECOGNIZE_VALUE(_BASE_URI_, yytext); "import" RECOGNIZE_VALUE(_IMPORT_, yytext); "schema" RECOGNIZE_VALUE(_SCHEMA_, yytext); "variable" RECOGNIZE_VALUE(_VARIABLE_, yytext); "construction" RECOGNIZE_VALUE(_CONSTRUCTION_, yytext); "as" RECOGNIZE_VALUE(_AS_, yytext); "lax" RECOGNIZE_VALUE(_LAX_, yytext); "strict" RECOGNIZE_VALUE(_STRICT_, yytext); "return" RECOGNIZE_VALUE(_RETURN_, yytext); "for" RECOGNIZE_VALUE(_FOR_, yytext); "in" RECOGNIZE_VALUE(_IN_, yytext); "by" RECOGNIZE_VALUE(_BY_, yytext); "some" RECOGNIZE_VALUE(_SOME_, yytext); "every" RECOGNIZE_VALUE(_EVERY_, yytext); "satisfies" RECOGNIZE_VALUE(_SATISFIES_, yytext); "then" RECOGNIZE_VALUE(_THEN_, yytext); "else" RECOGNIZE_VALUE(_ELSE_, yytext); "or" RECOGNIZE_VALUE(_OR_, yytext); "and" RECOGNIZE_VALUE(_AND_, yytext); "to" RECOGNIZE_VALUE(_TO_, yytext); "div" RECOGNIZE_VALUE(_DIV_, yytext); "idiv" RECOGNIZE_VALUE(_IDIV_, yytext); "mod" RECOGNIZE_VALUE(_MOD_, yytext); "union" RECOGNIZE_VALUE(_UNION_, yytext); "intersect" RECOGNIZE_VALUE(_INTERSECT_, yytext); "except" RECOGNIZE_VALUE(_EXCEPT_, yytext); "instance" RECOGNIZE_VALUE(_INSTANCE_, yytext); "of" RECOGNIZE_VALUE(_OF_, yytext); "treat" RECOGNIZE_VALUE(_TREAT_, yytext); "castable" RECOGNIZE_VALUE(_CASTABLE_, yytext); "cast" RECOGNIZE_VALUE(_CAST_, yytext); "eq" RECOGNIZE_VALUE(_EQ_, yytext); "ne" RECOGNIZE_VALUE(_NE_, yytext); "lt" RECOGNIZE_VALUE(_LT_, yytext); "le" RECOGNIZE_VALUE(_LE_, yytext); "gt" RECOGNIZE_VALUE(_GT_, yytext); "ge" RECOGNIZE_VALUE(_GE_, yytext); "is" RECOGNIZE_VALUE(_IS_, yytext); "validate" RECOGNIZE_VALUE(_VALIDATE_, yytext); "child" RECOGNIZE_VALUE(_CHILD_, yytext); "descendant" RECOGNIZE_VALUE(_DESCENDANT_, yytext); "self" RECOGNIZE_VALUE(_SELF_, yytext); "descendant-or-self" RECOGNIZE_VALUE(_DESCENDANT_OR_SELF_, yytext); "following-sibling" RECOGNIZE_VALUE(_FOLLOWING_SIBLING_, yytext); "following" RECOGNIZE_VALUE(_FOLLOWING_, yytext); "parent" RECOGNIZE_VALUE(_PARENT_, yytext); "ancestor" RECOGNIZE_VALUE(_ANCESTOR_, yytext); "preceding-sibling" RECOGNIZE_VALUE(_PRECEDING_SIBLING_, yytext); "preceding" RECOGNIZE_VALUE(_PRECEDING_, yytext); "ancestor-or-self" RECOGNIZE_VALUE(_ANCESTOR_OR_SELF_, yytext); "document" RECOGNIZE_VALUE(_DOCUMENT_, yytext); "weight" RECOGNIZE_VALUE(_WEIGHT_, yytext); "not" RECOGNIZE_VALUE(_NOT_, yytext); "lowercase" RECOGNIZE_VALUE(_LOWERCASE_, yytext); "uppercase" RECOGNIZE_VALUE(_UPPERCASE_, yytext); "sensitive" RECOGNIZE_VALUE(_SENSITIVE_, yytext); "insensitive" RECOGNIZE_VALUE(_INSENSITIVE_, yytext); "diacritics" RECOGNIZE_VALUE(_DIACRITICS_, yytext); "stemming" RECOGNIZE_VALUE(_STEMMING_, yytext); "thesaurus" RECOGNIZE_VALUE(_THESAURUS_, yytext); "relationship" RECOGNIZE_VALUE(_RELATIONSHIP_, yytext); "levels" RECOGNIZE_VALUE(_LEVELS_, yytext); "stop" RECOGNIZE_VALUE(_STOP_, yytext); "words" RECOGNIZE_VALUE(_WORDS_, yytext); "language" RECOGNIZE_VALUE(_LANGUAGE_, yytext); "wildcards" RECOGNIZE_VALUE(_WILDCARDS_, yytext); "entire" RECOGNIZE_VALUE(_ENTIRE_, yytext); "content" RECOGNIZE_VALUE(_CONTENT_, yytext); "any" RECOGNIZE_VALUE(_ANY_, yytext); "all" RECOGNIZE_VALUE(_ALL_, yytext); "phrase" RECOGNIZE_VALUE(_PHRASE_, yytext); "word" RECOGNIZE_VALUE(_WORD_, yytext); "exactly" RECOGNIZE_VALUE(_EXACTLY_, yytext); "from" RECOGNIZE_VALUE(_FROM_, yytext); "distance" RECOGNIZE_VALUE(_DISTANCE_, yytext); "window" RECOGNIZE_VALUE(_WINDOW_, yytext); "occurs" RECOGNIZE_VALUE(_OCCURS_, yytext); "times" RECOGNIZE_VALUE(_TIMES_, yytext); "same" RECOGNIZE_VALUE(_SAME_, yytext); "different" RECOGNIZE_VALUE(_DIFFERENT_, yytext); "sentences" RECOGNIZE_VALUE(_SENTENCES_, yytext); "paragraphs" RECOGNIZE_VALUE(_PARAGRAPHS_, yytext); "sentence" RECOGNIZE_VALUE(_SENTENCE_, yytext); "paragraph" RECOGNIZE_VALUE(_PARAGRAPH_, yytext); "type" RECOGNIZE_VALUE(_TYPE_, yytext); "start" RECOGNIZE_VALUE(_START_, yytext); "end" RECOGNIZE_VALUE(_END_, yytext); "most" RECOGNIZE_VALUE(_MOST_, yytext); "skip" RECOGNIZE_VALUE(_SKIP_, yytext); "value" RECOGNIZE_VALUE(_VALUE_, yytext); "first" RECOGNIZE_VALUE(_FIRST_, yytext); "last" RECOGNIZE_VALUE(_LAST_, yytext); "into" RECOGNIZE_VALUE(_INTO_, yytext); "after" RECOGNIZE_VALUE(_AFTER_, yytext); "before" RECOGNIZE_VALUE(_BEFORE_, yytext); "modify" RECOGNIZE_VALUE(_MODIFY_, yytext); "nodes" RECOGNIZE_VALUE(_NODES_, yytext); "id" RECOGNIZE_VALUE(_ID_, yytext); "key" RECOGNIZE_VALUE(_KEY_, yytext); "no" RECOGNIZE_VALUE(_NO_, yytext); "with" RECOGNIZE_VALUE(_WITH_, yytext); "namespace" { if(!isXPath() && !isExtensions() && lookAhead() == _COLON_COLON_) { RECOGNIZE_VALUE(_QNAME_, yytext); } else { CHANGE_STATE(COMPUTED_CONSTRUCTOR); RECOGNIZE_VALUE(_NAMESPACE_, yytext); } } "template" { if(isExtensions()) { RECOGNIZE_VALUE(_TEMPLATE_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "matches" { if(isExtensions()) { RECOGNIZE_VALUE(_MATCHES_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "name" { if(isExtensions()) { RECOGNIZE_VALUE(_NAME_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "call" { if(isExtensions()) { RECOGNIZE_VALUE(_CALL_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "apply" { if(isExtensions()) { RECOGNIZE_VALUE(_APPLY_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "templates" { if(isExtensions()) { RECOGNIZE_VALUE(_TEMPLATES_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "mode" { if(isExtensions()) { RECOGNIZE_VALUE(_MODE_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "function" { if(isVersion3()) { RECOGNIZE_VALUE(_FUNCTION_EXT_, yytext); } else { RECOGNIZE_VALUE(_FUNCTION_, yytext); } } "#" { if(isVersion3()) { RECOGNIZE(_HASH_); } else { return error("Unrecognized token '#'"); } } "count" { if(isVersion3() && lookAhead() == _DOLLAR_) { RECOGNIZE_VALUE(_COUNT_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "private" { if(isVersion3()) { RECOGNIZE_VALUE(_PRIVATE_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "public" { if(isVersion3()) { RECOGNIZE_VALUE(_PUBLIC_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "deterministic" { if(isVersion3()) { RECOGNIZE_VALUE(_DETERMINISTIC_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "nondeterministic" { if(isVersion3()) { RECOGNIZE_VALUE(_NONDETERMINISTIC_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "namespace-node" { if(isVersion3()) { RECOGNIZE_VALUE(_NAMESPACE_NODE_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "let" { if(isXQuery()) { RECOGNIZE_VALUE(_LET_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "where" { if(isXQuery()) { RECOGNIZE_VALUE(_WHERE_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "order" { if(isXQuery()) { RECOGNIZE_VALUE(_ORDER_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "stable" { if(isXQuery()) { RECOGNIZE_VALUE(_STABLE_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "typeswitch" { if(isXQuery()) { RECOGNIZE_VALUE(_TYPESWITCH_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "ft-option" { if(isFullText()) { RECOGNIZE_VALUE(_FT_OPTION_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "score" { if(isFullText()) { RECOGNIZE_VALUE(_SCORE_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "contains" { if(isFullText()) { RECOGNIZE_VALUE(_CONTAINS_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "ftor" { if(isFullText()) { RECOGNIZE_VALUE(_FTOR_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "ftand" { if(isFullText()) { RECOGNIZE_VALUE(_FTAND_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "ftnot" { if(isFullText()) { RECOGNIZE_VALUE(_FTNOT_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "revalidation" { if(isUpdate()) { RECOGNIZE_VALUE(_REVALIDATION_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "updating" { if(isUpdate()) { RECOGNIZE_VALUE(_UPDATING_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "insert" { if(isUpdate()) { RECOGNIZE_VALUE(_INSERT_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "delete" { if(isUpdate()) { RECOGNIZE_VALUE(_DELETE_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "replace" { if(isUpdate()) { RECOGNIZE_VALUE(_REPLACE_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "rename" { if(isUpdate()) { RECOGNIZE_VALUE(_RENAME_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "copy" { if(isUpdate()) { RECOGNIZE_VALUE(_COPY_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "xquery" { int tok = lookAhead(); if(tok == _VERSION_ || (isVersion3() && tok == _ENCODING_)) { RECOGNIZE_VALUE(_XQUERY_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "module" { int tok = lookAhead(); if(tok == _NAMESPACE_ || tok == _STRING_LITERAL_) { RECOGNIZE_VALUE(_MODULE_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "without" { if(lookAhead() == _CONTENT_) { RECOGNIZE_VALUE(_WITHOUT_C_, yytext); } else { RECOGNIZE_VALUE(_WITHOUT_, yytext); } } "case" { int tok = lookAhead(); if(tok == _SENSITIVE_ || tok == _INSENSITIVE_) { RECOGNIZE_VALUE(_CASE_S_, yytext); } else { RECOGNIZE_VALUE(_CASE_, yytext); } } "using" { if(isFullText()) { RECOGNIZE_VALUE(_USING_, yytext); } else { RECOGNIZE_VALUE(_QNAME_, yytext); } } "at" { int tok = lookAhead(); if(tok == _LEAST_ || tok == _MOST_) { RECOGNIZE_VALUE(_AT_LM_, yytext); } else { RECOGNIZE_VALUE(_AT_, yytext); } } "element" CHANGE_STATE(COMPUTED_CONSTRUCTOR); RECOGNIZE_VALUE(_ELEMENT_, yytext); "attribute" CHANGE_STATE(COMPUTED_CONSTRUCTOR); RECOGNIZE_VALUE(_ATTRIBUTE_, yytext); "processing-instruction" CHANGE_STATE(COMPUTED_CONSTRUCTOR); RECOGNIZE_VALUE(_PROCESSING_INSTRUCTION_, yytext); {QName} { CHANGE_STATE(INITIAL); if(lookAhead() == _LBRACE_) { RECOGNIZE_VALUE(_CONSTR_QNAME_, yytext); } else { undoUserAction(); yyless(0); } } [\x0000-\xFFFF] { CHANGE_STATE(INITIAL); undoUserAction(); yyless(0); } "{" PUSH_AND_CHANGE_STATE(INITIAL); RECOGNIZE(_LBRACE_); "}" return error("It is an error for a right brace to appear in element or attribute content"); "}" POP(); RECOGNIZE(_RBRACE_); "&" return error("It is an error for an ampersand to appear in element or attribute content"); "<" PUSH_AND_CHANGE_STATE(START_TAG); RECOGNIZE(_LESS_THAN_OP_OR_TAG_); "<" return error("It is an error for a left angle bracket to appear in attribute content"); ">" CHANGE_STATE(ELEMENT_CONTENT); RECOGNIZE(_START_TAG_CLOSE_); ">" POP(); RECOGNIZE(_END_TAG_CLOSE_); {AttrValueTemplateContent} RECOGNIZE_VALUE_UNESCAPE(_QUOT_ATTR_CONTENT_, yytext, yyleng, 0, true, false, false); "\"" CHANGE_STATE(QUOT_ATTRIBUTE_CONTENT); RECOGNIZE(_OPEN_QUOT_); {QuotAttrContent} RECOGNIZE_VALUE_UNESCAPE(_QUOT_ATTR_CONTENT_, yytext, yyleng, '"', true, true, false); "\"" CHANGE_STATE(START_TAG); RECOGNIZE(_CLOSE_QUOT_); "'" CHANGE_STATE(APOS_ATTRIBUTE_CONTENT); RECOGNIZE(_OPEN_APOS_); {AposAttrContent} RECOGNIZE_VALUE_UNESCAPE(_APOS_ATTR_CONTENT_, yytext, yyleng, '\'', true, true, false); "'" CHANGE_STATE(START_TAG); RECOGNIZE(_CLOSE_APOS_); {WhitespaceChar}+ RECOGNIZE_VALUE(_WHITESPACE_ELEMENT_CONTENT_, yytext); {ElementContent} RECOGNIZE_VALUE_UNESCAPE(_ELEMENT_CONTENT_, yytext, yyleng, 0, true, true, true); "/>" POP(); RECOGNIZE(_EMPTY_TAG_CLOSE_); ""=" RECOGNIZE(_VALUE_INDICATOR_); "(#" CHANGE_STATE(PRAGMA); RECOGNIZE(_PRAGMA_OPEN_); {WhitespaceChar}+ RECOGNIZE(_WHITESPACE_); {QName} CHANGE_STATE(PRAGMAWS); RECOGNIZE_VALUE(_QNAME_, yytext); "#)" CHANGE_STATE(INITIAL); RECOGNIZE_VALUE_LEN(_PRAGMA_CONTENT_, yytext, yyleng - 2); {WhitespaceChar}+ CHANGE_STATE(PRAGMACONTENTS); RECOGNIZE(_WHITESPACE_); {PragmaContentsAndEnd} CHANGE_STATE(INITIAL); RECOGNIZE_VALUE_LEN(_PRAGMA_CONTENT_, yytext, yyleng - 2); "("xml"|"Xml"|"xMl"|"xmL"|"XMl"|"xML"|"XML"|"XmL") return error("The target of a processing instruction must not be 'XML'"); {PITarget} RECOGNIZE_VALUE(_PI_TARGET_, yytext); {WhitespaceChar}+ CHANGE_STATE(PROCESSING_INSTRUCTION_CONTENT); RECOGNIZE(_WHITESPACE_); "?>" POP(); RECOGNIZE_VALUE_LEN(_PI_CONTENT_, yytext, yyleng - 2); {PIContentAndEnd} POP(); RECOGNIZE_VALUE_LEN(_PI_CONTENT_, yytext, yyleng - 2); "" POP(); RECOGNIZE(_XML_COMMENT_END_); "/" RECOGNIZE(_SLASH_); "//" RECOGNIZE(_SLASH_SLASH_); {XMLNSQName} RECOGNIZE_VALUE(_XMLNS_QNAME_, yytext); {QName} RECOGNIZE_VALUE(_QNAME_, yytext); {NCName}":*" RECOGNIZE_VALUE_LEN(_NCNAME_COLON_STAR_, yytext, yyleng - 2); "*:"{NCName} RECOGNIZE_VALUE(_STAR_COLON_NCNAME_, yytext + 2); {WhitespaceChar}+ RECOGNIZE(_WHITESPACE_); {QName} RECOGNIZE_VALUE(_QNAME_, yytext); "#default" RECOGNIZE(_HASH_DEFAULT_); "#all" RECOGNIZE(_HASH_ALL_); "#current" RECOGNIZE(_HASH_CURRENT_); {WhitespaceChar}+ /* Do nothing */ "xml" RECOGNIZE_VALUE(_XML_, yytext); "html" RECOGNIZE_VALUE(_HTML_, yytext); "xhtml" RECOGNIZE_VALUE(_XHTML_, yytext); "text" RECOGNIZE_VALUE(_TEXT_, yytext); {QName} RECOGNIZE_VALUE(_QNAME_, yytext); {WhitespaceChar}+ /* Do nothing */ {QName} RECOGNIZE_VALUE(_QNAME_, yytext); {WhitespaceChar}+ /* Do nothing */ {NotNumber} { std::ostringstream oss; oss << "Invalid literal found: " << UTF8((XMLCh*)yytext); return error(oss.str().c_str()); } <*>[\x0000-\xFFFF] { std::ostringstream oss; oss << "Unrecognized character '" << UTF8((XMLCh*)yytext) << "' (" << yytext[0] << ")"; return error(oss.str().c_str()); } %% XQilla-2.3.0/src/lexer/flex.skl0000644000151400015140000010205711571227106013211 00000000000000/* A lexical scanner generated by flex */ /* Scanner skeleton version: * $Header$ */ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 %- #include %* /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */ #ifdef c_plusplus #ifndef __cplusplus #define __cplusplus #endif #endif #ifdef __cplusplus #include %+ #include %* /* Use prototypes in function declarations. */ #define YY_USE_PROTOS /* The "const" storage-class-modifier is valid. */ #define YY_USE_CONST #else /* ! __cplusplus */ #if __STDC__ #define YY_USE_PROTOS #define YY_USE_CONST #endif /* __STDC__ */ #endif /* ! __cplusplus */ #ifdef __TURBOC__ #pragma warn -rch #pragma warn -use #include #include #define YY_USE_CONST #define YY_USE_PROTOS #endif #ifdef YY_USE_CONST #define yyconst const #else #define yyconst #endif #ifdef YY_USE_PROTOS #define YY_PROTO(proto) proto #else #define YY_PROTO(proto) () #endif %% YY_CHAR and YY_SC_TO_UI() go here /* Returned upon end-of-file. */ #define YY_NULL 0 /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN yy_start = 1 + 2 * /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START ((yy_start - 1) / 2) #define YYSTATE YY_START /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE yyrestart( yyin ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #define YY_BUF_SIZE 16384 typedef struct yy_buffer_state *YY_BUFFER_STATE; extern int yyleng; %- extern FILE *yyin, *yyout; %* #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 /* The funky do-while in the following #define is used to turn the definition * int a single C statement (which needs a semi-colon terminator). This * avoids problems with code like: * * if ( condition_holds ) * yyless( 5 ); * else * do_something_else(); * * Prior to using the do-while the compiler would get upset at the * "else" because it interpreted the "if" statement as being all * done when it reached the ';' after the yyless() call. */ /* Return all but the first 'n' matched characters back to the input stream. */ #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ *yy_cp = yy_hold_char; \ YY_RESTORE_YY_MORE_OFFSET \ yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) #define unput(c) yyunput( c, yytext_ptr ) /* The following is because we cannot portably get our hands on size_t * (without autoconf's help, which isn't available because we want * flex-generated scanners to compile on their own). */ typedef unsigned int yy_size_t; struct yy_buffer_state { %- FILE *yy_input_file; %+ std::istream* yy_input_file; %* YY_CHAR *yy_ch_buf; /* input buffer */ YY_CHAR *yy_buf_pos; /* current position in input buffer */ /* Size of input buffer in bytes, not including room for EOB * characters. */ yy_size_t yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to * delete it. */ int yy_is_our_buffer; /* Whether this is an "interactive" input source; if so, and * if we're using stdio for input, then we want to use getc() * instead of fread(), to make sure we stop fetching input after * each newline. */ int yy_is_interactive; /* Whether we're considered to be at the beginning of a line. * If so, '^' rules will be active on the next match, otherwise * not. */ int yy_at_bol; /* Whether to try to fill the input buffer when we reach the * end of it. */ int yy_fill_buffer; int yy_buffer_status; #define YY_BUFFER_NEW 0 #define YY_BUFFER_NORMAL 1 /* When an EOF's been seen but there's still some text to process * then we mark the buffer as YY_EOF_PENDING, to indicate that we * shouldn't try reading from the input source any more. We might * still have a bunch of tokens to match, though, because of * possible backing-up. * * When we actually see the EOF, we change the status to "new" * (via yyrestart()), so that the user can continue scanning by * just pointing yyin at a new input file. */ #define YY_BUFFER_EOF_PENDING 2 }; %- Standard (non-C++) definition static YY_BUFFER_STATE yy_current_buffer = 0; %* /* We provide macros for accessing buffer states in case in the * future we want to put the buffer states in a more general * "scanner state". */ #define YY_CURRENT_BUFFER yy_current_buffer %- Standard (non-C++) definition /* yy_hold_char holds the character lost when yytext is formed. */ static YY_CHAR yy_hold_char; static int yy_n_chars; /* number of characters read into yy_ch_buf */ int yyleng; /* Points to current character in buffer. */ static YY_CHAR *yy_c_buf_p = (YY_CHAR *) 0; static int yy_init = 1; /* whether we need to initialize */ static int yy_start = 0; /* start state number */ /* Flag which is used to allow yywrap()'s to do buffer switches * instead of setting up a fresh yyin. A bit of a hack ... */ static int yy_did_buffer_switch_on_eof; void yyrestart YY_PROTO(( FILE *input_file )); void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer )); void yy_load_buffer_state YY_PROTO(( void )); YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size )); void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b )); void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file )); void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b )); #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer ) YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( YY_CHAR *base, yy_size_t size )); YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst YY_CHAR *yy_str )); /* This is the old yy_scan_bytes function - renamed to avoid * confusion since a character may now be 1 or 2 bytes. */ YY_BUFFER_STATE yy_scan_chars YY_PROTO(( yyconst YY_CHAR *chars, int len )); %* static void *yy_flex_alloc YY_PROTO(( yy_size_t )); static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )); static void yy_flex_free YY_PROTO(( void * )); #define yy_new_buffer yy_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! yy_current_buffer ) \ yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \ yy_current_buffer->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ if ( ! yy_current_buffer ) \ yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \ yy_current_buffer->yy_at_bol = at_bol; \ } #define YY_AT_BOL() (yy_current_buffer->yy_at_bol) %% yytext/yyin/yyout/yy_state_type/yylineno etc. def's & init go here %- Standard (non-C++) definition static yy_state_type yy_get_previous_state YY_PROTO(( void )); static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state )); static int yy_get_next_buffer YY_PROTO(( void )); static void yy_fatal_error YY_PROTO(( yyconst char msg[] )); %* /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. */ #define YY_DO_BEFORE_ACTION \ yytext_ptr = yy_bp; \ %% code to fiddle yytext and yyleng for yymore() goes here yy_hold_char = *yy_cp; \ *yy_cp = (YY_CHAR) '\0'; \ %% code to copy yytext_ptr to yytext[] goes here, if %array yy_c_buf_p = yy_cp; %% data tables for the DFA and the user's section 1 definitions go here /* Macros after this point can all be overridden by user definitions in * section 1. */ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus extern "C" int yywrap YY_PROTO(( void )); #else extern int yywrap YY_PROTO(( void )); #endif #endif %- #ifndef YY_NO_UNPUT static void yyunput YY_PROTO(( int c, YY_CHAR *buf_ptr )); #endif %* #ifndef yytext_ptr static void yy_flex_strncpy YY_PROTO(( YY_CHAR *, yyconst YY_CHAR *, int )); #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen YY_PROTO(( yyconst YY_CHAR * )); #endif #ifndef YY_NO_INPUT %- Standard (non-C++) definition #ifdef __cplusplus static int yyinput YY_PROTO(( void )); #else static int input YY_PROTO(( void )); #endif %* #endif #if YY_STACK_USED #ifndef YY_NO_PUSH_STATE /* static void yy_push_state YY_PROTO(( int new_state )); */ #endif #ifndef YY_NO_POP_STATE /* static void yy_pop_state YY_PROTO(( void )); */ #endif #ifndef YY_NO_TOP_STATE /* static int yy_top_state YY_PROTO(( void )); */ #endif #else #define YY_NO_PUSH_STATE 1 #define YY_NO_POP_STATE 1 #define YY_NO_TOP_STATE 1 #endif #ifdef YY_MALLOC_DECL YY_MALLOC_DECL #else #if __STDC__ #ifndef __cplusplus #include #endif #else /* Just try to get by without declaring the routines. This will fail * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int) * or sizeof(void*) != sizeof(int). */ #endif #endif /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE #define YY_READ_BUF_SIZE 8192 #endif /* Copy whatever the last rule matched to the standard output. */ #ifndef ECHO %- Standard (non-C++) definition /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ #define ECHO (void) fwrite( yytext, sizeof( YY_CHAR ), yyleng, yyout ) %+ C++ definition #define ECHO LexerOutput( yytext, yyleng ) %* #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, * is returned in "result". */ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ %% fread()/read() definition of YY_INPUT goes here unless we're doing C++ %+ C++ definition if ( (result = LexerInput( buf, max_size )) < 0 ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); %* #endif /* No semi-colon after return; correct usage is to write "yyterminate();" - * we don't want an extra ';' after the "return" because that will cause * some compilers to complain about unreachable statements. */ #ifndef yyterminate #define yyterminate() return YY_NULL #endif /* Number of entries by which start-condition stack grows. */ #ifndef YY_START_STACK_INCR #define YY_START_STACK_INCR 25 #endif /* Report a fatal error. */ #ifndef YY_FATAL_ERROR %- #define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) %+ #define YY_FATAL_ERROR(msg) LexerError( msg ) %* #endif /* Default declaration of generated scanner - a define so the user can * easily add parameters. */ #ifndef YY_DECL %- Standard (non-C++) definition #define YY_DECL int yylex YY_PROTO(( void )) %+ C++ definition #define YY_DECL int yyFlexLexer::yylex() %* #endif /* Code executed at the beginning of each rule, after yytext and yyleng * have been set up. */ #ifndef YY_USER_ACTION #define YY_USER_ACTION #endif /* Code executed at the end of each rule. */ #ifndef YY_BREAK #define YY_BREAK break; #endif %% YY_RULE_SETUP definition goes here YY_DECL { register yy_state_type yy_current_state; register YY_CHAR *yy_cp, *yy_bp; register int yy_act; %% user's declarations go here if ( yy_init ) { yy_init = 0; #ifdef YY_USER_INIT YY_USER_INIT; #endif if ( ! yy_start ) yy_start = 1; /* first start state */ if ( ! yyin ) %- yyin = stdin; %+ yyin = &std::cin; %* if ( ! yyout ) %- yyout = stdout; %+ yyout = &std::cout; %* if ( ! yy_current_buffer ) yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); yy_load_buffer_state(); } while ( 1 ) /* loops until end-of-file is reached */ { %% yymore()-related code goes here yy_cp = yy_c_buf_p; /* Support of yytext. */ *yy_cp = yy_hold_char; /* yy_bp points to the position in yy_ch_buf of the start of * the current run. */ yy_bp = yy_cp; %% code to set up and find next match goes here yy_find_action: %% code to find the action number goes here YY_DO_BEFORE_ACTION; %% code for yylineno update goes here do_action: /* This label is used only to access EOF actions. */ %% debug code goes here switch ( yy_act ) { /* beginning of action switch */ %% actions go here case YY_END_OF_BUFFER: { /* Amount of text matched not including the EOB char. */ int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1; /* Undo the effects of YY_DO_BEFORE_ACTION. */ *yy_cp = yy_hold_char; YY_RESTORE_YY_MORE_OFFSET if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW ) { /* We're scanning a new file or input source. It's * possible that this happened because the user * just pointed yyin at a new source and called * yylex(). If so, then we have to assure * consistency between yy_current_buffer and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a * back-up) that will match for the new input source. */ yy_n_chars = yy_current_buffer->yy_n_chars; yy_current_buffer->yy_input_file = yyin; yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL; } /* Note that here we test for yy_c_buf_p "<=" to the position * of the first EOB in the buffer, since yy_c_buf_p will * already have been incremented past the NUL character * (since all states make transitions on EOB to the * end-of-buffer state). Contrast this with the test * in input(). */ if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] ) { /* This was really a NUL. */ yy_state_type yy_next_state; yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state(); /* Okay, we're now positioned to make the NUL * transition. We couldn't have * yy_get_previous_state() go ahead and do it * for us because it doesn't know how to deal * with the possibility of jamming (and we don't * want to build jamming into it because then it * will run more slowly). */ yy_next_state = yy_try_NUL_trans( yy_current_state ); yy_bp = yytext_ptr + YY_MORE_ADJ; if ( yy_next_state ) { /* Consume the NUL. */ yy_cp = ++yy_c_buf_p; yy_current_state = yy_next_state; goto yy_match; } else { %% code to do back-up for compressed tables and set up yy_cp goes here goto yy_find_action; } } else switch ( yy_get_next_buffer() ) { case EOB_ACT_END_OF_FILE: { yy_did_buffer_switch_on_eof = 0; if ( yywrap() ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * yytext, we can now set up * yy_c_buf_p so that if some total * hoser (like flex itself) wants to * call the scanner after we return the * YY_NULL, it'll still work - another * YY_NULL will get returned. */ yy_c_buf_p = yytext_ptr + YY_MORE_ADJ; yy_act = YY_STATE_EOF(YY_START); goto do_action; } else { if ( ! yy_did_buffer_switch_on_eof ) YY_NEW_FILE; } break; } case EOB_ACT_CONTINUE_SCAN: yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state(); yy_cp = yy_c_buf_p; yy_bp = yytext_ptr + YY_MORE_ADJ; goto yy_match; case EOB_ACT_LAST_MATCH: yy_c_buf_p = &yy_current_buffer->yy_ch_buf[yy_n_chars]; yy_current_state = yy_get_previous_state(); yy_cp = yy_c_buf_p; yy_bp = yytext_ptr + YY_MORE_ADJ; goto yy_find_action; } break; } default: YY_FATAL_ERROR( "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ } /* end of yylex */ %+ yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ) { yyin = arg_yyin; yyout = arg_yyout; yy_c_buf_p = 0; yy_init = 1; yy_start = 0; yy_flex_debug = 0; yylineno = 1; // this will only get updated if %option yylineno yy_did_buffer_switch_on_eof = 0; yy_looking_for_trail_begin = 0; yy_more_flag = 0; yy_more_len = 0; yy_more_offset = yy_prev_more_offset = 0; yy_start_stack_ptr = yy_start_stack_depth = 0; yy_start_stack = 0; yy_current_buffer = 0; #ifdef YY_USES_REJECT yy_state_buf = new yy_state_type[YY_BUF_SIZE + 2]; #else yy_state_buf = 0; #endif } yyFlexLexer::~yyFlexLexer() { delete [] yy_state_buf; yy_delete_buffer( yy_current_buffer ); if(yy_start_stack) yy_flex_free(yy_start_stack); } #ifdef YY_INTERACTIVE int yyFlexLexer::LexerInput( YY_CHAR* buf, int /* max_size */ ) #else int yyFlexLexer::LexerInput( YY_CHAR* buf, int max_size ) #endif { if ( yyin->eof() || yyin->fail() ) return 0; #ifdef YY_INTERACTIVE (void) yyin->read((char *) buf, sizeof( YY_CHAR ) ); if ( yyin->eof() ) return 0; if ( yyin->bad() ) return -1; return 1; #else (void) yyin->read((char *) buf, max_size * sizeof( YY_CHAR ) ); if ( yyin->bad() ) return -1; else return ( yyin->gcount() / sizeof( YY_CHAR ) ); #endif } void yyFlexLexer::LexerOutput( const YY_CHAR* buf, int size ) { (void) yyout->write((char *) buf, size * sizeof( YY_CHAR ) ); } %* /* yy_get_next_buffer - try to read in a new buffer * * Returns a code representing an action: * EOB_ACT_LAST_MATCH - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position * EOB_ACT_END_OF_FILE - end of file */ %- static int yy_get_next_buffer() %+ int yyFlexLexer::yy_get_next_buffer() %* { register YY_CHAR *dest = yy_current_buffer->yy_ch_buf; register YY_CHAR *source = yytext_ptr; register int number_to_move, i; int ret_val; if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] ) YY_FATAL_ERROR( "fatal flex scanner internal error--end of buffer missed" ); if ( yy_current_buffer->yy_fill_buffer == 0 ) { /* Don't try to fill the buffer, so this is an EOF. */ if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 ) { /* We matched a single character, the EOB, so * treat this as a final EOF. */ return EOB_ACT_END_OF_FILE; } else { /* We matched some text prior to the EOB, first * process it. */ return EOB_ACT_LAST_MATCH; } } /* Try to read more data. */ /* First move last chars to start of buffer. */ number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1; for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING ) /* don't do the read, it's not guaranteed to return an EOF, * just force an EOF */ yy_current_buffer->yy_n_chars = yy_n_chars = 0; else { int num_to_read = yy_current_buffer->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) { /* Not enough room in the buffer - grow it. */ #ifdef YY_USES_REJECT YY_FATAL_ERROR( "input buffer overflow, can't enlarge buffer because scanner uses REJECT" ); #else /* just a shorter name for the current buffer */ YY_BUFFER_STATE b = yy_current_buffer; int yy_c_buf_p_offset = (int) (yy_c_buf_p - b->yy_ch_buf); if ( b->yy_is_our_buffer ) { int new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; else b->yy_buf_size *= 2; b->yy_ch_buf = (YY_CHAR *) /* Include room in for 2 EOB chars. */ yy_flex_realloc( (void *) b->yy_ch_buf, ( b->yy_buf_size + 2 ) * sizeof( YY_CHAR ) ); } else /* Can't grow it, we don't own it. */ b->yy_ch_buf = 0; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "fatal error - scanner input buffer overflow" ); yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; num_to_read = yy_current_buffer->yy_buf_size - number_to_move - 1; #endif } if ( num_to_read > YY_READ_BUF_SIZE ) num_to_read = YY_READ_BUF_SIZE; /* Read in more data. */ YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]), yy_n_chars, num_to_read ); yy_current_buffer->yy_n_chars = yy_n_chars; } if ( yy_n_chars == 0 ) { if ( number_to_move == YY_MORE_ADJ ) { ret_val = EOB_ACT_END_OF_FILE; yyrestart( yyin ); } else { ret_val = EOB_ACT_LAST_MATCH; yy_current_buffer->yy_buffer_status = YY_BUFFER_EOF_PENDING; } } else ret_val = EOB_ACT_CONTINUE_SCAN; yy_n_chars += number_to_move; yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR; yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; yytext_ptr = &yy_current_buffer->yy_ch_buf[0]; return ret_val; } /* yy_get_previous_state - get the state just before the EOB char was reached */ %- static yy_state_type yy_get_previous_state() %+ yy_state_type yyFlexLexer::yy_get_previous_state() %* { register yy_state_type yy_current_state; register YY_CHAR *yy_cp; %% code to get the start state into yy_current_state goes here for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp ) { %% code to find the next state goes here } return yy_current_state; } /* yy_try_NUL_trans - try to make a transition on the NUL character * * synopsis * next_state = yy_try_NUL_trans( current_state ); */ %- #ifdef YY_USE_PROTOS static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state ) #else static yy_state_type yy_try_NUL_trans( yy_current_state ) yy_state_type yy_current_state; #endif %+ yy_state_type yyFlexLexer::yy_try_NUL_trans( yy_state_type yy_current_state ) %* { register int yy_is_jam; %% code to find the next state, and perhaps do backing up, goes here return yy_is_jam ? 0 : yy_current_state; } %- #ifndef YY_NO_UNPUT #ifdef YY_USE_PROTOS static void yyunput( int c, register YY_CHAR *yy_bp ) #else static void yyunput( c, yy_bp ) int c; register YY_CHAR *yy_bp; #endif %+ void yyFlexLexer::yyunput( int c, register YY_CHAR * yy_bp ) %* { register YY_CHAR *yy_cp = yy_c_buf_p; /* undo effects of setting up yytext */ *yy_cp = yy_hold_char; if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ register int number_to_move = yy_n_chars + 2; register YY_CHAR *dest = &yy_current_buffer->yy_ch_buf[ yy_current_buffer->yy_buf_size + 2]; register YY_CHAR *source = &yy_current_buffer->yy_ch_buf[number_to_move]; while ( source > yy_current_buffer->yy_ch_buf ) *--dest = *--source; yy_cp += (int) (dest - source); yy_bp += (int) (dest - source); yy_current_buffer->yy_n_chars = yy_n_chars = yy_current_buffer->yy_buf_size; if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) YY_FATAL_ERROR( "flex scanner push-back overflow" ); } *--yy_cp = (YY_CHAR) c; %% update yylineno here yytext_ptr = yy_bp; yy_hold_char = *yy_cp; yy_c_buf_p = yy_cp; } %- #endif /* ifndef YY_NO_UNPUT */ %* %- #ifdef __cplusplus static int yyinput() #else static int input() #endif %+ int yyFlexLexer::yyinput() %* { int c; *yy_c_buf_p = yy_hold_char; if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR ) { /* yy_c_buf_p now points to the character we want to return. * If this occurs *before* the EOB characters, then it's a * valid NUL; if not, then we've hit the end of the buffer. */ if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] ) /* This was really a NUL. */ *yy_c_buf_p = (YY_CHAR) '\0'; else { /* need more input */ int offset = yy_c_buf_p - yytext_ptr; ++yy_c_buf_p; switch ( yy_get_next_buffer() ) { case EOB_ACT_LAST_MATCH: /* This happens because yy_g_n_b() * sees that we've accumulated a * token and flags that we need to * try matching the token before * proceeding. But for input(), * there's no matching to consider. * So convert the EOB_ACT_LAST_MATCH * to EOB_ACT_END_OF_FILE. */ /* Reset buffer status. */ yyrestart( yyin ); /* fall through */ case EOB_ACT_END_OF_FILE: { if ( yywrap() ) return EOF; if ( ! yy_did_buffer_switch_on_eof ) YY_NEW_FILE; #ifdef __cplusplus return yyinput(); #else return input(); #endif } case EOB_ACT_CONTINUE_SCAN: yy_c_buf_p = yytext_ptr + offset; break; } } } c = YY_SC_TO_UI(*yy_c_buf_p); *yy_c_buf_p = (YY_CHAR) '\0'; /* preserve yytext */ yy_hold_char = *++yy_c_buf_p; %% update BOL and yylineno return c; } %- #ifdef YY_USE_PROTOS void yyrestart( FILE *input_file ) #else void yyrestart( input_file ) FILE *input_file; #endif %+ void yyFlexLexer::yyrestart( std::istream* input_file ) %* { if ( ! yy_current_buffer ) yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); yy_init_buffer( yy_current_buffer, input_file ); yy_load_buffer_state(); } %- #ifdef YY_USE_PROTOS void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer ) #else void yy_switch_to_buffer( new_buffer ) YY_BUFFER_STATE new_buffer; #endif %+ void yyFlexLexer::yy_switch_to_buffer( YY_BUFFER_STATE new_buffer ) %* { if ( yy_current_buffer == new_buffer ) return; if ( yy_current_buffer ) { /* Flush out information for old buffer. */ *yy_c_buf_p = yy_hold_char; yy_current_buffer->yy_buf_pos = yy_c_buf_p; yy_current_buffer->yy_n_chars = yy_n_chars; } yy_current_buffer = new_buffer; yy_load_buffer_state(); /* We don't actually know whether we did this switch during * EOF (yywrap()) processing, but the only time this flag * is looked at is after yywrap() is called, so it's safe * to go ahead and always set it. */ yy_did_buffer_switch_on_eof = 1; } %- #ifdef YY_USE_PROTOS void yy_load_buffer_state( void ) #else void yy_load_buffer_state() #endif %+ void yyFlexLexer::yy_load_buffer_state() %* { yy_n_chars = yy_current_buffer->yy_n_chars; yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos; yyin = yy_current_buffer->yy_input_file; yy_hold_char = *yy_c_buf_p; } %- #ifdef YY_USE_PROTOS YY_BUFFER_STATE yy_create_buffer( FILE *file, int size ) #else YY_BUFFER_STATE yy_create_buffer( file, size ) FILE *file; int size; #endif %+ YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size ) %* { YY_BUFFER_STATE b; b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ b->yy_ch_buf = (YY_CHAR *) yy_flex_alloc( ( b->yy_buf_size + 2 ) * sizeof( YY_CHAR ) ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_is_our_buffer = 1; yy_init_buffer( b, file ); return b; } %- #ifdef YY_USE_PROTOS void yy_delete_buffer( YY_BUFFER_STATE b ) #else void yy_delete_buffer( b ) YY_BUFFER_STATE b; #endif %+ void yyFlexLexer::yy_delete_buffer( YY_BUFFER_STATE b ) %* { if ( ! b ) return; if ( b == yy_current_buffer ) yy_current_buffer = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) yy_flex_free( (void *) b->yy_ch_buf ); yy_flex_free( (void *) b ); } %- #ifndef YY_ALWAYS_INTERACTIVE #ifndef YY_NEVER_INTERACTIVE extern int isatty YY_PROTO(( int )); #endif #endif #ifdef YY_USE_PROTOS void yy_init_buffer( YY_BUFFER_STATE b, FILE *file ) #else void yy_init_buffer( b, file ) YY_BUFFER_STATE b; FILE *file; #endif %+ extern "C" int isatty YY_PROTO(( int )); void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream* file ) %* { yy_flush_buffer( b ); b->yy_input_file = file; b->yy_fill_buffer = 1; %- #if YY_ALWAYS_INTERACTIVE b->yy_is_interactive = 1; #else #if YY_NEVER_INTERACTIVE b->yy_is_interactive = 0; #else b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; #endif #endif %+ b->yy_is_interactive = 0; %* } %- #ifdef YY_USE_PROTOS void yy_flush_buffer( YY_BUFFER_STATE b ) #else void yy_flush_buffer( b ) YY_BUFFER_STATE b; #endif %+ void yyFlexLexer::yy_flush_buffer( YY_BUFFER_STATE b ) %* { if ( ! b ) return; b->yy_n_chars = 0; /* We always need two end-of-buffer characters. The first causes * a transition to the end-of-buffer state. The second causes * a jam in that state. */ b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; b->yy_buf_pos = &b->yy_ch_buf[0]; b->yy_at_bol = 1; b->yy_buffer_status = YY_BUFFER_NEW; if ( b == yy_current_buffer ) yy_load_buffer_state(); } %* #ifndef YY_NO_SCAN_BUFFER %- #ifdef YY_USE_PROTOS YY_BUFFER_STATE yy_scan_buffer( YY_CHAR *base, yy_size_t size ) #else YY_BUFFER_STATE yy_scan_buffer( base, size ) YY_CHAR *base; yy_size_t size; #endif { YY_BUFFER_STATE b; if ( size < 2 || base[size-2] != YY_END_OF_BUFFER_CHAR || base[size-1] != YY_END_OF_BUFFER_CHAR ) /* They forgot to leave room for the EOB's. */ return 0; b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; b->yy_input_file = 0; b->yy_n_chars = b->yy_buf_size; b->yy_is_interactive = 0; b->yy_at_bol = 1; b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; yy_switch_to_buffer( b ); return b; } %* #endif #ifndef YY_NO_SCAN_STRING %- #ifdef YY_USE_PROTOS YY_BUFFER_STATE yy_scan_string( yyconst YY_CHAR *yy_str ) #else YY_BUFFER_STATE yy_scan_string( yy_str ) yyconst YY_CHAR *yy_str; #endif { int len; for ( len = 0; yy_str[len]; ++len ) ; return yy_scan_chars( yy_str, len ); } %* #endif #ifndef YY_NO_SCAN_BYTES %- #ifdef YY_USE_PROTOS YY_BUFFER_STATE yy_scan_chars( yyconst YY_CHAR *chars, int len ) #else YY_BUFFER_STATE yy_scan_chars( chars, len ) yyconst YY_CHAR *chars; int len; #endif { YY_BUFFER_STATE b; YY_CHAR *buf; yy_size_t n; int i; /* Get memory for full buffer, including space for trailing EOB's. */ n = len + 2; buf = (YY_CHAR *) yy_flex_alloc( n * sizeof( YY_CHAR ) ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_chars()" ); for ( i = 0; i < len; ++i ) buf[i] = chars[i]; buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR; b = yy_scan_buffer( buf, n ); if ( ! b ) YY_FATAL_ERROR( "bad buffer in yy_scan_chars()" ); /* It's okay to grow etc. this buffer, and we should throw it * away when we're done. */ b->yy_is_our_buffer = 1; return b; } %* #endif #ifndef YY_NO_PUSH_STATE %- #ifdef YY_USE_PROTOS static void yy_push_state( int new_state ) #else static void yy_push_state( new_state ) int new_state; #endif %+ void yyFlexLexer::yy_push_state( int new_state ) %* { if ( yy_start_stack_ptr >= yy_start_stack_depth ) { yy_size_t new_size; yy_start_stack_depth += YY_START_STACK_INCR; new_size = yy_start_stack_depth * sizeof( int ); if ( ! yy_start_stack ) yy_start_stack = (int *) yy_flex_alloc( new_size ); else yy_start_stack = (int *) yy_flex_realloc( (void *) yy_start_stack, new_size ); if ( ! yy_start_stack ) YY_FATAL_ERROR( "out of memory expanding start-condition stack" ); } yy_start_stack[yy_start_stack_ptr++] = YY_START; BEGIN(new_state); } #endif #ifndef YY_NO_POP_STATE %- static void yy_pop_state() %+ void yyFlexLexer::yy_pop_state() %* { if ( --yy_start_stack_ptr < 0 ) YY_FATAL_ERROR( "start-condition stack underflow" ); BEGIN(yy_start_stack[yy_start_stack_ptr]); } #endif #ifndef YY_NO_TOP_STATE %- static int yy_top_state() %+ int yyFlexLexer::yy_top_state() %* { return yy_start_stack[yy_start_stack_ptr - 1]; } #endif #ifndef YY_EXIT_FAILURE #define YY_EXIT_FAILURE 2 #endif %- #ifdef YY_USE_PROTOS static void yy_fatal_error( yyconst char msg[] ) #else static void yy_fatal_error( msg ) char msg[]; #endif { (void) fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); } %+ void yyFlexLexer::LexerError( yyconst char msg[] ) { std::cerr << msg << '\n'; exit( YY_EXIT_FAILURE ); } %* /* Redefine yyless() so it works in section 3 code. */ #undef yyless #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ yytext[yyleng] = yy_hold_char; \ yy_c_buf_p = yytext + n; \ yy_hold_char = *yy_c_buf_p; \ *yy_c_buf_p = (YY_CHAR) '\0'; \ yyleng = n; \ } \ while ( 0 ) /* Internal utility routines. */ #ifndef yytext_ptr #ifdef YY_USE_PROTOS static void yy_flex_strncpy( YY_CHAR *s1, yyconst YY_CHAR *s2, int n ) #else static void yy_flex_strncpy( s1, s2, n ) YY_CHAR *s1; yyconst YY_CHAR *s2; int n; #endif { register int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN #ifdef YY_USE_PROTOS static int yy_flex_strlen( yyconst YY_CHAR *s ) #else static int yy_flex_strlen( s ) yyconst YY_CHAR *s; #endif { register int n; for ( n = 0; s[n]; ++n ) ; return n; } #endif #ifdef YY_USE_PROTOS static void *yy_flex_alloc( yy_size_t size ) #else static void *yy_flex_alloc( size ) yy_size_t size; #endif { return (void *) malloc( size ); } #ifdef YY_USE_PROTOS static void *yy_flex_realloc( void *ptr, yy_size_t size ) #else static void *yy_flex_realloc( ptr, size ) void *ptr; yy_size_t size; #endif { /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter * because both ANSI C and C++ allow castless assignment from * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ return (void *) realloc( (char *) ptr, size ); } #ifdef YY_USE_PROTOS static void yy_flex_free( void *ptr ) #else static void yy_flex_free( ptr ) void *ptr; #endif { free( ptr ); } #if YY_MAIN int main() { yylex(); return 0; } #endif XQilla-2.3.0/src/schema/0000755000151400015140000000000011653572443011744 500000000000000XQilla-2.3.0/src/schema/AnyAtomicTypeDatatypeValidator.cpp0000644000151400015140000000336611653565523020471 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include AnyAtomicTypeDatatypeValidator::AnyAtomicTypeDatatypeValidator(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* const manager) : XERCES_CPP_NAMESPACE_QUALIFIER AnySimpleTypeDatatypeValidator(manager) { } AnyAtomicTypeDatatypeValidator::~AnyAtomicTypeDatatypeValidator () { } XERCES_CPP_NAMESPACE_QUALIFIER DatatypeValidator* AnyAtomicTypeDatatypeValidator::newInstance ( XERCES_CPP_NAMESPACE_QUALIFIER RefHashTableOf* const facets , XERCES_CPP_NAMESPACE_QUALIFIER RefArrayVectorOf* const enums , const int finalSet , XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* const manager ) { return new (manager) AnyAtomicTypeDatatypeValidator(manager); } XQilla-2.3.0/src/schema/SequenceType.cpp0000644000151400015140000013411211653565523015005 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif SequenceType::SequenceType(const XMLCh* typeURI,const XMLCh* typeName, SequenceType::OccurrenceIndicator occur, XPath2MemoryManager *mm) : m_pItemType(new (mm) SequenceType::ItemType(typeURI, typeName, mm)), m_nOccurrence(occur) { } SequenceType::SequenceType(SequenceType::ItemType* test, OccurrenceIndicator occur) : m_pItemType(test), m_nOccurrence(occur) { } SequenceType::SequenceType() : m_pItemType(0), m_nOccurrence(EXACTLY_ONE) { } SequenceType::~SequenceType() { if(m_pItemType) delete m_pItemType; } Result SequenceType::occurrenceMatches(const Result &toBeTested, const LocationInfo *location, const XMLCh *errorCode) const { return new OccurrenceMatchesResult(toBeTested, this, location, errorCode); } Result SequenceType::typeMatches(const Result &toBeTested, const LocationInfo *location, const XMLCh *errorCode) const { return new TypeMatchesResult(toBeTested, this, location, errorCode); } Result SequenceType::matches(const Result &toBeTested, const LocationInfo *location, const XMLCh *errorCode) const { return typeMatches(occurrenceMatches(toBeTested, location, errorCode), location, errorCode); } void SequenceType::setItemType(SequenceType::ItemType* itemType) { if(m_pItemType) delete m_pItemType; m_pItemType=itemType; } SequenceType::ItemType::ItemTestType SequenceType::getItemTestType() const { return m_pItemType->getItemTestType(); } SequenceType::OccurrenceIndicator SequenceType::getOccurrenceIndicator() const { return m_nOccurrence; } void SequenceType::setOccurrence(SequenceType::OccurrenceIndicator nOccurrence) { m_nOccurrence=nOccurrence; } const XMLCh* SequenceType::getNameURI() const { if(m_pItemType) return m_pItemType->getNameURI(); return 0; } const XMLCh* SequenceType::getTypeURI() const { if(m_pItemType) return m_pItemType->getTypeURI(); return 0; } QualifiedName *SequenceType::getConstrainingName() const { return m_pItemType->getName(); } QualifiedName *SequenceType::getConstrainingType() const { return m_pItemType->getType(); } void SequenceType::staticResolution(StaticContext* context) { if(m_pItemType) m_pItemType->staticResolution(context, this); } void SequenceType::ItemType::staticResolution(StaticContext *context, const LocationInfo *location) { // Prefix resolution should only happen once // (since SequenceType objects can be multiple times in the AST) if(!staticallyResolved_) { staticallyResolved_ = true; if(m_pType && m_TypeURI == 0) { const XMLCh *prefix = m_pType->getPrefix(); // an empty prefix means the default element and type namespace if(prefix == 0 || *prefix == 0) { m_TypeURI = context->getDefaultElementAndTypeNS(); } else { m_TypeURI = context->getUriBoundToPrefix(prefix, location); } } if(m_pName && m_NameURI == 0) { const XMLCh *prefix = m_pName->getPrefix(); // if we are testing for an attribute, an empty prefix means empty namespace; if we are testing an element, it means // the default element and type namespace if(prefix == 0 || *prefix == 0) { if(m_nTestType == TEST_ELEMENT || m_nTestType == TEST_SCHEMA_ELEMENT || m_nTestType == TEST_DOCUMENT || m_nTestType == TEST_SCHEMA_DOCUMENT) m_NameURI = context->getDefaultElementAndTypeNS(); } else { m_NameURI = context->getUriBoundToPrefix(prefix, location); } } } if(m_pType) { if(m_nTestType == ItemType::TEST_ATOMIC_TYPE) { // check if the type to be tested is defined and is really an atomic one if(!context->getDocumentCache()->isTypeDefined(m_TypeURI, m_pType->getName())) { XMLBuffer buf; buf.set(X("Type {")); buf.append(m_TypeURI); buf.append(X("}:")); buf.append(m_pType->getName()); buf.append(X(" is not defined [err:XPST0051]")); XQThrow3(StaticErrorException, X("SequenceType::ItemType::staticResolution"), buf.getRawBuffer(), location); } if(!context->getDocumentCache()->isTypeOrDerivedFromType(m_TypeURI, m_pType->getName(), SchemaSymbols::fgURI_SCHEMAFORSCHEMA, AnyAtomicType::fgDT_ANYATOMICTYPE)) { XMLBuffer buf; buf.set(X("Type {")); buf.append(m_TypeURI); buf.append(X("}:")); buf.append(m_pType->getName()); buf.append(X(" is not an atomic type [err:XPST0051]")); XQThrow3(StaticErrorException, X("SequenceType::ItemType::staticResolution"), buf.getRawBuffer(), location); } } else if(XPath2Utils::equals(m_pType->getName(), SchemaSymbols::fgATTVAL_ANYTYPE) && XPath2Utils::equals(m_TypeURI, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) { // xs:anyType is the same as a type wildcard m_pType = 0; m_TypeURI = 0; } else if(!context->getDocumentCache()->isTypeDefined(m_TypeURI, m_pType->getName())) { XMLBuffer msg; msg.set(X("Type {")); msg.append(m_TypeURI); msg.append(X("}")); msg.append(m_pType->getName()); msg.append(X(" is not defined [err:XPTY0004]")); XQThrow3(XPath2ErrorException,X("SequenceType::ItemType::matchesNameType"), msg.getRawBuffer(), location); } } switch(m_nTestType) { case TEST_SCHEMA_DOCUMENT: case TEST_SCHEMA_ELEMENT: { // retrieve the type of the element name SchemaElementDecl *elemDecl = context->getDocumentCache()->getElementDecl(m_NameURI, m_pName->getName()); if(elemDecl == NULL) { XMLBuffer msg(1023, context->getMemoryManager()); msg.set(X("Element {")); msg.append(m_NameURI); msg.append(X("}")); msg.append(m_pName->getName()); msg.append(X(" is not defined as a global element [err:XPST0081]")); XQThrow3(StaticErrorException,X("SequenceType::ItemType::staticResolution"), msg.getRawBuffer(), location); } break; } case TEST_SCHEMA_ATTRIBUTE: { // retrieve the type of the attribute name SchemaAttDef *attrDecl = context->getDocumentCache()->getAttributeDecl(m_NameURI, m_pName->getName()); if(attrDecl == NULL) { XMLBuffer msg(1023, context->getMemoryManager()); msg.set(X("Attribute {")); msg.append(m_NameURI); msg.append(X("}")); msg.append(m_pName->getName()); msg.append(X(" is not defined as a global attribute [err:XPST0081]")); XQThrow3(StaticErrorException,X("SequenceType::ItemType::staticResolution"), msg.getRawBuffer(), location); } break; } default: break; } if(returnType_) returnType_->staticResolution(context); } SequenceType::ItemType::ItemType(ItemTestType test,QualifiedName* name, QualifiedName* type) : m_nTestType(test), m_pName(name), m_pType(type), m_NameURI(0), m_TypeURI(0), m_bAllowNil(false), argTypes_(0), returnType_(0), staticallyResolved_(false) { } SequenceType::ItemType::ItemType(const XMLCh *typeURI,const XMLCh *typeName, XPath2MemoryManager *mm) : m_nTestType(TEST_ATOMIC_TYPE), m_pName(0), m_pType(new (mm) QualifiedName(typeName, mm)), m_NameURI(0), m_TypeURI(typeURI), m_bAllowNil(false), argTypes_(0), returnType_(0), staticallyResolved_(true) { } SequenceType::ItemType::ItemType(VectorOfSequenceTypes *argTypes, SequenceType *returnType) : m_nTestType(TEST_FUNCTION), m_pName(0), m_pType(0), m_NameURI(0), m_TypeURI(0), m_bAllowNil(false), argTypes_(argTypes), returnType_(returnType), staticallyResolved_(true) { } SequenceType::ItemType::~ItemType() { delete m_pName; delete m_pType; delete returnType_; } SequenceType::ItemType::ItemTestType SequenceType::ItemType::getItemTestType() const { return m_nTestType; } void SequenceType::ItemType::setItemTestType(ItemTestType t) { m_nTestType = t; } void SequenceType::ItemType::setAllowNilled(bool value) { m_bAllowNil=value; } bool SequenceType::ItemType::getAllowNilled() const { return m_bAllowNil; } void SequenceType::ItemType::setName(QualifiedName * name) { m_pName=name; } QualifiedName *SequenceType::ItemType::getName() const { return m_pName; } void SequenceType::ItemType::setType(QualifiedName * type) { m_pType=type; } QualifiedName *SequenceType::ItemType::getType() const { return m_pType; } const XMLCh* SequenceType::ItemType::getTypeURI() const { return m_TypeURI; } const XMLCh* SequenceType::ItemType::getNameURI() const { return m_NameURI; } void SequenceType::getStaticType(StaticType &st, const StaticContext *context, bool &isExact, const LocationInfo *location) const { if(m_pItemType == 0) { st = StaticType(); isExact = true; } else { m_pItemType->getStaticType(st, context, isExact, location); switch(m_nOccurrence) { case EXACTLY_ONE: break; case STAR: st.multiply(0, StaticType::UNLIMITED); break; case PLUS: st.multiply(1, StaticType::UNLIMITED); break; case QUESTION_MARK: st.multiply(0, 1); break; } } } void SequenceType::ItemType::getStaticType(StaticType &st, const StaticContext *context, bool &isExact, const LocationInfo *location) const { if(this == NULL) { st = StaticType(); isExact = true; return; } switch(m_nTestType) { case TEST_ANYTHING: { st = StaticType::ITEM_TYPE; isExact = true; break; } case TEST_ATOMIC_TYPE: { st = StaticType::create(m_TypeURI, m_pType->getName(), context, isExact); break; } case TEST_DOCUMENT: { st = StaticType::DOCUMENT_TYPE; if(m_pName == NULL && m_pType == NULL) isExact = true; else isExact = false; break; } case TEST_ELEMENT: { st = StaticType::ELEMENT_TYPE; if(m_pName == NULL && m_pType == NULL) isExact = true; else isExact = false; break; } case TEST_ATTRIBUTE: { st = StaticType::ATTRIBUTE_TYPE; if(m_pName == NULL && m_pType == NULL) isExact = true; else isExact = false; break; } case TEST_PI: { st = StaticType::PI_TYPE; if(m_pName == NULL && m_pType == NULL) isExact = true; else isExact = false; break; } case TEST_SCHEMA_ELEMENT: { st = StaticType::ELEMENT_TYPE; isExact = false; break; } case TEST_SCHEMA_ATTRIBUTE: { st = StaticType::ATTRIBUTE_TYPE; isExact = false; break; } case TEST_SCHEMA_DOCUMENT: { st = StaticType::DOCUMENT_TYPE; isExact = false; break; } case TEST_COMMENT: { st = StaticType::COMMENT_TYPE; isExact = true; break; } case TEST_TEXT: { st = StaticType::TEXT_TYPE; isExact = true; break; } case TEST_NAMESPACE: { st = StaticType::NAMESPACE_TYPE; isExact = true; break; } case TEST_NODE: { st = StaticType::NODE_TYPE; isExact = true; break; } case TEST_FUNCTION: { if(returnType_ == 0) { st = StaticType::FUNCTION_TYPE; isExact = true; } else { StaticType ret; returnType_->getStaticType(ret, context, isExact, location); isExact = isExact && argTypes_->size() == 0; st = StaticType(context->getMemoryManager(), (unsigned int)argTypes_->size(), ret); } break; } } } void SequenceType::toBuffer(XMLBuffer &buffer) const { if(m_pItemType == 0) { buffer.append(X("empty-sequence()")); } else { m_pItemType->toBuffer(buffer, m_nOccurrence != EXACTLY_ONE); switch(m_nOccurrence) { case EXACTLY_ONE: break; case STAR: buffer.append('*'); break; case PLUS: buffer.append('+'); break; case QUESTION_MARK: buffer.append('?'); break; } } } inline void outputPrefixOrURI(const XMLCh *prefix, const XMLCh *uri, XMLBuffer &buffer) { if(prefix != 0) { buffer.append(prefix); buffer.append(':'); } else if(XPath2Utils::equals(uri, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) { buffer.append(X("xs:")); } else if(uri != 0) { buffer.append('{'); buffer.append(uri); buffer.append('}'); } } void SequenceType::ItemType::toBuffer(XMLBuffer &buffer, bool addBrackets) const { switch(m_nTestType) { case TEST_ANYTHING: { buffer.append(X("item()")); break; } case TEST_ATOMIC_TYPE: { outputPrefixOrURI(m_pType->getPrefix(), m_TypeURI, buffer); buffer.append(m_pType->getName()); break; } case TEST_SCHEMA_DOCUMENT: case TEST_DOCUMENT: { buffer.append(X("document-node(")); if(m_pName != NULL || m_pType != NULL) { if(m_nTestType == TEST_DOCUMENT) buffer.append(X("element(")); else buffer.append(X("schema-element(")); if(m_pName != NULL) { outputPrefixOrURI(m_pName->getPrefix(), m_NameURI, buffer); buffer.append(m_pName->getName()); } if(m_pType != NULL) { if(m_pName == NULL) { buffer.append('*'); } buffer.append(X(", ")); outputPrefixOrURI(m_pType->getPrefix(), m_TypeURI, buffer); buffer.append(m_pType->getName()); } buffer.append(')'); } buffer.append(')'); break; } case TEST_ELEMENT: { buffer.append(X("element(")); if(m_pName != NULL) { outputPrefixOrURI(m_pName->getPrefix(), m_NameURI, buffer); buffer.append(m_pName->getName()); } if(m_pType != NULL) { if(m_pName == NULL) { buffer.append('*'); } buffer.append(X(", ")); outputPrefixOrURI(m_pType->getPrefix(), m_TypeURI, buffer); buffer.append(m_pType->getName()); } buffer.append(')'); break; } case TEST_ATTRIBUTE: { buffer.append(X("attribute(")); if(m_pName != NULL) { outputPrefixOrURI(m_pName->getPrefix(), m_NameURI, buffer); buffer.append(m_pName->getName()); } if(m_pType != NULL) { if(m_pName == NULL) { buffer.append('*'); } buffer.append(X(", ")); outputPrefixOrURI(m_pType->getPrefix(), m_TypeURI, buffer); buffer.append(m_pType->getName()); } buffer.append(')'); break; } case TEST_PI: { buffer.append(X("processing-instruction(")); if(m_pName != NULL) { outputPrefixOrURI(m_pName->getPrefix(), m_NameURI, buffer); buffer.append(m_pName->getName()); } buffer.append(')'); break; } case TEST_SCHEMA_ELEMENT: { buffer.append(X("schema-element(")); if(m_pName != NULL) { outputPrefixOrURI(m_pName->getPrefix(), m_NameURI, buffer); buffer.append(m_pName->getName()); } buffer.append(')'); break; } case TEST_SCHEMA_ATTRIBUTE: { buffer.append(X("schema-attribute(")); if(m_pName != NULL) { outputPrefixOrURI(m_pName->getPrefix(), m_NameURI, buffer); buffer.append(m_pName->getName()); } buffer.append(')'); break; } case TEST_COMMENT: { buffer.append(X("comment()")); break; } case TEST_TEXT: { buffer.append(X("text()")); break; } case TEST_NAMESPACE: { buffer.append(X("namespace-node()")); break; } case TEST_NODE: { buffer.append(X("node()")); break; } case TEST_FUNCTION: { if(returnType_ == 0) { buffer.append(X("function(*)")); } else { addBrackets = addBrackets && returnType_->getOccurrenceIndicator() == EXACTLY_ONE; if(addBrackets) buffer.append('('); buffer.append(X("function(")); bool doneOne = false; for(VectorOfSequenceTypes::const_iterator i = argTypes_->begin(); i != argTypes_->end(); ++i) { if(doneOne) buffer.append(','); doneOne = true; (*i)->toBuffer(buffer); } buffer.append(X(") as ")); returnType_->toBuffer(buffer); if(addBrackets) buffer.append(')'); } break; } } } bool SequenceType::ItemType::matchesNameType(const Item::Ptr &toBeTested, const DynamicContext* context) const { // Check name constraint if(m_pName) { if(toBeTested->isNode()) { ATQNameOrDerived::Ptr name = ((const Node*)(const Item*)toBeTested)->dmNodeName(context); if(name.isNull()) return false; // Match node name if(!(XPath2Utils::equals(m_pName->getName(), ((const ATQNameOrDerived*)name.get())->getName()))) return false; // Match node uri if(!(XPath2Utils::equals(m_NameURI, ((const ATQNameOrDerived*)name.get())->getURI()))) return false; } else return false; } //A named atomic type matches a value if the dynamic type of the //value is the same as the named atomic type or is derived from the //named atomic type by restriction. For example, the ItemType //xs:decimal matches the value 12.34 (a decimal literal); it also //matches a value whose dynamic type is shoesize, if shoesize is an //atomic type derived from xs:decimal. if(m_pType) { if(toBeTested->isAtomicValue()) { return ((AnyAtomicType*)toBeTested.get())->isInstanceOfType(m_TypeURI, m_pType->getName(), context); } else if (toBeTested->isNode()) { return ((Node*)toBeTested.get())->hasInstanceOfType(m_TypeURI, m_pType->getName(), context); } return false; } return true; } bool SequenceType::ItemType::matchesSchemaElement(const Node::Ptr &toBeTested, const DynamicContext* context) const { // retrieve the type of the element name assert(m_pName!=NULL); const XMLCh* elementNS=m_NameURI; const XMLCh* elementName=m_pName->getName(); SchemaElementDecl *elemDecl=context->getDocumentCache()->getElementDecl(elementNS, elementName); assert(elemDecl != NULL); // 1. The name of the candidate node matches the specified ElementName or matches the name of an element in a // substitution group headed by an element named ElementName. ATQNameOrDerived::Ptr name = toBeTested->dmNodeName(context); if(name.isNull()) return false; const XMLCh *node_uri = ((const ATQNameOrDerived*)name.get())->getURI(); const XMLCh *node_name = ((const ATQNameOrDerived*)name.get())->getName(); if(!(XPath2Utils::equals(elementName, node_name)) || !(XPath2Utils::equals(elementNS, node_uri))) { // the node doesn't match the ElementName; check if it is in its substitution group SchemaElementDecl* thisElemDecl=context->getDocumentCache()->getElementDecl(node_uri, node_name); if(thisElemDecl==NULL) // the node to be tested has no type info return false; SchemaElementDecl* rootElemDecl=thisElemDecl->getSubstitutionGroupElem(); bool foundIt=false; while (rootElemDecl) { if (XPath2Utils::equals(rootElemDecl->getBaseName(), elementName) && XPath2Utils::equals(context->getDocumentCache()->getSchemaUri(rootElemDecl->getURI()), elementNS)) { foundIt = true; break; } rootElemDecl = rootElemDecl->getSubstitutionGroupElem(); } if(!foundIt) return false; } // 2. derives-from(AT, ET) is true, where AT is the type of the candidate node and ET is the type declared for // element ElementName in the in-scope element declarations. ComplexTypeInfo* pTypeInfo=elemDecl->getComplexTypeInfo(); if(pTypeInfo && !toBeTested->hasInstanceOfType(pTypeInfo->getTypeUri(), pTypeInfo->getTypeLocalName(), context)) return false; // 3. Either the nilled property of the candidate node is false, or the element declaration for ElementName in // the in-scope element declarations is nillable. if(toBeTested->dmNilled(context).get()->isTrue() && !(elemDecl->getMiscFlags() & SchemaSymbols::XSD_NILLABLE)) return false; return true; } bool SequenceType::ItemType::matches(const Node::Ptr &toBeTested, DynamicContext* context) const { switch(m_nTestType) { case TEST_ELEMENT: { if(toBeTested->dmNodeKind() != Node::element_string) return false; if(!matchesNameType(toBeTested, context)) return false; // if the element has xsi:nil="true", m_bAllowNil MUST be true if(toBeTested->dmNilled(context)->isTrue() && !m_bAllowNil) return false; return true; } case TEST_ATTRIBUTE: { if(toBeTested->dmNodeKind() != Node::attribute_string) return false; if(!matchesNameType(toBeTested, context)) return false; return true; } case TEST_SCHEMA_ELEMENT: { if(toBeTested->dmNodeKind() != Node::element_string) return false; return matchesSchemaElement(toBeTested, context); } case TEST_SCHEMA_ATTRIBUTE: { if(toBeTested->dmNodeKind() != Node::attribute_string) return false; // retrieve the type of the attribute name assert(m_pName!=NULL); const XMLCh* attributeNS=m_NameURI; const XMLCh* attributeName=m_pName->getName(); SchemaAttDef* attrDecl=context->getDocumentCache()->getAttributeDecl(attributeNS, attributeName); assert(attrDecl != NULL); // 1. The name of the candidate node matches the specified AttributeName ATQNameOrDerived::Ptr name = toBeTested->dmNodeName(context); if(name.isNull()) return false; const XMLCh *node_uri = ((const ATQNameOrDerived*)name.get())->getURI(); const XMLCh *node_name = ((const ATQNameOrDerived*)name.get())->getName(); if(!(XPath2Utils::equals(attributeName, node_name)) || !(XPath2Utils::equals(attributeNS, node_uri))) return false; // 2. derives-from(AT, ET) is true, where AT is the type of the candidate node and ET is the type declared // for attribute AttributeName in the in-scope attribute declarations. DatatypeValidator* pDV=attrDecl->getDatatypeValidator(); if(pDV && !toBeTested->hasInstanceOfType(pDV->getTypeUri(), pDV->getTypeLocalName(), context)) return false; return true; } case TEST_PI: { if(toBeTested->dmNodeKind() != Node::processing_instruction_string) return false; if(!matchesNameType(toBeTested, context)) return false; return true; } case TEST_COMMENT: { return (toBeTested->dmNodeKind() == Node::comment_string); } case TEST_TEXT: { return (toBeTested->dmNodeKind() == Node::text_string); } case TEST_NAMESPACE: { return (toBeTested->dmNodeKind() == Node::namespace_string); } case TEST_SCHEMA_DOCUMENT: case TEST_DOCUMENT: { if(toBeTested->dmNodeKind() != Node::document_string) return false; if(m_pName == NULL && m_pType == NULL) return true; // if we have a constraint on name/type, they apply to the document element Result children = toBeTested->dmChildren(context, 0); Node::Ptr docElement; while((docElement = children->next(context)).notNull() && docElement->dmNodeKind() != Node::element_string) {} if(docElement.isNull()) return false; if(m_nTestType == TEST_DOCUMENT) return matchesNameType(docElement, context); else return matchesSchemaElement(docElement, context); } case TEST_NODE: case TEST_ANYTHING: { return true; } case TEST_ATOMIC_TYPE: case TEST_FUNCTION: { return false; } } return true; } bool SequenceType::ItemType::matches(const FunctionRef::Ptr &toBeTested, DynamicContext* context) const { return matches(toBeTested->getSignature(), context); } bool SequenceType::ItemType::matches(const FunctionSignature *sig, DynamicContext* context) const { switch(m_nTestType) { case TEST_ELEMENT: case TEST_ATTRIBUTE: case TEST_SCHEMA_ELEMENT: case TEST_SCHEMA_ATTRIBUTE: case TEST_NODE: case TEST_PI: case TEST_COMMENT: case TEST_TEXT: case TEST_DOCUMENT: case TEST_SCHEMA_DOCUMENT: case TEST_NAMESPACE: case TEST_ATOMIC_TYPE: { return false; } case TEST_ANYTHING: { return true; } case TEST_FUNCTION: { // function(*) matches any function item. if(returnType_ == 0) return true; // A TypedFunctionTest matches an item if it is a function item, and the function // item's type signature is a subtype of the TypedFunctionTest. size_t numArgs = sig->argSpecs ? sig->argSpecs->size() : 0; if(numArgs != argTypes_->size()) return false; if(sig->argSpecs) { ArgumentSpecs::const_iterator aa_i = sig->argSpecs->begin(); VectorOfSequenceTypes::const_iterator ba_i = argTypes_->begin(); for(; aa_i != sig->argSpecs->end() && ba_i != argTypes_->end(); ++aa_i, ++ba_i) { if(!(*ba_i)->isSubtypeOf((*aa_i)->getType(), context)) return false; } } if(sig->returnType) return sig->returnType->isSubtypeOf(returnType_, context); return returnType_->m_nOccurrence == STAR && returnType_->m_pItemType && returnType_->m_pItemType->getItemTestType() == TEST_ANYTHING; } } return true; } bool SequenceType::ItemType::matches(const Item::Ptr &toBeTested, DynamicContext* context) const { if(toBeTested->isNode()) return matches((Node::Ptr)toBeTested, context); if(toBeTested->isFunction()) return matches((FunctionRef::Ptr)toBeTested, context); switch(m_nTestType) { case TEST_ELEMENT: case TEST_ATTRIBUTE: case TEST_SCHEMA_ELEMENT: case TEST_SCHEMA_ATTRIBUTE: case TEST_NODE: case TEST_PI: case TEST_COMMENT: case TEST_TEXT: case TEST_DOCUMENT: case TEST_SCHEMA_DOCUMENT: case TEST_NAMESPACE: case TEST_FUNCTION: { return false; } case TEST_ANYTHING: { return true; } case TEST_ATOMIC_TYPE: { if(!toBeTested->isAtomicValue()) return false; return matchesNameType(toBeTested, context); } } return true; } bool SequenceType::isSubtypeOf(const SequenceType *b, const StaticContext* context) const { const SequenceType *a = this; if(b->m_pItemType == 0) return a->m_pItemType == 0; if(a->m_pItemType == 0) return b->m_nOccurrence == QUESTION_MARK || b->m_nOccurrence == STAR; switch(b->m_nOccurrence) { case EXACTLY_ONE: if(a->m_nOccurrence != EXACTLY_ONE) return false; break; case PLUS: if(a->m_nOccurrence != EXACTLY_ONE && a->m_nOccurrence != PLUS) return false; break; case QUESTION_MARK: if(a->m_nOccurrence != QUESTION_MARK && a->m_nOccurrence != EXACTLY_ONE) return false; break; case STAR: break; } return a->m_pItemType->isSubtypeOf(b->m_pItemType, context); } bool SequenceType::ItemType::isSubtypeOfNameType(const ItemType *b, const StaticContext* context) const { const ItemType *a = this; if(a->m_pName) { if(b->m_pName == 0) return false; if(!XPath2Utils::equals(a->m_pName->getName(), b->m_pName->getName()) || !XPath2Utils::equals(a->m_NameURI, b->m_NameURI)) return false; } if(a->m_pType) { if(b->m_pType == 0) return false; if(!context->isTypeOrDerivedFromType(a->m_TypeURI, a->m_pType->getName(), b->m_TypeURI, b->m_pType->getName())) return false; } return true; } bool SequenceType::ItemType::isSubtypeOf(const ItemType *b, const StaticContext* context) const { const ItemType *a = this; switch(b->m_nTestType) { case TEST_ATOMIC_TYPE: { // Ai and Bi are AtomicTypes, and derives-from(Ai, Bi) returns true. if(b->m_nTestType != TEST_ATOMIC_TYPE) return false; return a->isSubtypeOfNameType(b, context); } case TEST_ANYTHING: { // Bi is item(). return true; } case TEST_NODE: { // Bi is node(), and Ai is a KindTest. switch(a->m_nTestType) { case TEST_ELEMENT: case TEST_ATTRIBUTE: case TEST_SCHEMA_ELEMENT: case TEST_SCHEMA_ATTRIBUTE: case TEST_NODE: case TEST_PI: case TEST_COMMENT: case TEST_TEXT: case TEST_DOCUMENT: case TEST_SCHEMA_DOCUMENT: return true; default: return false; } } case TEST_TEXT: { // Bi is text() and Ai is also text(). return b->m_nTestType == TEST_TEXT; } case TEST_COMMENT: { // Bi is comment() and Ai is also comment(). return a->m_nTestType == TEST_COMMENT; } case TEST_NAMESPACE: { // Bi is namespace-node() and Ai is also namespace-node(). return a->m_nTestType == TEST_NAMESPACE; } case TEST_PI: { // Bi is processing-instruction() and Ai is either processing-instruction() or processing-instruction(N) for any name N.. // Bi is processing-instruction(Bn), and Ai is also processing-instruction(Bn). if(a->m_nTestType != TEST_PI) return false; return a->isSubtypeOfNameType(b, context); } case TEST_DOCUMENT: // Bi is document-node() and Ai is either document-node() or document-node(E) for any ElementTest E. // Bi is document-node(Be) and Ai is document-node(Ae), and subtype-itemtype(Ae, Be). case TEST_ELEMENT: { // Bi is either element() or element(*), and Ai is an ElementTest. // Bi is either element(Bn) or element(Bn, xs:anyType), and Ai is either element(Bn), or element(Bn, T) for any type T. // Bi is element(Bn, Bt), Ai is element(Bn, At), and derives-from(At, Bt) returns true. // Bi is element(Bn, Bt?), Ai is either element(Bn, At), or element(Bn, At?), and derives-from(At, Bt) returns true. // Bi is element(*, Bt), Ai is either element(*, At), or element(N, At) for any name N, and derives-from(At, Bt) returns true. // Bi is element(*, Bt?), Ai is either element(*, At), element(*, At?), element(N, At), or element(N, At?) for any name N, and derives-from(At, Bt) returns true. if(a->m_nTestType != b->m_nTestType) return false; if(!a->isSubtypeOfNameType(b, context)) return false; return !a->m_bAllowNil || b->m_bAllowNil; } case TEST_SCHEMA_DOCUMENT: // Bi is document-node() and Ai is either document-node() or document-node(E) for any ElementTest E. // Bi is document-node(Be) and Ai is document-node(Ae), and subtype-itemtype(Ae, Be). case TEST_SCHEMA_ELEMENT: { // Bi is schema-element(Bn), Ai is schema-element(An), and either the expanded QName An equals the expanded QName Bn or // the element declaration named An is in the substitution group of the element declaration named Bn. if(a->m_nTestType != b->m_nTestType) return false; if(a->isSubtypeOfNameType(b, context)) return true; // Check substitution groups SchemaElementDecl* aElemDecl = context->getDocumentCache()->getElementDecl(a->m_NameURI, a->m_pName->getName()); while(aElemDecl) { if(XPath2Utils::equals(aElemDecl->getBaseName(), b->m_pName->getName()) && XPath2Utils::equals(context->getDocumentCache()->getSchemaUri(aElemDecl->getURI()), b->m_NameURI)) return true; aElemDecl = aElemDecl->getSubstitutionGroupElem(); } return false; } case TEST_ATTRIBUTE: { // Bi is either attribute() or attribute(*), and Ai is an AttributeTest. // Bi is either attribute(Bn) or attribute(Bn, xs:anyType), and Ai is either attribute(Bn), or attribute(Bn, T) for any type T. // Bi is attribute(Bn, Bt), Ai is attribute(Bn, At), and derives-from(At, Bt) returns true. // Bi is attribute(*, Bt), Ai is either attribute(*, At), or attribute(N, At) for any name N, and derives-from(At, Bt) returns true. if(a->m_nTestType != TEST_ATTRIBUTE) return false; if(!a->isSubtypeOfNameType(b, context)) return false; return true; } case TEST_SCHEMA_ATTRIBUTE: { // Bi is schema-attribute(Bn) and Ai is also schema-attribute(Bn). if(a->m_nTestType != TEST_SCHEMA_ATTRIBUTE) return false; return a->isSubtypeOfNameType(b, context); } case TEST_FUNCTION: { // Bi is function(*), and Ai is a FunctionTest. if(a->m_nTestType != TEST_FUNCTION) return false; if(b->returnType_ == 0) return true; if(a->returnType_ == 0) return false; // Bi is function(Ba_1, Ba_2, ... Ba_N) as Br, Ai is function(Aa_1, Aa_2, ... Aa_M) as Ar, N (arity of Bi) equals M (arity of Ai), // subtype(Ar, Br), and for values of I between 1 and N, subtype(Ba_I, Aa_I). if(a->argTypes_->size() != b->argTypes_->size()) return false; VectorOfSequenceTypes::const_iterator aa_i = a->argTypes_->begin(); VectorOfSequenceTypes::const_iterator ba_i = b->argTypes_->begin(); for(; aa_i != a->argTypes_->end() && ba_i != b->argTypes_->end(); ++aa_i, ++ba_i) { if(!(*ba_i)->isSubtypeOf(*aa_i, context)) return false; } return a->returnType_->isSubtypeOf(b->returnType_, context); } } return true; } Result SequenceType::convertFunctionArg(const Result &input, DynamicContext *context, bool xpath1Compat, const LocationInfo *location, const XMLCh *errorCode) { // From XPath2 Spec, Section 3.1.5 (http://www.w3.org/TR/xpath20/#id-function-calls) // The function conversion rules are used to convert an argument value to its expected type; that is, to the // declared type of the function parameter. The expected type is expressed as a SequenceType. The function // conversion rules are applied to a given value as follows: Result result(input); if(m_pItemType!=NULL) { SequenceType::ItemType::ItemTestType testType = getItemTestType(); // FS says we atomize first if the sequence type is atomic, and I think that's sensible - jpcs if(testType == ItemType::TEST_ATOMIC_TYPE) { result = new AtomizeResult(location, result); } // If XPath 1.0 compatibility mode is true and an argument is not of the expected type, then the following // conversions are applied sequentially to the argument value V: if(xpath1Compat) { if(m_nOccurrence == SequenceType::EXACTLY_ONE || m_nOccurrence == SequenceType::QUESTION_MARK) { // 1. If the expected type calls for a single item or optional single item (examples: xs:string, // xs:string?, xdt:untypedAtomic, xdt:untypedAtomic?, node(), node()?, item(), item()?), then the // value V is effectively replaced by V[1]. Item::Ptr item = result->next(context); if(testType == ItemType::TEST_ATOMIC_TYPE) { const XMLCh* typeURI = m_pItemType->getTypeURI(); const XMLCh* typeName = m_pItemType->getType()->getName(); // 2. If the expected type is xs:string or xs:string?, then the value V is effectively replaced by // fn:string(V). if(XPath2Utils::equals(typeName, SchemaSymbols::fgDT_STRING) && XPath2Utils::equals(typeURI, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) { item = FunctionString::string_item(item, context); } // 3. If the expected type is xs:double or xs:double?, then the value V is effectively replaced by // fn:number(V). else if(XPath2Utils::equals(typeName, SchemaSymbols::fgDT_DOUBLE) && XPath2Utils::equals(typeURI, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) { item = FunctionNumber::number(item, context, this); } } result = item; } } // If the expected type is a sequence of an atomic type (possibly with an occurrence indicator *, +, or ?), // the following conversions are applied: else if(testType == ItemType::TEST_ATOMIC_TYPE) { const XMLCh *uri = m_pItemType->getTypeURI(); const XMLCh *name = m_pItemType->getType()->getName(); bool isPrimitive = false; AnyAtomicType::AtomicObjectType typeIndex = context->getItemFactory()->getPrimitiveTypeIndex(uri, name, isPrimitive); if(!XPath2Utils::equals(name, AnyAtomicType::fgDT_ANYATOMICTYPE) || !XPath2Utils::equals(uri, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) { result = new PromoteUntypedResult(location, result, isPrimitive, typeIndex, uri, name); } if(XPath2Utils::equals(uri, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) { if(XPath2Utils::equals(name, SchemaSymbols::fgDT_DOUBLE) || XPath2Utils::equals(name, SchemaSymbols::fgDT_FLOAT)) { result = new PromoteNumericResult(location, result, typeIndex); } if(XPath2Utils::equals(name, SchemaSymbols::fgDT_STRING)) { result = new PromoteAnyURIResult(location, result); } } } } // If, after the above conversions, the resulting value does not match the expected type according to the // rules for SequenceType Matching, a type error is raised. [err:XPTY0004] Note that the rules for // SequenceType Matching permit a value of a derived type to be substituted for a value of its base type. return matches(result, location, errorCode); } ASTNode *SequenceType::convertFunctionArg(ASTNode *arg, StaticContext *context, bool numericFunction, const LocationInfo *location) { XPath2MemoryManager *mm = context->getMemoryManager(); // From XPath2 Spec, Section 3.1.5 (http://www.w3.org/TR/xpath20/#id-function-calls) // The function conversion rules are used to convert an argument value to its expected type; that is, to the // declared type of the function parameter. The expected type is expressed as a SequenceType. The function // conversion rules are applied to a given value as follows: if(m_pItemType!=NULL) { SequenceType::ItemType::ItemTestType testType = getItemTestType(); // If XPath 1.0 compatibility mode is true and an argument is not of the expected type, then the following // conversions are applied sequentially to the argument value V: if(context->getXPath1CompatibilityMode()) { if(m_nOccurrence == SequenceType::EXACTLY_ONE || m_nOccurrence == SequenceType::QUESTION_MARK) { // 1. If the expected type calls for a single item or optional single item (examples: xs:string, // xs:string?, xdt:untypedAtomic, xdt:untypedAtomic?, node(), node()?, item(), item()?), then the // value V is effectively replaced by V[1]. VectorOfASTNodes headargs = VectorOfASTNodes(XQillaAllocator(mm)); headargs.push_back(arg); arg = new (mm) FunctionHead(headargs, mm); arg->setLocationInfo(location); if(testType == ItemType::TEST_ATOMIC_TYPE) { const XMLCh *typeURI = m_pItemType->getTypeURI(); const XMLCh *typeName = m_pItemType->getType()->getName(); // 2. If the expected type is xs:string or xs:string?, then the value V is effectively replaced by // fn:string(V). if(XPath2Utils::equals(typeName, SchemaSymbols::fgDT_STRING) && XPath2Utils::equals(typeURI, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) { VectorOfASTNodes stringargs = VectorOfASTNodes(XQillaAllocator(mm)); stringargs.push_back(arg); arg = new (mm) FunctionString(stringargs, mm); arg->setLocationInfo(location); } // 3. If the expected type is xs:double or xs:double?, then the value V is effectively replaced by // fn:number(V). else if(XPath2Utils::equals(typeName, SchemaSymbols::fgDT_DOUBLE) && XPath2Utils::equals(typeURI, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) { VectorOfASTNodes numberargs = VectorOfASTNodes(XQillaAllocator(mm)); numberargs.push_back(arg); arg = new (mm) FunctionNumber(numberargs, mm); arg->setLocationInfo(location); } } } } // If the expected type is a sequence of an atomic type (possibly with an occurrence indicator *, +, or ?), // the following conversions are applied: if(testType == ItemType::TEST_ATOMIC_TYPE) { arg = new (mm) XQAtomize(arg, mm); arg->setLocationInfo(location); const XMLCh *uri = m_pItemType->getTypeURI(); const XMLCh *name = m_pItemType->getType()->getName(); if(numericFunction && XPath2Utils::equals(uri, SchemaSymbols::fgURI_SCHEMAFORSCHEMA) && XPath2Utils::equals(name, AnyAtomicType::fgDT_ANYATOMICTYPE)) { arg = new (mm) XQPromoteUntyped(arg, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_DOUBLE, mm); arg->setLocationInfo(location); } else { arg = new (mm) XQPromoteUntyped(arg, uri, name, mm); arg->setLocationInfo(location); } arg = new (mm) XQPromoteNumeric(arg, uri, name, mm); arg->setLocationInfo(location); arg = new (mm) XQPromoteAnyURI(arg, uri, name, mm); arg->setLocationInfo(location); } else if(testType == ItemType::TEST_FUNCTION && m_pItemType->getReturnType() != 0) { arg = new (mm) XQFunctionCoercion(arg, this, mm); } } // If, after the above conversions, the resulting value does not match the expected type according to the // rules for SequenceType Matching, a type error is raised. [err:XPTY0004] Note that the rules for // SequenceType Matching permit a value of a derived type to be substituted for a value of its base type. arg = new (mm) XQTreatAs(arg, this, mm); arg->setLocationInfo(location); return arg; } const SequenceType::ItemType *SequenceType::getItemType() const { return m_pItemType; } //////////////////////////////////////// // OccurrenceMatchesResult //////////////////////////////////////// SequenceType::OccurrenceMatchesResult::OccurrenceMatchesResult(const Result &parent, const SequenceType *seqType, const LocationInfo *location, const XMLCh *errorCode) : ResultImpl(location), _seqType(seqType), _parent(parent), _errorCode(errorCode), _toDo(true) { } Item::Ptr SequenceType::OccurrenceMatchesResult::next(DynamicContext *context) { Item::Ptr item = _parent->next(context); // "SequenceType matching between a given value and a given SequenceType is performed as follows: // If the SequenceType is empty, the match succeeds only if the value is an empty sequence." if(_seqType->getItemType() == NULL && item.notNull()) { XMLBuffer buf; buf.set(X("Sequence does not match type ")); _seqType->toBuffer(buf); buf.append(X(" - the sequence contains items [")); buf.append(X(" [")); buf.append(_errorCode); buf.append(X("]")); XQThrow(XPath2TypeMatchException, X("SequenceType::OccurrenceMatchesResult::next"), buf.getRawBuffer()); } // "If the SequenceType contains an ItemType and an OccurrenceIndicator, the match succeeds only if // the number of items in the value matches the OccurrenceIndicator and each of these items matches the ItemType. " if(_seqType->getItemType() && (_seqType->getOccurrenceIndicator() == PLUS || _seqType->getOccurrenceIndicator() == EXACTLY_ONE) && item.isNull()) { XMLBuffer buf; buf.set(X("Sequence does not match type ")); _seqType->toBuffer(buf); buf.append(X(" - the sequence does not contain items [")); buf.append(_errorCode); buf.append(X("]")); XQThrow(XPath2TypeMatchException, X("SequenceType::OccurrenceMatchesResult::next"), buf.getRawBuffer()); } // "If the SequenceType is an ItemType with no OccurrenceIndicator, the match succeeds only if // the value contains precisely one item and that item matches the ItemType " if(_seqType->getItemType() && (_seqType->getOccurrenceIndicator() == EXACTLY_ONE || _seqType->getOccurrenceIndicator() == QUESTION_MARK) && item.notNull()) { // Do the tests on the number of items up front, // since often functions that cast to a single or // optional item only call next once. - jpcs Item::Ptr second = _parent->next(context); if(second.isNull()) { _parent = 0; } else { XMLBuffer buf; buf.set(X("Sequence does not match type ")); _seqType->toBuffer(buf); buf.append(X(" - the sequence contains more than one item [")); buf.append(_errorCode); buf.append(X("]")); XQThrow(XPath2TypeMatchException, X("SequenceType::OccurrenceMatchesResult::next"), buf.getRawBuffer()); } } if(item.isNull()) { *resultPointer_ = 0; } else { *resultPointer_ = _parent; } return item; } //////////////////////////////////////// // TypeMatchesResult //////////////////////////////////////// SequenceType::TypeMatchesResult::TypeMatchesResult(const Result &parent, const SequenceType *seqType, const LocationInfo *location, const XMLCh *errorCode) : ResultImpl(location), _seqType(seqType), _parent(parent), _errorCode(errorCode) { } Item::Ptr SequenceType::TypeMatchesResult::next(DynamicContext *context) { Item::Ptr item = _parent->next(context); if(item.isNull()) { _parent = 0; } else if(!_seqType->getItemType()->matches(item, context)) { XMLBuffer buf; buf.set(X("Sequence does not match type ")); _seqType->toBuffer(buf); buf.append(X(" - found item of type ")); item->typeToBuffer(context, buf); buf.append(X(" [")); buf.append(_errorCode); buf.append(X("]")); XQThrow(XPath2TypeMatchException, X("SequenceType::MatchesResult::next"), buf.getRawBuffer()); } return item; } XQilla-2.3.0/src/schema/DocumentCacheImpl.cpp0000644000151400015140000006314111653565523015722 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; class GrammarResolverHack : public XMemory { public: bool fCacheGrammar; bool fUseCachedGrammar; bool fGrammarPoolFromExternalApplication; XMLStringPool* fStringPool; RefHashTableOf* fGrammarBucket; RefHashTableOf* fGrammarFromPool; DatatypeValidatorFactory* fDataTypeReg; MemoryManager* fMemoryManager; XMLGrammarPool* fGrammarPool; XSModel* fXSModel; XSModel* fGrammarPoolXSModel; ValueVectorOf* fGrammarsToAddToXSModel; }; #if DEBUG static int checkGrammarResolverHack() { assert(sizeof(GrammarResolver) == sizeof(GrammarResolverHack)); return 1; } static int checkGrammarResolverHack_int = checkGrammarResolverHack(); #endif // untyped const XMLCh DocumentCache::g_szUntyped[]= { chLatin_u, chLatin_n, chLatin_t, chLatin_y, chLatin_p, chLatin_e, chLatin_d, chNull }; DocumentCacheImpl::DocumentCacheImpl(MemoryManager* memMgr, XMLGrammarPool *xmlgr) : grammarResolver_(0), scanner_(0), entityResolver_(0), doPSVI_(true), events_(0), attrList_(0), attrCount_(0), elementInfo_(0), strictValidation_(false), loadedSchemas_(0), schemaLocations_(1023, memMgr), noNamespaceSchemaLocation_(1023, memMgr), memMgr_(memMgr) { init(xmlgr); } DocumentCacheImpl::DocumentCacheImpl(const DocumentCacheImpl *parent, MemoryManager* memMgr) : grammarResolver_(0), scanner_(0), entityResolver_(0), doPSVI_(parent->doPSVI_), events_(0), attrList_(0), attrCount_(0), elementInfo_(0), strictValidation_(false), loadedSchemas_(0), schemaLocations_(1023, memMgr), noNamespaceSchemaLocation_(1023, memMgr), memMgr_(memMgr) { init(parent->grammarResolver_->getGrammarPool()); schemaLocations_.set(parent->schemaLocations_.getRawBuffer()); noNamespaceSchemaLocation_.set(parent->noNamespaceSchemaLocation_.getRawBuffer()); getScanner()->setExternalNoNamespaceSchemaLocation(noNamespaceSchemaLocation_.getRawBuffer()); getScanner()->setExternalSchemaLocation(schemaLocations_.getRawBuffer()); } void DocumentCacheImpl::init(XMLGrammarPool *gramPool) { grammarResolver_ = new (memMgr_) GrammarResolver(gramPool, memMgr_); if(gramPool) { grammarResolver_->cacheGrammarFromParse(true); grammarResolver_->useCachedGrammarInParse(true); // Hack around a Xerces bug, where the GrammarResolver doesn't // initialise it's XSModel correctly from a locked XMLGrammarPool - jpcs // 2008/06/06 I don't think this is needed anymore - jpcs // ((GrammarResolverHack*)grammarResolver_)->fGrammarPoolXSModel = gramPool->getXSModel(); } } XMLScanner *DocumentCacheImpl::getScanner() { if(scanner_ == 0) { scanner_ = new (memMgr_) IGXMLScanner(0, grammarResolver_, memMgr_); scanner_->setURIStringPool(grammarResolver_->getStringPool()); // hold the loaded schemas in the cache, so that can be reused scanner_->cacheGrammarFromParse(true); scanner_->useCachedGrammarInParse(true); // set up the parser scanner_->setDocHandler(this); scanner_->setEntityHandler(this); scanner_->setErrorReporter(this); scanner_->setPSVIHandler(this); scanner_->setDoNamespaces(true); scanner_->setDoSchema(true); scanner_->setValidationScheme(XMLScanner::Val_Auto); scanner_->setValidationConstraintFatal(false); } return scanner_; } DocumentCacheImpl::~DocumentCacheImpl() { delete scanner_; delete grammarResolver_; delete loadedSchemas_; } void DocumentCacheImpl::setXMLEntityResolver(XMLEntityResolver* const handler) { entityResolver_ = handler; } XMLEntityResolver* DocumentCacheImpl::getXMLEntityResolver() const { return entityResolver_; } void DocumentCacheImpl::startInputSource(const InputSource& inputSource) { } void DocumentCacheImpl::endInputSource(const InputSource& inputSource) { } bool DocumentCacheImpl::expandSystemId(const XMLCh* const systemId, XMLBuffer &toFill) { return false; } void DocumentCacheImpl::resetEntities() { } InputSource* DocumentCacheImpl::resolveEntity(const XMLCh* const publicId, const XMLCh* const systemId, const XMLCh* const baseURI) { return 0; } InputSource* DocumentCacheImpl::resolveEntity(XMLResourceIdentifier* resourceIdentifier) { if(entityResolver_) return entityResolver_->resolveEntity(resourceIdentifier); return 0; } void DocumentCacheImpl::resetErrors() { } void DocumentCacheImpl::error(const unsigned int errCode, const XMLCh* const errDomain, const XMLErrorReporter::ErrTypes type, const XMLCh* const errorText, const XMLCh* const systemId, const XMLCh* const publicId, const XMLFileLoc lineNum, const XMLFileLoc colNum) { // Skip validation errors if validation isn't strict if(!strictValidation_ && errDomain == XMLUni::fgValidityDomain) return; // Throw for errors and fatal errors if(type != XMLErrorReporter::ErrType_Warning) throw SAXParseException(errorText, publicId, systemId, lineNum, colNum, memMgr_); } InputSource *DocumentCacheImpl::resolveURI(const XMLCh *uri, const XMLCh *baseUri) { InputSource *srcToUse = 0; XMLURL urlTmp; if(urlTmp.setURL(baseUri, uri, urlTmp) && !urlTmp.isRelative()) { srcToUse = new URLInputSource(urlTmp); } else { // It's not a URL, so let's assume it's a local file name. AutoDeallocate tmpBuf(0, XMLPlatformUtils::fgMemoryManager); if(baseUri && baseUri[0]) { tmpBuf.set(XMLPlatformUtils::weavePaths(baseUri, uri)); uri = tmpBuf; } srcToUse = new LocalFileInputSource(uri); } return srcToUse; } Node::Ptr DocumentCacheImpl::loadDocument(const XMLCh* uri, DynamicContext *context, const QueryPathNode *projection) { InputSource* srcToUse = 0; if(entityResolver_){ XMLResourceIdentifier resourceIdentifier(XMLResourceIdentifier::UnKnown, uri, 0, XMLUni::fgZeroLenString, context->getBaseURI()); srcToUse = entityResolver_->resolveEntity(&resourceIdentifier); } if(srcToUse == 0) { srcToUse = resolveURI(uri, context->getBaseURI()); } Janitor janIS(srcToUse); return parseDocument(*srcToUse, context, projection); } Node::Ptr DocumentCacheImpl::parseDocument(InputSource &srcToUse, DynamicContext *context, const QueryPathNode *projection) { AutoDelete builder(context->createSequenceBuilder()); QueryPathTreeFilter qptf(projection, builder.get()); EventHandler *handler = projection ? (EventHandler*)&qptf : (EventHandler*)builder.get(); parseDocument(srcToUse, handler, context); handler->endEvent(); return (Node*)builder->getSequence().first().get(); } void DocumentCacheImpl::parseDocument(InputSource &srcToUse, EventHandler *handler, DynamicContext *context) { events_ = handler; attrList_ = 0; attrCount_ = 0; elementInfo_ = 0; strictValidation_ = false; try { getScanner()->setDoSchema(doPSVI_); getScanner()->scanDocument(srcToUse); } catch(const SAXException& toCatch) { //TODO: Find a way to decipher whether the exception is actually because of a parsing problem or because the document can't be found XQThrow2(XMLParseException, X("DocumentCacheImpl::parseDocument"), toCatch.getMessage()); } catch(const XMLException& toCatch) { XQThrow2(XMLParseException,X("DocumentCacheImpl::parseDocument"), toCatch.getMessage()); } } static inline void setLocation(LocationInfo &info, const Locator *locator) { info.setLocationInfo(locator->getSystemId(), (unsigned int)(locator->getLineNumber()), (unsigned int)(locator->getColumnNumber())); } #define LOCATION setLocation(location_, getScanner()->getLocator()) void DocumentCacheImpl::startDocument() { LOCATION; events_->setLocationInfo(&location_); // Encode space chars in the document URI as %20 const XMLCh *uri = getScanner()->getLocator()->getSystemId(); XMLBuffer encode(XMLString::stringLen(uri) + 1); if(uri != 0) { for(const XMLCh *uptr = uri; *uptr; ++uptr) { if(*uptr != ' ') encode.append(*uptr); else { encode.append('%'); encode.append('2'); encode.append('0'); } } uri = encode.getRawBuffer(); } events_->startDocumentEvent(uri, getScanner()->getReaderMgr()->getCurrentEncodingStr()); } void DocumentCacheImpl::endDocument() { LOCATION; events_->endDocumentEvent(); } void DocumentCacheImpl::resetDocument() { } void DocumentCacheImpl::startElement(const XMLElementDecl& elemDecl, const unsigned int urlId, const XMLCh* const elemPrefix, const RefVectorOf& attrList, const XercesSizeUint attrCount, const bool isEmpty, const bool isRoot) { LOCATION; events_->startElementEvent(emptyToNull(elemPrefix), emptyToNull(getScanner()->getURIText(urlId)), elemDecl.getBaseName()); attrList_ = &attrList; attrCount_ = (unsigned int) attrCount; if(!getScanner()->getDoSchema() || getScanner()->getCurrentGrammarType() != Grammar::SchemaGrammarType) { handleAttributesPSVI(0, 0, 0); } if(isEmpty) { endElement(elemDecl, urlId, isRoot, elemPrefix); } } void DocumentCacheImpl::endElement(const XMLElementDecl& elemDecl, const unsigned int urlId, const bool isRoot, const XMLCh* const elemPrefix) { const XMLCh *typeURI = SchemaSymbols::fgURI_SCHEMAFORSCHEMA; const XMLCh *typeName = DocumentCache::g_szUntyped; if(elementInfo_ != 0 && elementInfo_->getValidity() == PSVIItem::VALIDITY_VALID) { if(elementInfo_->getMemberTypeDefinition()) { typeURI = elementInfo_->getMemberTypeDefinition()->getNamespace(); typeName = elementInfo_->getMemberTypeDefinition()->getName(); } else if(elementInfo_->getTypeDefinition()) { typeURI = elementInfo_->getTypeDefinition()->getNamespace(); typeName = elementInfo_->getTypeDefinition()->getName(); } else { typeURI = SchemaSymbols::fgURI_SCHEMAFORSCHEMA; typeName = SchemaSymbols::fgATTVAL_ANYTYPE; } } LOCATION; events_->endElementEvent(emptyToNull(elemPrefix), emptyToNull(getScanner()->getURIText(urlId)), elemDecl.getBaseName(), emptyToNull(typeURI), typeName); elementInfo_ = 0; } void DocumentCacheImpl::docCharacters(const XMLCh* const chars, const XercesSizeUint length, const bool cdataSection) { LOCATION; events_->textEvent(chars, (unsigned int)length); } void DocumentCacheImpl::docComment(const XMLCh* const comment) { LOCATION; events_->commentEvent(comment); } void DocumentCacheImpl::docPI(const XMLCh* const target, const XMLCh* const data) { LOCATION; events_->piEvent(target, data); } void DocumentCacheImpl::ignorableWhitespace(const XMLCh* const chars, const XercesSizeUint length, const bool cdataSection) { // No-op } void DocumentCacheImpl::startEntityReference(const XMLEntityDecl& entDecl) { // No-op } void DocumentCacheImpl::endEntityReference(const XMLEntityDecl& entDecl) { // No-op } void DocumentCacheImpl::XMLDecl(const XMLCh* const versionStr, const XMLCh* const encodingStr, const XMLCh* const standaloneStr, const XMLCh* const actualEncodingStr) { // No-op } void DocumentCacheImpl::handleElementPSVI(const XMLCh* const localName, const XMLCh* const uri, PSVIElement *elementInfo) { // We're going to deal with this in endElement(), where we know the prefix elementInfo_ = elementInfo; } void DocumentCacheImpl::handlePartialElementPSVI(const XMLCh* const localName, const XMLCh* const uri, PSVIElement *elementInfo) { } void DocumentCacheImpl::handleAttributesPSVI(const XMLCh* const localName, const XMLCh* const uri, PSVIAttributeList *psviAttributes) { // We can't get any better location for an attribute than the element where is occured for(unsigned int i = 0; i < attrCount_; ++i) { const XMLAttr *attr = attrList_->elementAt(i); if(attr->getURIId() == getScanner()->getXMLNSNamespaceId()) { events_->namespaceEvent(attr->getName(), attr->getValue()); } else if(XPath2Utils::equals(attr->getName(), XMLUni::fgXMLNSString)) { events_->namespaceEvent(0, attr->getValue()); } else { const XMLCh *auri = getScanner()->getURIText(attr->getURIId()); const XMLCh *typeURI = SchemaSymbols::fgURI_SCHEMAFORSCHEMA; const XMLCh *typeName = ATUntypedAtomic::fgDT_UNTYPEDATOMIC; if(psviAttributes != 0) { PSVIAttribute *attrInfo = psviAttributes->getAttributePSVIByName(attr->getName(), auri); if(attrInfo && attrInfo->getValidity() == PSVIItem::VALIDITY_VALID) { if(attrInfo->getMemberTypeDefinition()) { typeURI = attrInfo->getMemberTypeDefinition()->getNamespace(); typeName = attrInfo->getMemberTypeDefinition()->getName(); } else if(attrInfo->getTypeDefinition()) { typeURI = attrInfo->getTypeDefinition()->getNamespace(); typeName = attrInfo->getTypeDefinition()->getName(); } else { typeURI = SchemaSymbols::fgURI_SCHEMAFORSCHEMA; typeName = SchemaSymbols::fgDT_ANYSIMPLETYPE; } } } events_->attributeEvent(emptyToNull(attr->getPrefix()), emptyToNull(auri), attr->getName(), attr->getValue(), emptyToNull(typeURI), typeName); } } attrList_ = 0; attrCount_ = 0; } static inline const XMLCh *nullToZeroLength(const XMLCh *in) { return in ? in : XMLUni::fgZeroLenString; } /* * returns true if the type represented by uri:typename is an instance of uriToCheck:typeNameToCheck * * ie: to check * xs:integer instance of xs:decimal, * call * isTypeOrDerivedFromType("xs", "integer", "xs", "decimal") * (except of course, call with URIs, not prefixes!) */ bool DocumentCacheImpl::isTypeOrDerivedFromType(const XMLCh* const uri, const XMLCh* const typeName, const XMLCh* const uriToCheck, const XMLCh* const typeNameToCheck) const { // dumb check if(XPath2Utils::equals(typeName,typeNameToCheck) && XPath2Utils::equals(uri,uriToCheck)) return true; // xs:anyType matches anything if(XPath2Utils::equals(uriToCheck, SchemaSymbols::fgURI_SCHEMAFORSCHEMA) && XPath2Utils::equals(typeNameToCheck, SchemaSymbols::fgATTVAL_ANYTYPE)) return true; DatatypeValidator* dtvDerived = grammarResolver_->getDatatypeValidator(nullToZeroLength(uri), typeName); if(dtvDerived == NULL) { // now lets take a look at complex stuff ComplexTypeInfo *cti = getComplexTypeInfo(uri, typeName); // in the case of non-schema grammar if(cti) { // if we are here, the type is a complex type while(cti != 0) { if(XPath2Utils::equals(uriToCheck, cti->getTypeUri()) && XPath2Utils::equals(typeNameToCheck, cti->getTypeLocalName())) return true; ComplexTypeInfo *ctiOld = cti; cti = cti->getBaseComplexTypeInfo(); // might be derived from a simple type if(cti == 0) { DatatypeValidator* dtv = ctiOld->getDatatypeValidator(); while(dtv != 0) { if(XPath2Utils::equals(uriToCheck, dtv->getTypeUri()) && XPath2Utils::equals(typeNameToCheck, dtv->getTypeLocalName())) return true; dtv = dtv->getBaseValidator(); } } } } return false; } // if we are here, the type is a simple type if(XPath2Utils::equals(typeNameToCheck, SchemaSymbols::fgDT_ANYSIMPLETYPE) && XPath2Utils::equals(uriToCheck, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) return true; if(XPath2Utils::equals(typeNameToCheck, AnyAtomicType::fgDT_ANYATOMICTYPE) && XPath2Utils::equals(uriToCheck, SchemaSymbols::fgURI_SCHEMAFORSCHEMA) ) return dtvDerived->isAtomic(); DatatypeValidator* dtvBase = grammarResolver_->getDatatypeValidator(nullToZeroLength(uriToCheck), typeNameToCheck); if(dtvBase==NULL) return false; while(dtvDerived != 0) { if(XPath2Utils::equals(dtvBase->getTypeUri(), dtvDerived->getTypeUri()) && XPath2Utils::equals(dtvBase->getTypeLocalName(), dtvDerived->getTypeLocalName())) return true; dtvDerived = dtvDerived->getBaseValidator(); } return false; } bool DocumentCacheImpl::isTypeDefined(const XMLCh* const uri, const XMLCh* const typeName) const { if(getComplexTypeInfo(uri, typeName) != NULL) return true; if(grammarResolver_->getDatatypeValidator(nullToZeroLength(uri), typeName) != NULL) return true; // these types are not present in the XMLSchema grammar, but they are defined if(XPath2Utils::equals(uri, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) { return (XPath2Utils::equals(typeName, DocumentCache::g_szUntyped) || XPath2Utils::equals(typeName, SchemaSymbols::fgATTVAL_ANYTYPE)); } return false; } void DocumentCacheImpl::addSchemaLocation(const XMLCh* uri, VectorOfStrings* locations, StaticContext *context, const LocationInfo *location) { if(loadedSchemas_ == 0) { loadedSchemas_ = new (memMgr_) XMLStringPool(3, memMgr_); } XMLBuffer buf(1023,context->getMemoryManager()); if(loadedSchemas_->exists(uri)) { buf.set(X("More than one 'import schema' specifies the same target namespace \"")); buf.append(uri); buf.append(X("\" [err:XQST0058]")); XQThrow3(StaticErrorException,X("DocumentCacheImpl::addSchemaLocation"), buf.getRawBuffer(), location); } loadedSchemas_->addOrFind(uri); bool bFoundSchema=false; if(locations==NULL) { // if no locations are given, try to see if the entity resolver can still find it try { loadSchema(uri, 0, context, location); bFoundSchema = true; } catch(SAXParseException& e) { buf.set(X("An error occurred while trying to load the schema for namespace \"")); buf.append(uri); buf.append(X("\": ")); buf.append(e.getMessage()); buf.append(X(" [err:XQST0059]")); } } else { for(VectorOfStrings::iterator it=locations->begin(); it!=locations->end(); it++) { try { loadSchema(uri, *it, context, location); bFoundSchema = true; break; } catch(SAXParseException& e) { buf.set(X("An error occurred while trying to load the schema for namespace \"")); buf.append(uri); buf.append(X("\" from \"")); buf.append(*it); buf.append(X("\": ")); buf.append(e.getMessage()); buf.append(X(" [err:XQST0059]")); } } } if(!bFoundSchema) { if(buf.isEmpty()) { buf.set(X("Schema for namespace \"")); buf.append(uri); buf.append(X("\" not found [err:XQST0059]")); } XQThrow3(StaticErrorException,X("DocumentCacheImpl::addSchemaLocation"), buf.getRawBuffer(), location); } } void DocumentCacheImpl::loadSchema(const XMLCh* const uri, const XMLCh* location, StaticContext *context, const LocationInfo *info) { // if we are requested to load the XMLSchema schema, just return if(XPath2Utils::equals(uri, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) return; InputSource* srcToUse = 0; if(entityResolver_){ XMLResourceIdentifier resourceIdentifier(XMLResourceIdentifier::SchemaGrammar, location, uri, XMLUni::fgZeroLenString, context->getBaseURI()); srcToUse = entityResolver_->resolveEntity(&resourceIdentifier); } Janitor janIS(srcToUse); Grammar* grammar=NULL; if(srcToUse) { if(location == 0) location = srcToUse->getSystemId(); grammar = getScanner()->loadGrammar(*srcToUse, Grammar::SchemaGrammarType, true); } else if(location) { // Resolve the location against the base uri const XMLCh *systemId = location; XMLURL urlTmp(context->getMemoryManager()); if(urlTmp.setURL(context->getBaseURI(), location, urlTmp)) { systemId = urlTmp.getURLText(); } grammar = getScanner()->loadGrammar(systemId, Grammar::SchemaGrammarType, true); } if(grammar==NULL) XQThrow3(StaticErrorException,X("DocumentCacheImpl::loadSchema"), X("Schema not found [err:XQST0059]"), info); // Update the scanner's external schema locations, so it validates // XML documents that match if(uri == 0 || *uri == 0) { noNamespaceSchemaLocation_.set(location); getScanner()->setExternalNoNamespaceSchemaLocation(noNamespaceSchemaLocation_.getRawBuffer()); } else { schemaLocations_.append(' '); schemaLocations_.append(uri); schemaLocations_.append(' '); schemaLocations_.append(location); getScanner()->setExternalSchemaLocation(schemaLocations_.getRawBuffer()); } } unsigned int DocumentCacheImpl::getSchemaUriId(const XMLCh* uri) const { return grammarResolver_->getStringPool()->getId(uri); } const XMLCh* DocumentCacheImpl::getSchemaUri(unsigned int id) const { return grammarResolver_->getStringPool()->getValueForId(id); } GrammarResolver *DocumentCacheImpl::getGrammarResolver() const { return grammarResolver_; } DatatypeValidator* DocumentCacheImpl::getDatatypeValidator(const XMLCh* uri, const XMLCh* typeName) const { return grammarResolver_->getDatatypeValidator(nullToZeroLength(uri), typeName); } SchemaElementDecl* DocumentCacheImpl::getElementDecl(const XMLCh* elementUri, const XMLCh* elementName) const { XMLSchemaDescription* gramDesc = grammarResolver_->getGrammarPool()->createSchemaDescription(elementUri); Janitor janName(gramDesc); SchemaGrammar* schGrammar = (SchemaGrammar*)grammarResolver_->getGrammar(gramDesc); if(schGrammar == NULL) return NULL; // find the definition for this node, as a global definition return (SchemaElementDecl*)schGrammar->getElemDecl(getSchemaUriId(elementUri), elementName, NULL, (unsigned int)Grammar::TOP_LEVEL_SCOPE); } SchemaAttDef* DocumentCacheImpl::getAttributeDecl(const XMLCh* attributeUri, const XMLCh* attributeName) const { XMLSchemaDescription* gramDesc = grammarResolver_->getGrammarPool()->createSchemaDescription(attributeUri); Janitor janName(gramDesc); SchemaGrammar* schGrammar = (SchemaGrammar*)grammarResolver_->getGrammar(gramDesc); if(schGrammar==NULL) return NULL; // find the definition for this node, as a global definition return (SchemaAttDef*)schGrammar->getAttributeDeclRegistry()->get(attributeName); } ComplexTypeInfo* DocumentCacheImpl::getComplexTypeInfo(const XMLCh* uri, const XMLCh* typeName) const { Grammar* grammar = grammarResolver_->getGrammar(uri); if(grammar==NULL) return NULL; if(grammar->getGrammarType() != Grammar::SchemaGrammarType) return NULL; SchemaGrammar* schGrammar = (SchemaGrammar*)grammar; RefHashTableOf *ctr = schGrammar->getComplexTypeRegistry(); if(ctr==NULL) return NULL; XMLBuffer typeKey(1023, memMgr_); typeKey.set(uri); typeKey.append(chComma); typeKey.append(typeName); return ctr->get(typeKey.getRawBuffer()); } DocumentCache *DocumentCacheImpl::createDerivedCache(MemoryManager *memMgr) const { // lock the grammar pool, so we can share it across threads grammarResolver_->getGrammarPool()->lockPool(); // Construct a new DocumentCacheImpl, based on this one return new (memMgr) DocumentCacheImpl(this, memMgr); } XQilla-2.3.0/src/schema/SchemaValidatorFilter.cpp0000644000151400015140000010731111653565523016610 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * A large part of this file is directly derived from the * SGXMLScanner class in the Xerces-C project, which is * licenced under the Apache License v2.0 */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include using namespace std; XERCES_CPP_NAMESPACE_USE; SchemaValidatorFilter::SchemaValidatorFilter(bool strictValidation, EventHandler *next, GrammarResolver *grammarResolver, MemoryManager *mm, const LocationInfo *info) : EventFilter(next), XMLScanner(0, grammarResolver, mm), info_(info), fSchemaValidator(new (mm) SchemaValidator(0, mm)), fSchemaGrammar(0), fContent(1023, mm), fICHandler(0), fElemNonDeclPool(new (mm) RefHash3KeysIdPool(29, true, 128, mm)), strictValidation_(strictValidation), errorOccurred_(false), parentStack_(0), elemDepth_(0), elementToProcess_(false), xsiType_(0), attrCount_(0) { fSchemaGrammar = new (fGrammarPoolMemoryManager) SchemaGrammar(fGrammarPoolMemoryManager); fICHandler = new (fMemoryManager) IdentityConstraintHandler(this, fMemoryManager); // XMLScanner methods needed // ---------------------- // fScanner->incrementErrorCount(); implemented // fScanner->getValidationConstraintFatal(); implemented // fScanner->getExitOnFirstFatal(); implemented // fScanner->getInException(); implemented // fScanner->getMemoryManager(); implemented // getScanner()->getEmptyNamespaceId(); implemented // getScanner()->resolveQName(); *** // getScanner()->getURIText(); implemented // getScanner()->getDocHandler(); for docCharacters() *** // getScanner()->getValidationContext(); implemented // getScanner()->emitError(); implemented // getScanner()->getValidationSchemaFullChecking(); implemented setURIStringPool(grammarResolver->getStringPool()); // ReaderMgr methods needed // ------------------------ // fReaderMgr->getLastExtEntityInfo(); // getReaderMgr()->getCurrentReader(); to call fCurReader->isWhitespace(); MemBufInputSource inputSrc(0, 0, XMLUni::fgZeroLenString, false, fMemoryManager); XMLReader *newReader = fReaderMgr.createReader(inputSrc, true, XMLReader::RefFrom_NonLiteral, XMLReader::Type_General, XMLReader::Source_External, /*fCalculateSrcOfs*/false); fReaderMgr.pushReader(newReader, 0); fReaderMgr.setXMLVersion(XMLReader::XMLV1_1); initValidator(fSchemaValidator); setDocHandler(this); setErrorReporter(this); reset(); } SchemaValidatorFilter::~SchemaValidatorFilter() { delete fSchemaValidator; delete fSchemaGrammar; delete fICHandler; delete fElemNonDeclPool; } void SchemaValidatorFilter::reset() { fGrammar = fSchemaGrammar; fValidator = fSchemaValidator; fValidator->setGrammar(fGrammar); fValidate = true; fSchemaValidator->reset(); fSchemaValidator->setErrorReporter(fErrorReporter); fSchemaValidator->setExitOnFirstFatal(true); fSchemaValidator->setGrammarResolver(fGrammarResolver); fICHandler->reset(); fElemNonDeclPool->removeAll(); errorOccurred_ = false; } void SchemaValidatorFilter::startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding) { reset(); next_->startDocumentEvent(documentURI, encoding); } void SchemaValidatorFilter::endDocumentEvent() { if(fValidate) { checkIDRefs(); fICHandler->endDocument(); } next_->endDocumentEvent(); } void SchemaValidatorFilter::startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname) { if(elementToProcess_) processStartElement(); prefix_.set(prefix); uri_.set(uri); localname_.set(localname); elementToProcess_ = true; attrCount_ = 0; xsiType_ = 0; if(fElemStack.isEmpty()) parentStack_ = 0; else parentStack_ = const_cast(fElemStack.topElement()); elemDepth_ = fElemStack.addLevel(); fElemStack.setValidationFlag(fValidate); errorOccurred_ = false; fElemStack.addPrefix(prefix, fURIStringPool->addOrFind(uri)); next_->startElementEvent(prefix, uri, localname); } void SchemaValidatorFilter::processStartElement() { bool isRoot = parentStack_ == 0; unsigned int uriId = fURIStringPool->addOrFind(uri_.getRawBuffer()); // Handle xsi:type if(xsiType_) { int colonPos = -1; unsigned int atUriId = resolveQName(xsiType_, fPrefixBuf, ElemStack::Mode_Element, colonPos); ((SchemaValidator*)fValidator)->setXsiType(fPrefixBuf.getRawBuffer(), xsiType_ + colonPos + 1, atUriId); } //if schema, check if we should lax or skip the validation of this element bool parentValidation = fValidate; unsigned int currentScope = Grammar::TOP_LEVEL_SCOPE; bool laxThisOne = false; if(!isRoot) { // schema validator will have correct type if validating SchemaElementDecl* tempElement = (SchemaElementDecl*)parentStack_->fThisElement; SchemaElementDecl::ModelTypes modelType = tempElement->getModelType(); ComplexTypeInfo *currType = 0; if(fValidate) { currType = ((SchemaValidator*)fValidator)->getCurrentTypeInfo(); if (currType) modelType = (SchemaElementDecl::ModelTypes)currType->getContentType(); else // something must have gone wrong modelType = SchemaElementDecl::Any; } else { currType = tempElement->getComplexTypeInfo(); } if(modelType == SchemaElementDecl::Mixed_Simple || modelType == SchemaElementDecl::Mixed_Complex || modelType == SchemaElementDecl::Children) { XMLContentModel* cm = currType->getContentModel(); currentScope = parentStack_->fCurrentScope; QName element(prefix_.getRawBuffer(), localname_.getRawBuffer(), uriId, fMemoryManager); // elementDepth will be > 0 laxThisOne = laxElementValidation(&element, cm->getContentLeafNameTypeVector(), cm, elemDepth_ - 1); } else if(modelType == SchemaElementDecl::Any) { laxThisOne = true; } } else { // Switch to the initial Grammar for the root element. // This is added to fix a bug which used fSchemaGrammar rather than the // real grammar when the document is in no namespace - jpcs switchGrammar(uri_.getRawBuffer()); } XMLElementDecl* elemDecl = createElementDecl(uriId, currentScope, laxThisOne); assert(elemDecl); fElemStack.setElement(elemDecl, fReaderMgr.getCurrentReaderNum()); if(fValidate) fValidator->validateElement(elemDecl); ComplexTypeInfo* typeinfo = fValidate ? ((SchemaValidator*)fValidator)->getCurrentTypeInfo() : ((SchemaElementDecl*)elemDecl)->getComplexTypeInfo(); if(typeinfo) { currentScope = typeinfo->getScopeDefined(); // switch grammar if the typeinfo has a different grammar (happens when there is xsi:type) if(!typeinfo->getAnonymous()) { int comma = XMLString::indexOf(typeinfo->getTypeName(), chComma); if(comma > 0) { XMLBuffer prefixBuf(comma + 1, fMemoryManager); prefixBuf.append(typeinfo->getTypeName(), comma); const XMLCh *uriStr = prefixBuf.getRawBuffer(); if(!switchGrammar(uriStr) && fValidate && !laxThisOne) { fValidator->emitError(XMLValid::GrammarNotFound, prefixBuf.getRawBuffer()); } } else if(comma == 0) { if(!switchGrammar(XMLUni::fgZeroLenString) && fValidate && !laxThisOne) { fValidator->emitError(XMLValid::GrammarNotFound, XMLUni::fgZeroLenString); } } } } fElemStack.setCurrentScope(currentScope); // We commandeer fCurrentURI to keep the element state in fElemStack.setCurrentURI(0); fElemStack.setCurrentGrammar(fGrammar); if(!isRoot && parentValidation) { fElemStack.addChild(elemDecl->getElementName(), true); } processAttrs(elemDecl); if(fValidate) fICHandler->activateIdentityConstraint((SchemaElementDecl*)elemDecl, (int)elemDepth_, uriId, prefix_.getRawBuffer(), *fAttrList, attrCount_); elementToProcess_ = false; // We commandeer fCommentOrPISeen to keep errorOccurred_ in if(errorOccurred_) fElemStack.setCommentOrPISeen(); } void SchemaValidatorFilter::processAttrs(XMLElementDecl *elemDecl) { DatatypeValidator *currDV = 0; ComplexTypeInfo *currType = 0; if(fValidate) { currType = ((SchemaValidator*)fValidator)->getCurrentTypeInfo(); if(!currType) currDV = ((SchemaValidator*)fValidator)->getCurrentDatatypeValidator(); } // XMLBufBid bbNormal(&fBufMgr); // XMLBuffer& normBuf = bbNormal.getBuffer(); // Loop through our explicitly provided attributes, which are in the raw // scanned form, and build up XMLAttr objects. unsigned int index; for(index = 0; index < attrCount_; ++index) { const XMLAttr *attr = fAttrList->elementAt(index); const XMLCh *localname = attr->getName(); const XMLCh *value = attr->getValue(); unsigned int uriId = attr->getURIId(); const XMLCh *uri = getURIText(uriId); bool attrValid = true; DatatypeValidator *attrValidator = 0; bool xsiAttr = false; if(XMLString::equals(uri, SchemaSymbols::fgURI_XSI)) { xsiAttr = true; if(XMLString::equals(localname, SchemaSymbols::fgATT_NILL)) { attrValidator = DatatypeValidatorFactory::getBuiltInRegistry()->get(SchemaSymbols::fgDT_BOOLEAN); } else if(XMLString::equals(localname, SchemaSymbols::fgXSI_SCHEMALOCACTION)) { } else if(XMLString::equals(localname, SchemaSymbols::fgXSI_NONAMESPACESCHEMALOCACTION)) { } else if(XMLString::equals(localname, SchemaSymbols::fgXSI_TYPE)) { attrValidator = DatatypeValidatorFactory::getBuiltInRegistry()->get(SchemaSymbols::fgDT_QNAME); } else { xsiAttr = false; } } if(xsiAttr) { // // Just normalize as CDATA // attType = XMLAttDef::CData; // normalizeAttRawValue // ( // namePtr // , curPair->getValue() // , normBuf // ); if(fValidate && attrValidator) { try { attrValidator->validate(value, fValidationContext, fMemoryManager); } catch (const XMLException& idve) { attrValid = false; #if _XERCES_VERSION >= 20800 fValidator->emitError (XMLValid::DatatypeError, idve.getCode(), idve.getType(), idve.getMessage()); #else fValidator->emitError (XMLValid::DatatypeError, idve.getType(), idve.getMessage()); #endif } } } else { // Some checking for attribute wild card first (for schema) bool laxThisOne = false; bool skipThisOne = false; XMLAttDef *attDef = 0; //retrieve the att def SchemaAttDef* attWildCard = 0; if(currType) { attDef = currType->getAttDef(localname, uriId); attWildCard = currType->getAttWildCard(); } else if(!currDV) { // check explicitly-set wildcard attWildCard = ((SchemaElementDecl*)elemDecl)->getAttWildCard(); } // if not found or faulted in - check for a matching wildcard attribute // if no matching wildcard attribute, check (un)qualifed cases and flag // appropriate errors if (!attDef || (attDef->getCreateReason() == XMLAttDef::JustFaultIn)) { if (attWildCard) { //if schema, see if we should lax or skip the validation of this attribute if (anyAttributeValidation(attWildCard, uriId, skipThisOne, laxThisOne)) { if(!skipThisOne) { SchemaGrammar* sGrammar = (SchemaGrammar*) fGrammarResolver->getGrammar(getURIText(uriId)); if (sGrammar && sGrammar->getGrammarType() == Grammar::SchemaGrammarType) { RefHashTableOf* attRegistry = sGrammar->getAttributeDeclRegistry(); if (attRegistry) { attDef = attRegistry->get(localname); } } } } } else if (currType) { // not found, see if the attDef should be qualified or not if (uriId == fEmptyNamespaceId) { attDef = currType->getAttDef(localname, fURIStringPool->getId(fGrammar->getTargetNamespace())); if (fValidate && attDef && attDef->getCreateReason() != XMLAttDef::JustFaultIn) { // the attribute should be qualified fValidator->emitError(XMLValid::AttributeNotQualified, attDef->getFullName()); attrValid = false; } } else { attDef = currType->getAttDef(localname, fEmptyNamespaceId); if (fValidate && attDef && attDef->getCreateReason() != XMLAttDef::JustFaultIn) { // the attribute should be qualified fValidator->emitError(XMLValid::AttributeNotUnQualified, attDef->getFullName()); attrValid = false; } } } } if(!attDef) attrValid = false; if(fValidate && !attDef && !skipThisOne && !laxThisOne) { // // Its not valid for this element, so issue an error if we are // validating. // XMLBufBid bbMsg(&fBufMgr); XMLBuffer& bufMsg = bbMsg.getBuffer(); if(uriId != fEmptyNamespaceId) { XMLBufBid bbURI(&fBufMgr); XMLBuffer& bufURI = bbURI.getBuffer(); getURIText(uriId, bufURI); bufMsg.append(chOpenCurly); bufMsg.append(bufURI.getRawBuffer()); bufMsg.append(chCloseCurly); } bufMsg.append(localname); fValidator->emitError(XMLValid::AttNotDefinedForElement, bufMsg.getRawBuffer(), elemDecl->getFullName()); } // TBD? - jpcs // normalizeAttValue(attDef, namePtr, value, normBuf); if(attDef) { DatatypeValidator* tempDV = ((SchemaAttDef*) attDef)->getDatatypeValidator(); if(tempDV && tempDV->getWSFacet() != DatatypeValidator::PRESERVE) { // normalize the attribute according to schema whitespace facet ((SchemaValidator*) fValidator)->normalizeWhiteSpace(tempDV, value, fWSNormalizeBuf); value = fWSNormalizeBuf.getRawBuffer(); } if(fValidate && !skipThisOne) { fValidator->validateAttrValue(attDef, value, false, elemDecl); attrValidator = ((SchemaValidator *)fValidator)->getMostRecentAttrValidator(); if(((SchemaValidator *)fValidator)->getErrorOccurred()) attrValid = false; } } } if(fValidate && attrValid) { if(attrValidator) next_->attributeEvent(emptyToNull(attr->getPrefix()), emptyToNull(uri), localname, value, emptyToNull(attrValidator->getTypeUri()), attrValidator->getTypeLocalName()); else next_->attributeEvent(emptyToNull(attr->getPrefix()), emptyToNull(uri), localname, value, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_ANYSIMPLETYPE); } else next_->attributeEvent(emptyToNull(attr->getPrefix()), emptyToNull(uri), localname, value, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, ATUntypedAtomic::fgDT_UNTYPEDATOMIC); } // Deal with default, required and prohibited attrs if((currType && fValidate) ? currType->hasAttDefs() : elemDecl->hasAttDefs()) { XMLAttDefList &attDefList = currType ? currType->getAttDefList() : elemDecl->getAttDefList(); for(unsigned int i = 0; i < attDefList.getAttDefCount(); ++i) { SchemaAttDef *curDef = (SchemaAttDef*)&attDefList.getAttDef(i); XMLAttDef::DefAttTypes defType = curDef->getDefaultType(); QName* attName = curDef->getAttName(); unsigned int curUriId = attName->getURI(); const XMLCh *curName = attName->getLocalPart(); // See if the attribute is already defined for(index = 0; index < attrCount_; ++index) { const XMLAttr *attr = fAttrList->elementAt(index); if(attr->getURIId() == curUriId && XPath2Utils::equals(attr->getName(), curName)) break; } if(index >= attrCount_) { switch(defType) { case XMLAttDef::Required: case XMLAttDef::Required_And_Fixed: if(fValidate) fValidator->emitError(XMLValid::RequiredAttrNotProvided, curDef->getFullName()); break; case XMLAttDef::Default: case XMLAttDef::Fixed: { DatatypeValidator *attrValidator = 0; if(fValidate) { fValidator->validateAttrValue(curDef, curDef->getValue(), false, elemDecl); attrValidator = ((SchemaValidator *)fValidator)->getMostRecentAttrValidator(); } if(attrValidator) next_->attributeEvent(emptyToNull(attName->getPrefix()), emptyToNull(getURIText(curUriId)), curName, curDef->getValue(), emptyToNull(attrValidator->getTypeUri()), attrValidator->getTypeLocalName()); else next_->attributeEvent(emptyToNull(attName->getPrefix()), emptyToNull(getURIText(curUriId)), curName, curDef->getValue(), SchemaSymbols::fgURI_SCHEMAFORSCHEMA, ATUntypedAtomic::fgDT_UNTYPEDATOMIC); break; } default: break; } } else if(fValidate && defType == XMLAttDef::Prohibited) { fValidator->emitError(XMLValid::ProhibitedAttributePresent, curDef->getFullName()); } } } } void SchemaValidatorFilter::endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName) { if(elementToProcess_) processStartElement(); typeURI = SchemaSymbols::fgURI_SCHEMAFORSCHEMA; typeName = SchemaSymbols::fgATTVAL_ANYTYPE; assert(!fElemStack.isEmpty()); const ElemStack::StackElem* topElem = fElemStack.topElement(); // We commandeer fCommentOrPISeen to keep errorOccurred_ in errorOccurred_ = topElem->fCommentOrPISeen; if(fValidate) { DatatypeValidator *currentDV = 0; if(topElem->fThisElement->isDeclared()) { ComplexTypeInfo *currentTypeInfo = ((SchemaValidator*)fValidator)->getCurrentTypeInfo(); if(currentTypeInfo) { typeURI = currentTypeInfo->getTypeUri(); typeName = currentTypeInfo->getTypeLocalName(); } else { currentDV = ((SchemaValidator*)fValidator)->getCurrentDatatypeValidator(); typeURI = currentDV->getTypeUri(); typeName = currentDV->getTypeLocalName(); } } #if _XERCES_VERSION >= 30000 XMLSize_t failure; bool success = fValidator->checkContent(topElem->fThisElement, topElem->fChildren, topElem->fChildCount, &failure); #else int res = fValidator->checkContent(topElem->fThisElement, topElem->fChildren, topElem->fChildCount); bool success = res == -1; XMLSize_t failure = (XMLSize_t)res; #endif if(!success) { if(!topElem->fChildCount) { fValidator->emitError(XMLValid::EmptyNotValidForContent, topElem->fThisElement->getFormattedContentModel()); } else if(failure >= topElem->fChildCount) { fValidator->emitError(XMLValid::NotEnoughElemsForCM, topElem->fThisElement->getFormattedContentModel()); } else { fValidator->emitError(XMLValid::ElementNotValidForContent, topElem->fChildren[failure]->getRawName(), topElem->fThisElement->getFormattedContentModel()); } } if(currentDV && currentDV->getType() == DatatypeValidator::Union) { DatatypeValidator *memberType = fValidationContext->getValidatingMemberType(); typeURI = memberType->getTypeUri(); typeName = memberType->getTypeLocalName(); } if(fValidate) fICHandler->deactivateContext((SchemaElementDecl*)topElem->fThisElement, fContent.getRawBuffer()); } if(!fValidate || errorOccurred_) { typeURI = SchemaSymbols::fgURI_SCHEMAFORSCHEMA; typeName = DocumentCache::g_szUntyped; } fElemStack.popTop(); const bool isRoot = fElemStack.isEmpty(); ((SchemaValidator *)fValidator)->clearDatatypeBuffer(); if(!isRoot) { // We commandeer fCommentOrPISeen to keep errorOccurred_ in if(errorOccurred_) fElemStack.setCommentOrPISeen(); fGrammar = fElemStack.getCurrentGrammar(); fValidator->setGrammar(fGrammar); fValidate = fElemStack.getValidationFlag(); } next_->endElementEvent(prefix, uri, localname, emptyToNull(typeURI), typeName); } static inline const XMLCh *nullToZero(const XMLCh *in) { return in ? in : XMLUni::fgZeroLenString; } void SchemaValidatorFilter::attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { unsigned int uriId = fURIStringPool->addOrFind(uri); fElemStack.addPrefix(prefix, uriId); XMLAttr *curAttr; if(attrCount_ >= fAttrList->size()) { curAttr = new (fMemoryManager) XMLAttr(uriId, localname, nullToZero(prefix), nullToZero(value), XMLAttDef::CData, true, fMemoryManager); fAttrList->addElement(curAttr); } else { curAttr = fAttrList->elementAt(attrCount_); curAttr->set(uriId, localname, nullToZero(prefix), nullToZero(value)); } ++attrCount_; if(XPath2Utils::equals(uri, SchemaSymbols::fgURI_XSI)) { // Ignore schema location hints if(XPath2Utils::equals(localname, SchemaSymbols::fgXSI_TYPE)) { xsiType_ = curAttr->getValue(); } else if(XPath2Utils::equals(localname, SchemaSymbols::fgATT_NILL) && XPath2Utils::equals(value, SchemaSymbols::fgATTVAL_TRUE)) { ((SchemaValidator*)fValidator)->setNillable(true); } } } void SchemaValidatorFilter::namespaceEvent(const XMLCh *prefix, const XMLCh *uri) { fElemStack.addPrefix(prefix, fURIStringPool->addOrFind(uri)); next_->namespaceEvent(prefix, uri); } void SchemaValidatorFilter::textEvent(const XMLCh *chars) { if(elementToProcess_) processStartElement(); const XMLCh *end = chars; while(*end) ++end; unsigned int len = (unsigned int)(end - chars); if(fValidate) { // Get the character data opts for the current element XMLElementDecl::CharDataOpts charOpts = XMLElementDecl::AllCharData; ComplexTypeInfo *currType = ((SchemaValidator*)fValidator)->getCurrentTypeInfo(); if(currType) { SchemaElementDecl::ModelTypes modelType = (SchemaElementDecl::ModelTypes)currType->getContentType(); if(modelType == SchemaElementDecl::Children) charOpts = XMLElementDecl::SpacesOk; else if(modelType == SchemaElementDecl::Empty) charOpts = XMLElementDecl::NoCharData; } if(charOpts == XMLElementDecl::AllCharData) { DatatypeValidator *tempDV = ((SchemaValidator*) fValidator)->getCurrentDatatypeValidator(); if(tempDV && tempDV->getWSFacet() != DatatypeValidator::PRESERVE) { // normalize the character according to schema whitespace facet ((SchemaValidator*) fValidator)->normalizeWhiteSpace(tempDV, chars, fWSNormalizeBuf); chars = fWSNormalizeBuf.getRawBuffer(); len = (unsigned int) fWSNormalizeBuf.getLen(); } // tell the schema validation about the character data for checkContent later ((SchemaValidator*)fValidator)->setDatatypeBuffer(chars); } else if(charOpts == XMLElementDecl::NoCharData) { fValidator->emitError(XMLValid::NoCharDataInCM); } else if(!fReaderMgr.getCurrentReader()->isAllSpaces(chars, len)) { fValidator->emitError(XMLValid::NoCharDataInCM); } } // call all active identity constraints if(fValidate && fICHandler->getMatcherCount()) fContent.append(chars, len); next_->textEvent(chars, len); } void SchemaValidatorFilter::textEvent(const XMLCh *chars, unsigned int len) { // Copy the chars to null terminate them XMLBuffer nullterm; nullterm.set(chars, len); textEvent(nullterm.getRawBuffer()); } void SchemaValidatorFilter::commentEvent(const XMLCh *value) { if(elementToProcess_) processStartElement(); next_->commentEvent(value); } void SchemaValidatorFilter::piEvent(const XMLCh *target, const XMLCh *value) { if(elementToProcess_) processStartElement(); next_->piEvent(target, value); } //////////////////////////////////////////////////////////////////////////////////////////////////// #if _XERCES_VERSION < 30100 unsigned int SchemaValidatorFilter::resolveQName(const XMLCh *const qName, XMLBuffer &prefixBuf, const short mode, int &prefixColonPos) { prefixColonPos = XMLString::indexOf(qName, chColon); if(prefixColonPos == -1) { bool unknown = false; return fElemStack.mapPrefixToURI(XMLUni::fgZeroLenString, (ElemStack::MapModes) mode, unknown); } else { prefixBuf.set(qName, prefixColonPos); if(XPath2Utils::equals(prefixBuf.getRawBuffer(), XMLUni::fgXMLNSString)) { if(mode == ElemStack::Mode_Element) emitError(XMLErrs::NoXMLNSAsElementPrefix, qName); return fXMLNSNamespaceId; } else if(XPath2Utils::equals(prefixBuf.getRawBuffer(), XMLUni::fgXMLString)) { return fXMLNamespaceId; } else { bool unknown = false; unsigned int uriId = fElemStack.mapPrefixToURI(prefixBuf.getRawBuffer(), (ElemStack::MapModes) mode, unknown); if(unknown) emitError(XMLErrs::UnknownPrefix, prefixBuf.getRawBuffer()); return uriId; } } } #endif bool SchemaValidatorFilter::switchGrammar(const XMLCh *uri) { Grammar* tempGrammar = fGrammarResolver->getGrammar(uri); if(!tempGrammar) tempGrammar = fSchemaGrammar; if(!tempGrammar || tempGrammar->getGrammarType() == Grammar::DTDGrammarType) return false; fGrammar = tempGrammar; fValidator->setGrammar(fGrammar); return true; } bool SchemaValidatorFilter::laxElementValidation(QName* element, ContentLeafNameTypeVector* cv, const XMLContentModel* cm, unsigned int parentElemDepth) { bool skipThisOne = false; bool laxThisOne = false; unsigned int elementURI = element->getURI(); // We commandeer fCurrentURI to keep the element state in unsigned int currState = parentStack_->fCurrentURI; if (currState == XMLContentModel::gInvalidTrans) { return laxThisOne; } SubstitutionGroupComparator comparator(fGrammarResolver, fURIStringPool); if(cv) { unsigned int i = 0; unsigned int leafCount = (unsigned int) cv->getLeafCount(); for(; i < leafCount; ++i) { QName* fElemMap = cv->getLeafNameAt(i); unsigned int uri = fElemMap->getURI(); unsigned int nextState; bool anyEncountered = false; ContentSpecNode::NodeTypes type = cv->getLeafTypeAt(i); if(type == ContentSpecNode::Leaf) { if(((uri == elementURI) && XMLString::equals(fElemMap->getLocalPart(), element->getLocalPart())) || comparator.isEquivalentTo(element, fElemMap)) { nextState = cm->getNextState(currState, i); if(nextState != XMLContentModel::gInvalidTrans) { // We commandeer fCurrentURI to keep the element state in parentStack_->fCurrentURI = nextState; break; } } } else if((type & 0x0f) == ContentSpecNode::Any) { anyEncountered = true; } else if((type & 0x0f) == ContentSpecNode::Any_Other) { if (uri != elementURI) { anyEncountered = true; } } else if((type & 0x0f) == ContentSpecNode::Any_NS) { if (uri == elementURI) { anyEncountered = true; } } if(anyEncountered) { nextState = cm->getNextState(currState, i); if(nextState != XMLContentModel::gInvalidTrans) { // We commandeer fCurrentURI to keep the element state in parentStack_->fCurrentURI = nextState; if(type == ContentSpecNode::Any_Skip || type == ContentSpecNode::Any_NS_Skip || type == ContentSpecNode::Any_Other_Skip) { skipThisOne = true; } else if(type == ContentSpecNode::Any_Lax || type == ContentSpecNode::Any_NS_Lax || type == ContentSpecNode::Any_Other_Lax) { laxThisOne = true; } break; } } } if(i == leafCount) { // no match // We commandeer fCurrentURI to keep the element state in parentStack_->fCurrentURI = XMLContentModel::gInvalidTrans; return laxThisOne; } } if (skipThisOne) { fValidate = false; fElemStack.setValidationFlag(fValidate); } return laxThisOne; } bool SchemaValidatorFilter::anyAttributeValidation(SchemaAttDef* attWildCard, unsigned int uriId, bool& skipThisOne, bool& laxThisOne) { XMLAttDef::AttTypes wildCardType = attWildCard->getType(); bool anyEncountered = false; skipThisOne = false; laxThisOne = false; if (wildCardType == XMLAttDef::Any_Any) anyEncountered = true; else if (wildCardType == XMLAttDef::Any_Other) { if (attWildCard->getAttName()->getURI() != uriId && uriId != fEmptyNamespaceId) anyEncountered = true; } else if (wildCardType == XMLAttDef::Any_List) { ValueVectorOf* nameURIList = attWildCard->getNamespaceList(); unsigned int listSize = (unsigned int) ((nameURIList) ? nameURIList->size() : 0); if (listSize) { for (unsigned int i=0; i < listSize; i++) { if (nameURIList->elementAt(i) == uriId) anyEncountered = true; } } } if (anyEncountered) { XMLAttDef::DefAttTypes defType = attWildCard->getDefaultType(); if (defType == XMLAttDef::ProcessContents_Skip) { // attribute should just be bypassed, skipThisOne = true; } else if (defType == XMLAttDef::ProcessContents_Lax) { laxThisOne = true; } } return anyEncountered; } XMLElementDecl *SchemaValidatorFilter::createElementDecl(unsigned int uriId, unsigned int currentScope, bool laxThisOne) { // Look up the element now in the grammar. This will get us back a // generic element decl object. We tell him to fault one in if he does // not find it. XMLElementDecl* elemDecl = 0; const XMLCh* original_uriStr = fGrammar->getTargetNamespace(); elemDecl = fGrammar->getElemDecl(uriId, localname_.getRawBuffer(), 0, currentScope); if(!elemDecl) elemDecl = fElemNonDeclPool->getByKey(localname_.getRawBuffer(), uriId, currentScope); unsigned int orgGrammarUri = uriId; if(!elemDecl && (orgGrammarUri = fURIStringPool->getId(original_uriStr)) != uriId) { //not found, switch grammar and try globalNS if(!switchGrammar(uri_.getRawBuffer()) && fValidate && !laxThisOne) { fValidator->emitError(XMLValid::GrammarNotFound, uri_.getRawBuffer()); } elemDecl = fGrammar->getElemDecl(uriId, localname_.getRawBuffer(), 0, currentScope); } if(!elemDecl && currentScope != Grammar::TOP_LEVEL_SCOPE) { // if not found, then it may be a reference, try TOP_LEVEL_SCOPE elemDecl = fGrammar->getElemDecl(uriId, localname_.getRawBuffer(), 0, Grammar::TOP_LEVEL_SCOPE); if(!elemDecl) elemDecl = fElemNonDeclPool->getByKey(localname_.getRawBuffer(), uriId, Grammar::TOP_LEVEL_SCOPE); if(!elemDecl) { // still not found in specified uri if(uriId != fEmptyNamespaceId) { // try emptyNamesapce see if element should be un-qualified. elemDecl = fGrammar->getElemDecl(fEmptyNamespaceId, localname_.getRawBuffer(), 0, currentScope); if(elemDecl && elemDecl->getCreateReason() != XMLElementDecl::JustFaultIn && fValidate) { fValidator->emitError(XMLValid::ElementNotUnQualified, elemDecl->getFullName()); } } else if(orgGrammarUri != uriId) { // go to original Grammar again to see if element needs to be fully qualified. if(!switchGrammar(original_uriStr) && fValidate && !laxThisOne) { fValidator->emitError(XMLValid::GrammarNotFound, original_uriStr); } elemDecl = fGrammar->getElemDecl(orgGrammarUri, localname_.getRawBuffer(), 0, currentScope); if(elemDecl && elemDecl->getCreateReason() != XMLElementDecl::JustFaultIn && fValidate) { fValidator->emitError(XMLValid::ElementNotQualified, elemDecl->getFullName()); } } } } if(!elemDecl) { // still not found, fault this in and issue error later // switch back to original grammar first (if necessary) if(orgGrammarUri != uriId) { switchGrammar(original_uriStr); } elemDecl = new (fMemoryManager) SchemaElementDecl(prefix_.getRawBuffer(), localname_.getRawBuffer(), uriId, SchemaElementDecl::Any, Grammar::TOP_LEVEL_SCOPE, fMemoryManager); elemDecl->setId(fElemNonDeclPool->put((void*)elemDecl->getBaseName(), uriId, currentScope, (SchemaElementDecl*)elemDecl)); if(laxThisOne) { fValidate = false; fElemStack.setValidationFlag(fValidate); } else if(fValidate) { // This is to tell the reuse Validator that this element was // faulted-in, was not an element in the grammar pool originally elemDecl->setCreateReason(XMLElementDecl::JustFaultIn); fValidator->emitError(XMLValid::ElementNotDefined, elemDecl->getFullName()); } } else { // If its not marked declared and validating, then emit an error if(!elemDecl->isDeclared()) { if(laxThisOne) { fValidate = false; fElemStack.setValidationFlag(fValidate); } else if(fValidate) { fValidator->emitError(XMLValid::ElementNotDefined, elemDecl->getFullName()); } } } return elemDecl; } //////////////////////////////////////////////////////////////////////////////////////////////////// void SchemaValidatorFilter::docCharacters(const XMLCh* const chars, const XercesSizeUint length, const bool cdataSection) { // The SchemaValidator calls this method to report default element values next_->textEvent(chars, (unsigned int)length); } void SchemaValidatorFilter::error(const unsigned int errCode, const XMLCh* const errDomain, const XMLErrorReporter::ErrTypes type, const XMLCh* const errorText, const XMLCh* const systemId, const XMLCh* const publicId, const XMLFileLoc lineNum, const XMLFileLoc colNum) { errorOccurred_ = true; // Skip validation errors if validation isn't strict if(!strictValidation_ && errDomain == XMLUni::fgValidityDomain && type != XMLErrorReporter::ErrType_Fatal) return; XMLBuffer exc_msg(1023); exc_msg.set(X("Schema validation failed: ")); exc_msg.append(errorText); if((publicId && *publicId) || (systemId && *systemId)) { exc_msg.append(X(", ")); if(systemId && *systemId) exc_msg.append(systemId); else exc_msg.append(publicId); if(lineNum != 0) { exc_msg.append(':'); XPath2Utils::numToBuf((unsigned int)lineNum, exc_msg); exc_msg.append(':'); XPath2Utils::numToBuf((unsigned int)colNum, exc_msg); } } exc_msg.append(X(" [err:XQDY0027]")); XQThrow3(DynamicErrorException,X("SchemaValidatorFilter::error"), exc_msg.getRawBuffer(), info_); } XQilla-2.3.0/src/schema/FaxppDocumentCacheImpl.hpp0000644000151400015140000000424611653565523016727 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FAXPPDOCUMENTCACHEIMPL_HPP #define _FAXPPDOCUMENTCACHEIMPL_HPP #include "../config/xqilla_config.h" #ifdef HAVE_FAXPP extern "C" { #include } #include #include XERCES_CPP_NAMESPACE_BEGIN class BinInputStream; XERCES_CPP_NAMESPACE_END struct FaxppParserWrapper { FaxppParserWrapper(XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityResolver *e); ~FaxppParserWrapper(); void reset(); FAXPP_Error parseInputSource(const XERCES_CPP_NAMESPACE_QUALIFIER InputSource &srcToUse, XPath2MemoryManager *m); std::vector inputStreams; XPath2MemoryManager *mm; XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityResolver *entityResolver; FAXPP_Parser *parser; }; class FaxppDocumentCacheImpl : public DocumentCacheImpl { public: FaxppDocumentCacheImpl(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr, XERCES_CPP_NAMESPACE_QUALIFIER XMLGrammarPool* xmlgr = 0); ~FaxppDocumentCacheImpl(); virtual void setXMLEntityResolver(XERCES_CPP_NAMESPACE_QUALIFIER XMLEntityResolver* const handler); virtual void parseDocument(XERCES_CPP_NAMESPACE_QUALIFIER InputSource &srcToUse, EventHandler *handler, DynamicContext *context); virtual DocumentCache *createDerivedCache(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr) const; protected: FaxppParserWrapper wrapper_; SchemaValidatorFilter *validator_; }; #endif #endif XQilla-2.3.0/src/schema/FaxppDocumentCacheImpl.cpp0000644000151400015140000002534311653565523016723 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "FaxppDocumentCacheImpl.hpp" #ifdef HAVE_FAXPP #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; using namespace std; static unsigned int binInputStreamReadCallback(void *userData, void *buffer, unsigned int length) { BinInputStream *stream = (BinInputStream*)userData; unsigned int result = 0; do { unsigned int read = stream->readBytes((XMLByte*)buffer + result, length - result); if(read == 0) break; result += read; } while(result < length); return result; } static inline const XMLCh *nullTerm(const FAXPP_Text &text, XPath2MemoryManager *mm) { return mm->getPooledString((XMLCh*)text.ptr, text.len / sizeof(XMLCh)); } static FAXPP_Error staticEntityCallback(void *userData, FAXPP_Parser *parser, FAXPP_EntityType type, const FAXPP_Text *base_uri, const FAXPP_Text *systemid, const FAXPP_Text *publicid) { FaxppParserWrapper *fw = (FaxppParserWrapper*)userData; try { // Resolve the entity const XMLCh *system16 = nullTerm(*systemid, fw->mm); const XMLCh *public16 = nullTerm(*publicid, fw->mm); InputSource* srcToUse = 0; if(fw->entityResolver){ XMLResourceIdentifier resourceIdentifier(XMLResourceIdentifier::ExternalEntity, system16, 0, public16, (XMLCh*)base_uri->ptr); srcToUse = fw->entityResolver->resolveEntity(&resourceIdentifier); } if(srcToUse == 0) { srcToUse = DocumentCacheImpl::resolveURI(system16, (XMLCh*)base_uri->ptr); } Janitor janIS(srcToUse); // Create a BinInputStream BinInputStream *stream = srcToUse->makeStream(); if(stream == NULL) return CANT_LOCATE_EXTERNAL_ENTITY; fw->inputStreams.push_back(stream); FAXPP_Error err = FAXPP_parse_external_entity_callback(parser, type, binInputStreamReadCallback, stream); // Set the correct base URI if(err == NO_ERROR) { FAXPP_Text base = { (void*)srcToUse->getSystemId(), (XMLString::stringLen(srcToUse->getSystemId()) + 1) * sizeof(XMLCh) }; err = FAXPP_set_base_uri(parser, &base); } // Force use of encoding set on InputSource (this is done by FunctionParseXML) if(err == NO_ERROR && srcToUse->getEncoding()) { FAXPP_DecodeFunction decode = FAXPP_string_to_decode(UTF8(srcToUse->getEncoding())); if(decode == 0) err = UNSUPPORTED_ENCODING; else FAXPP_set_decode(parser, decode); } return err; } catch(...) { return CANT_LOCATE_EXTERNAL_ENTITY; } } FaxppParserWrapper::FaxppParserWrapper(XMLEntityResolver *e) : mm(0), entityResolver(e), parser(0) { parser = FAXPP_create_parser(WELL_FORMED_PARSE_MODE, FAXPP_utf16_native_transcoder); if(parser == 0) XQThrow2(XMLParseException, X("FaxppParserWrapper::FaxppParserWrapper"), X("Out of memory")); // Register our entity resolution callback FAXPP_set_external_entity_callback(parser, staticEntityCallback, this); } FaxppParserWrapper::~FaxppParserWrapper() { reset(); if(parser) FAXPP_free_parser(parser); } void FaxppParserWrapper::reset() { vector::iterator i = inputStreams.begin(); for(; i != inputStreams.end(); ++i) { delete *i; } inputStreams.clear(); mm = 0; } FAXPP_Error FaxppParserWrapper::parseInputSource(const InputSource &srcToUse, XPath2MemoryManager *m) { reset(); mm = m; // Create a BinInputStream BinInputStream *stream = srcToUse.makeStream(); if(stream == NULL) XQThrow2(XMLParseException, X("FaxppParserWrapper::parseInputSource"), X("Document not found")); inputStreams.push_back(stream); // Initialize the parse FAXPP_Error err = FAXPP_init_parse_callback(parser, binInputStreamReadCallback, stream); // Set the correct base URI if(err == NO_ERROR && srcToUse.getSystemId()) { FAXPP_Text base = { (void*)srcToUse.getSystemId(), (XMLString::stringLen(srcToUse.getSystemId()) + 1) * sizeof(XMLCh) }; err = FAXPP_set_base_uri(parser, &base); } // Force use of encoding set on InputSource (this is done by FunctionParseXML) if(err == NO_ERROR && srcToUse.getEncoding()) { FAXPP_DecodeFunction decode = FAXPP_string_to_decode(UTF8(srcToUse.getEncoding())); if(decode == 0) err = UNSUPPORTED_ENCODING; else FAXPP_set_decode(parser, decode); } #if 0 else if(stream->getContentType()) { } #endif return err; } //////////////////////////////////////////////////////////////////////////////////////////////////// FaxppDocumentCacheImpl::FaxppDocumentCacheImpl(MemoryManager* memMgr, XMLGrammarPool *xmlgr) : DocumentCacheImpl(memMgr, xmlgr), wrapper_(0), validator_(0) { } FaxppDocumentCacheImpl::~FaxppDocumentCacheImpl() { delete validator_; } void FaxppDocumentCacheImpl::setXMLEntityResolver(XMLEntityResolver* const handler) { entityResolver_ = handler; wrapper_.entityResolver = handler; } static inline void setLocation(LocationInfo &info, const FAXPP_Event *event) { info.setLocationInfo(info.getFile(), event->line, event->column); } static inline void setLocation(LocationInfo &info, const FAXPP_Attribute *attr) { info.setLocationInfo(info.getFile(), attr->line, attr->column); } #define LOCATION(o) setLocation(location_, (o)) void FaxppDocumentCacheImpl::parseDocument(InputSource &srcToUse, EventHandler *handler, DynamicContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); if(validator_ == 0) { validator_ = new (memMgr_) SchemaValidatorFilter(/*strictValidation*/false, 0, grammarResolver_, memMgr_, 0); } if(doPSVI_) { validator_->setNextEventHandler(handler); events_ = validator_; } else { events_ = handler; } FAXPP_Error err = wrapper_.parseInputSource(srcToUse, mm); if(err == OUT_OF_MEMORY) XQThrow2(XMLParseException, X("FaxppDocumentCacheImpl::loadDocument"), X("Out of memory")); if(err == UNSUPPORTED_ENCODING) { XQThrow2(XMLParseException, X("FaxppDocumentCacheImpl::loadDocument"), X("Unsupported encoding")); } location_.setLocationInfo(srcToUse.getSystemId(), 0, 0); try { unsigned int i; FAXPP_Attribute *attr; while(true) { err = FAXPP_next_event(wrapper_.parser); if(err != NO_ERROR) { // TBD add line and column information - jpcs XMLBuffer buf; buf.append(X("Error parsing document: ")); buf.append(X(FAXPP_err_to_string(err))); XQThrow2(XMLParseException, X("FaxppDocumentCacheImpl::loadDocument"), buf.getRawBuffer()); } const FAXPP_Event *event = FAXPP_get_current_event(wrapper_.parser); LOCATION(event); switch(event->type) { case START_DOCUMENT_EVENT: { // TBD Get encoding from parser if not specified in document - jpcs events_->setLocationInfo(&location_); // Encode space chars in the document URI as %20 const XMLCh *uri = srcToUse.getSystemId(); XMLBuffer encode(XMLString::stringLen(uri) + 1); if(uri != 0) { for(const XMLCh *uptr = uri; *uptr; ++uptr) { if(*uptr != ' ') encode.append(*uptr); else { encode.append('%'); encode.append('2'); encode.append('0'); } } uri = encode.getRawBuffer(); } events_->startDocumentEvent(uri, nullTerm(event->encoding, mm)); break; } case END_DOCUMENT_EVENT: events_->endDocumentEvent(); return; case START_ELEMENT_EVENT: case SELF_CLOSING_ELEMENT_EVENT: events_->startElementEvent(nullTerm(event->prefix, mm), nullTerm(event->uri, mm), nullTerm(event->name, mm)); for(i = 0; i < event->attr_count; ++i) { attr = &event->attrs[i]; LOCATION(attr); if(attr->xmlns_attr) { if(attr->prefix.ptr == 0) events_->namespaceEvent(0, nullTerm(attr->value.value, mm)); else events_->namespaceEvent(nullTerm(attr->name, mm), nullTerm(attr->value.value, mm)); } else { events_->attributeEvent(nullTerm(attr->prefix, mm), nullTerm(attr->uri, mm), nullTerm(attr->name, mm), nullTerm(attr->value.value, mm), SchemaSymbols::fgURI_SCHEMAFORSCHEMA, ATUntypedAtomic::fgDT_UNTYPEDATOMIC); } } if(event->type == START_ELEMENT_EVENT) break; // Fall through case END_ELEMENT_EVENT: events_->endElementEvent(nullTerm(event->prefix, mm), nullTerm(event->uri, mm), nullTerm(event->name, mm), SchemaSymbols::fgURI_SCHEMAFORSCHEMA, DocumentCache::g_szUntyped); break; case IGNORABLE_WHITESPACE_EVENT: // Do nothing break; case ENTITY_REFERENCE_EVENT: case DEC_CHAR_REFERENCE_EVENT: case HEX_CHAR_REFERENCE_EVENT: case CHARACTERS_EVENT: case CDATA_EVENT: events_->textEvent((XMLCh*)event->value.ptr, event->value.len / sizeof(XMLCh)); break; case COMMENT_EVENT: events_->commentEvent(nullTerm(event->value, mm)); break; case PI_EVENT: events_->piEvent(nullTerm(event->name, mm), nullTerm(event->value, mm)); break; case DOCTYPE_EVENT: case ENTITY_REFERENCE_START_EVENT: case ENTITY_REFERENCE_END_EVENT: case START_EXTERNAL_ENTITY_EVENT: case END_EXTERNAL_ENTITY_EVENT: case NO_EVENT: break; } } } catch(XQException& e) { if(e.getXQueryLine() == 0) { e.setXQueryPosition(&location_); } throw e; } } DocumentCache *FaxppDocumentCacheImpl::createDerivedCache(MemoryManager *memMgr) const { // lock the grammar pool, so we can share it across threads grammarResolver_->getGrammarPool()->lockPool(); // Construct a new FaxppDocumentCacheImpl, based on this one return new (memMgr) FaxppDocumentCacheImpl(memMgr, grammarResolver_->getGrammarPool()); } #endif XQilla-2.3.0/src/operators/0000755000151400015140000000000011653572443012522 500000000000000XQilla-2.3.0/src/operators/ComparisonOperator.cpp0000644000151400015140000001247711653565523017010 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif ComparisonOperator::ComparisonOperator(const XMLCh* opName, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQOperator(opName, args, memMgr) { } ASTNode* ComparisonOperator::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); for(VectorOfASTNodes::iterator i = _args.begin(); i != _args.end(); ++i) { // Value comparisons are intended for comparing single values. The result of a value comparison is // defined by applying the following rules, in order: // 1. Atomization is applied to each operand. If the result, called an atomized operand, does not contain // exactly one atomic value, a type error is raised. *i = new (mm) XQAtomize(*i, mm); (*i)->setLocationInfo(this); // 2. If the atomized operand is an empty sequence, the result of the value comparison is an empty sequence, // and the implementation need not evaluate the other operand or apply the operator. However, an // implementation may choose to evaluate the other operand in order to determine whether it raises an error. // 3. If the atomized operand is a sequence of length greater than one, a type error is raised [err:XPTY0004]. SequenceType *seqType = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_ANYTHING), SequenceType::QUESTION_MARK); seqType->setLocationInfo(*i); *i = new (mm) XQTreatAs(*i, seqType, mm); (*i)->setLocationInfo(this); // 4. Any atomized operand that has the dynamic type xdt:untypedAtomic is cast to the type xs:string. *i = new (mm) XQPromoteUntyped(*i, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, mm); (*i)->setLocationInfo(this); *i = (*i)->staticResolution(context); } return this; } ASTNode *ComparisonOperator::staticTypingImpl(StaticContext *context) { _src.clear(); bool emptyArgument = false; for(VectorOfASTNodes::iterator i = _args.begin(); i != _args.end(); ++i) { _src.add((*i)->getStaticAnalysis()); if(context && (*i)->getStaticAnalysis().getStaticType().getMax() == 0) { // The result is always empty if one of our arguments is always empty XPath2MemoryManager* mm = context->getMemoryManager(); ASTNode *result = new (mm) XQSequence(mm); result->setLocationInfo(this); return result->staticTypingImpl(context); } if((*i)->getStaticAnalysis().getStaticType().getMin() == 0) emptyArgument = true; if((*i)->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("ComparisonOperator::staticTyping"), X("It is a static error for an operand of an operator " "to be an updating expression [err:XUST0001]")); } if((*i)->isDateOrTimeAndHasNoTimezone(context)) _src.implicitTimezoneUsed(true); } if(emptyArgument) _src.getStaticType() = StaticType(StaticType::BOOLEAN_TYPE, 0, 1); else _src.getStaticType() = StaticType(StaticType::BOOLEAN_TYPE, 1, 1); return this; } BoolResult ComparisonOperator::boolResult(DynamicContext* context) const { try { AnyAtomicType::Ptr left = (AnyAtomicType*)getArguments()[0]->createResult(context)->next(context).get(); if(left.isNull()) return BoolResult::Null; AnyAtomicType::Ptr right = (AnyAtomicType*)getArguments()[1]->createResult(context)->next(context).get(); if(right.isNull()) return BoolResult::Null; return execute(left, right, context); } catch(XQException &e) { if(e.getXQueryLine() == 0) e.setXQueryPosition(this); throw; } } Result ComparisonOperator::createResult(DynamicContext* context, int flags) const { return (Item::Ptr)context->getItemFactory()->createBoolean(boolResult(context), context); } XQilla-2.3.0/src/operators/OrderComparison.cpp0000644000151400015140000000645311653565523016265 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include /*static*/ const XMLCh OrderComparison::name[]={ 'O', 'r', 'd', 'e', 'r', 'C', 'o', 'm', 'p', 'a', 'r', 'i', 's', 'o', 'n', 0 }; OrderComparison::OrderComparison(const VectorOfASTNodes &args, bool testBefore, XPath2MemoryManager* memMgr) : XQOperator(name, args, memMgr) { _testBefore = testBefore; } bool OrderComparison::getTestBefore() const { return _testBefore; } ASTNode* OrderComparison::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); for(VectorOfASTNodes::iterator i = _args.begin(); i != _args.end(); ++i) { SequenceType *seqType = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_NODE), SequenceType::QUESTION_MARK); seqType->setLocationInfo(this); *i = new (mm) XQTreatAs(*i, seqType, mm); (*i)->setLocationInfo(this); *i = (*i)->staticResolution(context); } return this; } ASTNode *OrderComparison::staticTypingImpl(StaticContext *context) { _src.clear(); _src.getStaticType() = StaticType(StaticType::BOOLEAN_TYPE, 0, 1); for(VectorOfASTNodes::iterator i = _args.begin(); i != _args.end(); ++i) { _src.add((*i)->getStaticAnalysis()); if((*i)->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("OrderComparison::staticTyping"), X("It is a static error for an operand of an operator " "to be an updating expression [err:XUST0001]")); } } return this; } BoolResult OrderComparison::boolResult(DynamicContext* context) const { Item::Ptr arg1 = getArgument(0)->createResult(context)->next(context); if(arg1.isNull()) return BoolResult::Null; Item::Ptr arg2 = getArgument(1)->createResult(context)->next(context); if(arg2.isNull()) return BoolResult::Null; if(getTestBefore()) return ((Node*)arg1.get())->lessThan((Node*)arg2.get(), context); return ((Node*)arg2.get())->lessThan((Node*)arg1.get(), context); } Result OrderComparison::createResult(DynamicContext* context, int flags) const { return (Item::Ptr)context->getItemFactory()->createBoolean(boolResult(context), context); } XQilla-2.3.0/src/operators/Plus.cpp0000644000151400015140000001562111653565523014077 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh Plus::name[]={ chLatin_P, chLatin_l, chLatin_u, chLatin_s, chNull }; Plus::Plus(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : ArithmeticOperator(name, args, memMgr) { } void Plus::calculateStaticType() { const StaticType &arg0 = _args[0]->getStaticAnalysis().getStaticType(); const StaticType &arg1 = _args[1]->getStaticAnalysis().getStaticType(); calculateStaticTypeForNumerics(arg0, arg1); // Adding a duration to a date, dateTime, time, or duration if(arg1.containsType(StaticType::DAY_TIME_DURATION_TYPE)) { _src.getStaticType() |= arg0 & (StaticType::DATE_TYPE|StaticType::DATE_TIME_TYPE|StaticType::TIME_TYPE| StaticType::DAY_TIME_DURATION_TYPE); } if(arg1.containsType(StaticType::YEAR_MONTH_DURATION_TYPE)) { _src.getStaticType() |= arg0 & (StaticType::DATE_TYPE|StaticType::DATE_TIME_TYPE|StaticType::YEAR_MONTH_DURATION_TYPE); } if(arg0.containsType(StaticType::DAY_TIME_DURATION_TYPE)) { _src.getStaticType() |= arg1 & (StaticType::DATE_TYPE|StaticType::DATE_TIME_TYPE|StaticType::TIME_TYPE| StaticType::DAY_TIME_DURATION_TYPE); } if(arg0.containsType(StaticType::YEAR_MONTH_DURATION_TYPE)) { _src.getStaticType() |= arg1 & (StaticType::DATE_TYPE|StaticType::DATE_TIME_TYPE|StaticType::YEAR_MONTH_DURATION_TYPE); } } Item::Ptr Plus::execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const { return plus(atom1, atom2, context, this); } Item::Ptr Plus::plus(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context, const LocationInfo *info) { try { if(atom1 == NULLRCP || atom2 == NULLRCP) return 0; if(atom1->isNumericValue()) { if(atom2->isNumericValue()) { return ((Numeric*)atom1.get())->add((Numeric*)atom2.get(), context); } else { XQThrow2(XPath2ErrorException,X("Plus::createSequence"), X("An attempt to add a non numeric type to a numeric type has occurred [err:XPTY0004]")); } } switch(atom1->getPrimitiveTypeIndex()) { case AnyAtomicType::DATE : { switch(atom2->getPrimitiveTypeIndex()) { case AnyAtomicType::DAY_TIME_DURATION: { return ((ATDateOrDerived*)atom1.get())->addDayTimeDuration((const ATDurationOrDerived*)atom2.get(), context); } case AnyAtomicType::YEAR_MONTH_DURATION: { return ((ATDateOrDerived*)atom1.get())->addYearMonthDuration((const ATDurationOrDerived*)atom2.get(), context); } default: { XQThrow2(XPath2ErrorException,X("Plus::createSequence"), X("An invalid attempt to add to xs:date type has occurred [err:XPTY0004]")); } } } case AnyAtomicType::TIME : { switch(atom2->getPrimitiveTypeIndex()) { case AnyAtomicType::DAY_TIME_DURATION: { return ((ATTimeOrDerived*)atom1.get())->addDayTimeDuration((const ATDurationOrDerived*)atom2.get(), context ); } default: { XQThrow2(XPath2ErrorException,X("Plus::createSequence"), X("An invalid attempt to add to xs:time type has occurred [err:XPTY0004]")); } } } case AnyAtomicType::DATE_TIME : { switch(atom2->getPrimitiveTypeIndex()) { case AnyAtomicType::DAY_TIME_DURATION: { return ((ATDateTimeOrDerived*)atom1.get())->addDayTimeDuration((const ATDurationOrDerived*)atom2.get(), context); } case AnyAtomicType::YEAR_MONTH_DURATION: { return ((ATDateTimeOrDerived*)atom1.get())->addYearMonthDuration((const ATDurationOrDerived*)atom2.get(), context); } default: { XQThrow2(XPath2ErrorException,X("Plus::createSequence"), X("An invalid attempt to add to xs:dateTime type has occurred [err:XPTY0004]")); } } } case AnyAtomicType::DAY_TIME_DURATION: { switch(atom2->getPrimitiveTypeIndex()) { case AnyAtomicType::DAY_TIME_DURATION: { return ((ATDurationOrDerived*)atom2.get())->add((const ATDurationOrDerived *)atom1.get(), context); } case AnyAtomicType::DATE: { return ((ATDateOrDerived*)atom2.get())->addDayTimeDuration((const ATDurationOrDerived *)atom1.get(), context); } case AnyAtomicType::DATE_TIME: { return ((ATDateTimeOrDerived*)atom2.get())->addDayTimeDuration((const ATDurationOrDerived *)atom1.get(), context); } case AnyAtomicType::TIME: { return ((ATTimeOrDerived*)atom2.get())->addDayTimeDuration((const ATDurationOrDerived *)atom1.get(), context); } default: { XQThrow2(XPath2ErrorException,X("Plus::createSequence"), X("An invalid attempt to add to xdt:dayTimeDuration type has occurred [err:XPTY0004]")); } } } case AnyAtomicType::YEAR_MONTH_DURATION: { switch(atom2->getPrimitiveTypeIndex()) { case AnyAtomicType::YEAR_MONTH_DURATION: { return ((ATDurationOrDerived*)atom2.get())->add((const ATDurationOrDerived *)atom1.get(), context); } case AnyAtomicType::DATE: { return ((ATDateOrDerived*)atom2.get())->addYearMonthDuration((const ATDurationOrDerived *)atom1.get(), context); } case AnyAtomicType::DATE_TIME: { return ((ATDateTimeOrDerived*)atom2.get())->addYearMonthDuration((const ATDurationOrDerived *)atom1.get(), context); } default: { XQThrow2(XPath2ErrorException,X("Plus::createSequence"), X("An invalid attempt to add to xdt:yearMonthDuration type has occurred [err:XPTY0004]")); } } } default: { XQThrow2(XPath2ErrorException,X("Plus::createSequence"), X("The operator add ('+') has been called on invalid operand types [err:XPTY0004]")); } } } catch(XQException &e) { if(e.getXQueryLine() == 0) e.setXQueryPosition(info); throw; } } XQilla-2.3.0/src/operators/LessThanEqual.cpp0000644000151400015140000000555611653565523015673 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include /*static*/ const XMLCh LessThanEqual::name[]={ XERCES_CPP_NAMESPACE_QUALIFIER chLatin_L, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_E, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; LessThanEqual::LessThanEqual(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : ComparisonOperator(name, args, memMgr) { } /*static*/ bool LessThanEqual::less_than_equal(const AnyAtomicType::Ptr &arg1, const AnyAtomicType::Ptr &arg2, Collation* collation, DynamicContext* context, const LocationInfo *info) { // A le B numeric numeric op:numeric-less-than(A, B) or op:numeric-equal(A, B) // A le B xs:boolean xs:boolean fn:not(op:boolean-greater-than(A, B)) // A le B xs:string xs:string op:numeric-less-than(fn:compare(A, B), 1) // A le B xs:date xs:date fn:not(op:date-greater-than(A, B)) // A le B xs:time xs:time fn:not(op:time-greater-than(A, B)) // A le B xs:dateTime xs:dateTime fn:not(op:datetime-greater-than(A, B)) // A le B xdt:yearMonthDuration xdt:yearMonthDuration fn:not(op:yearMonthDuration-greater-than(A, B)) // A le B xdt:dayTimeDuration xdt:dayTimeDuration fn:not(op:dayTimeDuration-greater-than(A, B)) // numeric values need a special comparison, for the others we can just rely on GreaterThan if(arg1->isNumericValue() && arg2->isNumericValue()) { if(((Numeric*)arg1.get())->getState() == Numeric::NaN || ((Numeric*)arg2.get())->getState() == Numeric::NaN) return false; } return !GreaterThan::greater_than(arg1,arg2,collation,context,info); } bool LessThanEqual::execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const { return less_than_equal(atom1, atom2, 0, context, this); } XQilla-2.3.0/src/operators/ArithmeticOperator.cpp0000644000151400015140000001421311653565523016755 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif ArithmeticOperator::ArithmeticOperator(const XMLCh* opName, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQOperator(opName, args, memMgr) { } ASTNode* ArithmeticOperator::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); for(VectorOfASTNodes::iterator i = _args.begin(); i != _args.end(); ++i) { // An arithmetic expression is evaluated by applying the following rules, in order, // until an error is raised or a value is computed: // 1. Atomization is applied to each operand. *i = new (mm) XQAtomize(*i, mm); (*i)->setLocationInfo(this); // 2. If either operand is an empty sequence, the result of the operation is an empty sequence. // 3. If either operand is now a sequence of length greater than one, then: // * If XPath 1.0 compatibility mode is true, any items after the first item in the sequence are discarded. // Otherwise, a type error is raised. if(!context->getXPath1CompatibilityMode()) { SequenceType *seqType = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_ANYTHING), SequenceType::QUESTION_MARK); seqType->setLocationInfo(*i); *i = new (mm) XQTreatAs(*i, seqType, mm); (*i)->setLocationInfo(this); } // 4. If either operand is now of type xdt:untypedAtomic, it is cast to the default type for the given operator. // If the cast fails, a type error is raised. *i = new (mm) XQPromoteUntyped(*i, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_DOUBLE, mm); (*i)->setLocationInfo(this); *i = (*i)->staticResolution(context); } return this; } ASTNode *ArithmeticOperator::staticTypingImpl(StaticContext *context) { _src.clear(); bool emptyArgument = false; for(VectorOfASTNodes::iterator i = _args.begin(); i != _args.end(); ++i) { if((*i)->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("ArithmeticOperator::staticTyping"), X("It is a static error for an operand of an operator " "to be an updating expression [err:XUST0001]")); } if((*i)->getStaticAnalysis().getStaticType().getMin() == 0) emptyArgument = true; _src.add((*i)->getStaticAnalysis()); if((*i)->isDateOrTimeAndHasNoTimezone(context)) _src.implicitTimezoneUsed(true); } _src.getStaticType() = StaticType(); calculateStaticType(); if(!emptyArgument && _src.getStaticType().getMax() == 0) { XMLBuffer errMsg; errMsg.set(X("The operator ")); errMsg.append(_opName); errMsg.append(X(" has been called on invalid operand types [err:XPTY0004]")); XQThrow(XPath2ErrorException,X("ArithmeticOperator::staticResolution"), errMsg.getRawBuffer()); } if(emptyArgument) _src.getStaticType().setCardinality(0, 1); else _src.getStaticType().setCardinality(1, 1); return this; } void ArithmeticOperator::calculateStaticTypeForNumerics(const StaticType &arg0, const StaticType &arg1) { // Deal with numerics and numeric type promotion if(arg0.containsType(StaticType::DECIMAL_TYPE)) { if(arg1.containsType(StaticType::DECIMAL_TYPE)) { _src.getStaticType() |= StaticType::DECIMAL_TYPE; } if(arg1.containsType(StaticType::FLOAT_TYPE)) { _src.getStaticType() |= StaticType::FLOAT_TYPE; } // untypedAtomic will be promoted to xs:double if(arg1.containsType(StaticType::DOUBLE_TYPE|StaticType::UNTYPED_ATOMIC_TYPE)) { _src.getStaticType() |= StaticType::DOUBLE_TYPE; } } if(arg0.containsType(StaticType::FLOAT_TYPE)) { if(arg1.containsType(StaticType::DECIMAL_TYPE|StaticType::FLOAT_TYPE)) { _src.getStaticType() |= StaticType::FLOAT_TYPE; } // untypedAtomic will be promoted to xs:double if(arg1.containsType(StaticType::DOUBLE_TYPE|StaticType::UNTYPED_ATOMIC_TYPE)) { _src.getStaticType() |= StaticType::DOUBLE_TYPE; } } // untypedAtomic will be promoted to xs:double if(arg0.containsType(StaticType::DOUBLE_TYPE|StaticType::UNTYPED_ATOMIC_TYPE)) { if(arg1.containsType(StaticType::DECIMAL_TYPE|StaticType::FLOAT_TYPE|StaticType::DOUBLE_TYPE|StaticType::UNTYPED_ATOMIC_TYPE)) { _src.getStaticType() |= StaticType::DOUBLE_TYPE; } } } Result ArithmeticOperator::createResult(DynamicContext* context, int flags) const { try { return execute((AnyAtomicType*)getArguments()[0]->createResult(context)->next(context).get(), getNumArgs() == 1 ? 0 : (AnyAtomicType*)getArguments()[1]->createResult(context)->next(context).get(), context); } catch(XQException &e) { if(e.getXQueryLine() == 0) e.setXQueryPosition(this); throw; } } XQilla-2.3.0/src/operators/NodeComparison.cpp0000644000151400015140000000613711653565523016076 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include /*static*/ const XMLCh NodeComparison::name[]={ XERCES_CPP_NAMESPACE_QUALIFIER chLatin_I, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; NodeComparison::NodeComparison(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQOperator(name, args, memMgr) { } ASTNode* NodeComparison::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); for(VectorOfASTNodes::iterator i = _args.begin(); i != _args.end(); ++i) { SequenceType *seqType = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_NODE), SequenceType::QUESTION_MARK); seqType->setLocationInfo(this); *i = new (mm) XQTreatAs(*i, seqType, mm); (*i)->setLocationInfo(this); *i = (*i)->staticResolution(context); } return this; } ASTNode *NodeComparison::staticTypingImpl(StaticContext *context) { _src.clear(); _src.getStaticType() = StaticType(StaticType::BOOLEAN_TYPE, 0, 1); for(VectorOfASTNodes::iterator i = _args.begin(); i != _args.end(); ++i) { _src.add((*i)->getStaticAnalysis()); if((*i)->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("NodeComparison::staticTyping"), X("It is a static error for an operand of an operator " "to be an updating expression [err:XUST0001]")); } } return this; } BoolResult NodeComparison::boolResult(DynamicContext* context) const { Item::Ptr arg1 = getArgument(0)->createResult(context)->next(context); if(arg1.isNull()) return BoolResult::Null; Item::Ptr arg2 = getArgument(1)->createResult(context)->next(context); if(arg2.isNull()) return BoolResult::Null; return ((Node*)arg1.get())->equals((Node*)arg2.get()); } Result NodeComparison::createResult(DynamicContext* context, int flags) const { return (Item::Ptr)context->getItemFactory()->createBoolean(boolResult(context), context); } XQilla-2.3.0/src/operators/NotEquals.cpp0000644000151400015140000000332711653565523015067 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include /*static*/ const XMLCh NotEquals::name[]={ XERCES_CPP_NAMESPACE_QUALIFIER chLatin_N, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_E, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; NotEquals::NotEquals(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : ComparisonOperator(name, args, memMgr) { } /*static*/ bool NotEquals::not_equals(const AnyAtomicType::Ptr &arg1, const AnyAtomicType::Ptr &arg2, Collation* collation, DynamicContext* context, const LocationInfo *info) { // define "ne" as "!eq" return !Equals::equals(arg1,arg2,collation,context, info); } bool NotEquals::execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const { return not_equals(atom1, atom2, 0, context, this); } XQilla-2.3.0/src/operators/Union.cpp0000644000151400015140000001020111653565523014231 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include /*static*/ const XMLCh Union::name[]={ XERCES_CPP_NAMESPACE_QUALIFIER chLatin_U, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; Union::Union(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQOperator(name, args, memMgr), sortAdded_(false) { } ASTNode* Union::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); if(!sortAdded_) { sortAdded_ = true; // Wrap ourselves in a document order sort ASTNode *result = new (mm) XQDocumentOrder(this, mm); return result->staticResolution(context); } for(VectorOfASTNodes::iterator i = _args.begin(); i != _args.end(); ++i) { SequenceType *seqType = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_NODE), SequenceType::STAR); seqType->setLocationInfo(this); *i = new (mm) XQTreatAs(*i, seqType, mm); (*i)->setLocationInfo(*i); *i = (*i)->staticResolution(context); } return this; } ASTNode *Union::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(_args[0]->getStaticAnalysis()); _src.getStaticType() = _args[0]->getStaticAnalysis().getStaticType(); if(_args[0]->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("Union::staticTyping"), X("It is a static error for an operand of an operator " "to be an updating expression [err:XUST0001]")); } _src.add(_args[1]->getStaticAnalysis()); _src.getStaticType().typeConcat(_args[1]->getStaticAnalysis().getStaticType()); unsigned int min = _args[0]->getStaticAnalysis().getStaticType().getMin(); if(min > _args[1]->getStaticAnalysis().getStaticType().getMin()) min = _args[1]->getStaticAnalysis().getStaticType().getMin(); _src.getStaticType().setCardinality(min, _src.getStaticType().getMax()); if(_args[1]->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("Union::staticTyping"), X("It is a static error for an operand of an operator " "to be an updating expression [err:XUST0001]")); } return this; } Result Union::createResult(DynamicContext* context, int flags) const { return ClosureResult::create(getStaticAnalysis(), context, new UnionResult(this, flags)); } Union::UnionResult::UnionResult(const Union *op, int flags) : ResultImpl(op), _op(op), _flags(flags), _index(0), _result(0) { } Item::Ptr Union::UnionResult::next(DynamicContext *context) { Item::Ptr item = 0; while(true) { item = _result->next(context); if(item == NULLRCP) { if(_index > 1) { _index = 0; return 0; } else { _result = _op->getArgument(_index++)->createResult(context, _flags); } } else { return item; } } return 0; } XQilla-2.3.0/src/operators/Equals.cpp0000644000151400015140000000571111653565523014405 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include /*static*/ const XMLCh Equals::name[]={ XERCES_CPP_NAMESPACE_QUALIFIER chLatin_E, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_Q, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; Equals::Equals(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : ComparisonOperator(name, args, memMgr) { } /*static*/ bool Equals::equals(const Item::Ptr &arg1, const Item::Ptr &arg2, Collation* collation, DynamicContext* context, const LocationInfo *info) { assert(arg1->isAtomicValue() && arg2->isAtomicValue()); return equals((const AnyAtomicType::Ptr)arg1, (const AnyAtomicType::Ptr)arg2, collation, context, info); } /*static*/ bool Equals::equals(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, Collation* collation, DynamicContext* context, const LocationInfo *info) { try { // take care of the special case first if(atom1->getPrimitiveTypeIndex() == AnyAtomicType::STRING) { if(atom2->getPrimitiveTypeIndex() != AnyAtomicType::STRING && atom2->getPrimitiveTypeIndex() != AnyAtomicType::ANY_URI) { XQThrow3(XPath2ErrorException,X("Equals::equals"), X("An attempt to compare a string type to a non string type has occurred [err:XPTY0004]"), info); } // if the function returns 0, then they are equal if(!collation) collation = context->getDefaultCollation(info); return (collation->compare(atom1->asString(context),atom2->asString(context))==0); } return atom1->equals(atom2, context); } catch(XQException &e) { if(e.getXQueryLine() == 0) e.setXQueryPosition(info); throw; } } bool Equals::execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const { return equals(atom1, atom2, 0, context, this); } XQilla-2.3.0/src/operators/UnaryMinus.cpp0000644000151400015140000000571611653565523015272 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include /*static*/ const XMLCh UnaryMinus::name[]={ XERCES_CPP_NAMESPACE_QUALIFIER chLatin_U, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_M, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; UnaryMinus::UnaryMinus(bool positive, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : ArithmeticOperator(name, args, memMgr), positive_(positive) { assert(_args.size() == 1); } ASTNode* UnaryMinus::staticResolution(StaticContext *context) { return ArithmeticOperator::staticResolution(context); } ASTNode *UnaryMinus::staticTypingImpl(StaticContext *context) { _src.clear(); ASTNode *result = ArithmeticOperator::staticTypingImpl(context); if(result == this && positive_) { // constant fold unary plus after type checking result = *_args.begin(); } return result; } void UnaryMinus::calculateStaticType() { const StaticType &arg0 = _args[0]->getStaticAnalysis().getStaticType(); // untypedAtomic will be promoted to xs:double if(arg0.containsType(StaticType::NUMERIC_TYPE)) { _src.getStaticType() = arg0 & StaticType::NUMERIC_TYPE; } if(arg0.containsType(StaticType::UNTYPED_ATOMIC_TYPE)) { _src.getStaticType() |= StaticType::DOUBLE_TYPE; } } Item::Ptr UnaryMinus::execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const { assert(atom2.isNull()); if(atom1.isNull()) return 0; // only works on Numeric types if(atom1->isNumericValue()) { if(positive_) return atom1; else return ((const Numeric*)atom1.get())->invert(context); } else { XQThrow(XPath2ErrorException,X("UnaryMinus::createSequence"), X("An attempt to apply unary minus a non numeric type has occurred [err:XPTY0004]")); } } XQilla-2.3.0/src/operators/Multiply.cpp0000644000151400015140000000715011653565523014771 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include /*static*/ const XMLCh Multiply::name[]={ XERCES_CPP_NAMESPACE_QUALIFIER chLatin_M, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_l, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; Multiply::Multiply(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : ArithmeticOperator(name, args, memMgr) { // Nothing to do } void Multiply::calculateStaticType() { const StaticType &arg0 = _args[0]->getStaticAnalysis().getStaticType(); const StaticType &arg1 = _args[1]->getStaticAnalysis().getStaticType(); calculateStaticTypeForNumerics(arg0, arg1); // Multiplying a duration by a number if(arg0.containsType(StaticType::DAY_TIME_DURATION_TYPE|StaticType::YEAR_MONTH_DURATION_TYPE) && arg1.containsType(StaticType::NUMERIC_TYPE)) _src.getStaticType() |= arg0 & (StaticType::DAY_TIME_DURATION_TYPE|StaticType::YEAR_MONTH_DURATION_TYPE); if(arg0.containsType(StaticType::NUMERIC_TYPE) && arg1.containsType(StaticType::DAY_TIME_DURATION_TYPE|StaticType::YEAR_MONTH_DURATION_TYPE)) _src.getStaticType() |= arg1 & (StaticType::DAY_TIME_DURATION_TYPE|StaticType::YEAR_MONTH_DURATION_TYPE); } Item::Ptr Multiply::execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const { if(atom1.isNull() || atom2.isNull()) return 0; // xs:double * xs:duration (only xdt:dayTimeDuration and xdt:yearMonthDuration) if(atom1->isNumericValue() && (atom2->getPrimitiveTypeIndex() == AnyAtomicType::DAY_TIME_DURATION || atom2->getPrimitiveTypeIndex() == AnyAtomicType::YEAR_MONTH_DURATION)) { return ((const ATDurationOrDerived*)atom2.get())->multiply((const Numeric*)atom1.get(), context); } // xs:duration * xs:double (only xdt:dayTimeDuration and xdt:yearMonthDuration) if(atom2->isNumericValue() && (atom1->getPrimitiveTypeIndex() == AnyAtomicType::DAY_TIME_DURATION || atom1->getPrimitiveTypeIndex() == AnyAtomicType::YEAR_MONTH_DURATION)) { return ((const ATDurationOrDerived*)atom1.get())->multiply((const Numeric*)atom2.get(), context); } // numeric * numeric if(atom1->isNumericValue()) { if(atom2->isNumericValue()) { return ((const Numeric*)atom1.get())->multiply((const Numeric*)atom2.get(), context); } else { XQThrow(XPath2ErrorException,X("Multiply::createSequence"), X("An attempt to multiply a non numeric type to a numeric type has occurred [err:XPTY0004]")); } } XQThrow(XPath2ErrorException,X("Multiply::createSequence"), X("The operator * has been called on invalid operand types [err:XPTY0004]")); } XQilla-2.3.0/src/operators/IntegerDivide.cpp0000644000151400015140000000607611653565523015702 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include /*static*/ const XMLCh IntegerDivide::name[]={ XERCES_CPP_NAMESPACE_QUALIFIER chLatin_I, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_D, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_v, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; IntegerDivide::IntegerDivide(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : ArithmeticOperator(name, args, memMgr) { // Nothing to do } void IntegerDivide::calculateStaticType() { const StaticType &arg0 = _args[0]->getStaticAnalysis().getStaticType(); // untypedAtomic will be promoted to xs:double if(arg0.containsType(StaticType::NUMERIC_TYPE|StaticType::UNTYPED_ATOMIC_TYPE)) { _src.getStaticType() = StaticType(StaticType::DECIMAL_TYPE, 0, 1); } } Item::Ptr IntegerDivide::execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const { if(atom1 == NULLRCP || atom2 == NULLRCP) return 0; if(atom1->isNumericValue() && atom2->isNumericValue()) { const Numeric::Ptr op1=atom1; const Numeric::Ptr op2=atom2; if(op2->isZero()) XQThrow(XPath2ErrorException,X("IntegerDivide::execute"), X("Division by zero [err:FOAR0001]")); if(op1->isNaN() || op1->isInfinite() || op2->isNaN()) XQThrow(XPath2ErrorException,X("IntegerDivide::execute"), X("Either operand is NaN or the dividend is INF or -INF [err:FOAR0002]")); // it divides the first argument by the second, and returns the integer obtained by truncating the fractional part // of the result. Numeric::Ptr div=op1->divide(op2, context); if(div->isPositive()) div = div->floor(context); else if(div->isNegative()) div = div->ceiling(context); return div->castAs(AnyAtomicType::DECIMAL, XERCES_CPP_NAMESPACE_QUALIFIER SchemaSymbols::fgURI_SCHEMAFORSCHEMA, XERCES_CPP_NAMESPACE_QUALIFIER SchemaSymbols::fgDT_INTEGER, context); } XQThrow(XPath2ErrorException,X("IntegerDivide::execute"), X("An attempt to integer divide a non numeric type to a numeric type has occurred [err:XPTY0004]")); } XQilla-2.3.0/src/operators/LessThan.cpp0000644000151400015140000001414511653565523014675 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /*static*/ const XMLCh LessThan::name[]={ XERCES_CPP_NAMESPACE_QUALIFIER chLatin_L, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_T, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; LessThan::LessThan(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : ComparisonOperator(name, args, memMgr) { } /*static*/ bool LessThan::less_than(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, Collation* collation, DynamicContext* context, const LocationInfo *info) { try { // take care of Numeric types first if(atom1->isNumericValue()) { if(atom2->isNumericValue()) { return ((Numeric*)atom1.get())->lessThan((Numeric*)atom2.get(), context); } else { XQThrow2(XPath2ErrorException,X("LessThan::less_than"), X("An attempt to compare a numeric type to a non numeric type has occurred [err:XPTY0004]")); } } switch(atom1->getPrimitiveTypeIndex()) { case AnyAtomicType::BOOLEAN: { // op:boolean-less-than(A, B) if(atom2->getPrimitiveTypeIndex() != AnyAtomicType::BOOLEAN) XQThrow2(XPath2ErrorException,X("LessThan::less_than"), X("An attempt to compare a boolean type to a non boolean type has occurred [err:XPTY0004]")); return ((const ATBooleanOrDerived*)atom1.get())->compare((const ATBooleanOrDerived*)atom2.get(), context) < 0; } case AnyAtomicType::STRING: case AnyAtomicType::ANY_URI: { // op:numeric-less-than(fn:compare(A, B), 0) if(atom2->getPrimitiveTypeIndex() != AnyAtomicType::STRING && atom2->getPrimitiveTypeIndex() != AnyAtomicType::ANY_URI) XQThrow2(XPath2ErrorException,X("LessThan::less_than"), X("An attempt to compare a string type to a non string type has occurred [err:XPTY0004]")); // if the function returns -1, then atom1 is less if(!collation) collation = context->getDefaultCollation(info); return collation->compare(atom1->asString(context),atom2->asString(context))<0; } case AnyAtomicType::DATE: { // op:date-less-than(A, B) if(atom2->getPrimitiveTypeIndex() != AnyAtomicType::DATE) XQThrow2(XPath2ErrorException,X("LessThan::less_than"), X("An attempt to compare a date type to a non date type has occurred [err:XPTY0004]")); return ((ATDateOrDerived*)atom1.get())->compare((const ATDateOrDerived::Ptr )atom2, context) < 0; } case AnyAtomicType::TIME: { // op:time-less-than(A, B) if(atom2->getPrimitiveTypeIndex() != AnyAtomicType::TIME) XQThrow2(XPath2ErrorException,X("LessThan::less_than"), X("An attempt to compare a time type to a non time type has occurred [err:XPTY0004]")); return ((ATTimeOrDerived*)atom1.get())->compare((const ATTimeOrDerived::Ptr )atom2, context) < 0; } case AnyAtomicType::DATE_TIME: { // op:datetime-less-than(A, B) if(atom2->getPrimitiveTypeIndex() != AnyAtomicType::DATE_TIME) XQThrow2(XPath2ErrorException,X("LessThan::less_than"), X("An attempt to compare a dateTime type to a non dateTime type has occurred [err:XPTY0004]")); return ((ATDateTimeOrDerived*)atom1.get())->compare((const ATDateTimeOrDerived::Ptr)atom2, context) < 0; } case AnyAtomicType::DAY_TIME_DURATION: { // op:dayTimeDuration-less-than(A, B) if(atom2->getPrimitiveTypeIndex() != AnyAtomicType::DAY_TIME_DURATION) XQThrow2(XPath2ErrorException,X("LessThan::less_than"), X("An attempt to compare a duration type to a non duration type has occurred [err:XPTY0004]")); return ((ATDurationOrDerived*)atom1.get())->compare((const ATDurationOrDerived::Ptr )atom2, context) < 0; } case AnyAtomicType::YEAR_MONTH_DURATION: { // op:yearMonthDuration-less-than(A, B) if(atom2->getPrimitiveTypeIndex() != AnyAtomicType::YEAR_MONTH_DURATION) XQThrow2(XPath2ErrorException,X("LessThan::less_than"), X("An attempt to compare a duration type to a non duration type has occurred [err:XPTY0004]")); return ((ATDurationOrDerived*)atom1.get())->compare((const ATDurationOrDerived::Ptr )atom2, context) < 0; } default: XQThrow2(XPath2ErrorException,X("LessThan::less_than"), X("Unexpected data type in operator 'lt' [err:XPTY0004]")); } XQThrow2(FunctionException,X("LessThan::less_than"), X("An equality operator is not defined for the provided arguments [err:XPTY0004]")); } catch(XQException &e) { if(e.getXQueryLine() == 0) e.setXQueryPosition(info); throw; } } bool LessThan::execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const { return less_than(atom1, atom2, 0, context, this); } XQilla-2.3.0/src/operators/Divide.cpp0000644000151400015140000000736111653565523014362 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include /*static*/ const XMLCh Divide::name[]={ XERCES_CPP_NAMESPACE_QUALIFIER chLatin_D, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_v, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; Divide::Divide(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : ArithmeticOperator(name, args, memMgr) { // Nothing to do } void Divide::calculateStaticType() { const StaticType &arg0 = _args[0]->getStaticAnalysis().getStaticType(); const StaticType &arg1 = _args[1]->getStaticAnalysis().getStaticType(); calculateStaticTypeForNumerics(arg0, arg1); // Dividing a duration by a number if(arg0.containsType(StaticType::DAY_TIME_DURATION_TYPE|StaticType::YEAR_MONTH_DURATION_TYPE) && arg1.containsType(StaticType::NUMERIC_TYPE)) { _src.getStaticType() |= arg0 & (StaticType::DAY_TIME_DURATION_TYPE|StaticType::YEAR_MONTH_DURATION_TYPE); } // Dividing a duration by a duration if(arg0.containsType(StaticType::DAY_TIME_DURATION_TYPE) && arg1.containsType(StaticType::DAY_TIME_DURATION_TYPE)) { _src.getStaticType() |= StaticType::DECIMAL_TYPE; } if(arg0.containsType(StaticType::YEAR_MONTH_DURATION_TYPE) && arg1.containsType(StaticType::YEAR_MONTH_DURATION_TYPE)) { _src.getStaticType() |= StaticType::DECIMAL_TYPE; } } Item::Ptr Divide::execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const { if(atom1 == NULLRCP || atom2 == NULLRCP) return 0; if(atom1->isNumericValue()) { if(atom2->isNumericValue()) { return (const Item::Ptr)((Numeric*)(const AnyAtomicType*)atom1)->divide((const Numeric::Ptr )atom2, context); } else { XQThrow(XPath2ErrorException,X("Divide::createSequence"), X("An attempt to divide a numeric type by a non-numeric type has occurred [err:XPTY0004]")); } } if(atom1->getPrimitiveTypeIndex() == AnyAtomicType::DAY_TIME_DURATION || atom1->getPrimitiveTypeIndex() == AnyAtomicType::YEAR_MONTH_DURATION) { const ATDurationOrDerived* duration = (const ATDurationOrDerived*)atom1.get(); if(atom2->isNumericValue()) { return (const Item::Ptr)duration->divide((const Numeric *)atom2.get(), context); } else if(atom2->getPrimitiveTypeIndex() == atom1->getPrimitiveTypeIndex()) { return (const Item::Ptr)duration->divide((const ATDurationOrDerived*)atom2.get(), context); } else { XQThrow(XPath2ErrorException,X("Divide::createSequence"), X("An attempt to divide an xs:duration by an invalid type has occured [err:XPTY0004]")); } } else { XQThrow(XPath2ErrorException,X("Divide::createSequence"), X("The operator div has been called on invalid operand types [err:XPTY0004]")); } return 0; } XQilla-2.3.0/src/operators/GreaterThanEqual.cpp0000644000151400015140000000555611653565523016356 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include /*static*/ const XMLCh GreaterThanEqual::name[]={ XERCES_CPP_NAMESPACE_QUALIFIER chLatin_G, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_E, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; GreaterThanEqual::GreaterThanEqual(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : ComparisonOperator(name, args, memMgr) { } /*static*/ bool GreaterThanEqual::greater_than_equal(const AnyAtomicType::Ptr &arg1, const AnyAtomicType::Ptr &arg2, Collation* collation, DynamicContext* context, const LocationInfo *info) { // A ge B numeric numeric op:numeric-greater-than(A, B) or op:numeric-equal(A, B) // A ge B xs:boolean xs:boolean fn:not(op:boolean-less-than(A, B)) // A ge B xs:string xs:string op:numeric-greater-than(fn:compare(A, B), -1) // A ge B xs:date xs:date fn:not(op:date-less-than(A, B)) // A ge B xs:time xs:time fn:not(op:time-less-than(A, B)) // A ge B xs:dateTime xs:dateTime fn:not(op:datetime-less-than(A, B)) // A ge B xdt:yearMonthDuration xdt:yearMonthDuration fn:not(op:yearMonthDuration-less-than(A, B)) // A ge B xdt:dayTimeDuration xdt:dayTimeDuration fn:not(op:dayTimeDuration-less-than(A, B)) // numeric values need a special comparison, for the others we can just rely on LessThan if(arg1->isNumericValue() && arg2->isNumericValue()) { if(((Numeric*)arg1.get())->getState() == Numeric::NaN || ((Numeric*)arg2.get())->getState() == Numeric::NaN) return false; } return !LessThan::less_than(arg1,arg2,collation,context, info); } bool GreaterThanEqual::execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const { return greater_than_equal(atom1,atom2,0,context, this); } XQilla-2.3.0/src/operators/GeneralComp.cpp0000644000151400015140000002070311653565523015345 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; /*static*/ const XMLCh GeneralComp::name[]={ 'G', 'e', 'n', 'e', 'r', 'a', 'l', 'C', 'o', 'm', 'p', 'a', 'r', 'i', 's', 'o', 'n', 0 }; GeneralComp::GeneralComp(ComparisonOperation operation, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQOperator(name, args, memMgr), operation_(operation), collation_(0), xpath1compat_(false) { } GeneralComp::GeneralComp(ComparisonOperation operation, const VectorOfASTNodes &args, Collation *collation, bool xpath1Compat, XPath2MemoryManager* memMgr) : XQOperator(name, args, memMgr), operation_(operation), collation_(collation), xpath1compat_(xpath1Compat) { } bool GeneralComp::compare(GeneralComp::ComparisonOperation operation, AnyAtomicType::Ptr first, AnyAtomicType::Ptr second, Collation* collation, DynamicContext *context, bool xpath1compat, const LocationInfo *info) { // The magnitude relationship between two atomic values is determined as follows: // 1) If either atomic value has the dynamic type xdt:untypedAtomic, that value is cast to a required type, // which is determined as follows: // - If the dynamic type of the other atomic value is a numeric type, the required type is xs:double. // - If the dynamic type of the other atomic value is xdt:untypedAtomic, the required type is xs:string. // - Otherwise, the required type is the dynamic type of the other atomic value. // If the cast to the required type fails, a dynamic error is raised. // 2) If XPath 1.0 compatibility mode is true, and at least one of the atomic values has a numeric type, // then both atomic values are cast to to the type xs:double. // 3) After any necessary casting, the atomic values are compared using one of the value comparison operators // eq, ne, lt, le, gt, or ge, depending on whether the general comparison operator was // =, !=, <, <=, >, or >=. The values have the required magnitude relationship if the result of this // value comparison is true. if(first->getPrimitiveTypeIndex() == AnyAtomicType::UNTYPED_ATOMIC) { if (second->isNumericValue()) { first = first->castAs(AnyAtomicType::DOUBLE, context); } else if(second->getPrimitiveTypeIndex() == AnyAtomicType::UNTYPED_ATOMIC) { first = first->castAs(AnyAtomicType::STRING, context); } else { first = first->castAs(second->getPrimitiveTypeIndex(), second->getTypeURI(), second->getTypeName(), context); } } if(second->getPrimitiveTypeIndex() == AnyAtomicType::UNTYPED_ATOMIC) { if(first->isNumericValue()) { second = second->castAs(AnyAtomicType::DOUBLE, context); } else if(first->getPrimitiveTypeIndex() == AnyAtomicType::UNTYPED_ATOMIC) { second = second->castAs(AnyAtomicType::STRING, context); } else { second = second->castAs(first->getPrimitiveTypeIndex(), first->getTypeURI(), first->getTypeName(), context); } } if(xpath1compat && (first->isNumericValue() || second->isNumericValue())) { first = first->castAs(AnyAtomicType::DOUBLE, context); second = second->castAs(AnyAtomicType::DOUBLE, context); } bool result = false; switch(operation) { case GeneralComp::EQUAL: result = Equals::equals(first,second,collation,context,info); break; case GeneralComp::NOT_EQUAL: result = NotEquals::not_equals(first,second,collation,context,info); break; case GeneralComp::LESS_THAN: result = LessThan::less_than(first,second,collation,context,info); break; case GeneralComp::LESS_THAN_EQUAL: result = LessThanEqual::less_than_equal(first,second,collation,context,info); break; case GeneralComp::GREATER_THAN: result = GreaterThan::greater_than(first,second,collation,context,info); break; case GeneralComp::GREATER_THAN_EQUAL: result = GreaterThanEqual::greater_than_equal(first,second,collation,context,info); break; default: assert(false); } return result; } ASTNode* GeneralComp::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); xpath1compat_ = context->getXPath1CompatibilityMode(); AutoNodeSetOrderingReset orderReset(context); for(VectorOfASTNodes::iterator i = _args.begin(); i != _args.end(); ++i) { *i = new (mm) XQAtomize(*i, mm); (*i)->setLocationInfo(this); *i = (*i)->staticResolution(context); } collation_ = context->getDefaultCollation(this); return this; } ASTNode *GeneralComp::staticTypingImpl(StaticContext *context) { _src.clear(); for(VectorOfASTNodes::iterator i = _args.begin(); i != _args.end(); ++i) { _src.add((*i)->getStaticAnalysis()); if((*i)->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("GeneralComp::staticTyping"), X("It is a static error for an operand of an operator " "to be an updating expression [err:XUST0001]")); } if((*i)->isDateOrTimeAndHasNoTimezone(context)) _src.implicitTimezoneUsed(true); } _src.getStaticType() = StaticType::BOOLEAN_TYPE; return this; } BoolResult GeneralComp::boolResult(DynamicContext* context) const { // Atomization is applied to each operand of a general comparison. Result arg1 = getArgument(0)->createResult(context); Result arg2 = getArgument(1)->createResult(context); // The result of the comparison is true if and only if there is a pair of atomic values, // one belonging to the result of atomization of the first operand and the other belonging // to the result of atomization of the second operand, that have the required magnitude relationship. // Otherwise the result of the general comparison is false. AnyAtomicType::Ptr item1 = (const AnyAtomicType::Ptr)arg1->next(context); if(item1 != NULLRCP) { // The first time we loop over arg2, we store it in a sequence AnyAtomicType::Ptr item2; Sequence arg2_sequence(context->getMemoryManager()); while((item2 = (const AnyAtomicType::Ptr)arg2->next(context)) != NULLRCP) { if(GeneralComp::compare(getOperation(), item1, item2, getCollation(), context, getXPath1CompatibilityMode(), this)) { return true; } arg2_sequence.addItem(item2); } // The second and subsequent times, we iterate over the sequence Sequence::iterator itSecond; while((item1 = (const AnyAtomicType::Ptr)arg1->next(context)) != NULLRCP) { for(itSecond = arg2_sequence.begin(); itSecond != arg2_sequence.end(); ++itSecond) { if(GeneralComp::compare(getOperation(), item1, (const AnyAtomicType::Ptr)*itSecond, getCollation(), context, getXPath1CompatibilityMode(), this)) { return true; } } } } return false; } Result GeneralComp::createResult(DynamicContext* context, int flags) const { return (Item::Ptr)context->getItemFactory()->createBoolean(boolResult(context), context); } XQilla-2.3.0/src/operators/And.cpp0000644000151400015140000000527611653565523013663 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; /*static*/ const XMLCh And::name[]={ chLatin_A, chLatin_n, chLatin_d, chNull }; And::And(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQOperator(name, args, memMgr) { } ASTNode* And::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); for(VectorOfASTNodes::iterator i = _args.begin(); i != _args.end(); ++i) { *i = new (mm) XQEffectiveBooleanValue(*i, mm); (*i)->setLocationInfo(this); *i = (*i)->staticResolution(context); } return this; } ASTNode *And::staticTypingImpl(StaticContext *context) { _src.clear(); VectorOfASTNodes::iterator i; for(i = _args.begin(); i != _args.end(); ++i) { _src.add((*i)->getStaticAnalysis()); if((*i)->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("And::staticTyping"), X("It is a static error for an operand of an operator " "to be an updating expression [err:XUST0001]")); } } _src.getStaticType() = StaticType::BOOLEAN_TYPE; return this; } BoolResult And::boolResult(DynamicContext* context) const { VectorOfASTNodes::const_iterator i = getArguments().begin(); for(; i != getArguments().end(); ++i) { if(!(*i)->boolResult(context)) return false; } return true; } Result And::createResult(DynamicContext* context, int flags) const { return (Item::Ptr)context->getItemFactory()->createBoolean(boolResult(context), context); } XQilla-2.3.0/src/operators/Intersect.cpp0000644000151400015140000000746311653565523015121 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh Intersect::name[]={ chLatin_i, chLatin_n, chLatin_t, chLatin_e, chLatin_r, chLatin_s, chLatin_e, chLatin_c, chLatin_t, chNull }; Intersect::Intersect(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQOperator(name, args, memMgr), sortAdded_(false) { } ASTNode* Intersect::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); if(!sortAdded_) { sortAdded_ = true; // Wrap ourselves in a document order sort ASTNode *result = new (mm) XQDocumentOrder(this, mm); result->setLocationInfo(this); return result->staticResolution(context); } for(VectorOfASTNodes::iterator i = _args.begin(); i != _args.end(); ++i) { SequenceType *seqType = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_NODE), SequenceType::STAR); seqType->setLocationInfo(this); *i = new (mm) XQTreatAs(*i, seqType, mm); (*i)->setLocationInfo(this); *i = (*i)->staticResolution(context); } return this; } ASTNode *Intersect::staticTypingImpl(StaticContext *context) { _src.clear(); _src.copy(_args[0]->getStaticAnalysis()); if(_args[0]->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("Intersect::staticTyping"), X("It is a static error for an operand of an operator " "to be an updating expression [err:XUST0001]")); } _src.add(_args[1]->getStaticAnalysis()); _src.getStaticType().typeNodeIntersect(_args[1]->getStaticAnalysis().getStaticType()); _src.getStaticType().multiply(0, 1); if(_args[1]->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("Intersect::staticTyping"), X("It is a static error for an operand of an operator " "to be an updating expression [err:XUST0001]")); } return this; } Result Intersect::createResult(DynamicContext* context, int flags) const { // TBD Improve this implementation - jpcs Sequence param1 = getArgument(0)->createResult(context)->toSequence(context); Sequence param2 = getArgument(1)->createResult(context)->toSequence(context); XPath2MemoryManager* memMgr = context->getMemoryManager(); Sequence result(param1.getLength(),memMgr); Sequence::const_iterator p1It = param1.begin(); Sequence::const_iterator p2It; Sequence::const_iterator end1 = param1.end(); Sequence::const_iterator end2 = param2.end(); for(;p1It != end1; ++p1It) { for(p2It = param2.begin();p2It != end2; ++p2It) { if(((Node*)p1It->get())->equals((Node*)p2It->get())) { result.addItem(*p1It); } } } return result; } XQilla-2.3.0/src/operators/Except.cpp0000644000151400015140000001046711653565523014407 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include /*static*/ const XMLCh Except::name[]={ XERCES_CPP_NAMESPACE_QUALIFIER chLatin_E, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_x, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_p, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; Except::Except(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQOperator(name, args, memMgr), sortAdded_(false) { } ASTNode* Except::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); if(!sortAdded_) { sortAdded_ = true; // Wrap ourselves in a document order sort ASTNode *result = new (mm) XQDocumentOrder(this, mm); result->setLocationInfo(this); return result->staticResolution(context); } for(VectorOfASTNodes::iterator i = _args.begin(); i != _args.end(); ++i) { SequenceType *seqType = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_NODE), SequenceType::STAR); seqType->setLocationInfo(this); *i = new (mm) XQTreatAs(*i, seqType, mm); (*i)->setLocationInfo(this); *i = (*i)->staticResolution(context); } return this; } ASTNode *Except::staticTypingImpl(StaticContext *context) { _src.clear(); _src.copy(_args[0]->getStaticAnalysis()); if(_args[0]->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("Except::staticTyping"), X("It is a static error for an operand of an operator " "to be an updating expression [err:XUST0001]")); } _src.add(_args[1]->getStaticAnalysis()); unsigned int min = 0; if(_src.getStaticType().getMin() > _args[1]->getStaticAnalysis().getStaticType().getMax()) min = _src.getStaticType().getMin() - _args[1]->getStaticAnalysis().getStaticType().getMax(); _src.getStaticType().setCardinality(min, _src.getStaticType().getMax()); if(_args[1]->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("Except::staticTyping"), X("It is a static error for an operand of an operator " "to be an updating expression [err:XUST0001]")); } return this; } class ExceptResult : public ResultImpl { public: ExceptResult(const Except *op, DynamicContext *context) : ResultImpl(op), _result(op->getArgument(0)->createResult(context)), _excpt(op->getArgument(1)->createResult(context)) { } Item::Ptr next(DynamicContext *context) { Item::Ptr item = _result->next(context); while(item.notNull()) { bool found = false; Result except_result(_excpt.createResult()); Item::Ptr except_item; while((except_item = except_result->next(context)).notNull()) { if(((Node*)item.get())->equals((Node*)except_item.get())) { found = true; break; } } if(!found) break; item = _result->next(context); } if(item.isNull()) { _result = 0; _excpt = 0; } return item; } private: Result _result; ResultBuffer _excpt; }; Result Except::createResult(DynamicContext* context, int flags) const { return new ExceptResult(this, context); } XQilla-2.3.0/src/operators/Minus.cpp0000644000151400015140000001446011653565523014247 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh Minus::name[]={ chLatin_M, chLatin_i, chLatin_n, chLatin_u, chLatin_s, chNull }; Minus::Minus(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : ArithmeticOperator(name, args, memMgr) { } void Minus::calculateStaticType() { const StaticType &arg0 = _args[0]->getStaticAnalysis().getStaticType(); const StaticType &arg1 = _args[1]->getStaticAnalysis().getStaticType(); calculateStaticTypeForNumerics(arg0, arg1); // Subtracting a duration from a date, dateTime, time, or duration if(arg1.containsType(StaticType::DAY_TIME_DURATION_TYPE)) { _src.getStaticType() |= arg0 & (StaticType::DATE_TYPE|StaticType::DATE_TIME_TYPE|StaticType::TIME_TYPE| StaticType::DAY_TIME_DURATION_TYPE); } if(arg1.containsType(StaticType::YEAR_MONTH_DURATION_TYPE)) { _src.getStaticType() |= arg0 & (StaticType::DATE_TYPE|StaticType::DATE_TIME_TYPE|StaticType::YEAR_MONTH_DURATION_TYPE); } // Subtracting date, dateTime and time if(arg0.containsType(StaticType::DATE_TYPE) && arg1.containsType(StaticType::DATE_TYPE)) { _src.getStaticType() |= StaticType::DAY_TIME_DURATION_TYPE; } if(arg0.containsType(StaticType::DATE_TIME_TYPE) && arg1.containsType(StaticType::DATE_TIME_TYPE)) { _src.getStaticType() |= StaticType::DAY_TIME_DURATION_TYPE; } if(arg0.containsType(StaticType::TIME_TYPE) && arg1.containsType(StaticType::TIME_TYPE)) { _src.getStaticType() |= StaticType::DAY_TIME_DURATION_TYPE; } } Item::Ptr Minus::execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const { if(atom1 == NULLRCP || atom2 == NULLRCP) return 0; if(atom1->isNumericValue()) { if(atom2->isNumericValue()) { return ((Numeric*)atom1.get())->subtract((const Numeric::Ptr )atom2, context); } else { XQThrow(XPath2ErrorException,X("Minus::createSequence"), X("An attempt to subtract a non numeric type from a numeric type has occurred [err:XPTY0004]")); } } switch(atom1->getPrimitiveTypeIndex()) { case AnyAtomicType::DATE : { switch(atom2->getPrimitiveTypeIndex()) { case AnyAtomicType::DAY_TIME_DURATION: { return ((ATDateOrDerived*)atom1.get())->subtractDayTimeDuration((const ATDurationOrDerived *)atom2.get(), context); } case AnyAtomicType::YEAR_MONTH_DURATION: { return ((ATDateOrDerived*)atom1.get())->subtractYearMonthDuration((const ATDurationOrDerived *)atom2.get(), context); } case AnyAtomicType::DATE: { return ((ATDateOrDerived*)atom1.get())->subtractDate((const ATDateOrDerived *)atom2.get(), context); } default: { XQThrow(XPath2ErrorException,X("Minus::createSequence"), X("An invalid attempt to subtract from xs:date type has occurred [err:XPTY0004]")); } } } case AnyAtomicType::TIME : { switch(atom2->getPrimitiveTypeIndex()) { case AnyAtomicType::DAY_TIME_DURATION : { return ((ATTimeOrDerived*)atom1.get())->subtractDayTimeDuration((const ATDurationOrDerived *)atom2.get(), context ); } case AnyAtomicType::TIME : { return ((ATTimeOrDerived*)atom1.get())->subtractTime((const ATTimeOrDerived *)atom2.get(), context); } default: { XQThrow(XPath2ErrorException,X("Minus::createSequence"), X("An invalid attempt to subtract from xs:time type has occurred [err:XPTY0004]")); } } } case AnyAtomicType::DATE_TIME : { switch(atom2->getPrimitiveTypeIndex()) { case AnyAtomicType::DAY_TIME_DURATION: { return ((ATDateTimeOrDerived*)atom1.get())->subtractDayTimeDuration((const ATDurationOrDerived*)atom2.get(), context); } case AnyAtomicType::YEAR_MONTH_DURATION: { return ((ATDateTimeOrDerived*)atom1.get())->subtractYearMonthDuration((const ATDurationOrDerived*)atom2.get(), context); } case AnyAtomicType::DATE_TIME : { return ((ATDateTimeOrDerived*)atom1.get())->subtractDateTimeAsDayTimeDuration((const ATDateTimeOrDerived::Ptr )atom2, context); } default: { XQThrow(XPath2ErrorException,X("Minus::createSequence"), X("An invalid attempt to subtract from xs:dateTime type has occurred [err:XPTY0004]")); } } } case AnyAtomicType::DAY_TIME_DURATION: { switch(atom2->getPrimitiveTypeIndex()) { case AnyAtomicType::DAY_TIME_DURATION: { return ((ATDurationOrDerived*)atom1.get())->subtract((const ATDurationOrDerived *)atom2.get(), context); } default: { XQThrow(XPath2ErrorException,X("Minus::createSequence"), X("An invalid attempt to subtract from xdt:dayTimeDuration type has occurred [err:XPTY0004]")); } } } case AnyAtomicType::YEAR_MONTH_DURATION: { switch(atom2->getPrimitiveTypeIndex()) { case AnyAtomicType::YEAR_MONTH_DURATION: { return ((ATDurationOrDerived*)atom1.get())->subtract((const ATDurationOrDerived *)atom2.get(), context); } default: { XQThrow(XPath2ErrorException,X("Minus::createSequence"), X("An invalid attempt to subtract from xdt:yearMonthDuration type has occurred [err:XPTY0004]")); } } } default: { XQThrow(XPath2ErrorException,X("Minus::createSequence"), X("The operator subtract ('-') has been called on invalid operand types [err:XPTY0004]")); } } } XQilla-2.3.0/src/operators/Mod.cpp0000644000151400015140000000426511653565523013675 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include /*static*/ const XMLCh Mod::name[]={ XERCES_CPP_NAMESPACE_QUALIFIER chLatin_M, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; Mod::Mod(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : ArithmeticOperator(name, args, memMgr) { } void Mod::calculateStaticType() { const StaticType &arg0 = _args[0]->getStaticAnalysis().getStaticType(); const StaticType &arg1 = _args[1]->getStaticAnalysis().getStaticType(); calculateStaticTypeForNumerics(arg0, arg1); } Item::Ptr Mod::execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const { if(atom1 == NULLRCP || atom2 == NULLRCP) return 0; if(atom1->isNumericValue()) { if(atom2->isNumericValue()) { return (const Item::Ptr)((Numeric*)(const AnyAtomicType*)atom1)->mod((const Numeric::Ptr )atom2, context); } else { XQThrow(XPath2ErrorException,X("Mod::createSequence"), X("An attempt to mod a non numeric type to a numeric type has occurred [err:XPTY0004]")); } } XQThrow(XPath2ErrorException,X("Mod::createSequence"), X("The operator mod has been called on invalid operand types [err:XPTY0004]")); } XQilla-2.3.0/src/operators/Or.cpp0000644000151400015140000000527411653565523013537 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; /*static*/ const XMLCh Or::name[]={ chLatin_O, chLatin_r, chNull }; Or::Or(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQOperator(name, args, memMgr) { // Nothing to do } ASTNode* Or::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); for(VectorOfASTNodes::iterator i = _args.begin(); i != _args.end(); ++i) { *i = new (mm) XQEffectiveBooleanValue(*i, mm); (*i)->setLocationInfo(this); *i = (*i)->staticResolution(context); } return this; } ASTNode *Or::staticTypingImpl(StaticContext *context) { _src.clear(); VectorOfASTNodes::iterator i; for(i = _args.begin(); i != _args.end(); ++i) { _src.add((*i)->getStaticAnalysis()); if((*i)->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("Or::staticTyping"), X("It is a static error for an operand of an operator " "to be an updating expression [err:XUST0001]")); } } _src.getStaticType() = StaticType::BOOLEAN_TYPE; return this; } BoolResult Or::boolResult(DynamicContext* context) const { VectorOfASTNodes::const_iterator i = getArguments().begin(); for(; i != getArguments().end(); ++i) { if((*i)->boolResult(context)) return true; } return false; } Result Or::createResult(DynamicContext* context, int flags) const { return (Item::Ptr)context->getItemFactory()->createBoolean(boolResult(context), context); } XQilla-2.3.0/src/operators/GreaterThan.cpp0000644000151400015140000001417511653565523015363 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /*static*/ const XMLCh GreaterThan::name[]={ XERCES_CPP_NAMESPACE_QUALIFIER chLatin_G, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_T, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; GreaterThan::GreaterThan(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : ComparisonOperator(name, args, memMgr) { } /*static*/ bool GreaterThan::greater_than(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, Collation* collation, DynamicContext* context, const LocationInfo *info) { try { // take care of Numeric types first if(atom1->isNumericValue()) { if(atom2->isNumericValue()) { return ((Numeric*)(const AnyAtomicType*)atom1)->greaterThan((const Numeric::Ptr )atom2, context); } else { XQThrow2(XPath2ErrorException,X("GreaterThan::greater_than"), X("An attempt to compare a numeric type to a non numeric type has occurred [err:XPTY0004]")); } } switch(atom1->getPrimitiveTypeIndex()) { case AnyAtomicType::BOOLEAN: { // op:boolean-greater-than(A, B) if(atom2->getPrimitiveTypeIndex() != AnyAtomicType::BOOLEAN) XQThrow2(XPath2ErrorException,X("GreaterThan::greater_than"), X("An attempt to compare a boolean type to a non boolean type has occurred [err:XPTY0004]")); return ((const ATBooleanOrDerived*)atom1.get())->compare((const ATBooleanOrDerived*)atom2.get(), context) > 0; } case AnyAtomicType::STRING: case AnyAtomicType::ANY_URI: { // use function compare if(atom2->getPrimitiveTypeIndex() != AnyAtomicType::STRING && atom2->getPrimitiveTypeIndex() != AnyAtomicType::ANY_URI) XQThrow2(XPath2ErrorException,X("GreaterThan::greater_than"), X("An attempt to compare a string type to a non string type has occurred [err:XPTY0004]")); // if the function returns 1, then atom1 is greater if(!collation) collation = context->getDefaultCollation(info); return collation->compare(atom1->asString(context),atom2->asString(context))>0; } case AnyAtomicType::DATE: { // op:date-greater-than(A, B) if(atom2->getPrimitiveTypeIndex() != AnyAtomicType::DATE) XQThrow2(XPath2ErrorException,X("GreaterThan::greater_than"), X("An attempt to compare a date type to a non date type has occurred [err:XPTY0004]")); return ((ATDateOrDerived*)atom1.get())->compare((const ATDateOrDerived::Ptr )atom2, context) > 0; } case AnyAtomicType::TIME: { // op:time-greater-than(A, B) if(atom2->getPrimitiveTypeIndex() != AnyAtomicType::TIME) XQThrow2(XPath2ErrorException,X("GreaterThan::greater_than"), X("An attempt to compare a time type to a non time type has occurred [err:XPTY0004]")); return ((ATTimeOrDerived*)atom1.get())->compare((const ATTimeOrDerived::Ptr )atom2, context) > 0; } case AnyAtomicType::DATE_TIME: { // op:datetime-greater-than(A, B) if(atom2->getPrimitiveTypeIndex() != AnyAtomicType::DATE_TIME) XQThrow2(XPath2ErrorException,X("GreaterThan::greater_than"), X("An attempt to compare a dateTime type to a non dateTime type has occurred [err:XPTY0004]")); return ((ATDateTimeOrDerived*)atom1.get())->compare((const ATDateTimeOrDerived::Ptr)atom2, context) > 0; } case AnyAtomicType::DAY_TIME_DURATION: { if(atom2->getPrimitiveTypeIndex() != AnyAtomicType::DAY_TIME_DURATION) XQThrow2(XPath2ErrorException,X("GreaterThan::greater_than"), X("An attempt to compare a duration type to a non duration type has occurred [err:XPTY0004]")); return ((const ATDurationOrDerived*)atom1.get())->compare((const ATDurationOrDerived*)atom2.get(), context) > 0; } case AnyAtomicType::YEAR_MONTH_DURATION: { if(atom2->getPrimitiveTypeIndex() != AnyAtomicType::YEAR_MONTH_DURATION) XQThrow2(XPath2ErrorException,X("GreaterThan::greater_than"), X("An attempt to compare a duration type to a non duration type has occurred [err:XPTY0004]")); return ((const ATDurationOrDerived*)atom1.get())->compare((const ATDurationOrDerived*)atom2.get(), context) > 0; } default: XQThrow2(XPath2ErrorException,X("GreaterThan::greater_than"), X("Unexpected data type in operator 'gt' [err:XPTY0004]")); } XQThrow2(FunctionException,X("GreaterThan::greater_than"), X("An equality operator is not defined for the provided arguments [err:XPTY0004]")); } catch(XQException &e) { if(e.getXQueryLine() == 0) e.setXQueryPosition(info); throw; } } bool GreaterThan::execute(const AnyAtomicType::Ptr &atom1, const AnyAtomicType::Ptr &atom2, DynamicContext *context) const { return greater_than(atom1, atom2, 0, context, this); } XQilla-2.3.0/src/xqts/0000755000151400015140000000000011653572443011503 500000000000000XQilla-2.3.0/src/xqts/TestSuiteResultListener.cpp0000644000151400015140000006145611653565523017002 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifdef _MSC_VER #pragma warning(disable: 4786) #endif #include "../config/xqilla_config.h" #include #include #include #include #include #ifdef _MSC_VER #define snprintf _snprintf #endif #include #include #include #include #include #include // Added so xqilla will compile on SunOS 10 using STLPort #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif using namespace std; KnownErrorChecker::KnownErrorChecker(TestSuiteResultListener *results) : results_(results) { } void KnownErrorChecker::reportVersion(const std::string &version, bool update) { results_->reportVersion(version, update); } void KnownErrorChecker::startTestGroup(const std::string &name) { results_->startTestGroup(name); } void KnownErrorChecker::endTestGroup() { results_->endTestGroup(); } void KnownErrorChecker::reportPass(const TestCase &testCase, const string &comment) { map::iterator i = errors_.find(testCase.name); if(i != errors_.end() && i->second.reason != "inspect") { nowPass_[i->first] = i->second; errors_.erase(i); } results_->reportPass(testCase, comment); } void KnownErrorChecker::reportInspect(const TestCase &testCase, const string &actualResult, const std::list &expectedResult, const string &comment) { string newComment = comment; map::iterator i = errors_.find(testCase.name); if(i != errors_.end()) { if(i->second.comment != "") { newComment = i->second.comment; } if(i->second.action == "skip") { results_->reportSkip(testCase, i->second.comment); return; } else if(i->second.action == "pass") { results_->reportPass(testCase, i->second.comment); return; } } errors_[testCase.name].reason = "inspect"; errors_[testCase.name].comment = newComment; results_->reportInspect(testCase, actualResult, expectedResult, newComment); } void KnownErrorChecker::reportSkip(const TestCase &testCase, const std::string &comment) { results_->reportSkip(testCase, comment); } void KnownErrorChecker::reportFail(const TestCase &testCase, const string &actualResult, const std::list &expectedResult, const string &comment) { string newComment = comment; map::iterator i = errors_.find(testCase.name); if(i == errors_.end()) { map::iterator j = nowPass_.find(testCase.name); if(j != nowPass_.end()) { errors_[j->first] = j->second; nowPass_.erase(j); } else nowFail_.push_back(testCase.name); } else { if(i->second.comment != "") { newComment = i->second.comment; } if(i->second.action == "skip") { results_->reportSkip(testCase, i->second.comment); return; } else if(i->second.action == "pass") { results_->reportPass(testCase, i->second.comment); return; } } errors_[testCase.name].reason = "result failure"; errors_[testCase.name].comment = newComment; results_->reportFail(testCase, actualResult, expectedResult, newComment); } void KnownErrorChecker::reportFailNoError(const TestCase &testCase, const string &actualResult, const string &comment) { string newComment = comment; map::iterator i = errors_.find(testCase.name); if(i == errors_.end()) { map::iterator j = nowPass_.find(testCase.name); if(j != nowPass_.end()) { errors_[j->first] = j->second; nowPass_.erase(j); } else nowFail_.push_back(testCase.name); } else { if(i->second.comment != "") { newComment = i->second.comment; } if(i->second.action == "skip") { results_->reportSkip(testCase, i->second.comment); return; } else if(i->second.action == "pass") { results_->reportPass(testCase, i->second.comment); return; } } errors_[testCase.name].reason = "no error failure"; errors_[testCase.name].comment = newComment; results_->reportFailNoError(testCase, actualResult, newComment); } void KnownErrorChecker::reportFailUnexpectedError(const TestCase &testCase, const string &unexpectedError, const string &comment) { string newComment = comment; map::iterator i = errors_.find(testCase.name); if(i == errors_.end()) { map::iterator j = nowPass_.find(testCase.name); if(j != nowPass_.end()) { errors_[j->first] = j->second; nowPass_.erase(j); } else nowFail_.push_back(testCase.name); } else { if(i->second.comment != "") { newComment = i->second.comment; } if(i->second.action == "skip") { results_->reportSkip(testCase, i->second.comment); return; } else if(i->second.action == "pass") { results_->reportPass(testCase, i->second.comment); return; } } errors_[testCase.name].reason = "error failure"; errors_[testCase.name].comment = newComment; results_->reportFailUnexpectedError(testCase, unexpectedError, newComment); } bool KnownErrorChecker::printReport() const { if(!nowFail_.empty() || !nowPass_.empty()) { cout << "************************************************************************" << endl; if(!nowFail_.empty()) { cout << (unsigned int)nowFail_.size() << " unexpected failures:" << endl; for(vector::const_iterator i = nowFail_.begin(); i != nowFail_.end(); ++i) { cout << "\t" << *i << endl; } } if(!nowPass_.empty()) { cout << (unsigned int)nowPass_.size() << " unexpected passes:" << endl; for(map::const_iterator j = nowPass_.begin(); j != nowPass_.end(); ++j) { cout << "\t" << j->first << endl; } } } return nowFail_.empty(); } class ErrorFileHandler : public HandlerBase { public: ErrorFileHandler(map &errors) : errors_(errors) {} virtual void startElement(const XMLCh* const name, AttributeList &attributes) { string szName = UTF8(name); if(szName == "error") { KnownErrorChecker::Error &error = errors_[UTF8(attributes.getValue("id"))]; error.reason = UTF8(attributes.getValue("reason")); error.comment = UTF8(attributes.getValue("comment")); error.action = UTF8(attributes.getValue("action")); } } private: map &errors_; }; bool KnownErrorChecker::loadErrors(const std::string &errorFile) { try { SAXParser parser; ErrorFileHandler handler(errors_); parser.setDocumentHandler(&handler); LocalFileInputSource is(X(errorFile.c_str())); parser.parse(is); } catch(const XMLException& e) { cout << "Error while reading error file: " << UTF8(e.getMessage()) << endl; return false; } return true; } bool KnownErrorChecker::saveErrors(const std::string &errorFile) const { ofstream file(errorFile.c_str()); if(!file.is_open()) return false; file << "" << endl; for(map::const_iterator i = errors_.begin(); i != errors_.end(); ++i) { file << " first << "\" reason=\"" << i->second.reason << "\""; if(i->second.action != "") file << " action=\"" << i->second.action << "\""; if(i->second.comment != "") file << " comment=\"" << i->second.comment << "\""; file << "/>" << endl; } file << "" << endl; file.close(); return true; } bool KnownErrorChecker::isSkippedTest(const std::string &testName) const { if(errors_.empty()) return false; std::map::const_iterator it = errors_.find(testName); if(it != errors_.end() && (*it).second.action == "skip") return true; else return false; } //////////////////////////////////////////////////////////////////////////////////////////////////// ConsoleResultListener::ConsoleResultListener() : m_nTotalTests(0), m_nPassedTests(0), m_nSkippedTests(0), m_nInspectTests(0), testDepth_(0), needNewline_(false) { } void ConsoleResultListener::startTestGroup(const string &name) { if(needNewline_) cout << endl; string indent(testDepth_ * 2, ' '); cout << indent << name << ": " << flush; ++testDepth_; needNewline_ = true; if(m_szFullTestName != "") m_szFullTestName += ":"; m_szFullTestName += name; } void ConsoleResultListener::endTestGroup() { if(needNewline_) cout << endl; --testDepth_; needNewline_ = false; size_t nColonPos = m_szFullTestName.find_last_of(":"); if(nColonPos != (size_t)-1) m_szFullTestName = string(m_szFullTestName.c_str(), nColonPos); else m_szFullTestName = ""; } void ConsoleResultListener::reportPass(const TestCase &testCase, const string &comment) { if(testsRecorded_.find(testCase.name) == testsRecorded_.end()) { testsRecorded_[testCase.name] = "p"; ++m_nTotalTests; ++m_nPassedTests; } cout << "." << flush; } void ConsoleResultListener::reportInspect(const TestCase &testCase, const string &actualResult, const std::list &expectedResult, const string &comment) { if(testsRecorded_.find(testCase.name) == testsRecorded_.end()) { testsRecorded_[testCase.name] = "i"; ++m_nTotalTests; ++m_nInspectTests; } else if(testsRecorded_[testCase.name] == "p") { --m_nPassedTests; ++m_nInspectTests; } cout << "," << flush; errorStream_ << "************************************************************************" << endl; errorStream_ << "* For inspection:" << endl; testCaseToErrorStream(testCase); errorStream_ << "********** Actual result: **********" << endl; errorStream_ << actualResult << endl;; errorStream_ << endl; for(std::list::const_iterator it=expectedResult.begin();it!=expectedResult.end();it++) { errorStream_ << "********** Expected result: **********" << endl;; errorStream_ << *it << endl; errorStream_ << endl; } if(comment != "") { errorStream_ << "********** Comment: **********" << endl; errorStream_ << comment << endl;; errorStream_ << endl; } } void ConsoleResultListener::reportSkip(const TestCase &testCase, const std::string &comment) { if(testsRecorded_.find(testCase.name) == testsRecorded_.end()) { testsRecorded_[testCase.name] = "s"; ++m_nTotalTests; ++m_nSkippedTests; } else if(testsRecorded_[testCase.name] == "p") { --m_nPassedTests; ++m_nSkippedTests; } cout << "^" << flush; } void ConsoleResultListener::reportFail(const TestCase &testCase, const string &actualResult, const std::list &expectedResult, const string &comment) { if(testsRecorded_.find(testCase.name) == testsRecorded_.end()) { testsRecorded_[testCase.name] = "f"; ++m_nTotalTests; } else if(testsRecorded_[testCase.name] == "p") { --m_nPassedTests; } cout << "!" << flush; errorStream_ << "************************************************************************" << endl; testCaseToErrorStream(testCase); errorStream_ << "********** Actual result: **********" << endl; errorStream_ << actualResult << endl;; errorStream_ << endl; for(std::list::const_iterator it=expectedResult.begin();it!=expectedResult.end();it++) { errorStream_ << "********** Expected result: **********" << endl;; errorStream_ << *it << endl; errorStream_ << endl; } if(comment != "") { errorStream_ << "********** Comment: **********" << endl; errorStream_ << comment << endl;; errorStream_ << endl; } } void ConsoleResultListener::reportFailNoError(const TestCase &testCase, const string &actualResult, const string &comment) { if(testsRecorded_.find(testCase.name) == testsRecorded_.end()) { testsRecorded_[testCase.name] = "f"; ++m_nTotalTests; } else if(testsRecorded_[testCase.name] == "p") { --m_nPassedTests; } cout << "!" << flush; errorStream_ << "************************************************************************" << endl; testCaseToErrorStream(testCase); errorStream_ << "********** Actual result: **********" << endl; errorStream_ << actualResult << endl;; errorStream_ << endl; if(comment != "") { errorStream_ << "********** Comment: **********" << endl; errorStream_ << comment << endl;; errorStream_ << endl; } } void ConsoleResultListener::reportFailUnexpectedError(const TestCase &testCase, const string &unexpectedError, const string &comment) { if(testsRecorded_.find(testCase.name) == testsRecorded_.end()) { testsRecorded_[testCase.name] = "f"; ++m_nTotalTests; } else if(testsRecorded_[testCase.name] == "p") { --m_nPassedTests; } cout << "!" << flush; errorStream_ << "************************************************************************" << endl; testCaseToErrorStream(testCase); errorStream_ << "********** Actual error: **********" << endl; errorStream_ << unexpectedError << endl;; errorStream_ << endl; if(comment != "") { errorStream_ << "********** Comment: **********" << endl; errorStream_ << comment << endl;; errorStream_ << endl; } } bool ConsoleResultListener::printReport() const { cout << "************************************************************************" << endl; cout << m_nTotalTests << " Tests, " << m_nPassedTests << " passed, " << (m_nTotalTests - m_nPassedTests - m_nSkippedTests - m_nInspectTests) << " failed, " << m_nSkippedTests << " skipped, " << m_nInspectTests << " for inspection"; cout << " (" << ((float)m_nPassedTests)/(m_nTotalTests-m_nSkippedTests-m_nInspectTests)*100 << "%)" << endl; cerr << errorStream_.str(); return (m_nTotalTests - m_nPassedTests - m_nSkippedTests - m_nInspectTests) == 0; } void ConsoleResultListener::testCaseToErrorStream(const TestCase &testCase) { errorStream_ << "* Test-case '" << m_szFullTestName << ":" << testCase.name << "':" << endl; errorStream_ << "* Query URL: " << testCase.queryURL << endl; if(!testCase.contextItem.empty()) errorStream_ << "* Context Item: " << testCase.contextItem << endl; if(!testCase.defaultCollection.empty()) errorStream_ << "* Default collection: " << testCase.defaultCollection << endl; std::map::const_iterator i; std::list >::const_iterator j; for(i = testCase.inputVars.begin(); i != testCase.inputVars.end(); ++i) { errorStream_ << "* Input: " << i->first << " -> " << i->second << endl; } for(i = testCase.inputURIVars.begin(); i != testCase.inputURIVars.end(); ++i) { errorStream_ << "* Input URI: " << i->first << " -> " << i->second << endl; } for(i = testCase.extraVars.begin(); i != testCase.extraVars.end(); ++i) { errorStream_ << "* Variable: " << i->first << " -> " << i->second << endl; } for(j = testCase.moduleFiles.begin(); j != testCase.moduleFiles.end(); ++j) { errorStream_ << "* Module: " << j->first << " -> " << j->second << endl; } for(i = testCase.outputFiles.begin(); i != testCase.outputFiles.end(); ++i) { errorStream_ << "* Output: " << i->second << " -> " << i->first << endl; } if(!testCase.expectedErrors.empty()) { errorStream_ << "* Errors:"; for(std::list::const_iterator k = testCase.expectedErrors.begin(); k != testCase.expectedErrors.end(); ++k) { errorStream_ << " " << *k; } errorStream_ << endl; } errorStream_ << endl; errorStream_ << "********** Query: **********" << endl; errorStream_ << testCase.query << endl; errorStream_ << endl; } //////////////////////////////////////////////////////////////////////////////////////////////////// XMLReportResultListener::XMLReportResultListener() : update_(false), anonymous_(false) { } void XMLReportResultListener::reportVersion(const std::string &version, bool update) { version_ = version; update_ = update; } void XMLReportResultListener::startTestGroup(const std::string &name) { } void XMLReportResultListener::endTestGroup() { } void XMLReportResultListener::reportPass(const TestCase &testCase, const string &comment) { if(previousTestName_ != testCase.name) { outputStream_ << tmpStream_.str(); } tmpStream_.str(""); previousTestName_ = testCase.name; tmpStream_ << " " << endl; } void XMLReportResultListener::reportInspect(const TestCase &testCase, const std::string &actualResult, const std::list &expectedResult, const string &comment) { if(previousTestName_ != testCase.name) { outputStream_ << tmpStream_.str(); } tmpStream_.str(""); previousTestName_ = testCase.name; tmpStream_ << " " << endl; } void XMLReportResultListener::reportSkip(const TestCase &testCase, const std::string &comment) { if(previousTestName_ != testCase.name) { outputStream_ << tmpStream_.str(); } tmpStream_.str(""); previousTestName_ = testCase.name; tmpStream_ << " " << endl; } void XMLReportResultListener::reportFail(const TestCase &testCase, const std::string &actualResult, const std::list &expectedResult, const string &comment) { if(previousTestName_ != testCase.name) { outputStream_ << tmpStream_.str(); } tmpStream_.str(""); previousTestName_ = testCase.name; tmpStream_ << " " << endl; } void XMLReportResultListener::reportFailNoError(const TestCase &testCase, const std::string &actualResult, const string &comment) { if(previousTestName_ != testCase.name) { outputStream_ << tmpStream_.str(); } tmpStream_.str(""); previousTestName_ = testCase.name; tmpStream_ << " " << endl; } void XMLReportResultListener::reportFailUnexpectedError(const TestCase &testCase, const std::string &unexpectedError, const string &comment) { if(previousTestName_ != testCase.name) { outputStream_ << tmpStream_.str(); } tmpStream_.str(""); previousTestName_ = testCase.name; tmpStream_ << " " << endl; } void XMLReportResultListener::setImplementation(const std::string &name, const std::string &version, const std::string &description) { implName_ = name; implVersion_ = version; implDescription_ = description; } void XMLReportResultListener::setOrganization(const std::string &name, const std::string &website) { orgName_ = name; orgWebsite_ = website; } void XMLReportResultListener::setSubmittor(const std::string &name, const std::string &email) { submittorName_ = name; submittorEmail_ = email; } void XMLReportResultListener::setTestRun(const std::string &transformation, const std::string &comments) { testTransformation_ = transformation; testComments_ = comments; } void XMLReportResultListener::setAnonymous(bool anon) { anonymous_ = anon; } void XMLReportResultListener::addImplementationDefinedItem(const std::string &name, const std::string &value) { implDefinedItems_[name] = value; } void XMLReportResultListener::addFeature(const std::string &name, bool supported) { features_[name] = supported; } void XMLReportResultListener::addContextProperty(const std::string &name, const std::string &contextType, const std::string &value) { contextProperties_[name].first = contextType; contextProperties_[name].second = value; } void XMLReportResultListener::printReport() const { cout << "" << endl; cout << endl; cout << " " << endl; cout << endl; cout << " " << endl; cout << endl; cout << " " << endl; cout << endl; if(implDescription_ != "") { cout << " " << implDescription_ << "" << endl; cout << endl; } if(!implDefinedItems_.empty()) { cout << " " << endl; for(map::const_iterator i = implDefinedItems_.begin(); i != implDefinedItems_.end(); ++i) { cout << " first << "\" value=\"" << i->second << "\"/>" << endl; } cout << " " << endl; cout << endl; } if(!features_.empty()) { cout << " " << endl; for(map::const_iterator i = features_.begin(); i != features_.end(); ++i) { cout << " first << "\" supported=\"" << (i->second ? "true" : "false") << "\"/>" << endl; } cout << " " << endl; cout << endl; } if(!contextProperties_.empty()) { cout << " " << endl; for(map >::const_iterator i = contextProperties_.begin(); i != contextProperties_.end(); ++i) { cout << " first << "\" context-type=\"" << i->second.first << "\" value=\"" << i->second.second << "\"/>" << endl; } cout << " " << endl; cout << endl; } cout << " " << endl; cout << endl; cout << " XQuery" << endl; cout << endl; time_t currentTime = ::time(0); struct tm *curLocalDate = ::localtime(¤tTime); char szDate[256]; snprintf(szDate, 256,"%04d-%02d-%02d",curLocalDate->tm_year+1900, curLocalDate->tm_mon+1, curLocalDate->tm_mday); cout << " " << endl; cout << " " << endl; if(testTransformation_ != "") cout << " " << testTransformation_ << "" << endl; cout << "

XML and fragment comparisons are performed by serializing the results,"; cout << " re-parsing them, and using a custom deep-equal like function. This function currently ignores"; cout << " any text nodes that consist entirely of whitespace.

" << endl; if(testComments_ != "") cout << " " << testComments_ << "" << endl; cout << "
" << endl; cout << endl; cout << outputStream_.str(); cout << endl; cout << "
" << endl; } XQilla-2.3.0/src/xqts/TestSuiteRunner.cpp0000644000151400015140000002354211653565523015261 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifdef _MSC_VER #pragma warning(disable: 4786) #endif #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif using namespace std; static string loadExpectedResult(const string &file); static bool compareNodes(DOMNode* node1, DOMNode* node2); void TestSuiteRunner::testResults(const TestCase &testCase, const std::string &xmlResult) const { if(testCase.outputFiles.empty()) { if(!testCase.expectedErrors.empty()) m_results->reportFailNoError(testCase, xmlResult, ""); // Otherwise pass - it's probably the first stage of an update test else m_results->reportPass(testCase, ""); } else { bool passed = false; std::string compareMethod, outputResult; std::list allExpectedResults; for(std::map::const_iterator i=testCase.outputFiles.begin();i!=testCase.outputFiles.end();i++) { compareMethod=(*i).second; string expectedResult = loadExpectedResult((*i).first); if(expectedResult == "#Not found") { // std::ofstream output(i->first.c_str() + 8); // Take off the "file:///" from the begining // output << xmlResult; m_results->reportFail(testCase, xmlResult, allExpectedResults, "Bad test! Expected result not found: " + (*i).first); return; } // // // // // // // // if(compareMethod=="Text" || compareMethod=="Fragment" || compareMethod=="XML" || compareMethod=="text" || compareMethod=="xml-frag" || compareMethod=="xml" || compareMethod=="xml-output" || compareMethod=="xhtml-output") { outputResult = xmlResult; if(compareMethod=="Text" || compareMethod=="Fragment" || compareMethod=="text" || compareMethod=="xml-frag") { expectedResult=""+expectedResult+""; outputResult=""+outputResult+""; } // force XML 1.1 parsing outputResult = "" + outputResult; expectedResult = "" + expectedResult; try { XercesDOMParser parser; parser.setDoNamespaces(true); MemBufInputSource memSrc1((XMLByte*)outputResult.c_str(), (unsigned int)outputResult.size(), "", false); parser.parse(memSrc1); DOMDocument* doc1 = parser.getDocument(); MemBufInputSource memSrc2((XMLByte*)expectedResult.c_str(), (unsigned int)expectedResult.size(), "", false); parser.parse(memSrc2); DOMDocument* doc2 = parser.getDocument(); passed = compareNodes(doc1, doc2); } catch(...) {} } else if(compareMethod == "Inspect" || compareMethod == "inspect") { // Try if they match if(expectedResult==xmlResult) passed=true; } else { // TODO cout << "Test-case '" << testCase.name << "': Unsupported comparison method " << compareMethod << endl; } allExpectedResults.push_back(expectedResult); if(passed) break; } if(passed) { m_results->reportPass(testCase, ""); } else if(compareMethod == "Inspect") { m_results->reportInspect(testCase, xmlResult, allExpectedResults, ""); } else { m_results->reportFail(testCase, outputResult, allExpectedResults, ""); } } } void TestSuiteRunner::testErrors(const TestCase &testCase, const std::string &actualError) const { if(testCase.expectedErrors.empty()) { m_results->reportFailUnexpectedError(testCase, actualError, ""); } else { bool bFound = false; for(list::const_iterator i=testCase.expectedErrors.begin();i!=testCase.expectedErrors.end();i++) { if(*i=="*" || actualError.find(*i) != string::npos) { bFound = true; break; } } if(bFound) { m_results->reportPass(testCase, ""); } else { m_results->reportFailUnexpectedError(testCase, actualError, ""); } } } static string loadExpectedResult(const string &file) { string expectedResult = "#Not found"; try { Janitor stream((BinFileInputStream*)URLInputSource(file.c_str()).makeStream()); if(stream.get()) { unsigned int dwSize = (unsigned int)stream->getSize(); expectedResult.resize(dwSize); stream->readBytes((XMLByte*)expectedResult.c_str(), dwSize); if(dwSize>3 && ((unsigned char)expectedResult[0])==0xEF && ((unsigned char)expectedResult[1])==0xBB && ((unsigned char)expectedResult[2])==0xBF) expectedResult.erase(0,3); for(string::iterator c=expectedResult.begin();c!=expectedResult.end();) if(*c==0xD) c=expectedResult.erase(c); else c++; while(expectedResult.size()>0 && expectedResult[expectedResult.size()-1]==0xA) expectedResult.erase(expectedResult.size()-1); if(expectedResult.find(""); expectedResult.erase(0, end + 2); } } } catch(...) {} return expectedResult; } static bool isIgnorableWS(DOMNode* node) { return node!=NULL && node->getNodeType()==DOMNode::TEXT_NODE && XMLChar1_0::isAllSpaces(node->getNodeValue(), XMLString::stringLen(node->getNodeValue())) && (node->getPreviousSibling()==NULL || (node->getPreviousSibling()->getNodeType()==DOMNode::ELEMENT_NODE || node->getPreviousSibling()->getNodeType()==DOMNode::PROCESSING_INSTRUCTION_NODE || node->getPreviousSibling()->getNodeType()==DOMNode::COMMENT_NODE)) && (node->getNextSibling()==NULL || (node->getNextSibling()->getNodeType()==DOMNode::ELEMENT_NODE || node->getNextSibling()->getNodeType()==DOMNode::PROCESSING_INSTRUCTION_NODE || node->getNextSibling()->getNodeType()==DOMNode::COMMENT_NODE)); } static bool compareNodes(DOMNode* node1, DOMNode* node2) { // cerr << (node1->getNodeType() == DOMNode::ATTRIBUTE_NODE ? "@" : "") << UTF8(node1->getNodeName()) // << ", " << (node2->getNodeType() == DOMNode::ATTRIBUTE_NODE ? "@" : "") << UTF8(node2->getNodeName()) << " -> "; if(node1->getNodeType()!=node2->getNodeType()) { // cerr << "false (node type)\n"; return false; } if(node1->hasChildNodes() != node2->hasChildNodes()) { // cerr << "false (child nodes)\n"; return false; } if(node1->getNodeType()==DOMNode::ELEMENT_NODE) { DOMElement* e1=(DOMElement*)node1; DOMElement* e2=(DOMElement*)node2; if(!XMLString::equals(e1->getNamespaceURI(), e2->getNamespaceURI())) { // cerr << "false (uri)\n"; return false; } if(!XMLString::equals(e1->getLocalName(), e2->getLocalName())) { // cerr << "false (localname)\n"; return false; } DOMNamedNodeMap* map1=e1->getAttributes(); DOMNamedNodeMap* map2=e2->getAttributes(); if(map1->getLength()!=map2->getLength()) { // cerr << "false (num attrs)\n"; return false; } for(unsigned int i=0;igetLength();i++) { DOMNode* a1=map1->item(i); DOMNode* a2=map2->getNamedItemNS(a1->getNamespaceURI(),a1->getLocalName()); if(a2==NULL) { // cerr << "false (no a2 attr)\n"; return false; } if(!compareNodes(a1,a2)) { // cerr << "false (attr)\n"; return false; } } } else { if(!XMLString::equals(node1->getNodeName(),node2->getNodeName())) { // cerr << "false (node name)\n"; return false; } if(!XMLString::equals(node1->getNodeValue(),node2->getNodeValue())) { // cerr << "false (node value)\n"; // cerr << " \"" << UTF8(node1->getNodeValue()) << "\" != \"" << UTF8(node2->getNodeValue()) << "\"\n"; return false; } } DOMNode* n1=node1->getFirstChild(); DOMNode* n2=node2->getFirstChild(); while(n1 && n2) { if(isIgnorableWS(n1)) { n1=n1->getNextSibling(); } if(isIgnorableWS(n2)) { n2=n2->getNextSibling(); } if(n1==NULL || n2==NULL) break; if(!compareNodes(n1, n2)) { // cerr << "false (child node)\n"; return false; } n1=n1->getNextSibling(); n2=n2->getNextSibling(); } if(isIgnorableWS(n1)) { n1=n1->getNextSibling(); } if(isIgnorableWS(n2)) { n2=n2->getNextSibling(); } if(n1!=NULL || n2!=NULL) { // cerr << "false (extra children)\n"; return false; } // cerr << "true\n"; return true; } XQilla-2.3.0/src/xqts/TestSuiteParser.cpp0000644000151400015140000004303311653565523015241 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifdef _MSC_VER #pragma warning(disable: 4786) #endif #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif using namespace std; TestSuiteParser::TestSuiteParser(const string &pathToTestSuite, TestSuiteRunner *runner) : runner_(runner), xslt_(false) { string szXQTSLocation = string("file:///") + pathToTestSuite; for(string::iterator i = szXQTSLocation.begin(); i != szXQTSLocation.end(); ++i) { if(*i == ' ') { i = szXQTSLocation.erase(i); szXQTSLocation = szXQTSLocation.insert(i - szXQTSLocation.begin(), "%20"); i = szXQTSLocation.begin(); } else if(*i == '\\') *i = '/'; } urlXQTSCatalog_.setURL(X(szXQTSLocation.c_str())); readingChars_ = false; } void TestSuiteParser::handleUnknownElement(const string &elementName) { unknownElements_.insert(elementName); } void TestSuiteParser::run() { xslt_ = false; SAX2XMLReader* parser = XMLReaderFactory::createXMLReader(); try { parser->setContentHandler(this); parser->setErrorHandler(this); URLInputSource is(urlXQTSCatalog_); parser->parse(is); } catch(const XMLException& e) { cerr << "Error while reading test catalog: " << UTF8(e.getMessage()) << endl; } delete parser; } void TestSuiteParser::error(const SAXParseException& exc) { cerr << "ERROR parsing catalog: " << UTF8(exc.getMessage()) << endl; } void TestSuiteParser::fatalError(const SAXParseException& exc) { cerr << "FATAL ERROR parsing catalog: " << UTF8(exc.getMessage()) << endl; } static XMLCh g_szName[] = { chLatin_n, chLatin_a, chLatin_m, chLatin_e, chNull }; static XMLCh g_szPath[] = { chLatin_F, chLatin_i, chLatin_l, chLatin_e, chLatin_P, chLatin_a, chLatin_t, chLatin_h, chNull }; static XMLCh g_szVar[] = { chLatin_v, chLatin_a, chLatin_r, chLatin_i, chLatin_a, chLatin_b, chLatin_l, chLatin_e, chNull }; static XMLCh g_szDotXQ[] = { chPeriod, chLatin_x, chLatin_q, chNull }; static XMLCh g_szCompare[] = { chLatin_c, chLatin_o, chLatin_m, chLatin_p, chLatin_a, chLatin_r, chLatin_e, chNull }; static XMLCh g_szTime[] = { chLatin_t, chLatin_i, chLatin_m, chLatin_e, chNull }; static XMLCh g_szRole[] = { chLatin_r, chLatin_o, chLatin_l, chLatin_e, chNull }; static XMLCh g_szFile[] = { chLatin_f, chLatin_i, chLatin_l, chLatin_e, chNull }; static XMLCh g_szType[] = { chLatin_t, chLatin_y, chLatin_p, chLatin_e, chNull }; void TestSuiteParser::startElement(const XMLCh* const uri, const XMLCh* const localname, const XMLCh* const qname, const Attributes& attributes) { string szName=UTF8(localname); string szURI=UTF8(uri); // if(szURI=="http://www.w3.org/2005/02/query-test-XQTSCatalog") // { if(szName=="test-suite") { runner_->getResultListener()->reportVersion(UTF8(attributes.getValue(X("version"))), szURI == "http://www.w3.org/2005/02/query-test-update"); urlXQTSQueriesDirectory_.setURL(urlXQTSCatalog_, attributes.getValue(X("XQueryQueryOffsetPath"))); urlXQTSResultsDirectory_.setURL(urlXQTSCatalog_, attributes.getValue(X("ResultOffsetPath"))); // detect runner's parser language and conf runner_->detectParserLang(szURI); } else if(szName=="testcases") { // XSLT test suite xslt_ = true; runner_->detectParserLang(szURI); runner_->getResultListener()->reportVersion(UTF8(attributes.getValue(X("testSuiteVersion"))), false); urlXQTSQueriesDirectory_.setURL(urlXQTSCatalog_, attributes.getValue(X("InputOffsetPath"))); urlXQTSResultsDirectory_.setURL(urlXQTSCatalog_, attributes.getValue(X("ResultOffsetPath"))); } else if(szName=="test-group") { runner_->startTestGroup(UTF8(attributes.getValue(g_szName))); } else if(szName=="test-case") { testCase_.name = UTF8(attributes.getValue(g_szName)); testCase_.description = ""; testCase_.updateTest = false; testCase_.xsltTest = false; testCase_.stateTime = -1; testCase_.queryURL = ""; testCase_.query = ""; testCase_.contextItem = ""; testCase_.defaultCollection = ""; testCase_.templateName = ""; testCase_.inputURIVars.clear(); testCase_.inputParams.clear(); testCase_.inputVars.clear(); testCase_.extraVars.clear(); testCase_.expectedErrors.clear(); testCase_.outputFiles.clear(); testCase_.moduleFiles.clear(); variableBoundToInput_=compareMethod_=""; urlQuery_=XMLURL(); XMLBuffer buff; buff.set(attributes.getValue(g_szPath)); buff.append('/'); urlBasePath_.setURL(urlXQTSQueriesDirectory_, buff.getRawBuffer()); urlBasePathReferenceFiles_.setURL(urlXQTSResultsDirectory_, buff.getRawBuffer()); } else if(szName=="testcase") { // XSLT test case testCase_.name = ""; testCase_.description = ""; testCase_.updateTest = false; testCase_.xsltTest = true; testCase_.stateTime = -1; testCase_.queryURL = ""; testCase_.query = ""; testCase_.contextItem = ""; testCase_.defaultCollection = ""; testCase_.templateName = ""; testCase_.inputURIVars.clear(); testCase_.inputParams.clear(); testCase_.inputVars.clear(); testCase_.extraVars.clear(); testCase_.expectedErrors.clear(); testCase_.outputFiles.clear(); testCase_.moduleFiles.clear(); variableBoundToInput_=compareMethod_=""; urlQuery_=XMLURL(); XMLBuffer buff; buff.set(attributes.getValue(g_szPath)); buff.append('/'); urlBasePath_.setURL(urlXQTSQueriesDirectory_, buff.getRawBuffer()); urlBasePathReferenceFiles_.setURL(urlXQTSResultsDirectory_, buff.getRawBuffer()); } else if(szName=="state") { testCase_.updateTest = true; testCase_.xsltTest = false; testCase_.stateTime = atoi(UTF8(attributes.getValue(g_szTime))); testCase_.queryURL = ""; testCase_.query = ""; testCase_.contextItem = ""; testCase_.defaultCollection = ""; testCase_.templateName = ""; testCase_.inputURIVars.clear(); testCase_.inputParams.clear(); testCase_.inputVars.clear(); testCase_.extraVars.clear(); testCase_.expectedErrors.clear(); testCase_.outputFiles.clear(); testCase_.moduleFiles.clear(); variableBoundToInput_=compareMethod_=""; urlQuery_=XMLURL(); } else if(szName=="query") { XMLBuffer buff; const XMLCh* name=attributes.getValue(g_szName); buff.set(name); if(!XMLString::endsWith(name,g_szDotXQ)) buff.append(g_szDotXQ); urlQuery_.setURL(urlBasePath_,buff.getRawBuffer()); testCase_.queryURL = UTF8(urlQuery_.getURLText()); try { testCase_.query = "#Not found"; Janitor stream((BinFileInputStream*)URLInputSource(urlQuery_).makeStream()); if(stream.get()) { unsigned int dwSize = (unsigned int) stream->getSize(); testCase_.query.resize(dwSize); stream->readBytes((XMLByte*)testCase_.query.c_str(), dwSize); } } catch(...) {} } else if(szName=="stylesheet") { // XSLT test suite testCase_.xsltTest = true; const XMLCh *role = attributes.getValue(g_szRole); if(XMLString::equals(role, X("principal"))) { const XMLCh *file = attributes.getValue(g_szFile); urlQuery_.setURL(urlXQTSQueriesDirectory_, file); testCase_.queryURL = UTF8(urlQuery_.getURLText()); try { testCase_.query = "#Not found"; Janitor stream((BinFileInputStream*)URLInputSource(urlQuery_).makeStream()); if(stream.get()) { unsigned int dwSize = (unsigned int) stream->getSize(); testCase_.query.resize(dwSize); stream->readBytes((XMLByte*)testCase_.query.c_str(), dwSize); } } catch(...) {} } } else if(szName=="source-document") { // XSLT test suite testCase_.xsltTest = true; const XMLCh *role = attributes.getValue(g_szRole); if(XMLString::equals(role, X("principal"))) { const XMLCh *file = attributes.getValue(g_szFile); urlQuery_.setURL(urlXQTSQueriesDirectory_, file); testCase_.contextItem = UTF8(urlQuery_.getURLText()); } } else if(szName=="result-document") { // XSLT test suite testCase_.xsltTest = true; const XMLCh *role = attributes.getValue(g_szRole); if(XMLString::equals(role, X("principal"))) { const XMLCh *file = attributes.getValue(g_szFile); urlQuery_.setURL(urlXQTSResultsDirectory_, file); const XMLCh *type = attributes.getValue(g_szType); testCase_.outputFiles[UTF8(urlQuery_.getURLText())]=UTF8(type); } } else if(szName=="entry-named-template") { // XSLT test suite testCase_.templateName = UTF8(attributes.getValue(X("qname"))); } else if(szName=="error") { // XSLT test suite const XMLCh *id = attributes.getValue(X("error-id")); testCase_.expectedErrors.push_back(UTF8(id)); } else if(szName=="input-query") { XMLBuffer buff; const XMLCh* name=attributes.getValue(g_szName); buff.set(name); if(!XMLString::endsWith(name,g_szDotXQ)) buff.append(g_szDotXQ); XMLURL urlQuery(urlBasePath_,buff.getRawBuffer()); string varQuery = UTF8(urlQuery.getURLText()); testCase_.extraVars[UTF8(attributes.getValue(g_szVar))]=varQuery; } else if(szName=="input-file") { readingChars_=true; chars_=""; variableBoundToInput_=UTF8(attributes.getValue(g_szVar)); } else if(szName=="input-URI") { readingChars_=true; chars_=""; variableBoundToInput_=UTF8(attributes.getValue(g_szVar)); } else if(szName=="param") { readingChars_=true; chars_=""; variableBoundToInput_=UTF8(attributes.getValue(X("qname"))); } else if(szName=="contextItem") { readingChars_=true; chars_=""; } else if(szName=="defaultCollection") { readingChars_=true; chars_=""; } else if(szName=="output-file") { readingChars_=true; chars_=""; compareMethod_=UTF8(attributes.getValue(g_szCompare)); } else if(szName=="expected-error") { readingChars_=true; chars_=""; } else if(szName=="name") { // XSLT test suite readingChars_=true; chars_=""; } else if(szName=="description") { readingChars_=true; chars_=""; } else if(szName=="source") { XMLURL realFile(urlXQTSCatalog_, attributes.getValue(X("FileName"))); runner_->addSource(UTF8(attributes.getValue(X("ID"))), UTF8(realFile.getURLText()), UTF8(attributes.getValue(X("schema")))); } else if(szName=="schema" && !xslt_) { XMLURL realFile(urlXQTSCatalog_, attributes.getValue(X("FileName"))); runner_->addSchema(UTF8(attributes.getValue(X("ID"))), UTF8(realFile.getURLText()), UTF8(attributes.getValue(X("uri")))); } else if(szName=="module") { if(attributes.getValue(X("FileName"))!=NULL) { XMLURL realFile(urlXQTSCatalog_, attributes.getValue(X("FileName"))); runner_->addModule(UTF8(attributes.getValue(X("ID"))), UTF8(realFile.getURLText())); } else { readingChars_=true; chars_=""; namespace_=UTF8(attributes.getValue(X("namespace"))); } } else if(szName=="collection") { collectionID_ = UTF8(attributes.getValue(X("ID"))); runner_->addCollection(collectionID_); } else if(szName=="input-document") { if(!collectionID_.empty()) { readingChars_=true; chars_=""; } } else if(unknownElements_.find(szName) != unknownElements_.end()) { map attrs; for(unsigned int i = 0; i < attributes.getLength(); ++i) { attrs[UTF8(attributes.getLocalName(i))] = UTF8(attributes.getValue(i)); } runner_->unknownElement(szName, attrs); } // } } #if _XERCES_VERSION >= 30000 void TestSuiteParser::characters(const XMLCh *const chars, const XMLSize_t length) #else void TestSuiteParser::characters(const XMLCh *const chars, const unsigned int length) #endif { XMLBuffer buff; buff.set(chars,length); if(readingChars_) chars_+=UTF8(buff.getRawBuffer()); } void TestSuiteParser::endElement(const XMLCh* const uri, const XMLCh* const localname, const XMLCh* const qname) { string szName=UTF8(localname); string szURI=UTF8(uri); // if(szURI=="http://www.w3.org/2005/02/query-test-XQTSCatalog") // { if(szName == "test-group") { runner_->endTestGroup(); } else if(szName=="testcases") { if(xsltGroupName_ != "") runner_->endTestGroup(); } else if(szName == "test-case") { if(!testCase_.updateTest) { if(testCase_.query == "#Not found") { runner_->getResultListener()->reportFail(testCase_, "", list(), "Bad test! Query not found: " + testCase_.queryURL); } else { runner_->runTestCase(testCase_); } } } else if(szName == "testcase") { size_t pos = 0; while((testCase_.name[pos] >= 'A' && testCase_.name[pos] <= 'Z') || (testCase_.name[pos] >= 'a' && testCase_.name[pos] <= 'z')) ++pos; string group = testCase_.name.substr(0, pos); if(xsltGroupName_ != group) { if(xsltGroupName_ != "") runner_->endTestGroup(); xsltGroupName_ = group; if(xsltGroupName_ != "") runner_->startTestGroup(xsltGroupName_); } if(testCase_.query == "#Not found") { runner_->getResultListener()->reportFail(testCase_, "", list(), "Bad test! Query not found: " + testCase_.queryURL); } else { runner_->runTestCase(testCase_); } } else if(szName == "state") { if(testCase_.query == "#Not found") { runner_->getResultListener()->reportFail(testCase_, "", list(), "Bad test! Query not found: " + testCase_.queryURL); } else { runner_->runTestCase(testCase_); } } else if(szName == "input-file") { readingChars_=false; testCase_.inputVars[variableBoundToInput_]=chars_; variableBoundToInput_=""; } else if(szName=="input-URI") { readingChars_=false; testCase_.inputURIVars[variableBoundToInput_]=chars_; variableBoundToInput_=""; } else if(szName=="param") { readingChars_=false; testCase_.inputParams[variableBoundToInput_]=chars_; variableBoundToInput_=""; } else if(szName=="contextItem") { readingChars_=false; testCase_.contextItem=chars_; } else if(szName=="defaultCollection") { readingChars_=false; testCase_.defaultCollection=chars_; } else if(szName == "output-file") { readingChars_=false; if(chars_ != "") { chars_=UTF8(XMLURL(urlBasePathReferenceFiles_, chars_.c_str()).getURLText()); testCase_.outputFiles[chars_]=compareMethod_; } compareMethod_=""; } else if(szName == "expected-error") { readingChars_=false; testCase_.expectedErrors.push_back(chars_); } else if(szName == "name") { readingChars_=false; testCase_.name = chars_; } else if(szName == "description") { readingChars_=false; testCase_.description = chars_; } else if(szName == "module") { readingChars_=false; testCase_.moduleFiles.push_back(pair(namespace_, chars_)); } else if(szName=="collection") { collectionID_ = ""; } else if(szName=="input-document") { if(!collectionID_.empty()) { readingChars_=false; runner_->addCollectionDoc(collectionID_, chars_); } } // } } XQilla-2.3.0/src/fulltext/0000755000151400015140000000000011653572442012352 500000000000000XQilla-2.3.0/src/fulltext/FTMildnot.cpp0000644000151400015140000000715611653565523014651 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include FTMildnot::FTMildnot(FTSelection *left, FTSelection *right, XPath2MemoryManager *memMgr) : FTSelection(FTSelection::MILD_NOT, memMgr), left_(left), right_(right) { } FTSelection *FTMildnot::staticResolution(StaticContext *context) { left_ = left_->staticResolution(context); right_ = right_->staticResolution(context); return this; } FTSelection *FTMildnot::staticTypingImpl(StaticContext *context) { src_.clear(); src_.add(left_->getStaticAnalysis()); src_.add(right_->getStaticAnalysis()); return this; } FTSelection *FTMildnot::optimize(FTContext *ftcontext) const { XPath2MemoryManager *mm = ftcontext->context->getMemoryManager(); FTSelection *newleft = left_->optimize(ftcontext); if(newleft == 0) return 0; FTSelection *newright = right_->optimize(ftcontext); if(newright == 0) return newleft; FTSelection *result = new (mm) FTMildnot(newleft, newright, mm); result->setLocationInfo(this); return result; } AllMatches *FTMildnot::execute(FTContext *ftcontext) const { AllMatches *leftMatches = left_->execute(ftcontext); AllMatches *rightMatches = right_->execute(ftcontext); return new FTMildnotMatches(this, leftMatches, rightMatches); } FTMildnotMatches::~FTMildnotMatches() { delete left_; delete right_; } bool FTMildnotMatches::next(DynamicContext *context) { if(!left_) return false; if(right_) { while(right_->next(context)) { if(!right_->getStringExcludes().empty()) XQThrow(XPath2ErrorException, X("FTMildnotMatches::next"), X("Invalid expression on the right-hand side of a not-in [err:FTDY0017]")); StringMatches::const_iterator end = right_->getStringIncludes().end(); for(StringMatches::const_iterator i = right_->getStringIncludes().begin(); i != end; ++i) { badTokens_.insert(i->tokenInfo.position_); } } delete right_; right_ = 0; } while(left_->next(context)) { if(!left_->getStringExcludes().empty()) XQThrow(XPath2ErrorException, X("FTMildnotMatches::next"), X("Invalid expression on the left-hand side of a not-in [err:FTDY0017]")); bool found = false; StringMatches::const_iterator end = left_->getStringIncludes().end(); for(StringMatches::const_iterator i = left_->getStringIncludes().begin(); i != end; ++i) { if(badTokens_.find(i->tokenInfo.position_) != badTokens_.end()) { found = true; break; } } if (!found) return true; } delete left_; left_ = 0; return false; } const StringMatches &FTMildnotMatches::getStringIncludes() { assert(left_); return left_->getStringIncludes(); } const StringMatches &FTMildnotMatches::getStringExcludes() { assert(left_); return left_->getStringExcludes(); }XQilla-2.3.0/src/fulltext/FTWindow.cpp0000644000151400015140000001413711653565523014507 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif FTSelection *FTWindow::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); SequenceType *seqType = new (mm) SequenceType(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, SequenceType::EXACTLY_ONE, mm); seqType->setLocationInfo(this); arg_ = arg_->staticResolution(context); expr_ = new (mm) XQAtomize(expr_, mm); expr_->setLocationInfo(this); expr_ = new (mm) XQTreatAs(expr_, seqType, mm); expr_->setLocationInfo(this); expr_ = expr_->staticResolution(context); return this; } FTSelection *FTWindow::staticTypingImpl(StaticContext *context) { src_.clear(); src_.add(arg_->getStaticAnalysis()); src_.add(expr_->getStaticAnalysis()); return this; } FTSelection *FTWindow::optimize(FTContext *ftcontext) const { XPath2MemoryManager *mm = ftcontext->context->getMemoryManager(); if(expr_->isConstant()) { Numeric::Ptr num = (Numeric*)expr_->createResult(ftcontext->context)->next(ftcontext->context).get(); FTSelection *result = new (mm) FTWindowLiteral(arg_, num->asInt(), unit_, mm); result->setLocationInfo(this); return result->optimize(ftcontext); } FTSelection *newarg = arg_->optimize(ftcontext); if(newarg == 0) return 0; if(newarg->getType() == WORD) { return newarg; } newarg = new (mm) FTWindow(newarg, expr_, unit_, mm); newarg->setLocationInfo(this); return newarg; } AllMatches *FTWindow::execute(FTContext *ftcontext) const { Numeric::Ptr num = (Numeric*)expr_->createResult(ftcontext->context)->next(ftcontext->context).get(); return new FTWindowMatches(this, num->asInt(), unit_, arg_->execute(ftcontext)); } //////////////////////////////////////////////////////////////////////////////////////////////////// FTSelection *FTWindowLiteral::staticResolution(StaticContext *context) { arg_ = arg_->staticResolution(context); return this; } FTSelection *FTWindowLiteral::staticTypingImpl(StaticContext *context) { src_.clear(); src_.add(arg_->getStaticAnalysis()); return this; } FTSelection *FTWindowLiteral::optimize(FTContext *ftcontext) const { XPath2MemoryManager *mm = ftcontext->context->getMemoryManager(); FTSelection *newarg = arg_->optimize(ftcontext); if(newarg == 0) return 0; if(newarg->getType() == WORD) { return newarg; } newarg = new (mm) FTWindowLiteral(newarg, distance_, unit_, mm); newarg->setLocationInfo(this); return newarg; } AllMatches *FTWindowLiteral::execute(FTContext *ftcontext) const { return new FTWindowMatches(this, distance_, unit_, arg_->execute(ftcontext)); } //////////////////////////////////////////////////////////////////////////////////////////////////// FTWindowMatches::~FTWindowMatches() { delete arg_; } bool FTWindowMatches::next(DynamicContext *context) { excludes_.clear(); if(!arg_ || !found_) return false; unsigned int unitVal; while(found_) { found_ = arg_->next(context); if(!found_) { delete arg_; arg_ = 0; return false; } StringMatches::const_iterator end = arg_->getStringIncludes().end(); StringMatches::const_iterator i = arg_->getStringIncludes().begin(); if(i != end) { unsigned int includeMin = FTOption::tokenUnit(i->tokenInfo, unit_); unsigned int includeMax = includeMin; for(++i; i != end; ++i) { unitVal = FTOption::tokenUnit(i->tokenInfo, unit_); if(unitVal < includeMin) { includeMin = unitVal; } else if(unitVal > includeMax) { includeMax = unitVal; } } if((includeMax - includeMin + 1) <= distance_) { unsigned int tokenStart = 0; if(includeMax > distance_) { tokenStart = includeMax - distance_ + 1; } unsigned int tokenEnd = includeMin + distance_ - 1; excludeValues_.clear(); end = arg_->getStringIncludes().end(); i = arg_->getStringIncludes().begin(); for(; i != end; ++i) { unitVal = FTOption::tokenUnit(i->tokenInfo, unit_); if(tokenStart <= unitVal && unitVal <= tokenEnd) { excludeValues_.insert(unitVal); } } if(excludeValues_.empty()) { // Add a dummy value, so we return a match excludeValues_.insert(includeMin); } excludeIt_ = excludeValues_.begin(); break; } } } for(StringMatches::const_iterator i = arg_->getStringExcludes().begin(); i != arg_->getStringExcludes().end(); ++i) { unitVal = FTOption::tokenUnit(i->tokenInfo, unit_); if(*excludeIt_ <= unitVal && unitVal <= (*excludeIt_ + distance_ - 1)) { excludes_.push_back(*i); } } ++excludeIt_; if(excludeIt_ == excludeValues_.end()) { found_ = false; } return true; } const StringMatches &FTWindowMatches::getStringIncludes() { assert(arg_); return arg_->getStringIncludes(); } const StringMatches &FTWindowMatches::getStringExcludes() { return excludes_; } XQilla-2.3.0/src/fulltext/FTOrder.cpp0000644000151400015140000000663011653565523014312 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include FTSelection *FTOrder::staticResolution(StaticContext *context) { arg_ = arg_->staticResolution(context); return this; } FTSelection *FTOrder::staticTypingImpl(StaticContext *context) { src_.clear(); src_.add(arg_->getStaticAnalysis()); return this; } FTSelection *FTOrder::optimize(FTContext *ftcontext) const { XPath2MemoryManager *mm = ftcontext->context->getMemoryManager(); FTSelection *newarg = arg_->optimize(ftcontext); if(newarg == 0) return 0; if(newarg->getType() == WORD) { return newarg; } newarg = new (mm) FTOrder(newarg, mm); newarg->setLocationInfo(this); return newarg; } AllMatches *FTOrder::execute(FTContext *ftcontext) const { return new FTOrderMatches(this, arg_->execute(ftcontext)); } FTOrderMatches::~FTOrderMatches() { delete arg_; } bool FTOrderMatches::next(DynamicContext *context) { excludes_.clear(); if(!arg_) return false; bool found = arg_->next(context); if (!found) { delete arg_; arg_ = 0; return false; } while(found) { found = false; StringMatches::const_iterator begin = arg_->getStringIncludes().begin(); StringMatches::const_iterator end = arg_->getStringIncludes().end(); StringMatches::const_iterator i, j; for(i = begin; i != end; ++i) { for(j = i, ++j; j != end; ++j) { if((i->queryPos > j->queryPos && i->tokenInfo.position_ < j->tokenInfo.position_) || (i->queryPos < j->queryPos && i->tokenInfo.position_ > j->tokenInfo.position_)) { found = arg_->next(context); if (!found) { delete arg_; arg_ = 0; return false; } break; } } if (found) break; } } return true; } const StringMatches &FTOrderMatches::getStringIncludes() { assert(arg_); return arg_->getStringIncludes(); } const StringMatches &FTOrderMatches::getStringExcludes() { if (arg_ && !excludes_.empty()) { StringMatches::const_iterator e_end = arg_->getStringExcludes().end(); StringMatches::const_iterator e = arg_->getStringExcludes().begin(); StringMatches::const_iterator i_begin = arg_->getStringIncludes().begin(); StringMatches::const_iterator i_end = arg_->getStringIncludes().end(); StringMatches::const_iterator i; for(; e != e_end; ++e) { for(i = i_begin; i != i_end; ++i) { if((i->queryPos <= e->queryPos && i->tokenInfo.position_ <= e->tokenInfo.position_) || (i->queryPos >= e->queryPos && i->tokenInfo.position_ >= e->tokenInfo.position_)) { excludes_.push_back(*e); } } } } return excludes_; } XQilla-2.3.0/src/fulltext/FTWords.cpp0000644000151400015140000002321311653565523014331 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif FTWords::FTWords(ASTNode *expr, FTAnyallOption option, XPath2MemoryManager *memMgr) : FTSelection(FTSelection::WORDS, memMgr), expr_(expr), option_(option) { } FTSelection *FTWords::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); SequenceType *seqType = new (mm) SequenceType(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, SequenceType::STAR, mm); seqType->setLocationInfo(this); expr_ = new (mm) XQAtomize(expr_, mm); expr_->setLocationInfo(this); expr_ = new (mm) XQTreatAs(expr_, seqType, mm); expr_->setLocationInfo(this); expr_ = expr_->staticResolution(context); return this; } FTSelection *FTWords::staticTypingImpl(StaticContext *context) { src_.clear(); src_.add(expr_->getStaticAnalysis()); return this; } FTSelection *FTWords::optimize(FTContext *ftcontext) const { if(expr_->isConstant()) { Result strings = expr_->createResult(ftcontext->context); switch(option_) { case ANY_WORD: { return optimizeAnyWord(strings, ftcontext)-> optimize(ftcontext); } case ALL_WORDS: { return optimizeAllWords(strings, ftcontext)-> optimize(ftcontext); } case PHRASE: { return optimizePhrase(strings, ftcontext)-> optimize(ftcontext); } case ANY: { return optimizeAny(strings, ftcontext)-> optimize(ftcontext); } case ALL: { return optimizeAll(strings, ftcontext)-> optimize(ftcontext); } } } return const_cast(this); } FTSelection *FTWords::optimizeAnyWord(Result strings, FTContext *ftcontext) const { XPath2MemoryManager *mm = ftcontext->context->getMemoryManager(); FTOr *ftor = new (mm) FTOr(mm); ftor->setLocationInfo(this); Item::Ptr item; while((item = strings->next(ftcontext->context)).notNull()) { TokenStream::Ptr stream = ftcontext->tokenizer-> tokenize(item->asString(ftcontext->context), ftcontext->context->getMemoryManager()); TokenInfo token; while((token = stream->next()).word_ != 0) { FTSelection *word = new (mm) FTWord(token.word_, mm); word->setLocationInfo(this); ftor->addArg(word); } } return ftor; } AllMatches *FTWords::executeAnyWord(Result strings, FTContext *ftcontext) const { FTDisjunctionMatches *disjunction = new FTDisjunctionMatches(this); AllMatches *result(disjunction); Item::Ptr item; while((item = strings->next(ftcontext->context)).notNull()) { TokenStream::Ptr stream = ftcontext->tokenizer-> tokenize(item->asString(ftcontext->context), ftcontext->context->getMemoryManager()); TokenInfo token; while((token = stream->next()).word_ != 0) { disjunction->addMatches(new FTStringSearchMatches(this, token.word_, ftcontext)); } } return result; } FTSelection *FTWords::optimizeAllWords(Result strings, FTContext *ftcontext) const { XPath2MemoryManager *mm = ftcontext->context->getMemoryManager(); FTAnd *ftand = new (mm) FTAnd(mm); ftand->setLocationInfo(this); Item::Ptr item; while((item = strings->next(ftcontext->context)).notNull()) { TokenStream::Ptr stream = ftcontext->tokenizer-> tokenize(item->asString(ftcontext->context), ftcontext->context->getMemoryManager()); TokenInfo token; while((token = stream->next()).word_ != 0) { FTSelection *word = new (mm) FTWord(token.word_, mm); word->setLocationInfo(this); ftand->addArg(word); } } return ftand; } AllMatches *FTWords::executeAllWords(Result strings, FTContext *ftcontext) const { FTConjunctionMatches *conjunction = new FTConjunctionMatches(this); AllMatches *result(conjunction); Item::Ptr item; while((item = strings->next(ftcontext->context)).notNull()) { TokenStream::Ptr stream = ftcontext->tokenizer-> tokenize(item->asString(ftcontext->context), ftcontext->context->getMemoryManager()); TokenInfo token; while((token = stream->next()).word_ != 0) { conjunction->addMatches(new FTStringSearchMatches(this, token.word_, ftcontext)); } } return result; } FTSelection *FTWords::optimizePhrase(Result strings, FTContext *ftcontext) const { XPath2MemoryManager *mm = ftcontext->context->getMemoryManager(); FTSelection *result = new (mm) FTOrder(optimizeAllWords(strings, ftcontext), mm); result->setLocationInfo(this); result = new (mm) FTDistanceLiteral(result, FTRange::EXACTLY, 0, 0, FTOption::WORDS, mm); result->setLocationInfo(this); return result; } AllMatches *FTWords::executePhrase(Result strings, FTContext *ftcontext) const { AllMatches *result = executeAllWords(strings, ftcontext); result = new FTOrderMatches(this, result); result = new FTDistanceExactlyMatches(this, 0, FTOption::WORDS, result); return result; } FTSelection *FTWords::optimizeAny(Result strings, FTContext *ftcontext) const { XPath2MemoryManager *mm = ftcontext->context->getMemoryManager(); FTOr *ftor = new (mm) FTOr(mm); ftor->setLocationInfo(this); Item::Ptr item; while((item = strings->next(ftcontext->context)).notNull()) { ftor->addArg(optimizePhrase(item, ftcontext)); } return ftor; } AllMatches *FTWords::executeAny(Result strings, FTContext *ftcontext) const { FTDisjunctionMatches *disjunction = new FTDisjunctionMatches(this); AllMatches *result(disjunction); Item::Ptr item; while((item = strings->next(ftcontext->context)).notNull()) { disjunction->addMatches(executePhrase(item, ftcontext)); } return result; } FTSelection *FTWords::optimizeAll(Result strings, FTContext *ftcontext) const { XPath2MemoryManager *mm = ftcontext->context->getMemoryManager(); FTAnd *ftand = new (mm) FTAnd(mm); ftand->setLocationInfo(this); Item::Ptr item; while((item = strings->next(ftcontext->context)).notNull()) { ftand->addArg(optimizePhrase(item, ftcontext)); } return ftand; } AllMatches *FTWords::executeAll(Result strings, FTContext *ftcontext) const { FTConjunctionMatches *conjunction = new FTConjunctionMatches(this); AllMatches *result(conjunction); Item::Ptr item; while((item = strings->next(ftcontext->context)).notNull()) { conjunction->addMatches(executePhrase(item, ftcontext)); } return result; } AllMatches *FTWords::execute(FTContext *ftcontext) const { Result strings = expr_->createResult(ftcontext->context); switch(option_) { case ANY_WORD: { return executeAnyWord(strings, ftcontext); } case ALL_WORDS: { return executeAllWords(strings, ftcontext); } case PHRASE: { return executePhrase(strings, ftcontext); } case ANY: { return executeAny(strings, ftcontext); } case ALL: { return executeAll(strings, ftcontext); } } return 0; } //////////////////////////////////////////////////////////////////////////////////////////////////// FTWord::FTWord(const XMLCh *queryString, XPath2MemoryManager *memMgr) : FTSelection(WORD, memMgr), queryString_(queryString) { } FTSelection *FTWord::staticResolution(StaticContext *context) { return this; } FTSelection *FTWord::staticTypingImpl(StaticContext *context) { src_.clear(); return this; } FTSelection *FTWord::optimize(FTContext *context) const { return const_cast(this); } AllMatches *FTWord::execute(FTContext *ftcontext) const { return new FTStringSearchMatches(this, queryString_, ftcontext); } //////////////////////////////////////////////////////////////////////////////////////////////////// FTStringSearchMatches::FTStringSearchMatches(const LocationInfo *info, const XMLCh *queryString, FTContext *ftcontext) : AllMatches(info), queryPos_(ftcontext->queryPos++), tokenStream_(ftcontext->tokenStore->findTokens(queryString)), includes_(), excludes_() { } bool FTStringSearchMatches::next(DynamicContext *context) { includes_.clear(); if(tokenStream_.isNull()) return false; TokenInfo token = tokenStream_->next(); if(token.word_ == 0) { tokenStream_ = 0; return false; } // TBD query position StringMatch sm(queryPos_, token); includes_.push_back(sm); return true; } const StringMatches &FTStringSearchMatches::getStringIncludes() { return includes_; } const StringMatches &FTStringSearchMatches::getStringExcludes() { return excludes_; } XQilla-2.3.0/src/fulltext/DefaultTokenizer.cpp0000644000151400015140000000725511653565523016270 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include extern "C" { #include } #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif TokenStream::Ptr DefaultTokenizer::tokenize(const Node::Ptr &node, DynamicContext *context) const { return new DefaultTokenStream(node->dmStringValue(context), context->getMemoryManager()); } TokenStream::Ptr DefaultTokenizer::tokenize(const XMLCh *str, XPath2MemoryManager *mm) const { return new DefaultTokenStream(str, mm); } DefaultTokenizer::DefaultTokenStream::DefaultTokenStream(const XMLCh *str, XPath2MemoryManager *mm) : tokenStart_(0), position_(0), sentence_(0), paragraph_(0), seenEndOfSentence_(false), mm_(mm) { //string_ will point to memory allocated in wordsAndSentences string_ = UnicodeTransformer::wordsAndSentences(str, mm_); current_ = string_; //skip over the first and current_++; current_++; } DefaultTokenizer::DefaultTokenStream::~DefaultTokenStream() { mm_->deallocate(string_); } TokenInfo DefaultTokenizer::DefaultTokenStream::next() { TokenInfo result; memset(&result, 0, sizeof(TokenInfo)); // in case that utf8proc return 0 if(current_ == 0) return result; while(result.word_ == 0) { switch(*current_){ case UTF8PROC_SB_MARK: { ++sentence_; break; } case UTF8PROC_WB_MARK:{ if(tokenStart_ != 0 && !UnicodeTransformer::isSpacesOrPunctuations(tokenStart_, current_-1)) { //report a token //token is form tokenStart_ to current_-1 result.word_ = mm_->getPooledString(tokenStart_, current_-tokenStart_); result.paragraph_ = paragraph_; result.position_ = position_; result.sentence_ = sentence_; ++position_; tokenStart_ = 0; } break; } case 0:{//end of the string return result; } default: { // if current is a single space seperator and after is // like: " ", ignore it if(tokenStart_ == 0 && *(current_+1) == UTF8PROC_WB_MARK && UnicodeTransformer::isSpaceSeparator(current_)){ break; } // if current is a single punctuation and after is , // like: ")", ignore it int codeSize; if(tokenStart_ == 0 && (*(current_+1) == UTF8PROC_WB_MARK || *(current_+2) == UTF8PROC_WB_MARK) && UnicodeTransformer::isPunctuation(current_, codeSize)){ if (*(current_ + codeSize) == UTF8PROC_WB_MARK) current_ = current_ + codeSize-1; break; } if(tokenStart_ == 0) { tokenStart_ = current_; } } } ++current_; } return result; } XQilla-2.3.0/src/fulltext/DefaultTokenStore.cpp0000644000151400015140000000542411653565523016407 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include extern "C" { #include } #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif DefaultTokenStore::DefaultTokenStore(const Node::Ptr &node, const Tokenizer *tokenizer, DynamicContext *context) : tokens_(73, /*adoptElems*/true, context->getMemoryManager()), numTokens_(0), mm_(context->getMemoryManager()), context_(context) { TokenStream::Ptr stream = tokenizer->tokenize(node, context); TokenInfo token; int options = 0; //consider stem, stop words, thesaurus, case options if(context_->getFTCase() == StaticContext::CASE_INSENSITIVE) { options = UTF8PROC_CASEFOLD; } while((token = stream->next()).word_ != 0) { ++numTokens_; AutoDeallocate buf(UnicodeTransformer::transform(token.word_, options, mm_), mm_); TokenEntry *entry = tokens_.get(buf.get()); if(entry == 0) { entry = new TokenEntry(); tokens_.put((void*)mm_->getPooledString(buf.get()), entry); } entry->addToken(token); } } DefaultTokenStore::DefaultTokenStore(XPath2MemoryManager *mm) : tokens_(3, /*adoptElems*/true, mm), numTokens_(0), mm_(mm) { } TokenStream::Ptr DefaultTokenStore::findTokens(const XMLCh *searchString) const { int options = 0; if(context_->getFTCase() == StaticContext::CASE_INSENSITIVE){ options = UTF8PROC_CASEFOLD; } else if(context_->getFTCase() == StaticContext::UPPERCASE){ options = UTF8PROC_UPPERCASE; } else if(context_->getFTCase() == StaticContext::LOWERCASE){ options = UTF8PROC_LOWERCASE; } AutoDeallocate buf(UnicodeTransformer::transform(searchString, options, mm_), mm_); const TokenEntry *entry = tokens_.get(buf.get()); if(entry == 0) return 0; return entry->getTokenStream(); } XQilla-2.3.0/src/fulltext/FTContent.cpp0000644000151400015140000001124711653565523014651 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include FTSelection *FTContent::staticResolution(StaticContext *context) { arg_ = arg_->staticResolution(context); return this; } FTSelection *FTContent::staticTypingImpl(StaticContext *context) { src_.clear(); src_.add(arg_->getStaticAnalysis()); return this; } FTSelection *FTContent::optimize(FTContext *ftcontext) const { XPath2MemoryManager *mm = ftcontext->context->getMemoryManager(); FTSelection *newarg = arg_->optimize(ftcontext); if(newarg == 0) return 0; if(type_ == ENTIRE_CONTENT) { newarg = new (mm) FTDistanceLiteral(newarg, FTRange::EXACTLY, 0, 0, FTOption::WORDS, mm); newarg->setLocationInfo(this); newarg = new (mm) FTContent(newarg, AT_START, mm); newarg->setLocationInfo(this); newarg = new (mm) FTContent(newarg, AT_END, mm); newarg->setLocationInfo(this); } else { newarg = new (mm) FTContent(newarg, type_, mm); newarg->setLocationInfo(this); } return newarg; } AllMatches *FTContent::execute(FTContext *ftcontext) const { switch(type_) { case AT_START: return new FTContentAtStartMatches(this, arg_->execute(ftcontext)); case AT_END: return new FTContentAtEndMatches(this, arg_->execute(ftcontext)); default: // ENTIRE_CONTENT is handled by optimize() assert(0); break; } return 0; } FTContentAtStartMatches::~FTContentAtStartMatches() { delete arg_; } bool FTContentAtStartMatches::next(DynamicContext *context) { if(!arg_) return false; StringMatches::const_iterator smallest; bool found = false; while(arg_->next(context)) { StringMatches::const_iterator i = arg_->getStringIncludes().begin(); StringMatches::const_iterator end = arg_->getStringIncludes().end(); if(i != end) { smallest = i; found = true; for(++i; i != end; ++i) { if(i->tokenInfo.position_ < smallest->tokenInfo.position_) { smallest = i; } } break; } } if (!found) { delete arg_; arg_ = 0; return false; } includes_.clear(); StringMatches::const_iterator i = arg_->getStringIncludes().begin(); StringMatches::const_iterator end = arg_->getStringIncludes().end(); for(; i != end; ++i) { if(i == smallest) { StringMatch sm(*i); sm.startToken = true; includes_.push_back(sm); } else { includes_.push_back(*i); } } return true; } const StringMatches &FTContentAtStartMatches::getStringIncludes() { assert(arg_); return includes_; } const StringMatches &FTContentAtStartMatches::getStringExcludes() { assert(arg_); return arg_->getStringExcludes(); } FTContentAtEndMatches::~FTContentAtEndMatches() { delete arg_; } bool FTContentAtEndMatches::next(DynamicContext *context) { if(!arg_) return false; StringMatches::const_iterator largest; bool found = false; while(arg_->next(context)) { StringMatches::const_iterator i = arg_->getStringIncludes().begin(); StringMatches::const_iterator end = arg_->getStringIncludes().end(); if(i != end) { largest = i; found = true; for(++i; i != end; ++i) { if(i->tokenInfo.position_ > largest->tokenInfo.position_) { largest = i; } } break; } } if (!found) { delete arg_; arg_ = 0; return false; } includes_.clear(); StringMatches::const_iterator i = arg_->getStringIncludes().begin(); StringMatches::const_iterator end = arg_->getStringIncludes().end(); for(; i != end; ++i) { if(i == largest) { StringMatch sm(*i); sm.endToken = true; includes_.push_back(sm); } else { includes_.push_back(*i); } } return true; } const StringMatches &FTContentAtEndMatches::getStringIncludes() { assert(arg_); return includes_; } const StringMatches &FTContentAtEndMatches::getStringExcludes() { assert(arg_); return arg_->getStringExcludes(); } XQilla-2.3.0/src/fulltext/FTContains.cpp0000644000151400015140000001015211653565523015007 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include FTContains::FTContains(ASTNode *argument, FTSelection *selection, ASTNode *ignore, XPath2MemoryManager* memMgr) : ASTNodeImpl(FTCONTAINS, memMgr), argument_(argument), selection_(selection), ignore_(ignore) { } FTContains::~FTContains() { //no-op } ASTNode* FTContains::staticResolution(StaticContext *context) { argument_ = argument_->staticResolution(context); selection_ = selection_->staticResolution(context); if(ignore_ != NULL) { ignore_ = ignore_->staticResolution(context); } return this; } ASTNode *FTContains::staticTypingImpl(StaticContext *context) { _src.clear(); _src.getStaticType() = StaticType::BOOLEAN_TYPE; _src.add(argument_->getStaticAnalysis()); _src.add(selection_->getStaticAnalysis()); if(ignore_ != NULL) { _src.add(ignore_->getStaticAnalysis()); } return this; } BoolResult FTContains::boolResult(DynamicContext* context) const { // TBD deal with ignore nodes DefaultTokenizer tokenizer; Result argNodes = getArgument()->createResult(context); Item::Ptr item; AllMatches *matches = 0; while((item = argNodes->next(context)).notNull()) { if(!item->isNode()) XQThrow(XPath2TypeMatchException, X("FTContains::createResult"), X("The argument to ftcontains contains non nodes [err:XPTY0004]")); FTContext ftcontext(&tokenizer, new DefaultTokenStore((Node*)item.get(), &tokenizer, context), context); if (matches != 0) delete matches; matches = getSelection()->execute(&ftcontext); if(matches) { StringMatches::const_iterator i; StringMatches::const_iterator end; while(matches->next(context)) { bool fail = false; i = matches->getStringIncludes().begin(); end = matches->getStringIncludes().end(); for(; i != end; ++i) { if(i->startToken && i->tokenInfo.position_ != ftcontext.tokenStore->getStartTokenPosition()) { fail = true; break; } if(i->endToken && i->tokenInfo.position_ != ftcontext.tokenStore->getEndTokenPosition()) { fail = true; break; } } if(fail) continue; i = matches->getStringExcludes().begin(); end = matches->getStringExcludes().end(); for(; i != end; ++i) { if(i->startToken && i->tokenInfo.position_ != ftcontext.tokenStore->getStartTokenPosition()) { continue; } if(i->endToken && i->tokenInfo.position_ != ftcontext.tokenStore->getEndTokenPosition()) { continue; } fail = true; break; } if(fail) continue; delete matches; matches = 0; return true; } delete matches; matches = 0; } } return false; } Result FTContains::createResult(DynamicContext* context, int flags) const { return (Item::Ptr)context->getItemFactory()->createBoolean(boolResult(context), context); } XQilla-2.3.0/src/fulltext/FTScope.cpp0000644000151400015140000001123211653565523014302 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include using namespace std; FTSelection *FTScope::staticResolution(StaticContext *context) { arg_ = arg_->staticResolution(context); return this; } FTSelection *FTScope::staticTypingImpl(StaticContext *context) { src_.clear(); src_.add(arg_->getStaticAnalysis()); return this; } FTSelection *FTScope::optimize(FTContext *ftcontext) const { XPath2MemoryManager *mm = ftcontext->context->getMemoryManager(); FTSelection *newarg = arg_->optimize(ftcontext); if(newarg == 0) return 0; if(newarg->getType() == WORD) { return newarg; } newarg = new (mm) FTScope(newarg, type_, unit_, mm); newarg->setLocationInfo(this); return newarg; } AllMatches *FTScope::execute(FTContext *ftcontext) const { switch(type_) { case SAME: return new FTScopeSameMatches(this, unit_, arg_->execute(ftcontext)); case DIFFERENT: return new FTScopeDifferentMatches(this, unit_, arg_->execute(ftcontext)); default: assert(0); break; } return 0; } FTScopeSameMatches::~FTScopeSameMatches() { delete arg_; } bool FTScopeSameMatches::next(DynamicContext *context) { excludes_.clear(); if(!arg_) return false; unitValue_ = 0; bool found = arg_->next(context); if (!found) { delete arg_; arg_ = 0; return false; } while(found) { StringMatches::const_iterator i = arg_->getStringIncludes().begin(); StringMatches::const_iterator end = arg_->getStringIncludes().end(); if(i != end && (i+1) != end) { unitValue_ = FTOption::tokenUnit(i->tokenInfo, unit_); for(++i; i != end; ++i) { found = false; if(FTOption::tokenUnit(i->tokenInfo, unit_) != unitValue_) { found = arg_->next(context); if (!found) { delete arg_; arg_ = 0; return false; } break; } } } else { found = arg_->next(context); if (!found) { delete arg_; arg_ = 0; return false; } } } return true; } const StringMatches &FTScopeSameMatches::getStringIncludes() { assert(arg_); return arg_->getStringIncludes(); } const StringMatches &FTScopeSameMatches::getStringExcludes() { if (arg_ && !excludes_.empty()) { StringMatches::const_iterator end = arg_->getStringExcludes().end(); for(StringMatches::const_iterator i = arg_->getStringExcludes().begin(); i != end; ++i) { if(FTOption::tokenUnit(i->tokenInfo, unit_) == unitValue_) { excludes_.push_back(*i); } } } return excludes_; } FTScopeDifferentMatches::~FTScopeDifferentMatches() { delete arg_; } bool FTScopeDifferentMatches::next(DynamicContext *context) { excludes_.clear(); if(!arg_) return false; bool found = arg_->next(context); if (!found) { delete arg_; arg_ = 0; return false; } while(found) { found = false; unitValuesSeen_.clear(); StringMatches::const_iterator end = arg_->getStringIncludes().end(); StringMatches::const_iterator i = arg_->getStringIncludes().begin(); for(; i != end; ++i) { if(!unitValuesSeen_.insert(FTOption::tokenUnit(i->tokenInfo, unit_)).second) { found = arg_->next(context); if (!found) { delete arg_; arg_ = 0; return false; } break; } } } return true; } const StringMatches &FTScopeDifferentMatches::getStringIncludes() { assert(arg_); return arg_->getStringIncludes(); } const StringMatches &FTScopeDifferentMatches::getStringExcludes() { if (arg_ && !excludes_.empty()) { StringMatches::const_iterator end = arg_->getStringExcludes().end(); StringMatches::const_iterator i = arg_->getStringExcludes().begin(); for(; i != end; ++i) { if(unitValuesSeen_.find(FTOption::tokenUnit(i->tokenInfo, unit_)) != unitValuesSeen_.end()) { excludes_.push_back(*i); } } } return excludes_; } XQilla-2.3.0/src/fulltext/FTUnaryNot.cpp0000644000151400015140000000541011653565523015011 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include FTUnaryNot::FTUnaryNot(FTSelection *arg, XPath2MemoryManager *memMgr) : FTSelection(FTSelection::UNARY_NOT, memMgr), arg_(arg) { } FTSelection *FTUnaryNot::staticResolution(StaticContext *context) { arg_ = arg_->staticResolution(context); return this; } FTSelection *FTUnaryNot::staticTypingImpl(StaticContext *context) { src_.clear(); src_.add(arg_->getStaticAnalysis()); return this; } FTSelection *FTUnaryNot::optimize(FTContext *ftcontext) const { XPath2MemoryManager *mm = ftcontext->context->getMemoryManager(); FTSelection *newarg = arg_->optimize(ftcontext); if(newarg == 0) return 0; newarg = new (mm) FTUnaryNot(newarg, mm); newarg->setLocationInfo(this); return newarg; } AllMatches *FTUnaryNot::execute(FTContext *ftcontext) const { return new FTUnaryNotMatches(this, arg_->execute(ftcontext)); } FTUnaryNotMatches::~FTUnaryNotMatches() { delete arg_; } bool FTUnaryNotMatches::next(DynamicContext *context) { // TBD incorrect implementation - jpcs // TBD need to check for StringInclude / StringExclude contradictions - jpcs if(toDo_) { toDo_ = false; if(arg_) { while(arg_->next(context)) { addStringExcludes(arg_->getStringIncludes()); addStringIncludes(arg_->getStringExcludes()); } } delete arg_; arg_ = 0; return true; } includes_.clear(); excludes_.clear(); return false; } const StringMatches &FTUnaryNotMatches::getStringIncludes() { return includes_; } const StringMatches &FTUnaryNotMatches::getStringExcludes() { return excludes_; } void FTUnaryNotMatches::addStringIncludes(const StringMatches &sMatches) { for(StringMatches::const_iterator j = sMatches.begin(); j != sMatches.end(); ++j) { includes_.push_back(*j); } } void FTUnaryNotMatches::addStringExcludes(const StringMatches &sMatches) { for(StringMatches::const_iterator j = sMatches.begin(); j != sMatches.end(); ++j) { excludes_.push_back(*j); } }XQilla-2.3.0/src/fulltext/FTAnd.cpp0000644000151400015140000001371411653565523013742 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include using namespace std; FTAnd::FTAnd(XPath2MemoryManager *memMgr) : FTSelection(AND, memMgr), args_(memMgr) { } FTAnd::FTAnd(FTSelection *left, FTSelection *right, XPath2MemoryManager *memMgr) : FTSelection(AND, memMgr), args_(memMgr) { args_.push_back(left); args_.push_back(right); } FTSelection *FTAnd::staticResolution(StaticContext *context) { for(VectorOfFTSelections::iterator i = args_.begin(); i != args_.end(); ++i) { *i = (*i)->staticResolution(context); } return this; } FTSelection *FTAnd::staticTypingImpl(StaticContext *context) { src_.clear(); for(VectorOfFTSelections::iterator i = args_.begin(); i != args_.end(); ++i) { src_.add((*i)->getStaticAnalysis()); } return this; } FTSelection *FTAnd::optimize(FTContext *ftcontext) const { XPath2MemoryManager *mm = ftcontext->context->getMemoryManager(); FTAnd *ftand = new (mm) FTAnd(mm); ftand->setLocationInfo(this); for(VectorOfFTSelections::const_iterator i = args_.begin(); i != args_.end(); ++i) { FTSelection *arg = (*i)->optimize(ftcontext); if(arg == 0) return 0; ftand->addArg(arg); } if(ftand->args_.empty()) { return 0; } if(ftand->args_.size() == 1) { return ftand->args_.back(); } return ftand; } AllMatches *FTAnd::execute(FTContext *ftcontext) const { FTConjunctionMatches *conjunction = new FTConjunctionMatches(this); AllMatches *result(conjunction); for(VectorOfFTSelections::const_iterator i = args_.begin(); i != args_.end(); ++i) { conjunction->addMatches((*i)->execute(ftcontext)); } return result; } BufferedMatches::BufferedMatches(const LocationInfo *info, AllMatches *matches) : AllMatches(info), matches_(matches), reset_(false), includeBuffer_(), excludeBuffer_(), includeIt_(includeBuffer_.begin()), excludeIt_(excludeBuffer_.begin()) { } bool BufferedMatches::next(DynamicContext *context) { if(includeIt_ != includeBuffer_.end()) { if (reset_) { reset_ = false; } else { includeIt_++; excludeIt_++; } if(includeIt_ != includeBuffer_.end()) return true; } if(matches_) { if(matches_->next(context)) { includeBuffer_.push_back(matches_->getStringIncludes()); excludeBuffer_.push_back(matches_->getStringExcludes()); includeIt_ = includeBuffer_.end(); excludeIt_ = excludeBuffer_.end(); includeIt_--; excludeIt_--; return true; } } return false; } void BufferedMatches::reset() { reset_ = true; includeIt_ = includeBuffer_.begin(); excludeIt_ = excludeBuffer_.begin(); } AllMatches *BufferedMatches::getAllMatches() { return matches_; } FTConjunctionMatches::FTConjunctionMatches(const LocationInfo *info) : AllMatches(info), toDo_(true), includes_(), excludes_() { } FTConjunctionMatches::~FTConjunctionMatches() { deleteMatches(); } void FTConjunctionMatches::addMatches(AllMatches *m) { if (m) { BufferedMatches buf(this, m); args_.push_back(buf); } } bool FTConjunctionMatches::next(DynamicContext *context) { // TBD need to check for StringInclude / StringExclude contradictions includes_.clear(); excludes_.clear(); vector::reverse_iterator rend = args_.rend(); vector::reverse_iterator rbegin = args_.rbegin(); vector::reverse_iterator it; bool initialisationState = false; if(toDo_) { toDo_ = false; initialisationState = true; } if(initialisationState) { it = rend; } else { it = rbegin; } while(true) { if(initialisationState) { if(it == rbegin) { break; } else { --it; it->reset(); if(!it->next(context)) { initialisationState = false; ++it; } } } else { if(it == rend) { deleteMatches(); return false; } else { if(it->next(context)) { initialisationState = true; } else { ++it; } } } } return true; } const StringMatches &FTConjunctionMatches::getStringIncludes() { if (includes_.empty()) { for(vector::iterator i = args_.begin(); i != args_.end(); ++i) { addStringIncludes(i->getStringIncludes()); } } return includes_; } const StringMatches &FTConjunctionMatches::getStringExcludes() { if (excludes_.empty()) { for(vector::iterator i = args_.begin(); i != args_.end(); ++i) { addStringExcludes(i->getStringExcludes()); } } return excludes_; } void FTConjunctionMatches::deleteMatches() { for (vector::iterator it = args_.begin(); it != args_.end(); it++) { delete it->getAllMatches(); } args_.clear(); } void FTConjunctionMatches::addStringIncludes(const StringMatches &sMatches) { for(StringMatches::const_iterator j = sMatches.begin(); j != sMatches.end(); ++j) { includes_.push_back(*j); } } void FTConjunctionMatches::addStringExcludes(const StringMatches &sMatches) { for(StringMatches::const_iterator j = sMatches.begin(); j != sMatches.end(); ++j) { excludes_.push_back(*j); } } XQilla-2.3.0/src/fulltext/FTOr.cpp0000644000151400015140000000643211653565523013617 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include using namespace std; FTOr::FTOr(XPath2MemoryManager *memMgr) : FTSelection(FTSelection::OR, memMgr), args_(memMgr) { } FTOr::FTOr(FTSelection *left, FTSelection *right, XPath2MemoryManager *memMgr) : FTSelection(FTSelection::OR, memMgr), args_(memMgr) { args_.push_back(left); args_.push_back(right); } FTSelection *FTOr::staticResolution(StaticContext *context) { for(VectorOfFTSelections::iterator i = args_.begin(); i != args_.end(); ++i) { *i = (*i)->staticResolution(context); } return this; } FTSelection *FTOr::staticTypingImpl(StaticContext *context) { src_.clear(); for(VectorOfFTSelections::iterator i = args_.begin(); i != args_.end(); ++i) { src_.add((*i)->getStaticAnalysis()); } return this; } FTSelection *FTOr::optimize(FTContext *ftcontext) const { XPath2MemoryManager *mm = ftcontext->context->getMemoryManager(); FTOr *ftor = new (mm) FTOr(mm); ftor->setLocationInfo(this); for(VectorOfFTSelections::const_iterator i = args_.begin(); i != args_.end(); ++i) { FTSelection *arg = (*i)->optimize(ftcontext); if(arg != 0) ftor->addArg(arg); } if(ftor->args_.empty()) { return 0; } if(ftor->args_.size() == 1) { return ftor->args_.back(); } return ftor; } AllMatches *FTOr::execute(FTContext *ftcontext) const { FTDisjunctionMatches *disjunction = new FTDisjunctionMatches(this); AllMatches *result(disjunction); for(VectorOfFTSelections::const_iterator i = args_.begin(); i != args_.end(); ++i) { disjunction->addMatches((*i)->execute(ftcontext)); } return result; } FTDisjunctionMatches::FTDisjunctionMatches(const LocationInfo *info) : AllMatches(info), toDo_(true) { } FTDisjunctionMatches::~FTDisjunctionMatches() { for(it_ = args_.begin(); it_ != args_.end(); it_++) { delete *(it_); } } bool FTDisjunctionMatches::next(DynamicContext *context) { // TBD AllMatches normalization if(toDo_) { toDo_ = false; it_ = args_.begin(); } bool found = false; while(it_ != args_.end()) { if(!(*it_)->next(context)) { delete *(it_); *it_ = 0; ++it_; } else { found = true; break; } } return found; } const StringMatches &FTDisjunctionMatches::getStringIncludes() { assert(it_ != args_.end()); return (*it_)->getStringIncludes(); } const StringMatches &FTDisjunctionMatches::getStringExcludes() { assert(it_ != args_.end()); return (*it_)->getStringExcludes(); } XQilla-2.3.0/src/fulltext/FTDistance.cpp0000644000151400015140000002055711653565523014775 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif FTSelection *FTDistance::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); SequenceType *seqType = new (mm) SequenceType(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, SequenceType::EXACTLY_ONE, mm); seqType->setLocationInfo(this); arg_ = arg_->staticResolution(context); range_.arg1 = new (mm) XQAtomize(range_.arg1, mm); range_.arg1->setLocationInfo(this); range_.arg1 = new (mm) XQTreatAs(range_.arg1, seqType, mm); range_.arg1->setLocationInfo(this); range_.arg1 = range_.arg1->staticResolution(context); if(range_.arg2 != NULL) { range_.arg2 = new (mm) XQAtomize(range_.arg2, mm); range_.arg2->setLocationInfo(this); range_.arg2 = new (mm) XQTreatAs(range_.arg2, seqType, mm); range_.arg2->setLocationInfo(this); range_.arg2 = range_.arg2->staticResolution(context); } return this; } FTSelection *FTDistance::staticTypingImpl(StaticContext *context) { src_.clear(); src_.add(arg_->getStaticAnalysis()); src_.add(range_.arg1->getStaticAnalysis()); if(range_.arg2 != NULL) { src_.add(range_.arg2->getStaticAnalysis()); } return this; } FTSelection *FTDistance::optimize(FTContext *ftcontext) const { XPath2MemoryManager *mm = ftcontext->context->getMemoryManager(); if(range_.arg1->isConstant()) { switch(range_.type) { case FTRange::EXACTLY: case FTRange::AT_LEAST: case FTRange::AT_MOST: { Numeric::Ptr num = (Numeric*)range_.arg1->createResult(ftcontext->context)->next(ftcontext->context).get(); FTSelection *result = new (mm) FTDistanceLiteral(arg_, range_.type, num->asInt(), 0, unit_, mm); result->setLocationInfo(this); return result->optimize(ftcontext); } case FTRange::FROM_TO: { if(range_.arg2->isConstant()) { Numeric::Ptr num = (Numeric*)range_.arg1->createResult(ftcontext->context)->next(ftcontext->context).get(); Numeric::Ptr num2 = (Numeric*)range_.arg2->createResult(ftcontext->context)->next(ftcontext->context).get(); FTSelection *result = new (mm) FTDistanceLiteral(arg_, FTRange::FROM_TO, num->asInt(), num2->asInt(), unit_, mm); result->setLocationInfo(this); return result->optimize(ftcontext); } } } } FTSelection *newarg = arg_->optimize(ftcontext); if(newarg == 0) return 0; if(newarg->getType() == WORD) { return newarg; } newarg = new (mm) FTDistance(range_, unit_, newarg, mm); newarg->setLocationInfo(this); return newarg; } AllMatches *FTDistance::execute(FTContext *ftcontext) const { Numeric::Ptr num = (Numeric*)range_.arg1->createResult(ftcontext->context)->next(ftcontext->context).get(); switch(range_.type) { case FTRange::EXACTLY: { return new FTDistanceExactlyMatches(this, num->asInt(), unit_, arg_->execute(ftcontext)); } case FTRange::AT_LEAST: { return new FTDistanceAtLeastMatches(this, num->asInt(), unit_, arg_->execute(ftcontext)); } case FTRange::AT_MOST: { return new FTDistanceAtMostMatches(this, num->asInt(), unit_, arg_->execute(ftcontext)); } case FTRange::FROM_TO: { Numeric::Ptr num2 = (Numeric*)range_.arg2->createResult(ftcontext->context)->next(ftcontext->context).get(); return new FTDistanceFromToMatches(this, num->asInt(), num2->asInt(), unit_, arg_->execute(ftcontext)); } } return 0; } //////////////////////////////////////////////////////////////////////////////////////////////////// FTSelection *FTDistanceLiteral::staticResolution(StaticContext *context) { arg_ = arg_->staticResolution(context); return this; } FTSelection *FTDistanceLiteral::staticTypingImpl(StaticContext *context) { src_.clear(); src_.add(arg_->getStaticAnalysis()); return this; } FTSelection *FTDistanceLiteral::optimize(FTContext *ftcontext) const { XPath2MemoryManager *mm = ftcontext->context->getMemoryManager(); FTSelection *newarg = arg_->optimize(ftcontext); if(newarg == 0) return 0; if(newarg->getType() == WORD) { return newarg; } newarg = new (mm) FTDistanceLiteral(newarg, type_, distance_, distance2_, unit_, mm); newarg->setLocationInfo(this); return newarg; } AllMatches *FTDistanceLiteral::execute(FTContext *ftcontext) const { switch(type_) { case FTRange::EXACTLY: { return new FTDistanceExactlyMatches(this, distance_, unit_, arg_->execute(ftcontext)); } case FTRange::AT_LEAST: { return new FTDistanceAtLeastMatches(this, distance_, unit_, arg_->execute(ftcontext)); } case FTRange::AT_MOST: { return new FTDistanceAtMostMatches(this, distance_, unit_, arg_->execute(ftcontext)); } case FTRange::FROM_TO: { return new FTDistanceFromToMatches(this, distance_, distance2_, unit_, arg_->execute(ftcontext)); } } return 0; } //////////////////////////////////////////////////////////////////////////////////////////////////// static bool lessThanCompareFn(const StringMatch &first, const StringMatch &second) { return first.tokenInfo.position_ < second.tokenInfo.position_; } FTDistanceMatches::~FTDistanceMatches() { delete arg_; } bool FTDistanceMatches::next(DynamicContext *context) { excludes_.clear(); if(!arg_) return false; bool found = arg_->next(context); if (!found) { delete arg_; arg_ = 0; return false; } while(found) { found = false; if(arg_->getStringIncludes().size() > 1) { StringMatches sMatches = arg_->getStringIncludes(); std::sort(sMatches.begin(), sMatches.end(), lessThanCompareFn); StringMatches::iterator end = sMatches.end(); StringMatches::iterator a = sMatches.begin(); StringMatches::iterator b = a; ++b; for(; b != end; ++a, ++b) { unsigned int actual = FTOption::tokenDistance(a->tokenInfo, b->tokenInfo, unit_); if(!distanceMatches(actual)) { found = arg_->next(context); if (!found) { delete arg_; arg_ = 0; return false; } break; } } } } return true; } const StringMatches &FTDistanceMatches::getStringIncludes() { assert(arg_); return arg_->getStringIncludes(); } const StringMatches &FTDistanceMatches::getStringExcludes() { if (arg_ && !excludes_.empty()) { for(StringMatches::const_iterator i = arg_->getStringExcludes().begin(); i != arg_->getStringExcludes().end(); ++i) { for(StringMatches::const_iterator j = arg_->getStringIncludes().begin(); j != arg_->getStringIncludes().end(); ++j) { unsigned int actual = FTOption::tokenDistance(i->tokenInfo, j->tokenInfo, unit_); if(distanceMatches(actual)) { excludes_.push_back(*i); break; } } } } return excludes_; } bool FTDistanceExactlyMatches::distanceMatches(unsigned int actual) const { return actual == distance_; } bool FTDistanceAtLeastMatches::distanceMatches(unsigned int actual) const { return actual >= distance_; } bool FTDistanceAtMostMatches::distanceMatches(unsigned int actual) const { return actual <= distance_; } bool FTDistanceFromToMatches::distanceMatches(unsigned int actual) const { return distance_ <= actual && actual <= distance2_; } XQilla-2.3.0/src/runtime/0000755000151400015140000000000011653572443012167 500000000000000XQilla-2.3.0/src/runtime/ClosureResult.cpp0000644000151400015140000000700011653565523015424 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include using namespace std; class LazyCreateResult : public ResultImpl { public: LazyCreateResult(const ASTNode *ast) : ResultImpl(ast), ast_(ast) {} virtual Item::Ptr nextOrTail(Result &tail, DynamicContext *context) { tail = ast_->createResult(context); return 0; } private: const ASTNode *ast_; }; Result ClosureResult::create(const StaticAnalysis &src, DynamicContext *context, ResultImpl *result) { // TBD We probably need to store the regex groups here too - jpcs if(!src.isVariableUsed() && !src.areContextFlagsUsed()) return result; return new ClosureResult(src, context, result); } Result ClosureResult::create(const ASTNode *ast, DynamicContext *context) { return create(ast->getStaticAnalysis(), context, new LazyCreateResult(ast)); } ClosureResult::ClosureResult(const StaticAnalysis &src, DynamicContext *context, ResultImpl *result) : ResultImpl(result), contextItem_(context->getContextItem()), contextPosition_(context->getContextPosition()), contextSize_(context->getContextSize()), varStore_(context->getMemoryManager()), result_(result) { // Copy the variables we need into our local storage varStore_.cacheVariableStore(src, context->getVariableStore()); } Item::Ptr ClosureResult::nextOrTail(Result &tail, DynamicContext *context) { context->testInterrupt(); // TBD Fix the DocumentCache/module import problem - jpcs // AutoDocumentCacheReset dcReset(context); // context->setDocumentCache(docCache_); AutoContextInfoReset ciReset(context, contextItem_, contextPosition_, contextSize_); AutoVariableStoreReset vsReset(context, &varStore_); return result_->nextOrTail(tail, context); } ClosureEventGenerator::ClosureEventGenerator(const ASTNode *ast, DynamicContext *context, bool preserveNS, bool preserveType) : ASTNodeEventGenerator(ast, preserveNS, preserveType), contextItem_(context->getContextItem()), contextPosition_(context->getContextPosition()), contextSize_(context->getContextSize()), varStore_(context->getMemoryManager()) { // Copy the variables we need into our local storage varStore_.cacheVariableStore(ast->getStaticAnalysis(), context->getVariableStore()); } EventGenerator::Ptr ClosureEventGenerator::generateEvents(EventHandler *events, DynamicContext *context) { context->testInterrupt(); // AutoDocumentCacheReset dcReset(context); // context->setDocumentCache(docCache_); AutoContextInfoReset ciReset(context, contextItem_, contextPosition_, contextSize_); AutoVariableStoreReset vsReset(context, &varStore_); return ast_->generateEvents(events, context, preserveNS_, preserveType_); } XQilla-2.3.0/src/runtime/EmptyResult.cpp0000644000151400015140000000252611653565523015116 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include EmptyResult::EmptyResult(const LocationInfo *o) : ResultImpl(o) { } Item::Ptr EmptyResult::next(DynamicContext *context) { return 0; } Sequence EmptyResult::toSequence(DynamicContext *context) { return Sequence(context->getMemoryManager()); } void EmptyResult::toResultBuffer(unsigned int readCount, ResultBuffer &buffer) { } void EmptyResult::skip(unsigned count, DynamicContext *context) { } XQilla-2.3.0/src/runtime/Sequence.cpp0000644000151400015140000001355011653565523014370 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include "../exceptions/MiscException.hpp" #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif Sequence::Sequence(MemoryManager* memMgr) : _itemList(XQillaAllocator(memMgr)) { } Sequence::~Sequence() { //no-op } Sequence::Sequence(const Item::Ptr &item, MemoryManager* memMgr) : _itemList(XQillaAllocator(memMgr)) { if(item.notNull()) { addItem(item); } } Sequence::Sequence(const Sequence &s) : _itemList(s._itemList) { } Sequence::Sequence(const Sequence &s, MemoryManager* memMgr) : _itemList(XQillaAllocator(memMgr)) { joinSequence(s); } Sequence::Sequence(size_t n, MemoryManager* memMgr) : _itemList(XQillaAllocator(memMgr)) { _itemList.reserve(n); } Sequence::Sequence(const Sequence&s, size_t start, MemoryManager* memMgr) : _itemList(XQillaAllocator(memMgr)) { size_t end = s._itemList.size(); if(end > start) { _itemList.reserve(end - start); while(end > start) { _itemList.push_back(s._itemList[start]); ++start; } } } Sequence & Sequence::operator=(const Sequence & s) { if( this != &s ) { // no self-assignment _itemList = s._itemList; } return *this; } void Sequence::addItemFront(const Item::Ptr &item) { //This is a hack since the redhat 6.2 deque warns with push_front _itemList.insert(_itemList.begin(), item); } // returns the first item in the Sequence, or null if it is empty const Item::Ptr &Sequence::first() const { assert(!isEmpty()); // should not be asking for elements if the list is empty return _itemList[0]; } // returns the second item in the Sequence, or null if it is empty const Item::Ptr &Sequence::second() const { assert(!isEmpty()); // should not be asking for elements if the list is empty return _itemList[1]; } // might return NULL const Item::Ptr &Sequence::item(size_t index) const { return _itemList[index]; } const Item::Ptr &Sequence::item(const ATDecimalOrDerived::Ptr &index) const { if(index->isNegative()) { XQThrow2(MiscException,X("Sequence:item"),X("Index less than zero")); } return item(NumUtils::MAPMtoInt(((const ATDecimalOrDerived*)index)->asMAPM())); } void Sequence::clear(void) { _itemList.clear(); } Sequence::iterator Sequence::begin(void) { return _itemList.begin(); } Sequence::iterator Sequence::end(void) { return _itemList.end(); } Sequence::const_iterator Sequence::begin(void) const { return _itemList.begin(); } Sequence::const_iterator Sequence::end(void) const { return _itemList.end(); } Sequence::reverse_iterator Sequence::rbegin(void) { return _itemList.rbegin(); } Sequence::reverse_iterator Sequence::rend(void) { return _itemList.rend(); } Sequence::const_reverse_iterator Sequence::rbegin(void) const { return _itemList.rbegin(); } Sequence::const_reverse_iterator Sequence::rend(void) const { return _itemList.rend(); } size_t Sequence::getLength(void) const { return _itemList.size(); } void Sequence::addItem(const Item::Ptr &item) { _itemList.push_back(item); } void Sequence::joinSequence(const Sequence & s) { _itemList.insert(_itemList.end(),s._itemList.begin(),s._itemList.end()); } bool Sequence::isEmpty() const { return _itemList.empty(); } class lessThanCompareFn { public: lessThanCompareFn(const DynamicContext *context) : context_(context) {} bool operator()(const Item::Ptr &first, const Item::Ptr &second) { return ((const Node*)first.get())->lessThan((const Node::Ptr)second, context_); } private: const DynamicContext *context_; }; bool equalCompareFn(const Item::Ptr &first, const Item::Ptr &second) { return ((const Node*)first.get())->equals((const Node*)second.get()); } void Sequence::sortIntoDocumentOrder(const DynamicContext *context) { // REVISIT: we should ensure that the sequence is made only of nodes, but for performance reason // we just check the first item. // Note that it is OK that we are asked to sort a sequence made of atomic values, as a path expression // can now return it, so we should not complain if(isEmpty() || !first()->isNode()) return; // Sort std::sort(_itemList.begin(), _itemList.end(), lessThanCompareFn(context)); // Remove the duplicates _itemList.erase(std::unique(_itemList.begin(), _itemList.end(), equalCompareFn), _itemList.end()); } struct CollationCompare { CollationCompare(const Collation *collation, const DynamicContext *context) : _collation(collation), _context(context) {} bool operator()(const Item::Ptr arg1, const Item::Ptr arg2) const { const XMLCh* s1 = arg1->asString(_context); const XMLCh* s2 = arg2->asString(_context); return (_collation->compare(s1,s2) == -1); } const Collation *_collation; const DynamicContext *_context; }; void Sequence::sortWithCollation(const Collation *collation, const DynamicContext *context) { std::sort(_itemList.begin(), _itemList.end(), CollationCompare(collation, context)); } XQilla-2.3.0/src/runtime/Result.cpp0000644000151400015140000000454111653565523014076 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include EmptyResult Result::_empty(0); class ItemResult : public ResultImpl { public: ItemResult(const Item::Ptr &item) : ResultImpl(0), item_(item) { } virtual Item::Ptr nextOrTail(Result &tail, DynamicContext *context) { Item::Ptr item = item_; tail = 0; return item; } private: Item::Ptr item_; }; Result::Result(const Item::Ptr &item) : _impl(new ItemResult(item)) { _impl->setResultPointer(this); } Result::Result(const Sequence &seq) : _impl(new SequenceResult(0, seq)) { _impl->setResultPointer(this); } Result::Result(ResultImpl *impl) : _impl(impl) { if(_impl) { if(_impl->getResultPointer()) { _impl->getResultPointer()->_impl = 0; } _impl->setResultPointer(this); } } Result::Result(const Result &o) : _impl(o._impl) { if(_impl) { _impl->setResultPointer(this); const_cast(o)._impl = 0; } } Result &Result::operator=(const Result &o) { if(o._impl != _impl) { ResultImpl *tmp = _impl; _impl = o._impl; if(_impl) { _impl->setResultPointer(this); const_cast(o)._impl = 0; } delete tmp; } return *this; } Result::~Result() { delete _impl; } EmptyResult* Result::getEmpty() const { return &_empty; } XQilla-2.3.0/src/runtime/ResultBufferImpl.cpp0000644000151400015140000000561611653565523016056 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include const unsigned int ResultBufferImpl::UNLIMITED_COUNT = (unsigned int)-1; ResultBufferImpl::ResultBufferImpl(const Result &result, unsigned int readCount) : _result(result), _readCount(0), _maxReadCount(readCount) { // Do nothing } ResultBufferImpl::ResultBufferImpl(const Item::Ptr &item, unsigned int readCount) : _result(0), _readCount(0), _maxReadCount(readCount) { _items.push_back(item); } ResultBufferImpl::~ResultBufferImpl() { // Do nothing } void ResultBufferImpl::increaseMaxReadCount(unsigned int readCount) { if(_maxReadCount == UNLIMITED_COUNT || readCount == UNLIMITED_COUNT) _maxReadCount = UNLIMITED_COUNT; else _maxReadCount += readCount; } Item::Ptr ResultBufferImpl::item(unsigned int index, DynamicContext *context) { while(!_result.isNull() && index >= _items.size()) { const Item::Ptr item = _result->next(context); if(item.isNull()) { _result = 0; } else { _items.push_back(item); } } if(index >= _items.size()) { return 0; } else { return _items[index]; } } class BufferedResult : public ResultImpl { public: BufferedResult(ResultBufferImpl *impl, unsigned start) : ResultImpl(0), _impl(impl), _pos(start) {} virtual Item::Ptr nextOrTail(Result &tail, DynamicContext *context) { if(_impl->getRefCount() == 1 && _pos >= _impl->_items.size()) { // Ditch the buffer if we're the only result for it _impl->_result->skip(_pos - _impl->_items.size(), context); tail = _impl->_result; return 0; } Item::Ptr item = _impl->item(_pos++, context); if(item.isNull()) { tail = 0; } return item; } virtual void toResultBuffer(unsigned int readCount, ResultBuffer &buffer) { _impl->increaseMaxReadCount(readCount); buffer = ResultBuffer(_impl.get(), _pos); } virtual void skip(unsigned count, DynamicContext *context) { _pos += count; } private: ResultBufferImpl::Ptr _impl; unsigned int _pos; }; Result ResultBufferImpl::createResult(unsigned start) { return new BufferedResult(this, start); } XQilla-2.3.0/src/runtime/ResultImpl.cpp0000644000151400015140000000502511653565523014716 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include ResultImpl::ResultImpl(const LocationInfo *o) : resultPointer_(0) { setLocationInfo(o); } Item::Ptr ResultImpl::next(DynamicContext *context) { // Store resultPointer_ locally, as "this" may get deleted Result &resultPointer = *resultPointer_; Item::Ptr item; do { item = resultPointer->nextOrTail(resultPointer, context); } while(item.isNull() && !resultPointer.isNull()); return item; } Item::Ptr ResultImpl::nextOrTail(Result &tail, DynamicContext *context) { Item::Ptr item = next(context); if(item.isNull()) { tail = 0; } return item; } Sequence ResultImpl::toSequence(DynamicContext *context) { // Control our own scoped pointer Result me(this); Sequence result(context->getMemoryManager()); Item::Ptr item = 0; while((item = me->next(context)).notNull()) { result.addItem(item); } return result; } void ResultImpl::toResultBuffer(unsigned int readCount, ResultBuffer &buffer) { // Control our own scoped pointer Result me(this); buffer = ResultBuffer(new ResultBufferImpl(me, readCount)); } void ResultImpl::skip(unsigned count, DynamicContext *context) { // Store resultPointer_ locally, as "this" may get deleted Result &resultPointer = *resultPointer_; Item::Ptr item; while(count > 0) { do { if(resultPointer.isNull()) return; item = resultPointer->nextOrTail(resultPointer, context); } while(item.isNull()); --count; } } XQilla-2.3.0/src/runtime/ResultBuffer.cpp0000644000151400015140000000331711653565523015230 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include ResultBuffer::ResultBuffer(const Result &result, unsigned int readCount) : _impl(0), _start(0) { const_cast(result.get())->toResultBuffer(readCount,*this); } ResultBuffer::ResultBuffer(const Item::Ptr &item, unsigned int readCount) : _impl(new ResultBufferImpl(item, readCount)), _start(0) { } ResultBuffer::ResultBuffer(ResultBufferImpl *impl, unsigned start) : _impl(impl), _start(start) { } Result ResultBuffer::createResult() { if(_impl.isNull()) return 0; Result result = _impl->createResult(_start); if(_impl->getMaxReadCount() != ResultBufferImpl::UNLIMITED_COUNT && _impl->incrementReadCount() >= _impl->getMaxReadCount()) { // We've reached the maximum read count, so noone // else will want to read from this ResultBuffer _impl = 0; } return result; } XQilla-2.3.0/src/runtime/SequenceResult.cpp0000644000151400015140000000257211653565523015571 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include SequenceResult::SequenceResult(const LocationInfo *o, const Sequence &seq) : ResultImpl(o), seq_(seq), i_(0) { } Item::Ptr SequenceResult::nextOrTail(Result &tail, DynamicContext *context) { if(i_ >= seq_._itemList.size()) { tail = 0; return 0; } return seq_._itemList[i_++]; } Sequence SequenceResult::toSequence(DynamicContext *context) { return Sequence(seq_, i_); } void SequenceResult::skip(unsigned count, DynamicContext *context) { i_ += count; } XQilla-2.3.0/src/ast/0000755000151400015140000000000011653572442011272 500000000000000XQilla-2.3.0/src/ast/XQDOMConstructor.cpp0000644000151400015140000002445511653565523015070 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif XQDOMConstructor::XQDOMConstructor(XPath2MemoryManager* mm) : ASTNodeImpl(DOM_CONSTRUCTOR, mm), queryPathTree_(0) { } Result XQDOMConstructor::createResult(DynamicContext* context, int flags) const { return EventGenerator::createResult(this, queryPathTree_, context); } bool XQDOMConstructor::getStringValue(const VectorOfASTNodes* m_children, XMLBuffer &value, DynamicContext *context) { bool bSomethingFound=false; for(VectorOfASTNodes::const_iterator itCont = m_children->begin(); itCont != m_children->end (); ++itCont) { if(getStringValue(*itCont, value, context)) bSomethingFound = true; } return bSomethingFound; } bool XQDOMConstructor::getStringValue(const ASTNode *child, XMLBuffer &value, DynamicContext *context) { bool bSomethingFound=false; Result childList = child->createResult(context); Item::Ptr item; bool addSpace = false; while((item = childList->next(context)) != NULLRCP) { if(addSpace) value.append(' '); else addSpace = true; value.append(item->asString(context)); bSomethingFound=true; } return bSomethingFound; } //////////////////////////////////////////////////////////////////////////////////////////////////// XQContentSequence::XQContentSequence(ASTNode *expr, XPath2MemoryManager* mm) : ASTNodeImpl(CONTENT_SEQUENCE, mm), expr_(expr) { } ASTNode* XQContentSequence::staticResolution(StaticContext *context) { expr_ = expr_->staticResolution(context); return this; } ASTNode *XQContentSequence::staticTypingImpl(StaticContext *context) { _src.clear(); _src.copy(expr_->getStaticAnalysis()); if(!expr_->getStaticAnalysis().getStaticType().containsType(StaticType::DOCUMENT_TYPE|StaticType::ANY_ATOMIC_TYPE)) { ASTNode *pChild = expr_; // Not needed if the wrapped expression is a DOM_CONSTRUCTOR if(pChild->getType() == ASTNode::DOM_CONSTRUCTOR || (pChild->getType() == ASTNode::NAMESPACE_BINDING && ((XQNamespaceBinding*)pChild)->getExpression()->getType() == ASTNode::DOM_CONSTRUCTOR)) { return expr_; } } _src.getStaticType().substitute(StaticType::ANY_ATOMIC_TYPE, StaticType::TEXT_TYPE); _src.getStaticType().substitute(StaticType::DOCUMENT_TYPE, StaticType(StaticType::ELEMENT_TYPE | StaticType::TEXT_TYPE | StaticType::PI_TYPE | StaticType::COMMENT_TYPE, 0, StaticType::UNLIMITED)); _src.creative(true); return this; } Result XQContentSequence::createResult(DynamicContext* context, int flags) const { return EventGenerator::createResult(this, 0, context); } EventGenerator::Ptr XQContentSequence::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { preserveNS = context->getPreserveNamespaces(); preserveType = context->getConstructionMode() == StaticContext::CONSTRUCTION_MODE_PRESERVE; if(!expr_->getStaticAnalysis().getStaticType().containsType(StaticType::DOCUMENT_TYPE|StaticType::ANY_ATOMIC_TYPE)) { return new ClosureEventGenerator(expr_, context, preserveNS, preserveType); } ContentSequenceFilter filter(events); expr_->generateAndTailCall(&filter, context, preserveNS, preserveType); return 0; } //////////////////////////////////////////////////////////////////////////////////////////////////// XQDirectName::XQDirectName(const XMLCh *qname, bool useDefaultNamespace, XPath2MemoryManager* mm) : ASTNodeImpl(DIRECT_NAME, mm), qname_(qname), useDefaultNamespace_(useDefaultNamespace) { } ASTNode *XQDirectName::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); const XMLCh* prefix = XPath2NSUtils::getPrefix(qname_, context->getMemoryManager()); const XMLCh* uri = 0; if(prefix == 0 || *prefix == 0) { // If qname has no prefix if(useDefaultNamespace_) uri = context->getDefaultElementAndTypeNS(); } else { // If qname has a prefix uri = context->getUriBoundToPrefix(prefix, this); } return (new (mm) XQQNameLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_QNAME, uri, prefix, XPath2NSUtils::getLocalName(qname_), mm))->staticResolution(context); } ASTNode *XQDirectName::staticTypingImpl(StaticContext *context) { // Never happens return this; } Result XQDirectName::createResult(DynamicContext* context, int flags) const { // Never happens return 0; } //////////////////////////////////////////////////////////////////////////////////////////////////// XQNameExpression::XQNameExpression(ASTNode *expr, XPath2MemoryManager* mm) : ASTNodeImpl(NAME_EXPRESSION, mm), expr_(expr) { } ASTNode* XQNameExpression::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); expr_ = new (mm) XQAtomize(expr_, mm); expr_->setLocationInfo(this); SequenceType *seqType = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_ANYTHING), SequenceType::EXACTLY_ONE); seqType->setLocationInfo(this); expr_ = new (mm) XQTreatAs(expr_, seqType, mm); expr_->setLocationInfo(this); expr_ = expr_->staticResolution(context); return this; } ASTNode *XQNameExpression::staticTypingImpl(StaticContext *context) { _src.clear(); _src.getStaticType() = StaticType::QNAME_TYPE; _src.add(expr_->getStaticAnalysis()); if(expr_->getStaticAnalysis().getStaticType().isType(StaticType::QNAME_TYPE)) { return expr_; } if(!expr_->getStaticAnalysis().getStaticType(). containsType(StaticType::QNAME_TYPE|StaticType::STRING_TYPE|StaticType::UNTYPED_ATOMIC_TYPE)) { XMLBuffer buf; buf.set(X("The name expression must be a single xs:QName, xs:string or xs:untypedAtomic")); buf.append(X(" - the expression has a static type of ")); expr_->getStaticAnalysis().getStaticType().typeToBuf(buf); buf.append(X(" [err:XPTY0004]")); XQThrow(XPath2TypeMatchException, X("XQNameExpression::staticTyping"), buf.getRawBuffer()); } return this; } Result XQNameExpression::createResult(DynamicContext* context, int flags) const { AnyAtomicType::Ptr itemName = getExpression()->createResult(context)->next(context); switch(itemName->getPrimitiveTypeIndex()) { case AnyAtomicType::QNAME: return (Item::Ptr)itemName; case AnyAtomicType::STRING: case AnyAtomicType::UNTYPED_ATOMIC: try { return (Item::Ptr)context->getItemFactory()->createDerivedFromAtomicType(AnyAtomicType::QNAME, itemName->asString(context), context); } catch(XQException &ex) { XQThrow(ASTException,X("XQNameExpression::NameExpressionResult::createResult"), X("The name expression cannot be converted to a xs:QName [err:XQDY0074]")); } default: break; } XMLBuffer buf; buf.set(X("The name expression must be a single xs:QName, xs:string or xs:untypedAtomic")); buf.append(X(" - found item of type ")); itemName->typeToBuffer(context, buf); buf.append(X(" [err:XPTY0004]")); XQThrow(XPath2TypeMatchException, X("XQNameExpression::NameExpressionResult::createResult"), buf.getRawBuffer()); } //////////////////////////////////////////////////////////////////////////////////////////////////// XQSimpleContent::XQSimpleContent(VectorOfASTNodes *children, XPath2MemoryManager* mm) : ASTNodeImpl(SIMPLE_CONTENT, mm), children_(children) { } ASTNode* XQSimpleContent::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); unsigned int i; for(i = 0;i < children_->size(); ++i) { // atomize content and run static resolution (*children_)[i] = new (mm) XQAtomize((*children_)[i], mm); (*children_)[i]->setLocationInfo(this); (*children_)[i] = (*children_)[i]->staticResolution(context); } return this; } ASTNode *XQSimpleContent::staticTypingImpl(StaticContext *context) { _src.clear(); bool constant = true; unsigned int i; for(i = 0; i < children_->size(); ++i) { _src.add((*children_)[i]->getStaticAnalysis()); if((*children_)[i]->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("XQSimpleContent::staticTyping"), X("It is a static error for the a value expression of an attribute constructor " "to be an updating expression [err:XUST0001]")); } if(!(*children_)[i]->isConstant()) constant = false; } _src.getStaticType() = StaticType::STRING_TYPE; return this; } Result XQSimpleContent::createResult(DynamicContext* context, int flags) const { // TBD separator - jpcs XMLBuffer value; XQDOMConstructor::getStringValue(getChildren(), value, context); return (Item::Ptr)context->getItemFactory()->createString(value.getRawBuffer(), context); } XQilla-2.3.0/src/ast/XQPIConstructor.cpp0000644000151400015140000001356711653565523014763 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif XQPIConstructor::XQPIConstructor(ASTNode* name, ASTNode* value, XPath2MemoryManager* mm, bool xslt) : XQDOMConstructor(mm), m_name(name), m_value(value), xslt_(xslt) { } static bool checkString(const XMLCh *str) { // Check for the substring "?>" bool foundQ = false; const XMLCh *ptr = str; while(*ptr != 0) { if(*ptr == chCloseAngle && foundQ) return false; else if(*ptr == chQuestion) foundQ = true; else foundQ = false; ++ptr; } return true; } EventGenerator::Ptr XQPIConstructor::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { Result resName = m_name->createResult(context); AnyAtomicType::Ptr itemName = resName->next(context); if(itemName.isNull() || resName->next(context).notNull()) XQThrow(ASTException,X("DOM Constructor"),X("The target for the processing instruction must be a single " "xs:NCName, xs:string or xs:untypedAtomic item [err:XPTY0004]")); const XMLCh* nodeName = NULL; // the specs specify that a xs:NCName could be returned, but we create a xs:string in that case if(itemName->getPrimitiveTypeIndex() == AnyAtomicType::STRING || itemName->getPrimitiveTypeIndex() == AnyAtomicType::UNTYPED_ATOMIC) { nodeName = itemName->asString(context); if(!XMLChar1_0::isValidNCName(nodeName, XMLString::stringLen(nodeName))) XQThrow(ASTException,X("DOM Constructor"), X("The target for the processing instruction must be a valid xs:NCName [err:XQDY0041]")); } else XQThrow(ASTException,X("DOM Constructor"),X("The target for the processing instruction must be a single " "xs:NCName, xs:string or xs:untypedAtomic item [err:XPTY0004]")); if(XMLString::compareIString(nodeName, XMLUni::fgXMLString) == 0) XQThrow(ASTException,X("DOM Constructor"), X("The target for the processing instruction must not be 'XML' [err:XQDY0064]")); if(!checkString(nodeName)) { XQThrow(ASTException,X("DOM Constructor"), X("The target for the processing instruction must not contain the string '?>' [err:XQDY0026]")); } if(nodeName == NULL || *nodeName == 0) XQThrow(ASTException,X("DOM Constructor"),X("The name for the processing instruction is empty")); XMLBuffer value; getStringValue(m_value, value, context); if(!checkString(value.getRawBuffer())) { XQThrow(ASTException,X("DOM Constructor"), X("The content for the processing instruction must not contain the string '?>' [err:XQDY0026]")); } const XMLCh* piContent = value.getRawBuffer(); // remove leading whitespace while(XMLChar1_0::isWhitespace(*piContent)) piContent++; events->piEvent(nodeName, piContent); return 0; } ASTNode* XQPIConstructor::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); m_name = new (mm) XQAtomize(m_name, mm); m_name->setLocationInfo(this); m_name = m_name->staticResolution(context); m_value = new (mm) XQAtomize(m_value, mm); m_value->setLocationInfo(this); m_value = m_value->staticResolution(context); return this; } ASTNode *XQPIConstructor::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(m_name->getStaticAnalysis()); if(m_name->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("XQPIConstructor::staticTyping"), X("It is a static error for the name expression of a processing instruction node constructor " "to be an updating expression [err:XUST0001]")); } _src.add(m_value->getStaticAnalysis()); if(m_value->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("XQPIConstructor::staticTyping"), X("It is a static error for the value expression of a processing instruction node constructor " "to be an updating expression [err:XUST0001]")); } _src.getStaticType() = StaticType::PI_TYPE; _src.creative(true); _src.setProperties(StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::PEER | StaticAnalysis::SUBTREE | StaticAnalysis::SAMEDOC | StaticAnalysis::ONENODE); return this; } const XMLCh* XQPIConstructor::getNodeType() const { return Node::processing_instruction_string; } ASTNode *XQPIConstructor::getName() const { return m_name; } ASTNode *XQPIConstructor::getValue() const { return m_value; } void XQPIConstructor::setName(ASTNode *name) { m_name = name; } void XQPIConstructor::setValue(ASTNode *value) { m_value = value; } XQilla-2.3.0/src/ast/XQFunctionRef.cpp0000644000151400015140000000561011653565523014415 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #include "../items/impl/FunctionRefImpl.hpp" XERCES_CPP_NAMESPACE_USE; using namespace std; XQFunctionRef::XQFunctionRef(const XMLCh *qname, unsigned int numArgs, XPath2MemoryManager *mm) : ASTNodeImpl(FUNCTION_REF, mm), qname_(qname), numArgs_(numArgs) { } ASTNode *XQFunctionRef::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); const XMLCh *prefix = XPath2NSUtils::getPrefix(qname_, mm); const XMLCh *name = XPath2NSUtils::getLocalName(qname_); const XMLCh *uri; if(prefix == 0 || *prefix == 0) { uri = context->getDefaultFuncNS(); } else { uri = context->getUriBoundToPrefix(prefix, this); } FunctionSignature *signature = 0; ASTNode *instance = FunctionRefImpl::createInstance(uri, name, numArgs_, context, this, signature); if(instance == 0) { XMLBuffer buf; buf.set(X("A function called {")); buf.append(uri); buf.append(X("}")); buf.append(name); buf.append(X(" with ")); XPath2Utils::numToBuf(numArgs_, buf); buf.append(X(" arguments is not defined [err:XPST0017]")); XQThrow(StaticErrorException, X("XQFunctionRef::staticResolution"), buf.getRawBuffer()); } instance = instance->staticResolution(context); ASTNode *result = new (mm) XQInlineFunction(0, prefix, uri, name, numArgs_, signature, instance, mm); result->setLocationInfo(result); this->release(); return result; // Don't call staticResolution() on result } ASTNode *XQFunctionRef::staticTypingImpl(StaticContext *context) { // Should never happen assert(false); return this; } Result XQFunctionRef::createResult(DynamicContext *context, int flags) const { // Should never happen assert(false); return 0; } XQilla-2.3.0/src/ast/XQAtomize.cpp0000644000151400015140000001066211653565523013606 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE XQAtomize::XQAtomize(ASTNode* expr, XPath2MemoryManager* memMgr) : ASTNodeImpl(ATOMIZE, memMgr), expr_(expr), doPSVI_(true) { } XQAtomize::XQAtomize(ASTNode* expr, bool doPSVI, XPath2MemoryManager* memMgr) : ASTNodeImpl(ATOMIZE, memMgr), expr_(expr), doPSVI_(doPSVI) { } ASTNode* XQAtomize::staticResolution(StaticContext *context) { expr_ = expr_->staticResolution(context); doPSVI_ = context->getDocumentCache()->getDoPSVI(); return this; } ASTNode *XQAtomize::staticTypingImpl(StaticContext *context) { _src.clear(); _src.getStaticType() = expr_->getStaticAnalysis().getStaticType(); _src.add(expr_->getStaticAnalysis()); if(expr_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("XQAtomize::staticTyping"), X("It is a static error for an atomized expression " "to be an updating expression [err:XUST0001]")); } if(_src.getStaticType().isType(StaticType::FUNCTION_TYPE) && _src.getStaticType().getMin() > 0) { XMLBuffer buf; buf.set(X("Sequence does not match type (xs:anyAtomicType | node())*")); buf.append(X(" - the expression has a static type of ")); _src.getStaticType().typeToBuf(buf); buf.append(X(" [err:XPTY0004]")); XQThrow(XPath2TypeMatchException, X("XQAtomize::staticTyping"), buf.getRawBuffer()); } if(!_src.getStaticType().containsType(StaticType::NODE_TYPE|StaticType::FUNCTION_TYPE)) { // If the expression has no nodes, this function does nothing return substitute(expr_); } if(doPSVI_) { _src.getStaticType().substitute(StaticType::ELEMENT_TYPE | StaticType::ATTRIBUTE_TYPE, StaticType(StaticType::ANY_ATOMIC_TYPE, 0, StaticType::UNLIMITED)); } else { _src.getStaticType().substitute(StaticType::ELEMENT_TYPE | StaticType::ATTRIBUTE_TYPE, StaticType::UNTYPED_ATOMIC_TYPE); } _src.getStaticType().substitute(StaticType::DOCUMENT_TYPE | StaticType::TEXT_TYPE, StaticType::UNTYPED_ATOMIC_TYPE); _src.getStaticType().substitute(StaticType::NAMESPACE_TYPE | StaticType::COMMENT_TYPE | StaticType::PI_TYPE, StaticType::STRING_TYPE); // Remove function types _src.getStaticType() &= StaticType(StaticType::NODE_TYPE | StaticType::ANY_ATOMIC_TYPE, 0, StaticType::UNLIMITED); return this; } Result XQAtomize::createResult(DynamicContext* context, int flags) const { return new AtomizeResult(this, expr_->createResult(context, flags)); } Item::Ptr AtomizeResult::next(DynamicContext *context) { // for $item in (Expr) return // typeswitch ($item) // case $value as atomic value return $value // default $node return fn:data($node) Item::Ptr result = _sub->next(context); while(result.isNull()) { _sub = 0; result = _parent->next(context); if(result.isNull()) { _parent = 0; return 0; } if(result->isNode()) { _sub = ((Node*)result.get())->dmTypedValue(context); result = _sub->next(context); } else if(result->isFunction()) { XMLBuffer buf; buf.set(X("Sequence does not match type (xs:anyAtomicType | node())*")); buf.append(X(" - found item of type ")); result->typeToBuffer(context, buf); buf.append(X(" [err:XPTY0004]")); XQThrow(XPath2TypeMatchException, X("AtomizeResult::next"), buf.getRawBuffer()); } } return result; } XQilla-2.3.0/src/ast/XQFunctionCoercion.cpp0000644000151400015140000001452711653565523015451 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "../items/impl/FunctionRefImpl.hpp" #include XERCES_CPP_NAMESPACE_USE using namespace std; const XMLCh XQFunctionCoercion::funcVarName[] = { '#', 'f', 'u', 'n', 'c', 'V', 'a', 'r', 0 }; static const XMLCh argVarPrefix[] = { 'a', 'r', 'g', 0 }; XQFunctionCoercion::XQFunctionCoercion(ASTNode* expr, SequenceType* exprType, XPath2MemoryManager* memMgr) : ASTNodeImpl(FUNCTION_COERCION, memMgr), _expr(expr), _exprType(exprType), _funcConvert(0) { } XQFunctionCoercion::XQFunctionCoercion(ASTNode* expr, SequenceType *exprType, ASTNode *funcConvert, const StaticType &treatType, XPath2MemoryManager* memMgr) : ASTNodeImpl(FUNCTION_COERCION, memMgr), _expr(expr), _exprType(exprType), _funcConvert(funcConvert), _treatType(treatType) { } ASTNode* XQFunctionCoercion::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); _exprType->staticResolution(context); _expr = _expr->staticResolution(context); bool isExact; _exprType->getStaticType(_treatType, context, isExact, this); const SequenceType::ItemType *type = _exprType->getItemType(); if(!type || type->getItemTestType() != SequenceType::ItemType::TEST_FUNCTION || type->getReturnType() == 0) return substitute(_expr); // Construct an XQInlineFunction that will convert a function reference // stored in a variable to the correct type, and will throw type errors // if it isn't the correct type // Simultaneously create the XQInlineFunction parameter spec and the // XQFunctionDeref argument list ArgumentSpecs *paramList = new (mm) ArgumentSpecs(XQillaAllocator(mm)); VectorOfASTNodes *argList = new (mm) VectorOfASTNodes(XQillaAllocator(mm)); VectorOfSequenceTypes *argTypes = type->getArgumentTypes(); for(VectorOfSequenceTypes::iterator i = argTypes->begin(); i != argTypes->end(); ++i) { const XMLCh *argName = context->allocateTempVarName(argVarPrefix); ArgumentSpec *argSpec = new (mm) ArgumentSpec(argName, *i, mm); argSpec->setLocationInfo(*i); paramList->push_back(argSpec); XQVariable *argVar = new (mm) XQVariable(0, argName, mm); argVar->setLocationInfo(this); argList->push_back(argVar); } XQVariable *funcVar = new (mm) XQVariable(0, funcVarName, mm); funcVar->setLocationInfo(this); XQFunctionDeref *body = new (mm) XQFunctionDeref(funcVar, argList, mm); body->setLocationInfo(this); FunctionSignature *signature = new (mm) FunctionSignature(paramList, type->getReturnType(), mm); XQUserFunction *func = new (mm) XQUserFunction(0, signature, body, false, mm); func->setLocationInfo(this); _funcConvert = new (mm) XQInlineFunction(func, mm); _funcConvert->setLocationInfo(this); _funcConvert = _funcConvert->staticResolution(context); return this; } ASTNode *XQFunctionCoercion::staticTypingImpl(StaticContext *context) { _src.clear(); // Get a better static type by looking at our expression's type too _src.getStaticType() = _treatType; _src.getStaticType() &= _expr->getStaticAnalysis().getStaticType(); StaticType nonFunctionTypes = _expr->getStaticAnalysis().getStaticType(); nonFunctionTypes &= StaticType(StaticType::NODE_TYPE | StaticType::ANY_ATOMIC_TYPE, 0, StaticType::UNLIMITED); _src.getStaticType() |= nonFunctionTypes; _src.setProperties(_expr->getStaticAnalysis().getProperties()); _src.add(_expr->getStaticAnalysis()); if(!_expr->getStaticAnalysis().getStaticType().containsType(StaticType::FUNCTION_TYPE)) return substitute(_expr); return this; } class FunctionConversionResult : public ResultImpl { public: FunctionConversionResult(const Result &parent, const ASTNode *funcConvert, const SequenceType::ItemType *itemType, const LocationInfo *location) : ResultImpl(location), parent_(parent), funcConvert_(funcConvert), itemType_(itemType) { } virtual Item::Ptr next(DynamicContext *context) { Item::Ptr item = parent_->next(context); if(item.notNull() && item->isFunction() && !itemType_->matches((FunctionRef::Ptr)item, context)) { XPath2MemoryManager *mm = context->getMemoryManager(); VarStoreImpl scope(mm, context->getVariableStore()); scope.setVar(0, XQFunctionCoercion::funcVarName, item); AutoVariableStoreReset vsReset(context, &scope); // funcConvert_ only returns one item item = funcConvert_->createResult(context)->next(context); } return item; } string asString(DynamicContext *context, int indent) const { return ""; } private: Result parent_; const ASTNode *funcConvert_; const SequenceType::ItemType *itemType_; }; Result XQFunctionCoercion::createResult(DynamicContext* context, int flags) const { return new FunctionConversionResult(_expr->createResult(context), _funcConvert, _exprType->getItemType(), this); } XQilla-2.3.0/src/ast/XQLiteral.cpp0000644000151400015140000002430111653565523013565 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; ASTNode *XQLiteral::create(const Item::Ptr &item, DynamicContext *context, XPath2MemoryManager* memMgr, const LocationInfo *location) { if(item->isAtomicValue()) { ASTNode *result = 0; const AnyAtomicType *atom = (const AnyAtomicType*)item.get(); switch(atom->getPrimitiveTypeIndex()) { case AnyAtomicType::QNAME: { const ATQNameOrDerived *qname = (const ATQNameOrDerived*)atom; result = new (memMgr) XQQNameLiteral(atom->getTypeURI(), atom->getTypeName(), qname->getURI(), qname->getPrefix(), qname->getName(), memMgr); break; } case AnyAtomicType::DECIMAL: case AnyAtomicType::DOUBLE: case AnyAtomicType::FLOAT: { const Numeric *number = (const Numeric*)atom; if(number->getState() == Numeric::NUM || (number->getState() == Numeric::NEG_NUM && !number->isZero())) { result = new (memMgr) XQNumericLiteral(number->getTypeURI(), number->getTypeName(), number->asMAPM(), number->getPrimitiveTypeIndex(), memMgr); break; } // Fall through } default: result = new (memMgr) XQLiteral(atom->getTypeURI(), atom->getTypeName(), atom->asString(context), atom->getPrimitiveTypeIndex(), memMgr); break; } result->setLocationInfo(location); return result; } else { XQThrow2(::IllegalArgumentException, X("XQLiteral::create"), X("Cannot create an ASTNode literal for a non atomic item")); } } ASTNode *XQLiteral::create(bool value, XPath2MemoryManager* mm, const LocationInfo *location) { ASTNode *result = new (mm) XQLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_BOOLEAN, value ? SchemaSymbols::fgATTVAL_TRUE : SchemaSymbols::fgATTVAL_FALSE, AnyAtomicType::BOOLEAN, mm); result->setLocationInfo(location); return result; } XQLiteral::XQLiteral(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, AnyAtomicType::AtomicObjectType primitiveType, XPath2MemoryManager* memMgr) : ASTNodeImpl(LITERAL, memMgr), typeURI_(typeURI), typeName_(typeName), primitiveType_(primitiveType), value_(value) { _src.getStaticType() = StaticType::create(primitiveType_); } bool XQLiteral::isDateOrTimeAndHasNoTimezone(StaticContext *context) const { switch(primitiveType_) { case AnyAtomicType::DATE: case AnyAtomicType::DATE_TIME: case AnyAtomicType::TIME: case AnyAtomicType::G_DAY: case AnyAtomicType::G_MONTH: case AnyAtomicType::G_MONTH_DAY: case AnyAtomicType::G_YEAR: case AnyAtomicType::G_YEAR_MONTH: { if(context == 0) return true; AutoDelete dContext(context->createDynamicContext()); dContext->setMemoryManager(context->getMemoryManager()); Item::Ptr item = dContext->getItemFactory()->createDerivedFromAtomicType(primitiveType_, typeURI_, typeName_, value_, dContext); return !((const DateOrTimeType*)item.get())->hasTimezone(); } default: break; } return false; } ASTNode* XQLiteral::staticResolution(StaticContext *context) { switch(primitiveType_) { case AnyAtomicType::DECIMAL: case AnyAtomicType::FLOAT: case AnyAtomicType::DOUBLE: { // Constant fold, to parse numeric literals XPath2MemoryManager* mm = context->getMemoryManager(); AutoDelete dContext(context->createDynamicContext()); dContext->setMemoryManager(mm); Result result = createResult(dContext); ASTNode *newBlock = XQSequence::constantFold(result, dContext, mm, this); this->release(); return newBlock; } default: break; } return this; } ASTNode *XQLiteral::staticTypingImpl(StaticContext *context) { return this; } BoolResult XQLiteral::boolResult(DynamicContext* context) const { assert(primitiveType_ == AnyAtomicType::BOOLEAN); return XPath2Utils::equals(SchemaSymbols::fgATTVAL_TRUE, value_); } Result XQLiteral::createResult(DynamicContext* context, int flags) const { return (Item::Ptr)context->getItemFactory()->createDerivedFromAtomicType(primitiveType_, typeURI_, typeName_, value_, context).get(); } EventGenerator::Ptr XQLiteral::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { events->atomicItemEvent(primitiveType_, value_, typeURI_, typeName_); return 0; } //////////////////////////////////////////////////////////////////////////////////////////////////// XQQNameLiteral::XQQNameLiteral(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* uri, const XMLCh* prefix, const XMLCh* localname, XPath2MemoryManager* memMgr) : ASTNodeImpl(QNAME_LITERAL, memMgr), typeURI_(typeURI), typeName_(typeName), uri_(uri), prefix_(prefix), localname_(localname) { _src.getStaticType() = StaticType::QNAME_TYPE; } bool XQQNameLiteral::isDateOrTimeAndHasNoTimezone(StaticContext *context) const { return false; } ASTNode* XQQNameLiteral::staticResolution(StaticContext *context) { return this; } ASTNode *XQQNameLiteral::staticTypingImpl(StaticContext *context) { return this; } Result XQQNameLiteral::createResult(DynamicContext* context, int flags) const { return Item::Ptr(new ATQNameOrDerivedImpl(typeURI_, typeName_, uri_, prefix_, localname_, context)); } EventGenerator::Ptr XQQNameLiteral::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { XMLBuffer buf; if(prefix_ && *prefix_) { buf.append(prefix_); buf.append(':'); } buf.append(localname_); events->atomicItemEvent(AnyAtomicType::QNAME, buf.getRawBuffer(), typeURI_, typeName_); return 0; } //////////////////////////////////////////////////////////////////////////////////////////////////// XQNumericLiteral::XQNumericLiteral(const XMLCh* typeURI, const XMLCh* typeName, const MAPM &value, AnyAtomicType::AtomicObjectType primitiveType, XPath2MemoryManager* memMgr) : ASTNodeImpl(NUMERIC_LITERAL, memMgr), typeURI_(typeURI), typeName_(typeName), primitiveType_(primitiveType) { _src.getStaticType() = StaticType::create(primitiveType_); memset(&value_, 0, sizeof(value_)); const M_APM cval = value.c_struct(); value_.m_apm_datalength = cval->m_apm_datalength; value_.m_apm_exponent = cval->m_apm_exponent; value_.m_apm_sign = cval->m_apm_sign; int len = (cval->m_apm_datalength + 1) >> 1; value_.m_apm_data = (UCHAR*)memMgr->allocate(len); memcpy(value_.m_apm_data, cval->m_apm_data, len); } bool XQNumericLiteral::isDateOrTimeAndHasNoTimezone(StaticContext *context) const { return false; } ASTNode* XQNumericLiteral::staticResolution(StaticContext *context) { return this; } ASTNode *XQNumericLiteral::staticTypingImpl(StaticContext *context) { return this; } MAPM XQNumericLiteral::getValue() const { // Use the C API to copy our fake MAPM MAPM copy; m_apm_copy(const_cast(copy.c_struct()), const_cast(&value_)); return copy; } Result XQNumericLiteral::createResult(DynamicContext* context, int flags) const { switch(primitiveType_) { case AnyAtomicType::DECIMAL: return (Item::Ptr)new ATDecimalOrDerivedImpl(typeURI_, typeName_, getValue(), context); case AnyAtomicType::FLOAT: return (Item::Ptr)new ATFloatOrDerivedImpl(typeURI_, typeName_, getValue(), context); case AnyAtomicType::DOUBLE: return (Item::Ptr)new ATDoubleOrDerivedImpl(typeURI_, typeName_, getValue(), context); default: break; } return 0; } EventGenerator::Ptr XQNumericLiteral::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { switch(primitiveType_) { case AnyAtomicType::DECIMAL: events->atomicItemEvent(primitiveType_, Numeric::asDecimalString(getValue(), ATDecimalOrDerivedImpl::g_nSignificantDigits, context), typeURI_, typeName_); break; case AnyAtomicType::FLOAT: events->atomicItemEvent(primitiveType_, Numeric::asDoubleString(Numeric::NUM, getValue(), ATFloatOrDerivedImpl::g_nSignificantDigits, context), typeURI_, typeName_); break; case AnyAtomicType::DOUBLE: events->atomicItemEvent(primitiveType_, Numeric::asDoubleString(Numeric::NUM, getValue(), ATDoubleOrDerivedImpl::g_nSignificantDigits, context), typeURI_, typeName_); break; default: break; } return 0; } XQilla-2.3.0/src/ast/XQFunction.cpp0000644000151400015140000001536211653565523013765 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include "../lexer/XQLexer.hpp" #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif /* http://www.w3.org/2005/xpath-functions */ const XMLCh XQFunction::XMLChFunctionURI[] = { chLatin_h, chLatin_t, chLatin_t, chLatin_p, chColon, chForwardSlash, chForwardSlash, chLatin_w, chLatin_w, chLatin_w, chPeriod, chLatin_w, chDigit_3, chPeriod, chLatin_o, chLatin_r, chLatin_g, chForwardSlash, chDigit_2, chDigit_0, chDigit_0, chDigit_5, chForwardSlash, chLatin_x, chLatin_p, chLatin_a, chLatin_t, chLatin_h, chDash, chLatin_f, chLatin_u, chLatin_n, chLatin_c, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chLatin_s, chNull }; XQFunction::XQFunction(const XMLCh *name, const char *signature, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : ASTNodeImpl(FUNCTION, memMgr), name_(name), uri_(XMLChFunctionURI), sigString_(signature), signature_(0), _args(args) { } // bool XQFunction::isSubsetOf(const ASTNode *other) const // { // if(other->getType() != getType()) return false; // const XQFunction *o = (const XQFunction*)other; // if(!XPath2Utils::equals(_fURI, o._fURI) || // !XPath2Utils::equals(_fName, o._fName) || // _args.size() != o._args.size()) // return false; // VectorOfASTNodes::iterator i = _args.begin(); // VectorOfASTNodes::iterator j = o._args.begin(); // for(; i != _args.end(); ++i, ++j) { // // TBD non-deterministic functions - jpcs // if(!(*i)->isEqualTo(*j)) // return false; // } // return true; // } ASTNode *XQFunction::staticResolution(StaticContext *context) { resolveArguments(context); return this; } ASTNode *XQFunction::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context); return this; } void XQFunction::parseSignature(StaticContext *context) { if(sigString_ && !signature_) { XPath2MemoryManager *mm = context->getMemoryManager(); XQLexer lexer(mm, _LANG_FUNCTION_SIGNATURE_, 0, 1, 1, mm->getPooledString(sigString_)); XQParserArgs args(&lexer); XQParser::yyparse(&args); signature_ = args._signature; signature_->staticResolution(context); if(signature_->argSpecs) { // If the signature has too many arguments, remove some while(signature_->argSpecs->size() > _args.size()) { signature_->argSpecs->back()->release(mm); signature_->argSpecs->pop_back(); } // If the signature has too few arguments, duplicate the last one. // (This is really only for fn:concat.) if(signature_->argSpecs->size() < _args.size()) { XMLBuffer buf(20); ArgumentSpec *argSpec = signature_->argSpecs->back(); unsigned int last = _args.size() + 1 - signature_->argSpecs->size(); for(unsigned int i = 2; i <= last; ++i) { ArgumentSpec *newArgSpec = new (mm) ArgumentSpec(argSpec, mm); buf.set(argSpec->getName()); XPath2Utils::numToBuf(i, buf); newArgSpec->setName(mm->getPooledString(buf.getRawBuffer())); newArgSpec->setQName(0); signature_->argSpecs->push_back(newArgSpec); } buf.set(argSpec->getName()); XPath2Utils::numToBuf(1, buf); argSpec->setName(mm->getPooledString(buf.getRawBuffer())); argSpec->setQName(0); } } } } void XQFunction::resolveArguments(StaticContext *context, bool numericFunction) { parseSignature(context); size_t paramNumber = 0; for(VectorOfASTNodes::iterator i = _args.begin(); i != _args.end(); ++i, ++paramNumber) { if(paramNumber < signature_->argSpecs->size()) { *i = (*signature_->argSpecs)[paramNumber]->getType()-> convertFunctionArg(*i, context, numericFunction, this); } *i = (*i)->staticResolution(context); } } void XQFunction::calculateSRCForArguments(StaticContext *context, bool checkTimezone) { for(VectorOfASTNodes::iterator i = _args.begin(); i != _args.end(); ++i) { _src.add((*i)->getStaticAnalysis()); if((*i)->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("XQFunction::staticTyping"), X("It is a static error for an argument to a function " "to be an updating expression [err:XUST0001]")); } if(checkTimezone && (*i)->isDateOrTimeAndHasNoTimezone(context)) _src.implicitTimezoneUsed(true); } if(context) { if(signature_ && signature_->returnType) { bool isPrimitive; signature_->returnType->getStaticType(_src.getStaticType(), context, isPrimitive, this); } else { // Default type is item()* _src.getStaticType() = StaticType(StaticType::ITEM_TYPE, 0, StaticType::UNLIMITED); } } } Result XQFunction::getParamNumber(size_t number, DynamicContext* context, int flags) const { assert(number > 0); assert(number <= getNumArgs()); return _args[number - 1]->createResult(context, flags); } size_t XQFunction::getNumArgs() const { return _args.size(); } Result XQFunction::createResult(DynamicContext* context, int flags) const { return createSequence(context); } Sequence XQFunction::createSequence(DynamicContext* context, int flags) const { return Sequence(context->getMemoryManager()); } XQilla-2.3.0/src/ast/XQTypeswitch.cpp0000644000151400015140000002534511653565523014345 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include XQTypeswitch:: XQTypeswitch(ASTNode *expr, Cases *cases, Case *defaultCase, XPath2MemoryManager *mm) : ASTNodeImpl(TYPESWITCH, mm), expr_(expr), cases_(cases), default_(defaultCase) { } ASTNode* XQTypeswitch::staticResolution(StaticContext *context) { // Statically resolve the test expression expr_ = expr_->staticResolution(context); // Call static resolution on the clauses for(Cases::iterator it = cases_->begin(); it != cases_->end(); ++it) { (*it)->staticResolution(context); } default_->staticResolution(context); return this; } static const XMLCh no_err[] = { 0 }; ASTNode *XQTypeswitch::staticTypingImpl(StaticContext *context) { _src.clear(); // Statically resolve the test expression const StaticAnalysis &exprSrc = expr_->getStaticAnalysis(); if(exprSrc.isUpdating()) { XQThrow(StaticErrorException,X("XQTypeswitch::staticTyping"), X("It is a static error for the operand expression of a typeswitch expression " "to be an updating expression [err:XUST0001]")); } // Call static resolution on the clauses bool possiblyUpdating = true; _src.add(exprSrc); default_->staticTyping(expr_->getStaticAnalysis(), context, _src, possiblyUpdating, /*first*/true); Cases::iterator it; for(it = cases_->begin(); it != cases_->end(); ++it) { (*it)->staticTyping(expr_->getStaticAnalysis(), context, _src, possiblyUpdating, /*first*/false); } if(!context) { return this; } XPath2MemoryManager *mm = context->getMemoryManager(); if(exprSrc.isUsed()) { // Do basic static type checking on the clauses, // to eliminate ones which will never be matches, // and find ones which will always be matched. const StaticType &sType = expr_->getStaticAnalysis().getStaticType(); bool found = false; Cases newCases = Cases(XQillaAllocator(mm)); for(it = cases_->begin(); it != cases_->end(); ++it) { StaticType::TypeMatch match = (*it)->getTreatType().matches(sType); if(found || match.type == StaticType::NEVER || match.cardinality == StaticType::NEVER) { // It never matches (*it)->getExpression()->release(); mm->deallocate(*it); } else if((*it)->getIsExact() && match.type == StaticType::ALWAYS && match.cardinality == StaticType::ALWAYS) { // It always matches, so set this clause as the // default clause and remove all clauses after it default_->getExpression()->release(); mm->deallocate(default_); default_ = *it; found = true; } else { newCases.push_back(*it); } } if(newCases.size() == cases_->size()) { // No change return this; } *cases_ = newCases; } else { // If it's constant, we can narrow it down to the correct clause AutoDelete dContext(context->createDynamicContext()); dContext->setMemoryManager(mm); Sequence value; Case *match = (Case*)chooseCase(dContext, value); // Replace the default with the matched clause and // remove the remaining clauses, as they don't match for(it = cases_->begin(); it != cases_->end(); ++it) { if((*it) != match) { (*it)->getExpression()->release(); mm->deallocate(*it); } } if(default_ != match) { default_->getExpression()->release(); mm->deallocate(default_); } default_ = match; cases_->clear(); } // Call static resolution on the new clauses possiblyUpdating = true; _src.clear(); _src.add(exprSrc); default_->staticTyping(expr_->getStaticAnalysis(), context, _src, possiblyUpdating, /*first*/true); for(it = cases_->begin(); it != cases_->end(); ++it) { (*it)->staticTyping(expr_->getStaticAnalysis(), context, _src, possiblyUpdating, /*first*/false); } if(cases_->empty()) { if(default_->isVariableUsed()) { TupleNode *tuple = new (mm) ContextTuple(mm); tuple->setLocationInfo(this); tuple = new (mm) LetTuple(tuple, default_->getURI(), default_->getName(), expr_, mm); tuple->setLocationInfo(this); ASTNode *result = new (mm) XQReturn(tuple, default_->getExpression(), mm); result->setLocationInfo(this); const_cast(result->getStaticAnalysis()).copy(_src); expr_ = 0; default_->setExpression(0); this->release(); return result; } else if(!expr_->getStaticAnalysis().isNoFoldingForced()) { ASTNode *result = default_->getExpression(); default_->setExpression(0); this->release(); return result; } } return this; } XQTypeswitch::Case::Case(const XMLCh *qname, SequenceType *seqType, ASTNode *expr) : qname_(qname), uri_(0), name_(0), seqType_(seqType), isExact_(false), expr_(expr) { } XQTypeswitch::Case::Case(const XMLCh *qname, const XMLCh *uri, const XMLCh *name, SequenceType *seqType, const StaticType &treatType, bool isExact, ASTNode *expr) : qname_(qname), uri_(uri), name_(name), seqType_(seqType), treatType_(treatType), isExact_(isExact), expr_(expr) { } void XQTypeswitch::Case::staticResolution(StaticContext* context) { if(seqType_) { seqType_->staticResolution(context); seqType_->getStaticType(treatType_, context, isExact_, this); } expr_ = expr_->staticResolution(context); if(qname_ != 0) { uri_ = context->getUriBoundToPrefix(XPath2NSUtils::getPrefix(qname_, context->getMemoryManager()), this); name_ = XPath2NSUtils::getLocalName(qname_); } } void XQTypeswitch::Case::staticTyping(const StaticAnalysis &var_src, StaticContext* context, StaticAnalysis &src, bool &possiblyUpdating, bool first) { if(seqType_ != 0) { if(src.isUpdating()) { if(!expr_->getStaticAnalysis().isUpdating() && !expr_->getStaticAnalysis().isPossiblyUpdating()) XQThrow(StaticErrorException, X("XQTypeswitch::Case::staticTyping"), X("Mixed updating and non-updating operands [err:XUST0001]")); } else { if(expr_->getStaticAnalysis().isUpdating() && !possiblyUpdating) XQThrow(StaticErrorException, X("XQTypeswitch::Case::staticTyping"), X("Mixed updating and non-updating operands [err:XUST0001]")); } } if(qname_ != 0) { // Remove the local variable from the StaticAnalysis if(!expr_->getStaticAnalysis().isVariableUsed(uri_, name_)) { // If the variable isn't used, don't bother setting it when we execute qname_ = 0; } } if(possiblyUpdating) possiblyUpdating = expr_->getStaticAnalysis().isPossiblyUpdating(); if(first) { src.getStaticType() = expr_->getStaticAnalysis().getStaticType(); src.setProperties(expr_->getStaticAnalysis().getProperties()); } else { src.getStaticType() |= expr_->getStaticAnalysis().getStaticType(); src.setProperties(src.getProperties() & expr_->getStaticAnalysis().getProperties()); } if(qname_ != 0) { src.addExceptVariable(uri_, name_, expr_->getStaticAnalysis()); } else { src.add(expr_->getStaticAnalysis()); } } const XQTypeswitch::Case *XQTypeswitch::chooseCase(DynamicContext *context, Sequence &resultSeq) const { // retrieve the value of the operand expression // ResultBuffer value(expr_->createResult(context)); Sequence value = expr_->createResult(context)->toSequence(context); const Case *cse = 0; // find the effective case for(Cases::const_iterator it = cases_->begin(); it != cases_->end(); ++it) { try { // (*it)->getSequenceType()->matches(value.createResult(), (*it)->getSequenceType(), no_err)->toSequence(context); (*it)->getSequenceType()->matches(value, (*it)->getSequenceType(), no_err)->toSequence(context); cse = *it; break; } catch(const XPath2TypeMatchException &ex) { // Well, it doesn't match that one then... } } // if no case is satisfied, use the default one if(cse == 0) { cse = default_; } // Bind the variable if(cse->isVariableUsed()) { // resultSeq = value.createResult()->toSequence(context); resultSeq = value; // varStore->declareVar(cse->getURI(), cse->getName(), value.createResult()->toSequence(context), context); } return cse; } EventGenerator::Ptr XQTypeswitch::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { SingleVarStore scope; const Case *cse = chooseCase(context, scope.value); AutoVariableStoreReset reset(context); if(cse->isVariableUsed()) scope.setAsVariableStore(cse->getURI(), cse->getName(), context); return new ClosureEventGenerator(cse->getExpression(), context, preserveNS, preserveType); } PendingUpdateList XQTypeswitch::createUpdateList(DynamicContext *context) const { SingleVarStore scope; const Case *cse = chooseCase(context, scope.value); AutoVariableStoreReset reset(context); if(cse->isVariableUsed()) scope.setAsVariableStore(cse->getURI(), cse->getName(), context); return cse->getExpression()->createUpdateList(context); } Result XQTypeswitch::createResult(DynamicContext *context, int flags) const { SingleVarStore scope; const Case *cse = chooseCase(context, scope.value); AutoVariableStoreReset reset(context); if(cse->isVariableUsed()) scope.setAsVariableStore(cse->getURI(), cse->getName(), context); return cse->getExpression()->createResult(context); } XQilla-2.3.0/src/ast/XQDocumentOrder.cpp0000644000151400015140000000613711653565523014752 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include XQDocumentOrder::XQDocumentOrder(ASTNode* expr, XPath2MemoryManager* memMgr) : ASTNodeImpl(DOCUMENT_ORDER, memMgr), expr_(expr), unordered_(false) { } XQDocumentOrder::XQDocumentOrder(ASTNode* expr, bool unordered, XPath2MemoryManager* memMgr) : ASTNodeImpl(DOCUMENT_ORDER, memMgr), expr_(expr), unordered_(unordered) { } ASTNode* XQDocumentOrder::staticResolution(StaticContext *context) { unordered_ = context->getNodeSetOrdering() == StaticContext::ORDERING_UNORDERED; expr_ = expr_->staticResolution(context); return this; } ASTNode *XQDocumentOrder::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(expr_->getStaticAnalysis()); _src.getStaticType() = expr_->getStaticAnalysis().getStaticType(); if(_src.getStaticType().getMin() > 0) _src.getStaticType().setCardinality(1, _src.getStaticType().getMax()); // Check if nodes will be returned if(!_src.getStaticType().containsType(StaticType::NODE_TYPE)) { return substitute(expr_); } // Check if it's already in document order if((expr_->getStaticAnalysis().getProperties() & StaticAnalysis::DOCORDER) != 0) { return substitute(expr_); } _src.setProperties(expr_->getStaticAnalysis().getProperties() | StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED); return this; } Result XQDocumentOrder::createResult(DynamicContext* context, int flags) const { if(unordered_) { return new UniqueNodesResult(this, expr_->createResult(context, flags), context); } else { return new DocumentOrderResult(this, expr_->createResult(context, flags)); } } Item::Ptr DocumentOrderResult::nextOrTail(Result &tail, DynamicContext *context) { Sequence seq = parent_->toSequence(context); seq.sortIntoDocumentOrder(context); tail = seq; return 0; } Item::Ptr UniqueNodesResult::next(DynamicContext *context) { Item::Ptr result = parent_->next(context); if(nTypeOfItemsInLastStep_ == 0 && result.notNull()) nTypeOfItemsInLastStep_ = result->isNode() ? 1 : 2; if(nTypeOfItemsInLastStep_ == 1) { while(result.notNull()) { if(noDups_.insert(result).second) break; else result = parent_->next(context); } } return result; } XQilla-2.3.0/src/ast/XQVariable.cpp0000644000151400015140000000657111653565523013727 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; XQVariable::XQVariable(const XMLCh *qualifiedName, XPath2MemoryManager* memMgr) : ASTNodeImpl(VARIABLE, memMgr), _uri(0), _global(0) { QualifiedName qname(qualifiedName, getMemoryManager()); _prefix = qname.getPrefix(); _name = qname.getName(); } XQVariable::XQVariable(const XMLCh *uri, const XMLCh *name, XPath2MemoryManager* memMgr) : ASTNodeImpl(VARIABLE, memMgr), _prefix(0), _uri(uri), _name(name), _global(0) { } XQVariable::XQVariable(const XMLCh *prefix, const XMLCh *uri, const XMLCh *name, XQGlobalVariable *global, XPath2MemoryManager* memMgr) : ASTNodeImpl(VARIABLE, memMgr), _prefix(prefix), _uri(uri), _name(name), _global(global) { } XQVariable::~XQVariable() { } Result XQVariable::createResult(DynamicContext* context, int flags) const { return context->getVariableStore()->getVar(_uri, _name); } ASTNode* XQVariable::staticResolution(StaticContext *context) { // An unprefixed variable reference is in no namespace. if(_prefix && *_prefix) _uri = context->getUriBoundToPrefix(_prefix, this); return this; } ASTNode *XQVariable::staticTypingImpl(StaticContext *context) { if(context == 0) return this; _src.clear(); const StaticAnalysis *var_src = context->getVariableTypeStore()->getVar(_uri, _name, &_global); if(var_src == NULL || (var_src->getProperties() & StaticAnalysis::UNDEFINEDVAR)!=0) { XMLBuffer errMsg; errMsg.append(X("A variable called {")); errMsg.append(_uri); errMsg.append(X("}")); errMsg.append(_name); errMsg.append(X(" does not exist [err:XPST0008]")); XQThrow(StaticErrorException, X("XQVariable::staticResolution"), errMsg.getRawBuffer()); } _src.setProperties(var_src->getProperties() & ~(StaticAnalysis::SUBTREE|StaticAnalysis::SAMEDOC)); _src.getStaticType() = var_src->getStaticType(); _src.variableUsed(_uri, _name); return this; } const XMLCh *XQVariable::getPrefix() const { return _prefix; } const XMLCh *XQVariable::getURI() const { return _uri; } const XMLCh *XQVariable::getName() const { return _name; } XQilla-2.3.0/src/ast/XQOperator.cpp0000644000151400015140000000370311653565523013767 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include XQOperator::XQOperator(const XMLCh* opName, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : ASTNodeImpl(OPERATOR, memMgr), _args(args) { _opName=opName; } void XQOperator::addArgument(ASTNode* arg) { _args.push_back(arg); } ASTNode* XQOperator::getArgument(unsigned int index) const { assert(index<_args.size()); return _args[index]; } void XQOperator::setArgument(unsigned int index, ASTNode *arg) { assert(index<_args.size()); _args[index] = arg; } void XQOperator::removeArgument(unsigned int index) { assert(index<_args.size()); _args.erase(_args.begin() + index); } unsigned int XQOperator::getNumArgs() const { return (unsigned int)_args.size(); } const XMLCh* XQOperator::getOperatorName() const { return _opName; } const VectorOfASTNodes &XQOperator::getArguments() const { return _args; } XQilla-2.3.0/src/ast/XQTextConstructor.cpp0000644000151400015140000000561711653565523015374 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif XQTextConstructor::XQTextConstructor(ASTNode *value, XPath2MemoryManager* mm) : XQDOMConstructor(mm), m_value(value) { } EventGenerator::Ptr XQTextConstructor::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { XMLBuffer value; if(getStringValue(m_value, value, context)) events->textEvent(value.getRawBuffer()); return 0; } ASTNode* XQTextConstructor::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); m_value = new (mm) XQAtomize(m_value, mm); m_value->setLocationInfo(this); m_value = m_value->staticResolution(context); return this; } ASTNode *XQTextConstructor::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(m_value->getStaticAnalysis()); if(m_value->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("XQTextConstructor::staticTyping"), X("It is a static error for the value expression of a text node constructor " "to be an updating expression [err:XUST0001]")); } _src.getStaticType() = StaticType(StaticType::TEXT_TYPE, 0, 1); _src.creative(true); _src.setProperties(StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::PEER | StaticAnalysis::SUBTREE | StaticAnalysis::SAMEDOC | StaticAnalysis::ONENODE); return this; } const XMLCh* XQTextConstructor::getNodeType() const { return Node::text_string; } ASTNode *XQTextConstructor::getValue() const { return m_value; } void XQTextConstructor::setValue(ASTNode *value) { m_value = value; } XQilla-2.3.0/src/ast/XQIf.cpp0000644000151400015140000001023311653565523012526 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include XQIf::XQIf(ASTNode* test, ASTNode* whenTrue, ASTNode* whenFalse, XPath2MemoryManager* memMgr) : ASTNodeImpl(IF, memMgr), _test(test), _whenTrue(whenTrue), _whenFalse(whenFalse) { } EventGenerator::Ptr XQIf::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { if(_test->boolResult(context)) return new ClosureEventGenerator(_whenTrue, context, preserveNS, preserveType); else return new ClosureEventGenerator(_whenFalse, context, preserveNS, preserveType); } ASTNode* XQIf::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); _test = new (mm) XQEffectiveBooleanValue(_test, mm); _test->setLocationInfo(this); _test = _test->staticResolution(context); _whenTrue = _whenTrue->staticResolution(context); _whenFalse = _whenFalse->staticResolution(context); return this; } ASTNode *XQIf::staticTypingImpl(StaticContext *context) { _src.clear(); if(_test->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("XQIf::staticTyping"), X("It is a static error for the conditional expression of an if expression " "to be an updating expression [err:XUST0001]")); } _src.add(_test->getStaticAnalysis()); _src.getStaticType() = _whenTrue->getStaticAnalysis().getStaticType(); _src.setProperties(_whenTrue->getStaticAnalysis().getProperties()); _src.add(_whenTrue->getStaticAnalysis()); if(_src.isUpdating()) { if(!_whenFalse->getStaticAnalysis().isUpdating() && !_whenFalse->getStaticAnalysis().isPossiblyUpdating()) XQThrow(StaticErrorException, X("XQIf::staticTyping"), X("Mixed updating and non-updating operands [err:XUST0001]")); } else { if(_whenFalse->getStaticAnalysis().isUpdating() && !_whenTrue->getStaticAnalysis().isPossiblyUpdating()) XQThrow(StaticErrorException, X("XQIf::staticTyping"), X("Mixed updating and non-updating operands [err:XUST0001]")); } _src.getStaticType() |= _whenFalse->getStaticAnalysis().getStaticType(); _src.setProperties(_src.getProperties() & _whenFalse->getStaticAnalysis().getProperties()); _src.add(_whenFalse->getStaticAnalysis()); return this; } ASTNode *XQIf::getTest() const { return _test; } ASTNode *XQIf::getWhenTrue() const { return _whenTrue; } ASTNode *XQIf::getWhenFalse() const { return _whenFalse; } void XQIf::setTest(ASTNode *item) { _test = item; } void XQIf::setWhenTrue(ASTNode *item) { _whenTrue = item; } void XQIf::setWhenFalse(ASTNode *item) { _whenFalse = item; } PendingUpdateList XQIf::createUpdateList(DynamicContext *context) const { if(_test->boolResult(context)) return _whenTrue->createUpdateList(context); else return _whenFalse->createUpdateList(context); } Result XQIf::createResult(DynamicContext* context, int flags) const { if(_test->boolResult(context)) return getWhenTrue()->createResult(context); return getWhenFalse()->createResult(context); } XQilla-2.3.0/src/ast/XQAttributeConstructor.cpp0000644000151400015140000001273111653565523016406 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif XQAttributeConstructor::XQAttributeConstructor(ASTNode* name, VectorOfASTNodes* children, XPath2MemoryManager* mm) : XQDOMConstructor(mm), namespaceExpr(0), m_name(name), m_children(children) { } EventGenerator::Ptr XQAttributeConstructor::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { AnyAtomicType::Ptr itemName = m_name->createResult(context)->next(context); const ATQNameOrDerived* pQName = (const ATQNameOrDerived*)itemName.get(); const XMLCh *prefix = pQName->getPrefix(); const XMLCh *uri = pQName->getURI(); const XMLCh *name = pQName->getName(); if((uri==NULL && XPath2Utils::equals(name, XMLUni::fgXMLNSString)) || XPath2Utils::equals(uri, XMLUni::fgXMLNSURIName)) XQThrow(ASTException,X("DOM Constructor"),X("A computed attribute constructor cannot create a namespace declaration [err:XQDY0044]")); XMLBuffer value; getStringValue(m_children, value, context); const XMLCh *typeURI = SchemaSymbols::fgURI_SCHEMAFORSCHEMA; const XMLCh *typeName = ATUntypedAtomic::fgDT_UNTYPEDATOMIC; // check if it's xml:id static const XMLCh id[] = { 'i', 'd', 0 }; if(XPath2Utils::equals(name, id) && XPath2Utils::equals(uri, XMLUni::fgXMLURIName)) { // If the attribute name is xml:id, the string value and typed value of the attribute are further normalized by // discarding any leading and trailing space (#x20) characters, and by replacing sequences of space (#x20) characters // by a single space (#x20) character. XMLString::collapseWS(value.getRawBuffer(), context->getMemoryManager()); typeURI = SchemaSymbols::fgURI_SCHEMAFORSCHEMA; typeName = XMLUni::fgIDString; } events->attributeEvent(emptyToNull(prefix), emptyToNull(uri), name, value.getRawBuffer(), typeURI, typeName); return 0; } ASTNode* XQAttributeConstructor::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); // and run static resolution m_name = new (mm) XQNameExpression(m_name, mm); m_name->setLocationInfo(this); m_name = m_name->staticResolution(context); unsigned int i; for(i = 0;i < m_children->size(); ++i) { // atomize content and run static resolution (*m_children)[i] = new (mm) XQAtomize((*m_children)[i], mm); (*m_children)[i]->setLocationInfo(this); (*m_children)[i] = (*m_children)[i]->staticResolution(context); } return this; } ASTNode *XQAttributeConstructor::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(m_name->getStaticAnalysis()); if(m_name->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("XQAttributeConstructor::staticTyping"), X("It is a static error for the name expression of an attribute constructor " "to be an updating expression [err:XUST0001]")); } unsigned int i; for(i = 0; i < m_children->size(); ++i) { _src.add((*m_children)[i]->getStaticAnalysis()); if((*m_children)[i]->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("XQAttributeConstructor::staticTyping"), X("It is a static error for the a value expression of an attribute constructor " "to be an updating expression [err:XUST0001]")); } } _src.getStaticType() = StaticType::ATTRIBUTE_TYPE; _src.creative(true); _src.setProperties(StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::PEER | StaticAnalysis::SUBTREE | StaticAnalysis::SAMEDOC | StaticAnalysis::ONENODE); return this; } const XMLCh* XQAttributeConstructor::getNodeType() const { return Node::attribute_string; } ASTNode *XQAttributeConstructor::getName() const { return m_name; } const VectorOfASTNodes *XQAttributeConstructor::getChildren() const { return m_children; } void XQAttributeConstructor::setName(ASTNode *name) { m_name = name; } XQilla-2.3.0/src/ast/StaticType.cpp0000644000151400015140000004621611653565523014022 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include "../config/xqilla_config.h" #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const unsigned int StaticType::UNLIMITED = (unsigned int)-1; StaticType StaticType::create(const XMLCh *uri, const XMLCh *name, const StaticContext *context, bool &isExact) { if(XPath2Utils::equals(name, AnyAtomicType::fgDT_ANYATOMICTYPE) && XPath2Utils::equals(uri, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) { isExact = true; return ANY_ATOMIC_TYPE; } else { return create(context->getItemFactory()->getPrimitiveTypeIndex(uri, name, /*isPrimitive*/isExact)); } } StaticType StaticType::create(AnyAtomicType::AtomicObjectType primitiveType) { switch(primitiveType) { case AnyAtomicType::ANY_SIMPLE_TYPE: return ANY_SIMPLE_TYPE; case AnyAtomicType::ANY_URI: return ANY_URI_TYPE; case AnyAtomicType::BASE_64_BINARY: return BASE_64_BINARY_TYPE; case AnyAtomicType::BOOLEAN: return BOOLEAN_TYPE; case AnyAtomicType::DATE: return DATE_TYPE; case AnyAtomicType::DATE_TIME: return DATE_TIME_TYPE; case AnyAtomicType::DAY_TIME_DURATION: return DAY_TIME_DURATION_TYPE; case AnyAtomicType::DECIMAL: return DECIMAL_TYPE; case AnyAtomicType::DOUBLE: return DOUBLE_TYPE; case AnyAtomicType::DURATION: return DURATION_TYPE | DAY_TIME_DURATION_TYPE | YEAR_MONTH_DURATION_TYPE; case AnyAtomicType::FLOAT: return FLOAT_TYPE; case AnyAtomicType::G_DAY: return G_DAY_TYPE; case AnyAtomicType::G_MONTH: return G_MONTH_TYPE; case AnyAtomicType::G_MONTH_DAY: return G_MONTH_DAY_TYPE; case AnyAtomicType::G_YEAR: return G_YEAR_TYPE; case AnyAtomicType::G_YEAR_MONTH: return G_YEAR_MONTH_TYPE; case AnyAtomicType::HEX_BINARY: return HEX_BINARY_TYPE; case AnyAtomicType::NOTATION: return NOTATION_TYPE; case AnyAtomicType::QNAME: return QNAME_TYPE; case AnyAtomicType::STRING: return STRING_TYPE; case AnyAtomicType::TIME: return TIME_TYPE; case AnyAtomicType::UNTYPED_ATOMIC: return UNTYPED_ATOMIC_TYPE; case AnyAtomicType::YEAR_MONTH_DURATION: return YEAR_MONTH_DURATION_TYPE; default: break; } return StaticType(); } StaticType::StaticType() : flags_(0), min_(0), max_(0), mm_(0), minArgs_(0), maxArgs_(0), returnType_(0) { } StaticType::StaticType(StaticTypeFlags f, unsigned int min, unsigned int max) : flags_(f), min_(min), max_(max), mm_(0), minArgs_(0), maxArgs_(0), returnType_(0) { // max must be 0 if flags is 0 assert(max != 0 || flags_ == 0); assert(min <= max); assert(min != UNLIMITED); } StaticType::StaticType(XPath2MemoryManager *mm, unsigned int numArgs, const StaticType &returnType, unsigned int min, unsigned int max) : flags_(FUNCTION_TYPE), min_(min), max_(max), mm_(mm), minArgs_(numArgs), maxArgs_(numArgs), returnType_(new (mm) StaticType(returnType)) { assert(min <= max); assert(min != UNLIMITED); } StaticType::StaticType(XPath2MemoryManager *mm, unsigned int minArgs, unsigned int maxArgs, const StaticType &returnType, unsigned int min, unsigned int max) : flags_(FUNCTION_TYPE), min_(min), max_(max), mm_(mm), minArgs_(minArgs), maxArgs_(maxArgs), returnType_(new (mm) StaticType(returnType)) { assert(min <= max); assert(min != UNLIMITED); } StaticType::StaticType(const StaticType &o) : flags_(o.flags_), min_(o.min_), max_(o.max_), mm_(o.mm_), minArgs_(o.minArgs_), maxArgs_(o.maxArgs_), returnType_(o.returnType_ ? new (mm_) StaticType(*o.returnType_) : 0) { } StaticType &StaticType::operator=(const StaticType &o) { if(this != &o) { flags_ = o.flags_; min_ = o.min_; max_ = o.max_; delete returnType_; if(mm_ == 0) mm_ = o.mm_; minArgs_ = o.minArgs_; maxArgs_ = o.maxArgs_; returnType_ = o.returnType_ ? new (mm_) StaticType(*o.returnType_) : 0; } return *this; } StaticType::~StaticType() { delete returnType_; } void StaticType::typeUnion(const StaticType &st) { bool thisFunctions = (flags_ & FUNCTION_TYPE) != 0; bool otherFunctions = (st.flags_ & FUNCTION_TYPE) != 0; flags_ |= st.flags_; min_ = (min_ < st.min_) ? min_ : st.min_; max_ = (max_ > st.max_) ? max_ : st.max_; if(st.returnType_) { if(returnType_) { minArgs_ = (minArgs_ < st.minArgs_) ? minArgs_ : st.minArgs_; maxArgs_ = (maxArgs_ > st.maxArgs_) ? maxArgs_ : st.maxArgs_; returnType_->typeUnion(*st.returnType_); } else if(!thisFunctions) { if(mm_ == 0) mm_ = st.mm_; minArgs_ = st.minArgs_; maxArgs_ = st.maxArgs_; returnType_ = new (mm_) StaticType(*st.returnType_); } else { // This was a wildcard function, the union of which is still a wildcard function } } else if(otherFunctions) { // Other was a wildcard function, so this is now a wildcard function minArgs_ = 0; maxArgs_ = 0; delete returnType_; returnType_ = 0; } } void StaticType::typeIntersect(const StaticType &st) { flags_ &= st.flags_; min_ = (min_ > st.min_) ? min_ : st.min_; max_ = (max_ < st.max_) ? max_ : st.max_; if(st.returnType_) { if(returnType_) { minArgs_ = (minArgs_ > st.minArgs_) ? minArgs_ : st.minArgs_; maxArgs_ = (maxArgs_ < st.maxArgs_) ? maxArgs_ : st.maxArgs_; returnType_->typeIntersect(*st.returnType_); } else { if(mm_ == 0) mm_ = st.mm_; minArgs_ = st.minArgs_; maxArgs_ = st.maxArgs_; returnType_ = new (mm_) StaticType(*st.returnType_); } } if((flags_ & FUNCTION_TYPE) == 0 || minArgs_ > maxArgs_) { // A function is no longer part of this type flags_ &= ~FUNCTION_TYPE; minArgs_ = 0; maxArgs_ = 0; delete returnType_; returnType_ = 0; } if(flags_ == 0 || max_ == 0 || min_ > max_) { (*this) = StaticType(); } } void StaticType::typeExcept(const StaticType &st) { assert((st.flags_ & FUNCTION_TYPE) == 0); flags_ &= ~st.flags_; } void StaticType::typeConcat(const StaticType &st) { bool thisFunctions = (flags_ & FUNCTION_TYPE) != 0; bool otherFunctions = (st.flags_ & FUNCTION_TYPE) != 0; flags_ |= st.flags_; min_ += st.min_; if(max_ == UNLIMITED || st.max_ == UNLIMITED) max_ = UNLIMITED; else max_ += st.max_; if(st.returnType_) { if(returnType_) { minArgs_ = (minArgs_ < st.minArgs_) ? minArgs_ : st.minArgs_; maxArgs_ = (maxArgs_ > st.maxArgs_) ? maxArgs_ : st.maxArgs_; returnType_->typeUnion(*st.returnType_); } else if(!thisFunctions) { if(mm_ == 0) mm_ = st.mm_; minArgs_ = st.minArgs_; maxArgs_ = st.maxArgs_; returnType_ = new (mm_) StaticType(*st.returnType_); } else { // This was a wildcard function, the union of which is still a wildcard function } } else if(otherFunctions) { // Other was a wildcard function, so this is now a wildcard function minArgs_ = 0; maxArgs_ = 0; delete returnType_; returnType_ = 0; } } void StaticType::typeNodeIntersect(const StaticType &st) { if(flags_ != st.flags_ && (flags_ & st.flags_) != 0) { min_ = 0; } flags_ &= st.flags_; min_ = (min_ < st.min_) ? min_ : st.min_; max_ = (max_ < st.max_) ? max_ : st.max_; flags_ &= ~FUNCTION_TYPE; minArgs_ = 0; maxArgs_ = 0; delete returnType_; returnType_ = 0; if(flags_ == 0 || max_ == 0) { min_ = 0; max_ = 0; flags_ = 0; } assert(min_ <= max_); } StaticType StaticType::operator|(const StaticType &st) const { StaticType result(*this); result.typeUnion(st); return result; } StaticType &StaticType::operator|=(const StaticType &st) { typeUnion(st); return *this; } StaticType::StaticTypeFlags operator|(StaticType::StaticTypeFlags a, StaticType::StaticTypeFlags b) { return (StaticType::StaticTypeFlags)((unsigned int)a | (unsigned int)b); } StaticType StaticType::operator&(const StaticType &st) const { StaticType result(*this); result.typeIntersect(st); return result; } StaticType &StaticType::operator&=(const StaticType &st) { typeIntersect(st); return *this; } StaticType::StaticTypeFlags operator&(StaticType::StaticTypeFlags a, StaticType::StaticTypeFlags b) { return (StaticType::StaticTypeFlags)((unsigned int)a & (unsigned int)b); } StaticType &StaticType::substitute(const StaticType &from, const StaticType &to) { assert((from.flags_ & FUNCTION_TYPE) == 0); assert((to.flags_ & FUNCTION_TYPE) == 0); if(containsType(from)) { if(to.max_ > 0) { if(max_ == UNLIMITED || to.max_ == UNLIMITED) max_ = UNLIMITED; else max_ *= to.max_; } flags_ &= ~from.flags_; flags_ |= to.flags_; if(flags_ == 0) { min_ = 0; max_ = 0; } } return *this; } StaticType &StaticType::multiply(unsigned int min, unsigned int max) { assert(min <= max); assert(min != UNLIMITED); min_ *= min; if(max == UNLIMITED || max_ == UNLIMITED) max_ = UNLIMITED; else max_ *= max; if(max_ == 0) { min_ = 0; flags_ = 0; } return *this; } void StaticType::setCardinality(unsigned int min, unsigned int max) { assert(min <= max); assert(min != UNLIMITED); min_ = min; max_ = max; if(max_ > 0 && flags_ == 0) flags_ = ITEM_TYPE; else if(max_ == 0 && flags_ != 0) flags_ = 0; } bool StaticType::containsType(StaticType::StaticTypeFlags flags) const { return (flags_ & flags) != 0; } bool StaticType::containsType(const StaticType &type) const { if((flags_ & type.flags_) == 0) return false; if((type.flags_ & FUNCTION_TYPE) != 0 && type.returnType_ != 0 && returnType_ != 0 && (type.minArgs_ > maxArgs_ || type.maxArgs_ < minArgs_ || returnType_->min_ > type.returnType_->max_ || returnType_->max_ < type.returnType_->min_ || (!type.returnType_->containsType(*returnType_) && (returnType_->min_ > 0 || type.returnType_->min_ > 0)) )) return false; return true; } bool StaticType::isType(const StaticType &type) const { if(type.flags_ == 0) return flags_ == 0; if(flags_ == 0) return type.min_ == 0; if((flags_ & type.flags_) == 0 || (flags_ & ~type.flags_) != 0) return false; if((type.flags_ & FUNCTION_TYPE) != 0 && type.returnType_ != 0 && (type.minArgs_ != minArgs_ || type.maxArgs_ != maxArgs_ || returnType_->min_ > type.returnType_->max_ || returnType_->max_ < type.returnType_->min_ || (!type.returnType_->containsType(*returnType_) && (returnType_->min_ > 0 || type.returnType_->min_ > 0)) )) return false; return true; } StaticType::TypeMatchEnum StaticType::matchesFunctionType(const StaticType &type) const { TypeMatchEnum result = ALWAYS; if(returnType_ && type.returnType_) { if(type.minArgs_ > maxArgs_ || type.maxArgs_ < minArgs_) return NEVER; if(result > MAYBE && type.minArgs_ != minArgs_ && type.maxArgs_ != maxArgs_) result = MAYBE; // TBD Take function conversion into account here - jpcs TypeMatch ret = returnType_->matches(*type.returnType_); // if(ret.type < result) result = ret.type; if(ret.cardinality < result) result = ret.cardinality; } return result; } StaticType::TypeMatchEnum StaticType::matchesType(const StaticType &type) const { TypeMatchEnum result = ALWAYS; if(type.flags_ == 0 && min_ == 0) return ALWAYS; if((flags_ & type.flags_) == 0) { if(min_ > 0 || type.min_ > 0) return NEVER; result = PROBABLY_NOT; } if((type.flags_ & ~flags_) != 0) result = MAYBE; TypeMatchEnum func = matchesFunctionType(type); if(flags_ == FUNCTION_TYPE) { if(func < result) result = func; } else { if(func == NEVER && result > PROBABLY_NOT) result = PROBABLY_NOT; if(func < ALWAYS && result > MAYBE) result = MAYBE; } return result; } StaticType::TypeMatch StaticType::matches(const StaticType &actual) const { TypeMatch result = { ALWAYS, ALWAYS }; if(min_ > actual.max_ || max_ < actual.min_) { result.cardinality = NEVER; } else if(min_ > actual.min_ || max_ < actual.max_) { if(actual.max_ != StaticType::UNLIMITED) result.cardinality = PROBABLY_NOT; else result.cardinality = MAYBE; } result.type = matchesType(actual); return result; } static int countBits(unsigned int v) { int result = 0; if(v == StaticType::ITEM_TYPE) { ++result; v &= ~StaticType::ITEM_TYPE; } if(v == StaticType::ANY_ATOMIC_TYPE) { ++result; v &= ~StaticType::ANY_ATOMIC_TYPE; } if(v == StaticType::NODE_TYPE) { ++result; v &= ~StaticType::NODE_TYPE; } while(v != 0) { result += (v & 0x1); v = v >> 1; } return result; } void StaticType::typeToBuf(XMLBuffer &result) const { if(flags_ == 0) { result.append(X("empty-sequence()")); return; } unsigned int flags = flags_; bool except = false; int count = 0; XMLBuffer buf; if(flags != ANY_ATOMIC_TYPE && (flags & ~ANY_ATOMIC_TYPE) == 0 && countBits(flags) > countBits(ANY_ATOMIC_TYPE & ~flags)) { result.append(X("(xs:anyAtomicType - ")); except = true; flags = ANY_ATOMIC_TYPE & ~flags; } else if(flags != NODE_TYPE && (flags & ~NODE_TYPE) == 0 && countBits(flags) > countBits(NODE_TYPE & ~flags)) { result.append(X("(node() - ")); except = true; flags = NODE_TYPE & ~flags; } else if(flags != ITEM_TYPE && countBits(flags) > countBits(ITEM_TYPE & ~flags)) { result.append(X("(item() - ")); except = true; flags = ITEM_TYPE & ~flags; } if(flags == ITEM_TYPE && returnType_ == 0) { if(count++) buf.append(X(" | ")); buf.append(X("item()")); flags = 0; } if((flags & ANY_ATOMIC_TYPE) == ANY_ATOMIC_TYPE) { if(count++) buf.append(X(" | ")); buf.append(X("xs:anyAtomicType")); flags &= ~ANY_ATOMIC_TYPE; } if((flags & NODE_TYPE) == NODE_TYPE) { if(count++) buf.append(X(" | ")); buf.append(X("node()")); flags &= ~NODE_TYPE; } if((flags & DOCUMENT_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("document-node()")); } if((flags & ELEMENT_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("element()")); } if((flags & ATTRIBUTE_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("attribute()")); } if((flags & TEXT_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("text()")); } if((flags & PI_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("processing-instruction()")); } if((flags & COMMENT_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("comment()")); } if((flags & NAMESPACE_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("namespace()")); } if((flags & FUNCTION_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("function(")); if(returnType_ == 0) { buf.append(X("*")); } else { XPath2Utils::numToBuf(minArgs_, buf); buf.append(X(",")); if(maxArgs_ == UNLIMITED) buf.append(X("unlimited")); else XPath2Utils::numToBuf(maxArgs_, buf); buf.append(X(",")); returnType_->typeToBuf(buf); } buf.append(X(")")); } if((flags & ANY_SIMPLE_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:anySimpleType")); } if((flags & ANY_URI_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:anyURI")); } if((flags & BASE_64_BINARY_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:base64Binary")); } if((flags & BOOLEAN_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:boolean")); } if((flags & DATE_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:date")); } if((flags & DATE_TIME_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:dateTime")); } if((flags & DAY_TIME_DURATION_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:dayTimeDuration")); } if((flags & DECIMAL_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:decimal")); } if((flags & DOUBLE_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:double")); } if((flags & DURATION_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:duration")); } if((flags & FLOAT_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:float")); } if((flags & G_DAY_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:gDay")); } if((flags & G_MONTH_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:gMonth")); } if((flags & G_MONTH_DAY_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:gMonthDay")); } if((flags & G_YEAR_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:gYear")); } if((flags & G_YEAR_MONTH_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:gYearMonth")); } if((flags & HEX_BINARY_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:hexBinary")); } if((flags & NOTATION_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:NOTATION")); } if((flags & QNAME_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:QName")); } if((flags & STRING_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:string")); } if((flags & TIME_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:time")); } if((flags & UNTYPED_ATOMIC_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:untypedAtomic")); } if((flags & YEAR_MONTH_DURATION_TYPE) != 0) { if(count++) buf.append(X(" | ")); buf.append(X("xs:yearMonthDuration")); } if(count > 1) { result.append(X("(")); result.append(buf.getRawBuffer()); result.append(X(")")); } else { result.append(buf.getRawBuffer()); } if(except) { result.append(X(")")); } if(min_ == 0 && max_ == 1) { result.append(X("?")); } else if(min_ == 0 && max_ == StaticType::UNLIMITED) { result.append(X("*")); } else if(min_ == 1 && max_ == StaticType::UNLIMITED) { result.append(X("+")); } else if(min_ == 1 && max_ == 1) { // nothing } else { result.append(X("{")); XPath2Utils::numToBuf(min_, result); result.append(X(",")); if(max_ == UNLIMITED) result.append(X("unlimited")); else XPath2Utils::numToBuf(max_, result); result.append(X("}")); } } XQilla-2.3.0/src/ast/XQContextItem.cpp0000644000151400015140000000524011653565523014435 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include "../config/xqilla_config.h" #include #include #include #include #include #include XQContextItem::XQContextItem(XPath2MemoryManager* memMgr) : ASTNodeImpl(CONTEXT_ITEM, memMgr) { } XQContextItem::~XQContextItem() { //no-op } ASTNode* XQContextItem::staticResolution(StaticContext *context) { return this; } ASTNode *XQContextItem::staticTypingImpl(StaticContext *context) { if(context == 0) return this; _src.clear(); if(!context->getContextItemType().containsType(StaticType::ITEM_TYPE)) { XQThrow(DynamicErrorException,X("XQContextItem::staticTyping"), X("It is an error for the context item to be undefined when using it [err:XPDY0002]")); } _src.setProperties(StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::PEER | StaticAnalysis::SUBTREE | StaticAnalysis::SAMEDOC | StaticAnalysis::ONENODE | StaticAnalysis::SELF); _src.getStaticType() = context->getContextItemType(); _src.getStaticType().setCardinality(1, 1); _src.contextItemUsed(true); return this; } Result XQContextItem::createResult(DynamicContext* context, int flags) const { const Item::Ptr item = context->getContextItem(); if(item.isNull()) { XQThrow(DynamicErrorException,X("XQContextItem::ContextItemResult::createResult"), X("It is an error for the context item to be undefined when using it [err:XPDY0002]")); } return item; } Result XQContextItem::result(DynamicContext *context, const LocationInfo *info) { const Item::Ptr item = context->getContextItem(); if(item.isNull()) { XQThrow3(DynamicErrorException,X("XQContextItem::result"), X("It is an error for the context item to be undefined when using it [err:XPDY0002]"), info); } return item; } XQilla-2.3.0/src/ast/XQReturn.cpp0000644000151400015140000000707511653565523013461 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include XQReturn::XQReturn(TupleNode *parent, ASTNode *expr, XPath2MemoryManager *mm) : ASTNodeImpl(RETURN, mm), parent_(parent), expr_(expr) { } ASTNode *XQReturn::staticResolution(StaticContext *context) { parent_ = parent_->staticResolution(context); expr_ = expr_->staticResolution(context); return this; } ASTNode *XQReturn::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(expr_->getStaticAnalysis()); _src.getStaticType() = expr_->getStaticAnalysis().getStaticType(); _src.getStaticType().multiply(parent_->getMin(), parent_->getMax()); parent_ = parent_->staticTypingTeardown(context, _src); return this; } class ReturnResult : public ResultImpl { public: ReturnResult(const XQReturn *ast, const TupleResult::Ptr parent) : ResultImpl(ast), ast_(ast), parent_(parent), result_(0) { } virtual Item::Ptr next(DynamicContext *context) { AutoVariableStoreReset reset(context, parent_); Item::Ptr item; while((item = result_->next(context)).isNull()) { context->testInterrupt(); reset.reset(); if(parent_.isNull() || !parent_->next(context)) { parent_ = 0; return 0; } context->setVariableStore(parent_); result_ = ast_->getExpression()->createResult(context); } return item; } virtual std::string asString(DynamicContext *context, int indent) const { return ""; } private: const XQReturn *ast_; TupleResult::Ptr parent_; Result result_; }; Result XQReturn::createResult(DynamicContext* context, int flags) const { return ClosureResult::create(getStaticAnalysis(), context, new ReturnResult(this, parent_->createResult(context))); } EventGenerator::Ptr XQReturn::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { AutoVariableStoreReset reset(context); TupleResult::Ptr tuples = parent_->createResult(context); while(tuples->next(context)) { context->setVariableStore(tuples); expr_->generateAndTailCall(events, context, preserveNS, preserveType); reset.reset(); } return 0; } PendingUpdateList XQReturn::createUpdateList(DynamicContext *context) const { AutoVariableStoreReset reset(context); PendingUpdateList result; TupleResult::Ptr tuples = parent_->createResult(context); while(tuples->next(context)) { context->setVariableStore(tuples); result.mergeUpdates(expr_->createUpdateList(context)); reset.reset(); } return result; } XQilla-2.3.0/src/ast/XQTreatAs.cpp0000644000151400015140000001262511653565523013542 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE using namespace std; const XMLCh XQTreatAs::err_XPDY0050[] = { 'e', 'r', 'r', ':', 'X', 'P', 'D', 'Y', '0', '0', '5', '0', 0 }; const XMLCh XQTreatAs::err_XPTY0004[] = { 'e', 'r', 'r', ':', 'X', 'P', 'T', 'Y', '0', '0', '0', '4', 0 }; XQTreatAs::XQTreatAs(ASTNode* expr, SequenceType* exprType, XPath2MemoryManager* memMgr, const XMLCh *errorCode) : ASTNodeImpl(TREAT_AS, memMgr), _expr(expr), _exprType(exprType), _errorCode(errorCode), _doTypeCheck(true), _doCardinalityCheck(true), _isExact(false) { if(_errorCode == 0) _errorCode = err_XPTY0004; } XQTreatAs::XQTreatAs(ASTNode* expr, SequenceType *exprType, const XMLCh *errorCode, bool doTypeCheck, bool doCardinalityCheck, const StaticType &treatType, bool isExact, XPath2MemoryManager* memMgr) : ASTNodeImpl(TREAT_AS, memMgr), _expr(expr), _exprType(exprType), _errorCode(errorCode), _doTypeCheck(doTypeCheck), _doCardinalityCheck(doCardinalityCheck), _treatType(treatType), _isExact(isExact) { } ASTNode* XQTreatAs::staticResolution(StaticContext *context) { _exprType->staticResolution(context); if(_exprType->getOccurrenceIndicator() == SequenceType::QUESTION_MARK || _exprType->getOccurrenceIndicator() == SequenceType::EXACTLY_ONE) { AutoNodeSetOrderingReset orderReset(context); _expr = _expr->staticResolution(context); } else { _expr = _expr->staticResolution(context); } _exprType->getStaticType(_treatType, context, _isExact, this); return this; } ASTNode *XQTreatAs::staticTypingImpl(StaticContext *context) { _src.clear(); // Do as much static time type checking as we can, given the // limited static typing that we implement const StaticType &actualType = _expr->getStaticAnalysis().getStaticType(); // Get a better static type by looking at our expression's type too _src.getStaticType() = _treatType; _src.getStaticType() &= actualType; _src.setProperties(_expr->getStaticAnalysis().getProperties()); _src.add(_expr->getStaticAnalysis()); StaticType::TypeMatch match = _treatType.matches(actualType); if(!_expr->getStaticAnalysis().isUpdating()) { if((match.type == StaticType::NEVER || match.cardinality == StaticType::NEVER) && _errorCode != err_XPDY0050) { // It never matches XMLBuffer buf; buf.set(X("Expression does not match type ")); _exprType->toBuffer(buf); buf.append(X(" - the expression has a static type of ")); actualType.typeToBuf(buf); buf.append(X(" [")); buf.append(_errorCode); buf.append(X("]")); XQThrow(XPath2TypeMatchException, X("XQTreatAs::staticTyping"), buf.getRawBuffer()); } MessageListener *mlistener = context ? context->getMessageListener() : 0; if(mlistener && context->getDoLintWarnings() && _errorCode != err_XPDY0050) { if(match.type == StaticType::PROBABLY_NOT || match.cardinality == StaticType::PROBABLY_NOT) { // It might not match XMLBuffer buf; buf.set(X("The expression might not match type ")); _exprType->toBuffer(buf); buf.append(X(" - the expression has a static type of ")); actualType.typeToBuf(buf); mlistener->warning(buf.getRawBuffer(), this); } } if(_isExact && match.type == StaticType::ALWAYS) { _doTypeCheck = false; } if(match.cardinality == StaticType::ALWAYS) { _doCardinalityCheck = false; } if(!_doTypeCheck && !_doCardinalityCheck) { // It always matches return substitute(_expr); } } return this; } ASTNode *XQTreatAs::getExpression() const { return _expr; } SequenceType *XQTreatAs::getSequenceType() const { return _exprType; } void XQTreatAs::setExpression(ASTNode *item) { _expr = item; } Result XQTreatAs::createResult(DynamicContext* context, int flags) const { Result result = _expr->createResult(context, flags); if(_doCardinalityCheck && (_exprType->getOccurrenceIndicator() != SequenceType::STAR || _exprType->getItemType() == NULL)) { result = _exprType->occurrenceMatches(result, this, _errorCode); } if(_doTypeCheck) { result = _exprType->typeMatches(result, this, _errorCode); } return result; } XQilla-2.3.0/src/ast/XQCopy.cpp0000644000151400015140000001267711653565523013120 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include "../events/NoInheritFilter.hpp" #include XERCES_CPP_NAMESPACE_USE using namespace std; XQCopy::XQCopy(XPath2MemoryManager* memMgr) : ASTNodeImpl(COPY, memMgr), expr_(0), children_(XQillaAllocator(memMgr)), copyNamespaces_(true), inheritNamespaces_(true) { } XQCopy::XQCopy(ASTNode *expr, const VectorOfASTNodes &children, bool copyNamespaces, bool inheritNamespaces, XPath2MemoryManager* memMgr) : ASTNodeImpl(COPY, memMgr), expr_(expr), children_(XQillaAllocator(memMgr)), copyNamespaces_(copyNamespaces), inheritNamespaces_(inheritNamespaces) { children_ = children; } ASTNode* XQCopy::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); expr_ = expr_->staticResolution(context); unsigned int i; for(i = 0; i < children_.size(); ++i) { children_[i] = new (mm) XQContentSequence(children_[i], mm); children_[i]->setLocationInfo(this); children_[i] = children_[i]->staticResolution(context); } return this; } ASTNode *XQCopy::staticTypingImpl(StaticContext *context) { _src.clear(); _src.copy(expr_->getStaticAnalysis()); unsigned int i; for(i = 0; i < children_.size(); ++i) { _src.add(children_[i]->getStaticAnalysis()); } if(!_src.getStaticType().containsType(StaticType::NODE_TYPE)) { return expr_; } return this; } Result XQCopy::createResult(DynamicContext* context, int flags) const { Item::Ptr toBeCopied = getExpression()->createResult(context)->next(context); if(!toBeCopied->isNode()) return toBeCopied; AutoDelete builder(context->createSequenceBuilder()); EventGenerator::generateAndTailCall(generateEventsImpl(toBeCopied, builder.get(), context, true, true), builder.get(), context); builder->endEvent(); return builder->getSequence(); } EventGenerator::Ptr XQCopy::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { return generateEventsImpl(expr_->createResult(context)->next(context), events, context, preserveNS, preserveType); } EventGenerator::Ptr XQCopy::generateEventsImpl(const Item::Ptr &toBeCopied, EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { if(!toBeCopied->isNode()) { toBeCopied->generateEvents(events, context, preserveNS, preserveType); return 0; } Node *node = (Node*)toBeCopied.get(); if(node->dmNodeKind() == Node::element_string) { NoInheritFilter niFilter(events, context->getMemoryManager()); if(!inheritNamespaces_) events = &niFilter; AnyAtomicType::Ptr itemName = node->dmNodeName(context); const ATQNameOrDerived *pQName = (const ATQNameOrDerived*)itemName.get(); const XMLCh *prefix = emptyToNull(pQName->getPrefix()); const XMLCh *uri = emptyToNull(pQName->getURI()); const XMLCh *localname = pQName->getName(); events->startElementEvent(prefix, uri, localname); ElemConstructFilter elemFilter(events, this, context->getMemoryManager()); if(copyNamespaces_) { Result nsnodes = node->dmNamespaceNodes(context, this); Item::Ptr ns; while((ns = nsnodes->next(context)).notNull()) { ns->generateEvents(&elemFilter, context, preserveNS, preserveType); } } for(VectorOfASTNodes::const_iterator itCont = children_.begin(); itCont != children_.end (); ++itCont) { (*itCont)->generateAndTailCall(&elemFilter, context, preserveNS, preserveType); } // TBD validation and type - jpcs const XMLCh *typeURI = SchemaSymbols::fgURI_SCHEMAFORSCHEMA; const XMLCh *typeName = DocumentCache::g_szUntyped; events->endElementEvent(prefix, uri, localname, typeURI, typeName); } else if(node->dmNodeKind() == Node::document_string) { events->startDocumentEvent(0, 0); DocConstructFilter filter(events, this); for(VectorOfASTNodes::const_iterator itCont = children_.begin(); itCont != children_.end (); ++itCont) { (*itCont)->generateAndTailCall(&filter, context, preserveNS, preserveType); } events->endDocumentEvent(); } else { node->generateEvents(events, context, preserveNS, preserveType); } return 0; } XQilla-2.3.0/src/ast/ASTNodeImpl.cpp0000644000151400015140000001100411653565523013773 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include ASTNodeImpl::ASTNodeImpl(whichType type, XPath2MemoryManager* memMgr) : _src(memMgr), _type(type), _memMgr(memMgr) { } ASTNodeImpl::~ASTNodeImpl() { } void ASTNodeImpl::release() { ASTReleaser().release(this); } ASTNode *ASTNodeImpl::copy(DynamicContext *context) const { return ASTCopier().copy(this, context); } bool ASTNodeImpl::isSubsetOf(const ASTNode *other) const { // TBD - jpcs return false; } bool ASTNodeImpl::isEqualTo(const ASTNode *other) const { // TBD - jpcs return false; } ASTNode *ASTNodeImpl::staticTyping(StaticContext *context, StaticTyper *styper) { StaticTyper defaultTyper; if(styper == 0) styper = &defaultTyper; return styper->run(this, context); } bool ASTNodeImpl::isConstant() const { return !_src.isUsed(); } /** Overridden in XQSequence and XQLiteral */ bool ASTNodeImpl::isDateOrTimeAndHasNoTimezone(StaticContext *context) const { // To be safe, assume any value that contains a timezone might // not have one specified. return _src.getStaticType().containsType(StaticType::TIMEZONE_TYPE); } ASTNode::whichType ASTNodeImpl::getType() const { return _type; } PendingUpdateList ASTNodeImpl::createUpdateList(DynamicContext *context) const { return PendingUpdateList(); } Result ASTNodeImpl::iterateResult(const Result &contextItems, DynamicContext* context) const { if(_src.isContextSizeUsed()) { // We need the context size, so convert contextItems to a Sequence to work it out Sequence seq(((ResultImpl*)contextItems.get())->toSequence(context)); return ClosureResult::create(getStaticAnalysis(), context, new NavStepResult(new SequenceResult(this, seq), this, seq.getLength())); } return ClosureResult::create(getStaticAnalysis(), context, new NavStepResult(contextItems, this, 0)); } #include #include BoolResult ASTNodeImpl::boolResult(DynamicContext* context) const { Item::Ptr item = createResult(context)->next(context); return item.isNull() ? BoolResult::Null : ((ATBooleanOrDerived*)item.get())->isTrue() ? BoolResult::True : BoolResult::False; } EventGenerator::Ptr ASTNodeImpl::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { Result result = createResult(context); Item::Ptr item; while((item = result->next(context)).notNull()) { item->generateEvents(events, context, preserveNS, preserveType); } return 0; } ASTNode *ASTNodeImpl::substitute(ASTNode *&result) { ASTNode *tmp = result; result = 0; this->release(); return tmp; } XPath2MemoryManager* ASTNodeImpl::getMemoryManager() const { return _memMgr; } const StaticAnalysis &ASTNodeImpl::getStaticAnalysis() const { return _src; } XQilla-2.3.0/src/ast/ConvertFunctionArg.cpp0000644000151400015140000002371211653565523015505 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif XQPromoteUntyped::XQPromoteUntyped(ASTNode* expr, const XMLCh *uri, const XMLCh *name, XPath2MemoryManager* memMgr) : ASTNodeImpl(PROMOTE_UNTYPED, memMgr), expr_(expr), uri_(uri), name_(name), isPrimitive_(false), typeIndex_((AnyAtomicType::AtomicObjectType)-1) { } XQPromoteUntyped::XQPromoteUntyped(ASTNode* expr, const XMLCh *uri, const XMLCh *name, bool isPrimitive, AnyAtomicType::AtomicObjectType typeIndex, XPath2MemoryManager* memMgr) : ASTNodeImpl(PROMOTE_UNTYPED, memMgr), expr_(expr), uri_(uri), name_(name), isPrimitive_(isPrimitive), typeIndex_(typeIndex) { } ASTNode* XQPromoteUntyped::staticResolution(StaticContext *context) { expr_ = expr_->staticResolution(context); // crioux thinks this should also add: unless the target type is anyAtomicType! if(XPath2Utils::equals(name_, AnyAtomicType::fgDT_ANYATOMICTYPE) && XPath2Utils::equals(uri_, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) { return substitute(expr_); } typeIndex_ = context->getItemFactory()->getPrimitiveTypeIndex(uri_, name_, isPrimitive_); return this; } ASTNode *XQPromoteUntyped::staticTypingImpl(StaticContext *context) { _src.clear(); _src.getStaticType() = expr_->getStaticAnalysis().getStaticType(); _src.add(expr_->getStaticAnalysis()); if(!_src.getStaticType().containsType(StaticType::UNTYPED_ATOMIC_TYPE)) { return substitute(expr_); } _src.getStaticType().substitute(StaticType::UNTYPED_ATOMIC_TYPE, StaticType::create(typeIndex_)); return this; } Result XQPromoteUntyped::createResult(DynamicContext* context, int flags) const { return new PromoteUntypedResult(this, expr_->createResult(context, flags)); } PromoteUntypedResult::PromoteUntypedResult(const XQPromoteUntyped *di, const Result &parent) : ResultImpl(di), parent_(parent), isPrimitive_(di->getIsPrimitive()), typeIndex_(di->getTypeIndex()), uri_(di->getTypeURI()), name_(di->getTypeName()) { } PromoteUntypedResult::PromoteUntypedResult(const LocationInfo *location, const Result &parent, bool isPrimitive, AnyAtomicType::AtomicObjectType typeIndex, const XMLCh *uri, const XMLCh *name) : ResultImpl(location), parent_(parent), isPrimitive_(isPrimitive), typeIndex_(typeIndex), uri_(uri), name_(name) { } Item::Ptr PromoteUntypedResult::next(DynamicContext *context) { Item::Ptr item = parent_->next(context); if(item.notNull()) { assert(item->isAtomicValue()); const AnyAtomicType *atomic = (const AnyAtomicType *)item.get(); // 2. Each item in the atomic sequence that is of type xdt:untypedAtomic is cast to the expected atomic // type. For built-in functions where the expected type is specified as numeric, arguments of type // xdt:untypedAtomic are cast to xs:double. if(atomic->getPrimitiveTypeIndex() == AnyAtomicType::UNTYPED_ATOMIC) { try { if(isPrimitive_) { item = atomic->castAs(typeIndex_, 0, 0, context); } else { item = atomic->castAs(typeIndex_, uri_, name_, context); } } catch(XPath2TypeCastException &e) { if(e.getXQueryLine() == 0) e.setXQueryPosition(this); throw; } } } else { parent_ = 0; } return item; } //////////////////////////////////////////////////////////////////////////////////////////////////// XQPromoteNumeric::XQPromoteNumeric(ASTNode* expr, const XMLCh *uri, const XMLCh *name, XPath2MemoryManager* memMgr) : ASTNodeImpl(PROMOTE_NUMERIC, memMgr), expr_(expr), uri_(uri), name_(name), typeIndex_((AnyAtomicType::AtomicObjectType)-1) { } XQPromoteNumeric::XQPromoteNumeric(ASTNode* expr, const XMLCh *uri, const XMLCh *name, AnyAtomicType::AtomicObjectType typeIndex, XPath2MemoryManager* memMgr) : ASTNodeImpl(PROMOTE_NUMERIC, memMgr), expr_(expr), uri_(uri), name_(name), typeIndex_(typeIndex) { } ASTNode* XQPromoteNumeric::staticResolution(StaticContext *context) { expr_ = expr_->staticResolution(context); if(!((XPath2Utils::equals(name_, SchemaSymbols::fgDT_DOUBLE) || XPath2Utils::equals(name_, SchemaSymbols::fgDT_FLOAT)) && XPath2Utils::equals(uri_, SchemaSymbols::fgURI_SCHEMAFORSCHEMA))) { return substitute(expr_); } bool isPrimitive; typeIndex_ = context->getItemFactory()->getPrimitiveTypeIndex(uri_, name_, isPrimitive); return this; } ASTNode *XQPromoteNumeric::staticTypingImpl(StaticContext *context) { _src.clear(); _src.getStaticType() = expr_->getStaticAnalysis().getStaticType(); _src.add(expr_->getStaticAnalysis()); if(typeIndex_ == AnyAtomicType::DOUBLE) { if(!_src.getStaticType().containsType(StaticType::DECIMAL_TYPE | StaticType::FLOAT_TYPE)) return substitute(expr_); _src.getStaticType().substitute(StaticType::DECIMAL_TYPE | StaticType::FLOAT_TYPE, StaticType::DOUBLE_TYPE); } else if(typeIndex_ == AnyAtomicType::FLOAT) { if(!_src.getStaticType().containsType(StaticType::DECIMAL_TYPE)) return substitute(expr_); _src.getStaticType().substitute(StaticType::DECIMAL_TYPE, StaticType::FLOAT_TYPE); } else { return substitute(expr_); } return this; } Result XQPromoteNumeric::createResult(DynamicContext* context, int flags) const { return new PromoteNumericResult(this, expr_->createResult(context, flags), typeIndex_); } Item::Ptr PromoteNumericResult::next(DynamicContext *context) { Item::Ptr item = parent_->next(context); if(item.notNull()) { assert(item->isAtomicValue()); const AnyAtomicType *atomic = (const AnyAtomicType *)item.get(); // 3. For each numeric item in the atomic sequence that can be promoted to the expected atomic type using // the promotion rules in B.1 Type Promotion, the promotion is done. if(atomic->isNumericValue()) { try { const Numeric::Ptr promotedType = ((const Numeric*)atomic)-> promoteTypeIfApplicable(typeIndex_, context); if(promotedType.notNull()) { item = promotedType; } } catch (XPath2TypeCastException &e) { XQThrow(XPath2ErrorException, X("SequenceType::AtomicTypeConvertFunctionArgResult::next"), X("Numeric type promotion failed (for promotable type)")); } catch (const XMLException& e) { XQThrow(XPath2ErrorException, X("SequenceType::AtomicTypeConvertFunctionArgResult::next"), X("Numeric type promotion failed (for promotable type)")); } } } else { parent_ = 0; } return item; } //////////////////////////////////////////////////////////////////////////////////////////////////// XQPromoteAnyURI::XQPromoteAnyURI(ASTNode* expr, const XMLCh *uri, const XMLCh *name, XPath2MemoryManager* memMgr) : ASTNodeImpl(PROMOTE_ANY_URI, memMgr), expr_(expr), uri_(uri), name_(name) { } ASTNode* XQPromoteAnyURI::staticResolution(StaticContext *context) { expr_ = expr_->staticResolution(context); if(!XPath2Utils::equals(name_, SchemaSymbols::fgDT_STRING) || !XPath2Utils::equals(uri_, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) { return substitute(expr_); } return this; } ASTNode *XQPromoteAnyURI::staticTypingImpl(StaticContext *context) { _src.clear(); _src.getStaticType() = expr_->getStaticAnalysis().getStaticType(); _src.add(expr_->getStaticAnalysis()); if(!_src.getStaticType().containsType(StaticType::ANY_URI_TYPE)) { return substitute(expr_); } _src.getStaticType().substitute(StaticType::ANY_URI_TYPE, StaticType::STRING_TYPE); return this; } Result XQPromoteAnyURI::createResult(DynamicContext* context, int flags) const { return new PromoteAnyURIResult(this, expr_->createResult(context, flags)); } Item::Ptr PromoteAnyURIResult::next(DynamicContext *context) { Item::Ptr item = parent_->next(context); if(item.notNull()) { assert(item->isAtomicValue()); const AnyAtomicType *atomic = (const AnyAtomicType *)item.get(); // 4. For each item of type xs:anyURI in the atomic sequence that can be promoted to the expected atomic // type using URI promotion as described in B.1 Type Promotion, the promotion is done. if(atomic->getPrimitiveTypeIndex() == AnyAtomicType::ANY_URI) { try { item = atomic->castAs(AnyAtomicType::STRING, context); } catch (XPath2TypeCastException &e) { XQThrow(XPath2ErrorException, X("SequenceType::AtomicTypeConvertFunctionArgResult::next"), X("AnyURI type promotion failed (for promotable type)")); } catch (const XMLException& e) { XQThrow(XPath2ErrorException, X("SequenceType::AtomicTypeConvertFunctionArgResult::next"), X("AnyURI type promotion failed (for promotable type)")); } } } else { parent_ = 0; } return item; } XQilla-2.3.0/src/ast/XQDocumentConstructor.cpp0000644000151400015140000001057211653565523016222 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif XQDocumentConstructor::XQDocumentConstructor(ASTNode *value, XPath2MemoryManager* mm) : XQDOMConstructor(mm), m_value(value) { } EventGenerator::Ptr XQDocumentConstructor::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { events->startDocumentEvent(0, 0); DocConstructFilter filter(events, this); m_value->generateAndTailCall(&filter, context, preserveNS, preserveType); events->endDocumentEvent(); return 0; } ASTNode* XQDocumentConstructor::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); m_value = new (mm) XQContentSequence(m_value, mm); m_value->setLocationInfo(this); m_value = m_value->staticResolution(context); return this; } ASTNode *XQDocumentConstructor::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(m_value->getStaticAnalysis()); if(m_value->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("XQDocumentConstructor::staticTyping"), X("It is a static error for the content expression of a document node constructor " "to be an updating expression [err:XUST0001]")); } _src.getStaticType() = StaticType::DOCUMENT_TYPE; _src.creative(true); _src.setProperties(StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::PEER | StaticAnalysis::SUBTREE | StaticAnalysis::SAMEDOC | StaticAnalysis::ONENODE); return this; } const XMLCh* XQDocumentConstructor::getNodeType() const { return Node::document_string; } ASTNode *XQDocumentConstructor::getValue() const { return m_value; } void XQDocumentConstructor::setValue(ASTNode *value) { m_value = value; } ////////////////////////////////////////////////////////////////////// DocConstructFilter::DocConstructFilter(EventHandler *next, const LocationInfo *location) : EventFilter(next), location_(location), level_(0) { } void DocConstructFilter::startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname) { ++level_; next_->startElementEvent(prefix, uri, localname); } void DocConstructFilter::endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName) { next_->endElementEvent(prefix, uri, localname, typeURI, typeName); --level_; } void DocConstructFilter::attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { if(level_ == 0) { XQThrow3(ASTException,X("DocConstructFilter::attributeEvent"), X("An attribute node cannot be a child of a document [err:XPTY0004]."), location_); } next_->attributeEvent(prefix, uri, localname, value, typeURI, typeName); } void DocConstructFilter::namespaceEvent(const XMLCh *prefix, const XMLCh *uri) { if(level_ == 0) { XQThrow3(ASTException,X("DocConstructFilter::attributeEvent"), X("An namespace node cannot be a child of a document [err:XPTY0004]."), location_); } next_->namespaceEvent(prefix, uri); } XQilla-2.3.0/src/ast/XQPartialApply.cpp0000644000151400015140000001002611653565523014572 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; using namespace std; XQPartialApply::XQPartialApply(ASTNode *expr, VectorOfASTNodes *args, XPath2MemoryManager *mm) : ASTNodeImpl(PARTIAL_APPLY, mm), expr_(expr), args_(args) { } ASTNode *XQPartialApply::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); SequenceType *seqType = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_FUNCTION), SequenceType::EXACTLY_ONE); seqType->setLocationInfo(this); expr_ = new (mm) XQTreatAs(expr_, seqType, mm); expr_->setLocationInfo(this); expr_ = expr_->staticResolution(context); unsigned int argCount = 0; if(args_) { for(VectorOfASTNodes::iterator i = args_->begin(); i != args_->end(); ++i) { if(*i != 0) { *i = (*i)->staticResolution(context); ++argCount; } } } // If no actual arguments are specified, the partial apply has no effect if(argCount == 0) { ASTNode *result = expr_; expr_ = 0; this->release(); return result; } return this; } ASTNode *XQPartialApply::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(expr_->getStaticAnalysis()); unsigned int argCount = 0; if(args_) { for(VectorOfASTNodes::iterator i = args_->begin(); i != args_->end(); ++i) { if(*i != 0) { _src.add((*i)->getStaticAnalysis()); ++argCount; } } } const StaticType &inType = expr_->getStaticAnalysis().getStaticType(); if(inType.getReturnType() == 0) { _src.getStaticType() = StaticType::FUNCTION_TYPE; } else { unsigned int minArgs = inType.getMinArgs(); unsigned int maxArgs = inType.getMaxArgs(); if(minArgs > argCount) minArgs -= argCount; else minArgs = 0; if(maxArgs > argCount) maxArgs -= argCount; else maxArgs = 0; // TBD Using getMemoryManager() might not be thread safe in DB XML - jpcs _src.getStaticType() = StaticType(getMemoryManager(), minArgs, maxArgs, *inType.getReturnType()); } return this; } Result XQPartialApply::createResult(DynamicContext *context, int flags) const { FunctionRef::Ptr function = (FunctionRef*)expr_->createResult(context)->next(context).get(); if(args_->size() != function->getNumArgs()) { XMLBuffer buf; buf.set(X("The function item invoked does not accept ")); XPath2Utils::numToBuf((unsigned int)args_->size(), buf); buf.append(X(" arguments - found item of type ")); function->typeToBuffer(context, buf); buf.append(X(" [err:XPTY0004]")); XQThrow(XPath2TypeMatchException, X("XQPartialApply::createResult"), buf.getRawBuffer()); } int argNum = 1; VectorOfASTNodes::iterator i; for(i = args_->begin(); i != args_->end(); ++i) { if(*i) function = function->partialApply((*i)->createResult(context), argNum, context, this); else ++argNum; } return (Item::Ptr)function; } XQilla-2.3.0/src/ast/XQStep.cpp0000644000151400015140000001330111653565523013102 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include XQStep::XQStep(Axis axis, NodeTest* nodeTest, XPath2MemoryManager* memMgr) : ASTNodeImpl(STEP, memMgr), nodeTest_(nodeTest), axis_(axis) { } XQStep::~XQStep() { } unsigned int XQStep::getAxisProperties(Axis axis) { unsigned int properties = 0; // properties depend on the axis of the step switch (axis) { case SELF: properties |= StaticAnalysis::ONENODE | StaticAnalysis::SELF; // Fall through case CHILD: case ATTRIBUTE: case NAMESPACE: properties |= StaticAnalysis::SUBTREE | StaticAnalysis::PEER; break; case DESCENDANT: case DESCENDANT_OR_SELF: properties |= StaticAnalysis::SUBTREE; break; case FOLLOWING_SIBLING: case PRECEDING_SIBLING: properties |= StaticAnalysis::PEER; break; case PARENT: properties |= StaticAnalysis::PEER | StaticAnalysis::ONENODE; break; default: break; } properties |= StaticAnalysis::GROUPED | StaticAnalysis::SAMEDOC; if(isForwardAxis(axis) || axis == PARENT) { properties |= StaticAnalysis::DOCORDER; } return properties; } ASTNode* XQStep::staticResolution(StaticContext *context) { nodeTest_->staticResolution(context, this); return this; } ASTNode *XQStep::staticTypingImpl(StaticContext *context) { _src.clear(); if(context && !context->getContextItemType().containsType(StaticType::ITEM_TYPE)) { XQThrow(DynamicErrorException,X("XQStep::staticTyping"), X("It is an error for the context item to be undefined when using it [err:XPDY0002]")); } _src.setProperties(getAxisProperties(axis_)); _src.contextItemUsed(true); bool isExact; nodeTest_->getStaticType(_src.getStaticType(), context, isExact, this); _src.getStaticType().multiply(0, StaticType::UNLIMITED); switch(axis_) { case SELF: if(context) _src.getStaticType().typeNodeIntersect(context->getContextItemType()); break; case ATTRIBUTE: _src.getStaticType().typeNodeIntersect(StaticType(StaticType::ATTRIBUTE_TYPE, 0, StaticType::UNLIMITED)); break; case NAMESPACE: _src.getStaticType().typeNodeIntersect(StaticType(StaticType::NAMESPACE_TYPE, 0, StaticType::UNLIMITED)); break; case CHILD: case DESCENDANT: case FOLLOWING: case FOLLOWING_SIBLING: case PRECEDING: case PRECEDING_SIBLING: _src.getStaticType().typeNodeIntersect(StaticType(StaticType::ELEMENT_TYPE | StaticType::TEXT_TYPE | StaticType::PI_TYPE | StaticType::COMMENT_TYPE, 0, StaticType::UNLIMITED)); break; case ANCESTOR: case PARENT: _src.getStaticType().typeNodeIntersect(StaticType(StaticType::DOCUMENT_TYPE | StaticType::ELEMENT_TYPE, 0, StaticType::UNLIMITED)); break; case DESCENDANT_OR_SELF: case ANCESTOR_OR_SELF: // Could be any type break; } return this; } bool XQStep::isForwardAxis(Axis axis) { switch(axis) { case ANCESTOR: case ANCESTOR_OR_SELF: case PARENT: case PRECEDING: case PRECEDING_SIBLING: return false; case ATTRIBUTE: case CHILD: case DESCENDANT: case DESCENDANT_OR_SELF: case FOLLOWING: case FOLLOWING_SIBLING: case NAMESPACE: case SELF: return true; } return false; } NodeTest *XQStep::getNodeTest() const { return nodeTest_; } void XQStep::setNodeTest(NodeTest *nt) { nodeTest_ = nt; } XQStep::Axis XQStep::getAxis() const { return axis_; } void XQStep::setAxis(XQStep::Axis a) { axis_ = a; } class StepResult : public ResultImpl { public: StepResult(const Result &parent, const XQStep *step) : ResultImpl(step), parent_(parent), step_(step), stepResult_(0) { } Item::Ptr next(DynamicContext *context) { Item::Ptr result; while((result = stepResult_->next(context)).isNull()) { context->testInterrupt(); Item::Ptr item = parent_->next(context); if(item.isNull()) { return 0; } if(!item->isNode()) { XQThrow(TypeErrorException,X("StepResult::next"), X("An attempt was made to perform an axis step when the Context Item was not a node [err:XPTY0020]")); } stepResult_ = ((Node*)item.get())->getAxisResult(step_->getAxis(), step_->getNodeTest(), context, this); } return result; } protected: Result parent_; const XQStep *step_; Result stepResult_; }; Result XQStep::createResult(DynamicContext* context, int flags) const { return new StepResult(XQContextItem::result(context, this), this); } Result XQStep::iterateResult(const Result &contextItems, DynamicContext* context) const { return new StepResult(contextItems, this); } XQilla-2.3.0/src/ast/StaticAnalysis.cpp0000644000151400015140000002711611653565523014662 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; using namespace std; StaticAnalysis::StaticAnalysis(XPath2MemoryManager* memMgr) : _recycle(0), _memMgr(memMgr) { memset(_dynamicVariables, 0, sizeof(_dynamicVariables)); clear(); } StaticAnalysis::StaticAnalysis(const StaticAnalysis &o, XPath2MemoryManager* memMgr) : _recycle(0), _memMgr(memMgr) { memset(_dynamicVariables, 0, sizeof(_dynamicVariables)); clear(); copy(o); } void StaticAnalysis::copy(const StaticAnalysis &o) { add(o); _properties = o._properties; _staticType = o._staticType; } void StaticAnalysis::release() { _staticType = StaticType(); VarEntry *tmp; for(int i = 0; i < HASH_SIZE; ++i) { while(_dynamicVariables[i]) { tmp = _dynamicVariables[i]; _dynamicVariables[i] = tmp->prev; _memMgr->deallocate(tmp); } } while(_recycle) { tmp = _recycle; _recycle = tmp->prev; _memMgr->deallocate(tmp); } } void StaticAnalysis::clear() { clearExceptType(); _staticType = StaticType(); } void StaticAnalysis::clearExceptType() { _contextItem = false; _contextPosition = false; _contextSize = false; _currentTime = false; _implicitTimezone = false; _availableDocuments = false; _availableCollections = false; _forceNoFolding = false; _creative = false; _updating = false; _possiblyUpdating = false; _properties = 0; VarEntry *tmp; for(int i = 0; i < HASH_SIZE; ++i) { while(_dynamicVariables[i]) { tmp = _dynamicVariables[i]; _dynamicVariables[i] = tmp->prev; tmp->prev = _recycle; _recycle = tmp; } } } void StaticAnalysis::contextItemUsed(bool value) { _contextItem = value; } void StaticAnalysis::contextPositionUsed(bool value) { _contextPosition = value; } void StaticAnalysis::contextSizeUsed(bool value) { _contextSize = value; } bool StaticAnalysis::isContextItemUsed() const { return _contextItem; } bool StaticAnalysis::isContextPositionUsed() const { return _contextPosition; } bool StaticAnalysis::isContextSizeUsed() const { return _contextSize; } /** Returns true if any of the context item flags have been used */ bool StaticAnalysis::areContextFlagsUsed() const { return _contextItem || _contextPosition || _contextSize; } void StaticAnalysis::currentTimeUsed(bool value) { _currentTime = value; } void StaticAnalysis::implicitTimezoneUsed(bool value) { _implicitTimezone = value; } void StaticAnalysis::availableDocumentsUsed(bool value) { _availableDocuments = value; } void StaticAnalysis::availableCollectionsUsed(bool value) { _availableCollections = value; } bool StaticAnalysis::areDocsOrCollectionsUsed() const { return _availableDocuments || _availableCollections; } void StaticAnalysis::forceNoFolding(bool value) { _forceNoFolding = value; } bool StaticAnalysis::isNoFoldingForced() const { return _forceNoFolding; } #define CREATE_VAR_ENTRY(entry) \ do { \ if(_recycle) { \ (entry) = _recycle; \ _recycle = (entry)->prev; \ } \ else { \ (entry) = new (_memMgr) VarEntry(); \ } \ } while(0) #define ADD_VAR_ENTRY(entry) \ do { \ VarEntry *ve = _dynamicVariables[(entry)->hash]; \ while(ve) { \ if(ve->uri == (entry)->uri && ve->name == (entry)->name) \ break; \ ve = ve->prev; \ } \ if(ve) { \ (entry)->prev = _recycle; \ _recycle = (entry); \ } \ else { \ (entry)->prev = _dynamicVariables[(entry)->hash]; \ _dynamicVariables[(entry)->hash] = (entry); \ } \ } while(0) void StaticAnalysis::variableUsed(const XMLCh *namespaceURI, const XMLCh *name) { VarEntry *entry; CREATE_VAR_ENTRY(entry); entry->set(_memMgr->getPooledString(namespaceURI), _memMgr->getPooledString(name)); ADD_VAR_ENTRY(entry); } StaticAnalysis::VarEntry **StaticAnalysis::variablesUsed() const { return (VarEntry**)_dynamicVariables; } bool StaticAnalysis::removeVariable(const XMLCh *namespaceURI, const XMLCh *name) { VarEntry lookup; lookup.set(_memMgr->getPooledString(namespaceURI), _memMgr->getPooledString(name)); VarEntry **parent = &_dynamicVariables[lookup.hash]; while(*parent) { if((*parent)->uri == lookup.uri && (*parent)->name == lookup.name) { VarEntry *tmp = *parent; *parent = tmp->prev; tmp->prev = _recycle; _recycle = tmp; return true; } else { parent = &(*parent)->prev; } } return false; } bool StaticAnalysis::isVariableUsed(const XMLCh *namespaceURI, const XMLCh *name) const { VarEntry lookup; lookup.set(_memMgr->getPooledString(namespaceURI), _memMgr->getPooledString(name)); VarEntry *entry = _dynamicVariables[lookup.hash]; while(entry) { if(entry->uri == lookup.uri && entry->name == lookup.name) { return true; } entry = entry->prev; } return false; } bool StaticAnalysis::isVariableUsed() const { for(int i = 0; i < HASH_SIZE; ++i) { if(_dynamicVariables[i]) return true; } return false; } /** Sets the members of this StaticAnalysis from the given StaticAnalysis */ void StaticAnalysis::add(const StaticAnalysis &o) { if(o._contextItem) _contextItem = true; if(o._contextPosition) _contextPosition = true; if(o._contextSize) _contextSize = true; if(o._currentTime) _currentTime = true; if(o._implicitTimezone) _implicitTimezone = true; if(o._availableDocuments) _availableDocuments = true; if(o._availableCollections) _availableCollections = true; if(o._forceNoFolding) _forceNoFolding = true; if(o._creative) _creative = true; if(o._updating) _updating = true; // Don't copy _possiblyUpdating for(int i = 0; i < HASH_SIZE; ++i) { VarEntry *entry = o._dynamicVariables[i]; while(entry) { VarEntry *newEntry; CREATE_VAR_ENTRY(newEntry); newEntry->set(entry->uri, entry->name, entry->hash); ADD_VAR_ENTRY(newEntry); entry = entry->prev; } } } void StaticAnalysis::addExceptContextFlags(const StaticAnalysis &o) { if(o._currentTime) _currentTime = true; if(o._implicitTimezone) _implicitTimezone = true; if(o._availableDocuments) _availableDocuments = true; if(o._availableCollections) _availableCollections = true; if(o._forceNoFolding) _forceNoFolding = true; if(o._creative) _creative = true; if(o._updating) _updating = true; // Don't copy _possiblyUpdating for(int i = 0; i < HASH_SIZE; ++i) { VarEntry *entry = o._dynamicVariables[i]; while(entry) { VarEntry *newEntry; CREATE_VAR_ENTRY(newEntry); newEntry->set(entry->uri, entry->name, entry->hash); ADD_VAR_ENTRY(newEntry); entry = entry->prev; } } } void StaticAnalysis::addExceptVariable(const XMLCh *namespaceURI, const XMLCh *name, const StaticAnalysis &o) { namespaceURI = _memMgr->getPooledString(namespaceURI); name = _memMgr->getPooledString(name); if(o._contextItem) _contextItem = true; if(o._contextPosition) _contextPosition = true; if(o._contextSize) _contextSize = true; if(o._currentTime) _currentTime = true; if(o._implicitTimezone) _implicitTimezone = true; if(o._availableDocuments) _availableDocuments = true; if(o._availableCollections) _availableCollections = true; if(o._forceNoFolding) _forceNoFolding = true; if(o._creative) _creative = true; if(o._updating) _updating = true; // Don't copy _possiblyUpdating for(int i = 0; i < HASH_SIZE; ++i) { VarEntry *entry = o._dynamicVariables[i]; while(entry) { if(namespaceURI != entry->uri || name != entry->name) { VarEntry *newEntry; CREATE_VAR_ENTRY(newEntry); newEntry->set(entry->uri, entry->name, entry->hash); ADD_VAR_ENTRY(newEntry); } entry = entry->prev; } } } /** Returns true if flags are set, or variables have been used */ bool StaticAnalysis::isUsed() const { return _contextItem || _contextPosition || _contextSize || _currentTime || _implicitTimezone || _availableCollections || _availableDocuments || _forceNoFolding || _creative || isVariableUsed(); } bool StaticAnalysis::isUsedExceptContextFlags() const { return _currentTime || _implicitTimezone || _availableCollections || _availableDocuments || _forceNoFolding || _creative || isVariableUsed(); } void StaticAnalysis::creative(bool value) { _creative = value; } bool StaticAnalysis::isCreative() const { return _creative; } void StaticAnalysis::updating(bool value) { _updating = value; } bool StaticAnalysis::isUpdating() const { return _updating; } void StaticAnalysis::possiblyUpdating(bool value) { _possiblyUpdating = value; } bool StaticAnalysis::isPossiblyUpdating() const { return _possiblyUpdating; } unsigned int StaticAnalysis::getProperties() const { return _properties; } void StaticAnalysis::setProperties(unsigned int props) { _properties = props; } const StaticType &StaticAnalysis::getStaticType() const { return _staticType; } StaticType &StaticAnalysis::getStaticType() { return _staticType; } std::string StaticAnalysis::toString() const { std::ostringstream s; s << "Context Item: " << (_contextItem ? "true" : "false") << std::endl; s << "Context Position: " << (_contextPosition ? "true" : "false") << std::endl; s << "Context Size: " << (_contextSize ? "true" : "false") << std::endl; s << "Current Time: " << (_currentTime ? "true" : "false") << std::endl; s << "Implicit Timezone: " << (_implicitTimezone ? "true" : "false") << std::endl; s << "Available Documents: " << (_availableDocuments ? "true" : "false") << std::endl; s << "Available Collections: " << (_availableCollections ? "true" : "false") << std::endl; s << "Force No Folding: " << (_forceNoFolding ? "true" : "false") << std::endl; s << "Creative: " << (_creative ? "true" : "false") << std::endl; s << "Updating: " << (_updating ? "true" : "false") << std::endl; s << "Possibly Updating: " << (_possiblyUpdating ? "true" : "false") << std::endl; s << "Variables Used: ["; bool first = true; for(int i = 0; i < HASH_SIZE; ++i) { VarEntry *entry = _dynamicVariables[i]; while(entry) { if(first) { first = false; } else { s << ", "; } s << "{" << UTF8(entry->uri) << "}" << UTF8(entry->name); entry = entry->prev; } } s << "]" << std::endl; XMLBuffer buf; _staticType.typeToBuf(buf); s << "Static Type: " << UTF8(buf.getRawBuffer()) << std::endl; return s.str(); } void StaticAnalysis::VarEntry::set(const XMLCh *u, const XMLCh *n) { uri = u; name = n; hash = 5381; prev = 0; if(u) { while(*u++) hash = ((hash << 5) + hash) + *u; } if(n) { while(*n++) hash = ((hash << 5) + hash) + *n; } hash %= HASH_SIZE; } void StaticAnalysis::VarEntry::set(const XMLCh *u, const XMLCh *n, size_t h) { uri = u; name = n; hash = h; prev = 0; } XQilla-2.3.0/src/ast/XQFunctionDeref.cpp0000644000151400015140000000717511653565523014736 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; using namespace std; XQFunctionDeref::XQFunctionDeref(ASTNode *expr, VectorOfASTNodes *args, XPath2MemoryManager *mm) : ASTNodeImpl(FUNCTION_DEREF, mm), expr_(expr), args_(args) { } ASTNode *XQFunctionDeref::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); SequenceType *seqType = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_FUNCTION), SequenceType::EXACTLY_ONE); seqType->setLocationInfo(this); expr_ = new (mm) XQTreatAs(expr_, seqType, mm); expr_->setLocationInfo(this); expr_ = expr_->staticResolution(context); if(args_) { for(VectorOfASTNodes::iterator i = args_->begin(); i != args_->end(); ++i) { *i = (*i)->staticResolution(context); } } return this; } ASTNode *XQFunctionDeref::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(expr_->getStaticAnalysis()); if(args_) { for(VectorOfASTNodes::iterator i = args_->begin(); i != args_->end(); ++i) { _src.add((*i)->getStaticAnalysis()); } } if(expr_->getStaticAnalysis().getStaticType().getReturnType()) { _src.getStaticType() = *expr_->getStaticAnalysis().getStaticType().getReturnType(); } else { _src.getStaticType() = StaticType(StaticType::ITEM_TYPE, 0, StaticType::UNLIMITED); } return this; } class FunctionDerefResult : public ResultImpl { public: FunctionDerefResult(const XQFunctionDeref *ast) : ResultImpl(ast), ast_(ast) { } virtual Item::Ptr nextOrTail(Result &tail, DynamicContext *context) { FunctionRef::Ptr func = (FunctionRef*)ast_->getExpression()->createResult(context)->next(context).get(); if(func.isNull()) return 0; VectorOfResults args; if(ast_->getArguments()) { for(VectorOfASTNodes::iterator i = ast_->getArguments()->begin(); i != ast_->getArguments()->end(); ++i) { args.push_back(ClosureResult::create(*i, context)); } } tail = func->execute(args, context, this); return 0; } private: const XQFunctionDeref *ast_; }; Result XQFunctionDeref::createResult(DynamicContext *context, int flags) const { FunctionRef::Ptr func = (FunctionRef*)getExpression()->createResult(context)->next(context).get(); if(func.isNull()) return 0; VectorOfResults args; if(getArguments()) { for(VectorOfASTNodes::iterator i = getArguments()->begin(); i != getArguments()->end(); ++i) { args.push_back(ClosureResult::create(*i, context)); } } return func->execute(args, context, this); } XQilla-2.3.0/src/ast/XQNamespaceConstructor.cpp0000644000151400015140000001310211653565523016330 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif XQNamespaceConstructor::XQNamespaceConstructor(ASTNode* name, VectorOfASTNodes* children, XPath2MemoryManager* mm) : XQDOMConstructor(mm), m_name(name), m_children(children) { } EventGenerator::Ptr XQNamespaceConstructor::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { const XMLCh *nodeName = m_name->createResult(context)->next(context)->asString(context); if(*nodeName && !XMLChar1_0::isValidNCName(nodeName, XMLString::stringLen(nodeName))) XQThrow(ASTException,X("XQNamespaceConstructor::generateEvents"), X("The name for the namespace node must be either a zero-length string or a valid xs:NCName [err:XTDE0920]")); if(XPath2Utils::equals(nodeName, XMLUni::fgXMLNSString)) XQThrow(ASTException,X("XQNamespaceConstructor::generateEvents"), X("The name for the namespace node must not be \"xmlns\" [err:XTDE0920]")); XMLBuffer value; getStringValue(m_children, value, context); if(value.getLen() == 0) XQThrow(ASTException,X("XQNamespaceConstructor::generateEvents"), X("The value for the namespace node must not be empty [err:XTDE0930]")); if(XPath2Utils::equals(nodeName, XMLUni::fgXMLString) && !XPath2Utils::equals(value.getRawBuffer(), XMLUni::fgXMLURIName)) XQThrow(ASTException,X("XQNamespaceConstructor::generateEvents"), X("The name for the namespace node must not be \"xml\" when the value is not \"http://www.w3.org/XML/1998/namespace\" [err:XTDE0925]")); if(XPath2Utils::equals(value.getRawBuffer(), XMLUni::fgXMLURIName) && !XPath2Utils::equals(nodeName, XMLUni::fgXMLString)) XQThrow(ASTException,X("XQNamespaceConstructor::generateEvents"), X("The value for the namespace node must not be \"http://www.w3.org/XML/1998/namespace\" when the name is not \"xml\" [err:XTDE0925]")); events->namespaceEvent(nodeName, value.getRawBuffer()); return 0; } ASTNode* XQNamespaceConstructor::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); // and run static resolution m_name = new (mm) XQAtomize(m_name, mm); m_name->setLocationInfo(this); m_name = m_name->staticResolution(context); unsigned int i; for(i = 0;i < m_children->size(); ++i) { // atomize content and run static resolution (*m_children)[i] = new (mm) XQAtomize((*m_children)[i], mm); (*m_children)[i]->setLocationInfo(this); (*m_children)[i] = (*m_children)[i]->staticResolution(context); } return this; } ASTNode *XQNamespaceConstructor::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(m_name->getStaticAnalysis()); if(m_name->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("XQNamespaceConstructor::staticTyping"), X("It is a static error for the name expression of an namespace constructor " "to be an updating expression [err:XUST0001]")); } unsigned int i; for(i = 0; i < m_children->size(); ++i) { _src.add((*m_children)[i]->getStaticAnalysis()); if((*m_children)[i]->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("XQNamespaceConstructor::staticTyping"), X("It is a static error for the a value expression of an namespace constructor " "to be an updating expression [err:XUST0001]")); } } _src.getStaticType() = StaticType::NAMESPACE_TYPE; _src.creative(true); _src.setProperties(StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::PEER | StaticAnalysis::SUBTREE | StaticAnalysis::SAMEDOC | StaticAnalysis::ONENODE); return this; } const XMLCh* XQNamespaceConstructor::getNodeType() const { return Node::namespace_string; } ASTNode *XQNamespaceConstructor::getName() const { return m_name; } const VectorOfASTNodes *XQNamespaceConstructor::getChildren() const { return m_children; } void XQNamespaceConstructor::setName(ASTNode *name) { m_name = name; } XQilla-2.3.0/src/ast/ForTuple.cpp0000644000151400015140000001405111653565523013461 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; ForTuple::ForTuple(TupleNode *parent, const XMLCh *varQName, const XMLCh *posQName, ASTNode *expr, XPath2MemoryManager *mm) : TupleNode(FOR, parent, mm), varQName_(varQName), varURI_(0), varName_(0), posQName_(posQName), posURI_(0), posName_(0), varSrc_(mm), posSrc_(mm), expr_(expr) { } ForTuple::ForTuple(TupleNode *parent, const XMLCh *varURI, const XMLCh *varName, const XMLCh *posURI, const XMLCh *posName, ASTNode *expr, XPath2MemoryManager *mm) : TupleNode(FOR, parent, mm), varQName_(0), varURI_(varURI), varName_(varName), posQName_(0), posURI_(posURI), posName_(posName), varSrc_(mm), posSrc_(mm), expr_(expr) { } TupleNode *ForTuple::staticResolution(StaticContext *context) { parent_ = parent_->staticResolution(context); varURI_ = context->getUriBoundToPrefix(XPath2NSUtils::getPrefix(varQName_, context->getMemoryManager()), this); varName_ = XPath2NSUtils::getLocalName(varQName_); if(posQName_ && *posQName_) { posURI_ = context->getUriBoundToPrefix(XPath2NSUtils::getPrefix(posQName_, context->getMemoryManager()), this); posName_ = XPath2NSUtils::getLocalName(posQName_); if(XPath2Utils::equals(posName_, varName_) && XPath2Utils::equals(posURI_, varURI_)) { XMLBuffer errMsg; errMsg.set(X("The positional variable with name {")); errMsg.append(posURI_); errMsg.append(X("}")); errMsg.append(posName_); errMsg.append(X(" conflicts with the iteration variable [err:XQST0089]")); XQThrow(StaticErrorException,X("ForTuple::staticResolution"), errMsg.getRawBuffer()); } } expr_ = expr_->staticResolution(context); return this; } TupleNode *ForTuple::staticTypingImpl(StaticContext *context) { if(expr_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("ForTuple::staticTypingSetup"), X("It is a static error for the for expression of a FLWOR expression " "to be an updating expression [err:XUST0001]")); } const StaticType &sType = expr_->getStaticAnalysis().getStaticType(); min_ = parent_->getMin() * sType.getMin(); if(parent_->getMax() == StaticType::UNLIMITED || sType.getMax() == StaticType::UNLIMITED) max_ = StaticType::UNLIMITED; else max_ = parent_->getMax() * sType.getMax(); return this; } TupleNode *ForTuple::staticTypingTeardown(StaticContext *context, StaticAnalysis &usedSrc) { // Remove our binding variable from the StaticAnalysis data (removing it if it's not used) if(varName_ && !usedSrc.removeVariable(varURI_, varName_)) { varURI_ = 0; varName_ = 0; } // Remove our positional variable from the StaticAnalysis data (removing it if it's not used) if(posName_ && !usedSrc.removeVariable(posURI_, posName_)) { posURI_ = 0; posName_ = 0; } usedSrc.add(expr_->getStaticAnalysis()); parent_ = parent_->staticTypingTeardown(context, usedSrc); const StaticType &sType = expr_->getStaticAnalysis().getStaticType(); if(varName_ == 0 && posName_ == 0 && sType.getMin() == 1 && sType.getMax() == 1) return parent_; return this; } class ForTupleResult : public TupleResult { public: ForTupleResult(const ForTuple *ast, const TupleResult::Ptr &parent) : TupleResult(ast), ast_(ast), parent_(parent), values_(0), position_(0) { } virtual Result getVar(const XMLCh *namespaceURI, const XMLCh *name) const { if(XPath2Utils::equals(name, ast_->getVarName()) && XPath2Utils::equals(namespaceURI, ast_->getVarURI())) return item_; if(XPath2Utils::equals(name, ast_->getPosName()) && XPath2Utils::equals(namespaceURI, ast_->getPosURI())) return posItem_; return parent_->getVar(namespaceURI, name); } virtual void getInScopeVariables(std::vector > &variables) const { variables.push_back(std::pair(ast_->getVarURI(), ast_->getVarName())); if(ast_->getPosName()) variables.push_back(std::pair(ast_->getPosURI(), ast_->getPosName())); parent_->getInScopeVariables(variables); } virtual bool next(DynamicContext *context) { AutoVariableStoreReset reset(context, parent_); while((item_ = values_->next(context)).isNull()) { context->testInterrupt(); reset.reset(); if(!parent_->next(context)) return false; context->setVariableStore(parent_); values_ = ast_->getExpression()->createResult(context); position_ = 0; } if(ast_->getPosName()) posItem_ = context->getItemFactory()->createInteger(++position_, context); return true; } private: const ForTuple *ast_; TupleResult::Ptr parent_; Result values_; Item::Ptr item_; Item::Ptr posItem_; int position_; }; TupleResult::Ptr ForTuple::createResult(DynamicContext* context) const { return new ForTupleResult(this, parent_->createResult(context)); } XQilla-2.3.0/src/ast/XQMap.cpp0000644000151400015140000001124411653565523012710 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE XQMap::XQMap(ASTNode *arg1, ASTNode *arg2, XPath2MemoryManager* memMgr) : ASTNodeImpl(MAP, memMgr), arg1_(arg1), arg2_(arg2), uri_(0), name_(0), varSrc_(memMgr) { } XQMap::XQMap(ASTNode *arg1, ASTNode *arg2, const XMLCh *uri, const XMLCh *name, XPath2MemoryManager* memMgr) : ASTNodeImpl(MAP, memMgr), arg1_(arg1), arg2_(arg2), uri_(uri), name_(name), varSrc_(memMgr) { } ASTNode *XQMap::staticResolution(StaticContext *context) { arg1_ = arg1_->staticResolution(context); arg2_ = arg2_->staticResolution(context); return this; } ASTNode *XQMap::staticTypingImpl(StaticContext *context) { _src.clear(); const StaticAnalysis &arg2Src = arg2_->getStaticAnalysis(); if(name_ == 0) { _src.addExceptContextFlags(arg2Src); } else { _src.addExceptVariable(uri_, name_, arg2Src); } const StaticAnalysis &arg1Src = arg1_->getStaticAnalysis(); _src.add(arg1Src); _src.getStaticType() = arg2Src.getStaticType(); _src.getStaticType().multiply(arg1Src.getStaticType().getMin(), arg1Src.getStaticType().getMax()); _src.setProperties(XQNav::combineProperties(arg1Src.getProperties(), arg2Src.getProperties())); if(name_ == 0) { if(arg2_->getType() == CONTEXT_ITEM) return arg1_; } else { if(arg2_->getType() == VARIABLE && XPath2Utils::equals(((XQVariable*)arg2_)->getURI(), uri_) && XPath2Utils::equals(((XQVariable*)arg2_)->getName(), name_)) return arg1_; } return this; } Result XQMap::createResult(DynamicContext* context, int flags) const { Result result = arg1_->createResult(context); if(name_ != 0) { return ClosureResult::create(arg2_->getStaticAnalysis(), context, new MapResult(result, arg2_, uri_, name_)); } if(arg2_->getStaticAnalysis().isContextSizeUsed()) { // We need the context size, so convert to a Sequence to work it out Sequence seq(result->toSequence(context)); result = ClosureResult::create(arg2_->getStaticAnalysis(), context, new NavStepResult(new SequenceResult(this, seq), arg2_, seq.getLength())); } else { result = ClosureResult::create(arg2_->getStaticAnalysis(), context, new NavStepResult(result, arg2_, 0)); } return result; } //////////////////////////////////////////////////////////////////////////////////////////////////// MapResult::MapResult(const Result &parent, const ASTNode *step, const XMLCh *uri, const XMLCh *name) : ResultImpl(step), parent_(parent), step_(step), uri_(uri), name_(name), stepResult_(0), item_(0), scope_(0) { } Result MapResult::getVar(const XMLCh *namespaceURI, const XMLCh *name) const { if(XPath2Utils::equals(name, name_) && XPath2Utils::equals(namespaceURI, uri_)) return item_; return scope_->getVar(namespaceURI, name); } void MapResult::getInScopeVariables(std::vector > &variables) const { variables.push_back(std::pair(uri_, name_)); scope_->getInScopeVariables(variables); } Item::Ptr MapResult::next(DynamicContext *context) { if(scope_ == 0) { scope_ = context->getVariableStore(); } AutoVariableStoreReset reset(context, this); Item::Ptr result; while((result = stepResult_->next(context)).isNull()) { context->testInterrupt(); context->setVariableStore(scope_); item_ = parent_->next(context); if(item_.isNull()) { parent_ = 0; return 0; } context->setVariableStore(this); stepResult_ = step_->createResult(context); } return result; } XQilla-2.3.0/src/ast/XQOrderingChange.cpp0000644000151400015140000000347211653565523015056 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include XQOrderingChange::XQOrderingChange(StaticContext::NodeSetOrdering ordering, ASTNode* astNode, XPath2MemoryManager* expr) : ASTNodeImpl(ORDERING_CHANGE, expr), m_nOrdering(ordering), m_pExpr(astNode) { } Result XQOrderingChange::createResult(DynamicContext *context, int flags) const { return m_pExpr->createResult(context); } ASTNode* XQOrderingChange::staticResolution(StaticContext* context) { AutoNodeSetOrderingReset orderReset(context, m_nOrdering); m_pExpr = m_pExpr->staticResolution(context); return this; } ASTNode *XQOrderingChange::staticTypingImpl(StaticContext *context) { _src.clear(); _src.copy(m_pExpr->getStaticAnalysis()); return this; } StaticContext::NodeSetOrdering XQOrderingChange::getOrderingValue() const { return m_nOrdering; } ASTNode* XQOrderingChange::getExpr() const { return m_pExpr; } void XQOrderingChange::setExpr(ASTNode *expr) { m_pExpr = expr; } XQilla-2.3.0/src/ast/XQApplyTemplates.cpp0000644000151400015140000002637511653565523015152 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; XERCES_CPP_NAMESPACE_USE; XQApplyTemplates::XQApplyTemplates(ASTNode *expr, TemplateArguments *args, XQUserFunction::Mode *mode, XPath2MemoryManager *mm) : ASTNodeImpl(APPLY_TEMPLATES, mm), expr_(expr), args_(args), mode_(mode), templates_(XQillaAllocator(mm)) { } XQApplyTemplates::XQApplyTemplates(ASTNode *expr, TemplateArguments *args, XQUserFunction::Mode *mode, const UserFunctions &templates, XPath2MemoryManager *mm) : ASTNodeImpl(APPLY_TEMPLATES, mm), expr_(expr), args_(args), mode_(mode), templates_(XQillaAllocator(mm)) { templates_ = templates; } static const XMLCh err_XTTE0520[] = { 'e', 'r', 'r', ':', 'X', 'T', 'T', 'E', '0', '5', '2', '0', 0 }; ASTNode* XQApplyTemplates::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); SequenceType *seqType = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_NODE), SequenceType::STAR); seqType->setLocationInfo(this); expr_ = new (mm) XQTreatAs(expr_, seqType, mm, err_XTTE0520); expr_->setLocationInfo(this); expr_ = expr_->staticResolution(context); // Resolve the call template argument names and check for duplicates TemplateArguments::iterator it; if(args_ != 0) { for(it = args_->begin(); it != args_->end(); ++it) { if((*it)->name == 0) { (*it)->uri = context->getUriBoundToPrefix(XPath2NSUtils::getPrefix((*it)->qname, mm), this); (*it)->name = XPath2NSUtils::getLocalName((*it)->qname); } (*it)->value = (*it)->value->staticResolution(context); for(TemplateArguments::iterator it2 = args_->begin(); it2 != it; ++it2) { if(XPath2Utils::equals((*it)->name, (*it2)->name) && XPath2Utils::equals((*it)->uri, (*it2)->uri)) { XMLBuffer buf; buf.set(X("Two template parameters have the name {")); buf.append((*it)->uri); buf.append(X("}")); buf.append((*it)->name); buf.append(X(" [err:XTSE0670]")); XQThrow3(StaticErrorException, X("XQApplyTemplates::staticResolution"), buf.getRawBuffer(), *it); } } } } if(mode_ != 0) { mode_->staticResolution(context); } return this; } ASTNode *XQApplyTemplates::staticTypingImpl(StaticContext *context) { _src.clear(); // Calculate our static type from the template instances if(context) templates_ = context->getTemplateRules(); bool first = true; UserFunctions::iterator inIt; VectorOfASTNodes::iterator patIt; XQUserFunction::ModeList::iterator modeIt; bool found; for(inIt = templates_.begin(); inIt != templates_.end(); ++inIt) { if((*inIt) == 0) continue; if((*inIt)->getPattern() == 0) { *inIt = 0; continue; } // Eliminate templates based on mode found = false; for(modeIt = (*inIt)->getModeList()->begin(); modeIt != (*inIt)->getModeList()->end(); ++modeIt) { if((*modeIt)->equals(mode_)) { found = true; break; } } if(!found) { // We can't match this template *inIt = 0; continue; } // See if we can eliminate some templates based on the static type // of the select expression found = false; for(patIt = (*inIt)->getPattern()->begin(); patIt != (*inIt)->getPattern()->end(); ++patIt) { if((*patIt)->getStaticAnalysis().getStaticType().containsType(expr_->getStaticAnalysis().getStaticType())) { found = true; break; } } if(!found) { // We can't match this template *inIt = 0; continue; } if(first) { first = false; _src.getStaticType() = (*inIt)->getBodyStaticAnalysis().getStaticType(); _src.setProperties((*inIt)->getBodyStaticAnalysis().getProperties()); } else { _src.getStaticType() |= (*inIt)->getBodyStaticAnalysis().getStaticType(); _src.setProperties(_src.getProperties() & (*inIt)->getBodyStaticAnalysis().getProperties()); } _src.add((*inIt)->getBodyStaticAnalysis()); } TemplateArguments::iterator it; if(args_ != 0) { for(it = args_->begin(); it != args_->end(); ++it) { if(!_src.removeVariable((*it)->uri, (*it)->name)) { // TBD This parameter will never be used - jpcs } } } _src.add(expr_->getStaticAnalysis()); if(args_ != 0) { for(it = args_->begin(); it != args_->end(); ++it) { _src.add((*it)->value->getStaticAnalysis()); } } return this; } Result XQApplyTemplates::executeTemplate(const XQUserFunction *tplt, const TemplateArguments *args, const VariableStore *scope, DynamicContext *context, const LocationInfo *location) { VarStoreImpl localscope(context->getMemoryManager(), context->getVariableStore()); if(scope == 0) scope = &localscope; // Check to see if we set the correct parameters for the template if(tplt->getSignature()->argSpecs != 0) { ArgumentSpecs::const_iterator argIt = tplt->getSignature()->argSpecs->begin(); for(; argIt != tplt->getSignature()->argSpecs->end(); ++argIt) { bool found = false; if(args != 0) { TemplateArguments::const_iterator it; for(it = args->begin(); it != args->end(); ++it) { if(XPath2Utils::equals((*it)->name, (*argIt)->getName()) && XPath2Utils::equals((*it)->uri, (*argIt)->getURI())) { if(scope == &localscope) localscope.setVar((*it)->uri, (*it)->name, (*it)->value->createResult(context)); found = true; break; } } } if(!found) { // [ERR XTSE0690] It is a static error if a template that is invoked using xsl:call-template // declares a template parameter specifying required="yes" and not specifying tunnel="yes", if // no value for this parameter is supplied by the calling instruction. XMLBuffer buf; buf.set(X("No value is specified for the template parameter {")); buf.append((*argIt)->getURI()); buf.append(X("}")); buf.append((*argIt)->getName()); buf.append(X(" [err:XTSE0690]")); XQThrow3(StaticErrorException, X("XQApplyTemplates::staticResolution"), buf.getRawBuffer(), location); } } } AutoVariableStoreReset vsReset(context, scope); return tplt->getTemplateInstance()->createResult(context); } void XQApplyTemplates::evaluateArguments(VarStoreImpl &scope, DynamicContext *context) const { if(args_ == 0) return; TemplateArguments::const_iterator it; for(it = args_->begin(); it != args_->end(); ++it) { // TBD variable use count - jpcs scope.setVar((*it)->uri, (*it)->name, (*it)->value->createResult(context)); } } class ApplyTemplatesResult : public ResultImpl { public: ApplyTemplatesResult(const XQApplyTemplates *ast, const Result &input, const UserFunctions &templates, DynamicContext *context) : ResultImpl(ast), ast_(ast), templates_(templates), input_(input), node_(0), scope_(context->getMemoryManager(), context->getVariableStore()), result_(0) { ast_->evaluateArguments(scope_, context); } // Constructor for the default template for elements / document nodes ApplyTemplatesResult(ApplyTemplatesResult *parent, const Node::Ptr &node, DynamicContext *context) : ResultImpl(parent), ast_(parent->ast_), templates_(context->getTemplateRules()), input_(node->getAxisResult(XQStep::CHILD, 0, context, parent)), node_(0), scope_(context->getMemoryManager(), &parent->scope_), result_(0) { } Item::Ptr next(DynamicContext *context) { AutoContextInfoReset ciReset(context, node_); AutoVariableStoreReset vsReset(context, &scope_); Item::Ptr item; while((item = result_->next(context)).isNull()) { ciReset.resetContextInfo(); vsReset.reset(); node_ = input_->next(context); if(node_.isNull()) return 0; context->setContextItem(node_); // TBD What is the correct position / size here - jpcs // Find the first template that matches XQUserFunction *tplt = 0; UserFunctions::const_iterator it = templates_.begin(); for(; tplt == 0 && it != templates_.end(); ++it) { if(*it == 0 || (*it)->getPattern() == 0) continue; if(ast_->getMode() && ast_->getMode()->getState() == XQUserFunction::Mode::CURRENT) { // TBD filter on the current mode - jpcs } VectorOfASTNodes::const_iterator patIt = (*it)->getPattern()->begin(); for(; patIt != (*it)->getPattern()->end(); ++patIt) { if(!(*patIt)->createResult(context)->next(context).isNull()) { tplt = *it; break; } } } context->setVariableStore(&scope_); if(tplt != 0) { result_ = XQApplyTemplates::executeTemplate(tplt, ast_->getArguments(), &scope_, context, this); } else { result_ = executeDefaultTemplate(context); } } return item; } Result executeDefaultTemplate(DynamicContext *context) { const XMLCh *nodeKind = node_->dmNodeKind(); if(nodeKind == Node::document_string || nodeKind == Node::element_string) { return new ApplyTemplatesResult(this, node_, context); } else if(nodeKind == Node::text_string || nodeKind == Node::attribute_string) { AutoDelete builder(context->createSequenceBuilder()); builder->textEvent(node_->dmStringValue(context)); builder->endEvent(); return builder->getSequence(); } else { return 0; } } string asString(DynamicContext *context, int indent) const { return ""; } private: const XQApplyTemplates *ast_; UserFunctions templates_; Result input_; Node::Ptr node_; VarStoreImpl scope_; Result result_; }; Result XQApplyTemplates::createResult(DynamicContext *context, int flags) const { return ClosureResult::create(getStaticAnalysis(), context, new ApplyTemplatesResult(this, expr_->createResult(context), templates_, context)); } XQilla-2.3.0/src/ast/XQInlineFunction.cpp0000644000151400015140000000622311653565523015120 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include "../items/impl/FunctionRefImpl.hpp" XERCES_CPP_NAMESPACE_USE; using namespace std; XQInlineFunction::XQInlineFunction(XQUserFunction *func, XPath2MemoryManager *mm) : ASTNodeImpl(INLINE_FUNCTION, mm), func_(func), prefix_(0), uri_(0), name_(0), numArgs_((unsigned int)(func->getSignature()->argSpecs ? func->getSignature()->argSpecs->size() : 0)), signature_(new (mm) FunctionSignature(func->getSignature(), mm)), instance_(0) { } XQInlineFunction::XQInlineFunction(XQUserFunction *func, const XMLCh *prefix, const XMLCh *uri, const XMLCh *name, unsigned int numArgs, FunctionSignature *signature, ASTNode *instance, XPath2MemoryManager *mm) : ASTNodeImpl(INLINE_FUNCTION, mm), func_(func), prefix_(prefix), uri_(uri), name_(name), numArgs_(numArgs), signature_(signature), instance_(instance) { } ASTNode *XQInlineFunction::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); func_->staticResolutionStage1(context); signature_->staticResolution(context); instance_ = FunctionRefImpl::createInstance(func_, signature_, mm, this); instance_ = instance_->staticResolution(context); func_->staticResolutionStage2(context); return this; } ASTNode *XQInlineFunction::staticTypingImpl(StaticContext *context) { _src.clear(); _src.addExceptContextFlags(instance_->getStaticAnalysis()); // Remove the argument variables if(signature_->argSpecs) { ArgumentSpecs::const_iterator argsIt = signature_->argSpecs->begin(); for(; argsIt != signature_->argSpecs->end(); ++argsIt) { _src.removeVariable((*argsIt)->getURI(), (*argsIt)->getName()); } } // TBD Using getMemoryManager() might not be thread safe in DB XML - jpcs _src.getStaticType() = StaticType(getMemoryManager(), numArgs_, instance_->getStaticAnalysis().getStaticType()); return this; } Result XQInlineFunction::createResult(DynamicContext *context, int flags) const { return (Item::Ptr)new FunctionRefImpl(prefix_, uri_, name_, signature_, instance_, _src, context); } XQilla-2.3.0/src/ast/XQCastableAs.cpp0000644000151400015140000001534011653565523014176 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; XQCastableAs::XQCastableAs(ASTNode* expr, SequenceType* exprType, XPath2MemoryManager* memMgr) : ASTNodeImpl(CASTABLE_AS, memMgr), _expr(expr), _exprType(exprType), _isPrimitive(false), _typeIndex((AnyAtomicType::AtomicObjectType)-1) { } XQCastableAs::XQCastableAs(ASTNode* expr, SequenceType* exprType, bool isPrimitive, AnyAtomicType::AtomicObjectType typeIndex, XPath2MemoryManager* memMgr) : ASTNodeImpl(CASTABLE_AS, memMgr), _expr(expr), _exprType(exprType), _isPrimitive(isPrimitive), _typeIndex(typeIndex) { } ASTNode* XQCastableAs::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); _exprType->staticResolution(context); const SequenceType::ItemType* itemType = _exprType->getItemType(); if(XPath2Utils::equals(itemType->getTypeURI(), SchemaSymbols::fgURI_SCHEMAFORSCHEMA) && (XPath2Utils::equals(itemType->getType()->getName(), XMLUni::fgNotationString) || XPath2Utils::equals(itemType->getType()->getName(), AnyAtomicType::fgDT_ANYATOMICTYPE))) XQThrow(TypeErrorException,X("XQCastableAs::staticResolution"), X("The target type of a castable expression must be an atomic type that is in the in-scope schema types " "and is not xs:NOTATION or xdt:anyAtomicType [err:XPST0080]")); if(_exprType->getItemTestType() != SequenceType::ItemType::TEST_ATOMIC_TYPE) XQThrow(TypeErrorException,X("XQCastableAs::staticResolution"),X("Cannot cast to a non atomic type")); _typeIndex = context->getItemFactory()-> getPrimitiveTypeIndex(_exprType->getTypeURI(), _exprType->getConstrainingType()->getName(), _isPrimitive); // If this is a cast to xs:QName or xs:NOTATION and the argument is a string literal // evaluate immediately, since they aren't allowed otherwise if((_typeIndex == AnyAtomicType::QNAME || _typeIndex == AnyAtomicType::NOTATION) && _expr->getType() == LITERAL && ((XQLiteral*)_expr)->getPrimitiveType() == AnyAtomicType::STRING) { AutoDelete dContext(context->createDynamicContext()); dContext->setMemoryManager(mm); bool result = false; try { if(_isPrimitive) { ((AnyAtomicType*)_expr->createResult(dContext)->next(dContext).get())-> castAsNoCheck(_typeIndex, 0, 0, dContext); } else { ((AnyAtomicType*)_expr->createResult(dContext)->next(dContext).get())-> castAsNoCheck(_typeIndex, _exprType->getTypeURI(), _exprType->getConstrainingType()->getName(), dContext); } result = true; } catch(XQException &e) {} return XQLiteral::create(dContext->getItemFactory()->createBoolean(result, dContext), dContext, mm, this)->staticResolution(context); } _expr = new (mm) XQAtomize(_expr, mm); _expr->setLocationInfo(this); { AutoNodeSetOrderingReset orderReset(context); _expr = _expr->staticResolution(context); } return this; } ASTNode *XQCastableAs::staticTypingImpl(StaticContext *context) { _src.clear(); _src.getStaticType() = StaticType::BOOLEAN_TYPE; _src.add(_expr->getStaticAnalysis()); return this; } ASTNode *XQCastableAs::getExpression() const { return _expr; } SequenceType *XQCastableAs::getSequenceType() const { return _exprType; } void XQCastableAs::setExpression(ASTNode *item) { _expr = item; } BoolResult XQCastableAs::boolResult(DynamicContext* context) const { // The semantics of the cast expression are as follows: // 1. Atomization is performed on the input expression. Result toBeCasted(getExpression()->createResult(context)); const Item::Ptr first = toBeCasted->next(context); bool result = false; if(first == NULLRCP) { // 3. If the result of atomization is an empty sequence: // 1. If ? is specified after the target type, the result of the cast expression is an empty sequence. // 2. If ? is not specified after the target type, a type error is raised.[err:XP0004][err:XP0006] result = getSequenceType()->getOccurrenceIndicator() != SequenceType::EXACTLY_ONE; } else { const Item::Ptr second = toBeCasted->next(context); // 2. If the result of atomization is a sequence of more than one atomic value, a type error is raised.[err:XP0004][err:XP0006] if(second != NULLRCP) { result = false; } else { // 4. If the result of atomization is a single atomic value, the result of the cast expression depends on the input type and the target type. // The normative definition of these rules is given in [XQuery 1.0 and XPath 2.0 Functions and Operators]. if(getIsPrimitive()) { result = ((const AnyAtomicType::Ptr)first)->castable(getTypeIndex(), 0, 0, context); } else { result = ((const AnyAtomicType::Ptr)first)->castable(getTypeIndex(), getSequenceType()->getTypeURI(), getSequenceType()->getConstrainingType()->getName(), context); } } } return result; } Result XQCastableAs::createResult(DynamicContext* context, int flags) const { return (Item::Ptr)context->getItemFactory()->createBoolean(boolResult(context), context); } XQilla-2.3.0/src/ast/LetTuple.cpp0000644000151400015140000001263311653565523013463 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #include LetTuple::LetTuple(TupleNode *parent, const XMLCh *varQName, ASTNode *expr, XPath2MemoryManager *mm) : TupleNode(LET, parent, mm), seqType(0), varQName_(varQName), varURI_(0), varName_(0), varSrc_(mm), expr_(expr) { } LetTuple::LetTuple(TupleNode *parent, const XMLCh *varURI, const XMLCh *varName, ASTNode *expr, XPath2MemoryManager *mm) : TupleNode(LET, parent, mm), seqType(0), varQName_(0), varURI_(varURI), varName_(varName), varSrc_(mm), expr_(expr) { } TupleNode *LetTuple::staticResolution(StaticContext *context) { parent_ = parent_->staticResolution(context); if(varName_ == 0) { varURI_ = context->getUriBoundToPrefix(XPath2NSUtils::getPrefix(varQName_, context->getMemoryManager()), this); varName_ = XPath2NSUtils::getLocalName(varQName_); } expr_ = expr_->staticResolution(context); return this; } static bool canPushLetBack(TupleNode *ancestor, const StaticAnalysis &exprSrc) { switch(ancestor->getType()) { case TupleNode::FOR: { ForTuple *f = (ForTuple*)ancestor; if(!exprSrc.isVariableUsed(f->getVarURI(), f->getVarName()) && !exprSrc.isVariableUsed(f->getPosURI(), f->getPosName())) return true; break; } case TupleNode::LET: { LetTuple *f = (LetTuple*)ancestor; if(!exprSrc.isVariableUsed(f->getVarURI(), f->getVarName())) return canPushLetBack(f->getParent(), exprSrc); break; } case TupleNode::COUNT: { CountTuple *f = (CountTuple*)ancestor; if(!exprSrc.isVariableUsed(f->getVarURI(), f->getVarName())) return canPushLetBack(f->getParent(), exprSrc); break; } case TupleNode::ORDER_BY: case TupleNode::WHERE: return canPushLetBack(ancestor->getParent(), exprSrc); case TupleNode::CONTEXT_TUPLE: break; case TupleNode::DEBUG_HOOK: return true; } return false; } TupleNode *LetTuple::staticTypingImpl(StaticContext *context) { if(expr_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("LetTuple::staticTypingSetup"), X("It is a static error for the let expression of a FLWOR expression " "to be an updating expression [err:XUST0001]")); } // Push back if possible if(!expr_->getStaticAnalysis().isCreative() && canPushLetBack(parent_, expr_->getStaticAnalysis())) { // Swap parent_ and this LetTuple, re-executing their staticTypingImpl() methods TupleNode *tmp = parent_; parent_ = tmp->getParent(); tmp->setParent(this->staticTypingImpl(context)); return tmp->staticTypingImpl(context); } min_ = parent_->getMin(); max_ = parent_->getMax(); return this; } TupleNode *LetTuple::staticTypingTeardown(StaticContext *context, StaticAnalysis &usedSrc) { usedSrc.removeVariable(varURI_, varName_); usedSrc.add(expr_->getStaticAnalysis()); parent_ = parent_->staticTypingTeardown(context, usedSrc); // TBD Combine LetTuple that compute the same expression? - jpcs return this; } class LetTupleResult : public TupleResult { public: LetTupleResult(const LetTuple *ast, const TupleResult::Ptr &parent) : TupleResult(ast), ast_(ast), parent_(parent), values_(0) { } virtual Result getVar(const XMLCh *namespaceURI, const XMLCh *name) const { if(XPath2Utils::equals(name, ast_->getVarName()) && XPath2Utils::equals(namespaceURI, ast_->getVarURI())) return values_.createResult(); return parent_->getVar(namespaceURI, name); } virtual void getInScopeVariables(std::vector > &variables) const { variables.push_back(std::pair(ast_->getVarURI(), ast_->getVarName())); parent_->getInScopeVariables(variables); } virtual bool next(DynamicContext *context) { context->testInterrupt(); if(!parent_->next(context)) return false; // TBD Use counts for the variable - jpcs AutoVariableStoreReset vsReset(context, parent_); values_ = ResultBuffer(ast_->getExpression()->createResult(context)); return true; } private: const LetTuple *ast_; TupleResult::Ptr parent_; mutable ResultBuffer values_; }; TupleResult::Ptr LetTuple::createResult(DynamicContext* context) const { return new LetTupleResult(this, parent_->createResult(context)); } XQilla-2.3.0/src/ast/OrderByTuple.cpp0000644000151400015140000001767211653565523014315 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include using namespace std; OrderByTuple::OrderByTuple(TupleNode *parent, ASTNode *expr, int modifiers, Collation *collation, XPath2MemoryManager *mm) : TupleNode(ORDER_BY, parent, mm), expr_(expr), modifiers_((Modifiers)modifiers), collation_(collation), usedSrc_(mm) { } TupleNode *OrderByTuple::staticResolution(StaticContext *context) { parent_ = parent_->staticResolution(context); AutoNodeSetOrderingReset orderReset(context, (modifiers_ & UNSTABLE) == 0 ? StaticContext::ORDERING_ORDERED : StaticContext::ORDERING_UNORDERED); expr_ = expr_->staticResolution(context); return this; } static bool canPushOrderByBack(TupleNode *ancestor, const StaticAnalysis &exprSrc) { switch(ancestor->getType()) { case TupleNode::FOR: { ForTuple *f = (ForTuple*)ancestor; if(!exprSrc.isVariableUsed(f->getVarURI(), f->getVarName()) && !exprSrc.isVariableUsed(f->getPosURI(), f->getPosName())) return true; break; } case TupleNode::LET: { LetTuple *f = (LetTuple*)ancestor; if(!exprSrc.isVariableUsed(f->getVarURI(), f->getVarName())) return true; break; } case TupleNode::WHERE: return canPushOrderByBack(ancestor->getParent(), exprSrc); case TupleNode::COUNT: case TupleNode::ORDER_BY: case TupleNode::CONTEXT_TUPLE: break; default: return true; } return false; } TupleNode *OrderByTuple::staticTypingImpl(StaticContext *context) { if(expr_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("OrderByTuple::staticTypingSetup"), X("It is a static error for the order by expression of a FLWOR expression " "to be an updating expression [err:XUST0001]")); } // Push back if possible if(canPushOrderByBack(parent_, expr_->getStaticAnalysis())) { // Swap parent_ and this OrderByTuple, re-executing their staticTypingImpl() methods TupleNode *tmp = parent_; parent_ = tmp->getParent(); tmp->setParent(this->staticTypingImpl(context)); return tmp->staticTypingImpl(context); } min_ = parent_->getMin(); max_ = parent_->getMax(); return this; } TupleNode *OrderByTuple::staticTypingTeardown(StaticContext *context, StaticAnalysis &usedSrc) { usedSrc_.clear(); usedSrc_.add(usedSrc); usedSrc.add(expr_->getStaticAnalysis()); parent_ = parent_->staticTypingTeardown(context, usedSrc); return this; } class OrderByTupleResult : public TupleResult { public: OrderByTupleResult(const OrderByTuple *ast, const TupleResult::Ptr &parent) : TupleResult(ast), ast_(ast), parent_(parent), toDo_(true), tuples_(), tupleIt_(tuples_.begin()) { } ~OrderByTupleResult() { vector::iterator it = tuples_.begin(); for(; it != tuples_.end(); ++it) { delete *it; } } virtual Result getVar(const XMLCh *namespaceURI, const XMLCh *name) const { return (*tupleIt_)->varStore.getVar(namespaceURI, name); } virtual void getInScopeVariables(std::vector > &variables) const { (*tupleIt_)->varStore.getInScopeVariables(variables); } virtual bool next(DynamicContext *context) { if(toDo_) { toDo_ = false; XPath2MemoryManager *mm = context->getMemoryManager(); const ASTNode *expr = ast_->getExpression(); const StaticAnalysis &usedSrc = ast_->getUsedSRC(); while(parent_->next(context)) { AutoVariableStoreReset reset(context, parent_); tuples_.push_back(new OrderPair((AnyAtomicType*)expr->createResult(context)-> next(context).get(), usedSrc, parent_, mm)); } stable_sort(tuples_.begin(), tuples_.end(), OrderComparison(ast_->getModifiers(), ast_->getCollation(), context, this)); tupleIt_ = tuples_.begin(); } else { delete *tupleIt_; *tupleIt_ = 0; ++tupleIt_; } return tupleIt_ != tuples_.end(); } private: class OrderComparison; friend class OrderComparison; class OrderPair { public: static inline bool isEmptyOrNaN(const AnyAtomicType::Ptr &si) { return si.isNull() || (si->isNumericValue() && ((Numeric*)si.get())->isNaN()); } OrderPair(const AnyAtomicType::Ptr &si, const StaticAnalysis &usedSrc, const VariableStore *vars, XPath2MemoryManager *mm) : sortItem(isEmptyOrNaN(si) ? (AnyAtomicType::Ptr)0 : si), varStore(mm) { varStore.cacheVariableStore(usedSrc, vars); } AnyAtomicType::Ptr sortItem; VarStoreImpl varStore; }; class OrderComparison { public: OrderComparison(OrderByTuple::Modifiers mod, Collation *col, DynamicContext *cn, const LocationInfo *loc) : modifiers(mod), collation(col), context(cn), location(loc) {} inline bool greaterThan(const OrderPair *w, const OrderPair *v) const { if((modifiers & OrderByTuple::EMPTY_LEAST) != 0) { // When the orderspec specifies empty least, a value W is considered to be greater-than a value V if one of the following is true: // * V is an empty sequence and W is not an empty sequence. // * V is NaN, and W is neither NaN nor an empty sequence. if(w->sortItem.isNull()) return false; if(v->sortItem.isNull()) return !w->sortItem.isNull(); } else { // When the orderspec specifies empty greatest, a value W is considered to be greater-than a value V if one of the following is true: // * W is an empty sequence and V is not an empty sequence. // * W is NaN, and V is neither NaN nor an empty sequence. if(v->sortItem.isNull()) return false; if(w->sortItem.isNull()) return !v->sortItem.isNull(); } // * No collation is specified, and W gt V is true. // * A specific collation C is specified, and fn:compare(V, W, C) is less than zero. return GreaterThan::greater_than(w->sortItem, v->sortItem, collation, context, location); } bool operator()(const OrderPair *a, const OrderPair *b) const { // 1. If V1 is greater-than V2: If the orderspec specifies descending, then T1 precedes T2 in the tuple stream; otherwise, T2 precedes T1 in the tuple stream. if((modifiers & OrderByTuple::DESCENDING) != 0) return greaterThan(a, b); // 2. If V2 is greater-than V1: If the orderspec specifies descending, then T2 precedes T1 in the tuple stream; otherwise, T1 precedes T2 in the tuple stream. return greaterThan(b, a); } OrderByTuple::Modifiers modifiers; Collation *collation; DynamicContext *context; const LocationInfo *location; }; const OrderByTuple *ast_; TupleResult::Ptr parent_; bool toDo_; vector tuples_; vector::iterator tupleIt_; }; TupleResult::Ptr OrderByTuple::createResult(DynamicContext* context) const { return new OrderByTupleResult(this, parent_->createResult(context)); } XQilla-2.3.0/src/ast/NumericFunction.cpp0000644000151400015140000000450411653565523015033 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif NumericFunction::NumericFunction(const XMLCh* name, const char *signature, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, signature, args, memMgr) { } ASTNode* NumericFunction::staticResolution(StaticContext *context) { resolveArguments(context, /*numericFunction*/true); return this; } ASTNode *NumericFunction::staticTypingImpl(StaticContext *context) { _src.clear(); calculateSRCForArguments(context); if(!_args[0]->getStaticAnalysis().getStaticType().containsType(StaticType::NUMERIC_TYPE) && _args[0]->getStaticAnalysis().getStaticType().getMin() > 0) XQThrow(FunctionException,X("NumericFunction::staticTyping"), X("Non-numeric argument in numeric function [err:XPTY0004]")); _src.getStaticType() = StaticType(StaticType::NUMERIC_TYPE, 0, 1); return this; } Numeric::Ptr NumericFunction::getNumericParam(unsigned int number, DynamicContext *context, int flags) const { Item::Ptr item = XQFunction::getParamNumber(number, context, flags)->next(context); if(item.notNull() && (!item->isAtomicValue() || !((const AnyAtomicType *)item.get())->isNumericValue())) XQThrow(FunctionException,X("NumericFunction::getParamNumber"), X("Non-numeric argument in numeric function [err:XPTY0004]")); return (const Numeric *)item.get(); } XQilla-2.3.0/src/ast/XQEffectiveBooleanValue.cpp0000644000151400015140000001174411653565523016375 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE XQEffectiveBooleanValue::XQEffectiveBooleanValue(ASTNode* expr, XPath2MemoryManager* memMgr) : ASTNodeImpl(EBV, memMgr), expr_(expr) { } ASTNode* XQEffectiveBooleanValue::staticResolution(StaticContext *context) { AutoNodeSetOrderingReset orderReset(context); expr_ = expr_->staticResolution(context); return this; } ASTNode *XQEffectiveBooleanValue::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(expr_->getStaticAnalysis()); _src.getStaticType() = StaticType::BOOLEAN_TYPE; if(expr_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("XQEffectiveBooleanValue::staticTyping"), X("It is a static error to take the effective boolean value " "of an updating expression [err:XUST0001]")); } if(expr_->getStaticAnalysis().getStaticType().getMin() >= 2 && !expr_->getStaticAnalysis().getStaticType().containsType(StaticType::NODE_TYPE)) { XQThrow(XPath2TypeMatchException, X("XQEffectiveBooleanValue::staticTyping"), X("Effective Boolean Value cannot be extracted from this type [err:FORG0006]")); } return this; } static inline bool getEffectiveBooleanValueInternal(const Item::Ptr &first, const Item::Ptr &second, DynamicContext* context, const LocationInfo *info) { // If its operand is a singleton value ... if(second.isNull() && first->isAtomicValue()) { const AnyAtomicType::Ptr atom=first; // ... of type xs:boolean or derived from xs:boolean, fn:boolean returns the value of its operand unchanged. if(atom->getPrimitiveTypeIndex() == AnyAtomicType::BOOLEAN) return ((ATBooleanOrDerived*)atom.get())->isTrue(); // ... of type xs:string, xdt:untypedAtomic, or a type derived from one of these, fn:boolean returns false // if the operand value has zero length; otherwise it returns true. if((atom->getPrimitiveTypeIndex() == AnyAtomicType::STRING || atom->getPrimitiveTypeIndex() == AnyAtomicType::ANY_URI || atom->getPrimitiveTypeIndex() == AnyAtomicType::UNTYPED_ATOMIC)) return !XPath2Utils::equals(atom->asString(context), XERCES_CPP_NAMESPACE_QUALIFIER XMLUni::fgZeroLenString); // ... of any numeric type or derived from a numeric type, fn:boolean returns false if the operand value is // NaN or is numerically equal to zero; otherwise it returns true. if(atom->isNumericValue()) { return (!((Numeric*)atom.get())->isZero() && !((Numeric*)atom.get())->isNaN()); } } // In all other cases, fn:boolean raises a type error. XQThrow3(XPath2TypeMatchException,X("EffectiveBooleanValueResult::nextOrTail"), X("Effective Boolean Value cannot be extracted from this type [err:FORG0006]"), info); return true; } bool XQEffectiveBooleanValue::get(const Item::Ptr &first, const Item::Ptr &second, DynamicContext* context, const LocationInfo *info) { // From $ 15.1.4 of the F&O specs: // The effective boolean value of an operand is defined as follows: // // If its operand is an empty sequence, fn:boolean returns false. if(first.isNull()) { return false; } // If its operand is a sequence whose first item is a node, fn:boolean returns true. if(first->isNode()) return true; return getEffectiveBooleanValueInternal(first, second, context, info); } BoolResult XQEffectiveBooleanValue::boolResult(DynamicContext* context) const { bool result; Result parent = expr_->createResult(context); const Item::Ptr first = parent->next(context); if(first.isNull()) { result = false; } else if(first->isNode()) { result = true; } else { result = getEffectiveBooleanValueInternal(first, parent->next(context), context, this); } return result; } Result XQEffectiveBooleanValue::createResult(DynamicContext* context, int flags) const { return (Item::Ptr)context->getItemFactory()->createBoolean(boolResult(context), context); } XQilla-2.3.0/src/ast/XQCastAs.cpp0000644000151400015140000002042711653565523013354 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; XQCastAs::XQCastAs(ASTNode* expr, SequenceType* exprType, XPath2MemoryManager* memMgr) : ASTNodeImpl(CAST_AS, memMgr), _expr(expr), _exprType(exprType), _isPrimitive(false), _typeIndex((AnyAtomicType::AtomicObjectType)-1) { } XQCastAs::XQCastAs(ASTNode* expr, SequenceType* exprType, bool isPrimitive, AnyAtomicType::AtomicObjectType typeIndex, XPath2MemoryManager* memMgr) : ASTNodeImpl(CAST_AS, memMgr), _expr(expr), _exprType(exprType), _isPrimitive(isPrimitive), _typeIndex(typeIndex) { } ASTNode* XQCastAs::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); _exprType->staticResolution(context); const SequenceType::ItemType *itemType = _exprType->getItemType(); if(itemType != NULL) { if(XPath2Utils::equals(itemType->getTypeURI(), SchemaSymbols::fgURI_SCHEMAFORSCHEMA) && (XPath2Utils::equals(itemType->getType()->getName(), XMLUni::fgNotationString) || XPath2Utils::equals(itemType->getType()->getName(), AnyAtomicType::fgDT_ANYATOMICTYPE))) XQThrow(TypeErrorException,X("XQCastAs::staticResolution"), X("The target type of a cast expression must be an atomic type that is in the in-scope schema types and is not xs:NOTATION or xdt:anyAtomicType [err:XPST0080]")); } if(_exprType->getItemTestType() != SequenceType::ItemType::TEST_ATOMIC_TYPE) XQThrow(TypeErrorException,X("XQCastAs::staticResolution"),X("Cannot cast to a non atomic type")); _typeIndex = context->getItemFactory()-> getPrimitiveTypeIndex(_exprType->getTypeURI(), _exprType->getConstrainingType()->getName(), _isPrimitive); // If this is a cast to xs:QName or xs:NOTATION and the argument is a string literal // evaluate immediately, since they aren't allowed otherwise if((_typeIndex == AnyAtomicType::QNAME || _typeIndex == AnyAtomicType::NOTATION) && _expr->getType() == LITERAL && ((XQLiteral*)_expr)->getPrimitiveType() == AnyAtomicType::STRING) { AutoDelete dContext(context->createDynamicContext()); dContext->setMemoryManager(mm); AnyAtomicType::Ptr item = (AnyAtomicType*)_expr->createResult(dContext)->next(dContext).get(); try { if(_isPrimitive) { item = item->castAsNoCheck(_typeIndex, 0, 0, dContext); } else { item = item->castAsNoCheck(_typeIndex, _exprType->getTypeURI(), _exprType->getConstrainingType()->getName(), dContext); } } catch(XQException &e) { if(e.getXQueryLine() == 0) e.setXQueryPosition(this); throw; } return XQLiteral::create(item, dContext, mm, this)->staticResolution(context); } _expr = new (mm) XQAtomize(_expr, mm); _expr->setLocationInfo(this); _expr = _expr->staticResolution(context); return this; } ASTNode *XQCastAs::staticTypingImpl(StaticContext *context) { _src.clear(); const SequenceType::ItemType *itemType = _exprType->getItemType(); if(itemType != NULL) { _src.getStaticType() = StaticType::create(_typeIndex); if(_exprType->getOccurrenceIndicator() == SequenceType::QUESTION_MARK) { _src.getStaticType().multiply(0, 1); } } _src.add(_expr->getStaticAnalysis()); if(_typeIndex == AnyAtomicType::QNAME && !_expr->getStaticAnalysis().getStaticType().containsType(StaticType::QNAME_TYPE) && (_exprType->getOccurrenceIndicator() == SequenceType::EXACTLY_ONE || _expr->getStaticAnalysis().getStaticType().containsType(StaticType::ITEM_TYPE))) { XQThrow(TypeErrorException,X("XQCastAs::staticTyping"), X("Only a subtype of xs:QName can be cast to a subtype of xs:QName [err:XPTY0004]")); } if(_typeIndex == AnyAtomicType::NOTATION && !_expr->getStaticAnalysis().getStaticType().containsType(StaticType::NOTATION_TYPE) && (_exprType->getOccurrenceIndicator() == SequenceType::EXACTLY_ONE || _expr->getStaticAnalysis().getStaticType().containsType(StaticType::ITEM_TYPE))) { XQThrow(TypeErrorException,X("XQCastAs::staticTyping"), X("Only a subtype of xs:NOTATION can be cast to a subtype of xs:NOTATION [err:XPTY0004]")); } return this; } ASTNode *XQCastAs::getExpression() const { return _expr; } SequenceType *XQCastAs::getSequenceType() const { return _exprType; } void XQCastAs::setExpression(ASTNode *item) { _expr = item; } AnyAtomicType::Ptr XQCastAs::cast(const AnyAtomicType::Ptr &in, DynamicContext *context) const { try { if(_isPrimitive) { return in->castAs(_typeIndex, 0, 0, context); } else { return in->castAs(_typeIndex, _exprType->getTypeURI(), _exprType->getConstrainingType()->getName(), context); } } catch(XQException &e) { if(e.getXQueryLine() == 0) e.setXQueryPosition(this); throw; } } AnyAtomicType::Ptr XQCastAs::cast(const XMLCh *value, DynamicContext *context) const { try { if(_isPrimitive) { return context->getItemFactory()-> createDerivedFromAtomicType(_typeIndex, value, context); } else { return context->getItemFactory()-> createDerivedFromAtomicType(_typeIndex, _exprType->getTypeURI(), _exprType->getConstrainingType()->getName(), value, context); } } catch(XQException &e) { if(e.getXQueryLine() == 0) e.setXQueryPosition(this); throw; } } Result XQCastAs::createResult(DynamicContext* context, int flags) const { // The semantics of the cast expression are as follows: // 1. Atomization is performed on the input expression. Result toBeCasted(getExpression()->createResult(context)); const Item::Ptr first = toBeCasted->next(context); if(first.isNull()) { // 3. If the result of atomization is an empty sequence: // 1. If ? is specified after the target type, the result of the cast expression is an empty sequence. // 2. If ? is not specified after the target type, a type error is raised [err:XPTY0004]. if(getSequenceType()->getOccurrenceIndicator() == SequenceType::EXACTLY_ONE) { XQThrow(TypeErrorException,X("XQCastAs::createResult"), X("The input to a non-optional cast as expression is an empty sequence [err:XPTY0004]")); } else { return 0; } } const Item::Ptr second = toBeCasted->next(context); // 2. If the result of atomization is a sequence of more than one atomic value, a type error is raised.[err:XPTY0004] if(second.notNull()) { XQThrow(TypeErrorException,X("XQCastAs::createResult"), X("The input to a cast as expression is more than one atomic value [err:XPTY0004]")); } // 4. If the result of atomization is a single atomic value, the result of the cast expression depends on the input type and the target type. // The normative definition of these rules is given in [XQuery 1.0 and XPath 2.0 Functions and Operators]. return (Item::Ptr)cast((const AnyAtomicType*)first.get(), context); } XQilla-2.3.0/src/ast/WhereTuple.cpp0000644000151400015140000001154411653565523014011 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include WhereTuple::WhereTuple(TupleNode *parent, ASTNode *expr, XPath2MemoryManager *mm) : TupleNode(WHERE, parent, mm), expr_(expr) { } TupleNode *WhereTuple::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); parent_ = parent_->staticResolution(context); if(expr_->getType() != ASTNode::OPERATOR || ((XQOperator*)expr_)->getOperatorName() != And::name) { expr_ = new (mm) XQEffectiveBooleanValue(expr_, mm); expr_->setLocationInfo(this); } expr_ = expr_->staticResolution(context); return this; } static bool canPushWhereBack(TupleNode *ancestor, const StaticAnalysis &exprSrc) { switch(ancestor->getType()) { case TupleNode::FOR: { ForTuple *f = (ForTuple*)ancestor; if(!exprSrc.isVariableUsed(f->getVarURI(), f->getVarName()) && !exprSrc.isVariableUsed(f->getPosURI(), f->getPosName())) return true; break; } case TupleNode::LET: { LetTuple *f = (LetTuple*)ancestor; if(!exprSrc.isVariableUsed(f->getVarURI(), f->getVarName())) return true; break; } case TupleNode::WHERE: return canPushWhereBack(ancestor->getParent(), exprSrc); case TupleNode::COUNT: case TupleNode::CONTEXT_TUPLE: break; case TupleNode::ORDER_BY: case TupleNode::DEBUG_HOOK: return true; } return false; } TupleNode *WhereTuple::staticTypingImpl(StaticContext *context) { if(expr_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("WhereTuple::staticTypingSetup"), X("It is a static error for the where expression of a FLWOR expression " "to be an updating expression [err:XUST0001]")); } // Split if expr_ is the And operator if(context && expr_->getType() == ASTNode::OPERATOR && ((XQOperator*)expr_)->getOperatorName() == And::name) { XPath2MemoryManager *mm = context->getMemoryManager(); And *andOp = (And*)expr_; TupleNode *result = parent_; for(unsigned int index = 0; index < andOp->getNumArgs(); ++index) { result = new (mm) WhereTuple(result, andOp->getArgument(index), mm); result->setLocationInfo(this); result = result->staticTypingImpl(context); } parent_ = 0; expr_ = 0; this->release(); return result; } // Push back if possible if(canPushWhereBack(parent_, expr_->getStaticAnalysis())) { // Swap parent_ and this WhereTuple, re-executing their staticTypingImpl() methods TupleNode *tmp = parent_; parent_ = tmp->getParent(); tmp->setParent(this->staticTypingImpl(context)); return tmp->staticTypingImpl(context); } min_ = 0; max_ = parent_->getMax(); return this; } TupleNode *WhereTuple::staticTypingTeardown(StaticContext *context, StaticAnalysis &usedSrc) { usedSrc.add(expr_->getStaticAnalysis()); parent_ = parent_->staticTypingTeardown(context, usedSrc); return this; } class WhereTupleResult : public TupleResult { public: WhereTupleResult(const WhereTuple *ast, const TupleResult::Ptr &parent) : TupleResult(ast), ast_(ast), parent_(parent) { } virtual Result getVar(const XMLCh *namespaceURI, const XMLCh *name) const { return parent_->getVar(namespaceURI, name); } virtual void getInScopeVariables(std::vector > &variables) const { parent_->getInScopeVariables(variables); } virtual bool next(DynamicContext *context) { while(parent_->next(context)) { context->testInterrupt(); AutoVariableStoreReset reset(context, parent_); if(ast_->getExpression()->boolResult(context)) return true; } return false; } private: const WhereTuple *ast_; TupleResult::Ptr parent_; }; TupleResult::Ptr WhereTuple::createResult(DynamicContext* context) const { return new WhereTupleResult(this, parent_->createResult(context)); } XQilla-2.3.0/src/ast/XQCallTemplate.cpp0000644000151400015140000002240111653565523014537 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include using namespace std; XERCES_CPP_NAMESPACE_USE; XQTemplateArgument::XQTemplateArgument(const XMLCh *qn, ASTNode *v, XPath2MemoryManager *mm) : qname(mm->getPooledString(qn)), uri(0), name(0), value(v), seqType(0), varSrc(mm) { } XQCallTemplate::XQCallTemplate(const XMLCh *qname, TemplateArguments *args, XPath2MemoryManager *mm) : ASTNodeImpl(CALL_TEMPLATE, mm), qname_(qname), uri_(0), name_(0), astName_(0), args_(args), templates_(XQillaAllocator(mm)) { } XQCallTemplate::XQCallTemplate(ASTNode *qname, TemplateArguments *args, XPath2MemoryManager *mm) : ASTNodeImpl(CALL_TEMPLATE, mm), qname_(0), uri_(0), name_(0), astName_(qname), args_(args), templates_(XQillaAllocator(mm)) { } XQCallTemplate::XQCallTemplate(const XMLCh *qname, const XMLCh *uri, const XMLCh *name, ASTNode *astName, TemplateArguments *args, const UserFunctions &templates, XPath2MemoryManager *mm) : ASTNodeImpl(CALL_TEMPLATE, mm), qname_(qname), uri_(uri), name_(name), astName_(astName), args_(args), templates_(XQillaAllocator(mm)) { templates_ = templates; } ASTNode* XQCallTemplate::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); // Resolve the template name if(astName_) { astName_ = new (mm) XQNameExpression(astName_, mm); astName_->setLocationInfo(this); astName_ = astName_->staticResolution(context); } else if(name_ == 0) { const XMLCh *prefix = XPath2NSUtils::getPrefix(qname_, mm); name_ = XPath2NSUtils::getLocalName(qname_); if(prefix == 0 || *prefix == 0) { uri_ = context->getDefaultFuncNS(); } else { uri_ = context->getUriBoundToPrefix(prefix, this); } } // Resolve the call template argument names and check for duplicates TemplateArguments::iterator it; if(args_ != 0) { for(it = args_->begin(); it != args_->end(); ++it) { if((*it)->name == 0) { (*it)->uri = context->getUriBoundToPrefix(XPath2NSUtils::getPrefix((*it)->qname, mm), this); (*it)->name = XPath2NSUtils::getLocalName((*it)->qname); } // The template instance will call staticResolution on the argument values for(TemplateArguments::iterator it2 = args_->begin(); it2 != it; ++it2) { if(XPath2Utils::equals((*it)->name, (*it2)->name) && XPath2Utils::equals((*it)->uri, (*it2)->uri)) { XMLBuffer buf; buf.set(X("Two template parameters have the name {")); buf.append((*it)->uri); buf.append(X("}")); buf.append((*it)->name); buf.append(X(" [err:XTSE0670]")); XQThrow3(StaticErrorException, X("XQCallTemplate::staticResolution"), buf.getRawBuffer(), *it); } } } } if(astName_ != 0) return this; // Lookup the template const XQUserFunction *tplt = context->lookUpNamedTemplate(uri_, name_); if(tplt == 0) { XMLBuffer buf; buf.set(X("A template called {")); buf.append(uri_); buf.append(X("}")); buf.append(name_); buf.append(X(" is not defined [err:XTSE0650]")); XQThrow(StaticErrorException, X("XQCallTemplate::staticResolution"), buf.getRawBuffer()); } // Check the template's expected parameters against the call template arguments, // building the input argument list as we go vector argUsed(args_ ? args_->size() : 0, false); VectorOfASTNodes newArgs = VectorOfASTNodes(XQillaAllocator(mm)); if(tplt->getSignature()->argSpecs != 0) { ArgumentSpecs::const_iterator argIt; for(argIt = tplt->getSignature()->argSpecs->begin(); argIt != tplt->getSignature()->argSpecs->end(); ++argIt) { bool found = false; if(args_ != 0) { vector::iterator argUsedIt = argUsed.begin(); for(it = args_->begin(); it != args_->end(); ++it, ++argUsedIt) { if(XPath2Utils::equals((*it)->name, (*argIt)->getName()) && XPath2Utils::equals((*it)->uri, (*argIt)->getURI())) { found = true; newArgs.push_back((*it)->value); *argUsedIt = true; break; } } } if(!found) { // [ERR XTSE0690] It is a static error if a template that is invoked using xsl:call-template // declares a template parameter specifying required="yes" and not specifying tunnel="yes", if // no value for this parameter is supplied by the calling instruction. XMLBuffer buf; buf.set(X("No value is specified for the template parameter {")); buf.append((*argIt)->getURI()); buf.append(X("}")); buf.append((*argIt)->getName()); buf.append(X(" [err:XTSE0690]")); XQThrow(StaticErrorException, X("XQCallTemplate::staticResolution"), buf.getRawBuffer()); } } } // Check for call template arguments that shouldn't be specified if(args_ != 0) { vector::iterator argUsedIt = argUsed.begin(); for(it = args_->begin(); it != args_->end(); ++it, ++argUsedIt) { if(!(*argUsedIt)) { // [ERR XTSE0680] In the case of xsl:call-template, it is a static error to pass a non-tunnel // parameter named x to a template that does not have a template parameter named x, unless // backwards compatible behavior is enabled for the xsl:call-template instruction. This is not // an error in the case of xsl:apply-templates, xsl:apply-imports, and xsl:next-match; in these // cases the parameter is simply ignored. XMLBuffer buf; buf.set(X("The template does not have a parameter named {")); buf.append((*it)->uri); buf.append(X("}")); buf.append((*it)->name); buf.append(X(" [err:XTSE0680]")); XQThrow3(StaticErrorException, X("XQCallTemplate::staticResolution"), buf.getRawBuffer(), *it); } } } ASTNode *result = tplt->createInstance(newArgs, mm); result->setLocationInfo(this); return result->staticResolution(context); } ASTNode *XQCallTemplate::staticTypingImpl(StaticContext *context) { _src.clear(); // Calculate our static type from the template instances with names if(context) templates_ = context->getTemplateRules(); bool first = true; UserFunctions::iterator inIt; for(inIt = templates_.begin(); inIt != templates_.end(); ++inIt) { if((*inIt) == 0 || (*inIt)->getName() == 0) { *inIt = 0; continue; } if(first) { first = false; _src.getStaticType() = (*inIt)->getBodyStaticAnalysis().getStaticType(); _src.setProperties((*inIt)->getBodyStaticAnalysis().getProperties()); } else { _src.getStaticType() |= (*inIt)->getBodyStaticAnalysis().getStaticType(); _src.setProperties(_src.getProperties() & (*inIt)->getBodyStaticAnalysis().getProperties()); } _src.add((*inIt)->getBodyStaticAnalysis()); } TemplateArguments::iterator it; if(args_ != 0) { for(it = args_->begin(); it != args_->end(); ++it) { if(!_src.removeVariable((*it)->uri, (*it)->name)) { // TBD This parameter will never be used - jpcs } } } // At this point we know astName_ is not null _src.add(astName_->getStaticAnalysis()); if(args_ != 0) { for(it = args_->begin(); it != args_->end(); ++it) { _src.add((*it)->value->getStaticAnalysis()); } } return this; } Result XQCallTemplate::createResult(DynamicContext *context, int flags) const { AnyAtomicType::Ptr itemName = astName_->createResult(context)->next(context); const ATQNameOrDerived *pQName = (const ATQNameOrDerived*)itemName.get(); const XMLCh *uri = pQName->getURI(); const XMLCh *localname = pQName->getName(); // Lookup the template const XQUserFunction *tplt = context->lookUpNamedTemplate(uri, localname); if(tplt == 0) { XMLBuffer buf; buf.set(X("A template called {")); buf.append(uri); buf.append(X("}")); buf.append(localname); buf.append(X(" is not defined [err:XTSE0650]")); XQThrow(StaticErrorException, X("XQCallTemplate::staticResolution"), buf.getRawBuffer()); } return XQApplyTemplates::executeTemplate(tplt, args_, 0, context, this); } XQilla-2.3.0/src/ast/CountTuple.cpp0000644000151400015140000001017211653565523014023 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include CountTuple::CountTuple(TupleNode *parent, const XMLCh *varQName, XPath2MemoryManager *mm) : TupleNode(COUNT, parent, mm), varQName_(varQName), varURI_(0), varName_(0), varSrc_(mm) { } CountTuple::CountTuple(TupleNode *parent, const XMLCh *varURI, const XMLCh *varName, XPath2MemoryManager *mm) : TupleNode(COUNT, parent, mm), varQName_(0), varURI_(varURI), varName_(varName), varSrc_(mm) { } TupleNode *CountTuple::staticResolution(StaticContext *context) { parent_ = parent_->staticResolution(context); if(varName_ == 0) { varURI_ = context->getUriBoundToPrefix(XPath2NSUtils::getPrefix(varQName_, context->getMemoryManager()), this); varName_ = XPath2NSUtils::getLocalName(varQName_); } return this; } static bool canPushCountBack(TupleNode *ancestor) { switch(ancestor->getType()) { case TupleNode::COUNT: { return canPushCountBack(ancestor->getParent()); } case TupleNode::ORDER_BY: case TupleNode::WHERE: case TupleNode::FOR: case TupleNode::CONTEXT_TUPLE: break; case TupleNode::LET: case TupleNode::DEBUG_HOOK: return true; } return false; } TupleNode *CountTuple::staticTypingImpl(StaticContext *context) { // Push back if possible if(canPushCountBack(parent_)) { // Swap parent_ and this LetTuple, re-executing their staticTypingImpl() methods TupleNode *tmp = parent_; parent_ = tmp->getParent(); tmp->setParent(this->staticTypingImpl(context)); return tmp->staticTypingImpl(context); } min_ = parent_->getMin(); max_ = parent_->getMax(); return this; } TupleNode *CountTuple::staticTypingTeardown(StaticContext *context, StaticAnalysis &usedSrc) { // Remove our binding variable from the StaticAnalysis data (removing it if it's not used) if(varName_ && !usedSrc.removeVariable(varURI_, varName_)) { varURI_ = 0; varName_ = 0; } parent_ = parent_->staticTypingTeardown(context, usedSrc); if(varName_ == 0) return parent_; return this; } class CountTupleResult : public TupleResult { public: CountTupleResult(const CountTuple *ast, const TupleResult::Ptr &parent) : TupleResult(ast), ast_(ast), parent_(parent), position_(0) { } virtual Result getVar(const XMLCh *namespaceURI, const XMLCh *name) const { if(XPath2Utils::equals(name, ast_->getVarName()) && XPath2Utils::equals(namespaceURI, ast_->getVarURI())) return posItem_; return parent_->getVar(namespaceURI, name); } virtual void getInScopeVariables(std::vector > &variables) const { variables.push_back(std::pair(ast_->getVarURI(), ast_->getVarName())); parent_->getInScopeVariables(variables); } virtual bool next(DynamicContext *context) { context->testInterrupt(); if(!parent_->next(context)) return false; posItem_ = context->getItemFactory()->createInteger(++position_, context); return true; } private: const CountTuple *ast_; TupleResult::Ptr parent_; Item::Ptr posItem_; int position_; }; TupleResult::Ptr CountTuple::createResult(DynamicContext* context) const { return new CountTupleResult(this, parent_->createResult(context)); } XQilla-2.3.0/src/ast/XQSequence.cpp0000644000151400015140000001424311653565523013745 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include static const unsigned int CONSTANT_FOLD_LIMIT = 4; XQSequence *XQSequence::constantFold(Result &result, DynamicContext *context, XPath2MemoryManager* memMgr, const LocationInfo *location) { XQSequence *seq = new (memMgr) XQSequence(memMgr); seq->setLocationInfo(location); Item::Ptr item; while((item = result->next(context)).notNull()) { if(seq->_astNodes.size() > CONSTANT_FOLD_LIMIT) { seq->release(); return 0; } seq->addItem(XQLiteral::create(item, context, memMgr, location)); } // Don't specify a context for staticTyping seq->staticTypingImpl(0); return seq; } XQSequence::XQSequence(XPath2MemoryManager* memMgr) : ASTNodeImpl(SEQUENCE, memMgr), _astNodes(XQillaAllocator(memMgr)) { } XQSequence::XQSequence(const VectorOfASTNodes &children, XPath2MemoryManager* memMgr) : ASTNodeImpl(SEQUENCE, memMgr), _astNodes(XQillaAllocator(memMgr)) { _astNodes = children; } void XQSequence::addItem(ASTNode* di) { _astNodes.push_back(di); } ASTNode* XQSequence::staticResolution(StaticContext *context) { for(VectorOfASTNodes::iterator i = _astNodes.begin(); i != _astNodes.end(); ++i) { *i = (*i)->staticResolution(context); } return this; } ASTNode *XQSequence::staticTypingImpl(StaticContext *context) { _src.clear(); bool doneOne = false; bool possiblyUpdating = true; bool nestedSeq = false; VectorOfASTNodes::iterator i = _astNodes.begin(); if(i == _astNodes.end()) { _src.possiblyUpdating(true); } for(; i != _astNodes.end(); ++i) { if(_src.isUpdating()) { if(!(*i)->getStaticAnalysis().isUpdating() && !(*i)->getStaticAnalysis().isPossiblyUpdating()) XQThrow(StaticErrorException, X("XQSequence::staticTyping"), X("Mixed updating and non-updating operands [err:XUST0001]")); } else { if((*i)->getStaticAnalysis().isUpdating() && !possiblyUpdating) XQThrow(StaticErrorException, X("XQSequence::staticTyping"), X("Mixed updating and non-updating operands [err:XUST0001]")); } if(possiblyUpdating) possiblyUpdating = (*i)->getStaticAnalysis().isPossiblyUpdating(); if(!doneOne) { doneOne = true; _src.getStaticType() = (*i)->getStaticAnalysis().getStaticType(); } else { _src.getStaticType().typeConcat((*i)->getStaticAnalysis().getStaticType()); } if((*i)->getType() == SEQUENCE) nestedSeq = true; _src.add((*i)->getStaticAnalysis()); } if(context && nestedSeq) { XPath2MemoryManager *mm = context->getMemoryManager(); VectorOfASTNodes newArgs = VectorOfASTNodes(XQillaAllocator(mm)); for(i = _astNodes.begin(); i != _astNodes.end(); ++i) { if((*i)->getType() == SEQUENCE) { XQSequence *arg = (XQSequence*)*i; for(VectorOfASTNodes::iterator j = arg->_astNodes.begin(); j != arg->_astNodes.end(); ++j) { newArgs.push_back(*j); } } else { newArgs.push_back(*i); } } _astNodes = newArgs; } // Dissolve ourselves if we have only one child if(context && _astNodes.size() == 1) { return _astNodes.front(); } return this; } EventGenerator::Ptr XQSequence::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { VectorOfASTNodes::const_iterator i = _astNodes.begin(); VectorOfASTNodes::const_iterator end = _astNodes.end(); if(i == end) return 0; --end; for(; i != end; ++i) { (*i)->generateAndTailCall(events, context, preserveNS, preserveType); } return new ClosureEventGenerator(*i, context, preserveNS, preserveType); } PendingUpdateList XQSequence::createUpdateList(DynamicContext *context) const { PendingUpdateList result; for(VectorOfASTNodes::const_iterator i = _astNodes.begin(); i != _astNodes.end(); ++i) { result.mergeUpdates((*i)->createUpdateList(context)); } return result; } class XQSequenceResult : public ResultImpl { public: XQSequenceResult(const XQSequence *ast) : ResultImpl(ast), ast_(ast), i_(ast->getChildren().begin()), result_(0) { } virtual Item::Ptr nextOrTail(Result &tail, DynamicContext *context) { Item::Ptr item = result_->next(context); while(item.isNull()) { const ASTNode *ast = *i_; ++i_; if(i_ == ast_->getChildren().end()) { // Tail call optimisation tail = ast->createResult(context); return 0; } result_ = ast->createResult(context); item = result_->next(context); } return item; } private: const XQSequence *ast_; VectorOfASTNodes::const_iterator i_; Result result_; }; Result XQSequence::createResult(DynamicContext* context, int flags) const { if(_astNodes.empty()) return 0; return ClosureResult::create(getStaticAnalysis(), context, new XQSequenceResult(this)); } BoolResult XQSequence::boolResult(DynamicContext* context) const { if(_astNodes.empty()) return BoolResult::Null; if(_astNodes.size() == 1) return _astNodes[0]->boolResult(context); return ASTNodeImpl::boolResult(context); } XQilla-2.3.0/src/ast/XQElementConstructor.cpp0000644000151400015140000003632411653565523016040 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "../events/NoInheritFilter.hpp" #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif using namespace std; XQElementConstructor::XQElementConstructor(ASTNode* name, VectorOfASTNodes* attrList, VectorOfASTNodes* children, XPath2MemoryManager* mm) : XQDOMConstructor(mm), namespaceExpr(0), m_name(name), m_attrList(attrList), m_children(children), m_namespaces(NULL) { } XQElementConstructor::XQElementConstructor(ASTNode* name, VectorOfASTNodes* attrList, VectorOfASTNodes* children, RefHashTableOf< XMLCh > *namespaces, XPath2MemoryManager *mm) : XQDOMConstructor(mm), namespaceExpr(0), m_name(name), m_attrList(attrList), m_children(children), m_namespaces(namespaces) { } EventGenerator::Ptr XQElementConstructor::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { NoInheritFilter niFilter(events, context->getMemoryManager()); if(!context->getInheritNamespaces()) events = &niFilter; // Resolve the name AnyAtomicType::Ptr itemName = m_name->createResult(context)->next(context); const ATQNameOrDerived *pQName = (const ATQNameOrDerived*)itemName.get(); const XMLCh *prefix = emptyToNull(pQName->getPrefix()); const XMLCh *uri = emptyToNull(pQName->getURI()); const XMLCh *localname = pQName->getName(); events->startElementEvent(prefix, uri, localname); ElemConstructFilter elemFilter(events, this, context->getMemoryManager()); if(m_namespaces != 0) { RefHashTableOfEnumerator nsEnumVal(m_namespaces, false, context->getMemoryManager()); RefHashTableOfEnumerator nsEnumKey(m_namespaces, false, context->getMemoryManager()); while(nsEnumVal.hasMoreElements()) { elemFilter.namespaceEvent(emptyToNull((XMLCh*)nsEnumKey.nextElementKey()), emptyToNull(&nsEnumVal.nextElement())); } } if(m_attrList != 0) { for(VectorOfASTNodes::const_iterator itAttr = m_attrList->begin(); itAttr != m_attrList->end (); ++itAttr) { (*itAttr)->generateAndTailCall(&elemFilter, context, preserveNS, preserveType); } } for(VectorOfASTNodes::const_iterator itCont = m_children->begin(); itCont != m_children->end (); ++itCont) { (*itCont)->generateAndTailCall(&elemFilter, context, preserveNS, preserveType); } const XMLCh *typeURI = SchemaSymbols::fgURI_SCHEMAFORSCHEMA; const XMLCh *typeName = DocumentCache::g_szUntyped; if(context->getConstructionMode() == StaticContext::CONSTRUCTION_MODE_PRESERVE) { typeURI = SchemaSymbols::fgURI_SCHEMAFORSCHEMA; typeName = SchemaSymbols::fgATTVAL_ANYTYPE; } events->endElementEvent(prefix, uri, localname, typeURI, typeName); return 0; } ASTNode* XQElementConstructor::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); // Add a new scope for the namespace definitions XQillaNSResolverImpl *newNSScope = new (mm) XQillaNSResolverImpl(mm, context->getNSResolver()); AutoNsScopeReset jan(context, newNSScope); bool namespacesFound = false; unsigned int i; if(m_attrList != 0) { AutoDelete dContext(context->createDynamicContext()); dContext->setMemoryManager(context->getMemoryManager()); // process the namespace attributes (they are all at the beginning of the list) for (VectorOfASTNodes::iterator it=m_attrList->begin();it!=m_attrList->end();) { ASTNode* astNode=*it; assert(astNode->getType()==ASTNode::DOM_CONSTRUCTOR && ((XQDOMConstructor*)astNode)->getNodeType()==Node::attribute_string); XQDOMConstructor* attrConstructor=(XQDOMConstructor*)astNode; const ASTNode* dItem=attrConstructor->getName(); assert(dItem!=NULL); if(dItem->getType() != ASTNode::DIRECT_NAME) // no more namespace declaration break; const XMLCh *qname = ((XQDirectName*)dItem)->getQName(); const XMLCh* XMLNSPrefix=NULL; if(XPath2Utils::equals(qname,XMLUni::fgXMLNSString)) { XMLNSPrefix=XMLUni::fgZeroLenString; } else if(XPath2Utils::equals(XPath2NSUtils::getPrefix(qname, context->getMemoryManager()), XMLUni::fgXMLNSString)) { XMLNSPrefix=XPath2NSUtils::getLocalName(qname); } else // no more namespace declaration break; // we are a namespace attribute: check that we have a constant value namespacesFound = true; const VectorOfASTNodes *children=attrConstructor->getChildren(); const XMLCh* uri=NULL; if(children->size()==0) { // supporting Namespace 1.1 means unsetting the binding... uri=XMLUni::fgZeroLenString; } else if(children->size()>1 || ((*children)[0]->getType()!=ASTNode::LITERAL && (*children)[0]->getType()!=ASTNode::SEQUENCE)) { XQThrow(StaticErrorException,X("DOM Constructor"),X("The value of a namespace declaration attribute must " "be a literal string [err:XQST0022]")); } else { Item::Ptr nsUri = (*children)[0]->createResult(dContext)->next(dContext); if(nsUri == NULLRCP) XQThrow(StaticErrorException,X("DOM Constructor"),X("The value of a namespace declaration attribute must " "be a literal string [err:XQST0022]")); uri=nsUri->asString(dContext); } if(XMLNSPrefix != XMLUni::fgZeroLenString) { XQillaNSResolverImpl::forbiddenBindingCheck(XMLNSPrefix, uri, this); newNSScope->addNamespaceBinding(XMLNSPrefix, uri); } else { context->setDefaultElementAndTypeNS(uri); newNSScope->addNamespaceBinding(XMLUni::fgZeroLenString, uri); } if(m_namespaces==NULL) m_namespaces = new (mm) RefHashTableOf< XMLCh >(5, false, mm); if(m_namespaces->containsKey(XMLNSPrefix)) XQThrow(StaticErrorException,X("DOM Constructor"),X("Two namespace declaration attributes specified by a direct ele" "ment constructor do not have distinct names. [err:XQST0071]")); m_namespaces->put((void*)mm->getPooledString(XMLNSPrefix), (XMLCh*)mm->getPooledString(uri)); it=m_attrList->erase(it); } // now run static resolution on the real attributes for (i=0;isize();i++) { (*m_attrList)[i] = (*m_attrList)[i]->staticResolution(context); } // now that we have added the local namespace declaration, check for duplicate attribute names std::set attrNames; for (i=0;isize();i++) { ASTNode* astNode=(*m_attrList)[i]; assert(astNode->getType()==ASTNode::DOM_CONSTRUCTOR && ((XQDOMConstructor*)astNode)->getNodeType()==Node::attribute_string); XQDOMConstructor* attrConstructor=(XQDOMConstructor*)astNode; const ASTNode* dItem=attrConstructor->getName(); if(dItem->getType() == ASTNode::NAME_EXPRESSION) { dItem = ((XQNameExpression*)dItem)->getExpression(); } if(dItem->getType() == ASTNode::TREAT_AS) { dItem = ((XQAtomize*)dItem)->getExpression(); } if(dItem->getType() == ASTNode::ATOMIZE) { dItem = ((XQAtomize*)dItem)->getExpression(); } assert(dItem->getType()==ASTNode::QNAME_LITERAL); Item::Ptr item = dItem->createResult(dContext)->next(dContext); QualifiedName attrName(item->asString(dContext)); XMLBuffer buff(200, dContext->getMemoryManager()); if(attrName.getPrefix()!=0 && *attrName.getPrefix()!=0) { buff.append(chOpenCurly); buff.append(dContext->getUriBoundToPrefix(attrName.getPrefix(), this)); buff.append(chCloseCurly); } buff.append(attrName.getName()); if(attrNames.find(buff.getRawBuffer())!=attrNames.end()) XQThrow(StaticErrorException,X("DOM Constructor"),X("Two attributes specified by a direct element constructor do not have distinct expanded QNames. [err:XQST0040]")); attrNames.insert(XMLString::replicate(buff.getRawBuffer(), dContext->getMemoryManager())); } } // and run static resolution m_name = new (mm) XQNameExpression(m_name, mm); m_name->setLocationInfo(this); m_name = m_name->staticResolution(context); for(i = 0; i < m_children->size(); ++i) { (*m_children)[i] = new (mm) XQContentSequence((*m_children)[i], mm); (*m_children)[i]->setLocationInfo(this); (*m_children)[i] = (*m_children)[i]->staticResolution(context); } if(namespacesFound) { // Add an XQNamespaceBinding object to sort out our namespaces XQNamespaceBinding *result = new (mm) XQNamespaceBinding(newNSScope, this, mm); result->setLocationInfo(this); return result; } return this; } ASTNode *XQElementConstructor::staticTypingImpl(StaticContext *context) { _src.clear(); unsigned int i; if(m_attrList != 0) { for(i = 0; i < m_attrList->size(); ++i) { _src.add((*m_attrList)[i]->getStaticAnalysis()); } } _src.add(m_name->getStaticAnalysis()); if(m_name->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("XQElementConstructor::staticTyping"), X("It is a static error for the name expression of an element constructor " "to be an updating expression [err:XUST0001]")); } for(i = 0; i < m_children->size(); ++i) { _src.add((*m_children)[i]->getStaticAnalysis()); if((*m_children)[i]->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("XQElementConstructor::staticTyping"), X("It is a static error for a content expression of an element constructor " "to be an updating expression [err:XUST0001]")); } } _src.getStaticType() = StaticType::ELEMENT_TYPE; _src.creative(true); _src.setProperties(StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::PEER | StaticAnalysis::SUBTREE | StaticAnalysis::SAMEDOC | StaticAnalysis::ONENODE); return this; } const XMLCh* XQElementConstructor::getNodeType() const { return Node::element_string; } ASTNode *XQElementConstructor::getName() const { return m_name; } const VectorOfASTNodes *XQElementConstructor::getAttributes() const { return m_attrList; } const VectorOfASTNodes *XQElementConstructor::getChildren() const { return m_children; } void XQElementConstructor::setName(ASTNode *name) { m_name = name; } ////////////////////////////////////////////////////////////////////// ElemConstructFilter::ElemConstructFilter(EventHandler *next, const LocationInfo *location, XPath2MemoryManager *mm) : EventFilter(next), mm_(mm), location_(location), level_(0), seenContent_(false) { } void ElemConstructFilter::startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname) { seenContent_ = true; ++level_; next_->startElementEvent(prefix, uri, localname); } void ElemConstructFilter::endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName) { next_->endElementEvent(prefix, uri, localname, typeURI, typeName); --level_; } void ElemConstructFilter::piEvent(const XMLCh *target, const XMLCh *value) { seenContent_ = true; next_->piEvent(target, value); } void ElemConstructFilter::textEvent(const XMLCh *value) { seenContent_ = true; next_->textEvent(value); } void ElemConstructFilter::textEvent(const XMLCh *chars, unsigned int length) { seenContent_ = true; next_->textEvent(chars, length); } void ElemConstructFilter::commentEvent(const XMLCh *value) { seenContent_ = true; next_->commentEvent(value); } void ElemConstructFilter::attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { if(level_ == 0) { if(seenContent_) XQThrow3(ASTException,X("ElemConstructFilter::attributeEvent"), X("Attribute nodes must be created before the other content of an element [err:XQTY0024]"), location_); if(!attrs_.insert(AttrRecord(uri, localname, mm_)).second) XQThrow3(ASTException,X("ElemConstructFilter::attributeEvent"), X("An element has two attributes with the same expanded name [err:XQDY0025]"), location_); } next_->attributeEvent(prefix, uri, localname, value, typeURI, typeName); } void ElemConstructFilter::namespaceEvent(const XMLCh *prefix, const XMLCh *uri) { if(level_ == 0) { if(seenContent_) XQThrow3(ASTException,X("ElemConstructFilter::namespaceEvent"), X("Namespace nodes must be created before the other content of an element [err:XQTY0024]"), location_); if(!attrs_.insert(AttrRecord(prefix, 0, mm_)).second) XQThrow3(ASTException,X("ElemConstructFilter::namespaceEvent"), X("An element has two namespaces for the same prefix [err:XQDY0025]"), location_); } next_->namespaceEvent(prefix, uri); } ElemConstructFilter::AttrRecord::AttrRecord(const XMLCh *u, const XMLCh *n, XPath2MemoryManager *mm) : uri(mm->getPooledString(u)), name(mm->getPooledString(n)) { } bool ElemConstructFilter::AttrRecord::operator<(const AttrRecord &o) const { int cmp = XMLString::compareString(name, o.name); if(cmp < 0) return true; if(cmp > 0) return false; return XMLString::compareString(uri, o.uri) < 0; } XQilla-2.3.0/src/ast/XQFunctionCall.cpp0000644000151400015140000000555611653565523014565 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; XQFunctionCall::XQFunctionCall(const XMLCh *qname, VectorOfASTNodes *args, XPath2MemoryManager *mm) : ASTNodeImpl(FUNCTION_CALL, mm), prefix_(XPath2NSUtils::getPrefix(qname, mm)), uri_(0), name_(XPath2NSUtils::getLocalName(qname)), args_(args ? args : new (mm) VectorOfASTNodes(XQillaAllocator(mm))) { } XQFunctionCall::XQFunctionCall(const XMLCh *prefix, const XMLCh *uri, const XMLCh *name, VectorOfASTNodes *args, XPath2MemoryManager *mm) : ASTNodeImpl(FUNCTION_CALL, mm), prefix_(prefix), uri_(uri), name_(name), args_(args ? args : new (mm) VectorOfASTNodes(XQillaAllocator(mm))) { } ASTNode* XQFunctionCall::staticResolution(StaticContext *context) { if(uri_ == 0) { if(prefix_ == 0 || *prefix_ == 0) { uri_ = context->getDefaultFuncNS(); } else { uri_ = context->getUriBoundToPrefix(prefix_, this); } } ASTNode *result = context->lookUpFunction(uri_, name_, *args_, this); if(result == 0) { XMLBuffer buf; buf.set(X("A function called {")); buf.append(uri_); buf.append(X("}")); buf.append(name_); buf.append(X(" with ")); XPath2Utils::numToBuf(args_ ? (unsigned int)args_->size() : 0, buf); buf.append(X(" arguments is not defined [err:XPST0017]")); XQThrow(StaticErrorException, X("XQFunctionCall::staticResolution"), buf.getRawBuffer()); } // Our arguments don't belong to us anymore for(VectorOfASTNodes::iterator i = args_->begin(); i != args_->end(); ++i) { *i = 0; } // Release this object this->release(); return result->staticResolution(context); } ASTNode *XQFunctionCall::staticTypingImpl(StaticContext *context) { // Should never happen return this; } Result XQFunctionCall::createResult(DynamicContext* context, int flags) const { // Should never happen return 0; } XQilla-2.3.0/src/ast/XQCommentConstructor.cpp0000644000151400015140000001017211653565523016042 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif XQCommentConstructor::XQCommentConstructor(ASTNode *value, XPath2MemoryManager* mm, bool xslt) : XQDOMConstructor(mm), m_value(value), xslt_(xslt) { } EventGenerator::Ptr XQCommentConstructor::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { XMLBuffer value; getStringValue(m_value, value, context); // Check for two dashes in a row, or a dash at the end if(xslt_) { XMLBuffer buf(value.getLen()); bool foundDash = false; const XMLCh *ptr = value.getRawBuffer(); const XMLCh *end = ptr + value.getLen(); while(ptr != end) { if(*ptr == chDash) { if(foundDash) { buf.append(' '); } foundDash = true; } else foundDash = false; buf.append(*ptr); ++ptr; } if(foundDash) { buf.append(' '); } value.set(buf.getRawBuffer()); } else { bool foundDash = false; const XMLCh *ptr = value.getRawBuffer(); const XMLCh *end = ptr + value.getLen(); while(ptr != end) { if(*ptr == chDash) { if(foundDash) break; foundDash = true; } else foundDash = false; ++ptr; } if(foundDash) XQThrow(ASTException,X("DOM Constructor"),X("It is a dynamic error if the result of the content expression of " "a computed comment constructor contains two adjacent hyphens or " "ends with a hyphen. [err:XQDY0072]")); } events->commentEvent(value.getRawBuffer()); return 0; } ASTNode* XQCommentConstructor::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); m_value = new (mm) XQAtomize(m_value, mm); m_value->setLocationInfo(this); m_value = m_value->staticResolution(context); return this; } ASTNode *XQCommentConstructor::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(m_value->getStaticAnalysis()); if(m_value->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("XQCommentConstructor::staticTyping"), X("It is a static error for the value expression of a comment node constructor " "to be an updating expression [err:XUST0001]")); } _src.getStaticType() = StaticType::COMMENT_TYPE; _src.creative(true); _src.setProperties(StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::PEER | StaticAnalysis::SUBTREE | StaticAnalysis::SAMEDOC | StaticAnalysis::ONENODE); return this; } const XMLCh* XQCommentConstructor::getNodeType() const { return Node::comment_string; } ASTNode *XQCommentConstructor::getValue() const { return m_value; } void XQCommentConstructor::setValue(ASTNode *value) { m_value = value; } XQilla-2.3.0/src/ast/XQCopyOf.cpp0000644000151400015140000000400211653565523013364 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include XERCES_CPP_NAMESPACE_USE using namespace std; XQCopyOf::XQCopyOf(XPath2MemoryManager* memMgr) : ASTNodeImpl(COPY_OF, memMgr), expr_(0), copyNamespaces_(true) { } XQCopyOf::XQCopyOf(ASTNode *expr, bool copyNamespaces, XPath2MemoryManager* memMgr) : ASTNodeImpl(COPY_OF, memMgr), expr_(expr), copyNamespaces_(copyNamespaces) { } ASTNode* XQCopyOf::staticResolution(StaticContext *context) { expr_ = expr_->staticResolution(context); return this; } ASTNode *XQCopyOf::staticTypingImpl(StaticContext *context) { _src.clear(); _src.copy(expr_->getStaticAnalysis()); _src.setProperties(0); if(!_src.getStaticType().containsType(StaticType::NODE_TYPE)) { return expr_; } return this; } Result XQCopyOf::createResult(DynamicContext* context, int flags) const { return EventGenerator::createResult(this, 0, context); } EventGenerator::Ptr XQCopyOf::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { return expr_->generateEvents(events, context, copyNamespaces_, false); } XQilla-2.3.0/src/ast/XQQuantified.cpp0000644000151400015140000000467011653565523014271 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include XQQuantified::XQQuantified(Type qtype, TupleNode *parent, ASTNode *expr, XPath2MemoryManager *mm) : ASTNodeImpl(QUANTIFIED, mm), qtype_(qtype), parent_(parent), expr_(expr) { } ASTNode *XQQuantified::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); parent_ = parent_->staticResolution(context); expr_ = new (mm) XQEffectiveBooleanValue(expr_, mm); expr_->setLocationInfo(this); expr_ = expr_->staticResolution(context); return this; } ASTNode *XQQuantified::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(expr_->getStaticAnalysis()); _src.getStaticType() = StaticType::BOOLEAN_TYPE; parent_ = parent_->staticTypingTeardown(context, _src); return this; } BoolResult XQQuantified::boolResult(DynamicContext* context) const { bool defaultResult = (getQuantifierType() == XQQuantified::SOME) ? false : true; AutoVariableStoreReset reset(context); TupleResult::Ptr tuples = getParent()->createResult(context); while(tuples->next(context)) { context->setVariableStore(tuples); bool result = getExpression()->boolResult(context); if(defaultResult != result) { defaultResult = result; break; } reset.reset(); } return defaultResult; } Result XQQuantified::createResult(DynamicContext* context, int flags) const { return (Item::Ptr)context->getItemFactory()->createBoolean(boolResult(context), context); } XQilla-2.3.0/src/ast/XQPredicate.cpp0000644000151400015140000002406011653565523014073 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include XQPredicate::XQPredicate(ASTNode *predicate, XPath2MemoryManager* memMgr) : ASTNodeImpl(PREDICATE, memMgr), expr_(0), predicate_(predicate), reverse_(false) { } XQPredicate::XQPredicate(ASTNode* expr, ASTNode *predicate, XPath2MemoryManager* memMgr) : ASTNodeImpl(PREDICATE, memMgr), expr_(expr), predicate_(predicate), reverse_(false) { } XQPredicate::XQPredicate(ASTNode *expr, ASTNode *predicate, bool reverse, XPath2MemoryManager* memMgr) : ASTNodeImpl(PREDICATE, memMgr), expr_(expr), predicate_(predicate), reverse_(reverse) { } ASTNode* XQPredicate::staticResolution(StaticContext *context) { expr_ = expr_->staticResolution(context); { AutoNodeSetOrderingReset orderReset(context); predicate_ = predicate_->staticResolution(context); } return this; } ASTNode *XQPredicate::staticTypingImpl(StaticContext *context) { _src.clear(); _src.copy(expr_->getStaticAnalysis()); _src.getStaticType().multiply(0, 1); // Remove context item usage _src.addExceptContextFlags(predicate_->getStaticAnalysis()); return this; } Result XQPredicate::createResult(DynamicContext* context, int flags) const { const StaticAnalysis &src = predicate_->getStaticAnalysis(); Result parent = expr_->createResult(context, flags); size_t contextSize = 0; if(src.isContextSizeUsed()) { // We need the context size, so convert to a Sequence to work it out Sequence seq(parent->toSequence(context)); contextSize = seq.getLength(); parent = new SequenceResult(this, seq); } if(src.getStaticType().isType(StaticType::NUMERIC_TYPE) && src.getStaticType().getMin() <= 1 && src.getStaticType().getMax() >= 1 && !src.isContextItemUsed() && !src.isContextPositionUsed()) { // It only contains numeric type results, and doesn't use the context // item or position // TBD Fix this StaticAnalysis - jpcs return ClosureResult::create(predicate_->getStaticAnalysis(), context, new NumericPredicateFilterResult(parent, predicate_, contextSize)); } else if(!src.getStaticType().containsType(StaticType::NUMERIC_TYPE) || src.getStaticType().getMin() > 1 || src.getStaticType().getMax() < 1) { // It only contains non-numeric results return ClosureResult::create(predicate_->getStaticAnalysis(), context, new NonNumericPredicateFilterResult(parent, predicate_, contextSize)); } else { return ClosureResult::create(predicate_->getStaticAnalysis(), context, new PredicateFilterResult(parent, predicate_, contextSize)); } } Result XQPredicate::iterateResult(const Result &contextItems, DynamicContext *context) const { const StaticAnalysis &src = predicate_->getStaticAnalysis(); if((src.getStaticType().containsType(StaticType::NUMERIC_TYPE) && src.getStaticType().getMin() <= 1 && src.getStaticType().getMax() >= 1) || src.isContextPositionUsed() || src.isContextSizeUsed()) { return ASTNodeImpl::iterateResult(contextItems, context); } Result parent = expr_->iterateResult(contextItems, context); // It only contains non-numeric results return ClosureResult::create(predicate_->getStaticAnalysis(), context, new NonNumericPredicateFilterResult(parent, predicate_, 0)); } ASTNode *XQPredicate::addPredicates(ASTNode *expr, VectorOfPredicates *preds) { VectorOfPredicates::iterator i = preds->begin(); VectorOfPredicates::iterator end = preds->end(); for(; i != end; ++i) { (*i)->setExpression(expr); expr = *i; } return expr; } ASTNode *XQPredicate::addReversePredicates(ASTNode *expr, VectorOfPredicates *preds) { VectorOfPredicates::iterator i = preds->begin(); VectorOfPredicates::iterator end = preds->end(); for(; i != end; ++i) { (*i)->setReverse(true); (*i)->setExpression(expr); expr = *i; } return expr; } ///////////////////////////////////// // PredicateFilterResult ///////////////////////////////////// PredicateFilterResult::PredicateFilterResult(const Result &parent, const ASTNode *pred, size_t contextSize) : ResultImpl(pred), todo_(true), parent_(parent), pred_(pred), contextPos_(0), contextSize_(contextSize) { } Item::Ptr PredicateFilterResult::next(DynamicContext *context) { AutoContextInfoReset autoReset(context); bool contextUsed = pred_->getStaticAnalysis().isContextItemUsed() || pred_->getStaticAnalysis().isContextPositionUsed(); Item::Ptr result = 0; while(result.isNull()) { result = parent_->next(context); if(result.isNull()) { parent_ = 0; return 0; } ++contextPos_; if(todo_ || contextUsed) { todo_ = false; context->setContextSize(contextSize_); context->setContextPosition(contextPos_); context->setContextItem(result); Result pred_result = pred_->createResult(context); first_ = pred_result->next(context); if(first_.notNull()) { second_ = pred_result->next(context); } autoReset.resetContextInfo(); } // 3.2.2 ... // The predicate truth value is derived by applying the following rules, in order: // 1) If the value of the predicate expression is an atomic value of a numeric type, the predicate truth // value is true if and only if the value of the predicate expression is equal to the context position. if(first_.notNull() && second_.isNull() && first_->isAtomicValue() && ((const AnyAtomicType::Ptr)first_)->isNumericValue()) { const Numeric::Ptr num = (const Numeric::Ptr)first_; if(!num->equals((const AnyAtomicType::Ptr)context->getItemFactory()->createInteger((long)contextPos_, context), context)) { result = 0; } else if(!contextUsed) { parent_ = 0; } } else { // 2) Otherwise, the predicate truth value is the effective boolean value of the predicate expression if(!XQEffectiveBooleanValue::get(first_, second_, context, this)) { result = 0; } } } return result; } std::string PredicateFilterResult::asString(DynamicContext *context, int indent) const { return "predicatefilterresult"; } ///////////////////////////////////// // NonNumericPredicateFilterResult ///////////////////////////////////// NonNumericPredicateFilterResult::NonNumericPredicateFilterResult(const Result &parent, const ASTNode *pred, size_t contextSize) : ResultImpl(pred), todo_(true), parent_(parent), pred_(pred), contextPos_(0), contextSize_(contextSize) { } Item::Ptr NonNumericPredicateFilterResult::next(DynamicContext *context) { AutoContextInfoReset autoReset(context); bool contextUsed = pred_->getStaticAnalysis().isContextItemUsed() || pred_->getStaticAnalysis().isContextPositionUsed(); Item::Ptr result = 0; while(result.isNull()) { result = parent_->next(context); if(result.isNull()) { parent_ = 0; return 0; } ++contextPos_; if(todo_ || contextUsed) { todo_ = false; context->setContextSize(contextSize_); context->setContextPosition(contextPos_); context->setContextItem(result); // 2) Otherwise, the predicate truth value is the effective boolean value of the predicate expression Result predResult = pred_->createResult(context); Item::Ptr first = predResult->next(context); if(first.isNull() || !XQEffectiveBooleanValue::get(first, predResult->next(context), context, this)) { result = 0; if(!contextUsed) { parent_ = 0; } } autoReset.resetContextInfo(); } } return result; } std::string NonNumericPredicateFilterResult::asString(DynamicContext *context, int indent) const { return "nonnumericpredicatefilterresult"; } ///////////////////////////////////// // NumericPredicateFilterResult ///////////////////////////////////// NumericPredicateFilterResult::NumericPredicateFilterResult(const Result &parent, const ASTNode *pred, size_t contextSize) : ResultImpl(pred), parent_(parent), pred_(pred), contextSize_(contextSize) { } Item::Ptr NumericPredicateFilterResult::nextOrTail(Result &tail, DynamicContext *context) { AutoContextInfoReset autoReset(context); context->setContextSize(contextSize_); // Set the context item to something other than null, // since fn:last() checks to see that there is actually // a context item context->setContextItem(context->getMemoryManager()->createInteger(1)); Result pred_result = pred_->createResult(context); Numeric::Ptr first = (Numeric::Ptr)pred_result->next(context); if(first.isNull()) { // The effective boolean value is therefore false tail = 0; return 0; } Item::Ptr second = pred_result->next(context); if(second.notNull()) { // The effective boolean value causes an error - // so call it to get the correct error XQEffectiveBooleanValue::get(first, second, context, this); tail = 0; return 0; } autoReset.resetContextInfo(); if(!first->isInteger() || first->isZero() || first->isNegative()) { tail = 0; return 0; } parent_->skip(first->asInt() - 1, context); Item::Ptr result = parent_->next(context); tail = 0; return result; } XQilla-2.3.0/src/ast/XQNav.cpp0000644000151400015140000003170311653565523012721 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include XQNav::XQNav(XPath2MemoryManager* memMgr) : ASTNodeImpl(NAVIGATION, memMgr), _steps(XQillaAllocator(memMgr)), _sortAdded(false) { } XQNav::XQNav(ASTNode *ast, XPath2MemoryManager* memMgr) : ASTNodeImpl(NAVIGATION, memMgr), _steps(XQillaAllocator(memMgr)), _sortAdded(false) { addStep(ast); } XQNav::XQNav(const Steps &steps, bool sortAdded, XPath2MemoryManager* memMgr) : ASTNodeImpl(NAVIGATION, memMgr), _steps(XQillaAllocator(memMgr)), _sortAdded(sortAdded) { _steps = steps; } XQNav::~XQNav() { //no-op } Result XQNav::createResult(DynamicContext* context, int flags) const { Steps::const_iterator end = _steps.end(); Steps::const_iterator it = _steps.begin(); Result result(0); if(it != end) { ASTNode *step = it->step; result = step->createResult(context, flags); StaticType st = step->getStaticAnalysis().getStaticType(); for(++it; it != end; ++it) { if(st.containsType(StaticType::ANY_ATOMIC_TYPE)) { result = new IntermediateStepCheckResult(step, result); } step = it->step; result = step->iterateResult(result, context); st = step->getStaticAnalysis().getStaticType(); } // the last step allows either nodes or atomic items if(st.containsType(StaticType::NODE_TYPE) && st.containsType(StaticType::ANY_ATOMIC_TYPE)) { result = new LastStepCheckResult(step, result); } } return result; } void XQNav::addStep(const StepInfo &step) { if(step.step->getType() == NAVIGATION) { Steps &navSteps = ((XQNav*)step.step)->_steps; for(Steps::iterator it2 = navSteps.begin(); it2 != navSteps.end(); ++it2) { _steps.push_back(*it2); } } else { _steps.push_back(step); } } void XQNav::addStepFront(ASTNode* step) { if(step->getType() == NAVIGATION) { Steps &navSteps = ((XQNav*)step)->_steps; for(Steps::reverse_iterator it2 = navSteps.rbegin(); it2 != navSteps.rend(); ++it2) { _steps.insert(_steps.begin(), *it2); } } else { _steps.insert(_steps.begin(), step); } } ASTNode* XQNav::staticResolution(StaticContext *context) { if(!_sortAdded) { _sortAdded = true; // Wrap ourselves in a document order sort XPath2MemoryManager *mm = context->getMemoryManager(); ASTNode *result = new (mm) XQDocumentOrder(this, mm); result->setLocationInfo(_steps.back().step); return result->staticResolution(context); } Steps::iterator begin = _steps.begin(); Steps::iterator end = _steps.end(); Steps::iterator it = begin; for(; it != end; ++it) { // Statically resolve our step it->step = it->step->staticResolution(context); } return this; } ASTNode *XQNav::staticTypingImpl(StaticContext *context) { _src.clear(); unsigned int props = StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::PEER | StaticAnalysis::SUBTREE | StaticAnalysis::SAMEDOC | StaticAnalysis::ONENODE; AutoDelete newSteps(0); if(context) newSteps.set(new Steps(XQillaAllocator(context->getMemoryManager()))); unsigned int min = 1, max = 1; Steps::iterator begin = _steps.begin(); Steps::iterator end = _steps.end(); Steps::iterator it = begin; for(; it != end; ++it) { // Statically resolve our step ASTNode *step = it->step; const StaticAnalysis &stepSrc = step->getStaticAnalysis(); min *= stepSrc.getStaticType().getMin(); if(max == StaticType::UNLIMITED || stepSrc.getStaticType().getMax() == StaticType::UNLIMITED) max = StaticType::UNLIMITED; else max *= stepSrc.getStaticType().getMax(); props = combineProperties(props, stepSrc.getProperties()); if(!context || stepSrc.areContextFlagsUsed() || _src.isNoFoldingForced() || stepSrc.getStaticType().containsType(StaticType::ANY_ATOMIC_TYPE) || stepSrc.isCreative()) { if(it != begin) { // Remove context item usage _src.addExceptContextFlags(stepSrc); } else { _src.add(stepSrc); } } else { // Constant fold, by clearing all our previous steps and just having our most recent step. // This is only possible because the result of steps has to be nodes, and // duplicates are removed, which means we aren't forced to execute a constant // step a set number of times. newSteps->clear(); _src.add(stepSrc); } if(context) { if(step->getType() == NAVIGATION) { Steps &navSteps = ((XQNav*)step)->_steps; for(Steps::iterator it2 = navSteps.begin(); it2 != navSteps.end(); ++it2) { newSteps->push_back(it2->step); } } else { newSteps->push_back(step); } } } if(context) { _steps = *newSteps.get(); newSteps->clear(); it = _steps.begin(); end = _steps.end(); for(; it != end; ++it) { // Special case, to optimise //foo or //descendant::foo if(it->step->getType() == STEP) { XQStep *step = (XQStep*)it->step; NodeTest *nodetest = (NodeTest*)step->getNodeTest(); // Check for a step with a type wildcard if(nodetest->getTypeWildcard() && (it + 1) != end) { bool usesContextPositionOrSize = false; const ASTNode *peek = (it + 1)->step; while(peek->getType() == PREDICATE) { const XQPredicate *pred = (const XQPredicate*)peek; if(pred->getPredicate()->getStaticAnalysis().isContextPositionUsed() || pred->getPredicate()->getStaticAnalysis().isContextSizeUsed() || pred->getPredicate()->getStaticAnalysis().getStaticType().containsType(StaticType::NUMERIC_TYPE)) { usesContextPositionOrSize = true; } peek = pred->getExpression(); } if(peek->getType() == STEP) { const XQStep *peekstep = (XQStep*)peek; // If the next node is CHILD or DESCENDANT axis, then // this step must have children if(peekstep->getAxis() == XQStep::CHILD || peekstep->getAxis() == XQStep::DESCENDANT) { // Check for a descendant-or-self axis if(step->getAxis() == XQStep::DESCENDANT_OR_SELF) { if(!usesContextPositionOrSize) { // This is a descendant-or-self::node()/child::foo that we can optimise into descendant::foo ++it; const_cast(peekstep)->setAxis(XQStep::DESCENDANT); // Set the properties to those for descendant axis const_cast(peekstep->getStaticAnalysis()). setProperties(StaticAnalysis::SUBTREE | StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::SAMEDOC); } } nodetest->setHasChildren(); } // If the next node is ATTRIBUTE axis, then this step needs to be // an element else if(peekstep->getAxis() == XQStep::ATTRIBUTE) { nodetest->setTypeWildcard(false); nodetest->setNodeType(Node::element_string); } } } } newSteps->push_back(*it); } _steps = *newSteps.get(); } if(!_steps.empty()) { _src.getStaticType() = _steps.back().step->getStaticAnalysis().getStaticType(); _src.getStaticType().multiply(min, max); } _src.setProperties(props); return this; } const XQNav::Steps &XQNav::getSteps() const { return _steps; } unsigned int XQNav::combineProperties(unsigned int prev_props, unsigned int step_props) { unsigned int new_props = 0; if((step_props & StaticAnalysis::SELF)) { new_props |= prev_props; } if((prev_props & StaticAnalysis::ONENODE) && (step_props & StaticAnalysis::DOCORDER)) { // If there was only one input node, and the step is in document order // then we are still in document order new_props |= StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED; } if((prev_props & StaticAnalysis::DOCORDER) && (prev_props & StaticAnalysis::PEER) && (step_props & StaticAnalysis::DOCORDER) && (step_props & StaticAnalysis::SUBTREE)) { // We keep the DOCORDER property, along with a few others that come for free new_props |= StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::SUBTREE; if(step_props & StaticAnalysis::PEER) { new_props |= StaticAnalysis::PEER; } } if((prev_props & StaticAnalysis::GROUPED) && (step_props & StaticAnalysis::SAMEDOC)) { // If the step keeps in the SAMEDOC, then the GROUPED property is maintained new_props |= StaticAnalysis::GROUPED; } if((prev_props & StaticAnalysis::SUBTREE) && (step_props & StaticAnalysis::SUBTREE)) { // If both are SUBTREE, then we still have SUBTREE new_props |= StaticAnalysis::SUBTREE; } if((prev_props & StaticAnalysis::SAMEDOC) && (step_props & StaticAnalysis::SAMEDOC)) { // If both are SAMEDOC, then we still have SAMEDOC new_props |= StaticAnalysis::SAMEDOC; } if((prev_props & StaticAnalysis::ONENODE) && (step_props & StaticAnalysis::ONENODE)) { // If both are ONENODE, then we still have ONENODE new_props |= StaticAnalysis::ONENODE; } return new_props; } ///////////////////////////////////// // NavStepResult ///////////////////////////////////// NavStepResult::NavStepResult(const Result &parent, const ASTNode *step, size_t contextSize) : ResultImpl(step), parent_(parent), step_(step), stepResult_(0), contextPos_(0), contextSize_(contextSize), contextItem_(0) { } Item::Ptr NavStepResult::next(DynamicContext *context) { AutoContextInfoReset autoReset(context); context->setContextSize(contextSize_); context->setContextPosition(contextPos_); context->setContextItem(contextItem_); Item::Ptr result = stepResult_->next(context); while(result.isNull()) { context->testInterrupt(); autoReset.resetContextInfo(); contextItem_ = parent_->next(context); if(contextItem_.isNull()) { parent_ = 0; return 0; } ++contextPos_; context->setContextSize(contextSize_); context->setContextPosition(contextPos_); context->setContextItem(contextItem_); stepResult_ = step_->createResult(context); result = stepResult_->next(context); } return result; } IntermediateStepCheckResult::IntermediateStepCheckResult(const LocationInfo *o, const Result &parent) : ResultImpl(o), parent_(parent) { } Item::Ptr IntermediateStepCheckResult::next(DynamicContext *context) { Item::Ptr result = parent_->next(context); // Check it's a node if(!result.isNull() && !result->isNode()) { XQThrow(TypeErrorException,X("NavStepResult::next"), X("The result of a step expression (StepExpr) is not a sequence of nodes [err:XPTY0019]")); } return result; } LastStepCheckResult::LastStepCheckResult(const LocationInfo *o, const Result &parent) : ResultImpl(o), parent_(parent), _nTypeOfItemsInLastStep(0) { } Item::Ptr LastStepCheckResult::next(DynamicContext *context) { Item::Ptr result = parent_->next(context); if(result != NULLRCP) { // the last step allows either nodes or atomic items switch(_nTypeOfItemsInLastStep) { case 0: _nTypeOfItemsInLastStep=result->isNode()?1:2; break; case 1: if(!result->isNode()) XQThrow(TypeErrorException,X("LastStepCheckResult::next"), X("The result of the last step in a path expression contains both nodes and atomic values [err:XPTY0018]")); break; case 2: if(result->isNode()) XQThrow(TypeErrorException,X("LastStepCheckResult::next"), X("The result of the last step in a path expression contains both nodes and atomic values [err:XPTY0018]")); break; } } return result; } XQilla-2.3.0/src/ast/XQValidate.cpp0000644000151400015140000002130311653565523013721 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; XQValidate::XQValidate(ASTNode *expr, DocumentCache::ValidationMode mode, XPath2MemoryManager *mm) : ASTNodeImpl(VALIDATE, mm), expr_(expr), mode_(mode) { } Result XQValidate::createResult(DynamicContext* context, int flags) const { return EventGenerator::createResult(this, 0, context); } EventGenerator::Ptr XQValidate::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { // Stream the node through the schema validator SchemaValidatorFilter svf(mode_ == DocumentCache::VALIDATION_STRICT, events, context->getDocumentCache()->getGrammarResolver(), context->getMemoryManager(), this); ValidateArgumentCheckFilter argCheck(&svf, mode_, context, this); expr_->generateAndTailCall(&argCheck, context, true, false); return 0; } ASTNode *XQValidate::staticResolution(StaticContext* context) { expr_ = expr_->staticResolution(context); return this; } ASTNode *XQValidate::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(expr_->getStaticAnalysis()); _src.getStaticType() = expr_->getStaticAnalysis().getStaticType(); _src.getStaticType() &= StaticType::DOCUMENT_TYPE | StaticType::ELEMENT_TYPE; if(!_src.getStaticType().containsType(StaticType::DOCUMENT_TYPE | StaticType::ELEMENT_TYPE)) { XQThrow(StaticErrorException, X("XQValidate::createSequence"), X("The expression to be validated must evaluate to exactly one document or element node [err:XQTY0030].")); } return this; } //////////////////////////////////////////////////////////////////////////////////////////////////// ValidateArgumentCheckFilter::ValidateArgumentCheckFilter(EventHandler *next, DocumentCache::ValidationMode mode, DynamicContext *context, const LocationInfo *loc) : EventFilter(next), mode_(mode), info_(loc), context_(context), inDocumentNode_(false), seenDocElem_(false), level_(0), seenOne_(false) { } void ValidateArgumentCheckFilter::startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding) { if(seenOne_ && level_ == 0) { XQThrow3(DynamicErrorException, X("XQValidate::generateEvents"), X("The expression to be validated must evaluate to exactly one document or element node [err:XQTY0030]."), info_); } seenOne_ = true; inDocumentNode_ = true; seenDocElem_ = false; ++level_; next_->startDocumentEvent(documentURI, encoding); } void ValidateArgumentCheckFilter::endDocumentEvent() { if(!seenDocElem_) { XQThrow3(DynamicErrorException,X("XQValidate::generateEvents"), X("A document being validated must have exactly one child element [err:XQDY0061]"), info_); } next_->endDocumentEvent(); inDocumentNode_ = false; --level_; } void ValidateArgumentCheckFilter::startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname) { if(seenOne_ && level_ == 0) { XQThrow3(DynamicErrorException, X("XQValidate::generateEvents"), X("The expression to be validated must evaluate to exactly one document or element node [err:XQTY0030]."), info_); } if(inDocumentNode_ && level_ == 1) { if(seenDocElem_) { XQThrow3(DynamicErrorException,X("XQValidate::generateEvents"), X("A document being validated must have exactly one child element [err:XQDY0061]"), info_); } seenDocElem_ = true; } if((!inDocumentNode_ && level_ == 0) || (inDocumentNode_ && level_ == 1)) { // if validation is strict, there must be a schema for the root node if(mode_ == DocumentCache::VALIDATION_STRICT) { if(!context_->getDocumentCache()->getElementDecl(uri, localname)) { XMLBuffer msg(1023); msg.set(X("Element {")); msg.append(uri); msg.append(X("}")); msg.append(localname); msg.append(X(" is not defined as a global element [err:XQDY0084]")); XQThrow3(DynamicErrorException,X("XQValidate::generateEvents"), msg.getRawBuffer(), info_); } } } seenOne_ = true; ++level_; next_->startElementEvent(prefix, uri, localname); } void ValidateArgumentCheckFilter::endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName) { next_->endElementEvent(prefix, uri, localname, typeURI, typeName); --level_; } void ValidateArgumentCheckFilter::textEvent(const XMLCh *value) { if(level_ == 0) { XQThrow3(DynamicErrorException, X("XQValidate::generateEvents"), X("The expression to be validated must evaluate to exactly one document or element node [err:XQTY0030]."), info_); } if(inDocumentNode_ && level_ == 1) { XQThrow3(DynamicErrorException,X("XQValidate::generateEvents"), X("A document being validated can only have element, comments and processing instructions as children [err:XQDY0061]"), info_); } next_->textEvent(value); } void ValidateArgumentCheckFilter::textEvent(const XMLCh *chars, unsigned int length) { if(level_ == 0) { XQThrow3(DynamicErrorException, X("XQValidate::generateEvents"), X("The expression to be validated must evaluate to exactly one document or element node [err:XQTY0030]."), info_); } if(inDocumentNode_ && level_ == 1) { XQThrow3(DynamicErrorException,X("XQValidate::generateEvents"), X("A document being validated can only have element, comments and processing instructions as children [err:XQDY0061]"), info_); } next_->textEvent(chars, length); } void ValidateArgumentCheckFilter::piEvent(const XMLCh *target, const XMLCh *value) { if(level_ == 0) { XQThrow3(DynamicErrorException, X("XQValidate::generateEvents"), X("The expression to be validated must evaluate to exactly one document or element node [err:XQTY0030]."), info_); } next_->piEvent(target, value); } void ValidateArgumentCheckFilter::commentEvent(const XMLCh *value) { if(level_ == 0) { XQThrow3(DynamicErrorException, X("XQValidate::generateEvents"), X("The expression to be validated must evaluate to exactly one document or element node [err:XQTY0030]."), info_); } next_->commentEvent(value); } void ValidateArgumentCheckFilter::attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { if(level_ == 0) { XQThrow3(DynamicErrorException, X("XQValidate::generateEvents"), X("The expression to be validated must evaluate to exactly one document or element node [err:XQTY0030]."), info_); } next_->attributeEvent(prefix, uri, localname, value, typeURI, typeName); } void ValidateArgumentCheckFilter::namespaceEvent(const XMLCh *prefix, const XMLCh *uri) { if(level_ == 0) { XQThrow3(DynamicErrorException, X("XQValidate::generateEvents"), X("The expression to be validated must evaluate to exactly one document or element node [err:XQTY0030]."), info_); } next_->namespaceEvent(prefix, uri); } void ValidateArgumentCheckFilter::atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { if(level_ == 0) { XQThrow3(DynamicErrorException, X("XQValidate::generateEvents"), X("The expression to be validated must evaluate to exactly one document or element node [err:XQTY0030]."), info_); } next_->atomicItemEvent(type, value, typeURI, typeName); } XQilla-2.3.0/src/ast/ContextTuple.cpp0000644000151400015140000000355211653565523014363 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include TupleNode *ContextTuple::staticResolution(StaticContext *context) { return this; } TupleNode *ContextTuple::staticTypingImpl(StaticContext *context) { min_ = 1; max_ = 1; return this; } TupleNode *ContextTuple::staticTypingTeardown(StaticContext *context, StaticAnalysis &usedSrc) { return this; } class ContextTupleResult : public TupleResult { public: ContextTupleResult(const LocationInfo *loc) : TupleResult(loc), varStore_(0) { } virtual Result getVar(const XMLCh *namespaceURI, const XMLCh *name) const { return varStore_->getVar(namespaceURI, name); } virtual void getInScopeVariables(std::vector > &variables) const { varStore_->getInScopeVariables(variables); } virtual bool next(DynamicContext *context) { if(varStore_ != 0) return false; varStore_ = context->getVariableStore(); return true; } private: const VariableStore *varStore_; }; TupleResult::Ptr ContextTuple::createResult(DynamicContext* context) const { return new ContextTupleResult(this); } XQilla-2.3.0/src/ast/TupleNode.cpp0000644000151400015140000000155211653565523013622 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include void TupleNode::release() { ASTReleaser().release(this); } XQilla-2.3.0/src/ast/XQFunctionConversion.cpp0000644000151400015140000000357711653565523016040 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif XQFunctionConversion::XQFunctionConversion(ASTNode* expr, SequenceType* seqType, XPath2MemoryManager* memMgr) : ASTNodeImpl(FUNCTION_CONVERSION, memMgr), expr_(expr), seqType_(seqType) { } ASTNode* XQFunctionConversion::staticResolution(StaticContext *context) { seqType_->staticResolution(context); return seqType_->convertFunctionArg(expr_, context, /*numericfunction*/false, seqType_) ->staticResolution(context); } ASTNode *XQFunctionConversion::staticTypingImpl(StaticContext *context) { // Never happens return this; } Result XQFunctionConversion::createResult(DynamicContext* context, int flags) const { // Never happens return 0; } ASTNode *XQFunctionConversion::getExpression() const { return expr_; } SequenceType *XQFunctionConversion::getSequenceType() const { return seqType_; } void XQFunctionConversion::setExpression(ASTNode *item) { expr_ = item; } XQilla-2.3.0/src/ast/XQNamespaceBinding.cpp0000644000151400015140000001062411653565523015363 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif using namespace std; XQNamespaceBinding::XQNamespaceBinding(DOMXPathNSResolver *namespaces, ASTNode *expr, XPath2MemoryManager *mm) : ASTNodeImpl(NAMESPACE_BINDING, mm), expr_(expr), namespaces_(namespaces) { } ASTNode *XQNamespaceBinding::staticResolution(StaticContext *context) { AutoNsScopeReset jan(context, namespaces_); const XMLCh *defaultElementNS = context->getMemoryManager()-> getPooledString(namespaces_->lookupNamespaceURI(XMLUni::fgZeroLenString)); context->setDefaultElementAndTypeNS(defaultElementNS); expr_ = expr_->staticResolution(context); return this; } ASTNode *XQNamespaceBinding::staticTypingImpl(StaticContext *context) { _src.clear(); _src.copy(expr_->getStaticAnalysis()); return this; } class NamespaceBindingResult : public ResultImpl { public: NamespaceBindingResult(const XQNamespaceBinding *ast, DynamicContext *context) : ResultImpl(ast), ast_(ast), result_(0) { AutoNsScopeReset jan(context, ast_->getNamespaces()); const XMLCh *defaultElementNS = context->getMemoryManager()-> getPooledString(ast_->getNamespaces()->lookupNamespaceURI(XMLUni::fgZeroLenString)); context->setDefaultElementAndTypeNS(defaultElementNS); result_ = ast->getExpression()->createResult(context); } NamespaceBindingResult(const XQNamespaceBinding *ast, const Result &contextItems, DynamicContext *context) : ResultImpl(ast), ast_(ast), result_(0) { AutoNsScopeReset jan(context, ast_->getNamespaces()); const XMLCh *defaultElementNS = context->getMemoryManager()-> getPooledString(ast_->getNamespaces()->lookupNamespaceURI(XMLUni::fgZeroLenString)); context->setDefaultElementAndTypeNS(defaultElementNS); result_ = ast->getExpression()->iterateResult(contextItems, context); } virtual Item::Ptr next(DynamicContext *context) { AutoNsScopeReset jan(context, ast_->getNamespaces()); const XMLCh *defaultElementNS = context->getMemoryManager()-> getPooledString(ast_->getNamespaces()->lookupNamespaceURI(XMLUni::fgZeroLenString)); context->setDefaultElementAndTypeNS(defaultElementNS); return result_->next(context); } private: const XQNamespaceBinding *ast_; Result result_; }; Result XQNamespaceBinding::createResult(DynamicContext *context, int flags) const { return new NamespaceBindingResult(this, context); } Result XQNamespaceBinding::iterateResult(const Result &contextItems, DynamicContext *context) const { return new NamespaceBindingResult(this, contextItems, context); } EventGenerator::Ptr XQNamespaceBinding::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { AutoNsScopeReset jan(context, namespaces_); const XMLCh *defaultElementNS = context->getMemoryManager()-> getPooledString(namespaces_->lookupNamespaceURI(XMLUni::fgZeroLenString)); context->setDefaultElementAndTypeNS(defaultElementNS); return expr_->generateEvents(events, context, preserveNS, preserveType); } PendingUpdateList XQNamespaceBinding::createUpdateList(DynamicContext *context) const { AutoNsScopeReset jan(context, namespaces_); const XMLCh *defaultElementNS = context->getMemoryManager()-> getPooledString(namespaces_->lookupNamespaceURI(XMLUni::fgZeroLenString)); context->setDefaultElementAndTypeNS(defaultElementNS); return expr_->createUpdateList(context); } XQilla-2.3.0/src/ast/XQAnalyzeString.cpp0000644000151400015140000002116611653565523014771 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE using namespace std; XQAnalyzeString::XQAnalyzeString(XPath2MemoryManager* memMgr) : ASTNodeImpl(ANALYZE_STRING, memMgr), expr_(0), regex_(0), flags_(0), match_(0), nonMatch_(0) { } XQAnalyzeString::XQAnalyzeString(ASTNode *expr, ASTNode *regex, ASTNode *flags, ASTNode *match, ASTNode *nonMatch, XPath2MemoryManager* memMgr) : ASTNodeImpl(ANALYZE_STRING, memMgr), expr_(expr), regex_(regex), flags_(flags), match_(match), nonMatch_(nonMatch) { } ASTNode* XQAnalyzeString::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); SequenceType *seqType = new (mm) SequenceType(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, SequenceType::EXACTLY_ONE, mm); seqType->setLocationInfo(this); expr_ = new (mm) XQFunctionConversion(expr_, seqType, mm); expr_ = expr_->staticResolution(context); regex_ = regex_->staticResolution(context); if(flags_) flags_ = flags_->staticResolution(context); match_ = match_->staticResolution(context); nonMatch_ = nonMatch_->staticResolution(context); return this; } ASTNode *XQAnalyzeString::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(expr_->getStaticAnalysis()); // TBD Precompile the regex - jpcs _src.add(regex_->getStaticAnalysis()); if(flags_) { _src.add(flags_->getStaticAnalysis()); } _src.add(match_->getStaticAnalysis()); _src.getStaticType() = match_->getStaticAnalysis().getStaticType(); _src.add(nonMatch_->getStaticAnalysis()); _src.getStaticType().typeConcat(nonMatch_->getStaticAnalysis().getStaticType()); _src.getStaticType().multiply(0, StaticType::UNLIMITED); return this; } AnalyzeStringResult::AnalyzeStringResult(const LocationInfo *info) : ResultImpl(info), input_(0), matches_(10, true), contextPos_(0), currentMatch_(0), mm_(0), result_(0) { } Item::Ptr AnalyzeStringResult::next(DynamicContext *context) { #ifdef HAVE_ALLMATCHES XPath2MemoryManager *mm = context->getMemoryManager(); if(input_ == 0) { input_ = getInput(context); const XMLCh *pattern = getPattern(context); const XMLCh *options = getFlags(context); //Check that the options are valid - throw an exception if not (can have s,m,i and x) //Note: Are allowed to duplicate the letters. const XMLCh* cursor = options; for(; *cursor != 0; ++cursor){ switch(*cursor) { case chLatin_s: case chLatin_m: case chLatin_i: case chLatin_x: break; default: XQThrow(ASTException, X("AnalyzeStringResult::next"),X("Invalid regular expression flags [err:XTDE1145].")); } } mm_ = mm; // Always turn off head character optimisation, since it is broken XMLBuffer optionsBuf; optionsBuf.set(options); optionsBuf.append(chLatin_H); size_t length = XMLString::stringLen(input_); try { // Parse and execute the regular expression RegularExpression regEx(pattern, optionsBuf.getRawBuffer(), mm); if(regEx.matches(XMLUni::fgZeroLenString)) XQThrow(ASTException, X("AnalyzeStringResult::next"), X("The pattern matches the zero-length string [err:XTDE1150]")); regEx.allMatches(input_, 0, length, &matches_); } catch (ParseException &e){ XMLBuffer buf; buf.set(X("Invalid regular expression: ")); buf.append(e.getMessage()); buf.append(X(" [err:XTDE1140]")); XQThrow(ASTException, X("AnalyzeStringResult::next"), buf.getRawBuffer()); } catch (RuntimeException &e){ if(e.getCode()==XMLExcepts::Regex_RepPatMatchesZeroString) XQThrow(ASTException, X("AnalyzeStringResult::next"), X("The pattern matches the zero-length string [err:XTDE1150]")); else XQThrow(ASTException, X("AnalyzeStringResult::next"), e.getMessage()); } int tokStart = 0; unsigned int i = 0; for(; i < matches_.size(); ++i) { Match *match = matches_.elementAt(i); int matchStart = match->getStartPos(0); int matchEnd = match->getEndPos(0); if(tokStart < matchStart) { const XMLCh *str = XPath2Utils::subString(input_, tokStart, matchStart - tokStart, mm); strings_.push_back(pair(str, static_cast(0))); } const XMLCh *str = XPath2Utils::subString(input_, matchStart, matchEnd - matchStart, mm); strings_.push_back(pair(str, match)); tokStart = matchEnd; } if(tokStart < (int) length) { const XMLCh *str = XPath2Utils::subString(input_, tokStart, (unsigned int)(length - tokStart), mm); strings_.push_back(pair(str, static_cast(0))); } } AutoRegexGroupStoreReset regexReset(context, this); Item::Ptr item; while((item = result_->next(context)).isNull()) { context->testInterrupt(); regexReset.reset(); if(contextPos_ < strings_.size()) { const XMLCh *matchString = strings_[contextPos_].first; currentMatch_ = strings_[contextPos_].second; ++contextPos_; context->setRegexGroupStore(this); result_ = getMatchResult(matchString, contextPos_, strings_.size(), currentMatch_ != 0, context); } else { return 0; } } return item; #else XQThrow(ASTException, X("AnalyzeStringResult::next"),X("xsl:analyze-string is only supported with Xerces-C 3.0 or newer.")); #endif } const XMLCh *AnalyzeStringResult::getGroup(int index) const { if(currentMatch_ == 0 || index < 0 || index >= currentMatch_->getNoGroups()) return 0; int matchStart = currentMatch_->getStartPos(index); return XPath2Utils::subString(input_, matchStart, currentMatch_->getEndPos(index) - matchStart, mm_); } class XslAnalyzeStringResult : public AnalyzeStringResult { public: XslAnalyzeStringResult(const XQAnalyzeString *ast) : AnalyzeStringResult(ast), ast_(ast) { } const XMLCh *getInput(DynamicContext *context) { return ast_->getExpression()->createResult(context)->next(context)->asString(context); } const XMLCh *getPattern(DynamicContext *context) { return ast_->getRegex()->createResult(context)->next(context)->asString(context); } const XMLCh *getFlags(DynamicContext *context) { if(ast_->getFlags()) return ast_->getFlags()->createResult(context)->next(context)->asString(context); return XMLUni::fgZeroLenString; } Result getMatchResult(const XMLCh *matchString, size_t matchPos, size_t numberOfMatches, bool match, DynamicContext *context) { AutoContextInfoReset autoReset(context); context->setContextSize(numberOfMatches); context->setContextPosition(matchPos); context->setContextItem(context->getItemFactory()->createString(matchString, context)); if(match) return ast_->getMatch()->createResult(context); return ast_->getNonMatch()->createResult(context); } private: const XQAnalyzeString *ast_; }; Result XQAnalyzeString::createResult(DynamicContext* context, int flags) const { return ClosureResult::create(getStaticAnalysis(), context, new XslAnalyzeStringResult(this)); } XQilla-2.3.0/src/ast/XQGlobalVariable.cpp0000644000151400015140000002227511653565523015047 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif XQGlobalVariable::XQGlobalVariable(const XMLCh* varQName, SequenceType* seqType, ASTNode* value, XPath2MemoryManager *mm, bool isParam) : isParam_(isParam), required_(!isParam), xpath1Compat_(false), m_szQName(mm->getPooledString(varQName)), m_szURI(0), m_szLocalName(0), m_Type(seqType), m_Value(value), _src(mm), staticTyped_(BEFORE) { } static const XMLCh err_XPTY0004[] = { 'e', 'r', 'r', ':', 'X', 'P', 'T', 'Y', '0', '0', '0', '4', 0 }; void XQGlobalVariable::execute(DynamicContext* context) const { try { if(m_Value == NULL || isParam_) { // It's an external declaration, so check the user has set the value in the variable store Result value = context->getGlobalVariableStore()->getVar(m_szURI, m_szLocalName); if(!value.isNull()) { if(m_Type != NULL) { if(isParam_) { // Convert the external value using the function conversion rules Result matchesRes = m_Type->convertFunctionArg(value, context, xpath1Compat_, m_Type, err_XPTY0004); context->setExternalVariable(m_szURI, m_szLocalName, matchesRes->toSequence(context)); } else { // Check the external value's type Result matchesRes = m_Type->matches(value, m_Type, err_XPTY0004); while(matchesRes->next(context).notNull()) {} } } return; } if(m_Value == NULL) { XMLBuffer errMsg; errMsg.set(X("A value for the external variable ")); if(m_szQName != 0) { errMsg.append(m_szQName); } else { errMsg.append('{'); errMsg.append(m_szURI); errMsg.append('}'); errMsg.append(m_szLocalName); } errMsg.append(X(" has not been provided [err:XPTY0002]")); XQThrow(::IllegalArgumentException,X("XQGlobalVariable::createSequence"),errMsg.getRawBuffer()); } } // TBD Could use our own VariableStore implementation - jpcs context->setExternalVariable(m_szURI, m_szLocalName, m_Value->createResult(context)); } catch(const XPath2TypeMatchException &ex) { XMLBuffer errMsg; errMsg.set(X("The value for the global variable ")); if(m_szQName != 0) { errMsg.append(m_szQName); } else { errMsg.append('{'); errMsg.append(m_szURI); errMsg.append('}'); errMsg.append(m_szLocalName); } errMsg.append(X(" does not match the declared type: ")); errMsg.append(ex.getError()); XQThrow(XPath2TypeMatchException,X("XQGlobalVariable::createSequence"),errMsg.getRawBuffer()); } } void XQGlobalVariable::resolveName(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); // variables with no prefix are in no namespace if(m_szLocalName == 0) { const XMLCh* prefix=XPath2NSUtils::getPrefix(m_szQName, mm); if(prefix && *prefix) m_szURI = context->getUriBoundToPrefix(prefix, this); m_szLocalName = XPath2NSUtils::getLocalName(m_szQName); } } void XQGlobalVariable::staticResolution(StaticContext* context) { XPath2MemoryManager *mm = context->getMemoryManager(); xpath1Compat_ = context->getXPath1CompatibilityMode(); resolveName(context); if(m_Type) m_Type->staticResolution(context); if(m_Value != NULL) { if(m_Type != NULL) { m_Value = new (mm) XQTreatAs(m_Value, m_Type, mm); m_Value->setLocationInfo(this); } m_Value = m_Value->staticResolution(context); } // Set up a default StaticType if(m_Type != 0) { bool isPrimitive; m_Type->getStaticType(_src.getStaticType(), context, isPrimitive, m_Type); } else { _src.getStaticType() = StaticType(StaticType::ITEM_TYPE, 0, StaticType::UNLIMITED); } _src.setProperties(0); } void XQGlobalVariable::staticTypingOnce(StaticContext* context, StaticTyper *styper) { switch(staticTyped_) { case AFTER: return; case DURING: { XMLBuffer buf; buf.append(X("The initializing expression for variable {")); buf.append(m_szURI); buf.append(X("}")); buf.append(m_szLocalName); buf.append(X(" depends on itself [err:XQST0054]")); XQThrow(StaticErrorException, X("XQGlobalVariable::staticTypingOnce"), buf.getRawBuffer()); } case BEFORE: break; } staticTyped_ = DURING; StaticTyper::PrologItem breadcrumb(this, styper->getTrail()); AutoReset autorReset2(styper->getTrail()); styper->getTrail() = &breadcrumb;; GlobalVariables globalsUsed(XQillaAllocator(context->getMemoryManager())); { AutoReset autoReset(styper->getGlobalsUsed()); styper->getGlobalsUsed() = &globalsUsed; staticTyping(context, styper); } if(!globalsUsed.empty()) { // Static type the global variables from this module which we depend on GlobalVariables::iterator it = globalsUsed.begin(); for(; it != globalsUsed.end(); ++it) { // XQuery 1.0 doesn't allow forward references XQQuery *module = context->getModule(); if(!module->getVersion3()) { GlobalVariables::const_iterator it2 = module->getVariables().begin(); for(; it2 != module->getVariables().end(); ++it2) { if(*it2 == *it) break; if(*it2 == this) { XMLBuffer errMsg; errMsg.set(X("Cannot refer to global variable with name {")); errMsg.append((*it)->getVariableURI()); errMsg.append(X("}")); errMsg.append((*it)->getVariableLocalName()); errMsg.append(X(" because it is declared later [err:XPST0008]")); XQThrow(StaticErrorException,X("XQGlobalVariable::staticTypingOnce"), errMsg.getRawBuffer()); } } } (*it)->staticTypingOnce(context, styper); } // Re-static type this global variable staticTyping(context, styper); } staticTyped_ = AFTER; styper->getGlobalsOrder()->push_back(this); } void XQGlobalVariable::resetStaticTypingOnce() { staticTyped_ = BEFORE; } void XQGlobalVariable::staticTyping(StaticContext* context, StaticTyper *styper) { VariableTypeStore* varStore = context->getVariableTypeStore(); if(m_Value != NULL) { XQUserFunction::staticTypeFunctionCalls(m_Value, context, styper); // Add UNDEFINEDVAR to properties, since variables aren't in scope for themselves _src.setProperties(_src.getProperties() | StaticAnalysis::UNDEFINEDVAR); m_Value = m_Value->staticTyping(context, styper); _src.copy(m_Value->getStaticAnalysis()); if(m_Value->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("XQGlobalVariable::staticTyping"), X("It is a static error for the initializing expression of a global variable " "to be an updating expression [err:XUST0001]")); } } if(m_Value == 0 || !required_) { if(m_Type != 0) { bool isPrimitive; m_Type->getStaticType(_src.getStaticType(), context, isPrimitive, m_Type); } else { _src.getStaticType() = StaticType(StaticType::ITEM_TYPE, 0, StaticType::UNLIMITED); } _src.setProperties(0); } varStore->declareGlobalVar(m_szURI, m_szLocalName, _src, this); } const XMLCh* XQGlobalVariable::getVariableName() const { return m_szQName; } bool XQGlobalVariable::isExternal() const { return (m_Value==NULL); } void XQGlobalVariable::setVariableExpr(ASTNode* value) { m_Value=value; } const SequenceType *XQGlobalVariable::getSequenceType() const { return m_Type; } const ASTNode *XQGlobalVariable::getVariableExpr() const { return m_Value; } const XMLCh *XQGlobalVariable::getVariableURI() const { return m_szURI; } const XMLCh *XQGlobalVariable::getVariableLocalName() const { return m_szLocalName; } XQilla-2.3.0/src/framework/0000755000151400015140000000000011653572442012500 500000000000000XQilla-2.3.0/src/framework/XPath2MemoryManagerImpl.cpp0000644000151400015140000000375111653565523017550 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include XPath2MemoryManagerImpl::XPath2MemoryManagerImpl() { initialise(); } XPath2MemoryManagerImpl::~XPath2MemoryManagerImpl() { releaseAll(); } #ifdef WIN_USE_HEAP #if _XERCES_VERSION >= 30000 void *XPath2MemoryManagerImpl::allocate(XMLSize_t amount) { ++objectsAllocated_; totalMemoryAllocated_ += amount; return HeapAlloc(fHeap,HEAP_NO_SERIALIZE|HEAP_ZERO_MEMORY,amount); } #else void *XPath2MemoryManagerImpl::allocate(size_t amount) { ++objectsAllocated_; totalMemoryAllocated_ += amount; return HeapAlloc(fHeap,HEAP_NO_SERIALIZE|HEAP_ZERO_MEMORY,amount); } #endif void XPath2MemoryManagerImpl::deallocate(void* p) { --objectsAllocated_; totalMemoryAllocated_ -= HeapSize(fHeap,HEAP_NO_SERIALIZE,p); HeapFree(fHeap,HEAP_NO_SERIALIZE,p); } void XPath2MemoryManagerImpl::initialise() { fHeap=HeapCreate(HEAP_NO_SERIALIZE,128*1024,0); BaseMemoryManager::initialise(); } void XPath2MemoryManagerImpl::releaseAll() { BaseMemoryManager::releaseAll(); HeapDestroy(fHeap); } #else void *XPath2MemoryManagerImpl::internal_allocate(size_t size) { return new char[size]; } void XPath2MemoryManagerImpl::internal_deallocate(void *p) { delete [] ((char *)p); } #endif XQilla-2.3.0/src/framework/BaseMemoryManager.cpp0000644000151400015140000002274211653565523016473 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #if _XERCES_VERSION < 30000 #include #endif #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif #include #include #include #include #include #include "../context/impl/VarTypeStoreImpl.hpp" #include #include static const unsigned int CHUNK_SIZE = 32 * 1024; #if (defined(__HP_aCC) && defined(__ia64)) || defined(__sparcv9) #define ALLOC_ALIGN 16 #elif defined(__sparcv8) #define ALLOC_ALIGN 8 #else #define ALLOC_ALIGN 4 #endif #define PAD ((sizeof(MemList) + ALLOC_ALIGN - 1)&~(ALLOC_ALIGN-1)) BaseMemoryManager::~BaseMemoryManager() { } void BaseMemoryManager::reset() { releaseAll(); initialise(); } void BaseMemoryManager::initialise() { fCurrentBlock = 0; objectsAllocated_ = 0; totalMemoryAllocated_ = 0; fStringPool = new (this) StringPool(this); fIntegerPool = 0; } void BaseMemoryManager::releaseAll() { if (fIntegerPool) fIntegerPool->cleanup(); // Run backwards through the linked list, deleting the blocks of memory while(fCurrentBlock) { MemList *prev = fCurrentBlock->prev; internal_deallocate((char *)fCurrentBlock); fCurrentBlock = prev; } } MemoryManager *BaseMemoryManager::getExceptionMemoryManager() { return XMLPlatformUtils::fgMemoryManager; } #if _XERCES_VERSION >= 30000 void *BaseMemoryManager::allocate(XMLSize_t amount) #else void *BaseMemoryManager::allocate(size_t amount) #endif { #if ALLOCATE_IN_CHUNKS #error "alignment constraints are not implemented for this case; fix that or remove this error if you think it is unnecessary for your platform" size_t memSize = amount + sizeof(MemAlloc); if(fCurrentBlock == 0 || fCurrentBlock->remaining < memSize) { size_t chunkSize = sizeof(MemList); if(memSize > CHUNK_SIZE) { chunkSize += memSize; } else { chunkSize += CHUNK_SIZE; } char *newBlock = 0; try { newBlock = (char*)internal_allocate(chunkSize); } catch (...) {} if(!newBlock) { throw XQillaException(XQillaException::RUNTIME_ERR, X("BaseMemoryManager::allocate(): Out of memory")); } ++objectsAllocated_; totalMemoryAllocated_ += chunkSize; MemList *newMemList = (MemList*)newBlock; newMemList->prev = fCurrentBlock; newMemList->next = 0; newMemList->size = chunkSize; newMemList->remaining = chunkSize - sizeof(MemList); newMemList->allocCount = 0; if(fCurrentBlock) { fCurrentBlock->next = newMemList; } fCurrentBlock = newMemList; } fCurrentBlock->remaining -= memSize; ++fCurrentBlock->allocCount; // Carve memory from the end of the current chunk char *mem = ((char*)fCurrentBlock) + sizeof(MemList) + fCurrentBlock->remaining; MemAlloc *alloc = (MemAlloc*)mem; alloc->list = fCurrentBlock; return (void*)(mem + sizeof(MemAlloc)); #else char *newBlock = 0; try { newBlock = (char*)internal_allocate(amount + PAD); } catch (...) {} if(!newBlock) { throw XQillaException(XQillaException::RUNTIME_ERR, X("BaseMemoryManager::allocate(): Out of memory")); } ++objectsAllocated_; totalMemoryAllocated_ += amount; MemList *newMemList = (MemList *)newBlock; newMemList->prev = fCurrentBlock; newMemList->next = 0; newMemList->size = amount; #if DEBUG_MEMORY newMemList->magic = DEBUG_MEMORY_ALLOCD; #endif if(fCurrentBlock) { #if DEBUG_MEMORY if (fCurrentBlock->magic != DEBUG_MEMORY_ALLOCD) throw XQillaException(XQillaException::RUNTIME_ERR, X("BaseMemoryManager::allocate(): Corrupt block list")); #endif fCurrentBlock->next = newMemList; } fCurrentBlock = newMemList; return (void *)(newBlock + PAD); #endif } void BaseMemoryManager::deallocate(void* p) { if(p) { #if ALLOCATE_IN_CHUNKS MemAlloc *alloc = (MemAlloc*)(((char*)p) - sizeof(MemAlloc)); MemList *oldMemList = alloc->list; --oldMemList->allocCount; if(oldMemList->allocCount == 0) { // Decouple the old block from the list if(oldMemList->prev) { oldMemList->prev->next = oldMemList->next; } if(oldMemList->next) { oldMemList->next->prev = oldMemList->prev; } else { // If the old block doesn't have a next, it must currently be fCurrentBlock fCurrentBlock = oldMemList->prev; } --objectsAllocated_; totalMemoryAllocated_ -= oldMemList->size; internal_deallocate((void*)oldMemList); } #else char *oldBlock = ((char *)p) - PAD; MemList *oldMemList = (MemList *)oldBlock; #if DEBUG_MEMORY if (oldMemList->magic != DEBUG_MEMORY_ALLOCD) { if (oldMemList->magic == DEBUG_MEMORY_FREED) throw XQillaException(XQillaException::RUNTIME_ERR, X("BaseMemoryManager::deallocate(): Trying to free free'd memory")); else throw XQillaException(XQillaException::RUNTIME_ERR, X("BaseMemoryManager::deallocate(): Trying to free unalloc'd memory")); } else oldMemList->magic = DEBUG_MEMORY_FREED; #endif // Decouple the old block from the list if(oldMemList->prev) { #if DEBUG_MEMORY if (oldMemList->prev->magic != DEBUG_MEMORY_ALLOCD) { if (oldMemList->prev->magic == DEBUG_MEMORY_FREED) throw XQillaException(XQillaException::RUNTIME_ERR, X("BaseMemoryManager::deallocate(): Free'd memory found on list")); else throw XQillaException(XQillaException::RUNTIME_ERR, X("BaseMemoryManager::deallocate(): stray memory found on list")); } #endif oldMemList->prev->next = oldMemList->next; } if(oldMemList->next) { #if DEBUG_MEMORY if (oldMemList->next->magic != DEBUG_MEMORY_ALLOCD) { if (oldMemList->next->magic == DEBUG_MEMORY_FREED) throw XQillaException(XQillaException::RUNTIME_ERR, X("BaseMemoryManager::deallocate(): Free'd memory found on list (next)")); else throw XQillaException(XQillaException::RUNTIME_ERR, X("BaseMemoryManager::deallocate(): stray memory found on list (next)")); } #endif oldMemList->next->prev = oldMemList->prev; } else { // If the old block doesn't have a next, it must currently be fCurrentBlock fCurrentBlock = oldMemList->prev; } #if DEBUG_MEMORY if (fCurrentBlock && fCurrentBlock->magic != DEBUG_MEMORY_ALLOCD) { if (fCurrentBlock->magic == DEBUG_MEMORY_FREED) throw XQillaException(XQillaException::RUNTIME_ERR, X("BaseMemoryManager::deallocate(): Free'd memory found on list (fCurrent)")); else throw XQillaException(XQillaException::RUNTIME_ERR, X("BaseMemoryManager::deallocate(): stray memory found on list (fCurrent)")); } #endif --objectsAllocated_; totalMemoryAllocated_ -= oldMemList->size; internal_deallocate(oldBlock); #endif } } const XMLCh *BaseMemoryManager::getPooledString(const XMLCh *src) { return fStringPool->getPooledString(src); } const XMLCh *BaseMemoryManager::getPooledString(const XMLCh *src, unsigned int length) { return fStringPool->getPooledString(src, length); } const XMLCh *BaseMemoryManager::getPooledString(const char *src) { return fStringPool->getPooledString(src); } void BaseMemoryManager::dumpStatistics() const { std::cout << "Memory statistics:" << std::endl; fStringPool->dumpStatistics(); std::cout << "\tAllocated objects: " << (unsigned int)objectsAllocated_ << std::endl; std::cout << "\tTotal Memory Allocated: " << (unsigned int)totalMemoryAllocated_ << std::endl; } /** create a collation */ Collation* BaseMemoryManager::createCollation(CollationHelper* helper) { return new (this) CollationImpl(this,helper); } /** create a resolver */ XQillaNSResolver* BaseMemoryManager::createNSResolver(DOMNode *resolverNode) { return new (this) XQillaNSResolverImpl(this, resolverNode); } /** create a store for variables */ VariableTypeStore* BaseMemoryManager::createVariableTypeStore() { return new (this) VarTypeStoreImpl(this); } /** create a ATDecimalOrDerived for the given integer */ ATDecimalOrDerived* BaseMemoryManager::createInteger(int value) { if (!fIntegerPool) #if _XERCES_VERSION >= 30000 fIntegerPool = new (this) RefHashTableOf(53, true, this); #else fIntegerPool = new (this) RefHashTableOf(53,true, new (this) HashPtr(),this); #endif ATDecimalOrDerived* itemValue=fIntegerPool->get((const void*)((size_t)value)); if(itemValue!=NULL) return itemValue; itemValue=new ATDecimalOrDerivedImpl(value); itemValue->incrementRefCount(); fIntegerPool->put((void*)((size_t)value), itemValue); return itemValue; } XQilla-2.3.0/src/framework/ProxyMemoryManager.cpp0000644000151400015140000000226011653565523016733 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include ProxyMemoryManager::ProxyMemoryManager(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *parent) : parent_(parent) { initialise(); } ProxyMemoryManager::~ProxyMemoryManager() { releaseAll(); } void *ProxyMemoryManager::internal_allocate(size_t size) { return parent_->allocate(size); } void ProxyMemoryManager::internal_deallocate(void *p) { parent_->deallocate(p); } XQilla-2.3.0/src/framework/StringPool.cpp0000644000151400015140000001646311653565523015240 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif static const unsigned int initialModulus = 233; static const unsigned int lengthThreshold = 100; StringPool::StringPool(MemoryManager *mm) : _mm(mm), _bucketList(0), _modulus(initialModulus), _count(0), _hits(0), _misses(0), _toobig(0) { _bucketList = (Bucket**)_mm->allocate(_modulus * sizeof(Bucket*)); memset(_bucketList, 0, _modulus * sizeof(Bucket*)); } StringPool::~StringPool() { Bucket *bucket, *next; for(unsigned int i = 0; i < _modulus; ++i) { bucket = _bucketList[i]; while(bucket != 0) { next = bucket->next; _mm->deallocate((void*)bucket->value); _mm->deallocate(bucket); bucket = next; } } _mm->deallocate(_bucketList); } const XMLCh *StringPool::getPooledString(const XMLCh *src) { if(src == 0) return 0; if(*src == 0) return XMLUni::fgZeroLenString; // strings longer than lengthThreshold bytes are not pooled, as it is not probable they can be recycled const XMLCh* pszTmp = src + 1; while(*pszTmp) ++pszTmp; unsigned int length = (unsigned int)(pszTmp - src); if(length > lengthThreshold) { ++_toobig; return replicate(src, length); } unsigned int hashVal = hash(src, length); unsigned int modHashVal = hashVal % _modulus; const Bucket *bucket = _bucketList[modHashVal]; while(bucket) { if(bucket->length == length && XPath2Utils::equals(bucket->value, src)) { break; } bucket = bucket->next; } if(bucket) { ++_hits; return bucket->value; } else { ++_misses; if(_count >= (_modulus * 3 / 4)) { resize(); modHashVal = hashVal % _modulus; } const XMLCh *result = replicate(src, length); _bucketList[modHashVal] = new (_mm->allocate(sizeof(Bucket))) Bucket(result, length, hashVal, _bucketList[modHashVal]); ++_count; return result; } } static inline bool equalsN(const XMLCh *str1, const XMLCh *str2, unsigned int len2) { while(true) { if(len2 == 0) return *str1 == 0; if(*str1 != *str2) return false; ++str1; ++str2; --len2; } } const XMLCh *StringPool::getPooledString(const XMLCh *src, unsigned int length) { if(src == 0) return 0; if(length == 0) return XMLUni::fgZeroLenString; if(length > lengthThreshold) { ++_toobig; return replicate(src, length); } unsigned int hashVal = hash(src, length); unsigned int modHashVal = hashVal % _modulus; const Bucket *bucket = _bucketList[modHashVal]; while(bucket) { if(bucket->length == length && equalsN(bucket->value, src, length)) { break; } bucket = bucket->next; } if(bucket) { ++_hits; return bucket->value; } else { ++_misses; if(_count >= (_modulus * 3 / 4)) { resize(); modHashVal = hashVal % _modulus; } const XMLCh *result = replicate(src, length); _bucketList[modHashVal] = new (_mm->allocate(sizeof(Bucket))) Bucket(result, length, hashVal, _bucketList[modHashVal]); ++_count; return result; } } const XMLCh *StringPool::getPooledString(const char *src) { if(src == 0) return 0; if(*src == 0) return XMLUni::fgZeroLenString; XMLCh *transcoded; { XMLUTF8Transcoder t(0, 512); size_t l = XMLString::stringLen(src); const size_t needed = l * 2 + 2; // 2 chars per byte is the worst case, + '\0' transcoded = (XMLCh*)_mm->allocate(needed); AutoDeleteArray charSizes(new unsigned char[needed]); #if _XERCES_VERSION >= 30000 XMLSize_t bytesEaten = 0; t.transcodeFrom((const XMLByte*)src, l+1, transcoded, needed, bytesEaten, charSizes); #else unsigned int bytesEaten = 0; t.transcodeFrom((const XMLByte*)src, (unsigned int)l+1, transcoded, (unsigned int)needed, bytesEaten, charSizes); #endif } // strings longer than lengthThreshold bytes are not pooled, as it is not probable they can be recycled const XMLCh* pszTmp = transcoded + 1; while(*pszTmp) ++pszTmp; unsigned int length = (unsigned int)(pszTmp - transcoded); if(length > lengthThreshold) { ++_toobig; return transcoded; } unsigned int hashVal = hash(transcoded, length); unsigned int modHashVal = hashVal % _modulus; const Bucket *bucket = _bucketList[modHashVal]; while(bucket) { if(bucket->length == length && XPath2Utils::equals(bucket->value, transcoded)) { break; } bucket = bucket->next; } if(bucket) { ++_hits; _mm->deallocate(transcoded); return bucket->value; } else { ++_misses; if(_count >= (_modulus * 3 / 4)) { resize(); modHashVal = hashVal % _modulus; } _bucketList[modHashVal] = new (_mm->allocate(sizeof(Bucket))) Bucket(transcoded, length, hashVal, _bucketList[modHashVal]); ++_count; return transcoded; } } void StringPool::resize() { unsigned int new_modulus = (_modulus << 1) + 1; Bucket **new_bucketList = (Bucket**)_mm->allocate(new_modulus * sizeof(Bucket*)); memset(new_bucketList, 0, new_modulus * sizeof(Bucket*)); unsigned int modHashVal; Bucket *bucket, *next; for(unsigned int i = 0; i < _modulus; ++i) { bucket = _bucketList[i]; while(bucket != 0) { next = bucket->next; modHashVal = bucket->hashValue % new_modulus; bucket->next = new_bucketList[modHashVal]; new_bucketList[modHashVal] = bucket; bucket = next; } } _mm->deallocate(_bucketList); _bucketList = new_bucketList; _modulus = new_modulus; } void StringPool::dumpStatistics() const { std::cout << "\tStringPool count: " << _count << std::endl; std::cout << "\tStringPool hits: " << _hits << std::endl; std::cout << "\tStringPool misses: " << _misses << std::endl; std::cout << "\tStringPool too big: " << _toobig << std::endl; std::cout << "\tStringPool modulo: " << _modulus << std::endl; unsigned int zero=0, maxn=0; for(unsigned int i=0;i<_modulus;i++) if(_bucketList[i]==NULL) zero++; else { unsigned int n=0; const Bucket *bucket = _bucketList[i]; while(bucket) { n++; bucket = bucket->next; } if (n > maxn) maxn = n; } std::cout << "\tStringPool empty buckets: " << zero << std::endl; std::cout << "\tStringPool max buckets: " << maxn << std::endl; } XQilla-2.3.0/src/framework/ReferenceCounted.cpp0000644000151400015140000000273311653565523016353 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include // ReferenceCounted::ReferenceCounted(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm) // : _ref_count(0), // _ref_mm(mm) // { // // Do nothing // } // ReferenceCounted::~ReferenceCounted() // { // // Do nothing // } // void ReferenceCounted::incrementRefCount() const // { // ++const_cast(_ref_count); // } // void ReferenceCounted::decrementRefCount() const // { // if(--const_cast(_ref_count) == 0) { // if(_ref_mm == 0) { // delete this; // } // else { // this->~ReferenceCounted(); // operator delete((void*)this, _ref_mm); // } // } // } XQilla-2.3.0/src/simple-api/0000755000151400015140000000000011653572442012543 500000000000000XQilla-2.3.0/src/simple-api/XQQuery.cpp0000644000151400015140000005577211653565523014567 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif //////////////////////////////////////////////////////////////////////////////////////////////////// ModuleCache::ModuleCache(MemoryManager *mm) : byURI_(11, true, mm), byNamespace_(11, false, mm), ordered_(XQillaAllocator(mm)) { } void ModuleCache::put(XQQuery *module) { assert(!byURI_.get(module->getFile())); byURI_.put((void*)module->getFile(), module); XQQuery *cached = byNamespace_.get(module->getModuleTargetNamespace()); if(cached) { while(cached->getNext() != 0) { cached = cached->getNext(); } cached->setNext(module); } else { byNamespace_.put((void*)module->getModuleTargetNamespace(), module); } } XQQuery *ModuleCache::getByURI(const XMLCh *uri) const { return (XQQuery*)byURI_.get(uri); } XQQuery *ModuleCache::getByNamespace(const XMLCh *ns) const { return (XQQuery*)byNamespace_.get(ns); } //////////////////////////////////////////////////////////////////////////////////////////////////// XQQuery::XQQuery(DynamicContext *context, bool contextOwned, ModuleCache *moduleCache, MemoryManager *memMgr) : m_memMgr(memMgr), m_context(context), m_contextOwned(contextOwned), m_query(NULL), m_bIsLibraryModule(false), m_szTargetNamespace(NULL), m_szQueryText(0), m_szCurrentFile(NULL), m_userDefFns(XQillaAllocator(memMgr)), m_delayedFunctions(XQillaAllocator(memMgr)), m_userDefVars(XQillaAllocator(memMgr)), m_importedModules(XQillaAllocator(memMgr)), m_moduleCache(moduleCache ? moduleCache : new (memMgr) ModuleCache(memMgr)), m_moduleCacheOwned(moduleCache == 0), m_version3(context->getLanguage() & XQilla::VERSION3), m_staticTyped(BEFORE), m_next(0) { context->setModule(this); } XQQuery::~XQQuery() { if(m_moduleCacheOwned) delete m_moduleCache; if(m_contextOwned) delete m_context; } DynamicContext *XQQuery::createDynamicContext(MemoryManager *memMgr) const { return m_context->createDynamicContext(memMgr); } Result XQQuery::execute(const Item::Ptr &contextItem, DynamicContext *context) const { context->setContextItem(contextItem); return execute(context); } Result XQQuery::execute(const XMLCh *templateQName, DynamicContext *context) const { Item::Ptr value = context->getItemFactory()->createUntypedAtomic(templateQName, context); context->setExternalVariable(XQillaFunction::XMLChFunctionURI, X("name"), value); return execute(context); } void XQQuery::executeProlog(DynamicContext *context) const { try { // Execute the imported modules if(m_moduleCacheOwned) { for(ImportedModules::const_iterator modIt = m_moduleCache->ordered_.begin(); modIt != m_moduleCache->ordered_.end(); ++modIt) { // Derive the module's execution context from it's static context AutoDelete moduleCtx(context->createModuleDynamicContext((*modIt)->getStaticContext(), context->getMemoryManager())); (*modIt)->executeProlog(moduleCtx); } } // define global variables for(GlobalVariables::const_iterator it3 = m_userDefVars.begin(); it3 != m_userDefVars.end(); ++it3) (*it3)->execute(context); } catch(XQException& e) { if(e.getXQueryLine() == 0) { e.setXQueryPosition(m_szCurrentFile, 1, 1); } throw e; } } void XQQuery::execute(EventHandler *events, DynamicContext* context) const { executeProlog(context); if(m_query != NULL) { try { // execute the query body m_query->generateAndTailCall(events, context, true, true); events->endEvent(); } catch(XQException& e) { if(e.getXQueryLine() == 0) { e.setXQueryPosition(m_szCurrentFile, 1, 1); } throw e; } } } void XQQuery::execute(EventHandler *events, const Item::Ptr &contextItem, DynamicContext *context) const { context->setContextItem(contextItem); execute(events, context); } void XQQuery::execute(EventHandler *events, const XMLCh *templateQName, DynamicContext *context) const { Item::Ptr value = context->getItemFactory()->createUntypedAtomic(templateQName, context); context->setExternalVariable(XQillaFunction::XMLChFunctionURI, X("name"), value); execute(events, context); } XQQuery *XQQuery::findModuleForFunction(const XMLCh *uri, const XMLCh *name, int numArgs) { UserFunctions::iterator itFn = m_userDefFns.begin(); for(; itFn != m_userDefFns.end(); ++itFn) { if(*itFn && XPath2Utils::equals(name, (*itFn)->getName()) && XPath2Utils::equals(uri, (*itFn)->getURI()) && (*itFn)->getMinArgs() == (size_t)numArgs) { return this; } } ImportedModules::const_iterator modIt; for(modIt = m_importedModules.begin(); modIt != m_importedModules.end(); ++modIt) { if(XPath2Utils::equals(uri, (*modIt)->getModuleTargetNamespace())) { XQQuery *module = *modIt; for(; module; module = module->getNext()) { itFn = module->m_userDefFns.begin(); for(; itFn != module->m_userDefFns.end(); ++itFn) { if(*itFn && XPath2Utils::equals(name, (*itFn)->getName()) && (*itFn)->getMinArgs() == (size_t)numArgs) { return module; } } } } } return 0; } XQQuery *XQQuery::findModuleForVariable(const XMLCh *uri, const XMLCh *name) { GlobalVariables::iterator itVar = m_userDefVars.begin(); for(; itVar != m_userDefVars.end(); ++itVar) { if(*itVar && XPath2Utils::equals(name, (*itVar)->getVariableLocalName()) && XPath2Utils::equals(uri, (*itVar)->getVariableURI())) { return this; } } ImportedModules::const_iterator modIt; for(modIt = m_importedModules.begin(); modIt != m_importedModules.end(); ++modIt) { if(XPath2Utils::equals(uri, (*modIt)->getModuleTargetNamespace())) { XQQuery *module = *modIt; for(; module; module = module->getNext()) { itVar = module->m_userDefVars.begin(); for(; itVar != module->m_userDefVars.end(); ++itVar) { if(*itVar && XPath2Utils::equals(name, (*itVar)->getVariableLocalName())) { return module; } } } } } return 0; } static void duplicateVariableError(const XQGlobalVariable *existing, const XQGlobalVariable *bad, MessageListener *mlistener) { if(mlistener) { mlistener->warning(X("In the context of this variable declaration"), existing); } XMLBuffer buf; buf.set(X("A variable with name {")); buf.append(bad->getVariableURI()); buf.append(X("}")); buf.append(bad->getVariableLocalName()); buf.append(X(" conflicts with an existing global variable [err:XQST0049].")); XQThrow3(StaticErrorException, X("XQQuery::staticResolution"), buf.getRawBuffer(), bad); } void XQQuery::staticResolution() { MessageListener *mlistener = m_context->getMessageListener(); // Statically resolve all the modules if(m_moduleCacheOwned) { RefHashTableOfEnumerator en(&m_moduleCache->byURI_); while(en.hasMoreElements()) { XQQuery *module = &en.nextElement(); if(module != this) module->staticResolution(); } } // Deal with the module imports ImportedModules::const_iterator modIt; GlobalVariables::iterator itVar; for(modIt = m_importedModules.begin(); modIt != m_importedModules.end(); ++modIt) { XQQuery *module = *modIt; // Add variables from this module in the module namespace to the map RefHashTableOf nsVars(11, false); for(itVar = m_userDefVars.begin(); itVar != m_userDefVars.end(); ++itVar) { if(XPath2Utils::equals((*itVar)->getVariableURI(), module->getModuleTargetNamespace())) { XQGlobalVariable *existing = nsVars.get((*itVar)->getVariableLocalName()); if(existing) duplicateVariableError(existing, *itVar, mlistener); nsVars.put((void*)(*itVar)->getVariableLocalName(), *itVar); } } // Import the functions from the modules with this target namespace for(; module; module = module->getNext()) { if(module == this) continue; const DynamicContext *moduleCtx = module->getStaticContext(); // Move the function definitions into my context for(UserFunctions::iterator itFn = module->m_userDefFns.begin(); itFn != module->m_userDefFns.end(); ++itFn) { (*itFn)->setModuleDocumentCache(const_cast(moduleCtx->getDocumentCache())); if((*itFn)->isTemplate()) { m_context->addTemplate(*itFn); } else if((*itFn)->getName() && (*itFn)->getSignature()->privateOption != FunctionSignature::OP_TRUE) { m_context->addCustomFunction(*itFn); } } // Move the delayed function definitions into my context for(DelayedFunctions::iterator itd = module->m_delayedFunctions.begin(); itd != module->m_delayedFunctions.end(); ++itd) { if(!(*itd)->isParsed()) { m_context->addCustomFunction(*itd); } } // Check that global variable names don't clash for(itVar = module->m_userDefVars.begin(); itVar != module->m_userDefVars.end(); ++itVar) { XQGlobalVariable *existing = nsVars.get((*itVar)->getVariableLocalName()); if(existing) duplicateVariableError(existing, *itVar, mlistener); nsVars.put((void*)(*itVar)->getVariableLocalName(), *itVar); } } } // Run staticResolutionStage1 on the user defined functions, // which gives them the static type they were defined with UserFunctions::iterator i; for(i = m_userDefFns.begin(); i != m_userDefFns.end(); ++i) { (*i)->staticResolutionStage1(m_context); if(getIsLibraryModule() && !(*i)->isTemplate() && !XERCES_CPP_NAMESPACE::XMLString::equals((*i)->getURI(), getModuleTargetNamespace())) XQThrow3(StaticErrorException,X("XQQuery::staticResolution"), X("Every function in a module must be in the module namespace [err:XQST0048]."), *i); if((*i)->isTemplate()) { m_context->addTemplate(*i); } else if((*i)->getName() && !(*i)->isDelayed()) { m_context->addCustomFunction(*i); } } // Run staticResolution on the global variables for(itVar = m_userDefVars.begin(); itVar != m_userDefVars.end(); ++itVar) { (*itVar)->staticResolution(m_context); if(getIsLibraryModule() && !XPath2Utils::equals((*itVar)->getVariableURI(), getModuleTargetNamespace())) XQThrow3(StaticErrorException,X("XQQuery::staticResolution"), X("Every global variable in a module must be in the module namespace [err:XQST0048]."), *itVar); } // check for duplicate variable declarations for(itVar = m_userDefVars.begin(); itVar != m_userDefVars.end(); ++itVar) { for(GlobalVariables::iterator it2 = itVar+1; it2 != m_userDefVars.end(); ++it2) { if(XPath2Utils::equals((*itVar)->getVariableURI(), (*it2)->getVariableURI()) && XPath2Utils::equals((*itVar)->getVariableLocalName(), (*it2)->getVariableLocalName())) { duplicateVariableError(*itVar, *it2, mlistener); } } } // Run staticResolutionStage2 on the user defined functions, // which statically resolves their function bodies for(i = m_userDefFns.begin(); i != m_userDefFns.end(); ++i) { (*i)->staticResolutionStage2(m_context); } // Run static resolution on the query body if(m_query) m_query = m_query->staticResolution(m_context); } bool XQQuery::staticTypingOnce(StaticTyper *styper) { switch(m_staticTyped) { case AFTER: return false; case DURING: { XMLBuffer buf; buf.set(X("The graph of module imports contains a cycle for namespace '")); buf.append(getModuleTargetNamespace()); buf.append(X("' [err:XQST0093]")); XQThrow2(StaticErrorException, X("XQQuery::staticResolution"), buf.getRawBuffer()); } case BEFORE: break; } m_staticTyped = DURING; staticTyping(styper); m_staticTyped = AFTER; m_moduleCache->ordered_.push_back(this); return true; } void XQQuery::staticTyping(StaticTyper *styper) { StaticTyper defaultTyper; if(styper == 0) styper = &defaultTyper; // Static type the imported modules (again) ImportedModules::const_iterator modIt; if(m_moduleCacheOwned) { for(modIt = m_moduleCache->ordered_.begin(); modIt != m_moduleCache->ordered_.end(); ++modIt) { (*modIt)->staticTyping(styper); } } // Define types for the imported variables VariableTypeStore* varStore = m_context->getVariableTypeStore(); GlobalVariables::const_iterator varIt; for(modIt = m_importedModules.begin(); modIt != m_importedModules.end(); ++modIt) { XQQuery *module = *modIt; for(; module; module = module->getNext()) { for(varIt = module->m_userDefVars.begin(); varIt != module->m_userDefVars.end(); ++varIt) { varStore->declareGlobalVar((*varIt)->getVariableURI(), (*varIt)->getVariableLocalName(), (*varIt)->getStaticAnalysis(), *varIt); } } } // Set up a default type for the global variables for(varIt = m_userDefVars.begin(); varIt != m_userDefVars.end(); ++varIt) { (*varIt)->resetStaticTypingOnce(); varStore->declareGlobalVar((*varIt)->getVariableURI(), (*varIt)->getVariableLocalName(), (*varIt)->getStaticAnalysis(), *varIt); } UserFunctions::const_iterator i, j; { GlobalVariables globalsOrder(XQillaAllocator(m_context->getMemoryManager())); AutoReset autoReset(styper->getGlobalsOrder()); styper->getGlobalsOrder() = &globalsOrder; // Run staticTyping on the global variables for(varIt = m_userDefVars.begin(); varIt != m_userDefVars.end(); ++varIt) { for(j = m_userDefFns.begin(); j != m_userDefFns.end(); ++j) { (*j)->resetStaticTypingOnce(); } (*varIt)->staticTypingOnce(m_context, styper); } // XQuery 1.1 reorders the global variables to enable forward references if(m_version3) m_userDefVars = globalsOrder; } // Run staticTyping on the user defined functions, // which calculates a better type for them for(i = m_userDefFns.begin(); i != m_userDefFns.end(); ++i) { for(j = m_userDefFns.begin(); j != m_userDefFns.end(); ++j) { (*j)->resetStaticTypingOnce(); } (*i)->staticTypingOnce(m_context, styper); } // Run staticTyping on the query body if(m_query) m_query = m_query->staticTyping(m_context, styper); } std::string XQQuery::getQueryPlan() const { AutoDelete a2x(m_context->getConfiguration()->createASTToXML()); return a2x->print(this, m_context); } ASTNode* XQQuery::getQueryBody() const { return m_query; } void XQQuery::setQueryBody(ASTNode* query) { m_query=query; } void XQQuery::addFunction(XQUserFunction* fnDef) { m_userDefFns.push_back(fnDef); } void XQQuery::addDelayedFunction(const XMLCh *uri, const XMLCh *name, size_t numArgs, const XMLCh *functionDeclaration, bool isPrivate, int line, int column) { DelayedFuncFactory *f = new (m_context->getMemoryManager()) DelayedFuncFactory(uri, name, numArgs, functionDeclaration, line, column, this); if(!isPrivate) m_delayedFunctions.push_back(f); m_context->addCustomFunction(f); } void XQQuery::addDelayedFunction(const XMLCh *uri, const XMLCh *name, size_t numArgs, const char *functionDeclaration, bool isPrivate, int line, int column) { DelayedFuncFactory *f = new (m_context->getMemoryManager()) DelayedFuncFactory(uri, name, numArgs, functionDeclaration, line, column, this); if(!isPrivate) m_delayedFunctions.push_back(f); m_context->addCustomFunction(f); } void XQQuery::addVariable(XQGlobalVariable* varDef) { m_userDefVars.push_back(varDef); } void XQQuery::setIsLibraryModule(bool bIsModule/*=true*/) { m_bIsLibraryModule=bIsModule; } bool XQQuery::getIsLibraryModule() const { return m_bIsLibraryModule; } void XQQuery::setModuleTargetNamespace(const XMLCh* uri) { m_szTargetNamespace=uri; } const XMLCh* XQQuery::getModuleTargetNamespace() const { return m_szTargetNamespace; } void XQQuery::importModule(const XMLCh* szUri, VectorOfStrings* locations, const LocationInfo *location) { for(ImportedModules::iterator modIt = m_importedModules.begin(); modIt != m_importedModules.end(); ++modIt) { if(XPath2Utils::equals((*modIt)->getModuleTargetNamespace(),szUri)) { XMLBuffer buf; buf.set(X("Module for namespace '")); buf.append(szUri); buf.append(X("' has already been imported [err:XQST0047]")); XQThrow3(StaticErrorException, X("XQQuery::ImportModule"), buf.getRawBuffer(), location); } } // Search in the module cache XQQuery *module = 0; if(!XPath2Utils::equals(szUri, m_szTargetNamespace)) { module = m_moduleCache->getByNamespace(szUri); if(module != 0) { importModule(module); return; } } if(locations == NULL) locations = m_context->resolveModuleURI(szUri); if(locations == NULL || locations->empty()) { XMLBuffer buf; buf.set(X("Cannot locate module for namespace ")); buf.append(szUri); buf.append(X(" without the 'at ' keyword [err:XQST0059]")); XQThrow3(StaticErrorException,X("XQQuery::ImportModule"), buf.getRawBuffer(), location); } for(VectorOfStrings::iterator it=locations->begin();it!=locations->end();++it) { module = parseModule(szUri, *it, location); if(!module->getIsLibraryModule()) { XMLBuffer buf; buf.set(X("The module at ")); buf.append(module->getFile()); buf.append(X(" is not a module")); XQThrow3(StaticErrorException, X("XQQuery::ImportModule"), buf.getRawBuffer(), location); } if(!XERCES_CPP_NAMESPACE::XMLString::equals(szUri, module->getModuleTargetNamespace())) { XMLBuffer buf; buf.set(X("The module at ")); buf.append(module->getFile()); buf.append(X(" specifies a different namespace [err:XQST0059]")); XQThrow3(StaticErrorException, X("XQQuery::ImportModule"), buf.getRawBuffer(), location); } } // Search in the module cache again, to get the head of the linked list of modules module = m_moduleCache->getByNamespace(szUri); if(!module) { XMLBuffer buf; buf.set(X("Cannot locate the module for namespace \"")); buf.append(szUri); buf.append(X("\" [err:XQST0059]")); XQThrow3(StaticErrorException,X("XQQuery::ImportModule"), buf.getRawBuffer(), location); } importModule(module); } XQQuery *XQQuery::parseModule(const XMLCh *ns, const XMLCh *at, const LocationInfo *location) const { InputSource* srcToUse = 0; if(m_context->getDocumentCache()->getXMLEntityResolver()){ XMLResourceIdentifier resourceIdentifier(XMLResourceIdentifier::UnKnown, at, ns, XMLUni::fgZeroLenString, m_context->getBaseURI()); srcToUse = m_context->getDocumentCache()->getXMLEntityResolver()->resolveEntity(&resourceIdentifier); } if(srcToUse==0) { try { XMLURL urlTmp(m_context->getBaseURI(), at); if (urlTmp.isRelative()) { throw MalformedURLException(__FILE__, __LINE__, XMLExcepts::URL_NoProtocolPresent); } srcToUse = new URLInputSource(urlTmp); } catch(const MalformedURLException&) { // It's not a URL, so let's assume it's a local file name. const XMLCh* baseUri=m_context->getBaseURI(); if(baseUri && baseUri[0]) { XMLCh* tmpBuf = XMLPlatformUtils::weavePaths(baseUri, at); srcToUse = new LocalFileInputSource(tmpBuf); XMLPlatformUtils::fgMemoryManager->deallocate(tmpBuf); } else { srcToUse = new LocalFileInputSource(at); } } } Janitor janIS(srcToUse); XQQuery *module = m_moduleCache->getByURI(srcToUse->getSystemId()); if(module) return module; AutoDelete ctxGuard(m_context->createModuleContext()); DynamicContext *moduleCtx = ctxGuard.get(); moduleCtx->setBaseURI(srcToUse->getSystemId()); moduleCtx->setXMLEntityResolver(m_context->getXMLEntityResolver()); AutoDelete moduleGuard(new (XMLPlatformUtils::fgMemoryManager) XQQuery(ctxGuard.adopt(), true, m_moduleCache, XMLPlatformUtils::fgMemoryManager)); module = moduleGuard; module->setFile(srcToUse->getSystemId()); module->setModuleTargetNamespace(ns); // Put the unparsed module in the cache, to resolve loops correctly m_moduleCache->put(moduleGuard.adopt()); XQilla::parse(*srcToUse, moduleCtx, XQilla::NO_STATIC_RESOLUTION, XMLPlatformUtils::fgMemoryManager, module); return module; } void XQQuery::importModule(XQQuery *module) { m_importedModules.push_back(module); } void XQQuery::setFile(const XMLCh* file) { m_szCurrentFile = m_context->getMemoryManager()->getPooledString(file); } void XQQuery::setQueryText(const XMLCh *v) { m_szQueryText = m_context->getMemoryManager()->getPooledString(v); } Result XQQuery::execute(DynamicContext* context) const { executeProlog(context); if(getQueryBody() != NULL) return getQueryBody()->createResult(context); return 0; } XQilla-2.3.0/src/simple-api/XQilla.cpp0000644000151400015140000002252411653565523014370 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "../lexer/XQLexer.hpp" #include "../lexer/XSLT2Lexer.hpp" #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; XQilla::XQilla(MemoryManager *memMgr) { XQillaPlatformUtils::initialize(memMgr); } XQilla::~XQilla() { XQillaPlatformUtils::terminate(); } Optimizer *XQilla::createOptimizer(DynamicContext *context, unsigned int flags) { Optimizer *optimizer = 0; if((flags & NO_STATIC_RESOLUTION) == 0) { // optimizer = new PrintASTOptimizer("Initial", context, optimizer); optimizer = new StaticResolver(context, optimizer); // optimizer = new PrintASTOptimizer("After static resolution", context, optimizer); optimizer = new StaticTyper(context, optimizer); // optimizer = new PrintASTOptimizer("After static typing", context, optimizer); if((flags & NO_OPTIMIZATION) == 0) { optimizer = new PartialEvaluator(context, optimizer); // optimizer = new PrintASTOptimizer("After partial evaluation", context, optimizer); optimizer = new StaticTyper(context, optimizer); // optimizer = new PrintASTOptimizer("After static typing (2)", context, optimizer); optimizer = new QueryPathTreeGenerator(context, optimizer); } if((flags & DEBUG_QUERY) != 0) { optimizer = new DebugHookDecorator(context, optimizer); } } return optimizer; } XQQuery* XQilla::parse(const XMLCh* inputQuery, DynamicContext* context, const XMLCh* queryFile, unsigned int flags, MemoryManager *memMgr, XQQuery *result) { if(context != 0 && (context->getLanguage() & XQilla::XSLT2) != 0) { MemBufInputSource src((XMLByte*)inputQuery, XMLString::stringLen(inputQuery) * sizeof(XMLCh), queryFile); src.setEncoding(XMLUni::fgUTF16EncodingString); return parse(src, context, flags, memMgr, result); } bool contextOwned = (flags & NO_ADOPT_CONTEXT) == 0; if(context == 0) { contextOwned = true; context = createContext(XQilla::XQUERY, 0, memMgr); } AutoDelete queryGuard(0); if(result == 0) { queryGuard.set(new (memMgr) XQQuery(context, contextOwned, 0, memMgr)); result = queryGuard; } result->setQueryText(inputQuery); if(queryFile) { queryFile = context->getMemoryManager()->getPooledString(queryFile); result->setFile(queryFile); } if((flags & XQilla::NO_DEFAULT_MODULES) == 0) { BuiltInModules::core.importModuleInto(result); BuiltInModules::fn.importModuleInto(result); } XQLexer lexer(context->getMemoryManager(), queryFile, inputQuery, context->getLanguage()); XQParserArgs args(&lexer, result); XQParser::yyparse(&args); for(UserFunctions::iterator itFn = result->m_userDefFns.begin(); itFn != result->m_userDefFns.end(); ++itFn) { (*itFn)->resolveName(context); } for(GlobalVariables::iterator itVar = result->m_userDefVars.begin(); itVar != result->m_userDefVars.end(); ++itVar) { (*itVar)->resolveName(context); } AutoDelete optGuard(createOptimizer(context, flags)); if(optGuard.get()) optGuard->startOptimize(args._query); queryGuard.adopt(); return result; } XQQuery* XQilla::parse(const InputSource& querySrc, DynamicContext* context, unsigned int flags, MemoryManager *memMgr, XQQuery *result) { if(context == 0 || (context->getLanguage() & XQilla::XSLT2) == 0) { XMLBuffer moduleText; try { if(!readQuery(querySrc, memMgr, moduleText)) { XMLBuffer buf; buf.set(X("Cannot read query content from ")); buf.append(querySrc.getSystemId()); buf.append(X(" [err:XQST0059]")); XQThrow2(ContextException,X("XQilla::parse"), buf.getRawBuffer()); } } catch(XMLException& e) { XMLBuffer buf; buf.set(X("Exception reading query content: ")); buf.append(e.getMessage()); XQThrow2(ContextException,X("XQilla::parse"), buf.getRawBuffer()); } return parse(moduleText.getRawBuffer(), context, querySrc.getSystemId(), flags, memMgr, result); } bool contextOwned = (flags & NO_ADOPT_CONTEXT) == 0; AutoDelete queryGuard(0); if(result == 0) { queryGuard.set(new (memMgr) XQQuery(context, contextOwned, 0, memMgr)); result = queryGuard; } if(querySrc.getSystemId()) result->setFile(querySrc.getSystemId()); if((flags & XQilla::NO_DEFAULT_MODULES) == 0) { BuiltInModules::core.importModuleInto(result); BuiltInModules::fn.importModuleInto(result); } #ifdef HAVE_FAXPP FAXPPXSLT2Lexer lexer(context, querySrc, context->getLanguage()); #else XercesXSLT2Lexer lexer(context, querySrc, context->getLanguage()); #endif XQParserArgs args(&lexer, result); XQParser::yyparse(&args); for(UserFunctions::iterator itFn = result->m_userDefFns.begin(); itFn != result->m_userDefFns.end(); ++itFn) { (*itFn)->resolveName(context); } for(GlobalVariables::iterator itVar = result->m_userDefVars.begin(); itVar != result->m_userDefVars.end(); ++itVar) { (*itVar)->resolveName(context); } AutoDelete optGuard(createOptimizer(context, flags)); if(optGuard.get()) optGuard->startOptimize(args._query); queryGuard.adopt(); return result; } XQQuery* XQilla::parseFromURI(const XMLCh* queryFile, DynamicContext* context, unsigned int flags, MemoryManager *memMgr, XQQuery *result) { Janitor srcToFill(0); try { XMLURL urlTmp(queryFile); if(urlTmp.isRelative()) throw MalformedURLException(__FILE__, __LINE__, XMLExcepts::URL_NoProtocolPresent); srcToFill.reset(new (memMgr) URLInputSource(urlTmp)); } catch(const MalformedURLException&) { srcToFill.reset(new (memMgr) LocalFileInputSource(queryFile)); } return parse(*srcToFill.get(), context, flags, memMgr, result); } static FastXDMConfiguration _gDefaultConfiguration; DynamicContext *XQilla::createContext(Language language, XQillaConfiguration *conf, MemoryManager *memMgr) { if(conf == 0) conf = &_gDefaultConfiguration; DynamicContext *result = new (memMgr) XQContextImpl(conf, language, memMgr); conf->populateStaticContext(result); return result; } bool XQilla::readQuery(const XMLCh* queryFile, MemoryManager* memMgr, XMLBuffer& queryText) { Janitor srcToFill(NULL); try { XMLURL urlTmp(queryFile); if (urlTmp.isRelative()) throw MalformedURLException(__FILE__, __LINE__, XMLExcepts::URL_NoProtocolPresent); srcToFill.reset(new (memMgr) URLInputSource(urlTmp)); } catch(const MalformedURLException&) { srcToFill.reset(new (memMgr) LocalFileInputSource(queryFile)); } return readQuery(*srcToFill.get(), memMgr, queryText); } bool XQilla::readQuery(const InputSource& querySrc, MemoryManager* memMgr, XMLBuffer& queryText) { return XPath2Utils::readSource(querySrc, memMgr, queryText, /*sniffEncoding*/true); } void XQilla::compileDelayedModule(const XMLCh* queryFile, MemoryManager* memMgr) { XMLBuffer buffer; if(!readQuery(queryFile, memMgr, buffer)) { XMLBuffer buf; buf.set(X("Cannot read query content from ")); buf.append(queryFile); buf.append(X(" [err:XQST0059]")); XQThrow2(ContextException,X("XQilla::compileDelayedModule"), buf.getRawBuffer()); } Janitor srcToFill(new (memMgr) LocalFileInputSource(queryFile)); DynamicContext *context = XQilla::createContext((XQilla::Language)(XQilla::XQUERY3_FULLTEXT_UPDATE | XQilla::EXTENSIONS), 0, memMgr); AutoDelete query(new (memMgr) XQQuery(context, true, 0, memMgr)); XPath2MemoryManager *mm = context->getMemoryManager(); query->setFile(queryFile); XQLexer lexer(mm, _LANG_DELAYEDMODULE_, queryFile, 1, 1, buffer.getRawBuffer()); XQParserArgs args(&lexer, query.get()); XQParser::yyparse(&args); } XQilla-2.3.0/src/fastxdm/0000755000151400015140000000000011653572443012152 500000000000000XQilla-2.3.0/src/fastxdm/FastXDMNodeImpl.hpp0000644000151400015140000002127311653565523015507 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FASTXDMNODEIMPL_HPP #define _FASTXDMNODEIMPL_HPP #include #include "FastXDMDocument.hpp" XERCES_CPP_NAMESPACE_BEGIN class DatatypeValidator; XERCES_CPP_NAMESPACE_END class XQILLA_API FastXDMNodeImpl : public Node { public: typedef RefCountPointer Ptr; FastXDMNodeImpl(const FastXDMDocument::Ptr &document, const FastXDMDocument::Node *node); ~FastXDMNodeImpl(); virtual void *getInterface(const XMLCh *name) const; virtual const XMLCh* asString(const DynamicContext* context) const; virtual bool hasInstanceOfType(const XMLCh* typeURI, const XMLCh* typeName, const DynamicContext* context) const; virtual Sequence dmBaseURI(const DynamicContext* context) const; virtual const XMLCh* dmNodeKind() const; virtual ATQNameOrDerived::Ptr dmNodeName(const DynamicContext* context) const; virtual const XMLCh* dmStringValue(const DynamicContext* context) const; virtual Sequence dmTypedValue(DynamicContext* context) const; virtual Sequence dmDocumentURI(const DynamicContext* context) const; virtual ATQNameOrDerived::Ptr dmTypeName(const DynamicContext* context) const; virtual ATBooleanOrDerived::Ptr dmNilled(const DynamicContext* context) const; virtual bool lessThan(const Node::Ptr &other, const DynamicContext *context) const; virtual bool equals(const Node::Ptr &other) const; virtual bool uniqueLessThan(const Node::Ptr &other, const DynamicContext *context) const; virtual Node::Ptr root(const DynamicContext* context) const; virtual Node::Ptr dmParent(const DynamicContext* context) const; virtual Result dmAttributes(const DynamicContext* context, const LocationInfo *info) const; virtual Result dmNamespaceNodes(const DynamicContext* context, const LocationInfo *info) const; virtual Result dmChildren(const DynamicContext *context, const LocationInfo *info) const; virtual Result getAxisResult(XQStep::Axis axis, const NodeTest *nodeTest, const DynamicContext *context, const LocationInfo *info) const; virtual ATBooleanOrDerived::Ptr dmIsId(const DynamicContext* context) const; virtual ATBooleanOrDerived::Ptr dmIsIdRefs(const DynamicContext* context) const; virtual const XMLCh* getTypeURI() const; virtual const XMLCh* getTypeName() const; virtual void generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS = true, bool preserveType = true) const; const FastXDMDocument::Ptr &getDocument() const { return document_; } const FastXDMDocument::Node *getNode() const { return node_; } static const XMLCh fastxdm_string[]; protected: virtual void getTypeUriAndName(const XMLCh*& uri, const XMLCh*& name) const; FastXDMDocument::Ptr document_; const FastXDMDocument::Node *node_; }; class XQILLA_API FastXDMAttributeNodeImpl : public Node { public: typedef RefCountPointer Ptr; FastXDMAttributeNodeImpl(const FastXDMDocument::Ptr &document, const FastXDMDocument::Attribute *attr); ~FastXDMAttributeNodeImpl(); virtual void *getInterface(const XMLCh *name) const; virtual const XMLCh* asString(const DynamicContext* context) const; virtual bool hasInstanceOfType(const XMLCh* typeURI, const XMLCh* typeName, const DynamicContext* context) const; virtual Sequence dmBaseURI(const DynamicContext* context) const; virtual const XMLCh* dmNodeKind() const; virtual ATQNameOrDerived::Ptr dmNodeName(const DynamicContext* context) const; virtual const XMLCh* dmStringValue(const DynamicContext* context) const; virtual Sequence dmTypedValue(DynamicContext* context) const; virtual Sequence dmDocumentURI(const DynamicContext* context) const; virtual ATQNameOrDerived::Ptr dmTypeName(const DynamicContext* context) const; virtual ATBooleanOrDerived::Ptr dmNilled(const DynamicContext* context) const; virtual bool lessThan(const Node::Ptr &other, const DynamicContext *context) const; virtual bool equals(const Node::Ptr &other) const; virtual bool uniqueLessThan(const Node::Ptr &other, const DynamicContext *context) const; virtual Node::Ptr root(const DynamicContext* context) const; virtual Node::Ptr dmParent(const DynamicContext* context) const; virtual Result dmAttributes(const DynamicContext* context, const LocationInfo *info) const; virtual Result dmNamespaceNodes(const DynamicContext* context, const LocationInfo *info) const; virtual Result dmChildren(const DynamicContext *context, const LocationInfo *info) const; virtual Result getAxisResult(XQStep::Axis axis, const NodeTest *nodeTest, const DynamicContext *context, const LocationInfo *info) const; virtual ATBooleanOrDerived::Ptr dmIsId(const DynamicContext* context) const; virtual ATBooleanOrDerived::Ptr dmIsIdRefs(const DynamicContext* context) const; virtual const XMLCh* getTypeURI() const; virtual const XMLCh* getTypeName() const; virtual void generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS = true, bool preserveType = true) const; const FastXDMDocument::Ptr &getDocument() const { return document_; } const FastXDMDocument::Attribute *getAttribute() const { return attr_; } static const XMLCh fastxdm_attr_string[]; protected: virtual void getTypeUriAndName(const XMLCh*& uri, const XMLCh*& name) const; FastXDMDocument::Ptr document_; const FastXDMDocument::Attribute *attr_; }; class XQILLA_API FastXDMNamespaceNodeImpl : public Node { public: typedef RefCountPointer Ptr; FastXDMNamespaceNodeImpl(const FastXDMNodeImpl::Ptr &owner, const XMLCh *prefix, const XMLCh *uri, unsigned int order); ~FastXDMNamespaceNodeImpl(); virtual void *getInterface(const XMLCh *name) const; virtual const XMLCh* asString(const DynamicContext* context) const; virtual bool hasInstanceOfType(const XMLCh* typeURI, const XMLCh* typeName, const DynamicContext* context) const; virtual Sequence dmBaseURI(const DynamicContext* context) const; virtual const XMLCh* dmNodeKind() const; virtual ATQNameOrDerived::Ptr dmNodeName(const DynamicContext* context) const; virtual const XMLCh* dmStringValue(const DynamicContext* context) const; virtual Sequence dmTypedValue(DynamicContext* context) const; virtual Sequence dmDocumentURI(const DynamicContext* context) const; virtual ATQNameOrDerived::Ptr dmTypeName(const DynamicContext* context) const; virtual ATBooleanOrDerived::Ptr dmNilled(const DynamicContext* context) const; virtual bool lessThan(const Node::Ptr &other, const DynamicContext *context) const; virtual bool equals(const Node::Ptr &other) const; virtual bool uniqueLessThan(const Node::Ptr &other, const DynamicContext *context) const; virtual Node::Ptr root(const DynamicContext* context) const; virtual Node::Ptr dmParent(const DynamicContext* context) const; virtual Result dmAttributes(const DynamicContext* context, const LocationInfo *info) const; virtual Result dmNamespaceNodes(const DynamicContext* context, const LocationInfo *info) const; virtual Result dmChildren(const DynamicContext *context, const LocationInfo *info) const; virtual Result getAxisResult(XQStep::Axis axis, const NodeTest *nodeTest, const DynamicContext *context, const LocationInfo *info) const; virtual ATBooleanOrDerived::Ptr dmIsId(const DynamicContext* context) const; virtual ATBooleanOrDerived::Ptr dmIsIdRefs(const DynamicContext* context) const; virtual const XMLCh* getTypeURI() const; virtual const XMLCh* getTypeName() const; virtual void generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS = true, bool preserveType = true) const; const FastXDMNodeImpl::Ptr &getOwner() const { return owner_; } const XMLCh *getPrefix() const { return prefix_; } const XMLCh *getURI() const { return uri_; } unsigned int getOrder() const { return order_; } static const XMLCh fastxdm_ns_string[]; protected: FastXDMNodeImpl::Ptr owner_; const XMLCh *prefix_; const XMLCh *uri_; unsigned int order_; }; #endif XQilla-2.3.0/src/fastxdm/FastXDMSequenceBuilder.hpp0000644000151400015140000000437011653565523017056 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FASTXDMSEQUENCEBUILDER_HPP #define _FASTXDMSEQUENCEBUILDER_HPP #include #include #include "FastXDMDocument.hpp" class FastXDMSequenceBuilder : public SequenceBuilder { public: FastXDMSequenceBuilder(const DynamicContext *context); virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding); virtual void endDocumentEvent(); virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname); virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName); virtual void piEvent(const XMLCh *target, const XMLCh *value); virtual void textEvent(const XMLCh *value); virtual void textEvent(const XMLCh *chars, unsigned int length); virtual void commentEvent(const XMLCh *value); virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName); virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri); virtual void atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName); virtual void endEvent(); virtual Sequence getSequence() const { return seq_; } private: const DynamicContext *context_; unsigned int level_; FastXDMDocument::Ptr document_; Sequence seq_; }; #endif XQilla-2.3.0/src/fastxdm/FastXDMDocument.cpp0000644000151400015140000003551211653565523015552 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "FastXDMDocument.hpp" #include #include #include #include #include #include #define INITIAL_NODES 1000 #define INITIAL_ATTRIBUTES 500 #define INITIAL_NAMESPACES 5 XERCES_CPP_NAMESPACE_USE; FastXDMDocument::FastXDMDocument(XPath2MemoryManager *mm) : elementStack_(21, mm), prevNode_((unsigned int)-1), textBuffer_(1023, mm), textToCreate_(false), nodes_((Node*)mm->allocate(INITIAL_NODES * sizeof(Node))), numNodes_(0), maxNodes_(INITIAL_NODES), attributes_((Attribute*)mm->allocate(INITIAL_ATTRIBUTES * sizeof(Attribute))), numAttributes_(0), maxAttributes_(INITIAL_ATTRIBUTES), namespaces_((Namespace*)mm->allocate(INITIAL_NAMESPACES * sizeof(Namespace))), numNamespaces_(0), maxNamespaces_(INITIAL_NAMESPACES), mm_(mm) { } FastXDMDocument::FastXDMDocument(unsigned int numNodes, unsigned int numAttributes, unsigned int numNamespaces, XPath2MemoryManager *mm) : elementStack_(21, mm), prevNode_((unsigned int)-1), textBuffer_(1023, mm), textToCreate_(false), nodes_((Node*)mm->allocate(numNodes * sizeof(Node))), numNodes_(0), maxNodes_(numNodes), attributes_((Attribute*)mm->allocate(numAttributes * sizeof(Attribute))), numAttributes_(0), maxAttributes_(numAttributes), namespaces_((Namespace*)mm->allocate(numNamespaces * sizeof(Namespace))), numNamespaces_(0), maxNamespaces_(numNamespaces), mm_(mm) { } FastXDMDocument::~FastXDMDocument() { mm_->deallocate(nodes_); mm_->deallocate(attributes_); mm_->deallocate(namespaces_); } FastXDMDocument::Node *FastXDMDocument::getNode(unsigned int i) { assert(i < numNodes_); return nodes_ + i; } const FastXDMDocument::Node *FastXDMDocument::getNode(unsigned int i) const { assert(i < numNodes_); return nodes_ + i; } const FastXDMDocument::Attribute *FastXDMDocument::getAttribute(unsigned int i) const { assert(i < numAttributes_); return attributes_ + i; } FastXDMDocument::Attribute *FastXDMDocument::getAttribute(unsigned int i) { assert(i < numAttributes_); return attributes_ + i; } FastXDMDocument::Namespace *FastXDMDocument::getNamespace(unsigned int i) { assert(i < numNamespaces_); return namespaces_ + i; } #define checkTextBuffer() \ { \ if(textToCreate_) { \ if(numNodes_ == 0 || !textBuffer_.isEmpty()) { \ if(numNodes_ == maxNodes_) resizeNodes(); \ \ nodes_[numNodes_].setText((unsigned int) elementStack_.size(), mm_->getPooledString(textBuffer_.getRawBuffer())); \ \ if(prevNode_ != (unsigned int)-1) \ getNode(prevNode_)->nextSibling.index = numNodes_; \ \ prevNode_ = numNodes_; \ ++numNodes_; \ } \ \ textBuffer_.reset(); \ textToCreate_ = false; \ } \ } void FastXDMDocument::startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding) { elementStack_.removeAllElements(); textBuffer_.reset(); textToCreate_ = false; if(numNodes_ == maxNodes_) resizeNodes(); nodes_[numNodes_].setDocument(mm_->getPooledString(documentURI), mm_->getPooledString(encoding)); elementStack_.push(numNodes_); prevNode_ = (unsigned int)-1; ++numNodes_; } void FastXDMDocument::endDocumentEvent() { checkTextBuffer(); prevNode_ = elementStack_.pop(); } void FastXDMDocument::endEvent() { checkTextBuffer(); elementStack_.removeAllElements(); // Add the end of nodes marker if(numNodes_ > 0) { if(numNodes_ == maxNodes_) resizeNodes(); nodes_[numNodes_].setMarker(); ++numNodes_; } // Add the end of attributes marker if(numAttributes_ > 0) { if(numAttributes_ == maxAttributes_) resizeAttributes(); attributes_[numAttributes_].setMarker(); ++numAttributes_; } // Add the end of namespaces marker if(numNamespaces_ > 0) { if(numNamespaces_ == maxNamespaces_) resizeNamespaces(); namespaces_[numNamespaces_].setMarker(); ++numNamespaces_; } // Rewrite all the indexes to pointers Node *nend = nodes_ + numNodes_; for(Node *node = nodes_; node != nend; ++node) { if(node->nextSibling.index != (unsigned int)-1) node->nextSibling.ptr = nodes_ + node->nextSibling.index; else node->nextSibling.ptr = 0; if(node->nodeKind == ELEMENT) { if(node->data.element.attributes.index != (unsigned int)-1) node->data.element.attributes.ptr = attributes_ + node->data.element.attributes.index; else node->data.element.attributes.ptr = 0; if(node->data.element.namespaces.index != (unsigned int)-1) node->data.element.namespaces.ptr = namespaces_ + node->data.element.namespaces.index; else node->data.element.namespaces.ptr = 0; } } Attribute *aend = attributes_ + numAttributes_; for(Attribute *attr = attributes_; attr != aend; ++attr) { if(attr->owner.index != (unsigned int)-1) attr->owner.ptr = nodes_ + attr->owner.index; else attr->owner.ptr = 0; } Namespace *nmend = namespaces_ + numNamespaces_; for(Namespace *ns = namespaces_; ns != nmend; ++ns) { if(ns->owner.index != (unsigned int)-1) ns->owner.ptr = nodes_ + ns->owner.index; else ns->owner.ptr = 0; } } void FastXDMDocument::startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname) { checkTextBuffer(); if(numNodes_ == maxNodes_) resizeNodes(); nodes_[numNodes_].setElement((unsigned int) elementStack_.size(), mm_->getPooledString(prefix), mm_->getPooledString(uri), mm_->getPooledString(localname)); if(prevNode_ != (unsigned int)-1) getNode(prevNode_)->nextSibling.index = numNodes_; elementStack_.push(numNodes_); prevNode_ = (unsigned int)-1; ++numNodes_; } void FastXDMDocument::endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName) { checkTextBuffer(); prevNode_ = elementStack_.pop(); if(typeName) { getNode(prevNode_)->setElementType(typeURI, typeName); } else { getNode(prevNode_)->setElementType(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, DocumentCache::g_szUntyped); } } void FastXDMDocument::piEvent(const XMLCh *target, const XMLCh *value) { checkTextBuffer(); if(numNodes_ == maxNodes_) resizeNodes(); nodes_[numNodes_].setPI((unsigned int) elementStack_.size(), mm_->getPooledString(target), mm_->getPooledString(value)); if(prevNode_ != (unsigned int)-1) getNode(prevNode_)->nextSibling.index = numNodes_; prevNode_ = numNodes_; ++numNodes_; } void FastXDMDocument::textEvent(const XMLCh *value) { textBuffer_.append(value); textToCreate_ = true; } void FastXDMDocument::textEvent(const XMLCh *chars, unsigned int length) { textBuffer_.append(chars, length); textToCreate_ = true; } void FastXDMDocument::commentEvent(const XMLCh *value) { checkTextBuffer(); if(numNodes_ == maxNodes_) resizeNodes(); nodes_[numNodes_].setComment((unsigned int) elementStack_.size(), mm_->getPooledString(value)); if(prevNode_ != (unsigned int)-1) getNode(prevNode_)->nextSibling.index = numNodes_; prevNode_ = numNodes_; ++numNodes_; } void FastXDMDocument::attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { unsigned int owner = (unsigned int)-1; if(!elementStack_.empty()) { owner = elementStack_.peek(); } if(numAttributes_ == maxAttributes_) resizeAttributes(); if(typeName) { attributes_[numAttributes_].set(owner, mm_->getPooledString(prefix), mm_->getPooledString(uri), mm_->getPooledString(localname), mm_->getPooledString(value), mm_->getPooledString(typeURI), mm_->getPooledString(typeName)); } else { attributes_[numAttributes_].set(owner, mm_->getPooledString(prefix), mm_->getPooledString(uri), mm_->getPooledString(localname), mm_->getPooledString(value), mm_->getPooledString(SchemaSymbols::fgURI_SCHEMAFORSCHEMA), mm_->getPooledString(ATUntypedAtomic::fgDT_UNTYPEDATOMIC)); } if(owner != (unsigned int)-1) { Node *node = getNode(owner); if(node->data.element.attributes.index == (unsigned int)-1) node->data.element.attributes.index = numAttributes_; } ++numAttributes_; } void FastXDMDocument::namespaceEvent(const XMLCh *prefix, const XMLCh *uri) { assert(!elementStack_.empty()); if(numNamespaces_ == maxNamespaces_) resizeNamespaces(); namespaces_[numNamespaces_].set(elementStack_.peek(), mm_->getPooledString(prefix), mm_->getPooledString(uri)); Node *node = getNode(elementStack_.peek()); if(node->data.element.namespaces.index == (unsigned int)-1) node->data.element.namespaces.index = numNamespaces_; ++numNamespaces_; } void FastXDMDocument::resizeNodes() { AutoDeallocate newMem(mm_, maxNodes_ * 2 * sizeof(Node)); memcpy(newMem.get(), nodes_, numNodes_ * sizeof(Node)); nodes_ = newMem.swap(nodes_); maxNodes_ *= 2; } void FastXDMDocument::resizeAttributes() { AutoDeallocate newMem(mm_, maxAttributes_ * 2 * sizeof(Attribute)); memcpy(newMem.get(), attributes_, numAttributes_ * sizeof(Attribute)); attributes_ = newMem.swap(attributes_); maxAttributes_ *= 2; } void FastXDMDocument::resizeNamespaces() { AutoDeallocate newMem(mm_, maxNamespaces_ * 2 * sizeof(Namespace)); memcpy(newMem.get(), namespaces_, numNamespaces_ * sizeof(Namespace)); namespaces_ = newMem.swap(namespaces_); maxNamespaces_ *= 2; } static void outputInheritedNamespaces(const FastXDMDocument::Node *node, EventHandler *events) { typedef std::set DoneSet; DoneSet done; while(node != 0 && node->nodeKind == FastXDMDocument::ELEMENT) { if(done.insert(node->data.element.prefix).second && node->data.element.uri != 0) { events->namespaceEvent(node->data.element.prefix, node->data.element.uri); } FastXDMDocument::Attribute *attr = node->data.element.attributes.ptr; while(attr != 0 && attr->owner.ptr == node) { if(attr->uri != 0 && done.insert(attr->prefix).second) { events->namespaceEvent(attr->prefix, attr->uri); } ++attr; } FastXDMDocument::Namespace *ns = node->data.element.namespaces.ptr; while(ns != 0 && ns->owner.ptr == node) { if(done.insert(ns->prefix).second && ns->uri != 0) { events->namespaceEvent(ns->prefix, ns->uri); } ++ns; } node = FastXDMDocument::getParent(node); } } static const FastXDMDocument::Node *toEventsImpl(const FastXDMDocument::Node *node, EventHandler *events, bool outputNamespaces, bool preserveType, bool inheritedNamespaces) { switch(node->nodeKind) { case FastXDMDocument::DOCUMENT: { events->startDocumentEvent(node->data.document.documentURI, node->data.document.encoding); const FastXDMDocument::Node *child = node + 1; while(child->level > node->level) { child = toEventsImpl(child, events, outputNamespaces, preserveType, false); } events->endDocumentEvent(); return child; } case FastXDMDocument::ELEMENT: { events->startElementEvent(node->data.element.prefix, node->data.element.uri, node->data.element.localname); if(node->data.element.attributes.ptr != 0) { const FastXDMDocument::Attribute *attr = node->data.element.attributes.ptr; while(attr->owner.ptr == node) { if(preserveType) events->attributeEvent(attr->prefix, attr->uri, attr->localname, attr->value, attr->typeURI, attr->typeName); else events->attributeEvent(attr->prefix, attr->uri, attr->localname, attr->value, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, ATUntypedAtomic::fgDT_UNTYPEDATOMIC); ++attr; } } if(outputNamespaces) { if(inheritedNamespaces) { outputInheritedNamespaces(node, events); } else if(node->data.element.namespaces.ptr != 0) { const FastXDMDocument::Namespace *ns = node->data.element.namespaces.ptr; while(ns->owner.ptr == node) { events->namespaceEvent(ns->prefix, ns->uri); ++ns; } } } const FastXDMDocument::Node *child = node + 1; while(child->level > node->level) { child = toEventsImpl(child, events, outputNamespaces, preserveType, false); } if(preserveType) events->endElementEvent(node->data.element.prefix, node->data.element.uri, node->data.element.localname, node->data.element.typeURI, node->data.element.typeName); else events->endElementEvent(node->data.element.prefix, node->data.element.uri, node->data.element.localname, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, DocumentCache::g_szUntyped); return child; } case FastXDMDocument::TEXT: events->textEvent(node->data.other.value); return node + 1; case FastXDMDocument::COMMENT: events->commentEvent(node->data.other.value); return node + 1; case FastXDMDocument::PROCESSING_INSTRUCTION: events->piEvent(node->data.other.target, node->data.other.value); return node + 1; case FastXDMDocument::MARKER: break; } return node; } void FastXDMDocument::toEvents(const Node *node, EventHandler *events, bool preserveNS, bool preserveType) { toEventsImpl(node, events, preserveNS, preserveType, preserveNS); } void FastXDMDocument::toEvents(const Attribute *attr, EventHandler *events, bool preserveType) { if(preserveType) events->attributeEvent(attr->prefix, attr->uri, attr->localname, attr->value, attr->typeURI, attr->typeName); else events->attributeEvent(attr->prefix, attr->uri, attr->localname, attr->value, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, ATUntypedAtomic::fgDT_UNTYPEDATOMIC); } void FastXDMDocument::toEvents(const Namespace *ns, EventHandler *events) { events->namespaceEvent(ns->prefix, ns->uri); } XQilla-2.3.0/src/fastxdm/FastXDMDocument.hpp0000644000151400015140000001573011653565523015557 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FASTXDMDOCUMENT_HPP #define _FASTXDMDOCUMENT_HPP #include #include #include #include #include class XPath2MemoryManager; /// Stores and manages all the information for a Fast XDM document class XQILLA_API FastXDMDocument : public EventHandler, public ReferenceCounted { public: typedef RefCountPointer Ptr; enum NodeKind { DOCUMENT, ELEMENT, TEXT, COMMENT, PROCESSING_INSTRUCTION, MARKER }; struct Node; struct Attribute { void set(unsigned int oi, const XMLCh *p, const XMLCh *u, const XMLCh *l, const XMLCh *v, const XMLCh *tu, const XMLCh *tn) { owner.index = oi; prefix = p; uri = u; localname = l; value = v; typeURI = tu; typeName = tn; } void setMarker() { owner.index = (unsigned int)-1; prefix = 0; uri = 0; localname = 0; value = 0; } union { unsigned int index; Node *ptr; } owner; const XMLCh *prefix; const XMLCh *uri; const XMLCh *localname; const XMLCh *value; const XMLCh *typeURI; const XMLCh *typeName; }; struct Namespace { void set(unsigned int oi, const XMLCh *p, const XMLCh *u) { owner.index = oi; prefix = p; uri = u; } void setMarker() { owner.index = (unsigned int)-1; prefix = 0; uri = 0; } union { unsigned int index; Node *ptr; } owner; const XMLCh *prefix; const XMLCh *uri; }; struct Node { void setDocument(const XMLCh *d, const XMLCh *e) { nodeKind = DOCUMENT; level = 0; nextSibling.index = (unsigned int)-1; data.document.documentURI = d; data.document.encoding = e; } void setElement(unsigned int lv, const XMLCh *p, const XMLCh *u, const XMLCh *l) { nodeKind = ELEMENT; level = lv; nextSibling.index = (unsigned int)-1; data.element.attributes.index = (unsigned int)-1; data.element.namespaces.index = (unsigned int)-1; data.element.prefix = p; data.element.uri = u; data.element.localname = l; } void setElementType(const XMLCh *tu, const XMLCh *tn) { data.element.typeURI = tu; data.element.typeName = tn; } void setPI(unsigned int lv, const XMLCh *t, const XMLCh *v) { nodeKind = PROCESSING_INSTRUCTION; level = lv; nextSibling.index = (unsigned int)-1; data.other.target = t; data.other.value = v; } void setText(unsigned int lv, const XMLCh *v) { nodeKind = TEXT; level = lv; nextSibling.index = (unsigned int)-1; data.other.target = 0; data.other.value = v; } void setComment(unsigned int lv, const XMLCh *v) { nodeKind = COMMENT; level = lv; nextSibling.index = (unsigned int)-1; data.other.target = 0; data.other.value = v; } void setMarker() { nodeKind = MARKER; level = 0; nextSibling.index = (unsigned int)-1; } NodeKind nodeKind; unsigned int level; union { unsigned int index; Node *ptr; } nextSibling; union { struct { const XMLCh *documentURI; const XMLCh *encoding; } document; struct { union { unsigned int index; Attribute *ptr; } attributes; union { unsigned int index; Namespace *ptr; } namespaces; const XMLCh *prefix; const XMLCh *uri; const XMLCh *localname; const XMLCh *typeURI; const XMLCh *typeName; } element; struct { const XMLCh *target; const XMLCh *value; } other; } data; }; FastXDMDocument(XPath2MemoryManager *mm); FastXDMDocument(unsigned int numNodes, unsigned int numAttributes, unsigned int numNamespaces, XPath2MemoryManager *mm); virtual ~FastXDMDocument(); virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding); virtual void endDocumentEvent(); virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname); virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName); virtual void piEvent(const XMLCh *target, const XMLCh *value); virtual void textEvent(const XMLCh *value); virtual void textEvent(const XMLCh *chars, unsigned int length); virtual void commentEvent(const XMLCh *value); virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName); virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri); virtual void endEvent(); Node *getNode(unsigned int i); const Node *getNode(unsigned int i) const; unsigned int getNumNodes() const { return numNodes_; } Attribute *getAttribute(unsigned int i); const Attribute *getAttribute(unsigned int i) const; unsigned int getNumAttributes() const { return numAttributes_; } Namespace *getNamespace(unsigned int i); const Namespace *getNamespace(unsigned int i) const; unsigned int getNumNamespaces() const { return numNamespaces_; } static const Node *getParent(const Node *node); static void toEvents(const Node *node, EventHandler *events, bool preserveNS = true, bool preserveType = true); static void toEvents(const Attribute *attr, EventHandler *events, bool preserveType = true); static void toEvents(const Namespace *ns, EventHandler *events); private: void resizeNodes(); void resizeAttributes(); void resizeNamespaces(); XERCES_CPP_NAMESPACE_QUALIFIER ValueStackOf elementStack_; unsigned int prevNode_; XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer textBuffer_; bool textToCreate_; Node *nodes_; unsigned int numNodes_; unsigned int maxNodes_; Attribute *attributes_; unsigned int numAttributes_; unsigned int maxAttributes_; Namespace *namespaces_; unsigned int numNamespaces_; unsigned int maxNamespaces_; XPath2MemoryManager *mm_; }; inline const FastXDMDocument::Node *FastXDMDocument::getParent(const Node *node) { unsigned int level = node->level; if(level == 0) return 0; do { --node; } while(node->level >= level); return node; } #endif XQilla-2.3.0/src/fastxdm/FastXDMNodeImpl.cpp0000644000151400015140000016034511653565523015506 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "FastXDMNodeImpl.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif const XMLCh FastXDMNodeImpl::fastxdm_string[] = { 'f', 'a', 's', 't', 'x', 'd', 'm', 0 }; FastXDMNodeImpl::FastXDMNodeImpl(const FastXDMDocument::Ptr &document, const FastXDMDocument::Node *node) : document_(document), node_(node) { } FastXDMNodeImpl::~FastXDMNodeImpl() { } void *FastXDMNodeImpl::getInterface(const XMLCh *name) const { if(name == fastxdm_string) return (void *)this; return 0; } const XMLCh *FastXDMNodeImpl::asString(const DynamicContext* context) const { XPath2MemoryManager *mm = context->getMemoryManager(); MemBufFormatTarget target(1023, mm); EventSerializer writer(&target, mm); NSFixupFilter nsfilter(&writer, mm); FastXDMDocument::toEvents(node_, &nsfilter); nsfilter.endEvent(); return XMLString::replicate((XMLCh*)target.getRawBuffer(), mm); } void FastXDMNodeImpl::generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS, bool preserveType) const { FastXDMDocument::toEvents(node_, events, preserveNS, preserveType); } bool FastXDMNodeImpl::hasInstanceOfType(const XMLCh* typeURI, const XMLCh* typeName, const DynamicContext* context) const { const XMLCh* uri, *name; getTypeUriAndName(uri, name); return context->isTypeOrDerivedFromType(uri, name, typeURI, typeName); } Sequence FastXDMNodeImpl::dmBaseURI(const DynamicContext* context) const { static XMLCh base_str[] = { 'b', 'a', 's', 'e', 0 }; switch(node_->nodeKind) { case FastXDMDocument::DOCUMENT: { const XMLCh *baseURI = context->getBaseURI(); const XMLCh* docURI = node_->data.document.documentURI; if(docURI != 0 && *docURI != 0) baseURI = docURI; if(baseURI == 0 || *baseURI == 0) return Sequence(context->getMemoryManager()); return Sequence(context->getItemFactory()->createAnyURI(baseURI, context), context->getMemoryManager()); } case FastXDMDocument::ELEMENT: { const XMLCh *baseURI = context->getBaseURI(); Node::Ptr parent = dmParent(context); if(parent.notNull()) { Sequence pb = parent->dmBaseURI(context); if(!pb.isEmpty()) baseURI = pb.first()->asString(context); } if(node_->data.element.attributes.ptr != 0) { NodeTest xmlBase; xmlBase.setNodeName(base_str); xmlBase.setNodeUri(XMLUni::fgXMLURIName); xmlBase.setTypeWildcard(); Item::Ptr item = getAxisResult(XQStep::ATTRIBUTE, &xmlBase, const_cast(context), 0)-> next(const_cast(context)); if(item.notNull()) { const XMLCh *uri = ((Node*)item.get())->dmStringValue(context); if(uri && *uri) { if(baseURI && *baseURI) { try { XMLUri temp(baseURI, context->getMemoryManager()); XMLUri temp2(&temp, uri, context->getMemoryManager()); baseURI = context->getMemoryManager()->getPooledString(temp2.getUriText()); } catch(const MalformedURLException &ex) { baseURI = uri; } } else baseURI = uri; } } } if(baseURI == NULL || *baseURI == 0) return Sequence(context->getMemoryManager()); return Sequence(context->getItemFactory()->createAnyURI(baseURI, context), context->getMemoryManager()); } case FastXDMDocument::TEXT: case FastXDMDocument::COMMENT: case FastXDMDocument::PROCESSING_INSTRUCTION: { Node::Ptr parent = dmParent(context); if(parent.notNull()) { return parent->dmBaseURI(context); } return Sequence(context->getMemoryManager()); } case FastXDMDocument::MARKER: break; } XQThrow2(ItemException, X("FastXDMNodeImpl::dmNodeKind"), X("Unknown node type.")); } const XMLCh* FastXDMNodeImpl::dmNodeKind(void) const { switch(node_->nodeKind) { case FastXDMDocument::DOCUMENT: return document_string; case FastXDMDocument::ELEMENT: return element_string; case FastXDMDocument::TEXT: return text_string; case FastXDMDocument::COMMENT: return comment_string; case FastXDMDocument::PROCESSING_INSTRUCTION: return processing_instruction_string; case FastXDMDocument::MARKER: break; } XQThrow2(ItemException, X("FastXDMNodeImpl::dmNodeKind"), X("Unknown node type.")); } ATQNameOrDerived::Ptr FastXDMNodeImpl::dmNodeName(const DynamicContext* context) const { switch(node_->nodeKind) { case FastXDMDocument::ELEMENT: return context->getItemFactory()->createQName(node_->data.element.uri, node_->data.element.prefix, node_->data.element.localname, context); case FastXDMDocument::PROCESSING_INSTRUCTION: return context->getItemFactory()->createQName(XMLUni::fgZeroLenString, XMLUni::fgZeroLenString, node_->data.other.target, context); default: break; } return 0; } static inline void addStringValueToBuffer(const FastXDMDocument::Node *node, unsigned int endLevel, XMLBuffer& buffer) { for(; node->level > endLevel; ++node) { if(node->nodeKind == FastXDMDocument::TEXT) buffer.append(node->data.other.value); } } const XMLCh* FastXDMNodeImpl::dmStringValue(const DynamicContext* context) const { switch(node_->nodeKind) { case FastXDMDocument::DOCUMENT: case FastXDMDocument::ELEMENT: { XMLBuffer str(1023, context->getMemoryManager()); addStringValueToBuffer(node_ + 1, node_->level, str); return context->getMemoryManager()->getPooledString(str.getRawBuffer()); } case FastXDMDocument::TEXT: case FastXDMDocument::COMMENT: case FastXDMDocument::PROCESSING_INSTRUCTION: return node_->data.other.value; case FastXDMDocument::MARKER: break; } return XMLUni::fgZeroLenString; } static Sequence getListTypeTypedValue(const XMLCh *stringVal, DatatypeValidator *dtv, const DynamicContext* context) { AutoDelete > tokenVector(XMLString::tokenizeString(stringVal)); Sequence s(tokenVector->size(), context->getMemoryManager()); //the actual type we want DatatypeValidator* theItemTypeDTV = ((ListDatatypeValidator*)dtv)->getItemTypeDTV(); if(theItemTypeDTV->getType() == DatatypeValidator::Union) { RefVectorOf* membersDV = ((UnionDatatypeValidator*)theItemTypeDTV)->getMemberTypeValidators(); unsigned int size = (unsigned int) membersDV->size(); // find the first datatype in the union that validates the piece for ( unsigned int j = 0; j < tokenVector->size(); j++ ) { const XMLCh* szPiece=tokenVector->elementAt(j); bool bFound=false; for (unsigned int i=0; ielementAt(i); try { pDV->validate(szPiece, NULL, context->getMemoryManager()); const XMLCh* itemTypeDTVName = pDV->getTypeLocalName(); const XMLCh* itemTypeDTVUri = pDV->getTypeUri(); // TBD avoid double lookup of DatatypeValidator - jpcs s.addItem(context->getItemFactory()->createDerivedFromAtomicType(itemTypeDTVUri, itemTypeDTVName, szPiece, context)); bFound=true; break; } catch (XMLException&) { //absorbed } } if(!bFound) XQThrow2(ItemException, X("FastXDMNodeImpl::getListTypeTypedValue"), X("Value in list doesn't validate with any of the componenets of the union type")); } } else { const XMLCh* itemTypeDTVName = theItemTypeDTV->getTypeLocalName(); const XMLCh* itemTypeDTVUri = theItemTypeDTV->getTypeUri(); for ( unsigned int j = 0; j < tokenVector->size(); j++ ) s.addItem(context->getItemFactory()->createDerivedFromAtomicType(itemTypeDTVUri, itemTypeDTVName, tokenVector->elementAt(j), context)); } return s; } // Minimal implementation for resolving xs:QName and xs:NOTATION values from the // namespace bindings in an element class FastXDMNSResolverImpl : public XQillaNSResolver { public: FastXDMNSResolverImpl(const Node::Ptr &node, DynamicContext *context) : node_(node), context_(context) {} virtual const XMLCh* lookupNamespaceURI(const XMLCh* prefix) const { NodeTest test; test.setNodeName(prefix); test.setNameWildcard(); test.setTypeWildcard(); Item::Ptr found = node_->getAxisResult(XQStep::NAMESPACE, &test, context_, 0)->next(context_); if(found.notNull()) { return ((Node*)found.get())->dmStringValue(context_); } return 0; } virtual const XMLCh* lookupPrefix(const XMLCh* uri) const { return 0; } virtual void addNamespaceBinding(const XMLCh* prefix, const XMLCh* uri) {} virtual void release() {} protected: Node::Ptr node_; DynamicContext *context_; }; Sequence FastXDMNodeImpl::dmTypedValue(DynamicContext* context) const { switch(node_->nodeKind) { case FastXDMDocument::DOCUMENT: { XMLBuffer str(1023, context->getMemoryManager()); addStringValueToBuffer(node_ + 1, node_->level, str); return Sequence(context->getItemFactory()->createUntypedAtomic(str.getRawBuffer(), context), context->getMemoryManager()); } case FastXDMDocument::ELEMENT: { // Data Model, § 7.2.3 and 7.2.4 // If the nilled property is true, its typed-value is (). if(((const ATBooleanOrDerived*)dmNilled(context).get())->isTrue()) return Sequence(context->getMemoryManager()); const XMLCh *typeUri, *typeName; getTypeUriAndName(typeUri, typeName); XMLBuffer str(1023, context->getMemoryManager()); addStringValueToBuffer(node_ + 1, node_->level, str); // If the element is of type xdt:untyped or xs:anyType, its typed-value is its dm:string-value as an xdt:untypedAtomic. if((XPath2Utils::equals(typeName, DocumentCache::g_szUntyped) || XPath2Utils::equals(typeName, SchemaSymbols::fgATTVAL_ANYTYPE)) && XPath2Utils::equals(typeUri, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) { return Sequence(context->getItemFactory()->createUntypedAtomic(str.getRawBuffer(), context), context->getMemoryManager()); } FastXDMNSResolverImpl newNSScope(this, context); AutoNsScopeReset jan(context, &newNSScope); // If the element has a simple type or a complex type with simple content: it's typed value is compute // as described in 3.3.1.2 Atomic Value Type Names. The result is a sequence of zero or more atomic values // derived from the string-value of the node and its type in a way that is consistent with XML Schema validation. DatatypeValidator *dtv = context->getDocumentCache()->getDatatypeValidator(typeUri, typeName); if(dtv) { if(dtv->getType() == DatatypeValidator::List) return getListTypeTypedValue(str.getRawBuffer(), dtv, context); else { // TBD avoid double lookup of DatatypeValidator - jpcs return Sequence(context->getItemFactory()->createDerivedFromAtomicType(typeUri, typeName, str.getRawBuffer(), context), context->getMemoryManager()); } } ComplexTypeInfo *cti = context->getDocumentCache()->getComplexTypeInfo(typeUri, typeName); assert(cti); switch(cti->getContentType()) { case SchemaElementDecl::Simple: { DatatypeValidator *dtv = cti->getDatatypeValidator(); assert(dtv != 0); if(dtv->getType() == DatatypeValidator::List) return getListTypeTypedValue(str.getRawBuffer(), dtv, context); else { // TBD avoid double lookup of DatatypeValidator - jpcs return Sequence(context->getItemFactory()->createDerivedFromAtomicType(dtv->getTypeUri(), dtv->getTypeLocalName(), str.getRawBuffer(), context), context->getMemoryManager()); } } case SchemaElementDecl::Empty: // If the element is empty: its typed-value is the empty sequence. return Sequence(context->getMemoryManager()); case SchemaElementDecl::Mixed_Simple: case SchemaElementDecl::Mixed_Complex: // If the element has a complex type with mixed content, its typed-value is its dm:string-value as an xdt:untypedAtomic. return Sequence(context->getItemFactory()->createUntypedAtomic(str.getRawBuffer(), context), context->getMemoryManager()); case SchemaElementDecl::Children: break; } // Otherwise, the element must be a complex type with element-only content. // The typed-value of such an element is undefined. Attempting to access this property with the dm:typed-value // accessor always raises an error. XQThrow2(ItemException, X("NodeImpl::dmTypedValue"), X("Attempt to get typed value from a complex type with non-mixed complex content [err:FOTY0012]")); } case FastXDMDocument::TEXT: return Sequence(context->getItemFactory()->createUntypedAtomic(node_->data.other.value, context), context->getMemoryManager()); case FastXDMDocument::COMMENT: case FastXDMDocument::PROCESSING_INSTRUCTION: return Sequence(context->getItemFactory()->createString(node_->data.other.value, context), context->getMemoryManager()); case FastXDMDocument::MARKER: break; } return Sequence(context->getMemoryManager()); } Sequence FastXDMNodeImpl::dmDocumentURI(const DynamicContext* context) const { if(node_->nodeKind != FastXDMDocument::DOCUMENT) return Sequence(context->getMemoryManager()); const XMLCh* docURI = node_->data.document.documentURI; if(docURI == NULL || *docURI == 0) return Sequence(context->getMemoryManager()); return Sequence(context->getItemFactory()->createAnyURI(docURI, context), context->getMemoryManager()); } ATQNameOrDerived::Ptr FastXDMNodeImpl::dmTypeName(const DynamicContext* context) const { switch(node_->nodeKind) { case FastXDMDocument::DOCUMENT: case FastXDMDocument::COMMENT: case FastXDMDocument::PROCESSING_INSTRUCTION: case FastXDMDocument::MARKER: break; case FastXDMDocument::ELEMENT: case FastXDMDocument::TEXT: const XMLCh* typeUri, *typeName; getTypeUriAndName(typeUri, typeName); return context->getItemFactory()->createQName(typeUri, XMLUni::fgZeroLenString, typeName, context); } return 0; } ATBooleanOrDerived::Ptr FastXDMNodeImpl::dmNilled(const DynamicContext* context) const { if(node_->nodeKind != FastXDMDocument::ELEMENT) return 0; return context->getItemFactory()->createBoolean(false, context); } bool FastXDMNodeImpl::lessThan(const Node::Ptr &other, const DynamicContext *context) const { const FastXDMNodeImpl *otherImpl = (const FastXDMNodeImpl*)other->getInterface(fastxdm_string); if(otherImpl != 0) { // Order first by the address of the FastXDMDocument object if(document_.get() != otherImpl->getDocument().get()) return document_.get() < otherImpl->getDocument().get(); // Then order by the node index return node_ < otherImpl->getNode(); } const FastXDMAttributeNodeImpl *attrImpl = (const FastXDMAttributeNodeImpl*)other-> getInterface(FastXDMAttributeNodeImpl::fastxdm_attr_string); if(attrImpl != 0) { // Order first by the address of the FastXDMDocument object if(document_.get() != attrImpl->getDocument().get()) return document_.get() < attrImpl->getDocument().get(); // Then order by the node index if(node_ == attrImpl->getAttribute()->owner.ptr) return true; return node_ < attrImpl->getAttribute()->owner.ptr; } const FastXDMNamespaceNodeImpl *nsImpl = (const FastXDMNamespaceNodeImpl*)other->getInterface(FastXDMNamespaceNodeImpl::fastxdm_ns_string); if(nsImpl != 0) { if(nsImpl->getOwner().isNull()) return false; return lessThan(nsImpl->getOwner(), context); } // It's not a Fast XDM implementation Node, so it can't // be from the same tree as us - jpcs // TBD find a better way to order these - jpcs // Order them according to the address of their roots return this->root(context).get() < other->root(context).get(); } bool FastXDMNodeImpl::equals(const Node::Ptr &other) const { const FastXDMNodeImpl *otherImpl = (const FastXDMNodeImpl*)other->getInterface(fastxdm_string); if(otherImpl == 0) return false; if(document_.get() != otherImpl->getDocument().get()) return false; return node_ == otherImpl->getNode(); } bool FastXDMNodeImpl::uniqueLessThan(const Node::Ptr &other, const DynamicContext *context) const { return lessThan(other, context); } ATBooleanOrDerived::Ptr FastXDMNodeImpl::dmIsId(const DynamicContext* context) const { switch(node_->nodeKind) { case FastXDMDocument::ELEMENT: if(hasInstanceOfType(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, XMLUni::fgIDString, context)) return context->getItemFactory()->createBoolean(true, context); case FastXDMDocument::TEXT: case FastXDMDocument::DOCUMENT: case FastXDMDocument::COMMENT: case FastXDMDocument::PROCESSING_INSTRUCTION: case FastXDMDocument::MARKER: break; } return context->getItemFactory()->createBoolean(false, context); } ATBooleanOrDerived::Ptr FastXDMNodeImpl::dmIsIdRefs(const DynamicContext* context) const { switch(node_->nodeKind) { case FastXDMDocument::ELEMENT: if(hasInstanceOfType(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, XMLUni::fgIDRefString, context) || hasInstanceOfType(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, XMLUni::fgIDRefsString, context)) return context->getItemFactory()->createBoolean(true, context); case FastXDMDocument::TEXT: case FastXDMDocument::DOCUMENT: case FastXDMDocument::COMMENT: case FastXDMDocument::PROCESSING_INSTRUCTION: case FastXDMDocument::MARKER: break; } return context->getItemFactory()->createBoolean(false, context); } void FastXDMNodeImpl::getTypeUriAndName(const XMLCh*& uri, const XMLCh*& name) const { switch(node_->nodeKind) { case FastXDMDocument::ELEMENT: uri = node_->data.element.typeURI; name = node_->data.element.typeName; return; case FastXDMDocument::TEXT: uri = SchemaSymbols::fgURI_SCHEMAFORSCHEMA; name = ATUntypedAtomic::fgDT_UNTYPEDATOMIC; return; case FastXDMDocument::DOCUMENT: case FastXDMDocument::COMMENT: case FastXDMDocument::PROCESSING_INSTRUCTION: case FastXDMDocument::MARKER: break; } XQThrow2(ItemException, X("FastXDMNodeImpl::getTypeUriAndName"), X("Tried to get type information on Node other than element, attribute or text")); } const XMLCh* FastXDMNodeImpl::getTypeName() const { const XMLCh* uri, *name; getTypeUriAndName(uri,name); return name; } const XMLCh* FastXDMNodeImpl::getTypeURI() const { const XMLCh* uri, *name; getTypeUriAndName(uri,name); return uri; } static inline Item::Ptr testNode(const FastXDMDocument::Ptr &document, const FastXDMDocument::Node *node, const NodeTest *nodeTest, DynamicContext *context) { if(nodeTest == 0) return new FastXDMNodeImpl(document, node); SequenceType::ItemType *itemType = nodeTest->getItemType(); if(itemType != 0) { Node::Ptr result = new FastXDMNodeImpl(document, node); if(itemType->matches(result, context)) { return result; } } switch(node->nodeKind) { case FastXDMDocument::DOCUMENT: { if(!nodeTest->getTypeWildcard() && nodeTest->getNodeType() != Node::document_string) return 0; if(!nodeTest->getNameWildcard() || !nodeTest->getNamespaceWildcard()) return 0; break; } case FastXDMDocument::ELEMENT: { if(nodeTest->getNodeType() != Node::element_string && !nodeTest->getTypeWildcard()) return 0; if(!XPath2Utils::equals(node->data.element.localname, nodeTest->getNodeName()) && !nodeTest->getNameWildcard()) return 0; if(!XPath2Utils::equals(node->data.element.uri, nodeTest->getNodeUri()) && !nodeTest->getNamespaceWildcard()) return 0; break; } case FastXDMDocument::TEXT: { if(nodeTest->getNodeType() != Node::text_string) { if(!nodeTest->getTypeWildcard() || nodeTest->getHasChildren()) return 0; } if(!nodeTest->getNameWildcard() || !nodeTest->getNamespaceWildcard()) return 0; break; } case FastXDMDocument::PROCESSING_INSTRUCTION: { if(nodeTest->getTypeWildcard()) { if(nodeTest->getHasChildren()) return 0; } else if(nodeTest->getNodeType() != Node::processing_instruction_string) return 0; if(!nodeTest->getNameWildcard() && !XPath2Utils::equals(node->data.other.target, nodeTest->getNodeName())) return 0; if(!nodeTest->getNamespaceWildcard()) return 0; break; } case FastXDMDocument::COMMENT: { if(nodeTest->getTypeWildcard()) { if(nodeTest->getHasChildren()) return 0; } else if(nodeTest->getNodeType() != Node::comment_string) return 0; if(!nodeTest->getNameWildcard() || !nodeTest->getNamespaceWildcard()) return 0; break; } case FastXDMDocument::MARKER: return 0; } return new FastXDMNodeImpl(document, node); } static inline Item::Ptr testAttribute(const FastXDMDocument::Ptr &document, const FastXDMDocument::Attribute *attr, const NodeTest *nodeTest, DynamicContext *context) { if(nodeTest != 0) { SequenceType::ItemType *itemType = nodeTest->getItemType(); if(itemType != 0) { Node::Ptr result = new FastXDMAttributeNodeImpl(document, attr); if(itemType->matches(result, context)) { return result; } } if(nodeTest->getNodeType() != Node::attribute_string) { if(!nodeTest->getTypeWildcard() || nodeTest->getHasChildren()) return 0; } if(!XPath2Utils::equals(attr->localname, nodeTest->getNodeName()) && !nodeTest->getNameWildcard()) return 0; if(!XPath2Utils::equals(attr->uri, nodeTest->getNodeUri()) && !nodeTest->getNamespaceWildcard()) return 0; } return new FastXDMAttributeNodeImpl(document, attr); } static inline bool testNamespace(const FastXDMNamespaceNodeImpl::Ptr &ns, const NodeTest *nodeTest, DynamicContext *context) { if(nodeTest != 0) { return nodeTest->filterNode(ns, context); } return true; } class FastXDMAxis : public ResultImpl { public: FastXDMAxis(const LocationInfo *info, const FastXDMDocument::Ptr &document, const FastXDMDocument::Node *node, const NodeTest *nodeTest) : ResultImpl(info), document_(document), node_(node), nodeTest_(nodeTest) { } Item::Ptr next(DynamicContext *context) { const FastXDMDocument::Node *node = 0; while((node = nextNode()) != 0) { context->testInterrupt(); Item::Ptr result = testNode(document_, node, nodeTest_, context); if(result.notNull()) return result; } return 0; } virtual const FastXDMDocument::Node *nextNode() = 0; virtual std::string asString(DynamicContext *context, int indent) const { return ""; } protected: FastXDMDocument::Ptr document_; const FastXDMDocument::Node *node_; const NodeTest *nodeTest_; }; class FastXDMChildAxis : public FastXDMAxis { public: FastXDMChildAxis(const LocationInfo *info, const FastXDMDocument::Ptr &document, const FastXDMDocument::Node *node, const NodeTest *nodeTest) : FastXDMAxis(info, document, node, nodeTest), toDo_(true) { } const FastXDMDocument::Node *nextNode() { if(toDo_) { toDo_ = false; if((node_ + 1)->level <= node_->level) node_ = 0; else ++node_; } else if(node_ != 0) node_ = node_->nextSibling.ptr; return node_; } protected: bool toDo_; }; class FastXDMDescendantAxis : public FastXDMAxis { public: FastXDMDescendantAxis(const LocationInfo *info, const FastXDMDocument::Ptr &document, const FastXDMDocument::Node *node, const NodeTest *nodeTest) : FastXDMAxis(info, document, node, nodeTest), endLevel_(node->level) { } const FastXDMDocument::Node *nextNode() { if(node_ == 0) return 0; ++node_; if(node_->level <= endLevel_) { node_ = 0; return 0; } return node_; } protected: unsigned int endLevel_; }; class FastXDMDescendantOrSelfAxis : public FastXDMAxis { public: FastXDMDescendantOrSelfAxis(const LocationInfo *info, const FastXDMDocument::Ptr &document, const FastXDMDocument::Node *node, const NodeTest *nodeTest) : FastXDMAxis(info, document, node, nodeTest), endLevel_(node->level) { } const FastXDMDocument::Node *nextNode() { if(node_ == 0) return 0; const FastXDMDocument::Node *ret = node_; ++node_; if(node_->level <= endLevel_) { node_ = 0; } return ret; } protected: unsigned int endLevel_; }; class FastXDMAncestorAxis : public FastXDMAxis { public: FastXDMAncestorAxis(const LocationInfo *info, const FastXDMDocument::Ptr &document, const FastXDMDocument::Node *node, const NodeTest *nodeTest) : FastXDMAxis(info, document, node, nodeTest) { } const FastXDMDocument::Node *nextNode() { if(node_ == 0) return 0; node_ = FastXDMDocument::getParent(node_); return node_; } }; class FastXDMAncestorOrSelfAxis : public FastXDMAxis { public: FastXDMAncestorOrSelfAxis(const LocationInfo *info, const FastXDMDocument::Ptr &document, const FastXDMDocument::Node *node, const NodeTest *nodeTest) : FastXDMAxis(info, document, node, nodeTest), toDo_(true) { } const FastXDMDocument::Node *nextNode() { if(toDo_) { toDo_ = false; } else if(node_ != 0) { node_ = FastXDMDocument::getParent(node_); } return node_; } protected: bool toDo_; }; class FastXDMParentAxis : public FastXDMAxis { public: FastXDMParentAxis(const LocationInfo *info, const FastXDMDocument::Ptr &document, const FastXDMDocument::Node *node, const NodeTest *nodeTest) : FastXDMAxis(info, document, node, nodeTest) { } const FastXDMDocument::Node *nextNode() { if(node_ == 0) return 0; const FastXDMDocument::Node *parent = FastXDMDocument::getParent(node_); node_ = 0; return parent; } }; class FastXDMFollowingSiblingAxis : public FastXDMAxis { public: FastXDMFollowingSiblingAxis(const LocationInfo *info, const FastXDMDocument::Ptr &document, const FastXDMDocument::Node *node, const NodeTest *nodeTest) : FastXDMAxis(info, document, node, nodeTest) { } const FastXDMDocument::Node *nextNode() { if(node_ == 0) return 0; node_ = node_->nextSibling.ptr; return node_; } }; class FastXDMPrecedingSiblingAxis : public FastXDMAxis { public: FastXDMPrecedingSiblingAxis(const LocationInfo *info, const FastXDMDocument::Ptr &document, const FastXDMDocument::Node *node, const NodeTest *nodeTest) : FastXDMAxis(info, document, node, nodeTest), level_(node->level) { } const FastXDMDocument::Node *nextNode() { if(node_ == 0 || node_->level == 0) { node_ = 0; return 0; } --node_; while(node_->level > level_) --node_; if(node_->level < level_) { node_ = 0; } return node_; } protected: unsigned int level_; }; class FastXDMFollowingAxis : public FastXDMAxis { public: FastXDMFollowingAxis(const LocationInfo *info, const FastXDMDocument::Ptr &document, const FastXDMDocument::Node *node, const NodeTest *nodeTest) : FastXDMAxis(info, document, node, nodeTest), toDo_(true) { } FastXDMFollowingAxis(const LocationInfo *info, const FastXDMDocument::Ptr &document, const FastXDMDocument::Attribute *attr, const NodeTest *nodeTest) : FastXDMAxis(info, document, attr->owner.ptr, nodeTest), toDo_(false) { } FastXDMFollowingAxis(const LocationInfo *info, const FastXDMDocument::Ptr &document, const FastXDMNamespaceNodeImpl *ns, const NodeTest *nodeTest) : FastXDMAxis(info, document, ns->getOwner()->getNode(), nodeTest), toDo_(false) { } const FastXDMDocument::Node *nextNode() { if(node_ == 0) return 0; if(toDo_) { toDo_ = false; // Find the next node in document order after node_, // that isn't one of it's descendants const FastXDMDocument::Node *result = node_->nextSibling.ptr; if(result == 0) { result = node_ + 1; while(result->level > node_->level) ++result; } node_ = result; } else { ++node_; } if(node_->nodeKind == FastXDMDocument::MARKER) { node_ = 0; return 0; } return node_; } protected: bool toDo_; }; class FastXDMPrecedingAxis : public FastXDMAxis { public: FastXDMPrecedingAxis(const LocationInfo *info, const FastXDMDocument::Ptr &document, const FastXDMDocument::Node *node, const NodeTest *nodeTest) : FastXDMAxis(info, document, node, nodeTest), level_(node->level - 1) { } const FastXDMDocument::Node *nextNode() { if(node_ == 0) return 0; while(node_->level != 0) { --node_; // Skip the ancestors of the context node if(node_->level == level_) { level_ = node_->level - 1; continue; } return node_; } node_ = 0; return 0; } protected: unsigned int level_; }; class FastXDMSelfAxis : public FastXDMAxis { public: FastXDMSelfAxis(const LocationInfo *info, const FastXDMDocument::Ptr &document, const FastXDMDocument::Node *node, const NodeTest *nodeTest) : FastXDMAxis(info, document, node, nodeTest) { } const FastXDMDocument::Node *nextNode() { const FastXDMDocument::Node *result = node_; node_ = 0; return result; } }; class FastXDMAttributeAxis : public ResultImpl { public: FastXDMAttributeAxis(const LocationInfo *info, const FastXDMDocument::Ptr &document, const FastXDMDocument::Node *node, const NodeTest *nodeTest) : ResultImpl(info), document_(document), node_(node), attr_(node->data.element.attributes.ptr), nodeTest_(nodeTest) { } Item::Ptr next(DynamicContext *context) { const FastXDMDocument::Attribute *attr = attr_; while(attr->owner.ptr == node_) { context->testInterrupt(); ++attr_; Item::Ptr result = testAttribute(document_, attr, nodeTest_, context); if(result.notNull()) return result; attr = attr_; } return 0; } virtual std::string asString(DynamicContext *context, int indent) const { return ""; } protected: FastXDMDocument::Ptr document_; const FastXDMDocument::Node *node_; const FastXDMDocument::Attribute *attr_; const NodeTest *nodeTest_; }; class FastXDMNamespaceAxis : public ResultImpl { public: FastXDMNamespaceAxis(const LocationInfo *info, const FastXDMNodeImpl::Ptr &node, const NodeTest *nodeTest) : ResultImpl(info), owner_(node), node_(node->getNode()), attr_(0), ns_(0), order_(0), nodeTest_(nodeTest), state_(CHECK_ELEMENT) { } Item::Ptr next(DynamicContext *context) { FastXDMNamespaceNodeImpl::Ptr result; while(result.isNull() || !testNamespace(result, nodeTest_, context)) { result = 0; switch(state_) { case CHECK_ELEMENT: if(done_.insert(node_->data.element.prefix).second && node_->data.element.uri != 0) { result = new FastXDMNamespaceNodeImpl(owner_, node_->data.element.prefix, node_->data.element.uri, order_++); } state_ = CHECK_ATTR; attr_ = node_->data.element.attributes.ptr; break; case CHECK_ATTR: if(attr_ != 0 && attr_->owner.ptr == node_) { if(attr_->uri != 0 && done_.insert(attr_->prefix).second) { result = new FastXDMNamespaceNodeImpl(owner_, attr_->prefix, attr_->uri, order_++); } ++attr_; } else { state_ = CHECK_NS; ns_ = node_->data.element.namespaces.ptr; } break; case CHECK_NS: if(ns_ != 0 && ns_->owner.ptr == node_) { if(done_.insert(ns_->prefix).second && ns_->uri != 0) { result = new FastXDMNamespaceNodeImpl(owner_, ns_->prefix, ns_->uri, order_++); } ++ns_; } else { state_ = CHECK_ELEMENT; node_ = FastXDMDocument::getParent(node_); if(node_ == 0 || node_->nodeKind != FastXDMDocument::ELEMENT) { state_ = DO_XML; } } break; case DO_XML: if(done_.insert(XMLUni::fgXMLString).second) { result = new FastXDMNamespaceNodeImpl(owner_, XMLUni::fgXMLString, XMLUni::fgXMLURIName, order_++); } state_ = DONE; owner_ = 0; break; case DONE: return 0; } } return result; } virtual std::string asString(DynamicContext *context, int indent) const { return ""; } protected: FastXDMNodeImpl::Ptr owner_; const FastXDMDocument::Node *node_; const FastXDMDocument::Attribute *attr_; const FastXDMDocument::Namespace *ns_; unsigned int order_; const NodeTest *nodeTest_; enum { CHECK_ELEMENT, CHECK_ATTR, CHECK_NS, DO_XML, DONE } state_; typedef std::set DoneSet; DoneSet done_; }; Node::Ptr FastXDMNodeImpl::root(const DynamicContext* context) const { return new FastXDMNodeImpl(document_, document_->getNode(0)); } Node::Ptr FastXDMNodeImpl::dmParent(const DynamicContext* context) const { if(node_->level == 0) return 0; const FastXDMDocument::Node *parent = node_ - 1; while(parent->level >= node_->level) --parent; return new FastXDMNodeImpl(document_, parent); } Result FastXDMNodeImpl::dmAttributes(const DynamicContext* context, const LocationInfo *info) const { if(node_->nodeKind == FastXDMDocument::ELEMENT && node_->data.element.attributes.ptr != 0) { return new FastXDMAttributeAxis(info, document_, node_, 0); } return 0; } Result FastXDMNodeImpl::dmNamespaceNodes(const DynamicContext* context, const LocationInfo *info) const { if(node_->nodeKind == FastXDMDocument::ELEMENT) { return new FastXDMNamespaceAxis(info, this, 0); } return 0; } Result FastXDMNodeImpl::dmChildren(const DynamicContext *context, const LocationInfo *info) const { if(node_->nodeKind == FastXDMDocument::ELEMENT || node_->nodeKind == FastXDMDocument::DOCUMENT) { return new FastXDMChildAxis(info, document_, node_, 0); } return 0; } Result FastXDMNodeImpl::getAxisResult(XQStep::Axis axis, const NodeTest *nodeTest, const DynamicContext *context, const LocationInfo *info) const { switch(axis) { case XQStep::ANCESTOR: { return new FastXDMAncestorAxis(info, document_, node_, nodeTest); } case XQStep::ANCESTOR_OR_SELF: { return new FastXDMAncestorOrSelfAxis(info, document_, node_, nodeTest); } case XQStep::ATTRIBUTE: { if(node_->nodeKind == FastXDMDocument::ELEMENT && node_->data.element.attributes.ptr != 0) { return new FastXDMAttributeAxis(info, document_, node_, nodeTest); } break; } case XQStep::CHILD: { if(node_->nodeKind == FastXDMDocument::ELEMENT || node_->nodeKind == FastXDMDocument::DOCUMENT) { return new FastXDMChildAxis(info, document_, node_, nodeTest); } break; } case XQStep::DESCENDANT: { if(node_->nodeKind == FastXDMDocument::ELEMENT || node_->nodeKind == FastXDMDocument::DOCUMENT) { return new FastXDMDescendantAxis(info, document_, node_, nodeTest); } break; } case XQStep::DESCENDANT_OR_SELF: { return new FastXDMDescendantOrSelfAxis(info, document_, node_, nodeTest); } case XQStep::FOLLOWING: { return new FastXDMFollowingAxis(info, document_, node_, nodeTest); } case XQStep::FOLLOWING_SIBLING: { return new FastXDMFollowingSiblingAxis(info, document_, node_, nodeTest); } case XQStep::NAMESPACE: { if(node_->nodeKind == FastXDMDocument::ELEMENT) { return new FastXDMNamespaceAxis(info, this, nodeTest); } break; } case XQStep::PARENT: { return new FastXDMParentAxis(info, document_, node_, nodeTest); } case XQStep::PRECEDING: { return new FastXDMPrecedingAxis(info, document_, node_, nodeTest); } case XQStep::PRECEDING_SIBLING: { return new FastXDMPrecedingSiblingAxis(info, document_, node_, nodeTest); } case XQStep::SELF: { return new FastXDMSelfAxis(info, document_, node_, nodeTest); } } return 0; } //////////////////////////////////////////////////////////////////////////////////////////////////// const XMLCh FastXDMAttributeNodeImpl::fastxdm_attr_string[] = { 'f', 'a', 's', 't', 'x', 'd', 'm', '_', 'a', 't', 't', 'r', 0 }; FastXDMAttributeNodeImpl::FastXDMAttributeNodeImpl(const FastXDMDocument::Ptr &document, const FastXDMDocument::Attribute *attr) : document_(document), attr_(attr) { } FastXDMAttributeNodeImpl::~FastXDMAttributeNodeImpl() { } void *FastXDMAttributeNodeImpl::getInterface(const XMLCh *name) const { if(name == fastxdm_attr_string) return (void *)this; return 0; } const XMLCh* FastXDMAttributeNodeImpl::asString(const DynamicContext* context) const { XMLBuffer buffer(1023, context->getMemoryManager()); buffer.append(X("{")); buffer.append(attr_->uri); buffer.append(X("}")); buffer.append(attr_->localname); buffer.append(X("=\"")); buffer.append(attr_->value); buffer.append(X("\"")); return XMLString::replicate(buffer.getRawBuffer(), context->getMemoryManager()); } void FastXDMAttributeNodeImpl::generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS, bool preserveType) const { FastXDMDocument::toEvents(attr_, events, preserveType); } bool FastXDMAttributeNodeImpl::hasInstanceOfType(const XMLCh* typeURI, const XMLCh* typeName, const DynamicContext* context) const { const XMLCh* uri, *name; getTypeUriAndName(uri, name); return context->isTypeOrDerivedFromType(uri, name, typeURI, typeName); } Sequence FastXDMAttributeNodeImpl::dmBaseURI(const DynamicContext* context) const { Node::Ptr parent = dmParent(context); if(parent.notNull()) { return parent->dmBaseURI(context); } return Sequence(context->getMemoryManager()); } const XMLCh* FastXDMAttributeNodeImpl::dmNodeKind(void) const { return attribute_string; } ATQNameOrDerived::Ptr FastXDMAttributeNodeImpl::dmNodeName(const DynamicContext* context) const { return context->getItemFactory()->createQName(attr_->uri, attr_->prefix, attr_->localname, context); } const XMLCh* FastXDMAttributeNodeImpl::dmStringValue(const DynamicContext* context) const { return attr_->value; } Sequence FastXDMAttributeNodeImpl::dmTypedValue(DynamicContext* context) const { // Data Model, § 7.3.3 and 7.3.4 const XMLCh* typeUri, *typeName; getTypeUriAndName(typeUri, typeName); // If the attribute is of type xdt:untypedAtomic: its typed-value is its dm:string-value as an xdt:untypedAtomic if(XPath2Utils::equals(typeName, ATUntypedAtomic::fgDT_UNTYPEDATOMIC) && XPath2Utils::equals(typeUri, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) { return Sequence(context->getItemFactory()->createUntypedAtomic(attr_->value, context), context->getMemoryManager()); } FastXDMNSResolverImpl newNSScope(dmParent(context), context); AutoNsScopeReset jan(context, &newNSScope); // Otherwise: its typed-value is a sequence of zero or more atomic values derived from the string-value of // the node and its type in a way that is consistent with XML Schema validation. The type of each atomic value // is assigned as described in 3.3.1.2 Atomic Value Type Names DatatypeValidator *dtv = context->getDocumentCache()->getDatatypeValidator(typeUri, typeName); assert(dtv); if(dtv->getType() == DatatypeValidator::List) return getListTypeTypedValue(attr_->value, dtv, context); // TBD avoid double lookup of DatatypeValidator - jpcs return Sequence(context->getItemFactory()->createDerivedFromAtomicType(typeUri, typeName, attr_->value, context), context->getMemoryManager()); } Sequence FastXDMAttributeNodeImpl::dmDocumentURI(const DynamicContext* context) const { return Sequence(context->getMemoryManager()); } ATQNameOrDerived::Ptr FastXDMAttributeNodeImpl::dmTypeName(const DynamicContext* context) const { const XMLCh* typeUri, *typeName; getTypeUriAndName(typeUri, typeName); return context->getItemFactory()->createQName(typeUri, XMLUni::fgZeroLenString, typeName, context); } ATBooleanOrDerived::Ptr FastXDMAttributeNodeImpl::dmNilled(const DynamicContext* context) const { return 0; } bool FastXDMAttributeNodeImpl::lessThan(const Node::Ptr &other, const DynamicContext *context) const { const FastXDMAttributeNodeImpl *otherImpl = (const FastXDMAttributeNodeImpl*)other->getInterface(fastxdm_attr_string); if(otherImpl != 0) { // Order first by the address of the FastXDMDocument object if(document_.get() != otherImpl->getDocument().get()) return document_.get() < otherImpl->getDocument().get(); // Then order by the node index return attr_ < otherImpl->getAttribute(); } const FastXDMNodeImpl *nodeImpl = (const FastXDMNodeImpl*)other->getInterface(FastXDMNodeImpl::fastxdm_string); if(nodeImpl != 0) { // Order first by the address of the FastXDMDocument object if(document_.get() != nodeImpl->getDocument().get()) return document_.get() < nodeImpl->getDocument().get(); // Then order by the node index if(attr_->owner.ptr == nodeImpl->getNode()) return false; return attr_->owner.ptr < nodeImpl->getNode(); } const FastXDMNamespaceNodeImpl *nsImpl = (const FastXDMNamespaceNodeImpl*)other-> getInterface(FastXDMNamespaceNodeImpl::fastxdm_ns_string); if(nsImpl != 0) { if(nsImpl->getOwner().isNull()) return false; // Order first by the address of the FastXDMDocument object if(document_.get() != nsImpl->getOwner()->getDocument().get()) return document_.get() < nsImpl->getOwner()->getDocument().get(); // Then order by the node index if(attr_->owner.ptr == nsImpl->getOwner()->getNode()) return true; return attr_->owner.ptr < nsImpl->getOwner()->getNode(); } // It's not a Fast XDM implementation Node, so it can't // be from the same tree as us - jpcs // TBD find a better way to order these - jpcs // Order them according to the address of their roots return this->root(context).get() < other->root(context).get(); } bool FastXDMAttributeNodeImpl::equals(const Node::Ptr &other) const { const FastXDMAttributeNodeImpl *otherImpl = (const FastXDMAttributeNodeImpl*)other->getInterface(fastxdm_attr_string); if(otherImpl == 0) return false; if(document_.get() != otherImpl->getDocument().get()) return false; return attr_ == otherImpl->getAttribute(); } bool FastXDMAttributeNodeImpl::uniqueLessThan(const Node::Ptr &other, const DynamicContext *context) const { return lessThan(other, context); } ATBooleanOrDerived::Ptr FastXDMAttributeNodeImpl::dmIsId(const DynamicContext* context) const { if(hasInstanceOfType(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, XMLUni::fgIDString, context)) return context->getItemFactory()->createBoolean(true, context); return context->getItemFactory()->createBoolean(false, context); } ATBooleanOrDerived::Ptr FastXDMAttributeNodeImpl::dmIsIdRefs(const DynamicContext* context) const { if(hasInstanceOfType(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, XMLUni::fgIDRefString, context) || hasInstanceOfType(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, XMLUni::fgIDRefsString, context)) return context->getItemFactory()->createBoolean(true, context); return context->getItemFactory()->createBoolean(false, context); } void FastXDMAttributeNodeImpl::getTypeUriAndName(const XMLCh*& uri, const XMLCh*& name) const { uri = attr_->typeURI; name = attr_->typeName; } const XMLCh* FastXDMAttributeNodeImpl::getTypeName() const { const XMLCh* uri, *name; getTypeUriAndName(uri,name); return name; } const XMLCh* FastXDMAttributeNodeImpl::getTypeURI() const { const XMLCh* uri, *name; getTypeUriAndName(uri,name); return uri; } class FastXDMAttributeAncestorOrSelfAxis : public ResultImpl { public: FastXDMAttributeAncestorOrSelfAxis(const LocationInfo *info, const FastXDMDocument::Ptr &document, const FastXDMDocument::Attribute *attr, const NodeTest *nodeTest) : ResultImpl(info), document_(document), attr_(attr), node_(attr->owner.ptr), nodeTest_(nodeTest) { } Item::Ptr next(DynamicContext *context) { if(attr_ != 0) { Item::Ptr result = testAttribute(document_, attr_, nodeTest_, context); attr_ = 0; if(result.notNull()) return result; } while(node_ != 0) { Item::Ptr result = testNode(document_, node_, nodeTest_, context); node_ = FastXDMDocument::getParent(node_); if(result.notNull()) return result; } return 0; } virtual std::string asString(DynamicContext *context, int indent) const { return ""; } protected: FastXDMDocument::Ptr document_; const FastXDMDocument::Attribute *attr_; const FastXDMDocument::Node *node_; const NodeTest *nodeTest_; }; Node::Ptr FastXDMAttributeNodeImpl::root(const DynamicContext* context) const { if(document_->getNumNodes() == 0) return this; return new FastXDMNodeImpl(document_, document_->getNode(0)); } Node::Ptr FastXDMAttributeNodeImpl::dmParent(const DynamicContext* context) const { if(attr_->owner.ptr == 0) return 0; return new FastXDMNodeImpl(document_, attr_->owner.ptr); } Result FastXDMAttributeNodeImpl::dmAttributes(const DynamicContext* context, const LocationInfo *info) const { return 0; } Result FastXDMAttributeNodeImpl::dmNamespaceNodes(const DynamicContext* context, const LocationInfo *info) const { return 0; } Result FastXDMAttributeNodeImpl::dmChildren(const DynamicContext *context, const LocationInfo *info) const { return 0; } Result FastXDMAttributeNodeImpl::getAxisResult(XQStep::Axis axis, const NodeTest *nodeTest, const DynamicContext *context, const LocationInfo *info) const { switch(axis) { case XQStep::ANCESTOR: { if(attr_->owner.ptr == 0) return 0; return new FastXDMAncestorOrSelfAxis(info, document_, attr_->owner.ptr, nodeTest); } case XQStep::ANCESTOR_OR_SELF: { return new FastXDMAttributeAncestorOrSelfAxis(info, document_, attr_, nodeTest); } case XQStep::FOLLOWING: { return new FastXDMFollowingAxis(info, document_, attr_, nodeTest); } case XQStep::PARENT: { if(attr_->owner.ptr == 0) return 0; return new FastXDMSelfAxis(info, document_, attr_->owner.ptr, nodeTest); } case XQStep::PRECEDING: { if(attr_->owner.ptr == 0) return 0; return new FastXDMPrecedingAxis(info, document_, attr_->owner.ptr, nodeTest); } case XQStep::DESCENDANT_OR_SELF: case XQStep::SELF: { return nodeTest->filterResult((Item::Ptr)this, info); } case XQStep::ATTRIBUTE: case XQStep::CHILD: case XQStep::DESCENDANT: case XQStep::FOLLOWING_SIBLING: case XQStep::NAMESPACE: case XQStep::PRECEDING_SIBLING: break; } return 0; } //////////////////////////////////////////////////////////////////////////////////////////////////// const XMLCh FastXDMNamespaceNodeImpl::fastxdm_ns_string[] = { 'f', 'a', 's', 't', 'x', 'd', 'm', '_', 'n', 's', 0 }; FastXDMNamespaceNodeImpl::FastXDMNamespaceNodeImpl(const FastXDMNodeImpl::Ptr &owner, const XMLCh *prefix, const XMLCh *uri, unsigned int order) : owner_(owner), prefix_(prefix), uri_(uri), order_(order) { } FastXDMNamespaceNodeImpl::~FastXDMNamespaceNodeImpl() { } void *FastXDMNamespaceNodeImpl::getInterface(const XMLCh *name) const { if(name == fastxdm_ns_string) return (void *)this; return 0; } const XMLCh* FastXDMNamespaceNodeImpl::asString(const DynamicContext* context) const { XMLBuffer buffer(1023, context->getMemoryManager()); buffer.append(X("[")); buffer.append(prefix_); buffer.append(X("=\"")); buffer.append(uri_); buffer.append(X("\"]")); return XMLString::replicate(buffer.getRawBuffer(), context->getMemoryManager()); } void FastXDMNamespaceNodeImpl::generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS, bool preserveType) const { events->namespaceEvent(prefix_, uri_); } bool FastXDMNamespaceNodeImpl::hasInstanceOfType(const XMLCh* typeURI, const XMLCh* typeName, const DynamicContext* context) const { XQThrow2(ItemException, X("NodeImpl::getTypeUriAndName"), X("Tried to get type informations on Node other than DOMElement, DOMAttribute or DOMText")); } Sequence FastXDMNamespaceNodeImpl::dmBaseURI(const DynamicContext* context) const { return Sequence(context->getMemoryManager()); } const XMLCh* FastXDMNamespaceNodeImpl::dmNodeKind(void) const { return namespace_string; } ATQNameOrDerived::Ptr FastXDMNamespaceNodeImpl::dmNodeName(const DynamicContext* context) const { if(prefix_ == 0) return 0; return context->getItemFactory()->createQName(XMLUni::fgZeroLenString, XMLUni::fgZeroLenString, prefix_, context); } const XMLCh* FastXDMNamespaceNodeImpl::dmStringValue(const DynamicContext* context) const { return uri_; } Sequence FastXDMNamespaceNodeImpl::dmTypedValue(DynamicContext* context) const { return Sequence(context->getItemFactory()->createString(uri_, context), context->getMemoryManager()); } Sequence FastXDMNamespaceNodeImpl::dmDocumentURI(const DynamicContext* context) const { return Sequence(context->getMemoryManager()); } ATQNameOrDerived::Ptr FastXDMNamespaceNodeImpl::dmTypeName(const DynamicContext* context) const { return 0; } ATBooleanOrDerived::Ptr FastXDMNamespaceNodeImpl::dmNilled(const DynamicContext* context) const { return 0; } bool FastXDMNamespaceNodeImpl::lessThan(const Node::Ptr &other, const DynamicContext *context) const { const FastXDMNamespaceNodeImpl *otherImpl = (const FastXDMNamespaceNodeImpl*)other->getInterface(fastxdm_ns_string); if(otherImpl != 0) { // Check if out owner is null if(owner_.isNull()) { if(otherImpl->getOwner().notNull()) return true; return this < otherImpl; } if(otherImpl->getOwner().isNull()) { return false; } // Order first by the owner object if(!owner_->equals(otherImpl->getOwner())) return owner_->lessThan(otherImpl->getOwner(), context); // Then order by the node index return order_ < otherImpl->getOrder(); } const FastXDMNodeImpl *nodeImpl = (const FastXDMNodeImpl*)other->getInterface(FastXDMNodeImpl::fastxdm_string); if(nodeImpl != 0) { // Check if out owner is null if(owner_.isNull()) return true; // Order first by the address of the FastXDMDocument object if(owner_->getDocument().get() != nodeImpl->getDocument().get()) return owner_->getDocument().get() < nodeImpl->getDocument().get(); // Then order by the node index if(owner_->getNode() == nodeImpl->getNode()) return false; return owner_->getNode() < nodeImpl->getNode(); } const FastXDMAttributeNodeImpl *attrImpl = (const FastXDMAttributeNodeImpl*)other-> getInterface(FastXDMAttributeNodeImpl::fastxdm_attr_string); if(attrImpl != 0) { // Check if out owner is null if(owner_.isNull()) return true; // Order first by the address of the FastXDMDocument object if(owner_->getDocument().get() != attrImpl->getDocument().get()) return owner_->getDocument().get() < attrImpl->getDocument().get(); // Then order by the node index if(owner_->getNode() == attrImpl->getAttribute()->owner.ptr) return false; return owner_->getNode() < attrImpl->getAttribute()->owner.ptr; } // It's not a Fast XDM implementation Node, so it can't // be from the same tree as us - jpcs // TBD find a better way to order these - jpcs // Order them according to the address of their roots return this->root(context).get() < other->root(context).get(); } bool FastXDMNamespaceNodeImpl::equals(const Node::Ptr &other) const { if(owner_.isNull()) return false; const FastXDMNamespaceNodeImpl *otherImpl = (const FastXDMNamespaceNodeImpl*)other->getInterface(fastxdm_ns_string); if(otherImpl == 0) return false; if(otherImpl->getOwner().isNull()) return false; if(!owner_->equals(otherImpl->getOwner())) return false; return order_ == otherImpl->getOrder(); } bool FastXDMNamespaceNodeImpl::uniqueLessThan(const Node::Ptr &other, const DynamicContext *context) const { return lessThan(other, context); } ATBooleanOrDerived::Ptr FastXDMNamespaceNodeImpl::dmIsId(const DynamicContext* context) const { return 0; } ATBooleanOrDerived::Ptr FastXDMNamespaceNodeImpl::dmIsIdRefs(const DynamicContext* context) const { return 0; } const XMLCh* FastXDMNamespaceNodeImpl::getTypeName() const { XQThrow2(ItemException, X("NodeImpl::getTypeUriAndName"), X("Tried to get type informations on Node other than DOMElement, DOMAttribute or DOMText")); } const XMLCh* FastXDMNamespaceNodeImpl::getTypeURI() const { XQThrow2(ItemException, X("NodeImpl::getTypeUriAndName"), X("Tried to get type informations on Node other than DOMElement, DOMAttribute or DOMText")); } class FastXDMNamespaceAncestorOrSelfAxis : public ResultImpl { public: FastXDMNamespaceAncestorOrSelfAxis(const LocationInfo *info, const FastXDMNamespaceNodeImpl::Ptr &ns, const NodeTest *nodeTest) : ResultImpl(info), ns_(ns), document_(ns->getOwner()->getDocument()), node_(ns->getOwner()->getNode()), nodeTest_(nodeTest) { } Item::Ptr next(DynamicContext *context) { if(ns_.notNull()) { if(testNamespace(ns_, nodeTest_, context)) { Item::Ptr result = ns_; ns_ = 0; return result; } ns_ = 0; } while(node_ != 0) { Item::Ptr result = testNode(document_, node_, nodeTest_, context); node_ = FastXDMDocument::getParent(node_); if(result.notNull()) return result; } return 0; } virtual std::string asString(DynamicContext *context, int indent) const { return ""; } protected: FastXDMNamespaceNodeImpl::Ptr ns_; FastXDMDocument::Ptr document_; const FastXDMDocument::Node *node_; const NodeTest *nodeTest_; }; Node::Ptr FastXDMNamespaceNodeImpl::root(const DynamicContext* context) const { if(owner_.isNull()) return this; return owner_->root(context); } Node::Ptr FastXDMNamespaceNodeImpl::dmParent(const DynamicContext* context) const { return owner_; } Result FastXDMNamespaceNodeImpl::dmAttributes(const DynamicContext* context, const LocationInfo *info) const { return 0; } Result FastXDMNamespaceNodeImpl::dmNamespaceNodes(const DynamicContext* context, const LocationInfo *info) const { return 0; } Result FastXDMNamespaceNodeImpl::dmChildren(const DynamicContext *context, const LocationInfo *info) const { return 0; } Result FastXDMNamespaceNodeImpl::getAxisResult(XQStep::Axis axis, const NodeTest *nodeTest, const DynamicContext *context, const LocationInfo *info) const { switch(axis) { case XQStep::ANCESTOR: { if(owner_.notNull()) return new FastXDMAncestorOrSelfAxis(info, owner_->getDocument(), owner_->getNode(), nodeTest); break; } case XQStep::ANCESTOR_OR_SELF: { if(owner_.notNull()) return new FastXDMNamespaceAncestorOrSelfAxis(info, this, nodeTest); else return nodeTest->filterResult((Item::Ptr)this, info); } case XQStep::FOLLOWING: { if(owner_.notNull()) return new FastXDMFollowingAxis(info, owner_->getDocument(), this, nodeTest); break; } case XQStep::PARENT: { if(owner_.notNull()) return nodeTest->filterResult((Item::Ptr)owner_, info); break; } case XQStep::PRECEDING: { if(owner_.notNull()) return new FastXDMPrecedingAxis(info, owner_->getDocument(), owner_->getNode(), nodeTest); break; } case XQStep::DESCENDANT_OR_SELF: case XQStep::SELF: { return nodeTest->filterResult((Item::Ptr)this, info); } case XQStep::ATTRIBUTE: case XQStep::CHILD: case XQStep::DESCENDANT: case XQStep::FOLLOWING_SIBLING: case XQStep::NAMESPACE: case XQStep::PRECEDING_SIBLING: break; } return 0; } XQilla-2.3.0/src/fastxdm/FastXDMConfiguration.cpp0000644000151400015140000001336311653565523016603 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include "../schema/FaxppDocumentCacheImpl.hpp" #include "FastXDMSequenceBuilder.hpp" #include "FastXDMUpdateFactory.hpp" #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; DocumentCache *FastXDMConfiguration::createDocumentCache(MemoryManager *memMgr) { #ifdef HAVE_FAXPP return new (memMgr) FaxppDocumentCacheImpl(memMgr); #else return new (memMgr) DocumentCacheImpl(memMgr); #endif } SequenceBuilder *FastXDMConfiguration::createSequenceBuilder(const DynamicContext *context) { return new (context->getMemoryManager()) FastXDMSequenceBuilder(context); } ItemFactory *FastXDMConfiguration::createItemFactory(DocumentCache *cache, MemoryManager *memMgr) { return new (memMgr) ItemFactoryImpl(cache, memMgr); } UpdateFactory *FastXDMConfiguration::createUpdateFactory(MemoryManager *memMgr) { return new (memMgr) FastXDMUpdateFactory(); } class XQILLA_API FastXDMURIResolver : public URIResolver { public: FastXDMURIResolver(MemoryManager *mm) : _documentMap(3, /*adopt*/true, mm) {} virtual bool resolveDocument(Sequence &result, const XMLCh* uri, DynamicContext* context, const QueryPathNode *projection) { Node::Ptr doc; // Resolve the uri against the base uri const XMLCh *systemId = uri; XMLURL urlTmp(context->getMemoryManager()); if(urlTmp.setURL(context->getBaseURI(), uri, urlTmp)) { systemId = context->getMemoryManager()->getPooledString(urlTmp.getURLText()); } // Check in the cache Node::Ptr *found = _documentMap.get(systemId); if(found) doc = *found; // Check to see if we can locate and parse the document if(doc.isNull()) { try { doc = const_cast(context->getDocumentCache())->loadDocument(uri, context, projection); _documentMap.put((void*)systemId, new Node::Ptr(doc)); } catch(const XMLParseException& e) { XMLBuffer errMsg; errMsg.set(X("Error parsing resource: ")); errMsg.append(uri); errMsg.append(X(". Error message: ")); errMsg.append(e.getError()); errMsg.append(X(" [err:FODC0002]")); XQThrow2(XMLParseException,X("FastXDMContextImpl::resolveDocument"), errMsg.getRawBuffer()); } } if(doc.notNull()) { result.addItem(doc); return true; } XMLBuffer errMsg; errMsg.set(X("Error retrieving resource: ")); errMsg.append(uri); errMsg.append(X(" [err:FODC0002]")); XQThrow2(XMLParseException,X("FastXDMContextImpl::resolveDocument"), errMsg.getRawBuffer()); return false; } virtual bool resolveCollection(Sequence &result, const XMLCh* uri, DynamicContext* context, const QueryPathNode *projection) { Node::Ptr doc; // Resolve the uri against the base uri const XMLCh *systemId = uri; XMLURL urlTmp(context->getMemoryManager()); if(urlTmp.setURL(context->getBaseURI(), uri, urlTmp)) { systemId = context->getMemoryManager()->getPooledString(urlTmp.getURLText()); } // Check in the cache Node::Ptr *found = _documentMap.get(systemId); if(found) doc = *found; // Check to see if we can locate and parse the document if(doc.isNull()) { try { doc = const_cast(context->getDocumentCache())->loadDocument(uri, context, projection); _documentMap.put((void*)systemId, new Node::Ptr(doc)); } catch(const XMLParseException& e) { XMLBuffer errMsg; errMsg.set(X("Error parsing resource: ")); errMsg.append(uri); errMsg.append(X(". Error message: ")); errMsg.append(e.getError()); errMsg.append(X(" [err:FODC0004]")); XQThrow2(XMLParseException,X("FastXDMContextImpl::resolveCollection"), errMsg.getRawBuffer()); } } if(doc.notNull()) { result.addItem(doc); return true; } XMLBuffer errMsg; errMsg.set(X("Error retrieving resource: ")); errMsg.append(uri); errMsg.append(X(" [err:FODC0004]")); XQThrow2(XMLParseException,X("FastXDMContextImpl::resolveCollection"), errMsg.getRawBuffer()); return false; } virtual bool resolveDefaultCollection(Sequence &result, DynamicContext* context, const QueryPathNode *projection) { return false; } virtual bool putDocument(const Node::Ptr &document, const XMLCh *uri, DynamicContext *context) { return false; } private: RefHashTableOf _documentMap; }; URIResolver *FastXDMConfiguration::createDefaultURIResolver(MemoryManager *memMgr) { return new (memMgr) FastXDMURIResolver(memMgr); } ASTToXML *FastXDMConfiguration::createASTToXML() { return new ASTToXML(); } XQilla-2.3.0/src/fastxdm/FastXDMUpdateFactory.cpp0000644000151400015140000000637411653565523016552 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "FastXDMUpdateFactory.hpp" #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif static const XMLCh file_scheme[] = { chLatin_f, chLatin_i, chLatin_l, chLatin_e, 0 }; static const XMLCh utf8_str[] = { chLatin_u, chLatin_t, chLatin_f, chDash, chDigit_8, 0 }; void FastXDMUpdateFactory::applyPut(const PendingUpdate &update, DynamicContext *context) { assert(false); } void FastXDMUpdateFactory::applyInsertInto(const PendingUpdate &update, DynamicContext *context) { assert(false); } void FastXDMUpdateFactory::applyInsertAttributes(const PendingUpdate &update, DynamicContext *context) { assert(false); } void FastXDMUpdateFactory::applyReplaceValue(const PendingUpdate &update, DynamicContext *context) { assert(false); } void FastXDMUpdateFactory::applyRename(const PendingUpdate &update, DynamicContext *context) { assert(false); } void FastXDMUpdateFactory::applyDelete(const PendingUpdate &update, DynamicContext *context) { assert(false); } void FastXDMUpdateFactory::applyInsertBefore(const PendingUpdate &update, DynamicContext *context) { assert(false); } void FastXDMUpdateFactory::applyInsertAfter(const PendingUpdate &update, DynamicContext *context) { assert(false); } void FastXDMUpdateFactory::applyInsertAsFirst(const PendingUpdate &update, DynamicContext *context) { assert(false); } void FastXDMUpdateFactory::applyInsertAsLast(const PendingUpdate &update, DynamicContext *context) { assert(false); } void FastXDMUpdateFactory::applyReplaceNode(const PendingUpdate &update, DynamicContext *context) { assert(false); } void FastXDMUpdateFactory::applyReplaceAttribute(const PendingUpdate &update, DynamicContext *context) { assert(false); } void FastXDMUpdateFactory::applyReplaceElementContent(const PendingUpdate &update, DynamicContext *context) { assert(false); } void FastXDMUpdateFactory::completeDeletions(DynamicContext *context) { assert(false); } void FastXDMUpdateFactory::completeRevalidation(DynamicContext *context) { assert(false); } void FastXDMUpdateFactory::completeUpdate(DynamicContext *context) { assert(false); } XQilla-2.3.0/src/fastxdm/FastXDMSequenceBuilder.cpp0000644000151400015140000001140511653565523017046 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "FastXDMSequenceBuilder.hpp" #include "FastXDMNodeImpl.hpp" #include #include FastXDMSequenceBuilder::FastXDMSequenceBuilder(const DynamicContext *context) : context_(context), level_(0), document_(0), seq_(context->getMemoryManager()) { } void FastXDMSequenceBuilder::startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding) { if(level_ == 0) { document_ = new FastXDMDocument(context_->getMemoryManager()); } document_->startDocumentEvent(documentURI, encoding); ++level_; } void FastXDMSequenceBuilder::endDocumentEvent() { --level_; document_->endDocumentEvent(); if(level_ == 0) { document_->endEvent(); seq_.addItem(new FastXDMNodeImpl(document_, document_->getNode(0))); document_ = 0; } } void FastXDMSequenceBuilder::endEvent() { } void FastXDMSequenceBuilder::startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname) { if(level_ == 0) { document_ = new FastXDMDocument(context_->getMemoryManager()); } document_->startElementEvent(prefix, uri, localname); ++level_; } void FastXDMSequenceBuilder::endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName) { --level_; document_->endElementEvent(prefix, uri, localname, typeURI, typeName); if(level_ == 0) { document_->endEvent(); seq_.addItem(new FastXDMNodeImpl(document_, document_->getNode(0))); document_ = 0; } } void FastXDMSequenceBuilder::piEvent(const XMLCh *target, const XMLCh *value) { if(level_ == 0) { document_ = new FastXDMDocument(1, 0, 0, context_->getMemoryManager()); } document_->piEvent(target, value); if(level_ == 0) { document_->endEvent(); seq_.addItem(new FastXDMNodeImpl(document_, document_->getNode(0))); document_ = 0; } } void FastXDMSequenceBuilder::textEvent(const XMLCh *value) { if(level_ == 0) { document_ = new FastXDMDocument(1, 0, 0, context_->getMemoryManager()); } document_->textEvent(value); if(level_ == 0) { document_->endEvent(); seq_.addItem(new FastXDMNodeImpl(document_, document_->getNode(0))); document_ = 0; } } void FastXDMSequenceBuilder::textEvent(const XMLCh *chars, unsigned int length) { if(level_ == 0) { document_ = new FastXDMDocument(1, 0, 0, context_->getMemoryManager()); } document_->textEvent(chars, length); if(level_ == 0) { document_->endEvent(); seq_.addItem(new FastXDMNodeImpl(document_, document_->getNode(0))); document_ = 0; } } void FastXDMSequenceBuilder::commentEvent(const XMLCh *value) { if(level_ == 0) { document_ = new FastXDMDocument(1, 0, 0, context_->getMemoryManager()); } document_->commentEvent(value); if(level_ == 0) { document_->endEvent(); seq_.addItem(new FastXDMNodeImpl(document_, document_->getNode(0))); document_ = 0; } } void FastXDMSequenceBuilder::attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { if(level_ == 0) { document_ = new FastXDMDocument(0, 1, 0, context_->getMemoryManager()); } document_->attributeEvent(prefix, uri, localname, value, typeURI, typeName); if(level_ == 0) { document_->endEvent(); seq_.addItem(new FastXDMAttributeNodeImpl(document_, document_->getAttribute(0))); document_ = 0; } } void FastXDMSequenceBuilder::namespaceEvent(const XMLCh *prefix, const XMLCh *uri) { if(level_ == 0) { seq_.addItem(new FastXDMNamespaceNodeImpl(0, prefix, uri, 0)); } else { document_->namespaceEvent(prefix, uri); } } void FastXDMSequenceBuilder::atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { assert(level_ == 0); seq_.addItem(context_->getItemFactory()->createDerivedFromAtomicType(type, typeURI, typeName, value, context_)); } XQilla-2.3.0/src/fastxdm/FastXDMUpdateFactory.hpp0000644000151400015140000000436011653565523016550 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FASTXDMUPDATEFACTORY_HPP #define _FASTXDMUPDATEFACTORY_HPP #include #include class XQILLA_API FastXDMUpdateFactory : public UpdateFactory { public: virtual void applyPut(const PendingUpdate &update, DynamicContext *context); virtual void applyInsertInto(const PendingUpdate &update, DynamicContext *context); virtual void applyInsertAttributes(const PendingUpdate &update, DynamicContext *context); virtual void applyReplaceValue(const PendingUpdate &update, DynamicContext *context); virtual void applyRename(const PendingUpdate &update, DynamicContext *context); virtual void applyDelete(const PendingUpdate &update, DynamicContext *context); virtual void applyInsertBefore(const PendingUpdate &update, DynamicContext *context); virtual void applyInsertAfter(const PendingUpdate &update, DynamicContext *context); virtual void applyInsertAsFirst(const PendingUpdate &update, DynamicContext *context); virtual void applyInsertAsLast(const PendingUpdate &update, DynamicContext *context); virtual void applyReplaceNode(const PendingUpdate &update, DynamicContext *context); virtual void applyReplaceAttribute(const PendingUpdate &update, DynamicContext *context); virtual void applyReplaceElementContent(const PendingUpdate &update, DynamicContext *context); virtual void completeRevalidation(DynamicContext *context); virtual void completeDeletions(DynamicContext *context); virtual void completeUpdate(DynamicContext *context); }; #endif XQilla-2.3.0/src/tools/0000755000151400015140000000000011653572443011644 500000000000000XQilla-2.3.0/src/tools/compile-delayed-module.cpp0000644000151400015140000000424411607013762016605 00000000000000/* * Copyright (c) 2004-2009 * Oracle. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif using namespace std; void usage(const char *progname) { const char *name = progname; while(*progname != 0) { if(*progname == '/' || *progname == '\\') { ++progname; name = progname; } else { ++progname; } } cerr << "Usage: " << name << " [options] " << endl << endl; cerr << "-h : Show this display" << endl; } namespace CompileDelayedModule { void compile(const XMLCh *queryFile) { XQilla::compileDelayedModule(queryFile); } } int main(int argc, char *argv[]) { string filename; for(int i = 1; i < argc; ++i) { if(*argv[i] == '-' && argv[i][2] == '\0' ){ // -h option, print usage if(argv[i][1] == 'h') { usage(argv[0]); return 0; } else { usage(argv[0]); return 1; } } else if(filename == "") { filename = argv[i]; } else { usage(argv[0]); return 1; } } if(filename == "") { usage(argv[0]); return 1; } XQilla xqilla; try { CompileDelayedModule::compile(X(filename.c_str())); } catch(XQException &e) { cerr << UTF8(e.getXQueryFile()) << ":" << e.getXQueryLine() << ":" << e.getXQueryColumn() << ": error: " << UTF8(e.getError()) << endl; BaseInteractiveDebugger::outputLocation(e.getXQueryFile(), e.getXQueryLine(), e.getXQueryColumn()); return 1; } return 0; } XQilla-2.3.0/src/context/0000755000151400015140000000000011653572442012167 500000000000000XQilla-2.3.0/src/context/impl/0000755000151400015140000000000011653572442013130 500000000000000XQilla-2.3.0/src/context/impl/VarStoreImpl.cpp0000644000151400015140000001077511653565523016157 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include #include #include #include XERCES_CPP_NAMESPACE_USE; using namespace std; VarStoreImpl::VarStoreImpl(XPath2MemoryManager *mm, const VariableStore *parent) : store_(0), parent_(parent), mm_(mm) { } VarStoreImpl::VarStoreImpl(const VarStoreImpl &other, XPath2MemoryManager *mm) : store_(0), parent_(other.parent_), mm_(mm) { VarEntry *entry = other.store_; while(entry) { store_ = new VarEntry(entry->uri, entry->name, entry->buffer, store_); entry = entry->prev; } } VarStoreImpl::~VarStoreImpl() { clear(); } Result VarStoreImpl::getVar(const XMLCh *namespaceURI, const XMLCh *name) const { VarEntry *entry = store_; while(entry) { if(XPath2Utils::equals(name, entry->name) && XPath2Utils::equals(namespaceURI, entry->uri)) { return entry->buffer.createResult(); } entry = entry->prev; } if(parent_ != 0) return parent_->getVar(namespaceURI, name); return 0; } void VarStoreImpl::getInScopeVariables(vector > &variables) const { VarEntry *entry = store_; while(entry) { variables.push_back(pair(entry->uri, entry->name)); entry = entry->prev; } if(parent_ != 0) parent_->getInScopeVariables(variables); } void VarStoreImpl::setVar(const XMLCh *namespaceURI, const XMLCh *name, const Result &value, unsigned int readCount) { VarEntry *entry = store_; while(entry) { if(XPath2Utils::equals(name, entry->name) && XPath2Utils::equals(namespaceURI, entry->uri)) { entry->buffer = ResultBuffer(value, readCount); return; } entry = entry->prev; } store_ = new VarEntry(mm_->getPooledString(namespaceURI), mm_->getPooledString(name), value, readCount, store_); } void VarStoreImpl::clear() { VarEntry *tmp; while(store_) { tmp = store_; store_ = store_->prev; delete tmp; } } void VarStoreImpl::cacheVariableStore(const StaticAnalysis &src, const VariableStore *toCache) { for(int i = 0; i < StaticAnalysis::HASH_SIZE; ++i) { StaticAnalysis::VarEntry *entry = src.variablesUsed()[i]; while(entry) { store_ = new VarEntry(entry->uri, entry->name, toCache->getVar(entry->uri, entry->name), ResultBufferImpl::UNLIMITED_COUNT, store_); entry = entry->prev; } } } VarStoreImpl::VarEntry::VarEntry(const XMLCh *u, const XMLCh *n, const Result &r, unsigned int readCount, VarEntry *p) : uri(u), name(n), buffer(r, readCount), prev(p) { } VarStoreImpl::VarEntry::VarEntry(const XMLCh *u, const XMLCh *n, const ResultBuffer &buffer, VarEntry *p) : uri(u), name(n), buffer(buffer), prev(p) { } //////////////////////////////////////////////////////////////////////////////////////////////////// SingleVarStore::SingleVarStore() : uri_(0), name_(0), parent_(0) {} Result SingleVarStore::getVar(const XMLCh *namespaceURI, const XMLCh *name) const { if(XPath2Utils::equals(name, name_) && XPath2Utils::equals(namespaceURI, uri_)) return value; return parent_->getVar(namespaceURI, name); } void SingleVarStore::getInScopeVariables(vector > &variables) const { variables.push_back(pair(uri_, name_)); if(parent_ != 0) parent_->getInScopeVariables(variables); } void SingleVarStore::setAsVariableStore(const XMLCh *namespaceURI, const XMLCh *name, DynamicContext *context) { uri_ = namespaceURI; name_ = name; parent_ = context->getVariableStore(); context->setVariableStore(this); } void SingleVarStore::unsetAsVariableStore(DynamicContext *context) { context->setVariableStore(parent_); } XQilla-2.3.0/src/context/impl/XQDynamicContextImpl.cpp0000644000151400015140000004057211653565523017612 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; XQDynamicContextImpl::XQDynamicContextImpl(XQillaConfiguration *conf, const StaticContext *staticContext, VarStoreImpl *defaultVarStore, MemoryManager* memMgr) : _conf(conf), _staticContext(staticContext), _createdWith(memMgr), _internalMM(memMgr), _nsResolver(staticContext->getNSResolver()), _defaultCollation(0), _defaultElementNS(staticContext->getDefaultElementAndTypeNS()), _contextItem(0), _contextPosition(1), _contextSize(1), _defaultVarStore(defaultVarStore ? defaultVarStore : new VarStoreImpl(&_internalMM)), _defaultVarStoreOwned(defaultVarStore == 0), _varStore(_defaultVarStore), _globalVarStore(_defaultVarStore), _regexStore(0), _implicitTimezone(0), _resolvers(XQillaAllocator(&_internalMM)), _debugListener(0), _stackFrame(0), // This is created with the _createdWith memory manager, // since a bug in xerces means we can't use a non-thread-safe // memory manager - jpcs _docCache(staticContext->getDocumentCache()->createDerivedCache(_createdWith)), _messageListener(staticContext->getMessageListener()), _projection(staticContext->getProjection()) { time(&_currentTime); _memMgr = &_internalMM; _itemFactory = staticContext->getItemFactory(); _itemFactoryOwned = false; setXMLEntityResolver(staticContext->getXMLEntityResolver()); // Set up the default URIResolver _defaultResolver.resolver = _conf->createDefaultURIResolver(&_internalMM); if(_defaultResolver.resolver != 0) { _defaultResolver.adopt = true; } } XQDynamicContextImpl::~XQDynamicContextImpl() { _contextItem = 0; _implicitTimezone = 0; if(_defaultVarStoreOwned) { _defaultVarStore->clear(); delete _defaultVarStore; } if(_itemFactoryOwned) delete _itemFactory; delete _docCache; std::vector >::reverse_iterator end = _resolvers.rend(); for(std::vector >::reverse_iterator i = _resolvers.rbegin(); i != end; ++i) { if(i->adopt) { delete i->resolver; } } if(_defaultResolver.adopt) delete _defaultResolver.resolver; } DynamicContext *XQDynamicContextImpl::createModuleContext(MemoryManager *memMgr) const { return _staticContext->createModuleContext(memMgr); } DynamicContext *XQDynamicContextImpl::createModuleDynamicContext(const DynamicContext* moduleCtx, MemoryManager *memMgr) const { XQDynamicContextImpl* moduleDCtx = new (memMgr) XQDynamicContextImpl(_conf, moduleCtx, _defaultVarStore, memMgr); // Force the context to use our memory manager moduleDCtx->setMemoryManager(getMemoryManager()); // Use the variables from our context moduleDCtx->setGlobalVariableStore(getGlobalVariableStore()); moduleDCtx->setVariableStore(getVariableStore()); // Add our URIResolvers to the module context moduleDCtx->setDefaultURIResolver(_defaultResolver.resolver, /*adopt*/false); std::vector >::const_iterator end = _resolvers.end(); for(std::vector >::const_iterator i = _resolvers.begin(); i != end; ++i) { moduleDCtx->registerURIResolver(i->resolver, /*adopt*/false); } // Set the XMLEntityResolver moduleDCtx->setXMLEntityResolver(_docCache->getXMLEntityResolver()); // Set the MessageListener moduleDCtx->setMessageListener(_messageListener); // Set the DebugListener and StackFrame moduleDCtx->setDebugListener(_debugListener); moduleDCtx->setStackFrame(_stackFrame); _conf->populateDynamicContext(moduleDCtx); return moduleDCtx; } DynamicContext *XQDynamicContextImpl::createDynamicContext(MemoryManager *memMgr) const { return _staticContext->createDynamicContext(memMgr); } DynamicContext *XQDynamicContextImpl::createDebugQueryContext(const Item::Ptr &contextItem, size_t contextPosition, size_t contextSize, const VariableStore *variables, const DOMXPathNSResolver *nsResolver, const XMLCh *defaultElementNS, MemoryManager *memMgr) const { return _staticContext->createDebugQueryContext(contextItem, contextPosition, contextSize, variables, nsResolver, defaultElementNS, memMgr); } XQillaConfiguration *XQDynamicContextImpl::getConfiguration() const { return _conf; } void XQDynamicContextImpl::setMemoryManager(XPath2MemoryManager* memMgr) { _memMgr = memMgr; } void XQDynamicContextImpl::clearDynamicContext() { _nsResolver = _staticContext->getNSResolver(); _contextItem = 0; _contextSize = 1; _contextPosition = 1; _implicitTimezone = 0; _defaultVarStore->clear(); _varStore = _defaultVarStore; _globalVarStore = _defaultVarStore; // if(_defaultResolver.adopt) // delete _defaultResolver.resolver; // _defaultResolver.adopt = false; // _defaultResolver.resolver = 0; // std::vector >::reverse_iterator end = _resolvers.rend(); // for(std::vector >::reverse_iterator i = _resolvers.rbegin(); i != end; ++i) { // if(i->adopt) { // delete i->resolver; // } // } // _resolvers.clear(); // _defaultResolver.resolver = _conf->createDefaultURIResolver(&_internalMM); // if(_defaultResolver.resolver != 0) { // _defaultResolver.adopt = true; // } time(&_currentTime); } DocumentCache *XQDynamicContextImpl::getDocumentCache() const { return _docCache; } void XQDynamicContextImpl::setDocumentCache(DocumentCache* docCache) { _docCache=docCache; } void XQDynamicContextImpl::setContextItem(const Item::Ptr &item) { _contextItem = item; } void XQDynamicContextImpl::setContextSize(size_t size) { _contextSize = size; } void XQDynamicContextImpl::setContextPosition(size_t pos) { _contextPosition = pos; } Item::Ptr XQDynamicContextImpl::getContextItem() const { return _contextItem; } size_t XQDynamicContextImpl::getContextSize() const { return _contextSize; } size_t XQDynamicContextImpl::getContextPosition() const { return _contextPosition; } const VariableStore* XQDynamicContextImpl::getVariableStore() const { return _varStore; } void XQDynamicContextImpl::setVariableStore(const VariableStore *store) { assert(store); _varStore = store; } const VariableStore* XQDynamicContextImpl::getGlobalVariableStore() const { return _globalVarStore; } void XQDynamicContextImpl::setGlobalVariableStore(const VariableStore *store) { _globalVarStore = store; } void XQDynamicContextImpl::setExternalVariable(const XMLCh *namespaceURI, const XMLCh *name, const Result &value) { _defaultVarStore->setVar(namespaceURI, name, value); } void XQDynamicContextImpl::setExternalVariable(const XMLCh *qname, const Result &value) { const XMLCh *uri = getUriBoundToPrefix(XPath2NSUtils::getPrefix(qname, getMemoryManager()), 0); const XMLCh *name = XPath2NSUtils::getLocalName(qname); _defaultVarStore->setVar(uri, name, value); } const RegexGroupStore *XQDynamicContextImpl::getRegexGroupStore() const { return _regexStore; } void XQDynamicContextImpl::setRegexGroupStore(const RegexGroupStore *store) { _regexStore = store; } time_t XQDynamicContextImpl::getCurrentTime() const { return _currentTime; } void XQDynamicContextImpl::setCurrentTime(time_t newTime) { _currentTime=newTime; } ATDurationOrDerived::Ptr XQDynamicContextImpl::getImplicitTimezone() const { if(_implicitTimezone == NULLRCP) { // validate tzone Timezone tzone(ContextUtils::getTimezone()); // c-style the const away since we are in a const method ((XQDynamicContextImpl*)this)->_implicitTimezone = tzone.asDayTimeDuration(this); } return _implicitTimezone; } void XQDynamicContextImpl::setImplicitTimezone(const ATDurationOrDerived::Ptr &timezoneAsDuration) { // validate the timezone -- will trow if invalid Timezone timezone(timezoneAsDuration, this); this->_implicitTimezone = timezoneAsDuration; } XPath2MemoryManager* XQDynamicContextImpl::getMemoryManager() const { return _memMgr; } const XMLCh* XQDynamicContextImpl::getDefaultElementAndTypeNS() const { return _defaultElementNS; } void XQDynamicContextImpl::setDefaultElementAndTypeNS(const XMLCh* newNS) { _defaultElementNS = newNS; } void XQDynamicContextImpl::registerURIResolver(URIResolver *resolver, bool adopt) { if(resolver != 0) { _resolvers.push_back(ResolverEntry(resolver, adopt)); } } URIResolver *XQDynamicContextImpl::getDefaultURIResolver() const { return _defaultResolver.resolver; } void XQDynamicContextImpl::setDefaultURIResolver(URIResolver *resolver, bool adopt) { if(_defaultResolver.adopt) { delete _defaultResolver.resolver; } _defaultResolver.resolver = resolver; _defaultResolver.adopt = adopt; } Node::Ptr XQDynamicContextImpl::parseDocument(InputSource &srcToUse, const LocationInfo *location, const QueryPathNode *projection) { try { return _docCache->parseDocument(srcToUse, this, projection); } catch(XQException &e) { if(e.getXQueryLine() == 0 && location) e.setXQueryPosition(location); throw; } } Sequence XQDynamicContextImpl::resolveDocument(const XMLCh* uri, const LocationInfo *location, const QueryPathNode *projection) { Sequence result(getMemoryManager()); // Check the URIResolver objects try { std::vector >::reverse_iterator end = _resolvers.rend(); for(std::vector >::reverse_iterator i = _resolvers.rbegin(); i != end; ++i) { if(i->resolver->resolveDocument(result, uri, this, projection)) return result; } if(_defaultResolver.resolver) _defaultResolver.resolver->resolveDocument(result, uri, this, projection); } catch(XQException &e) { if(e.getXQueryLine() == 0 && location) e.setXQueryPosition(location); throw; } return result; } Sequence XQDynamicContextImpl::resolveCollection(const XMLCh* uri, const LocationInfo *location, const QueryPathNode *projection) { Sequence result(getMemoryManager()); // Check the URIResolver objects try { std::vector >::reverse_iterator end = _resolvers.rend(); for(std::vector >::reverse_iterator i = _resolvers.rbegin(); i != end; ++i) { if(i->resolver->resolveCollection(result, uri, this, projection)) return result; } if(_defaultResolver.resolver) _defaultResolver.resolver->resolveCollection(result, uri, this, projection); } catch(XQException &e) { if(e.getXQueryLine() == 0 && location) e.setXQueryPosition(location); throw; } return result; } Sequence XQDynamicContextImpl::resolveDefaultCollection(const QueryPathNode *projection) { Sequence result(getMemoryManager()); std::vector >::reverse_iterator end = _resolvers.rend(); for(std::vector >::reverse_iterator i = _resolvers.rbegin(); i != end; ++i) { if(i->resolver->resolveDefaultCollection(result, this, projection)) return result; } if(_defaultResolver.resolver) _defaultResolver.resolver->resolveDefaultCollection(result, this, projection); return result; } bool XQDynamicContextImpl::putDocument(const Node::Ptr &document, const XMLCh *uri) { std::vector >::reverse_iterator end = _resolvers.rend(); for(std::vector >::reverse_iterator i = _resolvers.rbegin(); i != end; ++i) { if(i->resolver->putDocument(document, uri, this)) return true; } if(_defaultResolver.resolver) return _defaultResolver.resolver->putDocument(document, uri, this); return false; } VectorOfStrings* XQDynamicContextImpl::resolveModuleURI(const XMLCh* uri) const { return _staticContext->resolveModuleURI(uri); } SequenceBuilder *XQDynamicContextImpl::createSequenceBuilder() const { return _conf->createSequenceBuilder(this); } ItemFactory *XQDynamicContextImpl::getItemFactory() const { return _itemFactory; } void XQDynamicContextImpl::setItemFactory(ItemFactory *factory) { _itemFactory = factory; _itemFactoryOwned = true; } UpdateFactory *XQDynamicContextImpl::createUpdateFactory() const { return _conf->createUpdateFactory(const_cast(&_internalMM)); } void XQDynamicContextImpl::setNSResolver(const DOMXPathNSResolver* resolver) { _nsResolver = resolver; } const DOMXPathNSResolver* XQDynamicContextImpl::getNSResolver() const { return _nsResolver; } const XMLCh* XQDynamicContextImpl::getUriBoundToPrefix(const XMLCh* prefix, const LocationInfo *location) const { if(prefix == 0 || *prefix == 0) return 0; const XMLCh* uri = _nsResolver->lookupNamespaceURI(prefix); if((uri == 0 || *uri == 0) && prefix != 0 && *prefix != 0) { const XMLCh* msg = XPath2Utils::concatStrings(X("No namespace for prefix \'"), prefix, X("\' [err:XPST0081]"), getMemoryManager()); XQThrow3(NamespaceLookupException, X("XQDynamicContextImpl::getUriBoundToPrefix"), msg, location); } return uri; } const XMLCh* XQDynamicContextImpl::getPrefixBoundToUri(const XMLCh* uri) const { return _nsResolver->lookupPrefix(uri); } void XQDynamicContextImpl::setXMLEntityResolver(XMLEntityResolver* const handler) { _docCache->setXMLEntityResolver(handler); } XMLEntityResolver* XQDynamicContextImpl::getXMLEntityResolver() const { return _docCache->getXMLEntityResolver(); } void XQDynamicContextImpl::setDefaultCollation(const XMLCh* URI) { _defaultCollation=getMemoryManager()->getPooledString(URI); } Collation* XQDynamicContextImpl::getDefaultCollation(const LocationInfo *location) const { if(_defaultCollation == 0) { return _staticContext->getDefaultCollation(location); } else { return getCollation(_defaultCollation, location); } } void XQDynamicContextImpl::setMessageListener(MessageListener *listener) { _messageListener = listener; } MessageListener *XQDynamicContextImpl::getMessageListener() const { return _messageListener; } void XQDynamicContextImpl::setDebugListener(DebugListener *listener) { _debugListener = listener; } DebugListener *XQDynamicContextImpl::getDebugListener() const { return _debugListener; } void XQDynamicContextImpl::setStackFrame(const StackFrame *frame) { _stackFrame = frame; } const StackFrame *XQDynamicContextImpl::getStackFrame() const { return _stackFrame; } void XQDynamicContextImpl::testInterrupt() const { _conf->testInterrupt(); } XQilla-2.3.0/src/context/impl/XQContextImpl.cpp0000644000151400015140000007135111653565523016304 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; static CodepointCollation g_codepointCollation; XQContextImpl::XQContextImpl(XQillaConfiguration *conf, XQilla::Language language, MemoryManager* memMgr) : _conf(conf), _language(language), _createdWith(memMgr), _internalMM(memMgr), _contextItemType(StaticType::ITEM_TYPE, 0, 1), _varTypeStore(0), _templateNameMap(29, false, &_internalMM), _templates(XQillaAllocator(&_internalMM)), _functionTable(0), _collations(XQillaAllocator(&_internalMM)), _constructionMode(CONSTRUCTION_MODE_PRESERVE), _bPreserveBoundarySpace(false), _revalidationMode(DocumentCache::VALIDATION_LAX), _messageListener(0), _module(0), _varStore(&_defaultVarStore), _globalVarStore(&_defaultVarStore), _defaultVarStore(&_internalMM), _regexStore(0), _resolvers(XQillaAllocator(&_internalMM)), _moduleResolver(0), _exFuncResolver(0), _exFuncs(XQillaAllocator(&_internalMM)), _debugListener(0), _stackFrame(0), _projection(true), _lint(false), _tmpVarCounter(0), _ftCaseOption(StaticContext::CASE_INSENSITIVE) { _memMgr = &_internalMM; //////////////////// // static context // //////////////////// _xpath1Compatibility = false; // according to Formal Semantics, § 4.1.1 _ordering = ORDERING_ORDERED; _globalNSResolver = new (&_internalMM) XQillaNSResolverImpl(&_internalMM); _nsResolver = _globalNSResolver; _defaultElementNS = 0; // by default, the default namespace for functions is the XPath2 namespace _functionNS = XQFunction::XMLChFunctionURI; // This is created with the _createdWith memory manager, // since a bug in xerces means we can't use a non-thread-safe // memory manager - jpcs _docCache = conf->createDocumentCache(_createdWith); _itemFactory = conf->createItemFactory(_docCache, &_internalMM); _docCacheOwned = true; if(_varTypeStore==NULL) _varTypeStore=_internalMM.createVariableTypeStore(); if ((language & XQilla::UPDATE) != 0) { _functionTable = new (&_internalMM) FunctionLookup(&_internalMM); _functionTable->insertUpdateFunctions(&_internalMM); } // insert the default collation addCollation(_internalMM.createCollation(&g_codepointCollation)); setDefaultCollation(g_codepointCollation.getCollationName()); _flworOrderingMode = FLWOR_ORDER_EMPTY_LEAST; // implementation-defined _bInheritNamespaces = true; _bPreserveNamespaces = true; _baseURI=0; //////////////////////// // Evaluation context // //////////////////////// _contextItem = NULL; _contextPosition = 1; _contextSize = 1; time(&_currentTime); // implicit timezone - lazily set in getImplicitTimezone _implicitTimezone = 0; // Set up the default URIResolver _defaultResolver.resolver = conf->createDefaultURIResolver(&_internalMM); if(_defaultResolver.resolver != 0) { _defaultResolver.adopt = true; } } XQContextImpl::~XQContextImpl() { _varTypeStore->clear(); _contextItem = 0; _implicitTimezone = 0; _defaultVarStore.clear(); delete _varTypeStore; if(_docCacheOwned) { delete _itemFactory; delete _docCache; } std::vector >::reverse_iterator end = _resolvers.rend(); for(std::vector >::reverse_iterator i = _resolvers.rbegin(); i != end; ++i) { if(i->adopt) { delete i->resolver; } } if(_defaultResolver.adopt) delete _defaultResolver.resolver; std::vector >::iterator end2 = _exFuncs.end(); for(std::vector >::iterator j = _exFuncs.begin(); j != end2; ++j) { delete *j; } } DynamicContext *XQContextImpl::createModuleContext(MemoryManager *memMgr) const { DynamicContext* moduleCtx = new (memMgr) XQContextImpl(_conf, _language, memMgr); // Force the context to use our memory manager moduleCtx->setMemoryManager(getMemoryManager()); // Set the ModuleResolver moduleCtx->setModuleResolver(_moduleResolver); // Set the ExternalFunctionResolver moduleCtx->setExternalFunctionResolver(_exFuncResolver); // Set the MessageListener moduleCtx->setMessageListener(_messageListener); // Set the DebugListener moduleCtx->setDebugListener(_debugListener); // Add our collations for(std::vector >::const_iterator it= _collations.begin(); it!=_collations.end(); ++it) moduleCtx->addCollation(*it); // Add the external functions if(_functionTable) { _functionTable->copyExternalFunctionsTo(moduleCtx); } _conf->populateStaticContext(moduleCtx); return moduleCtx; } DynamicContext *XQContextImpl::createModuleDynamicContext(const DynamicContext* moduleCtx, MemoryManager *memMgr) const { XQDynamicContextImpl* moduleDCtx = new (memMgr) XQDynamicContextImpl(_conf, moduleCtx, (VarStoreImpl*)&_defaultVarStore, memMgr); // Force the context to use our memory manager moduleDCtx->setMemoryManager(getMemoryManager()); // Use the variables from our context moduleDCtx->setGlobalVariableStore(getGlobalVariableStore()); moduleDCtx->setVariableStore(getVariableStore()); // Add our URIResolvers to the module context moduleDCtx->setDefaultURIResolver(_defaultResolver.resolver, /*adopt*/false); std::vector >::const_iterator end = _resolvers.end(); for(std::vector >::const_iterator i = _resolvers.begin(); i != end; ++i) { moduleDCtx->registerURIResolver(i->resolver, /*adopt*/false); } // Set the XMLEntityResolver moduleDCtx->setXMLEntityResolver(_docCache->getXMLEntityResolver()); // Set the MessageListener moduleDCtx->setMessageListener(_messageListener); // Set the DebugListener and StackFrame moduleDCtx->setDebugListener(_debugListener); moduleDCtx->setStackFrame(_stackFrame); _conf->populateDynamicContext(moduleDCtx); return moduleDCtx; } DynamicContext *XQContextImpl::createDynamicContext(MemoryManager *memMgr) const { DynamicContext *result = new (memMgr) XQDynamicContextImpl(_conf, this, 0, memMgr); _conf->populateDynamicContext(result); return result; } DynamicContext *XQContextImpl::createDebugQueryContext(const Item::Ptr &contextItem, size_t contextPosition, size_t contextSize, const VariableStore *variables, const DOMXPathNSResolver *nsResolver, const XMLCh *defaultElementNS, MemoryManager *memMgr) const { XQContextImpl *result = new (memMgr) XQContextImpl(_conf, (XQilla::Language)(XQilla::XQUERY | XQilla::EXTENSIONS), memMgr); // Set up the static type of all the in-scope variables VariableTypeStore *store = result->getVariableTypeStore(); XPath2MemoryManager *rmm = result->getMemoryManager(); // For simplicity we'll make them all have type item()* StaticAnalysis *src = new (rmm) StaticAnalysis(rmm); src->getStaticType() = StaticType(StaticType::ITEM_TYPE, 0, StaticType::UNLIMITED); std::vector > inScopeVars; variables->getInScopeVariables(inScopeVars); std::vector >::iterator i = inScopeVars.begin(); for(; i != inScopeVars.end(); ++i) { store->declareGlobalVar(i->first, i->second, *src, 0); } // Set up all the in-scope namespaces XQillaNSResolver *newresolver = new (rmm) XQillaNSResolverImpl(rmm, nsResolver); result->_globalNSResolver = newresolver; result->_nsResolver = newresolver; result->_defaultElementNS = defaultElementNS; result->_functionNS = _functionNS; // Set up the functions result->_functionTable = _functionTable; // Set up the schema definitions if(result->_docCacheOwned) { delete result->_itemFactory; delete result->_docCache; } result->_docCache = _docCache; result->_itemFactory = _itemFactory; result->_docCacheOwned = false; // Set up the focus and in-scope variable values result->setContextItem(contextItem); result->setContextPosition(contextPosition); result->setContextSize(contextSize); result->setVariableStore(variables); // TBD regex groups? - jpcs return result; } XQilla::Language XQContextImpl::getLanguage() const { return _language; } void XQContextImpl::setMemoryManager(XPath2MemoryManager* memMgr) { _memMgr = memMgr; } void XQContextImpl::setNamespaceBinding(const XMLCh* prefix, const XMLCh* uri) { XQillaNSResolverImpl::forbiddenBindingCheck(prefix, uri, 0); _globalNSResolver->addNamespaceBinding(prefix,uri); } void XQContextImpl::setPreserveBoundarySpace(bool value) { _bPreserveBoundarySpace=value; } bool XQContextImpl::getPreserveBoundarySpace() const { return _bPreserveBoundarySpace; } void XQContextImpl::setInheritNamespaces(bool value) { _bInheritNamespaces=value; } bool XQContextImpl::getInheritNamespaces() const { return _bInheritNamespaces; } void XQContextImpl::setPreserveNamespaces(bool value) { _bPreserveNamespaces=value; } bool XQContextImpl::getPreserveNamespaces() const { return _bPreserveNamespaces; } void XQContextImpl::clearDynamicContext() { _nsResolver = _globalNSResolver; _contextItem = 0; _contextSize = 1; _contextPosition = 1; _implicitTimezone = 0; _defaultVarStore.clear(); _varStore = &_defaultVarStore; _globalVarStore = &_defaultVarStore; // if(_defaultResolver.adopt) // delete _defaultResolver.resolver; // _defaultResolver.adopt = false; // _defaultResolver.resolver = 0; // std::vector >::reverse_iterator end = _resolvers.rend(); // for(std::vector >::reverse_iterator i = _resolvers.rbegin(); i != end; ++i) { // if(i->adopt) { // delete i->resolver; // } // } // _resolvers.clear(); // _defaultResolver.resolver = _conf->createDefaultURIResolver(&_internalMM); // if(_defaultResolver.resolver != 0) { // _defaultResolver.adopt = true; // } time(&_currentTime); } const StaticType &XQContextImpl::getContextItemType() const { return _contextItemType; } void XQContextImpl::setContextItemType(const StaticType &st) { _contextItemType = st; } bool XQContextImpl::getXPath1CompatibilityMode() const { return _xpath1Compatibility; } void XQContextImpl::setXPath1CompatibilityMode(bool newMode) { _xpath1Compatibility=newMode; } const XMLCh* XQContextImpl::getDefaultFuncNS() const { return _functionNS; } void XQContextImpl::setDefaultFuncNS(const XMLCh* newNS) { _functionNS=newNS; } const XMLCh* XQContextImpl::getBaseURI() const { return _baseURI; } void XQContextImpl::setBaseURI(const XMLCh* newURI) { _baseURI = _internalMM.getPooledString(newURI); } StaticContext::ConstructionMode XQContextImpl::getConstructionMode() const { return _constructionMode; } void XQContextImpl::setConstructionMode(ConstructionMode newMode) { _constructionMode=newMode; } StaticContext::NodeSetOrdering XQContextImpl::getNodeSetOrdering() const { return _ordering; } void XQContextImpl::setNodeSetOrdering(NodeSetOrdering newOrder) { _ordering=newOrder; } StaticContext::FLWOROrderingMode XQContextImpl::getDefaultFLWOROrderingMode() const { return _flworOrderingMode; } void XQContextImpl::setDefaultFLWOROrderingMode(StaticContext::FLWOROrderingMode newMode) { _flworOrderingMode=newMode; } time_t XQContextImpl::getCurrentTime() const { return _currentTime; } void XQContextImpl::setCurrentTime(time_t newTime) { _currentTime=newTime; } ATDurationOrDerived::Ptr XQContextImpl::getImplicitTimezone() const { if(_implicitTimezone == NULLRCP) { // validate tzone Timezone tzone(ContextUtils::getTimezone()); // c-style the const away since we are in a const method ((XQContextImpl*)this)->_implicitTimezone = tzone.asDayTimeDuration(this); } return _implicitTimezone; } void XQContextImpl::setImplicitTimezone(const ATDurationOrDerived::Ptr &timezoneAsDuration) { // validate the timezone -- will trow if invalid Timezone timezone(timezoneAsDuration, this); this->_implicitTimezone = timezoneAsDuration; } void XQContextImpl::setNSResolver(const DOMXPathNSResolver* resolver) { _nsResolver = resolver; } const DOMXPathNSResolver* XQContextImpl::getNSResolver() const { return _nsResolver; } const XMLCh* XQContextImpl::getUriBoundToPrefix(const XMLCh* prefix, const LocationInfo *location) const { if(prefix == 0 || *prefix == 0) return 0; const XMLCh* uri = _nsResolver->lookupNamespaceURI(prefix); if((uri == 0 || *uri == 0) && prefix != 0 && *prefix != 0) { const XMLCh* msg = XPath2Utils::concatStrings(X("No namespace for prefix \'"), prefix, X("\' [err:XPST0081]"), getMemoryManager()); XQThrow3(NamespaceLookupException, X("XQContextImpl::getUriBoundToPrefix"), msg, location); } return uri; } const XMLCh* XQContextImpl::getPrefixBoundToUri(const XMLCh* uri) const { return _nsResolver->lookupPrefix(uri); } void XQContextImpl::setContextItem(const Item::Ptr &item) { _contextItem = item; } void XQContextImpl::addTemplate(XQUserFunction *tp) { if(tp->getName() != 0) { if(_templateNameMap.containsKey((void*)tp->getURINameHash())) { // [ERR XTSE0660] It is a static error if a stylesheet contains more than one template with // the same name and the same import precedence, unless it also contains a template with the // same name and higher import precedence. XMLBuffer buf; buf.set(X("Multiple templates have the same expanded QName {")); buf.append(tp->getURI()); buf.append(X("}")); buf.append(tp->getName()); buf.append(X(" [err:XTSE0660].")); XQThrow3(StaticErrorException,X("XQContextImpl::addNamedTemplate"), buf.getRawBuffer(), tp); } _templateNameMap.put((void*)tp->getURINameHash(), tp); } _templates.push_back(tp); } const XQUserFunction *XQContextImpl::lookUpNamedTemplate(const XMLCh *uri, const XMLCh *name) const { XMLBuffer key; key.set(name); key.append(uri); return _templateNameMap.get(key.getRawBuffer()); } const UserFunctions &XQContextImpl::getTemplateRules() const { return _templates; } void XQContextImpl::addCustomFunction(FuncFactory *func) { if(_functionTable==NULL) _functionTable = new (&_internalMM) FunctionLookup(&_internalMM); _functionTable->insertFunction(func); } void XQContextImpl::removeCustomFunction(FuncFactory *func) { if(_functionTable != NULL) _functionTable->removeFunction(func); } void XQContextImpl::setContextSize(size_t size) { _contextSize = size; } void XQContextImpl::setContextPosition(size_t pos) { _contextPosition = pos; } Item::Ptr XQContextImpl::getContextItem() const { return _contextItem; } const VariableStore* XQContextImpl::getVariableStore() const { return _varStore; } void XQContextImpl::setVariableStore(const VariableStore *store) { assert(store); _varStore = store; } const VariableStore* XQContextImpl::getGlobalVariableStore() const { return _globalVarStore; } void XQContextImpl::setGlobalVariableStore(const VariableStore *store) { _globalVarStore = store; } void XQContextImpl::setExternalVariable(const XMLCh *namespaceURI, const XMLCh *name, const Result &value) { _defaultVarStore.setVar(namespaceURI, name, value); } void XQContextImpl::setExternalVariable(const XMLCh *qname, const Result &value) { const XMLCh *uri = getUriBoundToPrefix(XPath2NSUtils::getPrefix(qname, getMemoryManager()), 0); const XMLCh *name = XPath2NSUtils::getLocalName(qname); _defaultVarStore.setVar(uri, name, value); } VariableTypeStore* XQContextImpl::getVariableTypeStore() { return _varTypeStore; } const RegexGroupStore *XQContextImpl::getRegexGroupStore() const { return _regexStore; } void XQContextImpl::setRegexGroupStore(const RegexGroupStore *store) { _regexStore = store; } size_t XQContextImpl::getContextSize() const { return _contextSize; } size_t XQContextImpl::getContextPosition() const { return _contextPosition; } XPath2MemoryManager* XQContextImpl::getMemoryManager() const { return _memMgr; } const XMLCh* XQContextImpl::getDefaultElementAndTypeNS() const { return _defaultElementNS; } void XQContextImpl::setDefaultElementAndTypeNS(const XMLCh* newNS) { _defaultElementNS = newNS; } void XQContextImpl::addCollation(Collation* collation) { _collations.push_back(collation); } void XQContextImpl::setDefaultCollation(const XMLCh* URI) { _defaultCollation=getMemoryManager()->getPooledString(URI); } Collation* XQContextImpl::getCollation(const XMLCh* URI, const LocationInfo *location) const { if(!XMLUri::isValidURI(false, URI)) { const XMLCh* baseURI=getBaseURI(); if(baseURI && *baseURI) { try { XMLUri base(baseURI, getMemoryManager()); XMLUri full(&base, URI, getMemoryManager()); URI = getMemoryManager()->getPooledString(full.getUriText()); } catch(XMLException &e) { //if can't build, assume it's because there was an invalid base URI, so use the original URI } } } for(std::vector >::const_iterator it= _collations.begin(); it!=_collations.end(); ++it) if(XPath2Utils::equals((*it)->getCollationName(), URI)) return (*it); const XMLCh* msg = XPath2Utils::concatStrings(X("The requested collation ('"), URI, X("') is not defined [err:FOCH0002]"), getMemoryManager()); XQThrow3(ContextException, X("XQContextImpl::getCollation"), msg, location); return NULL; } Collation* XQContextImpl::getDefaultCollation(const LocationInfo *location) const { return getCollation(_defaultCollation, location); } ASTNode *XQContextImpl::lookUpFunction(const XMLCh *uri, const XMLCh* name, const VectorOfASTNodes &v, const LocationInfo *location) const { ASTNode* functionImpl = FunctionLookup::lookUpGlobalFunction(uri, name, v, getMemoryManager(), _functionTable); if(functionImpl) { functionImpl->setLocationInfo(location); return functionImpl; } if(v.size() != 1) return 0; // maybe it's not a function, but a datatype try { bool isPrimitive; _itemFactory->getPrimitiveTypeIndex(uri, name, isPrimitive); } catch(TypeNotFoundException&) { // ignore this exception: it means the type has not been found return 0; } if((XPath2Utils::equals(name, XMLUni::fgNotationString) || XPath2Utils::equals(name, AnyAtomicType::fgDT_ANYATOMICTYPE)) && XPath2Utils::equals(uri, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) return 0; XPath2MemoryManager *mm = getMemoryManager(); SequenceType *seqType = new (mm) SequenceType(uri, name, SequenceType::QUESTION_MARK, mm); seqType->setLocationInfo(location); functionImpl = new (mm) XQCastAs(v[0], seqType, mm); functionImpl->setLocationInfo(location); return functionImpl; } void XQContextImpl::addExternalFunction(const ExternalFunction *func) { if(_functionTable==NULL) _functionTable = new (&_internalMM) FunctionLookup(&_internalMM); _functionTable->insertExternalFunction(func); } const ExternalFunction *XQContextImpl::lookUpExternalFunction(const XMLCh *uri, const XMLCh *name, size_t numArgs) const { if(_exFuncResolver) { ExternalFunction *result = _exFuncResolver->resolveExternalFunction(uri, name, numArgs, this); if(result != 0) { // Store the ExternalFunction so we can delete it later const_cast(this)->_exFuncs.push_back(result); return result; } } return FunctionLookup::lookUpGlobalExternalFunction(uri, name, numArgs, _functionTable); } void XQContextImpl::setXMLEntityResolver(XMLEntityResolver* const handler) { _docCache->setXMLEntityResolver(handler); } XMLEntityResolver* XQContextImpl::getXMLEntityResolver() const { return _docCache->getXMLEntityResolver(); } void XQContextImpl::registerURIResolver(URIResolver *resolver, bool adopt) { if(resolver != 0) { _resolvers.push_back(ResolverEntry(resolver, adopt)); } } URIResolver *XQContextImpl::getDefaultURIResolver() const { return _defaultResolver.resolver; } void XQContextImpl::setDefaultURIResolver(URIResolver *resolver, bool adopt) { if(_defaultResolver.adopt) { delete _defaultResolver.resolver; } _defaultResolver.resolver = resolver; _defaultResolver.adopt = adopt; } Node::Ptr XQContextImpl::parseDocument(InputSource &srcToUse, const LocationInfo *location, const QueryPathNode *projection) { try { return _docCache->parseDocument(srcToUse, this, projection); } catch(XQException &e) { if(e.getXQueryLine() == 0 && location) e.setXQueryPosition(location); throw; } } Sequence XQContextImpl::resolveDocument(const XMLCh* uri, const LocationInfo *location, const QueryPathNode *projection) { Sequence result(getMemoryManager()); // Check the URIResolver objects try { std::vector >::reverse_iterator end = _resolvers.rend(); for(std::vector >::reverse_iterator i = _resolvers.rbegin(); i != end; ++i) { if(i->resolver->resolveDocument(result, uri, this, projection)) return result; } if(_defaultResolver.resolver) _defaultResolver.resolver->resolveDocument(result, uri, this, projection); } catch(XQException &e) { if(e.getXQueryLine() == 0 && location) e.setXQueryPosition(location); throw; } return result; } Sequence XQContextImpl::resolveCollection(const XMLCh* uri, const LocationInfo *location, const QueryPathNode *projection) { Sequence result(getMemoryManager()); // Check the URIResolver objects try { std::vector >::reverse_iterator end = _resolvers.rend(); for(std::vector >::reverse_iterator i = _resolvers.rbegin(); i != end; ++i) { if(i->resolver->resolveCollection(result, uri, this, projection)) return result; } if(_defaultResolver.resolver) _defaultResolver.resolver->resolveCollection(result, uri, this, projection); } catch(XQException &e) { if(e.getXQueryLine() == 0 && location) e.setXQueryPosition(location); throw; } return result; } Sequence XQContextImpl::resolveDefaultCollection(const QueryPathNode *projection) { Sequence result(getMemoryManager()); std::vector >::reverse_iterator end = _resolvers.rend(); for(std::vector >::reverse_iterator i = _resolvers.rbegin(); i != end; ++i) { if(i->resolver->resolveDefaultCollection(result, this, projection)) return result; } if(_defaultResolver.resolver) _defaultResolver.resolver->resolveDefaultCollection(result, this, projection); return result; } bool XQContextImpl::putDocument(const Node::Ptr &document, const XMLCh *uri) { std::vector >::reverse_iterator end = _resolvers.rend(); for(std::vector >::reverse_iterator i = _resolvers.rbegin(); i != end; ++i) { if(i->resolver->putDocument(document, uri, this)) return true; } if(_defaultResolver.resolver) return _defaultResolver.resolver->putDocument(document, uri, this); return false; } void XQContextImpl::setModuleResolver(ModuleResolver *resolver) { _moduleResolver=resolver; } ModuleResolver * XQContextImpl::getModuleResolver() const { return _moduleResolver; } VectorOfStrings* XQContextImpl::resolveModuleURI(const XMLCh* uri) const { VectorOfStrings* vect=new (getMemoryManager()) VectorOfStrings(XQillaAllocator(getMemoryManager())); if(_moduleResolver) _moduleResolver->resolveModuleLocation(vect, uri, this); return vect; } void XQContextImpl::setExternalFunctionResolver(ExternalFunctionResolver *resolver) { _exFuncResolver=resolver; } ExternalFunctionResolver *XQContextImpl::getExternalFunctionResolver() const { return _exFuncResolver; } /* * returns true if the type represented by uri:typename is an instance of uriToCheck:typeNameToCheck * * ie: to check * xs:integer instance of xs:decimal, * call * isTypeOrDerivedFromType("xs", "integer", "xs", "decimal") * (except of course, call with URIs, not prefixes!) */ bool XQContextImpl::isTypeOrDerivedFromType(const XMLCh* uri, const XMLCh* typeName, const XMLCh* uriToCheck, const XMLCh* typeNameToCheck) const { return _docCache->isTypeOrDerivedFromType(uri,typeName,uriToCheck,typeNameToCheck); } void XQContextImpl::addSchemaLocation(const XMLCh* uri, VectorOfStrings* locations, const LocationInfo *location) { _docCache->addSchemaLocation(uri, locations, this, location); } DocumentCache* XQContextImpl::getDocumentCache() const { return _docCache; } void XQContextImpl::setDocumentCache(DocumentCache* docCache) { _docCache = docCache; } SequenceBuilder *XQContextImpl::createSequenceBuilder() const { return _conf->createSequenceBuilder(this); } ItemFactory *XQContextImpl::getItemFactory() const { return _itemFactory; } void XQContextImpl::setItemFactory(ItemFactory *factory) { _itemFactory = factory; } UpdateFactory *XQContextImpl::createUpdateFactory() const { return _conf->createUpdateFactory(const_cast(&_internalMM)); } void XQContextImpl::setRevalidationMode(DocumentCache::ValidationMode mode) { _revalidationMode = mode; } DocumentCache::ValidationMode XQContextImpl::getRevalidationMode() const { return _revalidationMode; } void XQContextImpl::setMessageListener(MessageListener *listener) { _messageListener = listener; } MessageListener *XQContextImpl::getMessageListener() const { return _messageListener; } void XQContextImpl::setDebugListener(DebugListener *listener) { _debugListener = listener; } DebugListener *XQContextImpl::getDebugListener() const { return _debugListener; } void XQContextImpl::setStackFrame(const StackFrame *frame) { _stackFrame = frame; } const StackFrame *XQContextImpl::getStackFrame() const { return _stackFrame; } void XQContextImpl::testInterrupt() const { _conf->testInterrupt(); } const XMLCh *XQContextImpl::allocateTempVarName(const XMLCh *prefix) { static XMLCh default_prefix[] = { 't', 'm', 'p', 0 }; if(prefix == 0) prefix = default_prefix; XMLBuffer buf(20); buf.append('#'); buf.append(prefix); XPath2Utils::numToBuf(_tmpVarCounter, buf); ++_tmpVarCounter; return getMemoryManager()->getPooledString(buf.getRawBuffer()); } XQilla-2.3.0/src/context/impl/CodepointCollation.cpp0000644000151400015140000001107411653565523017352 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include #include #include CodepointCollation::CodepointCollation() { } static XMLCh codepointName[]= /* http://www.w3.org/2005/xpath-functions/collation/codepoint */ { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_h, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_p, XERCES_CPP_NAMESPACE_QUALIFIER chColon, XERCES_CPP_NAMESPACE_QUALIFIER chForwardSlash, XERCES_CPP_NAMESPACE_QUALIFIER chForwardSlash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_w, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_w, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_w, XERCES_CPP_NAMESPACE_QUALIFIER chPeriod, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_w, XERCES_CPP_NAMESPACE_QUALIFIER chDigit_3, XERCES_CPP_NAMESPACE_QUALIFIER chPeriod, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_g, XERCES_CPP_NAMESPACE_QUALIFIER chForwardSlash, XERCES_CPP_NAMESPACE_QUALIFIER chDigit_2, XERCES_CPP_NAMESPACE_QUALIFIER chDigit_0, XERCES_CPP_NAMESPACE_QUALIFIER chDigit_0, XERCES_CPP_NAMESPACE_QUALIFIER chDigit_5, XERCES_CPP_NAMESPACE_QUALIFIER chForwardSlash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_x, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_p, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_h, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chForwardSlash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_l, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_l, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chForwardSlash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_p, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; /*static*/ const XMLCh* CodepointCollation::getCodepointCollationName() { return codepointName; } const XMLCh* CodepointCollation::getCollationName() const { return getCodepointCollationName(); } int CodepointCollation::compare(const XMLCh* string1, const XMLCh* string2) const { if(string1 == string2) return 0; if(string1 == 0) return *string2 == 0 ? 0 : -1; // string2 == 0 is handled by the first line if(string2 == 0) return *string1 == 0 ? 0 : 1; // string1 == 0 is handled by the first line int diff; while((diff = int(*string1) - int(*string2)) == 0) { // If either has ended, then they both ended, so equal if(*string1 == 0) break; // Move upwards for the next round ++string1; ++string2; } return diff < 0 ? -1 : (diff > 0 ? 1 : 0); } XQilla-2.3.0/src/context/impl/CollationImpl.cpp0000644000151400015140000000352211653565523016326 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include #include #include #include #include #include CollationImpl::CollationImpl(XPath2MemoryManager* memMgr, CollationHelper* helper) { _memMgr=memMgr; _helper=helper; } const XMLCh* CollationImpl::getCollationName() const { return _helper->getCollationName(); } int CollationImpl::compare(const XMLCh* const string1, const XMLCh* const string2) const { return _helper->compare(string1,string2); } Sequence CollationImpl::sort(Sequence data, const DynamicContext* context) const { // build a sequence made of strings Sequence stringSeq = Sequence(data.getLength(), context->getMemoryManager()); for(Sequence::iterator it=data.begin(); it!=data.end(); ++it) { const XMLCh *str = (*it)->asString(context); stringSeq.addItem(context->getItemFactory()->createString(str, context).get()); } stringSeq.sortWithCollation(this, context); return stringSeq; } XQilla-2.3.0/src/context/impl/VarTypeStoreImpl.hpp0000644000151400015140000000655011653565523017022 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* VarStoreImpl - Implementation of the variable store class */ #ifndef _VARTYPESTOREIMPL_HPP #define _VARTYPESTOREIMPL_HPP #include #include #include #include #include #include class XPath2MemoryManager; /** implementation of the variable type store. */ class XQILLA_API VarTypeStoreImpl : public VariableTypeStore { public: /** constructor. automatically creates a global store for the global variables. */ VarTypeStoreImpl(XPath2MemoryManager* memMgr); /// destructor ~VarTypeStoreImpl(); /** Clears all variable values and added scopes from the store */ virtual void clear(); /** Adds a new scope to the store. Add a LOCAL_SCOPE scope at the beginning of *procedural* methods, and a LOGICAL_BLOCK_SCOPE scope at the beginning of logical block methods. */ virtual void addLocalScope(); virtual void addLogicalBlockScope(); /** Removes the top level scope from the store. To be called at the end of methods to implement scoping. */ virtual void removeScope(); /** Declares and/or sets a variable in the global scope. */ virtual void declareGlobalVar(const XMLCh* namespaceURI, const XMLCh* name, const StaticAnalysis &src, XQGlobalVariable *global); /** Looks up the value of a variable in the current scope. Returns a boolean (true if successful), and the SequenceType value of the variable*/ virtual const StaticAnalysis* getGlobalVar(const XMLCh* namespaceURI, const XMLCh* name, XQGlobalVariable **global = 0) const; ///Declares a var in the top level scope virtual void declareVar(const XMLCh* namespaceURI, const XMLCh* name, const StaticAnalysis &src); /** Looks up the value of a variable in the current scope. Returns a boolean (true if successful), and the SequenceType value of the variable*/ virtual const StaticAnalysis* getVar(const XMLCh* namespaceURI, const XMLCh* name, XQGlobalVariable **global = 0) const; private: struct VarType { VarType(const StaticAnalysis *t, XQGlobalVariable *g) : type(t), global(g) {} const StaticAnalysis *type; XQGlobalVariable *global; }; VariableStoreTemplate _store; }; #endif XQilla-2.3.0/src/context/impl/VarHashEntryImpl.cpp0000644000151400015140000000147011653565523016760 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include XQilla-2.3.0/src/context/impl/ItemFactoryImpl.cpp0000644000151400015140000005461511653565523016641 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "../../exceptions/InvalidLexicalSpaceException.hpp" #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif ItemFactoryImpl::ItemFactoryImpl(const DocumentCache* dc, MemoryManager* memMgr) : datatypeLookup_(new (memMgr) DatatypeLookup(dc, memMgr)) { } ItemFactoryImpl::ItemFactoryImpl(DatatypeLookup *datatypeLookup) : datatypeLookup_(datatypeLookup) { } ItemFactoryImpl::~ItemFactoryImpl() { delete datatypeLookup_; } AnyAtomicType::AtomicObjectType ItemFactoryImpl::getPrimitiveTypeIndex(const XMLCh* typeURI, const XMLCh* typeName, bool &isPrimitive) const { const DatatypeFactory* dtf = datatypeLookup_->lookupDatatype(typeURI, typeName, isPrimitive); return dtf->getPrimitiveTypeIndex(); } void ItemFactoryImpl::getPrimitiveTypeName(AnyAtomicType::AtomicObjectType type, const XMLCh *&typeURI, const XMLCh *&typeName) const { const DatatypeFactory *dtf = datatypeLookup_->lookupDatatype(type); typeURI = dtf->getPrimitiveTypeURI(); typeName = dtf->getPrimitiveTypeName(); } ATQNameOrDerived::Ptr ItemFactoryImpl::createQName(const XMLCh* uri, const XMLCh *prefix, const XMLCh* name, const DynamicContext* context ) { return createQNameOrDerived( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_QNAME, uri, prefix, name, context ); } ATDoubleOrDerived::Ptr ItemFactoryImpl::createDouble(const MAPM value, const DynamicContext* context) { return new ATDoubleOrDerivedImpl(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_DOUBLE, value, context); } ATDoubleOrDerived::Ptr ItemFactoryImpl::createDouble(const XMLCh* value, const DynamicContext* context) { return (ATDoubleOrDerived*)datatypeLookup_->getDoubleFactory()->createInstance(value, context).get(); } ATFloatOrDerived::Ptr ItemFactoryImpl::createFloat(const MAPM value, const DynamicContext* context) { return new ATFloatOrDerivedImpl(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_FLOAT, value, context); } ATFloatOrDerived::Ptr ItemFactoryImpl::createFloat(const XMLCh* value, const DynamicContext* context) { return (ATFloatOrDerived*)datatypeLookup_->getFloatFactory()->createInstance(value, context).get(); } ATDecimalOrDerived::Ptr ItemFactoryImpl::createDecimal(const MAPM value, const DynamicContext* context) { return new ATDecimalOrDerivedImpl(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_DECIMAL, value, context); } ATDecimalOrDerived::Ptr ItemFactoryImpl::createDecimal(const XMLCh* value, const DynamicContext* context) { return (ATDecimalOrDerived*)datatypeLookup_->getDecimalFactory()->createInstance(value, context).get(); } ATDecimalOrDerived::Ptr ItemFactoryImpl::createInteger(const int value, const DynamicContext* context) { return context->getMemoryManager()->createInteger(value); } ATDecimalOrDerived::Ptr ItemFactoryImpl::createInteger(const MAPM value, const DynamicContext* context) { if(value.is_integer()) { return new ATDecimalOrDerivedImpl(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, value, context); } return createDecimalOrDerived( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, value, context); } ATDecimalOrDerived::Ptr ItemFactoryImpl::createInteger(const XMLCh* value, const DynamicContext* context) { return createDecimalOrDerived( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, value, context); } ATBooleanOrDerived::Ptr ItemFactoryImpl::createBoolean(bool value, const DynamicContext* context) { return createBooleanOrDerived( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_BOOLEAN, value, context); } ATBooleanOrDerived::Ptr ItemFactoryImpl::createBoolean(BoolResult value, const DynamicContext* context) { if(value == BoolResult::Null) return 0; return createBooleanOrDerived( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_BOOLEAN, value, context); } ATBooleanOrDerived::Ptr ItemFactoryImpl::createBoolean(const XMLCh* value, const DynamicContext* context) { return (ATBooleanOrDerived*)datatypeLookup_->getBooleanFactory()->createInstance(value, context).get(); } ATDecimalOrDerived::Ptr ItemFactoryImpl::createNonNegativeInteger(const MAPM value, const DynamicContext* context) { if(value.is_integer() && value.sign() >= 0) { return new ATDecimalOrDerivedImpl(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_NONNEGATIVEINTEGER, value, context); } return createDecimalOrDerived( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_NONNEGATIVEINTEGER, value, context); } ATDurationOrDerived::Ptr ItemFactoryImpl::createDayTimeDuration(const XMLCh* value, const DynamicContext* context) { return (ATDurationOrDerived*)datatypeLookup_->getDurationFactory()-> createInstance(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, ATDurationOrDerived::fgDT_DAYTIMEDURATION, value, context).get(); } ATDurationOrDerived::Ptr ItemFactoryImpl::createDayTimeDuration(const MAPM &seconds, const DynamicContext* context) { return new ATDurationOrDerivedImpl(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, ATDurationOrDerived::fgDT_DAYTIMEDURATION, 0, seconds, context); } ATDurationOrDerived::Ptr ItemFactoryImpl::createYearMonthDuration(const XMLCh* value, const DynamicContext* context) { return (ATDurationOrDerived*)datatypeLookup_->getDurationFactory()-> createInstance(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, ATDurationOrDerived::fgDT_YEARMONTHDURATION, value, context).get(); } ATDurationOrDerived::Ptr ItemFactoryImpl::createYearMonthDuration(const MAPM &months, const DynamicContext* context) { return new ATDurationOrDerivedImpl(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, ATDurationOrDerived::fgDT_YEARMONTHDURATION, months, 0, context); } ATDateOrDerived::Ptr ItemFactoryImpl::createDate(const XMLCh* value, const DynamicContext* context) { return (ATDateOrDerived*)datatypeLookup_->getDateFactory()->createInstance(value, context).get(); } ATDateTimeOrDerived::Ptr ItemFactoryImpl::createDateTime(const XMLCh* value, const DynamicContext* context) { return (ATDateTimeOrDerived*)datatypeLookup_->getDateTimeFactory()->createInstance(value, context).get(); } ATTimeOrDerived::Ptr ItemFactoryImpl::createTime(const XMLCh* value, const DynamicContext* context) { return (ATTimeOrDerived*)datatypeLookup_->getTimeFactory()->createInstance(value, context).get(); } ATAnyURIOrDerived::Ptr ItemFactoryImpl::createAnyURI(const XMLCh* value, const DynamicContext* context) { return datatypeLookup_->getAnyURIFactory()->createInstance(value, context); } ATStringOrDerived::Ptr ItemFactoryImpl::createString(const XMLCh* value, const DynamicContext* context) { return (ATStringOrDerived*)datatypeLookup_->getStringFactory()->createInstance(value, context).get(); } ////////////////////////// // All creation methods // ////////////////////////// AnyAtomicType::Ptr ItemFactoryImpl::createDerivedFromAtomicType(AnyAtomicType::AtomicObjectType typeIndex, const XMLCh* value, const DynamicContext* context) { return datatypeLookup_->lookupDatatype(typeIndex)->createInstance(value, context); } AnyAtomicType::Ptr ItemFactoryImpl::createDerivedFromAtomicType(AnyAtomicType::AtomicObjectType typeIndex, const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) { return datatypeLookup_->lookupDatatype(typeIndex)->createInstance(typeURI, typeName, value, context); } AnyAtomicType::Ptr ItemFactoryImpl::createDerivedFromAtomicType(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) { bool isPrimitive; const DatatypeFactory* dtf = datatypeLookup_->lookupDatatype(typeURI, typeName, isPrimitive); if(isPrimitive) { return dtf->createInstance(value, context); } else { return dtf->createInstance(typeURI, typeName, value, context); } } /** create a xs:boolean */ ATBooleanOrDerived::Ptr ItemFactoryImpl::createBooleanOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) { return (const ATBooleanOrDerived*)datatypeLookup_->getBooleanFactory()->createInstance(typeURI, typeName, value, context).get(); } /** create a xs:boolean with a bool value */ ATBooleanOrDerived::Ptr ItemFactoryImpl::createBooleanOrDerived(const XMLCh* typeURI, const XMLCh* typeName, bool value, const DynamicContext* context) { // No need to validate return new ATBooleanOrDerivedImpl(typeURI, typeName, value, context); } /** create a xs:date */ ATDateOrDerived::Ptr ItemFactoryImpl::createDateOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context){ return (const ATDateOrDerived*)datatypeLookup_->getDateFactory()->createInstance(typeURI, typeName, value, context).get(); } /** create a xs:dateTime */ ATDateTimeOrDerived::Ptr ItemFactoryImpl::createDateTimeOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context){ return (const ATDateTimeOrDerived*)datatypeLookup_->getDateTimeFactory()->createInstance(typeURI, typeName, value, context).get(); } /** create a xs:decimal */ ATDecimalOrDerived::Ptr ItemFactoryImpl::createDecimalOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context){ return (const ATDecimalOrDerived*)datatypeLookup_->getDecimalFactory()->createInstance(typeURI, typeName, value, context).get(); } /** create a xs:decimal with a MAPM */ ATDecimalOrDerived::Ptr ItemFactoryImpl::createDecimalOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const MAPM value, const DynamicContext* context) { ATDecimalOrDerived::Ptr retVal = new ATDecimalOrDerivedImpl(typeURI, typeName, value, context); // check if it's a valid instance DatatypeValidator* validator = context->getDocumentCache()->getDatatypeValidator(typeURI, typeName); if(!validator) { XMLBuffer buf(1023, context->getMemoryManager()); buf.append(X("Type ")); buf.append(typeURI); buf.append(chColon); buf.append(typeName); buf.append(X(" not found")); XQThrow2(TypeNotFoundException, X("ItemFactoryImpl::createDecimalOrDerived"), buf.getRawBuffer()); } try { validator->validate(retVal->asString(context), 0, context->getMemoryManager()); } catch (XMLException &e) { XMLBuffer buf(1023, context->getMemoryManager()); buf.append(e.getMessage()); buf.append(X(" [err:FORG0001]")); XQThrow2(InvalidLexicalSpaceException, X("ItemFactoryImpl::createDecimalOrDerived"), buf.getRawBuffer()); } return retVal; } /** create a xs:double */ ATDoubleOrDerived::Ptr ItemFactoryImpl::createDoubleOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context){ if(XPath2Utils::equals(value, Numeric::NAN_string)) { value= Numeric::NaN_string; } return (const ATDoubleOrDerived*)datatypeLookup_->getDoubleFactory()->createInstance(typeURI, typeName, value, context).get(); } /** create a xs:double with a MAPM */ ATDoubleOrDerived::Ptr ItemFactoryImpl::createDoubleOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const MAPM value, const DynamicContext* context) { ATDoubleOrDerived::Ptr retVal = new ATDoubleOrDerivedImpl(typeURI, typeName, value, context); // check if it's a valid instance DatatypeValidator* validator = context->getDocumentCache()->getDatatypeValidator(typeURI, typeName); if(!validator) { XMLBuffer buf(1023, context->getMemoryManager()); buf.append(X("Type ")); buf.append(typeURI); buf.append(chColon); buf.append(typeName); buf.append(X(" not found")); XQThrow2(TypeNotFoundException, X("ItemFactoryImpl::createDoubleOrDerived"), buf.getRawBuffer()); } try { validator->validate(retVal->asString(context), 0, context->getMemoryManager()); } catch (XMLException &e) { XMLBuffer buf(1023, context->getMemoryManager()); buf.append(e.getMessage()); buf.append(X(" [err:FORG0001]")); XQThrow2(InvalidLexicalSpaceException, X("ItemFactoryImpl::createDoubleOrDerived"), buf.getRawBuffer()); } return retVal; } /** create a xs:float */ ATFloatOrDerived::Ptr ItemFactoryImpl::createFloatOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context){ if(XPath2Utils::equals(value, Numeric::NAN_string)) { value= Numeric::NaN_string; } return (const ATFloatOrDerived::Ptr)datatypeLookup_->getFloatFactory()->createInstance(typeURI, typeName, value, context); } /** create a xs:float with a MAPM */ ATFloatOrDerived::Ptr ItemFactoryImpl::createFloatOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const MAPM value, const DynamicContext* context) { ATFloatOrDerived::Ptr retVal = new ATFloatOrDerivedImpl(typeURI, typeName, value, context); // check if it's a valid instance DatatypeValidator* validator = context->getDocumentCache()->getDatatypeValidator(typeURI, typeName); if(!validator) { XMLBuffer buf(1023, context->getMemoryManager()); buf.append(X("Type ")); buf.append(typeURI); buf.append(chColon); buf.append(typeName); buf.append(X(" not found")); XQThrow2(TypeNotFoundException, X("ItemFactoryImpl::createDoubleOrDerived"), buf.getRawBuffer()); } try { validator->validate(retVal->asString(context), 0, context->getMemoryManager()); } catch (XMLException &e) { XMLBuffer buf(1023, context->getMemoryManager()); buf.append(e.getMessage()); buf.append(X(" [err:FORG0001]")); XQThrow2(InvalidLexicalSpaceException, X("ItemFactoryImpl::createDoubleOrDerived"), buf.getRawBuffer()); } return retVal; } /** create a xs:gDay */ ATGDayOrDerived::Ptr ItemFactoryImpl::createGDayOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) { return (const ATGDayOrDerived::Ptr)datatypeLookup_->getGDayFactory()->createInstance(typeURI, typeName, value, context); } /** create a xs:gMonth */ ATGMonthOrDerived::Ptr ItemFactoryImpl::createGMonthOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) { return (const ATGMonthOrDerived::Ptr)datatypeLookup_->getGMonthFactory()->createInstance(typeURI, typeName, value, context); } /** create a xs:gMonthDay */ ATGMonthDayOrDerived::Ptr ItemFactoryImpl::createGMonthDayOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) { return (const ATGMonthDayOrDerived::Ptr)datatypeLookup_->getGMonthDayFactory()->createInstance(typeURI, typeName, value, context); } /** create a xs:gYear */ ATGYearOrDerived::Ptr ItemFactoryImpl::createGYearOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) { return (const ATGYearOrDerived::Ptr)datatypeLookup_->getGYearFactory()->createInstance(typeURI, typeName, value, context); } /** create a xs:gYearMonth */ ATGYearMonthOrDerived::Ptr ItemFactoryImpl::createGYearMonthOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) { return (const ATGYearMonthOrDerived::Ptr)datatypeLookup_->getGYearMonthFactory()->createInstance(typeURI, typeName, value, context); } /** create a xs:QName with two parameters */ ATQNameOrDerived::Ptr ItemFactoryImpl::createQNameOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* uri, const XMLCh* prefix, const XMLCh* name, const DynamicContext* context) { ATQNameOrDerivedImpl* tmp = new ATQNameOrDerivedImpl(typeURI, typeName, uri, prefix, name, context); const DatatypeFactory* dtf_anyURI = datatypeLookup_->getAnyURIFactory(); if(dtf_anyURI->checkInstance(uri, context->getMemoryManager())) { const DatatypeFactory* dtf_NCName = datatypeLookup_->getStringFactory(); if (dtf_NCName->checkInstance(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_NCNAME, name, context->getMemoryManager())) { return tmp; } else { // this call will obviously fail, but it is better for error reporting, // since we actually get the XMLException's error message return (const ATQNameOrDerived::Ptr )dtf_NCName-> createInstance(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_NCNAME, name, context); } } else { // this call will obviously fail, but it is better for error reporting, // since we actually get the XMLException's error message return (const ATQNameOrDerived::Ptr )dtf_anyURI->createInstance(uri, context); } } /** create a xs:string */ ATStringOrDerived::Ptr ItemFactoryImpl::createStringOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) { return (const ATStringOrDerived::Ptr)datatypeLookup_->getStringFactory()->createInstance(typeURI, typeName, value, context); } /** create a xs:time */ ATTimeOrDerived::Ptr ItemFactoryImpl::createTimeOrDerived(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context){ return (const ATTimeOrDerived::Ptr)datatypeLookup_->getTimeFactory()->createInstance(typeURI, typeName, value, context); } /** create an xdt:untypedAtomic */ ATUntypedAtomic::Ptr ItemFactoryImpl::createUntypedAtomic(const XMLCh* value, const DynamicContext* context) { return (const ATUntypedAtomic::Ptr)datatypeLookup_->getUntypedAtomicFactory()->createInstance(value, context); } XQilla-2.3.0/src/context/impl/VarTypeStoreImpl.cpp0000644000151400015140000000557111653565523017017 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include #include "VarTypeStoreImpl.hpp" #include #include #include #include VarTypeStoreImpl::VarTypeStoreImpl(XPath2MemoryManager* memMgr) : _store(memMgr) { } VarTypeStoreImpl::~VarTypeStoreImpl() { /* nothing to do */ } void VarTypeStoreImpl::clear() { _store.clear(); } void VarTypeStoreImpl::addLocalScope() { _store.addScope(Scope::LOCAL_SCOPE); } void VarTypeStoreImpl::addLogicalBlockScope() { _store.addScope(Scope::LOGICAL_BLOCK_SCOPE); } void VarTypeStoreImpl::removeScope() { _store.removeScope(); } void VarTypeStoreImpl::declareGlobalVar(const XMLCh* namespaceURI, const XMLCh* name, const StaticAnalysis &src, XQGlobalVariable *global) { _store.setGlobalVar(namespaceURI, name, VarType(&src, global)); } void VarTypeStoreImpl::declareVar(const XMLCh* namespaceURI, const XMLCh* name, const StaticAnalysis &src) { _store.declareVar(namespaceURI, name, VarType(&src, 0)); } const StaticAnalysis *VarTypeStoreImpl::getVar(const XMLCh* namespaceURI, const XMLCh* name, XQGlobalVariable **global) const { VarHashEntry* result = _store.getVar(namespaceURI, name); if(result) { if(global) *global = result->getValue().global; return result->getValue().type; } if(global) *global = 0; return 0; } const StaticAnalysis* VarTypeStoreImpl::getGlobalVar(const XMLCh* namespaceURI, const XMLCh* name, XQGlobalVariable **global) const { VarHashEntry* result = _store.getGlobalVar(namespaceURI, name); if(result) { if(global) *global = result->getValue().global; return result->getValue().type; } if(global) *global = 0; return 0; } XQilla-2.3.0/src/context/UpdateFactory.cpp0000644000151400015140000004525611653565523015403 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; using namespace std; class pucompare { public: pucompare(const DynamicContext *context) : context_(context) {} bool operator()(const PendingUpdate *first, const PendingUpdate *second) const { return first->getTarget()->uniqueLessThan(second->getTarget(), context_); } private: const DynamicContext *context_; }; typedef set PendingUpdateSet; //////////////////////////////////////////////////////////////////////////////////////////////////// class nodecompare { public: nodecompare(const DynamicContext *context) : context_(context) {} bool operator()(const Node::Ptr &first, const Node::Ptr &second) const { return first->uniqueLessThan(second, context_); } private: const DynamicContext *context_; }; class AttrName { public: AttrName(const ATQNameOrDerived::Ptr &name, const LocationInfo *info = 0) : name_(name), info_(info) {} const XMLCh *getURI() const { return name_->getURI(); } const XMLCh *getPrefix() const { return name_->getPrefix(); } const XMLCh *getName() const { return name_->getName(); } bool operator<(const AttrName &o) const { return name_->compare(o.name_, 0) < 0; } ATQNameOrDerived::Ptr name_; const LocationInfo *info_; }; typedef set AttrNameSet; class AttrNamespace { public: AttrNamespace(const XMLCh *prefix, const XMLCh *uri = 0, const LocationInfo *info = 0) : prefix_(prefix), uri_(uri), info_(info) {} bool operator<(const AttrNamespace &o) const { return XPath2Utils::compare(prefix_, o.prefix_) < 0; } const XMLCh *prefix_; const XMLCh *uri_; const LocationInfo *info_; }; typedef set AttrNamespaceSet; class AttrMapValue { public: void addAttr(const ATQNameOrDerived::Ptr &name, DynamicContext *context, const LocationInfo *loc) { MessageListener *mlistener = context->getMessageListener(); // Add the attribute name, and check if it already existed pair result = names.insert(AttrName(name, loc)); if(!result.second) { if(result.first->info_ && mlistener) { mlistener->warning(X("In the context of this expression"), result.first->info_); } XMLBuffer buf; buf.append(X("Attribute {")); buf.append(name->getURI()); buf.append(X("}")); buf.append(name->getName()); buf.append(X(" already exists [err:XUDY0021]")); XQThrow3(DynamicErrorException, X("AttrMapValue::addAttr"), buf.getRawBuffer(), loc); } } void removeAttr(const ATQNameOrDerived::Ptr &name) { names.erase(name); } void addNamespace(const ATQNameOrDerived::Ptr &name, DynamicContext *context, const LocationInfo *loc) { MessageListener *mlistener = context->getMessageListener(); // Add the namespace binding, and check if it is already mapped to a different URI pair result = namespaces.insert(AttrNamespace(name->getPrefix(), name->getURI(), loc)); if(!result.second && !XPath2Utils::equals(result.first->uri_, name->getURI())) { if(result.first->info_ && mlistener) { mlistener->warning(X("In the context of this expression"), result.first->info_); } XMLBuffer buf; buf.append(X("Implied namespace binding for the attribute (\"")); buf.append(name->getPrefix()); buf.append(X("\" -> \"")); buf.append(name->getURI()); buf.append(X("\") conflicts with those already existing on the target element [err:XUDY0024]")); XQThrow3(DynamicErrorException, X("AttrMapValue::addNamespace"), buf.getRawBuffer(), loc); } } AttrNameSet names; AttrNamespaceSet namespaces; }; class AttrMap : public map { public: AttrMap(const DynamicContext *context) : map(nodecompare(context)) {} AttrMapValue &get(const Node::Ptr &node, DynamicContext *context) { iterator found = find(node); if(found == end()) { AttrMapValue &value = insert(value_type(node, AttrMapValue())).first->second; // Add the existing attributes Result attrs = node->dmAttributes(context, 0); Node::Ptr tmp; while((tmp = (Node*)attrs->next(context).get()).notNull()) { value.names.insert(tmp->dmNodeName(context)); } // Add the existing namespace bindings Result namespaces = node->dmNamespaceNodes(context, 0); while((tmp = (Node*)namespaces->next(context).get()).notNull()) { ATQNameOrDerived::Ptr name = tmp->dmNodeName(context); value.namespaces.insert(AttrNamespace(name.isNull() ? 0 : name->getName(), tmp->dmStringValue(context))); } return value; } return found->second; } }; //////////////////////////////////////////////////////////////////////////////////////////////////// void UpdateFactory::applyUpdates(const PendingUpdateList &pul, DynamicContext *context, DocumentCache::ValidationMode valMode) { PendingUpdateList::const_iterator i; MessageListener *mlistener = context->getMessageListener(); valMode_ = valMode; // 1. Checks the update primitives on $pul for compatibility. Raises a dynamic error if any of the following conditions are detected: // a. Two or more upd:rename primitives on the merged list have the same target node [err:XUDY0015]. // b. Two or more upd:replaceNode primitives on the merged list have the same target node [err:XUDY0016]. // c. Two or more upd:replaceValue primitives on the merged list have the same target node [err:XUDY0017]. // d. Two or more upd:replaceElementContent primitives on $pul have the same target node [err:XUDY0017]. { PendingUpdateSet replaceNodeSet = PendingUpdateSet(pucompare(context)); PendingUpdateSet replaceValueSet = PendingUpdateSet(pucompare(context)); PendingUpdateSet renameSet = PendingUpdateSet(pucompare(context)); for(i = pul.begin(); i != pul.end(); ++i) { switch(i->getType()) { case PendingUpdate::REPLACE_ELEMENT_CONTENT: case PendingUpdate::REPLACE_VALUE: { pair res = replaceValueSet.insert(&(*i)); if(!res.second) { if(mlistener != 0) { mlistener->warning(X("In the context of this expression"), *res.first); } XQThrow3(DynamicErrorException, X("UApplyUpdates::createSequence"), X("Incompatible updates - two replace value expressions have the same target node [err:XUDY0017]"), &(*i)); } break; } case PendingUpdate::REPLACE_ATTRIBUTE: case PendingUpdate::REPLACE_NODE: { pair res = replaceNodeSet.insert(&(*i)); if(!res.second) { if(mlistener != 0) { mlistener->warning(X("In the context of this expression"), *res.first); } XQThrow3(DynamicErrorException, X("UApplyUpdates::createSequence"), X("Incompatible updates - two replace expressions have the same target node [err:XUDY0016]"), &(*i)); } break; } case PendingUpdate::RENAME: { pair res = renameSet.insert(&(*i)); if(!res.second) { if(mlistener != 0) { mlistener->warning(X("In the context of this expression"), *res.first); } XQThrow3(DynamicErrorException, X("UApplyUpdates::createSequence"), X("Incompatible updates - two rename expressions have the same target node [err:XUDY0015]"), &(*i)); } break; } case PendingUpdate::PUT: case PendingUpdate::INSERT_INTO: case PendingUpdate::INSERT_ATTRIBUTES: case PendingUpdate::PUDELETE: case PendingUpdate::INSERT_BEFORE: case PendingUpdate::INSERT_AFTER: case PendingUpdate::INSERT_INTO_AS_FIRST: case PendingUpdate::INSERT_INTO_AS_LAST: break; } } } // Perform some checks on any attribute and namespace binding updates. Check for: // 1. Attribute name clashes on the original node, and from other updates // 2. Implied namespace binding clashes on the original node, and from other updates { AttrMap attrCheck(context); for(i = pul.begin(); i != pul.end(); ++i) { switch(i->getType()) { case PendingUpdate::INSERT_ATTRIBUTES: { AttrMapValue &value = attrCheck.get(i->getTarget(), context); Result children = i->getValue(); Node::Ptr node; while((node = (Node*)children->next(context).get()).notNull()) { ATQNameOrDerived::Ptr name = node->dmNodeName(context); // Check if the attribute already exists value.addAttr(name, context, &(*i)); // Check for a namespace clash if(name->getPrefix() != 0 && *(name->getPrefix()) != 0) value.addNamespace(name, context, &(*i)); } break; } case PendingUpdate::RENAME: { ATQNameOrDerived *name = (ATQNameOrDerived*)i->getValue().first().get(); if(i->getTarget()->dmNodeKind() == Node::element_string) { AttrMapValue &value = attrCheck.get(i->getTarget(), context); value.addNamespace(name, context, &(*i)); } else if(i->getTarget()->dmNodeKind() == Node::attribute_string) { Node::Ptr parentNode = i->getTarget()->dmParent(context); if(parentNode.notNull()) { AttrMapValue &value = attrCheck.get(parentNode, context); value.removeAttr(i->getTarget()->dmNodeName(context)); // Check if the new attribute already exists value.addAttr(name, context, &(*i)); // Check for a namespace clash if(name->getPrefix() != 0 && *(name->getPrefix()) != 0) value.addNamespace(name, context, &(*i)); } } break; } default: break; } } for(i = pul.begin(); i != pul.end(); ++i) { switch(i->getType()) { case PendingUpdate::REPLACE_ATTRIBUTE: { Node::Ptr parentNode = i->getTarget()->dmParent(context); AttrMapValue &value = attrCheck.get(parentNode, context); value.removeAttr(i->getTarget()->dmNodeName(context)); Result children = i->getValue(); Node::Ptr node; while((node = (Node*)children->next(context).get()).notNull()) { ATQNameOrDerived::Ptr name = node->dmNodeName(context); // Check if the attribute already exists value.addAttr(name, context, &(*i)); // Check for a namespace clash if(name->getPrefix() != 0 && *(name->getPrefix()) != 0) value.addNamespace(name, context, &(*i)); } break; } default: break; } } } // Call checkUpdates to allow implementations to perform their own checks checkUpdates(pul, context, valMode); // We apply PUT first, to catch the duplicate puts properly for(i = pul.begin(); i != pul.end(); ++i) { switch(i->getType()) { case PendingUpdate::PUT: applyPut(*i, context); break; case PendingUpdate::INSERT_INTO: case PendingUpdate::INSERT_ATTRIBUTES: case PendingUpdate::REPLACE_VALUE: case PendingUpdate::RENAME: case PendingUpdate::PUDELETE: case PendingUpdate::REPLACE_ELEMENT_CONTENT: case PendingUpdate::REPLACE_ATTRIBUTE: case PendingUpdate::REPLACE_NODE: case PendingUpdate::INSERT_BEFORE: case PendingUpdate::INSERT_AFTER: case PendingUpdate::INSERT_INTO_AS_FIRST: case PendingUpdate::INSERT_INTO_AS_LAST: break; } } # // 2. The semantics of all the update primitives on $pul are made effective, in the following order: // a. First, all upd:insertInto, upd:insertAttributes, upd:replaceValue, and upd:rename primitives are applied. for(i = pul.begin(); i != pul.end(); ++i) { switch(i->getType()) { case PendingUpdate::INSERT_INTO: applyInsertInto(*i, context); break; case PendingUpdate::INSERT_ATTRIBUTES: applyInsertAttributes(*i, context); break; case PendingUpdate::REPLACE_VALUE: applyReplaceValue(*i, context); break; case PendingUpdate::RENAME: applyRename(*i, context); break; case PendingUpdate::PUDELETE: case PendingUpdate::PUT: case PendingUpdate::REPLACE_ELEMENT_CONTENT: case PendingUpdate::REPLACE_ATTRIBUTE: case PendingUpdate::REPLACE_NODE: case PendingUpdate::INSERT_BEFORE: case PendingUpdate::INSERT_AFTER: case PendingUpdate::INSERT_INTO_AS_FIRST: case PendingUpdate::INSERT_INTO_AS_LAST: break; } } // b. Next, all upd:insertBefore, upd:insertAfter, upd:insertIntoAsFirst, and upd:insertIntoAsLast primitives are applied. for(i = pul.begin(); i != pul.end(); ++i) { switch(i->getType()) { case PendingUpdate::INSERT_BEFORE: applyInsertBefore(*i, context); break; case PendingUpdate::INSERT_AFTER: applyInsertAfter(*i, context); break; case PendingUpdate::INSERT_INTO_AS_FIRST: applyInsertAsFirst(*i, context); break; case PendingUpdate::INSERT_INTO_AS_LAST: applyInsertAsLast(*i, context); break; case PendingUpdate::PUT: case PendingUpdate::INSERT_INTO: case PendingUpdate::INSERT_ATTRIBUTES: case PendingUpdate::REPLACE_VALUE: case PendingUpdate::RENAME: case PendingUpdate::PUDELETE: case PendingUpdate::REPLACE_ELEMENT_CONTENT: case PendingUpdate::REPLACE_ATTRIBUTE: case PendingUpdate::REPLACE_NODE: break; } } // c. Next, all upd:replaceNode primitives are applied. for(i = pul.begin(); i != pul.end(); ++i) { switch(i->getType()) { case PendingUpdate::REPLACE_NODE: applyReplaceNode(*i, context); break; case PendingUpdate::REPLACE_ATTRIBUTE: applyReplaceAttribute(*i, context); break; case PendingUpdate::INSERT_BEFORE: case PendingUpdate::INSERT_AFTER: case PendingUpdate::INSERT_INTO_AS_FIRST: case PendingUpdate::INSERT_INTO_AS_LAST: case PendingUpdate::PUT: case PendingUpdate::INSERT_INTO: case PendingUpdate::INSERT_ATTRIBUTES: case PendingUpdate::REPLACE_VALUE: case PendingUpdate::RENAME: case PendingUpdate::PUDELETE: case PendingUpdate::REPLACE_ELEMENT_CONTENT: break; } } // d. Next, all upd:replaceElementContent primitives are applied. for(i = pul.begin(); i != pul.end(); ++i) { switch(i->getType()) { case PendingUpdate::REPLACE_ELEMENT_CONTENT: applyReplaceElementContent(*i, context); break; case PendingUpdate::REPLACE_NODE: case PendingUpdate::REPLACE_ATTRIBUTE: case PendingUpdate::INSERT_BEFORE: case PendingUpdate::INSERT_AFTER: case PendingUpdate::INSERT_INTO_AS_FIRST: case PendingUpdate::INSERT_INTO_AS_LAST: case PendingUpdate::PUT: case PendingUpdate::INSERT_INTO: case PendingUpdate::INSERT_ATTRIBUTES: case PendingUpdate::REPLACE_VALUE: case PendingUpdate::RENAME: case PendingUpdate::PUDELETE: break; } } // e. Finally, all upd:delete primitives are applied. for(i = pul.begin(); i != pul.end(); ++i) { switch(i->getType()) { case PendingUpdate::PUDELETE: applyDelete(*i, context); break; case PendingUpdate::INSERT_INTO: case PendingUpdate::INSERT_ATTRIBUTES: case PendingUpdate::REPLACE_VALUE: case PendingUpdate::RENAME: case PendingUpdate::PUT: case PendingUpdate::REPLACE_ELEMENT_CONTENT: case PendingUpdate::REPLACE_ATTRIBUTE: case PendingUpdate::REPLACE_NODE: case PendingUpdate::INSERT_BEFORE: case PendingUpdate::INSERT_AFTER: case PendingUpdate::INSERT_INTO_AS_FIRST: case PendingUpdate::INSERT_INTO_AS_LAST: break; } } // 3. If, as a net result of the above steps, the children property of some node contains adjacent text nodes, these adjacent text // nodes are merged into a single text node. The string-value of the resulting text node is the concatenated string-values of the // adjacent text nodes, with no intervening space added. The node identity of the resulting text node is implementation-dependent. // * Handled in the called methods // 4. If, as a net result of the above steps, the children property of some node contains an empty text node, that empty text node is // deleted from the children property. // * Handled in the called methods // 5. For each document or element node $top that was marked for revalidation by one of the earlier steps, upd:revalidate($top) is // invoked. // 6. If the resulting XDM instance violates any constraint specified in [XQuery/XPath Data Model (XDM)], a dynamic error is raised // [err:XUDY0021]. // // Note: // For example, a data model constraint violation might occur if multiple attributes with the same parent have the same qualified // name (see Section 6.2.1 OverviewDM.) // 7. The upd:applyUpdates operation is atomic with respect to the data model. In other words, if upd:applyUpdates terminates // normally, the resulting XDM instance reflects the result of all update primitives; but if upd:applyUpdates raises an error, the // resulting XDM instance reflects no changes. Atomicity is guaranteed only with respect to operations on XDM instances, and only // with respect to error conditions specified in this document. // // Note: // The results of implementation-dependent error conditions such as exceeding resource limits are beyond the scope of this // specification. // 8. Propagation of XDM changes to an underlying persistent store is beyond the scope of this specification. For example, the effect // on persistent storage of deleting a node that has no parent is beyond the scope of this specification. completeUpdate(context); } XQilla-2.3.0/src/xqc/0000755000151400015140000000000011653572443011277 500000000000000XQilla-2.3.0/src/xqc/XQillaXQCStaticContext.hpp0000644000151400015140000001037311653565523016220 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQILLAXQCSTATICCONTEXT_HPP #define _XQILLAXQCSTATICCONTEXT_HPP #include #include "XQillaXQCImplementation.hpp" class NSEntry; class XQillaXQCStaticContext { public: XQillaXQCStaticContext(); ~XQillaXQCStaticContext(); XQC_StaticContext *getImpl() { return &impl; } static XQillaXQCStaticContext *get(XQC_StaticContext *i) { return (XQillaXQCStaticContext*)(((char*)i) - CLASS_OFFSET(XQillaXQCStaticContext, impl)); } static const XQillaXQCStaticContext *get(const XQC_StaticContext *i) { return (const XQillaXQCStaticContext*)(((const char*)i) - CLASS_OFFSET(XQillaXQCStaticContext, impl)); } static DynamicContext *createContext(const XQC_StaticContext *context); private: XQillaXQCStaticContext(const XQillaXQCStaticContext &); XQillaXQCStaticContext &operator=(const XQillaXQCStaticContext &); static XQC_Error create_child_context(XQC_StaticContext *context, XQC_StaticContext **child_context); static XQC_Error declare_ns(XQC_StaticContext *context, const char *prefix, const char *uri); static XQC_Error get_ns_by_prefix(XQC_StaticContext *context, const char *prefix, const char **result_ns); static XQC_Error set_default_element_and_type_ns(XQC_StaticContext *context, const char *uri); static XQC_Error get_default_element_and_type_ns(XQC_StaticContext *context, const char **uri); static XQC_Error set_default_function_ns(XQC_StaticContext *context, const char *uri); static XQC_Error get_default_function_ns(XQC_StaticContext *context, const char **uri); static XQC_Error set_xpath_compatib_mode(XQC_StaticContext *context, XQC_XPath1Mode mode); static XQC_Error get_xpath_compatib_mode(XQC_StaticContext *context, XQC_XPath1Mode* mode); static XQC_Error set_construction_mode(XQC_StaticContext *context, XQC_ConstructionMode mode); static XQC_Error get_construction_mode(XQC_StaticContext *context, XQC_ConstructionMode* mode); static XQC_Error set_ordering_mode(XQC_StaticContext *context, XQC_OrderingMode mode); static XQC_Error get_ordering_mode(XQC_StaticContext *context, XQC_OrderingMode* mode); static XQC_Error set_default_order_empty_sequences(XQC_StaticContext *context, XQC_OrderEmptyMode mode); static XQC_Error get_default_order_empty_sequences(XQC_StaticContext *context, XQC_OrderEmptyMode* mode); static XQC_Error set_boundary_space_policy(XQC_StaticContext *context, XQC_BoundarySpaceMode mode); static XQC_Error get_boundary_space_policy(XQC_StaticContext *context, XQC_BoundarySpaceMode* mode); static XQC_Error set_copy_ns_mode(XQC_StaticContext *context, XQC_PreserveMode preserve, XQC_InheritMode inherit); static XQC_Error get_copy_ns_mode(XQC_StaticContext *context, XQC_PreserveMode* preserve, XQC_InheritMode* inherit); static XQC_Error set_base_uri(XQC_StaticContext *context, const char *base_uri); static XQC_Error get_base_uri(XQC_StaticContext *context, const char **base_uri); static XQC_Error set_error_handler(XQC_StaticContext *context, XQC_ErrorHandler *handler); static XQC_Error get_error_handler(const XQC_StaticContext *context, XQC_ErrorHandler **handler); static void *get_interface(const XQC_StaticContext *context, const char *name); static void free(XQC_StaticContext *context); XQC_StaticContext impl; NSEntry *nslist_; std::string elemns_; std::string funcns_; XQC_XPath1Mode xp1_; XQC_ConstructionMode constr_; XQC_OrderingMode order_; XQC_OrderEmptyMode empty_; XQC_BoundarySpaceMode bound_; XQC_PreserveMode preserve_; XQC_InheritMode inherit_; std::string baseuri_; XQC_ErrorHandler *handler_; }; #endif XQilla-2.3.0/src/xqc/XQillaXQCDynamicContext.cpp0000644000151400015140000001546111653565523016353 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include "XQillaXQCDynamicContext.hpp" #include "XQillaXQCSequence.hpp" #include #include #include #include #include #include "../utils/DateUtils.hpp" XERCES_CPP_NAMESPACE_USE; using namespace std; class VarEntry { public: VarEntry(const char *u, const char *n, XQC_Sequence *v, VarEntry *nxt) : uri(u), name(n), value(v), next(nxt) { XQillaXQCSequence *xseq = XQillaXQCSequence::get(v); seq = xseq->getResult()->toSequence(xseq->getContext()); } ~VarEntry() { value->free(value); } void setValue(XQC_Sequence *v) { value->free(value); value = v; } string uri, name; XQC_Sequence *value; Sequence seq; VarEntry *next; }; XQillaXQCDynamicContext::XQillaXQCDynamicContext(XQQuery *query) : vars_(0), context_(0), // Convert from seconds based to minutes based timezone_(ContextUtils::getTimezone() / DateUtils::g_secondsPerMinute), handler_(0) { memset(&impl_, 0, sizeof(XQC_DynamicContext)); impl_.set_variable = set_variable; impl_.get_variable = get_variable; impl_.set_context_item = set_context_item; impl_.get_context_item = get_context_item; impl_.set_implicit_timezone = set_implicit_timezone; impl_.get_implicit_timezone = get_implicit_timezone; impl_.set_error_handler = set_error_handler; impl_.get_error_handler = get_error_handler; impl_.get_interface = get_interface; impl_.free = free; } XQillaXQCDynamicContext::~XQillaXQCDynamicContext() { VarEntry *tmp; while(vars_) { tmp = vars_; vars_ = vars_->next; delete tmp; } } void XQillaXQCDynamicContext::populateContext(DynamicContext *context) const { VarEntry *var = vars_; while(var) { if(var->uri == "") { context->setExternalVariable(X(var->name.c_str()), var->seq); } else { context->setExternalVariable(X(var->uri.c_str()), X(var->name.c_str()), var->seq); } var = var->next; } if(context_.notNull()) { context->setContextItem(context_); context->setContextPosition(1); context->setContextSize(1); } context->setImplicitTimezone(context->getItemFactory()-> createDayTimeDuration(timezone_ * DateUtils::g_secondsPerMinute, context)); } XQC_Error XQillaXQCDynamicContext::set_variable(XQC_DynamicContext *context, const char *uri, const char *name, XQC_Sequence *value) { try { XQillaXQCDynamicContext *me = get(context); // Find the variable binding if it exists VarEntry **var = &me->vars_; while(*var) { if((*var)->name == name && (*var)->uri == uri) break; var = &(*var)->next; } if(*var) { if(value) { // Set the binding (*var)->setValue(value); } else { // Remove the binding VarEntry *tmp = *var; *var = (*var)->next; delete tmp; } } else if(value) { // Add a new binding me->vars_ = new VarEntry(uri, name, value, me->vars_); } return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCDynamicContext::get_variable(const XQC_DynamicContext *context, const char *uri, const char *name, XQC_Sequence **value) { try { const XQillaXQCDynamicContext *me = get(context); // Find the variable binding if it exists VarEntry *var = me->vars_; while(var) { if(var->name == name && var->uri == uri) break; var = var->next; } if(var) { *value = (new XQillaXQCSequence(var->seq, 0))->getImpl(); } else { *value = 0; } return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCDynamicContext::set_context_item(XQC_DynamicContext *context, XQC_Sequence *value) { try { XQillaXQCDynamicContext *me = get(context); if(value == 0) { me->context_ = 0; } else { XQC_ItemType type; if(value->item_type(value, &type) == XQC_NO_CURRENT_ITEM) return XQC_NO_CURRENT_ITEM; me->context_ = XQillaXQCSequence::get(value)->getItem(); } return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCDynamicContext::get_context_item(const XQC_DynamicContext *context, XQC_Sequence **value) { try { const XQillaXQCDynamicContext *me = get(context); if(me->context_.isNull()) { *value = 0; } else { *value = (new XQillaXQCSequence(me->context_, 0))->getImpl(); } return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCDynamicContext::set_implicit_timezone(XQC_DynamicContext *context, int timezone) { try { XQillaXQCDynamicContext *me = get(context); if(abs(timezone) > 14 * 60) { return XQC_INTERNAL_ERROR; } me->timezone_ = timezone; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCDynamicContext::get_implicit_timezone(const XQC_DynamicContext *context, int *timezone) { try { const XQillaXQCDynamicContext *me = get(context); *timezone = me->timezone_; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCDynamicContext::set_error_handler(XQC_DynamicContext *context, XQC_ErrorHandler *handler) { try { XQillaXQCDynamicContext *me = get(context); me->handler_ = handler; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCDynamicContext::get_error_handler(const XQC_DynamicContext *context, XQC_ErrorHandler **handler) { try { const XQillaXQCDynamicContext *me = get(context); *handler = me->handler_; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } void *XQillaXQCDynamicContext::get_interface(const XQC_DynamicContext *context, const char *name) { return 0; } void XQillaXQCDynamicContext::free(XQC_DynamicContext *context) { delete get(context); } XQilla-2.3.0/src/xqc/XQillaXQCDynamicContext.hpp0000644000151400015140000000527611653565523016363 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQILLAXQCDYNAMICCONTEXT_HPP #define _XQILLAXQCDYNAMICCONTEXT_HPP #include "XQillaXQCImplementation.hpp" #include class VarEntry; class XQillaXQCDynamicContext { public: XQillaXQCDynamicContext(XQQuery *query); ~XQillaXQCDynamicContext(); void populateContext(DynamicContext *context) const; XQC_DynamicContext *getImpl() { return &impl_; } static XQillaXQCDynamicContext *get(XQC_DynamicContext *i) { return (XQillaXQCDynamicContext*)(((char*)i) - CLASS_OFFSET(XQillaXQCDynamicContext, impl_)); } static const XQillaXQCDynamicContext *get(const XQC_DynamicContext *i) { return (const XQillaXQCDynamicContext*)(((const char*)i) - CLASS_OFFSET(XQillaXQCDynamicContext, impl_)); } private: XQillaXQCDynamicContext(const XQillaXQCDynamicContext &); XQillaXQCDynamicContext &operator=(const XQillaXQCDynamicContext &); static XQC_Error set_variable(XQC_DynamicContext *context, const char *uri, const char *name, XQC_Sequence *value); static XQC_Error get_variable(const XQC_DynamicContext *context, const char *uri, const char *name, XQC_Sequence **value); static XQC_Error set_context_item(XQC_DynamicContext *context, XQC_Sequence *value); static XQC_Error get_context_item(const XQC_DynamicContext *context, XQC_Sequence **value); static XQC_Error set_implicit_timezone(XQC_DynamicContext *context, int timezone); static XQC_Error get_implicit_timezone(const XQC_DynamicContext *context, int *timezone); static XQC_Error set_error_handler(XQC_DynamicContext *context, XQC_ErrorHandler *handler); static XQC_Error get_error_handler(const XQC_DynamicContext *context, XQC_ErrorHandler **handler); static void *get_interface(const XQC_DynamicContext *context, const char *name); static void free(XQC_DynamicContext *context); XQC_DynamicContext impl_; VarEntry *vars_; Item::Ptr context_; int timezone_; XQC_ErrorHandler *handler_; }; #endif XQilla-2.3.0/src/xqc/XQillaXQCInputStream.hpp0000644000151400015140000000752711653565523015706 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQILLAXQCINPUTSTREAM_HPP #define _XQILLAXQCINPUTSTREAM_HPP #include "XQillaXQCImplementation.hpp" #include #include #include #include "../config/xqilla_config.h" class CharInputStream : public XERCES_CPP_NAMESPACE_QUALIFIER BinInputStream { public : CharInputStream(const char *string) : string_(string), len_(strlen(string)), pos_(0) { } virtual XercesFilePos curPos() const { return pos_; } virtual XercesSizeUint readBytes(XMLByte* const toFill, const XercesSizeUint maxToRead) { XercesSizeUint read = maxToRead; if(read > len_) read = len_; memcpy(toFill, string_, read); len_ -= read; pos_ += read; string_ += read; return read; } virtual const XMLCh* getContentType() const { return 0; } private: const char *string_; XMLSize_t len_; XercesFilePos pos_; }; class CharInputSource : public XERCES_CPP_NAMESPACE_QUALIFIER InputSource { public : CharInputSource(const char *string) : string_(string) { setEncoding(X("UTF-8")); } virtual XERCES_CPP_NAMESPACE_QUALIFIER BinInputStream* makeStream() const { return new CharInputStream(string_); } private: const char *string_; }; class FileInputStream : public XERCES_CPP_NAMESPACE_QUALIFIER BinInputStream { public : FileInputStream(FILE *file) : file_(file), pos_(0) { } virtual XercesFilePos curPos() const { return pos_; } virtual XercesSizeUint readBytes(XMLByte* const toFill, const XercesSizeUint maxToRead) { XercesSizeUint read = fread(toFill, 1, maxToRead, file_); pos_ += read; return read; } virtual const XMLCh* getContentType() const { return 0; } private: FILE *file_; XercesFilePos pos_; }; class FileInputSource : public XERCES_CPP_NAMESPACE_QUALIFIER InputSource { public : FileInputSource(FILE *file) : file_(file) { } virtual XERCES_CPP_NAMESPACE_QUALIFIER BinInputStream* makeStream() const { return new FileInputStream(file_); } private: FILE *file_; }; class BinXQCInputStream : public XERCES_CPP_NAMESPACE_QUALIFIER BinInputStream { public : BinXQCInputStream(XQC_InputStream *stream) : stream_(stream), pos_(0) { } virtual XercesFilePos curPos() const { return pos_; } virtual XercesSizeUint readBytes(XMLByte* const toFill, const XercesSizeUint maxToRead) { unsigned int read = stream_->read(stream_, (void *)toFill, (unsigned int)maxToRead); pos_ += read; return read; } virtual const XMLCh* getContentType() const { return 0; } private: XQC_InputStream *stream_; XercesFilePos pos_; }; class XQCInputSource : public XERCES_CPP_NAMESPACE_QUALIFIER InputSource { public : XQCInputSource(XQC_InputStream *stream) : stream_(stream) { if(stream_->encoding != 0) setEncoding(X(stream_->encoding)); } ~XQCInputSource() { stream_->free(stream_); } virtual XERCES_CPP_NAMESPACE_QUALIFIER BinInputStream* makeStream() const { return new BinXQCInputStream(stream_); } private: XQC_InputStream *stream_; }; #endif XQilla-2.3.0/src/xqc/XQillaXQCImplementation.cpp0000644000151400015140000003515211653565523016406 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include "XQillaXQCImplementation.hpp" #include "XQillaXQCStaticContext.hpp" #include "XQillaXQCExpression.hpp" #include "XQillaXQCSequence.hpp" #include "XQillaXQCInputStream.hpp" #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; XQillaXQCImplementation::XQillaXQCImplementation() { memset(&impl, 0, sizeof(XQC_Implementation)); impl.create_context = create_context; impl.prepare = prepare; impl.prepare_file = prepare_file; impl.prepare_stream = prepare_stream; impl.parse_document = parse_document; impl.parse_document_file = parse_document_file; impl.parse_document_stream = parse_document_stream; impl.create_empty_sequence = create_empty_sequence; impl.create_singleton_sequence = create_singleton_sequence; impl.create_integer_sequence = create_integer_sequence; impl.create_double_sequence = create_double_sequence; impl.create_string_sequence = create_string_sequence; impl.get_interface = get_interface; impl.free = free; } XQillaXQCImplementation::~XQillaXQCImplementation() { } XQC_Error XQillaXQCImplementation::create_context(XQC_Implementation *implementation, XQC_StaticContext **context) { try { *context = (new XQillaXQCStaticContext())->getImpl(); return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } static std::string regexFind(const char *regex, const XMLCh *str, int groupNo = 1) { try { RegularExpression re(regex, "mH"); #ifdef HAVE_ALLMATCHES RefVectorOf matches(10, true); re.allMatches(str, 0, XMLString::stringLen(str), &matches); if(matches.size() >= 1) { Match *match = matches.elementAt(0); if(match->getNoGroups() >= groupNo && match->getStartPos(groupNo) != -1) return std::string(UTF8(str)).substr(match->getStartPos(groupNo), match->getEndPos(groupNo) - match->getStartPos(groupNo)); } #else Match match; if(re.matches(str, 0, XMLString::stringLen(str), &match)) { if(match.getNoGroups() >= groupNo && match.getStartPos(groupNo) != -1) return std::string(UTF8(str)).substr(match.getStartPos(groupNo), match.getEndPos(groupNo) - match.getStartPos(groupNo)); } #endif } catch(XMLException &ex) { printf("Regex exception: %s\n", UTF8(ex.getMessage())); } return ""; } void XQillaXQCImplementation::reportError(XQC_ErrorHandler *err, XQC_Error code, const XQException &ex) { if(err == 0) return; std::string qname = regexFind("\\[err:(\\c+)\\]", ex.getError()); if(qname == "") { err->error(err, code, 0, 0, UTF8(ex.getError()), 0); } else { err->error(err, code, "http://www.w3.org/2005/xqt-errors", qname.c_str(), UTF8(ex.getError()), 0); } } static void reportErrorStatic(const XQC_StaticContext *context, XQC_Error code, const XQException &ex) { if(context == 0) return; XQC_ErrorHandler *err = 0; context->get_error_handler(context, &err); XQillaXQCImplementation::reportError(err, code, ex); } XQC_Error XQillaXQCImplementation::prepare(XQC_Implementation *implementation, const char *string, const XQC_StaticContext *context, XQC_Expression **expression) { try { CharInputSource is(string); XQQuery *query = XQilla::parse(is, XQillaXQCStaticContext::createContext(context)); *expression = (new XQillaXQCExpression(query))->getImpl(); return XQC_NO_ERROR; } // TBD Clean up exception classes - jpcs catch(XPath2TypeMatchException &e) { reportErrorStatic(context, XQC_TYPE_ERROR, e); return XQC_TYPE_ERROR; } catch(StaticErrorException &e) { reportErrorStatic(context, XQC_STATIC_ERROR, e); return XQC_STATIC_ERROR; } catch(XQException &e) { reportErrorStatic(context, XQC_DYNAMIC_ERROR, e); return XQC_DYNAMIC_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } return XQC_NO_ERROR; } XQC_Error XQillaXQCImplementation::prepare_file(XQC_Implementation *implementation, FILE *file, const XQC_StaticContext *context, XQC_Expression **expression) { try { FileInputSource is(file); XQQuery *query = XQilla::parse(is, XQillaXQCStaticContext::createContext(context)); *expression = (new XQillaXQCExpression(query))->getImpl(); return XQC_NO_ERROR; } catch(ContextException &e) { return XQC_UNRECOGNIZED_ENCODING; } catch(XPath2TypeMatchException &e) { reportErrorStatic(context, XQC_TYPE_ERROR, e); return XQC_TYPE_ERROR; } catch(StaticErrorException &e) { reportErrorStatic(context, XQC_STATIC_ERROR, e); return XQC_STATIC_ERROR; } catch(XQException &e) { reportErrorStatic(context, XQC_DYNAMIC_ERROR, e); return XQC_DYNAMIC_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } return XQC_NO_ERROR; } XQC_Error XQillaXQCImplementation::prepare_stream(XQC_Implementation *implementation, XQC_InputStream *stream, const XQC_StaticContext *context, XQC_Expression **expression) { try { XQCInputSource is(stream); XQQuery *query = XQilla::parse(is, XQillaXQCStaticContext::createContext(context)); *expression = (new XQillaXQCExpression(query))->getImpl(); return XQC_NO_ERROR; } catch(ContextException &e) { return XQC_UNRECOGNIZED_ENCODING; } catch(XPath2TypeMatchException &e) { reportErrorStatic(context, XQC_TYPE_ERROR, e); return XQC_TYPE_ERROR; } catch(StaticErrorException &e) { reportErrorStatic(context, XQC_STATIC_ERROR, e); return XQC_STATIC_ERROR; } catch(XQException &e) { reportErrorStatic(context, XQC_DYNAMIC_ERROR, e); return XQC_DYNAMIC_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } return XQC_NO_ERROR; } XQC_Error XQillaXQCImplementation::parse_document(XQC_Implementation *implementation, const char *string, XQC_Sequence **sequence) { try { AutoDelete context(XQillaXQCStaticContext::createContext(0)); CharInputSource is(string); Node::Ptr doc = context->parseDocument(is); *sequence = (new XQillaXQCSequence(Result(doc), context.adopt()))->getImpl(); return XQC_NO_ERROR; } catch(XQException &e) { return XQC_PARSE_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCImplementation::parse_document_file(XQC_Implementation *implementation, FILE *file, XQC_Sequence **sequence) { try { AutoDelete context(XQillaXQCStaticContext::createContext(0)); FileInputSource is(file); Node::Ptr doc = context->parseDocument(is); *sequence = (new XQillaXQCSequence(Result(doc), context.adopt()))->getImpl(); return XQC_NO_ERROR; } catch(XQException &e) { return XQC_PARSE_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCImplementation::parse_document_stream(XQC_Implementation *implementation, XQC_InputStream *stream, XQC_Sequence **sequence) { try { AutoDelete context(XQillaXQCStaticContext::createContext(0)); XQCInputSource is(stream); Node::Ptr doc = context->parseDocument(is); *sequence = (new XQillaXQCSequence(Result(doc), context.adopt()))->getImpl(); return XQC_NO_ERROR; } catch(XQException &e) { return XQC_PARSE_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCImplementation::create_empty_sequence(XQC_Implementation *implementation, XQC_Sequence **sequence) { try { AutoDelete context(XQillaXQCStaticContext::createContext(0)); *sequence = (new XQillaXQCSequence(Sequence(), context.adopt()))->getImpl(); return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } AnyAtomicType::AtomicObjectType xqcToXQillaType(XQC_ItemType type) { switch(type) { case XQC_EMPTY_TYPE: case XQC_DOCUMENT_TYPE: case XQC_ELEMENT_TYPE: case XQC_ATTRIBUTE_TYPE: case XQC_TEXT_TYPE: case XQC_PROCESSING_INSTRUCTION_TYPE: case XQC_COMMENT_TYPE: case XQC_NAMESPACE_TYPE: break; case XQC_ANY_SIMPLE_TYPE: return AnyAtomicType::ANY_SIMPLE_TYPE; case XQC_ANY_URI_TYPE: return AnyAtomicType::ANY_URI; case XQC_BASE_64_BINARY_TYPE: return AnyAtomicType::BASE_64_BINARY; case XQC_BOOLEAN_TYPE: return AnyAtomicType::BOOLEAN; case XQC_DATE_TYPE: return AnyAtomicType::DATE; case XQC_DATE_TIME_TYPE: return AnyAtomicType::DATE_TIME; case XQC_DAY_TIME_DURATION_TYPE: return AnyAtomicType::DAY_TIME_DURATION; case XQC_DECIMAL_TYPE: return AnyAtomicType::DECIMAL; case XQC_DOUBLE_TYPE: return AnyAtomicType::DOUBLE; case XQC_DURATION_TYPE: return AnyAtomicType::DURATION; case XQC_FLOAT_TYPE: return AnyAtomicType::FLOAT; case XQC_G_DAY_TYPE: return AnyAtomicType::G_DAY; case XQC_G_MONTH_TYPE: return AnyAtomicType::G_MONTH; case XQC_G_MONTH_DAY_TYPE: return AnyAtomicType::G_MONTH_DAY; case XQC_G_YEAR_TYPE: return AnyAtomicType::G_YEAR; case XQC_G_YEAR_MONTH_TYPE: return AnyAtomicType::G_YEAR_MONTH; case XQC_HEX_BINARY_TYPE: return AnyAtomicType::HEX_BINARY; case XQC_NOTATION_TYPE: return AnyAtomicType::NOTATION; case XQC_QNAME_TYPE: return AnyAtomicType::QNAME; case XQC_STRING_TYPE: return AnyAtomicType::STRING; case XQC_TIME_TYPE: return AnyAtomicType::TIME; case XQC_UNTYPED_ATOMIC_TYPE: return AnyAtomicType::UNTYPED_ATOMIC; case XQC_YEAR_MONTH_DURATION_TYPE: return AnyAtomicType::YEAR_MONTH_DURATION; } return (AnyAtomicType::AtomicObjectType)-1; } Item::Ptr createItem(XQC_ItemType type, const char *value, DynamicContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); AnyAtomicType::AtomicObjectType xqtype = xqcToXQillaType(type); if(xqtype == (AnyAtomicType::AtomicObjectType)-1) return 0; return context->getItemFactory()-> createDerivedFromAtomicType(xqtype, mm->getPooledString(value), context); } XQC_Error XQillaXQCImplementation::create_singleton_sequence(XQC_Implementation *implementation, XQC_ItemType type, const char *value, XQC_Sequence **sequence) { try { AutoDelete context(XQillaXQCStaticContext::createContext(0)); Item::Ptr item = createItem(type, value, context); if(item.isNull()) return XQC_INVALID_ARGUMENT; *sequence = (new XQillaXQCSequence(item, context.adopt()))->getImpl(); return XQC_NO_ERROR; } catch(XQException &e) { return XQC_INVALID_ARGUMENT; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCImplementation::create_integer_sequence(XQC_Implementation *implementation, int values[], unsigned int count, XQC_Sequence **sequence) { try { AutoDelete context(XQillaXQCStaticContext::createContext(0)); ItemFactory *fac = context->getItemFactory(); Sequence seq; for(unsigned int i = 0; i < count; ++i) { seq.addItem(fac->createInteger(values[i], context)); } *sequence = (new XQillaXQCSequence(seq, context.adopt()))->getImpl(); return XQC_NO_ERROR; } catch(XQException &e) { return XQC_INVALID_ARGUMENT; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCImplementation::create_double_sequence(XQC_Implementation *implementation, double values[], unsigned int count, XQC_Sequence **sequence) { try { AutoDelete context(XQillaXQCStaticContext::createContext(0)); ItemFactory *fac = context->getItemFactory(); Sequence seq; for(unsigned int i = 0; i < count; ++i) { seq.addItem(fac->createDouble(values[i], context)); } *sequence = (new XQillaXQCSequence(seq, context.adopt()))->getImpl(); return XQC_NO_ERROR; } catch(XQException &e) { return XQC_INVALID_ARGUMENT; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCImplementation::create_string_sequence(XQC_Implementation *implementation, const char *values[], unsigned int count, XQC_Sequence **sequence) { try { AutoDelete context(XQillaXQCStaticContext::createContext(0)); XPath2MemoryManager *mm = context->getMemoryManager(); ItemFactory *fac = context->getItemFactory(); Sequence seq; for(unsigned int i = 0; i < count; ++i) { seq.addItem(fac->createString(mm->getPooledString(values[i]), context)); } *sequence = (new XQillaXQCSequence(seq, context.adopt()))->getImpl(); return XQC_NO_ERROR; } catch(XQException &e) { return XQC_INVALID_ARGUMENT; } catch(...) { return XQC_INTERNAL_ERROR; } return XQC_NO_ERROR; } void *XQillaXQCImplementation::get_interface(const XQC_Implementation *implementation, const char *name) { return 0; } void XQillaXQCImplementation::free(XQC_Implementation *implementation) { delete get(implementation); } extern "C" { XQC_Implementation *createXQillaXQCImplementation(int version) { try { if(version != 0 && version != XQC_VERSION_NUMBER) return 0; return (new XQillaXQCImplementation())->getImpl(); } catch(...) { return 0; } } } XQilla-2.3.0/src/xqc/XQillaXQCSequence.hpp0000644000151400015140000000502511653565523015172 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQILLAXQCSEQUENCE_HPP #define _XQILLAXQCSEQUENCE_HPP #include "XQillaXQCImplementation.hpp" #include class DynamicContext; class XQillaXQCSequence { public: XQillaXQCSequence(const Result &result, DynamicContext *context, XQC_ErrorHandler *err = 0); ~XQillaXQCSequence(); Result &getResult() { return result_; } DynamicContext *getContext() { return context_; } Item::Ptr &getItem() { return item_; } XQC_Sequence *getImpl() { return &impl_; } static XQillaXQCSequence *get(XQC_Sequence *i) { return (XQillaXQCSequence*)(((char*)i) - CLASS_OFFSET(XQillaXQCSequence, impl_)); } static const XQillaXQCSequence *get(const XQC_Sequence *i) { return (const XQillaXQCSequence*)(((const char*)i) - CLASS_OFFSET(XQillaXQCSequence, impl_)); } private: XQillaXQCSequence(const XQillaXQCSequence &); XQillaXQCSequence &operator=(const XQillaXQCSequence &); static XQC_Error next(XQC_Sequence *sequence); static XQC_Error item_type(const XQC_Sequence *sequence, XQC_ItemType *type); static XQC_Error type_name(const XQC_Sequence *sequence, const char **uri, const char **name); static XQC_Error string_value(const XQC_Sequence *sequence, const char **value); static XQC_Error integer_value(const XQC_Sequence *sequence, int *value); static XQC_Error double_value(const XQC_Sequence *sequence, double *value); static XQC_Error node_name(const XQC_Sequence *sequence, const char **uri, const char **name); static void *get_interface(const XQC_Sequence *sequence, const char *name); static void free(XQC_Sequence *sequence); XQC_Sequence impl_; Result result_; DynamicContext *context_; Item::Ptr item_; XQC_ErrorHandler *err_; mutable std::string typeURI_, typeName_, stringValue_, nodeURI_, nodeName_; }; #endif XQilla-2.3.0/src/xqc/XQillaXQCSequence.cpp0000644000151400015140000001705311653565523015171 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include "XQillaXQCSequence.hpp" #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; using namespace std; XQillaXQCSequence::XQillaXQCSequence(const Result &result, DynamicContext *context, XQC_ErrorHandler *err) : result_(result), context_(context), item_(), err_(err) { memset(&impl_, 0, sizeof(XQC_Sequence)); impl_.next = next; impl_.item_type = item_type; impl_.type_name = type_name; impl_.string_value = string_value; impl_.integer_value = integer_value; impl_.double_value = double_value; impl_.node_name = node_name; impl_.get_interface = get_interface; impl_.free = free; } XQillaXQCSequence::~XQillaXQCSequence() { result_ = 0; item_ = 0; delete context_; } XQC_Error XQillaXQCSequence::next(XQC_Sequence *sequence) { XQillaXQCSequence *me = get(sequence); try { me->item_ = me->result_->next(me->context_); if(me->item_.isNull()) return XQC_END_OF_SEQUENCE; return XQC_NO_ERROR; } catch(XPath2TypeMatchException &e) { XQillaXQCImplementation::reportError(me->err_, XQC_TYPE_ERROR, e); return XQC_TYPE_ERROR; } catch(XQException &e) { XQillaXQCImplementation::reportError(me->err_, XQC_DYNAMIC_ERROR, e); return XQC_DYNAMIC_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_ItemType typeOfItem(const Item::Ptr &item) { if(item.isNull()) return XQC_EMPTY_TYPE; if(item->isNode()) { const XMLCh *nodekind = ((const Node*)item.get())->dmNodeKind(); if(nodekind == Node::document_string) { return XQC_DOCUMENT_TYPE; } else if(nodekind == Node::element_string) { return XQC_ELEMENT_TYPE; } else if(nodekind == Node::attribute_string) { return XQC_ATTRIBUTE_TYPE; } else if(nodekind == Node::text_string) { return XQC_TEXT_TYPE; } else if(nodekind == Node::processing_instruction_string) { return XQC_PROCESSING_INSTRUCTION_TYPE; } else if(nodekind == Node::comment_string) { return XQC_COMMENT_TYPE; } else if(nodekind == Node::namespace_string) { return XQC_NAMESPACE_TYPE; } } else if(item->isAtomicValue()) { switch(((AnyAtomicType*)item.get())->getPrimitiveTypeIndex()) { case AnyAtomicType::ANY_SIMPLE_TYPE: return XQC_ANY_SIMPLE_TYPE; case AnyAtomicType::ANY_URI: return XQC_ANY_URI_TYPE; case AnyAtomicType::BASE_64_BINARY: return XQC_BASE_64_BINARY_TYPE; case AnyAtomicType::BOOLEAN: return XQC_BOOLEAN_TYPE; case AnyAtomicType::DATE: return XQC_DATE_TYPE; case AnyAtomicType::DATE_TIME: return XQC_DATE_TIME_TYPE; case AnyAtomicType::DAY_TIME_DURATION: return XQC_DAY_TIME_DURATION_TYPE; case AnyAtomicType::DECIMAL: return XQC_DECIMAL_TYPE; case AnyAtomicType::DOUBLE: return XQC_DOUBLE_TYPE; case AnyAtomicType::DURATION: return XQC_DURATION_TYPE; case AnyAtomicType::FLOAT: return XQC_FLOAT_TYPE; case AnyAtomicType::G_DAY: return XQC_G_DAY_TYPE; case AnyAtomicType::G_MONTH: return XQC_G_MONTH_TYPE; case AnyAtomicType::G_MONTH_DAY: return XQC_G_MONTH_DAY_TYPE; case AnyAtomicType::G_YEAR: return XQC_G_YEAR_TYPE; case AnyAtomicType::G_YEAR_MONTH: return XQC_G_YEAR_MONTH_TYPE; case AnyAtomicType::HEX_BINARY: return XQC_HEX_BINARY_TYPE; case AnyAtomicType::NOTATION: return XQC_NOTATION_TYPE; case AnyAtomicType::QNAME: return XQC_QNAME_TYPE; case AnyAtomicType::STRING: return XQC_STRING_TYPE; case AnyAtomicType::TIME: return XQC_TIME_TYPE; case AnyAtomicType::UNTYPED_ATOMIC: return XQC_UNTYPED_ATOMIC_TYPE; case AnyAtomicType::YEAR_MONTH_DURATION: return XQC_YEAR_MONTH_DURATION_TYPE; case AnyAtomicType::NumAtomicObjectTypes: // Shouldn't happen break; } } return XQC_EMPTY_TYPE; } XQC_Error XQillaXQCSequence::item_type(const XQC_Sequence *sequence, XQC_ItemType *type) { try { const XQillaXQCSequence *me = get(sequence); if(me->item_.isNull()) { return XQC_NO_CURRENT_ITEM; } *type = typeOfItem(me->item_); return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCSequence::type_name(const XQC_Sequence *sequence, const char **uri, const char **name) { try { const XQillaXQCSequence *me = get(sequence); if(me->item_.isNull()) { return XQC_NO_CURRENT_ITEM; } me->typeURI_ = UTF8(me->item_->getTypeURI()); *uri = me->typeURI_.c_str(); me->typeName_ = UTF8(me->item_->getTypeName()); *name = me->typeName_.c_str(); return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCSequence::string_value(const XQC_Sequence *sequence, const char **value) { try { const XQillaXQCSequence *me = get(sequence); if(me->item_.isNull()) { return XQC_NO_CURRENT_ITEM; } me->stringValue_ = UTF8(FunctionString::string(me->item_, me->context_)); *value = me->stringValue_.c_str(); return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCSequence::integer_value(const XQC_Sequence *sequence, int *value) { try { const XQillaXQCSequence *me = get(sequence); if(me->item_.isNull()) { return XQC_NO_CURRENT_ITEM; } *value = FunctionNumber::number(me->item_, me->context_, 0)->asInt(); return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCSequence::double_value(const XQC_Sequence *sequence, double *value) { try { const XQillaXQCSequence *me = get(sequence); if(me->item_.isNull()) { return XQC_NO_CURRENT_ITEM; } *value = FunctionNumber::number(me->item_, me->context_, 0)->asDouble(); return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCSequence::node_name(const XQC_Sequence *sequence, const char **uri, const char **name) { try { const XQillaXQCSequence *me = get(sequence); if(me->item_.isNull()) { return XQC_NO_CURRENT_ITEM; } if(!me->item_->isNode()) { return XQC_NOT_NODE; } ATQNameOrDerived::Ptr qname = ((Node*)me->item_.get())->dmNodeName(me->context_); me->nodeURI_ = UTF8(qname->getURI()); *uri = me->nodeURI_.c_str(); me->nodeName_ = UTF8(qname->getName()); *name = me->nodeName_.c_str(); return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } void *XQillaXQCSequence::get_interface(const XQC_Sequence *sequence, const char *name) { return 0; } void XQillaXQCSequence::free(XQC_Sequence *sequence) { delete get(sequence); } XQilla-2.3.0/src/xqc/XQillaXQCExpression.cpp0000644000151400015140000000535111653565523015556 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include "XQillaXQCExpression.hpp" #include "XQillaXQCDynamicContext.hpp" #include "XQillaXQCSequence.hpp" #include #include #include XERCES_CPP_NAMESPACE_USE; XQillaXQCExpression::XQillaXQCExpression(XQQuery *query) : query_(query) { memset(&impl_, 0, sizeof(XQC_Expression)); impl_.create_context = create_context; impl_.execute = execute; impl_.get_interface = get_interface; impl_.free = free; } XQillaXQCExpression::~XQillaXQCExpression() { delete query_; } XQC_Error XQillaXQCExpression::create_context(const XQC_Expression *expression, XQC_DynamicContext **context) { try { const XQillaXQCExpression *me = get(expression); *context = (new XQillaXQCDynamicContext(me->query_))->getImpl(); return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCExpression::execute(const XQC_Expression *expression, const XQC_DynamicContext *context, XQC_Sequence **sequence) { XQC_ErrorHandler *err = 0; if(context) context->get_error_handler(context, &err); try { const XQillaXQCExpression *me = get(expression); AutoDelete dcontext(me->query_->createDynamicContext()); if(context) { XQillaXQCDynamicContext::get(context)->populateContext(dcontext); } *sequence = (new XQillaXQCSequence(me->query_->execute(dcontext), dcontext.adopt(), err))->getImpl(); return XQC_NO_ERROR; } catch(XPath2TypeMatchException &e) { XQillaXQCImplementation::reportError(err, XQC_TYPE_ERROR, e); return XQC_TYPE_ERROR; } catch(XQException &e) { XQillaXQCImplementation::reportError(err, XQC_DYNAMIC_ERROR, e); return XQC_DYNAMIC_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } void *XQillaXQCExpression::get_interface(const XQC_Expression *expression, const char *name) { return 0; } void XQillaXQCExpression::free(XQC_Expression *expression) { delete get(expression); } XQilla-2.3.0/src/xqc/XQillaXQCImplementation.hpp0000644000151400015140000000765111653565523016416 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQILLAXQCIMPLEMENTATION_HPP #define _XQILLAXQCIMPLEMENTATION_HPP #include #include #include #if defined(_MSC_VER) #include #define ssize_t SSIZE_T #endif #define CLASS_OFFSET(class, member) (((ssize_t)&(((class*)1000)->member)) - 1000) class XQException; class XQillaXQCImplementation { public: XQillaXQCImplementation(); ~XQillaXQCImplementation(); XQC_Implementation *getImpl() { return &impl; } static XQillaXQCImplementation *get(XQC_Implementation *i) { return (XQillaXQCImplementation *)(((char*)i) - CLASS_OFFSET(XQillaXQCImplementation, impl)); } static void reportError(XQC_ErrorHandler *err, XQC_Error code, const XQException &ex); private: XQillaXQCImplementation(const XQillaXQCImplementation &); XQillaXQCImplementation &operator=(const XQillaXQCImplementation &); static XQC_Error create_context(XQC_Implementation *implementation, XQC_StaticContext **context); static XQC_Error prepare(XQC_Implementation *implementation, const char *string, const XQC_StaticContext *context, XQC_Expression **expression); static XQC_Error prepare_file(XQC_Implementation *implementation, FILE *file, const XQC_StaticContext *context, XQC_Expression **expression); static XQC_Error prepare_stream(XQC_Implementation *implementation, XQC_InputStream *stream, const XQC_StaticContext *context, XQC_Expression **expression); static XQC_Error parse_document(XQC_Implementation *implementation, const char *string, XQC_Sequence **sequence); static XQC_Error parse_document_file(XQC_Implementation *implementation, FILE *file, XQC_Sequence **sequence); static XQC_Error parse_document_stream(XQC_Implementation *implementation, XQC_InputStream *stream, XQC_Sequence **sequence); static XQC_Error create_empty_sequence(XQC_Implementation *implementation, XQC_Sequence **sequence); static XQC_Error create_singleton_sequence(XQC_Implementation *implementation, XQC_ItemType type, const char *value, XQC_Sequence **sequence); static XQC_Error create_integer_sequence(XQC_Implementation *implementation, int values[], unsigned int count, XQC_Sequence **sequence); static XQC_Error create_double_sequence(XQC_Implementation *implementation, double values[], unsigned int count, XQC_Sequence **sequence); static XQC_Error create_string_sequence(XQC_Implementation *implementation, const char *values[], unsigned int count, XQC_Sequence **sequence); static void *get_interface(const XQC_Implementation *implementation, const char *name); static void free(XQC_Implementation *implementation); XQilla xqilla; XQC_Implementation impl; }; #endif XQilla-2.3.0/src/xqc/XQillaXQCExpression.hpp0000644000151400015140000000352111653565523015560 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQILLAXQCEXPRESSION_HPP #define _XQILLAXQCEXPRESSION_HPP #include "XQillaXQCImplementation.hpp" class XQQuery; class XQillaXQCExpression { public: XQillaXQCExpression(XQQuery *query); ~XQillaXQCExpression(); XQC_Expression *getImpl() { return &impl_; } static XQillaXQCExpression *get(XQC_Expression *i) { return (XQillaXQCExpression*)(((char*)i) - CLASS_OFFSET(XQillaXQCExpression, impl_)); } static const XQillaXQCExpression *get(const XQC_Expression *i) { return (const XQillaXQCExpression*)(((const char*)i) - CLASS_OFFSET(XQillaXQCExpression, impl_)); } private: XQillaXQCExpression(const XQillaXQCExpression &); XQillaXQCExpression &operator=(const XQillaXQCExpression &); static XQC_Error create_context(const XQC_Expression *expression, XQC_DynamicContext **context); static XQC_Error execute(const XQC_Expression *expression, const XQC_DynamicContext *context, XQC_Sequence **sequence); static void *get_interface(const XQC_Expression *expression, const char *name); static void free(XQC_Expression *expression); XQC_Expression impl_; XQQuery *query_; }; #endif XQilla-2.3.0/src/xqc/XQillaXQCStaticContext.cpp0000644000151400015140000003070611653565523016215 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include "XQillaXQCStaticContext.hpp" #include #include #include #include #include #include using namespace std; class NSEntry { public: NSEntry(const char *p, const char *u, NSEntry *n) : prefix(p), uri(u), next(n) { } string prefix, uri; NSEntry *next; }; XQillaXQCStaticContext::XQillaXQCStaticContext() : nslist_(0), elemns_(), funcns_(UTF8(XQFunction::XMLChFunctionURI)), xp1_(XQC_XPATH2_0), constr_(XQC_PRESERVE_CONS), order_(XQC_ORDERED), empty_(XQC_EMPTY_LEAST), bound_(XQC_STRIP_SPACE), preserve_(XQC_PRESERVE_NS), inherit_(XQC_INHERIT_NS), baseuri_(), handler_(0) { memset(&impl, 0, sizeof(XQC_StaticContext)); impl.create_child_context = create_child_context; impl.declare_ns = declare_ns; impl.get_ns_by_prefix = get_ns_by_prefix; impl.set_default_element_and_type_ns = set_default_element_and_type_ns; impl.get_default_element_and_type_ns = get_default_element_and_type_ns; impl.set_default_function_ns = set_default_function_ns; impl.get_default_function_ns = get_default_function_ns; impl.set_xpath_compatib_mode = set_xpath_compatib_mode; impl.get_xpath_compatib_mode = get_xpath_compatib_mode; impl.set_construction_mode = set_construction_mode; impl.get_construction_mode = get_construction_mode; impl.set_ordering_mode = set_ordering_mode; impl.get_ordering_mode = get_ordering_mode; impl.set_default_order_empty_sequences = set_default_order_empty_sequences; impl.get_default_order_empty_sequences = get_default_order_empty_sequences; impl.set_boundary_space_policy = set_boundary_space_policy; impl.get_boundary_space_policy = get_boundary_space_policy; impl.set_copy_ns_mode = set_copy_ns_mode; impl.get_copy_ns_mode = get_copy_ns_mode; impl.set_base_uri = set_base_uri; impl.get_base_uri = get_base_uri; impl.set_error_handler = set_error_handler; impl.get_error_handler = get_error_handler; impl.get_interface = get_interface; impl.free = free; } XQillaXQCStaticContext::~XQillaXQCStaticContext() { NSEntry *tmp; while(nslist_) { tmp = nslist_; nslist_ = nslist_->next; delete tmp; } } XQC_Error XQillaXQCStaticContext::create_child_context(XQC_StaticContext *context, XQC_StaticContext **child_context) { try { XQillaXQCStaticContext *me = get(context); AutoDelete result(new XQillaXQCStaticContext); // Copy the namespace bindings NSEntry *tmp = me->nslist_; while(tmp) { declare_ns(result->getImpl(), tmp->prefix.c_str(), tmp->uri.c_str()); tmp = tmp->next; } result->elemns_ = me->elemns_; result->funcns_ = me->funcns_; result->xp1_ = me->xp1_; result->constr_ = me->constr_; result->order_ = me->order_; result->empty_ = me->empty_; result->bound_ = me->bound_; result->preserve_ = me->preserve_; result->inherit_ = me->inherit_; result->baseuri_ = me->baseuri_; *child_context = result.adopt()->getImpl(); return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } static XercesConfiguration xercesConf; static FastXDMConfiguration fastConf; DynamicContext *XQillaXQCStaticContext::createContext(const XQC_StaticContext *context) { AutoDelete result(XQilla::createContext( (XQilla::Language)(XQilla::XQUERY | XQilla::FULLTEXT | XQilla::UPDATE | XQilla::EXTENSIONS), &xercesConf)); if(context) { const XQillaXQCStaticContext *me = get(context); XPath2MemoryManager *mm = result->getMemoryManager(); // Copy the namespace bindings NSEntry *tmp = me->nslist_; while(tmp) { result->setNamespaceBinding(mm->getPooledString(tmp->prefix.c_str()), mm->getPooledString(tmp->uri.c_str())); tmp = tmp->next; } result->setDefaultElementAndTypeNS(mm->getPooledString(me->elemns_.c_str())); result->setDefaultFuncNS(mm->getPooledString(me->funcns_.c_str())); result->setBaseURI(mm->getPooledString(me->baseuri_.c_str())); result->setXPath1CompatibilityMode(me->xp1_ == XQC_XPATH1_0); result->setConstructionMode(me->constr_ == XQC_PRESERVE_CONS ? StaticContext::CONSTRUCTION_MODE_PRESERVE : StaticContext::CONSTRUCTION_MODE_STRIP); result->setNodeSetOrdering(me->order_ == XQC_ORDERED ? StaticContext::ORDERING_ORDERED : StaticContext::ORDERING_UNORDERED); result->setDefaultFLWOROrderingMode(me->empty_ == XQC_EMPTY_LEAST ? StaticContext::FLWOR_ORDER_EMPTY_LEAST : StaticContext::FLWOR_ORDER_EMPTY_GREATEST); result->setPreserveBoundarySpace(me->bound_ == XQC_PRESERVE_SPACE); result->setPreserveNamespaces(me->preserve_ == XQC_PRESERVE_NS); result->setInheritNamespaces(me->inherit_ == XQC_INHERIT_NS); } return result.adopt(); } XQC_Error XQillaXQCStaticContext::declare_ns(XQC_StaticContext *context, const char *prefix, const char *uri) { try { XQillaXQCStaticContext *me = get(context); // Find the namespace binding if it exists NSEntry *tmp = me->nslist_; while(tmp) { if(tmp->prefix == prefix) break; tmp = tmp->next; } if(tmp) { // Set the binding tmp->uri = (uri == 0 ? "" : uri); } else { // Add a new binding me->nslist_ = new NSEntry(prefix, uri, me->nslist_); } return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCStaticContext::get_ns_by_prefix(XQC_StaticContext *context, const char *prefix, const char **result_ns) { try { XQillaXQCStaticContext *me = get(context); // Find the namespace binding if it exists NSEntry *tmp = me->nslist_; while(tmp) { if(tmp->prefix == prefix) { *result_ns = tmp->uri.c_str(); return XQC_NO_ERROR; } tmp = tmp->next; } *result_ns = 0; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCStaticContext::set_default_element_and_type_ns(XQC_StaticContext *context, const char *uri) { try { XQillaXQCStaticContext *me = get(context); me->elemns_ = uri; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCStaticContext::get_default_element_and_type_ns(XQC_StaticContext *context, const char **uri) { try { XQillaXQCStaticContext *me = get(context); *uri = me->elemns_.c_str(); return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCStaticContext::set_default_function_ns(XQC_StaticContext *context, const char *uri) { try { XQillaXQCStaticContext *me = get(context); me->funcns_ = uri; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCStaticContext::get_default_function_ns(XQC_StaticContext *context, const char **uri) { try { XQillaXQCStaticContext *me = get(context); *uri = me->funcns_.c_str(); return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCStaticContext::set_xpath_compatib_mode(XQC_StaticContext *context, XQC_XPath1Mode mode) { try { XQillaXQCStaticContext *me = get(context); me->xp1_ = mode; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCStaticContext::get_xpath_compatib_mode(XQC_StaticContext *context, XQC_XPath1Mode* mode) { try { XQillaXQCStaticContext *me = get(context); *mode = me->xp1_; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCStaticContext::set_construction_mode(XQC_StaticContext *context, XQC_ConstructionMode mode) { try { XQillaXQCStaticContext *me = get(context); me->constr_ = mode; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCStaticContext::get_construction_mode(XQC_StaticContext *context, XQC_ConstructionMode* mode) { try { XQillaXQCStaticContext *me = get(context); *mode = me->constr_; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCStaticContext::set_ordering_mode(XQC_StaticContext *context, XQC_OrderingMode mode) { try { XQillaXQCStaticContext *me = get(context); me->order_ = mode; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCStaticContext::get_ordering_mode(XQC_StaticContext *context, XQC_OrderingMode* mode) { try { XQillaXQCStaticContext *me = get(context); *mode = me->order_; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCStaticContext::set_default_order_empty_sequences(XQC_StaticContext *context, XQC_OrderEmptyMode mode) { try { XQillaXQCStaticContext *me = get(context); me->empty_ = mode; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCStaticContext::get_default_order_empty_sequences(XQC_StaticContext *context, XQC_OrderEmptyMode* mode) { try { XQillaXQCStaticContext *me = get(context); *mode = me->empty_; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCStaticContext::set_boundary_space_policy(XQC_StaticContext *context, XQC_BoundarySpaceMode mode) { try { XQillaXQCStaticContext *me = get(context); me->bound_ = mode; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCStaticContext::get_boundary_space_policy(XQC_StaticContext *context, XQC_BoundarySpaceMode* mode) { try { XQillaXQCStaticContext *me = get(context); *mode = me->bound_; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCStaticContext::set_copy_ns_mode(XQC_StaticContext *context, XQC_PreserveMode preserve, XQC_InheritMode inherit) { try { XQillaXQCStaticContext *me = get(context); me->preserve_ = preserve; me->inherit_ = inherit; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCStaticContext::get_copy_ns_mode(XQC_StaticContext *context, XQC_PreserveMode* preserve, XQC_InheritMode* inherit) { try { XQillaXQCStaticContext *me = get(context); *preserve = me->preserve_; *inherit = me->inherit_; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCStaticContext::set_base_uri(XQC_StaticContext *context, const char *base_uri) { try { XQillaXQCStaticContext *me = get(context); me->baseuri_ = base_uri; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCStaticContext::get_base_uri(XQC_StaticContext *context, const char **base_uri) { try { XQillaXQCStaticContext *me = get(context); *base_uri = me->baseuri_.c_str(); return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCStaticContext::set_error_handler(XQC_StaticContext *context, XQC_ErrorHandler *handler) { try { XQillaXQCStaticContext *me = get(context); me->handler_ = handler; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } XQC_Error XQillaXQCStaticContext::get_error_handler(const XQC_StaticContext *context, XQC_ErrorHandler **handler) { try { const XQillaXQCStaticContext *me = get(context); *handler = me->handler_; return XQC_NO_ERROR; } catch(...) { return XQC_INTERNAL_ERROR; } } void *XQillaXQCStaticContext::get_interface(const XQC_StaticContext *context, const char *name) { return 0; } void XQillaXQCStaticContext::free(XQC_StaticContext *context) { delete get(context); } XQilla-2.3.0/src/xerces/0000755000151400015140000000000011653572443011775 500000000000000XQilla-2.3.0/src/xerces/XercesURIResolver.cpp0000644000151400015140000002420311653565523015756 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "XercesURIResolver.hpp" #include "XercesNodeImpl.hpp" #include #include #include #include #include #include #include #include "../dom-api/XQillaImplementation.hpp" #include #include #if _XERCES_VERSION < 30000 #include #endif #include #include #include #include XERCES_CPP_NAMESPACE_USE; using namespace std; XercesURIResolver::XercesURIResolver(MemoryManager *mm) : _firstDocRefCount(new (mm) DocRefCount()), _documentMap(3,false,mm), #if _XERCES_VERSION >= 30000 _uriMap(3,false, mm), #else _uriMap(3,false, new (mm) HashPtr(), mm), #endif _mm(mm) { } XercesURIResolver::~XercesURIResolver() { DocRefCount *drc; while(_firstDocRefCount != 0) { drc = _firstDocRefCount; _firstDocRefCount = _firstDocRefCount->next; _mm->deallocate(drc); } } bool XercesURIResolver::resolveDocument(Sequence &result, const XMLCh* uri, DynamicContext* context, const QueryPathNode *projection) { Node::Ptr doc; // Resolve the uri against the base uri const XMLCh *systemId = uri; XMLURL urlTmp(context->getMemoryManager()); if(urlTmp.setURL(context->getBaseURI(), uri, urlTmp)) { systemId = context->getMemoryManager()->getPooledString(urlTmp.getURLText()); } else { systemId = context->getMemoryManager()->getPooledString(uri); } // Check in the cache DOMDocument *found = _documentMap.get((void*)systemId); // Check to see if we can locate and parse the document if(found == 0) { try { doc = const_cast(context->getDocumentCache())->loadDocument(uri, context, projection); found = (DOMDocument*)((DOMNode*)doc->getInterface(XercesConfiguration::gXerces)); _documentMap.put((void*)systemId, found); _uriMap.put((void*)found, const_cast(systemId)); } catch(const XMLParseException& e) { XMLBuffer errMsg; errMsg.set(X("Error parsing resource: ")); errMsg.append(uri); errMsg.append(X(". Error message: ")); errMsg.append(e.getError()); errMsg.append(X(" [err:FODC0002]")); XQThrow2(XMLParseException,X("XercesContextImpl::resolveDocument"), errMsg.getRawBuffer()); } } else { doc = new XercesNodeImpl(found, (XercesURIResolver*)context->getDefaultURIResolver()); } if(doc.notNull()) { result.addItem(doc); return true; } XMLBuffer errMsg; errMsg.set(X("Error retrieving resource: ")); errMsg.append(uri); errMsg.append(X(" [err:FODC0002]")); XQThrow2(XMLParseException,X("XercesContextImpl::resolveDocument"), errMsg.getRawBuffer()); return false; } bool XercesURIResolver::resolveCollection(Sequence &result, const XMLCh* uri, DynamicContext* context, const QueryPathNode *projection) { Node::Ptr doc; // Resolve the uri against the base uri const XMLCh *systemId = uri; XMLURL urlTmp(context->getMemoryManager()); if(urlTmp.setURL(context->getBaseURI(), uri, urlTmp)) { systemId = context->getMemoryManager()->getPooledString(urlTmp.getURLText()); } else { systemId = context->getMemoryManager()->getPooledString(uri); } // Check in the cache DOMDocument *found = _documentMap.get((void*)systemId); // Check to see if we can locate and parse the document if(found == 0) { try { doc = const_cast(context->getDocumentCache())->loadDocument(uri, context, projection); found = (DOMDocument*)((DOMNode*)doc->getInterface(XercesConfiguration::gXerces)); _documentMap.put((void*)systemId, found); _uriMap.put((void*)found, const_cast(systemId)); } catch(const XMLParseException& e) { XMLBuffer errMsg; errMsg.set(X("Error parsing resource: ")); errMsg.append(uri); errMsg.append(X(". Error message: ")); errMsg.append(e.getError()); errMsg.append(X(" [err:FODC0004]")); XQThrow2(XMLParseException,X("XercesURIResolver::resolveCollection"), errMsg.getRawBuffer()); } } else { doc = new XercesNodeImpl(found, (XercesURIResolver*)context->getDefaultURIResolver()); } if(doc.notNull()) { result.addItem(doc); return true; } XMLBuffer errMsg; errMsg.set(X("Error retrieving resource: ")); errMsg.append(uri); errMsg.append(X(" [err:FODC0004]")); XQThrow2(XMLParseException,X("XercesURIResolver::resolveCollection"), errMsg.getRawBuffer()); return false; } bool XercesURIResolver::resolveDefaultCollection(Sequence &result, DynamicContext* context, const QueryPathNode *projection) { return false; } static const XMLCh ls_string[] = { chLatin_L, chLatin_S, chNull }; static const XMLCh file_scheme[] = { chLatin_f, chLatin_i, chLatin_l, chLatin_e, 0 }; static const XMLCh utf8_str[] = { chLatin_u, chLatin_t, chLatin_f, chDash, chDigit_8, 0 }; #define char2hexdigit(ch) (((ch) >= 'a') ? (ch) - 'a' : (((ch) >= 'A') ? (ch) - 'A' : (ch) - '0')) bool XercesURIResolver::putDocument(const Node::Ptr &document, const XMLCh *uri, DynamicContext *context) { // Ignore nodes with no URI if(uri == 0) return true; try { XMLUri uri_obj(uri); // Check for a "file" scheme if(!XPath2Utils::equals(uri_obj.getScheme(), file_scheme)) return false; // Check this is a Xerces data model node const DOMNode *domnode = (const DOMNode*)document->getInterface(XercesConfiguration::gXerces); if(!domnode) return false; // Write the document to disk DOMImplementation *impl = XQillaImplementation::getDOMImplementationImpl(); const XMLCh *path = uri_obj.getPath(); //Get rid of the leading / if it is a Windows path. int colonIdx = XMLString::indexOf(path, chColon); if(path && colonIdx == 2 && XMLString::isAlpha(path[1])){ path++; } // Unescape the URI // Since URI escaping encodes UTF-8 char sequences, it's easier to do the unescaping with a UTF-8 string. UTF8Str path8(path); string unencode8; const char *ptr = path8.str(); while(*ptr) { if(*ptr == '%') { if(ptr[1] == 0) throw MalformedURLException(__FILE__, __LINE__, XMLExcepts::URL_MalformedURL); if(ptr[2] == 0) throw MalformedURLException(__FILE__, __LINE__, XMLExcepts::URL_MalformedURL); unencode8.append(1, (char)(char2hexdigit(ptr[1]) * 0x10 + char2hexdigit(ptr[2]))); ptr += 3; } else { unencode8.append(1, *ptr); ptr += 1; } } LocalFileFormatTarget target(X(unencode8.c_str())); #if _XERCES_VERSION >= 30000 AutoRelease writer(impl->createLSSerializer()); AutoRelease output(impl->createLSOutput()); output->setByteStream(&target); #else // Find the encoding to use const XMLCh *encoding = 0; if(domnode->getNodeType() == DOMNode::DOCUMENT_NODE) { // Use the document's encoding, if this is a document node encoding = ((DOMDocument*)domnode)->getEncoding(); } if(encoding == 0 || *encoding == 0) { // Otherwise, just use UTF-8 encoding = utf8_str; } AutoRelease writer(((DOMImplementationLS*)impl)->createDOMWriter()); writer->setEncoding(encoding); #endif try { #if _XERCES_VERSION >= 30000 if(!writer->write(domnode, output)) { #else if(!writer->writeNode(&target, *domnode)) { #endif XMLBuffer buf; buf.append(X("Writing to URI \"")); buf.append(uri_obj.getUriText()); buf.append(X("\" failed.")); XQThrow2(ASTException, X("XercesURIResolver::putDocument"), buf.getRawBuffer()); } } catch(DOMException &ex) { XMLBuffer buf; buf.append(X("Writing to URI \"")); buf.append(uri_obj.getUriText()); buf.append(X("\" failed: ")); buf.append(ex.msg); XQThrow2(ASTException, X("XercesURIResolver::putDocument"), buf.getRawBuffer()); } } catch(const MalformedURLException &ex) { XMLBuffer buf; buf.append(X("Unable to re-write document - bad document URI \"")); buf.append(uri); buf.append(X("\"")); XQThrow2(ASTException, X("XercesURIResolver::putDocument"), buf.getRawBuffer()); } return true; } void XercesURIResolver::incrementDocumentRefCount(const DOMDocument* document) { assert(document != 0); DocRefCount *found = _firstDocRefCount; while(found->doc != 0 && found->doc != document) { found = found->next; } if(found->doc == 0) { found->doc = document; found->next = new (_mm) DocRefCount(); } else { ++found->ref_count; } } void XercesURIResolver::decrementDocumentRefCount(const DOMDocument* document) { assert(document != 0); DocRefCount *prev = 0; DocRefCount *found = _firstDocRefCount; while(found->doc != 0 && found->doc != document) { prev = found; found = found->next; } if(found->doc != 0) { if(--found->ref_count == 0) { if(prev == 0) { _firstDocRefCount = found->next; } else { prev->next = found->next; } _mm->deallocate(found); XMLCh *uri = _uriMap.get((void*)document); if(uri != 0) { _uriMap.removeKey((void*)document); _documentMap.removeKey((void*)uri); } const_cast(document)->release(); } } } XQilla-2.3.0/src/xerces/AncestorOrSelfAxis.cpp0000644000151400015140000000265311653565523016146 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "AncestorOrSelfAxis.hpp" #include #include AncestorOrSelfAxis::AncestorOrSelfAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory) : Axis(info, contextNode, nodeObj, nodeTest, factory), ancestor_(0) { } const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *AncestorOrSelfAxis::nextNode(DynamicContext *context) { if(toDo_) { // initialise toDo_ = false; ancestor_ = contextNode_; } else if(ancestor_ != 0) { ancestor_ = getParent(ancestor_); } return ancestor_; } XQilla-2.3.0/src/xerces/FollowingSiblingAxis.cpp0000644000151400015140000000264711653565523016530 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "FollowingSiblingAxis.hpp" #include #include FollowingSiblingAxis::FollowingSiblingAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory) : Axis(info, contextNode, nodeObj, nodeTest, factory), node_(0) { } const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *FollowingSiblingAxis::nextNode(DynamicContext *context) { if(toDo_) { // initialise toDo_ = false; node_ = getNextSibling(contextNode_); } else if(node_ != 0) { node_ = getNextSibling(node_); } return node_; } XQilla-2.3.0/src/xerces/Axis.cpp0000644000151400015140000001647511653565523013343 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "Axis.hpp" #include #include #include #include #include #include "../dom-api/impl/XPathNamespaceImpl.hpp" #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif Axis::Axis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory) : ResultImpl(info), nodeObj_(nodeObj), factory_(factory), contextNode_(contextNode), nodeTest_(nodeTest), toDo_(true) { } Item::Ptr Axis::next(DynamicContext *context) { const DOMNode *node = 0; while((node = nextNode(context)) != 0) { context->testInterrupt(); if(nodeTest_ == 0) return factory_.createNode(node, context); SequenceType::ItemType *itemType = nodeTest_->getItemType(); if(itemType != 0) { Node::Ptr result = factory_.createNode(node, context); if(itemType->matches(result, context)) { return result; } } else { switch(node->getNodeType()) { case DOMNode::DOCUMENT_NODE: { if(!nodeTest_->getTypeWildcard() && nodeTest_->getNodeType() != Node::document_string) continue; if(!nodeTest_->getNameWildcard() || !nodeTest_->getNamespaceWildcard()) continue; break; } case DOMNode::ELEMENT_NODE: { if(!nodeTest_->getTypeWildcard() && nodeTest_->getNodeType() != Node::element_string) continue; if(!nodeTest_->getNameWildcard() && !XPath2Utils::equals(getLocalName(node), nodeTest_->getNodeName())) continue; if(!nodeTest_->getNamespaceWildcard() && !XPath2Utils::equals(node->getNamespaceURI(), nodeTest_->getNodeUri())) continue; break; } case DOMNode::ATTRIBUTE_NODE: { if(nodeTest_->getTypeWildcard()) { if(nodeTest_->getHasChildren()) continue; } else if(nodeTest_->getNodeType() != Node::attribute_string) continue; if(!nodeTest_->getNameWildcard() && !XPath2Utils::equals(getLocalName(node), nodeTest_->getNodeName())) continue; if(!nodeTest_->getNamespaceWildcard() && !XPath2Utils::equals(node->getNamespaceURI(), nodeTest_->getNodeUri())) continue; break; } case DOMNode::CDATA_SECTION_NODE: case DOMNode::TEXT_NODE: { if(nodeTest_->getTypeWildcard()) { if(nodeTest_->getHasChildren()) continue; } else if(nodeTest_->getNodeType() != Node::text_string) continue; if(!nodeTest_->getNameWildcard() || !nodeTest_->getNamespaceWildcard()) continue; break; } case DOMNode::PROCESSING_INSTRUCTION_NODE: { if(nodeTest_->getTypeWildcard()) { if(nodeTest_->getHasChildren()) continue; } else if(nodeTest_->getNodeType() != Node::processing_instruction_string) continue; if(!nodeTest_->getNameWildcard() && !XPath2Utils::equals(node->getNodeName(), nodeTest_->getNodeName())) continue; if(!nodeTest_->getNamespaceWildcard()) continue; break; } case DOMNode::COMMENT_NODE: { if(nodeTest_->getTypeWildcard()) { if(nodeTest_->getHasChildren()) continue; } else if(nodeTest_->getNodeType() != Node::comment_string) continue; if(!nodeTest_->getNameWildcard() || !nodeTest_->getNamespaceWildcard()) continue; break; } case DOMXPathNamespace::XPATH_NAMESPACE_NODE: { if(nodeTest_->getTypeWildcard()) { if(nodeTest_->getHasChildren()) continue; } else if(nodeTest_->getNodeType() != Node::namespace_string) continue; if(!nodeTest_->getNameWildcard() && !XPath2Utils::equals(node->getPrefix(), nodeTest_->getNodeName())) continue; if(!nodeTest_->getNamespaceWildcard() && !XPath2Utils::equals(XMLUni::fgZeroLenString, nodeTest_->getNodeUri())) continue; break; } default: { continue; } } return factory_.createNode(node, context); } } return 0; } const DOMNode *Axis::getParent(const DOMNode *fNode) { DOMNode *parent = XPath2NSUtils::getParent(fNode); // Skip out of entity reference nodes while(parent != 0 && parent->getNodeType() == DOMNode::ENTITY_REFERENCE_NODE) { parent = parent->getParentNode(); } return parent; } const DOMNode *Axis::getFirstChild(const DOMNode *fNode) { if(fNode->getNodeType() == DOMNode::ATTRIBUTE_NODE) return 0; DOMNode *result = fNode->getFirstChild(); if(result == 0) return 0; // Skip into the contents of entity reference nodes while(result->getNodeType() == DOMNode::ENTITY_REFERENCE_NODE) { result = result->getFirstChild(); } // Skip any other unused types while(result->getNodeType() == DOMNode::DOCUMENT_TYPE_NODE) { result = result->getNextSibling(); } return result; } const DOMNode *Axis::getLastChild(const DOMNode *fNode) { if(fNode->getNodeType() == DOMNode::ATTRIBUTE_NODE) return 0; DOMNode *result = fNode->getLastChild(); if(result == 0) return 0; // Skip into the contents of entity reference nodes while(result->getNodeType() == DOMNode::ENTITY_REFERENCE_NODE) { result = result->getLastChild(); } // Skip any other unused types while(result->getNodeType() == DOMNode::DOCUMENT_TYPE_NODE) { result = result->getPreviousSibling(); } return result; } const DOMNode *Axis::getNextSibling(const DOMNode *fNode) { DOMNode *result = fNode->getNextSibling(); if(result == 0) { // Skip out of the contents of entity reference nodes DOMNode *parent = fNode->getParentNode(); while(result == 0 && parent != 0 && parent->getNodeType() == DOMNode::ENTITY_REFERENCE_NODE) { result = parent->getNextSibling(); parent = parent->getParentNode(); } } // Skip any other unused types while(result != 0 && result->getNodeType() == DOMNode::DOCUMENT_TYPE_NODE) { result = result->getNextSibling(); } return result; } const DOMNode *Axis::getPreviousSibling(const DOMNode *fNode) { DOMNode *result = fNode->getPreviousSibling(); if(result == 0) { // Skip out of the contents of entity reference nodes DOMNode *parent = fNode->getParentNode(); while(result == 0 && parent != 0 && parent->getNodeType() == DOMNode::ENTITY_REFERENCE_NODE) { result = parent->getPreviousSibling(); parent = parent->getParentNode(); } } // Skip any other unused types while(result != 0 && result->getNodeType() == DOMNode::DOCUMENT_TYPE_NODE) { result = result->getPreviousSibling(); } return result; } XQilla-2.3.0/src/xerces/XercesConfiguration.cpp0000644000151400015140000000466711653565523016420 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include "../schema/FaxppDocumentCacheImpl.hpp" #include #include #include #include #include "XercesUpdateFactory.hpp" #include "XercesNodeImpl.hpp" #include "XercesURIResolver.hpp" #include "XercesSequenceBuilder.hpp" XERCES_CPP_NAMESPACE_USE; const XMLCh XercesConfiguration::gXerces[] = // Points to "Xerces" { chLatin_X, chLatin_e, chLatin_r, chLatin_c, chLatin_e, chLatin_s, chNull }; DocumentCache *XercesConfiguration::createDocumentCache(MemoryManager *memMgr) { #ifdef HAVE_FAXPP return new (memMgr) FaxppDocumentCacheImpl(memMgr); #else return new (memMgr) DocumentCacheImpl(memMgr); #endif } SequenceBuilder *XercesConfiguration::createSequenceBuilder(const DynamicContext *context) { return new (context->getMemoryManager()) XercesSequenceBuilder(context); } ItemFactory *XercesConfiguration::createItemFactory(DocumentCache *cache, MemoryManager *memMgr) { return new (memMgr) ItemFactoryImpl(cache, memMgr); } UpdateFactory *XercesConfiguration::createUpdateFactory(MemoryManager *memMgr) { return new (memMgr) XercesUpdateFactory(); } URIResolver *XercesConfiguration::createDefaultURIResolver(MemoryManager *memMgr) { return new (memMgr) XercesURIResolver(memMgr); } ASTToXML *XercesConfiguration::createASTToXML() { return new ASTToXML(); } Node::Ptr XercesConfiguration::createNode(const DOMNode *node, const DynamicContext *context) const { return new XercesNodeImpl(node, 0); } XQilla-2.3.0/src/xerces/DescendantOrSelfAxis.cpp0000644000151400015140000000326711653565523016442 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "DescendantOrSelfAxis.hpp" #include #include DescendantOrSelfAxis::DescendantOrSelfAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory) : Axis(info, contextNode, nodeObj, nodeTest, factory), descendant_(0) { } const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *DescendantOrSelfAxis::nextNode(DynamicContext *context) { if(toDo_) { // initialise toDo_ = false; descendant_ = contextNode_; } else if(descendant_ != 0) { const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *result = getFirstChild(descendant_); while(result == 0 && descendant_ != contextNode_) { result = getNextSibling(descendant_); if(result == 0) { descendant_ = getParent(descendant_); } } descendant_ = result; } return descendant_; } XQilla-2.3.0/src/xerces/AttributeAxis.cpp0000644000151400015140000000452411653565523015217 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "AttributeAxis.hpp" #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif AttributeAxis::AttributeAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory) : Axis(info, contextNode, nodeObj, nodeTest, factory), nodeMap_(contextNode->getAttributes()), i_(0) { } const DOMNode *AttributeAxis::nextNode(DynamicContext *context) { const DOMNode *result = 0; if(nodeMap_ != 0) { unsigned int nLen = (unsigned int) nodeMap_->getLength(); if(i_==0 && nodeTest_!=0 && nodeTest_->getItemType()==0 && !nodeTest_->getNamespaceWildcard() && !nodeTest_->getNameWildcard()) { const XMLCh* uri=nodeTest_->getNodeUri(); if(uri==0) result=nodeMap_->getNamedItem(nodeTest_->getNodeName()); else result=nodeMap_->getNamedItemNS(uri,nodeTest_->getNodeName()); i_=nLen; } while(result == 0 && i_ < nLen) { result = nodeMap_->item(i_); ++i_; //Check to see if this attribute starts with "xmlns:" or is equal to "xmlns" const XMLCh* name=result->getNodeName(); const XMLCh* xmlns=XMLUni::fgXMLNSString; while(*name && *xmlns) { if(*name++!=*xmlns++) break; } if(*xmlns==0 && (*name==0 || *name==chColon)) result = 0; } } return result; } std::string AttributeAxis::asString(DynamicContext *context, int indent) const { return "AttributeAxis"; } XQilla-2.3.0/src/xerces/FollowingSiblingAxis.hpp0000644000151400015140000000232611653565523016527 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FOLLOWINGSIBLINGAXIS_HPP #define _FOLLOWINGSIBLINGAXIS_HPP #include "Axis.hpp" class XQILLA_API FollowingSiblingAxis : public Axis { public: FollowingSiblingAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory); const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *nextNode(DynamicContext *context); private: const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node_; }; #endif XQilla-2.3.0/src/xerces/DescendantAxis.hpp0000644000151400015140000000230511653565523015324 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _DESCENDANTAXIS_HPP #define _DESCENDANTAXIS_HPP #include "Axis.hpp" class XQILLA_API DescendantAxis : public Axis { public: DescendantAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory); const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *nextNode(DynamicContext *context); private: const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *descendant_; }; #endif XQilla-2.3.0/src/xerces/XercesSequenceBuilder.cpp0000644000151400015140000002343411653565523016661 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "XercesSequenceBuilder.hpp" #include "XercesNodeImpl.hpp" #include #include #include "../dom-api/impl/XPathDocumentImpl.hpp" #include "../dom-api/XQillaImplementation.hpp" #include "../dom-api/impl/XPathNamespaceImpl.hpp" #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; XercesSequenceBuilder::XercesSequenceBuilder(const DynamicContext *context) : context_(context), document_(0), currentParent_(0), currentNode_(0), seq_(context->getMemoryManager()) { } XercesSequenceBuilder::~XercesSequenceBuilder() { delete document_; } void XercesSequenceBuilder::startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding) { if(document_ == 0) { document_ = new (context_->getMemoryManager()) XPathDocumentImpl(XQillaImplementation::getDOMImplementationImpl(), context_->getMemoryManager()); } currentParent_ = document_; currentNode_ = document_; document_->setDocumentURI(documentURI); #if _XERCES_VERSION >= 30000 document_->setInputEncoding(encoding); #else document_->setActualEncoding(encoding); #endif } void XercesSequenceBuilder::endDocumentEvent() { currentNode_ = currentParent_; currentParent_ = currentParent_->getParentNode(); if(currentParent_ == 0) { seq_.addItem(new XercesNodeImpl(currentNode_, (XercesURIResolver*)context_->getDefaultURIResolver())); document_ = 0; currentNode_ = 0; } } void XercesSequenceBuilder::endEvent() { } void XercesSequenceBuilder::startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname) { if(document_ == 0) { document_ = new (context_->getMemoryManager()) XPathDocumentImpl(XQillaImplementation::getDOMImplementationImpl(), context_->getMemoryManager()); } DOMElement *elem = document_->createElementNS(uri, localname); if(prefix != 0) elem->setPrefix(prefix); if(currentParent_ != 0) currentParent_->appendChild(elem); currentParent_ = elem; currentNode_ = elem; } void XercesSequenceBuilder::setElementTypeInfo(DOMElement *element, const XMLCh *typeURI, const XMLCh *typeName) { // TBD detect xs:untyped? - jpcs DOMDocument *document = element->getOwnerDocument(); DOMTypeInfoImpl* pInfo = new (document) DOMTypeInfoImpl(typeURI, typeName); pInfo->setNumericProperty(DOMPSVITypeInfo::PSVI_Validity, PSVIItem::VALIDITY_VALID); #if _XERCES_VERSION >= 30000 ((DOMElementNSImpl*)element)->setSchemaTypeInfo(pInfo); #else ((DOMElementNSImpl*)element)->setTypeInfo(pInfo); #endif } void XercesSequenceBuilder::endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName) { currentNode_ = currentParent_; currentParent_ = currentParent_->getParentNode(); if(typeName) setElementTypeInfo((DOMElement*)currentNode_, typeURI, typeName); else setElementTypeInfo((DOMElement*)currentNode_, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, DocumentCache::g_szUntyped); if(currentParent_ == 0) { seq_.addItem(new XercesNodeImpl(currentNode_, (XercesURIResolver*)context_->getDefaultURIResolver())); document_ = 0; currentNode_ = 0; } } void XercesSequenceBuilder::piEvent(const XMLCh *target, const XMLCh *value) { if(document_ == 0) { document_ = new (context_->getMemoryManager()) XPathDocumentImpl(XQillaImplementation::getDOMImplementationImpl(), context_->getMemoryManager()); } DOMProcessingInstruction *pi = document_->createProcessingInstruction(target, value); if(currentParent_ != 0) currentParent_->appendChild(pi); currentNode_ = pi; if(currentParent_ == 0) { seq_.addItem(new XercesNodeImpl(currentNode_, (XercesURIResolver*)context_->getDefaultURIResolver())); document_ = 0; currentNode_ = 0; } } void XercesSequenceBuilder::textEvent(const XMLCh *value) { if(document_ == 0) { document_ = new (context_->getMemoryManager()) XPathDocumentImpl(XQillaImplementation::getDOMImplementationImpl(), context_->getMemoryManager()); } if(currentNode_ != 0 && currentNode_->getNodeType() == DOMNode::TEXT_NODE) { // Combine adjacent text nodes ((DOMText *)currentNode_)->appendData(value); } else if(currentParent_ == 0 || (value != 0 && *value != 0)) { // Text nodes with a zero length value can only exist // when they have no parent DOMText *node = document_->createTextNode(value); if(currentParent_ != 0) currentParent_->appendChild(node); currentNode_ = node; } if(currentParent_ == 0) { seq_.addItem(new XercesNodeImpl(currentNode_, (XercesURIResolver*)context_->getDefaultURIResolver())); document_ = 0; currentNode_ = 0; } } void XercesSequenceBuilder::textEvent(const XMLCh *chars, unsigned int length) { if(document_ == 0) { document_ = new (context_->getMemoryManager()) XPathDocumentImpl(XQillaImplementation::getDOMImplementationImpl(), context_->getMemoryManager()); } if(currentNode_->getNodeType() == DOMNode::TEXT_NODE) { // Combine adjacent text nodes XMLBuffer buf; buf.append(chars, length); ((DOMText *)currentNode_)->appendData(buf.getRawBuffer()); } else if(currentParent_ == 0 || length != 0) { // Text nodes with a zero length value can only exist // when they have no parent XMLBuffer buf; buf.append(chars, length); DOMText *node = document_->createTextNode(buf.getRawBuffer()); if(currentParent_ != 0) currentParent_->appendChild(node); currentNode_ = node; } if(currentParent_ == 0) { seq_.addItem(new XercesNodeImpl(currentNode_, (XercesURIResolver*)context_->getDefaultURIResolver())); document_ = 0; currentNode_ = 0; } } void XercesSequenceBuilder::commentEvent(const XMLCh *value) { if(document_ == 0) { document_ = new (context_->getMemoryManager()) XPathDocumentImpl(XQillaImplementation::getDOMImplementationImpl(), context_->getMemoryManager()); } DOMComment *comment = document_->createComment(value); if(currentParent_ != 0) currentParent_->appendChild(comment); currentNode_ = comment; if(currentParent_ == 0) { seq_.addItem(new XercesNodeImpl(currentNode_, (XercesURIResolver*)context_->getDefaultURIResolver())); document_ = 0; currentNode_ = 0; } } void XercesSequenceBuilder::setAttributeTypeInfo(DOMAttr *attr, const XMLCh *typeURI, const XMLCh *typeName) { // TBD detect xs:untypedAtomic? - jpcs DOMDocument *document = attr->getOwnerDocument(); DOMTypeInfoImpl* pInfo = new (document) DOMTypeInfoImpl(typeURI, typeName); pInfo->setNumericProperty(DOMPSVITypeInfo::PSVI_Validity, PSVIItem::VALIDITY_VALID); #if _XERCES_VERSION >= 30000 ((DOMAttrImpl*)attr)->setSchemaTypeInfo(pInfo); #else ((DOMAttrImpl*)attr)->setTypeInfo(pInfo); #endif } void XercesSequenceBuilder::attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { if(document_ == 0) { document_ = new (context_->getMemoryManager()) XPathDocumentImpl(XQillaImplementation::getDOMImplementationImpl(), context_->getMemoryManager()); } DOMAttr *attr = document_->createAttributeNS(uri, localname); if(prefix != 0) attr->setPrefix(prefix); attr->setValue(value); if(typeName) setAttributeTypeInfo(attr, typeURI, typeName); else setAttributeTypeInfo(attr, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, ATUntypedAtomic::fgDT_UNTYPEDATOMIC); if(currentParent_ != 0) currentParent_->getAttributes()->setNamedItemNS(attr); currentNode_ = attr; if(currentParent_ == 0) { seq_.addItem(new XercesNodeImpl(currentNode_, (XercesURIResolver*)context_->getDefaultURIResolver())); document_ = 0; currentNode_ = 0; } } void XercesSequenceBuilder::namespaceEvent(const XMLCh *prefix, const XMLCh *uri) { if(currentParent_ != 0) { DOMAttr *attr = document_->createAttributeNS(XMLUni::fgXMLNSURIName, prefix == 0 ? XMLUni::fgXMLNSString : prefix); if(prefix != 0) attr->setPrefix(XMLUni::fgXMLNSString); attr->setValue(uri); currentParent_->getAttributes()->setNamedItemNS(attr); currentNode_ = attr; } else { document_ = new (context_->getMemoryManager()) XPathDocumentImpl(XQillaImplementation::getDOMImplementationImpl(), context_->getMemoryManager()); DOMXPathNamespace *ns = new (document_, (DOMDocumentImpl::NodeObjectType)XPathNamespaceImpl::XPATH_NAMESPACE_OBJECT) XPathNamespaceImpl(prefix, uri, 0, document_); seq_.addItem(new XercesNodeImpl(ns, (XercesURIResolver*)context_->getDefaultURIResolver())); document_ = 0; currentNode_ = 0; } } void XercesSequenceBuilder::atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { assert(currentParent_ == 0); seq_.addItem(context_->getItemFactory()->createDerivedFromAtomicType(type, typeURI, typeName, value, context_)); } XQilla-2.3.0/src/xerces/AncestorOrSelfAxis.hpp0000644000151400015140000000244511653565523016152 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ANCESTORORSELFAXIS_HPP #define _ANCESTORORSELFAXIS_HPP #include "Axis.hpp" /** This class implements the AncestorOrSelf axis as defined by the XPath spec */ class XQILLA_API AncestorOrSelfAxis : public Axis { public: AncestorOrSelfAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory); const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *nextNode(DynamicContext *context); private: const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *ancestor_; }; #endif XQilla-2.3.0/src/xerces/ChildAxis.hpp0000644000151400015140000000237111653565523014302 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _CHILDAXIS_HPP #define _CHILDAXIS_HPP #include "Axis.hpp" /** This class implements the ChildAxis axis as defined by the XPath spec */ class XQILLA_API ChildAxis : public Axis { public: ChildAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory); const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *nextNode(DynamicContext *context); private: const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *child_; }; #endif XQilla-2.3.0/src/xerces/ParentAxis.cpp0000644000151400015140000000265411653565523014507 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "ParentAxis.hpp" #include #include #include #include #include ParentAxis::ParentAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory) : Axis(info, contextNode, nodeObj, nodeTest, factory) { } const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *ParentAxis::nextNode(DynamicContext *context) { if(toDo_) { // initialise toDo_ = false; return getParent(contextNode_); } else { return 0; } } XQilla-2.3.0/src/xerces/ChildAxis.cpp0000644000151400015140000000260011653565523014270 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "ChildAxis.hpp" #include #include ChildAxis::ChildAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory) : Axis(info, contextNode, nodeObj, nodeTest, factory), child_(0) { } const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *ChildAxis::nextNode(DynamicContext *context) { if(toDo_) { // initialise toDo_ = false; child_ = getFirstChild(contextNode_); } else if(child_ != 0) { child_ = getNextSibling(child_); } return child_; } XQilla-2.3.0/src/xerces/PrecedingSiblingAxis.hpp0000644000151400015140000000246511653565523016473 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _PRECEDINGSIBLINGAXIS_HPP #define _PRECEDINGSIBLINGAXIS_HPP #include "Axis.hpp" /** This class implements the PrecedingSiblingAxis axis as defined by the XPath spec */ class XQILLA_API PrecedingSiblingAxis : public Axis { public: PrecedingSiblingAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory); const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *nextNode(DynamicContext *context); private: const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *sibling_; }; #endif XQilla-2.3.0/src/xerces/AncestorAxis.hpp0000644000151400015140000000240511653565523015033 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ANCESTORAXIS_HPP #define _ANCESTORAXIS_HPP #include "Axis.hpp" /** This class implements the AncestorAxis as defined in the XPath spec */ class XQILLA_API AncestorAxis : public Axis { public: AncestorAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory); const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *nextNode(DynamicContext *context); private: const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *ancestor_; }; #endif XQilla-2.3.0/src/xerces/XercesSequenceBuilder.hpp0000644000151400015140000000520611653565523016663 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XERCESSEQUENCEBUILDER_HPP #define _XERCESSEQUENCEBUILDER_HPP #include #include #include "../dom-api/impl/XPathDocumentImpl.hpp" class XercesSequenceBuilder : public SequenceBuilder { public: XercesSequenceBuilder(const DynamicContext *context); virtual ~XercesSequenceBuilder(); virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding); virtual void endDocumentEvent(); virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname); virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName); virtual void piEvent(const XMLCh *target, const XMLCh *value); virtual void textEvent(const XMLCh *value); virtual void textEvent(const XMLCh *chars, unsigned int length); virtual void commentEvent(const XMLCh *value); virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName); virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri); virtual void atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName); virtual void endEvent(); virtual Sequence getSequence() const { return seq_; } static void setElementTypeInfo(XERCES_CPP_NAMESPACE_QUALIFIER DOMElement *element, const XMLCh *typeURI, const XMLCh *typeName); static void setAttributeTypeInfo(XERCES_CPP_NAMESPACE_QUALIFIER DOMAttr *attr, const XMLCh *typeURI, const XMLCh *typeName); private: const DynamicContext *context_; XPathDocumentImpl *document_; XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *currentParent_; XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *currentNode_; Sequence seq_; }; #endif XQilla-2.3.0/src/xerces/XercesURIResolver.hpp0000644000151400015140000000477711653565523016001 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef XERCESURIRESOLVER_H #define XERCESURIRESOLVER_H #include #include #include XERCES_CPP_NAMESPACE_BEGIN class DOMDocument; XERCES_CPP_NAMESPACE_END class XQILLA_API XercesURIResolver : public URIResolver { public: XercesURIResolver(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *mm); virtual ~XercesURIResolver(); virtual bool resolveDocument(Sequence &result, const XMLCh* uri, DynamicContext* context, const QueryPathNode *projection); virtual bool resolveCollection(Sequence &result, const XMLCh* uri, DynamicContext* context, const QueryPathNode *projection); virtual bool resolveDefaultCollection(Sequence &result, DynamicContext* context, const QueryPathNode *projection); virtual bool putDocument(const Node::Ptr &document, const XMLCh *uri, DynamicContext *context); void incrementDocumentRefCount(const XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument* document); void decrementDocumentRefCount(const XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument* document); private: class DocRefCount { public: DocRefCount() : doc(0), ref_count(1), next(0) {} const XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *doc; unsigned int ref_count; DocRefCount *next; }; DocRefCount *_firstDocRefCount; XERCES_CPP_NAMESPACE_QUALIFIER RefHashTableOf< XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument > _documentMap; #if _XERCES_VERSION >= 30000 XERCES_CPP_NAMESPACE_QUALIFIER RefHashTableOf< XMLCh, XERCES_CPP_NAMESPACE_QUALIFIER PtrHasher > _uriMap; #else XERCES_CPP_NAMESPACE_QUALIFIER RefHashTableOf< XMLCh > _uriMap; #endif XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *_mm; }; #endif XQilla-2.3.0/src/xerces/NamespaceAxis.cpp0000644000151400015140000001063211653565523015145 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "NamespaceAxis.hpp" #include #include #include #include "../dom-api/impl/XPathNamespaceImpl.hpp" #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif NamespaceAxis::NamespaceAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory) : Axis(info, contextNode, nodeObj, nodeTest, factory), node_(contextNode), originalNode_(contextNode), nodeMap_(node_->getAttributes()), i_(0), state_(CHECK_ELEMENT) { } static const DOMNode *createNamespaceNode(const XMLCh* prefix, const XMLCh* uri, const DOMNode* parentNode) { if(parentNode->getNodeType()!=DOMNode::ELEMENT_NODE) return NULL; DOMDocument *ownerDocument = parentNode->getOwnerDocument(); return new ((DOMDocumentImpl *)ownerDocument, (DOMDocumentImpl::NodeObjectType)XPathNamespaceImpl::XPATH_NAMESPACE_OBJECT) XPathNamespaceImpl(prefix, uri, static_cast(const_cast(parentNode)), ownerDocument); } const DOMNode *NamespaceAxis::nextNode(DynamicContext *context) { const DOMNode *result = 0; while(result == 0) { switch(state_) { case CHECK_ELEMENT: { const XMLCh* uri = node_->getNamespaceURI(); const XMLCh* prefix = node_->getPrefix(); if(done_.insert(prefix).second && uri && *uri) { result = createNamespaceNode(prefix, uri, originalNode_); } state_ = CHECK_ATTR; break; } case CHECK_ATTR: { if(nodeMap_ != 0 && i_ < nodeMap_->getLength()) { DOMNode *tmpAttr = nodeMap_->item(i_); ++i_; const XMLCh* attrName = tmpAttr->getNodeName(); // Check to see if this attribute starts with xmlns if(!XMLString::startsWith(attrName, XMLUni::fgXMLNSString)) { const XMLCh* uri = tmpAttr->getNamespaceURI(); const XMLCh* prefix = tmpAttr->getPrefix(); if(uri && *uri && done_.insert(prefix).second) { result = createNamespaceNode(prefix, uri, originalNode_); } } else { // Get uri const XMLCh* uri = tmpAttr->getNodeValue(); // Figure out prefix const XMLCh* prefix = 0; if(XMLString::stringLen(attrName) != 5) { // A prefix was given // If the name doesn't start with xmlns: (and its not xmlns) then skip it // XXX: Is this necessary/allowed? if(attrName[5] != chColon) { continue; } prefix = attrName + 6; } if(done_.insert(prefix).second && uri && *uri) { result = createNamespaceNode(prefix, uri, originalNode_); } } } else { node_ = XPath2NSUtils::getParent(node_); if(node_ == 0 || node_->getNodeType() != DOMNode::ELEMENT_NODE) { state_ = DO_XML; } else { nodeMap_ = node_->getAttributes(); i_ = 0; state_ = CHECK_ELEMENT; } } break; } case DO_XML: { if(done_.insert(XMLUni::fgXMLString).second) { result = createNamespaceNode(XMLUni::fgXMLString, XMLUni::fgXMLURIName, originalNode_); } state_ = DONE; break; } case DONE: return 0; } } return result; } std::string NamespaceAxis::asString(DynamicContext *context, int indent) const { return "NamespaceNodesResult"; } XQilla-2.3.0/src/xerces/XercesUpdateFactory.cpp0000644000151400015140000010215211653565523016347 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "XercesUpdateFactory.hpp" #include "XercesNodeImpl.hpp" #include "XercesSequenceBuilder.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; void XercesUpdateFactory::applyPut(const PendingUpdate &update, DynamicContext *context) { PutItem item(update.getValue().first()->asString(context), update.getTarget(), &update, context); std::pair res = putSet_.insert(item); if(!res.second) { if(context->getMessageListener() != 0) { context->getMessageListener()->warning(X("In the context of this expression"), res.first->location); } XMLBuffer buf; buf.append(X("fn:put() called with the URI \"")); buf.append(item.uri); buf.append(X("\" twice. [err:XUDY0031]")); XQThrow3(ASTException, X("XercesUpdateFactory::applyPut"), buf.getRawBuffer(), &update); } } #include #include void printTypes(const char *label, const DOMNode *node, int indent = 0) { if(indent == 0) std::cerr << "\n"; if(node->getNodeType() == DOMNode::ELEMENT_NODE) { const XMLCh *typeURI, *typeName; XercesNodeImpl::typeUriAndName(node, typeURI, typeName); std::cerr << label << ":" << std::string(indent * 2, ' ') << "name: {" << UTF8(node->getNamespaceURI()) << "}" << UTF8(Axis::getLocalName(node)) << ", type: {" << UTF8(typeURI) << "}" << UTF8(typeName) << "\n"; DOMNode *child = node->getFirstChild(); while(child) { printTypes(label, child, indent + 1); child = child->getNextSibling(); } } } static DOMNode *importNodeFix(DOMDocument *doc, DOMNode *node, bool deep) { DOMNode *newNode = doc->importNode(node, deep); // Xerces-C has a bug that doesn't copy the prefix correctly - jpcs if((node->getNodeType() == DOMNode::ELEMENT_NODE || node->getNodeType() == DOMNode::ATTRIBUTE_NODE) && node->getNamespaceURI() != 0 && *node->getNamespaceURI() != 0 && node->getPrefix() != 0 && *node->getPrefix() != 0) newNode->setPrefix(node->getPrefix()); return newNode; } void XercesUpdateFactory::applyInsertInto(const PendingUpdate &update, DynamicContext *context) { const XercesNodeImpl *nodeImpl = (const XercesNodeImpl*)update.getTarget()->getInterface(Item::gXQilla); DOMNode *domnode = const_cast(nodeImpl->getDOMNode()); DOMDocument *doc = const_cast(XPath2Utils::getOwnerDoc(domnode)); bool untyped = nodeImpl->dmNodeKind() == Node::element_string && XPath2Utils::equals(nodeImpl->getTypeName(), DocumentCache::g_szUntyped) && XPath2Utils::equals(nodeImpl->getTypeURI(), SchemaSymbols::fgURI_SCHEMAFORSCHEMA); bool containsElementOrText = false; Result children = update.getValue(); Item::Ptr item; while((item = children->next(context)).notNull()) { const XercesNodeImpl *childImpl = (const XercesNodeImpl*)item->getInterface(Item::gXQilla); DOMNode *newChild = importNodeFix(doc, const_cast(childImpl->getDOMNode()), /*deep*/true); if(childImpl->dmNodeKind() == Node::element_string || childImpl->dmNodeKind() == Node::text_string) { containsElementOrText = true; } // If the type-name property of $target is xs:untyped, then upd:setToUntyped() is invoked on each // element or attribute node in $content. if(!untyped) setTypes(newChild, childImpl->getDOMNode()); // For each node in $content, the parent property is set to parent($target). // The children property of $target is modified to add the nodes in $content, preserving their order. domnode->appendChild(newChild); } // If at least one of the nodes in $content is an element or text node, upd:removeType($target) is invoked. if(containsElementOrText) { removeType(domnode); } addToPutSet(update.getTarget(), &update, context); } void XercesUpdateFactory::applyInsertAttributes(const PendingUpdate &update, DynamicContext *context) { const XercesNodeImpl *nodeImpl = (const XercesNodeImpl*)update.getTarget()->getInterface(Item::gXQilla); DOMElement *element = (DOMElement*)nodeImpl->getDOMNode(); DOMDocument *doc = const_cast(XPath2Utils::getOwnerDoc(element)); bool untyped = nodeImpl->dmNodeKind() == Node::element_string && XPath2Utils::equals(nodeImpl->getTypeName(), DocumentCache::g_szUntyped) && XPath2Utils::equals(nodeImpl->getTypeURI(), SchemaSymbols::fgURI_SCHEMAFORSCHEMA); Result children = update.getValue(); Item::Ptr item; while((item = children->next(context)).notNull()) { const XercesNodeImpl *childImpl = (const XercesNodeImpl*)item->getInterface(Item::gXQilla); DOMNode *newChild = importNodeFix(doc, const_cast(childImpl->getDOMNode()), /*deep*/true); // 1. Error checks: // a. If the QNames of any two attribute nodes in $content have implied namespace bindings that conflict with each other, // a dynamic error is raised [err:XUDY0024]. // b. If the QName of any attribute node in $content has an implied namespace binding that conflicts with a namespace // binding in the "namespaces" property of $target, a dynamic error is raised [err:XUDY0024]. // Checks performed by UpdateFactory // If the type-name property of $target is xs:untyped, then upd:setToUntyped($A) is invoked. if(!untyped) setTypes(newChild, childImpl->getDOMNode()); // The parent property of $A is set to $target. // attributes: Modified to include the nodes in $content. element->setAttributeNode((DOMAttr*)newChild); } // upd:removeType($target) is invoked. removeType(element); addToPutSet(update.getTarget(), &update, context); } void XercesUpdateFactory::applyReplaceValue(const PendingUpdate &update, DynamicContext *context) { const XercesNodeImpl *nodeImpl = (const XercesNodeImpl*)update.getTarget()->getInterface(Item::gXQilla); DOMNode *domnode = const_cast(nodeImpl->getDOMNode()); // 2. If $target is a text, comment, or processing instruction node: content of $target is set to $string-value. domnode->setNodeValue(update.getValue().first()->asString(context)); if(domnode->getNodeType() == DOMNode::ATTRIBUTE_NODE) { // 1. If $target is an attribute node: // a. string-value of $target is set to $string-value. (done above) // b. upd:removeType($target) is invoked. removeType(domnode); } else if(domnode->getNodeType() == DOMNode::TEXT_NODE || domnode->getNodeType() == DOMNode::CDATA_SECTION_NODE) { // 3. If $target is a text node, upd:removeType(parent($target)) is invoked. if(domnode->getParentNode() != 0) removeType(domnode->getParentNode()); } addToPutSet(update.getTarget(), &update, context); } void XercesUpdateFactory::applyRename(const PendingUpdate &update, DynamicContext *context) { const XercesNodeImpl *nodeImpl = (const XercesNodeImpl*)update.getTarget()->getInterface(Item::gXQilla); DOMNode *domnode = const_cast(nodeImpl->getDOMNode()); ATQNameOrDerived *qname = (ATQNameOrDerived*)update.getValue().first().get(); if(domnode->getNodeType() == DOMNode::PROCESSING_INSTRUCTION_NODE) { DOMProcessingInstruction *newPI = domnode->getOwnerDocument()-> createProcessingInstruction(qname->getName(), domnode->getNodeValue()); domnode->getParentNode()->replaceChild(newPI, domnode); domnode = newPI; } else { // If $newName has an implied namespace binding that conflicts with an existing namespace binding // in the namespaces property of $target, a dynamic error is raised [err:XUDY0024]. // If $target has a parent, and $newName has an implied namespace binding that conflicts with a // namespace binding in the namespaces property of parent($target), a dynamic error is raised [err:XUDY0024]. domnode->getOwnerDocument()->renameNode(domnode, qname->getURI(), qname->getName()); if(qname->getURI() != 0 && *qname->getURI() != 0) domnode->setPrefix(qname->getPrefix()); removeType(domnode); } // Deliberately create a new XercesNodeImpl, since the PI is actually // replaced, not just renamed, meaning it is no longer attached to the tree addToPutSet(nodeImpl, &update, context); } void XercesUpdateFactory::applyDelete(const PendingUpdate &update, DynamicContext *context) { const XercesNodeImpl *nodeImpl = (const XercesNodeImpl*)update.getTarget()->getInterface(Item::gXQilla); DOMNode *domnode = const_cast(nodeImpl->getDOMNode()); forDeletion_.insert(domnode); addToPutSet(update.getTarget(), &update, context); } void XercesUpdateFactory::applyInsertBefore(const PendingUpdate &update, DynamicContext *context) { const XercesNodeImpl *nodeImpl = (const XercesNodeImpl*)update.getTarget()->getInterface(Item::gXQilla); DOMNode *domnode = const_cast(nodeImpl->getDOMNode()); Node::Ptr parentNode = nodeImpl->dmParent(context); DOMNode *parent = domnode->getParentNode(); DOMDocument *doc = const_cast(XPath2Utils::getOwnerDoc(domnode)); bool untyped = parentNode->dmNodeKind() == Node::element_string && XPath2Utils::equals(parentNode->getTypeName(), DocumentCache::g_szUntyped) && XPath2Utils::equals(parentNode->getTypeURI(), SchemaSymbols::fgURI_SCHEMAFORSCHEMA); bool containsElementOrText = false; Result children = update.getValue(); Item::Ptr item; while((item = children->next(context)).notNull()) { const XercesNodeImpl *childImpl = (const XercesNodeImpl*)item->getInterface(Item::gXQilla); DOMNode *newChild = importNodeFix(doc, const_cast(childImpl->getDOMNode()), /*deep*/true); if(childImpl->dmNodeKind() == Node::element_string || childImpl->dmNodeKind() == Node::text_string) { containsElementOrText = true; } // If the type-name property of parent($target) is xs:untyped, then upd:setToUntyped() is invoked on each // element or attribute node in $content. if(!untyped) setTypes(newChild, childImpl->getDOMNode()); // For each node in $content, the parent property is set to parent($target). // The children property of parent($target) is modified to add the nodes in $content just before $target, // preserving their order. parent->insertBefore(newChild, domnode); } // If at least one of the nodes in $content is an element or text node, upd:removeType(parent($target)) is invoked. if(containsElementOrText) { removeType(parent); } addToPutSet(update.getTarget(), &update, context); } void XercesUpdateFactory::applyInsertAfter(const PendingUpdate &update, DynamicContext *context) { const XercesNodeImpl *nodeImpl = (const XercesNodeImpl*)update.getTarget()->getInterface(Item::gXQilla); DOMNode *domnode = const_cast(nodeImpl->getDOMNode()); DOMNode *before = domnode->getNextSibling(); Node::Ptr parentNode = nodeImpl->dmParent(context); DOMNode *parent = domnode->getParentNode(); DOMDocument *doc = const_cast(XPath2Utils::getOwnerDoc(domnode)); bool untyped = parentNode->dmNodeKind() == Node::element_string && XPath2Utils::equals(parentNode->getTypeName(), DocumentCache::g_szUntyped) && XPath2Utils::equals(parentNode->getTypeURI(), SchemaSymbols::fgURI_SCHEMAFORSCHEMA); bool containsElementOrText = false; Result children = update.getValue(); Item::Ptr item; while((item = children->next(context)).notNull()) { const XercesNodeImpl *childImpl = (const XercesNodeImpl*)item->getInterface(Item::gXQilla); DOMNode *newChild = importNodeFix(doc, const_cast(childImpl->getDOMNode()), /*deep*/true); if(childImpl->dmNodeKind() == Node::element_string || childImpl->dmNodeKind() == Node::text_string) { containsElementOrText = true; } // If the type-name property of parent($target) is xs:untyped, then upd:setToUntyped() is invoked on each // element or attribute node in $content. if(!untyped) setTypes(newChild, childImpl->getDOMNode()); // For each node in $content, the parent property is set to parent($target). // The children property of parent($target) is modified to add the nodes in $content just before $target, // preserving their order. parent->insertBefore(newChild, before); } // If at least one of the nodes in $content is an element or text node, upd:removeType(parent($target)) is invoked. if(containsElementOrText) { removeType(parent); } addToPutSet(update.getTarget(), &update, context); } void XercesUpdateFactory::applyInsertAsFirst(const PendingUpdate &update, DynamicContext *context) { const XercesNodeImpl *nodeImpl = (const XercesNodeImpl*)update.getTarget()->getInterface(Item::gXQilla); DOMNode *domnode = const_cast(nodeImpl->getDOMNode()); DOMNode *firstChild = domnode->getFirstChild(); DOMDocument *doc = const_cast(XPath2Utils::getOwnerDoc(domnode)); bool untyped = nodeImpl->dmNodeKind() == Node::element_string && XPath2Utils::equals(nodeImpl->getTypeName(), DocumentCache::g_szUntyped) && XPath2Utils::equals(nodeImpl->getTypeURI(), SchemaSymbols::fgURI_SCHEMAFORSCHEMA); bool containsElementOrText = false; Result children = update.getValue(); Item::Ptr item; while((item = children->next(context)).notNull()) { const XercesNodeImpl *childImpl = (const XercesNodeImpl*)item->getInterface(Item::gXQilla); DOMNode *newChild = importNodeFix(doc, const_cast(childImpl->getDOMNode()), /*deep*/true); if(childImpl->dmNodeKind() == Node::element_string || childImpl->dmNodeKind() == Node::text_string) { containsElementOrText = true; } // If the type-name property of $target is xs:untyped, then upd:setToUntyped() is invoked on each // element or attribute node in $content. if(!untyped) setTypes(newChild, childImpl->getDOMNode()); // For each node in $content, the parent property is set to parent($target). // The children property of $target is modified to add the nodes in $content just before $target, // preserving their order. domnode->insertBefore(newChild, firstChild); } // If at least one of the nodes in $content is an element or text node, upd:removeType($target) is invoked. if(containsElementOrText) { removeType(domnode); } addToPutSet(update.getTarget(), &update, context); } void XercesUpdateFactory::applyInsertAsLast(const PendingUpdate &update, DynamicContext *context) { const XercesNodeImpl *nodeImpl = (const XercesNodeImpl*)update.getTarget()->getInterface(Item::gXQilla); DOMNode *domnode = const_cast(nodeImpl->getDOMNode()); DOMDocument *doc = const_cast(XPath2Utils::getOwnerDoc(domnode)); bool untyped = nodeImpl->dmNodeKind() == Node::element_string && XPath2Utils::equals(nodeImpl->getTypeName(), DocumentCache::g_szUntyped) && XPath2Utils::equals(nodeImpl->getTypeURI(), SchemaSymbols::fgURI_SCHEMAFORSCHEMA); bool containsElementOrText = false; Result children = update.getValue(); Item::Ptr item; while((item = children->next(context)).notNull()) { const XercesNodeImpl *childImpl = (const XercesNodeImpl*)item->getInterface(Item::gXQilla); DOMNode *newChild = importNodeFix(doc, const_cast(childImpl->getDOMNode()), /*deep*/true); if(childImpl->dmNodeKind() == Node::element_string || childImpl->dmNodeKind() == Node::text_string) { containsElementOrText = true; } // If the type-name property of $target is xs:untyped, then upd:setToUntyped() is invoked on each // element or attribute node in $content. if(!untyped) setTypes(newChild, childImpl->getDOMNode()); // For each node in $content, the parent property is set to parent($target). // The children property of $target is modified to add the nodes in $content just before $target, // preserving their order. domnode->appendChild(newChild); } // If at least one of the nodes in $content is an element or text node, upd:removeType($target) is invoked. if(containsElementOrText) { removeType(domnode); } addToPutSet(update.getTarget(), &update, context); } void XercesUpdateFactory::applyReplaceNode(const PendingUpdate &update, DynamicContext *context) { const XercesNodeImpl *nodeImpl = (const XercesNodeImpl*)update.getTarget()->getInterface(Item::gXQilla); DOMNode *domnode = const_cast(nodeImpl->getDOMNode()); Node::Ptr parentNode = nodeImpl->dmParent(context); DOMNode *parent = domnode->getParentNode(); DOMDocument *doc = const_cast(XPath2Utils::getOwnerDoc(domnode)); bool untyped = parentNode->dmNodeKind() == Node::element_string && XPath2Utils::equals(parentNode->getTypeName(), DocumentCache::g_szUntyped) && XPath2Utils::equals(parentNode->getTypeURI(), SchemaSymbols::fgURI_SCHEMAFORSCHEMA); Result children = update.getValue(); Item::Ptr item; while((item = children->next(context)).notNull()) { const XercesNodeImpl *childImpl = (const XercesNodeImpl*)item->getInterface(Item::gXQilla); DOMNode *newChild = importNodeFix(doc, const_cast(childImpl->getDOMNode()), /*deep*/true); // 1b. If the type-name property of parent($target) is xs:untyped, then upd:setToUntyped() is invoked // on each element node in $replacement. if(!untyped) setTypes(newChild, childImpl->getDOMNode()); // 1a. For each node in $replacement, the parent property is set to parent($target). // 3b. If $target is an element, text, comment, or processing instruction node, the children property // of parent($target) is modified to add the nodes in $replacement just before $target, preserving // their order. parent->insertBefore(newChild, domnode); } // 2a. $target is marked for deletion. forDeletion_.insert(domnode); // 3c. upd:removeType(parent($target)) is invoked. removeType(parent); addToPutSet(update.getTarget(), &update, context); } void XercesUpdateFactory::applyReplaceAttribute(const PendingUpdate &update, DynamicContext *context) { const XercesNodeImpl *nodeImpl = (const XercesNodeImpl*)update.getTarget()->getInterface(Item::gXQilla); DOMAttr *domnode = (DOMAttr*)nodeImpl->getDOMNode(); Node::Ptr parentNode = nodeImpl->dmParent(context); DOMElement *element = domnode->getOwnerElement(); DOMDocument *doc = element->getOwnerDocument(); bool untyped = parentNode->dmNodeKind() == Node::element_string && XPath2Utils::equals(parentNode->getTypeName(), DocumentCache::g_szUntyped) && XPath2Utils::equals(parentNode->getTypeURI(), SchemaSymbols::fgURI_SCHEMAFORSCHEMA); Result children = update.getValue(); Item::Ptr item; while((item = children->next(context)).notNull()) { const XercesNodeImpl *childImpl = (const XercesNodeImpl*)item->getInterface(Item::gXQilla); DOMNode *newChild = importNodeFix(doc, const_cast(childImpl->getDOMNode()), /*deep*/true); // 1. Error checks: // a. If the QNames of any two attribute nodes in $replacement have implied namespace bindings that conflict with // each other, a dynamic error is raised [err:XUDY0024]. // b. If the QName of any attribute node in $replacement has an implied namespace binding that conflicts with a // namespace binding in the "namespaces" property of parent($target), a dynamic error is raised [err:XUDY0024]. // Checks performed by UpdateFactory // 2b. If the type-name property of parent($target) is xs:untyped, then upd:setToUntyped() is invoked // on each element node in $replacement. if(!untyped) setTypes(newChild, childImpl->getDOMNode()); // 2a. For each node in $replacement, the parent property is set to parent($target). // 4a. If $target is an attribute node, the attributes property of parent($target) is modified by removing $target // and adding the nodes in $replacement (if any). // 4b. If $target is an attribute node, the namespaces property of parent($target) is modified to include namespace // bindings for any attribute namespace prefixes in $replacement that did not already have bindings. element->setAttributeNode((DOMAttr*)newChild); } // 3a. $target is marked for deletion. forDeletion_.insert(domnode); // 4d. upd:removeType(parent($target)) is invoked. removeType(element); // Use parentNode, since the attr replace could have removed the original attr addToPutSet(parentNode, &update, context); } void XercesUpdateFactory::applyReplaceElementContent(const PendingUpdate &update, DynamicContext *context) { const XercesNodeImpl *nodeImpl = (const XercesNodeImpl*)update.getTarget()->getInterface(Item::gXQilla); DOMElement *domnode = (DOMElement*)nodeImpl->getDOMNode(); // 1. For each node $C that is a child of $target, the parent property of $C is set to empty. DOMNode *child = domnode->getFirstChild(); while(child != 0) { forDeletion_.insert(child); child = child->getNextSibling(); } const XMLCh *value = update.getValue().first()->asString(context); if(value != 0 && *value != 0) { // 2. The parent property of $text is set to $target. // 3a. children is set to consist exclusively of $text. If $text is an empty sequence, then $target has // no children. // 3b. typed-value and string-value are set to the content property of $text. If $text is an empty sequence, // then typed-value is an empty sequence and string-value is an empty string. domnode->appendChild(domnode->getOwnerDocument()->createTextNode(value)); } // 3c. upd:removeType($target) is invoked. removeType(domnode); addToPutSet(update.getTarget(), &update, context); } void XercesUpdateFactory::removeType(DOMNode *node) { DOMNode *ancestor = node; // 1. If $N is an element node, its properties are changed as follows: if(node->getNodeType() == DOMNode::ELEMENT_NODE) { // a. If type-name is not equal to xs:untyped, then const XMLCh *typeURI, *typeName; XercesNodeImpl::typeUriAndName(node, typeURI, typeName); if(!XPath2Utils::equals(typeName, DocumentCache::g_szUntyped) || !XPath2Utils::equals(typeURI, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) { // i. type-name is set to xs:anyType XercesSequenceBuilder::setElementTypeInfo((DOMElement *)node, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgATTVAL_ANYTYPE); // ii. If the parent of N is an element node, then upd:removeType(parent($N)) is invoked. DOMNode *parent = node->getParentNode(); if(parent && parent->getNodeType() == DOMNode::ELEMENT_NODE) removeType(parent); } // b. string-value is set equal to the concatenated contents of the text node descendants, in document order. // c. typed-value is set equal to the string-value property, as an instance of xs:untypedAtomic. // d. nilled, is-id, and is-idrefs are set to false. // Automatically done by changing the type } // 2. If $N is an attribute node, its properties are changed as follows: else if(node->getNodeType() == DOMNode::ATTRIBUTE_NODE) { // a. type-name is set to xs:untypedAtomic. XercesSequenceBuilder::setAttributeTypeInfo((DOMAttr *)node, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, ATUntypedAtomic::fgDT_UNTYPEDATOMIC); // b. typed-value is set equal to the string-value property, as an instance of xs:untypedAtomic. // c. is-id and is-idrefs are set to false. // Automatically done by changing the type // d. If $N has a parent, upd:removeType(parent($N)) is invoked. ancestor = ((DOMAttr*)node)->getOwnerElement(); if(ancestor) removeType(ancestor); } else return; // 3. The topmost ancestor of $N is marked for revalidation. if(ancestor) { while(ancestor->getParentNode() != 0) ancestor = ancestor->getParentNode(); forRevalidation_.insert(ancestor); } } void XercesUpdateFactory::setTypes(DOMNode *node, const DOMNode *from) { if(node->getNodeType() == DOMNode::ELEMENT_NODE) { const XMLCh *turi, *tname; XercesNodeImpl::typeUriAndName(from, turi, tname); XercesSequenceBuilder::setElementTypeInfo((DOMElement *)node, turi, tname); DOMNamedNodeMap *attrs = node->getAttributes(); DOMNamedNodeMap *attrsfrom = from->getAttributes(); for(unsigned int i = 0; i < attrs->getLength(); ++i) { DOMNode *a = attrs->item(i); DOMNode *afrom = attrsfrom->getNamedItemNS(a->getNamespaceURI(), Axis::getLocalName(a)); if(afrom) setTypes(a, afrom); } DOMNode *child = node->getFirstChild(); DOMNode *cfrom = from->getFirstChild(); while(child) { if(child->getNodeType() == DOMNode::ELEMENT_NODE) setTypes(child, cfrom); child = child->getNextSibling(); cfrom = cfrom->getNextSibling(); } } else if(node->getNodeType() == DOMNode::ATTRIBUTE_NODE) { const XMLCh *turi, *tname; XercesNodeImpl::typeUriAndName(from, turi, tname); XercesSequenceBuilder::setAttributeTypeInfo((DOMAttr *)node, turi, tname); } } bool XercesUpdateFactory::PutItem::operator<(const PutItem &other) const { if(uri == 0 && other.uri == 0) { return node->uniqueLessThan(other.node, context); } return XPath2Utils::compare(uri, other.uri) < 0; } void XercesUpdateFactory::addToPutSet(const Node::Ptr &node, const LocationInfo *location, DynamicContext *context) { Node::Ptr root = node->root(context); Sequence docURISeq = root->dmDocumentURI(context); const XMLCh *docuri = 0; if(!docURISeq.isEmpty()) { docuri = docURISeq.first()->asString(context); } PutItem item(docuri, root, location, context); std::pair res = putSet_.insert(item); if(!res.second && !res.first->node->equals(item.node)) { if(context->getMessageListener() != 0) { context->getMessageListener()->warning(X("In the context of this expression"), res.first->location); } XMLBuffer buf; buf.append(X("Document writing conflict for URI \"")); buf.append(item.uri); buf.append(X("\"")); XQThrow3(ASTException, X("XercesUpdateFactory::addToPutSet"), buf.getRawBuffer(), location); } } void XercesUpdateFactory::completeDeletions(DynamicContext *context) { // e. Finally, for each node marked for deletion by one of the update primitives listed above, let $N be the node that is marked // for deletion, and let $P be its parent node. The following actions are applied: // i. The parent property of $N is set to empty. // ii. If $N is an attribute node, the attributes property of $P is modified to remove $N. // iii. If $N is a non-attribute node, the children property of $P is modified to remove $N. // iv. If $N is an element, attribute, or text node, and $P is an element node, then upd:removeType($P) is invoked. for(DOMNodeSet::iterator i = forDeletion_.begin(); i != forDeletion_.end(); ++i) { DOMNode *domnode = *i; if(domnode->getNodeType() == DOMNode::ATTRIBUTE_NODE) { DOMAttr *attr = (DOMAttr*)domnode; DOMElement *owner = attr->getOwnerElement(); if(owner != 0) { owner->removeAttributeNode(attr); removeType(owner); } } else { DOMNode *parent = domnode->getParentNode(); if(parent != 0) { parent->removeChild(domnode); if(domnode->getNodeType() == DOMNode::ELEMENT_NODE || domnode->getNodeType() == DOMNode::TEXT_NODE || domnode->getNodeType() == DOMNode::CDATA_SECTION_NODE) { removeType(parent); } } } } } static inline DOMElement *nextElement(DOMNode *node) { while(node && node->getNodeType() != DOMNode::ELEMENT_NODE) { node = node->getNextSibling(); } return (DOMElement*)node; } class RevalidationEventHandler : public EventHandler { public: RevalidationEventHandler(DOMNode *node) : node_(0), child_(node) { } virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding) { assert(child_ && child_->getNodeType() == DOMNode::DOCUMENT_NODE); node_ = child_; child_ = nextElement(node_->getFirstChild()); } virtual void endDocumentEvent() { assert(node_ && node_->getNodeType() == DOMNode::DOCUMENT_NODE); child_ = node_; node_ = 0; } virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname) { assert(child_ && child_->getNodeType() == DOMNode::ELEMENT_NODE); node_ = child_; child_ = nextElement(node_->getFirstChild()); } virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName) { assert(node_ && node_->getNodeType() == DOMNode::ELEMENT_NODE); // Copy the element's type const XMLCh *oldTypeURI, *oldTypeName; XercesNodeImpl::typeUriAndName(node_, oldTypeURI, oldTypeName); if(!XPath2Utils::equals(oldTypeName, typeName) || !XPath2Utils::equals(oldTypeURI, typeURI)) { XercesSequenceBuilder::setElementTypeInfo((DOMElement *)node_, typeURI, typeName); } child_ = node_; node_ = node_->getParentNode(); child_ = nextElement(child_->getNextSibling()); } virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { assert(node_ && node_->getNodeType() == DOMNode::ELEMENT_NODE); DOMNamedNodeMap *attrs = node_->getAttributes(); DOMAttr *at = (DOMAttr*)attrs->getNamedItemNS(uri, localname); // Add the attribute if(!at) { at = node_->getOwnerDocument()->createAttributeNS(uri, localname); if(prefix && *prefix) at->setPrefix(prefix); attrs->setNamedItemNS(at); } // Copy the schema normalized value at->setNodeValue(value); // Copy the attribute's type const XMLCh *oldTypeURI, *oldTypeName; XercesNodeImpl::typeUriAndName(at, oldTypeURI, oldTypeName); if(!XPath2Utils::equals(oldTypeName, typeName) || !XPath2Utils::equals(oldTypeURI, typeURI)) { XercesSequenceBuilder::setAttributeTypeInfo(at, typeURI, typeName); } } virtual void piEvent(const XMLCh *target, const XMLCh *value) { } virtual void textEvent(const XMLCh *value) { } virtual void textEvent(const XMLCh *chars, unsigned int length) { } virtual void commentEvent(const XMLCh *value) { } virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri) { } virtual void atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { } virtual void endEvent() { } private: DOMNode *node_; DOMNode *child_; }; void XercesUpdateFactory::completeRevalidation(DynamicContext *context) { if(valMode_ == DocumentCache::VALIDATION_SKIP) return; for(DOMNodeSet::iterator i = forRevalidation_.begin(); i != forRevalidation_.end(); ++i) { DOMNode *top = *i; // TBD element default/normalized values - jpcs // Stream the node through the schema validator, and back to the RevalidationEventHandler, // which will write the information back into the node RevalidationEventHandler reh(top); SchemaValidatorFilter svf(valMode_ == DocumentCache::VALIDATION_STRICT, &reh, context->getDocumentCache()->getGrammarResolver(), context->getMemoryManager(), 0); ValidateArgumentCheckFilter argCheck(&svf, valMode_, context, 0); XercesNodeImpl::generateEvents(top, &argCheck, true, false); argCheck.endEvent(); } } void XercesUpdateFactory::completeUpdate(DynamicContext *context) { completeDeletions(context); completeRevalidation(context); // Call the URIResolvers to handle the PutSet for(PutSet::iterator i = putSet_.begin(); i != putSet_.end(); ++i) { try { if(!context->putDocument(i->node, i->uri)) { XMLBuffer buf; buf.append(X("Writing of updated document failed for URI \"")); buf.append(i->uri); buf.append(X("\"")); XQThrow3(ASTException, X("XercesUpdateFactory::completeUpdate"), buf.getRawBuffer(), i->location); } } catch(XQException& e) { if(e.getXQueryLine() == 0) { e.setXQueryPosition(i->location); } throw e; } } } XQilla-2.3.0/src/xerces/ParentAxis.hpp0000644000151400015140000000215711653565523014512 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _PARENTAXIS_HPP #define _PARENTAXIS_HPP #include "Axis.hpp" class XQILLA_API ParentAxis : public Axis { public: ParentAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory); const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *nextNode(DynamicContext *context); }; #endif XQilla-2.3.0/src/xerces/PrecedingSiblingAxis.cpp0000644000151400015140000000264011653565523016461 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "PrecedingSiblingAxis.hpp" #include PrecedingSiblingAxis::PrecedingSiblingAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory) : Axis(info, contextNode, nodeObj, nodeTest, factory), sibling_(0) { } const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *PrecedingSiblingAxis::nextNode(DynamicContext *context) { if(toDo_) { // initialise toDo_ = false; sibling_ = getPreviousSibling(contextNode_); } else if(sibling_ != 0) { sibling_ = getPreviousSibling(sibling_); } return sibling_; } XQilla-2.3.0/src/xerces/DescendantOrSelfAxis.hpp0000644000151400015140000000233511653565523016442 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _DESCENDANTORSELFAXIS_HPP #define _DESCENDANTORSELFAXIS_HPP #include "Axis.hpp" class XQILLA_API DescendantOrSelfAxis : public Axis { public: DescendantOrSelfAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory); const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *nextNode(DynamicContext *context); private: const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *descendant_; }; #endif XQilla-2.3.0/src/xerces/XercesNodeImpl.hpp0000644000151400015140000001054211653565523015312 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQILLANODEIMPL_HPP #define _XQILLANODEIMPL_HPP #include #include #include "Axis.hpp" #include #include class DynamicContext; class XPath2MemoryManager; class Sequence; class DocumentCache; class XercesURIResolver; XERCES_CPP_NAMESPACE_BEGIN class DatatypeValidator; class DOMNode; XERCES_CPP_NAMESPACE_END class XercesNodeImpl : public Node, private AxisNodeFactory { public: typedef RefCountPointer Ptr; XercesNodeImpl(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node, XercesURIResolver *resolver); ~XercesNodeImpl(); virtual void *getInterface(const XMLCh *name) const; virtual const XMLCh* asString(const DynamicContext* context) const; virtual bool hasInstanceOfType(const XMLCh* typeURI, const XMLCh* typeName, const DynamicContext* context) const; virtual Sequence dmBaseURI(const DynamicContext* context) const; virtual const XMLCh* dmNodeKind() const; virtual ATQNameOrDerived::Ptr dmNodeName(const DynamicContext* context) const; virtual const XMLCh* dmStringValue(const DynamicContext* context) const; virtual Sequence dmTypedValue(DynamicContext* context) const; virtual Sequence dmDocumentURI(const DynamicContext* context) const; virtual ATQNameOrDerived::Ptr dmTypeName(const DynamicContext* context) const; virtual ATBooleanOrDerived::Ptr dmNilled(const DynamicContext* context) const; virtual bool lessThan(const Node::Ptr &other, const DynamicContext *context) const; virtual bool equals(const Node::Ptr &other) const; virtual bool uniqueLessThan(const Node::Ptr &other, const DynamicContext *context) const; virtual const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* getDOMNode() const; virtual Node::Ptr root(const DynamicContext* context) const; virtual Node::Ptr dmParent(const DynamicContext* context) const; virtual Result dmAttributes(const DynamicContext* context, const LocationInfo *info) const; virtual Result dmNamespaceNodes(const DynamicContext* context, const LocationInfo *info) const; virtual Result dmChildren(const DynamicContext *context, const LocationInfo *info) const; virtual Result getAxisResult(XQStep::Axis axis, const NodeTest *nodeTest, const DynamicContext *context, const LocationInfo *info) const; virtual ATBooleanOrDerived::Ptr dmIsId(const DynamicContext* context) const; virtual ATBooleanOrDerived::Ptr dmIsIdRefs(const DynamicContext* context) const; virtual const XMLCh* getTypeURI() const; virtual const XMLCh* getTypeName() const; virtual void generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS = true, bool preserveType = true) const; static void typeUriAndName(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node, const XMLCh *&uri, const XMLCh *&name); static void generateEvents(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node, EventHandler *events, bool preserveNS = true, bool preserveType = true); protected: virtual Node::Ptr createNode(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node, const DynamicContext *context) const; virtual void getTypeUriAndName(const XMLCh*& uri, const XMLCh*& name) const; virtual void getMemberTypeUriAndName(const XMLCh*& uri, const XMLCh*& name) const; Sequence getListTypeTypedValue(XERCES_CPP_NAMESPACE_QUALIFIER DatatypeValidator *dtv, const DynamicContext* context) const; void addStringValueToBuffer(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* node, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer& buffer) const; const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* fNode; XercesURIResolver *resolver_; }; #endif XQilla-2.3.0/src/xerces/AncestorAxis.cpp0000644000151400015140000000261711653565523015033 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "AncestorAxis.hpp" #include #include AncestorAxis::AncestorAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory) : Axis(info, contextNode, nodeObj, nodeTest, factory), ancestor_(0) { } const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *AncestorAxis::nextNode(DynamicContext *context) { if(toDo_) { // initialise toDo_ = false; ancestor_ = contextNode_; } if(ancestor_ != 0) { ancestor_ = getParent(ancestor_); } return ancestor_; } XQilla-2.3.0/src/xerces/XercesNodeImpl.cpp0000644000151400015140000014400111653565523015303 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "XercesNodeImpl.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "AncestorAxis.hpp" #include "AncestorOrSelfAxis.hpp" #include "AttributeAxis.hpp" #include "ChildAxis.hpp" #include "DescendantAxis.hpp" #include "DescendantOrSelfAxis.hpp" #include "FollowingAxis.hpp" #include "FollowingSiblingAxis.hpp" #include "NamespaceAxis.hpp" #include "ParentAxis.hpp" #include "PrecedingAxis.hpp" #include "PrecedingSiblingAxis.hpp" #include #include #include "../xerces/XercesURIResolver.hpp" #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif XercesNodeImpl::XercesNodeImpl(const DOMNode *node, XercesURIResolver *resolver) : fNode(node), // resolver_((XercesURIResolver*)context->getDefaultURIResolver()) resolver_(resolver) { assert(node!=0); if(resolver_ != 0) { resolver_->incrementDocumentRefCount(XPath2Utils::getOwnerDoc(fNode)); } } XercesNodeImpl::~XercesNodeImpl() { if(resolver_ != 0) { resolver_->decrementDocumentRefCount(XPath2Utils::getOwnerDoc(fNode)); } } Node::Ptr XercesNodeImpl::createNode(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node, const DynamicContext *context) const { return new XercesNodeImpl(node, resolver_); } void *XercesNodeImpl::getInterface(const XMLCh *name) const { if(XPath2Utils::equals(name,Item::gXQilla)) { return (void*)this; } else if(XPath2Utils::equals(name, XercesConfiguration::gXerces)) { return (void*)fNode; } return 0; } const XMLCh* XercesNodeImpl::asString(const DynamicContext* context) const { XPath2MemoryManager *mm = context->getMemoryManager(); MemBufFormatTarget target(1023, mm); EventSerializer writer(&target, mm); NSFixupFilter nsfilter(&writer, mm); generateEvents(&nsfilter, context); nsfilter.endEvent(); return XMLString::replicate((XMLCh*)target.getRawBuffer(), mm); } static inline bool emptyString(const XMLCh * const str) { return str == 0 || *str == 0; } static void outputInheritedNamespaces(const DOMNode *node, EventHandler *events) { typedef std::set DoneSet; DoneSet done; while(node != 0 && node->getNodeType() == DOMNode::ELEMENT_NODE) { if(done.insert(emptyToNull(node->getPrefix())).second && !emptyString(node->getNamespaceURI())) { events->namespaceEvent(emptyToNull(node->getPrefix()), node->getNamespaceURI()); } DOMNamedNodeMap *attrs = node->getAttributes(); for(unsigned int i = 0; i < attrs->getLength(); ++i) { DOMNode *attr = attrs->item(i); if(XPath2Utils::equals(XMLUni::fgXMLNSURIName, attr->getNamespaceURI())) { const XMLCh *prefix = emptyString(attr->getPrefix()) ? 0 : Axis::getLocalName(attr); if(done.insert(prefix).second && !emptyString(attr->getNodeValue())) { events->namespaceEvent(prefix, attr->getNodeValue()); } } else if(!emptyString(attr->getNamespaceURI()) && done.insert(emptyToNull(attr->getPrefix())).second) { events->namespaceEvent(emptyToNull(attr->getPrefix()), attr->getNamespaceURI()); } } node = node->getParentNode(); } } static void toEventsImpl(const DOMNode *node, EventHandler *events, bool outputNamespaces, bool preserveType, bool inheritedNamespaces) { switch(node->getNodeType()) { case DOMNode::DOCUMENT_NODE: { #if _XERCES_VERSION >= 30000 events->startDocumentEvent(((DOMDocument*)node)->getDocumentURI(), ((DOMDocument*)node)->getInputEncoding()); #else events->startDocumentEvent(((DOMDocument*)node)->getDocumentURI(), ((DOMDocument*)node)->getActualEncoding()); #endif DOMNode *child = node->getFirstChild(); while(child != 0) { toEventsImpl(child, events, outputNamespaces, preserveType, false); child = child->getNextSibling(); } events->endDocumentEvent(); break; } case DOMNode::ELEMENT_NODE: { events->startElementEvent(emptyToNull(node->getPrefix()), emptyToNull(node->getNamespaceURI()), emptyToNull(Axis::getLocalName(node))); DOMNamedNodeMap *attrs = node->getAttributes(); for(unsigned int i = 0; i < attrs->getLength(); ++i) { toEventsImpl(attrs->item(i), events, outputNamespaces, preserveType, inheritedNamespaces); } if(inheritedNamespaces) { outputInheritedNamespaces(node, events); } DOMNode *child = node->getFirstChild(); while(child != 0) { toEventsImpl(child, events, outputNamespaces, preserveType, false); child = child->getNextSibling(); } const XMLCh *typeURI = SchemaSymbols::fgURI_SCHEMAFORSCHEMA; const XMLCh *typeName = DocumentCache::g_szUntyped; if(preserveType) XercesNodeImpl::typeUriAndName(node, typeURI, typeName); events->endElementEvent(emptyToNull(node->getPrefix()), emptyToNull(node->getNamespaceURI()), emptyToNull(Axis::getLocalName(node)), typeURI, typeName); break; } case DOMNode::TEXT_NODE: case DOMNode::CDATA_SECTION_NODE: events->textEvent(node->getNodeValue()); break; case DOMNode::COMMENT_NODE: events->commentEvent(node->getNodeValue()); break; case DOMNode::PROCESSING_INSTRUCTION_NODE: events->piEvent(node->getNodeName(), node->getNodeValue()); break; case DOMNode::ATTRIBUTE_NODE: if(XPath2Utils::equals(XMLUni::fgXMLNSURIName, node->getNamespaceURI())) { if(outputNamespaces && !inheritedNamespaces) { const XMLCh *prefix = emptyString(node->getPrefix()) ? 0 : Axis::getLocalName(node); events->namespaceEvent(prefix, emptyToNull(node->getNodeValue())); } } else { const XMLCh *typeURI = SchemaSymbols::fgURI_SCHEMAFORSCHEMA; const XMLCh *typeName = ATUntypedAtomic::fgDT_UNTYPEDATOMIC; if(preserveType) XercesNodeImpl::typeUriAndName(node, typeURI, typeName); events->attributeEvent(emptyToNull(node->getPrefix()), emptyToNull(node->getNamespaceURI()), Axis::getLocalName(node), node->getNodeValue(), typeURI, typeName); } break; case (DOMNode::NodeType)DOMXPathNamespace::XPATH_NAMESPACE_NODE: events->namespaceEvent(emptyToNull(node->getNodeName()), emptyToNull(node->getNamespaceURI())); break; default: break; } } void XercesNodeImpl::generateEvents(const DOMNode *node, EventHandler *events, bool preserveNS, bool preserveType) { toEventsImpl(node, events, preserveNS, preserveType, preserveNS); } void XercesNodeImpl::generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS, bool preserveType) const { toEventsImpl(fNode, events, preserveNS, preserveType, preserveNS); } /** check if the underlying type of this node is instance of a certain type */ bool XercesNodeImpl::hasInstanceOfType(const XMLCh* typeURI, const XMLCh* typeName, const DynamicContext* context) const { const XMLCh* uri, *name; getTypeUriAndName(uri,name); return context->isTypeOrDerivedFromType(uri, name, typeURI, typeName); } /* Accessor functions */ Sequence XercesNodeImpl::dmBaseURI(const DynamicContext* context) const { static XMLCh base_str[] = { 'b', 'a', 's', 'e', 0 }; switch (fNode->getNodeType()) { case DOMNode::DOCUMENT_NODE: { const XMLCh *baseURI = context->getBaseURI(); const XMLCh* docURI = ((DOMDocument*)fNode)->getDocumentURI(); if(docURI != 0 && *docURI != 0) baseURI = docURI; if(baseURI == 0 || *baseURI == 0) return Sequence(context->getMemoryManager()); return Sequence(context->getItemFactory()->createAnyURI(baseURI, context), context->getMemoryManager()); } case DOMNode::ELEMENT_NODE: { const XMLCh *baseURI = context->getBaseURI(); Node::Ptr parent = dmParent(context); if(parent.notNull()) { Sequence pb = parent->dmBaseURI(context); if(!pb.isEmpty()) baseURI = pb.first()->asString(context); } NodeTest xmlBase; xmlBase.setNodeName(base_str); xmlBase.setNodeUri(XMLUni::fgXMLURIName); xmlBase.setTypeWildcard(); Item::Ptr item = getAxisResult(XQStep::ATTRIBUTE, &xmlBase, const_cast(context), 0)-> next(const_cast(context)); if(item.notNull()) { const XMLCh *uri = ((Node*)item.get())->dmStringValue(context); if(uri && *uri) { if(baseURI && *baseURI) { XMLUri temp(baseURI, context->getMemoryManager()); XMLUri temp2(&temp, uri, context->getMemoryManager()); return Sequence(context->getItemFactory()->createAnyURI(temp2.getUriText(), context), context->getMemoryManager()); } return Sequence(context->getItemFactory()->createAnyURI(uri, context), context->getMemoryManager()); } } if(baseURI == NULL || *baseURI == 0) return Sequence(context->getMemoryManager()); return Sequence(context->getItemFactory()->createAnyURI(baseURI, context), context->getMemoryManager()); } case DOMNode::ATTRIBUTE_NODE: case DOMNode::COMMENT_NODE: case DOMNode::TEXT_NODE: case DOMNode::PROCESSING_INSTRUCTION_NODE: { Node::Ptr parent = dmParent(context); if(parent.notNull()) { return parent->dmBaseURI(context); } return Sequence(context->getMemoryManager()); } default: break; } return Sequence(context->getMemoryManager()); } // The dm:node-kind accessor returns a string value representing the // node's kind: either "document", "element", "attribute", "text", // "namespace", "processing-instruction", or "comment". const XMLCh* XercesNodeImpl::dmNodeKind(void) const { switch(fNode->getNodeType()) { case DOMNode::DOCUMENT_NODE: return document_string; case DOMNode::ELEMENT_NODE: return element_string; case DOMNode::ATTRIBUTE_NODE: return attribute_string; case DOMNode::CDATA_SECTION_NODE: case DOMNode::TEXT_NODE: return text_string; case DOMNode::PROCESSING_INSTRUCTION_NODE: return processing_instruction_string; case DOMNode::COMMENT_NODE: return comment_string; case DOMXPathNamespace::XPATH_NAMESPACE_NODE: return namespace_string; default: break; } XQThrow2(ItemException, X("XercesNodeImpl::dmNodeKind"), X("Unknown node type.")); } ATQNameOrDerived::Ptr XercesNodeImpl::dmNodeName(const DynamicContext* context) const { switch(fNode->getNodeType()) { case DOMNode::ELEMENT_NODE: return context->getItemFactory()->createQName(fNode->getNamespaceURI(), fNode->getPrefix(), Axis::getLocalName(fNode), context); case DOMNode::ATTRIBUTE_NODE: return context->getItemFactory()->createQName(fNode->getNamespaceURI(), fNode->getPrefix(), Axis::getLocalName(fNode), context); case DOMNode::PROCESSING_INSTRUCTION_NODE: return context->getItemFactory()->createQName(XMLUni::fgZeroLenString, XMLUni::fgZeroLenString, fNode->getNodeName(), context); case DOMXPathNamespace::XPATH_NAMESPACE_NODE: { const XMLCh* prefix = fNode->getPrefix(); if(prefix) return context->getItemFactory()->createQName(XMLUni::fgZeroLenString, XMLUni::fgZeroLenString, prefix, context); } default: break; } return 0; } void XercesNodeImpl::addStringValueToBuffer(const DOMNode* node, XMLBuffer& buffer) const { short nodeType=node->getNodeType(); if(nodeType==DOMNode::TEXT_NODE || nodeType==DOMNode::CDATA_SECTION_NODE) { buffer.append(node->getNodeValue()); } else { for(DOMNode* child=node->getFirstChild();child!=NULL;child=child->getNextSibling()) addStringValueToBuffer(child,buffer); } } //The dm:string-value accessor returns the node's string //representation. For some kinds of nodes, this is part of the node; //for other kinds of nodes, it is computed from the dm:string-value of //its descendant nodes. const XMLCh* XercesNodeImpl::dmStringValue(const DynamicContext* context) const { switch(fNode->getNodeType()) { case DOMNode::DOCUMENT_NODE: { // Returns the concatenation of the string-values of all its text node descendants in document order XMLBuffer str(1023, context->getMemoryManager()); addStringValueToBuffer(fNode,str); return context->getMemoryManager()->getPooledString(str.getRawBuffer()); } break; case DOMNode::ELEMENT_NODE: { XMLBuffer str(1023, context->getMemoryManager()); const XMLCh* typeUri, *typeName; getTypeUriAndName(typeUri,typeName); //Returns the string value calculated as follows: // - If the element has a type of xdt:untyped, a complex type with complex content, or a complex type with mixed content, // returns the concatenation of the string-values of all its text node descendants in document order. // It returns "" if the element has no text node descendants. // - If the element has a complex type with empty content, returns "". if((XPath2Utils::equals(typeName, DocumentCache::g_szUntyped) && XPath2Utils::equals(typeUri, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) || context->getDocumentCache()->getComplexTypeInfo(typeUri, typeName)!=NULL) addStringValueToBuffer(fNode,str); else { // - If the element has a simple type or a complex type with simple content: // - If the element type is xs:string, or a type derived from xs:string, returns that string. if(context->getDocumentCache()->isTypeOrDerivedFromType(typeUri,typeName,SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING)) str.set(fNode->getTextContent()); // - If the element type is xs:anyURI, returns the characters of the URI. else if(XPath2Utils::equals(typeName, SchemaSymbols::fgDT_ANYURI) && XPath2Utils::equals(typeUri, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) str.set(fNode->getTextContent()); // - If the element type is xs:QName returns the value calculated as follows: // - If the value has no namespace URI and the in-scope namespaces map the default namespace to any // namespace URI, then an error is raised ("default namespace is defined"). // - If the value has a namespace URI, then there must be at least one prefix mapped to that URI in // the in-scope namespaces. If there is no such prefix, an error is raised ("no prefix defined for namespace"). // If there is more than one such prefix, the one that is chosen is implementation dependent. // - If no error occurs, returns a string with the lexical form of a xs:QName using the prefix chosen // as described above, and the local name of the value. else if(XPath2Utils::equals(typeName, SchemaSymbols::fgDT_QNAME) && XPath2Utils::equals(typeUri, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) { // REVISIT: the rules assume that a QName has been expanded upon loading, but we don't do that... str.set(fNode->getTextContent()); } // - If the element type is xs:dateTime, xs:date, or xs:time, returns the original lexical representation of // the typed value recovered as follows: if an explicit timezone was present, the normalized value is adjusted // using the explicit timezone; if an explicit timezone was not present, the Z is dropped from the normalized value. // The normalized value and the explicit timezone, if present, are converted separately to xs:string and concatenated // to yield the string value. else if(XPath2Utils::equals(typeUri, SchemaSymbols::fgURI_SCHEMAFORSCHEMA) && (XPath2Utils::equals(typeName, SchemaSymbols::fgDT_DATETIME) || XPath2Utils::equals(typeName, SchemaSymbols::fgDT_DATE) || XPath2Utils::equals(typeName, SchemaSymbols::fgDT_TIME))) { const AnyAtomicType::Ptr item = context->getItemFactory()->createDerivedFromAtomicType(typeUri, typeName, fNode->getTextContent(), context); str.set(item->asString(context)); } // - In all other cases, returns the concatenation of the string-values of all its text node descendants in document order. else addStringValueToBuffer(fNode,str); } return context->getMemoryManager()->getPooledString(str.getRawBuffer()); } break; case DOMNode::ATTRIBUTE_NODE: { const XMLCh* typeUri, *typeName; getTypeUriAndName(typeUri,typeName); // Returns the value calculated as follows: // - If the attribute type is xdt:untypedAtomic, xs:string, or a type derived from xs:string, returns that string. if((XPath2Utils::equals(typeName, ATUntypedAtomic::fgDT_UNTYPEDATOMIC) && XPath2Utils::equals(typeUri, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) || context->getDocumentCache()->isTypeOrDerivedFromType(typeUri,typeName,SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING)) return context->getMemoryManager()->getPooledString(fNode->getNodeValue()); // - If the attribute type is xs:anyURI, returns the characters of the URI. else if(XPath2Utils::equals(typeName, SchemaSymbols::fgDT_ANYURI) && XPath2Utils::equals(typeUri, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) return context->getMemoryManager()->getPooledString(fNode->getNodeValue()); // - If the attribute type is xs:QName returns the value calculated as follows: // - If the value has no namespace URI, then an error is raised ("default namespace is defined") if the in-scope // namespaces map the default namespace to any namespace URI. // - If the value has a namespace URI, then there must be at least one prefix mapped to that URI in the in-scope // namespaces. If there is no such prefix, an error is raised ("no prefix defined for namespace"). // If there is more than one such prefix, the one that is chosen is implementation dependent. // - If no error occurs, returns a string with the lexical form of a xs:QName using the prefix chosen as described // above, and the local name of the value. else if(XPath2Utils::equals(typeName, SchemaSymbols::fgDT_QNAME) && XPath2Utils::equals(typeUri, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) { // REVISIT: the rules assume that a QName has been expanded upon loading, but we don't do that... return context->getMemoryManager()->getPooledString(fNode->getNodeValue()); } // - If the attribute type is xs:dateTime, xs:date, or xs:time, returns the original lexical representation recovered as follows: // - if an explicit timezone was present, the normalized value is adjusted using the explicit timezone; // - if an explicit timezone was not present, the Z is dropped from the normalized value. // The normalized value and the explicit timezone, if present, are converted separately to xs:string and concatenated to yield the string value. else if(XPath2Utils::equals(typeUri, SchemaSymbols::fgURI_SCHEMAFORSCHEMA) && (XPath2Utils::equals(typeName, SchemaSymbols::fgDT_DATETIME) || XPath2Utils::equals(typeName, SchemaSymbols::fgDT_DATE) || XPath2Utils::equals(typeName, SchemaSymbols::fgDT_TIME))) { const AnyAtomicType::Ptr item = context->getItemFactory()->createDerivedFromAtomicType(typeUri, typeName, fNode->getTextContent(), context); return item->asString(context); } else return context->getMemoryManager()->getPooledString(fNode->getNodeValue()); } break; case DOMNode::PROCESSING_INSTRUCTION_NODE: case DOMNode::COMMENT_NODE: case DOMNode::TEXT_NODE: case DOMNode::CDATA_SECTION_NODE: // Returns the value of the content property. return context->getMemoryManager()->getPooledString(fNode->getNodeValue()); break; case DOMXPathNamespace::XPATH_NAMESPACE_NODE: // Returns the value of the uri property. return context->getMemoryManager()->getPooledString(fNode->getTextContent()); break; default: break; } return XMLUni::fgZeroLenString; } Sequence XercesNodeImpl::getListTypeTypedValue(DatatypeValidator *dtv, const DynamicContext* context) const { const XMLCh *stringVal = dmStringValue(context); BaseRefVectorOf* tokenVector = XMLString::tokenizeString(stringVal); Sequence s(tokenVector->size(), context->getMemoryManager()); //the actual type we want DatatypeValidator* theItemTypeDTV = ((ListDatatypeValidator*)dtv)->getItemTypeDTV(); if (theItemTypeDTV->getType() == DatatypeValidator::Union) { RefVectorOf* membersDV = ((UnionDatatypeValidator*)theItemTypeDTV)->getMemberTypeValidators(); unsigned int size = (unsigned int) membersDV->size(); // find the first datatype in the union that validates the piece for ( unsigned int j = 0; j < tokenVector->size(); j++ ) { const XMLCh* szPiece=tokenVector->elementAt(j); bool bFound=false; for (unsigned int i=0; ielementAt(i); try { pDV->validate(szPiece, NULL, context->getMemoryManager()); const XMLCh* itemTypeDTVName = pDV->getTypeLocalName(); const XMLCh* itemTypeDTVUri = pDV->getTypeUri(); s.addItem(context->getItemFactory()->createDerivedFromAtomicType(itemTypeDTVUri, itemTypeDTVName, szPiece, context)); bFound=true; break; } catch (XMLException&) { //absorbed } } if(!bFound) XQThrow2(ItemException, X("XercesNodeImpl::getListTypeTypedValue"), X("Value in list doesn't validate with any of the componenets of the union type")); } } else { const XMLCh* itemTypeDTVName = theItemTypeDTV->getTypeLocalName(); const XMLCh* itemTypeDTVUri = theItemTypeDTV->getTypeUri(); for ( unsigned int j = 0; j < tokenVector->size(); j++ ) s.addItem(context->getItemFactory()->createDerivedFromAtomicType(itemTypeDTVUri, itemTypeDTVName, tokenVector->elementAt(j), context)); } return s; } Sequence XercesNodeImpl::dmTypedValue(DynamicContext* context) const { /* cerr<<"XercesNodeImpl::dmTypedValue getTypeName(): "<getNodeName())<getNamespaceURI())<getMemoryManager(), fNode, context->getNSResolver()); AutoNsScopeReset jan(context,&newNSScope); switch(fNode->getNodeType()) { case DOMNode::ATTRIBUTE_NODE: { // Data Model, § 7.3.3 and 7.3.4 const XMLCh* typeUri, *typeName; getMemberTypeUriAndName(typeUri,typeName); Item::Ptr item = 0; //cerr<<"XercesNodeImpl::dmTypedValue getTypeName(): "<getItemFactory()->createUntypedAtomic(dmStringValue(context), context); return Sequence(item, context->getMemoryManager()); } else { // Otherwise: its typed-value is a sequence of zero or more atomic values derived from the string-value of // the node and its type in a way that is consistent with XML Schema validation. The type of each atomic value // is assigned as described in 3.3.1.2 Atomic Value Type Names DatatypeValidator *dtv = context->getDocumentCache()->getDatatypeValidator(typeUri, typeName); if(!dtv) { assert(false); XMLBuffer msg(1023, context->getMemoryManager()); msg.set(X("The datatype {")); msg.append(typeUri); msg.append(X("}")); msg.append(typeName); msg.append(X(" is unknown")); XQThrow2(XPath2TypeCastException,X("XercesNodeImpl::dmTypedValue"), msg.getRawBuffer()); } if(dtv->getType() == DatatypeValidator::List) return getListTypeTypedValue(dtv, context); else { item = (const Item::Ptr)context->getItemFactory()->createDerivedFromAtomicType(typeUri, typeName, dmStringValue(context), context); return Sequence(item, context->getMemoryManager()); } } } break; case DOMNode::ELEMENT_NODE: { // Data Model, § 7.2.3 and 7.2.4 // If the nilled property is true, its typed-value is (). if(((const ATBooleanOrDerived*)dmNilled(context).get())->isTrue()) return Sequence(context->getMemoryManager()); const XMLCh* typeUri, *typeName; getMemberTypeUriAndName(typeUri,typeName); // If the element is of type xdt:untyped or xs:anyType, its typed-value is its dm:string-value as an xdt:untypedAtomic. if((XPath2Utils::equals(typeName, DocumentCache::g_szUntyped) && XPath2Utils::equals(typeUri, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) || (XPath2Utils::equals(typeName, SchemaSymbols::fgATTVAL_ANYTYPE) && XPath2Utils::equals(typeUri, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) ) { const AnyAtomicType::Ptr item = context->getItemFactory()->createUntypedAtomic(dmStringValue(context), context); return Sequence(item, context->getMemoryManager()); } // If the element has a simple type or a complex type with simple content: it’s typed value is compute // as described in 3.3.1.2 Atomic Value Type Names. The result is a sequence of zero or more atomic values // derived from the string-value of the node and its type in a way that is consistent with XML Schema validation. DatatypeValidator *dtv = context->getDocumentCache()->getDatatypeValidator(typeUri, typeName); if(dtv) { if(dtv->getType() == DatatypeValidator::List) return getListTypeTypedValue(dtv, context); else { const AnyAtomicType::Ptr item = context->getItemFactory()->createDerivedFromAtomicType(typeUri, typeName, dmStringValue(context), context); return Sequence(item, context->getMemoryManager()); } } ComplexTypeInfo *cti = context->getDocumentCache()->getComplexTypeInfo(typeUri, typeName); if(cti) { if(cti->getContentType() == SchemaElementDecl::Simple) { DatatypeValidator *dtv = cti->getDatatypeValidator(); assert(dtv != 0); if(dtv->getType() == DatatypeValidator::List) return getListTypeTypedValue(dtv, context); else { const AnyAtomicType::Ptr item = context->getItemFactory()->createDerivedFromAtomicType(dtv->getTypeUri(), dtv->getTypeLocalName(), dmStringValue(context), context); return Sequence(item, context->getMemoryManager()); } } // If the element is empty: its typed-value is the empty sequence, (). if(cti->getContentType() == SchemaElementDecl::Empty) return Sequence(context->getMemoryManager()); // If the element has a complex type with mixed content, its typed-value is its dm:string-value as an xdt:untypedAtomic. if(cti->getContentType() == SchemaElementDecl::Mixed_Simple || cti->getContentType() == SchemaElementDecl::Mixed_Complex) { const AnyAtomicType::Ptr item = context->getItemFactory()->createUntypedAtomic(dmStringValue(context), context); return Sequence(item, context->getMemoryManager()); } // Otherwise, the element must be a complex type with element-only content. // The typed-value of such an element is undefined. Attempting to access this property with the dm:typed-value // accessor always raises an error. if(cti->getContentType() == SchemaElementDecl::Children) XQThrow2(ItemException, X("XercesNodeImpl::dmTypedValue"), X("Attempt to get typed value from a complex type with non-mixed complex content [err:FOTY0012]")); } else { //throw error here?? Should not happen now, but if we stop giving anytype to invalid in DOMTypeInfo //then we will get here if its null. assert(false); } } break; case DOMNode::DOCUMENT_NODE: case DOMNode::TEXT_NODE: case DOMNode::CDATA_SECTION_NODE: { const XMLCh *stringValue = dmStringValue(context); const AnyAtomicType::Ptr untypedAtomic = context->getItemFactory()->createUntypedAtomic(stringValue, context); return Sequence(untypedAtomic, context->getMemoryManager()); } break; case DOMXPathNamespace::XPATH_NAMESPACE_NODE: case DOMNode::COMMENT_NODE: case DOMNode::PROCESSING_INSTRUCTION_NODE: { const XMLCh *stringValue = dmStringValue(context); const AnyAtomicType::Ptr untypedAtomic = context->getItemFactory()->createString(stringValue, context); return Sequence(untypedAtomic, context->getMemoryManager()); } break; default: break; } return Sequence(context->getMemoryManager()); } Sequence XercesNodeImpl::dmDocumentURI(const DynamicContext* context) const { if(fNode->getNodeType()!=DOMNode::DOCUMENT_NODE) return Sequence(context->getMemoryManager()); const DOMDocument* doc=(const DOMDocument *)fNode; const XMLCh* docURI = doc->getDocumentURI(); if( docURI==NULL || *docURI==0) return Sequence(context->getMemoryManager()); return Sequence(context->getItemFactory()->createAnyURI(docURI, context), context->getMemoryManager()); } ATQNameOrDerived::Ptr XercesNodeImpl::dmTypeName(const DynamicContext* context) const { short nodeType=fNode->getNodeType(); if(nodeType != DOMNode::ELEMENT_NODE && nodeType != DOMNode::ATTRIBUTE_NODE && nodeType != DOMNode::TEXT_NODE && nodeType != DOMNode::CDATA_SECTION_NODE) { return 0; } //otherwise return the Qname for the node const XMLCh* typeUri, *typeName; getTypeUriAndName(typeUri,typeName); return context->getItemFactory()->createQName(typeUri, XMLUni::fgZeroLenString, typeName, context); } ATBooleanOrDerived::Ptr XercesNodeImpl::dmNilled(const DynamicContext* context) const { if(fNode->getNodeType() != DOMNode::ELEMENT_NODE) { return 0; } // If the [validity] property exists on an Element Node and is "valid" then if the [nil] property exists and is true, // then nilled property is "true". In all other cases, including all cases where schema validity assessment was not // attempted or did not succeed, the nilled property is "false". try { #if _XERCES_VERSION >= 30000 DOMPSVITypeInfo* psviType=(DOMPSVITypeInfo*)const_cast(fNode)->getFeature(XMLUni::fgXercescInterfacePSVITypeInfo, 0); #else DOMPSVITypeInfo* psviType=(DOMPSVITypeInfo*)const_cast(fNode)->getInterface(XMLUni::fgXercescInterfacePSVITypeInfo); #endif if(psviType && psviType->getNumericProperty(DOMPSVITypeInfo::PSVI_Validity)==PSVIItem::VALIDITY_VALID) { bool isNil=(psviType->getNumericProperty(DOMPSVITypeInfo::PSVI_Nil)!=0); return context->getItemFactory()->createBoolean(isNil, context); } } catch(DOMException&) { // ignore it; the implementation of getInterface for Xerces < 2.6 will throw it } return context->getItemFactory()->createBoolean(false, context); } bool XercesNodeImpl::lessThan(const Node::Ptr &other, const DynamicContext *context) const { const XercesNodeImpl *otherImpl = (const XercesNodeImpl*)other->getInterface(Item::gXQilla); if(otherImpl == 0) { // It's not a xqilla implementation Node, so it can't // be from the same tree as us - jpcs // Order them according to the address of their roots return this->root(context).get() < other->root(context).get(); } const DOMNode* otherNode = otherImpl->getDOMNode(); #if _XERCES_VERSION >= 30000 short pos = const_cast(fNode)->compareDocumentPosition(const_cast(otherNode)); if(pos & DOMNode::DOCUMENT_POSITION_FOLLOWING) return true; return false; #else short pos = const_cast(fNode)->compareTreePosition(const_cast(otherNode)); // compareTreePosition returns the position of the other node, compared to my position; so, if it sets the bit // TREE_POSITION_FOLLOWING, it means that we come before it if(pos & DOMNode::TREE_POSITION_FOLLOWING) return true; if(pos & DOMNode::TREE_POSITION_PRECEDING) return false; if(pos & DOMNode::TREE_POSITION_SAME_NODE) return false; // if the two nodes are attributes or namespaces, we get that they are equivalent; we need a stable ordering, so // we resort to comparing their pointers (we could even decide to sort them on their names...) if(pos & DOMNode::TREE_POSITION_EQUIVALENT) return fNode < otherNode; // if we get they are disconnected, it could be they belong to different documents; in this case, order them according // to the pointer of their documents (all the nodes in document A must come before or after all the nodes in document B, // regardless of the chosen ordering criteria) // If they belong to the same document, they are floating, or maybe just one of them is floating; let's state we consider // the one connected coming before the disconnected one, and, if both are disconnected, we compare the two roots if(fNode->getOwnerDocument()!=otherNode->getOwnerDocument()) return fNode->getOwnerDocument()getOwnerDocument(); const DOMNode* myParent=fNode; const DOMNode* tmpParent = XPath2NSUtils::getParent(fNode); while(tmpParent != 0) { myParent = tmpParent; tmpParent = tmpParent->getParentNode(); } const DOMNode* otherParent=otherNode; tmpParent = XPath2NSUtils::getParent(otherNode); while(tmpParent != 0) { otherParent = tmpParent; tmpParent = tmpParent->getParentNode(); } return myParent < otherParent; #endif } bool XercesNodeImpl::equals(const Node::Ptr &other) const { const XercesNodeImpl *otherImpl = (const XercesNodeImpl*)other->getInterface(Item::gXQilla); if(otherImpl == 0) return false; return fNode->isSameNode(otherImpl->getDOMNode()); } bool XercesNodeImpl::uniqueLessThan(const Node::Ptr &other, const DynamicContext *context) const { const XercesNodeImpl *otherImpl = (const XercesNodeImpl*)other->getInterface(Item::gXQilla); if(otherImpl == 0) { // It's not a xqilla implementation Node, so it can't // be from the same tree as us - jpcs // Order them according to the address of their roots return this->root(context).get() < other->root(context).get(); } return fNode < otherImpl->getDOMNode(); } const DOMNode* XercesNodeImpl::getDOMNode() const { return fNode; } Node::Ptr XercesNodeImpl::root(const DynamicContext* context) const { DOMNode *result = const_cast(fNode); DOMNode *parent = XPath2NSUtils::getParent(result); // Skip out of entity reference nodes while(parent != 0) { result = parent; parent = parent->getParentNode(); } return new XercesNodeImpl(result, resolver_); } Node::Ptr XercesNodeImpl::dmParent(const DynamicContext* context) const { DOMNode *parent = XPath2NSUtils::getParent(fNode); // Skip out of entity reference nodes while(parent != 0 && parent->getNodeType() == DOMNode::ENTITY_REFERENCE_NODE) { parent = parent->getParentNode(); } if(parent == 0) return 0; return new XercesNodeImpl(parent, resolver_); } Result XercesNodeImpl::dmAttributes(const DynamicContext* context, const LocationInfo *info) const { if(fNode->getNodeType() == DOMNode::ELEMENT_NODE) { return new AttributeAxis(info, fNode, this, NULL, *this); } return 0; } Result XercesNodeImpl::dmNamespaceNodes(const DynamicContext* context, const LocationInfo *info) const { if(fNode->getNodeType() == DOMNode::ELEMENT_NODE) { return new NamespaceAxis(info, fNode, this, NULL, *this); } return 0; } Result XercesNodeImpl::dmChildren(const DynamicContext *context, const LocationInfo *info) const { if(fNode->getNodeType() == DOMNode::ELEMENT_NODE || fNode->getNodeType() == DOMNode::DOCUMENT_NODE) { return new ChildAxis(info, fNode, this, NULL, *this); } return 0; } Result XercesNodeImpl::getAxisResult(XQStep::Axis axis, const NodeTest *nodeTest, const DynamicContext *context, const LocationInfo *info) const { switch(axis) { case XQStep::ANCESTOR: { return new AncestorAxis(info, fNode, this, nodeTest, *this); } case XQStep::ANCESTOR_OR_SELF: { return new AncestorOrSelfAxis(info, fNode, this, nodeTest, *this); } case XQStep::ATTRIBUTE: { if(fNode->getNodeType() == DOMNode::ELEMENT_NODE) { return new AttributeAxis(info, fNode, this, nodeTest, *this); } break; } case XQStep::CHILD: { if(fNode->getNodeType() == DOMNode::ELEMENT_NODE || fNode->getNodeType() == DOMNode::DOCUMENT_NODE) { return new ChildAxis(info, fNode, this, nodeTest, *this); } break; } case XQStep::DESCENDANT: { if(fNode->getNodeType() == DOMNode::ELEMENT_NODE || fNode->getNodeType() == DOMNode::DOCUMENT_NODE) { return new DescendantAxis(info, fNode, this, nodeTest, *this); } break; } case XQStep::DESCENDANT_OR_SELF: { return new DescendantOrSelfAxis(info, fNode, this, nodeTest, *this); break; } case XQStep::FOLLOWING: { return new FollowingAxis(info, fNode, this, nodeTest, *this); } case XQStep::FOLLOWING_SIBLING: { return new FollowingSiblingAxis(info, fNode, this, nodeTest, *this); } case XQStep::NAMESPACE: { if(fNode->getNodeType() == DOMNode::ELEMENT_NODE) { return new NamespaceAxis(info, fNode, this, nodeTest, *this); } break; } case XQStep::PARENT: { return new ParentAxis(info, fNode, this, nodeTest, *this); } case XQStep::PRECEDING: { return new PrecedingAxis(info, fNode, this, nodeTest, *this); } case XQStep::PRECEDING_SIBLING: { return new PrecedingSiblingAxis(info, fNode, this, nodeTest, *this); } case XQStep::SELF: { return nodeTest->filterResult((Item::Ptr)this, info); } } return 0; } ATBooleanOrDerived::Ptr XercesNodeImpl::dmIsId(const DynamicContext* context) const { const DOMTypeInfo *typeInfo = 0; #if _XERCES_VERSION >= 30000 if(fNode->getNodeType() == DOMNode::ELEMENT_NODE) { typeInfo = ((const DOMElement*)fNode)->getSchemaTypeInfo(); } else if(fNode->getNodeType() == DOMNode::ATTRIBUTE_NODE) { typeInfo = ((const DOMAttr*)fNode)->getSchemaTypeInfo(); } if(typeInfo != 0 && XPath2Utils::equals(typeInfo->getTypeName(), XMLUni::fgIDString) && (XPath2Utils::equals(typeInfo->getTypeNamespace(), SchemaSymbols::fgURI_SCHEMAFORSCHEMA) || XPath2Utils::equals(typeInfo->getTypeNamespace(), XMLUni::fgInfosetURIName))) #else if(fNode->getNodeType() == DOMNode::ELEMENT_NODE) { typeInfo = ((const DOMElement*)fNode)->getTypeInfo(); } else if(fNode->getNodeType() == DOMNode::ATTRIBUTE_NODE) { typeInfo = ((const DOMAttr*)fNode)->getTypeInfo(); } if(typeInfo != 0 && XPath2Utils::equals(typeInfo->getName(), XMLUni::fgIDString) && (XPath2Utils::equals(typeInfo->getNamespace(), SchemaSymbols::fgURI_SCHEMAFORSCHEMA) || XPath2Utils::equals(typeInfo->getNamespace(), XMLUni::fgInfosetURIName))) #endif { return context->getItemFactory()->createBoolean(true, context); } return context->getItemFactory()->createBoolean(false, context); } ATBooleanOrDerived::Ptr XercesNodeImpl::dmIsIdRefs(const DynamicContext* context) const { const DOMTypeInfo *typeInfo = 0; #if _XERCES_VERSION >= 30000 if(fNode->getNodeType() == DOMNode::ELEMENT_NODE) { typeInfo = ((const DOMElement*)fNode)->getSchemaTypeInfo(); } else if(fNode->getNodeType() == DOMNode::ATTRIBUTE_NODE) { typeInfo = ((const DOMAttr*)fNode)->getSchemaTypeInfo(); } if(typeInfo != 0 && (XPath2Utils::equals(typeInfo->getTypeName(), XMLUni::fgIDRefString) || XPath2Utils::equals(typeInfo->getTypeName(), XMLUni::fgIDRefsString)) && (XPath2Utils::equals(typeInfo->getTypeNamespace(), SchemaSymbols::fgURI_SCHEMAFORSCHEMA) || XPath2Utils::equals(typeInfo->getTypeNamespace(), XMLUni::fgInfosetURIName))) #else if(fNode->getNodeType() == DOMNode::ELEMENT_NODE) { typeInfo = ((const DOMElement*)fNode)->getTypeInfo(); } else if(fNode->getNodeType() == DOMNode::ATTRIBUTE_NODE) { typeInfo = ((const DOMAttr*)fNode)->getTypeInfo(); } if(typeInfo != 0 && (XPath2Utils::equals(typeInfo->getName(), XMLUni::fgIDRefString) || XPath2Utils::equals(typeInfo->getName(), XMLUni::fgIDRefsString)) && (XPath2Utils::equals(typeInfo->getNamespace(), SchemaSymbols::fgURI_SCHEMAFORSCHEMA) || XPath2Utils::equals(typeInfo->getNamespace(), XMLUni::fgInfosetURIName))) #endif { return context->getItemFactory()->createBoolean(true, context); } return context->getItemFactory()->createBoolean(false, context); } void XercesNodeImpl::getMemberTypeUriAndName(const XMLCh*& uri, const XMLCh*& name) const { short nodeType=fNode->getNodeType(); try { if (nodeType == DOMNode::ELEMENT_NODE || nodeType == DOMNode::ATTRIBUTE_NODE) { // check if we have PSVI info #if _XERCES_VERSION >= 30000 DOMPSVITypeInfo* psviType=(DOMPSVITypeInfo*)const_cast(fNode)->getFeature(XMLUni::fgXercescInterfacePSVITypeInfo, 0); #else DOMPSVITypeInfo* psviType=(DOMPSVITypeInfo*)const_cast(fNode)->getInterface(XMLUni::fgXercescInterfacePSVITypeInfo); #endif if(psviType) { // check if we have PSVI info for the content of a union-validated type const XMLCh* memberName=psviType->getStringProperty(DOMPSVITypeInfo::PSVI_Member_Type_Definition_Name); if(memberName) { uri=psviType->getStringProperty(DOMPSVITypeInfo::PSVI_Member_Type_Definition_Namespace); name=memberName; return; } } } } catch(DOMException&) { // ignore it; the implementation of getInterface for Xerces < 2.6 will throw it } // we are not a union, return the type of the node getTypeUriAndName(uri, name); } void XercesNodeImpl::getTypeUriAndName(const XMLCh*& uri, const XMLCh*& name) const { typeUriAndName(fNode, uri, name); } void XercesNodeImpl::typeUriAndName(const DOMNode *node, const XMLCh*& uri, const XMLCh*& name) { short nodeType=node->getNodeType(); if (nodeType == DOMNode::ELEMENT_NODE) { // check if we have PSVI info try { #if _XERCES_VERSION >= 30000 DOMPSVITypeInfo* psviType=(DOMPSVITypeInfo*)const_cast(node)->getFeature(XMLUni::fgXercescInterfacePSVITypeInfo, 0); #else DOMPSVITypeInfo* psviType=(DOMPSVITypeInfo*)const_cast(node)->getInterface(XMLUni::fgXercescInterfacePSVITypeInfo); #endif if(psviType && psviType->getNumericProperty(DOMPSVITypeInfo::PSVI_Validity)==PSVIItem::VALIDITY_VALID) { uri=psviType->getStringProperty(DOMPSVITypeInfo::PSVI_Type_Definition_Namespace); name=psviType->getStringProperty(DOMPSVITypeInfo::PSVI_Type_Definition_Name); return; } } catch(DOMException&) { // ignore it; the implementation of getInterface for Xerces < 2.6 will throw it } // we are xdt:untyped uri=SchemaSymbols::fgURI_SCHEMAFORSCHEMA; name=DocumentCache::g_szUntyped; return; } else if (nodeType == DOMNode::ATTRIBUTE_NODE) { // check if we have PSVI info try { #if _XERCES_VERSION >= 30000 DOMPSVITypeInfo* psviType=(DOMPSVITypeInfo*)const_cast(node)->getFeature(XMLUni::fgXercescInterfacePSVITypeInfo, 0); #else DOMPSVITypeInfo* psviType=(DOMPSVITypeInfo*)const_cast(node)->getInterface(XMLUni::fgXercescInterfacePSVITypeInfo); #endif if(psviType && psviType->getNumericProperty(DOMPSVITypeInfo::PSVI_Validity)==PSVIItem::VALIDITY_VALID) { uri=psviType->getStringProperty(DOMPSVITypeInfo::PSVI_Type_Definition_Namespace); name=psviType->getStringProperty(DOMPSVITypeInfo::PSVI_Type_Definition_Name); return; } } catch(DOMException&) { // ignore it; the implementation of getInterface for Xerces < 2.6 will throw it } // check if we have type informations coming from a DTD #if _XERCES_VERSION >= 30000 const DOMTypeInfo* pTypeInfo=((DOMAttr*)node)->getSchemaTypeInfo(); const XMLCh* szUri=pTypeInfo->getTypeNamespace(); #else const DOMTypeInfo* pTypeInfo=((DOMAttr*)node)->getTypeInfo(); const XMLCh* szUri=pTypeInfo->getNamespace(); #endif if(szUri==0 || szUri[0]==0) { // in these cases, we are xs:* #if _XERCES_VERSION >= 30000 const XMLCh* szName=pTypeInfo->getTypeName(); #else const XMLCh* szName=pTypeInfo->getName(); #endif if(XPath2Utils::equals(szName,XMLUni::fgIDString) || XPath2Utils::equals(szName,XMLUni::fgIDRefString) || XPath2Utils::equals(szName,XMLUni::fgIDRefsString) || XPath2Utils::equals(szName,XMLUni::fgEntityString) || XPath2Utils::equals(szName,XMLUni::fgEntitiesString) || XPath2Utils::equals(szName,XMLUni::fgNmTokenString) || XPath2Utils::equals(szName,XMLUni::fgNmTokensString)) { uri=SchemaSymbols::fgURI_SCHEMAFORSCHEMA; name=szName; return; } } // we are xdt:untypedAtomic uri=SchemaSymbols::fgURI_SCHEMAFORSCHEMA; name=ATUntypedAtomic::fgDT_UNTYPEDATOMIC; return; } else if(nodeType == DOMNode::TEXT_NODE || nodeType == DOMNode::CDATA_SECTION_NODE) { uri=SchemaSymbols::fgURI_SCHEMAFORSCHEMA; name=ATUntypedAtomic::fgDT_UNTYPEDATOMIC; return; } XQThrow2(ItemException, X("XercesNodeImpl::getTypeUriAndName"), X("Tried to get type informations on Node other than DOMElement, DOMAttribute or DOMText")); } const XMLCh* XercesNodeImpl::getTypeName() const { const XMLCh* uri, *name; getTypeUriAndName(uri,name); return name; } const XMLCh* XercesNodeImpl::getTypeURI() const { const XMLCh* uri, *name; getTypeUriAndName(uri,name); return uri; } XQilla-2.3.0/src/xerces/NamespaceAxis.hpp0000644000151400015140000000313011653565523015145 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _NAMESPACEAXIS_HPP #define _NAMESPACEAXIS_HPP #include #include "Axis.hpp" #include #include class XQILLA_API NamespaceAxis : public Axis { public: NamespaceAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory); const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *nextNode(DynamicContext *context); std::string asString(DynamicContext *context, int indent) const; private: const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node_, *originalNode_; XERCES_CPP_NAMESPACE_QUALIFIER DOMNamedNodeMap *nodeMap_; unsigned int i_; enum { CHECK_ELEMENT, CHECK_ATTR, DO_XML, DONE } state_; typedef std::set DoneSet; DoneSet done_; }; #endif XQilla-2.3.0/src/xerces/FollowingAxis.hpp0000644000151400015140000000227311653565523015220 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _FOLLOWINGAXIS_HPP #define _FOLLOWINGAXIS_HPP #include "Axis.hpp" class XQILLA_API FollowingAxis : public Axis { public: FollowingAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory); const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *nextNode(DynamicContext *context); private: const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node_; }; #endif XQilla-2.3.0/src/xerces/PrecedingAxis.hpp0000644000151400015140000000250511653565523015156 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _PRECEDINGAXIS_HPP #define _PRECEDINGAXIS_HPP #include "Axis.hpp" /** This class implements the PrecedingAxis axis as defined by the XPath spec */ class XQILLA_API PrecedingAxis : public Axis { public: PrecedingAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory); const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *nextNode(DynamicContext *context); private: const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *parent_; const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node_; }; #endif XQilla-2.3.0/src/xerces/DescendantAxis.cpp0000644000151400015140000000327611653565523015327 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "DescendantAxis.hpp" #include #include DescendantAxis::DescendantAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory) : Axis(info, contextNode, nodeObj, nodeTest, factory), descendant_(0) { } const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *DescendantAxis::nextNode(DynamicContext *context) { if(toDo_) { // initialise toDo_ = false; descendant_ = getFirstChild(contextNode_); } else if(descendant_ != 0) { const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *result = getFirstChild(descendant_); while(result == 0) { result = getNextSibling(descendant_); if(result == 0) { descendant_ = getParent(descendant_); if(descendant_ == contextNode_) break; } } descendant_ = result; } return descendant_; } XQilla-2.3.0/src/xerces/Axis.hpp0000644000151400015140000000502411653565523013334 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _AXIS_HPP #define _AXIS_HPP #include #include #include #include class NodeTest; class AxisNodeFactory { public: virtual ~AxisNodeFactory() {} virtual Node::Ptr createNode(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node, const DynamicContext *context) const = 0; }; class XQILLA_API Axis : public ResultImpl { public: Axis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory); Item::Ptr next(DynamicContext *context); virtual const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *nextNode(DynamicContext *context) = 0; static const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *getParent(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node); static const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *getFirstChild(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node); static const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *getLastChild(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node); static const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *getNextSibling(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node); static const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *getPreviousSibling(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node); static const XMLCh *getLocalName(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node); protected: Node::Ptr nodeObj_; const AxisNodeFactory &factory_; const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode_; const NodeTest *nodeTest_; bool toDo_; }; inline const XMLCh *Axis::getLocalName(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node) { if(node->getLocalName() == 0) return node->getNodeName(); return node->getLocalName(); } #endif XQilla-2.3.0/src/xerces/XercesUpdateFactory.hpp0000644000151400015140000000631011653565523016353 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XERCESUPDATEFACTORY_HPP #define _XERCESUPDATEFACTORY_HPP #include #include #include #include #include XERCES_CPP_NAMESPACE_BEGIN class DOMNode; XERCES_CPP_NAMESPACE_END class XQILLA_API XercesUpdateFactory : public UpdateFactory { public: virtual void applyPut(const PendingUpdate &update, DynamicContext *context); virtual void applyInsertInto(const PendingUpdate &update, DynamicContext *context); virtual void applyInsertAttributes(const PendingUpdate &update, DynamicContext *context); virtual void applyReplaceValue(const PendingUpdate &update, DynamicContext *context); virtual void applyRename(const PendingUpdate &update, DynamicContext *context); virtual void applyDelete(const PendingUpdate &update, DynamicContext *context); virtual void applyInsertBefore(const PendingUpdate &update, DynamicContext *context); virtual void applyInsertAfter(const PendingUpdate &update, DynamicContext *context); virtual void applyInsertAsFirst(const PendingUpdate &update, DynamicContext *context); virtual void applyInsertAsLast(const PendingUpdate &update, DynamicContext *context); virtual void applyReplaceNode(const PendingUpdate &update, DynamicContext *context); virtual void applyReplaceAttribute(const PendingUpdate &update, DynamicContext *context); virtual void applyReplaceElementContent(const PendingUpdate &update, DynamicContext *context); virtual void completeUpdate(DynamicContext *context); protected: void completeDeletions(DynamicContext *context); void completeRevalidation(DynamicContext *context); void removeType(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node); void setTypes(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *from); void addToPutSet(const Node::Ptr &node, const LocationInfo *location, DynamicContext *context); typedef std::set DOMNodeSet; class PutItem { public: PutItem(const XMLCh *urich, const Node::Ptr &nd, const LocationInfo *loc, const DynamicContext *c) : uri(urich), node(nd), location(loc), context(c) {} const XMLCh *uri; const Node::Ptr node; const LocationInfo *location; const DynamicContext *context; bool operator<(const PutItem &other) const; }; typedef std::set PutSet; DOMNodeSet forDeletion_; DOMNodeSet forRevalidation_; PutSet putSet_; }; #endif XQilla-2.3.0/src/xerces/AttributeAxis.hpp0000644000151400015140000000250311653565523015217 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATTRIBUTEAXIS_HPP #define _ATTRIBUTEAXIS_HPP #include "Axis.hpp" #include class XQILLA_API AttributeAxis : public Axis { public: AttributeAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory); const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *nextNode(DynamicContext *context); std::string asString(DynamicContext *context, int indent) const; private: XERCES_CPP_NAMESPACE_QUALIFIER DOMNamedNodeMap *nodeMap_; unsigned int i_; }; #endif XQilla-2.3.0/src/xerces/PrecedingAxis.cpp0000644000151400015140000000351511653565523015153 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "PrecedingAxis.hpp" #include #include #include PrecedingAxis::PrecedingAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory) : Axis(info, contextNode, nodeObj, nodeTest, factory), parent_(0), node_(0) { } const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *PrecedingAxis::nextNode(DynamicContext *context) { if(toDo_) { // initialise toDo_ = false; node_ = contextNode_; parent_ = getParent(node_); } if(node_ != 0) { const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *result = getPreviousSibling(node_); while(result == 0) { node_ = getParent(node_); if(node_ != 0 && node_ == parent_) { parent_ = getParent(parent_); result = getPreviousSibling(node_); } else { break; } } while(result != 0) { node_ = result; result = getLastChild(node_); } } return node_; } XQilla-2.3.0/src/xerces/FollowingAxis.cpp0000644000151400015140000000326311653565523015213 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "FollowingAxis.hpp" #include #include #include FollowingAxis::FollowingAxis(const LocationInfo *info, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const Node *nodeObj, const NodeTest *nodeTest, const AxisNodeFactory &factory) : Axis(info, contextNode, nodeObj, nodeTest, factory), node_(0) { } const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *FollowingAxis::nextNode(DynamicContext *context) { if(toDo_) { // initialise toDo_ = false; node_ = contextNode_; } if(node_ != 0) { const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *result = 0; if(node_ != contextNode_) { result = getFirstChild(node_); } while(result == 0 && node_ != 0) { result = getNextSibling(node_); if(result == 0) { node_ = getParent(node_); } } node_ = result; } return node_; } XQilla-2.3.0/src/optimizer/0000755000151400015140000000000011653572443012526 500000000000000XQilla-2.3.0/src/optimizer/StaticTyper.cpp0000644000151400015140000004050211653565523015427 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #include #include "../items/impl/FunctionRefImpl.hpp" #include XERCES_CPP_NAMESPACE_USE; ASTNode *StaticTyper::run(ASTNode *item, StaticContext *context) { AutoReset autoReset(context_); context_ = context; return optimize(item); } void StaticTyper::optimize(XQQuery *query) { assert(context_ == query->getStaticContext()); query->staticTyping(this); } XQUserFunction *StaticTyper::optimizeFunctionDef(XQUserFunction *item) { item->staticTypingOnce(context_, this); return item; } ASTNode *StaticTyper::optimize(ASTNode *item) { ASTNode *result = ASTVisitor::optimize(item); if(result != item) return optimize(result); return item->staticTypingImpl(context_); } #define SUBSTITUTE(item, name) {\ ASTNode *result = item->get ## name (); \ item->set ##name (0); \ item->release(); \ return result; \ } ASTNode *StaticTyper::optimizePredicate(XQPredicate *item) { item->setExpression(optimize(const_cast(item->getExpression()))); StaticType ciType = item->getExpression()->getStaticAnalysis().getStaticType(); ciType.setCardinality(1, 1); AutoContextItemTypeReset contextTypeReset(context_, ciType); item->setPredicate(optimize(const_cast(item->getPredicate()))); return item; } ASTNode *StaticTyper::optimizeAnalyzeString(XQAnalyzeString *item) { item->setExpression(optimize(const_cast(item->getExpression()))); item->setRegex(optimize(const_cast(item->getRegex()))); if(item->getFlags()) item->setFlags(optimize(const_cast(item->getFlags()))); StaticType ciType(StaticType::STRING_TYPE, 1, 1); AutoContextItemTypeReset contextTypeReset(context_, ciType); item->setMatch(optimize(const_cast(item->getMatch()))); item->setNonMatch(optimize(const_cast(item->getNonMatch()))); return item; } ASTNode *StaticTyper::optimizeNav(XQNav *item) { AutoContextItemTypeReset contextTypeReset(context_); StaticType ciType; XQNav::Steps &args = const_cast(item->getSteps()); for(XQNav::Steps::iterator i = args.begin(); i != args.end(); ++i) { i->step = optimize(i->step); if(context_) { ciType = i->step->getStaticAnalysis().getStaticType(); ciType.setCardinality(1, 1); context_->setContextItemType(ciType); } } return item; } ASTNode *StaticTyper::optimizeMap(XQMap *item) { item->setArg1(optimize(item->getArg1())); AutoContextItemTypeReset contextTypeReset(context_); VariableTypeStore* varStore = context_ ? context_->getVariableTypeStore() : 0; if(context_) { StaticAnalysis &varSrc = const_cast(item->getVarSRC()); varSrc.getStaticType() = item->getArg1()->getStaticAnalysis().getStaticType(); varSrc.setProperties(StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::PEER | StaticAnalysis::SUBTREE | StaticAnalysis::SAMEDOC | StaticAnalysis::ONENODE | StaticAnalysis::SELF); if(item->getName() == 0) { context_->setContextItemType(varSrc.getStaticType()); } else { varStore->addLogicalBlockScope(); varStore->declareVar(item->getURI(), item->getName(), varSrc); } } item->setArg2(optimize(item->getArg2())); if(context_ && item->getName() != 0) { varStore->removeScope(); } return item; } ASTNode *StaticTyper::optimizeUTransform(UTransform *item) { VariableTypeStore* varStore = context_ ? context_->getVariableTypeStore() : 0; VectorOfCopyBinding *bindings = const_cast(item->getBindings()); for(VectorOfCopyBinding::iterator i = bindings->begin(); i != bindings->end(); ++i) { (*i)->expr_ = optimize((*i)->expr_); (*i)->src_.getStaticType() = (*i)->expr_->getStaticAnalysis().getStaticType(); (*i)->src_.setProperties((*i)->expr_->getStaticAnalysis().getProperties()); // Declare the variable binding if(context_) { varStore->addLogicalBlockScope(); varStore->declareVar((*i)->uri_, (*i)->name_, (*i)->src_); } } item->setModifyExpr(optimize(const_cast(item->getModifyExpr()))); item->setReturnExpr(optimize(const_cast(item->getReturnExpr()))); if(context_) { VectorOfCopyBinding::reverse_iterator rend = bindings->rend(); for(VectorOfCopyBinding::reverse_iterator it = bindings->rbegin(); it != rend; ++it) { // Remove our variable binding and the scope we added varStore->removeScope(); } } return item; } ASTNode *StaticTyper::optimizeQuantified(XQQuantified *item) { AutoReset reset(tupleSetup_); tupleSetup_ = true; item->setParent(optimizeTupleNode(const_cast(item->getParent()))); item->setExpression(optimize(item->getExpression())); tupleSetup_ = false; item->setParent(optimizeTupleNode(const_cast(item->getParent()))); return item; } ASTNode *StaticTyper::optimizeReturn(XQReturn *item) { AutoReset reset(tupleSetup_); tupleSetup_ = true; item->setParent(optimizeTupleNode(const_cast(item->getParent()))); item->setExpression(optimize(item->getExpression())); tupleSetup_ = false; item->setParent(optimizeTupleNode(const_cast(item->getParent()))); return item; } void StaticTyper::optimizeCase(const StaticAnalysis &var_src, XQTypeswitch::Case *item) { AutoDelete caseSrc(0); if(context_ && item->isVariableUsed()) { VariableTypeStore* varStore = context_->getVariableTypeStore(); caseSrc.set(new StaticAnalysis(context_->getMemoryManager())); caseSrc->copy(var_src); if(item->getSequenceType() != 0) { caseSrc->getStaticType() &= item->getTreatType(); } varStore->addLogicalBlockScope(); varStore->declareVar(item->getURI(), item->getName(), *caseSrc); } item->setExpression(optimize(item->getExpression())); if(context_ && item->isVariableUsed()) { context_->getVariableTypeStore()->removeScope(); } } ASTNode *StaticTyper::optimizeTypeswitch(XQTypeswitch *item) { item->setExpression(optimize(const_cast(item->getExpression()))); XQTypeswitch::Cases *clauses = const_cast(item->getCases()); for(XQTypeswitch::Cases::iterator i = clauses->begin(); i != clauses->end(); ++i) { optimizeCase(item->getExpression()->getStaticAnalysis(), *i); } optimizeCase(item->getExpression()->getStaticAnalysis(), const_cast(item->getDefaultCase())); return item; } ASTNode *StaticTyper::optimizeFunctionCoercion(XQFunctionCoercion *item) { item->setExpression(optimize(item->getExpression())); AutoDelete varSrc(0); if(item->getFuncConvert()) { if(context_) { // Could do better on the static type varSrc.set(new StaticAnalysis(context_->getMemoryManager())); varSrc->getStaticType() = StaticType::FUNCTION_TYPE; VariableTypeStore *varStore = context_->getVariableTypeStore(); varStore->addLogicalBlockScope(); varStore->declareVar(0, XQFunctionCoercion::funcVarName, *varSrc); } { AutoMessageListenerReset reset(context_); // Turn off warnings item->setFuncConvert(optimize(item->getFuncConvert())); } if(context_) context_->getVariableTypeStore()->removeScope(); } return item; } ASTNode *StaticTyper::optimizeNamespaceBinding(XQNamespaceBinding *item) { AutoNsScopeReset jan(context_, item->getNamespaces()); if(context_) { const XMLCh *defaultElementNS = context_->getMemoryManager()-> getPooledString(item->getNamespaces()->lookupNamespaceURI(XMLUni::fgZeroLenString)); context_->setDefaultElementAndTypeNS(defaultElementNS); } item->setExpression(optimize(const_cast(item->getExpression()))); return item; } ASTNode *StaticTyper::optimizeInlineFunction(XQInlineFunction *item) { if(item->getUserFunction()) item->getUserFunction()->staticTyping(context_, this); AutoDelete instanceVarSrc(0); if(context_) { XPath2MemoryManager *mm = context_->getMemoryManager(); instanceVarSrc.set(new StaticAnalysis(mm)); instanceVarSrc->getStaticType() = StaticType(StaticType::ITEM_TYPE, 0, StaticType::UNLIMITED); VariableTypeStore *varStore = context_->getVariableTypeStore(); varStore->addLogicalBlockScope(); if(item->getSignature()->argSpecs) { ArgumentSpecs::const_iterator argsIt = item->getSignature()->argSpecs->begin(); for(; argsIt != item->getSignature()->argSpecs->end(); ++argsIt) { varStore->declareVar((*argsIt)->getURI(), (*argsIt)->getName(), *instanceVarSrc); } } } { // The context item is not defined AutoContextItemTypeReset contextTypeReset(context_, StaticType()); // Turn off warnings AutoMessageListenerReset reset(context_); item->setInstance(optimize(item->getInstance())); } if(context_) context_->getVariableTypeStore()->removeScope(); return item; } ASTNode *StaticTyper::optimizeEffectiveBooleanValue(XQEffectiveBooleanValue *item) { AutoNodeSetOrderingReset orderReset(context_); item->setExpression(optimize(const_cast(item->getExpression()))); return item; } ASTNode *StaticTyper::optimizeVariable(XQVariable *item) { if(!context_) return item; XQGlobalVariable *global = 0; context_->getVariableTypeStore()->getVar(item->getURI(), item->getName(), &global); if(global) { // See if this is a global variable from one of the imported modules, // and if so make sure it's static typed first XQQuery *module = context_->getModule()->findModuleForVariable(item->getURI(), item->getName()); if(module == context_->getModule()) { if(globalsUsed_) globalsUsed_->push_back(global); } else if(module) { AutoReset autoReset(context_); module->staticTypingOnce(this); } } return item; } ASTNode *StaticTyper::optimizeUserFunction(XQUserFunctionInstance *item) { ASTNode *result = ASTVisitor::optimizeUserFunction(item); if(result != item || !context_) return result; // See if this is a function from one of the imported modules, // and if so make sure it's static typed first XQQuery *module = context_->getModule()-> findModuleForFunction(item->getFunctionURI(), item->getFunctionName(), item->getArguments().size()); if(module && module != context_->getModule()) { AutoReset autoReset(context_); module->staticTypingOnce(this); } return item; } //////////////////////////////////////////////////////////////////////////////////////////////////// ASTNode *StaticTyper::optimizeFTContains(FTContains *item) { item->setArgument(optimize(item->getArgument())); item->setSelection(optimizeFTSelection(item->getSelection())); if(context_) { AutoDelete dContext(context_->createDynamicContext()); dContext->setMemoryManager(context_->getMemoryManager()); DefaultTokenizer tokenizer; FTContext ftcontext(&tokenizer, 0, dContext); item->setSelection(item->getSelection()->optimize(&ftcontext)); } if(item->getIgnore()) item->setIgnore(optimize(item->getIgnore())); return item; } FTSelection *StaticTyper::optimizeFTSelection(FTSelection *selection) { FTSelection *result = ASTVisitor::optimizeFTSelection(selection); if(result != selection) return result; return selection->staticTypingImpl(context_); } //////////////////////////////////////////////////////////////////////////////////////////////////// TupleNode *StaticTyper::optimizeTupleNode(TupleNode *item) { TupleNode *result = ASTVisitor::optimizeTupleNode(item); if(result != item) return result; if(tupleSetup_) return item->staticTypingImpl(context_); return item; } TupleNode *StaticTyper::optimizeForTuple(ForTuple *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); if(tupleSetup_) item->setExpression(optimize(item->getExpression())); if(context_) { VariableTypeStore* varStore = context_->getVariableTypeStore(); if(tupleSetup_) { varStore->addLogicalBlockScope(); if(item->getVarName()) { // Declare the variable binding StaticAnalysis &varSrc = const_cast(item->getVarSRC()); varSrc.getStaticType() = item->getExpression()->getStaticAnalysis().getStaticType(); varSrc.getStaticType().setCardinality(1, 1); varSrc.setProperties(StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::PEER | StaticAnalysis::SUBTREE | StaticAnalysis::SAMEDOC | StaticAnalysis::ONENODE | StaticAnalysis::SELF); varStore->declareVar(item->getVarURI(), item->getVarName(), varSrc); } if(item->getPosName()) { // Declare the positional variable binding StaticAnalysis &posSrc = const_cast(item->getPosSRC()); posSrc.getStaticType() = StaticType::DECIMAL_TYPE; varStore->declareVar(item->getPosURI(), item->getPosName(), posSrc); } } else { varStore->removeScope(); } } return item; } TupleNode *StaticTyper::optimizeLetTuple(LetTuple *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); if(tupleSetup_) item->setExpression(optimize(item->getExpression())); if(context_) { VariableTypeStore* varStore = context_->getVariableTypeStore(); if(tupleSetup_) { varStore->addLogicalBlockScope(); // Declare the variable binding StaticAnalysis &varSrc = const_cast(item->getVarSRC()); varSrc.getStaticType() = item->getExpression()->getStaticAnalysis().getStaticType(); varSrc.setProperties(item->getExpression()->getStaticAnalysis().getProperties()); varStore->declareVar(item->getVarURI(), item->getVarName(), varSrc); } else { varStore->removeScope(); } } return item; } TupleNode *StaticTyper::optimizeWhereTuple(WhereTuple *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); if(tupleSetup_) item->setExpression(optimize(item->getExpression())); return item; } TupleNode *StaticTyper::optimizeCountTuple(CountTuple *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); if(context_) { VariableTypeStore* varStore = context_->getVariableTypeStore(); if(tupleSetup_) { varStore->addLogicalBlockScope(); if(item->getVarName()) { // Declare the positional variable binding StaticAnalysis &varSrc = const_cast(item->getVarSRC()); varSrc.getStaticType() = StaticType::DECIMAL_TYPE; varStore->declareVar(item->getVarURI(), item->getVarName(), varSrc); } } else { varStore->removeScope(); } } return item; } TupleNode *StaticTyper::optimizeOrderByTuple(OrderByTuple *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); if(tupleSetup_) { AutoNodeSetOrderingReset orderReset(context_, (item->getModifiers() & OrderByTuple::UNSTABLE) == 0 ? StaticContext::ORDERING_ORDERED : StaticContext::ORDERING_UNORDERED); item->setExpression(optimize(item->getExpression())); } return item; } XQilla-2.3.0/src/optimizer/ASTCopier.cpp0000644000151400015140000007330111653565523014750 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "xqilla/functions/FunctionMatches.hpp" #include "xqilla/functions/FunctionReplace.hpp" #include "xqilla/functions/FunctionTokenize.hpp" #include XERCES_CPP_NAMESPACE_USE; ASTCopier::ASTCopier() { } ASTNode *ASTCopier::copy(const ASTNode *item, DynamicContext *context) { context_ = context; mm_ = context->getMemoryManager(); return optimize(const_cast(item)); } TupleNode *ASTCopier::copy(const TupleNode *item, DynamicContext *context) { context_ = context; mm_ = context->getMemoryManager(); return optimizeTupleNode(const_cast(item)); } XQGlobalVariable *ASTCopier::optimizeGlobalVar(XQGlobalVariable *item) { return ASTVisitor::optimizeGlobalVar(item); } class UpdateInstance : public ASTVisitor { public: void run(ASTNode *item, const XQUserFunction *oldFunc, XQUserFunction *newFunc) { oldFunc_ = oldFunc; newFunc_ = newFunc; optimize(item); } protected: virtual XQUserFunction *optimizeFunctionDef(XQUserFunction *item) { if(item == oldFunc_) return newFunc_; return item; } virtual ASTNode *optimizeUserFunction(XQUserFunctionInstance *item) { if(item->getFunctionDefinition() == oldFunc_) item->setFunctionDefinition(newFunc_); return ASTVisitor::optimizeUserFunction(item); } const XQUserFunction *oldFunc_; XQUserFunction *newFunc_; }; XQUserFunction *ASTCopier::optimizeFunctionDef(XQUserFunction *item) { if(item == 0) return 0; XQUserFunction *result = new (mm_) XQUserFunction(item, mm_); ASTVisitor::optimizeFunctionDef(result); if(result->getTemplateInstance()) { // Update the pointers to the XQUserFunction in the instance UpdateInstance().run(result->getTemplateInstance(), item, result); } return result; } ASTNode *ASTCopier::optimizeUnknown(ASTNode *item) { return ASTVisitor::optimizeUnknown(item); } TupleNode *ASTCopier::optimizeUnknownTupleNode(TupleNode *item) { return ASTVisitor::optimizeUnknownTupleNode(item); } FTSelection *ASTCopier::optimizeUnknownFTSelection(FTSelection *selection) { return ASTVisitor::optimizeUnknownFTSelection(selection); } #define COPY_IMPL() { \ result->setLocationInfo(item); \ const_cast(result->getStaticAnalysis()).copy(item->getStaticAnalysis()); \ return result; \ } #define COPY_FULL0(methodname, classname) \ ASTNode *ASTCopier::optimize ## methodname (classname *item) \ { \ classname *result = new (mm_) classname(mm_); \ ASTVisitor::optimize ## methodname (result); \ COPY_IMPL(); \ } #define COPY_XQ0(name) COPY_FULL0(name, XQ ## name) #define COPY0(name) COPY_FULL0(name, name) #define COPY_FULL1(methodname, classname, arg1name) \ ASTNode *ASTCopier::optimize ## methodname (classname *item) \ { \ classname *result = new (mm_) classname(item->get ## arg1name (), mm_); \ ASTVisitor::optimize ## methodname (result); \ COPY_IMPL(); \ } #define COPY_XQ1(name, arg1name) COPY_FULL1(name, XQ ## name, arg1name) #define COPY1(name, arg1name) COPY_FULL1(name, name, arg1name) #define COPY_FULL2(methodname, classname, arg1name, arg2name) \ ASTNode *ASTCopier::optimize ## methodname (classname *item) \ { \ classname *result = new (mm_) classname(item->get ## arg1name (), item->get ## arg2name (), mm_); \ ASTVisitor::optimize ## methodname (result); \ COPY_IMPL(); \ } #define COPY_XQ2(name, arg1name, arg2name) COPY_FULL2(name, XQ ## name, arg1name, arg2name) #define COPY2(name, arg1name, arg2name) COPY_FULL2(name, name, arg1name, arg2name) #define COPY_FULL3(methodname, classname, arg1name, arg2name, arg3name) \ ASTNode *ASTCopier::optimize ## methodname (classname *item) \ { \ classname *result = new (mm_) classname(item->get ## arg1name (), item->get ## arg2name (), item->get ## arg3name (), mm_); \ ASTVisitor::optimize ## methodname (result); \ COPY_IMPL(); \ } #define COPY_XQ3(name, arg1name, arg2name, arg3name) COPY_FULL3(name, XQ ## name, arg1name, arg2name, arg3name) #define COPY3(name, arg1name, arg2name, arg3name) COPY_FULL3(name, name, arg1name, arg2name, arg3name) #define COPY_FULL4(methodname, classname, arg1name, arg2name, arg3name, arg4name) \ ASTNode *ASTCopier::optimize ## methodname (classname *item) \ { \ classname *result = new (mm_) classname(item->get ## arg1name (), item->get ## arg2name (), item->get ## arg3name (), item->get ## arg4name (), mm_); \ ASTVisitor::optimize ## methodname (result); \ COPY_IMPL(); \ } #define COPY_XQ4(name, arg1name, arg2name, arg3name, arg4name) COPY_FULL4(name, XQ ## name, arg1name, arg2name, arg3name, arg4name) #define COPY4(name, arg1name, arg2name, arg3name, arg4name) COPY_FULL4(name, name, arg1name, arg2name, arg3name, arg4name) #define COPY_FULL5(methodname, classname, arg1name, arg2name, arg3name, arg4name, arg5name) \ ASTNode *ASTCopier::optimize ## methodname (classname *item) \ { \ classname *result = new (mm_) classname(item->get ## arg1name (), item->get ## arg2name (), item->get ## arg3name (), item->get ## arg4name (), \ item->get ## arg5name (), mm_); \ ASTVisitor::optimize ## methodname (result); \ COPY_IMPL(); \ } #define COPY_XQ5(name, arg1name, arg2name, arg3name, arg4name, arg5name) COPY_FULL5(name, XQ ## name, arg1name, arg2name, arg3name, arg4name, arg5name) #define COPY5(name, arg1name, arg2name, arg3name, arg4name, arg5name) COPY_FULL5(name, name, arg1name, arg2name, arg3name, arg4name, arg5name) #define COPY_FULL6(methodname, classname, arg1name, arg2name, arg3name, arg4name, arg5name, arg6name) \ ASTNode *ASTCopier::optimize ## methodname (classname *item) \ { \ classname *result = new (mm_) classname(item->get ## arg1name (), item->get ## arg2name (), item->get ## arg3name (), item->get ## arg4name (), \ item->get ## arg5name (), item->get ## arg6name (), mm_); \ ASTVisitor::optimize ## methodname (result); \ COPY_IMPL(); \ } #define COPY_XQ6(name, arg1name, arg2name, arg3name, arg4name, arg5name, arg6name) COPY_FULL6(name, XQ ## name, arg1name, arg2name, arg3name, arg4name, arg5name, arg6name) #define COPY6(name, arg1name, arg2name, arg3name, arg4name, arg5name, arg6name) COPY_FULL6(name, name, arg1name, arg2name, arg3name, arg4name, arg5name, arg6name) #define COPY_FULL7(methodname, classname, arg1name, arg2name, arg3name, arg4name, arg5name, arg6name, arg7name) \ ASTNode *ASTCopier::optimize ## methodname (classname *item) \ { \ classname *result = new (mm_) classname(item->get ## arg1name (), item->get ## arg2name (), item->get ## arg3name (), item->get ## arg4name (), \ item->get ## arg5name (), item->get ## arg6name (), item->get ## arg7name (), mm_); \ ASTVisitor::optimize ## methodname (result); \ COPY_IMPL(); \ } #define COPY_XQ7(name, arg1name, arg2name, arg3name, arg4name, arg5name, arg6name, arg7name) \ COPY_FULL7(name, XQ ## name, arg1name, arg2name, arg3name, arg4name, arg5name, arg6name, arg7name) #define COPY7(name, arg1name, arg2name, arg3name, arg4name, arg5name, arg6name, arg7name) \ COPY_FULL7(name, name, arg1name, arg2name, arg3name, arg4name, arg5name, arg6name, arg7name) #define COPY_FULL8(methodname, classname, arg1name, arg2name, arg3name, arg4name, arg5name, arg6name, arg7name, arg8name) \ ASTNode *ASTCopier::optimize ## methodname (classname *item) \ { \ classname *result = new (mm_) classname(item->get ## arg1name (), item->get ## arg2name (), item->get ## arg3name (), item->get ## arg4name (), \ item->get ## arg5name (), item->get ## arg6name (), item->get ## arg7name (), item->get ## arg8name (), mm_); \ ASTVisitor::optimize ## methodname (result); \ COPY_IMPL(); \ } #define COPY_XQ8(name, arg1name, arg2name, arg3name, arg4name, arg5name, arg6name, arg7name, arg8name) \ COPY_FULL8(name, XQ ## name, arg1name, arg2name, arg3name, arg4name, arg5name, arg6name, arg7name, arg8name) #define COPY8(name, arg1name, arg2name, arg3name, arg4name, arg5name, arg6name, arg7name, arg8name) \ COPY_FULL8(name, name, arg1name, arg2name, arg3name, arg4name, arg5name, arg6name, arg7name, arg8name) // TBD copy ItemConstructor objects - jpcs // TBD copy SequenceType objects - jpcs // TBD copy NodeTest objects - jpcs COPY_XQ4(Literal, TypeURI, TypeName, Value, PrimitiveType) COPY_XQ5(QNameLiteral, TypeURI, TypeName, URI, Prefix, Localname) COPY_XQ4(NumericLiteral, TypeURI, TypeName, Value, PrimitiveType) COPY_XQ1(Sequence, Children) COPY_XQ2(Step, Axis, NodeTest) COPY_XQ4(Variable, Prefix, URI, Name, Global) COPY_XQ3(If, Test, WhenTrue, WhenFalse) COPY_XQ4(CastableAs, Expression, SequenceType, IsPrimitive, TypeIndex) COPY_XQ4(CastAs, Expression, SequenceType, IsPrimitive, TypeIndex) COPY_XQ7(TreatAs, Expression, SequenceType, ErrorCode, DoTypeCheck, DoCardinalityCheck, TreatType, IsExact) COPY_XQ4(FunctionCoercion, Expression, SequenceType, FuncConvert, TreatType) COPY_XQ0(ContextItem) COPY_XQ2(Return, Parent, Expression) COPY_XQ3(Quantified, QuantifierType, Parent, Expression) COPY_XQ2(Validate, Expression, Mode) COPY_XQ2(OrderingChange, OrderingValue, Expr) COPY_XQ2(Atomize, Expression, DoPSVI) COPY_XQ1(EffectiveBooleanValue, Expression) COPY_XQ5(PromoteUntyped, Expression, TypeURI, TypeName, IsPrimitive, TypeIndex) COPY_XQ4(PromoteNumeric, Expression, TypeURI, TypeName, TypeIndex) COPY_XQ3(PromoteAnyURI, Expression, TypeURI, TypeName) COPY_XQ2(DocumentOrder, Expression, Unordered) COPY_XQ3(Predicate, Expression, Predicate, Reverse) COPY_XQ1(NameExpression, Expression) COPY_XQ1(ContentSequence, Expression) COPY_XQ2(DirectName, QName, UseDefaultNamespace) COPY_XQ2(NamespaceBinding, Namespaces, Expression) COPY_XQ2(FunctionConversion, Expression, SequenceType) COPY_XQ5(AnalyzeString, Expression, Regex, Flags, Match, NonMatch) COPY_XQ2(CopyOf, Expression, CopyNamespaces) COPY_XQ4(Copy, Expression, Children, CopyNamespaces, InheritNamespaces) COPY_XQ2(FunctionRef, QName, NumArgs) COPY1(ASTDebugHook, Expression) COPY1(UDelete, Expression) COPY2(URename, Target, Name) COPY2(UReplace, Target, Expression) COPY2(UReplaceValueOf, Target, Expression) COPY2(UInsertAsFirst, Source, Target) COPY2(UInsertAsLast, Source, Target) COPY2(UInsertInto, Source, Target) COPY2(UInsertAfter, Source, Target) COPY2(UInsertBefore, Source, Target) COPY2(UApplyUpdates, Expression, RevalidationMode) COPY3(FTContains, Argument, Selection, Ignore); COPY_XQ2(Nav, Steps, SortAdded); COPY_FULL3(UserFunction, XQUserFunctionInstance, FunctionDefinition, Arguments, AddReturnCheck); ASTNode *ASTCopier::optimizeInlineFunction(XQInlineFunction *item) { XQInlineFunction *result = new (mm_) XQInlineFunction(item->getUserFunction(), item->getPrefix(), item->getURI(), item->getName(), item->getNumArgs(), new (mm_) FunctionSignature(item->getSignature(), mm_), item->getInstance(), mm_); ASTVisitor::optimizeInlineFunction(result); if(result->getUserFunction()) { // Update the pointers to the XQUserFunction in the instance UpdateInstance().run(result->getInstance(), item->getUserFunction(), result->getUserFunction()); } COPY_IMPL(); } ASTNode *ASTCopier::optimizeFunction(XQFunction *item) { const XMLCh *uri = item->getFunctionURI(); const XMLCh *name = item->getFunctionName(); XQFunction *result = 0; if(uri == XQFunction::XMLChFunctionURI) { if(name == FunctionPut::name) { result = new (mm_) FunctionPut(((FunctionPut*)item)->getBaseURI(), item->getArguments(), mm_); } else if (name == FunctionMatches::name || name == FunctionReplace::name || name == FunctionTokenize::name) { RegExpFunction* newFunc = (RegExpFunction*)context_->lookUpFunction(item->getFunctionURI(), item->getFunctionName(), item->getArguments()); newFunc->copyRegExp((RegExpFunction*) item, mm_); result = newFunc; } } if(result == 0) result = (XQFunction*)context_->lookUpFunction(item->getFunctionURI(), item->getFunctionName(), item->getArguments()); result->setSignature(new (mm_) FunctionSignature(item->getSignature(), mm_)); ASTVisitor::optimizeFunction(result); COPY_IMPL(); } #define OP_CHECK(opName) \ else if(item->getOperatorName() == opName::name) \ result = new (mm_) opName(item->getArguments(), mm_) ASTNode *ASTCopier::optimizeOperator(XQOperator *item) { XQOperator *result = 0; if(item->getOperatorName() == GeneralComp::name) { GeneralComp *gen = (GeneralComp*)item; result = new (mm_) GeneralComp(gen->getOperation(), item->getArguments(), gen->getCollation(), gen->getXPath1CompatibilityMode(), mm_); } else if(item->getOperatorName() == OrderComparison::name) { OrderComparison *ord = (OrderComparison*)item; result = new (mm_) OrderComparison(item->getArguments(), ord->getTestBefore(), mm_); } else if(item->getOperatorName() == UnaryMinus::name) { UnaryMinus *un = (UnaryMinus*)item; result = new (mm_) UnaryMinus(un->getIsPositive(), item->getArguments(), mm_); } OP_CHECK(And); OP_CHECK(Divide); OP_CHECK(Equals); OP_CHECK(Except); OP_CHECK(GreaterThan); OP_CHECK(GreaterThanEqual); OP_CHECK(IntegerDivide); OP_CHECK(Intersect); OP_CHECK(LessThan); OP_CHECK(LessThanEqual); OP_CHECK(Minus); OP_CHECK(Mod); OP_CHECK(Multiply); OP_CHECK(NodeComparison); OP_CHECK(NotEquals); OP_CHECK(Or); OP_CHECK(Plus); OP_CHECK(Union); ASTVisitor::optimizeOperator(result); COPY_IMPL(); } static XQTypeswitch::Case *copyCase(const XQTypeswitch::Case *in, XPath2MemoryManager *mm) { XQTypeswitch::Case *result = new (mm) XQTypeswitch::Case(in->getQName(), in->getURI(), in->getName(), in->getSequenceType(), in->getTreatType(), in->getIsExact(), in->getExpression()); result->setLocationInfo(in); return result; } ASTNode *ASTCopier::optimizeTypeswitch(XQTypeswitch *item) { XQTypeswitch::Cases *newCases = new (mm_) XQTypeswitch::Cases(XQillaAllocator(mm_)); XQTypeswitch::Cases *clauses = const_cast(item->getCases()); for(XQTypeswitch::Cases::iterator i = clauses->begin(); i != clauses->end(); ++i) { newCases->push_back(copyCase(*i, mm_)); } XQTypeswitch *result = new (mm_) XQTypeswitch(item->getExpression(), newCases, copyCase(item->getDefaultCase(), mm_), mm_); ASTVisitor::optimizeTypeswitch(result); COPY_IMPL(); } ASTNode *ASTCopier::optimizeFunctionCall(XQFunctionCall *item) { VectorOfASTNodes *newArgs = new (mm_) VectorOfASTNodes(XQillaAllocator(mm_)); *newArgs = *item->getArguments(); XQFunctionCall *result = new (mm_) XQFunctionCall(item->getPrefix(), item->getURI(), item->getName(), newArgs, mm_); ASTVisitor::optimizeFunctionCall(result); COPY_IMPL(); } ASTNode *ASTCopier::optimizeDOMConstructor(XQDOMConstructor *item) { VectorOfASTNodes *newChildren = 0; VectorOfASTNodes *children = const_cast(item->getChildren()); if(children) { newChildren = new (mm_) VectorOfASTNodes(XQillaAllocator(mm_)); *newChildren = *children; } VectorOfASTNodes *newAttrs = 0; VectorOfASTNodes *attrs = const_cast(item->getAttributes()); if(attrs) { newAttrs = new (mm_) VectorOfASTNodes(XQillaAllocator(mm_)); *newAttrs = *attrs; } XQDOMConstructor *result = 0; if(item->getNodeType() == Node::document_string) { result = new (mm_) XQDocumentConstructor(item->getValue(), mm_); } else if(item->getNodeType() == Node::element_string) { RefHashTableOf< XMLCh > *newNamespaces = 0; RefHashTableOf< XMLCh > *namespaces = ((XQElementConstructor*)item)->getNamespaces(); if(namespaces != 0) { newNamespaces = new (mm_) RefHashTableOf< XMLCh >(5, false, mm_); RefHashTableOfEnumerator nsEnumVal(namespaces, false, mm_); RefHashTableOfEnumerator nsEnumKey(namespaces, false, mm_); while(nsEnumVal.hasMoreElements()) { newNamespaces->put(nsEnumKey.nextElementKey(), &nsEnumVal.nextElement()); } } result = new (mm_) XQElementConstructor(item->getName(), newAttrs, newChildren, newNamespaces, mm_); } else if(item->getNodeType() == Node::attribute_string) { result = new (mm_) XQAttributeConstructor(item->getName(), newChildren, mm_); } else if(item->getNodeType() == Node::namespace_string) { result = new (mm_) XQNamespaceConstructor(item->getName(), newChildren, mm_); } else if(item->getNodeType() == Node::text_string) { result = new (mm_) XQTextConstructor(item->getValue(), mm_); } else if(item->getNodeType() == Node::comment_string) { result = new (mm_) XQCommentConstructor(item->getValue(), mm_, ((XQCommentConstructor*)item)->isXSLT()); } else if(item->getNodeType() == Node::processing_instruction_string) { result = new (mm_) XQPIConstructor(item->getName(), item->getValue(), mm_, ((XQPIConstructor*)item)->isXSLT()); } ASTVisitor::optimizeDOMConstructor(result); COPY_IMPL(); } ASTNode *ASTCopier::optimizeSimpleContent(XQSimpleContent *item) { VectorOfASTNodes *newChildren = 0; VectorOfASTNodes *children = const_cast(item->getChildren()); if(children) { newChildren = new (mm_) VectorOfASTNodes(XQillaAllocator(mm_)); *newChildren = *children; } XQSimpleContent *result = new (mm_) XQSimpleContent(newChildren, mm_); ASTVisitor::optimizeSimpleContent(result); COPY_IMPL(); } static TemplateArguments *copyTemplateArgs(const TemplateArguments *in, XPath2MemoryManager *mm) { if(in == 0) return 0; TemplateArguments *result = new (mm) TemplateArguments(XQillaAllocator(mm)); for(TemplateArguments::const_iterator i = in->begin(); i != in->end(); ++i) { XQTemplateArgument *arg = new (mm) XQTemplateArgument((*i)->qname, (*i)->value, mm); arg->uri = (*i)->uri; arg->name = (*i)->name; arg->seqType = (*i)->seqType; arg->varSrc.copy((*i)->varSrc); result->push_back(arg); } return result; } ASTNode *ASTCopier::optimizeCallTemplate(XQCallTemplate *item) { XQCallTemplate *result = new (mm_) XQCallTemplate(item->getQName(), item->getURI(), item->getName(), item->getASTName(), copyTemplateArgs(item->getArguments(), mm_), item->getTemplates(), mm_); ASTVisitor::optimizeCallTemplate(result); COPY_IMPL(); } ASTNode *ASTCopier::optimizeApplyTemplates(XQApplyTemplates *item) { XQApplyTemplates *result = new (mm_) XQApplyTemplates(item->getExpression(), copyTemplateArgs(item->getArguments(), mm_), item->getMode(), item->getTemplates(), mm_); ASTVisitor::optimizeApplyTemplates(result); COPY_IMPL(); } ASTNode *ASTCopier::optimizeMap(XQMap *item) { XQMap *result = new (mm_) XQMap(item->getArg1(), item->getArg2(), item->getURI(), item->getName(), mm_); ASTVisitor::optimizeMap(result); const_cast(result->getVarSRC()).copy(item->getVarSRC()); COPY_IMPL(); } ASTNode *ASTCopier::optimizeFunctionDeref(XQFunctionDeref *item) { VectorOfASTNodes *newArgs = 0; VectorOfASTNodes *args = const_cast(item->getArguments()); if(args) { newArgs = new (mm_) VectorOfASTNodes(XQillaAllocator(mm_)); *newArgs = *args; } XQFunctionDeref *result = new (mm_) XQFunctionDeref(item->getExpression(), newArgs, mm_); ASTVisitor::optimizeFunctionDeref(item); COPY_IMPL(); } ASTNode *ASTCopier::optimizePartialApply(XQPartialApply *item) { VectorOfASTNodes *newArgs = 0; VectorOfASTNodes *args = const_cast(item->getArguments()); if(args) { newArgs = new (mm_) VectorOfASTNodes(XQillaAllocator(mm_)); *newArgs = *args; } XQPartialApply *result = new (mm_) XQPartialApply(item->getExpression(), newArgs, mm_); ASTVisitor::optimizePartialApply(item); COPY_IMPL(); } ASTNode *ASTCopier::optimizeUTransform(UTransform *item) { VectorOfCopyBinding *newBindings = new (mm_) VectorOfCopyBinding(XQillaAllocator(mm_)); VectorOfCopyBinding *bindings = const_cast(item->getBindings()); for(VectorOfCopyBinding::iterator i = bindings->begin(); i != bindings->end(); ++i) { newBindings->push_back(new (mm_) CopyBinding(mm_, **i)); } UTransform *result = new (mm_) UTransform(newBindings, item->getModifyExpr(), item->getReturnExpr(), item->getRevalidationMode(), mm_); ASTVisitor::optimizeUTransform(result); COPY_IMPL(); } TupleNode *ASTCopier::optimizeContextTuple(ContextTuple *item) { ContextTuple *result = new (mm_) ContextTuple(mm_); ASTVisitor::optimizeContextTuple(result); result->setLocationInfo(item); result->setMin(item->getMin()); result->setMax(item->getMax()); return result; } TupleNode *ASTCopier::optimizeForTuple(ForTuple *item) { ForTuple *result = new (mm_) ForTuple(item->getParent(), item->getVarURI(), item->getVarName(), item->getPosURI(), item->getPosName(), item->getExpression(), mm_); ASTVisitor::optimizeForTuple(result); result->setLocationInfo(item); const_cast(result->getVarSRC()).copy(item->getVarSRC()); const_cast(result->getPosSRC()).copy(item->getPosSRC()); result->setMin(item->getMin()); result->setMax(item->getMax()); return result; } TupleNode *ASTCopier::optimizeLetTuple(LetTuple *item) { LetTuple *result = new (mm_) LetTuple(item->getParent(), item->getVarURI(), item->getVarName(), item->getExpression(), mm_); ASTVisitor::optimizeLetTuple(result); result->setLocationInfo(item); const_cast(result->getVarSRC()).copy(item->getVarSRC()); result->setMin(item->getMin()); result->setMax(item->getMax()); return result; } TupleNode *ASTCopier::optimizeWhereTuple(WhereTuple *item) { WhereTuple *result = new (mm_) WhereTuple(item->getParent(), item->getExpression(), mm_); ASTVisitor::optimizeWhereTuple(result); result->setLocationInfo(item); result->setMin(item->getMin()); result->setMax(item->getMax()); return result; } TupleNode *ASTCopier::optimizeCountTuple(CountTuple *item) { CountTuple *result = new (mm_) CountTuple(item->getParent(), item->getVarURI(), item->getVarName(), mm_); ASTVisitor::optimizeCountTuple(result); result->setLocationInfo(item); result->setMin(item->getMin()); result->setMax(item->getMax()); return result; } TupleNode *ASTCopier::optimizeOrderByTuple(OrderByTuple *item) { OrderByTuple *result = new (mm_) OrderByTuple(item->getParent(), item->getExpression(), item->getModifiers(), item->getCollation(), mm_); ASTVisitor::optimizeOrderByTuple(result); result->setLocationInfo(item); const_cast(result->getUsedSRC()).copy(item->getUsedSRC()); result->setMin(item->getMin()); result->setMax(item->getMax()); return result; } TupleNode *ASTCopier::optimizeTupleDebugHook(TupleDebugHook *item) { TupleDebugHook *result = new (mm_) TupleDebugHook(item->getParent(), mm_); ASTVisitor::optimizeTupleDebugHook(result); result->setLocationInfo(item); result->setMin(item->getMin()); result->setMax(item->getMax()); return result; } FTSelection *ASTCopier::optimizeFTWords(FTWords *selection) { FTWords *result = new (mm_) FTWords(selection->getExpr(), selection->getOption(), mm_); result->setLocationInfo(selection); const_cast(result->getStaticAnalysis()).copy(selection->getStaticAnalysis()); ASTVisitor::optimizeFTWords(selection); return result; } FTSelection *ASTCopier::optimizeFTWord(FTWord *selection) { FTWord *result = new (mm_) FTWord(selection->getQueryString(), mm_); result->setLocationInfo(selection); const_cast(result->getStaticAnalysis()).copy(selection->getStaticAnalysis()); ASTVisitor::optimizeFTWord(selection); return result; } FTSelection *ASTCopier::optimizeFTOr(FTOr *selection) { FTOr *result = new (mm_) FTOr(mm_); result->setLocationInfo(selection); const_cast(result->getArguments()) = selection->getArguments(); const_cast(result->getStaticAnalysis()).copy(selection->getStaticAnalysis()); ASTVisitor::optimizeFTOr(selection); return result; } FTSelection *ASTCopier::optimizeFTAnd(FTAnd *selection) { FTAnd *result = new (mm_) FTAnd(mm_); result->setLocationInfo(selection); const_cast(result->getArguments()) = selection->getArguments(); const_cast(result->getStaticAnalysis()).copy(selection->getStaticAnalysis()); ASTVisitor::optimizeFTAnd(selection); return result; } FTSelection *ASTCopier::optimizeFTMildnot(FTMildnot *selection) { FTMildnot *result = new (mm_) FTMildnot(selection->getLeft(), selection->getRight(), mm_); result->setLocationInfo(selection); const_cast(result->getStaticAnalysis()).copy(selection->getStaticAnalysis()); ASTVisitor::optimizeFTMildnot(selection); return result; } FTSelection *ASTCopier::optimizeFTUnaryNot(FTUnaryNot *selection) { FTUnaryNot *result = new (mm_) FTUnaryNot(selection->getArgument(), mm_); result->setLocationInfo(selection); const_cast(result->getStaticAnalysis()).copy(selection->getStaticAnalysis()); ASTVisitor::optimizeFTUnaryNot(selection); return result; } FTSelection *ASTCopier::optimizeFTOrder(FTOrder *selection) { FTOrder *result = new (mm_) FTOrder(selection->getArgument(), mm_); result->setLocationInfo(selection); const_cast(result->getStaticAnalysis()).copy(selection->getStaticAnalysis()); ASTVisitor::optimizeFTOrder(selection); return result; } FTSelection *ASTCopier::optimizeFTDistance(FTDistance *selection) { FTDistance *result = new (mm_) FTDistance(selection->getRange(), selection->getUnit(), selection->getArgument(), mm_); result->setLocationInfo(selection); const_cast(result->getStaticAnalysis()).copy(selection->getStaticAnalysis()); ASTVisitor::optimizeFTDistance(selection); return result; } FTSelection *ASTCopier::optimizeFTDistanceLiteral(FTDistanceLiteral *selection) { FTDistanceLiteral *result = new (mm_) FTDistanceLiteral(selection->getArgument(), selection->getType(), selection->getDistance(), selection->getDistance2(), selection->getUnit(), mm_); result->setLocationInfo(selection); const_cast(result->getStaticAnalysis()).copy(selection->getStaticAnalysis()); ASTVisitor::optimizeFTDistanceLiteral(selection); return result; } FTSelection *ASTCopier::optimizeFTScope(FTScope *selection) { FTScope *result = new (mm_) FTScope(selection->getArgument(), selection->getType(), selection->getUnit(), mm_); result->setLocationInfo(selection); const_cast(result->getStaticAnalysis()).copy(selection->getStaticAnalysis()); ASTVisitor::optimizeFTScope(selection); return result; } FTSelection *ASTCopier::optimizeFTContent(FTContent *selection) { FTContent *result = new (mm_) FTContent(selection->getArgument(), selection->getType(), mm_); result->setLocationInfo(selection); const_cast(result->getStaticAnalysis()).copy(selection->getStaticAnalysis()); ASTVisitor::optimizeFTContent(selection); return result; } FTSelection *ASTCopier::optimizeFTWindow(FTWindow *selection) { FTWindow *result = new (mm_) FTWindow(selection->getArgument(), selection->getExpr(), selection->getUnit(), mm_); result->setLocationInfo(selection); const_cast(result->getStaticAnalysis()).copy(selection->getStaticAnalysis()); ASTVisitor::optimizeFTWindow(selection); return result; } FTSelection *ASTCopier::optimizeFTWindowLiteral(FTWindowLiteral *selection) { FTWindowLiteral *result = new (mm_) FTWindowLiteral(selection->getArgument(), selection->getDistance(), selection->getUnit(), mm_); result->setLocationInfo(selection); const_cast(result->getStaticAnalysis()).copy(selection->getStaticAnalysis()); ASTVisitor::optimizeFTWindowLiteral(selection); return result; } XQilla-2.3.0/src/optimizer/QueryPathNode.cpp0000644000151400015140000001570311653565523015711 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; using namespace std; QueryPathNode::QueryPathNode(const NodeTest *nodeTest, Type type, MemoryManager *mm) : type_(type), nodeTest_(nodeTest), parent_(0), nextSibling_(0), prevSibling_(0), firstChild_(0), lastChild_(0), memMgr_(mm) { } QueryPathNode::~QueryPathNode() { QueryPathNode *child = firstChild_; QueryPathNode *next; while(child) { next = child->nextSibling_; delete child; child = next; } } bool QueryPathNode::isWildcardURI() const { if(nodeTest_ == 0) return true; return nodeTest_->getItemType() || nodeTest_->getNamespaceWildcard(); } bool QueryPathNode::isWildcardName() const { if(nodeTest_ == 0) return true; return nodeTest_->getItemType() || nodeTest_->getNameWildcard(); } bool QueryPathNode::isWildcardNodeType() const { if(nodeTest_ == 0) return true; return nodeTest_->getItemType() || nodeTest_->getTypeWildcard() || (nodeTest_->isNodeTypeSet() && nodeTest_->getNodeType() != Node::element_string); } bool QueryPathNode::isWildcard() const { if(nodeTest_ == 0 || nodeTest_->getItemType()) return true; return nodeTest_->getNamespaceWildcard() || nodeTest_->getNameWildcard() || nodeTest_->getTypeWildcard() || (type_ != ATTRIBUTE && type_ != DESCENDANT_ATTR && nodeTest_->getNodeType() != Node::element_string); } const XMLCh *QueryPathNode::getURI() const { if(nodeTest_->getItemType() || nodeTest_->getNamespaceWildcard()) return 0; return nodeTest_->getNodeUri(); } const XMLCh *QueryPathNode::getName() const { if(nodeTest_->getItemType() || nodeTest_->getNameWildcard()) return 0; return nodeTest_->getNodeName(); } QueryPathNode *QueryPathNode::getRoot() const { QueryPathNode *result = const_cast(this); QueryPathNode *parent = parent_; while(parent) { result = parent; parent = parent->parent_; } return result; } QueryPathNode *QueryPathNode::appendChild(QueryPathNode *childToAdopt) { if(childToAdopt->parent_ == this) return childToAdopt; if(childToAdopt->parent_ != 0) { childToAdopt->parent_->removeChild(childToAdopt, false); } // Search to see if the child exists already QueryPathNode *compare = firstChild_; for(; compare; compare = compare->nextSibling_) { if(compare->equals(childToAdopt)) { break; } } if(compare) { // Child exists already compare->stealChildren(childToAdopt); delete childToAdopt; return compare; } else { // Child doesn't already exist, so add childToAdopt->parent_ = this; if(firstChild_ == 0) { firstChild_ = childToAdopt; } if(lastChild_) { lastChild_->nextSibling_ = childToAdopt; childToAdopt->prevSibling_ = lastChild_; } lastChild_ = childToAdopt; return childToAdopt; } } void QueryPathNode::removeChild(QueryPathNode *child, bool deleteChild) { if(firstChild_ == child) { firstChild_ = child->nextSibling_; } if(lastChild_ == child) { lastChild_ = child->prevSibling_; } if(child->prevSibling_) { child->prevSibling_->nextSibling_ = child->nextSibling_; } if(child->nextSibling_) { child->nextSibling_->prevSibling_ = child->prevSibling_; } if(deleteChild) { delete child; } else { child->parent_ = 0; child->nextSibling_ = 0; child->prevSibling_ = 0; } } void QueryPathNode::stealChildren(QueryPathNode *victim) { // Loop over the children of "victim", adding them to us for(QueryPathNode *i = victim->firstChild_; i != 0; i = victim->firstChild_) { appendChild(i); // Removes it from "victim" } } void QueryPathNode::markSubtreeValue() { if(type_ != ATTRIBUTE && type_ != DESCENDANT_ATTR) { appendChild(new (memMgr_) QueryPathNode(0, DESCENDANT, memMgr_)); } } void QueryPathNode::markSubtreeResult() { if(type_ != ATTRIBUTE && type_ != DESCENDANT_ATTR) { appendChild(new (memMgr_) QueryPathNode(0, DESCENDANT_ATTR, memMgr_)); appendChild(new (memMgr_) QueryPathNode(0, DESCENDANT, memMgr_)); } } bool QueryPathNode::equals(const QueryPathNode *o) const { return type_ == o->type_ && NodeTest::isSubsetOf(nodeTest_, o->nodeTest_) && NodeTest::isSubsetOf(o->nodeTest_, nodeTest_); // return isWildcardURI() == o->isWildcardURI() && // isWildcardName() == o->isWildcardName() && // isWildcardNodeType() == o->isWildcardNodeType() && // type_ == o->type_ && // (isWildcardURI() || XPath2Utils::equals(getURI(), o->getURI())) && // (isWildcardName() || XPath2Utils::equals(getName(), o->getName())); } bool QueryPathNode::isSubsetOf(const QueryPathNode *node) const { return NodeTest::isSubsetOf(nodeTest_, node->nodeTest_); } static string getIndent(int level) { ostringstream s; for(int i = level; i != 0; --i) { s << " "; } return s.str(); } static string typeToString(QueryPathNode::Type type) { switch(type) { case QueryPathNode::ATTRIBUTE: { return "attribute"; break; } case QueryPathNode::CHILD: { return "child"; break; } case QueryPathNode::DESCENDANT: { return "descendant"; break; } case QueryPathNode::DESCENDANT_ATTR: { return "descendant-attr"; break; } case QueryPathNode::ROOT: { return "root"; break; } } return "UNKNOWN"; } string QueryPathNode::toString(int level) const { ostringstream s; string in(getIndent(level)); string type(typeToString(type_)); s << in << "<" << type; if(isWildcardURI()) { s << " uri=\"*\""; } else if(nodeTest_->getNodeUri() == 0) { s << " uri=\"\""; } else { s << " uri=\"" << UTF8(nodeTest_->getNodeUri()) << "\""; } if(isWildcardName()) { s << " name=\"*\""; } else if(nodeTest_->getNodeName() == 0) { s << " name=\"\""; } else { s << " name=\"" << UTF8(nodeTest_->getNodeName()) << "\""; } if(isWildcardNodeType()) { s << " nodeType=\"*\""; } if(firstChild_) { s << ">" << endl; QueryPathNode *child = firstChild_; while(child) { s << child->toString(level + 1); child = child->nextSibling_; } s << in << "" << endl; } else { s << "/>" << endl; } return s.str(); } XQilla-2.3.0/src/optimizer/QueryPathTreeGenerator.cpp0000644000151400015140000013410311653565523017566 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "../items/impl/FunctionRefImpl.hpp" #include XERCES_CPP_NAMESPACE_USE; using namespace std; static const XMLCh XMLChDot[] = { chColon, chColon, chLatin_d, chLatin_o, chLatin_t, chNull }; QueryPathTreeGenerator::QueryPathTreeGenerator(DynamicContext *context, Optimizer *parent) : ASTVisitor(parent), mm_(context->getMemoryManager()), context_(context), varStore_(&varStoreMemMgr_) { resetInternal(); } QueryPathNode *QueryPathTreeGenerator::createQueryPathNode(const NodeTest *nodeTest, QueryPathNode::Type type) { return new (mm_) QueryPathNode(nodeTest, type, mm_); } NodeTest *QueryPathTreeGenerator::createNodeTest(const XMLCh *nodeType, const XMLCh *uri, const XMLCh *name) { return new (mm_) NodeTest(nodeType, uri, name); } void QueryPathTreeGenerator::createAnyNodeResult(PathResult &result) { NodeTest *nt = createNodeTest(Node::document_string); QueryPathNode *root = createQueryPathNode(nt, QueryPathNode::ROOT); result.join(root); QueryPathNode *pisn = root->appendChild(createQueryPathNode(createNodeTest((XMLCh*)0), QueryPathNode::DESCENDANT)); result.join(pisn); QueryPathNode *cisn = pisn->appendChild(createQueryPathNode(createNodeTest(Node::attribute_string), QueryPathNode::ATTRIBUTE)); result.join(cisn); } void QueryPathTreeGenerator::resetInternal() { varStore_.clear(); // The initial context item could be a node of any type from anywhere - // set up a set of paths that reflect that PathResult contextResult; createAnyNodeResult(contextResult); varStore_.setGlobalVar(XMLChDot, XMLChDot, contextResult); } void QueryPathTreeGenerator::push(PathResult result) { results_.push_back(result); } QueryPathTreeGenerator::PathResult QueryPathTreeGenerator::pop() { PathResult result = results_.back(); results_.pop_back(); return result; } QueryPathTreeGenerator::PathResult QueryPathTreeGenerator::generate(ASTNode *item) { optimize(item); return pop(); } ASTNode *QueryPathTreeGenerator::optimize(ASTNode *item) { return ASTVisitor::optimize(item); } void QueryPathTreeGenerator::optimize(XQQuery *query) { ASTVisitor::optimize(query); if(query->getQueryBody() != 0) { pop().markSubtreeResult(); } } XQUserFunction *QueryPathTreeGenerator::optimizeFunctionDef(XQUserFunction *item) { if(item->getFunctionBody() != 0) { const ArgumentSpecs *params = item->getSignature()->argSpecs; if(params) { varStore_.addScope(VarStore::MyScope::LOCAL_SCOPE); for(ArgumentSpecs::const_iterator it = params->begin(); it != params->end(); ++it) { PathResult paramRes; if((*it)->getStaticAnalysis().getStaticType().containsType(StaticType::NODE_TYPE)) createAnyNodeResult(paramRes); setVariable((*it)->getURI(), (*it)->getName(), paramRes); } } generate(const_cast(item->getFunctionBody())); if(params) { delete varStore_.popScope(); } } return item; } XQGlobalVariable *QueryPathTreeGenerator::optimizeGlobalVar(XQGlobalVariable *item) { PathResult result; if(item->getVariableExpr()) { result.join(generate(const_cast(item->getVariableExpr()))); } else { if(item->getStaticAnalysis().getStaticType().containsType(StaticType::NODE_TYPE)) createAnyNodeResult(result); } varStore_.setGlobalVar(item->getVariableURI(), item->getVariableLocalName(), result); return item; } static QueryPathNode::Type getTypeFromAxis(XQStep::Axis axis) { QueryPathNode::Type result = (QueryPathNode::Type)-1; switch(axis) { case XQStep::CHILD: { result = QueryPathNode::CHILD; break; } case XQStep::ATTRIBUTE: { result = QueryPathNode::ATTRIBUTE; break; } case XQStep::DESCENDANT_OR_SELF: case XQStep::DESCENDANT: { result = QueryPathNode::DESCENDANT; break; } default: { // Do nothing break; } } return result; } const QueryPathTreeGenerator::PathResult &QueryPathTreeGenerator::getCurrentContext() const { return varStore_.getVar(XMLChDot, XMLChDot)->getValue(); } void QueryPathTreeGenerator::setCurrentContext(const PathResult &value) { setVariable(XMLChDot, XMLChDot, value); } void QueryPathTreeGenerator::setVariable(const XMLCh *uri, const XMLCh *name, const PathResult &value) { varStore_.declareVar(uri, name, value); } ASTNode *QueryPathTreeGenerator::optimizeStep(XQStep *item) { XQStep::Axis axis = item->getAxis(); const NodeTest *nodeTest = item->getNodeTest(); PathResult result; QueryPathNode dummy(nodeTest, getTypeFromAxis(axis), mm_); const PathResult ¤tContext = getCurrentContext(); for(QueryPathNode::Vector::const_iterator it = currentContext.returnPaths.begin(); it != currentContext.returnPaths.end(); ++it) { switch(axis) { case XQStep::PARENT: { generateParentStep(*it, dummy, result); break; } case XQStep::DESCENDANT_OR_SELF: { generateSelfStep(*it, dummy, result); generateBuiltInStep(*it, dummy, result); break; } case XQStep::SELF: { generateSelfStep(*it, dummy, result); break; } case XQStep::ANCESTOR: { generateAncestorStep(*it, dummy, result); break; } case XQStep::ANCESTOR_OR_SELF: { generateAncestorOrSelfStep(*it, dummy, result); break; } case XQStep::FOLLOWING: { generateFollowingStep(*it, dummy, result); break; } case XQStep::PRECEDING: { generatePrecedingStep(*it, dummy, result); break; } case XQStep::PRECEDING_SIBLING: case XQStep::FOLLOWING_SIBLING: { generateSiblingStep(*it, dummy, result); break; } case XQStep::ATTRIBUTE: case XQStep::CHILD: case XQStep::DESCENDANT: { generateBuiltInStep(*it, dummy, result); break; } case XQStep::NAMESPACE: default: { // Do nothing break; } } } push(result); return item; } void QueryPathTreeGenerator::generateBuiltInStep(QueryPathNode *target, QueryPathNode &node, PathResult &result) { switch(target->getType()) { case QueryPathNode::ATTRIBUTE: { // Does nothing break; } case QueryPathNode::CHILD: case QueryPathNode::DESCENDANT: case QueryPathNode::ROOT: { QueryPathNode *newNode = createQueryPathNode(node.getNodeTest(), node.getType()); result.join(target->appendChild(newNode)); break; } default: break; } } void QueryPathTreeGenerator::generateParentStep(QueryPathNode *target, QueryPathNode &node, PathResult &result) { QueryPathNode *parent = target->getParent(); if(parent == 0) return; switch(target->getType()) { case QueryPathNode::ATTRIBUTE: case QueryPathNode::CHILD: { if(parent->isSubsetOf(&node)) { result.join(parent); } else if(node.isSubsetOf(parent)) { QueryPathNode *parent_parent = parent->getParent(); if(parent_parent != 0) { QueryPathNode *newNode = createQueryPathNode(node.getNodeTest(), parent->getType()); result.join(parent_parent->appendChild(newNode)); } } break; } case QueryPathNode::DESCENDANT: { if(parent->isSubsetOf(&node)) { result.join(parent); } QueryPathNode *newNode = createQueryPathNode(node.getNodeTest(), QueryPathNode::DESCENDANT); result.join(parent->appendChild(newNode)); break; } case QueryPathNode::ROOT: { // There is no parent break; } default: break; } } void QueryPathTreeGenerator::generateSelfStep(QueryPathNode *target, QueryPathNode &node, PathResult &result) { if(target->isSubsetOf(&node)) { result.join(target); } else if(node.isSubsetOf(target)) { QueryPathNode *parent = target->getParent(); if(parent != 0) { QueryPathNode *newNode = createQueryPathNode(node.getNodeTest(), target->getType()); result.join(parent->appendChild(newNode)); } } } void QueryPathTreeGenerator::generateAncestorStep(QueryPathNode *target, QueryPathNode &node, PathResult &result) { QueryPathNode *parent = target->getParent(); if(parent == 0) return; switch(target->getType()) { case QueryPathNode::ATTRIBUTE: case QueryPathNode::CHILD: { if(parent->isSubsetOf(&node)) { result.join(parent); } else if(node.isSubsetOf(parent)) { QueryPathNode *parent_parent = parent->getParent(); if(parent_parent != 0) { QueryPathNode *newNode = createQueryPathNode(node.getNodeTest(), parent->getType()); result.join(parent_parent->appendChild(newNode)); } } generateAncestorStep(parent, node, result); break; } case QueryPathNode::DESCENDANT: { if(parent->isSubsetOf(&node)) { result.join(parent); } QueryPathNode *newNode = createQueryPathNode(node.getNodeTest(), QueryPathNode::DESCENDANT); result.join(parent->appendChild(newNode)); generateAncestorStep(parent, node, result); break; } case QueryPathNode::ROOT: { // Has no ancestors break; } default: break; } } void QueryPathTreeGenerator::generateAncestorOrSelfStep(QueryPathNode *target, QueryPathNode &node, PathResult &result) { generateSelfStep(target, node, result); generateAncestorStep(target, node, result); } void QueryPathTreeGenerator::generateFollowingStep(QueryPathNode *target, QueryPathNode &node, PathResult &result) { QueryPathNode *newNode = createQueryPathNode(node.getNodeTest(), QueryPathNode::DESCENDANT); result.join(target->getRoot()->appendChild(newNode)); } void QueryPathTreeGenerator::generatePrecedingStep(QueryPathNode *target, QueryPathNode &node, PathResult &result) { QueryPathNode *root = target->getRoot(); if(root->isSubsetOf(&node)) { result.join(root); } QueryPathNode *newNode = createQueryPathNode(node.getNodeTest(), QueryPathNode::DESCENDANT); result.join(root->appendChild(newNode)); } void QueryPathTreeGenerator::generateSiblingStep(QueryPathNode *target, QueryPathNode &node, PathResult &result) { QueryPathNode *parent = target->getParent(); if(parent == 0) return; switch(target->getType()) { case QueryPathNode::CHILD: case QueryPathNode::DESCENDANT: { QueryPathNode *newNode = createQueryPathNode(node.getNodeTest(), target->getType()); result.join(parent->appendChild(newNode)); break; } case QueryPathNode::ATTRIBUTE: case QueryPathNode::ROOT: { // Have no siblings break; } default: break; } } ASTNode *QueryPathTreeGenerator::optimizeNav(XQNav *item) { PathResult result = getCurrentContext(); bool setContext = false; XQNav::Steps &args = const_cast(item->getSteps()); for(XQNav::Steps::iterator i = args.begin(); i != args.end(); ++i) { if(setContext) { varStore_.addScope(VarStore::MyScope::LOGICAL_BLOCK_SCOPE); setCurrentContext(result); } result = generate(i->step); if(setContext) { delete varStore_.popScope(); } setContext = true; } push(result); return item; } static const XMLCh *resolveURIArg(const ASTNode *arg, DynamicContext *context, bool &defaultCollection) { if(!arg->isConstant()) return 0; Item::Ptr item = arg->createResult(context)->next(context); if(item.isNull()) { defaultCollection = true; return 0; } const XMLCh *uriArg = item->asString(context); if(uriArg == 0) return 0; const XMLCh *baseUri = context->getBaseURI(); try { XMLUri uri; if(baseUri != 0 && *baseUri != 0) { XMLUri base(baseUri); uri = XMLUri(&base, uriArg); } else { uri = XMLUri(uriArg); } return context->getMemoryManager()->getPooledString(uri.getUriText()); } catch(...) { // don't throw; it's just that the URI isn't valid. } return 0; } ASTNode *QueryPathTreeGenerator::optimizeFunction(XQFunction *item) { VectorOfASTNodes &args = const_cast(item->getArguments()); const XMLCh *uri = item->getFunctionURI(); const XMLCh *name = item->getFunctionName(); PathResult result; if(uri == XQFunction::XMLChFunctionURI) { // fn:root() if(name == FunctionRoot::name) { const PathResult ¤tContext = getCurrentContext(); // root() gets the root of it's argument, if it has one. // Otherwise it gets the root of the current context PathResult ret; if(args.empty()) { ret = currentContext; } else { ret = generate(args[0]); } for(QueryPathNode::Vector::iterator it = ret.returnPaths.begin(); it != ret.returnPaths.end(); ++it) { result.join((*it)->getRoot()); } } else if(name == FunctionDoc::name) { ASTNode *arg = args[0]; generate(arg); QueryPathNode *root = ((FunctionDoc*)item)->getQueryPathTree(); if(!root) { // Check criteria for safe document projection if(!arg->isConstant()) context_->setProjection(false); // Check to see if this document URI has already been accessed bool defaultCollection = false; const XMLCh *uriArg = resolveURIArg(arg, context_, defaultCollection); if(uriArg != 0) root = projectionMap_[uriArg]; // If we've not found a root QueryPathNode, create a new one if(!root) { NodeTest *nt = createNodeTest(Node::document_string); root = createQueryPathNode(nt, QueryPathNode::ROOT); if(uriArg != 0) projectionMap_[uriArg] = root; } ((FunctionDoc*)item)->setQueryPathTree(root); } result.join(root); } else if(name == FunctionDocument::name) { ASTNode *arg = args[0]; generate(arg); QueryPathNode *root = ((FunctionDoc*)item)->getQueryPathTree(); if(!root) { // Check criteria for safe document projection if(!arg->isConstant() || args.size() > 1) context_->setProjection(false); // Check to see if this document URI has already been accessed bool defaultCollection = false; const XMLCh *uriArg = resolveURIArg(arg, context_, defaultCollection); if(uriArg != 0) root = projectionMap_[uriArg]; // If we've not found a root QueryPathNode, create a new one if(!root) { NodeTest *nt = createNodeTest(Node::document_string); root = createQueryPathNode(nt, QueryPathNode::ROOT); if(uriArg != 0) projectionMap_[uriArg] = root; } ((FunctionDocument*)item)->setQueryPathTree(root); } result.join(root); } else if(name == FunctionCollection::name) { ASTNode *arg = 0; if(!args.empty()) { arg = args[0]; generate(arg); } QueryPathNode *root = ((FunctionCollection*)item)->getQueryPathTree(); if(!root) { const XMLCh *uriArg = 0; bool defaultCollection = false; if(arg != 0) { // Check criteria for safe document projection if(!arg->isConstant()) context_->setProjection(false); // Check to see if this document URI has already been accessed uriArg = resolveURIArg(arg, context_, defaultCollection); } else defaultCollection = true; if(uriArg != 0 || defaultCollection) root = projectionMap_[uriArg]; // If we've not found a root QueryPathNode, create a new one if(!root) { NodeTest *nt = createNodeTest(Node::document_string); root = createQueryPathNode(nt, QueryPathNode::ROOT); if(uriArg != 0 || defaultCollection) projectionMap_[uriArg] = root; } ((FunctionCollection*)item)->setQueryPathTree(root); } result.join(root); } else if(name == FunctionPut::name) { generate(args[0]).markSubtreeResult(); if(args.size() > 1) generate(args[1]).markSubtreeValue(); } else if(name == FunctionTrace::name) { // trace() returns it's first argument, and prints the string // value of it's second argument. result = generate(args[0]); generate(args[1]); } else if(name == FunctionHead::name || name == FunctionTail::name || name == FunctionUnordered::name) { // return their argument result = generate(args[0]); } else if(name == FunctionId::name || name == FunctionIdref::name) { PathResult nodes = generate(args[1]); // We don't handle these, so we mark the trees as unoptimisable nodes.markRoot(); generate(args[0]); } else if(name == FunctionLang::name) { generate(args[0]); PathResult nodeResult = generate(args[1]); // We want all the xml:lang attributes from all our lookup node's ancestors NodeTest *nt = createNodeTest(Node::element_string); QueryPathNode dummy(nt, QueryPathNode::CHILD, mm_); PathResult ancestorResult; QueryPathNode::Vector::const_iterator it; for(it = nodeResult.returnPaths.begin(); it != nodeResult.returnPaths.end(); ++it) { generateAncestorOrSelfStep(*it, dummy, ancestorResult); } NodeTest *nt2 = createNodeTest(Node::attribute_string, XMLUni::fgXMLURIName, mm_->getPooledString("lang")); QueryPathNode dummy2(nt2, QueryPathNode::ATTRIBUTE, mm_); PathResult attrResult; for(it = ancestorResult.returnPaths.begin(); it != ancestorResult.returnPaths.end(); ++it) { generateBuiltInStep(*it, dummy2, attrResult); } attrResult.markSubtreeValue(); } else if(name == FunctionBaseURI::name) { PathResult nodeResult = generate(args[0]); // We want all the xml:base attributes from all our lookup node's ancestors NodeTest *nt = createNodeTest(Node::element_string); QueryPathNode dummy(nt, QueryPathNode::CHILD, mm_); PathResult ancestorResult; QueryPathNode::Vector::const_iterator it; for(it = nodeResult.returnPaths.begin(); it != nodeResult.returnPaths.end(); ++it) { generateAncestorOrSelfStep(*it, dummy, ancestorResult); } NodeTest *nt2 = createNodeTest(Node::attribute_string, XMLUni::fgXMLURIName, mm_->getPooledString("base")); QueryPathNode dummy2(nt2, QueryPathNode::ATTRIBUTE, mm_); PathResult attrResult; for(it = ancestorResult.returnPaths.begin(); it != ancestorResult.returnPaths.end(); ++it) { generateBuiltInStep(*it, dummy2, attrResult); } attrResult.markSubtreeValue(); } // These implicitly use the value of the current context if they have no parameters else if((name == FunctionStringLength::name || name == FunctionNormalizeSpace::name || name == FunctionNumber::name || name == FunctionString::name) && args.empty()) { const PathResult ¤tContext = getCurrentContext(); currentContext.markSubtreeValue(); } else if(name == FunctionString::name) { generate(args[0]).markSubtreeValue(); } else { for(VectorOfASTNodes::iterator i = args.begin(); i != args.end(); ++i) { generate(*i); } } } else if(uri == XQillaFunction::XMLChFunctionURI) { if(name == FunctionParseXML::name) { // Returns a document, much the same as fn:doc() generate(args[0]); QueryPathNode *root = ((FunctionParseXML*)item)->getQueryPathTree(); if(!root) { NodeTest *nt = createNodeTest(Node::document_string); root = createQueryPathNode(nt, QueryPathNode::ROOT); ((FunctionParseXML*)item)->setQueryPathTree(root); } result.join(root); } else if(name == FunctionParseJSON::name) { // Returns a sequence of elements generate(args[0]); QueryPathNode *root = ((FunctionParseJSON*)item)->getQueryPathTree(); if(!root) { NodeTest *nt = createNodeTest(Node::element_string); root = createQueryPathNode(nt, QueryPathNode::CHILD); ((FunctionParseJSON*)item)->setQueryPathTree(root); } result.join(root); } else if(name == FunctionExplain::name) { // Returns a sequence of elements generate(args[0]); QueryPathNode *root = ((FunctionExplain*)item)->getQueryPathTree(); if(!root) { NodeTest *nt = createNodeTest(Node::element_string); root = createQueryPathNode(nt, QueryPathNode::CHILD); ((FunctionExplain*)item)->setQueryPathTree(root); } result.join(root); } else { // We don't know about this function, assume it will only need the descendants of it's node arguments for(VectorOfASTNodes::iterator i = args.begin(); i != args.end(); ++i) { generate(*i).markSubtreeResult(); } } } else { // We don't know about this function, assume it will only need the descendants of it's node arguments for(VectorOfASTNodes::iterator i = args.begin(); i != args.end(); ++i) { generate(*i).markSubtreeResult(); } } push(result); return item; } class ArgHolder { public: ArgHolder(const XMLCh *u, const XMLCh *n, const QueryPathTreeGenerator::PathResult &v) : uri(u), name(n), value(v) {} const XMLCh *uri, *name; QueryPathTreeGenerator::PathResult value; }; ASTNode *QueryPathTreeGenerator::optimizeUserFunction(XQUserFunctionInstance *item) { PathResult result; VectorOfASTNodes &args = const_cast(item->getArguments()); const XQUserFunction *functionDef = item->getFunctionDefinition(); // Evaluate the arguments in the current scope, declare them in the function's scope vector evaluatedArgs; if(functionDef->getSignature()->argSpecs) { ArgumentSpecs::const_iterator binding = functionDef->getSignature()->argSpecs->begin(); for(VectorOfASTNodes::iterator arg = args.begin(); arg != args.end() && binding != functionDef->getSignature()->argSpecs->end(); ++arg, ++binding) { PathResult r = generate(*arg); if((*binding)->isUsed()) { evaluatedArgs.push_back(ArgHolder((*binding)->getURI(), (*binding)->getName(), r)); } } } if(functionDef->getFunctionBody() != 0) { // Check to see if this user function is recursing into a user function // that has already been called. pair::iterator, bool> ins = userFunctionStack_.insert(functionDef->getFunctionBody()); if(ins.second) { varStore_.addScope(VarStore::MyScope::LOCAL_SCOPE); for(vector::iterator it = evaluatedArgs.begin(); it != evaluatedArgs.end(); ++it) { setVariable(it->uri, it->name, it->value); } PathResult ret = generate(const_cast(functionDef->getFunctionBody())); result.join(ret); delete varStore_.popScope(); userFunctionStack_.erase(ins.first); push(result); return item; } } // All we can really do if it is recursive is to mark the entire tree as needed // TBD see if we can handle recursive user functions better - jpcs for(vector::iterator it = evaluatedArgs.begin(); it != evaluatedArgs.end(); ++it) { it->value.markRoot(); } push(result); return item; } ASTNode *QueryPathTreeGenerator::optimizeOperator(XQOperator *item) { PathResult result; VectorOfASTNodes &args = const_cast(item->getArguments()); const XMLCh *name = item->getOperatorName(); if(name == Union::name) { PathResult ret = generate(args[0]); result.join(ret); ret = generate(args[1]); result.join(ret); } else if(name == Intersect::name) { PathResult ret = generate(args[0]); result.join(ret); ret = generate(args[1]); result.join(ret); } else if(name == Except::name) { result = generate(args[0]); generate(args[1]); } else { for(VectorOfASTNodes::iterator i = args.begin(); i != args.end(); ++i) { generate(*i); } } push(result); return item; } ASTNode *QueryPathTreeGenerator::optimizeSequence(XQSequence *item) { VectorOfASTNodes &args = const_cast(item->getChildren()); PathResult result; for(VectorOfASTNodes::iterator i = args.begin(); i != args.end(); ++i) { PathResult ret = generate(*i); result.join(ret); } push(result); return item; } ASTNode *QueryPathTreeGenerator::optimizeVariable(XQVariable *item) { VarStoreRef *ref = varStore_.getVar(item->getURI(), item->getName()); PathResult result; if(ref != 0) { result = ref->getValue(); } else { // Undeclared global variable - we'll declare it here createAnyNodeResult(result); varStore_.setGlobalVar(item->getURI(), item->getName(), result); } push(result); return item; } ASTNode *QueryPathTreeGenerator::optimizeIf(XQIf *item) { PathResult result; PathResult test = generate(const_cast(item->getTest())); PathResult ret = generate(const_cast(item->getWhenTrue())); result.join(ret); ret = generate(const_cast(item->getWhenFalse())); result.join(ret); push(result); return item; } TupleNode *QueryPathTreeGenerator::optimizeForTuple(ForTuple *item) { optimizeTupleNode(const_cast(item->getParent())); PathResult r = generate(item->getExpression()); if(item->getVarName()) { setVariable(item->getVarURI(), item->getVarName(), r); } if(item->getPosName()) { setVariable(item->getPosURI(), item->getPosName(), PathResult()); } return item; } TupleNode *QueryPathTreeGenerator::optimizeLetTuple(LetTuple *item) { optimizeTupleNode(const_cast(item->getParent())); PathResult r = generate(item->getExpression()); if(item->getVarName()) { setVariable(item->getVarURI(), item->getVarName(), r); } return item; } TupleNode *QueryPathTreeGenerator::optimizeWhereTuple(WhereTuple *item) { optimizeTupleNode(const_cast(item->getParent())); generate(item->getExpression()); return item; } TupleNode *QueryPathTreeGenerator::optimizeCountTuple(CountTuple *item) { optimizeTupleNode(const_cast(item->getParent())); return item; } TupleNode *QueryPathTreeGenerator::optimizeOrderByTuple(OrderByTuple *item) { optimizeTupleNode(const_cast(item->getParent())); generate(item->getExpression()); return item; } TupleNode *QueryPathTreeGenerator::optimizeTupleDebugHook(TupleDebugHook *item) { optimizeTupleNode(const_cast(item->getParent())); return item; } ASTNode *QueryPathTreeGenerator::optimizeReturn(XQReturn *item) { varStore_.addScope(VarStore::MyScope::LOGICAL_BLOCK_SCOPE); optimizeTupleNode(const_cast(item->getParent())); PathResult result = generate(item->getExpression()); delete varStore_.popScope(); push(result); return item; } ASTNode *QueryPathTreeGenerator::optimizeQuantified(XQQuantified *item) { varStore_.addScope(VarStore::MyScope::LOGICAL_BLOCK_SCOPE); optimizeTupleNode(const_cast(item->getParent())); generate(item->getExpression()); delete varStore_.popScope(); push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeTypeswitch(XQTypeswitch *item) { PathResult result; PathResult expr = generate(const_cast(item->getExpression())); XQTypeswitch::Cases *clauses = const_cast(item->getCases()); for(XQTypeswitch::Cases::iterator i = clauses->begin(); i != clauses->end(); ++i) { if((*i)->isVariableUsed()) { varStore_.addScope(VarStore::MyScope::LOGICAL_BLOCK_SCOPE); setVariable((*i)->getURI(), (*i)->getName(), expr); } PathResult ret = generate((*i)->getExpression()); result.join(ret); if((*i)->isVariableUsed()) { delete varStore_.popScope(); } } XQTypeswitch::Case *def = const_cast(item->getDefaultCase()); if(def->isVariableUsed()) { varStore_.addScope(VarStore::MyScope::LOGICAL_BLOCK_SCOPE); setVariable(def->getURI(), def->getName(), expr); } PathResult ret = generate(def->getExpression()); result.join(ret); if(def->isVariableUsed()) { delete varStore_.popScope(); } push(result); return item; } ASTNode *QueryPathTreeGenerator::optimizeDOMConstructor(XQDOMConstructor *item) { PathResult result; if(item->getName()) { generate(const_cast(item->getName())); } VectorOfASTNodes *attrs = const_cast(item->getAttributes()); if(attrs) { for(VectorOfASTNodes::iterator i = attrs->begin(); i != attrs->end(); ++i) { generate(*i).markSubtreeResult(); } } VectorOfASTNodes *children = const_cast(item->getChildren()); if(children) { for(VectorOfASTNodes::iterator j = children->begin(); j != children->end(); ++j) { generate(*j).markSubtreeResult(); } } if(item->getValue()) { generate(const_cast(item->getValue())); } if(!item->getQueryPathTree()) { if(item->getNodeType() == Node::document_string) { item->setQueryPathTree(createQueryPathNode(createNodeTest(Node::document_string), QueryPathNode::ROOT)); } else if(item->getNodeType() == Node::element_string) { item->setQueryPathTree(createQueryPathNode(createNodeTest(Node::element_string), QueryPathNode::CHILD)); } else if(item->getNodeType() == Node::attribute_string) { item->setQueryPathTree(createQueryPathNode(createNodeTest(Node::attribute_string), QueryPathNode::ATTRIBUTE)); } else { item->setQueryPathTree(createQueryPathNode(createNodeTest((XMLCh*)0), QueryPathNode::CHILD)); } } result.join(item->getQueryPathTree()); push(result); return item; } ASTNode *QueryPathTreeGenerator::optimizeSimpleContent(XQSimpleContent *item) { VectorOfASTNodes *children = const_cast(item->getChildren()); if(children) { for(VectorOfASTNodes::iterator j = children->begin(); j != children->end(); ++j) { generate(*j); } } push(PathResult()); return item; } QueryPathTreeGenerator::PathResult QueryPathTreeGenerator::copyNodes(const PathResult &r) { // Emulate copying the nodes PathResult copyResult; r.markSubtreeResult(); NodeTest *nt = createNodeTest(Node::document_string); QueryPathNode *root = createQueryPathNode(nt, QueryPathNode::ROOT); QueryPathNode::Vector::const_iterator j = r.returnPaths.begin(); for(; j != r.returnPaths.end(); ++j) { switch((*j)->getType()) { case QueryPathNode::ATTRIBUTE: { QueryPathNode *pisn = createQueryPathNode(createNodeTest(Node::element_string), QueryPathNode::DESCENDANT); pisn = root->appendChild(pisn); copyResult.join(pisn->appendChild(createQueryPathNode((*j)->getNodeTest(), QueryPathNode::ATTRIBUTE))); break; } case QueryPathNode::CHILD: case QueryPathNode::DESCENDANT: { copyResult.join(root->appendChild(createQueryPathNode((*j)->getNodeTest(), QueryPathNode::DESCENDANT))); break; } case QueryPathNode::ROOT: { copyResult.join(root); break; } default: break; } } return copyResult; } ASTNode *QueryPathTreeGenerator::optimizeContentSequence(XQContentSequence *item) { push(copyNodes(generate(const_cast(item->getExpression())))); return item; } ASTNode *QueryPathTreeGenerator::optimizeDirectName(XQDirectName *item) { push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeContextItem(XQContextItem *item) { push(getCurrentContext()); return item; } ASTNode *QueryPathTreeGenerator::optimizeLiteral(XQLiteral *item) { push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeQNameLiteral(XQQNameLiteral *item) { push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeNumericLiteral(XQNumericLiteral *item) { push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeFunctionRef(XQFunctionRef *item) { push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeAtomize(XQAtomize *item) { generate(const_cast(item->getExpression())).markSubtreeValue(); push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeEffectiveBooleanValue(XQEffectiveBooleanValue *item) { generate(const_cast(item->getExpression())); push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeMap(XQMap *item) { PathResult result = generate(item->getArg1()); varStore_.addScope(VarStore::MyScope::LOGICAL_BLOCK_SCOPE); if(item->getName() == 0) { setCurrentContext(result); } else { setVariable(item->getURI(), item->getName(), result); } result = generate(item->getArg2()); delete varStore_.popScope(); push(result); return item; } ASTNode *QueryPathTreeGenerator::optimizeValidate(XQValidate *item) { push(copyNodes(generate(const_cast(item->getExpression())))); return item; } ASTNode *QueryPathTreeGenerator::optimizePredicate(XQPredicate *item) { PathResult result = generate(const_cast(item->getExpression())); varStore_.addScope(VarStore::MyScope::LOGICAL_BLOCK_SCOPE); setCurrentContext(result); generate(const_cast(item->getPredicate())); delete varStore_.popScope(); push(result); return item; } ASTNode *QueryPathTreeGenerator::optimizeUDelete(UDelete *item) { // Any tree that is updated can't be document projected generate(const_cast(item->getExpression())).markRoot(); push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeURename(URename *item) { // Any tree that is updated can't be document projected generate(const_cast(item->getTarget())).markRoot(); generate(const_cast(item->getName())); push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeUReplace(UReplace *item) { // Any tree that is updated can't be document projected generate(const_cast(item->getTarget())).markRoot(); generate(const_cast(item->getExpression())).markSubtreeResult(); push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeUReplaceValueOf(UReplaceValueOf *item) { // Any tree that is updated can't be document projected generate(const_cast(item->getTarget())).markRoot(); generate(const_cast(item->getExpression())); push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeUInsertAsFirst(UInsertAsFirst *item) { // Any tree that is updated can't be document projected generate(const_cast(item->getTarget())).markRoot(); generate(const_cast(item->getSource())).markSubtreeResult(); push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeUInsertAsLast(UInsertAsLast *item) { // Any tree that is updated can't be document projected generate(const_cast(item->getTarget())).markRoot(); generate(const_cast(item->getSource())).markSubtreeResult(); push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeUInsertInto(UInsertInto *item) { // Any tree that is updated can't be document projected generate(const_cast(item->getTarget())).markRoot(); generate(const_cast(item->getSource())).markSubtreeResult(); push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeUInsertAfter(UInsertAfter *item) { // Any tree that is updated can't be document projected generate(const_cast(item->getTarget())).markRoot(); generate(const_cast(item->getSource())).markSubtreeResult(); push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeUInsertBefore(UInsertBefore *item) { // Any tree that is updated can't be document projected generate(const_cast(item->getTarget())).markRoot(); generate(const_cast(item->getSource())).markSubtreeResult(); push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeUTransform(UTransform *item) { varStore_.addScope(VarStore::MyScope::LOGICAL_BLOCK_SCOPE); VectorOfCopyBinding *bindings = const_cast(item->getBindings()); for(VectorOfCopyBinding::iterator i = bindings->begin(); i != bindings->end(); ++i) { setVariable((*i)->uri_, (*i)->name_, generate((*i)->expr_)); } generate(const_cast(item->getModifyExpr())); PathResult result = generate(const_cast(item->getReturnExpr())); delete varStore_.popScope(); push(result); return item; } ASTNode *QueryPathTreeGenerator::optimizeFunctionCall(XQFunctionCall *item) { // Shouldn't happen VectorOfASTNodes *args = const_cast(item->getArguments()); for(VectorOfASTNodes::iterator i = args->begin(); i != args->end(); ++i) { generate(*i); } push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeFTContains(FTContains *item) { generate(item->getArgument()); optimizeFTSelection(item->getSelection()); if(item->getIgnore()) generate(item->getIgnore()); push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeAnalyzeString(XQAnalyzeString *item) { PathResult result; generate(item->getExpression()); generate(item->getRegex()); if(item->getFlags()) generate(item->getFlags()); varStore_.addScope(VarStore::MyScope::LOGICAL_BLOCK_SCOPE); setCurrentContext(PathResult()); result.join(generate(item->getMatch())); result.join(generate(item->getNonMatch())); delete varStore_.popScope(); push(result); return item; } ASTNode *QueryPathTreeGenerator::optimizeCopyOf(XQCopyOf *item) { push(copyNodes(generate(const_cast(item->getExpression())))); return item; } ASTNode *QueryPathTreeGenerator::optimizeCopy(XQCopy *item) { VectorOfASTNodes &children = const_cast(item->getChildren()); for(VectorOfASTNodes::iterator j = children.begin(); j != children.end(); ++j) { generate(*j).markSubtreeResult(); } push(copyNodes(generate(const_cast(item->getExpression())))); return item; } ASTNode *QueryPathTreeGenerator::optimizeCallTemplate(XQCallTemplate *item) { // TBD Could be better - jpcs context_->setProjection(false); TemplateArguments *args = item->getArguments(); if(args != 0) { for(TemplateArguments::iterator i = args->begin(); i != args->end(); ++i) { generate((*i)->value).markRoot(); } } if(item->getASTName()) generate(item->getASTName()); push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeApplyTemplates(XQApplyTemplates *item) { // TBD Could be better - jpcs context_->setProjection(false); PathResult res = generate(const_cast(item->getExpression())); // varStore_.addScope(VarStore::MyScope::LOGICAL_BLOCK_SCOPE); // setCurrentContext(res); // delete varStore_.popScope(); TemplateArguments *args = item->getArguments(); if(args != 0) { for(TemplateArguments::iterator i = args->begin(); i != args->end(); ++i) { generate((*i)->value).markRoot(); } } push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeInlineFunction(XQInlineFunction *item) { if(item->getUserFunction()) optimizeFunctionDef(item->getUserFunction()); const ArgumentSpecs *params = item->getSignature()->argSpecs; if(params) { varStore_.addScope(VarStore::MyScope::LOCAL_SCOPE); ArgumentSpecs::const_iterator it = params->begin(); unsigned int c = 0; for(; it != params->end(); ++it, ++c) { PathResult paramRes; if((*it)->getStaticAnalysis().getStaticType().containsType(StaticType::NODE_TYPE)) createAnyNodeResult(paramRes); setVariable((*it)->getURI(), (*it)->getName(), paramRes); } } generate(item->getInstance()).markSubtreeResult(); if(params) { delete varStore_.popScope(); } push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizeFunctionDeref(XQFunctionDeref *item) { // TBD Could be better - jpcs context_->setProjection(false); // We could trace which function instances could possibly be called here // and treat the function dereference as the union of all the functions // it could call. generate(item->getExpression()); VectorOfASTNodes *args = const_cast(item->getArguments()); if(args) { for(VectorOfASTNodes::iterator i = args->begin(); i != args->end(); ++i) { generate(*i).markRoot(); } } push(PathResult()); return item; } ASTNode *QueryPathTreeGenerator::optimizePartialApply(XQPartialApply *item) { // TBD Could be better - jpcs context_->setProjection(false); // We could trace which function instances could possibly be called here // and treat the function dereference as the union of all the functions // it could call. generate(item->getExpression()); VectorOfASTNodes *args = const_cast(item->getArguments()); if(args) { for(VectorOfASTNodes::iterator i = args->begin(); i != args->end(); ++i) { if(*i != 0) generate(*i).markRoot(); } } push(PathResult()); return item; } #define UNCHANGED_FULL(methodname, classname) \ ASTNode *QueryPathTreeGenerator::optimize ## methodname (classname *item) \ { \ return ASTVisitor::optimize ## methodname (item); \ } #define UNCHANGED_XQ(name) UNCHANGED_FULL(name, XQ ## name) #define UNCHANGED(name) UNCHANGED_FULL(name, name) UNCHANGED_XQ(NameExpression) UNCHANGED_XQ(CastAs) UNCHANGED_XQ(TreatAs) UNCHANGED_XQ(FunctionCoercion) UNCHANGED_XQ(OrderingChange) UNCHANGED_XQ(CastableAs) UNCHANGED_XQ(PromoteUntyped) UNCHANGED_XQ(PromoteNumeric) UNCHANGED_XQ(PromoteAnyURI) UNCHANGED_XQ(DocumentOrder) UNCHANGED(UApplyUpdates) UNCHANGED_XQ(NamespaceBinding) UNCHANGED_XQ(FunctionConversion) UNCHANGED(ASTDebugHook) #define UNCHANGED_FT(classname) \ FTSelection *QueryPathTreeGenerator::optimize ## classname (classname *item) \ { \ return ASTVisitor::optimize ## classname (item); \ } UNCHANGED_FT(FTWords) UNCHANGED_FT(FTWord) UNCHANGED_FT(FTMildnot) UNCHANGED_FT(FTUnaryNot) UNCHANGED_FT(FTOrder) UNCHANGED_FT(FTDistance) UNCHANGED_FT(FTDistanceLiteral) UNCHANGED_FT(FTScope) UNCHANGED_FT(FTContent) UNCHANGED_FT(FTWindow) UNCHANGED_FT(FTWindowLiteral) UNCHANGED_FT(FTOr) UNCHANGED_FT(FTAnd) ASTNode *QueryPathTreeGenerator::optimizeUnknown(ASTNode *item) { return ASTVisitor::optimizeUnknown(item); } TupleNode *QueryPathTreeGenerator::optimizeUnknownTupleNode(TupleNode *item) { return ASTVisitor::optimizeUnknownTupleNode(item); } FTSelection *QueryPathTreeGenerator::optimizeUnknownFTSelection(FTSelection *selection) { return ASTVisitor::optimizeUnknownFTSelection(selection); } TupleNode *QueryPathTreeGenerator::optimizeContextTuple(ContextTuple *item) { return ASTVisitor::optimizeContextTuple(item); } //////////////////////////////////////////////////////////////////////////////////////////////////// void QueryPathTreeGenerator::PathResult::join(const QueryPathNode::MVector &o) { returnPaths.insert(returnPaths.begin(), o.begin(), o.end()); } void QueryPathTreeGenerator::PathResult::join(const PathResult &o) { returnPaths.insert(returnPaths.begin(), o.returnPaths.begin(), o.returnPaths.end()); } void QueryPathTreeGenerator::PathResult::join(QueryPathNode *o) { returnPaths.push_back(o); } void QueryPathTreeGenerator::PathResult::markSubtreeValue() const { // Mark the paths as needing the subtree for(QueryPathNode::Vector::const_iterator it = returnPaths.begin(); it != returnPaths.end(); ++it) { (*it)->markSubtreeValue(); } } void QueryPathTreeGenerator::PathResult::markSubtreeResult() const { // Mark the paths as needing the subtree for(QueryPathNode::Vector::const_iterator it = returnPaths.begin(); it != returnPaths.end(); ++it) { (*it)->markSubtreeResult(); } } void QueryPathTreeGenerator::PathResult::markRoot() const { // Mark the paths as needing the entire tree for(QueryPathNode::Vector::const_iterator it = returnPaths.begin(); it != returnPaths.end(); ++it) { (*it)->getRoot()->markSubtreeResult(); } } XQilla-2.3.0/src/optimizer/ASTToXML.cpp0000644000151400015140000013104611653565523014473 00000000000000/* * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ // #define SHOW_QUERY_PATH_TREES // #define SHOW_HIDDEN_AST #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; using namespace std; static const XMLCh s_name[] = { 'n', 'a', 'm', 'e', 0 }; static const XMLCh s_type[] = { 't', 'y', 'p', 'e', 0 }; static const XMLCh s_value[] = { 'v', 'a', 'l', 'u', 'e', 0 }; static const XMLCh s_true[] = { 't', 'r', 'u', 'e', 0 }; static const XMLCh s_false[] = { 'f', 'a', 'l', 's', 'e', 0 }; static const XMLCh s_uri[] = { 'u', 'r', 'i', 0 }; static const XMLCh s_prefix[] = { 'p', 'r', 'e', 'f', 'i', 'x', 0 }; static const XMLCh s_localname[] = { 'l', 'o', 'c', 'a', 'l', 'n', 'a', 'm', 'e', 0 }; static const XMLCh s_units[] = { 'u', 'n', 'i', 't', 's', 0 }; static const XMLCh s_distance[] = { 'd', 'i', 's', 't', 'a', 'n', 'c', 'e', 0 }; static const XMLCh s_unknown[] = { 'u', 'n', 'k', 'n', 'o', 'w', 'n', 0 }; static const XMLCh s_Binding[] = { 'B', 'i', 'n', 'd', 'i', 'n', 'g', 0 }; ASTToXML::ASTToXML() : events_(0), context_(0), indent_(0), hasChildren_(false) { } string ASTToXML::print(const XQQuery *query, const DynamicContext *context) { MemBufFormatTarget target; EventSerializer writer((char*)"UTF-8", (char*)"1.0", &target); run(query, &writer, context); return string((char*)target.getRawBuffer(), target.getLen()); } string ASTToXML::print(const XQUserFunction *item, const DynamicContext *context) { MemBufFormatTarget target; EventSerializer writer((char*)"UTF-8", (char*)"1.0", &target); run(item, &writer, context); return string((char*)target.getRawBuffer(), target.getLen()); } string ASTToXML::print(const ASTNode *item, const DynamicContext *context) { MemBufFormatTarget target; EventSerializer writer((char*)"UTF-8", (char*)"1.0", &target); run(item, &writer, context); return string((char*)target.getRawBuffer(), target.getLen()); } string ASTToXML::print(const TupleNode *item, const DynamicContext *context) { MemBufFormatTarget target; EventSerializer writer((char*)"UTF-8", (char*)"1.0", &target); run(item, &writer, context); return string((char*)target.getRawBuffer(), target.getLen()); } void ASTToXML::run(const XQQuery *query, EventHandler *events, const DynamicContext *context) { events_ = events; context_ = context; indent_ = 0; hasChildren_ = true; optimize((XQQuery*)query); } void ASTToXML::run(const ASTNode *item, EventHandler *events, const DynamicContext *context) { events_ = events; context_ = context; indent_ = 0; hasChildren_ = true; optimize((ASTNode*)item); } void ASTToXML::run(const TupleNode *item, EventHandler *events, const DynamicContext *context) { events_ = events; context_ = context; indent_ = 0; hasChildren_ = true; optimizeTupleNode((TupleNode*)item); } void ASTToXML::run(const XQUserFunction *item, EventHandler *events, const DynamicContext *context) { events_ = events; context_ = context; indent_ = 0; hasChildren_ = true; optimizeFunctionDef((XQUserFunction*)item); } void ASTToXML::optimize(XQQuery *query) { static const XMLCh s_Module[] = { 'M', 'o', 'd', 'u', 'l', 'e', 0 }; static const XMLCh s_XQuery[] = { 'X', 'Q', 'u', 'e', 'r', 'y', 0 }; static const XMLCh s_targetNamespace[] = { 't', 'a', 'r', 'g', 'e', 't', 'N', 'a', 'm', 'e', 's', 'p', 'a', 'c', 'e', 0 }; // static const XMLCh s_ImportedModule[] = { 'I', 'm', 'p', 'o', 'r', 't', 'e', 'd', 'M', 'o', 'd', 'u', 'l', 'e', 0 }; if(!hasChildren_) newline(); indent(); events_->startElementEvent(0, 0, query->getIsLibraryModule() ? s_Module : s_XQuery); if(query->getModuleTargetNamespace()) { events_->attributeEvent(0, 0, s_targetNamespace, query->getModuleTargetNamespace(), 0, 0); } { AutoReset resetIndent(indent_); ++indent_; hasChildren_ = false; // const ImportedModules &modules = query->getImportedModules(); // for(it1 = modules.begin(); it1 != modules.end(); ++it1) { // indent(); // events_->startElementEvent(0, 0, s_ImportedModule : s_XQuery); // events_->attributeEvent(0, 0, s_targetNamespace, (*it1)->getModuleTargetNamespace(), 0, 0); // events_->endElementEvent(0, 0, s_ImportedModule, 0, 0); // newline(); // } ASTVisitor::optimize(query); } if(hasChildren_) indent(); events_->endElementEvent(0, 0, query->getIsLibraryModule() ? s_Module : s_XQuery, 0, 0); newline(); hasChildren_ = true; } XQGlobalVariable *ASTToXML::optimizeGlobalVar(XQGlobalVariable *item) { static const XMLCh s_GlobalParam[] = { 'G', 'l', 'o', 'b', 'a', 'l', 'P', 'a', 'r', 'a', 'm', 0 }; static const XMLCh s_GlobalVar[] = { 'G', 'l', 'o', 'b', 'a', 'l', 'V', 'a', 'r', 0 }; static const XMLCh s_external[] = { 'e', 'x', 't', 'e', 'r', 'n', 'a', 'l', 0 }; if(!hasChildren_) newline(); indent(); events_->startElementEvent(0, 0, item->isParam() ? s_GlobalParam : s_GlobalVar); XMLBuffer buf; qname(item->getVariableName(), 0, item->getVariableURI(), item->getVariableLocalName(), buf); events_->attributeEvent(0, 0, s_name, buf.getRawBuffer(), 0, 0); if(item->isExternal()) events_->attributeEvent(0, 0, s_external, s_true, 0, 0); { AutoReset resetIndent(indent_); ++indent_; hasChildren_ = false; if(item->getSequenceType()) optimizeSequenceType(item->getSequenceType()); ASTVisitor::optimizeGlobalVar(item); } if(hasChildren_) indent(); events_->endElementEvent(0, 0, item->isParam() ? s_GlobalParam : s_GlobalVar, 0, 0); newline(); hasChildren_ = true; return item; } XQUserFunction *ASTToXML::optimizeFunctionDef(XQUserFunction *item) { static const XMLCh s_TemplateDefinition[] = { 'T', 'e', 'm', 'p', 'l', 'a', 't', 'e', 'D', 'e', 'f', 'i', 'n', 'i', 't', 'i', 'o', 'n', 0 }; static const XMLCh s_FunctionDefinition[] = { 'F', 'u', 'n', 'c', 't', 'i', 'o', 'n', 'D', 'e', 'f', 'i', 'n', 'i', 't', 'i', 'o', 'n', 0 }; static const XMLCh s_Pattern[] = { 'P', 'a', 't', 't', 'e', 'r', 'n', 0 }; if(!hasChildren_) newline(); indent(); events_->startElementEvent(0, 0, item->isTemplate() ? s_TemplateDefinition : s_FunctionDefinition); if(item->getQName() != 0 || item->getName() != 0) { XMLBuffer buf; qname(item->getQName(), 0, item->getURI(), item->getName(), buf); events_->attributeEvent(0, 0, s_name, buf.getRawBuffer(), 0, 0); } optimizeFunctionSignature(item->getSignature()); { AutoReset resetIndent(indent_); ++indent_; hasChildren_ = false; if(item->getPattern()) { if(!hasChildren_) newline(); indent(); events_->startElementEvent(0, 0, s_Pattern); { AutoReset resetIndent(indent_); ++indent_; hasChildren_ = false; VectorOfASTNodes::iterator patIt = item->getPattern()->begin(); for(; patIt != item->getPattern()->end(); ++patIt) { optimize(*patIt); } } if(hasChildren_) indent(); events_->endElementEvent(0, 0, s_Pattern, 0, 0); newline(); hasChildren_ = true; } if(item->getFunctionBody()) optimize((ASTNode*)item->getFunctionBody()); } if(hasChildren_) indent(); events_->endElementEvent(0, 0, item->isTemplate() ? s_TemplateDefinition : s_FunctionDefinition, 0, 0); newline(); hasChildren_ = true; return item; } void ASTToXML::getElementName(ASTNode *item, XMLBuffer &buf) { if(!item) { buf.append(X("Null")); return; } switch(item->getType()) { case ASTNode::LITERAL: buf.append(X("Literal")); break; case ASTNode::QNAME_LITERAL: buf.append(X("QNameLiteral")); break; case ASTNode::NUMERIC_LITERAL: buf.append(X("NumericLiteral")); break; case ASTNode::SEQUENCE: buf.append(X("Sequence")); break; case ASTNode::FUNCTION: buf.append(X("Function")); break; case ASTNode::NAVIGATION: buf.append(X("Nav")); break; case ASTNode::VARIABLE: buf.append(X("Variable")); break; case ASTNode::STEP: buf.append(X("Step")); break; case ASTNode::IF: buf.append(X("If")); break; case ASTNode::CASTABLE_AS: buf.append(X("CastableAs")); break; case ASTNode::CAST_AS: buf.append(X("CastAs")); break; case ASTNode::TREAT_AS: buf.append(X("TreatAs")); break; case ASTNode::FUNCTION_COERCION: buf.append(X("FunctionCoercion")); break; case ASTNode::OPERATOR: buf.append(((XQOperator*)item)->getOperatorName()); break; case ASTNode::CONTEXT_ITEM: buf.append(X("ContextItem")); break; case ASTNode::RETURN: buf.append(X("Return")); break; case ASTNode::QUANTIFIED: buf.append(((XQQuantified*)item)->getQuantifierType() == XQQuantified::SOME ? X("Some") : X("Every")); break; case ASTNode::TYPESWITCH: buf.append(X("Typeswitch")); break; case ASTNode::VALIDATE: buf.append(X("Validate")); break; case ASTNode::FUNCTION_CALL: buf.append(X("FunctionCall")); break; case ASTNode::DOM_CONSTRUCTOR: buf.append(X("NodeConstructor")); break; case ASTNode::SIMPLE_CONTENT: buf.append(X("SimpleContent")); break; case ASTNode::ORDERING_CHANGE: if(((XQOrderingChange*)item)->getOrderingValue() == StaticContext::ORDERING_ORDERED) buf.append(X("Ordered")); else buf.append(X("Unordered")); break; case ASTNode::ATOMIZE: buf.append(X("Atomize")); break; case ASTNode::EBV: buf.append(X("EffectiveBooleanValue")); break; case ASTNode::MAP: buf.append(X("Map")); break; case ASTNode::PROMOTE_UNTYPED: buf.append(X("PromoteUntyped")); break; case ASTNode::PROMOTE_NUMERIC: buf.append(X("PromoteNumeric")); break; case ASTNode::PROMOTE_ANY_URI: buf.append(X("PromoteAnyURI")); break; case ASTNode::DOCUMENT_ORDER: buf.append((((XQDocumentOrder*)item)->getUnordered()) ? X("UniqueNodes") : X("DocumentOrder")); break; case ASTNode::PREDICATE: buf.append(X("Predicate")); break; case ASTNode::USER_FUNCTION: buf.append(((XQUserFunctionInstance*)item)->getFunctionDefinition()->isTemplate() ? X("Template") : X("UserFunction")); break; case ASTNode::NAME_EXPRESSION: buf.append(X("NameExpression")); break; case ASTNode::CONTENT_SEQUENCE: buf.append(X("ContentSequence")); break; case ASTNode::DIRECT_NAME: buf.append(X("DirectName")); break; case ASTNode::UDELETE: buf.append(X("UDelete")); break; case ASTNode::URENAME: buf.append(X("URename")); break; case ASTNode::UREPLACE: buf.append(X("UReplace")); break; case ASTNode::UREPLACE_VALUE_OF: buf.append(X("UReplaceValueOf")); break; case ASTNode::UINSERT_AS_FIRST: buf.append(X("UInsertAsFirst")); break; case ASTNode::UINSERT_AS_LAST: buf.append(X("UInsertAsLast")); break; case ASTNode::UINSERT_INTO: buf.append(X("UInsertInto")); break; case ASTNode::UINSERT_AFTER: buf.append(X("UInsertAfter")); break; case ASTNode::UINSERT_BEFORE: buf.append(X("UInsertBefore")); break; case ASTNode::UTRANSFORM: buf.append(X("UTransform")); break; case ASTNode::UAPPLY_UPDATES: buf.append(X("UApplyUpdates")); break; case ASTNode::FTCONTAINS: buf.append(X("FTContains")); break; case ASTNode::NAMESPACE_BINDING: buf.append(X("NamespaceBinding")); break; case ASTNode::FUNCTION_CONVERSION: buf.append(X("FunctionConversion")); break; case ASTNode::ANALYZE_STRING: buf.append(X("AnalyzeString")); break; case ASTNode::COPY_OF: buf.append(X("CopyOf")); break; case ASTNode::COPY: buf.append(X("Copy")); break; case ASTNode::DEBUG_HOOK: #ifdef SHOW_HIDDEN_AST buf.append(X("ASTDebugHook")); #endif break; case ASTNode::CALL_TEMPLATE: buf.append(X("CallTemplate")); break; case ASTNode::APPLY_TEMPLATES: buf.append(X("ApplyTemplates")); break; case ASTNode::INLINE_FUNCTION: buf.append(X("InlineFunction")); break; case ASTNode::FUNCTION_REF: buf.append(X("FunctionRef")); break; case ASTNode::FUNCTION_DEREF: buf.append(X("FunctionDeref")); break; case ASTNode::PARTIAL_APPLY: buf.append(X("PartialApply")); break; default: buf.append(X("Unknown")); break; } } ASTNode *ASTToXML::optimize(ASTNode *item) { XMLBuffer elementName; getElementName(item, elementName); if(elementName.getLen() == 0) return ASTVisitor::optimize(item); if(!hasChildren_) { // This is the first child newline(); } indent(); events_->startElementEvent(0, 0, elementName.getRawBuffer()); if(item) { AutoReset resetIndent(indent_); ++indent_; hasChildren_ = false; ASTVisitor::optimize(item); } if(hasChildren_) { // It's not an empty element indent(); } events_->endElementEvent(0, 0, elementName.getRawBuffer(), 0, 0); newline(); hasChildren_ = true; return item; } ASTNode *ASTToXML::optimizeFunction(XQFunction *item) { const XMLCh *funUri = item->getFunctionURI(); const XMLCh *funName = item->getFunctionName(); XMLBuffer buf; qname(0, 0, funUri, funName, buf); events_->attributeEvent(0, 0, s_name, buf.getRawBuffer(), 0, 0); // QueryPathNode *queryPathTree = 0; // #ifdef SHOW_QUERY_PATH_TREES // if(funUri == XQFunction::XMLChFunctionURI) { // if(funName == FunctionDoc::name) { // queryPathTree = ((FunctionDoc*)item)->getQueryPathTree(); // } // else if(funName == FunctionDocument::name) { // queryPathTree = ((FunctionDocument*)item)->getQueryPathTree(); // } // else if(funName == FunctionCollection::name) { // queryPathTree = ((FunctionCollection*)item)->getQueryPathTree(); // } // } // else if(funUri == XQillaFunction::XMLChFunctionURI) { // if(funName == FunctionParseXML::name) { // queryPathTree = ((FunctionParseXML*)item)->getQueryPathTree(); // } // else if(funName == FunctionParseJSON::name) { // queryPathTree = ((FunctionParseJSON*)item)->getQueryPathTree(); // } // else if(funName == FunctionExplain::name) { // queryPathTree = ((FunctionExplain*)item)->getQueryPathTree(); // } // } // #endif ASTVisitor::optimizeFunction(item); // if(queryPathTree) // queryPathTree->toString(indent + INDENT); return item; } ASTNode *ASTToXML::optimizeOperator(XQOperator *item) { static const XMLCh s_comparison[] = { 'c', 'o', 'm', 'p', 'a', 'r', 'i', 's', 'o', 'n', 0 }; static const XMLCh s_before[] = { 'b', 'e', 'f', 'o', 'r', 'e', 0 }; if(item->getOperatorName() == GeneralComp::name) { events_->attributeEvent(0, 0, s_comparison, getComparisonOperationName(((GeneralComp *)item)->getOperation()), 0, 0); } else if(item->getOperatorName() == OrderComparison::name) { events_->attributeEvent(0, 0, s_before, ((OrderComparison*)item)->getTestBefore() ? s_true : s_false, 0, 0); } return ASTVisitor::optimizeOperator(item); } ASTNode *ASTToXML::optimizeLiteral(XQLiteral *item) { events_->attributeEvent(0, 0, s_value, item->getValue(), 0, 0); XMLBuffer buf; qname(0, 0, item->getTypeURI(), item->getTypeName(), buf); events_->attributeEvent(0, 0, s_type, buf.getRawBuffer(), 0, 0); return ASTVisitor::optimizeLiteral(item); } ASTNode *ASTToXML::optimizeQNameLiteral(XQQNameLiteral *item) { events_->attributeEvent(0, 0, s_uri, item->getURI(), 0, 0); events_->attributeEvent(0, 0, s_prefix, item->getPrefix(), 0, 0); events_->attributeEvent(0, 0, s_localname, item->getLocalname(), 0, 0); XMLBuffer buf; qname(0, 0, item->getTypeURI(), item->getTypeName(), buf); events_->attributeEvent(0, 0, s_type, buf.getRawBuffer(), 0, 0); return ASTVisitor::optimizeQNameLiteral(item); } ASTNode *ASTToXML::optimizeNumericLiteral(XQNumericLiteral *item) { char obuf[1024]; m_apm_to_string_mt(obuf, item->getRawValue().m_apm_datalength, const_cast(&item->getRawValue())); events_->attributeEvent(0, 0, s_value, X(obuf), 0, 0); XMLBuffer buf; qname(0, 0, item->getTypeURI(), item->getTypeName(), buf); events_->attributeEvent(0, 0, s_type, buf.getRawBuffer(), 0, 0); return ASTVisitor::optimizeNumericLiteral(item); } void ASTToXML::optimizeNodeTest(const NodeTest *step) { static const XMLCh s_asterisk[] = { '*', 0 }; static const XMLCh s_nodeType[] = { 'n', 'o', 'd', 'e', 'T', 'y', 'p', 'e', 0 }; SequenceType::ItemType *type = step->getItemType(); if(type) { XMLBuffer buf; type->toBuffer(buf); events_->attributeEvent(0, 0, s_type, buf.getRawBuffer(), 0, 0); } else { if(step->getNamespaceWildcard()) { events_->attributeEvent(0, 0, s_uri, s_asterisk, 0, 0); } else { if(step->getNodePrefix() != 0) { events_->attributeEvent(0, 0, s_prefix, step->getNodePrefix(), 0, 0); } if(step->getNodeUri() != 0) { events_->attributeEvent(0, 0, s_uri, step->getNodeUri(), 0, 0); } } if(step->getNameWildcard()) { events_->attributeEvent(0, 0, s_localname, s_asterisk, 0, 0); } else if(step->getNodeName() != 0) { events_->attributeEvent(0, 0, s_localname, step->getNodeName(), 0, 0); } if(step->getTypeWildcard()) { events_->attributeEvent(0, 0, s_nodeType, s_asterisk, 0, 0); } else if(step->isNodeTypeSet()) { events_->attributeEvent(0, 0, s_nodeType, step->getNodeType(), 0, 0); } } } ASTNode *ASTToXML::optimizeStep(XQStep *item) { static const XMLCh s_axis[] = { 'a', 'x', 'i', 's', 0 }; events_->attributeEvent(0, 0, s_axis, getAxisName(item->getAxis()), 0, 0); optimizeNodeTest(item->getNodeTest()); return ASTVisitor::optimizeStep(item); } ASTNode *ASTToXML::optimizeVariable(XQVariable *item) { XMLBuffer buf; qname(0, item->getPrefix(), item->getURI(), item->getName(), buf); events_->attributeEvent(0, 0, s_name, buf.getRawBuffer(), 0, 0); return ASTVisitor::optimizeVariable(item); } ASTNode *ASTToXML::optimizeCastableAs(XQCastableAs *item) { ASTVisitor::optimizeCastableAs(item); optimizeSequenceType(item->getSequenceType()); return item; } ASTNode *ASTToXML::optimizeCastAs(XQCastAs *item) { ASTVisitor::optimizeCastAs(item); optimizeSequenceType(item->getSequenceType()); return item; } ASTNode *ASTToXML::optimizeTreatAs(XQTreatAs *item) { ASTVisitor::optimizeTreatAs(item); optimizeSequenceType(item->getSequenceType()); return item; } ASTNode *ASTToXML::optimizeFunctionCoercion(XQFunctionCoercion *item) { optimize(item->getExpression()); #ifdef SHOW_HIDDEN_AST if(item->getFuncConvert()) optimize(item->getFuncConvert()); #endif optimizeSequenceType(item->getSequenceType()); return item; } ASTNode *ASTToXML::optimizeFunctionConversion(XQFunctionConversion *item) { ASTVisitor::optimizeFunctionConversion(item); optimizeSequenceType(item->getSequenceType()); return item; } ASTNode *ASTToXML::optimizeUserFunction(XQUserFunctionInstance *item) { XMLBuffer buf; qname(0, 0, item->getFunctionURI(), item->getFunctionName(), buf); events_->attributeEvent(0, 0, s_name, buf.getRawBuffer(), 0, 0); if(item->getFunctionDefinition()->getSignature()->argSpecs) { VectorOfASTNodes &args = const_cast(item->getArguments()); ArgumentSpecs::const_iterator binding = item->getFunctionDefinition()->getSignature()->argSpecs->begin(); for(VectorOfASTNodes::const_iterator arg = args.begin(); arg != args.end() && binding != item->getFunctionDefinition()->getSignature()->argSpecs->end(); ++arg, ++binding) { if(!hasChildren_) newline(); indent(); events_->startElementEvent(0, 0, s_Binding); qname((*binding)->getQName(), 0, (*binding)->getURI(), (*binding)->getName(), buf); events_->attributeEvent(0, 0, s_name, buf.getRawBuffer(), 0, 0); { AutoReset resetIndent(indent_); ++indent_; hasChildren_ = false; optimize(*arg); } if(hasChildren_) indent(); events_->endElementEvent(0, 0, s_Binding, 0, 0); newline(); hasChildren_ = true; } } return item; } ASTNode *ASTToXML::optimizeTypeswitch(XQTypeswitch *item) { const XQTypeswitch::Cases *cases = item->getCases(); for(XQTypeswitch::Cases::const_iterator i = cases->begin(); i != cases->end(); ++i) { optimizeCase(*i); } optimizeCase(item->getDefaultCase()); return item; } void ASTToXML::optimizeCase(const XQTypeswitch::Case *cse) { static const XMLCh s_Case[] = { 'C', 'a', 's', 'e', 0 }; static const XMLCh s_Default[] = { 'D', 'e', 'f', 'a', 'u', 'l', 't', 0 }; if(!hasChildren_) newline(); indent(); events_->startElementEvent(0, 0, cse->getSequenceType() ? s_Case : s_Default); XMLBuffer buf; qname(cse->getQName(), 0, cse->getURI(), cse->getName(), buf); events_->attributeEvent(0, 0, s_name, buf.getRawBuffer(), 0, 0); { AutoReset resetIndent(indent_); ++indent_; hasChildren_ = false; if(cse->getSequenceType()) optimizeSequenceType(cse->getSequenceType()); optimize(cse->getExpression()); } if(hasChildren_) indent(); events_->endElementEvent(0, 0, cse->getSequenceType() ? s_Case : s_Default, 0, 0); newline(); hasChildren_ = true; } ASTNode *ASTToXML::optimizeValidate(XQValidate *item) { static const XMLCh s_mode[] = { 'm', 'o', 'd', 'e', 0 }; static const XMLCh s_strict[] = { 's', 't', 'r', 'i', 'c', 't', 0 }; static const XMLCh s_lax[] = { 'l', 'a', 'x', 0 }; events_->attributeEvent(0, 0, s_mode, item->getMode() == DocumentCache::VALIDATION_STRICT ? s_strict : s_lax, 0, 0); return ASTVisitor::optimizeValidate(item); } ASTNode *ASTToXML::optimizeFunctionCall(XQFunctionCall *item) { XMLBuffer buf; qname(0, item->getPrefix(), item->getURI(), item->getName(), buf); events_->attributeEvent(0, 0, s_name, buf.getRawBuffer(), 0, 0); return ASTVisitor::optimizeFunctionCall(item); } ASTNode *ASTToXML::optimizeDOMConstructor(XQDOMConstructor *item) { events_->attributeEvent(0, 0, s_type, item->getNodeType(), 0, 0); ASTVisitor::optimizeDOMConstructor(item); // #ifdef SHOW_QUERY_PATH_TREES // if(item->getQueryPathTree()) // s << item->getQueryPathTree()->toString(indent + INDENT); // #endif return item; } void ASTToXML::getElementName(FTSelection *item, XMLBuffer &buf) { switch(item->getType()) { case FTSelection::OR: buf.append(X("FTOr")); break; case FTSelection::AND: buf.append(X("FTAnd")); break; case FTSelection::MILD_NOT: buf.append(X("FTMildnot")); break; case FTSelection::UNARY_NOT: buf.append(X("FTUnaryNot")); break; case FTSelection::WORDS: buf.append(X("FTWords")); break; case FTSelection::WORD: buf.append(X("FTWord")); break; case FTSelection::ORDER: buf.append(X("FTOrder")); break; case FTSelection::DISTANCE: buf.append(X("FTDistance")); break; case FTSelection::DISTANCE_LITERAL: buf.append(X("FTDistanceLiteral")); break; case FTSelection::SCOPE: buf.append(X("FTScope")); break; case FTSelection::CONTENT: buf.append(X("FTContent")); break; case FTSelection::WINDOW: buf.append(X("FTWindow")); break; case FTSelection::WINDOW_LITERAL: buf.append(X("FTWindowLiteral")); break; default: buf.append(X("FTUnknown")); break; } } FTSelection *ASTToXML::optimizeFTSelection(FTSelection *item) { XMLBuffer elementName; getElementName(item, elementName); if(elementName.getLen() == 0) return ASTVisitor::optimizeFTSelection(item); if(!hasChildren_) { // This is the first child newline(); } indent(); events_->startElementEvent(0, 0, elementName.getRawBuffer()); { AutoReset resetIndent(indent_); ++indent_; hasChildren_ = false; ASTVisitor::optimizeFTSelection(item); } if(hasChildren_) { // It's not an empty element indent(); } events_->endElementEvent(0, 0, elementName.getRawBuffer(), 0, 0); newline(); hasChildren_ = true; return item; } FTSelection *ASTToXML::optimizeFTWords(FTWords *selection) { static const XMLCh s_option[] = { 'o', 'p', 't', 'i', 'o', 'n', 0 }; static const XMLCh s_any[] = { 'a', 'n', 'y', 0 }; static const XMLCh s_any_word[] = { 'a', 'n', 'y', ' ', 'w', 'o', 'r', 'd', 0 }; static const XMLCh s_all[] = { 'a', 'l', 'l', 0 }; static const XMLCh s_all_words[] = { 'a', 'l', 'l', ' ', 'w', 'o', 'r', 'd', 's', 0 }; static const XMLCh s_phrase[] = { 'p', 'h', 'r', 'a', 's', 'e', 0 }; switch(selection->getOption()) { case FTWords::ANY: events_->attributeEvent(0, 0, s_option, s_any, 0, 0); break; case FTWords::ANY_WORD: events_->attributeEvent(0, 0, s_option, s_any_word, 0, 0); break; case FTWords::ALL: events_->attributeEvent(0, 0, s_option, s_all, 0, 0); break; case FTWords::ALL_WORDS: events_->attributeEvent(0, 0, s_option, s_all_words, 0, 0); break; case FTWords::PHRASE: events_->attributeEvent(0, 0, s_option, s_phrase, 0, 0); break; } return ASTVisitor::optimizeFTWords(selection); } FTSelection *ASTToXML::optimizeFTWord(FTWord *selection) { events_->attributeEvent(0, 0, s_value, selection->getQueryString(), 0, 0); return ASTVisitor::optimizeFTWord(selection); } FTSelection *ASTToXML::optimizeFTDistance(FTDistance *selection) { events_->attributeEvent(0, 0, s_type, getFTRangeTypeName(selection->getRange().type), 0, 0); events_->attributeEvent(0, 0, s_units, getFTUnitName(selection->getUnit()), 0, 0); return ASTVisitor::optimizeFTDistance(selection); } FTSelection *ASTToXML::optimizeFTDistanceLiteral(FTDistanceLiteral *selection) { static const XMLCh s_distance2[] = { 'd', 'i', 's', 't', 'a', 'n', 'c', 'e', '2', 0 }; events_->attributeEvent(0, 0, s_type, getFTRangeTypeName(selection->getType()), 0, 0); events_->attributeEvent(0, 0, s_units, getFTUnitName(selection->getUnit()), 0, 0); XMLBuffer buf; XPath2Utils::numToBuf(selection->getDistance(), buf); events_->attributeEvent(0, 0, s_distance, buf.getRawBuffer(), 0, 0); if(selection->getType() == FTRange::FROM_TO) { buf.reset(); XPath2Utils::numToBuf(selection->getDistance2(), buf); events_->attributeEvent(0, 0, s_distance2, buf.getRawBuffer(), 0, 0); } return ASTVisitor::optimizeFTDistanceLiteral(selection); } FTSelection *ASTToXML::optimizeFTScope(FTScope *selection) { static const XMLCh s_same[] = { 's', 'a', 'm', 'e', 0 }; static const XMLCh s_different[] = { 'd', 'i', 'f', 'f', 'e', 'r', 'e', 'n', 't', 0 }; switch(selection->getType()) { case FTScope::SAME: events_->attributeEvent(0, 0, s_type, s_same, 0, 0); break; case FTScope::DIFFERENT: events_->attributeEvent(0, 0, s_type, s_different, 0, 0); break; } events_->attributeEvent(0, 0, s_units, getFTUnitName(selection->getUnit()), 0, 0); return ASTVisitor::optimizeFTScope(selection); } FTSelection *ASTToXML::optimizeFTContent(FTContent *selection) { static const XMLCh s_at_start[] = { 'a', 't', ' ', 's', 't', 'a', 'r', 't', 0 }; static const XMLCh s_at_end[] = { 'a', 't', ' ', 'e', 'n', 'd', 0 }; static const XMLCh s_entire_content[] = { 'e', 'n', 't', 'i', 'r', 'e', ' ', 'c', 'o', 'n', 't', 'e', 'n', 't', 0 }; switch(selection->getType()) { case FTContent::AT_START: events_->attributeEvent(0, 0, s_type, s_at_start, 0, 0); break; case FTContent::AT_END: events_->attributeEvent(0, 0, s_type, s_at_end, 0, 0); break; case FTContent::ENTIRE_CONTENT: events_->attributeEvent(0, 0, s_type, s_entire_content, 0, 0); break; } return ASTVisitor::optimizeFTContent(selection); } FTSelection *ASTToXML::optimizeFTWindow(FTWindow *selection) { events_->attributeEvent(0, 0, s_units, getFTUnitName(selection->getUnit()), 0, 0); return ASTVisitor::optimizeFTWindow(selection); } FTSelection *ASTToXML::optimizeFTWindowLiteral(FTWindowLiteral *selection) { events_->attributeEvent(0, 0, s_units, getFTUnitName(selection->getUnit()), 0, 0); XMLBuffer buf; XPath2Utils::numToBuf(selection->getDistance(), buf); events_->attributeEvent(0, 0, s_distance, buf.getRawBuffer(), 0, 0); return ASTVisitor::optimizeFTWindowLiteral(selection); } const XMLCh *ASTToXML::getFTRangeTypeName(FTRange::Type type) { static const XMLCh s_exactly[] = { 'e', 'x', 'a', 'c', 't', 'l', 'y', 0 }; static const XMLCh s_at_least[] = { 'a', 't', ' ', 'l', 'e', 'a', 's', 't', 0 }; static const XMLCh s_at_most[] = { 'a', 't', ' ', 'm', 'o', 's', 't', 0 }; static const XMLCh s_from_to[] = { 'f', 'r', 'o', 'm', ' ', 't', 'o', 0 }; switch(type) { case FTRange::EXACTLY: return s_exactly; case FTRange::AT_LEAST: return s_at_least; case FTRange::AT_MOST: return s_at_most; case FTRange::FROM_TO: return s_from_to; } return s_unknown; } const XMLCh *ASTToXML::getFTUnitName(FTOption::FTUnit unit) { static const XMLCh s_words[] = { 'w', 'o', 'r', 'd', 's', 0 }; static const XMLCh s_sentences[] = { 's', 'e', 'n', 't', 'e', 'n', 'c', 'e', 's', 0 }; static const XMLCh s_paragraphs[] = { 'p', 'a', 'r', 'a', 'g', 'r', 'a', 'p', 'h', 's', 0 }; switch(unit) { case FTOption::WORDS: return s_words; case FTOption::SENTENCES: return s_sentences; case FTOption::PARAGRAPHS: return s_paragraphs; } return s_unknown; } ASTNode *ASTToXML::optimizeMap(XQMap *item) { if(item->getName() != 0) { XMLBuffer buf; qname(0, 0, item->getURI(), item->getName(), buf); events_->attributeEvent(0, 0, s_name, buf.getRawBuffer(), 0, 0); } return ASTVisitor::optimizeMap(item); } ASTNode *ASTToXML::optimizePromoteUntyped(XQPromoteUntyped *item) { XMLBuffer buf; qname(0, 0, item->getTypeURI(), item->getTypeName(), buf); events_->attributeEvent(0, 0, s_type, buf.getRawBuffer(), 0, 0); return ASTVisitor::optimizePromoteUntyped(item); } ASTNode *ASTToXML::optimizePromoteNumeric(XQPromoteNumeric *item) { XMLBuffer buf; qname(0, 0, item->getTypeURI(), item->getTypeName(), buf); events_->attributeEvent(0, 0, s_type, buf.getRawBuffer(), 0, 0); return ASTVisitor::optimizePromoteNumeric(item); } ASTNode *ASTToXML::optimizePromoteAnyURI(XQPromoteAnyURI *item) { XMLBuffer buf; qname(0, 0, item->getTypeURI(), item->getTypeName(), buf); events_->attributeEvent(0, 0, s_type, buf.getRawBuffer(), 0, 0); return ASTVisitor::optimizePromoteAnyURI(item); } ASTNode *ASTToXML::optimizeDirectName(XQDirectName *item) { XMLBuffer buf; qname(item->getQName(), 0, 0, 0, buf); events_->attributeEvent(0, 0, s_name, buf.getRawBuffer(), 0, 0); return ASTVisitor::optimizeDirectName(item); } ASTNode *ASTToXML::optimizeUTransform(UTransform *item) { static const XMLCh s_Copy[] = { 'C', 'o', 'p', 'y', 0 }; XMLBuffer buf; const VectorOfCopyBinding *bindings = item->getBindings(); for(VectorOfCopyBinding::const_iterator i = bindings->begin(); i != bindings->end(); ++i) { if(!hasChildren_) newline(); indent(); events_->startElementEvent(0, 0, s_Copy); qname((*i)->qname_, 0, (*i)->uri_, (*i)->name_, buf); events_->attributeEvent(0, 0, s_name, buf.getRawBuffer(), 0, 0); { AutoReset resetIndent(indent_); ++indent_; hasChildren_ = false; optimize((*i)->expr_); } if(hasChildren_) indent(); events_->endElementEvent(0, 0, s_Copy, 0, 0); newline(); hasChildren_ = true; } optimize(item->getModifyExpr()); optimize(item->getReturnExpr()); return item; } ASTNode *ASTToXML::optimizeCopyOf(XQCopyOf *item) { static const XMLCh s_copy_namespaces[] = { 'c', 'o', 'p', 'y', '-', 'n', 'a', 'm', 'e', 's', 'p', 'a', 'c', 'e', 's', 0 }; events_->attributeEvent(0, 0, s_copy_namespaces, item->getCopyNamespaces() ? s_true : s_false, 0, 0); return ASTVisitor::optimizeCopyOf(item); } ASTNode *ASTToXML::optimizeASTDebugHook(ASTDebugHook *item) { #ifdef SHOW_HIDDEN_AST optimizeLocation(item); return ASTVisitor::optimizeASTDebugHook(item); #else return optimize(item->getExpression()); #endif } void ASTToXML::optimizeTemplateArgument(XQTemplateArgument *item) { if(!hasChildren_) newline(); indent(); events_->startElementEvent(0, 0, s_Binding); XMLBuffer buf; qname(item->qname, 0, item->uri, item->name, buf); events_->attributeEvent(0, 0, s_name, buf.getRawBuffer(), 0, 0); { AutoReset resetIndent(indent_); ++indent_; hasChildren_ = false; optimize(item->value); } if(hasChildren_) indent(); events_->endElementEvent(0, 0, s_Binding, 0, 0); newline(); hasChildren_ = true; } ASTNode *ASTToXML::optimizeCallTemplate(XQCallTemplate *item) { if(item->getQName() || item->getName()) { XMLBuffer buf; qname(item->getQName(), 0, item->getURI(), item->getName(), buf); events_->attributeEvent(0, 0, s_name, buf.getRawBuffer(), 0, 0); } if(item->getASTName()) { optimize(item->getASTName()); } if(item->getArguments()) { TemplateArguments::iterator argIt; for(argIt = item->getArguments()->begin(); argIt != item->getArguments()->end(); ++argIt) { optimizeTemplateArgument(*argIt); } } return item; } ASTNode *ASTToXML::optimizeApplyTemplates(XQApplyTemplates *item) { optimize(item->getExpression()); if(item->getArguments()) { TemplateArguments::iterator argIt; for(argIt = item->getArguments()->begin(); argIt != item->getArguments()->end(); ++argIt) { optimizeTemplateArgument(*argIt); } } return item; } ASTNode *ASTToXML::optimizeInlineFunction(XQInlineFunction *item) { if(item->getName()) { XMLBuffer buf; qname(0, item->getPrefix(), item->getURI(), item->getName(), buf); events_->attributeEvent(0, 0, s_name, buf.getRawBuffer(), 0, 0); } optimizeFunctionSignature(item->getSignature()); if(item->getUserFunction()) optimizeFunctionDef(item->getUserFunction()); #ifndef SHOW_HIDDEN_AST else #endif item->setInstance(optimize(item->getInstance())); return item; } ASTNode *ASTToXML::optimizePartialApply(XQPartialApply *item) { static const XMLCh s_ArgumentPlaceholder[] = { 'A', 'r', 'g', 'u', 'm', 'e', 'n', 't', 'P', 'l', 'a', 'c', 'e', 'h', 'o', 'l', 'd', 'e', 'r', 0 }; optimize(item->getExpression()); VectorOfASTNodes *args = item->getArguments(); if(args) { for(VectorOfASTNodes::const_iterator i = args->begin(); i != args->end(); ++i) { if(*i == 0) { if(!hasChildren_) newline(); indent(); events_->startElementEvent(0, 0, s_ArgumentPlaceholder); events_->endElementEvent(0, 0, s_ArgumentPlaceholder, 0, 0); newline(); hasChildren_ = true; } else optimize(*i); } } return item; } ASTNode *ASTToXML::optimizeFunctionRef(XQFunctionRef *item) { static const XMLCh s_arity[] = { 'a', 'r', 'i', 't', 'y', 0 }; XMLBuffer buf; qname(item->getQName(), 0, 0, 0, buf); events_->attributeEvent(0, 0, s_name, buf.getRawBuffer(), 0, 0); buf.reset(); XPath2Utils::numToBuf(item->getNumArgs(), buf); events_->attributeEvent(0, 0, s_arity, buf.getRawBuffer(), 0, 0); return ASTVisitor::optimizeFunctionRef(item); } void ASTToXML::getElementName(TupleNode *item, XMLBuffer &buf) { switch(item->getType()) { case TupleNode::CONTEXT_TUPLE: buf.append(X("ContextTuple")); break; case TupleNode::FOR: buf.append(X("ForTuple")); break; case TupleNode::LET: buf.append(X("LetTuple")); break; case TupleNode::WHERE: buf.append(X("WhereTuple")); break; case TupleNode::COUNT: buf.append(X("CountTuple")); break; case TupleNode::ORDER_BY: buf.append(X("OrderByTuple")); break; case TupleNode::DEBUG_HOOK: #ifdef SHOW_HIDDEN_AST buf.append(X("TupleDebugHook")); #endif break; default: buf.append(X("Unknown")); break; } } TupleNode *ASTToXML::optimizeTupleNode(TupleNode *item) { XMLBuffer elementName; getElementName(item, elementName); if(elementName.getLen() == 0) return ASTVisitor::optimizeTupleNode(item); if(!hasChildren_) { // This is the first child newline(); } indent(); events_->startElementEvent(0, 0, elementName.getRawBuffer()); { AutoReset resetIndent(indent_); ++indent_; hasChildren_ = false; ASTVisitor::optimizeTupleNode(item); } if(hasChildren_) { // It's not an empty element indent(); } events_->endElementEvent(0, 0, elementName.getRawBuffer(), 0, 0); newline(); hasChildren_ = true; return item; } TupleNode *ASTToXML::optimizeForTuple(ForTuple *item) { static const XMLCh s_position[] = { 'p', 'o', 's', 'i', 't', 'i', 'o', 'n', 0 }; XMLBuffer buf; qname(item->getVarQName(), 0, item->getVarURI(), item->getVarName(), buf); events_->attributeEvent(0, 0, s_name, buf.getRawBuffer(), 0, 0); qname(item->getPosQName(), 0, item->getPosURI(), item->getPosName(), buf); events_->attributeEvent(0, 0, s_position, buf.getRawBuffer(), 0, 0); return ASTVisitor::optimizeForTuple(item); } TupleNode *ASTToXML::optimizeLetTuple(LetTuple *item) { XMLBuffer buf; qname(item->getVarQName(), 0, item->getVarURI(), item->getVarName(), buf); events_->attributeEvent(0, 0, s_name, buf.getRawBuffer(), 0, 0); return ASTVisitor::optimizeLetTuple(item); } TupleNode *ASTToXML::optimizeCountTuple(CountTuple *item) { XMLBuffer buf; qname(item->getVarQName(), 0, item->getVarURI(), item->getVarName(), buf); events_->attributeEvent(0, 0, s_name, buf.getRawBuffer(), 0, 0); return ASTVisitor::optimizeCountTuple(item); } TupleNode *ASTToXML::optimizeOrderByTuple(OrderByTuple *item) { static const XMLCh s_direction[] = { 'd', 'i', 'r', 'e', 'c', 't', 'i', 'o', 'n', 0 }; static const XMLCh s_descending[] = { 'd', 'e', 's', 'c', 'e', 'n', 'd', 'i', 'n', 'g', 0 }; static const XMLCh s_ascending[] = { 'a', 's', 'c', 'e', 'n', 'd', 'i', 'n', 'g', 0 }; static const XMLCh s_empty[] = { 'e', 'm', 'p', 't', 'y', 0 }; static const XMLCh s_least[] = { 'l', 'e', 'a', 's', 't', 0 }; static const XMLCh s_greatest[] = { 'g', 'r', 'e', 'a', 't', 'e', 's', 't', 0 }; static const XMLCh s_stable[] = { 's', 't', 'a', 'b', 'l', 'e', 0 }; static const XMLCh s_collation[] = { 'c', 'o', 'l', 'l', 'a', 't', 'i', 'o', 'n', 0 }; events_->attributeEvent(0, 0, s_direction, (item->getModifiers() & OrderByTuple::DESCENDING) ? s_descending : s_ascending, 0, 0); events_->attributeEvent(0, 0, s_empty, (item->getModifiers() & OrderByTuple::EMPTY_LEAST) ? s_least : s_greatest, 0, 0); events_->attributeEvent(0, 0, s_stable, (item->getModifiers() & OrderByTuple::UNSTABLE) ? s_false : s_true, 0, 0); events_->attributeEvent(0, 0, s_collation, item->getCollation()->getCollationName(), 0, 0); return ASTVisitor::optimizeOrderByTuple(item); } void ASTToXML::optimizeLocation(const LocationInfo *location) { static const XMLCh s_location[] = { 'l', 'o', 'c', 'a', 't', 'i', 'o', 'n', 0 }; XMLBuffer buf; buf.set(location->getFile()); buf.append(':'); XPath2Utils::numToBuf(location->getLine(), buf); buf.append(':'); XPath2Utils::numToBuf(location->getColumn(), buf); events_->attributeEvent(0, 0, s_location, buf.getRawBuffer(), 0, 0); } TupleNode *ASTToXML::optimizeTupleDebugHook(TupleDebugHook *item) { #ifdef SHOW_HIDDEN_AST optimizeLocation(item); return ASTVisitor::optimizeTupleDebugHook(item); #else return optimizeTupleNode(item->getParent()); #endif } void ASTToXML::optimizeSequenceType(const SequenceType *type) { static const XMLCh s_SequenceType[] = { 'S', 'e', 'q', 'u', 'e', 'n', 'c', 'e', 'T', 'y', 'p', 'e', 0 }; if(!hasChildren_) newline(); indent(); events_->startElementEvent(0, 0, s_SequenceType); XMLBuffer buf; type->toBuffer(buf); events_->attributeEvent(0, 0, s_type, buf.getRawBuffer(), 0, 0); events_->endElementEvent(0, 0, s_SequenceType, 0, 0); newline(); hasChildren_ = true; } void ASTToXML::optimizeFunctionSignature(const FunctionSignature *signature) { static const XMLCh s_signature[] = { 's', 'i', 'g', 'n', 'a', 't', 'u', 'r', 'e', 0 }; if(signature) { XMLBuffer buf; signature->toBuffer(buf, /*typeSyntax*/false); events_->attributeEvent(0, 0, s_signature, buf.getRawBuffer(), 0, 0); } } const XMLCh *ASTToXML::getAxisName(XQStep::Axis axis) { static const XMLCh s_ancestor[] = { 'a', 'n', 'c', 'e', 's', 't', 'o', 'r', 0 }; static const XMLCh s_ancestor_or_self[] = { 'a', 'n', 'c', 'e', 's', 't', 'o', 'r', '-', 'o', 'r', '-', 's', 'e', 'l', 'f', 0 }; static const XMLCh s_attribute[] = { 'a', 't', 't', 'r', 'i', 'b', 'u', 't', 'e', 0 }; static const XMLCh s_child[] = { 'c', 'h', 'i', 'l', 'd', 0 }; static const XMLCh s_descendant[] = { 'd', 'e', 's', 'c', 'e', 'n', 'd', 'a', 'n', 't', 0 }; static const XMLCh s_descendant_or_self[] = { 'd', 'e', 's', 'c', 'e', 'n', 'd', 'a', 'n', 't', '-', 'o', 'r', '-', 's', 'e', 'l', 'f', 0 }; static const XMLCh s_following[] = { 'f', 'o', 'l', 'l', 'o', 'w', 'i', 'n', 'g', 0 }; static const XMLCh s_following_sibling[] = { 'f', 'o', 'l', 'l', 'o', 'w', 'i', 'n', 'g', '-', 's', 'i', 'b', 'l', 'i', 'n', 'g', 0 }; static const XMLCh s_namespace[] = { 'n', 'a', 'm', 'e', 's', 'p', 'a', 'c', 'e', 0 }; static const XMLCh s_parent[] = { 'p', 'a', 'r', 'e', 'n', 't', 0 }; static const XMLCh s_preceding[] = { 'p', 'r', 'e', 'c', 'e', 'd', 'i', 'n', 'g', 0 }; static const XMLCh s_preceding_sibling[] = { 'p', 'r', 'e', 'c', 'e', 'd', 'i', 'n', 'g', '-', 's', 'i', 'b', 'l', 'i', 'n', 'g', 0 }; static const XMLCh s_self[] = { 's', 'e', 'l', 'f', 0 }; switch(axis) { case XQStep::ANCESTOR: return s_ancestor; case XQStep::ANCESTOR_OR_SELF: return s_ancestor_or_self; case XQStep::ATTRIBUTE: return s_attribute; case XQStep::CHILD: return s_child; case XQStep::DESCENDANT: return s_descendant; case XQStep::DESCENDANT_OR_SELF: return s_descendant_or_self; case XQStep::FOLLOWING: return s_following; case XQStep::FOLLOWING_SIBLING: return s_following_sibling; case XQStep::NAMESPACE: return s_namespace; case XQStep::PARENT: return s_parent; case XQStep::PRECEDING: return s_preceding; case XQStep::PRECEDING_SIBLING: return s_preceding_sibling; case XQStep::SELF: return s_self; } return 0; } const XMLCh *ASTToXML::getComparisonOperationName(GeneralComp::ComparisonOperation co) { switch(co) { case GeneralComp::EQUAL: return Equals::name; case GeneralComp::NOT_EQUAL: return NotEquals::name; case GeneralComp::LESS_THAN: return LessThan::name; case GeneralComp::LESS_THAN_EQUAL: return LessThanEqual::name; case GeneralComp::GREATER_THAN: return GreaterThan::name; case GeneralComp::GREATER_THAN_EQUAL: return GreaterThanEqual::name; } return 0; } void ASTToXML::indent() { static const XMLCh s_manySpaces[] = { ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 0 }; while(indentBuffer_.getLen() < (indent_ * 2)) { indentBuffer_.append(s_manySpaces); } if(indent_ != 0) events_->textEvent(indentBuffer_.getRawBuffer(), indent_ * 2); } void ASTToXML::newline() { static const XMLCh s_newline[] = { '\n', 0 }; events_->textEvent(s_newline); } void ASTToXML::qname(const XMLCh *qname, const XMLCh *prefix, const XMLCh *uri, const XMLCh *name, XMLBuffer &buf) { static const XMLCh s_lcurly[] = { '{', 0 }; static const XMLCh s_rcurly[] = { '}', 0 }; static const XMLCh s_colon[] = { ':', 0 }; if(name) { if(prefix && !uri) { buf.set(prefix); buf.append(s_colon); } else { buf.set(s_lcurly); buf.append(uri); buf.append(s_rcurly); } buf.append(name); } else { buf.set(qname); } } XQilla-2.3.0/src/optimizer/PartialEvaluator.cpp0000644000151400015140000020246311653565523016441 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "../items/impl/FunctionRefImpl.hpp" #include #include XERCES_CPP_NAMESPACE_USE; using namespace std; #define FUNCTION_SIZE_RATIO 2 #define BODY_SIZE_RATIO 6 #ifdef _MSC_VER #include #define ssize_t SSIZE_T #endif PartialEvaluator::PartialEvaluator(DynamicContext *context, Optimizer *parent) : ASTVisitor(parent), context_(context), functionInlineLimit_(0), sizeLimit_(0), redoTyping_(false) { } //////////////////////////////////////////////////////////////////////////////////////////////////// // // Remove unused user-defined functions class FunctionReferenceFinder : public ASTVisitor { public: const set &find(XQQuery *query) { functions_.clear(); newFunctions_.clear(); optimize(query); set::iterator i = newFunctions_.begin(); while(i != newFunctions_.end()) { XQUserFunction *uf = *i; if(uf->getFunctionBody()) optimize((ASTNode*)uf->getFunctionBody()); newFunctions_.erase(uf); i = newFunctions_.begin(); } return functions_; } protected: using ASTVisitor::optimize; virtual void optimize(XQQuery *query) { if(query->isModuleCacheOwned()) { ImportedModules &modules = const_cast(query->getModuleCache()->ordered_); for(ImportedModules::iterator it2 = modules.begin(); it2 != modules.end(); ++it2) { optimize(*it2); } } GlobalVariables &vars = const_cast(query->getVariables()); for(GlobalVariables::iterator it = vars.begin(); it != vars.end(); ++it) { (*it) = optimizeGlobalVar(*it); } // Don't look inside XQUserFunctions // But do add all templates to the list of used functions UserFunctions &funcs = const_cast(query->getFunctions()); for(UserFunctions::iterator i2 = funcs.begin(); i2 != funcs.end(); ++i2) { if((*i2)->isTemplate() && functions_.insert(*i2).second) { newFunctions_.insert(*i2); *i2 = optimizeFunctionDef(*i2); } } if(query->getQueryBody() != 0) { query->setQueryBody(optimize(query->getQueryBody())); } } virtual ASTNode *optimizeUserFunction(XQUserFunctionInstance *item) { if(functions_.insert(const_cast(item->getFunctionDefinition())).second) { newFunctions_.insert(const_cast(item->getFunctionDefinition())); } return ASTVisitor::optimizeUserFunction(item); } set functions_; set newFunctions_; }; static void removeUnusedFunctions(XQQuery *query, const set &foundFunctions, XPath2MemoryManager *mm) { UserFunctions newFuncs = UserFunctions(XQillaAllocator(mm)); UserFunctions *funcs = const_cast(&query->getFunctions()); UserFunctions::iterator funcIt; for(funcIt = funcs->begin(); funcIt != funcs->end(); ++funcIt) { if(foundFunctions.find(*funcIt) != foundFunctions.end()) { newFuncs.push_back(*funcIt); } else { if((*funcIt)->getFunctionBody()) { const_cast((*funcIt)->getFunctionBody())->release(); } // TBD Free patterns, template instance // TBD Remove function from function table! - jpcs } } *funcs = newFuncs; if(query->isModuleCacheOwned()) { ImportedModules &modules = const_cast(query->getModuleCache()->ordered_); for(ImportedModules::iterator it2 = modules.begin(); it2 != modules.end(); ++it2) { removeUnusedFunctions(*it2, foundFunctions, mm); } } } class ASTCounter : public ASTVisitor { public: size_t count(const XQQuery *query) { count_ = 0; ASTVisitor::optimize(const_cast(query)); return count_; } size_t count(const ASTNode *item) { count_ = 0; optimize(const_cast(item)); return count_; } protected: virtual ASTNode *optimize(ASTNode *item) { if(item == 0) return 0; ++count_; return ASTVisitor::optimize(item); } virtual TupleNode *optimizeTupleNode(TupleNode *item) { if(item == 0) return 0; ++count_; return ASTVisitor::optimizeTupleNode(item); } size_t count_; }; void PartialEvaluator::optimize(XQQuery *query) { redoTyping_ = false; if(query->getQueryBody() == 0) { ASTVisitor::optimize(query); return; } // Find and remove all the unused user defined functions removeUnusedFunctions(query, FunctionReferenceFinder().find(query), context_->getMemoryManager()); // Calculate a size limit on the partially evaluated AST sizeLimit_ = ASTCounter().count(query) * BODY_SIZE_RATIO; // Also limit the recursive depth we're willing to evaluate to // TBD Implement a breadth first function inlining algorithm - jpcs functionInlineLimit_ = 100; // Perform partial evaluation ASTVisitor::optimize(query); // Find and remove all the unused user defined functions removeUnusedFunctions(query, FunctionReferenceFinder().find(query), context_->getMemoryManager()); } //////////////////////////////////////////////////////////////////////////////////////////////////// // // Constant fold bool PartialEvaluator::checkSizeLimit(const ASTNode *oldAST, const ASTNode *newAST) { size_t oldSize = ASTCounter().count(oldAST); size_t newSize = ASTCounter().count(newAST); if((sizeLimit_ + oldSize) < newSize) return false; sizeLimit_ += oldSize; sizeLimit_ -= newSize; return true; } ASTNode *PartialEvaluator::optimize(ASTNode *item) { bool retype; { AutoReset reset(redoTyping_); redoTyping_ = false; item = ASTVisitor::optimize(item); retype = redoTyping_; } if(retype) { item = item->staticTypingImpl(0); redoTyping_ = true; } // Constant fold switch(item->getType()) { case ASTNode::SEQUENCE: case ASTNode::LITERAL: case ASTNode::NUMERIC_LITERAL: case ASTNode::QNAME_LITERAL: break; default: if(!item->getStaticAnalysis().isUsed() && !item->getStaticAnalysis().getStaticType().isType(StaticType::NODE_TYPE) && !item->getStaticAnalysis().getStaticType().isType(StaticType::FUNCTION_TYPE)) { XPath2MemoryManager* mm = context_->getMemoryManager(); try { ASTNode *newBlock = 0; { Result result = item->createResult(context_); newBlock = XQSequence::constantFold(result, context_, mm, item); } context_->clearDynamicContext(); if(newBlock != 0) { if(checkSizeLimit(item, newBlock)) { item->release(); return newBlock; } else { newBlock->release(); return item; } } } catch(XQException &ex) { // Constant folding failed } } break; } return item; } ASTNode *PartialEvaluator::optimizeNamespaceBinding(XQNamespaceBinding *item) { // Make sure the correct namespaces are in scope for sub-expressions that are constant folded AutoNsScopeReset jan(context_, item->getNamespaces()); if(context_) { const XMLCh *defaultElementNS = context_->getMemoryManager()-> getPooledString(item->getNamespaces()->lookupNamespaceURI(XMLUni::fgZeroLenString)); context_->setDefaultElementAndTypeNS(defaultElementNS); } item->setExpression(optimize(const_cast(item->getExpression()))); return item; } //////////////////////////////////////////////////////////////////////////////////////////////////// // // Inline user-defined functions // Base class that tracks variable scope class VariableScopeTracker : public ASTVisitor { public: VariableScopeTracker() : uri_(0), name_(0), required_(0), active_(false), inScope_(true) { } protected: ASTNode *run(const XMLCh *uri, const XMLCh *name, ASTNode *expr, const StaticAnalysis *required = 0) { uri_ = uri; name_ = name; required_ = required; active_ = true; inScope_ = true; return optimize(expr); } virtual TupleNode *optimizeForTuple(ForTuple *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); item->setExpression(optimize(item->getExpression())); if(required_ && required_->isVariableUsed(item->getVarURI(), item->getVarName())) inScope_ = false; if(XPath2Utils::equals(uri_, item->getVarURI()) && XPath2Utils::equals(name_, item->getVarName())) active_ = false; if(required_ && required_->isVariableUsed(item->getPosURI(), item->getPosName())) inScope_ = false; if(XPath2Utils::equals(uri_, item->getPosURI()) && XPath2Utils::equals(name_, item->getPosName())) active_ = false; return item; } virtual TupleNode *optimizeLetTuple(LetTuple *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); item->setExpression(optimize(item->getExpression())); if(required_ && required_->isVariableUsed(item->getVarURI(), item->getVarName())) inScope_ = false; if(XPath2Utils::equals(uri_, item->getVarURI()) && XPath2Utils::equals(name_, item->getVarName())) active_ = false; return item; } virtual TupleNode *optimizeCountTuple(CountTuple *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); if(required_ && required_->isVariableUsed(item->getVarURI(), item->getVarName())) inScope_ = false; if(XPath2Utils::equals(uri_, item->getVarURI()) && XPath2Utils::equals(name_, item->getVarName())) active_ = false; return item; } virtual ASTNode *optimizeReturn(XQReturn *item) { AutoReset reset(active_); AutoReset reset2(inScope_); return ASTVisitor::optimizeReturn(item); } virtual ASTNode *optimizeMap(XQMap *item) { item->setArg1(optimize(item->getArg1())); AutoReset reset(active_); AutoReset reset2(inScope_); if(item->getName()) { if(required_ && required_->isVariableUsed(item->getURI(), item->getName())) inScope_ = false; if(XPath2Utils::equals(uri_, item->getURI()) && XPath2Utils::equals(name_, item->getName())) active_ = false; } else { if(required_ && required_->areContextFlagsUsed()) inScope_ = false; if(name_ == 0) active_ = false; } item->setArg2(optimize(item->getArg2())); return item; } virtual ASTNode *optimizeTypeswitch(XQTypeswitch *item) { item->setExpression(optimize(const_cast(item->getExpression()))); AutoReset reset(active_); AutoReset reset2(inScope_); XQTypeswitch::Cases *clauses = const_cast(item->getCases()); for(XQTypeswitch::Cases::iterator i = clauses->begin(); i != clauses->end(); ++i) { reset.reset(); reset2.reset(); if((*i)->isVariableUsed()) { if(required_ && required_->isVariableUsed((*i)->getURI(), (*i)->getName())) inScope_ = false; if(XPath2Utils::equals(uri_, (*i)->getURI()) && XPath2Utils::equals(name_, (*i)->getName())) active_ = false; } (*i)->setExpression(optimize((*i)->getExpression())); } reset.reset(); reset2.reset(); if(item->getDefaultCase()->isVariableUsed()) { if(required_ && required_->isVariableUsed(item->getDefaultCase()->getURI(), item->getDefaultCase()->getName())) inScope_ = false; if(XPath2Utils::equals(uri_, item->getDefaultCase()->getURI()) && XPath2Utils::equals(name_, item->getDefaultCase()->getName())) active_ = false; } const_cast(item->getDefaultCase())-> setExpression(optimize(item->getDefaultCase()->getExpression())); return item; } virtual ASTNode *optimizeNav(XQNav *item) { AutoReset reset(active_); AutoReset reset2(inScope_); XQNav::Steps &args = const_cast(item->getSteps()); for(XQNav::Steps::iterator i = args.begin(); i != args.end(); ++i) { i->step = optimize(i->step); if(required_ && required_->areContextFlagsUsed()) inScope_ = false; if(name_ == 0) active_ = false; } return item; } virtual ASTNode *optimizePredicate(XQPredicate *item) { item->setExpression(optimize(const_cast(item->getExpression()))); AutoReset reset(active_); AutoReset reset2(inScope_); if(required_ && required_->areContextFlagsUsed()) inScope_ = false; if(name_ == 0) active_ = false; item->setPredicate(optimize(const_cast(item->getPredicate()))); return item; } virtual ASTNode *optimizeAnalyzeString(XQAnalyzeString *item) { item->setExpression(optimize(const_cast(item->getExpression()))); item->setRegex(optimize(const_cast(item->getRegex()))); if(item->getFlags()) item->setFlags(optimize(const_cast(item->getFlags()))); AutoReset reset(active_); AutoReset reset2(inScope_); if(required_ && required_->areContextFlagsUsed()) inScope_ = false; if(name_ == 0) active_ = false; item->setMatch(optimize(const_cast(item->getMatch()))); item->setNonMatch(optimize(const_cast(item->getNonMatch()))); return item; } virtual ASTNode *optimizeUTransform(UTransform *item) { AutoReset reset(active_); AutoReset reset2(inScope_); VectorOfCopyBinding *bindings = const_cast(item->getBindings()); for(VectorOfCopyBinding::iterator i = bindings->begin(); i != bindings->end(); ++i) { (*i)->expr_ = optimize((*i)->expr_); if(required_ && required_->isVariableUsed((*i)->uri_, (*i)->name_)) inScope_ = false; if(XPath2Utils::equals(uri_, (*i)->uri_) && XPath2Utils::equals(name_, (*i)->name_)) active_ = false; } item->setModifyExpr(optimize(const_cast(item->getModifyExpr()))); item->setReturnExpr(optimize(const_cast(item->getReturnExpr()))); return item; } virtual ASTNode *optimizeFunctionCoercion(XQFunctionCoercion *item) { item->setExpression(optimize(item->getExpression())); if(item->getFuncConvert()) { AutoReset reset(active_); AutoReset reset2(inScope_); if(required_ && required_->isVariableUsed(0, XQFunctionCoercion::funcVarName)) inScope_ = false; if(XPath2Utils::equals(uri_, 0) && XPath2Utils::equals(name_, XQFunctionCoercion::funcVarName)) active_ = false; item->setFuncConvert(optimize(item->getFuncConvert())); } return item; } virtual ASTNode *optimizeInlineFunction(XQInlineFunction *item) { if(item->getUserFunction()) item->setUserFunction(optimizeFunctionDef(item->getUserFunction())); AutoReset reset(active_); AutoReset reset2(inScope_); if(item->getSignature()->argSpecs) { ArgumentSpecs::const_iterator argsIt = item->getSignature()->argSpecs->begin(); for(; argsIt != item->getSignature()->argSpecs->end(); ++argsIt) { if(required_ && required_->isVariableUsed((*argsIt)->getURI(), (*argsIt)->getName())) inScope_ = false; if(XPath2Utils::equals(uri_, (*argsIt)->getURI()) && XPath2Utils::equals(name_, (*argsIt)->getName())) active_ = false; } } item->setInstance(optimize(item->getInstance())); return item; } virtual XQUserFunction *optimizeFunctionDef(XQUserFunction *item) { if(item->getFunctionBody()) { AutoReset reset(active_); AutoReset reset2(inScope_); const ArgumentSpecs *params = item->getSignature()->argSpecs; if(params) { for(ArgumentSpecs::const_iterator it = params->begin(); it != params->end(); ++it) { if(required_ && required_->isVariableUsed((*it)->getURI(), (*it)->getName())) inScope_ = false; if(XPath2Utils::equals(uri_, (*it)->getURI()) && XPath2Utils::equals(name_, (*it)->getName())) active_ = false; } } item->setFunctionBody(optimize(const_cast(item->getFunctionBody()))); } return item; } const XMLCh *uri_, *name_; const StaticAnalysis *required_; bool active_, inScope_; }; class InlineVar : public VariableScopeTracker { public: InlineVar() : let_(0), removeLet_(false), dummyRun_(true), varValue_(0), context_(0), successful_(false), doesSomething_(false), count_(0) { } ASTNode *run(const XMLCh *uri, const XMLCh *name, const ASTNode *varValue, ASTNode *expr, DynamicContext *context) { let_ = 0; varValue_ = varValue; context_ = context; removeLet_ = false; dummyRun_ = false; return VariableScopeTracker::run(uri, name, expr, &varValue->getStaticAnalysis()); } bool inlineLet(XQReturn *ret, LetTuple *let, DynamicContext *context, size_t &sizeLimit) { let_ = let; context_ = context; varValue_ = let->getExpression(); // Do a dummy run, to see if we would be 100% successful dummyRun_ = true; successful_ = true; doesSomething_ = false; count_ = 0; VariableScopeTracker::run(let->getVarURI(), let->getVarName(), ret, &let->getExpression()->getStaticAnalysis()); if(!doesSomething_) return false; removeLet_ = successful_; if(let->getExpression()->getStaticAnalysis().isVariableUsed(let->getVarURI(), let->getVarName())) { // The LetTuple expression uses a variable with the same name as the LetTuple itself. // We can only inline it if the inline will be 100% successful, and we can remove the // LetTuple itself. if(!removeLet_) return false; } if(removeLet_) count_ -= ASTCounter().count(let->getExpression()) + 1; // Check that we won't exceed the size limit if(count_ > 0 && (size_t)count_ > sizeLimit) return false; sizeLimit -= count_; // Perform the actual substitution dummyRun_ = false; VariableScopeTracker::run(let->getVarURI(), let->getVarName(), ret, &let->getExpression()->getStaticAnalysis()); if(removeLet_) { let->setParent(0); let->release(); } return true; } protected: virtual TupleNode *optimizeLetTuple(LetTuple *item) { if(item != let_) return VariableScopeTracker::optimizeLetTuple(item); if(!dummyRun_ && removeLet_) { // Remove the LetTuple itself - we checked this was ok to do in inlineLet() above return item->getParent(); } return item; } virtual ASTNode *optimizeVariable(XQVariable *item) { if(active_ && XPath2Utils::equals(item->getName(), name_) && XPath2Utils::equals(item->getURI(), uri_)) { if(inScope_) { if(dummyRun_) { // Mock up the extra size required to make this change count_ -= 1; count_ += ASTCounter().count(varValue_); doesSomething_ = true; } else { item->release(); return varValue_->copy(context_); } } else { successful_ = false; } } return item; } LetTuple *let_; bool removeLet_; bool dummyRun_; const ASTNode *varValue_; DynamicContext *context_; bool successful_; bool doesSomething_; ssize_t count_; }; XQUserFunction *PartialEvaluator::optimizeFunctionDef(XQUserFunction *item) { AutoReset reset(sizeLimit_); // TBD Maybe make this related to the number of times the function is called as well? - jpcs sizeLimit_ = ASTCounter().count(item->getFunctionBody()) * FUNCTION_SIZE_RATIO; return ASTVisitor::optimizeFunctionDef(item); } ASTNode *PartialEvaluator::inlineFunction(const XQUserFunctionInstance *item, DynamicContext *context) { const XQUserFunction *funcDef = item->getFunctionDefinition(); XPath2MemoryManager *mm = context->getMemoryManager(); TupleNode *tuple = new (mm) ContextTuple(mm); tuple->setLocationInfo(item); ASTNode *bodyCopy = funcDef->getFunctionBody()->copy(context); InlineVar inliner; if(!item->getArguments().empty()) { ArgumentSpecs::const_iterator defIt = funcDef->getSignature()->argSpecs->begin(); VectorOfASTNodes::const_iterator argIt = item->getArguments().begin(); for(; defIt != funcDef->getSignature()->argSpecs->end() && argIt != item->getArguments().end(); ++defIt, ++argIt) { // Rename the variable to avoid naming conflicts const XMLCh *newName = context->allocateTempVarName((*defIt)->getName()); tuple = new (mm) LetTuple(tuple, (*defIt)->getURI(), newName, (*argIt)->copy(context), mm); tuple->setLocationInfo(item); AutoRelease newVar(new (mm) XQVariable((*defIt)->getURI(), newName, mm)); newVar->setLocationInfo(*argIt); StaticAnalysis &varSrc = const_cast(newVar->getStaticAnalysis()); varSrc.getStaticType() = (*argIt)->getStaticAnalysis().getStaticType(); varSrc.setProperties((*argIt)->getStaticAnalysis().getProperties() & ~(StaticAnalysis::SUBTREE|StaticAnalysis::SAMEDOC)); varSrc.variableUsed((*defIt)->getURI(), newName); bodyCopy = inliner.run((*defIt)->getURI(), (*defIt)->getName(), newVar, bodyCopy, context); } } ASTNode *result = new (mm) XQReturn(tuple, bodyCopy, mm); result->setLocationInfo(item); const_cast(result->getStaticAnalysis()).copy(funcDef->getBodyStaticAnalysis()); if(!item->getArguments().empty()) { VectorOfASTNodes::const_iterator argIt = item->getArguments().begin(); for(; argIt != item->getArguments().end(); ++argIt) { const_cast(result->getStaticAnalysis()).add((*argIt)->getStaticAnalysis()); } } return result; } ASTNode *PartialEvaluator::optimizeUserFunction(XQUserFunctionInstance *item) { VectorOfASTNodes &args = const_cast(item->getArguments()); bool constantArg = args.empty(); for(VectorOfASTNodes::iterator i = args.begin(); i != args.end(); ++i) { *i = optimize(*i); if((*i)->isConstant()) constantArg = true; } const XQUserFunction *funcDef = item->getFunctionDefinition(); // TBD Maybe make this dependant on the number of times the function is called in the query as well? - jpcs // if(funcDef->getFunctionBody() && functionInlineLimit_ > 0 && (!funcDef->isRecursive() || constantArg)) { if(funcDef->getFunctionBody() && functionInlineLimit_ > 0 && !funcDef->isRecursive()) { AutoReset reset(functionInlineLimit_); --functionInlineLimit_; ASTNode *result = inlineFunction(item, context_); if(checkSizeLimit(item, result)) { redoTyping_ = true; result = optimize(result->staticTyping(0, 0)); item->release(); return result; } else { result->release(); return item; } } return item; } ASTNode *PartialEvaluator::optimizeInlineFunction(XQInlineFunction *item) { if(item->getUserFunction() && item->getInstance()->getType() == ASTNode::USER_FUNCTION) { ASTNode *result = inlineFunction((XQUserFunctionInstance*)item->getInstance(), context_); ASTReleaser().release(item->getUserFunction()); item->getInstance()->release(); item->setUserFunction(0); redoTyping_ = true; item->setInstance(result->staticTyping(0, 0)); } item->setInstance(optimize(item->getInstance())); return item; } ASTNode *PartialEvaluator::optimizeFunctionDeref(XQFunctionDeref *item) { ASTVisitor::optimizeFunctionDeref(item); if(item->getExpression()->getType() != ASTNode::INLINE_FUNCTION || functionInlineLimit_ <= 0) return item; XQInlineFunction *func = (XQInlineFunction*)item->getExpression(); VectorOfASTNodes *args = const_cast(item->getArguments()); size_t numGiven = args ? args->size() : 0; if(func->getNumArgs() != numGiven) return item; AutoReset reset(functionInlineLimit_); --functionInlineLimit_; XPath2MemoryManager *mm = context_->getMemoryManager(); TupleNode *tuple = new (mm) ContextTuple(mm); tuple->setLocationInfo(item); ASTNode *bodyCopy = func->getInstance()->copy(context_); InlineVar inliner; if(args && func->getSignature()->argSpecs) { ArgumentSpecs::const_iterator specIt = func->getSignature()->argSpecs->begin(); for(VectorOfASTNodes::iterator argIt = args->begin(); argIt != args->end(); ++argIt, ++specIt) { // Rename the variable to avoid naming conflicts const XMLCh *newName = context_->allocateTempVarName(X("inline_arg")); tuple = new (mm) LetTuple(tuple, 0, newName, (*argIt)->copy(context_), mm); tuple->setLocationInfo(item); AutoRelease newVar(new (mm) XQVariable(0, newName, mm)); newVar->setLocationInfo(*argIt); StaticAnalysis &varSrc = const_cast(newVar->getStaticAnalysis()); varSrc.getStaticType() = (*argIt)->getStaticAnalysis().getStaticType(); varSrc.setProperties((*argIt)->getStaticAnalysis().getProperties() & ~(StaticAnalysis::SUBTREE|StaticAnalysis::SAMEDOC)); varSrc.variableUsed(0, newName); bodyCopy = inliner.run((*specIt)->getURI(), (*specIt)->getName(), newVar, bodyCopy, context_); } } ASTNode *result = new (mm) XQReturn(tuple, bodyCopy, mm); result->setLocationInfo(item); if(checkSizeLimit(item, result)) { redoTyping_ = true; result = optimize(result->staticTyping(0, 0)); item->release(); return result; } else { result->release(); return item; } } ASTNode *PartialEvaluator::optimizePartialApply(XQPartialApply *item) { ASTVisitor::optimizePartialApply(item); if(item->getExpression()->getType() != ASTNode::INLINE_FUNCTION || functionInlineLimit_ <= 0) return item; XQInlineFunction *func = (XQInlineFunction*)item->getExpression(); VectorOfASTNodes *args = const_cast(item->getArguments()); size_t numGiven = args ? args->size() : 0; if(func->getNumArgs() != numGiven) return item; AutoReset reset(functionInlineLimit_); --functionInlineLimit_; XPath2MemoryManager *mm = context_->getMemoryManager(); TupleNode *tuple = new (mm) ContextTuple(mm); tuple->setLocationInfo(item); ASTNode *bodyCopy = func->getInstance()->copy(context_); InlineVar inliner; FunctionSignature *signature = new (mm) FunctionSignature(func->getSignature(), mm); if(args && signature->argSpecs) { ArgumentSpecs::iterator specIt = signature->argSpecs->begin(); for(VectorOfASTNodes::iterator argIt = args->begin(); argIt != args->end(); ++argIt) { if(*argIt == 0) { ++specIt; continue; } // Rename the variable to avoid naming conflicts const XMLCh *newName = context_->allocateTempVarName(X("inline_arg")); tuple = new (mm) LetTuple(tuple, 0, newName, (*argIt)->copy(context_), mm); tuple->setLocationInfo(item); AutoRelease newVar(new (mm) XQVariable(0, newName, mm)); newVar->setLocationInfo(*argIt); StaticAnalysis &varSrc = const_cast(newVar->getStaticAnalysis()); varSrc.getStaticType() = (*argIt)->getStaticAnalysis().getStaticType(); varSrc.setProperties((*argIt)->getStaticAnalysis().getProperties() & ~(StaticAnalysis::SUBTREE|StaticAnalysis::SAMEDOC)); varSrc.variableUsed(0, newName); bodyCopy = inliner.run((*specIt)->getURI(), (*specIt)->getName(), newVar, bodyCopy, context_); specIt = signature->argSpecs->erase(specIt); } } ASTNode *ret = new (mm) XQReturn(tuple, bodyCopy, mm); ret->setLocationInfo(item); ASTNode *result = new (mm) XQInlineFunction(0, func->getPrefix(), func->getURI(), func->getName(), signature->argSpecs->size(), signature, ret, mm); result->setLocationInfo(item); if(checkSizeLimit(item, result)) { redoTyping_ = true; result = optimize(result->staticTyping(0, 0)); item->release(); return result; } else { result->release(); return item; } } static inline FunctionSignature *findSignature(ASTNode *expr) { FunctionSignature *signature = 0; switch(expr->getType()) { case ASTNode::INLINE_FUNCTION: { signature = ((XQInlineFunction*)expr)->getSignature(); break; } case ASTNode::FUNCTION_COERCION: { XQFunctionCoercion *coercion = (XQFunctionCoercion*)expr; if(coercion->getFuncConvert()->getType() == ASTNode::INLINE_FUNCTION) signature = ((XQInlineFunction*)coercion->getFuncConvert())->getSignature(); break; } default: break; } return signature; } ASTNode *PartialEvaluator::optimizeFunctionCoercion(XQFunctionCoercion *item) { ASTVisitor::optimizeFunctionCoercion(item); FunctionSignature *signature = findSignature(item->getExpression()); if(signature && item->getSequenceType()->getItemType()->matches(signature, context_)) { ASTNode *result = item->getExpression(); item->setExpression(0); sizeLimit_ += ASTCounter().count(item); item->release(); return result; } if(item->getExpression()->getType() != ASTNode::INLINE_FUNCTION || functionInlineLimit_ <= 0) return item; XQInlineFunction *func = (XQInlineFunction*)item->getExpression(); AutoReset reset(functionInlineLimit_); --functionInlineLimit_; ASTNode *result = item->getFuncConvert()->copy(context_); result = InlineVar().run(0, XQFunctionCoercion::funcVarName, func->copy(context_), result, context_); if(checkSizeLimit(item, result)) { redoTyping_ = true; result = optimize(result->staticTyping(0, 0)); item->release(); return result; } else { result->release(); return item; } } ASTNode *PartialEvaluator::optimizeTreatAs(XQTreatAs *item) { ASTVisitor::optimizeTreatAs(item); const SequenceType::ItemType *itemType = item->getSequenceType()->getItemType(); if(!itemType) return item; FunctionSignature *signature = findSignature(item->getExpression()); if(signature && itemType->matches(signature, context_)) { ASTNode *result = item->getExpression(); item->setExpression(0); sizeLimit_ += ASTCounter().count(item); item->release(); return result; } return item; } //////////////////////////////////////////////////////////////////////////////////////////////////// // // Inline variables static inline unsigned int umultiply(unsigned int a, unsigned int b) { return (a == 0 || b == 0) ? 0 : (a == StaticType::UNLIMITED || b == StaticType::UNLIMITED) ? StaticType::UNLIMITED : a * b; } static inline unsigned int uadd(unsigned int a, unsigned int b) { return (a == StaticType::UNLIMITED || b == StaticType::UNLIMITED) ? StaticType::UNLIMITED : a + b; } class CountVarUse : public VariableScopeTracker { public: CountVarUse() : count_(0) { } unsigned int run(const XMLCh *uri, const XMLCh *name, const ASTNode *expr) { count_ = 0; VariableScopeTracker::run(uri, name, (ASTNode*)expr); return count_; } protected: virtual ASTNode *optimizeNav(XQNav *item) { unsigned int factor = 1; XQNav::Steps &args = const_cast(item->getSteps()); for(XQNav::Steps::iterator i = args.begin(); i != args.end(); ++i) { unsigned int tcount = count_; count_ = 0; i->step = optimize(i->step); count_ = uadd(tcount, umultiply(count_, factor)); factor = umultiply(factor, i->step->getStaticAnalysis() .getStaticType().getMax()); } return item; } virtual ASTNode *optimizePredicate(XQPredicate *item) { item->setExpression(optimize(const_cast(item->getExpression()))); unsigned int tcount = count_; count_ = 0; item->setPredicate(optimize(const_cast(item->getPredicate()))); count_ = uadd(tcount, umultiply(count_, item->getExpression()-> getStaticAnalysis().getStaticType().getMax())); return item; } virtual ASTNode *optimizeMap(XQMap *item) { item->setArg1(optimize(item->getArg1())); unsigned int tcount = count_; count_ = 0; item->setArg2(optimize(item->getArg2())); count_ = uadd(tcount, umultiply(count_, item->getArg1()-> getStaticAnalysis().getStaticType().getMax())); return item; } virtual TupleNode *optimizeForTuple(ForTuple *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); unsigned int tcount = count_; count_ = 0; item->setExpression(optimize(item->getExpression())); count_ = uadd(tcount, umultiply(count_, item->getParent()->getMax())); return item; } virtual TupleNode *optimizeLetTuple(LetTuple *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); unsigned int tcount = count_; count_ = 0; item->setExpression(optimize(item->getExpression())); count_ = uadd(tcount, umultiply(count_, item->getParent()->getMax())); return item; } virtual TupleNode *optimizeCountTuple(CountTuple *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); unsigned int tcount = count_; count_ = 0; count_ = uadd(tcount, umultiply(count_, item->getParent()->getMax())); return item; } virtual TupleNode *optimizeWhereTuple(WhereTuple *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); unsigned int tcount = count_; count_ = 0; item->setExpression(optimize(item->getExpression())); count_ = uadd(tcount, umultiply(count_, item->getParent()->getMax())); return item; } virtual TupleNode *optimizeOrderByTuple(OrderByTuple *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); unsigned int tcount = count_; count_ = 0; item->setExpression(optimize(item->getExpression())); count_ = uadd(tcount, umultiply(count_, item->getParent()->getMax())); return item; } virtual ASTNode *optimizeReturn(XQReturn *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); unsigned int tcount = count_; count_ = 0; item->setExpression(optimize(item->getExpression())); count_ = uadd(tcount, umultiply(count_, item->getParent()->getMax())); return item; } virtual ASTNode *optimizeQuantified(XQQuantified *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); unsigned int tcount = count_; count_ = 0; item->setExpression(optimize(item->getExpression())); count_ = uadd(tcount, umultiply(count_, item->getParent()->getMax())); return item; } virtual ASTNode *optimizeVariable(XQVariable *item) { if(active_ && XPath2Utils::equals(item->getName(), name_) && XPath2Utils::equals(item->getURI(), uri_)) { count_ = uadd(count_, 1); } return item; } unsigned int count_; }; static void countLetUsage(ASTNode *expr, map &toCount, unsigned int factor) { CountVarUse counter; map::iterator j = toCount.begin(); for(; j != toCount.end(); ++j) { unsigned int ecount = counter.run(j->first->getVarURI(), j->first->getVarName(), expr); j->second = uadd(j->second, umultiply(factor, ecount)); } } static void findLetsToInline(TupleNode *ancestor, vector &toInline, map &toCount) { if(ancestor == 0) return; switch(ancestor->getType()) { case TupleNode::LET: { findLetsToInline(ancestor->getParent(), toInline, toCount); LetTuple *f = (LetTuple*)ancestor; countLetUsage(f->getExpression(), toCount, ancestor->getParent()->getMax()); if(f->getExpression()->isConstant() || f->getExpression()->getType() == ASTNode::VARIABLE || f->getExpression()->getType() == ASTNode::CONTEXT_ITEM) { toInline.push_back(f); } else { toCount[f] = 0; } break; } case TupleNode::WHERE: findLetsToInline(ancestor->getParent(), toInline, toCount); countLetUsage(((WhereTuple*)ancestor)->getExpression(), toCount, ancestor->getParent()->getMax()); break; case TupleNode::ORDER_BY: findLetsToInline(ancestor->getParent(), toInline, toCount); countLetUsage(((OrderByTuple*)ancestor)->getExpression(), toCount, ancestor->getParent()->getMax()); break; case TupleNode::FOR: findLetsToInline(ancestor->getParent(), toInline, toCount); countLetUsage(((ForTuple*)ancestor)->getExpression(), toCount, ancestor->getParent()->getMax()); break; case TupleNode::COUNT: findLetsToInline(ancestor->getParent(), toInline, toCount); break; case TupleNode::CONTEXT_TUPLE: case TupleNode::DEBUG_HOOK: break; } } static ASTNode *inlineLets(XQReturn *item, DynamicContext *context, size_t &sizeLimit, bool &success) { map toCount; vector toInline; findLetsToInline(const_cast(item->getParent()), toInline, toCount); countLetUsage(item->getExpression(), toCount, item->getParent()->getMax()); InlineVar inliner; vector::iterator i = toInline.begin(); for(; i != toInline.end(); ++i) { success = inliner.inlineLet(item, *i, context, sizeLimit) || success; } map::iterator j = toCount.begin(); for(; j != toCount.end(); ++j) { if(j->second != StaticType::UNLIMITED && j->second <= 1) { success = inliner.inlineLet(item, j->first, context, sizeLimit) || success; } } return item->staticTyping(0, 0); } ASTNode *PartialEvaluator::optimizeReturn(XQReturn *item) { bool success = false; ASTNode *result = inlineLets(item, context_, sizeLimit_, success); if(success || result != item) { redoTyping_ = true; return optimize(result); } result = ASTVisitor::optimizeReturn(item); if(result != item) return result; // Combine nested FLWORs if(item->getExpression()->getType() == ASTNode::RETURN) { XQReturn *otherReturn = (XQReturn*)item->getExpression();; // We can't combine if the nested tuple uses an "order by" TupleNode *parent = otherReturn->getParent(); while(parent) { if(parent->getType() == TupleNode::ORDER_BY) break; parent = parent->getParent(); } if(parent == 0) { // Combine the FLWORs TupleNode *prev = 0; parent = otherReturn->getParent(); while(parent->getType() != TupleNode::CONTEXT_TUPLE) { prev = parent; parent = parent->getParent(); } if(prev) prev->setParent(item->getParent()); item->setParent(0); item->setExpression(0); sizeLimit_ += ASTCounter().count(item); item->release(); item = otherReturn; } } success = false; result = inlineLets(item, context_, sizeLimit_, success); if(success || result != item) { redoTyping_ = true; return optimize(result); } if(item->getParent()->getType() == TupleNode::CONTEXT_TUPLE) { result = item->getExpression(); item->setExpression(0); sizeLimit_ += ASTCounter().count(item); item->release(); return result; } return item; } //////////////////////////////////////////////////////////////////////////////////////////////////// // // Make decisions early ASTNode *PartialEvaluator::optimizeIf(XQIf *item) { item->setTest(optimize(const_cast(item->getTest()))); if(item->getTest()->isConstant()) { bool result = item->getTest()->boolResult(context_); context_->clearDynamicContext(); if(result) { ASTNode *tmp = const_cast(item->getWhenTrue()); item->setWhenTrue(0); sizeLimit_ += ASTCounter().count(item); item->release(); return optimize(tmp); } else { ASTNode *tmp = const_cast(item->getWhenFalse()); item->setWhenFalse(0); sizeLimit_ += ASTCounter().count(item); item->release(); return optimize(tmp); } } item->setWhenTrue(optimize(const_cast(item->getWhenTrue()))); item->setWhenFalse(optimize(const_cast(item->getWhenFalse()))); return item; } ASTNode *PartialEvaluator::optimizeQuantified(XQQuantified *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); if(item->getParent()->getMax() == 0) { ASTNode *result = XQLiteral::create(item->getQuantifierType() == XQQuantified::EVERY, context_->getMemoryManager(), item); sizeLimit_ += ASTCounter().count(item); sizeLimit_ -= ASTCounter().count(result); item->release(); return result; } item->setExpression(optimize(item->getExpression())); if(item->getExpression()->isConstant() && item->getParent()->getMin() != 0) { bool value = item->getExpression()->boolResult(context_); ASTNode *result = XQLiteral::create(value, context_->getMemoryManager(), item); sizeLimit_ += ASTCounter().count(item); sizeLimit_ -= ASTCounter().count(result); item->release(); return result; } return item; } ASTNode *PartialEvaluator::optimizePredicate(XQPredicate *item) { item->setPredicate(optimize(const_cast(item->getPredicate()))); if(item->getPredicate()->isConstant()) { context_->clearDynamicContext(); Result pred_result = item->getPredicate()->createResult(context_); Item::Ptr first = pred_result->next(context_); Item::Ptr second; if(first.notNull()) { second = pred_result->next(context_); } if(first.isNull() || second.notNull() || !first->isAtomicValue() || !((AnyAtomicType*)first.get())->isNumericValue()) { // It's not a single numeric item if(XQEffectiveBooleanValue::get(first, second, context_, item)) { // We have a true predicate ASTNode *tmp = const_cast(item->getExpression()); item->setExpression(0); sizeLimit_ += ASTCounter().count(item); item->release(); return optimize(tmp); } else { // We have a false predicate, which is constant folded to an empty sequence XPath2MemoryManager *mm = context_->getMemoryManager(); ASTNode *result = new (mm) XQSequence(mm); result->setLocationInfo(item->getExpression()); sizeLimit_ += ASTCounter().count(item); item->release(); return optimize(result); } } } if(item->getPredicate()->getStaticAnalysis().getStaticType().getMax() == 0) { // If there are no items EBV returns false, which is constant folded to an empty sequence XPath2MemoryManager *mm = context_->getMemoryManager(); ASTNode *result = new (mm) XQSequence(mm); result->setLocationInfo(item->getExpression()); sizeLimit_ += ASTCounter().count(item); item->release(); return optimize(result); } if(item->getPredicate()->getStaticAnalysis().getStaticType().getMin() >= 1 && item->getPredicate()->getStaticAnalysis().getStaticType().isType(StaticType::NODE_TYPE)) { // If there is one or more nodes, EBV returns true ASTNode *tmp = const_cast(item->getExpression()); item->setExpression(0); sizeLimit_ += ASTCounter().count(item); item->release(); return optimize(tmp); } item->setExpression(optimize(const_cast(item->getExpression()))); if(item->getExpression()->getStaticAnalysis().getStaticType().getMax() == 0) { // If the expression doesn't return any results, it doesn't need a predicate! ASTNode *result = item->getExpression(); item->setExpression(0); sizeLimit_ += ASTCounter().count(item); item->release(); return result; } return item; } ASTNode *PartialEvaluator::optimizeAnd(And *item) { VectorOfASTNodes &args = const_cast(item->getArguments()); VectorOfASTNodes::iterator i = args.begin(); while(i != args.end()) { if(!(*i)->getStaticAnalysis().isUsed()) { if(!(*i)->boolResult(context_)) { // It's constantly false, so this expression is false ASTNode *result = XQLiteral::create(false, context_->getMemoryManager(), item); sizeLimit_ += ASTCounter().count(item); sizeLimit_ -= ASTCounter().count(result); item->release(); return result; } else { // Remove the constant true from the operator arguments sizeLimit_ += ASTCounter().count(*i); (*i)->release(); i = args.erase(i); } } else ++i; } return item; } ASTNode *PartialEvaluator::optimizeOr(Or *item) { VectorOfASTNodes &args = const_cast(item->getArguments()); VectorOfASTNodes::iterator i = args.begin(); while(i != args.end()) { if(!(*i)->getStaticAnalysis().isUsed()) { if((*i)->boolResult(context_)) { // It's constantly true, so this expression is true ASTNode *result = XQLiteral::create(true, context_->getMemoryManager(), item); sizeLimit_ += ASTCounter().count(item); sizeLimit_ -= ASTCounter().count(result); item->release(); return result; } else { // Remove the constant false from the operator arguments sizeLimit_ += ASTCounter().count(*i); (*i)->release(); i = args.erase(i); } } else ++i; } return item; } ASTNode *PartialEvaluator::optimizeEffectiveBooleanValue(XQEffectiveBooleanValue *item) { item->setExpression(optimize(item->getExpression())); if(item->getExpression()->getStaticAnalysis().getStaticType().getMax() == 0) { // If there are no items, EBV returns false ASTNode *result = XQLiteral::create(false, context_->getMemoryManager(), item); sizeLimit_ += ASTCounter().count(item); sizeLimit_ -= ASTCounter().count(result); item->release(); return result; } if(item->getExpression()->getStaticAnalysis().getStaticType().getMin() >= 1 && item->getExpression()->getStaticAnalysis().getStaticType().isType(StaticType::NODE_TYPE)) { // If there is one or more nodes, EBV returns true ASTNode *result = XQLiteral::create(true, context_->getMemoryManager(), item); sizeLimit_ += ASTCounter().count(item); sizeLimit_ -= ASTCounter().count(result); item->release(); return result; } if(item->getExpression()->getStaticAnalysis().getStaticType().getMin() <= 1 && item->getExpression()->getStaticAnalysis().getStaticType().getMax() == 1 && item->getExpression()->getStaticAnalysis().getStaticType().isType(StaticType::BOOLEAN_TYPE)) { // If there is zero or one boolean values, EBV isn't needed ASTNode *result = item->getExpression(); item->setExpression(0); sizeLimit_ += ASTCounter().count(item); item->release(); return result; } return item; } //////////////////////////////////////////////////////////////////////////////////////////////////// // // Folding based on static type ASTNode *PartialEvaluator::optimizeFunction(XQFunction *item) { ASTNode *result = ASTVisitor::optimizeFunction(item); if(result != item) return result; const XMLCh *uri = item->getFunctionURI(); const XMLCh *name = item->getFunctionName(); if(uri == XQFunction::XMLChFunctionURI) { if(name == FunctionCount::name || name == FunctionFunctionArity::name || name == FunctionEmpty::name) { result = item->staticTypingImpl(context_); if(result != item) { redoTyping_ = true; result = optimize(result->staticTyping(0, 0)); } return result; } } return item; } ASTNode *PartialEvaluator::optimizeTypeswitch(XQTypeswitch *item) { ASTNode *result = ASTVisitor::optimizeTypeswitch(item); if(result != item) return result; result = item->staticTypingImpl(context_); if(result != item) { redoTyping_ = true; result = optimize(result->staticTyping(0, 0)); } return result; } //////////////////////////////////////////////////////////////////////////////////////////////////// // // Arithmetic folding rules static ASTNode *foldEmptyArgument(XQOperator *item, DynamicContext *context) { VectorOfASTNodes &args = const_cast(item->getArguments()); for(VectorOfASTNodes::iterator i = args.begin(); i != args.end(); ++i) { if((*i)->getStaticAnalysis().getStaticType().getMax() == 0) { // The result is always empty if one of our arguments is always empty XPath2MemoryManager* mm = context->getMemoryManager(); ASTNode *result = new (mm) XQSequence(mm); result->setLocationInfo(item); return result; } } return item; } ASTNode *PartialEvaluator::optimizeOperator(XQOperator *item) { ASTNode *result = ASTVisitor::optimizeOperator(item); if(result != item) return result; const XMLCh *name = item->getOperatorName(); if(name == Plus::name) { return optimizePlus((Plus*)item); } else if(name == Minus::name) { return optimizeMinus((Minus*)item); } else if(name == Multiply::name) { return optimizeMultiply((Multiply*)item); } else if(name == Divide::name) { return optimizeDivide((Divide*)item); } else if(name == Mod::name) { return foldEmptyArgument(item, context_); } else if(name == IntegerDivide::name) { return foldEmptyArgument(item, context_); } else if(name == UnaryMinus::name) { return foldEmptyArgument(item, context_); } else if(name == And::name) { return optimizeAnd((And*)item); } else if(name == Or::name) { return optimizeOr((Or*)item); } return item; } ASTNode *PartialEvaluator::optimizePlus(Plus *item) { XPath2MemoryManager *mm = context_->getMemoryManager(); VectorOfASTNodes &args = const_cast(item->getArguments()); if(!item->getStaticAnalysis().getStaticType().isType(StaticType::NUMERIC_TYPE)) return foldEmptyArgument(item, context_); if(args[1]->isConstant() && args[0]->getType() == ASTNode::OPERATOR) { XQOperator *op = (XQOperator*)args[0]; if(op->getOperatorName() == Minus::name || op->getOperatorName() == Plus::name) { if(op->getArguments()[0]->isConstant()) { // (A (+/-) B) + C = (A + C) (+/-) B args[0] = op->getArguments()[0]; const_cast(op->getArguments())[0] = item; redoTyping_ = true; return optimize(op->staticTyping(0, 0)); } else if(op->getArguments()[1]->isConstant()) { // (A - B) + C = A - (B - C) // (A + B) + C = A + (B + C) args[0] = op->getArguments()[1]; if(op->getOperatorName() == Minus::name) { const_cast(op->getArguments())[1] = new (mm) Minus(args, mm); const_cast(op->getArguments())[1]->setLocationInfo(item); } else { const_cast(op->getArguments())[1] = item; } redoTyping_ = true; return optimize(op->staticTyping(0, 0)); } } } if(args[0]->isConstant() && args[1]->getType() == ASTNode::OPERATOR) { XQOperator *op = (XQOperator*)args[1]; if(op->getOperatorName() == Minus::name || op->getOperatorName() == Plus::name) { if(op->getArguments()[0]->isConstant()) { // A + (B (+/-) C) = (A + B) (+/-) C args[1] = op->getArguments()[0]; const_cast(op->getArguments())[0] = item; redoTyping_ = true; return optimize(op->staticTyping(0, 0)); } else if(op->getArguments()[1]->isConstant()) { // A + (B + C) = (A + C) + B // A + (B - C) = (A - C) + B args[1] = op->getArguments()[0]; const_cast(op->getArguments())[0] = args[0]; redoTyping_ = true; return optimize(item->staticTyping(0, 0)); } } } if(args[1]->isConstant()) { AnyAtomicType::Ptr arg1 = (AnyAtomicType*)args[1]->createResult(context_)->next(context_).get(); if(arg1.notNull() && arg1->isNumericValue()) { // TBD type promotion - jpcs Numeric *num = (Numeric*)arg1.get(); if((num->getState() == Numeric::NUM || num->getState() == Numeric::NEG_NUM) && num->asMAPM() == 0) { // X + 0 = X ASTNode *result = args[0]; args[0] = 0; sizeLimit_ += ASTCounter().count(item); item->release(); redoTyping_ = true; return result; } } } if(args[0]->isConstant()) { AnyAtomicType::Ptr arg0 = (AnyAtomicType*)args[0]->createResult(context_)->next(context_).get(); if(arg0.notNull() && arg0->isNumericValue()) { // TBD type promotion - jpcs Numeric *num = (Numeric*)arg0.get(); if((num->getState() == Numeric::NUM || num->getState() == Numeric::NEG_NUM) && num->asMAPM() == 0) { // 0 + X = X ASTNode *result = args[1]; args[1] = 0; sizeLimit_ += ASTCounter().count(item); item->release(); return result; } } } return foldEmptyArgument(item, context_); } ASTNode *PartialEvaluator::optimizeMinus(Minus *item) { XPath2MemoryManager *mm = context_->getMemoryManager(); VectorOfASTNodes &args = const_cast(item->getArguments()); if(!item->getStaticAnalysis().getStaticType().isType(StaticType::NUMERIC_TYPE)) return foldEmptyArgument(item, context_); if(args[1]->isConstant() && args[0]->getType() == ASTNode::OPERATOR) { XQOperator *op = (XQOperator*)args[0]; if(op->getOperatorName() == Minus::name || op->getOperatorName() == Plus::name) { if(op->getArguments()[0]->isConstant()) { // (A (+/-) B) - C = (A - C) (+/-) B args[0] = op->getArguments()[0]; const_cast(op->getArguments())[0] = item; redoTyping_ = true; return optimize(op->staticTyping(0, 0)); } else if(op->getArguments()[1]->isConstant()) { // (A - B) - C = A - (B + C) // (A + B) - C = A + (B - C) args[0] = op->getArguments()[1]; if(op->getOperatorName() == Minus::name) { const_cast(op->getArguments())[1] = new (mm) Plus(args, mm); const_cast(op->getArguments())[1]->setLocationInfo(item); } else { const_cast(op->getArguments())[1] = item; } redoTyping_ = true; return optimize(op->staticTyping(0, 0)); } } } if(args[0]->isConstant() && args[1]->getType() == ASTNode::OPERATOR) { XQOperator *op = (XQOperator*)args[1]; if(op->getOperatorName() == Minus::name || op->getOperatorName() == Plus::name) { if(op->getArguments()[0]->isConstant()) { // A - (B (+/-) C) = (A - B) (+/-) C args[1] = op->getArguments()[0]; const_cast(op->getArguments())[0] = item; redoTyping_ = true; return optimize(op->staticTyping(0, 0)); } else if(op->getArguments()[1]->isConstant()) { // A - (B + C) = (A - C) - B // A - (B - C) = (A + C) - B args[1] = op->getArguments()[0]; const_cast(op->getArguments())[0] = args[0]; if(op->getOperatorName() == Minus::name) { args[0] = new (mm) Plus(op->getArguments(), mm); args[0]->setLocationInfo(op); } else { args[0] = new (mm) Minus(op->getArguments(), mm); args[0]->setLocationInfo(op); } redoTyping_ = true; return optimize(item->staticTyping(0, 0)); } } } if(args[1]->isConstant()) { AnyAtomicType::Ptr arg1 = (AnyAtomicType*)args[1]->createResult(context_)->next(context_).get(); if(arg1.notNull() && arg1->isNumericValue()) { // TBD type promotion - jpcs Numeric *num = (Numeric*)arg1.get(); if((num->getState() == Numeric::NUM || num->getState() == Numeric::NEG_NUM) && num->asMAPM() == 0) { // X - 0 = X ASTNode *result = args[0]; args[0] = 0; sizeLimit_ += ASTCounter().count(item); item->release(); return result; } } } if(args[0]->isConstant()) { AnyAtomicType::Ptr arg0 = (AnyAtomicType*)args[0]->createResult(context_)->next(context_).get(); if(arg0.notNull() && arg0->isNumericValue()) { // TBD type promotion - jpcs Numeric *num = (Numeric*)arg0.get(); if((num->getState() == Numeric::NUM || num->getState() == Numeric::NEG_NUM) && num->asMAPM() == 0) { // 0 - X = -X VectorOfASTNodes newArgs = VectorOfASTNodes(XQillaAllocator(mm)); newArgs.push_back(args[1]); ASTNode *result = new (mm) UnaryMinus(false, newArgs, mm); result->setLocationInfo(item); sizeLimit_ += ASTCounter().count(item); sizeLimit_ -= ASTCounter().count(result); args[1] = 0; item->release(); return result; } } } return foldEmptyArgument(item, context_); } ASTNode *PartialEvaluator::optimizeMultiply(Multiply *item) { VectorOfASTNodes &args = const_cast(item->getArguments()); if(!item->getStaticAnalysis().getStaticType().isType(StaticType::NUMERIC_TYPE)) return foldEmptyArgument(item, context_); if(args[1]->isConstant() && args[0]->getType() == ASTNode::OPERATOR) { XQOperator *op = (XQOperator*)args[0]; if(op->getOperatorName() == Multiply::name || op->getOperatorName() == Divide::name) { if(op->getArguments()[0]->isConstant()) { // (A * B) * C = (A * C) * B // (A / B) * C = (A * C) / B args[0] = op->getArguments()[0]; const_cast(op->getArguments())[0] = item; redoTyping_ = true; return optimize(op->staticTyping(0, 0)); } else if(op->getArguments()[1]->isConstant()) { // (A * B) * C = A * (C * B) // (A / B) * C = A * (C / B) args[0] = op->getArguments()[0]; const_cast(op->getArguments())[0] = args[1]; const_cast(op->getArguments())[1] = op->getArguments()[1]; args[1] = op; redoTyping_ = true; return optimize(item->staticTyping(0, 0)); } } } if(args[0]->isConstant() && args[1]->getType() == ASTNode::OPERATOR) { XQOperator *op = (XQOperator*)args[1]; if(op->getOperatorName() == Multiply::name || op->getOperatorName() == Divide::name) { if(op->getArguments()[0]->isConstant()) { // A * (B * C) = (A * B) * C // A * (B / C) = (A * B) / C args[1] = op->getArguments()[0]; const_cast(op->getArguments())[0] = item; redoTyping_ = true; return optimize(op->staticTyping(0, 0)); } else if(op->getArguments()[1]->isConstant()) { // A * (B * C) = (A * C) * B // A * (B / C) = (A / C) * B args[1] = op->getArguments()[0]; const_cast(op->getArguments())[0] = args[0]; redoTyping_ = true; return optimize(item->staticTyping(0, 0)); } } } if(args[1]->isConstant()) { AnyAtomicType::Ptr arg1 = (AnyAtomicType*)args[1]->createResult(context_)->next(context_).get(); if(arg1.notNull() && arg1->isNumericValue()) { // TBD type promotion - jpcs Numeric *num = (Numeric*)arg1.get(); if(num->getState() == Numeric::NUM && num->asMAPM() == 0 && item->getStaticAnalysis().getStaticType().isType(StaticType::DECIMAL_TYPE)) { // X * 0 = 0 // but only for xs:decimal, since otherwise "-0" messes things up ASTNode *result = args[1]; args[1] = 0; sizeLimit_ += ASTCounter().count(item); item->release(); return result; } else if(num->asMAPM() == 1) { // X * 1 = X ASTNode *result = args[0]; args[0] = 0; sizeLimit_ += ASTCounter().count(item); item->release(); return result; } } } if(args[0]->isConstant()) { AnyAtomicType::Ptr arg0 = (AnyAtomicType*)args[0]->createResult(context_)->next(context_).get(); if(arg0.notNull() && arg0->isNumericValue()) { // TBD type promotion - jpcs Numeric *num = (Numeric*)arg0.get(); if(num->asMAPM() == 0 && item->getStaticAnalysis().getStaticType().isType(StaticType::DECIMAL_TYPE)) { // 0 * X = 0 // but only for xs:decimal, since otherwise "-0" messes things up ASTNode *result = args[0]; args[0] = 0; sizeLimit_ += ASTCounter().count(item); item->release(); return result; } else if(num->asMAPM() == 1) { // 1 * X = X ASTNode *result = args[1]; args[1] = 0; sizeLimit_ += ASTCounter().count(item); item->release(); return result; } } } return foldEmptyArgument(item, context_); } ASTNode *PartialEvaluator::optimizeDivide(Divide *item) { XPath2MemoryManager *mm = context_->getMemoryManager(); VectorOfASTNodes &args = const_cast(item->getArguments()); if(!item->getStaticAnalysis().getStaticType().isType(StaticType::NUMERIC_TYPE)) return foldEmptyArgument(item, context_); // duration / duration = decimal if(args[0]->getStaticAnalysis().getStaticType().containsType(StaticType::DAY_TIME_DURATION_TYPE | StaticType::YEAR_MONTH_DURATION_TYPE) || args[1]->getStaticAnalysis().getStaticType().containsType(StaticType::DAY_TIME_DURATION_TYPE | StaticType::YEAR_MONTH_DURATION_TYPE)) return foldEmptyArgument(item, context_); if(args[1]->isConstant() && args[0]->getType() == ASTNode::OPERATOR) { XQOperator *op = (XQOperator*)args[0]; if(op->getOperatorName() == Multiply::name || op->getOperatorName() == Divide::name) { if(op->getArguments()[0]->isConstant()) { // (A / B) / C = (A / C) / B // (A * B) / C = (A / C) * B args[0] = op->getArguments()[0]; const_cast(op->getArguments())[0] = item; redoTyping_ = true; return optimize(op->staticTyping(0, 0)); } else if(op->getArguments()[1]->isConstant()) { // (A / B) / C = A / (B * C) // (A * B) / C = A * (B / C) args[0] = op->getArguments()[1]; if(op->getOperatorName() == Divide::name) { const_cast(op->getArguments())[1] = new (mm) Multiply(args, mm); const_cast(op->getArguments())[1]->setLocationInfo(item); } else { const_cast(op->getArguments())[1] = item; } redoTyping_ = true; return optimize(op->staticTyping(0, 0)); } } } if(args[0]->isConstant() && args[1]->getType() == ASTNode::OPERATOR) { XQOperator *op = (XQOperator*)args[1]; if(op->getOperatorName() == Multiply::name || op->getOperatorName() == Divide::name) { if(op->getArguments()[0]->isConstant()) { // A / (B / C) = (A / B) * C // A / (B * C) = (A / B) / C args[1] = op->getArguments()[0]; const_cast(op->getArguments())[0] = item; if(op->getOperatorName() == Divide::name) { op = new (mm) Multiply(op->getArguments(), mm); op->setLocationInfo(op); } else { op = new (mm) Divide(op->getArguments(), mm); op->setLocationInfo(op); } redoTyping_ = true; return optimize(op->staticTyping(0, 0)); } else if(op->getArguments()[1]->isConstant()) { // A / (B / C) = (A * C) / B // A / (B * C) = (A / C) / B args[1] = op->getArguments()[0]; const_cast(op->getArguments())[0] = args[0]; if(op->getOperatorName() == Divide::name) { args[0] = new (mm) Multiply(op->getArguments(), mm); args[0]->setLocationInfo(op); } else { args[0] = new (mm) Divide(op->getArguments(), mm); args[0]->setLocationInfo(op); } redoTyping_ = true; return optimize(item->staticTyping(0, 0)); } } } if(args[1]->isConstant()) { AnyAtomicType::Ptr arg1 = (AnyAtomicType*)args[1]->createResult(context_)->next(context_).get(); if(arg1.notNull() && arg1->isNumericValue()) { // TBD type promotion - jpcs Numeric *num = (Numeric*)arg1.get(); if(num->asMAPM() == 1) { // X / 1 = X ASTNode *result = args[0]; args[0] = 0; sizeLimit_ += ASTCounter().count(item); item->release(); return result; } } } // 0 / X = 0, but only if X != 0 - so we leave that one for regular constant folding return foldEmptyArgument(item, context_); } // Other things to constant fold: // // XQMap // global variables // // // XQNav // casts, conversions, atomize // XQilla-2.3.0/src/optimizer/Optimizer.cpp0000644000151400015140000000370311653565523015140 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include using namespace std; Optimizer::Optimizer(Optimizer *parent) : parent_(parent) {} Optimizer::~Optimizer() { if(parent_ != 0) { delete parent_; } } void Optimizer::resetInternal() { } void Optimizer::startOptimize(XQQuery *query) { if(parent_ != 0) { parent_->startOptimize(query); } optimize(query); } ASTNode *Optimizer::startOptimize(ASTNode *item) { if(parent_ != 0) { item = parent_->startOptimize(item); } return optimize(item); } XQUserFunction *Optimizer::startOptimize(XQUserFunction *item) { if(parent_ != 0) { item = parent_->startOptimize(item); } return optimizeFunctionDef(item); } void Optimizer::reset() { if(parent_ != 0) { parent_->reset(); } resetInternal(); } void StaticResolver::optimize(XQQuery *query) { query->staticResolution(); } ASTNode *StaticResolver::optimize(ASTNode *item) { return item->staticResolution(xpc_); } XQUserFunction *StaticResolver::optimizeFunctionDef(XQUserFunction *item) { item->staticResolutionStage2(xpc_); return item; } XQilla-2.3.0/src/optimizer/ASTReleaser.cpp0000644000151400015140000002764711653565523015305 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include "xqilla/functions/FunctionMatches.hpp" #include #include #include #include ASTReleaser::ASTReleaser() { } void ASTReleaser::release(ASTNode *item) { optimize(item); } void ASTReleaser::release(TupleNode *item) { optimizeTupleNode(item); } void ASTReleaser::release(XQUserFunction *item) { optimizeFunctionDef(item); } XQGlobalVariable *ASTReleaser::optimizeGlobalVar(XQGlobalVariable *item) { return ASTVisitor::optimizeGlobalVar(item); } XQUserFunction *ASTReleaser::optimizeFunctionDef(XQUserFunction *item) { if(item) { ASTVisitor::optimizeFunctionDef(item); item->releaseImpl(); } return 0; } ASTNode *ASTReleaser::optimizeUnknown(ASTNode *item) { return ASTVisitor::optimizeUnknown(item); } TupleNode *ASTReleaser::optimizeUnknownTupleNode(TupleNode *item) { return ASTVisitor::optimizeUnknownTupleNode(item); } FTSelection *ASTReleaser::optimizeUnknownFTSelection(FTSelection *selection) { return ASTVisitor::optimizeUnknownFTSelection(selection); } ASTNode *ASTReleaser::optimize(ASTNode *item) { if(item) { return ASTVisitor::optimize(item); } return 0; } TupleNode *ASTReleaser::optimizeTupleNode(TupleNode *item) { if(item) { return ASTVisitor::optimizeTupleNode(item); } return 0; } FTSelection *ASTReleaser::optimizeFTSelection(FTSelection *selection) { if(selection) { return ASTVisitor::optimizeFTSelection(selection); } return 0; } #define RELEASE_IMPL() { \ const_cast(item->getStaticAnalysis()).release(); \ item->getMemoryManager()->deallocate(item); \ return 0; \ } #define RELEASE_FULL(methodname, classname) \ ASTNode *ASTReleaser::optimize ## methodname (classname *item) \ { \ ASTVisitor::optimize ## methodname (item); \ RELEASE_IMPL(); \ } #define RELEASE_XQ(name) RELEASE_FULL(name, XQ ## name) #define RELEASE(name) RELEASE_FULL(name, name) // TBD release ItemConstructor objects - jpcs // TBD release SequenceType objects - jpcs // TBD release FTSelection objects - jpcs RELEASE_XQ(Literal) RELEASE_XQ(QNameLiteral) RELEASE_XQ(NumericLiteral) RELEASE_XQ(Step) RELEASE_XQ(Variable) RELEASE_XQ(If) RELEASE_XQ(CastableAs) RELEASE_XQ(CastAs) RELEASE_XQ(TreatAs) RELEASE_XQ(FunctionCoercion) RELEASE_XQ(ContextItem) RELEASE_XQ(Return) RELEASE_XQ(Quantified) RELEASE_XQ(Validate) RELEASE_XQ(OrderingChange) RELEASE_XQ(Atomize) RELEASE_XQ(EffectiveBooleanValue) RELEASE_XQ(PromoteUntyped) RELEASE_XQ(PromoteNumeric) RELEASE_XQ(PromoteAnyURI) RELEASE_XQ(DocumentOrder) RELEASE_XQ(Predicate) RELEASE_XQ(Map) RELEASE_XQ(NameExpression) RELEASE_XQ(ContentSequence) RELEASE_XQ(DirectName) RELEASE_XQ(NamespaceBinding) RELEASE_XQ(FunctionConversion) RELEASE_XQ(AnalyzeString) RELEASE_XQ(CopyOf) RELEASE_XQ(FunctionRef) RELEASE(ASTDebugHook) RELEASE(UDelete) RELEASE(URename) RELEASE(UReplace) RELEASE(UReplaceValueOf) RELEASE(UInsertAsFirst) RELEASE(UInsertAsLast) RELEASE(UInsertInto) RELEASE(UInsertAfter) RELEASE(UInsertBefore) RELEASE(UApplyUpdates) RELEASE(FTContains) ASTNode *ASTReleaser::optimizeInlineFunction(XQInlineFunction *item) { ASTVisitor::optimizeInlineFunction(item); if(item->getSignature()) item->getSignature()->release(); RELEASE_IMPL(); } ASTNode *ASTReleaser::optimizeFunction(XQFunction *item) { ASTVisitor::optimizeFunction(item); const XMLCh *uri = item->getFunctionURI(); const XMLCh *name = item->getFunctionName(); if(uri == XQFunction::XMLChFunctionURI) { // one of three regexp functions if(name == FunctionMatches::name || name == FunctionReplace::name || name == FunctionTokenize::name) { RegExpFunction *f = (RegExpFunction*) item; const XERCES_CPP_NAMESPACE_QUALIFIER RegularExpression *regExp = f->getRegExp(); delete regExp; } } // Release the argument vector const_cast(item->getArguments()).~VectorOfASTNodes(); if(item->getSignature()) item->getSignature()->release(); RELEASE_IMPL(); } ASTNode *ASTReleaser::optimizeNav(XQNav *item) { ASTVisitor::optimizeNav(item); // Release the step vector #if defined(_MSC_VER) || defined(__xlC__) typedef XQNav::Steps StepVector; const_cast(item->getSteps()).~StepVector(); #else const_cast >&>(item->getSteps()).~vector >(); #endif RELEASE_IMPL(); } ASTNode *ASTReleaser::optimizeSequence(XQSequence *item) { ASTVisitor::optimizeSequence(item); // Release the argument vector const_cast(item->getChildren()).~VectorOfASTNodes(); RELEASE_IMPL(); } ASTNode *ASTReleaser::optimizeOperator(XQOperator *item) { ASTVisitor::optimizeOperator(item); // Release the argument vector const_cast(item->getArguments()).~VectorOfASTNodes(); RELEASE_IMPL(); } ASTNode *ASTReleaser::optimizeTypeswitch(XQTypeswitch *item) { ASTVisitor::optimizeTypeswitch(item); // Release the clauses and vector #if defined(_MSC_VER) || defined(__xlC__) typedef XQTypeswitch::Cases ClauseVector; ClauseVector *clauses = const_cast(item->getCases()); #else std::vector >* clauses = const_cast >*>(item->getCases()); #endif for(XQTypeswitch::Cases::iterator i = clauses->begin(); i != clauses->end(); ++i) { item->getMemoryManager()->deallocate(*i); } #if defined(_MSC_VER) || defined(__xlC__) clauses->~ClauseVector(); #else clauses->~vector >(); #endif item->getMemoryManager()->deallocate(clauses); RELEASE_IMPL(); } ASTNode *ASTReleaser::optimizeFunctionCall(XQFunctionCall *item) { ASTVisitor::optimizeFunctionCall(item); // Release the argument vector VectorOfASTNodes *args = const_cast(item->getArguments()); args->~VectorOfASTNodes(); item->getMemoryManager()->deallocate(args); RELEASE_IMPL(); } ASTNode *ASTReleaser::optimizeUserFunction(XQUserFunctionInstance *item) { ASTVisitor::optimizeUserFunction(item); // Release the argument vector const_cast(item->getArguments()).~VectorOfASTNodes(); RELEASE_IMPL(); } ASTNode *ASTReleaser::optimizeDOMConstructor(XQDOMConstructor *item) { ASTVisitor::optimizeDOMConstructor(item); // Release the attrs vector VectorOfASTNodes *attrs = const_cast(item->getAttributes()); if(attrs) { attrs->~VectorOfASTNodes(); item->getMemoryManager()->deallocate(attrs); } // Release the children vector VectorOfASTNodes *children = const_cast(item->getChildren()); if(children) { children->~VectorOfASTNodes(); item->getMemoryManager()->deallocate(children); } RELEASE_IMPL(); } ASTNode *ASTReleaser::optimizeSimpleContent(XQSimpleContent *item) { ASTVisitor::optimizeSimpleContent(item); // Release the children vector VectorOfASTNodes *children = const_cast(item->getChildren()); if(children) { children->~VectorOfASTNodes(); item->getMemoryManager()->deallocate(children); } RELEASE_IMPL(); } ASTNode *ASTReleaser::optimizeCopy(XQCopy *item) { ASTVisitor::optimizeCopy(item); // Release the children vector const_cast(item->getChildren()).~VectorOfASTNodes(); RELEASE_IMPL(); } ASTNode *ASTReleaser::optimizeCallTemplate(XQCallTemplate *item) { ASTVisitor::optimizeCallTemplate(item); // Release the template arguments and vector TemplateArguments *args = item->getArguments(); if(args != 0) { for(TemplateArguments::iterator i = args->begin(); i != args->end(); ++i) { (*i)->varSrc.release(); item->getMemoryManager()->deallocate(*i); } args->~TemplateArguments(); item->getMemoryManager()->deallocate(args); } RELEASE_IMPL(); } ASTNode *ASTReleaser::optimizeApplyTemplates(XQApplyTemplates *item) { ASTVisitor::optimizeApplyTemplates(item); // Release the template arguments and vector TemplateArguments *args = item->getArguments(); if(args != 0) { for(TemplateArguments::iterator i = args->begin(); i != args->end(); ++i) { (*i)->varSrc.release(); item->getMemoryManager()->deallocate(*i); } args->~TemplateArguments(); item->getMemoryManager()->deallocate(args); } RELEASE_IMPL(); } ASTNode *ASTReleaser::optimizeFunctionDeref(XQFunctionDeref *item) { ASTVisitor::optimizeFunctionDeref(item); // Release the argument vector VectorOfASTNodes *args = const_cast(item->getArguments()); args->~VectorOfASTNodes(); item->getMemoryManager()->deallocate(args); RELEASE_IMPL(); } ASTNode *ASTReleaser::optimizePartialApply(XQPartialApply *item) { ASTVisitor::optimizePartialApply(item); // Release the argument vector VectorOfASTNodes *args = const_cast(item->getArguments()); args->~VectorOfASTNodes(); item->getMemoryManager()->deallocate(args); RELEASE_IMPL(); } ASTNode *ASTReleaser::optimizeUTransform(UTransform *item) { ASTVisitor::optimizeUTransform(item); // Release the copy bindings and vector VectorOfCopyBinding *bindings = const_cast(item->getBindings()); if(bindings != 0) { for(VectorOfCopyBinding::iterator i = bindings->begin(); i != bindings->end(); ++i) { (*i)->src_.release(); item->getMemoryManager()->deallocate(*i); } bindings->~VectorOfCopyBinding(); item->getMemoryManager()->deallocate(bindings); } RELEASE_IMPL(); } #define RELEASE_TUPLE(name) \ TupleNode *ASTReleaser::optimize ## name (name *item) \ { \ ASTVisitor::optimize ## name (item); \ item->getMemoryManager()->deallocate(item); \ return 0; \ } RELEASE_TUPLE(ContextTuple) RELEASE_TUPLE(ForTuple) RELEASE_TUPLE(LetTuple) RELEASE_TUPLE(WhereTuple) RELEASE_TUPLE(CountTuple) RELEASE_TUPLE(OrderByTuple) RELEASE_TUPLE(TupleDebugHook) #define RELEASE_FT(classname) \ FTSelection *ASTReleaser::optimize ## classname (classname *selection) \ { \ ASTVisitor::optimize ## classname (selection); \ const_cast(selection->getStaticAnalysis()).release(); \ selection->getMemoryManager()->deallocate(selection); \ return 0; \ } RELEASE_FT(FTWords) RELEASE_FT(FTWord) RELEASE_FT(FTMildnot) RELEASE_FT(FTUnaryNot) RELEASE_FT(FTOrder) RELEASE_FT(FTDistance) RELEASE_FT(FTDistanceLiteral) RELEASE_FT(FTScope) RELEASE_FT(FTContent) RELEASE_FT(FTWindow) RELEASE_FT(FTWindowLiteral) FTSelection *ASTReleaser::optimizeFTOr(FTOr *selection) { ASTVisitor::optimizeFTOr(selection); const_cast(selection->getArguments()).~VectorOfFTSelections(); const_cast(selection->getStaticAnalysis()).release(); selection->getMemoryManager()->deallocate(selection); return 0; } FTSelection *ASTReleaser::optimizeFTAnd(FTAnd *selection) { ASTVisitor::optimizeFTAnd(selection); const_cast(selection->getArguments()).~VectorOfFTSelections(); const_cast(selection->getStaticAnalysis()).release(); selection->getMemoryManager()->deallocate(selection); return 0; } XQilla-2.3.0/src/optimizer/ASTVisitor.cpp0000644000151400015140000006504111653565523015170 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include using namespace std; void ASTVisitor::optimize(XQQuery *query) { if(query->isModuleCacheOwned()) { ImportedModules &modules = const_cast(query->getModuleCache()->ordered_); for(ImportedModules::iterator it2 = modules.begin(); it2 != modules.end(); ++it2) { optimize(*it2); } } vector newVars; GlobalVariables &vars = const_cast(query->getVariables()); for(GlobalVariables::iterator it = vars.begin(); it != vars.end(); ++it) { XQGlobalVariable *newGV = optimizeGlobalVar(*it); if(newGV != 0) { newVars.push_back(newGV); } } vars.clear(); for(vector::iterator i = newVars.begin(); i != newVars.end(); ++i) { vars.push_back(*i); } UserFunctions &funcs = const_cast(query->getFunctions()); for(UserFunctions::iterator i2 = funcs.begin(); i2 != funcs.end(); ++i2) { *i2 = optimizeFunctionDef(*i2); } if(query->getQueryBody() != 0) { query->setQueryBody(optimize(query->getQueryBody())); } } XQGlobalVariable *ASTVisitor::optimizeGlobalVar(XQGlobalVariable *item) { if(item->getVariableExpr()) { item->setVariableExpr(optimize(const_cast(item->getVariableExpr()))); } return item; } XQUserFunction *ASTVisitor::optimizeFunctionDef(XQUserFunction *item) { if(item->getFunctionBody()) { item->setFunctionBody(optimize(const_cast(item->getFunctionBody()))); } if(item->getPattern()) { VectorOfASTNodes::iterator patIt = item->getPattern()->begin(); for(; patIt != item->getPattern()->end(); ++patIt) { (*patIt) = optimize(*patIt); } } if(item->getTemplateInstance()) { item->setTemplateInstance(optimize(item->getTemplateInstance())); } return item; } ASTNode *ASTVisitor::optimize(ASTNode *item) { switch(item->getType()) { case ASTNode::LITERAL: return optimizeLiteral((XQLiteral *)item); case ASTNode::QNAME_LITERAL: return optimizeQNameLiteral((XQQNameLiteral *)item); case ASTNode::NUMERIC_LITERAL: return optimizeNumericLiteral((XQNumericLiteral *)item); case ASTNode::SEQUENCE: return optimizeSequence((XQSequence *)item); case ASTNode::FUNCTION: return optimizeFunction((XQFunction *)item); case ASTNode::NAVIGATION: return optimizeNav((XQNav *)item); case ASTNode::VARIABLE: return optimizeVariable((XQVariable *)item); case ASTNode::STEP: return optimizeStep((XQStep *)item); case ASTNode::IF: return optimizeIf((XQIf *)item); case ASTNode::CASTABLE_AS: return optimizeCastableAs((XQCastableAs *)item); case ASTNode::CAST_AS: return optimizeCastAs((XQCastAs *)item); case ASTNode::TREAT_AS: return optimizeTreatAs((XQTreatAs *)item); case ASTNode::FUNCTION_COERCION: return optimizeFunctionCoercion((XQFunctionCoercion *)item); case ASTNode::OPERATOR: return optimizeOperator((XQOperator *)item); case ASTNode::CONTEXT_ITEM: return optimizeContextItem((XQContextItem *)item); case ASTNode::RETURN: return optimizeReturn((XQReturn *)item); case ASTNode::QUANTIFIED: return optimizeQuantified((XQQuantified *)item); case ASTNode::TYPESWITCH: return optimizeTypeswitch((XQTypeswitch *)item); case ASTNode::VALIDATE: return optimizeValidate((XQValidate *)item); case ASTNode::FUNCTION_CALL: return optimizeFunctionCall((XQFunctionCall *)item); case ASTNode::DOM_CONSTRUCTOR: return optimizeDOMConstructor((XQDOMConstructor *)item); case ASTNode::SIMPLE_CONTENT: return optimizeSimpleContent((XQSimpleContent *)item); case ASTNode::ORDERING_CHANGE: return optimizeOrderingChange((XQOrderingChange *)item); case ASTNode::ATOMIZE: return optimizeAtomize((XQAtomize *)item); case ASTNode::EBV: return optimizeEffectiveBooleanValue((XQEffectiveBooleanValue *)item); case ASTNode::MAP: return optimizeMap((XQMap *)item); case ASTNode::PROMOTE_UNTYPED: return optimizePromoteUntyped((XQPromoteUntyped *)item); case ASTNode::PROMOTE_NUMERIC: return optimizePromoteNumeric((XQPromoteNumeric *)item); case ASTNode::PROMOTE_ANY_URI: return optimizePromoteAnyURI((XQPromoteAnyURI *)item); case ASTNode::DOCUMENT_ORDER: return optimizeDocumentOrder((XQDocumentOrder *)item); case ASTNode::PREDICATE: return optimizePredicate((XQPredicate *)item); case ASTNode::USER_FUNCTION: return optimizeUserFunction((XQUserFunctionInstance *)item); case ASTNode::NAME_EXPRESSION: return optimizeNameExpression((XQNameExpression *)item); case ASTNode::CONTENT_SEQUENCE: return optimizeContentSequence((XQContentSequence *)item); case ASTNode::DIRECT_NAME: return optimizeDirectName((XQDirectName *)item); case ASTNode::UDELETE: return optimizeUDelete((UDelete *)item); case ASTNode::URENAME: return optimizeURename((URename *)item); case ASTNode::UREPLACE: return optimizeUReplace((UReplace *)item); case ASTNode::UREPLACE_VALUE_OF: return optimizeUReplaceValueOf((UReplaceValueOf *)item); case ASTNode::UINSERT_AS_FIRST: return optimizeUInsertAsFirst((UInsertAsFirst *)item); case ASTNode::UINSERT_AS_LAST: return optimizeUInsertAsLast((UInsertAsLast *)item); case ASTNode::UINSERT_INTO: return optimizeUInsertInto((UInsertInto *)item); case ASTNode::UINSERT_AFTER: return optimizeUInsertAfter((UInsertAfter *)item); case ASTNode::UINSERT_BEFORE: return optimizeUInsertBefore((UInsertBefore *)item); case ASTNode::UTRANSFORM: return optimizeUTransform((UTransform *)item); case ASTNode::UAPPLY_UPDATES: return optimizeUApplyUpdates((UApplyUpdates *)item); case ASTNode::FTCONTAINS: return optimizeFTContains((FTContains *)item); case ASTNode::NAMESPACE_BINDING: return optimizeNamespaceBinding((XQNamespaceBinding *)item); case ASTNode::FUNCTION_CONVERSION: return optimizeFunctionConversion((XQFunctionConversion *)item); case ASTNode::ANALYZE_STRING: return optimizeAnalyzeString((XQAnalyzeString *)item); case ASTNode::COPY_OF: return optimizeCopyOf((XQCopyOf *)item); case ASTNode::COPY: return optimizeCopy((XQCopy *)item); case ASTNode::DEBUG_HOOK: return optimizeASTDebugHook((ASTDebugHook *)item); case ASTNode::CALL_TEMPLATE: return optimizeCallTemplate((XQCallTemplate *)item); case ASTNode::APPLY_TEMPLATES: return optimizeApplyTemplates((XQApplyTemplates *)item); case ASTNode::INLINE_FUNCTION: return optimizeInlineFunction((XQInlineFunction *)item); case ASTNode::FUNCTION_REF: return optimizeFunctionRef((XQFunctionRef *)item); case ASTNode::FUNCTION_DEREF: return optimizeFunctionDeref((XQFunctionDeref *)item); case ASTNode::PARTIAL_APPLY: return optimizePartialApply((XQPartialApply *)item); } return optimizeUnknown(item); } ASTNode *ASTVisitor::optimizeUnknown(ASTNode *item) { return item; } ASTNode *ASTVisitor::optimizeFunction(XQFunction *item) { VectorOfASTNodes &args = const_cast(item->getArguments()); for(VectorOfASTNodes::iterator i = args.begin(); i != args.end(); ++i) { *i = optimize(*i); } return item; } ASTNode *ASTVisitor::optimizeContextItem(XQContextItem *item) { return item; } ASTNode *ASTVisitor::optimizeLiteral(XQLiteral *item) { return item; } ASTNode *ASTVisitor::optimizeQNameLiteral(XQQNameLiteral *item) { return item; } ASTNode *ASTVisitor::optimizeNumericLiteral(XQNumericLiteral *item) { return item; } ASTNode *ASTVisitor::optimizeNav(XQNav *item) { XQNav::Steps &args = const_cast(item->getSteps()); for(XQNav::Steps::iterator i = args.begin(); i != args.end(); ++i) { i->step = optimize(i->step); } return item; } ASTNode *ASTVisitor::optimizeSequence(XQSequence *item) { VectorOfASTNodes &args = const_cast(item->getChildren()); for(VectorOfASTNodes::iterator i = args.begin(); i != args.end(); ++i) { *i = optimize(*i); } return item; } ASTNode *ASTVisitor::optimizeStep(XQStep *item) { return item; } ASTNode *ASTVisitor::optimizeVariable(XQVariable *item) { return item; } ASTNode *ASTVisitor::optimizeIf(XQIf *item) { item->setTest(optimize(const_cast(item->getTest()))); item->setWhenTrue(optimize(const_cast(item->getWhenTrue()))); item->setWhenFalse(optimize(const_cast(item->getWhenFalse()))); return item; } ASTNode *ASTVisitor::optimizeCastableAs(XQCastableAs *item) { item->setExpression(optimize(const_cast(item->getExpression()))); return item; } ASTNode *ASTVisitor::optimizeCastAs(XQCastAs *item) { item->setExpression(optimize(const_cast(item->getExpression()))); return item; } ASTNode *ASTVisitor::optimizeTreatAs(XQTreatAs *item) { item->setExpression(optimize(item->getExpression())); return item; } ASTNode *ASTVisitor::optimizeFunctionCoercion(XQFunctionCoercion *item) { item->setExpression(optimize(item->getExpression())); if(item->getFuncConvert()) item->setFuncConvert(optimize(item->getFuncConvert())); return item; } ASTNode *ASTVisitor::optimizeOperator(XQOperator *item) { VectorOfASTNodes &args = const_cast(item->getArguments()); for(VectorOfASTNodes::iterator i = args.begin(); i != args.end(); ++i) { *i = optimize(*i); } return item; } ASTNode *ASTVisitor::optimizeReturn(XQReturn *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); item->setExpression(optimize(item->getExpression())); return item; } ASTNode *ASTVisitor::optimizeQuantified(XQQuantified *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); item->setExpression(optimize(item->getExpression())); return item; } ASTNode *ASTVisitor::optimizeTypeswitch(XQTypeswitch *item) { item->setExpression(optimize(const_cast(item->getExpression()))); XQTypeswitch::Cases *clauses = const_cast(item->getCases()); for(XQTypeswitch::Cases::iterator i = clauses->begin(); i != clauses->end(); ++i) { (*i)->setExpression(optimize((*i)->getExpression())); } const_cast(item->getDefaultCase())-> setExpression(optimize(item->getDefaultCase()->getExpression())); return item; } ASTNode *ASTVisitor::optimizeValidate(XQValidate *item) { item->setExpression(optimize(const_cast(item->getExpression()))); return item; } ASTNode *ASTVisitor::optimizeFunctionCall(XQFunctionCall *item) { VectorOfASTNodes *args = const_cast(item->getArguments()); for(VectorOfASTNodes::iterator i = args->begin(); i != args->end(); ++i) { *i = optimize(*i); } return item; } ASTNode *ASTVisitor::optimizeUserFunction(XQUserFunctionInstance *item) { VectorOfASTNodes &args = const_cast(item->getArguments()); for(VectorOfASTNodes::iterator i = args.begin(); i != args.end(); ++i) { *i = optimize(*i); } return item; } ASTNode *ASTVisitor::optimizeNameExpression(XQNameExpression *item) { item->setExpression(optimize(const_cast(item->getExpression()))); return item; } ASTNode *ASTVisitor::optimizeContentSequence(XQContentSequence *item) { item->setExpression(optimize(const_cast(item->getExpression()))); return item; } ASTNode *ASTVisitor::optimizeDirectName(XQDirectName *item) { return item; } ASTNode *ASTVisitor::optimizeDOMConstructor(XQDOMConstructor *item) { if(item->getName()) { item->setName(optimize(const_cast(item->getName()))); } VectorOfASTNodes *attrs = const_cast(item->getAttributes()); if(attrs) { for(VectorOfASTNodes::iterator i = attrs->begin(); i != attrs->end(); ++i) { *i = optimize(*i); } } VectorOfASTNodes *children = const_cast(item->getChildren()); if(children) { for(VectorOfASTNodes::iterator j = children->begin(); j != children->end(); ++j) { *j = optimize(*j); } } if(item->getValue()) { item->setValue(optimize(const_cast(item->getValue()))); } return item; } ASTNode *ASTVisitor::optimizeSimpleContent(XQSimpleContent *item) { VectorOfASTNodes *children = const_cast(item->getChildren()); if(children) { for(VectorOfASTNodes::iterator j = children->begin(); j != children->end(); ++j) { *j = optimize(*j); } } return item; } ASTNode *ASTVisitor::optimizeOrderingChange(XQOrderingChange *item) { item->setExpr(optimize(item->getExpr())); return item; } ASTNode *ASTVisitor::optimizeAtomize(XQAtomize *item) { item->setExpression(optimize(const_cast(item->getExpression()))); return item; } ASTNode *ASTVisitor::optimizeEffectiveBooleanValue(XQEffectiveBooleanValue *item) { item->setExpression(optimize(const_cast(item->getExpression()))); return item; } ASTNode *ASTVisitor::optimizeMap(XQMap *item) { item->setArg1(optimize(item->getArg1())); item->setArg2(optimize(item->getArg2())); return item; } ASTNode *ASTVisitor::optimizePromoteUntyped(XQPromoteUntyped *item) { item->setExpression(optimize(const_cast(item->getExpression()))); return item; } ASTNode *ASTVisitor::optimizePromoteNumeric(XQPromoteNumeric *item) { item->setExpression(optimize(const_cast(item->getExpression()))); return item; } ASTNode *ASTVisitor::optimizePromoteAnyURI(XQPromoteAnyURI *item) { item->setExpression(optimize(const_cast(item->getExpression()))); return item; } ASTNode *ASTVisitor::optimizeDocumentOrder(XQDocumentOrder *item) { item->setExpression(optimize(const_cast(item->getExpression()))); return item; } ASTNode *ASTVisitor::optimizePredicate(XQPredicate *item) { item->setExpression(optimize(const_cast(item->getExpression()))); item->setPredicate(optimize(const_cast(item->getPredicate()))); return item; } ASTNode *ASTVisitor::optimizeNamespaceBinding(XQNamespaceBinding *item) { item->setExpression(optimize(const_cast(item->getExpression()))); return item; } ASTNode *ASTVisitor::optimizeFunctionConversion(XQFunctionConversion *item) { item->setExpression(optimize(const_cast(item->getExpression()))); return item; } ASTNode *ASTVisitor::optimizeAnalyzeString(XQAnalyzeString *item) { item->setExpression(optimize(const_cast(item->getExpression()))); item->setRegex(optimize(const_cast(item->getRegex()))); if(item->getFlags()) item->setFlags(optimize(const_cast(item->getFlags()))); item->setMatch(optimize(const_cast(item->getMatch()))); item->setNonMatch(optimize(const_cast(item->getNonMatch()))); return item; } ASTNode *ASTVisitor::optimizeCopyOf(XQCopyOf *item) { item->setExpression(optimize(const_cast(item->getExpression()))); return item; } ASTNode *ASTVisitor::optimizeCopy(XQCopy *item) { item->setExpression(optimize(const_cast(item->getExpression()))); VectorOfASTNodes &args = const_cast(item->getChildren()); for(VectorOfASTNodes::iterator i = args.begin(); i != args.end(); ++i) { *i = optimize(*i); } return item; } ASTNode *ASTVisitor::optimizeASTDebugHook(ASTDebugHook *item) { item->setExpression(optimize(const_cast(item->getExpression()))); return item; } ASTNode *ASTVisitor::optimizeCallTemplate(XQCallTemplate *item) { TemplateArguments *args = item->getArguments(); if(args != 0) { for(TemplateArguments::iterator i = args->begin(); i != args->end(); ++i) { (*i)->value = optimize((*i)->value); } } if(item->getASTName()) item->setASTName(optimize(item->getASTName())); return item; } ASTNode *ASTVisitor::optimizeApplyTemplates(XQApplyTemplates *item) { item->setExpression(optimize(const_cast(item->getExpression()))); TemplateArguments *args = item->getArguments(); if(args != 0) { for(TemplateArguments::iterator i = args->begin(); i != args->end(); ++i) { (*i)->value = optimize((*i)->value); } } return item; } ASTNode *ASTVisitor::optimizeInlineFunction(XQInlineFunction *item) { if(item->getUserFunction()) item->setUserFunction(optimizeFunctionDef(item->getUserFunction())); item->setInstance(optimize(item->getInstance())); return item; } ASTNode *ASTVisitor::optimizeFunctionRef(XQFunctionRef *item) { return item; } ASTNode *ASTVisitor::optimizeFunctionDeref(XQFunctionDeref *item) { item->setExpression(optimize(item->getExpression())); VectorOfASTNodes *args = const_cast(item->getArguments()); if(args) { for(VectorOfASTNodes::iterator i = args->begin(); i != args->end(); ++i) { *i = optimize(*i); } } return item; } ASTNode *ASTVisitor::optimizePartialApply(XQPartialApply *item) { item->setExpression(optimize(item->getExpression())); VectorOfASTNodes *args = const_cast(item->getArguments()); if(args) { for(VectorOfASTNodes::iterator i = args->begin(); i != args->end(); ++i) { if(*i != 0) *i = optimize(*i); } } return item; } //////////////////////////////////////////////////////////////////////////////////////////////////// ASTNode *ASTVisitor::optimizeUDelete(UDelete *item) { item->setExpression(optimize(const_cast(item->getExpression()))); return item; } ASTNode *ASTVisitor::optimizeURename(URename *item) { item->setTarget(optimize(const_cast(item->getTarget()))); item->setName(optimize(const_cast(item->getName()))); return item; } ASTNode *ASTVisitor::optimizeUReplace(UReplace *item) { item->setTarget(optimize(const_cast(item->getTarget()))); item->setExpression(optimize(const_cast(item->getExpression()))); return item; } ASTNode *ASTVisitor::optimizeUReplaceValueOf(UReplaceValueOf *item) { item->setTarget(optimize(const_cast(item->getTarget()))); item->setExpression(optimize(const_cast(item->getExpression()))); return item; } ASTNode *ASTVisitor::optimizeUInsertAsFirst(UInsertAsFirst *item) { item->setSource(optimize(const_cast(item->getSource()))); item->setTarget(optimize(const_cast(item->getTarget()))); return item; } ASTNode *ASTVisitor::optimizeUInsertAsLast(UInsertAsLast *item) { item->setSource(optimize(const_cast(item->getSource()))); item->setTarget(optimize(const_cast(item->getTarget()))); return item; } ASTNode *ASTVisitor::optimizeUInsertInto(UInsertInto *item) { item->setSource(optimize(const_cast(item->getSource()))); item->setTarget(optimize(const_cast(item->getTarget()))); return item; } ASTNode *ASTVisitor::optimizeUInsertAfter(UInsertAfter *item) { item->setSource(optimize(const_cast(item->getSource()))); item->setTarget(optimize(const_cast(item->getTarget()))); return item; } ASTNode *ASTVisitor::optimizeUInsertBefore(UInsertBefore *item) { item->setSource(optimize(const_cast(item->getSource()))); item->setTarget(optimize(const_cast(item->getTarget()))); return item; } ASTNode *ASTVisitor::optimizeUTransform(UTransform *item) { VectorOfCopyBinding *bindings = const_cast(item->getBindings()); for(VectorOfCopyBinding::iterator i = bindings->begin(); i != bindings->end(); ++i) { (*i)->expr_ = optimize((*i)->expr_); } item->setModifyExpr(optimize(const_cast(item->getModifyExpr()))); item->setReturnExpr(optimize(const_cast(item->getReturnExpr()))); return item; } ASTNode *ASTVisitor::optimizeUApplyUpdates(UApplyUpdates *item) { item->setExpression(optimize(const_cast(item->getExpression()))); return item; } //////////////////////////////////////////////////////////////////////////////////////////////////// ASTNode *ASTVisitor::optimizeFTContains(FTContains *item) { item->setArgument(optimize(item->getArgument())); item->setSelection(optimizeFTSelection(item->getSelection())); if(item->getIgnore()) item->setIgnore(optimize(item->getIgnore())); return item; } FTSelection *ASTVisitor::optimizeFTSelection(FTSelection *selection) { switch(selection->getType()) { case FTSelection::OR: return optimizeFTOr((FTOr*)selection); case FTSelection::AND: return optimizeFTAnd((FTAnd*)selection); case FTSelection::MILD_NOT: return optimizeFTMildnot((FTMildnot*)selection); case FTSelection::UNARY_NOT: return optimizeFTUnaryNot((FTUnaryNot*)selection); case FTSelection::WORDS: return optimizeFTWords((FTWords*)selection); case FTSelection::WORD: return optimizeFTWord((FTWord*)selection); case FTSelection::ORDER: return optimizeFTOrder((FTOrder*)selection); case FTSelection::DISTANCE: return optimizeFTDistance((FTDistance*)selection); case FTSelection::DISTANCE_LITERAL: return optimizeFTDistanceLiteral((FTDistanceLiteral*)selection); case FTSelection::SCOPE: return optimizeFTScope((FTScope*)selection); case FTSelection::CONTENT: return optimizeFTContent((FTContent*)selection); case FTSelection::WINDOW: return optimizeFTWindow((FTWindow*)selection); case FTSelection::WINDOW_LITERAL: return optimizeFTWindowLiteral((FTWindowLiteral*)selection); } return optimizeUnknownFTSelection(selection); } FTSelection *ASTVisitor::optimizeUnknownFTSelection(FTSelection *selection) { return selection; } FTSelection *ASTVisitor::optimizeFTWords(FTWords *selection) { selection->setExpr(optimize(selection->getExpr())); return selection; } FTSelection *ASTVisitor::optimizeFTWord(FTWord *selection) { return selection; } FTSelection *ASTVisitor::optimizeFTOr(FTOr *selection) { VectorOfFTSelections &args = const_cast(selection->getArguments()); for(VectorOfFTSelections::iterator i = args.begin(); i != args.end(); ++i) { *i = optimizeFTSelection(*i); } return selection; } FTSelection *ASTVisitor::optimizeFTAnd(FTAnd *selection) { VectorOfFTSelections &args = const_cast(selection->getArguments()); for(VectorOfFTSelections::iterator i = args.begin(); i != args.end(); ++i) { *i = optimizeFTSelection(*i); } return selection; } FTSelection *ASTVisitor::optimizeFTMildnot(FTMildnot *selection) { selection->setLeft(optimizeFTSelection(selection->getLeft())); selection->setRight(optimizeFTSelection(selection->getRight())); return selection; } FTSelection *ASTVisitor::optimizeFTUnaryNot(FTUnaryNot *selection) { selection->setArgument(optimizeFTSelection(selection->getArgument())); return selection; } FTSelection *ASTVisitor::optimizeFTOrder(FTOrder *selection) { selection->setArgument(optimizeFTSelection(selection->getArgument())); return selection; } FTSelection *ASTVisitor::optimizeFTDistance(FTDistance *selection) { selection->setArgument(optimizeFTSelection(selection->getArgument())); FTRange &range = const_cast(selection->getRange()); range.arg1 = optimize(range.arg1); if(range.arg2) range.arg2 = optimize(range.arg2); return selection; } FTSelection *ASTVisitor::optimizeFTDistanceLiteral(FTDistanceLiteral *selection) { selection->setArgument(optimizeFTSelection(selection->getArgument())); return selection; } FTSelection *ASTVisitor::optimizeFTScope(FTScope *selection) { selection->setArgument(optimizeFTSelection(selection->getArgument())); return selection; } FTSelection *ASTVisitor::optimizeFTContent(FTContent *selection) { selection->setArgument(optimizeFTSelection(selection->getArgument())); return selection; } FTSelection *ASTVisitor::optimizeFTWindow(FTWindow *selection) { selection->setArgument(optimizeFTSelection(selection->getArgument())); selection->setExpr(optimize(selection->getExpr())); return selection; } FTSelection *ASTVisitor::optimizeFTWindowLiteral(FTWindowLiteral *selection) { selection->setArgument(optimizeFTSelection(selection->getArgument())); return selection; } //////////////////////////////////////////////////////////////////////////////////////////////////// TupleNode *ASTVisitor::optimizeTupleNode(TupleNode *item) { switch(item->getType()) { case TupleNode::CONTEXT_TUPLE: return optimizeContextTuple((ContextTuple*)item); case TupleNode::FOR: return optimizeForTuple((ForTuple*)item); case TupleNode::LET: return optimizeLetTuple((LetTuple*)item); case TupleNode::WHERE: return optimizeWhereTuple((WhereTuple*)item); case TupleNode::COUNT: return optimizeCountTuple((CountTuple*)item); case TupleNode::ORDER_BY: return optimizeOrderByTuple((OrderByTuple*)item); case TupleNode::DEBUG_HOOK: return optimizeTupleDebugHook((TupleDebugHook*)item); } return optimizeUnknownTupleNode(item); } TupleNode *ASTVisitor::optimizeUnknownTupleNode(TupleNode *item) { if(item->getParent()) item->setParent(optimizeTupleNode(const_cast(item->getParent()))); return item; } TupleNode *ASTVisitor::optimizeContextTuple(ContextTuple *item) { return item; } TupleNode *ASTVisitor::optimizeForTuple(ForTuple *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); item->setExpression(optimize(item->getExpression())); return item; } TupleNode *ASTVisitor::optimizeLetTuple(LetTuple *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); item->setExpression(optimize(item->getExpression())); return item; } TupleNode *ASTVisitor::optimizeWhereTuple(WhereTuple *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); item->setExpression(optimize(item->getExpression())); return item; } TupleNode *ASTVisitor::optimizeCountTuple(CountTuple *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); return item; } TupleNode *ASTVisitor::optimizeOrderByTuple(OrderByTuple *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); item->setExpression(optimize(item->getExpression())); return item; } TupleNode *ASTVisitor::optimizeTupleDebugHook(TupleDebugHook *item) { item->setParent(optimizeTupleNode(const_cast(item->getParent()))); return item; } XQilla-2.3.0/src/dom-api/0000755000151400015140000000000011653572442012031 500000000000000XQilla-2.3.0/src/dom-api/XPath2NodeSerializer.hpp0000644000151400015140000000316511653565523016437 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __XPATH2NODESERIALIZER_HPP #define __XPATH2NODESERIALIZER_HPP #include #include #if _XERCES_VERSION >= 30000 #include #else #include #endif XERCES_CPP_NAMESPACE_BEGIN class DOMNode; class XMLFormatter; XERCES_CPP_NAMESPACE_END class XQILLA_API XPath2NodeSerializer : #if _XERCES_VERSION >= 30000 public XERCES_CPP_NAMESPACE_QUALIFIER DOMLSSerializerImpl #else public XERCES_CPP_NAMESPACE_QUALIFIER DOMWriterImpl #endif { public: XPath2NodeSerializer(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* const manager = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager); virtual ~XPath2NodeSerializer(); protected: virtual bool customNodeSerialize(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* const nodeToWrite, int level); }; #endif XQilla-2.3.0/src/dom-api/XQillaImplementation.hpp0000644000151400015140000001325111653565523016566 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __XQILLAIMPLEMENTATION_HPP #define __XQILLAIMPLEMENTATION_HPP #include #include #include class XPath2MemoryManager; XERCES_CPP_NAMESPACE_BEGIN class XMLGrammarPool; XERCES_CPP_NAMESPACE_END /** * The XQillaImplentation class implements the * DOMImplementation interface and the * DOMImplementationSource interface and provides a number of methods * for performing operations that are independent of any particular instance * of the document object model. */ class XQILLA_API XQillaImplementation: public XERCES_CPP_NAMESPACE_QUALIFIER DOMImplementation, public XERCES_CPP_NAMESPACE_QUALIFIER DOMImplementationSource { protected: XQillaImplementation(); public: /** @name Destructor */ //@{ /** * Destructor * */ virtual ~XQillaImplementation(); //@} /** Factory method for getting a XQillaImplementation object. * The XQilla implementation retains ownership of the returned object. * Application code should NOT delete it. */ static XQillaImplementation* getDOMImplementationImpl(); /** Initialize the XQillaImplementation */ static void initialize(); /** Terminate the XQillaImplementation */ static void terminate(); // DOMImplementationLS methods #if _XERCES_VERSION >= 30000 virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMLSParser* createLSParser(const XERCES_CPP_NAMESPACE_QUALIFIER DOMImplementationLS::DOMImplementationLSMode mode, const XMLCh* const schemaType, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* const manager, XERCES_CPP_NAMESPACE_QUALIFIER XMLGrammarPool* const gramPool); virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMLSSerializer* createLSSerializer(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* const manager); virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMLSInput* createLSInput(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* const manager); virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMLSOutput* createLSOutput(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* const manager); #else virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMWriter* createDOMWriter(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* const manager = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager); /** * We create our own DOMBulider that creates a XQillaDocument. It also sets various parser options so we can * use the grammars correctly. Please note that if you pass your own XMLGrammarPool in then the special * XQuery types will not be available during parse **/ virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMBuilder* createDOMBuilder(const short mode, const XMLCh* const schemaType, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* const manager = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager, XERCES_CPP_NAMESPACE_QUALIFIER XMLGrammarPool* const gramPool = 0); virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMInputSource* createDOMInputSource(); #endif // DOMImplementationSource methods virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMImplementation* getDOMImplementation(const XMLCh* features) const; #if _XERCES_VERSION >= 30000 virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMImplementationList* getDOMImplementationList(const XMLCh* features) const; #endif // DOMImplementation methods virtual bool hasFeature(const XMLCh * feature, const XMLCh * version) const; virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument* createDocument(const XMLCh *namespaceURI, const XMLCh *qualifiedName, XERCES_CPP_NAMESPACE_QUALIFIER DOMDocumentType *doctype, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* const manager = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager); virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument* createDocument(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* const manager = XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager); virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMDocumentType *createDocumentType(const XMLCh *qualifiedName,const XMLCh * publicId, const XMLCh *systemId); #if _XERCES_VERSION >= 30000 virtual void* getFeature(const XMLCh* feature, const XMLCh* version) const; #else virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMImplementation* getInterface(const XMLCh* feature); #endif /** The "XPath2" feature */ static const XMLCh gXQilla[]; /** The "3.0" version */ static const XMLCh g3_0[]; XERCES_CPP_NAMESPACE_QUALIFIER DOMImplementation *domImpl; private: static XQillaImplementation* gDomimp; }; #endif XQilla-2.3.0/src/dom-api/impl/0000755000151400015140000000000011653572442012772 500000000000000XQilla-2.3.0/src/dom-api/impl/XPathNamespaceImpl.cpp0000644000151400015140000004644411653565523017117 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include "XPathNamespaceImpl.hpp" #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; XPathNamespaceImpl::XPathNamespaceImpl(const XMLCh* const nsPrefix, const XMLCh* const nsUri, DOMElement *owner, DOMDocument *docOwner) : fNode(docOwner) { DOMNodeImpl *argImpl = castToNodeImpl(this); if(owner) { argImpl->fOwnerNode = owner; argImpl->isOwned(true); } else { argImpl->fOwnerNode = docOwner; argImpl->isOwned(false); } argImpl->setIsLeafNode(true); DOMDocumentImpl *docImpl = (DOMDocumentImpl *)docOwner; uri = docImpl->getPooledString(nsUri); prefix = docImpl->getPooledString(nsPrefix); // this->ownerElement = owner; } XPathNamespaceImpl::XPathNamespaceImpl(const XPathNamespaceImpl &other) : fNode(other.fNode), uri(other.uri), prefix(other.prefix) { } XPathNamespaceImpl::~XPathNamespaceImpl() { } DOMNode * XPathNamespaceImpl::cloneNode(bool deep) const { throw DOMException::NOT_SUPPORTED_ERR; } const XMLCh *XPathNamespaceImpl::getNodeName() const { return prefix; } #if _XERCES_VERSION >= 30000 DOMNode::NodeType XPathNamespaceImpl::getNodeType() const #else short XPathNamespaceImpl::getNodeType() const #endif { return (DOMNode::NodeType)DOMXPathNamespace::XPATH_NAMESPACE_NODE; } const XMLCh *XPathNamespaceImpl::getPrefix() const { return prefix; } const XMLCh *XPathNamespaceImpl::getNamespaceURI() const { return uri; } DOMElement *XPathNamespaceImpl::getOwnerElement() const { return (DOMElement *) (fNode.isOwned() ? fNode.fOwnerNode : 0); } const XMLCh *XPathNamespaceImpl::getNodeValue() const { return 0; } void XPathNamespaceImpl::setNodeValue(const XMLCh *value) { throw DOMException(DOMException::NO_MODIFICATION_ALLOWED_ERR, 0); } void* XPathNamespaceImpl::setUserData(const XMLCh* key, void* data, DOMUserDataHandler* handler) { throw DOMException(DOMException::NO_MODIFICATION_ALLOWED_ERR, 0); } void XPathNamespaceImpl::setPrefix(const XMLCh *prefix) { throw DOMException(DOMException::NO_MODIFICATION_ALLOWED_ERR, 0); } #if _XERCES_VERSION >= 30000 short XPathNamespaceImpl::compareDocumentPosition(const DOMNode* other) const #else short XPathNamespaceImpl::compareTreePosition(const DOMNode* other) const #endif { //note: order of namespace nodes currently has issues (number 51). For our purposes //namespace nodes belong to the element on which they were originally declared //this is proberbly incorecct but easiest to implement. Will change when the idea //is firmed up REVISIT // Questions of clarification for this method - to be answered by the // DOM WG. Current assumptions listed - LM // // 1. How do ENTITY nodes compare? // Current assumption: TREE_POSITION_DISCONNECTED, as ENTITY nodes // aren't really 'in the tree' // // 2. How do NOTATION nodes compare? // Current assumption: TREE_POSITION_DISCONNECTED, as NOTATION nodes // aren't really 'in the tree' // // 3. Are TREE_POSITION_ANCESTOR and TREE_POSITION_DESCENDANT // only relevant for nodes that are "part of the document tree"? // // // // Is the element node "outer" considered an ancestor of "myattr"? // Current assumption: No. // // 4. How do children of ATTRIBUTE nodes compare (with eachother, or // with children of other attribute nodes with the same element) // Current assumption: Children of ATTRIBUTE nodes are treated as if // they are the attribute node itself, unless the 2 nodes // are both children of the same attribute. // // 5. How does an ENTITY_REFERENCE node compare with it's children? // Given the DOM, it should precede its children as an ancestor. // Given "document order", does it represent the same position? // Current assumption: An ENTITY_REFERENCE node is an ancestor of its // children. // // 6. How do children of a DocumentFragment compare? // Current assumption: If both nodes are part of the same document // fragment, there are compared as if they were part of a document. const DOMNode* thisNode = this; // If the nodes are the same... if (thisNode == other) #if _XERCES_VERSION >= 30000 return 0; #else return (DOMNode::TREE_POSITION_SAME_NODE | DOMNode::TREE_POSITION_EQUIVALENT); #endif // If either node is of type ENTITY or NOTATION, compare as disconnected short thisType = thisNode->getNodeType(); short otherType = other->getNodeType(); // If either node is of type ENTITY or NOTATION, compare as disconnected if (thisType == DOMNode::ENTITY_NODE || thisType == DOMNode::NOTATION_NODE || otherType == DOMNode::ENTITY_NODE || otherType == DOMNode::NOTATION_NODE ) { #if _XERCES_VERSION >= 30000 return DOMNode::DOCUMENT_POSITION_DISCONNECTED; #else return DOMNode::TREE_POSITION_DISCONNECTED; #endif } //if it is a custom node and bigger than us we must ask it for the order if(otherType > DOMXPathNamespace::XPATH_NAMESPACE_NODE) { DOMNodeImpl tmp(0); #if _XERCES_VERSION >= 30000 return tmp.reverseTreeOrderBitPattern(other->compareDocumentPosition(this)); #else return tmp.reverseTreeOrderBitPattern(other->compareTreePosition(this)); #endif } // Find the ancestor of each node, and the distance each node is from // its ancestor. // During this traversal, look for ancestor/descendent relationships // between the 2 nodes in question. // We do this now, so that we get this info correct for attribute nodes // and their children. const DOMNode *node; const DOMNode *thisAncestor = this; const DOMNode *otherAncestor = other; int thisDepth=0; int otherDepth=0; for (node = this; node != 0; node = node->getParentNode()) { thisDepth +=1; if (node == other) // The other node is an ancestor of this one. #if _XERCES_VERSION >= 30000 return (DOMNode::DOCUMENT_POSITION_CONTAINS | DOMNode::DOCUMENT_POSITION_PRECEDING); #else return (DOMNode::TREE_POSITION_ANCESTOR | DOMNode::TREE_POSITION_PRECEDING); #endif thisAncestor = node; } for (node=other; node != 0; node = node->getParentNode()) { otherDepth +=1; if (node == this) // The other node is a descendent of the reference node. #if _XERCES_VERSION >= 30000 return (DOMNode::DOCUMENT_POSITION_CONTAINED_BY | DOMNode::DOCUMENT_POSITION_FOLLOWING); #else return (DOMNode::TREE_POSITION_DESCENDANT | DOMNode::TREE_POSITION_FOLLOWING); #endif otherAncestor = node; } const DOMNode *otherNode = other; short thisAncestorType = thisAncestor->getNodeType(); short otherAncestorType = otherAncestor->getNodeType(); // if the ancestor is an attribute, get owning element. // we are now interested in the owner to determine position. if (thisAncestorType == DOMNode::ATTRIBUTE_NODE) { thisNode = ((DOMAttr *)thisAncestor)->getOwnerElement(); } if (thisAncestorType == DOMXPathNamespace::XPATH_NAMESPACE_NODE) { thisNode = ((XPathNamespaceImpl *)thisAncestor)->getOwnerElement(); } if (otherAncestorType == DOMNode::ATTRIBUTE_NODE) { otherNode = ((DOMAttr *)otherAncestor)->getOwnerElement(); } if (otherAncestorType == DOMXPathNamespace::XPATH_NAMESPACE_NODE) { otherNode = ((XPathNamespaceImpl *)otherAncestor)->getOwnerElement(); } // Before proceeding, we should check if both ancestor nodes turned // out to be attributes for the same element if (thisAncestorType == DOMNode::ATTRIBUTE_NODE && otherAncestorType == DOMNode::ATTRIBUTE_NODE && thisNode==otherNode) #if _XERCES_VERSION >= 30000 return DOMNode::DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC | (thisAncestor= 30000 return DOMNode::DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC | (thisAncestor= 30000 return DOMNode::DOCUMENT_POSITION_FOLLOWING; #else return DOMNode::TREE_POSITION_FOLLOWING; #endif //now do comparison between attrs if (thisAncestorType == DOMNode::ATTRIBUTE_NODE && otherAncestorType == DOMXPathNamespace::XPATH_NAMESPACE_NODE && thisNode==otherNode) #if _XERCES_VERSION >= 30000 return DOMNode::DOCUMENT_POSITION_PRECEDING; #else return DOMNode::TREE_POSITION_PRECEDING; #endif // Now, find the ancestor of the owning element, if the original // ancestor was an attribute if (thisAncestorType == DOMNode::ATTRIBUTE_NODE || thisAncestorType == DOMXPathNamespace::XPATH_NAMESPACE_NODE) { thisDepth=0; for (node=thisNode; node != 0; node = node->getParentNode()) { thisDepth +=1; if (node == otherNode) // The other node is an ancestor of the owning element #if _XERCES_VERSION >= 30000 return DOMNode::DOCUMENT_POSITION_PRECEDING; #else return DOMNode::TREE_POSITION_PRECEDING; #endif thisAncestor = node; } for (node=otherNode; node != 0; node = node->getParentNode()) { if (node == thisNode) // The other node is an ancestor of the owning element #if _XERCES_VERSION >= 30000 return DOMNode::DOCUMENT_POSITION_FOLLOWING; #else return DOMNode::TREE_POSITION_FOLLOWING; #endif } } // Now, find the ancestor of the owning element, if the original // ancestor was an attribute if (otherAncestorType == DOMNode::ATTRIBUTE_NODE || otherAncestorType == DOMXPathNamespace::XPATH_NAMESPACE_NODE) { otherDepth=0; for (node=otherNode; node != 0; node = node->getParentNode()) { otherDepth +=1; if (node == thisNode) // The other node is a descendent of the reference // node's element #if _XERCES_VERSION >= 30000 return DOMNode::DOCUMENT_POSITION_FOLLOWING; #else return DOMNode::TREE_POSITION_FOLLOWING; #endif otherAncestor = node; } for (node=thisNode; node != 0; node = node->getParentNode()) { if (node == otherNode) // The other node is an ancestor of the owning element #if _XERCES_VERSION >= 30000 return DOMNode::DOCUMENT_POSITION_PRECEDING; #else return DOMNode::TREE_POSITION_PRECEDING; #endif } } // thisAncestor and otherAncestor must be the same at this point, // otherwise, we are not in the same tree or document fragment if (thisAncestor != otherAncestor) #if _XERCES_VERSION >= 30000 return DOMNode::DOCUMENT_POSITION_DISCONNECTED | DOMNode::DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC | (thisAncestor otherDepth) { for (int i= 0 ; i < thisDepth - otherDepth; i++) thisNode = thisNode->getParentNode(); } else { for (int i = 0; i < otherDepth - thisDepth; i++) otherNode = otherNode->getParentNode(); } // We now have nodes at the same depth in the tree. Find a common // ancestor. DOMNode *thisNodeP, *otherNodeP; for (thisNodeP = thisNode->getParentNode(), otherNodeP = otherNode->getParentNode(); thisNodeP != otherNodeP;) { thisNode = thisNodeP; otherNode = otherNodeP; thisNodeP = thisNodeP->getParentNode(); otherNodeP = otherNodeP->getParentNode(); } // See whether thisNode or otherNode is the leftmost for (DOMNode *current = thisNodeP->getFirstChild(); current != 0; current = current->getNextSibling()) { if (current == otherNode) { #if _XERCES_VERSION >= 30000 return DOMNode::DOCUMENT_POSITION_PRECEDING; #else return DOMNode::TREE_POSITION_PRECEDING; #endif } else if (current == thisNode) { #if _XERCES_VERSION >= 30000 return DOMNode::DOCUMENT_POSITION_FOLLOWING; #else return DOMNode::TREE_POSITION_FOLLOWING; #endif } } // REVISIT: shouldn't get here. Should probably throw an // exception return 0; } void XPathNamespaceImpl::release() { if (fNode.isOwned() && !fNode.isToBeReleased()) throw DOMException(DOMException::INVALID_ACCESS_ERR,0); DOMDocumentImpl* doc = (DOMDocumentImpl*) getOwnerDocument(); if (doc) { fNode.callUserDataHandlers(DOMUserDataHandler::NODE_DELETED, 0, 0); doc->release(this, (DOMDocumentImpl::NodeObjectType)XPathNamespaceImpl::XPATH_NAMESPACE_OBJECT); } else { // shouldn't reach here throw DOMException(DOMException::INVALID_ACCESS_ERR,0); } } const XMLCh* XPathNamespaceImpl::getTextContent() const { return getNamespaceURI(); } const XMLCh* XPathNamespaceImpl::getLocalName() const { return this->getPrefix(); } // // Functions inherited from Node // DOMNamedNodeMap* XPathNamespaceImpl::getAttributes() const {return fNode.getAttributes (); }; DOMDocument* XPathNamespaceImpl::getOwnerDocument() const {return getOwnerElement()->getOwnerDocument(); }; bool XPathNamespaceImpl::hasAttributes() const {return fNode.hasAttributes(); }; bool XPathNamespaceImpl::isEqualNode(const DOMNode* arg) const {return fNode.isEqualNode(arg); }; DOMNode* XPathNamespaceImpl::appendChild(DOMNode *newChild) {return fNode.appendChild (newChild); }; DOMNodeList* XPathNamespaceImpl::getChildNodes() const {return fNode.getChildNodes (); }; DOMNode* XPathNamespaceImpl::getFirstChild() const {return fNode.getFirstChild (); }; DOMNode* XPathNamespaceImpl::getLastChild() const {return fNode.getLastChild (); }; DOMNode* XPathNamespaceImpl::getNextSibling() const {return fNode.getNextSibling (); }; //The exception is wrong - we need to sort out all these methods when we can compile again. DOMNode* XPathNamespaceImpl::getParentNode() const {return fNode.getParentNode ();}; DOMNode* XPathNamespaceImpl::getPreviousSibling() const {return fNode.getParentNode ();}; bool XPathNamespaceImpl::hasChildNodes() const {return fNode.hasChildNodes ();}; DOMNode* XPathNamespaceImpl::insertBefore(DOMNode *newChild, DOMNode *refChild) {return fNode.insertBefore (newChild, refChild); }; void XPathNamespaceImpl::normalize() {fNode.normalize (); }; DOMNode* XPathNamespaceImpl::removeChild(DOMNode *oldChild) {return fNode.removeChild (oldChild); }; DOMNode* XPathNamespaceImpl::replaceChild(DOMNode *newChild, DOMNode *oldChild) {return fNode.replaceChild (newChild, oldChild); }; bool XPathNamespaceImpl::isSupported(const XMLCh *feature, const XMLCh *version) const {return fNode.isSupported (feature, version); }; bool XPathNamespaceImpl::isSameNode(const DOMNode* other) const {return fNode.isSameNode(other); }; void* XPathNamespaceImpl::getUserData(const XMLCh* key) const {return fNode.getUserData(key); }; void XPathNamespaceImpl::setTextContent(const XMLCh* textContent){fNode.setTextContent(textContent); }; #if _XERCES_VERSION >= 20100 #if _XERCES_VERSION >= 30000 const XMLCh* XPathNamespaceImpl::lookupPrefix(const XMLCh* namespaceURI) const {return fNode.lookupPrefix(namespaceURI); }; #else const XMLCh* XPathNamespaceImpl::lookupNamespacePrefix(const XMLCh* namespaceURI, bool useDefault) const {return fNode.lookupNamespacePrefix(namespaceURI, useDefault); }; #endif bool XPathNamespaceImpl::isDefaultNamespace(const XMLCh* namespaceURI) const {return fNode.isDefaultNamespace(namespaceURI); }; const XMLCh* XPathNamespaceImpl::lookupNamespaceURI(const XMLCh* prefix) const {return fNode.lookupNamespaceURI(prefix); }; #else const XMLCh* XPathNamespaceImpl::lookupNamespacePrefix(const XMLCh* namespaceURI, bool useDefault) {return fNode.lookupNamespacePrefix(namespaceURI, useDefault); }; bool XPathNamespaceImpl::isDefaultNamespace(const XMLCh* namespaceURI) {return fNode.isDefaultNamespace(namespaceURI); }; const XMLCh* XPathNamespaceImpl::lookupNamespaceURI(const XMLCh* prefix) {return fNode.lookupNamespaceURI(prefix); }; #endif const XMLCh* XPathNamespaceImpl::getBaseURI() const {return fNode.getBaseURI(); }; #if _XERCES_VERSION >= 30000 void* XPathNamespaceImpl::getFeature(const XMLCh* feature, const XMLCh* version) const {return fNode.getFeature(feature, version); } #else DOMNode* XPathNamespaceImpl::getInterface(const XMLCh* feature) {return fNode.getInterface(feature); }; #endif XQilla-2.3.0/src/dom-api/impl/XQillaDocumentImpl.hpp0000644000151400015140000000737711653565523017156 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __XQILLADOCUMENTIMPL_HPP #define __XQILLADOCUMENTIMPL_HPP #include #include #include #include #include #include #include class DynamicContext; class XPath2Result; XERCES_CPP_NAMESPACE_BEGIN class XMLGrammarPool; XERCES_CPP_NAMESPACE_END class XQillaDocumentImpl : public XERCES_CPP_NAMESPACE_QUALIFIER DOMDocumentImpl { public: XQillaDocumentImpl(XERCES_CPP_NAMESPACE_QUALIFIER DOMImplementation* domImpl, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* const manager); XQillaDocumentImpl(const XMLCh* namespaceURI, const XMLCh* qualifiedName, XERCES_CPP_NAMESPACE_QUALIFIER DOMDocumentType* doctype, XERCES_CPP_NAMESPACE_QUALIFIER DOMImplementation* domImpl, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* const manager); virtual ~XQillaDocumentImpl(); #if _XERCES_VERSION >= 30000 virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathExpression* createExpression(const XMLCh *expression, const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver *resolver); virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver* createNSResolver(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *nodeResolver); virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathResult* evaluate(const XMLCh *expression, const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver *resolver, XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathResult::ResultType type, XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathResult* result); #else virtual const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathExpression* createExpression(const XMLCh *expression, const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver *resolver); virtual const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver* createNSResolver(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* nodeResolver); virtual void* evaluate(const XMLCh* expression, XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* contextNode, const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver* resolver, unsigned short type, void* reuseableResult); #endif virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *cloneNode(bool deep) const; virtual void setGrammarPool(XERCES_CPP_NAMESPACE_QUALIFIER XMLGrammarPool *xmlGrammarPool, bool adoptGramPool); virtual XERCES_CPP_NAMESPACE_QUALIFIER XMLGrammarPool *getGrammarPool(); protected: void becomeClone(const XQillaDocumentImpl *toClone, bool deep); XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *_createdWith; /// Used for creating objects returned from DOMXPathEvaluator methods ProxyMemoryManager _memMgr; XERCES_CPP_NAMESPACE_QUALIFIER XMLGrammarPool *_xmlGrammarPool; bool _adoptGramPool; }; #endif XQilla-2.3.0/src/dom-api/impl/XPathDocumentImpl.hpp0000644000151400015140000000373311653565523017000 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __XPATHDOCUMENTIMPL_HPP #define __XPATHDOCUMENTIMPL_HPP #include #include #include class XQILLA_API XPathDocumentImpl : public XERCES_CPP_NAMESPACE_QUALIFIER DOMDocumentImpl { public: XPathDocumentImpl(XERCES_CPP_NAMESPACE_QUALIFIER DOMImplementation* domImpl, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr); virtual ~XPathDocumentImpl(); virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* insertBefore(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *newChild, XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *refChild); virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* removeChild(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *oldChild); virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* replaceChild(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *newChild, XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *oldChild); virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMDocumentType* getDoctype() const; virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMElement* getDocumentElement() const; protected: XERCES_CPP_NAMESPACE_QUALIFIER DOMDocumentType* fMyDocType; XERCES_CPP_NAMESPACE_QUALIFIER DOMElement* fMyDocElement; }; #endif XQilla-2.3.0/src/dom-api/impl/XPathDocumentImpl.cpp0000644000151400015140000001673211653565523016776 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include "XPathDocumentImpl.hpp" #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif XPathDocumentImpl::XPathDocumentImpl(DOMImplementation* domImpl, MemoryManager* memMgr) #if _XERCES_VERSION >= 30000 : DOMDocumentImpl(domImpl, memMgr), #else : DOMDocumentImpl(memMgr), #endif fMyDocType(NULL), fMyDocElement(NULL) { #if _XERCES_VERSION >= 30000 setXmlVersion(XMLUni::fgVersion1_1); #else setVersion(XMLUni::fgVersion1_1); #endif } XPathDocumentImpl::~XPathDocumentImpl() { } DOMNode *XPathDocumentImpl::insertBefore(DOMNode *newChild, DOMNode *refChild) { // if the newChild is a documenttype node created from domimplementation, set the ownerDoc first if ((newChild->getNodeType() == DOMNode::DOCUMENT_TYPE_NODE) && !newChild->getOwnerDocument()) ((DOMDocumentTypeImpl*)newChild)->setOwnerDocument(this); if(newChild==NULL) throw DOMException(DOMException::HIERARCHY_REQUEST_ERR,0, getMemoryManager()); DOMNodeImpl *thisNodeImpl = castToNodeImpl(this); if (thisNodeImpl->isReadOnly()) throw DOMException(DOMException::NO_MODIFICATION_ALLOWED_ERR, 0, getMemoryManager()); DOMNode* thisNode = castToNode(&fParent); if (newChild->getOwnerDocument() != thisNode) throw DOMException(DOMException::WRONG_DOCUMENT_ERR, 0, getMemoryManager()); // refChild must in fact be a child of this node (or 0) if (refChild!=0 && refChild->getParentNode() != thisNode) throw DOMException(DOMException::NOT_FOUND_ERR,0, getMemoryManager()); // if the new node has to be placed before itself, we don't have to do anything // (even worse, we would crash if we continue, as we assume they are two distinct nodes) if (refChild!=0 && newChild->isSameNode(refChild)) return newChild; if (newChild->getNodeType() == DOMNode::DOCUMENT_FRAGMENT_NODE) { // SLOW BUT SAFE: We could insert the whole subtree without // juggling so many next/previous pointers. (Wipe out the // parent's child-list, patch the parent pointers, set the // ends of the list.) But we know some subclasses have special- // case behavior they add to insertBefore(), so we don't risk it. // This approch also takes fewer bytecodes. while(newChild->hasChildNodes()) // Move insertBefore(newChild->getFirstChild(),refChild); } else { DOMNode *oldparent=newChild->getParentNode(); if(oldparent!=0) oldparent->removeChild(newChild); // Attach up castToNodeImpl(newChild)->fOwnerNode = thisNode; castToNodeImpl(newChild)->isOwned(true); // Attach before and after // Note: fFirstChild.previousSibling == lastChild!! if (fParent.fFirstChild == 0) { // this our first and only child fParent.fFirstChild = newChild; castToNodeImpl(newChild)->isFirstChild(true); // castToChildImpl(newChild)->previousSibling = newChild; DOMChildNode *newChild_ci = castToChildImpl(newChild); newChild_ci->previousSibling = newChild; } else { if (refChild == 0) { // this is an append DOMNode *lastChild = castToChildImpl(fParent.fFirstChild)->previousSibling; castToChildImpl(lastChild)->nextSibling = newChild; castToChildImpl(newChild)->previousSibling = lastChild; castToChildImpl(fParent.fFirstChild)->previousSibling = newChild; } else { // this is an insert if (refChild == fParent.fFirstChild) { // at the head of the list castToNodeImpl(fParent.fFirstChild)->isFirstChild(false); castToChildImpl(newChild)->nextSibling = fParent.fFirstChild; castToChildImpl(newChild)->previousSibling = castToChildImpl(fParent.fFirstChild)->previousSibling; castToChildImpl(fParent.fFirstChild)->previousSibling = newChild; fParent.fFirstChild = newChild; castToNodeImpl(newChild)->isFirstChild(true); } else { // somewhere in the middle DOMNode *prev = castToChildImpl(refChild)->previousSibling; castToChildImpl(newChild)->nextSibling = refChild; castToChildImpl(prev)->nextSibling = newChild; castToChildImpl(refChild)->previousSibling = newChild; castToChildImpl(newChild)->previousSibling = prev; } } } } changed(); Ranges* ranges = getRanges(); if ( ranges != 0) { XMLSize_t sz = ranges->size(); if (sz != 0) { for (XMLSize_t i =0; ielementAt(i)->updateRangeForInsertedNode(newChild); } } } // If insert succeeded, cache the kid appropriately if(newChild->getNodeType() == DOMNode::ELEMENT_NODE) fMyDocElement=(DOMElement *)newChild; else if(newChild->getNodeType() == DOMNode::DOCUMENT_TYPE_NODE) fMyDocType=(DOMDocumentType *)newChild; return newChild; } DOMNode* XPathDocumentImpl::replaceChild(DOMNode *newChild, DOMNode *oldChild) { DOMDocumentType* tempDocType = fMyDocType; DOMElement* tempDocElement = fMyDocElement; if(oldChild->getNodeType() == DOMNode::DOCUMENT_TYPE_NODE) fMyDocType=0; else if(oldChild->getNodeType() == DOMNode::ELEMENT_NODE) fMyDocElement=0; try { insertBefore(newChild, oldChild); // changed() already done. if((oldChild->getNodeType() == DOMNode::DOCUMENT_TYPE_NODE) || (oldChild->getNodeType() == DOMNode::ELEMENT_NODE)) return fParent.removeChild(oldChild); else return removeChild(oldChild); } catch(const OutOfMemoryException&) { throw; } catch(...) { fMyDocType = tempDocType; fMyDocElement = tempDocElement; throw; } } DOMNode *XPathDocumentImpl::removeChild(DOMNode *oldChild) { fParent.removeChild(oldChild); // If remove succeeded, un-cache the kid appropriately if(oldChild->getNodeType() == DOMNode::ELEMENT_NODE) fMyDocElement=0; else if(oldChild->getNodeType() == DOMNode::DOCUMENT_TYPE_NODE) fMyDocType=0; return oldChild; } DOMDocumentType *XPathDocumentImpl::getDoctype() const { return fMyDocType; } DOMElement *XPathDocumentImpl::getDocumentElement() const { return fMyDocElement; } XQilla-2.3.0/src/dom-api/impl/XQillaNSResolverImpl.cpp0000644000151400015140000001211311653565523017415 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; static const XMLCh g_nsBlocker[]={ chOpenSquare, chOpenSquare, chCloseSquare, chCloseSquare, chOpenCurly, chCloseCurly, chNull }; XQillaNSResolverImpl::XQillaNSResolverImpl(XPath2MemoryManager* memMgr) : _namespaceBindings(6, false, memMgr), _resolverNode(0), _prevScope(0), _memMgr(memMgr) { // "xml" is always bound to "http://www.w3.org/XML/1998/namespace" _namespaceBindings.put((void*)XMLUni::fgXMLString,(XMLCh*)XMLUni::fgXMLURIName); // "xmlns" is always bound to "http://www.w3.org/2000/xmlns/" _namespaceBindings.put((void*)XMLUni::fgXMLNSString,(XMLCh*)XMLUni::fgXMLNSURIName); } XQillaNSResolverImpl::XQillaNSResolverImpl(XPath2MemoryManager* memMgr, const DOMXPathNSResolver *prevScope) : _namespaceBindings(6, false, memMgr), _resolverNode(0), _prevScope(prevScope), _memMgr(memMgr) { } XQillaNSResolverImpl::XQillaNSResolverImpl(XPath2MemoryManager* memMgr, const DOMNode *resolverNode, const DOMXPathNSResolver *prevScope) : _namespaceBindings(6, false, memMgr), _resolverNode(resolverNode), _prevScope(prevScope), _memMgr(memMgr) { if(prevScope == 0) { // "xml" is always bound to "http://www.w3.org/XML/1998/namespace" _namespaceBindings.put((void*)XMLUni::fgXMLString,(XMLCh*)XMLUni::fgXMLURIName); // "xmlns" is always bound to "http://www.w3.org/2000/xmlns/" _namespaceBindings.put((void*)XMLUni::fgXMLNSString,(XMLCh*)XMLUni::fgXMLNSURIName); } } XQillaNSResolverImpl::~XQillaNSResolverImpl() { } const XMLCh* XQillaNSResolverImpl::lookupNamespaceURI(const XMLCh* prefix) const { const XMLCh *uri = _namespaceBindings.get((void*)prefix); if(XPath2Utils::equals(uri, g_nsBlocker)) return NULL; else if(uri != NULL && *uri != 0) return uri; if(_resolverNode != 0) { uri = _resolverNode->lookupNamespaceURI(prefix); if(uri != NULL && *uri != 0) return uri; } if(_prevScope != 0) return _prevScope->lookupNamespaceURI(prefix); return 0; } const XMLCh* XQillaNSResolverImpl::lookupPrefix(const XMLCh* uri) const { RefHashTableOfEnumerator iterValue((RefHashTableOf*)&_namespaceBindings); RefHashTableOfEnumerator iterKey((RefHashTableOf*)&_namespaceBindings); while(iterValue.hasMoreElements()) { XMLCh* key=(XMLCh*)iterKey.nextElementKey(); if(XPath2Utils::equals(&iterValue.nextElement(), uri)) { return key; } } if(_resolverNode != 0) { #if _XERCES_VERSION >= 30000 const XMLCh *prefix = _resolverNode->lookupPrefix(uri); #else const XMLCh *prefix = _resolverNode->lookupNamespacePrefix(uri, false); #endif if(prefix != NULL && *prefix != 0) return prefix; } if(_prevScope != 0) return _prevScope->lookupPrefix(uri); return 0; } void XQillaNSResolverImpl::addNamespaceBinding(const XMLCh* prefix, const XMLCh* uri) { if(uri == 0 || *uri == 0) uri = g_nsBlocker; _namespaceBindings.put((void*)_memMgr->getPooledString(prefix), (XMLCh*)_memMgr->getPooledString(uri)); } void XQillaNSResolverImpl::release() { this->~XQillaNSResolverImpl(); _memMgr->deallocate(this); } void XQillaNSResolverImpl::forbiddenBindingCheck(const XMLCh* prefix, const XMLCh* uri, const LocationInfo *info) { if(XPath2Utils::equals(prefix,XMLUni::fgXMLNSString) || XPath2Utils::equals(prefix,XMLUni::fgXMLString)) XQThrow3(StaticErrorException,X("XQillaNSResolverImpl::forbiddenBindingCheck"), X("The prefixes 'xmlns' and 'xml' cannot be used in a namespace declaration [err:XQST0070]"), info); if(XPath2Utils::equals(uri,XMLUni::fgXMLURIName)) XQThrow3(StaticErrorException,X("XQillaNSResolverImpl::forbiddenBindingCheck"), X("The 'http://www.w3.org/XML/1998/namespace' namespace cannot be bound to any prefix [err:XQST0070]"), info); } XQilla-2.3.0/src/dom-api/impl/XPath2ResultImpl.hpp0000644000151400015140000001212411653565523016554 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __XPATH2RESULTIMPL_HPP #define __XPATH2RESULTIMPL_HPP #include #include #include #include #include #include class DynamicContext; class XQQuery; class XQillaExpressionImpl; class XQILLA_API XPath2ResultImpl : public #if _XERCES_VERSION >= 30000 XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathResult, #else XPath2Result, #endif XERCES_CPP_NAMESPACE_QUALIFIER DOMTypeInfo { public: XPath2ResultImpl(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* contextNode, DynamicContext *staticContext, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr, XQillaExpressionImpl *exprImpl = 0); virtual ~XPath2ResultImpl(); virtual bool isNode() const; virtual const XERCES_CPP_NAMESPACE_QUALIFIER DOMTypeInfo *getTypeInfo() const; virtual int getIntegerValue() const; virtual double getNumberValue() const; virtual const XMLCh* getStringValue() const; virtual bool getBooleanValue() const; virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* getNodeValue() const; /// DOMTypeInfo methods #if _XERCES_VERSION >= 30000 virtual const XMLCh* getTypeName() const; virtual const XMLCh* getTypeNamespace() const; virtual bool isDerivedFrom(const XMLCh* typeNamespaceArg, const XMLCh* typeNameArg, DerivationMethods derivationMethod) const; #else virtual const XMLCh* getName() const; virtual const XMLCh* getNamespace() const; #endif protected: XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* _createdWith; DynamicContext* _context; Item::Ptr _currentItem; XQillaExpressionImpl *_exprToDelete; }; class XQILLA_API XPath2FirstResultImpl : public XPath2ResultImpl { public: XPath2FirstResultImpl(const XQQuery *expression, XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* contextNode, DynamicContext *staticContext, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr, XQillaExpressionImpl *exprImpl = 0); virtual ~XPath2FirstResultImpl(); virtual void release(); virtual ResultType getResultType() const; virtual bool getInvalidIteratorState() const; virtual bool iterateNext(); #if _XERCES_VERSION >= 30000 virtual XMLSize_t getSnapshotLength() const; virtual bool snapshotItem(XMLSize_t index); #else virtual size_t getSnapshotLength() const; virtual bool snapshotItem(size_t index); #endif }; class XQILLA_API XPath2SnapshotResultImpl : public XPath2ResultImpl { public: XPath2SnapshotResultImpl(const XQQuery *expression, XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* contextNode, DynamicContext *staticContext, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr, XQillaExpressionImpl *exprImpl = 0); virtual ~XPath2SnapshotResultImpl(); virtual void release(); virtual ResultType getResultType() const; virtual bool getInvalidIteratorState() const; virtual bool iterateNext(); #if _XERCES_VERSION >= 30000 virtual XMLSize_t getSnapshotLength() const; virtual bool snapshotItem(XMLSize_t index); #else virtual size_t getSnapshotLength() const; virtual bool snapshotItem(size_t); #endif private: Sequence *_sequence; }; class XQILLA_API XPath2IteratorResultImpl : public XPath2ResultImpl { public: XPath2IteratorResultImpl(const XQQuery *expression, XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* contextNode, DynamicContext *staticContext, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr, XQillaExpressionImpl *exprImpl = 0); virtual ~XPath2IteratorResultImpl(); virtual void release(); virtual ResultType getResultType() const; virtual bool getInvalidIteratorState() const; virtual bool iterateNext(); #if _XERCES_VERSION >= 30000 virtual XMLSize_t getSnapshotLength() const; virtual bool snapshotItem(XMLSize_t index); #else virtual size_t getSnapshotLength() const; virtual bool snapshotItem(size_t); #endif private: Result _results; const XERCES_CPP_NAMESPACE_QUALIFIER DOMDocumentImpl* _documentRoot; int _changes; }; #endif XQilla-2.3.0/src/dom-api/impl/XQillaDocumentImpl.cpp0000644000151400015140000001301011653565523017126 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include "XQillaDocumentImpl.hpp" #include "XQillaExpressionImpl.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; XQillaDocumentImpl::XQillaDocumentImpl(DOMImplementation* domImpl, MemoryManager* const memMgr) #if _XERCES_VERSION >= 30000 : DOMDocumentImpl(domImpl, memMgr), #else : DOMDocumentImpl(memMgr), #endif _createdWith(memMgr), _memMgr(memMgr), _xmlGrammarPool(0), _adoptGramPool(false) { } XQillaDocumentImpl::XQillaDocumentImpl(const XMLCh* namespaceURI, const XMLCh* qualifiedName, DOMDocumentType* doctype, DOMImplementation* domImpl, MemoryManager* const memMgr) #if _XERCES_VERSION >= 30000 : DOMDocumentImpl(namespaceURI, qualifiedName, doctype, domImpl, memMgr), #else : DOMDocumentImpl(namespaceURI, qualifiedName, doctype, memMgr), #endif _createdWith(memMgr), _memMgr(memMgr), _xmlGrammarPool(0), _adoptGramPool(false) { } XQillaDocumentImpl::~XQillaDocumentImpl() { if(_adoptGramPool) delete _xmlGrammarPool; } // weak version, create a context within #if _XERCES_VERSION >= 30000 DOMXPathExpression* XQillaDocumentImpl::createExpression(const XMLCh* expression, const DOMXPathNSResolver* resolver) #else const DOMXPathExpression* XQillaDocumentImpl::createExpression(const XMLCh* expression, const DOMXPathNSResolver* resolver) #endif { // Use placement new, because XQillaExpressionImpl inherits from XercesConfiguration, // which inherits from XMemory - which screws up our operator new overload void *mem = _createdWith->allocate(sizeof(XQillaExpressionImpl)); try { new (mem) XQillaExpressionImpl(expression, _createdWith, resolver, _xmlGrammarPool); } catch(...) { _createdWith->deallocate(mem); throw; } return (XQillaExpressionImpl*)mem; } #if _XERCES_VERSION >= 30000 DOMXPathResult* XQillaDocumentImpl::evaluate(const XMLCh *expression, const DOMNode *contextNode, const DOMXPathNSResolver *resolver, DOMXPathResult::ResultType type, DOMXPathResult* reuseableResult) #else void* XQillaDocumentImpl::evaluate(const XMLCh* expression, DOMNode* contextNode, const DOMXPathNSResolver* resolver, unsigned short type, void* reuseableResult) #endif { return ((XQillaExpressionImpl*)createExpression(expression, resolver))->evaluateOnce(contextNode, type, reuseableResult); } #if _XERCES_VERSION >= 30000 DOMXPathNSResolver *XQillaDocumentImpl::createNSResolver(const DOMNode *nodeResolver) #else const DOMXPathNSResolver *XQillaDocumentImpl::createNSResolver(DOMNode* nodeResolver) #endif { return _memMgr.createNSResolver(const_cast(nodeResolver)); } void XQillaDocumentImpl::setGrammarPool(XMLGrammarPool *xmlGrammarPool, bool adoptGramPool) { _xmlGrammarPool = xmlGrammarPool; _adoptGramPool = adoptGramPool; } XMLGrammarPool *XQillaDocumentImpl::getGrammarPool() { return _xmlGrammarPool; } DOMNode *XQillaDocumentImpl::cloneNode(bool deep) const { // Note: the cloned document node goes on the same heap we live in. XQillaDocumentImpl *newdoc = new (fMemoryManager) XQillaDocumentImpl(fDOMImplementation, fMemoryManager); newdoc->becomeClone(this, deep); fNode.callUserDataHandlers(DOMUserDataHandler::NODE_CLONED, this, newdoc); return newdoc; } void XQillaDocumentImpl::becomeClone(const XQillaDocumentImpl *toClone, bool deep) { if(toClone->fXmlEncoding && *toClone->fXmlEncoding) setXmlEncoding(toClone->fXmlEncoding); if(toClone->fXmlVersion && *toClone->fXmlVersion) setXmlVersion(toClone->fXmlVersion); setXmlStandalone(toClone->fXmlStandalone); if(deep) { for (DOMNode *n = toClone->getFirstChild(); n != 0; n = n->getNextSibling()) { appendChild(importNode(n, true, true)); } } } XQilla-2.3.0/src/dom-api/impl/XPath2ResultImpl.cpp0000644000151400015140000004102711653565523016553 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include "XPath2ResultImpl.hpp" #include "XQillaExpressionImpl.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; XERCES_CPP_NAMESPACE_USE; string typeName(XPath2Result::ResultType type) { switch(type) { case XPath2Result::FIRST_RESULT: return "FIRST_RESULT"; case XPath2Result::ITERATOR_RESULT: return "ITERATOR_RESULT"; case XPath2Result::SNAPSHOT_RESULT: return "SNAPSHOT_RESULT"; } return ""; } string errorMessage(XPath2Result::ResultType requestedType, XPath2Result::ResultType resultType) { return typeName(requestedType) + " was requested from a XPath2Result of type " + typeName(resultType); } //////////////////////////////////////////////////////////////////////////////////////////////////// XPath2ResultImpl::XPath2ResultImpl(DOMNode* contextNode, DynamicContext *staticContext, MemoryManager* memMgr, XQillaExpressionImpl *exprImpl) : _createdWith(memMgr), _context(exprImpl != 0 ? staticContext : staticContext->createDynamicContext(_createdWith)), _currentItem(0), _exprToDelete(exprImpl) { //Check for illegal contextNode types if(contextNode != 0) { //More illegal types here? switch (contextNode->getNodeType()) { case DOMNode::ENTITY_REFERENCE_NODE: throw XQillaException(DOMException::NOT_SUPPORTED_ERR, X("Context node of illegal type.")); break; default: break; } _context->setContextItem(((XercesConfiguration*)_context->getConfiguration())-> createNode(contextNode, _context)); } } XPath2ResultImpl::~XPath2ResultImpl() { _currentItem = 0; if(_exprToDelete) _exprToDelete->release(); else delete _context; } const DOMTypeInfo *XPath2ResultImpl::getTypeInfo() const { if(_currentItem.isNull()) return 0; return this; } bool XPath2ResultImpl::isNode() const { return !_currentItem.isNull() && _currentItem->isNode(); } /// DOMTypeInfo methods #if _XERCES_VERSION >= 30000 const XMLCh* XPath2ResultImpl::getTypeName() const { if(_currentItem.isNull()) return 0; return _currentItem->getTypeName(); } const XMLCh* XPath2ResultImpl::getTypeNamespace() const { if(_currentItem.isNull()) return 0; return _currentItem->getTypeURI(); } bool XPath2ResultImpl::isDerivedFrom(const XMLCh* typeNamespaceArg, const XMLCh* typeNameArg, DerivationMethods derivationMethod) const { // TBD implement this - jpcs return false; } #else const XMLCh* XPath2ResultImpl::getName() const { if(_currentItem.isNull()) return 0; return _currentItem->getTypeName(); } const XMLCh* XPath2ResultImpl::getNamespace() const { if(_currentItem.isNull()) return 0; return _currentItem->getTypeURI(); } #endif int XPath2ResultImpl::getIntegerValue() const { if(_currentItem.isNull()) { throw XQillaException(DOMException::INVALID_STATE_ERR, X("There is no current result in the result")); } return FunctionNumber::number(_currentItem, _context, 0)->asInt(); } double XPath2ResultImpl::getNumberValue() const { if(_currentItem.isNull()) { throw XQillaException(DOMException::INVALID_STATE_ERR, X("There is no current result in the result")); } return FunctionNumber::number(_currentItem, _context, 0)->asDouble(); } const XMLCh* XPath2ResultImpl::getStringValue() const { if(_currentItem.isNull()) { throw XQillaException(DOMException::INVALID_STATE_ERR, X("There is no current result in the result")); } return FunctionString::string(_currentItem, _context); } bool XPath2ResultImpl::getBooleanValue() const { if(_currentItem.isNull()) { throw XQillaException(DOMException::INVALID_STATE_ERR, X("There is no current result in the result")); } if(!_currentItem->isAtomicValue()) { throw XQillaException(DOMXPathException::TYPE_ERR, X("Cannot convert result to a boolean")); } AnyAtomicType::Ptr atom = (const AnyAtomicType::Ptr)_currentItem; Item::Ptr boolean; try { boolean = atom->castAs(AnyAtomicType::BOOLEAN, _context); } catch (XPath2TypeCastException &e) { throw XQillaException(DOMXPathException::TYPE_ERR, X("Cannot convert result to a boolean")); } return ((const ATBooleanOrDerived*)boolean.get())->isTrue(); } DOMNode* XPath2ResultImpl::getNodeValue() const { if(_currentItem.isNull()) { throw XQillaException(DOMException::INVALID_STATE_ERR, X("There is no current result in the result")); } if(!_currentItem->isNode()) { throw XQillaException(DOMXPathException::TYPE_ERR, X("The requested result is not a node")); } DOMNode *node = (DOMNode*)_currentItem->getInterface(XercesConfiguration::gXerces); if(node == 0) { // Should never happen throw XQillaException(DOMXPathException::TYPE_ERR, X("The requested result not a XQilla implementation node")); } return node; } //////////////////////////////////////////////////////////////////////////////////////////////////// XPath2FirstResultImpl::XPath2FirstResultImpl(const XQQuery *expression, DOMNode* contextNode, DynamicContext *staticContext, MemoryManager* memMgr, XQillaExpressionImpl *exprImpl) : XPath2ResultImpl(contextNode, staticContext, memMgr, exprImpl) { try { _currentItem = expression->execute(_context)->next(_context); } catch(const XQException &e) { if(XQillaException::getDebug()) { e.printDebug( X("Caught exception at Interface") ); } throw XQillaException(e); } catch(const XQillaException &) { // rethrow it throw; } catch(DOMException &e) { throw XQillaException(DOMXPathException::INVALID_EXPRESSION_ERR, X("XQillaExpressionImpl::evaluateToSequence(): DOMException!")); } catch(XMLException &e) { throw XQillaException(DOMXPathException::INVALID_EXPRESSION_ERR, e.getMessage()); } catch (...) { throw XQillaException(DOMXPathException::INVALID_EXPRESSION_ERR, X("XQillaExpressionImpl::evaluateToSequence(): Unknown exception caught.")); } } XPath2FirstResultImpl::~XPath2FirstResultImpl() { } void XPath2FirstResultImpl::release() { this->~XPath2FirstResultImpl(); _createdWith->deallocate(this); } #if _XERCES_VERSION >= 30000 DOMXPathResult::ResultType XPath2FirstResultImpl::getResultType() const { return DOMXPathResult::FIRST_RESULT_TYPE; } #else XPath2Result::ResultType XPath2FirstResultImpl::getResultType() const { return XPath2Result::FIRST_RESULT; } #endif bool XPath2FirstResultImpl::getInvalidIteratorState() const { return false; } #if _XERCES_VERSION >= 30000 XMLSize_t XPath2FirstResultImpl::getSnapshotLength() const { string error = errorMessage(XPath2Result::SNAPSHOT_RESULT, XPath2Result::FIRST_RESULT); throw XQillaException(DOMXPathException::TYPE_ERR, X(error.c_str())); } #else size_t XPath2FirstResultImpl::getSnapshotLength() const { string error = errorMessage(XPath2Result::SNAPSHOT_RESULT, XPath2Result::FIRST_RESULT); throw XQillaException(DOMXPathException::TYPE_ERR, X(error.c_str())); } #endif bool XPath2FirstResultImpl::iterateNext() { string error = errorMessage(XPath2Result::ITERATOR_RESULT, XPath2Result::FIRST_RESULT); throw XQillaException(DOMXPathException::TYPE_ERR, X(error.c_str())); } #if _XERCES_VERSION >= 30000 bool XPath2FirstResultImpl::snapshotItem(XMLSize_t index) { string error = errorMessage(XPath2Result::SNAPSHOT_RESULT, XPath2Result::FIRST_RESULT); throw XQillaException(DOMXPathException::TYPE_ERR, X(error.c_str())); } #else bool XPath2FirstResultImpl::snapshotItem(size_t index) { string error = errorMessage(XPath2Result::SNAPSHOT_RESULT, XPath2Result::FIRST_RESULT); throw XQillaException(DOMXPathException::TYPE_ERR, X(error.c_str())); } #endif //////////////////////////////////////////////////////////////////////////////////////////////////// XPath2SnapshotResultImpl::XPath2SnapshotResultImpl(const XQQuery *expression, DOMNode* contextNode, DynamicContext *staticContext, MemoryManager* memMgr, XQillaExpressionImpl *exprImpl) : XPath2ResultImpl(contextNode, staticContext, memMgr, exprImpl), _sequence(0) { try { Sequence seq = expression->execute(_context)->toSequence(_context); _sequence = new (_createdWith) Sequence(seq, _createdWith); } catch(const XQException &e) { if(XQillaException::getDebug()) { e.printDebug( X("Caught exception at Interface") ); } throw XQillaException(e); } catch(const XQillaException &) { // rethrow it throw; } catch(DOMException &e) { throw XQillaException(DOMXPathException::INVALID_EXPRESSION_ERR, X("XQillaExpressionImpl::evaluateToSequence(): DOMException!")); } catch(XMLException &e) { throw XQillaException(DOMXPathException::INVALID_EXPRESSION_ERR, e.getMessage()); } catch (...) { throw XQillaException(DOMXPathException::INVALID_EXPRESSION_ERR, X("XQillaExpressionImpl::evaluateToSequence(): Unknown exception caught.")); } } XPath2SnapshotResultImpl::~XPath2SnapshotResultImpl() { // the destructor will try to access the context, that XPath2ResultImpl is about to delete if(_sequence) delete _sequence; } void XPath2SnapshotResultImpl::release() { this->~XPath2SnapshotResultImpl(); _createdWith->deallocate(this); } #if _XERCES_VERSION >= 30000 DOMXPathResult::ResultType XPath2SnapshotResultImpl::getResultType() const { return DOMXPathResult::SNAPSHOT_RESULT_TYPE; } #else XPath2Result::ResultType XPath2SnapshotResultImpl::getResultType() const { return XPath2Result::SNAPSHOT_RESULT; } #endif bool XPath2SnapshotResultImpl::getInvalidIteratorState() const { return false; } #if _XERCES_VERSION >= 30000 XMLSize_t XPath2SnapshotResultImpl::getSnapshotLength() const { return _sequence->getLength(); } #else size_t XPath2SnapshotResultImpl::getSnapshotLength() const { return _sequence->getLength(); } #endif bool XPath2SnapshotResultImpl::iterateNext() { string error = errorMessage(XPath2Result::ITERATOR_RESULT, XPath2Result::SNAPSHOT_RESULT); throw XQillaException(DOMXPathException::TYPE_ERR, X(error.c_str())); } #if _XERCES_VERSION >= 30000 bool XPath2SnapshotResultImpl::snapshotItem(XMLSize_t index) { //Reached end of set, return false if(index >= _sequence->getLength()) { _currentItem = 0; return false; } // this method is const, need to cast that away _currentItem = _sequence->item(index); return true; } #else bool XPath2SnapshotResultImpl::snapshotItem(size_t index) { //Reached end of set, return false if(index >= _sequence->getLength()) { _currentItem = 0; return false; } // this method is const, need to cast that away _currentItem = _sequence->item(index); return true; } #endif //////////////////////////////////////////////////////////////////////////////////////////////////// XPath2IteratorResultImpl::XPath2IteratorResultImpl(const XQQuery *expression, DOMNode* contextNode, DynamicContext *staticContext, MemoryManager* memMgr, XQillaExpressionImpl *exprImpl) : XPath2ResultImpl(contextNode, staticContext, memMgr, exprImpl), _results(0), _documentRoot(0), _changes(0) { if(contextNode != 0) { if(contextNode->getNodeType() == DOMNode::DOCUMENT_NODE) { _documentRoot = (DOMDocumentImpl*)contextNode; } else { _documentRoot = (DOMDocumentImpl*)contextNode->getOwnerDocument(); } _changes =_documentRoot->changes(); } try { _results = expression->execute(_context); } catch(const XQException &e) { if(XQillaException::getDebug()) { e.printDebug( X("Caught exception at Interface") ); } throw XQillaException(e); } catch(const XQillaException &) { // rethrow it throw; } catch(DOMException &e) { throw XQillaException(DOMXPathException::INVALID_EXPRESSION_ERR, X("XQillaExpressionImpl::evaluateToSequence(): DOMException!")); } catch(XMLException &e) { throw XQillaException(DOMXPathException::INVALID_EXPRESSION_ERR, e.getMessage()); } catch (...) { throw XQillaException(DOMXPathException::INVALID_EXPRESSION_ERR, X("XQillaExpressionImpl::evaluateToSequence(): Unknown exception caught.")); } } XPath2IteratorResultImpl::~XPath2IteratorResultImpl() { // the destructor will try to access the context, that XPath2ResultImpl is about to delete if(!_results.isNull()) _results = 0; } void XPath2IteratorResultImpl::release() { this->~XPath2IteratorResultImpl(); _createdWith->deallocate(this); } #if _XERCES_VERSION >= 30000 DOMXPathResult::ResultType XPath2IteratorResultImpl::getResultType() const { return DOMXPathResult::ITERATOR_RESULT_TYPE; } #else XPath2Result::ResultType XPath2IteratorResultImpl::getResultType() const { return XPath2Result::ITERATOR_RESULT; } #endif bool XPath2IteratorResultImpl::getInvalidIteratorState() const { return _documentRoot != 0 && _documentRoot->changes() != _changes; } bool XPath2IteratorResultImpl::iterateNext() { // check for document changes if(getInvalidIteratorState()) { throw XQillaException(DOMException::INVALID_STATE_ERR, X("Document has changed")); } try { _currentItem = _results->next(_context); } catch(const XQException &e) { if(XQillaException::getDebug()) { e.printDebug( X("Caught exception at Interface") ); } throw XQillaException(e); } if(_currentItem.isNull()) { _results = 0; return false; } return true; } #if _XERCES_VERSION >= 30000 XMLSize_t XPath2IteratorResultImpl::getSnapshotLength() const { string error = errorMessage(XPath2Result::SNAPSHOT_RESULT, XPath2Result::ITERATOR_RESULT); throw XQillaException(DOMXPathException::TYPE_ERR, X(error.c_str())); } bool XPath2IteratorResultImpl::snapshotItem(XMLSize_t index) { string error = errorMessage(XPath2Result::SNAPSHOT_RESULT, XPath2Result::ITERATOR_RESULT); throw XQillaException(DOMXPathException::TYPE_ERR, X(error.c_str())); } #else size_t XPath2IteratorResultImpl::getSnapshotLength() const { string error = errorMessage(XPath2Result::SNAPSHOT_RESULT, XPath2Result::ITERATOR_RESULT); throw XQillaException(DOMXPathException::TYPE_ERR, X(error.c_str())); } bool XPath2IteratorResultImpl::snapshotItem(size_t index) { string error = errorMessage(XPath2Result::SNAPSHOT_RESULT, XPath2Result::ITERATOR_RESULT); throw XQillaException(DOMXPathException::TYPE_ERR, X(error.c_str())); } #endif XQilla-2.3.0/src/dom-api/impl/XQillaXMLGrammarPoolImpl.hpp0000644000151400015140000000303011653565523020157 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __XQILLAXMLGRAMMARPOOLIMPL_HPP #define __XQILLAXMLGRAMMARPOOLIMPL_HPP #include #include #if _XERCES_VERSION >= 30000 #include #else #include #endif XERCES_CPP_NAMESPACE_BEGIN class Grammar; class MemoryManager; XERCES_CPP_NAMESPACE_END class XQillaXMLGrammarPoolImpl : public XERCES_CPP_NAMESPACE_QUALIFIER XMLGrammarPoolImpl { public: XQillaXMLGrammarPoolImpl(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* const memMgr); /** * This method is overriden to not throw exceptions when a repeated grammar is found, but just ignore them **/ virtual bool cacheGrammar(XERCES_CPP_NAMESPACE_QUALIFIER Grammar* const gramToCache); }; #endif XQilla-2.3.0/src/dom-api/impl/XPathNamespaceImpl.hpp0000644000151400015140000001305511653565523017114 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __XPATHNAMESPACEIMPL_HPP #define __XPATHNAMESPACEIMPL_HPP #include #include #include #include XERCES_CPP_NAMESPACE_BEGIN class DOMElement; class DOMDocument; XERCES_CPP_NAMESPACE_END class XQILLA_API XPathNamespaceImpl : public XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNamespace { public: XERCES_CPP_NAMESPACE_QUALIFIER DOMNodeImpl fNode; const XMLCh *uri; const XMLCh *prefix; enum XPathObjectType { XPATH_NAMESPACE_OBJECT = 13 }; public: //Main constructor XPathNamespaceImpl(const XMLCh* const prefix, const XMLCh* const uri, XERCES_CPP_NAMESPACE_QUALIFIER DOMElement *owner, XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *docOwner); XPathNamespaceImpl(const XPathNamespaceImpl &other); virtual ~XPathNamespaceImpl(); // Declare functions from DOMNode. They all must be implemented by this class virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* appendChild(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *newChild) ; virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* cloneNode(bool deep) const ; virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNamedNodeMap* getAttributes() const ; virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNodeList* getChildNodes() const ; virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* getFirstChild() const ; virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* getLastChild() const ; virtual const XMLCh* getLocalName() const ; virtual const XMLCh* getNamespaceURI() const ; virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* getNextSibling() const ; virtual const XMLCh* getNodeName() const ; #if _XERCES_VERSION >= 30000 virtual NodeType getNodeType() const; #else virtual short getNodeType() const; #endif virtual const XMLCh* getNodeValue() const ; virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument* getOwnerDocument() const ; virtual const XMLCh* getPrefix() const ; virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* getParentNode() const ; virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* getPreviousSibling() const ; virtual bool hasChildNodes() const ; virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* insertBefore(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *newChild, XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *refChild) ; virtual void normalize() ; virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* removeChild(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *oldChild) ; virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* replaceChild(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *newChild, XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *oldChild) ; virtual void setNodeValue(const XMLCh *nodeValue) ; virtual bool isSupported(const XMLCh *feature, const XMLCh *version) const ; virtual bool hasAttributes() const ; virtual void setPrefix(const XMLCh * prefix) ; virtual void* setUserData(const XMLCh* key, void* data, XERCES_CPP_NAMESPACE_QUALIFIER DOMUserDataHandler* handler) ; virtual void* getUserData(const XMLCh* key) const ; virtual bool isSameNode(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* other) const; virtual bool isEqualNode(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* arg) const; virtual const XMLCh* getBaseURI() const ; #if _XERCES_VERSION >= 30000 virtual short compareDocumentPosition(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* other) const ; #else virtual short compareTreePosition(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* other) const ; #endif virtual const XMLCh* getTextContent() const ; virtual void setTextContent(const XMLCh* textContent) ; #if _XERCES_VERSION >= 30000 virtual const XMLCh* lookupPrefix(const XMLCh* namespaceURI) const; #else virtual const XMLCh* lookupNamespacePrefix(const XMLCh* namespaceURI, bool useDefault) const ; #endif virtual bool isDefaultNamespace(const XMLCh* namespaceURI) const; virtual const XMLCh* lookupNamespaceURI(const XMLCh* prefix) const ; #if _XERCES_VERSION >= 30000 virtual void* getFeature(const XMLCh* feature, const XMLCh* version) const; #else virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* getInterface(const XMLCh* feature) ; #endif virtual void release(); virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMElement *getOwnerElement() const; }; #endif XQilla-2.3.0/src/dom-api/impl/XQillaExpressionImpl.hpp0000644000151400015140000000612111653565523017521 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __XQILLAEXPRESSIONIMPL_HPP #define __XQILLAEXPRESSIONIMPL_HPP #include #include #include #include class XPath2Result; class DynamicContext; class XPath2MemoryManager; class XQQuery; XERCES_CPP_NAMESPACE_BEGIN class XMLGrammarPool; class DOMNode; class DOMDocument; class DOMException; class DOMXPathNSResolver; XERCES_CPP_NAMESPACE_END class XQILLA_API XQillaExpressionImpl : public XQillaExpression, public XercesConfiguration { public: XQillaExpressionImpl(const XMLCh *expression, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr, const XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathNSResolver *nsr, XERCES_CPP_NAMESPACE_QUALIFIER XMLGrammarPool *xmlGP); virtual ~XQillaExpressionImpl(); #if _XERCES_VERSION >= 30000 virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathResult* evaluate(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathResult::ResultType type, XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathResult* result) const; virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathResult* evaluateOnce(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *contextNode, XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathResult::ResultType type, XERCES_CPP_NAMESPACE_QUALIFIER DOMXPathResult* result); #else virtual void* evaluate(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* contextNode, unsigned short type, void* reuseableResult) const; virtual void* evaluateOnce(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode* contextNode, unsigned short type, void* reuseableResult); #endif virtual void release(); const XQQuery *getCompiledExpression() const { return _compiledExpression; } void setCompiledExpression(XQQuery *expr) { _compiledExpression = expr; } private: virtual DocumentCache *createDocumentCache(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr); XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* _createdWith; XERCES_CPP_NAMESPACE_QUALIFIER XMLGrammarPool *_xmlgr; DynamicContext *_staticContext; XQQuery* _compiledExpression; }; //XQillaExpressionImpl #endif //__XQILLAEXPRESSIONIMPL_HPP XQilla-2.3.0/src/dom-api/impl/XQillaBuilderImpl.hpp0000644000151400015140000000564311653565523016760 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef __XQILLADOMBUILDERIMPL_HPP #define __XQILLADOMBUILDERIMPL_HPP #include #include "../../config/xqilla_config.h" #include #if _XERCES_VERSION >= 30000 #include #else #include #endif XERCES_CPP_NAMESPACE_BEGIN class DOMInputSource; class XMLGrammarPool; class MemoryManager; class XMLValidator; XERCES_CPP_NAMESPACE_END class XQillaBuilderImpl : #if _XERCES_VERSION >= 30000 public XERCES_CPP_NAMESPACE_QUALIFIER DOMLSParserImpl #else public XERCES_CPP_NAMESPACE_QUALIFIER DOMBuilderImpl #endif { public: /** @name Constructors and Destructor */ //@{ /** Construct a DOMBuilderImpl, with an optional validator * * Constructor with an instance of validator class to use for * validation. If you don't provide a validator, a default one will * be created for you in the scanner. * * @param gramPool Pointer to the grammar pool instance from * external application. * The parser does NOT own it. * * @param valToAdopt Pointer to the validator instance to use. The * parser is responsible for freeing the memory. */ XQillaBuilderImpl ( XERCES_CPP_NAMESPACE_QUALIFIER XMLValidator* const valToAdopt, XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* const manager, XERCES_CPP_NAMESPACE_QUALIFIER XMLGrammarPool* const gramPool, bool adoptGramPool ); virtual ~XQillaBuilderImpl(); #if _XERCES_VERSION >= 30000 XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument* parse(const XERCES_CPP_NAMESPACE_QUALIFIER DOMLSInput* source); #else XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument* parse(const XERCES_CPP_NAMESPACE_QUALIFIER DOMInputSource& source); #endif XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument* parseURI(const XMLCh* const systemId); XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument* parseURI(const char* const systemId); static const XMLCh gXQilla[]; private: void initParser(); XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument* getDocumentAndAddGrammar(); XERCES_CPP_NAMESPACE_QUALIFIER XMLGrammarPool *gramPool_; }; #endif XQilla-2.3.0/src/dom-api/impl/XQillaBuilderImpl.cpp0000644000151400015140000001143611653565523016750 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include "XQillaBuilderImpl.hpp" #include "XQillaDocumentImpl.hpp" #include "XQillaXMLGrammarPoolImpl.hpp" #include #include #include #include #include #include #include #include #if _XERCES_VERSION >= 30000 #include #else #include #endif XERCES_CPP_NAMESPACE_USE; const XMLCh XQillaBuilderImpl::gXQilla[] = // Points to "XPath2" {chLatin_X, chLatin_P, chLatin_a, chLatin_t, chLatin_h, chDigit_2, chNull}; XQillaBuilderImpl::XQillaBuilderImpl(XMLValidator* const valToAdopt, MemoryManager* const manager, XMLGrammarPool* const gramPool, bool adoptGramPool) : #if _XERCES_VERSION >= 30000 DOMLSParserImpl(valToAdopt, manager, gramPool), #else DOMBuilderImpl(valToAdopt, manager, gramPool), #endif gramPool_(adoptGramPool ? gramPool : 0) { } XQillaBuilderImpl::~XQillaBuilderImpl() { delete gramPool_; } // --------------------------------------------------------------------------- // DOMBuilderImpl: Parsing methods // --------------------------------------------------------------------------- #if _XERCES_VERSION >= 30000 DOMDocument* XQillaBuilderImpl::parse(const DOMLSInput* source) { initParser(); Wrapper4DOMLSInput isWrapper((DOMLSInput*)source, 0, false, getMemoryManager()); AbstractDOMParser::parse(isWrapper); return getDocumentAndAddGrammar(); } #else DOMDocument* XQillaBuilderImpl::parse(const DOMInputSource& source) { initParser(); Wrapper4DOMInputSource isWrapper((DOMInputSource*) &source, false, getMemoryManager()); AbstractDOMParser::parse(isWrapper); return getDocumentAndAddGrammar(); } #endif void XQillaBuilderImpl::initParser() { //set it here in case someone has messed it up. #if _XERCES_VERSION >= 30000 setParameter(XMLUni::fgXercesParserUseDocumentFromImplementation, (void*)gXQilla); #else setProperty(XMLUni::fgXercesParserUseDocumentFromImplementation, (void*)gXQilla); #endif } DOMDocument* XQillaBuilderImpl::getDocumentAndAddGrammar() { DOMDocument *doc = 0; #if _XERCES_VERSION >= 30000 if (getParameter(XMLUni::fgXercesUserAdoptsDOMDocument) != 0) #else if (getFeature(XMLUni::fgXercesUserAdoptsDOMDocument)) #endif doc = adoptDocument(); else doc = getDocument(); if(doc == 0) { return 0; } if(getParameter(XMLUni::fgXercesDOMHasPSVIInfo)) { //we copy this gramamr and reset the parser one in the process. XMLGrammarPool *oldGrPool = getGrammarResolver()->getGrammarPool(); XQillaXMLGrammarPoolImpl *gr = new (getMemoryManager()) XQillaXMLGrammarPoolImpl(getMemoryManager()); // manually copy string pool contents to work around XERCESC-1798. const XMLStringPool* src = oldGrPool->getURIStringPool(); XMLStringPool* dst = gr->getURIStringPool(); for (unsigned int i = 1; i < src->getStringCount() + 1; ++i) dst->addOrFind (src->getValueForId(i)); RefHashTableOfEnumerator< Grammar> enumerator = oldGrPool->getGrammarEnumerator(); while(enumerator.hasMoreElements()) { Grammar &g = enumerator.nextElement(); gr->cacheGrammar(getGrammarResolver()->orphanGrammar(g.getGrammarDescription()->getGrammarKey())); } ((XQillaDocumentImpl*)doc)->setGrammarPool(gr, true); } return doc; } DOMDocument* XQillaBuilderImpl::parseURI(const XMLCh* const systemId) { initParser(); AbstractDOMParser::parse(systemId); return getDocumentAndAddGrammar(); } DOMDocument* XQillaBuilderImpl::parseURI(const char* const systemId) { initParser(); AbstractDOMParser::parse(systemId); return getDocumentAndAddGrammar(); } XQilla-2.3.0/src/dom-api/impl/XQillaExpressionImpl.cpp0000644000151400015140000001770211653565523017523 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include "XQillaExpressionImpl.hpp" #include #include #include #include #include #include #include #include "XPath2ResultImpl.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; XQillaExpressionImpl::XQillaExpressionImpl(const XMLCh *expression, MemoryManager* memMgr, const DOMXPathNSResolver *nsr, XMLGrammarPool *xmlGP) : _createdWith(memMgr), _xmlgr(xmlGP) { try { _staticContext = XQilla::createContext(XQilla::XPATH2, this, _createdWith); if(nsr != 0) { _staticContext->setNSResolver(nsr); const XMLCh *defaultElementNS = _staticContext->getMemoryManager()-> getPooledString(nsr->lookupNamespaceURI(XMLUni::fgZeroLenString)); _staticContext->setDefaultElementAndTypeNS(defaultElementNS); } _compiledExpression = XQilla::parse(expression, _staticContext, NULL, 0, _createdWith); } catch(XQException &e) { if(XQillaException::getDebug()) { e.printDebug(X("Caught exception at Interface")); } throw XQillaException(e); } } XQillaExpressionImpl::~XQillaExpressionImpl() { delete _compiledExpression; } void XQillaExpressionImpl::release() { this->~XQillaExpressionImpl(); _createdWith->deallocate(this); } DocumentCache *XQillaExpressionImpl::createDocumentCache(MemoryManager *memMgr) { return new(memMgr) DocumentCacheImpl(memMgr, _xmlgr); } #if _XERCES_VERSION >= 30000 DOMXPathResult *XQillaExpressionImpl::evaluate(const DOMNode *contextNode, DOMXPathResult::ResultType type, DOMXPathResult* result) const { // TBD deal with the other result types - jpcs switch(type) { case DOMXPathResult::FIRST_RESULT_TYPE: { return new (_createdWith) XPath2FirstResultImpl(_compiledExpression, const_cast(contextNode), _staticContext, _createdWith); break; } case DOMXPathResult::UNORDERED_NODE_ITERATOR_TYPE: case DOMXPathResult::ORDERED_NODE_ITERATOR_TYPE: case DOMXPathResult::ITERATOR_RESULT_TYPE: { return new (_createdWith) XPath2IteratorResultImpl(_compiledExpression, const_cast(contextNode), _staticContext, _createdWith); break; } case DOMXPathResult::ANY_TYPE: case DOMXPathResult::NUMBER_TYPE: case DOMXPathResult::STRING_TYPE: case DOMXPathResult::BOOLEAN_TYPE: case DOMXPathResult::ANY_UNORDERED_NODE_TYPE: case DOMXPathResult::FIRST_ORDERED_NODE_TYPE: case DOMXPathResult::UNORDERED_NODE_SNAPSHOT_TYPE: case DOMXPathResult::ORDERED_NODE_SNAPSHOT_TYPE: case DOMXPathResult::SNAPSHOT_RESULT_TYPE: { return new (_createdWith) XPath2SnapshotResultImpl(_compiledExpression, const_cast(contextNode), _staticContext, _createdWith); break; } } return 0; } DOMXPathResult *XQillaExpressionImpl::evaluateOnce(const DOMNode *contextNode, DOMXPathResult::ResultType type, DOMXPathResult* result) { // TBD deal with the other result types - jpcs switch(type) { case DOMXPathResult::FIRST_RESULT_TYPE: { return new (_createdWith) XPath2FirstResultImpl(_compiledExpression, const_cast(contextNode), _staticContext, _createdWith, this); break; } case DOMXPathResult::UNORDERED_NODE_ITERATOR_TYPE: case DOMXPathResult::ORDERED_NODE_ITERATOR_TYPE: case DOMXPathResult::ITERATOR_RESULT_TYPE: { return new (_createdWith) XPath2IteratorResultImpl(_compiledExpression, const_cast(contextNode), _staticContext, _createdWith, this); break; } case DOMXPathResult::ANY_TYPE: case DOMXPathResult::NUMBER_TYPE: case DOMXPathResult::STRING_TYPE: case DOMXPathResult::BOOLEAN_TYPE: case DOMXPathResult::ANY_UNORDERED_NODE_TYPE: case DOMXPathResult::FIRST_ORDERED_NODE_TYPE: case DOMXPathResult::UNORDERED_NODE_SNAPSHOT_TYPE: case DOMXPathResult::ORDERED_NODE_SNAPSHOT_TYPE: case DOMXPathResult::SNAPSHOT_RESULT_TYPE: { return new (_createdWith) XPath2SnapshotResultImpl(_compiledExpression, const_cast(contextNode), _staticContext, _createdWith, this); break; } } return 0; } #else void* XQillaExpressionImpl::evaluate(DOMNode* contextNode, unsigned short type, void*) const { switch((XPath2Result::ResultType)type) { case XPath2Result::FIRST_RESULT: { return new (_createdWith) XPath2FirstResultImpl(_compiledExpression, contextNode, _staticContext, _createdWith); break; } case XPath2Result::ITERATOR_RESULT: { return new (_createdWith) XPath2IteratorResultImpl(_compiledExpression, contextNode, _staticContext, _createdWith); break; } case XPath2Result::SNAPSHOT_RESULT: { return new (_createdWith) XPath2SnapshotResultImpl(_compiledExpression, contextNode, _staticContext, _createdWith); break; } } return 0; } void* XQillaExpressionImpl::evaluateOnce(DOMNode* contextNode, unsigned short type, void*) { switch((XPath2Result::ResultType)type) { case XPath2Result::FIRST_RESULT: { return new (_createdWith) XPath2FirstResultImpl(_compiledExpression, contextNode, _staticContext, _createdWith, this); break; } case XPath2Result::ITERATOR_RESULT: { return new (_createdWith) XPath2IteratorResultImpl(_compiledExpression, contextNode, _staticContext, _createdWith, this); break; } case XPath2Result::SNAPSHOT_RESULT: { return new (_createdWith) XPath2SnapshotResultImpl(_compiledExpression, contextNode, _staticContext, _createdWith, this); break; } } return 0; } #endif XQilla-2.3.0/src/dom-api/impl/XQillaXMLGrammarPoolImpl.cpp0000644000151400015140000000257011653565523020162 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include "XQillaXMLGrammarPoolImpl.hpp" #include #include XQillaXMLGrammarPoolImpl::XQillaXMLGrammarPoolImpl(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* const memMgr) : XMLGrammarPoolImpl(memMgr) {}; bool XQillaXMLGrammarPoolImpl::cacheGrammar(XERCES_CPP_NAMESPACE_QUALIFIER Grammar* const gramToCache) { try { return XMLGrammarPoolImpl::cacheGrammar(gramToCache); } catch(XERCES_CPP_NAMESPACE_QUALIFIER RuntimeException& e) { //do nothing - return false because the grammar was not accepted return false; } return false; } XQilla-2.3.0/src/dom-api/XPath2NodeSerializer.cpp0000644000151400015140000000377111653565523016435 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "XPath2NodeSerializer.hpp" #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; XPath2NodeSerializer::XPath2NodeSerializer(MemoryManager* const manager) : #if _XERCES_VERSION >= 30000 DOMLSSerializerImpl(manager) #else DOMWriterImpl(manager) #endif { } XPath2NodeSerializer::~XPath2NodeSerializer() { // nothing to do } bool XPath2NodeSerializer::customNodeSerialize(const DOMNode* const nodeToWrite, int level) { switch (nodeToWrite->getNodeType ()) { case DOMXPathNamespace::XPATH_NAMESPACE_NODE: { const XMLCh* localName = nodeToWrite->getLocalName(); const XMLCh* namespaceURI = nodeToWrite->getNamespaceURI(); *fFormatter << XMLFormatter::NoEscapes << chOpenSquare << localName << chEqual << chDoubleQuote << namespaceURI << chDoubleQuote << chCloseSquare; return true; break; } default: { return false; break; } } } XQilla-2.3.0/src/dom-api/XQillaImplementation.cpp0000644000151400015140000001640111653565523016561 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "XQillaImplementation.hpp" #include #include "impl/XQillaDocumentImpl.hpp" #include "impl/XQillaBuilderImpl.hpp" #include "impl/XQillaXMLGrammarPoolImpl.hpp" #include "XPath2NodeSerializer.hpp" #include #include #include #include #if _XERCES_VERSION >= 30000 #include #include #else #include #endif #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh XQillaImplementation::gXQilla[] = // Points to "XPath2" {chLatin_X, chLatin_P, chLatin_a, chLatin_t, chLatin_h, chDigit_2, chNull}; const XMLCh XQillaImplementation::g3_0[] = // Points to "3.0" {chDigit_3, chPeriod, chDigit_0, chNull}; XQillaImplementation::XQillaImplementation() { domImpl = DOMImplementation::getImplementation(); } XQillaImplementation::~XQillaImplementation() { } XQillaImplementation * XQillaImplementation::gDomimp = 0; void XQillaImplementation::initialize() { if(gDomimp) delete gDomimp; gDomimp = new XQillaImplementation(); DOMImplementationRegistry::addSource(gDomimp); } void XQillaImplementation::terminate() { if(gDomimp) delete gDomimp; gDomimp = 0; } XQillaImplementation* XQillaImplementation::getDOMImplementationImpl() { // initialized by XQillaImplementation::initialize() return gDomimp; } bool XQillaImplementation::hasFeature(const XMLCh * feature, const XMLCh * version) const { if (!feature) return false; if (XMLString::compareIString(feature, gXQilla) == 0 && (version == 0 || !*version || XMLString::equals(version, g3_0))) return true; return domImpl->hasFeature(feature, version); } DOMDocument* XQillaImplementation::createDocument(const XMLCh *namespaceURI, const XMLCh *qualifiedName, DOMDocumentType *doctype, MemoryManager* const manager) { return new (manager) XQillaDocumentImpl(namespaceURI, qualifiedName, doctype, this, manager); } DOMDocument* XQillaImplementation::createDocument(MemoryManager* const manager) { return new (manager) XQillaDocumentImpl(this, manager); } #if _XERCES_VERSION >= 30000 DOMLSParser* XQillaImplementation::createLSParser(const DOMImplementationLS::DOMImplementationLSMode mode, const XMLCh* const schemaType, MemoryManager* const manager, XMLGrammarPool* const gramPool) { XMLGrammarPool *temp = 0; bool adoptGramPool = false; if(!gramPool) { temp = new (manager) XQillaXMLGrammarPoolImpl(manager); adoptGramPool = true; } else { temp = gramPool; } if(mode == DOMImplementationLS::MODE_ASYNCHRONOUS) throw DOMException(DOMException::NOT_SUPPORTED_ERR, 0); DOMLSParser *tmp = new (manager) XQillaBuilderImpl(0, manager, temp, adoptGramPool); #if _XERCES_VERSION >= 30000 tmp->getDomConfig()->setParameter(XMLUni::fgXercesParserUseDocumentFromImplementation, (void*)gXQilla); tmp->getDomConfig()->setParameter(XMLUni::fgXercesCacheGrammarFromParse, true); #else tmp->setProperty(XMLUni::fgXercesParserUseDocumentFromImplementation, (void*)gXQilla); tmp->setFeature(XMLUni::fgXercesCacheGrammarFromParse, true); #endif return tmp; } DOMLSSerializer* XQillaImplementation::createLSSerializer(MemoryManager* const manager) { return new (manager) XPath2NodeSerializer(manager); } DOMLSInput* XQillaImplementation::createLSInput(MemoryManager* const manager) { return domImpl->createLSInput(manager); } DOMLSOutput* XQillaImplementation::createLSOutput(MemoryManager* const manager) { return domImpl->createLSOutput(manager); } #else DOMWriter* XQillaImplementation::createDOMWriter(MemoryManager* const manager) { return new (manager) XPath2NodeSerializer(manager); } DOMBuilder* XQillaImplementation::createDOMBuilder(const short mode, const XMLCh* const schemaType, MemoryManager* const manager, XMLGrammarPool* const gramPool) { XMLGrammarPool *temp = 0; bool adoptGramPool = false; if(!gramPool) { temp = new (manager) XQillaXMLGrammarPoolImpl(manager); adoptGramPool = true; } else { temp = gramPool; } if(mode == DOMImplementationLS::MODE_ASYNCHRONOUS) throw DOMException(DOMException::NOT_SUPPORTED_ERR, 0); DOMBuilder *tmp = new (manager) XQillaBuilderImpl(0, manager, temp, adoptGramPool); tmp->setProperty(XMLUni::fgXercesParserUseDocumentFromImplementation, (void*)gXQilla); tmp->setFeature(XMLUni::fgXercesCacheGrammarFromParse, true); return tmp; } DOMInputSource* XQillaImplementation::createDOMInputSource() { return domImpl->createDOMInputSource(); } #endif DOMImplementation* XQillaImplementation::getDOMImplementation(const XMLCh* features) const { DOMImplementation* impl = XQillaImplementation::getDOMImplementationImpl(); XMLStringTokenizer tokenizer(features); const XMLCh* feature = 0; while (feature || tokenizer.hasMoreTokens()) { if (!feature) feature = tokenizer.nextToken(); const XMLCh* version = 0; const XMLCh* token = tokenizer.nextToken(); if (token && XMLString::isDigit(token[0])) version = token; if (!impl->hasFeature(feature, version)) return 0; if (!version) feature = token; } return impl; } #if _XERCES_VERSION >= 30000 DOMImplementationList *XQillaImplementation::getDOMImplementationList(const XMLCh* features) const { DOMImplementationListImpl* list = new DOMImplementationListImpl; DOMImplementation* myImpl=getDOMImplementation(features); if(myImpl) list->add(myImpl); return list; } #endif DOMDocumentType *XQillaImplementation::createDocumentType(const XMLCh *qualifiedName, const XMLCh * publicId, const XMLCh *systemId) { return domImpl->createDocumentType(qualifiedName, publicId, systemId); } #if _XERCES_VERSION >= 30000 void* XQillaImplementation::getFeature(const XMLCh* feature, const XMLCh* version) const { return domImpl->getFeature(feature, version); } #else DOMImplementation* XQillaImplementation::getInterface(const XMLCh* feature) { return domImpl->getInterface(feature); } #endif XQilla-2.3.0/src/functions/0000755000151400015140000000000011653572443012514 500000000000000XQilla-2.3.0/src/functions/FunctionExp.cpp0000644000151400015140000000301211653565523015377 00000000000000/* * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include const XMLCh FunctionExp::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_x, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_p, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionExp::minArgs = 1; const unsigned int FunctionExp::maxArgs = 1; /* * math:exp($arg as numeric?) as numeric? */ FunctionExp::FunctionExp(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : EXSLTMathFunction(name, "($arg as xs:anyAtomicType?) as xs:anyAtomicType?", args, memMgr) { } Result FunctionExp::createResult(DynamicContext* context, int flags) const { Numeric::Ptr num = getNumericParam(1, context); if(num.isNull()) return 0; return (Item::Ptr)num->exp(context); } XQilla-2.3.0/src/functions/FunctionTrace.cpp0000644000151400015140000000452011653565523015706 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionTrace::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionTrace::minArgs = 2; const unsigned int FunctionTrace::maxArgs = 2; /* * fn:trace($value as item()*, $label as xs:string) as item()* */ FunctionTrace::FunctionTrace(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($value as item()*, $label as xs:string) as item()*", args, memMgr) { } ASTNode *FunctionTrace::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context); _src.getStaticType() = _args.front()->getStaticAnalysis().getStaticType(); _src.setProperties(_args.front()->getStaticAnalysis().getProperties()); _src.forceNoFolding(true); return this; } Sequence FunctionTrace::createSequence(DynamicContext* context, int flags) const { Sequence value = getParamNumber(1, context)->toSequence(context); if(context->getMessageListener() != 0) { context->getMessageListener()->trace(getParamNumber(2, context)->next(context)->asString(context), value, this, context); } return value; } XQilla-2.3.0/src/functions/FunctionImplicitTimezone.cpp0000644000151400015140000000465511653565523020146 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include /*implicit-timezone*/ const XMLCh FunctionImplicitTimezone::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_p, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_l, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_z, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionImplicitTimezone::minArgs = 0; const unsigned int FunctionImplicitTimezone::maxArgs = 0; /** * fn:implicit-timezone() as xs:dayTimeDuration **/ FunctionImplicitTimezone::FunctionImplicitTimezone(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "() as xs:dayTimeDuration", args, memMgr) { } ASTNode *FunctionImplicitTimezone::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); _src.implicitTimezoneUsed(true); calculateSRCForArguments(context); return this; } Sequence FunctionImplicitTimezone::createSequence(DynamicContext* context, int flags) const { return Sequence(context->getImplicitTimezone(), context->getMemoryManager()); } XQilla-2.3.0/src/functions/FnModule.hpp0000644000151400015140000010633711636377670014676 00000000000000// Auto-generated by compile-delayed-module from ../src/functions/FnModule.xq // DO NOT EDIT // ../src/functions/FnModule.xq static const XMLCh fn_file[] = { 46, 46, 47, 115, 114, 99, 47, 102, 117, 110, 99, 116, 105, 111, 110, 115, 47, 70, 110, 77, 111, 100, 117, 108, 101, 46, 120, 113, 0 }; // fn static const XMLCh fn_prefix[] = { 102, 110, 0 }; // http://www.w3.org/2005/xpath-functions static const XMLCh fn_uri[] = { 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 119, 51, 46, 111, 114, 103, 47, 50, 48, 48, 53, 47, 120, 112, 97, 116, 104, 45, 102, 117, 110, 99, 116, 105, 111, 110, 115, 0 }; static const DelayedModule::FuncDef fn_functions[] = { { "data", 1, false, 20, 1, "declare function data($a as item()*) as xs:anyAtomicType*\n" "{\n" " $a\n" "}\n" }, { "string-join", 1, false, 28, 1, "declare function string-join($seq as xs:string*) as xs:string\n" "{\n" " string-join($seq, \"\")\n" "}\n" }, { "string-join", 2, false, 33, 1, "declare function string-join($seq as xs:string*, $join as xs:string) as xs:string\n" "{\n" " if(empty($seq)) then \"\"\n" " else string-join-helper($seq, $join)\n" "}\n" }, { "string-join-helper", 2, true, 39, 1, "declare private function string-join-helper($seq as xs:string*, $join as xs:string) as xs:string\n" "{\n" " if(empty(tail($seq))) then head($seq)\n" " else concat(head($seq), $join, string-join-helper(tail($seq), $join))\n" "}\n" }, { "substring-before", 2, false, 45, 1, "declare function substring-before($arg1 as xs:string?, $arg2 as xs:string?) as xs:string\n" "{\n" " substring-before($arg1, $arg2, default-collation())\n" "}\n" }, { "substring-before", 3, false, 50, 1, "declare function substring-before($arg1 as xs:string?, $arg2 as xs:string?, $collation as xs:string)\n" " as xs:string\n" "{\n" " let $arg1 := if(empty($arg1)) then \"\" else $arg1\n" " let $arg2 := if(empty($arg2)) then \"\" else $arg2\n" " let $arg2len := string-length($arg2)\n" " return\n" " substring($arg1, 1,\n" " string-index-of($arg1, 1, 1 + string-length($arg1) - $arg2len, $arg2, $arg2len, $collation) - 1)\n" "}\n" }, { "substring-after", 2, false, 61, 1, "declare function substring-after($arg1 as xs:string?, $arg2 as xs:string?) as xs:string\n" "{\n" " substring-after($arg1, $arg2, default-collation())\n" "}\n" }, { "substring-after", 3, false, 66, 1, "declare function substring-after($arg1 as xs:string?, $arg2 as xs:string?, $collation as xs:string)\n" " as xs:string\n" "{\n" " let $arg1 := if(empty($arg1)) then \"\" else $arg1\n" " let $arg2 := if(empty($arg2)) then \"\" else $arg2\n" " let $arg2len := string-length($arg2)\n" " let $index := string-index-of($arg1, 1, 1 + string-length($arg1) - $arg2len, $arg2, $arg2len, $collation)\n" " return\n" " if($index eq 0) then \"\" else substring($arg1, $index + $arg2len)\n" "}\n" }, { "string-index-of", 6, true, 77, 1, "declare private function string-index-of($str as xs:string, $index as xs:decimal, $endindex as xs:decimal,\n" " $tofind as xs:string, $tofindlen as xs:decimal, $collation as xs:string) as xs:decimal\n" "{\n" " if($index gt $endindex) then 0\n" " else if(compare($tofind, substring($str, $index, $tofindlen), $collation) eq 0) then $index\n" " else string-index-of($str, $index + 1, $endindex, $tofind, $tofindlen, $collation)\n" "}\n" }, { "codepoint-equal", 2, false, 85, 1, "declare function codepoint-equal($arg1 as xs:string?, $arg2 as xs:string?) as xs:boolean?\n" "{\n" " compare($arg1, $arg2, \"http://www.w3.org/2005/xpath-functions/collation/codepoint\") eq 0\n" "}\n" }, { "translate", 3, false, 90, 1, "declare function translate($arg as xs:string?, $mapString as xs:string, $transString as xs:string) as xs:string\n" "{\n" " codepoints-to-string(\n" " let $in := string-to-codepoints($arg)\n" " let $map := string-to-codepoints($mapString)\n" " let $trans := string-to-codepoints($transString)\n" " for $c in $in\n" " let $index := head(index-of($map, $c))\n" " return\n" " if(empty($index)) then $c else $trans[$index]\n" " )\n" "}\n" }, { "codepoint-in-utf8", 1, true, 103, 1, "declare private function codepoint-in-utf8($c as xs:integer) as xs:integer+\n" "{\n" " if($c < 128) then $c\n" " else if($c < 2048) then (\n" " ($c idiv 64) + 192,\n" " ($c mod 64) + 128\n" " )\n" " else if($c < 65536) then (\n" " ($c idiv 4096) + 224,\n" " (($c idiv 64) mod 64) + 128,\n" " ($c mod 64) + 128\n" " )\n" " else (\n" " ($c idiv 262144) + 240,\n" " (($c idiv 4096) mod 64) + 128,\n" " (($c idiv 64) mod 64) + 128,\n" " ($c mod 64) + 128\n" " )\n" "}\n" }, { "percent-encode", 1, true, 123, 1, "declare private function percent-encode($c as xs:integer) as xs:integer+\n" "{\n" " (: Codepoint for \"%\" :)\n" " let $percent := 37\n" " (: Codepoints for \"0\" - \"9\", \"A\" - \"F\" :)\n" " let $hex := (48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70)\n" " for $byte in codepoint-in-utf8($c)\n" " return (\n" " $percent,\n" " $hex[($byte idiv 16) + 1],\n" " $hex[($byte mod 16) + 1]\n" " )\n" "}\n" }, { "encode-for-uri", 1, false, 137, 1, "declare function encode-for-uri($uri-part as xs:string?) as xs:string\n" "{\n" " codepoints-to-string(\n" " let $A := string-to-codepoints(\"A\")\n" " let $Z := string-to-codepoints(\"Z\")\n" " let $a := string-to-codepoints(\"a\")\n" " let $z := string-to-codepoints(\"z\")\n" " let $d0 := string-to-codepoints(\"0\")\n" " let $d9 := string-to-codepoints(\"9\")\n" " let $hyphen := string-to-codepoints(\"-\")\n" " let $underscore := string-to-codepoints(\"_\")\n" " let $fullstop := string-to-codepoints(\".\")\n" " let $tilde := string-to-codepoints(\"~\")\n" "\n" " for $c in string-to-codepoints($uri-part)\n" " return\n" " if(($c ge $A and $c le $Z) or\n" " ($c ge $a and $c le $z) or\n" " ($c ge $d0 and $c le $d9) or\n" " $c eq $hyphen or $c eq $underscore or\n" " $c eq $fullstop or $c eq $tilde)\n" " then $c\n" " else percent-encode($c)\n" " )\n" "}\n" }, { "iri-to-uri", 1, false, 163, 1, "declare function iri-to-uri($iri as xs:string?) as xs:string\n" "{\n" " codepoints-to-string(\n" " let $leftangle := string-to-codepoints(\"<\")\n" " let $rightangle := string-to-codepoints(\">\")\n" " let $doublequote := string-to-codepoints('\"')\n" " let $space := string-to-codepoints(\" \")\n" " let $leftcurly := string-to-codepoints(\"{\")\n" " let $rightcurly := string-to-codepoints(\"}\")\n" " let $bar := string-to-codepoints(\"|\")\n" " let $backslash := 92\n" " let $hat := string-to-codepoints(\"^\")\n" " let $backtick := string-to-codepoints(\"`\")\n" "\n" " for $c in string-to-codepoints($iri)\n" " return\n" " if($c lt 32 or $c gt 126 or\n" " $c eq $leftangle or $c eq $rightangle or\n" " $c eq $doublequote or $c eq $space or\n" " $c eq $leftcurly or $c eq $rightcurly or\n" " $c eq $bar or $c eq $backslash or\n" " $c eq $hat or $c eq $backtick)\n" " then percent-encode($c)\n" " else $c\n" " )\n" "}\n" }, { "escape-html-uri", 1, false, 190, 1, "declare function escape-html-uri($iri as xs:string?) as xs:string\n" "{\n" " codepoints-to-string(\n" " for $c in string-to-codepoints($iri)\n" " return\n" " if($c lt 32 or $c gt 126)\n" " then percent-encode($c)\n" " else $c\n" " )\n" "}\n" }, { "resolve-QName", 2, false, 204, 1, "declare function resolve-QName($qname as xs:string?, $element as element()) as xs:QName?\n" "{\n" " typeswitch($qname)\n" " case $qname as xs:string return\n" " let $mock := QName(\"dummy\", $qname)\n" " let $uri := namespace-uri-for-prefix(prefix-from-QName($mock), $element)\n" " return\n" " if(empty(prefix-from-QName($mock)) or exists($uri)) then QName($uri, $qname)\n" " else error(xs:QName(\"err:FONS0004\"), concat(\"No namespace found for prefix: \"\"\", prefix-from-QName($mock), \"\"\"\"))\n" " default return ()\n" "}\n" }, { "namespace-uri-for-prefix", 2, false, 216, 1, "declare function namespace-uri-for-prefix($prefix as xs:string?, $element as element()) as xs:anyURI?\n" "{\n" " let $prefix := if(empty($prefix)) then \"\" else $prefix\n" " return $element/namespace::*[name() eq $prefix]/xs:anyURI(.)\n" "}\n" }, { "in-scope-prefixes", 1, false, 222, 1, "declare function in-scope-prefixes($element as element()) as xs:string*\n" "{\n" " $element/namespace::*/name()\n" "}\n" }, { "true", 0, false, 230, 1, "declare function true() as xs:boolean\n" "{\n" " xs:boolean(\"1\")\n" "}\n" }, { "false", 0, false, 235, 1, "declare function false() as xs:boolean\n" "{\n" " xs:boolean(\"0\")\n" "}\n" }, { "boolean", 1, false, 240, 1, "declare function boolean($arg as item()*) as xs:boolean\n" "{\n" " $arg and true()\n" "}\n" }, { "exists", 1, false, 245, 1, "declare function exists($arg as item()*) as xs:boolean\n" "{\n" " not(empty($arg))\n" "}\n" }, { "zero-or-one", 1, false, 253, 1, "declare function zero-or-one($arg as item()*) as item()?\n" "{\n" " typeswitch($arg)\n" " case $arg_ as item()? return $arg_\n" " default return error(xs:QName(\"err:FORG0003\"), \"Sequence contains more then one item\")\n" "}\n" }, { "one-or-more", 1, false, 260, 1, "declare function one-or-more($arg as item()*) as item()+\n" "{\n" " typeswitch($arg)\n" " case $arg_ as item()+ return $arg_\n" " default return error(xs:QName(\"err:FORG0004\"), \"Sequence is empty\")\n" "}\n" }, { "exactly-one", 1, false, 267, 1, "declare function exactly-one($arg as item()*) as item()\n" "{\n" " typeswitch($arg)\n" " case $arg_ as item() return $arg_\n" " case empty-sequence() return error(xs:QName(\"err:FORG0005\"), \"Sequence is empty\")\n" " default return error(xs:QName(\"err:FORG0005\"), \"Sequence contains more then one item\")\n" "}\n" }, { "index-of", 2, false, 275, 1, "declare function index-of($seq as xs:anyAtomicType*, $search as xs:anyAtomicType) as xs:integer*\n" "{\n" " (: Check for NaN :)\n" " if($search ne $search) then () else index-of-helper($seq, $search, default-collation())\n" "}\n" }, { "index-of", 3, false, 281, 1, "declare function index-of($seq as xs:anyAtomicType*, $search as xs:anyAtomicType,\n" " $collation as xs:string) as xs:integer*\n" "{\n" " (: Check for NaN :)\n" " if($search ne $search) then () else index-of-helper($seq, $search, $collation)\n" "}\n" }, { "index-of-helper", 3, true, 288, 1, "declare private function index-of-helper($seq as xs:anyAtomicType*, $search as xs:anyAtomicType,\n" " $collation as xs:string) as xs:integer*\n" "{\n" " for $s at $p in $seq\n" " where empty(tail(distinct-values(($s, $search), $collation)))\n" " return $p\n" "}\n" }, { "insert-before", 3, false, 296, 1, "declare function insert-before($target as item()*, $position as xs:integer, $inserts as item()*)\n" " as item()*\n" "{\n" " if($position le 1 or empty($inserts)) then ($inserts, $target)\n" " else (head($target), insert-before(tail($target), $position - 1, $inserts))\n" "}\n" }, { "remove", 2, false, 303, 1, "declare function remove($target as item()*, $position as xs:integer) as item()*\n" "{\n" " $target[position() ne $position]\n" "}\n" }, { "reverse", 1, false, 308, 1, "declare function reverse($seq as item()*) as item()*\n" "{\n" " if(empty($seq)) then ()\n" " else (reverse(tail($seq)), head($seq))\n" "}\n" }, { "subsequence", 2, false, 314, 1, "declare function subsequence($sourceSeq as item()*, $startingLoc as xs:double) as item()*\n" "{\n" " let $s := round($startingLoc)\n" " return\n" " if($s < 1) then $sourceSeq\n" " else xqilla:drop($sourceSeq, $s - 1)\n" "}\n" }, { "subsequence", 3, false, 322, 1, "declare function subsequence($sourceSeq as item()*, $startingLoc as xs:double,\n" " $length as xs:double) as item()*\n" "{\n" " let $s := round($startingLoc)\n" " return\n" " if($s < 1) then take($sourceSeq, round($length) + $s - 1)\n" " else take(xqilla:drop($sourceSeq, $s - 1), round($length))\n" "}\n" }, { "take", 2, true, 331, 1, "declare private function take($seq as item()*, $num as xs:double) as item()*\n" "{\n" " if($num le 0 or empty($seq)) then ()\n" " else (head($seq), take(tail($seq), $num - 1))\n" "}\n" }, { "deep-equal", 2, false, 337, 1, "declare function deep-equal($parameter1 as item()*, $parameter2 as item()*) as xs:boolean\n" "{\n" " deep-equal($parameter1, $parameter2, default-collation())\n" "}\n" }, { "deep-equal", 3, false, 342, 1, "declare function deep-equal($p1 as item()*, $p2 as item()*, $collation as xs:string) as xs:boolean\n" "{\n" " if(empty($p1)) then empty($p2) else\n" " if(empty($p2)) then false() else\n" "\n" " let $i1 := head($p1), $i2 := head($p2)\n" " return\n" " typeswitch($i1)\n" "\n" " case $a1 as xs:anyAtomicType return\n" " typeswitch($i2)\n" " case $a2 as xs:anyAtomicType return\n" " empty(tail(distinct-values(($a1, $a2), $collation))) and\n" " deep-equal(tail($p1), tail($p2), $collation)\n" " case node() return false()\n" " default return deep-equal-error()\n" "\n" " case $n1 as node() return (\n" " typeswitch($i2)\n" " case xs:anyAtomicType return false()\n" " case $n2 as node() return (\n" " deep-equal-nodes($n1, $n2, $collation) and\n" " deep-equal(tail($p1), tail($p2), $collation)\n" " )\n" " default return deep-equal-error()\n" " )\n" "\n" " default return deep-equal-error()\n" "}\n" }, { "deep-equal-error", 0, true, 372, 1, "declare private function deep-equal-error()\n" "{\n" " error(xs:QName(\"err:FOTY0015\"), \"An argument to fn:deep-equal() contains a function item\")\n" "}\n" }, { "deep-equal-nodes", 3, true, 377, 1, "declare private function deep-equal-nodes($p1 as node()*, $p2 as node()*, $collation as xs:string) as xs:boolean\n" "{\n" " if(empty($p1)) then empty($p2) else\n" " if(empty($p2)) then false() else\n" "\n" " let $i1 := head($p1), $i2 := head($p2)\n" " return\n" " typeswitch($i1)\n" "\n" " case document-node() return\n" " typeswitch($i2)\n" " case document-node() return\n" " deep-equal-nodes($i1/(*|text()), $i2/(*|text()), $collation) and\n" " deep-equal-nodes(tail($p1), tail($p2), $collation)\n" " default return false()\n" "\n" " case text() return\n" " typeswitch($i2)\n" " case text() return\n" " empty(tail(distinct-values(($i1, $i2), $collation))) and\n" " deep-equal-nodes(tail($p1), tail($p2), $collation)\n" " default return false()\n" "\n" " case comment() return\n" " typeswitch($i2)\n" " case comment() return\n" " empty(tail(distinct-values(($i1, $i2), $collation))) and\n" " deep-equal-nodes(tail($p1), tail($p2), $collation)\n" " default return false()\n" "\n" " case processing-instruction() return\n" " typeswitch($i2)\n" " case processing-instruction() return\n" " node-name($i1) eq node-name($i2) and\n" " empty(tail(distinct-values(($i1, $i2), $collation))) and\n" " deep-equal-nodes(tail($p1), tail($p2), $collation)\n" " default return false()\n" "\n" " case attribute() return\n" " typeswitch($i2)\n" " case attribute() return\n" " node-name($i1) eq node-name($i2) and\n" " deep-equal(data($i1), data($i2), $collation) and\n" " deep-equal-nodes(tail($p1), tail($p2), $collation)\n" " default return false()\n" "\n" " case element() return\n" " typeswitch($i2)\n" " case element() return (\n" " node-name($i1) eq node-name($i2) and\n" " count($i1/@*) eq count($i2/@*) and\n" " (every $a1 in $i1/@* satisfies\n" " some $a2 in $i2/@* satisfies deep-equal-nodes($a1, $a2, $collation)) and\n" "\n" " (if(empty($i1/*) and empty($i2/*))\n" " then deep-equal(data($i1), data($i2), $collation)\n" " else deep-equal-nodes($i1/(*|text()), $i2/(*|text()), $collation)) and\n" "\n" " deep-equal-nodes(tail($p1), tail($p2), $collation)\n" " )\n" " default return false()\n" "\n" " \n" " default (: namespace-node() :) return\n" " typeswitch($i2)\n" " case namespace-node() return\n" " deep-equal(node-name($i1), node-name($i2), $collation) and\n" " codepoint-equal($i1, $i2) and\n" " deep-equal-nodes(tail($p1), tail($p2), $collation)\n" " default return false()\n" "}\n" }, { "avg", 1, false, 452, 1, "declare function avg($arg as xs:anyAtomicType*) as xs:anyAtomicType?\n" "{\n" " sum($arg, ()) div count($arg)\n" "}\n" }, { "sum", 1, false, 457, 1, "declare function sum($arg as xs:anyAtomicType*) as xs:anyAtomicType\n" "{\n" " sum($arg, 0)\n" "}\n" }, { "sum", 2, false, 462, 1, "declare function sum($arg as xs:anyAtomicType*, $zero as xs:anyAtomicType?) as xs:anyAtomicType?\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $zero\n" " case $head as xs:untypedAtomic return numeric-sum(tail($arg), xs:double($head))\n" " case $head as xs:double | xs:float | xs:decimal return\n" " if($head ne $head) then $head else numeric-sum(tail($arg), $head)\n" " case $head as xs:yearMonthDuration return yearMonthDuration-sum(tail($arg), $head)\n" " case $head as xs:dayTimeDuration return dayTimeDuration-sum(tail($arg), $head)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Invalid argument to fn:sum() function\")\n" "}\n" }, { "numeric-sum", 2, true, 474, 1, "declare private function numeric-sum($arg as xs:anyAtomicType*, $result as xs:anyAtomicType) as xs:anyAtomicType\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:untypedAtomic return numeric-sum(tail($arg), xs:double($head) + $result)\n" " case $head as xs:double | xs:float | xs:decimal return\n" " if($head ne $head) then $head else numeric-sum(tail($arg), $head + $result)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Invalid argument to fn:sum() function\")\n" "}\n" }, { "yearMonthDuration-sum", 2, true, 484, 1, "declare private function yearMonthDuration-sum($arg as xs:anyAtomicType*, $result as xs:yearMonthDuration) as xs:yearMonthDuration\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:yearMonthDuration return yearMonthDuration-sum(tail($arg), $head + $result)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Invalid argument to fn:sum() function\")\n" "}\n" }, { "dayTimeDuration-sum", 2, true, 492, 1, "declare private function dayTimeDuration-sum($arg as xs:anyAtomicType*, $result as xs:dayTimeDuration) as xs:dayTimeDuration\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:dayTimeDuration return dayTimeDuration-sum(tail($arg), $head + $result)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Invalid argument to fn:sum() function\")\n" "}\n" }, { "max", 1, false, 500, 1, "declare function max($arg as xs:anyAtomicType*) as xs:anyAtomicType?\n" "{\n" " max($arg, default-collation())\n" "}\n" }, { "max", 2, false, 505, 1, "declare function max($arg as xs:anyAtomicType*, $collation as xs:string) as xs:anyAtomicType?\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return ()\n" " case $head as xs:untypedAtomic | xs:double return double-max(tail($arg), xs:double($head))\n" " case $head as xs:float return float-max(tail($arg), $head)\n" " case $head as xs:decimal return decimal-max(tail($arg), $head)\n" " case $head as xs:anyURI | xs:string return string-max(tail($arg), xs:string($head), $collation)\n" " case $head as xs:boolean return boolean-max(tail($arg), $head)\n" " case $head as xs:date return date-max(tail($arg), $head)\n" " case $head as xs:time return time-max(tail($arg), $head)\n" " case $head as xs:dateTime return dateTime-max(tail($arg), $head)\n" " case $head as xs:yearMonthDuration return yearMonthDuration-max(tail($arg), $head)\n" " case $head as xs:dayTimeDuration return dayTimeDuration-max(tail($arg), $head)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:max() function\")\n" "}\n" }, { "double-max", 2, true, 522, 1, "declare private function double-max($arg as xs:anyAtomicType*, $result as xs:double) as xs:double\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:untypedAtomic | xs:double | xs:float | xs:decimal return\n" " let $head := xs:double($head) return\n" " double-max(tail($arg), if($head gt $result or $head ne $head) then $head else $result)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:max() function\")\n" "}\n" }, { "float-max", 2, true, 532, 1, "declare private function float-max($arg as xs:anyAtomicType*, $result as xs:float) as xs:anyAtomicType\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:untypedAtomic | xs:double return double-max($arg, xs:double($result))\n" " case $head as xs:float | xs:decimal return\n" " let $head := xs:float($head) return\n" " float-max(tail($arg), if($head gt $result or $head ne $head) then $head else $result)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:max() function\")\n" "}\n" }, { "decimal-max", 2, true, 543, 1, "declare private function decimal-max($arg as xs:anyAtomicType*, $result as xs:decimal) as xs:anyAtomicType\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:untypedAtomic | xs:double return double-max($arg, xs:double($result))\n" " case $head as xs:float return float-max($arg, xs:float($result))\n" " case $head as xs:decimal return decimal-max(tail($arg), if($head gt $result) then $head else $result)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:max() function\")\n" "}\n" }, { "string-max", 3, true, 553, 1, "declare private function string-max($arg as xs:anyAtomicType*, $result as xs:string, $collation as xs:string) as xs:string\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:string | xs:anyURI return\n" " string-max(tail($arg), if(compare($head, $result, $collation) gt 0) then xs:string($head) else $result, $collation)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:max() function\")\n" "}\n" }, { "boolean-max", 2, true, 562, 1, "declare private function boolean-max($arg as xs:anyAtomicType*, $result as xs:boolean) as xs:boolean\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:boolean return boolean-max(tail($arg), if($head gt $result) then $head else $result)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:max() function\")\n" "}\n" }, { "date-max", 2, true, 570, 1, "declare private function date-max($arg as xs:anyAtomicType*, $result as xs:date) as xs:date\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:date return date-max(tail($arg), if($head gt $result) then $head else $result)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:max() function\")\n" "}\n" }, { "time-max", 2, true, 578, 1, "declare private function time-max($arg as xs:anyAtomicType*, $result as xs:time) as xs:time\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:time return time-max(tail($arg), if($head gt $result) then $head else $result)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:max() function\")\n" "}\n" }, { "dateTime-max", 2, true, 586, 1, "declare private function dateTime-max($arg as xs:anyAtomicType*, $result as xs:dateTime) as xs:dateTime\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:dateTime return dateTime-max(tail($arg), if($head gt $result) then $head else $result)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:max() function\")\n" "}\n" }, { "yearMonthDuration-max", 2, true, 594, 1, "declare private function yearMonthDuration-max($arg as xs:anyAtomicType*, $result as xs:yearMonthDuration) as xs:yearMonthDuration\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:yearMonthDuration return yearMonthDuration-max(tail($arg), if($head gt $result) then $head else $result)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:max() function\")\n" "}\n" }, { "dayTimeDuration-max", 2, true, 602, 1, "declare private function dayTimeDuration-max($arg as xs:anyAtomicType*, $result as xs:dayTimeDuration) as xs:dayTimeDuration\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:dayTimeDuration return dayTimeDuration-max(tail($arg), if($head gt $result) then $head else $result)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:max() function\")\n" "}\n" }, { "min", 1, false, 610, 1, "declare function min($arg as xs:anyAtomicType*) as xs:anyAtomicType?\n" "{\n" " min($arg, default-collation())\n" "}\n" }, { "min", 2, false, 615, 1, "declare function min($arg as xs:anyAtomicType*, $collation as xs:string) as xs:anyAtomicType?\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return ()\n" " case $head as xs:untypedAtomic | xs:double return double-min(tail($arg), xs:double($head))\n" " case $head as xs:float return float-min(tail($arg), $head)\n" " case $head as xs:decimal return decimal-min(tail($arg), $head)\n" " case $head as xs:anyURI | xs:string return string-min(tail($arg), xs:string($head), $collation)\n" " case $head as xs:boolean return boolean-min(tail($arg), $head)\n" " case $head as xs:date return date-min(tail($arg), $head)\n" " case $head as xs:time return time-min(tail($arg), $head)\n" " case $head as xs:dateTime return dateTime-min(tail($arg), $head)\n" " case $head as xs:yearMonthDuration return yearMonthDuration-min(tail($arg), $head)\n" " case $head as xs:dayTimeDuration return dayTimeDuration-min(tail($arg), $head)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:min() function\")\n" "}\n" }, { "double-min", 2, true, 632, 1, "declare private function double-min($arg as xs:anyAtomicType*, $result as xs:double) as xs:double\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:untypedAtomic | xs:double | xs:float | xs:decimal return\n" " let $head := xs:double($head) return\n" " double-min(tail($arg), if($head lt $result or $head ne $head) then $head else $result)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:min() function\")\n" "}\n" }, { "float-min", 2, true, 642, 1, "declare private function float-min($arg as xs:anyAtomicType*, $result as xs:float) as xs:anyAtomicType\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:untypedAtomic | xs:double return double-min($arg, xs:double($result))\n" " case $head as xs:float | xs:decimal return\n" " let $head := xs:float($head) return\n" " float-min(tail($arg), if($head lt $result or $head ne $head) then $head else $result)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:min() function\")\n" "}\n" }, { "decimal-min", 2, true, 653, 1, "declare private function decimal-min($arg as xs:anyAtomicType*, $result as xs:decimal) as xs:anyAtomicType\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:untypedAtomic | xs:double return double-min($arg, xs:double($result))\n" " case $head as xs:float return float-min($arg, xs:float($result))\n" " case $head as xs:decimal return decimal-min(tail($arg), if($head lt $result) then $head else $result)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:min() function\")\n" "}\n" }, { "string-min", 3, true, 663, 1, "declare private function string-min($arg as xs:anyAtomicType*, $result as xs:string, $collation as xs:string) as xs:string\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:string | xs:anyURI return\n" " string-min(tail($arg), if(compare($head, $result, $collation) lt 0) then xs:string($head) else $result, $collation)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:min() function\")\n" "}\n" }, { "boolean-min", 2, true, 672, 1, "declare private function boolean-min($arg as xs:anyAtomicType*, $result as xs:boolean) as xs:boolean\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:boolean return boolean-min(tail($arg), if($head lt $result) then $head else $result)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:min() function\")\n" "}\n" }, { "date-min", 2, true, 680, 1, "declare private function date-min($arg as xs:anyAtomicType*, $result as xs:date) as xs:date\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:date return date-min(tail($arg), if($head lt $result) then $head else $result)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:min() function\")\n" "}\n" }, { "time-min", 2, true, 688, 1, "declare private function time-min($arg as xs:anyAtomicType*, $result as xs:time) as xs:time\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:time return time-min(tail($arg), if($head lt $result) then $head else $result)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:min() function\")\n" "}\n" }, { "dateTime-min", 2, true, 696, 1, "declare private function dateTime-min($arg as xs:anyAtomicType*, $result as xs:dateTime) as xs:dateTime\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:dateTime return dateTime-min(tail($arg), if($head lt $result) then $head else $result)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:min() function\")\n" "}\n" }, { "yearMonthDuration-min", 2, true, 704, 1, "declare private function yearMonthDuration-min($arg as xs:anyAtomicType*, $result as xs:yearMonthDuration) as xs:yearMonthDuration\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:yearMonthDuration return yearMonthDuration-min(tail($arg), if($head lt $result) then $head else $result)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:min() function\")\n" "}\n" }, { "dayTimeDuration-min", 2, true, 712, 1, "declare private function dayTimeDuration-min($arg as xs:anyAtomicType*, $result as xs:dayTimeDuration) as xs:dayTimeDuration\n" "{\n" " typeswitch(head($arg))\n" " case empty-sequence() return $result\n" " case $head as xs:dayTimeDuration return dayTimeDuration-min(tail($arg), if($head lt $result) then $head else $result)\n" " default return error(xs:QName(\"err:FORG0006\"), \"Uncomparable items in argument to fn:min() function\")\n" "}\n" }, { "map", 2, false, 725, 1, "declare function map($f as function(item()) as item()*, $seq as item()*) as item()*\n" "{\n" " if(empty($seq)) then ()\n" " else ($f(head($seq)), map($f, tail($seq)))\n" "}\n" }, { "filter", 2, false, 731, 1, "declare function filter($f as function(item()) as xs:boolean, $seq as item()*) as item()*\n" "{\n" " if(empty($seq)) then ()\n" " else (\n" " if($f(head($seq))) then head($seq) else (),\n" " filter($f, tail($seq))\n" " )\n" "}\n" }, { "fold-left", 3, false, 740, 1, "declare function fold-left($f as function(item()*, item()) as item()*, $zero as item()*,\n" " $seq as item()*) as item()*\n" "{\n" " if(empty($seq)) then $zero\n" " else fold-left($f, $f($zero, head($seq)), tail($seq))\n" "}\n" }, { "fold-right", 3, false, 747, 1, "declare function fold-right($f as function(item(), item()*) as item()*, $zero as item()*,\n" " $seq as item()*) as item()*\n" "{\n" " if(empty($seq)) then $zero\n" " else $f(head($seq), fold-right($f, $zero, tail($seq)))\n" "}\n" }, { "map-pairs", 3, false, 754, 1, "declare function map-pairs($f as function(item(), item()) as item()*, $seq1 as item()*,\n" " $seq2 as item()*) as item()*\n" "{\n" " if(empty($seq1) or empty($seq2)) then ()\n" " else (\n" " $f(head($seq1), head($seq2)),\n" " map-pairs($f, tail($seq1), tail($seq2))\n" " )\n" "}\n" }, { 0, 0, 0, 0, 0 } }; static const DelayedModule fn_module = { fn_file, fn_prefix, fn_uri, fn_functions }; XQilla-2.3.0/src/functions/FunctionEndsWith.cpp0000644000151400015140000001100411653565523016370 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionEndsWith::name[] = { chLatin_e, chLatin_n, chLatin_d, chLatin_s, chDash, chLatin_w, chLatin_i, chLatin_t, chLatin_h, chNull }; const unsigned int FunctionEndsWith::minArgs = 2; const unsigned int FunctionEndsWith::maxArgs = 3; /* * fn:ends-with($arg1 as xs:string?, $arg2 as xs:string?) as xs:boolean * fn:ends-with($arg1 as xs:string?, $arg2 as xs:string?, $collation as xs:string) as xs:boolean */ FunctionEndsWith::FunctionEndsWith(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg1 as xs:string?, $arg2 as xs:string?, $collation as xs:string) as xs:boolean", args, memMgr) { } BoolResult FunctionEndsWith::boolResult(DynamicContext* context) const { Sequence sourceString=getParamNumber(1,context)->toSequence(context); Sequence findString=getParamNumber(2,context)->toSequence(context); const XMLCh* source = XMLUni::fgZeroLenString; if(!sourceString.isEmpty()) source=sourceString.first()->asString(context); const XMLCh* find = XMLUni::fgZeroLenString; if(!findString.isEmpty()) find=findString.first()->asString(context); // If the value of $operand1 is the zero-length string and the value of $operand2 is not the zero-length string, // then the function returns false. if(XMLString::stringLen(source)==0 && XMLString::stringLen(find)>0) return false; // If the value of $operand2 is the zero-length string, then the function returns true if(XMLString::stringLen(find)==0) return true; Collation* collation=NULL; if(getNumArgs()>2) { Sequence collArg = getParamNumber(3,context)->toSequence(context); const XMLCh* collName = collArg.first()->asString(context); try { context->getItemFactory()->createAnyURI(collName, context); } catch(XPath2ErrorException &e) { XQThrow(FunctionException, X("FunctionEndsWith::createSequence"), X("Invalid collationURI")); } collation=context->getCollation(collName, this); } else collation=context->getDefaultCollation(this); // Returns a boolean indicating whether or not the value of $operand1 ends with a string that is equal to the value // of $operand2 according to the specified collation if(XMLString::stringLen(find)>XMLString::stringLen(source)) return false; int i,j; // for(i = XMLString::stringLen(source)-1, j=XMLString::stringLen(find)-1; i >=0 && j >=0; i--,j--) for(i = XPath2Utils::intStrlen(source)-1, j=XPath2Utils::intStrlen(find)-1; i >=0 && j >=0; i--,j--) { const XMLCh *string1 = XPath2Utils::subString(source, i,1, context->getMemoryManager()); const XMLCh *string2 = XPath2Utils::subString(find, j, 1, context->getMemoryManager()); bool result = (collation->compare(string1, string2)!=0); if(result) { return false; } } return true; } Result FunctionEndsWith::createResult(DynamicContext* context, int flags) const { return (Item::Ptr)context->getItemFactory()->createBoolean(boolResult(context), context); } XQilla-2.3.0/src/functions/FunctionCaseFold.cpp0000644000151400015140000000376611653565523016343 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif const XMLCh FunctionCaseFold::name[] = { chLatin_c, chLatin_a, chLatin_s, chLatin_e, chDash, chLatin_f, chLatin_o, chLatin_l, chLatin_d, chNull }; const unsigned int FunctionCaseFold::minArgs = 1; const unsigned int FunctionCaseFold::maxArgs = 1; /* * xqilla:case-fold($arg as xs:string?) as xs:string */ FunctionCaseFold::FunctionCaseFold(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQillaFunction(name, "($arg as xs:string?) as xs:string", args, memMgr) { } Sequence FunctionCaseFold::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager *memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) { return Sequence(context->getItemFactory()->createString(XMLUni::fgZeroLenString, context), memMgr); } AutoDeallocate buf(UnicodeTransformer::caseFold(arg->asString(context), memMgr), memMgr); return Sequence(context->getItemFactory()->createString(buf.get(), context), memMgr); } XQilla-2.3.0/src/functions/FunctionHoursFromDuration.cpp0000644000151400015140000000521511653565523020304 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionHoursFromDuration::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_h, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionHoursFromDuration::minArgs = 1; const unsigned int FunctionHoursFromDuration::maxArgs = 1; /* * fn:hours-from-duration($arg as xs:duration?) as xs:integer? */ FunctionHoursFromDuration::FunctionHoursFromDuration(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:duration?) as xs:integer?", args, memMgr) { } Sequence FunctionHoursFromDuration::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) return Sequence(memMgr); return Sequence(((const ATDurationOrDerived*)arg.get())->getHours(context), memMgr); } XQilla-2.3.0/src/functions/FunctionLowerCase.cpp0000644000151400015140000000402611653565523016535 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif const XMLCh FunctionLowerCase::name[] = { chLatin_l, chLatin_o, chLatin_w, chLatin_e, chLatin_r, chDash, chLatin_c, chLatin_a, chLatin_s, chLatin_e, chNull }; const unsigned int FunctionLowerCase::minArgs = 1; const unsigned int FunctionLowerCase::maxArgs = 1; /* * fn:lower-case($arg as xs:string?) as xs:string */ FunctionLowerCase::FunctionLowerCase(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:string?) as xs:string", args, memMgr) { } Sequence FunctionLowerCase::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager *memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) { return Sequence(context->getItemFactory()->createString(XMLUni::fgZeroLenString, context), memMgr); } AutoDeallocate buf(UnicodeTransformer::lowerCase(arg->asString(context), memMgr), memMgr); return Sequence(context->getItemFactory()->createString(buf.get(), context), memMgr); } XQilla-2.3.0/src/functions/FunctionMonthsFromDuration.cpp0000644000151400015140000000530011653565523020447 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionMonthsFromDuration::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_h, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionMonthsFromDuration::minArgs = 1; const unsigned int FunctionMonthsFromDuration::maxArgs = 1; /* * fn:months-from-duration($arg as xs:duration?) as xs:integer? */ FunctionMonthsFromDuration::FunctionMonthsFromDuration(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:duration?) as xs:integer?", args, memMgr) { } Sequence FunctionMonthsFromDuration::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) return Sequence(memMgr); return Sequence(((const ATDurationOrDerived*)arg.get())->getMonths(context), memMgr); } XQilla-2.3.0/src/functions/FunctionHead.cpp0000644000151400015140000000335011653565523015511 00000000000000/* * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionHead::name[] = { chLatin_h, chLatin_e, chLatin_a, chLatin_d, chNull }; const unsigned int FunctionHead::minArgs = 1; const unsigned int FunctionHead::maxArgs = 1; /** * fn:head($target as item()*) as item()? */ FunctionHead::FunctionHead(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($target as item()*) as item()?", args, memMgr) { } ASTNode *FunctionHead::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context); _src.getStaticType() = _args[0]->getStaticAnalysis().getStaticType(); _src.getStaticType().setCardinality(_src.getStaticType().getMin() == 0 ? 0 : 1, _src.getStaticType().getMax() == 0 ? 0 : 1); return this; } Result FunctionHead::createResult(DynamicContext* context, int flags) const { return getParamNumber(1, context)->next(context); } XQilla-2.3.0/src/functions/FunctionSentences.cpp0000644000151400015140000000463511653565523016606 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include extern "C" { #include } #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif const XMLCh FunctionSentences::name[] = { chLatin_s, chLatin_e, chLatin_n, chLatin_t, chLatin_e, chLatin_n, chLatin_c, chLatin_e, chLatin_s, chNull }; const unsigned int FunctionSentences::minArgs = 1; const unsigned int FunctionSentences::maxArgs = 1; /** * xqilla:sentences($input as xs:string?) as xs:string* */ FunctionSentences::FunctionSentences(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQillaFunction(name, "($input as xs:string?) as xs:string*", args, memMgr) { } Sequence FunctionSentences::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); // If the value of $operand1 is the empty sequence, the empty sequence is returned. Item::Ptr inputString = getParamNumber(1,context)->next(context); if(inputString.isNull()) return Sequence(memMgr); const XMLCh *input=inputString->asString(context); AutoDeallocate buf(UnicodeTransformer::sentences(input, memMgr), memMgr); XMLCh* rb = buf.get(); XMLCh* start = NULL; Sequence resultSeq(0, memMgr); // Build sequence for (int i = 0; rb[i]; i++) { if (rb[i] != UTF8PROC_SB_MARK) continue; rb[i] = 0; if (rb[i+1] == 0 || rb[i+1] != UTF8PROC_SB_MARK) { if (start != NULL) resultSeq.addItem(context->getItemFactory()->createString(start, context)); start = rb + (i+1); } } return resultSeq; } XQilla-2.3.0/src/functions/FunctionSerializeJSON.cpp0000644000151400015140000002547011653565523017300 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include // for sprintf #if defined(WIN32) && !defined(__CYGWIN__) #define snprintf _snprintf #endif #include #include #include #include #include #include #include #include #include #include #include "../yajl/yajl_parse.h" XERCES_CPP_NAMESPACE_USE; using namespace std; const XMLCh FunctionSerializeJSON::name[] = { chLatin_s, chLatin_e, chLatin_r, chLatin_i, chLatin_a, chLatin_l, chLatin_i, chLatin_z, chLatin_e, chDash, chLatin_j, chLatin_s, chLatin_o, chLatin_n, chNull }; const unsigned int FunctionSerializeJSON::minArgs = 1; const unsigned int FunctionSerializeJSON::maxArgs = 1; /** * xqilla:serialize-json($json-xml as element()?) as xs:string? */ FunctionSerializeJSON::FunctionSerializeJSON(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQillaFunction(name, "($json-xml as element()?) as xs:string?", args, memMgr) { } const XMLCh JSON2XML_json[] = { 'j', 's', 'o', 'n', 0 }; const XMLCh JSON2XML_item[] = { 'i', 't', 'e', 'm', 0 }; const XMLCh JSON2XML_pair[] = { 'p', 'a', 'i', 'r', 0 }; const XMLCh JSON2XML_name[] = { 'n', 'a', 'm', 'e', 0 }; const XMLCh JSON2XML_type[] = { 't', 'y', 'p', 'e', 0 }; const XMLCh JSON2XML_array[] = { 'a', 'r', 'r', 'a', 'y', 0 }; const XMLCh JSON2XML_object[] = { 'o', 'b', 'j', 'e', 'c', 't', 0 }; const XMLCh JSON2XML_string[] = { 's', 't', 'r', 'i', 'n', 'g', 0 }; const XMLCh JSON2XML_boolean[] = { 'b', 'o', 'o', 'l', 'e', 'a', 'n', 0 }; const XMLCh JSON2XML_number[] = { 'n', 'u', 'm', 'b', 'e', 'r', 0 }; const XMLCh JSON2XML_null[] = { 'n', 'u', 'l', 'l', 0 }; class JSONSerializer : public EventHandler { public: JSONSerializer(const LocationInfo *loc) : loc_(loc) { } virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding) {} virtual void endDocumentEvent() {} virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri) {} virtual void endEvent() {} virtual void piEvent(const XMLCh *target, const XMLCh *value) {} virtual void commentEvent(const XMLCh *value) {} virtual void atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) {} virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname) { if(uri != 0) XQThrow3(FunctionException, X("FunctionSerializeJSON::createSequence"), X("Unknown element name in xqilla:serialize-json()"), loc_); if(XPath2Utils::equals(localname, JSON2XML_item)) { if(stack_.back().type == UNKNOWN) { stack_.back() = ARRAY; buffer_.append('['); } else if(stack_.back().type == ARRAY) { if(stack_.back().seenOne) buffer_.append(','); } else { XMLBuffer buf; buf.append(X("Invalid input to xqilla:serialize-json() - found 'item', expecting ")); typeToBuffer(stack_.back().type, buf); XQThrow3(FunctionException, X("FunctionSerializeJSON::createSequence"), buf.getRawBuffer(), loc_); } } else if(XPath2Utils::equals(localname, JSON2XML_pair)) { if(stack_.back().type == UNKNOWN) { stack_.back() = MAP; buffer_.append('{'); } else if(stack_.back().type == MAP) { if(stack_.back().seenOne) buffer_.append(','); } else { XMLBuffer buf; buf.append(X("Invalid input to xqilla:serialize-json() - found 'pair', expecting ")); typeToBuffer(stack_.back().type, buf); XQThrow3(FunctionException, X("FunctionSerializeJSON::createSequence"), buf.getRawBuffer(), loc_); } } else if(XPath2Utils::equals(localname, JSON2XML_json)) { stack_.push_back(UNKNOWN); } else { XQThrow3(FunctionException, X("FunctionSerializeJSON::createSequence"), X("Unknown element name in xqilla:serialize-json()"), loc_); } stack_.back().seenOne = true; stack_.push_back(UNKNOWN); } virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName) { if(uri != 0) XQThrow3(FunctionException, X("FunctionSerializeJSON::createSequence"), X("Unknown element name in xqilla:serialize-json()"), loc_); if(stack_.back().type == ARRAY) buffer_.append(']'); else if(stack_.back().type == MAP) buffer_.append('}'); else if(stack_.back().type == STRING) buffer_.append('"'); else if(stack_.back().type == UNKNOWN) buffer_.append(JSON2XML_null); stack_.pop_back(); } virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { if(uri != 0) { XMLBuffer buf; buf.append(X("Unknown attribute name {")); buf.append(uri); buf.append('}'); buf.append(localname); buf.append(X(" in xqilla:serialize-json()")); XQThrow3(FunctionException, X("FunctionSerializeJSON::createSequence"), buf.getRawBuffer(), loc_); } if(XPath2Utils::equals(localname, JSON2XML_name) && stack_.size() >= 2 && (++stack_.rbegin())->type == MAP) { buffer_.append('"'); buffer_.append(value); buffer_.append('"'); buffer_.append(':'); } else if(XPath2Utils::equals(localname, JSON2XML_type)) { if(XPath2Utils::equals(value, JSON2XML_object)) { stack_.back() = MAP; buffer_.append('{'); } else if(XPath2Utils::equals(value, JSON2XML_array)) { stack_.back() = ARRAY; buffer_.append('['); } else if(XPath2Utils::equals(value, JSON2XML_string)) { stack_.back() = STRING; buffer_.append('"'); } else if(XPath2Utils::equals(value, JSON2XML_boolean)) { stack_.back() = BOOLEAN; } else if(XPath2Utils::equals(value, JSON2XML_number)) { stack_.back() = NUMBER; } else if(XPath2Utils::equals(value, JSON2XML_null)) { stack_.back() = TNULL; buffer_.append(JSON2XML_null); } } else { XMLBuffer buf; buf.append(X("Unknown attribute name {")); buf.append(uri); buf.append('}'); buf.append(localname); buf.append(X(" in xqilla:serialize-json()")); XQThrow3(FunctionException, X("FunctionSerializeJSON::createSequence"), buf.getRawBuffer(), loc_); } } virtual void textEvent(const XMLCh *value) { if(stack_.back().type == UNKNOWN) { stack_.back() = STRING; buffer_.append('"'); } else if(stack_.back().type == MAP || stack_.back().type == ARRAY || stack_.back().type == TNULL) { XMLBuffer buf; buf.append(X("Invalid input to xqilla:serialize-json() - found text node, expecting ")); typeToBuffer(stack_.back().type, buf); XQThrow3(FunctionException, X("FunctionSerializeJSON::createSequence"), buf.getRawBuffer(), loc_); } stack_.back().seenOne = true; escapeString(value, XPath2Utils::uintStrlen(value)); } virtual void textEvent(const XMLCh *chars, unsigned int length) { if(stack_.back().type == UNKNOWN) { stack_.back() = STRING; buffer_.append('"'); } else if(stack_.back().type == MAP || stack_.back().type == ARRAY || stack_.back().type == TNULL) { XMLBuffer buf; buf.append(X("Invalid input to xqilla:serialize-json() - found text node, expecting ")); typeToBuffer(stack_.back().type, buf); XQThrow3(FunctionException, X("FunctionSerializeJSON::createSequence"), buf.getRawBuffer(), loc_); } stack_.back().seenOne = true; escapeString(chars, length); } bool isEmpty() const { return buffer_.isEmpty(); } const XMLCh *getResult() { return buffer_.getRawBuffer(); } private: void escapeString(const XMLCh *chars, unsigned int length) { while(length) { switch(*chars) { case 0x22: buffer_.append('\\'); buffer_.append('"'); break; case 0x5C: buffer_.append('\\'); buffer_.append('\\'); break; case 0x2F: buffer_.append('\\'); buffer_.append('/'); break; case 0x08: buffer_.append('\\'); buffer_.append('b'); break; case 0x0C: buffer_.append('\\'); buffer_.append('f'); break; case 0x0A: buffer_.append('\\'); buffer_.append('n'); break; case 0x0D: buffer_.append('\\'); buffer_.append('r'); break; case 0x09: buffer_.append('\\'); buffer_.append('t'); break; default: buffer_.append(*chars); break; } --length; ++chars; } } enum Type { UNKNOWN, MAP, ARRAY, STRING, BOOLEAN, NUMBER, TNULL }; void typeToBuffer(Type type, XMLBuffer &buf) { switch(type) { case UNKNOWN: buf.append(X("unknown")); break; case MAP: buf.append(X("map")); break; case ARRAY: buf.append(X("array")); break; case STRING: buf.append(X("string")); break; case BOOLEAN: buf.append(X("boolean")); break; case NUMBER: buf.append(X("number")); break; case TNULL: buf.append(X("null")); break; } } XMLBuffer buffer_; const LocationInfo *loc_; struct StackObject; friend struct StackObject; struct StackObject { StackObject(Type t) : type(t), seenOne(false) {} Type type; bool seenOne; }; vector stack_; }; Sequence FunctionSerializeJSON::createSequence(DynamicContext* context, int flags) const { JSONSerializer serializer(this); _args[0]->generateAndTailCall(&serializer, context, false, false); if(serializer.isEmpty()) return Sequence(context->getMemoryManager()); return Sequence(context->getItemFactory()->createString(serializer.getResult(), context)); } XQilla-2.3.0/src/functions/FunctionSecondsFromDuration.cpp0000644000151400015140000000540011653565523020576 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionSecondsFromDuration::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionSecondsFromDuration::minArgs = 1; const unsigned int FunctionSecondsFromDuration::maxArgs = 1; /* * fn:seconds-from-dayTimeDuration($arg as xs:duration?) as xs:decimal? */ FunctionSecondsFromDuration::FunctionSecondsFromDuration(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:duration?) as xs:decimal?", args, memMgr) { } Sequence FunctionSecondsFromDuration::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) return Sequence(memMgr); return Sequence(((const ATDurationOrDerived*)arg.get())->getSeconds(context), memMgr); } XQilla-2.3.0/src/functions/FunctionNodeName.cpp0000644000151400015140000000513311653565523016337 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include const XMLCh FunctionNodeName::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionNodeName::minArgs = 1; const unsigned int FunctionNodeName::maxArgs = 1; /* * fn:node-name($arg as node()?) as xs:QName? */ FunctionNodeName::FunctionNodeName(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as node()?) as xs:QName?", args, memMgr) { } ASTNode *FunctionNodeName::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context); if(_args[0]->getStaticAnalysis().getStaticType().getMin() == 1 && _args[0]->getStaticAnalysis().getStaticType().isType(StaticType::ELEMENT_TYPE | StaticType::ATTRIBUTE_TYPE | StaticType::PI_TYPE | StaticType::NAMESPACE_TYPE)) { _src.getStaticType() = StaticType::QNAME_TYPE; } else { _src.getStaticType() = StaticType(StaticType::QNAME_TYPE, 0, 1); } return this; } Sequence FunctionNodeName::createSequence(DynamicContext* context, int flags) const { Item::Ptr item = getParamNumber(1,context)->next(context); if(item.isNull()) return Sequence(context->getMemoryManager()); return Sequence(((Node*)item.get())->dmNodeName(context), context->getMemoryManager()); } XQilla-2.3.0/src/functions/FunctionResolveURI.cpp0000644000151400015140000001042511653565523016650 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include "../exceptions/InvalidLexicalSpaceException.hpp" #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionResolveURI::name[] = { chLatin_r, chLatin_e, chLatin_s, chLatin_o, chLatin_l, chLatin_v, chLatin_e, chDash, chLatin_u, chLatin_r, chLatin_i, chNull }; const unsigned int FunctionResolveURI::minArgs = 1; const unsigned int FunctionResolveURI::maxArgs = 2; /** * fn:resolve-uri($relative as xs:string?) as xs:anyURI? * fn:resolve-uri($relative as xs:string?, $base as xs:string) as xs:anyURI? **/ FunctionResolveURI::FunctionResolveURI(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($relative as xs:string?, $base as xs:string) as xs:anyURI?", args, memMgr) { } ASTNode* FunctionResolveURI::staticResolution(StaticContext *context) { if(getNumArgs() == 1) { if(!context->getBaseURI()) XQThrow(StaticErrorException, X("FunctionResolveURI::staticResolution"), X("Base uri undefined in the static context [err:FONS0005]")); XPath2MemoryManager* mm = context->getMemoryManager(); ASTNode *baseURI = new (mm) XQLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, context->getBaseURI(), AnyAtomicType::STRING, mm); baseURI->setLocationInfo(this); _args.push_back(baseURI); } resolveArguments(context); return this; } Sequence FunctionResolveURI::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager *memMgr = context->getMemoryManager(); Item::Ptr relative = getParamNumber(1, context)->next(context); if(relative.isNull()) return Sequence(memMgr); const XMLCh *relativeURI = relative->asString(context); try { if(XMLUri::isValidURI(false, relativeURI)) return Sequence(context->getItemFactory()->createAnyURI(relativeURI, context), memMgr); } catch(InvalidLexicalSpaceException &e){ XQThrow(FunctionException, X("FunctionResolveURI::createSequence"), X("Invalid argument to resolve-uri [err:FORG0002]")); } try { const XMLCh *baseURI = getParamNumber(2, context)->next(context)->asString(context); if(!XMLUri::isValidURI(true, relativeURI)) XQThrow(FunctionException, X("FunctionResolveURI::createSequence"), X("Invalid relative uri argument to resolve-uri [err:FORG0002]")); if(!XMLUri::isValidURI(false, baseURI)) XQThrow(FunctionException, X("FunctionResolveURI::createSequence"), X("Invalid base-uri argument to resolve-uri [err:FORG0002]")); try { XMLUri base(baseURI); XMLUri full(&base, relativeURI); return Sequence(context->getItemFactory()->createAnyURI(full.getUriText(), context), memMgr); } catch(InvalidLexicalSpaceException &e){ XQThrow(FunctionException, X("FunctionResolveURI::createSequence"), X("Invalid argument to resolve-uri [err:FORG0002]")); } } catch(XMLException &e) { //if can't build, assume its cause there was a relative URI given XQThrow(FunctionException, X("FunctionResolveURI::createSequence"), X("Relative URI base argument to resolve-uri [err:FORG0009]")); } //should not get here assert(0); } XQilla-2.3.0/src/functions/FunctionHoursFromDateTime.cpp0000644000151400015140000000550411653565523020214 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionHoursFromDateTime::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_h, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_T, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionHoursFromDateTime::minArgs = 1; const unsigned int FunctionHoursFromDateTime::maxArgs = 1; /* * fn:hours-from-dateTime($arg as xs:dateTime?) as xs:integer? */ FunctionHoursFromDateTime::FunctionHoursFromDateTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:dateTime?) as xs:integer?", args, memMgr) { } ASTNode *FunctionHoursFromDateTime::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context, /*checkTimezone*/true); return this; } Sequence FunctionHoursFromDateTime::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) return Sequence(memMgr); return Sequence(((const ATDateTimeOrDerived*)arg.get())->getHours(context), memMgr); } XQilla-2.3.0/src/functions/FunctionName.cpp0000644000151400015140000000453111653565523015532 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE const XMLCh FunctionName::name[] = { chLatin_n, chLatin_a, chLatin_m, chLatin_e, chNull }; const unsigned int FunctionName::minArgs = 0; const unsigned int FunctionName::maxArgs = 1; /** * fn:name() as xs:string * fn:name($arg as node()?) as xs:string **/ FunctionName::FunctionName(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as node()?) as xs:string", args, memMgr) { } ASTNode* FunctionName::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); if(_args.empty()) { XQContextItem *ci = new (mm) XQContextItem(mm); ci->setLocationInfo(this); _args.push_back(ci); } resolveArguments(context); return this; } Sequence FunctionName::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* mm = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1,context)->next(context); if(arg.isNull()) return Sequence(context->getItemFactory()->createString(XMLUni::fgZeroLenString, context), mm); return Sequence(FunctionString::string_item(((Node*)arg.get())->dmNodeName(context), context), mm); } XQilla-2.3.0/src/functions/FunctionDefaultCollation.cpp0000644000151400015140000000473311653565523020107 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionDefaultCollation::name[] = { chLatin_d, chLatin_e, chLatin_f, chLatin_a, chLatin_u, chLatin_l, chLatin_t, chDash, chLatin_c, chLatin_o, chLatin_l, chLatin_l, chLatin_a, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chNull }; const unsigned int FunctionDefaultCollation::minArgs = 0; const unsigned int FunctionDefaultCollation::maxArgs = 0; /** * fn:default-collation() as xs:string **/ FunctionDefaultCollation::FunctionDefaultCollation(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "() as xs:string", args, memMgr) { } ASTNode *FunctionDefaultCollation::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); Collation *collation = context->getDefaultCollation(this); ASTNode *newBlock = new (mm) XQLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, collation ? collation->getCollationName() : CodepointCollation::getCodepointCollationName(), AnyAtomicType::STRING, mm); newBlock->setLocationInfo(this); return newBlock->staticResolution(context); } Sequence FunctionDefaultCollation::createSequence(DynamicContext* context, int flags) const { // Always constant folded return Sequence(context->getMemoryManager()); } XQilla-2.3.0/src/functions/FunctionAdjustTimeToTimezone.cpp0000644000151400015140000001045711653565523020745 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include "../utils/DateUtils.hpp" #include #include #include #include #include const XMLCh FunctionAdjustTimeToTimezone::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_j, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_z, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionAdjustTimeToTimezone::minArgs = 1; const unsigned int FunctionAdjustTimeToTimezone::maxArgs = 2; /* * fn:adjust-time-to-timezone($arg as xs:time?) as xs:time? * fn:adjust-time-to-timezone($arg as xs:time?, $timezone as xs:dayTimeDuration?) as xs:time? */ FunctionAdjustTimeToTimezone::FunctionAdjustTimeToTimezone(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:time?, $timezone as xs:dayTimeDuration?) as xs:time?", args, memMgr) { } ASTNode *FunctionAdjustTimeToTimezone::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); if(getNumArgs() == 1) { _src.implicitTimezoneUsed(true); } calculateSRCForArguments(context); return this; } Sequence FunctionAdjustTimeToTimezone::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); //If $srcval is the empty sequence, then the result is the empty sequence. Sequence op1 = getParamNumber(1, context)->toSequence(context); if (op1.isEmpty()) { return Sequence(memMgr); } const ATTimeOrDerived* time = (const ATTimeOrDerived*)(const Item*)op1.first(); //If $timezone is not specified, then $timezone is the value of the implicit timezone in the evaluation context. ATDurationOrDerived::Ptr timezoneAsDuration = 0; if (getNumArgs() > 1) { Sequence op2 = getParamNumber(2, context)->toSequence(context); if (op2.isEmpty()) { // unset the timezone return Sequence(time->setTimezone(0, context), memMgr); } else { timezoneAsDuration = (const ATDurationOrDerived::Ptr )op2.first(); Timezone::Ptr timezone = new Timezone(timezoneAsDuration, context); if(!timezoneAsDuration->equals(timezone->asDayTimeDuration(context), context)) { XQThrow(FunctionException, X("FunctionAdjustTimeToTimeZone::createSequence"),X("Invalid timezone value [err:FODT0003]")); } } } else { timezoneAsDuration = context->getImplicitTimezone(); } return Sequence(time->addTimezone(timezoneAsDuration, context), memMgr); } XQilla-2.3.0/src/functions/FunctionDoc.cpp0000644000151400015140000000604011653565523015354 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionDoc::name[] = { chLatin_d, chLatin_o, chLatin_c, chNull }; const unsigned int FunctionDoc::minArgs = 1; const unsigned int FunctionDoc::maxArgs = 1; /** * fn:doc($uri as xs:string?) as document? **/ FunctionDoc::FunctionDoc(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($uri as xs:string?) as document-node()?", args, memMgr), queryPathTree_(0) { } ASTNode *FunctionDoc::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context); if(_args[0]->getStaticAnalysis().getStaticType().getMin() == 0) _src.getStaticType() = StaticType(StaticType::DOCUMENT_TYPE, 0, 1); else _src.getStaticType() = StaticType(StaticType::DOCUMENT_TYPE, 1, 1); _src.setProperties(StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::PEER | StaticAnalysis::SUBTREE | StaticAnalysis::ONENODE); _src.availableDocumentsUsed(true); return this; } Sequence FunctionDoc::createSequence(DynamicContext* context, int flags) const { Item::Ptr uriArg = getParamNumber(1,context)->next(context); if(uriArg.isNull()) { return Sequence(context->getMemoryManager()); } const XMLCh *uri = uriArg->asString(context); // on Windows, we can have URIs using \ instead of /; let's normalize them if(uri != 0) { unsigned int len = XPath2Utils::uintStrlen(uri); AutoDeleteArray newURI(new XMLCh[len + 1]); const XMLCh *src = uri; XMLCh *dst = newURI; while(*src != 0) { if(*src == '\\') *dst = '/'; else *dst = *src; ++src; ++dst; } *dst = 0; uri = context->getMemoryManager()->getPooledString(newURI); } if(!XPath2Utils::isValidURI(uri, context->getMemoryManager())) XQThrow(FunctionException, X("FunctionDoc::createSequence"), X("Invalid argument to fn:doc function [err:FODC0005]")); return context->resolveDocument(uri, this, context->getProjection() ? queryPathTree_ : 0); } XQilla-2.3.0/src/functions/FunctionPower.cpp0000644000151400015140000000312511653565523015744 00000000000000/* * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include XERCES_CPP_NAMESPACE_USE const XMLCh FunctionPower::name[] = { chLatin_p, chLatin_o, chLatin_w, chLatin_e, chLatin_r, chNull }; const unsigned int FunctionPower::minArgs = 2; const unsigned int FunctionPower::maxArgs = 2; /* * math:power($arg as numeric?, $arg as numeric?) as numeric? */ FunctionPower::FunctionPower(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : EXSLTMathFunction(name, "($arg1 as xs:anyAtomicType?, $arg2 as xs:anyAtomicType?) as xs:anyAtomicType?", args, memMgr) { } Result FunctionPower::createResult(DynamicContext* context, int flags) const { Numeric::Ptr base = getNumericParam(1, context); if(base.isNull()) return 0; Numeric::Ptr pow = getNumericParam(2, context); if(pow.isNull()) return 0; return (Item::Ptr)base->power(pow, context); } XQilla-2.3.0/src/functions/FunctionPrefixFromQName.cpp0000644000151400015140000000604211653565523017654 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionPrefixFromQName::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_p, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_x, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_Q, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_N, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionPrefixFromQName::minArgs = 1; const unsigned int FunctionPrefixFromQName::maxArgs = 1; /** * fn:prefix-from-QName($arg as xs:QName?) as xs:NCNAME? **/ FunctionPrefixFromQName::FunctionPrefixFromQName(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:QName?) as xs:NCName?", args, memMgr) { } Sequence FunctionPrefixFromQName::createSequence(DynamicContext* context, int flags) const { Sequence arg=getParamNumber(1,context)->toSequence(context); if(arg.isEmpty()) return Sequence(context->getMemoryManager()); const XMLCh* prefix=((const ATQNameOrDerived*)(const Item*)arg.first())->getPrefix(); if(prefix && *prefix) return Sequence(context->getItemFactory()->createStringOrDerived(XERCES_CPP_NAMESPACE_QUALIFIER SchemaSymbols::fgURI_SCHEMAFORSCHEMA, XERCES_CPP_NAMESPACE_QUALIFIER SchemaSymbols::fgDT_NCNAME, prefix, context), context->getMemoryManager()); return Sequence(context->getMemoryManager()); } XQilla-2.3.0/src/functions/FunctionFloor.cpp0000644000151400015140000000374011653565523015734 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include const XMLCh FunctionFloor::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_l, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionFloor::minArgs = 1; const unsigned int FunctionFloor::maxArgs = 1; /* * fn:floor($arg as numeric?) as numeric? */ FunctionFloor::FunctionFloor(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : NumericFunction(name, "($arg as xs:anyAtomicType?) as xs:anyAtomicType?", args, memMgr) { } Sequence FunctionFloor::createSequence(DynamicContext* context, int flags) const { Numeric::Ptr numericArg = getNumericParam(1, context); //If the argument is the empty sequence, the empty sequence is returned. if(numericArg.isNull()) { return Sequence(context->getMemoryManager()); } if(numericArg->isNaN() || numericArg->isInfinite()) return Sequence(numericArg, context->getMemoryManager()); return Sequence(numericArg->floor(context), context->getMemoryManager()); } XQilla-2.3.0/src/functions/XQUserFunction.cpp0000644000151400015140000007106611636377670016055 00000000000000/* * Copyright (c) 2001-2008 * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004-2008 * Oracle. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * $Id$ */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "../lexer/XQLexer.hpp" #include #include #include #include XERCES_CPP_NAMESPACE_USE; using namespace std; /* http://www.w3.org/2005/xquery-local-functions */ const XMLCh XQUserFunction::XMLChXQueryLocalFunctionsURI[] = { chLatin_h, chLatin_t, chLatin_t, chLatin_p, chColon, chForwardSlash, chForwardSlash, chLatin_w, chLatin_w, chLatin_w, chPeriod, chLatin_w, chDigit_3, chPeriod, chLatin_o, chLatin_r, chLatin_g, chForwardSlash, chDigit_2, chDigit_0, chDigit_0, chDigit_5, chForwardSlash, chLatin_x, chLatin_q, chLatin_u, chLatin_e, chLatin_r, chLatin_y, chDash, chLatin_l, chLatin_o, chLatin_c, chLatin_a, chLatin_l, chDash, chLatin_f, chLatin_u, chLatin_n, chLatin_c, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chLatin_s, chNull }; XQUserFunction::XQUserFunction(const XMLCh *qname, FunctionSignature *signature, ASTNode *body, bool isGlobal, XPath2MemoryManager *mm) : FuncFactory(signature->argSpecs == 0 ? 0 : signature->argSpecs->size(), mm), body_(body), exFunc_(NULL), qname_(qname), pattern_(0), templateInstance_(0), modes_(0), signature_(signature), isGlobal_(isGlobal), isTemplate_(false), memMgr_(mm), src_(mm), staticTyped_(BEFORE), recursive_(false), delayed_(false), moduleDocCache_(NULL) { } XQUserFunction::XQUserFunction(const XMLCh *qname, VectorOfASTNodes *pattern, FunctionSignature *signature, ASTNode *body, XPath2MemoryManager *mm) : FuncFactory(signature->argSpecs == 0 ? 0 : signature->argSpecs->size(), mm), body_(body), exFunc_(NULL), qname_(qname), pattern_(pattern), templateInstance_(0), modes_(0), signature_(signature), isGlobal_(true), isTemplate_(true), memMgr_(mm), src_(mm), staticTyped_(BEFORE), recursive_(false), delayed_(false), moduleDocCache_(NULL) { } XQUserFunction::XQUserFunction(const XQUserFunction *o, XPath2MemoryManager *mm) : FuncFactory(o->uri_, o->name_, o->minArgs_, o->maxArgs_, mm), body_(o->body_), exFunc_(o->exFunc_), qname_(o->qname_), pattern_(0), templateInstance_(o->templateInstance_), modes_(0), signature_(new (mm) FunctionSignature(o->signature_, mm)), isGlobal_(o->isGlobal_), isTemplate_(o->isTemplate_), memMgr_(mm), src_(mm), staticTyped_(o->staticTyped_), recursive_(o->recursive_), delayed_(o->delayed_), moduleDocCache_(o->moduleDocCache_) { if(o->pattern_) { pattern_ = new (mm) VectorOfASTNodes(XQillaAllocator(mm)); *pattern_ = *o->pattern_; } if(o->modes_) { modes_ = new (mm) ModeList(XQillaAllocator(mm)); XQUserFunction::ModeList::const_iterator modeIt = o->getModeList()->begin(); for(; modeIt != o->getModeList()->end(); ++modeIt) { modes_->push_back(new (mm) Mode(*modeIt)); } } setLocationInfo(o); src_.copy(o->src_); } void XQUserFunction::releaseImpl() { if(pattern_) { pattern_->~VectorOfASTNodes(); memMgr_->deallocate(pattern_); } if(modes_) { XQUserFunction::ModeList::iterator modeIt = modes_->begin(); for(; modeIt != modes_->end(); ++modeIt) { memMgr_->deallocate(*modeIt); } #if defined(_MSC_VER) && (_MSC_VER < 1300) modes_->~vector >(); #else modes_->~ModeList(); #endif memMgr_->deallocate(modes_); } signature_->release(); src_.clear(); memMgr_->deallocate(this); } ASTNode* XQUserFunction::createInstance(const VectorOfASTNodes &args, XPath2MemoryManager *mm) const { return new (mm) XQUserFunctionInstance(this, args, mm); } void XQUserFunction::Mode::staticResolution(StaticContext* context) { if(qname_ != 0) { uri_ = context->getUriBoundToPrefix(XPath2NSUtils::getPrefix(qname_, context->getMemoryManager()), this); name_ = XPath2NSUtils::getLocalName(qname_); } } bool XQUserFunction::Mode::equals(const Mode *o) const { if(o == 0) return state_ == DEFAULT; if(state_ == ALL || o->state_ == CURRENT) return true; return state_ == o->state_ && XPath2Utils::equals(uri_, o->uri_) && XPath2Utils::equals(name_, o->name_); } void XQUserFunction::resolveName(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); if(qname_ != 0 && name_ == 0) { const XMLCh *prefix = XPath2NSUtils::getPrefix(qname_, mm); name_ = XPath2NSUtils::getLocalName(qname_); if(prefix == 0 || *prefix == 0) { uri_ = context->getDefaultFuncNS(); } else { uri_ = context->getUriBoundToPrefix(prefix, this); } } if(name_ != 0) { setURINameHash(uri_, name_); } } void XQUserFunction::staticResolutionStage1(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); resolveName(context); if(name_ != 0 && !isTemplate_ && !delayed_) { if(XPath2Utils::equals(uri_, XMLUni::fgXMLURIName) || XPath2Utils::equals(uri_, SchemaSymbols::fgURI_SCHEMAFORSCHEMA) || XPath2Utils::equals(uri_, SchemaSymbols::fgURI_XSI) || XPath2Utils::equals(uri_, XQFunction::XMLChFunctionURI) || XPath2Utils::equals(uri_, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) { XQThrow(FunctionException, X("XQUserFunction::staticResolutionStage1"), X("A user defined function must not be in the namespaces xml, xsd, xsi, fn or xdt [err:XQST0045]")); } else if(uri_ == 0 || *uri_ == 0) XQThrow(FunctionException, X("XQUserFunction::staticResolutionStage1"), X("A user defined function must be defined in a namespace [err:XQST0060]")); } // Check for the implementation of an external function if(body_ == NULL) { exFunc_ = context->lookUpExternalFunction(uri_, name_, minArgs_); if(exFunc_ == NULL) { XMLBuffer buf; buf.set(X("External function '{")); buf.append(uri_); buf.append(X("}")); buf.append(name_); buf.append(X("' with ")); XMLCh szNumBuff[20]; XMLString::binToText((unsigned int)minArgs_, szNumBuff, 19, 10); buf.append(szNumBuff); buf.append(X(" argument(s) has not been bound to an implementation")); XQThrow(FunctionException, X("XQUserFunction::staticResolutionStage1"), buf.getRawBuffer()); } } signature_->staticResolution(context); // Resolve the mode names if(modes_) { if(modes_->empty()) { XQThrow(StaticErrorException, X("XQUserFunction::staticResolution"), X("At least one mode must be specified for a template [err:XTSE0550]")); } ModeList::iterator it, it2; for(it = modes_->begin(); it != modes_->end(); ++it) { (*it)->staticResolution(context); // Check for "#all" with other values if((*it)->getState() == Mode::ALL && modes_->size() != 1) { XQThrow3(StaticErrorException, X("XQUserFunction::staticResolution"), X("The mode #all must not be specified in addition to other modes [err:XTSE0550]"), *it); } // Check for duplicate modes it2 = it; for(++it2; it2 != modes_->end(); ++it2) { if((*it)->getState() == (*it2)->getState() && XPath2Utils::equals((*it)->getName(), (*it2)->getName()) && XPath2Utils::equals((*it)->getURI(), (*it2)->getURI())) { XMLBuffer buf; buf.append(X("The mode {")); buf.append((*it)->getURI()); buf.append(X("}")); buf.append((*it)->getName()); buf.append(X(" has been specified more than once [err:XTSE0550]")); XQThrow3(StaticErrorException, X("XQUserFunction::staticResolution"), buf.getRawBuffer(), *it2); } } } } // Set up a default StaticType and StaticAnalysis if(signature_->returnType) { if(body_ != NULL) { body_ = signature_->returnType->convertFunctionArg(body_, context, /*numericfunction*/false, signature_->returnType); } bool isPrimitive; signature_->returnType->getStaticType(src_.getStaticType(), context, isPrimitive, signature_->returnType); } else { // Default type is item()* src_.getStaticType() = StaticType(StaticType::ITEM_TYPE, 0, StaticType::UNLIMITED); } if(signature_->updating == FunctionSignature::OP_TRUE) { src_.updating(true); } // TBD What about the other parts of the StaticAnalysis - jpcs src_.forceNoFolding(true); if(pattern_ != 0 && !pattern_->empty()) { // Set the pattern's initial static type to NODE_TYPE VectorOfASTNodes::iterator patIt = pattern_->begin(); for(; patIt != pattern_->end(); ++patIt) { const_cast((*patIt)->getStaticAnalysis()).getStaticType() = StaticType(StaticType::NODE_TYPE, 0, StaticType::UNLIMITED); } } if(isTemplate_) { // Build an instance of the template for us to call VectorOfASTNodes newArgs = VectorOfASTNodes(XQillaAllocator(mm)); if(signature_->argSpecs != 0) { ArgumentSpecs::const_iterator argIt; for(argIt = signature_->argSpecs->begin(); argIt != signature_->argSpecs->end(); ++argIt) { XQVariable *argVar = new (mm) XQVariable((*argIt)->getURI(), (*argIt)->getName(), mm); argVar->setLocationInfo(*argIt); newArgs.push_back(argVar); } } templateInstance_ = createInstance(newArgs, mm); templateInstance_->setLocationInfo(this); } } void XQUserFunction::staticResolutionStage2(StaticContext *context) { // Prevent static typing being run on this function by a // loop of delayed functions AutoReset reset(staticTyped_); staticTyped_ = AFTER; if(pattern_ != 0 && !pattern_->empty()) { VectorOfASTNodes::iterator patIt = pattern_->begin(); for(; patIt != pattern_->end(); ++patIt) { (*patIt) = (*patIt)->staticResolution(context); } } if(templateInstance_) { templateInstance_ = templateInstance_->staticResolution(context); } if(body_ != NULL) { body_ = body_->staticResolution(context); } } class UDFStaticTyper : private ASTVisitor { public: UDFStaticTyper() : context_(0), styper_(0) {} void run(ASTNode *item, StaticContext *context, StaticTyper *styper) { context_ = context; styper_ = styper; optimize(item); } private: virtual ASTNode *optimizeUserFunction(XQUserFunctionInstance *item) { XQQuery *module = context_->getModule()-> findModuleForFunction(item->getFunctionURI(), item->getFunctionName(), item->getArguments().size()); if(module == context_->getModule()) { // See if we can work out a better return type for the user defined function. // This call will just return if it's already been static typed const_cast(item->getFunctionDefinition())->staticTypingOnce(context_, styper_); } return ASTVisitor::optimizeUserFunction(item); } virtual ASTNode *optimizeApplyTemplates(XQApplyTemplates *item) { // The XQApplyTemplates could call any template with a pattern - // so try to static type all of them before us const UserFunctions &templates = context_->getTemplateRules(); UserFunctions::const_iterator inIt; for(inIt = templates.begin(); inIt != templates.end(); ++inIt) { if((*inIt)->getPattern() != 0) (*inIt)->staticTypingOnce(context_, styper_); } return ASTVisitor::optimizeApplyTemplates(item); } virtual ASTNode *optimizeCallTemplate(XQCallTemplate *item) { // The XQCallTemplate could call any template with a name - // so try to static type all of them before us const UserFunctions &templates = context_->getTemplateRules(); UserFunctions::const_iterator inIt; for(inIt = templates.begin(); inIt != templates.end(); ++inIt) { if((*inIt)->getName() != 0) (*inIt)->staticTypingOnce(context_, styper_); } return ASTVisitor::optimizeCallTemplate(item); } virtual ASTNode *optimizeInlineFunction(XQInlineFunction *item) { return item; } virtual ASTNode *optimizeFunctionRef(XQFunctionRef *item) { return item; } StaticContext *context_; StaticTyper *styper_; }; void XQUserFunction::staticTypeFunctionCalls(ASTNode *item, StaticContext *context, StaticTyper *styper) { // TBD DB XML version of UDFStaticTyper? - jpcs UDFStaticTyper().run(item, context, styper); } void XQUserFunction::staticTypingOnce(StaticContext *context, StaticTyper *styper) { // Avoid inifinite recursion for recursive functions // TBD Need to declare everything as being used - jpcs if(staticTyped_ != BEFORE) { if(staticTyped_ == DURING) recursive_ = true; XQGlobalVariable *global = 0; StaticTyper::PrologItem *breadcrumb = styper->getTrail(); for(; breadcrumb; breadcrumb = breadcrumb->prev) { if(breadcrumb->global) global = breadcrumb->global; if(breadcrumb->function == this) break; } if(global && breadcrumb) { XMLBuffer buf; buf.append(X("The initializing expression for variable {")); buf.append(global->getVariableURI()); buf.append(X("}")); buf.append(global->getVariableLocalName()); buf.append(X(" depends on itself [err:XQST0054]")); XQThrow3(StaticErrorException, X("XQUserFunction::staticTypingOnce"), buf.getRawBuffer(), global); } return; } staticTyped_ = DURING; StaticTyper::PrologItem breadcrumb(this, styper->getTrail()); AutoReset autorReset2(styper->getTrail()); styper->getTrail() = &breadcrumb;; GlobalVariables globalsUsed(XQillaAllocator(context->getMemoryManager())); { AutoReset autoReset(styper->getGlobalsUsed()); styper->getGlobalsUsed() = &globalsUsed; staticTyping(context, styper); } if(!globalsUsed.empty()) { // Static type the global variables we depend on GlobalVariables::iterator it = globalsUsed.begin(); for(; it != globalsUsed.end(); ++it) { (*it)->staticTypingOnce(context, styper); } // Re-static type this function definition staticTyping(context, styper); } staticTyped_ = AFTER; } void XQUserFunction::resetStaticTypingOnce() { staticTyped_ = BEFORE; } void XQUserFunction::staticTyping(StaticContext *context, StaticTyper *styper) { // Nothing more to do for external functions if(body_ == NULL) return; if(signature_->updating == FunctionSignature::OP_TRUE && signature_->returnType != NULL) { XQThrow(StaticErrorException, X("XQUserFunction::staticTyping"), X("It is a static error for an updating function to declare a return type [err:XUST0028]")); } // Find user defined functions and templates that are referenced in our body, // and try to call staticTyping() on them before us. if(context) staticTypeFunctionCalls(body_, context, styper); bool ciTypeSet = false; StaticType ciType = StaticType(); if(pattern_ != NULL) { VectorOfASTNodes::iterator patIt = pattern_->begin(); for(; patIt != pattern_->end(); ++patIt) { (*patIt) = (*patIt)->staticTyping(context, styper); if(!ciTypeSet) { ciTypeSet = true; ciType = (*patIt)->getStaticAnalysis().getStaticType(); } else ciType |= (*patIt)->getStaticAnalysis().getStaticType(); } if(ciTypeSet) { ciType.setCardinality(1, 1); } } if(isTemplate_ && name_ != 0) { // Named template ciTypeSet = true; ciType = StaticType::ITEM_TYPE; } // define the new variables in a new scope and assign them the proper values if(context) { VariableTypeStore *varStore = context->getVariableTypeStore(); if(isGlobal_) varStore->addLocalScope(); else varStore->addLogicalBlockScope(); // Declare the parameters if(signature_->argSpecs) { ArgumentSpecs::iterator it; for(it = signature_->argSpecs->begin(); it != signature_->argSpecs->end (); ++it) { varStore->declareVar((*it)->getURI(), (*it)->getName(), (*it)->getStaticAnalysis()); } } } { // Declare the context item AutoContextItemTypeReset contextTypeReset(context, ciType); body_ = body_->staticTyping(context, styper); } if(context) context->getVariableTypeStore()->removeScope(); if(signature_->updating == FunctionSignature::OP_TRUE) { if(!body_->getStaticAnalysis().isUpdating() && !body_->getStaticAnalysis().isPossiblyUpdating()) XQThrow(StaticErrorException, X("XQUserFunction::staticTyping"), X("It is a static error for the body expression of a user defined updating function " "not to be an updating expression [err:XUST0002]")); } else { if(body_->getStaticAnalysis().isUpdating()) { if(isTemplate_) { XQThrow(StaticErrorException, X("XQUserFunction::staticTyping"), X("It is a static error for the body expression of a template " "to be an updating expression [err:XUST0001]")); } else { XQThrow(StaticErrorException, X("XQUserFunction::staticTyping"), X("It is a static error for the body expression of a user defined function " "to be an updating expression [err:XUST0001]")); } } } // Remove the parameter variables from the stored StaticAnalysis src_.clear(); src_.copy(body_->getStaticAnalysis()); if(signature_->argSpecs) { for(ArgumentSpecs::iterator it = signature_->argSpecs->begin(); it != signature_->argSpecs->end (); ++it) { if(!src_.removeVariable((*it)->getURI(), (*it)->getName())) { // The parameter isn't used, so set it to null, so that we don't bother to evaluate it (*it)->setNotUsed(); } } } // Run staticTyping on the template instances if(templateInstance_ != 0 && context) { StaticAnalysis templateVarSrc(context->getMemoryManager()); templateVarSrc.getStaticType() = StaticType::ITEM_TYPE; VariableTypeStore *varStore = context->getVariableTypeStore(); varStore->addLogicalBlockScope(); if(signature_->argSpecs != 0) { ArgumentSpecs::const_iterator argIt; for(argIt = signature_->argSpecs->begin(); argIt != signature_->argSpecs->end(); ++argIt) { varStore->declareVar((*argIt)->getURI(), (*argIt)->getName(), templateVarSrc); } } // Turn off warnings here, since they are largely irrelevent to the user AutoMessageListenerReset reset(context); templateInstance_ = templateInstance_->staticTyping(context, styper); varStore->removeScope(); } } //////////////////////////////////////////////////////////////////////////////////////////////////// XQUserFunctionInstance::XQUserFunctionInstance(const XQUserFunction* funcDef, const VectorOfASTNodes& args, XPath2MemoryManager* expr) : XQFunction(funcDef->getName(), 0, args, expr), addReturnCheck_(funcDef->body_ == NULL && funcDef->signature_->returnType != NULL), funcDef_(funcDef) { _type = ASTNode::USER_FUNCTION; uri_ = funcDef->getURI(); signature_ = funcDef->getSignature(); } XQUserFunctionInstance::XQUserFunctionInstance(const XQUserFunction *funcDef, const VectorOfASTNodes& args, bool addReturnCheck, XPath2MemoryManager *mm) : XQFunction(funcDef->getName(), 0, args, mm), addReturnCheck_(addReturnCheck), funcDef_(funcDef) { _type = ASTNode::USER_FUNCTION; uri_ = funcDef->getURI(); signature_ = funcDef->getSignature(); } Result XQUserFunctionInstance::getArgument(size_t index, DynamicContext *context) const { if(index >= funcDef_->getMaxArgs()) return 0; return _args[index]->createResult(context); } ASTNode* XQUserFunctionInstance::staticResolution(StaticContext* context) { XPath2MemoryManager *mm = context->getMemoryManager(); // We don't trust external functions, so check their return type if(addReturnCheck_) { addReturnCheck_ = false; XQTreatAs *treatAs = new (mm) XQTreatAs(this, funcDef_->signature_->returnType, mm); treatAs->setLocationInfo(funcDef_->signature_->returnType); return treatAs->staticResolution(context); } if(funcDef_->signature_->argSpecs != 0) { VectorOfASTNodes::iterator argIt = _args.begin(); for(ArgumentSpecs::iterator defIt = funcDef_->signature_->argSpecs->begin(); defIt != funcDef_->signature_->argSpecs->end() && argIt != _args.end(); ++defIt, ++argIt) { // The spec doesn't allow us to skip static errors, so we have to check even if // the parameter isn't used *argIt = (*defIt)->getType()->convertFunctionArg(*argIt, context, /*numericfunction*/false, *argIt); *argIt = (*argIt)->staticResolution(context); } } return this; } ASTNode *XQUserFunctionInstance::staticTypingImpl(StaticContext *context) { if(funcDef_->body_ != NULL) { _src.clear(); _src.copy(funcDef_->src_); } else { // Force the type check to happen, by declaring our type as item()* _src.clear(); _src.getStaticType() = StaticType(StaticType::ITEM_TYPE, 0, StaticType::UNLIMITED); _src.forceNoFolding(true); } VectorOfASTNodes::iterator argIt; for(argIt = _args.begin(); argIt != _args.end(); ++argIt) { // The spec doesn't allow us to skip static errors, so we have to check even if // the parameter isn't used if((*argIt)->getStaticAnalysis().isUpdating()) { if(funcDef_->isTemplate()) { XQThrow(StaticErrorException, X("XQUserFunctionInstance::staticTyping"), X("It is a static error for the argument expression of a call template expression " "to be an updating expression [err:XUST0001]")); } else { XQThrow(StaticErrorException, X("XQUserFunctionInstance::staticTyping"), X("It is a static error for the argument expression of a function call expression " "to be an updating expression [err:XUST0001]")); } } // TBD Check all static errors in staticResolution, so we can skip static typing - jpcs // if((*defIt)->_qname) _src.add((*argIt)->getStaticAnalysis()); } return this; } void XQUserFunctionInstance::evaluateArguments(VarStoreImpl &scope, DynamicContext *context) const { if(funcDef_->getSignature()->argSpecs != 0) { // the variables should be evaluated in the calling context // (before the VariableStore::addLocalScope call: after this call, the variables that can be seen are only the local ones) VectorOfASTNodes::const_iterator argIt = _args.begin(); for(ArgumentSpecs::const_iterator defIt = funcDef_->signature_->argSpecs->begin(); defIt != funcDef_->signature_->argSpecs->end() && argIt != _args.end(); ++defIt, ++argIt) { if((*defIt)->isUsed()) { scope.setVar((*defIt)->getURI(), (*defIt)->getName(), (*argIt)->createResult(context)); } else { // Skip evaluation of the parameter, since it isn't used, and debugging isn't enabled } } } } EventGenerator::Ptr XQUserFunctionInstance::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { if(funcDef_->getFunctionBody() == NULL) { return ASTNodeImpl::generateEvents(events, context, preserveNS, preserveType); } context->testInterrupt(); VarStoreImpl scope(context->getMemoryManager(), funcDef_->isGlobal() ? context->getGlobalVariableStore() : context->getVariableStore()); evaluateArguments(scope, context); AutoDocumentCacheReset reset(context); if(funcDef_->getModuleDocumentCache()) context->setDocumentCache(funcDef_->getModuleDocumentCache()); AutoVariableStoreReset reset2(context, &scope); AutoRegexGroupStoreReset reset3(context); if(!funcDef_->isTemplate()) context->setRegexGroupStore(0); return new ClosureEventGenerator(funcDef_->getFunctionBody(), context, preserveNS, preserveType); } PendingUpdateList XQUserFunctionInstance::createUpdateList(DynamicContext *context) const { context->testInterrupt(); if(funcDef_->getFunctionBody() == NULL) { return funcDef_->getExternalFunction()->executeUpdate(this, context); } VarStoreImpl scope(context->getMemoryManager(), funcDef_->isGlobal() ? context->getGlobalVariableStore() : context->getVariableStore()); evaluateArguments(scope, context); AutoDocumentCacheReset reset(context); if(funcDef_->getModuleDocumentCache()) context->setDocumentCache(funcDef_->getModuleDocumentCache()); AutoVariableStoreReset reset2(context, &scope); AutoRegexGroupStoreReset reset3(context, 0); if(!funcDef_->isTemplate()) context->setRegexGroupStore(0); PendingUpdateList result = funcDef_->getFunctionBody()->createUpdateList(context); return result; } Result XQUserFunctionInstance::createResult(DynamicContext* context, int flags) const { context->testInterrupt(); if(funcDef_->body_ != NULL) { VarStoreImpl scope(context->getMemoryManager(), funcDef_->isGlobal() ? context->getGlobalVariableStore() : context->getVariableStore()); evaluateArguments(scope, context); AutoRegexGroupStoreReset reset3(context); if(!funcDef_->isTemplate()) context->setRegexGroupStore(0); AutoDocumentCacheReset reset(context); DocumentCache* docCache = funcDef_->getModuleDocumentCache(); if(docCache) context->setDocumentCache(docCache); AutoVariableStoreReset vsReset(context, &scope); return ClosureResult::create(funcDef_->getFunctionBody(), context); } else { return funcDef_->getExternalFunction()->execute(this, context); } } //////////////////////////////////////////////////////////////////////////////////////////////////// DelayedFuncFactory::DelayedFuncFactory(const XMLCh *uri, const XMLCh *name, size_t numArgs, const XMLCh *body, int line, int column, XQQuery *query) : FuncFactory(uri, name, numArgs, numArgs, query->getStaticContext()->getMemoryManager()), body_(body), body8_(0), line_(line), column_(column), query_(query), function_(0) { } DelayedFuncFactory::DelayedFuncFactory(const XMLCh *uri, const XMLCh *name, size_t numArgs, const char *body, int line, int column, XQQuery *query) : FuncFactory(uri, name, numArgs, numArgs, query->getStaticContext()->getMemoryManager()), body_(0), body8_(body), line_(line), column_(column), query_(query), function_(0) { } ASTNode *DelayedFuncFactory::createInstance(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) const { if(function_ == 0) { DynamicContext *context = (DynamicContext*)query_->getStaticContext(); if(body_ == 0) { const_cast(body_) = context->getMemoryManager()->getPooledString(body8_); } XQLexer lexer(memMgr, _LANG_FUNCDECL_, query_->getFile(), line_, column_, body_); XQParserArgs args(&lexer, query_); XQParser::yyparse(&args); const_cast(function_) = args._function; function_->setDelayed(true); query_->addFunction(function_); function_->staticResolutionStage1(context); AutoDelete optimizer(XQilla::createOptimizer(context, XQilla::NO_OPTIMIZATION)); optimizer->startOptimize(function_); } return function_->createInstance(args, memMgr); } XQilla-2.3.0/src/functions/FunctionRegexGroup.cpp0000644000151400015140000000520211653565523016735 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; using namespace std; const XMLCh FunctionRegexGroup::name[] = { chLatin_r, chLatin_e, chLatin_g, chLatin_e, chLatin_x, chDash, chLatin_g, chLatin_r, chLatin_o, chLatin_u, chLatin_p, chNull }; const unsigned int FunctionRegexGroup::minArgs = 1; const unsigned int FunctionRegexGroup::maxArgs = 1; /** * fn:regex-group($group-number as xs:integer) as xs:string **/ FunctionRegexGroup::FunctionRegexGroup(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($group-number as xs:integer) as xs:string", args, memMgr) { } ASTNode *FunctionRegexGroup::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); _src.forceNoFolding(true); calculateSRCForArguments(context); return this; } Sequence FunctionRegexGroup::createSequence(DynamicContext *context, int flags) const { XPath2MemoryManager *mm = context->getMemoryManager(); const RegexGroupStore *store = context->getRegexGroupStore(); if(store == 0) return Sequence(context->getItemFactory()->createString(XMLUni::fgZeroLenString, context), mm); Numeric::Ptr indexItem = getParamNumber(1, context)->next(context); if(indexItem->isNegative()) return Sequence(context->getItemFactory()->createString(XMLUni::fgZeroLenString, context), mm); const XMLCh *indexStr = indexItem->asString(context); int index = 0; while(*indexStr != 0) { if(*indexStr >= '0' && *indexStr <= '9') { index *= 10; index += *indexStr - '0'; } ++indexStr; } const XMLCh *result = store->getGroup(index); if(result == 0) result = XMLUni::fgZeroLenString; return Sequence(context->getItemFactory()->createString(result, context), mm); } XQilla-2.3.0/src/functions/FunctionRound.cpp0000644000151400015140000000374411653565523015746 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include const XMLCh FunctionRound::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionRound::minArgs = 1; const unsigned int FunctionRound::maxArgs = 1; /* * fn:round($arg as numeric?) as numeric? */ FunctionRound::FunctionRound(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : NumericFunction(name, "($arg as xs:anyAtomicType?) as xs:anyAtomicType?", args, memMgr) { } Sequence FunctionRound::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Numeric::Ptr numericArg = getNumericParam(1, context); //If the argument is the empty sequence, the empty sequence is returned. if(numericArg.isNull()) { return Sequence(memMgr); } if(numericArg->isNaN() || numericArg->isInfinite()) return Sequence(numericArg, memMgr); return Sequence(numericArg->round(context), memMgr); } XQilla-2.3.0/src/functions/FunctionBaseURI.cpp0000644000151400015140000000412111653565523016077 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionBaseURI::name[] = { chLatin_b, chLatin_a, chLatin_s, chLatin_e, chDash, chLatin_u, chLatin_r, chLatin_i, chNull }; const unsigned int FunctionBaseURI::minArgs = 0; const unsigned int FunctionBaseURI::maxArgs = 1; /** * fn:base-uri() as xs:anyURI? * fn:base-uri($arg as node()?) as xs:anyURI? **/ FunctionBaseURI::FunctionBaseURI(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as node()?) as xs:anyURI?", args, memMgr) { } ASTNode* FunctionBaseURI::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); if(_args.empty()) { XQContextItem *ci = new (mm) XQContextItem(mm); ci->setLocationInfo(this); _args.push_back(ci); } resolveArguments(context); return this; } Sequence FunctionBaseURI::createSequence(DynamicContext* context, int flags) const { Node::Ptr node = (Node*)getParamNumber(1, context)->next(context).get(); if(node.isNull()) return Sequence(context->getMemoryManager()); return node->dmBaseURI(context); } XQilla-2.3.0/src/functions/FuncFactory.cpp0000644000151400015140000000265211653565523015371 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include XERCES_CPP_NAMESPACE_USE; FuncFactory::FuncFactory(const XMLCh *uri, const XMLCh *name, size_t minArgs, size_t maxArgs, MemoryManager *mm) : uri_(uri), name_(name), minArgs_(minArgs), maxArgs_(maxArgs), uriname_(1023, mm) { setURINameHash(uri, name); } FuncFactory::FuncFactory(size_t numArgs, MemoryManager *mm) : uri_(0), name_(0), minArgs_(numArgs), maxArgs_(numArgs), uriname_(1023, mm) { } void FuncFactory::setURINameHash(const XMLCh *uri, const XMLCh *name) { uri_ = uri; name_ = name; uriname_.set(name); uriname_.append(':'); uriname_.append(uri); } XQilla-2.3.0/src/functions/FunctionLocalNameFromQName.cpp0000644000151400015140000000564611653565523020263 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionLocalNameFromQName::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_l, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_l, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_Q, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_N, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionLocalNameFromQName::minArgs = 1; const unsigned int FunctionLocalNameFromQName::maxArgs = 1; /** * fn:local-name-from-QName($arg as xs:QName?) as xs:NCNAME? **/ FunctionLocalNameFromQName::FunctionLocalNameFromQName(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:QName?) as xs:NCName?", args, memMgr) { } Sequence FunctionLocalNameFromQName::createSequence(DynamicContext* context, int flags) const { Sequence arg=getParamNumber(1,context)->toSequence(context); if(arg.isEmpty()) return Sequence(context->getMemoryManager()); return Sequence(context->getItemFactory()->createStringOrDerived(XERCES_CPP_NAMESPACE_QUALIFIER SchemaSymbols::fgURI_SCHEMAFORSCHEMA, XERCES_CPP_NAMESPACE_QUALIFIER SchemaSymbols::fgDT_NCNAME, ((const ATQNameOrDerived*)arg.first().get())->getName(), context), context->getMemoryManager()); } XQilla-2.3.0/src/functions/FunctionNamespaceUri.cpp0000644000151400015140000000514011653565523017223 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionNamespaceUri::name[] = { chLatin_n, chLatin_a, chLatin_m, chLatin_e, chLatin_s, chLatin_p, chLatin_a, chLatin_c, chLatin_e, chDash, chLatin_u, chLatin_r, chLatin_i, chNull }; const unsigned int FunctionNamespaceUri::minArgs = 0; const unsigned int FunctionNamespaceUri::maxArgs = 1; /** * fn:namespace-uri() as xs:anyURI * fn:namespace-uri($arg as node()?) as xs:anyURI **/ FunctionNamespaceUri::FunctionNamespaceUri(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as node()?) as xs:anyURI", args, memMgr) { } ASTNode* FunctionNamespaceUri::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); if(_args.empty()) { XQContextItem *ci = new (mm) XQContextItem(mm); ci->setLocationInfo(this); _args.push_back(ci); } resolveArguments(context); return this; } Sequence FunctionNamespaceUri::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Node::Ptr ctxNode = (Node*)getParamNumber(1, context)->next(context).get(); if(ctxNode.notNull()) { ATQNameOrDerived::Ptr name = ctxNode->dmNodeName(context); if(name.notNull()) return Sequence(context->getItemFactory()->createAnyURI(((const ATQNameOrDerived*)name.get())->getURI(), context), memMgr); } return Sequence(context->getItemFactory()->createAnyURI(XMLUni::fgZeroLenString, context), memMgr); } XQilla-2.3.0/src/functions/FunctionNormalizeSpace.cpp0000644000151400015140000000635411653565523017573 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionNormalizeSpace::name[] = { chLatin_n, chLatin_o, chLatin_r, chLatin_m, chLatin_a, chLatin_l, chLatin_i, chLatin_z, chLatin_e, chDash, chLatin_s, chLatin_p, chLatin_a, chLatin_c, chLatin_e, chNull }; const unsigned int FunctionNormalizeSpace::minArgs = 0; const unsigned int FunctionNormalizeSpace::maxArgs = 1; /** * fn:normalize-space() as xs:string * fn:normalize-space($arg as xs:string?) as xs:string **/ FunctionNormalizeSpace::FunctionNormalizeSpace(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:string?) as xs:string", args, memMgr) { } ASTNode* FunctionNormalizeSpace::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); if(_args.empty()) { FunctionString *arg = new (mm) FunctionString(VectorOfASTNodes(XQillaAllocator(mm)), mm); arg->setLocationInfo(this); _args.push_back(arg); } resolveArguments(context); return this; } Sequence FunctionNormalizeSpace::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager *mm = context->getMemoryManager(); Item::Ptr strParm = getParamNumber(1,context)->next(context); if(strParm.isNull()) return Sequence(context->getItemFactory()->createString(XMLUni::fgZeroLenString, context), mm); const XMLCh *str = strParm->asString(context); // Skip leading whitespace while(*str) { XMLCh ch = *str; if((ch == 0x9) || (ch == 0xA) || (ch == 0xD) || (ch == 0x20)) { ++str; continue; } break; } XMLBuffer buf(XMLString::stringLen(str)); // Compact whitespace, and skip trailing whitespace bool whitespace = false; while(*str) { XMLCh ch = *str; if((ch == 0x9) || (ch == 0xA) || (ch == 0xD) || (ch == 0x20)) { whitespace = true; } else { if(whitespace) buf.append(' '); buf.append(ch); whitespace = false; } ++str; } return Sequence(context->getItemFactory()->createString(buf.getRawBuffer(), context), mm); } XQilla-2.3.0/src/functions/FunctionCount.cpp0000644000151400015140000000566311653565523015751 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include const XMLCh FunctionCount::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionCount::minArgs = 1; const unsigned int FunctionCount::maxArgs = 1; /** * fn:count($arg as item()*) as xs:integer **/ FunctionCount::FunctionCount(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as item()*) as xs:integer", args, memMgr) { } ASTNode* FunctionCount::staticResolution(StaticContext *context) { AutoNodeSetOrderingReset orderReset(context); resolveArguments(context); return this; } ASTNode *FunctionCount::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context); if(context) { const StaticAnalysis &sa = _args[0]->getStaticAnalysis(); const StaticType &sType = sa.getStaticType(); if(sType.getMin() == sType.getMax() && !sa.areDocsOrCollectionsUsed() && !sa.isNoFoldingForced()) { XPath2MemoryManager* mm = context->getMemoryManager(); try { AutoDelete dContext(context->createDynamicContext()); dContext->setMemoryManager(mm); return XQLiteral::create(mm->createInteger(sType.getMin()), dContext, mm, this); } catch(XQException &ex) { // Constant folding failed } } } return this; } Sequence FunctionCount::createSequence(DynamicContext* context, int flags) const { Result arg = getParamNumber(1,context); long length = 0; while(arg->next(context).notNull()) { ++length; } return Sequence(context->getItemFactory()->createInteger(length, context), context->getMemoryManager()); } XQilla-2.3.0/src/functions/FunctionSecondsFromTime.cpp0000644000151400015140000000532011653565523017710 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionSecondsFromTime::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionSecondsFromTime::minArgs = 1; const unsigned int FunctionSecondsFromTime::maxArgs = 1; /* * fn:seconds-from-time($arg as xs:time?) as xs:decimal? */ FunctionSecondsFromTime::FunctionSecondsFromTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:time?) as xs:decimal?", args, memMgr) { } ASTNode *FunctionSecondsFromTime::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context, /*checkTimezone*/true); return this; } Sequence FunctionSecondsFromTime::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) return Sequence(memMgr); return Sequence(((const ATTimeOrDerived*)arg.get())->getSeconds(context), memMgr); } XQilla-2.3.0/src/functions/FunctionStartsWith.cpp0000644000151400015140000001005411653565523016763 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE const XMLCh FunctionStartsWith::name[] = { chLatin_s, chLatin_t, chLatin_a, chLatin_r, chLatin_t, chLatin_s, chDash, chLatin_w, chLatin_i, chLatin_t, chLatin_h, chNull }; const unsigned int FunctionStartsWith::minArgs = 2; const unsigned int FunctionStartsWith::maxArgs = 3; /** * fn:starts-with($arg1 as xs:string?, $arg2 as xs:string?) as xs:boolean * fn:starts-with($arg1 as xs:string?, $arg2 as xs:string?, $collation as xs:string) as xs:boolean **/ FunctionStartsWith::FunctionStartsWith(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg1 as xs:string?, $arg2 as xs:string?, $collation as xs:string) as xs:boolean", args, memMgr) { } BoolResult FunctionStartsWith::boolResult(DynamicContext* context) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Sequence sourceString=getParamNumber(1,context)->toSequence(context); Sequence findString=getParamNumber(2,context)->toSequence(context); const XMLCh* source = XMLUni::fgZeroLenString; if(!sourceString.isEmpty()) source=sourceString.first()->asString(context); const XMLCh* find = XMLUni::fgZeroLenString; if(!findString.isEmpty()) find=findString.first()->asString(context); // If the value of $operand1 is the zero-length string and the value of $operand2 is not the zero-length string, // then the function returns false. if(XMLString::stringLen(source)==0 && XMLString::stringLen(find)>0) return false; // If the value of $operand2 is the zero-length string, then the function returns true if(XMLString::stringLen(find)==0) return true; Collation* collation=NULL; if(getNumArgs()>2) { Sequence collArg = getParamNumber(3,context)->toSequence(context); const XMLCh* collName = collArg.first()->asString(context); try { context->getItemFactory()->createAnyURI(collName, context); } catch(XPath2ErrorException &e) { XQThrow(FunctionException, X("FunctionEndsWith::createSequence"), X("Invalid collationURI")); } collation=context->getCollation(collName, this); } else collation=context->getDefaultCollation(this); // Returns a boolean indicating whether or not the value of $operand1 ends with a string that is equal to the value // of $operand2 according to the specified collation if(XMLString::stringLen(find)>XMLString::stringLen(source)) { return false; } const XMLCh* string = XPath2Utils::subString(source, 0, XPath2Utils::uintStrlen(find), memMgr); return (collation->compare(string,find)==0); } Result FunctionStartsWith::createResult(DynamicContext* context, int flags) const { return (Item::Ptr)context->getItemFactory()->createBoolean(boolResult(context), context); } XQilla-2.3.0/src/functions/CoreModule.hpp0000644000151400015140000000240411636377670015211 00000000000000// Auto-generated by compile-delayed-module from ../src/functions/CoreModule.xq // DO NOT EDIT // ../src/functions/CoreModule.xq static const XMLCh core_file[] = { 46, 46, 47, 115, 114, 99, 47, 102, 117, 110, 99, 116, 105, 111, 110, 115, 47, 67, 111, 114, 101, 77, 111, 100, 117, 108, 101, 46, 120, 113, 0 }; // core static const XMLCh core_prefix[] = { 99, 111, 114, 101, 0 }; // http://xqilla.sourceforge.net/core static const XMLCh core_uri[] = { 104, 116, 116, 112, 58, 47, 47, 120, 113, 105, 108, 108, 97, 46, 115, 111, 117, 114, 99, 101, 102, 111, 114, 103, 101, 46, 110, 101, 116, 47, 99, 111, 114, 101, 0 }; static const DelayedModule::FuncDef core_functions[] = { { "to", 2, false, 20, 1, "declare function core:to($a as xs:integer?, $b as xs:integer?) as xs:decimal*\n" "{\n" " if(empty($a) or empty($b)) then ()\n" " else core:to_helper($a treat as xs:decimal, $b treat as xs:decimal)\n" "}\n" }, { "to_helper", 2, false, 26, 1, "declare function core:to_helper($a as xs:decimal, $b as xs:decimal) as xs:decimal*\n" "{\n" " if($a gt $b) then () else ($a, core:to_helper($a + 1, $b))\n" "}\n" }, { 0, 0, 0, 0, 0 } }; static const DelayedModule core_module = { core_file, core_prefix, core_uri, core_functions }; XQilla-2.3.0/src/functions/FunctionMonthFromDate.cpp0000644000151400015140000000514611653565523017364 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionMonthFromDate::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_h, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionMonthFromDate::minArgs = 1; const unsigned int FunctionMonthFromDate::maxArgs = 1; /* * fn:month-from-date($arg as xs:date?) as xs:integer? */ FunctionMonthFromDate::FunctionMonthFromDate(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:date?) as xs:integer?", args, memMgr) { } ASTNode *FunctionMonthFromDate::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context, /*checkTimezone*/true); return this; } Sequence FunctionMonthFromDate::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) return Sequence(memMgr); return Sequence(((const ATDateOrDerived*)arg.get())->getMonths(context), memMgr); } XQilla-2.3.0/src/functions/FunctionDocAvailable.cpp0000644000151400015140000000573211653565523017164 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionDocAvailable::name[] = { chLatin_d, chLatin_o, chLatin_c, chDash, chLatin_a, chLatin_v, chLatin_a, chLatin_i, chLatin_l, chLatin_a, chLatin_b, chLatin_l, chLatin_e, chNull }; const unsigned int FunctionDocAvailable::minArgs = 1; const unsigned int FunctionDocAvailable::maxArgs = 1; /** * fn:doc-available($uri as xs:string?) as xs:boolean **/ FunctionDocAvailable::FunctionDocAvailable(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($uri as xs:string?) as xs:boolean", args, memMgr) { } ASTNode *FunctionDocAvailable::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); _src.availableDocumentsUsed(true); calculateSRCForArguments(context); return this; } BoolResult FunctionDocAvailable::boolResult(DynamicContext* context) const { Sequence uriArg = getParamNumber(1,context)->toSequence(context); if (uriArg.isEmpty()) return false; const XMLCh* uri = uriArg.first()->asString(context); // on Windows, we can have URIs using \ instead of /; let's normalize them XMLCh backSlash[]={ chBackSlash, chNull }; if(XMLString::findAny(uri,backSlash)) { XMLCh* newUri=XMLString::replicate(uri,context->getMemoryManager()); for(unsigned int i=0;igetMemoryManager())) XQThrow(FunctionException, X("FunctionDocAvailable::createSequence"), X("Invalid argument to fn:doc-available function [err:FODC0005]")); try { return !context->resolveDocument(uri, this).isEmpty(); } catch(...) { } return false; } Result FunctionDocAvailable::createResult(DynamicContext* context, int flags) const { return (Item::Ptr)context->getItemFactory()->createBoolean(boolResult(context), context); } XQilla-2.3.0/src/functions/FunctionAbs.cpp0000644000151400015140000000312511653565523015355 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include const XMLCh FunctionAbs::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_b, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionAbs::minArgs = 1; const unsigned int FunctionAbs::maxArgs = 1; /* * fn:abs($arg as numeric?) as numeric? */ FunctionAbs::FunctionAbs(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : NumericFunction(name, "($arg as xs:anyAtomicType?) as xs:anyAtomicType?", args, memMgr) { } Result FunctionAbs::createResult(DynamicContext* context, int flags) const { Numeric::Ptr num = getNumericParam(1, context); if(num.isNull()) return 0; return (Item::Ptr)num->abs(context); } XQilla-2.3.0/src/functions/FunctionIdref.cpp0000644000151400015140000001145611653565523015707 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include "../exceptions/InvalidLexicalSpaceException.hpp" #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionIdref::name[] = { chLatin_i, chLatin_d, chLatin_r, chLatin_e, chLatin_f, chNull }; const unsigned int FunctionIdref::minArgs = 1; const unsigned int FunctionIdref::maxArgs = 2; /** * fn:idref($arg as xs:string*) as node()* * fn:idref($arg as xs:string*, $node as node()) as node()* **/ FunctionIdref::FunctionIdref(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:string*, $node as node()) as node()*", args, memMgr) { } ASTNode* FunctionIdref::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); if(_args.size() == 1) { XQContextItem *ci = new (mm) XQContextItem(mm); ci->setLocationInfo(this); _args.push_back(ci); } resolveArguments(context); return this; } Sequence FunctionIdref::createSequence(DynamicContext* context, int flags) const { Node::Ptr root = ((Node*)getParamNumber(2, context)->next(context).get())->root(context); if(root->dmNodeKind() != Node::document_string) { XQThrow(FunctionException,X("FunctionIdref::createSequence"), X("Current context doesn't belong to a document [err:FODC0001]")); } Sequence strings = getParamNumber(1, context)->toSequence(context); if(strings.isEmpty()) return Sequence(context->getMemoryManager()); std::vector values; //get the list of idref values we're looking for by iterating over each string in the sequence for (Sequence::iterator stringIt = strings.begin(); stringIt != strings.end(); ++stringIt) { const XMLCh *str = (*stringIt)->asString(context); //for each string check that it is lexically a xs:ID, if not ignore it bool validID = true; try { context->getItemFactory()->createStringOrDerived(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, XMLUni::fgIDString, str, context); } catch (InvalidLexicalSpaceException &e) { validID = false; } if (validID) { values.push_back(str); } } Sequence result(context->getMemoryManager()); std::vector resultStack; resultStack.push_back(root->dmChildren(context, this)); Node::Ptr child = resultStack.back()->next(context); while(child.notNull()) { if(child->dmNodeKind() == Node::element_string) { if(child->dmIsIdRefs(context)->isTrue()) { // child is of type xs:ID const XMLCh* id = child->dmStringValue(context); std::vector vals = XPath2Utils::getVal(id, context->getMemoryManager()); for(std::vector::iterator val = vals.begin(); val != vals.end(); ++val) { if(XPath2Utils::containsString(values, *val)) { result.addItem(child); break; } } } Result attrs = child->dmAttributes(context, this); Node::Ptr att; while((att = (Node::Ptr)attrs->next(context)).notNull()) { if(att->dmIsIdRefs(context)->isTrue()) { // att is of type xs:ID const XMLCh* id = att->dmStringValue(context); std::vector vals = XPath2Utils::getVal(id, context->getMemoryManager()); for(std::vector::iterator val = vals.begin(); val != vals.end(); ++val) { if(XPath2Utils::containsString(values, *val)) { result.addItem(att); break; } } } } } resultStack.push_back(child->dmChildren(context, this)); while(!resultStack.empty() && (child = resultStack.back()->next(context)).isNull()) { resultStack.pop_back(); } } return result; } XQilla-2.3.0/src/functions/FunctionMinutesFromDuration.cpp0000644000151400015140000000537111653565523020633 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionMinutesFromDuration::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionMinutesFromDuration::minArgs = 1; const unsigned int FunctionMinutesFromDuration::maxArgs = 1; /* * fn:minutes-from-duration($arg as xs:duration?) as xs:integer? */ FunctionMinutesFromDuration::FunctionMinutesFromDuration(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:duration?) as xs:integer?", args, memMgr) { } Sequence FunctionMinutesFromDuration::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) return Sequence(memMgr); return Sequence(((const ATDurationOrDerived*)arg.get())->getMinutes(context), memMgr); } XQilla-2.3.0/src/functions/FunctionLocalname.cpp0000644000151400015140000000504111653565523016542 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionLocalname::name[] = { chLatin_l, chLatin_o, chLatin_c, chLatin_a, chLatin_l, chDash, chLatin_n, chLatin_a, chLatin_m, chLatin_e, chNull }; const unsigned int FunctionLocalname::minArgs = 0; const unsigned int FunctionLocalname::maxArgs = 1; /** * fn:local-name() as xs:string * fn:local-name($arg as node()?) as xs:string **/ FunctionLocalname::FunctionLocalname(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as node()?) as xs:string", args, memMgr) { } ASTNode* FunctionLocalname::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); if(_args.empty()) { XQContextItem *ci = new (mm) XQContextItem(mm); ci->setLocationInfo(this); _args.push_back(ci); } resolveArguments(context); return this; } Sequence FunctionLocalname::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Node::Ptr ctxNode = (Node*)getParamNumber(1, context)->next(context).get(); if(ctxNode.notNull()) { ATQNameOrDerived::Ptr name = ctxNode->dmNodeName(context); if(name.notNull()) return Sequence(context->getItemFactory()->createString(((const ATQNameOrDerived*)name.get())->getName(), context), memMgr); } return Sequence(context->getItemFactory()->createString(XMLUni::fgZeroLenString, context), memMgr); } XQilla-2.3.0/src/functions/FunctionConcat.cpp0000644000151400015140000000373211653565523016063 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE const XMLCh FunctionConcat::name[] = { chLatin_c, chLatin_o, chLatin_n, chLatin_c, chLatin_a, chLatin_t, chNull }; const unsigned int FunctionConcat::minArgs = 2; const unsigned int FunctionConcat::maxArgs = 10000; // A reasonably large number /** * fn:concat($arg1 as xs:anyAtomicType?, $arg2 as xs:anyAtomicType?, ...) as xs:string **/ FunctionConcat::FunctionConcat(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:anyAtomicType?) as xs:string", args, memMgr) { } Sequence FunctionConcat::createSequence(DynamicContext* context, int flags) const { XMLBuffer result; for(unsigned int i = 1; i <= getNumArgs(); ++i) { Item::Ptr item = getParamNumber(i,context)->next(context); if(!item.isNull()) { result.append(item->asString(context)); } } return Sequence(context->getItemFactory()->createString(result.getRawBuffer(), context), context->getMemoryManager()); } XQilla-2.3.0/src/functions/FunctionTimezoneFromDateTime.cpp0000644000151400015140000000575711653565523020720 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include const XMLCh FunctionTimezoneFromDateTime::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_z, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_T, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionTimezoneFromDateTime::minArgs = 1; const unsigned int FunctionTimezoneFromDateTime::maxArgs = 1; /* * fn:timezone-from-dateTime($arg as xs:dateTime?) as xs:dayTimeDuration? */ FunctionTimezoneFromDateTime::FunctionTimezoneFromDateTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:dateTime?) as xs:dayTimeDuration?", args, memMgr) { } Sequence FunctionTimezoneFromDateTime::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) { return Sequence(memMgr); } const ATDateTimeOrDerived * dateTime = (const ATDateTimeOrDerived *)arg.get(); // If $srcval does not contain a timezone, the result is the empty sequence if(dateTime->hasTimezone() == false) { return Sequence(memMgr); } return Sequence(dateTime->getTimezone()->asDayTimeDuration(context), memMgr); } XQilla-2.3.0/src/functions/FunctionDateTime.cpp0000644000151400015140000000660111653565523016346 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif const XMLCh FunctionDateTime::name[] = { chLatin_d, chLatin_a, chLatin_t, chLatin_e, chLatin_T, chLatin_i, chLatin_m, chLatin_e, chNull }; const unsigned int FunctionDateTime::minArgs = 2; const unsigned int FunctionDateTime::maxArgs = 2; /** * fn:dateTime($arg1 as xs:date?, $arg2 as xs:time?) as xs:dateTime? **/ FunctionDateTime::FunctionDateTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg1 as xs:date?, $arg2 as xs:time?) as xs:dateTime?", args, memMgr) { } ASTNode *FunctionDateTime::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context, /*checkTimezone*/true); return this; } Sequence FunctionDateTime::createSequence(DynamicContext* context, int flags) const { ATDateOrDerived::Ptr date = (const ATDateOrDerived *)getParamNumber(1, context)->next(context).get(); if(date.isNull()) return Sequence(context->getMemoryManager()); ATTimeOrDerived::Ptr time = (const ATTimeOrDerived *)getParamNumber(2, context)->next(context).get(); if(time.isNull()) return Sequence(context->getMemoryManager()); Timezone::Ptr finalTZ; // determine the timezone of the result if(date->hasTimezone()) { finalTZ=date->getTimezone(); if(time->hasTimezone()) { const Timezone::Ptr timeTZ=time->getTimezone(); if(!timeTZ->equals(finalTZ)) XQThrow(FunctionException, X("FunctionDateTime::createSequence"), X("Both arguments to fn:dateTime have a timezone specified [err:FORG0008]")); } } else if(time->hasTimezone()) finalTZ=time->getTimezone(); Timezone::Ptr nulltz; date = date->setTimezone(nulltz, context); time = time->setTimezone(nulltz, context); // convert to a xs:dateTime string XMLBuffer buff(64, context->getMemoryManager()); buff.append(date->asString(context)); buff.append(chLatin_T); buff.append(time->asString(context)); if(finalTZ != NULLRCP) buff.append(finalTZ->asString(context)); return Sequence(context->getItemFactory()->createDateTime(buff.getRawBuffer(), context), context->getMemoryManager()); } XQilla-2.3.0/src/functions/FunctionMinutesFromTime.cpp0000644000151400015140000000532011653565523017736 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionMinutesFromTime::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionMinutesFromTime::minArgs = 1; const unsigned int FunctionMinutesFromTime::maxArgs = 1; /* * fn:minutes-from-time($arg as xs:time?) as xs:integer? */ FunctionMinutesFromTime::FunctionMinutesFromTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:time?) as xs:integer?", args, memMgr) { } ASTNode *FunctionMinutesFromTime::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context, /*checkTimezone*/true); return this; } Sequence FunctionMinutesFromTime::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) return Sequence(memMgr); return Sequence(((const ATTimeOrDerived*)arg.get())->getMinutes(context), memMgr); } XQilla-2.3.0/src/functions/FunctionLast.cpp0000644000151400015140000000442611653565523015560 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionLast::name[] = { chLatin_l, chLatin_a, chLatin_s, chLatin_t, chNull }; const unsigned int FunctionLast::minArgs = 0; const unsigned int FunctionLast::maxArgs = 0; /** * fn:last() as xs:integer **/ FunctionLast::FunctionLast(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "() as xs:integer", args, memMgr) { } ASTNode *FunctionLast::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); if(context && !context->getContextItemType().containsType(StaticType::ITEM_TYPE)) { XQThrow(DynamicErrorException,X("XQContextItem::staticTyping"), X("It is an error for the context item to be undefined when using it [err:XPDY0002]")); } _src.contextSizeUsed(true); calculateSRCForArguments(context); return this; } Sequence FunctionLast::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); if(context->getContextItem()==NULLRCP) XQThrow(DynamicErrorException,X("FunctionPosition::createSequence"), X("Undefined context item in fn:last [err:XPDY0002]")); return Sequence(context->getItemFactory()->createInteger((long)context->getContextSize(), context), memMgr); } XQilla-2.3.0/src/functions/FunctionNamespaceURIFromQName.cpp0000644000151400015140000000556211653565523020701 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include const XMLCh FunctionNamespaceURIFromQName::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_p, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_Q, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_N, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionNamespaceURIFromQName::minArgs = 1; const unsigned int FunctionNamespaceURIFromQName::maxArgs = 1; /** * fn:namespace-uri-from-QName($arg as xs:QName?) as xs:anyURI? **/ FunctionNamespaceURIFromQName::FunctionNamespaceURIFromQName(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:QName?) as xs:anyURI?", args, memMgr) { } Sequence FunctionNamespaceURIFromQName::createSequence(DynamicContext* context, int flags) const { Sequence arg=getParamNumber(1,context)->toSequence(context); if(arg.isEmpty()) return Sequence(context->getMemoryManager()); return Sequence(context->getItemFactory()->createAnyURI(((const ATQNameOrDerived*)arg.first().get())->getURI(), context), context->getMemoryManager()); } XQilla-2.3.0/src/functions/FunctionAcos.cpp0000644000151400015140000000307711653565523015543 00000000000000/* * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include const XMLCh FunctionAcos::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionAcos::minArgs = 1; const unsigned int FunctionAcos::maxArgs = 1; /* * math:acos($arg as numeric?) as numeric? */ FunctionAcos::FunctionAcos(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : EXSLTMathFunction(name, "($arg as xs:anyAtomicType?) as xs:anyAtomicType?", args, memMgr) { } Result FunctionAcos::createResult(DynamicContext* context, int flags) const { Numeric::Ptr num = getNumericParam(1, context); if(num.isNull()) return 0; return (Item::Ptr)num->acos(context); } XQilla-2.3.0/src/functions/FunctionExplain.cpp0000644000151400015140000000454211653565523016254 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; using namespace std; const XMLCh FunctionExplain::name[] = { chLatin_e, chLatin_x, chLatin_p, chLatin_l, chLatin_a, chLatin_i, chLatin_n, chNull }; const unsigned int FunctionExplain::minArgs = 1; const unsigned int FunctionExplain::maxArgs = 1; FunctionExplain::FunctionExplain(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQillaFunction(name, "($expression as item()*) as element()", args, memMgr), queryPathTree_(0) { } ASTNode *FunctionExplain::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); _src.setProperties(StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::PEER | StaticAnalysis::SUBTREE | StaticAnalysis::ONENODE); _src.creative(true); calculateSRCForArguments(context); return this; } Sequence FunctionExplain::createSequence(DynamicContext* context, int flags) const { AutoDelete builder(context->createSequenceBuilder()); QueryPathTreeFilter qptf(queryPathTree_, builder.get()); EventHandler *handler = queryPathTree_ ? (EventHandler*)&qptf : (EventHandler*)builder.get(); AutoDelete a2x(context->getConfiguration()->createASTToXML()); a2x->run(_args[0], handler, context); handler->endEvent(); return builder->getSequence(); } XQilla-2.3.0/src/functions/FunctionStaticBaseURI.cpp0000644000151400015140000000463411653565523017260 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif const XMLCh FunctionStaticBaseURI::name[] = { chLatin_s, chLatin_t, chLatin_a, chLatin_t, chLatin_i, chLatin_c, chDash, chLatin_b, chLatin_a, chLatin_s, chLatin_e, chDash, chLatin_u, chLatin_r, chLatin_i, chNull }; const unsigned int FunctionStaticBaseURI::minArgs = 0; const unsigned int FunctionStaticBaseURI::maxArgs = 0; /** * fn:static-base-uri() as xs:anyURI? **/ FunctionStaticBaseURI::FunctionStaticBaseURI(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "() as xs:anyURI?", args, memMgr) { } ASTNode* FunctionStaticBaseURI::staticResolution(StaticContext *context) { XPath2MemoryManager* mm=context->getMemoryManager(); ASTNode* newBlock = new (mm) XQLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_ANYURI, context->getBaseURI() ? context->getBaseURI() : XMLUni::fgZeroLenString, AnyAtomicType::ANY_URI, mm); newBlock->setLocationInfo(this); return newBlock->staticResolution(context); } ASTNode *FunctionStaticBaseURI::staticTypingImpl(StaticContext *context) { // Should never happen return this; } Sequence FunctionStaticBaseURI::createSequence(DynamicContext* context, int flags) const { // Always constant folded return Sequence(context->getMemoryManager()); } XQilla-2.3.0/src/functions/FunctionTimezoneFromDate.cpp0000644000151400015140000000555011653565523020070 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionTimezoneFromDate::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_z, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionTimezoneFromDate::minArgs = 1; const unsigned int FunctionTimezoneFromDate::maxArgs = 1; /* * fn:timezone-from-date($arg as xs:date?) as xs:dayTimeDuration? */ FunctionTimezoneFromDate::FunctionTimezoneFromDate(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:date?) as xs:dayTimeDuration?", args, memMgr) { } Sequence FunctionTimezoneFromDate::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Sequence arg=getParamNumber(1,context)->toSequence(context); if(arg.isEmpty()) return Sequence(memMgr); const ATDateOrDerived *date = (const ATDateOrDerived*)(const Item*)arg.first(); // If $srcval does not contain a timezone, the result is the empty sequence if (date->hasTimezone() == false) { return Sequence(memMgr); } const Timezone::Ptr timezone = date->getTimezone(); return Sequence( (const Item::Ptr )timezone->asDayTimeDuration(context), memMgr ); } XQilla-2.3.0/src/functions/FunctionRoot.cpp0000644000151400015140000000561111653565523015575 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE const XMLCh FunctionRoot::name[] = { chLatin_r, chLatin_o, chLatin_o, chLatin_t, chNull }; const unsigned int FunctionRoot::minArgs = 0; const unsigned int FunctionRoot::maxArgs = 1; /** * fn:root() as node() * fn:root($arg as node()?) as node()? **/ FunctionRoot::FunctionRoot(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as node()?) as node()?", args, memMgr) { } ASTNode* FunctionRoot::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); if(_args.empty()) { XQContextItem *ci = new (mm) XQContextItem(mm); ci->setLocationInfo(this); _args.push_back(ci); } resolveArguments(context); return this; } ASTNode *FunctionRoot::staticTypingImpl(StaticContext *context) { _src.clear(); _src.setProperties(StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::PEER | StaticAnalysis::SAMEDOC | StaticAnalysis::ONENODE); _src.getStaticType() = StaticType(StaticType::NODE_TYPE, 0, 1); _src.add(_args[0]->getStaticAnalysis()); if(_args[0]->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("FunctionRoot::staticTyping"), X("It is a static error for an argument to a function " "to be an updating expression [err:XUST0001]")); } if(_args[0]->getStaticAnalysis().getStaticType().isType(StaticType::DOCUMENT_TYPE)) { return _args[0]; } return this; } Sequence FunctionRoot::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Node::Ptr node = (Node*)getParamNumber(1, context)->next(context).get(); if(node.isNull()) return Sequence(memMgr); return Sequence(node->root(context), memMgr); } XQilla-2.3.0/src/functions/FunctionDaysFromDuration.cpp0000644000151400015140000000513511653565523020105 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionDaysFromDuration::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_y, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionDaysFromDuration::minArgs = 1; const unsigned int FunctionDaysFromDuration::maxArgs = 1; /* * fn:days-from-Duration($arg as xs:duration?) as xs:integer? */ FunctionDaysFromDuration::FunctionDaysFromDuration(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:duration?) as xs:integer?", args, memMgr) { } Sequence FunctionDaysFromDuration::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) return Sequence(memMgr); return Sequence(((const ATDurationOrDerived*)arg.get())->getDays(context), memMgr); } XQilla-2.3.0/src/functions/FunctionNumber.cpp0000644000151400015140000000732211653565523016103 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE const XMLCh FunctionNumber::name[] = { chLatin_n, chLatin_u, chLatin_m, chLatin_b, chLatin_e, chLatin_r, chNull }; const unsigned int FunctionNumber::minArgs = 0; const unsigned int FunctionNumber::maxArgs = 1; /** * fn:number() as xs:double * fn:number($arg as anyAtomicType?) as xs:double **/ FunctionNumber::FunctionNumber(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:anyAtomicType?) as xs:double", args, memMgr) { } ASTNode* FunctionNumber::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); if(_args.empty()) { XQContextItem *ci = new (mm) XQContextItem(mm); ci->setLocationInfo(this); _args.push_back(ci); } resolveArguments(context); return this; } Sequence FunctionNumber::createSequence(DynamicContext* context, int flags) const { return Sequence(number((AnyAtomicType*)getParamNumber(1, context)->next(context).get(), context), context->getMemoryManager()); } Numeric::Ptr FunctionNumber::number(const AnyAtomicType *item, DynamicContext *context) { if(item == 0) { return context->getItemFactory()->createDouble(Numeric::NaN_string, context); } else { try { return (Numeric*)item->castAs(AnyAtomicType::DOUBLE, 0, 0, context).get(); } catch (XPath2TypeCastException &e) { return context->getItemFactory()->createDouble(Numeric::NaN_string, context); } } } Numeric::Ptr FunctionNumber::number(const Item::Ptr &item, DynamicContext *context, const LocationInfo *location) { Item::Ptr tmp = item; if(item.isNull()) { // Do nothing } else if(item->isNode()) { // Atomize first Result atomized = ((Node*)item.get())->dmTypedValue(context); tmp = atomized->next(context); if(tmp.notNull() && atomized->next(context).notNull()) { XQThrow3(XPath2TypeMatchException, X("FunctionNumber::number"), X("Sequence does not match type xs:anyAtomicType? - found more than one item [err:XPTY0004]"), location); } } else if(item->isFunction()) { XMLBuffer buf; buf.set(X("Sequence does not match type (xs:anyAtomicType | node())*")); buf.append(X(" - found item of type ")); item->typeToBuffer(context, buf); buf.append(X(" [err:XPTY0004]")); XQThrow3(XPath2TypeMatchException, X("FunctionNumber::number"), buf.getRawBuffer(), location); } return number((AnyAtomicType*)tmp.get(), context); } XQilla-2.3.0/src/functions/FunctionCos.cpp0000644000151400015140000000301111653565523015366 00000000000000/* * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include const XMLCh FunctionCos::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionCos::minArgs = 1; const unsigned int FunctionCos::maxArgs = 1; /* * math:cos($arg as numeric?) as numeric? */ FunctionCos::FunctionCos(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : EXSLTMathFunction(name, "($arg as xs:anyAtomicType?) as xs:anyAtomicType?", args, memMgr) { } Result FunctionCos::createResult(DynamicContext* context, int flags) const { Numeric::Ptr num = getNumericParam(1, context); if(num.isNull()) return 0; return (Item::Ptr)num->cos(context); } XQilla-2.3.0/src/functions/FunctionDocument.cpp0000644000151400015140000000653011653565523016431 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionDocument::name[] = { chLatin_d, chLatin_o, chLatin_c, chLatin_u, chLatin_m, chLatin_e, chLatin_n, chLatin_t, chNull }; const unsigned int FunctionDocument::minArgs = 1; const unsigned int FunctionDocument::maxArgs = 2; /** * document($uri-sequence as item()*) as node()* * document($uri-sequence as item()*, $base-node as node()) as node()* **/ FunctionDocument::FunctionDocument(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($uri-sequence as item()*, $base-node as node()) as node()*", args, memMgr), queryPathTree_(0) { } ASTNode *FunctionDocument::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context); _src.setProperties(StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::PEER | StaticAnalysis::SUBTREE | StaticAnalysis::ONENODE); // TBD Change if we support fragment identifiers - jpcs _src.getStaticType() = StaticType(StaticType::DOCUMENT_TYPE, 0, StaticType::UNLIMITED); _src.availableDocumentsUsed(true); return this; } Sequence FunctionDocument::createSequence(DynamicContext* context, int flags) const { const XMLCh *baseURI; if(getNumArgs() == 2) { baseURI = ((Node*)getParamNumber(2, context)->next(context).get())->dmBaseURI(context).first()->asString(context); } else { baseURI = context->getBaseURI(); } Sequence result(context->getMemoryManager()); Result args = getParamNumber(1, context); Item::Ptr uriArg; while((uriArg = args->next(context)).notNull()) { const XMLCh *uri = uriArg->asString(context); if(!XPath2Utils::isValidURI(uri, context->getMemoryManager())) XQThrow(FunctionException, X("FunctionDocument::createSequence"), X("Invalid argument to fn:document function [err:FODC0005]")); try { XMLUri base(baseURI); XMLUri full(&base, uri); uri = context->getMemoryManager()->getPooledString(full.getUriText()); } catch(MalformedURLException &e){ XQThrow(FunctionException, X("FunctionDocument::createSequence"), X("Invalid argument to resolve-uri [err:FORG0002]")); } result.joinSequence(context->resolveDocument(uri, this, context->getProjection() ? queryPathTree_ : 0)); } return result; } XQilla-2.3.0/src/functions/FunctionDayFromDateTime.cpp0000644000151400015140000000533211653565523017630 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionDayFromDateTime::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_y, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_T, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionDayFromDateTime::minArgs = 1; const unsigned int FunctionDayFromDateTime::maxArgs = 1; /* * fn:day-from-dateTime($arg as xs:dateTime?) as xs:integer? */ FunctionDayFromDateTime::FunctionDayFromDateTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:dateTime?) as xs:integer?", args, memMgr) { } ASTNode *FunctionDayFromDateTime::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context, /*checkTimezone*/true); return this; } Sequence FunctionDayFromDateTime::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) return Sequence(memMgr); return Sequence(((const ATDateTimeOrDerived*)arg.get())->getDays(context), memMgr); } XQilla-2.3.0/src/functions/CoreModule.xq0000644000151400015140000000201111636377670015044 00000000000000(: : Copyright (c) 2004-2009 : Oracle. All rights reserved. : : Licensed under the Apache License, Version 2.0 (the "License"); : you may not use this file except in compliance with the License. : You may obtain a copy of the License at : : http://www.apache.org/licenses/LICENSE-2.0 : : Unless required by applicable law or agreed to in writing, software : distributed under the License is distributed on an "AS IS" BASIS, : WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. : See the License for the specific language governing permissions and : limitations under the License. :) module namespace core = "http://xqilla.sourceforge.net/core"; declare function core:to($a as xs:integer?, $b as xs:integer?) as xs:decimal* { if(empty($a) or empty($b)) then () else core:to_helper($a treat as xs:decimal, $b treat as xs:decimal) }; declare function core:to_helper($a as xs:decimal, $b as xs:decimal) as xs:decimal* { if($a gt $b) then () else ($a, core:to_helper($a + 1, $b)) }; XQilla-2.3.0/src/functions/FunctionYearFromDateTime.cpp0000644000151400015140000000542411653565523020015 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionYearFromDateTime::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_y, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_T, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionYearFromDateTime::minArgs = 1; const unsigned int FunctionYearFromDateTime::maxArgs = 1; /* * fn:year-from-dateTime($arg as xs:dateTime?) as xs:integer? */ FunctionYearFromDateTime::FunctionYearFromDateTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:dateTime?) as xs:integer?", args, memMgr) { } ASTNode *FunctionYearFromDateTime::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context, /*checkTimezone*/true); return this; } Sequence FunctionYearFromDateTime::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) return Sequence(memMgr); return Sequence(((const ATDateTimeOrDerived*)arg.get())->getYears(context), memMgr); } XQilla-2.3.0/src/functions/FunctionCurrentTime.cpp0000644000151400015140000000452611653565523017117 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include "../utils/DateUtils.hpp" #include // for sprintf const XMLCh FunctionCurrentTime::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionCurrentTime::minArgs = 0; const unsigned int FunctionCurrentTime::maxArgs = 0; /** * fn:current-time() as xs:time **/ FunctionCurrentTime::FunctionCurrentTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "() as xs:time", args, memMgr) { } ASTNode *FunctionCurrentTime::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); _src.currentTimeUsed(true); calculateSRCForArguments(context); return this; } Sequence FunctionCurrentTime::createSequence(DynamicContext* context, int flags) const { return Sequence(DateUtils::getCurrentTime(context), context->getMemoryManager()); } XQilla-2.3.0/src/functions/FunctionAdjustDateToTimezone.cpp0000644000151400015140000001045711653565523020724 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include "../utils/DateUtils.hpp" #include #include #include #include #include const XMLCh FunctionAdjustDateToTimezone::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_j, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_z, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionAdjustDateToTimezone::minArgs = 1; const unsigned int FunctionAdjustDateToTimezone::maxArgs = 2; /* * fn:adjust-date-to-timezone($arg as xs:date?) as xs:date? * fn:adjust-date-to-timezone($arg as xs:date?, $timezone as xs:dayTimeDuration?) as xs:date? */ FunctionAdjustDateToTimezone::FunctionAdjustDateToTimezone(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:date?, $timezone as xs:dayTimeDuration?) as xs:date?", args, memMgr) { } ASTNode *FunctionAdjustDateToTimezone::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); if(getNumArgs() == 1) { _src.implicitTimezoneUsed(true); } calculateSRCForArguments(context); return this; } Sequence FunctionAdjustDateToTimezone::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); //If $srcval is the empty sequence, then the result is the empty sequence. Sequence op1 = getParamNumber(1, context)->toSequence(context); if (op1.isEmpty()) { return Sequence(memMgr); } const ATDateOrDerived* date = (const ATDateOrDerived*)(const Item*)op1.first(); //If $timezone is not specified, then $timezone is the value of the implicit timezone in the evaluation context. ATDurationOrDerived::Ptr timezoneAsDuration = 0; if (getNumArgs() > 1) { Sequence op2 = getParamNumber(2, context)->toSequence(context); if (op2.isEmpty()) { // unset the timezone return Sequence(date->setTimezone(0, context), memMgr); } else { timezoneAsDuration = (const ATDurationOrDerived::Ptr )op2.first(); Timezone::Ptr timezone = new Timezone(timezoneAsDuration, context); if(!timezoneAsDuration->equals(timezone->asDayTimeDuration(context), context)) { XQThrow(FunctionException, X("FunctionAdjustDateToTimeZone::createSequence"),X("Invalid timezone value [err:FODT0003]")); } } } else { timezoneAsDuration = context->getImplicitTimezone(); } return Sequence(date->addTimezone(timezoneAsDuration, context), memMgr); } XQilla-2.3.0/src/functions/FunctionMonthFromDateTime.cpp0000644000151400015140000000550511653565523020202 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionMonthFromDateTime::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_h, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_T, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionMonthFromDateTime::minArgs = 1; const unsigned int FunctionMonthFromDateTime::maxArgs = 1; /* * fn:month-from-dateTime($arg as xs:dateTime?) as xs:integer? */ FunctionMonthFromDateTime::FunctionMonthFromDateTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:dateTime?) as xs:integer?", args, memMgr) { } ASTNode *FunctionMonthFromDateTime::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context, /*checkTimezone*/true); return this; } Sequence FunctionMonthFromDateTime::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) return Sequence(memMgr); return Sequence(((const ATDateTimeOrDerived*)arg.get())->getMonths(context), memMgr); } XQilla-2.3.0/src/functions/ExternalFunction.cpp0000644000151400015140000000305311653565523016432 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include XERCES_CPP_NAMESPACE_USE; ExternalFunction::ExternalFunction(const XMLCh *uri, const XMLCh *name, unsigned int numberOfArgs, XPath2MemoryManager *mm) : uri_(mm->getPooledString(uri)), name_(mm->getPooledString(name)), uriName_(0), numArgs_(numberOfArgs) { XMLBuffer buf; buf.set(name); buf.append(uri); uriName_ = mm->getPooledString(buf.getRawBuffer()); } Result ExternalFunction::execute(const Arguments *args, DynamicContext *context) const { return 0; } PendingUpdateList ExternalFunction::executeUpdate(const Arguments *args, DynamicContext *context) const { return PendingUpdateList(); } XQilla-2.3.0/src/functions/FunctionAnalyzeString.cpp0000644000151400015140000001012711653565523017442 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionAnalyzeString::name[] = { chLatin_a, chLatin_n, chLatin_a, chLatin_l, chLatin_y, chLatin_z, chLatin_e, chDash, chLatin_s, chLatin_t, chLatin_r, chLatin_i, chLatin_n, chLatin_g, chNull }; const unsigned int FunctionAnalyzeString::minArgs = 3; const unsigned int FunctionAnalyzeString::maxArgs = 4; /** * xqilla:analyze-string($input as xs:string?, $pattern as xs:string, * $action as function(xs:string, xs:boolean) as item()*) as item()* * xqilla:analyze-string($input as xs:string?, $pattern as xs:string, * $action as function(xs:string, xs:boolean) as item()*, $flags as xs:string) as item()* */ FunctionAnalyzeString::FunctionAnalyzeString(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQillaFunction(name, "($input as xs:string?, $pattern as xs:string, " "$action as function(xs:string, xs:boolean) as item()*, $flags as xs:string) as item()*", args, memMgr) { } ASTNode *FunctionAnalyzeString::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); _src.setProperties(0); calculateSRCForArguments(context); // TBD Precompile the regex - jpcs if(_args[2]->getStaticAnalysis().getStaticType().getReturnType()) { _src.getStaticType() = *_args[2]->getStaticAnalysis().getStaticType().getReturnType(); _src.getStaticType().setCardinality(0, StaticType::UNLIMITED); } else { _src.getStaticType() = StaticType(StaticType::ITEM_TYPE, 0, StaticType::UNLIMITED); } return this; } class FunctionAnalyzeStringResult : public AnalyzeStringResult { public: FunctionAnalyzeStringResult(const FunctionAnalyzeString *ast) : AnalyzeStringResult(ast), ast_(ast), func_(0) { } const XMLCh *getInput(DynamicContext *context) { return ast_->getParamNumber(1, context)->next(context)->asString(context); } const XMLCh *getPattern(DynamicContext *context) { return ast_->getParamNumber(2, context)->next(context)->asString(context); } const XMLCh *getFlags(DynamicContext *context) { if(ast_->getNumArgs() == 4) return ast_->getParamNumber(4, context)->next(context)->asString(context); return XMLUni::fgZeroLenString; } Result getMatchResult(const XMLCh *matchString, size_t matchPos, size_t numberOfMatches, bool match, DynamicContext *context) { if(func_.isNull()) func_ = (FunctionRef*)ast_->getParamNumber(3, context)->next(context).get(); VectorOfResults args; args.push_back(Result(context->getItemFactory()->createString(matchString, context))); args.push_back(Result(context->getItemFactory()->createBoolean(match, context))); return func_->execute(args, context, this); } private: const FunctionAnalyzeString *ast_; FunctionRef::Ptr func_; }; Result FunctionAnalyzeString::createResult(DynamicContext* context, int flags) const { return ClosureResult::create(getStaticAnalysis(), context, new FunctionAnalyzeStringResult(this)); } XQilla-2.3.0/src/functions/FunctionParseXML.cpp0000644000151400015140000000525711653565523016313 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionParseXML::name[] = { chLatin_p, chLatin_a, chLatin_r, chLatin_s, chLatin_e, chDash, chLatin_x, chLatin_m, chLatin_l, chNull }; const unsigned int FunctionParseXML::minArgs = 1; const unsigned int FunctionParseXML::maxArgs = 1; /** * xqilla:parse-xml($xml as xs:string?) as document-node()? */ FunctionParseXML::FunctionParseXML(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQillaFunction(name, "($xml as xs:string?) as document-node()?", args, memMgr), queryPathTree_(0) { } ASTNode *FunctionParseXML::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context); _src.setProperties(StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::PEER | StaticAnalysis::SUBTREE | StaticAnalysis::ONENODE); _src.getStaticType() = StaticType(StaticType::DOCUMENT_TYPE, 0, 1); _src.creative(true); return this; } Sequence FunctionParseXML::createSequence(DynamicContext* context, int flags) const { Item::Ptr item = getParamNumber(1, context)->next(context); if(item.isNull()) return Sequence(context->getMemoryManager()); const XMLCh *xml = item->asString(context); MemBufInputSource src((XMLByte*)xml, XMLString::stringLen(xml) * sizeof(XMLCh), name); src.setEncoding(XMLUni::fgUTF16EncodingString); try { return Sequence(context->parseDocument(src, this, context->getProjection() ? queryPathTree_ : 0), context->getMemoryManager()); } catch(XMLParseException &e) { XQThrow(FunctionException, X("FunctionParseXML::createSequence"), e.getError()); } } XQilla-2.3.0/src/functions/FunctionCeiling.cpp0000644000151400015140000000411411653565523016221 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include const XMLCh FunctionCeiling::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_l, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_g, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionCeiling::minArgs = 1; const unsigned int FunctionCeiling::maxArgs = 1; /* * fn:ceiling($arg as numeric?) as numeric? */ FunctionCeiling::FunctionCeiling(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : NumericFunction(name, "($arg as xs:anyAtomicType?) as xs:anyAtomicType?", args, memMgr) { } Sequence FunctionCeiling::createSequence(DynamicContext* context, int flags) const { Numeric::Ptr numericArg = getNumericParam(1, context); //If the argument is the empty sequence, the empty sequence is returned. if(numericArg.isNull()) { return Sequence(context->getMemoryManager()); } if(numericArg->isNaN() || numericArg->isInfinite()) return Sequence(numericArg, context->getMemoryManager()); return Sequence(numericArg->ceiling(context), context->getMemoryManager()); } XQilla-2.3.0/src/functions/FunctionDayFromDate.cpp0000644000151400015140000000477311653565523017021 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionDayFromDate::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_y, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionDayFromDate::minArgs = 1; const unsigned int FunctionDayFromDate::maxArgs = 1; /* * fn:day-from-date($arg as xs:date?) as xs:integer? */ FunctionDayFromDate::FunctionDayFromDate(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:date?) as xs:integer?", args, memMgr) { } ASTNode *FunctionDayFromDate::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context, /*checkTimezone*/true); return this; } Sequence FunctionDayFromDate::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) return Sequence(memMgr); return Sequence(((const ATDateOrDerived*)arg.get())->getDays(context), memMgr); } XQilla-2.3.0/src/functions/FunctionCompare.cpp0000644000151400015140000000711511653565523016241 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include const XMLCh FunctionCompare::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_p, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionCompare::minArgs = 2; const unsigned int FunctionCompare::maxArgs = 3; /** * fn:compare($comparand1 as xs:string?, $comparand2 as xs:string?) as xs:integer? * fn:compare($comparand1 as xs:string?, $comparand2 as xs:string?, $collation as xs:string) as xs:integer? **/ FunctionCompare::FunctionCompare(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($comparand1 as xs:string?, $comparand2 as xs:string?, $collation as xs:string) as xs:integer?", args, memMgr) { } Sequence FunctionCompare::createSequence(DynamicContext* context, int flags) const { Sequence str1 = getParamNumber(1,context)->toSequence(context); Sequence str2 = getParamNumber(2,context)->toSequence(context); if(str1.isEmpty() || str2.isEmpty()) return Sequence(context->getMemoryManager()); Collation* collation = NULL; if(getNumArgs()>2) { Sequence collArg = getParamNumber(3,context)->toSequence(context); const XMLCh* collName = collArg.first()->asString(context); try { context->getItemFactory()->createAnyURI(collName, context); } catch(XPath2ErrorException &e) { XQThrow(FunctionException, X("FunctionCompare::createSequence"), X("Invalid argument to compare function")); } collation = context->getCollation(collName, this); if(collation == NULL) XQThrow(FunctionException,X("FunctionCompare::createSequence"),X("Collation object is not available")); } else collation = context->getDefaultCollation(this); if(collation == NULL) collation = context->getCollation(CodepointCollation::getCodepointCollationName(), this); const XMLCh* string1 = str1.first()->asString(context); const XMLCh* string2 = str2.first()->asString(context); Sequence result(context->getItemFactory()->createInteger(collation->compare(string1,string2), context), context->getMemoryManager()); return result; } XQilla-2.3.0/src/functions/FunctionLog.cpp0000644000151400015140000000301211653565523015364 00000000000000/* * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include const XMLCh FunctionLog::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_l, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_g, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionLog::minArgs = 1; const unsigned int FunctionLog::maxArgs = 1; /* * math:log($arg as numeric?) as numeric? */ FunctionLog::FunctionLog(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : EXSLTMathFunction(name, "($arg as xs:anyAtomicType?) as xs:anyAtomicType?", args, memMgr) { } Result FunctionLog::createResult(DynamicContext* context, int flags) const { Numeric::Ptr num = getNumericParam(1, context); if(num.isNull()) return 0; return (Item::Ptr)num->log(context); } XQilla-2.3.0/src/functions/FunctionTail.cpp0000644000151400015140000000537611653565523015553 00000000000000/* * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionTail::name[] = { 't', 'a', 'i', 'l', 0 }; const unsigned int FunctionTail::minArgs = 1; const unsigned int FunctionTail::maxArgs = 1; /** * fn:tail($target as item()*) as item()* */ FunctionTail::FunctionTail(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($target as item()*) as item()*", args, memMgr) { } ASTNode *FunctionTail::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context); _src.getStaticType() = _args[0]->getStaticAnalysis().getStaticType(); unsigned int min = _src.getStaticType().getMin(); if(min > 0) --min; unsigned int max = _src.getStaticType().getMax(); if(max > 0 && max != StaticType::UNLIMITED) --max; _src.getStaticType().setCardinality(min, max); return this; } Result FunctionTail::createResult(DynamicContext* context, int flags) const { Result result = getParamNumber(1, context); result->skip(1, context); return result; } const XMLCh FunctionDrop::name[] = { 'd', 'r', 'o', 'p', 0 }; const unsigned int FunctionDrop::minArgs = 2; const unsigned int FunctionDrop::maxArgs = 2; /** * xqilla:drop($target as item()*, $count as xs:double) as item()* */ FunctionDrop::FunctionDrop(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQillaFunction(name, "($target as item()*, $count as xs:double) as item()*", args, memMgr) { } ASTNode *FunctionDrop::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context); _src.getStaticType() = _args[0]->getStaticAnalysis().getStaticType(); _src.getStaticType().setCardinality(0, _src.getStaticType().getMax()); return this; } Result FunctionDrop::createResult(DynamicContext* context, int flags) const { Numeric::Ptr count = (Numeric*)getParamNumber(2, context)->next(context).get(); Result result = getParamNumber(1, context); result->skip(count->asInt(), context); return result; } XQilla-2.3.0/src/functions/FunctionMatches.cpp0000644000151400015140000001345011653565523016236 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include "xqilla/functions/FunctionNumber.hpp" #include "xqilla/framework/StringPool.hpp" #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif const XMLCh FunctionMatches::name[] = { chLatin_m, chLatin_a, chLatin_t, chLatin_c, chLatin_h, chLatin_e, chLatin_s, chNull }; const unsigned int FunctionMatches::minArgs = 2; const unsigned int FunctionMatches::maxArgs = 3; /** * fn:matches($input as xs:string?, $pattern as xs:string) as xs:boolean * fn:matches($input as xs:string?, $pattern as xs:string, $flags as xs:string) as xs:boolean */ FunctionMatches::FunctionMatches(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : RegExpFunction(name, "($input as xs:string?, $pattern as xs:string, $flags as xs:string) as xs:boolean", args, memMgr) { } ASTNode *FunctionMatches::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context); //either there are 2 args, and regexp should be a constant, //or there is an options argument as well, and it should also be a constant if(context && !regExp_ && _args[1]->isConstant() && (getNumArgs() == 2 || (getNumArgs() == 3 && _args[2]->isConstant()))) { XPath2MemoryManager* memMgr = context->getMemoryManager(); AutoDelete dContext(context->createDynamicContext()); dContext->setMemoryManager(memMgr); Item::Ptr patternItem = getParamNumber(2, dContext)->next(dContext); pattern_ = (XMLCh*) patternItem->asString(dContext); options_ = (XMLCh*) XMLUni::fgZeroLenString; if(getNumArgs() == 3) { Item::Ptr optsItem = getParamNumber(3, dContext)->next(dContext); options_ = (XMLCh*) optsItem->asString(dContext); checkRegexpOpts(options_, "FunctionMatches::staticTypingImplSequence"); } // Always turn off head character optimisation, since it is broken XMLBuffer optionsBuf; optionsBuf.set(options_); optionsBuf.append(chLatin_H); try { regExp_ = new (memMgr) RegularExpression(pattern_, optionsBuf.getRawBuffer(), memMgr); } catch (ParseException &e){ processParseException(e, "FunctionMatches::staticTypingImplSequence", memMgr); } } return this; } BoolResult FunctionMatches::boolResult(DynamicContext* context) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); const XMLCh* input = XMLUni::fgZeroLenString; Item::Ptr inputItem = getParamNumber(1,context)->next(context); if(inputItem.notNull()) input=inputItem->asString(context); if(regExp_) { try { return matches(input, regExp_); } catch (XMLException &e){ processXMLException(e, "FunctionMatches::createSequence"); } } //do not get here if we had a pre-compiled regexp const XMLCh* pattern = getParamNumber(2,context)->next(context)->asString(context); const XMLCh* options = XMLUni::fgZeroLenString; if(getNumArgs()>2) options=getParamNumber(3,context)->next(context)->asString(context); //Check that the options are valid - throw an exception if not (can have s,m,i and x) //Note: Are allowed to duplicate the letters. checkRegexpOpts(options, "FunctionMatches::createSequence"); try { return matches(input, pattern, options); } catch (ParseException &e){ processParseException(e, "FunctionMatches::createSequence", memMgr); } catch (XMLException &e){ processXMLException(e, "FunctionMatches::createSequence"); } //do not get here return false; } Result FunctionMatches::createResult(DynamicContext* context, int flags) const { return (Item::Ptr)context->getItemFactory()->createBoolean(boolResult(context), context); } void FunctionMatches::processXMLException(XMLException &e, const char* sourceMsg) const { XQThrow(FunctionException, X(sourceMsg), e.getMessage()); } bool FunctionMatches::matches(const XMLCh *input, const XMLCh *pattern, const XMLCh *options) { // If the value of $operand2 is the zero-length string, then the function returns true if(pattern == 0 || *pattern == 0) return true; if(input == 0) input = XMLUni::fgZeroLenString; // Always turn off head character optimisation, since it is broken XMLBuffer optionsBuf; optionsBuf.set(options); optionsBuf.append(chLatin_H); //Build the Regular Expression RegularExpression regEx(pattern, optionsBuf.getRawBuffer()); return regEx.matches(input); } //should be invoked only we have a precompiled regexp bool FunctionMatches::matches(const XMLCh *input, const XERCES_CPP_NAMESPACE_QUALIFIER RegularExpression* regExp) { if(input == 0) { input = XMLUni::fgZeroLenString; } return regExp->matches(input); } XQilla-2.3.0/src/functions/FnModule.xq0000644000151400015140000006712311636377670014536 00000000000000(: : Copyright (c) 2004-2009 : Oracle. All rights reserved. : : Licensed under the Apache License, Version 2.0 (the "License"); : you may not use this file except in compliance with the License. : You may obtain a copy of the License at : : http://www.apache.org/licenses/LICENSE-2.0 : : Unless required by applicable law or agreed to in writing, software : distributed under the License is distributed on an "AS IS" BASIS, : WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. : See the License for the specific language governing permissions and : limitations under the License. :) module namespace fn = "http://www.w3.org/2005/xpath-functions"; declare function data($a as item()*) as xs:anyAtomicType* { $a }; (:----------------------------------------------------------------------------------------------------:) (: String functions :) declare function string-join($seq as xs:string*) as xs:string { string-join($seq, "") }; declare function string-join($seq as xs:string*, $join as xs:string) as xs:string { if(empty($seq)) then "" else string-join-helper($seq, $join) }; declare private function string-join-helper($seq as xs:string*, $join as xs:string) as xs:string { if(empty(tail($seq))) then head($seq) else concat(head($seq), $join, string-join-helper(tail($seq), $join)) }; declare function substring-before($arg1 as xs:string?, $arg2 as xs:string?) as xs:string { substring-before($arg1, $arg2, default-collation()) }; declare function substring-before($arg1 as xs:string?, $arg2 as xs:string?, $collation as xs:string) as xs:string { let $arg1 := if(empty($arg1)) then "" else $arg1 let $arg2 := if(empty($arg2)) then "" else $arg2 let $arg2len := string-length($arg2) return substring($arg1, 1, string-index-of($arg1, 1, 1 + string-length($arg1) - $arg2len, $arg2, $arg2len, $collation) - 1) }; declare function substring-after($arg1 as xs:string?, $arg2 as xs:string?) as xs:string { substring-after($arg1, $arg2, default-collation()) }; declare function substring-after($arg1 as xs:string?, $arg2 as xs:string?, $collation as xs:string) as xs:string { let $arg1 := if(empty($arg1)) then "" else $arg1 let $arg2 := if(empty($arg2)) then "" else $arg2 let $arg2len := string-length($arg2) let $index := string-index-of($arg1, 1, 1 + string-length($arg1) - $arg2len, $arg2, $arg2len, $collation) return if($index eq 0) then "" else substring($arg1, $index + $arg2len) }; declare private function string-index-of($str as xs:string, $index as xs:decimal, $endindex as xs:decimal, $tofind as xs:string, $tofindlen as xs:decimal, $collation as xs:string) as xs:decimal { if($index gt $endindex) then 0 else if(compare($tofind, substring($str, $index, $tofindlen), $collation) eq 0) then $index else string-index-of($str, $index + 1, $endindex, $tofind, $tofindlen, $collation) }; declare function codepoint-equal($arg1 as xs:string?, $arg2 as xs:string?) as xs:boolean? { compare($arg1, $arg2, "http://www.w3.org/2005/xpath-functions/collation/codepoint") eq 0 }; declare function translate($arg as xs:string?, $mapString as xs:string, $transString as xs:string) as xs:string { codepoints-to-string( let $in := string-to-codepoints($arg) let $map := string-to-codepoints($mapString) let $trans := string-to-codepoints($transString) for $c in $in let $index := head(index-of($map, $c)) return if(empty($index)) then $c else $trans[$index] ) }; declare private function codepoint-in-utf8($c as xs:integer) as xs:integer+ { if($c < 128) then $c else if($c < 2048) then ( ($c idiv 64) + 192, ($c mod 64) + 128 ) else if($c < 65536) then ( ($c idiv 4096) + 224, (($c idiv 64) mod 64) + 128, ($c mod 64) + 128 ) else ( ($c idiv 262144) + 240, (($c idiv 4096) mod 64) + 128, (($c idiv 64) mod 64) + 128, ($c mod 64) + 128 ) }; declare private function percent-encode($c as xs:integer) as xs:integer+ { (: Codepoint for "%" :) let $percent := 37 (: Codepoints for "0" - "9", "A" - "F" :) let $hex := (48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70) for $byte in codepoint-in-utf8($c) return ( $percent, $hex[($byte idiv 16) + 1], $hex[($byte mod 16) + 1] ) }; declare function encode-for-uri($uri-part as xs:string?) as xs:string { codepoints-to-string( let $A := string-to-codepoints("A") let $Z := string-to-codepoints("Z") let $a := string-to-codepoints("a") let $z := string-to-codepoints("z") let $d0 := string-to-codepoints("0") let $d9 := string-to-codepoints("9") let $hyphen := string-to-codepoints("-") let $underscore := string-to-codepoints("_") let $fullstop := string-to-codepoints(".") let $tilde := string-to-codepoints("~") for $c in string-to-codepoints($uri-part) return if(($c ge $A and $c le $Z) or ($c ge $a and $c le $z) or ($c ge $d0 and $c le $d9) or $c eq $hyphen or $c eq $underscore or $c eq $fullstop or $c eq $tilde) then $c else percent-encode($c) ) }; declare function iri-to-uri($iri as xs:string?) as xs:string { codepoints-to-string( let $leftangle := string-to-codepoints("<") let $rightangle := string-to-codepoints(">") let $doublequote := string-to-codepoints('"') let $space := string-to-codepoints(" ") let $leftcurly := string-to-codepoints("{") let $rightcurly := string-to-codepoints("}") let $bar := string-to-codepoints("|") let $backslash := 92 let $hat := string-to-codepoints("^") let $backtick := string-to-codepoints("`") for $c in string-to-codepoints($iri) return if($c lt 32 or $c gt 126 or $c eq $leftangle or $c eq $rightangle or $c eq $doublequote or $c eq $space or $c eq $leftcurly or $c eq $rightcurly or $c eq $bar or $c eq $backslash or $c eq $hat or $c eq $backtick) then percent-encode($c) else $c ) }; declare function escape-html-uri($iri as xs:string?) as xs:string { codepoints-to-string( for $c in string-to-codepoints($iri) return if($c lt 32 or $c gt 126) then percent-encode($c) else $c ) }; (:----------------------------------------------------------------------------------------------------:) (: QName functions :) declare function resolve-QName($qname as xs:string?, $element as element()) as xs:QName? { typeswitch($qname) case $qname as xs:string return let $mock := QName("dummy", $qname) let $uri := namespace-uri-for-prefix(prefix-from-QName($mock), $element) return if(empty(prefix-from-QName($mock)) or exists($uri)) then QName($uri, $qname) else error(xs:QName("err:FONS0004"), concat("No namespace found for prefix: """, prefix-from-QName($mock), """")) default return () }; declare function namespace-uri-for-prefix($prefix as xs:string?, $element as element()) as xs:anyURI? { let $prefix := if(empty($prefix)) then "" else $prefix return $element/namespace::*[name() eq $prefix]/xs:anyURI(.) }; declare function in-scope-prefixes($element as element()) as xs:string* { $element/namespace::*/name() }; (:----------------------------------------------------------------------------------------------------:) (: Boolean functions :) declare function true() as xs:boolean { xs:boolean("1") }; declare function false() as xs:boolean { xs:boolean("0") }; declare function boolean($arg as item()*) as xs:boolean { $arg and true() }; declare function exists($arg as item()*) as xs:boolean { not(empty($arg)) }; (:----------------------------------------------------------------------------------------------------:) (: Sequence functions :) declare function zero-or-one($arg as item()*) as item()? { typeswitch($arg) case $arg_ as item()? return $arg_ default return error(xs:QName("err:FORG0003"), "Sequence contains more then one item") }; declare function one-or-more($arg as item()*) as item()+ { typeswitch($arg) case $arg_ as item()+ return $arg_ default return error(xs:QName("err:FORG0004"), "Sequence is empty") }; declare function exactly-one($arg as item()*) as item() { typeswitch($arg) case $arg_ as item() return $arg_ case empty-sequence() return error(xs:QName("err:FORG0005"), "Sequence is empty") default return error(xs:QName("err:FORG0005"), "Sequence contains more then one item") }; declare function index-of($seq as xs:anyAtomicType*, $search as xs:anyAtomicType) as xs:integer* { (: Check for NaN :) if($search ne $search) then () else index-of-helper($seq, $search, default-collation()) }; declare function index-of($seq as xs:anyAtomicType*, $search as xs:anyAtomicType, $collation as xs:string) as xs:integer* { (: Check for NaN :) if($search ne $search) then () else index-of-helper($seq, $search, $collation) }; declare private function index-of-helper($seq as xs:anyAtomicType*, $search as xs:anyAtomicType, $collation as xs:string) as xs:integer* { for $s at $p in $seq where empty(tail(distinct-values(($s, $search), $collation))) return $p }; declare function insert-before($target as item()*, $position as xs:integer, $inserts as item()*) as item()* { if($position le 1 or empty($inserts)) then ($inserts, $target) else (head($target), insert-before(tail($target), $position - 1, $inserts)) }; declare function remove($target as item()*, $position as xs:integer) as item()* { $target[position() ne $position] }; declare function reverse($seq as item()*) as item()* { if(empty($seq)) then () else (reverse(tail($seq)), head($seq)) }; declare function subsequence($sourceSeq as item()*, $startingLoc as xs:double) as item()* { let $s := round($startingLoc) return if($s < 1) then $sourceSeq else xqilla:drop($sourceSeq, $s - 1) }; declare function subsequence($sourceSeq as item()*, $startingLoc as xs:double, $length as xs:double) as item()* { let $s := round($startingLoc) return if($s < 1) then take($sourceSeq, round($length) + $s - 1) else take(xqilla:drop($sourceSeq, $s - 1), round($length)) }; declare private function take($seq as item()*, $num as xs:double) as item()* { if($num le 0 or empty($seq)) then () else (head($seq), take(tail($seq), $num - 1)) }; declare function deep-equal($parameter1 as item()*, $parameter2 as item()*) as xs:boolean { deep-equal($parameter1, $parameter2, default-collation()) }; declare function deep-equal($p1 as item()*, $p2 as item()*, $collation as xs:string) as xs:boolean { if(empty($p1)) then empty($p2) else if(empty($p2)) then false() else let $i1 := head($p1), $i2 := head($p2) return typeswitch($i1) case $a1 as xs:anyAtomicType return typeswitch($i2) case $a2 as xs:anyAtomicType return empty(tail(distinct-values(($a1, $a2), $collation))) and deep-equal(tail($p1), tail($p2), $collation) case node() return false() default return deep-equal-error() case $n1 as node() return ( typeswitch($i2) case xs:anyAtomicType return false() case $n2 as node() return ( deep-equal-nodes($n1, $n2, $collation) and deep-equal(tail($p1), tail($p2), $collation) ) default return deep-equal-error() ) default return deep-equal-error() }; declare private function deep-equal-error() { error(xs:QName("err:FOTY0015"), "An argument to fn:deep-equal() contains a function item") }; declare private function deep-equal-nodes($p1 as node()*, $p2 as node()*, $collation as xs:string) as xs:boolean { if(empty($p1)) then empty($p2) else if(empty($p2)) then false() else let $i1 := head($p1), $i2 := head($p2) return typeswitch($i1) case document-node() return typeswitch($i2) case document-node() return deep-equal-nodes($i1/(*|text()), $i2/(*|text()), $collation) and deep-equal-nodes(tail($p1), tail($p2), $collation) default return false() case text() return typeswitch($i2) case text() return empty(tail(distinct-values(($i1, $i2), $collation))) and deep-equal-nodes(tail($p1), tail($p2), $collation) default return false() case comment() return typeswitch($i2) case comment() return empty(tail(distinct-values(($i1, $i2), $collation))) and deep-equal-nodes(tail($p1), tail($p2), $collation) default return false() case processing-instruction() return typeswitch($i2) case processing-instruction() return node-name($i1) eq node-name($i2) and empty(tail(distinct-values(($i1, $i2), $collation))) and deep-equal-nodes(tail($p1), tail($p2), $collation) default return false() case attribute() return typeswitch($i2) case attribute() return node-name($i1) eq node-name($i2) and deep-equal(data($i1), data($i2), $collation) and deep-equal-nodes(tail($p1), tail($p2), $collation) default return false() case element() return typeswitch($i2) case element() return ( node-name($i1) eq node-name($i2) and count($i1/@*) eq count($i2/@*) and (every $a1 in $i1/@* satisfies some $a2 in $i2/@* satisfies deep-equal-nodes($a1, $a2, $collation)) and (if(empty($i1/*) and empty($i2/*)) then deep-equal(data($i1), data($i2), $collation) else deep-equal-nodes($i1/(*|text()), $i2/(*|text()), $collation)) and deep-equal-nodes(tail($p1), tail($p2), $collation) ) default return false() default (: namespace-node() :) return typeswitch($i2) case namespace-node() return deep-equal(node-name($i1), node-name($i2), $collation) and codepoint-equal($i1, $i2) and deep-equal-nodes(tail($p1), tail($p2), $collation) default return false() }; (:----------------------------------------------------------------------------------------------------:) (: Aggregate functions :) declare function avg($arg as xs:anyAtomicType*) as xs:anyAtomicType? { sum($arg, ()) div count($arg) }; declare function sum($arg as xs:anyAtomicType*) as xs:anyAtomicType { sum($arg, 0) }; declare function sum($arg as xs:anyAtomicType*, $zero as xs:anyAtomicType?) as xs:anyAtomicType? { typeswitch(head($arg)) case empty-sequence() return $zero case $head as xs:untypedAtomic return numeric-sum(tail($arg), xs:double($head)) case $head as xs:double | xs:float | xs:decimal return if($head ne $head) then $head else numeric-sum(tail($arg), $head) case $head as xs:yearMonthDuration return yearMonthDuration-sum(tail($arg), $head) case $head as xs:dayTimeDuration return dayTimeDuration-sum(tail($arg), $head) default return error(xs:QName("err:FORG0006"), "Invalid argument to fn:sum() function") }; declare private function numeric-sum($arg as xs:anyAtomicType*, $result as xs:anyAtomicType) as xs:anyAtomicType { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:untypedAtomic return numeric-sum(tail($arg), xs:double($head) + $result) case $head as xs:double | xs:float | xs:decimal return if($head ne $head) then $head else numeric-sum(tail($arg), $head + $result) default return error(xs:QName("err:FORG0006"), "Invalid argument to fn:sum() function") }; declare private function yearMonthDuration-sum($arg as xs:anyAtomicType*, $result as xs:yearMonthDuration) as xs:yearMonthDuration { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:yearMonthDuration return yearMonthDuration-sum(tail($arg), $head + $result) default return error(xs:QName("err:FORG0006"), "Invalid argument to fn:sum() function") }; declare private function dayTimeDuration-sum($arg as xs:anyAtomicType*, $result as xs:dayTimeDuration) as xs:dayTimeDuration { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:dayTimeDuration return dayTimeDuration-sum(tail($arg), $head + $result) default return error(xs:QName("err:FORG0006"), "Invalid argument to fn:sum() function") }; declare function max($arg as xs:anyAtomicType*) as xs:anyAtomicType? { max($arg, default-collation()) }; declare function max($arg as xs:anyAtomicType*, $collation as xs:string) as xs:anyAtomicType? { typeswitch(head($arg)) case empty-sequence() return () case $head as xs:untypedAtomic | xs:double return double-max(tail($arg), xs:double($head)) case $head as xs:float return float-max(tail($arg), $head) case $head as xs:decimal return decimal-max(tail($arg), $head) case $head as xs:anyURI | xs:string return string-max(tail($arg), xs:string($head), $collation) case $head as xs:boolean return boolean-max(tail($arg), $head) case $head as xs:date return date-max(tail($arg), $head) case $head as xs:time return time-max(tail($arg), $head) case $head as xs:dateTime return dateTime-max(tail($arg), $head) case $head as xs:yearMonthDuration return yearMonthDuration-max(tail($arg), $head) case $head as xs:dayTimeDuration return dayTimeDuration-max(tail($arg), $head) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:max() function") }; declare private function double-max($arg as xs:anyAtomicType*, $result as xs:double) as xs:double { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:untypedAtomic | xs:double | xs:float | xs:decimal return let $head := xs:double($head) return double-max(tail($arg), if($head gt $result or $head ne $head) then $head else $result) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:max() function") }; declare private function float-max($arg as xs:anyAtomicType*, $result as xs:float) as xs:anyAtomicType { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:untypedAtomic | xs:double return double-max($arg, xs:double($result)) case $head as xs:float | xs:decimal return let $head := xs:float($head) return float-max(tail($arg), if($head gt $result or $head ne $head) then $head else $result) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:max() function") }; declare private function decimal-max($arg as xs:anyAtomicType*, $result as xs:decimal) as xs:anyAtomicType { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:untypedAtomic | xs:double return double-max($arg, xs:double($result)) case $head as xs:float return float-max($arg, xs:float($result)) case $head as xs:decimal return decimal-max(tail($arg), if($head gt $result) then $head else $result) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:max() function") }; declare private function string-max($arg as xs:anyAtomicType*, $result as xs:string, $collation as xs:string) as xs:string { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:string | xs:anyURI return string-max(tail($arg), if(compare($head, $result, $collation) gt 0) then xs:string($head) else $result, $collation) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:max() function") }; declare private function boolean-max($arg as xs:anyAtomicType*, $result as xs:boolean) as xs:boolean { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:boolean return boolean-max(tail($arg), if($head gt $result) then $head else $result) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:max() function") }; declare private function date-max($arg as xs:anyAtomicType*, $result as xs:date) as xs:date { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:date return date-max(tail($arg), if($head gt $result) then $head else $result) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:max() function") }; declare private function time-max($arg as xs:anyAtomicType*, $result as xs:time) as xs:time { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:time return time-max(tail($arg), if($head gt $result) then $head else $result) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:max() function") }; declare private function dateTime-max($arg as xs:anyAtomicType*, $result as xs:dateTime) as xs:dateTime { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:dateTime return dateTime-max(tail($arg), if($head gt $result) then $head else $result) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:max() function") }; declare private function yearMonthDuration-max($arg as xs:anyAtomicType*, $result as xs:yearMonthDuration) as xs:yearMonthDuration { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:yearMonthDuration return yearMonthDuration-max(tail($arg), if($head gt $result) then $head else $result) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:max() function") }; declare private function dayTimeDuration-max($arg as xs:anyAtomicType*, $result as xs:dayTimeDuration) as xs:dayTimeDuration { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:dayTimeDuration return dayTimeDuration-max(tail($arg), if($head gt $result) then $head else $result) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:max() function") }; declare function min($arg as xs:anyAtomicType*) as xs:anyAtomicType? { min($arg, default-collation()) }; declare function min($arg as xs:anyAtomicType*, $collation as xs:string) as xs:anyAtomicType? { typeswitch(head($arg)) case empty-sequence() return () case $head as xs:untypedAtomic | xs:double return double-min(tail($arg), xs:double($head)) case $head as xs:float return float-min(tail($arg), $head) case $head as xs:decimal return decimal-min(tail($arg), $head) case $head as xs:anyURI | xs:string return string-min(tail($arg), xs:string($head), $collation) case $head as xs:boolean return boolean-min(tail($arg), $head) case $head as xs:date return date-min(tail($arg), $head) case $head as xs:time return time-min(tail($arg), $head) case $head as xs:dateTime return dateTime-min(tail($arg), $head) case $head as xs:yearMonthDuration return yearMonthDuration-min(tail($arg), $head) case $head as xs:dayTimeDuration return dayTimeDuration-min(tail($arg), $head) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:min() function") }; declare private function double-min($arg as xs:anyAtomicType*, $result as xs:double) as xs:double { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:untypedAtomic | xs:double | xs:float | xs:decimal return let $head := xs:double($head) return double-min(tail($arg), if($head lt $result or $head ne $head) then $head else $result) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:min() function") }; declare private function float-min($arg as xs:anyAtomicType*, $result as xs:float) as xs:anyAtomicType { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:untypedAtomic | xs:double return double-min($arg, xs:double($result)) case $head as xs:float | xs:decimal return let $head := xs:float($head) return float-min(tail($arg), if($head lt $result or $head ne $head) then $head else $result) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:min() function") }; declare private function decimal-min($arg as xs:anyAtomicType*, $result as xs:decimal) as xs:anyAtomicType { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:untypedAtomic | xs:double return double-min($arg, xs:double($result)) case $head as xs:float return float-min($arg, xs:float($result)) case $head as xs:decimal return decimal-min(tail($arg), if($head lt $result) then $head else $result) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:min() function") }; declare private function string-min($arg as xs:anyAtomicType*, $result as xs:string, $collation as xs:string) as xs:string { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:string | xs:anyURI return string-min(tail($arg), if(compare($head, $result, $collation) lt 0) then xs:string($head) else $result, $collation) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:min() function") }; declare private function boolean-min($arg as xs:anyAtomicType*, $result as xs:boolean) as xs:boolean { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:boolean return boolean-min(tail($arg), if($head lt $result) then $head else $result) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:min() function") }; declare private function date-min($arg as xs:anyAtomicType*, $result as xs:date) as xs:date { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:date return date-min(tail($arg), if($head lt $result) then $head else $result) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:min() function") }; declare private function time-min($arg as xs:anyAtomicType*, $result as xs:time) as xs:time { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:time return time-min(tail($arg), if($head lt $result) then $head else $result) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:min() function") }; declare private function dateTime-min($arg as xs:anyAtomicType*, $result as xs:dateTime) as xs:dateTime { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:dateTime return dateTime-min(tail($arg), if($head lt $result) then $head else $result) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:min() function") }; declare private function yearMonthDuration-min($arg as xs:anyAtomicType*, $result as xs:yearMonthDuration) as xs:yearMonthDuration { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:yearMonthDuration return yearMonthDuration-min(tail($arg), if($head lt $result) then $head else $result) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:min() function") }; declare private function dayTimeDuration-min($arg as xs:anyAtomicType*, $result as xs:dayTimeDuration) as xs:dayTimeDuration { typeswitch(head($arg)) case empty-sequence() return $result case $head as xs:dayTimeDuration return dayTimeDuration-min(tail($arg), if($head lt $result) then $head else $result) default return error(xs:QName("err:FORG0006"), "Uncomparable items in argument to fn:min() function") }; (:----------------------------------------------------------------------------------------------------:) (: XQuery 1.1 functions :) (: TBD These should probably only be imported if we're parsing XQuery 1.1 - jpcs :) declare function map($f as function(item()) as item()*, $seq as item()*) as item()* { if(empty($seq)) then () else ($f(head($seq)), map($f, tail($seq))) }; declare function filter($f as function(item()) as xs:boolean, $seq as item()*) as item()* { if(empty($seq)) then () else ( if($f(head($seq))) then head($seq) else (), filter($f, tail($seq)) ) }; declare function fold-left($f as function(item()*, item()) as item()*, $zero as item()*, $seq as item()*) as item()* { if(empty($seq)) then $zero else fold-left($f, $f($zero, head($seq)), tail($seq)) }; declare function fold-right($f as function(item(), item()*) as item()*, $zero as item()*, $seq as item()*) as item()* { if(empty($seq)) then $zero else $f(head($seq), fold-right($f, $zero, tail($seq))) }; declare function map-pairs($f as function(item(), item()) as item()*, $seq1 as item()*, $seq2 as item()*) as item()* { if(empty($seq1) or empty($seq2)) then () else ( $f(head($seq1), head($seq2)), map-pairs($f, tail($seq1), tail($seq2)) ) }; XQilla-2.3.0/src/functions/FunctionYearFromDate.cpp0000644000151400015140000000506211653565523017174 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionYearFromDate::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_y, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionYearFromDate::minArgs = 1; const unsigned int FunctionYearFromDate::maxArgs = 1; /* * fn:year-from-date($arg as xs:date?) as xs:integer? */ FunctionYearFromDate::FunctionYearFromDate(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:date?) as xs:integer?", args, memMgr) { } ASTNode *FunctionYearFromDate::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context, /*checkTimezone*/true); return this; } Sequence FunctionYearFromDate::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) return Sequence(memMgr); return Sequence(((const ATDateOrDerived*)arg.get())->getYears(context), memMgr); } XQilla-2.3.0/src/functions/FunctionUpperCase.cpp0000644000151400015140000000400611653565523016536 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif const XMLCh FunctionUpperCase::name[] = { chLatin_u, chLatin_p, chLatin_p, chLatin_e, chLatin_r, chDash, chLatin_c, chLatin_a, chLatin_s, chLatin_e, chNull }; const unsigned int FunctionUpperCase::minArgs = 1; const unsigned int FunctionUpperCase::maxArgs = 1; /* * fn:upper-case($arg as xs:string?) as xs:string */ FunctionUpperCase::FunctionUpperCase(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:string?) as xs:string", args, memMgr) { } Sequence FunctionUpperCase::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager *memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) { return Sequence(context->getItemFactory()->createString(XMLUni::fgZeroLenString, context), memMgr); } AutoDeallocate buf(UnicodeTransformer::upperCase(arg->asString(context), memMgr), memMgr); return Sequence(context->getItemFactory()->createString(buf.get(), context), memMgr); } XQilla-2.3.0/src/functions/FunctionAdjustDateTimeToTimezone.cpp0000644000151400015140000001107711653565523021542 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include "../utils/DateUtils.hpp" #include #include #include #include #include const XMLCh FunctionAdjustDateTimeToTimezone::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_j, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_T, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_z, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionAdjustDateTimeToTimezone::minArgs = 1; const unsigned int FunctionAdjustDateTimeToTimezone::maxArgs = 2; /* * fn:adjust-dateTime-to-timezone($arg as xs:dateTime?) as xs:dateTime? * fn:adjust-dateTime-to-timezone($arg as xs:dateTime?, $timezone as xs:dayTimeDuration?) as xs:dateTime? */ FunctionAdjustDateTimeToTimezone::FunctionAdjustDateTimeToTimezone(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:dateTime?, $timezone as xs:dayTimeDuration?) as xs:dateTime?", args, memMgr) { } ASTNode *FunctionAdjustDateTimeToTimezone::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); if(getNumArgs() == 1) { _src.implicitTimezoneUsed(true); } calculateSRCForArguments(context); return this; } Sequence FunctionAdjustDateTimeToTimezone::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); //If $srcval is the empty sequence, then the result is the empty sequence. Sequence op1 = getParamNumber(1, context)->toSequence(context); if (op1.isEmpty()) { return Sequence(memMgr); } const ATDateTimeOrDerived* dateTime = (const ATDateTimeOrDerived*)(const Item*)op1.first(); //If $timezone is not specified, then $timezone is the value of the implicit timezone in the evaluation context. ATDurationOrDerived::Ptr timezoneAsDuration = 0; if (getNumArgs() > 1) { Sequence op2 = getParamNumber(2, context)->toSequence(context); if (op2.isEmpty()) { // unset the timezone return Sequence(dateTime->setTimezone(0, context), memMgr); } else { timezoneAsDuration = (const ATDurationOrDerived::Ptr )op2.first(); Timezone::Ptr timezone = new Timezone(timezoneAsDuration, context); if(!timezoneAsDuration->equals(timezone->asDayTimeDuration(context), context)) { XQThrow(FunctionException, X("FunctionAdjustDateTimeToTimeZone::createSequence"),X("Invalid timezone value [err:FODT0003]")); } } } else { timezoneAsDuration = context->getImplicitTimezone(); } return Sequence(dateTime->addTimezone(timezoneAsDuration, context), memMgr); } XQilla-2.3.0/src/functions/FunctionString.cpp0000644000151400015140000000535311653565523016123 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE const XMLCh FunctionString::name[] = { chLatin_s, chLatin_t, chLatin_r, chLatin_i, chLatin_n, chLatin_g, chNull }; const unsigned int FunctionString::minArgs = 0; const unsigned int FunctionString::maxArgs = 1; /** * fn:string() as xs:string * fn:string($arg as item()?) as xs:string **/ FunctionString::FunctionString(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as item()?) as xs:string", args, memMgr) { } ASTNode* FunctionString::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); if(_args.empty()) { XQContextItem *ci = new (mm) XQContextItem(mm); ci->setLocationInfo(this); _args.push_back(ci); } resolveArguments(context); return this; } Sequence FunctionString::createSequence(DynamicContext* context, int flags) const { return Sequence(string_item(getParamNumber(1, context)->next(context), context), context->getMemoryManager()); } Item::Ptr FunctionString::string_item(const Item::Ptr &item, DynamicContext *context) { return context->getItemFactory()->createString(string(item, context), context); } const XMLCh *FunctionString::string(const Item::Ptr &item, DynamicContext *context) { if(item.isNull()) { // Do nothing } else if(item->isNode()) { return ((Node*)item.get())->dmStringValue(context); } else if(item->isAtomicValue()) { return ((AnyAtomicType*)item.get())->asString(context); } return XMLUni::fgZeroLenString; } XQilla-2.3.0/src/functions/FunctionStringLength.cpp0000644000151400015140000000532411653565523017263 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionStringLength::name[] = { chLatin_s, chLatin_t, chLatin_r, chLatin_i, chLatin_n, chLatin_g, chDash, chLatin_l, chLatin_e, chLatin_n, chLatin_g, chLatin_t, chLatin_h, chNull }; const unsigned int FunctionStringLength::minArgs = 0; const unsigned int FunctionStringLength::maxArgs = 1; /** * fn:string-length() as xs:integer * fn:string-length($arg as xs:string?) as xs:integer **/ FunctionStringLength::FunctionStringLength(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:string?) as xs:integer", args, memMgr) { } ASTNode* FunctionStringLength::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); if(_args.empty()) { FunctionString *arg = new (mm) FunctionString(VectorOfASTNodes(XQillaAllocator(mm)), mm); arg->setLocationInfo(this); _args.push_back(arg); } resolveArguments(context); return this; } Sequence FunctionStringLength::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager *mm = context->getMemoryManager(); Item::Ptr strParm = getParamNumber(1,context)->next(context); if(strParm.isNull()) return Sequence(context->getItemFactory()->createInteger(0, context), mm); const XMLCh *str = strParm->asString(context); long length = 0; while(*str) { ++length; if(RegxUtil::isHighSurrogate(*str)) ++str; ++str; } return Sequence(context->getItemFactory()->createInteger(length, context), mm); } XQilla-2.3.0/src/functions/FunctionFunctionArity.cpp0000644000151400015140000000527411653565523017455 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; using namespace std; const XMLCh FunctionFunctionArity::name[] = { 'f', 'u', 'n', 'c', 't', 'i', 'o', 'n', '-', 'a', 'r', 'i', 't', 'y', 0 }; const unsigned int FunctionFunctionArity::minArgs = 1; const unsigned int FunctionFunctionArity::maxArgs = 1; /** * fn:function-arity($function as function(*)) as xs:integer */ FunctionFunctionArity::FunctionFunctionArity(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($function as function(*)) as xs:integer", args, memMgr) { } ASTNode *FunctionFunctionArity::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context); if(context) { const StaticAnalysis &sa = _args[0]->getStaticAnalysis(); const StaticType &sType = sa.getStaticType(); if(sType.getReturnType() && sType.getMinArgs() == sType.getMaxArgs() && !sa.areDocsOrCollectionsUsed() && !sa.isNoFoldingForced()) { XPath2MemoryManager* mm = context->getMemoryManager(); try { AutoDelete dContext(context->createDynamicContext()); dContext->setMemoryManager(mm); return XQLiteral::create(mm->createInteger(sType.getMinArgs()), dContext, mm, this); } catch(XQException &ex) { // Constant folding failed } } } return this; } Sequence FunctionFunctionArity::createSequence(DynamicContext* context, int flags) const { FunctionRef::Ptr func = (FunctionRef*)getParamNumber(1, context)->next(context).get(); return Sequence(context->getItemFactory()->createInteger((int)func->getNumArgs(), context), context->getMemoryManager()); } XQilla-2.3.0/src/functions/FunctionEmpty.cpp0000644000151400015140000000523711653565523015754 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include const XMLCh FunctionEmpty::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_p, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_y, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionEmpty::minArgs = 1; const unsigned int FunctionEmpty::maxArgs = 1; /* * fn:empty($arg as item()*) as xs:boolean */ FunctionEmpty::FunctionEmpty(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as item()*) as xs:boolean", args, memMgr) { } ASTNode* FunctionEmpty::staticResolution(StaticContext *context) { AutoNodeSetOrderingReset orderReset(context); resolveArguments(context); return this; } ASTNode *FunctionEmpty::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context); if(context) { const StaticAnalysis &sa = _args[0]->getStaticAnalysis(); const StaticType &sType = sa.getStaticType(); if((sType.getMin() > 0 || sType.getMax() == 0) && !sa.areDocsOrCollectionsUsed() && !sa.isNoFoldingForced()) { XPath2MemoryManager* mm = context->getMemoryManager(); return XQLiteral::create(sType.getMax() == 0, mm, this); } } return this; } BoolResult FunctionEmpty::boolResult(DynamicContext* context) const { return getParamNumber(1,context)->next(context).isNull(); } Result FunctionEmpty::createResult(DynamicContext* context, int flags) const { return (Item::Ptr)context->getItemFactory()->createBoolean(boolResult(context), context); } XQilla-2.3.0/src/functions/FunctionLang.cpp0000644000151400015140000000770411653565523015540 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionLang::name[] = { chLatin_l, chLatin_a, chLatin_n, chLatin_g, chNull }; const unsigned int FunctionLang::minArgs = 1; const unsigned int FunctionLang::maxArgs = 2; /** * fn:lang($testlang as xs:string?) as xs:boolean * fn:lang($testlang as xs:string?, $node as node()) as xs:boolean **/ FunctionLang::FunctionLang(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($testlang as xs:string?, $node as node()) as xs:boolean", args, memMgr) { } ASTNode* FunctionLang::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); if(_args.size() == 1) { XQContextItem *ci = new (mm) XQContextItem(mm); ci->setLocationInfo(this); _args.push_back(ci); } resolveArguments(context); return this; } Sequence FunctionLang::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Item::Ptr arg1 = getParamNumber(1, context)->next(context); const XMLCh *param1 = arg1.isNull() ? XMLUni::fgZeroLenString : arg1->asString(context); const XMLCh* xmlLangValue = XPath2Utils::toLower(param1, context->getMemoryManager()); bool isSubLang = XMLString::indexOf(xmlLangValue, chDash) > 0; static const XMLCh xmlLang[] = { chLatin_l, chLatin_a, chLatin_n, chLatin_g, chNull}; static const XMLCh* xmlLangNamespace = XMLUni::fgXMLURIName; Node::Ptr node = (Node*)getParamNumber(2, context)->next(context).get(); while(node.notNull()) { Result attrs = node->dmAttributes(context, this); Node::Ptr att; while((att = (Node::Ptr)attrs->next(context)).notNull()) { ATQNameOrDerived::Ptr name = att->dmNodeName(context); if(name.notNull()) { const XMLCh *node_uri = ((const ATQNameOrDerived*)name.get())->getURI(); const XMLCh *node_name = ((const ATQNameOrDerived*)name.get())->getName(); if(XPath2Utils::equals(xmlLang, node_name) && XPath2Utils::equals(xmlLangNamespace, node_uri)) { const XMLCh *value = att->dmStringValue(context); const XMLCh* asLower = XPath2Utils::toLower(value, context->getMemoryManager()); int dashLocation = XMLString::indexOf(asLower, chDash); if(dashLocation!=-1 && !isSubLang) { asLower = XPath2Utils::subString(asLower, 0, dashLocation, memMgr); } return Sequence(context->getItemFactory()->createBoolean(XPath2Utils::equals(asLower, xmlLangValue), context), memMgr); } } } node = node->dmParent(context); } return Sequence(context->getItemFactory()->createBoolean(false, context), memMgr); } XQilla-2.3.0/src/functions/FunctionParseJSON.cpp0000644000151400015140000002242111653565523016414 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include // for sprintf #ifdef _MSC_VER #define snprintf _snprintf #endif #include #include #include #include #include #include #include #include #include #include "../yajl/yajl_parse.h" XERCES_CPP_NAMESPACE_USE; using namespace std; const XMLCh FunctionParseJSON::name[] = { chLatin_p, chLatin_a, chLatin_r, chLatin_s, chLatin_e, chDash, chLatin_j, chLatin_s, chLatin_o, chLatin_n, chNull }; const unsigned int FunctionParseJSON::minArgs = 1; const unsigned int FunctionParseJSON::maxArgs = 1; /** * xqilla:parse-json($xml as xs:string?) as element()? */ FunctionParseJSON::FunctionParseJSON(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQillaFunction(name, "($xml as xs:string?) as element()?", args, memMgr), queryPathTree_(0) { } ASTNode *FunctionParseJSON::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); _src.setProperties(StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::PEER | StaticAnalysis::SUBTREE | StaticAnalysis::ONENODE); _src.creative(true); calculateSRCForArguments(context); return this; } const XMLCh JSON2XML_json[] = { 'j', 's', 'o', 'n', 0 }; const XMLCh JSON2XML_item[] = { 'i', 't', 'e', 'm', 0 }; const XMLCh JSON2XML_pair[] = { 'p', 'a', 'i', 'r', 0 }; const XMLCh JSON2XML_name[] = { 'n', 'a', 'm', 'e', 0 }; const XMLCh JSON2XML_type[] = { 't', 'y', 'p', 'e', 0 }; const XMLCh JSON2XML_array[] = { 'a', 'r', 'r', 'a', 'y', 0 }; const XMLCh JSON2XML_object[] = { 'o', 'b', 'j', 'e', 'c', 't', 0 }; const XMLCh JSON2XML_string[] = { 's', 't', 'r', 'i', 'n', 'g', 0 }; const XMLCh JSON2XML_boolean[] = { 'b', 'o', 'o', 'l', 'e', 'a', 'n', 0 }; const XMLCh JSON2XML_number[] = { 'n', 'u', 'm', 'b', 'e', 'r', 0 }; const XMLCh JSON2XML_null[] = { 'n', 'u', 'l', 'l', 0 }; struct JSON2XML_Env { EventHandler *handler; enum Type { MAP, ARRAY }; vector stack; void startValue() { if(stack.empty()) { // Do nothing } else if(stack.back() == JSON2XML_Env::ARRAY) { handler->startElementEvent(0, 0, JSON2XML_item); } } void endValue() { if(stack.empty()) { // Do nothing } else if(stack.back() == JSON2XML_Env::MAP) { handler->endElementEvent(0, 0, JSON2XML_pair, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, DocumentCache::g_szUntyped); } else { handler->endElementEvent(0, 0, JSON2XML_item, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, DocumentCache::g_szUntyped); } } }; int json2xml_null(void *ctx) { JSON2XML_Env *env = (JSON2XML_Env*)ctx; env->startValue(); env->handler->attributeEvent(0, 0, JSON2XML_type, JSON2XML_null, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, ATUntypedAtomic::fgDT_UNTYPEDATOMIC); env->endValue(); return 1; } int json2xml_boolean(void * ctx, int boolVal) { JSON2XML_Env *env = (JSON2XML_Env*)ctx; env->startValue(); env->handler->attributeEvent(0, 0, JSON2XML_type, JSON2XML_boolean, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, ATUntypedAtomic::fgDT_UNTYPEDATOMIC); env->handler->textEvent(boolVal ? SchemaSymbols::fgATTVAL_TRUE : SchemaSymbols::fgATTVAL_FALSE); env->endValue(); return 1; } int json2xml_integer(void *ctx, long integerVal) { JSON2XML_Env *env = (JSON2XML_Env*)ctx; char intString[256]; snprintf(intString, 256,"%lld", (xq_int64_t)integerVal); env->startValue(); env->handler->attributeEvent(0, 0, JSON2XML_type, JSON2XML_number, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, ATUntypedAtomic::fgDT_UNTYPEDATOMIC); env->handler->textEvent(X(intString)); env->endValue(); return 1; } int json2xml_double(void *ctx, double doubleVal) { JSON2XML_Env *env = (JSON2XML_Env*)ctx; char doubleString[256]; snprintf(doubleString, 256,"%lf", doubleVal); env->startValue(); env->handler->attributeEvent(0, 0, JSON2XML_type, JSON2XML_number, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, ATUntypedAtomic::fgDT_UNTYPEDATOMIC); env->handler->textEvent(X(doubleString)); env->endValue(); return 1; } int json2xml_string(void *ctx, const unsigned char * stringVal, unsigned int stringLen) { JSON2XML_Env *env = (JSON2XML_Env*)ctx; AutoDeleteArray str(new char[stringLen + 1]); memcpy(str.get(), stringVal, stringLen); str.get()[stringLen] = 0; env->startValue(); env->handler->attributeEvent(0, 0, JSON2XML_type, JSON2XML_string, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, ATUntypedAtomic::fgDT_UNTYPEDATOMIC); env->handler->textEvent(X(str.get())); env->endValue(); return 1; } int json2xml_map_key(void *ctx, const unsigned char * stringVal, unsigned int stringLen) { JSON2XML_Env *env = (JSON2XML_Env*)ctx; AutoDeleteArray str(new char[stringLen + 1]); memcpy(str.get(), stringVal, stringLen); str.get()[stringLen] = 0; env->handler->startElementEvent(0, 0, JSON2XML_pair); env->handler->attributeEvent(0, 0, JSON2XML_name, X(str.get()), SchemaSymbols::fgURI_SCHEMAFORSCHEMA, ATUntypedAtomic::fgDT_UNTYPEDATOMIC); return 1; } int json2xml_start_map(void *ctx) { JSON2XML_Env *env = (JSON2XML_Env*)ctx; env->startValue(); env->handler->attributeEvent(0, 0, JSON2XML_type, JSON2XML_object, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, ATUntypedAtomic::fgDT_UNTYPEDATOMIC); env->stack.push_back(JSON2XML_Env::MAP); return 1; } int json2xml_end_map(void *ctx) { JSON2XML_Env *env = (JSON2XML_Env*)ctx; env->stack.pop_back(); env->endValue(); return 1; } int json2xml_start_array(void *ctx) { JSON2XML_Env *env = (JSON2XML_Env*)ctx; env->startValue(); env->handler->attributeEvent(0, 0, JSON2XML_type, JSON2XML_array, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, ATUntypedAtomic::fgDT_UNTYPEDATOMIC); env->stack.push_back(JSON2XML_Env::ARRAY); return 1; } int json2xml_end_array(void *ctx) { JSON2XML_Env *env = (JSON2XML_Env*)ctx; env->stack.pop_back(); env->endValue(); return 1; } static yajl_callbacks json2xml_callbacks = { json2xml_null, json2xml_boolean, json2xml_integer, json2xml_double, json2xml_string, json2xml_start_map, json2xml_map_key, json2xml_end_map, json2xml_start_array, json2xml_end_array }; void FunctionParseJSON::parseJSON(const XMLCh *jsonString, EventHandler *handler, DynamicContext *context, const LocationInfo *location) { UTF8Str utf8(jsonString); JSON2XML_Env env; env.handler = handler; handler->startElementEvent(0, 0, JSON2XML_json); yajl_parser_config cfg = { 0 }; yajl_handle yajl = yajl_alloc(&json2xml_callbacks, &cfg, &env); yajl_status stat = yajl_parse(yajl, (unsigned char*)utf8.str(), (unsigned int)strlen(utf8.str())); if(stat != yajl_status_ok) { XMLBuffer buf; buf.append(X("JSON ")); unsigned char *str = yajl_get_error(yajl, 1, (unsigned char*)utf8.str(), (unsigned int)strlen(utf8.str())); buf.append(X((char*)str)); yajl_free_error(str); XQThrow3(FunctionException, X("FunctionParseJSON::parseJSON"), buf.getRawBuffer(), location); } handler->endElementEvent(0, 0, JSON2XML_json, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, DocumentCache::g_szUntyped); } Sequence FunctionParseJSON::createSequence(DynamicContext* context, int flags) const { Item::Ptr item = getParamNumber(1, context)->next(context); if(item.isNull()) return Sequence(context->getMemoryManager()); AutoDelete builder(context->createSequenceBuilder()); QueryPathTreeFilter qptf(queryPathTree_, builder.get()); EventHandler *handler = queryPathTree_ ? (EventHandler*)&qptf : (EventHandler*)builder.get(); parseJSON(item->asString(context), handler, context, this); handler->endEvent(); return builder->getSequence(); } XQilla-2.3.0/src/functions/FunctionCodepointsToString.cpp0000644000151400015140000000642511653565523020457 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionCodepointsToString::name[] = { chLatin_c, chLatin_o, chLatin_d, chLatin_e, chLatin_p, chLatin_o, chLatin_i, chLatin_n, chLatin_t, chLatin_s, chDash, chLatin_t, chLatin_o, chDash, chLatin_s, chLatin_t, chLatin_r, chLatin_i, chLatin_n, chLatin_g, chNull }; const unsigned int FunctionCodepointsToString::minArgs = 1; const unsigned int FunctionCodepointsToString::maxArgs = 1; /** * fn:codepoints-to-string($srcval as integer*) => string * Creates a string from a sequence of codepoints. **/ FunctionCodepointsToString::FunctionCodepointsToString(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($srcval as xs:integer*) as xs:string", args, memMgr) // 1 argument { } Sequence FunctionCodepointsToString::createSequence(DynamicContext* context, int flags) const { XMLBuffer result(1023, context->getMemoryManager()); Sequence arg = getParamNumber(1,context)->toSequence(context); Sequence::iterator end = arg.end(); for(Sequence::iterator i = arg.begin(); i != end; ++i) { XMLInt32 ch=((const ATDecimalOrDerived::Ptr)*i)->treatAsCodepoint(context); if ( ch >= 0x10000) { XMLCh one, two; RegxUtil::decomposeToSurrogates(ch, one, two); result.append(one); result.append(two); } else result.append((XMLCh)ch); } unsigned int len = (unsigned int) result.getLen(); const XMLCh* str=result.getRawBuffer(); for(unsigned int j=0;jgetItemFactory()->createString(str, context), context->getMemoryManager()); } XQilla-2.3.0/src/functions/FunctionPosition.cpp0000644000151400015140000000452111653565523016455 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionPosition::name[] = { chLatin_p, chLatin_o, chLatin_s, chLatin_i, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chNull }; const unsigned int FunctionPosition::minArgs = 0; const unsigned int FunctionPosition::maxArgs = 0; /** * fn:position() as xs:integer */ FunctionPosition::FunctionPosition(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "() as xs:integer", args, memMgr) { } ASTNode *FunctionPosition::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); if(context && !context->getContextItemType().containsType(StaticType::ITEM_TYPE)) { XQThrow(DynamicErrorException,X("XQContextItem::staticTyping"), X("It is an error for the context item to be undefined when using it [err:XPDY0002]")); } _src.contextPositionUsed(true); calculateSRCForArguments(context); return this; } Result FunctionPosition::createResult(DynamicContext* context, int flags) const { if(context->getContextItem().isNull()) XQThrow(DynamicErrorException,X("FunctionPosition::createSequence"), X("Undefined context item in fn:position [err:XPDY0002]")); return (Item::Ptr)context->getItemFactory()->createInteger((long)context->getContextPosition(), context); } XQilla-2.3.0/src/functions/FunctionUnordered.cpp0000644000151400015140000000431711653565523016603 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include const XMLCh FunctionUnordered::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionUnordered::minArgs = 1; const unsigned int FunctionUnordered::maxArgs = 1; /** * fn:unordered($sourceSeq as item()*) as item()* **/ FunctionUnordered::FunctionUnordered(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($sourceSeq as item()*) as item()*", args, memMgr) { } ASTNode* FunctionUnordered::staticResolution(StaticContext *context) { AutoNodeSetOrderingReset orderReset(context); resolveArguments(context); return this; } ASTNode *FunctionUnordered::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context); _src.getStaticType() = _args.front()->getStaticAnalysis().getStaticType(); return this; } Result FunctionUnordered::createResult(DynamicContext* context, int flags) const { return getParamNumber(1,context); } XQilla-2.3.0/src/functions/FunctionTime.cpp0000644000151400015140000001102511653565523015544 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionTime::name[] = { chLatin_t, chLatin_i, chLatin_m, chLatin_e, chNull }; const unsigned int FunctionTime::minArgs = 2; const unsigned int FunctionTime::maxArgs = 2; /** * xqilla:time($value as item()*, $label as xs:string) as item()* */ FunctionTime::FunctionTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQillaFunction(name, "($value as item()*, $label as xs:string) as item()*", args, memMgr) { } ASTNode *FunctionTime::staticTypingImpl(StaticContext *context) { _src.clear(); _src.copy(_args[0]->getStaticAnalysis()); _src.add(_args[1]->getStaticAnalysis()); if(_args[1]->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("XQFunction::staticTyping"), X("It is a static error for an argument to a function " "to be an updating expression [err:XUST0001]")); } _src.forceNoFolding(true); return this; } class Timer { public: Timer(const XMLCh *label, DynamicContext *context, const LocationInfo *location, bool startNow = true) : label_(label), context_(context), location_(location), startTime_(0), totalTime_(0) { if(startNow) start(); } ~Timer() { end(); if(context_->getMessageListener() != 0) { Sequence value(context_->getItemFactory()->createDayTimeDuration(((double)totalTime_) / 1000, context_), context_->getMemoryManager()); context_->getMessageListener()->trace(label_, value, location_, context_); } } void start() { if(startTime_ == 0) startTime_ = XMLPlatformUtils::getCurrentMillis(); } void end() { if(startTime_ != 0) totalTime_ += XMLPlatformUtils::getCurrentMillis() - startTime_; startTime_ = 0; } private: const XMLCh *label_; DynamicContext *context_; const LocationInfo *location_; unsigned long startTime_; unsigned long totalTime_; }; class TimerGuard { public: TimerGuard(Timer *timer) : timer_(timer) { timer_->start(); } ~TimerGuard() { timer_->end(); } private: Timer *timer_; }; class FunctionTimeResult : public ResultImpl { public: FunctionTimeResult(const FunctionTime *ast, DynamicContext *context) : ResultImpl(ast), timer_(new Timer(ast->getArguments()[1]->createResult(context)-> next(context)->asString(context), context, ast)), result_(0) { TimerGuard tGuard(timer_); result_ = ast->getArguments()[0]->createResult(context); } virtual Item::Ptr next(DynamicContext *context) { TimerGuard tGuard(timer_); return result_->next(context); } virtual std::string asString(DynamicContext *context, int indent) const { return ""; } private: AutoDelete timer_; Result result_; }; Result FunctionTime::createResult(DynamicContext* context, int flags) const { return new FunctionTimeResult(this, context); } EventGenerator::Ptr FunctionTime::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { Timer timer(getParamNumber(2, context)->next(context)->asString(context), context, this); _args[0]->generateAndTailCall(events, context, preserveNS, preserveType); return 0; } PendingUpdateList FunctionTime::createUpdateList(DynamicContext *context) const { Timer timer(getParamNumber(2, context)->next(context)->asString(context), context, this); return _args[0]->createUpdateList(context); } XQilla-2.3.0/src/functions/FunctionNilled.cpp0000644000151400015140000000405111653565523016056 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionNilled::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_l, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_l, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionNilled::minArgs = 1; const unsigned int FunctionNilled::maxArgs = 1; /* * fn:nilled($arg as node()?) as boolean? */ FunctionNilled::FunctionNilled(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as node()?) as xs:boolean?", args, memMgr) { } Sequence FunctionNilled::createSequence(DynamicContext* context, int flags) const { Sequence arg = getParamNumber(1, context)->toSequence(context); // If the argument is the empty sequence, returns the empty sequence if(arg.isEmpty()) return Sequence(context->getMemoryManager()); Node::Ptr node=(Node::Ptr)arg.first(); return Sequence(node->dmNilled(context), context->getMemoryManager()); } XQilla-2.3.0/src/functions/FunctionNormalizeUnicode.cpp0000644000151400015140000001227611653565523020126 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif const XMLCh FunctionNormalizeUnicode::name[] = { chLatin_n, chLatin_o, chLatin_r, chLatin_m, chLatin_a, chLatin_l, chLatin_i, chLatin_z, chLatin_e, chDash, chLatin_u, chLatin_n, chLatin_i, chLatin_c, chLatin_o, chLatin_d, chLatin_e, chNull }; const unsigned int FunctionNormalizeUnicode::minArgs = 1; const unsigned int FunctionNormalizeUnicode::maxArgs = 2; /** * fn:normalize-unicode($arg as xs:string?) as xs:string * fn:normalize-unicode($arg as xs:string?, $normalizationForm as xs:string) as xs:string **/ FunctionNormalizeUnicode::FunctionNormalizeUnicode(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:string?, $normalizationForm as xs:string) as xs:string", args, memMgr) { } Sequence FunctionNormalizeUnicode::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Sequence strParm=getParamNumber(1,context)->toSequence(context); if(strParm.isEmpty()) { return Sequence(context->getItemFactory()->createString(XMLUni::fgZeroLenString, context), memMgr); } const XMLCh *str = strParm.first()->asString(context); static const XMLCh fg_NFC[] = { chLatin_N, chLatin_F, chLatin_C, chNull }; static const XMLCh fg_NFD[] = { chLatin_N, chLatin_F, chLatin_D, chNull }; static const XMLCh fg_NFKC[] = { chLatin_N, chLatin_F, chLatin_K, chLatin_C, chNull }; static const XMLCh fg_NFKD[] = { chLatin_N, chLatin_F, chLatin_K, chLatin_D, chNull }; static const XMLCh fg_fully[] = { chLatin_F, chLatin_U, chLatin_L, chLatin_L, chLatin_Y, chDash, chLatin_N, chLatin_O, chLatin_R, chLatin_M, chLatin_A, chLatin_L, chLatin_I, chLatin_Z, chLatin_E, chLatin_D, chNull }; const XMLCh* normalization = fg_NFC; if(getNumArgs()==2) { Sequence normParam=getParamNumber(2,context)->toSequence(context); const XMLCh *src = normParam.first()->asString(context); normalization = XPath2Utils::toUpper(src, memMgr); if (XMLString::stringLen(normalization) > 0) { unsigned int i; // remove leading spaces for(i = 0; i < XMLString::stringLen(normalization); i++) { XMLCh ch = normalization[i]; if((ch != 0x9) && (ch != 0xA) && (ch != 0xD) && (ch != 0x20)) break; } const XMLCh *frontChop = XPath2Utils::subString(normalization, i, XPath2Utils::uintStrlen(normalization)-i, memMgr); // remove trailing spaces for(i = XPath2Utils::uintStrlen(frontChop)-1; i !=0 ; i--) { XMLCh ch = frontChop[i]; if((ch != 0x9) && (ch != 0xA) && (ch != 0xD) && (ch != 0x20)) break; } normalization = XPath2Utils::subString(frontChop, 0, i+1, memMgr); } } if(XMLString::stringLen(normalization) == 0) { return Sequence(context->getItemFactory()->createString(str, context), memMgr); } else { AutoDeallocate buf(0, memMgr); if(XPath2Utils::equals(normalization, fg_NFC)) { buf.set(UnicodeTransformer::normalizeC(str, memMgr)); } else if(XPath2Utils::equals(normalization, fg_NFD)) { buf.set(UnicodeTransformer::normalizeD(str, memMgr)); } else if(XPath2Utils::equals(normalization, fg_NFKC)) { buf.set(UnicodeTransformer::normalizeKC(str, memMgr)); } else if(XPath2Utils::equals(normalization, fg_NFKD)) { buf.set(UnicodeTransformer::normalizeKD(str, memMgr)); } else if(XPath2Utils::equals(normalization, fg_fully)) { XQThrow(FunctionException, X("FunctionNormalizeUnicode::createSequence"), X("Unsupported normalization form [err:FOCH0003].")); } else { XQThrow(FunctionException, X("FunctionNormalizeUnicode::createSequence"), X("Invalid normalization form [err:FOCH0003].")); } return Sequence(context->getItemFactory()->createString(buf.get(), context), memMgr); } // Never reached return Sequence(memMgr); } XQilla-2.3.0/src/functions/EXSLTMathFunction.cpp0000644000151400015140000000253111653565523016361 00000000000000/* * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include XERCES_CPP_NAMESPACE_USE /* http://exslt.org/math */ const XMLCh EXSLTMathFunction::XMLChFunctionURI[] = { chLatin_h, chLatin_t, chLatin_t, chLatin_p, chColon, chForwardSlash, chForwardSlash, chLatin_e, chLatin_x, chLatin_s, chLatin_l, chLatin_t, chPeriod, chLatin_o, chLatin_r, chLatin_g, chForwardSlash, chLatin_m, chLatin_a, chLatin_t, chLatin_h, chNull }; EXSLTMathFunction::EXSLTMathFunction(const XMLCh* name, const char *signature, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : NumericFunction(name, signature, args, memMgr) { uri_ = XMLChFunctionURI; } XQilla-2.3.0/src/functions/FunctionTokenize.cpp0000644000151400015140000001377511653565523016454 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif const XMLCh FunctionTokenize::name[] = { chLatin_t, chLatin_o, chLatin_k, chLatin_e, chLatin_n, chLatin_i, chLatin_z, chLatin_e, chNull }; const unsigned int FunctionTokenize::minArgs = 2; const unsigned int FunctionTokenize::maxArgs = 3; /** * fn:tokenize($input as xs:string?, $pattern as xs:string) as xs:string* * fn:tokenize($input as xs:string?, $pattern as xs:string, $flags as xs:string) as xs:string* */ FunctionTokenize::FunctionTokenize(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : RegExpFunction(name, "($input as xs:string?, $pattern as xs:string, $flags as xs:string) as xs:string*", args, memMgr) { } ASTNode *FunctionTokenize::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context); //either there are 2 args, and regexp should be a constant, //or there is a flags argument as well, and it should also be a constant if(context && !regExp_ && _args[1]->isConstant() && (getNumArgs() == 2 || (getNumArgs() == 3 && _args[2]->isConstant()))) { XPath2MemoryManager* memMgr = context->getMemoryManager(); AutoDelete dContext(context->createDynamicContext()); dContext->setMemoryManager(memMgr); Item::Ptr patternItem = getParamNumber(2, dContext)->next(dContext); pattern_ = (XMLCh*) patternItem->asString(dContext); options_ = (XMLCh*) XMLUni::fgZeroLenString; if(getNumArgs() == 3) { Item::Ptr optsItem = getParamNumber(3, dContext)->next(dContext); options_ = (XMLCh*) optsItem->asString(dContext); checkRegexpOpts(options_, "FunctionTokenize::staticTypingImpl"); } // Always turn off head character optimisation, since it is broken XMLBuffer optionsBuf; optionsBuf.set(options_); optionsBuf.append(chLatin_H); try { regExp_ = new (memMgr) RegularExpression(pattern_, optionsBuf.getRawBuffer(), memMgr); if(regExp_->matches(XMLUni::fgZeroLenString)) XQThrow(FunctionException, X("FunctionTokenize::staticTypingImpl"), X("The pattern matches the zero-length string [err:FORX0003]")); } catch (ParseException &e){ processParseException(e, "FunctionTokenize::staticTypingImpl", memMgr); } } return this; } Sequence FunctionTokenize::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); // If the value of $operand1 is the empty sequence, the empty sequence is returned. Item::Ptr inputString = getParamNumber(1,context)->next(context); if(inputString.isNull()) return Sequence(memMgr); const XMLCh *input=inputString->asString(context); // If the value of $operand1 is the zero-length string, the empty sequence is returned. if(XPath2Utils::equals(input, XMLUni::fgZeroLenString)) return Sequence(memMgr); //Now attempt to tokenize AutoDelete > toks(0); if(regExp_) { try { toks.set(regExp_->tokenize(input)); } catch (RuntimeException &e){ processRuntimeException(e, "FunctionReplace::createSequence"); } } else { const XMLCh *pattern=getParamNumber(2,context)->next(context)->asString(context); const XMLCh *options = XMLUni::fgZeroLenString; if(getNumArgs()>2) options=getParamNumber(3,context)->next(context)->asString(context); //Check that the options are valid - throw an exception if not (can have s,m,i and x) //Note: Are allowed to duplicate the letters. checkRegexpOpts(options, "FunctionTokenize::createSequence"); try { // Always turn off head character optimisation, since it is broken XMLBuffer optionsBuf(1023, context->getMemoryManager()); optionsBuf.set(options); optionsBuf.append(chLatin_H); RegularExpression regEx(pattern, optionsBuf.getRawBuffer(), memMgr); if(regEx.matches(XMLUni::fgZeroLenString)) XQThrow(FunctionException, X("FunctionTokenize::createSequence"), X("The pattern matches the zero-length string [err:FORX0003]")); toks.set(regEx.tokenize(input)); } catch (ParseException &e){ processParseException(e, "FunctionTokenize::createSequence", memMgr); } catch (RuntimeException &e){ processRuntimeException(e, "FunctionTokenize::createSequence"); } } Sequence resultSeq(toks->size(),memMgr); for(unsigned int i = 0; i < toks->size(); ++i){ resultSeq.addItem(context->getItemFactory()->createString(toks->elementAt(i), context)); } return resultSeq; } void FunctionTokenize::processRuntimeException(RuntimeException &e, const char* sourceMsg) const { if(e.getCode()==XMLExcepts::Regex_InvalidRepPattern) XQThrow(FunctionException, X(sourceMsg), X("Invalid replacement pattern [err:FORX0004]")); else XQThrow(FunctionException, X(sourceMsg), e.getMessage()); } XQilla-2.3.0/src/functions/FunctionReplace.cpp0000644000151400015140000001612111653565523016223 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif const XMLCh FunctionReplace::name[] = { chLatin_r, chLatin_e, chLatin_p, chLatin_l, chLatin_a, chLatin_c, chLatin_e, chNull }; const unsigned int FunctionReplace::minArgs = 3; const unsigned int FunctionReplace::maxArgs = 4; /** * fn:replace($input as xs:string?, $pattern as xs:string, $replacement as xs:string) as xs:string * fn:replace($input as xs:string?, $pattern as xs:string, $replacement as xs:string, $flags as xs:string) as xs:string */ FunctionReplace::FunctionReplace(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : RegExpFunction(name, "($input as xs:string?, $pattern as xs:string, $replacement as xs:string, $flags as xs:string) as xs:string", args, memMgr) { } ASTNode *FunctionReplace::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context); //either there are 3 args, and regexp should be a constant, //or there is a flags argument as well, and it should also be a constant if(context && !regExp_ && _args[1]->isConstant() && (getNumArgs() == 3 || (getNumArgs() == 4 && _args[3]->isConstant()))) { XPath2MemoryManager* memMgr = context->getMemoryManager(); AutoDelete dContext(context->createDynamicContext()); dContext->setMemoryManager(memMgr); Item::Ptr patternItem = getParamNumber(2, dContext)->next(dContext); pattern_ = (XMLCh*) patternItem->asString(dContext); options_ = (XMLCh*) XMLUni::fgZeroLenString; if(getNumArgs() == 4) { Item::Ptr optsItem = getParamNumber(4, dContext)->next(dContext); options_ = (XMLCh*) optsItem->asString(dContext); checkRegexpOpts(options_, "FunctionReplace::staticTypingImpl"); } // Always turn off head character optimisation, since it is broken XMLBuffer optionsBuf; optionsBuf.set(options_); optionsBuf.append(chLatin_H); try { regExp_ = new (memMgr) RegularExpression(pattern_, optionsBuf.getRawBuffer(), memMgr); } catch (ParseException &e){ processParseException(e, "FunctionReplace::staticTypingImpl", memMgr); } } return this; } Sequence FunctionReplace::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); const XMLCh* input = XMLUni::fgZeroLenString; Item::Ptr inputString = getParamNumber(1,context)->next(context); if(inputString.notNull()) input = inputString->asString(context); const XMLCh *replacement = getParamNumber(3,context)->next(context)->asString(context); const XMLCh *ptr; for(ptr = replacement; *ptr != chNull; ++ptr) { if(*ptr == chDollarSign) { ++ptr; //check that after the '$' is a digit if(!XMLString::isDigit(*ptr)) XQThrow(FunctionException, X("FunctionReplace::createSequence"), X("Invalid replacement pattern - '$' without following digit [err:FORX0004]")); } else if(*ptr == chBackSlash) { ++ptr; //check that after the '\' is a '$' or '\' if(*ptr != chDollarSign && *ptr != chBackSlash) { XQThrow(FunctionException, X("FunctionReplace::createSequence"), X("Invalid replacement pattern - '\\' without following '$' or '\\' [err:FORX0004]")); } } } if(regExp_) { try { AutoDeallocate result(replace(input, regExp_, replacement, memMgr), memMgr); return Sequence(context->getItemFactory()->createString(result.get(), context), memMgr); } catch (RuntimeException &e){ processRuntimeException(e, "FunctionReplace::createSequence"); } } //get here if regExp has not been compiled before const XMLCh *pattern = getParamNumber(2,context)->next(context)->asString(context); const XMLCh *options = XMLUni::fgZeroLenString; if(getNumArgs()>3) options=getParamNumber(4,context)->next(context)->asString(context); //Check that the options are valid - throw an exception if not (can have s,m,i and x) //Note: Are allowed to duplicate the letters. checkRegexpOpts(options, "FunctionReplace::createSequence"); // Now attempt to replace try { AutoDeallocate result(replace(input, pattern, replacement, options, memMgr), memMgr); return Sequence(context->getItemFactory()->createString(result.get(), context), memMgr); } catch (ParseException &e){ processParseException(e, "FunctionReplace::createSequence", memMgr); } catch (RuntimeException &e){ processRuntimeException(e, "FunctionReplace::createSequence"); } // Never happens return Sequence(memMgr); } const XMLCh *FunctionReplace::replace(const XMLCh *input, const XMLCh *pattern, const XMLCh *replacement, const XMLCh *options, MemoryManager *mm) { // Always turn off head character optimisation, since it is broken XMLBuffer optionsBuf; optionsBuf.set(options); optionsBuf.append(chLatin_H); //Now attempt to replace RegularExpression regEx(pattern, optionsBuf.getRawBuffer(), mm); #ifdef HAVE_ALLMATCHES return regEx.replace(input, replacement, mm); #else return regEx.replace(input, replacement); #endif } const XMLCh *FunctionReplace::replace(const XMLCh *input, const RegularExpression* regExp, const XMLCh *replacement, MemoryManager *mm) { #ifdef HAVE_ALLMATCHES return regExp->replace(input, replacement, mm); #else return regExp->replace(input, replacement); #endif } void FunctionReplace::processRuntimeException(RuntimeException &e, const char* sourceMsg) const { if(e.getCode()==XMLExcepts::Regex_RepPatMatchesZeroString) XQThrow(FunctionException, X(sourceMsg), X("The pattern matches the zero-length string [err:FORX0003]")); else if(e.getCode()==XMLExcepts::Regex_InvalidRepPattern) XQThrow(FunctionException, X(sourceMsg), X("Invalid replacement pattern [err:FORX0004]")); else XQThrow(FunctionException, X(sourceMsg), e.getMessage()); } XQilla-2.3.0/src/functions/BuiltInModules.cpp0000644000151400015140000000175511653565523016050 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include "CoreModule.hpp" #include "FnModule.hpp" XERCES_CPP_NAMESPACE_USE; const DelayedModule &BuiltInModules::core = core_module; const DelayedModule &BuiltInModules::fn = fn_module; XQilla-2.3.0/src/functions/FunctionDistinctValues.cpp0000644000151400015140000002132011653565523017606 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif const XMLCh FunctionDistinctValues::name[] = { chLatin_d, chLatin_i, chLatin_s, chLatin_t, chLatin_i, chLatin_n, chLatin_c, chLatin_t, chDash, chLatin_v, chLatin_a, chLatin_l, chLatin_u, chLatin_e, chLatin_s, chNull }; const unsigned int FunctionDistinctValues::minArgs = 1; const unsigned int FunctionDistinctValues::maxArgs = 2; /** * fn:distinct-values($arg as xs:anyAtomicType*) as xs:anyAtomicType* * fn:distinct-values($arg as xs:anyAtomicType*, $collation as xs:string) as xs:anyAtomicType* **/ FunctionDistinctValues::FunctionDistinctValues(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:anyAtomicType*, $collation as xs:string) as xs:anyAtomicType*", args, memMgr) { } ASTNode *FunctionDistinctValues::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context); _src.getStaticType() = _args.front()->getStaticAnalysis().getStaticType(); _src.getStaticType().setCardinality(_src.getStaticType().getMin() == 0 ? 0 : 1, _src.getStaticType().getMax()); return this; } static inline AnyAtomicType::AtomicObjectType getSortType(const AnyAtomicType::Ptr &a) { switch(a->getPrimitiveTypeIndex()) { case AnyAtomicType::ANY_URI: case AnyAtomicType::UNTYPED_ATOMIC: case AnyAtomicType::STRING: return AnyAtomicType::STRING; case AnyAtomicType::DECIMAL: case AnyAtomicType::FLOAT: case AnyAtomicType::DOUBLE: return AnyAtomicType::DOUBLE; case AnyAtomicType::DAY_TIME_DURATION: case AnyAtomicType::YEAR_MONTH_DURATION: case AnyAtomicType::DURATION: return AnyAtomicType::DURATION; case AnyAtomicType::BASE_64_BINARY: return AnyAtomicType::BASE_64_BINARY; case AnyAtomicType::BOOLEAN: return AnyAtomicType::BOOLEAN; case AnyAtomicType::DATE: return AnyAtomicType::DATE; case AnyAtomicType::DATE_TIME: return AnyAtomicType::DATE_TIME; case AnyAtomicType::G_DAY: return AnyAtomicType::G_DAY; case AnyAtomicType::G_MONTH: return AnyAtomicType::G_MONTH; case AnyAtomicType::G_MONTH_DAY: return AnyAtomicType::G_MONTH_DAY; case AnyAtomicType::G_YEAR: return AnyAtomicType::G_YEAR; case AnyAtomicType::G_YEAR_MONTH: return AnyAtomicType::G_YEAR_MONTH; case AnyAtomicType::HEX_BINARY: return AnyAtomicType::HEX_BINARY; case AnyAtomicType::NOTATION: return AnyAtomicType::NOTATION; case AnyAtomicType::QNAME: return AnyAtomicType::QNAME; case AnyAtomicType::TIME: return AnyAtomicType::TIME; default: break; } assert(false); // Not supported return AnyAtomicType::STRING; } struct dvCompare { dvCompare(const Collation *collation, const DynamicContext *context) : collation_(collation), context_(context) {} bool operator()(const AnyAtomicType::Ptr &a, const AnyAtomicType::Ptr &b) const { AnyAtomicType::AtomicObjectType atype = getSortType(a); AnyAtomicType::AtomicObjectType btype = getSortType(b); if(atype != btype) return atype < btype; // Items are comparable switch(atype) { case AnyAtomicType::STRING: return collation_->compare(a->asString(context_), b->asString(context_)) < 0; case AnyAtomicType::DOUBLE: return ((const Numeric *)a.get())->compare((const Numeric *)b.get(), context_) < 0; case AnyAtomicType::DURATION: return ((const ATDurationOrDerived *)a.get())->compare((const ATDurationOrDerived *)b.get(), context_) < 0; case AnyAtomicType::BASE_64_BINARY: return ((const ATBase64BinaryOrDerived *)a.get())->compare((const ATBase64BinaryOrDerived *)b.get(), context_) < 0; case AnyAtomicType::BOOLEAN: return ((const ATBooleanOrDerived *)a.get())->compare((const ATBooleanOrDerived *)b.get(), context_) < 0; case AnyAtomicType::DATE: return ((const ATDateOrDerived *)a.get())->compare((const ATDateOrDerived *)b.get(), context_) < 0; case AnyAtomicType::DATE_TIME: return ((const ATDateTimeOrDerived *)a.get())->compare((const ATDateTimeOrDerived *)b.get(), context_) < 0; case AnyAtomicType::G_DAY: return ((const ATGDayOrDerived *)a.get())->compare((const ATGDayOrDerived *)b.get(), context_) < 0; case AnyAtomicType::G_MONTH: return ((const ATGMonthOrDerived *)a.get())->compare((const ATGMonthOrDerived *)b.get(), context_) < 0; case AnyAtomicType::G_MONTH_DAY: return ((const ATGMonthDayOrDerived *)a.get())->compare((const ATGMonthDayOrDerived *)b.get(), context_) < 0; case AnyAtomicType::G_YEAR: return ((const ATGYearOrDerived *)a.get())->compare((const ATGYearOrDerived *)b.get(), context_) < 0; case AnyAtomicType::G_YEAR_MONTH: return ((const ATGYearMonthOrDerived *)a.get())->compare((const ATGYearMonthOrDerived *)b.get(), context_) < 0; case AnyAtomicType::HEX_BINARY: return ((const ATHexBinaryOrDerived *)a.get())->compare((const ATHexBinaryOrDerived *)b.get(), context_) < 0; case AnyAtomicType::NOTATION: return ((const ATNotationOrDerived *)a.get())->compare((const ATNotationOrDerived *)b.get(), context_) < 0; case AnyAtomicType::QNAME: return ((const ATQNameOrDerived *)a.get())->compare((const ATQNameOrDerived *)b.get(), context_) < 0; case AnyAtomicType::TIME: return ((const ATTimeOrDerived *)a.get())->compare((const ATTimeOrDerived *)b.get(), context_) < 0; default: break; } assert(false); return false; } const Collation *collation_; const DynamicContext *context_; }; typedef std::set DistinctSet; class DistinctValueResult : public ResultImpl { public: DistinctValueResult(const FunctionDistinctValues *fdv, const DynamicContext *context); ~DistinctValueResult(); Item::Ptr next(DynamicContext *context); private: const FunctionDistinctValues *fdv_; Result parent_; bool toDo_; DistinctSet *alreadySeen_; }; DistinctValueResult::DistinctValueResult(const FunctionDistinctValues *fdv, const DynamicContext *context) : ResultImpl(fdv), fdv_(fdv), parent_(0), toDo_(true), alreadySeen_(0) { } DistinctValueResult::~DistinctValueResult() { delete alreadySeen_; } Item::Ptr DistinctValueResult::next(DynamicContext *context) { if(toDo_) { toDo_ = false; parent_ = fdv_->getParamNumber(1, context); Collation *collation; if(fdv_->getNumArgs() > 1) { const XMLCh* collName = fdv_->getParamNumber(2, context)->next(context)->asString(context); try { context->getItemFactory()->createAnyURI(collName, context); } catch(XPath2ErrorException &e) { XQThrow(FunctionException, X("FunctionDistinctValues::DistinctValueResult::next"), X("Invalid collationURI")); } collation = context->getCollation(collName, this); } else collation = context->getDefaultCollation(this); alreadySeen_ = new DistinctSet(dvCompare(collation, context)); } AnyAtomicType::Ptr item; while(true) { item = (const AnyAtomicType *)parent_->next(context).get(); if(item.isNull()) break; if(alreadySeen_->insert(item).second) return item; } parent_ = 0; return 0; } Result FunctionDistinctValues::createResult(DynamicContext* context, int flags) const { return new DistinctValueResult(this, context); } XQilla-2.3.0/src/functions/RegExpFunction.cpp0000644000151400015140000000515011653565523016042 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif RegExpFunction::RegExpFunction(const XMLCh* name, const char *signature, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, signature, args, memMgr), regExp_(0), pattern_(0), options_(0) { } void RegExpFunction::checkRegexpOpts(const XMLCh* opts, const char* sourceMsg) const { const XMLCh* cursor = opts; for(; *cursor != 0; ++cursor){ switch(*cursor) { case chLatin_s: case chLatin_m: case chLatin_i: case chLatin_x: break; default: XQThrow(FunctionException, X(sourceMsg),X("Invalid regular expression flags [err:FORX0001].")); } } } void RegExpFunction::processParseException(ParseException &e, const char* sourceMsg, XPath2MemoryManager* memMgr) const { XMLBuffer buf(1023, memMgr); buf.set(X("Invalid regular expression: ")); buf.append(e.getMessage()); buf.append(X(" [err:FORX0002]")); XQThrow(FunctionException, X(sourceMsg), buf.getRawBuffer()); } void RegExpFunction::copyRegExp(RegExpFunction* source, XPath2MemoryManager* memMgr) { if(source->regExp_) { pattern_ = memMgr->getPooledString(source->pattern_); options_ = memMgr->getPooledString(source->options_); // Always turn off head character optimisation, since it is broken XMLBuffer optionsBuf; optionsBuf.set(options_); optionsBuf.append(chLatin_H); //compiling regexp again try { regExp_ = new (memMgr) RegularExpression(pattern_, optionsBuf.getRawBuffer(), memMgr); } catch (ParseException &e){ processParseException(e, "RegExpFunction::copyRegExp", memMgr); } } } XQilla-2.3.0/src/functions/FunctionUnparsedText.cpp0000644000151400015140000001517211653565523017303 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; using namespace std; const XMLCh FunctionUnparsedText::name[] = { chLatin_u, chLatin_n, chLatin_p, chLatin_a, chLatin_r, chLatin_s, chLatin_e, chLatin_d, chDash, chLatin_t, chLatin_e, chLatin_x, chLatin_t, chNull }; const unsigned int FunctionUnparsedText::minArgs = 1; const unsigned int FunctionUnparsedText::maxArgs = 2; /** * fn:unparsed-text($href as xs:string?) as xs:string? * fn:unparsed-text($href as xs:string?, $encoding as xs:string) as xs:string? **/ FunctionUnparsedText::FunctionUnparsedText(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($href as xs:string?, $encoding as xs:string) as xs:string?", args, memMgr) { } ASTNode *FunctionUnparsedText::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); _src.availableDocumentsUsed(true); calculateSRCForArguments(context); return this; } class FindXMLEncoding : private EventHandler { public: const XMLCh *start(InputSource &src, DynamicContext *context) { encoding_ = 0; mm_ = context->getMemoryManager(); try { const_cast(context->getDocumentCache())->parseDocument(src, this, context); } catch(...) { } return encoding_; } private: const XMLCh *encoding_; XPath2MemoryManager *mm_; virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding) { encoding_ = mm_->getPooledString(encoding); throw "Done"; } virtual void endDocumentEvent() {} virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri) {} virtual void endEvent() {} virtual void piEvent(const XMLCh *target, const XMLCh *value) {} virtual void commentEvent(const XMLCh *value) {} virtual void atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) {} virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname){} virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName) {} virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) {} virtual void textEvent(const XMLCh *value) {} virtual void textEvent(const XMLCh *chars, unsigned int length) {} }; Sequence FunctionUnparsedText::createSequence(DynamicContext* context, int flags) const { Item::Ptr uriArg = getParamNumber(1, context)->next(context); if(uriArg.isNull()) { return Sequence(context->getMemoryManager()); } const XMLCh *uri = uriArg->asString(context); if(!XPath2Utils::isValidURI(uri, context->getMemoryManager())) XQThrow(FunctionException, X("FunctionUnparsedText::createSequence"), X("The argument to fn:unparsed-text() is not a valid URI [err:XTDE1170]")); // TBD Implement a URIResolver method for resolving unparsed text - jpcs const XMLCh *baseUri = context->getBaseURI(); InputSource *srcToUse = 0; if(context->getXMLEntityResolver()){ XMLResourceIdentifier resourceIdentifier(XMLResourceIdentifier::UnKnown, uri, 0, XMLUni::fgZeroLenString, baseUri); srcToUse = context->getXMLEntityResolver()->resolveEntity(&resourceIdentifier); } if(srcToUse == 0) { try { // Resolve the uri against the base uri XMLURL urlTmp; if(baseUri && *baseUri) { urlTmp.setURL(baseUri, uri); } else { urlTmp.setURL(uri); } srcToUse = new URLInputSource(urlTmp); } catch(const MalformedURLException &e) { } } if(srcToUse == 0) { // It's not a URL, so let's assume it's a local file name. if(baseUri && *baseUri) { AutoDeallocate tmpBuf(XMLPlatformUtils::weavePaths(baseUri, uri), XMLPlatformUtils::fgMemoryManager); srcToUse = new LocalFileInputSource(tmpBuf); } else { srcToUse = new LocalFileInputSource(uri); } } Janitor janIS(srcToUse); if(getNumArgs() == 2) { const XMLCh *encoding = getParamNumber(2, context)->next(context)->asString(context); srcToUse->setEncoding(encoding); } XMLBuffer result; try { BinInputStream *stream = srcToUse->makeStream(); if(stream == NULL) { XMLBuffer buf; buf.set(X("Cannot read unparsed content from ")); buf.append(uri); buf.append(X(" [err:XTDE1170]")); XQThrow2(FunctionException,X("FunctionUnparsedText::createSequence"), buf.getRawBuffer()); } Janitor janStream(stream); #ifdef HAVE_GETCONTENTTYPE if(FunctionMatches::matches(stream->getContentType(), X("(text|application)/(xml|[^ +;]+\\+xml)"), X("i"))) { srcToUse->setEncoding(0); srcToUse->setEncoding(FindXMLEncoding().start(*srcToUse, context)); } #endif XPath2Utils::readSource(stream, context->getMemoryManager(), result, srcToUse->getEncoding()); } catch(XMLException &e) { XMLBuffer buf; buf.set(X("Exception reading unparsed content: ")); buf.append(e.getMessage()); buf.append(X(" [err:XTDE1190]")); XQThrow2(FunctionException,X("FunctionUnparsedText::createSequence"), buf.getRawBuffer()); } return Sequence(context->getItemFactory()->createString(result.getRawBuffer(), context), context->getMemoryManager()); } XQilla-2.3.0/src/functions/FunctionStringToCodepoints.cpp0000644000151400015140000000512411653565523020452 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include /*string-to-codepoints*/ const XMLCh FunctionStringToCodepoints::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_g, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_p, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionStringToCodepoints::minArgs = 1; const unsigned int FunctionStringToCodepoints::maxArgs = 1; /** * fn:string-to-codepoints( $arg as xs:string?) as xs:integer* **/ FunctionStringToCodepoints::FunctionStringToCodepoints(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:string?) as xs:integer*", args, memMgr) // 1 argument { } Sequence FunctionStringToCodepoints::createSequence(DynamicContext* context, int flags) const { Sequence param1 = getParamNumber(1,context)->toSequence(context); if(param1.isEmpty()) return param1; const ATStringOrDerived::Ptr str = (const ATStringOrDerived::Ptr )param1.first(); return str->asCodepoints(context)->toSequence(context); } XQilla-2.3.0/src/functions/FunctionYearsFromDuration.cpp0000644000151400015140000000520011653565523020261 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionYearsFromDuration::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_y, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionYearsFromDuration::minArgs = 1; const unsigned int FunctionYearsFromDuration::maxArgs = 1; /* * fn:years-from-duration($arg as xs:duration?) as xs:integer? */ FunctionYearsFromDuration::FunctionYearsFromDuration(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:duration?) as xs:integer?", args, memMgr) { } Sequence FunctionYearsFromDuration::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) return Sequence(memMgr); return Sequence(((const ATDurationOrDerived*)arg.get())->getYears(context), memMgr); } XQilla-2.3.0/src/functions/FunctionCurrentDate.cpp0000644000151400015140000000433611653565523017075 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include "../utils/DateUtils.hpp" #include const XMLCh FunctionCurrentDate::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionCurrentDate::minArgs = 0; const unsigned int FunctionCurrentDate::maxArgs = 0; /** * fn:current-date() as xs:date **/ FunctionCurrentDate::FunctionCurrentDate(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "() as xs:date", args, memMgr) { } ASTNode *FunctionCurrentDate::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); _src.currentTimeUsed(true); calculateSRCForArguments(context); return this; } Sequence FunctionCurrentDate::createSequence(DynamicContext* context, int flags) const { return Sequence(DateUtils::getCurrentDate(context), context->getMemoryManager()); } XQilla-2.3.0/src/functions/FunctionCurrentDateTime.cpp0000644000151400015140000000467511653565523017722 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include "../utils/DateUtils.hpp" #include const XMLCh FunctionCurrentDateTime::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_T, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionCurrentDateTime::minArgs = 0; const unsigned int FunctionCurrentDateTime::maxArgs = 0; /** * fn:current-dateTime() as xs:dateTime **/ FunctionCurrentDateTime::FunctionCurrentDateTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "() as xs:dateTime", args, memMgr) { } ASTNode *FunctionCurrentDateTime::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); _src.currentTimeUsed(true); calculateSRCForArguments(context); return this; } Sequence FunctionCurrentDateTime::createSequence(DynamicContext* context, int flags) const { return Sequence(DateUtils::getCurrentDateTime(context), context->getMemoryManager()); } XQilla-2.3.0/src/functions/FunctionError.cpp0000644000151400015140000000661311653565523015746 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; // http://www.w3.org/2005/xqt-errors const XMLCh FunctionError::XMLChXQueryErrorURI[] = { 'h', 't', 't', 'p', ':', '/', '/', 'w', 'w', 'w', '.', 'w', '3', '.', 'o', 'r', 'g', '/', '2', '0', '0', '5', '/', 'x', 'q', 't', '-', 'e', 'r', 'r', 'o', 'r', 's', 0 }; const XMLCh FunctionError::name[] = { chLatin_e, chLatin_r, chLatin_r, chLatin_o, chLatin_r, chNull }; const unsigned int FunctionError::minArgs = 0; const unsigned int FunctionError::maxArgs = 3; /* * fn:error() as none * fn:error($error as xs:QName) as none * fn:error($error as xs:QName?, $description as xs:string) as none * fn:error($error as xs:QName?, $description as xs:string, $error-object as item()*) as none */ FunctionError::FunctionError(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, args.size() == 1 ? "($error as xs:QName) as empty-sequence()" : "($error as xs:QName?, $description as xs:string, $error-object as item()*) as empty-sequence()", args, memMgr) { } ASTNode *FunctionError::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); _src.forceNoFolding(true); _src.possiblyUpdating(true); calculateSRCForArguments(context); // we need to specify item()*, or we get constant folded away all the time _src.getStaticType() = StaticType(StaticType::ITEM_TYPE, 0, StaticType::UNLIMITED); return this; } PendingUpdateList FunctionError::createUpdateList(DynamicContext *context) const { createSequence(context); // doesn't return return PendingUpdateList(); } Sequence FunctionError::createSequence(DynamicContext* context, int flags) const { XMLBuffer exc_name; switch(getNumArgs()) { case 3: // TODO: extra storage in the exception object for the user object case 2: { exc_name.set(getParamNumber(2, context)->next(context)->asString(context)); // Fall through } case 1: { Item::Ptr qname = getParamNumber(1, context)->next(context); if(qname.isNull()) { exc_name.append(X(" [err:FOER0000]")); } else { exc_name.append(X(" [")); exc_name.append(qname->asString(context)); exc_name.append(X("]")); } break; } case 0: exc_name.set(X("User-requested error [err:FOER0000]")); break; } XQThrow(XPath2ErrorException, X("FunctionError::createSequence"), exc_name.getRawBuffer()); } XQilla-2.3.0/src/functions/FunctionMinutesFromDateTime.cpp0000644000151400015140000000566211653565523020545 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionMinutesFromDateTime::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_T, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionMinutesFromDateTime::minArgs = 1; const unsigned int FunctionMinutesFromDateTime::maxArgs = 1; /* * fn:minutes-from-dateTime($arg as xs:dateTime?) as xs:integer? */ FunctionMinutesFromDateTime::FunctionMinutesFromDateTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:dateTime?) as xs:integer?", args, memMgr) { } ASTNode *FunctionMinutesFromDateTime::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context, /*checkTimezone*/true); return this; } Sequence FunctionMinutesFromDateTime::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) return Sequence(memMgr); return Sequence(((const ATDateTimeOrDerived*)arg.get())->getMinutes(context), memMgr); } XQilla-2.3.0/src/functions/FunctionRoundHalfToEven.cpp0000644000151400015140000000610611653565523017655 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include const XMLCh FunctionRoundHalfToEven::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_h, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_l, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_v, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionRoundHalfToEven::minArgs = 1; const unsigned int FunctionRoundHalfToEven::maxArgs = 2; /* * fn:round-half-to-even($arg as numeric?) as numeric? * fn:round-half-to-even($arg as numeric?, $precision as xs:integer) as numeric? */ FunctionRoundHalfToEven::FunctionRoundHalfToEven(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : NumericFunction(name, "($arg as xs:anyAtomicType?, $precision as xs:integer) as xs:anyAtomicType?", args, memMgr) { } Sequence FunctionRoundHalfToEven::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Numeric::Ptr numericArg = getNumericParam(1, context); //If the argument is the empty sequence, the empty sequence is returned. if(numericArg.isNull()) { return Sequence(memMgr); } if(numericArg->isNaN() || numericArg->isInfinite()) return Sequence(numericArg, memMgr); ATDecimalOrDerived::Ptr precision = NULL; if(getNumArgs() > 1) { Sequence precisionArg = getParamNumber(2,context)->toSequence(context); precision = (const ATDecimalOrDerived::Ptr )precisionArg.first(); } else precision = context->getItemFactory()->createInteger(0, context); return Sequence(numericArg->roundHalfToEven(precision, context), memMgr); } XQilla-2.3.0/src/functions/FunctionSignature.cpp0000644000151400015140000001454311636377670016624 00000000000000/* * Copyright (c) 2004-2008 * Oracle. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * $Id$ */ #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; using namespace std; FunctionSignature::FunctionSignature(XPath2MemoryManager *m) : updating(OP_DEFAULT), nondeterministic(OP_DEFAULT), privateOption(OP_DEFAULT), argSpecs(0), returnType(0), memMgr(m) { } FunctionSignature::FunctionSignature(ArgumentSpecs *a, SequenceType *r, XPath2MemoryManager *mm) : updating(OP_DEFAULT), nondeterministic(OP_DEFAULT), privateOption(OP_DEFAULT), argSpecs(a), returnType(r), memMgr(mm) { } FunctionSignature::FunctionSignature(const FunctionSignature *o, XPath2MemoryManager *mm) : updating(o->updating), nondeterministic(o->nondeterministic), privateOption(o->privateOption), argSpecs(0), returnType(o->returnType), memMgr(mm) { if(o->argSpecs) { argSpecs = new (mm) ArgumentSpecs(XQillaAllocator(mm)); ArgumentSpecs::const_iterator argIt = o->argSpecs->begin(); for(; argIt != o->argSpecs->end(); ++argIt) { argSpecs->push_back(new (mm) ArgumentSpec(*argIt, mm)); } } } FunctionSignature::FunctionSignature(const FunctionSignature *o, unsigned int skipArg, XPath2MemoryManager *mm) : updating(o->updating), nondeterministic(o->nondeterministic), privateOption(o->privateOption), argSpecs(0), returnType(o->returnType), memMgr(mm) { if(o->argSpecs) { argSpecs = new (mm) ArgumentSpecs(XQillaAllocator(mm)); unsigned int count = 0; ArgumentSpecs::const_iterator argIt = o->argSpecs->begin(); for(; argIt != o->argSpecs->end(); ++argIt, ++count) { if(count != skipArg) argSpecs->push_back(new (mm) ArgumentSpec(*argIt, mm)); } } } void FunctionSignature::release() { if(argSpecs) { ArgumentSpecs::iterator argIt = argSpecs->begin(); for(; argIt != argSpecs->end(); ++argIt) { (*argIt)->release(memMgr); } #if defined(_MSC_VER) && (_MSC_VER < 1300) argSpecs->~vector >(); #else argSpecs->~ArgumentSpecs(); #endif memMgr->deallocate(argSpecs); } memMgr->deallocate(this); } void FunctionSignature::staticResolution(StaticContext *context) { // Resolve the parameter names if(argSpecs) { ArgumentSpecs::iterator it; for(it = argSpecs->begin(); it != argSpecs->end (); ++it) { (*it)->staticResolution(context); } // check for duplicate parameters for(it = argSpecs->begin(); argSpecs->size() > 1 && it != argSpecs->end()-1; ++it) { for(ArgumentSpecs::iterator it2 = it+1; it2 != argSpecs->end (); ++it2) { if(XPath2Utils::equals((*it)->getURI(),(*it2)->getURI()) && XPath2Utils::equals((*it)->getName(),(*it2)->getName())) { XMLBuffer buf; buf.append(X("Two parameters have the same expanded QName '")); buf.append(X("{")); buf.append((*it)->getURI()); buf.append(X("}")); buf.append((*it)->getName()); buf.append(X("' [err:XQST0039]")); XQThrow3(StaticErrorException, X("XQUserFunction::staticResolution"), buf.getRawBuffer(), *it2); } } } } if(returnType) { returnType->staticResolution(context); } } void FunctionSignature::toBuffer(XMLBuffer &buffer, bool typeSyntax) const { buffer.append(X("function(")); if(argSpecs) { bool doneOne = false; for(ArgumentSpecs::const_iterator i = argSpecs->begin(); i != argSpecs->end(); ++i) { if(doneOne) buffer.append(X(", ")); doneOne = true; if(!typeSyntax) { buffer.append('$'); if((*i)->getQName()) { buffer.append((*i)->getQName()); } else { if((*i)->getURI()) { buffer.append('{'); buffer.append((*i)->getURI()); buffer.append('}'); } buffer.append((*i)->getName()); } buffer.append(X(" as ")); } (*i)->getType()->toBuffer(buffer); } } buffer.append(X(") as ")); if(returnType) returnType->toBuffer(buffer); else buffer.append(X("item()*")); } //////////////////////////////////////////////////////////////////////////////////////////////////// ArgumentSpec::ArgumentSpec(const XMLCh *qname, SequenceType *type, XPath2MemoryManager *memMgr) : qname_(memMgr->getPooledString(qname)), uri_(0), name_(0), used_(true), seqType_(type), src_(memMgr) { } ArgumentSpec::ArgumentSpec(const ArgumentSpec *o, XPath2MemoryManager *memMgr) : qname_(o->qname_), uri_(o->uri_), name_(o->name_), used_(o->used_), seqType_(o->seqType_), src_(memMgr) { } void ArgumentSpec::release(XPath2MemoryManager *mm) { src_.clear(); mm->deallocate(this); } void ArgumentSpec::staticResolution(StaticContext* context) { if(qname_ != 0) { uri_ = context->getUriBoundToPrefix(XPath2NSUtils::getPrefix(qname_, context->getMemoryManager()), this); name_ = XPath2NSUtils::getLocalName(qname_); } seqType_->staticResolution(context); bool isPrimitive; seqType_->getStaticType(src_.getStaticType(), context, isPrimitive, seqType_); if(seqType_->getOccurrenceIndicator() == SequenceType::EXACTLY_ONE || seqType_->getOccurrenceIndicator() == SequenceType::QUESTION_MARK) { src_.setProperties(StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::PEER | StaticAnalysis::SUBTREE | StaticAnalysis::SAMEDOC | StaticAnalysis::ONENODE | StaticAnalysis::SELF); } } XQilla-2.3.0/src/functions/FunctionAtan.cpp0000644000151400015140000000307611653565523015540 00000000000000/* * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include const XMLCh FunctionAtan::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionAtan::minArgs = 1; const unsigned int FunctionAtan::maxArgs = 1; /* * math:asin($arg as numeric?) as numeric? */ FunctionAtan::FunctionAtan(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : EXSLTMathFunction(name, "($arg as xs:anyAtomicType?) as xs:anyAtomicType?", args, memMgr) { } Result FunctionAtan::createResult(DynamicContext* context, int flags) const { Numeric::Ptr num = getNumericParam(1, context); if(num.isNull()) return 0; return (Item::Ptr)num->atan(context); } XQilla-2.3.0/src/functions/FunctionDocumentURI.cpp0000644000151400015140000000410411653565523017004 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include const XMLCh FunctionDocumentURI::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionDocumentURI::minArgs = 1; const unsigned int FunctionDocumentURI::maxArgs = 1; /* * fn:document-uri($arg as node()?) as xs:anyURI? */ FunctionDocumentURI::FunctionDocumentURI(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as node()?) as xs:anyURI?", args, memMgr) { } Sequence FunctionDocumentURI::createSequence(DynamicContext* context, int flags) const { Item::Ptr arg = getParamNumber(1,context)->next(context); if(arg.isNull()) return Sequence(context->getMemoryManager()); return ((Node*)arg.get())->dmDocumentURI(context); } XQilla-2.3.0/src/functions/FunctionTan.cpp0000644000151400015140000000301111653565523015364 00000000000000/* * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include const XMLCh FunctionTan::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionTan::minArgs = 1; const unsigned int FunctionTan::maxArgs = 1; /* * math:tan($arg as numeric?) as numeric? */ FunctionTan::FunctionTan(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : EXSLTMathFunction(name, "($arg as xs:anyAtomicType?) as xs:anyAtomicType?", args, memMgr) { } Result FunctionTan::createResult(DynamicContext* context, int flags) const { Numeric::Ptr num = getNumericParam(1, context); if(num.isNull()) return 0; return (Item::Ptr)num->tan(context); } XQilla-2.3.0/src/functions/FunctionSqrt.cpp0000644000151400015140000000307511653565523015605 00000000000000/* * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include const XMLCh FunctionSqrt::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_q, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionSqrt::minArgs = 1; const unsigned int FunctionSqrt::maxArgs = 1; /* * math:sqrt($arg as numeric?) as numeric? */ FunctionSqrt::FunctionSqrt(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : EXSLTMathFunction(name, "($arg as xs:anyAtomicType?) as xs:anyAtomicType?", args, memMgr) { } Result FunctionSqrt::createResult(DynamicContext* context, int flags) const { Numeric::Ptr num = getNumericParam(1, context); if(num.isNull()) return 0; return (Item::Ptr)num->sqrt(context); } XQilla-2.3.0/src/functions/FunctionCollection.cpp0000644000151400015140000000524211653565523016745 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionCollection::name[] = { chLatin_c, chLatin_o, chLatin_l, chLatin_l, chLatin_e, chLatin_c, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chNull }; const unsigned int FunctionCollection::minArgs = 0; const unsigned int FunctionCollection::maxArgs = 1; /** * fn:collection() as node()* * fn:collection($arg as xs:string?) as node()* **/ FunctionCollection::FunctionCollection(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:string?) as node()*", args, memMgr), queryPathTree_(0) { } ASTNode *FunctionCollection::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); _src.setProperties(StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::SUBTREE); _src.getStaticType() = StaticType(StaticType::NODE_TYPE, 0, StaticType::UNLIMITED); _src.availableCollectionsUsed(true); calculateSRCForArguments(context); return this; } Sequence FunctionCollection::createSequence(DynamicContext* context, int flags) const { //args 0 - URI to resolve if(getNumArgs() == 0) return context->resolveDefaultCollection(context->getProjection() ? queryPathTree_ : 0); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) return context->resolveDefaultCollection(context->getProjection() ? queryPathTree_ : 0); const XMLCh *uri = arg->asString(context); if(!XPath2Utils::isValidURI(uri, context->getMemoryManager())) XQThrow(FunctionException, X("FunctionCollection::createSequence"), X("Invalid URI format [err:FODC0002]")); return context->resolveCollection(uri, this, context->getProjection() ? queryPathTree_ : 0); } XQilla-2.3.0/src/functions/FunctionSubstring.cpp0000644000151400015140000000626211653565523016635 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include const XMLCh FunctionSubstring::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_b, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_g, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionSubstring::minArgs = 2; const unsigned int FunctionSubstring::maxArgs = 3; /** * fn:substring($sourceString as xs:string?, $startingLoc as xs:double) as xs:string * fn:substring($sourceString as xs:string?, $startingLoc as xs:double, $length as xs:double) as xs:string **/ FunctionSubstring::FunctionSubstring(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($sourceString as xs:string?, $startingLoc as xs:double, $length as xs:double) as xs:string", args, memMgr) { } Sequence FunctionSubstring::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Sequence string=getParamNumber(1, context)->toSequence(context); if(string.isEmpty()) return Sequence(context->getItemFactory()->createString(XERCES_CPP_NAMESPACE_QUALIFIER XMLUni::fgZeroLenString, context), memMgr); ATStringOrDerived::Ptr str = (const ATStringOrDerived::Ptr )string.first(); Sequence startingLoc=getParamNumber(2,context)->toSequence(context); ATDoubleOrDerived::Ptr index = (const ATDoubleOrDerived::Ptr )startingLoc.first(); ATDoubleOrDerived::Ptr subStrLength; if(getNumArgs()>2) { Sequence length=getParamNumber(3,context)->toSequence(context); subStrLength=(const ATDoubleOrDerived::Ptr )length.first(); } else { subStrLength=(const ATDoubleOrDerived::Ptr )context->getItemFactory()->createDouble((long)((const ATStringOrDerived*)str)->getLength(), context); } return Sequence(((const ATStringOrDerived*)str)->substring(index, subStrLength, context), memMgr); } XQilla-2.3.0/src/functions/FunctionFunctionName.cpp0000644000151400015140000000344311653565523017241 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; using namespace std; const XMLCh FunctionFunctionName::name[] = { 'f', 'u', 'n', 'c', 't', 'i', 'o', 'n', '-', 'n', 'a', 'm', 'e', 0 }; const unsigned int FunctionFunctionName::minArgs = 1; const unsigned int FunctionFunctionName::maxArgs = 1; /** * fn:function-name($function as function(*)) as xs:QName? */ FunctionFunctionName::FunctionFunctionName(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($function as function(*)) as xs:QName?", args, memMgr) { } Sequence FunctionFunctionName::createSequence(DynamicContext* context, int flags) const { FunctionRef::Ptr func = (FunctionRef*)getParamNumber(1, context)->next(context).get(); return Sequence(func->getName(context), context->getMemoryManager()); } XQilla-2.3.0/src/functions/FunctionContains.cpp0000644000151400015140000000712411653565523016431 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionContains::name[] = { chLatin_c, chLatin_o, chLatin_n, chLatin_t, chLatin_a, chLatin_i, chLatin_n, chLatin_s, chNull }; const unsigned int FunctionContains::minArgs = 2; const unsigned int FunctionContains::maxArgs = 3; /** * fn:contains($arg1 as xs:string?, $arg2 as xs:string?) as xs:boolean * fn:contains($arg1 as xs:string?, $arg2 as xs:string?, $collation as xs:string) as xs:boolean **/ FunctionContains::FunctionContains(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg1 as xs:string?, $arg2 as xs:string?, $collation as xs:string) as xs:boolean", args, memMgr) { } BoolResult FunctionContains::boolResult(DynamicContext* context) const { Sequence str1 = getParamNumber(1,context)->toSequence(context); Sequence str2 = getParamNumber(2,context)->toSequence(context); Collation* collation = NULL; if(getNumArgs()>2) { Sequence collArg = getParamNumber(3,context)->toSequence(context); const XMLCh* collName = collArg.first()->asString(context); try { context->getItemFactory()->createAnyURI(collName, context); } catch(XPath2ErrorException &e) { XQThrow(FunctionException, X("FunctionContains::createSequence"), X("Invalid collationURI")); } collation=context->getCollation(collName, this); if(collation==NULL) XQThrow(FunctionException,X("FunctionContains::createSequence"),X("Collation object is not available")); } else collation=context->getCollation(CodepointCollation::getCodepointCollationName(), this); const XMLCh* container = XMLUni::fgZeroLenString; if(!str1.isEmpty()) container=str1.first()->asString(context); const XMLCh* pattern = XMLUni::fgZeroLenString; if(!str2.isEmpty()) pattern=str2.first()->asString(context); if(XMLString::stringLen(pattern)==0) return true; else if(XMLString::stringLen(container)==0) return false; return XMLString::patternMatch(container, pattern) > -1; } Result FunctionContains::createResult(DynamicContext* context, int flags) const { return (Item::Ptr)context->getItemFactory()->createBoolean(boolResult(context), context); } XQilla-2.3.0/src/functions/FunctionSin.cpp0000644000151400015140000000301111653565523015373 00000000000000/* * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include const XMLCh FunctionSin::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionSin::minArgs = 1; const unsigned int FunctionSin::maxArgs = 1; /* * math:sin($arg as numeric?) as numeric? */ FunctionSin::FunctionSin(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : EXSLTMathFunction(name, "($arg as xs:anyAtomicType?) as xs:anyAtomicType?", args, memMgr) { } Result FunctionSin::createResult(DynamicContext* context, int flags) const { Numeric::Ptr num = getNumericParam(1, context); if(num.isNull()) return 0; return (Item::Ptr)num->sin(context); } XQilla-2.3.0/src/functions/FunctionSecondsFromDateTime.cpp0000644000151400015140000000566211653565523020517 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionSecondsFromDateTime::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_T, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionSecondsFromDateTime::minArgs = 1; const unsigned int FunctionSecondsFromDateTime::maxArgs = 1; /* * fn:seconds-from-dateTime($arg as xs:dateTime?) as xs:decimal? */ FunctionSecondsFromDateTime::FunctionSecondsFromDateTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:dateTime?) as xs:decimal?", args, memMgr) { } ASTNode *FunctionSecondsFromDateTime::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context, /*checkTimezone*/true); return this; } Sequence FunctionSecondsFromDateTime::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) return Sequence(memMgr); return Sequence(((const ATDateTimeOrDerived*)arg.get())->getSeconds(context), memMgr); } XQilla-2.3.0/src/functions/FunctionAsin.cpp0000644000151400015140000000307611653565523015547 00000000000000/* * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include const XMLCh FunctionAsin::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionAsin::minArgs = 1; const unsigned int FunctionAsin::maxArgs = 1; /* * math:asin($arg as numeric?) as numeric? */ FunctionAsin::FunctionAsin(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : EXSLTMathFunction(name, "($arg as xs:anyAtomicType?) as xs:anyAtomicType?", args, memMgr) { } Result FunctionAsin::createResult(DynamicContext* context, int flags) const { Numeric::Ptr num = getNumericParam(1, context); if(num.isNull()) return 0; return (Item::Ptr)num->asin(context); } XQilla-2.3.0/src/functions/FunctionHoursFromTime.cpp0000644000151400015140000000514511653565523017417 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionHoursFromTime::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_h, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionHoursFromTime::minArgs = 1; const unsigned int FunctionHoursFromTime::maxArgs = 1; /* * fn:hours-from-time($arg as xs:time?) as xs:integer? */ FunctionHoursFromTime::FunctionHoursFromTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:time?) as xs:integer?", args, memMgr) { } ASTNode *FunctionHoursFromTime::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); calculateSRCForArguments(context, /*checkTimezone*/true); return this; } Sequence FunctionHoursFromTime::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Item::Ptr arg = getParamNumber(1, context)->next(context); if(arg.isNull()) return Sequence(memMgr); return Sequence(((const ATTimeOrDerived*)arg.get())->getHours(context), memMgr); } XQilla-2.3.0/src/functions/XQillaFunction.cpp0000644000151400015140000000353311653565523016045 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif // xqilla const XMLCh XQillaFunction::XQillaPrefix[] = { chLatin_x, chLatin_q, chLatin_i, chLatin_l, chLatin_l, chLatin_a, chNull }; /* http://xqilla.sourceforge.net/Functions */ const XMLCh XQillaFunction::XMLChFunctionURI[] = { chLatin_h, chLatin_t, chLatin_t, chLatin_p, chColon, chForwardSlash, chForwardSlash, chLatin_x, chLatin_q, chLatin_i, chLatin_l, chLatin_l, chLatin_a, chPeriod, chLatin_s, chLatin_o, chLatin_u, chLatin_r, chLatin_c, chLatin_e, chLatin_f, chLatin_o, chLatin_r, chLatin_g, chLatin_e, chPeriod, chLatin_n, chLatin_e, chLatin_t, chForwardSlash, chLatin_F, chLatin_u, chLatin_n, chLatin_c, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chLatin_s, chNull }; XQillaFunction::XQillaFunction(const XMLCh* name, const char *signature, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, signature, args, memMgr) { uri_ = XMLChFunctionURI; } XQilla-2.3.0/src/functions/FunctionTimezoneFromTime.cpp0000644000151400015140000000556211653565523020114 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include const XMLCh FunctionTimezoneFromTime::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_z, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_f, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionTimezoneFromTime::minArgs = 1; const unsigned int FunctionTimezoneFromTime::maxArgs = 1; /* * fn:timezone-from-time($arg as xs:time?) as xs:dayTimeDuration? */ FunctionTimezoneFromTime::FunctionTimezoneFromTime(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:time?) as xs:dayTimeDuration?", args, memMgr) { } Sequence FunctionTimezoneFromTime::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); Sequence arg=getParamNumber(1,context)->toSequence(context); if(arg.isEmpty()) { return Sequence(memMgr); } const ATTimeOrDerived* time = (const ATTimeOrDerived*)(const Item*)arg.first(); // If $srcval does not contain a timezone, the result is the empty sequence if (time->hasTimezone() == false) { return Sequence(memMgr); } const Timezone::Ptr timezone = time->getTimezone(); return Sequence( (const Item::Ptr )timezone->asDayTimeDuration(context), memMgr ); } XQilla-2.3.0/src/functions/FunctionNot.cpp0000644000151400015140000000401311653565523015405 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include const XMLCh FunctionNot::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionNot::minArgs = 1; const unsigned int FunctionNot::maxArgs = 1; /** * fn:not($arg as item()*) as xs:boolean **/ FunctionNot::FunctionNot(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as item()*) as xs:boolean", args, memMgr) { } ASTNode* FunctionNot::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); _args[0] = new (mm) XQEffectiveBooleanValue(_args[0], mm); _args[0]->setLocationInfo(this); resolveArguments(context); return this; } BoolResult FunctionNot::boolResult(DynamicContext* context) const { return !_args[0]->boolResult(context); } Result FunctionNot::createResult(DynamicContext* context, int flags) const { return (Item::Ptr)context->getItemFactory()->createBoolean(boolResult(context), context); } XQilla-2.3.0/src/functions/FunctionQName.cpp0000644000151400015140000000612411653565523015653 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include const XMLCh FunctionQName::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_Q, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_N, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionQName::minArgs = 2; const unsigned int FunctionQName::maxArgs = 2; /** * fn:QName($paramURI as xs:string?, $paramLocal as xs:string) as xs:QName **/ /** Returns a QName with the URI given in $paramURI and the localname * given in $paramLocal **/ FunctionQName::FunctionQName(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($paramURI as xs:string?, $paramLocal as xs:string) as xs:QName", args, memMgr) { } Sequence FunctionQName::createSequence(DynamicContext* context, int flags) const { Sequence paramURIseq = getParamNumber(1, context)->toSequence(context); Sequence paramLocalseq = getParamNumber(2, context)->toSequence(context); const XMLCh* uri = NULL; if(!paramURIseq.isEmpty()) uri=paramURIseq.first()->asString(context); const XMLCh* local = paramLocalseq.first()->asString(context); if(!XERCES_CPP_NAMESPACE_QUALIFIER XMLChar1_0::isValidQName(local, XERCES_CPP_NAMESPACE_QUALIFIER XMLString::stringLen(local))) XQThrow(FunctionException,X("FunctionQName::createSequence"),X("The second argument to fn:QName is not a valid xs:QName [err:FOCA0002]")); const XMLCh* prefix = XPath2NSUtils::getPrefix(local, context->getMemoryManager()); if((uri==NULL || *uri==0) && !(prefix==NULL || *prefix==0)) XQThrow(FunctionException,X("FunctionQName::createSequence"),X("The second argument to fn:QName specifies a prefix, but the specified uri is empty [err:FOCA0002]")); local = XPath2NSUtils::getLocalName(local); //Construct QName here Sequence result(context->getItemFactory()->createQName(uri, prefix, local, context), context->getMemoryManager()); return result; } XQilla-2.3.0/src/functions/FunctionId.cpp0000644000151400015140000001076511653565523015214 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionId::name[] = { chLatin_i, chLatin_d, chNull }; const unsigned int FunctionId::minArgs = 1; const unsigned int FunctionId::maxArgs = 2; /** * fn:id($arg as xs:string*) as element()* * fn:id($arg as xs:string*, $node as node()) as element()* **/ FunctionId::FunctionId(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "($arg as xs:string*, $node as node()) as element()*", args, memMgr) { } ASTNode* FunctionId::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); if(_args.size() == 1) { XQContextItem *ci = new (mm) XQContextItem(mm); ci->setLocationInfo(this); _args.push_back(ci); } resolveArguments(context); return this; } Sequence FunctionId::createSequence(DynamicContext* context, int flags) const { Node::Ptr root = ((Node*)getParamNumber(2, context)->next(context).get())->root(context); if(root->dmNodeKind() != Node::document_string) { XQThrow(FunctionException,X("FunctionId::createSequence"), X("Current context doesn't belong to a document [err:FODC0001]")); } Sequence strings = getParamNumber(1, context)->toSequence(context); if(strings.isEmpty()) return Sequence(context->getMemoryManager()); std::vector values; //get the list of id values we're looking for by iterating over each string in the sequence for (Sequence::iterator stringIt = strings.begin(); stringIt != strings.end(); ++stringIt) { const XMLCh *str = (*stringIt)->asString(context); std::vector idList = XPath2Utils::getVal(str, context->getMemoryManager()); //for each list obtained from a string check that each id is unique to the full list and if so add it for (std::vector::iterator listIt=idList.begin(); listIt!=idList.end(); ++listIt) { if (!XPath2Utils::containsString(values, *listIt)) values.push_back(*listIt); } } Sequence result(context->getMemoryManager()); std::vector returnedVals; std::vector resultStack; resultStack.push_back(root->dmChildren(context, this)); Node::Ptr child = resultStack.back()->next(context); while(child.notNull()) { if(child->dmNodeKind() == Node::element_string) { bool added = false; if(child->dmIsId(context)->isTrue()) { // child is of type xs:ID const XMLCh* id = child->dmStringValue(context); if(XPath2Utils::containsString(values, id) && !XPath2Utils::containsString(returnedVals, id)) { returnedVals.push_back(id); result.addItem(child); added = true; } } if(!added) { Result attrs = child->dmAttributes(context, this); Node::Ptr att; while((att = (Node::Ptr)attrs->next(context)).notNull()) { if(att->dmIsId(context)->isTrue()) { // att is of type xs:ID const XMLCh* id = att->dmStringValue(context); if(XPath2Utils::containsString(values, id) && !XPath2Utils::containsString(returnedVals, id)) { returnedVals.push_back(id); result.addItem(child); break; } } } } } resultStack.push_back(child->dmChildren(context, this)); while(!resultStack.empty() && (child = resultStack.back()->next(context)).isNull()) { resultStack.pop_back(); } } return result; } XQilla-2.3.0/src/functions/FunctionParseHTML.cpp0000644000151400015140000001541411653565523016413 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #ifdef HAVE_LIBTIDY #include #include #endif #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh FunctionParseHTML::name[] = { chLatin_p, chLatin_a, chLatin_r, chLatin_s, chLatin_e, chDash, chLatin_h, chLatin_t, chLatin_m, chLatin_l, chNull }; const unsigned int FunctionParseHTML::minArgs = 1; const unsigned int FunctionParseHTML::maxArgs = 1; /** * xqilla:parse-html($html as xs:string?) as document? */ FunctionParseHTML::FunctionParseHTML(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQillaFunction(name, "($html as xs:string?) as document-node()?", args, memMgr), queryPathTree_(0) { } ASTNode *FunctionParseHTML::staticTypingImpl(StaticContext *context) { _src.clearExceptType(); _src.setProperties(StaticAnalysis::DOCORDER | StaticAnalysis::GROUPED | StaticAnalysis::PEER | StaticAnalysis::SUBTREE | StaticAnalysis::ONENODE); _src.creative(true); calculateSRCForArguments(context); return this; } Sequence FunctionParseHTML::createSequence(DynamicContext* context, int flags) const { Item::Ptr item = getParamNumber(1, context)->next(context); if(item.isNull()) return Sequence(context->getMemoryManager()); AutoDelete builder(context->createSequenceBuilder()); QueryPathTreeFilter qptf(queryPathTree_, builder.get()); EventHandler *handler = queryPathTree_ ? (EventHandler*)&qptf : (EventHandler*)builder.get(); parseHTML(item->asString(context), handler, context, this); handler->endEvent(); return builder->getSequence(); } #ifdef HAVE_LIBTIDY // void dumpNode(TidyDoc tdoc, TidyNode tnod, int indent, EventHandler *handler) // { // switch(tidyNodeGetType(tnod)) { // case TidyNode_Root: // handler->startDocumentEvent(0, 0); // printf( "\%*.*sNode: Root\n", indent, indent, " "); // TidyNode child; // for(child = tidyGetChild(tnod); child; child = tidyGetNext(child)) { // dumpNode(tdoc, child, indent + 4, handler); // } // handler->endDocumentEvent(); // return; // break; // case TidyNode_Comment: { // TidyBuffer buf; // tidyBufInit(&buf); // tidyNodeGetText(tdoc, tnod, &buf); // printf( "\%*.*sNode: Comment = \"%s\"\n", indent, indent, " ", UTF8((XMLCh*)buf.bp) ); // tidyBufFree(&buf); // return; // break; // } // case TidyNode_ProcIns: { // TidyBuffer buf; // tidyBufInit(&buf); // tidyNodeGetText(tdoc, tnod, &buf); // printf( "\%*.*sNode: ProcIns = \"%s\"\n", indent, indent, " ", UTF8((XMLCh*)buf.bp) ); // tidyBufFree(&buf); // return; // break; // } // case TidyNode_Text: { // TidyBuffer buf; // tidyBufInit(&buf); // tidyNodeGetText(tdoc, tnod, &buf); // printf( "\%*.*sNode: Text = \"%s\"\n", indent, indent, " ", UTF8((XMLCh*)buf.bp) ); // tidyBufFree(&buf); // return; // break; // } // case TidyNode_CDATA: { // TidyBuffer buf; // tidyBufInit(&buf); // tidyNodeGetText(tdoc, tnod, &buf); // printf( "\%*.*sNode: CDATA = \"%s\"\n", indent, indent, " ", UTF8((XMLCh*)buf.bp) ); // tidyBufFree(&buf); // return; // break; // } // case TidyNode_Start: // case TidyNode_End: // case TidyNode_StartEnd: { // // handler->startElementEvent(0, 0, ); // printf( "\%*.*sNode: \%s\n", indent, indent, " ", tidyNodeGetName(tnod)); // TidyNode child; // for(child = tidyGetChild(tnod); child; child = tidyGetNext(child)) { // dumpNode(tdoc, child, indent + 4, handler); // } // // handler->endDocumentEvent(); // return; // break; // } // case TidyNode_DocType: // case TidyNode_Section: // case TidyNode_Asp: // case TidyNode_Jste: // case TidyNode_Php: // case TidyNode_XmlDecl: // // Ignore // return; // break; // } // } void FunctionParseHTML::parseHTML(const XMLCh *html, EventHandler *handler, DynamicContext *context, const LocationInfo *location) { unsigned int len = XMLString::stringLen(html) * sizeof(XMLCh); TidyDoc tdoc = tidyCreate(); int rc = tidySetCharEncoding(tdoc, "utf16le"); // TBD Check this value - jpcs TidyBuffer buf; tidyBufInit(&buf); tidyBufAttach(&buf, (byte*)html, len); TidyBuffer errbuf; tidyBufInit(&errbuf); TidyBuffer output; tidyBufInit(&output); if(rc >= 0) rc = tidyOptSetBool(tdoc, TidyXmlOut, yes) ? 0 : -1; if(rc >= 0) rc = tidyOptSetBool(tdoc, TidyMark, no) ? 0 : -1; if(rc >= 0) rc = tidyOptSetBool(tdoc, TidyNumEntities, yes) ? 0 : -1; if(rc >= 0) rc = tidySetErrorBuffer(tdoc, &errbuf); if(rc >= 0) rc = tidyParseBuffer(tdoc, &buf); if(rc >= 0) rc = tidyCleanAndRepair(tdoc); // if(rc >= 0) // rc = tidyRunDiagnostics(tdoc); // dumpNode(tdoc, tidyGetRoot(tdoc), 0, handler); if(rc > 1) rc = tidyOptSetBool(tdoc, TidyForceOutput, yes) ? rc : -1; if(rc >= 0) rc = tidySaveBuffer(tdoc, &output); const XMLCh *xml = (XMLCh*)output.bp; MemBufInputSource src((XMLByte*)xml, XMLString::stringLen(xml) * sizeof(XMLCh), name); src.setEncoding(XMLUni::fgUTF16EncodingString); try { ((DocumentCache*)context->getDocumentCache())->parseDocument(src, handler, context); } catch(XMLParseException &e) { XQThrow3(FunctionException, X("FunctionParseHTML::parseHTML"), e.getError(), location); } tidyBufFree(&errbuf); tidyBufFree(&output); tidyRelease(tdoc); } #else void FunctionParseHTML::parseHTML(const XMLCh *html, EventHandler *handler, DynamicContext *context, const LocationInfo *location) { XQThrow3(FunctionException, X("FunctionParseHTML::parseHTML"), X("XQilla was not compiled with HTML Tidy support [err:XQILLA]"), location); } #endif XQilla-2.3.0/src/functions/FunctionLookup.cpp0000644000151400015140000006101111653565523016117 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE #define SECONDARY_KEY(func)(((func)->getMinArgs() << 16) | (func)->getMaxArgs()) FunctionLookup *FunctionLookup::g_globalFunctionTable = 0; XPath2MemoryManager *FunctionLookup::g_memMgr = 0; FunctionLookup::FunctionLookup(XPath2MemoryManager* memMgr) : _funcTable(197, false, memMgr), _exFuncTable(7, false, memMgr) { } FunctionLookup::~FunctionLookup() { } void FunctionLookup::insertFunction(FuncFactory *func) { // Use similar algorithm to lookup in order to detect overlaps // in argument numbers RefHash2KeysTableOfEnumerator iterator(const_cast* >(&_funcTable)); // // Walk the matches for the primary key (name) looking for overlaps: // ensure func->max < min OR func->min > max // iterator.setPrimaryKey(func->getURINameHash()); while(iterator.hasMoreElements()) { FuncFactory *entry= &(iterator.nextElement()); if ((func->getMaxArgs() < entry->getMinArgs()) || (func->getMinArgs() > entry->getMaxArgs())) continue; // overlap -- throw exception XMLBuffer buf; buf.set(X("Multiple functions have the same expanded QName and number of arguments {")); buf.append(func->getURI()); buf.append(X("}")); buf.append(func->getName()); buf.append(X("#")); if(func->getMinArgs() >= entry->getMinArgs() && func->getMinArgs() <= entry->getMaxArgs()) XPath2Utils::numToBuf((unsigned int)func->getMinArgs(), buf); else XPath2Utils::numToBuf((unsigned int)entry->getMinArgs(), buf); buf.append(X(" [err:XQST0034].")); XQThrow2(StaticErrorException,X("FunctionLookup::insertFunction"), buf.getRawBuffer()); } // Ok to add function size_t secondaryKey = SECONDARY_KEY(func); _funcTable.put((void*)func->getURINameHash(), (int)secondaryKey, func); } void FunctionLookup::removeFunction(FuncFactory *func) { size_t secondaryKey = SECONDARY_KEY(func); _funcTable.removeKey((void*)func->getURINameHash(), (int)secondaryKey); } ASTNode* FunctionLookup::lookUpFunction(const XMLCh* URI, const XMLCh* fname, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) const { if (this != g_globalFunctionTable) { ASTNode *ret = g_globalFunctionTable->lookUpFunction( URI, fname, args, memMgr); if (ret) return ret; } RefHash2KeysTableOfEnumerator iterator(const_cast* >(&_funcTable)); // // Walk the matches for the primary key (name) looking for matches // based on allowable parameters // XMLBuffer key; key.set(fname); key.append(':'); key.append(URI); iterator.setPrimaryKey(key.getRawBuffer()); size_t nargs = args.size(); while(iterator.hasMoreElements()) { FuncFactory *entry= &(iterator.nextElement()); if (entry->getMinArgs() <= nargs && entry->getMaxArgs() >= nargs) return entry->createInstance(args, memMgr); } return NULL; } // // external functions are hashed on name+uri (primary) and numargs (secondary) // void FunctionLookup::insertExternalFunction(const ExternalFunction *func) { size_t secondaryKey = func->getNumberOfArguments(); _exFuncTable.put((void*)func->getURINameHash(), (int)secondaryKey, func); } const ExternalFunction *FunctionLookup::lookUpExternalFunction( const XMLCh* URI, const XMLCh* fname, size_t numArgs) const { size_t secondaryKey = numArgs; XMLBuffer key; key.set(fname); key.append(':'); key.append(URI); return _exFuncTable.get(key.getRawBuffer(), (int)secondaryKey); } void FunctionLookup::copyExternalFunctionsTo(DynamicContext *context) const { RefHash2KeysTableOfEnumerator en(const_cast*>(&_exFuncTable)); while(en.hasMoreElements()) { context->addExternalFunction(&en.nextElement()); } } /* * Global initialization and access */ static void initGlobalTable(FunctionLookup *t, MemoryManager *memMgr); // static XPath2MemoryManager* FunctionLookup::getMemoryManager() { return g_memMgr; } // static void FunctionLookup::initialize() { /* global table is allocated via the memory manager, so no need to delete it at this time if (g_globalFunctionTable) delete g_globalFunctionTable; */ if (g_memMgr) delete g_memMgr; g_memMgr = new XPath2MemoryManagerImpl(); g_globalFunctionTable = new (g_memMgr) FunctionLookup(g_memMgr); initGlobalTable(g_globalFunctionTable, g_memMgr); } // static void FunctionLookup::terminate() { if (g_memMgr) { delete g_memMgr; g_memMgr = 0; g_globalFunctionTable = 0; } /* no need to delete this -- memMgr cleans up if (g_globalFunctionTable) { delete g_globalFunctionTable; g_globalFunctionTable = 0; } */ } // static void FunctionLookup::insertGlobalFunction(FuncFactory *func) { g_globalFunctionTable->insertFunction(func); } // static void FunctionLookup::insertGlobalExternalFunction(const ExternalFunction *func) { g_globalFunctionTable->insertExternalFunction(func); } // static ASTNode* FunctionLookup::lookUpGlobalFunction( const XMLCh* URI, const XMLCh* fname, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr, const FunctionLookup *contextTable) { if(contextTable) return contextTable->lookUpFunction(URI, fname, args, memMgr); return g_globalFunctionTable->lookUpFunction(URI, fname, args, memMgr); } // static const ExternalFunction *FunctionLookup::lookUpGlobalExternalFunction( const XMLCh* URI, const XMLCh* fname, size_t numArgs, const FunctionLookup *contextTable) { const ExternalFunction *ef = g_globalFunctionTable->lookUpExternalFunction( URI, fname, numArgs); if (!ef && contextTable) ef = contextTable->lookUpExternalFunction( URI, fname, numArgs); return ef; } #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include // Updates #include // XSLT 2.0 functions #include #include // XQilla extension functions #include #include #include #include #include #include #include #include #include #include // Higher Order Functions extension functions #include #include //exslt math functions #include #include #include #include #include #include #include #include #include #include void FunctionLookup::insertUpdateFunctions(XPath2MemoryManager *memMgr) { // Update functions // fn:put insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); } static void initGlobalTable(FunctionLookup *t, MemoryManager *memMgr) { // From the XPath2 Function & Operators list // Accessors: // fn:node-name t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:nilled t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:string t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:base-uri t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:document-uri t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // Debug Functions: // fn:error t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:trace t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // Special Constructor Functions: // fn:dateTime t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // Functions on numeric values: // fn:abs t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:ceiling t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:floor t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:round t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:round-half-to-even t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // Functions on strings // fn:codepoints-to-string t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:string-to-codepoints t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:compare t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:concat t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:substring t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:string-length t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:normalize-space t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:normalize-unicode t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:upper-case t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:lower-case t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:contains t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:starts-with t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:ends-with t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:matches t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:replace t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:tokenize t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // Functions on boolean values // fn:not t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // Functions on date values // fn:years-from-duration t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:months-from-duration t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:days-from-duration t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:hours-from-duration t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:minutes-from-duration t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:seconds-from-duration t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:year-from-dateTime t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:month-from-dateTime t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:day-from-dateTime t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:hours-from-dateTime t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:minutes-from-dateTime t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:seconds-from-dateTime t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:timezone-from-dateTime t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:year-from-date t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:month-from-date t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:day-from-date t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:timezone-from-date t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:hours-from-time t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:minutes-from-time t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:seconds-from-time t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:timezone-from-time t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:adjust-dateTime-to-timezone t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:adjust-date-to-timezone t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:adjust-time-to-timezone t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // Functions on QName values // fn:QName t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:prefix-from-QName t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:local-name-from-QName t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:namespace-uri-from-QName t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // Functions on anyURI values // fn:resolve-URI t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // Functions on nodes // fn:name t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:local-name t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:namespace-uri t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:number t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:lang t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:root t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // Functions on sequences // fn:empty t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:distinct-values t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:unordered t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:head t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:tail t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:count t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:id t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:idref t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:doc t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:doc-available t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:collection t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // Context functions // fn:position t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:last t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:current-dateTime t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:current-date t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:current-time t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:implicit-timezone t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:default-collation t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // fn:static-base-uri t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // XSLT 2.0 functions t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); // XQilla extension functions t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); #ifdef HAVE_LIBTIDY t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); #endif // Higher Order Functions extension functions t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); //exslt math functions t->insertFunction(new (memMgr) FuncFactoryTemplate(EXSLTMathFunction::XMLChFunctionURI, FunctionAbs::name, 1, 1, memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); t->insertFunction(new (memMgr) FuncFactoryTemplate(memMgr)); } XQilla-2.3.0/src/functions/FunctionWords.cpp0000644000151400015140000000447511653565523015757 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and */ #include #include "../config/xqilla_config.h" #include #include #include extern "C" { #include } #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif const XMLCh FunctionWords::name[] = { chLatin_w, chLatin_o, chLatin_r, chLatin_d, chLatin_s, chNull }; const unsigned int FunctionWords::minArgs = 1; const unsigned int FunctionWords::maxArgs = 1; /** * xqilla:words($input as xs:string?) as xs:string* */ FunctionWords::FunctionWords(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQillaFunction(name, "($input as xs:string?) as xs:string*", args, memMgr) { } Sequence FunctionWords::createSequence(DynamicContext* context, int flags) const { XPath2MemoryManager* memMgr = context->getMemoryManager(); // If the value of $operand1 is the empty sequence, the empty sequence is returned. Item::Ptr inputString = getParamNumber(1,context)->next(context); if(inputString.isNull()) return Sequence(memMgr); const XMLCh *input=inputString->asString(context); AutoDeallocate buf(UnicodeTransformer::words(input, memMgr), memMgr); XMLCh* rb = buf.get(); XMLCh* start = NULL; Sequence resultSeq(0, memMgr); // Build sequence for (int i = 0; rb[i]; i++) { if (rb[i] != UTF8PROC_WB_MARK) continue; rb[i] = 0; if (rb[i+1] == 0 || rb[i+1] != UTF8PROC_WB_MARK) { if (start != NULL) resultSeq.addItem(context->getItemFactory()->createString(start, context)); start = rb + (i+1); } } return resultSeq; } XQilla-2.3.0/src/debug/0000755000151400015140000000000011653572442011571 500000000000000XQilla-2.3.0/src/debug/InteractiveDebugger.cpp0000644000151400015140000007703711653565523016157 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include #include #include #include // XQilla includes #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif using namespace std; //////////////////////////////////////////////////////////////////////////////////////////////////// string BaseInteractiveDebugger::regexFind(const char *regex, const string &str, int groupNo) { try { XStr str16(str.c_str()); RegularExpression re(regex, "mH"); #ifdef HAVE_ALLMATCHES RefVectorOf matches(10, true); re.allMatches(str16.str(), 0, XMLString::stringLen(str16.str()), &matches); if(matches.size() >= 1) { XERCES_CPP_NAMESPACE_QUALIFIER Match *match = matches.elementAt(0); if(match->getNoGroups() >= groupNo && match->getStartPos(groupNo) != -1) return str.substr(match->getStartPos(groupNo), match->getEndPos(groupNo) - match->getStartPos(groupNo)); } #else XERCES_CPP_NAMESPACE_QUALIFIER Match match; if(re.matches(str16.str(), 0, XMLString::stringLen(str16.str()), &match)) { if(match.getNoGroups() >= groupNo && match.getStartPos(groupNo) != -1) return str.substr(match.getStartPos(groupNo), match.getEndPos(groupNo) - match.getStartPos(groupNo)); } #endif } catch(XMLException &ex) { cerr << "Regex exception: " << UTF8(ex.getMessage()) << endl; } return ""; } //////////////////////////////////////////////////////////////////////////////////////////////////// // TBD: // trace fulltext queries // examine results class HelpCommand : public DebugCommand { public: HelpCommand(std::vector &commands) : DebugCommand("help", "?", "Print help information. Use 'help commandName' for extended help", "Usage: help [commmand]\nIf no command is specified, help prints a summary of the\n" "commands available."), commands_(commands) { } void execute(InputParser::Args &args, BaseInteractiveDebugger &debugger) { if(args.size() > 2) { cerr << "Wrong number of arguments" << endl; return; } vector::iterator end = commands_.end(); if (args.size() == 1) { size_t maxLength = 4; for(vector::iterator i = commands_.begin(); i != end; ++i) { size_t commandLength = string((*i)->getCommandName()).length(); if (commandLength > maxLength) maxLength = commandLength; } cout << endl << "Command Summary" << endl; cout << "---------------" << endl << endl; for(vector::iterator j = commands_.begin(); j != end; ++j) { string command = (*j)->getCommandName(); cout << command << string(maxLength - command.length(), ' ') << " - " << (*j)->getBriefHelp() << endl; } } else { bool foundOne = false; vector::iterator i = commands_.begin(); for(; i != end; ++i) { if((*i)->matches(args[1])) { string command = (*i)->getCommandName(); cout << endl << command << " -- " << (*i)->getBriefHelp() << endl << endl; cout << (*i)->getMoreHelp() << endl; foundOne = true; // continue, looking for more matches } } if(i == end && !foundOne) { cerr << "Unknown command: " << args[1] << endl; return; } } } private: std::vector &commands_; }; class BacktraceCommand : public DebugCommand { public: BacktraceCommand() : DebugCommand("backtrace", "bt", "Prints a stack trace of the currently evaluating query", "Usage: backtrace\n") { } void execute(InputParser::Args &args, BaseInteractiveDebugger &debugger) { if(args.size() > 1) { cerr << "Wrong number of arguments" << endl; return; } if(!debugger.queryStarted()) { cerr << "No query execution in progress." << endl; } else { debugger.stackTrace(); } } }; class ContinueCommand : public DebugCommand { public: ContinueCommand() : DebugCommand("continue", "", "Continues execution of the query", "Usage: continue\n") { } void execute(InputParser::Args &args, BaseInteractiveDebugger &debugger) { if(args.size() > 1) { cerr << "Wrong number of arguments" << endl; return; } if(!debugger.queryStarted()) { cerr << "No query execution in progress." << endl; } else { throw BaseInteractiveDebugger::Continue(); } } }; class NextCommand : public DebugCommand { public: NextCommand() : DebugCommand("next", "", "Skips query execution to the end of the current sub-expression", "Usage: next\n") { } void execute(InputParser::Args &args, BaseInteractiveDebugger &debugger) { if(args.size() > 1) { cerr << "Wrong number of arguments" << endl; return; } if(!debugger.queryStarted()) { cerr << "No query execution in progress." << endl; return; } debugger.setNext(); throw BaseInteractiveDebugger::Continue(); } }; class StepCommand : public DebugCommand { public: StepCommand() : DebugCommand("step", "", "Skips query execution forward one sub-expression", "Usage: step\n") { } void execute(InputParser::Args &args, BaseInteractiveDebugger &debugger) { if(args.size() > 1) { cerr << "Wrong number of arguments" << endl; return; } debugger.setStep(); if(debugger.queryStarted()) { throw BaseInteractiveDebugger::Continue(); } debugger.run(); } }; class RunCommand : public DebugCommand { public: RunCommand() : DebugCommand("run", "", "Runs the query. If the query is already running it will be re-started", "Usage: run\n") { } void execute(InputParser::Args &args, BaseInteractiveDebugger &debugger) { if(args.size() > 1) { cerr << "Wrong number of arguments" << endl; return; } if(debugger.queryStarted()) throw BaseInteractiveDebugger::Run(); debugger.run(); } }; class QuitCommand : public DebugCommand { public: QuitCommand() : DebugCommand("quit", "exit", "Exits the debugger", "Usage: quit\n") { } void execute(InputParser::Args &args, BaseInteractiveDebugger &debugger) { if(args.size() > 1) { cerr << "Wrong number of arguments" << endl; return; } throw BaseInteractiveDebugger::Quit(); } }; class FrameCommand : public DebugCommand { public: FrameCommand() : DebugCommand("frame", "", "Changes the current frame", "Usage: frame \n" "Frames are number from 0 - the currently executing frame.") { } void execute(InputParser::Args &args, BaseInteractiveDebugger &debugger) { if(args.size() != 2) { cerr << "Wrong number of arguments" << endl; return; } if(!debugger.changeFrame(atoi(args[1].c_str()))) { cerr << "Invalid frame number: " << args[1] << endl; } else { debugger.outputCurrentFrame(); } } }; class QueryPlanCommand : public DebugCommand { public: QueryPlanCommand() : DebugCommand("queryplan", "qplan", "Prints the query plan for the expression at the current frame", "Usage: queryplan") { } void execute(InputParser::Args &args, BaseInteractiveDebugger &debugger) { if(args.size() != 1) { cerr << "Wrong number of arguments" << endl; return; } debugger.outputCurrentFrameQueryPlan(); } }; class ListCommand : public DebugCommand { public: ListCommand() : DebugCommand("list", "", "Prints the query at the current frame", "Usage: list [line of context]\n" "The optional parameter can be used to specify the number of lines of extra lines of\n" "the queryto be output. This defaults to 6.") { } void execute(InputParser::Args &args, BaseInteractiveDebugger &debugger) { if(args.size() > 2) { cerr << "Wrong number of arguments" << endl; return; } unsigned int context = 6; if(args.size() == 2) context = atoi(args[1].c_str()); if(!debugger.outputCurrentFrame(context)) { cerr << "There is no current frame" << endl; } } }; class QueryCommand : public DebugCommand { public: QueryCommand() : DebugCommand("query", "print", "Executes a query in the context of the current frame", "Usage: query \n" "This command can be used to examine the in scope variables and context item\n" "for a paticular stack frame.") { } void execute(InputParser::Args &args, BaseInteractiveDebugger &debugger) { if(args.size() != 2) { cerr << "Wrong number of arguments" << endl; return; } if(!debugger.queryCurrentFrame(args[1].c_str())) { cerr << "There is no current frame" << endl; } } }; class BreakCommand : public DebugCommand { public: BreakCommand() : DebugCommand("break", "tbreak", "Sets a break point", "Usage: break [file:line:column]\n" "Usage: tbreak [file:line:column]\n" "If the 'tbreak' variant of the command is given a temporary break point is set, which\n" "becomes disabled when it is reached.\n" "If no arguments are given a break point is set at the current stack frame's position.\n" "If an argument is given it is parsed for colon separated file, line and column\n" "information. If the filename is absent, the name of the current frame's file is used.\n" "The column information can also be left absent to break at any sub-expression on the\n" "specified line.") { } void execute(InputParser::Args &args, BaseInteractiveDebugger &debugger) { bool temporary = args[0][0] == 't'; string file; int line = 0, column = 0; string currentFile; unsigned int currentLine, currentColumn; bool frame = debugger.currentFrameLocation(currentFile, currentLine, currentColumn); if(args.size() == 1) { if(!debugger.queryStarted() || !frame) { cerr << "No query execution in progress." << endl; return; } else { file = currentFile; line = currentLine; column = currentColumn; } } else if(args.size() == 2) { static const char *BREAK_REGEX_1 = "([^:0-9][^:]*)(:([0-9]+)(:([0-9]+))?)?"; static const char *BREAK_REGEX_2 = "([0-9]+)(:([0-9]+))?"; file = BaseInteractiveDebugger::regexFind(BREAK_REGEX_1, args[1], 1); string lstr, cstr; if(file != "") { lstr = BaseInteractiveDebugger::regexFind(BREAK_REGEX_1, args[1], 3); cstr = BaseInteractiveDebugger::regexFind(BREAK_REGEX_1, args[1], 5); } else { lstr = BaseInteractiveDebugger::regexFind(BREAK_REGEX_2, args[1], 1); cstr = BaseInteractiveDebugger::regexFind(BREAK_REGEX_2, args[1], 3); if(lstr != "" && file == "") { if(!debugger.queryStarted() || !frame) { cerr << "No query execution in progress." << endl; return; } file = currentFile; } } if(lstr != "") line = atoi(lstr.c_str()); if(cstr != "") column = atoi(cstr.c_str()); } else { cerr << "Wrong number of arguments" << endl; return; } if(line == 0 && args.size() == 2) { cerr << "Breakpoint not recognized: " << args[1] << endl; } else { unsigned int bpnum = debugger.setBreakPoint(file, line, column, temporary); cout << "Breakpoint #" << bpnum << " set at " << file << ":" << line << ":" << column << endl; } } }; class BreakpointsCommand : public DebugCommand { public: BreakpointsCommand() : DebugCommand("breakpoints", "bps", "Lists the break points set", "Usage: breakpoints") { } void execute(InputParser::Args &args, BaseInteractiveDebugger &debugger) { if(args.size() != 1) { cerr << "Wrong number of arguments" << endl; return; } debugger.listBreakPoints(); } }; class DisableCommand : public DebugCommand { public: DisableCommand() : DebugCommand("disable", "", "Disables the break point indentified by the numeric argument", "Usage: disable ") { } void execute(InputParser::Args &args, BaseInteractiveDebugger &debugger) { if(args.size() != 2) { cerr << "Wrong number of arguments" << endl; return; } if(!debugger.disableBreakPoint(atoi(args[1].c_str()))) { cerr << "Invalid break point number: " << args[1] << endl; } } }; class EnableCommand : public DebugCommand { public: EnableCommand() : DebugCommand("enable", "", "Enables the break point indentified by the numeric argument", "Usage: enable ") { } void execute(InputParser::Args &args, BaseInteractiveDebugger &debugger) { if(args.size() != 2) { cerr << "Wrong number of arguments" << endl; return; } if(!debugger.enableBreakPoint(atoi(args[1].c_str()))) { cerr << "Invalid break point number: " << args[1] << endl; } } }; class ProjectionCommand : public DebugCommand { public: ProjectionCommand() : DebugCommand("projection", "", "Enables or disable document projection optimisations", "Usage: projection \nDocument projection is off by default whilst debugging.") { } void execute(InputParser::Args &args, BaseInteractiveDebugger &debugger) { if(args.size() != 2) { cerr << "Wrong number of arguments" << endl; return; } if(args[1] == "on") { debugger.setDoProjection(true); cout << "Document projection on" << endl; } else { debugger.setDoProjection(false); cout << "Document projection off" << endl; } } }; class LazyCommand : public DebugCommand { public: LazyCommand() : DebugCommand("lazy", "", "Enables or disable lazy evaluation optimisations", "Usage: lazy \nLazy evaluation is off by default whilst debugging.") { } void execute(InputParser::Args &args, BaseInteractiveDebugger &debugger) { if(args.size() != 2) { cerr << "Wrong number of arguments" << endl; return; } if(args[1] == "on") { debugger.setDoLazyEvaluation(true); cout << "Lazy evaluation on" << endl; } else { debugger.setDoLazyEvaluation(false); cout << "Lazy evaluation off" << endl; } } }; class FocusOptimizationsCommand : public DebugCommand { public: FocusOptimizationsCommand() : DebugCommand("optimizeFocus", "", "Enables or disable focus optimisations", "Usage: optimizeFocus \n" "Focus optimizations are off by default whilst debugging. Enabling them can result\n" "in the context item not being set to what the user expects it to be.") { } void execute(InputParser::Args &args, BaseInteractiveDebugger &debugger) { if(args.size() != 2) { cerr << "Wrong number of arguments" << endl; return; } if(args[1] == "on") { debugger.setDoFocusOptimizationsn(true); cout << "Focus optimizations on" << endl; } else { debugger.setDoFocusOptimizationsn(false); cout << "Focus optimizations off" << endl; } } }; //////////////////////////////////////////////////////////////////////////////////////////////////// BaseInteractiveDebugger::BaseInteractiveDebugger() : prevcmd_(0), queryStarted_(false), step_(false), next_(0) { commands_.push_back(new BacktraceCommand()); commands_.push_back(new BreakCommand()); commands_.push_back(new BreakpointsCommand()); commands_.push_back(new ContinueCommand()); commands_.push_back(new DisableCommand()); commands_.push_back(new EnableCommand()); commands_.push_back(new FocusOptimizationsCommand()); commands_.push_back(new FrameCommand()); commands_.push_back(new HelpCommand(commands_)); commands_.push_back(new LazyCommand()); commands_.push_back(new ListCommand()); commands_.push_back(new NextCommand()); commands_.push_back(new ProjectionCommand()); commands_.push_back(new QueryCommand()); commands_.push_back(new QueryPlanCommand()); commands_.push_back(new QuitCommand()); commands_.push_back(new RunCommand()); commands_.push_back(new StepCommand()); } BaseInteractiveDebugger::~BaseInteractiveDebugger() { for(vector::iterator i = commands_.begin(); i != commands_.end(); ++i) { delete *i; } } void BaseInteractiveDebugger::readCommand() { InputParser iParser; InputParser::Args args; do { cout << endl << "debug> " << flush; iParser.parse(cin, args); DebugCommand *cmd = prevcmd_; if(!args.empty()) cmd = findCommand(args[0]); if(cmd) { prevcmd_ = cmd; try { cmd->execute(args, *this); } catch(Continue) { return; } } else if(!args.empty()) { cerr << "Unknown command: " << args[0] << endl; } } while(!cin.eof()); } unsigned int BaseInteractiveDebugger::setBreakPoint(const std::string &file, unsigned int line, unsigned int column, bool temporary) { breaks_.push_back(BreakPoint(file, line, column, temporary)); return (unsigned int) breaks_.size(); } void BaseInteractiveDebugger::listBreakPoints() const { if(breaks_.empty()) { cerr << "No breakpoints set" << endl; return; } unsigned int bpnum = 1; vector::const_iterator i = breaks_.begin(); for(; i != breaks_.end(); ++i, ++bpnum) { if(i->disabled) { cout << "[disabled] "; } if(i->temporary) { cout << "[temporary] "; } cout << "Breakpoint #" << bpnum << " set at " << i->file << ":" << i->line << ":" << i->column; cout << endl; outputLocation(X(i->file.c_str()), i->line, i->column); } } bool BaseInteractiveDebugger::disableBreakPoint(unsigned int number) { if(number > breaks_.size()) return false; breaks_[number - 1].disabled = true; return true; } bool BaseInteractiveDebugger::enableBreakPoint(unsigned int number) { if(number > breaks_.size()) return false; breaks_[number - 1].disabled = false; return true; } void BaseInteractiveDebugger::setNext() { next_ = getStackSize(); } void BaseInteractiveDebugger::setStep() { step_ = true; } DebugCommand *BaseInteractiveDebugger::findCommand(std::string &command) const { vector::const_iterator end = commands_.end(); vector::const_iterator i = commands_.begin(); for(; i != end; ++i) { if((*i)->matches(command)) { command = (*i)->getCommandName(); return (*i); } } return 0; } void BaseInteractiveDebugger::checkBreak(bool entering) { if(step_) { step_ = false; } else if(!entering && next_ == getStackSize()) { next_ = 0; step_ = true; return; } else { // Work out the filename and file basename string currentFile; unsigned int currentLine, currentColumn; currentFrameLocation(currentFile, currentLine, currentColumn); string file(currentFile); string basename = regexFind(".*/(.*)", file); // Search to see if we've hit a breakpoint int position = 1; vector::iterator i = breaks_.begin(); for(; i != breaks_.end(); ++i, ++position) { if(i->disabled) continue; if(i->file != "" && i->file != file && (basename == "" || i->file != basename)) continue; if(i->line != 0 && i->line != currentLine) continue; if(i->column != 0 && i->column != currentColumn) continue; break; } if(i == breaks_.end()) return; // We've hit a breakpoint if(i->temporary) { i->disabled = true; } cerr << "Breakpoint #" << position << ", "; } cerr << (entering ? "Entering " : "Exiting "); outputCurrentFrame(); readCommand(); if(!entering && next_ == getStackSize()) { next_ = 0; step_ = true; } } void BaseInteractiveDebugger::breakForError(const char *message) { cerr << "Error: " << message << endl; outputCurrentFrame(); while(true) { // Clear any pending next or step operation next_ = 0; step_ = false; readCommand(); cerr << "An error has occurred - query execution cannot resume" << endl; } } void BaseInteractiveDebugger::interrupted() { cerr << "Interrupted!" << endl; outputCurrentFrame(); // Clear any pending next or step operation next_ = 0; step_ = false; readCommand(); } void InteractiveDebugger::outputLocation(const LocationInfo *info, unsigned int context) { BaseInteractiveDebugger::outputLocation(info->getFile(), info->getLine(), info->getColumn(), context); } void BaseInteractiveDebugger::outputLocation(const XMLCh *file, unsigned int line, unsigned int column, unsigned int context) { if(file == 0 || line == 0) return; Janitor srcToFill(0); try { XMLURL urlTmp(file); if (urlTmp.isRelative()) throw MalformedURLException(__FILE__, __LINE__, XMLExcepts::URL_NoProtocolPresent); srcToFill.reset(new URLInputSource(urlTmp)); } catch(const MalformedURLException&) { srcToFill.reset(new LocalFileInputSource(file)); } XMLBuffer queryText; if(!XPath2Utils::readSource(*srcToFill.get(), XMLPlatformUtils::fgMemoryManager, queryText, /*sniffEncoding*/true)) return; outputLocationFromString(queryText.getRawBuffer(), line, column, context); } void BaseInteractiveDebugger::outputLocationFromString(const XMLCh *query, unsigned int line, unsigned int column, unsigned int context) { if(line == 0) return; unsigned int startLine = line - (context / 2); if(line <= (context / 2)) startLine = 1; unsigned int endLine = startLine + context + 1; unsigned int curLine = 1; while(curLine < startLine) { if(*query == 0) return; if(*query == '\n') { ++curLine; } else if(*query == '\r') { ++curLine; if(*(query + 1) == '\n') { ++query; } } ++query; } XMLBuffer query_line; if(context != 0) { while(curLine < endLine) { if(*query == 0) break; if(*query == '\n' || *query == '\r') { if(curLine < 100) cerr << " "; if(curLine < 10) cerr << " "; cerr << curLine << ": " << UTF8(query_line.getRawBuffer()) << endl; query_line.reset(); ++curLine; if(*query == '\r' && *(query + 1) == '\n') { ++query; } } else { query_line.append(*query); } ++query; } if(!query_line.isEmpty()) { if(curLine < 100) cerr << " "; if(curLine < 10) cerr << " "; cerr << curLine << ": " << UTF8(query_line.getRawBuffer()) << endl; } } else { XMLBuffer marker_line; unsigned int curColumn = 1; while(*query != 0) { if(curColumn == column) { marker_line.append('^'); } if(*query == '\n' || *query == '\r') break; query_line.append(*query); if(curColumn != column) { if(*query == '\t') { marker_line.append(*query); } else { marker_line.append(' '); } } ++query; ++curColumn; } cerr << UTF8(query_line.getRawBuffer()) << endl << UTF8(marker_line.getRawBuffer()) << endl; } } //////////////////////////////////////////////////////////////////////////////////////////////////// void InteractiveDebugger::debugQuery(const XQQuery *query, DynamicContext *context) { InteractiveDebugger debugger(query, context); try { debugger.readCommand(); } catch(Quit) { } } InteractiveDebugger::InteractiveDebugger(const XQQuery *query, DynamicContext *context) : stack_(0), currentFrame_(0), query_(query), context_(context), lazy_(false), focusOptimzations_(false) { context->setDebugListener(this); context->setProjection(false); } void InteractiveDebugger::run() { while(true) { next_ = 0; stack_ = 0; currentFrame_ = 0; try { queryStarted_ = true; StdOutFormatTarget target; EventSerializer writer((char*)"UTF-8", (char*)"1.1", &target, context_->getMemoryManager()); writer.addNewlines(true); NSFixupFilter nsfilter(&writer, context_->getMemoryManager()); query_->execute(&nsfilter, context_); queryStarted_ = false; cout << endl << "Query completed." << endl; return; } catch(Run) { queryStarted_ = false; } catch(Quit) { throw; } catch(XQException &e) { queryStarted_ = false; cerr << UTF8(e.getXQueryFile()) << ":" << e.getXQueryLine() << ":" << e.getXQueryColumn() << ": error: " << UTF8(e.getError()) << endl; BaseInteractiveDebugger::outputLocation(e.getXQueryFile(), e.getXQueryLine(), e.getXQueryColumn()); break; } catch(...) { queryStarted_ = false; cerr << "Caught unknown exception" << endl; break; } } } void InteractiveDebugger::enter(const StackFrame *stack, const DynamicContext *context) { AutoReset reset(stack_); AutoReset reset2(currentFrame_); stack_ = stack; currentFrame_ = stack; checkBreak(/*entering*/true); } void InteractiveDebugger::exit(const StackFrame *stack, const DynamicContext *context) { AutoReset reset(stack_); AutoReset reset2(currentFrame_); stack_ = stack; currentFrame_ = stack; checkBreak(/*entering*/false); } void InteractiveDebugger::error(const XQException &error, const StackFrame *stack, const DynamicContext *context) { AutoReset reset(stack_); AutoReset reset2(currentFrame_); stack_ = stack; currentFrame_ = stack; breakForError(UTF8(error.getError())); } bool InteractiveDebugger::changeFrame(unsigned int number) { const StackFrame *frame = stack_; unsigned int count = 0; while(frame && count < number) { frame = frame->getPreviousFrame(); ++count; } if(frame == 0 || count < number) return false; currentFrame_ = frame; return true; } unsigned int InteractiveDebugger::getCurrentFrameNumber() const { const StackFrame *frame = stack_; unsigned int count = 0; while(frame && frame != currentFrame_) { frame = frame->getPreviousFrame(); ++count; } return count; } unsigned int InteractiveDebugger::getStackSize() const { const StackFrame *frame = stack_; unsigned int count = 0; while(frame) { frame = frame->getPreviousFrame(); ++count; } return count; } void InteractiveDebugger::stackTrace() const { int count = 0; const StackFrame *frame = stack_; while(frame) { cerr << "#" << count; output(frame); cerr << endl; frame = frame->getPreviousFrame(); ++count; } } bool InteractiveDebugger::outputCurrentFrame(unsigned int context) const { if(currentFrame_ == 0) return false; cerr << "#" << getCurrentFrameNumber(); output(currentFrame_); cerr << endl << endl; outputLocation(currentFrame_->getLocationInfo(), context); return true; } void InteractiveDebugger::outputCurrentFrameQueryPlan() const { if(currentFrame_ == 0) { AutoDelete a2x(context_->getConfiguration()->createASTToXML()); cout << a2x->print(query_, context_) << endl; } else { cout << currentFrame_->getQueryPlan() << endl;; } } bool InteractiveDebugger::queryCurrentFrame(const char *queryString) const { if(currentFrame_ == 0) return false; XStr query16(queryString); try { XPath2MemoryManager *memMgr = context_->getMemoryManager(); StdOutFormatTarget target; EventSerializer writer((char*)"UTF-8", (char*)"1.1", &target, memMgr); writer.addNewlines(true); NSFixupFilter nsfilter(&writer, memMgr); currentFrame_->query(query16.str(), &nsfilter); } catch(XQException &e) { cerr << UTF8(e.getXQueryFile()) << ":" << e.getXQueryLine() << ":" << e.getXQueryColumn() << ": error: " << UTF8(e.getError()) << endl; if(e.getXQueryFile() == 0) BaseInteractiveDebugger::outputLocationFromString(query16.str(), e.getXQueryLine(), e.getXQueryColumn()); else BaseInteractiveDebugger::outputLocation(e.getXQueryFile(), e.getXQueryLine(), e.getXQueryColumn()); } catch(...) { cerr << "Caught unknown exception" << endl; } return true; } bool InteractiveDebugger::currentFrameLocation(string &file, unsigned int &line, unsigned int &column) const { if(currentFrame_ == 0) { file = UTF8(query_->getFile()); line = 0; column = 0; return false; } file = UTF8(currentFrame_->getLocationInfo()->getFile()); line = currentFrame_->getLocationInfo()->getLine(); column = currentFrame_->getLocationInfo()->getColumn(); return true; } void InteractiveDebugger::setDoProjection(bool opt) { context_->setProjection(opt); } void InteractiveDebugger::output(const StackFrame *frame) const { string where = regexFind("(<[^>]+>)", frame->getQueryPlan()); if(where != "") cerr << " in " << where; const LocationInfo *loc = frame->getLocationInfo(); cerr << " at " << UTF8(loc->getFile()) << ":" << loc->getLine() << ":" << loc->getColumn(); } void InteractiveDebugger::report(const StackFrame *frame) const { const LocationInfo *loc = frame->getLocationInfo(); cerr << UTF8(loc->getFile()) << ":" << loc->getLine() << ":" << loc->getColumn() << endl; outputLocation(loc); } //////////////////////////////////////////////////////////////////////////////////////////////////// static void lowerCase(string &s) { for (unsigned int i = 0; i < s.length(); ++i) s[i] = tolower(s[i]); } bool DebugCommand::matches(const std::string &command, const std::string &toMatch) { // Be case-insensitive, for convenience if (command.length() == 0) return false; string l_command = command; string l_match = toMatch; lowerCase(l_command); lowerCase(l_match); return l_match.substr(0, l_command.length()) == l_command; } bool DebugCommand::matches(const std::string &command) const { return matches(command, name_) || matches(command, compatName_); } XQilla-2.3.0/src/debug/StackFrame.cpp0000644000151400015140000000446511653565523014250 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include using namespace std; StackFrame::StackFrame(const LocationInfo *location, DynamicContext *context) : location_(location), context_(context), contextItem_(context->getContextItem()), contextPosition_(context->getContextPosition()), contextSize_(context->getContextSize()), variables_(context->getVariableStore()), nsResolver_(context->getNSResolver()), defaultElementNS_(context->getDefaultElementAndTypeNS()), prev_(context->getStackFrame()) { } Sequence StackFrame::query(const XMLCh *queryString) const { AutoDelete builder(context_->createSequenceBuilder()); query(queryString, builder.get()); return builder->getSequence(); } void StackFrame::query(const XMLCh *queryString, EventHandler *events) const { AutoDelete context(context_->createDebugQueryContext(contextItem_, contextPosition_, contextSize_, variables_, nsResolver_, defaultElementNS_)); AutoDelete query(XQilla::parse(queryString, context.get(), 0, XQilla::NO_ADOPT_CONTEXT | XQilla::NO_DEFAULT_MODULES)); query->execute(events, context); } XQilla-2.3.0/src/debug/DebugHookDecorator.cpp0000644000151400015140000000233611653565523015735 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include DebugHookDecorator::DebugHookDecorator(DynamicContext *context, Optimizer *parent) : ASTVisitor(parent), mm_(context->getMemoryManager()) { } ASTNode *DebugHookDecorator::optimize(ASTNode *item) { return new (mm_) ASTDebugHook(ASTVisitor::optimize(item), mm_); } TupleNode *DebugHookDecorator::optimizeTupleNode(TupleNode *item) { return new (mm_) TupleDebugHook(ASTVisitor::optimizeTupleNode(item), mm_); } XQilla-2.3.0/src/debug/TupleDebugHook.cpp0000644000151400015140000000730011653565523015100 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; TupleDebugHook::TupleDebugHook(TupleNode *parent, XPath2MemoryManager *mm) : TupleNode(DEBUG_HOOK, parent, mm) { setLocationInfo(parent); } TupleNode *TupleDebugHook::staticResolution(StaticContext *context) { parent_ = parent_->staticResolution(context); return this; } TupleNode *TupleDebugHook::staticTypingImpl(StaticContext *context) { return this; } TupleNode *TupleDebugHook::staticTypingTeardown(StaticContext *context, StaticAnalysis &usedSrc) { parent_ = parent_->staticTypingTeardown(context, usedSrc); return this; } class TupleStackFrame : public StackFrame { public: TupleStackFrame(const TupleNode *ast, DynamicContext *context) : StackFrame(ast, context) {} const ASTNode *getASTNode() const { return 0; } const TupleNode *getTupleNode() const { return (TupleNode*)location_; } virtual std::string getQueryPlan() const { AutoDelete a2x(context_->getConfiguration()->createASTToXML()); return a2x->print(getTupleNode(), context_); } }; class TupleDebugHookResult : public TupleResult { public: TupleDebugHookResult(const TupleNode *expr, DynamicContext *context) : TupleResult(expr), context_(context), frame_(expr, context), parent_(0) { DebugListener *dl = context->getDebugListener(); AutoStackFrameReset reset(context, &frame_); if(dl) dl->start(&frame_, context); try { parent_ = expr->createResult(context); } catch(XQException &ex) { if(dl) dl->error(ex, &frame_, context); } } ~TupleDebugHookResult() { parent_ = 0; DebugListener *dl = context_->getDebugListener(); AutoStackFrameReset reset(context_, &frame_); if(dl) dl->end(&frame_, context_); } virtual Result getVar(const XMLCh *namespaceURI, const XMLCh *name) const { return parent_->getVar(namespaceURI, name); } virtual void getInScopeVariables(std::vector > &variables) const { parent_->getInScopeVariables(variables); } virtual bool next(DynamicContext *context) { DebugListener *dl = context->getDebugListener(); AutoStackFrameReset reset(context, &frame_); if(dl) dl->enter(&frame_, context); try { bool result = parent_->next(context); if(dl) dl->exit(&frame_, context); return result; } catch(XQException &ex) { if(dl) dl->error(ex, &frame_, context); } return false; } private: DynamicContext *context_; TupleStackFrame frame_; TupleResult::Ptr parent_; }; TupleResult::Ptr TupleDebugHook::createResult(DynamicContext* context) const { return new TupleDebugHookResult(parent_, context); } XQilla-2.3.0/src/debug/InputParser.cpp0000644000151400015140000001074711653565523014504 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include using namespace std; void InputParser::reset() { start_ = 0; pos_ = 0; quoteChar_ = 0; curlyBraceDepth_ = 0; seenNonWS_ = false; stripQuotes_ = false; } int InputParser::parse(istream &input, Args &args) { reset(); args.clear(); int lines = 0; getline(input, line_); ++lines; for(; (size_t)pos_ < line_.length(); ++pos_) { char c = line_[pos_]; switch(c) { case '\\': { if(pos_ == line_.length() - 1) { // Escaped newline, get next line of input nextLine(input, args); ++lines; } else { escapedCharacter(); } break; } case ' ': case '\t': case '\n': case '\r': { whitespace(args); break; } case '\'': case '"': { quote(args, c); break; } case '{': { openCurly(); break; } case '}': { closeCurly(); break; } case '#': { if (!inQuotes()) pos_ = line_.length(); break; // force end of parse for this line } default: { character(); break; } } if(inQuotes() && pos_ == line_.length() - 1) { // We have an unfinished quote, so get the next line nextLine(input, args); ++lines; } } endOfArg(args); line_ = ""; return lines; } bool InputParser::inQuotes() { return quoteChar_ || curlyBraceDepth_ != 0; } void InputParser::nextLine(istream &input, Args &args) { string nextbit; getline(input, nextbit); line_ += "\n" + nextbit; // Counts as whitespace whitespace(args); } void InputParser::whitespace(Args &args) { if(inQuotes()) { // Counts as character character(); } else { endOfArg(args); } } void InputParser::endOfArg(Args &args) { if(seenNonWS_) { // Whitespace as a separator if(stripQuotes_) { addArgument(args, start_ + 1, pos_ - 1); stripQuotes_ = false; } else { addArgument(args, start_, pos_); } seenNonWS_ = false; } } void InputParser::character() { // Significant character if(!seenNonWS_) { start_ = pos_; } if(!inQuotes()) { stripQuotes_ = false; } seenNonWS_ = true; } void InputParser::escapedCharacter() { character(); ++pos_; } void InputParser::quote(Args &args, char c) { if(!inQuotes()) { // Start of quoted passage quoteChar_ = c; stripQuotes_ = !seenNonWS_; character(); } else if(quoteChar_ == c) { // End of quoted passage character(); quoteChar_ = 0; } else { // Counts as significant character character(); } } void InputParser::openCurly() { if(quoteChar_) { // counts as character character(); } else { if(curlyBraceDepth_ == 0) { stripQuotes_ = !seenNonWS_; } ++curlyBraceDepth_; character(); } } void InputParser::closeCurly() { if(curlyBraceDepth_ != 0) { character(); --curlyBraceDepth_; } else { // Counts as character character(); } } void InputParser::addArgument(Args &args, string::size_type start, string::size_type end) { // Un-escape the argument ostringstream oss; for(string::size_type i = start; i < end; ++i) { char c = line_[i]; if(c == '\\') { ++i; if(i < pos_) { c = line_[i]; switch(c) { case 'n': { // escaped newline oss.put('\n'); break; } case 'r': { // escaped carriage return oss.put('\r'); break; } case 't': { // escaped tab oss.put('\t'); break; } default: { oss.put(c); break; } } } else { oss.put(c); } } else { oss.put(c); } } args.push_back(oss.str()); } XQilla-2.3.0/src/debug/ASTDebugHook.cpp0000644000151400015140000001572711653565523014452 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include #include #include #include ASTDebugHook::ASTDebugHook(ASTNode *astNode, XPath2MemoryManager *mm) : ASTNodeImpl(DEBUG_HOOK, mm), expr_(astNode) { _src.copy(expr_->getStaticAnalysis()); setLocationInfo(expr_); } bool ASTDebugHook::isConstant() const { return expr_->isConstant(); } bool ASTDebugHook::isDateOrTimeAndHasNoTimezone(StaticContext* context) const { return expr_->isDateOrTimeAndHasNoTimezone(context); } ASTNode *ASTDebugHook::staticResolution(StaticContext* context) { expr_ = expr_->staticResolution(context); return this; } ASTNode *ASTDebugHook::staticTypingImpl(StaticContext *context) { _src.clear(); _src.copy(expr_->getStaticAnalysis()); return this; } class ASTStackFrame : public StackFrame { public: ASTStackFrame(const ASTNode *ast, DynamicContext *context) : StackFrame(ast, context) {} void setPreviousFrame(DynamicContext *context) { prev_ = context->getStackFrame(); } const ASTNode *getASTNode() const { return (ASTNode*)location_; } const TupleNode *getTupleNode() const { return 0; } virtual std::string getQueryPlan() const { AutoDelete a2x(context_->getConfiguration()->createASTToXML()); return a2x->print(getASTNode(), context_); } }; class ASTDebugHookResult : public ResultImpl { public: ASTDebugHookResult(const ASTNode *expr, DynamicContext *context) : ResultImpl(expr), context_(context), frame_(expr, context), parent_(0) { DebugListener *dl = context->getDebugListener(); AutoStackFrameReset reset(context, &frame_); if(dl) dl->start(&frame_, context); try { parent_ = expr->createResult(context); } catch(XQException &ex) { if(dl) dl->error(ex, &frame_, context); if(dl) dl->end(&frame_, context); throw; } } ASTDebugHookResult(const Result &contextItems, const ASTNode *expr, DynamicContext *context) : ResultImpl(expr), context_(context), frame_(expr, context), parent_(0) { DebugListener *dl = context->getDebugListener(); AutoStackFrameReset reset(context, &frame_); if(dl) dl->start(&frame_, context); try { parent_ = expr->iterateResult(contextItems, context); } catch(XQException &ex) { if(dl) dl->error(ex, &frame_, context); } } ~ASTDebugHookResult() { parent_ = 0; DebugListener *dl = context_->getDebugListener(); AutoStackFrameReset reset(context_, &frame_); if(dl) dl->end(&frame_, context_); } Item::Ptr next(DynamicContext *context) { DebugListener *dl = context->getDebugListener(); frame_.setPreviousFrame(context); AutoStackFrameReset reset(context, &frame_); if(dl) dl->enter(&frame_, context); try { Item::Ptr item = parent_->next(context); if(dl) dl->exit(&frame_, context); return item; } catch(XQException &ex) { if(dl) dl->error(ex, &frame_, context); } return 0; } Item::Ptr nextOrTail(Result &tail, DynamicContext *context) { DebugListener *dl = context->getDebugListener(); frame_.setPreviousFrame(context); AutoStackFrameReset reset(context, &frame_); if(dl) dl->enter(&frame_, context); try { ResultImpl *oldparent = parent_.get(); Item::Ptr item = parent_->nextOrTail(parent_, context); if(dl) dl->exit(&frame_, context); if(parent_.get() != oldparent) tail = parent_; return item; } catch(XQException &ex) { if(dl) dl->error(ex, &frame_, context); } return 0; } protected: DynamicContext *context_; ASTStackFrame frame_; Result parent_; }; Result ASTDebugHook::createResult(DynamicContext *context, int flags) const { DebugListener *dl = context->getDebugListener(); if(!dl) return expr_->createResult(context); if(dl->doLazyEvaluation()) return new ASTDebugHookResult(expr_, context); ASTStackFrame frame(expr_, context); AutoStackFrameReset reset(context, &frame); dl->start(&frame, context); dl->enter(&frame, context); Sequence result(context->getMemoryManager()); try { result = expr_->createResult(context)->toSequence(context); dl->exit(&frame, context); dl->end(&frame, context); } catch(XQException &ex) { dl->error(ex, &frame, context); } return result; } Result ASTDebugHook::iterateResult(const Result &contextItems, DynamicContext *context) const { DebugListener *dl = context->getDebugListener(); if(!dl) return expr_->iterateResult(contextItems, context); if(dl->doLazyEvaluation() && dl->doFocusOptimizations()) return new ASTDebugHookResult(contextItems, expr_, context); return ASTNodeImpl::iterateResult(contextItems, context); } EventGenerator::Ptr ASTDebugHook::generateEvents(EventHandler *events, DynamicContext *context, bool preserveNS, bool preserveType) const { DebugListener *dl = context->getDebugListener(); if(!dl) return expr_->generateEvents(events, context, preserveNS, preserveType); ASTStackFrame frame(expr_, context); AutoStackFrameReset reset(context, &frame); dl->start(&frame, context); dl->enter(&frame, context); try { EventGenerator::Ptr result = expr_->generateEvents(events, context, preserveNS, preserveType); dl->exit(&frame, context); dl->end(&frame, context); return result; } catch(XQException &ex) { dl->error(ex, &frame, context); } return 0; } PendingUpdateList ASTDebugHook::createUpdateList(DynamicContext *context) const { DebugListener *dl = context->getDebugListener(); if(!dl) return expr_->createUpdateList(context); ASTStackFrame frame(expr_, context); AutoStackFrameReset reset(context, &frame); dl->start(&frame, context); dl->enter(&frame, context); PendingUpdateList pul; try { pul = expr_->createUpdateList(context); dl->exit(&frame, context); dl->end(&frame, context); } catch(XQException &ex) { dl->error(ex, &frame, context); } return pul; } XQilla-2.3.0/src/parser/0000755000151400015140000000000011653572443012000 500000000000000XQilla-2.3.0/src/parser/XQParser.hpp0000644000151400015140000004336011653567033014143 00000000000000/* A Bison parser, made by GNU Bison 2.3. */ /* Skeleton interface for Bison's Yacc-like parsers in C Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work under terms of your choice, so long as that work isn't itself a parser generator using the skeleton or a modified version thereof as a parser skeleton. Alternatively, if you modify or redistribute the parser skeleton itself, you may (at your option) remove this special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ /* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE /* Put the tokens into the symbol table, so that GDB and other debuggers know about them. */ enum yytokentype { MYEOF = 0, _LANG_XPATH2_ = 258, _LANG_XQUERY_ = 259, _LANG_XSLT2_ = 260, _LANG_FUNCDECL_ = 261, _LANG_DELAYEDMODULE_ = 262, _LANG_FUNCTION_SIGNATURE_ = 263, _DOLLAR_ = 264, _COLON_EQUALS_ = 265, _ASTERISK_ = 266, _BAR_ = 267, _BANG_EQUALS_ = 268, _LESS_THAN_EQUALS_ = 269, _GREATER_THAN_ = 270, _GREATER_THAN_EQUALS_ = 271, _LESS_THAN_LESS_THAN_ = 272, _GREATER_THAN_GREATER_THAN_ = 273, _COLON_COLON_ = 274, _AT_SIGN_ = 275, _LSQUARE_ = 276, _RSQUARE_ = 277, _QUESTION_MARK_ = 278, _LESS_THAN_OP_OR_TAG_ = 279, _START_TAG_CLOSE_ = 280, _END_TAG_CLOSE_ = 281, _PI_START_ = 282, _XML_COMMENT_START_ = 283, _XML_COMMENT_END_ = 284, _SLASH_SLASH_ = 285, _END_TAG_OPEN_ = 286, _PRAGMA_OPEN_ = 287, _COMMA_ = 288, _PLUS_ = 289, _MINUS_ = 290, _SLASH_ = 291, _EQUALS_ = 292, _DOT_ = 293, _DOT_DOT_ = 294, _LPAR_ = 295, _RPAR_ = 296, _EMPTY_TAG_CLOSE_ = 297, _VALUE_INDICATOR_ = 298, _OPEN_QUOT_ = 299, _CLOSE_QUOT_ = 300, _OPEN_APOS_ = 301, _CLOSE_APOS_ = 302, _LBRACE_ = 303, _RBRACE_ = 304, _SEMICOLON_ = 305, _HASH_ = 306, _INTEGER_LITERAL_ = 307, _DECIMAL_LITERAL_ = 308, _DOUBLE_LITERAL_ = 309, _ATTRIBUTE_ = 310, _COMMENT_ = 311, _DOCUMENT_NODE_ = 312, _NAMESPACE_NODE_ = 313, _NODE_ = 314, _PROCESSING_INSTRUCTION_ = 315, _SCHEMA_ATTRIBUTE_ = 316, _SCHEMA_ELEMENT_ = 317, _TEXT_ = 318, _EMPTY_SEQUENCE_ = 319, _BOUNDARY_SPACE_ = 320, _FT_OPTION_ = 321, _BASE_URI_ = 322, _LAX_ = 323, _STRICT_ = 324, _IDIV_ = 325, _CHILD_ = 326, _DESCENDANT_ = 327, _SELF_ = 328, _DESCENDANT_OR_SELF_ = 329, _FOLLOWING_SIBLING_ = 330, _FOLLOWING_ = 331, _PARENT_ = 332, _ANCESTOR_ = 333, _PRECEDING_SIBLING_ = 334, _PRECEDING_ = 335, _ANCESTOR_OR_SELF_ = 336, _DOCUMENT_ = 337, _NOT_ = 338, _USING_ = 339, _NO_ = 340, _SENSITIVE_ = 341, _INSENSITIVE_ = 342, _DIACRITICS_ = 343, _WITHOUT_ = 344, _WITHOUT_C_ = 345, _STEMMING_ = 346, _THESAURUS_ = 347, _STOP_ = 348, _WILDCARDS_ = 349, _ENTIRE_ = 350, _CONTENT_ = 351, _WORD_ = 352, _TYPE_ = 353, _START_ = 354, _END_ = 355, _MOST_ = 356, _SKIP_ = 357, _COPY_ = 358, _VALUE_ = 359, _WHITESPACE_ = 360, _PI_CONTENT_ = 361, _XML_COMMENT_CONTENT_ = 362, _EQ_ = 363, _NE_ = 364, _LT_ = 365, _LE_ = 366, _GT_ = 367, _GE_ = 368, _AT_ = 369, _QUOT_ATTR_CONTENT_ = 370, _APOS_ATTR_CONTENT_ = 371, _WHITESPACE_ELEMENT_CONTENT_ = 372, _ELEMENT_CONTENT_ = 373, _AT_LM_ = 374, _ORDERED_ = 375, _UNORDERED_ = 376, _QNAME_ = 377, _XMLNS_QNAME_ = 378, _CONSTR_QNAME_ = 379, _STRING_LITERAL_ = 380, _VARIABLE_ = 381, _NCNAME_COLON_STAR_ = 382, _STAR_COLON_NCNAME_ = 383, _PI_TARGET_ = 384, _PRAGMA_CONTENT_ = 385, _RETURN_ = 386, _FOR_ = 387, _IN_ = 388, _LET_ = 389, _WHERE_ = 390, _COUNT_ = 391, _BY_ = 392, _ORDER_ = 393, _STABLE_ = 394, _ASCENDING_ = 395, _DESCENDING_ = 396, _EMPTY_ = 397, _GREATEST_ = 398, _LEAST_ = 399, _COLLATION_ = 400, _SOME_ = 401, _EVERY_ = 402, _SATISFIES_ = 403, _TYPESWITCH_ = 404, _CASE_ = 405, _CASE_S_ = 406, _AS_ = 407, _IF_ = 408, _THEN_ = 409, _ELSE_ = 410, _OR_ = 411, _AND_ = 412, _INSTANCE_ = 413, _OF_ = 414, _CASTABLE_ = 415, _TO_ = 416, _DIV_ = 417, _MOD_ = 418, _UNION_ = 419, _INTERSECT_ = 420, _EXCEPT_ = 421, _VALIDATE_ = 422, _CAST_ = 423, _TREAT_ = 424, _IS_ = 425, _PRESERVE_ = 426, _STRIP_ = 427, _NAMESPACE_ = 428, _ITEM_ = 429, _EXTERNAL_ = 430, _ENCODING_ = 431, _NO_PRESERVE_ = 432, _INHERIT_ = 433, _NO_INHERIT_ = 434, _DECLARE_ = 435, _CONSTRUCTION_ = 436, _ORDERING_ = 437, _DEFAULT_ = 438, _COPY_NAMESPACES_ = 439, _OPTION_ = 440, _XQUERY_ = 441, _VERSION_ = 442, _IMPORT_ = 443, _SCHEMA_ = 444, _MODULE_ = 445, _ELEMENT_ = 446, _FUNCTION_ = 447, _FUNCTION_EXT_ = 448, _SCORE_ = 449, _CONTAINS_ = 450, _WEIGHT_ = 451, _WINDOW_ = 452, _DISTANCE_ = 453, _OCCURS_ = 454, _TIMES_ = 455, _SAME_ = 456, _DIFFERENT_ = 457, _LOWERCASE_ = 458, _UPPERCASE_ = 459, _RELATIONSHIP_ = 460, _LEVELS_ = 461, _LANGUAGE_ = 462, _ANY_ = 463, _ALL_ = 464, _PHRASE_ = 465, _EXACTLY_ = 466, _FROM_ = 467, _WORDS_ = 468, _SENTENCES_ = 469, _PARAGRAPHS_ = 470, _SENTENCE_ = 471, _PARAGRAPH_ = 472, _REPLACE_ = 473, _MODIFY_ = 474, _FIRST_ = 475, _INSERT_ = 476, _BEFORE_ = 477, _AFTER_ = 478, _REVALIDATION_ = 479, _WITH_ = 480, _NODES_ = 481, _RENAME_ = 482, _LAST_ = 483, _DELETE_ = 484, _INTO_ = 485, _UPDATING_ = 486, _ID_ = 487, _KEY_ = 488, _TEMPLATE_ = 489, _MATCHES_ = 490, _NAME_ = 491, _CALL_ = 492, _APPLY_ = 493, _TEMPLATES_ = 494, _MODE_ = 495, _FTOR_ = 496, _FTAND_ = 497, _FTNOT_ = 498, _PRIVATE_ = 499, _PUBLIC_ = 500, _DETERMINISTIC_ = 501, _NONDETERMINISTIC_ = 502, _XSLT_END_ELEMENT_ = 503, _XSLT_STYLESHEET_ = 504, _XSLT_TEMPLATE_ = 505, _XSLT_VALUE_OF_ = 506, _XSLT_TEXT_ = 507, _XSLT_APPLY_TEMPLATES_ = 508, _XSLT_CALL_TEMPLATE_ = 509, _XSLT_WITH_PARAM_ = 510, _XSLT_SEQUENCE_ = 511, _XSLT_PARAM_ = 512, _XSLT_FUNCTION_ = 513, _XSLT_CHOOSE_ = 514, _XSLT_WHEN_ = 515, _XSLT_OTHERWISE_ = 516, _XSLT_IF_ = 517, _XSLT_VARIABLE_ = 518, _XSLT_COMMENT_ = 519, _XSLT_PI_ = 520, _XSLT_DOCUMENT_ = 521, _XSLT_ATTRIBUTE_ = 522, _XSLT_NAMESPACE_ = 523, _XSLT_ELEMENT_ = 524, _XSLT_ANALYZE_STRING_ = 525, _XSLT_MATCHING_SUBSTRING_ = 526, _XSLT_NON_MATCHING_SUBSTRING_ = 527, _XSLT_COPY_OF_ = 528, _XSLT_COPY_ = 529, _XSLT_FOR_EACH_ = 530, _XSLT_OUTPUT_ = 531, _XSLT_IMPORT_SCHEMA_ = 532, _XSLT_VERSION_ = 533, _XSLT_MODE_ = 534, _XSLT_NAME_ = 535, _XSLT_DOCTYPE_PUBLIC_ = 536, _XSLT_DOCTYPE_SYSTEM_ = 537, _XSLT_ENCODING_ = 538, _XSLT_MEDIA_TYPE_ = 539, _XSLT_NORMALIZATION_FORM_ = 540, _XSLT_STANDALONE_ = 541, _XSLT_EXCLUDE_RESULT_PREFIXES_ = 542, _XSLT_NAMESPACE_STR_ = 543, _XSLT_SCHEMA_LOCATION_ = 544, _XSLT_TUNNEL_ = 545, _XSLT_REQUIRED_ = 546, _XSLT_OVERRIDE_ = 547, _XSLT_COPY_NAMESPACES_ = 548, _XSLT_INHERIT_NAMESPACES_ = 549, _XSLT_BYTE_ORDER_MARK_ = 550, _XSLT_ESCAPE_URI_ATTRIBUTES_ = 551, _XSLT_INCLUDE_CONTENT_TYPE_ = 552, _XSLT_INDENT_ = 553, _XSLT_OMIT_XML_DECLARATION_ = 554, _XSLT_UNDECLARE_PREFIXES_ = 555, _XSLT_MATCH_ = 556, _XSLT_AS_ = 557, _XSLT_SELECT_ = 558, _XSLT_PRIORITY_ = 559, _XSLT_TEST_ = 560, _XSLT_SEPARATOR_ = 561, _XSLT_NAMESPACE_A_ = 562, _XSLT_REGEX_ = 563, _XSLT_FLAGS_ = 564, _XSLT_METHOD_ = 565, _XSLT_CDATA_SECTION_ELEMENTS_ = 566, _XSLT_USE_CHARACTER_MAPS_ = 567, _XSLT_ELEMENT_NAME_ = 568, _XSLT_XMLNS_ATTR_ = 569, _XSLT_ATTR_NAME_ = 570, _XSLT_TEXT_NODE_ = 571, _XSLT_WS_TEXT_NODE_ = 572, _HASH_DEFAULT_ = 573, _HASH_ALL_ = 574, _HASH_CURRENT_ = 575, _XML_ = 576, _HTML_ = 577, _XHTML_ = 578 }; #endif /* Tokens. */ #define MYEOF 0 #define _LANG_XPATH2_ 258 #define _LANG_XQUERY_ 259 #define _LANG_XSLT2_ 260 #define _LANG_FUNCDECL_ 261 #define _LANG_DELAYEDMODULE_ 262 #define _LANG_FUNCTION_SIGNATURE_ 263 #define _DOLLAR_ 264 #define _COLON_EQUALS_ 265 #define _ASTERISK_ 266 #define _BAR_ 267 #define _BANG_EQUALS_ 268 #define _LESS_THAN_EQUALS_ 269 #define _GREATER_THAN_ 270 #define _GREATER_THAN_EQUALS_ 271 #define _LESS_THAN_LESS_THAN_ 272 #define _GREATER_THAN_GREATER_THAN_ 273 #define _COLON_COLON_ 274 #define _AT_SIGN_ 275 #define _LSQUARE_ 276 #define _RSQUARE_ 277 #define _QUESTION_MARK_ 278 #define _LESS_THAN_OP_OR_TAG_ 279 #define _START_TAG_CLOSE_ 280 #define _END_TAG_CLOSE_ 281 #define _PI_START_ 282 #define _XML_COMMENT_START_ 283 #define _XML_COMMENT_END_ 284 #define _SLASH_SLASH_ 285 #define _END_TAG_OPEN_ 286 #define _PRAGMA_OPEN_ 287 #define _COMMA_ 288 #define _PLUS_ 289 #define _MINUS_ 290 #define _SLASH_ 291 #define _EQUALS_ 292 #define _DOT_ 293 #define _DOT_DOT_ 294 #define _LPAR_ 295 #define _RPAR_ 296 #define _EMPTY_TAG_CLOSE_ 297 #define _VALUE_INDICATOR_ 298 #define _OPEN_QUOT_ 299 #define _CLOSE_QUOT_ 300 #define _OPEN_APOS_ 301 #define _CLOSE_APOS_ 302 #define _LBRACE_ 303 #define _RBRACE_ 304 #define _SEMICOLON_ 305 #define _HASH_ 306 #define _INTEGER_LITERAL_ 307 #define _DECIMAL_LITERAL_ 308 #define _DOUBLE_LITERAL_ 309 #define _ATTRIBUTE_ 310 #define _COMMENT_ 311 #define _DOCUMENT_NODE_ 312 #define _NAMESPACE_NODE_ 313 #define _NODE_ 314 #define _PROCESSING_INSTRUCTION_ 315 #define _SCHEMA_ATTRIBUTE_ 316 #define _SCHEMA_ELEMENT_ 317 #define _TEXT_ 318 #define _EMPTY_SEQUENCE_ 319 #define _BOUNDARY_SPACE_ 320 #define _FT_OPTION_ 321 #define _BASE_URI_ 322 #define _LAX_ 323 #define _STRICT_ 324 #define _IDIV_ 325 #define _CHILD_ 326 #define _DESCENDANT_ 327 #define _SELF_ 328 #define _DESCENDANT_OR_SELF_ 329 #define _FOLLOWING_SIBLING_ 330 #define _FOLLOWING_ 331 #define _PARENT_ 332 #define _ANCESTOR_ 333 #define _PRECEDING_SIBLING_ 334 #define _PRECEDING_ 335 #define _ANCESTOR_OR_SELF_ 336 #define _DOCUMENT_ 337 #define _NOT_ 338 #define _USING_ 339 #define _NO_ 340 #define _SENSITIVE_ 341 #define _INSENSITIVE_ 342 #define _DIACRITICS_ 343 #define _WITHOUT_ 344 #define _WITHOUT_C_ 345 #define _STEMMING_ 346 #define _THESAURUS_ 347 #define _STOP_ 348 #define _WILDCARDS_ 349 #define _ENTIRE_ 350 #define _CONTENT_ 351 #define _WORD_ 352 #define _TYPE_ 353 #define _START_ 354 #define _END_ 355 #define _MOST_ 356 #define _SKIP_ 357 #define _COPY_ 358 #define _VALUE_ 359 #define _WHITESPACE_ 360 #define _PI_CONTENT_ 361 #define _XML_COMMENT_CONTENT_ 362 #define _EQ_ 363 #define _NE_ 364 #define _LT_ 365 #define _LE_ 366 #define _GT_ 367 #define _GE_ 368 #define _AT_ 369 #define _QUOT_ATTR_CONTENT_ 370 #define _APOS_ATTR_CONTENT_ 371 #define _WHITESPACE_ELEMENT_CONTENT_ 372 #define _ELEMENT_CONTENT_ 373 #define _AT_LM_ 374 #define _ORDERED_ 375 #define _UNORDERED_ 376 #define _QNAME_ 377 #define _XMLNS_QNAME_ 378 #define _CONSTR_QNAME_ 379 #define _STRING_LITERAL_ 380 #define _VARIABLE_ 381 #define _NCNAME_COLON_STAR_ 382 #define _STAR_COLON_NCNAME_ 383 #define _PI_TARGET_ 384 #define _PRAGMA_CONTENT_ 385 #define _RETURN_ 386 #define _FOR_ 387 #define _IN_ 388 #define _LET_ 389 #define _WHERE_ 390 #define _COUNT_ 391 #define _BY_ 392 #define _ORDER_ 393 #define _STABLE_ 394 #define _ASCENDING_ 395 #define _DESCENDING_ 396 #define _EMPTY_ 397 #define _GREATEST_ 398 #define _LEAST_ 399 #define _COLLATION_ 400 #define _SOME_ 401 #define _EVERY_ 402 #define _SATISFIES_ 403 #define _TYPESWITCH_ 404 #define _CASE_ 405 #define _CASE_S_ 406 #define _AS_ 407 #define _IF_ 408 #define _THEN_ 409 #define _ELSE_ 410 #define _OR_ 411 #define _AND_ 412 #define _INSTANCE_ 413 #define _OF_ 414 #define _CASTABLE_ 415 #define _TO_ 416 #define _DIV_ 417 #define _MOD_ 418 #define _UNION_ 419 #define _INTERSECT_ 420 #define _EXCEPT_ 421 #define _VALIDATE_ 422 #define _CAST_ 423 #define _TREAT_ 424 #define _IS_ 425 #define _PRESERVE_ 426 #define _STRIP_ 427 #define _NAMESPACE_ 428 #define _ITEM_ 429 #define _EXTERNAL_ 430 #define _ENCODING_ 431 #define _NO_PRESERVE_ 432 #define _INHERIT_ 433 #define _NO_INHERIT_ 434 #define _DECLARE_ 435 #define _CONSTRUCTION_ 436 #define _ORDERING_ 437 #define _DEFAULT_ 438 #define _COPY_NAMESPACES_ 439 #define _OPTION_ 440 #define _XQUERY_ 441 #define _VERSION_ 442 #define _IMPORT_ 443 #define _SCHEMA_ 444 #define _MODULE_ 445 #define _ELEMENT_ 446 #define _FUNCTION_ 447 #define _FUNCTION_EXT_ 448 #define _SCORE_ 449 #define _CONTAINS_ 450 #define _WEIGHT_ 451 #define _WINDOW_ 452 #define _DISTANCE_ 453 #define _OCCURS_ 454 #define _TIMES_ 455 #define _SAME_ 456 #define _DIFFERENT_ 457 #define _LOWERCASE_ 458 #define _UPPERCASE_ 459 #define _RELATIONSHIP_ 460 #define _LEVELS_ 461 #define _LANGUAGE_ 462 #define _ANY_ 463 #define _ALL_ 464 #define _PHRASE_ 465 #define _EXACTLY_ 466 #define _FROM_ 467 #define _WORDS_ 468 #define _SENTENCES_ 469 #define _PARAGRAPHS_ 470 #define _SENTENCE_ 471 #define _PARAGRAPH_ 472 #define _REPLACE_ 473 #define _MODIFY_ 474 #define _FIRST_ 475 #define _INSERT_ 476 #define _BEFORE_ 477 #define _AFTER_ 478 #define _REVALIDATION_ 479 #define _WITH_ 480 #define _NODES_ 481 #define _RENAME_ 482 #define _LAST_ 483 #define _DELETE_ 484 #define _INTO_ 485 #define _UPDATING_ 486 #define _ID_ 487 #define _KEY_ 488 #define _TEMPLATE_ 489 #define _MATCHES_ 490 #define _NAME_ 491 #define _CALL_ 492 #define _APPLY_ 493 #define _TEMPLATES_ 494 #define _MODE_ 495 #define _FTOR_ 496 #define _FTAND_ 497 #define _FTNOT_ 498 #define _PRIVATE_ 499 #define _PUBLIC_ 500 #define _DETERMINISTIC_ 501 #define _NONDETERMINISTIC_ 502 #define _XSLT_END_ELEMENT_ 503 #define _XSLT_STYLESHEET_ 504 #define _XSLT_TEMPLATE_ 505 #define _XSLT_VALUE_OF_ 506 #define _XSLT_TEXT_ 507 #define _XSLT_APPLY_TEMPLATES_ 508 #define _XSLT_CALL_TEMPLATE_ 509 #define _XSLT_WITH_PARAM_ 510 #define _XSLT_SEQUENCE_ 511 #define _XSLT_PARAM_ 512 #define _XSLT_FUNCTION_ 513 #define _XSLT_CHOOSE_ 514 #define _XSLT_WHEN_ 515 #define _XSLT_OTHERWISE_ 516 #define _XSLT_IF_ 517 #define _XSLT_VARIABLE_ 518 #define _XSLT_COMMENT_ 519 #define _XSLT_PI_ 520 #define _XSLT_DOCUMENT_ 521 #define _XSLT_ATTRIBUTE_ 522 #define _XSLT_NAMESPACE_ 523 #define _XSLT_ELEMENT_ 524 #define _XSLT_ANALYZE_STRING_ 525 #define _XSLT_MATCHING_SUBSTRING_ 526 #define _XSLT_NON_MATCHING_SUBSTRING_ 527 #define _XSLT_COPY_OF_ 528 #define _XSLT_COPY_ 529 #define _XSLT_FOR_EACH_ 530 #define _XSLT_OUTPUT_ 531 #define _XSLT_IMPORT_SCHEMA_ 532 #define _XSLT_VERSION_ 533 #define _XSLT_MODE_ 534 #define _XSLT_NAME_ 535 #define _XSLT_DOCTYPE_PUBLIC_ 536 #define _XSLT_DOCTYPE_SYSTEM_ 537 #define _XSLT_ENCODING_ 538 #define _XSLT_MEDIA_TYPE_ 539 #define _XSLT_NORMALIZATION_FORM_ 540 #define _XSLT_STANDALONE_ 541 #define _XSLT_EXCLUDE_RESULT_PREFIXES_ 542 #define _XSLT_NAMESPACE_STR_ 543 #define _XSLT_SCHEMA_LOCATION_ 544 #define _XSLT_TUNNEL_ 545 #define _XSLT_REQUIRED_ 546 #define _XSLT_OVERRIDE_ 547 #define _XSLT_COPY_NAMESPACES_ 548 #define _XSLT_INHERIT_NAMESPACES_ 549 #define _XSLT_BYTE_ORDER_MARK_ 550 #define _XSLT_ESCAPE_URI_ATTRIBUTES_ 551 #define _XSLT_INCLUDE_CONTENT_TYPE_ 552 #define _XSLT_INDENT_ 553 #define _XSLT_OMIT_XML_DECLARATION_ 554 #define _XSLT_UNDECLARE_PREFIXES_ 555 #define _XSLT_MATCH_ 556 #define _XSLT_AS_ 557 #define _XSLT_SELECT_ 558 #define _XSLT_PRIORITY_ 559 #define _XSLT_TEST_ 560 #define _XSLT_SEPARATOR_ 561 #define _XSLT_NAMESPACE_A_ 562 #define _XSLT_REGEX_ 563 #define _XSLT_FLAGS_ 564 #define _XSLT_METHOD_ 565 #define _XSLT_CDATA_SECTION_ELEMENTS_ 566 #define _XSLT_USE_CHARACTER_MAPS_ 567 #define _XSLT_ELEMENT_NAME_ 568 #define _XSLT_XMLNS_ATTR_ 569 #define _XSLT_ATTR_NAME_ 570 #define _XSLT_TEXT_NODE_ 571 #define _XSLT_WS_TEXT_NODE_ 572 #define _HASH_DEFAULT_ 573 #define _HASH_ALL_ 574 #define _HASH_CURRENT_ 575 #define _XML_ 576 #define _HTML_ 577 #define _XHTML_ 578 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef int YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_TRIVIAL 1 #endif #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED typedef struct YYLTYPE { int first_line; int first_column; int last_line; int last_column; } YYLTYPE; # define yyltype YYLTYPE /* obsolescent; will be withdrawn */ # define YYLTYPE_IS_DECLARED 1 # define YYLTYPE_IS_TRIVIAL 1 #endif XQilla-2.3.0/src/parser/XQParser.y0000644000151400015140000053046711653565523013637 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ %{ #if defined(WIN32) && !defined(__CYGWIN__) // turn off the warnings "switch statement contains 'default' but no 'case' labels" // "'yyerrlab1' : unreferenced label" #pragma warning(disable : 4065 4102) #endif #include #include #include #include #include "../lexer/XQLexer.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "../config/xqilla_config.h" #define YYPARSE_PARAM qp #define YYDEBUG 1 #define YYERROR_VERBOSE // this removes a memory leak occurring when an error is found in the query (we throw an exception from inside // yyerror, preventing the bison-generated code from cleaning up the memory); by defining this macro we use // stack-based memory instead of the heap #define YYSTACK_USE_ALLOCA 1 #if HAVE_ALLOCA_H #include #elif defined __GNUC__ #undef alloca #define alloca __builtin_alloca #elif defined _AIX #define alloca __alloca #elif defined _MSC_VER #include #else #include #ifdef __cplusplus extern "C" #endif void *alloca (size_t); #endif #define QP ((XQParserArgs*)qp) #define CONTEXT (QP->_context) #define LANGUAGE (QP->_lexer->getLanguage()) #define MEMMGR (QP->_lexer->getMemoryManager()) #define REJECT_NOT_XQUERY(where,pos) if(!QP->_lexer->isXQuery()) { yyerror(LANGUAGE, #where, (pos).first_line, (pos).first_column); } #define REJECT_NOT_VERSION3(where,pos) if(!QP->_lexer->isVersion3()) { yyerror(LANGUAGE, #where, (pos).first_line, (pos).first_column); } #define WRAP(pos,object) (wrapForDebug((QP), (object), (pos).first_line, (pos).first_column)) #define LOCATION(pos,name) LocationInfo name(QP->_lexer->getFile(), (pos).first_line, (pos).first_column) #define GET_NAVIGATION(pos, object) (((object)->getType() == ASTNode::NAVIGATION) ? (XQNav*)(object) : WRAP(pos, new (MEMMGR) XQNav((object), MEMMGR))) #define PRESERVE_NS(pos, object) (QP->_lexer->getNSResolver() == 0 ? (object) : WRAP((pos), new (MEMMGR) XQNamespaceBinding(QP->_lexer->getNSResolver(), (object), MEMMGR))) #define BIT_ORDERING_SPECIFIED 0 #define BIT_BOUNDARY_SPECIFIED 1 #define BIT_COLLATION_SPECIFIED 2 #define BIT_BASEURI_SPECIFIED 3 #define BIT_CONSTRUCTION_SPECIFIED 4 #define BIT_EMPTYORDERING_SPECIFIED 5 #define BIT_COPYNAMESPACE_SPECIFIED 6 #define BIT_DEFAULTELEMENTNAMESPACE_SPECIFIED 7 #define BIT_DEFAULTFUNCTIONNAMESPACE_SPECIFIED 8 #define BIT_DECLARE_SECOND_STEP 9 #define BIT_REVALIDATION_SPECIFIED 10 #define CHECK_SECOND_STEP(pos, name) { \ if(QP->_flags.get(BIT_DECLARE_SECOND_STEP)) \ yyerror((pos), "Prolog contains " name " declaration after a variable, function or option declaration"); \ } #define CHECK_SPECIFIED(pos, bit, name, error) { \ if(QP->_flags.get(bit)) \ yyerror((pos), "Prolog contains more than one " name " declaration [err:" error "]"); \ QP->_flags.set(bit); \ } #define SET_NAMESPACE(pos, prefix, uri) { \ if(QP->_namespaceDecls.containsKey((prefix))) \ yyerror((pos), "Namespace prefix has already been bound to a namespace [err:XQST0033]"); \ QP->_namespaceDecls.put((prefix), NULL); \ CONTEXT->setNamespaceBinding((prefix), (uri)); \ } #define SET_BUILT_IN_NAMESPACE(prefix, uri) { \ if(!QP->_namespaceDecls.containsKey((prefix))) \ CONTEXT->setNamespaceBinding((prefix), (uri)); \ } #undef yylex #define yylex QP->_lexer->yylex #undef yyerror #define yyerror QP->_lexer->error XERCES_CPP_NAMESPACE_USE; using namespace std; static const XMLCh sz1_0[] = { chDigit_1, chPeriod, chDigit_0, chNull }; static const XMLCh sz3_0[] = { chDigit_3, chPeriod, chDigit_0, chNull }; static const XMLCh option_projection[] = { 'p', 'r', 'o', 'j', 'e', 'c', 't', 'i', 'o', 'n', 0 }; static const XMLCh option_psvi[] = { 'p', 's', 'v', 'i', 0 }; static const XMLCh option_lint[] = { 'l', 'i', 'n', 't', 0 }; static const XMLCh var_name[] = { 'n', 'a', 'm', 'e', 0 }; static const XMLCh XMLChXS[] = { chLatin_x, chLatin_s, chNull }; static const XMLCh XMLChXSI[] = { chLatin_x, chLatin_s, chLatin_i, chNull }; static const XMLCh XMLChFN[] = { chLatin_f, chLatin_n, chNull }; static const XMLCh XMLChLOCAL[] = { chLatin_l, chLatin_o, chLatin_c, chLatin_a, chLatin_l, chNull }; static const XMLCh XMLChERR[] = { chLatin_e, chLatin_r, chLatin_r, chNull }; static inline VectorOfASTNodes packageArgs(ASTNode *arg1Impl, ASTNode *arg2Impl, XPath2MemoryManager* memMgr) { VectorOfASTNodes args=VectorOfASTNodes(2,(ASTNode*)NULL,XQillaAllocator(memMgr)); args[0]=arg1Impl; args[1]=arg2Impl; return args; } static inline TupleNode *getLastAncestor(TupleNode *node) { while(node->getParent()) node = const_cast(node->getParent()); return node; } static inline TupleNode *setLastAncestor(TupleNode *node, TupleNode *ancestor) { getLastAncestor(node)->setParent(ancestor); return node; } template TYPE *wrapForDebug(XQParserArgs *qp, TYPE* pObjToWrap, unsigned int line, unsigned int column) { if(pObjToWrap->getLine() == 0) pObjToWrap->setLocationInfo(QP->_lexer->getFile(), line, column); return pObjToWrap; } #define RESOLVE_QNAME(pos, qname) const XMLCh *uri, *name; resolveQName((pos), QP, (qname), uri, name) static void resolveQName(const yyltype &pos, XQParserArgs *qp, const XMLCh *qname, const XMLCh *&uri, const XMLCh *&name) { const XMLCh *prefix = XPath2NSUtils::getPrefix(qname, MEMMGR); name = XPath2NSUtils::getLocalName(qname); if(prefix == 0 || *prefix == 0) { uri = 0; } else { if(QP->_lexer->getNSResolver() == 0) { if(prefix == 0 || *prefix == 0) uri = CONTEXT->getDefaultElementAndTypeNS(); else uri = CONTEXT->getNSResolver()->lookupNamespaceURI(prefix); } else { uri = QP->_lexer->getNSResolver()->lookupNamespaceURI(prefix); } if(uri == 0 || *uri == 0) { ostringstream oss; oss << "No namespace binding for prefix '" << UTF8(prefix) << "' [err:XTSE0280]"; yyerror(pos, oss.str().c_str()); } } } #define XSLT_VARIABLE_VALUE(pos, select, seqConstruct, seqType) variableValueXSLT((pos), QP, (select), (seqConstruct), (seqType)) static ASTNode *variableValueXSLT(const yyltype &pos, XQParserArgs *qp, ASTNode *select, XQSequence *seqConstruct, SequenceType *seqType) { if(!seqConstruct->getChildren().empty()) { if(select != 0) return 0; // signifies an error if(seqType == 0) { return WRAP(pos, new (MEMMGR) XQDocumentConstructor(seqConstruct, MEMMGR)); } return WRAP(pos, new (MEMMGR) XQFunctionConversion(seqConstruct, seqType, MEMMGR)); } if(select != 0) { if(seqType == 0) return select; return WRAP(pos, new (MEMMGR) XQFunctionConversion(select, seqType, MEMMGR)); } if(seqType == 0) { return WRAP(pos, new (MEMMGR) XQLiteral( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, XMLUni::fgZeroLenString, AnyAtomicType::STRING, MEMMGR)); } return WRAP(pos, new (MEMMGR) XQFunctionConversion(WRAP(pos, new (MEMMGR) XQSequence(MEMMGR)), seqType, MEMMGR)); } namespace XQParser { %} /* this gives a nice name to the $end token */ %token MYEOF 0 "" /* "Fake" tokens that decide which language we're parsing */ %token _LANG_XPATH2_ "" %token _LANG_XQUERY_ "" %token _LANG_XSLT2_ "" %token _LANG_FUNCDECL_ "" %token _LANG_DELAYEDMODULE_ "" %token _LANG_FUNCTION_SIGNATURE_ "" %token _DOLLAR_ "$" %token _COLON_EQUALS_ ":=" %token _ASTERISK_ "*" %token _BAR_ "|" %token _BANG_EQUALS_ "!=" %token _LESS_THAN_EQUALS_ "<=" %token _GREATER_THAN_ "> (comparison operator)" %token _GREATER_THAN_EQUALS_ ">=" %token _LESS_THAN_LESS_THAN_ "<<" %token _GREATER_THAN_GREATER_THAN_ ">>" %token _COLON_COLON_ "::" %token _AT_SIGN_ "@" %token _LSQUARE_ "[" %token _RSQUARE_ "]" %token _QUESTION_MARK_ "?" %token _LESS_THAN_OP_OR_TAG_ "<" %token _START_TAG_CLOSE_ "> (start tag close)" %token _END_TAG_CLOSE_ "> (end tag close)" %token _PI_START_ "" %token _SLASH_SLASH_ "//" %token _END_TAG_OPEN_ "" %token _VALUE_INDICATOR_ "=" %token _OPEN_QUOT_ "\" (open)" %token _CLOSE_QUOT_ "\" (close)" %token _OPEN_APOS_ "' (open)" %token _CLOSE_APOS_ "' (close)" %token _LBRACE_ "{" %token _RBRACE_ "}" %token _SEMICOLON_ ";" %token _HASH_ "#" %token _INTEGER_LITERAL_ "" %token _DECIMAL_LITERAL_ "" %token _DOUBLE_LITERAL_ "" %token _ATTRIBUTE_ "attribute" %token _COMMENT_ "comment" %token _DOCUMENT_NODE_ "document-node" %token _NAMESPACE_NODE_ "namespace-node" %token _NODE_ "node" %token _PROCESSING_INSTRUCTION_ "processing-instruction" %token _SCHEMA_ATTRIBUTE_ "schema-attribute" %token _SCHEMA_ELEMENT_ "schema-element" %token _TEXT_ "text" %token _EMPTY_SEQUENCE_ "empty-sequence" %token _BOUNDARY_SPACE_ "boundary-space" %token _FT_OPTION_ "ft-option" %token _BASE_URI_ "base-uri" %token _LAX_ "lax" %token _STRICT_ "strict" %token _IDIV_ "idiv" %token _CHILD_ "child" %token _DESCENDANT_ "descendant" %token _SELF_ "self" %token _DESCENDANT_OR_SELF_ "descendant-or-self" %token _FOLLOWING_SIBLING_ "following-sibling" %token _FOLLOWING_ "following" %token _PARENT_ "parent" %token _ANCESTOR_ "ancestor" %token _PRECEDING_SIBLING_ "preceding-sibling" %token _PRECEDING_ "preceding" %token _ANCESTOR_OR_SELF_ "ancestor-of-self" %token _DOCUMENT_ "document" %token _NOT_ "not" %token _USING_ "using" %token _NO_ "no" %token _SENSITIVE_ "sensitive" %token _INSENSITIVE_ "insensitive" %token _DIACRITICS_ "diacritics" %token _WITHOUT_ "without" %token _WITHOUT_C_ "without (followed by content)" %token _STEMMING_ "stemming" %token _THESAURUS_ "thesaurus" %token _STOP_ "stop" %token _WILDCARDS_ "wildcards" %token _ENTIRE_ "entire" %token _CONTENT_ "content" %token _WORD_ "word" %token _TYPE_ "type" %token _START_ "start" %token _END_ "end" %token _MOST_ "most" %token _SKIP_ "skip" %token _COPY_ "copy" %token _VALUE_ "value" %token _WHITESPACE_ "" %token _PI_CONTENT_ "" %token _XML_COMMENT_CONTENT_ "" %token _EQ_ "eq" %token _NE_ "ne" %token _LT_ "lt" %token _LE_ "le" %token _GT_ "gt" %token _GE_ "ge" %token _AT_ "at" %token _QUOT_ATTR_CONTENT_ "" %token _APOS_ATTR_CONTENT_ "" %token _WHITESPACE_ELEMENT_CONTENT_ "" %token _ELEMENT_CONTENT_ "" %token _AT_LM_ "at (followed by least or most)" %token _ORDERED_ "ordered" %token _UNORDERED_ "unordered" %token _QNAME_ "" %token _XMLNS_QNAME_ "" %token _CONSTR_QNAME_ "" %token _STRING_LITERAL_ "'...'" %token _VARIABLE_ "variable" %token _NCNAME_COLON_STAR_ ":*" %token _STAR_COLON_NCNAME_ "*:" %token _PI_TARGET_ "" %token _PRAGMA_CONTENT_ "" %token _RETURN_ "return" %token _FOR_ "for" %token _IN_ "in" %token _LET_ "let" %token _WHERE_ "where" %token _COUNT_ "count" %token _BY_ "by" %token _ORDER_ "order" %token _STABLE_ "stable" %token _ASCENDING_ "ascending" %token _DESCENDING_ "descending" %token _EMPTY_ "empty" %token _GREATEST_ "greatest" %token _LEAST_ "least" %token _COLLATION_ "collation" %token _SOME_ "some" %token _EVERY_ "every" %token _SATISFIES_ "satisfies" %token _TYPESWITCH_ "typeswitch" %token _CASE_ "case" %token _CASE_S_ "case (followed by (in)sensitive)" %token _AS_ "as" %token _IF_ "if" %token _THEN_ "then" %token _ELSE_ "else" %token _OR_ "or" %token _AND_ "and" %token _INSTANCE_ "instance" %token _OF_ "of" %token _CASTABLE_ "castable" %token _TO_ "to" %token _DIV_ "div" %token _MOD_ "mod" %token _UNION_ "union" %token _INTERSECT_ "intersect" %token _EXCEPT_ "except" %token _VALIDATE_ "validate" %token _CAST_ "cast" %token _TREAT_ "treat" %token _IS_ "is" %token _PRESERVE_ "preserve" %token _STRIP_ "strip" %token _NAMESPACE_ "namespace" %token _ITEM_ "item" %token _EXTERNAL_ "external" %token _ENCODING_ "encoding" %token _NO_PRESERVE_ "no-preserve" %token _INHERIT_ "inherit" %token _NO_INHERIT_ "no-inherit" %token _DECLARE_ "declare" %token _CONSTRUCTION_ "construction" %token _ORDERING_ "ordering" %token _DEFAULT_ "default" %token _COPY_NAMESPACES_ "copy-namespaces" %token _OPTION_ "option" %token _XQUERY_ "xquery" %token _VERSION_ "version" %token _IMPORT_ "import" %token _SCHEMA_ "schema" %token _MODULE_ "module" %token _ELEMENT_ "element" %token _FUNCTION_ "function" %token _FUNCTION_EXT_ "function (ext)" %token _SCORE_ "score" %token _CONTAINS_ "contains" %token _WEIGHT_ "weight" %token _WINDOW_ "window" %token _DISTANCE_ "distance" %token _OCCURS_ "occurs" %token _TIMES_ "times" %token _SAME_ "same" %token _DIFFERENT_ "different" %token _LOWERCASE_ "lowercase" %token _UPPERCASE_ "uppercase" %token _RELATIONSHIP_ "relationship" %token _LEVELS_ "levels" %token _LANGUAGE_ "language" %token _ANY_ "any" %token _ALL_ "all" %token _PHRASE_ "phrase" %token _EXACTLY_ "exactly" %token _FROM_ "from" %token _WORDS_ "words" %token _SENTENCES_ "sentences" %token _PARAGRAPHS_ "paragraphs" %token _SENTENCE_ "sentence" %token _PARAGRAPH_ "paragraph" %token _REPLACE_ "replace" %token _MODIFY_ "modify" %token _FIRST_ "first" %token _INSERT_ "insert" %token _BEFORE_ "before" %token _AFTER_ "after" %token _REVALIDATION_ "revalidation" %token _WITH_ "with" %token _NODES_ "nodes" %token _RENAME_ "rename" %token _LAST_ "last" %token _DELETE_ "delete" %token _INTO_ "into" %token _UPDATING_ "updating" %token _ID_ "id" %token _KEY_ "key" %token _TEMPLATE_ "template" %token _MATCHES_ "matches" %token _NAME_ "name" %token _CALL_ "call" %token _APPLY_ "apply" %token _TEMPLATES_ "templates" %token _MODE_ "mode" %token _FTOR_ "ftor" %token _FTAND_ "ftand" %token _FTNOT_ "ftnot" %token _PRIVATE_ "private" %token _PUBLIC_ "public" %token _DETERMINISTIC_ "deterministic" %token _NONDETERMINISTIC_ "nondeterministic" /* XSLT 2.0 tokens */ %token _XSLT_END_ELEMENT_ "" %token _XSLT_STYLESHEET_ " _XSLT_VERSION_ "version='...'" %token _XSLT_MODE_ "mode='...'" %token _XSLT_NAME_ "name='...'" %token _XSLT_DOCTYPE_PUBLIC_ "doctype-public='...'" %token _XSLT_DOCTYPE_SYSTEM_ "doctype-system='...'" %token _XSLT_ENCODING_ "encoding='...'" %token _XSLT_MEDIA_TYPE_ "media-type='...'" %token _XSLT_NORMALIZATION_FORM_ "normalization-form='...'" %token _XSLT_STANDALONE_ "standalone='...'" %token _XSLT_EXCLUDE_RESULT_PREFIXES_ "exclude-result-prefixes='...'" %token _XSLT_NAMESPACE_STR_ "namespace='...' (string)" %token _XSLT_SCHEMA_LOCATION_ "schema-location='...'" %token _XSLT_TUNNEL_ "tunnel='...'" %token _XSLT_REQUIRED_ "required='...'" %token _XSLT_OVERRIDE_ "override='...'" %token _XSLT_COPY_NAMESPACES_ "copy-namespaces='...'" %token _XSLT_INHERIT_NAMESPACES_ "inherit-namespaces='...'" %token _XSLT_BYTE_ORDER_MARK_ "byte-order-mark='...'" %token _XSLT_ESCAPE_URI_ATTRIBUTES_ "escape-uri-attributes='...'" %token _XSLT_INCLUDE_CONTENT_TYPE_ "include-content-type='...'" %token _XSLT_INDENT_ "indent='...'" %token _XSLT_OMIT_XML_DECLARATION_ "omit-xml-declaration='...'" %token _XSLT_UNDECLARE_PREFIXES_ "undeclare-prefixes='...'" %token _XSLT_MATCH_ "match='...'" %token _XSLT_AS_ "as='...'" %token _XSLT_SELECT_ "select='...'" %token _XSLT_PRIORITY_ "priority='...'" %token _XSLT_TEST_ "test='...'" %token _XSLT_SEPARATOR_ "separator='...'" %token _XSLT_NAMESPACE_A_ "namespace='...' (attribute value template)" %token _XSLT_REGEX_ "regex='...'" %token _XSLT_FLAGS_ "flags='...'" %token _XSLT_METHOD_ "method='...'" %token _XSLT_CDATA_SECTION_ELEMENTS_ "cdata-section-elements='...'" %token _XSLT_USE_CHARACTER_MAPS_ "use-character-maps='...'" %token _XSLT_ELEMENT_NAME_ "" %token _XSLT_XMLNS_ATTR_ "" %token _XSLT_ATTR_NAME_ "" %token _XSLT_TEXT_NODE_ "" %token _XSLT_WS_TEXT_NODE_ "" %token _HASH_DEFAULT_ "#default" %token _HASH_ALL_ "#all" %token _HASH_CURRENT_ "#current" %token _XML_ "xml" %token _HTML_ "html" %token _XHTML_ "xhtml" %type FunctionDecl TemplateDecl FunctionAttrs_XSLT TemplateAttrs_XSLT %type GlobalVariableAttrs_XSLT GlobalParamAttrs_XSLT %type Param Param_XSLT ParamAttrs_XSLT %type ParamList FunctionParamList TemplateParamList ParamList_XSLT %type Expr ExprSingle OrExpr AndExpr EnclosedExpr FLWORExpr IfExpr ComparisonExpr DecimalLiteral VarRef %type RangeExpr AdditiveExpr MultiplicativeExpr UnionExpr QuantifiedExpr StringLiteral Literal ContextItemExpr %type UnaryExpr ValidateExpr CastExpr TreatExpr IntersectExceptExpr ParenthesizedExpr PrimaryExpr FunctionCall %type RelativePathExpr StepExpr AxisStep PostfixExpr TypeswitchExpr ValueExpr PathExpr NumericLiteral IntegerLiteral %type CastableExpr Constructor ComputedConstructor DirElemConstructor DirCommentConstructor DirPIConstructor %type CompElemConstructor CompTextConstructor CompPIConstructor CompCommentConstructor OrderedExpr UnorderedExpr %type CompAttrConstructor CompDocConstructor DoubleLiteral InstanceofExpr DirectConstructor %type ExtensionExpr FTContainsExpr FTIgnoreOption VarDeclValue LeadingSlash CompPINCName %type InsertExpr DeleteExpr RenameExpr ReplaceExpr TransformExpr CompElementName CompAttrName %type ForwardStep ReverseStep AbbrevForwardStep AbbrevReverseStep OrderExpr CompPIConstructorContent %type PathPattern_XSLT IdValue_XSLT KeyValue_XSLT CallTemplateExpr ApplyTemplatesExpr %type DynamicFunctionInvocation InlineFunction LiteralFunctionItem FunctionItemExpr %type ForwardStepPredicateList ReverseStepPredicateList Argument FunctionBody CompNamespaceConstructor %type LiteralResultElement_XSLT ValueOf_XSLT ValueOfAttrs_XSLT Text_XSLT TextNode_XSLT ApplyTemplates_XSLT %type ApplyTemplatesAttrs_XSLT CallTemplate_XSLT CallTemplateAttrs_XSLT Sequence_XSLT Choose_XSLT If_XSLT %type WhenList_XSLT When_XSLT Otherwise_XSLT Variable_XSLT Comment_XSLT CommentAttrs_XSLT %type PI_XSLT PIAttrs_XSLT Document_XSLT DocumentAttrs_XSLT Attribute_XSLT AttributeAttrs_XSLT %type AnalyzeString_XSLT AnalyzeStringAttrs_XSLT MatchingSubstring_XSLT NonMatchingSubstring_XSLT %type CopyOf_XSLT CopyOfAttrs_XSLT Copy_XSLT CopyAttrs_XSLT ForEach_XSLT ForEachAttrs_XSLT Instruction_XSLT %type SequenceAttrs_XSLT IfAttrs_XSLT WhenAttrs_XSLT Element_XSLT ElementAttrs_XSLT Namespace_XSLT NamespaceAttrs_XSLT %type RelativePathPattern_XSLT PatternStep_XSLT IdKeyPattern_XSLT PathPatternStart_XSLT %type SequenceConstructor_XSLT %type FTSelection FTWords FTUnaryNot FTMildnot FTAnd FTOr FTPrimaryWithOptions FTPrimary FTExtensionSelection %type FTPosFilter %type FTPosFilters %type FTAnyallOption %type FTRange %type FTUnit FTBigUnit %type DirElementContent DirAttributeList QuotAttrValueContent AposAttrValueContent DirAttributeValue FunctionCallArgumentList %type ContentExpr LiteralDirAttributeValue LiteralQuotAttrValueContent LiteralAposAttrValueContent AttrValueTemplate_XSLT Pattern_XSLT %type LiteralResultElementAttrs_XSLT %type PatternStepPredicateList_XSLT %type ForwardAxis ReverseAxis %type NodeTest NameTest Wildcard PatternAxis_XSLT %type QName AtomicType TypeName ElementName AttributeName ElementNameOrWildcard AttribNameOrWildcard AttributeDeclaration ElementDeclaration %type SequenceType TypeDeclaration SingleType TemplateSequenceType FunctionDeclReturnType %type FunctionTypeArguments %type OccurrenceIndicator SingleTypeOccurrence %type ItemType KindTest AttributeTest SchemaAttributeTest PITest CommentTest TextTest AnyKindTest ElementTest DocumentTest SchemaElementTest %type FunctionTest AnyFunctionTest TypedFunctionTest ParenthesizedItemType NamespaceNodeTest %type TransformBinding %type TransformBindingList %type TemplateArgument WithParamAttrs_XSLT WithParam_XSLT %type TemplateArgumentList ApplyTemplatesContent_XSLT CallTemplateContent_XSLT %type ForBinding LetBinding WhereClause FLWORTuples OrderByClause OrderSpec OrderSpecList CountClause %type ForClause LetClause ForBindingList LetBindingList QuantifyBinding QuantifyBindingList InitialClause IntermediateClause %type VariableAttrs_XSLT %type DefaultCase %type CaseClauseList CaseClause CaseSequenceTypeUnion %type OrderDirection EmptyHandling %type ResourceLocations %type PositionalVar SchemaPrefix URILiteral FTScoreVar DirCommentContents DirElemConstructorQName %type FunctionName QNameValue VarName NCName DirPIContents PragmaContents Number_XSLT CaseClauseVariable %type TemplateModes_XSLT TemplateDeclModesSection TemplateDeclModes %type ApplyTemplatesMode_XSLT ApplyTemplatesMode TemplateDeclMode %type FunctionOptions %type PreserveMode InheritMode PrivateOption DeterministicOption %start SelectLanguage %pure_parser // We're expecting 50 shift/reduce conflicts. These have been checked and are harmless. // 48 arise from the xgs:leading-lone-slash grammar constraint (http://www.w3.org/TR/xquery/#parse-note-leading-lone-slash) // 2 arise from the xgs:occurrence-indicator grammar constriant (http://www.w3.org/TR/xquery/#parse-note-occurence-indicators) //%expect 50 // We're expecting 90 shift/reduce conflicts. These have been checked and are harmless. // 49 arise from the xgs:leading-lone-slash grammar constraint (http://www.w3.org/TR/xquery/#parse-note-leading-lone-slash) // 3 arise from the xgs:occurrence-indicator grammar constriant (http://www.w3.org/TR/xquery/#parse-note-occurence-indicators) // 17 are due to template extensions // 21 are due to Variable_XSLT %expect 90 %% // Select the language we parse, based on the (fake) first token from the lexer SelectLanguage: _LANG_XPATH2_ XPathBuiltinNamespaces QueryBody | _LANG_XQUERY_ XQueryBuiltinNamespaces Module | _LANG_FUNCDECL_ XQueryBuiltinNamespaces Start_FunctionDecl | _LANG_XSLT2_ Start_XSLT | _LANG_DELAYEDMODULE_ Start_DelayedModule | _LANG_FUNCTION_SIGNATURE_ Start_FunctionSignature ; XPathBuiltinNamespaces: /* empty */ { SET_BUILT_IN_NAMESPACE(XQillaFunction::XQillaPrefix, XQillaFunction::XMLChFunctionURI); } ; XQueryBuiltinNamespaces: /* empty */ { SET_BUILT_IN_NAMESPACE(XMLChXS, SchemaSymbols::fgURI_SCHEMAFORSCHEMA); SET_BUILT_IN_NAMESPACE(XMLChXSI, SchemaSymbols::fgURI_XSI); SET_BUILT_IN_NAMESPACE(XMLChFN, XQFunction::XMLChFunctionURI); SET_BUILT_IN_NAMESPACE(XMLChLOCAL, XQUserFunction::XMLChXQueryLocalFunctionsURI); SET_BUILT_IN_NAMESPACE(XMLChERR, FunctionError::XMLChXQueryErrorURI); SET_BUILT_IN_NAMESPACE(XQillaFunction::XQillaPrefix, XQillaFunction::XMLChFunctionURI); } ; Start_FunctionDecl: _DECLARE_ FunctionOptions FunctionKeyword FunctionName FunctionParamList FunctionDeclReturnType EnclosedExpr FunctionDecl_MaybeSemicolon { $2->argSpecs = $5; $2->returnType = $6; QP->_function = WRAP(@1, new (MEMMGR) XQUserFunction($4, $2, $7, true, MEMMGR)); } ; FunctionDecl_MaybeSemicolon: /* empty */ | Separator; Start_FunctionSignature: FunctionOptions FunctionParamList FunctionDeclReturnType { $1->argSpecs = $2; $1->returnType = $3; QP->_signature = $1; } ; Start_DelayedModule: DM_ModuleDecl DM_Prolog { printf(" { 0, 0, 0, 0, 0 }\n};\n\n"); UTF8Str module(QP->_moduleName); printf("static const DelayedModule %s_module = { %s_file, %s_prefix, %s_uri, %s_functions };\n", module.str(), module.str(), module.str(), module.str(), module.str()); } ; DM_ModuleDecl: _MODULE_ _NAMESPACE_ NCName _EQUALS_ URILiteral Separator { QP->_moduleName = $3; UTF8Str module(QP->_moduleName); UTF8Str file(QP->_lexer->getFile()); printf("// Auto-generated by compile-delayed-module from %s\n", file.str()); printf("// DO NOT EDIT\n\n"); printf("// %s\n", file.str()); printf("static const XMLCh %s_file[] = { ", module.str()); const XMLCh *ptr = QP->_lexer->getFile(); for(; *ptr != 0; ++ptr) { printf("%d, ", *ptr); } printf("0 };\n\n"); printf("// %s\n", UTF8($3)); printf("static const XMLCh %s_prefix[] = { ", module.str()); ptr = $3; for(; *ptr != 0; ++ptr) { printf("%d, ", *ptr); } printf("0 };\n\n"); printf("// %s\n", UTF8($5)); printf("static const XMLCh %s_uri[] = { ", module.str()); ptr = $5; for(; *ptr != 0; ++ptr) { printf("%d, ", *ptr); } printf("0 };\n\n"); } ; DM_Prolog: /* empty */ { printf("static const DelayedModule::FuncDef %s_functions[] = {\n", UTF8(QP->_moduleName)); } | DM_Prolog DM_FunctionDecl { } ; DM_FunctionDecl: _DECLARE_ FunctionOptions FunctionKeyword FunctionName FunctionParamList FunctionDeclReturnType EnclosedExpr Separator { XMLBuffer buf; const XMLCh *localname = XPath2NSUtils::getLocalName($4); printf(" {\n \"%s\", %d, %s, %d, %d,\n", UTF8(localname), (int)($5 ? $5->size() : 0), $2->privateOption == FunctionSignature::OP_TRUE ? "true" : "false", @1.first_line, @1.first_column); printf(" \""); const XMLCh *ptr = ((XQLexer*)QP->_lexer)->getQueryString() + @1.first_offset; const XMLCh *start = ptr; const XMLCh *end = ((XQLexer*)QP->_lexer)->getQueryString() + @8.last_offset; for(;ptr < end; ++ptr) { if(*ptr == '"') { if((ptr - start) == 0) buf.reset(); else buf.set(start, ptr - start); printf("%s\\\"", UTF8(buf.getRawBuffer())); start = ptr + 1; } else if(*ptr == '\n') { if((ptr - start) == 0) buf.reset(); else buf.set(start, ptr - start); printf("%s\\n\"\n \"", UTF8(buf.getRawBuffer())); start = ptr + 1; } } buf.set(start, ptr - start); printf("%s\\n\"\n", UTF8(buf.getRawBuffer())); printf(" },\n"); } ; //////////////////////////////////////////////////////////////////////////////////////////////////// // XSLT rules Start_XSLT: Stylesheet_XSLT { SequenceType *optionalString = WRAP(@1, new (MEMMGR) SequenceType(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, AnyAtomicType::fgDT_ANYATOMICTYPE, SequenceType::QUESTION_MARK, MEMMGR)); XQGlobalVariable *nameVar = WRAP(@1, new (MEMMGR) XQGlobalVariable(0, optionalString, WRAP(@1, new (MEMMGR) XQSequence(MEMMGR)), MEMMGR, /*isParam*/true)); nameVar->setVariableURI(XQillaFunction::XMLChFunctionURI); nameVar->setVariableLocalName(var_name); QP->_query->addVariable(nameVar); ASTNode *nameVarRef1 = WRAP(@1, new (MEMMGR) XQVariable(XQillaFunction::XMLChFunctionURI, var_name, MEMMGR)); XQCallTemplate *call = WRAP(@1, new (MEMMGR) XQCallTemplate(nameVarRef1, 0, MEMMGR)); ASTNode *ci = WRAP(@1, new (MEMMGR) XQContextItem(MEMMGR)); ASTNode *apply = WRAP(@1, new (MEMMGR) XQApplyTemplates(ci, 0, 0, MEMMGR)); VectorOfASTNodes *args = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); args->push_back(WRAP(@1, new (MEMMGR) XQVariable(XQillaFunction::XMLChFunctionURI, var_name, MEMMGR))); ASTNode *exists = WRAP(@1, new (MEMMGR) XQFunctionCall(0, XQFunction::XMLChFunctionURI, MEMMGR->getPooledString("exists"), args, MEMMGR)); QP->_query->setQueryBody(WRAP(@1, new (MEMMGR) XQIf(exists, call, apply, MEMMGR))); } ; Stylesheet_XSLT: _XSLT_STYLESHEET_ StylesheetAttrs_XSLT StylesheetContent_XSLT _XSLT_END_ELEMENT_ { } | LiteralResultElement_XSLT { // TBD Check for xsl:version attr - jpcs NodeTest *nt = new (MEMMGR) NodeTest(); nt->setNodeType(Node::document_string); nt->setNameWildcard(); nt->setNamespaceWildcard(); VectorOfASTNodes *pattern = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); pattern->push_back(WRAP(@1, new (MEMMGR) XQStep(XQStep::SELF, nt, MEMMGR))); XQUserFunction::ModeList *modelist = new (MEMMGR) XQUserFunction::ModeList(XQillaAllocator(MEMMGR)); modelist->push_back(WRAP(@1, new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::DEFAULT))); FunctionSignature *signature = new (MEMMGR) FunctionSignature(MEMMGR); XQUserFunction *func = WRAP(@1, new (MEMMGR) XQUserFunction(0, pattern, signature, $1, MEMMGR)); func->setModeList(modelist); QP->_query->addFunction(func); } ; StylesheetAttrs_XSLT: /* empty */ | StylesheetAttrs_XSLT _XSLT_VERSION_ { // TBD Check the value - jpcs } | StylesheetAttrs_XSLT _XSLT_EXCLUDE_RESULT_PREFIXES_ { // TBD implement exclude-result-prefixes - jpcs } // TBD the rest of the attrs - jpcs ; StylesheetContent_XSLT: /* empty */ | StylesheetContent_XSLT Template_XSLT | StylesheetContent_XSLT Function_XSLT | StylesheetContent_XSLT GlobalParam_XSLT | StylesheetContent_XSLT GlobalVariable_XSLT | StylesheetContent_XSLT Output_XSLT | StylesheetContent_XSLT ImportSchema_XSLT ; Template_XSLT: TemplateAttrs_XSLT ParamList_XSLT SequenceConstructor_XSLT _XSLT_END_ELEMENT_ { if($1->getName() == 0 && $1->getPattern() == 0) { yyerror(@1, "The xsl:template declaration does not have either a {}name or {}match attribute, or both [err:XTSE0500]"); } if($1->getPattern() != 0 && $1->getModeList() == 0) { XQUserFunction::ModeList *modelist = new (MEMMGR) XQUserFunction::ModeList(XQillaAllocator(MEMMGR)); modelist->push_back(WRAP(@1, new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::DEFAULT))); $1->setModeList(modelist); } $1->getSignature()->argSpecs = $2; $1->setFunctionBody($3); QP->_query->addFunction($1); } ; TemplateAttrs_XSLT: _XSLT_TEMPLATE_ { FunctionSignature *signature = new (MEMMGR) FunctionSignature(MEMMGR); $$ = WRAP(@1, new (MEMMGR) XQUserFunction(0, 0, signature, 0, MEMMGR)); } | TemplateAttrs_XSLT _XSLT_MATCH_ Pattern_XSLT { $$ = $1; $$->setPattern($3); } | TemplateAttrs_XSLT _XSLT_NAME_ { $$ = $1; RESOLVE_QNAME(@2, $2); $$->setURI(uri); $$->setName(name); } | TemplateAttrs_XSLT _XSLT_PRIORITY_ Number_XSLT { $$ = $1; // TBD priority - jpcs } | TemplateAttrs_XSLT _XSLT_MODE_ TemplateModes_XSLT { $$ = $1; $$->setModeList($3); } | TemplateAttrs_XSLT _XSLT_AS_ SequenceType { $$ = $1; $$->getSignature()->returnType = $3; } ; TemplateModes_XSLT: /* empty */ { $$ = new (MEMMGR) XQUserFunction::ModeList(XQillaAllocator(MEMMGR)); } | TemplateModes_XSLT _QNAME_ { RESOLVE_QNAME(@2, $2); $1->push_back(WRAP(@2, new (MEMMGR) XQUserFunction::Mode(uri, name))); $$ = $1; } | TemplateModes_XSLT _HASH_DEFAULT_ { $1->push_back(WRAP(@2, new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::DEFAULT))); $$ = $1; } | TemplateModes_XSLT _HASH_ALL_ { $1->push_back(WRAP(@2, new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::ALL))); $$ = $1; } ; Number_XSLT: _INTEGER_LITERAL_ | _DECIMAL_LITERAL_ | _DOUBLE_LITERAL_; Function_XSLT: FunctionAttrs_XSLT ParamList_XSLT SequenceConstructor_XSLT _XSLT_END_ELEMENT_ { if($1->getName() == 0) { yyerror(@1, "The xsl:function declaration does not have a {}name attribute"); } $1->getSignature()->argSpecs = $2; $1->setFunctionBody($3); QP->_query->addFunction($1); } ; FunctionAttrs_XSLT: _XSLT_FUNCTION_ { FunctionSignature *signature = new (MEMMGR) FunctionSignature(MEMMGR); $$ = WRAP(@1, new (MEMMGR) XQUserFunction(0, signature, 0, true, MEMMGR)); } | FunctionAttrs_XSLT _XSLT_NAME_ { $$ = $1; RESOLVE_QNAME(@2, $2); $$->setURI(uri); $$->setName(name); } | FunctionAttrs_XSLT _XSLT_AS_ SequenceType { $$ = $1; $$->getSignature()->returnType = $3; } | FunctionAttrs_XSLT _XSLT_OVERRIDE_ { $$ = $1; // TBD override - jpcs } ; ParamList_XSLT: /* empty */ { $$ = new (MEMMGR) ArgumentSpecs(XQillaAllocator(MEMMGR)); } | ParamList_XSLT Param_XSLT { $$ = $1; $$->push_back($2); } ; Param_XSLT: ParamAttrs_XSLT SequenceConstructor_XSLT _XSLT_END_ELEMENT_ { $$ = $1; if($$->getName() == 0) { yyerror(@1, "The xsl:param instruction does not have a {}name attribute"); } if($$->getType() == 0) { $$->setType(WRAP(@1, new (MEMMGR) SequenceType(new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ANYTHING), SequenceType::STAR))); } // TBD default parameter values - jpcs /* if(!$2->getChildren().empty()) { */ /* if($$->value != 0) { */ /* yyerror(@1, "The xsl:with-param instruction has both a select attribute and a sequence constructor [err:XTSE0870]"); */ /* } */ /* $$->value = $2; */ /* } */ /* else if($$->value == 0) { */ /* yyerror(@1, "The xsl:with-param instruction has neither a select attribute nor a sequence constructor [err:XTSE0870]"); */ /* } */ } ; ParamAttrs_XSLT: _XSLT_PARAM_ { $$ = WRAP(@1, new (MEMMGR) ArgumentSpec(0, 0, MEMMGR)); } | ParamAttrs_XSLT _XSLT_NAME_ { $$ = $1; RESOLVE_QNAME(@2, $2); $$->setURI(uri); $$->setName(name); } | ParamAttrs_XSLT _XSLT_SELECT_ Expr { $$ = $1; // TBD default parameter values - jpcs /* $$->value = PRESERVE_NS(@2, $3); */ } | ParamAttrs_XSLT _XSLT_AS_ SequenceType { $$ = $1; $$->setType($3); } | ParamAttrs_XSLT _XSLT_REQUIRED_ { $$ = $1; // TBD required - jpcs } | ParamAttrs_XSLT _XSLT_TUNNEL_ { $$ = $1; // TBD tunnel parameters - jpcs } ; GlobalParam_XSLT: GlobalParamAttrs_XSLT SequenceConstructor_XSLT _XSLT_END_ELEMENT_ { if($1->isRequired()) { if($1->getVariableExpr() != 0 || !$2->getChildren().empty()) { yyerror(@1, "A required xsl:param declaration must be empty and must not specify a {}select attribute"); } } else { $1->setVariableExpr(XSLT_VARIABLE_VALUE(@1, (ASTNode*)$1->getVariableExpr(), $2, (SequenceType*)$1->getSequenceType())); if($1->getVariableExpr() == 0) { yyerror(@1, "The xsl:param declaration has both a select attribute and a sequence constructor [err:XTSE0620]"); } } if($1->getVariableLocalName() == 0) { yyerror(@1, "The xsl:param declaration does not have a {}name attribute"); } QP->_query->addVariable($1); } ; GlobalParamAttrs_XSLT: _XSLT_PARAM_ { $$ = WRAP(@1, new (MEMMGR) XQGlobalVariable(0, 0, 0, MEMMGR, /*isParam*/true)); } | GlobalParamAttrs_XSLT _XSLT_NAME_ { RESOLVE_QNAME(@2, $2); $1->setVariableURI(uri); $1->setVariableLocalName(name); $$ = $1; } | GlobalParamAttrs_XSLT _XSLT_SELECT_ Expr { $1->setVariableExpr(PRESERVE_NS(@2, $3)); $$ = $1; } | GlobalParamAttrs_XSLT _XSLT_AS_ SequenceType { $1->setSequenceType($3); $$ = $1; } | GlobalParamAttrs_XSLT _XSLT_REQUIRED_ { $$ = $1; $$->setRequired($2); } | GlobalParamAttrs_XSLT _XSLT_TUNNEL_ { $$ = $1; if($2) { yyerror(@2, "An xsl:param declaration cannot have a {}tunnel attribute with a value of \"yes\""); } } ; GlobalVariable_XSLT: GlobalVariableAttrs_XSLT SequenceConstructor_XSLT _XSLT_END_ELEMENT_ { $1->setVariableExpr(XSLT_VARIABLE_VALUE(@1, (ASTNode*)$1->getVariableExpr(), $2, (SequenceType*)$1->getSequenceType())); $1->setSequenceType(0); if($1->getVariableExpr() == 0) { yyerror(@1, "The xsl:variable declaration has both a select attribute and a sequence constructor [err:XTSE0620]"); } if($1->getVariableLocalName() == 0) { yyerror(@1, "The xsl:variable declaration does not have a {}name attribute"); } QP->_query->addVariable($1); } ; GlobalVariableAttrs_XSLT: _XSLT_VARIABLE_ { $$ = WRAP(@1, new (MEMMGR) XQGlobalVariable(0, 0, 0, MEMMGR)); } | GlobalVariableAttrs_XSLT _XSLT_NAME_ { RESOLVE_QNAME(@2, $2); $1->setVariableURI(uri); $1->setVariableLocalName(name); $$ = $1; } | GlobalVariableAttrs_XSLT _XSLT_SELECT_ Expr { $1->setVariableExpr(PRESERVE_NS(@2, $3)); $$ = $1; } | GlobalVariableAttrs_XSLT _XSLT_AS_ SequenceType { $1->setSequenceType($3); $$ = $1; } ; Output_XSLT: OutputAttrs_XSLT _XSLT_END_ELEMENT_ { // TBD Add the output to the static context - jpcs } ; // OutputAttrs_XSLT: _XSLT_OUTPUT_ { } | OutputAttrs_XSLT _XSLT_NAME_ { } | OutputAttrs_XSLT _XSLT_METHOD_ OutputMethod_XSLT { } | OutputAttrs_XSLT _XSLT_BYTE_ORDER_MARK_ { } | OutputAttrs_XSLT _XSLT_CDATA_SECTION_ELEMENTS_ QNames_XSLT { } | OutputAttrs_XSLT _XSLT_DOCTYPE_PUBLIC_ { } | OutputAttrs_XSLT _XSLT_DOCTYPE_SYSTEM_ { } | OutputAttrs_XSLT _XSLT_ENCODING_ { } | OutputAttrs_XSLT _XSLT_ESCAPE_URI_ATTRIBUTES_ { } | OutputAttrs_XSLT _XSLT_INCLUDE_CONTENT_TYPE_ { } | OutputAttrs_XSLT _XSLT_INDENT_ { } | OutputAttrs_XSLT _XSLT_MEDIA_TYPE_ { } | OutputAttrs_XSLT _XSLT_NORMALIZATION_FORM_ { } | OutputAttrs_XSLT _XSLT_OMIT_XML_DECLARATION_ { } | OutputAttrs_XSLT _XSLT_STANDALONE_ { } | OutputAttrs_XSLT _XSLT_UNDECLARE_PREFIXES_ { } | OutputAttrs_XSLT _XSLT_USE_CHARACTER_MAPS_ QNames_XSLT { } | OutputAttrs_XSLT _XSLT_VERSION_ { } ; OutputMethod_XSLT: _XML_ | _HTML_ | _XHTML_ | _TEXT_ | _QNAME_ { // $$ = $1; const XMLCh *p = $1; while(*p && *p != ':') ++p; if(*p == 0) { yyerror(@1, "The method for the xsl:output declaration does not have a prefix"); } } ; QNames_XSLT: _QNAME_ { } | QNames_XSLT _QNAME_ { } ; ImportSchema_XSLT: ImportSchemaAttrs_XSLT _XSLT_END_ELEMENT_; ImportSchemaAttrs_XSLT: _XSLT_IMPORT_SCHEMA_ { LOCATION(@1, loc); CONTEXT->addSchemaLocation(XMLUni::fgZeroLenString, 0, &loc); } | _XSLT_IMPORT_SCHEMA_ _XSLT_NAMESPACE_STR_ { LOCATION(@1, loc); CONTEXT->addSchemaLocation($2, 0, &loc); } | _XSLT_IMPORT_SCHEMA_ _XSLT_SCHEMA_LOCATION_ { VectorOfStrings schemaLoc(XQillaAllocator(MEMMGR)); schemaLoc.push_back($2); LOCATION(@1, loc); CONTEXT->addSchemaLocation(XMLUni::fgZeroLenString, &schemaLoc, &loc); } | _XSLT_IMPORT_SCHEMA_ _XSLT_NAMESPACE_STR_ _XSLT_SCHEMA_LOCATION_ { VectorOfStrings schemaLoc(XQillaAllocator(MEMMGR)); schemaLoc.push_back($3); LOCATION(@1, loc); CONTEXT->addSchemaLocation($2, &schemaLoc, &loc); } | _XSLT_IMPORT_SCHEMA_ _XSLT_SCHEMA_LOCATION_ _XSLT_NAMESPACE_STR_ { VectorOfStrings schemaLoc(XQillaAllocator(MEMMGR)); schemaLoc.push_back($2); LOCATION(@1, loc); CONTEXT->addSchemaLocation($3, &schemaLoc, &loc); } ; LiteralResultElement_XSLT: _XSLT_ELEMENT_NAME_ LiteralResultElementAttrs_XSLT SequenceConstructor_XSLT _XSLT_END_ELEMENT_ { VectorOfASTNodes *children = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); *children = $3->getChildren(); $$ = WRAP(@1, new (MEMMGR) XQElementConstructor($1, $2, children, MEMMGR)); } ; LiteralResultElementAttrs_XSLT: /* empty */ { $$ = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); } | LiteralResultElementAttrs_XSLT _XSLT_ATTR_NAME_ AttrValueTemplate_XSLT { $$ = $1; ASTNode *attrItem = WRAP(@2, new (MEMMGR) XQAttributeConstructor($2, $3, MEMMGR)); $$->push_back(attrItem); } | LiteralResultElementAttrs_XSLT _XSLT_XMLNS_ATTR_ { $$ = $1; $$->insert($$->begin(), $2); } /* TBD xsl:use-attribute-sets - jpcs */ ; AttrValueTemplate_XSLT: /* empty */ { $$ = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); } | AttrValueTemplate_XSLT EnclosedExpr { $$ = $1; $$->push_back(PRESERVE_NS(@2, $2)); } | AttrValueTemplate_XSLT _QUOT_ATTR_CONTENT_ { $$ = $1; $$->push_back(WRAP(@2, new (MEMMGR) XQLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, $2, AnyAtomicType::STRING, MEMMGR))); } ; SequenceConstructor_XSLT: /* empty */ { $$ = WRAP(@$, new (MEMMGR) XQSequence(MEMMGR)); } | SequenceConstructor_XSLT TextNode_XSLT { $$ = $1; $$->addItem(WRAP(@1, new (MEMMGR) XQTextConstructor($2, MEMMGR))); } | SequenceConstructor_XSLT LiteralResultElement_XSLT { $$ = $1; $$->addItem($2); } | SequenceConstructor_XSLT Instruction_XSLT { $$ = $1; $$->addItem($2); } ; Instruction_XSLT: ValueOf_XSLT | Text_XSLT | ApplyTemplates_XSLT | CallTemplate_XSLT | Sequence_XSLT | Choose_XSLT | If_XSLT | Variable_XSLT | Comment_XSLT | PI_XSLT | Document_XSLT | Attribute_XSLT | Namespace_XSLT | Element_XSLT | AnalyzeString_XSLT | CopyOf_XSLT | Copy_XSLT | ForEach_XSLT ; ValueOf_XSLT: ValueOfAttrs_XSLT SequenceConstructor_XSLT _XSLT_END_ELEMENT_ { XQTextConstructor *text = (XQTextConstructor*)$1; $$ = text; if(!$2->getChildren().empty()) { if(text->getValue() != 0) { yyerror(@1, "The xsl:value-of instruction has both a select attribute and a sequence constructor [err:XTSE0870]"); } text->setValue($2); } else if(text->getValue() == 0) { yyerror(@1, "The xsl:value-of instruction has neither a select attribute nor a sequence constructor [err:XTSE0870]"); } } ; ValueOfAttrs_XSLT: _XSLT_VALUE_OF_ { $$ = WRAP(@1, new (MEMMGR) XQTextConstructor(0, MEMMGR)); } | ValueOfAttrs_XSLT _XSLT_SELECT_ Expr { $$ = $1; ((XQTextConstructor*)$$)->setValue(PRESERVE_NS(@2, $3)); } | ValueOfAttrs_XSLT _XSLT_SEPARATOR_ AttrValueTemplate_XSLT { $$ = $1; // TBD separator - jpcs /* ((XQTextConstructor*)$$)->setValue(PRESERVE_NS(@2, $3)); */ } ; Text_XSLT: _XSLT_TEXT_ TextNode_XSLT _XSLT_END_ELEMENT_ { $$ = WRAP(@1, new (MEMMGR) XQTextConstructor($2, MEMMGR)); } ; TextNode_XSLT: _XSLT_TEXT_NODE_ | _XSLT_WS_TEXT_NODE_; ApplyTemplates_XSLT: ApplyTemplatesAttrs_XSLT ApplyTemplatesContent_XSLT _XSLT_END_ELEMENT_ { // TBD xsl:sort - jpcs XQApplyTemplates *apply = (XQApplyTemplates*)$1; $$ = apply; apply->setArguments($2); if(apply->getExpression() == 0) { NodeTest *nt = new (MEMMGR) NodeTest(); nt->setTypeWildcard(); nt->setNameWildcard(); nt->setNamespaceWildcard(); apply->setExpression(WRAP(@1, new (MEMMGR) XQStep(XQStep::CHILD, nt, MEMMGR))); } } ; ApplyTemplatesAttrs_XSLT: _XSLT_APPLY_TEMPLATES_ { $$ = WRAP(@1, new (MEMMGR) XQApplyTemplates(0, 0, 0, MEMMGR)); } | ApplyTemplatesAttrs_XSLT _XSLT_SELECT_ Expr { $$ = $1; ((XQApplyTemplates*)$$)->setExpression(PRESERVE_NS(@2, $3)); } | ApplyTemplatesAttrs_XSLT _XSLT_MODE_ ApplyTemplatesMode_XSLT { $$ = $1; ((XQApplyTemplates*)$$)->setMode($3); } ; ApplyTemplatesMode_XSLT: _QNAME_ { RESOLVE_QNAME(@1, $1); $$ = WRAP(@1, new (MEMMGR) XQUserFunction::Mode(uri, name)); } | _HASH_DEFAULT_ { $$ = WRAP(@1, new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::DEFAULT)); } | _HASH_CURRENT_ { $$ = WRAP(@1, new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::CURRENT)); } ; ApplyTemplatesContent_XSLT: /* empty */ { $$ = new (MEMMGR) TemplateArguments(XQillaAllocator(MEMMGR)); } | ApplyTemplatesContent_XSLT WithParam_XSLT { $$ = $1; $$->push_back($2); } ; CallTemplate_XSLT: CallTemplateAttrs_XSLT CallTemplateContent_XSLT _XSLT_END_ELEMENT_ { XQCallTemplate *call = (XQCallTemplate*)$1; call->setArguments($2); $$ = call; if(call->getName() == 0) { yyerror(@1, "The xsl:call-template instruction does not have a {}name attribute"); } } ; CallTemplateAttrs_XSLT: _XSLT_CALL_TEMPLATE_ { $$ = WRAP(@1, new (MEMMGR) XQCallTemplate((const XMLCh*)0, 0, MEMMGR)); } | CallTemplateAttrs_XSLT _XSLT_NAME_ { $$ = $1; RESOLVE_QNAME(@2, $2); ((XQCallTemplate*)$$)->setURI(uri); ((XQCallTemplate*)$$)->setName(name); } ; CallTemplateContent_XSLT: /* empty */ { $$ = new (MEMMGR) TemplateArguments(XQillaAllocator(MEMMGR)); } | CallTemplateContent_XSLT WithParam_XSLT { $$ = $1; $$->push_back($2); } ; WithParam_XSLT: WithParamAttrs_XSLT SequenceConstructor_XSLT _XSLT_END_ELEMENT_ { $$ = $1; if($$->name == 0) { yyerror(@1, "The xsl:with-param instruction does not have a {}name attribute"); } $1->value = XSLT_VARIABLE_VALUE(@1, $1->value, $2, $1->seqType); $1->seqType = 0; if($1->value == 0) { yyerror(@1, "The xsl:with-param instruction has both a select attribute and a sequence constructor [err:XTSE0870]"); } } ; WithParamAttrs_XSLT: _XSLT_WITH_PARAM_ { $$ = WRAP(@1, new (MEMMGR) XQTemplateArgument(0, 0, MEMMGR)); } | WithParamAttrs_XSLT _XSLT_NAME_ { $$ = $1; RESOLVE_QNAME(@2, $2); $$->uri = uri; $$->name = name; } | WithParamAttrs_XSLT _XSLT_SELECT_ Expr { $$ = $1; $$->value = PRESERVE_NS(@2, $3); } | WithParamAttrs_XSLT _XSLT_AS_ SequenceType { $$ = $1; $$->seqType = $3; } | WithParamAttrs_XSLT _XSLT_TUNNEL_ { $$ = $1; // TBD tunnel parameters - jpcs } ; Sequence_XSLT: SequenceAttrs_XSLT _XSLT_END_ELEMENT_ { $$ = $1; } SequenceAttrs_XSLT: _XSLT_SEQUENCE_ _XSLT_SELECT_ Expr { // TBD xsl:fallback - jpcs $$ = PRESERVE_NS(@2, $3); } ; If_XSLT: IfAttrs_XSLT SequenceConstructor_XSLT _XSLT_END_ELEMENT_ { ASTNode *empty = WRAP(@1, new (MEMMGR) XQSequence(MEMMGR)); $$ = WRAP(@1, new (MEMMGR) XQIf($1, $2, empty, MEMMGR)); } ; IfAttrs_XSLT: _XSLT_IF_ _XSLT_TEST_ Expr { $$ = PRESERVE_NS(@2, $3); } ; Choose_XSLT: _XSLT_CHOOSE_ WhenList_XSLT Otherwise_XSLT _XSLT_END_ELEMENT_ { XQIf *iff = (XQIf*)$2; while(iff->getWhenFalse() != 0) { iff = (XQIf*)iff->getWhenFalse(); } iff->setWhenFalse($3); $$ = $2; } ; WhenList_XSLT: When_XSLT { $$ = $1; } | WhenList_XSLT When_XSLT { XQIf *iff = (XQIf*)$1; while(iff->getWhenFalse() != 0) { iff = (XQIf*)iff->getWhenFalse(); } iff->setWhenFalse($2); $$ = $1; } ; When_XSLT: WhenAttrs_XSLT SequenceConstructor_XSLT _XSLT_END_ELEMENT_ { XQIf *iff = (XQIf*)$1; iff->setWhenTrue($2); $$ = $1; } ; WhenAttrs_XSLT: _XSLT_WHEN_ _XSLT_TEST_ Expr { $$ = WRAP(@1, new (MEMMGR) XQIf(PRESERVE_NS(@2, $3), 0, 0, MEMMGR)); } ; Otherwise_XSLT: /* empty */ { $$ = WRAP(@$, new (MEMMGR) XQSequence(MEMMGR)); } | _XSLT_OTHERWISE_ SequenceConstructor_XSLT _XSLT_END_ELEMENT_ { $$ = $2; } ; AnalyzeString_XSLT: AnalyzeStringAttrs_XSLT MatchingSubstring_XSLT NonMatchingSubstring_XSLT _XSLT_END_ELEMENT_ { // TBD xsl:fallback - jpcs XQAnalyzeString *as = (XQAnalyzeString*)$$; $$ = $1; if(as->getExpression() == 0) { yyerror(@1, "The xsl:analyze-string instruction does not have a {}select attribute"); } if(as->getRegex() == 0) { yyerror(@1, "The xsl:analyze-string instruction does not have a {}regex attribute"); } if($2 == 0) { if($3 == 0) { yyerror(@1, "The xsl:analyze-string instruction doesn't contain an xsl:matching-substring or xsl:non-matching-substring child [err:XTSE1130]"); } as->setMatch(WRAP(@1, new (MEMMGR) XQSequence(MEMMGR))); } else { as->setMatch($2); } if($3 == 0) { as->setNonMatch(WRAP(@1, new (MEMMGR) XQSequence(MEMMGR))); } else { as->setNonMatch($3); } } ; AnalyzeStringAttrs_XSLT: _XSLT_ANALYZE_STRING_ { $$ = WRAP(@$, new (MEMMGR) XQAnalyzeString(MEMMGR)); } | AnalyzeStringAttrs_XSLT _XSLT_SELECT_ Expr { $$ = $1; ((XQAnalyzeString*)$$)->setExpression(PRESERVE_NS(@2, $3)); } | AnalyzeStringAttrs_XSLT _XSLT_REGEX_ AttrValueTemplate_XSLT { $$ = $1; ASTNode *content = WRAP(@3, new (MEMMGR) XQSimpleContent($3, MEMMGR)); ((XQAnalyzeString*)$$)->setRegex(PRESERVE_NS(@2, content)); } | AnalyzeStringAttrs_XSLT _XSLT_FLAGS_ AttrValueTemplate_XSLT { $$ = $1; ASTNode *content = WRAP(@3, new (MEMMGR) XQSimpleContent($3, MEMMGR)); ((XQAnalyzeString*)$$)->setFlags(PRESERVE_NS(@2, content)); } ; MatchingSubstring_XSLT: /* empty */ { $$ = 0; } | _XSLT_MATCHING_SUBSTRING_ SequenceConstructor_XSLT _XSLT_END_ELEMENT_ { $$ = $2; } ; NonMatchingSubstring_XSLT: /* empty */ { $$ = 0; } | _XSLT_NON_MATCHING_SUBSTRING_ SequenceConstructor_XSLT _XSLT_END_ELEMENT_ { $$ = $2; } ; Variable_XSLT: VariableAttrs_XSLT SequenceConstructor_XSLT _XSLT_END_ELEMENT_ SequenceConstructor_XSLT { $1->setExpression(XSLT_VARIABLE_VALUE(@1, $1->getExpression(), $2, $1->seqType)); $1->seqType = 0; if($1->getExpression() == 0) { yyerror(@1, "The xsl:variable instruction has both a select attribute and a sequence constructor [err:XTSE0620]"); } if($1->getVarName() == 0) { yyerror(@1, "The xsl:variable instruction does not have a {}name attribute"); } $$ = WRAP(@1, new (MEMMGR) XQReturn($1, $4, MEMMGR)); } ; VariableAttrs_XSLT: _XSLT_VARIABLE_ { $$ = WRAP(@1, new (MEMMGR) LetTuple(WRAP(@1, new (MEMMGR) ContextTuple(MEMMGR)), 0, 0, MEMMGR)); } | VariableAttrs_XSLT _XSLT_NAME_ { RESOLVE_QNAME(@2, $2); $1->setVarURI(uri); $1->setVarName(name); $$ = $1; } | VariableAttrs_XSLT _XSLT_SELECT_ Expr { $1->setExpression($3); $$ = $1; } | VariableAttrs_XSLT _XSLT_AS_ SequenceType { $1->seqType = $3; $$ = $1; } ; Comment_XSLT: CommentAttrs_XSLT SequenceConstructor_XSLT _XSLT_END_ELEMENT_ { XQCommentConstructor *comment = (XQCommentConstructor*)$1; $$ = comment; if(!$2->getChildren().empty()) { if(comment->getValue() != 0) { yyerror(@1, "The xsl:comment instruction has both a select attribute and a sequence constructor [err:XTSE0940]"); } comment->setValue($2); } else if(comment->getValue() == 0) { comment->setValue(WRAP(@1, new (MEMMGR) XQSequence(MEMMGR))); } } ; CommentAttrs_XSLT: _XSLT_COMMENT_ { $$ = WRAP(@1, new (MEMMGR) XQCommentConstructor(0, MEMMGR, /*xslt*/true)); } | CommentAttrs_XSLT _XSLT_SELECT_ Expr { $$ = $1; ((XQCommentConstructor*)$$)->setValue(PRESERVE_NS(@2, $3)); } ; PI_XSLT: PIAttrs_XSLT SequenceConstructor_XSLT _XSLT_END_ELEMENT_ { XQPIConstructor *pi = (XQPIConstructor*)$1; $$ = pi; if(pi->getName() == 0) { yyerror(@1, "The xsl:processing-instruction instruction does not have a {}name attribute"); } if(!$2->getChildren().empty()) { if(pi->getValue() != 0) { yyerror(@1, "The xsl:processing-instruction instruction has both a select attribute and a sequence constructor [err:XTSE0880]"); } pi->setValue($2); } else if(pi->getValue() == 0) { pi->setValue(WRAP(@1, new (MEMMGR) XQSequence(MEMMGR))); } } ; PIAttrs_XSLT: _XSLT_PI_ { $$ = WRAP(@1, new (MEMMGR) XQPIConstructor(0, 0, MEMMGR, /*xslt*/true)); } | PIAttrs_XSLT _XSLT_NAME_ AttrValueTemplate_XSLT { $$ = $1; ASTNode *content = WRAP(@3, new (MEMMGR) XQSimpleContent($3, MEMMGR)); ((XQPIConstructor*)$$)->setName(PRESERVE_NS(@2, content)); } | PIAttrs_XSLT _XSLT_SELECT_ Expr { $$ = $1; ((XQPIConstructor*)$$)->setValue(PRESERVE_NS(@2, $3)); } ; Document_XSLT: DocumentAttrs_XSLT SequenceConstructor_XSLT _XSLT_END_ELEMENT_ { XQDocumentConstructor *doc = (XQDocumentConstructor*)$1; doc->setValue($2); $$ = doc; } ; DocumentAttrs_XSLT: _XSLT_DOCUMENT_ { $$ = WRAP(@1, new (MEMMGR) XQDocumentConstructor(0, MEMMGR)); } // TBD validation attrs - jpcs ; Attribute_XSLT: AttributeAttrs_XSLT SequenceConstructor_XSLT _XSLT_END_ELEMENT_ { XQAttributeConstructor *attr = (XQAttributeConstructor*)$1; $$ = attr; if(attr->getName() == 0) { yyerror(@1, "The xsl:attribute instruction does not have a {}name attribute"); } if(attr->namespaceExpr != 0) { // Use fn:QName() to assign the correct URI VectorOfASTNodes args(XQillaAllocator(MEMMGR)); args.push_back(attr->namespaceExpr); args.push_back(const_cast(attr->getName())); FunctionQName *name = WRAP(@1, new (MEMMGR) FunctionQName(args, MEMMGR)); attr->setName(name); attr->namespaceExpr = 0; } if(!$2->getChildren().empty()) { if(attr->getChildren() != 0 && !attr->getChildren()->empty()) { yyerror(@1, "The xsl:attribute instruction has both a select attribute and a sequence constructor [err:XTSE0840]"); } VectorOfASTNodes *children = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); *children = $2->getChildren(); attr->setChildren(children); } else if(attr->getChildren() == 0) { VectorOfASTNodes *children = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); children->push_back(WRAP(@1, new (MEMMGR) XQSequence(MEMMGR))); attr->setChildren(children); } } ; AttributeAttrs_XSLT: _XSLT_ATTRIBUTE_ { $$ = WRAP(@1, new (MEMMGR) XQAttributeConstructor(0, 0, MEMMGR)); } | AttributeAttrs_XSLT _XSLT_NAME_ AttrValueTemplate_XSLT { $$ = $1; ASTNode *content = WRAP(@3, new (MEMMGR) XQSimpleContent($3, MEMMGR)); ((XQAttributeConstructor*)$$)->setName(PRESERVE_NS(@2, content)); } | AttributeAttrs_XSLT _XSLT_NAMESPACE_A_ AttrValueTemplate_XSLT { $$ = $1; ASTNode *content = WRAP(@3, new (MEMMGR) XQSimpleContent($3, MEMMGR)); ((XQAttributeConstructor*)$$)->namespaceExpr = PRESERVE_NS(@2, content); } | AttributeAttrs_XSLT _XSLT_SELECT_ Expr { $$ = $1; VectorOfASTNodes *children = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); children->push_back(PRESERVE_NS(@2, $3)); ((XQAttributeConstructor*)$$)->setChildren(children); } | AttributeAttrs_XSLT _XSLT_SEPARATOR_ AttrValueTemplate_XSLT { $$ = $1; // TBD separator - jpcs /* ((XQAttributeConstructor*)$$)->setChildren(children); */ } ; Namespace_XSLT: NamespaceAttrs_XSLT SequenceConstructor_XSLT _XSLT_END_ELEMENT_ { XQNamespaceConstructor *ns = (XQNamespaceConstructor*)$1; $$ = ns; if(ns->getName() == 0) { yyerror(@1, "The xsl:namespace instruction does not have a {}name attribute"); } if(!$2->getChildren().empty()) { if(ns->getChildren() != 0 && !ns->getChildren()->empty()) { yyerror(@1, "The xsl:namespace instruction has both a select attribute and a sequence constructor [err:XTSE0840]"); } VectorOfASTNodes *children = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); *children = $2->getChildren(); ns->setChildren(children); } else if(ns->getChildren() == 0) { VectorOfASTNodes *children = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); children->push_back(WRAP(@1, new (MEMMGR) XQSequence(MEMMGR))); ns->setChildren(children); } } ; NamespaceAttrs_XSLT: _XSLT_NAMESPACE_ { $$ = WRAP(@1, new (MEMMGR) XQNamespaceConstructor(0, 0, MEMMGR)); } | NamespaceAttrs_XSLT _XSLT_NAME_ AttrValueTemplate_XSLT { $$ = $1; ASTNode *content = WRAP(@3, new (MEMMGR) XQSimpleContent($3, MEMMGR)); ((XQNamespaceConstructor*)$$)->setName(PRESERVE_NS(@2, content)); } | NamespaceAttrs_XSLT _XSLT_SELECT_ Expr { $$ = $1; VectorOfASTNodes *children = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); children->push_back(PRESERVE_NS(@2, $3)); ((XQNamespaceConstructor*)$$)->setChildren(children); } ; Element_XSLT: ElementAttrs_XSLT SequenceConstructor_XSLT _XSLT_END_ELEMENT_ { XQElementConstructor *elem = (XQElementConstructor*)$1; $$ = elem; if(elem->getName() == 0) { yyerror(@1, "The xsl:element instruction does not have a {}name attribute"); } if(elem->namespaceExpr != 0) { // Use fn:QName() to assign the correct URI VectorOfASTNodes args(XQillaAllocator(MEMMGR)); args.push_back(elem->namespaceExpr); args.push_back(const_cast(elem->getName())); FunctionQName *name = WRAP(@1, new (MEMMGR) FunctionQName(args, MEMMGR)); elem->setName(name); elem->namespaceExpr = 0; } VectorOfASTNodes *children = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); *children = $2->getChildren(); elem->setChildren(children); } ; ElementAttrs_XSLT: _XSLT_ELEMENT_ { $$ = WRAP(@1, new (MEMMGR) XQElementConstructor(0, 0, 0, MEMMGR)); } | ElementAttrs_XSLT _XSLT_NAME_ AttrValueTemplate_XSLT { $$ = $1; ASTNode *content = WRAP(@3, new (MEMMGR) XQSimpleContent($3, MEMMGR)); ((XQElementConstructor*)$$)->setName(PRESERVE_NS(@2, content)); } | ElementAttrs_XSLT _XSLT_NAMESPACE_A_ AttrValueTemplate_XSLT { $$ = $1; ASTNode *content = WRAP(@3, new (MEMMGR) XQSimpleContent($3, MEMMGR)); ((XQElementConstructor*)$$)->namespaceExpr = PRESERVE_NS(@2, content); } ; CopyOf_XSLT: CopyOfAttrs_XSLT _XSLT_END_ELEMENT_ { XQCopyOf *as = (XQCopyOf*)$$; $$ = $1; if(as->getExpression() == 0) { yyerror(@1, "The xsl:copy-of instruction does not have a {}select attribute"); } } ; CopyOfAttrs_XSLT: _XSLT_COPY_OF_ { $$ = WRAP(@$, new (MEMMGR) XQCopyOf(MEMMGR)); } | CopyOfAttrs_XSLT _XSLT_SELECT_ Expr { $$ = $1; ((XQCopyOf*)$$)->setExpression(PRESERVE_NS(@2, $3)); } | CopyOfAttrs_XSLT _XSLT_COPY_NAMESPACES_ { $$ = $1; ((XQCopyOf*)$$)->setCopyNamespaces($2); } // TBD type and validation - jpcs ; Copy_XSLT: CopyAttrs_XSLT SequenceConstructor_XSLT _XSLT_END_ELEMENT_ { $$ = $1; XQCopy *as = (XQCopy*)$$; XQContextItem *ci = WRAP(@1, new (MEMMGR) XQContextItem(MEMMGR)); as->setExpression(ci); as->setChildren($2->getChildren()); } ; CopyAttrs_XSLT: _XSLT_COPY_ { $$ = WRAP(@$, new (MEMMGR) XQCopy(MEMMGR)); } | CopyAttrs_XSLT _XSLT_COPY_NAMESPACES_ { $$ = $1; ((XQCopy*)$$)->setCopyNamespaces($2); } | CopyAttrs_XSLT _XSLT_INHERIT_NAMESPACES_ { $$ = $1; ((XQCopy*)$$)->setInheritNamespaces($2); } // TBD type and validation - jpcs ; ForEach_XSLT: ForEachAttrs_XSLT SequenceConstructor_XSLT _XSLT_END_ELEMENT_ { // TBD xsl:sort - jpcs $$ = $1; XQMap *map = (XQMap*)$$; map->setArg2($2); if(map->getArg1() == 0) { yyerror(@1, "The xsl:for-each instruction does not have a {}select attribute"); } } ; ForEachAttrs_XSLT: _XSLT_FOR_EACH_ { $$ = WRAP(@1, new (MEMMGR) XQMap(0, 0, MEMMGR)); } | ForEachAttrs_XSLT _XSLT_SELECT_ Expr { $$ = $1; ((XQMap*)$$)->setArg1(PRESERVE_NS(@2, $3)); } ; // [1] Pattern ::= PathPattern // | Pattern '|' PathPattern Pattern_XSLT: Pattern_XSLT _BAR_ PathPattern_XSLT { $$ = $1; $$->push_back(PRESERVE_NS(@3, $3)); } | PathPattern_XSLT { $$ = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); $$->push_back(PRESERVE_NS(@1, $1)); } ; // [2] PathPattern ::= RelativePathPattern // | '/' RelativePathPattern? // | '//' RelativePathPattern // | IdKeyPattern (('/' | '//') RelativePathPattern)? PathPattern_XSLT: RelativePathPattern_XSLT { $$ = $1; } | _SLASH_ { NodeTest *nt = new (MEMMGR) NodeTest(); nt->setNodeType(Node::document_string); nt->setNameWildcard(); nt->setNamespaceWildcard(); $$ = WRAP(@1, new (MEMMGR) XQStep(XQStep::SELF, nt, MEMMGR)); } | IdKeyPattern_XSLT { // . intersect id("a") VectorOfASTNodes oargs(XQillaAllocator(MEMMGR)); oargs.push_back(WRAP(@1, new (MEMMGR) XQContextItem(MEMMGR))); oargs.push_back($1); $$ = WRAP(@1, new (MEMMGR) Intersect(oargs, MEMMGR)); } ; PathPatternStart_XSLT: _SLASH_ { NodeTest *nt = new (MEMMGR) NodeTest(); nt->setNodeType(Node::document_string); nt->setNameWildcard(); nt->setNamespaceWildcard(); $$ = WRAP(@1, new (MEMMGR) XQStep(XQStep::PARENT, nt, MEMMGR)); } | _SLASH_SLASH_ { NodeTest *nt = new (MEMMGR) NodeTest(); nt->setNodeType(Node::document_string); nt->setNameWildcard(); nt->setNamespaceWildcard(); $$ = WRAP(@1, new (MEMMGR) XQStep(XQStep::ANCESTOR, nt, MEMMGR)); } ; // [6] IdKeyPattern ::= 'id' '(' IdValue ')' // | 'key' '(' StringLiteralXP ',' KeyValue ')' IdKeyPattern_XSLT: _ID_ _LPAR_ IdValue_XSLT _RPAR_ { VectorOfASTNodes fargs(XQillaAllocator(MEMMGR)); fargs.push_back($3); $$ = WRAP(@1, new (MEMMGR) FunctionId(fargs, MEMMGR)); } | _KEY_ _LPAR_ StringLiteral _COMMA_ KeyValue_XSLT _RPAR_ { // VectorOfASTNodes fargs(XQillaAllocator(MEMMGR)); // fargs.push_back($3); // fargs.push_back($5); // $$ = WRAP(@1, new (MEMMGR) FunctionKey(fargs, MEMMGR)); // TBD key() - jpcs $$ = WRAP(@1, new (MEMMGR) XQContextItem(MEMMGR)); } ; // [7] IdValue ::= StringLiteralXP | VarRef XP IdValue_XSLT: StringLiteral | VarRef; // [8] KeyValue ::= Literal XP | VarRef XP KeyValue_XSLT: Literal | VarRef; // // foo/bar/@baz -> self::attribute(baz)[parent::bar[parent::foo]] // // foo//bar ->self::bar[ancestor::foo] // // /foo/bar -> self::bar[parent::foo[parent::document-node()]] // // //foo -> self::foo[ancestor::document-node()] // // /foo[baz]/bar -> self::bar[parent::foo[baz][parent::document-node()]] // // id("a")/foo/bar -> self::bar[parent::foo[parent::node() intersect id("a")]] // // / -> self::document-node() // // id("a") -> . intersect id("a") // // [3] RelativePathPattern ::= PatternStep (('/' | '//') RelativePathPattern)? RelativePathPattern_XSLT: PatternStep_XSLT { $$ = $1; } | PathPatternStart_XSLT PatternStep_XSLT { $$ = WRAP(@1, new (MEMMGR) XQPredicate($2, $1, MEMMGR)); } | IdKeyPattern_XSLT _SLASH_ PatternStep_XSLT { // id("a")/foo -> self::foo[parent::node() intersect id("a")] NodeTest *nt = new (MEMMGR) NodeTest(); nt->setTypeWildcard(); nt->setNameWildcard(); nt->setNamespaceWildcard(); XQStep *step = WRAP(@1, new (MEMMGR) XQStep(XQStep::PARENT, nt, MEMMGR)); VectorOfASTNodes oargs(XQillaAllocator(MEMMGR)); oargs.push_back(step); oargs.push_back($1); Intersect *intersect = WRAP(@1, new (MEMMGR) Intersect(oargs, MEMMGR)); $$ = WRAP(@1, new (MEMMGR) XQPredicate($3, intersect, MEMMGR)); } | IdKeyPattern_XSLT _SLASH_SLASH_ PatternStep_XSLT { // id("a")/foo -> self::foo[ancestor::node() intersect id("a")] NodeTest *nt = new (MEMMGR) NodeTest(); nt->setTypeWildcard(); nt->setNameWildcard(); nt->setNamespaceWildcard(); XQStep *step = WRAP(@1, new (MEMMGR) XQStep(XQStep::ANCESTOR, nt, MEMMGR)); VectorOfASTNodes oargs(XQillaAllocator(MEMMGR)); oargs.push_back(step); oargs.push_back($1); Intersect *intersect = WRAP(@1, new (MEMMGR) Intersect(oargs, MEMMGR)); $$ = WRAP(@1, new (MEMMGR) XQPredicate($3, intersect, MEMMGR)); } | RelativePathPattern_XSLT _SLASH_ PatternStep_XSLT { ASTNode *step = $1; while(step->getType() == ASTNode::PREDICATE) step = (ASTNode*)((XQPredicate*)step)->getExpression(); ((XQStep*)step)->setAxis(XQStep::PARENT); $$ = WRAP(@2, new (MEMMGR) XQPredicate($3, $1, MEMMGR)); } | RelativePathPattern_XSLT _SLASH_SLASH_ PatternStep_XSLT { ASTNode *step = $1; while(step->getType() == ASTNode::PREDICATE) step = (ASTNode*)((XQPredicate*)step)->getExpression(); ((XQStep*)step)->setAxis(XQStep::ANCESTOR); $$ = WRAP(@2, new (MEMMGR) XQPredicate($3, $1, MEMMGR)); } ; // [4] PatternStep ::= PatternAxis? NodeTest PredicateList PatternStep_XSLT: PatternAxis_XSLT PatternStepPredicateList_XSLT { $$ = XQPredicate::addPredicates(WRAP(@1, new (MEMMGR) XQStep(XQStep::SELF, $1, MEMMGR)), $2); } ; // [5] PatternAxis ::= ('child' '::' | 'attribute' '::' | '@') PatternAxis_XSLT: NodeTest { if(!$1->isNodeTypeSet()) $1->setNodeType(Node::element_string); $$ = $1; } | _CHILD_ _COLON_COLON_ NodeTest { if(!$3->isNodeTypeSet()) $3->setNodeType(Node::element_string); $$ = $3; } | _ATTRIBUTE_ _COLON_COLON_ NodeTest { if(!$3->isNodeTypeSet()) $3->setNodeType(Node::attribute_string); $$ = $3; } | _AT_SIGN_ NodeTest { if(!$2->isNodeTypeSet()) $2->setNodeType(Node::attribute_string); $$ = $2; } ; // [85] PredicateList ::= Predicate* // [86] Predicate ::= "[" Expr "]" PatternStepPredicateList_XSLT: /* empty */ { $$ = new (MEMMGR) VectorOfPredicates(MEMMGR); } | PatternStepPredicateList_XSLT _LSQUARE_ Expr _RSQUARE_ { XQPredicate *pred = WRAP(@2, new (MEMMGR) XQPredicate($3, MEMMGR)); $1->push_back(pred); $$ = $1; } ; //////////////////////////////////////////////////////////////////////////////////////////////////// // XQuery rules // [1] Module ::= VersionDecl? (MainModule | LibraryModule) Module: VersionDecl MainModule | VersionDecl LibraryModule | MainModule | LibraryModule ; // [2] VersionDecl ::= <"xquery" "version" StringLiteral> ("encoding" StringLiteral)? Separator // [2] VersionDecl ::= "xquery" (("encoding" StringLiteral) | ("version" StringLiteral ("encoding" StringLiteral)?)) Separator VersionDecl: _XQUERY_ Version Separator | _XQUERY_ Version Encoding Separator | _XQUERY_ Encoding Separator ; Version: _VERSION_ _STRING_LITERAL_ { // TBD Set the language correctly on the context - jpcs if(XPath2Utils::equals($2,sz1_0)) { QP->_lexer->setVersion3(false); QP->_query->setVersion3(false); } else if(XPath2Utils::equals($2,sz3_0)) { if(!QP->_lexer->isVersion3()) { yyerror(@1, "This XQuery processor is not configured to support XQuery 3.0 [err:XQST0031]"); } QP->_lexer->setVersion3(true); QP->_query->setVersion3(true); } else yyerror(@1, "This XQuery processor only supports version 1.0 and 3.0 [err:XQST0031]"); } ; Encoding: _ENCODING_ _STRING_LITERAL_ { XMLCh *encName = $2; if((*encName < chLatin_A || *encName > chLatin_Z) && (*encName < chLatin_a || *encName > chLatin_z)) yyerror(@1, "The specified encoding does not conform to the definition of EncName [err:XQST0087]"); for(++encName; *encName; ++encName) { if((*encName < chLatin_A || *encName > chLatin_Z) && (*encName < chLatin_a || *encName > chLatin_z) && (*encName < chDigit_0 || *encName > chDigit_9) && *encName != chPeriod && *encName != chDash) yyerror(@1, "The specified encoding does not conform to the definition of EncName [err:XQST0087]"); } } ; // [3] MainModule ::= Prolog QueryBody MainModule: Prolog QueryBody; // [4] LibraryModule ::= ModuleDecl Prolog LibraryModule: ModuleDecl Prolog; // [5] ModuleDecl ::= <"module" "namespace"> NCName "=" URILiteral Separator ModuleDecl: _MODULE_ _NAMESPACE_ NCName _EQUALS_ URILiteral Separator { if(*$5 == 0) yyerror(@5, "The literal that specifies the namespace of a module must not be of zero length [err:XQST0088]"); QP->_query->setIsLibraryModule(); QP->_query->setModuleTargetNamespace($5); SET_NAMESPACE(@3, $3, $5); } ; // [6] Prolog ::= ((Setter | Import | NamespaceDecl | DefaultNamespaceDecl | FTOptionDecl) Separator)* // ((VarDecl | FunctionDecl | OptionDecl) Separator)* Prolog: /* empty */ | Prolog Setter Separator { CHECK_SECOND_STEP(@2, "a setter"); } | Prolog Import Separator { CHECK_SECOND_STEP(@2, "an import"); } | Prolog NamespaceDecl Separator { CHECK_SECOND_STEP(@2, "a namespace"); } | Prolog DefaultNamespaceDecl Separator { CHECK_SECOND_STEP(@2, "a default namespace"); } | Prolog VarDecl Separator { QP->_flags.set(BIT_DECLARE_SECOND_STEP); } | Prolog FunctionDecl Separator { QP->_flags.set(BIT_DECLARE_SECOND_STEP); XQUserFunction* decl=$2; QP->_query->addFunction(decl); } | Prolog TemplateDecl Separator { QP->_flags.set(BIT_DECLARE_SECOND_STEP); XQUserFunction* decl=$2; QP->_query->addFunction(decl); } | Prolog OptionDecl Separator { QP->_flags.set(BIT_DECLARE_SECOND_STEP); } | Prolog FTOptionDecl Separator { CHECK_SECOND_STEP(@2, "an ftoption declaration"); } ; // [7] Setter ::= BoundarySpaceDecl // | DefaultCollationDecl // | BaseURIDecl // | ConstructionDecl // | OrderingModeDecl // | EmptyOrderDecl // | CopyNamespacesDecl Setter: BoundarySpaceDecl | DefaultCollationDecl | BaseURIDecl | ConstructionDecl | OrderingModeDecl | EmptyOrderDecl | RevalidationDecl | CopyNamespacesDecl ; // [8] Import ::= SchemaImport | ModuleImport Import: SchemaImport | ModuleImport; // [9] Separator ::= ";" Separator: _SEMICOLON_; // [10] NamespaceDecl ::= <"declare" "namespace"> NCName "=" URILiteral NamespaceDecl: _DECLARE_ _NAMESPACE_ NCName _EQUALS_ URILiteral { SET_NAMESPACE(@3, $3, $5); } ; // [11] BoundarySpaceDecl ::= <"declare" "boundary-space"> ("preserve" | "strip") BoundarySpaceDecl : _DECLARE_ _BOUNDARY_SPACE_ _PRESERVE_ { CHECK_SPECIFIED(@1, BIT_BOUNDARY_SPECIFIED, "boundary space", "XQST0068"); CONTEXT->setPreserveBoundarySpace(true); } | _DECLARE_ _BOUNDARY_SPACE_ _STRIP_ { CHECK_SPECIFIED(@1, BIT_BOUNDARY_SPECIFIED, "boundary space", "XQST0068"); CONTEXT->setPreserveBoundarySpace(false); } ; // [12] DefaultNamespaceDecl ::= (<"declare" "default" "element"> | <"declare" "default" "function">) "namespace" URILiteral DefaultNamespaceDecl: _DECLARE_ _DEFAULT_ _ELEMENT_ _NAMESPACE_ URILiteral { CHECK_SPECIFIED(@1, BIT_DEFAULTELEMENTNAMESPACE_SPECIFIED, "default element namespace", "XQST0066"); CONTEXT->setDefaultElementAndTypeNS($5); } | _DECLARE_ _DEFAULT_ FunctionKeyword _NAMESPACE_ URILiteral { CHECK_SPECIFIED(@1, BIT_DEFAULTFUNCTIONNAMESPACE_SPECIFIED, "default function namespace", "XQST0066"); CONTEXT->setDefaultFuncNS($5); } ; // [13] OptionDecl ::= <"declare" "option"> QName StringLiteral OptionDecl: _DECLARE_ _OPTION_ QNameValue _STRING_LITERAL_ { // validate the QName QualifiedName qName($3); const XMLCh* prefix = qName.getPrefix(); if(prefix == 0 || *prefix == 0) yyerror(@3, "The option name must have a prefix [err:XPST0081]"); const XMLCh *uri = 0; try { LOCATION(@3, loc); uri = CONTEXT->getUriBoundToPrefix(prefix, &loc); } catch(NamespaceLookupException&) { yyerror(@3, "The option name is using an undefined namespace prefix [err:XPST0081]"); } if(XPath2Utils::equals(uri, XQillaFunction::XMLChFunctionURI)) { if(XPath2Utils::equals(qName.getName(), option_projection)) { if(XPath2Utils::equals($4, SchemaSymbols::fgATTVAL_TRUE)) { CONTEXT->setProjection(true); } else if(XPath2Utils::equals($4, SchemaSymbols::fgATTVAL_FALSE)) { CONTEXT->setProjection(false); } else { yyerror(@4, "Unknown value for option xqilla:projection. Should be 'true' or 'false' [err:XQILLA]"); } } else if(XPath2Utils::equals(qName.getName(), option_psvi)) { if(XPath2Utils::equals($4, SchemaSymbols::fgATTVAL_TRUE)) { CONTEXT->getDocumentCache()->setDoPSVI(true); } else if(XPath2Utils::equals($4, SchemaSymbols::fgATTVAL_FALSE)) { CONTEXT->getDocumentCache()->setDoPSVI(false); } else { yyerror(@4, "Unknown value for option xqilla:psvi. Should be 'true' or 'false' [err:XQILLA]"); } } else if(XPath2Utils::equals(qName.getName(), option_lint)) { if(XPath2Utils::equals($4, SchemaSymbols::fgATTVAL_TRUE)) { CONTEXT->setDoLintWarnings(true); } else if(XPath2Utils::equals($4, SchemaSymbols::fgATTVAL_FALSE)) { CONTEXT->setDoLintWarnings(false); } else { yyerror(@4, "Unknown value for option xqilla:lint. Should be 'true' or 'false' [err:XQILLA]"); } } else { yyerror(@3, "Unknown option name in the xqilla namespace [err:XQILLA]"); } } } ; // [14] FTOptionDecl ::= "declare" "ft-option" FTMatchOptions FTOptionDecl: _DECLARE_ _FT_OPTION_ FTMatchOptions { // TBD FTOptionDecl } ; // [15] OrderingModeDecl ::= <"declare" "ordering"> ("ordered" | "unordered") OrderingModeDecl: _DECLARE_ _ORDERING_ _ORDERED_ { CHECK_SPECIFIED(@1, BIT_ORDERING_SPECIFIED, "ordering mode", "XQST0065"); CONTEXT->setNodeSetOrdering(StaticContext::ORDERING_ORDERED); } | _DECLARE_ _ORDERING_ _UNORDERED_ { CHECK_SPECIFIED(@1, BIT_ORDERING_SPECIFIED, "ordering mode", "XQST0065"); CONTEXT->setNodeSetOrdering(StaticContext::ORDERING_UNORDERED); } ; // [16] EmptyOrderDecl ::= "declare" "default" "order" "empty" ("greatest" | "least") EmptyOrderDecl: _DECLARE_ _DEFAULT_ _ORDER_ _EMPTY_ _GREATEST_ { CHECK_SPECIFIED(@1, BIT_EMPTYORDERING_SPECIFIED, "empty ordering mode", "XQST0069"); CONTEXT->setDefaultFLWOROrderingMode(StaticContext::FLWOR_ORDER_EMPTY_GREATEST); } | _DECLARE_ _DEFAULT_ _ORDER_ _EMPTY_ _LEAST_ { CHECK_SPECIFIED(@1, BIT_EMPTYORDERING_SPECIFIED, "empty ordering mode", "XQST0069"); CONTEXT->setDefaultFLWOROrderingMode(StaticContext::FLWOR_ORDER_EMPTY_LEAST); } ; // [17] CopyNamespacesDecl ::= <"declare" "copy-namespaces"> PreserveMode "," InheritMode CopyNamespacesDecl: _DECLARE_ _COPY_NAMESPACES_ PreserveMode _COMMA_ InheritMode { CHECK_SPECIFIED(@1, BIT_COPYNAMESPACE_SPECIFIED, "copy namespace", "XQST0055"); CONTEXT->setPreserveNamespaces($3); CONTEXT->setInheritNamespaces($5); } ; // [18] PreserveMode ::= "preserve" | "no-preserve" PreserveMode: _PRESERVE_ { $$ = true; } | _NO_PRESERVE_ { $$ = false; } ; // [19] InheritMode ::= "inherit" | "no-inherit" InheritMode: _INHERIT_ { $$ = true; } | _NO_INHERIT_ { $$ = false; } ; // [20] DefaultCollationDecl ::= <"declare" "default" "collation"> URILiteral DefaultCollationDecl: _DECLARE_ _DEFAULT_ _COLLATION_ URILiteral { CHECK_SPECIFIED(@1, BIT_COLLATION_SPECIFIED, "default collation", "XQST0038"); try { LOCATION(@4, loc); CONTEXT->getCollation($4, &loc); } catch(ContextException&) { yyerror(@4, "The specified collation does not exist [err:XQST0038]"); } CONTEXT->setDefaultCollation($4); } ; // [21] BaseURIDecl ::= <"declare" "base-uri"> URILiteral BaseURIDecl: _DECLARE_ _BASE_URI_ URILiteral { CHECK_SPECIFIED(@1, BIT_BASEURI_SPECIFIED, "base URI", "XQST0032"); CONTEXT->setBaseURI($3); } ; // [22] SchemaImport ::= <"import" "schema"> SchemaPrefix? URILiteral (<"at" URILiteral> ("," URILiteral)*)? SchemaImport: _IMPORT_ _SCHEMA_ SchemaPrefix URILiteral ResourceLocations { if(XPath2Utils::equals($3, XMLUni::fgZeroLenString)) CONTEXT->setDefaultElementAndTypeNS($4); else if(XPath2Utils::equals($4, XMLUni::fgZeroLenString)) yyerror(@1, "A schema that has no target namespace cannot be bound to a non-empty prefix [err:XQST0057]"); else { SET_NAMESPACE(@3, $3, $4); } LOCATION(@1, loc); CONTEXT->addSchemaLocation($4, $5, &loc); } | _IMPORT_ _SCHEMA_ URILiteral ResourceLocations { LOCATION(@1, loc); CONTEXT->addSchemaLocation($3, $4, &loc); } ; ResourceLocations: /* empty */ { $$ = NULL; } | _AT_ URILiteral { $$ = new (MEMMGR) VectorOfStrings(XQillaAllocator(MEMMGR)); $$->push_back($2); } | ResourceLocations _COMMA_ URILiteral { $1->push_back($3); $$ = $1; } ; // [23] SchemaPrefix ::= ("namespace" NCName "=") | (<"default" "element"> "namespace") SchemaPrefix: _NAMESPACE_ NCName _EQUALS_ { $$ = $2; } | _DEFAULT_ _ELEMENT_ _NAMESPACE_ { $$ = (XMLCh*)XMLUni::fgZeroLenString; } ; // [24] ModuleImport ::= <"import" "module"> ("namespace" NCName "=")? URILiteral (<"at" URILiteral> ("," URILiteral)*)? ModuleImport: _IMPORT_ _MODULE_ _NAMESPACE_ NCName _EQUALS_ URILiteral ResourceLocations { if(XMLString::stringLen($6)==0) yyerror(@6, "The literal that specifies the target namespace in a module import must not be of zero length [err:XQST0088]"); SET_NAMESPACE(@4, $4, $6); LOCATION(@1, loc); QP->_query->importModule($6, $7, &loc); } | _IMPORT_ _MODULE_ URILiteral ResourceLocations { if(XMLString::stringLen($3)==0) yyerror(@3, "The literal that specifies the target namespace in a module import must not be of zero length [err:XQST0088]"); LOCATION(@1, loc); QP->_query->importModule($3, $4, &loc); } ; // [25] VarDecl ::= <"declare" "variable" "$"> VarName TypeDeclaration? ((":=" ExprSingle) | "external") VarDecl: _DECLARE_ _VARIABLE_ _DOLLAR_ VarName TypeDeclaration VarDeclValue { QP->_query->addVariable(WRAP(@1, new (MEMMGR) XQGlobalVariable($4, $5, $6, MEMMGR))); } ; VarDeclValue: _COLON_EQUALS_ ExprSingle { $$ = $2; } | _EXTERNAL_ { $$ = NULL; } ; // [26] ConstructionDecl ::= <"declare" "construction"> ("preserve" | "strip") ConstructionDecl: _DECLARE_ _CONSTRUCTION_ _PRESERVE_ { CHECK_SPECIFIED(@1, BIT_CONSTRUCTION_SPECIFIED, "construction mode", "XQST0067"); CONTEXT->setConstructionMode(StaticContext::CONSTRUCTION_MODE_PRESERVE); } | _DECLARE_ _CONSTRUCTION_ _STRIP_ { CHECK_SPECIFIED(@1, BIT_CONSTRUCTION_SPECIFIED, "construction mode", "XQST0067"); CONTEXT->setConstructionMode(StaticContext::CONSTRUCTION_MODE_STRIP); } ; // [31] FunctionDecl ::= "declare" FunctionOptions "function" QName "(" ParamList? ")" ("as" SequenceType)? (FunctionBody | "external") FunctionDecl: _DECLARE_ FunctionOptions FunctionKeyword FunctionName FunctionParamList FunctionDeclReturnType FunctionBody { $2->argSpecs = $5; $2->returnType = $6; $$ = WRAP(@1, new (MEMMGR) XQUserFunction($4, $2, $7, true, MEMMGR)); } ; FunctionKeyword: _FUNCTION_ | _FUNCTION_EXT_; FunctionParamList: _LPAR_ _RPAR_ { $$ = NULL; } | _LPAR_ ParamList _RPAR_ { $$ = $2; } ; // [37] FunctionBody ::= EnclosedExpr FunctionBody: EnclosedExpr | _EXTERNAL_ { $$ = 0; } ; // [32] FunctionOptions ::= (PrivateOption | DeterministicOption | "updating")* FunctionOptions: /* empty */ { $$ = new (MEMMGR) FunctionSignature(MEMMGR); } | FunctionOptions PrivateOption { switch($1->privateOption) { case FunctionSignature::OP_TRUE: yyerror(@2, "Function option 'private' already specified [err:XQST0106]"); case FunctionSignature::OP_FALSE: yyerror(@2, "Function option 'public' already specified [err:XQST0106]"); case FunctionSignature::OP_DEFAULT: $1->privateOption = $2 ? FunctionSignature::OP_TRUE : FunctionSignature::OP_FALSE; break; } $$ = $1; } | FunctionOptions DeterministicOption { switch($1->nondeterministic) { case FunctionSignature::OP_TRUE: yyerror(@2, "Function option 'nondeterministic' already specified [err:XQST0106]"); case FunctionSignature::OP_FALSE: yyerror(@2, "Function option 'deterministic' already specified [err:XQST0106]"); case FunctionSignature::OP_DEFAULT: $1->nondeterministic = $2 ? FunctionSignature::OP_TRUE : FunctionSignature::OP_FALSE; break; } $$ = $1; } | FunctionOptions _UPDATING_ { if($1->updating != FunctionSignature::OP_DEFAULT) yyerror(@2, "Function option 'updating' already specified [err:XPST0003]"); $1->updating = FunctionSignature::OP_TRUE; $$ = $1; } ; // [33] PrivateOption ::= "private" | "public" PrivateOption: _PRIVATE_ { $$ = true; } | _PUBLIC_ { $$ = false; }; // [34] DeterministicOption ::= "deterministic" | "nondeterministic" DeterministicOption: _DETERMINISTIC_ { $$ = false; } | _NONDETERMINISTIC_ { $$ = true; }; FunctionDeclReturnType: /* empty */ { $$ = 0; } | _AS_ SequenceType { $$ = $2; } ; // [28] ParamList ::= Param ("," Param)* ParamList: ParamList _COMMA_ Param { $1->push_back($3); $$ = $1; } | Param { ArgumentSpecs* paramList = new (MEMMGR) ArgumentSpecs(XQillaAllocator(MEMMGR)); paramList->push_back($1); $$ = paramList; } ; // [29] Param ::= "$" VarName TypeDeclaration? Param: _DOLLAR_ VarName TypeDeclaration { $$ = WRAP(@1, new (MEMMGR) ArgumentSpec($2, $3, MEMMGR)); } ; // [30] EnclosedExpr ::= "{" Expr "}" EnclosedExpr: _LBRACE_ Expr _RBRACE_ { $$ = $2; } ; // [31] QueryBody ::= Expr QueryBody: Expr { if(QP->_lexer->isUpdate()) { QP->_query->setQueryBody(WRAP(@1, new (MEMMGR) UApplyUpdates($1, MEMMGR))); } else { QP->_query->setQueryBody($1); } } ; // [32] Expr ::= ExprSingle ("," ExprSingle)* Expr: Expr _COMMA_ ExprSingle { ASTNode* prevExpr=$1; if(prevExpr->getType()==ASTNode::SEQUENCE) { ((XQSequence *)prevExpr)->addItem($3); $$ = $1; } else { XQSequence *dis = WRAP(@2, new (MEMMGR) XQSequence(MEMMGR)); dis->addItem($1); dis->addItem($3); $$ = dis; } } | ExprSingle ; // [32] ExprSingle ::= FLWORExpr | QuantifiedExpr | TypeswitchExpr | IfExpr | InsertExpr // | DeleteExpr | RenameExpr | ReplaceExpr | TransformExpr | OrExpr // | CallTemplateExpr | ApplyTemplatesExpr ExprSingle: FLWORExpr | QuantifiedExpr | TypeswitchExpr | IfExpr | InsertExpr | DeleteExpr | RenameExpr | ReplaceExpr | TransformExpr | OrExpr | CallTemplateExpr | ApplyTemplatesExpr ; // [42] FLWORExpr ::= InitialClause IntermediateClause* ReturnClause FLWORExpr: FLWORTuples _RETURN_ ExprSingle { // Add a ContextTuple at the start TupleNode *tuples = setLastAncestor($1, WRAP(@1, new (MEMMGR) ContextTuple(MEMMGR))); // Check the correct clause order for XQuery 1.0 // FLWORExpr ::= (ForClause | LetClause)+ WhereClause? OrderByClause? "return" ExprSingle if(!QP->_lexer->isVersion3()) { const TupleNode *where = 0; const TupleNode *forlet = 0; const TupleNode *node = tuples; while(node) { switch(node->getType()) { case TupleNode::ORDER_BY: if(where) XQThrow3(StaticErrorException, X("XQParser"), X("Where clause after order by clause [err:XPST0003]"), where); else if(forlet) XQThrow3(StaticErrorException, X("XQParser"), X("For or let clause after order by clause [err:XPST0003]"), forlet); break; case TupleNode::WHERE: if(where) XQThrow3(StaticErrorException, X("XQParser"), X("Duplicate where clause [err:XPST0003]"), where); else if(forlet) XQThrow3(StaticErrorException, X("XQParser"), X("For or let clause after where clause [err:XPST0003]"), forlet); where = node; break; case TupleNode::FOR: case TupleNode::LET: forlet = node; break; default: break; } node = node->getParent(); } } // Add the return expression $$ = WRAP(@2, new (MEMMGR) XQReturn(tuples, $3, MEMMGR)); } ; FLWORTuples: InitialClause | FLWORTuples OrderByClause { // Order by has a special check here, because a single OrderByClause can result // in multiple OrderByTuple objects. const TupleNode *node = $1; while(node) { if(node->getType() == TupleNode::ORDER_BY) XQThrow3(StaticErrorException, X("XQParser"), X("Duplicate order by clause [err:XPST0003]"), $2); node = node->getParent(); } $$ = setLastAncestor($2, $1); } | FLWORTuples IntermediateClause { $$ = setLastAncestor($2, $1); } ; // [43] InitialClause ::= ForClause | LetClause | WindowClause InitialClause: ForClause | LetClause; // [44] IntermediateClause ::= InitialClause | WhereClause | GroupByClause | OrderByClause | CountClause IntermediateClause: InitialClause | WhereClause | CountClause; // [35] ForClause ::= "for" "$" VarName TypeDeclaration? PositionalVar? FTScoreVar? "in" ExprSingle // ("," "$" VarName TypeDeclaration? PositionalVar? FTScoreVar? "in" ExprSingle)* ForClause: _FOR_ ForBindingList { $$ = $2; } ; ForBindingList: ForBindingList _COMMA_ ForBinding { $$ = setLastAncestor($3, $1); } | ForBinding ; ForBinding: _DOLLAR_ VarName TypeDeclaration PositionalVar FTScoreVar _IN_ ExprSingle { // the SequenceType has been specified for each item of the sequence, but we can only apply to the // sequence itself, so allow it to match multiple matches $3->setOccurrence(SequenceType::STAR); $$ = WRAP(@1, new (MEMMGR) ForTuple(0, $2, $4, WRAP(@3, new (MEMMGR) XQTreatAs($7, $3, MEMMGR)), MEMMGR)); } ; // [36] PositionalVar ::= "at" "$" VarName PositionalVar: /* empty */ { $$ = NULL; } | _AT_ _DOLLAR_ VarName { REJECT_NOT_XQUERY(PositionalVar, @1); $$ = $3; } ; // [37] FTScoreVar ::= "score" "$" VarName FTScoreVar: /* empty */ { $$ = NULL; } | _SCORE_ _DOLLAR_ VarName { $$ = $3; } ; // [38] LetClause ::= (("let" "$" VarName TypeDeclaration?) | // ("let" "score" "$" VarName)) ":=" ExprSingle // ("," (("$" VarName TypeDeclaration?) | FTScoreVar) ":=" ExprSingle)* LetClause: _LET_ LetBindingList { $$ = $2; } ; LetBindingList: LetBindingList _COMMA_ LetBinding { $$ = setLastAncestor($3, $1); } | LetBinding ; LetBinding: _DOLLAR_ VarName TypeDeclaration _COLON_EQUALS_ ExprSingle { $$ = WRAP(@1, new (MEMMGR) LetTuple(0, $2, WRAP(@3, new (MEMMGR) XQTreatAs($5, $3, MEMMGR)), MEMMGR)); } | _SCORE_ _DOLLAR_ VarName _COLON_EQUALS_ ExprSingle { ASTNode *literal = WRAP(@1, new (MEMMGR) XQLiteral( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, X("0"), AnyAtomicType::DECIMAL, MEMMGR)); $$ = WRAP(@1, new (MEMMGR) LetTuple(0, $3, literal, MEMMGR)); } ; // [39] WhereClause ::= "where" ExprSingle WhereClause: _WHERE_ ExprSingle { $$ = WRAP(@1, new (MEMMGR) WhereTuple(0, $2, MEMMGR)); } ; // [60] CountClause ::= "count" "$" VarName CountClause: _COUNT_ _DOLLAR_ VarName { $$ = WRAP(@1, new (MEMMGR) CountTuple(0, $3, MEMMGR)); } ; // [40] OrderByClause ::= (<"order" "by"> | <"stable" "order" "by">) OrderSpecList OrderByClause: _ORDER_ _BY_ OrderSpecList { ((OrderByTuple*)getLastAncestor($3))->setUnstable(); $$ = $3; } | _STABLE_ _ORDER_ _BY_ OrderSpecList { $$ = $4; } ; // [41] OrderSpecList ::= OrderSpec ("," OrderSpec)* OrderSpecList: OrderSpecList _COMMA_ OrderSpec { $$ = setLastAncestor($1, $3); } | OrderSpec ; // [42] OrderSpec ::= ExprSingle OrderModifier // [43] OrderModifier ::= ("ascending" | "descending")? (<"empty" "greatest"> | <"empty" "least">)? ("collation" URILiteral)? OrderSpec: OrderExpr OrderDirection EmptyHandling { LOCATION(@1, loc); Collation *collation = CONTEXT->getDefaultCollation(&loc); $$ = WRAP(@1, new (MEMMGR) OrderByTuple(0, $1, OrderByTuple::STABLE | $2 | $3, collation, MEMMGR)); } | OrderExpr OrderDirection EmptyHandling _COLLATION_ URILiteral { try { LOCATION(@4, loc); Collation *collation = CONTEXT->getCollation($5, &loc); $$ = WRAP(@1, new (MEMMGR) OrderByTuple(0, $1, OrderByTuple::STABLE | $2 | $3, collation, MEMMGR)); } catch(ContextException&) { yyerror(@4, "The specified collation does not exist [err:XQST0076]"); } } ; OrderExpr: ExprSingle { SequenceType *zero_or_one = WRAP(@1, new (MEMMGR) SequenceType(new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ANYTHING), SequenceType::QUESTION_MARK)); $$ = $1; $$ = WRAP(@1, new (MEMMGR) XQAtomize($$, MEMMGR)); $$ = WRAP(@1, new (MEMMGR) XQPromoteUntyped($$, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, MEMMGR)); $$ = WRAP(@1, new (MEMMGR) XQTreatAs($$, zero_or_one, MEMMGR)); } ; OrderDirection: /* empty */ { $$ = OrderByTuple::ASCENDING; } | _ASCENDING_ { $$ = OrderByTuple::ASCENDING; } | _DESCENDING_ { $$ = OrderByTuple::DESCENDING; } ; EmptyHandling: /* empty */ { switch(CONTEXT->getDefaultFLWOROrderingMode()) { case StaticContext::FLWOR_ORDER_EMPTY_LEAST: $$ = OrderByTuple::EMPTY_LEAST; break; case StaticContext::FLWOR_ORDER_EMPTY_GREATEST: $$ = OrderByTuple::EMPTY_GREATEST; break; } } | _EMPTY_ _GREATEST_ { $$ = OrderByTuple::EMPTY_GREATEST; } | _EMPTY_ _LEAST_ { $$ = OrderByTuple::EMPTY_LEAST; } ; // [44] QuantifiedExpr ::= (<"some" "$"> | <"every" "$">) VarName TypeDeclaration? "in" ExprSingle // ("," "$" VarName TypeDeclaration? "in" ExprSingle)* "satisfies" ExprSingle QuantifiedExpr: _SOME_ QuantifyBindingList _SATISFIES_ ExprSingle { // Add a ContextTuple at the start TupleNode *tmp = setLastAncestor($2, WRAP(@1, new (MEMMGR) ContextTuple(MEMMGR))); // Add the return expression $$ = WRAP(@3, new (MEMMGR) XQQuantified(XQQuantified::SOME, tmp, $4, MEMMGR)); } | _EVERY_ QuantifyBindingList _SATISFIES_ ExprSingle { // Add a ContextTuple at the start TupleNode *tmp = setLastAncestor($2, WRAP(@1, new (MEMMGR) ContextTuple(MEMMGR))); // Add the return expression $$ = WRAP(@3, new (MEMMGR) XQQuantified(XQQuantified::EVERY, tmp, $4, MEMMGR)); } ; QuantifyBindingList: QuantifyBindingList _COMMA_ QuantifyBinding { $$ = setLastAncestor($3, $1); } | QuantifyBinding ; QuantifyBinding: _DOLLAR_ VarName TypeDeclaration _IN_ ExprSingle { // the SequenceType has been specified for each item of the sequence, but we can only apply to the // sequence itself, so allow it to match multiple matches $3->setOccurrence(SequenceType::STAR); $$ = WRAP(@1, new (MEMMGR) ForTuple(0, $2, 0, WRAP(@3, new (MEMMGR) XQTreatAs($5, $3, MEMMGR)), MEMMGR)); } ; // [74] TypeswitchExpr ::= "typeswitch" "(" Expr ")" CaseClause+ "default" ("$" VarName)? "return" ExprSingle TypeswitchExpr: _TYPESWITCH_ _LPAR_ Expr _RPAR_ CaseClauseList DefaultCase { $$ = WRAP(@1, new (MEMMGR) XQTypeswitch( WRAP(@1, $3), $5, $6, MEMMGR)); } ; CaseClauseList: CaseClauseList CaseClause { XQTypeswitch::Cases::iterator it = $2->begin(); for(; it != $2->end(); ++it) { $1->push_back(*it); } $$ = $1; } | CaseClause ; DefaultCase: _DEFAULT_ _DOLLAR_ VarName _RETURN_ ExprSingle { $$ = WRAP(@1, new (MEMMGR) XQTypeswitch::Case($3, NULL, $5)); } | _DEFAULT_ _RETURN_ ExprSingle { $$ = WRAP(@1, new (MEMMGR) XQTypeswitch::Case(NULL, NULL, $3)); } ; // [75] CaseClause ::= "case" ("$" VarName "as")? SequenceTypeUnion "return" ExprSingle CaseClause: CaseSequenceTypeUnion _RETURN_ ExprSingle { // TBD Don't copy the expression when unions of SequenceTypes are implemented - jpcs XQTypeswitch::Cases::iterator it = $1->begin(); if(it != $1->end()) { (*it)->setExpression($3); for(++it; it != $1->end(); ++it) { (*it)->setExpression($3->copy(CONTEXT)); } } $$ = $1; } ; // [75a] SequenceTypeUnion ::= SequenceType ("|" SequenceType)* CaseSequenceTypeUnion: _CASE_ CaseClauseVariable SequenceType { $$ = new (MEMMGR) XQTypeswitch::Cases(XQillaAllocator(MEMMGR)); $$->push_back(WRAP(@1, new (MEMMGR) XQTypeswitch::Case($2, $3, 0))); } | CaseSequenceTypeUnion _BAR_ SequenceType { REJECT_NOT_VERSION3(SequenceTypeUnion, @2); $1->push_back(WRAP(@3, new (MEMMGR) XQTypeswitch::Case($1->back()->getQName(), $3, 0))); $$ = $1; } ; CaseClauseVariable: /* empty */ { $$ = 0; } | _DOLLAR_ VarName _AS_ { $$ = $2; } ; // [47] IfExpr ::= <"if" "("> Expr ")" "then" ExprSingle "else" ExprSingle IfExpr: _IF_ _LPAR_ Expr _RPAR_ _THEN_ ExprSingle _ELSE_ ExprSingle { $$ = WRAP(@1, new (MEMMGR) XQIf($3, $6, $8, MEMMGR)); } ; // [48] OrExpr ::= AndExpr ( "or" AndExpr )* OrExpr: OrExpr _OR_ AndExpr { if($1->getType() == ASTNode::OPERATOR && ((XQOperator*)$1)->getOperatorName() == Or::name) { ((Or*)$1)->addArgument($3); $$ = $1; } else $$ = WRAP(@2, new (MEMMGR) Or(packageArgs($1, $3, MEMMGR), MEMMGR)); } | AndExpr ; // [49] AndExpr ::= ComparisonExpr ( "and" ComparisonExpr )* AndExpr: AndExpr _AND_ ComparisonExpr { if($1->getType()==ASTNode::OPERATOR && ((XQOperator*)$1)->getOperatorName() == And::name) { ((And*)$1)->addArgument($3); $$ = $1; } else $$ = WRAP(@2, new (MEMMGR) And(packageArgs($1, $3, MEMMGR), MEMMGR)); } | ComparisonExpr ; // [50] ComparisonExpr ::= FTContainsExpr ( (ValueComp // | GeneralComp // | NodeComp) FTContainsExpr )? // [63] GeneralComp ::= "=" | "!=" | "<" | "<=" | ">" | ">=" // [64] ValueComp ::= "eq" | "ne" | "lt" | "le" | "gt" | "ge" // [65] NodeComp ::= "is" | "<<" | ">>" ComparisonExpr: FTContainsExpr _EQUALS_ FTContainsExpr { $$ = WRAP(@2, new (MEMMGR) GeneralComp(GeneralComp::EQUAL,packageArgs($1,$3, MEMMGR),MEMMGR)); } | FTContainsExpr _BANG_EQUALS_ FTContainsExpr { $$ = WRAP(@2, new (MEMMGR) GeneralComp(GeneralComp::NOT_EQUAL,packageArgs($1,$3, MEMMGR),MEMMGR)); } | FTContainsExpr _LESS_THAN_OP_OR_TAG_ { /* Careful! */ QP->_lexer->undoLessThan(); } FTContainsExpr { $$ = WRAP(@2, new (MEMMGR) GeneralComp(GeneralComp::LESS_THAN,packageArgs($1,$4, MEMMGR),MEMMGR)); } | FTContainsExpr _LESS_THAN_EQUALS_ FTContainsExpr { $$ = WRAP(@2, new (MEMMGR) GeneralComp(GeneralComp::LESS_THAN_EQUAL,packageArgs($1,$3, MEMMGR),MEMMGR)); } | FTContainsExpr _GREATER_THAN_ FTContainsExpr { $$ = WRAP(@2, new (MEMMGR) GeneralComp(GeneralComp::GREATER_THAN,packageArgs($1,$3, MEMMGR),MEMMGR)); } | FTContainsExpr _GREATER_THAN_EQUALS_ FTContainsExpr { $$ = WRAP(@2, new (MEMMGR) GeneralComp(GeneralComp::GREATER_THAN_EQUAL,packageArgs($1,$3, MEMMGR),MEMMGR)); } | FTContainsExpr _EQ_ FTContainsExpr { $$ = WRAP(@2, new (MEMMGR) Equals(packageArgs($1, $3, MEMMGR),MEMMGR)); } | FTContainsExpr _NE_ FTContainsExpr { $$ = WRAP(@2, new (MEMMGR) NotEquals(packageArgs($1, $3, MEMMGR),MEMMGR)); } | FTContainsExpr _LT_ FTContainsExpr { $$ = WRAP(@2, new (MEMMGR) LessThan(packageArgs($1, $3, MEMMGR),MEMMGR)); } | FTContainsExpr _LE_ FTContainsExpr { $$ = WRAP(@2, new (MEMMGR) LessThanEqual(packageArgs($1, $3, MEMMGR),MEMMGR)); } | FTContainsExpr _GT_ FTContainsExpr { $$ = WRAP(@2, new (MEMMGR) GreaterThan(packageArgs($1, $3, MEMMGR),MEMMGR)); } | FTContainsExpr _GE_ FTContainsExpr { $$ = WRAP(@2, new (MEMMGR) GreaterThanEqual(packageArgs($1, $3, MEMMGR),MEMMGR)); } | FTContainsExpr _IS_ FTContainsExpr { $$ = WRAP(@2, new (MEMMGR) NodeComparison(packageArgs($1, $3, MEMMGR), MEMMGR)); } | FTContainsExpr _LESS_THAN_LESS_THAN_ FTContainsExpr { $$ = WRAP(@2, new (MEMMGR) OrderComparison(packageArgs($1, $3, MEMMGR), true, MEMMGR)); } | FTContainsExpr _GREATER_THAN_GREATER_THAN_ FTContainsExpr { $$ = WRAP(@2, new (MEMMGR) OrderComparison(packageArgs($1, $3, MEMMGR), false,MEMMGR)); } | FTContainsExpr ; // [51] FTContainsExpr ::= RangeExpr ( "contains" "text" FTSelection FTIgnoreOption? )? FTContainsExpr: RangeExpr _CONTAINS_ _TEXT_ FTSelection { $$ = WRAP(@2, new (MEMMGR) FTContains($1, $4, NULL, MEMMGR)); } | RangeExpr _CONTAINS_ _TEXT_ FTSelection FTIgnoreOption { $$ = WRAP(@2, new (MEMMGR) FTContains($1, $4, $5, MEMMGR)); } | RangeExpr ; // [52] RangeExpr ::= AdditiveExpr ( "to" AdditiveExpr )? RangeExpr: AdditiveExpr _TO_ AdditiveExpr { VectorOfASTNodes *args = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); args->push_back($1); args->push_back($3); $$ = WRAP(@2, new (MEMMGR) XQFunctionCall(0, BuiltInModules::core.uri, MEMMGR->getPooledString("to"), args, MEMMGR)); } | AdditiveExpr ; // [53] AdditiveExpr ::= MultiplicativeExpr ( ("+" | "-") MultiplicativeExpr )* AdditiveExpr: AdditiveExpr _PLUS_ MultiplicativeExpr { $$ = WRAP(@2, new (MEMMGR) Plus(packageArgs($1, $3, MEMMGR),MEMMGR)); } | AdditiveExpr _MINUS_ MultiplicativeExpr { $$ = WRAP(@2, new (MEMMGR) Minus(packageArgs($1, $3, MEMMGR),MEMMGR)); } | MultiplicativeExpr ; // [54] MultiplicativeExpr ::= UnionExpr ( ("*" | "div" | "idiv" | "mod") UnionExpr )* MultiplicativeExpr: MultiplicativeExpr _ASTERISK_ UnionExpr { $$ = WRAP(@2, new (MEMMGR) Multiply(packageArgs($1, $3, MEMMGR),MEMMGR)); } | MultiplicativeExpr _DIV_ UnionExpr { $$ = WRAP(@2, new (MEMMGR) Divide(packageArgs($1, $3, MEMMGR),MEMMGR)); } | MultiplicativeExpr _IDIV_ UnionExpr { $$ = WRAP(@2, new (MEMMGR) IntegerDivide(packageArgs($1, $3, MEMMGR),MEMMGR)); } | MultiplicativeExpr _MOD_ UnionExpr { $$ = WRAP(@2, new (MEMMGR) Mod(packageArgs($1, $3, MEMMGR),MEMMGR)); } | UnionExpr ; // [55] UnionExpr ::= IntersectExceptExpr ( ("union" | "|") IntersectExceptExpr )* UnionExpr: UnionExpr _BAR_ IntersectExceptExpr { $$ = WRAP(@2, new (MEMMGR) Union(packageArgs($1, $3, MEMMGR),MEMMGR)); } | UnionExpr _UNION_ IntersectExceptExpr { $$ = WRAP(@2, new (MEMMGR) Union(packageArgs($1, $3, MEMMGR),MEMMGR)); } | IntersectExceptExpr ; // [56] IntersectExceptExpr ::= InstanceofExpr ( ("intersect" | "except") InstanceofExpr )* IntersectExceptExpr: IntersectExceptExpr _INTERSECT_ InstanceofExpr { $$ = WRAP(@2, new (MEMMGR) Intersect(packageArgs($1, $3, MEMMGR),MEMMGR)); } | IntersectExceptExpr _EXCEPT_ InstanceofExpr { $$ = WRAP(@2, new (MEMMGR) Except(packageArgs($1, $3, MEMMGR),MEMMGR)); } | InstanceofExpr ; // [57] InstanceofExpr ::= TreatExpr ( <"instance" "of"> SequenceType )? InstanceofExpr: TreatExpr _INSTANCE_ _OF_ SequenceType { ASTNode *falseExpr = WRAP(@2, new (MEMMGR) XQFunctionCall(0, XQFunction::XMLChFunctionURI, MEMMGR->getPooledString("false"), 0, MEMMGR)); XQTypeswitch::Case *defcase = WRAP(@1, new (MEMMGR) XQTypeswitch::Case(NULL, NULL, falseExpr)); ASTNode *trueExpr = WRAP(@2, new (MEMMGR) XQFunctionCall(0, XQFunction::XMLChFunctionURI, MEMMGR->getPooledString("true"), 0, MEMMGR)); XQTypeswitch::Cases *cases = new (MEMMGR) XQTypeswitch::Cases(XQillaAllocator(MEMMGR)); cases->push_back(WRAP(@2, new (MEMMGR) XQTypeswitch::Case(NULL, $4, trueExpr))); $$ = WRAP(@2, new (MEMMGR) XQTypeswitch($1, cases, defcase, MEMMGR)); } | TreatExpr ; // [58] TreatExpr ::= CastableExpr ( <"treat" "as"> SequenceType )? TreatExpr: CastableExpr _TREAT_ _AS_ SequenceType { XQTreatAs* treatAs = new (MEMMGR) XQTreatAs($1,$4,MEMMGR, XQTreatAs::err_XPDY0050); $$ = WRAP(@2, treatAs); } | CastableExpr ; // [59] CastableExpr ::= CastExpr ( <"castable" "as"> SingleType )? CastableExpr: CastExpr _CASTABLE_ _AS_ SingleType { $$ = WRAP(@2, new (MEMMGR) XQCastableAs($1,$4,MEMMGR)); } | CastExpr ; // [60] CastExpr ::= UnaryExpr (<"cast" "as"> SingleType)? CastExpr: UnaryExpr _CAST_ _AS_ SingleType { $$ = WRAP(@1, new (MEMMGR) XQCastAs($1,$4,MEMMGR)); } | UnaryExpr ; // [61] UnaryExpr ::= ("-" | "+")* ValueExpr UnaryExpr: _MINUS_ UnaryExpr { VectorOfASTNodes args(XQillaAllocator(MEMMGR)); args.push_back($2); $$ = WRAP(@1, new (MEMMGR) UnaryMinus(/*positive*/false, args, MEMMGR)); } | _PLUS_ UnaryExpr { VectorOfASTNodes args(XQillaAllocator(MEMMGR)); args.push_back($2); $$ = WRAP(@1, new (MEMMGR) UnaryMinus(/*positive*/true, args, MEMMGR)); } | ValueExpr ; // [62] ValueExpr ::= ValidateExpr | PathExpr | ExtensionExpr ValueExpr: ValidateExpr | PathExpr | ExtensionExpr ; // [66] ValidateExpr ::= (<"validate" "{"> | // (<"validate" ValidationMode> "{") // ) Expr "}" // [67] ValidationMode ::= "lax" | "strict" ValidateExpr: _VALIDATE_ _LBRACE_ Expr _RBRACE_ { $$ = WRAP(@1, new (MEMMGR) XQValidate($3,DocumentCache::VALIDATION_STRICT,MEMMGR)); } | _VALIDATE_ _LAX_ _LBRACE_ Expr _RBRACE_ { $$ = WRAP(@1, new (MEMMGR) XQValidate($4,DocumentCache::VALIDATION_LAX,MEMMGR)); } | _VALIDATE_ _STRICT_ _LBRACE_ Expr _RBRACE_ { $$ = WRAP(@1, new (MEMMGR) XQValidate($4,DocumentCache::VALIDATION_STRICT,MEMMGR)); } ; // [68] ExtensionExpr ::= Pragma+ "{" Expr? "}" ExtensionExpr: PragmaList _LBRACE_ _RBRACE_ { REJECT_NOT_XQUERY(ExtensionExpr, @1); // we don't support any pragma yyerror(@1, "This pragma is not recognized, and no alternative expression is specified [err:XQST0079]"); } | PragmaList _LBRACE_ Expr _RBRACE_ { REJECT_NOT_XQUERY(ExtensionExpr, @1); // we don't support any pragma $$ = $3; } ; PragmaList: Pragma | PragmaList Pragma; // [69] Pragma ::= "(#" S? QName (S PragmaContents)? "#)" Pragma: _PRAGMA_OPEN_ OptionalWhitespace QNameValue PragmaContents { // validate the QName QualifiedName qName($3); const XMLCh* prefix=qName.getPrefix(); if(prefix == NULL || *prefix == 0) yyerror(@3, "The pragma name must have a prefix [err:XPST0081]"); try { LOCATION(@3, loc); CONTEXT->getUriBoundToPrefix(prefix, &loc); } catch(NamespaceLookupException&) { yyerror(@3, "The pragma name is using an undefined namespace prefix [err:XPST0081]"); } } ; // [70] PragmaContents ::= (Char* - (Char* '#)' Char*)) PragmaContents: _PRAGMA_CONTENT_ | _WHITESPACE_ _PRAGMA_CONTENT_ { $$ = $2; } ; // [71] PathExpr ::= ("/" RelativePathExpr?) | ("//" RelativePathExpr) | RelativePathExpr PathExpr: LeadingSlash | LeadingSlash RelativePathExpr { XQNav *nav = GET_NAVIGATION(@1, $1); nav->addStep($2); $$ = nav; } | _SLASH_SLASH_ RelativePathExpr { XQNav *nav = WRAP(@1, new (MEMMGR) XQNav(MEMMGR)); VectorOfASTNodes args(XQillaAllocator(MEMMGR)); FunctionRoot *root = WRAP(@1, new (MEMMGR) FunctionRoot(args, MEMMGR)); SequenceType *documentNode = WRAP(@1, new (MEMMGR) SequenceType(new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_DOCUMENT))); nav->addStep(WRAP(@1, new (MEMMGR) XQTreatAs(root, documentNode, MEMMGR))); NodeTest *step = new (MEMMGR) NodeTest(); step->setTypeWildcard(); step->setNameWildcard(); step->setNamespaceWildcard(); nav->addStep(WRAP(@1, new (MEMMGR) XQStep(XQStep::DESCENDANT_OR_SELF, step, MEMMGR))); nav->addStep($2); $$ = nav; } | RelativePathExpr ; LeadingSlash: _SLASH_ { VectorOfASTNodes args(XQillaAllocator(MEMMGR)); FunctionRoot *root = WRAP(@1, new (MEMMGR) FunctionRoot(args, MEMMGR)); SequenceType *documentNode = WRAP(@1, new (MEMMGR) SequenceType(new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_DOCUMENT))); $$ = WRAP(@1, new (MEMMGR) XQTreatAs(root, documentNode, MEMMGR)); } ; // [72] RelativePathExpr ::= StepExpr (("/" | "//") StepExpr)* RelativePathExpr: RelativePathExpr _SLASH_ StepExpr { XQNav *nav = GET_NAVIGATION(@1, $1); nav->addStep($3); $$ = nav; } | RelativePathExpr _SLASH_SLASH_ StepExpr { XQNav *nav = GET_NAVIGATION(@1, $1); NodeTest *step = new (MEMMGR) NodeTest(); step->setTypeWildcard(); step->setNameWildcard(); step->setNamespaceWildcard(); nav->addStep(WRAP(@2, new (MEMMGR) XQStep(XQStep::DESCENDANT_OR_SELF, step, MEMMGR))); nav->addStep($3); $$ = nav; } | StepExpr ; // [73] StepExpr ::= AxisStep | PostfixExpr StepExpr: AxisStep | PostfixExpr; // [74] AxisStep ::= (ForwardStep | ReverseStep) PredicateList AxisStep: ForwardStepPredicateList | ReverseStepPredicateList { $$ = WRAP(@1, new (MEMMGR) XQDocumentOrder($1, MEMMGR)); } ; // [85] PredicateList ::= Predicate* // [86] Predicate ::= "[" Expr "]" ForwardStepPredicateList: ForwardStep | ForwardStepPredicateList _LSQUARE_ Expr _RSQUARE_ { $$ = WRAP(@2, new (MEMMGR) XQPredicate($1, $3, MEMMGR)); } ; ReverseStepPredicateList: ReverseStep | ReverseStepPredicateList _LSQUARE_ Expr _RSQUARE_ { $$ = WRAP(@2, new (MEMMGR) XQPredicate($1, $3, /*reverse*/true, MEMMGR)); } ; // [75] ForwardStep ::= (ForwardAxis NodeTest) | AbbrevForwardStep ForwardStep: ForwardAxis NodeTest { if(!$2->isNodeTypeSet()) { switch($1) { case XQStep::NAMESPACE: $2->setNodeType(Node::namespace_string); break; case XQStep::ATTRIBUTE: $2->setNodeType(Node::attribute_string); break; default: $2->setNodeType(Node::element_string); break; } } $$ = WRAP(@1, new (MEMMGR) XQStep($1,$2,MEMMGR)); } | AbbrevForwardStep ; // [76] ForwardAxis ::= <"child" "::"> // | <"descendant" "::"> // | <"attribute" "::"> // | <"self" "::"> // | <"descendant-or-self" "::"> // | <"following-sibling" "::"> // | <"following" "::"> ForwardAxis: _CHILD_ _COLON_COLON_ { $$ = XQStep::CHILD; } | _DESCENDANT_ _COLON_COLON_ { $$ = XQStep::DESCENDANT; } | _ATTRIBUTE_ _COLON_COLON_ { $$ = XQStep::ATTRIBUTE; } | _SELF_ _COLON_COLON_ { $$ = XQStep::SELF; } | _DESCENDANT_OR_SELF_ _COLON_COLON_ { $$ = XQStep::DESCENDANT_OR_SELF; } | _FOLLOWING_SIBLING_ _COLON_COLON_ { $$ = XQStep::FOLLOWING_SIBLING; } | _FOLLOWING_ _COLON_COLON_ { $$ = XQStep::FOLLOWING; } | _NAMESPACE_ _COLON_COLON_ { $$ = XQStep::NAMESPACE; } ; // [77] AbbrevForwardStep ::= "@"? NodeTest AbbrevForwardStep: _AT_SIGN_ NodeTest { if(!$2->isNodeTypeSet()) { $2->setNodeType(Node::attribute_string); } $$ = WRAP(@1, new (MEMMGR) XQStep(XQStep::ATTRIBUTE, $2, MEMMGR)); } | NodeTest { XQStep::Axis axis = XQStep::CHILD; SequenceType::ItemType *itemtype = $1->getItemType(); if(itemtype != 0 && itemtype->getItemTestType() == SequenceType::ItemType::TEST_ATTRIBUTE) { axis = XQStep::ATTRIBUTE; } else if(!$1->isNodeTypeSet()) { $1->setNodeType(Node::element_string); } $$ = WRAP(@1, new (MEMMGR) XQStep(axis, $1, MEMMGR)); } ; // [78] ReverseStep ::= (ReverseAxis NodeTest) | AbbrevReverseStep ReverseStep: ReverseAxis NodeTest { if(!$2->isNodeTypeSet()) { $2->setNodeType(Node::element_string); } $$ = WRAP(@1, new (MEMMGR) XQStep($1, $2, MEMMGR)); } | AbbrevReverseStep ; // [79] ReverseAxis ::= <"parent" "::"> // | <"ancestor" "::"> // | <"preceding-sibling" "::"> // | <"preceding" "::"> // | <"ancestor-or-self" "::"> ReverseAxis: _PARENT_ _COLON_COLON_ { $$ = XQStep::PARENT; } | _ANCESTOR_ _COLON_COLON_ { $$ = XQStep::ANCESTOR; } | _PRECEDING_SIBLING_ _COLON_COLON_ { $$ = XQStep::PRECEDING_SIBLING; } | _PRECEDING_ _COLON_COLON_ { $$ = XQStep::PRECEDING; } | _ANCESTOR_OR_SELF_ _COLON_COLON_ { $$ = XQStep::ANCESTOR_OR_SELF; } ; // [80] AbbrevReverseStep ::= ".." AbbrevReverseStep: _DOT_DOT_ { NodeTest *step = new (MEMMGR) NodeTest(); step->setNameWildcard(); step->setNamespaceWildcard(); step->setTypeWildcard(); $$ = WRAP(@1, new (MEMMGR) XQStep(XQStep::PARENT, step, MEMMGR)); } ; // [81] NodeTest ::= KindTest | NameTest NodeTest: KindTest { $$ = new (MEMMGR) NodeTest(); $$->setItemType($1); } | NameTest ; // [82] NameTest ::= QName | Wildcard NameTest: QName { NodeTest *step = new (MEMMGR) NodeTest(); step->setNodePrefix($1->getPrefix()); step->setNodeName($1->getName()); $$ = step; } | Wildcard ; // [83] Wildcard ::= "*" | | <"*" ":" NCName> Wildcard: _ASTERISK_ { NodeTest *step = new (MEMMGR) NodeTest(); step->setNameWildcard(); step->setNamespaceWildcard(); $$ = step; } | _NCNAME_COLON_STAR_ { NodeTest *step = new (MEMMGR) NodeTest(); step->setNodePrefix($1); step->setNameWildcard(); $$ = step; } | _STAR_COLON_NCNAME_ { NodeTest *step = new (MEMMGR) NodeTest(); step->setNodeName($1); step->setNamespaceWildcard(); $$ = step; } ; // [121] PostfixExpr ::= PrimaryExpr (Predicate | ArgumentList)* // [124] Predicate ::= "[" Expr "]" PostfixExpr: PrimaryExpr | PostfixExpr _LSQUARE_ Expr _RSQUARE_ { $$ = WRAP(@2, new (MEMMGR) XQPredicate($1, $3, MEMMGR)); } | DynamicFunctionInvocation ; // [87] PrimaryExpr ::= Literal | VarRef | ParenthesizedExpr | ContextItemExpr | FunctionCall | Constructor | OrderedExpr | UnorderedExpr // | FunctionItemExpr PrimaryExpr: Literal | VarRef | ParenthesizedExpr | ContextItemExpr | FunctionCall | Constructor | OrderedExpr | UnorderedExpr | FunctionItemExpr ; // [88] Literal ::= NumericLiteral | StringLiteral Literal: NumericLiteral | StringLiteral; // [89] NumericLiteral ::= IntegerLiteral | DecimalLiteral | DoubleLiteral NumericLiteral: IntegerLiteral | DecimalLiteral | DoubleLiteral; // [90] VarRef ::= "$" VarName VarRef: _DOLLAR_ VarName { $$ = WRAP(@1, new (MEMMGR) XQVariable($2, MEMMGR)); } ; // [91] VarName ::= QName VarName: QNameValue; // [92] ParenthesizedExpr ::= "(" Expr? ")" ParenthesizedExpr: _LPAR_ Expr _RPAR_ { $$ = $2; } | _LPAR_ _RPAR_ { $$ = WRAP(@1, new (MEMMGR) XQSequence(MEMMGR)); } ; // [93] ContextItemExpr ::= "." ContextItemExpr: _DOT_ { $$ = WRAP(@1, new (MEMMGR) XQContextItem(MEMMGR)); } ; // [94] OrderedExpr ::= <"ordered" "{"> Expr "}" OrderedExpr: _ORDERED_ _LBRACE_ Expr _RBRACE_ { REJECT_NOT_XQUERY(OrderedExpr, @1); $$ = WRAP(@1, new (MEMMGR) XQOrderingChange(StaticContext::ORDERING_ORDERED, $3, MEMMGR)); } ; // [95] UnorderedExpr ::= <"unordered" "{"> Expr "}" UnorderedExpr: _UNORDERED_ _LBRACE_ Expr _RBRACE_ { REJECT_NOT_XQUERY(UnorderedExpr, @1); $$ = WRAP(@1, new (MEMMGR) XQOrderingChange(StaticContext::ORDERING_UNORDERED, $3, MEMMGR)); } ; // [134] FunctionCall ::= QName "(" (Argument ("," Argument)*)? ")" FunctionCall: FunctionName _LPAR_ _RPAR_ { $$ = WRAP(@1, new (MEMMGR) XQFunctionCall($1, NULL, MEMMGR)); } | FunctionName _LPAR_ FunctionCallArgumentList _RPAR_ { bool partial = false; VectorOfASTNodes::iterator i; for(i = $3->begin(); i != $3->end(); ++i) { if(*i == 0) { partial = true; break; } } if(partial) { // This is a partial function application XQFunctionRef *ref = WRAP(@1, new (MEMMGR) XQFunctionRef($1, $3->size(), MEMMGR)); $$ = WRAP(@2, new (MEMMGR) XQPartialApply(ref, $3, MEMMGR)); } else { $$ = WRAP(@1, new (MEMMGR) XQFunctionCall($1, $3, MEMMGR)); } } ; FunctionCallArgumentList: FunctionCallArgumentList _COMMA_ Argument { $1->push_back($3); $$ = $1; } | Argument { $$ = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); $$->push_back($1); } ; // [135] Argument ::= ExprSingle | ArgumentPlaceholder // [136] ArgumentPlaceholder ::= "?" Argument: ExprSingle | _QUESTION_MARK_ { REJECT_NOT_VERSION3(Argument, @1); $$ = 0; } ; // [97] Constructor ::= DirectConstructor | ComputedConstructor Constructor: DirectConstructor { REJECT_NOT_XQUERY(Constructor, @1); } | ComputedConstructor { REJECT_NOT_XQUERY(Constructor, @1); } ; // [98] DirectConstructor ::= DirElemConstructor // | DirCommentConstructor // | DirPIConstructor DirectConstructor: DirElemConstructor | DirCommentConstructor | DirPIConstructor; // [99] DirElemConstructor ::= "<" QName DirAttributeList ("/>" | (">" DirElementContent* "")) DirElemConstructor: _LESS_THAN_OP_OR_TAG_ DirElemConstructorQName DirAttributeList OptionalWhitespace _EMPTY_TAG_CLOSE_ { VectorOfASTNodes* content = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); ASTNode *name = WRAP(@2, new (MEMMGR) XQDirectName($2, /*useDefaultNamespace*/true, MEMMGR)); $$ = WRAP(@1, new (MEMMGR) XQElementConstructor(name, $3, content, MEMMGR)); } | _LESS_THAN_OP_OR_TAG_ DirElemConstructorQName DirAttributeList OptionalWhitespace _START_TAG_CLOSE_ DirElementContent _END_TAG_OPEN_ DirElemConstructorQName OptionalWhitespace _END_TAG_CLOSE_ { if(!XPath2Utils::equals($2, $8)) yyerror(@7, "Close tag does not match open tag"); ASTNode *name = WRAP(@2, new (MEMMGR) XQDirectName($2, /*useDefaultNamespace*/true, MEMMGR)); $$ = WRAP(@1, new (MEMMGR) XQElementConstructor(name, $3, $6, MEMMGR)); } ; DirElemConstructorQName: _QNAME_ | _XMLNS_QNAME_; // [100] DirAttributeList ::= (S (QName S? "=" S? DirAttributeValue)?)* DirAttributeList: /* empty */ { $$ = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); } | DirAttributeList _WHITESPACE_ _QNAME_ OptionalWhitespace _VALUE_INDICATOR_ OptionalWhitespace DirAttributeValue { $$ = $1; ASTNode *name = WRAP(@3, new (MEMMGR) XQDirectName($3, /*useDefaultNamespace*/false, MEMMGR)); ASTNode *attrItem = WRAP(@3, new (MEMMGR) XQAttributeConstructor(name, $7,MEMMGR)); $$->push_back(attrItem); } | DirAttributeList _WHITESPACE_ _XMLNS_QNAME_ OptionalWhitespace _VALUE_INDICATOR_ OptionalWhitespace LiteralDirAttributeValue { $$ = $1; ASTNode *name = WRAP(@3, new (MEMMGR) XQDirectName($3, /*useDefaultNamespace*/false, MEMMGR)); ASTNode *attrItem = WRAP(@3, new (MEMMGR) XQAttributeConstructor(name, $7,MEMMGR)); $$->insert($$->begin(), attrItem); } ; OptionalWhitespace: /* empty */ | _WHITESPACE_; // [101] DirAttributeValue ::= ('"' (EscapeQuot | QuotAttrValueContent)* '"') // | ("'" (EscapeApos | AposAttrValueContent)* "'") DirAttributeValue: _OPEN_QUOT_ QuotAttrValueContent _CLOSE_QUOT_ { $$ = $2; } | _OPEN_APOS_ AposAttrValueContent _CLOSE_APOS_ { $$ = $2; } ; LiteralDirAttributeValue: _OPEN_QUOT_ LiteralQuotAttrValueContent _CLOSE_QUOT_ { $$ = $2; } | _OPEN_APOS_ LiteralAposAttrValueContent _CLOSE_APOS_ { $$ = $2; } ; // [102] QuotAttrValueContent ::= QuotAttContentChar // | CommonContent // [105] CommonContent ::= PredefinedEntityRef | CharRef | "{{" | "}}" | EnclosedExpr QuotAttrValueContent: /* empty */ { $$ = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); } | QuotAttrValueContent EnclosedExpr { $$ = $1; $$->push_back($2); } | QuotAttrValueContent _QUOT_ATTR_CONTENT_ { $$ = $1; $$->push_back(WRAP(@2, new (MEMMGR) XQLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, $2, AnyAtomicType::STRING, MEMMGR))); } ; LiteralQuotAttrValueContent: /* empty */ { $$ = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); } | LiteralQuotAttrValueContent EnclosedExpr { yyerror(@2, "Namespace URI of a namespace declaration must be a literal [err:XQST0022]"); } | LiteralQuotAttrValueContent _QUOT_ATTR_CONTENT_ { $$ = $1; $$->push_back(WRAP(@2, new (MEMMGR) XQLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, $2, AnyAtomicType::STRING, MEMMGR))); } ; // [103] AposAttrValueContent ::= AposAttContentChar // | CommonContent // [105] CommonContent ::= PredefinedEntityRef | CharRef | "{{" | "}}" | EnclosedExpr AposAttrValueContent: /* empty */ { $$ = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); } | AposAttrValueContent EnclosedExpr { $$ = $1; $$->push_back($2); } | AposAttrValueContent _APOS_ATTR_CONTENT_ { $$ = $1; $$->push_back(WRAP(@2, new (MEMMGR) XQLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, $2, AnyAtomicType::STRING, MEMMGR))); } ; LiteralAposAttrValueContent: /* empty */ { $$ = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); } | LiteralAposAttrValueContent EnclosedExpr { yyerror(@2, "Namespace URI of a namespace declaration must be a literal [err:XQST0022]"); } | LiteralAposAttrValueContent _APOS_ATTR_CONTENT_ { $$ = $1; $$->push_back(WRAP(@2, new (MEMMGR) XQLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, $2, AnyAtomicType::STRING, MEMMGR))); } ; // [104] DirElementContent ::= DirectConstructor // | ElementContentChar // | CdataSection // | CommonContent // [105] CommonContent ::= PredefinedEntityRef | CharRef | "{{" | "}}" | EnclosedExpr // [110] CDataSection ::= "" // [111] CDataSectionContents ::= (Char* - (Char* ']]>' Char*)) DirElementContent: /* empty */ { $$ = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); } | DirElementContent DirectConstructor { $$ = $1; $$->push_back($2); } | DirElementContent EnclosedExpr { $$ = $1; $$->push_back($2); } | DirElementContent _ELEMENT_CONTENT_ { $$ = $1; $$->push_back(WRAP(@2, new (MEMMGR) XQLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, $2, AnyAtomicType::STRING, MEMMGR))); } | DirElementContent _WHITESPACE_ELEMENT_CONTENT_ { $$ = $1; if(CONTEXT->getPreserveBoundarySpace()) { $$->push_back(WRAP(@2, new (MEMMGR) XQLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, $2, AnyAtomicType::STRING, MEMMGR))); } } ; // [106] DirCommentConstructor ::= "" DirCommentConstructor: _XML_COMMENT_START_ DirCommentContents _XML_COMMENT_END_ { ASTNode *value = WRAP(@1, new (MEMMGR) XQLiteral( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, $2, AnyAtomicType::STRING, MEMMGR)); $$ = WRAP(@1, new (MEMMGR) XQCommentConstructor(value, MEMMGR)); } ; // [107] DirCommentContents ::= ((Char - '-') | <'-' (Char - '-')>)* DirCommentContents: /* empty */ { $$ = (XMLCh*)XMLUni::fgZeroLenString; } | _XML_COMMENT_CONTENT_ ; // [108] DirPIConstructor ::= "" DirPIConstructor: _PI_START_ _PI_TARGET_ DirPIContents { ASTNode *value = WRAP(@3, new (MEMMGR) XQLiteral( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, $3, AnyAtomicType::STRING, MEMMGR)); $$ = WRAP(@1, new (MEMMGR) XQPIConstructor( WRAP(@2, new (MEMMGR) XQLiteral( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, $2, AnyAtomicType::STRING, MEMMGR)), value, MEMMGR)); } ; // [109] DirPIContents ::= (Char* - (Char* '?>' Char*)) DirPIContents: _PI_CONTENT_ | _WHITESPACE_ _PI_CONTENT_ { $$ = $2; } ; // [152] ComputedConstructor ::= CompDocConstructor // | CompElemConstructor // | CompAttrConstructor // | CompNamespaceConstructor // | CompTextConstructor // | CompCommentConstructor // | CompPIConstructor ComputedConstructor: CompDocConstructor | CompElemConstructor | CompAttrConstructor | CompNamespaceConstructor | CompTextConstructor | CompCommentConstructor | CompPIConstructor ; // [113] CompDocConstructor ::= <"document" "{"> Expr "}" CompDocConstructor: _DOCUMENT_ _LBRACE_ Expr _RBRACE_ { $$ = WRAP(@1, new (MEMMGR) XQDocumentConstructor($3, MEMMGR)); } ; // [114] CompElemConstructor ::= (<"element" QName "{"> | (<"element" "{"> Expr "}" "{")) ContentExpr? "}" CompElemConstructor: _ELEMENT_ CompElementName ContentExpr { VectorOfASTNodes* empty = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); $$ = WRAP(@1, new (MEMMGR) XQElementConstructor($2, empty, $3, MEMMGR)); } ; CompElementName: _CONSTR_QNAME_ { $$ = WRAP(@1, new (MEMMGR) XQDirectName($1, /*useDefaultNamespace*/true, MEMMGR)); } | _LBRACE_ Expr _RBRACE_ { $$ = $2; } ; // [115] ContentExpr ::= Expr ContentExpr: _LBRACE_ _RBRACE_ { $$ = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); } | _LBRACE_ Expr _RBRACE_ { $$ = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); $$->push_back($2); } ; // [116] CompAttrConstructor ::= (<"attribute" QName "{"> | (<"attribute" "{"> Expr "}" "{")) Expr? "}" CompAttrConstructor: _ATTRIBUTE_ CompAttrName ContentExpr { $$ = WRAP(@1, new (MEMMGR) XQAttributeConstructor($2, $3, MEMMGR)); } ; CompAttrName: _CONSTR_QNAME_ { $$ = WRAP(@1, new (MEMMGR) XQDirectName($1, /*useDefaultNamespace*/false, MEMMGR)); } | _LBRACE_ Expr _RBRACE_ { $$ = $2; } ; // [157] CompNamespaceConstructor ::= "namespace" (Prefix | ("{" PrefixExpr "}")) "{" URIExpr? "}" // [159] PrefixExpr ::= Expr // [160] URIExpr ::= Expr CompNamespaceConstructor: _NAMESPACE_ CompPINCName ContentExpr { $$ = WRAP(@1, new (MEMMGR) XQNamespaceConstructor($2, $3, MEMMGR)); } ; // [117] CompTextConstructor ::= <"text" "{"> Expr "}" CompTextConstructor: _TEXT_ _LBRACE_ Expr _RBRACE_ { $$ = WRAP(@1, new (MEMMGR) XQTextConstructor($3, MEMMGR)); } ; // [118] CompCommentConstructor ::= <"comment" "{"> Expr "}" CompCommentConstructor: _COMMENT_ _LBRACE_ Expr _RBRACE_ { $$ = WRAP(@1, new (MEMMGR) XQCommentConstructor($3, MEMMGR)); } ; // [119] CompPIConstructor ::= (<"processing-instruction" NCName "{"> | (<"processing-instruction" "{"> Expr "}" "{")) Expr? "}" CompPIConstructor: _PROCESSING_INSTRUCTION_ CompPINCName CompPIConstructorContent { $$ = WRAP(@1, new (MEMMGR) XQPIConstructor($2, $3, MEMMGR)); } ; CompPINCName: _CONSTR_QNAME_ { // Check for a colon for(XMLCh *tmp = $1; *tmp; ++tmp) if(*tmp == ':') yyerror(@1, "Expecting an NCName, found a QName"); $$ = WRAP(@1, new (MEMMGR) XQLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, $1, AnyAtomicType::STRING, MEMMGR)); } | _LBRACE_ Expr _RBRACE_ { $$ = $2; } ; CompPIConstructorContent: _LBRACE_ _RBRACE_ { $$ = WRAP(@1, new (MEMMGR) XQSequence(MEMMGR)); } | _LBRACE_ Expr _RBRACE_ { $$ = $2; } ; // [120] SingleType ::= AtomicType "?"? SingleType: AtomicType SingleTypeOccurrence { SequenceType* seq = WRAP(@1, new (MEMMGR) SequenceType()); seq->setItemType(new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ATOMIC_TYPE, NULL, $1)); seq->setOccurrence($2); $$ = seq; } ; SingleTypeOccurrence: /* empty */ { $$ = SequenceType::EXACTLY_ONE; } | _QUESTION_MARK_ { $$ = SequenceType::QUESTION_MARK; } ; // [121] TypeDeclaration ::= "as" SequenceType TypeDeclaration: /* empty */ { $$ = WRAP(@$, new (MEMMGR) SequenceType(new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ANYTHING), SequenceType::STAR)); } | _AS_ SequenceType { REJECT_NOT_XQUERY(TypeDeclaration, @1); $$ = $2; } ; // [122] SequenceType ::= (ItemType OccurrenceIndicator?) | <" empty-sequence" "(" ")"> SequenceType: ItemType OccurrenceIndicator { SequenceType* seq = WRAP(@1, new (MEMMGR) SequenceType()); seq->setItemType($1); seq->setOccurrence($2); $$ = seq; } | _EMPTY_SEQUENCE_ _LPAR_ _RPAR_ { $$ = WRAP(@1, new (MEMMGR) SequenceType()); } ; // [123] OccurrenceIndicator ::= "*" | "+" | "?" OccurrenceIndicator: /* empty */ { $$ = SequenceType::EXACTLY_ONE; } | _ASTERISK_ { $$ = SequenceType::STAR; } | _PLUS_ { $$ = SequenceType::PLUS; } | _QUESTION_MARK_ { $$ = SequenceType::QUESTION_MARK; } ; // ItemType ::= KindTest | "item" "(" ")" | AtomicType | FunctionTest | ParenthesizedItemType ItemType: AtomicType { $$ = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ATOMIC_TYPE, NULL, $1); } | _ITEM_ _LPAR_ _RPAR_ { $$ = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ANYTHING); } | KindTest | FunctionTest | ParenthesizedItemType ; // [125] AtomicType ::= QName AtomicType: QName; // [126] KindTest ::= DocumentTest // | ElementTest // | AttributeTest // | SchemaElementTest // | SchemaAttributeTest // | PITest // | CommentTest // | TextTest // | AnyKindTest KindTest: DocumentTest | ElementTest | AttributeTest | SchemaElementTest | SchemaAttributeTest | PITest | CommentTest | TextTest | NamespaceNodeTest | AnyKindTest ; // [127] AnyKindTest ::= <"node" "("> ")" AnyKindTest: _NODE_ _LPAR_ _RPAR_ { $$ = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_NODE); } ; // [128] DocumentTest ::= <"document-node" "("> (ElementTest | SchemaElementTest)? ")" DocumentTest: _DOCUMENT_NODE_ _LPAR_ _RPAR_ { $$ = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_DOCUMENT); } | _DOCUMENT_NODE_ _LPAR_ ElementTest _RPAR_ { $$ = $3; $$->setItemTestType(SequenceType::ItemType::TEST_DOCUMENT); } | _DOCUMENT_NODE_ _LPAR_ SchemaElementTest _RPAR_ { $$ = $3; $$->setItemTestType(SequenceType::ItemType::TEST_SCHEMA_DOCUMENT); } ; // [129] TextTest ::= <"text" "("> ")" TextTest: _TEXT_ _LPAR_ _RPAR_ { $$ = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_TEXT); } ; // [130] CommentTest ::= <"comment" "("> ")" CommentTest: _COMMENT_ _LPAR_ _RPAR_ { $$ = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_COMMENT); } ; // [178] NamespaceNodeTest ::= "namespace-node" "(" ")" NamespaceNodeTest: _NAMESPACE_NODE_ _LPAR_ _RPAR_ { REJECT_NOT_VERSION3(NamespaceNodeTest, @1); $$ = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_NAMESPACE); } ; // [131] PITest ::= <"processing-instruction" "("> (NCName | StringLiteral)? ")" PITest: _PROCESSING_INSTRUCTION_ _LPAR_ _RPAR_ { $$ = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_PI); } | _PROCESSING_INSTRUCTION_ _LPAR_ NCName _RPAR_ { $$ = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_PI, new (MEMMGR) QualifiedName($3, MEMMGR)); } | _PROCESSING_INSTRUCTION_ _LPAR_ _STRING_LITERAL_ _RPAR_ { $$ = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_PI, new (MEMMGR) QualifiedName($3, MEMMGR)); } ; // [132] AttributeTest ::= <"attribute" "("> (AttribNameOrWildcard ("," TypeName)?)? ")" AttributeTest: _ATTRIBUTE_ _LPAR_ _RPAR_ { $$ = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ATTRIBUTE); } | _ATTRIBUTE_ _LPAR_ AttribNameOrWildcard _RPAR_ { $$ = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ATTRIBUTE,$3); } | _ATTRIBUTE_ _LPAR_ AttribNameOrWildcard _COMMA_ TypeName _RPAR_ { $$ = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ATTRIBUTE,$3,$5); } ; // [133] AttribNameOrWildcard ::= AttributeName | "*" AttribNameOrWildcard: AttributeName | _ASTERISK_ { $$ = NULL; } ; // [134] SchemaAttributeTest ::= <"schema-attribute" "("> AttributeDeclaration ")" SchemaAttributeTest: _SCHEMA_ATTRIBUTE_ _LPAR_ AttributeDeclaration _RPAR_ { $$ = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_SCHEMA_ATTRIBUTE,$3); } ; // [135] AttributeDeclaration ::= AttributeName AttributeDeclaration: AttributeName ; // [136] ElementTest ::= <"element" "("> (ElementNameOrWildcard ("," TypeName "?"?)?)? ")" ElementTest: _ELEMENT_ _LPAR_ _RPAR_ { $$ = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ELEMENT); } | _ELEMENT_ _LPAR_ ElementNameOrWildcard _RPAR_ { $$ = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ELEMENT,$3); } | _ELEMENT_ _LPAR_ ElementNameOrWildcard _COMMA_ TypeName _RPAR_ { $$ = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ELEMENT,$3,$5); } | _ELEMENT_ _LPAR_ ElementNameOrWildcard _COMMA_ TypeName _QUESTION_MARK_ _RPAR_ { $$ = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ELEMENT,$3,$5); $$->setAllowNilled(true); } ; // [137] ElementNameOrWildcard ::= ElementName | "*" ElementNameOrWildcard: ElementName | _ASTERISK_ { $$ = NULL; } ; // [138] SchemaElementTest ::= <"schema-element" "("> ElementDeclaration ")" SchemaElementTest: _SCHEMA_ELEMENT_ _LPAR_ ElementDeclaration _RPAR_ { $$ = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_SCHEMA_ELEMENT,$3); } ; // [139] ElementDeclaration ::= ElementName ElementDeclaration: ElementName; // [140] AttributeName ::= QName AttributeName: QName; // [141] ElementName ::= QName ElementName: QName; // [142] TypeName ::= QName TypeName: QName; // [143] URILiteral ::= StringLiteral URILiteral: _STRING_LITERAL_ { // the string must be whitespace-normalized XMLString::collapseWS($1, MEMMGR); if($1 && *$1 && !XPath2Utils::isValidURI($1, MEMMGR)) yyerror(@1, "The URI literal is not valid [err:XQST0046]"); $$ = $1; } ; // [144] FTSelection ::= FTOr FTPosFilter* ("weight" RangeExpr)? FTSelection: FTOr FTPosFilters FTSelectionWeight { // TBD weight $$ = $1; for(VectorOfFTOptions::iterator i = $2->begin(); i != $2->end(); ++i) { (*i)->setArgument($$); $$ = *i; } /* delete $2; */ } ; FTSelectionWeight: /* empty */ { } | _WEIGHT_ RangeExpr { } ; FTPosFilters: /* empty */ { $$ = new (MEMMGR) VectorOfFTOptions(XQillaAllocator(MEMMGR)); } | FTPosFilters FTPosFilter { if($2 != NULL) $1->push_back($2); $$ = $1; } ; // [145] FTOr ::= FTAnd ( "ftor" FTAnd )* FTOr: FTOr _FTOR_ FTAnd /* FTOr _OR_ FTAnd */ { if($1->getType() == FTSelection::OR) { FTOr *op = (FTOr*)$1; op->addArg($3); $$ = op; } else { $$ = WRAP(@2, new (MEMMGR) FTOr($1, $3, MEMMGR)); } } | FTAnd ; // [146] FTAnd ::= FTMildnot ( "ftand" FTMildnot )* FTAnd: FTAnd _FTAND_ FTMildnot /* FTAnd _AND_ FTMildnot */ { if($1->getType() == FTSelection::AND) { FTAnd *op = (FTAnd*)$1; op->addArg($3); $$ = op; } else { $$ = WRAP(@2, new (MEMMGR) FTAnd($1, $3, MEMMGR)); } } | FTMildnot ; // [147] FTMildnot ::= FTUnaryNot ( "not" "in" FTUnaryNot )* FTMildnot: FTMildnot _NOT_ _IN_ FTUnaryNot { $$ = WRAP(@2, new (MEMMGR) FTMildnot($1, $4, MEMMGR)); } | FTUnaryNot ; // [148] FTUnaryNot ::= ("ftnot")? FTPrimaryWithOptions FTUnaryNot: _FTNOT_ FTPrimaryWithOptions /* _NOT_ FTPrimaryWithOptions */ { $$ = WRAP(@1, new (MEMMGR) FTUnaryNot($2, MEMMGR)); } | FTPrimaryWithOptions ; // [149] FTPrimaryWithOptions ::= FTPrimary FTMatchOptions? FTPrimaryWithOptions: FTPrimary | FTPrimary FTMatchOptions { // TBD match options $$ = $1; } ; // [150] FTPrimary ::= (FTWords FTTimes?) | ("(" FTSelection ")") | FTExtensionSelection FTPrimary: FTWords FTTimes { // TBD FTTimes $$ = $1; } | _LPAR_ FTSelection _RPAR_ { $$ = $2; } | FTExtensionSelection ; // [151] FTWords ::= FTWordsValue FTAnyallOption? // [152] FTWordsValue ::= Literal | ("{" Expr "}") FTWords: Literal FTAnyallOption { $$ = WRAP(@1, new (MEMMGR) FTWords($1, $2, MEMMGR)); } | _LBRACE_ Expr _RBRACE_ FTAnyallOption { $$ = WRAP(@2, new (MEMMGR) FTWords($2, $4, MEMMGR)); } ; // [153] FTExtensionSelection ::= Pragma+ "{" FTSelection? "}" FTExtensionSelection: PragmaList _LBRACE_ _RBRACE_ { // we don't support any pragma yyerror(@1, "This pragma is not recognized, and no alternative expression is specified [err:XQST0079]"); } | PragmaList _LBRACE_ FTSelection _RBRACE_ { // we don't support any pragma $$ = $3; } ; // [154] FTAnyallOption ::= ("any" "word"?) | ("all" "words"?) | "phrase" FTAnyallOption: /* empty */ { $$ = FTWords::ANY; } | _ANY_ { $$ = FTWords::ANY; } | _ANY_ _WORD_ { $$ = FTWords::ANY_WORD; } | _ALL_ { $$ = FTWords::ALL; } | _ALL_ _WORDS_ { $$ = FTWords::ALL_WORDS; } | _PHRASE_ { $$ = FTWords::PHRASE; } ; // [155] FTTimes ::= "occurs" FTRange "times" FTTimes: /* empty */ | _OCCURS_ FTRange _TIMES_ { yyerror(@1, "The FTTimes operator is not supported. [err:FTST0005]"); } ; // [156] FTRange ::= ("exactly" AdditiveExpr) // | ("at" "least" AdditiveExpr) // | ("at" "most" AdditiveExpr) // | ("from" AdditiveExpr "to" AdditiveExpr) FTRange: _EXACTLY_ AdditiveExpr { $$.type = FTRange::EXACTLY; $$.arg1 = $2; $$.arg2 = 0; } | _AT_LM_ _LEAST_ AdditiveExpr { $$.type = FTRange::AT_LEAST; $$.arg1 = $3; $$.arg2 = 0; } | _AT_LM_ _MOST_ AdditiveExpr { $$.type = FTRange::AT_MOST; $$.arg1 = $3; $$.arg2 = 0; } | _FROM_ AdditiveExpr _TO_ AdditiveExpr { $$.type = FTRange::FROM_TO; $$.arg1 = $2; $$.arg2 = $4; } ; // [157] FTPosFilter ::= FTOrder | FTWindow | FTDistance | FTScope | FTContent // [158] FTOrder ::= "ordered" // [159] FTWindow ::= "window" AdditiveExpr FTUnit // [160] FTDistance ::= "distance" FTRange FTUnit // [162] FTScope ::= ("same" | "different") FTBigUnit // [164] FTContent ::= ("at" "start") | ("at" "end") | ("entire" "content") FTPosFilter: _ORDERED_ { $$ = WRAP(@1, new (MEMMGR) FTOrder(MEMMGR)); } | _WINDOW_ AdditiveExpr FTUnit { $$ = WRAP(@1, new (MEMMGR) FTWindow($2, $3, MEMMGR)); } | _DISTANCE_ FTRange FTUnit { $$ = WRAP(@1, new (MEMMGR) FTDistance($2, $3, MEMMGR)); } | _SAME_ FTBigUnit { $$ = WRAP(@1, new (MEMMGR) FTScope(FTScope::SAME, $2, MEMMGR)); } | _DIFFERENT_ FTBigUnit { $$ = WRAP(@1, new (MEMMGR) FTScope(FTScope::DIFFERENT, $2, MEMMGR)); } | _AT_ _START_ { $$ = WRAP(@1, new (MEMMGR) FTContent(FTContent::AT_START, MEMMGR)); } | _AT_ _END_ { $$ = WRAP(@1, new (MEMMGR) FTContent(FTContent::AT_END, MEMMGR)); } | _ENTIRE_ _CONTENT_ { $$ = WRAP(@1, new (MEMMGR) FTContent(FTContent::ENTIRE_CONTENT, MEMMGR)); } ; // [161] FTUnit ::= "words" | "sentences" | "paragraphs" FTUnit: _WORDS_ { $$ = FTOption::WORDS; } | _SENTENCES_ { $$ = FTOption::SENTENCES; } | _PARAGRAPHS_ { $$ = FTOption::PARAGRAPHS; } ; // [163] FTBigUnit ::= "sentence" | "paragraph" FTBigUnit: _SENTENCE_ { $$ = FTOption::SENTENCES; } | _PARAGRAPH_ { $$ = FTOption::PARAGRAPHS; } ; // [165] FTMatchOptions ::= ("using" FTMatchOption)+ /* xgc: multiple-match-options */ FTMatchOptions: _USING_ FTMatchOption | FTMatchOptions _USING_ FTMatchOption ; // [166] FTMatchOption ::= FTLanguageOption // | FTWildCardOption // | FTThesaurusOption // | FTStemOption // | FTCaseOption // | FTDiacriticsOption // | FTStopWordOption // | FTExtensionOption FTMatchOption: FTLanguageOption | FTWildCardOption | FTThesaurusOption | FTStemOption | FTCaseOption | FTDiacriticsOption | FTStopWordOption | FTExtensionOption ; // [167] FTCaseOption ::= ("case" "insensitive") // | ("case" "sensitive") // | "lowercase" // | "uppercase" FTCaseOption: _CASE_S_ _INSENSITIVE_ { CONTEXT->setFTCase(StaticContext::CASE_INSENSITIVE); } | _CASE_S_ _SENSITIVE_ { CONTEXT->setFTCase(StaticContext::CASE_SENSITIVE); } | _LOWERCASE_ { CONTEXT->setFTCase(StaticContext::LOWERCASE); } | _UPPERCASE_ { CONTEXT->setFTCase(StaticContext::UPPERCASE); } ; // [168] FTDiacriticsOption ::= ("diacritics" "insensitive") // | ("diacritics" "sensitive") FTDiacriticsOption: _DIACRITICS_ _INSENSITIVE_ { std::cerr << "diacritics insensitive" << std::endl; } | _DIACRITICS_ _SENSITIVE_ { std::cerr << "diacritics sensitive" << std::endl; } ; // [169] FTStemOption ::= "stemming" | ("no" "stemming") FTStemOption: _STEMMING_ { std::cerr << "using stemming" << std::endl; } | _NO_ _STEMMING_ { std::cerr << "no stemming" << std::endl; } ; // [170] FTThesaurusOption ::= ("thesaurus" (FTThesaurusID | "default")) // | ("thesaurus" "(" (FTThesaurusID | "default") ("," FTThesaurusID)* ")") // | ("no" "thesaurus") FTThesaurusOption: _THESAURUS_ FTThesaurusID { std::cerr << "using thesaurus" << std::endl; } | _THESAURUS_ _DEFAULT_ { std::cerr << "using thesaurus default" << std::endl; } | _THESAURUS_ _LPAR_ FTThesaurusID FTThesaurusIDList _RPAR_ { std::cerr << "using thesaurus ()" << std::endl; } | _THESAURUS_ _LPAR_ _DEFAULT_ FTThesaurusIDList _RPAR_ { std::cerr << "using thesaurus (default)" << std::endl; } | _NO_ _THESAURUS_ { std::cerr << "no thesaurus" << std::endl; } ; FTThesaurusIDList: /* empty */ { } | FTThesaurusIDList _COMMA_ FTThesaurusID { } ; // [171] FTThesaurusID ::= "at" URILiteral ("relationship" StringLiteral)? (FTRange "levels")? FTThesaurusID: _AT_ URILiteral { std::cerr << "at StringLiteral" << std::endl; } | _AT_ URILiteral _RELATIONSHIP_ StringLiteral { std::cerr << "at StringLiteral relationship StringLiteral" << std::endl; } | _AT_ URILiteral FTRange _LEVELS_ { std::cerr << "at StringLiteral levels" << std::endl; } | _AT_ URILiteral _RELATIONSHIP_ StringLiteral FTRange _LEVELS_ { std::cerr << "at StringLiteral relationship StringLiteral levels" << std::endl; } ; // [172] FTStopWordOption ::= ("stop" "words" FTStopWords FTStopWordsInclExcl*) // | ("no" "stop" "words") // | ("stop" "words" "default" FTStopWordsInclExcl*) FTStopWordOption: _STOP_ _WORDS_ FTStopWords FTStopWordsInclExclList { yyerror(@1, "FTStopWordOption is not supported. [err:FTST0006]"); } | _NO_ _STOP_ _WORDS_ { yyerror(@1, "FTStopWordOption is not supported. [err:FTST0006]"); } | _STOP_ _WORDS_ _DEFAULT_ FTStopWordsInclExclList { yyerror(@1, "FTStopWordOption is not supported. [err:FTST0006]"); } ; FTStopWordsInclExclList: /* empty */ { } | FTStopWordsInclExclList FTStopWordsInclExcl { } ; // [173] FTStopWords ::= ("at" URILiteral) // | ("(" StringLiteral ("," StringLiteral)* ")") FTStopWords: _AT_ URILiteral { std::cerr << "at URILiteral" << std::endl; } | _LPAR_ FTStopWordsStringList _RPAR_ { std::cerr << "()" << std::endl; } ; FTStopWordsStringList: StringLiteral { std::cerr << "StringLiteral" << std::endl; } | FTStopWordsStringList _COMMA_ StringLiteral { std::cerr << ", StringLiteral" << std::endl; } ; // [174] FTStopWordsInclExcl ::= ("union" | "except") FTStopWords FTStopWordsInclExcl: _UNION_ FTStopWords { std::cerr << "union" << std::endl; } | _EXCEPT_ FTStopWords { std::cerr << "except" << std::endl; } ; // [175] FTLanguageOption ::= "language" StringLiteral FTLanguageOption: _LANGUAGE_ StringLiteral { std::cerr << "language StringLiteral" << std::endl; } ; // [176] FTWildCardOption ::= "wildcards" | ("no" "wildcards") FTWildCardOption: _WILDCARDS_ { std::cerr << "using wildcards" << std::endl; } | _NO_ _WILDCARDS_ { std::cerr << "no wildcards" << std::endl; } ; // [177] FTExtensionOption ::= "option" QName StringLiteral FTExtensionOption: _OPTION_ QNameValue _STRING_LITERAL_ { } ; // [178] FTIgnoreOption ::= "without" "content" UnionExpr FTIgnoreOption: _WITHOUT_C_ _CONTENT_ UnionExpr { $$ = $3; } ; // [141] RevalidationDecl ::= "declare" "revalidation" ("strict" | "lax" | "skip") RevalidationDecl: _DECLARE_ _REVALIDATION_ _STRICT_ { CHECK_SPECIFIED(@1, BIT_REVALIDATION_SPECIFIED, "revalidation", "XUST0003"); CONTEXT->setRevalidationMode(DocumentCache::VALIDATION_STRICT); } | _DECLARE_ _REVALIDATION_ _LAX_ { CHECK_SPECIFIED(@1, BIT_REVALIDATION_SPECIFIED, "revalidation", "XUST0003"); CONTEXT->setRevalidationMode(DocumentCache::VALIDATION_LAX); } | _DECLARE_ _REVALIDATION_ _SKIP_ { CHECK_SPECIFIED(@1, BIT_REVALIDATION_SPECIFIED, "revalidation", "XUST0003"); CONTEXT->setRevalidationMode(DocumentCache::VALIDATION_SKIP); } ; // [142] InsertExprTargetChoice ::= (("as" ("first" | "last"))? "into") | "after" | "before" // [143] InsertExpr ::= "insert" ("node" | "nodes") SourceExpr InsertExprTargetChoice TargetExpr // [147] SourceExpr ::= ExprSingle // [148] TargetExpr ::= ExprSingle InsertExpr: InsertExprBegin ExprSingle _AS_ _FIRST_ _INTO_ ExprSingle { $$ = WRAP(@1, new (MEMMGR) UInsertAsFirst($2, $6, MEMMGR)); } | InsertExprBegin ExprSingle _AS_ _LAST_ _INTO_ ExprSingle { $$ = WRAP(@1, new (MEMMGR) UInsertAsLast($2, $6, MEMMGR)); } | InsertExprBegin ExprSingle _INTO_ ExprSingle { $$ = WRAP(@1, new (MEMMGR) UInsertInto($2, $4, MEMMGR)); } | InsertExprBegin ExprSingle _AFTER_ ExprSingle { $$ = WRAP(@1, new (MEMMGR) UInsertAfter($2, $4, MEMMGR)); } | InsertExprBegin ExprSingle _BEFORE_ ExprSingle { $$ = WRAP(@1, new (MEMMGR) UInsertBefore($2, $4, MEMMGR)); } ; InsertExprBegin: _INSERT_ _NODE_ | _INSERT_ _NODES_ ; // [144] DeleteExpr ::= "delete" ("node" | "nodes") TargetExpr // [148] TargetExpr ::= ExprSingle DeleteExpr: DeleteExprBegin ExprSingle { $$ = WRAP(@1, new (MEMMGR) UDelete($2, MEMMGR)); } ; DeleteExprBegin: _DELETE_ _NODE_ | _DELETE_ _NODES_ ; // [145] ReplaceExpr ::= "replace" ("value" "of")? "node" TargetExpr "with" ExprSingle // [148] TargetExpr ::= ExprSingle ReplaceExpr: _REPLACE_ _VALUE_ _OF_ _NODE_ ExprSingle _WITH_ ExprSingle { $$ = WRAP(@1, new (MEMMGR) UReplaceValueOf($5, $7, MEMMGR)); } | _REPLACE_ _NODE_ ExprSingle _WITH_ ExprSingle { $$ = WRAP(@1, new (MEMMGR) UReplace($3, $5, MEMMGR)); } ; // [146] RenameExpr ::= "rename" "node" TargetExpr "as" NewNameExpr // [148] TargetExpr ::= ExprSingle // [149] NewNameExpr ::= ExprSingle RenameExpr: _RENAME_ _NODE_ ExprSingle _AS_ ExprSingle { $$ = WRAP(@1, new (MEMMGR) URename($3, $5, MEMMGR)); } ; // [150] TransformExpr ::= "copy" "$" VarName ":=" ExprSingle ("," "$" VarName ":=" ExprSingle)* "modify" ExprSingle "return" ExprSingle TransformExpr: _COPY_ TransformBindingList _MODIFY_ ExprSingle _RETURN_ ExprSingle { $$ = WRAP(@1, new (MEMMGR) UTransform($2, $4, $6, MEMMGR)); } ; TransformBindingList: TransformBindingList _COMMA_ TransformBinding { $1->push_back($3); $$ = $1; } | TransformBinding { $$ = new (MEMMGR) VectorOfCopyBinding(XQillaAllocator(MEMMGR)); $$->push_back($1); } ; TransformBinding: _DOLLAR_ VarName _COLON_EQUALS_ ExprSingle { $$ = WRAP(@1, new (MEMMGR) CopyBinding(MEMMGR, $2, $4)); } ; // [174] IntegerLiteral ::= Digits IntegerLiteral: _INTEGER_LITERAL_ { $$ = WRAP(@1, new (MEMMGR) XQLiteral( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, $1, AnyAtomicType::DECIMAL, MEMMGR)); } ; // [175] DecimalLiteral ::= ("." Digits) | (Digits "." [0-9]*) DecimalLiteral: _DECIMAL_LITERAL_ { $$ = WRAP(@1, new (MEMMGR) XQLiteral( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_DECIMAL, $1, AnyAtomicType::DECIMAL, MEMMGR)); } ; // [176] DoubleLiteral ::= (("." Digits) | (Digits ("." [0-9]*)?)) [eE] [+-]? Digits DoubleLiteral: _DOUBLE_LITERAL_ { $$ = WRAP(@1, new (MEMMGR) XQLiteral( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_DOUBLE, $1, AnyAtomicType::DOUBLE, MEMMGR)); } ; // [177] StringLiteral ::= ('"' (PredefinedEntityRef | CharRef | ('"' '"') | [^"&])* '"') | // ("'" (PredefinedEntityRef | CharRef | ("'" "'") | [^'&])* "'") StringLiteral: _STRING_LITERAL_ { $$ = WRAP(@1, new (MEMMGR) XQLiteral( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, $1, AnyAtomicType::STRING, MEMMGR)); } ; NCName: QNameValue { // Check for a colon for(XMLCh *tmp = $1; *tmp; ++tmp) if(*tmp == ':') yyerror(@1, "Expecting an NCName, found a QName"); } ; QName: QNameValue { $$ = new (MEMMGR) QualifiedName($1,MEMMGR); } ; //////////////////////////////////////////////////////////////////////////////////////////////////// // Template Extension Rules // TemplateDecl ::= "declare" "template" ((("name" QName)? ("mode" TemplateDeclModes)? "matches" Pattern) | ("name" QName)) // ("(" ParamList? ")" ("as" SequenceType)?)? EnclosedExpr TemplateDecl: _DECLARE_ _TEMPLATE_ _NAME_ QNameValue EnclosedExpr { FunctionSignature *signature = new (MEMMGR) FunctionSignature(MEMMGR); $$ = WRAP(@1, new (MEMMGR) XQUserFunction($4, 0, signature, $5, MEMMGR)); } | _DECLARE_ _TEMPLATE_ _NAME_ QNameValue TemplateParamList TemplateSequenceType EnclosedExpr { FunctionSignature *signature = new (MEMMGR) FunctionSignature($5, $6, MEMMGR); $$ = WRAP(@1, new (MEMMGR) XQUserFunction($4, 0, signature, $7, MEMMGR)); } | _DECLARE_ _TEMPLATE_ _NAME_ QNameValue TemplateDeclModesSection _MATCHES_ Pattern_XSLT EnclosedExpr { FunctionSignature *signature = new (MEMMGR) FunctionSignature(MEMMGR); $$ = WRAP(@1, new (MEMMGR) XQUserFunction($4, $7, signature, $8, MEMMGR)); $$->setModeList($5); } | _DECLARE_ _TEMPLATE_ _NAME_ QNameValue TemplateDeclModesSection _MATCHES_ Pattern_XSLT TemplateParamList TemplateSequenceType EnclosedExpr { FunctionSignature *signature = new (MEMMGR) FunctionSignature($8, $9, MEMMGR); $$ = WRAP(@1, new (MEMMGR) XQUserFunction($4, $7, signature, $10, MEMMGR)); $$->setModeList($5); } | _DECLARE_ _TEMPLATE_ TemplateDeclModesSection _MATCHES_ Pattern_XSLT EnclosedExpr { FunctionSignature *signature = new (MEMMGR) FunctionSignature(MEMMGR); $$ = WRAP(@1, new (MEMMGR) XQUserFunction(0, $5, signature, $6, MEMMGR)); $$->setModeList($3); } | _DECLARE_ _TEMPLATE_ TemplateDeclModesSection _MATCHES_ Pattern_XSLT TemplateParamList TemplateSequenceType EnclosedExpr { FunctionSignature *signature = new (MEMMGR) FunctionSignature($6, $7, MEMMGR); $$ = WRAP(@1, new (MEMMGR) XQUserFunction(0, $5, signature, $8, MEMMGR)); $$->setModeList($3); } ; TemplateSequenceType: /* empty */ { $$ = 0; } | _AS_ SequenceType { $$ = $2; } ; // TBD required and tunnel - jpcs TemplateParamList: _LPAR_ _RPAR_ { $$ = 0; } | _LPAR_ ParamList _RPAR_ { $$ = $2; } ; TemplateDeclModesSection: /* empty */ { $$ = new (MEMMGR) XQUserFunction::ModeList(XQillaAllocator(MEMMGR)); $$->push_back(WRAP(@$, new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::DEFAULT))); } | _MODE_ TemplateDeclModes { $$ = $2; } ; // TemplateDeclModes ::= TemplateDeclMode ("," TemplateDeclMode)* TemplateDeclModes: TemplateDeclMode { $$ = new (MEMMGR) XQUserFunction::ModeList(XQillaAllocator(MEMMGR)); $$->push_back($1); } | TemplateDeclModes _COMMA_ TemplateDeclMode { $1->push_back($3); $$ = $1; } ; // TemplateDeclMode ::= QName | "#default" | "#all" TemplateDeclMode: _QNAME_ { $$ = WRAP(@1, new (MEMMGR) XQUserFunction::Mode($1)); } | _HASH_DEFAULT_ { $$ = WRAP(@1, new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::DEFAULT)); } | _HASH_ALL_ { $$ = WRAP(@1, new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::ALL)); } ; // CallTemplateExpr ::= "call" "template" QName ("with" "(" TemplateArgumentList ")")? CallTemplateExpr: _CALL_ _TEMPLATE_ QNameValue { $$ = WRAP(@1, new (MEMMGR) XQCallTemplate($3, 0, MEMMGR)); } | _CALL_ _TEMPLATE_ QNameValue _WITH_ _LPAR_ TemplateArgumentList _RPAR_ { $$ = WRAP(@1, new (MEMMGR) XQCallTemplate($3, $6, MEMMGR)); } ; // ApplyTemplatesExpr ::= "apply" "templates" ("mode" ApplyTemplatesMode)? ExprSingle ("with" "(" TemplateArgumentList ")")? ApplyTemplatesExpr: _APPLY_ _TEMPLATES_ ExprSingle { $$ = WRAP(@1, new (MEMMGR) XQApplyTemplates($3, 0, 0, MEMMGR)); } |_APPLY_ _TEMPLATES_ ExprSingle _WITH_ _LPAR_ TemplateArgumentList _RPAR_ { $$ = WRAP(@1, new (MEMMGR) XQApplyTemplates($3, $6, 0, MEMMGR)); } | _APPLY_ _TEMPLATES_ ExprSingle _MODE_ ApplyTemplatesMode { $$ = WRAP(@1, new (MEMMGR) XQApplyTemplates($3, 0, $5, MEMMGR)); } |_APPLY_ _TEMPLATES_ ExprSingle _MODE_ ApplyTemplatesMode _WITH_ _LPAR_ TemplateArgumentList _RPAR_ { $$ = WRAP(@1, new (MEMMGR) XQApplyTemplates($3, $8, $5, MEMMGR)); } ; // ApplyTemplatesMode ::= QName | "#default" | "#current" ApplyTemplatesMode: QNameValue { $$ = WRAP(@1, new (MEMMGR) XQUserFunction::Mode($1)); } | _HASH_DEFAULT_ { $$ = WRAP(@1, new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::DEFAULT)); } | _HASH_CURRENT_ { $$ = WRAP(@1, new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::CURRENT)); } ; // TemplateArgumentList ::= TemplateArgument ("," TemplateArgument)* TemplateArgumentList: TemplateArgument { $$ = new (MEMMGR) TemplateArguments(XQillaAllocator(MEMMGR)); $$->push_back($1); } | TemplateArgumentList _COMMA_ TemplateArgument { $$ = $1; $$->push_back($3); } ; // TemplateArgument ::= "tunnel"? "$" VarName TypeDeclaration? ":=" ExprSingle // TBD tunnel - jpcs TemplateArgument: _DOLLAR_ VarName TypeDeclaration _COLON_EQUALS_ ExprSingle { if($3 != 0) $5 = $3->convertFunctionArg($5, CONTEXT, /*numericfunction*/false, $3); $$ = WRAP(@1, new (MEMMGR) XQTemplateArgument($2, $5, MEMMGR)); } ; //////////////////////////////////////////////////////////////////////////////////////////////////// // XQuery 1.1 Functionality // [161] FunctionItemExpr ::= LiteralFunctionItem | InlineFunction FunctionItemExpr: LiteralFunctionItem | InlineFunction; // [162] LiteralFunctionItem ::= QName "#" IntegerLiteral LiteralFunctionItem: FunctionName _HASH_ _INTEGER_LITERAL_ { $$ = WRAP(@1, new (MEMMGR) XQFunctionRef($1, atoi(UTF8($3)), MEMMGR)); } ; // [163] InlineFunction ::= "function" "(" ParamList? ")" ("as" SequenceType)? EnclosedExpr InlineFunction: _FUNCTION_EXT_ FunctionParamList TypeDeclaration EnclosedExpr { FunctionSignature *signature = new (MEMMGR) FunctionSignature($2, $3, MEMMGR); XQUserFunction *func = WRAP(@1, new (MEMMGR) XQUserFunction(0, signature, $4, false, MEMMGR)); $$ = WRAP(@1, new (MEMMGR) XQInlineFunction(func, MEMMGR)); } ; // [121] PostfixExpr ::= PrimaryExpr (Predicate | ArgumentList)* // [122] ArgumentList ::= "(" (Argument ("," Argument)*)? ")" DynamicFunctionInvocation: PostfixExpr _LPAR_ _RPAR_ { REJECT_NOT_VERSION3(DynamicFunctionInvocation, @1); $$ = WRAP(@2, new (MEMMGR) XQFunctionDeref($1, new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)), MEMMGR)); } | PostfixExpr _LPAR_ FunctionCallArgumentList _RPAR_ { REJECT_NOT_VERSION3(DynamicFunctionInvocation, @1); bool partial = false; VectorOfASTNodes::iterator i; for(i = $3->begin(); i != $3->end(); ++i) { if(*i == 0) { partial = true; break; } } if(partial) { // This is a partial function application $$ = WRAP(@2, new (MEMMGR) XQPartialApply($1, $3, MEMMGR)); } else { $$ = WRAP(@2, new (MEMMGR) XQFunctionDeref($1, $3, MEMMGR)); } } ; // [189] FunctionTest ::= AnyFunctionTest | TypedFunctionTest FunctionTest: AnyFunctionTest | TypedFunctionTest; // [190] AnyFunctionTest ::= "function" "(" "*" ")" AnyFunctionTest: _FUNCTION_EXT_ _LPAR_ _ASTERISK_ _RPAR_ { $$ = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_FUNCTION); } ; // [191] TypedFunctionTest ::= "function" "(" (SequenceType ("," SequenceType)*)? ")" "as" SequenceType TypedFunctionTest: _FUNCTION_EXT_ _LPAR_ _RPAR_ _AS_ SequenceType { $$ = new (MEMMGR) SequenceType::ItemType(new (MEMMGR) VectorOfSequenceTypes(XQillaAllocator(MEMMGR)), $5); } | _FUNCTION_EXT_ _LPAR_ FunctionTypeArguments _RPAR_ _AS_ SequenceType { $$ = new (MEMMGR) SequenceType::ItemType($3, $6); } ; FunctionTypeArguments: SequenceType { $$ = new (MEMMGR) VectorOfSequenceTypes(XQillaAllocator(MEMMGR)); $$->push_back($1); } | FunctionTypeArguments _COMMA_ SequenceType { $$ = $1; $$->push_back($3); } ; // [192] ParenthesizedItemType ::= "(" ItemType ")" ParenthesizedItemType: _LPAR_ ItemType _RPAR_ { $$ = $2; } ; //////////////////////////////////////////////////////////////////////////////////////////////////// QNameValue: FunctionName | _ATTRIBUTE_ | _COMMENT_ | _DOCUMENT_NODE_ | _ELEMENT_ | _ITEM_ | _IF_ | _NODE_ | _PROCESSING_INSTRUCTION_ | _SCHEMA_ATTRIBUTE_ | _SCHEMA_ELEMENT_ | _TEXT_ | _TYPESWITCH_ | _EMPTY_SEQUENCE_ | _FUNCTION_EXT_ | _NAMESPACE_NODE_ ; FunctionName: _QNAME_ | _BOUNDARY_SPACE_ | _FT_OPTION_ | _BASE_URI_ | _LAX_ | _STRICT_ | _IDIV_ | _CHILD_ | _DESCENDANT_ | _SELF_ | _DESCENDANT_OR_SELF_ | _FOLLOWING_SIBLING_ | _FOLLOWING_ | _PARENT_ | _ANCESTOR_ | _PRECEDING_SIBLING_ | _PRECEDING_ | _ANCESTOR_OR_SELF_ | _DOCUMENT_ | _NOT_ | _SENSITIVE_ | _INSENSITIVE_ | _DIACRITICS_ | _WITHOUT_ | _STEMMING_ | _THESAURUS_ | _STOP_ | _WILDCARDS_ | _ENTIRE_ | _CONTENT_ | _WORD_ | _TYPE_ | _START_ | _END_ | _MOST_ | _SKIP_ | _COPY_ | _VALUE_ | _EQ_ | _NE_ | _LT_ | _LE_ | _GT_ | _GE_ | _AT_ | _VARIABLE_ | _RETURN_ | _FOR_ | _IN_ | _LET_ | _WHERE_ | _BY_ | _ORDER_ | _STABLE_ | _ASCENDING_ | _DESCENDING_ | _EMPTY_ | _GREATEST_ | _LEAST_ | _COLLATION_ | _SOME_ | _EVERY_ | _SATISFIES_ | _CASE_ | _AS_ | _THEN_ | _ELSE_ | _OR_ | _AND_ | _INSTANCE_ | _OF_ | _CASTABLE_ | _TO_ | _DIV_ | _MOD_ | _UNION_ | _INTERSECT_ | _EXCEPT_ | _VALIDATE_ | _CAST_ | _TREAT_ | _IS_ | _PRESERVE_ | _STRIP_ | _NAMESPACE_ | _EXTERNAL_ | _ENCODING_ | _NO_PRESERVE_ | _INHERIT_ | _NO_INHERIT_ | _DECLARE_ | _CONSTRUCTION_ | _ORDERING_ | _DEFAULT_ | _COPY_NAMESPACES_ | _OPTION_ | _VERSION_ | _IMPORT_ | _SCHEMA_ | _FUNCTION_ | _SCORE_ | _USING_ | _NO_ | _CONTAINS_ | _WEIGHT_ | _WINDOW_ | _DISTANCE_ | _OCCURS_ | _TIMES_ | _SAME_ | _DIFFERENT_ | _LOWERCASE_ | _UPPERCASE_ | _RELATIONSHIP_ | _LEVELS_ | _LANGUAGE_ | _ANY_ | _ALL_ | _PHRASE_ | _EXACTLY_ | _FROM_ | _WORDS_ | _SENTENCES_ | _PARAGRAPHS_ | _SENTENCE_ | _PARAGRAPH_ | _REPLACE_ | _MODIFY_ | _FIRST_ | _INSERT_ | _BEFORE_ | _AFTER_ | _REVALIDATION_ | _WITH_ | _NODES_ | _RENAME_ | _LAST_ | _DELETE_ | _INTO_ | _UPDATING_ | _ORDERED_ | _UNORDERED_ | _ID_ | _KEY_ | _TEMPLATE_ | _MATCHES_ | _NAME_ | _CALL_ | _APPLY_ | _TEMPLATES_ | _MODE_ | _FTOR_ | _FTAND_ | _FTNOT_ | _PRIVATE_ | _PUBLIC_ | _DETERMINISTIC_ | _NONDETERMINISTIC_ ; /* _XQUERY_ | */ /* _MODULE_ | */ %% } // namespace XQParser XQilla-2.3.0/src/parser/QName.cpp0000644000151400015140000000707511653565523013437 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; //Parse qualifiedName into prefix and name QualifiedName::QualifiedName(const XMLCh* qualifiedName, XPath2MemoryManager* memMgr) : _bDeleteStrings(false) { if(qualifiedName && *qualifiedName) { int colonPos = XMLString::indexOf(qualifiedName, chColon, 0); if(colonPos == -1) { _name = memMgr->getPooledString(qualifiedName); _prefix = 0; } else { XMLCh* tempPrefix = new XMLCh[colonPos + 1]; XMLString::subString(tempPrefix, qualifiedName, 0, colonPos); tempPrefix[colonPos] = 0; _prefix = memMgr->getPooledString(tempPrefix); delete [] tempPrefix; unsigned int length = XPath2Utils::uintStrlen(qualifiedName); XMLCh* tempName = new XMLCh[length - colonPos]; XMLString::subString(tempName, qualifiedName, colonPos + 1, length); tempName[length - colonPos - 1] = 0; _name = memMgr->getPooledString(tempName); delete [] tempName; } } else { _name = XMLUni::fgZeroLenString; _prefix = 0; } } QualifiedName::QualifiedName(const XMLCh* qualifiedName) : _bDeleteStrings(true) { if(qualifiedName && *qualifiedName) { int colonPos=XMLString::indexOf(qualifiedName, chColon, 0); if(colonPos == -1) { _name = XMLString::replicate(qualifiedName); _prefix = 0; } else { XMLCh* tempPrefix = new XMLCh[colonPos + 1]; XMLString::subString(tempPrefix, qualifiedName, 0, colonPos); tempPrefix[colonPos] = 0; _prefix = XMLString::replicate(tempPrefix); delete [] tempPrefix; unsigned int length = XPath2Utils::uintStrlen(qualifiedName); XMLCh* tempName = new XMLCh[length - colonPos]; XMLString::subString(tempName, qualifiedName, colonPos + 1, length); tempName[length - colonPos - 1] = 0; _name = XMLString::replicate(tempName); delete [] tempName; } } else { _name = XMLUni::fgZeroLenString; _prefix = 0; _bDeleteStrings = false; } } QualifiedName::QualifiedName(const XMLCh* prefix, const XMLCh* name) : _bDeleteStrings(false) { _prefix = prefix; _name = name; } QualifiedName::~QualifiedName() { if(_bDeleteStrings) { XMLString::release((XMLCh**)&_prefix); XMLString::release((XMLCh**)&_name); } } const XMLCh* QualifiedName::getPrefix() const { return _prefix; } const XMLCh* QualifiedName::getName() const { return _name; } const XMLCh* QualifiedName::getFullName(XPath2MemoryManager* memMgr) const { if(_prefix != NULL) { XMLCh szColon[2] = {chColon, chNull}; return XPath2Utils::concatStrings(_prefix, szColon, _name, memMgr); } return memMgr->getPooledString(_name); } XQilla-2.3.0/src/parser/XQParser.cpp0000644000151400015140000153145111653567033014142 00000000000000/* A Bison parser, made by GNU Bison 2.3. */ /* Skeleton implementation for Bison's Yacc-like parsers in C Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work under terms of your choice, so long as that work isn't itself a parser generator using the skeleton or a modified version thereof as a parser skeleton. Alternatively, if you modify or redistribute the parser skeleton itself, you may (at your option) remove this special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ /* C LALR(1) parser skeleton written by Richard Stallman, by simplifying the original so-called "semantic" parser. */ /* All symbols defined below should begin with yy or YY, to avoid infringing on user name space. This should be done even for local variables, as they might otherwise be expanded by user macros. There are some unavoidable exceptions within include files to define necessary library symbols; they are noted "INFRINGES ON USER NAME SPACE" below. */ /* Identify Bison output. */ #define YYBISON 1 /* Bison version. */ #define YYBISON_VERSION "2.3" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" /* Pure parsers. */ #define YYPURE 1 /* Using locations. */ #define YYLSP_NEEDED 1 /* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE /* Put the tokens into the symbol table, so that GDB and other debuggers know about them. */ enum yytokentype { MYEOF = 0, _LANG_XPATH2_ = 258, _LANG_XQUERY_ = 259, _LANG_XSLT2_ = 260, _LANG_FUNCDECL_ = 261, _LANG_DELAYEDMODULE_ = 262, _LANG_FUNCTION_SIGNATURE_ = 263, _DOLLAR_ = 264, _COLON_EQUALS_ = 265, _ASTERISK_ = 266, _BAR_ = 267, _BANG_EQUALS_ = 268, _LESS_THAN_EQUALS_ = 269, _GREATER_THAN_ = 270, _GREATER_THAN_EQUALS_ = 271, _LESS_THAN_LESS_THAN_ = 272, _GREATER_THAN_GREATER_THAN_ = 273, _COLON_COLON_ = 274, _AT_SIGN_ = 275, _LSQUARE_ = 276, _RSQUARE_ = 277, _QUESTION_MARK_ = 278, _LESS_THAN_OP_OR_TAG_ = 279, _START_TAG_CLOSE_ = 280, _END_TAG_CLOSE_ = 281, _PI_START_ = 282, _XML_COMMENT_START_ = 283, _XML_COMMENT_END_ = 284, _SLASH_SLASH_ = 285, _END_TAG_OPEN_ = 286, _PRAGMA_OPEN_ = 287, _COMMA_ = 288, _PLUS_ = 289, _MINUS_ = 290, _SLASH_ = 291, _EQUALS_ = 292, _DOT_ = 293, _DOT_DOT_ = 294, _LPAR_ = 295, _RPAR_ = 296, _EMPTY_TAG_CLOSE_ = 297, _VALUE_INDICATOR_ = 298, _OPEN_QUOT_ = 299, _CLOSE_QUOT_ = 300, _OPEN_APOS_ = 301, _CLOSE_APOS_ = 302, _LBRACE_ = 303, _RBRACE_ = 304, _SEMICOLON_ = 305, _HASH_ = 306, _INTEGER_LITERAL_ = 307, _DECIMAL_LITERAL_ = 308, _DOUBLE_LITERAL_ = 309, _ATTRIBUTE_ = 310, _COMMENT_ = 311, _DOCUMENT_NODE_ = 312, _NAMESPACE_NODE_ = 313, _NODE_ = 314, _PROCESSING_INSTRUCTION_ = 315, _SCHEMA_ATTRIBUTE_ = 316, _SCHEMA_ELEMENT_ = 317, _TEXT_ = 318, _EMPTY_SEQUENCE_ = 319, _BOUNDARY_SPACE_ = 320, _FT_OPTION_ = 321, _BASE_URI_ = 322, _LAX_ = 323, _STRICT_ = 324, _IDIV_ = 325, _CHILD_ = 326, _DESCENDANT_ = 327, _SELF_ = 328, _DESCENDANT_OR_SELF_ = 329, _FOLLOWING_SIBLING_ = 330, _FOLLOWING_ = 331, _PARENT_ = 332, _ANCESTOR_ = 333, _PRECEDING_SIBLING_ = 334, _PRECEDING_ = 335, _ANCESTOR_OR_SELF_ = 336, _DOCUMENT_ = 337, _NOT_ = 338, _USING_ = 339, _NO_ = 340, _SENSITIVE_ = 341, _INSENSITIVE_ = 342, _DIACRITICS_ = 343, _WITHOUT_ = 344, _WITHOUT_C_ = 345, _STEMMING_ = 346, _THESAURUS_ = 347, _STOP_ = 348, _WILDCARDS_ = 349, _ENTIRE_ = 350, _CONTENT_ = 351, _WORD_ = 352, _TYPE_ = 353, _START_ = 354, _END_ = 355, _MOST_ = 356, _SKIP_ = 357, _COPY_ = 358, _VALUE_ = 359, _WHITESPACE_ = 360, _PI_CONTENT_ = 361, _XML_COMMENT_CONTENT_ = 362, _EQ_ = 363, _NE_ = 364, _LT_ = 365, _LE_ = 366, _GT_ = 367, _GE_ = 368, _AT_ = 369, _QUOT_ATTR_CONTENT_ = 370, _APOS_ATTR_CONTENT_ = 371, _WHITESPACE_ELEMENT_CONTENT_ = 372, _ELEMENT_CONTENT_ = 373, _AT_LM_ = 374, _ORDERED_ = 375, _UNORDERED_ = 376, _QNAME_ = 377, _XMLNS_QNAME_ = 378, _CONSTR_QNAME_ = 379, _STRING_LITERAL_ = 380, _VARIABLE_ = 381, _NCNAME_COLON_STAR_ = 382, _STAR_COLON_NCNAME_ = 383, _PI_TARGET_ = 384, _PRAGMA_CONTENT_ = 385, _RETURN_ = 386, _FOR_ = 387, _IN_ = 388, _LET_ = 389, _WHERE_ = 390, _COUNT_ = 391, _BY_ = 392, _ORDER_ = 393, _STABLE_ = 394, _ASCENDING_ = 395, _DESCENDING_ = 396, _EMPTY_ = 397, _GREATEST_ = 398, _LEAST_ = 399, _COLLATION_ = 400, _SOME_ = 401, _EVERY_ = 402, _SATISFIES_ = 403, _TYPESWITCH_ = 404, _CASE_ = 405, _CASE_S_ = 406, _AS_ = 407, _IF_ = 408, _THEN_ = 409, _ELSE_ = 410, _OR_ = 411, _AND_ = 412, _INSTANCE_ = 413, _OF_ = 414, _CASTABLE_ = 415, _TO_ = 416, _DIV_ = 417, _MOD_ = 418, _UNION_ = 419, _INTERSECT_ = 420, _EXCEPT_ = 421, _VALIDATE_ = 422, _CAST_ = 423, _TREAT_ = 424, _IS_ = 425, _PRESERVE_ = 426, _STRIP_ = 427, _NAMESPACE_ = 428, _ITEM_ = 429, _EXTERNAL_ = 430, _ENCODING_ = 431, _NO_PRESERVE_ = 432, _INHERIT_ = 433, _NO_INHERIT_ = 434, _DECLARE_ = 435, _CONSTRUCTION_ = 436, _ORDERING_ = 437, _DEFAULT_ = 438, _COPY_NAMESPACES_ = 439, _OPTION_ = 440, _XQUERY_ = 441, _VERSION_ = 442, _IMPORT_ = 443, _SCHEMA_ = 444, _MODULE_ = 445, _ELEMENT_ = 446, _FUNCTION_ = 447, _FUNCTION_EXT_ = 448, _SCORE_ = 449, _CONTAINS_ = 450, _WEIGHT_ = 451, _WINDOW_ = 452, _DISTANCE_ = 453, _OCCURS_ = 454, _TIMES_ = 455, _SAME_ = 456, _DIFFERENT_ = 457, _LOWERCASE_ = 458, _UPPERCASE_ = 459, _RELATIONSHIP_ = 460, _LEVELS_ = 461, _LANGUAGE_ = 462, _ANY_ = 463, _ALL_ = 464, _PHRASE_ = 465, _EXACTLY_ = 466, _FROM_ = 467, _WORDS_ = 468, _SENTENCES_ = 469, _PARAGRAPHS_ = 470, _SENTENCE_ = 471, _PARAGRAPH_ = 472, _REPLACE_ = 473, _MODIFY_ = 474, _FIRST_ = 475, _INSERT_ = 476, _BEFORE_ = 477, _AFTER_ = 478, _REVALIDATION_ = 479, _WITH_ = 480, _NODES_ = 481, _RENAME_ = 482, _LAST_ = 483, _DELETE_ = 484, _INTO_ = 485, _UPDATING_ = 486, _ID_ = 487, _KEY_ = 488, _TEMPLATE_ = 489, _MATCHES_ = 490, _NAME_ = 491, _CALL_ = 492, _APPLY_ = 493, _TEMPLATES_ = 494, _MODE_ = 495, _FTOR_ = 496, _FTAND_ = 497, _FTNOT_ = 498, _PRIVATE_ = 499, _PUBLIC_ = 500, _DETERMINISTIC_ = 501, _NONDETERMINISTIC_ = 502, _XSLT_END_ELEMENT_ = 503, _XSLT_STYLESHEET_ = 504, _XSLT_TEMPLATE_ = 505, _XSLT_VALUE_OF_ = 506, _XSLT_TEXT_ = 507, _XSLT_APPLY_TEMPLATES_ = 508, _XSLT_CALL_TEMPLATE_ = 509, _XSLT_WITH_PARAM_ = 510, _XSLT_SEQUENCE_ = 511, _XSLT_PARAM_ = 512, _XSLT_FUNCTION_ = 513, _XSLT_CHOOSE_ = 514, _XSLT_WHEN_ = 515, _XSLT_OTHERWISE_ = 516, _XSLT_IF_ = 517, _XSLT_VARIABLE_ = 518, _XSLT_COMMENT_ = 519, _XSLT_PI_ = 520, _XSLT_DOCUMENT_ = 521, _XSLT_ATTRIBUTE_ = 522, _XSLT_NAMESPACE_ = 523, _XSLT_ELEMENT_ = 524, _XSLT_ANALYZE_STRING_ = 525, _XSLT_MATCHING_SUBSTRING_ = 526, _XSLT_NON_MATCHING_SUBSTRING_ = 527, _XSLT_COPY_OF_ = 528, _XSLT_COPY_ = 529, _XSLT_FOR_EACH_ = 530, _XSLT_OUTPUT_ = 531, _XSLT_IMPORT_SCHEMA_ = 532, _XSLT_VERSION_ = 533, _XSLT_MODE_ = 534, _XSLT_NAME_ = 535, _XSLT_DOCTYPE_PUBLIC_ = 536, _XSLT_DOCTYPE_SYSTEM_ = 537, _XSLT_ENCODING_ = 538, _XSLT_MEDIA_TYPE_ = 539, _XSLT_NORMALIZATION_FORM_ = 540, _XSLT_STANDALONE_ = 541, _XSLT_EXCLUDE_RESULT_PREFIXES_ = 542, _XSLT_NAMESPACE_STR_ = 543, _XSLT_SCHEMA_LOCATION_ = 544, _XSLT_TUNNEL_ = 545, _XSLT_REQUIRED_ = 546, _XSLT_OVERRIDE_ = 547, _XSLT_COPY_NAMESPACES_ = 548, _XSLT_INHERIT_NAMESPACES_ = 549, _XSLT_BYTE_ORDER_MARK_ = 550, _XSLT_ESCAPE_URI_ATTRIBUTES_ = 551, _XSLT_INCLUDE_CONTENT_TYPE_ = 552, _XSLT_INDENT_ = 553, _XSLT_OMIT_XML_DECLARATION_ = 554, _XSLT_UNDECLARE_PREFIXES_ = 555, _XSLT_MATCH_ = 556, _XSLT_AS_ = 557, _XSLT_SELECT_ = 558, _XSLT_PRIORITY_ = 559, _XSLT_TEST_ = 560, _XSLT_SEPARATOR_ = 561, _XSLT_NAMESPACE_A_ = 562, _XSLT_REGEX_ = 563, _XSLT_FLAGS_ = 564, _XSLT_METHOD_ = 565, _XSLT_CDATA_SECTION_ELEMENTS_ = 566, _XSLT_USE_CHARACTER_MAPS_ = 567, _XSLT_ELEMENT_NAME_ = 568, _XSLT_XMLNS_ATTR_ = 569, _XSLT_ATTR_NAME_ = 570, _XSLT_TEXT_NODE_ = 571, _XSLT_WS_TEXT_NODE_ = 572, _HASH_DEFAULT_ = 573, _HASH_ALL_ = 574, _HASH_CURRENT_ = 575, _XML_ = 576, _HTML_ = 577, _XHTML_ = 578 }; #endif /* Tokens. */ #define MYEOF 0 #define _LANG_XPATH2_ 258 #define _LANG_XQUERY_ 259 #define _LANG_XSLT2_ 260 #define _LANG_FUNCDECL_ 261 #define _LANG_DELAYEDMODULE_ 262 #define _LANG_FUNCTION_SIGNATURE_ 263 #define _DOLLAR_ 264 #define _COLON_EQUALS_ 265 #define _ASTERISK_ 266 #define _BAR_ 267 #define _BANG_EQUALS_ 268 #define _LESS_THAN_EQUALS_ 269 #define _GREATER_THAN_ 270 #define _GREATER_THAN_EQUALS_ 271 #define _LESS_THAN_LESS_THAN_ 272 #define _GREATER_THAN_GREATER_THAN_ 273 #define _COLON_COLON_ 274 #define _AT_SIGN_ 275 #define _LSQUARE_ 276 #define _RSQUARE_ 277 #define _QUESTION_MARK_ 278 #define _LESS_THAN_OP_OR_TAG_ 279 #define _START_TAG_CLOSE_ 280 #define _END_TAG_CLOSE_ 281 #define _PI_START_ 282 #define _XML_COMMENT_START_ 283 #define _XML_COMMENT_END_ 284 #define _SLASH_SLASH_ 285 #define _END_TAG_OPEN_ 286 #define _PRAGMA_OPEN_ 287 #define _COMMA_ 288 #define _PLUS_ 289 #define _MINUS_ 290 #define _SLASH_ 291 #define _EQUALS_ 292 #define _DOT_ 293 #define _DOT_DOT_ 294 #define _LPAR_ 295 #define _RPAR_ 296 #define _EMPTY_TAG_CLOSE_ 297 #define _VALUE_INDICATOR_ 298 #define _OPEN_QUOT_ 299 #define _CLOSE_QUOT_ 300 #define _OPEN_APOS_ 301 #define _CLOSE_APOS_ 302 #define _LBRACE_ 303 #define _RBRACE_ 304 #define _SEMICOLON_ 305 #define _HASH_ 306 #define _INTEGER_LITERAL_ 307 #define _DECIMAL_LITERAL_ 308 #define _DOUBLE_LITERAL_ 309 #define _ATTRIBUTE_ 310 #define _COMMENT_ 311 #define _DOCUMENT_NODE_ 312 #define _NAMESPACE_NODE_ 313 #define _NODE_ 314 #define _PROCESSING_INSTRUCTION_ 315 #define _SCHEMA_ATTRIBUTE_ 316 #define _SCHEMA_ELEMENT_ 317 #define _TEXT_ 318 #define _EMPTY_SEQUENCE_ 319 #define _BOUNDARY_SPACE_ 320 #define _FT_OPTION_ 321 #define _BASE_URI_ 322 #define _LAX_ 323 #define _STRICT_ 324 #define _IDIV_ 325 #define _CHILD_ 326 #define _DESCENDANT_ 327 #define _SELF_ 328 #define _DESCENDANT_OR_SELF_ 329 #define _FOLLOWING_SIBLING_ 330 #define _FOLLOWING_ 331 #define _PARENT_ 332 #define _ANCESTOR_ 333 #define _PRECEDING_SIBLING_ 334 #define _PRECEDING_ 335 #define _ANCESTOR_OR_SELF_ 336 #define _DOCUMENT_ 337 #define _NOT_ 338 #define _USING_ 339 #define _NO_ 340 #define _SENSITIVE_ 341 #define _INSENSITIVE_ 342 #define _DIACRITICS_ 343 #define _WITHOUT_ 344 #define _WITHOUT_C_ 345 #define _STEMMING_ 346 #define _THESAURUS_ 347 #define _STOP_ 348 #define _WILDCARDS_ 349 #define _ENTIRE_ 350 #define _CONTENT_ 351 #define _WORD_ 352 #define _TYPE_ 353 #define _START_ 354 #define _END_ 355 #define _MOST_ 356 #define _SKIP_ 357 #define _COPY_ 358 #define _VALUE_ 359 #define _WHITESPACE_ 360 #define _PI_CONTENT_ 361 #define _XML_COMMENT_CONTENT_ 362 #define _EQ_ 363 #define _NE_ 364 #define _LT_ 365 #define _LE_ 366 #define _GT_ 367 #define _GE_ 368 #define _AT_ 369 #define _QUOT_ATTR_CONTENT_ 370 #define _APOS_ATTR_CONTENT_ 371 #define _WHITESPACE_ELEMENT_CONTENT_ 372 #define _ELEMENT_CONTENT_ 373 #define _AT_LM_ 374 #define _ORDERED_ 375 #define _UNORDERED_ 376 #define _QNAME_ 377 #define _XMLNS_QNAME_ 378 #define _CONSTR_QNAME_ 379 #define _STRING_LITERAL_ 380 #define _VARIABLE_ 381 #define _NCNAME_COLON_STAR_ 382 #define _STAR_COLON_NCNAME_ 383 #define _PI_TARGET_ 384 #define _PRAGMA_CONTENT_ 385 #define _RETURN_ 386 #define _FOR_ 387 #define _IN_ 388 #define _LET_ 389 #define _WHERE_ 390 #define _COUNT_ 391 #define _BY_ 392 #define _ORDER_ 393 #define _STABLE_ 394 #define _ASCENDING_ 395 #define _DESCENDING_ 396 #define _EMPTY_ 397 #define _GREATEST_ 398 #define _LEAST_ 399 #define _COLLATION_ 400 #define _SOME_ 401 #define _EVERY_ 402 #define _SATISFIES_ 403 #define _TYPESWITCH_ 404 #define _CASE_ 405 #define _CASE_S_ 406 #define _AS_ 407 #define _IF_ 408 #define _THEN_ 409 #define _ELSE_ 410 #define _OR_ 411 #define _AND_ 412 #define _INSTANCE_ 413 #define _OF_ 414 #define _CASTABLE_ 415 #define _TO_ 416 #define _DIV_ 417 #define _MOD_ 418 #define _UNION_ 419 #define _INTERSECT_ 420 #define _EXCEPT_ 421 #define _VALIDATE_ 422 #define _CAST_ 423 #define _TREAT_ 424 #define _IS_ 425 #define _PRESERVE_ 426 #define _STRIP_ 427 #define _NAMESPACE_ 428 #define _ITEM_ 429 #define _EXTERNAL_ 430 #define _ENCODING_ 431 #define _NO_PRESERVE_ 432 #define _INHERIT_ 433 #define _NO_INHERIT_ 434 #define _DECLARE_ 435 #define _CONSTRUCTION_ 436 #define _ORDERING_ 437 #define _DEFAULT_ 438 #define _COPY_NAMESPACES_ 439 #define _OPTION_ 440 #define _XQUERY_ 441 #define _VERSION_ 442 #define _IMPORT_ 443 #define _SCHEMA_ 444 #define _MODULE_ 445 #define _ELEMENT_ 446 #define _FUNCTION_ 447 #define _FUNCTION_EXT_ 448 #define _SCORE_ 449 #define _CONTAINS_ 450 #define _WEIGHT_ 451 #define _WINDOW_ 452 #define _DISTANCE_ 453 #define _OCCURS_ 454 #define _TIMES_ 455 #define _SAME_ 456 #define _DIFFERENT_ 457 #define _LOWERCASE_ 458 #define _UPPERCASE_ 459 #define _RELATIONSHIP_ 460 #define _LEVELS_ 461 #define _LANGUAGE_ 462 #define _ANY_ 463 #define _ALL_ 464 #define _PHRASE_ 465 #define _EXACTLY_ 466 #define _FROM_ 467 #define _WORDS_ 468 #define _SENTENCES_ 469 #define _PARAGRAPHS_ 470 #define _SENTENCE_ 471 #define _PARAGRAPH_ 472 #define _REPLACE_ 473 #define _MODIFY_ 474 #define _FIRST_ 475 #define _INSERT_ 476 #define _BEFORE_ 477 #define _AFTER_ 478 #define _REVALIDATION_ 479 #define _WITH_ 480 #define _NODES_ 481 #define _RENAME_ 482 #define _LAST_ 483 #define _DELETE_ 484 #define _INTO_ 485 #define _UPDATING_ 486 #define _ID_ 487 #define _KEY_ 488 #define _TEMPLATE_ 489 #define _MATCHES_ 490 #define _NAME_ 491 #define _CALL_ 492 #define _APPLY_ 493 #define _TEMPLATES_ 494 #define _MODE_ 495 #define _FTOR_ 496 #define _FTAND_ 497 #define _FTNOT_ 498 #define _PRIVATE_ 499 #define _PUBLIC_ 500 #define _DETERMINISTIC_ 501 #define _NONDETERMINISTIC_ 502 #define _XSLT_END_ELEMENT_ 503 #define _XSLT_STYLESHEET_ 504 #define _XSLT_TEMPLATE_ 505 #define _XSLT_VALUE_OF_ 506 #define _XSLT_TEXT_ 507 #define _XSLT_APPLY_TEMPLATES_ 508 #define _XSLT_CALL_TEMPLATE_ 509 #define _XSLT_WITH_PARAM_ 510 #define _XSLT_SEQUENCE_ 511 #define _XSLT_PARAM_ 512 #define _XSLT_FUNCTION_ 513 #define _XSLT_CHOOSE_ 514 #define _XSLT_WHEN_ 515 #define _XSLT_OTHERWISE_ 516 #define _XSLT_IF_ 517 #define _XSLT_VARIABLE_ 518 #define _XSLT_COMMENT_ 519 #define _XSLT_PI_ 520 #define _XSLT_DOCUMENT_ 521 #define _XSLT_ATTRIBUTE_ 522 #define _XSLT_NAMESPACE_ 523 #define _XSLT_ELEMENT_ 524 #define _XSLT_ANALYZE_STRING_ 525 #define _XSLT_MATCHING_SUBSTRING_ 526 #define _XSLT_NON_MATCHING_SUBSTRING_ 527 #define _XSLT_COPY_OF_ 528 #define _XSLT_COPY_ 529 #define _XSLT_FOR_EACH_ 530 #define _XSLT_OUTPUT_ 531 #define _XSLT_IMPORT_SCHEMA_ 532 #define _XSLT_VERSION_ 533 #define _XSLT_MODE_ 534 #define _XSLT_NAME_ 535 #define _XSLT_DOCTYPE_PUBLIC_ 536 #define _XSLT_DOCTYPE_SYSTEM_ 537 #define _XSLT_ENCODING_ 538 #define _XSLT_MEDIA_TYPE_ 539 #define _XSLT_NORMALIZATION_FORM_ 540 #define _XSLT_STANDALONE_ 541 #define _XSLT_EXCLUDE_RESULT_PREFIXES_ 542 #define _XSLT_NAMESPACE_STR_ 543 #define _XSLT_SCHEMA_LOCATION_ 544 #define _XSLT_TUNNEL_ 545 #define _XSLT_REQUIRED_ 546 #define _XSLT_OVERRIDE_ 547 #define _XSLT_COPY_NAMESPACES_ 548 #define _XSLT_INHERIT_NAMESPACES_ 549 #define _XSLT_BYTE_ORDER_MARK_ 550 #define _XSLT_ESCAPE_URI_ATTRIBUTES_ 551 #define _XSLT_INCLUDE_CONTENT_TYPE_ 552 #define _XSLT_INDENT_ 553 #define _XSLT_OMIT_XML_DECLARATION_ 554 #define _XSLT_UNDECLARE_PREFIXES_ 555 #define _XSLT_MATCH_ 556 #define _XSLT_AS_ 557 #define _XSLT_SELECT_ 558 #define _XSLT_PRIORITY_ 559 #define _XSLT_TEST_ 560 #define _XSLT_SEPARATOR_ 561 #define _XSLT_NAMESPACE_A_ 562 #define _XSLT_REGEX_ 563 #define _XSLT_FLAGS_ 564 #define _XSLT_METHOD_ 565 #define _XSLT_CDATA_SECTION_ELEMENTS_ 566 #define _XSLT_USE_CHARACTER_MAPS_ 567 #define _XSLT_ELEMENT_NAME_ 568 #define _XSLT_XMLNS_ATTR_ 569 #define _XSLT_ATTR_NAME_ 570 #define _XSLT_TEXT_NODE_ 571 #define _XSLT_WS_TEXT_NODE_ 572 #define _HASH_DEFAULT_ 573 #define _HASH_ALL_ 574 #define _HASH_CURRENT_ 575 #define _XML_ 576 #define _HTML_ 577 #define _XHTML_ 578 /* Copy the first part of user declarations. */ #line 20 "../src/parser/XQParser.y" #if defined(WIN32) && !defined(__CYGWIN__) // turn off the warnings "switch statement contains 'default' but no 'case' labels" // "'yyerrlab1' : unreferenced label" #pragma warning(disable : 4065 4102) #endif #include #include #include #include #include "../lexer/XQLexer.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "../config/xqilla_config.h" #define YYPARSE_PARAM qp #define YYDEBUG 1 #define YYERROR_VERBOSE // this removes a memory leak occurring when an error is found in the query (we throw an exception from inside // yyerror, preventing the bison-generated code from cleaning up the memory); by defining this macro we use // stack-based memory instead of the heap #define YYSTACK_USE_ALLOCA 1 #if HAVE_ALLOCA_H #include #elif defined __GNUC__ #undef alloca #define alloca __builtin_alloca #elif defined _AIX #define alloca __alloca #elif defined _MSC_VER #include #else #include #ifdef __cplusplus extern "C" #endif void *alloca (size_t); #endif #define QP ((XQParserArgs*)qp) #define CONTEXT (QP->_context) #define LANGUAGE (QP->_lexer->getLanguage()) #define MEMMGR (QP->_lexer->getMemoryManager()) #define REJECT_NOT_XQUERY(where,pos) if(!QP->_lexer->isXQuery()) { yyerror(LANGUAGE, #where, (pos).first_line, (pos).first_column); } #define REJECT_NOT_VERSION3(where,pos) if(!QP->_lexer->isVersion3()) { yyerror(LANGUAGE, #where, (pos).first_line, (pos).first_column); } #define WRAP(pos,object) (wrapForDebug((QP), (object), (pos).first_line, (pos).first_column)) #define LOCATION(pos,name) LocationInfo name(QP->_lexer->getFile(), (pos).first_line, (pos).first_column) #define GET_NAVIGATION(pos, object) (((object)->getType() == ASTNode::NAVIGATION) ? (XQNav*)(object) : WRAP(pos, new (MEMMGR) XQNav((object), MEMMGR))) #define PRESERVE_NS(pos, object) (QP->_lexer->getNSResolver() == 0 ? (object) : WRAP((pos), new (MEMMGR) XQNamespaceBinding(QP->_lexer->getNSResolver(), (object), MEMMGR))) #define BIT_ORDERING_SPECIFIED 0 #define BIT_BOUNDARY_SPECIFIED 1 #define BIT_COLLATION_SPECIFIED 2 #define BIT_BASEURI_SPECIFIED 3 #define BIT_CONSTRUCTION_SPECIFIED 4 #define BIT_EMPTYORDERING_SPECIFIED 5 #define BIT_COPYNAMESPACE_SPECIFIED 6 #define BIT_DEFAULTELEMENTNAMESPACE_SPECIFIED 7 #define BIT_DEFAULTFUNCTIONNAMESPACE_SPECIFIED 8 #define BIT_DECLARE_SECOND_STEP 9 #define BIT_REVALIDATION_SPECIFIED 10 #define CHECK_SECOND_STEP(pos, name) { \ if(QP->_flags.get(BIT_DECLARE_SECOND_STEP)) \ yyerror((pos), "Prolog contains " name " declaration after a variable, function or option declaration"); \ } #define CHECK_SPECIFIED(pos, bit, name, error) { \ if(QP->_flags.get(bit)) \ yyerror((pos), "Prolog contains more than one " name " declaration [err:" error "]"); \ QP->_flags.set(bit); \ } #define SET_NAMESPACE(pos, prefix, uri) { \ if(QP->_namespaceDecls.containsKey((prefix))) \ yyerror((pos), "Namespace prefix has already been bound to a namespace [err:XQST0033]"); \ QP->_namespaceDecls.put((prefix), NULL); \ CONTEXT->setNamespaceBinding((prefix), (uri)); \ } #define SET_BUILT_IN_NAMESPACE(prefix, uri) { \ if(!QP->_namespaceDecls.containsKey((prefix))) \ CONTEXT->setNamespaceBinding((prefix), (uri)); \ } #undef yylex #define yylex QP->_lexer->yylex #undef yyerror #define yyerror QP->_lexer->error XERCES_CPP_NAMESPACE_USE; using namespace std; static const XMLCh sz1_0[] = { chDigit_1, chPeriod, chDigit_0, chNull }; static const XMLCh sz3_0[] = { chDigit_3, chPeriod, chDigit_0, chNull }; static const XMLCh option_projection[] = { 'p', 'r', 'o', 'j', 'e', 'c', 't', 'i', 'o', 'n', 0 }; static const XMLCh option_psvi[] = { 'p', 's', 'v', 'i', 0 }; static const XMLCh option_lint[] = { 'l', 'i', 'n', 't', 0 }; static const XMLCh var_name[] = { 'n', 'a', 'm', 'e', 0 }; static const XMLCh XMLChXS[] = { chLatin_x, chLatin_s, chNull }; static const XMLCh XMLChXSI[] = { chLatin_x, chLatin_s, chLatin_i, chNull }; static const XMLCh XMLChFN[] = { chLatin_f, chLatin_n, chNull }; static const XMLCh XMLChLOCAL[] = { chLatin_l, chLatin_o, chLatin_c, chLatin_a, chLatin_l, chNull }; static const XMLCh XMLChERR[] = { chLatin_e, chLatin_r, chLatin_r, chNull }; static inline VectorOfASTNodes packageArgs(ASTNode *arg1Impl, ASTNode *arg2Impl, XPath2MemoryManager* memMgr) { VectorOfASTNodes args=VectorOfASTNodes(2,(ASTNode*)NULL,XQillaAllocator(memMgr)); args[0]=arg1Impl; args[1]=arg2Impl; return args; } static inline TupleNode *getLastAncestor(TupleNode *node) { while(node->getParent()) node = const_cast(node->getParent()); return node; } static inline TupleNode *setLastAncestor(TupleNode *node, TupleNode *ancestor) { getLastAncestor(node)->setParent(ancestor); return node; } template TYPE *wrapForDebug(XQParserArgs *qp, TYPE* pObjToWrap, unsigned int line, unsigned int column) { if(pObjToWrap->getLine() == 0) pObjToWrap->setLocationInfo(QP->_lexer->getFile(), line, column); return pObjToWrap; } #define RESOLVE_QNAME(pos, qname) const XMLCh *uri, *name; resolveQName((pos), QP, (qname), uri, name) static void resolveQName(const yyltype &pos, XQParserArgs *qp, const XMLCh *qname, const XMLCh *&uri, const XMLCh *&name) { const XMLCh *prefix = XPath2NSUtils::getPrefix(qname, MEMMGR); name = XPath2NSUtils::getLocalName(qname); if(prefix == 0 || *prefix == 0) { uri = 0; } else { if(QP->_lexer->getNSResolver() == 0) { if(prefix == 0 || *prefix == 0) uri = CONTEXT->getDefaultElementAndTypeNS(); else uri = CONTEXT->getNSResolver()->lookupNamespaceURI(prefix); } else { uri = QP->_lexer->getNSResolver()->lookupNamespaceURI(prefix); } if(uri == 0 || *uri == 0) { ostringstream oss; oss << "No namespace binding for prefix '" << UTF8(prefix) << "' [err:XTSE0280]"; yyerror(pos, oss.str().c_str()); } } } #define XSLT_VARIABLE_VALUE(pos, select, seqConstruct, seqType) variableValueXSLT((pos), QP, (select), (seqConstruct), (seqType)) static ASTNode *variableValueXSLT(const yyltype &pos, XQParserArgs *qp, ASTNode *select, XQSequence *seqConstruct, SequenceType *seqType) { if(!seqConstruct->getChildren().empty()) { if(select != 0) return 0; // signifies an error if(seqType == 0) { return WRAP(pos, new (MEMMGR) XQDocumentConstructor(seqConstruct, MEMMGR)); } return WRAP(pos, new (MEMMGR) XQFunctionConversion(seqConstruct, seqType, MEMMGR)); } if(select != 0) { if(seqType == 0) return select; return WRAP(pos, new (MEMMGR) XQFunctionConversion(select, seqType, MEMMGR)); } if(seqType == 0) { return WRAP(pos, new (MEMMGR) XQLiteral( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, XMLUni::fgZeroLenString, AnyAtomicType::STRING, MEMMGR)); } return WRAP(pos, new (MEMMGR) XQFunctionConversion(WRAP(pos, new (MEMMGR) XQSequence(MEMMGR)), seqType, MEMMGR)); } namespace XQParser { /* Enabling traces. */ #ifndef YYDEBUG # define YYDEBUG 0 #endif /* Enabling verbose error messages. */ #ifdef YYERROR_VERBOSE # undef YYERROR_VERBOSE # define YYERROR_VERBOSE 1 #else # define YYERROR_VERBOSE 0 #endif /* Enabling the token table. */ #ifndef YYTOKEN_TABLE # define YYTOKEN_TABLE 0 #endif #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef int YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_TRIVIAL 1 #endif #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED typedef struct YYLTYPE { int first_line; int first_column; int last_line; int last_column; } YYLTYPE; # define yyltype YYLTYPE /* obsolescent; will be withdrawn */ # define YYLTYPE_IS_DECLARED 1 # define YYLTYPE_IS_TRIVIAL 1 #endif /* Copy the second part of user declarations. */ /* Line 216 of yacc.c. */ #line 1091 "../src/parser/XQParser.cpp" #ifdef short # undef short #endif #ifdef YYTYPE_UINT8 typedef YYTYPE_UINT8 yytype_uint8; #else typedef unsigned char yytype_uint8; #endif #ifdef YYTYPE_INT8 typedef YYTYPE_INT8 yytype_int8; #elif (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) typedef signed char yytype_int8; #else typedef short int yytype_int8; #endif #ifdef YYTYPE_UINT16 typedef YYTYPE_UINT16 yytype_uint16; #else typedef unsigned short int yytype_uint16; #endif #ifdef YYTYPE_INT16 typedef YYTYPE_INT16 yytype_int16; #else typedef short int yytype_int16; #endif #ifndef YYSIZE_T # ifdef __SIZE_TYPE__ # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else # define YYSIZE_T unsigned int # endif #endif #define YYSIZE_MAXIMUM ((YYSIZE_T) -1) #ifndef YY_ # if defined YYENABLE_NLS && YYENABLE_NLS # if ENABLE_NLS # include /* INFRINGES ON USER NAME SPACE */ # define YY_(msgid) dgettext ("bison-runtime", msgid) # endif # endif # ifndef YY_ # define YY_(msgid) msgid # endif #endif /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ # define YYUSE(e) ((void) (e)) #else # define YYUSE(e) /* empty */ #endif /* Identity function, used to suppress warnings about constant conditions. */ #ifndef lint # define YYID(n) (n) #else #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static int YYID (int i) #else static int YYID (i) int i; #endif { return i; } #endif #if ! defined yyoverflow || YYERROR_VERBOSE /* The parser invokes alloca or malloc; define the necessary symbols. */ # ifdef YYSTACK_USE_ALLOCA # if YYSTACK_USE_ALLOCA # ifdef __GNUC__ # define YYSTACK_ALLOC __builtin_alloca # elif defined __BUILTIN_VA_ARG_INCR # include /* INFRINGES ON USER NAME SPACE */ # elif defined _AIX # define YYSTACK_ALLOC __alloca # elif defined _MSC_VER # include /* INFRINGES ON USER NAME SPACE */ # define alloca _alloca # else # define YYSTACK_ALLOC alloca # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) # include /* INFRINGES ON USER NAME SPACE */ # ifndef _STDLIB_H # define _STDLIB_H 1 # endif # endif # endif # endif # endif # ifdef YYSTACK_ALLOC /* Pacify GCC's `empty if-body' warning. */ # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) # ifndef YYSTACK_ALLOC_MAXIMUM /* The OS might guarantee only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely invoke alloca (N) if N exceeds 4096. Use a slightly smaller number to allow for a few compiler-allocated temporary stack slots. */ # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ # endif # else # define YYSTACK_ALLOC YYMALLOC # define YYSTACK_FREE YYFREE # ifndef YYSTACK_ALLOC_MAXIMUM # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM # endif # if (defined __cplusplus && ! defined _STDLIB_H \ && ! ((defined YYMALLOC || defined malloc) \ && (defined YYFREE || defined free))) # include /* INFRINGES ON USER NAME SPACE */ # ifndef _STDLIB_H # define _STDLIB_H 1 # endif # endif # ifndef YYMALLOC # define YYMALLOC malloc # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ # endif # endif # ifndef YYFREE # define YYFREE free # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif # endif # endif #endif /* ! defined yyoverflow || YYERROR_VERBOSE */ #if (! defined yyoverflow \ && (! defined __cplusplus \ || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \ && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc { yytype_int16 yyss; YYSTYPE yyvs; YYLTYPE yyls; }; /* The size of the maximum gap between one aligned stack and the next. */ # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \ + 2 * YYSTACK_GAP_MAXIMUM) /* Copy COUNT objects from FROM to TO. The source and destination do not overlap. */ # ifndef YYCOPY # if defined __GNUC__ && 1 < __GNUC__ # define YYCOPY(To, From, Count) \ __builtin_memcpy (To, From, (Count) * sizeof (*(From))) # else # define YYCOPY(To, From, Count) \ do \ { \ YYSIZE_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ (To)[yyi] = (From)[yyi]; \ } \ while (YYID (0)) # endif # endif /* Relocate STACK from its old location to the new one. The local variables YYSIZE and YYSTACKSIZE give the old and new number of elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ # define YYSTACK_RELOCATE(Stack) \ do \ { \ YYSIZE_T yynewbytes; \ YYCOPY (&yyptr->Stack, Stack, yysize); \ Stack = &yyptr->Stack; \ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / sizeof (*yyptr); \ } \ while (YYID (0)) #endif /* YYFINAL -- State number of the termination state. */ #define YYFINAL 21 /* YYLAST -- Last index in YYTABLE. */ #define YYLAST 7369 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 324 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 347 /* YYNRULES -- Number of rules. */ #define YYNRULES 991 /* YYNRULES -- Number of states. */ #define YYNSTATES 1620 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 #define YYMAXUTOK 578 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ static const yytype_uint16 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323 }; #if YYDEBUG /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in YYRHS. */ static const yytype_uint16 yyprhs[] = { 0, 0, 3, 7, 11, 15, 18, 21, 24, 25, 26, 35, 36, 38, 42, 45, 52, 53, 56, 65, 67, 72, 74, 75, 78, 81, 82, 85, 88, 91, 94, 97, 100, 105, 107, 111, 114, 118, 122, 126, 127, 130, 133, 136, 138, 140, 142, 147, 149, 152, 156, 159, 160, 163, 167, 169, 172, 176, 180, 183, 186, 190, 192, 195, 199, 203, 206, 209, 213, 215, 218, 222, 226, 229, 231, 234, 238, 241, 245, 248, 251, 254, 257, 260, 263, 266, 269, 272, 275, 278, 282, 285, 287, 289, 291, 293, 295, 297, 300, 303, 305, 308, 311, 315, 319, 324, 325, 329, 332, 333, 336, 339, 340, 343, 346, 349, 351, 353, 355, 357, 359, 361, 363, 365, 367, 369, 371, 373, 375, 377, 379, 381, 383, 385, 389, 391, 395, 399, 403, 405, 407, 411, 413, 417, 421, 423, 425, 427, 428, 431, 435, 437, 440, 441, 444, 448, 450, 453, 457, 461, 464, 467, 471, 475, 479, 484, 486, 489, 493, 497, 498, 502, 507, 509, 513, 517, 521, 522, 526, 527, 531, 536, 538, 541, 545, 549, 553, 555, 559, 563, 565, 569, 573, 577, 579, 583, 585, 589, 593, 597, 601, 605, 607, 611, 615, 619, 621, 625, 629, 632, 634, 638, 641, 645, 647, 650, 653, 657, 659, 663, 667, 669, 671, 673, 675, 677, 679, 684, 691, 693, 695, 697, 699, 701, 704, 708, 712, 716, 720, 723, 725, 729, 733, 736, 737, 742, 745, 748, 750, 752, 756, 761, 765, 768, 771, 774, 777, 784, 785, 789, 793, 797, 801, 805, 809, 813, 817, 821, 823, 825, 827, 829, 831, 833, 835, 837, 839, 841, 843, 849, 853, 857, 863, 869, 874, 878, 882, 886, 892, 898, 904, 906, 908, 910, 912, 917, 921, 927, 932, 933, 936, 940, 944, 948, 956, 961, 968, 971, 973, 977, 981, 989, 991, 993, 996, 1000, 1002, 1004, 1005, 1008, 1011, 1014, 1016, 1018, 1020, 1022, 1023, 1026, 1030, 1032, 1036, 1040, 1042, 1046, 1048, 1050, 1052, 1054, 1056, 1058, 1060, 1062, 1064, 1066, 1068, 1070, 1072, 1076, 1078, 1081, 1084, 1086, 1088, 1090, 1092, 1094, 1097, 1101, 1103, 1111, 1112, 1116, 1117, 1121, 1124, 1128, 1130, 1136, 1142, 1145, 1149, 1153, 1158, 1162, 1164, 1168, 1174, 1176, 1177, 1179, 1181, 1182, 1185, 1188, 1193, 1198, 1202, 1204, 1210, 1217, 1220, 1222, 1228, 1232, 1236, 1240, 1244, 1245, 1249, 1258, 1262, 1264, 1268, 1270, 1274, 1278, 1279, 1284, 1288, 1292, 1296, 1300, 1304, 1308, 1312, 1316, 1320, 1324, 1328, 1332, 1334, 1339, 1345, 1347, 1351, 1353, 1357, 1361, 1363, 1367, 1371, 1375, 1379, 1381, 1385, 1389, 1391, 1395, 1399, 1401, 1406, 1408, 1413, 1415, 1420, 1422, 1427, 1429, 1432, 1435, 1437, 1439, 1441, 1443, 1448, 1454, 1460, 1464, 1469, 1471, 1474, 1479, 1481, 1484, 1486, 1489, 1492, 1494, 1496, 1500, 1504, 1506, 1508, 1510, 1512, 1514, 1516, 1521, 1523, 1528, 1531, 1533, 1536, 1539, 1542, 1545, 1548, 1551, 1554, 1557, 1560, 1562, 1565, 1567, 1570, 1573, 1576, 1579, 1582, 1584, 1586, 1588, 1590, 1592, 1594, 1596, 1598, 1600, 1605, 1607, 1609, 1611, 1613, 1615, 1617, 1619, 1621, 1623, 1625, 1627, 1629, 1631, 1633, 1635, 1638, 1640, 1644, 1647, 1649, 1654, 1659, 1663, 1668, 1672, 1674, 1676, 1678, 1680, 1682, 1684, 1686, 1688, 1694, 1705, 1707, 1709, 1710, 1718, 1726, 1727, 1729, 1733, 1737, 1741, 1745, 1746, 1749, 1752, 1753, 1756, 1759, 1760, 1763, 1766, 1767, 1770, 1773, 1774, 1777, 1780, 1783, 1786, 1790, 1791, 1793, 1797, 1799, 1802, 1804, 1806, 1808, 1810, 1812, 1814, 1816, 1821, 1825, 1827, 1831, 1834, 1838, 1842, 1844, 1848, 1852, 1857, 1862, 1866, 1868, 1872, 1875, 1879, 1882, 1883, 1885, 1886, 1889, 1892, 1896, 1897, 1899, 1901, 1903, 1905, 1909, 1911, 1913, 1915, 1917, 1919, 1921, 1923, 1925, 1927, 1929, 1931, 1933, 1935, 1937, 1941, 1945, 1950, 1955, 1959, 1963, 1967, 1971, 1976, 1981, 1985, 1990, 1997, 1999, 2001, 2006, 2008, 2012, 2017, 2024, 2032, 2034, 2036, 2041, 2043, 2045, 2047, 2049, 2051, 2055, 2056, 2059, 2060, 2063, 2067, 2069, 2073, 2075, 2080, 2082, 2085, 2087, 2089, 2092, 2095, 2099, 2101, 2104, 2109, 2113, 2118, 2119, 2121, 2124, 2126, 2129, 2131, 2132, 2136, 2139, 2143, 2147, 2152, 2154, 2158, 2162, 2165, 2168, 2171, 2174, 2177, 2179, 2181, 2183, 2185, 2187, 2190, 2194, 2196, 2198, 2200, 2202, 2204, 2206, 2208, 2210, 2213, 2216, 2218, 2220, 2223, 2226, 2228, 2231, 2234, 2237, 2243, 2249, 2252, 2253, 2257, 2260, 2265, 2270, 2277, 2282, 2286, 2291, 2292, 2295, 2298, 2302, 2304, 2308, 2311, 2314, 2317, 2319, 2322, 2326, 2330, 2334, 2338, 2342, 2349, 2356, 2361, 2366, 2371, 2374, 2377, 2380, 2383, 2386, 2394, 2400, 2406, 2413, 2417, 2419, 2424, 2426, 2428, 2430, 2432, 2434, 2436, 2442, 2450, 2459, 2470, 2477, 2486, 2487, 2490, 2493, 2497, 2498, 2501, 2503, 2507, 2509, 2511, 2513, 2517, 2525, 2529, 2537, 2543, 2553, 2555, 2557, 2559, 2561, 2565, 2571, 2573, 2575, 2579, 2584, 2588, 2593, 2595, 2597, 2602, 2608, 2615, 2617, 2621, 2625, 2627, 2629, 2631, 2633, 2635, 2637, 2639, 2641, 2643, 2645, 2647, 2649, 2651, 2653, 2655, 2657, 2659, 2661, 2663, 2665, 2667, 2669, 2671, 2673, 2675, 2677, 2679, 2681, 2683, 2685, 2687, 2689, 2691, 2693, 2695, 2697, 2699, 2701, 2703, 2705, 2707, 2709, 2711, 2713, 2715, 2717, 2719, 2721, 2723, 2725, 2727, 2729, 2731, 2733, 2735, 2737, 2739, 2741, 2743, 2745, 2747, 2749, 2751, 2753, 2755, 2757, 2759, 2761, 2763, 2765, 2767, 2769, 2771, 2773, 2775, 2777, 2779, 2781, 2783, 2785, 2787, 2789, 2791, 2793, 2795, 2797, 2799, 2801, 2803, 2805, 2807, 2809, 2811, 2813, 2815, 2817, 2819, 2821, 2823, 2825, 2827, 2829, 2831, 2833, 2835, 2837, 2839, 2841, 2843, 2845, 2847, 2849, 2851, 2853, 2855, 2857, 2859, 2861, 2863, 2865, 2867, 2869, 2871, 2873, 2875, 2877, 2879, 2881, 2883, 2885, 2887, 2889, 2891, 2893, 2895, 2897, 2899, 2901, 2903, 2905, 2907, 2909, 2911, 2913, 2915, 2917, 2919, 2921, 2923, 2925, 2927, 2929, 2931, 2933, 2935, 2937, 2939, 2941, 2943, 2945, 2947, 2949, 2951, 2953, 2955, 2957, 2959, 2961, 2963, 2965, 2967, 2969, 2971 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { 325, 0, -1, 3, 326, 460, -1, 4, 327, 419, -1, 6, 327, 328, -1, 5, 335, -1, 7, 331, -1, 8, 330, -1, -1, -1, 180, 453, 450, 670, 451, 456, 459, 329, -1, -1, 429, -1, 453, 451, 456, -1, 332, 333, -1, 190, 173, 647, 37, 598, 429, -1, -1, 333, 334, -1, 180, 453, 450, 670, 451, 456, 459, 429, -1, 336, -1, 249, 337, 338, 248, -1, 358, -1, -1, 337, 278, -1, 337, 287, -1, -1, 338, 339, -1, 338, 343, -1, 338, 348, -1, 338, 350, -1, 338, 352, -1, 338, 356, -1, 340, 345, 361, 248, -1, 250, -1, 340, 301, 409, -1, 340, 280, -1, 340, 304, 342, -1, 340, 279, 341, -1, 340, 302, 576, -1, -1, 341, 122, -1, 341, 318, -1, 341, 319, -1, 52, -1, 53, -1, 54, -1, 344, 345, 361, 248, -1, 258, -1, 344, 280, -1, 344, 302, 576, -1, 344, 292, -1, -1, 345, 346, -1, 347, 361, 248, -1, 257, -1, 347, 280, -1, 347, 303, 461, -1, 347, 302, 576, -1, 347, 291, -1, 347, 290, -1, 349, 361, 248, -1, 257, -1, 349, 280, -1, 349, 303, 461, -1, 349, 302, 576, -1, 349, 291, -1, 349, 290, -1, 351, 361, 248, -1, 263, -1, 351, 280, -1, 351, 303, 461, -1, 351, 302, 576, -1, 353, 248, -1, 276, -1, 353, 280, -1, 353, 310, 354, -1, 353, 295, -1, 353, 311, 355, -1, 353, 281, -1, 353, 282, -1, 353, 283, -1, 353, 296, -1, 353, 297, -1, 353, 298, -1, 353, 284, -1, 353, 285, -1, 353, 299, -1, 353, 286, -1, 353, 300, -1, 353, 312, 355, -1, 353, 278, -1, 321, -1, 322, -1, 323, -1, 63, -1, 122, -1, 122, -1, 355, 122, -1, 357, 248, -1, 277, -1, 277, 288, -1, 277, 289, -1, 277, 288, 289, -1, 277, 289, 288, -1, 313, 359, 361, 248, -1, -1, 359, 315, 360, -1, 359, 314, -1, -1, 360, 459, -1, 360, 115, -1, -1, 361, 366, -1, 361, 358, -1, 361, 362, -1, 363, -1, 365, -1, 367, -1, 371, -1, 376, -1, 380, -1, 378, -1, 389, -1, 391, -1, 393, -1, 395, -1, 397, -1, 399, -1, 401, -1, 385, -1, 403, -1, 405, -1, 407, -1, 364, 361, 248, -1, 251, -1, 364, 303, 461, -1, 364, 306, 360, -1, 252, 366, 248, -1, 316, -1, 317, -1, 368, 370, 248, -1, 253, -1, 368, 303, 461, -1, 368, 279, 369, -1, 122, -1, 318, -1, 320, -1, -1, 370, 374, -1, 372, 373, 248, -1, 254, -1, 372, 280, -1, -1, 373, 374, -1, 375, 361, 248, -1, 255, -1, 375, 280, -1, 375, 303, 461, -1, 375, 302, 576, -1, 375, 290, -1, 377, 248, -1, 256, 303, 461, -1, 379, 361, 248, -1, 262, 305, 461, -1, 259, 381, 384, 248, -1, 382, -1, 381, 382, -1, 383, 361, 248, -1, 260, 305, 461, -1, -1, 261, 361, 248, -1, 386, 387, 388, 248, -1, 270, -1, 386, 303, 461, -1, 386, 308, 360, -1, 386, 309, 360, -1, -1, 271, 361, 248, -1, -1, 272, 361, 248, -1, 390, 361, 248, 361, -1, 263, -1, 390, 280, -1, 390, 303, 461, -1, 390, 302, 576, -1, 392, 361, 248, -1, 264, -1, 392, 303, 461, -1, 394, 361, 248, -1, 265, -1, 394, 280, 360, -1, 394, 303, 461, -1, 396, 361, 248, -1, 266, -1, 398, 361, 248, -1, 267, -1, 398, 280, 360, -1, 398, 307, 360, -1, 398, 303, 461, -1, 398, 306, 360, -1, 400, 361, 248, -1, 268, -1, 400, 280, 360, -1, 400, 303, 461, -1, 402, 361, 248, -1, 269, -1, 402, 280, 360, -1, 402, 307, 360, -1, 404, 248, -1, 273, -1, 404, 303, 461, -1, 404, 293, -1, 406, 361, 248, -1, 274, -1, 406, 293, -1, 406, 294, -1, 408, 361, 248, -1, 275, -1, 408, 303, 461, -1, 409, 12, 410, -1, 410, -1, 415, -1, 36, -1, 412, -1, 36, -1, 30, -1, 232, 40, 413, 41, -1, 233, 40, 646, 33, 414, 41, -1, 646, -1, 534, -1, 532, -1, 534, -1, 416, -1, 411, 416, -1, 412, 36, 416, -1, 412, 30, 416, -1, 415, 36, 416, -1, 415, 30, 416, -1, 417, 418, -1, 527, -1, 71, 19, 527, -1, 55, 19, 527, -1, 20, 527, -1, -1, 418, 21, 461, 22, -1, 420, 423, -1, 420, 424, -1, 423, -1, 424, -1, 186, 421, 429, -1, 186, 421, 422, 429, -1, 186, 422, 429, -1, 187, 125, -1, 176, 125, -1, 426, 460, -1, 425, 426, -1, 190, 173, 647, 37, 598, 429, -1, -1, 426, 427, 429, -1, 426, 428, 429, -1, 426, 430, 429, -1, 426, 432, 429, -1, 426, 446, 429, -1, 426, 449, 429, -1, 426, 649, 429, -1, 426, 433, 429, -1, 426, 434, 429, -1, 431, -1, 440, -1, 441, -1, 448, -1, 435, -1, 436, -1, 633, -1, 437, -1, 442, -1, 445, -1, 50, -1, 180, 173, 647, 37, 598, -1, 180, 65, 171, -1, 180, 65, 172, -1, 180, 183, 191, 173, 598, -1, 180, 183, 450, 173, 598, -1, 180, 185, 669, 125, -1, 180, 66, 616, -1, 180, 182, 120, -1, 180, 182, 121, -1, 180, 183, 138, 142, 143, -1, 180, 183, 138, 142, 144, -1, 180, 184, 438, 33, 439, -1, 171, -1, 177, -1, 178, -1, 179, -1, 180, 183, 145, 598, -1, 180, 67, 598, -1, 188, 189, 444, 598, 443, -1, 188, 189, 598, 443, -1, -1, 114, 598, -1, 443, 33, 598, -1, 173, 647, 37, -1, 183, 191, 173, -1, 188, 190, 173, 647, 37, 598, 443, -1, 188, 190, 598, 443, -1, 180, 126, 9, 535, 575, 447, -1, 10, 462, -1, 175, -1, 180, 181, 171, -1, 180, 181, 172, -1, 180, 453, 450, 670, 451, 456, 452, -1, 192, -1, 193, -1, 40, 41, -1, 40, 457, 41, -1, 459, -1, 175, -1, -1, 453, 454, -1, 453, 455, -1, 453, 231, -1, 244, -1, 245, -1, 246, -1, 247, -1, -1, 152, 576, -1, 457, 33, 458, -1, 458, -1, 9, 535, 575, -1, 48, 461, 49, -1, 461, -1, 461, 33, 462, -1, 462, -1, 463, -1, 483, -1, 486, -1, 492, -1, 634, -1, 636, -1, 639, -1, 638, -1, 640, -1, 493, -1, 655, -1, 656, -1, 464, 131, 462, -1, 465, -1, 464, 477, -1, 464, 466, -1, 467, -1, 472, -1, 465, -1, 475, -1, 476, -1, 132, 468, -1, 468, 33, 469, -1, 469, -1, 9, 535, 575, 470, 471, 133, 462, -1, -1, 114, 9, 535, -1, -1, 194, 9, 535, -1, 134, 473, -1, 473, 33, 474, -1, 474, -1, 9, 535, 575, 10, 462, -1, 194, 9, 535, 10, 462, -1, 135, 462, -1, 136, 9, 535, -1, 138, 137, 478, -1, 139, 138, 137, 478, -1, 478, 33, 479, -1, 479, -1, 480, 481, 482, -1, 480, 481, 482, 145, 598, -1, 462, -1, -1, 140, -1, 141, -1, -1, 142, 143, -1, 142, 144, -1, 146, 484, 148, 462, -1, 147, 484, 148, 462, -1, 484, 33, 485, -1, 485, -1, 9, 535, 575, 133, 462, -1, 149, 40, 461, 41, 487, 488, -1, 487, 489, -1, 489, -1, 183, 9, 535, 131, 462, -1, 183, 131, 462, -1, 490, 131, 462, -1, 150, 491, 576, -1, 490, 12, 576, -1, -1, 9, 535, 152, -1, 153, 40, 461, 41, 154, 462, 155, 462, -1, 493, 156, 494, -1, 494, -1, 494, 157, 495, -1, 495, -1, 497, 37, 497, -1, 497, 13, 497, -1, -1, 497, 24, 496, 497, -1, 497, 14, 497, -1, 497, 15, 497, -1, 497, 16, 497, -1, 497, 108, 497, -1, 497, 109, 497, -1, 497, 110, 497, -1, 497, 111, 497, -1, 497, 112, 497, -1, 497, 113, 497, -1, 497, 170, 497, -1, 497, 17, 497, -1, 497, 18, 497, -1, 497, -1, 498, 195, 63, 599, -1, 498, 195, 63, 599, 632, -1, 498, -1, 499, 161, 499, -1, 499, -1, 499, 34, 500, -1, 499, 35, 500, -1, 500, -1, 500, 11, 501, -1, 500, 162, 501, -1, 500, 70, 501, -1, 500, 163, 501, -1, 501, -1, 501, 12, 502, -1, 501, 164, 502, -1, 502, -1, 502, 165, 503, -1, 502, 166, 503, -1, 503, -1, 504, 158, 159, 576, -1, 504, -1, 505, 169, 152, 576, -1, 505, -1, 506, 160, 152, 573, -1, 506, -1, 507, 168, 152, 573, -1, 507, -1, 35, 507, -1, 34, 507, -1, 508, -1, 509, -1, 514, -1, 510, -1, 167, 48, 461, 49, -1, 167, 68, 48, 461, 49, -1, 167, 69, 48, 461, 49, -1, 511, 48, 49, -1, 511, 48, 461, 49, -1, 512, -1, 511, 512, -1, 32, 548, 669, 513, -1, 130, -1, 105, 130, -1, 515, -1, 515, 516, -1, 30, 516, -1, 516, -1, 36, -1, 516, 36, 517, -1, 516, 30, 517, -1, 517, -1, 518, -1, 530, -1, 519, -1, 520, -1, 521, -1, 519, 21, 461, 22, -1, 524, -1, 520, 21, 461, 22, -1, 522, 527, -1, 523, -1, 71, 19, -1, 72, 19, -1, 55, 19, -1, 73, 19, -1, 74, 19, -1, 75, 19, -1, 76, 19, -1, 173, 19, -1, 20, 527, -1, 527, -1, 525, 527, -1, 526, -1, 77, 19, -1, 78, 19, -1, 79, 19, -1, 80, 19, -1, 81, 19, -1, 39, -1, 580, -1, 528, -1, 648, -1, 529, -1, 11, -1, 127, -1, 128, -1, 531, -1, 530, 21, 461, 22, -1, 663, -1, 532, -1, 534, -1, 536, -1, 537, -1, 540, -1, 543, -1, 538, -1, 539, -1, 660, -1, 533, -1, 646, -1, 643, -1, 644, -1, 645, -1, 9, 535, -1, 669, -1, 40, 461, 41, -1, 40, 41, -1, 38, -1, 120, 48, 461, 49, -1, 121, 48, 461, 49, -1, 670, 40, 41, -1, 670, 40, 541, 41, -1, 541, 33, 542, -1, 542, -1, 462, -1, 23, -1, 544, -1, 560, -1, 545, -1, 556, -1, 558, -1, 24, 546, 547, 548, 42, -1, 24, 546, 547, 548, 25, 555, 31, 546, 548, 26, -1, 122, -1, 123, -1, -1, 547, 105, 122, 548, 43, 548, 549, -1, 547, 105, 123, 548, 43, 548, 550, -1, -1, 105, -1, 44, 551, 45, -1, 46, 553, 47, -1, 44, 552, 45, -1, 46, 554, 47, -1, -1, 551, 459, -1, 551, 115, -1, -1, 552, 459, -1, 552, 115, -1, -1, 553, 459, -1, 553, 116, -1, -1, 554, 459, -1, 554, 116, -1, -1, 555, 544, -1, 555, 459, -1, 555, 118, -1, 555, 117, -1, 28, 557, 29, -1, -1, 107, -1, 27, 129, 559, -1, 106, -1, 105, 106, -1, 561, -1, 562, -1, 565, -1, 567, -1, 568, -1, 569, -1, 570, -1, 82, 48, 461, 49, -1, 191, 563, 564, -1, 124, -1, 48, 461, 49, -1, 48, 49, -1, 48, 461, 49, -1, 55, 566, 564, -1, 124, -1, 48, 461, 49, -1, 173, 571, 564, -1, 63, 48, 461, 49, -1, 56, 48, 461, 49, -1, 60, 571, 572, -1, 124, -1, 48, 461, 49, -1, 48, 49, -1, 48, 461, 49, -1, 579, 574, -1, -1, 23, -1, -1, 152, 576, -1, 578, 577, -1, 64, 40, 41, -1, -1, 11, -1, 34, -1, 23, -1, 579, -1, 174, 40, 41, -1, 580, -1, 664, -1, 668, -1, 648, -1, 582, -1, 591, -1, 587, -1, 593, -1, 589, -1, 586, -1, 584, -1, 583, -1, 585, -1, 581, -1, 59, 40, 41, -1, 57, 40, 41, -1, 57, 40, 591, 41, -1, 57, 40, 593, 41, -1, 63, 40, 41, -1, 56, 40, 41, -1, 58, 40, 41, -1, 60, 40, 41, -1, 60, 40, 647, 41, -1, 60, 40, 125, 41, -1, 55, 40, 41, -1, 55, 40, 588, 41, -1, 55, 40, 588, 33, 597, 41, -1, 595, -1, 11, -1, 61, 40, 590, 41, -1, 595, -1, 191, 40, 41, -1, 191, 40, 592, 41, -1, 191, 40, 592, 33, 597, 41, -1, 191, 40, 592, 33, 597, 23, 41, -1, 596, -1, 11, -1, 62, 40, 594, 41, -1, 596, -1, 648, -1, 648, -1, 648, -1, 125, -1, 602, 601, 600, -1, -1, 196, 498, -1, -1, 601, 613, -1, 602, 241, 603, -1, 603, -1, 603, 242, 604, -1, 604, -1, 604, 83, 133, 605, -1, 605, -1, 243, 606, -1, 606, -1, 607, -1, 607, 616, -1, 608, 611, -1, 40, 599, 41, -1, 609, -1, 532, 610, -1, 48, 461, 49, 610, -1, 511, 48, 49, -1, 511, 48, 599, 49, -1, -1, 208, -1, 208, 97, -1, 209, -1, 209, 213, -1, 210, -1, -1, 199, 612, 200, -1, 211, 499, -1, 119, 144, 499, -1, 119, 101, 499, -1, 212, 499, 161, 499, -1, 120, -1, 197, 499, 614, -1, 198, 612, 614, -1, 201, 615, -1, 202, 615, -1, 114, 99, -1, 114, 100, -1, 95, 96, -1, 213, -1, 214, -1, 215, -1, 216, -1, 217, -1, 84, 617, -1, 616, 84, 617, -1, 629, -1, 630, -1, 621, -1, 620, -1, 618, -1, 619, -1, 624, -1, 631, -1, 151, 87, -1, 151, 86, -1, 203, -1, 204, -1, 88, 87, -1, 88, 86, -1, 91, -1, 85, 91, -1, 92, 623, -1, 92, 183, -1, 92, 40, 623, 622, 41, -1, 92, 40, 183, 622, 41, -1, 85, 92, -1, -1, 622, 33, 623, -1, 114, 598, -1, 114, 598, 205, 646, -1, 114, 598, 612, 206, -1, 114, 598, 205, 646, 612, 206, -1, 93, 213, 626, 625, -1, 85, 93, 213, -1, 93, 213, 183, 625, -1, -1, 625, 628, -1, 114, 598, -1, 40, 627, 41, -1, 646, -1, 627, 33, 646, -1, 164, 626, -1, 166, 626, -1, 207, 646, -1, 94, -1, 85, 94, -1, 185, 669, 125, -1, 90, 96, 501, -1, 180, 224, 69, -1, 180, 224, 68, -1, 180, 224, 102, -1, 635, 462, 152, 220, 230, 462, -1, 635, 462, 152, 228, 230, 462, -1, 635, 462, 230, 462, -1, 635, 462, 223, 462, -1, 635, 462, 222, 462, -1, 221, 59, -1, 221, 226, -1, 637, 462, -1, 229, 59, -1, 229, 226, -1, 218, 104, 159, 59, 462, 225, 462, -1, 218, 59, 462, 225, 462, -1, 227, 59, 462, 152, 462, -1, 103, 641, 219, 462, 131, 462, -1, 641, 33, 642, -1, 642, -1, 9, 535, 10, 462, -1, 52, -1, 53, -1, 54, -1, 125, -1, 669, -1, 669, -1, 180, 234, 236, 669, 459, -1, 180, 234, 236, 669, 651, 650, 459, -1, 180, 234, 236, 669, 652, 235, 409, 459, -1, 180, 234, 236, 669, 652, 235, 409, 651, 650, 459, -1, 180, 234, 652, 235, 409, 459, -1, 180, 234, 652, 235, 409, 651, 650, 459, -1, -1, 152, 576, -1, 40, 41, -1, 40, 457, 41, -1, -1, 240, 653, -1, 654, -1, 653, 33, 654, -1, 122, -1, 318, -1, 319, -1, 237, 234, 669, -1, 237, 234, 669, 225, 40, 658, 41, -1, 238, 239, 462, -1, 238, 239, 462, 225, 40, 658, 41, -1, 238, 239, 462, 240, 657, -1, 238, 239, 462, 240, 657, 225, 40, 658, 41, -1, 669, -1, 318, -1, 320, -1, 659, -1, 658, 33, 659, -1, 9, 535, 575, 10, 462, -1, 661, -1, 662, -1, 670, 51, 52, -1, 193, 451, 575, 459, -1, 530, 40, 41, -1, 530, 40, 541, 41, -1, 665, -1, 666, -1, 193, 40, 11, 41, -1, 193, 40, 41, 152, 576, -1, 193, 40, 667, 41, 152, 576, -1, 576, -1, 667, 33, 576, -1, 40, 578, 41, -1, 670, -1, 55, -1, 56, -1, 57, -1, 191, -1, 174, -1, 153, -1, 59, -1, 60, -1, 61, -1, 62, -1, 63, -1, 149, -1, 64, -1, 193, -1, 58, -1, 122, -1, 65, -1, 66, -1, 67, -1, 68, -1, 69, -1, 70, -1, 71, -1, 72, -1, 73, -1, 74, -1, 75, -1, 76, -1, 77, -1, 78, -1, 79, -1, 80, -1, 81, -1, 82, -1, 83, -1, 86, -1, 87, -1, 88, -1, 89, -1, 91, -1, 92, -1, 93, -1, 94, -1, 95, -1, 96, -1, 97, -1, 98, -1, 99, -1, 100, -1, 101, -1, 102, -1, 103, -1, 104, -1, 108, -1, 109, -1, 110, -1, 111, -1, 112, -1, 113, -1, 114, -1, 126, -1, 131, -1, 132, -1, 133, -1, 134, -1, 135, -1, 137, -1, 138, -1, 139, -1, 140, -1, 141, -1, 142, -1, 143, -1, 144, -1, 145, -1, 146, -1, 147, -1, 148, -1, 150, -1, 152, -1, 154, -1, 155, -1, 156, -1, 157, -1, 158, -1, 159, -1, 160, -1, 161, -1, 162, -1, 163, -1, 164, -1, 165, -1, 166, -1, 167, -1, 168, -1, 169, -1, 170, -1, 171, -1, 172, -1, 173, -1, 175, -1, 176, -1, 177, -1, 178, -1, 179, -1, 180, -1, 181, -1, 182, -1, 183, -1, 184, -1, 185, -1, 187, -1, 188, -1, 189, -1, 192, -1, 194, -1, 84, -1, 85, -1, 195, -1, 196, -1, 197, -1, 198, -1, 199, -1, 200, -1, 201, -1, 202, -1, 203, -1, 204, -1, 205, -1, 206, -1, 207, -1, 208, -1, 209, -1, 210, -1, 211, -1, 212, -1, 213, -1, 214, -1, 215, -1, 216, -1, 217, -1, 218, -1, 219, -1, 220, -1, 221, -1, 222, -1, 223, -1, 224, -1, 225, -1, 226, -1, 227, -1, 228, -1, 229, -1, 230, -1, 231, -1, 120, -1, 121, -1, 232, -1, 233, -1, 234, -1, 235, -1, 236, -1, 237, -1, 238, -1, 239, -1, 240, -1, 241, -1, 242, -1, 243, -1, 244, -1, 245, -1, 246, -1, 247, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { 0, 765, 765, 766, 767, 768, 769, 770, 775, 782, 793, 801, 801, 804, 813, 824, 862, 865, 871, 907, 938, 941, 963, 965, 969, 976, 978, 979, 980, 981, 982, 983, 987, 1006, 1011, 1016, 1023, 1028, 1033, 1042, 1045, 1051, 1056, 1063, 1063, 1063, 1066, 1079, 1084, 1091, 1096, 1105, 1108, 1116, 1143, 1147, 1154, 1160, 1165, 1170, 1179, 1203, 1207, 1214, 1219, 1224, 1229, 1240, 1258, 1262, 1269, 1274, 1282, 1307, 1310, 1313, 1316, 1319, 1322, 1325, 1328, 1331, 1334, 1337, 1340, 1343, 1346, 1349, 1352, 1355, 1358, 1364, 1365, 1366, 1367, 1368, 1380, 1383, 1388, 1391, 1396, 1401, 1409, 1417, 1428, 1439, 1442, 1449, 1459, 1462, 1467, 1478, 1481, 1486, 1491, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1520, 1538, 1542, 1547, 1556, 1562, 1562, 1565, 1585, 1589, 1594, 1602, 1607, 1611, 1619, 1622, 1630, 1643, 1647, 1658, 1661, 1669, 1687, 1691, 1698, 1703, 1708, 1716, 1722, 1730, 1738, 1745, 1759, 1763, 1777, 1786, 1794, 1797, 1804, 1839, 1843, 1848, 1854, 1864, 1867, 1875, 1878, 1885, 1903, 1907, 1914, 1919, 1927, 1945, 1949, 1957, 1979, 1983, 1990, 1998, 2007, 2015, 2052, 2056, 2063, 2070, 2079, 2088, 2115, 2119, 2126, 2138, 2164, 2168, 2175, 2185, 2197, 2201, 2206, 2215, 2228, 2232, 2237, 2246, 2260, 2264, 2277, 2282, 2294, 2298, 2306, 2319, 2327, 2340, 2347, 2361, 2361, 2364, 2364, 2386, 2390, 2394, 2412, 2430, 2440, 2454, 2462, 2468, 2474, 2480, 2492, 2495, 2509, 2510, 2511, 2512, 2518, 2519, 2520, 2524, 2544, 2561, 2564, 2568, 2580, 2582, 2586, 2590, 2594, 2598, 2602, 2608, 2614, 2618, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2643, 2643, 2646, 2650, 2658, 2663, 2672, 2677, 2686, 2746, 2754, 2759, 2768, 2773, 2782, 2792, 2796, 2804, 2808, 2816, 2832, 2841, 2853, 2862, 2865, 2870, 2879, 2883, 2891, 2901, 2913, 2920, 2924, 2932, 2937, 2946, 2954, 2954, 2957, 2961, 2969, 2970, 2979, 2982, 2995, 3008, 3018, 3018, 3021, 3021, 3025, 3028, 3036, 3041, 3051, 3059, 3067, 3080, 3095, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, 3118, 3162, 3163, 3176, 3183, 3183, 3186, 3186, 3186, 3191, 3198, 3202, 3206, 3218, 3221, 3232, 3235, 3245, 3252, 3256, 3260, 3264, 3277, 3285, 3293, 3298, 3306, 3310, 3316, 3323, 3338, 3355, 3358, 3362, 3370, 3378, 3382, 3391, 3399, 3410, 3414, 3418, 3429, 3436, 3445, 3449, 3453, 3461, 3479, 3484, 3494, 3497, 3505, 3513, 3522, 3527, 3536, 3546, 3550, 3554, 3554, 3558, 3562, 3566, 3570, 3574, 3578, 3582, 3586, 3590, 3594, 3598, 3602, 3606, 3611, 3615, 3619, 3624, 3631, 3636, 3640, 3644, 3649, 3653, 3657, 3661, 3665, 3670, 3674, 3678, 3683, 3687, 3691, 3696, 3713, 3718, 3723, 3728, 3732, 3737, 3741, 3746, 3752, 3758, 3763, 3764, 3765, 3773, 3777, 3781, 3789, 3796, 3805, 3805, 3809, 3829, 3830, 3838, 3839, 3845, 3866, 3870, 3884, 3890, 3903, 3907, 3907, 3911, 3912, 3921, 3922, 3928, 3929, 3938, 3950, 3961, 3965, 3969, 3973, 3977, 3981, 3985, 3989, 3997, 4005, 4022, 4030, 4039, 4043, 4047, 4051, 4055, 4063, 4075, 4080, 4085, 4092, 4097, 4104, 4111, 4123, 4124, 4128, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 4146, 4146, 4149, 4149, 4149, 4153, 4160, 4164, 4168, 4176, 4184, 4194, 4204, 4208, 4231, 4236, 4246, 4247, 4256, 4260, 4269, 4269, 4269, 4273, 4279, 4288, 4288, 4293, 4296, 4305, 4316, 4316, 4321, 4325, 4332, 4336, 4347, 4350, 4355, 4366, 4369, 4373, 4387, 4390, 4395, 4406, 4409, 4413, 4431, 4434, 4439, 4444, 4451, 4464, 4478, 4481, 4486, 4505, 4506, 4520, 4521, 4522, 4523, 4524, 4525, 4526, 4531, 4539, 4547, 4551, 4559, 4563, 4572, 4579, 4583, 4593, 4601, 4609, 4617, 4624, 4634, 4641, 4645, 4653, 4664, 4667, 4676, 4679, 4689, 4696, 4706, 4707, 4709, 4711, 4717, 4721, 4725, 4726, 4727, 4731, 4743, 4744, 4745, 4746, 4747, 4748, 4749, 4750, 4751, 4752, 4757, 4765, 4769, 4774, 4783, 4791, 4799, 4808, 4812, 4816, 4824, 4828, 4832, 4840, 4841, 4849, 4857, 4862, 4866, 4870, 4874, 4883, 4884, 4892, 4899, 4902, 4905, 4908, 4912, 4924, 4940, 4942, 4949, 4952, 4961, 4973, 4978, 4990, 4995, 4999, 5004, 5009, 5014, 5015, 5024, 5029, 5033, 5039, 5043, 5051, 5056, 5066, 5069, 5073, 5077, 5081, 5085, 5093, 5095, 5106, 5112, 5118, 5124, 5139, 5143, 5147, 5151, 5155, 5159, 5163, 5167, 5175, 5179, 5183, 5191, 5195, 5203, 5204, 5216, 5217, 5218, 5219, 5220, 5221, 5222, 5223, 5231, 5235, 5239, 5243, 5252, 5256, 5264, 5268, 5278, 5282, 5286, 5290, 5294, 5302, 5304, 5311, 5315, 5319, 5323, 5333, 5337, 5341, 5349, 5351, 5359, 5363, 5370, 5374, 5382, 5386, 5394, 5402, 5406, 5414, 5421, 5429, 5434, 5439, 5451, 5455, 5459, 5463, 5467, 5473, 5473, 5478, 5484, 5484, 5489, 5493, 5503, 5511, 5518, 5523, 5531, 5540, 5552, 5564, 5577, 5588, 5597, 5609, 5614, 5619, 5625, 5631, 5637, 5647, 5650, 5658, 5662, 5670, 5674, 5682, 5687, 5696, 5700, 5704, 5712, 5716, 5724, 5728, 5732, 5736, 5744, 5748, 5752, 5760, 5765, 5775, 5788, 5788, 5792, 5800, 5811, 5816, 5840, 5840, 5844, 5852, 5856, 5863, 5868, 5877, 5886, 5886, 5886, 5886, 5886, 5886, 5886, 5886, 5887, 5887, 5887, 5887, 5887, 5887, 5888, 5888, 5892, 5892, 5892, 5892, 5892, 5892, 5892, 5892, 5892, 5892, 5893, 5893, 5893, 5893, 5893, 5893, 5893, 5894, 5894, 5894, 5894, 5894, 5894, 5894, 5894, 5895, 5895, 5895, 5895, 5895, 5895, 5895, 5895, 5895, 5895, 5895, 5896, 5896, 5896, 5896, 5896, 5896, 5896, 5896, 5896, 5896, 5896, 5896, 5897, 5897, 5897, 5897, 5897, 5897, 5897, 5897, 5897, 5897, 5898, 5898, 5898, 5898, 5898, 5898, 5898, 5898, 5898, 5898, 5898, 5898, 5899, 5899, 5899, 5899, 5899, 5899, 5899, 5899, 5899, 5899, 5899, 5899, 5900, 5900, 5900, 5900, 5900, 5900, 5900, 5900, 5900, 5901, 5901, 5901, 5901, 5901, 5901, 5901, 5901, 5902, 5902, 5902, 5902, 5902, 5902, 5902, 5902, 5902, 5902, 5902, 5903, 5903, 5903, 5903, 5903, 5903, 5903, 5903, 5903, 5904, 5904, 5904, 5904, 5904, 5904, 5904, 5904, 5904, 5904, 5905, 5905, 5905, 5905, 5905, 5905, 5905, 5905, 5905, 5905, 5905, 5906, 5906, 5906, 5906, 5906, 5906, 5906, 5906, 5906, 5906, 5906, 5907, 5907, 5907, 5907, 5907, 5907, 5907 }; #endif #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { "\"\"", "error", "$undefined", "\"\"", "\"\"", "\"\"", "\"\"", "\"\"", "\"\"", "\"$\"", "\":=\"", "\"*\"", "\"|\"", "\"!=\"", "\"<=\"", "\"> (comparison operator)\"", "\">=\"", "\"<<\"", "\">>\"", "\"::\"", "\"@\"", "\"[\"", "\"]\"", "\"?\"", "\"<\"", "\"> (start tag close)\"", "\"> (end tag close)\"", "\"\"", "\"//\"", "\"\"", "\"=\"", "\"\\\" (open)\"", "\"\\\" (close)\"", "\"' (open)\"", "\"' (close)\"", "\"{\"", "\"}\"", "\";\"", "\"#\"", "\"\"", "\"\"", "\"\"", "\"attribute\"", "\"comment\"", "\"document-node\"", "\"namespace-node\"", "\"node\"", "\"processing-instruction\"", "\"schema-attribute\"", "\"schema-element\"", "\"text\"", "\"empty-sequence\"", "\"boundary-space\"", "\"ft-option\"", "\"base-uri\"", "\"lax\"", "\"strict\"", "\"idiv\"", "\"child\"", "\"descendant\"", "\"self\"", "\"descendant-or-self\"", "\"following-sibling\"", "\"following\"", "\"parent\"", "\"ancestor\"", "\"preceding-sibling\"", "\"preceding\"", "\"ancestor-of-self\"", "\"document\"", "\"not\"", "\"using\"", "\"no\"", "\"sensitive\"", "\"insensitive\"", "\"diacritics\"", "\"without\"", "\"without (followed by content)\"", "\"stemming\"", "\"thesaurus\"", "\"stop\"", "\"wildcards\"", "\"entire\"", "\"content\"", "\"word\"", "\"type\"", "\"start\"", "\"end\"", "\"most\"", "\"skip\"", "\"copy\"", "\"value\"", "\"\"", "\"\"", "\"\"", "\"eq\"", "\"ne\"", "\"lt\"", "\"le\"", "\"gt\"", "\"ge\"", "\"at\"", "\"\"", "\"\"", "\"\"", "\"\"", "\"at (followed by least or most)\"", "\"ordered\"", "\"unordered\"", "\"\"", "\"\"", "\"\"", "\"'...'\"", "\"variable\"", "\":*\"", "\"*:\"", "\"\"", "\"\"", "\"return\"", "\"for\"", "\"in\"", "\"let\"", "\"where\"", "\"count\"", "\"by\"", "\"order\"", "\"stable\"", "\"ascending\"", "\"descending\"", "\"empty\"", "\"greatest\"", "\"least\"", "\"collation\"", "\"some\"", "\"every\"", "\"satisfies\"", "\"typeswitch\"", "\"case\"", "\"case (followed by (in)sensitive)\"", "\"as\"", "\"if\"", "\"then\"", "\"else\"", "\"or\"", "\"and\"", "\"instance\"", "\"of\"", "\"castable\"", "\"to\"", "\"div\"", "\"mod\"", "\"union\"", "\"intersect\"", "\"except\"", "\"validate\"", "\"cast\"", "\"treat\"", "\"is\"", "\"preserve\"", "\"strip\"", "\"namespace\"", "\"item\"", "\"external\"", "\"encoding\"", "\"no-preserve\"", "\"inherit\"", "\"no-inherit\"", "\"declare\"", "\"construction\"", "\"ordering\"", "\"default\"", "\"copy-namespaces\"", "\"option\"", "\"xquery\"", "\"version\"", "\"import\"", "\"schema\"", "\"module\"", "\"element\"", "\"function\"", "\"function (ext)\"", "\"score\"", "\"contains\"", "\"weight\"", "\"window\"", "\"distance\"", "\"occurs\"", "\"times\"", "\"same\"", "\"different\"", "\"lowercase\"", "\"uppercase\"", "\"relationship\"", "\"levels\"", "\"language\"", "\"any\"", "\"all\"", "\"phrase\"", "\"exactly\"", "\"from\"", "\"words\"", "\"sentences\"", "\"paragraphs\"", "\"sentence\"", "\"paragraph\"", "\"replace\"", "\"modify\"", "\"first\"", "\"insert\"", "\"before\"", "\"after\"", "\"revalidation\"", "\"with\"", "\"nodes\"", "\"rename\"", "\"last\"", "\"delete\"", "\"into\"", "\"updating\"", "\"id\"", "\"key\"", "\"template\"", "\"matches\"", "\"name\"", "\"call\"", "\"apply\"", "\"templates\"", "\"mode\"", "\"ftor\"", "\"ftand\"", "\"ftnot\"", "\"private\"", "\"public\"", "\"deterministic\"", "\"nondeterministic\"", "\"\"", "\"\"", "\"\"", "\"\"", "\"\"", "\"\"", "\"#default\"", "\"#all\"", "\"#current\"", "\"xml\"", "\"html\"", "\"xhtml\"", "$accept", "SelectLanguage", "XPathBuiltinNamespaces", "XQueryBuiltinNamespaces", "Start_FunctionDecl", "FunctionDecl_MaybeSemicolon", "Start_FunctionSignature", "Start_DelayedModule", "DM_ModuleDecl", "DM_Prolog", "DM_FunctionDecl", "Start_XSLT", "Stylesheet_XSLT", "StylesheetAttrs_XSLT", "StylesheetContent_XSLT", "Template_XSLT", "TemplateAttrs_XSLT", "TemplateModes_XSLT", "Number_XSLT", "Function_XSLT", "FunctionAttrs_XSLT", "ParamList_XSLT", "Param_XSLT", "ParamAttrs_XSLT", "GlobalParam_XSLT", "GlobalParamAttrs_XSLT", "GlobalVariable_XSLT", "GlobalVariableAttrs_XSLT", "Output_XSLT", "OutputAttrs_XSLT", "OutputMethod_XSLT", "QNames_XSLT", "ImportSchema_XSLT", "ImportSchemaAttrs_XSLT", "LiteralResultElement_XSLT", "LiteralResultElementAttrs_XSLT", "AttrValueTemplate_XSLT", "SequenceConstructor_XSLT", "Instruction_XSLT", "ValueOf_XSLT", "ValueOfAttrs_XSLT", "Text_XSLT", "TextNode_XSLT", "ApplyTemplates_XSLT", "ApplyTemplatesAttrs_XSLT", "ApplyTemplatesMode_XSLT", "ApplyTemplatesContent_XSLT", "CallTemplate_XSLT", "CallTemplateAttrs_XSLT", "CallTemplateContent_XSLT", "WithParam_XSLT", "WithParamAttrs_XSLT", "Sequence_XSLT", "SequenceAttrs_XSLT", "If_XSLT", "IfAttrs_XSLT", "Choose_XSLT", "WhenList_XSLT", "When_XSLT", "WhenAttrs_XSLT", "Otherwise_XSLT", "AnalyzeString_XSLT", "AnalyzeStringAttrs_XSLT", "MatchingSubstring_XSLT", "NonMatchingSubstring_XSLT", "Variable_XSLT", "VariableAttrs_XSLT", "Comment_XSLT", "CommentAttrs_XSLT", "PI_XSLT", "PIAttrs_XSLT", "Document_XSLT", "DocumentAttrs_XSLT", "Attribute_XSLT", "AttributeAttrs_XSLT", "Namespace_XSLT", "NamespaceAttrs_XSLT", "Element_XSLT", "ElementAttrs_XSLT", "CopyOf_XSLT", "CopyOfAttrs_XSLT", "Copy_XSLT", "CopyAttrs_XSLT", "ForEach_XSLT", "ForEachAttrs_XSLT", "Pattern_XSLT", "PathPattern_XSLT", "PathPatternStart_XSLT", "IdKeyPattern_XSLT", "IdValue_XSLT", "KeyValue_XSLT", "RelativePathPattern_XSLT", "PatternStep_XSLT", "PatternAxis_XSLT", "PatternStepPredicateList_XSLT", "Module", "VersionDecl", "Version", "Encoding", "MainModule", "LibraryModule", "ModuleDecl", "Prolog", "Setter", "Import", "Separator", "NamespaceDecl", "BoundarySpaceDecl", "DefaultNamespaceDecl", "OptionDecl", "FTOptionDecl", "OrderingModeDecl", "EmptyOrderDecl", "CopyNamespacesDecl", "PreserveMode", "InheritMode", "DefaultCollationDecl", "BaseURIDecl", "SchemaImport", "ResourceLocations", "SchemaPrefix", "ModuleImport", "VarDecl", "VarDeclValue", "ConstructionDecl", "FunctionDecl", "FunctionKeyword", "FunctionParamList", "FunctionBody", "FunctionOptions", "PrivateOption", "DeterministicOption", "FunctionDeclReturnType", "ParamList", "Param", "EnclosedExpr", "QueryBody", "Expr", "ExprSingle", "FLWORExpr", "FLWORTuples", "InitialClause", "IntermediateClause", "ForClause", "ForBindingList", "ForBinding", "PositionalVar", "FTScoreVar", "LetClause", "LetBindingList", "LetBinding", "WhereClause", "CountClause", "OrderByClause", "OrderSpecList", "OrderSpec", "OrderExpr", "OrderDirection", "EmptyHandling", "QuantifiedExpr", "QuantifyBindingList", "QuantifyBinding", "TypeswitchExpr", "CaseClauseList", "DefaultCase", "CaseClause", "CaseSequenceTypeUnion", "CaseClauseVariable", "IfExpr", "OrExpr", "AndExpr", "ComparisonExpr", "@1", "FTContainsExpr", "RangeExpr", "AdditiveExpr", "MultiplicativeExpr", "UnionExpr", "IntersectExceptExpr", "InstanceofExpr", "TreatExpr", "CastableExpr", "CastExpr", "UnaryExpr", "ValueExpr", "ValidateExpr", "ExtensionExpr", "PragmaList", "Pragma", "PragmaContents", "PathExpr", "LeadingSlash", "RelativePathExpr", "StepExpr", "AxisStep", "ForwardStepPredicateList", "ReverseStepPredicateList", "ForwardStep", "ForwardAxis", "AbbrevForwardStep", "ReverseStep", "ReverseAxis", "AbbrevReverseStep", "NodeTest", "NameTest", "Wildcard", "PostfixExpr", "PrimaryExpr", "Literal", "NumericLiteral", "VarRef", "VarName", "ParenthesizedExpr", "ContextItemExpr", "OrderedExpr", "UnorderedExpr", "FunctionCall", "FunctionCallArgumentList", "Argument", "Constructor", "DirectConstructor", "DirElemConstructor", "DirElemConstructorQName", "DirAttributeList", "OptionalWhitespace", "DirAttributeValue", "LiteralDirAttributeValue", "QuotAttrValueContent", "LiteralQuotAttrValueContent", "AposAttrValueContent", "LiteralAposAttrValueContent", "DirElementContent", "DirCommentConstructor", "DirCommentContents", "DirPIConstructor", "DirPIContents", "ComputedConstructor", "CompDocConstructor", "CompElemConstructor", "CompElementName", "ContentExpr", "CompAttrConstructor", "CompAttrName", "CompNamespaceConstructor", "CompTextConstructor", "CompCommentConstructor", "CompPIConstructor", "CompPINCName", "CompPIConstructorContent", "SingleType", "SingleTypeOccurrence", "TypeDeclaration", "SequenceType", "OccurrenceIndicator", "ItemType", "AtomicType", "KindTest", "AnyKindTest", "DocumentTest", "TextTest", "CommentTest", "NamespaceNodeTest", "PITest", "AttributeTest", "AttribNameOrWildcard", "SchemaAttributeTest", "AttributeDeclaration", "ElementTest", "ElementNameOrWildcard", "SchemaElementTest", "ElementDeclaration", "AttributeName", "ElementName", "TypeName", "URILiteral", "FTSelection", "FTSelectionWeight", "FTPosFilters", "FTOr", "FTAnd", "FTMildnot", "FTUnaryNot", "FTPrimaryWithOptions", "FTPrimary", "FTWords", "FTExtensionSelection", "FTAnyallOption", "FTTimes", "FTRange", "FTPosFilter", "FTUnit", "FTBigUnit", "FTMatchOptions", "FTMatchOption", "FTCaseOption", "FTDiacriticsOption", "FTStemOption", "FTThesaurusOption", "FTThesaurusIDList", "FTThesaurusID", "FTStopWordOption", "FTStopWordsInclExclList", "FTStopWords", "FTStopWordsStringList", "FTStopWordsInclExcl", "FTLanguageOption", "FTWildCardOption", "FTExtensionOption", "FTIgnoreOption", "RevalidationDecl", "InsertExpr", "InsertExprBegin", "DeleteExpr", "DeleteExprBegin", "ReplaceExpr", "RenameExpr", "TransformExpr", "TransformBindingList", "TransformBinding", "IntegerLiteral", "DecimalLiteral", "DoubleLiteral", "StringLiteral", "NCName", "QName", "TemplateDecl", "TemplateSequenceType", "TemplateParamList", "TemplateDeclModesSection", "TemplateDeclModes", "TemplateDeclMode", "CallTemplateExpr", "ApplyTemplatesExpr", "ApplyTemplatesMode", "TemplateArgumentList", "TemplateArgument", "FunctionItemExpr", "LiteralFunctionItem", "InlineFunction", "DynamicFunctionInvocation", "FunctionTest", "AnyFunctionTest", "TypedFunctionTest", "FunctionTypeArguments", "ParenthesizedItemType", "QNameValue", "FunctionName", 0 }; #endif # ifdef YYPRINT /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to token YYLEX-NUM. */ static const yytype_uint16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint16 yyr1[] = { 0, 324, 325, 325, 325, 325, 325, 325, 326, 327, 328, 329, 329, 330, 331, 332, 333, 333, 334, 335, 336, 336, 337, 337, 337, 338, 338, 338, 338, 338, 338, 338, 339, 340, 340, 340, 340, 340, 340, 341, 341, 341, 341, 342, 342, 342, 343, 344, 344, 344, 344, 345, 345, 346, 347, 347, 347, 347, 347, 347, 348, 349, 349, 349, 349, 349, 349, 350, 351, 351, 351, 351, 352, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 354, 354, 354, 354, 354, 355, 355, 356, 357, 357, 357, 357, 357, 358, 359, 359, 359, 360, 360, 360, 361, 361, 361, 361, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 363, 364, 364, 364, 365, 366, 366, 367, 368, 368, 368, 369, 369, 369, 370, 370, 371, 372, 372, 373, 373, 374, 375, 375, 375, 375, 375, 376, 377, 378, 379, 380, 381, 381, 382, 383, 384, 384, 385, 386, 386, 386, 386, 387, 387, 388, 388, 389, 390, 390, 390, 390, 391, 392, 392, 393, 394, 394, 394, 395, 396, 397, 398, 398, 398, 398, 398, 399, 400, 400, 400, 401, 402, 402, 402, 403, 404, 404, 404, 405, 406, 406, 406, 407, 408, 408, 409, 409, 410, 410, 410, 411, 411, 412, 412, 413, 413, 414, 414, 415, 415, 415, 415, 415, 415, 416, 417, 417, 417, 417, 418, 418, 419, 419, 419, 419, 420, 420, 420, 421, 422, 423, 424, 425, 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, 427, 427, 427, 427, 427, 427, 427, 427, 428, 428, 429, 430, 431, 431, 432, 432, 433, 434, 435, 435, 436, 436, 437, 438, 438, 439, 439, 440, 441, 442, 442, 443, 443, 443, 444, 444, 445, 445, 446, 447, 447, 448, 448, 449, 450, 450, 451, 451, 452, 452, 453, 453, 453, 453, 454, 454, 455, 455, 456, 456, 457, 457, 458, 459, 460, 461, 461, 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, 463, 464, 464, 464, 465, 465, 466, 466, 466, 467, 468, 468, 469, 470, 470, 471, 471, 472, 473, 473, 474, 474, 475, 476, 477, 477, 478, 478, 479, 479, 480, 481, 481, 481, 482, 482, 482, 483, 483, 484, 484, 485, 486, 487, 487, 488, 488, 489, 490, 490, 491, 491, 492, 493, 493, 494, 494, 495, 495, 496, 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, 497, 497, 497, 498, 498, 499, 499, 499, 500, 500, 500, 500, 500, 501, 501, 501, 502, 502, 502, 503, 503, 504, 504, 505, 505, 506, 506, 507, 507, 507, 508, 508, 508, 509, 509, 509, 510, 510, 511, 511, 512, 513, 513, 514, 514, 514, 514, 515, 516, 516, 516, 517, 517, 518, 518, 519, 519, 520, 520, 521, 521, 522, 522, 522, 522, 522, 522, 522, 522, 523, 523, 524, 524, 525, 525, 525, 525, 525, 526, 527, 527, 528, 528, 529, 529, 529, 530, 530, 530, 531, 531, 531, 531, 531, 531, 531, 531, 531, 532, 532, 533, 533, 533, 534, 535, 536, 536, 537, 538, 539, 540, 540, 541, 541, 542, 542, 543, 543, 544, 544, 544, 545, 545, 546, 546, 547, 547, 547, 548, 548, 549, 549, 550, 550, 551, 551, 551, 552, 552, 552, 553, 553, 553, 554, 554, 554, 555, 555, 555, 555, 555, 556, 557, 557, 558, 559, 559, 560, 560, 560, 560, 560, 560, 560, 561, 562, 563, 563, 564, 564, 565, 566, 566, 567, 568, 569, 570, 571, 571, 572, 572, 573, 574, 574, 575, 575, 576, 576, 577, 577, 577, 577, 578, 578, 578, 578, 578, 579, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 581, 582, 582, 582, 583, 584, 585, 586, 586, 586, 587, 587, 587, 588, 588, 589, 590, 591, 591, 591, 591, 592, 592, 593, 594, 595, 596, 597, 598, 599, 600, 600, 601, 601, 602, 602, 603, 603, 604, 604, 605, 605, 606, 606, 607, 607, 607, 608, 608, 609, 609, 610, 610, 610, 610, 610, 610, 611, 611, 612, 612, 612, 612, 613, 613, 613, 613, 613, 613, 613, 613, 614, 614, 614, 615, 615, 616, 616, 617, 617, 617, 617, 617, 617, 617, 617, 618, 618, 618, 618, 619, 619, 620, 620, 621, 621, 621, 621, 621, 622, 622, 623, 623, 623, 623, 624, 624, 624, 625, 625, 626, 626, 627, 627, 628, 628, 629, 630, 630, 631, 632, 633, 633, 633, 634, 634, 634, 634, 634, 635, 635, 636, 637, 637, 638, 638, 639, 640, 641, 641, 642, 643, 644, 645, 646, 647, 648, 649, 649, 649, 649, 649, 649, 650, 650, 651, 651, 652, 652, 653, 653, 654, 654, 654, 655, 655, 656, 656, 656, 656, 657, 657, 657, 658, 658, 659, 660, 660, 661, 662, 663, 663, 664, 664, 665, 666, 666, 667, 667, 668, 669, 669, 669, 669, 669, 669, 669, 669, 669, 669, 669, 669, 669, 669, 669, 669, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670, 670 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ static const yytype_uint8 yyr2[] = { 0, 2, 3, 3, 3, 2, 2, 2, 0, 0, 8, 0, 1, 3, 2, 6, 0, 2, 8, 1, 4, 1, 0, 2, 2, 0, 2, 2, 2, 2, 2, 2, 4, 1, 3, 2, 3, 3, 3, 0, 2, 2, 2, 1, 1, 1, 4, 1, 2, 3, 2, 0, 2, 3, 1, 2, 3, 3, 2, 2, 3, 1, 2, 3, 3, 2, 2, 3, 1, 2, 3, 3, 2, 1, 2, 3, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 2, 3, 3, 4, 0, 3, 2, 0, 2, 2, 0, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 3, 3, 3, 1, 1, 3, 1, 3, 3, 1, 1, 1, 0, 2, 3, 1, 2, 0, 2, 3, 1, 2, 3, 3, 2, 2, 3, 3, 3, 4, 1, 2, 3, 3, 0, 3, 4, 1, 3, 3, 3, 0, 3, 0, 3, 4, 1, 2, 3, 3, 3, 1, 3, 3, 1, 3, 3, 3, 1, 3, 1, 3, 3, 3, 3, 3, 1, 3, 3, 3, 1, 3, 3, 2, 1, 3, 2, 3, 1, 2, 2, 3, 1, 3, 3, 1, 1, 1, 1, 1, 1, 4, 6, 1, 1, 1, 1, 1, 2, 3, 3, 3, 3, 2, 1, 3, 3, 2, 0, 4, 2, 2, 1, 1, 3, 4, 3, 2, 2, 2, 2, 6, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 3, 3, 5, 5, 4, 3, 3, 3, 5, 5, 5, 1, 1, 1, 1, 4, 3, 5, 4, 0, 2, 3, 3, 3, 7, 4, 6, 2, 1, 3, 3, 7, 1, 1, 2, 3, 1, 1, 0, 2, 2, 2, 1, 1, 1, 1, 0, 2, 3, 1, 3, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 2, 2, 1, 1, 1, 1, 1, 2, 3, 1, 7, 0, 3, 0, 3, 2, 3, 1, 5, 5, 2, 3, 3, 4, 3, 1, 3, 5, 1, 0, 1, 1, 0, 2, 2, 4, 4, 3, 1, 5, 6, 2, 1, 5, 3, 3, 3, 3, 0, 3, 8, 3, 1, 3, 1, 3, 3, 0, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 4, 5, 1, 3, 1, 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 2, 2, 1, 1, 1, 1, 4, 5, 5, 3, 4, 1, 2, 4, 1, 2, 1, 2, 2, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 4, 1, 4, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 3, 2, 1, 4, 4, 3, 4, 3, 1, 1, 1, 1, 1, 1, 1, 1, 5, 10, 1, 1, 0, 7, 7, 0, 1, 3, 3, 3, 3, 0, 2, 2, 0, 2, 2, 0, 2, 2, 0, 2, 2, 0, 2, 2, 2, 2, 3, 0, 1, 3, 1, 2, 1, 1, 1, 1, 1, 1, 1, 4, 3, 1, 3, 2, 3, 3, 1, 3, 3, 4, 4, 3, 1, 3, 2, 3, 2, 0, 1, 0, 2, 2, 3, 0, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 4, 4, 3, 3, 3, 3, 4, 4, 3, 4, 6, 1, 1, 4, 1, 3, 4, 6, 7, 1, 1, 4, 1, 1, 1, 1, 1, 3, 0, 2, 0, 2, 3, 1, 3, 1, 4, 1, 2, 1, 1, 2, 2, 3, 1, 2, 4, 3, 4, 0, 1, 2, 1, 2, 1, 0, 3, 2, 3, 3, 4, 1, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 5, 5, 2, 0, 3, 2, 4, 4, 6, 4, 3, 4, 0, 2, 2, 3, 1, 3, 2, 2, 2, 1, 2, 3, 3, 3, 3, 3, 6, 6, 4, 4, 4, 2, 2, 2, 2, 2, 7, 5, 5, 6, 3, 1, 4, 1, 1, 1, 1, 1, 1, 5, 7, 8, 10, 6, 8, 0, 2, 2, 3, 0, 2, 1, 3, 1, 1, 1, 3, 7, 3, 7, 5, 9, 1, 1, 1, 1, 3, 5, 1, 1, 3, 4, 3, 4, 1, 1, 4, 5, 6, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state STATE-NUM when YYTABLE doesn't specify something else to do. Zero means the default is an error. */ static const yytype_uint16 yydefact[] = { 0, 8, 9, 0, 9, 0, 317, 0, 0, 257, 22, 105, 5, 19, 21, 0, 0, 6, 16, 7, 0, 1, 0, 503, 0, 0, 0, 572, 0, 548, 0, 0, 467, 527, 498, 0, 769, 770, 771, 819, 820, 821, 833, 825, 826, 827, 828, 829, 831, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 935, 936, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 974, 975, 834, 772, 879, 504, 505, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 830, 897, 898, 824, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 823, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 822, 933, 832, 934, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 2, 331, 333, 334, 0, 347, 350, 351, 335, 336, 337, 343, 400, 402, 419, 422, 424, 427, 432, 435, 438, 440, 442, 444, 446, 449, 450, 452, 0, 458, 451, 463, 466, 470, 471, 473, 474, 475, 0, 480, 477, 0, 492, 490, 500, 502, 472, 506, 509, 518, 510, 511, 512, 515, 516, 513, 514, 536, 538, 539, 540, 537, 577, 578, 579, 580, 581, 582, 583, 499, 627, 618, 625, 624, 626, 623, 620, 622, 619, 621, 338, 0, 339, 0, 341, 340, 342, 520, 521, 522, 519, 501, 344, 345, 517, 804, 805, 508, 774, 818, 0, 0, 3, 257, 247, 248, 257, 0, 25, 111, 317, 4, 0, 14, 0, 320, 321, 322, 323, 324, 325, 318, 319, 819, 820, 821, 833, 825, 826, 827, 828, 829, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 870, 974, 975, 881, 883, 894, 895, 830, 824, 912, 918, 822, 832, 960, 963, 969, 971, 981, 982, 523, 524, 818, 819, 820, 826, 829, 822, 489, 543, 544, 545, 0, 573, 0, 465, 549, 0, 448, 447, 526, 0, 483, 0, 0, 591, 0, 0, 0, 0, 0, 0, 0, 0, 597, 0, 0, 0, 0, 0, 481, 482, 484, 485, 486, 487, 493, 494, 495, 496, 497, 0, 0, 0, 767, 0, 0, 0, 355, 357, 0, 0, 363, 365, 0, 0, 386, 0, 0, 0, 0, 0, 0, 488, 0, 0, 0, 586, 0, 604, 0, 0, 757, 758, 0, 760, 761, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 352, 349, 353, 354, 348, 0, 0, 0, 0, 0, 0, 0, 0, 405, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 459, 464, 0, 0, 0, 0, 479, 491, 0, 0, 0, 759, 0, 0, 0, 0, 0, 0, 0, 245, 246, 255, 924, 931, 0, 0, 0, 267, 0, 0, 0, 271, 272, 274, 268, 269, 275, 276, 0, 270, 0, 254, 273, 0, 23, 24, 0, 107, 108, 0, 0, 0, 773, 317, 17, 0, 313, 0, 328, 0, 13, 548, 0, 575, 574, 571, 0, 525, 642, 638, 0, 641, 653, 0, 0, 590, 633, 0, 629, 0, 0, 0, 0, 634, 628, 635, 0, 0, 0, 0, 596, 0, 644, 0, 652, 654, 632, 0, 0, 0, 0, 0, 0, 0, 604, 0, 604, 0, 0, 604, 0, 0, 0, 0, 0, 0, 0, 0, 593, 650, 645, 0, 649, 0, 585, 0, 0, 0, 0, 0, 792, 794, 332, 346, 368, 0, 0, 0, 399, 401, 404, 407, 408, 409, 417, 418, 0, 403, 410, 411, 412, 413, 414, 415, 416, 0, 425, 426, 423, 428, 430, 429, 431, 433, 434, 436, 437, 0, 0, 0, 0, 456, 0, 469, 468, 0, 0, 0, 535, 808, 534, 0, 533, 0, 0, 0, 0, 530, 0, 806, 253, 252, 277, 0, 249, 251, 0, 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 785, 0, 0, 0, 258, 259, 260, 261, 265, 266, 262, 263, 264, 20, 33, 61, 47, 68, 73, 99, 26, 51, 27, 51, 28, 111, 29, 111, 30, 0, 31, 0, 106, 104, 134, 0, 141, 150, 0, 0, 0, 181, 186, 189, 193, 195, 201, 205, 172, 209, 213, 217, 138, 139, 113, 114, 115, 111, 116, 112, 117, 147, 118, 152, 119, 0, 121, 111, 120, 129, 176, 122, 111, 123, 111, 124, 111, 125, 111, 126, 111, 127, 111, 128, 111, 130, 0, 131, 111, 132, 111, 311, 312, 0, 0, 0, 604, 0, 314, 0, 831, 823, 832, 326, 608, 612, 614, 617, 615, 810, 811, 616, 549, 0, 576, 0, 461, 460, 0, 639, 592, 588, 0, 595, 630, 631, 637, 636, 598, 599, 0, 643, 651, 594, 584, 0, 766, 0, 528, 529, 359, 356, 0, 0, 364, 0, 385, 383, 384, 0, 0, 453, 0, 0, 0, 646, 587, 605, 0, 807, 0, 0, 0, 0, 0, 0, 369, 376, 370, 373, 377, 0, 406, 0, 0, 0, 0, 679, 420, 660, 663, 665, 667, 669, 670, 685, 674, 439, 441, 443, 602, 445, 457, 476, 478, 507, 0, 809, 0, 0, 756, 755, 754, 531, 250, 0, 279, 280, 0, 284, 656, 295, 0, 0, 308, 309, 285, 286, 0, 0, 0, 0, 290, 291, 0, 0, 750, 749, 751, 0, 0, 0, 0, 0, 0, 0, 298, 0, 298, 100, 101, 39, 35, 0, 0, 0, 111, 48, 50, 0, 111, 62, 66, 65, 0, 0, 0, 69, 0, 0, 0, 72, 90, 74, 78, 79, 80, 84, 85, 87, 76, 81, 82, 83, 86, 88, 0, 0, 0, 98, 110, 109, 0, 0, 0, 169, 165, 111, 0, 0, 108, 0, 0, 0, 0, 151, 0, 160, 0, 111, 0, 108, 108, 178, 182, 0, 0, 0, 0, 0, 108, 0, 0, 0, 108, 0, 108, 108, 0, 108, 0, 0, 108, 108, 0, 208, 211, 0, 214, 215, 0, 0, 0, 0, 0, 0, 329, 327, 0, 0, 0, 0, 609, 611, 610, 606, 548, 548, 566, 541, 462, 0, 655, 589, 600, 768, 0, 0, 361, 0, 0, 0, 396, 0, 390, 0, 0, 454, 455, 0, 0, 763, 0, 764, 0, 0, 799, 800, 796, 798, 0, 378, 379, 380, 371, 0, 0, 668, 0, 680, 682, 684, 675, 0, 421, 0, 658, 0, 0, 671, 0, 672, 603, 601, 532, 0, 0, 0, 0, 0, 720, 0, 0, 745, 0, 0, 716, 717, 0, 704, 710, 711, 709, 708, 712, 706, 707, 713, 0, 604, 0, 0, 294, 0, 0, 0, 283, 785, 789, 790, 791, 786, 787, 0, 0, 0, 0, 298, 0, 297, 0, 304, 102, 103, 37, 0, 225, 224, 819, 841, 976, 977, 34, 220, 0, 223, 221, 232, 243, 239, 38, 43, 44, 45, 36, 54, 52, 111, 0, 49, 0, 64, 63, 60, 71, 70, 67, 94, 95, 91, 92, 93, 75, 96, 77, 89, 137, 161, 0, 111, 166, 0, 0, 163, 135, 136, 133, 144, 145, 146, 143, 142, 140, 155, 148, 111, 149, 153, 162, 0, 173, 174, 175, 111, 0, 184, 183, 111, 187, 185, 190, 191, 188, 192, 196, 198, 199, 197, 194, 202, 203, 200, 206, 207, 204, 210, 212, 218, 216, 325, 15, 0, 817, 607, 613, 0, 0, 815, 0, 0, 0, 0, 640, 765, 0, 0, 0, 366, 367, 387, 0, 0, 0, 388, 389, 0, 0, 0, 0, 647, 330, 0, 0, 0, 801, 0, 0, 372, 0, 374, 673, 679, 677, 0, 681, 683, 0, 662, 0, 0, 691, 0, 0, 0, 0, 0, 657, 661, 664, 0, 0, 0, 0, 0, 752, 753, 256, 721, 726, 0, 746, 719, 718, 0, 0, 723, 722, 0, 715, 714, 0, 744, 705, 0, 278, 287, 288, 281, 282, 292, 293, 289, 0, 775, 781, 0, 0, 0, 325, 301, 302, 296, 299, 0, 0, 40, 41, 42, 242, 0, 0, 0, 0, 0, 233, 0, 0, 0, 0, 238, 55, 59, 58, 0, 0, 0, 32, 46, 97, 168, 0, 164, 167, 156, 159, 0, 0, 0, 177, 0, 171, 180, 0, 325, 812, 0, 0, 0, 548, 548, 0, 570, 569, 568, 567, 360, 0, 0, 0, 394, 0, 0, 395, 393, 0, 648, 762, 604, 0, 793, 795, 0, 381, 382, 0, 676, 678, 748, 698, 696, 697, 659, 0, 0, 702, 703, 694, 695, 666, 0, 0, 687, 0, 686, 734, 727, 727, 729, 0, 0, 736, 736, 747, 0, 307, 305, 783, 0, 0, 0, 0, 788, 779, 781, 0, 300, 298, 241, 240, 0, 229, 228, 0, 219, 235, 234, 237, 236, 0, 57, 56, 53, 170, 158, 157, 154, 179, 11, 0, 813, 816, 0, 0, 0, 548, 362, 358, 397, 0, 392, 398, 0, 802, 0, 375, 699, 700, 701, 692, 693, 689, 688, 0, 0, 0, 0, 0, 0, 740, 738, 735, 733, 306, 784, 782, 776, 0, 0, 316, 310, 315, 303, 226, 0, 0, 10, 12, 0, 814, 554, 560, 546, 557, 563, 547, 0, 0, 0, 797, 690, 0, 725, 724, 730, 731, 0, 739, 0, 0, 737, 777, 781, 780, 0, 230, 231, 244, 18, 0, 0, 0, 0, 542, 391, 803, 728, 0, 741, 742, 743, 0, 227, 550, 556, 555, 551, 562, 561, 552, 559, 558, 553, 565, 564, 732, 778 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { -1, 7, 8, 9, 326, 1559, 19, 17, 18, 328, 568, 12, 13, 323, 560, 744, 745, 1178, 1198, 746, 747, 970, 1200, 1201, 748, 749, 750, 751, 752, 753, 1216, 1218, 754, 755, 778, 324, 756, 563, 779, 780, 781, 782, 783, 784, 785, 1234, 1018, 786, 787, 1020, 1238, 1239, 788, 789, 790, 791, 792, 1009, 1010, 1011, 1225, 793, 794, 1027, 1248, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 1186, 1187, 1188, 1189, 1493, 1587, 1190, 1191, 1192, 1393, 317, 318, 530, 531, 319, 320, 321, 322, 538, 539, 708, 540, 541, 542, 543, 544, 545, 546, 547, 948, 1365, 548, 549, 550, 1173, 959, 551, 552, 1479, 553, 554, 817, 335, 1553, 725, 336, 337, 574, 571, 572, 1005, 215, 216, 217, 218, 219, 220, 476, 221, 436, 437, 1082, 1290, 222, 440, 441, 477, 478, 479, 892, 893, 894, 1107, 1313, 223, 443, 444, 224, 1087, 1297, 1088, 1089, 1295, 225, 226, 227, 228, 660, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 841, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 378, 266, 267, 268, 269, 270, 695, 696, 271, 272, 273, 389, 575, 395, 1565, 1568, 1592, 1594, 1593, 1595, 1285, 274, 392, 275, 578, 276, 277, 278, 456, 589, 279, 404, 280, 281, 282, 283, 413, 604, 913, 1127, 640, 827, 1069, 828, 829, 284, 285, 286, 287, 288, 289, 290, 291, 584, 292, 605, 293, 635, 294, 607, 585, 608, 1075, 935, 902, 1330, 1120, 903, 904, 905, 906, 907, 908, 909, 910, 1116, 1125, 1337, 1331, 1532, 1460, 933, 1143, 1144, 1145, 1146, 1147, 1537, 1350, 1148, 1544, 1475, 1541, 1583, 1149, 1150, 1151, 1118, 556, 295, 296, 297, 298, 299, 300, 301, 431, 432, 302, 303, 304, 305, 565, 306, 557, 1483, 1368, 955, 1165, 1166, 307, 308, 1102, 1307, 1308, 309, 310, 311, 312, 832, 833, 834, 1282, 835, 313, 314 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ #define YYPACT_NINF -1397 static const yytype_int16 yypact[] = { 296, -1397, -1397, 17, -1397, 13, -1397, 213, 3391, 478, -1397, -1397, -1397, -1397, -1397, 187, 246, -1397, -1397, -1397, 7, -1397, 6346, -1397, 4819, 569, 341, 439, 4108, 477, 3630, 3630, -1397, -1397, -1397, 2196, -1397, -1397, -1397, 96, 258, 570, 584, 632, 68, 665, 669, 350, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 579, 616, 710, 713, 718, 722, 726, 746, 757, 761, 763, 742, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 787, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 750, 766, -1397, -1397, -1397, -1397, -1397, -1397, 806, -1397, 36, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 807, 807, -1397, 777, -1397, -1397, 778, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 283, -1397, -1397, -1397, -1397, -1397, 153, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 80, -1397, 779, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 75, -1397, -1397, -4, -1397, -1397, -1397, -1397, -1397, 764, -1397, -3, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 588, 586, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 793, -1397, -1397, 535, -1397, -1397, -1397, -1397, -1397, -1397, 671, 673, -1397, 1091, 636, 39, 52, 54, 554, -1397, 675, 666, 674, 668, -1397, -1397, -1397, 115, -1397, -1397, 4108, 305, -1397, -1397, 816, 819, -1397, 4819, -1397, -1397, 4819, -1397, -1397, -1397, -1397, 157, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 3391, -1397, 3391, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 427, 330, 670, -1397, 651, -1397, -1397, -1397, 3869, 155, 407, -1397, -1397, 6346, 662, 158, -1397, -1397, -1397, -1397, -1397, 692, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 805, 808, 809, 813, 814, -1397, -1397, -1397, -1397, 618, -1397, 817, 305, -1397, 6346, -1397, -1397, -1397, 441, -1397, 5293, 3391, -1397, 799, 818, 3391, 28, 822, 823, 6153, 3391, -1397, 810, 6346, 6346, 824, 3391, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 3391, 6346, 20, -1397, 3391, 3391, 6346, 828, -1397, 6346, 846, 833, -1397, 6346, 97, -1397, 125, 3391, 3391, 3391, 821, 825, -1397, 799, 5530, 3391, -1397, 799, 705, 3391, 711, -1397, -1397, 3391, -1397, -1397, 6346, 3391, 3391, 3391, 806, 36, 3391, 862, 737, 739, -1397, -1397, -1397, -1397, -1397, 3630, 3630, 3630, 3630, 3630, 3630, 3630, 3630, -1397, 3630, 3630, 3630, 3630, 3630, 3630, 3630, 3630, 812, 3630, 3630, 3630, 3630, 3630, 3630, 3630, 3630, 3630, 3630, 3630, 719, 727, 728, 729, 2435, -1397, 305, 4108, 4108, 3391, 3391, -1397, -1397, 3391, 1718, -49, -1397, 1957, 830, 759, 760, 50, 836, 6346, -1397, -1397, 323, 1036, 536, 836, 836, 836, -1397, 836, 836, 836, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 836, -1397, 836, -1397, -1397, 836, -1397, -1397, 106, -1397, -1397, 982, 194, 850, -1397, -1397, -1397, 6346, -1397, 496, -1397, 5738, -1397, 783, 784, -1397, -1397, -1397, 27, -1397, -1397, -1397, 498, -1397, -1397, 260, 2674, -1397, -1397, 352, -1397, 669, 814, 848, 851, -1397, -1397, -1397, 852, 853, 361, 2913, -1397, 856, -1397, 859, -1397, -1397, -1397, 366, 372, 892, 787, 3391, 411, 420, 705, 806, 705, 6346, 36, 705, 807, 3391, 3391, 540, 546, 428, 3391, 3391, -1397, -1397, -1397, 553, -1397, 431, -1397, 5738, 855, 681, 849, 755, 687, -87, -1397, -1397, -1397, 6346, 3391, 772, 673, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 3630, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 45, 52, 52, 693, 54, 54, 54, 54, 554, 554, -1397, -1397, 5738, 5738, 6346, 6346, -1397, 443, -1397, -1397, 502, 510, 545, -1397, -1397, -1397, 555, -1397, 375, 3391, 3391, 3391, -1397, 559, -1397, -1397, -1397, -1397, 836, -1397, -1397, 874, 573, 536, 564, 829, 790, 907, 6346, 576, 619, 204, 452, 6346, 221, 448, 194, 144, 18, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 461, -1397, 214, -1397, 170, -1397, 195, -1397, 34, -1397, 7057, -1397, 677, 44, -1397, -1397, 435, -1397, -1397, 614, 658, 621, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 74, -1397, -1397, -1397, 15, -1397, 643, -1397, 679, -1397, -1397, -1397, -1397, 67, -1397, 134, -1397, 626, -1397, -119, -1397, -1397, -1397, 65, -1397, 126, -1397, -132, -1397, -117, -1397, 466, -1397, 627, -1397, -1397, 6529, 790, 194, 705, 910, -1397, 5946, 881, 893, 896, -1397, 355, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 639, 349, -1397, 802, -1397, -1397, 6346, -1397, -1397, -1397, 446, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 455, -1397, -1397, -1397, -1397, 3391, -1397, 826, -1397, -1397, 835, -1397, 927, 930, -1397, 811, -1397, -1397, -1397, 800, 801, -1397, 493, 505, 6346, -1397, -1397, -1397, 3391, -1397, 3391, 3391, 3391, 913, 914, 1449, -1397, -1397, 931, -1397, 623, 3391, -1397, 45, 3391, 307, 517, 488, 873, 724, 730, 885, -1397, -1397, 829, 771, -1397, -1397, -1397, -1397, 948, -1397, -1397, -1397, -1397, -1397, 3152, -1397, 745, 748, -1397, -1397, -1397, -1397, -1397, 790, -1397, -1397, 527, 895, -1397, -1397, 6346, 939, -1397, -1397, -1397, -1397, 839, 790, 831, 832, -1397, -1397, 949, 858, -1397, -1397, -1397, 6346, -70, 754, 6529, 6346, 794, 790, 876, 6346, 876, 702, 704, -1397, -1397, 4345, 5738, 654, 736, -1397, -1397, 5738, 736, -1397, -1397, -1397, 5738, 3391, 1075, -1397, 5738, 3391, 1168, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -51, 877, 877, -1397, -1397, -1397, 747, 3391, 701, 506, -1397, -1397, 3391, 3391, -1397, 6530, -93, 3391, 241, -1397, 254, -1397, 6558, -1397, 3391, -1397, -1397, 738, -1397, 5738, 3391, 6586, 3391, 6614, -1397, 3391, 6642, 6670, -1397, 3391, -1397, -1397, 6698, -1397, 3391, 6726, -1397, -1397, 6754, -1397, -1397, 3391, -1397, -1397, 6782, 3391, 6810, 779, 836, 6529, -1397, -1397, 957, 970, 974, 5056, -1397, -1397, -1397, -1397, 477, 477, -1397, -1397, -1397, 975, -1397, -1397, -1397, -1397, 3391, 1008, 827, 3391, 3391, 3391, 1010, 136, -1397, 64, 3391, -1397, -1397, 292, 541, -1397, 795, -1397, 1013, 1013, -1397, -1397, 798, -1397, 3391, -1397, -1397, 882, 931, 986, 544, -1397, 35, 932, 815, -1397, -1397, 934, -1397, 45, 226, 45, 899, 895, -1, -1397, -1397, -1397, -1397, 3391, 3391, 836, 610, 682, -1397, 41, 834, -1397, 684, 6346, -1397, -1397, 909, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 527, 705, 790, 629, -1397, 790, 790, 596, -1397, 2, -1397, -1397, -1397, 1002, -1397, 4345, 779, 1004, 869, 876, 790, 1018, 1016, 1018, -1397, -1397, -58, 4819, -1397, 820, 268, 1035, 1015, 1017, 1046, -1397, 4582, 646, 653, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 273, 6838, -1397, 6866, -1397, 793, -1397, -1397, 793, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 938, 938, -1397, 793, 3391, -1397, -1397, 843, 6894, 793, 793, 44, -1397, -1397, -1397, -1397, -1397, 793, -1397, -1397, -1397, 281, -1397, -1397, -1397, 6922, 793, 44, 44, -1397, 864, -1397, 793, -1397, 793, -1397, 44, 793, -1397, -1397, 44, 793, 44, 44, -1397, 44, 793, -1397, 44, 44, -1397, 793, -1397, 793, -1397, 692, -1397, 779, -1397, -1397, -1397, 1020, 911, -1397, 568, 1019, 1021, 118, -1397, -1397, 6346, 1056, 933, -1397, -1397, -1397, 6346, 5738, 77, -1397, -1397, 5738, 3391, 912, 1028, -1397, -1397, 3391, 6346, 572, -1397, 575, 1030, -1397, 640, 935, -1397, 488, -1397, 1026, -1397, -1397, 3630, 730, 985, 686, -1397, 3630, 3630, -1, 571, 571, -1397, -1397, 885, 45, 25, 3630, 3630, 878, -1397, -1397, -1397, -1397, -1397, 883, -1397, -1397, -1397, 57, 790, -1397, -1397, 84, -1397, -1397, 972, -1397, -1397, 58, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 266, -1397, 946, 875, -70, 140, 692, -1397, -1397, 1018, -1397, 790, 790, -1397, -1397, -1397, -1397, 4819, 4819, 71, 909, 4345, -1397, 4582, 4582, 4582, 4582, 1092, -1397, -1397, -1397, 5738, 3391, 6950, -1397, -1397, -1397, 793, 6978, -1397, -1397, -1397, -1397, 5738, 3391, 7006, -1397, 7034, -1397, 1447, 855, 692, -1397, 5738, 5738, 962, 477, 477, 569, -1397, -1397, -1397, -1397, -1397, 6346, 3391, 966, -1397, 6346, 3391, -1397, -1397, 3391, -1397, -1397, 705, 1013, -1397, -1397, 1013, -1397, -1397, 790, -1397, -1397, 54, -1397, -1397, -1397, -1397, 70, 500, -1397, -1397, -1397, -1397, -1397, 3630, 3630, 693, 60, -1397, -1397, -1397, -1397, -18, 909, 790, -1397, -1397, -1397, 3391, -1397, -1397, -1397, 589, 5738, 855, 4345, -1397, -1397, 946, 31, -1397, 876, -1397, -1397, 1078, -1397, -1397, 1087, -1397, -1397, -1397, -1397, -1397, 3391, -1397, 793, -1397, -1397, -1397, 793, -1397, -1397, 836, 855, -1397, -1397, 5738, 358, 641, 477, -1397, -1397, -1397, 992, -1397, -1397, 1115, -1397, 592, -1397, -1397, -1397, -1397, -1397, -1397, 693, 693, 3630, 593, 595, 909, 920, 608, -1397, -1397, 552, 552, -1397, -1397, -1397, -1397, 140, 855, -1397, -1397, -1397, 1018, -1397, 87, 558, -1397, -1397, 836, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 1101, 3391, 3391, -1397, 693, 1024, -1397, -1397, -1, -1397, 909, -1397, 69, 69, -1397, -1397, 946, -1397, 1088, -1397, -1397, -1397, -1397, 62, 66, 117, 249, -1397, -1397, -1397, -1397, 924, -1397, -1397, -1397, 855, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { -1397, -1397, -1397, 1127, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 385, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 132, -1397, -1397, 1132, -1397, -513, -679, -1397, -1397, -1397, -1397, 380, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 120, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 133, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1150, -246, -1397, -1397, -1397, -1397, -1397, -1110, -1397, -1397, -1397, -1397, -1397, 613, 838, 841, -1397, 844, -1397, -1397, -517, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -954, -1397, -1397, -1397, -1397, -1397, -1397, -614, -159, -1397, 3, -1397, -1397, -1208, -220, 326, -592, 842, 1, -142, -1397, -1397, 929, -1397, -1397, -1397, 530, -1397, -1397, -1397, -1397, 528, -1397, -1397, -1397, 256, 48, -1397, -1397, -1397, -1397, 1037, 529, -1397, -1397, -1397, 73, -1397, -1397, -1397, -1397, 688, 689, -1397, 161, -158, -497, 293, -470, 288, 295, -1397, -1397, -1397, 774, -1397, -1397, -1397, -653, -237, -1397, -1397, -1397, 11, 294, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -6, -1397, -1397, -1397, -1397, -656, -1397, -1328, -384, -1397, -1397, -1397, -1397, -1397, 645, 252, -1397, -116, -1397, -250, -1397, -571, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 234, -1397, -1397, -1397, -1397, -1397, -1397, 1033, -1397, 492, -1397, -613, -620, -1397, 354, 129, -423, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 773, -1397, 776, -1397, 765, 725, 303, -667, -856, -1397, -1397, -1397, 72, 63, -148, 287, -1397, -1397, -1397, -128, -1397, -1303, -1397, -269, -140, 282, 40, -1397, -1397, -1397, -1397, -277, -1319, -1397, -281, -773, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 581, -1397, -1397, -1397, -1122, -395, -371, -1397, -1396, -1322, 37, -1397, -174, -1397, -1397, -1397, -1088, -245, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, -1397, 16, -22 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which number is the opposite. If zero, do what YYDEFACT says. If YYTABLE_NINF, syntax error. */ #define YYTABLE_NINF -318 static const yytype_int16 yytable[] = { 380, 457, 380, 672, 837, 864, 514, 866, 1175, 20, 869, 1309, 1211, 901, 709, 601, 900, 1371, 386, 881, 1355, 728, 729, 730, 1457, 731, 732, 733, 1470, 1231, 586, 673, 674, 675, 676, 734, 399, 735, 379, 393, 736, 1109, 1366, 586, 609, 438, 613, 329, 883, 1487, 882, 618, 1162, 614, 620, 460, 463, 1494, 623, 960, 962, 911, 912, 501, 1379, 1416, 505, 29, 1477, 592, 980, 1212, 984, 498, 499, 897, 1299, 29, 1388, 882, 22, 1347, 609, 898, 1316, 897, 1434, 36, 37, 38, 593, 1551, 882, 898, 498, 499, 22, 36, 37, 38, 706, 1334, 1015, 697, 498, 499, 945, 1606, 410, 1472, 882, 956, 1022, 1609, 882, 400, 411, 1031, 1334, 1033, 453, 1036, 502, 1037, 1472, 1042, 1463, 1045, 454, 1048, 624, 1049, 839, 1054, 458, 1056, 401, 710, 888, 36, 37, 38, 25, 934, 402, 26, 27, 29, 1046, 1424, 830, 1058, 1387, 889, 524, 1348, 525, 840, 624, 1004, 98, 1034, 1612, 513, 1488, 882, 882, 569, 1540, 1464, 98, 1348, 451, 698, 699, 1047, 1050, 1607, 522, 459, 1366, 700, 1610, 1473, 1035, 820, 1051, 1539, 882, 1604, 928, 961, 412, 1335, 1336, 1300, 98, 523, 1473, 570, 500, 411, 831, 16, 455, 1059, 1552, 1060, 1435, 1512, 1335, 1336, 98, 21, 503, 504, 830, 1375, 506, 594, 403, 1536, 461, 464, 1349, 1232, 528, 1233, 1585, 1589, 439, 380, 1613, 1478, 380, 1425, 1426, 867, 330, 615, 1469, 901, 954, 901, 900, 625, 900, 520, 1163, 1164, 521, 331, 332, 333, 334, 1599, 1317, 515, 830, 830, 1380, 1381, 1131, 1495, 1496, 890, 10, 1474, 831, 934, 1213, 1214, 1215, 626, 1600, 569, 1156, 412, 899, 1498, 1499, 1500, 1501, 1529, 1530, 1531, 1086, 1383, 899, 950, 951, 1202, 1171, 467, 1016, 1204, 1615, 882, 405, 1, 2, 3, 4, 5, 6, 380, 406, 1480, 401, 844, 831, 831, 831, 831, 981, 1302, 641, 957, 1017, 1296, 643, 1322, 937, 952, 645, 646, 647, 958, 564, 648, 11, 448, 1226, 1303, 1550, 516, 982, 983, 1023, 29, 1323, 517, 942, 566, 1243, 1038, 1324, 897, 1194, 943, 1542, 449, 450, 1203, 737, 898, 738, 1527, 1205, 36, 37, 38, 1208, 739, 740, 1616, 1066, 325, 1039, 741, 1024, 1040, 1041, 380, 1072, 1025, 1026, 1013, 1067, 380, 1014, 694, 742, 743, 694, 467, 815, 816, 380, 1068, 416, 1073, 380, 380, 467, 944, 815, 816, 417, 467, 830, 847, 1563, 587, 1564, 467, 1043, 591, 380, 1249, 852, 580, 602, 380, 1028, 857, 380, 1577, 611, 327, 380, 858, 1325, 1326, 1327, 330, 566, 1328, 1329, 1044, 612, 380, 98, 558, 616, 617, 1029, 1030, 331, 332, 333, 334, 559, 380, 467, 1281, 379, 627, 628, 629, 971, 379, 831, 467, 379, 637, 901, 1601, 379, 900, 862, 467, 972, 901, 467, 901, 900, 526, 900, 863, 390, 1076, 973, 861, 467, 975, 467, 875, 527, 467, 880, 644, 581, 871, 872, 976, 977, 1358, 467, 1236, 1361, 1362, 916, 965, 966, 1077, 1237, 978, 979, 1283, 1284, 1229, 1240, 711, 1078, 1376, 528, 1076, 891, 1237, 380, 712, 1245, 1246, 686, 967, 968, 529, 969, 689, 690, 1254, 1399, 691, 917, 1258, 467, 1260, 1261, 821, 1263, 842, 918, 1266, 1267, 467, 1555, 822, 467, 843, 1357, 1274, 1091, 467, 1404, 830, 391, 380, 566, 29, 830, 380, 1153, 1394, 1092, 830, 924, 925, 926, 830, 1411, 1407, 1169, 1395, 1396, 1112, 1174, 919, 1413, 1367, 819, 1408, 1415, 467, 467, 1397, 1398, 467, 467, 467, 1590, 873, 394, 1409, 1410, 379, 878, 874, 920, 846, 1304, 467, 920, 1315, 879, 922, 921, 831, 418, 380, 927, 1420, 831, 923, 854, 1442, 830, 831, 1442, 1421, 407, 831, 1132, 1443, 1340, 1133, 1444, 380, 1134, 1135, 1136, 1137, 821, 946, 408, 1442, 1574, 380, 1574, 947, 1547, 876, 877, 1572, 1575, 419, 1576, 379, 713, 714, 715, 1579, 830, 654, 655, 656, 657, 658, 659, 1580, 661, 662, 663, 664, 665, 666, 667, 668, 831, 380, 380, 380, 380, 514, 315, 379, 468, 469, 316, 470, 471, 472, 409, 473, 474, 1433, 1389, 901, 1138, 1436, 900, 1471, 1390, 1391, 953, 1566, 632, 1567, 954, 1392, 638, 387, 388, 1427, 831, 380, 1113, 1114, 1115, 716, 380, 1341, 1342, 1343, 1344, 414, 1195, 1196, 1197, 415, 1489, 1490, 1139, 1529, 1530, 1531, 1581, 1079, 1582, 507, 508, 561, 562, 576, 577, 726, 727, 498, 499, 420, 1140, 1141, 421, 566, 1142, 930, 931, 422, 949, 940, 941, 423, 1095, 1096, 1097, 424, 717, 938, 939, 963, 964, 776, 777, 891, 718, 719, 720, 721, 722, 1052, 1053, 1070, 1071, 1105, 1106, 425, 1008, 1223, 1345, 1346, 1352, 1353, 1359, 1360, 1363, 1364, 426, 1503, 694, 1486, 427, 1528, 428, 1446, 1447, 1453, 1454, 1458, 1459, 1507, 429, 670, 671, 677, 678, 1057, 430, 723, 433, 1513, 1514, 380, 679, 680, 396, 397, 1543, 724, 1602, 1603, 687, 688, 914, 914, 434, 435, 442, 446, 447, 329, 380, 896, 465, 462, 1511, 466, 467, 480, 1525, 1456, 481, 497, -222, 509, 511, 510, 512, 518, 1465, 1466, 519, 316, 567, 532, 573, 401, 579, 588, 405, 410, 1451, 1516, 1517, 416, 453, 621, 380, 639, 603, 590, -222, 619, 1548, 597, 598, 610, 622, 380, -222, 630, 642, 649, 830, 631, 650, 669, 830, 651, 681, 682, 683, 684, 703, 1094, 704, 705, 706, 818, 836, 848, 838, 1549, 849, 850, 851, 1562, 1554, 855, 1273, 1110, 856, 1588, 859, 882, 1429, 1103, 884, 886, 885, 895, 1432, 929, 887, 932, 380, 934, 936, 1007, 1008, 569, 1561, 1063, 1441, 1019, 831, 1003, 1012, 1021, 831, 1032, 1055, 380, 1074, 1064, 1168, 380, 1065, 1083, 1287, 380, 1084, 1291, 1292, 1293, 1085, 380, 380, 1569, 1301, 1081, 1086, 380, 379, 1098, 1099, 1090, 380, 1080, 1584, 1586, 380, 1193, 891, 1117, 1104, 1119, 1534, 1535, 1122, 1161, 1124, 1126, 1121, 566, 830, 1129, 1154, 566, 1130, 1152, 1206, 1155, 1159, 1160, 1209, 1170, 830, 1338, 1339, 1167, 1172, 1176, 1177, 1199, 1560, 1220, 830, 830, 1276, 1217, 1608, 1611, 1614, 1617, 1157, 1158, 1222, 380, 1221, 1372, 1247, 1277, 1619, 1227, 1228, 1278, 1286, 1288, 1235, 1294, 1305, 1289, 1306, 1310, 1312, 1244, 831, 1314, 1319, 1318, 1320, 1250, 1333, 1252, 98, 1370, 1255, 1275, 831, 1573, 1259, 1373, 1374, 380, 1591, 1264, 1519, 1351, 831, 831, 1522, 1377, 1269, 1378, 1384, 1385, 1271, 1386, 1387, 830, 1402, 1418, 1422, 1419, 1423, 1430, 1431, 1438, -222, 1439, 1445, -222, -222, -222, -222, 1450, -222, -222, 1467, -222, 1448, 1452, -222, -222, -222, -222, -222, -222, -222, -222, -222, 1405, 830, -222, -222, -222, 1468, 1476, 1482, -222, -222, 713, 714, 715, 482, 483, 484, 485, 486, 487, 1484, 831, 1414, 1502, 1515, 488, 1417, 380, 1521, 1556, 1557, -222, -222, 1570, -222, 1571, 1578, 1596, 489, 1605, 1618, 15, 974, -222, 1219, 14, -222, -222, 1348, 1006, 1241, 1497, 1224, 707, 831, 380, 1481, 1061, 475, 865, 868, 1108, 1311, 870, 445, 1354, 533, 380, 1437, 534, 1298, 1193, 716, 1440, 555, 535, 380, 1455, 652, 1428, 653, 702, 1128, 1382, 1518, 452, 915, 1062, 636, 606, 595, 1093, 1193, 596, 1332, 1462, 1111, 1449, 1533, 1461, 1123, 1321, 1356, 1538, 1545, 860, 1485, 1526, 1369, 490, 491, 492, 493, 494, 495, 0, 0, 0, 0, 717, 0, 0, 0, 0, 0, 0, 0, 718, 719, 720, 721, 722, 0, 1403, 0, 0, 0, 0, -317, -317, 757, 0, 0, 758, 759, 760, 761, 0, 762, 0, 0, 763, 0, 0, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 0, 0, 723, 496, 0, 0, 0, 0, 380, -317, 0, 0, 724, 0, 380, 380, 0, 0, 0, 380, 0, 0, -317, -317, -317, -317, 380, 0, 0, 0, 0, 1520, 0, 0, 0, 1523, 0, 11, 1524, 0, 776, 777, 0, 0, 0, 0, 379, 0, 0, 0, 0, 0, 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 379, 1207, 0, 0, 758, 759, 760, 761, 0, 762, 0, 0, 763, 1546, 0, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 380, 380, 0, 0, 380, 0, 380, 380, 380, 380, 0, 0, 0, 0, 380, 0, 1491, 1492, 0, 0, 1193, 0, 1193, 1193, 1193, 1193, 380, 11, 0, 0, 776, 777, 0, 0, 0, 0, 380, 380, 1504, 0, 0, 0, 0, 0, 0, 0, 0, 380, 0, 0, 1508, 380, 0, 0, 0, 1210, 0, 0, 758, 759, 760, 761, 0, 762, 0, 0, 763, 1597, 1598, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 0, 0, 379, 0, 0, 0, 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 380, 0, 380, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1193, 0, 0, 11, 0, 0, 776, 777, 0, 0, 0, 0, 0, 0, 0, 380, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1558, 338, 339, 340, 341, 342, 343, 344, 345, 346, 48, 49, 50, 51, 52, 53, 54, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 359, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 360, 361, 97, 0, 0, 0, 99, 0, 0, 0, 0, 102, 362, 104, 363, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 364, 365, 118, 366, 120, 0, 121, 367, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 368, 137, 138, 139, 140, 141, 369, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 370, 159, 371, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 372, 186, 187, 373, 189, 190, 191, 192, 193, 374, 195, 375, 197, 198, 199, 200, 201, 202, 203, 376, 377, 206, 207, 208, 209, 210, 211, 212, 213, 214, 0, 758, 759, 760, 761, 0, 762, 0, 0, 763, 0, 0, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 0, 0, 0, 0, 22, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 692, 25, 0, 0, 26, 27, 0, 28, 0, 29, 0, 30, 31, 32, 0, 33, 34, 35, 693, 11, 0, 0, 776, 777, 0, 0, 1100, 0, 1101, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 95, 96, 97, 0, 0, 98, 99, 100, 101, 0, 0, 102, 103, 104, 105, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 0, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 22, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 692, 25, 0, 0, 26, 27, 0, 28, 0, 29, 0, 30, 31, 32, 0, 33, 34, 35, 701, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 95, 96, 97, 0, 0, 98, 99, 100, 101, 0, 0, 102, 103, 104, 105, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 0, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 22, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 26, 27, 0, 28, 0, 29, 0, 30, 31, 32, 0, 33, 34, 35, 398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 95, 96, 97, 0, 0, 98, 99, 100, 101, 0, 0, 102, 103, 104, 105, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 0, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 22, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 26, 27, 0, 28, 0, 29, 0, 30, 31, 32, 0, 33, 34, 35, 0, 0, 0, 0, 0, 0, 0, 0, 685, 0, 0, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 95, 96, 97, 0, 0, 98, 99, 100, 101, 0, 0, 102, 103, 104, 105, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 0, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 22, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 26, 27, 0, 28, 0, 29, 0, 30, 31, 32, 0, 33, 34, 35, 0, 0, 0, 0, 0, 0, 0, 0, 845, 0, 0, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 95, 96, 97, 0, 0, 98, 99, 100, 101, 0, 0, 102, 103, 104, 105, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 0, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 22, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 26, 27, 0, 28, 0, 29, 0, 30, 31, 32, 0, 33, 34, 35, 0, 0, 0, 0, 0, 0, 0, 0, 853, 0, 0, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 95, 96, 97, 0, 0, 98, 99, 100, 101, 0, 0, 102, 103, 104, 105, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 0, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 22, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 692, 25, 0, 0, 26, 27, 0, 28, 0, 29, 0, 30, 31, 32, 0, 33, 34, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 95, 96, 97, 0, 0, 98, 99, 100, 101, 0, 0, 102, 103, 104, 105, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 0, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 22, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 26, 27, 0, 28, 0, 29, 0, 30, 31, 32, 0, 33, 34, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 95, 96, 97, 0, 0, 98, 99, 100, 101, 0, 0, 102, 103, 104, 105, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 0, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 22, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 26, 27, 0, 28, 0, 29, 0, 30, 31, 32, 0, 33, 34, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 359, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 95, 96, 97, 0, 0, 98, 99, 100, 101, 0, 0, 102, 362, 104, 363, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 364, 365, 118, 366, 120, 0, 121, 367, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 372, 186, 187, 373, 189, 190, 191, 192, 193, 374, 195, 375, 197, 198, 199, 200, 201, 202, 203, 376, 377, 206, 207, 208, 209, 210, 211, 212, 213, 214, 22, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 26, 27, 0, 28, 0, 29, 0, 30, 31, 32, 0, 33, 34, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 95, 96, 97, 0, 0, 98, 99, 100, 101, 0, 0, 102, 103, 104, 105, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 0, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 536, 150, 151, 152, 153, 154, 0, 155, 537, 157, 0, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 22, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 26, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 34, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 359, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 95, 96, 97, 0, 0, 98, 99, 100, 101, 0, 0, 102, 362, 104, 363, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 364, 365, 118, 366, 120, 0, 121, 367, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 368, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 372, 186, 187, 373, 189, 190, 191, 192, 193, 374, 195, 375, 197, 198, 199, 200, 201, 202, 203, 376, 377, 206, 207, 208, 209, 210, 211, 212, 213, 214, 23, 0, 0, 0, 0, 0, 0, 0, 0, 1179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1180, 0, 0, 0, 0, 0, 1181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1182, 382, 41, 42, 43, 383, 45, 46, 384, 48, 49, 50, 51, 52, 53, 54, 1183, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 359, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 360, 361, 97, 0, 0, 0, 99, 100, 101, 0, 0, 102, 362, 104, 363, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 364, 365, 118, 366, 120, 0, 121, 367, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 368, 137, 138, 139, 140, 141, 369, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 385, 159, 371, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 372, 186, 187, 373, 189, 190, 191, 192, 193, 374, 195, 375, 197, 198, 1184, 1185, 201, 202, 203, 376, 377, 206, 207, 208, 209, 210, 211, 212, 213, 214, 23, 0, 0, 0, 0, 0, 0, 0, 0, 1179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1182, 382, 41, 42, 43, 383, 45, 46, 384, 48, 49, 50, 51, 52, 53, 54, 1183, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 359, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 360, 361, 97, 0, 0, 0, 99, 100, 101, 0, 0, 102, 362, 104, 363, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 364, 365, 118, 366, 120, 0, 121, 367, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 368, 137, 138, 139, 140, 141, 369, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 385, 159, 371, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 372, 186, 187, 373, 189, 190, 191, 192, 193, 374, 195, 375, 197, 198, 199, 200, 201, 202, 203, 376, 377, 206, 207, 208, 209, 210, 211, 212, 213, 214, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 381, 382, 41, 42, 43, 383, 45, 46, 384, 48, 49, 50, 51, 52, 53, 54, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 359, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 360, 361, 97, 0, 0, 0, 99, 100, 101, 0, 0, 102, 362, 104, 363, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 364, 365, 118, 366, 120, 0, 121, 367, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 368, 137, 138, 139, 140, 141, 369, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 385, 159, 371, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 372, 186, 187, 373, 189, 190, 191, 192, 193, 374, 195, 375, 197, 198, 199, 200, 201, 202, 203, 376, 377, 206, 207, 208, 209, 210, 211, 212, 213, 214, 1279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 823, 1280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 381, 382, 41, 42, 43, 383, 45, 46, 384, 824, 49, 50, 51, 52, 53, 54, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 359, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 360, 361, 97, 0, 0, 0, 99, 0, 0, 0, 0, 102, 362, 104, 363, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 364, 365, 118, 366, 120, 0, 121, 367, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 368, 137, 138, 139, 140, 141, 369, 825, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 385, 159, 826, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 372, 186, 187, 373, 189, 190, 191, 192, 193, 374, 195, 375, 197, 198, 199, 200, 201, 202, 203, 376, 377, 206, 207, 208, 209, 210, 211, 212, 213, 214, 582, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 48, 49, 50, 51, 52, 53, 54, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 359, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 360, 361, 97, 0, 0, 0, 99, 0, 0, 0, 0, 102, 362, 104, 363, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 364, 365, 118, 366, 120, 0, 121, 367, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 368, 137, 138, 139, 140, 141, 369, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 370, 159, 371, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 372, 186, 187, 373, 189, 190, 191, 192, 193, 374, 195, 375, 197, 198, 199, 200, 201, 202, 203, 376, 377, 206, 207, 208, 209, 210, 211, 212, 213, 214, 633, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 634, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 48, 49, 50, 51, 52, 53, 54, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 359, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 360, 361, 97, 0, 0, 0, 99, 0, 0, 0, 0, 102, 362, 104, 363, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 364, 365, 118, 366, 120, 0, 121, 367, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 368, 137, 138, 139, 140, 141, 369, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 370, 159, 371, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 372, 186, 187, 373, 189, 190, 191, 192, 193, 374, 195, 375, 197, 198, 199, 200, 201, 202, 203, 376, 377, 206, 207, 208, 209, 210, 211, 212, 213, 214, 823, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 381, 382, 41, 42, 43, 383, 45, 46, 384, 824, 49, 50, 51, 52, 53, 54, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 359, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 360, 361, 97, 0, 0, 0, 99, 0, 0, 0, 0, 102, 362, 104, 363, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 364, 365, 118, 366, 120, 0, 121, 367, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 368, 137, 138, 139, 140, 141, 369, 825, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 385, 159, 826, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 372, 186, 187, 373, 189, 190, 191, 192, 193, 374, 195, 375, 197, 198, 199, 200, 201, 202, 203, 376, 377, 206, 207, 208, 209, 210, 211, 212, 213, 214, 823, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 381, 382, 41, 42, 43, 383, 45, 46, 384, 48, 49, 50, 51, 52, 53, 54, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 359, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 360, 361, 97, 0, 0, 0, 99, 0, 0, 0, 0, 102, 362, 104, 363, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 364, 365, 118, 366, 120, 0, 121, 367, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 368, 137, 138, 139, 140, 141, 369, 825, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 385, 159, 826, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 372, 186, 187, 373, 189, 190, 191, 192, 193, 374, 195, 375, 197, 198, 199, 200, 201, 202, 203, 376, 377, 206, 207, 208, 209, 210, 211, 212, 213, 214, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 48, 49, 50, 51, 52, 53, 54, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 359, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 360, 361, 97, 0, 0, 600, 99, 0, 0, 0, 0, 102, 362, 104, 363, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 364, 365, 118, 366, 120, 0, 121, 367, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 368, 137, 138, 139, 140, 141, 369, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 370, 159, 371, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 372, 186, 187, 373, 189, 190, 191, 192, 193, 374, 195, 375, 197, 198, 199, 200, 201, 202, 203, 376, 377, 206, 207, 208, 209, 210, 211, 212, 213, 214, 338, 339, 340, 341, 342, 343, 344, 345, 346, 48, 49, 50, 51, 52, 53, 54, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 359, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 360, 361, 97, 0, 0, 0, 99, 0, 0, 0, 0, 102, 362, 104, 363, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 364, 365, 118, 366, 120, 0, 121, 367, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 368, 137, 138, 139, 140, 141, 369, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 370, 159, 371, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 372, 186, 187, 373, 189, 190, 191, 192, 193, 374, 195, 375, 197, 198, 199, 200, 201, 202, 203, 376, 377, 206, 207, 208, 209, 210, 211, 212, 213, 214, 49, 50, 51, 52, 53, 54, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 67, 68, 69, 70, 71, 72, 73, 0, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 359, 87, 0, 0, 0, 88, 89, 90, 91, 92, 93, 94, 0, 0, 0, 0, 0, 360, 361, 97, 0, 0, 0, 99, 0, 0, 0, 0, 102, 362, 104, 363, 106, 0, 107, 108, 109, 110, 111, 112, 113, 114, 115, 364, 365, 118, 0, 120, 0, 121, 0, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 368, 137, 138, 139, 140, 141, 369, 0, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 155, 156, 157, 0, 0, 159, 0, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 372, 186, 187, 373, 189, 190, 191, 192, 193, 374, 195, 375, 197, 198, 199, 200, 201, 202, 203, 376, 377, 206, 207, 208, 209, 210, 211, 212, 213, 214, 0, 1230, 0, 0, 758, 759, 760, 761, 0, 762, 0, 0, 763, 0, 0, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 1242, 0, 0, 758, 759, 760, 761, 0, 762, 0, 0, 763, 0, 0, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 1251, 0, 0, 758, 759, 760, 761, 0, 762, 11, 0, 763, 776, 777, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 1253, 0, 0, 758, 759, 760, 761, 0, 762, 11, 0, 763, 776, 777, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 1256, 0, 0, 758, 759, 760, 761, 0, 762, 11, 0, 763, 776, 777, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 1257, 0, 0, 758, 759, 760, 761, 0, 762, 11, 0, 763, 776, 777, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 1262, 0, 0, 758, 759, 760, 761, 0, 762, 11, 0, 763, 776, 777, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 1265, 0, 0, 758, 759, 760, 761, 0, 762, 11, 0, 763, 776, 777, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 1268, 0, 0, 758, 759, 760, 761, 0, 762, 11, 0, 763, 776, 777, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 1270, 0, 0, 758, 759, 760, 761, 0, 762, 11, 0, 763, 776, 777, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 1272, 0, 0, 758, 759, 760, 761, 0, 762, 11, 0, 763, 776, 777, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 1400, 0, 0, 758, 759, 760, 761, 0, 762, 11, 0, 763, 776, 777, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 1401, 0, 0, 758, 759, 760, 761, 0, 762, 11, 0, 763, 776, 777, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 1406, 0, 0, 758, 759, 760, 761, 0, 762, 11, 0, 763, 776, 777, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 1412, 0, 0, 758, 759, 760, 761, 0, 762, 11, 0, 763, 776, 777, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 1505, 0, 0, 758, 759, 760, 761, 0, 762, 11, 0, 763, 776, 777, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 1506, 0, 0, 758, 759, 760, 761, 0, 762, 11, 0, 763, 776, 777, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 1509, 0, 0, 758, 759, 760, 761, 0, 762, 11, 0, 763, 776, 777, 764, 765, 766, 767, 768, 769, 770, 771, 772, 0, 0, 773, 774, 775, 1510, 0, 0, 758, 759, 760, 761, 0, 762, 11, 0, 763, 776, 777, 764, 765, 766, 767, 768, 769, 770, 771, 772, 985, 0, 773, 774, 775, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 776, 777, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 986, 0, 987, 988, 989, 990, 991, 992, 993, 0, 0, 0, 11, 0, 0, 776, 777, 994, 995, 996, 997, 998, 999, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1000, 1001, 1002 }; static const yytype_int16 yycheck[] = { 22, 160, 24, 500, 575, 618, 243, 620, 962, 6, 623, 1099, 63, 669, 531, 410, 669, 1167, 24, 639, 1142, 538, 539, 540, 1327, 542, 543, 544, 1347, 122, 401, 501, 502, 503, 504, 552, 35, 554, 22, 28, 557, 897, 40, 414, 415, 9, 430, 40, 640, 1371, 48, 435, 122, 33, 438, 59, 59, 1385, 442, 726, 727, 681, 682, 11, 122, 1273, 12, 32, 10, 41, 749, 122, 751, 34, 35, 40, 12, 32, 1188, 48, 9, 40, 453, 48, 49, 40, 9, 52, 53, 54, 62, 1487, 48, 48, 34, 35, 9, 52, 53, 54, 50, 119, 781, 152, 34, 35, 720, 45, 40, 40, 48, 725, 791, 47, 48, 19, 48, 796, 119, 798, 40, 800, 70, 802, 40, 804, 101, 806, 48, 808, 33, 248, 105, 812, 59, 814, 40, 532, 225, 52, 53, 54, 24, 125, 48, 27, 28, 32, 280, 31, 573, 818, 12, 240, 296, 114, 298, 130, 33, 115, 125, 280, 45, 48, 1372, 48, 48, 9, 1471, 144, 125, 114, 19, 222, 223, 307, 293, 115, 21, 104, 40, 230, 116, 114, 303, 569, 303, 205, 48, 1585, 707, 173, 124, 211, 212, 131, 125, 40, 114, 41, 161, 48, 573, 190, 124, 819, 175, 820, 131, 1417, 211, 212, 125, 0, 162, 163, 639, 1171, 164, 191, 124, 161, 226, 226, 183, 318, 176, 320, 1550, 1557, 194, 253, 115, 175, 256, 117, 118, 621, 231, 219, 183, 897, 240, 899, 897, 148, 899, 253, 318, 319, 256, 244, 245, 246, 247, 1574, 1112, 246, 681, 682, 318, 319, 929, 1385, 1386, 649, 249, 183, 639, 125, 321, 322, 323, 148, 1577, 9, 943, 124, 243, 1389, 1390, 1391, 1392, 213, 214, 215, 150, 19, 243, 68, 69, 970, 959, 33, 279, 974, 47, 48, 40, 3, 4, 5, 6, 7, 8, 327, 48, 41, 40, 49, 681, 682, 683, 684, 280, 23, 458, 173, 303, 183, 462, 95, 717, 102, 466, 467, 468, 183, 325, 471, 313, 48, 1011, 41, 1484, 30, 302, 303, 271, 32, 114, 36, 138, 327, 1023, 280, 120, 40, 968, 145, 1472, 68, 69, 973, 248, 48, 250, 1445, 978, 52, 53, 54, 982, 257, 258, 116, 11, 180, 303, 263, 303, 306, 307, 395, 25, 308, 309, 303, 23, 401, 306, 523, 276, 277, 526, 33, 192, 193, 410, 34, 40, 42, 414, 415, 33, 191, 192, 193, 48, 33, 823, 49, 44, 402, 46, 33, 280, 406, 430, 1029, 49, 395, 411, 435, 280, 49, 438, 1539, 417, 173, 442, 49, 196, 197, 198, 231, 410, 201, 202, 303, 429, 453, 125, 278, 433, 434, 302, 303, 244, 245, 246, 247, 287, 465, 33, 1065, 430, 446, 447, 448, 280, 435, 823, 33, 438, 454, 1112, 1579, 442, 1112, 49, 33, 292, 1119, 33, 1121, 1119, 40, 1121, 49, 129, 842, 302, 615, 33, 280, 33, 49, 51, 33, 49, 465, 41, 625, 626, 290, 291, 1154, 33, 248, 1157, 1158, 49, 279, 280, 49, 255, 302, 303, 1070, 1071, 1014, 248, 180, 49, 1172, 176, 878, 650, 255, 532, 188, 1025, 1026, 513, 301, 302, 187, 304, 518, 519, 1034, 1201, 522, 22, 1038, 33, 1040, 1041, 33, 1043, 33, 22, 1046, 1047, 33, 1490, 41, 33, 41, 1153, 1058, 49, 33, 1223, 968, 107, 569, 532, 32, 973, 573, 936, 280, 49, 978, 698, 699, 700, 982, 1239, 280, 957, 290, 291, 48, 961, 22, 1247, 1161, 567, 290, 1251, 33, 33, 302, 303, 33, 33, 33, 22, 41, 105, 302, 303, 569, 33, 41, 33, 588, 49, 33, 33, 49, 41, 220, 41, 968, 19, 621, 41, 33, 973, 228, 603, 33, 1029, 978, 33, 41, 40, 982, 85, 41, 1131, 88, 41, 639, 91, 92, 93, 94, 33, 171, 40, 33, 33, 649, 33, 177, 41, 630, 631, 41, 41, 19, 41, 621, 65, 66, 67, 33, 1065, 482, 483, 484, 485, 486, 487, 41, 489, 490, 491, 492, 493, 494, 495, 496, 1029, 681, 682, 683, 684, 900, 186, 649, 131, 132, 190, 134, 135, 136, 40, 138, 139, 1295, 30, 1333, 151, 1299, 1333, 1348, 36, 30, 236, 44, 452, 46, 240, 36, 456, 122, 123, 1285, 1065, 717, 208, 209, 210, 126, 722, 91, 92, 93, 94, 40, 52, 53, 54, 40, 1377, 1378, 185, 213, 214, 215, 164, 859, 166, 165, 166, 314, 315, 105, 106, 189, 190, 34, 35, 19, 203, 204, 19, 717, 207, 171, 172, 19, 722, 120, 121, 19, 884, 885, 886, 19, 173, 171, 172, 288, 289, 316, 317, 895, 181, 182, 183, 184, 185, 293, 294, 122, 123, 140, 141, 19, 260, 261, 86, 87, 86, 87, 143, 144, 178, 179, 19, 1397, 920, 1371, 19, 1448, 19, 143, 144, 99, 100, 216, 217, 1409, 48, 498, 499, 505, 506, 817, 9, 224, 48, 1419, 1420, 823, 507, 508, 30, 31, 1473, 234, 1581, 1582, 516, 517, 683, 684, 48, 9, 9, 40, 40, 40, 842, 660, 234, 59, 1416, 239, 33, 156, 1441, 1326, 157, 195, 12, 158, 160, 169, 168, 21, 1335, 1336, 21, 190, 180, 173, 152, 40, 29, 48, 40, 40, 1320, 1422, 1423, 40, 40, 9, 878, 152, 48, 41, 40, 33, 1482, 41, 41, 41, 33, 889, 48, 48, 159, 9, 1295, 48, 137, 63, 1299, 138, 159, 152, 152, 152, 52, 882, 125, 125, 50, 37, 105, 41, 106, 1483, 41, 41, 41, 1515, 1488, 41, 1057, 898, 41, 1557, 10, 48, 1288, 889, 225, 152, 59, 137, 1294, 37, 225, 84, 936, 125, 9, 303, 260, 9, 1512, 40, 1306, 280, 1295, 248, 305, 248, 1299, 303, 303, 953, 130, 40, 956, 957, 40, 10, 1080, 961, 10, 1083, 1084, 1085, 133, 967, 968, 1518, 1090, 114, 150, 973, 936, 40, 40, 154, 978, 131, 1550, 1551, 982, 967, 1104, 90, 33, 241, 1463, 1464, 83, 953, 199, 23, 242, 957, 1397, 230, 37, 961, 230, 84, 979, 142, 33, 125, 983, 191, 1409, 1129, 1130, 235, 114, 289, 288, 257, 1511, 248, 1419, 1420, 41, 122, 1592, 1593, 1594, 1595, 173, 173, 305, 1029, 1007, 1168, 272, 41, 1604, 1012, 1013, 41, 41, 9, 1017, 9, 225, 194, 9, 225, 142, 1024, 1397, 41, 213, 97, 96, 1030, 133, 1032, 125, 33, 1035, 1059, 1409, 1536, 1039, 37, 173, 1065, 1561, 1044, 1430, 213, 1419, 1420, 1434, 33, 1051, 37, 19, 40, 1055, 40, 12, 1482, 122, 41, 43, 152, 43, 9, 133, 155, 248, 41, 40, 251, 252, 253, 254, 49, 256, 257, 200, 259, 145, 96, 262, 263, 264, 265, 266, 267, 268, 269, 270, 248, 1515, 273, 274, 275, 213, 125, 152, 279, 280, 65, 66, 67, 13, 14, 15, 16, 17, 18, 235, 1482, 248, 21, 152, 24, 1275, 1139, 152, 41, 33, 301, 302, 131, 304, 10, 206, 26, 37, 41, 206, 4, 747, 313, 1002, 3, 316, 317, 114, 759, 1020, 1387, 1009, 530, 1515, 1167, 1366, 821, 219, 619, 622, 895, 1104, 624, 117, 1139, 318, 1179, 1300, 318, 1087, 1167, 126, 1305, 322, 321, 1188, 1325, 480, 1285, 481, 526, 920, 1179, 1424, 142, 684, 823, 453, 414, 407, 878, 1188, 407, 1121, 1333, 899, 1315, 1457, 1329, 908, 1119, 1152, 1470, 1475, 614, 1370, 1442, 1161, 108, 109, 110, 111, 112, 113, -1, -1, -1, -1, 173, -1, -1, -1, -1, -1, -1, -1, 181, 182, 183, 184, 185, -1, 1222, -1, -1, -1, -1, 192, 193, 248, -1, -1, 251, 252, 253, 254, -1, 256, -1, -1, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, -1, -1, 224, 170, -1, -1, -1, -1, 1288, 231, -1, -1, 234, -1, 1294, 1295, -1, -1, -1, 1299, -1, -1, 244, 245, 246, 247, 1306, -1, -1, -1, -1, 1431, -1, -1, -1, 1435, -1, 313, 1438, -1, 316, 317, -1, -1, -1, -1, 1288, -1, -1, -1, -1, -1, 1294, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1306, 248, -1, -1, 251, 252, 253, 254, -1, 256, -1, -1, 259, 1477, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1383, 1384, -1, -1, 1387, -1, 1389, 1390, 1391, 1392, -1, -1, -1, -1, 1397, -1, 1383, 1384, -1, -1, 1387, -1, 1389, 1390, 1391, 1392, 1409, 313, -1, -1, 316, 317, -1, -1, -1, -1, 1419, 1420, 1398, -1, -1, -1, -1, -1, -1, -1, -1, 1430, -1, -1, 1410, 1434, -1, -1, -1, 248, -1, -1, 251, 252, 253, 254, -1, 256, -1, -1, 259, 1570, 1571, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, -1, -1, 1430, -1, -1, -1, 1434, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1482, -1, 1484, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1484, -1, -1, 313, -1, -1, 316, 317, -1, -1, -1, -1, -1, -1, -1, 1515, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1502, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, -1, 126, -1, -1, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 251, 252, 253, 254, -1, 256, -1, -1, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, -1, -1, -1, -1, 9, -1, 11, -1, -1, -1, -1, -1, -1, -1, -1, 20, -1, -1, 23, 24, -1, -1, 27, 28, -1, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 313, -1, -1, 316, 317, -1, -1, 318, -1, 320, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, 125, 126, 127, 128, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 9, -1, 11, -1, -1, -1, -1, -1, -1, -1, -1, 20, -1, -1, 23, 24, -1, -1, 27, 28, -1, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, 125, 126, 127, 128, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 9, -1, 11, -1, -1, -1, -1, -1, -1, -1, -1, 20, -1, -1, -1, 24, -1, -1, 27, 28, -1, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, 125, 126, 127, 128, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 9, -1, 11, -1, -1, -1, -1, -1, -1, -1, -1, 20, -1, -1, -1, 24, -1, -1, 27, 28, -1, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, -1, -1, -1, -1, -1, -1, -1, -1, 49, -1, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, 125, 126, 127, 128, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 9, -1, 11, -1, -1, -1, -1, -1, -1, -1, -1, 20, -1, -1, -1, 24, -1, -1, 27, 28, -1, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, -1, -1, -1, -1, -1, -1, -1, -1, 49, -1, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, 125, 126, 127, 128, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 9, -1, 11, -1, -1, -1, -1, -1, -1, -1, -1, 20, -1, -1, -1, 24, -1, -1, 27, 28, -1, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, -1, -1, -1, -1, -1, -1, -1, -1, 49, -1, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, 125, 126, 127, 128, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 9, -1, 11, -1, -1, -1, -1, -1, -1, -1, -1, 20, -1, -1, 23, 24, -1, -1, 27, 28, -1, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, 125, 126, 127, 128, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 9, -1, 11, -1, -1, -1, -1, -1, -1, -1, -1, 20, -1, -1, -1, 24, -1, -1, 27, 28, -1, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, 125, 126, 127, 128, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 9, -1, 11, -1, -1, -1, -1, -1, -1, -1, -1, 20, -1, -1, -1, 24, -1, -1, 27, 28, -1, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, 125, 126, 127, 128, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 9, -1, 11, -1, -1, -1, -1, -1, -1, -1, -1, 20, -1, -1, -1, 24, -1, -1, 27, 28, -1, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, 125, 126, 127, 128, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 9, -1, 11, -1, -1, -1, -1, -1, -1, -1, -1, 20, -1, -1, -1, 24, -1, -1, 27, 28, -1, -1, -1, -1, -1, -1, -1, -1, -1, 38, 39, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, 125, 126, 127, 128, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 11, -1, -1, -1, -1, -1, -1, -1, -1, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, 30, -1, -1, -1, -1, -1, 36, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, -1, 126, 127, 128, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 11, -1, -1, -1, -1, -1, -1, -1, -1, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, -1, 126, 127, 128, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, -1, 126, 127, 128, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 40, 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, -1, 126, -1, -1, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, -1, 126, -1, -1, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, -1, 126, -1, -1, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, -1, 126, -1, -1, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, -1, 126, -1, -1, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, 125, 126, -1, -1, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, -1, 126, -1, -1, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, -1, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, -1, -1, -1, -1, -1, 120, 121, 122, -1, -1, -1, 126, -1, -1, -1, -1, 131, 132, 133, 134, 135, -1, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, -1, 150, -1, 152, -1, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, -1, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, -1, 187, 188, 189, -1, -1, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, -1, 248, -1, -1, 251, 252, 253, 254, -1, 256, -1, -1, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, 248, -1, -1, 251, 252, 253, 254, -1, 256, -1, -1, 259, -1, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, 248, -1, -1, 251, 252, 253, 254, -1, 256, 313, -1, 259, 316, 317, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, 248, -1, -1, 251, 252, 253, 254, -1, 256, 313, -1, 259, 316, 317, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, 248, -1, -1, 251, 252, 253, 254, -1, 256, 313, -1, 259, 316, 317, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, 248, -1, -1, 251, 252, 253, 254, -1, 256, 313, -1, 259, 316, 317, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, 248, -1, -1, 251, 252, 253, 254, -1, 256, 313, -1, 259, 316, 317, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, 248, -1, -1, 251, 252, 253, 254, -1, 256, 313, -1, 259, 316, 317, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, 248, -1, -1, 251, 252, 253, 254, -1, 256, 313, -1, 259, 316, 317, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, 248, -1, -1, 251, 252, 253, 254, -1, 256, 313, -1, 259, 316, 317, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, 248, -1, -1, 251, 252, 253, 254, -1, 256, 313, -1, 259, 316, 317, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, 248, -1, -1, 251, 252, 253, 254, -1, 256, 313, -1, 259, 316, 317, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, 248, -1, -1, 251, 252, 253, 254, -1, 256, 313, -1, 259, 316, 317, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, 248, -1, -1, 251, 252, 253, 254, -1, 256, 313, -1, 259, 316, 317, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, 248, -1, -1, 251, 252, 253, 254, -1, 256, 313, -1, 259, 316, 317, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, 248, -1, -1, 251, 252, 253, 254, -1, 256, 313, -1, 259, 316, 317, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, 248, -1, -1, 251, 252, 253, 254, -1, 256, 313, -1, 259, 316, 317, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, 248, -1, -1, 251, 252, 253, 254, -1, 256, 313, -1, 259, 316, 317, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, -1, 273, 274, 275, 248, -1, -1, 251, 252, 253, 254, -1, 256, 313, -1, 259, 316, 317, 262, 263, 264, 265, 266, 267, 268, 269, 270, 248, -1, 273, 274, 275, -1, -1, -1, -1, -1, -1, -1, -1, -1, 313, -1, -1, 316, 317, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 278, -1, 280, 281, 282, 283, 284, 285, 286, -1, -1, -1, 313, -1, -1, 316, 317, 295, 296, 297, 298, 299, 300, -1, -1, -1, -1, -1, -1, -1, -1, -1, 310, 311, 312 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint16 yystos[] = { 0, 3, 4, 5, 6, 7, 8, 325, 326, 327, 249, 313, 335, 336, 358, 327, 190, 331, 332, 330, 453, 0, 9, 11, 20, 24, 27, 28, 30, 32, 34, 35, 36, 38, 39, 40, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 108, 109, 110, 111, 112, 113, 114, 120, 121, 122, 125, 126, 127, 128, 131, 132, 133, 134, 135, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 187, 188, 189, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 460, 461, 462, 463, 464, 465, 467, 472, 483, 486, 492, 493, 494, 495, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 536, 537, 538, 539, 540, 543, 544, 545, 556, 558, 560, 561, 562, 565, 567, 568, 569, 570, 580, 581, 582, 583, 584, 585, 586, 587, 589, 591, 593, 634, 635, 636, 637, 638, 639, 640, 643, 644, 645, 646, 648, 655, 656, 660, 661, 662, 663, 669, 670, 186, 190, 419, 420, 423, 424, 425, 426, 337, 359, 180, 328, 173, 333, 40, 231, 244, 245, 246, 247, 451, 454, 455, 55, 56, 57, 58, 59, 60, 61, 62, 63, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 103, 120, 121, 132, 134, 146, 147, 149, 153, 167, 173, 191, 193, 218, 221, 227, 229, 237, 238, 535, 669, 670, 55, 56, 60, 63, 191, 527, 122, 123, 546, 129, 107, 557, 516, 105, 548, 507, 507, 41, 461, 19, 40, 48, 124, 566, 40, 48, 40, 40, 40, 40, 48, 124, 571, 40, 40, 40, 48, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 48, 9, 641, 642, 48, 48, 9, 468, 469, 9, 194, 473, 474, 9, 484, 485, 484, 40, 40, 48, 68, 69, 19, 571, 40, 48, 124, 563, 451, 59, 104, 59, 226, 59, 59, 226, 234, 239, 33, 131, 132, 134, 135, 136, 138, 139, 465, 466, 475, 476, 477, 156, 157, 13, 14, 15, 16, 17, 18, 24, 37, 108, 109, 110, 111, 112, 113, 170, 195, 34, 35, 161, 11, 70, 162, 163, 12, 164, 165, 166, 158, 169, 160, 168, 48, 512, 516, 30, 36, 21, 21, 527, 527, 21, 40, 462, 462, 40, 51, 176, 187, 421, 422, 173, 423, 424, 426, 180, 188, 427, 428, 430, 431, 432, 433, 434, 435, 436, 437, 440, 441, 442, 445, 446, 448, 449, 460, 633, 649, 278, 287, 338, 314, 315, 361, 453, 647, 669, 180, 334, 9, 41, 457, 458, 152, 456, 547, 105, 106, 559, 29, 669, 41, 11, 41, 588, 595, 648, 461, 48, 564, 41, 461, 41, 62, 191, 591, 593, 41, 41, 41, 125, 647, 461, 48, 572, 590, 595, 594, 596, 648, 41, 461, 461, 535, 33, 219, 461, 461, 535, 33, 535, 9, 33, 535, 33, 148, 148, 461, 461, 461, 48, 48, 564, 11, 41, 592, 596, 461, 564, 152, 575, 462, 159, 462, 669, 462, 462, 462, 462, 9, 137, 138, 494, 495, 497, 497, 497, 497, 497, 497, 496, 497, 497, 497, 497, 497, 497, 497, 497, 63, 500, 500, 499, 501, 501, 501, 501, 502, 502, 503, 503, 159, 152, 152, 152, 49, 461, 517, 517, 461, 461, 461, 23, 41, 462, 541, 542, 152, 222, 223, 230, 41, 541, 52, 125, 125, 50, 422, 429, 429, 647, 180, 188, 65, 66, 67, 126, 173, 181, 182, 183, 184, 185, 224, 234, 453, 189, 190, 429, 429, 429, 429, 429, 429, 429, 429, 429, 248, 250, 257, 258, 263, 276, 277, 339, 340, 343, 344, 348, 349, 350, 351, 352, 353, 356, 357, 360, 248, 251, 252, 253, 254, 256, 259, 262, 263, 264, 265, 266, 267, 268, 269, 270, 273, 274, 275, 316, 317, 358, 362, 363, 364, 365, 366, 367, 368, 371, 372, 376, 377, 378, 379, 380, 385, 386, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 192, 193, 450, 37, 453, 535, 33, 41, 40, 64, 174, 193, 576, 578, 579, 580, 648, 664, 665, 666, 668, 105, 548, 106, 105, 130, 513, 33, 41, 49, 49, 461, 49, 41, 41, 41, 41, 49, 49, 461, 41, 41, 49, 49, 10, 642, 462, 49, 49, 575, 469, 575, 535, 474, 575, 485, 462, 462, 41, 41, 49, 461, 461, 33, 41, 49, 576, 48, 459, 225, 59, 152, 225, 225, 240, 535, 462, 478, 479, 480, 137, 497, 40, 48, 243, 511, 532, 599, 602, 603, 604, 605, 606, 607, 608, 609, 576, 576, 573, 579, 573, 49, 22, 22, 22, 33, 41, 220, 228, 462, 462, 462, 41, 429, 37, 171, 172, 84, 616, 125, 598, 9, 647, 171, 172, 120, 121, 138, 145, 191, 450, 171, 177, 438, 669, 68, 69, 102, 236, 240, 652, 450, 173, 183, 444, 598, 173, 598, 288, 289, 279, 280, 301, 302, 304, 345, 280, 292, 302, 345, 280, 290, 291, 302, 303, 361, 280, 302, 303, 361, 248, 278, 280, 281, 282, 283, 284, 285, 286, 295, 296, 297, 298, 299, 300, 310, 311, 312, 248, 115, 459, 366, 303, 260, 381, 382, 383, 305, 303, 306, 361, 279, 303, 370, 280, 373, 248, 361, 271, 303, 308, 309, 387, 280, 302, 303, 361, 303, 361, 280, 303, 361, 361, 280, 303, 306, 307, 361, 280, 303, 361, 280, 307, 361, 248, 293, 303, 293, 294, 361, 303, 361, 670, 598, 450, 575, 458, 578, 40, 40, 40, 11, 23, 34, 577, 122, 123, 25, 42, 130, 597, 648, 49, 49, 462, 131, 114, 470, 10, 10, 133, 150, 487, 489, 490, 154, 49, 49, 597, 461, 462, 462, 462, 40, 40, 318, 320, 657, 669, 33, 140, 141, 481, 478, 599, 461, 606, 48, 208, 209, 210, 610, 90, 632, 241, 601, 242, 83, 616, 199, 611, 23, 574, 542, 230, 230, 598, 85, 88, 91, 92, 93, 94, 151, 185, 203, 204, 207, 617, 618, 619, 620, 621, 624, 629, 630, 631, 84, 535, 37, 142, 598, 173, 173, 33, 125, 669, 122, 318, 319, 653, 654, 235, 670, 647, 191, 598, 114, 443, 647, 443, 289, 288, 341, 20, 30, 36, 55, 71, 232, 233, 409, 410, 411, 412, 415, 416, 417, 527, 576, 52, 53, 54, 342, 257, 346, 347, 361, 576, 361, 576, 461, 248, 576, 461, 248, 63, 122, 321, 322, 323, 354, 122, 355, 355, 248, 461, 305, 261, 382, 384, 361, 461, 461, 360, 248, 122, 318, 320, 369, 461, 248, 255, 374, 375, 248, 374, 248, 361, 461, 360, 360, 272, 388, 576, 461, 248, 461, 248, 360, 461, 248, 248, 360, 461, 360, 360, 248, 360, 461, 248, 360, 360, 248, 461, 248, 461, 248, 451, 429, 670, 41, 41, 41, 11, 41, 576, 667, 548, 548, 555, 41, 462, 9, 194, 471, 462, 462, 462, 9, 491, 183, 488, 489, 12, 131, 462, 23, 41, 49, 225, 9, 658, 659, 658, 225, 479, 142, 482, 41, 49, 49, 599, 97, 213, 96, 603, 95, 114, 120, 196, 197, 198, 201, 202, 600, 613, 604, 133, 119, 211, 212, 612, 462, 462, 429, 91, 92, 93, 94, 86, 87, 40, 114, 183, 623, 213, 86, 87, 669, 646, 617, 575, 598, 143, 144, 598, 598, 178, 179, 439, 40, 459, 651, 652, 33, 409, 451, 37, 173, 443, 598, 33, 37, 122, 318, 319, 527, 19, 19, 40, 40, 12, 416, 30, 36, 30, 36, 418, 280, 290, 291, 302, 303, 361, 248, 248, 122, 461, 361, 248, 248, 280, 290, 302, 303, 361, 248, 361, 248, 361, 456, 451, 41, 152, 33, 41, 43, 43, 31, 117, 118, 459, 544, 535, 9, 133, 535, 576, 9, 131, 576, 462, 155, 41, 462, 535, 33, 41, 41, 40, 143, 144, 145, 610, 49, 501, 96, 99, 100, 498, 499, 612, 216, 217, 615, 615, 605, 101, 144, 499, 499, 200, 213, 183, 623, 598, 40, 114, 183, 626, 125, 10, 175, 447, 41, 457, 152, 650, 235, 654, 459, 651, 456, 598, 598, 527, 527, 413, 534, 646, 646, 410, 416, 416, 416, 416, 21, 576, 461, 248, 248, 576, 461, 248, 248, 459, 456, 576, 576, 152, 548, 548, 546, 535, 462, 152, 535, 462, 462, 575, 659, 658, 598, 213, 214, 215, 614, 614, 499, 499, 161, 622, 622, 205, 612, 627, 646, 598, 625, 625, 462, 41, 576, 459, 409, 650, 175, 452, 459, 443, 41, 33, 461, 329, 429, 459, 576, 44, 46, 549, 44, 46, 550, 548, 131, 10, 41, 499, 33, 41, 41, 646, 206, 33, 41, 164, 166, 628, 459, 651, 459, 414, 532, 534, 22, 429, 551, 553, 552, 554, 26, 462, 462, 623, 612, 646, 626, 626, 650, 41, 45, 115, 459, 47, 116, 459, 45, 115, 459, 47, 116, 459, 206, 459 }; #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) #define YYEMPTY (-2) #define YYEOF 0 #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab #define YYERROR goto yyerrorlab /* Like YYERROR except do call yyerror. This remains here temporarily to ease the transition to the new meaning of YYERROR, for GCC. Once GCC version 2 has supplanted version 1, this can go. */ #define YYFAIL goto yyerrlab #define YYRECOVERING() (!!yyerrstatus) #define YYBACKUP(Token, Value) \ do \ if (yychar == YYEMPTY && yylen == 1) \ { \ yychar = (Token); \ yylval = (Value); \ yytoken = YYTRANSLATE (yychar); \ YYPOPSTACK (1); \ goto yybackup; \ } \ else \ { \ yyerror (YY_("syntax error: cannot back up")); \ YYERROR; \ } \ while (YYID (0)) #define YYTERROR 1 #define YYERRCODE 256 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. If N is 0, then set CURRENT to the empty location which ends the previous symbol: RHS[0] (always defined). */ #define YYRHSLOC(Rhs, K) ((Rhs)[K]) #ifndef YYLLOC_DEFAULT # define YYLLOC_DEFAULT(Current, Rhs, N) \ do \ if (YYID (N)) \ { \ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ } \ else \ { \ (Current).first_line = (Current).last_line = \ YYRHSLOC (Rhs, 0).last_line; \ (Current).first_column = (Current).last_column = \ YYRHSLOC (Rhs, 0).last_column; \ } \ while (YYID (0)) #endif /* YY_LOCATION_PRINT -- Print the location on the stream. This macro was not mandated originally: define only if we know we won't break user code: when these are the locations we know. */ #ifndef YY_LOCATION_PRINT # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL # define YY_LOCATION_PRINT(File, Loc) \ fprintf (File, "%d.%d-%d.%d", \ (Loc).first_line, (Loc).first_column, \ (Loc).last_line, (Loc).last_column) # else # define YY_LOCATION_PRINT(File, Loc) ((void) 0) # endif #endif /* YYLEX -- calling `yylex' with the right arguments. */ #ifdef YYLEX_PARAM # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM) #else # define YYLEX yylex (&yylval, &yylloc) #endif /* Enable debugging if requested. */ #if YYDEBUG # ifndef YYFPRINTF # include /* INFRINGES ON USER NAME SPACE */ # define YYFPRINTF fprintf # endif # define YYDPRINTF(Args) \ do { \ if (yydebug) \ YYFPRINTF Args; \ } while (YYID (0)) # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ do { \ if (yydebug) \ { \ YYFPRINTF (stderr, "%s ", Title); \ yy_symbol_print (stderr, \ Type, Value, Location); \ YYFPRINTF (stderr, "\n"); \ } \ } while (YYID (0)) /*--------------------------------. | Print this symbol on YYOUTPUT. | `--------------------------------*/ /*ARGSUSED*/ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp) #else static void yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp) FILE *yyoutput; int yytype; YYSTYPE const * const yyvaluep; YYLTYPE const * const yylocationp; #endif { if (!yyvaluep) return; YYUSE (yylocationp); # ifdef YYPRINT if (yytype < YYNTOKENS) YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); # else YYUSE (yyoutput); # endif switch (yytype) { default: break; } } /*--------------------------------. | Print this symbol on YYOUTPUT. | `--------------------------------*/ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp) #else static void yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp) FILE *yyoutput; int yytype; YYSTYPE const * const yyvaluep; YYLTYPE const * const yylocationp; #endif { if (yytype < YYNTOKENS) YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); else YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); YY_LOCATION_PRINT (yyoutput, *yylocationp); YYFPRINTF (yyoutput, ": "); yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp); YYFPRINTF (yyoutput, ")"); } /*------------------------------------------------------------------. | yy_stack_print -- Print the state stack from its BOTTOM up to its | | TOP (included). | `------------------------------------------------------------------*/ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void yy_stack_print (yytype_int16 *bottom, yytype_int16 *top) #else static void yy_stack_print (bottom, top) yytype_int16 *bottom; yytype_int16 *top; #endif { YYFPRINTF (stderr, "Stack now"); for (; bottom <= top; ++bottom) YYFPRINTF (stderr, " %d", *bottom); YYFPRINTF (stderr, "\n"); } # define YY_STACK_PRINT(Bottom, Top) \ do { \ if (yydebug) \ yy_stack_print ((Bottom), (Top)); \ } while (YYID (0)) /*------------------------------------------------. | Report that the YYRULE is going to be reduced. | `------------------------------------------------*/ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule) #else static void yy_reduce_print (yyvsp, yylsp, yyrule) YYSTYPE *yyvsp; YYLTYPE *yylsp; int yyrule; #endif { int yynrhs = yyr2[yyrule]; int yyi; unsigned long int yylno = yyrline[yyrule]; YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { fprintf (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], &(yyvsp[(yyi + 1) - (yynrhs)]) , &(yylsp[(yyi + 1) - (yynrhs)]) ); fprintf (stderr, "\n"); } } # define YY_REDUCE_PRINT(Rule) \ do { \ if (yydebug) \ yy_reduce_print (yyvsp, yylsp, Rule); \ } while (YYID (0)) /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ # define YYDPRINTF(Args) # define YY_SYMBOL_PRINT(Title, Type, Value, Location) # define YY_STACK_PRINT(Bottom, Top) # define YY_REDUCE_PRINT(Rule) #endif /* !YYDEBUG */ /* YYINITDEPTH -- initial size of the parser's stacks. */ #ifndef YYINITDEPTH # define YYINITDEPTH 200 #endif /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only if the built-in stack extension method is used). Do not make this value too large; the results are undefined if YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) evaluated with infinite-precision integer arithmetic. */ #ifndef YYMAXDEPTH # define YYMAXDEPTH 10000 #endif #if YYERROR_VERBOSE # ifndef yystrlen # if defined __GLIBC__ && defined _STRING_H # define yystrlen strlen # else /* Return the length of YYSTR. */ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static YYSIZE_T yystrlen (const char *yystr) #else static YYSIZE_T yystrlen (yystr) const char *yystr; #endif { YYSIZE_T yylen; for (yylen = 0; yystr[yylen]; yylen++) continue; return yylen; } # endif # endif # ifndef yystpcpy # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE # define yystpcpy stpcpy # else /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in YYDEST. */ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static char * yystpcpy (char *yydest, const char *yysrc) #else static char * yystpcpy (yydest, yysrc) char *yydest; const char *yysrc; #endif { char *yyd = yydest; const char *yys = yysrc; while ((*yyd++ = *yys++) != '\0') continue; return yyd - 1; } # endif # endif # ifndef yytnamerr /* Copy to YYRES the contents of YYSTR after stripping away unnecessary quotes and backslashes, so that it's suitable for yyerror. The heuristic is that double-quoting is unnecessary unless the string contains an apostrophe, a comma, or backslash (other than backslash-backslash). YYSTR is taken from yytname. If YYRES is null, do not copy; instead, return the length of what the result would have been. */ static YYSIZE_T yytnamerr (char *yyres, const char *yystr) { if (*yystr == '"') { YYSIZE_T yyn = 0; char const *yyp = yystr; for (;;) switch (*++yyp) { case '\'': case ',': goto do_not_strip_quotes; case '\\': if (*++yyp != '\\') goto do_not_strip_quotes; /* Fall through. */ default: if (yyres) yyres[yyn] = *yyp; yyn++; break; case '"': if (yyres) yyres[yyn] = '\0'; return yyn; } do_not_strip_quotes: ; } if (! yyres) return yystrlen (yystr); return yystpcpy (yyres, yystr) - yyres; } # endif /* Copy into YYRESULT an error message about the unexpected token YYCHAR while in state YYSTATE. Return the number of bytes copied, including the terminating null byte. If YYRESULT is null, do not copy anything; just return the number of bytes that would be copied. As a special case, return 0 if an ordinary "syntax error" message will do. Return YYSIZE_MAXIMUM if overflow occurs during size calculation. */ static YYSIZE_T yysyntax_error (char *yyresult, int yystate, int yychar) { int yyn = yypact[yystate]; if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) return 0; else { int yytype = YYTRANSLATE (yychar); YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); YYSIZE_T yysize = yysize0; YYSIZE_T yysize1; int yysize_overflow = 0; enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; int yyx; # if 0 /* This is so xgettext sees the translatable formats that are constructed on the fly. */ YY_("syntax error, unexpected %s"); YY_("syntax error, unexpected %s, expecting %s"); YY_("syntax error, unexpected %s, expecting %s or %s"); YY_("syntax error, unexpected %s, expecting %s or %s or %s"); YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); # endif char *yyfmt; char const *yyf; static char const yyunexpected[] = "syntax error, unexpected %s"; static char const yyexpecting[] = ", expecting %s"; static char const yyor[] = " or %s"; char yyformat[sizeof yyunexpected + sizeof yyexpecting - 1 + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) * (sizeof yyor - 1))]; char const *yyprefix = yyexpecting; /* Start YYX at -YYN if negative to avoid negative indexes in YYCHECK. */ int yyxbegin = yyn < 0 ? -yyn : 0; /* Stay within bounds of both yycheck and yytname. */ int yychecklim = YYLAST - yyn + 1; int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; int yycount = 1; yyarg[0] = yytname[yytype]; yyfmt = yystpcpy (yyformat, yyunexpected); for (yyx = yyxbegin; yyx < yyxend; ++yyx) if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) { if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) { yycount = 1; yysize = yysize0; yyformat[sizeof yyunexpected - 1] = '\0'; break; } yyarg[yycount++] = yytname[yyx]; yysize1 = yysize + yytnamerr (0, yytname[yyx]); yysize_overflow |= (yysize1 < yysize); yysize = yysize1; yyfmt = yystpcpy (yyfmt, yyprefix); yyprefix = yyor; } yyf = YY_(yyformat); yysize1 = yysize + yystrlen (yyf); yysize_overflow |= (yysize1 < yysize); yysize = yysize1; if (yysize_overflow) return YYSIZE_MAXIMUM; if (yyresult) { /* Avoid sprintf, as that infringes on the user's name space. Don't have undefined behavior even if the translation produced a string with the wrong number of "%s"s. */ char *yyp = yyresult; int yyi = 0; while ((*yyp = *yyf) != '\0') { if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) { yyp += yytnamerr (yyp, yyarg[yyi++]); yyf += 2; } else { yyp++; yyf++; } } } return yysize; } } #endif /* YYERROR_VERBOSE */ /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ /*ARGSUSED*/ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp) #else static void yydestruct (yymsg, yytype, yyvaluep, yylocationp) const char *yymsg; int yytype; YYSTYPE *yyvaluep; YYLTYPE *yylocationp; #endif { YYUSE (yyvaluep); YYUSE (yylocationp); if (!yymsg) yymsg = "Deleting"; YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); switch (yytype) { default: break; } } /* Prevent warnings from -Wmissing-prototypes. */ #ifdef YYPARSE_PARAM #if defined __STDC__ || defined __cplusplus int yyparse (void *YYPARSE_PARAM); #else int yyparse (); #endif #else /* ! YYPARSE_PARAM */ #if defined __STDC__ || defined __cplusplus int yyparse (void); #else int yyparse (); #endif #endif /* ! YYPARSE_PARAM */ /*----------. | yyparse. | `----------*/ #ifdef YYPARSE_PARAM #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) int yyparse (void *YYPARSE_PARAM) #else int yyparse (YYPARSE_PARAM) void *YYPARSE_PARAM; #endif #else /* ! YYPARSE_PARAM */ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) int yyparse (void) #else int yyparse () #endif #endif { /* The look-ahead symbol. */ int yychar; /* The semantic value of the look-ahead symbol. */ YYSTYPE yylval; /* Number of syntax errors so far. */ int yynerrs; /* Location data for the look-ahead symbol. */ YYLTYPE yylloc; int yystate; int yyn; int yyresult; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus; /* Look-ahead token as an internal (translated) token number. */ int yytoken = 0; #if YYERROR_VERBOSE /* Buffer for error messages, and its allocated size. */ char yymsgbuf[128]; char *yymsg = yymsgbuf; YYSIZE_T yymsg_alloc = sizeof yymsgbuf; #endif /* Three stacks and their tools: `yyss': related to states, `yyvs': related to semantic values, `yyls': related to locations. Refer to the stacks thru separate pointers, to allow yyoverflow to reallocate them elsewhere. */ /* The state stack. */ yytype_int16 yyssa[YYINITDEPTH]; yytype_int16 *yyss = yyssa; yytype_int16 *yyssp; /* The semantic value stack. */ YYSTYPE yyvsa[YYINITDEPTH]; YYSTYPE *yyvs = yyvsa; YYSTYPE *yyvsp; /* The location stack. */ YYLTYPE yylsa[YYINITDEPTH]; YYLTYPE *yyls = yylsa; YYLTYPE *yylsp; /* The locations where the error started and ended. */ YYLTYPE yyerror_range[2]; #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N)) YYSIZE_T yystacksize = YYINITDEPTH; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; YYLTYPE yyloc; /* The number of symbols on the RHS of the reduced rule. Keep to zero when no symbol should be popped. */ int yylen = 0; YYDPRINTF ((stderr, "Starting parse\n")); yystate = 0; yyerrstatus = 0; yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ /* Initialize stack pointers. Waste one element of value and location stack so that they stay on the same level as the state stack. The wasted elements are never initialized. */ yyssp = yyss; yyvsp = yyvs; yylsp = yyls; #if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL /* Initialize the default location before parsing starts. */ yylloc.first_line = yylloc.last_line = 1; yylloc.first_column = yylloc.last_column = 0; #endif goto yysetstate; /*------------------------------------------------------------. | yynewstate -- Push a new state, which is found in yystate. | `------------------------------------------------------------*/ yynewstate: /* In all cases, when you get here, the value and location stacks have just been pushed. So pushing a state here evens the stacks. */ yyssp++; yysetstate: *yyssp = yystate; if (yyss + yystacksize - 1 <= yyssp) { /* Get the current used size of the three stacks, in elements. */ YYSIZE_T yysize = yyssp - yyss + 1; #ifdef yyoverflow { /* Give user a chance to reallocate the stack. Use copies of these so that the &'s don't force the real ones into memory. */ YYSTYPE *yyvs1 = yyvs; yytype_int16 *yyss1 = yyss; YYLTYPE *yyls1 = yyls; /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. This used to be a conditional around just the two extra args, but that might be undefined if yyoverflow is a macro. */ yyoverflow (YY_("memory exhausted"), &yyss1, yysize * sizeof (*yyssp), &yyvs1, yysize * sizeof (*yyvsp), &yyls1, yysize * sizeof (*yylsp), &yystacksize); yyls = yyls1; yyss = yyss1; yyvs = yyvs1; } #else /* no yyoverflow */ # ifndef YYSTACK_RELOCATE goto yyexhaustedlab; # else /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) goto yyexhaustedlab; yystacksize *= 2; if (YYMAXDEPTH < yystacksize) yystacksize = YYMAXDEPTH; { yytype_int16 *yyss1 = yyss; union yyalloc *yyptr = (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); if (! yyptr) goto yyexhaustedlab; YYSTACK_RELOCATE (yyss); YYSTACK_RELOCATE (yyvs); YYSTACK_RELOCATE (yyls); # undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } # endif #endif /* no yyoverflow */ yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; yylsp = yyls + yysize - 1; YYDPRINTF ((stderr, "Stack size increased to %lu\n", (unsigned long int) yystacksize)); if (yyss + yystacksize - 1 <= yyssp) YYABORT; } YYDPRINTF ((stderr, "Entering state %d\n", yystate)); goto yybackup; /*-----------. | yybackup. | `-----------*/ yybackup: /* Do appropriate processing given the current state. Read a look-ahead token if we need one and don't already have one. */ /* First try to decide what to do without reference to look-ahead token. */ yyn = yypact[yystate]; if (yyn == YYPACT_NINF) goto yydefault; /* Not known => get a look-ahead token if don't already have one. */ /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); yychar = YYLEX; } if (yychar <= YYEOF) { yychar = yytoken = YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } else { yytoken = YYTRANSLATE (yychar); YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); } /* If the proper action on seeing token YYTOKEN is to reduce or to detect an error, take that action. */ yyn += yytoken; if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) goto yydefault; yyn = yytable[yyn]; if (yyn <= 0) { if (yyn == 0 || yyn == YYTABLE_NINF) goto yyerrlab; yyn = -yyn; goto yyreduce; } if (yyn == YYFINAL) YYACCEPT; /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; /* Shift the look-ahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); /* Discard the shifted token unless it is eof. */ if (yychar != YYEOF) yychar = YYEMPTY; yystate = yyn; *++yyvsp = yylval; *++yylsp = yylloc; goto yynewstate; /*-----------------------------------------------------------. | yydefault -- do the default action for the current state. | `-----------------------------------------------------------*/ yydefault: yyn = yydefact[yystate]; if (yyn == 0) goto yyerrlab; goto yyreduce; /*-----------------------------. | yyreduce -- Do a reduction. | `-----------------------------*/ yyreduce: /* yyn is the number of a rule to reduce with. */ yylen = yyr2[yyn]; /* If YYLEN is nonzero, implement the default value of the action: `$$ = $1'. Otherwise, the following line sets YYVAL to garbage. This behavior is undocumented and Bison users should not rely upon it. Assigning to YYVAL unconditionally makes the parser a bit smaller, and it avoids a GCC warning that YYVAL may be used uninitialized. */ yyval = yyvsp[1-yylen]; /* Default location. */ YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen); YY_REDUCE_PRINT (yyn); switch (yyn) { case 8: #line 775 "../src/parser/XQParser.y" { SET_BUILT_IN_NAMESPACE(XQillaFunction::XQillaPrefix, XQillaFunction::XMLChFunctionURI); } break; case 9: #line 782 "../src/parser/XQParser.y" { SET_BUILT_IN_NAMESPACE(XMLChXS, SchemaSymbols::fgURI_SCHEMAFORSCHEMA); SET_BUILT_IN_NAMESPACE(XMLChXSI, SchemaSymbols::fgURI_XSI); SET_BUILT_IN_NAMESPACE(XMLChFN, XQFunction::XMLChFunctionURI); SET_BUILT_IN_NAMESPACE(XMLChLOCAL, XQUserFunction::XMLChXQueryLocalFunctionsURI); SET_BUILT_IN_NAMESPACE(XMLChERR, FunctionError::XMLChXQueryErrorURI); SET_BUILT_IN_NAMESPACE(XQillaFunction::XQillaPrefix, XQillaFunction::XMLChFunctionURI); } break; case 10: #line 794 "../src/parser/XQParser.y" { (yyvsp[(2) - (8)].signature)->argSpecs = (yyvsp[(5) - (8)].argSpecs); (yyvsp[(2) - (8)].signature)->returnType = (yyvsp[(6) - (8)].sequenceType); QP->_function = WRAP((yylsp[(1) - (8)]), new (MEMMGR) XQUserFunction((yyvsp[(4) - (8)].str), (yyvsp[(2) - (8)].signature), (yyvsp[(7) - (8)].astNode), true, MEMMGR)); } break; case 13: #line 805 "../src/parser/XQParser.y" { (yyvsp[(1) - (3)].signature)->argSpecs = (yyvsp[(2) - (3)].argSpecs); (yyvsp[(1) - (3)].signature)->returnType = (yyvsp[(3) - (3)].sequenceType); QP->_signature = (yyvsp[(1) - (3)].signature); } break; case 14: #line 814 "../src/parser/XQParser.y" { printf(" { 0, 0, 0, 0, 0 }\n};\n\n"); UTF8Str module(QP->_moduleName); printf("static const DelayedModule %s_module = { %s_file, %s_prefix, %s_uri, %s_functions };\n", module.str(), module.str(), module.str(), module.str(), module.str()); } break; case 15: #line 825 "../src/parser/XQParser.y" { QP->_moduleName = (yyvsp[(3) - (6)].str); UTF8Str module(QP->_moduleName); UTF8Str file(QP->_lexer->getFile()); printf("// Auto-generated by compile-delayed-module from %s\n", file.str()); printf("// DO NOT EDIT\n\n"); printf("// %s\n", file.str()); printf("static const XMLCh %s_file[] = { ", module.str()); const XMLCh *ptr = QP->_lexer->getFile(); for(; *ptr != 0; ++ptr) { printf("%d, ", *ptr); } printf("0 };\n\n"); printf("// %s\n", UTF8((yyvsp[(3) - (6)].str))); printf("static const XMLCh %s_prefix[] = { ", module.str()); ptr = (yyvsp[(3) - (6)].str); for(; *ptr != 0; ++ptr) { printf("%d, ", *ptr); } printf("0 };\n\n"); printf("// %s\n", UTF8((yyvsp[(5) - (6)].str))); printf("static const XMLCh %s_uri[] = { ", module.str()); ptr = (yyvsp[(5) - (6)].str); for(; *ptr != 0; ++ptr) { printf("%d, ", *ptr); } printf("0 };\n\n"); } break; case 16: #line 862 "../src/parser/XQParser.y" { printf("static const DelayedModule::FuncDef %s_functions[] = {\n", UTF8(QP->_moduleName)); } break; case 17: #line 866 "../src/parser/XQParser.y" { } break; case 18: #line 872 "../src/parser/XQParser.y" { XMLBuffer buf; const XMLCh *localname = XPath2NSUtils::getLocalName((yyvsp[(4) - (8)].str)); printf(" {\n \"%s\", %d, %s, %d, %d,\n", UTF8(localname), (int)((yyvsp[(5) - (8)].argSpecs) ? (yyvsp[(5) - (8)].argSpecs)->size() : 0), (yyvsp[(2) - (8)].signature)->privateOption == FunctionSignature::OP_TRUE ? "true" : "false", (yylsp[(1) - (8)]).first_line, (yylsp[(1) - (8)]).first_column); printf(" \""); const XMLCh *ptr = ((XQLexer*)QP->_lexer)->getQueryString() + (yylsp[(1) - (8)]).first_offset; const XMLCh *start = ptr; const XMLCh *end = ((XQLexer*)QP->_lexer)->getQueryString() + (yylsp[(8) - (8)]).last_offset; for(;ptr < end; ++ptr) { if(*ptr == '"') { if((ptr - start) == 0) buf.reset(); else buf.set(start, ptr - start); printf("%s\\\"", UTF8(buf.getRawBuffer())); start = ptr + 1; } else if(*ptr == '\n') { if((ptr - start) == 0) buf.reset(); else buf.set(start, ptr - start); printf("%s\\n\"\n \"", UTF8(buf.getRawBuffer())); start = ptr + 1; } } buf.set(start, ptr - start); printf("%s\\n\"\n", UTF8(buf.getRawBuffer())); printf(" },\n"); } break; case 19: #line 908 "../src/parser/XQParser.y" { SequenceType *optionalString = WRAP((yylsp[(1) - (1)]), new (MEMMGR) SequenceType(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, AnyAtomicType::fgDT_ANYATOMICTYPE, SequenceType::QUESTION_MARK, MEMMGR)); XQGlobalVariable *nameVar = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQGlobalVariable(0, optionalString, WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQSequence(MEMMGR)), MEMMGR, /*isParam*/true)); nameVar->setVariableURI(XQillaFunction::XMLChFunctionURI); nameVar->setVariableLocalName(var_name); QP->_query->addVariable(nameVar); ASTNode *nameVarRef1 = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQVariable(XQillaFunction::XMLChFunctionURI, var_name, MEMMGR)); XQCallTemplate *call = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQCallTemplate(nameVarRef1, 0, MEMMGR)); ASTNode *ci = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQContextItem(MEMMGR)); ASTNode *apply = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQApplyTemplates(ci, 0, 0, MEMMGR)); VectorOfASTNodes *args = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); args->push_back(WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQVariable(XQillaFunction::XMLChFunctionURI, var_name, MEMMGR))); ASTNode *exists = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQFunctionCall(0, XQFunction::XMLChFunctionURI, MEMMGR->getPooledString("exists"), args, MEMMGR)); QP->_query->setQueryBody(WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQIf(exists, call, apply, MEMMGR))); } break; case 20: #line 939 "../src/parser/XQParser.y" { } break; case 21: #line 942 "../src/parser/XQParser.y" { // TBD Check for xsl:version attr - jpcs NodeTest *nt = new (MEMMGR) NodeTest(); nt->setNodeType(Node::document_string); nt->setNameWildcard(); nt->setNamespaceWildcard(); VectorOfASTNodes *pattern = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); pattern->push_back(WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQStep(XQStep::SELF, nt, MEMMGR))); XQUserFunction::ModeList *modelist = new (MEMMGR) XQUserFunction::ModeList(XQillaAllocator(MEMMGR)); modelist->push_back(WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::DEFAULT))); FunctionSignature *signature = new (MEMMGR) FunctionSignature(MEMMGR); XQUserFunction *func = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQUserFunction(0, pattern, signature, (yyvsp[(1) - (1)].astNode), MEMMGR)); func->setModeList(modelist); QP->_query->addFunction(func); } break; case 23: #line 966 "../src/parser/XQParser.y" { // TBD Check the value - jpcs } break; case 24: #line 970 "../src/parser/XQParser.y" { // TBD implement exclude-result-prefixes - jpcs } break; case 32: #line 988 "../src/parser/XQParser.y" { if((yyvsp[(1) - (4)].functDecl)->getName() == 0 && (yyvsp[(1) - (4)].functDecl)->getPattern() == 0) { yyerror((yylsp[(1) - (4)]), "The xsl:template declaration does not have either a {}name or {}match attribute, or both [err:XTSE0500]"); } if((yyvsp[(1) - (4)].functDecl)->getPattern() != 0 && (yyvsp[(1) - (4)].functDecl)->getModeList() == 0) { XQUserFunction::ModeList *modelist = new (MEMMGR) XQUserFunction::ModeList(XQillaAllocator(MEMMGR)); modelist->push_back(WRAP((yylsp[(1) - (4)]), new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::DEFAULT))); (yyvsp[(1) - (4)].functDecl)->setModeList(modelist); } (yyvsp[(1) - (4)].functDecl)->getSignature()->argSpecs = (yyvsp[(2) - (4)].argSpecs); (yyvsp[(1) - (4)].functDecl)->setFunctionBody((yyvsp[(3) - (4)].parenExpr)); QP->_query->addFunction((yyvsp[(1) - (4)].functDecl)); } break; case 33: #line 1007 "../src/parser/XQParser.y" { FunctionSignature *signature = new (MEMMGR) FunctionSignature(MEMMGR); (yyval.functDecl) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQUserFunction(0, 0, signature, 0, MEMMGR)); } break; case 34: #line 1012 "../src/parser/XQParser.y" { (yyval.functDecl) = (yyvsp[(1) - (3)].functDecl); (yyval.functDecl)->setPattern((yyvsp[(3) - (3)].itemList)); } break; case 35: #line 1017 "../src/parser/XQParser.y" { (yyval.functDecl) = (yyvsp[(1) - (2)].functDecl); RESOLVE_QNAME((yylsp[(2) - (2)]), (yyvsp[(2) - (2)].str)); (yyval.functDecl)->setURI(uri); (yyval.functDecl)->setName(name); } break; case 36: #line 1024 "../src/parser/XQParser.y" { (yyval.functDecl) = (yyvsp[(1) - (3)].functDecl); // TBD priority - jpcs } break; case 37: #line 1029 "../src/parser/XQParser.y" { (yyval.functDecl) = (yyvsp[(1) - (3)].functDecl); (yyval.functDecl)->setModeList((yyvsp[(3) - (3)].modeList)); } break; case 38: #line 1034 "../src/parser/XQParser.y" { (yyval.functDecl) = (yyvsp[(1) - (3)].functDecl); (yyval.functDecl)->getSignature()->returnType = (yyvsp[(3) - (3)].sequenceType); } break; case 39: #line 1042 "../src/parser/XQParser.y" { (yyval.modeList) = new (MEMMGR) XQUserFunction::ModeList(XQillaAllocator(MEMMGR)); } break; case 40: #line 1046 "../src/parser/XQParser.y" { RESOLVE_QNAME((yylsp[(2) - (2)]), (yyvsp[(2) - (2)].str)); (yyvsp[(1) - (2)].modeList)->push_back(WRAP((yylsp[(2) - (2)]), new (MEMMGR) XQUserFunction::Mode(uri, name))); (yyval.modeList) = (yyvsp[(1) - (2)].modeList); } break; case 41: #line 1052 "../src/parser/XQParser.y" { (yyvsp[(1) - (2)].modeList)->push_back(WRAP((yylsp[(2) - (2)]), new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::DEFAULT))); (yyval.modeList) = (yyvsp[(1) - (2)].modeList); } break; case 42: #line 1057 "../src/parser/XQParser.y" { (yyvsp[(1) - (2)].modeList)->push_back(WRAP((yylsp[(2) - (2)]), new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::ALL))); (yyval.modeList) = (yyvsp[(1) - (2)].modeList); } break; case 46: #line 1067 "../src/parser/XQParser.y" { if((yyvsp[(1) - (4)].functDecl)->getName() == 0) { yyerror((yylsp[(1) - (4)]), "The xsl:function declaration does not have a {}name attribute"); } (yyvsp[(1) - (4)].functDecl)->getSignature()->argSpecs = (yyvsp[(2) - (4)].argSpecs); (yyvsp[(1) - (4)].functDecl)->setFunctionBody((yyvsp[(3) - (4)].parenExpr)); QP->_query->addFunction((yyvsp[(1) - (4)].functDecl)); } break; case 47: #line 1080 "../src/parser/XQParser.y" { FunctionSignature *signature = new (MEMMGR) FunctionSignature(MEMMGR); (yyval.functDecl) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQUserFunction(0, signature, 0, true, MEMMGR)); } break; case 48: #line 1085 "../src/parser/XQParser.y" { (yyval.functDecl) = (yyvsp[(1) - (2)].functDecl); RESOLVE_QNAME((yylsp[(2) - (2)]), (yyvsp[(2) - (2)].str)); (yyval.functDecl)->setURI(uri); (yyval.functDecl)->setName(name); } break; case 49: #line 1092 "../src/parser/XQParser.y" { (yyval.functDecl) = (yyvsp[(1) - (3)].functDecl); (yyval.functDecl)->getSignature()->returnType = (yyvsp[(3) - (3)].sequenceType); } break; case 50: #line 1097 "../src/parser/XQParser.y" { (yyval.functDecl) = (yyvsp[(1) - (2)].functDecl); // TBD override - jpcs } break; case 51: #line 1105 "../src/parser/XQParser.y" { (yyval.argSpecs) = new (MEMMGR) ArgumentSpecs(XQillaAllocator(MEMMGR)); } break; case 52: #line 1109 "../src/parser/XQParser.y" { (yyval.argSpecs) = (yyvsp[(1) - (2)].argSpecs); (yyval.argSpecs)->push_back((yyvsp[(2) - (2)].argSpec)); } break; case 53: #line 1117 "../src/parser/XQParser.y" { (yyval.argSpec) = (yyvsp[(1) - (3)].argSpec); if((yyval.argSpec)->getName() == 0) { yyerror((yylsp[(1) - (3)]), "The xsl:param instruction does not have a {}name attribute"); } if((yyval.argSpec)->getType() == 0) { (yyval.argSpec)->setType(WRAP((yylsp[(1) - (3)]), new (MEMMGR) SequenceType(new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ANYTHING), SequenceType::STAR))); } // TBD default parameter values - jpcs /* if(!$2->getChildren().empty()) { */ /* if($$->value != 0) { */ /* yyerror(@1, "The xsl:with-param instruction has both a select attribute and a sequence constructor [err:XTSE0870]"); */ /* } */ /* $$->value = $2; */ /* } */ /* else if($$->value == 0) { */ /* yyerror(@1, "The xsl:with-param instruction has neither a select attribute nor a sequence constructor [err:XTSE0870]"); */ /* } */ } break; case 54: #line 1144 "../src/parser/XQParser.y" { (yyval.argSpec) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) ArgumentSpec(0, 0, MEMMGR)); } break; case 55: #line 1148 "../src/parser/XQParser.y" { (yyval.argSpec) = (yyvsp[(1) - (2)].argSpec); RESOLVE_QNAME((yylsp[(2) - (2)]), (yyvsp[(2) - (2)].str)); (yyval.argSpec)->setURI(uri); (yyval.argSpec)->setName(name); } break; case 56: #line 1155 "../src/parser/XQParser.y" { (yyval.argSpec) = (yyvsp[(1) - (3)].argSpec); // TBD default parameter values - jpcs /* $$->value = PRESERVE_NS(@2, $3); */ } break; case 57: #line 1161 "../src/parser/XQParser.y" { (yyval.argSpec) = (yyvsp[(1) - (3)].argSpec); (yyval.argSpec)->setType((yyvsp[(3) - (3)].sequenceType)); } break; case 58: #line 1166 "../src/parser/XQParser.y" { (yyval.argSpec) = (yyvsp[(1) - (2)].argSpec); // TBD required - jpcs } break; case 59: #line 1171 "../src/parser/XQParser.y" { (yyval.argSpec) = (yyvsp[(1) - (2)].argSpec); // TBD tunnel parameters - jpcs } break; case 60: #line 1180 "../src/parser/XQParser.y" { if((yyvsp[(1) - (3)].globalVar)->isRequired()) { if((yyvsp[(1) - (3)].globalVar)->getVariableExpr() != 0 || !(yyvsp[(2) - (3)].parenExpr)->getChildren().empty()) { yyerror((yylsp[(1) - (3)]), "A required xsl:param declaration must be empty and must not specify a {}select attribute"); } } else { (yyvsp[(1) - (3)].globalVar)->setVariableExpr(XSLT_VARIABLE_VALUE((yylsp[(1) - (3)]), (ASTNode*)(yyvsp[(1) - (3)].globalVar)->getVariableExpr(), (yyvsp[(2) - (3)].parenExpr), (SequenceType*)(yyvsp[(1) - (3)].globalVar)->getSequenceType())); if((yyvsp[(1) - (3)].globalVar)->getVariableExpr() == 0) { yyerror((yylsp[(1) - (3)]), "The xsl:param declaration has both a select attribute and a sequence constructor [err:XTSE0620]"); } } if((yyvsp[(1) - (3)].globalVar)->getVariableLocalName() == 0) { yyerror((yylsp[(1) - (3)]), "The xsl:param declaration does not have a {}name attribute"); } QP->_query->addVariable((yyvsp[(1) - (3)].globalVar)); } break; case 61: #line 1204 "../src/parser/XQParser.y" { (yyval.globalVar) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQGlobalVariable(0, 0, 0, MEMMGR, /*isParam*/true)); } break; case 62: #line 1208 "../src/parser/XQParser.y" { RESOLVE_QNAME((yylsp[(2) - (2)]), (yyvsp[(2) - (2)].str)); (yyvsp[(1) - (2)].globalVar)->setVariableURI(uri); (yyvsp[(1) - (2)].globalVar)->setVariableLocalName(name); (yyval.globalVar) = (yyvsp[(1) - (2)].globalVar); } break; case 63: #line 1215 "../src/parser/XQParser.y" { (yyvsp[(1) - (3)].globalVar)->setVariableExpr(PRESERVE_NS((yylsp[(2) - (3)]), (yyvsp[(3) - (3)].astNode))); (yyval.globalVar) = (yyvsp[(1) - (3)].globalVar); } break; case 64: #line 1220 "../src/parser/XQParser.y" { (yyvsp[(1) - (3)].globalVar)->setSequenceType((yyvsp[(3) - (3)].sequenceType)); (yyval.globalVar) = (yyvsp[(1) - (3)].globalVar); } break; case 65: #line 1225 "../src/parser/XQParser.y" { (yyval.globalVar) = (yyvsp[(1) - (2)].globalVar); (yyval.globalVar)->setRequired((yyvsp[(2) - (2)].boolean)); } break; case 66: #line 1230 "../src/parser/XQParser.y" { (yyval.globalVar) = (yyvsp[(1) - (2)].globalVar); if((yyvsp[(2) - (2)].boolean)) { yyerror((yylsp[(2) - (2)]), "An xsl:param declaration cannot have a {}tunnel attribute with a value of \"yes\""); } } break; case 67: #line 1241 "../src/parser/XQParser.y" { (yyvsp[(1) - (3)].globalVar)->setVariableExpr(XSLT_VARIABLE_VALUE((yylsp[(1) - (3)]), (ASTNode*)(yyvsp[(1) - (3)].globalVar)->getVariableExpr(), (yyvsp[(2) - (3)].parenExpr), (SequenceType*)(yyvsp[(1) - (3)].globalVar)->getSequenceType())); (yyvsp[(1) - (3)].globalVar)->setSequenceType(0); if((yyvsp[(1) - (3)].globalVar)->getVariableExpr() == 0) { yyerror((yylsp[(1) - (3)]), "The xsl:variable declaration has both a select attribute and a sequence constructor [err:XTSE0620]"); } if((yyvsp[(1) - (3)].globalVar)->getVariableLocalName() == 0) { yyerror((yylsp[(1) - (3)]), "The xsl:variable declaration does not have a {}name attribute"); } QP->_query->addVariable((yyvsp[(1) - (3)].globalVar)); } break; case 68: #line 1259 "../src/parser/XQParser.y" { (yyval.globalVar) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQGlobalVariable(0, 0, 0, MEMMGR)); } break; case 69: #line 1263 "../src/parser/XQParser.y" { RESOLVE_QNAME((yylsp[(2) - (2)]), (yyvsp[(2) - (2)].str)); (yyvsp[(1) - (2)].globalVar)->setVariableURI(uri); (yyvsp[(1) - (2)].globalVar)->setVariableLocalName(name); (yyval.globalVar) = (yyvsp[(1) - (2)].globalVar); } break; case 70: #line 1270 "../src/parser/XQParser.y" { (yyvsp[(1) - (3)].globalVar)->setVariableExpr(PRESERVE_NS((yylsp[(2) - (3)]), (yyvsp[(3) - (3)].astNode))); (yyval.globalVar) = (yyvsp[(1) - (3)].globalVar); } break; case 71: #line 1275 "../src/parser/XQParser.y" { (yyvsp[(1) - (3)].globalVar)->setSequenceType((yyvsp[(3) - (3)].sequenceType)); (yyval.globalVar) = (yyvsp[(1) - (3)].globalVar); } break; case 72: #line 1283 "../src/parser/XQParser.y" { // TBD Add the output to the static context - jpcs } break; case 73: #line 1308 "../src/parser/XQParser.y" { } break; case 74: #line 1311 "../src/parser/XQParser.y" { } break; case 75: #line 1314 "../src/parser/XQParser.y" { } break; case 76: #line 1317 "../src/parser/XQParser.y" { } break; case 77: #line 1320 "../src/parser/XQParser.y" { } break; case 78: #line 1323 "../src/parser/XQParser.y" { } break; case 79: #line 1326 "../src/parser/XQParser.y" { } break; case 80: #line 1329 "../src/parser/XQParser.y" { } break; case 81: #line 1332 "../src/parser/XQParser.y" { } break; case 82: #line 1335 "../src/parser/XQParser.y" { } break; case 83: #line 1338 "../src/parser/XQParser.y" { } break; case 84: #line 1341 "../src/parser/XQParser.y" { } break; case 85: #line 1344 "../src/parser/XQParser.y" { } break; case 86: #line 1347 "../src/parser/XQParser.y" { } break; case 87: #line 1350 "../src/parser/XQParser.y" { } break; case 88: #line 1353 "../src/parser/XQParser.y" { } break; case 89: #line 1356 "../src/parser/XQParser.y" { } break; case 90: #line 1359 "../src/parser/XQParser.y" { } break; case 95: #line 1369 "../src/parser/XQParser.y" { // $$ = $1; const XMLCh *p = (yyvsp[(1) - (1)].str); while(*p && *p != ':') ++p; if(*p == 0) { yyerror((yylsp[(1) - (1)]), "The method for the xsl:output declaration does not have a prefix"); } } break; case 96: #line 1381 "../src/parser/XQParser.y" { } break; case 97: #line 1384 "../src/parser/XQParser.y" { } break; case 99: #line 1392 "../src/parser/XQParser.y" { LOCATION((yylsp[(1) - (1)]), loc); CONTEXT->addSchemaLocation(XMLUni::fgZeroLenString, 0, &loc); } break; case 100: #line 1397 "../src/parser/XQParser.y" { LOCATION((yylsp[(1) - (2)]), loc); CONTEXT->addSchemaLocation((yyvsp[(2) - (2)].str), 0, &loc); } break; case 101: #line 1402 "../src/parser/XQParser.y" { VectorOfStrings schemaLoc(XQillaAllocator(MEMMGR)); schemaLoc.push_back((yyvsp[(2) - (2)].str)); LOCATION((yylsp[(1) - (2)]), loc); CONTEXT->addSchemaLocation(XMLUni::fgZeroLenString, &schemaLoc, &loc); } break; case 102: #line 1410 "../src/parser/XQParser.y" { VectorOfStrings schemaLoc(XQillaAllocator(MEMMGR)); schemaLoc.push_back((yyvsp[(3) - (3)].str)); LOCATION((yylsp[(1) - (3)]), loc); CONTEXT->addSchemaLocation((yyvsp[(2) - (3)].str), &schemaLoc, &loc); } break; case 103: #line 1418 "../src/parser/XQParser.y" { VectorOfStrings schemaLoc(XQillaAllocator(MEMMGR)); schemaLoc.push_back((yyvsp[(2) - (3)].str)); LOCATION((yylsp[(1) - (3)]), loc); CONTEXT->addSchemaLocation((yyvsp[(3) - (3)].str), &schemaLoc, &loc); } break; case 104: #line 1429 "../src/parser/XQParser.y" { VectorOfASTNodes *children = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); *children = (yyvsp[(3) - (4)].parenExpr)->getChildren(); (yyval.astNode) = WRAP((yylsp[(1) - (4)]), new (MEMMGR) XQElementConstructor((yyvsp[(1) - (4)].astNode), (yyvsp[(2) - (4)].itemList), children, MEMMGR)); } break; case 105: #line 1439 "../src/parser/XQParser.y" { (yyval.itemList) = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); } break; case 106: #line 1443 "../src/parser/XQParser.y" { (yyval.itemList) = (yyvsp[(1) - (3)].itemList); ASTNode *attrItem = WRAP((yylsp[(2) - (3)]), new (MEMMGR) XQAttributeConstructor((yyvsp[(2) - (3)].astNode), (yyvsp[(3) - (3)].itemList), MEMMGR)); (yyval.itemList)->push_back(attrItem); } break; case 107: #line 1450 "../src/parser/XQParser.y" { (yyval.itemList) = (yyvsp[(1) - (2)].itemList); (yyval.itemList)->insert((yyval.itemList)->begin(), (yyvsp[(2) - (2)].astNode)); } break; case 108: #line 1459 "../src/parser/XQParser.y" { (yyval.itemList) = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); } break; case 109: #line 1463 "../src/parser/XQParser.y" { (yyval.itemList) = (yyvsp[(1) - (2)].itemList); (yyval.itemList)->push_back(PRESERVE_NS((yylsp[(2) - (2)]), (yyvsp[(2) - (2)].astNode))); } break; case 110: #line 1468 "../src/parser/XQParser.y" { (yyval.itemList) = (yyvsp[(1) - (2)].itemList); (yyval.itemList)->push_back(WRAP((yylsp[(2) - (2)]), new (MEMMGR) XQLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, (yyvsp[(2) - (2)].str), AnyAtomicType::STRING, MEMMGR))); } break; case 111: #line 1478 "../src/parser/XQParser.y" { (yyval.parenExpr) = WRAP((yyloc), new (MEMMGR) XQSequence(MEMMGR)); } break; case 112: #line 1482 "../src/parser/XQParser.y" { (yyval.parenExpr) = (yyvsp[(1) - (2)].parenExpr); (yyval.parenExpr)->addItem(WRAP((yylsp[(1) - (2)]), new (MEMMGR) XQTextConstructor((yyvsp[(2) - (2)].astNode), MEMMGR))); } break; case 113: #line 1487 "../src/parser/XQParser.y" { (yyval.parenExpr) = (yyvsp[(1) - (2)].parenExpr); (yyval.parenExpr)->addItem((yyvsp[(2) - (2)].astNode)); } break; case 114: #line 1492 "../src/parser/XQParser.y" { (yyval.parenExpr) = (yyvsp[(1) - (2)].parenExpr); (yyval.parenExpr)->addItem((yyvsp[(2) - (2)].astNode)); } break; case 133: #line 1521 "../src/parser/XQParser.y" { XQTextConstructor *text = (XQTextConstructor*)(yyvsp[(1) - (3)].astNode); (yyval.astNode) = text; if(!(yyvsp[(2) - (3)].parenExpr)->getChildren().empty()) { if(text->getValue() != 0) { yyerror((yylsp[(1) - (3)]), "The xsl:value-of instruction has both a select attribute and a sequence constructor [err:XTSE0870]"); } text->setValue((yyvsp[(2) - (3)].parenExpr)); } else if(text->getValue() == 0) { yyerror((yylsp[(1) - (3)]), "The xsl:value-of instruction has neither a select attribute nor a sequence constructor [err:XTSE0870]"); } } break; case 134: #line 1539 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQTextConstructor(0, MEMMGR)); } break; case 135: #line 1543 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (3)].astNode); ((XQTextConstructor*)(yyval.astNode))->setValue(PRESERVE_NS((yylsp[(2) - (3)]), (yyvsp[(3) - (3)].astNode))); } break; case 136: #line 1548 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (3)].astNode); // TBD separator - jpcs /* ((XQTextConstructor*)$$)->setValue(PRESERVE_NS(@2, $3)); */ } break; case 137: #line 1557 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQTextConstructor((yyvsp[(2) - (3)].astNode), MEMMGR)); } break; case 140: #line 1566 "../src/parser/XQParser.y" { // TBD xsl:sort - jpcs XQApplyTemplates *apply = (XQApplyTemplates*)(yyvsp[(1) - (3)].astNode); (yyval.astNode) = apply; apply->setArguments((yyvsp[(2) - (3)].templateArgs)); if(apply->getExpression() == 0) { NodeTest *nt = new (MEMMGR) NodeTest(); nt->setTypeWildcard(); nt->setNameWildcard(); nt->setNamespaceWildcard(); apply->setExpression(WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQStep(XQStep::CHILD, nt, MEMMGR))); } } break; case 141: #line 1586 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQApplyTemplates(0, 0, 0, MEMMGR)); } break; case 142: #line 1590 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (3)].astNode); ((XQApplyTemplates*)(yyval.astNode))->setExpression(PRESERVE_NS((yylsp[(2) - (3)]), (yyvsp[(3) - (3)].astNode))); } break; case 143: #line 1595 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (3)].astNode); ((XQApplyTemplates*)(yyval.astNode))->setMode((yyvsp[(3) - (3)].mode)); } break; case 144: #line 1603 "../src/parser/XQParser.y" { RESOLVE_QNAME((yylsp[(1) - (1)]), (yyvsp[(1) - (1)].str)); (yyval.mode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQUserFunction::Mode(uri, name)); } break; case 145: #line 1608 "../src/parser/XQParser.y" { (yyval.mode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::DEFAULT)); } break; case 146: #line 1612 "../src/parser/XQParser.y" { (yyval.mode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::CURRENT)); } break; case 147: #line 1619 "../src/parser/XQParser.y" { (yyval.templateArgs) = new (MEMMGR) TemplateArguments(XQillaAllocator(MEMMGR)); } break; case 148: #line 1623 "../src/parser/XQParser.y" { (yyval.templateArgs) = (yyvsp[(1) - (2)].templateArgs); (yyval.templateArgs)->push_back((yyvsp[(2) - (2)].templateArg)); } break; case 149: #line 1631 "../src/parser/XQParser.y" { XQCallTemplate *call = (XQCallTemplate*)(yyvsp[(1) - (3)].astNode); call->setArguments((yyvsp[(2) - (3)].templateArgs)); (yyval.astNode) = call; if(call->getName() == 0) { yyerror((yylsp[(1) - (3)]), "The xsl:call-template instruction does not have a {}name attribute"); } } break; case 150: #line 1644 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQCallTemplate((const XMLCh*)0, 0, MEMMGR)); } break; case 151: #line 1648 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (2)].astNode); RESOLVE_QNAME((yylsp[(2) - (2)]), (yyvsp[(2) - (2)].str)); ((XQCallTemplate*)(yyval.astNode))->setURI(uri); ((XQCallTemplate*)(yyval.astNode))->setName(name); } break; case 152: #line 1658 "../src/parser/XQParser.y" { (yyval.templateArgs) = new (MEMMGR) TemplateArguments(XQillaAllocator(MEMMGR)); } break; case 153: #line 1662 "../src/parser/XQParser.y" { (yyval.templateArgs) = (yyvsp[(1) - (2)].templateArgs); (yyval.templateArgs)->push_back((yyvsp[(2) - (2)].templateArg)); } break; case 154: #line 1670 "../src/parser/XQParser.y" { (yyval.templateArg) = (yyvsp[(1) - (3)].templateArg); if((yyval.templateArg)->name == 0) { yyerror((yylsp[(1) - (3)]), "The xsl:with-param instruction does not have a {}name attribute"); } (yyvsp[(1) - (3)].templateArg)->value = XSLT_VARIABLE_VALUE((yylsp[(1) - (3)]), (yyvsp[(1) - (3)].templateArg)->value, (yyvsp[(2) - (3)].parenExpr), (yyvsp[(1) - (3)].templateArg)->seqType); (yyvsp[(1) - (3)].templateArg)->seqType = 0; if((yyvsp[(1) - (3)].templateArg)->value == 0) { yyerror((yylsp[(1) - (3)]), "The xsl:with-param instruction has both a select attribute and a sequence constructor [err:XTSE0870]"); } } break; case 155: #line 1688 "../src/parser/XQParser.y" { (yyval.templateArg) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQTemplateArgument(0, 0, MEMMGR)); } break; case 156: #line 1692 "../src/parser/XQParser.y" { (yyval.templateArg) = (yyvsp[(1) - (2)].templateArg); RESOLVE_QNAME((yylsp[(2) - (2)]), (yyvsp[(2) - (2)].str)); (yyval.templateArg)->uri = uri; (yyval.templateArg)->name = name; } break; case 157: #line 1699 "../src/parser/XQParser.y" { (yyval.templateArg) = (yyvsp[(1) - (3)].templateArg); (yyval.templateArg)->value = PRESERVE_NS((yylsp[(2) - (3)]), (yyvsp[(3) - (3)].astNode)); } break; case 158: #line 1704 "../src/parser/XQParser.y" { (yyval.templateArg) = (yyvsp[(1) - (3)].templateArg); (yyval.templateArg)->seqType = (yyvsp[(3) - (3)].sequenceType); } break; case 159: #line 1709 "../src/parser/XQParser.y" { (yyval.templateArg) = (yyvsp[(1) - (2)].templateArg); // TBD tunnel parameters - jpcs } break; case 160: #line 1717 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (2)].astNode); } break; case 161: #line 1723 "../src/parser/XQParser.y" { // TBD xsl:fallback - jpcs (yyval.astNode) = PRESERVE_NS((yylsp[(2) - (3)]), (yyvsp[(3) - (3)].astNode)); } break; case 162: #line 1731 "../src/parser/XQParser.y" { ASTNode *empty = WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQSequence(MEMMGR)); (yyval.astNode) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQIf((yyvsp[(1) - (3)].astNode), (yyvsp[(2) - (3)].parenExpr), empty, MEMMGR)); } break; case 163: #line 1739 "../src/parser/XQParser.y" { (yyval.astNode) = PRESERVE_NS((yylsp[(2) - (3)]), (yyvsp[(3) - (3)].astNode)); } break; case 164: #line 1746 "../src/parser/XQParser.y" { XQIf *iff = (XQIf*)(yyvsp[(2) - (4)].astNode); while(iff->getWhenFalse() != 0) { iff = (XQIf*)iff->getWhenFalse(); } iff->setWhenFalse((yyvsp[(3) - (4)].astNode)); (yyval.astNode) = (yyvsp[(2) - (4)].astNode); } break; case 165: #line 1760 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (1)].astNode); } break; case 166: #line 1764 "../src/parser/XQParser.y" { XQIf *iff = (XQIf*)(yyvsp[(1) - (2)].astNode); while(iff->getWhenFalse() != 0) { iff = (XQIf*)iff->getWhenFalse(); } iff->setWhenFalse((yyvsp[(2) - (2)].astNode)); (yyval.astNode) = (yyvsp[(1) - (2)].astNode); } break; case 167: #line 1778 "../src/parser/XQParser.y" { XQIf *iff = (XQIf*)(yyvsp[(1) - (3)].astNode); iff->setWhenTrue((yyvsp[(2) - (3)].parenExpr)); (yyval.astNode) = (yyvsp[(1) - (3)].astNode); } break; case 168: #line 1787 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQIf(PRESERVE_NS((yylsp[(2) - (3)]), (yyvsp[(3) - (3)].astNode)), 0, 0, MEMMGR)); } break; case 169: #line 1794 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yyloc), new (MEMMGR) XQSequence(MEMMGR)); } break; case 170: #line 1798 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(2) - (3)].parenExpr); } break; case 171: #line 1805 "../src/parser/XQParser.y" { // TBD xsl:fallback - jpcs XQAnalyzeString *as = (XQAnalyzeString*)(yyval.astNode); (yyval.astNode) = (yyvsp[(1) - (4)].astNode); if(as->getExpression() == 0) { yyerror((yylsp[(1) - (4)]), "The xsl:analyze-string instruction does not have a {}select attribute"); } if(as->getRegex() == 0) { yyerror((yylsp[(1) - (4)]), "The xsl:analyze-string instruction does not have a {}regex attribute"); } if((yyvsp[(2) - (4)].astNode) == 0) { if((yyvsp[(3) - (4)].astNode) == 0) { yyerror((yylsp[(1) - (4)]), "The xsl:analyze-string instruction doesn't contain an xsl:matching-substring or xsl:non-matching-substring child [err:XTSE1130]"); } as->setMatch(WRAP((yylsp[(1) - (4)]), new (MEMMGR) XQSequence(MEMMGR))); } else { as->setMatch((yyvsp[(2) - (4)].astNode)); } if((yyvsp[(3) - (4)].astNode) == 0) { as->setNonMatch(WRAP((yylsp[(1) - (4)]), new (MEMMGR) XQSequence(MEMMGR))); } else { as->setNonMatch((yyvsp[(3) - (4)].astNode)); } } break; case 172: #line 1840 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yyloc), new (MEMMGR) XQAnalyzeString(MEMMGR)); } break; case 173: #line 1844 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (3)].astNode); ((XQAnalyzeString*)(yyval.astNode))->setExpression(PRESERVE_NS((yylsp[(2) - (3)]), (yyvsp[(3) - (3)].astNode))); } break; case 174: #line 1849 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (3)].astNode); ASTNode *content = WRAP((yylsp[(3) - (3)]), new (MEMMGR) XQSimpleContent((yyvsp[(3) - (3)].itemList), MEMMGR)); ((XQAnalyzeString*)(yyval.astNode))->setRegex(PRESERVE_NS((yylsp[(2) - (3)]), content)); } break; case 175: #line 1855 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (3)].astNode); ASTNode *content = WRAP((yylsp[(3) - (3)]), new (MEMMGR) XQSimpleContent((yyvsp[(3) - (3)].itemList), MEMMGR)); ((XQAnalyzeString*)(yyval.astNode))->setFlags(PRESERVE_NS((yylsp[(2) - (3)]), content)); } break; case 176: #line 1864 "../src/parser/XQParser.y" { (yyval.astNode) = 0; } break; case 177: #line 1868 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(2) - (3)].parenExpr); } break; case 178: #line 1875 "../src/parser/XQParser.y" { (yyval.astNode) = 0; } break; case 179: #line 1879 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(2) - (3)].parenExpr); } break; case 180: #line 1886 "../src/parser/XQParser.y" { (yyvsp[(1) - (4)].letTuple)->setExpression(XSLT_VARIABLE_VALUE((yylsp[(1) - (4)]), (yyvsp[(1) - (4)].letTuple)->getExpression(), (yyvsp[(2) - (4)].parenExpr), (yyvsp[(1) - (4)].letTuple)->seqType)); (yyvsp[(1) - (4)].letTuple)->seqType = 0; if((yyvsp[(1) - (4)].letTuple)->getExpression() == 0) { yyerror((yylsp[(1) - (4)]), "The xsl:variable instruction has both a select attribute and a sequence constructor [err:XTSE0620]"); } if((yyvsp[(1) - (4)].letTuple)->getVarName() == 0) { yyerror((yylsp[(1) - (4)]), "The xsl:variable instruction does not have a {}name attribute"); } (yyval.astNode) = WRAP((yylsp[(1) - (4)]), new (MEMMGR) XQReturn((yyvsp[(1) - (4)].letTuple), (yyvsp[(4) - (4)].parenExpr), MEMMGR)); } break; case 181: #line 1904 "../src/parser/XQParser.y" { (yyval.letTuple) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) LetTuple(WRAP((yylsp[(1) - (1)]), new (MEMMGR) ContextTuple(MEMMGR)), 0, 0, MEMMGR)); } break; case 182: #line 1908 "../src/parser/XQParser.y" { RESOLVE_QNAME((yylsp[(2) - (2)]), (yyvsp[(2) - (2)].str)); (yyvsp[(1) - (2)].letTuple)->setVarURI(uri); (yyvsp[(1) - (2)].letTuple)->setVarName(name); (yyval.letTuple) = (yyvsp[(1) - (2)].letTuple); } break; case 183: #line 1915 "../src/parser/XQParser.y" { (yyvsp[(1) - (3)].letTuple)->setExpression((yyvsp[(3) - (3)].astNode)); (yyval.letTuple) = (yyvsp[(1) - (3)].letTuple); } break; case 184: #line 1920 "../src/parser/XQParser.y" { (yyvsp[(1) - (3)].letTuple)->seqType = (yyvsp[(3) - (3)].sequenceType); (yyval.letTuple) = (yyvsp[(1) - (3)].letTuple); } break; case 185: #line 1928 "../src/parser/XQParser.y" { XQCommentConstructor *comment = (XQCommentConstructor*)(yyvsp[(1) - (3)].astNode); (yyval.astNode) = comment; if(!(yyvsp[(2) - (3)].parenExpr)->getChildren().empty()) { if(comment->getValue() != 0) { yyerror((yylsp[(1) - (3)]), "The xsl:comment instruction has both a select attribute and a sequence constructor [err:XTSE0940]"); } comment->setValue((yyvsp[(2) - (3)].parenExpr)); } else if(comment->getValue() == 0) { comment->setValue(WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQSequence(MEMMGR))); } } break; case 186: #line 1946 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQCommentConstructor(0, MEMMGR, /*xslt*/true)); } break; case 187: #line 1950 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (3)].astNode); ((XQCommentConstructor*)(yyval.astNode))->setValue(PRESERVE_NS((yylsp[(2) - (3)]), (yyvsp[(3) - (3)].astNode))); } break; case 188: #line 1958 "../src/parser/XQParser.y" { XQPIConstructor *pi = (XQPIConstructor*)(yyvsp[(1) - (3)].astNode); (yyval.astNode) = pi; if(pi->getName() == 0) { yyerror((yylsp[(1) - (3)]), "The xsl:processing-instruction instruction does not have a {}name attribute"); } if(!(yyvsp[(2) - (3)].parenExpr)->getChildren().empty()) { if(pi->getValue() != 0) { yyerror((yylsp[(1) - (3)]), "The xsl:processing-instruction instruction has both a select attribute and a sequence constructor [err:XTSE0880]"); } pi->setValue((yyvsp[(2) - (3)].parenExpr)); } else if(pi->getValue() == 0) { pi->setValue(WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQSequence(MEMMGR))); } } break; case 189: #line 1980 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQPIConstructor(0, 0, MEMMGR, /*xslt*/true)); } break; case 190: #line 1984 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (3)].astNode); ASTNode *content = WRAP((yylsp[(3) - (3)]), new (MEMMGR) XQSimpleContent((yyvsp[(3) - (3)].itemList), MEMMGR)); ((XQPIConstructor*)(yyval.astNode))->setName(PRESERVE_NS((yylsp[(2) - (3)]), content)); } break; case 191: #line 1991 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (3)].astNode); ((XQPIConstructor*)(yyval.astNode))->setValue(PRESERVE_NS((yylsp[(2) - (3)]), (yyvsp[(3) - (3)].astNode))); } break; case 192: #line 1999 "../src/parser/XQParser.y" { XQDocumentConstructor *doc = (XQDocumentConstructor*)(yyvsp[(1) - (3)].astNode); doc->setValue((yyvsp[(2) - (3)].parenExpr)); (yyval.astNode) = doc; } break; case 193: #line 2008 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQDocumentConstructor(0, MEMMGR)); } break; case 194: #line 2016 "../src/parser/XQParser.y" { XQAttributeConstructor *attr = (XQAttributeConstructor*)(yyvsp[(1) - (3)].astNode); (yyval.astNode) = attr; if(attr->getName() == 0) { yyerror((yylsp[(1) - (3)]), "The xsl:attribute instruction does not have a {}name attribute"); } if(attr->namespaceExpr != 0) { // Use fn:QName() to assign the correct URI VectorOfASTNodes args(XQillaAllocator(MEMMGR)); args.push_back(attr->namespaceExpr); args.push_back(const_cast(attr->getName())); FunctionQName *name = WRAP((yylsp[(1) - (3)]), new (MEMMGR) FunctionQName(args, MEMMGR)); attr->setName(name); attr->namespaceExpr = 0; } if(!(yyvsp[(2) - (3)].parenExpr)->getChildren().empty()) { if(attr->getChildren() != 0 && !attr->getChildren()->empty()) { yyerror((yylsp[(1) - (3)]), "The xsl:attribute instruction has both a select attribute and a sequence constructor [err:XTSE0840]"); } VectorOfASTNodes *children = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); *children = (yyvsp[(2) - (3)].parenExpr)->getChildren(); attr->setChildren(children); } else if(attr->getChildren() == 0) { VectorOfASTNodes *children = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); children->push_back(WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQSequence(MEMMGR))); attr->setChildren(children); } } break; case 195: #line 2053 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQAttributeConstructor(0, 0, MEMMGR)); } break; case 196: #line 2057 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (3)].astNode); ASTNode *content = WRAP((yylsp[(3) - (3)]), new (MEMMGR) XQSimpleContent((yyvsp[(3) - (3)].itemList), MEMMGR)); ((XQAttributeConstructor*)(yyval.astNode))->setName(PRESERVE_NS((yylsp[(2) - (3)]), content)); } break; case 197: #line 2064 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (3)].astNode); ASTNode *content = WRAP((yylsp[(3) - (3)]), new (MEMMGR) XQSimpleContent((yyvsp[(3) - (3)].itemList), MEMMGR)); ((XQAttributeConstructor*)(yyval.astNode))->namespaceExpr = PRESERVE_NS((yylsp[(2) - (3)]), content); } break; case 198: #line 2071 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (3)].astNode); VectorOfASTNodes *children = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); children->push_back(PRESERVE_NS((yylsp[(2) - (3)]), (yyvsp[(3) - (3)].astNode))); ((XQAttributeConstructor*)(yyval.astNode))->setChildren(children); } break; case 199: #line 2080 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (3)].astNode); // TBD separator - jpcs /* ((XQAttributeConstructor*)$$)->setChildren(children); */ } break; case 200: #line 2089 "../src/parser/XQParser.y" { XQNamespaceConstructor *ns = (XQNamespaceConstructor*)(yyvsp[(1) - (3)].astNode); (yyval.astNode) = ns; if(ns->getName() == 0) { yyerror((yylsp[(1) - (3)]), "The xsl:namespace instruction does not have a {}name attribute"); } if(!(yyvsp[(2) - (3)].parenExpr)->getChildren().empty()) { if(ns->getChildren() != 0 && !ns->getChildren()->empty()) { yyerror((yylsp[(1) - (3)]), "The xsl:namespace instruction has both a select attribute and a sequence constructor [err:XTSE0840]"); } VectorOfASTNodes *children = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); *children = (yyvsp[(2) - (3)].parenExpr)->getChildren(); ns->setChildren(children); } else if(ns->getChildren() == 0) { VectorOfASTNodes *children = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); children->push_back(WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQSequence(MEMMGR))); ns->setChildren(children); } } break; case 201: #line 2116 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQNamespaceConstructor(0, 0, MEMMGR)); } break; case 202: #line 2120 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (3)].astNode); ASTNode *content = WRAP((yylsp[(3) - (3)]), new (MEMMGR) XQSimpleContent((yyvsp[(3) - (3)].itemList), MEMMGR)); ((XQNamespaceConstructor*)(yyval.astNode))->setName(PRESERVE_NS((yylsp[(2) - (3)]), content)); } break; case 203: #line 2127 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (3)].astNode); VectorOfASTNodes *children = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); children->push_back(PRESERVE_NS((yylsp[(2) - (3)]), (yyvsp[(3) - (3)].astNode))); ((XQNamespaceConstructor*)(yyval.astNode))->setChildren(children); } break; case 204: #line 2139 "../src/parser/XQParser.y" { XQElementConstructor *elem = (XQElementConstructor*)(yyvsp[(1) - (3)].astNode); (yyval.astNode) = elem; if(elem->getName() == 0) { yyerror((yylsp[(1) - (3)]), "The xsl:element instruction does not have a {}name attribute"); } if(elem->namespaceExpr != 0) { // Use fn:QName() to assign the correct URI VectorOfASTNodes args(XQillaAllocator(MEMMGR)); args.push_back(elem->namespaceExpr); args.push_back(const_cast(elem->getName())); FunctionQName *name = WRAP((yylsp[(1) - (3)]), new (MEMMGR) FunctionQName(args, MEMMGR)); elem->setName(name); elem->namespaceExpr = 0; } VectorOfASTNodes *children = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); *children = (yyvsp[(2) - (3)].parenExpr)->getChildren(); elem->setChildren(children); } break; case 205: #line 2165 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQElementConstructor(0, 0, 0, MEMMGR)); } break; case 206: #line 2169 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (3)].astNode); ASTNode *content = WRAP((yylsp[(3) - (3)]), new (MEMMGR) XQSimpleContent((yyvsp[(3) - (3)].itemList), MEMMGR)); ((XQElementConstructor*)(yyval.astNode))->setName(PRESERVE_NS((yylsp[(2) - (3)]), content)); } break; case 207: #line 2176 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (3)].astNode); ASTNode *content = WRAP((yylsp[(3) - (3)]), new (MEMMGR) XQSimpleContent((yyvsp[(3) - (3)].itemList), MEMMGR)); ((XQElementConstructor*)(yyval.astNode))->namespaceExpr = PRESERVE_NS((yylsp[(2) - (3)]), content); } break; case 208: #line 2186 "../src/parser/XQParser.y" { XQCopyOf *as = (XQCopyOf*)(yyval.astNode); (yyval.astNode) = (yyvsp[(1) - (2)].astNode); if(as->getExpression() == 0) { yyerror((yylsp[(1) - (2)]), "The xsl:copy-of instruction does not have a {}select attribute"); } } break; case 209: #line 2198 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yyloc), new (MEMMGR) XQCopyOf(MEMMGR)); } break; case 210: #line 2202 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (3)].astNode); ((XQCopyOf*)(yyval.astNode))->setExpression(PRESERVE_NS((yylsp[(2) - (3)]), (yyvsp[(3) - (3)].astNode))); } break; case 211: #line 2207 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (2)].astNode); ((XQCopyOf*)(yyval.astNode))->setCopyNamespaces((yyvsp[(2) - (2)].boolean)); } break; case 212: #line 2216 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (3)].astNode); XQCopy *as = (XQCopy*)(yyval.astNode); XQContextItem *ci = WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQContextItem(MEMMGR)); as->setExpression(ci); as->setChildren((yyvsp[(2) - (3)].parenExpr)->getChildren()); } break; case 213: #line 2229 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yyloc), new (MEMMGR) XQCopy(MEMMGR)); } break; case 214: #line 2233 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (2)].astNode); ((XQCopy*)(yyval.astNode))->setCopyNamespaces((yyvsp[(2) - (2)].boolean)); } break; case 215: #line 2238 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (2)].astNode); ((XQCopy*)(yyval.astNode))->setInheritNamespaces((yyvsp[(2) - (2)].boolean)); } break; case 216: #line 2247 "../src/parser/XQParser.y" { // TBD xsl:sort - jpcs (yyval.astNode) = (yyvsp[(1) - (3)].astNode); XQMap *map = (XQMap*)(yyval.astNode); map->setArg2((yyvsp[(2) - (3)].parenExpr)); if(map->getArg1() == 0) { yyerror((yylsp[(1) - (3)]), "The xsl:for-each instruction does not have a {}select attribute"); } } break; case 217: #line 2261 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQMap(0, 0, MEMMGR)); } break; case 218: #line 2265 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (3)].astNode); ((XQMap*)(yyval.astNode))->setArg1(PRESERVE_NS((yylsp[(2) - (3)]), (yyvsp[(3) - (3)].astNode))); } break; case 219: #line 2278 "../src/parser/XQParser.y" { (yyval.itemList) = (yyvsp[(1) - (3)].itemList); (yyval.itemList)->push_back(PRESERVE_NS((yylsp[(3) - (3)]), (yyvsp[(3) - (3)].astNode))); } break; case 220: #line 2283 "../src/parser/XQParser.y" { (yyval.itemList) = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); (yyval.itemList)->push_back(PRESERVE_NS((yylsp[(1) - (1)]), (yyvsp[(1) - (1)].astNode))); } break; case 221: #line 2295 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (1)].astNode); } break; case 222: #line 2299 "../src/parser/XQParser.y" { NodeTest *nt = new (MEMMGR) NodeTest(); nt->setNodeType(Node::document_string); nt->setNameWildcard(); nt->setNamespaceWildcard(); (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQStep(XQStep::SELF, nt, MEMMGR)); } break; case 223: #line 2307 "../src/parser/XQParser.y" { // . intersect id("a") VectorOfASTNodes oargs(XQillaAllocator(MEMMGR)); oargs.push_back(WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQContextItem(MEMMGR))); oargs.push_back((yyvsp[(1) - (1)].astNode)); (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) Intersect(oargs, MEMMGR)); } break; case 224: #line 2320 "../src/parser/XQParser.y" { NodeTest *nt = new (MEMMGR) NodeTest(); nt->setNodeType(Node::document_string); nt->setNameWildcard(); nt->setNamespaceWildcard(); (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQStep(XQStep::PARENT, nt, MEMMGR)); } break; case 225: #line 2328 "../src/parser/XQParser.y" { NodeTest *nt = new (MEMMGR) NodeTest(); nt->setNodeType(Node::document_string); nt->setNameWildcard(); nt->setNamespaceWildcard(); (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQStep(XQStep::ANCESTOR, nt, MEMMGR)); } break; case 226: #line 2341 "../src/parser/XQParser.y" { VectorOfASTNodes fargs(XQillaAllocator(MEMMGR)); fargs.push_back((yyvsp[(3) - (4)].astNode)); (yyval.astNode) = WRAP((yylsp[(1) - (4)]), new (MEMMGR) FunctionId(fargs, MEMMGR)); } break; case 227: #line 2348 "../src/parser/XQParser.y" { // VectorOfASTNodes fargs(XQillaAllocator(MEMMGR)); // fargs.push_back($3); // fargs.push_back($5); // $$ = WRAP(@1, new (MEMMGR) FunctionKey(fargs, MEMMGR)); // TBD key() - jpcs (yyval.astNode) = WRAP((yylsp[(1) - (6)]), new (MEMMGR) XQContextItem(MEMMGR)); } break; case 232: #line 2387 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(1) - (1)].astNode); } break; case 233: #line 2391 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (2)]), new (MEMMGR) XQPredicate((yyvsp[(2) - (2)].astNode), (yyvsp[(1) - (2)].astNode), MEMMGR)); } break; case 234: #line 2395 "../src/parser/XQParser.y" { // id("a")/foo -> self::foo[parent::node() intersect id("a")] NodeTest *nt = new (MEMMGR) NodeTest(); nt->setTypeWildcard(); nt->setNameWildcard(); nt->setNamespaceWildcard(); XQStep *step = WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQStep(XQStep::PARENT, nt, MEMMGR)); VectorOfASTNodes oargs(XQillaAllocator(MEMMGR)); oargs.push_back(step); oargs.push_back((yyvsp[(1) - (3)].astNode)); Intersect *intersect = WRAP((yylsp[(1) - (3)]), new (MEMMGR) Intersect(oargs, MEMMGR)); (yyval.astNode) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQPredicate((yyvsp[(3) - (3)].astNode), intersect, MEMMGR)); } break; case 235: #line 2413 "../src/parser/XQParser.y" { // id("a")/foo -> self::foo[ancestor::node() intersect id("a")] NodeTest *nt = new (MEMMGR) NodeTest(); nt->setTypeWildcard(); nt->setNameWildcard(); nt->setNamespaceWildcard(); XQStep *step = WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQStep(XQStep::ANCESTOR, nt, MEMMGR)); VectorOfASTNodes oargs(XQillaAllocator(MEMMGR)); oargs.push_back(step); oargs.push_back((yyvsp[(1) - (3)].astNode)); Intersect *intersect = WRAP((yylsp[(1) - (3)]), new (MEMMGR) Intersect(oargs, MEMMGR)); (yyval.astNode) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQPredicate((yyvsp[(3) - (3)].astNode), intersect, MEMMGR)); } break; case 236: #line 2431 "../src/parser/XQParser.y" { ASTNode *step = (yyvsp[(1) - (3)].astNode); while(step->getType() == ASTNode::PREDICATE) step = (ASTNode*)((XQPredicate*)step)->getExpression(); ((XQStep*)step)->setAxis(XQStep::PARENT); (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) XQPredicate((yyvsp[(3) - (3)].astNode), (yyvsp[(1) - (3)].astNode), MEMMGR)); } break; case 237: #line 2441 "../src/parser/XQParser.y" { ASTNode *step = (yyvsp[(1) - (3)].astNode); while(step->getType() == ASTNode::PREDICATE) step = (ASTNode*)((XQPredicate*)step)->getExpression(); ((XQStep*)step)->setAxis(XQStep::ANCESTOR); (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) XQPredicate((yyvsp[(3) - (3)].astNode), (yyvsp[(1) - (3)].astNode), MEMMGR)); } break; case 238: #line 2455 "../src/parser/XQParser.y" { (yyval.astNode) = XQPredicate::addPredicates(WRAP((yylsp[(1) - (2)]), new (MEMMGR) XQStep(XQStep::SELF, (yyvsp[(1) - (2)].nodeTest), MEMMGR)), (yyvsp[(2) - (2)].predicates)); } break; case 239: #line 2463 "../src/parser/XQParser.y" { if(!(yyvsp[(1) - (1)].nodeTest)->isNodeTypeSet()) (yyvsp[(1) - (1)].nodeTest)->setNodeType(Node::element_string); (yyval.nodeTest) = (yyvsp[(1) - (1)].nodeTest); } break; case 240: #line 2469 "../src/parser/XQParser.y" { if(!(yyvsp[(3) - (3)].nodeTest)->isNodeTypeSet()) (yyvsp[(3) - (3)].nodeTest)->setNodeType(Node::element_string); (yyval.nodeTest) = (yyvsp[(3) - (3)].nodeTest); } break; case 241: #line 2475 "../src/parser/XQParser.y" { if(!(yyvsp[(3) - (3)].nodeTest)->isNodeTypeSet()) (yyvsp[(3) - (3)].nodeTest)->setNodeType(Node::attribute_string); (yyval.nodeTest) = (yyvsp[(3) - (3)].nodeTest); } break; case 242: #line 2481 "../src/parser/XQParser.y" { if(!(yyvsp[(2) - (2)].nodeTest)->isNodeTypeSet()) (yyvsp[(2) - (2)].nodeTest)->setNodeType(Node::attribute_string); (yyval.nodeTest) = (yyvsp[(2) - (2)].nodeTest); } break; case 243: #line 2492 "../src/parser/XQParser.y" { (yyval.predicates) = new (MEMMGR) VectorOfPredicates(MEMMGR); } break; case 244: #line 2496 "../src/parser/XQParser.y" { XQPredicate *pred = WRAP((yylsp[(2) - (4)]), new (MEMMGR) XQPredicate((yyvsp[(3) - (4)].astNode), MEMMGR)); (yyvsp[(1) - (4)].predicates)->push_back(pred); (yyval.predicates) = (yyvsp[(1) - (4)].predicates); } break; case 252: #line 2525 "../src/parser/XQParser.y" { // TBD Set the language correctly on the context - jpcs if(XPath2Utils::equals((yyvsp[(2) - (2)].str),sz1_0)) { QP->_lexer->setVersion3(false); QP->_query->setVersion3(false); } else if(XPath2Utils::equals((yyvsp[(2) - (2)].str),sz3_0)) { if(!QP->_lexer->isVersion3()) { yyerror((yylsp[(1) - (2)]), "This XQuery processor is not configured to support XQuery 3.0 [err:XQST0031]"); } QP->_lexer->setVersion3(true); QP->_query->setVersion3(true); } else yyerror((yylsp[(1) - (2)]), "This XQuery processor only supports version 1.0 and 3.0 [err:XQST0031]"); } break; case 253: #line 2545 "../src/parser/XQParser.y" { XMLCh *encName = (yyvsp[(2) - (2)].str); if((*encName < chLatin_A || *encName > chLatin_Z) && (*encName < chLatin_a || *encName > chLatin_z)) yyerror((yylsp[(1) - (2)]), "The specified encoding does not conform to the definition of EncName [err:XQST0087]"); for(++encName; *encName; ++encName) { if((*encName < chLatin_A || *encName > chLatin_Z) && (*encName < chLatin_a || *encName > chLatin_z) && (*encName < chDigit_0 || *encName > chDigit_9) && *encName != chPeriod && *encName != chDash) yyerror((yylsp[(1) - (2)]), "The specified encoding does not conform to the definition of EncName [err:XQST0087]"); } } break; case 256: #line 2569 "../src/parser/XQParser.y" { if(*(yyvsp[(5) - (6)].str) == 0) yyerror((yylsp[(5) - (6)]), "The literal that specifies the namespace of a module must not be of zero length [err:XQST0088]"); QP->_query->setIsLibraryModule(); QP->_query->setModuleTargetNamespace((yyvsp[(5) - (6)].str)); SET_NAMESPACE((yylsp[(3) - (6)]), (yyvsp[(3) - (6)].str), (yyvsp[(5) - (6)].str)); } break; case 258: #line 2583 "../src/parser/XQParser.y" { CHECK_SECOND_STEP((yylsp[(2) - (3)]), "a setter"); } break; case 259: #line 2587 "../src/parser/XQParser.y" { CHECK_SECOND_STEP((yylsp[(2) - (3)]), "an import"); } break; case 260: #line 2591 "../src/parser/XQParser.y" { CHECK_SECOND_STEP((yylsp[(2) - (3)]), "a namespace"); } break; case 261: #line 2595 "../src/parser/XQParser.y" { CHECK_SECOND_STEP((yylsp[(2) - (3)]), "a default namespace"); } break; case 262: #line 2599 "../src/parser/XQParser.y" { QP->_flags.set(BIT_DECLARE_SECOND_STEP); } break; case 263: #line 2603 "../src/parser/XQParser.y" { QP->_flags.set(BIT_DECLARE_SECOND_STEP); XQUserFunction* decl=(yyvsp[(2) - (3)].functDecl); QP->_query->addFunction(decl); } break; case 264: #line 2609 "../src/parser/XQParser.y" { QP->_flags.set(BIT_DECLARE_SECOND_STEP); XQUserFunction* decl=(yyvsp[(2) - (3)].functDecl); QP->_query->addFunction(decl); } break; case 265: #line 2615 "../src/parser/XQParser.y" { QP->_flags.set(BIT_DECLARE_SECOND_STEP); } break; case 266: #line 2619 "../src/parser/XQParser.y" { CHECK_SECOND_STEP((yylsp[(2) - (3)]), "an ftoption declaration"); } break; case 278: #line 2651 "../src/parser/XQParser.y" { SET_NAMESPACE((yylsp[(3) - (5)]), (yyvsp[(3) - (5)].str), (yyvsp[(5) - (5)].str)); } break; case 279: #line 2659 "../src/parser/XQParser.y" { CHECK_SPECIFIED((yylsp[(1) - (3)]), BIT_BOUNDARY_SPECIFIED, "boundary space", "XQST0068"); CONTEXT->setPreserveBoundarySpace(true); } break; case 280: #line 2664 "../src/parser/XQParser.y" { CHECK_SPECIFIED((yylsp[(1) - (3)]), BIT_BOUNDARY_SPECIFIED, "boundary space", "XQST0068"); CONTEXT->setPreserveBoundarySpace(false); } break; case 281: #line 2673 "../src/parser/XQParser.y" { CHECK_SPECIFIED((yylsp[(1) - (5)]), BIT_DEFAULTELEMENTNAMESPACE_SPECIFIED, "default element namespace", "XQST0066"); CONTEXT->setDefaultElementAndTypeNS((yyvsp[(5) - (5)].str)); } break; case 282: #line 2678 "../src/parser/XQParser.y" { CHECK_SPECIFIED((yylsp[(1) - (5)]), BIT_DEFAULTFUNCTIONNAMESPACE_SPECIFIED, "default function namespace", "XQST0066"); CONTEXT->setDefaultFuncNS((yyvsp[(5) - (5)].str)); } break; case 283: #line 2687 "../src/parser/XQParser.y" { // validate the QName QualifiedName qName((yyvsp[(3) - (4)].str)); const XMLCh* prefix = qName.getPrefix(); if(prefix == 0 || *prefix == 0) yyerror((yylsp[(3) - (4)]), "The option name must have a prefix [err:XPST0081]"); const XMLCh *uri = 0; try { LOCATION((yylsp[(3) - (4)]), loc); uri = CONTEXT->getUriBoundToPrefix(prefix, &loc); } catch(NamespaceLookupException&) { yyerror((yylsp[(3) - (4)]), "The option name is using an undefined namespace prefix [err:XPST0081]"); } if(XPath2Utils::equals(uri, XQillaFunction::XMLChFunctionURI)) { if(XPath2Utils::equals(qName.getName(), option_projection)) { if(XPath2Utils::equals((yyvsp[(4) - (4)].str), SchemaSymbols::fgATTVAL_TRUE)) { CONTEXT->setProjection(true); } else if(XPath2Utils::equals((yyvsp[(4) - (4)].str), SchemaSymbols::fgATTVAL_FALSE)) { CONTEXT->setProjection(false); } else { yyerror((yylsp[(4) - (4)]), "Unknown value for option xqilla:projection. Should be 'true' or 'false' [err:XQILLA]"); } } else if(XPath2Utils::equals(qName.getName(), option_psvi)) { if(XPath2Utils::equals((yyvsp[(4) - (4)].str), SchemaSymbols::fgATTVAL_TRUE)) { CONTEXT->getDocumentCache()->setDoPSVI(true); } else if(XPath2Utils::equals((yyvsp[(4) - (4)].str), SchemaSymbols::fgATTVAL_FALSE)) { CONTEXT->getDocumentCache()->setDoPSVI(false); } else { yyerror((yylsp[(4) - (4)]), "Unknown value for option xqilla:psvi. Should be 'true' or 'false' [err:XQILLA]"); } } else if(XPath2Utils::equals(qName.getName(), option_lint)) { if(XPath2Utils::equals((yyvsp[(4) - (4)].str), SchemaSymbols::fgATTVAL_TRUE)) { CONTEXT->setDoLintWarnings(true); } else if(XPath2Utils::equals((yyvsp[(4) - (4)].str), SchemaSymbols::fgATTVAL_FALSE)) { CONTEXT->setDoLintWarnings(false); } else { yyerror((yylsp[(4) - (4)]), "Unknown value for option xqilla:lint. Should be 'true' or 'false' [err:XQILLA]"); } } else { yyerror((yylsp[(3) - (4)]), "Unknown option name in the xqilla namespace [err:XQILLA]"); } } } break; case 284: #line 2747 "../src/parser/XQParser.y" { // TBD FTOptionDecl } break; case 285: #line 2755 "../src/parser/XQParser.y" { CHECK_SPECIFIED((yylsp[(1) - (3)]), BIT_ORDERING_SPECIFIED, "ordering mode", "XQST0065"); CONTEXT->setNodeSetOrdering(StaticContext::ORDERING_ORDERED); } break; case 286: #line 2760 "../src/parser/XQParser.y" { CHECK_SPECIFIED((yylsp[(1) - (3)]), BIT_ORDERING_SPECIFIED, "ordering mode", "XQST0065"); CONTEXT->setNodeSetOrdering(StaticContext::ORDERING_UNORDERED); } break; case 287: #line 2769 "../src/parser/XQParser.y" { CHECK_SPECIFIED((yylsp[(1) - (5)]), BIT_EMPTYORDERING_SPECIFIED, "empty ordering mode", "XQST0069"); CONTEXT->setDefaultFLWOROrderingMode(StaticContext::FLWOR_ORDER_EMPTY_GREATEST); } break; case 288: #line 2774 "../src/parser/XQParser.y" { CHECK_SPECIFIED((yylsp[(1) - (5)]), BIT_EMPTYORDERING_SPECIFIED, "empty ordering mode", "XQST0069"); CONTEXT->setDefaultFLWOROrderingMode(StaticContext::FLWOR_ORDER_EMPTY_LEAST); } break; case 289: #line 2783 "../src/parser/XQParser.y" { CHECK_SPECIFIED((yylsp[(1) - (5)]), BIT_COPYNAMESPACE_SPECIFIED, "copy namespace", "XQST0055"); CONTEXT->setPreserveNamespaces((yyvsp[(3) - (5)].boolean)); CONTEXT->setInheritNamespaces((yyvsp[(5) - (5)].boolean)); } break; case 290: #line 2793 "../src/parser/XQParser.y" { (yyval.boolean) = true; } break; case 291: #line 2797 "../src/parser/XQParser.y" { (yyval.boolean) = false; } break; case 292: #line 2805 "../src/parser/XQParser.y" { (yyval.boolean) = true; } break; case 293: #line 2809 "../src/parser/XQParser.y" { (yyval.boolean) = false; } break; case 294: #line 2817 "../src/parser/XQParser.y" { CHECK_SPECIFIED((yylsp[(1) - (4)]), BIT_COLLATION_SPECIFIED, "default collation", "XQST0038"); try { LOCATION((yylsp[(4) - (4)]), loc); CONTEXT->getCollation((yyvsp[(4) - (4)].str), &loc); } catch(ContextException&) { yyerror((yylsp[(4) - (4)]), "The specified collation does not exist [err:XQST0038]"); } CONTEXT->setDefaultCollation((yyvsp[(4) - (4)].str)); } break; case 295: #line 2833 "../src/parser/XQParser.y" { CHECK_SPECIFIED((yylsp[(1) - (3)]), BIT_BASEURI_SPECIFIED, "base URI", "XQST0032"); CONTEXT->setBaseURI((yyvsp[(3) - (3)].str)); } break; case 296: #line 2842 "../src/parser/XQParser.y" { if(XPath2Utils::equals((yyvsp[(3) - (5)].str), XMLUni::fgZeroLenString)) CONTEXT->setDefaultElementAndTypeNS((yyvsp[(4) - (5)].str)); else if(XPath2Utils::equals((yyvsp[(4) - (5)].str), XMLUni::fgZeroLenString)) yyerror((yylsp[(1) - (5)]), "A schema that has no target namespace cannot be bound to a non-empty prefix [err:XQST0057]"); else { SET_NAMESPACE((yylsp[(3) - (5)]), (yyvsp[(3) - (5)].str), (yyvsp[(4) - (5)].str)); } LOCATION((yylsp[(1) - (5)]), loc); CONTEXT->addSchemaLocation((yyvsp[(4) - (5)].str), (yyvsp[(5) - (5)].stringList), &loc); } break; case 297: #line 2854 "../src/parser/XQParser.y" { LOCATION((yylsp[(1) - (4)]), loc); CONTEXT->addSchemaLocation((yyvsp[(3) - (4)].str), (yyvsp[(4) - (4)].stringList), &loc); } break; case 298: #line 2862 "../src/parser/XQParser.y" { (yyval.stringList) = NULL; } break; case 299: #line 2866 "../src/parser/XQParser.y" { (yyval.stringList) = new (MEMMGR) VectorOfStrings(XQillaAllocator(MEMMGR)); (yyval.stringList)->push_back((yyvsp[(2) - (2)].str)); } break; case 300: #line 2871 "../src/parser/XQParser.y" { (yyvsp[(1) - (3)].stringList)->push_back((yyvsp[(3) - (3)].str)); (yyval.stringList) = (yyvsp[(1) - (3)].stringList); } break; case 301: #line 2880 "../src/parser/XQParser.y" { (yyval.str) = (yyvsp[(2) - (3)].str); } break; case 302: #line 2884 "../src/parser/XQParser.y" { (yyval.str) = (XMLCh*)XMLUni::fgZeroLenString; } break; case 303: #line 2892 "../src/parser/XQParser.y" { if(XMLString::stringLen((yyvsp[(6) - (7)].str))==0) yyerror((yylsp[(6) - (7)]), "The literal that specifies the target namespace in a module import must not be of zero length [err:XQST0088]"); SET_NAMESPACE((yylsp[(4) - (7)]), (yyvsp[(4) - (7)].str), (yyvsp[(6) - (7)].str)); LOCATION((yylsp[(1) - (7)]), loc); QP->_query->importModule((yyvsp[(6) - (7)].str), (yyvsp[(7) - (7)].stringList), &loc); } break; case 304: #line 2902 "../src/parser/XQParser.y" { if(XMLString::stringLen((yyvsp[(3) - (4)].str))==0) yyerror((yylsp[(3) - (4)]), "The literal that specifies the target namespace in a module import must not be of zero length [err:XQST0088]"); LOCATION((yylsp[(1) - (4)]), loc); QP->_query->importModule((yyvsp[(3) - (4)].str), (yyvsp[(4) - (4)].stringList), &loc); } break; case 305: #line 2914 "../src/parser/XQParser.y" { QP->_query->addVariable(WRAP((yylsp[(1) - (6)]), new (MEMMGR) XQGlobalVariable((yyvsp[(4) - (6)].str), (yyvsp[(5) - (6)].sequenceType), (yyvsp[(6) - (6)].astNode), MEMMGR))); } break; case 306: #line 2921 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(2) - (2)].astNode); } break; case 307: #line 2925 "../src/parser/XQParser.y" { (yyval.astNode) = NULL; } break; case 308: #line 2933 "../src/parser/XQParser.y" { CHECK_SPECIFIED((yylsp[(1) - (3)]), BIT_CONSTRUCTION_SPECIFIED, "construction mode", "XQST0067"); CONTEXT->setConstructionMode(StaticContext::CONSTRUCTION_MODE_PRESERVE); } break; case 309: #line 2938 "../src/parser/XQParser.y" { CHECK_SPECIFIED((yylsp[(1) - (3)]), BIT_CONSTRUCTION_SPECIFIED, "construction mode", "XQST0067"); CONTEXT->setConstructionMode(StaticContext::CONSTRUCTION_MODE_STRIP); } break; case 310: #line 2947 "../src/parser/XQParser.y" { (yyvsp[(2) - (7)].signature)->argSpecs = (yyvsp[(5) - (7)].argSpecs); (yyvsp[(2) - (7)].signature)->returnType = (yyvsp[(6) - (7)].sequenceType); (yyval.functDecl) = WRAP((yylsp[(1) - (7)]), new (MEMMGR) XQUserFunction((yyvsp[(4) - (7)].str), (yyvsp[(2) - (7)].signature), (yyvsp[(7) - (7)].astNode), true, MEMMGR)); } break; case 313: #line 2958 "../src/parser/XQParser.y" { (yyval.argSpecs) = NULL; } break; case 314: #line 2962 "../src/parser/XQParser.y" { (yyval.argSpecs) = (yyvsp[(2) - (3)].argSpecs); } break; case 316: #line 2971 "../src/parser/XQParser.y" { (yyval.astNode) = 0; } break; case 317: #line 2979 "../src/parser/XQParser.y" { (yyval.signature) = new (MEMMGR) FunctionSignature(MEMMGR); } break; case 318: #line 2983 "../src/parser/XQParser.y" { switch((yyvsp[(1) - (2)].signature)->privateOption) { case FunctionSignature::OP_TRUE: yyerror((yylsp[(2) - (2)]), "Function option 'private' already specified [err:XQST0106]"); case FunctionSignature::OP_FALSE: yyerror((yylsp[(2) - (2)]), "Function option 'public' already specified [err:XQST0106]"); case FunctionSignature::OP_DEFAULT: (yyvsp[(1) - (2)].signature)->privateOption = (yyvsp[(2) - (2)].boolean) ? FunctionSignature::OP_TRUE : FunctionSignature::OP_FALSE; break; } (yyval.signature) = (yyvsp[(1) - (2)].signature); } break; case 319: #line 2996 "../src/parser/XQParser.y" { switch((yyvsp[(1) - (2)].signature)->nondeterministic) { case FunctionSignature::OP_TRUE: yyerror((yylsp[(2) - (2)]), "Function option 'nondeterministic' already specified [err:XQST0106]"); case FunctionSignature::OP_FALSE: yyerror((yylsp[(2) - (2)]), "Function option 'deterministic' already specified [err:XQST0106]"); case FunctionSignature::OP_DEFAULT: (yyvsp[(1) - (2)].signature)->nondeterministic = (yyvsp[(2) - (2)].boolean) ? FunctionSignature::OP_TRUE : FunctionSignature::OP_FALSE; break; } (yyval.signature) = (yyvsp[(1) - (2)].signature); } break; case 320: #line 3009 "../src/parser/XQParser.y" { if((yyvsp[(1) - (2)].signature)->updating != FunctionSignature::OP_DEFAULT) yyerror((yylsp[(2) - (2)]), "Function option 'updating' already specified [err:XPST0003]"); (yyvsp[(1) - (2)].signature)->updating = FunctionSignature::OP_TRUE; (yyval.signature) = (yyvsp[(1) - (2)].signature); } break; case 321: #line 3018 "../src/parser/XQParser.y" { (yyval.boolean) = true; } break; case 322: #line 3018 "../src/parser/XQParser.y" { (yyval.boolean) = false; } break; case 323: #line 3021 "../src/parser/XQParser.y" { (yyval.boolean) = false; } break; case 324: #line 3021 "../src/parser/XQParser.y" { (yyval.boolean) = true; } break; case 325: #line 3025 "../src/parser/XQParser.y" { (yyval.sequenceType) = 0; } break; case 326: #line 3029 "../src/parser/XQParser.y" { (yyval.sequenceType) = (yyvsp[(2) - (2)].sequenceType); } break; case 327: #line 3037 "../src/parser/XQParser.y" { (yyvsp[(1) - (3)].argSpecs)->push_back((yyvsp[(3) - (3)].argSpec)); (yyval.argSpecs) = (yyvsp[(1) - (3)].argSpecs); } break; case 328: #line 3042 "../src/parser/XQParser.y" { ArgumentSpecs* paramList = new (MEMMGR) ArgumentSpecs(XQillaAllocator(MEMMGR)); paramList->push_back((yyvsp[(1) - (1)].argSpec)); (yyval.argSpecs) = paramList; } break; case 329: #line 3052 "../src/parser/XQParser.y" { (yyval.argSpec) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) ArgumentSpec((yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].sequenceType), MEMMGR)); } break; case 330: #line 3060 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(2) - (3)].astNode); } break; case 331: #line 3068 "../src/parser/XQParser.y" { if(QP->_lexer->isUpdate()) { QP->_query->setQueryBody(WRAP((yylsp[(1) - (1)]), new (MEMMGR) UApplyUpdates((yyvsp[(1) - (1)].astNode), MEMMGR))); } else { QP->_query->setQueryBody((yyvsp[(1) - (1)].astNode)); } } break; case 332: #line 3081 "../src/parser/XQParser.y" { ASTNode* prevExpr=(yyvsp[(1) - (3)].astNode); if(prevExpr->getType()==ASTNode::SEQUENCE) { ((XQSequence *)prevExpr)->addItem((yyvsp[(3) - (3)].astNode)); (yyval.astNode) = (yyvsp[(1) - (3)].astNode); } else { XQSequence *dis = WRAP((yylsp[(2) - (3)]), new (MEMMGR) XQSequence(MEMMGR)); dis->addItem((yyvsp[(1) - (3)].astNode)); dis->addItem((yyvsp[(3) - (3)].astNode)); (yyval.astNode) = dis; } } break; case 346: #line 3119 "../src/parser/XQParser.y" { // Add a ContextTuple at the start TupleNode *tuples = setLastAncestor((yyvsp[(1) - (3)].tupleNode), WRAP((yylsp[(1) - (3)]), new (MEMMGR) ContextTuple(MEMMGR))); // Check the correct clause order for XQuery 1.0 // FLWORExpr ::= (ForClause | LetClause)+ WhereClause? OrderByClause? "return" ExprSingle if(!QP->_lexer->isVersion3()) { const TupleNode *where = 0; const TupleNode *forlet = 0; const TupleNode *node = tuples; while(node) { switch(node->getType()) { case TupleNode::ORDER_BY: if(where) XQThrow3(StaticErrorException, X("XQParser"), X("Where clause after order by clause [err:XPST0003]"), where); else if(forlet) XQThrow3(StaticErrorException, X("XQParser"), X("For or let clause after order by clause [err:XPST0003]"), forlet); break; case TupleNode::WHERE: if(where) XQThrow3(StaticErrorException, X("XQParser"), X("Duplicate where clause [err:XPST0003]"), where); else if(forlet) XQThrow3(StaticErrorException, X("XQParser"), X("For or let clause after where clause [err:XPST0003]"), forlet); where = node; break; case TupleNode::FOR: case TupleNode::LET: forlet = node; break; default: break; } node = node->getParent(); } } // Add the return expression (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) XQReturn(tuples, (yyvsp[(3) - (3)].astNode), MEMMGR)); } break; case 348: #line 3164 "../src/parser/XQParser.y" { // Order by has a special check here, because a single OrderByClause can result // in multiple OrderByTuple objects. const TupleNode *node = (yyvsp[(1) - (2)].tupleNode); while(node) { if(node->getType() == TupleNode::ORDER_BY) XQThrow3(StaticErrorException, X("XQParser"), X("Duplicate order by clause [err:XPST0003]"), (yyvsp[(2) - (2)].tupleNode)); node = node->getParent(); } (yyval.tupleNode) = setLastAncestor((yyvsp[(2) - (2)].tupleNode), (yyvsp[(1) - (2)].tupleNode)); } break; case 349: #line 3177 "../src/parser/XQParser.y" { (yyval.tupleNode) = setLastAncestor((yyvsp[(2) - (2)].tupleNode), (yyvsp[(1) - (2)].tupleNode)); } break; case 355: #line 3192 "../src/parser/XQParser.y" { (yyval.tupleNode) = (yyvsp[(2) - (2)].tupleNode); } break; case 356: #line 3199 "../src/parser/XQParser.y" { (yyval.tupleNode) = setLastAncestor((yyvsp[(3) - (3)].tupleNode), (yyvsp[(1) - (3)].tupleNode)); } break; case 358: #line 3207 "../src/parser/XQParser.y" { // the SequenceType has been specified for each item of the sequence, but we can only apply to the // sequence itself, so allow it to match multiple matches (yyvsp[(3) - (7)].sequenceType)->setOccurrence(SequenceType::STAR); (yyval.tupleNode) = WRAP((yylsp[(1) - (7)]), new (MEMMGR) ForTuple(0, (yyvsp[(2) - (7)].str), (yyvsp[(4) - (7)].str), WRAP((yylsp[(3) - (7)]), new (MEMMGR) XQTreatAs((yyvsp[(7) - (7)].astNode), (yyvsp[(3) - (7)].sequenceType), MEMMGR)), MEMMGR)); } break; case 359: #line 3218 "../src/parser/XQParser.y" { (yyval.str) = NULL; } break; case 360: #line 3222 "../src/parser/XQParser.y" { REJECT_NOT_XQUERY(PositionalVar, (yylsp[(1) - (3)])); (yyval.str) = (yyvsp[(3) - (3)].str); } break; case 361: #line 3232 "../src/parser/XQParser.y" { (yyval.str) = NULL; } break; case 362: #line 3236 "../src/parser/XQParser.y" { (yyval.str) = (yyvsp[(3) - (3)].str); } break; case 363: #line 3246 "../src/parser/XQParser.y" { (yyval.tupleNode) = (yyvsp[(2) - (2)].tupleNode); } break; case 364: #line 3253 "../src/parser/XQParser.y" { (yyval.tupleNode) = setLastAncestor((yyvsp[(3) - (3)].tupleNode), (yyvsp[(1) - (3)].tupleNode)); } break; case 366: #line 3261 "../src/parser/XQParser.y" { (yyval.tupleNode) = WRAP((yylsp[(1) - (5)]), new (MEMMGR) LetTuple(0, (yyvsp[(2) - (5)].str), WRAP((yylsp[(3) - (5)]), new (MEMMGR) XQTreatAs((yyvsp[(5) - (5)].astNode), (yyvsp[(3) - (5)].sequenceType), MEMMGR)), MEMMGR)); } break; case 367: #line 3265 "../src/parser/XQParser.y" { ASTNode *literal = WRAP((yylsp[(1) - (5)]), new (MEMMGR) XQLiteral( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, X("0"), AnyAtomicType::DECIMAL, MEMMGR)); (yyval.tupleNode) = WRAP((yylsp[(1) - (5)]), new (MEMMGR) LetTuple(0, (yyvsp[(3) - (5)].str), literal, MEMMGR)); } break; case 368: #line 3278 "../src/parser/XQParser.y" { (yyval.tupleNode) = WRAP((yylsp[(1) - (2)]), new (MEMMGR) WhereTuple(0, (yyvsp[(2) - (2)].astNode), MEMMGR)); } break; case 369: #line 3286 "../src/parser/XQParser.y" { (yyval.tupleNode) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) CountTuple(0, (yyvsp[(3) - (3)].str), MEMMGR)); } break; case 370: #line 3294 "../src/parser/XQParser.y" { ((OrderByTuple*)getLastAncestor((yyvsp[(3) - (3)].tupleNode)))->setUnstable(); (yyval.tupleNode) = (yyvsp[(3) - (3)].tupleNode); } break; case 371: #line 3299 "../src/parser/XQParser.y" { (yyval.tupleNode) = (yyvsp[(4) - (4)].tupleNode); } break; case 372: #line 3307 "../src/parser/XQParser.y" { (yyval.tupleNode) = setLastAncestor((yyvsp[(1) - (3)].tupleNode), (yyvsp[(3) - (3)].tupleNode)); } break; case 374: #line 3317 "../src/parser/XQParser.y" { LOCATION((yylsp[(1) - (3)]), loc); Collation *collation = CONTEXT->getDefaultCollation(&loc); (yyval.tupleNode) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) OrderByTuple(0, (yyvsp[(1) - (3)].astNode), OrderByTuple::STABLE | (yyvsp[(2) - (3)].orderByModifier) | (yyvsp[(3) - (3)].orderByModifier), collation, MEMMGR)); } break; case 375: #line 3324 "../src/parser/XQParser.y" { try { LOCATION((yylsp[(4) - (5)]), loc); Collation *collation = CONTEXT->getCollation((yyvsp[(5) - (5)].str), &loc); (yyval.tupleNode) = WRAP((yylsp[(1) - (5)]), new (MEMMGR) OrderByTuple(0, (yyvsp[(1) - (5)].astNode), OrderByTuple::STABLE | (yyvsp[(2) - (5)].orderByModifier) | (yyvsp[(3) - (5)].orderByModifier), collation, MEMMGR)); } catch(ContextException&) { yyerror((yylsp[(4) - (5)]), "The specified collation does not exist [err:XQST0076]"); } } break; case 376: #line 3339 "../src/parser/XQParser.y" { SequenceType *zero_or_one = WRAP((yylsp[(1) - (1)]), new (MEMMGR) SequenceType(new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ANYTHING), SequenceType::QUESTION_MARK)); (yyval.astNode) = (yyvsp[(1) - (1)].astNode); (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQAtomize((yyval.astNode), MEMMGR)); (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQPromoteUntyped((yyval.astNode), SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, MEMMGR)); (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQTreatAs((yyval.astNode), zero_or_one, MEMMGR)); } break; case 377: #line 3355 "../src/parser/XQParser.y" { (yyval.orderByModifier) = OrderByTuple::ASCENDING; } break; case 378: #line 3359 "../src/parser/XQParser.y" { (yyval.orderByModifier) = OrderByTuple::ASCENDING; } break; case 379: #line 3363 "../src/parser/XQParser.y" { (yyval.orderByModifier) = OrderByTuple::DESCENDING; } break; case 380: #line 3370 "../src/parser/XQParser.y" { switch(CONTEXT->getDefaultFLWOROrderingMode()) { case StaticContext::FLWOR_ORDER_EMPTY_LEAST: (yyval.orderByModifier) = OrderByTuple::EMPTY_LEAST; break; case StaticContext::FLWOR_ORDER_EMPTY_GREATEST: (yyval.orderByModifier) = OrderByTuple::EMPTY_GREATEST; break; } } break; case 381: #line 3379 "../src/parser/XQParser.y" { (yyval.orderByModifier) = OrderByTuple::EMPTY_GREATEST; } break; case 382: #line 3383 "../src/parser/XQParser.y" { (yyval.orderByModifier) = OrderByTuple::EMPTY_LEAST; } break; case 383: #line 3392 "../src/parser/XQParser.y" { // Add a ContextTuple at the start TupleNode *tmp = setLastAncestor((yyvsp[(2) - (4)].tupleNode), WRAP((yylsp[(1) - (4)]), new (MEMMGR) ContextTuple(MEMMGR))); // Add the return expression (yyval.astNode) = WRAP((yylsp[(3) - (4)]), new (MEMMGR) XQQuantified(XQQuantified::SOME, tmp, (yyvsp[(4) - (4)].astNode), MEMMGR)); } break; case 384: #line 3400 "../src/parser/XQParser.y" { // Add a ContextTuple at the start TupleNode *tmp = setLastAncestor((yyvsp[(2) - (4)].tupleNode), WRAP((yylsp[(1) - (4)]), new (MEMMGR) ContextTuple(MEMMGR))); // Add the return expression (yyval.astNode) = WRAP((yylsp[(3) - (4)]), new (MEMMGR) XQQuantified(XQQuantified::EVERY, tmp, (yyvsp[(4) - (4)].astNode), MEMMGR)); } break; case 385: #line 3411 "../src/parser/XQParser.y" { (yyval.tupleNode) = setLastAncestor((yyvsp[(3) - (3)].tupleNode), (yyvsp[(1) - (3)].tupleNode)); } break; case 387: #line 3419 "../src/parser/XQParser.y" { // the SequenceType has been specified for each item of the sequence, but we can only apply to the // sequence itself, so allow it to match multiple matches (yyvsp[(3) - (5)].sequenceType)->setOccurrence(SequenceType::STAR); (yyval.tupleNode) = WRAP((yylsp[(1) - (5)]), new (MEMMGR) ForTuple(0, (yyvsp[(2) - (5)].str), 0, WRAP((yylsp[(3) - (5)]), new (MEMMGR) XQTreatAs((yyvsp[(5) - (5)].astNode), (yyvsp[(3) - (5)].sequenceType), MEMMGR)), MEMMGR)); } break; case 388: #line 3430 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (6)]), new (MEMMGR) XQTypeswitch( WRAP((yylsp[(1) - (6)]), (yyvsp[(3) - (6)].astNode)), (yyvsp[(5) - (6)].caseClauses), (yyvsp[(6) - (6)].caseClause), MEMMGR)); } break; case 389: #line 3437 "../src/parser/XQParser.y" { XQTypeswitch::Cases::iterator it = (yyvsp[(2) - (2)].caseClauses)->begin(); for(; it != (yyvsp[(2) - (2)].caseClauses)->end(); ++it) { (yyvsp[(1) - (2)].caseClauses)->push_back(*it); } (yyval.caseClauses) = (yyvsp[(1) - (2)].caseClauses); } break; case 391: #line 3450 "../src/parser/XQParser.y" { (yyval.caseClause) = WRAP((yylsp[(1) - (5)]), new (MEMMGR) XQTypeswitch::Case((yyvsp[(3) - (5)].str), NULL, (yyvsp[(5) - (5)].astNode))); } break; case 392: #line 3454 "../src/parser/XQParser.y" { (yyval.caseClause) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQTypeswitch::Case(NULL, NULL, (yyvsp[(3) - (3)].astNode))); } break; case 393: #line 3462 "../src/parser/XQParser.y" { // TBD Don't copy the expression when unions of SequenceTypes are implemented - jpcs XQTypeswitch::Cases::iterator it = (yyvsp[(1) - (3)].caseClauses)->begin(); if(it != (yyvsp[(1) - (3)].caseClauses)->end()) { (*it)->setExpression((yyvsp[(3) - (3)].astNode)); for(++it; it != (yyvsp[(1) - (3)].caseClauses)->end(); ++it) { (*it)->setExpression((yyvsp[(3) - (3)].astNode)->copy(CONTEXT)); } } (yyval.caseClauses) = (yyvsp[(1) - (3)].caseClauses); } break; case 394: #line 3480 "../src/parser/XQParser.y" { (yyval.caseClauses) = new (MEMMGR) XQTypeswitch::Cases(XQillaAllocator(MEMMGR)); (yyval.caseClauses)->push_back(WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQTypeswitch::Case((yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].sequenceType), 0))); } break; case 395: #line 3485 "../src/parser/XQParser.y" { REJECT_NOT_VERSION3(SequenceTypeUnion, (yylsp[(2) - (3)])); (yyvsp[(1) - (3)].caseClauses)->push_back(WRAP((yylsp[(3) - (3)]), new (MEMMGR) XQTypeswitch::Case((yyvsp[(1) - (3)].caseClauses)->back()->getQName(), (yyvsp[(3) - (3)].sequenceType), 0))); (yyval.caseClauses) = (yyvsp[(1) - (3)].caseClauses); } break; case 396: #line 3494 "../src/parser/XQParser.y" { (yyval.str) = 0; } break; case 397: #line 3498 "../src/parser/XQParser.y" { (yyval.str) = (yyvsp[(2) - (3)].str); } break; case 398: #line 3506 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (8)]), new (MEMMGR) XQIf((yyvsp[(3) - (8)].astNode), (yyvsp[(6) - (8)].astNode), (yyvsp[(8) - (8)].astNode), MEMMGR)); } break; case 399: #line 3514 "../src/parser/XQParser.y" { if((yyvsp[(1) - (3)].astNode)->getType() == ASTNode::OPERATOR && ((XQOperator*)(yyvsp[(1) - (3)].astNode))->getOperatorName() == Or::name) { ((Or*)(yyvsp[(1) - (3)].astNode))->addArgument((yyvsp[(3) - (3)].astNode)); (yyval.astNode) = (yyvsp[(1) - (3)].astNode); } else (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) Or(packageArgs((yyvsp[(1) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR), MEMMGR)); } break; case 401: #line 3528 "../src/parser/XQParser.y" { if((yyvsp[(1) - (3)].astNode)->getType()==ASTNode::OPERATOR && ((XQOperator*)(yyvsp[(1) - (3)].astNode))->getOperatorName() == And::name) { ((And*)(yyvsp[(1) - (3)].astNode))->addArgument((yyvsp[(3) - (3)].astNode)); (yyval.astNode) = (yyvsp[(1) - (3)].astNode); } else (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) And(packageArgs((yyvsp[(1) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR), MEMMGR)); } break; case 403: #line 3547 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) GeneralComp(GeneralComp::EQUAL,packageArgs((yyvsp[(1) - (3)].astNode),(yyvsp[(3) - (3)].astNode), MEMMGR),MEMMGR)); } break; case 404: #line 3551 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) GeneralComp(GeneralComp::NOT_EQUAL,packageArgs((yyvsp[(1) - (3)].astNode),(yyvsp[(3) - (3)].astNode), MEMMGR),MEMMGR)); } break; case 405: #line 3554 "../src/parser/XQParser.y" { /* Careful! */ QP->_lexer->undoLessThan(); } break; case 406: #line 3555 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (4)]), new (MEMMGR) GeneralComp(GeneralComp::LESS_THAN,packageArgs((yyvsp[(1) - (4)].astNode),(yyvsp[(4) - (4)].astNode), MEMMGR),MEMMGR)); } break; case 407: #line 3559 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) GeneralComp(GeneralComp::LESS_THAN_EQUAL,packageArgs((yyvsp[(1) - (3)].astNode),(yyvsp[(3) - (3)].astNode), MEMMGR),MEMMGR)); } break; case 408: #line 3563 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) GeneralComp(GeneralComp::GREATER_THAN,packageArgs((yyvsp[(1) - (3)].astNode),(yyvsp[(3) - (3)].astNode), MEMMGR),MEMMGR)); } break; case 409: #line 3567 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) GeneralComp(GeneralComp::GREATER_THAN_EQUAL,packageArgs((yyvsp[(1) - (3)].astNode),(yyvsp[(3) - (3)].astNode), MEMMGR),MEMMGR)); } break; case 410: #line 3571 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) Equals(packageArgs((yyvsp[(1) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR),MEMMGR)); } break; case 411: #line 3575 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) NotEquals(packageArgs((yyvsp[(1) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR),MEMMGR)); } break; case 412: #line 3579 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) LessThan(packageArgs((yyvsp[(1) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR),MEMMGR)); } break; case 413: #line 3583 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) LessThanEqual(packageArgs((yyvsp[(1) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR),MEMMGR)); } break; case 414: #line 3587 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) GreaterThan(packageArgs((yyvsp[(1) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR),MEMMGR)); } break; case 415: #line 3591 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) GreaterThanEqual(packageArgs((yyvsp[(1) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR),MEMMGR)); } break; case 416: #line 3595 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) NodeComparison(packageArgs((yyvsp[(1) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR), MEMMGR)); } break; case 417: #line 3599 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) OrderComparison(packageArgs((yyvsp[(1) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR), true, MEMMGR)); } break; case 418: #line 3603 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) OrderComparison(packageArgs((yyvsp[(1) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR), false,MEMMGR)); } break; case 420: #line 3612 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (4)]), new (MEMMGR) FTContains((yyvsp[(1) - (4)].astNode), (yyvsp[(4) - (4)].ftselection), NULL, MEMMGR)); } break; case 421: #line 3616 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (5)]), new (MEMMGR) FTContains((yyvsp[(1) - (5)].astNode), (yyvsp[(4) - (5)].ftselection), (yyvsp[(5) - (5)].astNode), MEMMGR)); } break; case 423: #line 3625 "../src/parser/XQParser.y" { VectorOfASTNodes *args = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); args->push_back((yyvsp[(1) - (3)].astNode)); args->push_back((yyvsp[(3) - (3)].astNode)); (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) XQFunctionCall(0, BuiltInModules::core.uri, MEMMGR->getPooledString("to"), args, MEMMGR)); } break; case 425: #line 3637 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) Plus(packageArgs((yyvsp[(1) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR),MEMMGR)); } break; case 426: #line 3641 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) Minus(packageArgs((yyvsp[(1) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR),MEMMGR)); } break; case 428: #line 3650 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) Multiply(packageArgs((yyvsp[(1) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR),MEMMGR)); } break; case 429: #line 3654 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) Divide(packageArgs((yyvsp[(1) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR),MEMMGR)); } break; case 430: #line 3658 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) IntegerDivide(packageArgs((yyvsp[(1) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR),MEMMGR)); } break; case 431: #line 3662 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) Mod(packageArgs((yyvsp[(1) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR),MEMMGR)); } break; case 433: #line 3671 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) Union(packageArgs((yyvsp[(1) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR),MEMMGR)); } break; case 434: #line 3675 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) Union(packageArgs((yyvsp[(1) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR),MEMMGR)); } break; case 436: #line 3684 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) Intersect(packageArgs((yyvsp[(1) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR),MEMMGR)); } break; case 437: #line 3688 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) Except(packageArgs((yyvsp[(1) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR),MEMMGR)); } break; case 439: #line 3697 "../src/parser/XQParser.y" { ASTNode *falseExpr = WRAP((yylsp[(2) - (4)]), new (MEMMGR) XQFunctionCall(0, XQFunction::XMLChFunctionURI, MEMMGR->getPooledString("false"), 0, MEMMGR)); XQTypeswitch::Case *defcase = WRAP((yylsp[(1) - (4)]), new (MEMMGR) XQTypeswitch::Case(NULL, NULL, falseExpr)); ASTNode *trueExpr = WRAP((yylsp[(2) - (4)]), new (MEMMGR) XQFunctionCall(0, XQFunction::XMLChFunctionURI, MEMMGR->getPooledString("true"), 0, MEMMGR)); XQTypeswitch::Cases *cases = new (MEMMGR) XQTypeswitch::Cases(XQillaAllocator(MEMMGR)); cases->push_back(WRAP((yylsp[(2) - (4)]), new (MEMMGR) XQTypeswitch::Case(NULL, (yyvsp[(4) - (4)].sequenceType), trueExpr))); (yyval.astNode) = WRAP((yylsp[(2) - (4)]), new (MEMMGR) XQTypeswitch((yyvsp[(1) - (4)].astNode), cases, defcase, MEMMGR)); } break; case 441: #line 3719 "../src/parser/XQParser.y" { XQTreatAs* treatAs = new (MEMMGR) XQTreatAs((yyvsp[(1) - (4)].astNode),(yyvsp[(4) - (4)].sequenceType),MEMMGR, XQTreatAs::err_XPDY0050); (yyval.astNode) = WRAP((yylsp[(2) - (4)]), treatAs); } break; case 443: #line 3729 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (4)]), new (MEMMGR) XQCastableAs((yyvsp[(1) - (4)].astNode),(yyvsp[(4) - (4)].sequenceType),MEMMGR)); } break; case 445: #line 3738 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (4)]), new (MEMMGR) XQCastAs((yyvsp[(1) - (4)].astNode),(yyvsp[(4) - (4)].sequenceType),MEMMGR)); } break; case 447: #line 3747 "../src/parser/XQParser.y" { VectorOfASTNodes args(XQillaAllocator(MEMMGR)); args.push_back((yyvsp[(2) - (2)].astNode)); (yyval.astNode) = WRAP((yylsp[(1) - (2)]), new (MEMMGR) UnaryMinus(/*positive*/false, args, MEMMGR)); } break; case 448: #line 3753 "../src/parser/XQParser.y" { VectorOfASTNodes args(XQillaAllocator(MEMMGR)); args.push_back((yyvsp[(2) - (2)].astNode)); (yyval.astNode) = WRAP((yylsp[(1) - (2)]), new (MEMMGR) UnaryMinus(/*positive*/true, args, MEMMGR)); } break; case 453: #line 3774 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (4)]), new (MEMMGR) XQValidate((yyvsp[(3) - (4)].astNode),DocumentCache::VALIDATION_STRICT,MEMMGR)); } break; case 454: #line 3778 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (5)]), new (MEMMGR) XQValidate((yyvsp[(4) - (5)].astNode),DocumentCache::VALIDATION_LAX,MEMMGR)); } break; case 455: #line 3782 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (5)]), new (MEMMGR) XQValidate((yyvsp[(4) - (5)].astNode),DocumentCache::VALIDATION_STRICT,MEMMGR)); } break; case 456: #line 3790 "../src/parser/XQParser.y" { REJECT_NOT_XQUERY(ExtensionExpr, (yylsp[(1) - (3)])); // we don't support any pragma yyerror((yylsp[(1) - (3)]), "This pragma is not recognized, and no alternative expression is specified [err:XQST0079]"); } break; case 457: #line 3797 "../src/parser/XQParser.y" { REJECT_NOT_XQUERY(ExtensionExpr, (yylsp[(1) - (4)])); // we don't support any pragma (yyval.astNode) = (yyvsp[(3) - (4)].astNode); } break; case 460: #line 3810 "../src/parser/XQParser.y" { // validate the QName QualifiedName qName((yyvsp[(3) - (4)].str)); const XMLCh* prefix=qName.getPrefix(); if(prefix == NULL || *prefix == 0) yyerror((yylsp[(3) - (4)]), "The pragma name must have a prefix [err:XPST0081]"); try { LOCATION((yylsp[(3) - (4)]), loc); CONTEXT->getUriBoundToPrefix(prefix, &loc); } catch(NamespaceLookupException&) { yyerror((yylsp[(3) - (4)]), "The pragma name is using an undefined namespace prefix [err:XPST0081]"); } } break; case 462: #line 3831 "../src/parser/XQParser.y" { (yyval.str) = (yyvsp[(2) - (2)].str); } break; case 464: #line 3840 "../src/parser/XQParser.y" { XQNav *nav = GET_NAVIGATION((yylsp[(1) - (2)]), (yyvsp[(1) - (2)].astNode)); nav->addStep((yyvsp[(2) - (2)].astNode)); (yyval.astNode) = nav; } break; case 465: #line 3846 "../src/parser/XQParser.y" { XQNav *nav = WRAP((yylsp[(1) - (2)]), new (MEMMGR) XQNav(MEMMGR)); VectorOfASTNodes args(XQillaAllocator(MEMMGR)); FunctionRoot *root = WRAP((yylsp[(1) - (2)]), new (MEMMGR) FunctionRoot(args, MEMMGR)); SequenceType *documentNode = WRAP((yylsp[(1) - (2)]), new (MEMMGR) SequenceType(new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_DOCUMENT))); nav->addStep(WRAP((yylsp[(1) - (2)]), new (MEMMGR) XQTreatAs(root, documentNode, MEMMGR))); NodeTest *step = new (MEMMGR) NodeTest(); step->setTypeWildcard(); step->setNameWildcard(); step->setNamespaceWildcard(); nav->addStep(WRAP((yylsp[(1) - (2)]), new (MEMMGR) XQStep(XQStep::DESCENDANT_OR_SELF, step, MEMMGR))); nav->addStep((yyvsp[(2) - (2)].astNode)); (yyval.astNode) = nav; } break; case 467: #line 3871 "../src/parser/XQParser.y" { VectorOfASTNodes args(XQillaAllocator(MEMMGR)); FunctionRoot *root = WRAP((yylsp[(1) - (1)]), new (MEMMGR) FunctionRoot(args, MEMMGR)); SequenceType *documentNode = WRAP((yylsp[(1) - (1)]), new (MEMMGR) SequenceType(new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_DOCUMENT))); (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQTreatAs(root, documentNode, MEMMGR)); } break; case 468: #line 3885 "../src/parser/XQParser.y" { XQNav *nav = GET_NAVIGATION((yylsp[(1) - (3)]), (yyvsp[(1) - (3)].astNode)); nav->addStep((yyvsp[(3) - (3)].astNode)); (yyval.astNode) = nav; } break; case 469: #line 3891 "../src/parser/XQParser.y" { XQNav *nav = GET_NAVIGATION((yylsp[(1) - (3)]), (yyvsp[(1) - (3)].astNode)); NodeTest *step = new (MEMMGR) NodeTest(); step->setTypeWildcard(); step->setNameWildcard(); step->setNamespaceWildcard(); nav->addStep(WRAP((yylsp[(2) - (3)]), new (MEMMGR) XQStep(XQStep::DESCENDANT_OR_SELF, step, MEMMGR))); nav->addStep((yyvsp[(3) - (3)].astNode)); (yyval.astNode) = nav; } break; case 474: #line 3913 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQDocumentOrder((yyvsp[(1) - (1)].astNode), MEMMGR)); } break; case 476: #line 3923 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (4)]), new (MEMMGR) XQPredicate((yyvsp[(1) - (4)].astNode), (yyvsp[(3) - (4)].astNode), MEMMGR)); } break; case 478: #line 3930 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (4)]), new (MEMMGR) XQPredicate((yyvsp[(1) - (4)].astNode), (yyvsp[(3) - (4)].astNode), /*reverse*/true, MEMMGR)); } break; case 479: #line 3939 "../src/parser/XQParser.y" { if(!(yyvsp[(2) - (2)].nodeTest)->isNodeTypeSet()) { switch((yyvsp[(1) - (2)].axis)) { case XQStep::NAMESPACE: (yyvsp[(2) - (2)].nodeTest)->setNodeType(Node::namespace_string); break; case XQStep::ATTRIBUTE: (yyvsp[(2) - (2)].nodeTest)->setNodeType(Node::attribute_string); break; default: (yyvsp[(2) - (2)].nodeTest)->setNodeType(Node::element_string); break; } } (yyval.astNode) = WRAP((yylsp[(1) - (2)]), new (MEMMGR) XQStep((yyvsp[(1) - (2)].axis),(yyvsp[(2) - (2)].nodeTest),MEMMGR)); } break; case 481: #line 3962 "../src/parser/XQParser.y" { (yyval.axis) = XQStep::CHILD; } break; case 482: #line 3966 "../src/parser/XQParser.y" { (yyval.axis) = XQStep::DESCENDANT; } break; case 483: #line 3970 "../src/parser/XQParser.y" { (yyval.axis) = XQStep::ATTRIBUTE; } break; case 484: #line 3974 "../src/parser/XQParser.y" { (yyval.axis) = XQStep::SELF; } break; case 485: #line 3978 "../src/parser/XQParser.y" { (yyval.axis) = XQStep::DESCENDANT_OR_SELF; } break; case 486: #line 3982 "../src/parser/XQParser.y" { (yyval.axis) = XQStep::FOLLOWING_SIBLING; } break; case 487: #line 3986 "../src/parser/XQParser.y" { (yyval.axis) = XQStep::FOLLOWING; } break; case 488: #line 3990 "../src/parser/XQParser.y" { (yyval.axis) = XQStep::NAMESPACE; } break; case 489: #line 3998 "../src/parser/XQParser.y" { if(!(yyvsp[(2) - (2)].nodeTest)->isNodeTypeSet()) { (yyvsp[(2) - (2)].nodeTest)->setNodeType(Node::attribute_string); } (yyval.astNode) = WRAP((yylsp[(1) - (2)]), new (MEMMGR) XQStep(XQStep::ATTRIBUTE, (yyvsp[(2) - (2)].nodeTest), MEMMGR)); } break; case 490: #line 4006 "../src/parser/XQParser.y" { XQStep::Axis axis = XQStep::CHILD; SequenceType::ItemType *itemtype = (yyvsp[(1) - (1)].nodeTest)->getItemType(); if(itemtype != 0 && itemtype->getItemTestType() == SequenceType::ItemType::TEST_ATTRIBUTE) { axis = XQStep::ATTRIBUTE; } else if(!(yyvsp[(1) - (1)].nodeTest)->isNodeTypeSet()) { (yyvsp[(1) - (1)].nodeTest)->setNodeType(Node::element_string); } (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQStep(axis, (yyvsp[(1) - (1)].nodeTest), MEMMGR)); } break; case 491: #line 4023 "../src/parser/XQParser.y" { if(!(yyvsp[(2) - (2)].nodeTest)->isNodeTypeSet()) { (yyvsp[(2) - (2)].nodeTest)->setNodeType(Node::element_string); } (yyval.astNode) = WRAP((yylsp[(1) - (2)]), new (MEMMGR) XQStep((yyvsp[(1) - (2)].axis), (yyvsp[(2) - (2)].nodeTest), MEMMGR)); } break; case 493: #line 4040 "../src/parser/XQParser.y" { (yyval.axis) = XQStep::PARENT; } break; case 494: #line 4044 "../src/parser/XQParser.y" { (yyval.axis) = XQStep::ANCESTOR; } break; case 495: #line 4048 "../src/parser/XQParser.y" { (yyval.axis) = XQStep::PRECEDING_SIBLING; } break; case 496: #line 4052 "../src/parser/XQParser.y" { (yyval.axis) = XQStep::PRECEDING; } break; case 497: #line 4056 "../src/parser/XQParser.y" { (yyval.axis) = XQStep::ANCESTOR_OR_SELF; } break; case 498: #line 4064 "../src/parser/XQParser.y" { NodeTest *step = new (MEMMGR) NodeTest(); step->setNameWildcard(); step->setNamespaceWildcard(); step->setTypeWildcard(); (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQStep(XQStep::PARENT, step, MEMMGR)); } break; case 499: #line 4076 "../src/parser/XQParser.y" { (yyval.nodeTest) = new (MEMMGR) NodeTest(); (yyval.nodeTest)->setItemType((yyvsp[(1) - (1)].itemType)); } break; case 501: #line 4086 "../src/parser/XQParser.y" { NodeTest *step = new (MEMMGR) NodeTest(); step->setNodePrefix((yyvsp[(1) - (1)].qName)->getPrefix()); step->setNodeName((yyvsp[(1) - (1)].qName)->getName()); (yyval.nodeTest) = step; } break; case 503: #line 4098 "../src/parser/XQParser.y" { NodeTest *step = new (MEMMGR) NodeTest(); step->setNameWildcard(); step->setNamespaceWildcard(); (yyval.nodeTest) = step; } break; case 504: #line 4105 "../src/parser/XQParser.y" { NodeTest *step = new (MEMMGR) NodeTest(); step->setNodePrefix((yyvsp[(1) - (1)].str)); step->setNameWildcard(); (yyval.nodeTest) = step; } break; case 505: #line 4112 "../src/parser/XQParser.y" { NodeTest *step = new (MEMMGR) NodeTest(); step->setNodeName((yyvsp[(1) - (1)].str)); step->setNamespaceWildcard(); (yyval.nodeTest) = step; } break; case 507: #line 4125 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(2) - (4)]), new (MEMMGR) XQPredicate((yyvsp[(1) - (4)].astNode), (yyvsp[(3) - (4)].astNode), MEMMGR)); } break; case 523: #line 4154 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (2)]), new (MEMMGR) XQVariable((yyvsp[(2) - (2)].str), MEMMGR)); } break; case 525: #line 4165 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(2) - (3)].astNode); } break; case 526: #line 4169 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (2)]), new (MEMMGR) XQSequence(MEMMGR)); } break; case 527: #line 4177 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQContextItem(MEMMGR)); } break; case 528: #line 4185 "../src/parser/XQParser.y" { REJECT_NOT_XQUERY(OrderedExpr, (yylsp[(1) - (4)])); (yyval.astNode) = WRAP((yylsp[(1) - (4)]), new (MEMMGR) XQOrderingChange(StaticContext::ORDERING_ORDERED, (yyvsp[(3) - (4)].astNode), MEMMGR)); } break; case 529: #line 4195 "../src/parser/XQParser.y" { REJECT_NOT_XQUERY(UnorderedExpr, (yylsp[(1) - (4)])); (yyval.astNode) = WRAP((yylsp[(1) - (4)]), new (MEMMGR) XQOrderingChange(StaticContext::ORDERING_UNORDERED, (yyvsp[(3) - (4)].astNode), MEMMGR)); } break; case 530: #line 4205 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQFunctionCall((yyvsp[(1) - (3)].str), NULL, MEMMGR)); } break; case 531: #line 4209 "../src/parser/XQParser.y" { bool partial = false; VectorOfASTNodes::iterator i; for(i = (yyvsp[(3) - (4)].itemList)->begin(); i != (yyvsp[(3) - (4)].itemList)->end(); ++i) { if(*i == 0) { partial = true; break; } } if(partial) { // This is a partial function application XQFunctionRef *ref = WRAP((yylsp[(1) - (4)]), new (MEMMGR) XQFunctionRef((yyvsp[(1) - (4)].str), (yyvsp[(3) - (4)].itemList)->size(), MEMMGR)); (yyval.astNode) = WRAP((yylsp[(2) - (4)]), new (MEMMGR) XQPartialApply(ref, (yyvsp[(3) - (4)].itemList), MEMMGR)); } else { (yyval.astNode) = WRAP((yylsp[(1) - (4)]), new (MEMMGR) XQFunctionCall((yyvsp[(1) - (4)].str), (yyvsp[(3) - (4)].itemList), MEMMGR)); } } break; case 532: #line 4232 "../src/parser/XQParser.y" { (yyvsp[(1) - (3)].itemList)->push_back((yyvsp[(3) - (3)].astNode)); (yyval.itemList) = (yyvsp[(1) - (3)].itemList); } break; case 533: #line 4237 "../src/parser/XQParser.y" { (yyval.itemList) = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); (yyval.itemList)->push_back((yyvsp[(1) - (1)].astNode)); } break; case 535: #line 4248 "../src/parser/XQParser.y" { REJECT_NOT_VERSION3(Argument, (yylsp[(1) - (1)])); (yyval.astNode) = 0; } break; case 536: #line 4257 "../src/parser/XQParser.y" { REJECT_NOT_XQUERY(Constructor, (yylsp[(1) - (1)])); } break; case 537: #line 4261 "../src/parser/XQParser.y" { REJECT_NOT_XQUERY(Constructor, (yylsp[(1) - (1)])); } break; case 541: #line 4274 "../src/parser/XQParser.y" { VectorOfASTNodes* content = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); ASTNode *name = WRAP((yylsp[(2) - (5)]), new (MEMMGR) XQDirectName((yyvsp[(2) - (5)].str), /*useDefaultNamespace*/true, MEMMGR)); (yyval.astNode) = WRAP((yylsp[(1) - (5)]), new (MEMMGR) XQElementConstructor(name, (yyvsp[(3) - (5)].itemList), content, MEMMGR)); } break; case 542: #line 4280 "../src/parser/XQParser.y" { if(!XPath2Utils::equals((yyvsp[(2) - (10)].str), (yyvsp[(8) - (10)].str))) yyerror((yylsp[(7) - (10)]), "Close tag does not match open tag"); ASTNode *name = WRAP((yylsp[(2) - (10)]), new (MEMMGR) XQDirectName((yyvsp[(2) - (10)].str), /*useDefaultNamespace*/true, MEMMGR)); (yyval.astNode) = WRAP((yylsp[(1) - (10)]), new (MEMMGR) XQElementConstructor(name, (yyvsp[(3) - (10)].itemList), (yyvsp[(6) - (10)].itemList), MEMMGR)); } break; case 545: #line 4293 "../src/parser/XQParser.y" { (yyval.itemList) = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); } break; case 546: #line 4297 "../src/parser/XQParser.y" { (yyval.itemList) = (yyvsp[(1) - (7)].itemList); ASTNode *name = WRAP((yylsp[(3) - (7)]), new (MEMMGR) XQDirectName((yyvsp[(3) - (7)].str), /*useDefaultNamespace*/false, MEMMGR)); ASTNode *attrItem = WRAP((yylsp[(3) - (7)]), new (MEMMGR) XQAttributeConstructor(name, (yyvsp[(7) - (7)].itemList),MEMMGR)); (yyval.itemList)->push_back(attrItem); } break; case 547: #line 4306 "../src/parser/XQParser.y" { (yyval.itemList) = (yyvsp[(1) - (7)].itemList); ASTNode *name = WRAP((yylsp[(3) - (7)]), new (MEMMGR) XQDirectName((yyvsp[(3) - (7)].str), /*useDefaultNamespace*/false, MEMMGR)); ASTNode *attrItem = WRAP((yylsp[(3) - (7)]), new (MEMMGR) XQAttributeConstructor(name, (yyvsp[(7) - (7)].itemList),MEMMGR)); (yyval.itemList)->insert((yyval.itemList)->begin(), attrItem); } break; case 550: #line 4322 "../src/parser/XQParser.y" { (yyval.itemList) = (yyvsp[(2) - (3)].itemList); } break; case 551: #line 4326 "../src/parser/XQParser.y" { (yyval.itemList) = (yyvsp[(2) - (3)].itemList); } break; case 552: #line 4333 "../src/parser/XQParser.y" { (yyval.itemList) = (yyvsp[(2) - (3)].itemList); } break; case 553: #line 4337 "../src/parser/XQParser.y" { (yyval.itemList) = (yyvsp[(2) - (3)].itemList); } break; case 554: #line 4347 "../src/parser/XQParser.y" { (yyval.itemList) = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); } break; case 555: #line 4351 "../src/parser/XQParser.y" { (yyval.itemList) = (yyvsp[(1) - (2)].itemList); (yyval.itemList)->push_back((yyvsp[(2) - (2)].astNode)); } break; case 556: #line 4356 "../src/parser/XQParser.y" { (yyval.itemList) = (yyvsp[(1) - (2)].itemList); (yyval.itemList)->push_back(WRAP((yylsp[(2) - (2)]), new (MEMMGR) XQLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, (yyvsp[(2) - (2)].str), AnyAtomicType::STRING, MEMMGR))); } break; case 557: #line 4366 "../src/parser/XQParser.y" { (yyval.itemList) = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); } break; case 558: #line 4370 "../src/parser/XQParser.y" { yyerror((yylsp[(2) - (2)]), "Namespace URI of a namespace declaration must be a literal [err:XQST0022]"); } break; case 559: #line 4374 "../src/parser/XQParser.y" { (yyval.itemList) = (yyvsp[(1) - (2)].itemList); (yyval.itemList)->push_back(WRAP((yylsp[(2) - (2)]), new (MEMMGR) XQLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, (yyvsp[(2) - (2)].str), AnyAtomicType::STRING, MEMMGR))); } break; case 560: #line 4387 "../src/parser/XQParser.y" { (yyval.itemList) = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); } break; case 561: #line 4391 "../src/parser/XQParser.y" { (yyval.itemList) = (yyvsp[(1) - (2)].itemList); (yyval.itemList)->push_back((yyvsp[(2) - (2)].astNode)); } break; case 562: #line 4396 "../src/parser/XQParser.y" { (yyval.itemList) = (yyvsp[(1) - (2)].itemList); (yyval.itemList)->push_back(WRAP((yylsp[(2) - (2)]), new (MEMMGR) XQLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, (yyvsp[(2) - (2)].str), AnyAtomicType::STRING, MEMMGR))); } break; case 563: #line 4406 "../src/parser/XQParser.y" { (yyval.itemList) = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); } break; case 564: #line 4410 "../src/parser/XQParser.y" { yyerror((yylsp[(2) - (2)]), "Namespace URI of a namespace declaration must be a literal [err:XQST0022]"); } break; case 565: #line 4414 "../src/parser/XQParser.y" { (yyval.itemList) = (yyvsp[(1) - (2)].itemList); (yyval.itemList)->push_back(WRAP((yylsp[(2) - (2)]), new (MEMMGR) XQLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, (yyvsp[(2) - (2)].str), AnyAtomicType::STRING, MEMMGR))); } break; case 566: #line 4431 "../src/parser/XQParser.y" { (yyval.itemList) = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); } break; case 567: #line 4435 "../src/parser/XQParser.y" { (yyval.itemList) = (yyvsp[(1) - (2)].itemList); (yyval.itemList)->push_back((yyvsp[(2) - (2)].astNode)); } break; case 568: #line 4440 "../src/parser/XQParser.y" { (yyval.itemList) = (yyvsp[(1) - (2)].itemList); (yyval.itemList)->push_back((yyvsp[(2) - (2)].astNode)); } break; case 569: #line 4445 "../src/parser/XQParser.y" { (yyval.itemList) = (yyvsp[(1) - (2)].itemList); (yyval.itemList)->push_back(WRAP((yylsp[(2) - (2)]), new (MEMMGR) XQLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, (yyvsp[(2) - (2)].str), AnyAtomicType::STRING, MEMMGR))); } break; case 570: #line 4452 "../src/parser/XQParser.y" { (yyval.itemList) = (yyvsp[(1) - (2)].itemList); if(CONTEXT->getPreserveBoundarySpace()) { (yyval.itemList)->push_back(WRAP((yylsp[(2) - (2)]), new (MEMMGR) XQLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, (yyvsp[(2) - (2)].str), AnyAtomicType::STRING, MEMMGR))); } } break; case 571: #line 4465 "../src/parser/XQParser.y" { ASTNode *value = WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQLiteral( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, (yyvsp[(2) - (3)].str), AnyAtomicType::STRING, MEMMGR)); (yyval.astNode) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQCommentConstructor(value, MEMMGR)); } break; case 572: #line 4478 "../src/parser/XQParser.y" { (yyval.str) = (XMLCh*)XMLUni::fgZeroLenString; } break; case 574: #line 4487 "../src/parser/XQParser.y" { ASTNode *value = WRAP((yylsp[(3) - (3)]), new (MEMMGR) XQLiteral( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, (yyvsp[(3) - (3)].str), AnyAtomicType::STRING, MEMMGR)); (yyval.astNode) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQPIConstructor( WRAP((yylsp[(2) - (3)]), new (MEMMGR) XQLiteral( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, (yyvsp[(2) - (3)].str), AnyAtomicType::STRING, MEMMGR)), value, MEMMGR)); } break; case 576: #line 4507 "../src/parser/XQParser.y" { (yyval.str) = (yyvsp[(2) - (2)].str); } break; case 584: #line 4532 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (4)]), new (MEMMGR) XQDocumentConstructor((yyvsp[(3) - (4)].astNode), MEMMGR)); } break; case 585: #line 4540 "../src/parser/XQParser.y" { VectorOfASTNodes* empty = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); (yyval.astNode) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQElementConstructor((yyvsp[(2) - (3)].astNode), empty, (yyvsp[(3) - (3)].itemList), MEMMGR)); } break; case 586: #line 4548 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQDirectName((yyvsp[(1) - (1)].str), /*useDefaultNamespace*/true, MEMMGR)); } break; case 587: #line 4552 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(2) - (3)].astNode); } break; case 588: #line 4560 "../src/parser/XQParser.y" { (yyval.itemList) = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); } break; case 589: #line 4564 "../src/parser/XQParser.y" { (yyval.itemList) = new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)); (yyval.itemList)->push_back((yyvsp[(2) - (3)].astNode)); } break; case 590: #line 4573 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQAttributeConstructor((yyvsp[(2) - (3)].astNode), (yyvsp[(3) - (3)].itemList), MEMMGR)); } break; case 591: #line 4580 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQDirectName((yyvsp[(1) - (1)].str), /*useDefaultNamespace*/false, MEMMGR)); } break; case 592: #line 4584 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(2) - (3)].astNode); } break; case 593: #line 4594 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQNamespaceConstructor((yyvsp[(2) - (3)].astNode), (yyvsp[(3) - (3)].itemList), MEMMGR)); } break; case 594: #line 4602 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (4)]), new (MEMMGR) XQTextConstructor((yyvsp[(3) - (4)].astNode), MEMMGR)); } break; case 595: #line 4610 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (4)]), new (MEMMGR) XQCommentConstructor((yyvsp[(3) - (4)].astNode), MEMMGR)); } break; case 596: #line 4618 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQPIConstructor((yyvsp[(2) - (3)].astNode), (yyvsp[(3) - (3)].astNode), MEMMGR)); } break; case 597: #line 4625 "../src/parser/XQParser.y" { // Check for a colon for(XMLCh *tmp = (yyvsp[(1) - (1)].str); *tmp; ++tmp) if(*tmp == ':') yyerror((yylsp[(1) - (1)]), "Expecting an NCName, found a QName"); (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQLiteral(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, (yyvsp[(1) - (1)].str), AnyAtomicType::STRING, MEMMGR)); } break; case 598: #line 4635 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(2) - (3)].astNode); } break; case 599: #line 4642 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (2)]), new (MEMMGR) XQSequence(MEMMGR)); } break; case 600: #line 4646 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(2) - (3)].astNode); } break; case 601: #line 4654 "../src/parser/XQParser.y" { SequenceType* seq = WRAP((yylsp[(1) - (2)]), new (MEMMGR) SequenceType()); seq->setItemType(new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ATOMIC_TYPE, NULL, (yyvsp[(1) - (2)].qName))); seq->setOccurrence((yyvsp[(2) - (2)].occurrence)); (yyval.sequenceType) = seq; } break; case 602: #line 4664 "../src/parser/XQParser.y" { (yyval.occurrence) = SequenceType::EXACTLY_ONE; } break; case 603: #line 4668 "../src/parser/XQParser.y" { (yyval.occurrence) = SequenceType::QUESTION_MARK; } break; case 604: #line 4676 "../src/parser/XQParser.y" { (yyval.sequenceType) = WRAP((yyloc), new (MEMMGR) SequenceType(new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ANYTHING), SequenceType::STAR)); } break; case 605: #line 4680 "../src/parser/XQParser.y" { REJECT_NOT_XQUERY(TypeDeclaration, (yylsp[(1) - (2)])); (yyval.sequenceType) = (yyvsp[(2) - (2)].sequenceType); } break; case 606: #line 4690 "../src/parser/XQParser.y" { SequenceType* seq = WRAP((yylsp[(1) - (2)]), new (MEMMGR) SequenceType()); seq->setItemType((yyvsp[(1) - (2)].itemType)); seq->setOccurrence((yyvsp[(2) - (2)].occurrence)); (yyval.sequenceType) = seq; } break; case 607: #line 4697 "../src/parser/XQParser.y" { (yyval.sequenceType) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) SequenceType()); } break; case 608: #line 4706 "../src/parser/XQParser.y" { (yyval.occurrence) = SequenceType::EXACTLY_ONE; } break; case 609: #line 4708 "../src/parser/XQParser.y" { (yyval.occurrence) = SequenceType::STAR; } break; case 610: #line 4710 "../src/parser/XQParser.y" { (yyval.occurrence) = SequenceType::PLUS; } break; case 611: #line 4712 "../src/parser/XQParser.y" { (yyval.occurrence) = SequenceType::QUESTION_MARK; } break; case 612: #line 4718 "../src/parser/XQParser.y" { (yyval.itemType) = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ATOMIC_TYPE, NULL, (yyvsp[(1) - (1)].qName)); } break; case 613: #line 4722 "../src/parser/XQParser.y" { (yyval.itemType) = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ANYTHING); } break; case 628: #line 4758 "../src/parser/XQParser.y" { (yyval.itemType) = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_NODE); } break; case 629: #line 4766 "../src/parser/XQParser.y" { (yyval.itemType) = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_DOCUMENT); } break; case 630: #line 4770 "../src/parser/XQParser.y" { (yyval.itemType) = (yyvsp[(3) - (4)].itemType); (yyval.itemType)->setItemTestType(SequenceType::ItemType::TEST_DOCUMENT); } break; case 631: #line 4775 "../src/parser/XQParser.y" { (yyval.itemType) = (yyvsp[(3) - (4)].itemType); (yyval.itemType)->setItemTestType(SequenceType::ItemType::TEST_SCHEMA_DOCUMENT); } break; case 632: #line 4784 "../src/parser/XQParser.y" { (yyval.itemType) = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_TEXT); } break; case 633: #line 4792 "../src/parser/XQParser.y" { (yyval.itemType) = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_COMMENT); } break; case 634: #line 4800 "../src/parser/XQParser.y" { REJECT_NOT_VERSION3(NamespaceNodeTest, (yylsp[(1) - (3)])); (yyval.itemType) = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_NAMESPACE); } break; case 635: #line 4809 "../src/parser/XQParser.y" { (yyval.itemType) = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_PI); } break; case 636: #line 4813 "../src/parser/XQParser.y" { (yyval.itemType) = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_PI, new (MEMMGR) QualifiedName((yyvsp[(3) - (4)].str), MEMMGR)); } break; case 637: #line 4817 "../src/parser/XQParser.y" { (yyval.itemType) = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_PI, new (MEMMGR) QualifiedName((yyvsp[(3) - (4)].str), MEMMGR)); } break; case 638: #line 4825 "../src/parser/XQParser.y" { (yyval.itemType) = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ATTRIBUTE); } break; case 639: #line 4829 "../src/parser/XQParser.y" { (yyval.itemType) = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ATTRIBUTE,(yyvsp[(3) - (4)].qName)); } break; case 640: #line 4833 "../src/parser/XQParser.y" { (yyval.itemType) = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ATTRIBUTE,(yyvsp[(3) - (6)].qName),(yyvsp[(5) - (6)].qName)); } break; case 642: #line 4842 "../src/parser/XQParser.y" { (yyval.qName) = NULL; } break; case 643: #line 4850 "../src/parser/XQParser.y" { (yyval.itemType) = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_SCHEMA_ATTRIBUTE,(yyvsp[(3) - (4)].qName)); } break; case 645: #line 4863 "../src/parser/XQParser.y" { (yyval.itemType) = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ELEMENT); } break; case 646: #line 4867 "../src/parser/XQParser.y" { (yyval.itemType) = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ELEMENT,(yyvsp[(3) - (4)].qName)); } break; case 647: #line 4871 "../src/parser/XQParser.y" { (yyval.itemType) = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ELEMENT,(yyvsp[(3) - (6)].qName),(yyvsp[(5) - (6)].qName)); } break; case 648: #line 4875 "../src/parser/XQParser.y" { (yyval.itemType) = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_ELEMENT,(yyvsp[(3) - (7)].qName),(yyvsp[(5) - (7)].qName)); (yyval.itemType)->setAllowNilled(true); } break; case 650: #line 4885 "../src/parser/XQParser.y" { (yyval.qName) = NULL; } break; case 651: #line 4893 "../src/parser/XQParser.y" { (yyval.itemType) = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_SCHEMA_ELEMENT,(yyvsp[(3) - (4)].qName)); } break; case 656: #line 4913 "../src/parser/XQParser.y" { // the string must be whitespace-normalized XMLString::collapseWS((yyvsp[(1) - (1)].str), MEMMGR); if((yyvsp[(1) - (1)].str) && *(yyvsp[(1) - (1)].str) && !XPath2Utils::isValidURI((yyvsp[(1) - (1)].str), MEMMGR)) yyerror((yylsp[(1) - (1)]), "The URI literal is not valid [err:XQST0046]"); (yyval.str) = (yyvsp[(1) - (1)].str); } break; case 657: #line 4925 "../src/parser/XQParser.y" { // TBD weight (yyval.ftselection) = (yyvsp[(1) - (3)].ftselection); for(VectorOfFTOptions::iterator i = (yyvsp[(2) - (3)].ftoptionlist)->begin(); i != (yyvsp[(2) - (3)].ftoptionlist)->end(); ++i) { (*i)->setArgument((yyval.ftselection)); (yyval.ftselection) = *i; } /* delete $2; */ } break; case 658: #line 4940 "../src/parser/XQParser.y" { } break; case 659: #line 4943 "../src/parser/XQParser.y" { } break; case 660: #line 4949 "../src/parser/XQParser.y" { (yyval.ftoptionlist) = new (MEMMGR) VectorOfFTOptions(XQillaAllocator(MEMMGR)); } break; case 661: #line 4953 "../src/parser/XQParser.y" { if((yyvsp[(2) - (2)].ftoption) != NULL) (yyvsp[(1) - (2)].ftoptionlist)->push_back((yyvsp[(2) - (2)].ftoption)); (yyval.ftoptionlist) = (yyvsp[(1) - (2)].ftoptionlist); } break; case 662: #line 4963 "../src/parser/XQParser.y" { if((yyvsp[(1) - (3)].ftselection)->getType() == FTSelection::OR) { FTOr *op = (FTOr*)(yyvsp[(1) - (3)].ftselection); op->addArg((yyvsp[(3) - (3)].ftselection)); (yyval.ftselection) = op; } else { (yyval.ftselection) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) FTOr((yyvsp[(1) - (3)].ftselection), (yyvsp[(3) - (3)].ftselection), MEMMGR)); } } break; case 664: #line 4980 "../src/parser/XQParser.y" { if((yyvsp[(1) - (3)].ftselection)->getType() == FTSelection::AND) { FTAnd *op = (FTAnd*)(yyvsp[(1) - (3)].ftselection); op->addArg((yyvsp[(3) - (3)].ftselection)); (yyval.ftselection) = op; } else { (yyval.ftselection) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) FTAnd((yyvsp[(1) - (3)].ftselection), (yyvsp[(3) - (3)].ftselection), MEMMGR)); } } break; case 666: #line 4996 "../src/parser/XQParser.y" { (yyval.ftselection) = WRAP((yylsp[(2) - (4)]), new (MEMMGR) FTMildnot((yyvsp[(1) - (4)].ftselection), (yyvsp[(4) - (4)].ftselection), MEMMGR)); } break; case 668: #line 5006 "../src/parser/XQParser.y" { (yyval.ftselection) = WRAP((yylsp[(1) - (2)]), new (MEMMGR) FTUnaryNot((yyvsp[(2) - (2)].ftselection), MEMMGR)); } break; case 671: #line 5016 "../src/parser/XQParser.y" { // TBD match options (yyval.ftselection) = (yyvsp[(1) - (2)].ftselection); } break; case 672: #line 5025 "../src/parser/XQParser.y" { // TBD FTTimes (yyval.ftselection) = (yyvsp[(1) - (2)].ftselection); } break; case 673: #line 5030 "../src/parser/XQParser.y" { (yyval.ftselection) = (yyvsp[(2) - (3)].ftselection); } break; case 675: #line 5040 "../src/parser/XQParser.y" { (yyval.ftselection) = WRAP((yylsp[(1) - (2)]), new (MEMMGR) FTWords((yyvsp[(1) - (2)].astNode), (yyvsp[(2) - (2)].ftanyalloption), MEMMGR)); } break; case 676: #line 5044 "../src/parser/XQParser.y" { (yyval.ftselection) = WRAP((yylsp[(2) - (4)]), new (MEMMGR) FTWords((yyvsp[(2) - (4)].astNode), (yyvsp[(4) - (4)].ftanyalloption), MEMMGR)); } break; case 677: #line 5052 "../src/parser/XQParser.y" { // we don't support any pragma yyerror((yylsp[(1) - (3)]), "This pragma is not recognized, and no alternative expression is specified [err:XQST0079]"); } break; case 678: #line 5057 "../src/parser/XQParser.y" { // we don't support any pragma (yyval.ftselection) = (yyvsp[(3) - (4)].ftselection); } break; case 679: #line 5066 "../src/parser/XQParser.y" { (yyval.ftanyalloption) = FTWords::ANY; } break; case 680: #line 5070 "../src/parser/XQParser.y" { (yyval.ftanyalloption) = FTWords::ANY; } break; case 681: #line 5074 "../src/parser/XQParser.y" { (yyval.ftanyalloption) = FTWords::ANY_WORD; } break; case 682: #line 5078 "../src/parser/XQParser.y" { (yyval.ftanyalloption) = FTWords::ALL; } break; case 683: #line 5082 "../src/parser/XQParser.y" { (yyval.ftanyalloption) = FTWords::ALL_WORDS; } break; case 684: #line 5086 "../src/parser/XQParser.y" { (yyval.ftanyalloption) = FTWords::PHRASE; } break; case 686: #line 5096 "../src/parser/XQParser.y" { yyerror((yylsp[(1) - (3)]), "The FTTimes operator is not supported. [err:FTST0005]"); } break; case 687: #line 5107 "../src/parser/XQParser.y" { (yyval.ftrange).type = FTRange::EXACTLY; (yyval.ftrange).arg1 = (yyvsp[(2) - (2)].astNode); (yyval.ftrange).arg2 = 0; } break; case 688: #line 5113 "../src/parser/XQParser.y" { (yyval.ftrange).type = FTRange::AT_LEAST; (yyval.ftrange).arg1 = (yyvsp[(3) - (3)].astNode); (yyval.ftrange).arg2 = 0; } break; case 689: #line 5119 "../src/parser/XQParser.y" { (yyval.ftrange).type = FTRange::AT_MOST; (yyval.ftrange).arg1 = (yyvsp[(3) - (3)].astNode); (yyval.ftrange).arg2 = 0; } break; case 690: #line 5125 "../src/parser/XQParser.y" { (yyval.ftrange).type = FTRange::FROM_TO; (yyval.ftrange).arg1 = (yyvsp[(2) - (4)].astNode); (yyval.ftrange).arg2 = (yyvsp[(4) - (4)].astNode); } break; case 691: #line 5140 "../src/parser/XQParser.y" { (yyval.ftoption) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) FTOrder(MEMMGR)); } break; case 692: #line 5144 "../src/parser/XQParser.y" { (yyval.ftoption) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) FTWindow((yyvsp[(2) - (3)].astNode), (yyvsp[(3) - (3)].ftunit), MEMMGR)); } break; case 693: #line 5148 "../src/parser/XQParser.y" { (yyval.ftoption) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) FTDistance((yyvsp[(2) - (3)].ftrange), (yyvsp[(3) - (3)].ftunit), MEMMGR)); } break; case 694: #line 5152 "../src/parser/XQParser.y" { (yyval.ftoption) = WRAP((yylsp[(1) - (2)]), new (MEMMGR) FTScope(FTScope::SAME, (yyvsp[(2) - (2)].ftunit), MEMMGR)); } break; case 695: #line 5156 "../src/parser/XQParser.y" { (yyval.ftoption) = WRAP((yylsp[(1) - (2)]), new (MEMMGR) FTScope(FTScope::DIFFERENT, (yyvsp[(2) - (2)].ftunit), MEMMGR)); } break; case 696: #line 5160 "../src/parser/XQParser.y" { (yyval.ftoption) = WRAP((yylsp[(1) - (2)]), new (MEMMGR) FTContent(FTContent::AT_START, MEMMGR)); } break; case 697: #line 5164 "../src/parser/XQParser.y" { (yyval.ftoption) = WRAP((yylsp[(1) - (2)]), new (MEMMGR) FTContent(FTContent::AT_END, MEMMGR)); } break; case 698: #line 5168 "../src/parser/XQParser.y" { (yyval.ftoption) = WRAP((yylsp[(1) - (2)]), new (MEMMGR) FTContent(FTContent::ENTIRE_CONTENT, MEMMGR)); } break; case 699: #line 5176 "../src/parser/XQParser.y" { (yyval.ftunit) = FTOption::WORDS; } break; case 700: #line 5180 "../src/parser/XQParser.y" { (yyval.ftunit) = FTOption::SENTENCES; } break; case 701: #line 5184 "../src/parser/XQParser.y" { (yyval.ftunit) = FTOption::PARAGRAPHS; } break; case 702: #line 5192 "../src/parser/XQParser.y" { (yyval.ftunit) = FTOption::SENTENCES; } break; case 703: #line 5196 "../src/parser/XQParser.y" { (yyval.ftunit) = FTOption::PARAGRAPHS; } break; case 714: #line 5232 "../src/parser/XQParser.y" { CONTEXT->setFTCase(StaticContext::CASE_INSENSITIVE); } break; case 715: #line 5236 "../src/parser/XQParser.y" { CONTEXT->setFTCase(StaticContext::CASE_SENSITIVE); } break; case 716: #line 5240 "../src/parser/XQParser.y" { CONTEXT->setFTCase(StaticContext::LOWERCASE); } break; case 717: #line 5244 "../src/parser/XQParser.y" { CONTEXT->setFTCase(StaticContext::UPPERCASE); } break; case 718: #line 5253 "../src/parser/XQParser.y" { std::cerr << "diacritics insensitive" << std::endl; } break; case 719: #line 5257 "../src/parser/XQParser.y" { std::cerr << "diacritics sensitive" << std::endl; } break; case 720: #line 5265 "../src/parser/XQParser.y" { std::cerr << "using stemming" << std::endl; } break; case 721: #line 5269 "../src/parser/XQParser.y" { std::cerr << "no stemming" << std::endl; } break; case 722: #line 5279 "../src/parser/XQParser.y" { std::cerr << "using thesaurus" << std::endl; } break; case 723: #line 5283 "../src/parser/XQParser.y" { std::cerr << "using thesaurus default" << std::endl; } break; case 724: #line 5287 "../src/parser/XQParser.y" { std::cerr << "using thesaurus ()" << std::endl; } break; case 725: #line 5291 "../src/parser/XQParser.y" { std::cerr << "using thesaurus (default)" << std::endl; } break; case 726: #line 5295 "../src/parser/XQParser.y" { std::cerr << "no thesaurus" << std::endl; } break; case 727: #line 5302 "../src/parser/XQParser.y" { } break; case 728: #line 5305 "../src/parser/XQParser.y" { } break; case 729: #line 5312 "../src/parser/XQParser.y" { std::cerr << "at StringLiteral" << std::endl; } break; case 730: #line 5316 "../src/parser/XQParser.y" { std::cerr << "at StringLiteral relationship StringLiteral" << std::endl; } break; case 731: #line 5320 "../src/parser/XQParser.y" { std::cerr << "at StringLiteral levels" << std::endl; } break; case 732: #line 5324 "../src/parser/XQParser.y" { std::cerr << "at StringLiteral relationship StringLiteral levels" << std::endl; } break; case 733: #line 5334 "../src/parser/XQParser.y" { yyerror((yylsp[(1) - (4)]), "FTStopWordOption is not supported. [err:FTST0006]"); } break; case 734: #line 5338 "../src/parser/XQParser.y" { yyerror((yylsp[(1) - (3)]), "FTStopWordOption is not supported. [err:FTST0006]"); } break; case 735: #line 5342 "../src/parser/XQParser.y" { yyerror((yylsp[(1) - (4)]), "FTStopWordOption is not supported. [err:FTST0006]"); } break; case 736: #line 5349 "../src/parser/XQParser.y" { } break; case 737: #line 5352 "../src/parser/XQParser.y" { } break; case 738: #line 5360 "../src/parser/XQParser.y" { std::cerr << "at URILiteral" << std::endl; } break; case 739: #line 5364 "../src/parser/XQParser.y" { std::cerr << "()" << std::endl; } break; case 740: #line 5371 "../src/parser/XQParser.y" { std::cerr << "StringLiteral" << std::endl; } break; case 741: #line 5375 "../src/parser/XQParser.y" { std::cerr << ", StringLiteral" << std::endl; } break; case 742: #line 5383 "../src/parser/XQParser.y" { std::cerr << "union" << std::endl; } break; case 743: #line 5387 "../src/parser/XQParser.y" { std::cerr << "except" << std::endl; } break; case 744: #line 5395 "../src/parser/XQParser.y" { std::cerr << "language StringLiteral" << std::endl; } break; case 745: #line 5403 "../src/parser/XQParser.y" { std::cerr << "using wildcards" << std::endl; } break; case 746: #line 5407 "../src/parser/XQParser.y" { std::cerr << "no wildcards" << std::endl; } break; case 747: #line 5415 "../src/parser/XQParser.y" { } break; case 748: #line 5422 "../src/parser/XQParser.y" { (yyval.astNode) = (yyvsp[(3) - (3)].astNode); } break; case 749: #line 5430 "../src/parser/XQParser.y" { CHECK_SPECIFIED((yylsp[(1) - (3)]), BIT_REVALIDATION_SPECIFIED, "revalidation", "XUST0003"); CONTEXT->setRevalidationMode(DocumentCache::VALIDATION_STRICT); } break; case 750: #line 5435 "../src/parser/XQParser.y" { CHECK_SPECIFIED((yylsp[(1) - (3)]), BIT_REVALIDATION_SPECIFIED, "revalidation", "XUST0003"); CONTEXT->setRevalidationMode(DocumentCache::VALIDATION_LAX); } break; case 751: #line 5440 "../src/parser/XQParser.y" { CHECK_SPECIFIED((yylsp[(1) - (3)]), BIT_REVALIDATION_SPECIFIED, "revalidation", "XUST0003"); CONTEXT->setRevalidationMode(DocumentCache::VALIDATION_SKIP); } break; case 752: #line 5452 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (6)]), new (MEMMGR) UInsertAsFirst((yyvsp[(2) - (6)].astNode), (yyvsp[(6) - (6)].astNode), MEMMGR)); } break; case 753: #line 5456 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (6)]), new (MEMMGR) UInsertAsLast((yyvsp[(2) - (6)].astNode), (yyvsp[(6) - (6)].astNode), MEMMGR)); } break; case 754: #line 5460 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (4)]), new (MEMMGR) UInsertInto((yyvsp[(2) - (4)].astNode), (yyvsp[(4) - (4)].astNode), MEMMGR)); } break; case 755: #line 5464 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (4)]), new (MEMMGR) UInsertAfter((yyvsp[(2) - (4)].astNode), (yyvsp[(4) - (4)].astNode), MEMMGR)); } break; case 756: #line 5468 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (4)]), new (MEMMGR) UInsertBefore((yyvsp[(2) - (4)].astNode), (yyvsp[(4) - (4)].astNode), MEMMGR)); } break; case 759: #line 5479 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (2)]), new (MEMMGR) UDelete((yyvsp[(2) - (2)].astNode), MEMMGR)); } break; case 762: #line 5490 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (7)]), new (MEMMGR) UReplaceValueOf((yyvsp[(5) - (7)].astNode), (yyvsp[(7) - (7)].astNode), MEMMGR)); } break; case 763: #line 5494 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (5)]), new (MEMMGR) UReplace((yyvsp[(3) - (5)].astNode), (yyvsp[(5) - (5)].astNode), MEMMGR)); } break; case 764: #line 5504 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (5)]), new (MEMMGR) URename((yyvsp[(3) - (5)].astNode), (yyvsp[(5) - (5)].astNode), MEMMGR)); } break; case 765: #line 5512 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (6)]), new (MEMMGR) UTransform((yyvsp[(2) - (6)].copyBindingList), (yyvsp[(4) - (6)].astNode), (yyvsp[(6) - (6)].astNode), MEMMGR)); } break; case 766: #line 5519 "../src/parser/XQParser.y" { (yyvsp[(1) - (3)].copyBindingList)->push_back((yyvsp[(3) - (3)].copyBinding)); (yyval.copyBindingList) = (yyvsp[(1) - (3)].copyBindingList); } break; case 767: #line 5524 "../src/parser/XQParser.y" { (yyval.copyBindingList) = new (MEMMGR) VectorOfCopyBinding(XQillaAllocator(MEMMGR)); (yyval.copyBindingList)->push_back((yyvsp[(1) - (1)].copyBinding)); } break; case 768: #line 5532 "../src/parser/XQParser.y" { (yyval.copyBinding) = WRAP((yylsp[(1) - (4)]), new (MEMMGR) CopyBinding(MEMMGR, (yyvsp[(2) - (4)].str), (yyvsp[(4) - (4)].astNode))); } break; case 769: #line 5541 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQLiteral( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, (yyvsp[(1) - (1)].str), AnyAtomicType::DECIMAL, MEMMGR)); } break; case 770: #line 5553 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQLiteral( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_DECIMAL, (yyvsp[(1) - (1)].str), AnyAtomicType::DECIMAL, MEMMGR)); } break; case 771: #line 5565 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQLiteral( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_DOUBLE, (yyvsp[(1) - (1)].str), AnyAtomicType::DOUBLE, MEMMGR)); } break; case 772: #line 5578 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQLiteral( SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_STRING, (yyvsp[(1) - (1)].str), AnyAtomicType::STRING, MEMMGR)); } break; case 773: #line 5589 "../src/parser/XQParser.y" { // Check for a colon for(XMLCh *tmp = (yyvsp[(1) - (1)].str); *tmp; ++tmp) if(*tmp == ':') yyerror((yylsp[(1) - (1)]), "Expecting an NCName, found a QName"); } break; case 774: #line 5598 "../src/parser/XQParser.y" { (yyval.qName) = new (MEMMGR) QualifiedName((yyvsp[(1) - (1)].str),MEMMGR); } break; case 775: #line 5610 "../src/parser/XQParser.y" { FunctionSignature *signature = new (MEMMGR) FunctionSignature(MEMMGR); (yyval.functDecl) = WRAP((yylsp[(1) - (5)]), new (MEMMGR) XQUserFunction((yyvsp[(4) - (5)].str), 0, signature, (yyvsp[(5) - (5)].astNode), MEMMGR)); } break; case 776: #line 5615 "../src/parser/XQParser.y" { FunctionSignature *signature = new (MEMMGR) FunctionSignature((yyvsp[(5) - (7)].argSpecs), (yyvsp[(6) - (7)].sequenceType), MEMMGR); (yyval.functDecl) = WRAP((yylsp[(1) - (7)]), new (MEMMGR) XQUserFunction((yyvsp[(4) - (7)].str), 0, signature, (yyvsp[(7) - (7)].astNode), MEMMGR)); } break; case 777: #line 5620 "../src/parser/XQParser.y" { FunctionSignature *signature = new (MEMMGR) FunctionSignature(MEMMGR); (yyval.functDecl) = WRAP((yylsp[(1) - (8)]), new (MEMMGR) XQUserFunction((yyvsp[(4) - (8)].str), (yyvsp[(7) - (8)].itemList), signature, (yyvsp[(8) - (8)].astNode), MEMMGR)); (yyval.functDecl)->setModeList((yyvsp[(5) - (8)].modeList)); } break; case 778: #line 5626 "../src/parser/XQParser.y" { FunctionSignature *signature = new (MEMMGR) FunctionSignature((yyvsp[(8) - (10)].argSpecs), (yyvsp[(9) - (10)].sequenceType), MEMMGR); (yyval.functDecl) = WRAP((yylsp[(1) - (10)]), new (MEMMGR) XQUserFunction((yyvsp[(4) - (10)].str), (yyvsp[(7) - (10)].itemList), signature, (yyvsp[(10) - (10)].astNode), MEMMGR)); (yyval.functDecl)->setModeList((yyvsp[(5) - (10)].modeList)); } break; case 779: #line 5632 "../src/parser/XQParser.y" { FunctionSignature *signature = new (MEMMGR) FunctionSignature(MEMMGR); (yyval.functDecl) = WRAP((yylsp[(1) - (6)]), new (MEMMGR) XQUserFunction(0, (yyvsp[(5) - (6)].itemList), signature, (yyvsp[(6) - (6)].astNode), MEMMGR)); (yyval.functDecl)->setModeList((yyvsp[(3) - (6)].modeList)); } break; case 780: #line 5638 "../src/parser/XQParser.y" { FunctionSignature *signature = new (MEMMGR) FunctionSignature((yyvsp[(6) - (8)].argSpecs), (yyvsp[(7) - (8)].sequenceType), MEMMGR); (yyval.functDecl) = WRAP((yylsp[(1) - (8)]), new (MEMMGR) XQUserFunction(0, (yyvsp[(5) - (8)].itemList), signature, (yyvsp[(8) - (8)].astNode), MEMMGR)); (yyval.functDecl)->setModeList((yyvsp[(3) - (8)].modeList)); } break; case 781: #line 5647 "../src/parser/XQParser.y" { (yyval.sequenceType) = 0; } break; case 782: #line 5651 "../src/parser/XQParser.y" { (yyval.sequenceType) = (yyvsp[(2) - (2)].sequenceType); } break; case 783: #line 5659 "../src/parser/XQParser.y" { (yyval.argSpecs) = 0; } break; case 784: #line 5663 "../src/parser/XQParser.y" { (yyval.argSpecs) = (yyvsp[(2) - (3)].argSpecs); } break; case 785: #line 5670 "../src/parser/XQParser.y" { (yyval.modeList) = new (MEMMGR) XQUserFunction::ModeList(XQillaAllocator(MEMMGR)); (yyval.modeList)->push_back(WRAP((yyloc), new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::DEFAULT))); } break; case 786: #line 5675 "../src/parser/XQParser.y" { (yyval.modeList) = (yyvsp[(2) - (2)].modeList); } break; case 787: #line 5683 "../src/parser/XQParser.y" { (yyval.modeList) = new (MEMMGR) XQUserFunction::ModeList(XQillaAllocator(MEMMGR)); (yyval.modeList)->push_back((yyvsp[(1) - (1)].mode)); } break; case 788: #line 5688 "../src/parser/XQParser.y" { (yyvsp[(1) - (3)].modeList)->push_back((yyvsp[(3) - (3)].mode)); (yyval.modeList) = (yyvsp[(1) - (3)].modeList); } break; case 789: #line 5697 "../src/parser/XQParser.y" { (yyval.mode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQUserFunction::Mode((yyvsp[(1) - (1)].str))); } break; case 790: #line 5701 "../src/parser/XQParser.y" { (yyval.mode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::DEFAULT)); } break; case 791: #line 5705 "../src/parser/XQParser.y" { (yyval.mode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::ALL)); } break; case 792: #line 5713 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQCallTemplate((yyvsp[(3) - (3)].str), 0, MEMMGR)); } break; case 793: #line 5717 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (7)]), new (MEMMGR) XQCallTemplate((yyvsp[(3) - (7)].str), (yyvsp[(6) - (7)].templateArgs), MEMMGR)); } break; case 794: #line 5725 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQApplyTemplates((yyvsp[(3) - (3)].astNode), 0, 0, MEMMGR)); } break; case 795: #line 5729 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (7)]), new (MEMMGR) XQApplyTemplates((yyvsp[(3) - (7)].astNode), (yyvsp[(6) - (7)].templateArgs), 0, MEMMGR)); } break; case 796: #line 5733 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (5)]), new (MEMMGR) XQApplyTemplates((yyvsp[(3) - (5)].astNode), 0, (yyvsp[(5) - (5)].mode), MEMMGR)); } break; case 797: #line 5737 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (9)]), new (MEMMGR) XQApplyTemplates((yyvsp[(3) - (9)].astNode), (yyvsp[(8) - (9)].templateArgs), (yyvsp[(5) - (9)].mode), MEMMGR)); } break; case 798: #line 5745 "../src/parser/XQParser.y" { (yyval.mode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQUserFunction::Mode((yyvsp[(1) - (1)].str))); } break; case 799: #line 5749 "../src/parser/XQParser.y" { (yyval.mode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::DEFAULT)); } break; case 800: #line 5753 "../src/parser/XQParser.y" { (yyval.mode) = WRAP((yylsp[(1) - (1)]), new (MEMMGR) XQUserFunction::Mode(XQUserFunction::Mode::CURRENT)); } break; case 801: #line 5761 "../src/parser/XQParser.y" { (yyval.templateArgs) = new (MEMMGR) TemplateArguments(XQillaAllocator(MEMMGR)); (yyval.templateArgs)->push_back((yyvsp[(1) - (1)].templateArg)); } break; case 802: #line 5766 "../src/parser/XQParser.y" { (yyval.templateArgs) = (yyvsp[(1) - (3)].templateArgs); (yyval.templateArgs)->push_back((yyvsp[(3) - (3)].templateArg)); } break; case 803: #line 5776 "../src/parser/XQParser.y" { if((yyvsp[(3) - (5)].sequenceType) != 0) (yyvsp[(5) - (5)].astNode) = (yyvsp[(3) - (5)].sequenceType)->convertFunctionArg((yyvsp[(5) - (5)].astNode), CONTEXT, /*numericfunction*/false, (yyvsp[(3) - (5)].sequenceType)); (yyval.templateArg) = WRAP((yylsp[(1) - (5)]), new (MEMMGR) XQTemplateArgument((yyvsp[(2) - (5)].str), (yyvsp[(5) - (5)].astNode), MEMMGR)); } break; case 806: #line 5793 "../src/parser/XQParser.y" { (yyval.astNode) = WRAP((yylsp[(1) - (3)]), new (MEMMGR) XQFunctionRef((yyvsp[(1) - (3)].str), atoi(UTF8((yyvsp[(3) - (3)].str))), MEMMGR)); } break; case 807: #line 5801 "../src/parser/XQParser.y" { FunctionSignature *signature = new (MEMMGR) FunctionSignature((yyvsp[(2) - (4)].argSpecs), (yyvsp[(3) - (4)].sequenceType), MEMMGR); XQUserFunction *func = WRAP((yylsp[(1) - (4)]), new (MEMMGR) XQUserFunction(0, signature, (yyvsp[(4) - (4)].astNode), false, MEMMGR)); (yyval.astNode) = WRAP((yylsp[(1) - (4)]), new (MEMMGR) XQInlineFunction(func, MEMMGR)); } break; case 808: #line 5812 "../src/parser/XQParser.y" { REJECT_NOT_VERSION3(DynamicFunctionInvocation, (yylsp[(1) - (3)])); (yyval.astNode) = WRAP((yylsp[(2) - (3)]), new (MEMMGR) XQFunctionDeref((yyvsp[(1) - (3)].astNode), new (MEMMGR) VectorOfASTNodes(XQillaAllocator(MEMMGR)), MEMMGR)); } break; case 809: #line 5817 "../src/parser/XQParser.y" { REJECT_NOT_VERSION3(DynamicFunctionInvocation, (yylsp[(1) - (4)])); bool partial = false; VectorOfASTNodes::iterator i; for(i = (yyvsp[(3) - (4)].itemList)->begin(); i != (yyvsp[(3) - (4)].itemList)->end(); ++i) { if(*i == 0) { partial = true; break; } } if(partial) { // This is a partial function application (yyval.astNode) = WRAP((yylsp[(2) - (4)]), new (MEMMGR) XQPartialApply((yyvsp[(1) - (4)].astNode), (yyvsp[(3) - (4)].itemList), MEMMGR)); } else { (yyval.astNode) = WRAP((yylsp[(2) - (4)]), new (MEMMGR) XQFunctionDeref((yyvsp[(1) - (4)].astNode), (yyvsp[(3) - (4)].itemList), MEMMGR)); } } break; case 812: #line 5845 "../src/parser/XQParser.y" { (yyval.itemType) = new (MEMMGR) SequenceType::ItemType(SequenceType::ItemType::TEST_FUNCTION); } break; case 813: #line 5853 "../src/parser/XQParser.y" { (yyval.itemType) = new (MEMMGR) SequenceType::ItemType(new (MEMMGR) VectorOfSequenceTypes(XQillaAllocator(MEMMGR)), (yyvsp[(5) - (5)].sequenceType)); } break; case 814: #line 5857 "../src/parser/XQParser.y" { (yyval.itemType) = new (MEMMGR) SequenceType::ItemType((yyvsp[(3) - (6)].sequenceTypes), (yyvsp[(6) - (6)].sequenceType)); } break; case 815: #line 5864 "../src/parser/XQParser.y" { (yyval.sequenceTypes) = new (MEMMGR) VectorOfSequenceTypes(XQillaAllocator(MEMMGR)); (yyval.sequenceTypes)->push_back((yyvsp[(1) - (1)].sequenceType)); } break; case 816: #line 5869 "../src/parser/XQParser.y" { (yyval.sequenceTypes) = (yyvsp[(1) - (3)].sequenceTypes); (yyval.sequenceTypes)->push_back((yyvsp[(3) - (3)].sequenceType)); } break; case 817: #line 5878 "../src/parser/XQParser.y" { (yyval.itemType) = (yyvsp[(2) - (3)].itemType); } break; /* Line 1267 of yacc.c. */ #line 10680 "../src/parser/XQParser.cpp" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); YYPOPSTACK (yylen); yylen = 0; YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; *++yylsp = yyloc; /* Now `shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ yyn = yyr1[yyn]; yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) yystate = yytable[yystate]; else yystate = yydefgoto[yyn - YYNTOKENS]; goto yynewstate; /*------------------------------------. | yyerrlab -- here on detecting error | `------------------------------------*/ yyerrlab: /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { ++yynerrs; #if ! YYERROR_VERBOSE yyerror (YY_("syntax error")); #else { YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) { YYSIZE_T yyalloc = 2 * yysize; if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) yyalloc = YYSTACK_ALLOC_MAXIMUM; if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); yymsg = (char *) YYSTACK_ALLOC (yyalloc); if (yymsg) yymsg_alloc = yyalloc; else { yymsg = yymsgbuf; yymsg_alloc = sizeof yymsgbuf; } } if (0 < yysize && yysize <= yymsg_alloc) { (void) yysyntax_error (yymsg, yystate, yychar); yyerror (yymsg); } else { yyerror (YY_("syntax error")); if (yysize != 0) goto yyexhaustedlab; } } #endif } yyerror_range[0] = yylloc; if (yyerrstatus == 3) { /* If just tried and failed to reuse look-ahead token after an error, discard it. */ if (yychar <= YYEOF) { /* Return failure if at end of input. */ if (yychar == YYEOF) YYABORT; } else { yydestruct ("Error: discarding", yytoken, &yylval, &yylloc); yychar = YYEMPTY; } } /* Else will try to reuse look-ahead token after shifting the error token. */ goto yyerrlab1; /*---------------------------------------------------. | yyerrorlab -- error raised explicitly by YYERROR. | `---------------------------------------------------*/ yyerrorlab: /* Pacify compilers like GCC when the user code never invokes YYERROR and the label yyerrorlab therefore never appears in user code. */ if (/*CONSTCOND*/ 0) goto yyerrorlab; yyerror_range[0] = yylsp[1-yylen]; /* Do not reclaim the symbols of the rule which action triggered this YYERROR. */ YYPOPSTACK (yylen); yylen = 0; YY_STACK_PRINT (yyss, yyssp); yystate = *yyssp; goto yyerrlab1; /*-------------------------------------------------------------. | yyerrlab1 -- common code for both syntax error and YYERROR. | `-------------------------------------------------------------*/ yyerrlab1: yyerrstatus = 3; /* Each real token shifted decrements this. */ for (;;) { yyn = yypact[yystate]; if (yyn != YYPACT_NINF) { yyn += YYTERROR; if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) { yyn = yytable[yyn]; if (0 < yyn) break; } } /* Pop the current state because it cannot handle the error token. */ if (yyssp == yyss) YYABORT; yyerror_range[0] = *yylsp; yydestruct ("Error: popping", yystos[yystate], yyvsp, yylsp); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); } if (yyn == YYFINAL) YYACCEPT; *++yyvsp = yylval; yyerror_range[1] = yylloc; /* Using YYLLOC is tempting, but would change the location of the look-ahead. YYLOC is available though. */ YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2); *++yylsp = yyloc; /* Shift the error token. */ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); yystate = yyn; goto yynewstate; /*-------------------------------------. | yyacceptlab -- YYACCEPT comes here. | `-------------------------------------*/ yyacceptlab: yyresult = 0; goto yyreturn; /*-----------------------------------. | yyabortlab -- YYABORT comes here. | `-----------------------------------*/ yyabortlab: yyresult = 1; goto yyreturn; #ifndef yyoverflow /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ yyexhaustedlab: yyerror (YY_("memory exhausted")); yyresult = 2; /* Fall through. */ #endif yyreturn: if (yychar != YYEOF && yychar != YYEMPTY) yydestruct ("Cleanup: discarding lookahead", yytoken, &yylval, &yylloc); /* Do not reclaim the symbols of the rule which action triggered this YYABORT or YYACCEPT. */ YYPOPSTACK (yylen); YY_STACK_PRINT (yyss, yyssp); while (yyssp != yyss) { yydestruct ("Cleanup: popping", yystos[*yyssp], yyvsp, yylsp); YYPOPSTACK (1); } #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif #if YYERROR_VERBOSE if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); #endif /* Make sure YYID is used. */ return YYID (yyresult); } #line 5913 "../src/parser/XQParser.y" } // namespace XQParser XQilla-2.3.0/src/events/0000755000151400015140000000000011653572442012007 500000000000000XQilla-2.3.0/src/events/NoInheritFilter.hpp0000644000151400015140000000415011653565523015507 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _NOINHERITFILTER_HPP #define _NOINHERITFILTER_HPP #include #include class NoInheritFilter : public EventFilter { public: NoInheritFilter(EventHandler *next, XPath2MemoryManager *mm); virtual void startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding); virtual void endDocumentEvent(); virtual void startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname); virtual void endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName); virtual void piEvent(const XMLCh *target, const XMLCh *value); virtual void textEvent(const XMLCh *value); virtual void textEvent(const XMLCh *chars, unsigned int length); virtual void commentEvent(const XMLCh *value); virtual void attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName); virtual void namespaceEvent(const XMLCh *prefix, const XMLCh *uri); virtual void endEvent(); private: void checkElementStarted(); XPath2MemoryManager *mm_; XERCES_CPP_NAMESPACE_QUALIFIER RefHashTableOf prefixes_; XERCES_CPP_NAMESPACE_QUALIFIER RefHashTableOf prefixes2_; unsigned int level_; bool elementStarted_; }; #endif XQilla-2.3.0/src/events/NoInheritFilter.cpp0000644000151400015140000000741411653565523015510 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "NoInheritFilter.hpp" #include XERCES_CPP_NAMESPACE_USE; NoInheritFilter::NoInheritFilter(EventHandler *next, XPath2MemoryManager *mm) : EventFilter(next), mm_(mm), prefixes_(7, mm), prefixes2_(7, mm), level_(0), elementStarted_(false) { } void NoInheritFilter::startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding) { ++level_; next_->startDocumentEvent(documentURI, encoding); } void NoInheritFilter::endDocumentEvent() { next_->endDocumentEvent(); --level_; } void NoInheritFilter::endEvent() { next_->endEvent(); level_ = 0; } void NoInheritFilter::checkElementStarted() { if(elementStarted_) { elementStarted_ = false; if(level_ == 2) { // Add namespaces to un-inherit our parent's namespaces RefHashTableOfEnumerator en(&prefixes_); while(en.hasMoreElements()) { const XMLCh *prefix = (const XMLCh*)en.nextElementKey(); if(!prefixes2_.containsKey((void*)prefix)) { next_->namespaceEvent(prefix, 0); } } } } } void NoInheritFilter::startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname) { checkElementStarted(); ++level_; next_->startElementEvent(prefix, uri, localname); if(level_ == 1 && uri != 0) { prefixes_.put((void*)mm_->getPooledString(prefix), 0); } else if(level_ == 2) { prefixes2_.removeAll(); prefixes2_.put((void*)mm_->getPooledString(prefix), 0); elementStarted_ = true; } } void NoInheritFilter::endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName) { checkElementStarted(); next_->endElementEvent(prefix, uri, localname, typeURI, typeName); --level_; } void NoInheritFilter::piEvent(const XMLCh *target, const XMLCh *value) { checkElementStarted(); next_->piEvent(target, value); } void NoInheritFilter::textEvent(const XMLCh *value) { checkElementStarted(); next_->textEvent(value); } void NoInheritFilter::textEvent(const XMLCh *chars, unsigned int length) { checkElementStarted(); next_->textEvent(chars, length); } void NoInheritFilter::commentEvent(const XMLCh *value) { checkElementStarted(); next_->commentEvent(value); } void NoInheritFilter::attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { next_->attributeEvent(prefix, uri, localname, value, typeURI, typeName); if(level_ == 1 && uri != 0) { prefixes_.put((void*)mm_->getPooledString(prefix), 0); } else if(level_ == 2 && uri != 0) { prefixes2_.put((void*)mm_->getPooledString(prefix), 0); } } void NoInheritFilter::namespaceEvent(const XMLCh *prefix, const XMLCh *uri) { next_->namespaceEvent(prefix, uri); if(level_ == 1 && uri != 0) { prefixes_.put((void*)mm_->getPooledString(prefix), 0); } else if(level_ == 2) { prefixes2_.put((void*)mm_->getPooledString(prefix), 0); } } XQilla-2.3.0/src/events/QueryPathTreeFilter.cpp0000644000151400015140000002230011653565523016342 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include XERCES_CPP_NAMESPACE_USE; using namespace std; QueryPathTreeFilter::QueryPathTreeFilter(const QueryPathNode *qpn, EventHandler *next) : EventFilter(next) { stack_.push_back(new StackEntry()); stack_.back()->matched = true; if(qpn) stack_.back()->addNode(qpn); } QueryPathTreeFilter::QueryPathTreeFilter(const QPNVector &qpns, EventHandler *next) : EventFilter(next) { stack_.push_back(new StackEntry()); stack_.back()->matched = true; QPNVector::const_iterator i = qpns.begin(); for(; i != qpns.end(); ++i) { stack_.back()->addNode(*i); } } QueryPathTreeFilter::~QueryPathTreeFilter() { for(FilterStack::iterator i = stack_.begin(); i != stack_.end(); ++i) delete *i; } void QueryPathTreeFilter::startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding) { StackEntry *entry = stack_.back(); StackEntry *newEntry = new StackEntry(); stack_.push_back(newEntry); QPNVector::iterator i = entry->children.begin(); for(; i != entry->children.end(); ++i) { switch((*i)->getType()) { case QueryPathNode::ROOT: newEntry->matched = true; newEntry->addChildren(*i); break; case QueryPathNode::DESCENDANT_ATTR: newEntry->addNode(*i); break; case QueryPathNode::DESCENDANT: newEntry->addNode(*i); // Fall through case QueryPathNode::CHILD: if((*i)->isWildcardNodeType()) { newEntry->matched = true; newEntry->addChildren(*i); } break; case QueryPathNode::ATTRIBUTE: default: break; } } // Always output the document node newEntry->matched = true; next_->startDocumentEvent(documentURI, encoding); } void QueryPathTreeFilter::endDocumentEvent() { StackEntry *entry = stack_.back(); if(entry->matched) next_->endDocumentEvent(); delete entry; stack_.pop_back(); } void QueryPathTreeFilter::checkAncestors(FilterStack::reverse_iterator s) { // The actual parent, if we weren't projecting StackEntry *parent = *s; // Look for the node this element would be a child of if it were output now // (The last ancestor that was matched) while(s != stack_.rend() && !(*s)->matched) ++s; assert(s != stack_.rend()); // Is it our real parent? while(*s != parent) { // Search to see if this pseudo-parent is expecting actual children (not descendants) // that match any of the nodes we're looking for right now bool found = false; QPNVector::iterator i = (*s)->children.begin(); for(; !found && i != (*s)->children.end(); ++i) { if((*i)->getType() == QueryPathNode::CHILD) { QPNVector::iterator j = parent->children.begin(); for(; !found && j != parent->children.end(); ++j) { switch((*j)->getType()) { case QueryPathNode::DESCENDANT_ATTR: // Could result in the materialization of any element found = true; break; case QueryPathNode::DESCENDANT: case QueryPathNode::CHILD: if(((*i)->isWildcardName() || (*j)->isWildcardName() || XPath2Utils::equals((*i)->getName(), (*j)->getName())) && ((*i)->isWildcardURI() || (*j)->isWildcardURI() || XPath2Utils::equals((*i)->getURI(), (*j)->getURI()))) { found = true; } break; case QueryPathNode::ROOT: case QueryPathNode::ATTRIBUTE: default: break; } } } } if(!found) break; // Our pseudo-parent is expecting children that could match nodes in this part // of it's sub-tree - better output the next intermediate ancestor to disambiguate --s; (*s)->matched = true; next_->startElementEvent(emptyToNull((*s)->prefix.getRawBuffer()), emptyToNull((*s)->uri.getRawBuffer()), (*s)->localname.getRawBuffer()); } } void QueryPathTreeFilter::startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname) { StackEntry *entry = stack_.back(); StackEntry *newEntry = new StackEntry(); stack_.push_back(newEntry); QPNVector::iterator i = entry->children.begin(); for(; i != entry->children.end(); ++i) { switch((*i)->getType()) { case QueryPathNode::DESCENDANT_ATTR: newEntry->addNode(*i); break; case QueryPathNode::DESCENDANT: newEntry->addNode(*i); // Fall through case QueryPathNode::CHILD: if(((*i)->isWildcardName() || XPath2Utils::equals((*i)->getName(), localname)) && ((*i)->isWildcardURI() || XPath2Utils::equals((*i)->getURI(), uri))) { newEntry->matched = true; newEntry->addChildren(*i); } break; case QueryPathNode::ROOT: case QueryPathNode::ATTRIBUTE: default: break; } } if(newEntry->matched) { FilterStack::reverse_iterator s = stack_.rbegin(); ++s; assert(*s == entry); checkAncestors(s); next_->startElementEvent(prefix, uri, localname); } else { newEntry->prefix.set(prefix); newEntry->uri.set(uri); newEntry->localname.set(localname); } } void QueryPathTreeFilter::endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName) { StackEntry *entry = stack_.back(); if(entry->matched) { next_->endElementEvent(prefix, uri, localname, typeURI, typeName); } stack_.pop_back(); delete entry; } void QueryPathTreeFilter::piEvent(const XMLCh *target, const XMLCh *value) { if(stack_.back()->nonElementChildren) { checkAncestors(stack_.rbegin()); next_->piEvent(target, value); } } void QueryPathTreeFilter::textEvent(const XMLCh *value) { if(stack_.back()->nonElementChildren) { checkAncestors(stack_.rbegin()); next_->textEvent(value); } } void QueryPathTreeFilter::textEvent(const XMLCh *chars, unsigned int length) { if(stack_.back()->nonElementChildren) { checkAncestors(stack_.rbegin()); next_->textEvent(chars, length); } } void QueryPathTreeFilter::commentEvent(const XMLCh *value) { if(stack_.back()->nonElementChildren) { checkAncestors(stack_.rbegin()); next_->commentEvent(value); } } void QueryPathTreeFilter::attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { StackEntry *entry = stack_.back(); if(entry->attrChildren) { bool found = false; QPNVector::iterator i = entry->children.begin(); for(; i != entry->children.end() && !found; ++i) { switch((*i)->getType()) { case QueryPathNode::DESCENDANT_ATTR: case QueryPathNode::ATTRIBUTE: if(((*i)->isWildcardName() || XPath2Utils::equals((*i)->getName(), localname)) && ((*i)->isWildcardURI() || XPath2Utils::equals((*i)->getURI(), uri))) { found = true; } break; default: break; } } if(found) { if(!entry->matched) { // Output the element for this attribute entry->matched = true; next_->startElementEvent(emptyToNull(entry->prefix.getRawBuffer()), emptyToNull(entry->uri.getRawBuffer()), entry->localname.getRawBuffer()); } next_->attributeEvent(prefix, uri, localname, value, typeURI, typeName); } } } void QueryPathTreeFilter::namespaceEvent(const XMLCh *prefix, const XMLCh *uri) { StackEntry *entry = stack_.back(); if(!entry->matched) { // Output the element for this namespace node entry->matched = true; next_->startElementEvent(emptyToNull(entry->prefix.getRawBuffer()), emptyToNull(entry->uri.getRawBuffer()), entry->localname.getRawBuffer()); } // We always output namespace nodes next_->namespaceEvent(prefix, uri); } void QueryPathTreeFilter::StackEntry::addNode(const QueryPathNode *qpn) { switch(qpn->getType()) { case QueryPathNode::DESCENDANT: case QueryPathNode::CHILD: if(qpn->isWildcardNodeType()) nonElementChildren = true; break; case QueryPathNode::DESCENDANT_ATTR: case QueryPathNode::ATTRIBUTE: attrChildren = true; break; default: break; } children.push_back(qpn); } void QueryPathTreeFilter::StackEntry::addChildren(const QueryPathNode *qpn) { const QueryPathNode *child = qpn->getFirstChild(); while(child != 0) { addNode(child); child = child->getNextSibling(); } } XQilla-2.3.0/src/events/EventGenerator.cpp0000644000151400015140000000353011653565523015366 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include ASTNodeEventGenerator::ASTNodeEventGenerator(const ASTNode *ast, bool preserveNS, bool preserveType) : ast_(ast), preserveNS_(preserveNS), preserveType_(preserveType) { } EventGenerator::Ptr ASTNodeEventGenerator::generateEvents(EventHandler *events, DynamicContext *context) { return ast_->generateEvents(events, context, preserveNS_, preserveType_); } Result EventGenerator::createResult(const ASTNode *ast, const QueryPathNode *projection, DynamicContext *context) { AutoDelete builder(context->createSequenceBuilder()); if(context->getProjection() && projection != 0) { QueryPathTreeFilter qptf(projection, builder.get()); ast->generateAndTailCall(&qptf, context, true, true); qptf.endEvent(); } else { ast->generateAndTailCall(builder.get(), context, true, true); builder->endEvent(); } return builder->getSequence(); } XQilla-2.3.0/src/events/ContentSequenceFilter.cpp0000644000151400015140000000524111653565523016710 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include ContentSequenceFilter::ContentSequenceFilter(EventHandler *next) : EventFilter(next), lastWasAtomic_(false) { } void ContentSequenceFilter::startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding) { // Do nothing } void ContentSequenceFilter::endDocumentEvent() { // Do nothing } void ContentSequenceFilter::endEvent() { // Do nothing } void ContentSequenceFilter::startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname) { lastWasAtomic_ = false; next_->startElementEvent(prefix, uri, localname); } void ContentSequenceFilter::piEvent(const XMLCh *target, const XMLCh *value) { lastWasAtomic_ = false; next_->piEvent(target, value); } void ContentSequenceFilter::textEvent(const XMLCh *value) { lastWasAtomic_ = false; next_->textEvent(value); } void ContentSequenceFilter::textEvent(const XMLCh *chars, unsigned int length) { lastWasAtomic_ = false; next_->textEvent(chars, length); } void ContentSequenceFilter::commentEvent(const XMLCh *value) { lastWasAtomic_ = false; next_->commentEvent(value); } void ContentSequenceFilter::attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { lastWasAtomic_ = false; next_->attributeEvent(prefix, uri, localname, value, typeURI, typeName); } void ContentSequenceFilter::namespaceEvent(const XMLCh *prefix, const XMLCh *uri) { lastWasAtomic_ = false; next_->namespaceEvent(prefix, uri); } void ContentSequenceFilter::atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { static XMLCh space[] = { ' ', 0 }; if(lastWasAtomic_) { next_->textEvent(space); } next_->textEvent(value); lastWasAtomic_ = true; } XQilla-2.3.0/src/events/NSFixupFilter.cpp0000644000151400015140000001307511653565523015145 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include XERCES_CPP_NAMESPACE_USE; NSFixupFilter::NSFixupFilter(EventHandler *next, XPath2MemoryManager *mm) : EventFilter(next), mm_(mm), level_(0), elements_(0), namespaces_(0) { } NSFixupFilter::~NSFixupFilter() { while(elements_ != 0) { ElemEntry *tmp = elements_; elements_ = elements_->prev; mm_->deallocate(tmp); } while(namespaces_ != 0) { NSEntry *tmp = namespaces_; namespaces_ = namespaces_->prev; mm_->deallocate(tmp); } } void NSFixupFilter::startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding) { next_->startDocumentEvent(documentURI, encoding); ++level_; } void NSFixupFilter::endDocumentEvent() { --level_; next_->endDocumentEvent(); } void NSFixupFilter::startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname) { ++level_; bool def = definePrefix(prefix, uri); // add the prefix to our linked list ElemEntry *entry = (ElemEntry*)mm_->allocate(sizeof(ElemEntry)); entry->set(mm_->getPooledString(prefix), elements_); elements_ = entry; next_->startElementEvent(prefix, uri, localname); if(def) next_->namespaceEvent(prefix, uri); } void NSFixupFilter::endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName) { ElemEntry *etmp = elements_; next_->endElementEvent(etmp->prefix, uri, localname, typeURI, typeName); --level_; elements_ = elements_->prev; mm_->deallocate(etmp); while(namespaces_ != 0 && namespaces_->level > level_) { NSEntry *tmp = namespaces_; namespaces_ = namespaces_->prev; mm_->deallocate(tmp); } } void NSFixupFilter::attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { if(level_ != 0 && definePrefix(prefix, uri, /*attr*/true)) { next_->namespaceEvent(prefix, uri); } next_->attributeEvent(prefix, uri, localname, value, typeURI, typeName); } void NSFixupFilter::namespaceEvent(const XMLCh *prefix, const XMLCh *uri) { if(level_ == 0 || definePrefix(prefix, uri, /*attr*/false, /*redefine*/false)) { next_->namespaceEvent(prefix, uri); } } static void numToBuf(unsigned int n, XMLBuffer &buf) { if(n >= 10) numToBuf(n / 10, buf); buf.append('0' + (n % 10)); } NSFixupFilter::NSEntry *NSFixupFilter::findPrefix(const XMLCh *prefix) { NSEntry *cur = namespaces_; while(cur != 0) { if(XPath2Utils::equals(prefix, cur->prefix)) { break; } cur = cur->prev; } return cur; } /// Returns the prefix to use bool NSFixupFilter::definePrefix(const XMLCh *&prefix, const XMLCh *uri, bool attr, bool redefine) { // Attributes with no namespace do not need a prefix defined if(uri == 0 && attr) return false; // The "xml" prefix is always defined if(XPath2Utils::equals(XMLUni::fgXMLString, prefix)) return false; bool define = true; bool newPrefix = false; // Make up a prefix for an attribute in a namespace without one if(prefix == 0 && attr) { newPrefix = true; } else { // Check if the prefix is already defined NSEntry *cur = findPrefix(prefix); if(cur != 0) { if(XPath2Utils::equals(uri, cur->uri)) { // The prefix is already defined define = false; } else if(cur->level == level_) { if(uri == 0) { // TBD this is an error - jpcs define = false; } else if(!redefine) { define = false; } else { newPrefix = true; } } } else if(uri == 0) { // The default namespace is implicitly set to no namespace define = false; } } if(newPrefix) { // See if there's an existing binding NSEntry *cur = namespaces_; while(cur != 0) { if(XPath2Utils::equals(uri, cur->uri) && (!attr || cur->prefix != 0)) { break; } cur = cur->prev; } if(cur != 0) { prefix = cur->prefix; define = false; } else { // Choose a new prefix static XMLCh ns_prefix[] = { 'n', 's', 0 }; if(prefix == 0) prefix = ns_prefix; XMLBuffer buf(20, mm_); unsigned int num = 0; do { ++num; buf.set(prefix); buf.append('_'); numToBuf(num, buf); } while(findPrefix(buf.getRawBuffer()) != 0); prefix = mm_->getPooledString(buf.getRawBuffer()); } } // add the mapping to our linked list NSEntry *entry = (NSEntry*)mm_->allocate(sizeof(NSEntry)); entry->set(mm_->getPooledString(prefix), mm_->getPooledString(uri), level_, namespaces_); namespaces_ = entry; return define; } XQilla-2.3.0/src/events/EventSerializer.cpp0000644000151400015140000002040611653565523015552 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include XERCES_CPP_NAMESPACE_USE; static const XMLCh startElem_start = '<'; static const XMLCh elem_end = '>'; static const XMLCh endElem_selfClose[] = { '/', '>', 0 }; static const XMLCh endElem_start[] = { '<', '/', 0 }; static const XMLCh colon = ':'; static const XMLCh pi_start[] = { '<', '?', 0 }; static const XMLCh space = ' '; static const XMLCh pi_end[] = { '?', '>', 0 }; static const XMLCh comment_start[] = { '<', '!', '-', '-', 0 }; static const XMLCh comment_end[] = { '-', '-', '>', 0 }; static const XMLCh attr_equals_quote[] = { '=', '"', 0 }; static const XMLCh quote = '"'; static const XMLCh attr_xmlns[] = { ' ', 'x', 'm', 'l', 'n', 's', 0 }; static const XMLCh openCurly = '{'; static const XMLCh closeCurly = '}'; static const XMLCh openSquare = '['; static const XMLCh closeSquare = ']'; static const XMLCh newline = '\n'; EventSerializer::EventSerializer(const char *encoding, const char *xmlVersion, XMLFormatTarget *target, MemoryManager *mm) : formatter_(encoding, xmlVersion, target, XMLFormatter::CharEscapes, XMLFormatter::UnRep_CharRef, mm), elementStarted_(false), level_(0), version_(XStr(xmlVersion, mm).adopt()), encoding_(XStr(encoding, mm).adopt()), addNewlines_(false), selfClosing_(true), xmlDecls_(true), mm_(mm) { } EventSerializer::EventSerializer(XMLFormatTarget *target, MemoryManager *mm) : formatter_("UTF-16", "1.1", target, XMLFormatter::CharEscapes, XMLFormatter::UnRep_CharRef, mm), elementStarted_(false), level_(0), version_(XStr("1.1", mm).adopt()), encoding_(XStr("UTF-16", mm).adopt()), addNewlines_(false), selfClosing_(true), xmlDecls_(true), mm_(mm) { } EventSerializer::~EventSerializer() { mm_->deallocate(version_); mm_->deallocate(encoding_); } void EventSerializer::startDocumentEvent(const XMLCh *documentURI, const XMLCh *encoding) { if(xmlDecls_) { formatter_ << XMLFormatter::NoEscapes << XMLFormatter::UnRep_Fail; formatter_ << pi_start; formatter_ << X("xml version=\""); formatter_ << version_; formatter_ << X("\" encoding=\""); formatter_ << encoding_; formatter_ << X("\""); formatter_ << pi_end; formatter_ << newline; } ++level_; } void EventSerializer::endDocumentEvent() { --level_; // Nothing to do if(addNewlines_ && level_ == 0) { formatter_ << newline; } } void EventSerializer::endEvent() { // Nothing to do } void EventSerializer::startElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname) { formatter_ << XMLFormatter::NoEscapes << XMLFormatter::UnRep_Fail; if(elementStarted_) { elementStarted_ = false; formatter_ << elem_end; } formatter_ << X("<"); if(prefix != 0) { formatter_ << prefix; formatter_ << colon; } formatter_ << localname; elementStarted_ = true; ++level_; } void EventSerializer::endElementEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *typeURI, const XMLCh *typeName) { --level_; formatter_ << XMLFormatter::NoEscapes << XMLFormatter::UnRep_Fail; if(elementStarted_ && !selfClosing_) { elementStarted_ = false; formatter_ << elem_end; } if(elementStarted_) { elementStarted_ = false; formatter_ << endElem_selfClose; } else { formatter_ << endElem_start; if(prefix != 0) { formatter_ << prefix; formatter_ << colon; } formatter_ << localname; formatter_ << elem_end; } if(addNewlines_ && level_ == 0) { formatter_ << newline; } } void EventSerializer::piEvent(const XMLCh *target, const XMLCh *value) { formatter_ << XMLFormatter::NoEscapes << XMLFormatter::UnRep_Fail; if(elementStarted_) { elementStarted_ = false; formatter_ << elem_end; } formatter_ << pi_start; formatter_ << target; formatter_ << space; formatter_ << value; formatter_ << pi_end; if(addNewlines_ && level_ == 0) { formatter_ << newline; } } void EventSerializer::textEvent(const XMLCh *value) { if(elementStarted_) { elementStarted_ = false; formatter_ << elem_end; } formatter_ << XMLFormatter::CharEscapes << XMLFormatter::UnRep_CharRef; formatter_ << value; if(addNewlines_ && level_ == 0) { formatter_ << newline; } } void EventSerializer::textEvent(const XMLCh *chars, unsigned int length) { if(elementStarted_) { elementStarted_ = false; formatter_ << elem_end; } formatter_ << XMLFormatter::CharEscapes << XMLFormatter::UnRep_CharRef; formatter_.formatBuf(chars, length); if(addNewlines_ && level_ == 0) { formatter_ << newline; } } void EventSerializer::commentEvent(const XMLCh *value) { formatter_ << XMLFormatter::NoEscapes << XMLFormatter::UnRep_Fail; if(elementStarted_) { elementStarted_ = false; formatter_ << elem_end; } formatter_ << comment_start; formatter_ << value; formatter_ << comment_end; if(addNewlines_ && level_ == 0) { formatter_ << newline; } } void EventSerializer::attributeEvent(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { if(elementStarted_) { formatter_ << XMLFormatter::NoEscapes << XMLFormatter::UnRep_Fail; formatter_ << space; if(prefix != 0) { formatter_ << prefix; formatter_ << colon; } formatter_ << localname; formatter_ << attr_equals_quote; formatter_ << XMLFormatter::AttrEscapes << XMLFormatter::UnRep_CharRef; formatter_ << value; formatter_ << XMLFormatter::NoEscapes << XMLFormatter::UnRep_Fail; formatter_ << quote; } else { assert(level_ == 0); formatter_ << XMLFormatter::NoEscapes << XMLFormatter::UnRep_Fail; if(uri != 0) { formatter_ << openCurly; formatter_ << uri; formatter_ << closeCurly; } formatter_ << localname; formatter_ << attr_equals_quote; formatter_ << XMLFormatter::AttrEscapes << XMLFormatter::UnRep_CharRef; formatter_ << value; formatter_ << XMLFormatter::NoEscapes << XMLFormatter::UnRep_Fail; formatter_ << quote; if(addNewlines_) formatter_ << newline; } } void EventSerializer::namespaceEvent(const XMLCh *prefix, const XMLCh *uri) { if(elementStarted_) { formatter_ << XMLFormatter::NoEscapes << XMLFormatter::UnRep_Fail; formatter_ << attr_xmlns; if(prefix != 0) { formatter_ << colon; formatter_ << prefix; } formatter_ << attr_equals_quote; formatter_ << XMLFormatter::AttrEscapes << XMLFormatter::UnRep_CharRef; formatter_ << uri; formatter_ << XMLFormatter::NoEscapes << XMLFormatter::UnRep_Fail; formatter_ << quote; } else { assert(level_ == 0); formatter_ << XMLFormatter::NoEscapes << XMLFormatter::UnRep_Fail; formatter_ << openSquare; if(prefix != 0) { formatter_ << prefix; } formatter_ << attr_equals_quote; formatter_ << XMLFormatter::AttrEscapes << XMLFormatter::UnRep_CharRef; formatter_ << uri; formatter_ << XMLFormatter::NoEscapes << XMLFormatter::UnRep_Fail; formatter_ << quote; formatter_ << closeSquare; if(addNewlines_) formatter_ << newline; } } void EventSerializer::atomicItemEvent(AnyAtomicType::AtomicObjectType type, const XMLCh *value, const XMLCh *typeURI, const XMLCh *typeName) { assert(level_ == 0); formatter_ << XMLFormatter::NoEscapes << XMLFormatter::UnRep_Fail; formatter_ << value; if(addNewlines_) formatter_ << newline; } XQilla-2.3.0/src/utils/0000755000151400015140000000000011653572442011643 500000000000000XQilla-2.3.0/src/utils/UnicodeTransformer.cpp0000644000151400015140000001353411653565523016110 00000000000000/* * Copyright (c) 2001-2008 * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004-2008 * Oracle. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * $Id$ */ #include #include #include #include extern "C" { #include } #define NO_COMPOSITION 0xFFFFFFFF using namespace std; #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif static XMLCh* transformUTF16(const XMLCh *source, int options, XPath2MemoryManager *mm) { // Count word number ssize_t srcSize; const XMLCh* pch = source; for (srcSize = 0; *pch++; srcSize++); // Create a piece of buffer for storaging result. The size is larger than the // source for decompressing/SpecialCasing/Casefolding and so on. The code // consider that a "double size" is enough for most of applied environment. // If the size is not enough, the buffer will be enlarge. ssize_t dstSize = srcSize * 2 + 1; if (dstSize < 1024) dstSize = 1024; AutoDeallocate buf(mm, dstSize * sizeof(int32_t)); // Begin transform ssize_t result = utf16proc_decompose((const uint16_t *)source, srcSize, (int32_t*)buf.get(), dstSize, options); // do nothig if hits internal errors if (result < 0) return 0; // Create a new buffer if the buffer is not large enough if (result > dstSize) { // We have to create a bigger one. dstSize = result + 1; XMLCh* moreMm = (XMLCh*)mm->allocate(dstSize*sizeof(int32_t)); buf.set(moreMm); result = utf16proc_decompose((const uint16_t *)source, srcSize, (int32_t*)buf.get(), dstSize, options); if (result < 0 || result > dstSize) return 0; } result = utf16proc_reencode((int32_t*)buf.get(), result, options); if (result < 0) return 0; // Write the end and push it into stream XMLCh* output = (XMLCh *)buf.adopt(); output[result] = XMLCh(0); return output; } XMLCh* UnicodeTransformer::normalizeC(const XMLCh* source, XPath2MemoryManager* mm) { return transformUTF16(source, UTF8PROC_COMPOSE, mm); } XMLCh* UnicodeTransformer::normalizeD(const XMLCh* source, XPath2MemoryManager* mm) { return transformUTF16(source, UTF8PROC_DECOMPOSE, mm); } XMLCh* UnicodeTransformer::normalizeKC(const XMLCh* source, XPath2MemoryManager* mm) { return transformUTF16(source, UTF8PROC_COMPAT | UTF8PROC_COMPOSE, mm); } XMLCh* UnicodeTransformer::normalizeKD(const XMLCh* source, XPath2MemoryManager* mm) { return transformUTF16(source, UTF8PROC_COMPAT | UTF8PROC_DECOMPOSE, mm); } XMLCh* UnicodeTransformer::caseFold(const XMLCh* source, XPath2MemoryManager* mm) { return transformUTF16(source, UTF8PROC_CASEFOLD, mm); } XMLCh* UnicodeTransformer::removeDiacritics(const XMLCh* source, XPath2MemoryManager* mm) { return transformUTF16(source, UTF8PROC_DECOMPOSE | UTF8PROC_REMOVE_DIACRITIC, mm); } XMLCh* UnicodeTransformer::caseFoldAndRemoveDiacritics(const XMLCh* source, XPath2MemoryManager* mm) { return transformUTF16(source, UTF8PROC_DECOMPOSE | UTF8PROC_CASEFOLD | UTF8PROC_REMOVE_DIACRITIC, mm); } XMLCh* UnicodeTransformer::lowerCase(const XMLCh* source, XPath2MemoryManager* mm) { return transformUTF16(source, UTF8PROC_LOWERCASE, mm); } XMLCh* UnicodeTransformer::upperCase(const XMLCh* source, XPath2MemoryManager* mm) { return transformUTF16(source, UTF8PROC_UPPERCASE, mm); } XMLCh* UnicodeTransformer::words(const XMLCh* source, XPath2MemoryManager* mm) { return transformUTF16(source, UTF8PROC_WORDBOUND, mm); } XMLCh* UnicodeTransformer::sentences(const XMLCh* source, XPath2MemoryManager* mm) { return transformUTF16(source, UTF8PROC_SENTENCEBOUND, mm); } XMLCh* UnicodeTransformer::wordsAndSentences(const XMLCh* source, XPath2MemoryManager *mm) { AutoDeallocate tmp(transformUTF16(source, UTF8PROC_STRIPCC, mm), mm); return transformUTF16(tmp.get(), UTF8PROC_WORDBOUND | UTF8PROC_SENTENCEBOUND, mm); } XMLCh* UnicodeTransformer::transform(const XMLCh* source, int options, XPath2MemoryManager *mm) { return transformUTF16(source, options, mm); } bool UnicodeTransformer::isPunctuation(const XMLCh* source, int &codeSize) { codeSize = 1; if((*source) >=0xD800 && (*source) <= 0xDBFF){ codeSize = 2; } const utf8proc_property_t *property; if(codeSize == 2){ int32_t* uc = (int32_t *)source; property = utf8proc_get_property(*uc); } else { property = utf8proc_get_property(*source); } if(property->category == UTF8PROC_CATEGORY_PC || property->category == UTF8PROC_CATEGORY_PD || property->category == UTF8PROC_CATEGORY_PS || property->category == UTF8PROC_CATEGORY_PE || property->category == UTF8PROC_CATEGORY_PI || property->category == UTF8PROC_CATEGORY_PF || property->category == UTF8PROC_CATEGORY_PO) return true; return false; } bool UnicodeTransformer::isSpaceSeparator(const XMLCh* source) { const utf8proc_property_t *property; property = utf8proc_get_property(*source); if(property->category == UTF8PROC_CATEGORY_ZS) return true; return false; } bool UnicodeTransformer::isSpacesOrPunctuations(const XMLCh* start, const XMLCh* end) { const XMLCh* tmp = start; int codeLen = 1; while(tmp != end){ if( !isSpaceSeparator(tmp) || !isPunctuation(tmp, codeLen)) return false; tmp = tmp + codeLen;; } return true; } XQilla-2.3.0/src/utils/NumUtils.cpp0000644000151400015140000000335511653565523014057 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include int NumUtils::MAPMtoInt(MAPM m) { /* * In theory no float unit can provide absolutely accuracy * (http://en.wikipedia.org/wiki/Floating_point#Accuracy_problems). Says the * double value is 3, in computer the actual value might be 2.9999999996. * In this case, if we convert it to integer directly, some compilers would * conver the value to "2", not expected "3". * * This phenomenon is not a bug but just due to float unit/arithmetic * accuracy limitation, especially on those imprecise float units like * embedded systems and float unit emulators. * * To solve this accuracy issue, we round the double value with 0.5 before * converting it to integer. This method is a common solution for safely * converting double value to integer. */ double x = m.toDouble(); return (x >= 0 ? (int)(x + 0.5) : (int)(x - 0.5)); } double NumUtils::MAPMtoDouble(MAPM m) { return m.toDouble(); } XQilla-2.3.0/src/utils/XQillaPlatformUtils.cpp0000644000151400015140000001157211653565523016217 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include "../dom-api/XQillaImplementation.hpp" #include "DateUtils.hpp" #include #include #include XERCES_CPP_NAMESPACE_USE; static int gInitFlag = 0; void XQillaPlatformUtils::initialize(MemoryManager *memMgr) { // Make sure we haven't already been initialized. Note that this is not // thread safe and is not intended for that. if(gInitFlag++ == 0) { XMLPlatformUtils::Initialize(XMLUni::fgXercescDefaultLocale, 0, 0, memMgr); XQillaImplementation::initialize(); m_apm_library_initialize(); DateUtils::initialize(); FunctionLookup::initialize(); // Add the extra XQuery types to the built-in datatype registry DatatypeValidatorFactory dvf; #if _XERCES_VERSION >= 30000 // Handled during XMLPlatformUtils::Initialize() in Xerces-C 3.0 #else // Trigger the creation of the built-in datatype registry dvf.expandRegistryToFullSchemaSet(); #endif // Expand the Xerces built-in registry to include xs:anyAtomicType // as a base type DatatypeValidator* dv = new AnyAtomicTypeDatatypeValidator(); dv->setTypeName(AnyAtomicType::fgDT_ANYATOMICTYPE, SchemaSymbols::fgURI_SCHEMAFORSCHEMA); DatatypeValidatorFactory::getBuiltInRegistry()-> put((void*)AnyAtomicType::fgDT_ANYATOMICTYPE, dv); // Add xs:yearMonthDuration as a built-in derived type RefHashTableOf* facets = new RefHashTableOf(1); facets->put((void*) SchemaSymbols::fgELT_PATTERN, new XERCES_CPP_NAMESPACE_QUALIFIER KVStringPair(SchemaSymbols::fgELT_PATTERN, ATDurationOrDerived::pattern_DT_YEARMONTHDURATION)); dvf.createDatatypeValidator(ATDurationOrDerived::fgDT_YEARMONTHDURATION, dvf.getDatatypeValidator(SchemaSymbols::fgDT_DURATION), facets, 0, false, 0, false); // Add xs:dayTimeDuration as a built-in derived type facets = new RefHashTableOf(1); facets->put((void*) SchemaSymbols::fgELT_PATTERN, new XERCES_CPP_NAMESPACE_QUALIFIER KVStringPair(SchemaSymbols::fgELT_PATTERN, ATDurationOrDerived::pattern_DT_DAYTIMEDURATION)); dvf.createDatatypeValidator(ATDurationOrDerived::fgDT_DAYTIMEDURATION, dvf.getDatatypeValidator(SchemaSymbols::fgDT_DURATION), facets, 0, false, 0, false); // Add xs:untypedAtomic as a built-in derived type -- no facets dvf.createDatatypeValidator(ATUntypedAtomic::fgDT_UNTYPEDATOMIC, dvf.getDatatypeValidator(AnyAtomicType::fgDT_ANYATOMICTYPE), 0, 0, false, 0, false); } } void XQillaPlatformUtils::terminate() { if(gInitFlag == 0) { return; } if(--gInitFlag == 0) { DateUtils::terminate(); m_apm_library_terminate(); FunctionLookup::terminate(); XQillaImplementation::terminate(); XMLPlatformUtils::Terminate(); } } void XQillaPlatformUtils::enableExtendedPrecision(bool bEnable) { if(bEnable) { ATDecimalOrDerivedImpl::g_nSignificantDigits=50; ATFloatOrDerivedImpl::g_nSignificantDigits=25; ATDoubleOrDerivedImpl::g_nSignificantDigits=25; } else { ATDecimalOrDerivedImpl::g_nSignificantDigits=18; ATFloatOrDerivedImpl::g_nSignificantDigits=7; ATDoubleOrDerivedImpl::g_nSignificantDigits=16; } } XQilla-2.3.0/src/utils/XStr.cpp0000644000151400015140000000232411571227107013162 00000000000000#include "../config/xqilla_config.h" #include #include #include #include XERCES_CPP_NAMESPACE_USE; XStr::XStr(const char* const toTranscode, MemoryManager *mm) : str_(0), mm_(mm) { if(toTranscode == 0) { str_ = mm_ ? (XMLCh*)mm_->allocate(1 * sizeof(XMLCh)) : new XMLCh[1]; str_[0] = 0; } else { XMLUTF8Transcoder t(0, 512); size_t l = XMLString::stringLen(toTranscode); const size_t needed = l * 2 + 1; // 2 chars per byte is the worst case, + '\0' str_ = mm_ ? (XMLCh*)mm_->allocate(needed * sizeof(XMLCh)) : new XMLCh[needed]; AutoDeleteArray charSizes(new unsigned char[needed]); #if _XERCES_VERSION >= 30000 XMLSize_t bytesEaten = 0; t.transcodeFrom((const XMLByte*)toTranscode, l+1, str_, needed, bytesEaten, charSizes); #else unsigned int bytesEaten = 0; t.transcodeFrom((const XMLByte*)toTranscode, (unsigned int)l+1, str_, (unsigned int)needed, bytesEaten, charSizes); #endif } } XStr::~XStr() { if(str_) { if(mm_) mm_->deallocate(str_); else delete [] str_; } } XQilla-2.3.0/src/utils/DateUtils.cpp0000644000151400015140000002536211653565523014177 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include // for sprintf #if defined(WIN32) && !defined(__CYGWIN__) #define snprintf _snprintf #endif #include "DateUtils.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const int DateUtils::g_secondsPerMinute = 60; const int DateUtils::g_minutesPerHour = 60; const int DateUtils::g_hoursPerDay = 24; const int DateUtils::g_secondsPerHour = DateUtils::g_secondsPerMinute*DateUtils::g_minutesPerHour; const int DateUtils::g_secondsPerDay = DateUtils::g_secondsPerHour*DateUtils::g_hoursPerDay; void DateUtils::formatNumber(int value, int minDigits, XMLBuffer& buffer) { bool bIsNegative=false; if(value<0) { bIsNegative=true; value=-value; } XMLCh tmpBuff[19]; XMLString::binToText(value,tmpBuff,18,10); if(bIsNegative) buffer.append(chDash); for(int len = XPath2Utils::intStrlen(tmpBuff);len INT_MAX) { XQThrow2(XPath2TypeCastException, X("DateUtils::asInt"), X("Invalid representation of an int [err:FORG0001]")); } else { return NumUtils::MAPMtoInt(num); } } static int days_before_month[] = { 0, 0+31, 0+31+28, 0+31+28+31, 0+31+28+31+30, 0+31+28+31+30+31, 0+31+28+31+30+31+30, 0+31+28+31+30+31+30+31, 0+31+28+31+30+31+30+31+31, 0+31+28+31+30+31+30+31+31+30, 0+31+28+31+30+31+30+31+31+30+31, 0+31+28+31+30+31+30+31+31+30+31+30 }; static int days_before_month_leap[] = { 0, 0+31, 0+31+29, 0+31+29+31, 0+31+29+31+30, 0+31+29+31+30+31, 0+31+29+31+30+31+30, 0+31+29+31+30+31+30+31, 0+31+29+31+30+31+30+31+31, 0+31+29+31+30+31+30+31+31+30, 0+31+29+31+30+31+30+31+31+30+31, 0+31+29+31+30+31+30+31+31+30+31+30 }; MAPM DateUtils::convertDMY2Absolute(MAPM day, MAPM month, MAPM year) { MAPM prevYear = year - 1; if(year.sign() < 0) ++prevYear; MAPM absolute = ( prevYear * 365 ) + prevYear.integer_divide(4) - prevYear.integer_divide(100) + prevYear.integer_divide(400); if(isLeapYear(year)) absolute+=days_before_month_leap[asInt(month)-1]; else absolute+=days_before_month[asInt(month)-1]; absolute+= day; return absolute - 1; } static int days_in_400_years = 400*365 + 400/4 - 400/100 + 400/400; static int days_in_100_years = 100*365 + 100/4 - 100/100; static int days_in_4_years = 4*365 + 4/4; static int days_in_1_years = 1*365; static inline int daysInYear(const MAPM &year) { return DateUtils::isLeapYear(year) ? 366 : 365; } void DateUtils::convertAbsolute2DMY(MAPM absolute, MAPM& day, MAPM& month, MAPM& year) { absolute += 1; bool bc = absolute.sign() <= 0; bool fix = false; MAPM div, rem; absolute.integer_div_rem(days_in_400_years, div, rem); year = div * 400; absolute = rem; absolute.integer_div_rem(days_in_100_years, div, rem); if(div <= -4) fix = true; if(div >= 4) { div -= 1; rem += days_in_100_years; } year += div * 100; absolute = rem; absolute.integer_div_rem(days_in_4_years, div, rem); year += div * 4; absolute = rem; absolute.integer_div_rem(days_in_1_years, div, rem); if(div <= -4) fix = true; if(div >= 4) { div -= 1; rem += days_in_1_years; } year += div; absolute = rem; if(bc) { if(fix && absolute.sign() == 0) { // Correct off by one error in year calculations // due to negative leap years absolute += 1; } else { --year; absolute += daysInYear(year); } } else { if(absolute.sign() != 0) { ++year; } } month = 12; day = 31; int *days = isLeapYear(year) ? days_before_month_leap : days_before_month; for(int i = 11; i >= 0; --i) { if(absolute > days[i]) { month = i + 1; day = absolute - days[i]; break; } } } const ATDateOrDerived::Ptr DateUtils::getCurrentDate(const DynamicContext* context) { // We get the current time and adjust it to our timezone. We then set // this timezone in the Date object. time_t curDate = context->getCurrentTime(); // Note using localtime uses the tzset() function used by // DateUtils::getImplicitTimezone. This function and getImplicitTimezone // MUST get the same value in order for the correct time to be stored. struct tm curLocalDate; threadsafe_localtime(&curDate, &curLocalDate); char szDate[256]; snprintf(szDate, 256,"%04d-%02d-%02d", curLocalDate.tm_year+1900, curLocalDate.tm_mon+1, curLocalDate.tm_mday); const ATDateOrDerived::Ptr date = context->getItemFactory()-> createDate(context->getMemoryManager()->getPooledString(szDate), context); return date->setTimezone(new Timezone(ContextUtils::getTimezone()), context); } const ATDateTimeOrDerived::Ptr DateUtils::getCurrentDateTime(const DynamicContext* context) { // We get the current time and adjust it to our timezone. We then set // this timezone in the DateTime object. time_t curDate = context->getCurrentTime(); // Note using localtime uses the tzset() function used by // DateUtils::getImplicitTimezone. This function and getImplicitTimezone // MUST get the same value in order for the correct time to be stored. struct tm curLocalDate; threadsafe_localtime(&curDate, &curLocalDate); char szDate[256]; snprintf(szDate, 256,"%04d-%02d-%02dT%02d:%02d:%02d", curLocalDate.tm_year+1900, curLocalDate.tm_mon+1, curLocalDate.tm_mday, curLocalDate.tm_hour, curLocalDate.tm_min, curLocalDate.tm_sec); const ATDateTimeOrDerived::Ptr dateTime = context->getItemFactory()-> createDateTime(context->getMemoryManager()->getPooledString(szDate), context); return dateTime->setTimezone(new Timezone(ContextUtils::getTimezone()), context); } const ATTimeOrDerived::Ptr DateUtils::getCurrentTime(const DynamicContext* context) { time_t curDate = context->getCurrentTime(); struct tm curLocalDate; threadsafe_localtime(&curDate, &curLocalDate); char szDate[256]; snprintf(szDate, 256,"%02d:%02d:%02d", curLocalDate.tm_hour, curLocalDate.tm_min, curLocalDate.tm_sec); const ATTimeOrDerived::Ptr time = context->getItemFactory()-> createTime(context->getMemoryManager()->getPooledString(szDate), context); return time->setTimezone(new Timezone(ContextUtils::getTimezone()), context); } static XMLMutex *time_mutex = 0; void DateUtils::initialize() { if(time_mutex == 0) { time_mutex = new XMLMutex(); } } void DateUtils::terminate() { delete time_mutex; time_mutex = 0; } struct tm *DateUtils::threadsafe_localtime(const time_t *timep, struct tm *result) { XMLMutexLock lock(time_mutex); struct tm *tmp = ::localtime(timep); memcpy(result, tmp, sizeof(struct tm)); return result; } struct tm *DateUtils::threadsafe_gmtime(const time_t *timep, struct tm *result) { XMLMutexLock lock(time_mutex); struct tm *tmp = ::gmtime(timep); memcpy(result, tmp, sizeof(struct tm)); return result; } XQilla-2.3.0/src/utils/XMLChCompare.cpp0000644000151400015140000000254711653565523014523 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include bool QNameSort::operator() (const std::pair lhs, const std::pair rhs) const { return XPath2Utils::equals(lhs.first, rhs.first) ? XERCES_CPP_NAMESPACE_QUALIFIER XMLString::compareString(lhs.second, rhs.second) < 0: XERCES_CPP_NAMESPACE_QUALIFIER XMLString::compareString(lhs.first, rhs.first) < 0; } bool XMLChSort::operator() (const XMLCh* lhs, const XMLCh* rhs) const { return XERCES_CPP_NAMESPACE_QUALIFIER XMLString::compareString(lhs, rhs) < 0; } XQilla-2.3.0/src/utils/ContextUtils.cpp0000644000151400015140000000223011653565523014733 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include "DateUtils.hpp" #include int ContextUtils::getTimezone() { time_t tt; time(&tt); struct tm tm; DateUtils::threadsafe_gmtime(&tt, &tm); struct tm ltm; DateUtils::threadsafe_localtime(&tt, <m); return (((int)tt - (int)mktime(&tm)) / 60 + /*daylight saving time*/(ltm.tm_isdst > 0 ? 1 * 60 : 0)) * DateUtils::g_secondsPerMinute; } XQilla-2.3.0/src/utils/DateUtils.hpp0000644000151400015140000001064411653565523014201 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _DATEUTILS_HPP #define _DATEUTILS_HPP #include #include #include #include #include #include XERCES_CPP_NAMESPACE_BEGIN class XMLBuffer; XERCES_CPP_NAMESPACE_END /** Class with static methods for dealing with date operations */ class DateUtils { public: /** * Constants used when doing date math */ static const int g_secondsPerHour, g_secondsPerMinute, g_secondsPerDay, g_minutesPerHour, g_hoursPerDay; /** * Helper function that appends the specified number with the requested precision * to the buffer (by adding 0s before the number so that it always has minDigits digits) */ static void formatNumber(int value, int minDigits, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer& buffer); /** * Helper function that appends the specified number with the requested precision * to the buffer (by adding 0s before the number so that it always has minDigits digits) */ static void formatNumber(const MAPM &value, int minDigits, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer& buffer); /** * Helper function for adding durations to dateTimes * Returns the greatest integer less than or equal to a/b */ static int fQuotient(int a, int b); /** * Helper function for adding durations to dateTimes * Returns the greatest integer less than or equal to a/b */ static int fQuotient(double a, double b); /** * Helper function for adding durations to dateTimes * Mod function */ static int modulo(int a, int b); /** * Helper function for adding durations to dateTimes * Mod function for seconds part */ static double modulo(double a, double b); /** * Helper function for adding durations to dateTimes * Mod function for seconds part */ static MAPM modulo(MAPM a, MAPM b); /** * Helper function for adding durations for dateTimes * Returns fQuotient(a - low, high - low) */ static int fQuotient(int a, int low, int high); /** * Helper function for adding durations for dateTimes * Returns modulow(a - low, high - low) */ static int modulo(int a, int low, int high); /** * Returns the maximum day of the given month for the given year * month - Value between 1 (January) and 12 (December) */ static int maximumDayInMonthFor(MAPM yearValue, MAPM monthValue); static int maximumDayInMonthFor(int yearValue, int monthValue); /** * Returns whether the yer is a leap year */ static bool isLeapYear(MAPM year); /** * Convert a MAPM to an int (to be used on small numbers!!! */ static int asInt(MAPM num); /** * Convert from day,month,year into the proleptic Gregorian calendar used by XMLSchema */ static MAPM convertDMY2Absolute(MAPM day, MAPM month, MAPM year); /** * Convert the proleptic Gregorian calendar used by XMLSchema into day,month,year */ static void convertAbsolute2DMY(MAPM absolute, MAPM& day, MAPM& month, MAPM& year); /** * Returns the current date as an ATDateOrDerived */ static const ATDateOrDerived::Ptr getCurrentDate(const DynamicContext* context); /** * Returns the current date and time as an ATDateTimeOrDerived */ static const ATDateTimeOrDerived::Ptr getCurrentDateTime(const DynamicContext* context); /** * Returns the current time as an ATTimeOrDerived */ static const ATTimeOrDerived::Ptr getCurrentTime(const DynamicContext* context); static void initialize(); static void terminate(); static struct tm *threadsafe_localtime(const time_t *timep, struct tm *result); static struct tm *threadsafe_gmtime(const time_t *timep, struct tm *result); }; #endif XQilla-2.3.0/src/utils/DelayedModule.cpp0000644000151400015140000000410411636377670015012 00000000000000/* * Copyright (c) 2001-2008 * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004-2009 * Oracle. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; void DelayedModule::importModuleInto(XQQuery *importer) const { XQQuery *module = importer->getModuleCache()->getByNamespace(uri); if(module == 0) { // Create the module const StaticContext *scontext = importer->getStaticContext(); DynamicContext *context = scontext->createModuleContext(); context->setNamespaceBinding(prefix, uri); module = new (scontext->getMemoryManager()) XQQuery(context, true, importer->getModuleCache(), scontext->getMemoryManager()); AutoDelete guard(module); module->setIsLibraryModule(true); module->setModuleTargetNamespace(uri); module->setFile(file); XPath2MemoryManager *mm = context->getMemoryManager(); for(const FuncDef *ptr = functions; ptr->name != 0; ++ptr) { module->addDelayedFunction(uri, mm->getPooledString(ptr->name), ptr->args, ptr->body, ptr->isPrivate, ptr->line, ptr->column); } importer->getModuleCache()->put(guard.adopt()); BuiltInModules::core.importModuleInto(module); BuiltInModules::fn.importModuleInto(module); } importer->importModule(module); } XQilla-2.3.0/src/utils/utf8proc/0000755000151400015140000000000011653572442013415 500000000000000XQilla-2.3.0/src/utils/utf8proc/utf8proc.c0000644000151400015140000012137111653565523015262 00000000000000/* * Copyright (c) 2006-2007 Jan Behrens, FlexiGuided GmbH, Berlin * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * * * *** A ADDITIONAL DIFFERENT LICENCE FOR UTF8PROC *** * * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * Enhancement by Oracle: * 1. Support UTF16. * 2. Support Uppercase and Lowercase mapping. * 3. Support WordBounding and SentenceBounding. * 4. Support diacritic chars differentiating. * * For upon enhancement, there are some modifications: * 1. Extend the "int lastbounding" as "struct bound_attr_t last_bound_attr" * 2. Rename the "utf8proc_data.c" as "utf8_proc_data.h" * 3. Extend the data tables in utf8proc_data.h * 4. Optimize the sequences arithmetic: * positive number : sequences with single element * zero : no sequences mapping * negative number : (-x) is the offset to sequences table * */ /* * This library contains derived data from a modified version of the * Unicode data files. * * The original data files are available at * http://www.unicode.org/Public/UNIDATA/ * * Please notice the copyright statement in the file "utf8proc_data.c". */ /* * File name: utf8proc.c * Version: 1.1.1 * Last changed: 2007-07-22 * * Description: * Implementation of libutf8proc. */ #include #include "utf8proc_data.h" const int8_t utf8proc_utf8class[256] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0 }; // http://unicode.org/Public/UNIDATA/auxiliary/WordBreakTest.html // "-1" means: the word bound marks int TBD_buf[] should be deleted. // The last value WB_START, is added for detecting the begining of stream. static const int8_t utf8proc_wb_table[][14] = { {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1}, {1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1}, {1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1}, {1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1}, {1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1}, {1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1}, {1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, -1, -1, 1}, {1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, -1, -1, 1}, {1, 1, 1, 1, 1, -1, 1, 1, 1, 1, 1, -1, -1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, -1, -1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 0, 0, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 0, 0, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1} }; // http://unicode.org/Public/UNIDATA/auxiliary/SentenceBreakTest.html // The last value SB_START, is added for detecting the begining of stream. static const int8_t utf8proc_sb_table[][16] = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1}, {1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1} }; #define UTF8PROC_HANGUL_SBASE 0xAC00 #define UTF8PROC_HANGUL_LBASE 0x1100 #define UTF8PROC_HANGUL_VBASE 0x1161 #define UTF8PROC_HANGUL_TBASE 0x11A7 #define UTF8PROC_HANGUL_LCOUNT 19 #define UTF8PROC_HANGUL_VCOUNT 21 #define UTF8PROC_HANGUL_TCOUNT 28 #define UTF8PROC_HANGUL_NCOUNT 588 #define UTF8PROC_HANGUL_SCOUNT 11172 // END is exclusive #define UTF8PROC_HANGUL_L_START 0x1100 #define UTF8PROC_HANGUL_L_END 0x115A #define UTF8PROC_HANGUL_L_FILLER 0x115F #define UTF8PROC_HANGUL_V_START 0x1160 #define UTF8PROC_HANGUL_V_END 0x11A3 #define UTF8PROC_HANGUL_T_START 0x11A8 #define UTF8PROC_HANGUL_T_END 0x11FA #define UTF8PROC_HANGUL_S_START 0xAC00 #define UTF8PROC_HANGUL_S_END 0xD7A4 #define UTF8PROC_BOUNDCLASS_START 0 #define UTF8PROC_BOUNDCLASS_OTHER 1 #define UTF8PROC_BOUNDCLASS_CR 2 #define UTF8PROC_BOUNDCLASS_LF 3 #define UTF8PROC_BOUNDCLASS_CONTROL 4 #define UTF8PROC_BOUNDCLASS_EXTEND 5 #define UTF8PROC_BOUNDCLASS_L 6 #define UTF8PROC_BOUNDCLASS_V 7 #define UTF8PROC_BOUNDCLASS_T 8 #define UTF8PROC_BOUNDCLASS_LV 9 #define UTF8PROC_BOUNDCLASS_LVT 10 // WB means WordBreak. The value is defined by // http://unicode.org/Public/UNIDATA/auxiliary/WordBreakTest.html #define WB_OTHER 0 #define WB_CR 1 #define WB_LF 2 #define WB_NEWLINE 3 #define WB_KATAKANA 4 #define WB_ALETTER 5 #define WB_MIDLETTER 6 #define WB_MIDNUM 7 #define WB_MIDNUMLET 8 #define WB_NUMERIC 9 #define WB_EXTENDNUMLET 10 #define WB_FORMATFE 11 #define WB_EXTENDFE 12 #define WB_ALETTER_FORMATFE 13 #define WB_ALETTER_MIDLETTER 14 #define WB_ALETTER_MIDNUMLET 15 #define WB_ALETTER_MIDNUMLET_FORMATFE 16 #define WB_ALETTER_MIDNUM 17 #define WB_NUMERIC_MIDLETTER 18 #define WB_NUMERIC_MIDNUMLET 19 #define WB_NUMERIC_MIDNUM 20 #define WB_NUMERIC_MIDNUMLET_FORMATFE 21 #define WB_START 22 // SB means SentenceBreak. The value is defined by // http://unicode.org/Public/UNIDATA/auxiliary/SentenceBreakTest.html #define SB_OTHER 0 #define SB_CR 1 #define SB_LF 2 #define SB_SEP 3 #define SB_SP 4 #define SB_LOWER 5 #define SB_UPPER 6 #define SB_OLETTER 7 #define SB_NUMERIC 8 #define SB_ATERM 9 #define SB_STERM 10 #define SB_CLOSE 11 #define SB_SCONTINUE 12 #define SB_FORMATFE 13 #define SB_EXTENDFE 14 #define SB_START 15 // Following three BOUD definition are related to upon wb_table/sb_table. #define CANCEL_BOUND -1 // Cancel TBD bounds #define IS_BOUND 1 // Confirmed BOUND #define NOT_BOUND 0 #define UTF8PROC_INVALID_CODE -1 #define PUT(buf, pos, bufsize, ch) {if (pos < bufsize) buf[pos] = ch; pos++;} const char *utf8proc_version(void) { return "1.1.3"; } const char *utf8proc_errmsg(ssize_t errcode) { switch (errcode) { case UTF8PROC_ERROR_NOMEM: return "Memory for processing UTF-8 data could not be allocated."; case UTF8PROC_ERROR_OVERFLOW: return "UTF-8 string is too long to be processed."; case UTF8PROC_ERROR_INVALIDUTF8: return "Invalid UTF-8 string"; case UTF8PROC_ERROR_NOTASSIGNED: return "Unassigned Unicode code point found in UTF-8 string."; case UTF8PROC_ERROR_INVALIDOPTS: return "Invalid options for UTF-8 processing chosen."; default: return "An unknown error occured while processing UTF-8 data."; } } ssize_t utf8proc_iterate(const uint8_t *str, ssize_t strlen, int32_t *dst) { ssize_t length; ssize_t i; int32_t uc = -1; *dst = -1; if (!strlen) return 0; length = utf8proc_utf8class[str[0]]; if (!length) return UTF8PROC_ERROR_INVALIDUTF8; if (strlen >= 0 && length > strlen) return UTF8PROC_ERROR_INVALIDUTF8; for (i=1; i= 0xD800 && uc < 0xE000) || (uc >= 0xFDD0 && uc < 0xFDF0)) uc = -1; break; case 4: uc = ((str[0] & 0x07) << 18) + ((str[1] & 0x3F) << 12) + ((str[2] & 0x3F) << 6) + (str[3] & 0x3F); if (uc < 0x10000 || uc >= 0x110000) uc = -1; break; } if (uc < 0 || ((uc & 0xFFFF) >= 0xFFFE)) return UTF8PROC_ERROR_INVALIDUTF8; *dst = uc; return length; } ssize_t utf16proc_iterate(const uint16_t *str, ssize_t strlen, int32_t *dst) { ssize_t length; int32_t uc, w2; // w2 means "the second word" *dst = -1; if (strlen == 0) return 0; uc = *str; if (uc >= 0xD800 && uc <= 0xDBFF) {// two words if (strlen >=0 && strlen < 2) // prevent visiting illegal memory return UTF8PROC_ERROR_INVALIDUTF8; length = 2; w2 = *(str+1); if (w2 < 0xDC00 || w2 > 0xDFFF) return UTF8PROC_ERROR_INVALIDUTF8; uc = ((uc & 0x3ff) << 10) + (w2 & 0x3ff); uc += 0x10000; } else { // single word length = 1; } *dst = uc; return length; } int utf8proc_codepoint_valid(int32_t uc) { if (uc < 0 || uc >= 0x110000 || ((uc & 0xFFFF) >= 0xFFFE) || (uc >= 0xD800 && uc < 0xE000) || (uc >= 0xFDD0 && uc < 0xFDF0)) return false; else return true; } ssize_t utf8proc_encode_char(int32_t uc, uint8_t *dst) { if (uc < 0x00) { return 0; } else if (uc < 0x80) { dst[0] = uc; return 1; } else if (uc < 0x800) { dst[0] = 0xC0 + (uc >> 6); dst[1] = 0x80 + (uc & 0x3F); return 2; } else if (uc == 0xFFFF) { dst[0] = 0xFF; return 1; } else if (uc == 0xFFFE) { dst[0] = 0xFE; return 1; } else if (uc < 0x10000) { dst[0] = 0xE0 + (uc >> 12); dst[1] = 0x80 + ((uc >> 6) & 0x3F); dst[2] = 0x80 + (uc & 0x3F); return 3; } else if (uc < 0x110000) { dst[0] = 0xF0 + (uc >> 18); dst[1] = 0x80 + ((uc >> 12) & 0x3F); dst[2] = 0x80 + ((uc >> 6) & 0x3F); dst[3] = 0x80 + (uc & 0x3F); return 4; } else return 0; } ssize_t utf16proc_encode_char(int32_t uc, uint16_t *dst) { if(uc < 0) return 0; if(uc < 0x10000) { *dst = uc; return 1; } else { // ASSERT uc <= 0x10FFFF; uc -= 0x10000; dst[0] = ((uc >> 10) | 0xD800); dst[1] = ((uc & 0x3FF) | 0xDC00); return 2; } return 0; } const utf8proc_property_t *utf8proc_get_property(int32_t uc) { // ASSERT: uc >= 0 && uc < 0x110000 return utf8proc_properties + ( utf8proc_stage2table[ utf8proc_stage1table[uc >> 8] + (uc & 0xFF) ] ); } static void utf8proc_reset_bound_attr(bound_attr_t* attr) { // Free the TBD heap as need if (attr->TBD_heap) free (attr->TBD_heap); attr->cluster = UTF8PROC_BOUNDCLASS_START; attr->word = WB_START; attr->TBD_stack[0] = UTF8PROC_INVALID_CODE; attr->TBD_heap = NULL; attr->TBD_buf_size = sizeof(attr->TBD_stack) / sizeof(attr->TBD_stack[0]); memset(attr->sb_attr_queue, SB_START, sizeof(attr->sb_attr_queue)); return; } void utf8proc_init_bound_attr(bound_attr_t* attr) { if (attr == NULL) return; attr->TBD_heap = NULL; // Must be set to NULL before reseting. attr->filter_callback = NULL; utf8proc_reset_bound_attr(attr); return; } ssize_t utf8proc_flush(int32_t *dst, ssize_t bufsize, int options, bound_attr_t *last_bound_attr) { ssize_t written = 0; if (options & (UTF8PROC_WORDBOUND | UTF8PROC_SENTENCEBOUND)) { int output_sb = true; // At the end of the stream, we have to fetch the chars in TBD_buf if any. int32_t *p = last_bound_attr->TBD_heap ? \ last_bound_attr->TBD_heap : last_bound_attr->TBD_stack; for (; *p != UTF8PROC_INVALID_CODE; p++) { if (*p == UTF8PROC_SB_MARK && output_sb) { // We only output the first confirmed sentence bound. PUT(dst, written, bufsize, UTF8PROC_SB_MARK); output_sb = false; } else PUT(dst, written, bufsize, *p); } // Unicode Standard say that a Word/Sentence Bound Mark should be placed // at the end of stream if (options & UTF8PROC_WORDBOUND) PUT(dst, written, bufsize, UTF8PROC_WB_MARK); if (options & UTF8PROC_SENTENCEBOUND) PUT(dst, written, bufsize, UTF8PROC_SB_MARK); } utf8proc_reset_bound_attr(last_bound_attr); return written; } #define utf8proc_decompose_lump(replacement_uc) \ return utf8proc_decompose_char((replacement_uc), dst, bufsize, \ options & ~UTF8PROC_LUMP, last_bound_attr) ssize_t utf8proc_decompose_char(int32_t uc, int32_t *dst, ssize_t bufsize, int options, bound_attr_t *last_bound_attr) { // ASSERT: uc >= 0 && uc < 0x110000 const utf8proc_property_t *property; utf8proc_propval_t category; int32_t hangul_sindex; property = utf8proc_get_property(uc); category = property->category; hangul_sindex = uc - UTF8PROC_HANGUL_SBASE; if (options & (UTF8PROC_COMPOSE|UTF8PROC_DECOMPOSE)) { if (hangul_sindex >= 0 && hangul_sindex < UTF8PROC_HANGUL_SCOUNT) { int32_t hangul_tindex; if (bufsize >= 1) { dst[0] = UTF8PROC_HANGUL_LBASE + hangul_sindex / UTF8PROC_HANGUL_NCOUNT; if (bufsize >= 2) dst[1] = UTF8PROC_HANGUL_VBASE + (hangul_sindex % UTF8PROC_HANGUL_NCOUNT) / UTF8PROC_HANGUL_TCOUNT; } hangul_tindex = hangul_sindex % UTF8PROC_HANGUL_TCOUNT; if (!hangul_tindex) return 2; if (bufsize >= 3) dst[2] = UTF8PROC_HANGUL_TBASE + hangul_tindex; return 3; } } if (last_bound_attr->filter_callback) { // Skip current codepoint if user want to filter it out. if (last_bound_attr->filter_callback(uc) == 0) return 0; } if (options & UTF8PROC_REJECTNA) { if (!category) return UTF8PROC_ERROR_NOTASSIGNED; } if (options & UTF8PROC_IGNORE) { if (property->ignorable) return 0; } if (options & UTF8PROC_REMOVE_DIACRITIC) { if (property->is_diacritic) return 0; } if (options & UTF8PROC_LUMP) { if (category == UTF8PROC_CATEGORY_ZS) utf8proc_decompose_lump(0x0020); if (uc == 0x2018 || uc == 0x2019 || uc == 0x02BC || uc == 0x02C8) utf8proc_decompose_lump(0x0027); if (category == UTF8PROC_CATEGORY_PD || uc == 0x2212) utf8proc_decompose_lump(0x002D); if (uc == 0x2044 || uc == 0x2215) utf8proc_decompose_lump(0x002F); if (uc == 0x2236) utf8proc_decompose_lump(0x003A); if (uc == 0x2039 || uc == 0x2329 || uc == 0x3008) utf8proc_decompose_lump(0x003C); if (uc == 0x203A || uc == 0x232A || uc == 0x3009) utf8proc_decompose_lump(0x003E); if (uc == 0x2216) utf8proc_decompose_lump(0x005C); if (uc == 0x02C4 || uc == 0x02C6 || uc == 0x2038 || uc == 0x2303) utf8proc_decompose_lump(0x005E); if (category == UTF8PROC_CATEGORY_PC || uc == 0x02CD) utf8proc_decompose_lump(0x005F); if (uc == 0x02CB) utf8proc_decompose_lump(0x0060); if (uc == 0x2223) utf8proc_decompose_lump(0x007C); if (uc == 0x223C) utf8proc_decompose_lump(0x007E); if ((options & UTF8PROC_NLF2LS) && (options & UTF8PROC_NLF2PS)) { if (category == UTF8PROC_CATEGORY_ZL || category == UTF8PROC_CATEGORY_ZP) utf8proc_decompose_lump(0x000A); } } if (options & UTF8PROC_STRIPMARK) { if (category == UTF8PROC_CATEGORY_MN || category == UTF8PROC_CATEGORY_MC || category == UTF8PROC_CATEGORY_ME) return 0; } if (options & UTF8PROC_CASEFOLD) { const int32_t mapping = property->casefold_mapping; if (mapping > 0) { return utf8proc_decompose_char(mapping, dst, bufsize, options, last_bound_attr); } else if (mapping < 0) { ssize_t written = 0; const int32_t *entry = utf8proc_sequences + (-mapping); for (; *entry >= 0; entry++) { written += utf8proc_decompose_char(*entry, dst+written, (bufsize > written) ? (bufsize - written) : 0, options, last_bound_attr); if (written < 0) return UTF8PROC_ERROR_OVERFLOW; } return written; } } if (options & (UTF8PROC_UPPERCASE|UTF8PROC_LOWERCASE)) { int32_t value; if (options & UTF8PROC_UPPERCASE) { options &= (~UTF8PROC_UPPERCASE); value = property->uppercase_mapping; } else { options &= (~UTF8PROC_LOWERCASE); value = property->lowercase_mapping; } if (value > 0) { // a single codepoint mapping to x return utf8proc_decompose_char(value, dst, bufsize, options, last_bound_attr); } else if (value == 0) { // no mapping return utf8proc_decompose_char(uc, dst, bufsize, options, last_bound_attr); } else { // -value is the index to special case mapping ssize_t written = 0; const int32_t *p = utf8proc_sequences + (-value); for (; *p>0; p++) { written += utf8proc_decompose_char(*p, dst+written, bufsize-written, options, last_bound_attr); } return written; } } if (options & (UTF8PROC_COMPOSE|UTF8PROC_DECOMPOSE)) { if (property->decomp_mapping != 0 && (!property->decomp_type || (options & UTF8PROC_COMPAT))) { int32_t mapping = property->decomp_mapping; ssize_t written = 0; const int32_t *entry = utf8proc_sequences + (-mapping); // If the mapping is not sequence if (mapping > 0) return utf8proc_decompose_char(mapping, dst, bufsize, options, last_bound_attr); // If the mapping is sequence for (; *entry >= 0; entry++) { written += utf8proc_decompose_char(*entry, dst+written, (bufsize > written) ? (bufsize - written) : 0, options, last_bound_attr); if (written < 0) return UTF8PROC_ERROR_OVERFLOW; } return written; } } if (options & UTF8PROC_CHARBOUND) { int boundary; int tbc, lbc; bound_attr_t* bp = (bound_attr_t *)last_bound_attr; tbc = (uc == 0x000D) ? UTF8PROC_BOUNDCLASS_CR : (uc == 0x000A) ? UTF8PROC_BOUNDCLASS_LF : ((category == UTF8PROC_CATEGORY_ZL || category == UTF8PROC_CATEGORY_ZP || category == UTF8PROC_CATEGORY_CC || category == UTF8PROC_CATEGORY_CF) && !(uc == 0x200C || uc == 0x200D)) ? UTF8PROC_BOUNDCLASS_CONTROL : property->extend ? UTF8PROC_BOUNDCLASS_EXTEND : ((uc >= UTF8PROC_HANGUL_L_START && uc < UTF8PROC_HANGUL_L_END) || uc == UTF8PROC_HANGUL_L_FILLER) ? UTF8PROC_BOUNDCLASS_L : (uc >= UTF8PROC_HANGUL_V_START && uc < UTF8PROC_HANGUL_V_END) ? UTF8PROC_BOUNDCLASS_V : (uc >= UTF8PROC_HANGUL_T_START && uc < UTF8PROC_HANGUL_T_END) ? UTF8PROC_BOUNDCLASS_T : (uc >= UTF8PROC_HANGUL_S_START && uc < UTF8PROC_HANGUL_S_END) ? ( ((uc-UTF8PROC_HANGUL_SBASE) % UTF8PROC_HANGUL_TCOUNT == 0) ? UTF8PROC_BOUNDCLASS_LV : UTF8PROC_BOUNDCLASS_LVT ) : UTF8PROC_BOUNDCLASS_OTHER; lbc = bp->cluster; boundary = (tbc == UTF8PROC_BOUNDCLASS_EXTEND) ? false : (lbc == UTF8PROC_BOUNDCLASS_START) ? true : (lbc == UTF8PROC_BOUNDCLASS_CR && tbc == UTF8PROC_BOUNDCLASS_LF) ? false : (lbc == UTF8PROC_BOUNDCLASS_CONTROL) ? true : (tbc == UTF8PROC_BOUNDCLASS_CONTROL) ? true : (lbc == UTF8PROC_BOUNDCLASS_L && (tbc == UTF8PROC_BOUNDCLASS_L || tbc == UTF8PROC_BOUNDCLASS_V || tbc == UTF8PROC_BOUNDCLASS_LV || tbc == UTF8PROC_BOUNDCLASS_LVT)) ? false : ((lbc == UTF8PROC_BOUNDCLASS_LV || lbc == UTF8PROC_BOUNDCLASS_V) && (tbc == UTF8PROC_BOUNDCLASS_V || tbc == UTF8PROC_BOUNDCLASS_T)) ? false : ((lbc == UTF8PROC_BOUNDCLASS_LVT || lbc == UTF8PROC_BOUNDCLASS_T) && tbc == UTF8PROC_BOUNDCLASS_T) ? false : true; bp->cluster = tbc; if (boundary) { if (bufsize >= 1) dst[0] = 0xFFFF; if (bufsize >= 2) dst[1] = uc; return 2; } } if (options & (UTF8PROC_WORDBOUND | UTF8PROC_SENTENCEBOUND)) { int word_boundary = NOT_BOUND; int sentence_boundary = NOT_BOUND; int TBD = false; // bool value int TBD_size = last_bound_attr->TBD_buf_size; int32_t *TBD_buf = last_bound_attr->TBD_heap ? \ last_bound_attr->TBD_heap : last_bound_attr->TBD_stack; // Declare some vars for Word/Sentence boundary ssize_t i, written, size; int32_t *write; int output_sb; if (options & UTF8PROC_WORDBOUND) { int tbc = property->word_bound_attr; int lbc = last_bound_attr->word; int old_tbc; // WB_FORMATFE and WB_EXTENDFE are the same in bounding. if (tbc == WB_EXTENDFE) tbc = WB_FORMATFE; if (lbc == WB_EXTENDFE) lbc = WB_FORMATFE; word_boundary = utf8proc_wb_table[lbc][tbc]; switch(lbc) { case WB_ALETTER_FORMATFE: lbc = WB_ALETTER; break; case WB_ALETTER_MIDNUMLET_FORMATFE: lbc = WB_ALETTER_MIDNUMLET; break; case WB_NUMERIC_MIDNUMLET_FORMATFE: lbc = WB_NUMERIC_MIDNUMLET; break; } old_tbc = tbc; switch(lbc) { case WB_ALETTER: switch(tbc) { case WB_FORMATFE: tbc = WB_ALETTER_FORMATFE; break; case WB_MIDLETTER: tbc = WB_ALETTER_MIDLETTER; break; case WB_MIDNUMLET: tbc = WB_ALETTER_MIDNUMLET; break; case WB_MIDNUM: tbc = WB_ALETTER_MIDNUM; break; } break; case WB_ALETTER_MIDNUMLET: switch(tbc) { case WB_FORMATFE: tbc = WB_ALETTER_MIDNUMLET_FORMATFE;break; } break; case WB_NUMERIC: switch(tbc) { case WB_MIDLETTER: tbc = WB_NUMERIC_MIDLETTER; break; case WB_MIDNUMLET: tbc = WB_NUMERIC_MIDNUMLET; break; case WB_MIDNUM: tbc = WB_NUMERIC_MIDNUM; break; } break; case WB_NUMERIC_MIDNUMLET: switch(tbc) { case WB_FORMATFE: tbc = WB_NUMERIC_MIDNUMLET_FORMATFE;break; } break; } if (lbc != WB_START) { if (old_tbc == tbc && tbc == WB_FORMATFE && word_boundary != IS_BOUND) tbc = lbc; if (tbc >= WB_ALETTER_FORMATFE) TBD = true; } last_bound_attr->word = tbc; } if (options & UTF8PROC_SENTENCEBOUND) { int do_not_insert_property = false; int8_t* sb_attr = last_bound_attr->sb_attr_queue; int tbc = property->sentence_bound_attr; int lbc = sb_attr[1]; // WB_FORMATFE and WB_EXTENDFE are the same in bounding. if (tbc == SB_EXTENDFE) tbc = SB_FORMATFE; if (lbc == SB_EXTENDFE) lbc = SB_FORMATFE; sentence_boundary = utf8proc_sb_table[lbc][tbc]; if (tbc == SB_FORMATFE) { TBD = true; if (lbc != SB_SEP && lbc != SB_CR && lbc != SB_LF) do_not_insert_property = true; } // The queue depth is fixed as "2". Rule numbers are defined by: // http://unicode.org/Public/UNIDATA/auxiliary/SentenceBreakTest.html // Rule 4.0 if (lbc == SB_SEP || lbc == SB_CR || lbc == SB_LF) { do_not_insert_property = false; TBD = false; } else if (!do_not_insert_property) { // Rule 7.0 if (sb_attr[0] == SB_UPPER && sb_attr[1] == SB_ATERM && tbc == SB_UPPER) { sentence_boundary = NOT_BOUND; } // Rule 8.0 9.0 and 11.0 else if ((sb_attr[0] == SB_ATERM || sb_attr[0] == SB_STERM) && (sb_attr[1] == SB_CLOSE || sb_attr[1] == SB_SP)) { int determined = false; if (sb_attr[0] == SB_ATERM) { // Rule 8.0 if (tbc != SB_OLETTER && tbc != SB_UPPER && tbc != SB_LOWER && tbc != SB_SEP) { TBD = true; do_not_insert_property = true; } else if (tbc == SB_LOWER) { sentence_boundary = CANCEL_BOUND; determined = true; } else if (tbc == SB_OLETTER || tbc == SB_UPPER) { sentence_boundary = IS_BOUND; determined = true; } } if (!determined) { // Rule 9.0 and 11.0 if (tbc == SB_CLOSE || tbc == SB_SP) { do_not_insert_property = true; if (tbc != sb_attr[1]) { sb_attr[1] = tbc; // Rule 9.0 if (tbc == SB_SP) { sentence_boundary = NOT_BOUND; } else { TBD = true; sentence_boundary = IS_BOUND; } } else { sentence_boundary = NOT_BOUND; } } else { // Rule 11.0 sentence_boundary = utf8proc_sb_table[sb_attr[0]][tbc]; } } } } if (sb_attr[0] == SB_START) { do_not_insert_property = false; TBD = false; } if (sentence_boundary == IS_BOUND) { if (!do_not_insert_property && !TBD) { // clear sentence bound property queue. sb_attr[0] = SB_OTHER; sb_attr[1] = tbc; } } else if (!do_not_insert_property) { // put current property into sentence bound proberty queue. sb_attr[0] = sb_attr[1]; sb_attr[1] = tbc; } } // output result data of word/sentence bounding. written = 0; size = TBD_size; output_sb = true; for (i = 0; i < TBD_size; i++) { if (TBD_buf[i] == UTF8PROC_INVALID_CODE) { write = TBD_buf + i; break; } } // If the buffer is about to be used out, use heap to create a bigger one. // The threshold value is (TBD_size-8), because the max size of writting // a codepoint with a bouding is sure to less then 8. if (i >= (TBD_size - 8)) { TBD_size = TBD_size * 2; // double the size. if (last_bound_attr->TBD_heap) { // If we are using heap already, just realloc a bigger one. TBD_buf = realloc(TBD_buf, TBD_size * sizeof(TBD_buf[0])); if (TBD_buf == NULL) { free(last_bound_attr->TBD_heap); return UTF8PROC_ERROR_NOMEM; } } else { // If using stack, create a heap with double size and copy the TBD data. TBD_buf = malloc(TBD_size * sizeof(TBD_buf[0])); if (TBD_buf == NULL) return UTF8PROC_ERROR_NOMEM; memcpy(TBD_buf, last_bound_attr->TBD_stack, size * sizeof(TBD_buf[0])); } size = TBD_size; write = TBD_buf + i; last_bound_attr->TBD_buf_size = TBD_size; last_bound_attr->TBD_heap = TBD_buf; } if (!TBD) { // Output all confirmed content write = dst; size = bufsize; for (i = 0; i < TBD_size && TBD_buf[i] > 0; i++) { if ((word_boundary == CANCEL_BOUND && TBD_buf[i] == UTF8PROC_WB_MARK)) ; // Do not output canceled WB_MARK else if (TBD_buf[i] == UTF8PROC_SB_MARK) { if (sentence_boundary == CANCEL_BOUND) { ; // Do not output canceled SB_MARK } else if(output_sb) { PUT(write, written, size, UTF8PROC_SB_MARK); output_sb = false; // Only output the first confirmed SB_MARK } } else PUT(write, written, size, TBD_buf[i]); } } if (word_boundary == IS_BOUND) PUT(write, written, size, UTF8PROC_WB_MARK); if (sentence_boundary == IS_BOUND && output_sb) PUT(write, written, size, UTF8PROC_SB_MARK); PUT(write, written, size, uc); if (!TBD) { TBD_buf[0] = UTF8PROC_INVALID_CODE; // reset buffer return written; } else { write[written] = UTF8PROC_INVALID_CODE; // Mark the end return 0; // do not return any thing if the char is "TBD" } } if (bufsize >= 1) *dst = uc; return 1; } ssize_t utf8proc_decompose( const uint8_t *str, ssize_t strlen, int32_t *buffer, ssize_t bufsize, int options) { return utf8proc_decompose_with_filter(str, strlen, buffer, bufsize, options, NULL); } ssize_t utf8proc_decompose_with_filter( const uint8_t *str, ssize_t strlen, int32_t *buffer, ssize_t bufsize, int options, int (*filter_callback)(int32_t codepoint) ) { // strlen will be ignored, if UTF8PROC_NULLTERM is set in options ssize_t wpos = 0; if ((options & UTF8PROC_COMPOSE) && (options & UTF8PROC_DECOMPOSE)) return UTF8PROC_ERROR_INVALIDOPTS; if ((options & UTF8PROC_STRIPMARK) && !(options & UTF8PROC_COMPOSE) && !(options & UTF8PROC_DECOMPOSE)) return UTF8PROC_ERROR_INVALIDOPTS; if ((options & UTF8PROC_CHARBOUND) && (options & (UTF8PROC_SENTENCEBOUND | UTF8PROC_WORDBOUND))) return UTF8PROC_ERROR_INVALIDOPTS; { int32_t uc; ssize_t rpos = 0; ssize_t decomp_result; bound_attr_t boundclass; utf8proc_init_bound_attr(&boundclass); boundclass.filter_callback = filter_callback; while (1) { if (options & UTF8PROC_NULLTERM) { if (options & UTF8PROC_UTF16) rpos += utf16proc_iterate((uint16_t*)(str + rpos), -1, &uc) * \ sizeof(uint16_t); else rpos += utf8proc_iterate(str + rpos, -1, &uc); // checking of return value is not neccessary, // as 'uc' is < 0 in case of error if (uc < 0) return UTF8PROC_ERROR_INVALIDUTF8; if (rpos < 0) return UTF8PROC_ERROR_OVERFLOW; if (uc == 0) break; } else { if (rpos >= strlen) break; if (options & UTF8PROC_UTF16) rpos += utf16proc_iterate((uint16_t*)(str + rpos), strlen - rpos, &uc) \ * sizeof(uint16_t); else rpos += utf8proc_iterate(str + rpos, strlen - rpos, &uc); if (uc < 0) return UTF8PROC_ERROR_INVALIDUTF8; } decomp_result = utf8proc_decompose_char( uc, buffer + wpos, (bufsize > wpos) ? (bufsize - wpos) : 0, options, &boundclass); if (decomp_result < 0) return decomp_result; wpos += decomp_result; // prohibiting integer overflows due to too long strings: if (wpos < 0 || wpos > SSIZE_MAX/sizeof(int32_t)/2) return UTF8PROC_ERROR_OVERFLOW; } wpos += utf8proc_flush(buffer + wpos, (bufsize > wpos) ? (bufsize - wpos) : 0, options, &boundclass); } if ((options & (UTF8PROC_COMPOSE|UTF8PROC_DECOMPOSE)) && bufsize >= wpos) { ssize_t pos = 0; while (pos < wpos-1) { int32_t uc1, uc2; const utf8proc_property_t *property1, *property2; uc1 = buffer[pos]; uc2 = buffer[pos+1]; property1 = utf8proc_get_property(uc1); property2 = utf8proc_get_property(uc2); if (property1->combining_class > property2->combining_class && property2->combining_class > 0) { buffer[pos] = uc2; buffer[pos+1] = uc1; if (pos > 0) pos--; else pos++; } else { pos++; } } } return wpos; } ssize_t utf8proc_reencode(int32_t *buffer, ssize_t length, int options) { // UTF8PROC_NULLTERM option will be ignored, 'length' is never ignored // ASSERT: 'buffer' has one spare byte of free space at the end! if (options & (UTF8PROC_NLF2LS | UTF8PROC_NLF2PS | UTF8PROC_STRIPCC)) { ssize_t rpos; ssize_t wpos = 0; int32_t uc; for (rpos = 0; rpos < length; rpos++) { uc = buffer[rpos]; if (uc == 0x000D && rpos < length-1 && buffer[rpos+1] == 0x000A) rpos++; if (uc == 0x000A || uc == 0x000D || uc == 0x0085 || ((options & UTF8PROC_STRIPCC) && (uc == 0x000B || uc == 0x000C))) { if (options & UTF8PROC_NLF2LS) { if (options & UTF8PROC_NLF2PS) { buffer[wpos++] = 0x000A; } else { buffer[wpos++] = 0x2028; } } else { if (options & UTF8PROC_NLF2PS) { buffer[wpos++] = 0x2029; } else { buffer[wpos++] = 0x0020; } } } else if ((options & UTF8PROC_STRIPCC) && (uc < 0x0020 || (uc >= 0x007F && uc < 0x00A0))) { if (uc == 0x0009) buffer[wpos++] = 0x0020; } else { buffer[wpos++] = uc; } } length = wpos; } if (options & UTF8PROC_COMPOSE) { int32_t *starter = NULL; int32_t current_char; const utf8proc_property_t *starter_property = NULL, *current_property; utf8proc_propval_t max_combining_class = -1; ssize_t rpos; ssize_t wpos = 0; int32_t composition; for (rpos = 0; rpos < length; rpos++) { current_char = buffer[rpos]; current_property = utf8proc_get_property(current_char); if (starter && current_property->combining_class > max_combining_class) { // combination perhaps possible int32_t hangul_lindex; int32_t hangul_sindex; hangul_lindex = *starter - UTF8PROC_HANGUL_LBASE; if (hangul_lindex >= 0 && hangul_lindex < UTF8PROC_HANGUL_LCOUNT) { int32_t hangul_vindex; hangul_vindex = current_char - UTF8PROC_HANGUL_VBASE; if (hangul_vindex >= 0 && hangul_vindex < UTF8PROC_HANGUL_VCOUNT) { *starter = UTF8PROC_HANGUL_SBASE + (hangul_lindex * UTF8PROC_HANGUL_VCOUNT + hangul_vindex) * UTF8PROC_HANGUL_TCOUNT; starter_property = NULL; continue; } } hangul_sindex = *starter - UTF8PROC_HANGUL_SBASE; if (hangul_sindex >= 0 && hangul_sindex < UTF8PROC_HANGUL_SCOUNT && (hangul_sindex % UTF8PROC_HANGUL_TCOUNT) == 0) { int32_t hangul_tindex; hangul_tindex = current_char - UTF8PROC_HANGUL_TBASE; if (hangul_tindex >= 0 && hangul_tindex < UTF8PROC_HANGUL_TCOUNT) { *starter += hangul_tindex; starter_property = NULL; continue; } } if (!starter_property) { starter_property = utf8proc_get_property(*starter); } if (!starter_property->excl_compression && starter_property->comb1st_index >= 0 && current_property->comb2nd_index >= 0) { composition = utf8proc_combinations[ starter_property->comb1st_index + current_property->comb2nd_index ]; if (composition >= 0 && (!(options & UTF8PROC_STABLE) || !(utf8proc_get_property(composition)->comp_exclusion))) { *starter = composition; starter_property = NULL; continue; } } } buffer[wpos] = current_char; if (current_property->combining_class) { if (current_property->combining_class > max_combining_class) { max_combining_class = current_property->combining_class; } } else { starter = buffer + wpos; starter_property = NULL; max_combining_class = -1; } wpos++; } length = wpos; } { ssize_t rpos, wpos = 0; int32_t uc; for (rpos = 0; rpos < length; rpos++) { uc = buffer[rpos]; if (options & UTF8PROC_UTF16) wpos += sizeof(uint16_t) * \ utf16proc_encode_char(uc, (uint16_t*)((uint8_t *)buffer + wpos)); else wpos += utf8proc_encode_char(uc, ((uint8_t *)buffer) + wpos); } ((uint8_t *)buffer)[wpos] = 0; return wpos; } } ssize_t utf8proc_map( const uint8_t *str, ssize_t strlen, uint8_t **dstptr, int options ) { int32_t *buffer; ssize_t result; *dstptr = NULL; result = utf8proc_decompose(str, strlen, NULL, 0, options); if (result < 0) return result; buffer = malloc(result * sizeof(int32_t) + 1); if (!buffer) return UTF8PROC_ERROR_NOMEM; result = utf8proc_decompose(str, strlen, buffer, result, options); if (result < 0) { free(buffer); return result; } result = utf8proc_reencode(buffer, result, options); if (result < 0) { free(buffer); return result; } { int32_t *newptr; newptr = realloc(buffer, result+1); if (newptr) buffer = newptr; } *dstptr = (uint8_t *)buffer; return result; } uint8_t *utf8proc_NFD(const uint8_t *str) { uint8_t *retval; utf8proc_map(str, 0, &retval, UTF8PROC_NULLTERM | UTF8PROC_STABLE | UTF8PROC_DECOMPOSE); return retval; } uint8_t *utf8proc_NFC(const uint8_t *str) { uint8_t *retval; utf8proc_map(str, 0, &retval, UTF8PROC_NULLTERM | UTF8PROC_STABLE | UTF8PROC_COMPOSE); return retval; } uint8_t *utf8proc_NFKD(const uint8_t *str) { uint8_t *retval; utf8proc_map(str, 0, &retval, UTF8PROC_NULLTERM | UTF8PROC_STABLE | UTF8PROC_DECOMPOSE | UTF8PROC_COMPAT); return retval; } uint8_t *utf8proc_NFKC(const uint8_t *str) { uint8_t *retval; utf8proc_map(str, 0, &retval, UTF8PROC_NULLTERM | UTF8PROC_STABLE | UTF8PROC_COMPOSE | UTF8PROC_COMPAT); return retval; } ssize_t utf16proc_reencode(int32_t *buffer, ssize_t length, int options) { ssize_t retval; options |= UTF8PROC_UTF16; retval = utf8proc_reencode(buffer, length, options); return retval < 0 ? retval : (retval/sizeof(uint16_t)); } ssize_t utf16proc_decompose_char(int32_t uc, int32_t *dst, ssize_t bufsize, int options, bound_attr_t *last_bound_attr) { options |= UTF8PROC_UTF16; return utf8proc_decompose_char(uc, dst, bufsize, options, last_bound_attr); } ssize_t utf16proc_decompose(const uint16_t *str, ssize_t strlen, int32_t *buffer, ssize_t bufsize, int options) { options |= UTF8PROC_UTF16; return utf8proc_decompose((uint8_t*)str, strlen*2, buffer, bufsize, options); } ssize_t utf16proc_map(const uint16_t *str, ssize_t strlen, uint16_t **dstptr, int options) { ssize_t retval; options |= UTF8PROC_UTF16; retval = utf8proc_map((const uint8_t *)str, strlen * sizeof(uint16_t), (uint8_t **)dstptr, options); return retval < 0 ? retval : (retval/sizeof(uint16_t)); } uint16_t *utf16proc_NFD(const uint16_t *str) { uint16_t *retval; utf16proc_map(str, 0, &retval, UTF8PROC_NULLTERM | UTF8PROC_STABLE | UTF8PROC_DECOMPOSE); return retval; } uint16_t *utf16proc_NFC(const uint16_t *str) { uint16_t *retval; utf16proc_map(str, 0, &retval, UTF8PROC_NULLTERM | UTF8PROC_STABLE | UTF8PROC_COMPOSE); return retval; } uint16_t *utf16proc_NFKD(const uint16_t *str) { uint16_t *retval; utf16proc_map(str, 0, &retval, UTF8PROC_NULLTERM | UTF8PROC_STABLE | UTF8PROC_DECOMPOSE | UTF8PROC_COMPAT); return retval; } uint16_t *utf16proc_NFKC(const uint16_t *str) { uint16_t *retval; utf16proc_map(str, 0, &retval, UTF8PROC_NULLTERM | UTF8PROC_STABLE | UTF8PROC_COMPOSE | UTF8PROC_COMPAT); return retval; } XQilla-2.3.0/src/utils/utf8proc/utf8proc_data.h0000644000151400015140000436056111653565523016272 00000000000000/* * Copyright (c) 2006-2007 Jan Behrens, FlexiGuided GmbH, Berlin * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * * * *** A ADDITIONAL DIFFERENT LICENCE FOR UTF8PROC *** * * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * Enhancement by Oracle: * 1. Support UTF16. * 2. Support Uppercase and Lowercase mapping. * 3. Support WordBounding and SentenceBounding. * 4. Support diacritic chars differentiating. * * For upon enhancement, there are some modifications: * 1. Extend the "int lastbounding" as "struct bound_attr_t last_bound_attr" * 2. Rename the "utf8proc_data.c" as "utf8_proc_data.h" * 3. Extend the data tables in utf8proc_data.h * 4. Optimize the sequences arithmetic: * positive number : sequences with single element * zero : no sequences mapping * negative number : (-x) is the offset to sequences table * */ #ifndef true #define true 1 #endif #ifndef false #define false 0 #endif const int32_t utf8proc_sequences[] = { 0, -1, 32, 776, -1, 32, 772, -1, 32, 769, -1, 32, 807, -1, 49, 8260, 52, -1, 49, 8260, 50, -1, 51, 8260, 52, -1, 65, 768, -1, 65, 769, -1, 65, 770, -1, 65, 771, -1, 65, 776, -1, 65, 778, -1, 67, 807, -1, 69, 768, -1, 69, 769, -1, 69, 770, -1, 69, 776, -1, 73, 768, -1, 73, 769, -1, 73, 770, -1, 73, 776, -1, 78, 771, -1, 79, 768, -1, 79, 769, -1, 79, 770, -1, 79, 771, -1, 79, 776, -1, 85, 768, -1, 85, 769, -1, 85, 770, -1, 85, 776, -1, 89, 769, -1, 83, 83, -1, 223, -1, 83, 115, -1, 115, 115, -1, 97, 768, -1, 97, 769, -1, 97, 770, -1, 97, 771, -1, 97, 776, -1, 97, 778, -1, 99, 807, -1, 101, 768, -1, 101, 769, -1, 101, 770, -1, 101, 776, -1, 105, 768, -1, 105, 769, -1, 105, 770, -1, 105, 776, -1, 110, 771, -1, 111, 768, -1, 111, 769, -1, 111, 770, -1, 111, 771, -1, 111, 776, -1, 117, 768, -1, 117, 769, -1, 117, 770, -1, 117, 776, -1, 121, 769, -1, 121, 776, -1, 65, 772, -1, 97, 772, -1, 65, 774, -1, 97, 774, -1, 65, 808, -1, 97, 808, -1, 67, 769, -1, 99, 769, -1, 67, 770, -1, 99, 770, -1, 67, 775, -1, 99, 775, -1, 67, 780, -1, 99, 780, -1, 68, 780, -1, 100, 780, -1, 69, 772, -1, 101, 772, -1, 69, 774, -1, 101, 774, -1, 69, 775, -1, 101, 775, -1, 69, 808, -1, 101, 808, -1, 69, 780, -1, 101, 780, -1, 71, 770, -1, 103, 770, -1, 71, 774, -1, 103, 774, -1, 71, 775, -1, 103, 775, -1, 71, 807, -1, 103, 807, -1, 72, 770, -1, 104, 770, -1, 73, 771, -1, 105, 771, -1, 73, 772, -1, 105, 772, -1, 73, 774, -1, 105, 774, -1, 73, 808, -1, 105, 808, -1, 73, 775, -1, 304, -1, 105, 775, -1, 73, 74, -1, 105, 106, -1, 74, 770, -1, 106, 770, -1, 75, 807, -1, 107, 807, -1, 76, 769, -1, 108, 769, -1, 76, 807, -1, 108, 807, -1, 76, 780, -1, 108, 780, -1, 76, 183, -1, 108, 183, -1, 78, 769, -1, 110, 769, -1, 78, 807, -1, 110, 807, -1, 78, 780, -1, 110, 780, -1, 700, 110, -1, 700, 78, -1, 329, -1, 79, 772, -1, 111, 772, -1, 79, 774, -1, 111, 774, -1, 79, 779, -1, 111, 779, -1, 82, 769, -1, 114, 769, -1, 82, 807, -1, 114, 807, -1, 82, 780, -1, 114, 780, -1, 83, 769, -1, 115, 769, -1, 83, 770, -1, 115, 770, -1, 83, 807, -1, 115, 807, -1, 83, 780, -1, 115, 780, -1, 84, 807, -1, 116, 807, -1, 84, 780, -1, 116, 780, -1, 85, 771, -1, 117, 771, -1, 85, 772, -1, 117, 772, -1, 85, 774, -1, 117, 774, -1, 85, 778, -1, 117, 778, -1, 85, 779, -1, 117, 779, -1, 85, 808, -1, 117, 808, -1, 87, 770, -1, 119, 770, -1, 89, 770, -1, 121, 770, -1, 89, 776, -1, 90, 769, -1, 122, 769, -1, 90, 775, -1, 122, 775, -1, 90, 780, -1, 122, 780, -1, 79, 795, -1, 111, 795, -1, 85, 795, -1, 117, 795, -1, 68, 381, -1, 68, 382, -1, 100, 382, -1, 76, 74, -1, 76, 106, -1, 108, 106, -1, 78, 74, -1, 78, 106, -1, 110, 106, -1, 65, 780, -1, 97, 780, -1, 73, 780, -1, 105, 780, -1, 79, 780, -1, 111, 780, -1, 85, 780, -1, 117, 780, -1, 220, 772, -1, 252, 772, -1, 220, 769, -1, 252, 769, -1, 220, 780, -1, 252, 780, -1, 220, 768, -1, 252, 768, -1, 196, 772, -1, 228, 772, -1, 550, 772, -1, 551, 772, -1, 198, 772, -1, 230, 772, -1, 71, 780, -1, 103, 780, -1, 75, 780, -1, 107, 780, -1, 79, 808, -1, 111, 808, -1, 490, 772, -1, 491, 772, -1, 439, 780, -1, 658, 780, -1, 106, 780, -1, 74, 780, -1, 496, -1, 68, 90, -1, 68, 122, -1, 100, 122, -1, 71, 769, -1, 103, 769, -1, 78, 768, -1, 110, 768, -1, 197, 769, -1, 229, 769, -1, 198, 769, -1, 230, 769, -1, 216, 769, -1, 248, 769, -1, 65, 783, -1, 97, 783, -1, 65, 785, -1, 97, 785, -1, 69, 783, -1, 101, 783, -1, 69, 785, -1, 101, 785, -1, 73, 783, -1, 105, 783, -1, 73, 785, -1, 105, 785, -1, 79, 783, -1, 111, 783, -1, 79, 785, -1, 111, 785, -1, 82, 783, -1, 114, 783, -1, 82, 785, -1, 114, 785, -1, 85, 783, -1, 117, 783, -1, 85, 785, -1, 117, 785, -1, 83, 806, -1, 115, 806, -1, 84, 806, -1, 116, 806, -1, 72, 780, -1, 104, 780, -1, 65, 775, -1, 97, 775, -1, 69, 807, -1, 101, 807, -1, 214, 772, -1, 246, 772, -1, 213, 772, -1, 245, 772, -1, 79, 775, -1, 111, 775, -1, 558, 772, -1, 559, 772, -1, 89, 772, -1, 121, 772, -1, 32, 774, -1, 32, 775, -1, 32, 778, -1, 32, 808, -1, 32, 771, -1, 32, 779, -1, 776, 769, -1, 32, 837, -1, 168, 769, -1, 913, 769, -1, 917, 769, -1, 919, 769, -1, 921, 769, -1, 927, 769, -1, 933, 769, -1, 937, 769, -1, 970, 769, -1, 921, 776, 769, -1, 912, -1, 953, 776, 769, -1, 921, 776, -1, 933, 776, -1, 945, 769, -1, 949, 769, -1, 951, 769, -1, 953, 769, -1, 971, 769, -1, 933, 776, 769, -1, 944, -1, 965, 776, 769, -1, 953, 776, -1, 965, 776, -1, 959, 769, -1, 965, 769, -1, 969, 769, -1, 978, 769, -1, 978, 776, -1, 1045, 768, -1, 1045, 776, -1, 1043, 769, -1, 1030, 776, -1, 1050, 769, -1, 1048, 768, -1, 1059, 774, -1, 1048, 774, -1, 1080, 774, -1, 1077, 768, -1, 1077, 776, -1, 1075, 769, -1, 1110, 776, -1, 1082, 769, -1, 1080, 768, -1, 1091, 774, -1, 1140, 783, -1, 1141, 783, -1, 1046, 774, -1, 1078, 774, -1, 1040, 774, -1, 1072, 774, -1, 1040, 776, -1, 1072, 776, -1, 1045, 774, -1, 1077, 774, -1, 1240, 776, -1, 1241, 776, -1, 1046, 776, -1, 1078, 776, -1, 1047, 776, -1, 1079, 776, -1, 1048, 772, -1, 1080, 772, -1, 1048, 776, -1, 1080, 776, -1, 1054, 776, -1, 1086, 776, -1, 1256, 776, -1, 1257, 776, -1, 1069, 776, -1, 1101, 776, -1, 1059, 772, -1, 1091, 772, -1, 1059, 776, -1, 1091, 776, -1, 1059, 779, -1, 1091, 779, -1, 1063, 776, -1, 1095, 776, -1, 1067, 776, -1, 1099, 776, -1, 1381, 1410, -1, 1333, 1362, -1, 1415, -1, 1333, 1410, -1, 1575, 1619, -1, 1575, 1620, -1, 1608, 1620, -1, 1575, 1621, -1, 1610, 1620, -1, 1575, 1652, -1, 1608, 1652, -1, 1735, 1652, -1, 1610, 1652, -1, 1749, 1620, -1, 1729, 1620, -1, 1746, 1620, -1, 2344, 2364, -1, 2352, 2364, -1, 2355, 2364, -1, 2325, 2364, -1, 2326, 2364, -1, 2327, 2364, -1, 2332, 2364, -1, 2337, 2364, -1, 2338, 2364, -1, 2347, 2364, -1, 2351, 2364, -1, 2503, 2494, -1, 2503, 2519, -1, 2465, 2492, -1, 2466, 2492, -1, 2479, 2492, -1, 2610, 2620, -1, 2616, 2620, -1, 2582, 2620, -1, 2583, 2620, -1, 2588, 2620, -1, 2603, 2620, -1, 2887, 2902, -1, 2887, 2878, -1, 2887, 2903, -1, 2849, 2876, -1, 2850, 2876, -1, 2962, 3031, -1, 3014, 3006, -1, 3015, 3006, -1, 3014, 3031, -1, 3142, 3158, -1, 3263, 3285, -1, 3270, 3285, -1, 3270, 3286, -1, 3270, 3266, -1, 3274, 3285, -1, 3398, 3390, -1, 3399, 3390, -1, 3398, 3415, -1, 3545, 3530, -1, 3545, 3535, -1, 3548, 3530, -1, 3545, 3551, -1, 3661, 3634, -1, 3789, 3762, -1, 3755, 3737, -1, 3755, 3745, -1, 3906, 4023, -1, 3916, 4023, -1, 3921, 4023, -1, 3926, 4023, -1, 3931, 4023, -1, 3904, 4021, -1, 3953, 3954, -1, 3953, 3956, -1, 4018, 3968, -1, 4018, 3969, -1, 4019, 3968, -1, 4019, 3969, -1, 3953, 3968, -1, 3986, 4023, -1, 3996, 4023, -1, 4001, 4023, -1, 4006, 4023, -1, 4011, 4023, -1, 3984, 4021, -1, 4133, 4142, -1, 6917, 6965, -1, 6919, 6965, -1, 6921, 6965, -1, 6923, 6965, -1, 6925, 6965, -1, 6929, 6965, -1, 6970, 6965, -1, 6972, 6965, -1, 6974, 6965, -1, 6975, 6965, -1, 6978, 6965, -1, 65, 805, -1, 97, 805, -1, 66, 775, -1, 98, 775, -1, 66, 803, -1, 98, 803, -1, 66, 817, -1, 98, 817, -1, 199, 769, -1, 231, 769, -1, 68, 775, -1, 100, 775, -1, 68, 803, -1, 100, 803, -1, 68, 817, -1, 100, 817, -1, 68, 807, -1, 100, 807, -1, 68, 813, -1, 100, 813, -1, 274, 768, -1, 275, 768, -1, 274, 769, -1, 275, 769, -1, 69, 813, -1, 101, 813, -1, 69, 816, -1, 101, 816, -1, 552, 774, -1, 553, 774, -1, 70, 775, -1, 102, 775, -1, 71, 772, -1, 103, 772, -1, 72, 775, -1, 104, 775, -1, 72, 803, -1, 104, 803, -1, 72, 776, -1, 104, 776, -1, 72, 807, -1, 104, 807, -1, 72, 814, -1, 104, 814, -1, 73, 816, -1, 105, 816, -1, 207, 769, -1, 239, 769, -1, 75, 769, -1, 107, 769, -1, 75, 803, -1, 107, 803, -1, 75, 817, -1, 107, 817, -1, 76, 803, -1, 108, 803, -1, 7734, 772, -1, 7735, 772, -1, 76, 817, -1, 108, 817, -1, 76, 813, -1, 108, 813, -1, 77, 769, -1, 109, 769, -1, 77, 775, -1, 109, 775, -1, 77, 803, -1, 109, 803, -1, 78, 775, -1, 110, 775, -1, 78, 803, -1, 110, 803, -1, 78, 817, -1, 110, 817, -1, 78, 813, -1, 110, 813, -1, 213, 769, -1, 245, 769, -1, 213, 776, -1, 245, 776, -1, 332, 768, -1, 333, 768, -1, 332, 769, -1, 333, 769, -1, 80, 769, -1, 112, 769, -1, 80, 775, -1, 112, 775, -1, 82, 775, -1, 114, 775, -1, 82, 803, -1, 114, 803, -1, 7770, 772, -1, 7771, 772, -1, 82, 817, -1, 114, 817, -1, 83, 775, -1, 115, 775, -1, 83, 803, -1, 115, 803, -1, 346, 775, -1, 347, 775, -1, 352, 775, -1, 353, 775, -1, 7778, 775, -1, 7779, 775, -1, 84, 775, -1, 116, 775, -1, 84, 803, -1, 116, 803, -1, 84, 817, -1, 116, 817, -1, 84, 813, -1, 116, 813, -1, 85, 804, -1, 117, 804, -1, 85, 816, -1, 117, 816, -1, 85, 813, -1, 117, 813, -1, 360, 769, -1, 361, 769, -1, 362, 776, -1, 363, 776, -1, 86, 771, -1, 118, 771, -1, 86, 803, -1, 118, 803, -1, 87, 768, -1, 119, 768, -1, 87, 769, -1, 119, 769, -1, 87, 776, -1, 119, 776, -1, 87, 775, -1, 119, 775, -1, 87, 803, -1, 119, 803, -1, 88, 775, -1, 120, 775, -1, 88, 776, -1, 120, 776, -1, 89, 775, -1, 121, 775, -1, 90, 770, -1, 122, 770, -1, 90, 803, -1, 122, 803, -1, 90, 817, -1, 122, 817, -1, 104, 817, -1, 72, 817, -1, 7830, -1, 116, 776, -1, 84, 776, -1, 7831, -1, 119, 778, -1, 87, 778, -1, 7832, -1, 121, 778, -1, 89, 778, -1, 7833, -1, 97, 702, -1, 65, 702, -1, 7834, -1, 383, 775, -1, 65, 803, -1, 97, 803, -1, 65, 777, -1, 97, 777, -1, 194, 769, -1, 226, 769, -1, 194, 768, -1, 226, 768, -1, 194, 777, -1, 226, 777, -1, 194, 771, -1, 226, 771, -1, 7840, 770, -1, 7841, 770, -1, 258, 769, -1, 259, 769, -1, 258, 768, -1, 259, 768, -1, 258, 777, -1, 259, 777, -1, 258, 771, -1, 259, 771, -1, 7840, 774, -1, 7841, 774, -1, 69, 803, -1, 101, 803, -1, 69, 777, -1, 101, 777, -1, 69, 771, -1, 101, 771, -1, 202, 769, -1, 234, 769, -1, 202, 768, -1, 234, 768, -1, 202, 777, -1, 234, 777, -1, 202, 771, -1, 234, 771, -1, 7864, 770, -1, 7865, 770, -1, 73, 777, -1, 105, 777, -1, 73, 803, -1, 105, 803, -1, 79, 803, -1, 111, 803, -1, 79, 777, -1, 111, 777, -1, 212, 769, -1, 244, 769, -1, 212, 768, -1, 244, 768, -1, 212, 777, -1, 244, 777, -1, 212, 771, -1, 244, 771, -1, 7884, 770, -1, 7885, 770, -1, 416, 769, -1, 417, 769, -1, 416, 768, -1, 417, 768, -1, 416, 777, -1, 417, 777, -1, 416, 771, -1, 417, 771, -1, 416, 803, -1, 417, 803, -1, 85, 803, -1, 117, 803, -1, 85, 777, -1, 117, 777, -1, 431, 769, -1, 432, 769, -1, 431, 768, -1, 432, 768, -1, 431, 777, -1, 432, 777, -1, 431, 771, -1, 432, 771, -1, 431, 803, -1, 432, 803, -1, 89, 768, -1, 121, 768, -1, 89, 803, -1, 121, 803, -1, 89, 777, -1, 121, 777, -1, 89, 771, -1, 121, 771, -1, 945, 787, -1, 945, 788, -1, 7936, 768, -1, 7937, 768, -1, 7936, 769, -1, 7937, 769, -1, 7936, 834, -1, 7937, 834, -1, 913, 787, -1, 913, 788, -1, 7944, 768, -1, 7945, 768, -1, 7944, 769, -1, 7945, 769, -1, 7944, 834, -1, 7945, 834, -1, 949, 787, -1, 949, 788, -1, 7952, 768, -1, 7953, 768, -1, 7952, 769, -1, 7953, 769, -1, 917, 787, -1, 917, 788, -1, 7960, 768, -1, 7961, 768, -1, 7960, 769, -1, 7961, 769, -1, 951, 787, -1, 951, 788, -1, 7968, 768, -1, 7969, 768, -1, 7968, 769, -1, 7969, 769, -1, 7968, 834, -1, 7969, 834, -1, 919, 787, -1, 919, 788, -1, 7976, 768, -1, 7977, 768, -1, 7976, 769, -1, 7977, 769, -1, 7976, 834, -1, 7977, 834, -1, 953, 787, -1, 953, 788, -1, 7984, 768, -1, 7985, 768, -1, 7984, 769, -1, 7985, 769, -1, 7984, 834, -1, 7985, 834, -1, 921, 787, -1, 921, 788, -1, 7992, 768, -1, 7993, 768, -1, 7992, 769, -1, 7993, 769, -1, 7992, 834, -1, 7993, 834, -1, 959, 787, -1, 959, 788, -1, 8000, 768, -1, 8001, 768, -1, 8000, 769, -1, 8001, 769, -1, 927, 787, -1, 927, 788, -1, 8008, 768, -1, 8009, 768, -1, 8008, 769, -1, 8009, 769, -1, 965, 787, -1, 933, 787, -1, 8016, -1, 965, 788, -1, 8016, 768, -1, 933, 787, 768, -1, 8018, -1, 965, 787, 768, -1, 8017, 768, -1, 8016, 769, -1, 933, 787, 769, -1, 8020, -1, 965, 787, 769, -1, 8017, 769, -1, 8016, 834, -1, 933, 787, 834, -1, 8022, -1, 965, 787, 834, -1, 8017, 834, -1, 933, 788, -1, 8025, 768, -1, 8025, 769, -1, 8025, 834, -1, 969, 787, -1, 969, 788, -1, 8032, 768, -1, 8033, 768, -1, 8032, 769, -1, 8033, 769, -1, 8032, 834, -1, 8033, 834, -1, 937, 787, -1, 937, 788, -1, 8040, 768, -1, 8041, 768, -1, 8040, 769, -1, 8041, 769, -1, 8040, 834, -1, 8041, 834, -1, 945, 768, -1, 949, 768, -1, 951, 768, -1, 953, 768, -1, 959, 768, -1, 965, 768, -1, 969, 768, -1, 7936, 837, -1, 7944, 921, -1, 8064, -1, 8072, -1, 7936, 953, -1, 7937, 837, -1, 7945, 921, -1, 8065, -1, 8073, -1, 7937, 953, -1, 7938, 837, -1, 7946, 921, -1, 8066, -1, 8074, -1, 7938, 953, -1, 7939, 837, -1, 7947, 921, -1, 8067, -1, 8075, -1, 7939, 953, -1, 7940, 837, -1, 7948, 921, -1, 8068, -1, 8076, -1, 7940, 953, -1, 7941, 837, -1, 7949, 921, -1, 8069, -1, 8077, -1, 7941, 953, -1, 7942, 837, -1, 7950, 921, -1, 8070, -1, 8078, -1, 7942, 953, -1, 7943, 837, -1, 7951, 921, -1, 8071, -1, 8079, -1, 7943, 953, -1, 7944, 837, -1, 7945, 837, -1, 7946, 837, -1, 7947, 837, -1, 7948, 837, -1, 7949, 837, -1, 7950, 837, -1, 7951, 837, -1, 7968, 837, -1, 7976, 921, -1, 8080, -1, 8088, -1, 7968, 953, -1, 7969, 837, -1, 7977, 921, -1, 8081, -1, 8089, -1, 7969, 953, -1, 7970, 837, -1, 7978, 921, -1, 8082, -1, 8090, -1, 7970, 953, -1, 7971, 837, -1, 7979, 921, -1, 8083, -1, 8091, -1, 7971, 953, -1, 7972, 837, -1, 7980, 921, -1, 8084, -1, 8092, -1, 7972, 953, -1, 7973, 837, -1, 7981, 921, -1, 8085, -1, 8093, -1, 7973, 953, -1, 7974, 837, -1, 7982, 921, -1, 8086, -1, 8094, -1, 7974, 953, -1, 7975, 837, -1, 7983, 921, -1, 8087, -1, 8095, -1, 7975, 953, -1, 7976, 837, -1, 7977, 837, -1, 7978, 837, -1, 7979, 837, -1, 7980, 837, -1, 7981, 837, -1, 7982, 837, -1, 7983, 837, -1, 8032, 837, -1, 8040, 921, -1, 8096, -1, 8104, -1, 8032, 953, -1, 8033, 837, -1, 8041, 921, -1, 8097, -1, 8105, -1, 8033, 953, -1, 8034, 837, -1, 8042, 921, -1, 8098, -1, 8106, -1, 8034, 953, -1, 8035, 837, -1, 8043, 921, -1, 8099, -1, 8107, -1, 8035, 953, -1, 8036, 837, -1, 8044, 921, -1, 8100, -1, 8108, -1, 8036, 953, -1, 8037, 837, -1, 8045, 921, -1, 8101, -1, 8109, -1, 8037, 953, -1, 8038, 837, -1, 8046, 921, -1, 8102, -1, 8110, -1, 8038, 953, -1, 8039, 837, -1, 8047, 921, -1, 8103, -1, 8111, -1, 8039, 953, -1, 8040, 837, -1, 8041, 837, -1, 8042, 837, -1, 8043, 837, -1, 8044, 837, -1, 8045, 837, -1, 8046, 837, -1, 8047, 837, -1, 945, 774, -1, 945, 772, -1, 8048, 837, -1, 8122, 921, -1, 8114, -1, 8122, 837, -1, 8048, 953, -1, 945, 837, -1, 913, 921, -1, 8115, -1, 8124, -1, 945, 953, -1, 940, 837, -1, 902, 921, -1, 8116, -1, 902, 837, -1, 940, 953, -1, 945, 834, -1, 913, 834, -1, 8118, -1, 8118, 837, -1, 913, 834, 921, -1, 8119, -1, 913, 834, 837, -1, 945, 834, 953, -1, 913, 774, -1, 913, 772, -1, 913, 768, -1, 913, 837, -1, 32, 787, -1, 32, 834, -1, 168, 834, -1, 8052, 837, -1, 8138, 921, -1, 8130, -1, 8138, 837, -1, 8052, 953, -1, 951, 837, -1, 919, 921, -1, 8131, -1, 8140, -1, 951, 953, -1, 942, 837, -1, 905, 921, -1, 8132, -1, 905, 837, -1, 942, 953, -1, 951, 834, -1, 919, 834, -1, 8134, -1, 8134, 837, -1, 919, 834, 921, -1, 8135, -1, 919, 834, 837, -1, 951, 834, 953, -1, 917, 768, -1, 919, 768, -1, 919, 837, -1, 8127, 768, -1, 8127, 769, -1, 8127, 834, -1, 953, 774, -1, 953, 772, -1, 970, 768, -1, 921, 776, 768, -1, 8146, -1, 953, 776, 768, -1, 8147, -1, 953, 834, -1, 921, 834, -1, 8150, -1, 970, 834, -1, 921, 776, 834, -1, 8151, -1, 953, 776, 834, -1, 921, 774, -1, 921, 772, -1, 921, 768, -1, 8190, 768, -1, 8190, 769, -1, 8190, 834, -1, 965, 774, -1, 965, 772, -1, 971, 768, -1, 933, 776, 768, -1, 8162, -1, 965, 776, 768, -1, 8163, -1, 961, 787, -1, 929, 787, -1, 8164, -1, 961, 788, -1, 965, 834, -1, 933, 834, -1, 8166, -1, 971, 834, -1, 933, 776, 834, -1, 8167, -1, 965, 776, 834, -1, 933, 774, -1, 933, 772, -1, 933, 768, -1, 929, 788, -1, 168, 768, -1, 8060, 837, -1, 8186, 921, -1, 8178, -1, 8186, 837, -1, 8060, 953, -1, 969, 837, -1, 937, 921, -1, 8179, -1, 8188, -1, 969, 953, -1, 974, 837, -1, 911, 921, -1, 8180, -1, 911, 837, -1, 974, 953, -1, 969, 834, -1, 937, 834, -1, 8182, -1, 8182, 837, -1, 937, 834, 921, -1, 8183, -1, 937, 834, 837, -1, 969, 834, 953, -1, 927, 768, -1, 937, 768, -1, 937, 837, -1, 32, 788, -1, 32, 819, -1, 46, 46, -1, 46, 46, 46, -1, 8242, 8242, -1, 8242, 8242, 8242, -1, 8245, 8245, -1, 8245, 8245, 8245, -1, 33, 33, -1, 32, 773, -1, 63, 63, -1, 63, 33, -1, 33, 63, -1, 8242, 8242, 8242, 8242, -1, 82, 115, -1, 97, 47, 99, -1, 97, 47, 115, -1, 176, 67, -1, 99, 47, 111, -1, 99, 47, 117, -1, 176, 70, -1, 78, 111, -1, 83, 77, -1, 84, 69, 76, -1, 84, 77, -1, 70, 65, 88, -1, 49, 8260, 51, -1, 50, 8260, 51, -1, 49, 8260, 53, -1, 50, 8260, 53, -1, 51, 8260, 53, -1, 52, 8260, 53, -1, 49, 8260, 54, -1, 53, 8260, 54, -1, 49, 8260, 56, -1, 51, 8260, 56, -1, 53, 8260, 56, -1, 55, 8260, 56, -1, 49, 8260, -1, 73, 73, -1, 73, 73, 73, -1, 73, 86, -1, 86, 73, -1, 86, 73, 73, -1, 86, 73, 73, 73, -1, 73, 88, -1, 88, 73, -1, 88, 73, 73, -1, 105, 105, -1, 105, 105, 105, -1, 105, 118, -1, 118, 105, -1, 118, 105, 105, -1, 118, 105, 105, 105, -1, 105, 120, -1, 120, 105, -1, 120, 105, 105, -1, 8592, 824, -1, 8594, 824, -1, 8596, 824, -1, 8656, 824, -1, 8660, 824, -1, 8658, 824, -1, 8707, 824, -1, 8712, 824, -1, 8715, 824, -1, 8739, 824, -1, 8741, 824, -1, 8747, 8747, -1, 8747, 8747, 8747, -1, 8750, 8750, -1, 8750, 8750, 8750, -1, 8764, 824, -1, 8771, 824, -1, 8773, 824, -1, 8776, 824, -1, 61, 824, -1, 8801, 824, -1, 8781, 824, -1, 60, 824, -1, 62, 824, -1, 8804, 824, -1, 8805, 824, -1, 8818, 824, -1, 8819, 824, -1, 8822, 824, -1, 8823, 824, -1, 8826, 824, -1, 8827, 824, -1, 8834, 824, -1, 8835, 824, -1, 8838, 824, -1, 8839, 824, -1, 8866, 824, -1, 8872, 824, -1, 8873, 824, -1, 8875, 824, -1, 8828, 824, -1, 8829, 824, -1, 8849, 824, -1, 8850, 824, -1, 8882, 824, -1, 8883, 824, -1, 8884, 824, -1, 8885, 824, -1, 49, 48, -1, 49, 49, -1, 49, 50, -1, 49, 51, -1, 49, 52, -1, 49, 53, -1, 49, 54, -1, 49, 55, -1, 49, 56, -1, 49, 57, -1, 50, 48, -1, 40, 49, 41, -1, 40, 50, 41, -1, 40, 51, 41, -1, 40, 52, 41, -1, 40, 53, 41, -1, 40, 54, 41, -1, 40, 55, 41, -1, 40, 56, 41, -1, 40, 57, 41, -1, 40, 49, 48, 41, -1, 40, 49, 49, 41, -1, 40, 49, 50, 41, -1, 40, 49, 51, 41, -1, 40, 49, 52, 41, -1, 40, 49, 53, 41, -1, 40, 49, 54, 41, -1, 40, 49, 55, 41, -1, 40, 49, 56, 41, -1, 40, 49, 57, 41, -1, 40, 50, 48, 41, -1, 49, 46, -1, 50, 46, -1, 51, 46, -1, 52, 46, -1, 53, 46, -1, 54, 46, -1, 55, 46, -1, 56, 46, -1, 57, 46, -1, 49, 48, 46, -1, 49, 49, 46, -1, 49, 50, 46, -1, 49, 51, 46, -1, 49, 52, 46, -1, 49, 53, 46, -1, 49, 54, 46, -1, 49, 55, 46, -1, 49, 56, 46, -1, 49, 57, 46, -1, 50, 48, 46, -1, 40, 97, 41, -1, 40, 98, 41, -1, 40, 99, 41, -1, 40, 100, 41, -1, 40, 101, 41, -1, 40, 102, 41, -1, 40, 103, 41, -1, 40, 104, 41, -1, 40, 105, 41, -1, 40, 106, 41, -1, 40, 107, 41, -1, 40, 108, 41, -1, 40, 109, 41, -1, 40, 110, 41, -1, 40, 111, 41, -1, 40, 112, 41, -1, 40, 113, 41, -1, 40, 114, 41, -1, 40, 115, 41, -1, 40, 116, 41, -1, 40, 117, 41, -1, 40, 118, 41, -1, 40, 119, 41, -1, 40, 120, 41, -1, 40, 121, 41, -1, 40, 122, 41, -1, 8747, 8747, 8747, 8747, -1, 58, 58, 61, -1, 61, 61, -1, 61, 61, 61, -1, 10973, 824, -1, 12363, 12441, -1, 12365, 12441, -1, 12367, 12441, -1, 12369, 12441, -1, 12371, 12441, -1, 12373, 12441, -1, 12375, 12441, -1, 12377, 12441, -1, 12379, 12441, -1, 12381, 12441, -1, 12383, 12441, -1, 12385, 12441, -1, 12388, 12441, -1, 12390, 12441, -1, 12392, 12441, -1, 12399, 12441, -1, 12399, 12442, -1, 12402, 12441, -1, 12402, 12442, -1, 12405, 12441, -1, 12405, 12442, -1, 12408, 12441, -1, 12408, 12442, -1, 12411, 12441, -1, 12411, 12442, -1, 12358, 12441, -1, 32, 12441, -1, 32, 12442, -1, 12445, 12441, -1, 12424, 12426, -1, 12459, 12441, -1, 12461, 12441, -1, 12463, 12441, -1, 12465, 12441, -1, 12467, 12441, -1, 12469, 12441, -1, 12471, 12441, -1, 12473, 12441, -1, 12475, 12441, -1, 12477, 12441, -1, 12479, 12441, -1, 12481, 12441, -1, 12484, 12441, -1, 12486, 12441, -1, 12488, 12441, -1, 12495, 12441, -1, 12495, 12442, -1, 12498, 12441, -1, 12498, 12442, -1, 12501, 12441, -1, 12501, 12442, -1, 12504, 12441, -1, 12504, 12442, -1, 12507, 12441, -1, 12507, 12442, -1, 12454, 12441, -1, 12527, 12441, -1, 12528, 12441, -1, 12529, 12441, -1, 12530, 12441, -1, 12541, 12441, -1, 12467, 12488, -1, 40, 4352, 41, -1, 40, 4354, 41, -1, 40, 4355, 41, -1, 40, 4357, 41, -1, 40, 4358, 41, -1, 40, 4359, 41, -1, 40, 4361, 41, -1, 40, 4363, 41, -1, 40, 4364, 41, -1, 40, 4366, 41, -1, 40, 4367, 41, -1, 40, 4368, 41, -1, 40, 4369, 41, -1, 40, 4370, 41, -1, 40, 4352, 4449, 41, -1, 40, 4354, 4449, 41, -1, 40, 4355, 4449, 41, -1, 40, 4357, 4449, 41, -1, 40, 4358, 4449, 41, -1, 40, 4359, 4449, 41, -1, 40, 4361, 4449, 41, -1, 40, 4363, 4449, 41, -1, 40, 4364, 4449, 41, -1, 40, 4366, 4449, 41, -1, 40, 4367, 4449, 41, -1, 40, 4368, 4449, 41, -1, 40, 4369, 4449, 41, -1, 40, 4370, 4449, 41, -1, 40, 4364, 4462, 41, -1, 40, 4363, 4457, 4364, 4453, 4523, 41, -1, 40, 4363, 4457, 4370, 4462, 41, -1, 40, 19968, 41, -1, 40, 20108, 41, -1, 40, 19977, 41, -1, 40, 22235, 41, -1, 40, 20116, 41, -1, 40, 20845, 41, -1, 40, 19971, 41, -1, 40, 20843, 41, -1, 40, 20061, 41, -1, 40, 21313, 41, -1, 40, 26376, 41, -1, 40, 28779, 41, -1, 40, 27700, 41, -1, 40, 26408, 41, -1, 40, 37329, 41, -1, 40, 22303, 41, -1, 40, 26085, 41, -1, 40, 26666, 41, -1, 40, 26377, 41, -1, 40, 31038, 41, -1, 40, 21517, 41, -1, 40, 29305, 41, -1, 40, 36001, 41, -1, 40, 31069, 41, -1, 40, 21172, 41, -1, 40, 20195, 41, -1, 40, 21628, 41, -1, 40, 23398, 41, -1, 40, 30435, 41, -1, 40, 20225, 41, -1, 40, 36039, 41, -1, 40, 21332, 41, -1, 40, 31085, 41, -1, 40, 20241, 41, -1, 40, 33258, 41, -1, 40, 33267, 41, -1, 80, 84, 69, -1, 50, 49, -1, 50, 50, -1, 50, 51, -1, 50, 52, -1, 50, 53, -1, 50, 54, -1, 50, 55, -1, 50, 56, -1, 50, 57, -1, 51, 48, -1, 51, 49, -1, 51, 50, -1, 51, 51, -1, 51, 52, -1, 51, 53, -1, 4352, 4449, -1, 4354, 4449, -1, 4355, 4449, -1, 4357, 4449, -1, 4358, 4449, -1, 4359, 4449, -1, 4361, 4449, -1, 4363, 4449, -1, 4364, 4449, -1, 4366, 4449, -1, 4367, 4449, -1, 4368, 4449, -1, 4369, 4449, -1, 4370, 4449, -1, 4366, 4449, 4535, 4352, 4457, -1, 4364, 4462, 4363, 4468, -1, 4363, 4462, -1, 51, 54, -1, 51, 55, -1, 51, 56, -1, 51, 57, -1, 52, 48, -1, 52, 49, -1, 52, 50, -1, 52, 51, -1, 52, 52, -1, 52, 53, -1, 52, 54, -1, 52, 55, -1, 52, 56, -1, 52, 57, -1, 53, 48, -1, 49, 26376, -1, 50, 26376, -1, 51, 26376, -1, 52, 26376, -1, 53, 26376, -1, 54, 26376, -1, 55, 26376, -1, 56, 26376, -1, 57, 26376, -1, 49, 48, 26376, -1, 49, 49, 26376, -1, 49, 50, 26376, -1, 72, 103, -1, 101, 114, 103, -1, 101, 86, -1, 76, 84, 68, -1, 12450, 12497, 12540, 12488, -1, 12450, 12523, 12501, 12449, -1, 12450, 12531, 12506, 12450, -1, 12450, 12540, 12523, -1, 12452, 12491, 12531, 12464, -1, 12452, 12531, 12481, -1, 12454, 12457, 12531, -1, 12456, 12473, 12463, 12540, 12489, -1, 12456, 12540, 12459, 12540, -1, 12458, 12531, 12473, -1, 12458, 12540, 12512, -1, 12459, 12452, 12522, -1, 12459, 12521, 12483, 12488, -1, 12459, 12525, 12522, 12540, -1, 12460, 12525, 12531, -1, 12460, 12531, 12510, -1, 12462, 12460, -1, 12462, 12491, 12540, -1, 12461, 12517, 12522, 12540, -1, 12462, 12523, 12480, 12540, -1, 12461, 12525, -1, 12461, 12525, 12464, 12521, 12512, -1, 12461, 12525, 12513, 12540, 12488, 12523, -1, 12461, 12525, 12527, 12483, 12488, -1, 12464, 12521, 12512, -1, 12464, 12521, 12512, 12488, 12531, -1, 12463, 12523, 12476, 12452, 12525, -1, 12463, 12525, 12540, 12493, -1, 12465, 12540, 12473, -1, 12467, 12523, 12490, -1, 12467, 12540, 12509, -1, 12469, 12452, 12463, 12523, -1, 12469, 12531, 12481, 12540, 12512, -1, 12471, 12522, 12531, 12464, -1, 12475, 12531, 12481, -1, 12475, 12531, 12488, -1, 12480, 12540, 12473, -1, 12487, 12471, -1, 12489, 12523, -1, 12488, 12531, -1, 12490, 12494, -1, 12494, 12483, 12488, -1, 12495, 12452, 12484, -1, 12497, 12540, 12475, 12531, 12488, -1, 12497, 12540, 12484, -1, 12496, 12540, 12524, 12523, -1, 12500, 12450, 12473, 12488, 12523, -1, 12500, 12463, 12523, -1, 12500, 12467, -1, 12499, 12523, -1, 12501, 12449, 12521, 12483, 12489, -1, 12501, 12451, 12540, 12488, -1, 12502, 12483, 12471, 12455, 12523, -1, 12501, 12521, 12531, -1, 12504, 12463, 12479, 12540, 12523, -1, 12506, 12477, -1, 12506, 12491, 12498, -1, 12504, 12523, 12484, -1, 12506, 12531, 12473, -1, 12506, 12540, 12472, -1, 12505, 12540, 12479, -1, 12509, 12452, 12531, 12488, -1, 12508, 12523, 12488, -1, 12507, 12531, -1, 12509, 12531, 12489, -1, 12507, 12540, 12523, -1, 12507, 12540, 12531, -1, 12510, 12452, 12463, 12525, -1, 12510, 12452, 12523, -1, 12510, 12483, 12495, -1, 12510, 12523, 12463, -1, 12510, 12531, 12471, 12519, 12531, -1, 12511, 12463, 12525, 12531, -1, 12511, 12522, -1, 12511, 12522, 12496, 12540, 12523, -1, 12513, 12460, -1, 12513, 12460, 12488, 12531, -1, 12513, 12540, 12488, 12523, -1, 12516, 12540, 12489, -1, 12516, 12540, 12523, -1, 12518, 12450, 12531, -1, 12522, 12483, 12488, 12523, -1, 12522, 12521, -1, 12523, 12500, 12540, -1, 12523, 12540, 12502, 12523, -1, 12524, 12512, -1, 12524, 12531, 12488, 12466, 12531, -1, 12527, 12483, 12488, -1, 48, 28857, -1, 49, 28857, -1, 50, 28857, -1, 51, 28857, -1, 52, 28857, -1, 53, 28857, -1, 54, 28857, -1, 55, 28857, -1, 56, 28857, -1, 57, 28857, -1, 49, 48, 28857, -1, 49, 49, 28857, -1, 49, 50, 28857, -1, 49, 51, 28857, -1, 49, 52, 28857, -1, 49, 53, 28857, -1, 49, 54, 28857, -1, 49, 55, 28857, -1, 49, 56, 28857, -1, 49, 57, 28857, -1, 50, 48, 28857, -1, 50, 49, 28857, -1, 50, 50, 28857, -1, 50, 51, 28857, -1, 50, 52, 28857, -1, 104, 80, 97, -1, 100, 97, -1, 65, 85, -1, 98, 97, 114, -1, 111, 86, -1, 112, 99, -1, 100, 109, -1, 100, 109, 178, -1, 100, 109, 179, -1, 73, 85, -1, 24179, 25104, -1, 26157, 21644, -1, 22823, 27491, -1, 26126, 27835, -1, 26666, 24335, 20250, 31038, -1, 112, 65, -1, 110, 65, -1, 956, 65, -1, 109, 65, -1, 107, 65, -1, 75, 66, -1, 77, 66, -1, 71, 66, -1, 99, 97, 108, -1, 107, 99, 97, 108, -1, 112, 70, -1, 110, 70, -1, 956, 70, -1, 956, 103, -1, 109, 103, -1, 107, 103, -1, 72, 122, -1, 107, 72, 122, -1, 77, 72, 122, -1, 71, 72, 122, -1, 84, 72, 122, -1, 956, 8467, -1, 109, 8467, -1, 100, 8467, -1, 107, 8467, -1, 102, 109, -1, 110, 109, -1, 956, 109, -1, 109, 109, -1, 99, 109, -1, 107, 109, -1, 109, 109, 178, -1, 99, 109, 178, -1, 109, 178, -1, 107, 109, 178, -1, 109, 109, 179, -1, 99, 109, 179, -1, 109, 179, -1, 107, 109, 179, -1, 109, 8725, 115, -1, 109, 8725, 115, 178, -1, 80, 97, -1, 107, 80, 97, -1, 77, 80, 97, -1, 71, 80, 97, -1, 114, 97, 100, -1, 114, 97, 100, 8725, 115, -1, 114, 97, 100, 8725, 115, 178, -1, 112, 115, -1, 110, 115, -1, 956, 115, -1, 109, 115, -1, 112, 86, -1, 110, 86, -1, 956, 86, -1, 109, 86, -1, 107, 86, -1, 77, 86, -1, 112, 87, -1, 110, 87, -1, 956, 87, -1, 109, 87, -1, 107, 87, -1, 77, 87, -1, 107, 937, -1, 77, 937, -1, 97, 46, 109, 46, -1, 66, 113, -1, 99, 99, -1, 99, 100, -1, 67, 8725, 107, 103, -1, 67, 111, 46, -1, 100, 66, -1, 71, 121, -1, 104, 97, -1, 72, 80, -1, 105, 110, -1, 75, 75, -1, 75, 77, -1, 107, 116, -1, 108, 109, -1, 108, 110, -1, 108, 111, 103, -1, 108, 120, -1, 109, 98, -1, 109, 105, 108, -1, 109, 111, 108, -1, 80, 72, -1, 112, 46, 109, 46, -1, 80, 80, 77, -1, 80, 82, -1, 115, 114, -1, 83, 118, -1, 87, 98, -1, 86, 8725, 109, -1, 65, 8725, 109, -1, 49, 26085, -1, 50, 26085, -1, 51, 26085, -1, 52, 26085, -1, 53, 26085, -1, 54, 26085, -1, 55, 26085, -1, 56, 26085, -1, 57, 26085, -1, 49, 48, 26085, -1, 49, 49, 26085, -1, 49, 50, 26085, -1, 49, 51, 26085, -1, 49, 52, 26085, -1, 49, 53, 26085, -1, 49, 54, 26085, -1, 49, 55, 26085, -1, 49, 56, 26085, -1, 49, 57, 26085, -1, 50, 48, 26085, -1, 50, 49, 26085, -1, 50, 50, 26085, -1, 50, 51, 26085, -1, 50, 52, 26085, -1, 50, 53, 26085, -1, 50, 54, 26085, -1, 50, 55, 26085, -1, 50, 56, 26085, -1, 50, 57, 26085, -1, 51, 48, 26085, -1, 51, 49, 26085, -1, 103, 97, 108, -1, 102, 102, -1, 70, 70, -1, 64256, -1, 70, 102, -1, 102, 105, -1, 70, 73, -1, 64257, -1, 70, 105, -1, 102, 108, -1, 70, 76, -1, 64258, -1, 70, 108, -1, 102, 102, 105, -1, 70, 70, 73, -1, 64259, -1, 70, 102, 105, -1, 102, 102, 108, -1, 70, 70, 76, -1, 64260, -1, 70, 102, 108, -1, 383, 116, -1, 83, 84, -1, 64261, -1, 83, 116, -1, 115, 116, -1, 64262, -1, 1396, 1398, -1, 1348, 1350, -1, 64275, -1, 1348, 1398, -1, 1396, 1381, -1, 1348, 1333, -1, 64276, -1, 1348, 1381, -1, 1396, 1387, -1, 1348, 1339, -1, 64277, -1, 1348, 1387, -1, 1406, 1398, -1, 1358, 1350, -1, 64278, -1, 1358, 1398, -1, 1396, 1389, -1, 1348, 1341, -1, 64279, -1, 1348, 1389, -1, 1497, 1460, -1, 1522, 1463, -1, 1513, 1473, -1, 1513, 1474, -1, 64329, 1473, -1, 64329, 1474, -1, 1488, 1463, -1, 1488, 1464, -1, 1488, 1468, -1, 1489, 1468, -1, 1490, 1468, -1, 1491, 1468, -1, 1492, 1468, -1, 1493, 1468, -1, 1494, 1468, -1, 1496, 1468, -1, 1497, 1468, -1, 1498, 1468, -1, 1499, 1468, -1, 1500, 1468, -1, 1502, 1468, -1, 1504, 1468, -1, 1505, 1468, -1, 1507, 1468, -1, 1508, 1468, -1, 1510, 1468, -1, 1511, 1468, -1, 1512, 1468, -1, 1513, 1468, -1, 1514, 1468, -1, 1493, 1465, -1, 1489, 1471, -1, 1499, 1471, -1, 1508, 1471, -1, 1488, 1500, -1, 1574, 1575, -1, 1574, 1749, -1, 1574, 1608, -1, 1574, 1735, -1, 1574, 1734, -1, 1574, 1736, -1, 1574, 1744, -1, 1574, 1609, -1, 1574, 1580, -1, 1574, 1581, -1, 1574, 1605, -1, 1574, 1610, -1, 1576, 1580, -1, 1576, 1581, -1, 1576, 1582, -1, 1576, 1605, -1, 1576, 1609, -1, 1576, 1610, -1, 1578, 1580, -1, 1578, 1581, -1, 1578, 1582, -1, 1578, 1605, -1, 1578, 1609, -1, 1578, 1610, -1, 1579, 1580, -1, 1579, 1605, -1, 1579, 1609, -1, 1579, 1610, -1, 1580, 1581, -1, 1580, 1605, -1, 1581, 1580, -1, 1581, 1605, -1, 1582, 1580, -1, 1582, 1581, -1, 1582, 1605, -1, 1587, 1580, -1, 1587, 1581, -1, 1587, 1582, -1, 1587, 1605, -1, 1589, 1581, -1, 1589, 1605, -1, 1590, 1580, -1, 1590, 1581, -1, 1590, 1582, -1, 1590, 1605, -1, 1591, 1581, -1, 1591, 1605, -1, 1592, 1605, -1, 1593, 1580, -1, 1593, 1605, -1, 1594, 1580, -1, 1594, 1605, -1, 1601, 1580, -1, 1601, 1581, -1, 1601, 1582, -1, 1601, 1605, -1, 1601, 1609, -1, 1601, 1610, -1, 1602, 1581, -1, 1602, 1605, -1, 1602, 1609, -1, 1602, 1610, -1, 1603, 1575, -1, 1603, 1580, -1, 1603, 1581, -1, 1603, 1582, -1, 1603, 1604, -1, 1603, 1605, -1, 1603, 1609, -1, 1603, 1610, -1, 1604, 1580, -1, 1604, 1581, -1, 1604, 1582, -1, 1604, 1605, -1, 1604, 1609, -1, 1604, 1610, -1, 1605, 1580, -1, 1605, 1581, -1, 1605, 1582, -1, 1605, 1605, -1, 1605, 1609, -1, 1605, 1610, -1, 1606, 1580, -1, 1606, 1581, -1, 1606, 1582, -1, 1606, 1605, -1, 1606, 1609, -1, 1606, 1610, -1, 1607, 1580, -1, 1607, 1605, -1, 1607, 1609, -1, 1607, 1610, -1, 1610, 1580, -1, 1610, 1581, -1, 1610, 1582, -1, 1610, 1605, -1, 1610, 1609, -1, 1610, 1610, -1, 1584, 1648, -1, 1585, 1648, -1, 1609, 1648, -1, 32, 1612, 1617, -1, 32, 1613, 1617, -1, 32, 1614, 1617, -1, 32, 1615, 1617, -1, 32, 1616, 1617, -1, 32, 1617, 1648, -1, 1574, 1585, -1, 1574, 1586, -1, 1574, 1606, -1, 1576, 1585, -1, 1576, 1586, -1, 1576, 1606, -1, 1578, 1585, -1, 1578, 1586, -1, 1578, 1606, -1, 1579, 1585, -1, 1579, 1586, -1, 1579, 1606, -1, 1605, 1575, -1, 1606, 1585, -1, 1606, 1586, -1, 1606, 1606, -1, 1610, 1585, -1, 1610, 1586, -1, 1610, 1606, -1, 1574, 1582, -1, 1574, 1607, -1, 1576, 1607, -1, 1578, 1607, -1, 1589, 1582, -1, 1604, 1607, -1, 1606, 1607, -1, 1607, 1648, -1, 1610, 1607, -1, 1579, 1607, -1, 1587, 1607, -1, 1588, 1605, -1, 1588, 1607, -1, 1600, 1614, 1617, -1, 1600, 1615, 1617, -1, 1600, 1616, 1617, -1, 1591, 1609, -1, 1591, 1610, -1, 1593, 1609, -1, 1593, 1610, -1, 1594, 1609, -1, 1594, 1610, -1, 1587, 1609, -1, 1587, 1610, -1, 1588, 1609, -1, 1588, 1610, -1, 1581, 1609, -1, 1581, 1610, -1, 1580, 1609, -1, 1580, 1610, -1, 1582, 1609, -1, 1582, 1610, -1, 1589, 1609, -1, 1589, 1610, -1, 1590, 1609, -1, 1590, 1610, -1, 1588, 1580, -1, 1588, 1581, -1, 1588, 1582, -1, 1588, 1585, -1, 1587, 1585, -1, 1589, 1585, -1, 1590, 1585, -1, 1575, 1611, -1, 1578, 1580, 1605, -1, 1578, 1581, 1580, -1, 1578, 1581, 1605, -1, 1578, 1582, 1605, -1, 1578, 1605, 1580, -1, 1578, 1605, 1581, -1, 1578, 1605, 1582, -1, 1580, 1605, 1581, -1, 1581, 1605, 1610, -1, 1581, 1605, 1609, -1, 1587, 1581, 1580, -1, 1587, 1580, 1581, -1, 1587, 1580, 1609, -1, 1587, 1605, 1581, -1, 1587, 1605, 1580, -1, 1587, 1605, 1605, -1, 1589, 1581, 1581, -1, 1589, 1605, 1605, -1, 1588, 1581, 1605, -1, 1588, 1580, 1610, -1, 1588, 1605, 1582, -1, 1588, 1605, 1605, -1, 1590, 1581, 1609, -1, 1590, 1582, 1605, -1, 1591, 1605, 1581, -1, 1591, 1605, 1605, -1, 1591, 1605, 1610, -1, 1593, 1580, 1605, -1, 1593, 1605, 1605, -1, 1593, 1605, 1609, -1, 1594, 1605, 1605, -1, 1594, 1605, 1610, -1, 1594, 1605, 1609, -1, 1601, 1582, 1605, -1, 1602, 1605, 1581, -1, 1602, 1605, 1605, -1, 1604, 1581, 1605, -1, 1604, 1581, 1610, -1, 1604, 1581, 1609, -1, 1604, 1580, 1580, -1, 1604, 1582, 1605, -1, 1604, 1605, 1581, -1, 1605, 1581, 1580, -1, 1605, 1581, 1605, -1, 1605, 1581, 1610, -1, 1605, 1580, 1581, -1, 1605, 1580, 1605, -1, 1605, 1582, 1580, -1, 1605, 1582, 1605, -1, 1605, 1580, 1582, -1, 1607, 1605, 1580, -1, 1607, 1605, 1605, -1, 1606, 1581, 1605, -1, 1606, 1581, 1609, -1, 1606, 1580, 1605, -1, 1606, 1580, 1609, -1, 1606, 1605, 1610, -1, 1606, 1605, 1609, -1, 1610, 1605, 1605, -1, 1576, 1582, 1610, -1, 1578, 1580, 1610, -1, 1578, 1580, 1609, -1, 1578, 1582, 1610, -1, 1578, 1582, 1609, -1, 1578, 1605, 1610, -1, 1578, 1605, 1609, -1, 1580, 1605, 1610, -1, 1580, 1581, 1609, -1, 1580, 1605, 1609, -1, 1587, 1582, 1609, -1, 1589, 1581, 1610, -1, 1588, 1581, 1610, -1, 1590, 1581, 1610, -1, 1604, 1580, 1610, -1, 1604, 1605, 1610, -1, 1610, 1581, 1610, -1, 1610, 1580, 1610, -1, 1610, 1605, 1610, -1, 1605, 1605, 1610, -1, 1602, 1605, 1610, -1, 1606, 1581, 1610, -1, 1593, 1605, 1610, -1, 1603, 1605, 1610, -1, 1606, 1580, 1581, -1, 1605, 1582, 1610, -1, 1604, 1580, 1605, -1, 1603, 1605, 1605, -1, 1580, 1581, 1610, -1, 1581, 1580, 1610, -1, 1605, 1580, 1610, -1, 1601, 1605, 1610, -1, 1576, 1581, 1610, -1, 1587, 1582, 1610, -1, 1606, 1580, 1610, -1, 1589, 1604, 1746, -1, 1602, 1604, 1746, -1, 1575, 1604, 1604, 1607, -1, 1575, 1603, 1576, 1585, -1, 1605, 1581, 1605, 1583, -1, 1589, 1604, 1593, 1605, -1, 1585, 1587, 1608, 1604, -1, 1593, 1604, 1610, 1607, -1, 1608, 1587, 1604, 1605, -1, 1589, 1604, 1609, -1, 1589, 1604, 1609, 32, 1575, 1604, 1604, 1607, 32, 1593, 1604, 1610, 1607, 32, 1608, 1587, 1604, 1605, -1, 1580, 1604, 32, 1580, 1604, 1575, 1604, 1607, -1, 1585, 1740, 1575, 1604, -1, 32, 1611, -1, 1600, 1611, -1, 32, 1612, -1, 32, 1613, -1, 32, 1614, -1, 1600, 1614, -1, 32, 1615, -1, 1600, 1615, -1, 32, 1616, -1, 1600, 1616, -1, 32, 1617, -1, 1600, 1617, -1, 32, 1618, -1, 1600, 1618, -1, 1604, 1570, -1, 1604, 1571, -1, 1604, 1573, -1, 1604, 1575, -1, 119127, 119141, -1, 119128, 119141, -1, 119135, 119150, -1, 119135, 119151, -1, 119135, 119152, -1, 119135, 119153, -1, 119135, 119154, -1, 119225, 119141, -1, 119226, 119141, -1, 119227, 119150, -1, 119228, 119150, -1, 119227, 119151, -1, 119228, 119151, -1, }; const uint16_t utf8proc_stage1table[] = { 0, 256, 512, 768, 1024, 1280, 1536, 1792, 2048, 2304, 2560, 2816, 3072, 3328, 3584, 3840, 4096, 4352, 4608, 4864, 5120, 5376, 5632, 5888, 6144, 6400, 6656, 6912, 7168, 7424, 7680, 7936, 8192, 8448, 8704, 8960, 9216, 9472, 9728, 9984, 10240, 10496, 10752, 11008, 11264, 11520, 11776, 12032, 12288, 12544, 12800, 13056, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13568, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13824, 14080, 5376, 5376, 5376, 14336, 5376, 14592, 14848, 15104, 15360, 15616, 2048, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 5376, 15872, 16128, 16128, 16128, 16128, 16128, 16128, 16128, 16128, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16640, 16896, 17152, 17408, 17664, 17920, 18176, 18432, 18688, 18944, 19200, 19456, 2048, 2048, 2048, 19712, 19968, 20224, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 5376, 5376, 5376, 20480, 20736, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 20992, 21248, 21504, 21760, 22016, 22272, 22528, 22784, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 23040, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 13312, 23296, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 23552, 23808, 24064, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 24320, 24576, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 24832, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 16384, 24832, }; const uint16_t utf8proc_stage2table[] = { 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 4, 5, 6, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 8, 8, 8, 9, 10, 11, 12, 13, 14, 13, 15, 16, 17, 18, 15, 19, 20, 21, 22, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 25, 26, 27, 28, 29, 11, 15, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 17, 15, 18, 56, 57, 56, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 17, 84, 18, 84, 2, 2, 2, 2, 2, 2, 85, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 86, 15, 14, 14, 14, 14, 87, 87, 88, 87, 89, 90, 84, 91, 87, 92, 93, 94, 95, 96, 97, 98, 87, 99, 100, 101, 102, 103, 104, 105, 106, 15, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 84, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 84, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 225, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 225, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 225, 225, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 225, 351, 352, 353, 225, 354, 351, 351, 351, 351, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 225, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 225, 225, 225, 225, 225, 225, 466, 467, 468, 469, 470, 225, 225, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 225, 488, 489, 225, 490, 491, 225, 492, 225, 493, 225, 225, 225, 225, 494, 225, 225, 495, 225, 225, 225, 225, 496, 497, 225, 498, 225, 225, 225, 499, 225, 500, 501, 225, 225, 502, 225, 225, 225, 225, 225, 225, 225, 503, 225, 225, 504, 225, 225, 505, 225, 225, 225, 225, 506, 507, 508, 509, 510, 225, 225, 225, 225, 225, 511, 225, 351, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 521, 522, 522, 522, 522, 522, 523, 523, 56, 56, 56, 56, 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 522, 522, 56, 56, 56, 56, 56, 56, 524, 525, 526, 527, 528, 529, 56, 56, 530, 531, 532, 533, 534, 56, 56, 56, 56, 56, 56, 56, 521, 56, 522, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 540, 540, 548, 540, 549, 540, 550, 551, 552, 553, 553, 553, 553, 552, 554, 553, 553, 553, 553, 553, 555, 555, 556, 557, 558, 559, 560, 561, 553, 553, 553, 553, 562, 563, 553, 564, 565, 553, 553, 566, 566, 566, 566, 567, 553, 553, 553, 553, 540, 540, 540, 568, 569, 570, 571, 572, 573, 540, 553, 553, 553, 540, 540, 540, 553, 553, 574, 540, 540, 540, 553, 553, 553, 553, 540, 575, 576, 576, 577, 578, 579, 579, 580, 579, 579, 580, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 581, 582, 583, 584, 585, 56, 586, 587, 0, 0, 588, 589, 590, 591, 592, 0, 0, 0, 0, 0, 97, 593, 594, 595, 596, 597, 598, 0, 599, 0, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 0, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 225, 700, 701, 84, 702, 703, 704, 705, 706, 225, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 540, 540, 540, 540, 841, 842, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 0, 0, 522, 1035, 1035, 1036, 1037, 1036, 1035, 0, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 0, 1077, 1078, 0, 0, 0, 0, 0, 0, 553, 540, 540, 540, 540, 553, 540, 540, 540, 1079, 553, 540, 540, 540, 540, 540, 540, 576, 553, 553, 553, 553, 553, 540, 540, 553, 540, 540, 1079, 1080, 540, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1096, 540, 576, 1096, 1099, 0, 0, 0, 0, 0, 0, 0, 0, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 0, 0, 0, 0, 0, 1100, 1100, 1100, 1101, 1102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1103, 1103, 1103, 1103, 0, 0, 84, 84, 1104, 13, 13, 1105, 20, 1106, 87, 87, 577, 577, 577, 577, 577, 577, 1107, 1107, 1108, 1109, 1110, 1111, 0, 0, 1111, 1112, 0, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1120, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1121, 1113, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 576, 540, 540, 577, 577, 577, 576, 577, 577, 0, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 13, 1135, 1136, 1111, 1113, 1113, 1137, 1113, 1113, 1113, 1113, 1138, 1139, 1140, 1141, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1142, 1143, 1144, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1145, 1146, 1112, 1147, 577, 577, 577, 577, 577, 577, 577, 1103, 842, 540, 540, 577, 577, 576, 577, 1148, 1148, 577, 577, 87, 553, 540, 540, 576, 1113, 1113, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 1113, 1113, 1113, 1149, 1149, 1113, 1112, 1112, 1112, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 0, 91, 1113, 1150, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 540, 553, 540, 540, 553, 540, 540, 553, 553, 553, 540, 553, 553, 540, 553, 540, 540, 540, 553, 540, 553, 540, 553, 540, 553, 540, 540, 0, 0, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 540, 540, 540, 540, 540, 540, 540, 553, 540, 1153, 1153, 87, 15, 1154, 11, 1155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1156, 1156, 1157, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 1158, 1159, 351, 351, 351, 351, 351, 351, 1160, 1161, 351, 1162, 1163, 351, 351, 351, 351, 351, 0, 0, 1164, 351, 1157, 1157, 1157, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1157, 1157, 1157, 1157, 1165, 0, 0, 351, 540, 553, 540, 540, 0, 0, 0, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 351, 351, 1156, 1156, 1036, 1036, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1035, 522, 351, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 0, 1156, 1157, 1157, 0, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 351, 351, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 0, 351, 0, 0, 0, 351, 351, 351, 351, 0, 0, 1175, 351, 1176, 1157, 1157, 1156, 1156, 1156, 1156, 0, 0, 1177, 1157, 0, 0, 1178, 1179, 1165, 351, 0, 0, 0, 0, 0, 0, 0, 0, 1180, 0, 0, 0, 0, 1181, 1182, 0, 1183, 351, 351, 1156, 1156, 0, 0, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 351, 351, 14, 14, 1184, 1184, 1184, 1184, 1184, 1184, 840, 0, 0, 0, 0, 0, 0, 1156, 1156, 1157, 0, 351, 351, 351, 351, 351, 351, 0, 0, 0, 0, 351, 351, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 0, 351, 1185, 0, 351, 1186, 0, 351, 351, 0, 0, 1175, 0, 1157, 1157, 1157, 1156, 1156, 0, 0, 0, 0, 1156, 1156, 0, 0, 1156, 1156, 1165, 0, 0, 0, 1187, 0, 0, 0, 0, 0, 0, 0, 1188, 1189, 1190, 351, 0, 1191, 0, 0, 0, 0, 0, 0, 0, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1156, 1156, 351, 351, 351, 1187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1156, 1156, 1157, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 0, 351, 351, 351, 351, 351, 0, 0, 1175, 351, 1157, 1157, 1157, 1156, 1156, 1156, 1156, 1156, 0, 1156, 1156, 1157, 0, 1157, 1157, 1165, 0, 0, 351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 1156, 1156, 0, 0, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1156, 1157, 1157, 0, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 351, 351, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 0, 351, 351, 351, 351, 351, 0, 0, 1175, 351, 1192, 1156, 1157, 1156, 1156, 1156, 1187, 0, 0, 1193, 1194, 0, 0, 1195, 1196, 1165, 0, 0, 0, 0, 0, 0, 0, 0, 1197, 1198, 0, 0, 0, 0, 1199, 1200, 0, 351, 351, 351, 1187, 1187, 0, 0, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 840, 351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1156, 351, 0, 351, 351, 351, 351, 351, 351, 0, 0, 0, 351, 351, 351, 0, 1201, 351, 1202, 351, 0, 0, 0, 351, 351, 0, 351, 0, 351, 351, 0, 0, 0, 351, 351, 0, 0, 0, 351, 351, 351, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 0, 1203, 1157, 1156, 1157, 1157, 0, 0, 0, 1204, 1205, 1157, 0, 1206, 1207, 1208, 1165, 0, 0, 351, 0, 0, 0, 0, 0, 0, 1209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1184, 1184, 1184, 87, 87, 87, 87, 87, 87, 14, 87, 0, 0, 0, 0, 0, 0, 1157, 1157, 1157, 0, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 351, 0, 0, 0, 351, 1156, 1156, 1156, 1157, 1157, 1157, 1157, 0, 1210, 1156, 1211, 0, 1156, 1156, 1156, 1165, 0, 0, 0, 0, 0, 0, 0, 1212, 1213, 0, 351, 351, 0, 0, 0, 0, 0, 0, 351, 351, 1187, 1187, 0, 0, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 0, 0, 0, 0, 0, 0, 0, 0, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 840, 0, 0, 1157, 1157, 0, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 351, 0, 0, 1175, 351, 1157, 1215, 1216, 1157, 1217, 1157, 1157, 0, 1218, 1219, 1220, 0, 1221, 1222, 1156, 1165, 0, 0, 0, 0, 0, 0, 0, 1223, 1224, 0, 0, 0, 0, 0, 0, 0, 351, 0, 351, 351, 1156, 1156, 0, 0, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 0, 87, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1157, 1157, 0, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 351, 1225, 1157, 1157, 1156, 1156, 1156, 1187, 0, 1226, 1227, 1157, 0, 1228, 1229, 1230, 1165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1231, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 1187, 1187, 0, 0, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1184, 1184, 1184, 1184, 1184, 1184, 0, 0, 0, 840, 351, 351, 351, 351, 351, 351, 0, 0, 1157, 1157, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 0, 0, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 1232, 0, 0, 0, 0, 1233, 1157, 1157, 1156, 1156, 1156, 0, 1156, 0, 1157, 1234, 1235, 1157, 1236, 1237, 1238, 1239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1157, 1157, 1035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1156, 1240, 1241, 1156, 1156, 1156, 1156, 1242, 1242, 1243, 0, 0, 0, 0, 14, 1240, 1240, 1240, 1240, 1240, 1240, 1244, 1151, 1245, 1245, 1245, 1245, 1151, 1156, 1151, 1035, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1035, 1035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1240, 1240, 0, 1240, 0, 0, 1240, 1240, 0, 1240, 0, 0, 1240, 0, 0, 0, 0, 0, 0, 1240, 1240, 1240, 1240, 0, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 0, 1240, 1240, 1240, 0, 1240, 0, 1240, 0, 0, 1240, 1240, 0, 1240, 1240, 1240, 1240, 1156, 1240, 1246, 1156, 1156, 1156, 1156, 1247, 1247, 0, 1156, 1156, 1240, 0, 0, 1240, 1240, 1240, 1240, 1240, 0, 1244, 0, 1248, 1248, 1248, 1248, 1151, 1156, 0, 0, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 0, 0, 1249, 1250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 840, 840, 840, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1251, 1035, 1035, 1035, 1035, 1035, 1035, 840, 840, 840, 840, 840, 553, 553, 840, 840, 840, 840, 840, 840, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 840, 553, 840, 553, 840, 1252, 17, 18, 17, 18, 1253, 1253, 351, 351, 351, 1254, 351, 351, 351, 351, 0, 351, 351, 351, 351, 1255, 351, 351, 351, 351, 1256, 351, 351, 351, 351, 1257, 351, 351, 351, 351, 1258, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 1259, 351, 351, 351, 0, 0, 0, 0, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1261, 1261, 1261, 1261, 1156, 1157, 1261, 1269, 540, 540, 1165, 1035, 540, 540, 351, 351, 351, 351, 0, 0, 0, 0, 1156, 1156, 1156, 1270, 1156, 1156, 1156, 1156, 0, 1156, 1156, 1156, 1156, 1271, 1156, 1156, 1156, 1156, 1272, 1156, 1156, 1156, 1156, 1273, 1156, 1156, 1156, 1156, 1274, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1275, 1156, 1156, 1156, 0, 840, 840, 840, 840, 840, 840, 840, 840, 553, 840, 840, 840, 840, 840, 840, 0, 840, 840, 1035, 1035, 1035, 1035, 1035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1276, 1277, 1240, 1240, 1240, 1240, 1157, 1157, 1156, 1278, 1156, 1156, 1157, 1156, 1187, 1187, 1187, 1156, 1175, 1157, 1165, 1279, 1157, 1157, 1187, 1187, 1240, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1036, 1036, 1035, 1035, 1035, 1035, 1240, 1240, 1240, 1240, 1240, 1240, 1157, 1157, 1156, 1156, 1240, 1240, 1240, 1240, 1187, 1187, 1187, 1240, 1157, 1157, 1157, 1240, 1240, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1240, 1240, 1240, 1187, 1187, 1187, 1187, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1187, 1157, 1157, 1187, 1187, 1253, 1253, 1253, 1253, 1253, 1253, 1280, 1240, 1253, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 0, 0, 0, 0, 840, 840, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 1035, 1319, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 0, 0, 1320, 1320, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 0, 0, 351, 351, 351, 351, 351, 351, 351, 0, 351, 0, 351, 351, 351, 351, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 0, 0, 351, 351, 351, 351, 351, 351, 351, 0, 351, 0, 351, 351, 351, 351, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 0, 577, 840, 1035, 1036, 1035, 1035, 1035, 1035, 1036, 1036, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 1035, 1036, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 17, 18, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 1035, 1035, 1035, 1321, 1321, 1321, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 1156, 1156, 1243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 1156, 1156, 1243, 1035, 1035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 1156, 1156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 0, 1156, 1156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1322, 1322, 1157, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1156, 1157, 1157, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1165, 1151, 1035, 1035, 1035, 1244, 1035, 1035, 1035, 14, 1240, 540, 0, 0, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 0, 0, 0, 0, 0, 0, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 0, 0, 0, 0, 0, 0, 15, 15, 1323, 11, 15, 15, 1078, 15, 1323, 11, 15, 574, 574, 574, 10, 0, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 1324, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 1325, 351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 1156, 1156, 1156, 1157, 1157, 1157, 1157, 1156, 1156, 1157, 1157, 1157, 0, 0, 0, 0, 1157, 1157, 1156, 1157, 1157, 1157, 1157, 1157, 1157, 1079, 540, 553, 0, 0, 0, 0, 87, 0, 0, 0, 11, 11, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 0, 0, 1240, 1240, 1240, 1240, 1240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 0, 0, 0, 0, 0, 0, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1157, 1157, 0, 0, 0, 0, 0, 0, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 0, 0, 0, 0, 15, 15, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 577, 576, 1157, 1157, 1157, 0, 0, 1035, 1035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1156, 1156, 1156, 1156, 1157, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 351, 351, 1336, 1337, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 1175, 1338, 1156, 1156, 1156, 1156, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 0, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1036, 1036, 1035, 1035, 1036, 1036, 1035, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 540, 553, 540, 540, 540, 540, 540, 540, 540, 840, 840, 840, 840, 840, 840, 840, 840, 840, 0, 0, 0, 1187, 1187, 1157, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 1157, 1187, 1187, 1187, 1187, 1157, 1157, 1187, 1187, 1349, 0, 0, 0, 351, 351, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1157, 1157, 1350, 1351, 0, 0, 0, 1036, 1036, 1035, 1035, 1035, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 0, 0, 0, 351, 351, 351, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 522, 522, 522, 522, 522, 522, 1036, 1036, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 1352, 1353, 1354, 523, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 523, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 523, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 1412, 1413, 225, 225, 225, 1414, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 577, 577, 576, 577, 540, 540, 540, 540, 540, 540, 553, 841, 841, 1452, 1453, 1280, 1454, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 553, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 225, 225, 1611, 225, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 0, 0, 1730, 1731, 1732, 1733, 1734, 1735, 0, 0, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 0, 0, 1774, 1775, 1776, 1777, 1778, 1779, 0, 0, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 0, 1788, 0, 1789, 0, 1790, 0, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 0, 0, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 0, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 0, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 0, 0, 1904, 1905, 1906, 1907, 1908, 1909, 0, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 0, 0, 1929, 1930, 1931, 0, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 0, 1941, 1942, 1943, 1943, 1943, 1943, 1943, 1944, 1943, 1943, 1943, 91, 1945, 1945, 1322, 1946, 1078, 1947, 1078, 1948, 1948, 1078, 15, 1949, 1950, 1951, 1952, 1953, 1953, 1954, 1952, 1953, 15, 15, 15, 15, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 86, 13, 13, 13, 1966, 1967, 15, 1968, 1969, 15, 90, 103, 15, 1970, 11, 1971, 57, 57, 15, 15, 15, 1972, 17, 18, 1973, 1974, 1975, 15, 15, 15, 15, 15, 15, 15, 15, 84, 15, 57, 15, 15, 1976, 15, 15, 15, 15, 15, 15, 15, 1943, 91, 91, 91, 91, 91, 0, 0, 0, 0, 0, 91, 91, 91, 91, 91, 91, 1977, 1978, 0, 0, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 0, 2006, 2007, 2008, 2009, 2010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 2011, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 577, 577, 2012, 2012, 577, 577, 577, 577, 2012, 2012, 2012, 577, 577, 842, 842, 842, 842, 577, 842, 842, 842, 2012, 2012, 577, 576, 577, 2012, 2012, 576, 576, 576, 576, 1107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2013, 2014, 2015, 2016, 87, 2017, 2018, 2019, 87, 2020, 2021, 2022, 2022, 2022, 2023, 2024, 2025, 2025, 2026, 2027, 87, 2028, 2029, 87, 87, 2030, 2031, 2032, 2032, 2032, 87, 87, 2033, 2034, 2035, 87, 2036, 87, 2037, 87, 2036, 87, 2038, 2039, 2040, 2015, 93, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 87, 2052, 2053, 2054, 2055, 2056, 2057, 84, 84, 84, 84, 2058, 2059, 2041, 2051, 2060, 87, 84, 87, 87, 2061, 840, 0, 0, 0, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 1321, 1321, 1321, 2107, 2108, 1321, 1321, 1321, 1321, 0, 0, 0, 0, 0, 0, 0, 2109, 84, 2110, 84, 2111, 87, 87, 87, 87, 87, 2112, 2113, 87, 87, 87, 87, 84, 87, 87, 84, 87, 87, 84, 87, 87, 87, 87, 87, 87, 87, 2114, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 2115, 2116, 2117, 2118, 87, 2119, 87, 2120, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 2121, 2121, 2122, 2123, 84, 84, 84, 2124, 2125, 2121, 2126, 2127, 2121, 84, 84, 84, 2121, 19, 94, 84, 2121, 2121, 84, 84, 84, 2121, 2121, 2121, 2121, 84, 2121, 2121, 2121, 2121, 2128, 2129, 2130, 2131, 84, 84, 84, 84, 2121, 2132, 2133, 2121, 2134, 2135, 2121, 2121, 2121, 84, 84, 84, 84, 84, 2121, 84, 2121, 2136, 2121, 2121, 2121, 2121, 2137, 2121, 2138, 2139, 2140, 2121, 2141, 2142, 2143, 2121, 2121, 2121, 2144, 84, 84, 84, 84, 2121, 2121, 2121, 2121, 84, 84, 84, 84, 84, 84, 84, 84, 84, 2121, 2145, 2146, 2147, 84, 2148, 2149, 2121, 2121, 2121, 2121, 2121, 2121, 84, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2121, 2121, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2121, 2121, 2121, 84, 84, 2121, 2121, 2177, 2178, 84, 84, 84, 84, 84, 2121, 84, 84, 84, 84, 84, 84, 84, 84, 84, 2179, 2121, 84, 84, 2121, 2121, 2180, 2181, 2121, 2182, 2183, 2184, 2185, 2186, 2121, 2121, 2187, 2188, 2189, 2190, 2121, 2121, 2121, 84, 84, 84, 84, 84, 2121, 2121, 84, 84, 84, 84, 84, 84, 84, 84, 84, 2121, 2121, 2121, 2121, 2121, 84, 84, 2121, 2121, 84, 84, 84, 84, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2191, 2192, 2193, 2194, 2121, 2121, 2121, 2121, 2121, 2121, 2195, 2196, 2197, 2198, 84, 84, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 87, 87, 87, 87, 87, 87, 87, 87, 2121, 2121, 2121, 2121, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 2121, 2121, 87, 87, 87, 87, 87, 87, 87, 2199, 2200, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 87, 84, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 840, 87, 87, 87, 87, 87, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 84, 84, 84, 84, 84, 84, 87, 87, 87, 87, 87, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 84, 87, 87, 87, 87, 87, 87, 87, 87, 87, 84, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 84, 84, 84, 84, 84, 84, 84, 84, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 84, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 0, 0, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 840, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 0, 0, 0, 87, 87, 87, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 87, 87, 87, 0, 87, 87, 87, 87, 0, 0, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 0, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 0, 87, 0, 87, 87, 87, 87, 0, 0, 0, 87, 0, 87, 87, 87, 2340, 2340, 2340, 2340, 0, 0, 87, 87, 87, 87, 87, 87, 87, 17, 18, 17, 18, 17, 18, 17, 18, 17, 18, 17, 18, 17, 18, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 87, 0, 0, 0, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 0, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 0, 2121, 84, 84, 2121, 2121, 17, 18, 84, 2121, 2121, 84, 0, 2121, 0, 0, 0, 84, 84, 84, 2121, 2121, 2121, 2121, 84, 84, 84, 84, 84, 2121, 2121, 2121, 84, 84, 84, 2121, 2121, 2121, 2121, 17, 18, 17, 18, 17, 18, 17, 18, 17, 18, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 17, 18, 17, 18, 17, 18, 17, 18, 17, 18, 17, 18, 17, 18, 17, 18, 17, 18, 17, 18, 17, 18, 84, 84, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 84, 84, 84, 84, 84, 84, 84, 84, 2121, 84, 84, 84, 84, 84, 84, 84, 2121, 2121, 2121, 2121, 2121, 2121, 84, 84, 84, 2121, 84, 84, 84, 84, 2121, 2121, 2121, 2121, 2121, 84, 2121, 2121, 84, 84, 17, 18, 17, 18, 2121, 84, 84, 84, 84, 2121, 84, 2121, 2121, 2121, 84, 84, 2121, 2121, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 2121, 2121, 2121, 2121, 2121, 2121, 84, 84, 17, 18, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 2121, 2121, 2341, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 84, 2121, 2121, 2121, 2121, 84, 84, 2121, 84, 2121, 84, 84, 2121, 84, 2121, 2121, 2121, 2121, 84, 84, 84, 84, 84, 2121, 2121, 84, 84, 84, 84, 84, 84, 2121, 2121, 2121, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 2121, 2121, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 2121, 2121, 84, 84, 84, 84, 2121, 2121, 2121, 2121, 84, 2121, 2121, 84, 84, 2121, 2342, 2343, 2344, 84, 84, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 84, 84, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 84, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 84, 84, 84, 84, 84, 2345, 2346, 2121, 84, 84, 84, 2121, 2121, 2121, 2121, 2121, 84, 84, 84, 84, 84, 2121, 2121, 2121, 84, 84, 84, 84, 2121, 84, 84, 84, 2121, 2121, 2121, 2121, 2121, 84, 2121, 84, 84, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 87, 87, 84, 84, 84, 84, 84, 84, 0, 0, 0, 87, 87, 87, 87, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 0, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 0, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 0, 225, 2457, 2458, 225, 2459, 2460, 225, 225, 225, 225, 225, 2461, 2462, 0, 0, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 225, 87, 87, 87, 87, 87, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 1214, 15, 15, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2601, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 0, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 12, 12, 90, 103, 90, 103, 12, 12, 12, 90, 103, 12, 90, 103, 15, 15, 15, 15, 15, 15, 15, 15, 15, 1078, 15, 15, 1078, 15, 90, 103, 15, 15, 90, 103, 17, 18, 17, 18, 17, 18, 17, 18, 15, 15, 15, 15, 11, 521, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 0, 87, 87, 87, 87, 2602, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 2603, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 0, 0, 0, 0, 2818, 1323, 11, 15, 87, 1324, 1240, 2819, 17, 18, 17, 18, 17, 18, 17, 18, 17, 18, 87, 87, 17, 18, 17, 18, 17, 18, 17, 18, 1078, 1952, 2820, 2820, 87, 2819, 2819, 2819, 2819, 2819, 2819, 2819, 2819, 2819, 2821, 1080, 552, 1079, 2822, 2822, 1078, 2823, 2823, 2823, 2823, 2823, 2824, 87, 2825, 2826, 2827, 1324, 351, 15, 87, 87, 0, 1240, 1240, 1240, 1240, 1240, 2828, 1240, 1240, 1240, 1240, 2829, 2830, 2831, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 1240, 2853, 2854, 2855, 2856, 2857, 2858, 1240, 1240, 1240, 1240, 1240, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 2874, 1240, 1240, 0, 0, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2883, 2883, 2883, 2883, 2884, 2883, 2883, 2883, 2883, 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2883, 2909, 2910, 2911, 2912, 2913, 2914, 2883, 2883, 2883, 2883, 2883, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2930, 2931, 2932, 2933, 2883, 2934, 2883, 2883, 2935, 2936, 2937, 2938, 15, 2939, 2940, 2941, 2942, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2983, 2984, 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034, 3035, 3036, 0, 840, 840, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 0, 0, 0, 0, 0, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3077, 3078, 3079, 3080, 3081, 0, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3118, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3160, 3161, 3162, 3163, 3164, 840, 3165, 3166, 3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291, 0, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3535, 3536, 3537, 3538, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 1324, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 1324, 15, 11, 11, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 351, 351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 3577, 3578, 3579, 0, 0, 3580, 3581, 3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 351, 841, 3592, 3592, 3592, 15, 0, 0, 0, 0, 0, 0, 0, 0, 841, 841, 15, 521, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, 3616, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3617, 3617, 3617, 3617, 3617, 3617, 3617, 3617, 3617, 3617, 3617, 3617, 3617, 3617, 3617, 3617, 3617, 3617, 3617, 3617, 3617, 3617, 3617, 521, 521, 521, 521, 521, 521, 521, 521, 521, 56, 56, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 225, 225, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 3686, 3687, 3688, 3689, 3690, 3691, 3692, 3693, 3694, 225, 225, 225, 225, 225, 225, 225, 225, 3695, 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705, 3706, 3707, 3708, 3709, 521, 3710, 3710, 3711, 3712, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 1187, 351, 351, 351, 1243, 351, 351, 351, 351, 1156, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 1157, 1157, 1156, 1156, 1157, 87, 87, 87, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 15, 15, 11, 11, 0, 0, 0, 0, 0, 0, 0, 0, 1157, 1157, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1036, 1036, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 1187, 1187, 1187, 1187, 1187, 1280, 1280, 1280, 3713, 1036, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1157, 1349, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 1187, 1187, 1187, 1187, 1187, 1187, 1157, 1157, 1187, 1187, 1157, 1157, 1187, 1187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 1187, 351, 351, 351, 351, 351, 351, 351, 351, 1187, 1157, 0, 0, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 0, 0, 1035, 1036, 1036, 1036, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3716, 3717, 3718, 3719, 3720, 3721, 3722, 3723, 3723, 3724, 3725, 3726, 3727, 3728, 3729, 3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 3752, 3753, 3754, 3755, 3756, 3757, 3758, 3759, 3760, 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 3774, 3775, 3776, 3777, 3778, 3779, 3780, 3781, 3782, 3783, 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806, 3735, 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3839, 3840, 3841, 3842, 3843, 3844, 3845, 3846, 3847, 3848, 3849, 3850, 3851, 3852, 3853, 3854, 3855, 3856, 3857, 3858, 3859, 3860, 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3868, 3869, 3870, 3871, 3872, 3873, 3874, 3825, 3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882, 3809, 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 3892, 3893, 3894, 3895, 3896, 3897, 3898, 3899, 3900, 3901, 3902, 3735, 3903, 3904, 3905, 3906, 3907, 3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915, 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3811, 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3949, 3950, 3951, 3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979, 1240, 1240, 3980, 1240, 3981, 1240, 1240, 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 1240, 3992, 1240, 3993, 1240, 1240, 3994, 3995, 1240, 1240, 1240, 3996, 3997, 3998, 3999, 0, 0, 4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4008, 4009, 4010, 4011, 4012, 4013, 4014, 4015, 4016, 4017, 4018, 4019, 4020, 4021, 4022, 4023, 4024, 4025, 4026, 4027, 4028, 4029, 4030, 4031, 4032, 4033, 4034, 4035, 4036, 4037, 4038, 3864, 4039, 4040, 4041, 4042, 4043, 4044, 4044, 4045, 4046, 4047, 4048, 4049, 4050, 4051, 4052, 3994, 4053, 4054, 4055, 0, 0, 0, 0, 0, 4056, 4057, 4058, 4059, 4060, 4061, 4062, 4063, 4006, 4064, 4065, 4066, 3980, 4067, 4068, 4069, 4070, 4071, 4072, 4073, 4074, 4075, 4076, 4077, 4078, 4015, 4079, 4016, 4080, 4081, 4082, 4083, 4084, 3981, 3756, 4085, 4086, 4087, 3826, 3913, 4088, 4089, 4023, 4090, 4024, 4091, 4092, 4093, 3983, 4094, 4095, 4096, 4097, 4098, 3984, 4099, 4100, 4101, 4102, 4103, 4104, 4038, 4105, 4106, 3864, 4107, 4042, 4108, 4109, 4110, 4111, 4112, 4047, 4113, 3993, 4114, 4048, 3807, 4115, 4049, 4116, 4051, 4117, 4118, 4119, 4120, 4121, 4053, 3989, 4122, 4054, 4123, 4055, 4124, 3723, 4125, 4126, 4127, 4128, 4129, 4130, 4131, 4132, 4133, 4134, 4135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4143, 4144, 4145, 4146, 4147, 0, 0, 0, 0, 0, 4148, 4149, 4150, 4151, 4152, 4153, 4154, 4155, 4156, 4157, 4158, 4159, 4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167, 4168, 4169, 4170, 4171, 4172, 4173, 0, 4174, 4175, 4176, 4177, 4178, 0, 4179, 0, 4180, 4181, 0, 4182, 4183, 0, 4184, 4185, 4186, 4187, 4188, 4189, 4190, 4191, 4192, 4193, 4194, 4195, 4196, 4197, 4198, 4199, 4200, 4201, 4202, 4203, 4204, 4205, 4206, 4207, 4208, 4209, 4210, 4211, 4212, 4213, 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4221, 4222, 4223, 4224, 4225, 4226, 4227, 4228, 4229, 4230, 4231, 4232, 4233, 4234, 4235, 4236, 4237, 4238, 4239, 4240, 4241, 4242, 4243, 4244, 4245, 4246, 4247, 4248, 4249, 4250, 4251, 4252, 4253, 4254, 4255, 4256, 4257, 4258, 4259, 4260, 4261, 4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269, 4270, 4271, 4272, 4273, 4274, 4275, 4276, 4277, 4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285, 4286, 4287, 4288, 4289, 4290, 4291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4292, 4293, 4294, 4295, 4296, 4297, 4298, 4299, 4300, 4301, 4302, 4303, 4304, 4305, 4306, 4307, 4308, 4309, 4310, 4311, 4312, 4313, 4314, 4315, 4316, 4317, 4318, 4319, 4320, 4321, 4322, 4323, 4324, 4325, 4326, 4327, 4328, 4329, 4330, 4331, 4332, 4333, 4334, 4335, 4336, 4337, 4338, 4339, 4330, 4340, 4341, 4342, 4343, 4344, 4345, 4346, 4347, 4348, 4349, 4350, 4351, 4352, 4353, 4354, 4355, 4356, 4357, 4358, 4359, 4360, 4361, 4362, 4363, 4364, 4365, 4366, 4367, 4368, 4369, 4370, 4371, 4372, 4373, 4374, 4375, 4376, 4377, 4378, 4379, 4380, 4381, 4382, 4383, 4384, 4385, 4386, 4387, 4388, 4389, 4390, 4391, 4392, 4393, 4394, 4395, 4396, 4397, 4398, 4399, 4400, 4401, 4402, 4403, 4404, 4405, 4406, 4407, 4408, 4409, 4410, 4411, 4412, 4413, 4414, 4415, 4416, 4417, 4418, 4419, 4420, 4421, 4422, 4423, 4424, 4425, 4426, 4427, 4428, 4429, 4430, 4431, 4432, 4433, 4434, 4435, 4436, 4437, 4438, 4439, 4331, 4440, 4441, 4442, 4443, 4444, 4445, 4446, 4447, 4448, 4449, 4450, 4451, 4452, 4453, 4454, 4455, 4456, 4457, 4458, 4459, 4460, 4461, 4462, 4463, 4464, 4465, 4466, 4467, 4468, 4469, 4470, 4471, 4472, 4473, 4474, 4475, 4476, 4477, 4478, 4479, 4480, 4481, 4482, 4483, 4484, 4485, 4486, 4487, 4488, 4489, 4490, 4491, 4492, 4493, 4494, 4495, 4496, 4497, 4498, 4499, 4500, 4501, 4502, 4503, 4504, 4505, 4506, 4507, 4508, 4509, 4510, 4511, 4512, 4513, 4514, 4515, 4516, 4517, 4518, 4519, 4520, 4521, 4522, 4523, 4524, 4525, 4526, 4527, 4528, 4529, 4530, 4531, 4532, 4533, 4534, 4535, 4536, 4537, 4538, 4539, 4540, 4541, 4542, 4543, 4544, 4545, 4546, 4547, 4548, 4549, 4550, 4551, 4552, 4553, 4554, 4555, 4556, 4557, 4558, 4559, 4560, 4561, 4562, 4563, 4564, 4565, 4566, 4567, 4568, 4569, 4570, 4571, 4572, 4573, 4574, 4575, 4576, 4577, 4578, 4579, 4580, 4581, 4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4591, 4592, 4593, 4594, 4595, 4596, 4597, 4598, 4599, 4600, 4601, 4602, 4603, 4604, 4605, 4606, 4607, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4626, 4627, 4628, 4629, 4630, 4631, 4632, 4633, 4634, 4635, 4636, 4637, 4638, 4639, 4640, 4641, 4642, 4643, 4644, 4645, 4646, 4647, 4648, 4649, 4650, 4651, 4652, 1952, 2820, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4653, 4654, 4655, 4656, 4657, 4658, 4659, 4660, 4661, 4662, 4663, 4664, 4665, 4666, 4667, 4668, 4669, 4670, 4671, 4672, 4673, 4674, 4675, 4676, 4677, 4678, 4679, 4680, 4681, 4682, 4683, 4684, 4685, 4686, 4687, 4688, 4689, 4690, 4691, 4692, 4693, 4694, 4695, 4696, 4697, 4698, 4699, 4700, 4701, 4702, 4703, 4704, 4705, 4706, 4707, 4708, 4709, 4710, 4711, 4712, 4713, 4714, 4715, 4716, 0, 0, 4717, 4718, 4719, 4720, 4721, 4722, 4723, 4724, 4725, 4726, 4727, 4728, 4729, 4730, 4731, 4732, 4733, 4734, 4735, 4736, 4737, 4738, 4739, 4740, 4741, 4742, 4743, 4744, 4745, 4746, 4747, 4748, 4749, 4750, 4751, 4752, 4753, 4754, 4755, 4756, 4757, 4758, 4759, 4760, 4761, 4762, 4763, 4764, 4765, 4766, 4767, 4768, 4769, 4770, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4771, 4772, 4773, 4774, 4775, 4776, 4777, 4778, 4779, 4780, 4781, 4782, 4783, 87, 0, 0, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 4784, 4785, 4786, 4787, 4788, 4789, 4790, 4791, 4792, 4793, 0, 0, 0, 0, 0, 0, 540, 540, 540, 540, 841, 841, 841, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4794, 4795, 4796, 4797, 4797, 4798, 4799, 4800, 4801, 4802, 4803, 4804, 4805, 4806, 4807, 4808, 4809, 4810, 4811, 4812, 4813, 15, 15, 4814, 4815, 4816, 4816, 4816, 4816, 4817, 4817, 4817, 4818, 4819, 4820, 0, 4821, 4822, 4823, 4824, 4825, 4826, 4827, 4828, 4829, 4830, 4831, 4832, 4833, 4834, 4835, 4836, 4837, 4838, 4839, 0, 4840, 4841, 4842, 4843, 0, 0, 0, 0, 4844, 4845, 4846, 1113, 4847, 0, 4848, 4849, 4850, 4851, 4852, 4853, 4854, 4855, 4856, 4857, 4858, 4859, 4860, 4861, 4862, 4863, 4864, 4865, 4866, 4867, 4868, 4869, 4870, 4871, 4872, 4873, 4874, 4875, 4876, 4877, 4878, 4879, 4880, 4881, 4882, 4883, 4884, 4885, 4886, 4887, 4888, 4889, 4890, 4891, 4892, 4893, 4894, 4895, 4896, 4897, 4898, 4899, 4900, 4901, 4902, 4903, 4904, 4905, 4906, 4907, 4908, 4909, 4910, 4911, 4912, 4913, 4914, 4915, 4916, 4917, 4918, 4919, 4920, 4921, 4922, 4923, 4924, 4925, 4926, 4927, 4928, 4929, 4930, 4931, 4932, 4933, 4934, 4935, 4936, 4937, 4938, 4939, 4940, 4941, 4942, 4943, 4944, 4945, 4946, 4947, 4948, 4949, 4950, 4951, 4952, 4953, 4954, 4955, 4956, 4957, 4958, 4959, 4960, 4961, 4962, 4963, 4964, 4965, 4966, 4967, 4968, 4969, 4970, 4971, 4972, 4973, 4974, 4975, 4976, 4977, 4978, 4979, 4980, 4981, 4982, 0, 0, 91, 0, 4983, 4984, 4985, 4986, 4987, 4988, 4989, 4990, 4991, 4992, 4993, 4994, 4995, 4996, 4997, 4998, 4999, 5000, 5001, 5002, 5003, 5004, 5005, 5006, 5007, 5008, 5009, 5010, 5011, 5012, 5013, 5014, 5015, 5016, 5017, 5018, 5019, 5020, 5021, 5022, 5023, 5024, 5025, 5026, 5027, 5028, 5029, 5030, 5031, 5032, 5033, 5034, 5035, 5036, 5037, 5038, 5039, 5040, 5041, 5042, 5043, 5044, 5045, 5046, 5047, 5048, 5049, 5050, 5051, 5052, 5053, 5054, 5055, 5056, 5057, 5058, 5059, 5060, 5061, 5062, 5063, 5064, 5065, 5066, 5067, 5068, 5069, 5070, 5071, 5072, 5073, 5074, 5075, 5076, 5077, 5078, 5079, 5080, 5081, 5082, 5083, 5084, 5085, 5086, 5087, 5088, 5089, 5090, 5091, 5092, 5093, 5094, 5095, 5096, 5097, 5098, 5099, 5100, 5101, 5102, 5103, 5104, 5105, 5106, 5107, 5108, 5109, 5110, 5111, 5112, 5113, 5114, 5115, 5116, 5117, 5118, 5119, 5120, 5121, 5122, 5123, 5124, 5125, 5126, 5127, 5128, 5129, 5130, 5131, 5132, 5133, 5134, 5135, 5136, 5137, 5138, 5139, 5140, 5141, 5142, 5143, 5144, 5145, 5146, 5147, 5148, 5149, 5150, 5151, 5152, 5153, 5154, 5155, 5156, 5157, 5158, 5159, 5160, 5161, 5162, 5163, 5164, 5165, 5166, 5167, 5168, 5169, 5170, 5171, 5172, 0, 0, 0, 5173, 5174, 5175, 5176, 5177, 5178, 0, 0, 5179, 5180, 5181, 5182, 5183, 5184, 0, 0, 5185, 5186, 5187, 5188, 5189, 5190, 0, 0, 5191, 5192, 5193, 0, 0, 0, 5194, 5195, 5196, 5197, 5198, 5199, 5200, 0, 5201, 5202, 5203, 5204, 5205, 5206, 5207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5208, 5208, 5208, 87, 87, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 351, 351, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 0, 0, 1035, 15, 840, 0, 0, 0, 0, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 0, 0, 0, 840, 840, 840, 840, 840, 840, 840, 840, 840, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 5209, 1214, 1214, 1214, 1214, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 1214, 0, 0, 0, 0, 0, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 5210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 1184, 1184, 1184, 1184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 1321, 351, 351, 351, 351, 351, 351, 351, 351, 1321, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 1035, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 1035, 1321, 1321, 1321, 1321, 1321, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5211, 5212, 5213, 5214, 5215, 5216, 5217, 5218, 5219, 5220, 5221, 5222, 5223, 5224, 5225, 5226, 5227, 5228, 5229, 5230, 5231, 5232, 5233, 5234, 5235, 5236, 5237, 5238, 5239, 5240, 5241, 5242, 5243, 5244, 5245, 5246, 5247, 5248, 5249, 5250, 5251, 5252, 5253, 5254, 5255, 5256, 5257, 5258, 5259, 5260, 5261, 5262, 5263, 5264, 5265, 5266, 5267, 5268, 5269, 5270, 5271, 5272, 5273, 5274, 5275, 5276, 5277, 5278, 5279, 5280, 5281, 5282, 5283, 5284, 5285, 5286, 5287, 5288, 5289, 5290, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1100, 1100, 1100, 1100, 1100, 1100, 0, 0, 1100, 0, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 0, 1100, 1100, 0, 0, 0, 1100, 0, 0, 1100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 5291, 5291, 5291, 5291, 0, 0, 0, 0, 0, 15, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 0, 0, 0, 0, 0, 1096, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1100, 1156, 1156, 1156, 0, 1156, 1156, 0, 0, 0, 0, 0, 1156, 576, 1156, 577, 1100, 1100, 1100, 1100, 0, 1100, 1100, 1100, 0, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 0, 0, 0, 0, 577, 2012, 576, 0, 0, 0, 0, 1243, 5291, 5291, 5291, 5291, 5291, 5291, 5291, 5291, 0, 0, 0, 0, 0, 0, 0, 0, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1035, 1035, 1035, 1035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 0, 0, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 5292, 5293, 840, 840, 840, 840, 840, 5294, 5295, 5296, 5297, 5298, 5299, 5300, 5301, 5302, 566, 566, 566, 840, 840, 840, 5303, 5304, 5305, 5306, 5307, 5308, 91, 91, 91, 91, 91, 91, 91, 91, 553, 553, 553, 553, 553, 553, 553, 553, 840, 840, 540, 540, 540, 540, 540, 553, 553, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 540, 540, 540, 540, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 5309, 5310, 5311, 5312, 5313, 5314, 5315, 5316, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 577, 577, 577, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5317, 2040, 2015, 2058, 2042, 2043, 5318, 2022, 2025, 5319, 5320, 2026, 2045, 2028, 5321, 2030, 2031, 2032, 5322, 5323, 5324, 5325, 5326, 5327, 5328, 2036, 5329, 5330, 5331, 2059, 2041, 5332, 2021, 2023, 2051, 2060, 5333, 2027, 5334, 5335, 2046, 5336, 5337, 5338, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5317, 2040, 2015, 2058, 2042, 2043, 5318, 2022, 2025, 5319, 5320, 2026, 2045, 2028, 5321, 2030, 2031, 2032, 5322, 5323, 5324, 5325, 5326, 5327, 5328, 2036, 5329, 5330, 5331, 2059, 2041, 5332, 2021, 0, 2051, 2060, 5333, 2027, 5334, 5335, 2046, 5336, 5337, 5338, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5317, 2040, 2015, 2058, 2042, 2043, 5318, 2022, 2025, 5319, 5320, 2026, 2045, 2028, 5321, 2030, 2031, 2032, 5322, 5323, 5324, 5325, 5326, 5327, 5328, 2036, 5329, 5330, 5331, 2059, 2041, 5332, 2021, 2023, 2051, 2060, 5333, 2027, 5334, 5335, 2046, 5336, 5337, 5338, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5317, 0, 2015, 2058, 0, 0, 5318, 0, 0, 5319, 5320, 0, 0, 2028, 5321, 2030, 2031, 0, 5322, 5323, 5324, 5325, 5326, 5327, 5328, 2036, 5329, 5330, 5331, 2059, 0, 5332, 0, 2023, 2051, 2060, 5333, 2027, 5334, 5335, 0, 5336, 5337, 5338, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5317, 2040, 2015, 2058, 2042, 2043, 5318, 2022, 2025, 5319, 5320, 2026, 2045, 2028, 5321, 2030, 2031, 2032, 5322, 5323, 5324, 5325, 5326, 5327, 5328, 2036, 5329, 5330, 5331, 2059, 2041, 5332, 2021, 2023, 2051, 2060, 5333, 2027, 5334, 5335, 2046, 5336, 5337, 5338, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5317, 2040, 0, 2058, 2042, 2043, 5318, 0, 0, 5319, 5320, 2026, 2045, 2028, 5321, 2030, 2031, 0, 5322, 5323, 5324, 5325, 5326, 5327, 5328, 0, 5329, 5330, 5331, 2059, 2041, 5332, 2021, 2023, 2051, 2060, 5333, 2027, 5334, 5335, 2046, 5336, 5337, 5338, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5317, 2040, 0, 2058, 2042, 2043, 5318, 0, 2025, 5319, 5320, 2026, 2045, 0, 5321, 0, 0, 0, 5322, 5323, 5324, 5325, 5326, 5327, 5328, 0, 5329, 5330, 5331, 2059, 2041, 5332, 2021, 2023, 2051, 2060, 5333, 2027, 5334, 5335, 2046, 5336, 5337, 5338, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5317, 2040, 2015, 2058, 2042, 2043, 5318, 2022, 2025, 5319, 5320, 2026, 2045, 2028, 5321, 2030, 2031, 2032, 5322, 5323, 5324, 5325, 5326, 5327, 5328, 2036, 5329, 5330, 5331, 2059, 2041, 5332, 2021, 2023, 2051, 2060, 5333, 2027, 5334, 5335, 2046, 5336, 5337, 5338, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5317, 2040, 2015, 2058, 2042, 2043, 5318, 2022, 2025, 5319, 5320, 2026, 2045, 2028, 5321, 2030, 2031, 2032, 5322, 5323, 5324, 5325, 5326, 5327, 5328, 2036, 5329, 5330, 5331, 2059, 2041, 5332, 2021, 2023, 2051, 2060, 5333, 2027, 5334, 5335, 2046, 5336, 5337, 5338, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5317, 2040, 2015, 2058, 2042, 2043, 5318, 2022, 2025, 5319, 5320, 2026, 2045, 2028, 5321, 2030, 2031, 2032, 5322, 5323, 5324, 5325, 5326, 5327, 5328, 2036, 5329, 5330, 5331, 2059, 2041, 5332, 2021, 2023, 2051, 2060, 5333, 2027, 5334, 5335, 2046, 5336, 5337, 5338, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5317, 2040, 2015, 2058, 2042, 2043, 5318, 2022, 2025, 5319, 5320, 2026, 2045, 2028, 5321, 2030, 2031, 2032, 5322, 5323, 5324, 5325, 5326, 5327, 5328, 2036, 5329, 5330, 5331, 2059, 2041, 5332, 2021, 2023, 2051, 2060, 5333, 2027, 5334, 5335, 2046, 5336, 5337, 5338, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5317, 2040, 2015, 2058, 2042, 2043, 5318, 2022, 2025, 5319, 5320, 2026, 2045, 2028, 5321, 2030, 2031, 2032, 5322, 5323, 5324, 5325, 5326, 5327, 5328, 2036, 5329, 5330, 5331, 2059, 2041, 5332, 2021, 2023, 2051, 2060, 5333, 2027, 5334, 5335, 2046, 5336, 5337, 5338, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5317, 2040, 2015, 2058, 2042, 2043, 5318, 2022, 2025, 5319, 5320, 2026, 2045, 2028, 5321, 2030, 2031, 2032, 5322, 5323, 5324, 5325, 5326, 5327, 5328, 2036, 5329, 5330, 5331, 2059, 2041, 5332, 2021, 2023, 2051, 2060, 5333, 2027, 5334, 5335, 2046, 5336, 5337, 5338, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5347, 5348, 0, 0, 5349, 5350, 2055, 5351, 5352, 5353, 5354, 5355, 5356, 5357, 5358, 5359, 5360, 5361, 5362, 2056, 5363, 5364, 5365, 5366, 5367, 5368, 5369, 5370, 5371, 5372, 5373, 5374, 2054, 5375, 5376, 5377, 5378, 5379, 5380, 5381, 5382, 5383, 5384, 5385, 5386, 2053, 5387, 5388, 5389, 5390, 5391, 5392, 5393, 5394, 5395, 5396, 5397, 5398, 5399, 5400, 5401, 5402, 5349, 5350, 2055, 5351, 5352, 5353, 5354, 5355, 5356, 5357, 5358, 5359, 5360, 5361, 5362, 2056, 5363, 5364, 5365, 5366, 5367, 5368, 5369, 5370, 5371, 5372, 5373, 5374, 2054, 5375, 5376, 5377, 5378, 5379, 5380, 5381, 5382, 5383, 5384, 5385, 5386, 2053, 5387, 5388, 5389, 5390, 5391, 5392, 5393, 5394, 5395, 5396, 5397, 5398, 5399, 5400, 5401, 5402, 5349, 5350, 2055, 5351, 5352, 5353, 5354, 5355, 5356, 5357, 5358, 5359, 5360, 5361, 5362, 2056, 5363, 5364, 5365, 5366, 5367, 5368, 5369, 5370, 5371, 5372, 5373, 5374, 2054, 5375, 5376, 5377, 5378, 5379, 5380, 5381, 5382, 5383, 5384, 5385, 5386, 2053, 5387, 5388, 5389, 5390, 5391, 5392, 5393, 5394, 5395, 5396, 5397, 5398, 5399, 5400, 5401, 5402, 5349, 5350, 2055, 5351, 5352, 5353, 5354, 5355, 5356, 5357, 5358, 5359, 5360, 5361, 5362, 2056, 5363, 5364, 5365, 5366, 5367, 5368, 5369, 5370, 5371, 5372, 5373, 5374, 2054, 5375, 5376, 5377, 5378, 5379, 5380, 5381, 5382, 5383, 5384, 5385, 5386, 2053, 5387, 5388, 5389, 5390, 5391, 5392, 5393, 5394, 5395, 5396, 5397, 5398, 5399, 5400, 5401, 5402, 5349, 5350, 2055, 5351, 5352, 5353, 5354, 5355, 5356, 5357, 5358, 5359, 5360, 5361, 5362, 2056, 5363, 5364, 5365, 5366, 5367, 5368, 5369, 5370, 5371, 5372, 5373, 5374, 2054, 5375, 5376, 5377, 5378, 5379, 5380, 5381, 5382, 5383, 5384, 5385, 5386, 2053, 5387, 5388, 5389, 5390, 5391, 5392, 5393, 5394, 5395, 5396, 5397, 5398, 5399, 5400, 5401, 5402, 5403, 5404, 0, 0, 5405, 5406, 5407, 5408, 5409, 5410, 5411, 5412, 5413, 5414, 5405, 5406, 5407, 5408, 5409, 5410, 5411, 5412, 5413, 5414, 5405, 5406, 5407, 5408, 5409, 5410, 5411, 5412, 5413, 5414, 5405, 5406, 5407, 5408, 5409, 5410, 5411, 5412, 5413, 5414, 5405, 5406, 5407, 5408, 5409, 5410, 5411, 5412, 5413, 5414, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 0, 0, 0, 0, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5415, 5416, 5417, 5418, 5419, 4000, 5420, 5421, 5422, 5423, 4001, 5424, 5425, 5426, 4002, 5427, 5428, 5429, 5430, 5431, 5432, 5433, 5434, 5435, 5436, 5437, 5438, 4057, 5439, 5440, 5441, 5442, 5443, 5444, 5445, 5446, 5447, 4062, 4003, 4004, 4063, 5448, 5449, 3813, 5450, 4005, 5451, 5452, 5453, 5454, 5454, 5454, 5455, 5456, 5457, 5458, 5459, 5460, 5461, 5462, 5463, 5464, 5465, 5466, 5467, 5468, 5469, 5470, 5471, 5472, 5472, 4065, 5473, 5474, 5475, 5476, 4007, 5477, 5478, 5479, 3966, 5480, 5481, 5482, 5483, 5484, 5485, 5486, 5487, 5488, 5489, 5490, 5491, 5492, 5493, 5494, 5495, 5496, 5497, 5498, 5499, 5500, 5501, 5502, 5503, 5504, 5505, 5505, 5506, 5507, 5508, 3809, 5509, 5510, 5511, 5512, 5513, 5514, 5515, 5516, 4012, 5517, 5518, 5519, 5520, 5521, 5522, 5523, 5524, 5525, 5526, 5527, 5528, 5529, 5530, 5531, 5532, 5533, 5534, 5535, 5536, 5537, 3755, 5538, 5539, 5540, 5540, 5541, 5542, 5542, 5543, 5544, 5545, 5546, 5547, 5548, 5549, 5550, 5551, 5552, 5553, 5554, 5555, 4013, 5556, 5557, 5558, 5559, 4077, 5559, 5560, 4015, 5561, 5562, 5563, 5564, 4016, 3728, 5565, 5566, 5567, 5568, 5569, 5570, 5571, 5572, 5573, 5574, 5575, 5576, 5577, 5578, 5579, 5580, 5581, 5582, 5583, 5584, 5585, 5586, 4017, 5587, 5588, 5589, 5590, 5591, 5592, 4019, 5593, 5594, 5595, 5596, 5597, 5598, 5599, 5600, 3756, 4085, 5601, 5602, 5603, 5604, 5605, 5606, 5607, 5608, 4020, 5609, 5610, 5611, 5612, 4128, 5613, 5614, 5615, 5616, 5617, 5618, 5619, 5620, 5621, 5622, 5623, 5624, 5625, 3826, 5626, 5627, 5628, 5629, 5630, 5631, 5632, 5633, 5634, 5635, 5636, 4021, 3913, 5637, 5638, 5639, 5640, 5641, 5642, 5643, 5644, 4089, 5645, 5646, 5647, 5648, 5649, 5650, 5651, 5652, 4090, 5653, 5654, 5655, 5656, 5657, 5658, 5659, 5660, 5661, 5662, 5663, 5664, 4092, 5665, 5666, 5667, 5668, 5669, 5670, 5671, 5672, 5673, 5674, 5675, 5675, 5676, 5677, 4094, 5678, 5679, 5680, 5681, 5682, 5683, 5684, 3812, 5685, 5686, 5687, 5688, 5689, 5690, 5691, 4100, 5692, 5693, 5694, 5695, 5696, 5697, 5697, 4101, 4130, 5698, 5699, 5700, 5701, 5702, 3774, 4103, 5703, 5704, 4032, 5705, 5706, 3988, 5707, 5708, 4036, 5709, 5710, 5711, 5712, 5712, 5713, 5714, 5715, 5716, 5717, 5718, 5719, 5720, 5721, 5722, 5723, 5724, 5725, 5726, 5727, 5728, 5729, 5730, 5731, 5732, 5733, 5734, 5735, 5736, 5737, 5738, 5739, 4042, 5740, 5741, 5742, 5743, 5744, 5745, 5746, 5747, 5748, 5749, 5750, 5751, 5752, 5753, 5754, 5755, 5541, 5756, 5757, 5758, 5759, 5760, 5761, 5762, 5763, 5764, 5765, 5766, 5767, 3830, 5768, 5769, 5770, 5771, 5772, 5773, 4045, 5774, 5775, 5776, 5777, 5778, 5779, 5780, 5781, 5782, 5783, 5784, 5785, 5786, 5787, 5788, 5789, 5790, 5791, 5792, 5793, 3769, 5794, 5795, 5796, 5797, 5798, 5799, 4110, 5800, 5801, 5802, 5803, 5804, 5805, 5806, 5807, 5808, 5809, 5810, 5811, 5812, 5813, 5814, 5815, 5816, 5817, 5818, 5819, 4115, 4116, 5820, 5821, 5822, 5823, 5824, 5825, 5826, 5827, 5828, 5829, 5830, 5831, 5832, 4117, 5833, 5834, 5835, 5836, 5837, 5838, 5839, 5840, 5841, 5842, 5843, 5844, 5845, 5846, 5847, 5848, 5849, 5850, 5851, 5852, 5853, 5854, 5855, 5856, 5857, 5858, 5859, 5860, 5861, 5862, 4123, 4123, 5863, 5864, 5865, 5866, 5867, 5868, 5869, 5870, 5871, 5872, 4124, 5873, 5874, 5875, 5876, 5877, 5878, 5879, 5880, 5881, 5882, 5883, 5884, 5885, 5886, 5887, 5888, 5889, 5890, 5891, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 0, 0, }; const utf8proc_property_t utf8proc_properties[] = { {0, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false}, {UTF8PROC_CATEGORY_CC, 0, UTF8PROC_BIDI_CLASS_BN, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, true, true, false, false, true, false}, {UTF8PROC_CATEGORY_CC, 0, UTF8PROC_BIDI_CLASS_BN, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, true, true, false, false, false, false}, {UTF8PROC_CATEGORY_CC, 0, UTF8PROC_BIDI_CLASS_S, 0, 0, 0, 0, 0, -1, -1, 0, 0, 4,false, false, true, false, false, false, false}, {UTF8PROC_CATEGORY_CC, 0, UTF8PROC_BIDI_CLASS_B, 0, 0, 0, 0, 0, -1, -1, 0, 2, 2,false, false, true, false, false, false, false}, {UTF8PROC_CATEGORY_CC, 0, UTF8PROC_BIDI_CLASS_S, 0, 0, 0, 0, 0, -1, -1, 0, 3, 4,false, false, true, false, false, false, false}, {UTF8PROC_CATEGORY_CC, 0, UTF8PROC_BIDI_CLASS_WS, 0, 0, 0, 0, 0, -1, -1, 0, 3, 4,false, false, true, false, false, false, false}, {UTF8PROC_CATEGORY_CC, 0, UTF8PROC_BIDI_CLASS_B, 0, 0, 0, 0, 0, -1, -1, 0, 1, 1,false, false, true, false, false, false, false}, {UTF8PROC_CATEGORY_CC, 0, UTF8PROC_BIDI_CLASS_B, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, true, true, false, false, false, false}, {UTF8PROC_CATEGORY_CC, 0, UTF8PROC_BIDI_CLASS_S, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, true, true, false, false, false, false}, {UTF8PROC_CATEGORY_ZS, 0, UTF8PROC_BIDI_CLASS_WS, 0, 0, 0, 0, 0, -1, -1, 0, 0, 4,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 0, 10,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ET, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SC, 0, UTF8PROC_BIDI_CLASS_ET, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 8, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ES, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_CS, 0, 0, 0, 0, 0, -1, -1, 0, 7, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PD, 0, UTF8PROC_BIDI_CLASS_ES, 0, 0, 0, 0, 0, -1, -1, 0, 0, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_CS, 0, 0, 0, 0, 0, -1, -1, 0, 8, 9,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_CS, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, 0, 0, 0, 0, 0, -1, -1, 0, 9, 8,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_CS, 0, 0, 0, 0, 0, -1, -1, 0, 6, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 7, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 17580, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 17400, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 17640, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 97, 0, 0, -1, 97, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 98, 0, 8640, -1, 98, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 99, 0, 60, -1, 99, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 100, 0, 960, -1, 100, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 101, 0, 120, -1, 101, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 102, 0, 9120, -1, 102, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 103, 0, 1080, -1, 103, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 104, 0, 1200, -1, 104, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 105, 0, 180, -1, 105, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 106, 0, 1320, -1, 106, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 107, 0, 1440, -1, 107, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 108, 0, 1560, -1, 108, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 109, 0, 9480, -1, 109, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 110, 0, 240, -1, 110, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 111, 0, 300, -1, 111, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 112, 0, 9720, -1, 112, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 113, 0, -1, -1, 113, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 114, 0, 1680, -1, 114, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 115, 0, 1800, -1, 115, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 116, 0, 1920, -1, 116, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 117, 0, 360, -1, 117, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 118, 0, 10560, -1, 118, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 119, 0, 2040, -1, 119, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 120, 0, 10680, -1, 120, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 121, 0, 420, -1, 121, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 122, 0, 2160, -1, 122, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_PC, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 10, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 65, 0, 65, 480, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66, 0, 66, 8700, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 67, 0, 67, 540, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 68, 0, 68, 1020, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 69, 0, 69, 600, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 70, 0, 70, 9180, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 71, 0, 71, 1140, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 72, 0, 72, 1260, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 73, 0, 73, 660, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 74, 0, 74, 1380, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 75, 0, 75, 1500, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 76, 0, 76, 1620, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 77, 0, 77, 9540, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 78, 0, 78, 720, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 79, 0, 79, 780, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 80, 0, 80, 9780, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 81, 0, 81, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 82, 0, 82, 1740, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 83, 0, 83, 1860, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 84, 0, 84, 1980, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 85, 0, 85, 840, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 86, 0, 86, 10620, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 87, 0, 87, 2100, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 88, 0, 88, 10740, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 89, 0, 89, 900, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 90, 0, 90, 2220, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_CC, 0, UTF8PROC_BIDI_CLASS_B, 0, 0, 0, 0, 0, -1, -1, 0, 3, 3,false, false, true, false, false, false, false}, {UTF8PROC_CATEGORY_ZS, 0, UTF8PROC_BIDI_CLASS_CS, UTF8PROC_DECOMP_TYPE_NOBREAK, 32, 0, 0, 0, -1, -1, 0, 0, 4,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -2, 0, 0, 0, 3600, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 97, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PI, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_BN, 0, 0, 0, 0, 0, -1, -1, 0, 11, 13,false, true, true, false, false, false, false}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -5, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ET, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ET, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUPER, 50, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUPER, 51, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -8, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 956, 924, 0, 924, -1, -1, 956, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 6, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -11, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUPER, 49, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 111, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PF, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, -14, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, -18, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, -22, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -26, 0, 224, 0, -1, -1, 224, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -29, 0, 225, 0, -1, -1, 225, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -32, 0, 226, 0, 10860, -1, 226, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -35, 0, 227, 0, -1, -1, 227, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -38, 0, 228, 0, 2400, -1, 228, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -41, 0, 229, 0, 3000, -1, 229, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 230, 0, 2640, -1, 230, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -44, 0, 231, 0, 8760, -1, 231, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -47, 0, 232, 0, -1, -1, 232, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -50, 0, 233, 0, -1, -1, 233, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -53, 0, 234, 0, 11220, -1, 234, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -56, 0, 235, 0, -1, -1, 235, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -59, 0, 236, 0, -1, -1, 236, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -62, 0, 237, 0, -1, -1, 237, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -65, 0, 238, 0, -1, -1, 238, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -68, 0, 239, 0, 9240, -1, 239, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 240, 0, -1, -1, 240, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -71, 0, 241, 0, -1, -1, 241, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -74, 0, 242, 0, -1, -1, 242, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -77, 0, 243, 0, -1, -1, 243, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -80, 0, 244, 0, 11460, -1, 244, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -83, 0, 245, 0, 3360, -1, 245, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -86, 0, 246, 0, 3240, -1, 246, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 248, 0, 3120, -1, 248, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -89, 0, 249, 0, -1, -1, 249, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -92, 0, 250, 0, -1, -1, 250, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -95, 0, 251, 0, -1, -1, 251, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -98, 0, 252, 0, 2280, -1, 252, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -101, 0, 253, 0, -1, -1, 253, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 254, 0, -1, -1, 254, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, -104, -107, -109, -1, -1, -112, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -115, 192, 0, 192, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -118, 193, 0, 193, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -121, 194, 0, 194, 10920, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -124, 195, 0, 195, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -127, 196, 0, 196, 2460, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -130, 197, 0, 197, 3060, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 198, 0, 198, 2700, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -133, 199, 0, 199, 8820, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -136, 200, 0, 200, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -139, 201, 0, 201, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -142, 202, 0, 202, 11280, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -145, 203, 0, 203, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -148, 204, 0, 204, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -151, 205, 0, 205, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -154, 206, 0, 206, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -157, 207, 0, 207, 9300, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 208, 0, 208, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -160, 209, 0, 209, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -163, 210, 0, 210, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -166, 211, 0, 211, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -169, 212, 0, 212, 11520, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -172, 213, 0, 213, 3420, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -175, 214, 0, 214, 3300, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 216, 0, 216, 3180, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -178, 217, 0, 217, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -181, 218, 0, 218, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -184, 219, 0, 219, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -187, 220, 0, 220, 2340, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -190, 221, 0, 221, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 222, 0, 222, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -193, 376, 0, 376, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -196, 0, 257, 0, -1, -1, 257, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -199, 256, 0, 256, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -202, 0, 259, 0, 11100, -1, 259, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -205, 258, 0, 258, 11160, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -208, 0, 261, 0, -1, -1, 261, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -211, 260, 0, 260, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -214, 0, 263, 0, -1, -1, 263, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -217, 262, 0, 262, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -220, 0, 265, 0, -1, -1, 265, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -223, 264, 0, 264, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -226, 0, 267, 0, -1, -1, 267, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -229, 266, 0, 266, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -232, 0, 269, 0, -1, -1, 269, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -235, 268, 0, 268, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -238, 0, 271, 0, -1, -1, 271, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -241, 270, 0, 270, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 273, 0, -1, -1, 273, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 272, 0, 272, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -244, 0, 275, 0, 8880, -1, 275, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -247, 274, 0, 274, 8940, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -250, 0, 277, 0, -1, -1, 277, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -253, 276, 0, 276, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -256, 0, 279, 0, -1, -1, 279, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -259, 278, 0, 278, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -262, 0, 281, 0, -1, -1, 281, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -265, 280, 0, 280, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -268, 0, 283, 0, -1, -1, 283, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -271, 282, 0, 282, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -274, 0, 285, 0, -1, -1, 285, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -277, 284, 0, 284, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -280, 0, 287, 0, -1, -1, 287, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -283, 286, 0, 286, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -286, 0, 289, 0, -1, -1, 289, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -289, 288, 0, 288, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -292, 0, 291, 0, -1, -1, 291, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -295, 290, 0, 290, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -298, 0, 293, 0, -1, -1, 293, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -301, 292, 0, 292, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 295, 0, -1, -1, 295, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 294, 0, 294, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -304, 0, 297, 0, -1, -1, 297, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -307, 296, 0, 296, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -310, 0, 299, 0, -1, -1, 299, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -313, 298, 0, 298, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -316, 0, 301, 0, -1, -1, 301, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -319, 300, 0, 300, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -322, 0, 303, 0, -1, -1, 303, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -325, 302, 0, 302, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -328, -331, -333, -331, -1, -1, -333, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 73, 0, 73, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -336, 0, 307, 0, -1, -1, 307, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -339, 306, 0, 306, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -342, 0, 309, 0, -1, -1, 309, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -345, 308, 0, 308, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -348, 0, 311, 0, -1, -1, 311, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -351, 310, 0, 310, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -354, 0, 314, 0, -1, -1, 314, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -357, 313, 0, 313, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -360, 0, 316, 0, -1, -1, 316, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -363, 315, 0, 315, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -366, 0, 318, 0, -1, -1, 318, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -369, 317, 0, 317, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -372, 0, 320, 0, -1, -1, 320, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -375, 319, 0, 319, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 322, 0, -1, -1, 322, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 321, 0, 321, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -378, 0, 324, 0, -1, -1, 324, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -381, 323, 0, 323, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -384, 0, 326, 0, -1, -1, 326, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -387, 325, 0, 325, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -390, 0, 328, 0, -1, -1, 328, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -393, 327, 0, 327, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -396, -399, -402, -399, -1, -1, -396, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 331, 0, -1, -1, 331, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 330, 0, 330, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -404, 0, 333, 0, 9600, -1, 333, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -407, 332, 0, 332, 9660, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -410, 0, 335, 0, -1, -1, 335, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -413, 334, 0, 334, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -416, 0, 337, 0, -1, -1, 337, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -419, 336, 0, 336, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 339, 0, -1, -1, 339, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 338, 0, 338, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -422, 0, 341, 0, -1, -1, 341, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -425, 340, 0, 340, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -428, 0, 343, 0, -1, -1, 343, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -431, 342, 0, 342, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -434, 0, 345, 0, -1, -1, 345, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -437, 344, 0, 344, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -440, 0, 347, 0, 9960, -1, 347, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -443, 346, 0, 346, 10020, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -446, 0, 349, 0, -1, -1, 349, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -449, 348, 0, 348, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -452, 0, 351, 0, -1, -1, 351, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -455, 350, 0, 350, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -458, 0, 353, 0, 10080, -1, 353, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -461, 352, 0, 352, 10140, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -464, 0, 355, 0, -1, -1, 355, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -467, 354, 0, 354, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -470, 0, 357, 0, -1, -1, 357, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -473, 356, 0, 356, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 359, 0, -1, -1, 359, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 358, 0, 358, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -476, 0, 361, 0, 10320, -1, 361, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -479, 360, 0, 360, 10380, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -482, 0, 363, 0, 10440, -1, 363, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -485, 362, 0, 362, 10500, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -488, 0, 365, 0, -1, -1, 365, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -491, 364, 0, 364, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -494, 0, 367, 0, -1, -1, 367, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -497, 366, 0, 366, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -500, 0, 369, 0, -1, -1, 369, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -503, 368, 0, 368, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -506, 0, 371, 0, -1, -1, 371, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -509, 370, 0, 370, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -512, 0, 373, 0, -1, -1, 373, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -515, 372, 0, 372, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -518, 0, 375, 0, -1, -1, 375, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -521, 374, 0, 374, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -524, 0, 255, 0, -1, -1, 255, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -527, 0, 378, 0, -1, -1, 378, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -530, 377, 0, 377, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -533, 0, 380, 0, -1, -1, 380, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -536, 379, 0, 379, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -539, 0, 382, 0, -1, -1, 382, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -542, 381, 0, 381, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 115, 83, 0, 83, 10800, -1, 115, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 579, 0, 579, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 595, 0, -1, -1, 595, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 387, 0, -1, -1, 387, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 386, 0, 386, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 389, 0, -1, -1, 389, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 388, 0, 388, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 596, 0, -1, -1, 596, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 392, 0, -1, -1, 392, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 391, 0, 391, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 598, 0, -1, -1, 598, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 599, 0, -1, -1, 599, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 396, 0, -1, -1, 396, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 395, 0, 395, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 477, 0, -1, -1, 477, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 601, 0, -1, -1, 601, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 603, 0, -1, -1, 603, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 402, 0, -1, -1, 402, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 401, 0, 401, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 608, 0, -1, -1, 608, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 611, 0, -1, -1, 611, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 502, 0, 502, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 617, 0, -1, -1, 617, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 616, 0, -1, -1, 616, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 409, 0, -1, -1, 409, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 408, 0, 408, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 573, 0, 573, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 623, 0, -1, -1, 623, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 626, 0, -1, -1, 626, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 544, 0, 544, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 629, 0, -1, -1, 629, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -545, 0, 417, 0, 11700, -1, 417, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -548, 416, 0, 416, 11760, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 419, 0, -1, -1, 419, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 418, 0, 418, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 421, 0, -1, -1, 421, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 420, 0, 420, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 640, 0, -1, -1, 640, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 424, 0, -1, -1, 424, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 423, 0, 423, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 643, 0, -1, -1, 643, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 429, 0, -1, -1, 429, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 428, 0, 428, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 648, 0, -1, -1, 648, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -551, 0, 432, 0, 11820, -1, 432, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -554, 431, 0, 431, 11880, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 650, 0, -1, -1, 650, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 651, 0, -1, -1, 651, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 436, 0, -1, -1, 436, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 435, 0, 435, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 438, 0, -1, -1, 438, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 437, 0, 437, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 658, 0, 2880, -1, 658, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 441, 0, -1, -1, 441, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 440, 0, 440, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 445, 0, -1, -1, 445, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 444, 0, 444, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 503, 0, 503, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -557, 0, 454, 453, -1, -1, 454, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -560, 452, 454, 453, -1, -1, 454, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -563, 452, 0, 453, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -566, 0, 457, 456, -1, -1, 457, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -569, 455, 457, 456, -1, -1, 457, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -572, 455, 0, 456, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -575, 0, 460, 459, -1, -1, 460, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -578, 458, 460, 459, -1, -1, 460, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -581, 458, 0, 459, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -584, 0, 462, 0, -1, -1, 462, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -587, 461, 0, 461, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -590, 0, 464, 0, -1, -1, 464, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -593, 463, 0, 463, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -596, 0, 466, 0, -1, -1, 466, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -599, 465, 0, 465, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -602, 0, 468, 0, -1, -1, 468, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -605, 467, 0, 467, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -608, 0, 470, 0, -1, -1, 470, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -611, 469, 0, 469, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -614, 0, 472, 0, -1, -1, 472, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -617, 471, 0, 471, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -620, 0, 474, 0, -1, -1, 474, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -623, 473, 0, 473, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -626, 0, 476, 0, -1, -1, 476, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -629, 475, 0, 475, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 398, 0, 398, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -632, 0, 479, 0, -1, -1, 479, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -635, 478, 0, 478, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -638, 0, 481, 0, -1, -1, 481, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -641, 480, 0, 480, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -644, 0, 483, 0, -1, -1, 483, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -647, 482, 0, 482, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 485, 0, -1, -1, 485, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 484, 0, 484, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -650, 0, 487, 0, -1, -1, 487, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -653, 486, 0, 486, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -656, 0, 489, 0, -1, -1, 489, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -659, 488, 0, 488, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -662, 0, 491, 0, 2760, -1, 491, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -665, 490, 0, 490, 2820, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -668, 0, 493, 0, -1, -1, 493, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -671, 492, 0, 492, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -674, 0, 495, 0, -1, -1, 495, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -677, 494, 0, 494, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -680, -683, -686, -683, -1, -1, -680, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -688, 0, 499, 498, -1, -1, 499, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -691, 497, 499, 498, -1, -1, 499, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -694, 497, 0, 498, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -697, 0, 501, 0, -1, -1, 501, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -700, 500, 0, 500, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 405, 0, -1, -1, 405, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 447, 0, -1, -1, 447, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -703, 0, 505, 0, -1, -1, 505, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -706, 504, 0, 504, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -709, 0, 507, 0, -1, -1, 507, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -712, 506, 0, 506, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -715, 0, 509, 0, -1, -1, 509, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -718, 508, 0, 508, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -721, 0, 511, 0, -1, -1, 511, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -724, 510, 0, 510, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -727, 0, 513, 0, -1, -1, 513, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -730, 512, 0, 512, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -733, 0, 515, 0, -1, -1, 515, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -736, 514, 0, 514, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -739, 0, 517, 0, -1, -1, 517, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -742, 516, 0, 516, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -745, 0, 519, 0, -1, -1, 519, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -748, 518, 0, 518, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -751, 0, 521, 0, -1, -1, 521, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -754, 520, 0, 520, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -757, 0, 523, 0, -1, -1, 523, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -760, 522, 0, 522, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -763, 0, 525, 0, -1, -1, 525, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -766, 524, 0, 524, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -769, 0, 527, 0, -1, -1, 527, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -772, 526, 0, 526, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -775, 0, 529, 0, -1, -1, 529, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -778, 528, 0, 528, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -781, 0, 531, 0, -1, -1, 531, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -784, 530, 0, 530, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -787, 0, 533, 0, -1, -1, 533, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -790, 532, 0, 532, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -793, 0, 535, 0, -1, -1, 535, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -796, 534, 0, 534, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -799, 0, 537, 0, -1, -1, 537, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -802, 536, 0, 536, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -805, 0, 539, 0, -1, -1, 539, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -808, 538, 0, 538, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 541, 0, -1, -1, 541, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 540, 0, 540, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -811, 0, 543, 0, -1, -1, 543, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -814, 542, 0, 542, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 414, 0, -1, -1, 414, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 547, 0, -1, -1, 547, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 546, 0, 546, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 549, 0, -1, -1, 549, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 548, 0, 548, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -817, 0, 551, 0, 2520, -1, 551, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -820, 550, 0, 550, 2580, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -823, 0, 553, 0, 9000, -1, 553, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -826, 552, 0, 552, 9060, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -829, 0, 555, 0, -1, -1, 555, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -832, 554, 0, 554, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -835, 0, 557, 0, -1, -1, 557, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -838, 556, 0, 556, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -841, 0, 559, 0, 3480, -1, 559, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -844, 558, 0, 558, 3540, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -847, 0, 561, 0, -1, -1, 561, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -850, 560, 0, 560, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -853, 0, 563, 0, -1, -1, 563, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -856, 562, 0, 562, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11365, 0, -1, -1, 11365, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 572, 0, -1, -1, 572, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 571, 0, 571, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 410, 0, -1, -1, 410, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11366, 0, -1, -1, 11366, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 578, 0, -1, -1, 578, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 577, 0, 577, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 384, 0, -1, -1, 384, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 649, 0, -1, -1, 649, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 652, 0, -1, -1, 652, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 583, 0, -1, -1, 583, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 582, 0, 582, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 585, 0, -1, -1, 585, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 584, 0, 584, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 587, 0, -1, -1, 587, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 586, 0, 586, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 589, 0, -1, -1, 589, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 588, 0, 588, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 591, 0, -1, -1, 591, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 590, 0, 590, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11375, 0, 11375, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11373, 0, 11373, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 385, 0, 385, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 390, 0, 390, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 393, 0, 393, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 394, 0, 394, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 399, 0, 399, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 400, 0, 400, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 403, 0, 403, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 404, 0, 404, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 407, 0, 407, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 406, 0, 406, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11362, 0, 11362, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 412, 0, 412, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11374, 0, 11374, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 413, 0, 413, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 415, 0, 415, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11364, 0, 11364, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 422, 0, 422, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 425, 0, 425, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 430, 0, 430, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 580, 0, 580, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 433, 0, 433, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 434, 0, 434, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 581, 0, 581, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 439, 0, 439, 2940, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 104, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 614, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 106, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 114, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 633, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 635, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 641, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 119, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 121, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -859, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -862, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -865, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -868, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -871, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -874, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 611, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 108, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 115, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 120, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 661, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 0, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 2, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 3, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 7, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 8, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 10, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 4, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 46, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 5, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 12, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 11, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 14, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 15, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 47, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 48, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 232, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 220, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 216, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 13, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 202, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 220, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 40, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 220, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 45, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 220, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 39, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 220, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 16, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 202, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 6, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 202, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 9, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 220, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 42, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 220, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 44, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 220, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 43, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 220, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 41, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 1, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 1, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 51, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 768, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 769, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 49, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 787, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, -877, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 240, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 921, 0, 921, -1, 50, 953, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, true, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 232, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 220, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 233, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 234, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 233, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 881, 0, -1, -1, 881, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 880, 0, 880, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 883, 0, -1, -1, 883, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 882, 0, 882, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 697, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 887, 0, -1, -1, 887, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 886, 0, 886, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -880, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1021, 0, 1021, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1022, 0, 1022, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1023, 0, 1023, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, 0, 59, 0, 0, 0, -1, -1, 0, 7, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, -883, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -886, 0, 940, 0, -1, -1, 940, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, 0, 183, 0, 0, 0, -1, -1, 0, 6, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -889, 0, 941, 0, -1, -1, 941, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -892, 0, 942, 0, -1, -1, 942, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -895, 0, 943, 0, -1, -1, 943, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -898, 0, 972, 0, -1, -1, 972, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -901, 0, 973, 0, -1, -1, 973, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -904, 0, 974, 0, -1, -1, 974, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -907, -910, -914, -910, -1, -1, -916, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 945, 0, 3660, -1, 945, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 946, 0, -1, -1, 946, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 947, 0, -1, -1, 947, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 948, 0, -1, -1, 948, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 949, 0, 3720, -1, 949, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 950, 0, -1, -1, 950, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 951, 0, 3780, -1, 951, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 952, 0, -1, -1, 952, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 953, 0, 3840, -1, 953, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 954, 0, -1, -1, 954, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 955, 0, -1, -1, 955, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 956, 0, -1, -1, 956, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 957, 0, -1, -1, 957, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 958, 0, -1, -1, 958, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 959, 0, 3900, -1, 959, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 960, 0, -1, -1, 960, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 961, 0, 16260, -1, 961, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 963, 0, -1, -1, 963, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 964, 0, -1, -1, 964, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 965, 0, 3960, -1, 965, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 966, 0, -1, -1, 966, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 967, 0, -1, -1, 967, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 968, 0, -1, -1, 968, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 969, 0, 4020, -1, 969, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -920, 0, 970, 0, -1, -1, 970, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -923, 0, 971, 0, -1, -1, 971, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -926, 902, 0, 902, 15780, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -929, 904, 0, 904, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -932, 905, 0, 905, 15960, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -935, 906, 0, 906, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -938, -941, -945, -941, -1, -1, -947, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 913, 0, 913, 4140, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 914, 0, 914, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 915, 0, 915, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 916, 0, 916, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 917, 0, 917, 4200, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 918, 0, 918, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 919, 0, 919, 4260, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 920, 0, 920, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 921, 0, 921, 4320, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 922, 0, 922, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 923, 0, 923, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 924, 0, 924, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 925, 0, 925, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 926, 0, 926, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 927, 0, 927, 4500, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 928, 0, 928, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 929, 0, 929, 16200, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 931, 0, 931, -1, -1, 963, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 931, 0, 931, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 932, 0, 932, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 933, 0, 933, 4440, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 934, 0, 934, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 935, 0, 935, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 936, 0, 936, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 937, 0, 937, 4560, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -951, 938, 0, 938, 4080, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -954, 939, 0, 939, 4380, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -957, 908, 0, 908, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -960, 910, 0, 910, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -963, 911, 0, 911, 16380, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 983, 0, -1, -1, 983, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 946, 914, 0, 914, -1, -1, 946, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 952, 920, 0, 920, -1, -1, 952, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 933, 0, 0, 0, 4620, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -966, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -969, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 966, 934, 0, 934, -1, -1, 966, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 960, 928, 0, 928, -1, -1, 960, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 975, 0, 975, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 985, 0, -1, -1, 985, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 984, 0, 984, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 987, 0, -1, -1, 987, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 986, 0, 986, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 989, 0, -1, -1, 989, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 988, 0, 988, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 991, 0, -1, -1, 991, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 990, 0, 990, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 993, 0, -1, -1, 993, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 992, 0, 992, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 995, 0, -1, -1, 995, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 994, 0, 994, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 997, 0, -1, -1, 997, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 996, 0, 996, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 999, 0, -1, -1, 999, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 998, 0, 998, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1001, 0, -1, -1, 1001, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1000, 0, 1000, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1003, 0, -1, -1, 1003, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1002, 0, 1002, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1005, 0, -1, -1, 1005, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1004, 0, 1004, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1007, 0, -1, -1, 1007, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1006, 0, 1006, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 954, 922, 0, 922, -1, -1, 954, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 961, 929, 0, 929, -1, -1, 961, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 962, 1017, 0, 1017, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 920, 0, 952, 0, -1, -1, 952, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 949, 917, 0, 917, -1, -1, 949, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1016, 0, -1, -1, 1016, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1015, 0, 1015, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 931, 0, 1010, 0, -1, -1, 1010, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1019, 0, -1, -1, 1019, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1018, 0, 1018, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 891, 0, -1, -1, 891, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 892, 0, -1, -1, 892, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 893, 0, -1, -1, 893, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -972, 0, 1104, 0, -1, -1, 1104, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -975, 0, 1105, 0, -1, -1, 1105, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1106, 0, -1, -1, 1106, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -978, 0, 1107, 0, -1, -1, 1107, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1108, 0, -1, -1, 1108, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1109, 0, -1, -1, 1109, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1110, 0, 4800, -1, 1110, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -981, 0, 1111, 0, -1, -1, 1111, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1112, 0, -1, -1, 1112, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1113, 0, -1, -1, 1113, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1114, 0, -1, -1, 1114, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1115, 0, -1, -1, 1115, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -984, 0, 1116, 0, -1, -1, 1116, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -987, 0, 1117, 0, -1, -1, 1117, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -990, 0, 1118, 0, -1, -1, 1118, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1119, 0, -1, -1, 1119, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1072, 0, 5640, -1, 1072, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1073, 0, -1, -1, 1073, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1074, 0, -1, -1, 1074, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1075, 0, 4740, -1, 1075, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1076, 0, -1, -1, 1076, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1077, 0, 4680, -1, 1077, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1078, 0, 5520, -1, 1078, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1079, 0, 5880, -1, 1079, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1080, 0, 4920, -1, 1080, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -993, 0, 1081, 0, -1, -1, 1081, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1082, 0, 4860, -1, 1082, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1083, 0, -1, -1, 1083, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1084, 0, -1, -1, 1084, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1085, 0, -1, -1, 1085, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1086, 0, 6000, -1, 1086, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1087, 0, -1, -1, 1087, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1088, 0, -1, -1, 1088, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1089, 0, -1, -1, 1089, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1090, 0, -1, -1, 1090, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1091, 0, 4980, -1, 1091, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1092, 0, -1, -1, 1092, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1093, 0, -1, -1, 1093, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1094, 0, -1, -1, 1094, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1095, 0, 6360, -1, 1095, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1096, 0, -1, -1, 1096, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1097, 0, -1, -1, 1097, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1098, 0, -1, -1, 1098, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1099, 0, 6480, -1, 1099, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1100, 0, -1, -1, 1100, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1101, 0, 6240, -1, 1101, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1102, 0, -1, -1, 1102, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1103, 0, -1, -1, 1103, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1040, 0, 1040, 5700, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1041, 0, 1041, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1042, 0, 1042, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1043, 0, 1043, 5160, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1044, 0, 1044, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1045, 0, 1045, 5100, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1046, 0, 1046, 5580, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1047, 0, 1047, 5940, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1048, 0, 1048, 5040, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -996, 1049, 0, 1049, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1050, 0, 1050, 5280, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1051, 0, 1051, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1052, 0, 1052, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1053, 0, 1053, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1054, 0, 1054, 6060, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1055, 0, 1055, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1056, 0, 1056, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1057, 0, 1057, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1058, 0, 1058, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1059, 0, 1059, 5340, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1060, 0, 1060, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1061, 0, 1061, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1062, 0, 1062, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1063, 0, 1063, 6420, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1064, 0, 1064, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1065, 0, 1065, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1066, 0, 1066, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1067, 0, 1067, 6540, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1068, 0, 1068, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1069, 0, 1069, 6300, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1070, 0, 1070, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1071, 0, 1071, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -999, 1024, 0, 1024, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1002, 1025, 0, 1025, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1026, 0, 1026, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1005, 1027, 0, 1027, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1028, 0, 1028, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1029, 0, 1029, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1030, 0, 1030, 5220, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1008, 1031, 0, 1031, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1032, 0, 1032, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1033, 0, 1033, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1034, 0, 1034, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1035, 0, 1035, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1011, 1036, 0, 1036, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1014, 1037, 0, 1037, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1017, 1038, 0, 1038, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1039, 0, 1039, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1121, 0, -1, -1, 1121, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1120, 0, 1120, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1123, 0, -1, -1, 1123, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1122, 0, 1122, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1125, 0, -1, -1, 1125, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1124, 0, 1124, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1127, 0, -1, -1, 1127, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1126, 0, 1126, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1129, 0, -1, -1, 1129, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1128, 0, 1128, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1131, 0, -1, -1, 1131, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1130, 0, 1130, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1133, 0, -1, -1, 1133, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1132, 0, 1132, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1135, 0, -1, -1, 1135, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1134, 0, 1134, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1137, 0, -1, -1, 1137, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1136, 0, 1136, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1139, 0, -1, -1, 1139, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1138, 0, 1138, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1141, 0, 5400, -1, 1141, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1140, 0, 1140, 5460, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1020, 0, 1143, 0, -1, -1, 1143, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1023, 1142, 0, 1142, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1145, 0, -1, -1, 1145, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1144, 0, 1144, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1147, 0, -1, -1, 1147, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1146, 0, 1146, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1149, 0, -1, -1, 1149, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1148, 0, 1148, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1151, 0, -1, -1, 1151, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1150, 0, 1150, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1153, 0, -1, -1, 1153, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1152, 0, 1152, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_ME, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1163, 0, -1, -1, 1163, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1162, 0, 1162, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1165, 0, -1, -1, 1165, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1164, 0, 1164, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1167, 0, -1, -1, 1167, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1166, 0, 1166, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1169, 0, -1, -1, 1169, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1168, 0, 1168, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1171, 0, -1, -1, 1171, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1170, 0, 1170, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1173, 0, -1, -1, 1173, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1172, 0, 1172, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1175, 0, -1, -1, 1175, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1174, 0, 1174, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1177, 0, -1, -1, 1177, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1176, 0, 1176, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1179, 0, -1, -1, 1179, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1178, 0, 1178, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1181, 0, -1, -1, 1181, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1180, 0, 1180, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1183, 0, -1, -1, 1183, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1182, 0, 1182, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1185, 0, -1, -1, 1185, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1184, 0, 1184, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1187, 0, -1, -1, 1187, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1186, 0, 1186, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1189, 0, -1, -1, 1189, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1188, 0, 1188, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1191, 0, -1, -1, 1191, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1190, 0, 1190, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1193, 0, -1, -1, 1193, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1192, 0, 1192, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1195, 0, -1, -1, 1195, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1194, 0, 1194, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1197, 0, -1, -1, 1197, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1196, 0, 1196, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1199, 0, -1, -1, 1199, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1198, 0, 1198, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1201, 0, -1, -1, 1201, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1200, 0, 1200, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1203, 0, -1, -1, 1203, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1202, 0, 1202, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1205, 0, -1, -1, 1205, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1204, 0, 1204, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1207, 0, -1, -1, 1207, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1206, 0, 1206, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1209, 0, -1, -1, 1209, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1208, 0, 1208, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1211, 0, -1, -1, 1211, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1210, 0, 1210, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1213, 0, -1, -1, 1213, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1212, 0, 1212, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1215, 0, -1, -1, 1215, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1214, 0, 1214, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1231, 0, -1, -1, 1231, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1026, 0, 1218, 0, -1, -1, 1218, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1029, 1217, 0, 1217, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1220, 0, -1, -1, 1220, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1219, 0, 1219, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1222, 0, -1, -1, 1222, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1221, 0, 1221, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1224, 0, -1, -1, 1224, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1223, 0, 1223, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1226, 0, -1, -1, 1226, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1225, 0, 1225, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1228, 0, -1, -1, 1228, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1227, 0, 1227, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1230, 0, -1, -1, 1230, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1229, 0, 1229, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1216, 0, 1216, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1032, 0, 1233, 0, -1, -1, 1233, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1035, 1232, 0, 1232, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1038, 0, 1235, 0, -1, -1, 1235, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1041, 1234, 0, 1234, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1237, 0, -1, -1, 1237, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1236, 0, 1236, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1044, 0, 1239, 0, -1, -1, 1239, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1047, 1238, 0, 1238, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1241, 0, 5760, -1, 1241, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1240, 0, 1240, 5820, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1050, 0, 1243, 0, -1, -1, 1243, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1053, 1242, 0, 1242, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1056, 0, 1245, 0, -1, -1, 1245, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1059, 1244, 0, 1244, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1062, 0, 1247, 0, -1, -1, 1247, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1065, 1246, 0, 1246, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1249, 0, -1, -1, 1249, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1248, 0, 1248, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1068, 0, 1251, 0, -1, -1, 1251, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1071, 1250, 0, 1250, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1074, 0, 1253, 0, -1, -1, 1253, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1077, 1252, 0, 1252, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1080, 0, 1255, 0, -1, -1, 1255, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1083, 1254, 0, 1254, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1257, 0, 6120, -1, 1257, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1256, 0, 1256, 6180, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1086, 0, 1259, 0, -1, -1, 1259, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1089, 1258, 0, 1258, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1092, 0, 1261, 0, -1, -1, 1261, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1095, 1260, 0, 1260, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1098, 0, 1263, 0, -1, -1, 1263, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1101, 1262, 0, 1262, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1104, 0, 1265, 0, -1, -1, 1265, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1107, 1264, 0, 1264, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1110, 0, 1267, 0, -1, -1, 1267, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1113, 1266, 0, 1266, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1116, 0, 1269, 0, -1, -1, 1269, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1119, 1268, 0, 1268, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1271, 0, -1, -1, 1271, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1270, 0, 1270, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1122, 0, 1273, 0, -1, -1, 1273, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1125, 1272, 0, 1272, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1275, 0, -1, -1, 1275, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1274, 0, 1274, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1277, 0, -1, -1, 1277, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1276, 0, 1276, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1279, 0, -1, -1, 1279, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1278, 0, 1278, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1281, 0, -1, -1, 1281, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1280, 0, 1280, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1283, 0, -1, -1, 1283, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1282, 0, 1282, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1285, 0, -1, -1, 1285, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1284, 0, 1284, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1287, 0, -1, -1, 1287, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1286, 0, 1286, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1289, 0, -1, -1, 1289, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1288, 0, 1288, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1291, 0, -1, -1, 1291, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1290, 0, 1290, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1293, 0, -1, -1, 1293, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1292, 0, 1292, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1295, 0, -1, -1, 1295, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1294, 0, 1294, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1297, 0, -1, -1, 1297, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1296, 0, 1296, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1299, 0, -1, -1, 1299, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1298, 0, 1298, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1301, 0, -1, -1, 1301, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1300, 0, 1300, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1303, 0, -1, -1, 1303, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1302, 0, 1302, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1305, 0, -1, -1, 1305, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1304, 0, 1304, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1307, 0, -1, -1, 1307, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1306, 0, 1306, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1309, 0, -1, -1, 1309, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1308, 0, 1308, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1311, 0, -1, -1, 1311, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1310, 0, 1310, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1313, 0, -1, -1, 1313, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1312, 0, 1312, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1315, 0, -1, -1, 1315, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1314, 0, 1314, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1377, 0, -1, -1, 1377, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1378, 0, -1, -1, 1378, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1379, 0, -1, -1, 1379, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1380, 0, -1, -1, 1380, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1381, 0, -1, -1, 1381, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1382, 0, -1, -1, 1382, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1383, 0, -1, -1, 1383, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1384, 0, -1, -1, 1384, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1385, 0, -1, -1, 1385, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1386, 0, -1, -1, 1386, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1387, 0, -1, -1, 1387, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1388, 0, -1, -1, 1388, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1389, 0, -1, -1, 1389, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1390, 0, -1, -1, 1390, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1391, 0, -1, -1, 1391, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1392, 0, -1, -1, 1392, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1393, 0, -1, -1, 1393, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1394, 0, -1, -1, 1394, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1395, 0, -1, -1, 1395, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1396, 0, -1, -1, 1396, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1397, 0, -1, -1, 1397, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1398, 0, -1, -1, 1398, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1399, 0, -1, -1, 1399, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1400, 0, -1, -1, 1400, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1401, 0, -1, -1, 1401, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1402, 0, -1, -1, 1402, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1403, 0, -1, -1, 1403, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1404, 0, -1, -1, 1404, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1405, 0, -1, -1, 1405, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1406, 0, -1, -1, 1406, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1407, 0, -1, -1, 1407, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1408, 0, -1, -1, 1408, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1409, 0, -1, -1, 1409, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1410, 0, -1, -1, 1410, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1411, 0, -1, -1, 1411, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1412, 0, -1, -1, 1412, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1413, 0, -1, -1, 1413, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 1414, 0, -1, -1, 1414, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 0, 10,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 0, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1329, 0, 1329, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1330, 0, 1330, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1331, 0, 1331, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1332, 0, 1332, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1333, 0, 1333, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1334, 0, 1334, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1335, 0, 1335, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1336, 0, 1336, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1337, 0, 1337, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1338, 0, 1338, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1339, 0, 1339, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1340, 0, 1340, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1341, 0, 1341, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1342, 0, 1342, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1343, 0, 1343, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1344, 0, 1344, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1345, 0, 1345, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1346, 0, 1346, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1347, 0, 1347, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1348, 0, 1348, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1349, 0, 1349, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1350, 0, 1350, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1351, 0, 1351, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1352, 0, 1352, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1353, 0, 1353, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1354, 0, 1354, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1355, 0, 1355, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1356, 0, 1356, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1357, 0, 1357, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1358, 0, 1358, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1359, 0, 1359, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1360, 0, 1360, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1361, 0, 1361, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1362, 0, 1362, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1363, 0, 1363, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1364, 0, 1364, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1365, 0, 1365, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 1366, 0, 1366, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -1128, -1131, -1134, -1136, -1, -1, -1128, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 7, 10,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PD, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 222, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 228, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 10, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 11, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 12, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 13, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 14, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 15, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 16, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 17, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 18, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 19, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 20, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 21, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 22, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_PD, 0, UTF8PROC_BIDI_CLASS_R, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 23, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_R, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 24, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 25, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 18, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, 0, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_R, 0, 0, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_R, 0, 0, 0, 0, 0, -1, -1, 0, 6, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_AN, 0, 0, 0, 0, 0, -1, -1, 0, 11, 13,false, true, true, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_AL, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SC, 0, UTF8PROC_BIDI_CLASS_AL, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_AL, 0, 0, 0, 0, 0, -1, -1, 0, 7, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 30, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 31, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 32, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_AL, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_AL, 0, 0, 0, 0, 0, -1, -1, 0, 0, 10,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, 0, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, -1139, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, -1142, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, -1145, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, -1148, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, -1151, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, 0, 0, 0, 0, 6600, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_AL, 0, 0, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, 0, 0, 0, 0, 6660, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, 0, 0, 0, 0, 6720, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 27, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 28, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 29, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 30, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 31, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 32, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 33, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 34, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 17, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 230, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 18, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 220, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 19, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_AN, 0, 0, 0, 0, 0, -1, -1, 0, 9, 8,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_AN, 0, 0, 0, 0, 0, -1, -1, 0, 9, 8,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_AN, 0, 0, 0, 0, 0, -1, -1, 0, 7, 8,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 35, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_COMPAT, -1154, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_COMPAT, -1157, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_COMPAT, -1160, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_COMPAT, -1163, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, -1166, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, 0, 0, 0, 0, 6840, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, -1169, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, 0, 0, 0, 0, 6900, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, -1172, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, 0, 0, 0, 0, 0, 6780, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_AL, 0, 0, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_AL, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 36, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_R, 0, 0, 0, 0, 0, -1, -1, 0, 9, 8,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_R, 0, 0, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 7, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_R, 0, 0, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 6960, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1175, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 7020, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1178, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 7080, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1181, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 7, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 20, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 9, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1184, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1187, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1190, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1193, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1196, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1199, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1202, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1205, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 9, 8,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 7, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, 21, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 7140, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1208, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1211, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, 22, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1214, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1217, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1220, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1223, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1226, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1229, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1232, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1235, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1238, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, 24, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 7200, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1241, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1244, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1247, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 23, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, 25, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1250, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1253, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 7260, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1256, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, 27, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 7320, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 7380, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1259, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1262, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1265, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, 26, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, 7440, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, -1268, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 84, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 91, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 28, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 7500, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1271, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, 31, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 7560, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1274, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1277, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1280, 0, 0, 0, 7620, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1283, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, 29, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, 30, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, 32, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 7680, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 7740, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1286, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1289, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1292, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, 33, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 9, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 34, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, 35, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 7800, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1295, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1298, 0, 0, 0, 7860, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1301, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1304, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, 36, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -1307, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 103, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 9, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 107, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -1310, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 118, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 122, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -1313, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -1316, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NOBREAK, 3851, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 216, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1319, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1322, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1325, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1328, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1331, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1334, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 129, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 130, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, -1337, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 132, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, -1340, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, -1343, 0, 0, 0, -1, -1, 0, 12, 14,true, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, UTF8PROC_DECOMP_TYPE_COMPAT, -1346, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, -1349, 0, 0, 0, -1, -1, 0, 12, 14,true, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, UTF8PROC_DECOMP_TYPE_COMPAT, -1352, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, -1355, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, -1358, 0, 0, 0, -1, -1, 0, 12, 14,true, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, -1361, 0, 0, 0, -1, -1, 0, 12, 14,true, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, -1364, 0, 0, 0, -1, -1, 0, 12, 14,true, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, -1367, 0, 0, 0, -1, -1, 0, 12, 14,true, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, -1370, 0, 0, 0, -1, -1, 0, 12, 14,true, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, -1373, 0, 0, 0, -1, -1, 0, 12, 14,true, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 7920, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1376, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 37, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MN, 9, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_MN, 220, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11520, 0, -1, -1, 11520, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11521, 0, -1, -1, 11521, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11522, 0, -1, -1, 11522, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11523, 0, -1, -1, 11523, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11524, 0, -1, -1, 11524, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11525, 0, -1, -1, 11525, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11526, 0, -1, -1, 11526, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11527, 0, -1, -1, 11527, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11528, 0, -1, -1, 11528, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11529, 0, -1, -1, 11529, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11530, 0, -1, -1, 11530, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11531, 0, -1, -1, 11531, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11532, 0, -1, -1, 11532, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11533, 0, -1, -1, 11533, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11534, 0, -1, -1, 11534, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11535, 0, -1, -1, 11535, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11536, 0, -1, -1, 11536, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11537, 0, -1, -1, 11537, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11538, 0, -1, -1, 11538, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11539, 0, -1, -1, 11539, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11540, 0, -1, -1, 11540, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11541, 0, -1, -1, 11541, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11542, 0, -1, -1, 11542, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11543, 0, -1, -1, 11543, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11544, 0, -1, -1, 11544, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11545, 0, -1, -1, 11545, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11546, 0, -1, -1, 11546, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11547, 0, -1, -1, 11547, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11548, 0, -1, -1, 11548, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11549, 0, -1, -1, 11549, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11550, 0, -1, -1, 11550, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11551, 0, -1, -1, 11551, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11552, 0, -1, -1, 11552, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11553, 0, -1, -1, 11553, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11554, 0, -1, -1, 11554, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11555, 0, -1, -1, 11555, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11556, 0, -1, -1, 11556, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11557, 0, -1, -1, 11557, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 4316, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 5, 7,false, true, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 11, 13,false, true, true, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 0, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 228, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 7980, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1379, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 8040, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1382, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 8100, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1385, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 8160, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1388, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 8220, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1391, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 8280, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -1394, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, 38, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, 8340, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1397, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, 8400, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1400, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 8460, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 8520, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1403, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1406, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, 8580, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MC, 0, UTF8PROC_BIDI_CLASS_L, 0, -1409, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 9, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_MN, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_MN, 7, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 65, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 198, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 66, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 68, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 69, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 398, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 71, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 72, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 73, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 74, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 75, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 76, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 77, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 78, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 79, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 546, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 80, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 82, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 84, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 85, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 87, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 97, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 592, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 593, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 7426, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 98, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 100, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 101, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 601, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 603, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 604, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 103, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 107, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 109, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 331, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 111, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 596, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 7446, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 7447, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 112, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 116, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 117, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 7453, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 623, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 118, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 7461, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 946, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 947, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 948, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 966, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 967, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 105, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 114, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 117, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 118, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 946, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 947, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 961, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 966, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 967, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 1085, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42877, 0, 42877, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11363, 0, 11363, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 594, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 99, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 597, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 240, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 604, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 102, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 607, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 609, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 613, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 616, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 617, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 618, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 7547, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 669, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 621, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 7557, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 671, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 625, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 624, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 626, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 627, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 628, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 629, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 632, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 642, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 643, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 427, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 649, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 650, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 7452, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 651, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 652, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 122, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 656, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 657, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 658, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 952, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 234, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_MN, 214, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_MN, 202, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1412, 0, 7681, 0, -1, -1, 7681, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1415, 7680, 0, 7680, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1418, 0, 7683, 0, -1, -1, 7683, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1421, 7682, 0, 7682, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1424, 0, 7685, 0, -1, -1, 7685, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1427, 7684, 0, 7684, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1430, 0, 7687, 0, -1, -1, 7687, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1433, 7686, 0, 7686, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1436, 0, 7689, 0, -1, -1, 7689, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1439, 7688, 0, 7688, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1442, 0, 7691, 0, -1, -1, 7691, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1445, 7690, 0, 7690, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1448, 0, 7693, 0, -1, -1, 7693, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1451, 7692, 0, 7692, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1454, 0, 7695, 0, -1, -1, 7695, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1457, 7694, 0, 7694, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1460, 0, 7697, 0, -1, -1, 7697, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1463, 7696, 0, 7696, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1466, 0, 7699, 0, -1, -1, 7699, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1469, 7698, 0, 7698, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1472, 0, 7701, 0, -1, -1, 7701, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1475, 7700, 0, 7700, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1478, 0, 7703, 0, -1, -1, 7703, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1481, 7702, 0, 7702, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1484, 0, 7705, 0, -1, -1, 7705, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1487, 7704, 0, 7704, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1490, 0, 7707, 0, -1, -1, 7707, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1493, 7706, 0, 7706, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1496, 0, 7709, 0, -1, -1, 7709, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1499, 7708, 0, 7708, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1502, 0, 7711, 0, -1, -1, 7711, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1505, 7710, 0, 7710, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1508, 0, 7713, 0, -1, -1, 7713, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1511, 7712, 0, 7712, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1514, 0, 7715, 0, -1, -1, 7715, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1517, 7714, 0, 7714, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1520, 0, 7717, 0, -1, -1, 7717, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1523, 7716, 0, 7716, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1526, 0, 7719, 0, -1, -1, 7719, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1529, 7718, 0, 7718, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1532, 0, 7721, 0, -1, -1, 7721, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1535, 7720, 0, 7720, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1538, 0, 7723, 0, -1, -1, 7723, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1541, 7722, 0, 7722, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1544, 0, 7725, 0, -1, -1, 7725, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1547, 7724, 0, 7724, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1550, 0, 7727, 0, -1, -1, 7727, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1553, 7726, 0, 7726, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1556, 0, 7729, 0, -1, -1, 7729, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1559, 7728, 0, 7728, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1562, 0, 7731, 0, -1, -1, 7731, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1565, 7730, 0, 7730, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1568, 0, 7733, 0, -1, -1, 7733, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1571, 7732, 0, 7732, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1574, 0, 7735, 0, 9360, -1, 7735, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1577, 7734, 0, 7734, 9420, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1580, 0, 7737, 0, -1, -1, 7737, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1583, 7736, 0, 7736, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1586, 0, 7739, 0, -1, -1, 7739, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1589, 7738, 0, 7738, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1592, 0, 7741, 0, -1, -1, 7741, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1595, 7740, 0, 7740, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1598, 0, 7743, 0, -1, -1, 7743, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1601, 7742, 0, 7742, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1604, 0, 7745, 0, -1, -1, 7745, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1607, 7744, 0, 7744, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1610, 0, 7747, 0, -1, -1, 7747, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1613, 7746, 0, 7746, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1616, 0, 7749, 0, -1, -1, 7749, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1619, 7748, 0, 7748, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1622, 0, 7751, 0, -1, -1, 7751, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1625, 7750, 0, 7750, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1628, 0, 7753, 0, -1, -1, 7753, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1631, 7752, 0, 7752, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1634, 0, 7755, 0, -1, -1, 7755, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1637, 7754, 0, 7754, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1640, 0, 7757, 0, -1, -1, 7757, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1643, 7756, 0, 7756, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1646, 0, 7759, 0, -1, -1, 7759, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1649, 7758, 0, 7758, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1652, 0, 7761, 0, -1, -1, 7761, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1655, 7760, 0, 7760, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1658, 0, 7763, 0, -1, -1, 7763, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1661, 7762, 0, 7762, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1664, 0, 7765, 0, -1, -1, 7765, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1667, 7764, 0, 7764, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1670, 0, 7767, 0, -1, -1, 7767, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1673, 7766, 0, 7766, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1676, 0, 7769, 0, -1, -1, 7769, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1679, 7768, 0, 7768, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1682, 0, 7771, 0, 9840, -1, 7771, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1685, 7770, 0, 7770, 9900, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1688, 0, 7773, 0, -1, -1, 7773, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1691, 7772, 0, 7772, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1694, 0, 7775, 0, -1, -1, 7775, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1697, 7774, 0, 7774, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1700, 0, 7777, 0, -1, -1, 7777, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1703, 7776, 0, 7776, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1706, 0, 7779, 0, 10200, -1, 7779, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1709, 7778, 0, 7778, 10260, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1712, 0, 7781, 0, -1, -1, 7781, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1715, 7780, 0, 7780, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1718, 0, 7783, 0, -1, -1, 7783, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1721, 7782, 0, 7782, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1724, 0, 7785, 0, -1, -1, 7785, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1727, 7784, 0, 7784, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1730, 0, 7787, 0, -1, -1, 7787, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1733, 7786, 0, 7786, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1736, 0, 7789, 0, -1, -1, 7789, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1739, 7788, 0, 7788, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1742, 0, 7791, 0, -1, -1, 7791, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1745, 7790, 0, 7790, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1748, 0, 7793, 0, -1, -1, 7793, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1751, 7792, 0, 7792, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1754, 0, 7795, 0, -1, -1, 7795, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1757, 7794, 0, 7794, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1760, 0, 7797, 0, -1, -1, 7797, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1763, 7796, 0, 7796, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1766, 0, 7799, 0, -1, -1, 7799, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1769, 7798, 0, 7798, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1772, 0, 7801, 0, -1, -1, 7801, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1775, 7800, 0, 7800, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1778, 0, 7803, 0, -1, -1, 7803, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1781, 7802, 0, 7802, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1784, 0, 7805, 0, -1, -1, 7805, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1787, 7804, 0, 7804, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1790, 0, 7807, 0, -1, -1, 7807, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1793, 7806, 0, 7806, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1796, 0, 7809, 0, -1, -1, 7809, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1799, 7808, 0, 7808, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1802, 0, 7811, 0, -1, -1, 7811, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1805, 7810, 0, 7810, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1808, 0, 7813, 0, -1, -1, 7813, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1811, 7812, 0, 7812, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1814, 0, 7815, 0, -1, -1, 7815, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1817, 7814, 0, 7814, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1820, 0, 7817, 0, -1, -1, 7817, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1823, 7816, 0, 7816, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1826, 0, 7819, 0, -1, -1, 7819, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1829, 7818, 0, 7818, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1832, 0, 7821, 0, -1, -1, 7821, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1835, 7820, 0, 7820, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1838, 0, 7823, 0, -1, -1, 7823, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1841, 7822, 0, 7822, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1844, 0, 7825, 0, -1, -1, 7825, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1847, 7824, 0, 7824, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1850, 0, 7827, 0, -1, -1, 7827, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1853, 7826, 0, 7826, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1856, 0, 7829, 0, -1, -1, 7829, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1859, 7828, 0, 7828, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1862, -1865, -1868, -1865, -1, -1, -1862, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1870, -1873, -1876, -1873, -1, -1, -1870, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1878, -1881, -1884, -1881, -1, -1, -1878, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1886, -1889, -1892, -1889, -1, -1, -1886, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -1894, -1897, -1900, -1897, -1, -1, -1894, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1902, 7776, 0, 7776, -1, -1, 7777, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 223, 0, -1, -1, -112, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1905, 0, 7841, 0, 10980, -1, 7841, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1908, 7840, 0, 7840, 11040, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1911, 0, 7843, 0, -1, -1, 7843, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1914, 7842, 0, 7842, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1917, 0, 7845, 0, -1, -1, 7845, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1920, 7844, 0, 7844, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1923, 0, 7847, 0, -1, -1, 7847, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1926, 7846, 0, 7846, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1929, 0, 7849, 0, -1, -1, 7849, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1932, 7848, 0, 7848, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1935, 0, 7851, 0, -1, -1, 7851, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1938, 7850, 0, 7850, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1941, 0, 7853, 0, -1, -1, 7853, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1944, 7852, 0, 7852, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1947, 0, 7855, 0, -1, -1, 7855, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1950, 7854, 0, 7854, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1953, 0, 7857, 0, -1, -1, 7857, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1956, 7856, 0, 7856, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1959, 0, 7859, 0, -1, -1, 7859, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1962, 7858, 0, 7858, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1965, 0, 7861, 0, -1, -1, 7861, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1968, 7860, 0, 7860, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1971, 0, 7863, 0, -1, -1, 7863, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1974, 7862, 0, 7862, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1977, 0, 7865, 0, 11340, -1, 7865, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1980, 7864, 0, 7864, 11400, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1983, 0, 7867, 0, -1, -1, 7867, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1986, 7866, 0, 7866, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1989, 0, 7869, 0, -1, -1, 7869, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1992, 7868, 0, 7868, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -1995, 0, 7871, 0, -1, -1, 7871, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -1998, 7870, 0, 7870, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2001, 0, 7873, 0, -1, -1, 7873, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2004, 7872, 0, 7872, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2007, 0, 7875, 0, -1, -1, 7875, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2010, 7874, 0, 7874, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2013, 0, 7877, 0, -1, -1, 7877, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2016, 7876, 0, 7876, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2019, 0, 7879, 0, -1, -1, 7879, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2022, 7878, 0, 7878, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2025, 0, 7881, 0, -1, -1, 7881, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2028, 7880, 0, 7880, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2031, 0, 7883, 0, -1, -1, 7883, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2034, 7882, 0, 7882, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2037, 0, 7885, 0, 11580, -1, 7885, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2040, 7884, 0, 7884, 11640, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2043, 0, 7887, 0, -1, -1, 7887, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2046, 7886, 0, 7886, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2049, 0, 7889, 0, -1, -1, 7889, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2052, 7888, 0, 7888, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2055, 0, 7891, 0, -1, -1, 7891, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2058, 7890, 0, 7890, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2061, 0, 7893, 0, -1, -1, 7893, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2064, 7892, 0, 7892, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2067, 0, 7895, 0, -1, -1, 7895, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2070, 7894, 0, 7894, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2073, 0, 7897, 0, -1, -1, 7897, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2076, 7896, 0, 7896, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2079, 0, 7899, 0, -1, -1, 7899, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2082, 7898, 0, 7898, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2085, 0, 7901, 0, -1, -1, 7901, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2088, 7900, 0, 7900, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2091, 0, 7903, 0, -1, -1, 7903, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2094, 7902, 0, 7902, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2097, 0, 7905, 0, -1, -1, 7905, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2100, 7904, 0, 7904, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2103, 0, 7907, 0, -1, -1, 7907, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2106, 7906, 0, 7906, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2109, 0, 7909, 0, -1, -1, 7909, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2112, 7908, 0, 7908, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2115, 0, 7911, 0, -1, -1, 7911, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2118, 7910, 0, 7910, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2121, 0, 7913, 0, -1, -1, 7913, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2124, 7912, 0, 7912, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2127, 0, 7915, 0, -1, -1, 7915, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2130, 7914, 0, 7914, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2133, 0, 7917, 0, -1, -1, 7917, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2136, 7916, 0, 7916, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2139, 0, 7919, 0, -1, -1, 7919, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2142, 7918, 0, 7918, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2145, 0, 7921, 0, -1, -1, 7921, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2148, 7920, 0, 7920, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2151, 0, 7923, 0, -1, -1, 7923, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2154, 7922, 0, 7922, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2157, 0, 7925, 0, -1, -1, 7925, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2160, 7924, 0, 7924, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2163, 0, 7927, 0, -1, -1, 7927, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2166, 7926, 0, 7926, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2169, 0, 7929, 0, -1, -1, 7929, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2172, 7928, 0, 7928, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 7931, 0, -1, -1, 7931, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 7930, 0, 7930, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 7933, 0, -1, -1, 7933, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 7932, 0, 7932, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 7935, 0, -1, -1, 7935, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 7934, 0, 7934, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2175, 7944, 0, 7944, 11940, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2178, 7945, 0, 7945, 12000, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2181, 7946, 0, 7946, 13560, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2184, 7947, 0, 7947, 13620, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2187, 7948, 0, 7948, 13680, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2190, 7949, 0, 7949, 13740, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2193, 7950, 0, 7950, 13800, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2196, 7951, 0, 7951, 13860, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2199, 0, 7936, 0, 12060, -1, 7936, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2202, 0, 7937, 0, 12120, -1, 7937, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2205, 0, 7938, 0, 13920, -1, 7938, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2208, 0, 7939, 0, 13980, -1, 7939, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2211, 0, 7940, 0, 14040, -1, 7940, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2214, 0, 7941, 0, 14100, -1, 7941, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2217, 0, 7942, 0, 14160, -1, 7942, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2220, 0, 7943, 0, 14220, -1, 7943, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2223, 7960, 0, 7960, 12180, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2226, 7961, 0, 7961, 12240, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2229, 7962, 0, 7962, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2232, 7963, 0, 7963, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2235, 7964, 0, 7964, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2238, 7965, 0, 7965, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2241, 0, 7952, 0, 12300, -1, 7952, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2244, 0, 7953, 0, 12360, -1, 7953, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2247, 0, 7954, 0, -1, -1, 7954, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2250, 0, 7955, 0, -1, -1, 7955, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2253, 0, 7956, 0, -1, -1, 7956, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2256, 0, 7957, 0, -1, -1, 7957, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2259, 7976, 0, 7976, 12420, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2262, 7977, 0, 7977, 12480, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2265, 7978, 0, 7978, 14280, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2268, 7979, 0, 7979, 14340, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2271, 7980, 0, 7980, 14400, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2274, 7981, 0, 7981, 14460, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2277, 7982, 0, 7982, 14520, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2280, 7983, 0, 7983, 14580, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2283, 0, 7968, 0, 12540, -1, 7968, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2286, 0, 7969, 0, 12600, -1, 7969, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2289, 0, 7970, 0, 14640, -1, 7970, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2292, 0, 7971, 0, 14700, -1, 7971, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2295, 0, 7972, 0, 14760, -1, 7972, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2298, 0, 7973, 0, 14820, -1, 7973, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2301, 0, 7974, 0, 14880, -1, 7974, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2304, 0, 7975, 0, 14940, -1, 7975, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2307, 7992, 0, 7992, 12660, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2310, 7993, 0, 7993, 12720, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2313, 7994, 0, 7994, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2316, 7995, 0, 7995, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2319, 7996, 0, 7996, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2322, 7997, 0, 7997, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2325, 7998, 0, 7998, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2328, 7999, 0, 7999, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2331, 0, 7984, 0, 12780, -1, 7984, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2334, 0, 7985, 0, 12840, -1, 7985, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2337, 0, 7986, 0, -1, -1, 7986, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2340, 0, 7987, 0, -1, -1, 7987, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2343, 0, 7988, 0, -1, -1, 7988, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2346, 0, 7989, 0, -1, -1, 7989, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2349, 0, 7990, 0, -1, -1, 7990, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2352, 0, 7991, 0, -1, -1, 7991, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2355, 8008, 0, 8008, 12900, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2358, 8009, 0, 8009, 12960, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2361, 8010, 0, 8010, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2364, 8011, 0, 8011, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2367, 8012, 0, 8012, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2370, 8013, 0, 8013, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2373, 0, 8000, 0, 13020, -1, 8000, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2376, 0, 8001, 0, 13080, -1, 8001, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2379, 0, 8002, 0, -1, -1, 8002, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2382, 0, 8003, 0, -1, -1, 8003, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2385, 0, 8004, 0, -1, -1, 8004, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2388, 0, 8005, 0, -1, -1, 8005, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2391, -2394, -2397, -2394, 13140, -1, -2391, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2399, 8025, 0, 8025, 13200, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2402, -2405, -2409, -2405, -1, -1, -2411, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2415, 8027, 0, 8027, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2418, -2421, -2425, -2421, -1, -1, -2427, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2431, 8029, 0, 8029, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2434, -2437, -2441, -2437, -1, -1, -2443, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2447, 8031, 0, 8031, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2450, 0, 8017, 0, 13260, -1, 8017, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2453, 0, 8019, 0, -1, -1, 8019, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2456, 0, 8021, 0, -1, -1, 8021, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2459, 0, 8023, 0, -1, -1, 8023, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2462, 8040, 0, 8040, 13320, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2465, 8041, 0, 8041, 13380, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2468, 8042, 0, 8042, 15000, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2471, 8043, 0, 8043, 15060, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2474, 8044, 0, 8044, 15120, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2477, 8045, 0, 8045, 15180, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2480, 8046, 0, 8046, 15240, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2483, 8047, 0, 8047, 15300, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2486, 0, 8032, 0, 13440, -1, 8032, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2489, 0, 8033, 0, 13500, -1, 8033, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2492, 0, 8034, 0, 15360, -1, 8034, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2495, 0, 8035, 0, 15420, -1, 8035, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2498, 0, 8036, 0, 15480, -1, 8036, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2501, 0, 8037, 0, 15540, -1, 8037, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2504, 0, 8038, 0, 15600, -1, 8038, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2507, 0, 8039, 0, 15660, -1, 8039, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2510, 8122, 0, 8122, 15720, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 940, 8123, 0, 8123, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2513, 8136, 0, 8136, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 941, 8137, 0, 8137, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2516, 8138, 0, 8138, 15900, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 942, 8139, 0, 8139, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2519, 8154, 0, 8154, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 943, 8155, 0, 8155, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2522, 8184, 0, 8184, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 972, 8185, 0, 8185, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2525, 8170, 0, 8170, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 973, 8171, 0, 8171, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2528, 8186, 0, 8186, 16320, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 974, 8187, 0, 8187, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2531, -2534, -2537, -2539, -1, -1, -2541, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2544, -2547, -2550, -2552, -1, -1, -2554, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2557, -2560, -2563, -2565, -1, -1, -2567, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2570, -2573, -2576, -2578, -1, -1, -2580, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2583, -2586, -2589, -2591, -1, -1, -2593, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2596, -2599, -2602, -2604, -1, -1, -2606, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2609, -2612, -2615, -2617, -1, -1, -2619, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2622, -2625, -2628, -2630, -1, -1, -2632, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2635, -2534, -2537, -2539, -1, -1, -2541, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2638, -2547, -2550, -2552, -1, -1, -2554, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2641, -2560, -2563, -2565, -1, -1, -2567, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2644, -2573, -2576, -2578, -1, -1, -2580, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2647, -2586, -2589, -2591, -1, -1, -2593, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2650, -2599, -2602, -2604, -1, -1, -2606, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2653, -2612, -2615, -2617, -1, -1, -2619, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2656, -2625, -2628, -2630, -1, -1, -2632, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2659, -2662, -2665, -2667, -1, -1, -2669, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2672, -2675, -2678, -2680, -1, -1, -2682, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2685, -2688, -2691, -2693, -1, -1, -2695, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2698, -2701, -2704, -2706, -1, -1, -2708, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2711, -2714, -2717, -2719, -1, -1, -2721, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2724, -2727, -2730, -2732, -1, -1, -2734, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2737, -2740, -2743, -2745, -1, -1, -2747, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2750, -2753, -2756, -2758, -1, -1, -2760, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2763, -2662, -2665, -2667, -1, -1, -2669, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2766, -2675, -2678, -2680, -1, -1, -2682, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2769, -2688, -2691, -2693, -1, -1, -2695, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2772, -2701, -2704, -2706, -1, -1, -2708, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2775, -2714, -2717, -2719, -1, -1, -2721, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2778, -2727, -2730, -2732, -1, -1, -2734, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2781, -2740, -2743, -2745, -1, -1, -2747, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2784, -2753, -2756, -2758, -1, -1, -2760, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2787, -2790, -2793, -2795, -1, -1, -2797, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2800, -2803, -2806, -2808, -1, -1, -2810, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2813, -2816, -2819, -2821, -1, -1, -2823, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2826, -2829, -2832, -2834, -1, -1, -2836, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2839, -2842, -2845, -2847, -1, -1, -2849, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2852, -2855, -2858, -2860, -1, -1, -2862, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2865, -2868, -2871, -2873, -1, -1, -2875, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2878, -2881, -2884, -2886, -1, -1, -2888, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2891, -2790, -2793, -2795, -1, -1, -2797, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2894, -2803, -2806, -2808, -1, -1, -2810, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2897, -2816, -2819, -2821, -1, -1, -2823, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2900, -2829, -2832, -2834, -1, -1, -2836, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2903, -2842, -2845, -2847, -1, -1, -2849, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2906, -2855, -2858, -2860, -1, -1, -2862, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2909, -2868, -2871, -2873, -1, -1, -2875, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2912, -2881, -2884, -2886, -1, -1, -2888, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2915, 8120, 0, 8120, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2918, 8121, 0, 8121, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2921, -2924, -2927, -2929, -1, -1, -2932, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2935, -2938, -2941, -2943, -1, -1, -2945, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2948, -2951, -2954, -2956, -1, -1, -2959, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2962, -2965, -2968, -2965, 15840, -1, -2962, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -2970, -2973, -2977, -2979, -1, -1, -2983, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2987, 0, 8112, 0, -1, -1, 8112, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2990, 0, 8113, 0, -1, -1, 8113, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -2993, 0, 8048, 0, -1, -1, 8048, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 902, 0, 8049, 0, -1, -1, 8049, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -2996, -2938, -2941, -2943, -1, -1, -2945, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -2999, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 953, 921, 0, 921, -1, -1, 953, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -2999, 0, 0, 0, 16080, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3002, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3005, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3008, -3011, -3014, -3016, -1, -1, -3019, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3022, -3025, -3028, -3030, -1, -1, -3032, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3035, -3038, -3041, -3043, -1, -1, -3046, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3049, -3052, -3055, -3052, 16020, -1, -3049, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3057, -3060, -3064, -3066, -1, -1, -3070, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -3074, 0, 8050, 0, -1, -1, 8050, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 904, 0, 8051, 0, -1, -1, 8051, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -3077, 0, 8052, 0, -1, -1, 8052, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 905, 0, 8053, 0, -1, -1, 8053, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -3080, -3025, -3028, -3030, -1, -1, -3032, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3083, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3086, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3089, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3092, 8152, 0, 8152, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3095, 8153, 0, 8153, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3098, -3101, -3105, -3101, -1, -1, -3107, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 912, -910, -3111, -910, -1, -1, -916, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3113, -3116, -3119, -3116, -1, -1, -3113, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3121, -3124, -3128, -3124, -1, -1, -3130, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -3134, 0, 8144, 0, -1, -1, 8144, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -3137, 0, 8145, 0, -1, -1, 8145, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -3140, 0, 8054, 0, -1, -1, 8054, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 906, 0, 8055, 0, -1, -1, 8055, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3143, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3146, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3149, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3152, 8168, 0, 8168, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3155, 8169, 0, 8169, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3158, -3161, -3165, -3161, -1, -1, -3167, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 944, -941, -3171, -941, -1, -1, -947, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3173, -3176, -3179, -3176, -1, -1, -3173, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3181, 8172, 0, 8172, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3184, -3187, -3190, -3187, -1, -1, -3184, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3192, -3195, -3199, -3195, -1, -1, -3201, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -3205, 0, 8160, 0, -1, -1, 8160, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -3208, 0, 8161, 0, -1, -1, 8161, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -3211, 0, 8058, 0, -1, -1, 8058, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 910, 0, 8059, 0, -1, -1, 8059, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -3214, 0, 8165, 0, -1, -1, 8165, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3217, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, 901, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, 96, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3220, -3223, -3226, -3228, -1, -1, -3231, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3234, -3237, -3240, -3242, -1, -1, -3244, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3247, -3250, -3253, -3255, -1, -1, -3258, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3261, -3264, -3267, -3264, 16440, -1, -3261, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, -3269, -3272, -3276, -3278, -1, -1, -3282, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -3286, 0, 8056, 0, -1, -1, 8056, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 908, 0, 8057, 0, -1, -1, 8057, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, -3289, 0, 8060, 0, -1, -1, 8060, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 911, 0, 8061, 0, -1, -1, 8061, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LT, 0, UTF8PROC_BIDI_CLASS_L, 0, -3292, -3237, -3240, -3242, -1, -1, -3244, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, 180, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3295, 0, 0, 0, 16140, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_ZS, 0, UTF8PROC_BIDI_CLASS_WS, 0, 8194, 0, 0, 0, -1, -1, 0, 0, 4,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ZS, 0, UTF8PROC_BIDI_CLASS_WS, 0, 8195, 0, 0, 0, -1, -1, 0, 0, 4,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ZS, 0, UTF8PROC_BIDI_CLASS_WS, UTF8PROC_DECOMP_TYPE_COMPAT, 32, 0, 0, 0, -1, -1, 0, 0, 4,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ZS, 0, UTF8PROC_BIDI_CLASS_WS, UTF8PROC_DECOMP_TYPE_NOBREAK, 32, 0, 0, 0, -1, -1, 0, 0, 4,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_BN, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, true, true, true, false, false, false}, {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_R, 0, 0, 0, 0, 0, -1, -1, 0, 11, 13,false, true, true, false, false, false, false}, {UTF8PROC_CATEGORY_PD, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NOBREAK, 8208, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PD, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 0, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3298, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PI, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 8, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PF, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 8, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PI, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PF, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 46, 0, 0, 0, -1, -1, 0, 8, 9,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3301, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3304, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 6, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ZL, 0, UTF8PROC_BIDI_CLASS_WS, 0, 0, 0, 0, 0, -1, -1, 0, 3, 3,false, false, true, false, false, false, false}, {UTF8PROC_CATEGORY_ZP, 0, UTF8PROC_BIDI_CLASS_B, 0, 0, 0, 0, 0, -1, -1, 0, 3, 3,false, false, true, false, false, false, false}, {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_LRE, 0, 0, 0, 0, 0, -1, -1, 0, 11, 13,false, true, true, false, false, false, false}, {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_RLE, 0, 0, 0, 0, 0, -1, -1, 0, 11, 13,false, true, true, false, false, false, false}, {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_PDF, 0, 0, 0, 0, 0, -1, -1, 0, 11, 13,false, true, true, false, false, false, false}, {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_LRO, 0, 0, 0, 0, 0, -1, -1, 0, 11, 13,false, true, true, false, false, false, false}, {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_RLO, 0, 0, 0, 0, 0, -1, -1, 0, 11, 13,false, true, true, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_COMPAT, -3308, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_COMPAT, -3311, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3315, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3318, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3322, 0, 0, 0, -1, -1, 0, 0, 10,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3325, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_CS, 0, 0, 0, 0, 0, -1, -1, 0, 7, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3328, 0, 0, 0, -1, -1, 0, 0, 10,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3331, 0, 0, 0, -1, -1, 0, 0, 10,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3334, 0, 0, 0, -1, -1, 0, 0, 10,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3337, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUPER, 48, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 105, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUPER, 52, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUPER, 53, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUPER, 54, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUPER, 55, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUPER, 56, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUPER, 57, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ES, UTF8PROC_DECOMP_TYPE_SUPER, 43, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ES, UTF8PROC_DECOMP_TYPE_SUPER, 8722, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SUPER, 61, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SUPER, 40, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SUPER, 41, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 110, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUB, 48, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUB, 49, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUB, 50, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUB, 51, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUB, 52, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUB, 53, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUB, 54, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUB, 55, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUB, 56, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_SUB, 57, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ES, UTF8PROC_DECOMP_TYPE_SUB, 43, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ES, UTF8PROC_DECOMP_TYPE_SUB, 8722, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SUB, 61, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SUB, 40, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SUB, 41, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 97, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 101, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 111, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 120, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 601, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SC, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_COMPAT, -3342, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 1, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3345, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3349, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 67, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3353, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3356, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3360, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 400, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3364, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 103, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 72, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 104, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 295, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 73, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 76, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 108, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 78, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3367, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 80, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 81, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 82, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SUPER, -3370, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3373, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SUPER, -3377, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 90, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 937, 0, 969, 0, -1, -1, 969, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 75, 0, 107, 0, -1, -1, 107, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 197, 0, 229, 0, -1, -1, 229, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 66, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 101, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 69, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 70, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 8526, 0, -1, -1, 8526, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 77, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 111, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 1488, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 1489, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 1490, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 1491, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 105, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3380, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 960, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 947, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 915, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 928, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FONT, 8721, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 68, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 100, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 106, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 8498, 0, 8498, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, -3384, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, -3388, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, -3392, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, -3396, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, -3400, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, -3404, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, -3408, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, -3412, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, -3416, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, -3420, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, -3424, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, -3428, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_FRACTION, -3432, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 73, 0, 8560, 0, -1, -1, 8560, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3435, 0, 8561, 0, -1, -1, 8561, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3438, 0, 8562, 0, -1, -1, 8562, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3442, 0, 8563, 0, -1, -1, 8563, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 86, 0, 8564, 0, -1, -1, 8564, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3445, 0, 8565, 0, -1, -1, 8565, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3448, 0, 8566, 0, -1, -1, 8566, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3452, 0, 8567, 0, -1, -1, 8567, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3457, 0, 8568, 0, -1, -1, 8568, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 88, 0, 8569, 0, -1, -1, 8569, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3460, 0, 8570, 0, -1, -1, 8570, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3463, 0, 8571, 0, -1, -1, 8571, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 76, 0, 8572, 0, -1, -1, 8572, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 67, 0, 8573, 0, -1, -1, 8573, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 68, 0, 8574, 0, -1, -1, 8574, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 77, 0, 8575, 0, -1, -1, 8575, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 105, 8544, 0, 8544, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3467, 8545, 0, 8545, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3470, 8546, 0, 8546, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3474, 8547, 0, 8547, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 118, 8548, 0, 8548, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3477, 8549, 0, 8549, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3480, 8550, 0, 8550, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3484, 8551, 0, 8551, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3489, 8552, 0, 8552, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 120, 8553, 0, 8553, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3492, 8554, 0, 8554, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3495, 8555, 0, 8555, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 108, 8556, 0, 8556, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 99, 8557, 0, 8557, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 100, 8558, 0, 8558, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 109, 8559, 0, 8559, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 8580, 0, -1, -1, 8580, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 8579, 0, 8579, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 16500, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 16560, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 16620, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3499, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3502, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3505, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3508, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3511, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3514, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 16680, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 16800, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 16740, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 16860, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3517, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 16920, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3520, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 16980, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3523, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 17040, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3526, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 17100, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3529, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3532, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3535, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3539, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3542, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 17160, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3546, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 17220, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3549, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 17280, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3552, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 17340, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3555, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 17520, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3558, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 17460, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3561, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 17700, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 17760, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3564, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3567, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3570, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3573, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3576, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 17820, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 17880, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3579, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3582, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 17940, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 18000, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3585, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3588, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 18060, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 18120, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 18660, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 18720, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3591, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3594, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 18180, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 18240, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3597, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3600, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 18300, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 18360, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3603, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3606, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 18780, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 18840, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 18420, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 18480, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 18540, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 18600, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3609, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3612, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3615, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3618, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 18900, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 18960, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 19020, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 19080, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3621, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3624, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3627, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3630, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3633, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3636, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3639, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3642, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, 0, 12296, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, 0, 12297, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 49, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 50, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 51, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 52, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 53, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 54, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 55, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 56, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 57, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -3645, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -3648, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -3651, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -3654, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -3657, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -3660, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -3663, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -3666, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -3669, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -3672, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -3675, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3678, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3682, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3686, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3690, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3694, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3698, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3702, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3706, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3710, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3714, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3719, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3724, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3729, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3734, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3739, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3744, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3749, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3754, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3759, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3764, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, -3769, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, -3772, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, -3775, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, -3778, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, -3781, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, -3784, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, -3787, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, -3790, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, -3793, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, -3796, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, -3800, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, -3804, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, -3808, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, -3812, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, -3816, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, -3820, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, -3824, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, -3828, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, -3832, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_COMPAT, -3836, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3840, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3844, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3848, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3852, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3856, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3860, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3864, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3868, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3872, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3876, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3880, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3884, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3888, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3892, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3896, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3900, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3904, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3908, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3912, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3916, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3920, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3924, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3928, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3932, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3936, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -3940, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 65, 0, 9424, 0, -1, -1, 9424, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 66, 0, 9425, 0, -1, -1, 9425, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 67, 0, 9426, 0, -1, -1, 9426, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 68, 0, 9427, 0, -1, -1, 9427, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 69, 0, 9428, 0, -1, -1, 9428, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 70, 0, 9429, 0, -1, -1, 9429, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 71, 0, 9430, 0, -1, -1, 9430, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 72, 0, 9431, 0, -1, -1, 9431, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 73, 0, 9432, 0, -1, -1, 9432, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 74, 0, 9433, 0, -1, -1, 9433, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 75, 0, 9434, 0, -1, -1, 9434, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 76, 0, 9435, 0, -1, -1, 9435, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 77, 0, 9436, 0, -1, -1, 9436, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 78, 0, 9437, 0, -1, -1, 9437, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 79, 0, 9438, 0, -1, -1, 9438, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 80, 0, 9439, 0, -1, -1, 9439, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 81, 0, 9440, 0, -1, -1, 9440, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 82, 0, 9441, 0, -1, -1, 9441, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 83, 0, 9442, 0, -1, -1, 9442, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 84, 0, 9443, 0, -1, -1, 9443, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 85, 0, 9444, 0, -1, -1, 9444, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 86, 0, 9445, 0, -1, -1, 9445, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 87, 0, 9446, 0, -1, -1, 9446, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 88, 0, 9447, 0, -1, -1, 9447, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 89, 0, 9448, 0, -1, -1, 9448, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 90, 0, 9449, 0, -1, -1, 9449, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 97, 9398, 0, 9398, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 98, 9399, 0, 9399, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 99, 9400, 0, 9400, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 100, 9401, 0, 9401, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 101, 9402, 0, 9402, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 102, 9403, 0, 9403, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 103, 9404, 0, 9404, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 104, 9405, 0, 9405, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 105, 9406, 0, 9406, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 106, 9407, 0, 9407, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 107, 9408, 0, 9408, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 108, 9409, 0, 9409, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 109, 9410, 0, 9410, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 110, 9411, 0, 9411, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 111, 9412, 0, 9412, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 112, 9413, 0, 9413, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 113, 9414, 0, 9414, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 114, 9415, 0, 9415, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 115, 9416, 0, 9416, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 116, 9417, 0, 9417, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 117, 9418, 0, 9418, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 118, 9419, 0, 9419, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 119, 9420, 0, 9420, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 120, 9421, 0, 9421, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 121, 9422, 0, 9422, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 122, 9423, 0, 9423, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, 48, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3944, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3949, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3953, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -3956, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, -3960, 0, 0, 0, -1, -1, 0, 0, 0,true, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, 19140, -1, 0, 0, 0,false, false, false, false, false, true, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11312, 0, -1, -1, 11312, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11313, 0, -1, -1, 11313, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11314, 0, -1, -1, 11314, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11315, 0, -1, -1, 11315, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11316, 0, -1, -1, 11316, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11317, 0, -1, -1, 11317, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11318, 0, -1, -1, 11318, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11319, 0, -1, -1, 11319, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11320, 0, -1, -1, 11320, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11321, 0, -1, -1, 11321, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11322, 0, -1, -1, 11322, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11323, 0, -1, -1, 11323, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11324, 0, -1, -1, 11324, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11325, 0, -1, -1, 11325, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11326, 0, -1, -1, 11326, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11327, 0, -1, -1, 11327, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11328, 0, -1, -1, 11328, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11329, 0, -1, -1, 11329, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11330, 0, -1, -1, 11330, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11331, 0, -1, -1, 11331, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11332, 0, -1, -1, 11332, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11333, 0, -1, -1, 11333, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11334, 0, -1, -1, 11334, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11335, 0, -1, -1, 11335, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11336, 0, -1, -1, 11336, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11337, 0, -1, -1, 11337, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11338, 0, -1, -1, 11338, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11339, 0, -1, -1, 11339, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11340, 0, -1, -1, 11340, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11341, 0, -1, -1, 11341, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11342, 0, -1, -1, 11342, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11343, 0, -1, -1, 11343, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11344, 0, -1, -1, 11344, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11345, 0, -1, -1, 11345, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11346, 0, -1, -1, 11346, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11347, 0, -1, -1, 11347, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11348, 0, -1, -1, 11348, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11349, 0, -1, -1, 11349, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11350, 0, -1, -1, 11350, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11351, 0, -1, -1, 11351, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11352, 0, -1, -1, 11352, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11353, 0, -1, -1, 11353, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11354, 0, -1, -1, 11354, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11355, 0, -1, -1, 11355, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11356, 0, -1, -1, 11356, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11357, 0, -1, -1, 11357, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11358, 0, -1, -1, 11358, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11264, 0, 11264, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11265, 0, 11265, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11266, 0, 11266, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11267, 0, 11267, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11268, 0, 11268, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11269, 0, 11269, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11270, 0, 11270, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11271, 0, 11271, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11272, 0, 11272, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11273, 0, 11273, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11274, 0, 11274, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11275, 0, 11275, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11276, 0, 11276, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11277, 0, 11277, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11278, 0, 11278, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11279, 0, 11279, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11280, 0, 11280, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11281, 0, 11281, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11282, 0, 11282, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11283, 0, 11283, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11284, 0, 11284, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11285, 0, 11285, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11286, 0, 11286, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11287, 0, 11287, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11288, 0, 11288, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11289, 0, 11289, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11290, 0, 11290, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11291, 0, 11291, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11292, 0, 11292, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11293, 0, 11293, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11294, 0, 11294, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11295, 0, 11295, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11296, 0, 11296, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11297, 0, 11297, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11298, 0, 11298, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11299, 0, 11299, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11300, 0, 11300, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11301, 0, 11301, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11302, 0, 11302, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11303, 0, 11303, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11304, 0, 11304, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11305, 0, 11305, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11306, 0, 11306, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11307, 0, 11307, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11308, 0, 11308, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11309, 0, 11309, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11310, 0, 11310, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11361, 0, -1, -1, 11361, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11360, 0, 11360, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 619, 0, -1, -1, 619, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 7549, 0, -1, -1, 7549, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 637, 0, -1, -1, 637, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 570, 0, 570, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 574, 0, 574, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11368, 0, -1, -1, 11368, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11367, 0, 11367, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11370, 0, -1, -1, 11370, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11369, 0, 11369, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11372, 0, -1, -1, 11372, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11371, 0, 11371, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 593, 0, -1, -1, 593, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 625, 0, -1, -1, 625, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 592, 0, -1, -1, 592, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11379, 0, -1, -1, 11379, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11378, 0, 11378, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11382, 0, -1, -1, 11382, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11381, 0, 11381, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUB, 106, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 86, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11393, 0, -1, -1, 11393, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11392, 0, 11392, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11395, 0, -1, -1, 11395, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11394, 0, 11394, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11397, 0, -1, -1, 11397, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11396, 0, 11396, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11399, 0, -1, -1, 11399, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11398, 0, 11398, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11401, 0, -1, -1, 11401, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11400, 0, 11400, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11403, 0, -1, -1, 11403, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11402, 0, 11402, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11405, 0, -1, -1, 11405, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11404, 0, 11404, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11407, 0, -1, -1, 11407, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11406, 0, 11406, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11409, 0, -1, -1, 11409, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11408, 0, 11408, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11411, 0, -1, -1, 11411, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11410, 0, 11410, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11413, 0, -1, -1, 11413, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11412, 0, 11412, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11415, 0, -1, -1, 11415, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11414, 0, 11414, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11417, 0, -1, -1, 11417, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11416, 0, 11416, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11419, 0, -1, -1, 11419, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11418, 0, 11418, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11421, 0, -1, -1, 11421, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11420, 0, 11420, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11423, 0, -1, -1, 11423, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11422, 0, 11422, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11425, 0, -1, -1, 11425, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11424, 0, 11424, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11427, 0, -1, -1, 11427, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11426, 0, 11426, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11429, 0, -1, -1, 11429, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11428, 0, 11428, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11431, 0, -1, -1, 11431, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11430, 0, 11430, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11433, 0, -1, -1, 11433, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11432, 0, 11432, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11435, 0, -1, -1, 11435, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11434, 0, 11434, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11437, 0, -1, -1, 11437, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11436, 0, 11436, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11439, 0, -1, -1, 11439, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11438, 0, 11438, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11441, 0, -1, -1, 11441, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11440, 0, 11440, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11443, 0, -1, -1, 11443, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11442, 0, 11442, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11445, 0, -1, -1, 11445, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11444, 0, 11444, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11447, 0, -1, -1, 11447, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11446, 0, 11446, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11449, 0, -1, -1, 11449, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11448, 0, 11448, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11451, 0, -1, -1, 11451, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11450, 0, 11450, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11453, 0, -1, -1, 11453, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11452, 0, 11452, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11455, 0, -1, -1, 11455, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11454, 0, 11454, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11457, 0, -1, -1, 11457, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11456, 0, 11456, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11459, 0, -1, -1, 11459, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11458, 0, 11458, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11461, 0, -1, -1, 11461, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11460, 0, 11460, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11463, 0, -1, -1, 11463, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11462, 0, 11462, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11465, 0, -1, -1, 11465, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11464, 0, 11464, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11467, 0, -1, -1, 11467, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11466, 0, 11466, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11469, 0, -1, -1, 11469, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11468, 0, 11468, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11471, 0, -1, -1, 11471, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11470, 0, 11470, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11473, 0, -1, -1, 11473, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11472, 0, 11472, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11475, 0, -1, -1, 11475, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11474, 0, 11474, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11477, 0, -1, -1, 11477, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11476, 0, 11476, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11479, 0, -1, -1, 11479, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11478, 0, 11478, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11481, 0, -1, -1, 11481, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11480, 0, 11480, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11483, 0, -1, -1, 11483, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11482, 0, 11482, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11485, 0, -1, -1, 11485, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11484, 0, 11484, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11487, 0, -1, -1, 11487, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11486, 0, 11486, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11489, 0, -1, -1, 11489, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11488, 0, 11488, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 11491, 0, -1, -1, 11491, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 11490, 0, 11490, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4256, 0, 4256, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4257, 0, 4257, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4258, 0, 4258, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4259, 0, 4259, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4260, 0, 4260, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4261, 0, 4261, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4262, 0, 4262, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4263, 0, 4263, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4264, 0, 4264, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4265, 0, 4265, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4266, 0, 4266, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4267, 0, 4267, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4268, 0, 4268, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4269, 0, 4269, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4270, 0, 4270, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4271, 0, 4271, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4272, 0, 4272, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4273, 0, 4273, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4274, 0, 4274, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4275, 0, 4275, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4276, 0, 4276, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4277, 0, 4277, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4278, 0, 4278, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4279, 0, 4279, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4280, 0, 4280, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4281, 0, 4281, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4282, 0, 4282, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4283, 0, 4283, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4284, 0, 4284, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4285, 0, 4285, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4286, 0, 4286, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4287, 0, 4287, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4288, 0, 4288, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4289, 0, 4289, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4290, 0, 4290, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4291, 0, 4291, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4292, 0, 4292, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 4293, 0, 4293, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 11617, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 27597, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 40863, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 19968, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20008, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20022, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20031, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20057, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20101, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20108, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20128, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20154, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20799, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20837, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20843, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20866, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20886, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20907, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20960, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20981, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 20992, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 21147, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 21241, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 21269, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 21274, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 21304, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 21313, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 21340, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 21353, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 21378, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 21430, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 21448, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 21475, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 22231, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 22303, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 22763, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 22786, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 22794, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 22805, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 22823, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 22899, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 23376, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 23424, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 23544, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 23567, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 23586, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 23608, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 23662, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 23665, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 24027, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 24037, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 24049, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 24062, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 24178, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 24186, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 24191, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 24308, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 24318, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 24331, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 24339, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 24400, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 24417, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 24435, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 24515, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 25096, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 25142, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 25163, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 25903, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 25908, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 25991, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 26007, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 26020, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 26041, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 26080, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 26085, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 26352, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 26376, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 26408, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 27424, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 27490, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 27513, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 27571, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 27595, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 27604, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 27611, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 27663, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 27668, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 27700, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 28779, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 29226, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 29238, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 29243, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 29247, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 29255, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 29273, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 29275, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 29356, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 29572, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 29577, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 29916, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 29926, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 29976, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 29983, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 29992, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 30000, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 30091, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 30098, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 30326, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 30333, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 30382, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 30399, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 30446, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 30683, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 30690, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 30707, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 31034, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 31160, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 31166, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 31348, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 31435, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 31481, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 31859, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 31992, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 32566, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 32593, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 32650, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 32701, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 32769, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 32780, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 32786, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 32819, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 32895, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 32905, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 33251, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 33258, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 33267, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 33276, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 33292, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 33307, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 33311, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 33390, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 33394, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 33400, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 34381, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 34411, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 34880, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 34892, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 34915, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 35198, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 35211, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 35282, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 35328, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 35895, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 35910, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 35925, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 35960, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 35997, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 36196, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 36208, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 36275, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 36523, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 36554, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 36763, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 36784, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 36789, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 37009, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 37193, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 37318, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 37324, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 37329, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 38263, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 38272, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 38428, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 38582, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 38585, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 38632, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 38737, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 38750, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 38754, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 38761, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 38859, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 38893, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 38899, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 38913, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 39080, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 39131, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 39135, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 39318, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 39321, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 39340, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 39592, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 39640, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 39647, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 39717, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 39727, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 39730, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 39740, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 39770, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 40165, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 40565, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 40575, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 40613, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 40635, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 40643, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 40653, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 40657, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 40697, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 40701, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 40718, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 40723, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 40736, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 40763, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 40778, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 40786, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 40845, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 40860, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 40864, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ZS, 0, UTF8PROC_BIDI_CLASS_WS, UTF8PROC_DECOMP_TYPE_WIDE, 32, 0, 0, 0, -1, -1, 0, 0, 4,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 218, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 224, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 12306, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 21313, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 21316, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 21317, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 20400, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 19200, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -3963, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 19260, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -3966, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 19320, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -3969, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 19380, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -3972, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 19440, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -3975, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 19500, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -3978, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 19560, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -3981, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 19620, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -3984, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 19680, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -3987, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 19740, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -3990, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 19800, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -3993, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 19860, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -3996, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 19920, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -3999, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 19980, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4002, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 20040, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4005, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 20100, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4008, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4011, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 20160, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4014, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4017, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 20220, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4020, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4023, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 20280, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4026, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4029, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 20340, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4032, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4035, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4038, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 8, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 52, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MN, 8, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, 53, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -4041, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -4044, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 20460, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, 0, -4047, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_VERTICAL, -4050, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PD, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 21720, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 20520, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4053, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 20580, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4056, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 20640, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4059, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 20700, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4062, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 20760, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4065, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 20820, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4068, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 20880, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4071, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 20940, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4074, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 21000, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4077, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 21060, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4080, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 21120, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4083, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 21180, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4086, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 21240, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4089, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 21300, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4092, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 21360, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4095, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 21420, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4098, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4101, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 21480, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4104, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4107, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 21540, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4110, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4113, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 21600, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4116, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4119, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 21660, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4122, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4125, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 21780, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 21840, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 21900, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 21960, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4128, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4131, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4134, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4137, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, -4140, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 22020, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, 0, -4143, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_VERTICAL, -4146, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4352, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4353, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4522, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4354, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4524, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4525, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4355, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4356, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4357, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4528, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4529, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4530, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4531, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4532, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4533, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4378, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4358, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4359, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4360, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4385, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4361, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4362, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4363, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4364, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4365, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4366, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4367, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4368, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4369, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4370, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4449, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4450, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4451, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4452, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4453, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4454, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4455, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4456, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4457, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4458, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4459, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4460, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4461, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4462, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4463, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4464, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4465, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4466, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4467, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4468, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4469, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4448, 0, 0, 0, -1, -1, 0, 5, 7,false, true, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4372, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4373, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4551, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4552, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4556, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4558, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4563, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4567, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4569, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4380, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4573, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4575, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4381, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4382, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4384, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4386, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4387, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4391, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4393, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4395, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4396, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4397, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4398, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4399, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4402, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4406, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4416, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4423, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4428, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4593, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4594, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4439, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4440, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4441, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4484, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4485, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4488, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4497, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4498, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4500, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4510, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, 4513, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 19968, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 20108, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 19977, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 22235, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 19978, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 20013, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 19979, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 30002, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 20057, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 19993, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 19969, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 22825, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 22320, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 20154, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4149, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4153, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4157, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4161, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4165, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4169, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4173, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4177, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4181, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4185, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4189, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4193, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4197, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4201, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4205, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4210, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4215, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4220, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4225, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4230, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4235, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4240, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4245, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4250, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4255, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4260, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4265, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4270, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4275, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -4280, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, -4288, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4295, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4299, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4303, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4307, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4311, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4315, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4319, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4323, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4327, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4331, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4335, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4339, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4343, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4347, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4351, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4355, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4359, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4363, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4367, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4371, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4375, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4379, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4383, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4387, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4391, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4395, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4399, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4403, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4407, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4411, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4415, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4419, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4423, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4427, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4431, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4435, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, -4439, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4443, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4446, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4449, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4452, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4455, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4458, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4461, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4464, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4467, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4470, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4473, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4476, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4479, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4482, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4485, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 4352, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 4354, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 4355, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 4357, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 4358, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 4359, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 4361, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 4363, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 4364, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 4366, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 4367, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 4368, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 4369, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 4370, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, -4488, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, -4491, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, -4494, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, -4497, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, -4500, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, -4503, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, -4506, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, -4509, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, -4512, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, -4515, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, -4518, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, -4521, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, -4524, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, -4527, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4530, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4536, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4541, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 19968, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 20108, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 19977, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 22235, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 20116, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 20845, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 19971, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 20843, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 20061, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 21313, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 26376, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 28779, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 27700, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 26408, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 37329, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 22303, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 26085, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 26666, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 26377, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 31038, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 21517, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 29305, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 36001, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 31069, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 21172, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 31192, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 30007, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 22899, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 36969, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 20778, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 21360, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 27880, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 38917, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 20241, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 20889, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 27491, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 19978, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 20013, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 19979, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 24038, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 21491, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 21307, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 23447, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 23398, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 30435, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 20225, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 36039, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 21332, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 22812, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4544, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4547, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4550, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4553, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4556, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4559, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4562, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4565, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4568, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4571, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4574, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4577, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4580, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4583, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_CIRCLE, -4586, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4589, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4592, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4595, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4598, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4601, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4604, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4607, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4610, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4613, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4616, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4620, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -4624, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, -4628, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, -4631, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, -4635, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, -4638, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12450, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12452, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12454, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12456, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12458, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12459, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12461, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12463, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12465, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12467, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12469, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12471, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12473, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12475, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12477, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12479, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12481, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12484, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12486, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12488, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12490, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12491, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12492, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12493, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12494, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12495, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12498, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12501, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12504, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12507, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12510, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12511, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12512, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12513, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12514, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12516, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12518, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12520, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12521, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12522, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12523, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12524, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12525, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12527, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12528, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12529, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_CIRCLE, 12530, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4642, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4647, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4652, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4657, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4661, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4666, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4670, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4674, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4680, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4685, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4689, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4693, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4697, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4702, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4707, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4711, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4715, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4718, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4722, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4727, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4732, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4735, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4741, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4748, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4754, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4758, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4764, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4770, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4775, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4779, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4783, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4787, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4792, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4798, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4803, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4807, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4811, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4815, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4818, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4821, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4824, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4827, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4831, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4835, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4841, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4845, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4850, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4856, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4860, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4863, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4866, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4872, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4877, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4883, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4887, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4893, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4896, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4900, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4904, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4908, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4912, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4916, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4921, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4925, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4928, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4932, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4936, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4940, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4945, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4949, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4953, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4957, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4963, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4968, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4971, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4977, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4980, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4985, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4990, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4994, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -4998, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5002, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5007, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5010, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5014, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5019, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5022, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5028, 0, 0, 0, -1, -1, 0, 4, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5032, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5035, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5038, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5041, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5044, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5047, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5050, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5053, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5056, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5059, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5062, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5066, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5070, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5074, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5078, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5082, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5086, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5090, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5094, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5098, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5102, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5106, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5110, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5114, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5118, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5122, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5126, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5129, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5132, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5136, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5139, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, -5142, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, -5145, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, -5149, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, -5153, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5156, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5159, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5162, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5165, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5168, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5173, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5176, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5179, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5182, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5185, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5188, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5191, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5194, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5197, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5201, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5206, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5209, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5212, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5215, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5218, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5221, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5224, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5227, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5231, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5235, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5239, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5243, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5246, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5249, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5252, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5255, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5258, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5261, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5264, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5267, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5270, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5273, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5277, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5281, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5284, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5288, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5292, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5296, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5299, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5303, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5307, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5312, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5315, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5319, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5323, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5327, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5331, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5337, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5344, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5347, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5350, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5353, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5356, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5359, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5362, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5365, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5368, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5371, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5374, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5377, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5380, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5383, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5386, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5389, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5392, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5395, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5398, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5403, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5406, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5409, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5412, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5417, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5421, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5424, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5427, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5430, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5433, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5436, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5439, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5442, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5445, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5448, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5451, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5455, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5458, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5461, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5465, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5469, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5472, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5477, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5481, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5484, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5487, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SQUARE, -5490, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, -5493, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, -5497, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5501, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5504, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5507, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5510, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5513, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5516, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5519, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5522, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5525, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5528, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5532, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5536, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5540, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5544, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5548, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5552, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5556, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5560, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5564, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5568, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5572, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5576, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5580, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5584, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5588, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5592, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5596, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5600, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5604, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5608, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5612, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SQUARE, -5616, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42561, 0, -1, -1, 42561, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42560, 0, 42560, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42563, 0, -1, -1, 42563, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42562, 0, 42562, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42565, 0, -1, -1, 42565, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42564, 0, 42564, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42567, 0, -1, -1, 42567, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42566, 0, 42566, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42569, 0, -1, -1, 42569, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42568, 0, 42568, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42571, 0, -1, -1, 42571, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42570, 0, 42570, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42573, 0, -1, -1, 42573, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42572, 0, 42572, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42575, 0, -1, -1, 42575, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42574, 0, 42574, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42577, 0, -1, -1, 42577, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42576, 0, 42576, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42579, 0, -1, -1, 42579, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42578, 0, 42578, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42581, 0, -1, -1, 42581, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42580, 0, 42580, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42583, 0, -1, -1, 42583, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42582, 0, 42582, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42585, 0, -1, -1, 42585, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42584, 0, 42584, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42587, 0, -1, -1, 42587, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42586, 0, 42586, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42589, 0, -1, -1, 42589, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42588, 0, 42588, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42591, 0, -1, -1, 42591, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42590, 0, 42590, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42595, 0, -1, -1, 42595, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42594, 0, 42594, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42597, 0, -1, -1, 42597, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42596, 0, 42596, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42599, 0, -1, -1, 42599, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42598, 0, 42598, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42601, 0, -1, -1, 42601, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42600, 0, 42600, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42603, 0, -1, -1, 42603, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42602, 0, 42602, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42605, 0, -1, -1, 42605, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42604, 0, 42604, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ME, 0, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42625, 0, -1, -1, 42625, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42624, 0, 42624, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42627, 0, -1, -1, 42627, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42626, 0, 42626, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42629, 0, -1, -1, 42629, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42628, 0, 42628, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42631, 0, -1, -1, 42631, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42630, 0, 42630, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42633, 0, -1, -1, 42633, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42632, 0, 42632, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42635, 0, -1, -1, 42635, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42634, 0, 42634, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42637, 0, -1, -1, 42637, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42636, 0, 42636, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42639, 0, -1, -1, 42639, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42638, 0, 42638, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42641, 0, -1, -1, 42641, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42640, 0, 42640, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42643, 0, -1, -1, 42643, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42642, 0, 42642, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42645, 0, -1, -1, 42645, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42644, 0, 42644, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42647, 0, -1, -1, 42647, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42646, 0, 42646, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42787, 0, -1, -1, 42787, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42786, 0, 42786, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42789, 0, -1, -1, 42789, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42788, 0, 42788, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42791, 0, -1, -1, 42791, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42790, 0, 42790, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42793, 0, -1, -1, 42793, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42792, 0, 42792, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42795, 0, -1, -1, 42795, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42794, 0, 42794, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42797, 0, -1, -1, 42797, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42796, 0, 42796, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42799, 0, -1, -1, 42799, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42798, 0, 42798, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42803, 0, -1, -1, 42803, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42802, 0, 42802, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42805, 0, -1, -1, 42805, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42804, 0, 42804, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42807, 0, -1, -1, 42807, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42806, 0, 42806, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42809, 0, -1, -1, 42809, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42808, 0, 42808, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42811, 0, -1, -1, 42811, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42810, 0, 42810, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42813, 0, -1, -1, 42813, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42812, 0, 42812, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42815, 0, -1, -1, 42815, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42814, 0, 42814, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42817, 0, -1, -1, 42817, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42816, 0, 42816, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42819, 0, -1, -1, 42819, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42818, 0, 42818, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42821, 0, -1, -1, 42821, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42820, 0, 42820, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42823, 0, -1, -1, 42823, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42822, 0, 42822, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42825, 0, -1, -1, 42825, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42824, 0, 42824, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42827, 0, -1, -1, 42827, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42826, 0, 42826, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42829, 0, -1, -1, 42829, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42828, 0, 42828, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42831, 0, -1, -1, 42831, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42830, 0, 42830, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42833, 0, -1, -1, 42833, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42832, 0, 42832, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42835, 0, -1, -1, 42835, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42834, 0, 42834, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42837, 0, -1, -1, 42837, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42836, 0, 42836, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42839, 0, -1, -1, 42839, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42838, 0, 42838, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42841, 0, -1, -1, 42841, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42840, 0, 42840, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42843, 0, -1, -1, 42843, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42842, 0, 42842, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42845, 0, -1, -1, 42845, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42844, 0, 42844, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42847, 0, -1, -1, 42847, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42846, 0, 42846, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42849, 0, -1, -1, 42849, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42848, 0, 42848, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42851, 0, -1, -1, 42851, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42850, 0, 42850, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42853, 0, -1, -1, 42853, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42852, 0, 42852, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42855, 0, -1, -1, 42855, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42854, 0, 42854, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42857, 0, -1, -1, 42857, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42856, 0, 42856, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42859, 0, -1, -1, 42859, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42858, 0, 42858, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42861, 0, -1, -1, 42861, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42860, 0, 42860, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42863, 0, -1, -1, 42863, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42862, 0, 42862, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_SUPER, 42863, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42874, 0, -1, -1, 42874, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42873, 0, 42873, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42876, 0, -1, -1, 42876, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42875, 0, 42875, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 7545, 0, -1, -1, 7545, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42879, 0, -1, -1, 42879, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42878, 0, 42878, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42881, 0, -1, -1, 42881, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42880, 0, 42880, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42883, 0, -1, -1, 42883, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42882, 0, 42882, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42885, 0, -1, -1, 42885, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42884, 0, 42884, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42887, 0, -1, -1, 42887, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42886, 0, 42886, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 42892, 0, -1, -1, 42892, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 42891, 0, 42891, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_CS, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, true, false, false, false, false, false}, {UTF8PROC_CATEGORY_CO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35912, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26356, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36554, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36040, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28369, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20018, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21477, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40860, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22865, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37329, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21895, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22856, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25078, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30313, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32645, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34367, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34746, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35064, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37007, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27138, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27931, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28889, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29662, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33853, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37226, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 39409, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20098, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21365, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27396, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29211, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34349, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40478, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23888, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28651, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34253, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35172, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25289, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33240, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34847, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24266, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26391, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28010, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29436, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37070, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20358, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20919, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21214, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25796, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27347, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29200, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30439, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32769, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34310, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34396, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36335, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38706, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 39791, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40442, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30860, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31103, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32160, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33737, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37636, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40575, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35542, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22751, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24324, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31840, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32894, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29282, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30922, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36034, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38647, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22744, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23650, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27155, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28122, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28431, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32047, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32311, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38475, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21202, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32907, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20956, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20940, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31260, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32190, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33777, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38517, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35712, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25295, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35582, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20025, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23527, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24594, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29575, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30064, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21271, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30971, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20415, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24489, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 19981, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27852, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25976, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32034, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21443, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22622, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30465, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33865, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35498, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27578, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36784, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27784, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25342, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33509, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25504, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30053, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20142, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20841, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20937, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26753, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31975, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33391, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35538, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37327, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21237, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21570, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22899, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24300, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26053, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28670, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31018, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38317, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 39530, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40599, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40654, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21147, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26310, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27511, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36706, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24180, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24976, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25088, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25754, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28451, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29001, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29833, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31178, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32244, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32879, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36646, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34030, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36899, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37706, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21015, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21155, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21693, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28872, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35010, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24265, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24565, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25467, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27566, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31806, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29557, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20196, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22265, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23994, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24604, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29618, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29801, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32666, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32838, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37428, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38646, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38728, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38936, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20363, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31150, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37300, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38584, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24801, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20102, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20698, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23534, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23615, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26009, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29134, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30274, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34044, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36988, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40845, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26248, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38446, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21129, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26491, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26611, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27969, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28316, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29705, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30041, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30827, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32016, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 39006, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20845, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25134, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38520, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20523, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23833, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28138, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36650, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24459, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24900, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26647, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38534, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21033, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21519, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23653, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26131, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26446, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26792, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27877, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29702, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30178, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32633, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35023, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35041, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37324, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38626, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21311, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28346, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21533, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29136, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29848, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34298, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38563, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40023, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40607, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26519, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28107, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33256, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31435, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31520, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31890, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29376, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28825, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35672, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20160, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33590, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21050, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20999, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24230, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25299, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31958, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23429, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27934, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26292, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36667, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34892, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38477, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35211, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24275, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20800, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21952, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22618, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26228, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20958, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29482, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30410, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31036, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31070, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31077, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31119, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38742, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31934, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32701, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34322, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35576, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36920, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37117, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 39151, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 39164, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 39208, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40372, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20398, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20711, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20813, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21193, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21220, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21329, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21917, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22022, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22120, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22592, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22696, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23652, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23662, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24724, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24936, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24974, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25074, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25935, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26082, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26257, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26757, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28023, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28186, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28450, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29038, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29227, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29730, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30865, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31038, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31049, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31048, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31056, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31062, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31069, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31117, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31118, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31296, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31361, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31680, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32265, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32321, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32626, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32773, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33261, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33401, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33879, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35088, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35222, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35585, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35641, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36051, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36104, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36790, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38627, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38911, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38971, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20006, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20917, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20840, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20352, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20805, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20864, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21191, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21242, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21845, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21913, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21986, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22707, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22852, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22868, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23138, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23336, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24274, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24281, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24425, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24493, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24792, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24910, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24840, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24928, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25140, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25540, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25628, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25682, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25942, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26395, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26454, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27513, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28379, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28363, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28702, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30631, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29237, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29359, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29809, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29958, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30011, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30237, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30239, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30427, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30452, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30538, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30528, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30924, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31409, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31867, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32091, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32574, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33618, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33775, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34681, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35137, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35206, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35519, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35531, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35565, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35722, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36664, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36978, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37273, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37494, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38524, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38875, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38923, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 39698, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 141386, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 141380, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 144341, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 15261, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 16408, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 16441, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 152137, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 154832, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 163539, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40771, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40846, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5620, -5623, -5626, -5628, -1, -1, -5620, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5631, -5634, -5637, -5639, -1, -1, -5631, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5642, -5645, -5648, -5650, -1, -1, -5642, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5653, -5657, -5661, -5663, -1, -1, -5653, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5667, -5671, -5675, -5677, -1, -1, -5667, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5681, -5684, -5687, -5689, -1, -1, -5692, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5692, -5684, -5695, -5689, -1, -1, -5692, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5697, -5700, -5703, -5705, -1, -1, -5697, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5708, -5711, -5714, -5716, -1, -1, -5708, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5719, -5722, -5725, -5727, -1, -1, -5719, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5730, -5733, -5736, -5738, -1, -1, -5730, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_COMPAT, -5741, -5744, -5747, -5749, -1, -1, -5741, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5752, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 26, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5755, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, UTF8PROC_DECOMP_TYPE_FONT, 1506, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, UTF8PROC_DECOMP_TYPE_FONT, 1488, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, UTF8PROC_DECOMP_TYPE_FONT, 1491, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, UTF8PROC_DECOMP_TYPE_FONT, 1492, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, UTF8PROC_DECOMP_TYPE_FONT, 1499, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, UTF8PROC_DECOMP_TYPE_FONT, 1500, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, UTF8PROC_DECOMP_TYPE_FONT, 1501, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, UTF8PROC_DECOMP_TYPE_FONT, 1512, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, UTF8PROC_DECOMP_TYPE_FONT, 1514, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ES, UTF8PROC_DECOMP_TYPE_FONT, 43, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5758, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5761, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5764, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5767, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5770, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5773, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5776, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5779, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5782, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5785, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5788, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5791, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5794, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5797, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5800, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5803, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5806, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5809, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5812, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5815, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5818, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5821, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5824, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5827, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5830, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5833, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5836, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5839, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5842, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5845, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5848, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, 0, -5851, 0, 0, 0, -1, -1, 0, 5, 7,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_R, UTF8PROC_DECOMP_TYPE_COMPAT, -5854, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1649, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1649, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1659, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1659, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1659, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1659, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1662, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1662, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1662, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1662, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1664, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1664, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1664, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1664, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1658, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1658, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1658, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1658, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1663, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1663, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1663, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1663, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1657, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1657, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1657, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1657, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1700, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1700, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1700, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1700, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1702, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1702, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1702, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1702, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1668, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1668, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1668, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1668, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1667, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1667, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1667, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1667, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1670, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1670, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1670, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1670, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1671, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1671, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1671, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1671, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1677, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1677, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1676, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1676, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1678, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1678, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1672, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1672, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1688, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1688, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1681, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1681, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1705, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1705, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1705, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1705, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1711, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1711, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1711, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1711, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1715, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1715, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1715, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1715, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1713, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1713, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1713, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1713, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1722, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1722, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1723, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1723, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1723, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1723, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1728, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1728, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1729, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1729, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1729, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1729, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1726, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1726, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1726, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1726, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1746, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1746, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1747, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1747, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1709, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1709, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1709, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1709, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1735, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1735, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1734, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1734, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1736, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1736, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1655, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1739, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1739, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1733, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1733, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1737, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1737, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1744, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1744, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1744, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1744, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1609, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1609, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5857, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -5857, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5860, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -5860, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5863, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -5863, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5866, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -5866, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5869, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -5869, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5872, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -5872, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5875, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -5875, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5875, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5878, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -5878, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5878, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1740, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1740, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1740, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1740, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5881, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5884, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5887, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5890, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5893, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5896, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5899, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5902, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5905, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5908, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5911, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5914, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5917, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5920, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5923, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5926, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5929, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5932, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5935, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5938, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5941, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5944, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5947, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5950, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5953, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5956, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5959, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5962, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5965, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5968, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5971, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5974, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5977, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5980, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5983, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5986, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5989, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5992, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5995, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -5998, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6001, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6004, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6007, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6010, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6013, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6016, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6019, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6022, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6025, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6028, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6031, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6034, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6037, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6040, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6043, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6046, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6049, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6052, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6055, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6058, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6061, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6064, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6067, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6070, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6073, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6076, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6079, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6082, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6085, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6088, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6091, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6094, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6097, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6100, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6103, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6106, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6109, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6112, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6115, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6118, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6121, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6124, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6127, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6130, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6133, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6136, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6139, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6142, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6145, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6148, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6151, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6154, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6157, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6160, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6164, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6168, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6172, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6176, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6180, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6184, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6187, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -5887, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6190, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -5890, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6193, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6196, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -5902, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6199, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -5905, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -5908, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6202, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6205, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -5920, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6208, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -5923, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -5926, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6211, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6214, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -5932, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6217, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -5935, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -5938, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6025, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6028, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6037, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6040, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6043, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6055, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6058, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6061, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6064, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6076, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6079, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6082, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6220, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6094, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6223, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6226, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6112, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6229, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6115, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6118, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6157, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6232, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6235, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6142, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6238, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6145, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6148, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5881, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5884, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6241, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5887, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6244, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5893, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5896, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5899, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5902, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6247, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5911, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5914, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5917, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5920, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6250, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5932, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5941, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5944, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5947, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5950, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5953, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5959, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5962, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5965, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5968, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5971, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5974, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6253, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5977, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5980, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5983, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5986, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5989, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5992, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5998, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6001, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6004, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6007, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6010, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6013, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6016, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6019, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6022, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6031, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6034, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6046, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6049, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6052, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6055, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6058, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6067, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6070, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6073, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6076, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6256, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6085, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6088, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6091, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6094, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6103, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6106, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6109, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6112, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6259, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6121, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6124, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6262, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6133, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6136, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6139, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6142, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6265, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -5887, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6244, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -5902, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6247, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -5920, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6250, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -5932, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6268, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -5971, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6271, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6274, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6277, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6055, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6058, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6076, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6112, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6259, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6142, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6265, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6280, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6284, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6288, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6292, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6295, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6298, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6301, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6304, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6307, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6310, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6313, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6316, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6319, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6322, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6325, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6328, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6331, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6334, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6337, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6340, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6343, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6346, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6349, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6352, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6355, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6358, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6274, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6361, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6364, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6367, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6370, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6292, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6295, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6298, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6301, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6304, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6307, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6310, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6313, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6316, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6319, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6322, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6325, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6328, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6331, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6334, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6337, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6340, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6343, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6346, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6349, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6352, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6355, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6358, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6274, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6361, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6364, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6367, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6370, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6352, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6355, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6358, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6274, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6271, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6277, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -5995, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -5962, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -5965, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -5968, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6352, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6355, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6358, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -5995, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -5998, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6373, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6373, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6376, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6380, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6380, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6384, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6388, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6392, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6396, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6400, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6404, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6404, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6408, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6412, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6416, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6420, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6424, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6428, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6428, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6432, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6436, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6436, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6440, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6440, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6444, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6448, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6448, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6452, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6456, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6456, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6460, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6460, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6464, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6468, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6468, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6472, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6472, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6476, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6480, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6484, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6488, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6488, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6492, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6496, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6500, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6504, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6508, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6508, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6512, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6516, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6520, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6524, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6528, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6532, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6532, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6536, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6536, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6540, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6540, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6544, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6548, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6552, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6556, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6560, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6564, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6568, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6572, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6576, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6580, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6584, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6588, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6592, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6592, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6596, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6600, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6604, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6608, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6608, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6612, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6616, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6620, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6624, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6628, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6632, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6636, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6640, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6644, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6648, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6652, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6656, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6660, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6664, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6668, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6672, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6676, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6680, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6684, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6688, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6692, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6696, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6512, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6520, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6700, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6704, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6708, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6712, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6716, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6720, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6716, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6708, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6724, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6728, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6732, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6736, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6740, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6720, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6484, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, -6444, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6744, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6748, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6752, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6756, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6760, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6765, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6770, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6775, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6780, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6785, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6790, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6795, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6799, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6818, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SC, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6827, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 44, 0, 0, 0, -1, -1, 0, 7, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 12289, 0, 0, 0, -1, -1, 0, 0, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 12290, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 58, 0, 0, 0, -1, -1, 0, 6, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 59, 0, 0, 0, -1, -1, 0, 7, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 33, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 63, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 12310, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 12311, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 8230, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 8229, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PD, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 8212, 0, 0, 0, -1, -1, 0, 0, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PD, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 8211, 0, 0, 0, -1, -1, 0, 0, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PC, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 95, 0, 0, 0, -1, -1, 0, 10, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 40, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 41, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 123, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 125, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 12308, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 12309, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 12304, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 12305, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 12298, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 12299, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 12296, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 12297, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 12300, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 12301, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 12302, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 12303, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 91, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_VERTICAL, 93, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 8254, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PC, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_COMPAT, 95, 0, 0, 0, -1, -1, 0, 10, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_CS, UTF8PROC_DECOMP_TYPE_SMALL, 44, 0, 0, 0, -1, -1, 0, 7, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 12289, 0, 0, 0, -1, -1, 0, 0, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_CS, UTF8PROC_DECOMP_TYPE_SMALL, 46, 0, 0, 0, -1, -1, 0, 8, 9,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 59, 0, 0, 0, -1, -1, 0, 7, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_CS, UTF8PROC_DECOMP_TYPE_SMALL, 58, 0, 0, 0, -1, -1, 0, 6, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 63, 0, 0, 0, -1, -1, 0, 0, 10,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 33, 0, 0, 0, -1, -1, 0, 0, 10,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PD, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 8212, 0, 0, 0, -1, -1, 0, 0, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 40, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 41, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 123, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 125, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 12308, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 12309, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_SMALL, 35, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 38, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 42, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ES, UTF8PROC_DECOMP_TYPE_SMALL, 43, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PD, 0, UTF8PROC_BIDI_CLASS_ES, UTF8PROC_DECOMP_TYPE_SMALL, 45, 0, 0, 0, -1, -1, 0, 0, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 60, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 62, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 61, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 92, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SC, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_SMALL, 36, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_SMALL, 37, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_SMALL, 64, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6832, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6835, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6838, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6841, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6844, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6847, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6850, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6853, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6856, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6859, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6862, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6865, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6868, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, -6871, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1569, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1570, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1570, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1571, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1571, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1572, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1572, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1573, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1573, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1574, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1574, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1574, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1574, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1575, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1575, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1576, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1576, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1576, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1576, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1577, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1577, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1578, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1578, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1578, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1578, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1579, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1579, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1579, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1579, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1580, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1580, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1580, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1580, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1581, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1581, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1581, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1581, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1582, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1582, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1582, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1582, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1583, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1583, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1584, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1584, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1585, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1585, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1586, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1586, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1587, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1587, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1587, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1587, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1588, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1588, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1588, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1588, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1589, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1589, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1589, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1589, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1590, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1590, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1590, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1590, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1591, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1591, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1591, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1591, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1592, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1592, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1592, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1592, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1593, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1593, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1593, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1593, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1594, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1594, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1594, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1594, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1601, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1601, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1601, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1601, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1602, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1602, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1602, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1602, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1603, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1603, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1603, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1603, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1604, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1604, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1604, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1604, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1605, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1605, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1605, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1605, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1606, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1606, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1606, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1606, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1607, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1607, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1607, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1607, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1608, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1608, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1609, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1609, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, 1610, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, 1610, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_INITIAL, 1610, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_MEDIAL, 1610, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6874, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6874, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6877, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6877, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6880, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6880, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_ISOLATED, -6883, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_AL, UTF8PROC_DECOMP_TYPE_FINAL, -6883, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 33, 0, 0, 0, -1, -1, 0, 0, 10,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 34, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_WIDE, 35, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SC, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_WIDE, 36, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_WIDE, 37, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 38, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 39, 0, 0, 0, -1, -1, 0, 8, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 40, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 41, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 42, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ES, UTF8PROC_DECOMP_TYPE_WIDE, 43, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_CS, UTF8PROC_DECOMP_TYPE_WIDE, 44, 0, 0, 0, -1, -1, 0, 7, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PD, 0, UTF8PROC_BIDI_CLASS_ES, UTF8PROC_DECOMP_TYPE_WIDE, 45, 0, 0, 0, -1, -1, 0, 0, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_CS, UTF8PROC_DECOMP_TYPE_WIDE, 46, 0, 0, 0, -1, -1, 0, 8, 9,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_CS, UTF8PROC_DECOMP_TYPE_WIDE, 47, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_WIDE, 48, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_WIDE, 49, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_WIDE, 50, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_WIDE, 51, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_WIDE, 52, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_WIDE, 53, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_WIDE, 54, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_WIDE, 55, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_WIDE, 56, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_WIDE, 57, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_CS, UTF8PROC_DECOMP_TYPE_WIDE, 58, 0, 0, 0, -1, -1, 0, 6, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 59, 0, 0, 0, -1, -1, 0, 7, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 60, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 61, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 62, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 63, 0, 0, 0, -1, -1, 0, 0, 10,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 64, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 65, 0, 65345, 0, -1, -1, 65345, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 66, 0, 65346, 0, -1, -1, 65346, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 67, 0, 65347, 0, -1, -1, 65347, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 68, 0, 65348, 0, -1, -1, 65348, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 69, 0, 65349, 0, -1, -1, 65349, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 70, 0, 65350, 0, -1, -1, 65350, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 71, 0, 65351, 0, -1, -1, 65351, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 72, 0, 65352, 0, -1, -1, 65352, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 73, 0, 65353, 0, -1, -1, 65353, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 74, 0, 65354, 0, -1, -1, 65354, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 75, 0, 65355, 0, -1, -1, 65355, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 76, 0, 65356, 0, -1, -1, 65356, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 77, 0, 65357, 0, -1, -1, 65357, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 78, 0, 65358, 0, -1, -1, 65358, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 79, 0, 65359, 0, -1, -1, 65359, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 80, 0, 65360, 0, -1, -1, 65360, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 81, 0, 65361, 0, -1, -1, 65361, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 82, 0, 65362, 0, -1, -1, 65362, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 83, 0, 65363, 0, -1, -1, 65363, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 84, 0, 65364, 0, -1, -1, 65364, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 85, 0, 65365, 0, -1, -1, 65365, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 86, 0, 65366, 0, -1, -1, 65366, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 87, 0, 65367, 0, -1, -1, 65367, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 88, 0, 65368, 0, -1, -1, 65368, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 89, 0, 65369, 0, -1, -1, 65369, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 90, 0, 65370, 0, -1, -1, 65370, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 91, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 92, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 93, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 94, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_PC, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 95, 0, 0, 0, -1, -1, 0, 10, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 96, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 97, 65313, 0, 65313, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 98, 65314, 0, 65314, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 99, 65315, 0, 65315, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 100, 65316, 0, 65316, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 101, 65317, 0, 65317, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 102, 65318, 0, 65318, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 103, 65319, 0, 65319, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 104, 65320, 0, 65320, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 105, 65321, 0, 65321, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 106, 65322, 0, 65322, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 107, 65323, 0, 65323, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 108, 65324, 0, 65324, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 109, 65325, 0, 65325, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 110, 65326, 0, 65326, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 111, 65327, 0, 65327, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 112, 65328, 0, 65328, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 113, 65329, 0, 65329, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 114, 65330, 0, 65330, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 115, 65331, 0, 65331, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 116, 65332, 0, 65332, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 117, 65333, 0, 65333, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 118, 65334, 0, 65334, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 119, 65335, 0, 65335, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 120, 65336, 0, 65336, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 121, 65337, 0, 65337, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_WIDE, 122, 65338, 0, 65338, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 123, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 124, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 125, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 126, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 10629, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 10630, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, 12290, 0, 0, 0, -1, -1, 0, 0, 10,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PS, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, 12300, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_PE, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, 12301, 0, 0, 0, -1, -1, 0, 0, 11,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, 12289, 0, 0, 0, -1, -1, 0, 0, 12,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_PO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, 12539, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12530, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12449, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12451, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12453, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12455, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12457, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12515, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12517, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12519, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12483, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12540, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12450, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12452, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12454, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12456, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12458, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12459, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12461, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12463, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12465, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12467, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12469, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12471, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12473, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12475, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12477, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12479, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12481, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12484, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12486, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12488, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12490, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12491, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12492, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12493, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12494, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12495, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12498, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12501, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12504, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12507, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12510, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12511, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12512, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12513, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12514, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12516, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12518, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12520, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12521, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12522, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12523, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12524, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12525, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12527, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12531, 0, 0, 0, -1, -1, 0, 4, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12441, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12442, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12644, 0, 0, 0, -1, -1, 0, 5, 7,false, true, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12593, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12594, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12595, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12596, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12597, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12598, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12599, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12600, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12601, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12602, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12603, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12604, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12605, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12606, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12607, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12608, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12609, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12610, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12611, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12612, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12613, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12614, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12615, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12616, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12617, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12618, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12619, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12620, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12621, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12622, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12623, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12624, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12625, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12626, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12627, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12628, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12629, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12630, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12631, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12632, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12633, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12634, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12635, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12636, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12637, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12638, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12639, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12640, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12641, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12642, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_NARROW, 12643, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SC, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_WIDE, 162, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SC, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_WIDE, 163, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 172, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SK, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 175, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_WIDE, 166, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SC, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_WIDE, 165, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SC, 0, UTF8PROC_BIDI_CLASS_ET, UTF8PROC_DECOMP_TYPE_WIDE, 8361, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, 9474, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, 8592, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, 8593, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, 8594, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, 8595, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, 9632, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_ON, UTF8PROC_DECOMP_TYPE_NARROW, 9675, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_CF, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 11, 13,false, false, true, false, false, false, false}, {UTF8PROC_CATEGORY_NL, 0, UTF8PROC_BIDI_CLASS_ON, 0, 0, 0, 0, 0, -1, -1, 0, 5, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MN, 220, UTF8PROC_BIDI_CLASS_NSM, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66600, 0, -1, -1, 66600, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66601, 0, -1, -1, 66601, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66602, 0, -1, -1, 66602, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66603, 0, -1, -1, 66603, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66604, 0, -1, -1, 66604, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66605, 0, -1, -1, 66605, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66606, 0, -1, -1, 66606, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66607, 0, -1, -1, 66607, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66608, 0, -1, -1, 66608, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66609, 0, -1, -1, 66609, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66610, 0, -1, -1, 66610, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66611, 0, -1, -1, 66611, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66612, 0, -1, -1, 66612, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66613, 0, -1, -1, 66613, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66614, 0, -1, -1, 66614, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66615, 0, -1, -1, 66615, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66616, 0, -1, -1, 66616, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66617, 0, -1, -1, 66617, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66618, 0, -1, -1, 66618, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66619, 0, -1, -1, 66619, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66620, 0, -1, -1, 66620, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66621, 0, -1, -1, 66621, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66622, 0, -1, -1, 66622, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66623, 0, -1, -1, 66623, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66624, 0, -1, -1, 66624, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66625, 0, -1, -1, 66625, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66626, 0, -1, -1, 66626, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66627, 0, -1, -1, 66627, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66628, 0, -1, -1, 66628, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66629, 0, -1, -1, 66629, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66630, 0, -1, -1, 66630, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66631, 0, -1, -1, 66631, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66632, 0, -1, -1, 66632, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66633, 0, -1, -1, 66633, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66634, 0, -1, -1, 66634, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66635, 0, -1, -1, 66635, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66636, 0, -1, -1, 66636, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66637, 0, -1, -1, 66637, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66638, 0, -1, -1, 66638, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 66639, 0, -1, -1, 66639, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66560, 0, 66560, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66561, 0, 66561, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66562, 0, 66562, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66563, 0, 66563, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66564, 0, 66564, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66565, 0, 66565, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66566, 0, 66566, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66567, 0, 66567, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66568, 0, 66568, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66569, 0, 66569, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66570, 0, 66570, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66571, 0, 66571, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66572, 0, 66572, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66573, 0, 66573, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66574, 0, 66574, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66575, 0, 66575, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66576, 0, 66576, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66577, 0, 66577, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66578, 0, 66578, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66579, 0, 66579, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66580, 0, 66580, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66581, 0, 66581, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66582, 0, 66582, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66583, 0, 66583, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66584, 0, 66584, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66585, 0, 66585, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66586, 0, 66586, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66587, 0, 66587, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66588, 0, 66588, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66589, 0, 66589, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66590, 0, 66590, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66591, 0, 66591, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66592, 0, 66592, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66593, 0, 66593, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66594, 0, 66594, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66595, 0, 66595, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66596, 0, 66596, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66597, 0, 66597, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66598, 0, 66598, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 66599, 0, 66599, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_NO, 0, UTF8PROC_BIDI_CLASS_R, 0, 0, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 22080, -1, 0, 0, 0,false, false, false, false, false, true, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 22140, -1, 0, 0, 0,false, false, false, false, false, true, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, -6886, 0, 0, 0, -1, -1, 0, 0, 0,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, -6889, 0, 0, 0, 22200, -1, 0, 0, 0,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, -6892, 0, 0, 0, -1, -1, 0, 0, 0,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, -6895, 0, 0, 0, -1, -1, 0, 0, 0,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, -6898, 0, 0, 0, -1, -1, 0, 0, 0,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, -6901, 0, 0, 0, -1, -1, 0, 0, 0,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, -6904, 0, 0, 0, -1, -1, 0, 0, 0,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 216, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, 54, 0, 12, 14,false, false, false, true, false, false, false}, {UTF8PROC_CATEGORY_MC, 216, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_MC, 226, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, -1, 0, 12, 14,false, false, false, false, false, false, true}, {UTF8PROC_CATEGORY_MC, 216, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, 55, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MC, 216, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, 56, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MC, 216, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, 57, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MC, 216, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, 58, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_MC, 216, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, -1, 59, 0, 12, 14,false, false, false, true, false, false, true}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 22260, -1, 0, 0, 0,false, false, false, false, false, true, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, 0, 0, 0, 0, 22320, -1, 0, 0, 0,false, false, false, false, false, true, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, -6907, 0, 0, 0, 22380, -1, 0, 0, 0,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, -6910, 0, 0, 0, 22440, -1, 0, 0, 0,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, -6913, 0, 0, 0, -1, -1, 0, 0, 0,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, -6916, 0, 0, 0, -1, -1, 0, 0, 0,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, -6919, 0, 0, 0, -1, -1, 0, 0, 0,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SO, 0, UTF8PROC_BIDI_CLASS_L, 0, -6922, 0, 0, 0, -1, -1, 0, 0, 0,true, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 65, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 71, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 74, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 75, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 79, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 83, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 84, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 85, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 86, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 87, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 88, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 89, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 97, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 98, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 99, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 102, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 107, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 109, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 110, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 112, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 113, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 114, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 115, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 116, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 117, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 118, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 119, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 120, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 121, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 122, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 305, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 567, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 913, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 914, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 916, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 917, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 918, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 919, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 920, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 921, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 922, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 923, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 924, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 925, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 926, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 927, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 929, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1012, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 931, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 932, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 933, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 934, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 935, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 936, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 937, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 8711, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 945, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 946, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 948, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 949, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 950, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 951, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 952, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 953, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 954, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 955, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 956, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 957, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 958, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 959, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 961, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 962, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 963, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 964, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 965, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 966, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 967, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 968, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 969, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_SM, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 8706, 0, 0, 0, -1, -1, 0, 0, 0,false, false, false, false, true, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1013, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 977, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1008, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 981, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 1009, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 982, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LU, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 988, 0, 0, 0, -1, -1, 0, 5, 6,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LL, 0, UTF8PROC_BIDI_CLASS_L, UTF8PROC_DECOMP_TYPE_FONT, 989, 0, 0, 0, -1, -1, 0, 5, 5,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_FONT, 48, 0, 0, 0, -1, -1, 0, 9, 8,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_FONT, 49, 0, 0, 0, -1, -1, 0, 9, 8,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_FONT, 50, 0, 0, 0, -1, -1, 0, 9, 8,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_FONT, 51, 0, 0, 0, -1, -1, 0, 9, 8,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_FONT, 52, 0, 0, 0, -1, -1, 0, 9, 8,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_FONT, 53, 0, 0, 0, -1, -1, 0, 9, 8,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_FONT, 54, 0, 0, 0, -1, -1, 0, 9, 8,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_FONT, 55, 0, 0, 0, -1, -1, 0, 9, 8,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_FONT, 56, 0, 0, 0, -1, -1, 0, 9, 8,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_ND, 0, UTF8PROC_BIDI_CLASS_EN, UTF8PROC_DECOMP_TYPE_FONT, 57, 0, 0, 0, -1, -1, 0, 9, 8,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20029, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20024, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20033, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 131362, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20320, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20411, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20482, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20602, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20633, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20687, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 13470, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 132666, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20820, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20836, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20855, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 132380, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 13497, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20839, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20877, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 132427, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20887, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20900, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20172, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20908, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 168415, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20981, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20995, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 13535, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21051, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21062, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21106, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21111, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 13589, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21253, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21254, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21321, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21338, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21363, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21373, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21375, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 133676, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28784, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21450, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21471, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 133987, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21483, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21489, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21510, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21662, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21560, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21576, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21608, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21666, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21750, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21776, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21843, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21859, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21892, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21931, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21939, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21954, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22294, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22295, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22097, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22132, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22766, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22478, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22516, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22541, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22411, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22578, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22577, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22700, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 136420, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22770, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22775, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22790, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22810, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22818, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 22882, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 136872, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 136938, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23020, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23067, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23079, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23000, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23142, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 14062, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 14076, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23304, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23358, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 137672, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23491, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23512, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23539, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 138008, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23551, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23558, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24403, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23586, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 14209, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23648, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23744, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23693, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 138724, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23875, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 138726, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23918, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23915, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23932, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24033, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24034, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 14383, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24061, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24104, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24125, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24169, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 14434, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 139651, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 14460, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24240, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24243, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24246, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 172946, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24318, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 140081, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33281, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24354, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 14535, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 144056, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 156122, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24418, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24427, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 14563, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24474, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24525, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24535, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24569, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24705, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 14650, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 14620, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 141012, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24775, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24904, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24908, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24954, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25010, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 24996, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25007, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25054, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25104, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25115, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25181, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25265, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25300, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25424, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 142092, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25405, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25340, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25448, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25475, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25572, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 142321, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25634, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25541, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25513, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 14894, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25705, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25726, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25757, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25719, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 14956, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 25964, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 143370, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26083, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26360, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26185, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 15129, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 15112, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 15076, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20882, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 20885, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26368, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26268, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32941, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 17369, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26401, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26462, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26451, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 144323, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 15177, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26618, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26501, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26706, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 144493, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26766, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26655, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26900, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 26946, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27043, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27114, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27304, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 145059, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27355, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 15384, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27425, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 145575, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27476, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 15438, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27506, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27551, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27579, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 146061, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 138507, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 146170, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27726, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 146620, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27839, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27853, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27751, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27926, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27966, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28009, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28024, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28037, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 146718, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 27956, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28207, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28270, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 15667, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28359, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 147153, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28153, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28526, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 147294, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 147342, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28614, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28729, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28699, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 15766, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28746, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28797, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28791, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28845, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 132389, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 28997, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 148067, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29084, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 148395, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29224, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29264, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 149000, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29312, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29333, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 149301, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 149524, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29562, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29579, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 16044, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29605, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 16056, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29767, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29788, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29829, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29898, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 16155, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 29988, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 150582, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30014, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 150674, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 139679, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30224, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 151457, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 151480, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 151620, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 16380, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 16392, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 151795, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 151794, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 151833, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 151859, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30494, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30495, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30603, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 16454, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 16534, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 152605, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 30798, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 16611, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 153126, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 153242, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 153285, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31211, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 16687, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31306, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31311, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 153980, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 154279, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31470, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 16898, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 154539, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31686, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31689, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 16935, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 154752, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31954, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 17056, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31976, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 31971, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32000, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 155526, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32099, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 17153, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32199, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32258, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32325, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 17204, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 156200, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 156231, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 17241, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 156377, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32634, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 156478, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32661, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32762, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 156890, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 156963, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32864, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 157096, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32880, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 144223, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 17365, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 32946, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33027, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 17419, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33086, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23221, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 157607, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 157621, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 144275, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 144284, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33284, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36766, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 17515, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33425, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33419, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33437, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 21171, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33457, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33459, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33469, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33510, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 158524, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33565, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33635, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33709, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33571, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33725, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33767, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33619, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33738, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33740, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 33756, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 158774, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 159083, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 158933, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 17707, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34033, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34035, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34070, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 160714, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34148, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 159532, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 17757, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 17761, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 159665, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 159954, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 17771, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34384, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34407, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34409, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34473, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34440, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34574, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34530, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34600, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34667, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34694, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 17879, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34785, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34817, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 17913, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34912, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 34915, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 161383, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35031, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35038, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 17973, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35066, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 13499, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 161966, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 162150, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18110, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18119, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35488, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 35925, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 162984, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36011, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36033, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36123, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36215, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 163631, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 133124, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36299, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36284, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36336, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 133342, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 36564, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 165330, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 165357, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37012, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37105, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37137, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 165678, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37147, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37432, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37591, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37592, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37500, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37881, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 37909, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 166906, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38283, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18837, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38327, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 167287, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 18918, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38595, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 23986, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38691, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 168261, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 168474, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 19054, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 19062, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38880, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 168970, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 19122, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 169110, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 38953, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 169398, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 39138, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 19251, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 39209, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 39335, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 39362, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 39422, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 19406, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 170800, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40000, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40189, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 19662, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 19693, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40295, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 172238, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 19704, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 172293, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 172558, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 172689, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40635, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 19798, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40697, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40702, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40709, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40719, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40726, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 40763, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, {UTF8PROC_CATEGORY_LO, 0, UTF8PROC_BIDI_CLASS_L, 0, 173568, 0, 0, 0, -1, -1, 0, 0, 7,false, false, false, false, false, false, false}, }; const int32_t utf8proc_combinations[] = { 192, 193, 194, 195, 196, 197, -1, 256, 258, 260, 550, 461, -1, -1, 512, 514, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7680, 7840, -1, -1, -1, -1, -1, 7842, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 262, 264, -1, -1, -1, 199, -1, -1, -1, 266, 268, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 200, 201, 202, 7868, 203, -1, 552, 274, 276, 280, 278, 282, -1, -1, 516, 518, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7864, -1, 7704, 7706, -1, -1, 7866, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 204, 205, 206, 296, 207, -1, -1, 298, 300, 302, 304, 463, -1, -1, 520, 522, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7882, -1, -1, 7724, -1, -1, 7880, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 504, 323, -1, 209, -1, -1, 325, -1, -1, -1, 7748, 327, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7750, 7752, 7754, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 210, 211, 212, 213, 214, -1, -1, 332, 334, 490, 558, 465, 336, 416, 524, 526, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7884, -1, -1, -1, -1, -1, 7886, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 217, 218, 219, 360, 220, 366, -1, 362, 364, 370, -1, 467, 368, 431, 532, 534, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7908, -1, 7798, 7796, -1, 7794, 7910, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7922, 221, 374, 7928, 376, -1, -1, 562, -1, -1, 7822, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7924, -1, -1, -1, -1, -1, 7926, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 224, 225, 226, 227, 228, 229, -1, 257, 259, 261, 551, 462, -1, -1, 513, 515, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7681, 7841, -1, -1, -1, -1, -1, 7843, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 263, 265, -1, -1, -1, 231, -1, -1, -1, 267, 269, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 232, 233, 234, 7869, 235, -1, 553, 275, 277, 281, 279, 283, -1, -1, 517, 519, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7865, -1, 7705, 7707, -1, -1, 7867, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 236, 237, 238, 297, 239, -1, -1, 299, 301, 303, -1, 464, -1, -1, 521, 523, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7883, -1, -1, 7725, -1, -1, 7881, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 505, 324, -1, 241, -1, -1, 326, -1, -1, -1, 7749, 328, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7751, 7753, 7755, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 242, 243, 244, 245, 246, -1, -1, 333, 335, 491, 559, 466, 337, 417, 525, 527, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7885, -1, -1, -1, -1, -1, 7887, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 249, 250, 251, 361, 252, 367, -1, 363, 365, 371, -1, 468, 369, 432, 533, 535, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7909, -1, 7799, 7797, -1, 7795, 7911, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7923, 253, 375, 7929, 255, 7833, -1, 563, -1, -1, 7823, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7925, -1, -1, -1, -1, -1, 7927, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7696, -1, -1, -1, 7690, 270, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7692, 7694, 7698, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7697, -1, -1, -1, 7691, 271, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7693, 7695, 7699, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 500, 284, -1, -1, -1, 290, 7712, 286, -1, 288, 486, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 501, 285, -1, -1, -1, 291, 7713, 287, -1, 289, 487, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 292, -1, 7718, -1, 7720, -1, -1, -1, 7714, 542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7716, -1, -1, -1, 7722, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 293, -1, 7719, -1, 7721, -1, -1, -1, 7715, 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7717, 7830, -1, -1, 7723, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 309, -1, -1, -1, -1, -1, -1, -1, -1, 496, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7728, -1, -1, -1, -1, 310, -1, -1, -1, -1, 488, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7730, 7732, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7729, -1, -1, -1, -1, 311, -1, -1, -1, -1, 489, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7731, 7733, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 313, -1, -1, -1, -1, 315, -1, -1, -1, -1, 317, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7734, 7738, 7740, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 314, -1, -1, -1, -1, 316, -1, -1, -1, -1, 318, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7735, 7739, 7741, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 340, -1, -1, -1, -1, 342, -1, -1, -1, 7768, 344, -1, -1, 528, 530, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7770, 7774, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 341, -1, -1, -1, -1, 343, -1, -1, -1, 7769, 345, -1, -1, 529, 531, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7771, 7775, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 346, 348, -1, -1, -1, 350, -1, -1, -1, 7776, 352, -1, -1, -1, -1, 536, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7778, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 347, 349, -1, -1, -1, 351, -1, -1, -1, 7777, 353, -1, -1, -1, -1, 537, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7779, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 354, -1, -1, -1, 7786, 356, -1, -1, -1, -1, 538, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7788, 7790, 7792, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7831, -1, 355, -1, -1, -1, 7787, 357, -1, -1, -1, -1, 539, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7789, 7791, 7793, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7808, 7810, 372, -1, 7812, -1, -1, -1, -1, -1, 7814, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7816, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7809, 7811, 373, -1, 7813, 7832, -1, -1, -1, -1, 7815, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7817, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 377, 7824, -1, -1, -1, -1, -1, -1, -1, 379, 381, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7826, 7828, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 378, 7825, -1, -1, -1, -1, -1, -1, -1, 380, 382, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7827, 7829, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 475, 471, -1, -1, -1, -1, -1, 469, -1, -1, -1, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 476, 472, -1, -1, -1, -1, -1, 470, -1, -1, -1, 474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 478, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 479, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 481, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 508, -1, -1, -1, -1, -1, 482, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 509, -1, -1, -1, -1, -1, 483, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 492, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 493, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 494, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 495, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 506, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 507, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 510, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 511, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 554, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 555, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7756, -1, -1, 7758, -1, -1, 556, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7757, -1, -1, 7759, -1, -1, 557, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 560, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 561, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8173, 901, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8129, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8122, 902, -1, -1, -1, -1, -1, 8121, 8120, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7944, 7945, -1, 8124, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8136, 904, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7960, 7961, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8138, 905, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7976, 7977, -1, 8140, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8154, 906, -1, -1, 938, -1, -1, 8153, 8152, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7992, 7993, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8184, 908, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8008, 8009, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8170, 910, -1, -1, 939, -1, -1, 8169, 8168, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8025, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8186, 911, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8040, 8041, -1, 8188, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8146, 912, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8151, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8048, 940, -1, -1, -1, -1, -1, 8113, 8112, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7936, 7937, 8118, 8115, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8050, 941, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7952, 7953, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8052, 942, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7968, 7969, 8134, 8131, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8054, 943, -1, -1, 970, -1, -1, 8145, 8144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7984, 7985, 8150, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8162, 944, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8167, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8058, 973, -1, -1, 971, -1, -1, 8161, 8160, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8016, 8017, 8166, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8056, 972, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8000, 8001, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8060, 974, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8032, 8033, 8182, 8179, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 979, -1, -1, 980, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1024, -1, -1, -1, 1025, -1, -1, -1, 1238, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1027, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1031, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1036, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1037, -1, -1, -1, 1252, -1, -1, 1250, 1049, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1264, -1, -1, 1262, 1038, -1, -1, -1, 1266, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1117, -1, -1, -1, 1253, -1, -1, 1251, 1081, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1104, -1, -1, -1, 1105, -1, -1, -1, 1239, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1107, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1111, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1265, -1, -1, 1263, 1118, -1, -1, -1, 1267, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1142, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1143, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1244, -1, -1, -1, 1217, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1245, -1, -1, -1, 1218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1234, -1, -1, -1, 1232, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1235, -1, -1, -1, 1233, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1242, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1243, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1246, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1247, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1254, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1255, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1258, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1259, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1260, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1261, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1268, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1269, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1272, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1570, 1571, 1573, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1572, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1574, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1728, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1730, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1747, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2345, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2353, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2356, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2507, 2508, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2888, 2891, 2892, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2964, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3020, 3018, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3019, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3264, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3271, 3272, 3274, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3275, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3402, 3404, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3403, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3546, 3548, 3550, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3549, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6918, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6920, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6922, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6924, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6926, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6930, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6971, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6973, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6976, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6977, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6979, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7682, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7684, 7686, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7683, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7685, 7687, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7688, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7689, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7700, 7702, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7701, 7703, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7708, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7709, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7710, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7711, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7726, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7727, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7736, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7737, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7742, -1, -1, -1, -1, -1, -1, -1, -1, 7744, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7746, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7743, -1, -1, -1, -1, -1, -1, -1, -1, 7745, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7747, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7760, 7762, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7761, 7763, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7764, -1, -1, -1, -1, -1, -1, -1, -1, 7766, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7765, -1, -1, -1, -1, -1, -1, -1, -1, 7767, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7772, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7773, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7780, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7781, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7782, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7783, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7784, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7785, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7800, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7801, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7802, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7803, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7804, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7806, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7805, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7807, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7820, -1, -1, -1, -1, -1, 7818, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7821, -1, -1, -1, -1, -1, 7819, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7835, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7846, 7844, -1, 7850, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7848, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7847, 7845, -1, 7851, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7849, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7852, -1, -1, -1, -1, -1, 7862, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7853, -1, -1, -1, -1, -1, 7863, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7856, 7854, -1, 7860, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7858, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7857, 7855, -1, 7861, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7859, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7872, 7870, -1, 7876, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7874, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7873, 7871, -1, 7877, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7875, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7878, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7879, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7890, 7888, -1, 7894, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7892, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7891, 7889, -1, 7895, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7893, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7896, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7897, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7900, 7898, -1, 7904, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7906, -1, -1, -1, -1, -1, 7902, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7901, 7899, -1, 7905, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7907, -1, -1, -1, -1, -1, 7903, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7914, 7912, -1, 7918, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7920, -1, -1, -1, -1, -1, 7916, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7915, 7913, -1, 7919, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7921, -1, -1, -1, -1, -1, 7917, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7938, 7940, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7942, 8064, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7939, 7941, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7943, 8065, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7946, 7948, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7950, 8072, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7947, 7949, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7951, 8073, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7954, 7956, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7955, 7957, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7962, 7964, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7963, 7965, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7970, 7972, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7974, 8080, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7971, 7973, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7975, 8081, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7978, 7980, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7982, 8088, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7979, 7981, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7983, 8089, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7986, 7988, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7990, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7987, 7989, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7991, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7994, 7996, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7998, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7995, 7997, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7999, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8002, 8004, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8003, 8005, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8010, 8012, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8011, 8013, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8018, 8020, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8022, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8019, 8021, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8023, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8027, 8029, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8031, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8034, 8036, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8038, 8096, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8035, 8037, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8039, 8097, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8042, 8044, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8046, 8104, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8043, 8045, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8047, 8105, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8066, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8067, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8068, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8069, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8070, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8071, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8074, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8075, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8076, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8077, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8078, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8079, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8082, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8083, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8084, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8085, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8086, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8087, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8090, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8091, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8092, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8093, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8094, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8095, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8098, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8099, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8100, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8101, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8102, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8103, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8106, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8107, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8108, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8109, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8111, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8114, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8116, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8119, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8130, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8132, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8135, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8141, 8142, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8143, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8157, 8158, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8159, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8164, 8165, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8172, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8178, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8180, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8183, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8602, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8603, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8622, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8653, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8654, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8655, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8708, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8713, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8716, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8740, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8769, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8772, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8775, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8777, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8800, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8802, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8813, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8814, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8815, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8816, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8817, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8820, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8821, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8824, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8825, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8832, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8833, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8836, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8837, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8840, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8841, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8876, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8877, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8878, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8879, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8928, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8929, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8930, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8931, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8938, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8939, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8940, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8941, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10972, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12364, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12366, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12368, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12370, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12372, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12374, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12376, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12378, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12380, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12382, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12384, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12386, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12389, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12391, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12393, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12400, 12401, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12403, 12404, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12406, 12407, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12409, 12410, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12412, 12413, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12436, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12446, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12460, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12462, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12464, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12466, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12468, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12470, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12472, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12474, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12476, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12478, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12482, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12485, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12487, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12489, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12496, 12497, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12499, 12500, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12502, 12503, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12505, 12506, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12508, 12509, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12532, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12535, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12536, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12537, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12538, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12542, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 119134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 119135, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 119136, 119137, 119138, 119139, 119140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 119227, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 119228, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 119229, 119231, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 119230, 119232, -1, -1, -1, }; XQilla-2.3.0/src/utils/XPath2Utils.cpp0000644000151400015140000002632411653565523014427 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "../exceptions/MiscException.hpp" #include #include #include #if defined(WIN32) && !defined(__CYGWIN__) #define snprintf _snprintf #endif XERCES_CPP_NAMESPACE_USE; const XMLCh* XPath2Utils::escapeURI(const XMLCh* const str, bool escapeRes, XPath2MemoryManager* memMgr) { if(XMLString::stringLen(str) == 0) { return 0; } XMLBuffer buf(1023, memMgr); const XMLCh *cptr; for (cptr = str; *cptr; cptr++) { // here we compare 16-bit XMLCh's to zero-padded 8-bit chars, so it // magically works if ((*cptr >= 'A' && *cptr <= 'Z') || (*cptr >= 'a' && *cptr <= 'z') || (*cptr >= '0' && *cptr <= '9') || *cptr == '%' || *cptr == '#' || *cptr == '-' || *cptr == '_' || *cptr == '.' || *cptr == '!' || *cptr == '~' || *cptr == '*' || *cptr == '\''|| *cptr == '(' || *cptr == ')' || (!escapeRes && (*cptr == ';' || *cptr == '/' || *cptr == '?' || *cptr == ':' || *cptr == '@' || *cptr == '&' || *cptr == '=' || *cptr == '+' || *cptr == '$' || *cptr == ',' || *cptr == '[' || *cptr == ']' ))) { buf.append(*cptr); } else { buf.append(X("%")); // if the upper 8 bits of the XMLCh are less than 10 (covers all of 8-bit ascii) if ((*cptr >> 4) < 10) buf.append((XMLCh)('0' + (*cptr >> 4))); else // covers extended ascii buf.append((XMLCh)('A' - 10 + (*cptr >> 4))); // bitwise-and the 16-bit XMLCh with octal F, 11111111 // we are checking the lower 8-bits if ((*cptr & 0xF) < 10) buf.append((XMLCh)('0' + (*cptr & 0xF))); else buf.append((XMLCh)('A' - 10 + (*cptr & 0xF))); } }//for return memMgr->getPooledString(buf.getRawBuffer()); } bool XPath2Utils::isValidURI(const XMLCh* const str, MemoryManager* memMgr) { // XMLSchema specs say: "Spaces are, in principle, allowed in the lexical space of anyURI, however, // their use is highly discouraged (unless they are encoded by %20)" // Xerces complains if a space is found, so let's encode it const XMLCh escSpace[]={ chPercent, chDigit_2, chDigit_0, chNull }; XMLBuffer buff(1023, memMgr); const XMLCh* pCursor=str; while(*pCursor) { if(*pCursor==chSpace) buff.append(escSpace); else buff.append(*pCursor); pCursor++; } return XMLUri::isValidURI(true, buff.getRawBuffer()); } const XMLCh* XPath2Utils::concatStrings(const XMLCh* src1, const XMLCh src, XPath2MemoryManager* memMgr) { XMLCh dummy[2] = {src, chNull}; return XPath2Utils::concatStrings(src1, dummy, memMgr); } const XMLCh* XPath2Utils::concatStrings(const XMLCh* src1, const XMLCh* src2, XPath2MemoryManager* memMgr) { XMLBuffer buffer(1023, memMgr); buffer.set(src1); buffer.append(src2); return memMgr->getPooledString(buffer.getRawBuffer()); } const XMLCh* XPath2Utils::concatStrings(const XMLCh* src1, const XMLCh* src2, const XMLCh* src3, XPath2MemoryManager* memMgr) { XMLBuffer buffer(1023, memMgr); buffer.set(src1); buffer.append(src2); buffer.append(src3); return memMgr->getPooledString(buffer.getRawBuffer()); } const XMLCh* XPath2Utils::asStr(const XMLCh ch, XPath2MemoryManager* memMgr) { XMLCh newStr[2] = {ch, chNull}; return memMgr->getPooledString(newStr); } const XMLCh* XPath2Utils::subString(const XMLCh* src, unsigned int offset, unsigned int count, XPath2MemoryManager* memMgr) { if (src == 0) { XQThrow2(MiscException,X("XPath2Utils:subString"),X("Cannot take substring of null string")); } AutoDeleteArray newStr(new XMLCh [ count + 1 ]); XMLString::subString(newStr, src, offset, offset + count); return memMgr->getPooledString(newStr); } const XMLCh* XPath2Utils::deleteData( const XMLCh* const target, unsigned int offset, unsigned int count, XPath2MemoryManager* memMgr) { if (target == 0) { return 0; } unsigned int targetSize = uintStrlen(target); unsigned int newSize = targetSize - count; AutoDeleteArray stringGuard(new XMLCh [newSize + 1]); XMLCh *newString = stringGuard; XMLString::copyNString(newString, target, offset);// * sizeof(XMLCh)); XMLString::copyNString(newString + offset, target + offset + count, ( targetSize - offset - count));//*sizeof(XMLCh)); newString[newSize] = 0; const XMLCh* retval = memMgr->getPooledString(newString); return retval; } const XMLCh* XPath2Utils::toLower( const XMLCh* const target, XPath2MemoryManager* memMgr) { XMLCh *newStr = XMLString::replicate(target); XMLString::lowerCase(newStr); const XMLCh* retval=memMgr->getPooledString(newStr); XMLString::release(&newStr); return retval; } const XMLCh* XPath2Utils::toUpper( const XMLCh* const target, XPath2MemoryManager* memMgr) { XMLCh *newStr = XMLString::replicate(target); XMLString::upperCase(newStr); const XMLCh* retval=memMgr->getPooledString(newStr); XMLString::release(&newStr); return retval; } const XMLCh* XPath2Utils::toCollapsedWS(const XMLCh* const target, XPath2MemoryManager* memMgr) { XMLCh *newStr = XMLString::replicate(target); XMLString::collapseWS(newStr); const XMLCh* retval=memMgr->getPooledString(newStr); XMLString::release(&newStr); return retval; } const XMLCh* XPath2Utils::normalizeEOL(const XMLCh* const src, XPath2MemoryManager* memMgr) { int len=intStrlen(src); int j=0; XMLCh* dst=(XMLCh*)memMgr->allocate((len+1)*sizeof(XMLCh*)); // A.2.3 End-of-Line Handling // For [XML 1.0] processing, all of the following must be translated to a single #xA character: // 1. the two-character sequence #xD #xA // 2. any #xD character that is not immediately followed by #xA. for(int i=0;i XPath2Utils::getVal(const XMLCh* values, XPath2MemoryManager* memMgr){ std::vector valList; bool munchWS = true; // munch initial WS unsigned int start = 0; /* XPath requires this bizarre WS separated splitting of the string, as the string can hold many id's. */ int valuesLen = intStrlen(values); for(int i = 0; i < valuesLen; i++) { switch(values[i]) { case 0x0020: case 0x0009: case 0x000d: case 0x000a: { if(!munchWS) { munchWS = true; // Found the end of a value, so add it to a vector. valList.push_back(subString(values, start, i-start, memMgr)); } break; } default: { if(munchWS) { //found the start of an ID start = i; munchWS = false; } } } } if(!munchWS) { // Found the end of a value, so add it to the list of values. valList.push_back(subString(values, start, valuesLen-start, memMgr)); } return valList; } bool XPath2Utils::containsString(std::vector values, const XMLCh* val) { for (std::vector::const_iterator it=values.begin();it!=values.end();it++) if (XPath2Utils::equals(val, *it)) return true; return false; } #define BUFFER_SIZE 1024 bool XPath2Utils::readSource(const InputSource &src, MemoryManager *mm, XMLBuffer &result, bool sniffEncoding) { BinInputStream *stream = src.makeStream(); if(stream == NULL) return false; Janitor janStream(stream); readSource(stream, mm, result, src.getEncoding(), sniffEncoding); return true; } void XPath2Utils::readSource(BinInputStream *stream, MemoryManager *mm, XMLBuffer &result, const XMLCh *encoding, bool sniffEncoding) { XMLByte buffer[BUFFER_SIZE]; XercesSizeUint nRead = 0; Janitor transcoder(NULL); XMLTransService::Codes retCode; if(encoding) { transcoder.reset(XMLPlatformUtils::fgTransService->makeNewTranscoderFor(encoding, retCode, BUFFER_SIZE, mm)); if(transcoder.get() == 0) { ThrowXMLwithMemMgr1(TranscodingException, XMLExcepts::Trans_CantCreateCvtrFor, encoding, mm); } } else { #ifdef HAVE_GETCONTENTTYPE RegularExpression charsetRE(".*; *charset=([^ ;]*|\"[^\"]*\").*", "iH", mm); if(charsetRE.matches(stream->getContentType(), mm)) { XMLCh *charset = charsetRE.replace(stream->getContentType(), X("$1"), mm); AutoDeallocate charsetGuard(charset, mm); if(*charset == '"') { // Trim the quotes charset += 1; *(charset + XMLString::stringLen(charset) - 1) = 0; } transcoder.reset(XMLPlatformUtils::fgTransService->makeNewTranscoderFor(charset, retCode, BUFFER_SIZE, mm)); if(transcoder.get() == 0) { ThrowXMLwithMemMgr1(TranscodingException, XMLExcepts::Trans_CantCreateCvtrFor, charset, mm); } } else #endif if(sniffEncoding) { // TBD make this better by using an XQuery specific encoding sniffer - jpcs nRead = stream->readBytes(buffer, BUFFER_SIZE); XMLRecognizer::Encodings encoding = XMLRecognizer::basicEncodingProbe(buffer, BUFFER_SIZE); transcoder.reset(XMLPlatformUtils::fgTransService->makeNewTranscoderFor(encoding, retCode, BUFFER_SIZE, mm)); } else { transcoder.reset(XMLPlatformUtils::fgTransService->makeNewTranscoderFor("UTF-8", retCode, BUFFER_SIZE, mm)); } } XMLCh tempBuff[BUFFER_SIZE]; unsigned char charSizes[BUFFER_SIZE]; XercesSizeUint bytesEaten = 0, nOffset = 0; XercesSizeUint nCount; do { nCount = transcoder->transcodeFrom(buffer, nRead, tempBuff, BUFFER_SIZE, bytesEaten, charSizes); if(nCount) result.append(tempBuff, nCount); if(bytesEaten < nRead){ nOffset = nRead - bytesEaten; memmove(buffer, buffer + bytesEaten, nOffset); } nRead = stream->readBytes(buffer + nOffset, BUFFER_SIZE - nOffset); if(nRead == 0 && nCount == 0) break; nRead += nOffset; } while(nRead > 0); } XQilla-2.3.0/src/utils/XPath2NSUtils.cpp0000644000151400015140000000424611653565523014667 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; const XMLCh* XPath2NSUtils::getLocalName(const XMLCh* name) { unsigned int len=XPath2Utils::uintStrlen(name); for(unsigned int i = 0; i < len; i++) { if(name[i] == chColon) { return name+i+1; } } return name; } const XMLCh* XPath2NSUtils::getPrefix(const XMLCh* name, XPath2MemoryManager* memMgr) { unsigned int len=XPath2Utils::uintStrlen(name); for(unsigned int i = 0; i < len; i++) { if(name[i] == chColon) { return XPath2Utils::subString(name, 0, i, memMgr); } } return XMLUni::fgZeroLenString; } const XMLCh* XPath2NSUtils::qualifyName(const XMLCh* prefix, const XMLCh* name, XPath2MemoryManager* memMgr) { if (prefix != NULL) { XMLCh colon[2] = {chColon, chNull}; return XPath2Utils::concatStrings(prefix, colon, name, memMgr); } else { return name; } } DOMNode *XPath2NSUtils::getParent(const DOMNode *node) { if(node->getNodeType() == DOMNode::ATTRIBUTE_NODE) { return (static_cast(node))->getOwnerElement(); } else { return node->getParentNode(); } } XQilla-2.3.0/src/utils/UTF8Str.cpp0000644000151400015140000000362411653565523013515 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include XERCES_CPP_NAMESPACE_USE; UTF8Str::UTF8Str(const XMLCh* const toTranscode, MemoryManager *mm) : str_(0), mm_(mm) { if(toTranscode == 0) { str_ = mm_ ? (XMLByte*)mm_->allocate(1 * sizeof(XMLByte)) : new XMLByte[1]; str_[0] = 0; } else { XERCES_CPP_NAMESPACE_QUALIFIER XMLUTF8Transcoder t(0, 512); size_t l = XERCES_CPP_NAMESPACE_QUALIFIER XMLString::stringLen(toTranscode); const size_t needed = l * 3 + 1; // 3 bytes per XMLCh is the worst case, + '\0' str_ = mm_ ? (XMLByte*)mm_->allocate(needed * sizeof(XMLByte)) : new XMLByte[needed]; #if _XERCES_VERSION >= 30000 XMLSize_t charsEaten= 0; t.transcodeTo(toTranscode, l+1, str_, needed, charsEaten, XERCES_CPP_NAMESPACE_QUALIFIER XMLTranscoder::UnRep_Throw); #else unsigned int charsEaten= 0; t.transcodeTo(toTranscode, (unsigned int)l+1, str_, (unsigned int)needed, charsEaten, XERCES_CPP_NAMESPACE_QUALIFIER XMLTranscoder::UnRep_Throw); #endif } } UTF8Str::~UTF8Str() { if(str_) { if(mm_) mm_->deallocate(str_); else delete [] str_; } } XQilla-2.3.0/src/yajl/0000755000151400015140000000000011653572443011443 500000000000000XQilla-2.3.0/src/yajl/yajl_common.h0000644000151400015140000000415511636377671014057 00000000000000/* * Copyright 2007, Lloyd Hilaiel. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. Neither the name of Lloyd Hilaiel nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #ifndef __YAJL_COMMON_H__ #define __YAJL_COMMON_H__ #define YAJL_MAX_DEPTH 128 /* msft dll export gunk. To build a DLL on windows, you * must define WIN32, YAJL_SHARED, and YAJL_BUILD. To use a shared * DLL, you must define YAJL_SHARED and WIN32 */ #if defined(WIN32) && defined(YAJL_SHARED) # ifdef YAJL_BUILD # define YAJL_API __declspec(dllexport) # else # define YAJL_API __declspec(dllimport) # endif #else # define YAJL_API #endif #if defined(_MSC_VER) typedef __int64 xq_int64_t; typedef unsigned __int64 xq_uint64_t; #else typedef long long xq_int64_t; typedef unsigned long long xq_uint64_t; #endif #endif XQilla-2.3.0/src/yajl/yajl_gen.c0000644000151400015140000002026411636377671013332 00000000000000/* * Copyright 2007, Lloyd Hilaiel. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. Neither the name of Lloyd Hilaiel nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #include "../config/xqilla_config.h" #include "yajl_gen.h" #include "yajl_buf.h" #include "yajl_encode.h" #include #include #include #define STRLEN(s) (unsigned int)strlen((s)) typedef enum { yajl_gen_start, yajl_gen_map_start, yajl_gen_map_key, yajl_gen_map_val, yajl_gen_array_start, yajl_gen_in_array, yajl_gen_complete, yajl_gen_error } yajl_gen_state; struct yajl_gen_t { unsigned int depth; unsigned int pretty; const char * indentString; yajl_gen_state state[YAJL_MAX_DEPTH]; yajl_buf buf; }; yajl_gen yajl_gen_alloc(const yajl_gen_config * config) { yajl_gen g = (yajl_gen) malloc(sizeof(struct yajl_gen_t)); memset((void *) g, 0, sizeof(struct yajl_gen_t)); if (config) { g->pretty = config->beautify; g->indentString = config->indentString ? config->indentString : " "; } g->buf = yajl_buf_alloc(); return g; } void yajl_gen_free(yajl_gen g) { yajl_buf_free(g->buf); free(g); } #define INSERT_SEP \ if (g->state[g->depth] == yajl_gen_map_key || \ g->state[g->depth] == yajl_gen_in_array) { \ yajl_buf_append(g->buf, ",", 1); \ if (g->pretty) yajl_buf_append(g->buf, "\n", 1); \ } else if (g->state[g->depth] == yajl_gen_map_val) { \ yajl_buf_append(g->buf, ":", 1); \ if (g->pretty) yajl_buf_append(g->buf, " ", 1); \ } #define INSERT_WHITESPACE \ if (g->pretty) { \ if (g->state[g->depth] != yajl_gen_map_val) { \ unsigned int i; \ for (i=0;idepth;i++) \ yajl_buf_append(g->buf, g->indentString, \ STRLEN(g->indentString)); \ } \ } #define ENSURE_NOT_KEY \ if (g->state[g->depth] == yajl_gen_map_key) { \ return yajl_gen_keys_must_be_strings; \ } \ /* check that we're not complete, or in error state. in a valid state * to be generating */ #define ENSURE_VALID_STATE \ if (g->state[g->depth] == yajl_gen_error) { \ return yajl_gen_in_error_state;\ } else if (g->state[g->depth] == yajl_gen_complete) { \ return yajl_gen_generation_complete; \ } #define INCREMENT_DEPTH \ if (++(g->depth) >= YAJL_MAX_DEPTH) return yajl_max_depth_exceeded; #define APPENDED_ATOM \ switch (g->state[g->depth]) { \ case yajl_gen_start: \ g->state[g->depth] = yajl_gen_complete; \ break; \ case yajl_gen_map_start: \ case yajl_gen_map_key: \ g->state[g->depth] = yajl_gen_map_val; \ break; \ case yajl_gen_array_start: \ g->state[g->depth] = yajl_gen_in_array; \ break; \ case yajl_gen_map_val: \ g->state[g->depth] = yajl_gen_map_key; \ break; \ default: \ break; \ } \ #define FINAL_NEWLINE \ if (g->pretty && g->state[g->depth] == yajl_gen_complete) \ yajl_buf_append(g->buf, "\n", 1); yajl_gen_status yajl_gen_integer(yajl_gen g, long int number) { char i[32]; ENSURE_VALID_STATE; ENSURE_NOT_KEY; INSERT_SEP; INSERT_WHITESPACE; sprintf(i, "%lld", (xq_int64_t)number); yajl_buf_append(g->buf, i, STRLEN(i)); APPENDED_ATOM; FINAL_NEWLINE; return yajl_gen_status_ok; } yajl_gen_status yajl_gen_double(yajl_gen g, double number) { char i[32]; ENSURE_VALID_STATE; ENSURE_NOT_KEY; INSERT_SEP; INSERT_WHITESPACE; sprintf(i, "%lf", number); yajl_buf_append(g->buf, i, STRLEN(i)); APPENDED_ATOM; return yajl_gen_status_ok; } yajl_gen_status yajl_gen_string(yajl_gen g, const unsigned char * str, unsigned int len) { ENSURE_VALID_STATE; INSERT_SEP; INSERT_WHITESPACE; yajl_buf_append(g->buf, "\"", 1); yajl_string_encode(g->buf, str, len); yajl_buf_append(g->buf, "\"", 1); APPENDED_ATOM; FINAL_NEWLINE; return yajl_gen_status_ok; } yajl_gen_status yajl_gen_null(yajl_gen g) { ENSURE_VALID_STATE; ENSURE_NOT_KEY; INSERT_SEP; INSERT_WHITESPACE; yajl_buf_append(g->buf, "null", STRLEN("null")); APPENDED_ATOM; FINAL_NEWLINE; return yajl_gen_status_ok; } yajl_gen_status yajl_gen_bool(yajl_gen g, int boolean) { const char * val = boolean ? "true" : "false"; ENSURE_VALID_STATE; ENSURE_NOT_KEY; INSERT_SEP; INSERT_WHITESPACE; yajl_buf_append(g->buf, val, STRLEN(val)); APPENDED_ATOM; FINAL_NEWLINE; return yajl_gen_status_ok; } yajl_gen_status yajl_gen_map_open(yajl_gen g) { ENSURE_VALID_STATE; ENSURE_NOT_KEY; INSERT_SEP; INSERT_WHITESPACE; INCREMENT_DEPTH; g->state[g->depth] = yajl_gen_map_start; yajl_buf_append(g->buf, "{", 1); if (g->pretty) yajl_buf_append(g->buf, "\n", 1); FINAL_NEWLINE; return yajl_gen_status_ok; } yajl_gen_status yajl_gen_map_close(yajl_gen g) { ENSURE_VALID_STATE; (g->depth)--; if (g->pretty) yajl_buf_append(g->buf, "\n", 1); APPENDED_ATOM; INSERT_WHITESPACE; yajl_buf_append(g->buf, "}", 1); FINAL_NEWLINE; return yajl_gen_status_ok; } yajl_gen_status yajl_gen_array_open(yajl_gen g) { ENSURE_VALID_STATE; ENSURE_NOT_KEY; INSERT_SEP; INSERT_WHITESPACE; INCREMENT_DEPTH; g->state[g->depth] = yajl_gen_array_start; yajl_buf_append(g->buf, "[", 1); if (g->pretty) yajl_buf_append(g->buf, "\n", 1); FINAL_NEWLINE; return yajl_gen_status_ok; } yajl_gen_status yajl_gen_array_close(yajl_gen g) { ENSURE_VALID_STATE; if (g->pretty) yajl_buf_append(g->buf, "\n", 1); (g->depth)--; APPENDED_ATOM; INSERT_WHITESPACE; yajl_buf_append(g->buf, "]", 1); FINAL_NEWLINE; return yajl_gen_status_ok; } yajl_gen_status yajl_gen_get_buf(yajl_gen g, const unsigned char ** buf, unsigned int * len) { *buf = yajl_buf_data(g->buf); *len = yajl_buf_len(g->buf); return yajl_gen_status_ok; } void yajl_gen_clear(yajl_gen g) { yajl_buf_clear(g->buf); } XQilla-2.3.0/src/yajl/yajl_parser.c0000644000151400015140000004333211636377671014056 00000000000000/* * Copyright 2007, Lloyd Hilaiel. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. Neither the name of Lloyd Hilaiel nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #include "../config/xqilla_config.h" #include "yajl_lex.h" #include "yajl_parser.h" #include "yajl_encode.h" #include #include #include #include #include #define STRLEN(s) (unsigned int)strlen((s)) unsigned char * yajl_render_error_string(yajl_handle hand, const unsigned char * jsonText, unsigned int jsonTextLen, int verbose) { unsigned int offset = hand->errorOffset; unsigned char * str; const char * errorType = NULL; const char * errorText = NULL; char text[72]; const char * arrow = " (right here) ------^\n"; if (yajl_state_current(hand) == yajl_state_parse_error) { errorType = "parse"; errorText = hand->parseError; } else if (yajl_state_current(hand) == yajl_state_lexical_error) { errorType = "lexical"; errorText = yajl_lex_error_to_string(yajl_lex_get_error(hand->lexer)); } else { errorType = "unknown"; } { unsigned int memneeded = 0; memneeded += STRLEN(errorType); memneeded += STRLEN(" error"); if (errorText != NULL) { memneeded += STRLEN(": "); memneeded += STRLEN(errorText); } str = (unsigned char *) malloc(memneeded + 2); str[0] = 0; strcat((char *) str, errorType); strcat((char *) str, " error"); if (errorText != NULL) { strcat((char *) str, ": "); strcat((char *) str, errorText); } strcat((char *) str, "\n"); } /* now we append as many spaces as needed to make sure the error * falls at char 41, if verbose was specified */ if (verbose) { unsigned int start, end, i; unsigned int spacesNeeded; spacesNeeded = (offset < 30 ? 40 - offset : 10); start = (offset >= 30 ? offset - 30 : 0); end = (offset + 30 > jsonTextLen ? jsonTextLen : offset + 30); for (i=0;ierrorOffset = *offset; return yajl_status_error; case yajl_state_start: case yajl_state_map_need_val: case yajl_state_array_need_val: case yajl_state_array_start: { /* for arrays and maps, we advance the state for this * depth, then push the state of the next depth. * If an error occurs during the parsing of the nesting * enitity, the state at this level will not matter. * a state that needs pushing will be anything other * than state_start */ yajl_state stateToPush = yajl_state_start; tok = yajl_lex_lex(hand->lexer, jsonText, jsonTextLen, offset, &buf, &bufLen); switch (tok) { case yajl_tok_eof: return yajl_status_insufficient_data; case yajl_tok_error: yajl_state_set(hand, yajl_state_lexical_error); goto around_again; case yajl_tok_string: if (hand->callbacks && hand->callbacks->yajl_string) { hand->callbacks->yajl_string(hand->ctx, buf, bufLen); } break; case yajl_tok_string_with_escapes: if (hand->callbacks && hand->callbacks->yajl_string) { yajl_buf_clear(hand->decodeBuf); yajl_string_decode(hand->decodeBuf, buf, bufLen); hand->callbacks->yajl_string( hand->ctx, yajl_buf_data(hand->decodeBuf), yajl_buf_len(hand->decodeBuf)); } break; case yajl_tok_bool: if (hand->callbacks && hand->callbacks->yajl_boolean) { hand->callbacks->yajl_boolean(hand->ctx, *buf == 't'); } break; case yajl_tok_null: if (hand->callbacks && hand->callbacks->yajl_null) { hand->callbacks->yajl_null(hand->ctx); } break; case yajl_tok_left_bracket: if (hand->callbacks && hand->callbacks->yajl_start_map) { hand->callbacks->yajl_start_map(hand->ctx); } stateToPush = yajl_state_map_start; break; case yajl_tok_left_brace: if (hand->callbacks && hand->callbacks->yajl_start_array) { hand->callbacks->yajl_start_array(hand->ctx); } stateToPush = yajl_state_array_start; break; case yajl_tok_integer: /* * note. sscanf does not respect the length of * the lexical token. in a corner case where the * lexed number is a integer with a trailing zero, * immediately followed by the end of buffer, * sscanf could run off into oblivion and cause a * crash. for this reason we copy the integer * (and doubles), into our parse buffer (the same * one used for unescaping strings), before * calling sscanf. yajl_buf ensures null padding, * so we're safe. */ if (hand->callbacks && hand->callbacks->yajl_integer) { long int i; int neg = 0; yajl_buf_clear(hand->decodeBuf); yajl_buf_append(hand->decodeBuf, buf, bufLen); buf = yajl_buf_data(hand->decodeBuf); if (*buf == '-') { buf++; neg = 1; } sscanf((char *) buf, "%lld", (xq_int64_t *)&i); if (neg) i -= (i<<1); hand->callbacks->yajl_integer(hand->ctx, i); } break; case yajl_tok_double: if (hand->callbacks && hand->callbacks->yajl_double) { double d; int neg = 0; yajl_buf_clear(hand->decodeBuf); yajl_buf_append(hand->decodeBuf, buf, bufLen); buf = yajl_buf_data(hand->decodeBuf); if (*buf == '-') { buf++; neg = 1; } sscanf((char *) buf, "%lf", &d); if (neg) d *= -1.0; hand->callbacks->yajl_double(hand->ctx, d); } break; case yajl_tok_right_brace: { if (yajl_state_current(hand) == yajl_state_array_start) { if (hand->callbacks && hand->callbacks->yajl_end_array) { hand->callbacks->yajl_end_array(hand->ctx); } (void) yajl_state_pop(hand); goto around_again; } /* intentional fall-through */ } case yajl_tok_colon: case yajl_tok_comma: case yajl_tok_right_bracket: yajl_state_set(hand, yajl_state_parse_error); hand->parseError = "unallowed token at this point in JSON text"; goto around_again; default: yajl_state_set(hand, yajl_state_parse_error); hand->parseError = "invalid token, internal error"; goto around_again; } /* got a value. transition depends on the state we're in. */ { yajl_state s = yajl_state_current(hand); if (s == yajl_state_start) { yajl_state_set(hand, yajl_state_parse_complete); } else if (s == yajl_state_map_need_val) { yajl_state_set(hand, yajl_state_map_got_val); } else { yajl_state_set(hand, yajl_state_array_got_val); } } if (stateToPush != yajl_state_start) { yajl_state_push(hand, stateToPush); } goto around_again; } case yajl_state_map_start: case yajl_state_map_need_key: { /* only difference between these two states is that in * start '}' is valid, whereas in need_key, we've parsed * a comma, and a string key _must_ follow */ tok = yajl_lex_lex(hand->lexer, jsonText, jsonTextLen, offset, &buf, &bufLen); switch (tok) { case yajl_tok_eof: return yajl_status_insufficient_data; case yajl_tok_error: yajl_state_set(hand, yajl_state_lexical_error); goto around_again; case yajl_tok_string_with_escapes: if (hand->callbacks && hand->callbacks->yajl_map_key) { yajl_buf_clear(hand->decodeBuf); yajl_string_decode(hand->decodeBuf, buf, bufLen); buf = yajl_buf_data(hand->decodeBuf); bufLen = yajl_buf_len(hand->decodeBuf); } /* intentional fall-through */ case yajl_tok_string: if (hand->callbacks && hand->callbacks->yajl_map_key) { hand->callbacks->yajl_map_key(hand->ctx, buf, bufLen); } yajl_state_set(hand, yajl_state_map_sep); goto around_again; case yajl_tok_right_bracket: if (yajl_state_current(hand) == yajl_state_map_start) { if (hand->callbacks && hand->callbacks->yajl_end_map) { hand->callbacks->yajl_end_map(hand->ctx); } (void) yajl_state_pop(hand); goto around_again; } default: yajl_state_set(hand, yajl_state_parse_error); hand->parseError = "invalid object key (must be a string)"; goto around_again; } } case yajl_state_map_sep: { tok = yajl_lex_lex(hand->lexer, jsonText, jsonTextLen, offset, &buf, &bufLen); switch (tok) { case yajl_tok_colon: yajl_state_set(hand, yajl_state_map_need_val); goto around_again; case yajl_tok_eof: return yajl_status_insufficient_data; case yajl_tok_error: yajl_state_set(hand, yajl_state_lexical_error); goto around_again; default: yajl_state_set(hand, yajl_state_parse_error); hand->parseError = "object key and value must " "be separated by a colon (':')"; goto around_again; } } case yajl_state_map_got_val: { tok = yajl_lex_lex(hand->lexer, jsonText, jsonTextLen, offset, &buf, &bufLen); switch (tok) { case yajl_tok_right_bracket: if (hand->callbacks && hand->callbacks->yajl_end_map) { hand->callbacks->yajl_end_map(hand->ctx); } (void) yajl_state_pop(hand); goto around_again; case yajl_tok_comma: yajl_state_set(hand, yajl_state_map_need_key); goto around_again; case yajl_tok_eof: return yajl_status_insufficient_data; case yajl_tok_error: yajl_state_set(hand, yajl_state_lexical_error); goto around_again; default: yajl_state_set(hand, yajl_state_parse_error); hand->parseError = "after key and value, inside map, " "I expect ',' or '}'"; /* try to restore error offset */ if (*offset >= bufLen) *offset -= bufLen; else *offset = 0; goto around_again; } } case yajl_state_array_got_val: { tok = yajl_lex_lex(hand->lexer, jsonText, jsonTextLen, offset, &buf, &bufLen); switch (tok) { case yajl_tok_right_brace: if (hand->callbacks && hand->callbacks->yajl_end_array) { hand->callbacks->yajl_end_array(hand->ctx); } (void) yajl_state_pop(hand); goto around_again; case yajl_tok_comma: yajl_state_set(hand, yajl_state_array_need_val); goto around_again; case yajl_tok_eof: return yajl_status_insufficient_data; case yajl_tok_error: yajl_state_set(hand, yajl_state_lexical_error); goto around_again; default: yajl_state_set(hand, yajl_state_parse_error); hand->parseError = "after array element, I expect ',' or ']'"; goto around_again; } } } abort(); return yajl_status_error; } /* state stack maintenence routines */ yajl_state yajl_state_current(yajl_handle h) { assert(yajl_buf_len(h->stateBuf) > 0); return (yajl_state) *(yajl_buf_data(h->stateBuf) + yajl_buf_len(h->stateBuf) - 1); } void yajl_state_push(yajl_handle h, yajl_state s) { unsigned char c = (unsigned char) s; yajl_buf_append(h->stateBuf, &c, sizeof(c)); } yajl_state yajl_state_pop(yajl_handle h) { yajl_state s; unsigned int len = yajl_buf_len(h->stateBuf); /* start state is never popped */ assert(len > 1); s = (yajl_state) *(yajl_buf_data(h->stateBuf) + len - 1); yajl_buf_truncate(h->stateBuf, len - 1); return s; } unsigned int yajl_parse_depth(yajl_handle h) { assert(yajl_buf_len(h->stateBuf) > 0); return (yajl_buf_len(h->stateBuf) - 1); } void yajl_state_set(yajl_handle h, yajl_state state) { assert(yajl_buf_len(h->stateBuf) > 0); *(unsigned char *) (yajl_buf_data(h->stateBuf) + yajl_buf_len(h->stateBuf) - 1) = (unsigned char) state; } XQilla-2.3.0/src/yajl/yajl_lex.h0000644000151400015140000001133211636377671013352 00000000000000/* * Copyright 2007, Lloyd Hilaiel. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. Neither the name of Lloyd Hilaiel nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #ifndef __YAJL_LEX_H__ #define __YAJL_LEX_H__ typedef enum { yajl_tok_bool, yajl_tok_colon, yajl_tok_comma, yajl_tok_eof, yajl_tok_error, yajl_tok_left_brace, yajl_tok_left_bracket, yajl_tok_null, yajl_tok_right_brace, yajl_tok_right_bracket, /* we differentiate between integers and doubles to allow the * parser to interpret the number without re-scanning */ yajl_tok_integer, yajl_tok_double, /* we differentiate between strings which require further processing, * and strings that do not */ yajl_tok_string, yajl_tok_string_with_escapes, /* comment tokens are not currently returned to the parser, ever */ yajl_tok_comment } yajl_tok; typedef struct yajl_lexer_t * yajl_lexer; yajl_lexer yajl_lex_alloc(unsigned int allowComments); void yajl_lex_free(yajl_lexer lexer); /** * run/continue a lex. "offset" is an input/output parameter. * It should be initialized to zero for a * new chunk of target text, and upon subsetquent calls with the same * target text should passed with the value of the previous invocation. * * the client may be interested in the value of offset when an error is * returned from the lexer. This allows the client to render useful n * error messages. * * When you pass the next chunk of data, context should be reinitialized * to zero. * * Finally, the output buffer is usually just a pointer into the jsonText, * however in cases where the entity being lexed spans multiple chunks, * the lexer will buffer the entity and the data returned will be * a pointer into that buffer. * * This behavior is abstracted from client code except for the performance * implications which require that the client choose a reasonable chunk * size to get adequate performance. */ yajl_tok yajl_lex_lex(yajl_lexer lexer, const unsigned char * jsonText, unsigned int jsonTextLen, unsigned int * offset, const unsigned char ** outBuf, unsigned int * outLen); /** have a peek at the next token, but don't move the lexer forward */ yajl_tok yajl_lex_peek(yajl_lexer lexer, const unsigned char * jsonText, unsigned int jsonTextLen, unsigned int offset); typedef enum { yajl_lex_e_ok = 0, yajl_lex_string_invalid_escaped_char, yajl_lex_string_invalid_json_char, yajl_lex_string_invalid_hex_char, yajl_lex_invalid_char, yajl_lex_invalid_string, yajl_lex_missing_integer_after_decimal, yajl_lex_missing_integer_after_exponent, yajl_lex_missing_integer_after_minus, yajl_lex_unallowed_comment } yajl_lex_error; const char * yajl_lex_error_to_string(yajl_lex_error error); /** allows access to more specific information about the lexical * error when yajl_lex_lex returns yajl_tok_error. */ yajl_lex_error yajl_lex_get_error(yajl_lexer lexer); /** get the current offset into the most recently lexed json string. */ unsigned int yajl_lex_current_offset(yajl_lexer lexer); /** get the number of lines lexed by this lexer instance */ unsigned int yajl_lex_current_line(yajl_lexer lexer); /** get the number of chars lexed by this lexer instance since the last * \n or \r */ unsigned int yajl_lex_current_char(yajl_lexer lexer); #endif XQilla-2.3.0/src/yajl/yajl_gen.h0000644000151400015140000000652011636377671013336 00000000000000/* * Copyright 2007, Lloyd Hilaiel. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. Neither the name of Lloyd Hilaiel nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #include "yajl_common.h" #ifndef __YAJL_GEN_H__ #define __YAJL_GEN_H__ #ifdef __cplusplus extern "C" { #endif typedef enum { yajl_gen_status_ok = 0, yajl_gen_keys_must_be_strings, yajl_max_depth_exceeded, yajl_gen_in_error_state, yajl_gen_generation_complete } yajl_gen_status; /** an opaque handle to a generator */ typedef struct yajl_gen_t * yajl_gen; /** configuration structure for the generator */ typedef struct { unsigned int beautify; const char * indentString; } yajl_gen_config; /** allocate a generator handle */ yajl_gen YAJL_API yajl_gen_alloc(const yajl_gen_config * config); /** free a generator handle */ void YAJL_API yajl_gen_free(yajl_gen handle); yajl_gen_status YAJL_API yajl_gen_integer(yajl_gen hand, long int number); yajl_gen_status YAJL_API yajl_gen_double(yajl_gen hand, double number); yajl_gen_status YAJL_API yajl_gen_string(yajl_gen hand, const unsigned char * str, unsigned int len); yajl_gen_status YAJL_API yajl_gen_null(yajl_gen hand); yajl_gen_status YAJL_API yajl_gen_bool(yajl_gen hand, int boolean); yajl_gen_status YAJL_API yajl_gen_map_open(yajl_gen hand); yajl_gen_status YAJL_API yajl_gen_map_close(yajl_gen hand); yajl_gen_status YAJL_API yajl_gen_array_open(yajl_gen hand); yajl_gen_status YAJL_API yajl_gen_array_close(yajl_gen hand); yajl_gen_status YAJL_API yajl_gen_get_buf(yajl_gen hand, const unsigned char ** buf, unsigned int * len); void YAJL_API yajl_gen_clear(yajl_gen hand); #ifdef __cplusplus }; #endif #endif XQilla-2.3.0/src/yajl/yajl.c0000644000151400015140000000710411636377671012477 00000000000000/* * Copyright 2007, Lloyd Hilaiel. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. Neither the name of Lloyd Hilaiel nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #include "../config/xqilla_config.h" #include "yajl_parse.h" #include "yajl_lex.h" #include "yajl_parser.h" #include #include #include const char * yajl_status_to_string(yajl_status stat) { const char * statStr = "unknown"; switch (stat) { case yajl_status_ok: statStr = "ok, no error"; break; case yajl_status_client_canceled: statStr = "client canceled parse"; break; case yajl_status_insufficient_data: statStr = "eof was met before the parse could complete"; break; case yajl_status_error: statStr = "parse error"; break; } return statStr; } yajl_handle yajl_alloc(const yajl_callbacks * callbacks, const yajl_parser_config * config, void * ctx) { unsigned int allowComments = 0; yajl_handle hand = (yajl_handle) malloc(sizeof(struct yajl_handle_t)); if (config != NULL) { allowComments = config->allowComments; } hand->callbacks = callbacks; hand->ctx = ctx; hand->lexer = yajl_lex_alloc(allowComments); hand->errorOffset = 0; hand->decodeBuf = yajl_buf_alloc(); hand->stateBuf = yajl_buf_alloc(); yajl_state_push(hand, yajl_state_start); return hand; } void yajl_free(yajl_handle handle) { yajl_buf_free(handle->stateBuf); yajl_buf_free(handle->decodeBuf); yajl_lex_free(handle->lexer); free(handle); } yajl_status yajl_parse(yajl_handle hand, const unsigned char * jsonText, unsigned int jsonTextLen) { unsigned int offset = 0; yajl_status status; status = yajl_do_parse(hand, &offset, jsonText, jsonTextLen); return status; } unsigned char * yajl_get_error(yajl_handle hand, int verbose, const unsigned char * jsonText, unsigned int jsonTextLen) { return yajl_render_error_string(hand, jsonText, jsonTextLen, verbose); } void yajl_free_error(unsigned char * str) { /* XXX: use memory allocation functions if set */ free(str); } /* XXX: add utility routines to parse from file */ XQilla-2.3.0/src/yajl/yajl_encode.h0000644000151400015140000000344711636377671014027 00000000000000/* * Copyright 2007, Lloyd Hilaiel. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. Neither the name of Lloyd Hilaiel nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #ifndef __YAJL_ENCODE_H__ #define __YAJL_ENCODE_H__ #include "yajl_buf.h" void yajl_string_encode(yajl_buf buf, const unsigned char * str, unsigned int length); void yajl_string_decode(yajl_buf buf, const unsigned char * str, unsigned int length); #endif XQilla-2.3.0/src/yajl/yajl_parser.h0000644000151400015140000000552411636377671014064 00000000000000/* * Copyright 2007, Lloyd Hilaiel. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. Neither the name of Lloyd Hilaiel nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #ifndef __YAJL_PARSER_H__ #define __YAJL_PARSER_H__ #include "yajl_parse.h" #include "yajl_buf.h" typedef enum { yajl_state_start = 0, yajl_state_parse_complete, yajl_state_parse_error, yajl_state_lexical_error, yajl_state_map_start, yajl_state_map_sep, yajl_state_map_need_val, yajl_state_map_got_val, yajl_state_map_need_key, yajl_state_array_start, yajl_state_array_got_val, yajl_state_array_need_val } yajl_state; struct yajl_handle_t { const yajl_callbacks * callbacks; void * ctx; yajl_lexer lexer; const char * parseError; unsigned int errorOffset; /* temporary storage for decoded strings */ yajl_buf decodeBuf; /* a stack of states. access with yajl_state_XXX routines */ yajl_buf stateBuf; }; yajl_status yajl_do_parse(yajl_handle handle, unsigned int * offset, const unsigned char * jsonText, unsigned int jsonTextLen); unsigned char * yajl_render_error_string(yajl_handle hand, const unsigned char * jsonText, unsigned int jsonTextLen, int verbose); yajl_state yajl_state_current(yajl_handle handle); void yajl_state_push(yajl_handle handle, yajl_state state); yajl_state yajl_state_pop(yajl_handle handle); unsigned int yajl_parse_depth(yajl_handle handle); void yajl_state_set(yajl_handle handle, yajl_state state); #endif XQilla-2.3.0/src/yajl/yajl_encode.c0000644000151400015140000001455611636377671014025 00000000000000/* * Copyright 2007, Lloyd Hilaiel. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. Neither the name of Lloyd Hilaiel nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #include "../config/xqilla_config.h" #include "yajl_encode.h" #include #include #include #include #define STRLEN(s) (unsigned int)strlen((s)) static void CharToHex(unsigned char c, char * hexBuf) { const char * hexchar = "0123456789ABCDE"; hexBuf[0] = hexchar[c >> 4]; hexBuf[1] = hexchar[c & 0x0F]; } void yajl_string_encode(yajl_buf buf, const unsigned char * str, unsigned int len) { unsigned int beg = 0; unsigned int end = 0; char hexBuf[7]; hexBuf[0] = '\\'; hexBuf[1] = 'u'; hexBuf[2] = '0'; hexBuf[3] = '0'; hexBuf[6] = 0; while (end < len) { char * escaped = NULL; switch (str[end]) { case '\r': escaped = "\\r"; break; case '\n': escaped = "\\n"; break; case '\\': escaped = "\\\\"; break; /* case '/': escaped = "\\/"; break; */ case '"': escaped = "\\\""; break; case '\f': escaped = "\\f"; break; case '\b': escaped = "\\b"; break; case '\t': escaped = "\\t"; break; default: if ((unsigned char) str[end] < 32) { CharToHex(str[end], hexBuf + 4); escaped = hexBuf; } break; } if (escaped != NULL) { yajl_buf_append(buf, str + beg, end - beg); yajl_buf_append(buf, escaped, STRLEN(escaped)); beg = ++end; } else { ++end; } } yajl_buf_append(buf, str + beg, end - beg); } static void hexToDigit(unsigned int * val, const unsigned char * hex) { unsigned int i; for (i=0;i<4;i++) { unsigned char c = hex[i]; if (c >= 'A') c = (c & ~0x20) - 7; c -= '0'; assert(!(c & 0xF0)); *val = (*val << 4) | c; } } static void Utf32toUtf8(unsigned int codepoint, char * utf8Buf) { if (codepoint < 0x80) { utf8Buf[0] = (char) codepoint; utf8Buf[1] = 0; } else if (codepoint < 0x0800) { utf8Buf[0] = (char) ((codepoint >> 6) | 0xC0); utf8Buf[1] = (char) ((codepoint & 0x3F) | 0x80); utf8Buf[2] = 0; } else if (codepoint < 0x10000) { utf8Buf[0] = (char) ((codepoint >> 12) | 0xE0); utf8Buf[1] = (char) (((codepoint >> 6) & 0x3F) | 0x80); utf8Buf[2] = (char) ((codepoint & 0x3F) | 0x80); utf8Buf[3] = 0; } else if (codepoint < 0x200000) { utf8Buf[0] =(char)((codepoint >> 18) | 0xF0); utf8Buf[1] =(char)(((codepoint >> 12) & 0x3F) | 0x80); utf8Buf[2] =(char)(((codepoint >> 6) & 0x3F) | 0x80); utf8Buf[3] =(char)((codepoint & 0x3F) | 0x80); utf8Buf[4] = 0; } else { utf8Buf[0] = '?'; utf8Buf[1] = 0; } } void yajl_string_decode(yajl_buf buf, const unsigned char * str, unsigned int len) { unsigned int beg = 0; unsigned int end = 0; while (end < len) { if (str[end] == '\\') { char utf8Buf[5]; const char * unescaped = "?"; yajl_buf_append(buf, str + beg, end - beg); switch (str[++end]) { case 'r': unescaped = "\r"; break; case 'n': unescaped = "\n"; break; case '\\': unescaped = "\\"; break; case '/': unescaped = "/"; break; case '"': unescaped = "\""; break; case 'f': unescaped = "\f"; break; case 'b': unescaped = "\b"; break; case 't': unescaped = "\t"; break; case 'u': { unsigned int codepoint = 0; hexToDigit(&codepoint, str + ++end); end+=3; /* check if this is a surrogate */ if ((codepoint & 0xFC00) == 0xD800) { end++; if (str[end] == '\\' && str[end + 1] == 'u') { unsigned int surrogate = 0; hexToDigit(&surrogate, str + end + 2); codepoint = (((codepoint & 0x3F) << 10) | ((((codepoint >> 6) & 0xF) + 1) << 16) | (surrogate & 0x3FF)); end += 5; } else { unescaped = "?"; break; } } Utf32toUtf8(codepoint, utf8Buf); unescaped = utf8Buf; break; } default: assert("this should never happen" == NULL); } yajl_buf_append(buf, unescaped, STRLEN(unescaped)); beg = ++end; } else { end++; } } yajl_buf_append(buf, str + beg, end - beg); } XQilla-2.3.0/src/yajl/yajl_parse.h0000644000151400015140000001247611636377671013706 00000000000000/* * Copyright 2007, Lloyd Hilaiel. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. Neither the name of Lloyd Hilaiel nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #include "yajl_common.h" #ifndef __YAJL_PARSE_H__ #define __YAJL_PARSE_H__ #ifdef __cplusplus extern "C" { #endif /** error codes returned from this interface */ typedef enum { yajl_status_ok, yajl_status_client_canceled, yajl_status_insufficient_data, yajl_status_error } yajl_status; /** attain a human readable, english, string for an error */ const char * YAJL_API yajl_status_to_string(yajl_status code); /** an opaque handle to a parser */ typedef struct yajl_handle_t * yajl_handle; /** yajl is an event driven parser. this means as json elements are * parsed, you are called back to do something with the data. The * functions in this table indicate the various events for which * you will be called back. Each callback accepts a "context" * pointer, this is a void * that is passed into the yajl_parse * function which the client code may use to pass around context. * * All callbacks return an integer. If non-zero, the parse will * continue. If zero, the parse will be canceled and * yajl_status_client_canceled will be returned from the parse. */ typedef struct { int (* yajl_null)(void * ctx); int (* yajl_boolean)(void * ctx, int boolVal); int (* yajl_integer)(void * ctx, long integerVal); int (* yajl_double)(void * ctx, double doubleVal); /* strings are returned as pointers into the JSON text when, * possible, they are not null padded */ int (* yajl_string)(void * ctx, const unsigned char * stringVal, unsigned int stringLen); int (* yajl_start_map)(void * ctx); int (* yajl_map_key)(void * ctx, const unsigned char * key, unsigned int stringLen); int (* yajl_end_map)(void * ctx); int (* yajl_start_array)(void * ctx); int (* yajl_end_array)(void * ctx); } yajl_callbacks; /** configuration structure for the generator */ typedef struct { /** if nonzero, javascript style comments will be allowed in * the json input, both slash star and slash slash */ unsigned int allowComments; } yajl_parser_config; /** allocate a parser handle * \param callbacks a yajl callbacks structure specifying the * functions to call when different JSON entities * are encountered in the input text. May be NULL, * which is only useful for validation. * \param config configuration parameters for the parse. * \param ctx a context pointer that will be passed to callbacks. */ yajl_handle YAJL_API yajl_alloc(const yajl_callbacks * callbacks, const yajl_parser_config * config, void * ctx); /** free a parser handle */ void YAJL_API yajl_free(yajl_handle handle); /** parse some json! */ yajl_status YAJL_API yajl_parse(yajl_handle hand, const unsigned char * jsonText, unsigned int jsonTextLength); /** get an error string describing the state of the * parse. * * If verbose is non-zero, the message will include the JSON * text where the error occured, along with an arrow pointing to * the specific char. * * A dynamically allocated string will be returned which should * be freed with yajl_free_error */ unsigned char * YAJL_API yajl_get_error(yajl_handle hand, int verbose, const unsigned char * jsonText, unsigned int jsonTextLength); void YAJL_API yajl_free_error(unsigned char * str); #ifdef __cplusplus }; #endif #endif XQilla-2.3.0/src/yajl/yajl_buf.c0000644000151400015140000000606711636377671013342 00000000000000/* * Copyright 2007, Lloyd Hilaiel. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. Neither the name of Lloyd Hilaiel nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #include "../config/xqilla_config.h" #include "yajl_buf.h" #include #include #include #define YAJL_BUF_INIT_SIZE 2048 struct yajl_buf_t { unsigned int len; unsigned int used; unsigned char * data; }; static void yajl_buf_ensure_available(yajl_buf buf, unsigned int want) { unsigned int need; assert(buf != NULL); /* first call */ if (buf->data == NULL) { buf->len = YAJL_BUF_INIT_SIZE; buf->data = (unsigned char *) malloc(buf->len); buf->data[0] = 0; } need = buf->len; while (want >= (need - buf->used)) need <<= 1; if (need != buf->len) { buf->data = (unsigned char *) realloc(buf->data, need); buf->len = need; } } yajl_buf yajl_buf_alloc(void) { return (yajl_buf) calloc(1, sizeof(struct yajl_buf_t)); } void yajl_buf_free(yajl_buf buf) { assert(buf != NULL); if (buf->data) free(buf->data); free(buf); } void yajl_buf_append(yajl_buf buf, const void * data, unsigned int len) { yajl_buf_ensure_available(buf, len); if (len > 0) { assert(data != NULL); memcpy(buf->data + buf->used, data, len); buf->used += len; buf->data[buf->used] = 0; } } void yajl_buf_clear(yajl_buf buf) { buf->used = 0; if (buf->data) buf->data[buf->used] = 0; } const unsigned char * yajl_buf_data(yajl_buf buf) { return buf->data; } unsigned int yajl_buf_len(yajl_buf buf) { return buf->used; } void yajl_buf_truncate(yajl_buf buf, unsigned int len) { assert(len <= buf->used); buf->used = len; } XQilla-2.3.0/src/yajl/yajl_lex.c0000644000151400015140000005471011636377671013354 00000000000000/* * Copyright 2007, Lloyd Hilaiel. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. Neither the name of Lloyd Hilaiel nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #include "../config/xqilla_config.h" #include "yajl_lex.h" #include "yajl_buf.h" #include #include #include #include #ifdef YAJL_LEXER_DEBUG static const char * tokToStr(yajl_tok tok) { switch (tok) { case yajl_tok_bool: return "bool"; case yajl_tok_colon: return "colon"; case yajl_tok_comma: return "comma"; case yajl_tok_eof: return "eof"; case yajl_tok_error: return "error"; case yajl_tok_left_brace: return "brace"; case yajl_tok_left_bracket: return "bracket"; case yajl_tok_null: return "null"; case yajl_tok_integer: return "integer"; case yajl_tok_double: return "double"; case yajl_tok_right_brace: return "brace"; case yajl_tok_right_bracket: return "bracket"; case yajl_tok_string: return "string"; case yajl_tok_string_with_escapes: return "string_with_escapes"; } return "unknown"; } #endif /* Impact of the stream parsing feature on the lexer: * * YAJL support stream parsing. That is, the ability to parse the first * bits of a chunk of JSON before the last bits are available (still on * the network or disk). This makes the lexer more complex. The * responsibility of the lexer is to handle transparently the case where * a chunk boundary falls in the middle of a token. This is * accomplished is via a buffer and a character reading abstraction. * * Overview of implementation * * When we lex to end of input string before end of token is hit, we * copy all of the input text composing the token into our lexBuf. * * Every time we read a character, we do so through the readChar function. * readChar's responsibility is to handle pulling all chars from the buffer * before pulling chars from input text */ struct yajl_lexer_t { /* the overal line and char offset into the data */ unsigned int lineOff; unsigned int charOff; /* error */ yajl_lex_error error; /* a input buffer to handle the case where a token is spread over * multiple chunks */ yajl_buf buf; /* in the case where we have data in the lexBuf, bufOff holds * the current offset into the lexBuf. */ unsigned int bufOff; /* are we using the lex buf? */ unsigned int bufInUse; /* shall we allow comments? */ unsigned int allowComments; }; static unsigned char readChar(yajl_lexer lxr, const unsigned char * txt, unsigned int *off) { if (lxr->bufInUse && yajl_buf_len(lxr->buf) && lxr->bufOff < yajl_buf_len(lxr->buf)) { return *((unsigned char *) yajl_buf_data(lxr->buf) + (lxr->bufOff)++); } return txt[(*off)++]; } static void unreadChar(yajl_lexer lxr, unsigned int *off) { if (*off > 0) (*off)--; else (lxr->bufOff)--; } yajl_lexer yajl_lex_alloc(unsigned int allowComments) { yajl_lexer lxr = (yajl_lexer) calloc(1, sizeof(struct yajl_lexer_t)); lxr->buf = yajl_buf_alloc(); lxr->allowComments = allowComments; return lxr; } void yajl_lex_free(yajl_lexer lxr) { yajl_buf_free(lxr->buf); free(lxr); return; } /* a lookup table which lets us quickly determine three things: * VEC - valid escaped conrol char * IJC - invalid json char * VHC - valid hex char * note. the solidus '/' may be escaped or not. * note. the */ #define VEC 1 #define IJC 2 #define VHC 4 const static char charLookupTable[256] = { /*00*/ IJC , IJC , IJC , IJC , IJC , IJC , IJC , IJC , /*08*/ IJC , IJC , IJC , IJC , IJC , IJC , IJC , IJC , /*10*/ IJC , IJC , IJC , IJC , IJC , IJC , IJC , IJC , /*18*/ IJC , IJC , IJC , IJC , IJC , IJC , IJC , IJC , /*20*/ 0 , 0 , VEC|IJC, 0 , 0 , 0 , 0 , 0 , /*28*/ 0 , 0 , 0 , 0 , 0 , 0 , 0 , VEC , /*30*/ VHC , VHC , VHC , VHC , VHC , VHC , VHC , VHC , /*38*/ VHC , VHC , 0 , 0 , 0 , 0 , 0 , 0 , /*40*/ 0 , VHC , VHC , VHC , VHC , VHC , VHC , 0 , /*48*/ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , /*50*/ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , /*58*/ 0 , 0 , 0 , 0 , VEC|IJC, 0 , 0 , 0 , /*60*/ 0 , VHC , VEC|VHC, VHC , VHC , VHC , VEC|VHC, 0 , /*68*/ 0 , 0 , 0 , 0 , 0 , 0 , VEC , 0 , /*70*/ 0 , 0 , VEC , 0 , VEC , 0 , 0 , 0 , /*78*/ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , /* include these so we don't have to always check the range of the char */ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 }; /* lex a string. input is the lexer, pointer to beginning of * json text, and start of string (offset). * a token is returned which has the following meanings: * yajl_tok_string: lex of string was successful. offset points to * terminating '"'. * yajl_tok_eof: end of text was encountered before we could complete * the lex. * yajl_tok_error: embedded in the string were unallowable chars. offset * points to the offending char */ #define STR_CHECK_EOF \ if (*offset >= jsonTextLen) { \ tok = yajl_tok_eof; \ break; \ } static yajl_tok yajl_lex_string(yajl_lexer lexer, const unsigned char * jsonText, unsigned int jsonTextLen, unsigned int * offset) { yajl_tok tok = yajl_tok_error; int hasEscapes = 0; for (;;) { unsigned char curChar; STR_CHECK_EOF; curChar = readChar(lexer, jsonText, offset); /* quote terminates */ if (curChar == '"') { tok = yajl_tok_string; break; } /* backslash escapes a set of control chars, */ else if (curChar == '\\') { hasEscapes = 1; STR_CHECK_EOF; /* special case \u */ curChar = readChar(lexer, jsonText, offset); if (curChar == 'u') { unsigned int i = 0; for (i=0;i<4;i++) { STR_CHECK_EOF; curChar = readChar(lexer, jsonText, offset); if (!(charLookupTable[curChar] & VHC)) { /* back up to offending char */ unreadChar(lexer, offset); lexer->error = yajl_lex_string_invalid_hex_char; goto finish_string_lex; } } } else if (!(charLookupTable[curChar] & VEC)) { /* back up to offending char */ unreadChar(lexer, offset); lexer->error = yajl_lex_string_invalid_escaped_char; goto finish_string_lex; } } /* check if it's a valid json char */ else if (charLookupTable[curChar] & IJC) { /* back up to offending char */ unreadChar(lexer, offset); lexer->error = yajl_lex_string_invalid_json_char; goto finish_string_lex; } /* accept it, and move on */ } finish_string_lex: /* tell our buddy, the parser, wether he needs to process this string * again */ if (hasEscapes && tok == yajl_tok_string) { tok = yajl_tok_string_with_escapes; } return tok; } #define RETURN_IF_EOF if (*offset >= jsonTextLen) return yajl_tok_eof; static yajl_tok yajl_lex_number(yajl_lexer lexer, const unsigned char * jsonText, unsigned int jsonTextLen, unsigned int * offset) { /** XXX: numbers are the only entities in json that we must lex * _beyond_ in order to know that they are complete. There * is an ambiguous case for integers at EOF. */ unsigned char c; yajl_tok tok = yajl_tok_integer; RETURN_IF_EOF; c = readChar(lexer, jsonText, offset); /* optional leading minus */ if (c == '-') { RETURN_IF_EOF; c = readChar(lexer, jsonText, offset); } /* a single zero, or a series of integers */ if (c == '0') { RETURN_IF_EOF; c = readChar(lexer, jsonText, offset); } else if (c >= '1' && c <= '9') { do { RETURN_IF_EOF; c = readChar(lexer, jsonText, offset); } while (c >= '0' && c <= '9'); } else { unreadChar(lexer, offset); lexer->error = yajl_lex_missing_integer_after_minus; return yajl_tok_error; } /* optional fraction (indicates this is floating point) */ if (c == '.') { int numRd = 0; RETURN_IF_EOF; c = readChar(lexer, jsonText, offset); while (c >= '0' && c <= '9') { numRd++; RETURN_IF_EOF; c = readChar(lexer, jsonText, offset); } if (!numRd) { unreadChar(lexer, offset); lexer->error = yajl_lex_missing_integer_after_decimal; return yajl_tok_error; } tok = yajl_tok_double; } /* optional exponent (indicates this is floating point) */ if (c == 'e' || c == 'E') { RETURN_IF_EOF; c = readChar(lexer, jsonText, offset); /* optional sign */ if (c == '+' || c == '-') { RETURN_IF_EOF; c = readChar(lexer, jsonText, offset); } if (c >= '1' && c <= '9') { do { RETURN_IF_EOF; c = readChar(lexer, jsonText, offset); } while (c >= '0' && c <= '9'); } else { unreadChar(lexer, offset); lexer->error = yajl_lex_missing_integer_after_exponent; return yajl_tok_error; } tok = yajl_tok_double; } /* we always go "one too far" */ unreadChar(lexer, offset); return tok; } static yajl_tok yajl_lex_comment(yajl_lexer lexer, const unsigned char * jsonText, unsigned int jsonTextLen, unsigned int * offset) { unsigned char c; yajl_tok tok = yajl_tok_comment; RETURN_IF_EOF; c = readChar(lexer, jsonText, offset); /* either slash or star expected */ if (c == '/') { /* now we throw away until end of line */ do { RETURN_IF_EOF; c = readChar(lexer, jsonText, offset); } while (c != '\n'); } else if (c == '*') { /* now we throw away until end of comment */ for (;;) { RETURN_IF_EOF; c = readChar(lexer, jsonText, offset); if (c == '*') { c = readChar(lexer, jsonText, offset); if (c == '/') { break; } else { unreadChar(lexer, offset); } } } } else { lexer->error = yajl_lex_invalid_char; tok = yajl_tok_error; } return tok; } yajl_tok yajl_lex_lex(yajl_lexer lexer, const unsigned char * jsonText, unsigned int jsonTextLen, unsigned int * context, const unsigned char ** outBuf, unsigned int * outLen) { yajl_tok tok = yajl_tok_error; unsigned char c; unsigned int startCtx = *context; *outBuf = NULL; *outLen = 0; for (;;) { assert(*context <= jsonTextLen); if (*context >= jsonTextLen) { tok = yajl_tok_eof; goto lexed; } c = readChar(lexer, jsonText, context); switch (c) { case '{': tok = yajl_tok_left_bracket; goto lexed; case '}': tok = yajl_tok_right_bracket; goto lexed; case '[': tok = yajl_tok_left_brace; goto lexed; case ']': tok = yajl_tok_right_brace; goto lexed; case ',': tok = yajl_tok_comma; goto lexed; case ':': tok = yajl_tok_colon; goto lexed; case '\t': case '\n': case '\v': case '\f': case '\r': case ' ': startCtx++; break; case 't': { const char * want = "rue"; do { if (*context >= jsonTextLen) { tok = yajl_tok_eof; goto lexed; } c = readChar(lexer, jsonText, context); if (c != *want) { unreadChar(lexer, context); lexer->error = yajl_lex_invalid_string; tok = yajl_tok_error; goto lexed; } } while (*(++want)); tok = yajl_tok_bool; goto lexed; } case 'f': { const char * want = "alse"; do { if (*context >= jsonTextLen) { tok = yajl_tok_eof; goto lexed; } c = readChar(lexer, jsonText, context); if (c != *want) { unreadChar(lexer, context); lexer->error = yajl_lex_invalid_string; tok = yajl_tok_error; goto lexed; } } while (*(++want)); tok = yajl_tok_bool; goto lexed; } case 'n': { const char * want = "ull"; do { if (*context >= jsonTextLen) { tok = yajl_tok_eof; goto lexed; } c = readChar(lexer, jsonText, context); if (c != *want) { unreadChar(lexer, context); lexer->error = yajl_lex_invalid_string; tok = yajl_tok_error; goto lexed; } } while (*(++want)); tok = yajl_tok_null; goto lexed; } case '"': { tok = yajl_lex_string(lexer, (unsigned char *) jsonText, jsonTextLen, context); goto lexed; } case '-': case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': { /* integer parsing wants to start from the beginning */ unreadChar(lexer, context); tok = yajl_lex_number(lexer, (unsigned char *) jsonText, jsonTextLen, context); goto lexed; } case '/': /* hey, look, a probable comment! If comments are disabled * it's an error. */ if (!lexer->allowComments) { unreadChar(lexer, context); lexer->error = yajl_lex_unallowed_comment; tok = yajl_tok_error; goto lexed; } /* if comments are enabled, then we should try to lex * the thing. possible outcomes are * - successful lex (tok_comment, which means continue), * - malformed comment opening (slash not followed by * '*' or '/') (tok_error) * - eof hit. (tok_eof) */ tok = yajl_lex_comment(lexer, (unsigned char *) jsonText, jsonTextLen, context); if (tok == yajl_tok_comment) { /* "error" is silly, but that's the initial * state of tok. guilty until proven innocent. */ tok = yajl_tok_error; yajl_buf_clear(lexer->buf); lexer->bufInUse = 0; startCtx = *context; break; } /* hit error or eof, bail */ goto lexed; default: lexer->error = yajl_lex_invalid_char; tok = yajl_tok_error; goto lexed; } } lexed: /* need to append to buffer if the buffer is in use or * if it's an EOF token */ if (tok == yajl_tok_eof || lexer->bufInUse) { if (!lexer->bufInUse) yajl_buf_clear(lexer->buf); lexer->bufInUse = 1; yajl_buf_append(lexer->buf, jsonText + startCtx, *context - startCtx); lexer->bufOff = 0; if (tok != yajl_tok_eof) { *outBuf = yajl_buf_data(lexer->buf); *outLen = yajl_buf_len(lexer->buf); lexer->bufInUse = 0; } } else if (tok != yajl_tok_error) { *outBuf = jsonText + startCtx; *outLen = *context - startCtx; } /* special case for strings. skip the quotes. */ if (tok == yajl_tok_string || tok == yajl_tok_string_with_escapes) { assert(*outLen >= 2); (*outBuf)++; *outLen -= 2; } #ifdef YAJL_LEXER_DEBUG if (tok == yajl_tok_error) { printf("lexical error: %s\n", yajl_lex_error_to_string(yajl_lex_get_error(lexer))); } else if (tok == yajl_tok_eof) { printf("EOF hit\n"); } else { printf("lexed %s: '", tokToStr(tok)); fwrite(*outBuf, 1, *outLen, stdout); printf("'\n"); } #endif return tok; } const char * yajl_lex_error_to_string(yajl_lex_error error) { switch (error) { case yajl_lex_e_ok: return "ok, no error"; case yajl_lex_string_invalid_escaped_char: return "inside a string, '\\' occurs before a character " "which it may not."; case yajl_lex_string_invalid_json_char: return "invalid character inside string."; case yajl_lex_string_invalid_hex_char: return "invalid (non-hex) character occurs after '\\u' inside " "string."; case yajl_lex_invalid_char: return "invalid char in json text."; case yajl_lex_invalid_string: return "invalid string in json text."; case yajl_lex_missing_integer_after_exponent: return "malformed number, a digit is required after the exponent."; case yajl_lex_missing_integer_after_decimal: return "malformed number, a digit is required after the " "decimal point."; case yajl_lex_missing_integer_after_minus: return "malformed number, a digit is required after the " "minus sign."; case yajl_lex_unallowed_comment: return "probable comment found in input text, comments are " "not enabled."; } return "unknown error code"; } /** allows access to more specific information about the lexical * error when yajl_lex_lex returns yajl_tok_error. */ yajl_lex_error yajl_lex_get_error(yajl_lexer lexer) { if (lexer == NULL) return (yajl_lex_error) -1; return lexer->error; } unsigned int yajl_lex_current_line(yajl_lexer lexer) { return lexer->lineOff; } unsigned int yajl_lex_current_char(yajl_lexer lexer) { return lexer->charOff; } yajl_tok yajl_lex_peek(yajl_lexer lexer, const unsigned char * jsonText, unsigned int jsonTextLen, unsigned int offset) { const unsigned char * outBuf; unsigned int outLen; unsigned int bufLen = yajl_buf_len(lexer->buf); unsigned int bufOff = lexer->bufOff; unsigned int bufInUse = lexer->bufInUse; yajl_tok tok; tok = yajl_lex_lex(lexer, jsonText, jsonTextLen, &offset, &outBuf, &outLen); lexer->bufOff = bufOff; lexer->bufInUse = bufInUse; yajl_buf_truncate(lexer->buf, bufLen); return tok; } XQilla-2.3.0/src/yajl/yajl_buf.h0000644000151400015140000000436011636377671013341 00000000000000/* * Copyright 2007, Lloyd Hilaiel. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. Neither the name of Lloyd Hilaiel nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #ifndef __YAJL_BUF_H__ #define __YAJL_BUF_H__ /** * yajl_buf is a buffer with exponential growth. the buffer ensures that * you are always null padded. */ typedef struct yajl_buf_t * yajl_buf; /* allocate a new buffer */ yajl_buf yajl_buf_alloc(void); /* free the buffer */ void yajl_buf_free(yajl_buf buf); /* append a number of bytes to the buffer */ void yajl_buf_append(yajl_buf buf, const void * data, unsigned int len); /* empty the buffer */ void yajl_buf_clear(yajl_buf buf); /* get a pointer to the beginning of the buffer */ const unsigned char * yajl_buf_data(yajl_buf buf); /* get the length of the buffer */ unsigned int yajl_buf_len(yajl_buf buf); /* truncate the buffer */ void yajl_buf_truncate(yajl_buf buf, unsigned int len); #endif XQilla-2.3.0/src/axis/0000755000151400015140000000000011653572443011450 500000000000000XQilla-2.3.0/src/axis/NodeTest.cpp0000644000151400015140000002336511653565523013633 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif NodeTest::NodeTest() : _name(0), _uri(0), _prefix(0), _type(0), _wildcardName(false), _wildcardNamespace(false), _wildcardType(false), _usePrefix(false), _hasChildren(false), _itemType(0) { } NodeTest::NodeTest(const XMLCh *nodeType, const XMLCh *uri, const XMLCh *name) : _name(name), _uri(uri), _prefix(0), _type(nodeType), _wildcardName(name == 0), _wildcardNamespace(name == 0), _wildcardType(nodeType == 0), _usePrefix(false), _hasChildren(false), _itemType(0) { } NodeTest::NodeTest(const NodeTest *o) : _name(o->_name), _uri(o->_uri), _prefix(o->_prefix), _type(o->_type), _wildcardName(o->_wildcardName), _wildcardNamespace(o->_wildcardNamespace), _wildcardType(o->_wildcardType), _usePrefix(o->_usePrefix), _hasChildren(o->_hasChildren), _itemType(o->_itemType) { } NodeTest::~NodeTest() { delete _itemType; } void *NodeTest::getInterface(const XMLCh *name) const { return 0; } void NodeTest::getStaticType(StaticType &st, const StaticContext *context, bool &isExact, const LocationInfo *location) const { if(_itemType) { _itemType->getStaticType(st, context, isExact, location); } else { if(_wildcardType) { if(_hasChildren) { st = StaticType::ELEMENT_TYPE | StaticType::DOCUMENT_TYPE; } else { st = StaticType::NODE_TYPE; } } else if(_type == Node::document_string) { st = StaticType::DOCUMENT_TYPE; } else if(_type == Node::element_string) { st = StaticType::ELEMENT_TYPE; } else if(_type == Node::attribute_string) { st = StaticType::ATTRIBUTE_TYPE; } else if(_type == Node::namespace_string) { st = StaticType::NAMESPACE_TYPE; } else if(_type == Node::processing_instruction_string) { st = StaticType::PI_TYPE; } else if(_type == Node::comment_string) { st = StaticType::COMMENT_TYPE; } else if(_type == Node::text_string) { st = StaticType::TEXT_TYPE; } if(_wildcardName && _wildcardNamespace) isExact = true; else isExact = false; } } Result NodeTest::filterResult(const Result &toFilter, const LocationInfo *info) const { return new FilterResult(info, toFilter, this); } bool NodeTest::filterNode(Node::Ptr node, DynamicContext* context) const { if(_itemType) return _itemType->matches(node, context); else return checkNodeType(node) && checkNodeName(node, context); } bool NodeTest::checkNodeType(Node::Ptr node) const { assert(node.notNull()); if(_wildcardType) { if(_hasChildren) { return node->dmNodeKind() == Node::element_string || node->dmNodeKind() == Node::document_string; } else return true; } return node->dmNodeKind() == _type; } bool NodeTest::checkNodeName(Node::Ptr node, const DynamicContext *context) const { ATQNameOrDerived::Ptr name = node->dmNodeName(context); const XMLCh *uri = _uri; if(uri == 0 && node->dmNodeKind() == Node::element_string) { uri = context->getDefaultElementAndTypeNS(); } return (_wildcardName || (name.notNull() && XPath2Utils::equals(((ATQNameOrDerived*)name.get())->getName(), _name))) && (_wildcardNamespace || (name.notNull() && XPath2Utils::equals(((ATQNameOrDerived*)name.get())->getURI(), uri))); } void NodeTest::setNodeName(const XMLCh* name) { _name = name; } void NodeTest::setNodePrefix(const XMLCh* prefix) { _prefix=prefix; _usePrefix=true; } void NodeTest::setNodeUri(const XMLCh* uri) { _uri = uri; _usePrefix=false; } void NodeTest::setNodeType(const XMLCh *type) { _type = type; } void NodeTest::setNameWildcard(bool value) { _wildcardName = value; } void NodeTest::setNamespaceWildcard(bool value) { _wildcardNamespace = value; } void NodeTest::setTypeWildcard(bool value) { _wildcardType = value; } bool NodeTest::getHasChildren() const { return _hasChildren; } void NodeTest::setHasChildren(bool value) { _hasChildren = value; } const XMLCh *NodeTest::getNodeType() const { return _type; } const XMLCh* NodeTest::getNodeUri() const { return _uri; } const XMLCh* NodeTest::getNodePrefix() const { return _prefix; } const XMLCh* NodeTest::getNodeName() const { return _name; } bool NodeTest::getNameWildcard() const { return _wildcardName; } bool NodeTest::getNamespaceWildcard() const { return _wildcardNamespace; } bool NodeTest::getTypeWildcard() const { return _wildcardType; } bool NodeTest::isNodeTypeSet() const { return _type != 0; } void NodeTest::staticResolution(StaticContext *context, const LocationInfo *location) { if(isNodePrefixSet()) { setNodeUri(context->getUriBoundToPrefix(getNodePrefix(), location)); } if(!_wildcardNamespace && _uri == 0 && !_wildcardType && _type == Node::element_string) { _uri = context->getDefaultElementAndTypeNS(); } // Convert certain NodeTest objects that use an ItemType to ones that don't, // for efficiency and simplicity of comparison. if(_itemType != 0) { _itemType->staticResolution(context, location); switch(_itemType->getItemTestType()) { case SequenceType::ItemType::TEST_NODE: _wildcardType = true; _wildcardNamespace = true; _wildcardName = true; _itemType = 0; break; case SequenceType::ItemType::TEST_DOCUMENT: if(_itemType->getName() == 0 && _itemType->getType() == 0) { _wildcardType = false; _type = Node::document_string; _wildcardNamespace = true; _wildcardName = true; _itemType = 0; } break; case SequenceType::ItemType::TEST_TEXT: _wildcardType = false; _type = Node::text_string; _wildcardNamespace = true; _wildcardName = true; _itemType = 0; break; case SequenceType::ItemType::TEST_COMMENT: _wildcardType = false; _type = Node::comment_string; _wildcardNamespace = true; _wildcardName = true; _itemType = 0; break; case SequenceType::ItemType::TEST_PI: _wildcardType = false; _type = Node::processing_instruction_string; _wildcardNamespace = true; if(_itemType->getName() == 0) { _wildcardName = true; } else { _wildcardName = false; _name = _itemType->getName()->getName(); } _itemType = 0; break; case SequenceType::ItemType::TEST_ATTRIBUTE: if(_itemType->getType() == 0) { _wildcardType = false; _type = Node::attribute_string; if(_itemType->getName() == 0) { _wildcardNamespace = true; _wildcardName = true; } else { _wildcardNamespace = false; _uri = context->getUriBoundToPrefix(_itemType->getName()->getPrefix(), location); _wildcardName = false; _name = _itemType->getName()->getName(); } _itemType = 0; } break; case SequenceType::ItemType::TEST_ELEMENT: if(_itemType->getType() == 0) { _wildcardType = false; _type = Node::element_string; if(_itemType->getName() == 0) { _wildcardNamespace = true; _wildcardName = true; } else { _wildcardNamespace = false; _uri = context->getUriBoundToPrefix(_itemType->getName()->getPrefix(), location); _wildcardName = false; _name = _itemType->getName()->getName(); } _itemType = 0; } break; default: break; } } } bool NodeTest::isNodePrefixSet() const { return _usePrefix; } SequenceType::ItemType* NodeTest::getItemType() const { return _itemType; } void NodeTest::setItemType(SequenceType::ItemType* type) { _itemType=type; } bool NodeTest::isSubsetOf(const NodeTest *o) const { if(o->_itemType != 0 || _itemType != 0) return false; if(!o->_wildcardType && (_wildcardType || o->_type != _type)) return false; if(!o->_wildcardNamespace && (_wildcardNamespace || !XPath2Utils::equals(o->_uri, _uri))) return false; if(!o->_wildcardName && (_wildcardName || !XPath2Utils::equals(o->_name, _name))) return false; return true; } bool NodeTest::isSubsetOf(const NodeTest *a, const NodeTest *b) { if(b == 0) return true; if(a == 0) return b->_itemType == 0 && b->_wildcardType && b->_wildcardNamespace && b->_wildcardName; return a->isSubsetOf(b); } ///////////////////////////////////// // FilterResult ///////////////////////////////////// NodeTest::FilterResult::FilterResult(const LocationInfo *info, const Result &toFilter, const NodeTest *nodeTest) : ResultImpl(info), toFilter_(toFilter), nodeTest_(nodeTest) { } Item::Ptr NodeTest::FilterResult::next(DynamicContext *context) { Node::Ptr result = 0; while((result = toFilter_->next(context)).notNull() && !nodeTest_->filterNode(result, context)) {} return result; } XQilla-2.3.0/src/mapm/0000755000151400015140000000000011653572443011436 500000000000000XQilla-2.3.0/src/mapm/mapmgues.c0000644000151400015140000000773711571227107013347 00000000000000 /* * M_APM - mapmgues.c * * Copyright (C) 1999 - 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" #include /****************************************************************************/ void M_get_sqrt_guess(M_APM r, M_APM a) { /* sqrt algorithm actually finds 1/sqrt */ m_apm_set_double(r, (1.0 / sqrt(m_apm_get_double(a)))); } /****************************************************************************/ void M_get_cbrt_guess(M_APM r, M_APM a) { m_apm_set_double(r, exp(log(m_apm_get_double(a)) / 3.0)); } /****************************************************************************/ /* * for log, asin, and acos we induce an error of 10 ^ -5. * this enables the iterative routine to be more efficient * by knowing exactly how accurate the initial guess is. * * but the real reason ... this also prevents some corner * conditions where the iterative functions may terminate too soon. */ void M_get_log_guess(M_APM r, M_APM a) { /* induce error of 10 ^ -5 */ m_apm_set_double(r, (1.00001 * log(m_apm_get_double(a)))); } /****************************************************************************/ /* * the implementation of the asin & acos functions * guarantee that 'a' is always < 0.85, so it is * safe to multiply by a number > 1 */ void M_get_asin_guess(M_APM r, M_APM a) { /* induce error of 10 ^ -5 */ m_apm_set_double(r, (1.00001 * asin(m_apm_get_double(a)))); } /****************************************************************************/ void M_get_acos_guess(M_APM r, M_APM a) { /* induce error of 10 ^ -5 */ m_apm_set_double(r, (1.00001 * acos(m_apm_get_double(a)))); } /****************************************************************************/ /* convert a C 'double' into an M_APM value. */ void m_apm_set_double(M_APM atmp, double dd) { char *cp, *p, *ps, buf[64]; if (dd == 0.0) /* special case for 0 exactly */ m_apm_set_string(atmp, "0"); else { sprintf(buf,"%.14E",dd); cp = strstr(buf, "E"); if (atoi(cp + sizeof(char)) == 0) *cp = '\0'; p = cp; while (TRUE) { p--; if (*p == '0' || *p == '.') *p = ' '; else break; } ps = buf; p = buf; while (TRUE) { if ((*p = *ps) == '\0') break; if (*ps++ != ' ') p++; } m_apm_set_string(atmp, buf); } } /****************************************************************************/ /* convert a M_APM value into a C 'double' */ double m_apm_get_double(M_APM atmp) { UCHAR numdiv, numrem; double result = 0; int index=0; int max_i = (atmp->m_apm_datalength + 1) >> 1; if(max_i > ((17 + 1) >> 1)) { // We only need to deal with the top 17 digits, by which point we've // maxed out the double's mantissa. max_i = ((17 + 1) >> 1); } for(; index < max_i; ++index) { M_get_div_rem_10((int)atmp->m_apm_data[index], &numdiv, &numrem); result = result * 100 + (double)numdiv * 10 + numrem; } result *= pow(10, atmp->m_apm_exponent - (max_i << 1)); if(atmp->m_apm_sign == -1) result *= -1; return result; } /****************************************************************************/ XQilla-2.3.0/src/mapm/mapmfact.c0000644000151400015140000001300311571227107013300 00000000000000 /* * M_APM - mapmfact.c * * Copyright (C) 1999 - 2002 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ /* * Brief explanation of the factorial algorithm. * ---------------------------------------------- * * The old algorithm simply multiplied N * (N-1) * (N-2) etc, until * the number counted down to '2'. So one term of the multiplication * kept getting bigger while multiplying by the next number in the * sequence. * * The new algorithm takes advantage of the fast multiplication * algorithm. The "ideal" setup for fast multiplication is when * both numbers have approx the same number of significant digits * and the number of digits is very near (but not over) an exact * power of 2. * * So, we will multiply N * (N-1) * (N-2), etc until the number of * significant digits is approx 256. * * Store this temp product into an array. * * Then we will multiply the next sequence until the number of * significant digits is approx 256. * * Store this temp product into the next element of the array. * * Continue until we've counted down to 2. * * We now have an array of numbers with approx the same number * of digits (except for the last element, depending on where it * ended.) Now multiply each of the array elements together to * get the final product. * * The array multiplies are done as follows (assume we used 11 * array elements for this example, indicated by [0] - [10] ) : * * initial iter-1 iter-2 iter-3 iter-4 * * [0] * * -> [0] * [1] * * -> [0] * * [2] * * -> [1] * [3] * * -> [0] * * [4] * * -> [2] * [5] * * * -> [1] * * [6] * * -> [3] * -> [0] * [7] * * * [8] * * -> [4] * [9] * * -> [2] -> [1] * * * [10] -> [5] * */ #include "m_apm_lc.h" /* define size of local array for temp storage */ #ifdef MSDOS #define NDIM 64 #else #define NDIM 128 #endif /****************************************************************************/ void m_apm_factorial(M_APM moutput, M_APM minput) { int ii, nmul, ndigits, nd, jj, kk, mm, ct; M_APM array[NDIM]; M_APM iprod1, iprod2, tmp1, tmp2; /* return 1 for any input <= 1 */ if (m_apm_compare(minput, MM_One) <= 0) { m_apm_copy(moutput, MM_One); return; } ct = 0; mm = NDIM - 2; ndigits = 256; nd = ndigits - 20; tmp1 = m_apm_init(); tmp2 = m_apm_init(); iprod1 = m_apm_init(); iprod2 = m_apm_init(); array[0] = m_apm_init(); m_apm_copy(tmp2, minput); /* loop until multiply count-down has reached '2' */ while (TRUE) { m_apm_copy(iprod1, MM_One); /* * loop until the number of significant digits in this * partial result is slightly less than 256 */ while (TRUE) { m_apm_multiply(iprod2, iprod1, tmp2); m_apm_subtract(tmp1, tmp2, MM_One); m_apm_multiply(iprod1, iprod2, tmp1); /* * I know, I know. There just isn't a *clean* way * to break out of 2 nested loops. */ if (m_apm_compare(tmp1, MM_Two) <= 0) goto PHASE2; m_apm_subtract(tmp2, tmp1, MM_One); if (iprod1->m_apm_datalength > nd) break; } if (ct == (NDIM - 1)) { /* * if the array has filled up, start multiplying * some of the partial products now. */ m_apm_copy(tmp1, array[mm]); m_apm_multiply(array[mm], iprod1, tmp1); if (mm == 0) { mm = NDIM - 2; ndigits = ndigits << 1; nd = ndigits - 20; } else mm--; } else { /* * store this partial product in the array * and allocate the next array element */ m_apm_copy(array[ct], iprod1); array[++ct] = m_apm_init(); } } PHASE2: m_apm_copy(array[ct], iprod1); kk = ct; while (kk != 0) { ii = 0; jj = 0; nmul = (kk + 1) >> 1; while (TRUE) { /* must use tmp var when ii,jj point to same element */ if (ii == 0) { m_apm_copy(tmp1, array[ii]); m_apm_multiply(array[jj], tmp1, array[ii+1]); } else m_apm_multiply(array[jj], array[ii], array[ii+1]); if (++jj == nmul) break; ii += 2; } if ((kk & 1) == 0) { jj = kk >> 1; m_apm_copy(array[jj], array[kk]); } kk = kk >> 1; } m_apm_copy(moutput, array[0]); for (ii=0; ii <= ct; ii++) { m_apm_free(array[ii]); } m_apm_free(tmp1); m_apm_free(tmp2); m_apm_free(iprod1); m_apm_free(iprod2); } /****************************************************************************/ XQilla-2.3.0/src/mapm/mapm_cpi.c0000644000151400015140000000753111571227107013306 00000000000000 /* * M_APM - mapm_cpi.c * * Copyright (C) 2001 - 2002 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" /****************************************************************************/ /* * check if our local copy of PI is precise enough * for our purpose. if not, calculate PI so it's * as precise as desired, accurate to 'places' decimal * places. */ void M_check_PI_places(int places) { int dplaces; dplaces = places + 2; if (dplaces > MM_lc_PI_digits) { MM_lc_PI_digits = dplaces + 2; /* compute PI using the AGM (see right below) */ M_calculate_PI_AGM(MM_lc_PI, (dplaces + 5)); m_apm_multiply(MM_lc_HALF_PI, MM_0_5, MM_lc_PI); m_apm_multiply(MM_lc_2_PI, MM_Two, MM_lc_PI); } } /****************************************************************************/ /* * Calculate PI using the AGM (Arithmetic-Geometric Mean) * * Init : A0 = 1 * B0 = 1 / sqrt(2) * Sum = 1 * * Iterate: n = 1... * * * A = 0.5 * [ A + B ] * n n-1 n-1 * * * B = sqrt [ A * B ] * n n-1 n-1 * * * * C = 0.5 * [ A - B ] * n n-1 n-1 * * * 2 n+1 * Sum = Sum - C * 2 * n * * * At the end when C is 'small enough' : * n * * 2 * PI = 4 * A / Sum * n+1 * * -OR- * * 2 * PI = ( A + B ) / Sum * n n * */ void M_calculate_PI_AGM(M_APM outv, int places) { M_APM tmp1, tmp2, a0, b0, c0, a1, b1, sum, pow_2; int dplaces, nn; tmp1 = M_get_stack_var(); tmp2 = M_get_stack_var(); a0 = M_get_stack_var(); b0 = M_get_stack_var(); c0 = M_get_stack_var(); a1 = M_get_stack_var(); b1 = M_get_stack_var(); sum = M_get_stack_var(); pow_2 = M_get_stack_var(); dplaces = places + 16; m_apm_copy(a0, MM_One); m_apm_copy(sum, MM_One); m_apm_copy(pow_2, MM_Four); m_apm_sqrt(b0, dplaces, MM_0_5); /* sqrt(0.5) */ while (TRUE) { m_apm_add(tmp1, a0, b0); m_apm_multiply(a1, MM_0_5, tmp1); m_apm_multiply(tmp1, a0, b0); m_apm_sqrt(b1, dplaces, tmp1); m_apm_subtract(tmp1, a0, b0); m_apm_multiply(c0, MM_0_5, tmp1); /* * the net 'PI' calculated from this iteration will * be accurate to ~4 X the value of (c0)'s exponent. * this was determined experimentally. */ nn = -4 * c0->m_apm_exponent; m_apm_multiply(tmp1, c0, c0); m_apm_multiply(tmp2, tmp1, pow_2); m_apm_subtract(tmp1, sum, tmp2); m_apm_round(sum, dplaces, tmp1); if (nn >= dplaces) break; m_apm_copy(a0, a1); m_apm_copy(b0, b1); m_apm_multiply(tmp1, pow_2, MM_Two); m_apm_copy(pow_2, tmp1); } m_apm_add(tmp1, a1, b1); m_apm_multiply(tmp2, tmp1, tmp1); m_apm_divide(tmp1, dplaces, tmp2, sum); m_apm_round(outv, places, tmp1); M_restore_stack(9); } /****************************************************************************/ XQilla-2.3.0/src/mapm/mapm_set.c0000644000151400015140000001455611636377670013350 00000000000000 /* * M_APM - mapm_set.c * * Copyright (C) 1999 - 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" /****************************************************************************/ void m_apm_set_long(M_APM atmp, long mm) { int ii, nbytes, len; char *p, *buf, ch, buf2[64]; /* if zero, return right away */ if (mm == 0) { M_set_to_zero(atmp); return; } M_long_2_ascii(buf2, mm); /* convert long -> ascii in base 10 */ buf = buf2; if (mm < 0) { atmp->m_apm_sign = -1; buf++; /* get past '-' sign */ } else { atmp->m_apm_sign = 1; } len = (int) strlen(buf); atmp->m_apm_exponent = len; /* least significant nibble of ODD data-length must be 0 */ if ((len & 1) != 0) { buf[len] = '0'; } /* remove any trailing '0' ... */ while (TRUE) { if (buf[--len] != '0') break; } atmp->m_apm_datalength = ++len; nbytes = (len + 1) >> 1; p = buf; for (ii=0; ii < nbytes; ii++) { ch = *p++ - '0'; atmp->m_apm_data[ii] = 10 * ch + *p++ - '0'; } } /****************************************************************************/ void m_apm_set_string(M_APM ctmp, char *s_in) { char *M_buf; char ch, *cp, *s, *p; void *vp; int i, j, zflag, exponent, sign; if ((M_buf = (char *)MAPM_MALLOC(strlen(s_in) + 32)) == NULL) { /* fatal, this does not return */ M_apm_log_error_msg(M_APM_EXIT, "\'m_apm_set_string\', Out of memory"); } s = M_buf; strcpy(s,s_in); /* default == zero ... */ M_set_to_zero(ctmp); p = s; while (TRUE) { if (*p == ' ' || *p == '\t') p++; else break; } if (*p == '\0') return; sign = 1; /* assume number is positive */ if (*p == '+') /* scan by optional '+' sign */ p++; else { if (*p == '-') /* check if number negative */ { sign = -1; p++; } } M_lowercase(p); /* convert string to lowercase */ exponent = 0; /* default */ if ((cp = strstr(p,"e")) != NULL) { exponent = atoi(cp + sizeof(char)); *cp = '\0'; /* erase the exponent now */ } j = M_strposition(p,"."); /* is there a decimal point ?? */ if (j == -1) { strcat(p,"."); /* if not, append one */ j = M_strposition(p,"."); /* now find it ... */ } if (j > 0) /* normalize number and adjust exponent */ { exponent += j; memmove((p+1),p,(j * sizeof(char))); } p++; /* scan past implied decimal point now in column 1 (index 0) */ i = (int) strlen(p); ctmp->m_apm_datalength = i; if ((i & 1) != 0) /* if odd number of digits, append a '0' to make it even */ strcat(p,"0"); j = (int) strlen(p) >> 1; /* number of bytes in encoded M_APM number */ /* do we need more memory to hold this number */ if (j > ctmp->m_apm_malloclength) { if ((vp = MAPM_REALLOC(ctmp->m_apm_data, (j + 32))) == NULL) { /* fatal, this does not return */ M_apm_log_error_msg(M_APM_EXIT, "\'m_apm_set_string\', Out of memory"); } ctmp->m_apm_malloclength = j + 28; ctmp->m_apm_data = (UCHAR *)vp; } zflag = TRUE; for (i=0; i < j; i++) { ch = *p++ - '0'; if ((ch = (10 * ch + *p++ - '0')) != 0) zflag = FALSE; if (((int)ch & 0xFF) >= 100) { M_apm_log_error_msg(M_APM_RETURN, "Warning! \'m_apm_set_string\' : Non-digit char found in parse"); M_apm_log_error_msg(M_APM_RETURN, "Text ="); M_apm_log_error_msg(M_APM_RETURN, s_in); M_set_to_zero(ctmp); return; } ctmp->m_apm_data[i] = ch; ctmp->m_apm_data[i+1] = 0; } ctmp->m_apm_exponent = exponent; ctmp->m_apm_sign = sign; if (zflag) { ctmp->m_apm_exponent = 0; ctmp->m_apm_sign = 0; ctmp->m_apm_datalength = 1; } else { M_apm_normalize(ctmp); } /* * if our local temp string is getting too big, * release it's memory and start over next time. * (this 1000 byte threshold is quite arbitrary, * it may be more efficient in your app to make * this number bigger). */ MAPM_FREE(M_buf); } /****************************************************************************/ void m_apm_to_string(char *s, int places, M_APM mtmp) { M_APM ctmp; char *cp; int i, index, first, max_i, num_digits, dec_places; UCHAR numdiv, numrem; ctmp = M_get_stack_var(); dec_places = places; if (dec_places < 0) m_apm_copy(ctmp, mtmp); else m_apm_round(ctmp, dec_places, mtmp); if (ctmp->m_apm_sign == 0) { if (dec_places < 0) strcpy(s,"0.0E0"); /* crioux: positive, no sign */ else { strcpy(s,"0"); if (dec_places > 0) strcat(s,"."); for (i=0; i < dec_places; i++) strcat(s,"0"); strcat(s,"E0"); /* crioux: positive, no sign */ } M_restore_stack(1); return; } max_i = (ctmp->m_apm_datalength + 1) >> 1; if (dec_places < 0) num_digits = ctmp->m_apm_datalength; else num_digits = dec_places + 1; cp = s; if (ctmp->m_apm_sign == -1) *cp++ = '-'; first = TRUE; i = 0; index = 0; while (TRUE) { if (index >= max_i) { numdiv = 0; numrem = 0; } else M_get_div_rem_10((int)ctmp->m_apm_data[index],&numdiv,&numrem); index++; *cp++ = numdiv + '0'; if (++i == num_digits) break; if (first) { first = FALSE; *cp++ = '.'; } *cp++ = numrem + '0'; if (++i == num_digits) break; } i = ctmp->m_apm_exponent - 1; if (i >= 0) sprintf(cp,"E%d",i); /* crioux: positive, no sign (could remove branching here) */ else sprintf(cp,"E%d",i); M_restore_stack(1); } /****************************************************************************/ XQilla-2.3.0/src/mapm/mapmfmul.c0000644000151400015140000004025511571227107013337 00000000000000 /* * M_APM - mapmfmul.c * * Copyright (C) 1999 - 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" static int M_firsttimef = TRUE; /* * specify the max size the FFT routine can handle * (in MAPM, #digits = 2 * #bytes) * * this number *must* be an exact power of 2. * * **WORST** case input numbers (all 9's) has shown that * the FFT math will overflow if the #define here is * >= 1048576. On my system, 524,288 worked OK. I will * factor down another factor of 2 to safeguard against * other computers have less precise floating point math. * If you are confident in your system, 524288 will * theoretically work fine. * * the define here allows the FFT algorithm to multiply two * 524,288 digit numbers yielding a 1,048,576 digit result. */ #define MAX_FFT_BYTES 262144 /* * the Divide-and-Conquer multiplication kicks in when the size of * the numbers exceed the capability of the FFT (#define just above). * * #bytes D&C call depth * ------ -------------- * 512K 1 * 1M 2 * 2M 3 * 4M 4 * ... ... * 2.1990E+12 23 * * the following stack sizes are sized to meet the * above 2.199E+12 example, though I wouldn't want to * wait for it to finish... * * Each call requires 7 stack variables to be saved so * we need a stack depth of 23 * 7 + PAD. (we use 164) * * For 'exp_stack', 3 integers also are required to be saved * for each recursive call so we need a stack depth of * 23 * 3 + PAD. (we use 72) * * * If the FFT multiply is disabled, resize the arrays * as follows: * * the following stack sizes are sized to meet the * worst case expected assuming we are multiplying * numbers with 2.14E+9 (2 ^ 31) digits. * * For sizeof(int) == 4 (32 bits) there may be up to 32 recursive * calls. Each call requires 7 stack variables so we need a * stack depth of 32 * 7 + PAD. (we use 240) * * For 'exp_stack', 3 integers also are required to be saved * for each recursive call so we need a stack depth of * 32 * 3 + PAD. (we use 100) */ #ifdef NO_FFT_MULTIPLY #define M_STACK_SIZE 240 #define M_ISTACK_SIZE 100 #else #define M_STACK_SIZE 164 #define M_ISTACK_SIZE 72 #endif static int exp_stack[M_ISTACK_SIZE]; static int exp_stack_ptr; static UCHAR *mul_stack_data[M_STACK_SIZE]; static int mul_stack_data_size[M_STACK_SIZE]; static int M_mul_stack_ptr; static UCHAR *fmul_a1, *fmul_a0, *fmul_a9, *fmul_b1, *fmul_b0, *fmul_b9, *fmul_t0; static int size_flag, bit_limit, stmp, itmp, mii; static M_APM M_ain; static M_APM M_bin; extern void M_fast_multiply(M_APM, M_APM, M_APM); extern void M_fmul_div_conq(UCHAR *, UCHAR *, UCHAR *, int); extern void M_fmul_add(UCHAR *, UCHAR *, int, int); extern int M_fmul_subtract(UCHAR *, UCHAR *, UCHAR *, int); extern void M_fmul_split(UCHAR *, UCHAR *, UCHAR *, int); extern int M_next_power_of_2(int); extern int M_get_stack_ptr(int); extern void M_push_mul_int(int); extern int M_pop_mul_int(void); #ifdef NO_FFT_MULTIPLY extern void M_4_byte_multiply(UCHAR *, UCHAR *, UCHAR *); #else extern void M_fast_mul_fft(UCHAR *, UCHAR *, UCHAR *, int); #endif /* * the following algorithm is used in this fast multiply routine * (sometimes called the divide-and-conquer technique.) * * assume we have 2 numbers (a & b) with 2N digits. * * let : a = (2^N) * A1 + A0 , b = (2^N) * B1 + B0 * * where 'A1' is the 'most significant half' of 'a' and * 'A0' is the 'least significant half' of 'a'. Same for * B1 and B0. * * Now use the identity : * * 2N N N N * ab = (2 + 2 ) A1B1 + 2 (A1-A0)(B0-B1) + (2 + 1)A0B0 * * * The original problem of multiplying 2 (2N) digit numbers has * been reduced to 3 multiplications of N digit numbers plus some * additions, subtractions, and shifts. * * The fast multiplication algorithm used here uses the above * identity in a recursive process. This algorithm results in * O(n ^ 1.585) growth. */ /****************************************************************************/ void M_free_all_fmul() { int k; if (M_firsttimef == FALSE) { m_apm_free(M_ain); m_apm_free(M_bin); for (k=0; k < M_STACK_SIZE; k++) { if (mul_stack_data_size[k] != 0) { MAPM_FREE(mul_stack_data[k]); } } M_firsttimef = TRUE; } } /****************************************************************************/ void M_push_mul_int(int val) { exp_stack[++exp_stack_ptr] = val; } /****************************************************************************/ int M_pop_mul_int() { return(exp_stack[exp_stack_ptr--]); } /****************************************************************************/ void M_fmul_split(UCHAR *x1, UCHAR *x0, UCHAR *xin, int nbytes) { memcpy(x1, xin, nbytes); memcpy(x0, (xin + nbytes), nbytes); } /****************************************************************************/ void M_fast_multiply(M_APM rr, M_APM aa, M_APM bb) { void *vp; int ii, k, nexp, sign; if (M_firsttimef) { M_firsttimef = FALSE; for (k=0; k < M_STACK_SIZE; k++) mul_stack_data_size[k] = 0; size_flag = M_get_sizeof_int(); bit_limit = 8 * size_flag + 1; M_ain = m_apm_init(); M_bin = m_apm_init(); } exp_stack_ptr = -1; M_mul_stack_ptr = -1; m_apm_copy(M_ain, aa); m_apm_copy(M_bin, bb); sign = M_ain->m_apm_sign * M_bin->m_apm_sign; nexp = M_ain->m_apm_exponent + M_bin->m_apm_exponent; if (M_ain->m_apm_datalength >= M_bin->m_apm_datalength) ii = M_ain->m_apm_datalength; else ii = M_bin->m_apm_datalength; ii = (ii + 1) >> 1; ii = M_next_power_of_2(ii); /* Note: 'ii' must be >= 4 here. this is guaranteed by the caller: m_apm_multiply */ k = 2 * ii; /* required size of result, in bytes */ M_apm_pad(M_ain, k); /* fill out the data so the number of */ M_apm_pad(M_bin, k); /* bytes is an exact power of 2 */ if (k > rr->m_apm_malloclength) { if ((vp = MAPM_REALLOC(rr->m_apm_data, (k + 32))) == NULL) { /* fatal, this does not return */ M_apm_log_error_msg(M_APM_EXIT, "\'M_fast_multiply\', Out of memory"); } rr->m_apm_malloclength = k + 28; rr->m_apm_data = (UCHAR *)vp; } #ifdef NO_FFT_MULTIPLY M_fmul_div_conq(rr->m_apm_data, M_ain->m_apm_data, M_bin->m_apm_data, ii); #else /* * if the numbers are *really* big, use the divide-and-conquer * routine first until the numbers are small enough to be handled * by the FFT algorithm. If the numbers are already small enough, * call the FFT multiplication now. * * Note that 'ii' here is (and must be) an exact power of 2. */ if (size_flag == 2) /* if still using 16 bit compilers .... */ { M_fast_mul_fft(rr->m_apm_data, M_ain->m_apm_data, M_bin->m_apm_data, ii); } else /* >= 32 bit compilers */ { if (ii > (MAX_FFT_BYTES + 2)) { M_fmul_div_conq(rr->m_apm_data, M_ain->m_apm_data, M_bin->m_apm_data, ii); } else { M_fast_mul_fft(rr->m_apm_data, M_ain->m_apm_data, M_bin->m_apm_data, ii); } } #endif rr->m_apm_sign = sign; rr->m_apm_exponent = nexp; rr->m_apm_datalength = 4 * ii; M_apm_normalize(rr); } /****************************************************************************/ /* * This is the recursive function to perform the multiply. The * design intent here is to have no local variables. Any local * data that needs to be saved is saved on one of the two stacks. */ void M_fmul_div_conq(UCHAR *rr, UCHAR *aa, UCHAR *bb, int sz) { #ifdef NO_FFT_MULTIPLY if (sz == 4) /* multiply 4x4 yielding an 8 byte result */ { M_4_byte_multiply(rr, aa, bb); return; } #else /* * if the numbers are now small enough, let the FFT algorithm * finish up. */ if (sz == MAX_FFT_BYTES) { M_fast_mul_fft(rr, aa, bb, sz); return; } #endif memset(rr, 0, (2 * sz)); /* zero out the result */ mii = sz >> 1; itmp = M_get_stack_ptr(mii); M_push_mul_int(itmp); fmul_a1 = mul_stack_data[itmp]; itmp = M_get_stack_ptr(mii); fmul_a0 = mul_stack_data[itmp]; itmp = M_get_stack_ptr(2 * sz); fmul_a9 = mul_stack_data[itmp]; itmp = M_get_stack_ptr(mii); fmul_b1 = mul_stack_data[itmp]; itmp = M_get_stack_ptr(mii); fmul_b0 = mul_stack_data[itmp]; itmp = M_get_stack_ptr(2 * sz); fmul_b9 = mul_stack_data[itmp]; itmp = M_get_stack_ptr(2 * sz); fmul_t0 = mul_stack_data[itmp]; M_fmul_split(fmul_a1, fmul_a0, aa, mii); M_fmul_split(fmul_b1, fmul_b0, bb, mii); stmp = M_fmul_subtract(fmul_a9, fmul_a1, fmul_a0, mii); stmp *= M_fmul_subtract(fmul_b9, fmul_b0, fmul_b1, mii); M_push_mul_int(stmp); M_push_mul_int(mii); M_fmul_div_conq(fmul_t0, fmul_a0, fmul_b0, mii); mii = M_pop_mul_int(); stmp = M_pop_mul_int(); itmp = M_pop_mul_int(); M_push_mul_int(itmp); M_push_mul_int(stmp); M_push_mul_int(mii); /* to restore all stack variables ... fmul_a1 = mul_stack_data[itmp]; fmul_a0 = mul_stack_data[itmp+1]; fmul_a9 = mul_stack_data[itmp+2]; fmul_b1 = mul_stack_data[itmp+3]; fmul_b0 = mul_stack_data[itmp+4]; fmul_b9 = mul_stack_data[itmp+5]; fmul_t0 = mul_stack_data[itmp+6]; */ fmul_a1 = mul_stack_data[itmp]; fmul_b1 = mul_stack_data[itmp+3]; fmul_t0 = mul_stack_data[itmp+6]; memcpy((rr + sz), fmul_t0, sz); /* first 'add', result is now zero */ /* so we just copy in the bytes */ M_fmul_add(rr, fmul_t0, mii, sz); M_fmul_div_conq(fmul_t0, fmul_a1, fmul_b1, mii); mii = M_pop_mul_int(); stmp = M_pop_mul_int(); itmp = M_pop_mul_int(); M_push_mul_int(itmp); M_push_mul_int(stmp); M_push_mul_int(mii); fmul_a9 = mul_stack_data[itmp+2]; fmul_b9 = mul_stack_data[itmp+5]; fmul_t0 = mul_stack_data[itmp+6]; M_fmul_add(rr, fmul_t0, 0, sz); M_fmul_add(rr, fmul_t0, mii, sz); if (stmp != 0) M_fmul_div_conq(fmul_t0, fmul_a9, fmul_b9, mii); mii = M_pop_mul_int(); stmp = M_pop_mul_int(); itmp = M_pop_mul_int(); fmul_t0 = mul_stack_data[itmp+6]; /* * if the sign of (A1 - A0)(B0 - B1) is positive, ADD to * the result. if it is negative, SUBTRACT from the result. */ if (stmp < 0) { fmul_a9 = mul_stack_data[itmp+2]; fmul_b9 = mul_stack_data[itmp+5]; memset(fmul_b9, 0, (2 * sz)); memcpy((fmul_b9 + mii), fmul_t0, sz); M_fmul_subtract(fmul_a9, rr, fmul_b9, (2 * sz)); memcpy(rr, fmul_a9, (2 * sz)); } if (stmp > 0) M_fmul_add(rr, fmul_t0, mii, sz); M_mul_stack_ptr -= 7; } /****************************************************************************/ /* * special addition function for use with the fast multiply operation */ void M_fmul_add(UCHAR *r, UCHAR *a, int offset, int sz) { int i, j; UCHAR carry; carry = 0; j = offset + sz; i = sz; while (TRUE) { r[--j] += carry + a[--i]; if (r[j] >= 100) { r[j] -= 100; carry = 1; } else carry = 0; if (i == 0) break; } if (carry) { while (TRUE) { r[--j] += 1; if (r[j] < 100) break; r[j] -= 100; } } } /****************************************************************************/ /* * special subtraction function for use with the fast multiply operation */ int M_fmul_subtract(UCHAR *r, UCHAR *a, UCHAR *b, int sz) { int k, jtmp, sflag, nb, borrow; nb = sz; sflag = 0; /* sign flag: assume the numbers are equal */ /* * find if a > b (so we perform a-b) * or a < b (so we perform b-a) */ for (k=0; k < nb; k++) { if (a[k] < b[k]) { sflag = -1; break; } if (a[k] > b[k]) { sflag = 1; break; } } if (sflag == 0) { memset(r, 0, nb); /* zero out the result */ } else { k = nb; borrow = 0; while (TRUE) { k--; if (sflag == 1) jtmp = (int)a[k] - (int)b[k] - borrow; else jtmp = (int)b[k] - (int)a[k] - borrow; if (jtmp >= 0) { r[k] = (UCHAR)jtmp; borrow = 0; } else { r[k] = (UCHAR)(100 + jtmp); borrow = 1; } if (k == 0) break; } } return(sflag); } /****************************************************************************/ int M_next_power_of_2(int n) { int ct, k; if (n <= 2) return(n); k = 2; ct = 0; while (TRUE) { if (k >= n) break; k = k << 1; if (++ct == bit_limit) { /* fatal, this does not return */ M_apm_log_error_msg(M_APM_EXIT, "\'M_next_power_of_2\', ERROR :sizeof(int) too small ??"); } } return(k); } /****************************************************************************/ int M_get_stack_ptr(int sz) { int i, k; UCHAR *cp; k = ++M_mul_stack_ptr; /* if size is 0, just need to malloc and return */ if (mul_stack_data_size[k] == 0) { if ((i = sz) < 16) i = 16; if ((cp = (UCHAR *)MAPM_MALLOC(i + 4)) == NULL) { /* fatal, this does not return */ M_apm_log_error_msg(M_APM_EXIT, "\'M_get_stack_ptr\', Out of memory"); } mul_stack_data[k] = cp; mul_stack_data_size[k] = i; } else /* it has been malloc'ed, see if it's big enough */ { if (sz > mul_stack_data_size[k]) { cp = mul_stack_data[k]; if ((cp = (UCHAR *)MAPM_REALLOC(cp, (sz + 4))) == NULL) { /* fatal, this does not return */ M_apm_log_error_msg(M_APM_EXIT, "\'M_get_stack_ptr\', Out of memory"); } mul_stack_data[k] = cp; mul_stack_data_size[k] = sz; } } return(k); } /****************************************************************************/ #ifdef NO_FFT_MULTIPLY /* * multiply a 4 byte number by a 4 byte number * yielding an 8 byte result. each byte contains * a base 100 'digit', i.e.: range from 0-99. * * MSB LSB * * a,b [0] [1] [2] [3] * result [0] ..... [7] */ void M_4_byte_multiply(UCHAR *r, UCHAR *a, UCHAR *b) { int b0, jj; UCHAR *cp1, *cp2, numdiv, numrem; memset(r, 0, 8); /* zero out 8 byte result */ jj = 3; /* loop for one number [b], un-roll the inner 'loop' [a] */ while (1) { b0 = (int)b[jj]; cp1 = r + (3 + jj); cp2 = cp1 + 1; M_get_div_rem((b0 * a[3]), &numdiv, &numrem); *cp2 += numrem; *cp1 += numdiv; if (*cp2 >= 100) { *cp2 -= 100; *cp1 += 1; } cp1--; cp2--; if (*cp2 >= 100) { *cp2 -= 100; *cp1 += 1; } M_get_div_rem((b0 * a[2]), &numdiv, &numrem); *cp2 += numrem; *cp1 += numdiv; if (*cp2 >= 100) { *cp2 -= 100; *cp1 += 1; } cp1--; cp2--; if (*cp2 >= 100) { *cp2 -= 100; *cp1 += 1; } M_get_div_rem((b0 * a[1]), &numdiv, &numrem); *cp2 += numrem; *cp1 += numdiv; if (*cp2 >= 100) { *cp2 -= 100; *cp1 += 1; } cp1--; cp2--; if (*cp2 >= 100) { *cp2 -= 100; *cp1 += 1; } M_get_div_rem((b0 * a[0]), &numdiv, &numrem); *cp2 += numrem; *cp1 += numdiv; if (*cp2 >= 100) { *cp2 -= 100; *cp1 += 1; } if (jj-- == 0) break; } } #endif /****************************************************************************/ XQilla-2.3.0/src/mapm/m_apm.cpp0000644000151400015140000002113211636377670013160 00000000000000 #include "../config/xqilla_config.h" #include void MAPM::create(void) { myVal=makeNew(); } void MAPM::destroy(void) { unref(myVal); myVal=0; } void MAPM::copyFrom(M_APM Nval) { M_APM oldVal=myVal; myVal=Nval; ref(myVal); unref(oldVal); } M_APM MAPM::makeNew(void) { M_APM val=m_apm_init_mt(); /* refcount initialized to 1 by 'm_apm_init' */ return val; } void MAPM::ref(M_APM val) { val->m_apm_refcount++; } void MAPM::unref(M_APM val) { val->m_apm_refcount--; if (val->m_apm_refcount==0) m_apm_free_mt(val); } M_APM MAPM::val(void) { if (myVal->m_apm_refcount==1) /* Return my private myVal */ return myVal; /* Otherwise, our copy of myVal is shared-- we need to make a new private copy. */ M_APM oldVal=myVal; myVal=makeNew(); m_apm_copy(myVal,oldVal); unref(oldVal); return myVal; } M_APM MAPM::cval(void) const { return (M_APM)myVal; } int MAPM::myDigits(void) const { int maxd=m_apm_significant_digits_mt(cval()); if (maxd(const MAPM &m) const { return m_apm_compare(cval(),m.cval())>0; } bool MAPM::operator>=(const MAPM &m) const { return m_apm_compare(cval(),m.cval())>=0; } int MAPM::compare(const MAPM &m) const { return m_apm_compare(cval(),m.cval()); } MAPM operator+(const MAPM &a,const MAPM &b) { MAPM ret; m_apm_add_mt(ret.val(),a.cval(),b.cval()); return ret; } MAPM operator-(const MAPM &a,const MAPM &b) { MAPM ret; m_apm_subtract_mt(ret.val(),a.cval(),b.cval()); return ret; } MAPM operator*(const MAPM &a,const MAPM &b) { MAPM ret; m_apm_multiply_mt(ret.val(),a.cval(),b.cval()); return ret; } MAPM operator/(const MAPM &a,const MAPM &b) { return a.divide(b,a.digits(b)); } MAPM MAPM::divide(const MAPM &m,int toDigits) const { MAPM ret; m_apm_divide_mt(ret.val(),toDigits,cval(),m.cval()); return ret; } MAPM MAPM::divide(const MAPM &m) const { return divide(m,digits(m)); } MAPM & MAPM::operator+=(const MAPM &m) { *this = *this+m; return *this; } MAPM & MAPM::operator-=(const MAPM &m) { *this = *this-m; return *this; } MAPM & MAPM::operator*=(const MAPM &m) { *this = *this*m; return *this; } MAPM & MAPM::operator/=(const MAPM &m) { *this = *this/m; return *this; } int MAPM::sign(void) const { return m_apm_sign(cval()); } int MAPM::exponent(void) const { return m_apm_exponent(cval()); } int MAPM::significant_digits(void) const { return m_apm_significant_digits_mt(cval()); } int MAPM::is_integer(void) const { return m_apm_is_integer(cval()); } int MAPM::is_even(void) const { return m_apm_is_even(cval()); } int MAPM::is_odd(void) const { return m_apm_is_odd(cval()); } MAPM MAPM::abs(void) const { MAPM ret; m_apm_absolute_value(ret.val(),cval()); return ret; } MAPM MAPM::neg(void) const { MAPM ret; m_apm_negate(ret.val(),cval()); return ret; } MAPM MAPM::round(int toDigits) const { MAPM ret; m_apm_round_mt(ret.val(),toDigits,cval()); return ret; } #define MAPM_1aryFuncImpl(func) \ MAPM MAPM::func(int toDigits) const\ {MAPM ret;m_apm_##func##_mt(ret.val(),toDigits,cval());return ret;}\ MAPM MAPM::func(void) const {return func(myDigits());} MAPM_1aryFuncImpl(sqrt) MAPM_1aryFuncImpl(cbrt) MAPM_1aryFuncImpl(log) MAPM_1aryFuncImpl(exp) MAPM_1aryFuncImpl(log10) MAPM_1aryFuncImpl(sin) MAPM_1aryFuncImpl(asin) MAPM_1aryFuncImpl(cos) MAPM_1aryFuncImpl(acos) MAPM_1aryFuncImpl(tan) MAPM_1aryFuncImpl(atan) MAPM_1aryFuncImpl(sinh) MAPM_1aryFuncImpl(asinh) MAPM_1aryFuncImpl(cosh) MAPM_1aryFuncImpl(acosh) MAPM_1aryFuncImpl(tanh) MAPM_1aryFuncImpl(atanh) #undef MAPM_1aryFuncImpl void MAPM::sincos(MAPM &sinR,MAPM &cosR,int toDigits) { m_apm_sin_cos_mt(sinR.val(),cosR.val(),toDigits,cval()); } void MAPM::sincos(MAPM &sinR,MAPM &cosR) { sincos(sinR,cosR,myDigits()); } MAPM MAPM::pow(const MAPM &m,int toDigits) const { MAPM ret; m_apm_pow_mt(ret.val(),toDigits,cval(), m.cval()); return ret; } MAPM MAPM::pow(const MAPM &m) const { return pow(m,digits(m)); } MAPM MAPM::atan2(const MAPM &x,int toDigits) const { MAPM ret; m_apm_arctan2_mt(ret.val(),toDigits,cval(),x.cval()); return ret; } MAPM MAPM::atan2(const MAPM &x) const { return atan2(x,digits(x)); } MAPM MAPM::gcd(const MAPM &m) const { MAPM ret; m_apm_gcd_mt(ret.val(),cval(),m.cval()); return ret; } MAPM MAPM::lcm(const MAPM &m) const { MAPM ret; m_apm_lcm_mt(ret.val(),cval(),m.cval()); return ret; } MAPM MAPM::random(void) { MAPM ret; m_apm_get_random_mt(ret.val()); return ret; } MAPM MAPM::floor(void) const { MAPM ret; m_apm_floor_mt(ret.val(),cval()); return ret; } MAPM MAPM::ceil(void) const { MAPM ret; m_apm_ceil_mt(ret.val(),cval()); return ret; } MAPM MAPM::factorial(void) const { MAPM ret; m_apm_factorial_mt(ret.val(),cval()); return ret; } MAPM MAPM::ipow_nr(int p) const { MAPM ret; m_apm_integer_pow_nr_mt(ret.val(),cval(),p); return ret; } MAPM MAPM::ipow(int p,int toDigits) const { MAPM ret; m_apm_integer_pow_mt(ret.val(),toDigits,cval(),p); return ret; } MAPM MAPM::ipow(int p) const { return ipow(p,myDigits()); } MAPM MAPM::integer_divide(const MAPM &denom) const { MAPM ret; m_apm_integer_divide_mt(ret.val(),cval(),denom.cval()); return ret; } void MAPM::integer_div_rem(const MAPM &denom,MAPM ",MAPM &rem) const { m_apm_integer_div_rem_mt(quot.val(),rem.val(),cval(),denom.cval()); } MAPM MAPM::div(const MAPM &denom) const { return integer_divide(denom); } MAPM MAPM::rem(const MAPM &denom) const { MAPM ret,ignored; integer_div_rem(denom,ignored,ret);return ret; } XQilla-2.3.0/src/mapm/mapm_log.c0000644000151400015140000001155311571227107013313 00000000000000 /* * M_APM - mapm_log.c * * Copyright (C) 1999 - 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" #include /****************************************************************************/ /* Calls the LOG function. The formula used is : log10(x) = A * log(x) where A = log (e) [0.43429448190325...] 10 */ void m_apm_log10(M_APM rr, int places, M_APM aa) { int dplaces; M_APM tmp8, tmp9; tmp8 = M_get_stack_var(); tmp9 = M_get_stack_var(); dplaces = places + 4; M_check_log_places(dplaces + 45); m_apm_log(tmp9, dplaces, aa); m_apm_multiply(tmp8, tmp9, MM_lc_log10R); m_apm_round(rr, places, tmp8); M_restore_stack(2); /* restore the 2 locals we used here */ } /****************************************************************************/ void m_apm_log(M_APM r, int places, M_APM a) { M_APM tmp0, tmp1, tmp2; int mexp, dplaces; if (a->m_apm_sign <= 0) { M_apm_log_error_msg(M_APM_RETURN, "Warning! ... \'m_apm_log\', Negative argument"); M_set_to_zero(r); return; } tmp0 = M_get_stack_var(); tmp1 = M_get_stack_var(); tmp2 = M_get_stack_var(); dplaces = places + 8; /* * if the input is real close to 1, use the series expansion * to compute the log. * * 0.9999 < a < 1.0001 */ m_apm_subtract(tmp0, a, MM_One); if (tmp0->m_apm_sign == 0) /* is input exactly 1 ?? */ { /* if so, result is 0 */ M_set_to_zero(r); M_restore_stack(3); return; } if (tmp0->m_apm_exponent <= -4) { M_log_near_1(r, places, tmp0); M_restore_stack(3); return; } /* make sure our log(10) is accurate enough for this calculation */ /* (and log(2) which is called from M_log_basic_iteration) */ M_check_log_places(dplaces + 25); mexp = a->m_apm_exponent; if (mexp >= -4 && mexp <= 4) { M_log_basic_iteration(r, places, a); } else { /* * use log (x * y) = log(x) + log(y) * * here we use y = exponent of our base 10 number. * * let 'C' = log(10) = 2.3025850929940.... * * then log(x * y) = log(x) + ( C * base_10_exponent ) */ m_apm_copy(tmp2, a); mexp = tmp2->m_apm_exponent - 2; tmp2->m_apm_exponent = 2; /* force number between 10 & 100 */ M_log_basic_iteration(tmp0, dplaces, tmp2); m_apm_set_long(tmp1, (long)mexp); m_apm_multiply(tmp2, tmp1, MM_lc_log10); m_apm_add(tmp1, tmp2, tmp0); m_apm_round(r, places, tmp1); } M_restore_stack(3); /* restore the 3 locals we used here */ } /****************************************************************************/ /* calculate log (1 + x) with the following series: x y = ----- ( |y| < 1 ) x + 2 [ 1 + y ] y^3 y^5 y^7 log [-------] = 2 * [ y + --- + --- + --- ... ] [ 1 - y ] 3 5 7 */ void M_log_near_1(M_APM rr, int places, M_APM xx) { M_APM tmp0, tmp1, tmp2, tmpS, term; int tolerance, local_precision; long m1; tmp0 = M_get_stack_var(); tmp1 = M_get_stack_var(); tmp2 = M_get_stack_var(); tmpS = M_get_stack_var(); term = M_get_stack_var(); tolerance = xx->m_apm_exponent - places - 4; local_precision = places + 8 - xx->m_apm_exponent; m_apm_add(tmp0, xx, MM_Two); m_apm_divide(tmpS, (local_precision + 6), xx, tmp0); m_apm_copy(term, tmpS); m_apm_multiply(tmp0, tmpS, tmpS); m_apm_round(tmp2, (local_precision + 6), tmp0); m1 = 3; while (TRUE) { m_apm_set_long(tmp1, m1); m_apm_multiply(tmp0, term, tmp2); m_apm_round(term, local_precision, tmp0); m_apm_divide(tmp0, local_precision, term, tmp1); m_apm_add(tmp1, tmpS, tmp0); if ((tmp0->m_apm_exponent < tolerance) || (tmp0->m_apm_sign == 0)) break; m_apm_copy(tmpS, tmp1); m1 += 2; } m_apm_multiply(tmp0, MM_Two, tmp1); m_apm_round(rr, places, tmp0); M_restore_stack(5); /* restore the 5 locals we used here */ } /****************************************************************************/ XQilla-2.3.0/src/mapm/mapm_add.c0000644000151400015140000001335711571227107013266 00000000000000 /* * M_APM - mapm_add.c * * Copyright (C) 1999 - 2002 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" /****************************************************************************/ void m_apm_add(M_APM r, M_APM a, M_APM b) { M_APM M_work1, M_work2; int j, carry, sign, aexp, bexp, adigits, bdigits; if (a->m_apm_sign == 0) { m_apm_copy(r,b); return; } if (b->m_apm_sign == 0) { m_apm_copy(r,a); return; } if (a->m_apm_sign == 1 && b->m_apm_sign == -1) { b->m_apm_sign = 1; m_apm_subtract(r,a,b); b->m_apm_sign = -1; return; } if (a->m_apm_sign == -1 && b->m_apm_sign == 1) { a->m_apm_sign = 1; m_apm_subtract(r,b,a); a->m_apm_sign = -1; return; } M_work1 = m_apm_init(); M_work2 = m_apm_init(); sign = a->m_apm_sign; /* signs are the same, result will be same */ aexp = a->m_apm_exponent; bexp = b->m_apm_exponent; m_apm_copy(M_work1, a); m_apm_copy(M_work2, b); /* * scale by at least 1 factor of 10 in case the MSB carrys */ if (aexp == bexp) { M_apm_scale(M_work1, 2); /* shift 2 digits == 1 byte for efficiency */ M_apm_scale(M_work2, 2); } else { if (aexp > bexp) { M_apm_scale(M_work1, 2); M_apm_scale(M_work2, (aexp + 2 - bexp)); } else /* aexp < bexp */ { M_apm_scale(M_work2, 2); M_apm_scale(M_work1, (bexp + 2 - aexp)); } } adigits = M_work1->m_apm_datalength; bdigits = M_work2->m_apm_datalength; if (adigits >= bdigits) { m_apm_copy(r, M_work1); j = (bdigits + 1) >> 1; carry = 0; while (TRUE) { j--; r->m_apm_data[j] += carry + M_work2->m_apm_data[j]; if (r->m_apm_data[j] >= 100) { r->m_apm_data[j] -= 100; carry = 1; } else carry = 0; if (j == 0) break; } } else { m_apm_copy(r, M_work2); j = (adigits + 1) >> 1; carry = 0; while (TRUE) { j--; r->m_apm_data[j] += carry + M_work1->m_apm_data[j]; if (r->m_apm_data[j] >= 100) { r->m_apm_data[j] -= 100; carry = 1; } else carry = 0; if (j == 0) break; } } r->m_apm_sign = sign; M_apm_normalize(r); m_apm_free(M_work1); m_apm_free(M_work2); } /****************************************************************************/ void m_apm_subtract(M_APM r, M_APM a, M_APM b) { M_APM M_work1, M_work2; int itmp, j, flag, icompare, sign, aexp, bexp, borrow, adigits, bdigits; if (b->m_apm_sign == 0) { m_apm_copy(r,a); return; } if (a->m_apm_sign == 0) { m_apm_copy(r,b); r->m_apm_sign = -(r->m_apm_sign); return; } if (a->m_apm_sign == 1 && b->m_apm_sign == -1) { b->m_apm_sign = 1; m_apm_add(r,a,b); b->m_apm_sign = -1; return; } if (a->m_apm_sign == -1 && b->m_apm_sign == 1) { b->m_apm_sign = -1; m_apm_add(r,a,b); b->m_apm_sign = 1; return; } M_work1 = m_apm_init(); M_work2 = m_apm_init(); /* now, the signs are the same */ /* make a positive working copy */ m_apm_absolute_value(M_work1, a); m_apm_absolute_value(M_work2, b); /* are they the same?? if so, the result is zero */ if ((icompare = m_apm_compare(M_work1, M_work2)) == 0) { M_set_to_zero(r); m_apm_free(M_work1); m_apm_free(M_work2); return; } if (icompare == 1) /* |a| > |b| (do A-B) */ { flag = TRUE; sign = a->m_apm_sign; } else /* |b| > |a| (do B-A) */ { flag = FALSE; sign = -(a->m_apm_sign); } aexp = M_work1->m_apm_exponent; bexp = M_work2->m_apm_exponent; if (aexp > bexp) M_apm_scale(M_work2, (aexp - bexp)); if (aexp < bexp) M_apm_scale(M_work1, (bexp - aexp)); adigits = M_work1->m_apm_datalength; bdigits = M_work2->m_apm_datalength; if (adigits > bdigits) M_apm_pad(M_work2, adigits); if (adigits < bdigits) M_apm_pad(M_work1, bdigits); if (flag) /* perform A-B, M_work1 - M_work2 */ { m_apm_copy(r, M_work1); j = (r->m_apm_datalength + 1) >> 1; borrow = 0; while (TRUE) { j--; itmp = (int)r->m_apm_data[j] - (int)M_work2->m_apm_data[j] - borrow; if (itmp >= 0) { r->m_apm_data[j] = (UCHAR)itmp; borrow = 0; } else { r->m_apm_data[j] = (UCHAR)(100 + itmp); borrow = 1; } if (j == 0) break; } } else /* perform B-A, M_work2 - M_work1 */ { m_apm_copy(r, M_work2); j = (r->m_apm_datalength + 1) >> 1; borrow = 0; while (TRUE) { j--; itmp = (int)r->m_apm_data[j] - (int)M_work1->m_apm_data[j] - borrow; if (itmp >= 0) { r->m_apm_data[j] = (UCHAR)itmp; borrow = 0; } else { r->m_apm_data[j] = (UCHAR)(100 + itmp); borrow = 1; } if (j == 0) break; } } r->m_apm_sign = sign; M_apm_normalize(r); m_apm_free(M_work1); m_apm_free(M_work2); } /****************************************************************************/ XQilla-2.3.0/src/mapm/mapm_mul.c0000644000151400015140000000650311571227107013326 00000000000000 /* * M_APM - mapm_mul.c * * Copyright (C) 1999 - 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" extern void M_fast_multiply(M_APM, M_APM, M_APM); /****************************************************************************/ void m_apm_multiply(M_APM r, M_APM a, M_APM b) { int ai, itmp, sign, nexp, ii, jj, index1, index2, indexr, index0, numdigits; UCHAR *cp, *cp_div, *cp_rem; void *vp; sign = a->m_apm_sign * b->m_apm_sign; nexp = a->m_apm_exponent + b->m_apm_exponent; if (sign == 0) /* one number is zero, result is zero */ { M_set_to_zero(r); return; } numdigits = a->m_apm_datalength + b->m_apm_datalength; index1 = (a->m_apm_datalength + 1) >> 1; index2 = (b->m_apm_datalength + 1) >> 1; /* * If we are multiplying 2 'big' numbers, use the fast algorithm. * * This is a **very** approx break even point between this algorithm * and the FFT multiply. Note that different CPU's, operating systems, * and compiler's may yield a different break even point. This point * (~96 decimal digits) is how the experiment came out on the * author's system. */ if (index1 >= 48 && index2 >= 48) { M_fast_multiply(r, a, b); return; } ii = (numdigits + 1) >> 1; /* required size of result, in bytes */ if (ii > r->m_apm_malloclength) { if ((vp = MAPM_REALLOC(r->m_apm_data, (ii + 32))) == NULL) { /* fatal, this does not return */ M_apm_log_error_msg(M_APM_EXIT, "\'m_apm_multiply\', Out of memory"); } r->m_apm_malloclength = ii + 28; r->m_apm_data = (UCHAR *)vp; } M_get_div_rem_addr(&cp_div, &cp_rem); index0 = index1 + index2; cp = r->m_apm_data; memset(cp, 0, index0); ii = index1; while (TRUE) { indexr = --index0; jj = index2; ai = (int)a->m_apm_data[--ii]; while (TRUE) { itmp = ai * b->m_apm_data[--jj]; /* * M_get_div_rem(itmp, &numdiv, &numrem); * cp[indexr] += numrem; * cp[indexr-1] += numdiv; */ cp[indexr] += cp_rem[itmp]; cp[indexr-1] += cp_div[itmp]; if (cp[indexr] >= 100) { cp[indexr] -= 100; cp[indexr-1] += 1; } indexr--; if (cp[indexr] >= 100) { cp[indexr] -= 100; cp[indexr-1] += 1; } if (jj == 0) break; } if (ii == 0) break; } r->m_apm_sign = sign; r->m_apm_exponent = nexp; r->m_apm_datalength = numdigits; M_apm_normalize(r); } /****************************************************************************/ XQilla-2.3.0/src/mapm/mapm_pow.c0000644000151400015140000000654711571227107013346 00000000000000 /* * M_APM - mapm_pow.c * * Copyright (C) 2000 - 2002 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" static M_APM M_last_xx_input; static M_APM M_last_xx_log; static int M_last_log_digits; static int M_size_flag = 0; /****************************************************************************/ void M_free_all_pow() { if (M_size_flag != 0) { m_apm_free(M_last_xx_input); m_apm_free(M_last_xx_log); M_size_flag = 0; } } /****************************************************************************/ /* Calculate the POW function by calling EXP : Y A X = e where A = Y * log(X) */ void m_apm_pow(M_APM rr, int places, M_APM xx, M_APM yy) { int iflag, pflag; char sbuf[64]; M_APM tmp8, tmp9; /* if yy == 0, return 1 */ if (yy->m_apm_sign == 0) { m_apm_copy(rr, MM_One); return; } /* if xx == 0, return 0 */ if (xx->m_apm_sign == 0) { M_set_to_zero(rr); return; } if (M_size_flag == 0) /* init locals on first call */ { M_size_flag = M_get_sizeof_int(); M_last_log_digits = 0; M_last_xx_input = m_apm_init(); M_last_xx_log = m_apm_init(); } /* * if 'yy' is a small enough integer, call the more * efficient _integer_pow function. */ if (m_apm_is_integer(yy)) { iflag = FALSE; if (M_size_flag == 2) /* 16 bit compilers */ { if (yy->m_apm_exponent <= 4) iflag = TRUE; } else /* >= 32 bit compilers */ { if (yy->m_apm_exponent <= 7) iflag = TRUE; } if (iflag) { m_apm_to_integer_string(sbuf, yy); m_apm_integer_pow(rr, places, xx, atoi(sbuf)); return; } } tmp8 = M_get_stack_var(); tmp9 = M_get_stack_var(); /* * If parameter 'X' is the same this call as it * was the previous call, re-use the saved log * calculation from last time. */ pflag = FALSE; if (M_last_log_digits >= places) { if (m_apm_compare(xx, M_last_xx_input) == 0) pflag = TRUE; } if (pflag) { m_apm_round(tmp9, (places + 8), M_last_xx_log); } else { m_apm_log(tmp9, (places + 8), xx); M_last_log_digits = places + 2; /* save the 'X' input value and the log calculation */ m_apm_copy(M_last_xx_input, xx); m_apm_copy(M_last_xx_log, tmp9); } m_apm_multiply(tmp8, tmp9, yy); m_apm_exp(rr, places, tmp8); M_restore_stack(2); /* restore the 2 locals we used here */ } /****************************************************************************/ XQilla-2.3.0/src/mapm/mapm_exp.c0000644000151400015140000001404411571227107013324 00000000000000 /* * M_APM - mapm_exp.c * * Copyright (C) 1999 - 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" static M_APM MM_exp_log2R; static M_APM MM_exp_1024R; static int MM_firsttime1 = TRUE; /****************************************************************************/ void M_free_all_exp() { if (MM_firsttime1 == FALSE) { m_apm_free(MM_exp_log2R); m_apm_free(MM_exp_1024R); MM_firsttime1 = TRUE; } } /****************************************************************************/ void m_apm_exp(M_APM r, int places, M_APM x) { M_APM tmp7, tmp8, tmp9; char outstr[64]; int dplaces, nn, ii; if (MM_firsttime1) { MM_firsttime1 = FALSE; MM_exp_log2R = m_apm_init(); MM_exp_1024R = m_apm_init(); m_apm_set_string(MM_exp_log2R, "1.44269504089"); /* ~ 1 / log(2) */ m_apm_set_string(MM_exp_1024R, "9.765625E-4"); /* 1 / 1024 */ } tmp7 = M_get_stack_var(); tmp8 = M_get_stack_var(); tmp9 = M_get_stack_var(); /* From David H. Bailey's MPFUN Fortran package : exp (t) = (1 + r + r^2 / 2! + r^3 / 3! + r^4 / 4! ...) ^ q * 2 ^ n where q = 256, r = t' / q, t' = t - n Log(2) and where n is chosen so that -0.5 Log(2) < t' <= 0.5 Log(2). Reducing t mod Log(2) and dividing by 256 insures that -0.001 < r <= 0.001, which accelerates convergence in the above series. we won't let n == 1 or -1. if n computes out to be 1, we will set n = 0. this is so we can still calculate log(2). if we let n = 1, then we need log(2) in order to compute log(2), which is no good ... if the new 'n' == 0, we will then use q = 1024 instead of 256 so the series still converges as fast. since the value of log(2) is critical to this function, log, and log10, we will keep our own local copy of it. if we need more precision in our log(2), we will re-compute it on the fly to get the desired precision. */ /* find 'n' and convert it to a normal C int */ /* we just need an approx 1/log(2) for this calculation */ m_apm_multiply(tmp8, x, MM_exp_log2R); /* round to the nearest int */ if (x->m_apm_sign >= 0) m_apm_add(tmp9, tmp8, MM_0_5); else m_apm_subtract(tmp9, tmp8, MM_0_5); m_apm_to_integer_string(outstr, tmp9); nn = atoi(outstr); if (abs(nn) == 1) nn = 0; if (nn == 0) { ii = 10; dplaces = places + 8; m_apm_multiply(tmp9, x, MM_exp_1024R); } else { ii = 8; dplaces = places + 6; /* check to make sure our log(2) is accurate enough */ M_check_log_places(dplaces); m_apm_set_long(tmp7, (long)nn); m_apm_multiply(tmp8, tmp7, MM_lc_log2); m_apm_subtract(tmp7, x, tmp8); /* * guarantee that |tmp7| < 1. * the normal case will break out immediately. * this is just here to plan for the future. * when sizeof(int) gets real big, it may * be possible for the 'nn' calculation from * above to not be optimized due to the inexact * constant used for 'MM_exp_log2R'. */ while (TRUE) { if (tmp7->m_apm_exponent <= 0) break; if (tmp7->m_apm_sign == 0) break; if (tmp7->m_apm_sign == 1) { nn++; m_apm_subtract(tmp8, tmp7, MM_lc_log2); m_apm_copy(tmp7, tmp8); } else { nn--; m_apm_add(tmp8, tmp7, MM_lc_log2); m_apm_copy(tmp7, tmp8); } } m_apm_multiply(tmp9, tmp7, MM_5x_256R); } /* perform the series expansion ... */ M_raw_exp(tmp8, dplaces, tmp9); /* * raise result to the 256 OR 1024 power (q = 256 OR 1024) * * note : x ^ 256 == (((x ^ 2) ^ 2) ^ 2) ... 8 times * : x ^ 1024 == (((x ^ 2) ^ 2) ^ 2) ... 10 times */ while (--ii >= 0) { m_apm_multiply(tmp9, tmp8, tmp8); m_apm_round(tmp8, dplaces, tmp9); } /* now compute 2 ^ N */ m_apm_integer_pow(tmp7, dplaces, MM_Two, nn); m_apm_multiply(tmp9, tmp7, tmp8); m_apm_round(r, places, tmp9); M_restore_stack(3); /* restore the 3 locals we used here */ } /****************************************************************************/ /* calculate the exponential function using the following series : x^2 x^3 x^4 x^5 exp(x) == 1 + x + --- + --- + --- + --- ... 2! 3! 4! 5! */ void M_raw_exp(M_APM rr, int places, M_APM xx) { M_APM tmp0, digit, term; int tolerance, local_precision, prev_exp; long m1; tmp0 = M_get_stack_var(); term = M_get_stack_var(); digit = M_get_stack_var(); local_precision = places + 8; tolerance = -(places + 4); prev_exp = 0; m_apm_add(rr, MM_One, xx); m_apm_copy(term, xx); m1 = 2L; while (TRUE) { m_apm_set_long(digit, m1); m_apm_multiply(tmp0, term, xx); m_apm_divide(term, local_precision, tmp0, digit); m_apm_add(tmp0, rr, term); m_apm_copy(rr, tmp0); if ((term->m_apm_exponent < tolerance) || (term->m_apm_sign == 0)) break; if (m1 != 2L) { local_precision = local_precision + term->m_apm_exponent - prev_exp; if (local_precision < 20) local_precision = 20; } prev_exp = term->m_apm_exponent; m1++; } M_restore_stack(3); /* restore the 3 locals we used here */ } /****************************************************************************/ XQilla-2.3.0/src/mapm/mapm_flr.c0000644000151400015140000000532211571227107013312 00000000000000 /* * M_APM - mapm_flr.c * * Copyright (C) 2001 - 2002 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" /* * input floor ceil * ----- ------ ------ * 329.0 329.0 329.0 * -837.0 -837.0 -837.0 * 372.64 372.0 373.0 * -237.52 -238.0 -237.0 */ /****************************************************************************/ /* * return the nearest integer <= input */ void m_apm_floor(M_APM bb, M_APM aa) { M_APM mtmp; m_apm_copy(bb, aa); if (m_apm_is_integer(bb)) /* if integer, we're done */ return; if (bb->m_apm_exponent <= 0) /* if |bb| < 1, result is -1 or 0 */ { if (bb->m_apm_sign < 0) m_apm_negate(bb, MM_One); else M_set_to_zero(bb); return; } if (bb->m_apm_sign < 0) { mtmp = M_get_stack_var(); m_apm_negate(mtmp, bb); mtmp->m_apm_datalength = mtmp->m_apm_exponent; M_apm_normalize(mtmp); m_apm_add(bb, mtmp, MM_One); bb->m_apm_sign = -1; M_restore_stack(1); } else { bb->m_apm_datalength = bb->m_apm_exponent; M_apm_normalize(bb); } } /****************************************************************************/ /* * return the nearest integer >= input */ void m_apm_ceil(M_APM bb, M_APM aa) { M_APM mtmp; m_apm_copy(bb, aa); if (m_apm_is_integer(bb)) /* if integer, we're done */ return; if (bb->m_apm_exponent <= 0) /* if |bb| < 1, result is 0 or 1 */ { if (bb->m_apm_sign < 0) M_set_to_zero(bb); else m_apm_copy(bb, MM_One); return; } if (bb->m_apm_sign < 0) { bb->m_apm_datalength = bb->m_apm_exponent; M_apm_normalize(bb); } else { mtmp = M_get_stack_var(); m_apm_copy(mtmp, bb); mtmp->m_apm_datalength = mtmp->m_apm_exponent; M_apm_normalize(mtmp); m_apm_add(bb, mtmp, MM_One); M_restore_stack(1); } } /****************************************************************************/ XQilla-2.3.0/src/mapm/mapmutl2.c0000644000151400015140000001603511636377670013276 00000000000000 /* * M_APM - mapmutl2.c * * Copyright (C) 2002 - 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" /****************************************************************************/ int m_apm_sign(M_APM atmp) { return(atmp->m_apm_sign); } /****************************************************************************/ int m_apm_exponent(M_APM atmp) { if (atmp->m_apm_sign == 0) return(0); else return(atmp->m_apm_exponent - 1); } /****************************************************************************/ int m_apm_significant_digits(M_APM atmp) { return(atmp->m_apm_datalength); } /****************************************************************************/ int m_apm_is_integer(M_APM atmp) { if (atmp->m_apm_sign == 0) return(1); if (atmp->m_apm_exponent >= atmp->m_apm_datalength) return(1); else return(0); } /****************************************************************************/ int m_apm_is_even(M_APM aa) { int ii, jj; if (aa->m_apm_sign == 0) return(1); ii = aa->m_apm_datalength; jj = aa->m_apm_exponent; if (jj < ii) { M_apm_log_error_msg(M_APM_RETURN, "Warning! \'m_apm_is_even\', Non-integer input"); return(0); } if (jj > ii) return(1); ii = ((ii + 1) >> 1) - 1; ii = (int)aa->m_apm_data[ii]; if ((jj & 1) != 0) /* exponent is odd */ ii = ii / 10; if ((ii & 1) == 0) return(1); else return(0); } /****************************************************************************/ int m_apm_is_odd(M_APM bb) { if (m_apm_is_even(bb)) return(0); else return(1); } /****************************************************************************/ void M_set_to_zero(M_APM z) { z->m_apm_datalength = 1; z->m_apm_sign = 0; z->m_apm_exponent = 0; z->m_apm_data[0] = 0; } /****************************************************************************/ void m_apm_negate(M_APM d, M_APM s) { m_apm_copy(d,s); if (d->m_apm_sign != 0) d->m_apm_sign = -(d->m_apm_sign); } /****************************************************************************/ void m_apm_absolute_value(M_APM d, M_APM s) { m_apm_copy(d,s); if (d->m_apm_sign != 0) d->m_apm_sign = 1; } /****************************************************************************/ void m_apm_copy(M_APM dest, M_APM src) { int j; void *vp; j = (src->m_apm_datalength + 1) >> 1; if (j > dest->m_apm_malloclength) { if ((vp = MAPM_REALLOC(dest->m_apm_data, (j + 32))) == NULL) { /* fatal, this does not return */ M_apm_log_error_msg(M_APM_EXIT, "\'m_apm_copy\', Out of memory"); } dest->m_apm_malloclength = j + 28; dest->m_apm_data = (UCHAR *)vp; } dest->m_apm_datalength = src->m_apm_datalength; dest->m_apm_exponent = src->m_apm_exponent; dest->m_apm_sign = src->m_apm_sign; memcpy(dest->m_apm_data, src->m_apm_data, j); } /****************************************************************************/ int m_apm_compare(M_APM ltmp, M_APM rtmp) { int llen, rlen, lsign, rsign, i, j, lexp, rexp; llen = ltmp->m_apm_datalength; rlen = rtmp->m_apm_datalength; lsign = ltmp->m_apm_sign; rsign = rtmp->m_apm_sign; lexp = ltmp->m_apm_exponent; rexp = rtmp->m_apm_exponent; if (rsign == 0) return(lsign); if (lsign == 0) return(-rsign); if (lsign == -rsign) return(lsign); /* signs are the same, check the exponents */ if (lexp > rexp) goto E1; if (lexp < rexp) goto E2; /* signs and exponents are the same, check the data */ if (llen < rlen) j = (llen + 1) >> 1; else j = (rlen + 1) >> 1; for (i=0; i < j; i++) { if (ltmp->m_apm_data[i] > rtmp->m_apm_data[i]) goto E1; if (ltmp->m_apm_data[i] < rtmp->m_apm_data[i]) goto E2; } if (llen == rlen) return(0); else { if (llen > rlen) goto E1; else goto E2; } E1: if (lsign == 1) return(1); else return(-1); E2: if (lsign == 1) return(-1); else return(1); } /****************************************************************************/ void M_apm_log_error_msg(int ecode, char *message) { fprintf(stderr, "%s\n", message); if (ecode == M_APM_EXIT) exit(100); } /****************************************************************************/ /* * * convert a signed long int to ASCII in base 10 * */ void M_long_2_ascii(char *output, long input) { long t, m; int i, j; char *p, tbuf[64]; m = input; p = output; i = 0; t = 2147000000L; /* something < 2^31 */ if ((m > t) || (m < -t)) /* handle the bigger numbers with 'sprintf'. */ { /* let them worry about wrap-around problems */ sprintf(p, "%ld", m); /* at 'LONG_MIN', etc. */ } else { if (m < 0) /* handle the sign */ { *p++ = '-'; m = -m; } while (TRUE) /* build the digits in reverse order */ { t = m / 10; j = (int)(m - (10 * t)); tbuf[i++] = (char)(j + '0'); m = t; if (t == 0) break; } while (TRUE) /* fill output string in the correct order */ { *p++ = tbuf[--i]; if (i == 0) break; } *p = '\0'; } } /****************************************************************************/ /* * this function will convert a string to lowercase */ char *M_lowercase(char *s) { char *p; p = s; while (TRUE) { if (*p >= 'A' && *p <= 'Z') *p += 'a' - 'A'; if (*p++ == '\0') break; } return(s); } /****************************************************************************/ /* returns char position of first occurence of s2 in s1 or -1 if no match found */ int M_strposition(char *s1, char *s2) { register char ch1, ch2; char *p0, *p1, *p2; int ct; ct = -1; p0 = s1; if (*s2 == '\0') return(-1); while (TRUE) { ct++; p1 = p0; p2 = s2; ch2 = *p2; while (TRUE) /* scan until first char matches */ { if ((ch1 = *p1) == '\0') return(-1); if (ch1 == ch2) break; p1++; ct++; } p2++; /* check remainder of 2 strings */ p1++; p0 = p1; while (TRUE) { if ((ch2 = *p2) == '\0') return(ct); if (*p1 != ch2) break; p1++; p2++; } } } /****************************************************************************/ XQilla-2.3.0/src/mapm/mapmhasn.c0000644000151400015140000000614211571227107013322 00000000000000 /* * M_APM - mapmhasn.c * * Copyright (C) 2000 - 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" /****************************************************************************/ /* * arcsinh(x) == log [ x + sqrt(x^2 + 1) ] */ void m_apm_arcsinh(M_APM rr, int places, M_APM aa) { M_APM tmp1, tmp2; int local_precision; tmp1 = M_get_stack_var(); tmp2 = M_get_stack_var(); local_precision = places + 4; m_apm_multiply(tmp1, aa, aa); m_apm_add(tmp2, tmp1, MM_One); m_apm_sqrt(tmp1, local_precision, tmp2); m_apm_add(tmp2, aa, tmp1); m_apm_log(rr, places, tmp2); M_restore_stack(2); } /****************************************************************************/ /* * arccosh(x) == log [ x + sqrt(x^2 - 1) ] * * x >= 1.0 */ void m_apm_arccosh(M_APM rr, int places, M_APM aa) { M_APM tmp1, tmp2; int ii, local_precision; ii = m_apm_compare(aa, MM_One); if (ii == -1) /* x < 1 */ { M_apm_log_error_msg(M_APM_RETURN, "Warning! ... \'m_apm_arccosh\', Argument < 1"); M_set_to_zero(rr); return; } tmp1 = M_get_stack_var(); tmp2 = M_get_stack_var(); local_precision = places + 4; m_apm_multiply(tmp1, aa, aa); m_apm_subtract(tmp2, tmp1, MM_One); m_apm_sqrt(tmp1, local_precision, tmp2); m_apm_add(tmp2, aa, tmp1); m_apm_log(rr, places, tmp2); M_restore_stack(2); } /****************************************************************************/ /* * arctanh(x) == 0.5 * log [ (1 + x) / (1 - x) ] * * |x| < 1.0 */ void m_apm_arctanh(M_APM rr, int places, M_APM aa) { M_APM tmp1, tmp2, tmp3; int ii, local_precision; tmp1 = M_get_stack_var(); m_apm_absolute_value(tmp1, aa); ii = m_apm_compare(tmp1, MM_One); if (ii >= 0) /* |x| >= 1.0 */ { M_apm_log_error_msg(M_APM_RETURN, "Warning! ... \'m_apm_arctanh\', |Argument| >= 1"); M_set_to_zero(rr); M_restore_stack(1); return; } tmp2 = M_get_stack_var(); tmp3 = M_get_stack_var(); local_precision = places + 6; m_apm_add(tmp1, MM_One, aa); m_apm_subtract(tmp2, MM_One, aa); m_apm_divide(tmp3, local_precision, tmp1, tmp2); m_apm_log(tmp2, local_precision, tmp3); m_apm_multiply(tmp1, tmp2, MM_0_5); m_apm_round(rr, places, tmp1); M_restore_stack(3); } /****************************************************************************/ XQilla-2.3.0/src/mapm/mapmrsin.c0000644000151400015140000000764311571227107013353 00000000000000 /* * M_APM - mapmrsin.c * * Copyright (C) 1999 - 2002 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" /****************************************************************************/ /* x^3 x^5 x^7 x^9 sin(x) == x - --- + --- - --- + --- ... 3! 5! 7! 9! */ void M_raw_sin(M_APM rr, int places, M_APM xx) { M_APM sum, term, tmp7, tmp8, tmp9; int tolerance, flag, local_precision, prev_exp; long m1, m2; sum = M_get_stack_var(); term = M_get_stack_var(); tmp7 = M_get_stack_var(); tmp8 = M_get_stack_var(); tmp9 = M_get_stack_var(); m_apm_copy(sum, xx); m_apm_copy(term, xx); m_apm_multiply(tmp8, xx, xx); m_apm_round(tmp9, (places + 6), tmp8); local_precision = places + 8; tolerance = -(places + 4); prev_exp = 0; m1 = 2L; flag = 0; while (TRUE) { m2 = m1 * (m1 + 1); m_apm_set_long(tmp7, m2); m_apm_multiply(tmp8, term, tmp9); m_apm_divide(term, local_precision, tmp8, tmp7); if (flag == 0) { m_apm_subtract(tmp7, sum, term); m_apm_copy(sum, tmp7); } else { m_apm_add(tmp7, sum, term); m_apm_copy(sum, tmp7); } if ((term->m_apm_exponent < tolerance) || (term->m_apm_sign == 0)) break; if (m1 != 2L) { local_precision = local_precision + term->m_apm_exponent - prev_exp; if (local_precision < 20) local_precision = 20; } prev_exp = term->m_apm_exponent; m1 += 2; flag = 1 - flag; } m_apm_round(rr, places, sum); M_restore_stack(5); } /****************************************************************************/ /* x^2 x^4 x^6 x^8 cos(x) == 1 - --- + --- - --- + --- ... 2! 4! 6! 8! */ void M_raw_cos(M_APM rr, int places, M_APM xx) { M_APM sum, term, tmp7, tmp8, tmp9; int tolerance, flag, local_precision, prev_exp; long m1, m2; sum = M_get_stack_var(); term = M_get_stack_var(); tmp7 = M_get_stack_var(); tmp8 = M_get_stack_var(); tmp9 = M_get_stack_var(); m_apm_copy(sum, MM_One); m_apm_copy(term, MM_One); m_apm_multiply(tmp8, xx, xx); m_apm_round(tmp9, (places + 6), tmp8); local_precision = places + 8; tolerance = -(places + 4); prev_exp = 0; m1 = 1L; flag = 0; while (TRUE) { m2 = m1 * (m1 + 1); m_apm_set_long(tmp7, m2); m_apm_multiply(tmp8, term, tmp9); m_apm_divide(term, local_precision, tmp8, tmp7); if (flag == 0) { m_apm_subtract(tmp7, sum, term); m_apm_copy(sum, tmp7); } else { m_apm_add(tmp7, sum, term); m_apm_copy(sum, tmp7); } if ((term->m_apm_exponent < tolerance) || (term->m_apm_sign == 0)) break; if (m1 != 1L) { local_precision = local_precision + term->m_apm_exponent - prev_exp; if (local_precision < 20) local_precision = 20; } prev_exp = term->m_apm_exponent; m1 += 2; flag = 1 - flag; } m_apm_round(rr, places, sum); M_restore_stack(5); } /****************************************************************************/ XQilla-2.3.0/src/mapm/mapmasin.c0000644000151400015140000002135111571227107013322 00000000000000 /* * M_APM - mapmasin.c * * Copyright (C) 1999 - 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" #include /****************************************************************************/ void m_apm_arctan2(M_APM rr, int places, M_APM yy, M_APM xx) { M_APM tmp5, tmp6, tmp7; int ix, iy; iy = yy->m_apm_sign; ix = xx->m_apm_sign; if (ix == 0) /* x == 0 */ { if (iy == 0) /* y == 0 */ { M_apm_log_error_msg(M_APM_RETURN, "Warning! ... \'m_apm_arctan2\', Both Arguments == 0"); M_set_to_zero(rr); return; } M_check_PI_places(places); m_apm_round(rr, places, MM_lc_HALF_PI); rr->m_apm_sign = iy; return; } if (iy == 0) { if (ix == 1) { M_set_to_zero(rr); } else { M_check_PI_places(places); m_apm_round(rr, places, MM_lc_PI); } return; } /* * the special cases have been handled, now do the real work */ tmp5 = M_get_stack_var(); tmp6 = M_get_stack_var(); tmp7 = M_get_stack_var(); m_apm_divide(tmp6, (places + 4), yy, xx); m_apm_arctan(tmp5, (places + 4), tmp6); if (ix == 1) /* 'x' is positive */ { m_apm_round(rr, places, tmp5); } else /* 'x' is negative */ { M_check_PI_places(places); if (iy == 1) /* 'y' is positive */ { m_apm_add(tmp7, tmp5, MM_lc_PI); m_apm_round(rr, places, tmp7); } else /* 'y' is negative */ { m_apm_subtract(tmp7, tmp5, MM_lc_PI); m_apm_round(rr, places, tmp7); } } M_restore_stack(3); } /****************************************************************************/ /* Calculate arctan using the identity : x arctan (x) == arcsin [ --------------- ] sqrt(1 + x^2) */ void m_apm_arctan(M_APM rr, int places, M_APM xx) { M_APM tmp8, tmp9; if (xx->m_apm_sign == 0) /* input == 0 ?? */ { M_set_to_zero(rr); return; } if (xx->m_apm_exponent <= -4) /* input close to 0 ?? */ { M_arctan_near_0(rr, places, xx); return; } tmp8 = M_get_stack_var(); tmp9 = M_get_stack_var(); m_apm_multiply(tmp9, xx, xx); m_apm_add(tmp8, tmp9, MM_One); m_apm_sqrt(tmp9, (places + 4), tmp8); m_apm_divide(tmp8, (places + 4), xx, tmp9); m_apm_arcsin(rr, places, tmp8); M_restore_stack(2); } /****************************************************************************/ void m_apm_arcsin(M_APM r, int places, M_APM x) { M_APM tmp0, tmp1, tmp2, tmp3, current_x; int ii, maxiter, maxp, tolerance, local_precision; current_x = M_get_stack_var(); tmp0 = M_get_stack_var(); tmp1 = M_get_stack_var(); tmp2 = M_get_stack_var(); tmp3 = M_get_stack_var(); m_apm_absolute_value(tmp0, x); ii = m_apm_compare(tmp0, MM_One); if (ii == 1) /* |x| > 1 */ { M_apm_log_error_msg(M_APM_RETURN, "Warning! ... \'m_apm_arcsin\', |Argument| > 1"); M_set_to_zero(r); M_restore_stack(5); return; } if (ii == 0) /* |x| == 1, arcsin = +/- PI / 2 */ { M_check_PI_places(places); m_apm_round(r, places, MM_lc_HALF_PI); r->m_apm_sign = x->m_apm_sign; M_restore_stack(5); return; } if (m_apm_compare(tmp0, MM_0_85) == 1) /* check if > 0.85 */ { M_cos_to_sin(tmp2, (places + 4), x); m_apm_arccos(r, places, tmp2); r->m_apm_sign = x->m_apm_sign; M_restore_stack(5); return; } if (x->m_apm_sign == 0) /* input == 0 ?? */ { M_set_to_zero(r); M_restore_stack(5); return; } if (x->m_apm_exponent <= -4) /* input close to 0 ?? */ { M_arcsin_near_0(r, places, x); M_restore_stack(5); return; } tolerance = -(places + 4); maxp = places + 8 - x->m_apm_exponent; local_precision = 20 - x->m_apm_exponent; /* * compute the maximum number of iterations * that should be needed to calculate to * the desired accuracy. [ constant below ~= 1 / log(2) ] */ maxiter = (int)(log((double)(places + 2)) * 1.442695) + 3; if (maxiter < 5) maxiter = 5; M_get_asin_guess(current_x, x); /* Use the following iteration to solve for arc-sin : sin(X) - N X = X - ------------ n+1 cos(X) */ ii = 0; while (TRUE) { M_4x_cos(tmp1, local_precision, current_x); M_cos_to_sin(tmp2, local_precision, tmp1); if (tmp2->m_apm_sign != 0) tmp2->m_apm_sign = current_x->m_apm_sign; m_apm_subtract(tmp3, tmp2, x); m_apm_divide(tmp0, local_precision, tmp3, tmp1); m_apm_subtract(tmp2, current_x, tmp0); m_apm_copy(current_x, tmp2); if (ii != 0) { if (((2 * tmp0->m_apm_exponent) < tolerance) || (tmp0->m_apm_sign == 0)) break; } if (++ii == maxiter) { M_apm_log_error_msg(M_APM_RETURN, "Warning! ... \'m_apm_arcsin\', max iteration count reached"); break; } local_precision *= 2; if (local_precision > maxp) local_precision = maxp; } m_apm_round(r, places, current_x); M_restore_stack(5); } /****************************************************************************/ void m_apm_arccos(M_APM r, int places, M_APM x) { M_APM tmp0, tmp1, tmp2, tmp3, current_x; int ii, maxiter, maxp, tolerance, local_precision; current_x = M_get_stack_var(); tmp0 = M_get_stack_var(); tmp1 = M_get_stack_var(); tmp2 = M_get_stack_var(); tmp3 = M_get_stack_var(); m_apm_absolute_value(tmp0, x); ii = m_apm_compare(tmp0, MM_One); if (ii == 1) /* |x| > 1 */ { M_apm_log_error_msg(M_APM_RETURN, "Warning! ... \'m_apm_arccos\', |Argument| > 1"); M_set_to_zero(r); M_restore_stack(5); return; } if (ii == 0) /* |x| == 1, arccos = 0, PI */ { if (x->m_apm_sign == 1) { M_set_to_zero(r); } else { M_check_PI_places(places); m_apm_round(r, places, MM_lc_PI); } M_restore_stack(5); return; } if (m_apm_compare(tmp0, MM_0_85) == 1) /* check if > 0.85 */ { M_cos_to_sin(tmp2, (places + 4), x); if (x->m_apm_sign == 1) { m_apm_arcsin(r, places, tmp2); } else { M_check_PI_places(places); m_apm_arcsin(tmp3, (places + 4), tmp2); m_apm_subtract(tmp1, MM_lc_PI, tmp3); m_apm_round(r, places, tmp1); } M_restore_stack(5); return; } if (x->m_apm_sign == 0) /* input == 0 ?? */ { M_check_PI_places(places); m_apm_round(r, places, MM_lc_HALF_PI); M_restore_stack(5); return; } if (x->m_apm_exponent <= -4) /* input close to 0 ?? */ { M_arccos_near_0(r, places, x); M_restore_stack(5); return; } tolerance = -(places + 4); maxp = places + 8; local_precision = 18; /* * compute the maximum number of iterations * that should be needed to calculate to * the desired accuracy. [ constant below ~= 1 / log(2) ] */ maxiter = (int)(log((double)(places + 2)) * 1.442695) + 3; if (maxiter < 5) maxiter = 5; M_get_acos_guess(current_x, x); /* Use the following iteration to solve for arc-cos : cos(X) - N X = X + ------------ n+1 sin(X) */ ii = 0; while (TRUE) { M_4x_cos(tmp1, local_precision, current_x); M_cos_to_sin(tmp2, local_precision, tmp1); if (tmp2->m_apm_sign != 0) tmp2->m_apm_sign = current_x->m_apm_sign; m_apm_subtract(tmp3, tmp1, x); m_apm_divide(tmp0, local_precision, tmp3, tmp2); m_apm_add(tmp2, current_x, tmp0); m_apm_copy(current_x, tmp2); if (ii != 0) { if (((2 * tmp0->m_apm_exponent) < tolerance) || (tmp0->m_apm_sign == 0)) break; } if (++ii == maxiter) { M_apm_log_error_msg(M_APM_RETURN, "Warning! ... \'m_apm_arccos\', max iteration count reached"); break; } local_precision *= 2; if (local_precision > maxp) local_precision = maxp; } m_apm_round(r, places, current_x); M_restore_stack(5); } /****************************************************************************/ XQilla-2.3.0/src/mapm/mapm_mt.cpp0000644000151400015140000004017411571227107013513 00000000000000 /* * M_APM - mapm_mt.c * * Copyright (C) 2002 Martin Pfingstl (Martin.Pfingstl@epost.de) * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed by * using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * XQilla project on 2005/11/03, 2007/24/04 * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.9.5 */ /* * $Id$ * * This file contains all wrapper functions for the library * using semaphores * * $Log$ * Revision 1.4 2008/01/14 14:46:29 jpcs * Fixed the licence in a MAPM file that had been missed. * * Revision 1.3 2007/04/24 13:12:59 jpcs * Converted common NodeTest objects that use an ItemType object to NodeTest * objects without an ItemType object. This simplifies comparing different * NodeTest objects, and uses a more efficient implementation. * * Exposed methods on XQCastAs to perform the cast specified to an * AnyAtomicType and a string. * * Modified MAPM so that some of it's common algorithms are thread safe, and * therefore reduced the use of the mutex to guard the library. The same MAPM * object should not now be used from multiple threads at the same time - * which means that the built-in MAPM constants should be avoided. * * Revision 1.2 2005/11/03 17:04:24 jpcs * Merged XQEngine.hpp and Pathan.hpp into XQillaExport.hpp. Renamed all * things Pathan to XQilla. * * Revision 1.1 2005/11/01 18:04:13 jpcs * Initial check in. * * Revision 1.2 2004/08/18 19:05:38 jpcs * Merged in changes from DSL xqilla. * * Revision 1.1 2004/07/21 09:23:01 jpcs * Initial check in of the Parthenon backup of XQilla. * * Revision 1.4 2004/07/08 15:24:43 swhite * Moved more headers into the include directory. Still a few to go. * * Revision 1.3 2004/06/30 13:49:08 swhite #include "../config/xqilla_config.h" * Moved the 'extern "C"' declaration so that #include "foo.hpp" is no longer inside it, as some versions of GCC object to this (quite rightly as far as I can see). * * Revision 1.2 2004/06/04 14:41:04 jpcs * Split the context into two parts, the StaticContext and the DynamicContext. * Created a proxy context, that implements the DynamicContext from scratch, * and forwards the calls to the StaticContext to a reference to a * StaticContext. * * Created VariableTypeStore, which is part of the StaticContext, and holds * the type of the variable, rather than the value of it. This is done by * factoring much of the common code from VarStoreImpl into a templated * class, VariableStoreTemplate. * * Modified the methods in the code to take the correct type of context, as * much as possible. * * Revision 1.1 2003/05/01 12:46:55 alby * - Updated MAPM to version 4.6.1 * - The MAPM class is now thread-safe * * Revision 1.2 2002/11/10 22:42:44 mike * add new integer_pow_nr function * * Revision 1.1 2002/06/13 20:39:09 mike * Initial revision */ #include extern void m_apm_enter(void); extern void m_apm_leave(void); #include #include extern "C" { static XERCES_CPP_NAMESPACE_QUALIFIER XMLMutex* m_apm_semaphore=0; void m_apm_mt_initialize(void) { if(m_apm_semaphore == 0) { m_apm_semaphore = new XERCES_CPP_NAMESPACE_QUALIFIER XMLMutex; } } void m_apm_mt_terminate(void) { delete m_apm_semaphore; m_apm_semaphore = 0; } void m_apm_enter(void) { m_apm_semaphore->lock(); } void m_apm_leave(void) { m_apm_semaphore->unlock(); } /****************************************************************************/ M_APM m_apm_init_mt(void) { M_APM t; // m_apm_enter(); t=m_apm_init(); // m_apm_leave(); return(t); } /****************************************************************************/ void m_apm_free_mt(M_APM t) { // m_apm_enter(); m_apm_free(t); // m_apm_leave(); } /****************************************************************************/ void m_apm_free_all_mem_mt(void) { m_apm_enter(); m_apm_free_all_mem(); m_apm_leave(); } /****************************************************************************/ void m_apm_trim_mem_usage_mt(void) { m_apm_enter(); m_apm_trim_mem_usage(); m_apm_leave(); } /****************************************************************************/ void m_apm_set_string_mt(M_APM ctmp, char *s_in) { // m_apm_enter(); m_apm_set_string(ctmp,s_in); // m_apm_leave(); } /****************************************************************************/ void m_apm_set_double_mt(M_APM atmp,double dd) { // m_apm_enter(); m_apm_set_double(atmp,dd); // m_apm_leave(); } /****************************************************************************/ void m_apm_set_long_mt(M_APM atmp, long mm) { // m_apm_enter(); m_apm_set_long(atmp,mm); // m_apm_leave(); } /****************************************************************************/ void m_apm_to_string_mt(char *s, int places, M_APM mtmp) { // m_apm_enter(); m_apm_to_string(s,places,mtmp); // m_apm_leave(); } /****************************************************************************/ void m_apm_add_mt(M_APM r, const M_APM a, const M_APM b) { // m_apm_enter(); m_apm_add(r,a,b); // m_apm_leave(); } /****************************************************************************/ void m_apm_subtract_mt(M_APM r, const M_APM a, const M_APM b) { // m_apm_enter(); m_apm_subtract(r,a,b); // m_apm_leave(); } /****************************************************************************/ void m_apm_absolute_value_mt(M_APM d, M_APM s) { // m_apm_enter(); m_apm_absolute_value(d,s); // m_apm_leave(); } /****************************************************************************/ void m_apm_negate_mt(M_APM d, M_APM s) { // m_apm_enter(); m_apm_negate(d,s); // m_apm_leave(); } /****************************************************************************/ int m_apm_compare_mt(M_APM ltmp, M_APM rtmp) { int ret; // m_apm_enter(); ret=m_apm_compare(ltmp,rtmp); // m_apm_leave(); return(ret); } /****************************************************************************/ void m_apm_multiply_mt(M_APM r, M_APM a, M_APM b) { m_apm_enter(); m_apm_multiply(r,a,b); m_apm_leave(); } /****************************************************************************/ void m_apm_divide_mt(M_APM rr, int places, M_APM aa, M_APM bb) { m_apm_enter(); m_apm_divide(rr,places,aa,bb); m_apm_leave(); } /****************************************************************************/ void m_apm_cpp_precision_mt(int digits) { m_apm_enter(); m_apm_cpp_precision(digits); m_apm_leave(); } /****************************************************************************/ void m_apm_to_fixpt_string_mt(char *ss, int dplaces, M_APM mtmp) { m_apm_enter(); m_apm_to_fixpt_string(ss,dplaces,mtmp); m_apm_leave(); } /****************************************************************************/ void m_apm_round_mt(M_APM btmp, int places, M_APM atmp) { // m_apm_enter(); m_apm_round(btmp,places,atmp); // m_apm_leave(); } /****************************************************************************/ void m_apm_sqrt_mt(M_APM rr, int places, M_APM aa) { m_apm_enter(); m_apm_sqrt(rr,places,aa); m_apm_leave(); } /****************************************************************************/ void m_apm_sin_mt(M_APM r, int places, M_APM a) { m_apm_enter(); m_apm_sin(r,places,a); m_apm_leave(); } /****************************************************************************/ void m_apm_arccos_mt(M_APM r, int places, M_APM x) { m_apm_enter(); m_apm_arccos(r,places,x); m_apm_leave(); } /****************************************************************************/ void m_apm_arctan2_mt(M_APM rr, int places, M_APM yy, M_APM xx) { m_apm_enter(); m_apm_arctan2(rr,places,yy,xx); m_apm_leave(); } /****************************************************************************/ void m_apm_copy_mt(M_APM dest, M_APM src) { // m_apm_enter(); m_apm_copy(dest,src); // m_apm_leave(); } /****************************************************************************/ void m_apm_reciprocal_mt(M_APM rr, int places, M_APM aa) { m_apm_enter(); m_apm_reciprocal(rr,places,aa); m_apm_leave(); } /****************************************************************************/ void m_apm_to_fixpt_stringex_mt(char *s, int dplaces, M_APM atmp, char ch_radix, char ch_sep, int count_sep) { m_apm_enter(); m_apm_to_fixpt_stringex(s,dplaces,atmp,ch_radix,ch_sep,count_sep); m_apm_leave(); } /****************************************************************************/ char *m_apm_to_fixpt_stringexp_mt(int dplaces, M_APM atmp, char ch_radx, char ch_sep, int ct_sep) { char *s; m_apm_enter(); s=m_apm_to_fixpt_stringexp(dplaces,atmp,ch_radx,ch_sep,ct_sep); m_apm_leave(); return(s); } /****************************************************************************/ void m_apm_to_integer_string_mt(char *s, M_APM mtmp) { m_apm_enter(); m_apm_to_integer_string(s,mtmp); m_apm_leave(); } /****************************************************************************/ int m_apm_sign_mt(M_APM m) { int i; // m_apm_enter(); i=m_apm_sign(m); // m_apm_leave(); return(i); } /****************************************************************************/ int m_apm_exponent_mt(M_APM m) { int i; // m_apm_enter(); i=m_apm_exponent(m); // m_apm_leave(); return(i); } /****************************************************************************/ int m_apm_significant_digits_mt(M_APM m) { int i; // m_apm_enter(); i=m_apm_significant_digits(m); // m_apm_leave(); return(i); } /****************************************************************************/ int m_apm_is_integer_mt(M_APM m) { int i; // m_apm_enter(); i=m_apm_is_integer(m); // m_apm_leave(); return(i); } /****************************************************************************/ int m_apm_is_even_mt(M_APM m) { int i; // m_apm_enter(); i=m_apm_is_even(m); // m_apm_leave(); return(i); } /****************************************************************************/ int m_apm_is_odd_mt(M_APM m) { int i; // m_apm_enter(); i=m_apm_is_odd(m); // m_apm_leave(); return(i); } /****************************************************************************/ void m_apm_gcd_mt(M_APM r, M_APM u, M_APM v) { m_apm_enter(); m_apm_gcd(r,u,v); m_apm_leave(); } /****************************************************************************/ void m_apm_lcm_mt(M_APM r, M_APM u, M_APM v) { m_apm_enter(); m_apm_lcm(r,u,v); m_apm_leave(); } /****************************************************************************/ void m_apm_integer_divide_mt(M_APM rr, M_APM aa, M_APM bb) { m_apm_enter(); m_apm_integer_divide(rr,aa,bb); m_apm_leave(); } /****************************************************************************/ void m_apm_integer_div_rem_mt(M_APM qq, M_APM rr, M_APM aa, M_APM bb) { m_apm_enter(); m_apm_integer_div_rem(qq,rr,aa,bb); m_apm_leave(); } /****************************************************************************/ void m_apm_factorial_mt(M_APM moutput, M_APM minput) { m_apm_enter(); m_apm_factorial(moutput,minput); m_apm_leave(); } /****************************************************************************/ void m_apm_floor_mt(M_APM bb, M_APM aa) { m_apm_enter(); m_apm_floor(bb,aa); m_apm_leave(); } /****************************************************************************/ void m_apm_ceil_mt(M_APM bb, M_APM aa) { m_apm_enter(); m_apm_ceil(bb,aa); m_apm_leave(); } /****************************************************************************/ void m_apm_get_random_mt(M_APM m) { m_apm_enter(); m_apm_get_random(m); m_apm_leave(); } /****************************************************************************/ void m_apm_set_random_seed_mt(char *s) { m_apm_enter(); m_apm_set_random_seed(s); m_apm_leave(); } /****************************************************************************/ void m_apm_cbrt_mt(M_APM rr, int places, M_APM aa) { m_apm_enter(); m_apm_cbrt(rr,places,aa); m_apm_leave(); } /****************************************************************************/ void m_apm_log_mt(M_APM rr, int places, M_APM aa) { m_apm_enter(); m_apm_log(rr,places,aa); m_apm_leave(); } /****************************************************************************/ void m_apm_log10_mt(M_APM rr, int places, M_APM aa) { m_apm_enter(); m_apm_log10(rr,places,aa); m_apm_leave(); } /****************************************************************************/ void m_apm_exp_mt(M_APM rr, int places, M_APM aa) { m_apm_enter(); m_apm_exp(rr,places,aa); m_apm_leave(); } /****************************************************************************/ void m_apm_pow_mt(M_APM rr, int places, M_APM xx, M_APM yy) { m_apm_enter(); m_apm_pow(rr,places,xx,yy); m_apm_leave(); } /****************************************************************************/ void m_apm_integer_pow_mt(M_APM rr, int places, M_APM aa, int mexp) { m_apm_enter(); m_apm_integer_pow(rr,places,aa,mexp); m_apm_leave(); } /****************************************************************************/ void m_apm_integer_pow_nr_mt(M_APM rr, M_APM aa, int mexp) { m_apm_enter(); m_apm_integer_pow_nr(rr,aa,mexp); m_apm_leave(); } /****************************************************************************/ void m_apm_sin_cos_mt(M_APM sinv, M_APM cosv, int places, M_APM aa) { m_apm_enter(); m_apm_sin_cos(sinv,cosv,places,aa); m_apm_leave(); } /****************************************************************************/ void m_apm_cos_mt(M_APM rr, int places, M_APM aa) { m_apm_enter(); m_apm_cos(rr,places,aa); m_apm_leave(); } /****************************************************************************/ void m_apm_tan_mt(M_APM rr, int places, M_APM aa) { m_apm_enter(); m_apm_tan(rr,places,aa); m_apm_leave(); } /****************************************************************************/ void m_apm_arcsin_mt(M_APM rr, int places, M_APM aa) { m_apm_enter(); m_apm_arcsin(rr,places,aa); m_apm_leave(); } /****************************************************************************/ void m_apm_arctan_mt(M_APM rr, int places, M_APM aa) { m_apm_enter(); m_apm_arctan(rr,places,aa); m_apm_leave(); } /****************************************************************************/ void m_apm_sinh_mt(M_APM rr, int places, M_APM aa) { m_apm_enter(); m_apm_sinh(rr,places,aa); m_apm_leave(); } /****************************************************************************/ void m_apm_cosh_mt(M_APM rr, int places, M_APM aa) { m_apm_enter(); m_apm_cosh(rr,places,aa); m_apm_leave(); } /****************************************************************************/ void m_apm_tanh_mt(M_APM rr, int places, M_APM aa) { m_apm_enter(); m_apm_tanh(rr,places,aa); m_apm_leave(); } /****************************************************************************/ void m_apm_arcsinh_mt(M_APM rr, int places, M_APM aa) { m_apm_enter(); m_apm_arcsinh(rr,places,aa); m_apm_leave(); } /****************************************************************************/ void m_apm_arccosh_mt(M_APM rr, int places, M_APM aa) { m_apm_enter(); m_apm_arccosh(rr,places,aa); m_apm_leave(); } /****************************************************************************/ void m_apm_arctanh_mt(M_APM rr, int places, M_APM aa) { m_apm_enter(); m_apm_arctanh(rr,places,aa); m_apm_leave(); } /****************************************************************************/ } XQilla-2.3.0/src/mapm/mapmpwr2.c0000644000151400015140000000416311571227107013264 00000000000000 /* * M_APM - mapmpwr2.c * * Copyright (C) 2002 - 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" /****************************************************************************/ void m_apm_integer_pow_nr(M_APM rr, M_APM aa, int mexp) { M_APM tmp0, tmpy, tmpz; int nexp, ii; if (mexp == 0) { m_apm_copy(rr, MM_One); return; } else { if (mexp < 0) { M_apm_log_error_msg(M_APM_RETURN, "Warning! ... \'m_apm_integer_pow_nr\', Negative exponent"); M_set_to_zero(rr); return; } } if (mexp == 1) { m_apm_copy(rr, aa); return; } if (mexp == 2) { m_apm_multiply(rr, aa, aa); return; } nexp = mexp; if (aa->m_apm_sign == 0) { M_set_to_zero(rr); return; } tmp0 = M_get_stack_var(); tmpy = M_get_stack_var(); tmpz = M_get_stack_var(); m_apm_copy(tmpy, MM_One); m_apm_copy(tmpz, aa); while (TRUE) { ii = nexp & 1; nexp = nexp >> 1; if (ii != 0) /* exponent -was- odd */ { m_apm_multiply(tmp0, tmpy, tmpz); if (nexp == 0) break; m_apm_copy(tmpy, tmp0); } m_apm_multiply(tmp0, tmpz, tmpz); m_apm_copy(tmpz, tmp0); } m_apm_copy(rr, tmp0); M_restore_stack(3); } /****************************************************************************/ XQilla-2.3.0/src/mapm/mapm_lg3.c0000644000151400015140000001252711571227107013221 00000000000000 /* * M_APM - mapm_lg3.c * * Copyright (C) 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" #include /* * using the 'R' function (defined below) for 'N' decimal places : * * * -N -N * log(2) = R(1, 0.5 * 10 ) - R(1, 10 ) * * * -N -N * log(10) = R(1, 0.1 * 10 ) - R(1, 10 ) * * * * I found this on a web site which went into considerable detail * on the history of log(2). This formula is algebraically identical * to the formula specified in J. Borwein and P. Borwein's book * "PI and the AGM". (reference algorithm 7.2) */ /****************************************************************************/ /* * check if our local copy of log(2) & log(10) is precise * enough for our purpose. if not, calculate them so it's * as precise as desired, accurate to at least 'places'. */ void M_check_log_places(int places) { M_APM tmp6, tmp7, tmp8, tmp9; int dplaces; dplaces = places + 4; if (dplaces > MM_lc_log_digits) { MM_lc_log_digits = dplaces + 4; tmp6 = M_get_stack_var(); tmp7 = M_get_stack_var(); tmp8 = M_get_stack_var(); tmp9 = M_get_stack_var(); dplaces += 6 + (int)log10((double)places); m_apm_copy(tmp7, MM_One); tmp7->m_apm_exponent = -places; M_log_AGM_R_func(tmp8, dplaces, MM_One, tmp7); m_apm_multiply(tmp6, tmp7, MM_0_5); M_log_AGM_R_func(tmp9, dplaces, MM_One, tmp6); m_apm_subtract(MM_lc_log2, tmp9, tmp8); /* log(2) */ tmp7->m_apm_exponent -= 1; /* divide by 10 */ M_log_AGM_R_func(tmp9, dplaces, MM_One, tmp7); m_apm_subtract(MM_lc_log10, tmp9, tmp8); /* log(10) */ m_apm_reciprocal(MM_lc_log10R, dplaces, MM_lc_log10); /* 1 / log(10) */ M_restore_stack(4); } } /****************************************************************************/ /* * define a notation for a function 'R' : * * * * 1 * R (a0, b0) = ------------------------------ * * ---- * \ * \ n-1 2 2 * 1 - | 2 * (a - b ) * / n n * / * ---- * n >= 0 * * * where a, b are the classic AGM iteration : * * * a = 0.5 * (a + b ) * n+1 n n * * * b = sqrt(a * b ) * n+1 n n * * * * define a 'c' variable for more efficient computation : * * 2 2 2 * c = 0.5 * (a - b ) , c = a - b * n+1 n n n n n * */ /****************************************************************************/ void M_log_AGM_R_func(M_APM rr, int places, M_APM aa, M_APM bb) { M_APM tmp1, tmp2, tmp3, tmp4, tmpC2, sum, pow_2, tmpA0, tmpB0; int ii, tolerance, dplaces; tmpA0 = M_get_stack_var(); tmpB0 = M_get_stack_var(); tmpC2 = M_get_stack_var(); tmp1 = M_get_stack_var(); tmp2 = M_get_stack_var(); tmp3 = M_get_stack_var(); tmp4 = M_get_stack_var(); sum = M_get_stack_var(); pow_2 = M_get_stack_var(); tolerance = places + 8; dplaces = places + 16; m_apm_copy(tmpA0, aa); m_apm_copy(tmpB0, bb); m_apm_copy(pow_2, MM_0_5); ii = 0; while (TRUE) { if (ii == 0) { ii = 1; m_apm_copy(sum, MM_0_5); m_apm_subtract(tmp1, tmpA0, tmpB0); /* C n+1 = 0.5 * [ An - Bn ] */ m_apm_multiply(tmp4, MM_0_5, tmp1); /* C n+1 */ m_apm_multiply(tmpC2, tmp4, tmp4); /* C n+1 ^ 2 */ } else { m_apm_multiply(tmp1, tmpC2, pow_2); m_apm_add(tmp3, sum, tmp1); if ((tmp1->m_apm_sign == 0) || ((-2 * tmp1->m_apm_exponent) > tolerance)) break; m_apm_round(sum, dplaces, tmp3); m_apm_subtract(tmp1, tmpA0, tmpB0); m_apm_multiply(tmp4, MM_0_5, tmp1); m_apm_multiply(tmpC2, tmp4, tmp4); } /* do the AGM and set up for next iteration */ m_apm_add(tmp1, tmpA0, tmpB0); m_apm_multiply(tmp3, MM_0_5, tmp1); m_apm_multiply(tmp2, tmpA0, tmpB0); m_apm_sqrt(tmpB0, dplaces, tmp2); m_apm_copy(tmpA0, tmp3); m_apm_multiply(tmp2, MM_Two, pow_2); m_apm_copy(pow_2, tmp2); } m_apm_subtract(tmp4, MM_One, tmp3); m_apm_reciprocal(rr, places, tmp4); M_restore_stack(9); } /****************************************************************************/ XQilla-2.3.0/src/mapm/mapmistr.c0000644000151400015140000000447211571227107013356 00000000000000 /* * M_APM - mapmistr.c * * Copyright (C) 1999 - 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" /****************************************************************************/ void m_apm_to_integer_string(char *s, M_APM mtmp) { void *vp; UCHAR *ucp, numdiv, numrem; char *cp, *p, sbuf[128]; int ct, dl, numb, ii; vp = NULL; ct = mtmp->m_apm_exponent; dl = mtmp->m_apm_datalength; /* * if |input| < 1, result is "0" */ if (ct <= 0 || mtmp->m_apm_sign == 0) { s[0] = '0'; s[1] = '\0'; return; } if (ct > 112) { if ((vp = (void *)MAPM_MALLOC((ct + 32) * sizeof(char))) == NULL) { /* fatal, this does not return */ M_apm_log_error_msg(M_APM_EXIT, "\'m_apm_to_integer_string\', Out of memory"); } cp = (char *)vp; } else { cp = sbuf; } p = cp; ii = 0; /* handle a negative number */ if (mtmp->m_apm_sign == -1) { ii = 1; *p++ = '-'; } /* get num-bytes of data (#digits / 2) to use in the string */ if (ct > dl) numb = (dl + 1) >> 1; else numb = (ct + 1) >> 1; ucp = mtmp->m_apm_data; while (TRUE) { M_get_div_rem_10((int)(*ucp++), &numdiv, &numrem); *p++ = numdiv + '0'; *p++ = numrem + '0'; if (--numb == 0) break; } /* pad with trailing zeros if the exponent > datalength */ if (ct > dl) memset(p, '0', (ct + 1 - dl)); cp[ct + ii] = '\0'; strcpy(s, cp); if (vp != NULL) MAPM_FREE(vp); } /****************************************************************************/ XQilla-2.3.0/src/mapm/mapm_sin.c0000644000151400015140000000717111571227107013324 00000000000000 /* * M_APM - mapm_sin.c * * Copyright (C) 1999 - 2002 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" /****************************************************************************/ void m_apm_sin(M_APM r, int places, M_APM a) { M_APM tmp3; tmp3 = M_get_stack_var(); M_limit_angle_to_pi(tmp3, (places + 6), a); M_5x_sin(r, places, tmp3); M_restore_stack(1); } /****************************************************************************/ void m_apm_cos(M_APM r, int places, M_APM a) { M_APM tmp3; tmp3 = M_get_stack_var(); M_limit_angle_to_pi(tmp3, (places + 6), a); M_4x_cos(r, places, tmp3); M_restore_stack(1); } /****************************************************************************/ void m_apm_sin_cos(M_APM sinv, M_APM cosv, int places, M_APM aa) { M_APM tmp5, tmp6, tmp7; tmp5 = M_get_stack_var(); tmp6 = M_get_stack_var(); tmp7 = M_get_stack_var(); M_limit_angle_to_pi(tmp5, (places + 6), aa); M_4x_cos(tmp7, (places + 6), tmp5); /* * compute sin(x) = sqrt(1 - cos(x) ^ 2). * * note that the sign of 'sin' will always be positive after the * sqrt call. we need to adjust the sign based on what quadrant * the original angle is in. */ M_cos_to_sin(tmp6, (places + 6), tmp7); if (tmp6->m_apm_sign != 0) tmp6->m_apm_sign = tmp5->m_apm_sign; m_apm_round(sinv, places, tmp6); m_apm_round(cosv, places, tmp7); M_restore_stack(3); } /****************************************************************************/ void m_apm_tan(M_APM r, int places, M_APM a) { M_APM tmps, tmpc, tmp0; tmps = M_get_stack_var(); tmpc = M_get_stack_var(); tmp0 = M_get_stack_var(); m_apm_sin_cos(tmps, tmpc, (places + 4), a); /* tan(x) = sin(x) / cos(x) */ m_apm_divide(tmp0, (places + 4), tmps, tmpc); m_apm_round(r, places, tmp0); M_restore_stack(3); } /****************************************************************************/ void M_limit_angle_to_pi(M_APM rr, int places, M_APM aa) { M_APM tmp7, tmp8, tmp9; M_check_PI_places(places); tmp9 = M_get_stack_var(); m_apm_copy(tmp9, MM_lc_PI); if (m_apm_compare(aa, tmp9) == 1) /* > PI */ { tmp7 = M_get_stack_var(); tmp8 = M_get_stack_var(); m_apm_add(tmp7, aa, tmp9); m_apm_integer_divide(tmp9, tmp7, MM_lc_2_PI); m_apm_multiply(tmp8, tmp9, MM_lc_2_PI); m_apm_subtract(tmp9, aa, tmp8); m_apm_round(rr, places, tmp9); M_restore_stack(3); return; } tmp9->m_apm_sign = -1; if (m_apm_compare(aa, tmp9) == -1) /* < -PI */ { tmp7 = M_get_stack_var(); tmp8 = M_get_stack_var(); m_apm_add(tmp7, aa, tmp9); m_apm_integer_divide(tmp9, tmp7, MM_lc_2_PI); m_apm_multiply(tmp8, tmp9, MM_lc_2_PI); m_apm_subtract(tmp9, aa, tmp8); m_apm_round(rr, places, tmp9); M_restore_stack(3); return; } m_apm_copy(rr, aa); M_restore_stack(1); } /****************************************************************************/ XQilla-2.3.0/src/mapm/mapmasn0.c0000644000151400015140000000717211571227107013236 00000000000000 /* * M_APM - mapmasn0.c * * Copyright (C) 2000 - 2002 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" /****************************************************************************/ /* Calculate arcsin using the identity : x arcsin (x) == arctan [ --------------- ] sqrt(1 - x^2) */ void M_arcsin_near_0(M_APM rr, int places, M_APM aa) { M_APM tmp5, tmp6; tmp5 = M_get_stack_var(); tmp6 = M_get_stack_var(); M_cos_to_sin(tmp5, (places + 8), aa); m_apm_divide(tmp6, (places + 8), aa, tmp5); M_arctan_near_0(rr, places, tmp6); M_restore_stack(2); } /****************************************************************************/ /* Calculate arccos using the identity : arccos (x) == PI / 2 - arcsin (x) */ void M_arccos_near_0(M_APM rr, int places, M_APM aa) { M_APM tmp1, tmp2; tmp1 = M_get_stack_var(); tmp2 = M_get_stack_var(); M_check_PI_places(places); M_arcsin_near_0(tmp1, (places + 4), aa); m_apm_subtract(tmp2, MM_lc_HALF_PI, tmp1); m_apm_round(rr, places, tmp2); M_restore_stack(2); } /****************************************************************************/ /* calculate arctan (x) with the following series: x^3 x^5 x^7 x^9 arctan (x) == x - --- + --- - --- + --- ... 3 5 7 9 */ void M_arctan_near_0(M_APM rr, int places, M_APM aa) { M_APM tmp0, tmpR, tmp2, tmpS, digit, term; int tolerance, local_precision; long m1; tmp0 = M_get_stack_var(); tmp2 = M_get_stack_var(); tmpR = M_get_stack_var(); tmpS = M_get_stack_var(); term = M_get_stack_var(); digit = M_get_stack_var(); tolerance = aa->m_apm_exponent - places - 4; local_precision = places + 8 - aa->m_apm_exponent; m_apm_copy(term, aa); m_apm_copy(tmpS, aa); m_apm_multiply(tmp0, aa, aa); m_apm_round(tmp2, (local_precision + 8), tmp0); m1 = 1; while (TRUE) { m1 += 2; m_apm_set_long(digit, m1); m_apm_multiply(tmp0, term, tmp2); m_apm_round(term, local_precision, tmp0); m_apm_divide(tmp0, local_precision, term, digit); m_apm_subtract(tmpR, tmpS, tmp0); if ((tmp0->m_apm_exponent < tolerance) || (tmp0->m_apm_sign == 0)) { m_apm_round(rr, places, tmpR); break; } m1 += 2; m_apm_set_long(digit, m1); m_apm_multiply(tmp0, term, tmp2); m_apm_round(term, local_precision, tmp0); m_apm_divide(tmp0, local_precision, term, digit); m_apm_add(tmpS, tmpR, tmp0); if ((tmp0->m_apm_exponent < tolerance) || (tmp0->m_apm_sign == 0)) { m_apm_round(rr, places, tmpS); break; } } M_restore_stack(6); /* restore the 6 locals we used here */ } /****************************************************************************/ XQilla-2.3.0/src/mapm/m_apm_lc.h0000644000151400015140000001276511636377670013317 00000000000000 /* * M_APM - m_apm_lc.h * * Copyright (C) 1999 - 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #ifndef M__APM_LOCAL_INC #define M__APM_LOCAL_INC #include #include #include #include /* * this supports older (and maybe newer?) Borland compilers. * these Borland compilers define __MSDOS__ */ #ifndef MSDOS #ifdef __MSDOS__ #define MSDOS #endif #endif /* * this supports some newer Borland compilers (i.e., v5.5). */ #ifndef MSDOS #ifdef __BORLANDC__ #define MSDOS #endif #endif /* * this supports the LCC-WIN32 compiler */ #ifndef MSDOS #ifdef __LCC__ #define MSDOS #endif #endif /* * this supports Micro$oft Visual C++ and also possibly older * straight C compilers as well. */ #ifndef MSDOS #ifdef _MSC_VER #define MSDOS #endif #endif /* * this supports Metrowerks CodeWarrior 7.0 compiler (I think...) */ #ifndef MSDOS #ifdef __MWERKS__ #define MSDOS #endif #endif /* * this supports MINGW 32 compiler */ #ifndef MSDOS #ifdef __MINGW_H #define MSDOS #endif #endif /* * If for some reason (RAM limitations, slow floating point, whatever) * you do NOT want to use the FFT multiply algorithm, un-comment the * #define below, delete mapm_fft.c and remove mapm_fft from the build. */ /* #define NO_FFT_MULTIPLY */ /* * use your own memory management functions if desired. * re-define MAPM_* below to point to your functions. * an example is shown below. */ /* extern void *memory_allocate(unsigned int); extern void *memory_reallocate(void *, unsigned int); extern void memory_free(void *); #define MAPM_MALLOC memory_allocate #define MAPM_REALLOC memory_reallocate #define MAPM_FREE memory_free */ /* default: use the standard C library memory functions ... */ #define MAPM_MALLOC malloc #define MAPM_REALLOC realloc #define MAPM_FREE free #ifndef TRUE #define TRUE 1 #endif #ifndef FALSE #define FALSE 0 #endif #define M_APM_IDENT 0x6BCC9AE5 #define M_APM_RETURN 1 #define M_APM_EXIT 2 /* number of digits in the global constants, PI, E, etc */ #define VALID_DECIMAL_PLACES 128 extern int MM_lc_PI_digits; extern int MM_lc_log_digits; /* * constants not in m_apm.h */ extern M_APM MM_0_5; extern M_APM MM_0_85; extern M_APM MM_5x_125R; extern M_APM MM_5x_64R; extern M_APM MM_5x_256R; extern M_APM MM_5x_Eight; extern M_APM MM_5x_Sixteen; extern M_APM MM_5x_Twenty; extern M_APM MM_lc_PI; extern M_APM MM_lc_HALF_PI; extern M_APM MM_lc_2_PI; extern M_APM MM_lc_log2; extern M_APM MM_lc_log10; extern M_APM MM_lc_log10R; /* * prototypes for internal functions */ #ifndef NO_FFT_MULTIPLY extern void M_free_all_fft(void); #endif extern void M_init_trig_globals(void); extern void M_free_all_div(void); extern void M_free_all_exp(void); extern void M_free_all_pow(void); extern void M_free_all_rnd(void); extern void M_free_all_cnst(void); extern void M_free_all_fmul(void); extern void M_free_all_stck(void); extern void M_free_all_util(void); extern void M_raw_exp(M_APM, int, M_APM); extern void M_raw_sin(M_APM, int, M_APM); extern void M_raw_cos(M_APM, int, M_APM); extern void M_5x_sin(M_APM, int, M_APM); extern void M_4x_cos(M_APM, int, M_APM); extern void M_5x_do_it(M_APM, int, M_APM); extern void M_4x_do_it(M_APM, int, M_APM); extern M_APM M_get_stack_var(void); extern void M_restore_stack(int); extern int M_get_sizeof_int(void); extern void M_apm_sdivide(M_APM, int, M_APM, M_APM); extern void M_cos_to_sin(M_APM, int, M_APM); extern void M_limit_angle_to_pi(M_APM, int, M_APM); extern void M_log_near_1(M_APM, int, M_APM); extern void M_get_sqrt_guess(M_APM, M_APM); extern void M_get_cbrt_guess(M_APM, M_APM); extern void M_get_log_guess(M_APM, M_APM); extern void M_get_asin_guess(M_APM, M_APM); extern void M_get_acos_guess(M_APM, M_APM); extern void M_arcsin_near_0(M_APM, int, M_APM); extern void M_arccos_near_0(M_APM, int, M_APM); extern void M_arctan_near_0(M_APM, int, M_APM); extern void M_log_basic_iteration(M_APM, int, M_APM); extern void M_check_log_places(int); extern void M_log_AGM_R_func(M_APM, int, M_APM, M_APM); extern void M_init_util_data(void); extern void M_get_div_rem_addr(UCHAR **, UCHAR **); extern void M_get_div_rem(int,UCHAR *, UCHAR *); extern void M_get_div_rem_10(int, UCHAR *, UCHAR *); extern void M_apm_normalize(M_APM); extern void M_apm_scale(M_APM, int); extern void M_apm_pad(M_APM, int); extern void M_long_2_ascii(char *, long); extern void M_check_PI_places(int); extern void M_calculate_PI_AGM(M_APM, int); extern void M_set_to_zero(M_APM); extern int M_strposition(char *, char *); extern char *M_lowercase(char *); extern void M_apm_log_error_msg(int, char *); extern void M_apm_round_fixpt(M_APM, int, M_APM); #endif XQilla-2.3.0/src/mapm/mapm_gcd.c0000644000151400015140000001136711571227107013272 00000000000000 /* * M_APM - mapm_gcd.c * * Copyright (C) 2001 - 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" /****************************************************************************/ /* * From Knuth, The Art of Computer Programming: * * This is the binary GCD algorithm as described * in the book (Algorithm B) */ void m_apm_gcd(M_APM r, M_APM u, M_APM v) { M_APM tmpM, tmpN, tmpT, tmpU, tmpV; int kk, kr, mm; long pow_2; /* 'is_integer' will return 0 || 1 */ if ((m_apm_is_integer(u) + m_apm_is_integer(v)) != 2) { M_apm_log_error_msg(M_APM_RETURN, "Warning! \'m_apm_gcd\', Non-integer input"); M_set_to_zero(r); return; } if (u->m_apm_sign == 0) { m_apm_absolute_value(r, v); return; } if (v->m_apm_sign == 0) { m_apm_absolute_value(r, u); return; } tmpM = M_get_stack_var(); tmpN = M_get_stack_var(); tmpT = M_get_stack_var(); tmpU = M_get_stack_var(); tmpV = M_get_stack_var(); m_apm_absolute_value(tmpU, u); m_apm_absolute_value(tmpV, v); /* Step B1 */ kk = 0; while (TRUE) { mm = 1; if (m_apm_is_odd(tmpU)) break; mm = 0; if (m_apm_is_odd(tmpV)) break; m_apm_multiply(tmpN, MM_0_5, tmpU); m_apm_copy(tmpU, tmpN); m_apm_multiply(tmpN, MM_0_5, tmpV); m_apm_copy(tmpV, tmpN); kk++; } /* Step B2 */ if (mm) { m_apm_negate(tmpT, tmpV); goto B4; } m_apm_copy(tmpT, tmpU); /* Step: */ B3: m_apm_multiply(tmpN, MM_0_5, tmpT); m_apm_copy(tmpT, tmpN); /* Step: */ B4: if (m_apm_is_even(tmpT)) goto B3; /* Step B5 */ if (tmpT->m_apm_sign == 1) m_apm_copy(tmpU, tmpT); else m_apm_negate(tmpV, tmpT); /* Step B6 */ m_apm_subtract(tmpT, tmpU, tmpV); if (tmpT->m_apm_sign != 0) goto B3; /* * result = U * 2 ^ kk */ if (kk == 0) m_apm_copy(r, tmpU); else { if (kk == 1) m_apm_multiply(r, tmpU, MM_Two); if (kk == 2) m_apm_multiply(r, tmpU, MM_Four); if (kk >= 3) { mm = kk / 28; kr = kk % 28; pow_2 = 1L << kr; if (mm == 0) { m_apm_set_long(tmpN, pow_2); m_apm_multiply(r, tmpU, tmpN); } else { m_apm_copy(tmpN, MM_One); m_apm_set_long(tmpM, 0x10000000L); /* 2 ^ 28 */ while (TRUE) { m_apm_multiply(tmpT, tmpN, tmpM); m_apm_copy(tmpN, tmpT); if (--mm == 0) break; } if (kr == 0) { m_apm_multiply(r, tmpU, tmpN); } else { m_apm_set_long(tmpM, pow_2); m_apm_multiply(tmpT, tmpN, tmpM); m_apm_multiply(r, tmpU, tmpT); } } } } M_restore_stack(5); } /****************************************************************************/ /* * u * v * LCM(u,v) = ------------ * GCD(u,v) */ void m_apm_lcm(M_APM r, M_APM u, M_APM v) { M_APM tmpN, tmpG; tmpN = M_get_stack_var(); tmpG = M_get_stack_var(); m_apm_multiply(tmpN, u, v); m_apm_gcd(tmpG, u, v); m_apm_integer_divide(r, tmpN, tmpG); M_restore_stack(2); } /****************************************************************************/ #ifdef BIG_COMMENT_BLOCK /* * traditional GCD included for reference * (also useful for testing ...) */ /* * From Knuth, The Art of Computer Programming: * * To compute GCD(u,v) * * A1: * if (v == 0) return (u) * A2: * t = u mod v * u = v * v = t * goto A1 */ void m_apm_gcd_traditional(M_APM r, M_APM u, M_APM v) { M_APM tmpD, tmpN, tmpU, tmpV; tmpD = M_get_stack_var(); tmpN = M_get_stack_var(); tmpU = M_get_stack_var(); tmpV = M_get_stack_var(); m_apm_absolute_value(tmpU, u); m_apm_absolute_value(tmpV, v); while (TRUE) { if (tmpV->m_apm_sign == 0) break; m_apm_integer_div_rem(tmpD, tmpN, tmpU, tmpV); m_apm_copy(tmpU, tmpV); m_apm_copy(tmpV, tmpN); } m_apm_copy(r, tmpU); M_restore_stack(4); } /****************************************************************************/ #endif XQilla-2.3.0/src/mapm/mapmipwr.c0000644000151400015140000000416511571227107013355 00000000000000 /* * M_APM - mapmipwr.c * * Copyright (C) 1999 - 2002 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" /****************************************************************************/ void m_apm_integer_pow(M_APM rr, int places, M_APM aa, int mexp) { M_APM tmp0, tmpy, tmpz; int nexp, ii, signflag, local_precision; if (mexp == 0) { m_apm_copy(rr, MM_One); return; } else { if (mexp > 0) { signflag = 0; nexp = mexp; } else { signflag = 1; nexp = -mexp; } } if (aa->m_apm_sign == 0) { M_set_to_zero(rr); return; } tmp0 = M_get_stack_var(); tmpy = M_get_stack_var(); tmpz = M_get_stack_var(); local_precision = places + 8; m_apm_copy(tmpy, MM_One); m_apm_copy(tmpz, aa); while (TRUE) { ii = nexp & 1; nexp = nexp >> 1; if (ii != 0) /* exponent -was- odd */ { m_apm_multiply(tmp0, tmpy, tmpz); m_apm_round(tmpy, local_precision, tmp0); if (nexp == 0) break; } m_apm_multiply(tmp0, tmpz, tmpz); m_apm_round(tmpz, local_precision, tmp0); } if (signflag) { m_apm_reciprocal(rr, places, tmpy); } else { m_apm_round(rr, places, tmpy); } M_restore_stack(3); } /****************************************************************************/ XQilla-2.3.0/src/mapm/mapm_fam.c0000644000151400015140000000345311571227107013275 00000000000000 /* * M_APM - mapm_fam.c * * Copyright (C) 2001 - 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" extern void M_alloc_all_util(); /****************************************************************************/ void m_apm_library_initialize() { M_alloc_all_util(); m_apm_mt_initialize(); } void m_apm_library_terminate() { m_apm_free_all_mem(); m_apm_mt_terminate(); } /****************************************************************************/ void m_apm_free_all_mem() { /* call each module which has statically declared data */ M_free_all_div(); M_free_all_exp(); #ifndef NO_FFT_MULTIPLY M_free_all_fft(); #endif M_free_all_pow(); M_free_all_rnd(); M_free_all_cnst(); M_free_all_fmul(); M_free_all_stck(); M_free_all_util(); } /****************************************************************************/ void m_apm_trim_mem_usage() { m_apm_free_all_mem(); m_apm_free(m_apm_init()); } /****************************************************************************/ XQilla-2.3.0/src/mapm/mapm_div.c0000644000151400015140000001742411571227107013317 00000000000000 /* * M_APM - mapm_div.c * * Copyright (C) 1999 - 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" static M_APM M_div_worka; static M_APM M_div_workb; static M_APM M_div_tmp7; static M_APM M_div_tmp8; static M_APM M_div_tmp9; static int M_div_firsttime = TRUE; /****************************************************************************/ void M_free_all_div() { if (M_div_firsttime == FALSE) { m_apm_free(M_div_worka); m_apm_free(M_div_workb); m_apm_free(M_div_tmp7); m_apm_free(M_div_tmp8); m_apm_free(M_div_tmp9); M_div_firsttime = TRUE; } } /****************************************************************************/ void m_apm_integer_div_rem(M_APM qq, M_APM rr, M_APM aa, M_APM bb) { m_apm_integer_divide(qq, aa, bb); m_apm_multiply(M_div_tmp7, qq, bb); m_apm_subtract(rr, aa, M_div_tmp7); } /****************************************************************************/ void m_apm_integer_divide(M_APM rr, M_APM aa, M_APM bb) { /* * we must use this divide function since the * faster divide function using the reciprocal * will round the result (possibly changing * nnm.999999... --> nn(m+1).0000 which would * invalidate the 'integer_divide' goal). */ M_apm_sdivide(rr, 4, aa, bb); if (rr->m_apm_exponent <= 0) /* result is 0 */ { M_set_to_zero(rr); } else { if (rr->m_apm_datalength > rr->m_apm_exponent) { rr->m_apm_datalength = rr->m_apm_exponent; M_apm_normalize(rr); } } } /****************************************************************************/ void M_apm_sdivide(M_APM r, int places, M_APM a, M_APM b) { int j, k, m, b0, sign, nexp, indexr, icompare, iterations; long trial_numer; void *vp; if (M_div_firsttime) { M_div_firsttime = FALSE; M_div_worka = m_apm_init(); M_div_workb = m_apm_init(); M_div_tmp7 = m_apm_init(); M_div_tmp8 = m_apm_init(); M_div_tmp9 = m_apm_init(); } sign = a->m_apm_sign * b->m_apm_sign; if (sign == 0) /* one number is zero, result is zero */ { if (b->m_apm_sign == 0) { M_apm_log_error_msg(M_APM_RETURN, "Warning! ... \'M_apm_sdivide\', Divide by 0"); } M_set_to_zero(r); return; } /* * Knuth step D1. Since base = 100, base / 2 = 50. * (also make the working copies positive) */ if (b->m_apm_data[0] >= 50) { m_apm_absolute_value(M_div_worka, a); m_apm_absolute_value(M_div_workb, b); } else /* 'normal' step D1 */ { k = 100 / (b->m_apm_data[0] + 1); m_apm_set_long(M_div_tmp9, (long)k); m_apm_multiply(M_div_worka, M_div_tmp9, a); m_apm_multiply(M_div_workb, M_div_tmp9, b); M_div_worka->m_apm_sign = 1; M_div_workb->m_apm_sign = 1; } /* setup trial denominator for step D3 */ b0 = 100 * (int)M_div_workb->m_apm_data[0]; if (M_div_workb->m_apm_datalength >= 3) b0 += M_div_workb->m_apm_data[1]; nexp = M_div_worka->m_apm_exponent - M_div_workb->m_apm_exponent; if (nexp > 0) iterations = nexp + places + 1; else iterations = places + 1; k = (iterations + 1) >> 1; /* required size of result, in bytes */ if (k > r->m_apm_malloclength) { if ((vp = MAPM_REALLOC(r->m_apm_data, (k + 32))) == NULL) { /* fatal, this does not return */ M_apm_log_error_msg(M_APM_EXIT, "\'M_apm_sdivide\', Out of memory"); } r->m_apm_malloclength = k + 28; r->m_apm_data = (UCHAR *)vp; } /* clear the exponent in the working copies */ M_div_worka->m_apm_exponent = 0; M_div_workb->m_apm_exponent = 0; /* if numbers are equal, ratio == 1.00000... */ if ((icompare = m_apm_compare(M_div_worka, M_div_workb)) == 0) { iterations = 1; r->m_apm_data[0] = 10; nexp++; } else /* ratio not 1, do the real division */ { if (icompare == 1) /* numerator > denominator */ { nexp++; /* to adjust the final exponent */ M_div_worka->m_apm_exponent += 1; /* multiply numerator by 10 */ } else /* numerator < denominator */ { M_div_worka->m_apm_exponent += 2; /* multiply numerator by 100 */ } indexr = 0; m = 0; while (TRUE) { /* * Knuth step D3. Only use the 3rd -> 6th digits if the number * actually has that many digits. */ trial_numer = 10000L * (long)M_div_worka->m_apm_data[0]; if (M_div_worka->m_apm_datalength >= 5) { trial_numer += 100 * M_div_worka->m_apm_data[1] + M_div_worka->m_apm_data[2]; } else { if (M_div_worka->m_apm_datalength >= 3) trial_numer += 100 * M_div_worka->m_apm_data[1]; } j = (int)(trial_numer / b0); /* * Since the library 'normalizes' all the results, we need * to look at the exponent of the number to decide if we * have a lead in 0n or 00. */ if ((k = 2 - M_div_worka->m_apm_exponent) > 0) { while (TRUE) { j /= 10; if (--k == 0) break; } } if (j == 100) /* qhat == base ?? */ j = 99; /* if so, decrease by 1 */ m_apm_set_long(M_div_tmp8, (long)j); m_apm_multiply(M_div_tmp7, M_div_tmp8, M_div_workb); /* * Compare our q-hat (j) against the desired number. * j is either correct, 1 too large, or 2 too large * per Theorem B on pg 272 of Art of Compter Programming, * Volume 2, 3rd Edition. * * The above statement is only true if using the 2 leading * digits of the numerator and the leading digit of the * denominator. Since we are using the (3) leading digits * of the numerator and the (2) leading digits of the * denominator, we eliminate the case where our q-hat is * 2 too large, (and q-hat being 1 too large is quite remote). */ if (m_apm_compare(M_div_tmp7, M_div_worka) == 1) { j--; m_apm_subtract(M_div_tmp8, M_div_tmp7, M_div_workb); m_apm_copy(M_div_tmp7, M_div_tmp8); } /* * Since we know q-hat is correct, step D6 is unnecessary. * * Store q-hat, step D5. Since D6 is unnecessary, we can * do D5 before D4 and decide if we are done. */ r->m_apm_data[indexr++] = (UCHAR)j; /* j == 'qhat' */ m += 2; if (m >= iterations) break; /* step D4 */ m_apm_subtract(M_div_tmp9, M_div_worka, M_div_tmp7); /* * if the subtraction yields zero, the division is exact * and we are done early. */ if (M_div_tmp9->m_apm_sign == 0) { iterations = m; break; } /* multiply by 100 and re-save */ M_div_tmp9->m_apm_exponent += 2; m_apm_copy(M_div_worka, M_div_tmp9); } } r->m_apm_sign = sign; r->m_apm_exponent = nexp; r->m_apm_datalength = iterations; M_apm_normalize(r); } /****************************************************************************/ XQilla-2.3.0/src/mapm/mapmstck.c0000644000151400015140000000535311571227107013340 00000000000000 /* * M_APM - mapmstck.c * * Copyright (C) 1999 - 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" static int M_stack_ptr = -1; static int M_last_init = -1; static int M_stack_size = 0; static char *M_stack_err_msg = "\'M_get_stack_var\', Out of memory"; static M_APM *M_stack_array; /****************************************************************************/ void M_free_all_stck() { int k; if (M_last_init >= 0) { for (k=0; k <= M_last_init; k++) m_apm_free(M_stack_array[k]); M_stack_ptr = -1; M_last_init = -1; M_stack_size = 0; MAPM_FREE(M_stack_array); } } /****************************************************************************/ M_APM M_get_stack_var() { void *vp; if (++M_stack_ptr > M_last_init) { if (M_stack_size == 0) { M_stack_size = 18; if ((vp = MAPM_MALLOC(M_stack_size * sizeof(M_APM))) == NULL) { /* fatal, this does not return */ M_apm_log_error_msg(M_APM_EXIT, M_stack_err_msg); } M_stack_array = (M_APM *)vp; } if ((M_last_init + 4) >= M_stack_size) { M_stack_size += 12; if ((vp = MAPM_REALLOC(M_stack_array, (M_stack_size * sizeof(M_APM)))) == NULL) { /* fatal, this does not return */ M_apm_log_error_msg(M_APM_EXIT, M_stack_err_msg); } M_stack_array = (M_APM *)vp; } M_stack_array[M_stack_ptr] = m_apm_init(); M_stack_array[M_stack_ptr + 1] = m_apm_init(); M_stack_array[M_stack_ptr + 2] = m_apm_init(); M_stack_array[M_stack_ptr + 3] = m_apm_init(); M_last_init = M_stack_ptr + 3; /* printf("M_last_init = %d \n",M_last_init); */ } return(M_stack_array[M_stack_ptr]); } /****************************************************************************/ void M_restore_stack(int count) { M_stack_ptr -= count; } /****************************************************************************/ XQilla-2.3.0/src/mapm/mapmutil.c0000644000151400015140000002433211571227107013347 00000000000000 /* * M_APM - mapmutil.c * * Copyright (C) 1999 - 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" static UCHAR *M_mul_div = NULL; static UCHAR *M_mul_rem = NULL; static UCHAR M_mul_div_10[100]; static UCHAR M_mul_rem_10[100]; static int M_util_firsttime = TRUE; static int M_firsttime3 = TRUE; static M_APM M_work_0_5; /****************************************************************************/ M_APM m_apm_init() { M_APM atmp; if ((atmp = (M_APM)MAPM_MALLOC(sizeof(M_APM_struct))) == NULL) { /* fatal, this does not return */ M_apm_log_error_msg(M_APM_EXIT, "\'m_apm_init\', Out of memory"); } atmp->m_apm_id = M_APM_IDENT; atmp->m_apm_malloclength = 80; atmp->m_apm_datalength = 1; atmp->m_apm_refcount = 1; /* not for us, for MAPM C++ class */ atmp->m_apm_exponent = 0; atmp->m_apm_sign = 0; if ((atmp->m_apm_data = (UCHAR *)MAPM_MALLOC(84)) == NULL) { /* fatal, this does not return */ M_apm_log_error_msg(M_APM_EXIT, "\'m_apm_init\', Out of memory"); } atmp->m_apm_data[0] = 0; return(atmp); } /****************************************************************************/ void m_apm_free(M_APM atmp) { if (atmp->m_apm_id == M_APM_IDENT) { atmp->m_apm_id = 0x0FFFFFF0L; MAPM_FREE(atmp->m_apm_data); MAPM_FREE(atmp); } else { M_apm_log_error_msg(M_APM_RETURN, "Invalid M_APM variable passed to \'m_apm_free\'"); } } /****************************************************************************/ void M_alloc_all_util() { if (M_firsttime3) { M_firsttime3 = FALSE; M_init_util_data(); M_init_trig_globals(); } if (M_util_firsttime) { M_util_firsttime = FALSE; M_work_0_5 = m_apm_init(); m_apm_set_string(M_work_0_5, "5"); } } /****************************************************************************/ void M_free_all_util() { if (M_util_firsttime == FALSE) { m_apm_free(M_work_0_5); M_util_firsttime = TRUE; } if (M_firsttime3 == FALSE) { MAPM_FREE(M_mul_div); MAPM_FREE(M_mul_rem); M_mul_div = NULL; M_mul_rem = NULL; M_firsttime3 = TRUE; } } /****************************************************************************/ /* * just a dummy wrapper to keep some compilers from complaining */ int M_get_sizeof_int() { return(sizeof(int)); } /****************************************************************************/ void M_init_util_data() { int k; UCHAR ndiv, nrem; if (M_mul_div != NULL) return; M_mul_div = (UCHAR *)MAPM_MALLOC(10000 * sizeof(UCHAR)); M_mul_rem = (UCHAR *)MAPM_MALLOC(10000 * sizeof(UCHAR)); if (M_mul_div == NULL || M_mul_rem == NULL) { /* fatal, this does not return */ M_apm_log_error_msg(M_APM_EXIT, "M_init_util_data() could not allocate memory"); } ndiv = 0; nrem = 0; for (k=0; k < 100; k++) { M_mul_div_10[k] = ndiv; M_mul_rem_10[k] = nrem; if (++nrem == 10) { nrem = 0; ndiv++; } } ndiv = 0; nrem = 0; for (k=0; k < 10000; k++) { M_mul_div[k] = ndiv; M_mul_rem[k] = nrem; if (++nrem == 100) { nrem = 0; ndiv++; } } } /****************************************************************************/ void M_get_div_rem_addr(UCHAR **ndivp, UCHAR **nremp) { *ndivp = M_mul_div; *nremp = M_mul_rem; } /****************************************************************************/ void M_get_div_rem(int tbl_lookup, UCHAR *ndiv, UCHAR *nrem) { *ndiv = M_mul_div[tbl_lookup]; *nrem = M_mul_rem[tbl_lookup]; } /****************************************************************************/ void M_get_div_rem_10(int tbl_lookup, UCHAR *ndiv, UCHAR *nrem) { *ndiv = M_mul_div_10[tbl_lookup]; *nrem = M_mul_rem_10[tbl_lookup]; } /****************************************************************************/ void m_apm_round(M_APM btmp, int places, M_APM atmp) { int ii; ii = places + 1; if (atmp->m_apm_datalength <= ii) { m_apm_copy(btmp,atmp); return; } M_work_0_5->m_apm_exponent = atmp->m_apm_exponent - ii; if (atmp->m_apm_sign > 0) m_apm_add(btmp, atmp, M_work_0_5); else m_apm_subtract(btmp, atmp, M_work_0_5); btmp->m_apm_datalength = ii; M_apm_normalize(btmp); } /****************************************************************************/ void M_apm_normalize(M_APM atmp) { int i, index, datalength, exponent; UCHAR *ucp, numdiv, numrem, numrem2; if (atmp->m_apm_sign == 0) return; datalength = atmp->m_apm_datalength; exponent = atmp->m_apm_exponent; /* make sure trailing bytes/chars are 0 */ /* the following function will adjust the 'datalength' */ /* we want the original value and will fix it later */ M_apm_pad(atmp, (datalength + 3)); while (TRUE) /* remove lead-in '0' if any */ { M_get_div_rem_10((int)atmp->m_apm_data[0], &numdiv, &numrem); if (numdiv >= 1) /* number is normalized, done here */ break; index = (datalength + 1) >> 1; if (numrem == 0) /* both nibbles are 0, we can move full bytes */ { i = 0; ucp = atmp->m_apm_data; while (TRUE) /* find out how many '00' bytes we can move */ { if (*ucp != 0) break; ucp++; i++; } memmove(atmp->m_apm_data, ucp, (index + 1 - i)); datalength -= 2 * i; exponent -= 2 * i; } else { for (i=0; i < index; i++) { M_get_div_rem_10((int)atmp->m_apm_data[i+1], &numdiv, &numrem2); atmp->m_apm_data[i] = 10 * numrem + numdiv; numrem = numrem2; } datalength--; exponent--; } } while (TRUE) /* remove trailing '0' if any */ { index = ((datalength + 1) >> 1) - 1; if ((datalength & 1) == 0) /* back-up full bytes at a time if the */ { /* current length is an even number */ ucp = atmp->m_apm_data + index; if (*ucp == 0) { while (TRUE) { datalength -= 2; index--; ucp--; if (*ucp != 0) break; } } } M_get_div_rem_10((int)atmp->m_apm_data[index], &numdiv, &numrem); if (numrem != 0) /* last digit non-zero, all done */ break; if ((datalength & 1) != 0) /* if odd, then first char must be non-zero */ { if (numdiv != 0) break; } if (datalength == 1) { atmp->m_apm_sign = 0; exponent = 0; break; } datalength--; } atmp->m_apm_datalength = datalength; atmp->m_apm_exponent = exponent; } /****************************************************************************/ void M_apm_scale(M_APM ctmp, int count) { int ii, numb, ct; UCHAR *chp, numdiv, numdiv2, numrem; void *vp; ct = count; ii = (ctmp->m_apm_datalength + ct + 1) >> 1; if (ii > ctmp->m_apm_malloclength) { if ((vp = MAPM_REALLOC(ctmp->m_apm_data, (ii + 32))) == NULL) { /* fatal, this does not return */ M_apm_log_error_msg(M_APM_EXIT, "\'M_apm_scale\', Out of memory"); } ctmp->m_apm_malloclength = ii + 28; ctmp->m_apm_data = (UCHAR *)vp; } if ((ct & 1) != 0) /* move odd number first */ { ct--; chp = ctmp->m_apm_data; ii = ((ctmp->m_apm_datalength + 1) >> 1) - 1; if ((ctmp->m_apm_datalength & 1) == 0) { /* * original datalength is even: * * uv wx yz becomes --> 0u vw xy z0 */ numdiv = 0; while (TRUE) { M_get_div_rem_10((int)chp[ii], &numdiv2, &numrem); chp[ii + 1] = 10 * numrem + numdiv; numdiv = numdiv2; if (ii == 0) break; ii--; } chp[0] = numdiv2; } else { /* * original datalength is odd: * * uv wx y0 becomes --> 0u vw xy */ M_get_div_rem_10((int)chp[ii], &numdiv2, &numrem); if (ii == 0) { chp[0] = numdiv2; } else { while (TRUE) { M_get_div_rem_10((int)chp[ii - 1], &numdiv, &numrem); chp[ii] = 10 * numrem + numdiv2; numdiv2 = numdiv; if (--ii == 0) break; } chp[0] = numdiv; } } ctmp->m_apm_exponent++; ctmp->m_apm_datalength++; } /* ct is even here */ if (ct > 0) { numb = (ctmp->m_apm_datalength + 1) >> 1; ii = ct >> 1; memmove((ctmp->m_apm_data + ii), ctmp->m_apm_data, numb); memset(ctmp->m_apm_data, 0, ii); ctmp->m_apm_datalength += ct; ctmp->m_apm_exponent += ct; } } /****************************************************************************/ void M_apm_pad(M_APM ctmp, int new_length) { int num1, numb, ct; UCHAR numdiv, numrem; void *vp; ct = new_length; if (ctmp->m_apm_datalength >= ct) return; numb = (ct + 1) >> 1; if (numb > ctmp->m_apm_malloclength) { if ((vp = MAPM_REALLOC(ctmp->m_apm_data, (numb + 32))) == NULL) { /* fatal, this does not return */ M_apm_log_error_msg(M_APM_EXIT, "\'M_apm_pad\', Out of memory"); } ctmp->m_apm_malloclength = numb + 28; ctmp->m_apm_data = (UCHAR *)vp; } num1 = (ctmp->m_apm_datalength + 1) >> 1; if ((ctmp->m_apm_datalength & 1) != 0) { M_get_div_rem_10((int)ctmp->m_apm_data[num1 - 1], &numdiv, &numrem); ctmp->m_apm_data[num1 - 1] = 10 * numdiv; } memset((ctmp->m_apm_data + num1), 0, (numb - num1)); ctmp->m_apm_datalength = ct; } /****************************************************************************/ /* debug_dsp(cc) M_APM cc; { static char buffer[8192]; m_apm_to_string(buffer, -1, cc); printf("(dsp func) = [%s]\n",buffer); } */ XQilla-2.3.0/src/mapm/mapm5sin.c0000644000151400015140000001024211571227107013243 00000000000000 /* * M_APM - mapm5sin.c * * Copyright (C) 1999 - 2002 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/01. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" /****************************************************************************/ void M_5x_sin(M_APM r, int places, M_APM x) { M_APM tmp8, tmp9; tmp8 = M_get_stack_var(); tmp9 = M_get_stack_var(); m_apm_multiply(tmp9, x, MM_5x_125R); /* 1 / (5*5*5) */ M_raw_sin(tmp8, (places + 6), tmp9); M_5x_do_it(tmp9, (places + 4), tmp8); M_5x_do_it(tmp8, (places + 4), tmp9); M_5x_do_it(r, places, tmp8); M_restore_stack(2); } /****************************************************************************/ void M_4x_cos(M_APM r, int places, M_APM x) { M_APM tmp8, tmp9; tmp8 = M_get_stack_var(); tmp9 = M_get_stack_var(); /* * if |x| >= 1.0 use multiple angle identity 4 times * if |x| < 1.0 use multiple angle identity 3 times */ if (x->m_apm_exponent > 0) { m_apm_multiply(tmp9, x, MM_5x_256R); /* 1 / (4*4*4*4) */ M_raw_cos(tmp8, (places + 8), tmp9); M_4x_do_it(tmp9, (places + 8), tmp8); M_4x_do_it(tmp8, (places + 6), tmp9); M_4x_do_it(tmp9, (places + 4), tmp8); M_4x_do_it(r, places, tmp9); } else { m_apm_multiply(tmp9, x, MM_5x_64R); /* 1 / (4*4*4) */ M_raw_cos(tmp8, (places + 6), tmp9); M_4x_do_it(tmp9, (places + 4), tmp8); M_4x_do_it(tmp8, (places + 4), tmp9); M_4x_do_it(r, places, tmp8); } M_restore_stack(2); } /****************************************************************************/ /* * calculate the multiple angle identity for sin (5x) * * sin (5x) == 16 * sin^5 (x) - 20 * sin^3 (x) + 5 * sin(x) */ void M_5x_do_it(M_APM rr, int places, M_APM xx) { M_APM tmp0, tmp1, t2, t3, t5; tmp0 = M_get_stack_var(); tmp1 = M_get_stack_var(); t2 = M_get_stack_var(); t3 = M_get_stack_var(); t5 = M_get_stack_var(); m_apm_multiply(tmp1, xx, xx); m_apm_round(t2, (places + 4), tmp1); /* x ^ 2 */ m_apm_multiply(tmp1, t2, xx); m_apm_round(t3, (places + 4), tmp1); /* x ^ 3 */ m_apm_multiply(t5, t2, t3); /* x ^ 5 */ m_apm_multiply(tmp0, xx, MM_Five); m_apm_multiply(tmp1, t5, MM_5x_Sixteen); m_apm_add(t2, tmp0, tmp1); m_apm_multiply(tmp1, t3, MM_5x_Twenty); m_apm_subtract(tmp0, t2, tmp1); m_apm_round(rr, places, tmp0); M_restore_stack(5); } /****************************************************************************/ /* * calculate the multiple angle identity for cos (4x) * * cos (4x) == 8 * [ cos^4 (x) - cos^2 (x) ] + 1 */ void M_4x_do_it(M_APM rr, int places, M_APM xx) { M_APM tmp0, tmp1, t2, t4; tmp0 = M_get_stack_var(); tmp1 = M_get_stack_var(); t2 = M_get_stack_var(); t4 = M_get_stack_var(); m_apm_multiply(tmp1, xx, xx); m_apm_round(t2, (places + 4), tmp1); /* x ^ 2 */ m_apm_multiply(t4, t2, t2); /* x ^ 4 */ m_apm_subtract(tmp0, t4, t2); m_apm_multiply(tmp1, tmp0, MM_5x_Eight); m_apm_add(tmp0, MM_One, tmp1); m_apm_round(rr, places, tmp0); M_restore_stack(4); } /****************************************************************************/ /* * compute r = sqrt(1 - a ^ 2). */ void M_cos_to_sin(M_APM r, int places, M_APM a) { M_APM tmp1, tmp2; tmp1 = M_get_stack_var(); tmp2 = M_get_stack_var(); m_apm_multiply(tmp1, a, a); m_apm_subtract(tmp2, MM_One, tmp1); m_apm_sqrt(r, places, tmp2); M_restore_stack(2); } /****************************************************************************/ XQilla-2.3.0/src/mapm/README0000644000151400015140000005550511571227107012241 00000000000000************************************************************************** MAPM Version 4.6.1 April 12, 2003 Michael C. Ring ringx004@tc.umn.edu Latest release will be available at http://tc.umn.edu/~ringx004 ************************************************************************** * * * Copyright (C) 1999 - 2003 Michael C. Ring * * * * This software is Freeware. * * * * Permission to use, copy, and distribute this software and its * * documentation for any purpose with or without fee is hereby granted, * * provided that the above copyright notice appear in all copies and * * that both that copyright notice and this permission notice appear * * in supporting documentation. * * * * Thission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * * This software is provided "as is" without express or implied warranty. * * ************************************************************************** --------------------------------------- Mike's Arbitrary Precision Math Library --------------------------------------- Mike's Arbitrary Precision Math Library is a set of functions that allow the user to perform math to any level of accuracy that is desired. The inspiration for this library was Lloyd Zusman's similar APM package that was released in ~1988. I borrowed some of his ideas in my implementation, creating a new data type (MAPM) and how the data type was used by the user. However, there were a few things I wanted my library to do that the original library did not : 1) Round a value to any desired precision. This is very handy when multiplying for many iterations. Since multiplication guarantees an exact result, the number of digits will grow without bound. I wanted a way to trim the number of significant digits that were retained. 2) A natural support for floating point values. From most of the other libraries I looked at, they seem to have a preference for integer only type math manipulations. (However, this library will also do integer only math if you desire). And if a library can only do integers, it can't do ... 3) Trig functions and other common C math library functions. This library will perform the following functions to any desired precision level : SQRT, CBRT, SIN, COS, TAN, ARC-SIN, ARC-COS, ARC-TAN, ARC-TAN2, LOG, LOG10, EXP, POW, SINH, COSH, TANH, ARC-SINH, ARC-COSH, ARC-TANH, and also FACTORIAL. The full 'math.h' is not duplicated, though I think these are most of the important ones. My definition of what's important is what I've actually used in a real application. NOTE: MAPM Library History can now be found in 'history.txt' (I really wasn't sure what to call this library. 'Arbitrary Precision Math' is a defacto standard for what this does, but that name was already taken, so I just put an 'M' in front of it ...) ************************************************************************** KNOWN BUGS : None ************************************************************************** IF YOU ARE IN A HURRY ... UNIX: (assumes gcc compiler) run make (build library + 3 executables) run make -f makefile.osx (for MAC OSX) --- OR --- run: mklib (this will create the library, lib_mapm.a) run: mkdemo (this will create 3 executables, 'calc', 'validate', and 'primenum') DOS / Win NT/9x (in a DOS window for NT/9x): see the file 'README.DOS' for instructions. ************************************************************************** calc: This is a command line version of an RPN calculator. If you are familiar with RPN calculators, the use of this program will be quite obvious. The default is 30 decimal places but this can be changed with the '-d' command line option. This is not an interactive program, it just computes an expression from the command line. Run 'calc' with no arguments to get a list of the operators. compute : (345.2 * 87.33) - (11.88 / 3.21E-2) calc 345.2 87.33 x 11.88 3.21E-2 / - result: 29776.22254205607476635514018692 compute PI to 70 decimal places : (6 * arcsin(0.5)) calc -d70 6 .5 as x result : 3.1415926535897932384626433832795028841971693993751058209749445923078164 validate : This program will compare the MAPM math functions to the C standard library functions, like sqrt, sin, exp, etc. This should give the user a good idea that the library is operating correctly. The program will also compute some known quantities to 70 digits of precision, like PI, log(2), etc. There was nothing special about '70' other than that number of digits fit nicely on one line. primenum: This program will generate the first 10 prime numbers starting with the number entered as an argument. Example: primenum 1234567890 will output (actually 1 per line): this took ~5 sec on my PC, a 350MHz PII. 1234567891, 1234567907, 1234567913, 1234567927, 1234567949, 1234567967, 1234567981, 1234568021, 1234568029, 1234568047 ************************************************************************** To use the library, simply include 'm_apm.h' and link your program with the library, lib_mapm.a (unix) or [lib_]mapm.lib (dos). For unix builds, you also may need to specify the math library (-lm) when linking. The reason is some of the MAPM functions use an iterative algorithm. When you use an iterative solution, you have to supply an initial guess. I use the standard math library to generate this initial guess. I debated whether this library should be stand-alone, i.e. generate it's own initial guesses with some algorithm. In the end, I decided using the standard math library would not be a big inconvienence and also it was just too tempting having an immediate 15 digits of precision. When you prime the iterative routines with 15 accurate digits, the MAPM functions converge faster. See the file 'algorithms.used' to see a description of the algorithms I used in the library. Some I derived on my own, others I borrowed from people smarter than me. Version 2 of the library supports a 'fast' multiplication algorithm. The algorithm used is described in the algorithms.used file. A considerable amount of time went into finding fast algorithms for the library. However, some could possibly be even better. If anyone has a more efficient algorithm for any of these functions, I would like to here from you. See the file 'function.ref' to see a description of all the functions in the library and the calling conventions, prototypes, etc. See the file 'struct.ref' which documents how I store the numbers internally in the MAPM data structure. This will not be needed for normal use, but it will be very useful if you need to change/add to the existing library. ************************************************************************** USING MAPM IN A MULTI-THREADED APPLICATION : Note that the default MAPM library is NOT thread safe. MAPM internal data structures could get corrupted if multiple MAPM functions are active at the same time. The user should guarantee that only one thread is performing MAPM functions. This can usually be achieved by a call to the operating system to obtain a 'semaphore', 'mutex', or 'critical code section' so the operating system will guarantee that only one MAPM thread will be active at a time. ************************************************************************** QUICK TEMPLATE FOR NORMAL USE : The MAPM math is done on a new data type called "M_APM". This is actually a pointer to a structure, but the contents of the structure should never be manipulated: all operations on MAPM entities are done through a functional interface. The MAPM routines will automatically allocate enough space in their results to hold the proper number of digits. The caller must initialize all MAPM values before the routines can operate on them (including the values intended to contain results of calculations). Once this initialization is done, the user never needs to worry about resizing the MAPM values, as this is handled inside the MAPM routines and is totally invisible to the user. The result of a MAPM operation cannot be one of the other MAPM operands. If you want this to be the case, you must put the result into a temporary variable and then assign (m_apm_copy) it to the appropriate operand. All of the MAPM math functions begin with m_apm_*. There are some predefined constants for your use. In case it's not obvious, these should never appear as a 'result' parameter in a function call. The following constants are available : (declared in m_apm.h) MM_Zero MM_One MM_Two MM_Three MM_Four MM_Five MM_Ten MM_PI MM_HALF_PI MM_2_PI MM_E MM_LOG_E_BASE_10 MM_LOG_10_BASE_E MM_LOG_2_BASE_E MM_LOG_3_BASE_E The non-integer constants above (PI, log(2), etc) are accurate to 128 decimal places. The file mapmcnst.c contains these constants. I've included 512 digit constants in this file also that are commented out. If you need more than 512 digits, you can simply use the 'calc' program to generate more precise constants (or create more precise constants at run-time in your app). The number of significant digits in the constants should be 6-8 more than the value specified in the #define. Basic plan of attack: (1) get your 'numbers' into M_APM format. (2) do your high precision math. (3) get the M_APM numbers back into a format you can use. -------- (1) -------- #include M_APM area_mapm; /* declare your variables */ M_APM tmp_mapm; M_APM array_mapm[10]; /* can use normal array notation */ M_APM array2d_mapm[10][10]; area_mapm = m_apm_init() /* init your variables */ tmp_mapm = m_apm_init(); for (i=0; i < M; i++) /* must init every element of the array */ array_mapm[i] = m_apm_init(); for (i=0; i < M; i++) for (j=0; j < N; j++) array2d_mapm[i][j] = m_apm_init(); /* * there are 3 ways to convert your number into an M_APM number * (see the file function.ref) * * a) literal string (exponential notation OK) * b) long variable * c) double variable */ m_apm_set_string(tmp_mapm, "5.3286E-7"); m_apm_set_long(array_mapm[6], -872253L); m_apm_set_double(array2d_mapm[3][7], -529.4486711); -------- (2) -------- do your math ... m_apm_add(cc_mapm, aa_mapm, MM_PI); m_apm_divide(bb_mapm, DECIMAL_PLACES, aa_mapm, MM_LOG_2_BASE_E); m_apm_sin(bb_mapm, DECIMAL_PLACES, aa_mapm); whatever ... -------- (3) -------- There are 5 total functions for converting an M_APM number into something useful. (See the file 'function.ref' for full function descriptions) For these 5 functions, M_APM number -> string is the conversion =================== ==== METHOD 1 ==== : floating point values (m_apm_to_string) =================== the format will be in scientific (exponential) notation output string = [-]n.nnnnnE+x or ...E-x where 'n' are digits and the exponent will be always be present, including E+0 it's easy to convert this to a double: double dtmp = atof(out_buffer); =================== ==== METHOD 2 ==== : floating point values (m_apm_to_fixpt_string) =================== (m_apm_to_fixpt_stringex) (m_apm_to_fixpt_stringexp) the format will be in fixed point notation output string = [-]mmm.nnnnnn where 'm' & 'n' are digits. =================== ==== METHOD 3 ==== : integer values (m_apm_to_integer_string) =================== the format will simply be digits with a possible leading '-' sign. output string = [-]nnnnnn where 'n' are digits. it's easy to convert this to a long : long mtmp = atol(out_buffer); ... or an int : int itmp = atoi(out_buffer); Note that if the M_APM number has a fractional portion, the fraction will be truncated and only the integer portion will be output. char out_buffer[1024]; m_apm_to_string(out_buffer, DECIMAL_PLACES, mapm_number); m_apm_to_fixpt_string(out_buffer, DECIMAL_PLACES, mapm_number); m_apm_to_integer_string(out_buffer, mapm_number); ************************************************************************** ********************************************************* **** NOTES on the fixed point formatting functions **** ********************************************************* Assume you have the following code: --> m_apm_set_string(aa_mapm, "2.0E18"); --> m_apm_sqrt(bb_mapm, 40, aa_mapm); --> m_apm_to_string(buffer, 40, bb_mapm); --> fprintf(stdout,"[%s]\n",buffer); --> m_apm_to_fixpt_string(buffer, 40, bb_mapm); --> fprintf(stdout,"[%s]\n",buffer); It is desired to compute the sqrt(2.0E+18) to 40 significant digits. You then want the result output with 40 decimal places. But the output from above is : [1.4142135623730950488016887242096980785697E+9] [1414213562.3730950488016887242096980785697000000000] Why are there 9 '0' in the fixed point formatted string?? The sqrt calculation computed 40 significant digits relative to the number in EXPONENTIAL format. When the number is output in exponential format, the 40 digits are as expected with an exponent of 'E+9'. The same number formatted as fixed point appears to be an error. Remember, we computed 40 significant digits. However, the result has an exponent of '+9'. So, 9 of the digits are needed *before* the decimal point. In our calculation, only 31 digits of precision remain from our original 40. We then asked the fixed point formatting function to format 40 digits. Only 31 are left so 9 zeros are used as pad at the end to fulfill the 40 places asked for. Keep this in mind if you truly desire more accurate results in fixed point formatting and your result contains a large positive exponent. ************************************************************************** MAPM C++ WRAPPER CLASS: Orion Sky Lawlor (olawlor@acm.org) has added a very nice C++ wrapper class to m_apm.h. This C++ class will have no effect if you just use a normal C compiler. The library will operate as before with no user impacts. For now, I recommend compiling the library as 'C'. In order to compile the library as C++, all the function declarations will need to be updated. This may or may not happen in the near future. Since the C++ wrapper class works very nicely as is, there is no pressing need to update the entire library yet. See the file 'cpp_function.ref' to see a description of how to use the MAPM class. To compile and link the C++ demo program: (assuming the library is already built) UNIX: g++ cpp_demo.cpp lib_mapm.a -s -o cpp_demo -lm GCC for DOS: (gxx is the C++ compiler) gxx cpp_demo.cpp lib_mapm.a -s -o cpp_demo.exe -lm Using the C++ wrapper allows you to do things like: // Compute the factorial of the integer n MAPM factorial(MAPM n) { MAPM i; MAPM product = 1; for (i=2; i <= n; i++) product *= i; return product; } The syntax is the same as if you were just writing normal code, but all the computations will be performed with the high precision math library, using the new 'datatype' MAPM. The default precision of the computations is as follows: Addition, subtraction, and multiplication will maintain ALL significant digits. All other operations (divide, sin, etc) will use the following rules: 1) if the operation uses only one input value [y = sin(x)], the result 'y' will be the same precision as 'x', with a minimum of 30 digits if 'x' is less than 30 digits. 2) if the operation uses two input values [z = atan2(y,x)], the result 'z' will be the max digits of 'x' or 'y' with a minimum of 30. The default precision is 30 digits. You can change the precision at any time with the function 'm_apm_cpp_precision'. (See function.ref) ----> m_apm_cpp_precision(80); will result in all operations being accurate to a minimum of 80 significant digits. If any operand contains more than the minimum number of digits, then the result will contain the max number of digits of the operands. NOTE!: Some real life use with the C++ wrapper has revealed a certain tendency for a program to become quite slow after many iterations (like in a for/while loop). After a little debug, the reason became clear. Remember that multiplication will maintain ALL significant digits : 20 digit number x 20 digit number = 40 digits 40 digit number x 40 digit number = 80 digits 80 digit number x 80 digit number = 160 digits etc. So after numerous iterations, the number of significant digits was growing without bound. The easy way to fix the problem is to simply *round* your result after a multiply or some other complex operation. For example: #define MAX_DIGITS 256 p1 = (p0 * sin(b1) * exp(1 + u1)) / sqrt(1 + b1); p1 = p1.round(MAX_DIGITS); If you 'round' as shown here, your program will likely be nearly as fast as a straight 'C' version. NOTE #2! Reference the following code snippet: ... MAPM pi1, pi2; char obuf[256]; m_apm_cpp_precision(62); pi1 = 2 * asin("1"); pi2 = 2 * asin(1.0); pi1.toString(obuf, 60); printf("PI1 = [%s] \n",obuf); pi2.toString(obuf, 60); printf("PI2 = [%s] \n",obuf); ... On my system, the output is : PI1 = [3.141592653589793238462643383279502884197169399375105820974945E+0] PI2 = [3.141592653589790000000000000000000000000000000000000000000000E+0] PI2 only has 15 significant digits! This is due to how the second asin is called. It is called with a 'double' as the argument, hence the compiler will use the default double asin function from the standard library. This is likely not the intent but this would be easy to miss if this was a complex calculation and we didn't know the 'right' answer. In order to force the use of the overloaded MAPM functions, call the MAPM functions with a quoted string as the argument (if the argument is a constant and not a variable). This would also work (though it seems less elegant ...) : MAPM t = 1; pi2 = 2 * asin(t); ----------- If you have any questions or problems with the C++ wrapper, please let me know. I am not very C++ proficient, but I'd still like to know about any problems. Orion Sky Lawlor (olawlor@acm.org) is the one who implemented the MAPM class, so he'll have to resolve any real hardcore problems, if you have any. ************************************************************************** TESTING : Testing the library was interesting. How do I know it's right? Since I test the library against the standard C runtime math library (see below) I have high confidence that the MAPM library is giving correct results. The logic here is the basic algorithms are independent of the number of digits calculated, more digits just takes longer. The MAPM library has been tested in the following environments : Linux i486 / gcc 2.7.2.3, gcc 2.95.2 Linux i686 / gcc 2.91.66, gcc 2.95.2, gcc 2.95.3, gcc 3.0.4 FreeBSD 4.1 / gcc 2.95.1 FreeBSD 5.x / gcc 2.95.2, gcc 2.95.3 HP-UX 9.x /gcc 2.5.8 HP-UX 10.x / gcc 2.95.2 Sun 5.5.1 (output from uname) Sun Solaris 2.6 / gcc 2.95.1 MAC OSX / gcc ? DOS 5.0 using GCC 2.8.1 for DOS DOS 5.0 using GCC 2.95.2 for DOS DOS ??? using Borland Turbo C++ 3.0 WIN NT+SP5 using Borland C++ 5.02 IDE, 5.2 & 5.5 command line. WIN98 using Borland C++ 5.5 command line. WIN98 & NT using LCC-WIN32 Ver 3.2 WIN98 & NT using Watcom C 11.x WIN95 & WIN98 using MINGW-32 version mingw-1.0.1-20010726 WIN?? using Metrowerks CodeWarrior Pro 7.0 for Windows WIN98 & NT using Microsoft Visual C++ 6.0 DOS 5.0 using Microsoft C 5.1 and 8.00c (16 bit EXEs) As a general rule, when calculating a quantity to a given number of decimal places, I calculated 4-6 extra digits and then rounded the result to what was asked for. I decided to be conservative and give a correct answer rather than to be faster and possibly have the last 2-3 digits in error. Also, some of the functions call other functions (calculating arc-cos will call cos, log will call exp, etc.) so I had to calculate a few extra digits in each iteration to guarantee the loops terminated correctly. 1) I debugged the 4 basic math operations. I threw numerous test cases at each of the operations until I knew they were correct. Also note that the math.h type functions all call the 4 basic operations numerous times. So if all the math.h functions work, it is highly probable the 4 basic math operations work also. 2) 'math.h' type functions. SQRT: Not real hard to check. Single stepping through the iterative loop showed it was always converging to the sqrt. CBRT: Similar to sqrt, single stepping through the iterative loop showed it was always converging to the cube root. EXP: I wrote a separate algorithm which expanded the Taylor series manually and compared the results against the library. POW: Straightforward since this just calls 'EXP'. LOG: I wrote a separate algorithm which expanded the Taylor series manually and compared the results against the library. This took a long time to execute since the normal series converges VERY slowly for the log function. This is why the LOG function uses an iterative algorithm. LOG10: Straightforward since this just calls 'LOG'. SIN/COS: I wrote a separate algorithm which expanded the Taylor series manually and compared the results against the library. TAN: Straightforward since this just calls 'SIN' and 'COS'. ARC-x: Single stepping through the iterative loop showed the arc family of functions were always converging. Also used these to compute PI. The value of PI is now known to many, many digits. I computed PI to 1000+ digits by computing: 6 * arcsin(0.5) and 4 * arctan(1) and 3 * arccos(0.5) and compared the output to the published 'real' values of PI. The arc family of functions exercise considerable portions of the library. HYPERBOLIC: The hyperbolic functions just use exp, log, and the 4 basic math operations. All of these functions simply use other existing functions in the library. FINALLY: Run the program 'validate'. This program compares the first 13-14 significant digits of the standard C library against the MAPM library. If this program passes, you can feel confident that the MAPM library is giving correct results. This is because the basic algorithms do not change when calculating more digits, it just takes longer. ************************************************************************** XQilla-2.3.0/src/mapm/mapm_lg2.c0000644000151400015140000000571411571227107013220 00000000000000 /* * M_APM - mapm_lg2.c * * Copyright (C) 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" #include /****************************************************************************/ /* * compute rr = log(nn) * * input is assumed to not exceed the exponent range of a normal * 'C' double ( |exponent| must be < 308) */ /****************************************************************************/ void M_log_basic_iteration(M_APM rr, int places, M_APM nn) { M_APM tmp0, tmp1, tmp2, tmp3, guess; int ii, maxiter, maxp, tolerance, local_precision; guess = M_get_stack_var(); tmp0 = M_get_stack_var(); tmp1 = M_get_stack_var(); tmp2 = M_get_stack_var(); tmp3 = M_get_stack_var(); M_get_log_guess(guess, nn); tolerance = -(places + 4); maxp = places + 16; local_precision = 18; /* * compute the maximum number of iterations * that should be needed to calculate to * the desired accuracy. [ constant below ~= 1 / log(3) ] */ maxiter = (int)(log((double)(places + 2)) * 0.91024) + 3; if (maxiter < 5) maxiter = 5; /* Use the following iteration to solve for log : exp(X) - N X = X - 2 * ------------ n+1 exp(X) + N this is a cubically convergent algorithm (each iteration yields 3X more digits) */ ii = 0; while (TRUE) { m_apm_exp(tmp1, local_precision, guess); m_apm_subtract(tmp3, tmp1, nn); m_apm_add(tmp2, tmp1, nn); m_apm_divide(tmp1, local_precision, tmp3, tmp2); m_apm_multiply(tmp0, MM_Two, tmp1); m_apm_subtract(tmp3, guess, tmp0); if (ii != 0) { if (((3 * tmp0->m_apm_exponent) < tolerance) || (tmp0->m_apm_sign == 0)) break; } if (++ii == maxiter) { M_apm_log_error_msg(M_APM_RETURN, "Warning! ... \'M_log_basic_iteration\', max iteration count reached"); break; } m_apm_round(guess, local_precision, tmp3); local_precision *= 3; if (local_precision > maxp) local_precision = maxp; } m_apm_round(rr, places, tmp3); M_restore_stack(5); } /****************************************************************************/ XQilla-2.3.0/src/mapm/mapmcnst.c0000644000151400015140000002352511571227107013344 00000000000000 /* * M_APM - mapmcnst.c * * Copyright (C) 1999 - 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" int MM_lc_PI_digits = 0; int MM_lc_log_digits; int MM_cpp_min_precision; /* only used in C++ wrapper */ M_APM MM_Zero = NULL; M_APM MM_One = NULL; M_APM MM_Two = NULL; M_APM MM_Three = NULL; M_APM MM_Four = NULL; M_APM MM_Five = NULL; M_APM MM_Ten = NULL; M_APM MM_0_5 = NULL; M_APM MM_E = NULL; M_APM MM_PI = NULL; M_APM MM_HALF_PI = NULL; M_APM MM_2_PI = NULL; M_APM MM_lc_PI = NULL; M_APM MM_lc_HALF_PI = NULL; M_APM MM_lc_2_PI = NULL; M_APM MM_lc_log2 = NULL; M_APM MM_lc_log10 = NULL; M_APM MM_lc_log10R = NULL; M_APM MM_0_85 = NULL; M_APM MM_5x_125R = NULL; M_APM MM_5x_64R = NULL; M_APM MM_5x_256R = NULL; M_APM MM_5x_Eight = NULL; M_APM MM_5x_Sixteen = NULL; M_APM MM_5x_Twenty = NULL; M_APM MM_LOG_E_BASE_10 = NULL; M_APM MM_LOG_10_BASE_E = NULL; M_APM MM_LOG_2_BASE_E = NULL; M_APM MM_LOG_3_BASE_E = NULL; static char MM_cnst_PI[] = "3.1415926535897932384626433832795028841971693993751058209749445923078\ 1640628620899862803482534211706798214808651328230664709384460955"; static char MM_cnst_E[] = "2.7182818284590452353602874713526624977572470936999595749669676277240\ 76630353547594571382178525166427427466391932003059921817413596629"; static char MM_cnst_log_2[] = "0.6931471805599453094172321214581765680755001343602552541206800094933\ 93621969694715605863326996418687542001481020570685733685520235758"; static char MM_cnst_log_3[] = "1.0986122886681096913952452369225257046474905578227494517346943336374\ 9429321860896687361575481373208878797002906595786574236800422593"; static char MM_cnst_log_10[] = "2.3025850929940456840179914546843642076011014886287729760333279009675\ 7260967735248023599720508959829834196778404228624863340952546508"; static char MM_cnst_1_log_10[] = "0.4342944819032518276511289189166050822943970058036665661144537831658\ 64649208870774729224949338431748318706106744766303733641679287159"; /* * the following constants have ~520 digits each, if needed */ /* static char MM_cnst_PI[] = "3.1415926535897932384626433832795028841971693993751058209749445923078\ 164062862089986280348253421170679821480865132823066470938446095505822\ 317253594081284811174502841027019385211055596446229489549303819644288\ 109756659334461284756482337867831652712019091456485669234603486104543\ 266482133936072602491412737245870066063155881748815209209628292540917\ 153643678925903600113305305488204665213841469519415116094330572703657\ 595919530921861173819326117931051185480744623799627495673518857527248\ 91227938183011949129833673362440656643"; static char MM_cnst_E[] = "2.7182818284590452353602874713526624977572470936999595749669676277240\ 766303535475945713821785251664274274663919320030599218174135966290435\ 729003342952605956307381323286279434907632338298807531952510190115738\ 341879307021540891499348841675092447614606680822648001684774118537423\ 454424371075390777449920695517027618386062613313845830007520449338265\ 602976067371132007093287091274437470472306969772093101416928368190255\ 151086574637721112523897844250569536967707854499699679468644549059879\ 3163688923009879312773617821542499923"; static char MM_cnst_log_2[] = "0.6931471805599453094172321214581765680755001343602552541206800094933\ 936219696947156058633269964186875420014810205706857336855202357581305\ 570326707516350759619307275708283714351903070386238916734711233501153\ 644979552391204751726815749320651555247341395258829504530070953263666\ 426541042391578149520437404303855008019441706416715186447128399681717\ 845469570262716310645461502572074024816377733896385506952606683411372\ 738737229289564935470257626520988596932019650585547647033067936544325\ 47632744951250406069438147104689946506"; static char MM_cnst_log_3[] = "1.0986122886681096913952452369225257046474905578227494517346943336374\ 942932186089668736157548137320887879700290659578657423680042259305198\ 210528018707672774106031627691833813671793736988443609599037425703167\ 959115211455919177506713470549401667755802222031702529468975606901065\ 215056428681380363173732985777823669916547921318181490200301038236301\ 222486527481982259910974524908964580534670088459650857484441190188570\ 876474948670796130858294116021661211840014098255143919487688936798494\ 3022557315353296853452952514592138765"; static char MM_cnst_log_10[] = "2.3025850929940456840179914546843642076011014886287729760333279009675\ 726096773524802359972050895982983419677840422862486334095254650828067\ 566662873690987816894829072083255546808437998948262331985283935053089\ 653777326288461633662222876982198867465436674744042432743651550489343\ 149393914796194044002221051017141748003688084012647080685567743216228\ 355220114804663715659121373450747856947683463616792101806445070648000\ 277502684916746550586856935673420670581136429224554405758925724208241\ 31469568901675894025677631135691929203"; static char MM_cnst_1_log_10[] = "0.4342944819032518276511289189166050822943970058036665661144537831658\ 646492088707747292249493384317483187061067447663037336416792871589639\ 065692210646628122658521270865686703295933708696588266883311636077384\ 905142844348666768646586085135561482123487653435434357317253835622281\ 395603048646652366095539377356176323431916710991411597894962993512457\ 934926357655469077671082419150479910989674900103277537653570270087328\ 550951731440674697951899513594088040423931518868108402544654089797029\ 86328682876262414401345704354613292060"; */ /****************************************************************************/ void M_free_all_cnst() { if (MM_lc_PI_digits != 0) { m_apm_free(MM_Zero); m_apm_free(MM_One); m_apm_free(MM_Two); m_apm_free(MM_Three); m_apm_free(MM_Four); m_apm_free(MM_Five); m_apm_free(MM_Ten); m_apm_free(MM_0_5); m_apm_free(MM_LOG_2_BASE_E); m_apm_free(MM_LOG_3_BASE_E); m_apm_free(MM_E); m_apm_free(MM_PI); m_apm_free(MM_HALF_PI); m_apm_free(MM_2_PI); m_apm_free(MM_lc_PI); m_apm_free(MM_lc_HALF_PI); m_apm_free(MM_lc_2_PI); m_apm_free(MM_lc_log2); m_apm_free(MM_lc_log10); m_apm_free(MM_lc_log10R); m_apm_free(MM_0_85); m_apm_free(MM_5x_125R); m_apm_free(MM_5x_64R); m_apm_free(MM_5x_256R); m_apm_free(MM_5x_Eight); m_apm_free(MM_5x_Sixteen); m_apm_free(MM_5x_Twenty); m_apm_free(MM_LOG_E_BASE_10); m_apm_free(MM_LOG_10_BASE_E); MM_lc_PI_digits = 0; } } /****************************************************************************/ void M_init_trig_globals() { MM_lc_PI_digits = VALID_DECIMAL_PLACES; MM_lc_log_digits = VALID_DECIMAL_PLACES; MM_cpp_min_precision = 30; MM_Zero = m_apm_init(); MM_One = m_apm_init(); MM_Two = m_apm_init(); MM_Three = m_apm_init(); MM_Four = m_apm_init(); MM_Five = m_apm_init(); MM_Ten = m_apm_init(); MM_0_5 = m_apm_init(); MM_LOG_2_BASE_E = m_apm_init(); MM_LOG_3_BASE_E = m_apm_init(); MM_E = m_apm_init(); MM_PI = m_apm_init(); MM_HALF_PI = m_apm_init(); MM_2_PI = m_apm_init(); MM_lc_PI = m_apm_init(); MM_lc_HALF_PI = m_apm_init(); MM_lc_2_PI = m_apm_init(); MM_lc_log2 = m_apm_init(); MM_lc_log10 = m_apm_init(); MM_lc_log10R = m_apm_init(); MM_0_85 = m_apm_init(); MM_5x_125R = m_apm_init(); MM_5x_64R = m_apm_init(); MM_5x_256R = m_apm_init(); MM_5x_Eight = m_apm_init(); MM_5x_Sixteen = m_apm_init(); MM_5x_Twenty = m_apm_init(); MM_LOG_E_BASE_10 = m_apm_init(); MM_LOG_10_BASE_E = m_apm_init(); m_apm_set_string(MM_One, "1"); m_apm_set_string(MM_Two, "2"); m_apm_set_string(MM_Three, "3"); m_apm_set_string(MM_Four, "4"); m_apm_set_string(MM_Five, "5"); m_apm_set_string(MM_Ten, "10"); m_apm_set_string(MM_0_5, "0.5"); m_apm_set_string(MM_0_85, "0.85"); m_apm_set_string(MM_5x_125R, "8.0E-3"); m_apm_set_string(MM_5x_64R, "1.5625E-2"); m_apm_set_string(MM_5x_256R, "3.90625E-3"); m_apm_set_string(MM_5x_Eight, "8"); m_apm_set_string(MM_5x_Sixteen, "16"); m_apm_set_string(MM_5x_Twenty, "20"); m_apm_set_string(MM_LOG_2_BASE_E, MM_cnst_log_2); m_apm_set_string(MM_LOG_3_BASE_E, MM_cnst_log_3); m_apm_set_string(MM_LOG_10_BASE_E, MM_cnst_log_10); m_apm_set_string(MM_LOG_E_BASE_10, MM_cnst_1_log_10); m_apm_set_string(MM_lc_log2, MM_cnst_log_2); m_apm_set_string(MM_lc_log10, MM_cnst_log_10); m_apm_set_string(MM_lc_log10R, MM_cnst_1_log_10); m_apm_set_string(MM_E, MM_cnst_E); m_apm_set_string(MM_PI, MM_cnst_PI); m_apm_multiply(MM_HALF_PI, MM_PI, MM_0_5); m_apm_multiply(MM_2_PI, MM_PI, MM_Two); m_apm_copy(MM_lc_PI, MM_PI); m_apm_copy(MM_lc_HALF_PI, MM_HALF_PI); m_apm_copy(MM_lc_2_PI, MM_2_PI); } /****************************************************************************/ void m_apm_cpp_precision(int digits) { if (MM_lc_PI_digits == 0) { m_apm_free(m_apm_init()); } if (digits >= 2) MM_cpp_min_precision = digits; else MM_cpp_min_precision = 2; } /****************************************************************************/ XQilla-2.3.0/src/mapm/mapm_fpf.c0000644000151400015140000002017111571227107013301 00000000000000 /* * M_APM - mapm_fpf.c * * Copyright (C) 2001 - 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" #include /****************************************************************************/ char *m_apm_to_fixpt_stringexp(int dplaces, M_APM atmp, char ch_radx, char ch_sep, int ct_sep) { int places, xp, dl, ii; char *cpr; places = dplaces; dl = atmp->m_apm_datalength; xp = atmp->m_apm_exponent; if (places < 0) /* show ALL digits */ { if (xp < 0) ii = dl - xp; else { if (dl > xp) ii = dl; else ii = xp; } } else { ii = places; if (xp > 0) ii += xp; } if (ct_sep != 0 && ch_sep != 0 && xp > 0) ii += xp / ct_sep; if ((cpr = (char *)MAPM_MALLOC((ii + 32) * sizeof(char))) == NULL) return(NULL); m_apm_to_fixpt_stringex(cpr,places,atmp,ch_radx,ch_sep,ct_sep); return(cpr); } /****************************************************************************/ void m_apm_to_fixpt_stringex(char *s, int dplaces, M_APM atmp, char ch_radix, char ch_sep, int count_sep) { M_APM btmp; char ch, *cpd, *cps; int ii, jj, kk, ct, dl, xp, no_sep_flg, places; btmp = M_get_stack_var(); places = dplaces; cpd = s; no_sep_flg = FALSE; m_apm_absolute_value(btmp, atmp); /* do conversion of positive number */ if (ch_sep == 0 || count_sep == 0) /* no separator char OR count */ no_sep_flg = TRUE; /* determine how much memory to get for the temp string */ dl = btmp->m_apm_datalength; xp = btmp->m_apm_exponent; if (places < 0) /* show ALL digits */ { if (xp < 0) ii = dl - xp; else { if (dl > xp) ii = dl; else ii = xp; } } else { ii = places; if (xp > 0) ii += xp; } if ((cps = (char *)MAPM_MALLOC((ii + 32) * sizeof(char))) == NULL) { /* fatal, this does not return */ M_apm_log_error_msg(M_APM_EXIT, "\'m_apm_to_fixpt_stringex\', Out of memory"); } m_apm_to_fixpt_string(cps, places, btmp); /* * the converted string may be all 'zero', 0.0000... * if so and the original number is negative, * do NOT set the '-' sign of our output string. */ if (atmp->m_apm_sign == -1) /* if input number negative */ { kk = 0; jj = 0; while (TRUE) { ch = cps[kk++]; if ((ch == '\0') || (jj != 0)) break; if (isdigit((int)ch)) { if (ch != '0') jj = 1; } } if (jj) *cpd++ = '-'; } ct = M_strposition(cps, "."); /* find the default (.) radix char */ if (ct == -1) /* if not found .. */ { strcat(cps, "."); /* add one */ ct = M_strposition(cps, "."); /* and then find it */ } if (places == 0) /* int format, terminate at radix char */ cps[ct] = '\0'; else cps[ct] = ch_radix; /* assign the radix char */ /* * if the number is small enough to not have any separator char's ... */ if (ct <= count_sep) no_sep_flg = TRUE; if (no_sep_flg) { strcpy(cpd, cps); } else { jj = 0; kk = count_sep; ii = ct / count_sep; if ((ii = ct - ii * count_sep) == 0) ii = count_sep; while (TRUE) /* write out the first 1,2 */ { /* (up to count_sep) digits */ *cpd++ = cps[jj++]; if (--ii == 0) break; } while (TRUE) /* write rest of the string */ { if (kk == count_sep) /* write a new separator char */ { if (jj != ct) /* unless we're at the radix */ { *cpd++ = ch_sep; /* note that this also disables */ kk = 0; /* the separator char AFTER */ } /* the radix char */ } if ((*cpd++ = cps[jj++]) == '\0') break; kk++; } } MAPM_FREE(cps); M_restore_stack(1); } /****************************************************************************/ void m_apm_to_fixpt_string(char *ss, int dplaces, M_APM mtmp) { M_APM ctmp; void *vp; int places, i2, ii, jj, kk, xp, dl, numb; UCHAR *ucp, numdiv, numrem; char *cpw, *cpd, sbuf[128]; ctmp = M_get_stack_var(); vp = NULL; cpd = ss; places = dplaces; /* just want integer portion if places == 0 */ if (places == 0) { if (mtmp->m_apm_sign >= 0) m_apm_add(ctmp, mtmp, MM_0_5); else m_apm_subtract(ctmp, mtmp, MM_0_5); m_apm_to_integer_string(cpd, ctmp); M_restore_stack(1); return; } if (places > 0) M_apm_round_fixpt(ctmp, places, mtmp); else m_apm_copy(ctmp, mtmp); /* show ALL digits */ if (ctmp->m_apm_sign == 0) /* result is 0 */ { if (places < 0) { cpd[0] = '0'; /* "0.0" */ cpd[1] = '.'; cpd[2] = '0'; cpd[3] = '\0'; } else { memset(cpd, '0', (places + 2)); /* pre-load string with all '0' */ cpd[1] = '.'; cpd[places + 2] = '\0'; } M_restore_stack(1); return; } xp = ctmp->m_apm_exponent; dl = ctmp->m_apm_datalength; numb = (dl + 1) >> 1; if (places < 0) { if (dl > xp) jj = dl + 16; else jj = xp + 16; } else { jj = places + 16; if (xp > 0) jj += xp; } if (jj > 112) { if ((vp = (void *)MAPM_MALLOC((jj + 16) * sizeof(char))) == NULL) { /* fatal, this does not return */ M_apm_log_error_msg(M_APM_EXIT, "\'m_apm_to_fixpt_string\', Out of memory"); } cpw = (char *)vp; } else { cpw = sbuf; } /* * at this point, the number is non-zero and the the output * string will contain at least 1 significant digit. */ if (ctmp->m_apm_sign == -1) /* negative number */ { *cpd++ = '-'; } ucp = ctmp->m_apm_data; ii = 0; /* convert MAPM num to ASCII digits and store in working char array */ while (TRUE) { M_get_div_rem_10((int)(*ucp++), &numdiv, &numrem); cpw[ii++] = numdiv + '0'; cpw[ii++] = numrem + '0'; if (--numb == 0) break; } i2 = ii; /* save for later */ if (places < 0) /* show ALL digits */ { places = dl - xp; if (places < 1) places = 1; } /* pad with trailing zeros if needed */ kk = xp + places + 2 - ii; if (kk > 0) memset(&cpw[ii], '0', kk); if (xp > 0) /* |num| >= 1, NO lead-in "0.nnn" */ { ii = xp + places + 1; jj = 0; for (kk=0; kk < ii; kk++) { if (kk == xp) cpd[jj++] = '.'; cpd[jj++] = cpw[kk]; } cpd[ii] = '\0'; } else /* |num| < 1, have lead-in "0.nnn" */ { jj = 2 - xp; ii = 2 + places; memset(cpd, '0', (ii + 1)); /* pre-load string with all '0' */ cpd[1] = '.'; /* assign decimal point */ for (kk=0; kk < i2; kk++) { cpd[jj++] = cpw[kk]; } cpd[ii] = '\0'; } if (vp != NULL) MAPM_FREE(vp); M_restore_stack(1); } /****************************************************************************/ void M_apm_round_fixpt(M_APM btmp, int places, M_APM atmp) { int xp, ii; xp = atmp->m_apm_exponent; ii = xp + places - 1; M_set_to_zero(btmp); /* assume number is too small so the net result is 0 */ if (ii >= 0) { m_apm_round(btmp, ii, atmp); } else { if (ii == -1) /* next digit is significant which may round up */ { if (atmp->m_apm_data[0] >= 50) /* digit >= 5, round up */ { m_apm_copy(btmp, atmp); btmp->m_apm_data[0] = 10; btmp->m_apm_exponent += 1; btmp->m_apm_datalength = 1; M_apm_normalize(btmp); } } } } /****************************************************************************/ XQilla-2.3.0/src/mapm/mapm_rcp.c0000644000151400015140000000770011571227107013315 00000000000000 /* * M_APM - mapm_rcp.c * * Copyright (C) 2000 - 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" #include /****************************************************************************/ void m_apm_divide(M_APM rr, int places, M_APM aa, M_APM bb) { M_APM tmp0, tmp1; int sn, nexp, dplaces; sn = aa->m_apm_sign * bb->m_apm_sign; if (sn == 0) /* one number is zero, result is zero */ { if (bb->m_apm_sign == 0) { M_apm_log_error_msg(M_APM_RETURN, "Warning! ... \'m_apm_divide\', Divide by 0"); } M_set_to_zero(rr); return; } /* * Use the original 'Knuth' method for smaller divides. On the * author's system, this was the *approx* break even point before * the reciprocal method used below became faster. */ if (places < 250) { M_apm_sdivide(rr, places, aa, bb); return; } /* mimic the decimal place behavior of the original divide */ nexp = aa->m_apm_exponent - bb->m_apm_exponent; if (nexp > 0) dplaces = nexp + places; else dplaces = places; tmp0 = M_get_stack_var(); tmp1 = M_get_stack_var(); m_apm_reciprocal(tmp0, (dplaces + 8), bb); m_apm_multiply(tmp1, tmp0, aa); m_apm_round(rr, dplaces, tmp1); M_restore_stack(2); } /****************************************************************************/ void m_apm_reciprocal(M_APM rr, int places, M_APM aa) { M_APM last_x, guess, tmpN, tmp1, tmp2; int ii, bflag, dplaces, nexp, tolerance; if (aa->m_apm_sign == 0) { M_apm_log_error_msg(M_APM_RETURN, "Warning! ... \'m_apm_reciprocal\', Input = 0"); M_set_to_zero(rr); return; } last_x = M_get_stack_var(); guess = M_get_stack_var(); tmpN = M_get_stack_var(); tmp1 = M_get_stack_var(); tmp2 = M_get_stack_var(); m_apm_absolute_value(tmpN, aa); /* normalize the input number (make the exponent 0) so the 'guess' below will not over/under flow on large magnitude exponents. */ nexp = aa->m_apm_exponent; tmpN->m_apm_exponent -= nexp; m_apm_set_double(guess, (1.0 / m_apm_get_double(tmpN))); tolerance = places + 4; dplaces = places + 16; bflag = FALSE; m_apm_negate(last_x, MM_Ten); /* Use the following iteration to calculate the reciprocal : X = X * [ 2 - N * X ] n+1 */ ii = 0; while (TRUE) { m_apm_multiply(tmp1, tmpN, guess); m_apm_subtract(tmp2, MM_Two, tmp1); m_apm_multiply(tmp1, tmp2, guess); if (bflag) break; m_apm_round(guess, dplaces, tmp1); /* force at least 2 iterations so 'last_x' has valid data */ if (ii != 0) { m_apm_subtract(tmp2, guess, last_x); if (tmp2->m_apm_sign == 0) break; /* * if we are within a factor of 4 on the error term, * we will be accurate enough after the *next* iteration * is complete. */ if ((-4 * tmp2->m_apm_exponent) > tolerance) bflag = TRUE; } m_apm_copy(last_x, guess); ii++; } m_apm_round(rr, places, tmp1); rr->m_apm_exponent -= nexp; rr->m_apm_sign = aa->m_apm_sign; M_restore_stack(5); } /****************************************************************************/ XQilla-2.3.0/src/mapm/mapmsqrt.c0000644000151400015140000000670311571227107013365 00000000000000 /* * M_APM - mapmsqrt.c * * Copyright (C) 1999 - 2003 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" /****************************************************************************/ void m_apm_sqrt(M_APM rr, int places, M_APM aa) { M_APM last_x, guess, tmpN, tmp7, tmp8, tmp9; int ii, bflag, nexp, tolerance, dplaces; if (aa->m_apm_sign <= 0) { if (aa->m_apm_sign == -1) { M_apm_log_error_msg(M_APM_RETURN, "Warning! ... \'m_apm_sqrt\', Negative argument"); } M_set_to_zero(rr); return; } last_x = M_get_stack_var(); guess = M_get_stack_var(); tmpN = M_get_stack_var(); tmp7 = M_get_stack_var(); tmp8 = M_get_stack_var(); tmp9 = M_get_stack_var(); m_apm_copy(tmpN, aa); nexp = 0; /* normalize the input number (make the exponent near 0) so the 'guess' function will not over/under flow on large magnitude exponents. */ if (aa->m_apm_exponent > 2) { nexp = aa->m_apm_exponent / 2; tmpN->m_apm_exponent -= 2 * nexp; } if (aa->m_apm_exponent < -2) { nexp = aa->m_apm_exponent / 2 - 1; tmpN->m_apm_exponent -= 2 * nexp; } M_get_sqrt_guess(guess, tmpN); /* actually gets 1/sqrt guess */ tolerance = places + 4; dplaces = places + 16; bflag = FALSE; m_apm_negate(last_x, MM_Ten); /* Use the following iteration to calculate 1 / sqrt(N) : X = 0.5 * X * [ 3 - N * X^2 ] n+1 */ ii = 0; while (TRUE) { m_apm_multiply(tmp9, tmpN, guess); m_apm_multiply(tmp8, tmp9, guess); m_apm_round(tmp7, dplaces, tmp8); m_apm_subtract(tmp9, MM_Three, tmp7); m_apm_multiply(tmp8, tmp9, guess); m_apm_multiply(tmp9, tmp8, MM_0_5); if (bflag) break; m_apm_round(guess, dplaces, tmp9); /* force at least 2 iterations so 'last_x' has valid data */ if (ii != 0) { m_apm_subtract(tmp7, guess, last_x); if (tmp7->m_apm_sign == 0) break; /* * if we are within a factor of 4 on the error term, * we will be accurate enough after the *next* iteration * is complete. (note that the sign of the exponent on * the error term will be a negative number). */ if ((-4 * tmp7->m_apm_exponent) > tolerance) bflag = TRUE; } m_apm_copy(last_x, guess); ii++; } /* * multiply by the starting number to get the final * sqrt and then adjust the exponent since we found * the sqrt of the normalized number. */ m_apm_multiply(tmp8, tmp9, tmpN); m_apm_round(rr, places, tmp8); rr->m_apm_exponent += nexp; M_restore_stack(6); } /****************************************************************************/ XQilla-2.3.0/src/mapm/mapmhsin.c0000644000151400015140000000532211571227107013331 00000000000000 /* * M_APM - mapmhsin.c * * Copyright (C) 2000 - 2002 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" /****************************************************************************/ /* * sinh(x) == 0.5 * [ exp(x) - exp(-x) ] */ void m_apm_sinh(M_APM rr, int places, M_APM aa) { M_APM tmp1, tmp2, tmp3; int local_precision; tmp1 = M_get_stack_var(); tmp2 = M_get_stack_var(); tmp3 = M_get_stack_var(); local_precision = places + 4; m_apm_exp(tmp1, local_precision, aa); m_apm_reciprocal(tmp2, local_precision, tmp1); m_apm_subtract(tmp3, tmp1, tmp2); m_apm_multiply(tmp1, tmp3, MM_0_5); m_apm_round(rr, places, tmp1); M_restore_stack(3); } /****************************************************************************/ /* * cosh(x) == 0.5 * [ exp(x) + exp(-x) ] */ void m_apm_cosh(M_APM rr, int places, M_APM aa) { M_APM tmp1, tmp2, tmp3; int local_precision; tmp1 = M_get_stack_var(); tmp2 = M_get_stack_var(); tmp3 = M_get_stack_var(); local_precision = places + 4; m_apm_exp(tmp1, local_precision, aa); m_apm_reciprocal(tmp2, local_precision, tmp1); m_apm_add(tmp3, tmp1, tmp2); m_apm_multiply(tmp1, tmp3, MM_0_5); m_apm_round(rr, places, tmp1); M_restore_stack(3); } /****************************************************************************/ /* * tanh(x) == [ exp(x) - exp(-x) ] / [ exp(x) + exp(-x) ] */ void m_apm_tanh(M_APM rr, int places, M_APM aa) { M_APM tmp1, tmp2, tmp3, tmp4; int local_precision; tmp1 = M_get_stack_var(); tmp2 = M_get_stack_var(); tmp3 = M_get_stack_var(); tmp4 = M_get_stack_var(); local_precision = places + 4; m_apm_exp(tmp1, local_precision, aa); m_apm_reciprocal(tmp2, local_precision, tmp1); m_apm_subtract(tmp3, tmp1, tmp2); m_apm_add(tmp4, tmp1, tmp2); m_apm_divide(tmp1, local_precision, tmp3, tmp4); m_apm_round(rr, places, tmp1); M_restore_stack(4); } /****************************************************************************/ XQilla-2.3.0/src/mapm/mapmcbrt.c0000644000151400015140000000650111571227107013322 00000000000000 /* * M_APM - mapmcbrt.c * * Copyright (C) 2000 - 2002 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/01. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" /****************************************************************************/ void m_apm_cbrt(M_APM rr, int places, M_APM aa) { M_APM last_x, guess, tmpN, tmp7, tmp8, tmp9; int ii, nexp, bflag, tolerance, maxp, local_precision; /* result is 0 if input is 0 */ if (aa->m_apm_sign == 0) { M_set_to_zero(rr); return; } last_x = M_get_stack_var(); guess = M_get_stack_var(); tmpN = M_get_stack_var(); tmp7 = M_get_stack_var(); tmp8 = M_get_stack_var(); tmp9 = M_get_stack_var(); /* compute the cube root of the positive number, we'll fix the sign later */ m_apm_absolute_value(tmpN, aa); nexp = 0; /* normalize the input number (make the exponent near 0) so the 'guess' function will not over/under flow on large magnitude exponents. */ if (aa->m_apm_exponent > 2) { nexp = aa->m_apm_exponent / 3; tmpN->m_apm_exponent -= 3 * nexp; } if (aa->m_apm_exponent < -2) { nexp = aa->m_apm_exponent / 3 - 1; tmpN->m_apm_exponent -= 3 * nexp; } M_get_cbrt_guess(guess, tmpN); tolerance = places + 4; maxp = places + 16; bflag = FALSE; m_apm_multiply(tmp9, guess, guess); m_apm_multiply(tmp8, guess, tmp9); m_apm_subtract(tmp9, tmpN, tmp8); if ((local_precision = 16 - tmp9->m_apm_exponent) < 30) local_precision = 30; m_apm_negate(last_x, MM_Ten); /* Use the following iteration to calculate the cube root : 1 N X = --- * [ 2 * X + --- ] n+1 3 X^2 */ ii = 0; while (TRUE) { m_apm_multiply(tmp8, MM_Two, guess); m_apm_multiply(tmp7, guess, guess); m_apm_divide(tmp9, local_precision, tmpN, tmp7); m_apm_add(tmp7, tmp8, tmp9); m_apm_divide(guess, local_precision, tmp7, MM_Three); if (bflag) break; /* force at least 2 iterations so 'last_x' has valid data */ if (ii != 0) { m_apm_subtract(tmp8, guess, last_x); if (tmp8->m_apm_sign == 0) break; if ((-4 * tmp8->m_apm_exponent) > tolerance) bflag = TRUE; } if (ii == 0) local_precision *= 2; else local_precision += 2 - 2 * tmp8->m_apm_exponent; if (local_precision > maxp) local_precision = maxp; m_apm_copy(last_x, guess); ii++; } m_apm_round(rr, places, guess); rr->m_apm_exponent += nexp; rr->m_apm_sign = aa->m_apm_sign; M_restore_stack(6); } /****************************************************************************/ XQilla-2.3.0/src/mapm/mapm_fft.c0000644000151400015140000005714011571227107013313 00000000000000 /* * M_APM - mapm_fft.c * * This FFT (Fast Fourier Transform) is from Takuya OOURA * * Copyright(C) 1996-1999 Takuya OOURA * email: ooura@mmm.t.u-tokyo.ac.jp * * See full FFT documentation below ... (MCR) * * This software is provided "as is" without express or implied warranty. */ #include "m_apm_lc.h" #include #ifndef MM_PI_2 #define MM_PI_2 1.570796326794896619231321691639751442098584699687 #endif #ifndef WR5000 /* cos(MM_PI_2*0.5000) */ #define WR5000 0.707106781186547524400844362104849039284835937688 #endif #ifndef RDFT_LOOP_DIV /* control of the RDFT's speed & tolerance */ #define RDFT_LOOP_DIV 64 #endif extern void M_fast_mul_fft(UCHAR *, UCHAR *, UCHAR *, int); extern void M_rdft(int, int, double *); extern void M_bitrv2(int, double *); extern void M_cftfsub(int, double *); extern void M_cftbsub(int, double *); extern void M_rftfsub(int, double *); extern void M_rftbsub(int, double *); extern void M_cft1st(int, double *); extern void M_cftmdl(int, int, double *); static double *M_aa_array, *M_bb_array; static int M_size = -1; /****************************************************************************/ void M_free_all_fft() { if (M_size > 0) { MAPM_FREE(M_aa_array); MAPM_FREE(M_bb_array); M_size = -1; } } /****************************************************************************/ /* * multiply 'uu' by 'vv' with nbytes each * yielding a 2*nbytes result in 'ww'. * each byte contains a base 100 'digit', * i.e.: range from 0-99. * * MSB LSB * * uu,vv [0] [1] [2] ... [N-1] * ww [0] [1] [2] ... [2N-1] */ void M_fast_mul_fft(UCHAR *ww, UCHAR *uu, UCHAR *vv, int nbytes) { int mflag, i, j, nn2, nn; double carry, nnr, dtemp, *a, *b; UCHAR *w0; unsigned long ul; if (M_size < 0) /* if first time in, setup working arrays */ { if (M_get_sizeof_int() == 2) /* if still using 16 bit compilers */ M_size = 1030; else M_size = 8200; M_aa_array = (double *)MAPM_MALLOC(M_size * sizeof(double)); M_bb_array = (double *)MAPM_MALLOC(M_size * sizeof(double)); if ((M_aa_array == NULL) || (M_bb_array == NULL)) { /* fatal, this does not return */ M_apm_log_error_msg(M_APM_EXIT, "\'M_fast_mul_fft\', Out of memory"); } } nn = nbytes; nn2 = nbytes >> 1; if (nn > M_size) { mflag = TRUE; a = (double *)MAPM_MALLOC((nn + 8) * sizeof(double)); b = (double *)MAPM_MALLOC((nn + 8) * sizeof(double)); if ((a == NULL) || (b == NULL)) { /* fatal, this does not return */ M_apm_log_error_msg(M_APM_EXIT, "\'M_fast_mul_fft\', Out of memory"); } } else { mflag = FALSE; a = M_aa_array; b = M_bb_array; } /* * convert normal base 100 MAPM numbers to base 10000 * for the FFT operation. */ i = 0; for (j=0; j < nn2; j++) { a[j] = (double)((int)uu[i] * 100 + uu[i+1]); b[j] = (double)((int)vv[i] * 100 + vv[i+1]); i += 2; } /* zero fill the second half of the arrays */ for (j=nn2; j < nn; j++) { a[j] = 0.0; b[j] = 0.0; } /* perform the forward Fourier transforms for both numbers */ M_rdft(nn, 1, a); M_rdft(nn, 1, b); /* perform the convolution ... */ b[0] *= a[0]; b[1] *= a[1]; for (j=3; j <= nn; j += 2) { dtemp = b[j-1]; b[j-1] = dtemp * a[j-1] - b[j] * a[j]; b[j] = dtemp * a[j] + b[j] * a[j-1]; } /* perform the inverse transform on the result */ M_rdft(nn, -1, b); /* perform a final pass to release all the carries */ /* we are still in base 10000 at this point */ carry = 0.0; j = nn; nnr = 2.0 / (double)nn; while (1) { dtemp = b[--j] * nnr + carry + 0.5; ul = (unsigned long)(dtemp * 1.0E-4); carry = (double)ul; b[j] = dtemp - carry * 10000.0; if (j == 0) break; } /* copy result to our destination after converting back to base 100 */ w0 = ww; M_get_div_rem((int)ul, w0, (w0 + 1)); for (j=0; j <= (nn - 2); j++) { w0 += 2; M_get_div_rem((int)b[j], w0, (w0 + 1)); } if (mflag) { MAPM_FREE(b); MAPM_FREE(a); } } /****************************************************************************/ /* * The following info is from Takuya OOURA's documentation : * * NOTE : MAPM only uses the 'RDFT' function (as well as the * functions RDFT calls). All the code from here down * in this file is from Takuya OOURA. The only change I * made was to add 'M_' in front of all the functions * I used. This was to guard against any possible * name collisions in the future. * * MCR 06 July 2000 * * * General Purpose FFT (Fast Fourier/Cosine/Sine Transform) Package * * Description: * A package to calculate Discrete Fourier/Cosine/Sine Transforms of * 1-dimensional sequences of length 2^N. * * fft4g_h.c : FFT Package in C - Simple Version I (radix 4,2) * * rdft: Real Discrete Fourier Transform * * Method: * -------- rdft -------- * A method with a following butterfly operation appended to "cdft". * In forward transform : * A[k] = sum_j=0^n-1 a[j]*W(n)^(j*k), 0<=k<=n/2, * W(n) = exp(2*pi*i/n), * this routine makes an array x[] : * x[j] = a[2*j] + i*a[2*j+1], 0<=j RDFT R[k] = sum_j=0^n-1 a[j]*cos(2*pi*j*k/n), 0<=k<=n/2 I[k] = sum_j=0^n-1 a[j]*sin(2*pi*j*k/n), 0 IRDFT (excluding scale) a[k] = (R[0] + R[n/2]*cos(pi*k))/2 + sum_j=1^n/2-1 R[j]*cos(2*pi*j*k/n) + sum_j=1^n/2-1 I[j]*sin(2*pi*j*k/n), 0<=k rdft(n, 1, a); rdft(n, -1, a); [parameters] n :data length (int) n >= 2, n = power of 2 a[0...n-1] :input/output data (double *) output data a[2*k] = R[k], 0<=k input data a[2*j] = R[j], 0<=j= 0) { if (n > 4) { M_bitrv2(n, a); M_cftfsub(n, a); M_rftfsub(n, a); } else if (n == 4) { M_cftfsub(n, a); } xi = a[0] - a[1]; a[0] += a[1]; a[1] = xi; } else { a[1] = 0.5 * (a[0] - a[1]); a[0] -= a[1]; if (n > 4) { M_rftbsub(n, a); M_bitrv2(n, a); M_cftbsub(n, a); } else if (n == 4) { M_cftfsub(n, a); } } } void M_bitrv2(int n, double *a) { int j0, k0, j1, k1, l, m, i, j, k; double xr, xi, yr, yi; l = n >> 2; m = 2; while (m < l) { l >>= 1; m <<= 1; } if (m == l) { j0 = 0; for (k0 = 0; k0 < m; k0 += 2) { k = k0; for (j = j0; j < j0 + k0; j += 2) { xr = a[j]; xi = a[j + 1]; yr = a[k]; yi = a[k + 1]; a[j] = yr; a[j + 1] = yi; a[k] = xr; a[k + 1] = xi; j1 = j + m; k1 = k + 2 * m; xr = a[j1]; xi = a[j1 + 1]; yr = a[k1]; yi = a[k1 + 1]; a[j1] = yr; a[j1 + 1] = yi; a[k1] = xr; a[k1 + 1] = xi; j1 += m; k1 -= m; xr = a[j1]; xi = a[j1 + 1]; yr = a[k1]; yi = a[k1 + 1]; a[j1] = yr; a[j1 + 1] = yi; a[k1] = xr; a[k1 + 1] = xi; j1 += m; k1 += 2 * m; xr = a[j1]; xi = a[j1 + 1]; yr = a[k1]; yi = a[k1 + 1]; a[j1] = yr; a[j1 + 1] = yi; a[k1] = xr; a[k1 + 1] = xi; for (i = n >> 1; i > (k ^= i); i >>= 1); } j1 = j0 + k0 + m; k1 = j1 + m; xr = a[j1]; xi = a[j1 + 1]; yr = a[k1]; yi = a[k1 + 1]; a[j1] = yr; a[j1 + 1] = yi; a[k1] = xr; a[k1 + 1] = xi; for (i = n >> 1; i > (j0 ^= i); i >>= 1); } } else { j0 = 0; for (k0 = 2; k0 < m; k0 += 2) { for (i = n >> 1; i > (j0 ^= i); i >>= 1); k = k0; for (j = j0; j < j0 + k0; j += 2) { xr = a[j]; xi = a[j + 1]; yr = a[k]; yi = a[k + 1]; a[j] = yr; a[j + 1] = yi; a[k] = xr; a[k + 1] = xi; j1 = j + m; k1 = k + m; xr = a[j1]; xi = a[j1 + 1]; yr = a[k1]; yi = a[k1 + 1]; a[j1] = yr; a[j1 + 1] = yi; a[k1] = xr; a[k1 + 1] = xi; for (i = n >> 1; i > (k ^= i); i >>= 1); } } } } void M_cftfsub(int n, double *a) { int j, j1, j2, j3, l; double x0r, x0i, x1r, x1i, x2r, x2i, x3r, x3i; l = 2; if (n > 8) { M_cft1st(n, a); l = 8; while ((l << 2) < n) { M_cftmdl(n, l, a); l <<= 2; } } if ((l << 2) == n) { for (j = 0; j < l; j += 2) { j1 = j + l; j2 = j1 + l; j3 = j2 + l; x0r = a[j] + a[j1]; x0i = a[j + 1] + a[j1 + 1]; x1r = a[j] - a[j1]; x1i = a[j + 1] - a[j1 + 1]; x2r = a[j2] + a[j3]; x2i = a[j2 + 1] + a[j3 + 1]; x3r = a[j2] - a[j3]; x3i = a[j2 + 1] - a[j3 + 1]; a[j] = x0r + x2r; a[j + 1] = x0i + x2i; a[j2] = x0r - x2r; a[j2 + 1] = x0i - x2i; a[j1] = x1r - x3i; a[j1 + 1] = x1i + x3r; a[j3] = x1r + x3i; a[j3 + 1] = x1i - x3r; } } else { for (j = 0; j < l; j += 2) { j1 = j + l; x0r = a[j] - a[j1]; x0i = a[j + 1] - a[j1 + 1]; a[j] += a[j1]; a[j + 1] += a[j1 + 1]; a[j1] = x0r; a[j1 + 1] = x0i; } } } void M_cftbsub(int n, double *a) { int j, j1, j2, j3, l; double x0r, x0i, x1r, x1i, x2r, x2i, x3r, x3i; l = 2; if (n > 8) { M_cft1st(n, a); l = 8; while ((l << 2) < n) { M_cftmdl(n, l, a); l <<= 2; } } if ((l << 2) == n) { for (j = 0; j < l; j += 2) { j1 = j + l; j2 = j1 + l; j3 = j2 + l; x0r = a[j] + a[j1]; x0i = -a[j + 1] - a[j1 + 1]; x1r = a[j] - a[j1]; x1i = -a[j + 1] + a[j1 + 1]; x2r = a[j2] + a[j3]; x2i = a[j2 + 1] + a[j3 + 1]; x3r = a[j2] - a[j3]; x3i = a[j2 + 1] - a[j3 + 1]; a[j] = x0r + x2r; a[j + 1] = x0i - x2i; a[j2] = x0r - x2r; a[j2 + 1] = x0i + x2i; a[j1] = x1r - x3i; a[j1 + 1] = x1i - x3r; a[j3] = x1r + x3i; a[j3 + 1] = x1i + x3r; } } else { for (j = 0; j < l; j += 2) { j1 = j + l; x0r = a[j] - a[j1]; x0i = -a[j + 1] + a[j1 + 1]; a[j] += a[j1]; a[j + 1] = -a[j + 1] - a[j1 + 1]; a[j1] = x0r; a[j1 + 1] = x0i; } } } void M_cft1st(int n, double *a) { int j, kj, kr; double ew, wn4r, wk1r, wk1i, wk2r, wk2i, wk3r, wk3i; double x0r, x0i, x1r, x1i, x2r, x2i, x3r, x3i; x0r = a[0] + a[2]; x0i = a[1] + a[3]; x1r = a[0] - a[2]; x1i = a[1] - a[3]; x2r = a[4] + a[6]; x2i = a[5] + a[7]; x3r = a[4] - a[6]; x3i = a[5] - a[7]; a[0] = x0r + x2r; a[1] = x0i + x2i; a[4] = x0r - x2r; a[5] = x0i - x2i; a[2] = x1r - x3i; a[3] = x1i + x3r; a[6] = x1r + x3i; a[7] = x1i - x3r; wn4r = WR5000; x0r = a[8] + a[10]; x0i = a[9] + a[11]; x1r = a[8] - a[10]; x1i = a[9] - a[11]; x2r = a[12] + a[14]; x2i = a[13] + a[15]; x3r = a[12] - a[14]; x3i = a[13] - a[15]; a[8] = x0r + x2r; a[9] = x0i + x2i; a[12] = x2i - x0i; a[13] = x0r - x2r; x0r = x1r - x3i; x0i = x1i + x3r; a[10] = wn4r * (x0r - x0i); a[11] = wn4r * (x0r + x0i); x0r = x3i + x1r; x0i = x3r - x1i; a[14] = wn4r * (x0i - x0r); a[15] = wn4r * (x0i + x0r); ew = MM_PI_2 / n; kr = 0; for (j = 16; j < n; j += 16) { for (kj = n >> 2; kj > (kr ^= kj); kj >>= 1); wk1r = cos(ew * kr); wk1i = sin(ew * kr); wk2r = 1 - 2 * wk1i * wk1i; wk2i = 2 * wk1i * wk1r; wk3r = wk1r - 2 * wk2i * wk1i; wk3i = 2 * wk2i * wk1r - wk1i; x0r = a[j] + a[j + 2]; x0i = a[j + 1] + a[j + 3]; x1r = a[j] - a[j + 2]; x1i = a[j + 1] - a[j + 3]; x2r = a[j + 4] + a[j + 6]; x2i = a[j + 5] + a[j + 7]; x3r = a[j + 4] - a[j + 6]; x3i = a[j + 5] - a[j + 7]; a[j] = x0r + x2r; a[j + 1] = x0i + x2i; x0r -= x2r; x0i -= x2i; a[j + 4] = wk2r * x0r - wk2i * x0i; a[j + 5] = wk2r * x0i + wk2i * x0r; x0r = x1r - x3i; x0i = x1i + x3r; a[j + 2] = wk1r * x0r - wk1i * x0i; a[j + 3] = wk1r * x0i + wk1i * x0r; x0r = x1r + x3i; x0i = x1i - x3r; a[j + 6] = wk3r * x0r - wk3i * x0i; a[j + 7] = wk3r * x0i + wk3i * x0r; x0r = wn4r * (wk1r - wk1i); wk1i = wn4r * (wk1r + wk1i); wk1r = x0r; wk3r = wk1r - 2 * wk2r * wk1i; wk3i = 2 * wk2r * wk1r - wk1i; x0r = a[j + 8] + a[j + 10]; x0i = a[j + 9] + a[j + 11]; x1r = a[j + 8] - a[j + 10]; x1i = a[j + 9] - a[j + 11]; x2r = a[j + 12] + a[j + 14]; x2i = a[j + 13] + a[j + 15]; x3r = a[j + 12] - a[j + 14]; x3i = a[j + 13] - a[j + 15]; a[j + 8] = x0r + x2r; a[j + 9] = x0i + x2i; x0r -= x2r; x0i -= x2i; a[j + 12] = -wk2i * x0r - wk2r * x0i; a[j + 13] = -wk2i * x0i + wk2r * x0r; x0r = x1r - x3i; x0i = x1i + x3r; a[j + 10] = wk1r * x0r - wk1i * x0i; a[j + 11] = wk1r * x0i + wk1i * x0r; x0r = x1r + x3i; x0i = x1i - x3r; a[j + 14] = wk3r * x0r - wk3i * x0i; a[j + 15] = wk3r * x0i + wk3i * x0r; } } void M_cftmdl(int n, int l, double *a) { int j, j1, j2, j3, k, kj, kr, m, m2; double ew, wn4r, wk1r, wk1i, wk2r, wk2i, wk3r, wk3i; double x0r, x0i, x1r, x1i, x2r, x2i, x3r, x3i; m = l << 2; for (j = 0; j < l; j += 2) { j1 = j + l; j2 = j1 + l; j3 = j2 + l; x0r = a[j] + a[j1]; x0i = a[j + 1] + a[j1 + 1]; x1r = a[j] - a[j1]; x1i = a[j + 1] - a[j1 + 1]; x2r = a[j2] + a[j3]; x2i = a[j2 + 1] + a[j3 + 1]; x3r = a[j2] - a[j3]; x3i = a[j2 + 1] - a[j3 + 1]; a[j] = x0r + x2r; a[j + 1] = x0i + x2i; a[j2] = x0r - x2r; a[j2 + 1] = x0i - x2i; a[j1] = x1r - x3i; a[j1 + 1] = x1i + x3r; a[j3] = x1r + x3i; a[j3 + 1] = x1i - x3r; } wn4r = WR5000; for (j = m; j < l + m; j += 2) { j1 = j + l; j2 = j1 + l; j3 = j2 + l; x0r = a[j] + a[j1]; x0i = a[j + 1] + a[j1 + 1]; x1r = a[j] - a[j1]; x1i = a[j + 1] - a[j1 + 1]; x2r = a[j2] + a[j3]; x2i = a[j2 + 1] + a[j3 + 1]; x3r = a[j2] - a[j3]; x3i = a[j2 + 1] - a[j3 + 1]; a[j] = x0r + x2r; a[j + 1] = x0i + x2i; a[j2] = x2i - x0i; a[j2 + 1] = x0r - x2r; x0r = x1r - x3i; x0i = x1i + x3r; a[j1] = wn4r * (x0r - x0i); a[j1 + 1] = wn4r * (x0r + x0i); x0r = x3i + x1r; x0i = x3r - x1i; a[j3] = wn4r * (x0i - x0r); a[j3 + 1] = wn4r * (x0i + x0r); } ew = MM_PI_2 / n; kr = 0; m2 = 2 * m; for (k = m2; k < n; k += m2) { for (kj = n >> 2; kj > (kr ^= kj); kj >>= 1); wk1r = cos(ew * kr); wk1i = sin(ew * kr); wk2r = 1 - 2 * wk1i * wk1i; wk2i = 2 * wk1i * wk1r; wk3r = wk1r - 2 * wk2i * wk1i; wk3i = 2 * wk2i * wk1r - wk1i; for (j = k; j < l + k; j += 2) { j1 = j + l; j2 = j1 + l; j3 = j2 + l; x0r = a[j] + a[j1]; x0i = a[j + 1] + a[j1 + 1]; x1r = a[j] - a[j1]; x1i = a[j + 1] - a[j1 + 1]; x2r = a[j2] + a[j3]; x2i = a[j2 + 1] + a[j3 + 1]; x3r = a[j2] - a[j3]; x3i = a[j2 + 1] - a[j3 + 1]; a[j] = x0r + x2r; a[j + 1] = x0i + x2i; x0r -= x2r; x0i -= x2i; a[j2] = wk2r * x0r - wk2i * x0i; a[j2 + 1] = wk2r * x0i + wk2i * x0r; x0r = x1r - x3i; x0i = x1i + x3r; a[j1] = wk1r * x0r - wk1i * x0i; a[j1 + 1] = wk1r * x0i + wk1i * x0r; x0r = x1r + x3i; x0i = x1i - x3r; a[j3] = wk3r * x0r - wk3i * x0i; a[j3 + 1] = wk3r * x0i + wk3i * x0r; } x0r = wn4r * (wk1r - wk1i); wk1i = wn4r * (wk1r + wk1i); wk1r = x0r; wk3r = wk1r - 2 * wk2r * wk1i; wk3i = 2 * wk2r * wk1r - wk1i; for (j = k + m; j < l + (k + m); j += 2) { j1 = j + l; j2 = j1 + l; j3 = j2 + l; x0r = a[j] + a[j1]; x0i = a[j + 1] + a[j1 + 1]; x1r = a[j] - a[j1]; x1i = a[j + 1] - a[j1 + 1]; x2r = a[j2] + a[j3]; x2i = a[j2 + 1] + a[j3 + 1]; x3r = a[j2] - a[j3]; x3i = a[j2 + 1] - a[j3 + 1]; a[j] = x0r + x2r; a[j + 1] = x0i + x2i; x0r -= x2r; x0i -= x2i; a[j2] = -wk2i * x0r - wk2r * x0i; a[j2 + 1] = -wk2i * x0i + wk2r * x0r; x0r = x1r - x3i; x0i = x1i + x3r; a[j1] = wk1r * x0r - wk1i * x0i; a[j1 + 1] = wk1r * x0i + wk1i * x0r; x0r = x1r + x3i; x0i = x1i - x3r; a[j3] = wk3r * x0r - wk3i * x0i; a[j3 + 1] = wk3r * x0i + wk3i * x0r; } } } void M_rftfsub(int n, double *a) { int i, i0, j, k; double ec, w1r, w1i, wkr, wki, wdr, wdi, ss, xr, xi, yr, yi; ec = 2 * MM_PI_2 / n; wkr = 0; wki = 0; wdi = cos(ec); wdr = sin(ec); wdi *= wdr; wdr *= wdr; w1r = 1 - 2 * wdr; w1i = 2 * wdi; ss = 2 * w1i; i = n >> 1; while (1) { i0 = i - 4 * RDFT_LOOP_DIV; if (i0 < 4) { i0 = 4; } for (j = i - 4; j >= i0; j -= 4) { k = n - j; xr = a[j + 2] - a[k - 2]; xi = a[j + 3] + a[k - 1]; yr = wdr * xr - wdi * xi; yi = wdr * xi + wdi * xr; a[j + 2] -= yr; a[j + 3] -= yi; a[k - 2] += yr; a[k - 1] -= yi; wkr += ss * wdi; wki += ss * (0.5 - wdr); xr = a[j] - a[k]; xi = a[j + 1] + a[k + 1]; yr = wkr * xr - wki * xi; yi = wkr * xi + wki * xr; a[j] -= yr; a[j + 1] -= yi; a[k] += yr; a[k + 1] -= yi; wdr += ss * wki; wdi += ss * (0.5 - wkr); } if (i0 == 4) { break; } wkr = 0.5 * sin(ec * i0); wki = 0.5 * cos(ec * i0); wdr = 0.5 - (wkr * w1r - wki * w1i); wdi = wkr * w1i + wki * w1r; wkr = 0.5 - wkr; i = i0; } xr = a[2] - a[n - 2]; xi = a[3] + a[n - 1]; yr = wdr * xr - wdi * xi; yi = wdr * xi + wdi * xr; a[2] -= yr; a[3] -= yi; a[n - 2] += yr; a[n - 1] -= yi; } void M_rftbsub(int n, double *a) { int i, i0, j, k; double ec, w1r, w1i, wkr, wki, wdr, wdi, ss, xr, xi, yr, yi; ec = 2 * MM_PI_2 / n; wkr = 0; wki = 0; wdi = cos(ec); wdr = sin(ec); wdi *= wdr; wdr *= wdr; w1r = 1 - 2 * wdr; w1i = 2 * wdi; ss = 2 * w1i; i = n >> 1; a[i + 1] = -a[i + 1]; while (1) { i0 = i - 4 * RDFT_LOOP_DIV; if (i0 < 4) { i0 = 4; } for (j = i - 4; j >= i0; j -= 4) { k = n - j; xr = a[j + 2] - a[k - 2]; xi = a[j + 3] + a[k - 1]; yr = wdr * xr + wdi * xi; yi = wdr * xi - wdi * xr; a[j + 2] -= yr; a[j + 3] = yi - a[j + 3]; a[k - 2] += yr; a[k - 1] = yi - a[k - 1]; wkr += ss * wdi; wki += ss * (0.5 - wdr); xr = a[j] - a[k]; xi = a[j + 1] + a[k + 1]; yr = wkr * xr + wki * xi; yi = wkr * xi - wki * xr; a[j] -= yr; a[j + 1] = yi - a[j + 1]; a[k] += yr; a[k + 1] = yi - a[k + 1]; wdr += ss * wki; wdi += ss * (0.5 - wkr); } if (i0 == 4) { break; } wkr = 0.5 * sin(ec * i0); wki = 0.5 * cos(ec * i0); wdr = 0.5 - (wkr * w1r - wki * w1i); wdi = wkr * w1i + wki * w1r; wkr = 0.5 - wkr; i = i0; } xr = a[2] - a[n - 2]; xi = a[3] + a[n - 1]; yr = wdr * xr + wdi * xi; yi = wdr * xi - wdi * xr; a[2] -= yr; a[3] = yi - a[3]; a[n - 2] += yr; a[n - 1] = yi - a[n - 1]; a[1] = -a[1]; } XQilla-2.3.0/src/mapm/mapm_rnd.c0000644000151400015140000001742411571227107013320 00000000000000 /* * M_APM - mapm_rnd.c * * Copyright (C) 1999 - 2002 Michael C. Ring * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted. Permission to distribute * the modified code is granted. Modifications are to be distributed * by using the file 'license.txt' as a template to modify the file header. * 'license.txt' is available in the official MAPM distribution. * * This software is provided "as is" without express or implied warranty. * * THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION BY * 'XQilla project' on 2005/11/03. * THIS FILE IS ORIGINALLY FROM MAPM VERSION 4.6.1. */ #include "m_apm_lc.h" #ifdef MSDOS #include #include #else #include extern void M_get_microsec(unsigned long *, long *); #endif extern void M_reverse_string(char *); extern void M_get_rnd_seed(M_APM); static M_APM M_rnd_aa; static M_APM M_rnd_mm; static M_APM M_rnd_XX; static M_APM M_rtmp0; static M_APM M_rtmp1; static int M_firsttime2 = TRUE; /* Used Knuth's The Art of Computer Programming, Volume 2 as the basis. Assuming the random number is X, compute (where all the math is performed on integers) : X = (a * X + c) MOD m From Knuth: 'm' should be large, at least 2^30 : we use 1.0E+15 'a' should be between .01m and .99m and not have a simple pattern. 'a' should not have any large factors in common with 'm' and (since 'm' is a power of 10) if 'a' MOD 200 = 21 then all 'm' different possible values will be generated before 'X' starts to repeat. We use 'a' = 716805947629621. This is a prime number and also meets 'a' MOD 200 = 21. Commented out below are many potential multipliers that are all prime and meet 'a' MOD 200 = 21. There are few restrictions on 'c' except 'c' can have no factor in common with 'm', hence we set 'c' = 'a'. On the first call, the system time is used to initialize X. */ /* * the following constants are all potential multipliers. they are * all prime numbers that also meet the criteria of NUM mod 200 = 21. */ /* 439682071525421 439682071528421 439682071529221 439682071529821 439682071530421 439682071532021 439682071538821 439682071539421 439682071540021 439682071547021 439682071551221 439682071553821 439682071555421 439682071557221 439682071558021 439682071558621 439682071559821 439652381461621 439652381465221 439652381465621 439652381466421 439652381467421 439652381468621 439652381470021 439652381471221 439652381477021 439652381484221 439652381488421 439652381491021 439652381492021 439652381494021 439652381496821 617294387035621 617294387038621 617294387039221 617294387044421 617294387045221 617294387048621 617294387051621 617294387051821 617294387053621 617294387058421 617294387064221 617294387065621 617294387068621 617294387069221 617294387069821 617294387070421 617294387072021 617294387072621 617294387073821 617294387076821 649378126517621 649378126517821 649378126518221 649378126520821 649378126523821 649378126525621 649378126526621 649378126528421 649378126529621 649378126530821 649378126532221 649378126533221 649378126535221 649378126539421 649378126543621 649378126546021 649378126546421 649378126549421 649378126550821 649378126555021 649378126557421 649378126560221 649378126561621 649378126562021 649378126564621 649378126565821 672091582360421 672091582364221 672091582364621 672091582367021 672091582368421 672091582369021 672091582370821 672091582371421 672091582376821 672091582380821 716805243983221 716805243984821 716805947623621 716805947624621 716805947629021 716805947629621 716805947630621 716805947633621 716805947634221 716805947635021 716805947635621 716805947642221 */ /****************************************************************************/ void M_free_all_rnd() { if (M_firsttime2 == FALSE) { m_apm_free(M_rnd_aa); m_apm_free(M_rnd_mm); m_apm_free(M_rnd_XX); m_apm_free(M_rtmp0); m_apm_free(M_rtmp1); M_firsttime2 = TRUE; } } /****************************************************************************/ void m_apm_set_random_seed(char *ss) { M_APM btmp; if (M_firsttime2) { btmp = M_get_stack_var(); m_apm_get_random(btmp); M_restore_stack(1); } m_apm_set_string(M_rnd_XX, ss); } /****************************************************************************/ /* * compute X = (a * X + c) MOD m where c = a */ void m_apm_get_random(M_APM mrnd) { if (M_firsttime2) /* use the system time as the initial seed value */ { M_firsttime2 = FALSE; M_rnd_aa = m_apm_init(); M_rnd_XX = m_apm_init(); M_rnd_mm = m_apm_init(); M_rtmp0 = m_apm_init(); M_rtmp1 = m_apm_init(); /* set the multiplier M_rnd_aa and M_rnd_mm */ m_apm_set_string(M_rnd_aa, "716805947629621"); m_apm_set_string(M_rnd_mm, "1.0E15"); M_get_rnd_seed(M_rnd_XX); } m_apm_multiply(M_rtmp0, M_rnd_XX, M_rnd_aa); m_apm_add(M_rtmp1, M_rtmp0, M_rnd_aa); m_apm_integer_div_rem(M_rtmp0, M_rnd_XX, M_rtmp1, M_rnd_mm); m_apm_copy(mrnd, M_rnd_XX); mrnd->m_apm_exponent -= 15; } /****************************************************************************/ void M_reverse_string(char *s) { size_t ct; char ch, *p1, *p2; if ((ct = strlen(s)) <= 1) return; p1 = s; p2 = s + ct - 1; ct /= 2; while (TRUE) { ch = *p1; *p1++ = *p2; *p2-- = ch; if (--ct == 0) break; } } /****************************************************************************/ #ifdef MSDOS /****************************************************************************/ /* * for DOS / Win 9x/NT systems : use 'ftime' */ void M_get_rnd_seed(M_APM mm) { int millisec; time_t timestamp; time_t ul; char ss[32], buf1[48], buf2[32]; struct timeb timebuffer; M_APM atmp; atmp = M_get_stack_var(); ftime(&timebuffer); millisec = (int)timebuffer.millitm; timestamp = timebuffer.time; ul = (timestamp / 7); ul += timestamp + 537; strcpy(ss,ctime(×tamp)); /* convert to string and copy to ss */ sprintf(buf1,"%d",(millisec / 10)); sprintf(buf2,"%lu",ul); ss[0] = ss[18]; ss[1] = ss[17]; ss[2] = ss[15]; ss[3] = ss[14]; ss[4] = ss[12]; ss[5] = ss[11]; ss[6] = ss[9]; ss[7] = ss[23]; ss[8] = ss[20]; ss[9] = '\0'; M_reverse_string(buf2); strcat(buf1,buf2); strcat(buf1,ss); m_apm_set_string(atmp, buf1); atmp->m_apm_exponent = 15; m_apm_integer_divide(mm, atmp, MM_One); M_restore_stack(1); } /****************************************************************************/ #else /****************************************************************************/ /* * for unix systems : use 'gettimeofday' */ void M_get_rnd_seed(M_APM mm) { unsigned long sec3; long usec3; char buf1[32], buf2[32]; M_APM atmp; atmp = M_get_stack_var(); M_get_microsec(&sec3,&usec3); sprintf(buf1,"%ld",usec3); sprintf(buf2,"%lu",sec3); M_reverse_string(buf2); strcat(buf1,buf2); m_apm_set_string(atmp, buf1); atmp->m_apm_exponent = 15; m_apm_integer_divide(mm, atmp, MM_One); M_restore_stack(1); } /****************************************************************************/ void M_get_microsec(unsigned long *sec, long *usec) { struct timeval time_now; /* current time for elapsed time check */ gettimeofday(&time_now, NULL); /* get current time */ *sec = time_now.tv_sec; *usec = time_now.tv_usec; } /****************************************************************************/ #endif XQilla-2.3.0/src/samples/0000755000151400015140000000000011653572442012147 500000000000000XQilla-2.3.0/src/samples/simple-api/0000755000151400015140000000000011653572443014210 500000000000000XQilla-2.3.0/src/samples/simple-api/foo.xml0000644000151400015140000000003511571227107015424 00000000000000XQilla-2.3.0/src/samples/simple-api/simple-basic.cpp0000644000151400015140000000127111606725222017176 00000000000000#include #include int main(int argc, char *argv[]) { // Initialise Xerces-C and XQilla by creating the factory object XQilla xqilla; // Parse an XQuery expression // (AutoDelete deletes the object at the end of the scope) AutoDelete query(xqilla.parse(X("1 to 100"))); // Create a context object AutoDelete context(query->createDynamicContext()); // Execute the query, using the context Result result = query->execute(context); // Iterate over the results, printing them Item::Ptr item; while(item = result->next(context)) { std::cout << UTF8(item->asString(context)) << std::endl; } return 0; } XQilla-2.3.0/src/samples/simple-api/simple-context-item.cpp0000644000151400015140000000176611636377670020563 00000000000000#include #include #include int main(int argc, char *argv[]) { // Initialise Xerces-C and XQilla by creating the factory object XQilla xqilla; // Parse an XQuery expression // (AutoDelete deletes the object at the end of the scope) AutoDelete query(xqilla.parse(X("foo/bar/@baz"))); // Create a context object AutoDelete context(query->createDynamicContext()); // Parse a document, and set it as the context item Sequence seq = context->resolveDocument(X("foo.xml")); if(!seq.isEmpty() && seq.first()->isNode()) { context->setContextItem(seq.first()); context->setContextPosition(1); context->setContextSize(1); } // Execute the query, using the context Result result = query->execute(context); // Iterate over the results, printing them Item::Ptr item; while(item = result->next(context)) { std::cout << UTF8(item->asString(context)) << std::endl; } return 0; } XQilla-2.3.0/src/samples/xqilla/0000755000151400015140000000000011653572443013442 500000000000000XQilla-2.3.0/src/samples/xqilla/xqilla-commandline.cpp0000644000151400015140000003132211653565523017646 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include #include #include //XQilla includes #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif using namespace std; #define QUERY_BUFFER_SIZE 32 * 1024 #define BASEURI_BUFFER_SIZE 2 * 1024 //////////////////////////// // function declarations // //////////////////////////// /** Print usage */ void usage(const char *progname); class MessageListenerImpl : public MessageListener { public: virtual void warning(const XMLCh *message, const LocationInfo *location) { cerr << UTF8(location->getFile()) << ":" << location->getLine() << ":" << location->getColumn() << ": warning: " << UTF8(message) << endl; } virtual void trace(const XMLCh *label, const Sequence &sequence, const LocationInfo *location, const DynamicContext *context) { cerr << UTF8(location->getFile()) << ":" << location->getLine() << ":" << location->getColumn() << ": trace: " << UTF8(label) << " "; size_t len = sequence.getLength(); if(len == 1) { cerr << UTF8(sequence.first()->asString(context)); } else if(len > 1) { cerr << "("; Sequence::const_iterator i = sequence.begin(); Sequence::const_iterator end = sequence.end(); while(i != end) { cerr << UTF8((*i)->asString(context)); if(++i != end) cerr << ","; } cerr << ")"; } cerr << endl; } }; class QueryStore { public: typedef vector::iterator iterator; typedef vector::const_iterator const_iterator; QueryStore() {} ~QueryStore() { for(iterator i = begin(); i != end(); ++i) delete *i; } void push_back(XQQuery *query) { queries_.push_back(query); } const XQQuery *back() const { return queries_.back(); } iterator begin() { return queries_.begin(); } iterator end() { return queries_.end(); } const_iterator begin() const { return queries_.begin(); } const_iterator end() const { return queries_.end(); } private: QueryStore(const QueryStore &); QueryStore &operator=(const QueryStore &); vector queries_; }; static const XMLCh fwdSlashStr[] = { '/', 0 }; struct CommandLineArgs { CommandLineArgs() : inputFile(0), outputFile(0), baseURIDir(0), conf(&fastConf), language(XQilla::XQUERY3), parseFlags(0), xpathCompatible(false), quiet(false), printAST(false), iDebug(false), numberOfTimes(1) { } void check(const char *progname) { if(queries.empty()) { usage(progname); exit(1); } if(iDebug) { if(queries.size() > 1) { cerr << "Only one query can be debugged in interactive debugging mode." << endl; exit(1); } if(numberOfTimes != 1) { cerr << "The query can only be run once in interactive debugging mode." << endl; exit(1); } } } vector queries; const char *inputFile, *outputFile, *baseURIDir; map externalVars; XQillaConfiguration *conf; int language; unsigned int parseFlags; bool xpathCompatible; bool quiet; bool printAST; bool iDebug; int numberOfTimes; static XercesConfiguration xercesConf; static FastXDMConfiguration fastConf; }; XercesConfiguration CommandLineArgs::xercesConf; FastXDMConfiguration CommandLineArgs::fastConf; int main(int argc, char *argv[]) { // First we parse the command line arguments CommandLineArgs args; for(int i = 1; i < argc; ++i) { if(*argv[i] == '-' && argv[i][2] == '\0' ){ // -h option, print usage if(argv[i][1] == 'h') { usage(argv[0]); return 0; } else if(argv[i][1] == 'i') { ++i; if(i==argc) { cerr << "Missing argument to option 'i'" << endl; return 1; } args.inputFile = argv[i]; } else if(argv[i][1] == 'b') { ++i; if(i==argc) { cerr << "Missing argument to option 'b'" << endl; return 1; } args.baseURIDir = argv[i]; } else if(argv[i][1] == 'o') { ++i; if(i==argc) { cerr << "Missing argument to option 'o'" << endl; return 1; } args.outputFile = argv[i]; } else if(argv[i][1] == 'n') { ++i; if(i==argc) { cerr << "Missing argument to option 'n'" << endl; return 1; } args.numberOfTimes = atoi(argv[i]); } else if(argv[i][1] == 'q') { args.quiet = true; } else if(argv[i][1] == 'f') { args.language |= XQilla::FULLTEXT; } else if(argv[i][1] == 'u') { args.language |= XQilla::UPDATE; args.conf = &CommandLineArgs::xercesConf; } else if(argv[i][1] == 'e') { args.language |= XQilla::EXTENSIONS; } else if(argv[i][1] == 'p') { args.language |= XQilla::XPATH2; } else if(argv[i][1] == 'P') { // You can't use xpath 1 compatibility in // XQuery mode. args.language |= XQilla::XPATH2; args.xpathCompatible = true; } else if(argv[i][1] == 's') { args.language |= XQilla::XSLT2; } else if(argv[i][1] == 't') { args.printAST = true; } else if(argv[i][1] == 'v') { ++i; if((i + 1) >= argc) { cerr << "Missing argument to option 'v'" << endl; return 1; } args.externalVars[argv[i]] = argv[i + 1]; ++i; } else if(argv[i][1] == 'x') { args.conf = &CommandLineArgs::xercesConf; } else if(argv[i][1] == 'd') { args.iDebug = true; args.parseFlags |= XQilla::DEBUG_QUERY; } else { usage(argv[0]); return 1; } } else { args.queries.push_back(argv[i]); } } // Check for bad command line arguments args.check(argv[0]); // Create the XQilla object XQilla xqilla; MessageListenerImpl mlistener; // Find the current working directory AutoDeallocate pwd(XMLPlatformUtils::getCurrentDirectory(), XMLPlatformUtils::fgMemoryManager); if(pwd.get() != NULL){ AutoDeallocate tmp(XMLPlatformUtils::fgMemoryManager, (XMLString::stringLen(pwd.get()) + 10) * sizeof(XMLCh)); XMLString::fixURI(pwd.get(), tmp.get()); XMLString::catString(tmp.get(), fwdSlashStr); pwd.set(tmp.adopt()); } int executionCount = 0; try { QueryStore parsedQueries; for(vector::iterator it1 = args.queries.begin(); it1 != args.queries.end(); ++it1) { Janitor contextGuard(xqilla.createContext((XQilla::Language)args.language, args.conf)); DynamicContext *context = contextGuard.get(); // the DynamicContext has set the baseURI to the current file // we override to a user-specified value, or to the same directory as the // query (current file) if(args.baseURIDir != NULL) { context->setBaseURI(X(args.baseURIDir)); } else { if(pwd.get() != NULL){ XMLUri base(pwd.get()); XMLUri resolved(&base, X(*it1)); context->setBaseURI(resolved.getUriText()); } } context->setXPath1CompatibilityMode(args.xpathCompatible); context->setMessageListener(&mlistener); parsedQueries.push_back(xqilla.parseFromURI(X(*it1), contextGuard.release(), args.parseFlags)); if(args.printAST) { cerr << parsedQueries.back()->getQueryPlan() << endl; } } for(int count = args.numberOfTimes; count > 0; --count) { for(QueryStore::const_iterator it2 = parsedQueries.begin(); it2 != parsedQueries.end(); ++it2) { Janitor dynamic_context((*it2)->createDynamicContext()); XPath2MemoryManager *mm = dynamic_context->getMemoryManager(); // Check if an XML file was specified if(args.inputFile != NULL) { Sequence seq; // Resolve the input file relative to the current working directory, not the query if(pwd.get() != NULL){ XMLUri base(pwd.get()); XMLUri resolved(&base, X(args.inputFile)); seq = dynamic_context->resolveDocument(resolved.getUriText(), 0); } else { seq = dynamic_context->resolveDocument(X(args.inputFile), 0); } if(!seq.isEmpty() && seq.first()->isNode()) { dynamic_context->setContextItem(seq.first()); dynamic_context->setContextPosition(1); dynamic_context->setContextSize(1); } } // Set the external variable values map::iterator v = args.externalVars.begin(); for(; v != args.externalVars.end(); ++v) { Item::Ptr value = dynamic_context->getItemFactory()->createUntypedAtomic(X(v->second), dynamic_context.get()); dynamic_context->setExternalVariable(X(v->first.c_str()), value); } time_t now; dynamic_context->setCurrentTime(time(&now)); ++executionCount; if(args.iDebug) { InteractiveDebugger::debugQuery(*it2, dynamic_context.get()); } else if(args.quiet) { (*it2)->execute(dynamic_context.get())->toSequence(dynamic_context.get()); } else { // use STDOUT if a file was not specified Janitor target(0); if(args.outputFile != NULL) { target.reset(new LocalFileFormatTarget(args.outputFile)); } else { target.reset(new StdOutFormatTarget()); } EventSerializer writer((char*)"UTF-8", (char*)"1.1", target.get(), mm); writer.addNewlines(true); NSFixupFilter nsfilter(&writer, mm); (*it2)->execute(&nsfilter, dynamic_context.get()); } } } } catch(XQException &e) { cerr << UTF8(e.getXQueryFile()) << ":" << e.getXQueryLine() << ":" << e.getXQueryColumn() << ": error: " << UTF8(e.getError()) << endl; BaseInteractiveDebugger::outputLocation(e.getXQueryFile(), e.getXQueryLine(), e.getXQueryColumn()); return 1; } catch(...) { cerr << "Caught unknown exception" << endl; return 1; } if(args.quiet) cout << "Executions: " << executionCount << endl; // clean up and exit return 0; } // print the usage message void usage(const char *progname) { const char *name = progname; while(*progname != 0) { if(*progname == '/' || *progname == '\\') { ++progname; name = progname; } else { ++progname; } } cerr << "Usage: " << name << " [options] ..." << endl << endl; cerr << "-h : Show this display" << endl; cerr << "-p : Parse in XPath 3.0 mode (default is XQuery mode)" << endl; cerr << "-P : Parse in XPath 1.0 compatibility mode (default is XQuery mode)" << endl; cerr << "-s : Parse XSLT 2.0" << endl; cerr << "-f : Parse using W3C Full-Text extensions" << endl; cerr << "-u : Parse using W3C Update extensions" << endl; cerr << "-e : Parse using XQilla specific extensions" << endl; cerr << "-d : Run the query in interactive debugging mode" << endl; cerr << "-x : Use the Xerces-C data model (default is the FastXDM)" << endl; cerr << "-i : Load XML document and bind it as the context item" << endl; cerr << "-b : Set the base URI for the context" << endl; cerr << "-v : Bind the name value pair as an external variable" << endl; cerr << "-o : Write the result to the specified file" << endl; cerr << "-n : Run the queries a number of times" << endl; cerr << "-q : Quiet mode - no output" << endl; cerr << "-t : Output an XML representation of the AST" << endl; } XQilla-2.3.0/src/samples/xqc-api/0000755000151400015140000000000011653572443013512 500000000000000XQilla-2.3.0/src/samples/xqc-api/xqc-basic.c0000644000151400015140000000155711571227107015451 00000000000000#include int main(int argc, char *argv[]) { XQC_Implementation *impl; XQC_Expression *expr; XQC_Sequence *seq; XQC_Error err; const char *value; // XQilla specific way to create an XQC_Implementation struct impl = createXQillaXQCImplementation(XQC_VERSION_NUMBER); if(impl == 0) return 1; // Prepare an XQuery expression err = impl->prepare(impl, "1 to 100", 0, &expr); if(err != 0) goto free_impl; // Execute the query err = expr->execute(expr, 0, &seq); if(err != 0) goto free_expr; // Iterate over the results, printing them while((err = seq->next(seq)) == XQC_NO_ERROR) { seq->string_value(seq, &value); printf("%s\n", value); } if(err == XQC_END_OF_SEQUENCE) err = XQC_NO_ERROR; // free everything seq->free(seq); free_expr: expr->free(expr); free_impl: impl->free(impl); return err; } XQilla-2.3.0/src/samples/xqc-api/xqc-context-item.c0000644000151400015140000000246711571227107017011 00000000000000#include int main(int argc, char *argv[]) { XQC_Implementation *impl; XQC_Expression *expr; XQC_DynamicContext *context; XQC_Sequence *seq, *doc; XQC_Error err; const char *value; // XQilla specific way to create an XQC_Implementation struct impl = createXQillaXQCImplementation(XQC_VERSION_NUMBER); if(impl == 0) return 1; // Parse an XQuery expression err = impl->prepare(impl, "foo/bar/@baz", 0, &expr); if(err != 0) goto free_impl; // Parse a document err = impl->parse_document(impl, "", &doc); if(err != 0) goto free_expr; // Create a dynamic context err = expr->create_context(expr, &context); if(err != 0) goto free_doc; // Set the document as the context item doc->next(doc); context->set_context_item(context, doc); // Execute the query err = expr->execute(expr, context, &seq); if(err != 0) goto free_context; // Iterate over the results, printing them while((err = seq->next(seq)) == XQC_NO_ERROR) { seq->string_value(seq, &value); printf("%s\n", value); } if(err == XQC_END_OF_SEQUENCE) err = XQC_NO_ERROR; // free everything seq->free(seq); free_context: context->free(context); free_doc: doc->free(doc); free_expr: expr->free(expr); free_impl: impl->free(impl); return err; } XQilla-2.3.0/src/samples/dom-api/0000755000151400015140000000000011653572443013476 500000000000000XQilla-2.3.0/src/samples/dom-api/foo.xml0000644000151400015140000000003511571227107014712 00000000000000XQilla-2.3.0/src/samples/dom-api/dom-resolver.cpp0000644000151400015140000001243311653565523016544 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include #include XERCES_CPP_NAMESPACE_USE; using namespace std; int main(int argc, char *argv[]) { if(argc != 2) { cerr << "Data file not specified." << endl; return 1; } /////////////////////// // Initialise XQilla // /////////////////////// // 1. Initialize XQilla // // Note that this initialisation takes care of initialising // xerces-c as well try { XQillaPlatformUtils::initialize(); } catch (const XMLException& eXerces) { cerr << "Error during Xerces-C initialisation.\n" << "Xerces exception message: " << UTF8(eXerces.getMessage()) << endl; return 1; } try { // 2. Obtain a DOM3 XPath2 implementation. This is a XQilla-specific // implementation that overrides the standard DOMDocument, the standard // DOMWriter and the standard DOMBuilder DOMImplementation* xqillaImplementation = DOMImplementationRegistry::getDOMImplementation(X("XPath2 3.0")); // 3. Obtain a parser and set 'do namespaces', 'use schema' and 'validate' to // true. // Create a DOMLSParser object AutoRelease parser(xqillaImplementation->createLSParser(DOMImplementationLS::MODE_SYNCHRONOUS, 0)); parser->getDomConfig()->setParameter(XMLUni::fgDOMNamespaces, true); parser->getDomConfig()->setParameter(XMLUni::fgXercesSchema, true); parser->getDomConfig()->setParameter(XMLUni::fgDOMValidateIfSchema, true); //////////////////////////// // Parse our XML document // //////////////////////////// DOMDocument *document = parser->parseURI(argv[1]); if(document == 0) { cerr << "Document not found: " << argv[1] << endl; return 1; } //////////////////////////////// // Create a parsed expression // // (compiled) and evaluate it // //////////////////////////////// // 1. Create a Namespace Resolver. This holds a map of namespace prefixes // to namespace URIs. AutoRelease resolver(document->createNSResolver(document->getDocumentElement())); resolver->addNamespaceBinding(X("my"), X("http://example.com/myURI")); // **************** Example 1: max() function ****************** // { // 2. Create a parsed expression const char* expression = "max(/Catalogue/Book/Price)"; AutoRelease parsedExpression(document->createExpression(X(expression), resolver)); // 3. Evaluate the expression. We choose to have a first result, since we // know the answer will have only one item. Could also choose // XPath2Result::SNAPSHOT_RESULT and XPath2Result::ITERATOR_RESULT AutoRelease firstResult(parsedExpression->evaluate(document->getDocumentElement(), DOMXPathResult::FIRST_RESULT_TYPE, 0)); // 4. Work with the result: output it to the screen in this case cout << "The answer for expression '" << expression << "' is: " << firstResult->getNumberValue() << endl; } // **************** Example 2: output of nodes ****************** // { // 2. Create a parsed expression const char* expression2 = "//Magazine"; AutoRelease parsedExpression(document->createExpression(X(expression2), resolver)); // 3. Evaluate the expression. We choose to have an iterator result AutoRelease iteratorResult(parsedExpression->evaluate(document->getDocumentElement(), DOMXPathResult::ITERATOR_RESULT_TYPE, 0)); // 4. Work with the result: output it to the screen in this case // Create a DOMLSSerializer to output the nodes AutoRelease serializer(xqillaImplementation->createLSSerializer()); AutoRelease output(xqillaImplementation->createLSOutput()); StdOutFormatTarget target; output->setByteStream(&target); cout << "The answer for expression '" << expression2 << "' is: " <iterateNext()) { if(iteratorResult->isNode()) { cout << "Node " << i++ << ": "<< flush; serializer->write(iteratorResult->getNodeValue(), output); cout << endl; } else { cerr << "Expected a node but received an atomic value!"<< endl; } } } } catch(DOMException &e) { cerr << "DOMException: " << UTF8(e.getMessage()) << endl; return 1; } /////////////// // Terminate // /////////////// XQillaPlatformUtils::terminate(); return 0; } XQilla-2.3.0/src/samples/dom-api/data.xml0000644000151400015140000000102611571227107015041 00000000000000 1234 14.99 1235 89.99 1236 120 1237 14.999 1238 33.33 XQilla-2.3.0/src/samples/dom-api/dom-context-item.cpp0000644000151400015140000000372411571227107017316 00000000000000#include #include #include #include XERCES_CPP_NAMESPACE_USE; int main(int argc, char *argv[]) { // Initialise Xerces-C and XQilla using XQillaPlatformUtils XQillaPlatformUtils::initialize(); // Get the XQilla DOMImplementation object DOMImplementation *xqillaImplementation = DOMImplementationRegistry::getDOMImplementation(X("XPath2 3.0")); try { // Create a DOMLSParser object AutoRelease parser(xqillaImplementation->createLSParser(DOMImplementationLS::MODE_SYNCHRONOUS, 0)); parser->getDomConfig()->setParameter(XMLUni::fgDOMNamespaces, true); parser->getDomConfig()->setParameter(XMLUni::fgXercesSchema, true); parser->getDomConfig()->setParameter(XMLUni::fgDOMValidateIfSchema, true); // Parse a DOMDocument DOMDocument *document = parser->parseURI("foo.xml"); if(document == 0) { std::cerr << "Document not found." << std::endl; return 1; } // Parse an XPath 2 expression AutoRelease expression(document->createExpression(X("foo/bar/@baz"), 0)); // Execute the query AutoRelease result(expression->evaluate(document, DOMXPathResult::ITERATOR_RESULT_TYPE, 0)); // Create a DOMLSSerializer to output the nodes AutoRelease serializer(xqillaImplementation->createLSSerializer()); AutoRelease output(xqillaImplementation->createLSOutput()); StdOutFormatTarget target; output->setByteStream(&target); // Iterate over the results, printing them while(result->iterateNext()) { serializer->write(result->getNodeValue(), output); std::cout << std::endl; } } catch(XQillaException &e) { std::cerr << "XQillaException: " << UTF8(e.getString()) << std::endl; return 1; } // Terminate Xerces-C and XQilla using XQillaPlatformUtils XQillaPlatformUtils::terminate(); return 0; } XQilla-2.3.0/src/samples/dom-api/data.xsd0000644000151400015140000000240211571227107015036 00000000000000 XQilla-2.3.0/src/samples/dom-api/dom-basic.cpp0000644000151400015140000000216211571227107015752 00000000000000#include #include #include XERCES_CPP_NAMESPACE_USE; int main(int argc, char *argv[]) { // Initialise Xerces-C and XQilla using XQillaPlatformUtils XQillaPlatformUtils::initialize(); // Get the XQilla DOMImplementation object DOMImplementation *xqillaImplementation = DOMImplementationRegistry::getDOMImplementation(X("XPath2 3.0")); // Make sure the DOM objects are released before we call XQillaPlatformUtils::terminate() { // Create a DOMDocument AutoRelease document(xqillaImplementation->createDocument()); // Parse an XPath 2 expression AutoRelease expression(document->createExpression(X("1 to 100"), 0)); // Execute the query AutoRelease result(expression->evaluate(0, DOMXPathResult::ITERATOR_RESULT_TYPE, 0)); // Iterate over the results, printing them while(result->iterateNext()) { std::cout << result->getIntegerValue() << std::endl; } } // Terminate Xerces-C and XQilla using XQillaPlatformUtils XQillaPlatformUtils::terminate(); return 0; } XQilla-2.3.0/src/exceptions/0000755000151400015140000000000011653572442012664 500000000000000XQilla-2.3.0/src/exceptions/XQException.cpp0000644000151400015140000000740411653565523015526 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include // This is only for Windows, to force export of // symbols for the two exceptions -- they are not used // elsewhere within XQilla at this time #include #include void __exceptionDummy() { try { // do something that won't be optimized away ::strcmp("a","b"); } catch (QueryTimeoutException &qte) {} catch (QueryInterruptedException &qie) {} } #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif XQException::XQException(const XMLCh *reason, const XMLCh* file, unsigned int line, unsigned int column, const char *cppFile, unsigned int cppLine) : type_(XMLString::transcode("XQException")), error_(XMLString::replicate(reason)), cppFunction_(XMLString::transcode("XQuery")), cppFile_(cppFile), cppLine_(cppLine), xqLine_(line), xqColumn_(column), xqFile_(XMLString::replicate(file)) { } XQException::XQException(const XMLCh* const type, const XMLCh* const functionName, const XMLCh* const reason, const LocationInfo *info, const char *cppFile, unsigned int cppLine) : type_(XMLString::replicate(type)), error_(XMLString::replicate(reason)), cppFunction_(XMLString::replicate(functionName)), cppFile_(cppFile), cppLine_(cppLine), xqLine_(0), xqColumn_(0), xqFile_(0) { if(info != 0) setXQueryPosition(info); } XQException::XQException(const XQException &o) : type_(XMLString::replicate(o.type_)), error_(XMLString::replicate(o.error_)), cppFunction_(XMLString::replicate(o.cppFunction_)), cppFile_(o.cppFile_), cppLine_(o.cppLine_), xqLine_(o.xqLine_), xqColumn_(o.xqColumn_), xqFile_(XMLString::replicate(o.xqFile_)) { } XQException::~XQException() { XMLString::release(&type_); XMLString::release(&error_); XMLString::release(&cppFunction_); XMLString::release(&xqFile_); } void XQException::setXQueryPosition(const XMLCh *file, unsigned int line, unsigned int column) { XMLString::release(&xqFile_); xqFile_ = XMLString::replicate(file); xqLine_ = line; xqColumn_ = column; } void XQException::setXQueryPosition(const LocationInfo *info) { XMLString::release(&xqFile_); xqFile_ = XMLString::replicate(info->getFile()); xqLine_ = info->getLine(); xqColumn_ = info->getColumn(); } void XQException::printDebug(const XMLCh* const context) const { std::cerr << std::endl; std::cerr << "===================" << std::endl; std::cerr << UTF8(context) << std::endl << std::endl; std::cerr << "Type: " << UTF8(type_) << std::endl; std::cerr << "Reason: " << UTF8(error_) << std::endl; std::cerr << "XQuery Location: " << UTF8(xqFile_) << ":" << xqLine_ << ":" << xqColumn_ << std::endl; std::cerr << "C++ Location: " << UTF8(cppFunction_) << ", " << cppFile_ << ":" << cppLine_ << std::endl; std::cerr << "===================" << std::endl; } XQilla-2.3.0/src/exceptions/MiscException.hpp0000644000151400015140000000252311653565523016073 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* XPath2ErrorException - handles cases in the specification where the `error value' is returned */ #ifndef _MISCEXCEPTION_HPP #define _MISCEXCEPTION_HPP #include #include #include /** exception class for miscellaneous errors */ class XQILLA_API MiscException : public XQException { public: MiscException(const XMLCh *functionName, const XMLCh *reason, const LocationInfo *info, const char *file, int line) : XQException(X("MiscException"), functionName, reason, info, file, line) {}; }; #endif // _MISCEXCEPTION_HPP XQilla-2.3.0/src/exceptions/InvalidLexicalSpaceException.hpp0000644000151400015140000000257411653565523021052 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* Invalid Lexical Space Exception: thrown when a value is not in the appropriate lexical space */ #ifndef _INVALIDLEXICALSPACEEXCEPTION_HPP #define _INVALIDLEXICALSPACEEXCEPTION_HPP #include #include #include class XQILLA_API InvalidLexicalSpaceException : public XQException { public: InvalidLexicalSpaceException(const XMLCh *functionName, const XMLCh *reason, const LocationInfo *info, const char *file, int line) : XQException(X("InvalidLexicalSpaceException"), functionName, reason, info, file, line) {}; }; #endif // _INVALIDLEXICALSPACEEXCEPTION_HPP XQilla-2.3.0/src/exceptions/XQillaException.cpp0000644000151400015140000000633511653565523016372 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include bool XQillaException::_debug = false; XERCES_CPP_NAMESPACE_USE; #if _XERCES_VERSION >= 30000 XQillaException::XQillaException(short code, const XMLCh* message) : DOMXPathException(code) { if(msg) fMemoryManager->deallocate((void*)msg); msg = XMLString::replicate(message, fMemoryManager); } XQillaException::XQillaException(const XQException &ex) : DOMXPathException(INVALID_EXPRESSION_ERR) { XMLBuffer buffer(1023); buffer.append(ex.getError()); if(ex.getXQueryLine() != 0) { buffer.append(' '); buffer.append('a'); buffer.append('t'); buffer.append(' '); buffer.append(ex.getXQueryFile()); buffer.append(':'); XPath2Utils::numToBuf(ex.getXQueryLine(), buffer); buffer.append(':'); XPath2Utils::numToBuf(ex.getXQueryColumn(), buffer); } if(msg) fMemoryManager->deallocate((void*)msg); msg = XMLString::replicate(buffer.getRawBuffer(), fMemoryManager); } XQillaException::XQillaException(const XQillaException &other) : DOMXPathException(other) { } XQillaException::~XQillaException() { } #else XQillaException::XQillaException(short code, const XMLCh* message) : DOMXPathException(code, XMLString::replicate(message)) { } XQillaException::XQillaException(const XQException &ex) : DOMXPathException(INVALID_EXPRESSION_ERR, 0) { XMLBuffer buffer(1023); buffer.append(ex.getError()); if(ex.getXQueryLine() != 0) { buffer.append(' '); buffer.append('a'); buffer.append('t'); buffer.append(' '); buffer.append(ex.getXQueryFile()); buffer.append(':'); XPath2Utils::numToBuf(ex.getXQueryLine(), buffer); buffer.append(':'); XPath2Utils::numToBuf(ex.getXQueryColumn(), buffer); } msg = XMLString::replicate(buffer.getRawBuffer()); } XQillaException::XQillaException(const XQillaException &other) : DOMXPathException(other.code, XMLString::replicate(other.msg)) { } XQillaException::~XQillaException() { XMLString::release(const_cast(&msg)); } #endif void XQillaException::setDebug(bool flag) { _debug = flag; } bool XQillaException::getDebug(void) { return _debug; } DOMXPathException::ExceptionCode XQillaException::getCode(void) const { return (DOMXPathException::ExceptionCode)code; } const XMLCh* XQillaException::getString(void) const { return msg; } XQilla-2.3.0/src/update/0000755000151400015140000000000011653572443011766 500000000000000XQilla-2.3.0/src/update/UDelete.cpp0000644000151400015140000000510011653565523013736 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include UDelete::UDelete(ASTNode *expr, XPath2MemoryManager* memMgr) : ASTNodeImpl(UDELETE, memMgr), expr_(expr) { } static const XMLCh err_XUTY0007[] = { 'e', 'r', 'r', ':', 'X', 'U', 'T', 'Y', '0', '0', '0', '7', 0 }; ASTNode *UDelete::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); SequenceType *seqType = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_NODE), SequenceType::STAR); seqType->setLocationInfo(this); expr_ = new (mm) XQTreatAs(expr_, seqType, mm, err_XUTY0007); expr_->setLocationInfo(this); expr_ = expr_->staticResolution(context); return this; } ASTNode *UDelete::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(expr_->getStaticAnalysis()); if(expr_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("UDelete::staticTyping"), X("It is a static error for the target expression of a delete expression " "to be an updating expression [err:XUST0001]")); } _src.updating(true); return this; } Result UDelete::createResult(DynamicContext* context, int flags) const { return 0; } PendingUpdateList UDelete::createUpdateList(DynamicContext *context) const { PendingUpdateList pul; Result targets = expr_->createResult(context); Item::Ptr item; while((item = targets->next(context)).notNull()) { pul.addUpdate(PendingUpdate(PendingUpdate::PUDELETE, (Node*)item.get(), this)); } return pul; } XQilla-2.3.0/src/update/FunctionPut.cpp0000644000151400015140000000742611653565523014702 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif const XMLCh FunctionPut::name[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_p, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const unsigned int FunctionPut::minArgs = 1; const unsigned int FunctionPut::maxArgs = 2; /** * fn:put($node as node(), $uri as xs:string?) as empty-sequence() */ FunctionPut::FunctionPut(const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "updating ($node as node(), $uri as xs:string?) as empty-sequence()", args, memMgr), baseURI_(0) { } FunctionPut::FunctionPut(const XMLCh *baseURI, const VectorOfASTNodes &args, XPath2MemoryManager* memMgr) : XQFunction(name, "updating ($node as node(), $uri as xs:string?) as empty-sequence()", args, memMgr), baseURI_(baseURI) { } ASTNode* FunctionPut::staticResolution(StaticContext *context) { baseURI_ = context->getBaseURI(); resolveArguments(context); return this; } ASTNode *FunctionPut::staticTypingImpl(StaticContext *context) { _src.clear(); _src.forceNoFolding(true); _src.updating(true); calculateSRCForArguments(context); return this; } PendingUpdateList FunctionPut::createUpdateList(DynamicContext *context) const { Node::Ptr node = (Node*)getParamNumber(1,context)->next(context).get(); if(node->dmNodeKind() != Node::document_string && node->dmNodeKind() != Node::element_string) { XQThrow(FunctionException, X("FunctionPut::createSequence"), X("The argument to fn:put is not a document or element node [err:FOUP0001]")); } const XMLCh *uriArg = 0; if(getNumArgs() == 2) { Item::Ptr uri = getParamNumber(2,context)->next(context); if(uri.notNull()) uriArg = uri->asString(context); } else { Sequence seq = node->dmDocumentURI(context); if(!seq.isEmpty()) uriArg = seq.item(0)->asString(context); } if(uriArg == 0) XQThrow(FunctionException, X("FunctionPut::createSequence"), X("The uri argument to fn:put is empty [err:FOUP0002]")); if(!baseURI_) XQThrow(FunctionException, X("FunctionPut::createSequence"), X("Base uri undefined in the static context [err:FONS0005]")); Item::Ptr anyURI; try { XMLUri base(baseURI_); XMLUri resolved(&base, uriArg); anyURI = context->getItemFactory()->createAnyURI(resolved.getUriText(), context); } catch(XQException &e) { XQThrow(FunctionException, X("FunctionPut::createSequence"), X("The argument to fn:put is not a valid xs:anyURI [err:FOUP0002]")); } return PendingUpdate(PendingUpdate::PUT, node, anyURI, this); } XQilla-2.3.0/src/update/PendingUpdateList.cpp0000644000151400015140000000207011653565523015775 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include void PendingUpdateList::addUpdate(const PendingUpdate &update) { updates_.push_back(update); } void PendingUpdateList::mergeUpdates(const PendingUpdateList &pul) { for(const_iterator i = pul.begin(); i != pul.end(); ++i) { updates_.push_back(*i); } } XQilla-2.3.0/src/update/URename.cpp0000644000151400015140000001541711653565523013757 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; URename::URename(ASTNode *target, ASTNode *name, XPath2MemoryManager* memMgr) : ASTNodeImpl(URENAME, memMgr), target_(target), name_(name) { } static const XMLCh err_XUTY0012[] = { 'e', 'r', 'r', ':', 'X', 'U', 'T', 'Y', '0', '0', '1', '2', 0 }; static const XMLCh err_XUDY0027[] = { 'e', 'r', 'r', ':', 'X', 'U', 'D', 'Y', '0', '0', '2', '7', 0 }; ASTNode* URename::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); SequenceType *targetType1 = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_ANYTHING), SequenceType::PLUS); targetType1->setLocationInfo(this); SequenceType *targetType2 = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_NODE), SequenceType::EXACTLY_ONE); targetType2->setLocationInfo(this); target_ = new (mm) XQTreatAs(target_, targetType1, mm, err_XUDY0027); target_->setLocationInfo(this); target_ = target_->staticResolution(context); target_ = new (mm) XQTreatAs(target_, targetType2, mm, err_XUTY0012); target_->setLocationInfo(this); target_ = target_->staticResolution(context); name_ = new (mm) XQNameExpression(name_, mm); name_->setLocationInfo(this); name_ = name_->staticResolution(context); return this; } ASTNode *URename::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(target_->getStaticAnalysis()); if(target_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("URename::staticTyping"), X("It is a static error for the target expression of a rename expression " "to be an updating expression [err:XUST0001]")); } if(!target_->getStaticAnalysis().getStaticType(). containsType(StaticType::ELEMENT_TYPE|StaticType::ATTRIBUTE_TYPE|StaticType::PI_TYPE)) { XQThrow(XPath2TypeMatchException,X("URename::staticTyping"), X("It is a type error for the target expression of a rename expression not to be a single element, " "attribute or processing instruction [err:XUTY0012]")); } _src.add(name_->getStaticAnalysis()); if(name_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("URename::staticTyping"), X("It is a static error for the name expression of a rename expression " "to be an updating expression [err:XUST0001]")); } _src.updating(true); return this; } Result URename::createResult(DynamicContext* context, int flags) const { return 0; } PendingUpdateList URename::createUpdateList(DynamicContext *context) const { Node::Ptr node = (Node*)target_->createResult(context)->next(context).get(); if(node->dmNodeKind() != Node::element_string && node->dmNodeKind() != Node::attribute_string && node->dmNodeKind() != Node::processing_instruction_string) XQThrow(XPath2TypeMatchException,X("URename::createUpdateList"), X("It is a type error for the target expression of a rename expression not to be a single element, " "attribute or processing instruction [err:XUTY0012]")); ATQNameOrDerived::Ptr qname = (ATQNameOrDerived*)name_->createResult(context)->next(context).get(); // 3. The following checks are performed for error conditions: // a. If $target is an element node, the "namespaces" property of $target must not include any namespace binding that conflicts // with the implied namespace binding of $QName [err:XUDY0023]. if(node->dmNodeKind() == Node::element_string) { if(!UInsertAsLast::checkNamespaceBinding(qname, node, context, this)) { XMLBuffer buf; buf.append(X("Implied namespace binding for the rename expression (\"")); buf.append(qname->getPrefix()); buf.append(X("\" -> \"")); buf.append(qname->getURI()); buf.append(X("\") conflicts with those already existing on the target element [err:XUDY0023]")); XQThrow(DynamicErrorException, X("URename::createUpdateList"), buf.getRawBuffer()); } } // b. If $target is an attribute node that has a parent, the "namespaces" property of parent($target) must not include any // namespace binding that conflicts with the implied namespace binding of $QName [err:XUDY0023]. else if(node->dmNodeKind() == Node::attribute_string) { Node::Ptr parentNode = node->dmParent(context); if(parentNode.notNull() && !UInsertAsLast::checkNamespaceBinding(qname, parentNode, context, this)) { XMLBuffer buf; buf.append(X("Implied namespace binding for the rename expression (\"")); buf.append(qname->getPrefix()); buf.append(X("\" -> \"")); buf.append(qname->getURI()); buf.append(X("\") conflicts with those already existing on the parent element of the target attribute [err:XUDY0023]")); XQThrow(DynamicErrorException, X("URename::createUpdateList"), buf.getRawBuffer()); } } // c. If $target is processing instruction node, $QName must not include a non-empty namespace prefix. [err:XUDY0025]. else if(node->dmNodeKind() == Node::processing_instruction_string && !XPath2Utils::equals(qname->getPrefix(), XMLUni::fgZeroLenString)) XQThrow(XPath2TypeMatchException,X("URename::createUpdateList"), X("The target of a rename expression is a processing instruction node, and the new name " "expression returned a QName with a non-empty namespace prefix [err:XUDY0025]")); return PendingUpdate(PendingUpdate::RENAME, node, qname, this); } XQilla-2.3.0/src/update/UInsertAfter.cpp0000644000151400015140000001512711653565523014774 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; UInsertAfter::UInsertAfter(ASTNode *source, ASTNode *target, XPath2MemoryManager* memMgr) : ASTNodeImpl(UINSERT_AFTER, memMgr), source_(source), target_(target) { } static const XMLCh err_XUTY0006[] = { 'e', 'r', 'r', ':', 'X', 'U', 'T', 'Y', '0', '0', '0', '6', 0 }; static const XMLCh err_XUDY0027[] = { 'e', 'r', 'r', ':', 'X', 'U', 'D', 'Y', '0', '0', '2', '7', 0 }; ASTNode* UInsertAfter::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); source_ = new (mm) XQContentSequence(source_, mm); source_->setLocationInfo(this); source_ = source_->staticResolution(context); SequenceType *targetType1 = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_ANYTHING), SequenceType::PLUS); targetType1->setLocationInfo(this); SequenceType *targetType2 = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_NODE), SequenceType::EXACTLY_ONE); targetType2->setLocationInfo(this); target_ = new (mm) XQTreatAs(target_, targetType1, mm, err_XUDY0027); target_->setLocationInfo(this); target_ = target_->staticResolution(context); target_ = new (mm) XQTreatAs(target_, targetType2, mm, err_XUTY0006); target_->setLocationInfo(this); target_ = target_->staticResolution(context); return this; } ASTNode *UInsertAfter::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(source_->getStaticAnalysis()); if(source_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("UInsertAfter::staticTyping"), X("It is a static error for the source expression of an insert expression " "to be an updating expression [err:XUST0001]")); } _src.add(target_->getStaticAnalysis()); if(target_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("UInsertAfter::staticTyping"), X("It is a static error for the target expression of an insert expression " "to be an updating expression [err:XUST0001]")); } _src.updating(true); return this; } Result UInsertAfter::createResult(DynamicContext* context, int flags) const { return 0; } PendingUpdateList UInsertAfter::createUpdateList(DynamicContext *context) const { Node::Ptr node = (Node*)target_->createResult(context)->next(context).get(); Node::Ptr parentNode = node->dmParent(context); if(node->dmNodeKind() == Node::document_string || node->dmNodeKind() == Node::attribute_string || node->dmNodeKind() == Node::namespace_string) XQThrow(XPath2TypeMatchException,X("UInsertAfter::staticTyping"), X("The target node of an insert after expression must be a single element, text, comment, or processing " "instruction node [err:XUTY0006]")); if(parentNode.isNull()) XQThrow(XPath2TypeMatchException,X("UInsertAfter::staticTyping"), X("It is a dynamic error if the target expression of an insert after expression does " "not have a parent [err:XUDY0029]")); Sequence alist(context->getMemoryManager()); Sequence clist(context->getMemoryManager()); Result value = source_->createResult(context); Item::Ptr item; while((item = value->next(context)).notNull()) { if(((Node*)item.get())->dmNodeKind() == Node::attribute_string) { if(!clist.isEmpty()) XQThrow(ASTException,X("UInsertAfter::createUpdateList"), X("Attribute nodes must occur before other nodes in the source expression for an insert after expression [err:XUTY0004]")); // b. No attribute node in $alist may have a QName whose implied namespace binding conflicts with a namespace binding in the // "namespaces" property of parent($target) [err:XUDY0023]. ATQNameOrDerived::Ptr qname = ((Node*)item.get())->dmNodeName(context); if(!UInsertAsLast::checkNamespaceBinding(qname, parentNode, context, this)) { XMLBuffer buf; buf.append(X("Implied namespace binding for the insert after expression (\"")); buf.append(qname->getPrefix()); buf.append(X("\" -> \"")); buf.append(qname->getURI()); buf.append(X("\") conflicts with those already existing on the parent element of the target attribute [err:XUDY0023]")); XQThrow3(DynamicErrorException, X("UInsertAfter::createUpdateList"), buf.getRawBuffer(), this); } alist.addItem(item); } else clist.addItem(item); } PendingUpdateList result; if(!alist.isEmpty()) { // 4. If $alist is not empty and before or after is specified, the following checks are performed: // a. parent($target) must be an element node [err:XUTY0022]. if(node->dmParent(context)->dmNodeKind() == Node::document_string) XQThrow(XPath2TypeMatchException,X("UInsertAfter::createUpdateList"), X("It is a type error if an insert expression specifies the insertion of an attribute node before or after a child of a document node [err:XUDY0030]")); result.addUpdate(PendingUpdate(PendingUpdate::INSERT_ATTRIBUTES, node->dmParent(context), alist, this)); } if(!clist.isEmpty()) { result.addUpdate(PendingUpdate(PendingUpdate::INSERT_AFTER, node, clist, this)); } return result; } XQilla-2.3.0/src/update/UInsertAsLast.cpp0000644000151400015140000001773311653565523015127 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; UInsertAsLast::UInsertAsLast(ASTNode *source, ASTNode *target, XPath2MemoryManager* memMgr) : ASTNodeImpl(UINSERT_AS_LAST, memMgr), source_(source), target_(target) { } static const XMLCh err_XUTY0005[] = { 'e', 'r', 'r', ':', 'X', 'U', 'T', 'Y', '0', '0', '0', '5', 0 }; static const XMLCh err_XUDY0027[] = { 'e', 'r', 'r', ':', 'X', 'U', 'D', 'Y', '0', '0', '2', '7', 0 }; ASTNode* UInsertAsLast::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); source_ = new (mm) XQContentSequence(source_, mm); source_->setLocationInfo(this); source_ = source_->staticResolution(context); SequenceType *targetType1 = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_ANYTHING), SequenceType::PLUS); targetType1->setLocationInfo(this); SequenceType *targetType2 = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_NODE), SequenceType::EXACTLY_ONE); targetType2->setLocationInfo(this); target_ = new (mm) XQTreatAs(target_, targetType1, mm, err_XUDY0027); target_->setLocationInfo(this); target_ = target_->staticResolution(context); target_ = new (mm) XQTreatAs(target_, targetType2, mm, err_XUTY0005); target_->setLocationInfo(this); target_ = target_->staticResolution(context); return this; } ASTNode *UInsertAsLast::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(source_->getStaticAnalysis()); if(source_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("UInsertAsLast::staticTyping"), X("It is a static error for the source expression of an insert expression " "to be an updating expression [err:XUST0001]")); } _src.add(target_->getStaticAnalysis()); if(target_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("UInsertAsLast::staticTyping"), X("It is a static error for the target expression of an insert expression " "to be an updating expression [err:XUST0001]")); } _src.updating(true); return this; } Result UInsertAsLast::createResult(DynamicContext* context, int flags) const { return 0; } // static bool UInsertAsLast::checkNamespaceBinding(const ATQNameOrDerived::Ptr &qname, const Node::Ptr &node, DynamicContext *context, const LocationInfo *location) { if(qname->getURI() != 0 && *(qname->getURI()) != 0) { Result namespaces = node->dmNamespaceNodes(context, location); Node::Ptr ns; while((ns = (Node*)namespaces->next(context).get()).notNull()) { ATQNameOrDerived::Ptr name = ns->dmNodeName(context); if(((name.notNull() && XPath2Utils::equals(((const ATQNameOrDerived*)name.get())->getName(), qname->getPrefix())) || (name.isNull() && qname->getPrefix() == 0)) && !XPath2Utils::equals(ns->dmStringValue(context), qname->getURI())) { return false; } } } return true; } PendingUpdateList UInsertAsLast::createUpdateList(DynamicContext *context) const { Node::Ptr node = (Node*)target_->createResult(context)->next(context).get(); if(node->dmNodeKind() != Node::element_string && node->dmNodeKind() != Node::document_string) XQThrow(XPath2TypeMatchException,X("UInsertAsLast::createUpdateList"), X("It is a type error for the target expression of an insert as last expression not to be a single element " "or document [err:XUTY0005]")); Sequence alist(context->getMemoryManager()); Sequence clist(context->getMemoryManager()); Result value = source_->createResult(context); Item::Ptr item; while((item = value->next(context)).notNull()) { if(((Node*)item.get())->dmNodeKind() == Node::attribute_string) { if(!clist.isEmpty()) XQThrow(ASTException,X("UInsertAsLast::createUpdateList"), X("Attribute nodes must occur before other nodes in the source expression for an insert as last expression [err:XUTY0004]")); // b. No attribute node in $alist may have a QName whose implied namespace binding conflicts with a namespace // binding in the "namespaces" property of $target [err:XUDY0023]. ATQNameOrDerived::Ptr qname = ((Node*)item.get())->dmNodeName(context); if(!checkNamespaceBinding(qname, node, context, this)) { XMLBuffer buf; buf.append(X("Implied namespace binding for the insert as last expression (\"")); buf.append(qname->getPrefix()); buf.append(X("\" -> \"")); buf.append(qname->getURI()); buf.append(X("\") conflicts with those already existing on the parent element of the target attribute [err:XUDY0023]")); XQThrow(DynamicErrorException, X("UInsertInto::createUpdateList"), buf.getRawBuffer()); } // if(qname->getURI() != 0 && *(qname->getURI()) != 0) { // Result namespaces = node->dmNamespaceNodes(context, this); // Node::Ptr ns; // while((ns = (Node*)namespaces->next(context).get()).notNull()) { // ATQNameOrDerived::Ptr name = ns->dmNodeName(context); // if(((name.notNull() && XPath2Utils::equals(((const ATQNameOrDerived*)name.get())->getName(), qname->getPrefix())) || // (name.isNull() && qname->getPrefix() == 0)) && !XPath2Utils::equals(ns->dmStringValue(context), qname->getURI())) { // XMLBuffer buf; // buf.append(X("Implied namespace binding for the insert as last expression (\"")); // buf.append(qname->getPrefix()); // buf.append(X("\" -> \"")); // buf.append(qname->getURI()); // buf.append(X("\") conflicts with those already existing on the parent element of the target attribute [err:XUDY0023]")); // XQThrow3(DynamicErrorException, X("UInsertInto::createUpdateList"), buf.getRawBuffer(), this); // } // } // } alist.addItem(item); } else clist.addItem(item); } PendingUpdateList result; if(!alist.isEmpty()) { // 3. If $alist is not empty and into is specified, the following checks are performed: // a. $target must be an element node [err:XUTY0022]. if(node->dmNodeKind() == Node::document_string) XQThrow(XPath2TypeMatchException,X("UInsertInto::createUpdateList"), X("It is a type error if an insert expression specifies the insertion of an attribute node into a document node [err:XUTY0022]")); result.addUpdate(PendingUpdate(PendingUpdate::INSERT_ATTRIBUTES, node, alist, this)); } if(!clist.isEmpty()) { result.addUpdate(PendingUpdate(PendingUpdate::INSERT_INTO_AS_LAST, node, clist, this)); } return result; } XQilla-2.3.0/src/update/UInsertBefore.cpp0000644000151400015140000001512511653565523015133 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; UInsertBefore::UInsertBefore(ASTNode *source, ASTNode *target, XPath2MemoryManager* memMgr) : ASTNodeImpl(UINSERT_BEFORE, memMgr), source_(source), target_(target) { } static const XMLCh err_XUTY0006[] = { 'e', 'r', 'r', ':', 'X', 'U', 'T', 'Y', '0', '0', '0', '6', 0 }; static const XMLCh err_XUDY0027[] = { 'e', 'r', 'r', ':', 'X', 'U', 'D', 'Y', '0', '0', '2', '7', 0 }; ASTNode* UInsertBefore::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); source_ = new (mm) XQContentSequence(source_, mm); source_->setLocationInfo(this); source_ = source_->staticResolution(context); SequenceType *targetType1 = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_ANYTHING), SequenceType::PLUS); targetType1->setLocationInfo(this); SequenceType *targetType2 = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_NODE), SequenceType::EXACTLY_ONE); targetType2->setLocationInfo(this); target_ = new (mm) XQTreatAs(target_, targetType1, mm, err_XUDY0027); target_->setLocationInfo(this); target_ = target_->staticResolution(context); target_ = new (mm) XQTreatAs(target_, targetType2, mm, err_XUTY0006); target_->setLocationInfo(this); target_ = target_->staticResolution(context); return this; } ASTNode *UInsertBefore::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(source_->getStaticAnalysis()); if(source_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("UInsertBefore::staticTyping"), X("It is a static error for the source expression of an insert expression " "to be an updating expression [err:XUST0001]")); } _src.add(target_->getStaticAnalysis()); if(target_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("UInsertBefore::staticTyping"), X("It is a static error for the target expression of an insert expression " "to be an updating expression [err:XUST0001]")); } _src.updating(true); return this; } Result UInsertBefore::createResult(DynamicContext* context, int flags) const { return 0; } PendingUpdateList UInsertBefore::createUpdateList(DynamicContext *context) const { Node::Ptr node = (Node*)target_->createResult(context)->next(context).get(); Node::Ptr parentNode = node->dmParent(context); if(node->dmNodeKind() == Node::document_string || node->dmNodeKind() == Node::attribute_string || node->dmNodeKind() == Node::namespace_string) XQThrow(XPath2TypeMatchException,X("UInsertAfter::staticTyping"), X("The target node of an insert before expression must be a single element, text, comment, or processing " "instruction node [err:XUTY0006]")); if(parentNode.isNull()) XQThrow(XPath2TypeMatchException,X("UInsertAfter::staticTyping"), X("It is a dynamic error if the target expression of an insert before expression does " "not have a parent [err:XUDY0029]")); Sequence alist(context->getMemoryManager()); Sequence clist(context->getMemoryManager()); Result value = source_->createResult(context); Item::Ptr item; while((item = value->next(context)).notNull()) { if(((Node*)item.get())->dmNodeKind() == Node::attribute_string) { if(!clist.isEmpty()) XQThrow(ASTException,X("UInsertBefore::createUpdateList"), X("Attribute nodes must occur before other nodes in the source expression for an insert before expression [err:XUTY0004]")); // b. No attribute node in $alist may have a QName whose implied namespace binding conflicts with a namespace binding in the // "namespaces" property of parent($target) [err:XUDY0023]. ATQNameOrDerived::Ptr qname = ((Node*)item.get())->dmNodeName(context); if(!UInsertAsLast::checkNamespaceBinding(qname, parentNode, context, this)) { XMLBuffer buf; buf.append(X("Implied namespace binding for the insert before expression (\"")); buf.append(qname->getPrefix()); buf.append(X("\" -> \"")); buf.append(qname->getURI()); buf.append(X("\") conflicts with those already existing on the parent element of the target attribute [err:XUDY0023]")); XQThrow(DynamicErrorException, X("UInsertBefore::createUpdateList"), buf.getRawBuffer()); } alist.addItem(item); } else clist.addItem(item); } PendingUpdateList result; if(!alist.isEmpty()) { // 4. If $alist is not empty and before or after is specified, the following checks are performed: // a. parent($target) must be an element node [err:XUTY0022]. if(parentNode->dmNodeKind() == Node::document_string) XQThrow(XPath2TypeMatchException,X("UInsertBefore::createUpdateList"), X("It is a type error if an insert expression specifies the insertion of an attribute node before or after a child of a document node [err:XUDY0030]")); result.addUpdate(PendingUpdate(PendingUpdate::INSERT_ATTRIBUTES, node->dmParent(context), alist, this)); } if(!clist.isEmpty()) { result.addUpdate(PendingUpdate(PendingUpdate::INSERT_BEFORE, node, clist, this)); } return result; } XQilla-2.3.0/src/update/UInsertInto.cpp0000644000151400015140000001421111653565523014635 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; UInsertInto::UInsertInto(ASTNode *source, ASTNode *target, XPath2MemoryManager* memMgr) : ASTNodeImpl(UINSERT_INTO, memMgr), source_(source), target_(target) { } static const XMLCh err_XUTY0005[] = { 'e', 'r', 'r', ':', 'X', 'U', 'T', 'Y', '0', '0', '0', '5', 0 }; static const XMLCh err_XUDY0027[] = { 'e', 'r', 'r', ':', 'X', 'U', 'D', 'Y', '0', '0', '2', '7', 0 }; ASTNode* UInsertInto::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); source_ = new (mm) XQContentSequence(source_, mm); source_->setLocationInfo(this); source_ = source_->staticResolution(context); SequenceType *targetType1 = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_ANYTHING), SequenceType::PLUS); targetType1->setLocationInfo(this); SequenceType *targetType2 = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_NODE), SequenceType::EXACTLY_ONE); targetType2->setLocationInfo(this); target_ = new (mm) XQTreatAs(target_, targetType1, mm, err_XUDY0027); target_->setLocationInfo(this); target_ = target_->staticResolution(context); target_ = new (mm) XQTreatAs(target_, targetType2, mm, err_XUTY0005); target_->setLocationInfo(this); target_ = target_->staticResolution(context); return this; } ASTNode *UInsertInto::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(source_->getStaticAnalysis()); if(source_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("UInsertInto::staticTyping"), X("It is a static error for the source expression of an insert expression " "to be an updating expression [err:XUST0001]")); } _src.add(target_->getStaticAnalysis()); if(target_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("UInsertInto::staticTyping"), X("It is a static error for the target expression of an insert expression " "to be an updating expression [err:XUST0001]")); } _src.updating(true); return this; } Result UInsertInto::createResult(DynamicContext* context, int flags) const { return 0; } PendingUpdateList UInsertInto::createUpdateList(DynamicContext *context) const { Node::Ptr node = (Node*)target_->createResult(context)->next(context).get(); if(node->dmNodeKind() != Node::element_string && node->dmNodeKind() != Node::document_string) XQThrow(XPath2TypeMatchException,X("UInsertInto::createUpdateList"), X("It is a type error for the target expression of an insert into expression not to be a single element " "or document [err:XUTY0005]")); Sequence alist(context->getMemoryManager()); Sequence clist(context->getMemoryManager()); Result value = source_->createResult(context); Item::Ptr item; while((item = value->next(context)).notNull()) { if(((Node*)item.get())->dmNodeKind() == Node::attribute_string) { if(!clist.isEmpty()) XQThrow(ASTException,X("UInsertInto::createUpdateList"), X("Attribute nodes must occur before other nodes in the source expression for an insert into expression [err:XUTY0004]")); // b. No attribute node in $alist may have a QName whose implied namespace binding conflicts with a namespace // binding in the "namespaces" property of $target [err:XUDY0023]. ATQNameOrDerived::Ptr qname = ((Node*)item.get())->dmNodeName(context); if(!UInsertAsLast::checkNamespaceBinding(qname, node, context, this)) { XMLBuffer buf; buf.append(X("Implied namespace binding for the insert into expression (\"")); buf.append(qname->getPrefix()); buf.append(X("\" -> \"")); buf.append(qname->getURI()); buf.append(X("\") conflicts with those already existing on the parent element of the target attribute [err:XUDY0023]")); XQThrow3(DynamicErrorException, X("UInsertInto::createUpdateList"), buf.getRawBuffer(), this); } alist.addItem(item); } else clist.addItem(item); } PendingUpdateList result; if(!alist.isEmpty()) { // 3. If $alist is not empty and into is specified, the following checks are performed: // a. $target must be an element node [err:XUTY0022]. if(node->dmNodeKind() == Node::document_string) XQThrow(XPath2TypeMatchException,X("UInsertInto::createUpdateList"), X("It is a type error if an insert expression specifies the insertion of an attribute node into a document node [err:XUTY0022]")); result.addUpdate(PendingUpdate(PendingUpdate::INSERT_ATTRIBUTES, node, alist, this)); } if(!clist.isEmpty()) { result.addUpdate(PendingUpdate(PendingUpdate::INSERT_INTO, node, clist, this)); } return result; } XQilla-2.3.0/src/update/UInsertAsFirst.cpp0000644000151400015140000001427411653565523015310 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; UInsertAsFirst::UInsertAsFirst(ASTNode *source, ASTNode *target, XPath2MemoryManager* memMgr) : ASTNodeImpl(UINSERT_AS_FIRST, memMgr), source_(source), target_(target) { } static const XMLCh err_XUTY0005[] = { 'e', 'r', 'r', ':', 'X', 'U', 'T', 'Y', '0', '0', '0', '5', 0 }; static const XMLCh err_XUDY0027[] = { 'e', 'r', 'r', ':', 'X', 'U', 'D', 'Y', '0', '0', '2', '7', 0 }; ASTNode* UInsertAsFirst::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); source_ = new (mm) XQContentSequence(source_, mm); source_->setLocationInfo(this); source_ = source_->staticResolution(context); SequenceType *targetType1 = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_ANYTHING), SequenceType::PLUS); targetType1->setLocationInfo(this); SequenceType *targetType2 = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_NODE), SequenceType::EXACTLY_ONE); targetType2->setLocationInfo(this); target_ = new (mm) XQTreatAs(target_, targetType1, mm, err_XUDY0027); target_->setLocationInfo(this); target_ = target_->staticResolution(context); target_ = new (mm) XQTreatAs(target_, targetType2, mm, err_XUTY0005); target_->setLocationInfo(this); target_ = target_->staticResolution(context); return this; } ASTNode *UInsertAsFirst::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(source_->getStaticAnalysis()); if(source_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("UInsertAsFirst::staticTyping"), X("It is a static error for the source expression of an insert expression " "to be an updating expression [err:XUST0001]")); } _src.add(target_->getStaticAnalysis()); if(target_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("UInsertAsFirst::staticTyping"), X("It is a static error for the target expression of an insert expression " "to be an updating expression [err:XUST0001]")); } _src.updating(true); return this; } Result UInsertAsFirst::createResult(DynamicContext* context, int flags) const { return 0; } PendingUpdateList UInsertAsFirst::createUpdateList(DynamicContext *context) const { Node::Ptr node = (Node*)target_->createResult(context)->next(context).get(); if(node->dmNodeKind() != Node::element_string && node->dmNodeKind() != Node::document_string) XQThrow(XPath2TypeMatchException,X("UInsertAsFirst::createUpdateList"), X("It is a type error for the target expression of an insert as first expression not to be a single element " "or document [err:XUTY0005]")); Sequence alist(context->getMemoryManager()); Sequence clist(context->getMemoryManager()); Result value = source_->createResult(context); Item::Ptr item; while((item = value->next(context)).notNull()) { if(((Node*)item.get())->dmNodeKind() == Node::attribute_string) { if(!clist.isEmpty()) XQThrow(ASTException,X("UInsertAsFirst::createUpdateList"), X("Attribute nodes must occur before other nodes in the source expression for an insert as first expression [err:XUTY0004]")); // b. No attribute node in $alist may have a QName whose implied namespace binding conflicts with a namespace // binding in the "namespaces" property of $target [err:XUDY0023]. ATQNameOrDerived::Ptr qname = ((Node*)item.get())->dmNodeName(context); if(!UInsertAsLast::checkNamespaceBinding(qname, node, context, this)) { XMLBuffer buf; buf.append(X("Implied namespace binding for the insert as first expression (\"")); buf.append(qname->getPrefix()); buf.append(X("\" -> \"")); buf.append(qname->getURI()); buf.append(X("\") conflicts with those already existing on the parent element of the target attribute [err:XUDY0023]")); XQThrow(DynamicErrorException, X("UInsertInto::createUpdateList"), buf.getRawBuffer()); } alist.addItem(item); } else clist.addItem(item); } PendingUpdateList result; if(!alist.isEmpty()) { // 3. If $alist is not empty and into is specified, the following checks are performed: // a. $target must be an element node [err:XUTY0022]. if(node->dmNodeKind() == Node::document_string) XQThrow(XPath2TypeMatchException,X("UInsertInto::createUpdateList"), X("It is a type error if an insert expression specifies the insertion of an attribute node into a document node [err:XUTY0022]")); result.addUpdate(PendingUpdate(PendingUpdate::INSERT_ATTRIBUTES, node, alist, this)); } if(!clist.isEmpty()) { result.addUpdate(PendingUpdate(PendingUpdate::INSERT_INTO_AS_FIRST, node, clist, this)); } return result; } XQilla-2.3.0/src/update/UApplyUpdates.cpp0000644000151400015140000000375711653565523015167 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include UApplyUpdates::UApplyUpdates(ASTNode *expr, XPath2MemoryManager* memMgr) : ASTNodeImpl(UAPPLY_UPDATES, memMgr), expr_(expr), valMode_(DocumentCache::VALIDATION_SKIP) { } UApplyUpdates::UApplyUpdates(ASTNode *expr, DocumentCache::ValidationMode valMode, XPath2MemoryManager* memMgr) : ASTNodeImpl(UAPPLY_UPDATES, memMgr), expr_(expr), valMode_(valMode) { } ASTNode* UApplyUpdates::staticResolution(StaticContext *context) { expr_ = expr_->staticResolution(context); valMode_ = context->getRevalidationMode(); return this; } ASTNode *UApplyUpdates::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(expr_->getStaticAnalysis()); if(!expr_->getStaticAnalysis().isUpdating()) { return expr_; } _src.updating(false); return this; } Result UApplyUpdates::createResult(DynamicContext* context, int flags) const { AutoDelete ufactory(context->createUpdateFactory()); ufactory->applyUpdates(getExpression()->createUpdateList(context), context, getRevalidationMode()); return 0; } XQilla-2.3.0/src/update/UReplaceValueOf.cpp0000644000151400015140000001403111653565523015374 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif UReplaceValueOf::UReplaceValueOf(ASTNode *target, ASTNode *expr, XPath2MemoryManager* memMgr) : ASTNodeImpl(UREPLACE_VALUE_OF, memMgr), target_(target), expr_(expr) { } static const XMLCh err_XUTY0008[] = { 'e', 'r', 'r', ':', 'X', 'U', 'T', 'Y', '0', '0', '0', '8', 0 }; static const XMLCh err_XUDY0027[] = { 'e', 'r', 'r', ':', 'X', 'U', 'D', 'Y', '0', '0', '2', '7', 0 }; ASTNode* UReplaceValueOf::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); SequenceType *targetType1 = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_ANYTHING), SequenceType::PLUS); targetType1->setLocationInfo(this); SequenceType *targetType2 = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_NODE), SequenceType::EXACTLY_ONE); targetType2->setLocationInfo(this); target_ = new (mm) XQTreatAs(target_, targetType1, mm, err_XUDY0027); target_->setLocationInfo(this); target_ = target_->staticResolution(context); target_ = new (mm) XQTreatAs(target_, targetType2, mm, err_XUTY0008); target_->setLocationInfo(this); target_ = target_->staticResolution(context); expr_ = new (mm) XQAtomize(expr_, mm); expr_->setLocationInfo(this); expr_ = expr_->staticResolution(context); return this; } ASTNode *UReplaceValueOf::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(target_->getStaticAnalysis()); if(target_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("UReplaceValueOf::staticTyping"), X("It is a static error for the target expression of a replace expression " "to be an updating expression [err:XUST0001]")); } _src.add(expr_->getStaticAnalysis()); if(expr_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("UReplaceValueOf::staticTyping"), X("It is a static error for the with expression of a replace expression " "to be an updating expression [err:XUST0001]")); } _src.updating(true); return this; } Result UReplaceValueOf::createResult(DynamicContext* context, int flags) const { return 0; } PendingUpdateList UReplaceValueOf::createUpdateList(DynamicContext *context) const { Node::Ptr node = (Node*)target_->createResult(context)->next(context).get(); if(node->dmNodeKind() == Node::document_string) XQThrow(XPath2TypeMatchException,X("UReplaceValueOf::createUpdateList"), X("The target expression of a replace expression does not return a single " "node that is not a document node [err:XUTY0008]")); XMLBuffer buf; XQDOMConstructor::getStringValue(expr_, buf, context); // If $target is a comment node, and $string contains two adjacent hyphens or ends with a hyphen, a dynamic error is raised [err:XQDY0072]. if(node->dmNodeKind() == Node::comment_string) { bool foundOne = false; for(const XMLCh *str = buf.getRawBuffer(); *str; ++str) { if(*str == '-') { if(foundOne) { XQThrow(DynamicErrorException,X("UReplaceValueOf::createUpdateList"), X("The replace value of expression would result in a comment node whose content contains two adjacent hyphens [err:XQDY0072]")); } else foundOne = true; } else { foundOne = false; } } if(foundOne) { XQThrow(DynamicErrorException,X("UReplaceValueOf::createUpdateList"), X("The replace value of expression would result in a comment node whose content ends with a hyphen [err:XQDY0072]")); } } // If $target is a processing instruction node, and $string contains the substring "?>", a dynamic error is raised [err:XQDY0026]. else if(node->dmNodeKind() == Node::processing_instruction_string) { bool foundQuestion = false; for(const XMLCh *str = buf.getRawBuffer(); *str; ++str) { if(*str == '?') { foundQuestion = true; } else { if(foundQuestion && *str == '>') { XQThrow(DynamicErrorException,X("UReplaceValueOf::createUpdateList"), X("The replace value of expression would result in a processing instruction node whose content includes the string \"?>\" [err:XQDY0026]")); } foundQuestion = false; } } } Item::Ptr value = context->getItemFactory()->createString(buf.getRawBuffer(), context); if(node->dmNodeKind() == Node::element_string) { return PendingUpdate(PendingUpdate::REPLACE_ELEMENT_CONTENT, node, value, this); } else { return PendingUpdate(PendingUpdate::REPLACE_VALUE, node, value, this); } } XQilla-2.3.0/src/update/UTransform.cpp0000644000151400015140000002066011653565523014517 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include CopyBinding::CopyBinding(XPath2MemoryManager* memMgr, const XMLCh* variable, ASTNode* allValues) : qname_(memMgr->getPooledString(variable)), uri_(0), name_(0), src_(memMgr), expr_(allValues) { } CopyBinding::CopyBinding(XPath2MemoryManager* memMgr, const CopyBinding &o) : qname_(o.qname_), uri_(o.uri_), name_(o.name_), src_(o.src_, memMgr), expr_(o.expr_) { } //////////////////////////////////////////////////////////////////////////////////////////////////// UTransform::UTransform(VectorOfCopyBinding* bindings, ASTNode *modifyExpr, ASTNode* returnExpr, XPath2MemoryManager* mm) : ASTNodeImpl(UTRANSFORM, mm), bindings_(bindings), modify_(modifyExpr), return_(returnExpr), valMode_(DocumentCache::VALIDATION_SKIP) { } UTransform::UTransform(VectorOfCopyBinding* bindings, ASTNode *modifyExpr, ASTNode* returnExpr, DocumentCache::ValidationMode valMode, XPath2MemoryManager* mm) : ASTNodeImpl(UTRANSFORM, mm), bindings_(bindings), modify_(modifyExpr), return_(returnExpr), valMode_(valMode) { } static const XMLCh err_XUTY0013[] = { 'e', 'r', 'r', ':', 'X', 'U', 'T', 'Y', '0', '0', '1', '3', 0 }; ASTNode *UTransform::staticResolution(StaticContext* context) { XPath2MemoryManager *mm = context->getMemoryManager(); VectorOfCopyBinding::iterator end = bindings_->end(); for(VectorOfCopyBinding::iterator it0 = bindings_->begin(); it0 != end; ++it0) { // Work out the uri and localname of the variable binding const XMLCh* prefix=XPath2NSUtils::getPrefix((*it0)->qname_, mm); if(prefix && *prefix) (*it0)->uri_ = context->getUriBoundToPrefix(prefix, this); (*it0)->name_ = XPath2NSUtils::getLocalName((*it0)->qname_); SequenceType *copyType = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_NODE), SequenceType::EXACTLY_ONE); copyType->setLocationInfo(this); // call static resolution on the value (*it0)->expr_ = new (mm) XQCopyOf((*it0)->expr_, /*copyNamespaces*/true, mm); (*it0)->expr_->setLocationInfo(this); (*it0)->expr_ = new (mm) XQTreatAs((*it0)->expr_, copyType, mm, err_XUTY0013); (*it0)->expr_->setLocationInfo(this); (*it0)->expr_ = (*it0)->expr_->staticResolution(context); } // Call staticResolution on the modify expression modify_ = modify_->staticResolution(context); // Call staticResolution on the return expression return_ = return_->staticResolution(context); valMode_ = context->getRevalidationMode(); return this; } ASTNode *UTransform::staticTypingImpl(StaticContext *context) { _src.clear(); // Add all the binding variables to the new scope VectorOfCopyBinding::iterator end = bindings_->end(); for(VectorOfCopyBinding::iterator it0 = bindings_->begin(); it0 != end; ++it0) { if((*it0)->expr_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("UTransform::staticTyping"), X("It is a static error for the copy expression of a transform expression " "to be an updating expression [err:XUST0001]")); } } // Call staticTyping on the modify expression _src.add(modify_->getStaticAnalysis()); _src.updating(false); if(!modify_->getStaticAnalysis().isUpdating() && !modify_->getStaticAnalysis().isPossiblyUpdating()) XQThrow(StaticErrorException, X("UTransform::staticTyping"), X("The modify expression is not an updating expression [err:XUST0002]")); // Call staticResolution on the return expression _src.getStaticType() = return_->getStaticAnalysis().getStaticType(); _src.setProperties(return_->getStaticAnalysis().getProperties()); _src.add(return_->getStaticAnalysis()); if(return_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("UTransform::staticTyping"), X("It is a static error for the return expression of a transform expression " "to be an updating expression [err:XUST0001]")); } VectorOfCopyBinding *newBindings = context == 0 ? 0 : new (context->getMemoryManager()) VectorOfCopyBinding(XQillaAllocator(context->getMemoryManager())); VectorOfCopyBinding::reverse_iterator rend = bindings_->rend(); for(VectorOfCopyBinding::reverse_iterator it = bindings_->rbegin(); it != rend; ++it) { // Remove our binding variable from the StaticAnalysis data (removing it if it's not used) if(!_src.removeVariable((*it)->uri_, (*it)->name_)) { (*it)->qname_ = 0; } _src.add((*it)->expr_->getStaticAnalysis()); // Add the new VB at the front of the new Bindings // (If it's a let binding, and it's variable isn't used, don't add it - there's no point) if(newBindings && (*it)->qname_) { CopyBinding *newVB = new (context->getMemoryManager()) CopyBinding(context->getMemoryManager(), **it); newVB->setLocationInfo(*it); newBindings->insert(newBindings->begin(), newVB); } } // Overwrite our bindings with the new ones if(newBindings) bindings_ = newBindings; return this; } class nodecompare { public: nodecompare(const DynamicContext *context) : context_(context) {} bool operator()(const Node::Ptr &first, const Node::Ptr &second) const { return first->uniqueLessThan(second, context_); } private: const DynamicContext *context_; }; typedef std::set NodeSet; Result UTransform::createResult(DynamicContext* context, int flags) const { context->testInterrupt(); VarStoreImpl scope(context->getMemoryManager(), context->getVariableStore()); AutoVariableStoreReset reset(context, &scope); NodeSet copiedNodes = NodeSet(nodecompare(context)); VectorOfCopyBinding::const_iterator end = getBindings()->end(); for(VectorOfCopyBinding::const_iterator it = getBindings()->begin(); it != end; ++it) { if((*it)->qname_ == 0) continue; Sequence values = (*it)->expr_->createResult(context)->toSequence(context); // Keep a record of the nodes that have been copied Result valIt = values; Item::Ptr val; while((val = valIt->next(context)).notNull()) { copiedNodes.insert((Node*)val.get()); } scope.setVar((*it)->uri_, (*it)->name_, values); } // Get the pending update list PendingUpdateList pul = getModifyExpr()->createUpdateList(context); // Check that the targets of the pending updates are copied nodes for(PendingUpdateList::const_iterator i = pul.begin(); i != pul.end(); ++i) { Node::Ptr target = i->getTarget(); while(copiedNodes.find(target) == copiedNodes.end()) { target = target->dmParent(context); if(target.isNull()) { XQThrow3(StaticErrorException,X("UTransform::staticTyping"), X("The target node of an update expression in the transform expression is not a node from the copy clauses [err:XUDY0014]"), &(*i)); } } } // Apply the updates AutoDelete ufactory(context->createUpdateFactory()); ufactory->applyUpdates(pul, context, getRevalidationMode()); // Execute the return expression return getReturnExpr()->createResult(context); } XQilla-2.3.0/src/update/UReplace.cpp0000644000151400015140000001472311653565523014122 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; UReplace::UReplace(ASTNode *target, ASTNode *expr, XPath2MemoryManager* memMgr) : ASTNodeImpl(UREPLACE, memMgr), target_(target), expr_(expr) { } static const XMLCh err_XUTY0008[] = { 'e', 'r', 'r', ':', 'X', 'U', 'T', 'Y', '0', '0', '0', '8', 0 }; static const XMLCh err_XUDY0027[] = { 'e', 'r', 'r', ':', 'X', 'U', 'D', 'Y', '0', '0', '2', '7', 0 }; ASTNode* UReplace::staticResolution(StaticContext *context) { XPath2MemoryManager *mm = context->getMemoryManager(); SequenceType *targetType1 = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_ANYTHING), SequenceType::PLUS); targetType1->setLocationInfo(this); SequenceType *targetType2 = new (mm) SequenceType(new (mm) SequenceType::ItemType(SequenceType::ItemType::TEST_NODE), SequenceType::EXACTLY_ONE); targetType2->setLocationInfo(this); target_ = new (mm) XQTreatAs(target_, targetType1, mm, err_XUDY0027); target_->setLocationInfo(this); target_ = new (mm) XQTreatAs(target_, targetType2, mm, err_XUTY0008); target_->setLocationInfo(this); target_ = target_->staticResolution(context); expr_ = new (mm) XQContentSequence(expr_, mm); expr_->setLocationInfo(this); expr_ = expr_->staticResolution(context); return this; } ASTNode *UReplace::staticTypingImpl(StaticContext *context) { _src.clear(); _src.add(target_->getStaticAnalysis()); if(target_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("UReplace::staticTyping"), X("It is a static error for the target expression of a replace expression " "to be an updating expression [err:XUST0001]")); } _src.add(expr_->getStaticAnalysis()); if(expr_->getStaticAnalysis().isUpdating()) { XQThrow(StaticErrorException,X("UReplace::staticTyping"), X("It is a static error for the with expression of a replace expression " "to be an updating expression [err:XUST0001]")); } _src.updating(true); return this; } Result UReplace::createResult(DynamicContext* context, int flags) const { return 0; } PendingUpdateList UReplace::createUpdateList(DynamicContext *context) const { Node::Ptr node = (Node*)target_->createResult(context)->next(context).get(); if(node->dmNodeKind() == Node::document_string) XQThrow(XPath2TypeMatchException,X("UReplace::createUpdateList"), X("The target expression of a replace expression does not return a single " "node that is not a document node [err:XUTY0008]")); Node::Ptr parentNode = node->dmParent(context); if(parentNode.isNull()) XQThrow(XPath2TypeMatchException,X("UReplace::createUpdateList"), X("The target node of a replace expression does not have a parent [err:XUDY0009]")); Result tmpRes = expr_->createResult(context); Item::Ptr tmp; Sequence value(context->getMemoryManager()); if(node->dmNodeKind() == Node::element_string || node->dmNodeKind() == Node::text_string || node->dmNodeKind() == Node::comment_string || node->dmNodeKind() == Node::processing_instruction_string) { while((tmp = tmpRes->next(context)).notNull()) { // 3. If $target is an element, text, comment, or processing instruction node, then $rlist must consist exclusively of zero or // more element, text, comment, or processing instruction nodes [err:XUTY0010]. if(((Node*)tmp.get())->dmNodeKind() == Node::attribute_string) XQThrow(XPath2TypeMatchException,X("UReplace::staticTyping"), X("The with expression of a replace expression must not contain attributes when not replacing an attribute [err:XUTY0010]")); value.addItem(tmp); } return PendingUpdate(PendingUpdate::REPLACE_NODE, node, value, this); } else { while((tmp = tmpRes->next(context)).notNull()) { // 4. If $target is an attribute node, then: // a. $rlist must consist exclusively of zero or more attribute nodes [err:XUTY0011]. if(((Node*)tmp.get())->dmNodeKind() != Node::attribute_string) XQThrow(XPath2TypeMatchException,X("UReplace::staticTyping"), X("The with expression of a replace expression must only contain attributes when replacing an attribute [err:XUTY0011]")); // b. No attribute node in $rlist may have a QName whose implied namespace binding conflicts with a namespace binding in the // "namespaces" property of $parent [err:XUDY0023]. ATQNameOrDerived::Ptr qname = ((Node*)tmp.get())->dmNodeName(context); if(!UInsertAsLast::checkNamespaceBinding(qname, parentNode, context, this)) { XMLBuffer buf; buf.append(X("Implied namespace binding for the replace expression (\"")); buf.append(qname->getPrefix()); buf.append(X("\" -> \"")); buf.append(qname->getURI()); buf.append(X("\") conflicts with those already existing on the parent element of the target attribute [err:XUDY0023]")); XQThrow(DynamicErrorException, X("URename::createUpdateList"), buf.getRawBuffer()); } value.addItem(tmp); } return PendingUpdate(PendingUpdate::REPLACE_ATTRIBUTE, node, value, this); } } XQilla-2.3.0/src/items/0000755000151400015140000000000011653572443011625 500000000000000XQilla-2.3.0/src/items/DatatypeFactory.cpp0000644000151400015140000001342311653565523015360 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include "../exceptions/InvalidLexicalSpaceException.hpp" #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif DatatypeFactory::DatatypeFactory(const DocumentCache* dc, DatatypeValidator *baseValidator) : fBaseValidator(baseValidator), fDocumentCache(dc) { } DatatypeFactory::~DatatypeFactory() { } AnyAtomicType::Ptr DatatypeFactory::createInstance(const XMLCh* value, const DynamicContext* context) const { if(fBaseValidator->getWSFacet()==DatatypeValidator::COLLAPSE && !XMLString::isWSCollapsed(value)) { XMLCh* tempValue=XMLString::replicate(value, context->getMemoryManager()); XMLString::collapseWS(tempValue, context->getMemoryManager()); value=tempValue; } if(fBaseValidator->getWSFacet()==DatatypeValidator::REPLACE && !XMLString::isWSReplaced(value)) { XMLCh* tempValue=XMLString::replicate(value, context->getMemoryManager()); XMLString::replaceWS(tempValue, context->getMemoryManager()); value=tempValue; } try { fBaseValidator->validate(value, 0, context->getMemoryManager()); } catch (XMLException &e) { XQThrow2(InvalidLexicalSpaceException, X("DatatypeFactory::createInstance"), e.getMessage()); } return createInstanceNoCheck(getPrimitiveTypeURI(), getPrimitiveTypeName(), value, context); } AnyAtomicType::Ptr DatatypeFactory::createInstance(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) const { if(typeName == 0) return createInstance(value, context); DatatypeValidator* validator = const_cast(fDocumentCache->getDatatypeValidator(typeURI, typeName)); if(!validator) { XMLBuffer buf(1023, context->getMemoryManager()); buf.append(X("Type ")); buf.append(typeURI); buf.append(chColon); buf.append(typeName); buf.append(X(" not found")); XQThrow2(TypeNotFoundException, X("DatatypeFactoryTemplate::createInstance"), buf.getRawBuffer()); } if(validator->getWSFacet()==DatatypeValidator::COLLAPSE && !XMLString::isWSCollapsed(value)) { XMLCh* tempValue=XMLString::replicate(value, context->getMemoryManager()); XMLString::collapseWS(tempValue, context->getMemoryManager()); value=tempValue; } if(validator->getWSFacet()==DatatypeValidator::REPLACE && !XMLString::isWSReplaced(value)) { XMLCh* tempValue=XMLString::replicate(value, context->getMemoryManager()); XMLString::replaceWS(tempValue, context->getMemoryManager()); value=tempValue; } try { const XMLCh* valueToValidate=value; if(validator->getType()==DatatypeValidator::NOTATION) { const XMLCh* localPart = XPath2NSUtils::getLocalName(value); const XMLCh* prefix = XPath2NSUtils::getPrefix(value, context->getMemoryManager()); const XMLCh* uriStr = (prefix && *prefix) ? context->getUriBoundToPrefix(prefix, 0) : XMLUni::fgZeroLenString; XMLCh szColon[]={ chColon, chNull }; valueToValidate=XPath2Utils::concatStrings(uriStr, szColon, localPart, context->getMemoryManager()); } validator->validate(valueToValidate, 0, context->getMemoryManager()); } catch (XMLException &e) { XMLBuffer buf(1023, context->getMemoryManager()); buf.append(e.getMessage()); buf.append(X(" [err:FORG0001]")); XQThrow2(InvalidLexicalSpaceException, X("DatatypeFactory::createInstance"), buf.getRawBuffer()); } return createInstanceNoCheck(typeURI, typeName, value, context); } bool DatatypeFactory::checkInstance(const XMLCh* value, MemoryManager *mm) const { try { fBaseValidator->validate(value, 0, mm); } catch (XMLException &e) { return false; } return true; } bool DatatypeFactory::checkInstance(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, MemoryManager *mm) const { DatatypeValidator* validator = const_cast(fDocumentCache->getDatatypeValidator(typeURI, typeName)); if(!validator) { XMLBuffer buf(1023, mm); buf.append(X("Type ")); buf.append(typeURI); buf.append(chColon); buf.append(typeName); buf.append(X(" not found")); XQThrow2(TypeNotFoundException, X("DatatypeFactoryTemplate::createInstance"), buf.getRawBuffer()); } try { validator->validate(value, 0, mm); } catch (XMLException &e) { return false; } return true; } XQilla-2.3.0/src/items/ATUntypedAtomic.cpp0000644000151400015140000000277711653565523015301 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include /* untypedAtomic */ const XMLCh ATUntypedAtomic::fgDT_UNTYPEDATOMIC[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_y, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_p, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_A, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; XQilla-2.3.0/src/items/Node.cpp0000644000151400015140000001173311653565523013144 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include const XMLCh Node::document_string[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e ,XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const XMLCh Node::element_string[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_l, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const XMLCh Node::attribute_string[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_b, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const XMLCh Node::text_string[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_x, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const XMLCh Node::processing_instruction_string[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_p, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_g, XERCES_CPP_NAMESPACE_QUALIFIER chDash, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const XMLCh Node::comment_string[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const XMLCh Node::namespace_string[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_s, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_p, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_c, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; bool Node::isAtomicValue() const { return false; } bool Node::isNode() const { return true; } bool Node::isFunction() const { return false; } void Node::typeToBuffer(DynamicContext *context, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &buffer) const { buffer.append(dmNodeKind()); buffer.append('('); if(dmNodeKind() == element_string || dmNodeKind() == attribute_string) { ATQNameOrDerived::Ptr qname = dmNodeName(context); if(qname->getURI()) { buffer.append('{'); buffer.append(qname->getURI()); buffer.append('}'); } buffer.append(qname->getName()); buffer.append(','); buffer.append(' '); if(getTypeURI()) { buffer.append('{'); buffer.append(getTypeURI()); buffer.append('}'); } buffer.append(getTypeName()); } buffer.append(')'); } XQilla-2.3.0/src/items/impl/0000755000151400015140000000000011653572443012566 500000000000000XQilla-2.3.0/src/items/impl/ATAnyURIOrDerivedImpl.hpp0000644000151400015140000000520311653565523017202 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATANYURIORDERIVEDIMPL_HPP #define _ATANYURIORDERIVEDIMPL_HPP #include #include #include class DynamicContext; class XQILLA_API ATAnyURIOrDerivedImpl : public ATAnyURIOrDerived { public: /* constructor */ ATAnyURIOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const StaticContext* context); virtual void *getInterface(const XMLCh *name) const; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const; /* returns true if the two objects' URI are equal (string comparison) * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const; /* Get the primitive index associated with this type */ static AnyAtomicType::AtomicObjectType getTypeIndex(); /* Get the primitive type name */ static const XMLCh* getPrimitiveName(); /* Get the primitive index associated with this type */ virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const; protected: /* If possible, cast this type to the target type */ virtual AnyAtomicType::Ptr castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const; private: /*The value of this URI*/ const XMLCh* _uri; /* the name of this type */ const XMLCh* _typeName; /* the uri of this type */ const XMLCh* _typeURI; }; #endif // _ATANYURIORDERIVEDIMPL_HPP XQilla-2.3.0/src/items/impl/ATHexBinaryOrDerivedImpl.hpp0000644000151400015140000000560511653565523017772 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATHEXBINARYORDERIVEDIMPL_HPP #define _ATHEXBINARYORDERIVEDIMPL_HPP #include #include #include class DynamicContext; class XQILLA_API ATHexBinaryOrDerivedImpl : public ATHexBinaryOrDerived { public: /* constructor */ ATHexBinaryOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const StaticContext* context); virtual void *getInterface(const XMLCh *name) const; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const; /* returns true if the two objects' URI are equal (string comparison) * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATHexBinaryOrDerived::Ptr &other, const DynamicContext *context) const; /* Get the primitive index associated with this type */ static AnyAtomicType::AtomicObjectType getTypeIndex(); /* Get the primitive type name */ static const XMLCh* getPrimitiveName(); /* Get the primitive index associated with this type */ virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const; protected: /* If possible, cast this type to the target type */ virtual AnyAtomicType::Ptr castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const; private: /*The value of this hexBinary*/ const XMLCh* _hexBinaryData; /* the name of this type */ const XMLCh* _typeName; /* the uri of this type */ const XMLCh* _typeURI; }; #endif // _ATHEXBINARYORDERIVEDIMPL_HPP XQilla-2.3.0/src/items/impl/ATFloatOrDerivedImpl.cpp0000644000151400015140000010055511653565523017141 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif int ATFloatOrDerivedImpl::g_nSignificantDigits=25; ATFloatOrDerivedImpl:: ATFloatOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const StaticContext* context): ATFloatOrDerived(), _typeName(typeName), _typeURI(typeURI) { setFloat(value); // if state is NaN, it could be because it should be INF or -INF if(_state == NaN) { if(XPath2Utils::equals(value, Numeric::NegINF_string)) { _state = NEG_INF; } else if (XPath2Utils::equals(value, Numeric::INF_string)) { _state = INF; } } checkFloatLimits(_state, _float); } ATFloatOrDerivedImpl:: ATFloatOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const MAPM value, const StaticContext* context): ATFloatOrDerived(), _typeName(typeName), _typeURI(typeURI) { _float = value; _state = NUM; if (value.sign() < 0) _state = NEG_NUM; checkFloatLimits(_state, _float); } void *ATFloatOrDerivedImpl::getInterface(const XMLCh *name) const { if(name == Item::gXQilla) { return (void*)this; } return 0; } /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ const XMLCh* ATFloatOrDerivedImpl::getPrimitiveTypeName() const { return this->getPrimitiveName(); } const XMLCh* ATFloatOrDerivedImpl::getPrimitiveName() { return SchemaSymbols::fgDT_FLOAT; } /* Get the name of this type (ie "integer" for xs:integer) */ const XMLCh* ATFloatOrDerivedImpl::getTypeName() const { return _typeName; } /* Get the namespace URI for this type */ const XMLCh* ATFloatOrDerivedImpl::getTypeURI() const { return _typeURI; } AnyAtomicType::AtomicObjectType ATFloatOrDerivedImpl::getTypeIndex() { return AnyAtomicType::FLOAT; } /* returns the XMLCh* (canonical) representation of this type */ const XMLCh* ATFloatOrDerivedImpl::asString(const DynamicContext* context) const { return asDoubleString(g_nSignificantDigits, context); } /* Promote this to the given type, if possible */ Numeric::Ptr ATFloatOrDerivedImpl::promoteTypeIfApplicable(AnyAtomicType::AtomicObjectType typeIndex, const DynamicContext* context) const { switch(typeIndex) { case AnyAtomicType::FLOAT: return this; case AnyAtomicType::DOUBLE: return (const Numeric::Ptr)castAs(typeIndex, context); default: break; } return 0; } /** Returns a Numeric object which is the sum of this and other */ Numeric::Ptr ATFloatOrDerivedImpl::add(const Numeric::Ptr &other, const DynamicContext* context) const { if(other->getPrimitiveTypeIndex() == AnyAtomicType::DECIMAL) { // if other is a decimal, promote it to xs:float return this->add((const Numeric::Ptr )other->castAs(this->getPrimitiveTypeIndex(), context), context); } else if (other->getPrimitiveTypeIndex() == AnyAtomicType::DOUBLE) { // if other is a double, promote this to xs:double return ((const Numeric::Ptr )this->castAs(other->getPrimitiveTypeIndex(), context))->add(other, context); } else if (other->getPrimitiveTypeIndex() == AnyAtomicType::FLOAT) { // same primitive type, can make comparison ATFloatOrDerivedImpl* otherImpl = (ATFloatOrDerivedImpl*)(const Numeric*)other; if(otherImpl->_state == NaN) return notANumber(context); switch (_state) { case NaN: return notANumber(context); case INF: { switch(otherImpl->_state) { case NaN: return notANumber(context); // case taken care of above case NEG_NUM: case NUM: return infinity(context); // INF + NUM = INF case INF: return infinity(context); // INF + INF = INF case NEG_INF: return notANumber(context); // INF + (-INF) = NaN default: assert(false); return 0; // should never get here } } case NEG_INF: { switch(otherImpl->_state) { case NaN: return notANumber(context); //case taken care of above case NEG_NUM: case NUM: return negInfinity(context); // -INF + NUM = -INF case INF: return notANumber(context); // -INF + INF = NaN case NEG_INF: return negInfinity(context); // -INF + (-INF) = -INF default: assert(false); return 0; // should never get here } } case NEG_NUM: case NUM: { switch(otherImpl->_state) { case NaN: return notANumber(context); // case taken care of above case INF: return infinity(context); case NEG_INF: return negInfinity(context); case NEG_NUM: case NUM: { // Handle positive and negative zero if(_float.sign()==0 && otherImpl->_float!=0) return other; else if(_float.sign()!=0 && otherImpl->_float==0) return this; else if(_float.sign()==0 && otherImpl->_float==0) { if(_state==otherImpl->_state) // sum of two zero of the same sign -> result is equal to any of the two items return this; else // sum of two zero of different sign -> result is equal to +0 return newFloat(0, context); } return newFloat(_float + otherImpl->_float, context); } default: assert(false); return 0; // should never get here } } default: assert(false); return 0; // should never get here } } else { assert(false); // should never get here, numeric types are xs:decimal, xs:float, xs:integer and xs:double return 0; } } /** Returns a Numeric object which is the difference of this and * other */ Numeric::Ptr ATFloatOrDerivedImpl::subtract(const Numeric::Ptr &other, const DynamicContext* context) const { if(other->getPrimitiveTypeIndex() == AnyAtomicType::DECIMAL) { // if other is a decimal, promote it to xs:float return this->subtract((const Numeric::Ptr )other->castAs(this->getPrimitiveTypeIndex(), context), context); } else if (other->getPrimitiveTypeIndex() == AnyAtomicType::DOUBLE) { // if other is a double, promote this to xs:double return ((const Numeric::Ptr )this->castAs(other->getPrimitiveTypeIndex(), context))->subtract(other, context); } else if (other->getPrimitiveTypeIndex() == AnyAtomicType::FLOAT) { // same primitive type, can make comparison ATFloatOrDerivedImpl* otherImpl = (ATFloatOrDerivedImpl*)(const Numeric*)other; if(otherImpl->_state == NaN) return notANumber(context); switch (_state) { case NaN: return notANumber(context); case INF: { switch(otherImpl->_state) { case NaN: return notANumber(context); // case taken care of above case NEG_NUM: case NUM: return infinity(context); // INF - NUM = INF case INF: return notANumber(context); // INF - INF = NaN case NEG_INF: return infinity(context); // INF - (-INF) = INF default: assert(false); return 0; // should never get here } } case NEG_INF: { switch(otherImpl->_state) { case NaN: return notANumber(context); //case taken care of above case NEG_NUM: case NUM: return negInfinity(context); // -INF - NUM = -INF case INF: return negInfinity(context); // -INF - INF = -INF case NEG_INF: return notANumber(context); // -INF - (-INF) = NaN default: assert(false); return 0; // should never get here } } case NEG_NUM: case NUM: { switch(otherImpl->_state) { case NaN: return notANumber(context); // case taken care of above case INF: return negInfinity(context); // NUM - INF = -INF case NEG_INF: return infinity(context); // NUM - (-INF) = INF case NEG_NUM: case NUM: return newFloat(_float - otherImpl->_float, context); default: assert(false); return 0; // should never get here } } default: assert(false); return 0; // should never get here } } else { assert(false); // should never get here, numeric types are xs:decimal, xs:float, xs:integer and xs:double return 0; } } /** Returns a Numeric object which is the product of this and other */ Numeric::Ptr ATFloatOrDerivedImpl::multiply(const Numeric::Ptr &other, const DynamicContext* context) const { if(other->getPrimitiveTypeIndex() == AnyAtomicType::DECIMAL) { // if other is a decimal, promote it to xs:float return this->multiply((const Numeric::Ptr )other->castAs(this->getPrimitiveTypeIndex(), context), context); } else if (other->getPrimitiveTypeIndex() == AnyAtomicType::DOUBLE) { // if other is a double, promote this to xs:double return ((const Numeric::Ptr )this->castAs(other->getPrimitiveTypeIndex(), context))->multiply(other, context); } else if (other->getPrimitiveTypeIndex() == AnyAtomicType::FLOAT) { // same primitive type, can make comparison ATFloatOrDerivedImpl* otherImpl = (ATFloatOrDerivedImpl*)(const Numeric*)other; if(otherImpl->_state == NaN) return notANumber(context); switch (_state) { case NaN: return notANumber(context); case INF: { switch(otherImpl->_state) { case NaN: return notANumber(context); // case taken care of above case NEG_NUM: case NUM: return other->isPositive() ? infinity(context) : negInfinity(context); // INF * NUM = +/-INF case INF: return infinity(context); // INF * INF = INF case NEG_INF: return negInfinity(context); // INF * (-INF) = -INF default: assert(false); return 0; // should never get here } } case NEG_INF: { switch(otherImpl->_state) { case NaN: return notANumber(context); //case taken care of above case NEG_NUM: case NUM: return other->isPositive() ? negInfinity(context) : infinity(context); // -INF * NUM = +/-INF case INF: return negInfinity(context); // -INF * INF = -INF case NEG_INF: return infinity(context); // -INF * (-INF) = INF default: assert(false); return 0; // should never get here } } case NEG_NUM: case NUM: { switch(otherImpl->_state) { case NaN: return notANumber(context); // case taken care of above case INF: return this->isPositive() ? infinity(context) : negInfinity(context); // NUM * INF = +/-INF case NEG_INF: return this->isPositive() ? negInfinity(context) : infinity(context); // NUM * (-INF) = +/-INF case NEG_NUM: case NUM: if(other->isZero() || this->isZero()) { if((this->isNegative() && other->isPositive()) || (this->isPositive() && other->isNegative())) { return negZero(context); // 0 / (-NUM) or (-0) / NUM = -0 } else { return newFloat(0, context); // 0 / NUM or (-0) / (-NUM) = 0 } } return newFloat(_float * otherImpl->_float, context); default: assert(false); return 0; // should never get here } } default: assert(false); return 0; // should never get here } } else { assert(false); // should never get here, numeric types are xs:decimal, xs:float, xs:integer and xs:double return 0; } } /** Returns a Numeric object which is the quotient of this and other */ Numeric::Ptr ATFloatOrDerivedImpl::divide(const Numeric::Ptr &other, const DynamicContext* context) const { if(other->getPrimitiveTypeIndex() == AnyAtomicType::DECIMAL) { // if other is a decimal, promote it to xs:float return this->divide((const Numeric::Ptr )other->castAs(this->getPrimitiveTypeIndex(), context), context); } else if (other->getPrimitiveTypeIndex() == AnyAtomicType::DOUBLE) { // if other is a double, promote this to xs:double return ((const Numeric::Ptr )this->castAs(other->getPrimitiveTypeIndex(), context))->divide(other, context); } else if (other->getPrimitiveTypeIndex() == AnyAtomicType::FLOAT) { // same primitive type, can make comparison ATFloatOrDerivedImpl* otherImpl = (ATFloatOrDerivedImpl*)(const Numeric*)other; if(otherImpl->_state == NaN) return notANumber(context); switch (_state) { case NaN: return notANumber(context); case INF: { switch(otherImpl->_state) { case NaN: return notANumber(context); // case taken care of above case NEG_NUM: case NUM: return other->isPositive() ? infinity(context) : negInfinity(context); // INF / NUM = +/-INF case INF: return notANumber(context); // INF / INF = NaN case NEG_INF: return notANumber(context); // INF / (-INF) = NaN default: assert(false); return 0; // should never get here } // switch }// case case NEG_INF: { switch(otherImpl->_state) { case NaN: return notANumber(context); //case taken care of above case NEG_NUM: case NUM: return other->isPositive() ? negInfinity(context) : infinity(context); // -INF / NUM = -INF case INF: return notANumber(context); // -INF / INF = NaN case NEG_INF: return notANumber(context); // -INF / (-INF) = NaN default: assert(false); return 0; // should never get here } // switch } // case case NEG_NUM: case NUM: { switch(otherImpl->_state) { case NaN: return notANumber(context); // case taken care of above case INF: { // NUM / INF = +/-0 if(this->isNegative()) { return negZero(context); } else { return newFloat(0, context); } }// case case NEG_INF: { // NUM / -INF = +/-0 if(this->isPositive()) { return negZero(context); } else { return newFloat(0, context); } }// case case NEG_NUM: case NUM: { if(other->isZero()) { if(this->isZero()) return notANumber(context); if((this->isNegative() && other->isPositive()) || (this->isPositive() && other->isNegative())) { return negInfinity(context); // NUM / (-0) or (-NUM) / 0 = -INF } else { return infinity(context); // NUM / 0 or (-NUM) / (-0) = INF } } else if(this->isZero()) { if((this->isNegative() && other->isPositive()) || (this->isPositive() && other->isNegative())) { return negZero(context); // 0 / (-NUM) or (-0) / NUM = -0 } else { return newFloat(0, context); // 0 / NUM or (-0) / (-NUM) = 0 } } return newFloat(_float / otherImpl->_float, context); }// case default: assert(false); return 0; // should never get here }// switch }// case default: assert(false); return 0; // should never get here }// switch } else { assert(false); // should never get here, numeric types are xs:decimal, xs:float, xs:integer and xs:double return 0; } } /** Returns the mod of its operands as a Numeric */ Numeric::Ptr ATFloatOrDerivedImpl::mod(const Numeric::Ptr &other, const DynamicContext* context) const { if(other->getPrimitiveTypeIndex() == AnyAtomicType::DECIMAL) { // if other is a decimal, promote it to xs:float return this->mod((const Numeric::Ptr )other->castAs(this->getPrimitiveTypeIndex(), context), context); } else if (other->getPrimitiveTypeIndex() == AnyAtomicType::DOUBLE) { // if other is a double, promote this to xs:double return ((const Numeric::Ptr )this->castAs(other->getPrimitiveTypeIndex(), context))->mod(other, context); } else if (other->getPrimitiveTypeIndex() == AnyAtomicType::FLOAT) { // same primitive type, can make comparison const ATFloatOrDerivedImpl* otherImpl = (ATFloatOrDerivedImpl*)(const Numeric*)other; if(this->isNaN() || otherImpl->isNaN() || this->isInfinite() || otherImpl->isZero()) { return notANumber(context); } else if(otherImpl->isInfinite() || this->isZero()) { return (const Numeric::Ptr )this->castAs(AnyAtomicType::FLOAT, context); } else { MAPM result = _float; MAPM r; r = result.integer_divide(otherImpl->_float); result -= r * otherImpl->_float; if (result == 0 && isNegative()) return negZero(context); return newFloat(result, context); } } else { assert(false); // should never get here, numeric types are xs:decimal, xs:float, xs:integer and xs:double return 0; } } Numeric::Ptr ATFloatOrDerivedImpl::power(const Numeric::Ptr &other, const DynamicContext* context) const { switch(other->getPrimitiveTypeIndex()) { case DECIMAL: // if other is a decimal, promote it to xs:float return power(context->getItemFactory()->createFloat(other->asMAPM(), context), context); case FLOAT: { ATFloatOrDerivedImpl *otherImpl = (ATFloatOrDerivedImpl*)other.get(); switch(_state) { case NaN: return this; case INF: { switch(otherImpl->_state) { case NaN: return other; case NEG_NUM: case NUM: case INF: case NEG_INF: return this; default: assert(false); return 0; // should never get here } } case NEG_INF: { switch(otherImpl->_state) { case NaN: return other; case NEG_NUM: case NUM: case INF: case NEG_INF: return this; default: assert(false); return 0; // should never get here } } case NEG_NUM: case NUM: { switch(otherImpl->_state) { case NaN: return other; case INF: return other; case NEG_INF: return infinity(context); case NEG_NUM: case NUM: return newFloat(_float.pow(otherImpl->_float), context); default: assert(false); return 0; // should never get here } } default: assert(false); return 0; // should never get here } } case DOUBLE: return ((Numeric*)this->castAs(DOUBLE, context).get())->power(other, context); default: assert(false); return 0; // Shouldn't happen } } /** Returns the floor of this Numeric */ Numeric::Ptr ATFloatOrDerivedImpl::floor(const DynamicContext* context) const { switch (_state) { case NaN: return notANumber(context); case INF: return infinity(context); case NEG_INF: return negInfinity(context); case NEG_NUM: case NUM: { if (isZero() && isNegative()) return negZero(context); return newFloat(_float.floor(), context); } default: { assert(false); return 0; // should never get here } } } /** Returns the ceiling of this Numeric */ Numeric::Ptr ATFloatOrDerivedImpl::ceiling(const DynamicContext* context) const { switch (_state) { case NaN: return notANumber(context); case INF: return infinity(context); case NEG_INF: return negInfinity(context); case NEG_NUM: case NUM: { if (isNegative() && _float >= -0.5) { return negZero(context); } return newFloat(_float.ceil(), context); } default: { assert(false); return 0; // should never get here } } } /** Rounds this Numeric */ Numeric::Ptr ATFloatOrDerivedImpl::round(const DynamicContext* context) const { switch (_state) { case NaN: return notANumber(context); case INF: return infinity(context); case NEG_INF: return negInfinity(context); case NEG_NUM: case NUM: { if (isNegative() &&_float >= -0.5) { return negZero(context); } MAPM value = _float + 0.5; return newFloat(value.floor(), context); } default: { assert(false); return 0; // should never get here } } } /** Rounds this Numeric to the given precision, and rounds a half to even */ Numeric::Ptr ATFloatOrDerivedImpl::roundHalfToEven(const Numeric::Ptr &precision, const DynamicContext* context) const { switch (_state) { case NaN: return notANumber(context); case INF: return infinity(context); case NEG_INF: return negInfinity(context); case NEG_NUM: case NUM: break; default: { assert(false); return 0; // should never get here } } if (isZero() && isNegative()) return this; ATFloatOrDerived::Ptr float_precision = (const Numeric::Ptr)precision->castAs(this->getPrimitiveTypeIndex(), context); MAPM exp = MAPM(10).pow(((ATFloatOrDerivedImpl*)(const ATFloatOrDerived*)float_precision)->_float); MAPM value = _float * exp; bool halfVal = false; // check if we're rounding on a half value if((value-0.5) == (value.floor())) { halfVal = true; } value = _float * exp + 0.5; value = value.floor(); // if halfVal make sure what we return has the least significant digit even if (halfVal) { if(value.is_odd()) { value = value - 1; } } value = value / exp; // the spec doesn't actually say to do this, but djf believes this is the correct way to handle rounding of -ve values which will result in 0.0E0 // if (value == 0 && isNegative()) // return negZero(context); return newFloat(value, context); } /** Returns the Additive inverse of this Numeric */ Numeric::Ptr ATFloatOrDerivedImpl::invert(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return negInfinity(context); case NEG_INF: return infinity(context); case NEG_NUM: case NUM: if(this->isZero()) { if(this->isNegative()) return newFloat(0, context); else return negZero(context); } return newFloat(_float.neg(), context); default: assert(false); return 0; // should never get here } } Numeric::Ptr ATFloatOrDerivedImpl::abs(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return infinity(context); case NEG_INF: return infinity(context); case NEG_NUM: case NUM: return newFloat(_float.abs(), context); default: assert(false); return 0; // should never get here } } /** Returns the square root of this Numeric */ Numeric::Ptr ATFloatOrDerivedImpl::sqrt(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return infinity(context); case NEG_INF: return notANumber(context); case NEG_NUM: return notANumber(context); case NUM: return newFloat(_float.sqrt(), context); default: assert(false); return 0; // should never get here } } /** Returns the sinus of this Numeric */ Numeric::Ptr ATFloatOrDerivedImpl::sin(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return notANumber(context);; case NEG_INF: return notANumber(context);; case NEG_NUM: case NUM: return newFloat(_float.sin(), context); default: assert(false); return 0; // should never get here } } Numeric::Ptr ATFloatOrDerivedImpl::cos(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return notANumber(context); case NEG_INF: return notANumber(context);; case NEG_NUM: case NUM: return newFloat(_float.cos(), context); default: assert(false); return 0; // should never get here } } Numeric::Ptr ATFloatOrDerivedImpl::tan(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return notANumber(context); case NEG_INF: return notANumber(context); case NEG_NUM: case NUM: return newFloat(_float.tan(), context); default: assert(false); return 0; // should never get here } } Numeric::Ptr ATFloatOrDerivedImpl::asin(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return notANumber(context); case NEG_INF: return notANumber(context); case NEG_NUM: case NUM: if(_float.abs() > 1)return notANumber(context); return newFloat(_float.asin(), context); default: assert(false); return 0; // should never get here } } Numeric::Ptr ATFloatOrDerivedImpl::acos(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return notANumber(context); case NEG_INF: return notANumber(context); case NEG_NUM: case NUM: if(_float.abs() > 1)return notANumber(context); return newFloat(_float.acos(), context); default: assert(false); return 0; // should never get here } } Numeric::Ptr ATFloatOrDerivedImpl::atan(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return newFloat((MM_HALF_PI), context); case NEG_INF: return newFloat(MAPM(MM_HALF_PI).neg(), context); case NEG_NUM: case NUM: return newFloat(_float.atan(), context); default: assert(false); return 0; // should never get here } } Numeric::Ptr ATFloatOrDerivedImpl::log(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return infinity(context); case NEG_INF: return notANumber(context); case NEG_NUM: return notANumber(context); case NUM: if(_float == 0)return notANumber(context); return newFloat(_float.log(), context); default: assert(false); return 0; // should never get here } } Numeric::Ptr ATFloatOrDerivedImpl::exp(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return infinity(context); case NEG_INF: return newFloat(0, context); case NEG_NUM: case NUM: return newFloat(_float.exp(), context); default: assert(false); return 0; // should never get here } } /** Does this Numeric have value 0? */ bool ATFloatOrDerivedImpl::isZero() const { switch (_state) { case NaN: case INF: case NEG_INF: return false; case NEG_NUM: case NUM: return _float.sign() == 0; default: { assert(false); return false; // should never get here } } } /** Is this Numeric positive? */ bool ATFloatOrDerivedImpl::isPositive() const { switch (_state) { case INF: case NUM: return true; case NaN: case NEG_INF: case NEG_NUM: return false; } assert(false); return false; // should never get here } /** Is this Numeric negative? */ bool ATFloatOrDerivedImpl::isNegative() const { switch (_state) { case NaN: case INF: case NUM: return false; case NEG_NUM: case NEG_INF: return true; } assert(false); return false; // should never get here } /* Is this xs:float not a number */ bool ATFloatOrDerivedImpl::isNaN() const { return _state == NaN; } /* Is this xs:float infinite? */ bool ATFloatOrDerivedImpl::isInfinite() const { return _state == INF || _state == NEG_INF; } AnyAtomicType::AtomicObjectType ATFloatOrDerivedImpl::getPrimitiveTypeIndex() const { return this->getTypeIndex(); } /* returns a new infinity xs:float*/ ATFloatOrDerived::Ptr ATFloatOrDerivedImpl::infinity(const DynamicContext* context) const { return context->getItemFactory()->createFloat(Numeric::INF_string, context); } /* returns a new negative infinity xs:float*/ ATFloatOrDerived::Ptr ATFloatOrDerivedImpl::negInfinity(const DynamicContext* context) const { return context->getItemFactory()->createFloat(Numeric::NegINF_string, context); } /* returns a NaN xs:float*/ ATFloatOrDerived::Ptr ATFloatOrDerivedImpl::notANumber(const DynamicContext* context) const { return context->getItemFactory()->createFloat(Numeric::NaN_string, context); } /* returns a -0 ATFloatOrDerived*/ ATFloatOrDerived::Ptr ATFloatOrDerivedImpl::negZero(const DynamicContext* context) const { return context->getItemFactory()->createFloat(Numeric::NegZero_string, context); } /*returns a ATFloatOrDerived of value value*/ ATFloatOrDerived::Ptr ATFloatOrDerivedImpl::newFloat(MAPM value, const DynamicContext* context) const { return context->getItemFactory()->createFloat(value, context); } static MAPM parse(const XMLCh* const value, Numeric::State &state) { if(value == NULL) { // Not a Number state = Numeric::NaN; return 0; } unsigned int length = XPath2Utils::uintStrlen(value) + 1; AutoDeleteArray buffer(new char[length]); bool gotBase = false; bool gotPoint = false; bool gotSign = false; bool gotDigit = false; bool stop = false; bool munchWS = true; bool isNegative = false; const XMLCh *src = value; char *dest = buffer; XMLCh tmpChar; while(!stop && *src != 0) { tmpChar = *src++; switch(tmpChar) { case L'+': { *dest++ = '+'; if(gotSign || gotDigit) { stop = true; } else { gotSign = true; } break; } case L'-': { *dest++ = '-'; if(gotSign || gotDigit) { stop = true; } else { gotSign = true; if(!gotBase) isNegative = true; } break; } case 0x0045: case 0x0065: { *dest++ = 'e'; if(!gotDigit || gotBase) { stop = true; } else { gotPoint = false; gotSign = false; gotBase = true; gotDigit = false; } break; } //This is '.' case 0x002e: { *dest++ = '.'; if(gotPoint || gotBase) { stop = true; } else { gotPoint = true; } break; } case 0x0030: case 0x0031: case 0x0032: case 0x0033: case 0x0034: case 0x0035: case 0x0036: case 0x0037: case 0x0038: case 0x0039: { gotDigit = true; *dest++ = (char)(tmpChar - 0x0030) + '0'; break; } // whitespace at start or end of string... case 0x0020: case 0x0009: case 0x000d: case 0x000a: { bool endOfWS = false; while(!endOfWS && *src != 0) { tmpChar = *src++; switch(tmpChar) { case 0x0020: case 0x0009: case 0x000d: case 0x000a: { break; } default: { endOfWS = true; --src; if(munchWS) { //end of leading whitespace munchWS = false; } else { //trailing whitespace is followed by other characters - so return NaN. stop = true; } } } } break; } default: stop = true; break; } } if(!gotDigit || stop) { if(XPath2Utils::equals(value, Numeric::NegINF_string)) { state = Numeric::NEG_INF; } else if (XPath2Utils::equals(value, Numeric::INF_string)) { state = Numeric::INF; } else { state = Numeric::NaN; } return 0; } *dest++ = 0; // Null terminate if(isNegative) state = Numeric::NEG_NUM; else state = Numeric::NUM; return (char*)buffer; } void ATFloatOrDerivedImpl::setFloat(const XMLCh* const value) { _float = parse(value, _state); } MAPM ATFloatOrDerivedImpl::parseFloat(const XMLCh* const value, State &state) { MAPM result = parse(value, state); Numeric::checkFloatLimits(state, result); return result; } XQilla-2.3.0/src/items/impl/ATDateTimeOrDerivedImpl.cpp0000644000151400015140000006164111653565523017572 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include // for INT_MIN and INT_MAX #include // for atoi #include #include "../../utils/DateUtils.hpp" #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif ATDateTimeOrDerivedImpl:: ATDateTimeOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context): _typeName(typeName), _typeURI(typeURI) { setDateTime(value); } // private constructor for internal use ATDateTimeOrDerivedImpl::ATDateTimeOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const MAPM &seconds, const Timezone::Ptr &timezone, bool hasTimezone) : seconds_(seconds), timezone_(timezone), _hasTimezone(hasTimezone), _typeName(typeName), _typeURI(typeURI) { } void *ATDateTimeOrDerivedImpl::getInterface(const XMLCh *name) const { if(name == Item::gXQilla) { return (void*)this; } return 0; } /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ const XMLCh* ATDateTimeOrDerivedImpl::getPrimitiveTypeName() const { return this->getPrimitiveName(); } const XMLCh* ATDateTimeOrDerivedImpl::getPrimitiveName() { return SchemaSymbols::fgDT_DATETIME; } /* Get the name of this type (ie "integer" for xs:integer) */ const XMLCh* ATDateTimeOrDerivedImpl::getTypeName() const { return _typeName; } /* Get the namespace URI for this type */ const XMLCh* ATDateTimeOrDerivedImpl::getTypeURI() const { return _typeURI; } AnyAtomicType::AtomicObjectType ATDateTimeOrDerivedImpl::getTypeIndex() { return AnyAtomicType::DATE_TIME; } static inline MAPM hourFromSeconds(const MAPM &value) { return DateUtils::modulo(value, DateUtils::g_secondsPerDay).integer_divide(DateUtils::g_secondsPerHour); } static inline MAPM minuteFromSeconds(const MAPM &value) { return DateUtils::modulo(value, DateUtils::g_secondsPerHour).integer_divide(DateUtils::g_secondsPerMinute); } static inline MAPM secondFromSeconds(const MAPM &value) { return DateUtils::modulo(value, DateUtils::g_secondsPerMinute); } static inline void dateFromSeconds(const MAPM &value, MAPM &year, MAPM &month, MAPM &day) { DateUtils::convertAbsolute2DMY((value/DateUtils::g_secondsPerDay).floor(), day, month, year); } static inline void decomposeSeconds(const MAPM &value, MAPM &year, MAPM &month, MAPM &day, MAPM &hour, MAPM &minute, MAPM &second) { hour = hourFromSeconds(value); minute = minuteFromSeconds(value); second = secondFromSeconds(value); dateFromSeconds(value, year, month, day); } static inline MAPM composeSeconds(MAPM &YY, MAPM &MM, MAPM &DD, MAPM &hh, MAPM &mm, MAPM &ss) { return DateUtils::convertDMY2Absolute(DD, MM, YY) * DateUtils::g_secondsPerDay + hh * DateUtils::g_secondsPerHour + mm * DateUtils::g_secondsPerMinute + ss; } static inline MAPM tzLocalize(bool hasTimezone, const MAPM &value, const Timezone::Ptr &timezone) { if(!hasTimezone) return value; return value + timezone->asSeconds(); } static inline MAPM tzNormalize(bool hasTimezone, const MAPM &value, const DynamicContext *context) { if(hasTimezone) return value; return value - context->getImplicitTimezone()->asSeconds(context)->asMAPM(); } /* If possible, cast this type to the target type */ AnyAtomicType::Ptr ATDateTimeOrDerivedImpl::castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const { XMLBuffer buf(1023, context->getMemoryManager()); switch (targetIndex) { case DATE: { MAPM year, month, day; dateFromSeconds(tzLocalize(_hasTimezone, seconds_, timezone_), year, month, day); DateUtils::formatNumber(year, 4, buf); buf.append(chDash); DateUtils::formatNumber(month, 2, buf); buf.append(chDash); DateUtils::formatNumber(day, 2, buf); // Add timezone if exists if (_hasTimezone) { buf.append(timezone_->asString(context)); } return context->getItemFactory()->createDateOrDerived(targetURI, targetType, buf.getRawBuffer(), context); } case G_DAY: { MAPM year, month, day; dateFromSeconds(tzLocalize(_hasTimezone, seconds_, timezone_), year, month, day); buf.append(chDash); buf.append(chDash); buf.append(chDash); DateUtils::formatNumber(day, 2, buf); if (_hasTimezone) { buf.append(timezone_->asString(context)); } return context->getItemFactory()->createGDayOrDerived(targetURI, targetType, buf.getRawBuffer(), context); } case G_MONTH_DAY: { MAPM year, month, day; dateFromSeconds(tzLocalize(_hasTimezone, seconds_, timezone_), year, month, day); buf.append(chDash); buf.append(chDash); DateUtils::formatNumber(month, 2, buf); buf.append(chDash); DateUtils::formatNumber(day, 2, buf); if (_hasTimezone) { buf.append(timezone_->asString(context)); } return context->getItemFactory()->createGMonthDayOrDerived(targetURI, targetType, buf.getRawBuffer(), context); } case G_MONTH: { MAPM year, month, day; dateFromSeconds(tzLocalize(_hasTimezone, seconds_, timezone_), year, month, day); buf.append(chDash); buf.append(chDash); DateUtils::formatNumber(month, 2, buf); if (_hasTimezone) { buf.append(timezone_->asString(context)); } return context->getItemFactory()->createGMonthOrDerived(targetURI, targetType, buf.getRawBuffer(), context); } case TIME: { MAPM value = tzLocalize(_hasTimezone, seconds_, timezone_); MAPM hour = hourFromSeconds(value); MAPM minute = minuteFromSeconds(value); MAPM second = secondFromSeconds(value); DateUtils::formatNumber(hour, 2, buf); buf.append(chColon); DateUtils::formatNumber(minute, 2, buf); buf.append(chColon); if(second < 10) buf.append(chDigit_0); buf.append(Numeric::asDecimalString(second, ATDecimalOrDerivedImpl::g_nSignificantDigits, context)); if (_hasTimezone) { buf.append(timezone_->asString(context)); } return context->getItemFactory()->createTimeOrDerived(targetURI, targetType, buf.getRawBuffer(), context); } case G_YEAR_MONTH: { MAPM year, month, day; dateFromSeconds(tzLocalize(_hasTimezone, seconds_, timezone_), year, month, day); DateUtils::formatNumber(year, 4, buf); buf.append(chDash); DateUtils::formatNumber(month, 2, buf); if (_hasTimezone) { buf.append(timezone_->asString(context)); } return context->getItemFactory()->createGYearMonthOrDerived(targetURI, targetType, buf.getRawBuffer(), context); } case G_YEAR: { MAPM year, month, day; dateFromSeconds(tzLocalize(_hasTimezone, seconds_, timezone_), year, month, day); DateUtils::formatNumber(year, 4, buf); if (_hasTimezone) { buf.append(timezone_->asString(context)); } return context->getItemFactory()->createGYearOrDerived(targetURI, targetType, buf.getRawBuffer(), context); } case ANY_SIMPLE_TYPE: case UNTYPED_ATOMIC: //anySimpleType and untypedAtomic follow the same casting rules as string. case STRING: { return context->getItemFactory()->createDerivedFromAtomicType(targetIndex, targetURI, targetType, asString(context), context); } default: { return AnyAtomicType::castAsInternal(targetIndex, targetURI, targetType, context); } } } /* returns the XMLCh* (canonical) representation of this type */ const XMLCh* ATDateTimeOrDerivedImpl::asString(const DynamicContext* context) const { XMLBuffer buffer(1023, context->getMemoryManager()); MAPM year, month, day, hour, minute, second; decomposeSeconds(tzLocalize(_hasTimezone, seconds_, timezone_), year, month, day, hour, minute, second); DateUtils::formatNumber(year, 4, buffer); buffer.append(chDash); DateUtils::formatNumber(month, 2, buffer); buffer.append(chDash); DateUtils::formatNumber(day, 2, buffer); buffer.append(chLatin_T); DateUtils::formatNumber(hour, 2, buffer); buffer.append(chColon); DateUtils::formatNumber(minute, 2, buffer); buffer.append(chColon); if(second < 10) buffer.append(chDigit_0); buffer.append(Numeric::asDecimalString(second, ATDecimalOrDerivedImpl::g_nSignificantDigits, context)); // Add timezone if exists if(_hasTimezone) { buffer.append(timezone_->asString(context)); } return context->getMemoryManager()->getPooledString(buffer.getRawBuffer()); } /* returns true if the two objects represent the same date, * false otherwise */ bool ATDateTimeOrDerivedImpl::equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const { if(this->getPrimitiveTypeIndex() != target->getPrimitiveTypeIndex()) { XQThrow2(::IllegalArgumentException,X("ATDateTimeOrDerivedImpl::equals"), X("Equality operator for given types not supported [err:XPTY0004]")); } return compare((const ATDateTimeOrDerivedImpl *)target.get(), context) == 0; } int ATDateTimeOrDerivedImpl::compare(const ATDateTimeOrDerived::Ptr &target, const DynamicContext* context) const { const ATDateTimeOrDerivedImpl *other = (const ATDateTimeOrDerivedImpl *)target.get(); return tzNormalize(_hasTimezone, seconds_, context).compare(tzNormalize(other->_hasTimezone, other->seconds_, context)); } /** * Returns an integer representing the year component of this object */ ATDecimalOrDerived::Ptr ATDateTimeOrDerivedImpl::getYears(const DynamicContext *context) const { MAPM year, month, day; dateFromSeconds(tzLocalize(_hasTimezone, seconds_, timezone_), year, month, day); return context->getItemFactory()->createInteger(year, context); } /** * Returns an integer representing the month component of this object */ ATDecimalOrDerived::Ptr ATDateTimeOrDerivedImpl::getMonths(const DynamicContext *context) const { MAPM year, month, day; dateFromSeconds(tzLocalize(_hasTimezone, seconds_, timezone_), year, month, day); return context->getItemFactory()->createNonNegativeInteger(month, context); } /** * Returns an integer representing the day component of this object */ ATDecimalOrDerived::Ptr ATDateTimeOrDerivedImpl::getDays(const DynamicContext *context) const { MAPM year, month, day; dateFromSeconds(tzLocalize(_hasTimezone, seconds_, timezone_), year, month, day); return context->getItemFactory()->createNonNegativeInteger(day, context); } /** * Returns an integer representing the hour component of this object */ ATDecimalOrDerived::Ptr ATDateTimeOrDerivedImpl::getHours(const DynamicContext *context) const { return context->getItemFactory()-> createNonNegativeInteger(hourFromSeconds(tzLocalize(_hasTimezone, seconds_, timezone_)), context); } /** * Returns an integer representing the minute component of this object */ ATDecimalOrDerived::Ptr ATDateTimeOrDerivedImpl::getMinutes(const DynamicContext *context) const { return context->getItemFactory()-> createNonNegativeInteger(minuteFromSeconds(tzLocalize(_hasTimezone, seconds_, timezone_)), context); } /** * Returns an decimal representing the second component of this object */ ATDecimalOrDerived::Ptr ATDateTimeOrDerivedImpl::getSeconds(const DynamicContext *context) const { return context->getItemFactory()-> createDecimal(secondFromSeconds(tzLocalize(_hasTimezone, seconds_, timezone_)), context); } /** * Returns the timezone associated with this object, or * null, if the timezone is not set */ const Timezone::Ptr &ATDateTimeOrDerivedImpl::getTimezone() const { return timezone_; } /** * Returns true if the timezone is defined for this object, false otherwise. */ bool ATDateTimeOrDerivedImpl::hasTimezone() const { return _hasTimezone; } /** * Setter for timezone. Overrides the current timezone. (Not to be * confused with addTimezone(). If passed null, timezone is removed (unset) */ ATDateTimeOrDerived::Ptr ATDateTimeOrDerivedImpl::setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const { MAPM result = seconds_; if(_hasTimezone) result += timezone_->asSeconds(); if(timezone != NULLRCP) result -= timezone->asSeconds(); return new ATDateTimeOrDerivedImpl(_typeURI, _typeName, result, timezone, timezone != NULLRCP); } /** * Returns an ATDateTimeOrDerived with a timezone added to it */ ATDateTimeOrDerived::Ptr ATDateTimeOrDerivedImpl::addTimezone(const ATDurationOrDerived::Ptr &timezone, const DynamicContext* context) const { if(!_hasTimezone) return setTimezone(new Timezone(timezone, context), context); return new ATDateTimeOrDerivedImpl(_typeURI, _typeName, seconds_, new Timezone(timezone, context), true); } /** * Returns a date with the given yearMonthDuration added to it */ ATDateTimeOrDerived::Ptr ATDateTimeOrDerivedImpl::addYearMonthDuration(const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext* context) const { return addYearMonthDuration(yearMonth->asMonths(context)->asMAPM(), context); } /** * Returns a date with the given yearMonthDuration added to it */ ATDateTimeOrDerived::Ptr ATDateTimeOrDerivedImpl::addYearMonthDuration(const MAPM &monthsToAdd, const DynamicContext* context) const { return new ATDateTimeOrDerivedImpl(_typeURI, _typeName, addYearMonthDuration(seconds_, monthsToAdd), timezone_, _hasTimezone); } MAPM ATDateTimeOrDerivedImpl::addYearMonthDuration(const MAPM &seconds, const MAPM &monthsToAdd) { MAPM year, month, day, hour, minute, second; decomposeSeconds(seconds, year, month, day, hour, minute, second); MAPM totalMonths = month + monthsToAdd - MM_One; MAPM MM = DateUtils::modulo(totalMonths, 12) + MM_One; MAPM carry = (totalMonths / 12).floor(); MAPM finalYears = carry + year; assert(year.sign() != 0); // We should never have _YY = 0000 MAPM YY; // Fix year 0000 problem if(finalYears.sign() <= 0 && year.sign() >= 0) { YY = finalYears - MM_One; } else if(finalYears.sign() >= 0 && year.sign() < 0) { YY = finalYears + MM_One; } else { YY = finalYears; } int maxDay = DateUtils::maximumDayInMonthFor(YY, MM); if(day > maxDay) day = maxDay; return composeSeconds(YY, MM, day, hour, minute, second); } /** * Returns a date with the given dayTimeDuration added to it */ ATDateTimeOrDerived::Ptr ATDateTimeOrDerivedImpl::addDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext* context) const { return addDayTimeDuration(dayTime->asSeconds(context)->asMAPM(), context); } /** * Returns a date with the given yearMonthDuration subtracted from it */ ATDateTimeOrDerived::Ptr ATDateTimeOrDerivedImpl::subtractYearMonthDuration(const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext* context) const { return addYearMonthDuration(yearMonth->asMonths(context)->asMAPM().neg(), context); } /** * Returns a date with the given dayTimeDuration subtracted from it */ ATDateTimeOrDerived::Ptr ATDateTimeOrDerivedImpl::subtractDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext* context) const { return addDayTimeDuration(dayTime->asSeconds(context)->asMAPM().neg(), context); } ATDateTimeOrDerived::Ptr ATDateTimeOrDerivedImpl::addDayTimeDuration(const MAPM &secondsToAdd, const DynamicContext* context) const { return new ATDateTimeOrDerivedImpl(_typeURI, _typeName, seconds_ + secondsToAdd, timezone_, _hasTimezone); } /** * Returns a dayTimeDuration corresponding to the difference between this * and the given ATDateTimeOrDerived* */ ATDurationOrDerived::Ptr ATDateTimeOrDerivedImpl::subtractDateTimeAsDayTimeDuration(const ATDateTimeOrDerived::Ptr &date, const DynamicContext* context) const { const ATDateTimeOrDerivedImpl *other = (const ATDateTimeOrDerivedImpl *)date.get(); MAPM secDiff = tzNormalize(_hasTimezone, seconds_, context) - tzNormalize(other->_hasTimezone, other->seconds_, context); return context->getItemFactory()->createDayTimeDuration(secDiff, context); } /** * Returns a dayTimeDuration corresponding to the difference between this * and the given ATDateTimeOrDerived* */ ATDurationOrDerived::Ptr ATDateTimeOrDerivedImpl::subtractDateTimeAsYearMonthDuration(const ATDateTimeOrDerived::Ptr &date, const DynamicContext* context) const { const ATDateTimeOrDerivedImpl *other = (const ATDateTimeOrDerivedImpl *)date.get(); // Call subtractDateTimeAsDayTimeDuration const ATDurationOrDerived::Ptr dayTimeDiff = subtractDateTimeAsDayTimeDuration(date, context); // put it into yearMonthDuration form MAPM days = dayTimeDiff->getDays(context)->asMAPM(); MAPM months; // Get number of months MAPM YY, MM, DD; dateFromSeconds(tzNormalize(other->_hasTimezone, other->seconds_, context), YY, MM, DD); int curYear = DateUtils::asInt(YY); int curMonth = DateUtils::asInt(MM); int curDays = DateUtils::asInt(DD) - 1; while (true) { int currentDaysInMonth = DateUtils::maximumDayInMonthFor(curYear, curMonth); int daysToNextMonth = currentDaysInMonth - curDays; if (days > daysToNextMonth) { days = days - daysToNextMonth; ++months; ++curMonth; if(curMonth > 12) { ++curYear; curMonth = 1; curDays = 0; } } else break; } return context->getItemFactory()->createYearMonthDuration(months, context); } AnyAtomicType::AtomicObjectType ATDateTimeOrDerivedImpl::getPrimitiveTypeIndex() const { return this->getTypeIndex(); } void ATDateTimeOrDerivedImpl::setDateTime(const XMLCh* const dateTime) { unsigned int length = XPath2Utils::uintStrlen(dateTime); if(dateTime == 0) { XQThrow2(XPath2TypeCastException,X("ATDateTimeOrDerivedImpl::setDateTime"), X("Invalid representation of dateTime [err:FORG0001]")); } // State variables etc. bool gotDot = false; bool gotDigit = false; unsigned int pos = 0; long int tmpnum = 0; MAPM decplace = 1; MAPM tmpdec = 0; bool negative = false; unsigned numDigit = 0; // defaulting values MAPM YY = 0; MAPM MM = 0; MAPM DD = 0; MAPM hh = 0; MAPM mm = 0; MAPM ss = 0; _hasTimezone = false; bool zonepos = true; int zonehh = 0; int zonemm = 0; int state = 0 ; // 0 = year / 1 = month / 2 = day / 3 = hour // 4 = minutes / 5 = sec / 6 = timezonehour / 7 = timezonemin XMLCh tmpChar; bool wrongformat = false; if ( length > 0 && dateTime[0] == L'-' ) { negative = true; pos = 1; }else{ pos = 0; } while ( ! wrongformat && pos < length) { tmpChar = dateTime[pos]; pos++; switch(tmpChar) { case L'.': { if (! gotDot && gotDigit && state == 5 && numDigit == 2) { gotDot = true; ss = tmpnum; gotDigit = false; tmpnum = 0; break; } wrongformat = true; break; } case 0x0030: case 0x0031: case 0x0032: case 0x0033: case 0x0034: case 0x0035: case 0x0036: case 0x0037: case 0x0038: case 0x0039: { if ( gotDot && state == 5) { decplace *= 10; } else { numDigit ++; } tmpnum *= 10; tmpnum += static_cast(tmpChar - 0x0030); gotDigit = true; break; } case L'T' : { if ( state == 2 && gotDigit && !gotDot && numDigit == 2) { state ++; DD = tmpnum; tmpnum = 0; gotDigit = false; numDigit = 0; } else { wrongformat = true; } break; } case L'-' : { if ( gotDigit ) { if (state == 0 && numDigit >= 4 ) { YY = tmpnum; if (negative) { YY = YY * -1; } tmpnum = 0; gotDigit = false; numDigit = 0; } else if (state == 1 && numDigit == 2) { MM = tmpnum; tmpnum = 0; gotDigit = false; numDigit = 0; } else if ( state == 5 && numDigit == 2) { tmpdec = tmpnum / decplace; ss += tmpdec; gotDigit = false; _hasTimezone = true; zonepos = false; tmpnum = 0; numDigit = 0; } else { wrongformat = true; } state ++; } break; } case L'+' : { if ( gotDigit && state == 5 && numDigit == 2) { tmpdec = tmpnum / decplace; ss += tmpdec; state = 6; gotDigit = false; _hasTimezone = true; zonepos = true; tmpnum = 0; numDigit = 0; } else { wrongformat = true; } break; } case L':' : { if (gotDigit ) { if (state == 3 && numDigit == 2) { hh = tmpnum; tmpnum = 0; gotDigit = false; numDigit = 0; } else if ( state == 4 && numDigit == 2) { mm = tmpnum; tmpnum = 0; gotDigit = false; numDigit = 0; } else if ( state == 6 && numDigit == 2) { zonehh = tmpnum; tmpnum = 0; gotDigit = false; numDigit = 0; } state ++; }else { wrongformat = true; } break; } case L'Z' : { if (gotDigit && state == 5 && numDigit == 2) { tmpdec = tmpnum / decplace; ss += tmpdec; state = 8; // final state _hasTimezone = true; gotDigit = false; tmpnum = 0; numDigit = 0; } else { wrongformat = true; } break; } default: wrongformat = true; } } if (gotDigit) { if ( gotDigit && state == 7 && numDigit == 2) { zonemm = tmpnum; }else if ( gotDigit && state == 5 && numDigit == 2) { tmpdec = tmpnum / decplace; ss += tmpdec; }else { wrongformat = true; } } // check time format if(MM > 12 || YY == 0 || DD > DateUtils::maximumDayInMonthFor(YY, MM) || hh > 24 || mm > 59 || ss >= 60 || zonehh > 24 || zonemm > 59 ) { wrongformat = true; } if (wrongformat) { XQThrow2(XPath2TypeCastException,X("XSDateTimeImpl::setDateTime"), X("Invalid representation of dateTime [err:FORG0001]")); } timezone_ = new Timezone(Timezone::convert(zonepos, zonehh, zonemm)); seconds_ = composeSeconds(YY, MM, DD, hh, mm, ss); if(_hasTimezone) { // If we have a timezone, then seconds_ needs to be normalized seconds_ -= timezone_->asSeconds(); } } MAPM ATDateTimeOrDerivedImpl::parseDateTime(const XMLCh* const dateTime, const MAPM &implicitTimezone) { ATDateTimeOrDerivedImpl dt(0, 0, dateTime); if(!dt._hasTimezone) return dt.seconds_ - implicitTimezone; return dt.seconds_; } XQilla-2.3.0/src/items/impl/ATBooleanOrDerivedImpl.cpp0000644000151400015140000001427111653565523017452 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include ATBooleanOrDerivedImpl:: ATBooleanOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const StaticContext* context): _typeName(typeName), _typeURI(typeURI) { // canonical values static const XMLCh zero[] = {XERCES_CPP_NAMESPACE_QUALIFIER chDigit_0, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; static const XMLCh one[] = {XERCES_CPP_NAMESPACE_QUALIFIER chDigit_1, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; if( XPath2Utils::equals(value, zero) || XPath2Utils::equals(value, XERCES_CPP_NAMESPACE_QUALIFIER SchemaSymbols::fgATTVAL_FALSE)) { _value = false; } else if(XPath2Utils::equals(value, one) || XPath2Utils::equals(value, XERCES_CPP_NAMESPACE_QUALIFIER SchemaSymbols::fgATTVAL_TRUE)) { _value = true; } else { XQThrow2(XPath2TypeCastException,X("ATBooleanOrDerivedImpl::ATBooleanOrDerivedImpl"), X("Invalid representation of boolean [err:FORG0001]")); } } ATBooleanOrDerivedImpl:: ATBooleanOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, bool value, const StaticContext* context): _value(value), _typeName(typeName), _typeURI(typeURI) { } void *ATBooleanOrDerivedImpl::getInterface(const XMLCh *name) const { if(name == Item::gXQilla) { return (void*)this; } return 0; } /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ const XMLCh* ATBooleanOrDerivedImpl::getPrimitiveTypeName() const { return this->getPrimitiveName(); } const XMLCh* ATBooleanOrDerivedImpl::getPrimitiveName() { return XERCES_CPP_NAMESPACE_QUALIFIER SchemaSymbols::fgDT_BOOLEAN; } /* Get the name of this type (ie "integer" for xs:integer) */ const XMLCh* ATBooleanOrDerivedImpl::getTypeName() const { return _typeName; } /* Get the namespace URI for this type */ const XMLCh* ATBooleanOrDerivedImpl::getTypeURI() const { return _typeURI; } AnyAtomicType::AtomicObjectType ATBooleanOrDerivedImpl::getTypeIndex() { return AnyAtomicType::BOOLEAN; } /* If possible, cast this type to the target type */ AnyAtomicType::Ptr ATBooleanOrDerivedImpl::castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const { // deviation from spec -- they say to convert to 1.0 and 0.0, but we don't see the point, // and it doesn't make casting to integer a special case (crioux) const XMLCh one[] = { XERCES_CPP_NAMESPACE_QUALIFIER chDigit_1, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const XMLCh zero[] = { XERCES_CPP_NAMESPACE_QUALIFIER chDigit_0, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; const XMLCh* chValue = _value ? one : zero; switch(targetIndex) { case FLOAT: { return (const AnyAtomicType::Ptr)context->getItemFactory()->createFloatOrDerived(targetURI, targetType, chValue, context); } case DECIMAL: { return (const AnyAtomicType::Ptr)context->getItemFactory()->createDecimalOrDerived(targetURI, targetType, chValue, context); } case DOUBLE: { return (const AnyAtomicType::Ptr)context->getItemFactory()->createDoubleOrDerived(targetURI, targetType, chValue, context); } default: { return AnyAtomicType::castAsInternal(targetIndex, targetURI, targetType, context); } } } /* returns the XMLCh* (canonical) representation of this type */ const XMLCh* ATBooleanOrDerivedImpl::asString(const DynamicContext* context) const { return asString(); } const XMLCh* ATBooleanOrDerivedImpl::asString() const { if(_value) { return XERCES_CPP_NAMESPACE_QUALIFIER SchemaSymbols::fgATTVAL_TRUE; } else { return XERCES_CPP_NAMESPACE_QUALIFIER SchemaSymbols::fgATTVAL_FALSE; } } /* returns true if the two objects have the same boolean value * false otherwise */ bool ATBooleanOrDerivedImpl::equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const { if(this->getPrimitiveTypeIndex() != target->getPrimitiveTypeIndex()) { XQThrow2(IllegalArgumentException,X("ATBooleanOrDerivedImpl::equals"), X("Equality operator for given types not supported [err:XPTY0004]")); } return compare((const ATBooleanOrDerived*)target.get(), context) == 0; } int ATBooleanOrDerivedImpl::compare(const ATBooleanOrDerived::Ptr &other, const DynamicContext *context) const { return (int)_value - (int)other->isTrue(); } /* returns true if boolean value evaluates to true * false otherwise */ bool ATBooleanOrDerivedImpl::isTrue() const { return _value; } /* returns false if boolean value evaluates to true * true otherwise */ bool ATBooleanOrDerivedImpl::isFalse() const { return !isTrue(); } AnyAtomicType::AtomicObjectType ATBooleanOrDerivedImpl::getPrimitiveTypeIndex() const { return getTypeIndex(); } const BoolResult BoolResult::True(true); const BoolResult BoolResult::False(false); const BoolResult BoolResult::Null; XQilla-2.3.0/src/items/impl/FunctionRefImpl.hpp0000644000151400015140000000576611653565523016302 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQILLAFUNCTIONREFIMPL_HPP #define _XQILLAFUNCTIONREFIMPL_HPP #include #include class ASTNode; class FunctionRefResult; class FuncFactory; class XQILLA_API FunctionRefImpl : public FunctionRef { public: typedef RefCountPointer Ptr; /** Initialises closure from the StaticAnalysis of variables that are needed */ FunctionRefImpl(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const FunctionSignature *signature, const ASTNode *instance, const StaticAnalysis &sa, DynamicContext *context); ~FunctionRefImpl(); virtual ATQNameOrDerived::Ptr getName(const DynamicContext *context) const; virtual size_t getNumArgs() const; virtual const FunctionSignature *getSignature() const { return signature_; } virtual Result execute(const VectorOfResults &args, DynamicContext *context, const LocationInfo *location) const; virtual FunctionRef::Ptr partialApply(const Result &arg, unsigned int argNum, DynamicContext *context, const LocationInfo *location) const; virtual const XMLCh *asString(const DynamicContext *context) const; virtual void generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS, bool preserveType) const; virtual void typeToBuffer(DynamicContext *context, XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer &buffer) const; virtual void *getInterface(const XMLCh *name) const; static ASTNode *createInstance(const FuncFactory *factory, const FunctionSignature *signature, XPath2MemoryManager *mm, const LocationInfo *location); static ASTNode *createInstance(const XMLCh *uri, const XMLCh *name, unsigned int numArgs, StaticContext *context, const LocationInfo *location, FunctionSignature *&signature); protected: /** Partially evaluates the given FunctionRefImpl with the given argument */ FunctionRefImpl(const FunctionRefImpl *other, const Result &argument, unsigned int argNum, DynamicContext *context); const XMLCh *prefix_, *uri_, *name_; const FunctionSignature *signature_; bool signatureOwned_; const ASTNode *instance_; VarStoreImpl varStore_; friend class FunctionRefScope; }; #endif XQilla-2.3.0/src/items/impl/ATStringOrDerivedImpl.hpp0000644000151400015140000000675711653565523017360 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATSTRINGORDERIVEDIMPL_HPP #define _ATSTRINGORDERIVEDIMPL_HPP #include #include #include class Sequence; class XQILLA_API ATStringOrDerivedImpl : public ATStringOrDerived { public: /* constructor */ ATStringOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const StaticContext* context); virtual void *getInterface(const XMLCh *name) const; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const; /* returns this string as a set of codepoints */ virtual Result asCodepoints(const DynamicContext* context) const; /* returns the substring starting at startingLoc of given length */ virtual ATStringOrDerived::Ptr substring(const Numeric::Ptr &startingLoc, const Numeric::Ptr &length, const DynamicContext* context) const; /* returns the substring that occurs after the first occurence of pattern */ virtual ATStringOrDerived::Ptr substringAfter(const ATStringOrDerived::Ptr &pattern, Collation* collation, const DynamicContext* context) const; /* returns the substring that occurs before the first occurence of pattern */ virtual ATStringOrDerived::Ptr substringBefore(const ATStringOrDerived::Ptr &pattern, Collation* collation, const DynamicContext* context) const; /* returns the length of this string */ virtual unsigned int getLength() const; /* returns true if the two objects' URI are equal (string comparison) * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const; /* Get the primitive index associated with this type */ static AnyAtomicType::AtomicObjectType getTypeIndex(); /* Get the primitive type name */ static const XMLCh* getPrimitiveName(); /* Get the primitive index associated with this type */ virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const; protected: /* If possible, cast this type to the target type */ virtual AnyAtomicType::Ptr castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const; private: /*The value of this string */ const XMLCh* _value; /* the name of this type */ const XMLCh* _typeName; /* the uri of this type */ const XMLCh* _typeURI; }; #endif // _ATSTRINGORDERIVEDIMPL_HPP XQilla-2.3.0/src/items/impl/FunctionRefImpl.cpp0000644000151400015140000002255411653565523016267 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include "FunctionRefImpl.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; using namespace std; static const XMLCh constructorArgName[] = { 'a', 'r', 'g', 0 }; FunctionRefImpl::FunctionRefImpl(const XMLCh *prefix, const XMLCh *uri, const XMLCh *localname, const FunctionSignature *signature, const ASTNode *instance, const StaticAnalysis &sa, DynamicContext *context) : prefix_(prefix), uri_(uri), name_(localname), signature_(signature), signatureOwned_(false), instance_(instance), varStore_(context->getMemoryManager()) { // Copy the variables we need into our local storage varStore_.cacheVariableStore(sa, context->getVariableStore()); } FunctionRefImpl::FunctionRefImpl(const FunctionRefImpl *other, const Result &argument, unsigned int argNum, DynamicContext *context) : prefix_(other->prefix_), uri_(other->uri_), name_(other->name_), signature_(new (context->getMemoryManager()) FunctionSignature(other->signature_, argNum, context->getMemoryManager())), signatureOwned_(true), instance_(other->instance_), varStore_(other->varStore_, context->getMemoryManager()) { ArgumentSpecs::const_iterator argsIt = other->signature_->argSpecs->begin(); for(unsigned int i = 0; i < argNum; ++i) { ++argsIt; } varStore_.setVar((*argsIt)->getURI(), (*argsIt)->getName(), argument); } FunctionRefImpl::~FunctionRefImpl() { if(signatureOwned_) const_cast(signature_)->release(); } class FunctionRefScope : public VariableStore { public: FunctionRefScope(const FunctionRefImpl::Ptr func, const VectorOfResults &args, DynamicContext *context) : func_(func), scope_(context->getMemoryManager(), context->getVariableStore()) { if(func_->signature_->argSpecs) { VectorOfResults::const_iterator i = args.begin(); ArgumentSpecs::const_iterator argsIt = func_->signature_->argSpecs->begin(); for(; i != args.end(); ++i, ++argsIt) { scope_.setVar((*argsIt)->getURI(), (*argsIt)->getName(), *i); } } } Result getVar(const XMLCh *namespaceURI, const XMLCh *name) const { Result result = func_->varStore_.getVar(namespaceURI, name); if(!result.isNull()) return result; return scope_.getVar(namespaceURI, name); } void getInScopeVariables(std::vector > &variables) const { func_->varStore_.getInScopeVariables(variables); scope_.getInScopeVariables(variables); } private: FunctionRefImpl::Ptr func_; VarStoreImpl scope_; }; Result FunctionRefImpl::execute(const VectorOfResults &args, DynamicContext *context, const LocationInfo *location) const { if(args.size() != getNumArgs()) { XMLBuffer buf; buf.set(X("The function item invoked does not accept ")); XPath2Utils::numToBuf((unsigned int)args.size(), buf); buf.append(X(" arguments - found item of type ")); typeToBuffer(context, buf); buf.append(X(" [err:XPTY0004]")); XQThrow3(XPath2TypeMatchException, X("FunctionRefImpl::execute"), buf.getRawBuffer(), location); } FunctionRefScope scope(this, args, context); AutoVariableStoreReset vsReset(context, &scope); return instance_->createResult(context); } ATQNameOrDerived::Ptr FunctionRefImpl::getName(const DynamicContext *context) const { if(name_ == 0) return 0; return context->getItemFactory()->createQName(uri_, prefix_, name_, context); } size_t FunctionRefImpl::getNumArgs() const { if(signature_->argSpecs == 0) return 0; return signature_->argSpecs->size(); } FunctionRef::Ptr FunctionRefImpl::partialApply(const Result &arg, unsigned int argNum, DynamicContext *context, const LocationInfo *location) const { if(getNumArgs() < argNum) { XMLBuffer buf; buf.set(X("The function item argument to fn:partial-apply() must have an arity of at least ")); XPath2Utils::numToBuf(argNum, buf); buf.append(X(" - found item of type ")); typeToBuffer(context, buf); buf.append(X(" [err:TBD]")); XQThrow3(XPath2TypeMatchException, X("FunctionRefImpl::partialApply"), buf.getRawBuffer(), location); } return new FunctionRefImpl(this, arg, argNum - 1, context); } void FunctionRefImpl::generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS, bool preserveType) const { // TBD What is the correct way to generate events for a FunctionRef? - jpcs events->atomicItemEvent(AnyAtomicType::STRING, asString(context), 0, 0); } const XMLCh *FunctionRefImpl::asString(const DynamicContext *context) const { XMLBuffer buf; signature_->toBuffer(buf, /*typeSyntax*/false); return context->getMemoryManager()->getPooledString(buf.getRawBuffer()); } void FunctionRefImpl::typeToBuffer(DynamicContext *context, XMLBuffer &buffer) const { signature_->toBuffer(buffer, /*typeSyntax*/true); } void *FunctionRefImpl::getInterface(const XMLCh *name) const { return 0; } ASTNode *FunctionRefImpl::createInstance(const FuncFactory *factory, const FunctionSignature *signature, XPath2MemoryManager *mm, const LocationInfo *location) { VectorOfASTNodes newArgs = VectorOfASTNodes(XQillaAllocator(mm)); if(signature->argSpecs) { ArgumentSpecs::const_iterator argsIt = signature->argSpecs->begin(); for(; argsIt != signature->argSpecs->end(); ++argsIt) { assert((*argsIt)->getName() != 0); XQVariable *var = new (mm) XQVariable((*argsIt)->getURI(), (*argsIt)->getName(), mm); var->setLocationInfo(location); newArgs.push_back(var); } } ASTNode *instance = factory->createInstance(newArgs, mm); instance->setLocationInfo(location); return instance; } ASTNode *FunctionRefImpl::createInstance(const XMLCh *uri, const XMLCh *name, unsigned int numArgs, StaticContext *context, const LocationInfo *location, FunctionSignature *&signature) { XPath2MemoryManager *mm = context->getMemoryManager(); VectorOfASTNodes newArgs = VectorOfASTNodes(XQillaAllocator(mm)); for(unsigned int i = 0; i < numArgs; ++i) { newArgs.push_back(0); // Dummy argument } ASTNode *result = context->lookUpFunction(uri, name, newArgs, location); if(!result) return 0; switch(result->getType()) { case ASTNode::FUNCTION: case ASTNode::USER_FUNCTION: { XQFunction *function = (XQFunction*)result; function->parseSignature(context); signature = new (mm) FunctionSignature(function->getSignature(), mm); if(signature->argSpecs) { // Fill in the arguments with XQVariable objects ArgumentSpecs::const_iterator argsIt = signature->argSpecs->begin(); VectorOfASTNodes &args = const_cast(function->getArguments()); for(VectorOfASTNodes::iterator i = args.begin(); i != args.end(); ++i, ++argsIt) { (*i) = new (mm) XQVariable((*argsIt)->getURI(), (*argsIt)->getName(), mm); (*i)->setLocationInfo(location); } } break; } case ASTNode::CAST_AS: { XQCastAs *cast = (XQCastAs*)result; // Fill in the argument with an XQVariable object XQVariable *var = new (mm) XQVariable(0, constructorArgName, mm); var->setLocationInfo(location); cast->setExpression(var); // Create a signature for the constructor function SequenceType *argType = new (mm) SequenceType(SchemaSymbols::fgURI_SCHEMAFORSCHEMA, AnyAtomicType::fgDT_ANYATOMICTYPE, SequenceType::QUESTION_MARK, mm); argType->setLocationInfo(location); ArgumentSpec *arg = new (mm) ArgumentSpec(constructorArgName, argType, mm); arg->setLocationInfo(location); ArgumentSpecs *args = new (mm) ArgumentSpecs(XQillaAllocator(mm)); args->push_back(arg); signature = new (mm) FunctionSignature(args, cast->getSequenceType(), mm); signature->staticResolution(context); break; } default: assert(false); break; } return result; } XQilla-2.3.0/src/items/impl/ATBase64BinaryOrDerivedImpl.cpp0000644000151400015140000001444411653565523020266 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include "ATBase64BinaryOrDerivedImpl.hpp" #include "ATHexBinaryOrDerivedImpl.hpp" #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif #if _XERCES_VERSION >= 30000 typedef XMLSize_t stringLen_t; #else typedef unsigned int stringLen_t; #endif ATBase64BinaryOrDerivedImpl:: ATBase64BinaryOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const StaticContext* context): _typeName(typeName), _typeURI(typeURI){ // check if it's a valid base64 sequence, and then make it canonical by stripping whitespace MemoryManager* mm = context->getMemoryManager(); stringLen_t srcLen = XMLString::stringLen(value); XMLByte *dataInByte = (XMLByte*) mm->allocate((srcLen+1) * sizeof(XMLByte)); ArrayJanitor janFill(dataInByte, mm); stringLen_t i; for (i = 0; i < srcLen; i++) dataInByte[i] = (XMLByte)value[i]; dataInByte[srcLen] = 0; stringLen_t length=0, outLength=0; AutoDeallocate decodedBinary(Base64::decode(dataInByte, &length, mm, Base64::Conf_Schema), mm); AutoDeallocate encodedBase64(Base64::encode(decodedBinary, length, &outLength, mm), mm); _base64Data = (XMLCh*) mm->allocate((outLength+1) * sizeof(XMLCh)); XMLCh* cursor=_base64Data; for (i = 0; i < outLength; i++) if(!XMLChar1_0::isWhitespace(encodedBase64[i])) *cursor++ = encodedBase64[i]; *cursor = 0; } void *ATBase64BinaryOrDerivedImpl::getInterface(const XMLCh *name) const { if(name == Item::gXQilla) { return (void*)this; } return 0; } /* Get the name of the primitive type (basic type) of this type (ie "decimal" for xs:decimal) */ const XMLCh* ATBase64BinaryOrDerivedImpl::getPrimitiveTypeName() const { return this->getPrimitiveName(); } const XMLCh* ATBase64BinaryOrDerivedImpl::getPrimitiveName() { return SchemaSymbols::fgDT_BASE64BINARY; } /* Get the name of this type (ie "integer" for xs:integer) */ const XMLCh* ATBase64BinaryOrDerivedImpl::getTypeName() const { return _typeName; } /* Get the namespace URI for this type */ const XMLCh* ATBase64BinaryOrDerivedImpl::getTypeURI() const { return _typeURI; } AnyAtomicType::AtomicObjectType ATBase64BinaryOrDerivedImpl::getTypeIndex() { return AnyAtomicType::BASE_64_BINARY; } /* If possible, cast this type to the target type */ AnyAtomicType::Ptr ATBase64BinaryOrDerivedImpl::castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const { static const XMLCh hexDigits[]={ chDigit_0, chDigit_1, chDigit_2, chDigit_3, chDigit_4, chDigit_5, chDigit_6, chDigit_7, chDigit_8, chDigit_9, chLatin_A, chLatin_B, chLatin_C, chLatin_D, chLatin_E, chLatin_F }; switch(targetIndex) { case HEX_BINARY: { stringLen_t srcLen = XMLString::stringLen(_base64Data); XMLByte *dataInByte = (XMLByte*) context->getMemoryManager()->allocate((srcLen+1) * sizeof(XMLByte)); ArrayJanitor janFill(dataInByte, context->getMemoryManager()); stringLen_t i; for (i = 0; i < srcLen; i++) dataInByte[i] = (XMLByte)_base64Data[i]; dataInByte[srcLen] = 0; stringLen_t length=0; AutoDeallocate decodedBinary(Base64::decode(dataInByte, &length, context->getMemoryManager(), Base64::Conf_Schema), context->getMemoryManager()); XMLBuffer buf(length*2, context->getMemoryManager()); for(i=0;igetPrimitiveTypeIndex() != target->getPrimitiveTypeIndex()) { XQThrow2(::IllegalArgumentException,X("ATBase64BinaryOrDerivedImpl::equals"), X("Equality operator for given types not supported [err:XPTY0004]")); } return compare((const ATBase64BinaryOrDerived *)target.get(), context) == 0; } int ATBase64BinaryOrDerivedImpl::compare(const ATBase64BinaryOrDerived::Ptr &other, const DynamicContext *context) const { return XPath2Utils::compare(_base64Data, ((const ATBase64BinaryOrDerivedImpl *)other.get())->_base64Data); } AnyAtomicType::AtomicObjectType ATBase64BinaryOrDerivedImpl::getPrimitiveTypeIndex() const { return this->getTypeIndex(); } XQilla-2.3.0/src/items/impl/ATStringOrDerivedImpl.cpp0000644000151400015140000002253611653565523017344 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include "ATStringOrDerivedImpl.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE ATStringOrDerivedImpl:: ATStringOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const StaticContext* context): ATStringOrDerived(), _typeName(typeName), _typeURI(typeURI) { _value = context->getMemoryManager()->getPooledString(value); } void *ATStringOrDerivedImpl::getInterface(const XMLCh *name) const { if(name == Item::gXQilla) { return (void*)this; } return 0; } /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ const XMLCh* ATStringOrDerivedImpl::getPrimitiveTypeName() const { return this->getPrimitiveName(); } const XMLCh* ATStringOrDerivedImpl::getPrimitiveName() { return SchemaSymbols::fgDT_STRING; } /* Get the name of this type (ie "integer" for xs:integer) */ const XMLCh* ATStringOrDerivedImpl::getTypeName() const { return _typeName; } /* Get the namespace URI for this type */ const XMLCh* ATStringOrDerivedImpl::getTypeURI() const { return _typeURI; } AnyAtomicType::AtomicObjectType ATStringOrDerivedImpl::getTypeIndex() { return AnyAtomicType::STRING; } AnyAtomicType::Ptr ATStringOrDerivedImpl::castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const { switch (targetIndex) { case DOUBLE: { const XMLCh* upCase = XPath2Utils::toUpper(_value, context->getMemoryManager()); return (const AnyAtomicType::Ptr)context->getItemFactory()->createDoubleOrDerived(targetURI, targetType, upCase, context); } case FLOAT: { const XMLCh* upCase = XPath2Utils::toUpper(_value, context->getMemoryManager()); return (const AnyAtomicType::Ptr)context->getItemFactory()->createFloatOrDerived(targetURI, targetType, upCase, context); } default: return AnyAtomicType::castAsInternal(targetIndex, targetURI, targetType, context); } } /* returns the XMLCh* (canonical) representation of this type */ const XMLCh* ATStringOrDerivedImpl::asString(const DynamicContext* context) const { return _value; } /* returns this string as a set of codepoints */ Result ATStringOrDerivedImpl::asCodepoints(const DynamicContext* context) const { unsigned int length = this->getLength(); Sequence result(length,context->getMemoryManager()); for(unsigned int i=0; igetItemFactory()->createInteger((long int)RegxUtil::composeFromSurrogate(_value[i], _value[i+1]), context)); i++; } else result.addItem(context->getItemFactory()->createInteger((long int)_value[i], context)); } return result; } /* returns the substring starting at startingLoc of given length */ ATStringOrDerived::Ptr ATStringOrDerivedImpl::substring(const Numeric::Ptr &startingLoc, const Numeric::Ptr &length, const DynamicContext* context) const { const ATDecimalOrDerived::Ptr one = context->getItemFactory()->createInteger(1, context); long nLength=this->getLength(); const ATDecimalOrDerived::Ptr strLength = context->getItemFactory()->createInteger(nLength, context); // More specifically, returns the characters in $sourceString whose position $p obeys: // fn:round($startingLoc) <= $p < fn:round($startingLoc) + fn:round($length) const Numeric::Ptr startIndex = startingLoc->round(context); const Numeric::Ptr endIndex = startIndex->add(length->round(context), context); if(startIndex->greaterThan(strLength, context) || startIndex->greaterThan(endIndex, context)) { return context->getItemFactory()->createString(XMLUni::fgZeroLenString, context); } XMLBuffer buffer(1023, context->getMemoryManager()); Numeric::Ptr index = one; // i is kept at one less than index, since XMLCh* start at index 0 int i = 0; // for(index = one; index <= strLength; index++) for(; !index->greaterThan(strLength, context); index = index->add(one, context), i++) { // if (index >= startIndex and index < endIndex), add the char at i if(!index->lessThan(startIndex, context) && index->lessThan(endIndex, context)) { buffer.append(_value[i]); // if it's a non-BMP char, add the following too if(RegxUtil::isHighSurrogate(_value[i]) && (i+1)getItemFactory()->createString(buffer.getRawBuffer(), context); } /* returns the substring that occurs after the first occurence of pattern */ ATStringOrDerived::Ptr ATStringOrDerivedImpl::substringAfter(const ATStringOrDerived::Ptr &pattern, Collation* collation, const DynamicContext* context) const { unsigned int containerLength = this->getLength(); unsigned int patternLength = pattern->getLength(); if(patternLength == 0) { return this; } if(patternLength > containerLength) { return context->getItemFactory()->createString(XMLUni::fgZeroLenString, context); } const XMLCh* patternStr = pattern->asString(context); // search pattern must be shorter than (or same length as) string being searched for(unsigned int i = 0; i <= (containerLength - patternLength); i++) { // extract a substring of the same length of the pattern and compare them const XMLCh *substr=XPath2Utils::subString(_value, i, patternLength, context->getMemoryManager()); bool result = (collation->compare(substr,patternStr)==0); if(result) { int index = i + patternLength; const XMLCh* value = XPath2Utils::subString(_value, index, containerLength - index, context->getMemoryManager()); return context->getItemFactory()->createString(value, context); } } return context->getItemFactory()->createString(XMLUni::fgZeroLenString, context); } /* returns the substring that occurs before the first occurence of pattern */ ATStringOrDerived::Ptr ATStringOrDerivedImpl::substringBefore(const ATStringOrDerived::Ptr &pattern, Collation* collation, const DynamicContext* context) const { unsigned int containerLength = this->getLength(); unsigned int patternLength = pattern->getLength(); if(patternLength == 0) { return this; } if(patternLength > containerLength) { return context->getItemFactory()->createString(XMLUni::fgZeroLenString, context); } const XMLCh* patternStr = pattern->asString(context); // search pattern must be shorter than (or same length as) string being searched for(unsigned int i = 0; i <= (containerLength - patternLength); i++) { // extract a substring of the same length of the pattern and compare them const XMLCh *substr=XPath2Utils::subString(_value, i, patternLength, context->getMemoryManager()); bool result = (collation->compare(substr,patternStr)==0); if(result) { const XMLCh* value = XPath2Utils::subString(_value, 0, i, context->getMemoryManager()); return context->getItemFactory()->createString(value, context); } } return context->getItemFactory()->createString(XMLUni::fgZeroLenString, context); } unsigned int ATStringOrDerivedImpl::getLength() const { return XPath2Utils::uintStrlen(_value); } /* returns true if the two objects' are equal (string comparison) * false otherwise */ bool ATStringOrDerivedImpl::equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const { if(this->getPrimitiveTypeIndex() != target->getPrimitiveTypeIndex()) { XQThrow2(::IllegalArgumentException,X("ATStringOrDerivedImpl::equals"), X("Equality operator for given types not supported [err:XPTY0004]")); } return XPath2Utils::equals(target->asString(context), _value); } AnyAtomicType::AtomicObjectType ATStringOrDerivedImpl::getPrimitiveTypeIndex() const { return this->getTypeIndex(); } XQilla-2.3.0/src/items/impl/ATNotationOrDerivedImpl.hpp0000644000151400015140000000541711653565523017675 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATNOTATIONORDERIVEDIMPL_HPP #define _ATNOTATIONORDERIVEDIMPL_HPP #include #include #include class DynamicContext; class XQILLA_API ATNotationOrDerivedImpl : public ATNotationOrDerived { public: /* constructor */ ATNotationOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const StaticContext* context); virtual void *getInterface(const XMLCh *name) const; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const; /* returns true if the two objects' URI are equal (string comparison) * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATNotationOrDerived::Ptr &other, const DynamicContext *context) const; /* Get the primitive index associated with this type */ static AnyAtomicType::AtomicObjectType getTypeIndex(); /* Get the primitive type name */ static const XMLCh* getPrimitiveName(); /* Get the primitive index associated with this type */ virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const; private: /*The value of this NOTATION*/ const XMLCh* _notation; /*The uri value of this NOTATION*/ const XMLCh* _uri; /*The local name value of this NOTATION */ const XMLCh* _name; /* the name of this type */ const XMLCh* _typeName; /* the uri of this type */ const XMLCh* _typeURI; }; #endif // _ATNOTATIONORDERIVEDIMPL_HPP XQilla-2.3.0/src/items/impl/ATDateOrDerivedImpl.cpp0000644000151400015140000004451311653565523016752 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include // for INT_MIN and INT_MAX #include // for atoi #include #include "../../utils/DateUtils.hpp" #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif ATDateOrDerivedImpl:: ATDateOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) : _typeName(typeName), _typeURI(typeURI) { setDate(value); } // private constructor for internal use() ATDateOrDerivedImpl::ATDateOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const MAPM &seconds, const Timezone::Ptr &timezone, bool hasTimezone) : seconds_(seconds), timezone_(timezone), _hasTimezone(hasTimezone), _typeName(typeName), _typeURI(typeURI) { } void *ATDateOrDerivedImpl::getInterface(const XMLCh *name) const { if(name == Item::gXQilla) { return (void*)this; } return 0; } /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ const XMLCh* ATDateOrDerivedImpl::getPrimitiveTypeName() const { return this->getPrimitiveName(); } const XMLCh* ATDateOrDerivedImpl::getPrimitiveName() { return SchemaSymbols::fgDT_DATE; } /* Get the name of this type (ie "integer" for xs:integer) */ const XMLCh* ATDateOrDerivedImpl::getTypeName() const { return _typeName; } /* Get the namespace URI for this type */ const XMLCh* ATDateOrDerivedImpl::getTypeURI() const { return _typeURI; } AnyAtomicType::AtomicObjectType ATDateOrDerivedImpl::getTypeIndex() { return AnyAtomicType::DATE; } static inline void decomposeSeconds(const MAPM &value, MAPM &year, MAPM &month, MAPM &day) { DateUtils::convertAbsolute2DMY((value/DateUtils::g_secondsPerDay).floor(), day, month, year); } static inline MAPM composeSeconds(MAPM &YY, MAPM &MM, MAPM &DD) { return DateUtils::convertDMY2Absolute(DD, MM, YY) * DateUtils::g_secondsPerDay; } static inline MAPM tzLocalize(bool hasTimezone, const MAPM &value, const Timezone::Ptr &timezone) { if(!hasTimezone) return value; return value + timezone->asSeconds(); } static inline MAPM tzNormalize(bool hasTimezone, const MAPM &value, const DynamicContext *context) { if(hasTimezone) return value; return value - context->getImplicitTimezone()->asSeconds(context)->asMAPM(); } /* If possible, cast this type to the target type */ AnyAtomicType::Ptr ATDateOrDerivedImpl::castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const { XMLBuffer buf(1023, context->getMemoryManager()); const XMLCh doubleZero[] = { chDigit_0, chDigit_0, chNull }; switch (targetIndex) { case DATE_TIME: { MAPM year, month, day; decomposeSeconds(tzLocalize(_hasTimezone, seconds_, timezone_), year, month, day); DateUtils::formatNumber(year, 4, buf); buf.append(chDash); DateUtils::formatNumber(month, 2, buf); buf.append(chDash); DateUtils::formatNumber(day, 2, buf); buf.append(chLatin_T); buf.append(doubleZero); buf.append(chColon); buf.append(doubleZero); buf.append(chColon); buf.append(doubleZero); // Add timezone if exists if (_hasTimezone) { buf.append(timezone_->asString(context)); } return context->getItemFactory()->createDateTimeOrDerived(targetURI, targetType, buf.getRawBuffer(), context); } case G_DAY: { MAPM year, month, day; decomposeSeconds(tzLocalize(_hasTimezone, seconds_, timezone_), year, month, day); buf.append(chDash); buf.append(chDash); buf.append(chDash); DateUtils::formatNumber(day, 2, buf); if (_hasTimezone) { buf.append(timezone_->asString(context)); } return context->getItemFactory()->createGDayOrDerived(targetURI, targetType, buf.getRawBuffer(), context); } case G_MONTH_DAY: { MAPM year, month, day; decomposeSeconds(tzLocalize(_hasTimezone, seconds_, timezone_), year, month, day); buf.append(chDash); buf.append(chDash); DateUtils::formatNumber(month, 2, buf); buf.append(chDash); DateUtils::formatNumber(day, 2, buf); if (_hasTimezone) { buf.append(timezone_->asString(context)); } return context->getItemFactory()->createGMonthDayOrDerived(targetURI, targetType, buf.getRawBuffer(), context); } case G_MONTH: { MAPM year, month, day; decomposeSeconds(tzLocalize(_hasTimezone, seconds_, timezone_), year, month, day); buf.append(chDash); buf.append(chDash); DateUtils::formatNumber(month, 2, buf); if (_hasTimezone) { buf.append(timezone_->asString(context)); } return context->getItemFactory()->createGMonthOrDerived(targetURI, targetType, buf.getRawBuffer(), context); } case G_YEAR_MONTH: { MAPM year, month, day; decomposeSeconds(tzLocalize(_hasTimezone, seconds_, timezone_), year, month, day); DateUtils::formatNumber(year, 4, buf); buf.append(chDash); DateUtils::formatNumber(month, 2, buf); if (_hasTimezone) { buf.append(timezone_->asString(context)); } return context->getItemFactory()->createGYearMonthOrDerived(targetURI, targetType, buf.getRawBuffer(), context); } case G_YEAR: { MAPM year, month, day; decomposeSeconds(tzLocalize(_hasTimezone, seconds_, timezone_), year, month, day); DateUtils::formatNumber(year, 4, buf); if (_hasTimezone) { buf.append(timezone_->asString(context)); } return context->getItemFactory()->createGYearOrDerived(targetURI, targetType, buf.getRawBuffer(), context); } case ANY_SIMPLE_TYPE: case UNTYPED_ATOMIC: //anySimpleType and untypedAtomic follow the same casting rules as string. case STRING: { return context->getItemFactory()->createDerivedFromAtomicType(targetIndex, targetURI, targetType, asString(context), context); } default: { return AnyAtomicType::castAsInternal(targetIndex, targetURI, targetType, context); } } } /* returns the XMLCh* (canonical) representation of this type */ const XMLCh* ATDateOrDerivedImpl::asString(const DynamicContext* context) const { XMLBuffer buffer(1023, context->getMemoryManager()); MAPM year, month, day; decomposeSeconds(tzLocalize(_hasTimezone, seconds_, timezone_), year, month, day); DateUtils::formatNumber(year, 4, buffer); buffer.append(chDash); DateUtils::formatNumber(month, 2, buffer); buffer.append(chDash); DateUtils::formatNumber(day, 2, buffer); // Add timezone if exists if (_hasTimezone) { buffer.append(timezone_->asString(context)); } return context->getMemoryManager()->getPooledString(buffer.getRawBuffer()); } /* returns true if the two objects represent the same date, * false otherwise */ bool ATDateOrDerivedImpl::equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const { if(getPrimitiveTypeIndex() != target->getPrimitiveTypeIndex()) { XQThrow2(::IllegalArgumentException,X("ATDateOrDerivedImpl::equals"), X("Equality operator for given types not supported [err:XPTY0004]")); } return compare((const ATDateOrDerivedImpl *)target.get(), context) == 0; } int ATDateOrDerivedImpl::compare(const ATDateOrDerived::Ptr &target, const DynamicContext *context) const { const ATDateOrDerivedImpl *other = (const ATDateOrDerivedImpl *)target.get(); return tzNormalize(_hasTimezone, seconds_, context).compare(tzNormalize(other->_hasTimezone, other->seconds_, context)); } /** * Returns an integer representing the year component of this object */ ATDecimalOrDerived::Ptr ATDateOrDerivedImpl::getYears(const DynamicContext *context) const { MAPM year, month, day; decomposeSeconds(tzLocalize(_hasTimezone, seconds_, timezone_), year, month, day); return context->getItemFactory()->createInteger(year, context); } /** * Returns an integer representing the month component of this object */ ATDecimalOrDerived::Ptr ATDateOrDerivedImpl::getMonths(const DynamicContext *context) const { MAPM year, month, day; decomposeSeconds(tzLocalize(_hasTimezone, seconds_, timezone_), year, month, day); return context->getItemFactory()->createNonNegativeInteger(month, context); } /** * Returns an integer representing the day component of this object */ ATDecimalOrDerived::Ptr ATDateOrDerivedImpl::getDays(const DynamicContext *context) const { MAPM year, month, day; decomposeSeconds(tzLocalize(_hasTimezone, seconds_, timezone_), year, month, day); return context->getItemFactory()->createNonNegativeInteger(day, context); } /** * Returns the timezone associated with this object, or * null, if the timezone is not set */ const Timezone::Ptr &ATDateOrDerivedImpl::getTimezone() const { return timezone_; } /** * Returns true if the timezone is defined for this object, false otherwise. */ bool ATDateOrDerivedImpl::hasTimezone() const { return _hasTimezone; } /**mrg@decisionsoft.com * Setter for timezone. Overrides the current timezone. (Not to be * confused with addTimezone(). If passed NULL, timezone is removed (unset) */ ATDateOrDerived::Ptr ATDateOrDerivedImpl::setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const { MAPM result = seconds_; if(_hasTimezone) result += timezone_->asSeconds(); if(timezone != NULLRCP) result -= timezone->asSeconds(); return new ATDateOrDerivedImpl(_typeURI, _typeName, result, timezone, timezone != NULLRCP); } /** * Returns an ATDateOrDerived with a timezone added to it */ ATDateOrDerived::Ptr ATDateOrDerivedImpl::addTimezone(const ATDurationOrDerived::Ptr &timezone, const DynamicContext* context) const { Timezone::Ptr tz = new Timezone(timezone, context); if(!_hasTimezone) return setTimezone(tz, context); // Keep the time components as 00:00:00 MAPM result = seconds_ + tz->asSeconds(); result = (result / DateUtils::g_secondsPerDay).floor() * DateUtils::g_secondsPerDay; result -= tz->asSeconds(); return new ATDateOrDerivedImpl(_typeURI, _typeName, result, tz, true); } /** * Returns a date with the given yearMonthDuration added to it */ ATDateOrDerived::Ptr ATDateOrDerivedImpl::addYearMonthDuration(const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext* context) const { MAPM result = ATDateTimeOrDerivedImpl::addYearMonthDuration(seconds_, yearMonth->asMonths(context)->asMAPM()); return new ATDateOrDerivedImpl(_typeURI, _typeName, result, timezone_, _hasTimezone); } /** * Returns a date with the given dayTimeDuration added to it */ ATDateOrDerived::Ptr ATDateOrDerivedImpl::addDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext* context) const { MAPM result = seconds_ + dayTime->asSeconds(context)->asMAPM(); result = (result / DateUtils::g_secondsPerDay).floor() * DateUtils::g_secondsPerDay; return new ATDateOrDerivedImpl(_typeURI, _typeName, result, timezone_, _hasTimezone); } /** * Returns a date with the given yearMonthDuration subtracted from it */ ATDateOrDerived::Ptr ATDateOrDerivedImpl::subtractYearMonthDuration(const ATDurationOrDerived::Ptr &yearMonth, const DynamicContext* context) const { MAPM result = ATDateTimeOrDerivedImpl::addYearMonthDuration(seconds_, yearMonth->asMonths(context)->asMAPM().neg()); return new ATDateOrDerivedImpl(_typeURI, _typeName, result, timezone_, _hasTimezone); } /** * Returns a date with the given dayTimeDuration subtracted from it */ ATDateOrDerived::Ptr ATDateOrDerivedImpl::subtractDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext* context) const { MAPM result = seconds_ - dayTime->asSeconds(context)->asMAPM(); result = (result / DateUtils::g_secondsPerDay).floor() * DateUtils::g_secondsPerDay; return new ATDateOrDerivedImpl(_typeURI, _typeName, result, timezone_, _hasTimezone); } /** * Returns a dayTimeDuration corresponding to the difference between this * and the given ATDateOrDerived* */ ATDurationOrDerived::Ptr ATDateOrDerivedImpl::subtractDate(const ATDateOrDerived::Ptr &date, const DynamicContext* context) const { const ATDateOrDerivedImpl *other = (const ATDateOrDerivedImpl *)date.get(); MAPM secDiff = tzNormalize(_hasTimezone, seconds_, context) - tzNormalize(other->_hasTimezone, other->seconds_, context); return context->getItemFactory()->createDayTimeDuration(secDiff, context); } AnyAtomicType::AtomicObjectType ATDateOrDerivedImpl::getPrimitiveTypeIndex() const { return this->getTypeIndex(); } void ATDateOrDerivedImpl::setDate(const XMLCh* const date) { unsigned int length = XPath2Utils::uintStrlen(date); if(date == 0) { XQThrow2(XPath2TypeCastException,X("ATDateOrDerived::setDate"), X("Invalid representation of date [err:FORG0001]")); } // State variables etc. bool gotDigit = false; unsigned int pos = 0; long int tmpnum = 0; unsigned int numDigit = 0; bool negative = false; // defaulting values MAPM YY = 1; MAPM MM = 0; MAPM DD = 0; _hasTimezone = false; bool zonepos = false; int zonehh = 0; int zonemm = 0; int state = 0 ; // 0 = year / 1 = month / 2 = day // 6 = timezonehour / 7 = timezonemin XMLCh tmpChar; bool wrongformat = false; if ( length > 0 && date[0] == L'-' ) { negative = true; pos = 1; }else{ pos = 0; } while ( ! wrongformat && pos < length) { tmpChar = date[pos]; pos++; switch(tmpChar) { case 0x0030: case 0x0031: case 0x0032: case 0x0033: case 0x0034: case 0x0035: case 0x0036: case 0x0037: case 0x0038: case 0x0039: { numDigit ++; tmpnum *= 10; tmpnum += static_cast(tmpChar - 0x0030); gotDigit = true; break; } case L'-' : { if ( gotDigit ) { if (state == 0 && numDigit >= 4) { YY = tmpnum; if (negative) { YY = YY * -1; } tmpnum = 0; gotDigit = false; numDigit = 0 ; } else if (state == 1 && numDigit == 2) { MM = tmpnum; tmpnum = 0; gotDigit = false; numDigit = 0 ; } else if ( state == 2 && numDigit == 2) { DD += tmpnum; gotDigit = false; zonepos = false; _hasTimezone = true; tmpnum = 0; state = 5; numDigit = 0 ; } else { wrongformat = true; } state ++; } break; } case L':' : { if (gotDigit && state == 6 && numDigit == 2) { zonehh = tmpnum; tmpnum = 0; gotDigit = false; state ++; numDigit = 0 ; }else { wrongformat = true; } break; } case L'+' : { if ( gotDigit && state == 2 && numDigit == 2) { DD += tmpnum; state = 6; gotDigit = false; zonepos = true; _hasTimezone = true; tmpnum = 0; numDigit = 0 ; } else { wrongformat = true; } break; } case L'Z' : { if (gotDigit && state == 2 && numDigit == 2) { DD += tmpnum; state = 8; // final state _hasTimezone = true; gotDigit = false; tmpnum = 0; numDigit = 0 ; } else { wrongformat = true; } break; } default: wrongformat = true; } } if (gotDigit) { if ( gotDigit && state == 7 && numDigit == 2) { zonemm = tmpnum; _hasTimezone = true; }else if ( gotDigit && state == 2 && numDigit == 2) { DD += tmpnum; }else { wrongformat = true; } } // Verify date if ( MM > 12 || YY == 0 || zonehh > 24 || zonemm > 59 ) wrongformat = true; else if(DD > DateUtils::maximumDayInMonthFor(YY, MM)) wrongformat = true; if ( wrongformat) { XQThrow2(XPath2TypeCastException,X("ATDateOrDerivedImpl::setDate"), X("Invalid representation of date [err:FORG0001]")); } timezone_ = new Timezone(Timezone::convert(zonepos, zonehh, zonemm)); seconds_ = composeSeconds(YY, MM, DD); if(_hasTimezone) { // If we have a timezone, then seconds_ needs to be normalized seconds_ -= timezone_->asSeconds(); } } MAPM ATDateOrDerivedImpl::parseDate(const XMLCh* const date, const MAPM &implicitTimezone) { ATDateOrDerivedImpl dt(0, 0, date); if(!dt._hasTimezone) return dt.seconds_ - implicitTimezone; return dt.seconds_; } XQilla-2.3.0/src/items/impl/ATUntypedAtomicImpl.hpp0000644000151400015140000000517211653565523017061 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATUNTYPEDATOMICIMPL_HPP #define _ATUNTYPEDATOMICIMPL_HPP #include #include #include class DynamicContext; class XQILLA_API ATUntypedAtomicImpl : public ATUntypedAtomic { public: /* constructor */ ATUntypedAtomicImpl(const XMLCh*, const XMLCh*, const XMLCh* value, const StaticContext* context); virtual void *getInterface(const XMLCh *name) const; /* Get the namespace uri of the primitive type (basic type) of this type */ virtual const XMLCh* getPrimitiveTypeURI() const; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const; /* returns true if the two objects' URI are equal (string comparison) * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const; /* Get the primitive index associated with this type */ static AnyAtomicType::AtomicObjectType getTypeIndex(); /* Get the primitive type name */ static const XMLCh* getPrimitiveName(); /* Get the primitive index associated with this type */ virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const; protected: /* If possible, cast this type to the target type */ virtual AnyAtomicType::Ptr castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const; private: /*The value of this URI*/ const XMLCh* _value; }; #endif // _ATUNTYPEDATOMICIMPL_HPP XQilla-2.3.0/src/items/impl/ATGDayOrDerivedImpl.cpp0000644000151400015140000002227111653565523016716 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include "../../utils/DateUtils.hpp" #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif ATGDayOrDerivedImpl:: ATGDayOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context): ATGDayOrDerived(), _typeName(typeName), _typeURI(typeURI) { setGDay(value); } void *ATGDayOrDerivedImpl::getInterface(const XMLCh *name) const { if(name == Item::gXQilla) { return (void*)this; } return 0; } /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ const XMLCh* ATGDayOrDerivedImpl::getPrimitiveTypeName() const { return this->getPrimitiveName(); } const XMLCh* ATGDayOrDerivedImpl::getPrimitiveName() { return SchemaSymbols::fgDT_DAY; } /* Get the name of this type (ie "integer" for xs:integer) */ const XMLCh* ATGDayOrDerivedImpl::getTypeName() const { return _typeName; } /* Get the namespace URI for this type */ const XMLCh* ATGDayOrDerivedImpl::getTypeURI() const { return _typeURI; } AnyAtomicType::AtomicObjectType ATGDayOrDerivedImpl::getTypeIndex() { return AnyAtomicType::G_DAY; } /* returns the XMLCh* (canonical) representation of this type */ const XMLCh* ATGDayOrDerivedImpl::asString(const DynamicContext* context) const { XMLBuffer buffer(1023, context->getMemoryManager()); buffer.append(chDash); buffer.append(chDash); buffer.append(chDash); DateUtils::formatNumber(_gDay, 2, buffer); if(_hasTimezone) { buffer.append(timezone_->asString(context)); } return context->getMemoryManager()->getPooledString(buffer.getRawBuffer()); } static inline MAPM referenceDateTime(const MAPM &DD, bool hasTimezone, const Timezone::Ptr &timezone) { MAPM result = DateUtils::convertDMY2Absolute(DD, 12, 1972) * DateUtils::g_secondsPerDay; if(hasTimezone) { result -= timezone->asSeconds(); } return result; } MAPM ATGDayOrDerivedImpl::buildReferenceDateTime(const DynamicContext *context) const { MAPM result = referenceDateTime(_gDay, _hasTimezone, timezone_); if(!_hasTimezone) result -= context->getImplicitTimezone()->asSeconds(context)->asMAPM(); return result; } /* Returns true if and only if the xs:dateTimes representing the starting instants of equivalent occurrences of $arg1 and $arg2 * compare equal. The starting instants of equivalent occurrences of $arg1 and $arg2 are calculated by adding the missing * components of $arg1 and $arg2 from an xs:dateTime template such as 1972-12-xxT00:00:00. Returns false otherwise. */ bool ATGDayOrDerivedImpl::equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const { if(this->getPrimitiveTypeIndex() != target->getPrimitiveTypeIndex()) { XQThrow2(::IllegalArgumentException,X("ATGDayOrDerivedImpl::equals"), X("Equality operator for given types not supported [err:XPTY0004]")); } return compare((const ATGDayOrDerived *)target.get(), context) == 0; } int ATGDayOrDerivedImpl::compare(const ATGDayOrDerived::Ptr &other, const DynamicContext *context) const { return buildReferenceDateTime(context).compare(((const ATGDayOrDerivedImpl *)other.get())->buildReferenceDateTime(context)); } /** Returns true if a timezone is defined for this. False otherwise.*/ bool ATGDayOrDerivedImpl::hasTimezone() const { return _hasTimezone; } /** Sets the timezone to the given timezone.*/ ATGDayOrDerived::Ptr ATGDayOrDerivedImpl::setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const { XMLBuffer buffer(1023, context->getMemoryManager()); buffer.append(chDash); buffer.append(chDash); buffer.append(chDash); DateUtils::formatNumber(_gDay, 2, buffer); if(timezone != NULLRCP) buffer.append(timezone->asString(context)); return context->getItemFactory()->createGDayOrDerived(this->getTypeURI(), this->getTypeName(), buffer.getRawBuffer(), context); } AnyAtomicType::AtomicObjectType ATGDayOrDerivedImpl::getPrimitiveTypeIndex() const { return this->getTypeIndex(); } /* parse the gDay */ void ATGDayOrDerivedImpl::setGDay(const XMLCh* const value) { if(value == NULL) { XQThrow2(XPath2TypeCastException,X("ATGDayOrDerivedImpl::setGDay"), X("Invalid representation of gDay [err:FORG0001]")); } unsigned int length = XPath2Utils::uintStrlen(value); // State variables etc. bool gotDigit = false; unsigned int pos = 0; long int tmpnum = 0; // defaulting values MAPM DD = 0; _hasTimezone = false; bool zonepos = false; int zonehh = 0; int zonemm = 0; int state = 0 ; // 0 = year / 1 = month / 2 = day / 3 = hour // 4 = minutes / 5 = sec / 6 = timezonehour / 7 = timezonemin XMLCh tmpChar; bool wrongformat = false; if ( length < 5 || value[0] != L'-' || value[1] != L'-' || value[2] != L'-') { wrongformat = true; }else{ pos = 3; state = 1; } while ( ! wrongformat && pos < length) { tmpChar = value[pos]; pos++; switch(tmpChar) { case 0x0030: case 0x0031: case 0x0032: case 0x0033: case 0x0034: case 0x0035: case 0x0036: case 0x0037: case 0x0038: case 0x0039: { tmpnum *= 10; tmpnum += static_cast(tmpChar - 0x0030); gotDigit = true; break; } case L':' : { if (gotDigit && state == 6 ) { zonehh = tmpnum; tmpnum = 0; gotDigit = false; state ++; }else { wrongformat = true; } break; } case L'-' : { if ( gotDigit && state == 1 ) { DD = tmpnum; state = 6; gotDigit = false; _hasTimezone = true; zonepos = false; tmpnum = 0; } else { wrongformat = true; } break; } case L'+' : { if ( gotDigit && state == 1 ) { DD = tmpnum; state = 6; gotDigit = false; _hasTimezone = true; zonepos = true; tmpnum = 0; } else { wrongformat = true; } break; } case L'Z' : { if (gotDigit && state == 1 ) { DD = tmpnum; state = 8; // final state _hasTimezone = true; gotDigit = false; tmpnum = 0; } else { wrongformat = true; } break; } default: wrongformat = true; } } if (gotDigit) { if ( gotDigit && state == 7 ) { zonemm = tmpnum; }else if ( gotDigit && state == 1 ) { DD = tmpnum; }else { wrongformat = true; } } // check time format if ( DD > 31 || zonehh > 24 || zonemm > 60 ) { wrongformat = true; } if ( wrongformat) { XQThrow2(XPath2TypeCastException,X("ATGDayOrDerivedImpl::setGDay"), X("Invalid representation of gDay [err:FORG0001]")); } timezone_ = new Timezone(Timezone::convert(zonepos, zonehh, zonemm)); _gDay = DD; } MAPM ATGDayOrDerivedImpl::parseGDay(const XMLCh* const value, const MAPM &implicitTimezone) { ATGDayOrDerivedImpl dt(0, 0, value); MAPM result = referenceDateTime(dt._gDay, dt._hasTimezone, dt.timezone_); if(!dt._hasTimezone) result -= implicitTimezone; return result; } XQilla-2.3.0/src/items/impl/ATNotationOrDerivedImpl.cpp0000644000151400015140000001010211653565523017653 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include "ATNotationOrDerivedImpl.hpp" #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif ATNotationOrDerivedImpl:: ATNotationOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const StaticContext* context): ATNotationOrDerived(), _typeName(typeName), _typeURI(typeURI) { _notation = context->getMemoryManager()->getPooledString(value); const XMLCh* prefix = XPath2NSUtils::getPrefix(_notation, context->getMemoryManager()); const XMLCh* uri; if(prefix==0 || *prefix==0) uri = 0; else { try { uri = context->getUriBoundToPrefix(prefix, 0); } catch(NamespaceLookupException&) { XQThrow2(StaticErrorException, X("ATNotationOrDerivedImpl::ATNotationOrDerivedImpl"),X("No namespace for prefix [err:XPST0081]")); } } // _uri will be null if there is no default NS _uri = context->getMemoryManager()->getPooledString(uri); _name = context->getMemoryManager()->getPooledString(XPath2NSUtils::getLocalName(_notation)); } void *ATNotationOrDerivedImpl::getInterface(const XMLCh *name) const { if(name == Item::gXQilla) { return (void*)this; } return 0; } /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ const XMLCh* ATNotationOrDerivedImpl::getPrimitiveTypeName() const { return this->getPrimitiveName(); } const XMLCh* ATNotationOrDerivedImpl::getPrimitiveName() { return XMLUni::fgNotationString; } /* Get the name of this type (ie "integer" for xs:integer) */ const XMLCh* ATNotationOrDerivedImpl::getTypeName() const { return _typeName; } /* Get the namespace URI for this type */ const XMLCh* ATNotationOrDerivedImpl::getTypeURI() const { return _typeURI; } AnyAtomicType::AtomicObjectType ATNotationOrDerivedImpl::getTypeIndex() { return AnyAtomicType::NOTATION; } /* returns the XMLCh* (canonical) representation of this type */ const XMLCh* ATNotationOrDerivedImpl::asString(const DynamicContext* context) const { return _notation; } /* returns true if the two objects are equal (string comparison) * false otherwise */ bool ATNotationOrDerivedImpl::equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const { if(this->getPrimitiveTypeIndex() != target->getPrimitiveTypeIndex()) { XQThrow2(::IllegalArgumentException,X("ATNotationOrDerivedImpl::equals"), X("Equality operator for given types not supported [err:XPTY0004]")); } return compare((const ATNotationOrDerived *)target.get(), context) == 0; } int ATNotationOrDerivedImpl::compare(const ATNotationOrDerivedImpl::Ptr &other, const DynamicContext *context) const { const ATNotationOrDerivedImpl *otherImpl = (const ATNotationOrDerivedImpl *)other.get(); int cmp = XPath2Utils::compare(_name, otherImpl->_name); if(cmp != 0) return cmp; return XPath2Utils::compare(_uri, otherImpl->_uri); } AnyAtomicType::AtomicObjectType ATNotationOrDerivedImpl::getPrimitiveTypeIndex() const { return this->getTypeIndex(); } XQilla-2.3.0/src/items/impl/ATDecimalOrDerivedImpl.cpp0000644000151400015140000006642711653565523017443 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif unsigned int ATDecimalOrDerivedImpl::g_nSignificantDigits=50; ATDecimalOrDerivedImpl:: ATDecimalOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const StaticContext* context): ATDecimalOrDerived(), _typeName(typeName), _typeURI(typeURI) { setDecimal(value); if(this->isInstanceOfType (SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, context)) { _isInteger = true; } else { _isInteger = false; } } ATDecimalOrDerivedImpl:: ATDecimalOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const MAPM value, const StaticContext* context): ATDecimalOrDerived(), _typeName(typeName), _typeURI(typeURI) { _decimal = value; if(this->isInstanceOfType (SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, context)) { _isInteger = true; } else { _isInteger = false; } } ATDecimalOrDerivedImpl:: ATDecimalOrDerivedImpl(int value): ATDecimalOrDerived(), _typeName(SchemaSymbols::fgDT_INTEGER), _typeURI(SchemaSymbols::fgURI_SCHEMAFORSCHEMA) { _decimal = value; _isInteger = true; } void *ATDecimalOrDerivedImpl::getInterface(const XMLCh *name) const { if(name == Item::gXQilla) { return (void*)this; } return 0; } /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ const XMLCh* ATDecimalOrDerivedImpl::getPrimitiveTypeName() const { return getPrimitiveName(); } const XMLCh* ATDecimalOrDerivedImpl::getPrimitiveName() { return SchemaSymbols::fgDT_DECIMAL; } /* Get the name of this type (ie "integer" for xs:integer) */ const XMLCh* ATDecimalOrDerivedImpl::getTypeName() const { return _typeName; } /* Get the namespace URI for this type */ const XMLCh* ATDecimalOrDerivedImpl::getTypeURI() const { return _typeURI; } AnyAtomicType::AtomicObjectType ATDecimalOrDerivedImpl::getTypeIndex() { return AnyAtomicType::DECIMAL; } /* returns the XMLCh* (canonical) representation of this type */ const XMLCh* ATDecimalOrDerivedImpl::asString(const DynamicContext* context) const { return asDecimalString(g_nSignificantDigits, context); } /* Promote this to the given type, if possible */ Numeric::Ptr ATDecimalOrDerivedImpl::promoteTypeIfApplicable(AnyAtomicType::AtomicObjectType typeIndex, const DynamicContext* context) const { switch(typeIndex) { case AnyAtomicType::DECIMAL: return this; case AnyAtomicType::FLOAT: case AnyAtomicType::DOUBLE: return (const Numeric::Ptr)castAs(typeIndex, context); default: break; } return 0; } /** Returns a Numeric object which is the sum of this and other */ Numeric::Ptr ATDecimalOrDerivedImpl::add(const Numeric::Ptr &other, const DynamicContext* context) const { if(this->isOfType(other->getTypeURI(), other->getTypeName(), context)) { // if both are of the same type exactly, we can perform addition ATDecimalOrDerivedImpl* otherImpl = (ATDecimalOrDerivedImpl*)(const Numeric*)other; // if integer, return xs:integer, otherwise xs:decimal if(_isInteger) { return context->getItemFactory()->createInteger(_decimal + otherImpl->_decimal, context); } return context->getItemFactory()->createDecimal(_decimal + otherImpl->_decimal, context); } else if(this->getPrimitiveTypeIndex() != other->getPrimitiveTypeIndex()) { // if other is not a decimal, then we need to promote this to a float or double return ((const Numeric::Ptr )this->castAs(other->getPrimitiveTypeIndex(), context))->add(other, context); } else if (this->isInstanceOfType(other->getTypeURI(), other->getTypeName(), context)) { // here we know we have two decimals, and this is 'lower' in the hierarchy than other // so cast this to other's type return ((const Numeric::Ptr )this->castAs(AnyAtomicType::DECIMAL, other->getTypeURI(), other->getTypeName(), context))->add(other, context); } else if (other->isInstanceOfType(this->getTypeURI(), this->getTypeName(), context)) { // here we have two decimals, and this is 'higher' in the hierarchy than other // so cast other to this' type return this->add((const Numeric::Ptr )other->castAs(AnyAtomicType::DECIMAL, this->getTypeURI(), this->getTypeName(), context), context); } else { // we have two separate branches. if either is instance of integer, cast it to integer, otherwise, cast to decimal // revisit: this is not the prettiest way to do it. You would want to go up the tree one by one instead of // jumping to integer and decimal ATDecimalOrDerived::Ptr first; ATDecimalOrDerived::Ptr second; if(this->_isInteger) { first = (const ATDecimalOrDerived::Ptr )this->castAs(AnyAtomicType::DECIMAL, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, context); } else { first = (const ATDecimalOrDerived::Ptr )this->castAs(AnyAtomicType::DECIMAL, context); } if(((ATDecimalOrDerivedImpl*)(const Numeric*)other)->_isInteger) { second = (const ATDecimalOrDerived::Ptr )other->castAs(AnyAtomicType::DECIMAL, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, context); } else { second = (const ATDecimalOrDerived::Ptr )other->castAs(AnyAtomicType::DECIMAL, context); } return first->add(second, context); } } /** Returns a Numeric object which is the difference of this and * other */ Numeric::Ptr ATDecimalOrDerivedImpl::subtract(const Numeric::Ptr &other, const DynamicContext* context) const { if(this->isOfType(other->getTypeURI(), other->getTypeName(), context)) { // if both are of the same type exactly, we can perform subtraction ATDecimalOrDerivedImpl* otherImpl = (ATDecimalOrDerivedImpl*)(const Numeric*)other; // if integer, return xs:integer, otherwise xs:decimal if(_isInteger) { return context->getItemFactory()->createInteger(_decimal - otherImpl->_decimal, context); } return context->getItemFactory()->createDecimal(_decimal - otherImpl->_decimal, context); } else if(this->getPrimitiveTypeIndex() != other->getPrimitiveTypeIndex()) { // if other is not a decimal, then we need to promote this to a float or double return ((const Numeric::Ptr )this->castAs(other->getPrimitiveTypeIndex(), context))->subtract(other, context); } else if (this->isInstanceOfType(other->getTypeURI(), other->getTypeName(), context)) { // here we know we have two decimals, and this is 'lower' in the hierarchy than other // so cast this to other's type return ((const Numeric::Ptr )this->castAs(AnyAtomicType::DECIMAL, other->getTypeURI(), other->getTypeName(), context))->subtract(other, context); } else if (other->isInstanceOfType(this->getTypeURI(), this->getTypeName(), context)) { // here we have two decimals, and this is 'higher' in the hierarchy than other // so cast other to this' type return this->subtract((const Numeric::Ptr )other->castAs(AnyAtomicType::DECIMAL, getTypeURI(), getTypeName(), context), context); } else { // we have two separate branches. if either is instance of integer, cast it to integer, otherwise, cast to decimal // revisit: this is not the prettiest way to do it. You would want to go up the tree one by one instead of // jumping to integer and decimal ATDecimalOrDerived::Ptr first; ATDecimalOrDerived::Ptr second; if(this->_isInteger) { first = (const ATDecimalOrDerived::Ptr )this->castAs(AnyAtomicType::DECIMAL, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, context); } else { first = (const ATDecimalOrDerived::Ptr )this->castAs(AnyAtomicType::DECIMAL, context); } if(((ATDecimalOrDerivedImpl*)(const Numeric*)other)->_isInteger) { second = (const ATDecimalOrDerived::Ptr )other->castAs(AnyAtomicType::DECIMAL, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, context); } else { second = (const ATDecimalOrDerived::Ptr )other->castAs(AnyAtomicType::DECIMAL, context); } return first->subtract(second, context); } } /** Returns a Numeric object which is the product of this and other */ Numeric::Ptr ATDecimalOrDerivedImpl::multiply(const Numeric::Ptr &other, const DynamicContext* context) const { if(this->isOfType(other->getTypeURI(), other->getTypeName(), context)) { // if both are of the same type exactly, we can perform multiplication ATDecimalOrDerivedImpl* otherImpl = (ATDecimalOrDerivedImpl*)(const Numeric*)other; // if integer, return xs:integer, otherwise xs:decimal if(_isInteger) { return context->getItemFactory()->createInteger(_decimal * otherImpl->_decimal, context); } return context->getItemFactory()->createDecimal(_decimal * otherImpl->_decimal, context); } else if(this->getPrimitiveTypeIndex() != other->getPrimitiveTypeIndex()) { // if other is not a decimal, then we need to promote this to a float or double return ((const Numeric::Ptr )this->castAs(other->getPrimitiveTypeIndex(), context))->multiply(other, context); } else if (this->isInstanceOfType(other->getTypeURI(), other->getTypeName(), context)) { // here we know we have two decimals, and this is 'lower' in the hierarchy than other // so cast this to other's type return ((const Numeric::Ptr )this->castAs(AnyAtomicType::DECIMAL, other->getTypeURI(), other->getTypeName(), context))->multiply(other, context); } else if (other->isInstanceOfType(this->getTypeURI(), this->getTypeName(), context)) { // here we have two decimals, and this is 'higher' in the hierarchy than other // so cast other to this' type return this->multiply((const Numeric::Ptr )other->castAs(AnyAtomicType::DECIMAL, this->getTypeURI(), this->getTypeName(), context), context); } else { // we have two separate branches. if either is instance of integer, cast it to integer, otherwise, cast to decimal // revisit: this is not the prettiest way to do it. You would want to go up the tree one by one instead of // jumping to integer and decimal ATDecimalOrDerived::Ptr first; ATDecimalOrDerived::Ptr second; if(this->_isInteger) { first = (const ATDecimalOrDerived::Ptr )this->castAs(AnyAtomicType::DECIMAL, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, context); } else { first = (const ATDecimalOrDerived::Ptr )this->castAs(AnyAtomicType::DECIMAL, context); } if(((ATDecimalOrDerivedImpl*)(const Numeric*)other)->_isInteger) { second = (const ATDecimalOrDerived::Ptr )other->castAs(AnyAtomicType::DECIMAL, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, context); } else { second = (const ATDecimalOrDerived::Ptr )other->castAs(AnyAtomicType::DECIMAL, context); } return first->multiply(second, context); } } /** Returns a Numeric object which is the quotient of this and other */ Numeric::Ptr ATDecimalOrDerivedImpl::divide(const Numeric::Ptr &other, const DynamicContext* context) const { if(this->isOfType(other->getTypeURI(), other->getTypeName(), context)) { // if both are of the same type exactly, we can perform division ATDecimalOrDerivedImpl* otherImpl = (ATDecimalOrDerivedImpl*)(const Numeric*)other; if(otherImpl->_decimal.sign() == 0) { XQThrow2(XPath2ErrorException, X("ATDecimalOrDerivedImpl::divide"), X("Division by zero [err:FOAR0001]")); } // return a xs:decimal, regardless of the actual types of the operands return context->getItemFactory()->createDecimal(_decimal / otherImpl->_decimal, context); } else if(this->getPrimitiveTypeIndex() != other->getPrimitiveTypeIndex()) { // if other is not a decimal, then we need to promote this to a float or double return ((const Numeric::Ptr )this->castAs(other->getPrimitiveTypeIndex(), context))->divide(other, context); } else if (this->isInstanceOfType(other->getTypeURI(), other->getTypeName(), context)) { // here we know we have two decimals, and this is 'lower' in the hierarchy than other // so cast this to other's type return ((const Numeric::Ptr )this->castAs(AnyAtomicType::DECIMAL, other->getTypeURI(), other->getTypeName(), context))->divide(other, context); } else if (other->isInstanceOfType(this->getTypeURI(), this->getTypeName(), context)) { // here we have two decimals, and this is 'higher' in the hierarchy than other // so cast other to this' type return this->divide((const Numeric::Ptr )other->castAs(AnyAtomicType::DECIMAL, this->getTypeURI(), this->getTypeName(), context), context); } else { // we have two separate branches. if either is instance of integer, cast it to integer, otherwise, cast to decimal // revisit: this is not the prettiest way to do it. You would want to go up the tree one by one instead of // jumping to integer and decimal ATDecimalOrDerived::Ptr first; ATDecimalOrDerived::Ptr second; if(this->_isInteger) { first = (const ATDecimalOrDerived::Ptr )this->castAs(AnyAtomicType::DECIMAL, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, context); } else { first = (const ATDecimalOrDerived::Ptr )this->castAs(AnyAtomicType::DECIMAL, context); } if(((ATDecimalOrDerivedImpl*)(const Numeric*)other)->_isInteger) { second = (const ATDecimalOrDerived::Ptr )other->castAs(AnyAtomicType::DECIMAL, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, context); } else { second = (const ATDecimalOrDerived::Ptr )other->castAs(AnyAtomicType::DECIMAL, context); } return first->divide(second, context); } } /** Returns the arithmetic product of its operands as a Numeric */ Numeric::Ptr ATDecimalOrDerivedImpl::mod(const Numeric::Ptr &other, const DynamicContext* context) const { if(this->isOfType(other->getTypeURI(), other->getTypeName(), context)) { // if both are of the same type exactly, we can perform the modulo const ATDecimalOrDerivedImpl* otherImpl = (ATDecimalOrDerivedImpl*)(const Numeric*)other; if(otherImpl->isZero()) { XQThrow2(::IllegalArgumentException, X("ATDecimalOrDerivedImpl::mod"), X("Division by zero [err:FOAR0001]")); } MAPM result = _decimal; MAPM r; r = result.integer_divide(otherImpl->_decimal); result -= r * otherImpl->_decimal; // if integer, return xs:integer, otherwise xs:decimal if(_isInteger) { return context->getItemFactory()->createInteger(result, context); } return context->getItemFactory()->createDecimal(result, context); } else if(this->getPrimitiveTypeIndex() != other->getPrimitiveTypeIndex()) { // if other is not a decimal, then we need to promote this to a float or double return ((const Numeric::Ptr )this->castAs(other->getPrimitiveTypeIndex(), context))->mod(other, context); } else if (this->isInstanceOfType(other->getTypeURI(), other->getTypeName(), context)) { // here we know we have two decimals, and this is 'lower' in the hierarchy than other // so cast this to other's type return ((const Numeric::Ptr )this->castAs(AnyAtomicType::DECIMAL, other->getTypeURI(), other->getTypeName(), context))->mod(other, context); } else if (other->isInstanceOfType(this->getTypeURI(), this->getTypeName(), context)) { // here we have two decimals, and this is 'higher' in the hierarchy than other // so cast other to this' type return this->mod((const Numeric::Ptr )other->castAs(AnyAtomicType::DECIMAL, this->getTypeURI(), this->getTypeName(), context), context); } else { // we have two separate branches. if either is instance of integer, cast it to integer, otherwise, cast to decimal // revisit: this is not the prettiest way to do it. You would want to go up the tree one by one instead of // jumping to integer and decimal ATDecimalOrDerived::Ptr first; ATDecimalOrDerived::Ptr second; if(this->_isInteger) { first = (const ATDecimalOrDerived::Ptr )this->castAs(AnyAtomicType::DECIMAL, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, context); } else { first = (const ATDecimalOrDerived::Ptr )this->castAs(AnyAtomicType::DECIMAL, context); } if(((ATDecimalOrDerivedImpl*)(const Numeric*)other)->_isInteger) { second = (const ATDecimalOrDerived::Ptr )other->castAs(AnyAtomicType::DECIMAL, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, context); } else { second = (const ATDecimalOrDerived::Ptr )other->castAs(AnyAtomicType::DECIMAL, context); } return first->mod(second, context); } } Numeric::Ptr ATDecimalOrDerivedImpl::power(const Numeric::Ptr &other, const DynamicContext* context) const { switch(other->getPrimitiveTypeIndex()) { case DECIMAL: { ATDecimalOrDerivedImpl *otherImpl = (ATDecimalOrDerivedImpl*)other.get(); return context->getItemFactory()->createDecimal(_decimal.pow(otherImpl->_decimal), context); } case FLOAT: return context->getItemFactory()->createFloat(_decimal, context)->power(other, context); case DOUBLE: return context->getItemFactory()->createDouble(_decimal, context)->power(other, context); default: assert(false); return 0; // Shouldn't happen } } /** Returns the floor of this Numeric */ Numeric::Ptr ATDecimalOrDerivedImpl::floor(const DynamicContext* context) const { // if integer, return xs:integer, otherwise xs:decimal if(_isInteger) { return (const Numeric::Ptr )this->castAs(AnyAtomicType::DECIMAL, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, context); } return context->getItemFactory()->createDecimal(_decimal.floor(), context); } /** Returns the ceiling of this Numeric */ Numeric::Ptr ATDecimalOrDerivedImpl::ceiling(const DynamicContext* context) const { // if integer, return xs:integer, otherwise xs:decimal if(_isInteger) { return (const Numeric::Ptr )this->castAs(AnyAtomicType::DECIMAL, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, context); } return context->getItemFactory()->createDecimal(_decimal.ceil(), context); } /** Rounds this Numeric */ Numeric::Ptr ATDecimalOrDerivedImpl::round(const DynamicContext* context) const { // if integer, return xs:integer, otherwise xs:decimal if(_isInteger) { return (const Numeric::Ptr )this->castAs(AnyAtomicType::DECIMAL, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER, context); } MAPM value = _decimal + 0.5; return context->getItemFactory()->createDecimal(value.floor(), context); } /** Rounds this Numeric to the given precision, and rounds a half to even */ Numeric::Ptr ATDecimalOrDerivedImpl::roundHalfToEven(const Numeric::Ptr &precision, const DynamicContext* context) const { ATDecimalOrDerived::Ptr decimal_precision = (const Numeric::Ptr)precision->castAs(this->getPrimitiveTypeIndex(), context); MAPM exp = MAPM(10).pow(((ATDecimalOrDerivedImpl*)(const ATDecimalOrDerived*)decimal_precision)->_decimal); MAPM value = _decimal * exp; bool halfVal = false; // check if we're rounding on a half value if((value-0.5) == (value.floor())) { halfVal = true; } value = _decimal * exp + 0.5; value = value.floor(); // if halfVal make sure what we return has the least significant digit even if (halfVal) { if(value.is_odd()) { value = value - 1; } } value = value / exp; // if integer, return xs:integer, otherwise xs:decimal if(_isInteger) { return context->getItemFactory()->createInteger(value, context); } return context->getItemFactory()->createDecimal(value, context); } /** Returns the Additive inverse of this Numeric */ Numeric::Ptr ATDecimalOrDerivedImpl::invert(const DynamicContext* context) const { if(_isInteger) { return context->getItemFactory()->createInteger(_decimal.neg(), context); } return context->getItemFactory()->createDecimal(_decimal.neg(), context); } /** Returns the absolute value of this Numeric */ Numeric::Ptr ATDecimalOrDerivedImpl::abs(const DynamicContext* context) const { return context->getItemFactory()->createDecimal(_decimal.abs(), context); } /** Returns the square root of this Numeric */ Numeric::Ptr ATDecimalOrDerivedImpl::sqrt(const DynamicContext* context) const { if (_decimal < 0) return context->getItemFactory()->createDecimal(MAPM(0), context); return context->getItemFactory()->createDecimal(_decimal.sqrt(), context); } /** Returns the sinus of this Numeric */ Numeric::Ptr ATDecimalOrDerivedImpl::sin(const DynamicContext* context) const { return context->getItemFactory()->createDecimal(_decimal.sin(), context); } /** Returns the cosinus of this Numeric */ Numeric::Ptr ATDecimalOrDerivedImpl::cos(const DynamicContext* context) const { return context->getItemFactory()->createDecimal(_decimal.cos(), context); } Numeric::Ptr ATDecimalOrDerivedImpl::tan(const DynamicContext* context) const { return context->getItemFactory()->createDecimal(_decimal.tan(), context); } Numeric::Ptr ATDecimalOrDerivedImpl::asin(const DynamicContext* context) const { if (_decimal.abs() > 1) return context->getItemFactory()->createDecimal(MAPM(0), context); return context->getItemFactory()->createDecimal(_decimal.asin(), context); } Numeric::Ptr ATDecimalOrDerivedImpl::acos(const DynamicContext* context) const { if (_decimal.abs() > 1) return context->getItemFactory()->createDecimal(MAPM(0), context); return context->getItemFactory()->createDecimal(_decimal.acos(), context); } Numeric::Ptr ATDecimalOrDerivedImpl::atan(const DynamicContext* context) const { return context->getItemFactory()->createDecimal(_decimal.atan(), context); } Numeric::Ptr ATDecimalOrDerivedImpl::log(const DynamicContext* context) const { if (_decimal <= 0) return context->getItemFactory()->createDecimal(MAPM(0), context); return context->getItemFactory()->createDecimal(_decimal.log(), context); } Numeric::Ptr ATDecimalOrDerivedImpl::exp(const DynamicContext* context) const { return context->getItemFactory()->createDecimal(_decimal.exp(), context); } /** Does this Numeric have value 0? */ bool ATDecimalOrDerivedImpl::isZero() const { return _decimal.sign() == 0; } /** Is this Numeric negative? */ bool ATDecimalOrDerivedImpl::isNegative() const { return _decimal.sign() < 0; } /** Is this Numeric positive? */ bool ATDecimalOrDerivedImpl::isPositive() const { return _decimal.sign() > 0; } /** Treat this decimal (must be integer) as a codepoint **/ XMLInt32 ATDecimalOrDerivedImpl::treatAsCodepoint(const DynamicContext* context) const { if(_isInteger) { int integer = (int)_decimal.toDouble(); XMLInt32 ch = (XMLInt32)integer; if(integer<=0 || (int)ch != integer) { // negative or lost some info XQThrow2(XPath2ErrorException, X("ATDecimalOrDerivedImpl::treatAsCodepoint"), X("Codepoint not legal [err:FOCH0001].")); } return ch; } else { XQThrow2(XPath2ErrorException, X("ATDecimalOrDerivedImpl::treatAsCodepoint"), X("Only integers can be treated as codepoints.")); } } AnyAtomicType::AtomicObjectType ATDecimalOrDerivedImpl::getPrimitiveTypeIndex() const { return this->getTypeIndex(); } void ATDecimalOrDerivedImpl::setDecimal(const XMLCh* const value) { _decimal = parseDecimal(value); } MAPM ATDecimalOrDerivedImpl::parseDecimal(const XMLCh* const value) { if(value == NULL) { XQThrow2(XPath2TypeCastException,X("ATDecimalOrDerivedImpl::setDecimal"), X("Invalid representation of decimal [err:FORG0001]")); } unsigned int length = XPath2Utils::uintStrlen(value) + 1; AutoDeleteArray buffer(new char[length]); bool gotPoint = false; bool gotSign = false; bool gotDigit = false; bool stop = false; bool munchWS = true; const XMLCh *src = value; char *dest = buffer; XMLCh tmpChar; while(!stop && *src != 0) { tmpChar = *src++; switch(tmpChar) {/*{{{*/ case L'+': { *dest++ = '+'; if(gotSign) { stop = true; } else { gotSign = true; } break; } case L'-': { *dest++ = '-'; if(gotSign) { stop = true; } else { gotSign = true; } break; } //This is '.' case 0x002e: { *dest++ = '.'; if(gotPoint) { stop = true; } else { gotPoint = true; } break; } /* All the numerals defined by XML standard */ case 0x0030: case 0x0031: case 0x0032: case 0x0033: case 0x0034: case 0x0035: case 0x0036: case 0x0037: case 0x0038: case 0x0039: { gotDigit = true; *dest++ = (char)(tmpChar - 0x0030) + '0'; break; } // whitespace at start or end of string... case 0x0020: case 0x0009: case 0x000d: case 0x000a: { bool endOfWS = false; while(!endOfWS && *src != 0) { tmpChar = *src++; switch(tmpChar) { case 0x0020: case 0x0009: case 0x000d: case 0x000a: { break; } default: { endOfWS = true; --src; if(munchWS) { //end of leading whitespace munchWS = false; } else { //trailing whitespace is followed by other characters - so return NaN. stop = true; } } }//switch }//while break; } default: stop = true; break; }//switch /*}}}*/ }//while if(!gotDigit || stop) { XQThrow2(XPath2TypeCastException,X("ATDecimalOrDerivedImpl::setDecimal"), X("Invalid representation of decimal [err:FORG0001]")); } *dest++ = 0; // Null terminate return (char*)buffer; } XQilla-2.3.0/src/items/impl/ATDoubleOrDerivedImpl.cpp0000644000151400015140000007362511653565523017315 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif int ATDoubleOrDerivedImpl::g_nSignificantDigits=25; ATDoubleOrDerivedImpl:: ATDoubleOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const StaticContext* context) : _typeName(typeName), _typeURI(typeURI) { setDouble(value); checkDoubleLimits(_state, _double); } ATDoubleOrDerivedImpl:: ATDoubleOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const MAPM value, const StaticContext* context): ATDoubleOrDerived(), _typeName(typeName), _typeURI(typeURI) { _double = value; _state = NUM; if(value.sign() < 0) _state = NEG_NUM; checkDoubleLimits(_state, _double); } void *ATDoubleOrDerivedImpl::getInterface(const XMLCh *name) const { if(name == Item::gXQilla) { return (void*)this; } return 0; } /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ const XMLCh* ATDoubleOrDerivedImpl::getPrimitiveTypeName() const { return this->getPrimitiveName(); } const XMLCh* ATDoubleOrDerivedImpl::getPrimitiveName() { return SchemaSymbols::fgDT_DOUBLE; } /* Get the name of this type (ie "integer" for xs:integer) */ const XMLCh* ATDoubleOrDerivedImpl::getTypeName() const { return _typeName; } /* Get the namespace URI for this type */ const XMLCh* ATDoubleOrDerivedImpl::getTypeURI() const { return _typeURI; } AnyAtomicType::AtomicObjectType ATDoubleOrDerivedImpl::getTypeIndex() { return AnyAtomicType::DOUBLE; } /* returns the XMLCh* (canonical) representation of this type */ const XMLCh* ATDoubleOrDerivedImpl::asString(const DynamicContext* context) const { return asDoubleString(g_nSignificantDigits, context); } /* Promote this to the given type, if possible */ Numeric::Ptr ATDoubleOrDerivedImpl::promoteTypeIfApplicable(AnyAtomicType::AtomicObjectType typeIndex, const DynamicContext* context) const { switch(typeIndex) { case AnyAtomicType::DOUBLE: return this; default: break; } return 0; } /** Returns a Numeric object which is the sum of this and other */ Numeric::Ptr ATDoubleOrDerivedImpl::add(const Numeric::Ptr &other, const DynamicContext* context) const { if(AnyAtomicType::DOUBLE == other->getPrimitiveTypeIndex()) { // if both are of the same type exactly, we can perform addition ATDoubleOrDerivedImpl* otherImpl = (ATDoubleOrDerivedImpl*)(const Numeric*)other; if(otherImpl->_state == NaN) return notANumber(context); switch (_state) { case NaN: return notANumber(context); case INF: { switch(otherImpl->_state) { case NaN: return notANumber(context); // case taken care of above case NEG_NUM: case NUM: return infinity(context); // INF + NUM = INF case INF: return infinity(context); // INF + INF = INF case NEG_INF: return notANumber(context); // INF + (-INF) = NaN default: assert(false); return 0; // should never get here } } case NEG_INF: { switch(otherImpl->_state) { case NaN: return notANumber(context); //case taken care of above case NEG_NUM: case NUM: return negInfinity(context); // -INF + NUM = -INF case INF: return notANumber(context); // -INF + INF = NaN case NEG_INF: return negInfinity(context); // -INF + (-INF) = -INF default: assert(false); return 0; // should never get here } } case NEG_NUM: case NUM: { switch(otherImpl->_state) { case NaN: return notANumber(context); // case taken care of above case INF: return infinity(context); case NEG_INF: return negInfinity(context); case NEG_NUM: case NUM: { // Handle positive and negative zero if(_double.sign()==0 && otherImpl->_double!=0) return other; else if(_double.sign()!=0 && otherImpl->_double==0) return this; else if(_double.sign()==0 && otherImpl->_double==0) { if(_state==otherImpl->_state) // sum of two zero of the same sign -> result is equal to any of the two items return this; else // sum of two zero of different sign -> result is equal to +0 return newDouble(0, context); } return newDouble(_double + otherImpl->_double, context); } default: assert(false); return 0; // should never get here } } default: assert(false); return 0; // should never get here } } else { // if other is not a double, then we need to promote it to a double return this->add((const Numeric::Ptr )other->castAs(AnyAtomicType::DOUBLE, context), context); } } /** Returns a Numeric object which is the difference of this and * other */ Numeric::Ptr ATDoubleOrDerivedImpl::subtract(const Numeric::Ptr &other, const DynamicContext* context) const { if(AnyAtomicType::DOUBLE == other->getPrimitiveTypeIndex()) { // if both are of the same type exactly, we can perform subtraction ATDoubleOrDerivedImpl* otherImpl = (ATDoubleOrDerivedImpl*)(const Numeric*)other; if(otherImpl->_state == NaN) return notANumber(context); switch (_state) { case NaN: return notANumber(context); case INF: { switch(otherImpl->_state) { case NaN: return notANumber(context); // case taken care of above case NEG_NUM: case NUM: return infinity(context); // INF - NUM = INF case INF: return notANumber(context); // INF - INF = NaN case NEG_INF: return infinity(context); // INF - (-INF) = INF default: assert(false); return 0; // should never get here } } case NEG_INF: { switch(otherImpl->_state) { case NaN: return notANumber(context); //case taken care of above case NEG_NUM: case NUM: return negInfinity(context); // -INF - NUM = -INF case INF: return negInfinity(context); // -INF - INF = -INF case NEG_INF: return notANumber(context); // -INF - (-INF) = NaN default: assert(false); return 0; // should never get here } } case NEG_NUM: case NUM: { switch(otherImpl->_state) { case NaN: return notANumber(context); // case taken care of above case INF: return negInfinity(context); // NUM - INF = -INF case NEG_INF: return infinity(context); // NUM - (-INF) = INF case NEG_NUM: case NUM: return newDouble(_double - otherImpl->_double, context); default: assert(false); return 0; // should never get here } } default: assert(false); return 0; // should never get here } } else { // if other is not a double, then we need to promote it to a double return this->subtract((const Numeric::Ptr )other->castAs(AnyAtomicType::DOUBLE, context), context); } } /** Returns a Numeric object which is the product of this and other */ Numeric::Ptr ATDoubleOrDerivedImpl::multiply(const Numeric::Ptr &other, const DynamicContext* context) const { if(AnyAtomicType::DOUBLE == other->getPrimitiveTypeIndex()) { // if both are of the same type, we can perform multiplication ATDoubleOrDerivedImpl* otherImpl = (ATDoubleOrDerivedImpl*)(const Numeric*)other; if(otherImpl->_state == NaN) return notANumber(context); switch (_state) { case NaN: return notANumber(context); case INF: { switch(otherImpl->_state) { case NaN: return notANumber(context); // case taken care of above case NEG_NUM: case NUM: return other->isPositive() ? infinity(context) : negInfinity(context); // INF * NUM = +/-INF case INF: return infinity(context); // INF * INF = INF case NEG_INF: return negInfinity(context); // INF * (-INF) = -INF default: assert(false); return 0; // should never get here } } case NEG_INF: { switch(otherImpl->_state) { case NaN: return notANumber(context); //case taken care of above case NEG_NUM: case NUM: return other->isPositive() ? negInfinity(context) : infinity(context); // -INF * NUM = +/-INF case INF: return negInfinity(context); // -INF * INF = -INF case NEG_INF: return infinity(context); // -INF * (-INF) = INF default: assert(false); return 0; // should never get here } } case NEG_NUM: case NUM: { switch(otherImpl->_state) { case NaN: return notANumber(context); // case taken care of above case INF: return this->isPositive() ? infinity(context) : negInfinity(context); // NUM * INF = +/-INF case NEG_INF: return this->isPositive() ? negInfinity(context) : infinity(context); // NUM * (-INF) = +/-INF case NEG_NUM: case NUM: if(other->isZero() || this->isZero()) { if((this->isNegative() && other->isPositive()) || (this->isPositive() && other->isNegative())) { return negZero(context); // 0 / (-NUM) or (-0) / NUM = -0 } else { return newDouble(0, context); // 0 / NUM or (-0) / (-NUM) = 0 } } return newDouble(_double * otherImpl->_double, context); default: assert(false); return 0; // should never get here } } default: assert(false); return 0; // should never get here } } else { // if other is not a double, then we need to promote it to a double return this->multiply((const Numeric::Ptr )other->castAs(AnyAtomicType::DOUBLE, context), context); } } /** Returns a Numeric object which is the quotient of this and other */ Numeric::Ptr ATDoubleOrDerivedImpl::divide(const Numeric::Ptr &other, const DynamicContext* context) const { if(AnyAtomicType::DOUBLE == other->getPrimitiveTypeIndex()) { // if both are of the same type, we can perform division ATDoubleOrDerivedImpl* otherImpl = (ATDoubleOrDerivedImpl*)(const Numeric*)other; if(otherImpl->_state == NaN) return notANumber(context); switch (_state) { case NaN: return notANumber(context); case INF: { switch(otherImpl->_state) { case NaN: return notANumber(context); // case taken care of above case NEG_NUM: case NUM: return other->isPositive() ? infinity(context) : negInfinity(context); // INF / NUM = +/-INF case INF: return notANumber(context); // INF / INF = NaN case NEG_INF: return notANumber(context); // INF / (-INF) = NaN default: assert(false); return 0; // should never get here } // switch }// case case NEG_INF: { switch(otherImpl->_state) { case NaN: return notANumber(context); //case taken care of above case NEG_NUM: case NUM: return other->isPositive() ? negInfinity(context) : infinity(context); // -INF / NUM = -INF case INF: return notANumber(context); // -INF / INF = NaN case NEG_INF: return notANumber(context); // -INF / (-INF) = NaN default: assert(false); return 0; // should never get here } // switch } // case case NEG_NUM: case NUM: { switch(otherImpl->_state) { case NaN: return notANumber(context); // case taken care of above case INF: { // NUM / INF = +/-0 if(this->isNegative()) { return negZero(context); } else { return newDouble(0, context); } }// case case NEG_INF: { // NUM / -INF = +/-0 if(this->isPositive()) { return negZero(context); } else { return newDouble(0, context); } }// case case NEG_NUM: case NUM: { if(other->isZero()) { if(this->isZero()) return notANumber(context); if((this->isNegative() && other->isPositive()) || (this->isPositive() && other->isNegative())) { return negInfinity(context); // NUM / (-0) or (-NUM) / 0 = -INF } else { return infinity(context); // NUM / 0 or (-NUM) / (-0) = INF } } else if(this->isZero()) { if((this->isNegative() && other->isPositive()) || (this->isPositive() && other->isNegative())) { return negZero(context); // 0 / (-NUM) or (-0) / NUM = -0 } else { return newDouble(0, context); // 0 / NUM or (-0) / (-NUM) = 0 } } return newDouble(_double / otherImpl->_double, context); }// case default: assert(false); return 0; // should never get here }// switch }// case default: assert(false); return 0; // should never get here }// switch } else { // if other is not a double, then we need to promote it to a double return this->divide((const Numeric::Ptr )other->castAs(AnyAtomicType::DOUBLE, context), context); } } /** Returns the mod of its operands as a Numeric */ Numeric::Ptr ATDoubleOrDerivedImpl::mod(const Numeric::Ptr &other, const DynamicContext* context) const { if(AnyAtomicType::DOUBLE == other->getPrimitiveTypeIndex()) { // if both are of the same type, we can perform mod ATDoubleOrDerivedImpl* otherImpl = (ATDoubleOrDerivedImpl*)(const Numeric*)other; if(this->isNaN() || otherImpl->isNaN() || this->isInfinite() || otherImpl->isZero()) { return notANumber(context); } else if(otherImpl->isInfinite() || this->isZero()) { return (const Numeric::Ptr )this->castAs(AnyAtomicType::DOUBLE, context); } else { MAPM result = _double; MAPM r; r = result.integer_divide(otherImpl->_double); result -= r * otherImpl->_double; if (result == 0 && isNegative()) return negZero(context); return newDouble(result, context); } } else { // if other is not a double, then we need to promote it to a double return this->mod((const Numeric::Ptr )other->castAs(AnyAtomicType::DOUBLE, context), context); } } Numeric::Ptr ATDoubleOrDerivedImpl::power(const Numeric::Ptr &other, const DynamicContext* context) const { switch(other->getPrimitiveTypeIndex()) { case DECIMAL: case FLOAT: return power((Numeric*)other->castAs(DOUBLE, context).get(), context); case DOUBLE: { ATDoubleOrDerivedImpl *otherImpl = (ATDoubleOrDerivedImpl*)other.get(); switch(_state) { case NaN: return this; case INF: { switch(otherImpl->_state) { case NaN: return other; case NEG_NUM: case NUM: case INF: case NEG_INF: return this; default: assert(false); return 0; // should never get here } } case NEG_INF: { switch(otherImpl->_state) { case NaN: return other; case NEG_NUM: case NUM: case INF: case NEG_INF: return this; default: assert(false); return 0; // should never get here } } case NEG_NUM: case NUM: { switch(otherImpl->_state) { case NaN: return other; case INF: return other; case NEG_INF: return infinity(context); case NEG_NUM: case NUM: return newDouble(_double.pow(otherImpl->_double), context); default: assert(false); return 0; // should never get here } } default: assert(false); return 0; // should never get here } } default: assert(false); return 0; // Shouldn't happen } } /** Returns the floor of this Numeric */ Numeric::Ptr ATDoubleOrDerivedImpl::floor(const DynamicContext* context) const { switch (_state) { case NaN: return notANumber(context); case INF: return infinity(context); case NEG_INF: return negInfinity(context); case NEG_NUM: case NUM: { if (isZero() && isNegative()) return this; return newDouble(_double.floor(), context); } default: { assert(false); return 0; // should never get here } } } /** Returns the ceiling of this Numeric */ Numeric::Ptr ATDoubleOrDerivedImpl::ceiling(const DynamicContext* context) const { switch (_state) { case NaN: return notANumber(context); case INF: return infinity(context); case NEG_INF: return negInfinity(context); case NEG_NUM: case NUM: { if (isNegative() && _double >= -0.5) { return negZero(context); } return newDouble(_double.ceil(), context); } default: { assert(false); return 0; // should never get here } } } /** Rounds this Numeric */ Numeric::Ptr ATDoubleOrDerivedImpl::round(const DynamicContext* context) const { switch (_state) { case NaN: return notANumber(context); case INF: return infinity(context); case NEG_INF: return negInfinity(context); case NEG_NUM: case NUM: { if (isNegative() &&_double >= -0.5) { return negZero(context); } MAPM value = _double + 0.5; return newDouble(value.floor(), context); } default: {assert(false); return 0; // should never get here } } } /** Rounds this Numeric to the given precision, and rounds a half to even */ Numeric::Ptr ATDoubleOrDerivedImpl::roundHalfToEven(const Numeric::Ptr &precision, const DynamicContext* context) const { switch (_state) { case NaN: return notANumber(context); case INF: return infinity(context); case NEG_INF: return negInfinity(context); case NEG_NUM: case NUM: break; default: { assert(false); return 0; // should never get here } } if (isZero() && isNegative()) return this; ATDoubleOrDerived::Ptr double_precision = (const Numeric::Ptr)precision->castAs(AnyAtomicType::DOUBLE, context); MAPM exp = MAPM(10).pow(((ATDoubleOrDerivedImpl*)(const ATDoubleOrDerived*)double_precision)->_double); MAPM value = _double * exp; bool halfVal = false; // check if we're rounding on a half value if((value-0.5) == (value.floor())) { halfVal = true; } value = _double * exp + 0.5; value = value.floor(); // if halfVal make sure what we return has the least significant digit even if (halfVal) { if(value.is_odd()) { value = value - 1; } } value = value / exp; // the spec doesn't actually say to do this, but djf believes this is the correct way to handle rounding of -ve values which will result in 0.0E0 // if (value == 0 && isNegative()) // return negZero(context); return newDouble(value, context); } /** Returns the Additive inverse of this Numeric */ Numeric::Ptr ATDoubleOrDerivedImpl::invert(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return negInfinity(context); case NEG_INF: return infinity(context); case NEG_NUM: case NUM: if(this->isZero()) { if(this->isNegative()) return newDouble(0, context); else return negZero(context); } return newDouble(_double.neg(), context); default: assert(false); return 0; // should never get here } } /** Returns the absolute value of this Numeric */ Numeric::Ptr ATDoubleOrDerivedImpl::abs(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return infinity(context); case NEG_INF: return infinity(context); case NEG_NUM: case NUM: return newDouble(_double.abs(), context); default: assert(false); return 0; // should never get here } } /** Returns the square root of this Numeric */ Numeric::Ptr ATDoubleOrDerivedImpl::sqrt(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return infinity(context); case NEG_INF: return notANumber(context); case NEG_NUM: return notANumber(context); case NUM: return newDouble(_double.sqrt(), context); default: assert(false); return 0; // should never get here } } Numeric::Ptr ATDoubleOrDerivedImpl::sin(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return notANumber(context); case NEG_INF: return notANumber(context); case NEG_NUM: case NUM: return newDouble(_double.sin(), context); default: assert(false); return 0; // should never get here } } Numeric::Ptr ATDoubleOrDerivedImpl::cos(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return notANumber(context); case NEG_INF: return notANumber(context);; case NEG_NUM: case NUM: return newDouble(_double.cos(), context); default: assert(false); return 0; // should never get here } } Numeric::Ptr ATDoubleOrDerivedImpl::tan(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return notANumber(context); case NEG_INF: return notANumber(context); case NEG_NUM: case NUM: return newDouble(_double.tan(), context); default: assert(false); return 0; // should never get here } } Numeric::Ptr ATDoubleOrDerivedImpl::asin(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return notANumber(context); case NEG_INF: return notANumber(context); case NEG_NUM: case NUM: if(_double.abs() > 1)return notANumber(context); return newDouble(_double.acos(), context); default: assert(false); return 0; // should never get here } } Numeric::Ptr ATDoubleOrDerivedImpl::acos(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return notANumber(context); case NEG_INF: return notANumber(context); case NEG_NUM: case NUM: if(_double.abs() > 1)return notANumber(context); return newDouble(_double.acos(), context); default: assert(false); return 0; // should never get here } } Numeric::Ptr ATDoubleOrDerivedImpl::atan(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return newDouble((MM_HALF_PI), context); case NEG_INF: return newDouble(MAPM(MM_HALF_PI).neg() , context); case NEG_NUM: case NUM: return newDouble(_double.atan(), context); default: assert(false); return 0; // should never get here } } Numeric::Ptr ATDoubleOrDerivedImpl::log(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return infinity(context); case NEG_INF: return notANumber(context); case NEG_NUM: return notANumber(context); case NUM: if(_double == 0) return notANumber(context); return newDouble(_double.log(), context); default: assert(false); return 0; // should never get here } } Numeric::Ptr ATDoubleOrDerivedImpl::exp(const DynamicContext* context) const { switch (_state) { case NaN: return this; case INF: return infinity(context); case NEG_INF: return newDouble(0, context); case NEG_NUM: case NUM: return newDouble(_double.exp(), context); default: assert(false); return 0; // should never get here } } /** Does this Numeric have value 0? */ bool ATDoubleOrDerivedImpl::isZero() const { switch (_state) { case NaN: case INF: case NEG_INF: return false; default: /*NUM*/{ return _double.sign() == 0; } } } /** Is this Numeric negative? */ bool ATDoubleOrDerivedImpl::isNegative() const { switch (_state) { case NaN: case INF: case NUM: return false; case NEG_NUM: case NEG_INF: return true; } assert(false); return false; // should never get here } /** Is this Numeric positive? */ bool ATDoubleOrDerivedImpl::isPositive() const { switch (_state) { case INF: case NUM: return true; case NaN: case NEG_INF: case NEG_NUM: return false; } assert(false); return false; // should never get here } /* Is this xs:double not a number */ bool ATDoubleOrDerivedImpl::isNaN() const { return _state == NaN; } /* Is this xs:double infinite? */ bool ATDoubleOrDerivedImpl::isInfinite() const { return _state == INF || _state == NEG_INF; } AnyAtomicType::AtomicObjectType ATDoubleOrDerivedImpl::getPrimitiveTypeIndex() const { return this->getTypeIndex(); } /* returns a new infinity xs:double*/ ATDoubleOrDerived::Ptr ATDoubleOrDerivedImpl::infinity(const DynamicContext* context) const { return context->getItemFactory()->createDouble(Numeric::INF_string, context); } /* returns a new negative infinity xs:double*/ ATDoubleOrDerived::Ptr ATDoubleOrDerivedImpl::negInfinity(const DynamicContext* context) const { return context->getItemFactory()->createDouble(Numeric::NegINF_string, context); } /* returns a NaN xs:double*/ ATDoubleOrDerived::Ptr ATDoubleOrDerivedImpl::notANumber(const DynamicContext* context) const { return context->getItemFactory()->createDouble(Numeric::NaN_string, context); } /* returns a -0 ATDoubleOrDerived*/ ATDoubleOrDerived::Ptr ATDoubleOrDerivedImpl::negZero(const DynamicContext* context) const { return context->getItemFactory()->createDouble(Numeric::NegZero_string, context); } /*returns a ATDoubleOrDerived of value value*/ ATDoubleOrDerived::Ptr ATDoubleOrDerivedImpl::newDouble(MAPM value, const DynamicContext* context) const { return context->getItemFactory()->createDouble(value, context); } static MAPM parse(const XMLCh* const value, Numeric::State &state) { if(value == NULL) { // Not a Number state = Numeric::NaN; return 0; } unsigned int length = XPath2Utils::uintStrlen(value) + 1; AutoDeleteArray buffer(new char[length]); bool gotBase = false; bool gotPoint = false; bool gotSign = false; bool gotDigit = false; bool stop = false; bool munchWS = true; bool isNegative = false; const XMLCh *src = value; char *dest = buffer; XMLCh tmpChar; while(!stop && *src != 0) { tmpChar = *src++; switch(tmpChar) { case L'+': { *dest++ = '+'; if(gotSign || gotDigit) { stop = true; } else { gotSign = true; } break; } case L'-': { *dest++ = '-'; if(gotSign || gotDigit) { stop = true; } else { gotSign = true; if(!gotBase) isNegative = true; } break; } case 0x0045: case 0x0065: { *dest++ = 'e'; if(!gotDigit || gotBase) { stop = true; } else { gotPoint = false; gotSign = false; gotBase = true; gotDigit = false; } break; } //This is '.' case 0x002e: { *dest++ = '.'; if(gotPoint || gotBase) { stop = true; } else { gotPoint = true; } break; } case 0x0030: case 0x0031: case 0x0032: case 0x0033: case 0x0034: case 0x0035: case 0x0036: case 0x0037: case 0x0038: case 0x0039: { gotDigit = true; *dest++ = (char)(tmpChar - 0x0030) + '0'; break; } // whitespace at start or end of string... case 0x0020: case 0x0009: case 0x000d: case 0x000a: { bool endOfWS = false; while(!endOfWS && *src != 0) { tmpChar = *src++; switch(tmpChar) { case 0x0020: case 0x0009: case 0x000d: case 0x000a: { break; } default: { endOfWS = true; --src; if(munchWS) { //end of leading whitespace munchWS = false; } else { //trailing whitespace is followed by other characters - so return NaN. stop = true; } } } } break; } default: stop = true; break; } } if(!gotDigit || stop) { if(XPath2Utils::equals(value, Numeric::NegINF_string)) { state = Numeric::NEG_INF; } else if (XPath2Utils::equals(value, Numeric::INF_string)) { state = Numeric::INF; } else { state = Numeric::NaN; } return 0; } *dest++ = 0; // Null terminate if(isNegative) state = Numeric::NEG_NUM; else state = Numeric::NUM; return (char*)buffer; } void ATDoubleOrDerivedImpl::setDouble(const XMLCh* const value) { _double = parse(value, _state); } MAPM ATDoubleOrDerivedImpl::parseDouble(const XMLCh* const value, State &state) { MAPM result = parse(value, state); Numeric::checkDoubleLimits(state, result); return result; } XQilla-2.3.0/src/items/impl/ATUntypedAtomicImpl.cpp0000644000151400015140000001053611653565523017054 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include "ATUntypedAtomicImpl.hpp" #include #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE; // We ignore the type URI and typeName passed in, since they are always xdt:untypedAtomic // (you cannot derived from it) ATUntypedAtomicImpl:: ATUntypedAtomicImpl(const XMLCh*, const XMLCh*, const XMLCh* value, const StaticContext* context): ATUntypedAtomic() { _value = context->getMemoryManager()->getPooledString(value); } void *ATUntypedAtomicImpl::getInterface(const XMLCh *name) const { if(name == Item::gXQilla) { return (void*)this; } return 0; } /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ const XMLCh* ATUntypedAtomicImpl::getPrimitiveTypeName() const { return this->getPrimitiveName(); } const XMLCh* ATUntypedAtomicImpl::getPrimitiveName() { return ATUntypedAtomic::fgDT_UNTYPEDATOMIC; } /* Get the namespace uri of the primitive type (basic type) of this type */ const XMLCh* ATUntypedAtomicImpl::getPrimitiveTypeURI() const{ return SchemaSymbols::fgURI_SCHEMAFORSCHEMA; } /* Get the name of this type (ie "integer" for xs:integer)-- * same as the primitive type name. UntypedAtomic cannot be * extended */ const XMLCh* ATUntypedAtomicImpl::getTypeName() const { return getPrimitiveTypeName(); } /* Get the namespace URI for this type -- same as the primitive uri * UntypedAtomic cannot be extended */ const XMLCh* ATUntypedAtomicImpl::getTypeURI() const { return getPrimitiveTypeURI(); } AnyAtomicType::AtomicObjectType ATUntypedAtomicImpl::getTypeIndex() { return AnyAtomicType::UNTYPED_ATOMIC; } AnyAtomicType::Ptr ATUntypedAtomicImpl::castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const { switch (targetIndex) { case DOUBLE: { const XMLCh* upCase = XPath2Utils::toUpper(_value, context->getMemoryManager()); return (const AnyAtomicType::Ptr)context->getItemFactory()->createDoubleOrDerived(targetURI, targetType, upCase, context); } case FLOAT: { const XMLCh* upCase = XPath2Utils::toUpper(_value, context->getMemoryManager()); return (const AnyAtomicType::Ptr)context->getItemFactory()->createFloatOrDerived(targetURI, targetType, upCase, context); } default: return AnyAtomicType::castAsInternal(targetIndex, targetURI, targetType, context); } } /* returns the XMLCh* (canonical) representation of this type */ const XMLCh* ATUntypedAtomicImpl::asString(const DynamicContext* context) const { return _value; } /* returns true if the two objects' URI are equal (string comparison) * false otherwise */ bool ATUntypedAtomicImpl::equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const { if(this->getPrimitiveTypeIndex() != target->getPrimitiveTypeIndex()) { XQThrow2(IllegalArgumentException,X("ATUntypedAtomicImpl::equals"), X("Equality operator for given types not supported [err:XPTY0004]")); } return XPath2Utils::equals(target->asString(context), _value); } AnyAtomicType::AtomicObjectType ATUntypedAtomicImpl::getPrimitiveTypeIndex() const { return this->getTypeIndex(); } XQilla-2.3.0/src/items/impl/ATAnySimpleTypeImpl.hpp0000644000151400015140000000521611653565523017036 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATANYSIMPLETYPEIMPL_HPP #define _ATANYSIMPLETYPEIMPL_HPP #include #include #include class DynamicContext; /** * This class represents the atomic types (ie, the simple types * which are not list or union types) with type annotation * xs:anySimpleType */ class XQILLA_API ATAnySimpleTypeImpl : public ATAnySimpleType { public: /* constructor */ ATAnySimpleTypeImpl(const XMLCh*, const XMLCh*, const XMLCh* value, const StaticContext* context); virtual void *getInterface(const XMLCh *name) const; /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const; /* returns true if the two objects' URI are equal (string comparison) * false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const; /* Get the primitive index associated with this type */ static AnyAtomicType::AtomicObjectType getTypeIndex(); /* Get the primitive type name */ static const XMLCh* getPrimitiveName(); /* Get the primitive index associated with this type */ virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const; protected: /* If possible, cast this type to the target type */ virtual AnyAtomicType::Ptr castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const; private: /*The value of this URI*/ const XMLCh* _value; }; #endif // _ATANYSIMPLETYPEIMPL_HPP XQilla-2.3.0/src/items/impl/ATAnySimpleTypeImpl.cpp0000644000151400015140000001022011653565523017020 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include "ATAnySimpleTypeImpl.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include // We ignore the type URI and typeName passed in, since they are always xdt:anySimpleType // (you cannot derived from it) ATAnySimpleTypeImpl:: ATAnySimpleTypeImpl(const XMLCh*, const XMLCh*, const XMLCh* value, const StaticContext* context) { _value = context->getMemoryManager()->getPooledString(value); } void *ATAnySimpleTypeImpl::getInterface(const XMLCh *name) const { if(name == Item::gXQilla) { return (void*)this; } return 0; } /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ const XMLCh* ATAnySimpleTypeImpl::getPrimitiveTypeName() const { return this->getPrimitiveName(); } const XMLCh* ATAnySimpleTypeImpl::getPrimitiveName() { return XERCES_CPP_NAMESPACE_QUALIFIER SchemaSymbols::fgDT_ANYSIMPLETYPE; } /* Get the name of this type (ie "integer" for xs:integer)-- * same as the primitive type name. AnySimpleType cannot be * extended */ const XMLCh* ATAnySimpleTypeImpl::getTypeName() const { return getPrimitiveTypeName(); } /* Get the namespace URI for this type -- same as the primitive uri * AnySimpleType cannot be extended */ const XMLCh* ATAnySimpleTypeImpl::getTypeURI() const { return getPrimitiveTypeURI(); } AnyAtomicType::AtomicObjectType ATAnySimpleTypeImpl::getTypeIndex() { return AnyAtomicType::ANY_SIMPLE_TYPE; } AnyAtomicType::Ptr ATAnySimpleTypeImpl::castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const { switch (targetIndex) { case DOUBLE: { const XMLCh* upCase = XPath2Utils::toUpper(_value, context->getMemoryManager()); return context->getItemFactory()->createDoubleOrDerived(targetURI, targetType, upCase, context); } case FLOAT: { const XMLCh* upCase = XPath2Utils::toUpper(_value, context->getMemoryManager()); return context->getItemFactory()->createFloatOrDerived(targetURI, targetType, upCase, context); } default: return AnyAtomicType::castAsInternal(targetIndex, targetURI, targetType, context); } } /* returns the XMLCh* (canonical) representation of this type */ const XMLCh* ATAnySimpleTypeImpl::asString(const DynamicContext* context) const { return _value; } /* returns true if the two objects' URI are equal (string comparison) * false otherwise */ bool ATAnySimpleTypeImpl::equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const { if(this->getPrimitiveTypeIndex() != target->getPrimitiveTypeIndex()) { XQThrow2(IllegalArgumentException,X("ATAnySimpleTypeImpl::equals"), X("Equality operator for given types not supported [err:XPTY0004]")); } return XPath2Utils::equals(target->asString(context), _value); } AnyAtomicType::AtomicObjectType ATAnySimpleTypeImpl::getPrimitiveTypeIndex() const { return this->getTypeIndex(); } XQilla-2.3.0/src/items/impl/ATGYearOrDerivedImpl.cpp0000644000151400015140000001774611653565523017114 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include "../../utils/DateUtils.hpp" #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif ATGYearOrDerivedImpl:: ATGYearOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context): ATGYearOrDerived(), _typeName(typeName), _typeURI(typeURI) { setGYear(value); } void *ATGYearOrDerivedImpl::getInterface(const XMLCh *name) const { if(name == Item::gXQilla) { return (void*)this; } return 0; } /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ const XMLCh* ATGYearOrDerivedImpl::getPrimitiveTypeName() const { return getPrimitiveName(); } const XMLCh* ATGYearOrDerivedImpl::getPrimitiveName() { return SchemaSymbols::fgDT_YEAR; } /* Get the name of this type (ie "integer" for xs:integer) */ const XMLCh* ATGYearOrDerivedImpl::getTypeName() const { return _typeName; } /* Get the namespace URI for this type */ const XMLCh* ATGYearOrDerivedImpl::getTypeURI() const { return _typeURI; } AnyAtomicType::AtomicObjectType ATGYearOrDerivedImpl::getTypeIndex() { return AnyAtomicType::G_YEAR; } /* returns the XMLCh* (canonical) representation of this type */ const XMLCh* ATGYearOrDerivedImpl::asString(const DynamicContext* context) const { XMLBuffer buffer(1023, context->getMemoryManager()); DateUtils::formatNumber(_YY, 4, buffer); if(_hasTimezone) { buffer.append(timezone_->asString(context)); } return context->getMemoryManager()->getPooledString(buffer.getRawBuffer()); } static inline MAPM referenceDateTime(const MAPM &YY, bool hasTimezone, const Timezone::Ptr &timezone) { MAPM result = DateUtils::convertDMY2Absolute(1, 1, YY) * DateUtils::g_secondsPerDay; if(hasTimezone) { result -= timezone->asSeconds(); } return result; } MAPM ATGYearOrDerivedImpl::buildReferenceDateTime(const DynamicContext *context) const { MAPM result = referenceDateTime(_YY, _hasTimezone, timezone_); if(!_hasTimezone) result -= context->getImplicitTimezone()->asSeconds(context)->asMAPM(); return result; } /* returns true if the two objects * false otherwise */ bool ATGYearOrDerivedImpl::equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const { if(this->getPrimitiveTypeIndex() != target->getPrimitiveTypeIndex()) { XQThrow2(::IllegalArgumentException,X("ATGYearOrDerivedImpl::equals"), X("Equality operator for given types not supported [err:XPTY0004]")); } return compare((const ATGYearOrDerived *)target.get(), context) == 0; } int ATGYearOrDerivedImpl::compare(const ATGYearOrDerived::Ptr &other, const DynamicContext *context) const { return buildReferenceDateTime(context).compare(((const ATGYearOrDerivedImpl *)other.get())->buildReferenceDateTime(context)); } /** Returns true if a timezone is defined for this. False otherwise.*/ bool ATGYearOrDerivedImpl::hasTimezone() const { return _hasTimezone; } /** Sets the timezone to the given timezone.*/ ATGYearOrDerived::Ptr ATGYearOrDerivedImpl::setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const { XMLBuffer buffer(1023, context->getMemoryManager()); DateUtils::formatNumber(_YY, 4, buffer); if(timezone != NULLRCP) buffer.append(timezone->asString(context)); return context->getItemFactory()->createGYearOrDerived(this->getTypeURI(), this->getTypeName(), buffer.getRawBuffer(), context); } AnyAtomicType::AtomicObjectType ATGYearOrDerivedImpl::getPrimitiveTypeIndex() const { return this->getTypeIndex(); } /* parse the gYear */ void ATGYearOrDerivedImpl::setGYear(const XMLCh* const value) { unsigned int length = XPath2Utils::uintStrlen(value); if(value == NULL) { XQThrow2(XPath2TypeCastException,X("ATGYearOrDerivedImpl::setGYear"), X("Invalid representation of gYear [err:FORG0001]")); } // State variables etc. bool gotDigit = false; unsigned int pos = 0; long int tmpnum = 0; unsigned int numDigit = 0; bool negative = false; // defaulting values MAPM YY = 0; _hasTimezone = false; bool zonepos = false; int zonehh = 0; int zonemm = 0; int state = 0 ; // 0 = year / 1 = month / 2 = day / 3 = hour // 4 = minutes / 5 = sec / 6 = timezonehour / 7 = timezonemin XMLCh tmpChar; bool wrongformat = false; if ( length > 0 && value[0] == L'-' ) { negative = true; pos = 1; }else{ pos = 0; } while ( ! wrongformat && pos < length) { tmpChar = value[pos]; pos++; switch(tmpChar) { case 0x0030: case 0x0031: case 0x0032: case 0x0033: case 0x0034: case 0x0035: case 0x0036: case 0x0037: case 0x0038: case 0x0039: { numDigit ++; tmpnum *= 10; tmpnum += static_cast(tmpChar - 0x0030); gotDigit = true; break; } case L'-' : { if ( gotDigit && state == 0 && numDigit >= 4) { YY = tmpnum; tmpnum = 0; gotDigit = false; _hasTimezone = true; zonepos = false; state = 6; numDigit = 0; } else { wrongformat = true; } break; } case L'+' : { if ( gotDigit && state == 0 && numDigit >= 4) { YY = tmpnum; state = 6; gotDigit = false; _hasTimezone = true; zonepos = true; tmpnum = 0; numDigit = 0; } else { wrongformat = true; } break; } case L':' : { if (gotDigit && state == 6 && numDigit == 2 ) { zonehh = tmpnum; tmpnum = 0; gotDigit = false; numDigit = 0; state = 7; }else { wrongformat = true; } break; } case L'Z' : { if (gotDigit && state == 0 && numDigit >= 4) { YY = tmpnum; state = 8; // final state _hasTimezone = true; gotDigit = false; tmpnum = 0; numDigit = 0; } else { wrongformat = true; } break; } default: wrongformat = true; } } if (gotDigit) { if ( gotDigit && state == 7 && numDigit == 2) { zonemm = tmpnum; }else if ( gotDigit && state == 0 && numDigit >= 4 ) { YY += tmpnum; }else { wrongformat = true; } } if (negative) { YY = YY * -1; } if (YY == 0) { wrongformat = true; } // check time format if (wrongformat) { XQThrow2(XPath2TypeCastException,X("ATGYearOrDerivedImpl::setGYear"), X("Invalid representation of gYear [err:FORG0001]")); } timezone_ = new Timezone(Timezone::convert(zonepos, zonehh, zonemm)); _YY = YY; } MAPM ATGYearOrDerivedImpl::parseGYear(const XMLCh* const value, const MAPM &implicitTimezone) { ATGYearOrDerivedImpl dt(0, 0, value); MAPM result = referenceDateTime(dt._YY, dt._hasTimezone, dt.timezone_); if(!dt._hasTimezone) result -= implicitTimezone; return result; } XQilla-2.3.0/src/items/impl/ATAnyURIOrDerivedImpl.cpp0000644000151400015140000000761111653565523017202 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include "ATAnyURIOrDerivedImpl.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include ATAnyURIOrDerivedImpl:: ATAnyURIOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const StaticContext* context): _typeName(typeName), _typeURI(typeURI) { _uri = context->getMemoryManager()->getPooledString(value); } void *ATAnyURIOrDerivedImpl::getInterface(const XMLCh *name) const { if(name == Item::gXQilla) { return (void*)this; } return 0; } /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ const XMLCh* ATAnyURIOrDerivedImpl::getPrimitiveTypeName() const { return this->getPrimitiveName(); } const XMLCh* ATAnyURIOrDerivedImpl::getPrimitiveName() { return XERCES_CPP_NAMESPACE_QUALIFIER SchemaSymbols::fgDT_ANYURI; } /* Get the name of this type (ie "integer" for xs:integer) */ const XMLCh* ATAnyURIOrDerivedImpl::getTypeName() const { return _typeName; } /* Get the namespace URI for this type */ const XMLCh* ATAnyURIOrDerivedImpl::getTypeURI() const { return _typeURI; } AnyAtomicType::AtomicObjectType ATAnyURIOrDerivedImpl::getTypeIndex() { return AnyAtomicType::ANY_URI; } /* If possible, cast this type to the target type */ AnyAtomicType::Ptr ATAnyURIOrDerivedImpl::castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const { switch (targetIndex) { case ANY_SIMPLE_TYPE: case UNTYPED_ATOMIC: //anySimpleType and untypedAtomic follow the same casting rules as string. case STRING: { return context->getItemFactory()->createDerivedFromAtomicType(targetIndex, targetURI, targetType, _uri, context); } default: return AnyAtomicType::castAsInternal(targetIndex, targetURI, targetType, context); } } /* returns the XMLCh* (canonical) representation of this type */ const XMLCh* ATAnyURIOrDerivedImpl::asString(const DynamicContext* context) const { return _uri; } /* returns true if the two objects' URI are equal (string comparison) * false otherwise */ bool ATAnyURIOrDerivedImpl::equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const { if(this->getPrimitiveTypeIndex() != target->getPrimitiveTypeIndex() && target->getPrimitiveTypeIndex()!=STRING) { XQThrow2(IllegalArgumentException,X("ATAnyURIOrDerivedImpl::equals"), X("Equality operator for given types not supported [err:XPTY0004]")); } return XPath2Utils::equals(target->asString(context), _uri); } AnyAtomicType::AtomicObjectType ATAnyURIOrDerivedImpl::getPrimitiveTypeIndex() const { return this->getTypeIndex(); } XQilla-2.3.0/src/items/impl/ATGYearMonthOrDerivedImpl.cpp0000644000151400015140000002166411653565523020114 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include "../../utils/DateUtils.hpp" #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif ATGYearMonthOrDerivedImpl:: ATGYearMonthOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context): ATGYearMonthOrDerived(), _typeName(typeName), _typeURI(typeURI) { setGYearMonth(value); } void *ATGYearMonthOrDerivedImpl::getInterface(const XMLCh *name) const { if(name == Item::gXQilla) { return (void*)this; } return 0; } /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ const XMLCh* ATGYearMonthOrDerivedImpl::getPrimitiveTypeName() const { return getPrimitiveName(); } const XMLCh* ATGYearMonthOrDerivedImpl::getPrimitiveName() { return SchemaSymbols::fgDT_YEARMONTH; } /* Get the name of this type (ie "integer" for xs:integer) */ const XMLCh* ATGYearMonthOrDerivedImpl::getTypeName() const { return _typeName; } /* Get the namespace URI for this type */ const XMLCh* ATGYearMonthOrDerivedImpl::getTypeURI() const { return _typeURI; } AnyAtomicType::AtomicObjectType ATGYearMonthOrDerivedImpl::getTypeIndex() { return AnyAtomicType::G_YEAR_MONTH; } /* returns the XMLCh* (canonical) representation of this type */ const XMLCh* ATGYearMonthOrDerivedImpl::asString(const DynamicContext* context) const { XMLBuffer buffer(1023, context->getMemoryManager()); DateUtils::formatNumber(_YY, 4, buffer); buffer.append(chDash); DateUtils::formatNumber(_MM, 2, buffer); if( _hasTimezone) { buffer.append(timezone_->asString(context)); } return context->getMemoryManager()->getPooledString(buffer.getRawBuffer()); } static inline MAPM referenceDateTime(const MAPM &YY, const MAPM &MM, bool hasTimezone, const Timezone::Ptr &timezone) { MAPM result = DateUtils::convertDMY2Absolute(DateUtils::maximumDayInMonthFor(YY, MM), MM, YY) * DateUtils::g_secondsPerDay; if(hasTimezone) { result -= timezone->asSeconds(); } return result; } MAPM ATGYearMonthOrDerivedImpl::buildReferenceDateTime(const DynamicContext *context) const { MAPM result = referenceDateTime(_YY, _MM, _hasTimezone, timezone_); if(!_hasTimezone) result -= context->getImplicitTimezone()->asSeconds(context)->asMAPM(); return result; } /* Returns true if and only if the xs:dateTimes representing the starting instants of $arg1 and $arg2 compare equal. * The starting instants of $arg1 and $arg2 are calculated by adding the missing components of $arg1 and $arg2 from * the xs:dateTime template xxxx-xx-ddT00:00:00 where dd represents the last day of the month component in $arg1 or $arg2. * Returns false otherwise. */ bool ATGYearMonthOrDerivedImpl::equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const { if(this->getPrimitiveTypeIndex() != target->getPrimitiveTypeIndex()) { XQThrow2(::IllegalArgumentException,X("ATGYearMonthOrDerivedImpl::equals"), X("Equality operator for given types not supported [err:XPTY0004]")); } return compare((const ATGYearMonthOrDerived *)target.get(), context) == 0; } int ATGYearMonthOrDerivedImpl::compare(const ATGYearMonthOrDerived::Ptr &other, const DynamicContext *context) const { return buildReferenceDateTime(context).compare(((const ATGYearMonthOrDerivedImpl *)other.get())->buildReferenceDateTime(context)); } /** Returns true if a timezone is defined for this. False otherwise.*/ bool ATGYearMonthOrDerivedImpl::hasTimezone() const { return _hasTimezone; } /** Sets the timezone to the given timezone.*/ ATGYearMonthOrDerived::Ptr ATGYearMonthOrDerivedImpl::setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const { XMLBuffer buffer(1023, context->getMemoryManager()); DateUtils::formatNumber(_YY, 4, buffer); buffer.append(chDash); DateUtils::formatNumber(_MM, 2, buffer); if(timezone != NULLRCP) buffer.append(timezone->asString(context)); return context->getItemFactory()->createGYearMonthOrDerived(this->getTypeURI(), this->getTypeName(), buffer.getRawBuffer(), context); } AnyAtomicType::AtomicObjectType ATGYearMonthOrDerivedImpl::getPrimitiveTypeIndex() const { return this->getTypeIndex(); } /* parse the gYearMonth */ void ATGYearMonthOrDerivedImpl::setGYearMonth(const XMLCh* const value) { unsigned int length = XPath2Utils::uintStrlen(value); if(value == NULL) { XQThrow2(XPath2TypeCastException,X("ATGYearMonthOrDerivedImpl::setGYearMonth"), X("Invalid representation of gYearMonth [err:FORG0001]")); } // State variables etc. bool gotDigit = false; unsigned int pos = 0; long int tmpnum = 0; unsigned int numDigit = 0; bool negative = false; // defaulting values MAPM YY = 0; MAPM MM = 0; _hasTimezone = false; bool zonepos = false; int zonehh = 0; int zonemm = 0; int state = 0 ; // 0 = year / 1 = month / 2 = day / 3 = hour // 4 = minutes / 5 = sec / 6 = timezonehour / 7 = timezonemin XMLCh tmpChar; bool wrongformat = false; if ( length > 0 && value[0] == L'-' ) { negative = true; pos = 1; }else{ pos = 0; } while ( ! wrongformat && pos < length) { tmpChar = value[pos]; pos++; switch(tmpChar) { case 0x0030: case 0x0031: case 0x0032: case 0x0033: case 0x0034: case 0x0035: case 0x0036: case 0x0037: case 0x0038: case 0x0039: { numDigit ++; tmpnum *= 10; tmpnum += static_cast(tmpChar - 0x0030); gotDigit = true; break; } case L'-' : { if ( gotDigit ) { if (state == 0 && numDigit >= 4) { YY = tmpnum; tmpnum = 0; gotDigit = false; numDigit = 0; } else if (state == 1 && numDigit == 2) { MM = tmpnum; tmpnum = 0; gotDigit = false; _hasTimezone = true; zonepos = false; state = 5; numDigit = 0; } else { wrongformat = true; } state ++; } else { wrongformat = true; } break; } case L'+' : { if ( gotDigit && state == 1 && numDigit == 2) { MM = tmpnum; state = 6; gotDigit = false; _hasTimezone = true; zonepos = true; tmpnum = 0; numDigit = 0; } else { wrongformat = true; } break; } case L':' : { if (gotDigit && state == 6 && numDigit == 2) { zonehh = tmpnum; tmpnum = 0; gotDigit = false; state ++; numDigit = 0; }else { wrongformat = true; } break; } case L'Z' : { if (gotDigit && state == 1 && numDigit == 2) { MM = tmpnum; state = 8; // final state _hasTimezone = true; gotDigit = false; tmpnum = 0; numDigit = 0; } else { wrongformat = true; } break; } default: wrongformat = true; } } if (negative) { YY = YY * -1; } if (gotDigit) { if ( gotDigit && state == 7 && numDigit == 2) { zonemm = tmpnum; } else if ( gotDigit && state == 1 && numDigit == 2) { MM = tmpnum; } else { wrongformat = true; } } // check time format if ( MM > 12 || zonehh > 24 || zonemm > 60 || YY == 0 ) { wrongformat = true; } if ( wrongformat) { XQThrow2(XPath2TypeCastException,X("ATGYearMonthOrDerivedImpl::setGYearMonth"), X("Invalid representation of gYearMonth [err:FORG0001]")); } timezone_ = new Timezone(Timezone::convert(zonepos, zonehh, zonemm)); _MM = MM; _YY = YY; } MAPM ATGYearMonthOrDerivedImpl::parseGYearMonth(const XMLCh* const value, const MAPM &implicitTimezone) { ATGYearMonthOrDerivedImpl dt(0, 0, value); MAPM result = referenceDateTime(dt._YY, dt._MM, dt._hasTimezone, dt.timezone_); if(!dt._hasTimezone) result -= implicitTimezone; return result; } XQilla-2.3.0/src/items/impl/ATGMonthOrDerivedImpl.cpp0000644000151400015140000002160111653565523017262 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include "../../utils/DateUtils.hpp" #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif ATGMonthOrDerivedImpl:: ATGMonthOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context): ATGMonthOrDerived(), _typeName(typeName), _typeURI(typeURI) { setGMonth(value); } void *ATGMonthOrDerivedImpl::getInterface(const XMLCh *name) const { if(name == Item::gXQilla) { return (void*)this; } return 0; } /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ const XMLCh* ATGMonthOrDerivedImpl::getPrimitiveTypeName() const { return this->getPrimitiveName(); } const XMLCh* ATGMonthOrDerivedImpl::getPrimitiveName() { return SchemaSymbols::fgDT_MONTH; } /* Get the name of this type (ie "integer" for xs:integer) */ const XMLCh* ATGMonthOrDerivedImpl::getTypeName() const { return _typeName; } /* Get the namespace URI for this type */ const XMLCh* ATGMonthOrDerivedImpl::getTypeURI() const { return _typeURI; } AnyAtomicType::AtomicObjectType ATGMonthOrDerivedImpl::getTypeIndex() { return AnyAtomicType::G_MONTH; } /* returns the XMLCh* (canonical) representation of this type */ const XMLCh* ATGMonthOrDerivedImpl::asString(const DynamicContext* context) const { /* --MM format*/ XMLBuffer buffer(1023, context->getMemoryManager()); buffer.append(chDash); buffer.append(chDash); DateUtils::formatNumber(_gMonth, 2, buffer); if(_hasTimezone) { buffer.append(timezone_->asString(context)); } return context->getMemoryManager()->getPooledString(buffer.getRawBuffer()); } static inline MAPM referenceDateTime(const MAPM &MM, bool hasTimezone, const Timezone::Ptr &timezone) { MAPM result = DateUtils::convertDMY2Absolute(DateUtils::maximumDayInMonthFor(1972, MM), MM, 1972) * DateUtils::g_secondsPerDay; if(hasTimezone) { result -= timezone->asSeconds(); } return result; } MAPM ATGMonthOrDerivedImpl::buildReferenceDateTime(const DynamicContext *context) const { MAPM result = referenceDateTime(_gMonth, _hasTimezone, timezone_); if(!_hasTimezone) result -= context->getImplicitTimezone()->asSeconds(context)->asMAPM(); return result; } /* Returns true if and only if the xs:dateTimes representing the starting instants of equivalent occurrences of $arg1 and $arg2 * compare equal. The starting instants of equivalent occurrences of $arg1 and $arg2 are calculated by adding the missing components * of $arg1 and $arg2 from an xs:dateTime template such as 1972-xx-ddT00:00:00 where dd represents the last day of the month * component in $arg1 or $arg2. Returns false otherwise. */ bool ATGMonthOrDerivedImpl::equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const { if(this->getPrimitiveTypeIndex() != target->getPrimitiveTypeIndex()) { XQThrow2(::IllegalArgumentException,X("ATGMonthOrDerivedImpl::equals"), X("Equality operator for given types not supported [err:XPTY0004]")); } return compare((const ATGMonthOrDerived *)target.get(), context) == 0; } int ATGMonthOrDerivedImpl::compare(const ATGMonthOrDerived::Ptr &other, const DynamicContext *context) const { return buildReferenceDateTime(context).compare(((const ATGMonthOrDerivedImpl *)other.get())->buildReferenceDateTime(context)); } /** Returns true if a timezone is defined for this. False otherwise.*/ bool ATGMonthOrDerivedImpl::hasTimezone() const { return _hasTimezone; } /** Sets the timezone to the given timezone.*/ ATGMonthOrDerived::Ptr ATGMonthOrDerivedImpl::setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const { XMLBuffer buffer(1023, context->getMemoryManager()); buffer.append(chDash); buffer.append(chDash); DateUtils::formatNumber(_gMonth, 2, buffer); if(timezone != NULLRCP) buffer.append(timezone->asString(context)); return context->getItemFactory()->createGMonthOrDerived(this->getTypeURI(), this->getTypeName(), buffer.getRawBuffer(), context); } AnyAtomicType::AtomicObjectType ATGMonthOrDerivedImpl::getPrimitiveTypeIndex() const { return this->getTypeIndex(); } /* parse the gMonth */ void ATGMonthOrDerivedImpl::setGMonth(const XMLCh* const value) { unsigned int length = XPath2Utils::uintStrlen(value); if(value == NULL) { XQThrow2(XPath2TypeCastException,X("XSGMonthImpl::setGMonth"), X("Invalid representation of gMonth [err:FORG0001]")); } // State variables etc. bool gotDigit = false; unsigned int pos = 0; long int tmpnum = 0; unsigned int numDigit = 0; // defaulting values MAPM MM = 0; _hasTimezone = false; bool zonepos = false; int zonehh = 0; int zonemm = 0; int state = 0 ; // 0 = year / 1 = month / 2 = day / 3 = hour // 4 = minutes / 5 = sec / 6 = timezonehour / 7 = timezonemin XMLCh tmpChar; bool wrongformat = false; if ( length < 4 || value[0] != L'-' || value[1] != L'-' ) { wrongformat = true; }else{ pos = 2; state = 1; } while ( ! wrongformat && pos < length) { tmpChar = value[pos]; pos++; switch(tmpChar) { case 0x0030: case 0x0031: case 0x0032: case 0x0033: case 0x0034: case 0x0035: case 0x0036: case 0x0037: case 0x0038: case 0x0039: { tmpnum *= 10; tmpnum += static_cast(tmpChar - 0x0030); gotDigit = true; numDigit ++; break; } case L'-' : { if ( gotDigit && state == 1 && numDigit == 2) { MM = tmpnum; tmpnum = 0; gotDigit = false; state = 6; numDigit = 0; _hasTimezone = true; zonepos = false; } else { wrongformat = true; } break; } case L'+' : { if ( gotDigit && state == 1 && numDigit == 2) { MM = tmpnum; tmpnum = 0; gotDigit = false; state = 6; numDigit = 0; _hasTimezone = true; zonepos = true; } else { wrongformat = true; } break; } case L':' : { if (gotDigit && state == 6 && numDigit == 2) { zonehh = tmpnum; tmpnum = 0; gotDigit = false; state ++; numDigit = 0; state = 7; }else { wrongformat = true; } break; } case L'Z' : { if ( gotDigit && state == 1 && numDigit == 2) { state = 8; // final state MM = tmpnum; _hasTimezone = true; gotDigit = false; tmpnum = 0; numDigit = 0; } else { wrongformat = true; } break; } default: wrongformat = true; } } if (gotDigit) { if ( state == 1 && numDigit == 2) MM = tmpnum; else if( state == 7 && numDigit == 2) zonemm = tmpnum; else wrongformat = true; } // check time format if ( MM > 12 || zonehh > 24 || zonemm > 60 ) { wrongformat = true; } if ( wrongformat) { XQThrow2(XPath2TypeCastException,X("ATGMonthOrDerivedImpl::setGMonth"), X("Invalid representation of gMonth [err:FORG0001]")); } _gMonth = MM; timezone_ = new Timezone(Timezone::convert(zonepos, zonehh, zonemm)); } MAPM ATGMonthOrDerivedImpl::parseGMonth(const XMLCh* const value, const MAPM &implicitTimezone) { ATGMonthOrDerivedImpl dt(0, 0, value); MAPM result = referenceDateTime(dt._gMonth, dt._hasTimezone, dt.timezone_); if(!dt._hasTimezone) result -= implicitTimezone; return result; } XQilla-2.3.0/src/items/impl/ATBase64BinaryOrDerivedImpl.hpp0000644000151400015140000000552611653565523020274 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _ATBASE64BINARYORDERIVEDIMPL_HPP #define _ATBASE64BINARYORDERIVEDIMPL_HPP #include #include #include class XPath2MemoryManager; class AnyAtomicType; class XQILLA_API ATBase64BinaryOrDerivedImpl : public ATBase64BinaryOrDerived { public: /* constructor */ ATBase64BinaryOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const StaticContext* context); virtual void *getInterface(const XMLCh *name) const; /* Get the name of the primitive type (basic type) of this type (ie "decimal" for xs:decimal) */ virtual const XMLCh* getPrimitiveTypeName() const; /* Get the namespace URI for this type */ virtual const XMLCh* getTypeURI() const; /* Get the name of this type (ie "integer" for xs:integer) */ virtual const XMLCh* getTypeName() const; /* returns the XMLCh* (canonical) representation of this type */ virtual const XMLCh* asString(const DynamicContext* context) const; /* returns true if the two objects' base 64 binary representation * are equal (string comparison) false otherwise */ virtual bool equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const; /** Returns less than 0 if this is less that other, 0 if they are the same, and greater than 0 otherwise */ virtual int compare(const ATBase64BinaryOrDerived::Ptr &other, const DynamicContext *context) const; static AnyAtomicType::AtomicObjectType getTypeIndex(); /* Get the primitive type name */ static const XMLCh* getPrimitiveName(); virtual AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const; protected: /* If possible, cast this type to the target type */ virtual AnyAtomicType::Ptr castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const; private: /*The value of this base 64 value*/ XMLCh* _base64Data; /* the name of this type */ const XMLCh* _typeName; /* the uri of this type */ const XMLCh* _typeURI; }; #endif // _ATBASE64BINARYORDERIVEDIMPL_HPP XQilla-2.3.0/src/items/impl/ATQNameOrDerivedImpl.cpp0000644000151400015140000002000511653565523017064 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif ATQNameOrDerivedImpl:: ATQNameOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const StaticContext* context) : ATQNameOrDerived(), _typeName(typeName), _typeURI(typeURI) { const XMLCh* prefix = XPath2NSUtils::getPrefix(value, context->getMemoryManager()); const XMLCh* uri; if(XPath2Utils::equals(prefix, XMLUni::fgZeroLenString)) { // If $qname has no prefix uri = context->getDefaultElementAndTypeNS(); } // If $qname has a prefix else { try { uri = context->getUriBoundToPrefix(prefix, 0); } catch(NamespaceLookupException&) { XQThrow2(StaticErrorException, X("ATQNameOrDerivedImpl::ATQNameOrDerivedImpl"), X("No namespace for prefix [err:FONS0004]")); } } // _uri will be null if there is no default NS _uri = context->getMemoryManager()->getPooledString(uri); _prefix = context->getMemoryManager()->getPooledString(prefix); _name = context->getMemoryManager()->getPooledString(XPath2NSUtils::getLocalName(value)); } ATQNameOrDerivedImpl:: ATQNameOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* uri, const XMLCh* prefix, const XMLCh* name, const StaticContext* context) : ATQNameOrDerived(), _typeName(typeName), _typeURI(typeURI) { // if uri is NULL, so will _uri _uri = context->getMemoryManager()->getPooledString(uri); _prefix = context->getMemoryManager()->getPooledString(prefix); _name = context->getMemoryManager()->getPooledString(name); } void *ATQNameOrDerivedImpl::getInterface(const XMLCh *name) const { if(name == Item::gXQilla) { return (void*)this; } return 0; } /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ const XMLCh* ATQNameOrDerivedImpl::getPrimitiveTypeName() const { return this->getPrimitiveName(); } /* Get the name of this type (ie "integer" for xs:integer) */ const XMLCh* ATQNameOrDerivedImpl::getTypeName() const { return _typeName; } /* Get the namespace URI for this type */ const XMLCh* ATQNameOrDerivedImpl::getTypeURI() const { return _typeURI; } /* returns the URI */ const XMLCh* ATQNameOrDerivedImpl::getURI(void) const { return _uri; } /* returns the prefix */ const XMLCh* ATQNameOrDerivedImpl::getPrefix(void) const { return _prefix; } /* returns the name */ const XMLCh* ATQNameOrDerivedImpl::getName(void) const { return _name; } AnyAtomicType::AtomicObjectType ATQNameOrDerivedImpl::getTypeIndex() { return AnyAtomicType::QNAME; } /* If possible, cast this type to the target type */ AnyAtomicType::Ptr ATQNameOrDerivedImpl::castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const { switch (targetIndex) { case ANY_SIMPLE_TYPE: case UNTYPED_ATOMIC: //anySimpleType and untypedAtomic follow the same casting rules as string. case STRING: { return context->getItemFactory()->createDerivedFromAtomicType(targetIndex, targetURI, targetType, this->asLexicalString(context), context); } case QNAME: { if(targetType == 0) { targetURI = SchemaSymbols::fgURI_SCHEMAFORSCHEMA; targetType = SchemaSymbols::fgDT_QNAME; } return context->getItemFactory()->createQNameOrDerived(targetURI, targetType, _uri, _prefix, _name, context); } default: return AnyAtomicType::castAsInternal(targetIndex, targetURI, targetType, context); } } /* returns the XMLCh* (canonical) representation of this type */ const XMLCh* ATQNameOrDerivedImpl::asString(const DynamicContext* context) const { XMLBuffer buffer(1023, context->getMemoryManager()); if(_prefix != 0 && *_prefix != 0) { buffer.set(_prefix); buffer.append(chColon); } buffer.append(_name); return context->getMemoryManager()->getPooledString(buffer.getRawBuffer()); } /* returns the XMLCh* (lexical => prefix:localname) representation of this type */ const XMLCh* ATQNameOrDerivedImpl::asLexicalString(const DynamicContext* context) const { XMLBuffer buffer(1023, context->getMemoryManager()); const XMLCh* prefix; if(this->_uri == 0 || XPath2Utils::equals(_uri, XMLUni::fgZeroLenString)) { if(context->getDefaultElementAndTypeNS() != 0) { XQThrow2(NamespaceLookupException,X("ATQNameOrDerivedImpl::asLexicalString"), X("Default namespace is defined: casting a QName that has no namespace is ambiguous")); } buffer.set(_name); } else { // if we have a prefix, use it, otherwise try looking at the in-scope namespaces // (unless the namespace is the default one) if(XPath2Utils::equals(_prefix,XMLUni::fgZeroLenString) && !XPath2Utils::equals(_uri, context->getDefaultElementAndTypeNS())) prefix = context->getPrefixBoundToUri(this->_uri); else prefix = _prefix; if (prefix == 0) { XMLBuffer msg(1023, context->getMemoryManager()); msg.set(X("No prefix defined for namespace '")); msg.append(_uri); msg.append(X("'")); XQThrow2(NamespaceLookupException,X("ATQNameOrDerivedImpl::asLexicalString"), msg.getRawBuffer()); } buffer.set(prefix); buffer.append(chColon); buffer.append(_name); } return context->getMemoryManager()->getPooledString(buffer.getRawBuffer()); } /* returns true if the two objects' URI are equal (string comparison) * false otherwise */ bool ATQNameOrDerivedImpl::equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const { if(this->getPrimitiveTypeIndex() != target->getPrimitiveTypeIndex()) { XQThrow2(::IllegalArgumentException,X("ATQNameOrDerivedImpl::equals"), X("Equality operator for given types not supported [err:XPTY0004]")); } return compare((const ATQNameOrDerived *)target.get(), context) == 0; } int ATQNameOrDerivedImpl::compare(const ATQNameOrDerived::Ptr &other, const DynamicContext *context) const { const ATQNameOrDerivedImpl *otherImpl = (const ATQNameOrDerivedImpl *)other.get(); int cmp = XPath2Utils::compare(_name, otherImpl->_name); if(cmp != 0) return cmp; return XPath2Utils::compare(_uri, otherImpl->_uri); } const XMLCh* ATQNameOrDerivedImpl::getPrimitiveName() { return SchemaSymbols::fgDT_QNAME; } AnyAtomicType::AtomicObjectType ATQNameOrDerivedImpl::getPrimitiveTypeIndex() const { return this->getTypeIndex(); } XQilla-2.3.0/src/items/impl/ATDurationOrDerivedImpl.cpp0000644000151400015140000006276711653565523017675 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include "../../utils/DateUtils.hpp" #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif ATDurationOrDerivedImpl:: ATDurationOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) :_isPositive(true), _typeName(typeName), _typeURI(typeURI) { setDuration(value); init(context); } ATDurationOrDerivedImpl:: ATDurationOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const MAPM &months, const MAPM &seconds, const DynamicContext* context) : _isPositive(true), _months(months), _seconds(seconds), _typeName(typeName), _typeURI(typeURI) { init(context); } void ATDurationOrDerivedImpl::init(const DynamicContext* context) { if(_months.sign() < 0) { _isPositive = false; _months = _months.neg(); } if(_seconds.sign() != 0) { if(abs(_seconds.exponent()) > (int)ATDecimalOrDerivedImpl::g_nSignificantDigits) { // Call it zero if the size is too small to display _seconds = 0; } else if(_seconds.sign() < 0) { _isPositive = false; _seconds = _seconds.neg(); } } if(this->isInstanceOfType (SchemaSymbols::fgURI_SCHEMAFORSCHEMA, ATDurationOrDerived::fgDT_DAYTIMEDURATION, context)) { _durationType = DAY_TIME_DURATION; } else if (this->isInstanceOfType (SchemaSymbols::fgURI_SCHEMAFORSCHEMA, ATDurationOrDerived::fgDT_YEARMONTHDURATION, context)) { _durationType = YEAR_MONTH_DURATION; } else { _durationType = DURATION; } } void *ATDurationOrDerivedImpl::getInterface(const XMLCh *name) const { if(name == Item::gXQilla) { return (void*)this; } return 0; } /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ const XMLCh* ATDurationOrDerivedImpl::getPrimitiveTypeName() const { switch(_durationType) { case DAY_TIME_DURATION: return fgDT_DAYTIMEDURATION; case YEAR_MONTH_DURATION: return fgDT_YEARMONTHDURATION; default: break; } return this->getPrimitiveName(); } const XMLCh* ATDurationOrDerivedImpl::getPrimitiveName() { return SchemaSymbols::fgDT_DURATION; } /* Get the name of this type (ie "integer" for xs:integer) */ const XMLCh* ATDurationOrDerivedImpl::getTypeName() const { return _typeName; } /* Get the namespace URI for this type */ const XMLCh* ATDurationOrDerivedImpl::getTypeURI() const { return _typeURI; } AnyAtomicType::AtomicObjectType ATDurationOrDerivedImpl::getTypeIndex() { return AnyAtomicType::DURATION; } /* If possible, cast this type to the target type */ AnyAtomicType::Ptr ATDurationOrDerivedImpl::castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const { XMLBuffer buf(1023, context->getMemoryManager()); // checking if what we're casting to by using isTypeOrDerivedFrom is expensive so we will // determine what we are casting to and then what type we actually are. if(targetIndex == AnyAtomicType::YEAR_MONTH_DURATION) { //we're casting to a yearMonthDuration if (_durationType == DAY_TIME_DURATION) { // If ST is xdt:dayTimeDuration and TT is xdt:yearMonthDuration, the cast is permitted and returns a // xdt:yearMonthDuration with value 0 months. buf.append(chLatin_P); buf.append(chDigit_0); buf.append(chLatin_M); return context->getItemFactory()->createDerivedFromAtomicType(targetIndex, targetURI, targetType, buf.getRawBuffer(), context); } else if (_durationType == YEAR_MONTH_DURATION) { return context->getItemFactory()->createDerivedFromAtomicType(targetIndex, targetURI, targetType, this->asString(context), context); } else { //else we're a duration and we must remove the day and time components if(_months.sign() == 0) { buf.append(chLatin_P); buf.append(chDigit_0); buf.append(chLatin_M); } else { if(!_isPositive) { buf.append(chDash); } buf.append(chLatin_P); MAPM yrs = _months.integer_divide(12); MAPM mths = DateUtils::modulo(_months, 12); if(yrs.sign() != 0) { buf.append(Numeric::asDecimalString(yrs, ATDecimalOrDerivedImpl::g_nSignificantDigits, context)); buf.append(chLatin_Y); } if(mths.sign() != 0) { buf.append(Numeric::asDecimalString(mths, ATDecimalOrDerivedImpl::g_nSignificantDigits, context)); buf.append(chLatin_M); } } return context->getItemFactory()->createDerivedFromAtomicType(targetIndex, targetURI, targetType, buf.getRawBuffer(), context); } } else if(targetIndex == AnyAtomicType::DAY_TIME_DURATION) { //we're casting to a dayTimeDuration if (_durationType == YEAR_MONTH_DURATION) { // If ST is xdt:yearMonthDuration and TT is xdt:dayTimeDuration, the cast is permitted and returns a // xdt:dayTimeDuration with value 0.0 seconds. buf.append(chLatin_P); buf.append(chLatin_T); buf.append(chDigit_0); buf.append(chLatin_M); return context->getItemFactory()->createDerivedFromAtomicType(targetIndex, targetURI, targetType, buf.getRawBuffer(), context); } else if (_durationType == DAY_TIME_DURATION) { return context->getItemFactory()->createDerivedFromAtomicType(targetIndex, targetURI, targetType, this->asString(context), context); } else { //else we're a duration and we must remove the year and month components if (_seconds.sign() == 0) { buf.append(chLatin_P); buf.append(chLatin_T); buf.append(chDigit_0); buf.append(chLatin_S); } else { if(!_isPositive) { buf.append(chDash); } buf.append(chLatin_P); MAPM days = _seconds.integer_divide(DateUtils::g_secondsPerDay); MAPM hrs = DateUtils::modulo(_seconds, DateUtils::g_secondsPerDay).integer_divide(DateUtils::g_secondsPerHour); MAPM mnts = DateUtils::modulo(_seconds, DateUtils::g_secondsPerHour).integer_divide(DateUtils::g_secondsPerMinute); MAPM secs = DateUtils::modulo(_seconds, DateUtils::g_secondsPerMinute); if(days.sign() != 0) { buf.append(Numeric::asDecimalString(days, ATDecimalOrDerivedImpl::g_nSignificantDigits, context)); buf.append(chLatin_D); } // mandatory center 'T', if the time is not zero if(hrs.sign() != 0 || mnts.sign() != 0 || secs.sign() != 0) { buf.append(chLatin_T); if(hrs.sign() != 0) { buf.append(Numeric::asDecimalString(hrs, ATDecimalOrDerivedImpl::g_nSignificantDigits, context)); buf.append(chLatin_H); } if(mnts.sign() != 0) { buf.append(Numeric::asDecimalString(mnts, ATDecimalOrDerivedImpl::g_nSignificantDigits, context)); buf.append(chLatin_M); } if(secs.sign() != 0) { buf.append(Numeric::asDecimalString(secs, ATDecimalOrDerivedImpl::g_nSignificantDigits, context)); buf.append(chLatin_S); } } } return context->getItemFactory()->createDerivedFromAtomicType(targetIndex, targetURI, targetType, buf.getRawBuffer(), context); } } else { //else we're casting to a duration or some other type and the base castAs will handle it. return AnyAtomicType::castAsInternal(targetIndex, targetURI, targetType, context); } return 0; } /* returns the XMLCh* (canonical) representation of this type */ const XMLCh* ATDurationOrDerivedImpl::asString(const DynamicContext* context) const { XMLBuffer buffer(1023, context->getMemoryManager()); // if the value of this duration is zero, return 'PT0S' or 'P0M' if(_months.sign() == 0 && _seconds.sign() == 0) { if(_durationType == YEAR_MONTH_DURATION) { buffer.append(chLatin_P); buffer.append(chDigit_0); buffer.append(chLatin_M); } else { buffer.append(chLatin_P); buffer.append(chLatin_T); buffer.append(chDigit_0); buffer.append(chLatin_S); } } else { if ( !_isPositive ) { buffer.append(chDash); } // madatory leading 'P' buffer.append(chLatin_P); if(_durationType != DAY_TIME_DURATION) { MAPM yrs = _months.integer_divide(12); MAPM mths = DateUtils::modulo(_months, 12); if(yrs.sign() != 0) { buffer.append(Numeric::asDecimalString(yrs, ATDecimalOrDerivedImpl::g_nSignificantDigits, context)); buffer.append(chLatin_Y); } if(mths.sign() != 0) { buffer.append(Numeric::asDecimalString(mths, ATDecimalOrDerivedImpl::g_nSignificantDigits, context)); buffer.append(chLatin_M); } } // append the day and time information if this is not a yearMonthDuration if(_durationType != YEAR_MONTH_DURATION) { MAPM days = _seconds.integer_divide(DateUtils::g_secondsPerDay); MAPM hrs = DateUtils::modulo(_seconds, DateUtils::g_secondsPerDay).integer_divide(DateUtils::g_secondsPerHour); MAPM mnts = DateUtils::modulo(_seconds, DateUtils::g_secondsPerHour).integer_divide(DateUtils::g_secondsPerMinute); MAPM secs = DateUtils::modulo(_seconds, DateUtils::g_secondsPerMinute); if(days.sign() != 0) { buffer.append(Numeric::asDecimalString(days, ATDecimalOrDerivedImpl::g_nSignificantDigits, context)); buffer.append(chLatin_D); } // mandatory center 'T', if the time is not zero if(hrs.sign() != 0 || mnts.sign() != 0 || secs.sign() != 0) { buffer.append(chLatin_T); if(hrs.sign() != 0) { buffer.append(Numeric::asDecimalString(hrs, ATDecimalOrDerivedImpl::g_nSignificantDigits, context)); buffer.append(chLatin_H); } if(mnts.sign() != 0) { buffer.append(Numeric::asDecimalString(mnts, ATDecimalOrDerivedImpl::g_nSignificantDigits, context)); buffer.append(chLatin_M); } if(secs.sign() != 0) { buffer.append(Numeric::asDecimalString(secs, ATDecimalOrDerivedImpl::g_nSignificantDigits, context)); buffer.append(chLatin_S); } } } } return context->getMemoryManager()->getPooledString(buffer.getRawBuffer()); } /* returns true if this duration is an instance of a xdt:dayTimeDuration */ bool ATDurationOrDerivedImpl::isDayTimeDuration() const { return _durationType == DAY_TIME_DURATION; } /* returns true if this duration is an instance of a xdt:yearMonthDuration */ bool ATDurationOrDerivedImpl::isYearMonthDuration() const { return _durationType == YEAR_MONTH_DURATION; } /* returns true if the two objects have the same boolean value * false otherwise */ bool ATDurationOrDerivedImpl::equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const { switch(target->getPrimitiveTypeIndex()) { case DAY_TIME_DURATION: case YEAR_MONTH_DURATION: case DURATION: { return compare((const ATDurationOrDerived*)target.get(), context) == 0; } default: XQThrow2(::IllegalArgumentException,X("ATDurationOrDerivedImpl::equals"), X("Equality operator for given types not supported [err:XPTY0004]")); } return false; } int ATDurationOrDerivedImpl::compare(const ATDurationOrDerived::Ptr &other, const DynamicContext* context) const { const ATDurationOrDerivedImpl* otherImpl = (const ATDurationOrDerivedImpl*)other.get(); int cmp = _isPositive - otherImpl->_isPositive; if(cmp != 0) return cmp; cmp = _months.compare(otherImpl->_months) * (_isPositive ? 1 : -1); if(cmp != 0) return cmp; return _seconds.compare(otherImpl->_seconds) * (_isPositive ? 1 : -1); } static inline ATDurationOrDerived::Ptr newDayTimeDuration(const Numeric::Ptr &valueSeconds, const DynamicContext* context) { if(valueSeconds->getState() != Numeric::NUM && valueSeconds->getState() != Numeric::NEG_NUM) XQThrow2(::IllegalArgumentException,X("newDayTimeDuration"), X("Overflow in duration operation [err:FODT0002]")); return context->getItemFactory()->createDayTimeDuration(valueSeconds->asMAPM(), context); } static inline ATDurationOrDerived::Ptr newYearMonthDuration(const Numeric::Ptr &valueMonth, const DynamicContext* context) { if(valueMonth->getState() != Numeric::NUM && valueMonth->getState() != Numeric::NEG_NUM) XQThrow2(::IllegalArgumentException,X("newYearMonthDuration"), X("Overflow in duration operation [err:FODT0002]")); return context->getItemFactory()->createYearMonthDuration(valueMonth->asMAPM(), context); } /** Divide this duration by a number -- only available for xdt:dayTimeDuration * and xdt:yearMonthDuration */ ATDurationOrDerived::Ptr ATDurationOrDerivedImpl::divide(const Numeric::Ptr &divisor, const DynamicContext* context) const { if(divisor->isNaN()) XQThrow2(::IllegalArgumentException,X("ATDurationOrDerivedImpl::divide"), X("Cannot divide a duration by NaN [err:FOCA0005].")); if(divisor->isZero()) XQThrow2(::IllegalArgumentException,X("ATDurationOrDerivedImpl::divide"), X("Overflow in duration operation [err:FODT0002]")); if(_durationType == DAY_TIME_DURATION) { return newDayTimeDuration(asSeconds(context)->divide(divisor, context), context); } else if(_durationType == YEAR_MONTH_DURATION) { return newYearMonthDuration(asMonths(context)->divide(divisor, context)->round(context), context); } else { // if we are trying to compare anything else -- error // XQThrow2(::IllegalArgumentException,X("ATDurationOrDerivedImpl::divide"), X("divide operator for given types not supported")); } } /** Divide this duration by a duration -- only available for xdt:dayTimeDuration * and xdt:yearMonthDuration */ ATDecimalOrDerived::Ptr ATDurationOrDerivedImpl::divide(const ATDurationOrDerived::Ptr &divisor, const DynamicContext* context) const { if(_durationType == DAY_TIME_DURATION) { return this->asSeconds(context)->divide(divisor->asSeconds(context), context); } else if(_durationType == YEAR_MONTH_DURATION) { return this->asMonths(context)->divide(divisor->asMonths(context), context); } else { // if we are trying to compare anything else -- error // XQThrow2(::IllegalArgumentException,X("ATDurationOrDerivedImpl::divide"), X("divide operator for given types not supported")); } } AnyAtomicType::AtomicObjectType ATDurationOrDerivedImpl::getPrimitiveTypeIndex() const { return _durationType; } /** Multiply this duration by a number -- only available for xdt:dayTimeDuration * and xdt:yearMonthDuration */ ATDurationOrDerived::Ptr ATDurationOrDerivedImpl::multiply(const Numeric::Ptr &multiplier, const DynamicContext* context) const { if(multiplier->isNaN()) XQThrow2(::IllegalArgumentException,X("ATDurationOrDerivedImpl::multiply"), X("Cannot multiply a duration by NaN [err:FOCA0005].")); if(_durationType == DAY_TIME_DURATION) { return newDayTimeDuration(asSeconds(context)->multiply(multiplier, context), context); } else if(_durationType == YEAR_MONTH_DURATION) { return newYearMonthDuration(asMonths(context)->multiply(multiplier, context)->round(context), context); } else { // if we are trying to compare anything else -- error // XQThrow2(::IllegalArgumentException,X("ATDurationOrDerivedImpl::multiply"), X("multiply operator for given types not supported")); } } /** Add a duration to this duration -- only available for xdt:dayTimeDuration * and xdt:yearMonthDuration */ ATDurationOrDerived::Ptr ATDurationOrDerivedImpl::add(const ATDurationOrDerived::Ptr &other, const DynamicContext* context) const { if(this->isDayTimeDuration() && ((const ATDurationOrDerived*)other)->isDayTimeDuration()) { return newDayTimeDuration(asSeconds(context)->add(other->asSeconds(context), context), context); } else if(this->isYearMonthDuration() && ((const ATDurationOrDerived*)other)->isYearMonthDuration() ) { return newYearMonthDuration(asMonths(context)->add(other->asMonths(context), context), context); } else { XQThrow2(::IllegalArgumentException, X("ATDurationOrDerivedImpl::add"), X("add operation not supported for given types")); } } /** Subtract a duration from this duration -- only available for xdt:dayTimeDuration * and xdt:yearMonthDuration */ ATDurationOrDerived::Ptr ATDurationOrDerivedImpl::subtract(const ATDurationOrDerived::Ptr &other, const DynamicContext* context) const { if(this->isDayTimeDuration() && ((const ATDurationOrDerived*)other)->isDayTimeDuration()) { return newDayTimeDuration(asSeconds(context)->subtract(other->asSeconds(context), context), context); } else if(this->isYearMonthDuration() && ((const ATDurationOrDerived*)other)->isYearMonthDuration() ) { return newYearMonthDuration(asMonths(context)->subtract(other->asMonths(context), context), context); } else { XQThrow2(::IllegalArgumentException, X("ATDurationOrDerivedImpl::subtract"), X("subtract operation not supported for given types")); } } ATDecimalOrDerived::Ptr ATDurationOrDerivedImpl::getYears(const DynamicContext* context) const { MAPM result = _months.integer_divide(12); if(!_isPositive) result = result.neg(); return context->getItemFactory()->createInteger(result, context); } ATDecimalOrDerived::Ptr ATDurationOrDerivedImpl::getMonths(const DynamicContext* context) const { MAPM result = DateUtils::modulo(_months, 12); if(!_isPositive) result = result.neg(); return context->getItemFactory()->createInteger(result, context); } ATDecimalOrDerived::Ptr ATDurationOrDerivedImpl::getDays(const DynamicContext* context) const { MAPM result = _seconds.integer_divide(DateUtils::g_secondsPerDay); if(!_isPositive) result = result.neg(); return context->getItemFactory()->createInteger(result, context); } ATDecimalOrDerived::Ptr ATDurationOrDerivedImpl::getHours(const DynamicContext* context) const { MAPM result = DateUtils::modulo(_seconds, DateUtils::g_secondsPerDay).integer_divide(DateUtils::g_secondsPerHour); if(!_isPositive) result = result.neg(); return context->getItemFactory()->createInteger(result, context); } ATDecimalOrDerived::Ptr ATDurationOrDerivedImpl::getMinutes(const DynamicContext* context) const { MAPM result = DateUtils::modulo(_seconds, DateUtils::g_secondsPerHour).integer_divide(DateUtils::g_secondsPerMinute); if(!_isPositive) result = result.neg(); return context->getItemFactory()->createInteger(result, context); } ATDecimalOrDerived::Ptr ATDurationOrDerivedImpl::getSeconds(const DynamicContext* context) const { MAPM result = DateUtils::modulo(_seconds, DateUtils::g_secondsPerMinute); if(!_isPositive) result = result.neg(); return context->getItemFactory()->createDecimal(result, context); } bool ATDurationOrDerivedImpl::isNegative() const { return !_isPositive; } /* return this duration in forms of seconds -- only for dayTimeDuration */ ATDecimalOrDerived::Ptr ATDurationOrDerivedImpl::asSeconds(const DynamicContext* context) const { MAPM result = _seconds; if(!_isPositive) result = result.neg(); return context->getItemFactory()->createDecimal(result, context); } ATDecimalOrDerived::Ptr ATDurationOrDerivedImpl::asMonths(const DynamicContext* context) const { MAPM result = _months; if(!_isPositive) result = result.neg(); return context->getItemFactory()->createDecimal(result, context); } void ATDurationOrDerivedImpl::setDuration(const XMLCh* const s) { parseDuration(s, _months, _seconds); } void ATDurationOrDerivedImpl::parseDuration(const XMLCh *const s, MAPM &months, MAPM &seconds) { unsigned int length = XPath2Utils::uintStrlen(s); if(s == 0) { XQThrow2(XPath2TypeCastException,X("XSDurationImpl::setDuration"), X("Invalid representation of duration [err:FORG0001]")); } // State variables etc. bool gotDot = false; bool gotDigit = false; bool stop = false; bool Texist = false; unsigned int pos = 0; long int tmpnum = 0; double decplace = 1; double tmpdec = 0; // defaulting values bool isPositive = true; MAPM year = 0; MAPM month = 0; MAPM day = 0; MAPM hour = 0; MAPM minute = 0; MAPM sec = 0; int state = 0 ; // 0 = year / 1 = month / 2 = day / 3 = hour / 4 = minutes / 5 = sec XMLCh tmpChar; bool wrongformat = false; // check initial 'negative' sign and the P character if ( length > 1 && s[0] == L'-' && s[1] == L'P' ) { isPositive = false; pos = 2; } else if ( length > 1 && s[0] == L'P' ) { isPositive = true; pos = 1; } else { wrongformat = true; } while ( ! wrongformat && !stop && pos < length) { tmpChar = s[pos]; pos++; switch(tmpChar) { // a dot, only will occur when parsing the second case L'.': { if (! gotDot && gotDigit) { gotDot = true; sec = tmpnum; gotDigit = false; tmpnum = 0; break; } wrongformat = true; break; } case 0x0030: case 0x0031: case 0x0032: case 0x0033: case 0x0034: case 0x0035: case 0x0036: case 0x0037: case 0x0038: case 0x0039: { if ( gotDot ) { decplace *= 10; } tmpnum *= 10; tmpnum += static_cast(tmpChar - 0x0030); gotDigit = true; break; } case L'Y' : { if ( state == 0 && gotDigit && !gotDot ) { year = tmpnum; state = 1; tmpnum = 0; gotDigit = false; } else { wrongformat = true; } break; } case L'M' : { if ( gotDigit) { if ( state < 4 && Texist && !gotDot) { minute = tmpnum; state = 4; gotDigit = false; tmpnum = 0; break; } else if ( state < 2 && ! Texist && !gotDot) { month = tmpnum; state = 1; gotDigit = false; tmpnum = 0; break; } } wrongformat = true; break; } case L'D' : { if ( state < 2 && gotDigit && !gotDot) { day = tmpnum; state = 2; gotDigit = false; tmpnum = 0; } else { wrongformat = true; } break; } case L'T' : { if ( state < 3 && !gotDigit && !gotDot) { Texist = true; } else { wrongformat = true; } break; } case L'H' : { if ( state < 3 && gotDigit && Texist && !gotDot) { hour = tmpnum; state = 3; gotDigit = false; tmpnum = 0; } else { wrongformat = true; } break; } case L'S' : { if ( state < 5 && gotDigit && Texist) { tmpdec = tmpnum / decplace; sec += tmpdec; state = 5; gotDigit = false; tmpnum = 0; } else { wrongformat = true; } break; } default: wrongformat = true; } } // check duration format if ( wrongformat || (Texist && state < 3) || gotDigit) { XQThrow2(XPath2TypeCastException,X("ATDurationOrDerivedImpl::setDuration"), X("Invalid representation of duration [err:FORG0001]")); } months = year * 12 + month; seconds = day * DateUtils::g_secondsPerDay + hour * DateUtils::g_secondsPerHour + minute * DateUtils::g_secondsPerMinute + sec; if(!isPositive) { months = months.neg(); seconds = seconds.neg(); } } XQilla-2.3.0/src/items/impl/ATHexBinaryOrDerivedImpl.cpp0000644000151400015140000001272211653565523017763 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include "ATHexBinaryOrDerivedImpl.hpp" #include "ATBase64BinaryOrDerivedImpl.hpp" #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif #if _XERCES_VERSION >= 30000 typedef XMLSize_t stringLen_t; #else typedef unsigned int stringLen_t; #endif ATHexBinaryOrDerivedImpl:: ATHexBinaryOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const StaticContext* context): ATHexBinaryOrDerived(), _typeName(typeName), _typeURI(typeURI) { XMLCh* tempValue=XMLString::replicate(value, context->getMemoryManager()); XMLString::upperCase(tempValue); _hexBinaryData = context->getMemoryManager()->getPooledString(tempValue); #if _XERCES_VERSION >= 30000 XMLString::release(&tempValue, context->getMemoryManager()); #else XMLString::release((void**)&tempValue, context->getMemoryManager()); #endif } void *ATHexBinaryOrDerivedImpl::getInterface(const XMLCh *name) const { if(name == Item::gXQilla) { return (void*)this; } return 0; } /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ const XMLCh* ATHexBinaryOrDerivedImpl::getPrimitiveTypeName() const { return this->getPrimitiveName(); } const XMLCh* ATHexBinaryOrDerivedImpl::getPrimitiveName() { return SchemaSymbols::fgDT_HEXBINARY; } /* Get the name of this type (ie "integer" for xs:integer) */ const XMLCh* ATHexBinaryOrDerivedImpl::getTypeName() const { return _typeName; } /* Get the namespace URI for this type */ const XMLCh* ATHexBinaryOrDerivedImpl::getTypeURI() const { return _typeURI; } AnyAtomicType::AtomicObjectType ATHexBinaryOrDerivedImpl::getTypeIndex() { return AnyAtomicType::HEX_BINARY; } /* If possible, cast this type to the target type */ AnyAtomicType::Ptr ATHexBinaryOrDerivedImpl::castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const { switch(targetIndex) { case BASE_64_BINARY: { XMLByte* binData=HexBin::decodeToXMLByte(_hexBinaryData, context->getMemoryManager()); stringLen_t length=0; XMLByte* base64Data=Base64::encode(binData, XMLString::stringLen(_hexBinaryData)/2, &length, context->getMemoryManager()); XMLCh* uniBase64=(XMLCh*)context->getMemoryManager()->allocate((length+1)*sizeof(XMLCh)); stringLen_t i; for(i=0;igetMemoryManager()); if(targetType == 0) { targetURI = SchemaSymbols::fgURI_SCHEMAFORSCHEMA; targetType = SchemaSymbols::fgDT_BASE64BINARY; } ATBase64BinaryOrDerivedImpl* retVal=new ATBase64BinaryOrDerivedImpl(targetURI, targetType, uniBase64, context); context->getMemoryManager()->deallocate(uniBase64); context->getMemoryManager()->deallocate(binData); context->getMemoryManager()->deallocate(base64Data); return retVal; } default: { return AnyAtomicType::castAsInternal(targetIndex, targetURI, targetType, context); } } } /* returns the XMLCh* (canonical) representation of this type */ const XMLCh* ATHexBinaryOrDerivedImpl::asString(const DynamicContext* context) const { return _hexBinaryData; } /* returns true if the two objects' URI are equal (string comparison) * false otherwise */ bool ATHexBinaryOrDerivedImpl::equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const { if(this->getPrimitiveTypeIndex() != target->getPrimitiveTypeIndex()) { XQThrow2(::IllegalArgumentException,X("ATHexBinaryOrDerivedImpl::equals"), X("Equality operator for given types not supported [err:XPTY0004]")); } return compare((const ATHexBinaryOrDerived *)target.get(), context) == 0; } int ATHexBinaryOrDerivedImpl::compare(const ATHexBinaryOrDerived::Ptr &other, const DynamicContext *context) const { return XPath2Utils::compare(_hexBinaryData, ((const ATHexBinaryOrDerivedImpl *)other.get())->_hexBinaryData); } AnyAtomicType::AtomicObjectType ATHexBinaryOrDerivedImpl::getPrimitiveTypeIndex() const { return this->getTypeIndex(); } XQilla-2.3.0/src/items/impl/ATTimeOrDerivedImpl.cpp0000644000151400015140000003604211653565523016771 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include // for INT_MIN and INT_MAX #include // for atoi #include #include "../../utils/DateUtils.hpp" #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif ATTimeOrDerivedImpl:: ATTimeOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) : ATTimeOrDerived(), _typeName(typeName), _typeURI(typeURI) { setTime(value); } // private constructor for internal use ATTimeOrDerivedImpl::ATTimeOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const MAPM &seconds, const Timezone::Ptr &timezone, bool hasTimezone) : seconds_(seconds), timezone_(timezone), _hasTimezone(hasTimezone), _typeName(typeName), _typeURI(typeURI) { } void *ATTimeOrDerivedImpl::getInterface(const XMLCh *name) const { if(name == Item::gXQilla) { return (void*)this; } return 0; } /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ const XMLCh* ATTimeOrDerivedImpl::getPrimitiveTypeName() const { return this->getPrimitiveName(); } const XMLCh* ATTimeOrDerivedImpl::getPrimitiveName() { return SchemaSymbols::fgDT_TIME; } /* Get the name of this type (ie "integer" for xs:integer) */ const XMLCh* ATTimeOrDerivedImpl::getTypeName() const { return _typeName; } /* Get the namespace URI for this type */ const XMLCh* ATTimeOrDerivedImpl::getTypeURI() const { return _typeURI; } AnyAtomicType::AtomicObjectType ATTimeOrDerivedImpl::getTypeIndex() { return AnyAtomicType::TIME; } static inline MAPM hourFromSeconds(const MAPM &value) { return DateUtils::modulo(value, DateUtils::g_secondsPerDay).integer_divide(DateUtils::g_secondsPerHour); } static inline MAPM minuteFromSeconds(const MAPM &value) { return DateUtils::modulo(value, DateUtils::g_secondsPerHour).integer_divide(DateUtils::g_secondsPerMinute); } static inline MAPM secondFromSeconds(const MAPM &value) { return DateUtils::modulo(value, DateUtils::g_secondsPerMinute); } static inline void decomposeSeconds(const MAPM &value, MAPM &hour, MAPM &minute, MAPM &second) { hour = hourFromSeconds(value); minute = minuteFromSeconds(value); second = secondFromSeconds(value); } static inline MAPM composeSeconds(MAPM &hh, MAPM &mm, MAPM &ss) { return hh * DateUtils::g_secondsPerHour + mm * DateUtils::g_secondsPerMinute + ss; } /* If possible, cast this type to the target type */ AnyAtomicType::Ptr ATTimeOrDerivedImpl::castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const { XMLBuffer buf(1023, context->getMemoryManager()); switch (targetIndex) { case DATE_TIME: { ATDateOrDerived::Ptr currentDate = DateUtils::getCurrentDate(context); Timezone::Ptr nulltz; currentDate = currentDate->setTimezone(nulltz, context); buf.append(currentDate->asString(context)); buf.append(chLatin_T); buf.append(this->asString(context)); return context->getItemFactory()->createDateTimeOrDerived(targetURI, targetType, buf.getRawBuffer(), context); } case ANY_SIMPLE_TYPE: case UNTYPED_ATOMIC: //anySimpleType and untypedAtomic follow the same casting rules as string. case STRING: { return context->getItemFactory()->createDerivedFromAtomicType(targetIndex, targetURI, targetType, this->asString(context), context); } default: return AnyAtomicType::castAsInternal(targetIndex, targetURI, targetType, context); } } /* returns the XMLCh* (canonical) representation of this type */ const XMLCh* ATTimeOrDerivedImpl::asString(const DynamicContext* context) const { XMLBuffer buffer(1023, context->getMemoryManager()); MAPM hour, minute, second; decomposeSeconds(seconds_, hour, minute, second); DateUtils::formatNumber(hour, 2, buffer); buffer.append(chColon); DateUtils::formatNumber(minute, 2, buffer); buffer.append(chColon); if(second < 10) buffer.append(chDigit_0); buffer.append(Numeric::asDecimalString(second, ATDecimalOrDerivedImpl::g_nSignificantDigits, context)); // Add timezone if exists if (_hasTimezone) { buffer.append(timezone_->asString(context)); } return context->getMemoryManager()->getPooledString(buffer.getRawBuffer()); } static inline MAPM referenceDateTime(const MAPM &seconds, bool hasTimezone, const Timezone::Ptr &timezone) { MAPM result = DateUtils::convertDMY2Absolute(31, 12, 1972) * DateUtils::g_secondsPerDay; result += seconds; if(hasTimezone) { result -= timezone->asSeconds(); } return result; } MAPM ATTimeOrDerivedImpl::buildReferenceDateTime(const DynamicContext *context) const { MAPM result = referenceDateTime(seconds_, _hasTimezone, timezone_); if(!_hasTimezone) result -= context->getImplicitTimezone()->asSeconds(context)->asMAPM(); return result; } /** * Returns true if and only if the value of $arg1 converted to an xs:dateTime using the date components from the reference * xs:dateTime is equal to the value of $arg2 converted to an xs:dateTime using the date components from the same reference * xs:dateTime. Returns false otherwise. * * The two xs:dateTime values are compared using op:dateTime-equal. */ bool ATTimeOrDerivedImpl::equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const { if(this->getPrimitiveTypeIndex() != target->getPrimitiveTypeIndex()) { XQThrow2(::IllegalArgumentException,X("ATTimeOrDerivedImpl::equals"), X("Equality operator for given types not supported [err:XPTY0004]")); } return compare((const ATTimeOrDerived*)target.get(), context) == 0; } int ATTimeOrDerivedImpl::compare(const ATTimeOrDerived::Ptr &target, const DynamicContext* context) const { const ATTimeOrDerivedImpl *other = (const ATTimeOrDerivedImpl *)target.get(); return buildReferenceDateTime(context).compare(other->buildReferenceDateTime(context)); } /** * Returns an integer representing the hour component of this object */ ATDecimalOrDerived::Ptr ATTimeOrDerivedImpl::getHours(const DynamicContext *context) const { return context->getItemFactory()->createNonNegativeInteger(hourFromSeconds(seconds_), context); } /** * Returns an integer representing the minute component of this object */ ATDecimalOrDerived::Ptr ATTimeOrDerivedImpl::getMinutes(const DynamicContext *context) const { return context->getItemFactory()->createNonNegativeInteger(minuteFromSeconds(seconds_), context); } /** * Returns an decimal representing the second component of this object */ ATDecimalOrDerived::Ptr ATTimeOrDerivedImpl::getSeconds(const DynamicContext *context) const { return context->getItemFactory()->createDecimal(secondFromSeconds(seconds_), context); } /** * Returns true if the timezone is defined for this object, false otherwise. */ bool ATTimeOrDerivedImpl::hasTimezone() const { return _hasTimezone; } /** * Returns the timezone associated with this object, or * null, if the timezone is not set */ const Timezone::Ptr &ATTimeOrDerivedImpl::getTimezone() const { return timezone_; } /** * Setter for timezone. Overrides the current timezone. (Not to be * confused with addTimezone(). If passed NULL, timezone is removed (unset) */ ATTimeOrDerived::Ptr ATTimeOrDerivedImpl::setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const { return new ATTimeOrDerivedImpl(_typeURI, _typeName, seconds_, timezone, timezone != NULLRCP); } /** * Returns an ATTimeOrDerived with a timezone added to it */ ATTimeOrDerived::Ptr ATTimeOrDerivedImpl::addTimezone(const ATDurationOrDerived::Ptr &timezone, const DynamicContext* context) const { Timezone::Ptr tz = new Timezone(timezone, context); // If this time does not have a timezone, add the given timezone if(!_hasTimezone) return setTimezone(tz, context); MAPM result = seconds_; result -= timezone_->asSeconds(); result += tz->asSeconds(); return new ATTimeOrDerivedImpl(_typeURI, _typeName, result, tz, true); } /** * Returns a time with the given dayTimeDuration added to it */ ATTimeOrDerived::Ptr ATTimeOrDerivedImpl::addDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext* context) const { return addDayTimeDuration(dayTime->asSeconds(context)->asMAPM(), context); } /** * Returns a time with the given dayTimeDuration subtracted from it */ ATTimeOrDerived::Ptr ATTimeOrDerivedImpl::subtractDayTimeDuration(const ATDurationOrDerived::Ptr &dayTime, const DynamicContext* context) const { return addDayTimeDuration(dayTime->asSeconds(context)->asMAPM().neg(), context); } ATTimeOrDerived::Ptr ATTimeOrDerivedImpl::addDayTimeDuration(const MAPM &secondsToAdd, const DynamicContext* context) const { MAPM result = DateUtils::modulo(seconds_ + secondsToAdd, DateUtils::g_secondsPerDay); return new ATTimeOrDerivedImpl(_typeURI, _typeName, result, timezone_, _hasTimezone); } /** * Returns the xdt:dayTimeDuration that corresponds to the difference between the value of $arg1 converted to an * xs:dateTime using the date components from the reference xs:dateTime and the value of $arg2 converted to an xs:dateTime * using the date components from the same reference xs:dateTime */ ATDurationOrDerived::Ptr ATTimeOrDerivedImpl::subtractTime(const ATTimeOrDerived::Ptr &time, const DynamicContext* context) const { const ATTimeOrDerivedImpl *other = (const ATTimeOrDerivedImpl *)time.get(); MAPM secDiff = buildReferenceDateTime(context) - other->buildReferenceDateTime(context); return context->getItemFactory()->createDayTimeDuration(secDiff, context); } AnyAtomicType::AtomicObjectType ATTimeOrDerivedImpl::getPrimitiveTypeIndex() const { return this->getTypeIndex(); } void ATTimeOrDerivedImpl::setTime(const XMLCh* const time) { unsigned int length = XPath2Utils::uintStrlen(time); if(time == NULL) { XQThrow2(XPath2TypeCastException,X("XSTimeImpl::setTime"), X("Invalid representation of time [err:FORG0001]")); } // State variables etc. bool gotDot = false; bool gotDigit = false; unsigned int pos = 0; long int tmpnum = 0; double decplace = 1; double tmpdec = 0; unsigned int numDigit = 0; // defaulting values MAPM hh = 0; MAPM mm = 0; MAPM ss = 0; _hasTimezone = false; bool zonepos = false; int zonehh = 0; int zonemm = 0; int state = 3 ; // 3 = hour // 4 = minutes / 5 = sec / 6 = timezonehour / 7 = timezonemin XMLCh tmpChar; bool wrongformat = false; pos = 0; while ( ! wrongformat && pos < length) { tmpChar = time[pos]; pos++; switch(tmpChar) { case L'.': { if (! gotDot && gotDigit && state == 5 && numDigit == 2) { gotDot = true; ss = tmpnum; gotDigit = false; tmpnum = 0; break; } wrongformat = true; break; } case 0x0030: case 0x0031: case 0x0032: case 0x0033: case 0x0034: case 0x0035: case 0x0036: case 0x0037: case 0x0038: case 0x0039: { if ( gotDot && state == 5) { decplace *= 10; } else { numDigit ++; } tmpnum *= 10; tmpnum += static_cast(tmpChar - 0x0030); gotDigit = true; break; } case L'-' : { if ( gotDigit && state == 5 && numDigit == 2) { tmpdec = tmpnum / decplace; ss += tmpdec; gotDigit = false; _hasTimezone = true; zonepos = false; _hasTimezone = true; tmpnum = 0; numDigit = 0; }else { wrongformat = true; } state ++; break; } case L'+' : { if ( gotDigit && state == 5 && numDigit == 2) { tmpdec = tmpnum / decplace; ss += tmpdec; state = 6; gotDigit = false; _hasTimezone = true; zonepos = true; tmpnum = 0; numDigit = 0; } else { wrongformat = true; } break; } case L':' : { if (gotDigit ) { if (state == 3 && numDigit == 2) { hh = tmpnum; tmpnum = 0; numDigit = 0; gotDigit = false; } else if ( state == 4 && numDigit == 2) { mm = tmpnum; tmpnum = 0; numDigit = 0; gotDigit = false; } else if ( state == 6 && numDigit == 2) { zonehh = tmpnum; _hasTimezone = true; tmpnum = 0; numDigit = 0; gotDigit = false; } else { wrongformat = true; } state ++; }else { wrongformat = true; } break; } case L'Z' : { if (gotDigit && state == 5 && numDigit == 2) { tmpdec = tmpnum / decplace; ss += tmpdec; state = 8; // final state _hasTimezone = true; gotDigit = false; tmpnum = 0; numDigit = 0; } else { wrongformat = true; } break; } default: wrongformat = true; } } if (gotDigit) { if ( gotDigit && state == 7 && numDigit == 2) { zonemm = tmpnum; _hasTimezone = true; }else if ( gotDigit && state == 5 && numDigit == 2) { tmpdec = tmpnum / decplace; ss += tmpdec; }else { wrongformat = true; } } if ( hh > 24 || mm > 59 || ss >= 60 || zonehh > 24 || zonemm > 59 ) wrongformat = true; if(hh==24 && mm==0 && ss==0) hh=0; if ( wrongformat) { XQThrow2(XPath2TypeCastException,X("XSTimeImpl::setTime"), X("Invalid representation of time [err:FORG0001]")); } timezone_ = new Timezone(Timezone::convert(zonepos, zonehh,zonemm)); seconds_ = composeSeconds(hh, mm, ss); } MAPM ATTimeOrDerivedImpl::parseTime(const XMLCh* const time, const MAPM &implicitTimezone) { ATTimeOrDerivedImpl dt(0, 0, time); MAPM result = referenceDateTime(dt.seconds_, dt._hasTimezone, dt.timezone_); if(!dt._hasTimezone) result -= implicitTimezone; return result; } XQilla-2.3.0/src/items/impl/ATGMonthDayOrDerivedImpl.cpp0000644000151400015140000002255711653565523017733 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include "../../utils/DateUtils.hpp" #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif ATGMonthDayOrDerivedImpl:: ATGMonthDayOrDerivedImpl(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context): ATGMonthDayOrDerived(), _typeName(typeName), _typeURI(typeURI) { setGMonthDay(value); } void *ATGMonthDayOrDerivedImpl::getInterface(const XMLCh *name) const { if(name == Item::gXQilla) { return (void*)this; } return 0; } /* Get the name of the primitive type (basic type) of this type * (ie "decimal" for xs:decimal) */ const XMLCh* ATGMonthDayOrDerivedImpl::getPrimitiveTypeName() const { return this->getPrimitiveName(); } const XMLCh* ATGMonthDayOrDerivedImpl::getPrimitiveName() { return SchemaSymbols::fgDT_MONTHDAY; } /* Get the name of this type (ie "integer" for xs:integer) */ const XMLCh* ATGMonthDayOrDerivedImpl::getTypeName() const { return _typeName; } /* Get the namespace URI for this type */ const XMLCh* ATGMonthDayOrDerivedImpl::getTypeURI() const { return _typeURI; } AnyAtomicType::AtomicObjectType ATGMonthDayOrDerivedImpl::getTypeIndex() { return AnyAtomicType::G_MONTH_DAY; } /* returns the XMLCh* (canonical) representation of this type */ const XMLCh* ATGMonthDayOrDerivedImpl::asString(const DynamicContext* context) const { XMLBuffer buffer(1023, context->getMemoryManager()); buffer.append(chDash); buffer.append(chDash); DateUtils::formatNumber(_MM, 2, buffer); buffer.append(chDash); DateUtils::formatNumber(_DD, 2, buffer); if(_hasTimezone) { buffer.append(timezone_->asString(context)); } return context->getMemoryManager()->getPooledString(buffer.getRawBuffer()); } static inline MAPM referenceDateTime(const MAPM &MM, const MAPM &DD, bool hasTimezone, const Timezone::Ptr &timezone) { MAPM result = DateUtils::convertDMY2Absolute(DD, MM, 1972) * DateUtils::g_secondsPerDay; if(hasTimezone) { result -= timezone->asSeconds(); } return result; } MAPM ATGMonthDayOrDerivedImpl::buildReferenceDateTime(const DynamicContext *context) const { MAPM result = referenceDateTime(_MM, _DD, _hasTimezone, timezone_); if(!_hasTimezone) result -= context->getImplicitTimezone()->asSeconds(context)->asMAPM(); return result; } /* Returns true if and only if the xs:dateTimes representing the starting instants of equivalent occurrences of $arg1 and $arg2 * compare equal. The starting instants of equivalent occurrences of $arg1 and $arg2 are calculated by adding the missing * components of $arg1 and $arg2 from an xs:dateTime template such as 1972-xx-xxT00:00:00. Returns false otherwise. */ bool ATGMonthDayOrDerivedImpl::equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const { if(this->getPrimitiveTypeIndex() != target->getPrimitiveTypeIndex()) { XQThrow2(::IllegalArgumentException,X("ATGMonthDayOrDerivedImpl::equals"), X("Equality operator for given types not supported [err:XPTY0004]")); } return compare((const ATGMonthDayOrDerived *)target.get(), context) == 0; } int ATGMonthDayOrDerivedImpl::compare(const ATGMonthDayOrDerived::Ptr &other, const DynamicContext *context) const { return buildReferenceDateTime(context).compare(((const ATGMonthDayOrDerivedImpl *)other.get())->buildReferenceDateTime(context)); } /** Returns true if a timezone is defined for this. False otherwise.*/ bool ATGMonthDayOrDerivedImpl::hasTimezone() const { return _hasTimezone; } /** Sets the timezone to the given timezone.*/ ATGMonthDayOrDerived::Ptr ATGMonthDayOrDerivedImpl::setTimezone(const Timezone::Ptr &timezone, const DynamicContext* context) const { XMLBuffer buffer(1023, context->getMemoryManager()); buffer.append(chDash); buffer.append(chDash); DateUtils::formatNumber(_MM, 2, buffer); buffer.append(chDash); DateUtils::formatNumber(_DD, 2, buffer); if(timezone != NULLRCP) buffer.append(timezone->asString(context)); return context->getItemFactory()->createGMonthDayOrDerived(this->getTypeURI(), this->getTypeName(), buffer.getRawBuffer(), context); } AnyAtomicType::AtomicObjectType ATGMonthDayOrDerivedImpl::getPrimitiveTypeIndex() const { return this->getTypeIndex(); } /* parse the gMonthDay */ void ATGMonthDayOrDerivedImpl::setGMonthDay(const XMLCh* const value) { unsigned int length = XPath2Utils::uintStrlen(value); if(value == NULL) { XQThrow2(XPath2TypeCastException,X("XSGMonthDayImpl::setGMonthDay"), X("Invalid representation of gMonthDay [err:FORG0001]")); } // State variables etc. bool gotDigit = false; unsigned int pos = 0; long int tmpnum = 0; unsigned int numDigit = 0; // defaulting values MAPM MM = 0; MAPM DD = 0; _hasTimezone = false; bool zonepos = false; int zonehh = 0; int zonemm = 0; int state = 0 ; // 0 = year / 1 = month / 2 = day / 3 = hour // 4 = minutes / 5 = sec / 6 = timezonehour / 7 = timezonemin XMLCh tmpChar; // format : --MM-DD([+/-]hh:mm) bool wrongformat = false; if ( length < 7 || value[0] != L'-' || value[1] != L'-' || value[4] != L'-') { wrongformat = true; }else { pos = 2; } while ( ! wrongformat && pos < length) { tmpChar = value[pos]; pos++; switch(tmpChar) { case 0x0030: case 0x0031: case 0x0032: case 0x0033: case 0x0034: case 0x0035: case 0x0036: case 0x0037: case 0x0038: case 0x0039: { tmpnum *= 10; tmpnum += static_cast(tmpChar - 0x0030); gotDigit = true; numDigit ++; break; } case L'-' : { if ( gotDigit ) { if (state == 0 && numDigit == 2 ) { MM = tmpnum; tmpnum = 0; gotDigit = false; pos = 5; numDigit = 0; } else if (state == 1 && numDigit == 2) { DD = tmpnum; state = 5; gotDigit = false; _hasTimezone = true; zonepos = false; tmpnum = 0; numDigit = 0; } else { wrongformat = true; } state ++; } else { wrongformat = true; } break; } case L'+' : { if ( gotDigit && state == 1 && numDigit == 2 ) { DD = tmpnum; state = 6; gotDigit = false; _hasTimezone = true; zonepos = true; tmpnum = 0; numDigit = 0; } else { wrongformat = true; } break; } case L':' : { if (gotDigit && state == 6 && numDigit == 2 ) { zonehh = tmpnum; tmpnum = 0; gotDigit = false; state ++; numDigit = 0; }else { wrongformat = true; } break; } case L'Z' : { if (gotDigit && state == 1 && numDigit == 2 ) { DD = tmpnum; state = 8; // final state _hasTimezone = true; gotDigit = false; tmpnum = 0; numDigit = 0; } else { wrongformat = true; } break; } default: wrongformat = true; } } if (gotDigit) { if ( gotDigit && state == 7 && numDigit == 2) { zonemm = tmpnum; }else if ( gotDigit && state == 1 && numDigit == 2) { DD = tmpnum; }else { wrongformat = true; } } // check time format if ( MM > 12 || DD > 31 || zonehh > 24 || zonemm > 60 ) { wrongformat = true; } if (wrongformat) { XQThrow2(XPath2TypeCastException,X("XSGMonthDayImpl::setGMonthDay"), X("Invalid representation of gMonthDay [err:FORG0001]")); } // Create Timezone object, clean this up in future timezone_ = new Timezone(Timezone::convert(zonepos, zonehh, zonemm)); _MM = MM; _DD = DD; } MAPM ATGMonthDayOrDerivedImpl::parseGMonthDay(const XMLCh* const value, const MAPM &implicitTimezone) { ATGMonthDayOrDerivedImpl dt(0, 0, value); MAPM result = referenceDateTime(dt._MM, dt._DD, dt._hasTimezone, dt.timezone_); if(!dt._hasTimezone) result -= implicitTimezone; return result; } XQilla-2.3.0/src/items/ATDurationOrDerived.cpp0000644000151400015140000000710411653565523016072 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include /* dayTimeDuration */ const XMLCh ATDurationOrDerived::fgDT_DAYTIMEDURATION[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_d, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_y, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_T, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_m, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_D, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; /* */ const XMLCh ATDurationOrDerived::pattern_DT_DAYTIMEDURATION[] = { XERCES_CPP_NAMESPACE_QUALIFIER chOpenSquare, XERCES_CPP_NAMESPACE_QUALIFIER chCaret, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_Y, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_M, XERCES_CPP_NAMESPACE_QUALIFIER chCloseSquare, XERCES_CPP_NAMESPACE_QUALIFIER chAsterisk, XERCES_CPP_NAMESPACE_QUALIFIER chOpenSquare, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_D, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_T, XERCES_CPP_NAMESPACE_QUALIFIER chCloseSquare,XERCES_CPP_NAMESPACE_QUALIFIER chPeriod, XERCES_CPP_NAMESPACE_QUALIFIER chAsterisk, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; /* yearMonthDuration */ const XMLCh ATDurationOrDerived::fgDT_YEARMONTHDURATION[] = { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_y, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_e, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_M, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_h, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_D, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_u, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_r, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_t, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_o, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_n, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; /* */ const XMLCh ATDurationOrDerived::pattern_DT_YEARMONTHDURATION[] = { XERCES_CPP_NAMESPACE_QUALIFIER chOpenSquare, XERCES_CPP_NAMESPACE_QUALIFIER chCaret, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_D, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_T, XERCES_CPP_NAMESPACE_QUALIFIER chCloseSquare, XERCES_CPP_NAMESPACE_QUALIFIER chAsterisk, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; XQilla-2.3.0/src/items/Timezone.cpp0000644000151400015140000000655511653565523014057 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include "../utils/DateUtils.hpp" #include #include #include #include #include #include static const int g_maxHour = 14; Timezone::Timezone(const MAPM &seconds) : seconds_(seconds) { validate(seconds_); } Timezone::Timezone(const ATDurationOrDerived::Ptr &duration, const DynamicContext* context) : seconds_(duration->asSeconds(context)->asMAPM()) { validate(seconds_); } MAPM Timezone::convert(bool positive, int hour, int minute) { return (hour * DateUtils::g_secondsPerHour + minute * DateUtils::g_secondsPerMinute) * (positive ? +1 : -1); } void Timezone::validate(const MAPM &tz) { // Check that we have a valid timezone if(tz.abs() > (g_maxHour * DateUtils::g_secondsPerHour)) { XQThrow2(XPath2TypeCastException ,X("Timezone::Timezone"), X("Timezone outside of valid range created [err:FODT0003].")); } if(tz.rem(DateUtils::g_secondsPerMinute).sign() != 0) { XQThrow2(XPath2TypeCastException ,X("Timezone::Timezone"), X("Timezone must have an integral number of minutes [err:FODT0003].")); } } bool Timezone::equals(const Timezone::Ptr &other) const { return seconds_ == other->seconds_; } ATDurationOrDerived::Ptr Timezone::asDayTimeDuration(const DynamicContext* context) const { return context->getItemFactory()->createDayTimeDuration(seconds_, context); } const XMLCh* Timezone::asString(const DynamicContext* context) const { if(seconds_.sign() == 0) return XPath2Utils::asStr(XERCES_CPP_NAMESPACE_QUALIFIER chLatin_Z,context->getMemoryManager()); MAPM hours, minutes; seconds_.integer_div_rem(DateUtils::g_secondsPerHour, hours, minutes); minutes = minutes.integer_divide(DateUtils::g_secondsPerMinute); XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer buffer(1023, context->getMemoryManager()); if(seconds_.sign() > 0) buffer.append(XERCES_CPP_NAMESPACE_QUALIFIER chPlus); else { buffer.append(XERCES_CPP_NAMESPACE_QUALIFIER chDash); hours = hours.abs(); minutes = minutes.abs(); } DateUtils::formatNumber(hours,2,buffer); buffer.append(XERCES_CPP_NAMESPACE_QUALIFIER chColon); DateUtils::formatNumber(minutes,2,buffer); return context->getMemoryManager()->getPooledString(buffer.getRawBuffer()); } XQilla-2.3.0/src/items/Item.cpp0000644000151400015140000000242611653565523013154 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include const XMLCh Item::gXQilla[] = // Points to "XQilla" { XERCES_CPP_NAMESPACE_QUALIFIER chLatin_X, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_Q, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_i, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_l, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_l, XERCES_CPP_NAMESPACE_QUALIFIER chLatin_a, XERCES_CPP_NAMESPACE_QUALIFIER chNull }; XQilla-2.3.0/src/items/DatatypeLookup.cpp0000644000151400015140000002720511653565523015225 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include "DatatypeFactoryTemplate.hpp" #include #include "impl/ATAnyURIOrDerivedImpl.hpp" #include "impl/ATAnySimpleTypeImpl.hpp" #include "impl/ATBase64BinaryOrDerivedImpl.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include "impl/ATHexBinaryOrDerivedImpl.hpp" #include "impl/ATNotationOrDerivedImpl.hpp" #include #include "impl/ATStringOrDerivedImpl.hpp" #include #include "impl/ATUntypedAtomicImpl.hpp" #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif DatatypeLookup::DatatypeLookup(const DocumentCache* dc, MemoryManager* memMgr) : fDatatypeTable(30, false, memMgr), fDocumentCache(dc), fMemMgr(memMgr) { // create a xs:anySimpleType anySimpleType_ = new (fMemMgr) DatatypeFactoryTemplate(fDocumentCache); insertDatatype(anySimpleType_); // create a xs:anyURI anyURI_ = new (fMemMgr) DatatypeFactoryTemplate(fDocumentCache); insertDatatype(anyURI_); // create a xs:base64Binary base64Binary_ = new (fMemMgr) DatatypeFactoryTemplate(fDocumentCache); insertDatatype(base64Binary_); // create a xs:boolean boolean_ = new (fMemMgr) DatatypeFactoryTemplate(fDocumentCache); insertDatatype(boolean_); // create a xs:date date_ = new (fMemMgr) DatatypeFactoryTemplate(fDocumentCache); insertDatatype(date_); // create a xs:dateTime dateTime_ = new (fMemMgr) DatatypeFactoryTemplate(fDocumentCache); insertDatatype(dateTime_); // create a xdt:dayTimeDuration dayTimeDuration_ = new (fMemMgr) DayTimeDurationDatatypeFactory(fDocumentCache); insertDatatype(dayTimeDuration_); // create a xs:decimal decimal_ = new (fMemMgr) DatatypeFactoryTemplate(fDocumentCache); insertDatatype(decimal_); // create a xs:double double_ = new (fMemMgr) DatatypeFactoryTemplate(fDocumentCache); insertDatatype(double_); // create a xs:duration duration_ = new (fMemMgr) DatatypeFactoryTemplate(fDocumentCache); insertDatatype(duration_); // create a xs:float float_ = new (fMemMgr) DatatypeFactoryTemplate(fDocumentCache); insertDatatype(float_); // create a xs:gDay gDay_ = new (fMemMgr) DatatypeFactoryTemplate(fDocumentCache); insertDatatype(gDay_); // create a xs:gMonth gMonth_ = new (fMemMgr) DatatypeFactoryTemplate(fDocumentCache); insertDatatype(gMonth_); // create a xs:gMonthDay gMonthDay_ = new (fMemMgr) DatatypeFactoryTemplate(fDocumentCache); insertDatatype(gMonthDay_); // create a xs:gYear gYear_ = new (fMemMgr) DatatypeFactoryTemplate(fDocumentCache); insertDatatype(gYear_); // create a xs:gYearMonth gYearMonth_ = new (fMemMgr) DatatypeFactoryTemplate(fDocumentCache); insertDatatype(gYearMonth_); // create a xs:hexBinary hexBinary_ = new (fMemMgr) DatatypeFactoryTemplate(fDocumentCache); insertDatatype(hexBinary_); // create a xs:NOTATION notation_ = new (fMemMgr) DatatypeFactoryTemplate(fDocumentCache); insertDatatype(notation_); // create a xs:QName qname_ = new (fMemMgr) DatatypeFactoryTemplate(fDocumentCache); insertDatatype(qname_); // create a xs:string string_ = new (fMemMgr) StringDatatypeFactory(fDocumentCache); insertDatatype(string_); // create a xs:time time_ = new (fMemMgr) DatatypeFactoryTemplate(fDocumentCache); insertDatatype(time_); // create a xdt:yearMonthDuration yearMonthDuration_ = new (fMemMgr) YearMonthDurationDatatypeFactory(fDocumentCache); insertDatatype(yearMonthDuration_); // create a xdt:untypedAtomic untypedAtomic_ = new (fMemMgr) StringDatatypeFactory(fDocumentCache); insertDatatype(untypedAtomic_); } DatatypeLookup::~DatatypeLookup() { fMemMgr->deallocate(anySimpleType_); fMemMgr->deallocate(anyURI_); fMemMgr->deallocate(base64Binary_); fMemMgr->deallocate(boolean_); fMemMgr->deallocate(date_); fMemMgr->deallocate(dateTime_); fMemMgr->deallocate(dayTimeDuration_); fMemMgr->deallocate(decimal_); fMemMgr->deallocate(double_); fMemMgr->deallocate(duration_); fMemMgr->deallocate(float_); fMemMgr->deallocate(gDay_); fMemMgr->deallocate(gMonth_); fMemMgr->deallocate(gMonthDay_); fMemMgr->deallocate(gYear_); fMemMgr->deallocate(gYearMonth_); fMemMgr->deallocate(hexBinary_); fMemMgr->deallocate(notation_); fMemMgr->deallocate(qname_); fMemMgr->deallocate(string_); fMemMgr->deallocate(time_); fMemMgr->deallocate(yearMonthDuration_); fMemMgr->deallocate(untypedAtomic_); } void DatatypeLookup::insertDatatype(DatatypeFactory *datatype) { fDatatypeTable.put((void*)datatype->getPrimitiveTypeName(),datatype); } const DatatypeFactory* DatatypeLookup::lookupDatatype(AnyAtomicType::AtomicObjectType typeIndex) const { switch(typeIndex) { case AnyAtomicType::ANY_SIMPLE_TYPE: return anySimpleType_; case AnyAtomicType::ANY_URI: return anyURI_; case AnyAtomicType::BASE_64_BINARY: return base64Binary_; case AnyAtomicType::BOOLEAN: return boolean_; case AnyAtomicType::DATE: return date_; case AnyAtomicType::DATE_TIME: return dateTime_; case AnyAtomicType::DAY_TIME_DURATION: return dayTimeDuration_; case AnyAtomicType::DECIMAL: return decimal_; case AnyAtomicType::DOUBLE: return double_; case AnyAtomicType::DURATION: return duration_; case AnyAtomicType::FLOAT: return float_; case AnyAtomicType::G_DAY: return gDay_; case AnyAtomicType::G_MONTH: return gMonth_; case AnyAtomicType::G_MONTH_DAY: return gMonthDay_; case AnyAtomicType::G_YEAR: return gYear_; case AnyAtomicType::G_YEAR_MONTH: return gYearMonth_; case AnyAtomicType::HEX_BINARY: return hexBinary_; case AnyAtomicType::NOTATION: return notation_; case AnyAtomicType::QNAME: return qname_; case AnyAtomicType::STRING: return string_; case AnyAtomicType::TIME: return time_; case AnyAtomicType::UNTYPED_ATOMIC: return untypedAtomic_; case AnyAtomicType::YEAR_MONTH_DURATION: return yearMonthDuration_; default: break; } return 0; } const DatatypeFactory* DatatypeLookup::lookupDatatype(const XMLCh* typeURI, const XMLCh* typeName, bool &isPrimitive) const { const DatatypeFactory* pFactory=fDatatypeTable.get((void*)typeName); // in case we're lucky and we were given a primitive type if (pFactory) { if(XPath2Utils::equals(typeURI, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) { isPrimitive = true; return pFactory; } } isPrimitive = false; const DatatypeValidator* validator = fDocumentCache->getDatatypeValidator(typeURI, typeName); const DatatypeValidator* previousValidator = 0; while(validator) { const DatatypeValidator* tempVal = validator->getBaseValidator(); if(!tempVal) break; previousValidator = validator; validator = tempVal; } if(validator) { pFactory = fDatatypeTable.get((void*)validator->getTypeLocalName()); if(pFactory) { if(pFactory->getPrimitiveTypeIndex() == AnyAtomicType::DURATION && previousValidator != 0) { // Find a more specific type for duration, if possible const DatatypeFactory *tmp = fDatatypeTable.get((void*)previousValidator->getTypeLocalName()); if(tmp) pFactory = tmp; } return pFactory; } } XMLBuffer buf(1023, fMemMgr); buf.append(X("Type ")); buf.append(typeURI); buf.append(chColon); buf.append(typeName); buf.append(X(" not found [err:XPST0051]")); XQThrow2(TypeNotFoundException, X("DatatypeLookup::lookupDatatype"), buf.getRawBuffer()); } DatatypeFactory *DatatypeLookup::getAnySimpleTypeFactory() const { return anySimpleType_; } DatatypeFactory *DatatypeLookup::getAnyURIFactory() const { return anyURI_; } DatatypeFactory *DatatypeLookup::getBase64BinaryFactory() const { return base64Binary_; } DatatypeFactory *DatatypeLookup::getBooleanFactory() const { return boolean_; } DatatypeFactory *DatatypeLookup::getDateFactory() const { return date_; } DatatypeFactory *DatatypeLookup::getDateTimeFactory() const { return dateTime_; } DatatypeFactory *DatatypeLookup::getDayTimeDurationFactory() const { return dayTimeDuration_; } DatatypeFactory *DatatypeLookup::getDecimalFactory() const { return decimal_; } DatatypeFactory *DatatypeLookup::getDoubleFactory() const { return double_; } DatatypeFactory *DatatypeLookup::getDurationFactory() const { return duration_; } DatatypeFactory *DatatypeLookup::getFloatFactory() const { return float_; } DatatypeFactory *DatatypeLookup::getGDayFactory() const { return gDay_; } DatatypeFactory *DatatypeLookup::getGMonthFactory() const { return gMonth_; } DatatypeFactory *DatatypeLookup::getGMonthDayFactory() const { return gMonthDay_; } DatatypeFactory *DatatypeLookup::getGYearFactory() const { return gYear_; } DatatypeFactory *DatatypeLookup::getGYearMonthFactory() const { return gYearMonth_; } DatatypeFactory *DatatypeLookup::getHexBinaryFactory() const { return hexBinary_; } DatatypeFactory *DatatypeLookup::getNotationFactory() const { return notation_; } DatatypeFactory *DatatypeLookup::getQNameFactory() const { return qname_; } DatatypeFactory *DatatypeLookup::getStringFactory() const { return string_; } DatatypeFactory *DatatypeLookup::getTimeFactory() const { return time_; } DatatypeFactory *DatatypeLookup::getYearMonthDurationFactory() const { return yearMonthDuration_; } DatatypeFactory *DatatypeLookup::getUntypedAtomicFactory() const { return untypedAtomic_; } XQilla-2.3.0/src/items/AnyAtomicType.cpp0000644000151400015140000003536111653565523015010 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include #include #include #include #include #include "../exceptions/InvalidLexicalSpaceException.hpp" #include #include #include #include #include #include #include #include #include #include XERCES_CPP_NAMESPACE_USE /* anyAtomicType */ const XMLCh AnyAtomicType::fgDT_ANYATOMICTYPE[]= { chLatin_a, chLatin_n, chLatin_y, chLatin_A, chLatin_t, chLatin_o, chLatin_m, chLatin_i, chLatin_c, chLatin_T, chLatin_y, chLatin_p, chLatin_e, chNull }; const AnyAtomicType::CastTable AnyAtomicType::staticCastTable; /* isAtomicValue from Item */ bool AnyAtomicType::isAtomicValue() const { return true; } /* isNode from Item */ bool AnyAtomicType::isNode() const { return false; } bool AnyAtomicType::isFunction() const { return false; } /* is this type numeric? Return false by default */ bool AnyAtomicType::isNumericValue() const { return false; } /* is this type date or time based? Return false by default */ bool AnyAtomicType::isDateOrTimeTypeValue() const { return false; } void AnyAtomicType::generateEvents(EventHandler *events, const DynamicContext *context, bool preserveNS, bool preserveType) const { events->atomicItemEvent(getPrimitiveTypeIndex(), asString(context), getTypeURI(), getTypeName()); } /* Get the namespace uri of the primitive type (basic type) of this type */ const XMLCh* AnyAtomicType::getPrimitiveTypeURI() const{ return SchemaSymbols::fgURI_SCHEMAFORSCHEMA; } void AnyAtomicType::typeToBuffer(DynamicContext *context, XMLBuffer &buffer) const { if(getTypeURI()) { buffer.append('{'); buffer.append(getTypeURI()); buffer.append('}'); } buffer.append(getTypeName()); } AnyAtomicType::Ptr AnyAtomicType::castAs(AtomicObjectType targetIndex, const DynamicContext* context) const { // We assume this cast is supported, since it's an internal cast, // not one specified by the user return castAsNoCheck(targetIndex, 0, 0, context); } AnyAtomicType::Ptr AnyAtomicType::castAs(AtomicObjectType targetIndex, const XMLCh* targetTypeURI, const XMLCh* targetTypeName, const DynamicContext* context) const { if(!castIsSupported(targetIndex, context)) { if(targetTypeName == 0) { context->getItemFactory()->getPrimitiveTypeName(targetIndex, targetTypeURI, targetTypeName); } XMLBuffer buffer(1023, context->getMemoryManager()); buffer.set(X("Casting from {")); buffer.append(getTypeURI()); buffer.append(X("}")); buffer.append(getTypeName()); buffer.append(X(" to {")); buffer.append(targetTypeURI); buffer.append(X("}")); buffer.append(targetTypeName); buffer.append(X(" is not supported [err:XPTY0004]")); XQThrow2(XPath2TypeCastException, X("AnyAtomicType::castAs"), buffer.getRawBuffer()); } return castAsNoCheck(targetIndex, targetTypeURI, targetTypeName, context); } AnyAtomicType::Ptr AnyAtomicType::castAsNoCheck(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const { try { return castAsInternal(targetIndex, targetURI, targetType, context); } catch (TypeNotFoundException &e) { XQThrow2(XPath2TypeCastException, X("AnyAtomicType::castAs"), e.getError()); } catch (InvalidLexicalSpaceException &e) { if(getPrimitiveTypeIndex() == UNTYPED_ATOMIC || getPrimitiveTypeIndex() == ANY_SIMPLE_TYPE || getPrimitiveTypeIndex() == STRING) { XQThrow2(XPath2TypeCastException, X("AnyAtomicType::castAs"), X("Invalid lexical value [err:FORG0001]")); } else if(getPrimitiveTypeIndex() == targetIndex) { XQThrow2(XPath2TypeCastException, X("AnyAtomicType::castAs"), X("Value does not conform to facets [err:FORG0001]")); } else { XQThrow2(XPath2TypeCastException, X("AnyAtomicType::castAs"), e.getError()); // should never be here, in theory } } catch (NamespaceLookupException &e) { XQThrow2(XPath2TypeCastException, X("AnyAtomicType::castAs"), e.getError()); } } AnyAtomicType::Ptr AnyAtomicType::castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetTypeURI, const XMLCh* targetTypeName, const DynamicContext* context) const { if(targetTypeName == 0) { return context->getItemFactory()->createDerivedFromAtomicType(targetIndex, asString(context), context); } else { return context->getItemFactory()->createDerivedFromAtomicType(targetIndex, targetTypeURI, targetTypeName, asString(context), context); } } /* Test if this type can be cast to the target type */ bool AnyAtomicType::castable(AtomicObjectType targetIndex, const XMLCh* targetTypeURI, const XMLCh* targetTypeName, const DynamicContext* context) const { if(!castIsSupported(targetIndex, context)) { return false; } // validate the data by calling castAs (can't use checkInstance) try { castAsInternal(targetIndex, targetTypeURI, targetTypeName, context); } catch (::IllegalArgumentException &e) { return false; } catch (XPath2TypeCastException &e) { return false; } catch (TypeNotFoundException &e) { return false; } catch (InvalidLexicalSpaceException &e) { return false; } catch (NamespaceLookupException &e) { return false; } return true; } /* Returns true if this typeName and uri match the given typeName and uri */ bool AnyAtomicType::isOfType(const XMLCh* targetTypeURI, const XMLCh* targetTypeName, const DynamicContext* context) const { return (XPath2Utils::equals(targetTypeName, this->getTypeName())) && (XPath2Utils::equals(targetTypeURI, this->getTypeURI())); } /* Returns true if this typeName and uri match the given type name and uri, * or if any of this type's parents match the given type name and uri */ bool AnyAtomicType::isInstanceOfType(const XMLCh* targetTypeURI, const XMLCh* targetTypeName, const StaticContext* context) const { return context->isTypeOrDerivedFromType(this->getTypeURI(), this->getTypeName(), targetTypeURI, targetTypeName); } /** * Returns true if * (a) both the input type and the target type are built-in schema types and * cast is supported for the combination. * (b) cast is supported if the input type is a derived atomic type and the * target type is a supertype of the input type * (c) cast is supported if the target type is a derived atomic type and the * input type is xs:string, xs:anySimpleType, or a supertype of the * target type. * (d) If a primitive type P1 can be cast into a primitive type P2, then any * subtype of P1 can be cast into any subtype of P2 **/ bool AnyAtomicType::castIsSupported(AtomicObjectType targetIndex, const DynamicContext* context) const { return staticCastTable.getCell(getPrimitiveTypeIndex(), targetIndex); } /////////////////// // methods from // // CastTable // /////////////////// /* This is the table we will mimic, but we will make it enum safe :-) * uA str flt dbl dec int dur yMD dTD dT tim dat gYM gYr gMD gDay gMon bol b64 hxB aURI QN NOT uA { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0 }, str { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }, flt { 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 }, dbl { 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 }, dec { 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 }, int { 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 }, dur { 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, yMD { 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, dTD { 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, dT { 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0 }, tim { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, dat { 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0 }, gYM { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, gYr { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, gMD { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, gDay { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 }, gMon { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 }, bool { 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 }, b64 { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 }, hxB { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 }, aURI { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 }, QN, { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 }, NOT { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } }; */ AnyAtomicType::CastTable::CastTable() { // initialize table to allow casting only between same types int j; for(j = 0; j<(int)AnyAtomicType::NumAtomicObjectTypes; ++j) { for(int k = 0; k<(int)AnyAtomicType::NumAtomicObjectTypes; ++k) { staticCastTable[j][k] = false; } } for(j = 0; j<(int)AnyAtomicType::NumAtomicObjectTypes; ++j) { staticCastTable[j][j] = true; // you can always cast something to itself staticCastTable[j][AnyAtomicType::STRING] = true; // anything can be cast to string staticCastTable[j][AnyAtomicType::UNTYPED_ATOMIC] = true; // anything can be cast to untypedAtomic // xs:string and xs:untypedAtomic can be cast to anything, except an xs:QName or xs:NOTATION if(j != AnyAtomicType::NOTATION && j != AnyAtomicType::QNAME) { staticCastTable[AnyAtomicType::STRING][j] = true; // strings can be cast to anything staticCastTable[AnyAtomicType::UNTYPED_ATOMIC][j] = true; // untypedAtomic can be cast to anything } } // finally, add special casting rules staticCastTable[AnyAtomicType::FLOAT][AnyAtomicType::DOUBLE] = true; staticCastTable[AnyAtomicType::DOUBLE][AnyAtomicType::FLOAT] = true; staticCastTable[AnyAtomicType::FLOAT][AnyAtomicType::DECIMAL] = true; staticCastTable[AnyAtomicType::DECIMAL][AnyAtomicType::FLOAT] = true; staticCastTable[AnyAtomicType::FLOAT][AnyAtomicType::BOOLEAN] = true; staticCastTable[AnyAtomicType::BOOLEAN][AnyAtomicType::FLOAT] = true; staticCastTable[AnyAtomicType::DOUBLE][AnyAtomicType::DECIMAL] = true; staticCastTable[AnyAtomicType::DECIMAL][AnyAtomicType::DOUBLE] = true; staticCastTable[AnyAtomicType::DOUBLE][AnyAtomicType::BOOLEAN] = true; staticCastTable[AnyAtomicType::BOOLEAN][AnyAtomicType::DOUBLE] = true; staticCastTable[AnyAtomicType::DECIMAL][AnyAtomicType::BOOLEAN] = true; staticCastTable[AnyAtomicType::BOOLEAN][AnyAtomicType::DECIMAL] = true; staticCastTable[AnyAtomicType::DURATION][AnyAtomicType::YEAR_MONTH_DURATION] = true; staticCastTable[AnyAtomicType::YEAR_MONTH_DURATION][AnyAtomicType::DURATION] = true; staticCastTable[AnyAtomicType::DURATION][AnyAtomicType::DAY_TIME_DURATION] = true; staticCastTable[AnyAtomicType::DAY_TIME_DURATION][AnyAtomicType::DURATION] = true; staticCastTable[AnyAtomicType::DAY_TIME_DURATION][AnyAtomicType::YEAR_MONTH_DURATION] = true; staticCastTable[AnyAtomicType::YEAR_MONTH_DURATION][AnyAtomicType::DAY_TIME_DURATION] = true; staticCastTable[AnyAtomicType::DATE_TIME][AnyAtomicType::DATE] = true; staticCastTable[AnyAtomicType::DATE][AnyAtomicType::DATE_TIME] = true; staticCastTable[AnyAtomicType::DATE_TIME][AnyAtomicType::TIME] = true; staticCastTable[AnyAtomicType::DATE_TIME][AnyAtomicType::G_YEAR_MONTH] = true; staticCastTable[AnyAtomicType::DATE_TIME][AnyAtomicType::G_YEAR] = true; staticCastTable[AnyAtomicType::DATE_TIME][AnyAtomicType::G_MONTH_DAY] = true; staticCastTable[AnyAtomicType::DATE_TIME][AnyAtomicType::G_DAY] = true; staticCastTable[AnyAtomicType::DATE_TIME][AnyAtomicType::G_MONTH] = true; staticCastTable[AnyAtomicType::DATE][AnyAtomicType::G_YEAR_MONTH] = true; staticCastTable[AnyAtomicType::DATE][AnyAtomicType::G_YEAR] = true; staticCastTable[AnyAtomicType::DATE][AnyAtomicType::G_MONTH_DAY] = true; staticCastTable[AnyAtomicType::DATE][AnyAtomicType::G_DAY] = true; staticCastTable[AnyAtomicType::DATE][AnyAtomicType::G_MONTH] = true; staticCastTable[AnyAtomicType::BASE_64_BINARY][AnyAtomicType::HEX_BINARY] = true; staticCastTable[AnyAtomicType::HEX_BINARY][AnyAtomicType::BASE_64_BINARY] = true; /* debug output * for(int i = 0; i<(int)AnyAtomicType::NumAtomicObjectTypes; i++) { for(int j = 0; j<(int)AnyAtomicType::NumAtomicObjectTypes; j++) { cerr << " " << staticCastTable[i][j] << ","< #include #include #include #include "impl/ATStringOrDerivedImpl.hpp" class AnyAtomicType; ///used to facilitate the creation of datatypes template class DatatypeFactoryTemplate : public DatatypeFactory { public: DatatypeFactoryTemplate(const DocumentCache* dc) : DatatypeFactory(dc, const_cast (dc->getDatatypeValidator(getPrimitiveTypeURI(), getPrimitiveTypeName()))) {} AnyAtomicType::Ptr createInstanceNoCheck(const XMLCh* typeURI, const XMLCh* typeName, const XMLCh* value, const DynamicContext* context) const { return new TYPE(typeURI, typeName, value, context); } AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const { return TYPE::getTypeIndex(); } virtual const XMLCh* getPrimitiveTypeURI() const { return XERCES_CPP_NAMESPACE_QUALIFIER SchemaSymbols::fgURI_SCHEMAFORSCHEMA; } const XMLCh* getPrimitiveTypeName() const { return TYPE::getPrimitiveName(); } protected: DatatypeFactoryTemplate(const DocumentCache* dc, XERCES_CPP_NAMESPACE_QUALIFIER DatatypeValidator *val) : DatatypeFactory(dc, val) {} }; template class StringDatatypeFactory : public DatatypeFactoryTemplate { public: StringDatatypeFactory(const DocumentCache* dc) : DatatypeFactoryTemplate(dc) {} AnyAtomicType::Ptr createInstance(const XMLCh* value, const DynamicContext* context) const { return this->createInstanceNoCheck(DatatypeFactoryTemplate::getPrimitiveTypeURI(), DatatypeFactoryTemplate::getPrimitiveTypeName(), value, context); } bool checkInstance(const XMLCh* value, const StaticContext* context) const { return true; } }; template class DayTimeDurationDatatypeFactory : public DatatypeFactoryTemplate { public: DayTimeDurationDatatypeFactory(const DocumentCache* dc) : DatatypeFactoryTemplate(dc, const_cast (dc->getDatatypeValidator(DatatypeFactoryTemplate::getPrimitiveTypeURI(), getPrimitiveTypeName()))) {} AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const { return AnyAtomicType::DAY_TIME_DURATION; } const XMLCh* getPrimitiveTypeName() const { return ATDurationOrDerived::fgDT_DAYTIMEDURATION; } }; template class YearMonthDurationDatatypeFactory : public DatatypeFactoryTemplate { public: YearMonthDurationDatatypeFactory(const DocumentCache* dc) : DatatypeFactoryTemplate(dc, const_cast (dc->getDatatypeValidator(DatatypeFactoryTemplate::getPrimitiveTypeURI(), getPrimitiveTypeName()))) {} AnyAtomicType::AtomicObjectType getPrimitiveTypeIndex() const { return AnyAtomicType::YEAR_MONTH_DURATION; } const XMLCh* getPrimitiveTypeName() const { return ATDurationOrDerived::fgDT_YEARMONTHDURATION; } }; #endif // _DatatypeFactoryTemplate_HPP XQilla-2.3.0/src/items/Numeric.cpp0000644000151400015140000003263611653565523013666 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #include #include "../config/xqilla_config.h" #include #include #include #include #include #include #include #include #include #include #include #include // Added so xqilla will compile on SunOS 10 using STLPort #include #ifndef min #define min(a,b) ((a) < (b) ? (a) : (b)) #endif #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif const XMLCh Numeric::NaN_string[] = { chLatin_N, chLatin_a, chLatin_N, chNull }; const XMLCh Numeric::NAN_string[] = { chLatin_N, chLatin_A, chLatin_N, chNull }; const XMLCh Numeric::INF_string[] = { chLatin_I, chLatin_N, chLatin_F, chNull }; const XMLCh Numeric::NegINF_string[] = { chDash, chLatin_I, chLatin_N, chLatin_F, chNull }; const XMLCh Numeric::NegZero_string[] = { chDash, chDigit_0, chNull }; const XMLCh Numeric::PosZero_string[] = { chDigit_0, chNull }; void Numeric::checkFloatLimits(Numeric::State &state, MAPM &value) { if(state==NUM || state==NEG_NUM) { int exp=value.exponent(); if(exp>38 || (exp==38 && value.abs()>MAPM("3.4028235e+38"))) { state=(state==NEG_NUM)?NEG_INF:INF; value = MAPM(); } else if(exp<-38 || (exp==-38 && value.abs()308 || (exp==308 && value.abs()>MAPM("1.7976931348623157e+308"))) { state=(state==NEG_NUM)?NEG_INF:INF; value = MAPM(); } else if(exp<-308 || (exp==-308 && value.abs()getState(); MAPM value1 = num1->asMAPM(); Numeric::State state2 = num2->getState(); MAPM value2 = num2->asMAPM(); switch(num1->getPrimitiveTypeIndex()) { case AnyAtomicType::DECIMAL: switch(num2->getPrimitiveTypeIndex()) { case AnyAtomicType::DECIMAL: break; case AnyAtomicType::FLOAT: Numeric::checkFloatLimits(state1, value1); Numeric::checkFloatLimits(state2, value2); break; case AnyAtomicType::DOUBLE: Numeric::checkDoubleLimits(state1, value1); Numeric::checkDoubleLimits(state2, value2); break; default: break; } break; case AnyAtomicType::FLOAT: switch(num2->getPrimitiveTypeIndex()) { case AnyAtomicType::DECIMAL: case AnyAtomicType::FLOAT: Numeric::checkFloatLimits(state1, value1); Numeric::checkFloatLimits(state2, value2); break; case AnyAtomicType::DOUBLE: Numeric::checkDoubleLimits(state1, value1); Numeric::checkDoubleLimits(state2, value2); break; default: break; } break; case AnyAtomicType::DOUBLE: Numeric::checkDoubleLimits(state1, value1); Numeric::checkDoubleLimits(state2, value2); break; default: break; } return compare(state1, value1, state2, value2); } int Numeric::compare(const Numeric::Ptr &other, const DynamicContext *context) const { return ::compare(getState(), asMAPM(), other->getState(), other->asMAPM()); } bool Numeric::equals(const AnyAtomicType::Ptr &target, const DynamicContext* context) const { if(!target->isNumericValue()) { XQThrow2(::IllegalArgumentException,X("Numeric::equals"), X("Equality operator for given types not supported [err:XPTY0004]")); } const Numeric *otherImpl = (const Numeric*)target.get(); if(getState() == NaN || otherImpl->getState() == NaN) return false; return typePromoteCompare(this, otherImpl) == 0; } /** Returns true if this is less than other, false otherwise */ bool Numeric::lessThan(const Numeric::Ptr &other, const DynamicContext* context) const { if(getState() == NaN || other->getState() == NaN) return false; return typePromoteCompare(this, other) < 0; } /** Returns true if this is greater than other, false otherwise */ bool Numeric::greaterThan(const Numeric::Ptr &other, const DynamicContext* context) const { if(getState() == NaN || other->getState() == NaN) return false; return typePromoteCompare(this, other) > 0; } AnyAtomicType::Ptr Numeric::castAsInternal(AtomicObjectType targetIndex, const XMLCh* targetURI, const XMLCh* targetType, const DynamicContext* context) const { switch(targetIndex) { case DECIMAL: switch(getState()) { case NaN: case INF: case NEG_INF: XQThrow2(::IllegalArgumentException, X("Numeric::castAsInternal"), X("Special values like NaN, INF or -INF cannot be cast to decimal [err:FOCA0002]")); case NUM: case NEG_NUM: if(targetType != 0 && context->isTypeOrDerivedFromType(targetURI, targetType, SchemaSymbols::fgURI_SCHEMAFORSCHEMA, SchemaSymbols::fgDT_INTEGER)) { if(XPath2Utils::equals(targetType, SchemaSymbols::fgDT_INTEGER) && XPath2Utils::equals(targetURI, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) { return context->getItemFactory()->createInteger(isNegative() ? asMAPM().ceil() : asMAPM().floor(), context); } return context->getItemFactory()->createDecimalOrDerived(targetURI, targetType, isNegative() ? asMAPM().ceil() : asMAPM().floor(), context); } else { if(targetType == 0) { return context->getItemFactory()->createDecimal(asMAPM(), context); } return context->getItemFactory()->createDecimalOrDerived(targetURI, targetType, asMAPM(), context); } } case FLOAT: switch(getState()) { case NaN: return context->getItemFactory()->createFloatOrDerived(targetURI, targetType, NaN_string, context); case INF: return context->getItemFactory()->createFloatOrDerived(targetURI, targetType, INF_string, context); case NEG_INF: return context->getItemFactory()->createFloatOrDerived(targetURI, targetType, NegINF_string, context); case NEG_NUM: if(isZero()) { return context->getItemFactory()->createFloatOrDerived(targetURI, targetType, NegZero_string, context); } // Fall through case NUM: if(targetType == 0) { return context->getItemFactory()->createFloat(asMAPM(), context); } return context->getItemFactory()->createFloatOrDerived(targetURI, targetType, asMAPM(), context); } case DOUBLE: switch(getState()) { case NaN: return context->getItemFactory()->createDoubleOrDerived(targetURI, targetType, NaN_string, context); case INF: return context->getItemFactory()->createDoubleOrDerived(targetURI, targetType, INF_string, context); case NEG_INF: return context->getItemFactory()->createDoubleOrDerived(targetURI, targetType, NegINF_string, context); case NEG_NUM: if(isZero()) { return context->getItemFactory()->createDoubleOrDerived(targetURI, targetType, NegZero_string, context); } // Fall through case NUM: if(targetType == 0) { return context->getItemFactory()->createDouble(asMAPM(), context); } return context->getItemFactory()->createDoubleOrDerived(targetURI, targetType, asMAPM(), context); } case BOOLEAN: if(targetType == 0) { targetURI = SchemaSymbols::fgURI_SCHEMAFORSCHEMA; targetType = SchemaSymbols::fgDT_BOOLEAN; } if(isZero() || isNaN()) { return context->getItemFactory()->createBooleanOrDerived(targetURI, targetType, false, context); } else { return context->getItemFactory()->createBooleanOrDerived(targetURI, targetType, true, context); } default: return AnyAtomicType::castAsInternal(targetIndex, targetURI, targetType, context); } } const XMLCh *Numeric::asDecimalString(int significantDigits, const StaticContext* context) const { return asDecimalString(asMAPM(), significantDigits, context); } const XMLCh *Numeric::asDecimalString(const MAPM &number, int significantDigits, const StaticContext* context) { // Init a buf with an array. Most of the time 1024 digits is enough for // decimals. So we only need malloc() in extreme case (huge decimal). char buf[1024]; char *obuf = buf; // Calculate the required buf size int bufSize = significantDigits + 1; if (bufSize < (number.significant_digits() + 1)) bufSize = (number.significant_digits() + 1); // Malloc a larger one as needed if (bufSize > sizeof(buf)) { obuf = (char *)malloc(bufSize); if (obuf == NULL) throw XQillaException(XQillaException::RUNTIME_ERR, X("Numeric::asDecimalString(): Out of memory")); } if(number.is_integer()) number.toIntegerString(obuf); else { number.toFixPtString(obuf, significantDigits); // Note in the canonical representation the decimal point is required // and there must be at least one digit to the right and one digit to // the left of the decimal point (which may be 0) if(strchr(obuf,'.')!=0) { // remove trailing 0's char* lastChar=obuf+strlen(obuf)-1; while(*lastChar=='0') { *lastChar--=0; } // remove decimal point, if there are no digits after it if(*lastChar=='.') *lastChar=0; } } const XMLCh* ret = context->getMemoryManager()->getPooledString(obuf); if (obuf != buf) // Free "obuf" if it has been malloced free(obuf); return ret; } const XMLCh *Numeric::asDoubleString(int significantDigits, const StaticContext* context) const { State state1 = getState(); MAPM value1 = asMAPM(); switch(getPrimitiveTypeIndex()) { case FLOAT: checkFloatLimits(state1, value1); break; case DOUBLE: checkDoubleLimits(state1, value1); break; default: break; } return asDoubleString(state1, value1, significantDigits, context); } const XMLCh *Numeric::asDoubleString(State state1, const MAPM &value1, int significantDigits, const StaticContext* context) { switch(state1) { case NaN: return NaN_string; case INF: return INF_string; case NEG_INF: return NegINF_string; case NEG_NUM: if(value1.sign() == 0) return NegZero_string; break; case NUM: if(value1.sign() == 0) return PosZero_string; break; } MAPM absVal = value1.abs(); MAPM lower("0.000001"), upper("1000000"); if(absVal < upper && absVal >= lower) { return asDecimalString(value1, significantDigits, context); } else { char obuf[1024]; if(significantDigits==7) { value1.toString(obuf, 25); double num=atof(obuf); sprintf(obuf, "%.*G", min(8,value1.significant_digits()), num); MAPM val=obuf; int precision = val.significant_digits() - 1; if(precision <= 0) precision = 1; val.toString(obuf, precision); return context->getMemoryManager()->getPooledString(obuf); } else if(significantDigits==16) { value1.toString(obuf, 25); double num=atof(obuf); sprintf(obuf, "%.*G", min(17,value1.significant_digits()), num); MAPM val=obuf; int precision = val.significant_digits() - 1; if(precision <= 0) precision = 1; val.toString(obuf, precision); return context->getMemoryManager()->getPooledString(obuf); } int precision = value1.significant_digits() - 1; if(precision > significantDigits) precision = significantDigits; if(precision <= 0) precision = 1; value1.toString(obuf, precision); return context->getMemoryManager()->getPooledString(obuf); } return 0; } double Numeric::asDouble() const { switch(getState()) { case NaN: return std::numeric_limits::quiet_NaN(); case INF: return std::numeric_limits::infinity(); case NEG_INF: return -std::numeric_limits::infinity(); case NUM: case NEG_NUM: break; } return asMAPM().toDouble(); } int Numeric::asInt() const { return (int)asMAPM().toDouble(); } bool Numeric::isInteger() const { return asMAPM().is_integer(); } XQilla-2.3.0/src/items/DateOrTimeType.cpp0000644000151400015140000000174011653565523015113 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "../config/xqilla_config.h" #include #include /* is this type date or time based? Return true by default */ bool DateOrTimeType::isDateOrTimeTypeValue() const { return true; } XQilla-2.3.0/src/config/0000755000151400015140000000000011653572443011751 500000000000000XQilla-2.3.0/src/config/xqilla_config_unix.h.in0000644000151400015140000001247011653565562016341 00000000000000/* src/config/xqilla_config_unix.h.in. Generated from configure.in by autoheader. */ /* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP systems. This function is required for `alloca.c' support on those systems. */ #undef CRAY_STACKSEG_END /* Define to 1 if using `alloca.c'. */ #undef C_ALLOCA /* Define to 1 if you want a debugging version. */ #undef DEBUG /* Define to 1 if you have the `alarm' function. */ #undef HAVE_ALARM /* Define to 1 if the Xerces-C library supports the RegularExpression::allMatches() method. */ #undef HAVE_ALLMATCHES /* Define to 1 if you have `alloca', as a function or macro. */ #undef HAVE_ALLOCA /* Define to 1 if you have and it should be used (not on Ultrix). */ #undef HAVE_ALLOCA_H /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define to 1 if the FAXPP library is present. */ #undef HAVE_FAXPP /* Define to 1 if you have the `floor' function. */ #undef HAVE_FLOOR /* Define to 1 if you have the `ftime' function. */ #undef HAVE_FTIME /* Define to 1 if the Xerces-C library supports the BinInputStream::getContentType() method. */ #undef HAVE_GETCONTENTTYPE /* Define to 1 if you have the `gettimeofday' function. */ #undef HAVE_GETTIMEOFDAY /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the `nsl' library (-lnsl). */ #undef HAVE_LIBNSL /* Define to 1 if you have the `pthread' library (-lpthread). */ #undef HAVE_LIBPTHREAD /* Define to 1 if you have the `socket' library (-lsocket). */ #undef HAVE_LIBSOCKET /* Define to 1 if the HTML Tidy library is present. */ #undef HAVE_LIBTIDY /* Define to 1 if you have the header file. */ #undef HAVE_LIMITS_H /* Define to 1 if you have the `localtime_r' function. */ #undef HAVE_LOCALTIME_R /* Define to 1 if you have the header file. */ #undef HAVE_MALLOC_H /* Define to 1 if you have the `memmove' function. */ #undef HAVE_MEMMOVE /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the `memset' function. */ #undef HAVE_MEMSET /* Define to 1 if you have the `pow' function. */ #undef HAVE_POW /* Define to 1 if the system has the type `ptrdiff_t'. */ #undef HAVE_PTRDIFF_T /* Define to 1 if building on QNX. */ #undef HAVE_QNX /* Define to 1 if you have the `sqrt' function. */ #undef HAVE_SQRT /* Define to 1 if stdbool.h conforms to C99. */ #undef HAVE_STDBOOL_H /* Define to 1 if you have the header file. */ #undef HAVE_STDDEF_H /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the `strchr' function. */ #undef HAVE_STRCHR /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the `strstr' function. */ #undef HAVE_STRSTR /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TIMEB_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TIME_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the `tzset' function. */ #undef HAVE_TZSET /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to 1 if you have the header file. */ #undef HAVE_WCHAR_H /* Define to 1 if the system has the type `_Bool'. */ #undef HAVE__BOOL /* Define to the sub-directory in which libtool stores uninstalled libraries. */ #undef LT_OBJDIR /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* If using the C implementation of alloca, define if you know the direction of stack growth for your system; otherwise it will be automatically deduced at runtime. STACK_DIRECTION > 0 => grows toward higher addresses STACK_DIRECTION < 0 => grows toward lower addresses STACK_DIRECTION = 0 => direction of growth unknown */ #undef STACK_DIRECTION /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Define to 1 if you can safely include both and . */ #undef TIME_WITH_SYS_TIME /* Define to 1 if your declares `struct tm'. */ #undef TM_IN_SYS_TIME /* Version number of package */ #undef VERSION /* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a `char[]'. */ #undef YYTEXT_POINTER /* Define to empty if `const' does not conform to ANSI C. */ #undef const /* Define to `__inline__' or `__inline' if that's what the C compiler calls it, or to nothing if 'inline' is not supported under any name. */ #ifndef __cplusplus #undef inline #endif /* Define to `unsigned int' if does not define. */ #undef size_t XQilla-2.3.0/src/config/xqilla_config.h0000644000151400015140000000567411653565523014676 00000000000000/* * Copyright (c) 2001, 2008, * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004, 2011, * Oracle and/or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _XQILLA_CONFIG_H #define _XQILLA_CONFIG_H #if defined(_MSC_VER) #define WIN32_LEAN_AND_MEAN #include // Warning 4064: switch statement contains 'default' but no 'case' labels // // Warning 4251: We have a lot of std::vector objects inside exported classes, and VC++ complains about it // "class 'std::vector >' needs to have dll-interface to be used by clients of class 'YYYY'" // // Warning 4786: "identifier was truncated to '255' characters in the browser information" // // Warning 4101: "unreferenced local variable" // // Warning 4290: C++ exception specification ignored except to indicate a function is not __declspec(nothrow) // // Warning 4996 is deprecated/unsafe methods from Visual Studio 2005 onwards // // Warning 4786 is a warning that debug info was truncated to 255 chars // this happens in VC6 on large STL template classes. #pragma warning(disable: 4065 4251 4786 4101 4290 4996 4786) #endif #if !defined(HAVE_CONFIG_H) /* Define if your processor stores words with the most significant byte first (like Motorola and SPARC, unlike Intel and VAX). */ /* Intel & Alpha architechtures are small endian */ #undef WORDS_BIGENDIAN /* Define to 1 if the FAXPP library is present. */ #undef HAVE_FAXPP /* Define to 1 if the HTML Tidy library is present. */ #undef HAVE_LIBTIDY /* Define to 1 if the Xerces-C library supports the RegularExpression::allMatches() method. */ #undef HAVE_ALLMATCHES /* Define to 1 if the Xerces-C library supports the BinInputStream::getContentType() method. */ #undef HAVE_GETCONTENTTYPE /* C code should not care about Xerces-C++ facilities. */ #ifdef __cplusplus #include #if _XERCES_VERSION >= 30000 #define HAVE_ALLMATCHES 1 #define HAVE_GETCONTENTTYPE 1 #endif #endif #else #include "xqilla_config_unix.h" #endif /* C code should not care about Xerces-C++ facilities. */ #ifdef __cplusplus #include #include #if _XERCES_VERSION >= 30000 typedef XMLSize_t XercesSizeUint; typedef XMLFilePos XercesFilePos; typedef XMLFileLoc XercesFileLoc; #else typedef unsigned int XercesSizeUint; typedef unsigned int XercesFilePos; typedef XMLSSize_t XercesFileLoc; #endif #endif #endif XQilla-2.3.0/autotools/0000755000151400015140000000000011653572442011745 500000000000000XQilla-2.3.0/autotools/ltmain.sh0000755000151400015140000073337411636377670013540 00000000000000# Generated from ltmain.m4sh. # ltmain.sh (GNU libtool) 2.2.6 # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, # or obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Usage: $progname [OPTION]... [MODE-ARG]... # # Provide generalized library-building support services. # # --config show all configuration variables # --debug enable verbose shell tracing # -n, --dry-run display commands without modifying any files # --features display basic configuration information and exit # --mode=MODE use operation mode MODE # --preserve-dup-deps don't remove duplicate dependency libraries # --quiet, --silent don't print informational messages # --tag=TAG use configuration variables from tag TAG # -v, --verbose print informational messages (default) # --version print version information # -h, --help print short or long help message # # MODE must be one of the following: # # clean remove files from the build directory # compile compile a source file into a libtool object # execute automatically set library path, then run a program # finish complete the installation of libtool libraries # install install libraries or executables # link create a library or an executable # uninstall remove libraries from an installed directory # # MODE-ARGS vary depending on the MODE. # Try `$progname --help --mode=MODE' for a more detailed description of MODE. # # When reporting a bug, please describe a test case to reproduce it and # include the following information: # # host-triplet: $host # shell: $SHELL # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) # $progname: (GNU libtool) 2.2.6 Debian-2.2.6a-4 # automake: $automake_version # autoconf: $autoconf_version # # Report bugs to . PROGRAM=ltmain.sh PACKAGE=libtool VERSION="2.2.6 Debian-2.2.6a-4" TIMESTAMP="" package_revision=1.3012 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # NLS nuisances: We save the old values to restore during execute mode. # Only set LANG and LC_ALL to C if already set. # These must not be set unconditionally because not all systems understand # e.g. LANG=C (notably SCO). lt_user_locale= lt_safe_locale= for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${$lt_var+set}\" = set; then save_$lt_var=\$$lt_var $lt_var=C export $lt_var lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" fi" done $lt_unset CDPATH : ${CP="cp -f"} : ${ECHO="echo"} : ${EGREP="/bin/grep -E"} : ${FGREP="/bin/grep -F"} : ${GREP="/bin/grep"} : ${LN_S="ln -s"} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SED="/bin/sed"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} : ${Xsed="$SED -e 1s/^X//"} # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. exit_status=$EXIT_SUCCESS # Make sure IFS has a sensible default lt_nl=' ' IFS=" $lt_nl" dirname="s,/[^/]*$,," basename="s,^.*/,," # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } # Generated shell functions inserted here. # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" # The name of this program: # In the unlikely event $progname began with a '-', it would play havoc with # func_echo (imagine progname=-n), so we prepend ./ in that case: func_dirname_and_basename "$progpath" progname=$func_basename_result case $progname in -*) progname=./$progname ;; esac # Make sure we have an absolute path for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=$func_dirname_result progdir=`cd "$progdir" && pwd` progpath="$progdir/$progname" ;; *) save_IFS="$IFS" IFS=: for progdir in $PATH; do IFS="$save_IFS" test -x "$progdir/$progname" && break done IFS="$save_IFS" test -n "$progdir" || progdir=`pwd` progpath="$progdir/$progname" ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed="${SED}"' -e 1s/^X//' sed_quote_subst='s/\([`"$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Re-`\' parameter expansions in output of double_quote_subst that were # `\'-ed in input to the same. If an odd number of `\' preceded a '$' # in input to double_quote_subst, that '$' was protected from expansion. # Since each input `\' is now two `\'s, look for any number of runs of # four `\'s followed by two `\'s and then a '$'. `\' that '$'. bs='\\' bs2='\\\\' bs4='\\\\\\\\' dollar='\$' sed_double_backslash="\ s/$bs4/&\\ /g s/^$bs2$dollar/$bs&/ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g s/\n//g" # Standard options: opt_dry_run=false opt_help=false opt_quiet=false opt_verbose=false opt_warning=: # func_echo arg... # Echo program name prefixed message, along with the current mode # name if it has been set yet. func_echo () { $ECHO "$progname${mode+: }$mode: $*" } # func_verbose arg... # Echo program name prefixed message in verbose mode only. func_verbose () { $opt_verbose && func_echo ${1+"$@"} # A bug in bash halts the script if the last line of a function # fails when set -e is in force, so we need another command to # work around that: : } # func_error arg... # Echo program name prefixed message to standard error. func_error () { $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 } # func_warning arg... # Echo program name prefixed warning message to standard error. func_warning () { $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 # bash bug again: : } # func_fatal_error arg... # Echo program name prefixed message to standard error, and exit. func_fatal_error () { func_error ${1+"$@"} exit $EXIT_FAILURE } # func_fatal_help arg... # Echo program name prefixed message to standard error, followed by # a help hint, and exit. func_fatal_help () { func_error ${1+"$@"} func_fatal_error "$help" } help="Try \`$progname --help' for more information." ## default # func_grep expression filename # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $GREP "$1" "$2" >/dev/null 2>&1 } # func_mkdir_p directory-path # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { my_directory_path="$1" my_dir_list= if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then # Protect directory names starting with `-' case $my_directory_path in -*) my_directory_path="./$my_directory_path" ;; esac # While some portion of DIR does not yet exist... while test ! -d "$my_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. my_dir_list="$my_directory_path:$my_dir_list" # If the last portion added has no slash in it, the list is done case $my_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"` done my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'` save_mkdir_p_IFS="$IFS"; IFS=':' for my_dir in $my_dir_list; do IFS="$save_mkdir_p_IFS" # mkdir can fail with a `File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$my_dir" 2>/dev/null || : done IFS="$save_mkdir_p_IFS" # Bail out if we (or some other process) failed to create a directory. test -d "$my_directory_path" || \ func_fatal_error "Failed to create \`$1'" fi } # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$opt_dry_run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $MKDIR "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || \ func_fatal_error "cannot create temporary directory \`$my_tmpdir'" fi $ECHO "X$my_tmpdir" | $Xsed } # func_quote_for_eval arg # Aesthetically quote ARG to be evaled later. # This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT # is double-quoted, suitable for a subsequent eval, whereas # FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters # which are still active within double quotes backslashified. func_quote_for_eval () { case $1 in *[\\\`\"\$]*) func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;; *) func_quote_for_eval_unquoted_result="$1" ;; esac case $func_quote_for_eval_unquoted_result in # Double-quote args containing shell metacharacters to delay # word splitting, command substitution and and variable # expansion for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" ;; *) func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" esac } # func_quote_for_expand arg # Aesthetically quote ARG to be evaled later; same as above, # but do not quote variable references. func_quote_for_expand () { case $1 in *[\\\`\"]*) my_arg=`$ECHO "X$1" | $Xsed \ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; *) my_arg="$1" ;; esac case $my_arg in # Double-quote args containing shell metacharacters to delay # word splitting and command substitution for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") my_arg="\"$my_arg\"" ;; esac func_quote_for_expand_result="$my_arg" } # func_show_eval cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. func_show_eval () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$my_cmd" my_status=$? if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_show_eval_locale cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. Use the saved locale for evaluation. func_show_eval_locale () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$lt_user_locale $my_cmd" my_status=$? eval "$lt_safe_locale" if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_version # Echo version message to standard output and exit. func_version () { $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / { s/^# // s/^# *$// s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ p }' < "$progpath" exit $? } # func_usage # Echo short help message to standard output and exit. func_usage () { $SED -n '/^# Usage:/,/# -h/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" $ECHO $ECHO "run \`$progname --help | more' for full usage" exit $? } # func_help # Echo long help message to standard output and exit. func_help () { $SED -n '/^# Usage:/,/# Report bugs to/ { s/^# // s/^# *$// s*\$progname*'$progname'* s*\$host*'"$host"'* s*\$SHELL*'"$SHELL"'* s*\$LTCC*'"$LTCC"'* s*\$LTCFLAGS*'"$LTCFLAGS"'* s*\$LD*'"$LD"'* s/\$with_gnu_ld/'"$with_gnu_ld"'/ s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ p }' < "$progpath" exit $? } # func_missing_arg argname # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { func_error "missing argument for $1" exit_cmd=exit } exit_cmd=: # Check that we have a working $ECHO. if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then # Yippee, $ECHO works! : else # Restart under the correct shell, and then maybe $ECHO will work. exec $SHELL "$progpath" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat </dev/null 2>&1; then taglist="$taglist $tagname" # Evaluate the configuration. Be careful to quote the path # and the sed script, to avoid splitting on whitespace, but # also don't use non-portable quotes within backquotes within # quotes we have to do it in 2 steps: extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` eval "$extractedcf" else func_error "ignoring unknown tag $tagname" fi ;; esac } # Parse options once, thoroughly. This comes as soon as possible in # the script to make things like `libtool --version' happen quickly. { # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) shift; set dummy --mode clean ${1+"$@"}; shift ;; compile|compil|compi|comp|com|co|c) shift; set dummy --mode compile ${1+"$@"}; shift ;; execute|execut|execu|exec|exe|ex|e) shift; set dummy --mode execute ${1+"$@"}; shift ;; finish|finis|fini|fin|fi|f) shift; set dummy --mode finish ${1+"$@"}; shift ;; install|instal|insta|inst|ins|in|i) shift; set dummy --mode install ${1+"$@"}; shift ;; link|lin|li|l) shift; set dummy --mode link ${1+"$@"}; shift ;; uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; esac # Parse non-mode specific arguments: while test "$#" -gt 0; do opt="$1" shift case $opt in --config) func_config ;; --debug) preserve_args="$preserve_args $opt" func_echo "enabling shell trace mode" opt_debug='set -x' $opt_debug ;; -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break execute_dlfiles="$execute_dlfiles $1" shift ;; --dry-run | -n) opt_dry_run=: ;; --features) func_features ;; --finish) mode="finish" ;; --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break case $1 in # Valid mode arguments: clean) ;; compile) ;; execute) ;; finish) ;; install) ;; link) ;; relink) ;; uninstall) ;; # Catch anything else as an error *) func_error "invalid argument for $opt" exit_cmd=exit break ;; esac mode="$1" shift ;; --preserve-dup-deps) opt_duplicate_deps=: ;; --quiet|--silent) preserve_args="$preserve_args $opt" opt_silent=: ;; --verbose| -v) preserve_args="$preserve_args $opt" opt_silent=false ;; --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break preserve_args="$preserve_args $opt $1" func_enable_tag "$1" # tagname is set here shift ;; # Separate optargs to long options: -dlopen=*|--mode=*|--tag=*) func_opt_split "$opt" set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} shift ;; -\?|-h) func_usage ;; --help) opt_help=: ;; --version) func_version ;; -*) func_fatal_help "unrecognized option \`$opt'" ;; *) nonopt="$opt" break ;; esac done case $host in *cygwin* | *mingw* | *pw32* | *cegcc*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; *) opt_duplicate_compiler_generated_deps=$opt_duplicate_deps ;; esac # Having warned about all mis-specified options, bail out if # anything was wrong. $exit_cmd $EXIT_FAILURE } # func_check_version_match # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { if test "$package_revision" != "$macro_revision"; then if test "$VERSION" != "$macro_version"; then if test -z "$macro_version"; then cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF fi else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF fi exit $EXIT_MISMATCH fi } ## ----------- ## ## Main. ## ## ----------- ## $opt_help || { # Sanity checks first: func_check_version_match if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then func_fatal_configuration "not configured to build any kind of library" fi test -z "$mode" && func_fatal_error "error: you must specify a MODE." # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then func_error "unrecognized option \`-dlopen'" $ECHO "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$progname --help --mode=$mode' for more information." } # func_lalib_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () { test -f "$1" && $SED -e 4q "$1" 2>/dev/null \ | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # func_lalib_unsafe_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be # fatal anyway. Works if `file' does not exist. func_lalib_unsafe_p () { lalib_p=no if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line case "$lalib_p_line" in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi test "$lalib_p" = yes } # func_ltwrapper_script_p file # True iff FILE is a libtool wrapper script # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_script_p () { func_lalib_p "$1" } # func_ltwrapper_executable_p file # True iff FILE is a libtool wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_executable_p () { func_ltwrapper_exec_suffix= case $1 in *.exe) ;; *) func_ltwrapper_exec_suffix=.exe ;; esac $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 } # func_ltwrapper_scriptname file # Assumes file is an ltwrapper_executable # uses $file to determine the appropriate filename for a # temporary ltwrapper_script. func_ltwrapper_scriptname () { func_ltwrapper_scriptname_result="" if func_ltwrapper_executable_p "$1"; then func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" fi } # func_ltwrapper_p file # True iff FILE is a libtool wrapper script or wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_p () { func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" } # func_execute_cmds commands fail_cmd # Execute tilde-delimited COMMANDS. # If FAIL_CMD is given, eval that upon failure. # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { $opt_debug save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$save_ifs eval cmd=\"$cmd\" func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs } # func_source file # Source FILE, adding directory component if necessary. # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. func_source () { $opt_debug case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; esac } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { $opt_debug if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do func_quote_for_eval "$arg" CC_quoted="$CC_quoted $func_quote_for_eval_result" done case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. func_quote_for_eval "$arg" CC_quoted="$CC_quoted $func_quote_for_eval_result" done case "$@ " in " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then func_echo "unable to infer tagged configuration" func_fatal_error "specify a tag with \`--tag'" # else # func_verbose "using $tagname tagged configuration" fi ;; esac fi } # func_write_libtool_object output_name pic_name nonpic_name # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. func_write_libtool_object () { write_libobj=${1} if test "$build_libtool_libs" = yes; then write_lobj=\'${2}\' else write_lobj=none fi if test "$build_old_libs" = yes; then write_oldobj=\'${3}\' else write_oldobj=none fi $opt_dry_run || { cat >${write_libobj}T <?"'"'"' &()|`$[]' \ && func_warning "libobj name \`$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" objname="$func_basename_result" xdir="$func_dirname_result" lobj=${xdir}$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $ECHO "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi removelist="$removelist $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist removelist="$removelist $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result # Only build a PIC object if we are building libtool libraries. if test "$build_libtool_libs" = yes; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test "$pic_mode" != no; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code command="$base_compile $qsrcfile" fi func_mkdir_p "$xdir$objdir" if test -z "$output_obj"; then # Place PIC objects in $objdir command="$command -o $lobj" fi func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then func_show_eval '$MV "$output_obj" "$lobj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi # Allow error messages only from the first compilation. if test "$suppress_opt" = yes; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. if test "$build_old_libs" = yes; then if test "$pic_mode" != yes; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi if test "$compiler_c_o" = yes; then command="$command -o $obj" fi # Suppress compiler output if we already did a PIC compilation. command="$command$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then func_show_eval '$MV "$output_obj" "$obj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi fi $opt_dry_run || { func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked if test "$need_locks" != no; then removelist=$lockfile $RM "$lockfile" fi } exit $EXIT_SUCCESS } $opt_help || { test "$mode" = compile && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $mode in "") # Generic help is extracted from the usage comments # at the start of this file. func_help ;; clean) $ECHO \ "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $ECHO \ "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to building PIC objects only -prefer-non-pic try to building non-PIC objects only -shared do not build a \`.o' file suitable for static linking -static only build a \`.o' file suitable for static linking COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $ECHO \ "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $ECHO \ "Usage: $progname [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $ECHO \ "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The following components of INSTALL-COMMAND are treated specially: -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $ECHO \ "Usage: $progname [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -shared only do dynamic linking of libtool libraries -shrext SUFFIX override the standard shared library file extension -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $ECHO \ "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) func_fatal_help "invalid operation mode \`$mode'" ;; esac $ECHO $ECHO "Try \`$progname --help' for more information about other modes." exit $? } # Now that we've collected a possible --mode arg, show help if necessary $opt_help && func_mode_help # func_mode_execute arg... func_mode_execute () { $opt_debug # The first argument is the command name. cmd="$nonopt" test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $execute_dlfiles; do test -f "$file" \ || func_fatal_help "\`$file' is not a file" dir= case $file in *.la) # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$lib' is not a valid libtool archive" # Read the libtool library. dlname= library_names= func_source "$file" # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ func_warning "\`$file' was not linked with \`-export-dynamic'" continue fi func_dirname "$file" "" "." dir="$func_dirname_result" if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" fi fi ;; *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." dir="$func_dirname_result" ;; *) func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -*) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. file="$progdir/$program" elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). func_quote_for_eval "$file" args="$args $func_quote_for_eval_result" done if test "X$opt_dry_run" = Xfalse; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var else $lt_unset $lt_var fi" done # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" $ECHO "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS fi } test "$mode" = execute && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $opt_debug libdirs="$nonopt" admincmds= if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. func_execute_cmds "$finish_cmds" 'admincmds="$admincmds '"$cmd"'"' fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $opt_dry_run || eval "$cmds" || admincmds="$admincmds $cmds" fi done fi # Exit here if they wanted silent mode. $opt_silent && exit $EXIT_SUCCESS $ECHO "X----------------------------------------------------------------------" | $Xsed $ECHO "Libraries have been installed in:" for libdir in $libdirs; do $ECHO " $libdir" done $ECHO $ECHO "If you ever happen to want to link against installed libraries" $ECHO "in a given directory, LIBDIR, you must either use libtool, and" $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'" $ECHO "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then $ECHO " - add LIBDIR to the \`$shlibpath_var' environment variable" $ECHO " during execution" fi if test -n "$runpath_var"; then $ECHO " - add LIBDIR to the \`$runpath_var' environment variable" $ECHO " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $ECHO " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $ECHO " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then $ECHO " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi $ECHO $ECHO "See any operating system documentation about shared libraries for" case $host in solaris2.[6789]|solaris2.1[0-9]) $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual" $ECHO "pages." ;; *) $ECHO "more information, such as the ld(1) and ld.so(8) manual pages." ;; esac $ECHO "X----------------------------------------------------------------------" | $Xsed exit $EXIT_SUCCESS } test "$mode" = finish && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { $opt_debug # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. $ECHO "X$nonopt" | $GREP shtool >/dev/null; then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " arg=$1 shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" install_prog="$install_prog$func_quote_for_eval_result" # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= for arg do if test -n "$dest"; then files="$files $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) case " $install_prog " in *[\\\ /]cp\ *) ;; *) prev=$arg ;; esac ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_for_eval "$arg" install_prog="$install_prog $func_quote_for_eval_result" done test -z "$install_prog" && \ func_fatal_help "you must specify an install program" test -n "$prev" && \ func_fatal_help "the \`$prev' option requires an argument" if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" else func_fatal_help "you must specify a destination" fi fi # Strip any trailing slash from the destination. func_stripname '' '/' "$dest" dest=$func_stripname_result # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else func_dirname_and_basename "$dest" "" "." destdir="$func_dirname_result" destname="$func_basename_result" # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ func_fatal_help "\`$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) func_fatal_help "\`$destdir' must be an absolute directory name" ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. staticlibs="$staticlibs $file" ;; *.la) # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$file' is not a valid libtool archive" library_names= old_library= relink_command= func_source "$file" # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) current_libdirs="$current_libdirs $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) future_libdirs="$future_libdirs $libdir" ;; esac fi func_dirname "$file" "/" "" dir="$func_dirname_result" dir="$dir$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. test "$inst_prefix_dir" = "$destdir" && \ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"` fi func_warning "relinking \`$file'" func_show_eval "$relink_command" \ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then realname="$1" shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme="$stripme" case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme="" ;; esac ;; esac if test -n "$tstripme" && test -n "$striplib"; then func_show_eval "$striplib $destdir/$realname" 'exit $?' fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do test "$linkname" != "$realname" \ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" done fi # Do each command in the postinstall commands. lib="$destdir/$realname" func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" name="$func_basename_result" instname="$dir/$name"i func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) func_lo2o "$destfile" staticdest=$func_lo2o_result ;; *.$objext) staticdest="$destfile" destfile= ;; *) func_fatal_help "cannot copy a libtool object to \`$destfile'" ;; esac # Install the libtool object if requested. test -n "$destfile" && \ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result else func_stripname '' '.exe' "$file" wrapper=$func_stripname_result fi ;; *) wrapper=$file ;; esac if func_ltwrapper_script_p "$wrapper"; then notinst_deplibs= relink_command= func_source "$wrapper" # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ func_fatal_error "invalid libtool wrapper script \`$wrapper'" finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then func_warning "\`$lib' has not been installed in \`$libdir'" finalize=no fi done relink_command= func_source "$wrapper" outputname= if test "$fast_install" = no && test -n "$relink_command"; then $opt_dry_run || { if test "$finalize" = yes; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" file="$func_basename_result" outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` $opt_silent || { func_quote_for_expand "$relink_command" eval "func_echo $func_quote_for_expand_result" } if eval "$relink_command"; then : else func_error "error: relink \`$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi file="$outputname" else func_warning "cannot relink \`$file'" fi } else # Install the binary that we compiled earlier. file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) func_stripname '' '.exe' "$destfile" destfile=$func_stripname_result ;; esac ;; esac func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' $opt_dry_run || if test -n "$outputname"; then ${RM}r "$tmpdir" fi ;; esac done for file in $staticlibs; do func_basename "$file" name="$func_basename_result" # Set up the ranlib parameters. oldlib="$destdir/$name" func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $oldlib" 'exit $?' fi # Do each command in the postinstall commands. func_execute_cmds "$old_postinstall_cmds" 'exit $?' done test -n "$future_libdirs" && \ func_warning "remember to run \`$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } test "$mode" = install && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p # Extract symbols from dlprefiles and create ${outputname}S.o with # a dlpreopen symbol table. func_generate_dlsyms () { $opt_debug my_outputname="$1" my_originator="$2" my_pic_p="${3-no}" my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then my_dlsyms="${my_outputname}S.c" else func_error "not configured to extract global symbols from dlpreopened files" fi fi if test -n "$my_dlsyms"; then case $my_dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${my_outputname}.nm" func_show_eval "$RM $nlist ${nlist}S ${nlist}T" # Parse the name list into a source file. func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ /* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ /* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then func_verbose "generating symbol list for \`$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` for progfile in $progfiles; do func_verbose "extracting global C symbols from \`$progfile'" $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $opt_dry_run || { eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi if test -n "$export_symbols_regex"; then $opt_dry_run || { eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $opt_dry_run || { $RM $export_symbols eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac } else $opt_dry_run || { eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in *cygwin | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac } fi fi for dlprefile in $dlprefiles; do func_verbose "extracting global C symbols from \`$dlprefile'" func_basename "$dlprefile" name="$func_basename_result" $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" } done $opt_dry_run || { # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $MV "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if $GREP -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else $GREP -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms" fi $ECHO >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; " case $host in *cygwin* | *mingw* | *cegcc* ) $ECHO >> "$output_objdir/$my_dlsyms" "\ /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */" lt_dlsym_const= ;; *osf5*) echo >> "$output_objdir/$my_dlsyms" "\ /* This system does not cope well with relocations in const data */" lt_dlsym_const= ;; *) lt_dlsym_const=const ;; esac $ECHO >> "$output_objdir/$my_dlsyms" "\ extern $lt_dlsym_const lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[]; $lt_dlsym_const lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = {\ { \"$my_originator\", (void *) 0 }," case $need_lib_prefix in no) eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; *) eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac $ECHO >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_${my_prefix}_LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " } # !$opt_dry_run pic_flag_for_symtable= case "$compile_command " in *" -static "*) ;; *) case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) if test "X$my_pic_p" != Xno; then pic_flag_for_symtable=" $pic_flag" fi ;; esac ;; esac symtab_cflags= for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; *) symtab_cflags="$symtab_cflags $arg" ;; esac done # Now compile the dynamic symbol file. func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' # Transform the symbol file into the correct name. symfileobj="$output_objdir/${my_outputname}S.$objext" case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` ;; esac ;; *) func_fatal_error "unknown suffix for \`$my_dlsyms'" ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` fi } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. func_win32_libid () { $opt_debug win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then win32_nmres=`eval $NM -f posix -A $1 | $SED -n -e ' 1,100{ / I /{ s,.*,import, p q } }'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $ECHO "$win32_libid_type" } # func_extract_an_archive dir oldlib func_extract_an_archive () { $opt_debug f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?' if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" fi } # func_extract_archives gentop oldlib ... func_extract_archives () { $opt_debug my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" my_xlib="$func_basename_result" my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) func_arith $extracted_serial + 1 extracted_serial=$func_arith_result my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir="$my_gentop/$my_xlib_u" func_mkdir_p "$my_xdir" case $host in *-darwin*) func_verbose "Extracting $my_xabs" # Do not bother doing anything if just a dry run $opt_dry_run || { darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`basename "$darwin_archive"` darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches } # !$opt_dry_run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # func_emit_wrapper_part1 [arg=no] # # Emit the first part of a libtool wrapper script on stdout. # For more information, see the description associated with # func_emit_wrapper(), below. func_emit_wrapper_part1 () { func_emit_wrapper_part1_arg1=no if test -n "$1" ; then func_emit_wrapper_part1_arg1=$1 fi $ECHO "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='${SED} -e 1s/^X//' sed_quote_subst='$sed_quote_subst' # Be Bourne compatible if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: generated_by_libtool_version='$macro_version' notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then ECHO=\"$qecho\" file=\"\$0\" # Make sure echo works. if test \"X\$1\" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then # Yippee, \$ECHO works! : else # Restart under the correct shell, and then maybe \$ECHO will work. exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} fi fi\ " $ECHO "\ # Find the directory that this script lives in. thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` done " } # end: func_emit_wrapper_part1 # func_emit_wrapper_part2 [arg=no] # # Emit the second part of a libtool wrapper script on stdout. # For more information, see the description associated with # func_emit_wrapper(), below. func_emit_wrapper_part2 () { func_emit_wrapper_part2_arg1=no if test -n "$1" ; then func_emit_wrapper_part2_arg1=$1 fi $ECHO "\ # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then thisdir=\`pwd\` fi # remove .libs from thisdir case \"\$thisdir\" in *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $ECHO "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $MKDIR \"\$progdir\" else $RM \"\$progdir/\$file\" fi" $ECHO "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" exit 1 fi fi $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $RM \"\$progdir/\$program\"; $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } $RM \"\$progdir/\$file\" fi" else $ECHO "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $ECHO "\ if test -f \"\$progdir/\$program\"; then" # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` export $shlibpath_var " fi # fixup the dll searchpath if we need to. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 fi else # The program doesn't exist. \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " } # end: func_emit_wrapper_part2 # func_emit_wrapper [arg=no] # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to # incorporate the script contents within a cygwin/mingw # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein. # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory in which it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () { func_emit_wrapper_arg1=no if test -n "$1" ; then func_emit_wrapper_arg1=$1 fi # split this up so that func_emit_cwrapperexe_src # can call each part independently. func_emit_wrapper_part1 "${func_emit_wrapper_arg1}" func_emit_wrapper_part2 "${func_emit_wrapper_arg1}" } # func_to_host_path arg # # Convert paths to host format when used with build tools. # Intended for use with "native" mingw (where libtool itself # is running under the msys shell), or in the following cross- # build environments: # $build $host # mingw (msys) mingw [e.g. native] # cygwin mingw # *nix + wine mingw # where wine is equipped with the `winepath' executable. # In the native mingw case, the (msys) shell automatically # converts paths for any non-msys applications it launches, # but that facility isn't available from inside the cwrapper. # Similar accommodations are necessary for $host mingw and # $build cygwin. Calling this function does no harm for other # $host/$build combinations not listed above. # # ARG is the path (on $build) that should be converted to # the proper representation for $host. The result is stored # in $func_to_host_path_result. func_to_host_path () { func_to_host_path_result="$1" if test -n "$1" ; then case $host in *mingw* ) lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' case $build in *mingw* ) # actually, msys # awkward: cmd appends spaces to result lt_sed_strip_trailing_spaces="s/[ ]*\$//" func_to_host_path_tmp1=`( cmd //c echo "$1" |\ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` ;; *cygwin* ) func_to_host_path_tmp1=`cygpath -w "$1"` func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` ;; * ) # Unfortunately, winepath does not exit with a non-zero # error code, so we are forced to check the contents of # stdout. On the other hand, if the command is not # found, the shell will set an exit code of 127 and print # *an error message* to stdout. So we must check for both # error code of zero AND non-empty stdout, which explains # the odd construction: func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` else # Allow warning below. func_to_host_path_result="" fi ;; esac if test -z "$func_to_host_path_result" ; then func_error "Could not determine host path corresponding to" func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_path_result="$1" fi ;; esac fi } # end: func_to_host_path # func_to_host_pathlist arg # # Convert pathlists to host format when used with build tools. # See func_to_host_path(), above. This function supports the # following $build/$host combinations (but does no harm for # combinations not listed here): # $build $host # mingw (msys) mingw [e.g. native] # cygwin mingw # *nix + wine mingw # # Path separators are also converted from $build format to # $host format. If ARG begins or ends with a path separator # character, it is preserved (but converted to $host format) # on output. # # ARG is a pathlist (on $build) that should be converted to # the proper representation on $host. The result is stored # in $func_to_host_pathlist_result. func_to_host_pathlist () { func_to_host_pathlist_result="$1" if test -n "$1" ; then case $host in *mingw* ) lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them # into '.;' and ';.', and winepath ignores them completely. func_to_host_pathlist_tmp2="$1" # Once set for this call, this variable should not be # reassigned. It is used in tha fallback case. func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e 's|^:*||' -e 's|:*$||'` case $build in *mingw* ) # Actually, msys. # Awkward: cmd appends spaces to result. lt_sed_strip_trailing_spaces="s/[ ]*\$//" func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e "$lt_sed_naive_backslashify"` ;; *cygwin* ) func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"` func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e "$lt_sed_naive_backslashify"` ;; * ) # unfortunately, winepath doesn't convert pathlists func_to_host_pathlist_result="" func_to_host_pathlist_oldIFS=$IFS IFS=: for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do IFS=$func_to_host_pathlist_oldIFS if test -n "$func_to_host_pathlist_f" ; then func_to_host_path "$func_to_host_pathlist_f" if test -n "$func_to_host_path_result" ; then if test -z "$func_to_host_pathlist_result" ; then func_to_host_pathlist_result="$func_to_host_path_result" else func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result" fi fi fi IFS=: done IFS=$func_to_host_pathlist_oldIFS ;; esac if test -z "$func_to_host_pathlist_result" ; then func_error "Could not determine the host path(s) corresponding to" func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This may break if $1 contains DOS-style drive # specifications. The fix is not to complicate the expression # below, but for the user to provide a working wine installation # with winepath so that path translation in the cross-to-mingw # case works properly. lt_replace_pathsep_nix_to_dos="s|:|;|g" func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ $SED -e "$lt_replace_pathsep_nix_to_dos"` fi # Now, add the leading and trailing path separators back case "$1" in :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" ;; esac case "$1" in *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;" ;; esac ;; esac fi } # end: func_to_host_pathlist # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout # Must ONLY be called from within func_mode_link because # it depends on a number of variable set therein. func_emit_cwrapperexe_src () { cat < #include #ifdef _MSC_VER # include # include # include # define setmode _setmode #else # include # include # ifdef __CYGWIN__ # include # define HAVE_SETENV # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif # endif #endif #include #include #include #include #include #include #include #include #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef S_IXOTH # define S_IXOTH 0 #endif #ifndef S_IXGRP # define S_IXGRP 0 #endif #ifdef _MSC_VER # define S_IXUSR _S_IEXEC # define stat _stat # ifndef _INTPTR_T_DEFINED # define intptr_t int # endif #endif #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #ifdef __CYGWIN__ # define FOPEN_WB "wb" #endif #ifndef FOPEN_WB # define FOPEN_WB "w" #endif #ifndef _O_BINARY # define _O_BINARY 0 #endif #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) #undef LTWRAPPER_DEBUGPRINTF #if defined DEBUGWRAPPER # define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args static void ltwrapper_debugprintf (const char *fmt, ...) { va_list args; va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } #else # define LTWRAPPER_DEBUGPRINTF(args) #endif const char *program_name = NULL; void *xmalloc (size_t num); char *xstrdup (const char *string); const char *base_name (const char *name); char *find_executable (const char *wrapper); char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_fatal (const char *message, ...); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); void lt_opt_process_env_set (const char *arg); void lt_opt_process_env_prepend (const char *arg); void lt_opt_process_env_append (const char *arg); int lt_split_name_value (const char *arg, char** name, char** value); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); static const char *script_text_part1 = EOF func_emit_wrapper_part1 yes | $SED -e 's/\([\\"]\)/\\\1/g' \ -e 's/^/ "/' -e 's/$/\\n"/' echo ";" cat <"))); for (i = 0; i < newargc; i++) { LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : ""))); } EOF case $host_os in mingw*) cat <<"EOF" /* execv doesn't actually work on mingw as expected on unix */ rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); if (rval == -1) { /* failed to start process */ LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno)); return 127; } return rval; EOF ;; *) cat <<"EOF" execv (lt_argv_zero, newargz); return rval; /* =127, but avoids unused variable warning */ EOF ;; esac cat <<"EOF" } void * xmalloc (size_t num) { void *p = (void *) malloc (num); if (!p) lt_fatal ("Memory exhausted"); return p; } char * xstrdup (const char *string) { return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL; } const char * base_name (const char *name) { const char *base; #if defined (HAVE_DOS_BASED_FILE_SYSTEM) /* Skip over the disk name in MSDOS pathnames. */ if (isalpha ((unsigned char) name[0]) && name[1] == ':') name += 2; #endif for (base = name; *name; name++) if (IS_DIR_SEPARATOR (*name)) base = name + 1; return base; } int check_executable (const char *path) { struct stat st; LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!")); if ((!path) || (!*path)) return 0; if ((stat (path, &st) >= 0) && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) return 1; else return 0; } int make_executable (const char *path) { int rval = 0; struct stat st; LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!")); if ((!path) || (!*path)) return 0; if (stat (path, &st) >= 0) { rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); } return rval; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise Does not chase symlinks, even on platforms that support them. */ char * find_executable (const char *wrapper) { int has_slash = 0; const char *p; const char *p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char *concat_name; LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!")); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char *path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char *q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR (*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); return NULL; } char * chase_symlinks (const char *pathspec) { #ifndef S_ISLNK return xstrdup (pathspec); #else char buf[LT_PATHMAX]; struct stat s; char *tmp_pathspec = xstrdup (pathspec); char *p; int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n", tmp_pathspec)); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) { has_symlinks = 1; break; } /* search backwards for last DIR_SEPARATOR */ p = tmp_pathspec + strlen (tmp_pathspec) - 1; while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) p--; if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) { /* no more DIR_SEPARATORS left */ break; } *p = '\0'; } else { char *errstr = strerror (errno); lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal ("Could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif } char * strendzap (char *str, const char *pat) { size_t len, patlen; assert (str != NULL); assert (pat != NULL); len = strlen (str); patlen = strlen (pat); if (patlen <= len) { str += len - patlen; if (strcmp (str, pat) == 0) *str = '\0'; } return str; } static void lt_error_core (int exit_status, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s: %s: ", program_name, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, "FATAL", message, ap); va_end (ap); } void lt_setenv (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n", (name ? name : ""), (value ? value : ""))); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ char *str = xstrdup (value); setenv (name, str, 1); #else int len = strlen (name) + 1 + strlen (value) + 1; char *str = XMALLOC (char, len); sprintf (str, "%s=%s", name, value); if (putenv (str) != EXIT_SUCCESS) { XFREE (str); } #endif } } char * lt_extend_str (const char *orig_value, const char *add, int to_end) { char *new_value; if (orig_value && *orig_value) { int orig_value_len = strlen (orig_value); int add_len = strlen (add); new_value = XMALLOC (char, add_len + orig_value_len + 1); if (to_end) { strcpy (new_value, orig_value); strcpy (new_value + orig_value_len, add); } else { strcpy (new_value, add); strcpy (new_value + add_len, orig_value); } } else { new_value = xstrdup (add); } return new_value; } int lt_split_name_value (const char *arg, char** name, char** value) { const char *p; int len; if (!arg || !*arg) return 1; p = strchr (arg, (int)'='); if (!p) return 1; *value = xstrdup (++p); len = strlen (arg) - strlen (*value); *name = XMALLOC (char, len); strncpy (*name, arg, len-1); (*name)[len - 1] = '\0'; return 0; } void lt_opt_process_env_set (const char *arg) { char *name = NULL; char *value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg); } lt_setenv (name, value); XFREE (name); XFREE (value); } void lt_opt_process_env_prepend (const char *arg) { char *name = NULL; char *value = NULL; char *new_value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg); } new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); XFREE (name); XFREE (value); } void lt_opt_process_env_append (const char *arg) { char *name = NULL; char *value = NULL; char *new_value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg); } new_value = lt_extend_str (getenv (name), value, 1); lt_setenv (name, new_value); XFREE (new_value); XFREE (name); XFREE (value); } void lt_update_exe_path (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n", (name ? name : ""), (value ? value : ""))); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); /* some systems can't cope with a ':'-terminated path #' */ int len = strlen (new_value); while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { new_value[len-1] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); } } void lt_update_lib_path (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n", (name ? name : ""), (value ? value : ""))); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); } } EOF } # end: func_emit_cwrapperexe_src # func_mode_link arg... func_mode_link () { $opt_debug case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # which system we are compiling for in order to pass an extra # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying # to make a dll which has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. allow_undefined=yes ;; *) allow_undefined=yes ;; esac libtool_args=$nonopt base_compile="$nonopt $@" compile_command=$nonopt finalize_command=$nonopt compile_rpath= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= new_inherited_linker_flags= avoid_version=no dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= non_pic_objects= precious_files_regex= prefer_static_libs=no preload=no prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= thread_safe=no vinfo= vinfo_number=no weak_libs= single_module="${wl}-single_module" func_infer_tag $base_compile # We need to know -static, to get the right output filenames. for arg do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift func_quote_for_eval "$arg" qarg=$func_quote_for_eval_unquoted_result func_append libtool_args " $func_quote_for_eval_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) func_append compile_command " @OUTPUT@" func_append finalize_command " @OUTPUT@" ;; esac case $prev in dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append finalize_command " @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then dlfiles="$dlfiles $arg" else dlprefiles="$dlprefiles $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" test -f "$arg" \ || func_fatal_error "symbol file \`$arg' does not exist" prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; framework) case $host in *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; *) deplibs="$deplibs $qarg.ltframework" # this is fixed later ;; esac ;; esac prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat "$save_arg"` do # moreargs="$moreargs $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi done else func_fatal_error "link input file \`$arg' does not exist" fi arg=$save_arg prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) rpath="$rpath $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) xrpath="$xrpath $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds="$arg" prev= continue ;; weak) weak_libs="$weak_libs $arg" prev= continue ;; xcclinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) compiler_flags="$compiler_flags $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" func_append finalize_command " $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. func_fatal_error "\`-allow-undefined' must not be used because it is the default" ;; -avoid-version) avoid_version=yes continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then func_fatal_error "more than one -exported-symbols argument is not allowed" fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework) prev=framework continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) func_append compile_command " $arg" func_append finalize_command " $arg" ;; esac continue ;; -L*) func_stripname '-L' '' "$arg" dir=$func_stripname_result if test -z "$dir"; then if test "$#" -gt 0; then func_fatal_error "require no space between \`-L' and \`$1'" else func_fatal_error "need path for \`-L' option" fi fi # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ func_fatal_error "cannot determine absolute directory name of \`$dir'" dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "*) ;; *) deplibs="$deplibs -L$dir" lib_search_path="$lib_search_path $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) dllsearchpath="$dllsearchpath:$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework deplibs="$deplibs System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi deplibs="$deplibs $arg" continue ;; -module) module=yes continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. -model|-arch|-isysroot) compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;; esac continue ;; -multi_module) single_module="${wl}-multi_module" continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "\`-no-install' is ignored for $host" func_warning "assuming \`-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) func_stripname '-R' '' "$arg" dir=$func_stripname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac continue ;; -shared) # The effects of -shared are defined in a previous loop. continue ;; -shrext) prev=shrext continue ;; -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -weak) prev=weak continue ;; -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" arg="$arg $wl$func_quote_for_eval_result" compiler_flags="$compiler_flags $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Wl,*) func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" arg="$arg $wl$func_quote_for_eval_result" compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" linker_flags="$linker_flags $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # -msg_* for osf cc -msg_*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; # -64, -mips[0-9] enable 64-bit mode on the SGI compiler # -r[0-9][0-9]* specifies the processor on the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler # +DA*, +DD* enable 64-bit mode on the HP compiler # -q* pass through compiler args for the IBM compiler # -m*, -t[45]*, -txscale* pass through architecture-specific # compiler args for GCC # -F/path gives path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC # @file GCC response files -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" func_append finalize_command " $arg" compiler_flags="$compiler_flags $arg" continue ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; *.$objext) # A standard object. objs="$objs $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi ;; *.$libext) # An archive. deplibs="$deplibs $arg" old_deplibs="$old_deplibs $arg" continue ;; *.la) # A libtool-controlled library. if test "$prev" = dlfiles; then # This library was specified with -dlopen. dlfiles="$dlfiles $arg" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. dlprefiles="$dlprefiles $arg" prev= else deplibs="$deplibs $arg" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then func_append compile_command " $arg" func_append finalize_command " $arg" fi done # argument parsing loop test -n "$prev" && \ func_fatal_help "the \`$prevarg' option requires an argument" if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" func_append compile_command " $arg" func_append finalize_command " $arg" fi oldlibs= # calculate the name of the file, without its directory func_basename "$output" outputname="$func_basename_result" libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" func_dirname "$output" "/" "" output_objdir="$func_dirname_result$objdir" # Create the object directory. func_mkdir_p "$output_objdir" # Determine the type of output case $output in "") func_fatal_help "you must specify an output file" ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if $opt_duplicate_deps ; then case "$libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi libs="$libs $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; esac pre_post_deps="$pre_post_deps $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv dlpreopen link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do # The preopen pass in lib mode reverses $deplibs; put it back here # so that -L comes before libs that need it for instance... if test "$linkmode,$pass" = "lib,link"; then ## FIXME: Find the place where the list is rebuilt in the wrong ## order, and fix it there properly tmp_deplibs= for deplib in $deplibs; do tmp_deplibs="$deplib $tmp_deplibs" done deplibs="$tmp_deplibs" fi if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS%" test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" ;; esac fi if test "$linkmode,$pass" = "lib,dlpreopen"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= case $lib in *.la) func_source "$lib" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"` case " $weak_libs " in *" $deplib_base "*) ;; *) deplibs="$deplibs $deplib" ;; esac done done libs="$dlprefiles" fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else compiler_flags="$compiler_flags $deplib" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; esac fi fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then func_warning "\`-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result if test "$linkmode" = lib; then searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" else searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" fi for searchdir in $searchdirs; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then library_names= old_library= func_source "$lib" for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no func_dirname "$lib" "" "." ladir="$func_dirname_result" lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l *.ltframework) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; esac fi fi continue ;; -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; *) func_warning "\`-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib" dir=$func_stripname_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) lib="$deplib" ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) # Linking convenience modules into shared libraries is allowed, # but linking other static libraries is non-portable. case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then $ECHO $ECHO "*** Warning: Trying to link with static lib archive $deplib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have" $ECHO "*** because the file extensions .$libext of this argument makes me believe" $ECHO "*** that it is just a static archive that I should not use here." else $ECHO $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi ;; esac continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. newdlprefiles="$newdlprefiles $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else newdlfiles="$newdlfiles $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" fi # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$lib" \ || func_fatal_error "\`$lib' is not a valid libtool archive" func_dirname "$lib" "" "." ladir="$func_dirname_result" dlname= dlopen= dlpreopen= libdir= library_names= old_library= inherited_linker_flags= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file func_source "$lib" # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" old_convenience="$old_convenience $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" fi continue fi # $pass = conv # Get the name of the library we link against. linklib= for l in $old_library $library_names; do linklib="$l" done if test -z "$linklib"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then func_fatal_error "cannot -dlopen a convenience library: \`$lib'" fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. dlprefiles="$dlprefiles $lib $dependency_libs" else newdlfiles="$newdlfiles $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then func_warning "cannot determine absolute directory name of \`$ladir'" func_warning "passing it literally to the linker, although it might fail" abs_ladir="$ladir" fi ;; esac func_basename "$lib" laname="$func_basename_result" # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$libdir" absdir="$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" name=$func_stripname_result # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir" && test "$linkmode" = prog; then func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then newdlprefiles="$newdlprefiles $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then newdlprefiles="$newdlprefiles $dir/$dlname" else newdlprefiles="$newdlprefiles $dir/$linklib" fi fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then newlib_search_path="$newlib_search_path $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { { test "$prefer_static_libs" = no || test "$prefer_static_libs,$installed" = "built,yes"; } || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath:" in *"$absdir:"*) ;; *) temp_rpath="$temp_rpath$absdir:" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then case $host in *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded notinst_deplibs="$notinst_deplibs $lib" need_relink=no ;; *) if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" need_relink=yes fi ;; esac # This is a shared library # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! dlopenmodule="" for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then dlopenmodule="$dlpremoduletest" break fi done if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then $ECHO if test "$linkmode" = prog; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi $ECHO "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names shift realname="$1" shift libname=`eval "\\$ECHO \"$libname_spec\""` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw* | *cegcc*) func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" func_basename "$soroot" soname="$func_basename_result" func_stripname 'lib' '.dll' "$soname" newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else func_verbose "extracting exported symbol list from \`$soname'" func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else func_verbose "generating import library for \`$soname'" func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a (non-dlopened) module then we can not # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | $GREP ": [^:]* bundle" >/dev/null ; then if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library" ; then $ECHO $ECHO "*** And there doesn't seem to be a static archive available" $ECHO "*** The link will probably fail, sorry" else add="$dir/$old_library" fi elif test -n "$old_library"; then add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$dir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then func_fatal_configuration "unsupported hardcode properties" fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && test "$hardcode_minus_L" != yes && test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. $ECHO $ECHO "*** Warning: This system can not link to static lib archive $lib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then $ECHO "*** But as you try to build a module library, libtool will still create " $ECHO "*** a static module, that should work as long as the dlopening application" $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then $ECHO $ECHO "*** However, this would only work if libtool was able to extract symbol" $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" $ECHO "*** not find such a program. So, this module is probably useless." $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) func_stripname '-R' '' "$libdir" temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; *) xrpath="$xrpath $temp_xrpath";; esac;; *) temp_deplibs="$temp_deplibs $libdir";; esac done dependency_libs="$temp_deplibs" fi newlib_search_path="$newlib_search_path $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do path= case $deplib in -L*) path="$deplib" ;; *.la) func_dirname "$deplib" "" "." dir="$func_dirname_result" # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then func_warning "cannot determine absolute directory name of \`$dir'" absdir="$dir" fi ;; esac if $GREP "^installed=no" $deplib > /dev/null; then case $host in *-*-darwin*) depdepl= eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$absdir/$objdir/$depdepl" ; then depdepl="$absdir/$objdir/$depdepl" darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` if test -z "$darwin_install_name"; then darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}" path= fi fi ;; *) path="-L$absdir/$objdir" ;; esac else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ func_warning "\`$deplib' seems to be moved" path="-L$absdir" fi ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs if test "$pass" = link; then if test "$linkmode" = "prog"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) lib_search_path="$lib_search_path $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) tmp_libs="$tmp_libs $deplib" ;; esac ;; *) tmp_libs="$tmp_libs $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then tmp_libs="$tmp_libs $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" fi if test "$linkmode" = prog || test "$linkmode" = lib; then dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for archives" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for archives" test -n "$xrpath" && \ func_warning "\`-R' is ignored for archives" test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for archives" test -n "$release" && \ func_warning "\`-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ func_warning "\`-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" objs="$objs$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) test "$module" = no && \ func_fatal_help "libtool library \`$output' must begin with \`lib'" if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else func_stripname '' '.la' "$outputname" libname=$func_stripname_result fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" else $ECHO $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" libobjs="$libobjs $objs" fi fi test "$dlself" != no && \ func_warning "\`-dlopen self' is ignored for libtool libraries" set dummy $rpath shift test "$#" -gt 1 && \ func_warning "ignoring multiple \`-rpath's for a libtool library" install_libdir="$1" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ func_warning "\`-release' is ignored for convenience libraries" else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 shift IFS="$save_ifs" test -n "$7" && \ func_fatal_help "too many parameters to \`-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$1" number_minor="$2" number_revision="$3" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in darwin|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_minor" lt_irix_increment=no ;; *) func_fatal_configuration "$modename: unknown library version type \`$version_type'" ;; esac ;; no) current="$1" revision="$2" age="$3" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "CURRENT \`$current' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "REVISION \`$revision' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "AGE \`$age' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac if test "$age" -gt "$current"; then func_error "AGE \`$age' is greater than the current interface number \`$current'" func_fatal_error "\`$vinfo' is not valid version information" fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... func_arith $current + 1 minor_current=$func_arith_result xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current" ;; irix | nonstopux) if test "X$lt_irix_increment" = "Xno"; then func_arith $current - $age else func_arith $current - $age + 1 fi major=$func_arith_result case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" ;; osf) func_arith $current - $age major=.$func_arith_result versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring:${iface}.0" done # Make executables depend on our current version. verstring="$verstring:${current}.0" ;; qnx) major=".$current" versuffix=".$current" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; *) func_fatal_configuration "unknown library version type \`$version_type'" ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then func_warning "undefined symbols not allowed in $host shared libraries" build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi func_generate_dlsyms "$libname" "$libname" "yes" libobjs="$libobjs $symfileobj" test "X$libobjs" = "X " && libobjs= if test "$mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$ECHO "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi removelist="$removelist $p" ;; *) ;; esac done test -n "$removelist" && \ func_show_eval "${RM}r \$removelist" fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then oldlibs="$oldlibs $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"` # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"` # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do temp_xrpath="$temp_xrpath -R$libdir" case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) dlfiles="$dlfiles $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) dlprefiles="$dlprefiles $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework deplibs="$deplibs System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then deplibs="$deplibs -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $opt_dry_run || $RM conftest.c cat > conftest.c </dev/null` for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | $GREP " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $ECHO $ECHO "*** Warning: linker path does not have real file for library $a_deplib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have" $ECHO "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a file magic. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" ;; esac done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) newdeplibs="$newdeplibs $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $ECHO $ECHO "*** Warning: linker path does not have real file for library $a_deplib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have" $ECHO "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a regex pattern. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \ -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"` done fi if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' | $GREP . >/dev/null; then $ECHO if test "X$deplibs_check_method" = "Xnone"; then $ECHO "*** Warning: inter-library dependencies are not supported in this platform." else $ECHO "*** Warning: inter-library dependencies are not known to be supported." fi $ECHO "*** All declared inter-library dependencies are being dropped." droppeddeps=yes fi ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then $ECHO $ECHO "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" $ECHO "*** a static module, that should work as long as the dlopening" $ECHO "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then $ECHO $ECHO "*** However, this would only work if libtool was able to extract symbol" $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" $ECHO "*** not find such a program. So, this module is probably useless." $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else $ECHO "*** The inter-library dependencies that have been dropped here will be" $ECHO "*** automatically added whenever a program is linked with this library" $ECHO "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then $ECHO $ECHO "*** Since this library must not contain undefined symbols," $ECHO "*** because either the platform does not support them or" $ECHO "*** it was explicitly requested with -no-undefined," $ECHO "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" dep_rpath="$dep_rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" if test -n "$hardcode_libdir_flag_spec_ld"; then eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" else eval dep_rpath=\"$hardcode_libdir_flag_spec\" fi fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names shift realname="$1" shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do linknames="$linknames $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols="$output_objdir/$libname.uexp" delfiles="$delfiles $export_symbols" fi orig_export_symbols= case $host_os in cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile if test "x`$SED 1q $export_symbols`" != xEXPORTS; then # and it's NOT already a .def file. Must figure out # which of the given symbols are data symbols and tag # them as such. So, trigger use of export_symbols_cmds. # export_symbols gets reassigned inside the "prepare # the list of exported symbols" if statement, so the # include_expsyms logic still works. orig_export_symbols="$export_symbols" export_symbols= always_export_symbols=yes fi fi ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" func_len " $cmd" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then func_show_eval "$cmd" 'exit $?' skipped_export=false else # The command line is too long to execute in one step. func_verbose "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' fi if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) tmp_deplibs="$tmp_deplibs $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && test "$compiler_needs_object" = yes && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. whole_archive_flag_spec= fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $convenience libobjs="$libobjs $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linker_flags="$linker_flags $flag" fi # Make a backup of the uninstalled library when relinking if test "$mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise # or, if using GNU ld and skipped_export is not :, use a linker # script. # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output output_la=`$ECHO "X$output" | $Xsed -e "$basename"` # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= last_robj= k=1 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then output=${output_objdir}/${output_la}.lnkscript func_verbose "creating GNU ld script: $output" $ECHO 'INPUT (' > $output for obj in $save_libobjs do $ECHO "$obj" >> $output done $ECHO ')' >> $output delfiles="$delfiles $output" elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then output=${output_objdir}/${output_la}.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= if test "$compiler_needs_object" = yes; then firstobj="$1 " shift fi for obj do $ECHO "$obj" >> $output done delfiles="$delfiles $output" output=$firstobj\"$file_list_spec$output\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." output=$output_objdir/$output_la-${k}.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 # Loop over the list of objects to be linked. for obj in $save_libobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result if test "X$objlist" = X || test "$len" -lt "$max_cmd_len"; then func_append objlist " $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. eval concat_cmds=\"$reload_cmds $objlist $last_robj\" else # All subsequent reloadable object files will link in # the last one created. eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-${k}.$objext objlist=$obj func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" if test -n "$last_robj"; then eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" fi delfiles="$delfiles $output" else output= fi if ${skipped_export-false}; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols libobjs=$output # Append the command to create the export file. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi fi test -n "$save_libobjs" && func_verbose "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" if test -n "$export_symbols_regex" && ${skipped_export-false}; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi if ${skipped_export-false}; then if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi fi libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi fi if test -n "$delfiles"; then # Append the command to remove temporary files to $cmds. eval cmds=\"\$cmds~\$RM $delfiles\" fi # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $dlprefiles libobjs="$libobjs $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then func_show_eval '${RM}r "$gentop"' fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for objects" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for objects" test -n "$xrpath" && \ func_warning "\`-R' is ignored for objects" test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for objects" test -n "$release" && \ func_warning "\`-release' is ignored for objects" case $output in *.lo) test -n "$objs$old_deplibs" && \ func_fatal_error "cannot build library object \`$output' from non-libtool objects" libobj=$output func_lo2o "$libobj" obj=$func_lo2o_result ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $opt_dry_run || $RM $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec and hope we can get by with # turning comma into space.. wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` else gentop="$output_objdir/${obj}x" generated="$generated $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # Create the old-style object. reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" func_execute_cmds "$reload_cmds" 'exit $?' fi if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) func_stripname '' '.exe' "$output" output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for programs" test -n "$release" && \ func_warning "\`-release' is ignored for programs" test "$preload" = yes \ && test "$dlopen_support" = unknown \ && test "$dlopen_self" = unknown \ && test "$dlopen_self_static" = unknown && \ func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ;; esac case $host in *-*-darwin*) # Don't allow lazy linking, it breaks C++ global constructors # But is supposedly fixed on 10.4 or later (yay!). if test "$tagname" = CXX ; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) compile_command="$compile_command ${wl}-bind_at_load" finalize_command="$finalize_command ${wl}-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done compile_deplibs="$new_libs" compile_command="$compile_command $compile_deplibs" finalize_command="$finalize_command $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; *) dllsearchpath="$dllsearchpath:$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" "no" # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi wrappers_required=yes case $host in *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; *cegcc) # Disable wrappers for cegcc, we are cross compiling anyway. wrappers_required=no ;; *) if test "$need_relink" = no || test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; esac if test "$wrappers_required" = no; then # Replace the output file specification. compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' # Delete the generated files. if test -f "$output_objdir/${outputname}S.${objext}"; then func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' fi exit $exit_status fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do rpath="$rpath$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" func_warning "this platform does not like uninstalled shared libraries" func_warning "\`$output' will be relinked during installation" else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' # Now create the wrapper script. func_verbose "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` fi # Quote $ECHO for shipping. if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then case $progpath in [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; esac qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"` else qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. $opt_dry_run || { # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) func_stripname '' '.exe' "$output" output=$func_stripname_result ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe func_stripname '' '.exe' "$outputname" outputname=$func_stripname_result ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 func_emit_cwrapperexe_src > $cwrappersource # The wrapper executable is built using the $host compiler, # because it contains $host paths and files. If cross- # compiling, it, like the target executable, must be # executed on the $host or under an emulation environment. $opt_dry_run || { $LTCC $LTCFLAGS -o $cwrapper $cwrappersource $STRIP $cwrapper } # Now, create the wrapper script for func_source use: func_ltwrapper_scriptname $cwrapper $RM $func_ltwrapper_scriptname_result trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 $opt_dry_run || { # note: this script will not be executed, so do not chmod. if test "x$build" = "x$host" ; then $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result fi } ;; * ) $RM $output trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 func_emit_wrapper no > $output chmod +x $output ;; esac } exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save $symfileobj" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" if test "$preload" = yes && test -f "$symfileobj"; then oldobjs="$oldobjs $symfileobj" fi fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $addlibs oldobjs="$oldobjs $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $dlprefiles oldobjs="$oldobjs $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do func_basename "$obj" $ECHO "$func_basename_result" done | sort | sort -uc >/dev/null 2>&1); then : else $ECHO "copying selected object files to avoid basename conflicts..." gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do func_basename "$obj" objbase="$func_basename_result" case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase func_arith $counter + 1 counter=$func_arith_result case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" oldobjs="$oldobjs $gentop/$newobj" ;; *) oldobjs="$oldobjs $obj" ;; esac done fi eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs oldobjs= # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done eval test_cmds=\"$old_archive_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 for obj in $save_oldobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result func_append objlist " $obj" if test "$len" -lt "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi func_execute_cmds "$cmds" 'exit $?' done test -n "$generated" && \ func_show_eval "${RM}r$generated" # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" func_verbose "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) func_basename "$deplib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" newdependency_libs="$newdependency_libs $libdir/$name" ;; *) newdependency_libs="$newdependency_libs $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do case $lib in *.la) func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" newdlfiles="$newdlfiles $libdir/$name" ;; *) newdlfiles="$newdlfiles $lib" ;; esac done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in *.la) # Only pass preopened files to the pseudo-archive (for # eventual linking with the app. that links it) if we # didn't already link the preopened objects directly into # the library: func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" newdlprefiles="$newdlprefiles $libdir/$name" ;; esac done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlfiles="$newdlfiles $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlprefiles="$newdlprefiles $abs" done dlprefiles="$newdlprefiles" fi $RM $output # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac $ECHO > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Linker flags that can not go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Names of additional weak libraries provided by this library weak_library_names='$weak_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi done } # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ;; esac exit $EXIT_SUCCESS } { test "$mode" = link || test "$mode" = relink; } && func_mode_link ${1+"$@"} # func_mode_uninstall arg... func_mode_uninstall () { $opt_debug RM="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) RM="$RM $arg"; rmforce=yes ;; -*) RM="$RM $arg" ;; *) files="$files $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= origobjdir="$objdir" for file in $files; do func_dirname "$file" "" "." dir="$func_dirname_result" if test "X$dir" = X.; then objdir="$origobjdir" else objdir="$dir/$origobjdir" fi func_basename "$file" name="$func_basename_result" test "$mode" = uninstall && objdir="$dir" # Remember objdir for removal later, being careful to avoid duplicates if test "$mode" = clean; then case " $rmdirs " in *" $objdir "*) ;; *) rmdirs="$rmdirs $objdir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if { test -L "$file"; } >/dev/null 2>&1 || { test -h "$file"; } >/dev/null 2>&1 || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if func_lalib_p "$file"; then func_source $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" case "$mode" in clean) case " $library_names " in # " " in the beginning catches empty $dlname *" $dlname "*) ;; *) rmfiles="$rmfiles $objdir/$dlname" ;; esac test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if func_lalib_p "$file"; then # Read the .lo file func_source $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" && test "$pic_object" != none; then rmfiles="$rmfiles $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test "$non_pic_object" != none; then rmfiles="$rmfiles $dir/$non_pic_object" fi fi ;; *) if test "$mode" = clean ; then noexename=$name case $file in *.exe) func_stripname '' '.exe' "$file" file=$func_stripname_result func_stripname '' '.exe' "$name" noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe rmfiles="$rmfiles $file" ;; esac # Do a test to see if this is a libtool program. if func_ltwrapper_p "$file"; then if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result rmfiles="$rmfiles $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename fi # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then rmfiles="$rmfiles $objdir/lt-$name" fi if test "X$noexename" != "X$name" ; then rmfiles="$rmfiles $objdir/lt-${noexename}.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done objdir="$origobjdir" # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then func_show_eval "rmdir $dir >/dev/null 2>&1" fi done exit $exit_status } { test "$mode" = uninstall || test "$mode" = clean; } && func_mode_uninstall ${1+"$@"} test -z "$mode" && { help="$generic_help" func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode \`$mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" exit $EXIT_FAILURE fi exit $exit_status # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: # vi:sw=2 XQilla-2.3.0/autotools/config.guess0000755000151400015140000013226411571227110014201 00000000000000#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Free Software Foundation, Inc. timestamp='2009-04-27' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH="x86_64" fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[456]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:[3456]*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; EM64T | authenticamd | genuineintel) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-gnu else echo ${UNAME_MACHINE}-unknown-linux-gnueabi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; padre:Linux:*:*) echo sparc-unknown-linux-gnu exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^LIBC/{ s: ::g p }'`" test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit } test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configury will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: XQilla-2.3.0/autotools/depcomp0000755000151400015140000003710011571227110013227 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2005-07-09.11 # Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` tmpdepfile="$stripped.u" if test "$libtool" = yes; then "$@" -Wc,-M else "$@" -M fi stat=$? if test -f "$tmpdepfile"; then : else stripped=`echo "$stripped" | sed 's,^.*/,,'` tmpdepfile="$stripped.u" fi if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi if test -f "$tmpdepfile"; then outname="$stripped.o" # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mecanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # X makedepend shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes ;; esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. "$@" || exit $? IFS=" " for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: XQilla-2.3.0/autotools/mkinstalldirs0000755000151400015140000000662211571227110014465 00000000000000#! /bin/sh # mkinstalldirs --- make directory hierarchy scriptversion=2005-06-29.22 # Original author: Noah Friedman # Created: 1993-05-16 # Public domain. # # This file is maintained in Automake, please report # bugs to or send patches to # . errstatus=0 dirmode= usage="\ Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ... Create each directory DIR (with mode MODE, if specified), including all leading file name components. Report bugs to ." # process command line arguments while test $# -gt 0 ; do case $1 in -h | --help | --h*) # -h for help echo "$usage" exit $? ;; -m) # -m PERM arg shift test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } dirmode=$1 shift ;; --version) echo "$0 $scriptversion" exit $? ;; --) # stop option processing shift break ;; -*) # unknown option echo "$usage" 1>&2 exit 1 ;; *) # first non-opt arg break ;; esac done for file do if test -d "$file"; then shift else break fi done case $# in 0) exit 0 ;; esac # Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and # mkdir -p a/c at the same time, both will detect that a is missing, # one will create a, then the other will try to create a and die with # a "File exists" error. This is a problem when calling mkinstalldirs # from a parallel make. We use --version in the probe to restrict # ourselves to GNU mkdir, which is thread-safe. case $dirmode in '') if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then echo "mkdir -p -- $*" exec mkdir -p -- "$@" else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as # directories to create, and then abort because `.' already # exists. test -d ./-p && rmdir ./-p test -d ./--version && rmdir ./--version fi ;; *) if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 && test ! -d ./--version; then echo "mkdir -m $dirmode -p -- $*" exec mkdir -m "$dirmode" -p -- "$@" else # Clean up after NextStep and OpenStep mkdir. for d in ./-m ./-p ./--version "./$dirmode"; do test -d $d && rmdir $d done fi ;; esac for file do case $file in /*) pathcomp=/ ;; *) pathcomp= ;; esac oIFS=$IFS IFS=/ set fnord $file shift IFS=$oIFS for d do test "x$d" = x && continue pathcomp=$pathcomp$d case $pathcomp in -*) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then errstatus=$lasterr else if test ! -z "$dirmode"; then echo "chmod $dirmode $pathcomp" lasterr= chmod "$dirmode" "$pathcomp" || lasterr=$? if test ! -z "$lasterr"; then errstatus=$lasterr fi fi fi fi pathcomp=$pathcomp/ done done exit $errstatus # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: XQilla-2.3.0/autotools/missing0000755000151400015140000002540611571227110013257 00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2005-06-08.21 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005 # Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case "$1" in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). case "$1" in lex|yacc) # Not GNU programs, they don't have --version. ;; tar) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case "$1" in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case "$f" in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -f y.tab.c ]; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -f lex.yy.c ]; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` fi if [ -f "$file" ]; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit 1 fi ;; makeinfo) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case "$firstarg" in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case "$firstarg" in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: XQilla-2.3.0/autotools/install-sh0000755000151400015140000003246411571227110013666 00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2006-12-25.00 # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then trap '(exit $?); exit' 1 2 13 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names starting with `-'. case $src in -*) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # Protect names starting with `-'. case $dst in -*) dst=./$dst;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; -*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test -z "$d" && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: XQilla-2.3.0/autotools/config.sub0000755000151400015140000010224011571227110013633 00000000000000#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Free Software Foundation, Inc. timestamp='2009-04-17' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ | mips64r5900 | mips64r5900el \ | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ | mips64r5900-* | mips64r5900el-* \ | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aros) basic_machine=i386-pc os=-aros ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; c90) basic_machine=c90-cray os=-unicos ;; cegcc) basic_machine=arm-unknown os=-cegcc ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dicos) basic_machine=i686-pc os=-dicos ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tile*) basic_machine=tile-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; z80-*-coff) basic_machine=z80-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -kopensolaris* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: XQilla-2.3.0/autotools/m4/0000755000151400015140000000000011653572442012265 500000000000000XQilla-2.3.0/autotools/m4/lt~obsolete.m40000644000151400015140000001311311571227110015004 00000000000000# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 4 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # # In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) # which have later been changed to m4_define as they aren't part of the # exported API, or moved to Autoconf or Automake where they belong. # # The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN # in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us # using a macro with the same name in our local m4/libtool.m4 it'll # pull the old libtool.m4 in (it doesn't see our shiny new m4_define # and doesn't know about Autoconf macros at all.) # # So we provide this file, which has a silly filename so it's always # included after everything else. This provides aclocal with the # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything # because those macros already exist, or will be overwritten later. # We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. # # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. # Yes, that means every name once taken will need to remain here until # we give up compatibility with versions before 1.7, at which point # we need to keep only those names which we still refer to. # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) m4_ifndef([AC_LIBTOOL_RC], [AC_DEFUN([AC_LIBTOOL_RC])]) m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) XQilla-2.3.0/autotools/m4/ltsugar.m40000644000151400015140000001042411571227110014115 00000000000000# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltsugar.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) # lt_join(SEP, ARG1, [ARG2...]) # ----------------------------- # Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their # associated separator. # Needed until we can rely on m4_join from Autoconf 2.62, since all earlier # versions in m4sugar had bugs. m4_define([lt_join], [m4_if([$#], [1], [], [$#], [2], [[$2]], [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) m4_define([_lt_join], [m4_if([$#$2], [2], [], [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) # lt_car(LIST) # lt_cdr(LIST) # ------------ # Manipulate m4 lists. # These macros are necessary as long as will still need to support # Autoconf-2.59 which quotes differently. m4_define([lt_car], [[$1]]) m4_define([lt_cdr], [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], [$#], 1, [], [m4_dquote(m4_shift($@))])]) m4_define([lt_unquote], $1) # lt_append(MACRO-NAME, STRING, [SEPARATOR]) # ------------------------------------------ # Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. # Note that neither SEPARATOR nor STRING are expanded; they are appended # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). # No SEPARATOR is output if MACRO-NAME was previously undefined (different # than defined and empty). # # This macro is needed until we can rely on Autoconf 2.62, since earlier # versions of m4sugar mistakenly expanded SEPARATOR but not STRING. m4_define([lt_append], [m4_define([$1], m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) # lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) # ---------------------------------------------------------- # Produce a SEP delimited list of all paired combinations of elements of # PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list # has the form PREFIXmINFIXSUFFIXn. # Needed until we can rely on m4_combine added in Autoconf 2.62. m4_define([lt_combine], [m4_if(m4_eval([$# > 3]), [1], [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl [[m4_foreach([_Lt_prefix], [$2], [m4_foreach([_Lt_suffix], ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) # lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) # ----------------------------------------------------------------------- # Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited # by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. m4_define([lt_if_append_uniq], [m4_ifdef([$1], [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], [lt_append([$1], [$2], [$3])$4], [$5])], [lt_append([$1], [$2], [$3])$4])]) # lt_dict_add(DICT, KEY, VALUE) # ----------------------------- m4_define([lt_dict_add], [m4_define([$1($2)], [$3])]) # lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) # -------------------------------------------- m4_define([lt_dict_add_subkey], [m4_define([$1($2:$3)], [$4])]) # lt_dict_fetch(DICT, KEY, [SUBKEY]) # ---------------------------------- m4_define([lt_dict_fetch], [m4_ifval([$3], m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) # lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) # ----------------------------------------------------------------- m4_define([lt_if_dict_fetch], [m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], [$5], [$6])]) # lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) # -------------------------------------------------------------- m4_define([lt_dict_filter], [m4_if([$5], [], [], [lt_join(m4_quote(m4_default([$4], [[, ]])), lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl ]) XQilla-2.3.0/autotools/m4/libtool.m40000644000151400015140000077437411636377670014150 00000000000000# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. m4_define([_LT_COPYING], [dnl # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ]) # serial 56 LT_INIT # LT_PREREQ(VERSION) # ------------------ # Complain and exit if this libtool version is less that VERSION. m4_defun([LT_PREREQ], [m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, [m4_default([$3], [m4_fatal([Libtool version $1 or higher is required], 63)])], [$2])]) # _LT_CHECK_BUILDDIR # ------------------ # Complain if the absolute build directory name contains unusual characters m4_defun([_LT_CHECK_BUILDDIR], [case `pwd` in *\ * | *\ *) AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; esac ]) # LT_INIT([OPTIONS]) # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl AC_BEFORE([$0], [LTDL_INIT])dnl m4_require([_LT_CHECK_BUILDDIR])dnl dnl Autoconf doesn't catch unexpanded LT_ macros by default: m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 dnl unless we require an AC_DEFUNed macro: AC_REQUIRE([LTOPTIONS_VERSION])dnl AC_REQUIRE([LTSUGAR_VERSION])dnl AC_REQUIRE([LTVERSION_VERSION])dnl AC_REQUIRE([LTOBSOLETE_VERSION])dnl m4_require([_LT_PROG_LTMAIN])dnl dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl _LT_SETUP # Only expand once: m4_define([LT_INIT]) ])# LT_INIT # Old names: AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PROG_LIBTOOL], []) dnl AC_DEFUN([AM_PROG_LIBTOOL], []) # _LT_CC_BASENAME(CC) # ------------------- # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. m4_defun([_LT_CC_BASENAME], [for cc_temp in $1""; do case $cc_temp in compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` ]) # _LT_FILEUTILS_DEFAULTS # ---------------------- # It is okay to use these file commands and assume they have been set # sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. m4_defun([_LT_FILEUTILS_DEFAULTS], [: ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} ])# _LT_FILEUTILS_DEFAULTS # _LT_SETUP # --------- m4_defun([_LT_SETUP], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl dnl _LT_DECL([], [build_alias], [0], [The build system])dnl _LT_DECL([], [build], [0])dnl _LT_DECL([], [build_os], [0])dnl dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl dnl AC_REQUIRE([AC_PROG_LN_S])dnl test -z "$LN_S" && LN_S="ln -s" _LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl dnl AC_REQUIRE([LT_CMD_MAX_LEN])dnl _LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi ]) if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl _LT_PROG_ECHO_BACKSLASH case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([["`\\]]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o _LT_CC_BASENAME([$compiler]) # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then _LT_PATH_MAGIC fi ;; esac # Use C for the default configuration in the libtool script LT_SUPPORTED_TAG([CC]) _LT_LANG_C_CONFIG _LT_LANG_DEFAULT_CONFIG _LT_CONFIG_COMMANDS ])# _LT_SETUP # _LT_PROG_LTMAIN # --------------- # Note that this code is called both from `configure', and `config.status' # now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, # `config.status' has no value for ac_aux_dir unless we are using Automake, # so we pass a copy along to make sure it has a sensible value anyway. m4_defun([_LT_PROG_LTMAIN], [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) ltmain="$ac_aux_dir/ltmain.sh" ])# _LT_PROG_LTMAIN ## ------------------------------------- ## ## Accumulate code for creating libtool. ## ## ------------------------------------- ## # So that we can recreate a full libtool script including additional # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS # in macros and then make a single call at the end using the `libtool' # label. # _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) # ---------------------------------------- # Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL_INIT], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_INIT], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_INIT]) # _LT_CONFIG_LIBTOOL([COMMANDS]) # ------------------------------ # Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) # _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) # ----------------------------------------------------- m4_defun([_LT_CONFIG_SAVE_COMMANDS], [_LT_CONFIG_LIBTOOL([$1]) _LT_CONFIG_LIBTOOL_INIT([$2]) ]) # _LT_FORMAT_COMMENT([COMMENT]) # ----------------------------- # Add leading comment marks to the start of each line, and a trailing # full-stop to the whole comment if one is not present already. m4_define([_LT_FORMAT_COMMENT], [m4_ifval([$1], [ m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) )]) ## ------------------------ ## ## FIXME: Eliminate VARNAME ## ## ------------------------ ## # _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) # ------------------------------------------------------------------- # CONFIGNAME is the name given to the value in the libtool script. # VARNAME is the (base) name used in the configure script. # VALUE may be 0, 1 or 2 for a computed quote escaped value based on # VARNAME. Any other value will be used directly. m4_define([_LT_DECL], [lt_if_append_uniq([lt_decl_varnames], [$2], [, ], [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], [m4_ifval([$1], [$1], [$2])]) lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) m4_ifval([$4], [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) lt_dict_add_subkey([lt_decl_dict], [$2], [tagged?], [m4_ifval([$5], [yes], [no])])]) ]) # _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) # -------------------------------------------------------- m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) # lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_tag_varnames], [_lt_decl_filter([tagged?], [yes], $@)]) # _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) # --------------------------------------------------------- m4_define([_lt_decl_filter], [m4_case([$#], [0], [m4_fatal([$0: too few arguments: $#])], [1], [m4_fatal([$0: too few arguments: $#: $1])], [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], [lt_dict_filter([lt_decl_dict], $@)])[]dnl ]) # lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) # -------------------------------------------------- m4_define([lt_decl_quote_varnames], [_lt_decl_filter([value], [1], $@)]) # lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_dquote_varnames], [_lt_decl_filter([value], [2], $@)]) # lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_varnames_tagged], [m4_assert([$# <= 2])dnl _$0(m4_quote(m4_default([$1], [[, ]])), m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) m4_define([_lt_decl_varnames_tagged], [m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) # lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_all_varnames], [_$0(m4_quote(m4_default([$1], [[, ]])), m4_if([$2], [], m4_quote(lt_decl_varnames), m4_quote(m4_shift($@))))[]dnl ]) m4_define([_lt_decl_all_varnames], [lt_join($@, lt_decl_varnames_tagged([$1], lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl ]) # _LT_CONFIG_STATUS_DECLARE([VARNAME]) # ------------------------------------ # Quote a variable value, and forward it to `config.status' so that its # declaration there will have the same value as in `configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], [$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS # ------------------------------ # We delimit libtool config variables with single quotes, so when # we write them to config.status, we have to be sure to quote all # embedded single quotes properly. In configure, this macro expands # each variable declared with _LT_DECL (and _LT_TAGDECL) into: # # ='`$ECHO "X$" | $Xsed -e "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAGS # ---------------- # Output comment and list of tags supported by the script m4_defun([_LT_LIBTOOL_TAGS], [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl available_tags="_LT_TAGS"dnl ]) # _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) # ----------------------------------- # Extract the dictionary values for VARNAME (optionally with TAG) and # expand to a commented shell variable setting: # # # Some comment about what VAR is for. # visible_name=$lt_internal_name m4_define([_LT_LIBTOOL_DECLARE], [_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [description])))[]dnl m4_pushdef([_libtool_name], m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), [0], [_libtool_name=[$]$1], [1], [_libtool_name=$lt_[]$1], [2], [_libtool_name=$lt_[]$1], [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl ]) # _LT_LIBTOOL_CONFIG_VARS # ----------------------- # Produce commented declarations of non-tagged libtool config variables # suitable for insertion in the LIBTOOL CONFIG section of the `libtool' # script. Tagged libtool config variables (even for the LIBTOOL CONFIG # section) are produced by _LT_LIBTOOL_TAG_VARS. m4_defun([_LT_LIBTOOL_CONFIG_VARS], [m4_foreach([_lt_var], m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAG_VARS(TAG) # ------------------------- m4_define([_LT_LIBTOOL_TAG_VARS], [m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) # _LT_TAGVAR(VARNAME, [TAGNAME]) # ------------------------------ m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) # _LT_CONFIG_COMMANDS # ------------------- # Send accumulated output to $CONFIG_STATUS. Thanks to the lists of # variables for single and double quote escaping we saved from calls # to _LT_DECL, we can put quote escaped variables declarations # into `config.status', and then the shell code to quote escape them in # for loops in `config.status'. Finally, any additional code accumulated # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. m4_defun([_LT_CONFIG_COMMANDS], [AC_PROVIDE_IFELSE([LT_OUTPUT], dnl If the libtool generation code has been placed in $CONFIG_LT, dnl instead of duplicating it all over again into config.status, dnl then we will have config.status run $CONFIG_LT later, so it dnl needs to know what name is stored there: [AC_CONFIG_COMMANDS([libtool], [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], dnl If the libtool generation code is destined for config.status, dnl expand the accumulated commands and init code now: [AC_CONFIG_COMMANDS([libtool], [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) ])#_LT_CONFIG_COMMANDS # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], [ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' _LT_CONFIG_STATUS_DECLARATIONS LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Fix-up fallback echo if it was mangled by the above quoting rules. case \$lt_ECHO in *'\\\[$]0 --fallback-echo"')dnl " lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\` ;; esac _LT_OUTPUT_LIBTOOL_INIT ]) # LT_OUTPUT # --------- # This macro allows early generation of the libtool script (before # AC_OUTPUT is called), incase it is used in configure for compilation # tests. AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) cat >"$CONFIG_LT" <<_LTEOF #! $SHELL # Generated by $as_me. # Run this file to recreate a libtool stub with the current configuration. lt_cl_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 exec AS_MESSAGE_LOG_FD>>config.log { echo AS_BOX([Running $as_me.]) } >&AS_MESSAGE_LOG_FD lt_cl_help="\ \`$as_me' creates a local libtool stub from the current configuration, for use in further configure time tests before the real libtool is generated. Usage: $[0] [[OPTIONS]] -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files Report bugs to ." lt_cl_version="\ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. Copyright (C) 2008 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." while test $[#] != 0 do case $[1] in --version | --v* | -V ) echo "$lt_cl_version"; exit 0 ;; --help | --h* | -h ) echo "$lt_cl_help"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --quiet | --q* | --silent | --s* | -q ) lt_cl_silent=: ;; -*) AC_MSG_ERROR([unrecognized option: $[1] Try \`$[0] --help' for more information.]) ;; *) AC_MSG_ERROR([unrecognized argument: $[1] Try \`$[0] --help' for more information.]) ;; esac shift done if $lt_cl_silent; then exec AS_MESSAGE_FD>/dev/null fi _LTEOF cat >>"$CONFIG_LT" <<_LTEOF _LT_OUTPUT_LIBTOOL_COMMANDS_INIT _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AC_MSG_NOTICE([creating $ofile]) _LT_OUTPUT_LIBTOOL_COMMANDS AS_EXIT(0) _LTEOF chmod +x "$CONFIG_LT" # configure is writing to config.log, but config.lt does its own redirection, # appending to config.log, which fails on DOS, as config.log is still kept # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. if test "$no_create" != yes; then lt_cl_success=: test "$silent" = yes && lt_config_lt_args="$lt_config_lt_args --quiet" exec AS_MESSAGE_LOG_FD>/dev/null $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false exec AS_MESSAGE_LOG_FD>>config.log $lt_cl_success || AS_EXIT(1) fi ])# LT_OUTPUT # _LT_CONFIG(TAG) # --------------- # If TAG is the built-in tag, create an initial libtool script with a # default configuration from the untagged config vars. Otherwise add code # to config.status for appending the configuration named by TAG from the # matching tagged config vars. m4_defun([_LT_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_CONFIG_SAVE_COMMANDS([ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl m4_if(_LT_TAG, [C], [ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # _LT_COPYING _LT_LIBTOOL_TAGS # ### BEGIN LIBTOOL CONFIG _LT_LIBTOOL_CONFIG_VARS _LT_LIBTOOL_TAG_VARS # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac _LT_PROG_LTMAIN # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) _LT_PROG_XSI_SHELLFNS sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], [cat <<_LT_EOF >> "$ofile" dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded dnl in a comment (ie after a #). # ### BEGIN LIBTOOL TAG CONFIG: $1 _LT_LIBTOOL_TAG_VARS(_LT_TAG) # ### END LIBTOOL TAG CONFIG: $1 _LT_EOF ])dnl /m4_if ], [m4_if([$1], [], [ PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile'], []) ])dnl /_LT_CONFIG_SAVE_COMMANDS ])# _LT_CONFIG # LT_SUPPORTED_TAG(TAG) # --------------------- # Trace this macro to discover what tags are supported by the libtool # --tag option, using: # autoconf --trace 'LT_SUPPORTED_TAG:$1' AC_DEFUN([LT_SUPPORTED_TAG], []) # C support is built-in for now m4_define([_LT_LANG_C_enabled], []) m4_define([_LT_TAGS], []) # LT_LANG(LANG) # ------------- # Enable libtool support for the given language if not already enabled. AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], [Windows Resource], [_LT_LANG(RC)], [m4_ifdef([_LT_LANG_]$1[_CONFIG], [_LT_LANG($1)], [m4_fatal([$0: unsupported language: "$1"])])])dnl ])# LT_LANG # _LT_LANG(LANGNAME) # ------------------ m4_defun([_LT_LANG], [m4_ifdef([_LT_LANG_]$1[_enabled], [], [LT_SUPPORTED_TAG([$1])dnl m4_append([_LT_TAGS], [$1 ])dnl m4_define([_LT_LANG_]$1[_enabled], [])dnl _LT_LANG_$1_CONFIG($1)])dnl ])# _LT_LANG # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], [AC_PROVIDE_IFELSE([AC_PROG_CXX], [LT_LANG(CXX)], [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) AC_PROVIDE_IFELSE([AC_PROG_F77], [LT_LANG(F77)], [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) AC_PROVIDE_IFELSE([AC_PROG_FC], [LT_LANG(FC)], [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal dnl pulling things in needlessly. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([LT_PROG_GCJ], [LT_LANG(GCJ)], [m4_ifdef([AC_PROG_GCJ], [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([A][M_PROG_GCJ], [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) ])# _LT_LANG_DEFAULT_CONFIG # Obsolete macros: AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_CXX], []) dnl AC_DEFUN([AC_LIBTOOL_F77], []) dnl AC_DEFUN([AC_LIBTOOL_FC], []) dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) # _LT_TAG_COMPILER # ---------------- m4_defun([_LT_TAG_COMPILER], [AC_REQUIRE([AC_PROG_CC])dnl _LT_DECL([LTCC], [CC], [1], [A C compiler])dnl _LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl _LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl _LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC ])# _LT_TAG_COMPILER # _LT_COMPILER_BOILERPLATE # ------------------------ # Check for compiler boilerplate output or warnings with # the simple compiler test code. m4_defun([_LT_COMPILER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ])# _LT_COMPILER_BOILERPLATE # _LT_LINKER_BOILERPLATE # ---------------------- # Check for linker boilerplate output or warnings with # the simple link test code. m4_defun([_LT_LINKER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ])# _LT_LINKER_BOILERPLATE # _LT_REQUIRED_DARWIN_CHECKS # ------------------------- m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ case $host_os in rhapsody* | darwin*) AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) AC_CHECK_TOOL([LIPO], [lipo], [:]) AC_CHECK_TOOL([OTOOL], [otool], [:]) AC_CHECK_TOOL([OTOOL64], [otool64], [:]) _LT_DECL([], [DSYMUTIL], [1], [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) _LT_DECL([], [NMEDIT], [1], [Tool to change global to local symbols on Mac OS X]) _LT_DECL([], [LIPO], [1], [Tool to manipulate fat objects and archives on Mac OS X]) _LT_DECL([], [OTOOL], [1], [ldd/readelf like tool for Mach-O binaries on Mac OS X]) _LT_DECL([], [OTOOL64], [1], [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], [lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -rf libconftest.dylib* rm -f conftest.* fi]) AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [lt_cv_ld_exported_symbols_list=yes], [lt_cv_ld_exported_symbols_list=no]) LDFLAGS="$save_LDFLAGS" ]) case $host_os in rhapsody* | darwin1.[[012]]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[[012]]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ]) # _LT_DARWIN_LINKER_FEATURES # -------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ m4_require([_LT_REQUIRED_DARWIN_CHECKS]) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(whole_archive_flag_spec, $1)='' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=echo _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" m4_if([$1], [CXX], [ if test "$lt_cv_apple_cc_single_mod" != "yes"; then _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" fi ],[]) else _LT_TAGVAR(ld_shlibs, $1)=no fi ]) # _LT_SYS_MODULE_PATH_AIX # ----------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl AC_LINK_IFELSE(AC_LANG_PROGRAM,[ lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi],[]) if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], [ifdef([AC_DIVERSION_NOTICE], [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], [AC_DIVERT_PUSH(NOTICE)]) $1 AC_DIVERT_POP ])# _LT_SHELL_INIT # _LT_PROG_ECHO_BACKSLASH # ----------------------- # Add some code to the start of the generated configure script which # will find an echo command which doesn't interpret backslashes. m4_defun([_LT_PROG_ECHO_BACKSLASH], [_LT_SHELL_INIT([ # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$lt_ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` ;; esac ECHO=${lt_ECHO-echo} if test "X[$]1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X[$]1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then # Yippee, $ECHO works! : else # Restart under the correct shell. exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} fi if test "X[$]1" = X--fallback-echo; then # used as fallback echo shift cat <<_LT_EOF [$]* _LT_EOF exit 0 fi # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test -z "$lt_ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if { echo_test_string=`eval $cmd`; } 2>/dev/null && { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null then break fi done fi if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$ECHO" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. ECHO='print -r' elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} else # Try using printf. ECHO='printf %s\n' if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL ECHO="$CONFIG_SHELL [$]0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$CONFIG_SHELL [$]0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "[$]0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} else # Oops. We lost completely, so just stick with echo. ECHO=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. lt_ECHO=$ECHO if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" fi AC_SUBST(lt_ECHO) ]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) _LT_DECL([], [ECHO], [1], [An echo program that does not interpret backslashes]) ])# _LT_PROG_ECHO_BACKSLASH # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], [AC_ARG_ENABLE([libtool-lock], [AS_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '[#]line __oline__ "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, [AC_LANG_PUSH(C) AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" ])# _LT_ENABLE_LOCK # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], [AC_CHECK_TOOL(AR, ar, false) test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1]) AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: _LT_DECL([], [STRIP], [1], [A symbol stripping program]) AC_CHECK_TOOL(RANLIB, ranlib, :) test -z "$RANLIB" && RANLIB=: _LT_DECL([], [RANLIB], [1], [Commands used to install an old-style archive]) # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi _LT_DECL([], [old_postinstall_cmds], [2]) _LT_DECL([], [old_postuninstall_cmds], [2]) _LT_TAGDECL([], [old_archive_cmds], [2], [Commands used to build an old-style archive]) ])# _LT_CMD_OLD_ARCHIVE # _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$3" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi fi $RM conftest* ]) if test x"[$]$2" = xyes; then m4_if([$5], , :, [$5]) else m4_if([$6], , :, [$6]) fi ])# _LT_COMPILER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) # _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------- # Check whether the given linker option works AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $3" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi else $2=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" ]) if test x"[$]$2" = xyes; then m4_if([$4], , :, [$4]) else m4_if([$5], , :, [$5]) fi ])# _LT_LINKER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) # LT_CMD_MAX_LEN #--------------- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl # find the maximum length of command line arguments AC_MSG_CHECKING([the maximum length of command line arguments]) AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ = "XX$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac ]) if test -n $lt_cv_sys_max_cmd_len ; then AC_MSG_RESULT($lt_cv_sys_max_cmd_len) else AC_MSG_RESULT(none) fi max_cmd_len=$lt_cv_sys_max_cmd_len _LT_DECL([], [max_cmd_len], [0], [What is the maximum length of a command?]) ])# LT_CMD_MAX_LEN # Old name: AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) # _LT_HEADER_DLFCN # ---------------- m4_defun([_LT_HEADER_DLFCN], [AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl ])# _LT_HEADER_DLFCN # _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # ---------------------------------------------------------------- m4_defun([_LT_TRY_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "$cross_compiling" = yes; then : [$4] else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF [#line __oline__ "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); return status; }] _LT_EOF if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; x$lt_dlunknown|x*) $3 ;; esac else : # compilation failed $3 fi fi rm -fr conftest* ])# _LT_TRY_DLOPEN_SELF # LT_SYS_DLOPEN_SELF # ------------------ AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ]) ;; *) AC_CHECK_FUNC([shl_load], [lt_cv_dlopen="shl_load"], [AC_CHECK_LIB([dld], [shl_load], [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], [AC_CHECK_FUNC([dlopen], [lt_cv_dlopen="dlopen"], [AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], [AC_CHECK_LIB([svld], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], [AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) ]) ]) ]) ]) ]) ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" AC_CACHE_CHECK([whether a program can dlopen itself], lt_cv_dlopen_self, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ]) if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ]) fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi _LT_DECL([dlopen_support], [enable_dlopen], [0], [Whether dlopen is supported]) _LT_DECL([dlopen_self], [enable_dlopen_self], [0], [Whether dlopen of programs is supported]) _LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], [Whether dlopen of statically linked programs is supported]) ])# LT_SYS_DLOPEN_SELF # Old name: AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) # _LT_COMPILER_C_O([TAGNAME]) # --------------------------- # Check to see if options -c and -o are simultaneously supported by compiler. # This macro does not hard code the compiler like AC_PROG_CC_C_O. m4_defun([_LT_COMPILER_C_O], [m4_require([_LT_DECL_SED])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes fi fi chmod u+w . 2>&AS_MESSAGE_LOG_FD $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* ]) _LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], [Does compiler simultaneously support -c and -o options?]) ])# _LT_COMPILER_C_O # _LT_COMPILER_FILE_LOCKS([TAGNAME]) # ---------------------------------- # Check to see if we can do hard links to lock some files if needed m4_defun([_LT_COMPILER_FILE_LOCKS], [m4_require([_LT_ENABLE_LOCK])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_COMPILER_C_O([$1]) hard_links="nottested" if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user AC_MSG_CHECKING([if we can lock with hard links]) hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no AC_MSG_RESULT([$hard_links]) if test "$hard_links" = no; then AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) need_locks=warn fi else need_locks=no fi _LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) ])# _LT_COMPILER_FILE_LOCKS # _LT_CHECK_OBJDIR # ---------------- m4_defun([_LT_CHECK_OBJDIR], [AC_CACHE_CHECK([for objdir], [lt_cv_objdir], [rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null]) objdir=$lt_cv_objdir _LT_DECL([], [objdir], [0], [The name of the directory that contains temporary libtool files])dnl m4_pattern_allow([LT_OBJDIR])dnl AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", [Define to the sub-directory in which libtool stores uninstalled libraries.]) ])# _LT_CHECK_OBJDIR # _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) # -------------------------------------- # Check hardcoding attributes. m4_defun([_LT_LINKER_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_TAGVAR(hardcode_action, $1)= if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || test -n "$_LT_TAGVAR(runpath_var, $1)" || test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then # We can hardcode non-existent directories. if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then # Linking always hardcodes the temporary library directory. _LT_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi _LT_TAGDECL([], [hardcode_action], [0], [How to hardcode a shared library path into an executable]) ])# _LT_LINKER_HARDCODE_LIBPATH # _LT_CMD_STRIPLIB # ---------------- m4_defun([_LT_CMD_STRIPLIB], [m4_require([_LT_DECL_EGREP]) striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [striplib], [1]) ])# _LT_CMD_STRIPLIB # _LT_SYS_DYNAMIC_LINKER([TAG]) # ----------------------------- # PORTME Fill in your ld.so characteristics m4_defun([_LT_SYS_DYNAMIC_LINKER], [AC_REQUIRE([AC_CANONICAL_HOST])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` else lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[[lt_foo]]++; } if (lt_freq[[lt_foo]] == 1) { print lt_foo; } }'` sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi]) library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[[4-9]]*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[[01]] | aix4.[[01]].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[[45]]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[[123]]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[[01]]* | freebsdelf3.[[01]]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix[[3-9]]*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], [shlibpath_overrides_runpath=yes])]) LDFLAGS=$save_LDFLAGS libdir=$save_libdir # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[[89]] | openbsd2.[[89]].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac AC_MSG_RESULT([$dynamic_linker]) test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi _LT_DECL([], [variables_saved_for_relink], [1], [Variables whose values should be saved in libtool wrapper scripts and restored at link time]) _LT_DECL([], [need_lib_prefix], [0], [Do we need the "lib" prefix for modules?]) _LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) _LT_DECL([], [version_type], [0], [Library versioning type]) _LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) _LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) _LT_DECL([], [shlibpath_overrides_runpath], [0], [Is shlibpath searched before the hard-coded library search path?]) _LT_DECL([], [libname_spec], [1], [Format of library name prefix]) _LT_DECL([], [library_names_spec], [1], [[List of archive names. First name is the real one, the rest are links. The last name is the one that the linker finds with -lNAME]]) _LT_DECL([], [soname_spec], [1], [[The coded name of the library, if different from the real name]]) _LT_DECL([], [postinstall_cmds], [2], [Command to use after installation of a shared archive]) _LT_DECL([], [postuninstall_cmds], [2], [Command to use after uninstallation of a shared archive]) _LT_DECL([], [finish_cmds], [2], [Commands used to finish a libtool library installation in a directory]) _LT_DECL([], [finish_eval], [1], [[As "finish_cmds", except a single script fragment to be evaled but not shown]]) _LT_DECL([], [hardcode_into_libs], [0], [Whether we should hardcode library paths into libraries]) _LT_DECL([], [sys_lib_search_path_spec], [2], [Compile-time system search path for libraries]) _LT_DECL([], [sys_lib_dlsearch_path_spec], [2], [Run-time system search path for libraries]) ])# _LT_SYS_DYNAMIC_LINKER # _LT_PATH_TOOL_PREFIX(TOOL) # -------------------------- # find a file program which can recognize shared library AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl AC_MSG_CHECKING([for $1]) AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, [case $MAGIC_CMD in [[\\/*] | ?:[\\/]*]) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR dnl $ac_dummy forces splitting on constant user-supplied paths. dnl POSIX.2 word splitting is done only on the output of word expansions, dnl not every word. This closes a longstanding sh security hole. ac_dummy="m4_if([$2], , $PATH, [$2])" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$1; then lt_cv_path_MAGIC_CMD="$ac_dir/$1" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac]) MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then AC_MSG_RESULT($MAGIC_CMD) else AC_MSG_RESULT(no) fi _LT_DECL([], [MAGIC_CMD], [0], [Used to examine libraries when file_magic_cmd begins with "file"])dnl ])# _LT_PATH_TOOL_PREFIX # Old name: AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) # _LT_PATH_MAGIC # -------------- # find a file program which can recognize a shared library m4_defun([_LT_PATH_MAGIC], [_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# _LT_PATH_MAGIC # LT_PATH_LD # ---------- # find the pathname to the GNU or non-GNU linker AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld @<:@default=no@:>@])], [test "$withval" = no || with_gnu_ld=yes], [with_gnu_ld=no])dnl ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by $CC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(lt_cv_path_LD, [if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'] lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[[3-9]]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux* | k*bsd*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac ]) file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1], [Command to use when deplibs_check_method == "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD # LT_PATH_NM # ---------- # find the pathname to a BSD- or MS-compatible name lister AC_DEFUN([LT_PATH_NM], [AC_REQUIRE([AC_PROG_CC])dnl AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, [if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi]) if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :) AC_SUBST([DUMPBIN]) if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm AC_SUBST([NM]) _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], [lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD) cat conftest.out >&AS_MESSAGE_LOG_FD if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest*]) ])# LT_PATH_NM # Old names: AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], []) # LT_LIB_M # -------- # check for math library AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") ;; *) AC_CHECK_LIB(m, cos, LIBM="-lm") ;; esac AC_SUBST([LIBM]) ])# LT_LIB_M # Old name: AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_CHECK_LIBM], []) # _LT_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------- m4_defun([_LT_COMPILER_NO_RTTI], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], [Compiler flag to turn off builtin functions]) ])# _LT_COMPILER_NO_RTTI # _LT_CMD_GLOBAL_SYMBOLS # ---------------------- m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_NM])dnl AC_REQUIRE([LT_PATH_LD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_TAG_COMPILER])dnl # Check for command to grab the raw symbol name followed by C symbol from nm. AC_MSG_CHECKING([command to parse $NM output from $compiler object]) AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [ # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[[BCDEGRST]]' # Regexp to match symbols that can be accessed directly from C. sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[[ABCDGISTW]]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[[ABCDEGRST]]' fi ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; osf*) symcode='[[BCDEGQRST]]' ;; solaris*) symcode='[[BDRT]]' ;; sco3.2v5*) symcode='[[DT]]' ;; sysv4.2uw2*) symcode='[[DT]]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[[ABDT]]' ;; sysv4) symcode='[[DFNSTU]]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[[ABCDGIRSTW]]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx]" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ const struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[[]] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi else echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done ]) if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then AC_MSG_RESULT(failed) else AC_MSG_RESULT(ok) fi _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], [Transform the output of nm in a proper C declaration]) _LT_DECL([global_symbol_to_c_name_address], [lt_cv_sys_global_symbol_to_c_name_address], [1], [Transform the output of nm in a C name address pair]) _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) ]) # _LT_CMD_GLOBAL_SYMBOLS # _LT_COMPILER_PIC([TAGNAME]) # --------------------------- m4_defun([_LT_COMPILER_PIC], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_wl, $1)= _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)= AC_MSG_CHECKING([for $compiler option to produce PIC]) m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix[[4-9]]*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; dgux*) case $cc_basename in ec++*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64 which still supported -KPIC. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xlc* | xlC*) # IBM XL 8.0 on PPC _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd* | netbsdelf*-gnu) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx*) # Digital/Compaq C++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc*) # Lucid _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; hpux9* | hpux10* | hpux11*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; linux* | k*bsd*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # Lahey Fortran 8.1. lf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; ccc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xl*) # IBM XL C 8.0/Fortran 10.1 on PPC _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; *Sun\ F*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; esac ;; esac ;; newsos6) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; rdos*) _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; solaris*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in f77* | f90* | f95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; esac ;; sunos4*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; unicos*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; uts4*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], [How to pass a linker flag through the compiler]) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects]) # # Check to make sure the static flag actually works. # wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), $lt_tmp_static_flag, [], [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], [Compiler flag to prevent dynamic linking]) ])# _LT_COMPILER_PIC # _LT_LINKER_SHLIBS([TAGNAME]) # ---------------------------- # See if the linker supports building shared libraries. m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix[[4-9]]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" ;; cygwin* | mingw* | cegcc*) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' ;; linux* | k*bsd*-gnu) _LT_TAGVAR(link_all_deplibs, $1)=no ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_cmds, $1)= _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(old_archive_from_new_cmds, $1)= _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_TAGVAR(thread_safe_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_TAGVAR(include_expsyms, $1)= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. dnl Note also adjust exclude_expsyms for C++ above. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; linux* | k*bsd*-gnu) _LT_TAGVAR(link_all_deplibs, $1)=no ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[[3-9]]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag= tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; xl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; sunos4*) _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then runpath_var= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. _LT_TAGVAR(hardcode_minus_L, $1)=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_TAGVAR(hardcode_direct, $1)=unsupported fi ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi _LT_TAGVAR(link_all_deplibs, $1)=no else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; bsdi[[45]]*) _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; freebsd1*) _LT_TAGVAR(ld_shlibs, $1)=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; hpux9*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" AC_LINK_IFELSE(int foo(void) {}, _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' ) LDFLAGS="$save_LDFLAGS" else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes _LT_TAGVAR(link_all_deplibs, $1)=yes ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' else case $host_os in openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ;; esac fi else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; solaris*) _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' fi ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(ld_shlibs, $1)=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' ;; esac fi fi ]) AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld _LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl _LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl _LT_DECL([], [extract_expsyms_cmds], [2], [The commands to extract the exported symbol list from a shared archive]) # # Do we need to explicitly link libc? # case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_TAGVAR(archive_cmds_need_lc, $1)=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $_LT_TAGVAR(archive_cmds, $1) in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. AC_MSG_CHECKING([whether -lc should be explicitly linked in]) $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if AC_TRY_EVAL(ac_compile) 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) _LT_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) then _LT_TAGVAR(archive_cmds_need_lc, $1)=no else _LT_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)]) ;; esac fi ;; esac _LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], [Whether or not to add -lc for building shared libraries]) _LT_TAGDECL([allow_libtool_libs_with_static_runtimes], [enable_shared_with_static_runtimes], [0], [Whether or not to disallow shared libs when runtime libs are static]) _LT_TAGDECL([], [export_dynamic_flag_spec], [1], [Compiler flag to allow reflexive dlopens]) _LT_TAGDECL([], [whole_archive_flag_spec], [1], [Compiler flag to generate shared objects directly from archives]) _LT_TAGDECL([], [compiler_needs_object], [1], [Whether the compiler copes with passing no objects directly]) _LT_TAGDECL([], [old_archive_from_new_cmds], [2], [Create an old-style archive from a shared archive]) _LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], [Create a temporary old-style archive to link instead of a shared archive]) _LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) _LT_TAGDECL([], [archive_expsym_cmds], [2]) _LT_TAGDECL([], [module_cmds], [2], [Commands used to build a loadable module if different from building a shared archive.]) _LT_TAGDECL([], [module_expsym_cmds], [2]) _LT_TAGDECL([], [with_gnu_ld], [1], [Whether we are building with GNU ld or not]) _LT_TAGDECL([], [allow_undefined_flag], [1], [Flag that allows shared libraries with undefined symbols to be built]) _LT_TAGDECL([], [no_undefined_flag], [1], [Flag that enforces no undefined symbols]) _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], [Flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]) _LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1], [[If ld is used when linking, flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]]) _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_direct_absolute], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary and the resulting library dependency is "absolute", i.e impossible to change by setting ${shlibpath_var} if the library is relocated]) _LT_TAGDECL([], [hardcode_minus_L], [0], [Set to "yes" if using the -LDIR flag during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_shlibpath_var], [0], [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_automatic], [0], [Set to "yes" if building a shared library automatically hardcodes DIR into the library and all subsequent libraries and executables linked against it]) _LT_TAGDECL([], [inherit_rpath], [0], [Set to yes if linker adds runtime paths of dependent libraries to runtime path list]) _LT_TAGDECL([], [link_all_deplibs], [0], [Whether libtool must link a program against all its dependency libraries]) _LT_TAGDECL([], [fix_srcfile_path], [1], [Fix the shell variable $srcfile for the compiler]) _LT_TAGDECL([], [always_export_symbols], [0], [Set to "yes" if exported symbols are required]) _LT_TAGDECL([], [export_symbols_cmds], [2], [The commands to list exported symbols]) _LT_TAGDECL([], [exclude_expsyms], [1], [Symbols that should not be listed in the preloaded symbols]) _LT_TAGDECL([], [include_expsyms], [1], [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates]) _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], dnl [Compiler flag to generate thread safe objects]) ])# _LT_LINKER_SHLIBS # _LT_LANG_C_CONFIG([TAG]) # ------------------------ # Ensure that the configuration variables for a C compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_C_CONFIG], [m4_require([_LT_DECL_EGREP])dnl lt_save_CC="$CC" AC_LANG_PUSH(C) # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' _LT_TAG_COMPILER # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) LT_SYS_DLOPEN_SELF _LT_CMD_STRIPLIB # Report which library types will actually be built AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_CONFIG($1) fi AC_LANG_POP CC="$lt_save_CC" ])# _LT_LANG_C_CONFIG # _LT_PROG_CXX # ------------ # Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++ # compiler, we have our own version here. m4_defun([_LT_PROG_CXX], [ pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes]) AC_PROG_CXX if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then AC_PROG_CXXCPP else _lt_caught_CXX_error=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_CXX dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_CXX], []) # _LT_LANG_CXX_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_CXX_CONFIG], [AC_REQUIRE([_LT_PROG_CXX])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_caught_CXX_error" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration LT_PATH_LD # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) _LT_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GXX" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty # executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared # libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd[[12]]*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_TAGVAR(ld_shlibs, $1)=yes ;; gnu*) ;; hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) ;; *) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes ;; linux* | k*bsd*-gnu) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*) _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 will use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; xl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) _LT_TAGVAR(ld_shlibs, $1)=yes ;; openbsd2*) # C++ shared libraries are fairly broken _LT_TAGVAR(ld_shlibs, $1)=no ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd=echo else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; cxx*) case $host in osf3*) _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; esac _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(GCC, $1)="$GXX" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test "$_lt_caught_CXX_error" != yes AC_LANG_POP ])# _LT_LANG_CXX_CONFIG # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose # compiler output when linking a shared library. # Parse the compiler output and extract the necessary # objects, libraries and library flags. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= _LT_TAGVAR(predeps, $1)= _LT_TAGVAR(postdeps, $1)= _LT_TAGVAR(compiler_lib_search_path, $1)= dnl we can't use the lt_simple_compile_test_code here, dnl because it contains code intended for an executable, dnl not a library. It's possible we should let each dnl tag define a new lt_????_link_test_code variable, dnl but it's only used here... m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF int a; void foo (void) { a = 0; } _LT_EOF ], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF ], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer*4 a a=0 return end _LT_EOF ], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer a a=0 return end _LT_EOF ], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF public class foo { private int a; public void bar (void) { a = 0; } }; _LT_EOF ]) dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case $p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" || test $p = "-R"; then prev=$p continue else prev= fi if test "$pre_test_object_deps_done" = no; then case $p in -L* | -R*) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" else _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$_LT_TAGVAR(postdeps, $1)"; then _LT_TAGVAR(postdeps, $1)="${prev}${p}" else _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" fi fi ;; *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$_LT_TAGVAR(predep_objects, $1)"; then _LT_TAGVAR(predep_objects, $1)="$p" else _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" fi else if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then _LT_TAGVAR(postdep_objects, $1)="$p" else _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling $1 test program" fi $RM -f confest.$objext # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], [case $host_os in interix[[3-9]]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. _LT_TAGVAR(predep_objects,$1)= _LT_TAGVAR(postdep_objects,$1)= _LT_TAGVAR(postdeps,$1)= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; esac ]) case " $_LT_TAGVAR(postdeps, $1) " in *" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; esac _LT_TAGVAR(compiler_lib_search_dirs, $1)= if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi _LT_TAGDECL([], [compiler_lib_search_dirs], [1], [The directories searched by this compiler when creating a shared library]) _LT_TAGDECL([], [predep_objects], [1], [Dependencies to place before and after the objects being linked to create a shared library]) _LT_TAGDECL([], [postdep_objects], [1]) _LT_TAGDECL([], [predeps], [1]) _LT_TAGDECL([], [postdeps], [1]) _LT_TAGDECL([], [compiler_lib_search_path], [1], [The library search path used internally by the compiler when linking a shared library]) ])# _LT_SYS_HIDDEN_LIBDEPS # _LT_PROG_F77 # ------------ # Since AC_PROG_F77 is broken, in that it returns the empty string # if there is no fortran compiler, we have our own version here. m4_defun([_LT_PROG_F77], [ pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes]) AC_PROG_F77 if test -z "$F77" || test "X$F77" = "Xno"; then _lt_disable_F77=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_F77 dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_F77], []) # _LT_LANG_F77_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_F77_CONFIG], [AC_REQUIRE([_LT_PROG_F77])dnl AC_LANG_PUSH(Fortran 77) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the F77 compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_F77" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC CC=${F77-"f77"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) GCC=$G77 if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$G77" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" fi # test "$_lt_disable_F77" != yes AC_LANG_POP ])# _LT_LANG_F77_CONFIG # _LT_PROG_FC # ----------- # Since AC_PROG_FC is broken, in that it returns the empty string # if there is no fortran compiler, we have our own version here. m4_defun([_LT_PROG_FC], [ pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes]) AC_PROG_FC if test -z "$FC" || test "X$FC" = "Xno"; then _lt_disable_FC=yes fi popdef([AC_MSG_ERROR]) ])# _LT_PROG_FC dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([_LT_PROG_FC], []) # _LT_LANG_FC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_FC_CONFIG], [AC_REQUIRE([_LT_PROG_FC])dnl AC_LANG_PUSH(Fortran) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for fc test sources. ac_ext=${ac_fc_srcext-f} # Object file extension for compiled fc test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the FC compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_FC" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC CC=${FC-"f95"} compiler=$CC GCC=$ac_cv_fc_compiler_gnu _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" fi # test "$_lt_disable_FC" != yes AC_LANG_POP ])# _LT_LANG_FC_CONFIG # _LT_LANG_GCJ_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Java Compiler compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_GCJ_CONFIG], [AC_REQUIRE([LT_PROG_GCJ])dnl AC_LANG_SAVE # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" _LT_CC_BASENAME([$compiler]) # GCJ did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC="$lt_save_CC" ])# _LT_LANG_GCJ_CONFIG # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_RC_CONFIG], [AC_REQUIRE([LT_PROG_RC])dnl AC_LANG_SAVE # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' # Code to be used in simple link tests lt_simple_link_test_code="$lt_simple_compile_test_code" # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC GCC= CC=${RC-"windres"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes if test -n "$compiler"; then : _LT_CONFIG($1) fi GCC=$lt_save_GCC AC_LANG_RESTORE CC="$lt_save_CC" ])# _LT_LANG_RC_CONFIG # LT_PROG_GCJ # ----------- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj,) test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS)])])[]dnl ]) # Old name: AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) ]) # Old name: AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_RC], []) # _LT_DECL_EGREP # -------------- # If we don't have a new enough Autoconf to choose the best grep # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_EGREP], [AC_REQUIRE([AC_PROG_EGREP])dnl AC_REQUIRE([AC_PROG_FGREP])dnl test -z "$GREP" && GREP=grep _LT_DECL([], [GREP], [1], [A grep program that handles long lines]) _LT_DECL([], [EGREP], [1], [An ERE matcher]) _LT_DECL([], [FGREP], [1], [A literal string matcher]) dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too AC_SUBST([GREP]) ]) # _LT_DECL_OBJDUMP # -------------- # If we don't have a new enough Autoconf to choose the best objdump # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_OBJDUMP], [AC_CHECK_TOOL(OBJDUMP, objdump, false) test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) AC_SUBST([OBJDUMP]) ]) # _LT_DECL_SED # ------------ # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. m4_defun([_LT_DECL_SED], [AC_PROG_SED test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" _LT_DECL([], [SED], [1], [A sed program that does not truncate output]) _LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], [Sed that helps us avoid accidentally triggering echo(1) options like -n]) ])# _LT_DECL_SED m4_ifndef([AC_PROG_SED], [ ############################################################ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_SED. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # ############################################################ m4_defun([AC_PROG_SED], [AC_MSG_CHECKING([for a sed that does not truncate output]) AC_CACHE_VAL(lt_cv_path_SED, [# Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done IFS=$as_save_IFS lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done ]) SED=$lt_cv_path_SED AC_SUBST([SED]) AC_MSG_RESULT([$SED]) ])#AC_PROG_SED ])#m4_ifndef # Old name: AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_SED], []) # _LT_CHECK_SHELL_FEATURES # ------------------------ # Find out whether the shell is Bourne or XSI compatible, # or has some other useful features. m4_defun([_LT_CHECK_SHELL_FEATURES], [AC_MSG_CHECKING([whether the shell understands some XSI constructs]) # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes AC_MSG_RESULT([$xsi_shell]) _LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) AC_MSG_CHECKING([whether the shell understands "+="]) lt_shell_append=no ( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes AC_MSG_RESULT([$lt_shell_append]) _LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi _LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac _LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ])# _LT_CHECK_SHELL_FEATURES # _LT_PROG_XSI_SHELLFNS # --------------------- # Bourne and XSI compatible variants of some useful shell functions. m4_defun([_LT_PROG_XSI_SHELLFNS], [case $xsi_shell in yes) cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac } # func_basename file func_basename () { func_basename_result="${1##*/}" } # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}" } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). func_stripname () { # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"} } # func_opt_split func_opt_split () { func_opt_split_opt=${1%%=*} func_opt_split_arg=${1#*=} } # func_lo2o object func_lo2o () { case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac } # func_xform libobj-or-source func_xform () { func_xform_result=${1%.*}.lo } # func_arith arithmetic-term... func_arith () { func_arith_result=$(( $[*] )) } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=${#1} } _LT_EOF ;; *) # Bourne compatible functions. cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_basename file func_basename () { func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } dnl func_dirname_and_basename dnl A portable version of this function is already defined in general.m4sh dnl so there is no need for it here. # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; esac } # sed scripts: my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q' my_sed_long_arg='1s/^-[[^=]]*=//' # func_opt_split func_opt_split () { func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` } # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` } # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'` } # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "$[@]"` } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len` } _LT_EOF esac case $lt_shell_append in yes) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$[1]+=\$[2]" } _LT_EOF ;; *) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$[1]=\$$[1]\$[2]" } _LT_EOF ;; esac ]) XQilla-2.3.0/autotools/m4/ltversion.m40000644000151400015140000000127511636377670014510 00000000000000# ltversion.m4 -- version numbers -*- Autoconf -*- # # Copyright (C) 2004 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # Generated from ltversion.in. # serial 3012 ltversion.m4 # This file is part of GNU Libtool m4_define([LT_PACKAGE_VERSION], [2.2.6]) m4_define([LT_PACKAGE_REVISION], [1.3012]) AC_DEFUN([LTVERSION_VERSION], [macro_version='2.2.6' macro_revision='1.3012' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) XQilla-2.3.0/autotools/m4/ltoptions.m40000644000151400015140000002724211571227110014475 00000000000000# Helper functions for option handling. -*- Autoconf -*- # # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) # ------------------------------------------ m4_define([_LT_MANGLE_OPTION], [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) # --------------------------------------- # Set option OPTION-NAME for macro MACRO-NAME, and if there is a # matching handler defined, dispatch to it. Other OPTION-NAMEs are # saved as a flag. m4_define([_LT_SET_OPTION], [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), _LT_MANGLE_DEFUN([$1], [$2]), [m4_warning([Unknown $1 option `$2'])])[]dnl ]) # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) # ------------------------------------------------------------ # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. m4_define([_LT_IF_OPTION], [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) # ------------------------------------------------------- # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME # are set. m4_define([_LT_UNLESS_OPTIONS], [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), [m4_define([$0_found])])])[]dnl m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 ])[]dnl ]) # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) # ---------------------------------------- # OPTION-LIST is a space-separated list of Libtool options associated # with MACRO-NAME. If any OPTION has a matching handler declared with # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about # the unknown option and exit. m4_defun([_LT_SET_OPTIONS], [# Set options m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [_LT_SET_OPTION([$1], _LT_Option)]) m4_if([$1],[LT_INIT],[ dnl dnl Simply set some default values (i.e off) if boolean options were not dnl specified: _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no ]) _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no ]) dnl dnl If no reference was made to various pairs of opposing options, then dnl we run the default mode handler for the pair. For example, if neither dnl `shared' nor `disable-shared' was passed, we enable building of shared dnl archives by default: _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], [_LT_ENABLE_FAST_INSTALL]) ]) ])# _LT_SET_OPTIONS ## --------------------------------- ## ## Macros to handle LT_INIT options. ## ## --------------------------------- ## # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) # ----------------------------------------- m4_define([_LT_MANGLE_DEFUN], [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) # ----------------------------------------------- m4_define([LT_OPTION_DEFINE], [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl ])# LT_OPTION_DEFINE # dlopen # ------ LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes ]) AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `dlopen' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) # win32-dll # --------- # Declare package support for building win32 dll's. LT_OPTION_DEFINE([LT_INIT], [win32-dll], [enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; esac test -z "$AS" && AS=as _LT_DECL([], [AS], [0], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl _LT_SET_OPTION([LT_INIT], [win32-dll]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `win32-dll' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) # _LT_ENABLE_SHARED([DEFAULT]) # ---------------------------- # implement the --enable-shared flag, and supports the `shared' and # `disable-shared' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_SHARED], [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([shared], [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) _LT_DECL([build_libtool_libs], [enable_shared], [0], [Whether or not to build shared libraries]) ])# _LT_ENABLE_SHARED LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) # Old names: AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) ]) AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) ]) AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_SHARED], []) dnl AC_DEFUN([AM_DISABLE_SHARED], []) # _LT_ENABLE_STATIC([DEFAULT]) # ---------------------------- # implement the --enable-static flag, and support the `static' and # `disable-static' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_STATIC], [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([static], [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_static=]_LT_ENABLE_STATIC_DEFAULT) _LT_DECL([build_old_libs], [enable_static], [0], [Whether or not to build static libraries]) ])# _LT_ENABLE_STATIC LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) # Old names: AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) ]) AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) ]) AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_STATIC], []) dnl AC_DEFUN([AM_DISABLE_STATIC], []) # _LT_ENABLE_FAST_INSTALL([DEFAULT]) # ---------------------------------- # implement the --enable-fast-install flag, and support the `fast-install' # and `disable-fast-install' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_FAST_INSTALL], [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([fast-install], [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) _LT_DECL([fast_install], [enable_fast_install], [0], [Whether or not to optimize for fast installation])dnl ])# _LT_ENABLE_FAST_INSTALL LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) # Old names: AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `fast-install' option into LT_INIT's first parameter.]) ]) AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `disable-fast-install' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # _LT_WITH_PIC([MODE]) # -------------------- # implement the --with-pic flag, and support the `pic-only' and `no-pic' # LT_INIT options. # MODE is either `yes' or `no'. If omitted, it defaults to `both'. m4_define([_LT_WITH_PIC], [AC_ARG_WITH([pic], [AS_HELP_STRING([--with-pic], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [pic_mode="$withval"], [pic_mode=default]) test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl ])# _LT_WITH_PIC LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) # Old name: AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `pic-only' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) ## ----------------- ## ## LTDL_INIT Options ## ## ----------------- ## m4_define([_LTDL_MODE], []) LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], [m4_define([_LTDL_MODE], [nonrecursive])]) LT_OPTION_DEFINE([LTDL_INIT], [recursive], [m4_define([_LTDL_MODE], [recursive])]) LT_OPTION_DEFINE([LTDL_INIT], [subproject], [m4_define([_LTDL_MODE], [subproject])]) m4_define([_LTDL_TYPE], []) LT_OPTION_DEFINE([LTDL_INIT], [installable], [m4_define([_LTDL_TYPE], [installable])]) LT_OPTION_DEFINE([LTDL_INIT], [convenience], [m4_define([_LTDL_TYPE], [convenience])]) XQilla-2.3.0/TODO0000644000151400015140000000337611636377670010344 00000000000000Features -------- Complete XQuery Fulltext support XQueryP support XQuery 1.1 Grouping support Complete XSLT 2.0 support Support pre-parsed modules Improve exceptions heirachy, and implement XQuery 1.1 try/catch Implement EXSLT math functions Optimization ------------ Hash map implementation of distinct-values() nested loop elimination (group recognition, join recognition) common sub-expression extraction faster modifiable data model Document projection for recursive functions pull event execution Remove and free unused global variables Better static typing esp. for higher order functions Infrastructure -------------- query plan output using event API string pool that returns numeric identifier support for UTF-8 execution? extract basic schema types from Xerces-C abstract schema type access (no direct access to Xerces objects) Improve MAPM concurrency Windows -- re-enable warning 4996 (xqilla_config.h) and address the "unsafe" warnings for use of strcat, strcpy, etc Write query plans to byte code, and execute the byte code in a virtual machine Save out parsed query to disk QA -- fix UTF-16 bugs fix XQTS bugs new test suite test XQuery Fulltext Fix ATDoubleOrDerivedImpl and ATFloatOrDerivedImpl to use double and float types Make xs:decimal infinite length Fix numeric output methods to use variable size buffers Fix module import to work correctly, including: - using the correct static context - returning known schema types - checking import circularities correctly Query Prepare Optimization -------------------------- Rewrite DatatypeLookup to be cheaper and more efficient - maybe write our own primitive type handling? DocumentCacheImpl is expensive to create, maybe don't always create a scanner? Maybe handle primitive schema types ourselves? XQilla-2.3.0/configure.in0000644000151400015140000002736611636377670012172 00000000000000# -*- Autoconf -*- # Process this file with autoconf to produce a configure script. AC_PREREQ(2.59) AC_INIT([XQilla],[2.3.0],[]) AC_CONFIG_AUX_DIR(autotools) AC_CANONICAL_TARGET([]) AM_INIT_AUTOMAKE(XQilla, 2.3.0,) AC_CONFIG_SRCDIR([src/runtime/Result.cpp]) AC_CONFIG_HEADERS([src/config/xqilla_config_unix.h]) AC_CONFIG_MACRO_DIR([autotools/m4]) # Turn off rebuilding of configure, Makefile.in etc. by default AM_MAINTAINER_MODE # Check debug option AC_MSG_CHECKING(if --enable-debug option specified) AC_ARG_ENABLE(debug, [AS_HELP_STRING(--enable-debug,Build a debugging version.)], [xqilla_cv_debug="$enable_debug"], [xqilla_cv_debug="no"]) AC_MSG_RESULT($xqilla_cv_debug) # Check if rpath is disabled AC_MSG_CHECKING(if --enable-rpath option specified) AC_ARG_ENABLE(rpath, [AC_HELP_STRING([--disable-rpath], [Patches libtool to not use rpath in the libraries produced.])], [xqilla_cv_rpath="$enable_rpath"], [xqilla_cv_rpath="yes"]) AC_MSG_RESULT($xqilla_cv_rpath) # Don't override anything if it's already set from the environment. optimize_def="-O" case $host_os in aix4.3.*|aix5*) optimize_def="-O2" CC=${CC-"xlc_r"} CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" LDFLAGS="$LDFLAGS -Wl,-brtl";; bsdi3*) CC=${CC-"shlicc2"} LIBS="$LIBS -lipc";; cygwin*) CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE -D_REENTRANT";; freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" LDFLAGS="$LDFLAGS -pthread";; gnu*|k*bsd*-gnu|linux*) optimize_def="-O2" CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE -D_REENTRANT";; hpux*) CPPFLAGS="$CPPFLAGS -D_REENTRANT";; irix*) optimize_def="-O2" CPPFLAGS="$CPPFLAGS -D_SGI_MP_SOURCE";; mpeix*) CPPFLAGS="$CPPFLAGS -D_POSIX_SOURCE -D_SOCKET_SOURCE" LIBS="$LIBS -lsocket -lsvipc";; osf*) CPPFLAGS="$CPPFLAGS -pthread";; *qnx*) AC_DEFINE(HAVE_QNX) AH_TEMPLATE(HAVE_QNX, [Define to 1 if building on QNX.]);; solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" LIBS="$LIBS -lm";; esac # Set CFLAGS/CXXFLAGS. We MUST set the flags before we call autoconf # compiler configuration macros, because if we don't, they set CFLAGS # to no optimization and -g, which isn't what we want. if test "$xqilla_cv_debug" = "yes"; then AC_DEFINE(DEBUG) AH_TEMPLATE(DEBUG, [Define to 1 if you want a debugging version.]) CFLAGS="$CFLAGS -g" CXXFLAGS="$CXXFLAGS -g" else CFLAGS=${CFLAGS-$optimize_def} CXXFLAGS=${CXXFLAGS-"$CFLAGS"} fi # Check for the Xerces-C library AC_MSG_CHECKING([if --with-xerces=DIR option specified]) AC_ARG_WITH(xerces, [AS_HELP_STRING(--with-xerces=DIR,Path of Xerces. [DIR="/usr/local"])], [with_xerces="$withval"], [with_xerces="no"]) AC_MSG_RESULT($with_xerces) if test "$with_xerces" = "no"; then with_xerces="/usr/local" fi # Find the include directory if test `ls $with_xerces/src/xercesc/util/XercesVersion.hpp 2>/dev/null | wc -l` -gt 0 ; then xerces_include_dir="$with_xerces/src" xerces_include="-I$with_xerces/src" xerces_source_tree="yes" elif test `ls $with_xerces/include/xercesc/util/XercesVersion.hpp 2>/dev/null | wc -l` -gt 0 ; then xerces_include_dir="$with_xerces/include" xerces_include="-I$with_xerces/include" xerces_source_tree="no" elif test `ls $with_xerces/../src/xercesc/util/XercesVersion.hpp 2>/dev/null | wc -l` -gt 0 ; then xerces_include_dir="$with_xerces/../src" xerces_include="-I$with_xerces/../src -I$with_xerces/src" xerces_source_tree="yes" else AC_MSG_ERROR([Unable to find the Xerces-C include directory.]) fi # Work out the Xerces-C version AC_MSG_CHECKING([for Xerces-C version]) xerces_version_major=`grep "^\#define XERCES_VERSION_MAJOR" "$xerces_include_dir"/xercesc/util/XercesVersion.hpp | sed -e 's/^\#define XERCES_VERSION_MAJOR \([0-9]*\)/\1/'` xerces_version_minor=`grep "^\#define XERCES_VERSION_MINOR" "$xerces_include_dir"/xercesc/util/XercesVersion.hpp | sed -e 's/^\#define XERCES_VERSION_MINOR \([0-9]*\)/\1/'` xerces_version=$xerces_version_major"."$xerces_version_minor AC_MSG_RESULT([$xerces_version]) if test "$xerces_version_major" -lt "3" -a "$xerces_source_tree" = "no"; then AC_MSG_ERROR([For Xerces-C versions before 3.0 the source tree is required to build XQilla. You must specify the path to the Xerces-C source tree using --with-xerces.]) fi # Find the library if test `ls $with_xerces/lib/libxerces-c.* 2>/dev/null | wc -l` -gt 0 ; then xerces_lib="$with_xerces/lib" elif test `ls $with_xerces/src/libxerces-c.* 2>/dev/null | wc -l` -gt 0 ; then xerces_lib="$with_xerces/src" else if test "$xerces_source_tree" = "yes" -a "$xerces_version_major" -ge "3"; then xerces_lib="$with_xerces/src" else xerces_lib="$with_xerces/lib" fi AC_MSG_WARN([Unable to find the Xerces-C library. Guessed path is $xerces_lib.]) fi AC_SUBST(xerces_include) AC_SUBST(xerces_include_dir) AC_SUBST(xerces_lib) # The DOM samples only build against Xerces-C 3.0 or newer AM_CONDITIONAL([BUILD_DOM_SAMPLES], [test "$xerces_version_major" -ge "3"]) # Check for the BinInputStream::getContentType() method AH_TEMPLATE(HAVE_GETCONTENTTYPE, [Define to 1 if the Xerces-C library supports the BinInputStream::getContentType() method.]) CPPFLAGS_BKUP="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $xerces_include" AC_LANG_PUSH(C++) AC_TRY_COMPILE([#include ], [XERCES_CPP_NAMESPACE_QUALIFIER BinMemInputStream(0, 0).getContentType();], [ac_found_getcontenttype="yes"], [ac_found_getcontenttype="no"]) AC_LANG_POP(C++) CPPFLAGS="$CPPFLAGS_BKUP" AC_MSG_CHECKING([if the Xerces-C library supports the BinInputStream::getContentType() method]) AC_MSG_RESULT($ac_found_getcontenttype) if test "$ac_found_getcontenttype" = yes then AC_DEFINE(HAVE_GETCONTENTTYPE) else AC_MSG_WARN([XQilla will build with reduced functionality. To change this, either use Xerces-C 3.0 or apply xqilla/src/xercesc_content_type.patch to Xerces-C 2.8.]) fi # Check for the RegularExpression::allMatches() method AH_TEMPLATE(HAVE_ALLMATCHES, [Define to 1 if the Xerces-C library supports the RegularExpression::allMatches() method.]) CPPFLAGS_BKUP="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $xerces_include" AC_LANG_PUSH(C++) AC_TRY_COMPILE([#include], [XERCES_CPP_NAMESPACE_QUALIFIER RegularExpression(".*").allMatches(0, 0, 0, 0);], [ac_found_allmatches="yes"], [ac_found_allmatches="no"]) AC_LANG_POP(C++) CPPFLAGS="$CPPFLAGS_BKUP" AC_MSG_CHECKING([if the Xerces-C library supports the RegularExpression::allMatches() method]) AC_MSG_RESULT($ac_found_allmatches) if test "$ac_found_allmatches" = yes then AC_DEFINE(HAVE_ALLMATCHES) else AC_MSG_WARN([XQilla will build with reduced functionality. To change this, either use Xerces-C 3.0 or apply xqilla/src/xercesc_regex.patch to Xerces-C 2.8.]) fi # Check if the FAXPP library is present AH_TEMPLATE(HAVE_FAXPP, [Define to 1 if the FAXPP library is present.]) AC_MSG_CHECKING([if --with-faxpp=DIR option specified]) AC_ARG_WITH(faxpp, [AS_HELP_STRING(--with-faxpp=DIR,Path of FAXPP. [DIR="/usr/local"])], [with_faxpp="$withval"], [with_faxpp="/usr/local"]) AC_MSG_RESULT($with_faxpp) if test "$with_faxpp" != "no"; then AC_MSG_CHECKING([if the FAXPP library is present]) if test `ls $with_faxpp/lib/libfaxpp.* 2>/dev/null | wc -l` -gt 0 ; then AC_MSG_RESULT([yes]) AC_DEFINE(HAVE_FAXPP) faxpp_lib="-L$with_faxpp/lib -R$with_faxpp/lib" faxpp_library="-lfaxpp" faxpp_include="-I$with_faxpp/include" elif test `ls $with_faxpp/libfaxpp.* 2>/dev/null | wc -l` -gt 0 ; then if test `ls $with_faxpp/include/faxpp/parser.h 2>/dev/null | wc -l` -gt 0 ; then AC_MSG_RESULT([yes]) AC_DEFINE(HAVE_FAXPP) faxpp_lib="-L$with_faxpp -R$with_faxpp" faxpp_library="-lfaxpp" faxpp_include="-I$with_faxpp/include" elif test `ls $with_faxpp/../include/faxpp/parser.h 2>/dev/null | wc -l` -gt 0 ; then AC_MSG_RESULT([yes]) AC_DEFINE(HAVE_FAXPP) faxpp_lib="-L$with_faxpp -R$with_faxpp" faxpp_library="-lfaxpp" faxpp_include="-I$with_faxpp/../include" fi else AC_MSG_RESULT([no]) faxpp_lib="" faxpp_library="" faxpp_include="" fi fi AC_SUBST(faxpp_include) AC_SUBST(faxpp_lib) AC_SUBST(faxpp_library) # Check if the HTML Tidy library is present AH_TEMPLATE(HAVE_LIBTIDY, [Define to 1 if the HTML Tidy library is present.]) AC_MSG_CHECKING([if --with-tidy=DIR option specified]) AC_ARG_WITH(tidy, [AS_HELP_STRING(--with-tidy=DIR,Path of the HTML Tidy library. [DIR="/usr"])], [with_tidy="$withval"], [with_tidy="/usr"]) AC_MSG_RESULT($with_tidy) if test "$with_tidy" != "no"; then AC_MSG_CHECKING([if the HTML Tidy library is present]) if test `ls $with_tidy/lib/libtidy.* 2>/dev/null | wc -l` -gt 0 ; then if test `ls $with_tidy/include/tidy/tidy.h 2>/dev/null | wc -l` -gt 0 ; then AC_MSG_RESULT([yes]) AC_DEFINE(HAVE_LIBTIDY) tidy_lib="-L$with_tidy/lib -R$with_tidy/lib" tidy_library="-ltidy" tidy_include="-I$with_tidy/include/tidy" elif test `ls $with_tidy/include/tidy.h 2>/dev/null | wc -l` -gt 0 ; then AC_MSG_RESULT([yes]) AC_DEFINE(HAVE_LIBTIDY) tidy_lib="-L$with_tidy/lib -R$with_tidy/lib" tidy_library="-ltidy" tidy_include="-I$with_tidy/include" else AC_MSG_RESULT([no]) tidy_lib="" tidy_library="" tidy_include="" fi else AC_MSG_RESULT([no]) tidy_lib="" tidy_library="" tidy_include="" fi fi AC_SUBST(tidy_include) AC_SUBST(tidy_lib) AC_SUBST(tidy_library) # Checks for programs. AC_PROG_CXX AC_PROG_CC AC_PROG_LIBTOOL AC_PROG_CPP AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_MAKE_SET AC_CHECK_PROGS(YACC, 'bison -y', [${am_missing_run} bison]) if test "$YACC" != "bison -y"; then AC_MSG_WARN([XQilla requires bison if you need to rebuild the parser.]) fi AM_PROG_LEX # Check for unicode support in flex AC_MSG_CHECKING([unicode support in flex]) flex --help | grep "\-U" > /dev/null if test "$?" -eq "0"; then AC_MSG_RESULT([found]) else AC_MSG_RESULT([not found]) AC_MSG_WARN([XQilla requires a version of flex supporting the -U (16-bit unicode) flag if you need to rebuild the lexer.]) fi # Set up extra compiler flags for GCC if test "$GXX" = "yes"; then if test "$xqilla_cv_debug" = "yes"; then CXXFLAGS="$CXXFLAGS -Wall -ftemplate-depth-50 ${targetoptions}" CFLAGS="$CFLAGS -Wall ${targetoptions}" else CXXFLAGS="$CXXFLAGS -ftemplate-depth-50 ${targetoptions}" CFLAGS="$CFLAGS ${targetoptions}" fi fi # Patch libtool to not use rpath if required if test "$xqilla_cv_rpath" = "no"; then AC_MSG_RESULT([Patching libtool to not use rpath.]) sed < libtool > libtool-2 \ 's/^hardcode_libdir_flag_spec.*$'/'hardcode_libdir_flag_spec=" -D__LIBTOOL_NO_RPATH__ "/' mv libtool-2 libtool chmod 755 libtool fi # Checks for libraries. AC_CHECK_LIB(pthread,pthread_create) AC_CHECK_LIB(socket,connect) AC_CHECK_LIB(nsl,gethostbyname) # Checks for header files. AC_FUNC_ALLOCA AC_HEADER_STDC AC_CHECK_HEADERS([limits.h malloc.h stddef.h stdlib.h string.h sys/time.h sys/timeb.h wchar.h]) # Checks for typedefs, structures, and compiler characteristics. AC_HEADER_STDBOOL AC_C_CONST AC_C_INLINE AC_TYPE_SIZE_T AC_HEADER_TIME AC_STRUCT_TM AC_CHECK_TYPES([ptrdiff_t]) # Checks for library functions. AC_FUNC_ERROR_AT_LINE AC_FUNC_MKTIME AC_CHECK_FUNCS([floor ftime gettimeofday memmove memset pow sqrt strchr strstr tzset localtime_r]) AC_CONFIG_FILES([Makefile include/Makefile]) AC_OUTPUT XQilla-2.3.0/LICENSE0000644000151400015140000002641311571227110010633 00000000000000In addition to the Apache Licence v2, code contained in the src/mapm and src/yajl directories is licenced under the terms specified by documentation in those directories. Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. XQilla-2.3.0/aclocal.m40000644000151400015140000011047211653565547011511 00000000000000# generated automatically by aclocal 1.11.1 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],, [m4_warning([this file was generated for autoconf 2.67. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.11' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.11.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.11.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 9 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 10 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "GCJ", or "OBJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], UPC, [depcc="$UPC" am_compiler_list=], [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, [ --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. #serial 5 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each `.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2008, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 16 # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.62])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES(OBJC)], [define([AC_PROG_OBJC], defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl dnl The `parallel-tests' driver may need to know about EXEEXT, so add the dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_PROG_LEX # ----------- # Autoconf leaves LEX=: if lex or flex can't be found. Change that to a # "missing" invocation, for better error output. AC_DEFUN([AM_PROG_LEX], [AC_PREREQ(2.50)dnl AC_REQUIRE([AM_MISSING_HAS_RUN])dnl AC_REQUIRE([AC_PROG_LEX])dnl if test "$LEX" = :; then LEX=${am_missing_run}flex fi]) # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering # Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_MAINTAINER_MODE([DEFAULT-MODE]) # ---------------------------------- # Control maintainer-specific portions of Makefiles. # Default is to disable them, unless `enable' is passed literally. # For symmetry, `disable' may be passed as well. Anyway, the user # can override the default with the --enable/--disable switch. AC_DEFUN([AM_MAINTAINER_MODE], [m4_case(m4_default([$1], [disable]), [enable], [m4_define([am_maintainer_other], [disable])], [disable], [m4_define([am_maintainer_other], [enable])], [m4_define([am_maintainer_other], [enable]) m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles]) dnl maintainer-mode's default is 'disable' unless 'enable' is passed AC_ARG_ENABLE([maintainer-mode], [ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful (and sometimes confusing) to the casual installer], [USE_MAINTAINER_MODE=$enableval], [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) AC_MSG_RESULT([$USE_MAINTAINER_MODE]) AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) MAINT=$MAINTAINER_MODE_TRUE AC_SUBST([MAINT])dnl ] ) AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 6 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_MKDIR_P # --------------- # Check for `mkdir -p'. AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, dnl while keeping a definition of mkdir_p for backward compatibility. dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of dnl Makefile.ins that do not define MKDIR_P, so we do our own dnl adjustment using top_builddir (which is defined more often than dnl MKDIR_P). AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl case $mkdir_p in [[\\/$]]* | ?:[[\\/]]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # ------------------------------ # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ---------------------------------- # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of `v7', `ustar', or `pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. AM_MISSING_PROG([AMTAR], [tar]) m4_if([$1], [v7], [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([autotools/m4/libtool.m4]) m4_include([autotools/m4/ltoptions.m4]) m4_include([autotools/m4/ltsugar.m4]) m4_include([autotools/m4/ltversion.m4]) m4_include([autotools/m4/lt~obsolete.m4]) XQilla-2.3.0/Makefile.am0000644000151400015140000005166011653565523011702 00000000000000AUTOMAKE_OPTIONS = foreign dist-zip SUBDIRS = include INCLUDES = -I$(top_srcdir)/include/ $(xerces_include) -I$(top_srcdir)/src/lexer/ $(faxpp_include) $(tidy_include) LDFLAGS = -L$(xerces_lib) -R$(xerces_lib) $(faxpp_lib) $(tidy_lib) -lxerces-c $(faxpp_library) $(tidy_library) LDADD = libxqilla.la ACLOCAL_AMFLAGS = -I autotools/m4 bin_PROGRAMS = xqilla noinst_PROGRAMS = xqtsRunner xmarkRunner simple-basic simple-context-item xqc-basic xqc-context-item compile-delayed-module if BUILD_DOM_SAMPLES noinst_PROGRAMS += dom-basic dom-context-item dom-resolver endif lib_LTLIBRARIES = libxqilla.la # Library version, see http://sourceware.org/autobook/autobook/autobook_91.html # -no-undefined for Cygwin (bug #1639669) libxqilla_la_LDFLAGS = -version-info 6:0:0 -no-undefined libxqilla_la_SOURCES = \ src/framework/ReferenceCounted.cpp \ src/framework/BaseMemoryManager.cpp \ src/framework/ProxyMemoryManager.cpp \ src/framework/StringPool.cpp \ src/framework/XPath2MemoryManagerImpl.cpp \ src/context/UpdateFactory.cpp \ src/context/impl/CollationImpl.cpp \ src/context/impl/CodepointCollation.cpp \ src/context/impl/VarStoreImpl.cpp \ src/context/impl/VarTypeStoreImpl.hpp \ src/context/impl/VarTypeStoreImpl.cpp \ src/context/impl/VarHashEntryImpl.cpp \ src/context/impl/XQContextImpl.cpp \ src/context/impl/XQDynamicContextImpl.cpp \ src/context/impl/ItemFactoryImpl.cpp \ src/ast/XQAtomize.cpp \ src/ast/XQEffectiveBooleanValue.cpp \ src/ast/XQMap.cpp \ src/ast/XQAnalyzeString.cpp \ src/ast/XQCastableAs.cpp \ src/ast/XQCastAs.cpp \ src/ast/XQContextItem.cpp \ src/ast/XQCopy.cpp \ src/ast/XQCopyOf.cpp \ src/ast/XQFunction.cpp \ src/ast/XQIf.cpp \ src/ast/ASTNodeImpl.cpp \ src/ast/XQInlineFunction.cpp \ src/ast/XQLiteral.cpp \ src/ast/XQNav.cpp \ src/ast/XQOperator.cpp \ src/ast/XQSequence.cpp \ src/ast/XQStep.cpp \ src/ast/XQTreatAs.cpp \ src/ast/XQFunctionCoercion.cpp \ src/ast/XQVariable.cpp \ src/ast/StaticAnalysis.cpp \ src/ast/StaticType.cpp \ src/ast/NumericFunction.cpp \ src/ast/XQDOMConstructor.cpp \ src/ast/XQDocumentConstructor.cpp \ src/ast/XQElementConstructor.cpp \ src/ast/XQAttributeConstructor.cpp \ src/ast/XQNamespaceConstructor.cpp \ src/ast/XQPIConstructor.cpp \ src/ast/XQCommentConstructor.cpp \ src/ast/XQTextConstructor.cpp \ src/ast/XQFunctionCall.cpp \ src/ast/XQFunctionConversion.cpp \ src/ast/XQFunctionDeref.cpp \ src/ast/XQPartialApply.cpp \ src/ast/XQFunctionRef.cpp \ src/ast/XQGlobalVariable.cpp \ src/ast/XQOrderingChange.cpp \ src/ast/XQQuantified.cpp \ src/ast/XQValidate.cpp \ src/ast/XQTypeswitch.cpp \ src/ast/ConvertFunctionArg.cpp \ src/ast/XQDocumentOrder.cpp \ src/ast/XQPredicate.cpp \ src/ast/XQReturn.cpp \ src/ast/TupleNode.cpp \ src/ast/ContextTuple.cpp \ src/ast/ForTuple.cpp \ src/ast/LetTuple.cpp \ src/ast/WhereTuple.cpp \ src/ast/CountTuple.cpp \ src/ast/OrderByTuple.cpp \ src/ast/XQNamespaceBinding.cpp \ src/ast/XQCallTemplate.cpp \ src/ast/XQApplyTemplates.cpp \ src/debug/ASTDebugHook.cpp \ src/debug/DebugHookDecorator.cpp \ src/debug/TupleDebugHook.cpp \ src/debug/InputParser.cpp \ src/debug/InteractiveDebugger.cpp \ src/debug/StackFrame.cpp \ src/events/ContentSequenceFilter.cpp \ src/events/EventGenerator.cpp \ src/events/EventSerializer.cpp \ src/events/NoInheritFilter.cpp \ src/events/NoInheritFilter.hpp \ src/events/NSFixupFilter.cpp \ src/events/QueryPathTreeFilter.cpp \ src/fulltext/FTContains.cpp \ src/fulltext/FTWords.cpp \ src/fulltext/FTOr.cpp \ src/fulltext/FTAnd.cpp \ src/fulltext/FTMildnot.cpp \ src/fulltext/FTUnaryNot.cpp \ src/fulltext/DefaultTokenizer.cpp \ src/fulltext/DefaultTokenStore.cpp \ src/fulltext/FTOrder.cpp \ src/fulltext/FTDistance.cpp \ src/fulltext/FTScope.cpp \ src/fulltext/FTContent.cpp \ src/fulltext/FTWindow.cpp \ src/dom-api/impl/XQillaBuilderImpl.cpp \ src/dom-api/impl/XQillaBuilderImpl.hpp \ src/dom-api/impl/XQillaDocumentImpl.cpp \ src/dom-api/impl/XQillaDocumentImpl.hpp \ src/dom-api/impl/XQillaExpressionImpl.cpp \ src/dom-api/impl/XQillaExpressionImpl.hpp \ src/dom-api/impl/XQillaNSResolverImpl.cpp \ src/dom-api/impl/XQillaXMLGrammarPoolImpl.cpp \ src/dom-api/impl/XQillaXMLGrammarPoolImpl.hpp \ src/dom-api/impl/XPathDocumentImpl.cpp \ src/dom-api/impl/XPathDocumentImpl.hpp \ src/dom-api/impl/XPathNamespaceImpl.cpp \ src/dom-api/impl/XPathNamespaceImpl.hpp \ src/dom-api/impl/XPath2ResultImpl.cpp \ src/dom-api/impl/XPath2ResultImpl.hpp \ src/dom-api/XQillaImplementation.cpp \ src/dom-api/XQillaImplementation.hpp \ src/dom-api/XPath2NodeSerializer.cpp \ src/dom-api/XPath2NodeSerializer.hpp \ src/simple-api/XQilla.cpp \ src/simple-api/XQQuery.cpp \ src/utils/UTF8Str.cpp \ src/utils/XMLChCompare.cpp \ src/utils/XStr.cpp \ src/utils/ContextUtils.cpp \ src/utils/DateUtils.cpp \ src/utils/DateUtils.hpp \ src/utils/NumUtils.cpp \ src/utils/XQillaPlatformUtils.cpp \ src/utils/XPath2NSUtils.cpp \ src/utils/XPath2Utils.cpp \ src/utils/UnicodeTransformer.cpp \ src/utils/utf8proc/utf8proc.c \ src/utils/utf8proc/utf8proc_data.h \ src/utils/DelayedModule.cpp \ src/exceptions/XQillaException.cpp \ src/exceptions/XQException.cpp \ src/exceptions/InvalidLexicalSpaceException.hpp \ src/exceptions/MiscException.hpp \ src/functions/EXSLTMathFunction.cpp \ src/functions/ExternalFunction.cpp \ src/functions/XQillaFunction.cpp \ src/functions/FunctionParseXML.cpp \ src/functions/FuncFactory.cpp \ src/functions/FunctionLookup.cpp \ src/functions/FunctionAbs.cpp \ src/functions/FunctionAcos.cpp \ src/functions/FunctionAsin.cpp \ src/functions/FunctionAtan.cpp \ src/functions/FunctionBaseURI.cpp \ src/functions/FunctionCaseFold.cpp \ src/functions/FunctionCeiling.cpp \ src/functions/FunctionCodepointsToString.cpp \ src/functions/FunctionCollection.cpp \ src/functions/FunctionCompare.cpp \ src/functions/FunctionConcat.cpp \ src/functions/FunctionContains.cpp \ src/functions/FunctionCount.cpp \ src/functions/FunctionCos.cpp \ src/functions/FunctionCurrentDate.cpp \ src/functions/FunctionCurrentDateTime.cpp \ src/functions/FunctionCurrentTime.cpp \ src/functions/FunctionDateTime.cpp \ src/functions/FunctionDefaultCollation.cpp \ src/functions/FunctionDistinctValues.cpp \ src/functions/FunctionDocAvailable.cpp \ src/functions/FunctionDoc.cpp \ src/functions/FunctionDocument.cpp \ src/functions/FunctionDocumentURI.cpp \ src/functions/FunctionEmpty.cpp \ src/functions/FunctionEndsWith.cpp \ src/functions/FunctionError.cpp \ src/functions/FunctionExp.cpp \ src/functions/FunctionFloor.cpp \ src/functions/FunctionFunctionArity.cpp \ src/functions/FunctionFunctionName.cpp \ src/functions/FunctionId.cpp \ src/functions/FunctionIdref.cpp \ src/functions/FunctionImplicitTimezone.cpp \ src/functions/FunctionLang.cpp \ src/functions/FunctionLast.cpp \ src/functions/FunctionLocalname.cpp \ src/functions/FunctionLocalNameFromQName.cpp \ src/functions/FunctionLog.cpp \ src/functions/FunctionLowerCase.cpp \ src/functions/FunctionMatches.cpp \ src/functions/FunctionName.cpp \ src/functions/FunctionNamespaceUri.cpp \ src/functions/FunctionNamespaceURIFromQName.cpp \ src/functions/FunctionNilled.cpp \ src/functions/FunctionNodeName.cpp \ src/functions/FunctionNormalizeSpace.cpp \ src/functions/FunctionNormalizeUnicode.cpp \ src/functions/FunctionNot.cpp \ src/functions/FunctionNumber.cpp \ src/functions/FunctionPosition.cpp \ src/functions/FunctionPower.cpp \ src/functions/FunctionPrefixFromQName.cpp \ src/functions/FunctionQName.cpp \ src/functions/FunctionRegexGroup.cpp \ src/functions/FunctionReplace.cpp \ src/functions/FunctionResolveURI.cpp \ src/functions/FunctionRoot.cpp \ src/functions/FunctionRound.cpp \ src/functions/FunctionRoundHalfToEven.cpp \ src/functions/FunctionSin.cpp \ src/functions/FunctionSqrt.cpp \ src/functions/FunctionTan.cpp \ src/functions/FunctionSentences.cpp \ src/functions/FunctionStartsWith.cpp \ src/functions/FunctionStaticBaseURI.cpp \ src/functions/FunctionString.cpp \ src/functions/FunctionStringLength.cpp \ src/functions/FunctionStringToCodepoints.cpp \ src/functions/FunctionSubstring.cpp \ src/functions/FunctionTime.cpp \ src/functions/FunctionTokenize.cpp \ src/functions/FunctionTrace.cpp \ src/functions/FunctionHead.cpp \ src/functions/FunctionTail.cpp \ src/functions/FunctionUnordered.cpp \ src/functions/FunctionUnparsedText.cpp \ src/functions/FunctionUpperCase.cpp \ src/functions/FunctionWords.cpp \ src/functions/FunctionAdjustDateTimeToTimezone.cpp \ src/functions/FunctionAdjustDateToTimezone.cpp \ src/functions/FunctionAdjustTimeToTimezone.cpp \ src/functions/FunctionDayFromDate.cpp \ src/functions/FunctionDayFromDateTime.cpp \ src/functions/FunctionDaysFromDuration.cpp \ src/functions/FunctionHoursFromDateTime.cpp \ src/functions/FunctionHoursFromDuration.cpp \ src/functions/FunctionHoursFromTime.cpp \ src/functions/FunctionMinutesFromDateTime.cpp \ src/functions/FunctionMinutesFromDuration.cpp \ src/functions/FunctionMinutesFromTime.cpp \ src/functions/FunctionMonthFromDate.cpp \ src/functions/FunctionMonthFromDateTime.cpp \ src/functions/FunctionMonthsFromDuration.cpp \ src/functions/FunctionSecondsFromDateTime.cpp \ src/functions/FunctionSecondsFromDuration.cpp \ src/functions/FunctionSecondsFromTime.cpp \ src/functions/FunctionTimezoneFromDate.cpp \ src/functions/FunctionTimezoneFromDateTime.cpp \ src/functions/FunctionTimezoneFromTime.cpp \ src/functions/FunctionYearFromDate.cpp \ src/functions/FunctionYearFromDateTime.cpp \ src/functions/FunctionYearsFromDuration.cpp \ src/functions/FunctionParseJSON.cpp \ src/functions/FunctionSerializeJSON.cpp \ src/functions/FunctionParseHTML.cpp \ src/functions/FunctionExplain.cpp \ src/functions/FunctionAnalyzeString.cpp \ src/functions/RegExpFunction.cpp \ src/functions/XQUserFunction.cpp \ src/functions/FunctionSignature.cpp \ src/functions/BuiltInModules.cpp \ src/functions/CoreModule.hpp \ src/functions/FnModule.hpp \ src/items/impl/ATAnySimpleTypeImpl.cpp \ src/items/impl/ATAnySimpleTypeImpl.hpp \ src/items/impl/ATAnyURIOrDerivedImpl.cpp \ src/items/impl/ATAnyURIOrDerivedImpl.hpp \ src/items/impl/ATBase64BinaryOrDerivedImpl.cpp \ src/items/impl/ATBase64BinaryOrDerivedImpl.hpp \ src/items/impl/ATBooleanOrDerivedImpl.cpp \ src/items/impl/ATDateOrDerivedImpl.cpp \ src/items/impl/ATDateTimeOrDerivedImpl.cpp \ src/items/impl/ATDecimalOrDerivedImpl.cpp \ src/items/impl/ATDoubleOrDerivedImpl.cpp \ src/items/impl/ATDurationOrDerivedImpl.cpp \ src/items/impl/ATFloatOrDerivedImpl.cpp \ src/items/impl/ATGDayOrDerivedImpl.cpp \ src/items/impl/ATGMonthDayOrDerivedImpl.cpp \ src/items/impl/ATGMonthOrDerivedImpl.cpp \ src/items/impl/ATGYearMonthOrDerivedImpl.cpp \ src/items/impl/ATGYearOrDerivedImpl.cpp \ src/items/impl/ATHexBinaryOrDerivedImpl.cpp \ src/items/impl/ATHexBinaryOrDerivedImpl.hpp \ src/items/impl/ATNotationOrDerivedImpl.cpp \ src/items/impl/ATNotationOrDerivedImpl.hpp \ src/items/impl/ATQNameOrDerivedImpl.cpp \ src/items/impl/ATStringOrDerivedImpl.cpp \ src/items/impl/ATStringOrDerivedImpl.hpp \ src/items/impl/ATTimeOrDerivedImpl.cpp \ src/items/impl/ATUntypedAtomicImpl.cpp \ src/items/impl/ATUntypedAtomicImpl.hpp \ src/items/impl/FunctionRefImpl.cpp \ src/items/impl/FunctionRefImpl.hpp \ src/items/DatatypeFactory.cpp \ src/items/DatatypeFactoryTemplate.hpp \ src/items/DatatypeLookup.cpp \ src/items/AnyAtomicType.cpp \ src/items/ATDurationOrDerived.cpp \ src/items/ATUntypedAtomic.cpp \ src/items/DateOrTimeType.cpp \ src/items/Item.cpp \ src/items/Node.cpp \ src/items/Numeric.cpp \ src/items/Timezone.cpp \ src/parser/QName.cpp \ src/parser/XQParser.cpp \ src/parser/XQParser.hpp \ src/lexer/FlexLexer.h \ src/lexer/XQLexer.cpp \ src/lexer/XQLexer2.cpp \ src/lexer/XQLexer.hpp \ src/lexer/XSLT2Lexer.cpp \ src/lexer/XSLT2Lexer.hpp \ src/mapm/mapm5sin.c \ src/mapm/mapm_add.c \ src/mapm/mapmasin.c \ src/mapm/mapmasn0.c \ src/mapm/mapmcbrt.c \ src/mapm/mapmcnst.c \ src/mapm/mapm_cpi.c \ src/mapm/m_apm.cpp \ src/mapm/mapm_div.c \ src/mapm/mapm_exp.c \ src/mapm/mapmfact.c \ src/mapm/mapm_fam.c \ src/mapm/mapm_fft.c \ src/mapm/mapm_flr.c \ src/mapm/mapmfmul.c \ src/mapm/mapm_fpf.c \ src/mapm/mapm_gcd.c \ src/mapm/mapmgues.c \ src/mapm/mapmhasn.c \ src/mapm/mapmhsin.c \ src/mapm/mapmipwr.c \ src/mapm/mapmistr.c \ src/mapm/m_apm_lc.h \ src/mapm/mapm_lg2.c \ src/mapm/mapm_lg3.c \ src/mapm/mapm_log.c \ src/mapm/mapm_mt.cpp \ src/mapm/mapm_mul.c \ src/mapm/mapm_pow.c \ src/mapm/mapmpwr2.c \ src/mapm/mapm_rcp.c \ src/mapm/mapm_rnd.c \ src/mapm/mapmrsin.c \ src/mapm/mapm_set.c \ src/mapm/mapm_sin.c \ src/mapm/mapmsqrt.c \ src/mapm/mapmstck.c \ src/mapm/mapmutil.c \ src/mapm/mapmutl2.c \ src/mapm/README \ src/axis/NodeTest.cpp \ src/operators/And.cpp \ src/operators/ArithmeticOperator.cpp \ src/operators/ComparisonOperator.cpp \ src/operators/Divide.cpp \ src/operators/Equals.cpp \ src/operators/Except.cpp \ src/operators/GeneralComp.cpp \ src/operators/GreaterThan.cpp \ src/operators/GreaterThanEqual.cpp \ src/operators/IntegerDivide.cpp \ src/operators/Intersect.cpp \ src/operators/LessThan.cpp \ src/operators/LessThanEqual.cpp \ src/operators/Minus.cpp \ src/operators/Mod.cpp \ src/operators/Multiply.cpp \ src/operators/NodeComparison.cpp \ src/operators/NotEquals.cpp \ src/operators/Or.cpp \ src/operators/OrderComparison.cpp \ src/operators/Plus.cpp \ src/operators/UnaryMinus.cpp \ src/operators/Union.cpp \ src/schema/DocumentCacheImpl.cpp \ src/schema/SequenceType.cpp \ src/schema/AnyAtomicTypeDatatypeValidator.cpp \ src/schema/SchemaValidatorFilter.cpp \ src/schema/FaxppDocumentCacheImpl.hpp \ src/schema/FaxppDocumentCacheImpl.cpp \ src/runtime/ClosureResult.cpp \ src/runtime/EmptyResult.cpp \ src/runtime/ResultBuffer.cpp \ src/runtime/ResultBufferImpl.cpp \ src/runtime/Result.cpp \ src/runtime/ResultImpl.cpp \ src/runtime/SequenceResult.cpp \ src/runtime/Sequence.cpp \ src/update/FunctionPut.cpp \ src/update/PendingUpdateList.cpp \ src/update/UApplyUpdates.cpp \ src/update/UDelete.cpp \ src/update/URename.cpp \ src/update/UReplace.cpp \ src/update/UReplaceValueOf.cpp \ src/update/UInsertAsFirst.cpp \ src/update/UInsertAsLast.cpp \ src/update/UInsertInto.cpp \ src/update/UInsertAfter.cpp \ src/update/UInsertBefore.cpp \ src/update/UTransform.cpp \ src/config/xqilla_config.h \ src/xqts/TestSuiteParser.cpp \ src/xqts/TestSuiteResultListener.cpp \ src/xqts/TestSuiteRunner.cpp \ src/fastxdm/FastXDMUpdateFactory.hpp \ src/fastxdm/FastXDMUpdateFactory.cpp \ src/fastxdm/FastXDMDocument.hpp \ src/fastxdm/FastXDMDocument.cpp \ src/fastxdm/FastXDMNodeImpl.hpp \ src/fastxdm/FastXDMNodeImpl.cpp \ src/fastxdm/FastXDMConfiguration.cpp \ src/fastxdm/FastXDMSequenceBuilder.hpp \ src/fastxdm/FastXDMSequenceBuilder.cpp \ src/xerces/AncestorAxis.hpp \ src/xerces/AncestorOrSelfAxis.hpp \ src/xerces/AttributeAxis.hpp \ src/xerces/Axis.hpp \ src/xerces/ChildAxis.hpp \ src/xerces/DescendantAxis.hpp \ src/xerces/DescendantOrSelfAxis.hpp \ src/xerces/FollowingAxis.hpp \ src/xerces/FollowingSiblingAxis.hpp \ src/xerces/NamespaceAxis.hpp \ src/xerces/ParentAxis.hpp \ src/xerces/PrecedingAxis.hpp \ src/xerces/PrecedingSiblingAxis.hpp \ src/xerces/AncestorAxis.cpp \ src/xerces/AncestorOrSelfAxis.cpp \ src/xerces/AttributeAxis.cpp \ src/xerces/Axis.cpp \ src/xerces/ChildAxis.cpp \ src/xerces/DescendantAxis.cpp \ src/xerces/DescendantOrSelfAxis.cpp \ src/xerces/FollowingAxis.cpp \ src/xerces/FollowingSiblingAxis.cpp \ src/xerces/NamespaceAxis.cpp \ src/xerces/ParentAxis.cpp \ src/xerces/PrecedingAxis.cpp \ src/xerces/PrecedingSiblingAxis.cpp \ src/xerces/XercesConfiguration.cpp \ src/xerces/XercesNodeImpl.hpp \ src/xerces/XercesNodeImpl.cpp \ src/xerces/XercesSequenceBuilder.hpp \ src/xerces/XercesSequenceBuilder.cpp \ src/xerces/XercesUpdateFactory.hpp \ src/xerces/XercesUpdateFactory.cpp \ src/xerces/XercesURIResolver.hpp \ src/xerces/XercesURIResolver.cpp \ src/optimizer/Optimizer.cpp \ src/optimizer/ASTCopier.cpp \ src/optimizer/ASTReleaser.cpp \ src/optimizer/ASTVisitor.cpp \ src/optimizer/PartialEvaluator.cpp \ src/optimizer/StaticTyper.cpp \ src/optimizer/QueryPathNode.cpp \ src/optimizer/QueryPathTreeGenerator.cpp \ src/optimizer/ASTToXML.cpp \ src/yajl/yajl_buf.c \ src/yajl/yajl_buf.h \ src/yajl/yajl.c \ src/yajl/yajl_encode.c \ src/yajl/yajl_encode.h \ src/yajl/yajl_gen.c \ src/yajl/yajl_lex.c \ src/yajl/yajl_lex.h \ src/yajl/yajl_parser.c \ src/yajl/yajl_parser.h \ src/yajl/yajl_common.h \ src/yajl/yajl_gen.h \ src/yajl/yajl_parse.h \ src/xqc/XQillaXQCImplementation.cpp \ src/xqc/XQillaXQCImplementation.hpp \ src/xqc/XQillaXQCStaticContext.cpp \ src/xqc/XQillaXQCStaticContext.hpp \ src/xqc/XQillaXQCDynamicContext.cpp \ src/xqc/XQillaXQCDynamicContext.hpp \ src/xqc/XQillaXQCExpression.cpp \ src/xqc/XQillaXQCExpression.hpp \ src/xqc/XQillaXQCSequence.cpp \ src/xqc/XQillaXQCSequence.hpp \ src/xqc/XQillaXQCInputStream.hpp EXTRA_DIST = \ src/lexer/flex.skl \ src/lexer/XQLexer.l \ src/parser/XQParser.y \ src/parser/XQParser.y \ src/samples/dom-api/data.xml \ src/samples/dom-api/data.xsd \ src/samples/dom-api/foo.xml \ src/samples/simple-api/foo.xml \ src/functions/CoreModule.xq \ src/functions/FnModule.xq \ LICENSE \ TODO \ README \ ChangeLog \ docs/Doxyfile.simpleapi.in \ docs/Doxyfile.dom3api.in \ docs/Doxyfile.devapi.in \ docs/Doxyfile.xqc.in \ docs/dom3_header.html \ docs/simple_header.html \ docs/xqc_header.html \ docs/simple-api \ docs/dom3-api \ docs/xqc-api \ Win32Projects/VC8/dom-basic.vcproj \ Win32Projects/VC8/dom-context-item.vcproj \ Win32Projects/VC8/dom-resolver.vcproj \ Win32Projects/VC8/simple-basic.vcproj \ Win32Projects/VC8/simple-context-item.vcproj \ Win32Projects/VC8/xmarkRunner.vcproj \ Win32Projects/VC8/xqc-basic.vcproj \ Win32Projects/VC8/xqc-context-item.vcproj \ Win32Projects/VC8/xqilla.vcproj \ Win32Projects/VC8/xqilla_cmd.vcproj \ Win32Projects/VC8/xqtsRunner.vcproj \ Win32Projects/VC8/XQilla.sln \ Win32Projects/VC7.1/dom-basic.vcproj \ Win32Projects/VC7.1/dom-context-item.vcproj \ Win32Projects/VC7.1/dom-resolver.vcproj \ Win32Projects/VC7.1/simple-basic.vcproj \ Win32Projects/VC7.1/simple-context-item.vcproj \ Win32Projects/VC7.1/xmarkRunner.vcproj \ Win32Projects/VC7.1/xqc-basic.vcproj \ Win32Projects/VC7.1/xqc-context-item.vcproj \ Win32Projects/VC7.1/xqilla.vcproj \ Win32Projects/VC7.1/xqilla_cmd.vcproj \ Win32Projects/VC7.1/XQilla.sln \ Win32Projects/VC7.1/xqtsRunner.vcproj \ tests/xqts/xqts_testsuite/errors.xml \ tests/xqts/xqts_testsuite/update_errors.xml \ tests/xqts/xqts_testsuite/xsl_errors.xml \ wintools/lib_paths.sed \ wintools/s_win32 \ wintools/README \ wintools/s_projects \ wintools/genproject.xq \ wintools/xqilla.template.xml \ wintools/xqilla.vs2010.xq \ wintools/xqilla.vs2010_filter.xq xqilla_SOURCES = \ src/samples/xqilla/xqilla-commandline.cpp xqtsRunner_SOURCES = \ tests/xqts/runner.cpp xmarkRunner_SOURCES = \ tests/xmark/xmark.cpp simple_basic_SOURCES = \ src/samples/simple-api/simple-basic.cpp simple_context_item_SOURCES = \ src/samples/simple-api/simple-context-item.cpp dom_basic_SOURCES = \ src/samples/dom-api/dom-basic.cpp dom_context_item_SOURCES = \ src/samples/dom-api/dom-context-item.cpp dom_resolver_SOURCES = \ src/samples/dom-api/dom-resolver.cpp # Dummy C++ source to cause C++ linking. nodist_EXTRA_xqc_basic_SOURCES = dummy.cpp xqc_basic_SOURCES = \ src/samples/xqc-api/xqc-basic.c # Dummy C++ source to cause C++ linking. nodist_EXTRA_xqc_context_item_SOURCES = dummy.cpp xqc_context_item_SOURCES = \ src/samples/xqc-api/xqc-context-item.c compile_delayed_module_SOURCES = \ src/tools/compile-delayed-module.cpp $(top_srcdir)/src/functions/CoreModule.hpp: $(top_srcdir)/src/functions/CoreModule.xq ./compile-delayed-module $(top_srcdir)/src/functions/CoreModule.xq >$(top_srcdir)/src/functions/CoreModule.hpp $(top_srcdir)/src/functions/FnModule.hpp: $(top_srcdir)/src/functions/FnModule.xq ./compile-delayed-module $(top_srcdir)/src/functions/FnModule.xq >$(top_srcdir)/src/functions/FnModule.hpp LEXERFILE = $(top_srcdir)/src/lexer/XQLexer.cpp LEXTEMPLATE = $(top_srcdir)/src/lexer/XQLexer.l LEXSKEL = $(top_srcdir)/src/lexer/flex.skl PARSERFILE = $(top_srcdir)/src/parser/XQParser.y PARSERCPP = $(top_srcdir)/src/parser/XQParser.cpp PARSERHPP = $(top_srcdir)/src/parser/XQParser.hpp $(LEXERFILE): $(LEXTEMPLATE) $(LEXSKEL) $(LEX) -BUs -Pxq -S$(LEXSKEL) -o$(LEXERFILE) $(LEXTEMPLATE) # This can take a long time $(PARSERCPP) $(PARSERHPP): $(PARSERFILE) $(YACC) -d -v -o $(PARSERCPP) $(PARSERFILE) .PHONY: test docs docs: $(MAKE) -C include docs docsclean: $(MAKE) -C include docsclean devdocs: $(MAKE) -C include devdocs devdocsclean: $(MAKE) -C include devdocsclean # Target to help keep the windows projects up-to-date winprojects: winprojects.xq xqilla $(MAKE) -C include winprojects ./xqilla winprojects.xq > winprojects_files.xml winprojects.xq: $(libxqilla_la_SOURCES) @echo "let \$$filedump := " >winprojects.xq @list='$(libxqilla_la_SOURCES)'; for f in $$list; do \ echo " " >>winprojects.xq; \ done @echo "" >>winprojects.xq @echo "for \$$dir in distinct-values(\$$filedump//file/@name/substring-before(substring-after(., '/'), '/'))" >>winprojects.xq @echo "order by \$$dir" >>winprojects.xq @echo "return document{' ', {" >>winprojects.xq @echo " for \$$f in \$$filedump/file[contains(@name, \$$dir)]" >>winprojects.xq @echo " order by \$$f/@name" >>winprojects.xq @echo " return (' ', \$$f)" >>winprojects.xq @echo "} }" >>winprojects.xq XQilla-2.3.0/README0000644000151400015140000000047011653565523010517 00000000000000This is XQilla, a C++ implementation of XQuery and XPath 2.0 based on Xerces-C. Build Instructions ------------------ 1. Download a source distribution of Xerces-C 3.1.1 2. Build Xerces-C cd xerces-c-3.1.1/ ./configure make 4. Build XQilla cd xqilla/ ./configure --with-xerces=`pwd`/../xerces-c-3.1.1/ make XQilla-2.3.0/tests/0000755000151400015140000000000011653572442011056 500000000000000XQilla-2.3.0/tests/xqts/0000755000151400015140000000000011653572443012056 500000000000000XQilla-2.3.0/tests/xqts/runner.cpp0000644000151400015140000005113311625034401014000 00000000000000/* * Copyright (c) 2001-2008 * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004-2008 * Oracle. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * $Id$ */ #ifdef _MSC_VER #pragma warning(disable: 4786) #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif using namespace std; class XQillaTestSuiteRunner : public TestSuiteRunner, private XMLEntityResolver, private ModuleResolver, private URIResolver { public: XQillaTestSuiteRunner(const string &singleTest, TestSuiteResultListener *results, XQillaConfiguration *conf, XQilla::Language lang, FastXDMConfiguration *fastConf = 0, XercesConfiguration *xercesConf = 0, bool userSetParserLang = false); virtual ~XQillaTestSuiteRunner(); virtual void addSource(const string &id, const string &filename, const string &schema); virtual void addSchema(const string &id, const string &filename, const string &uri); virtual void addModule(const string &id, const string &filename); virtual void addCollectionDoc(const string &id, const string &filename); virtual void startTestGroup(const string &name); virtual void endTestGroup(); virtual void runTestCase(const TestCase &testCase); virtual void detectParserLang(const string &testSuiteNamespace); private: virtual InputSource* resolveEntity(XMLResourceIdentifier* resourceIdentifier); virtual bool resolveModuleLocation(VectorOfStrings* result, const XMLCh* nsUri, const StaticContext* context); virtual bool resolveDocument(Sequence &result, const XMLCh* uri, DynamicContext* context, const QueryPathNode *projection); virtual bool resolveCollection(Sequence &result, const XMLCh* uri, DynamicContext* context, const QueryPathNode *projection); virtual bool resolveDefaultCollection(Sequence &result, DynamicContext* context, const QueryPathNode *projection); virtual bool putDocument(const Node::Ptr &document, const XMLCh *uri, DynamicContext *context) { return true; } virtual void detectDefaultConf(); private: XQillaConfiguration *m_conf; FastXDMConfiguration *m_fastConf; XercesConfiguration *m_xercesConf; bool m_userSetParserLang; XQilla::Language m_lang; string m_szSingleTest; string m_szFullTestName; const TestCase* m_pCurTestCase; // id -> filename map m_inputFiles; // schemaURL -> filename map m_schemaFiles; // id -> filename map m_moduleFiles; // id -> list of inputFiles ID map > m_collections; AutoDelete m_docQuery; map m_inputDocs; }; void usage(const char *progname) { const char *name = progname; while(*progname != 0) { if(*progname == '/' || *progname == '\\') { ++progname; name = progname; } else { ++progname; } } cout << "Usage: " << name << " [options] ()?" << endl << endl; cout << "-e : Use the given file as a known error file" << endl; cout << "-E : Output an error file" << endl; cout << "-h : Show this display" << endl; cout << "-r : Output results as XML" << endl; cout << "-u : Parse XQuery Update (also uses Xerces-C data model)" << endl; cout << "-s : Parse XSLT 2.0" << endl; cout << "-f : Parse XQuery Full Text 1.0" << endl; cout << "-3 : Parse XQuery 3.0" << endl; cout << "-x : Use the Xerces-C data model (default is FastXDM)" << endl; } int main(int argc, char *argv[]) { string testSuitePath; string singleTest; string errorFile; string outputErrorFile; bool xmlResults = false; bool userSetParserLang = false; XQilla::Language lang = XQilla::XQUERY; XercesConfiguration xercesConf; FastXDMConfiguration fastConf; XQillaConfiguration *conf = NULL; for(int i = 1; i < argc; ++i) { if(*argv[i] == '-' && argv[i][2] == '\0' ){ switch(argv[i][1]) { case 'h': { usage(argv[0]); return 0; } case 'e': { i++; if(i == argc) { cout << "Missing argument to option 'e'" << endl; return 1; } errorFile = argv[i]; break; } case 'E': { i++; if(i == argc) { cout << "Missing argument to option 'E'" << endl; return 1; } outputErrorFile = argv[i]; break; } case 'f': { lang = (XQilla::Language)(lang | XQilla::FULLTEXT); userSetParserLang = true; break; } case 'r': { xmlResults = true; break; } case 'u': { lang = (XQilla::Language)(lang | XQilla::UPDATE); userSetParserLang = true; conf = &xercesConf; break; } case '3': { lang = (XQilla::Language)(lang | XQilla::VERSION3); userSetParserLang = true; break; } case 's': { lang = (XQilla::Language)(lang | XQilla::XSLT2); userSetParserLang = true; break; } case 'x': { conf = &xercesConf; break; } default: { cout << "Unknown option: " << argv[i] << endl; usage(argv[0]); return 1; } } } else if(testSuitePath == "") { testSuitePath = argv[i]; } else if(singleTest == "") { singleTest = argv[i]; } else { usage(argv[0]); return 1; } } if(testSuitePath == "") { cout << "Test suite path not specified!" << endl; usage(argv[0]); return 1; } XQillaPlatformUtils::enableExtendedPrecision(false); XQilla xqilla; Janitor results(0); if(xmlResults) { results.reset(new XMLReportResultListener()); XMLReportResultListener *xmlreport = (XMLReportResultListener*)results.get(); xmlreport->setImplementation("XQilla", "2.0"); xmlreport->setOrganization("XQilla", "http://xqilla.sourceforge.net"); if(lang != XQilla::XQUERY_UPDATE) { xmlreport->addImplementationDefinedItem("expressionUnicode", "UTF-16"); xmlreport->addImplementationDefinedItem("implicitTimezone", "Defined by the system clock"); xmlreport->addImplementationDefinedItem("XMLVersion", "1.1"); xmlreport->addImplementationDefinedItem("axes", "Full axis support"); xmlreport->addImplementationDefinedItem("defaultOrderEmpty", "empty least"); xmlreport->addImplementationDefinedItem("normalizationForms", "NFC, NFD, NFKC, NFKD"); xmlreport->addImplementationDefinedItem("docProcessing", "schema validation"); } xmlreport->addFeature("Minimal Conformance", true); if(lang != XQilla::XQUERY_UPDATE) { xmlreport->addFeature("Schema Import", true); xmlreport->addFeature("Schema Validation", true); xmlreport->addFeature("Static Typing", false); xmlreport->addFeature("Static Typing Extensions", false); xmlreport->addFeature("Full Axis", true); xmlreport->addFeature("Module", true); xmlreport->addFeature("Serialization", false); xmlreport->addFeature("Trivial XML Embedding", false); } xmlreport->setSubmittor("John Snelson", "john.snelson@oracle.com"); } else { results.reset(new ConsoleResultListener()); } KnownErrorChecker knownErrors(results.get()); if(errorFile != "" && !knownErrors.loadErrors(errorFile)) { return 1; } XQillaTestSuiteRunner runner(singleTest, &knownErrors, conf, lang, &fastConf, &xercesConf, userSetParserLang); TestSuiteParser parser(testSuitePath, &runner); parser.run(); bool passed = true; if(xmlResults) { ((XMLReportResultListener*)results.get())->printReport(); } else { passed = ((ConsoleResultListener*)results.get())->printReport(); } if(errorFile != "") { passed = knownErrors.printReport(); } if(outputErrorFile != "" && !knownErrors.saveErrors(outputErrorFile)) { cout << "Unable to open error file: " << outputErrorFile << endl; return 1; } return passed ? 0 : 1; } //////////////////////////////////////////////////////////////////////////////////////////////////// XQillaTestSuiteRunner::XQillaTestSuiteRunner(const string &singleTest, TestSuiteResultListener *results, XQillaConfiguration *conf, XQilla::Language lang, FastXDMConfiguration *fastConf, XercesConfiguration *xercesConf, bool userSetParserLang) : TestSuiteRunner(results), m_conf(conf), m_fastConf(fastConf), m_xercesConf(xercesConf), m_userSetParserLang(userSetParserLang), m_lang(lang), m_szSingleTest(singleTest), m_pCurTestCase(NULL), m_docQuery(0) { } XQillaTestSuiteRunner::~XQillaTestSuiteRunner() { } void XQillaTestSuiteRunner::startTestGroup(const string &name) { if(m_szFullTestName != "") m_szFullTestName += ":"; m_szFullTestName += name; m_results->startTestGroup(name); } void XQillaTestSuiteRunner::endTestGroup() { string::size_type nColonPos = m_szFullTestName.find_last_of(":"); if(nColonPos != string::npos) m_szFullTestName = string(m_szFullTestName.c_str(), nColonPos); else m_szFullTestName = ""; m_results->endTestGroup(); } void XQillaTestSuiteRunner::addSource(const string &id, const string &filename, const string &schema) { m_inputFiles[id] = filename; } void XQillaTestSuiteRunner::addSchema(const string &id, const string &filename, const string &uri) { m_schemaFiles[uri] = filename; } void XQillaTestSuiteRunner::addModule(const string &id, const string &filename) { m_moduleFiles[id] = filename; } void XQillaTestSuiteRunner::addCollectionDoc(const string &id, const string &filename) { m_collections[id].push_back(filename); } void XQillaTestSuiteRunner::runTestCase(const TestCase &testCase) { if(m_szSingleTest != "" && testCase.name.find(m_szSingleTest) == string::npos && m_szFullTestName.find(m_szSingleTest) == string::npos) { m_results->reportSkip(testCase, "Not run"); return; } if(m_results->isSkippedTest(testCase.name)) { m_results->reportSkip(testCase, "Skip"); return; } if(m_szFullTestName.substr(0,21)=="Optional:StaticTyping" && !testCase.updateTest) { m_results->reportSkip(testCase, "Static typing not supported"); return; } if(m_szFullTestName.substr(0,26)=="Optional:TrivialEmbedding") { m_results->reportSkip(testCase, "TrivialEmbedding not supported"); return; } XQilla xqilla; m_pCurTestCase=&testCase; DynamicContext *context = xqilla.createContext(m_lang, m_conf); AutoDelete contextGuard(context); try { context->setImplicitTimezone(context->getItemFactory()-> createDayTimeDuration(X("PT0S"), context)); context->setXMLEntityResolver(this); context->setModuleResolver(this); context->registerURIResolver(this, /*adopt*/false); if(testCase.xsltTest || testCase.updateTest) context->setBaseURI(X(testCase.queryURL.c_str())); if(testCase.updateTest) { if(testCase.stateTime == 0) { m_inputDocs.clear(); m_docQuery.set(0); } else if(m_docQuery.get() == 0) { m_results->reportSkip(testCase, "State 0 failed"); return; } } XQQuery *parsedQuery = xqilla.parseFromURI(X(testCase.queryURL.c_str()), contextGuard.adopt()); AutoDelete parsedQueryGuard(parsedQuery); if(testCase.updateTest && testCase.stateTime == 0) { m_docQuery.set(parsedQuery); parsedQueryGuard.adopt(); } map::const_iterator v; for(v=testCase.extraVars.begin();v!=testCase.extraVars.end();v++) { AutoDelete pInnerQuery(xqilla.parseFromURI(X(v->second.c_str()))); AutoDelete ictxt(context->createModuleDynamicContext(pInnerQuery->getStaticContext())); Sequence doc=pInnerQuery->execute(ictxt)->toSequence(ictxt); context->setExternalVariable(X(v->first.c_str()), doc); } for(v=testCase.inputVars.begin();v!=testCase.inputVars.end();v++) { string filename = v->second; Sequence doc; if(testCase.updateTest) { if(m_inputDocs.find(v->first) != m_inputDocs.end()) { doc = m_inputDocs[v->first]; } else { doc = const_cast(m_docQuery->getStaticContext())-> resolveDocument(X(filename.c_str()), 0); m_inputDocs[v->first] = doc; } } else { doc = context->resolveDocument(X(filename.c_str()), 0); } context->setExternalVariable(X(v->first.c_str()), doc); } for(v=testCase.inputURIVars.begin();v!=testCase.inputURIVars.end();v++) { Item::Ptr uri = context->getItemFactory()->createString(X(v->second.c_str()),context); context->setExternalVariable(X(v->first.c_str()), uri); } for(v=testCase.inputParams.begin();v!=testCase.inputParams.end();v++) { Item::Ptr value = context->getItemFactory()->createUntypedAtomic(X(v->second.c_str()),context); context->setExternalVariable(X(v->first.c_str()), value); } if(testCase.templateName != "") { Item::Ptr value = context->getItemFactory()->createUntypedAtomic(X(testCase.templateName.c_str()),context); context->setExternalVariable(X("http://xqilla.sourceforge.net/Functions"), X("name"), value); } if(!testCase.contextItem.empty()) { Sequence doc=context->resolveDocument(X(testCase.contextItem.c_str()), 0); context->setContextItem(doc.first()); } context->setContextPosition(1); context->setContextSize(1); time_t curTime; context->setCurrentTime(time(&curTime)); // Emulate the XQuery serialization spec MemBufFormatTarget target; EventSerializer writer("UTF-8", "1.1", &target, context->getMemoryManager()); NSFixupFilter nsfilter(&writer, context->getMemoryManager()); ContentSequenceFilter csfilter(&nsfilter); parsedQuery->execute(&csfilter, context); testResults(testCase, (char*)target.getRawBuffer()); } catch(XQException& e) { ostringstream oss; // if(e.getXQueryLine() == 0) { // oss << "No line number:" << std::endl << UTF8(e.getError()) << std::endl; // oss << "at " << UTF8(e.getXQueryFile()) << ":" << e.getXQueryLine() << ":" << e.getXQueryColumn() << std::endl; // oss << "at " << e.getCppFile() << ":" << e.getCppLine() << std::endl; // m_results->reportFailUnexpectedError(testCase, oss.str(), "XXX"); // } // else if(e.getXQueryColumn() == 0) { // oss << "No column number:" << std::endl << UTF8(e.getError()) << std::endl; // oss << "at " << UTF8(e.getXQueryFile()) << ":" << e.getXQueryLine() << ":" << e.getXQueryColumn() << std::endl; // oss << "at " << e.getCppFile() << ":" << e.getCppLine() << std::endl; // m_results->reportFailUnexpectedError(testCase, oss.str(), "XXX"); // } // else if(e.getXQueryFile() == 0) { // oss << "No file name:" << std::endl << UTF8(e.getError()) << std::endl; // oss << "at " << UTF8(e.getXQueryFile()) << ":" << e.getXQueryLine() << ":" << e.getXQueryColumn() << std::endl; // oss << "at " << e.getCppFile() << ":" << e.getCppLine() << std::endl; // m_results->reportFailUnexpectedError(testCase, oss.str(), "XXX"); // } // else { oss << UTF8(e.getError()) << std::endl; oss << "at " << UTF8(e.getXQueryFile()) << ":" << e.getXQueryLine() << ":" << e.getXQueryColumn() << std::endl; oss << "at " << e.getCppFile() << ":" << e.getCppLine() << std::endl; testErrors(testCase, oss.str()); // } } catch(DOMException &de) { testErrors(testCase, string("DOMException: ") + UTF8(de.getMessage())); } catch(...) { testErrors(testCase, "[Unknown exception]"); } m_pCurTestCase=NULL; } InputSource* XQillaTestSuiteRunner::resolveEntity(XMLResourceIdentifier* resourceIdentifier) { const XMLCh* systemId=resourceIdentifier->getSystemId(); if((systemId==NULL || *systemId==0) && resourceIdentifier->getResourceIdentifierType()==XMLResourceIdentifier::SchemaGrammar) { map::const_iterator i = m_schemaFiles.find(UTF8(resourceIdentifier->getNameSpace())); if(i != m_schemaFiles.end()) { return new URLInputSource(X(i->second.c_str())); } } else if(resourceIdentifier->getResourceIdentifierType()==XMLResourceIdentifier::UnKnown) { list >::const_iterator i; for(i=m_pCurTestCase->moduleFiles.begin(); i!=m_pCurTestCase->moduleFiles.end(); i++) { if(i->first == UTF8(resourceIdentifier->getNameSpace()) && i->second == UTF8(resourceIdentifier->getSystemId())) { map::const_iterator i2 = m_moduleFiles.find(i->second); if(i2 != m_moduleFiles.end()) { string file=i2->second+".xq"; return new URLInputSource(X(file.c_str())); } } } } // Don't hit the W3C for the XHTML DTD! if(string("http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd") == UTF8(resourceIdentifier->getSystemId())) { return new MemBufInputSource((XMLByte*)"", 0, "", false); } return NULL; } bool XQillaTestSuiteRunner::resolveModuleLocation(VectorOfStrings* result, const XMLCh* nsUri, const StaticContext* context) { bool bFound=false; list >::const_iterator i; for(i=m_pCurTestCase->moduleFiles.begin(); i!=m_pCurTestCase->moduleFiles.end(); i++) { if(i->first == UTF8(nsUri)) { result->push_back(context->getMemoryManager()->getPooledString(i->second.c_str())); bFound=true; } } return bFound; } bool XQillaTestSuiteRunner::resolveDocument(Sequence &result, const XMLCh* uri, DynamicContext* context, const QueryPathNode *projection) { std::map::iterator it=m_inputFiles.find(UTF8(uri)); if(it!=m_inputFiles.end()) { result=context->resolveDocument(X(it->second.c_str()), 0, projection); return true; } return false; } bool XQillaTestSuiteRunner::resolveCollection(Sequence &result, const XMLCh* uri, DynamicContext* context, const QueryPathNode *projection) { std::map >::iterator it=m_collections.find(UTF8(uri)); if(it!=m_collections.end()) { for(std::list::iterator s=it->second.begin();s!=it->second.end();s++) { result.joinSequence(context->resolveDocument(X(s->c_str()), 0, projection)); } return true; } return false; } bool XQillaTestSuiteRunner::resolveDefaultCollection(Sequence &result, DynamicContext* context, const QueryPathNode *projection) { if(!m_pCurTestCase->defaultCollection.empty()) return resolveCollection(result, X(m_pCurTestCase->defaultCollection.c_str()), context, projection); return false; } void XQillaTestSuiteRunner::detectParserLang(const string &testSuiteNS) { // if the user specified the parser language, don't do auto-detection if(m_userSetParserLang){ detectDefaultConf(); m_lang = (XQilla::Language)(m_lang | XQilla::EXTENSIONS); return; } if(testSuiteNS == "http://www.w3.org/2005/02/query-test-XQTSCatalog") m_lang = XQilla::XQUERY; else if(testSuiteNS == "http://www.w3.org/2005/02/query-test-update") m_lang = XQilla::XQUERY_UPDATE; else if(testSuiteNS == "http://www.w3.org/2005/02/query-test-full-text") m_lang = XQilla::XQUERY_FULLTEXT; else if(testSuiteNS == "http://www.w3.org/2005/05/xslt20-test-catalog") m_lang = XQilla::XSLT2; detectDefaultConf(); m_lang = (XQilla::Language)(m_lang | XQilla::EXTENSIONS); } void XQillaTestSuiteRunner::detectDefaultConf() { // if the user has set the m_conf, do nothing if(m_conf != NULL) return; if(m_lang & XQilla::UPDATE){ m_conf = m_xercesConf; } else { m_conf = m_fastConf; } } XQilla-2.3.0/tests/xqts/xqts_testsuite/0000755000151400015140000000000011653572443015166 500000000000000XQilla-2.3.0/tests/xqts/xqts_testsuite/xsl_errors.xml0000644000151400015140000044304511571227111020030 00000000000000 XQilla-2.3.0/tests/xqts/xqts_testsuite/update_errors.xml0000644000151400015140000001735311571227111020503 00000000000000 XQilla-2.3.0/tests/xqts/xqts_testsuite/errors.xml0000644000151400015140000001603311607013762017140 00000000000000 XQilla-2.3.0/tests/xmark/0000755000151400015140000000000011653572443012201 500000000000000XQilla-2.3.0/tests/xmark/xmark.cpp0000644000151400015140000003075411607013762013751 00000000000000/* * Copyright (c) 2001-2008 * DecisionSoft Limited. All rights reserved. * Copyright (c) 2004-2008 * Oracle. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * $Id$ */ #ifdef _MSC_VER #pragma warning(disable: 4786) #include #define snprintf _snprintf #else #include #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if defined(XERCES_HAS_CPP_NAMESPACE) XERCES_CPP_NAMESPACE_USE #endif using namespace std; #define MAXIMUM_TIME_FOR_QUERIES 0.2 #define MILLISECS_IN_SECS 1000 Sequence query(XQilla &xqilla, DynamicContext *context, const Item::Ptr &ci, string query) { AutoDelete pquery(xqilla.parse(X(query.c_str()), context, 0, XQilla::NO_ADOPT_CONTEXT)); context->setContextItem(ci); return pquery->execute(context)->toSequence(context); } string timestamp(string &dateTime) { time_t tt; time(&tt); struct tm *tm_p; #ifdef _MSC_VER tm_p = localtime(&tt); #else struct tm tm; tm_p = &tm; localtime_r(&tt, &tm); #endif char szDate[256]; sprintf(szDate,"%04d-%02d-%02dT%02d:%02d:%02dZ", tm_p->tm_year+1900, tm_p->tm_mon+1, tm_p->tm_mday, tm_p->tm_hour, tm_p->tm_min, tm_p->tm_sec); dateTime = szDate; sprintf(szDate,"%04d%02d%02d%02d%02d%02d", tm_p->tm_year+1900, tm_p->tm_mon+1, tm_p->tm_mday, tm_p->tm_hour, tm_p->tm_min, tm_p->tm_sec); return szDate; } class Timer { public: Timer() { reset(); } void reset() { start_ = 0; duration_ = 0; } void start() { start_ = getTime(); } void stop() { unsigned long end = getTime(); duration_ += end - start_; } double durationInSeconds() const { return ((double)duration_ / MILLISECS_IN_SECS); } private: static unsigned long getTime() { return XMLPlatformUtils::getCurrentMillis(); } unsigned long start_; unsigned long duration_; }; class Stats { public: string name; string data; string size; map info; int count; Timer timer; Stats() { name.clear(); data.clear(); size.clear(); reset(); } void reset() { info.clear(); count = 0; timer.reset(); } }; class StatsReporter { public: StatsReporter(string name, bool verbose) : verbose_(verbose), totalTime_(0), textCentricTime_(0), dataCentricTime_(0), multipleDocumentTime_(0), singleDocumentTime_(0), file_((name + timestamp(timestamp_) + ".xml").c_str()) { if(!file_.is_open()) { cerr << "Unable to open statistics file: " << name << timestamp_ << ".xml" << endl; exit(-1); } file_ << "" << endl; if(verbose_) { cout << "*********************************************************************" << endl; cout << "Benchmark Statistics" << endl << endl; ::snprintf(buffer_, 255, " %5s | %5s | %9s | %10s | %5s | %10s ", "Name", "Data", "Size", "Time/s", "Count", "Ops/s"); cout << buffer_ << endl; cout << "-------+-------+-----------+------------+-------+------------" << endl; } } ~StatsReporter() { file_ << "" << endl; file_.close(); if(verbose_) { cout << endl; cout << "Text Centric Total time/s: " << textCentricTime_ << endl; cout << "Data Centric Total time/s: " << dataCentricTime_ << endl; cout << endl; cout << "Multiple Document Total time/s: " << multipleDocumentTime_ << endl; cout << "Single Document Total time/s: " << singleDocumentTime_ << endl; cout << endl; cout << "Total time/s: " << totalTime_ << endl; cout << "*********************************************************************" << endl; } } void reportStats(const Stats &stats) { file_ << " " << endl; file_ << " " << stats.data << "" << endl; file_ << " " << stats.size << "" << endl; for(map::const_iterator i = stats.info.begin(); i != stats.info.end(); ++i) { file_ << " <" << i->first << ">" << i->second << "first << ">" << endl; } file_ << " " << stats.count << "" << endl; file_ << " " << endl; file_ << " " << endl; if(verbose_) { ::snprintf(buffer_, 255, " %5s | %5s | %9s | %10f | %5i | %10f ", stats.name.c_str(), stats.data.c_str(), stats.size.c_str(), stats.timer.durationInSeconds(), stats.count, ((double)stats.count) / stats.timer.durationInSeconds()); cout << buffer_ << endl; totalTime_ += stats.timer.durationInSeconds(); if(stats.data.find("TC") != string::npos) { textCentricTime_ += stats.timer.durationInSeconds(); } else { dataCentricTime_ += stats.timer.durationInSeconds(); } if(stats.data.find("MD") != string::npos) { multipleDocumentTime_ += stats.timer.durationInSeconds(); } else { singleDocumentTime_ += stats.timer.durationInSeconds(); } } } private: bool verbose_; char buffer_[255]; double totalTime_; double textCentricTime_; double dataCentricTime_; double multipleDocumentTime_; double singleDocumentTime_; string timestamp_; ofstream file_; }; class XMarkResolver : public URIResolver { public: vector defaultCollection; virtual bool resolveDocument(Sequence &result, const XMLCh* uri, DynamicContext* context, const QueryPathNode *projection) { return false; } virtual bool resolveCollection(Sequence &result, const XMLCh* uri, DynamicContext* context, const QueryPathNode *projection) { return false; } virtual bool resolveDefaultCollection(Sequence &result, DynamicContext* context, const QueryPathNode *projection) { for(vector::iterator s = defaultCollection.begin(); s != defaultCollection.end(); ++s) { result.joinSequence(context->resolveDocument(X(s->c_str()), 0, projection)); } return true; } virtual bool putDocument(const Node::Ptr &document, const XMLCh *uri, DynamicContext *context) { return false; } }; void queryBenchmarkData(XQilla &xqilla, DynamicContext *config_context, const Item::Ptr &config, string &dataPath, XQillaConfiguration *conf, Stats &stats, StatsReporter &reporter) { // Find the files XMarkResolver resolver; Result files = query(xqilla, config_context, config, "for $a in /benchmark_data/data_type[@name = '" + stats.data + "']/size[@name = '" + stats.size + "']/file/@name return data($a)"); Item::Ptr file; while((file = files->next(config_context)).notNull()) { string fullpath = dataPath + stats.data + "/" + stats.size + "/" + UTF8(file->asString(config_context)); resolver.defaultCollection.push_back(fullpath); } // Find the queries Result queries = query(xqilla, config_context, config, "for $a at $pos in /benchmark_data/data_type[@name = '" + stats.data + "']/query return (data($a/description), data($a/action), $pos)"); Item::Ptr query; while((query = queries->next(config_context)).notNull()) { stats.reset(); stats.info["description"] = UTF8(query->asString(config_context)); query = queries->next(config_context); string action = UTF8(query->asString(config_context)); query = queries->next(config_context); stats.info["query_index"] = UTF8(query->asString(config_context)); // Replace "input()" with the correct "collection()" function call string::size_type pos = action.find("input()"); while(pos != string::npos) { action = action.replace(pos, 7, "collection()"); pos = action.find("input()"); } stats.info["action"] = ""; try { AutoDelete context(xqilla.createContext(XQilla::XQUERY, conf)); context->registerURIResolver(&resolver, /*adopt*/false); AutoDelete query(xqilla.parse(X(action.c_str()), context, 0, XQilla::NO_ADOPT_CONTEXT)); // Run the query for real, until the total duration is at least MAXIMUM_TIME_FOR_QUERIES while(stats.timer.durationInSeconds() < MAXIMUM_TIME_FOR_QUERIES) { stats.timer.start(); Result result = query->execute(context.get()); Item::Ptr item; while((item = result->next(context.get())).notNull()) { } stats.timer.stop(); ++stats.count; } } catch(XQException& e) { cerr << UTF8(e.getError()) << endl; cerr << "at " << UTF8(e.getXQueryFile()) << ":" << e.getXQueryLine() << ":" << e.getXQueryColumn() << endl; cerr << "at " << e.getCppFile() << ":" << e.getCppLine() << endl; exit(-1); } catch(DOMException &de) { cerr << "DOMException: " << UTF8(de.getMessage()) << endl; exit(-1); } catch(...) { cerr << "[Unknown exception]"; exit(-1); } stats.name = "query"; reporter.reportStats(stats); } } void usage(const char *progname) { const char *name = progname; while(*progname != 0) { if(*progname == '/' || *progname == '\\') { ++progname; name = progname; } else { ++progname; } } cerr << "Usage: " << name << " [options] benchmark_config_file" << endl << endl; cerr << "-h : Show this display" << endl; cerr << "-x : Use the Xerces-C data model (default is the FastXDM)" << endl; } int main(int argc, char *argv[]) { string configPath; string dataPath; XercesConfiguration xercesConf; FastXDMConfiguration fastConf; XQillaConfiguration *conf = &fastConf; for(int i = 1; i < argc; ++i) { if(*argv[i] == '-' && argv[i][2] == '\0' ){ switch(argv[i][1]) { case 'h': { usage(argv[0]); return 0; } case 'x': { conf = &xercesConf; break; } default: { cerr << "Unknown option: " << argv[i] << endl; usage(argv[0]); return 1; } } } else if(configPath.empty()) { configPath = argv[i]; string::size_type pos = configPath.rfind("/"); if(pos != string::npos) { dataPath = configPath.substr(0, pos + 1); } } else { cerr << "Too many parameters" << endl; usage(argv[0]); return 1; } } if(configPath.empty()) { cerr << "Path to the benchmark configuration not specified"<< endl; usage(argv[0]); return 1; } XQilla xqilla; AutoDelete context(xqilla.createContext()); Sequence seq = context->resolveDocument(X(configPath.c_str())); if(seq.isEmpty()) { cerr << "Benchmark configuration not found"<< endl; usage(argv[0]); return 1; } Item::Ptr config = seq.first(); Sequence data_types = query(xqilla, context, config, "distinct-values(/benchmark_data/data_type/@name)"); Sequence size_types = query(xqilla, context, config, "distinct-values(/benchmark_data/data_type/size/@name)"); StatsReporter reporter("statistics", /*verbose*/true); Stats stats; Item::Ptr data; Result data_result = data_types; while((data = data_result->next(context)).notNull()) { stats.data = UTF8(data->asString(context)); Item::Ptr size; Result size_result = size_types; while((size = size_result->next(context)).notNull()) { stats.size = UTF8(size->asString(context)); queryBenchmarkData(xqilla, context, config, dataPath, conf, stats, reporter); } } return 0; } XQilla-2.3.0/Makefile.in0000644000151400015140000207554211653565552011724 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ bin_PROGRAMS = xqilla$(EXEEXT) noinst_PROGRAMS = xqtsRunner$(EXEEXT) xmarkRunner$(EXEEXT) \ simple-basic$(EXEEXT) simple-context-item$(EXEEXT) \ xqc-basic$(EXEEXT) xqc-context-item$(EXEEXT) \ compile-delayed-module$(EXEEXT) $(am__EXEEXT_1) @BUILD_DOM_SAMPLES_TRUE@am__append_1 = dom-basic dom-context-item dom-resolver subdir = . DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(top_srcdir)/configure \ $(top_srcdir)/src/config/xqilla_config_unix.h.in ChangeLog \ TODO autotools/config.guess autotools/config.sub \ autotools/depcomp autotools/install-sh autotools/ltmain.sh \ autotools/missing autotools/mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/autotools/m4/libtool.m4 \ $(top_srcdir)/autotools/m4/ltoptions.m4 \ $(top_srcdir)/autotools/m4/ltsugar.m4 \ $(top_srcdir)/autotools/m4/ltversion.m4 \ $(top_srcdir)/autotools/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(SHELL) $(top_srcdir)/autotools/mkinstalldirs CONFIG_HEADER = $(top_builddir)/src/config/xqilla_config_unix.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" LTLIBRARIES = $(lib_LTLIBRARIES) libxqilla_la_LIBADD = am_libxqilla_la_OBJECTS = ReferenceCounted.lo BaseMemoryManager.lo \ ProxyMemoryManager.lo StringPool.lo XPath2MemoryManagerImpl.lo \ UpdateFactory.lo CollationImpl.lo CodepointCollation.lo \ VarStoreImpl.lo VarTypeStoreImpl.lo VarHashEntryImpl.lo \ XQContextImpl.lo XQDynamicContextImpl.lo ItemFactoryImpl.lo \ XQAtomize.lo XQEffectiveBooleanValue.lo XQMap.lo \ XQAnalyzeString.lo XQCastableAs.lo XQCastAs.lo \ XQContextItem.lo XQCopy.lo XQCopyOf.lo XQFunction.lo XQIf.lo \ ASTNodeImpl.lo XQInlineFunction.lo XQLiteral.lo XQNav.lo \ XQOperator.lo XQSequence.lo XQStep.lo XQTreatAs.lo \ XQFunctionCoercion.lo XQVariable.lo StaticAnalysis.lo \ StaticType.lo NumericFunction.lo XQDOMConstructor.lo \ XQDocumentConstructor.lo XQElementConstructor.lo \ XQAttributeConstructor.lo XQNamespaceConstructor.lo \ XQPIConstructor.lo XQCommentConstructor.lo \ XQTextConstructor.lo XQFunctionCall.lo XQFunctionConversion.lo \ XQFunctionDeref.lo XQPartialApply.lo XQFunctionRef.lo \ XQGlobalVariable.lo XQOrderingChange.lo XQQuantified.lo \ XQValidate.lo XQTypeswitch.lo ConvertFunctionArg.lo \ XQDocumentOrder.lo XQPredicate.lo XQReturn.lo TupleNode.lo \ ContextTuple.lo ForTuple.lo LetTuple.lo WhereTuple.lo \ CountTuple.lo OrderByTuple.lo XQNamespaceBinding.lo \ XQCallTemplate.lo XQApplyTemplates.lo ASTDebugHook.lo \ DebugHookDecorator.lo TupleDebugHook.lo InputParser.lo \ InteractiveDebugger.lo StackFrame.lo ContentSequenceFilter.lo \ EventGenerator.lo EventSerializer.lo NoInheritFilter.lo \ NSFixupFilter.lo QueryPathTreeFilter.lo FTContains.lo \ FTWords.lo FTOr.lo FTAnd.lo FTMildnot.lo FTUnaryNot.lo \ DefaultTokenizer.lo DefaultTokenStore.lo FTOrder.lo \ FTDistance.lo FTScope.lo FTContent.lo FTWindow.lo \ XQillaBuilderImpl.lo XQillaDocumentImpl.lo \ XQillaExpressionImpl.lo XQillaNSResolverImpl.lo \ XQillaXMLGrammarPoolImpl.lo XPathDocumentImpl.lo \ XPathNamespaceImpl.lo XPath2ResultImpl.lo \ XQillaImplementation.lo XPath2NodeSerializer.lo XQilla.lo \ XQQuery.lo UTF8Str.lo XMLChCompare.lo XStr.lo ContextUtils.lo \ DateUtils.lo NumUtils.lo XQillaPlatformUtils.lo \ XPath2NSUtils.lo XPath2Utils.lo UnicodeTransformer.lo \ utf8proc.lo DelayedModule.lo XQillaException.lo XQException.lo \ EXSLTMathFunction.lo ExternalFunction.lo XQillaFunction.lo \ FunctionParseXML.lo FuncFactory.lo FunctionLookup.lo \ FunctionAbs.lo FunctionAcos.lo FunctionAsin.lo FunctionAtan.lo \ FunctionBaseURI.lo FunctionCaseFold.lo FunctionCeiling.lo \ FunctionCodepointsToString.lo FunctionCollection.lo \ FunctionCompare.lo FunctionConcat.lo FunctionContains.lo \ FunctionCount.lo FunctionCos.lo FunctionCurrentDate.lo \ FunctionCurrentDateTime.lo FunctionCurrentTime.lo \ FunctionDateTime.lo FunctionDefaultCollation.lo \ FunctionDistinctValues.lo FunctionDocAvailable.lo \ FunctionDoc.lo FunctionDocument.lo FunctionDocumentURI.lo \ FunctionEmpty.lo FunctionEndsWith.lo FunctionError.lo \ FunctionExp.lo FunctionFloor.lo FunctionFunctionArity.lo \ FunctionFunctionName.lo FunctionId.lo FunctionIdref.lo \ FunctionImplicitTimezone.lo FunctionLang.lo FunctionLast.lo \ FunctionLocalname.lo FunctionLocalNameFromQName.lo \ FunctionLog.lo FunctionLowerCase.lo FunctionMatches.lo \ FunctionName.lo FunctionNamespaceUri.lo \ FunctionNamespaceURIFromQName.lo FunctionNilled.lo \ FunctionNodeName.lo FunctionNormalizeSpace.lo \ FunctionNormalizeUnicode.lo FunctionNot.lo FunctionNumber.lo \ FunctionPosition.lo FunctionPower.lo \ FunctionPrefixFromQName.lo FunctionQName.lo \ FunctionRegexGroup.lo FunctionReplace.lo FunctionResolveURI.lo \ FunctionRoot.lo FunctionRound.lo FunctionRoundHalfToEven.lo \ FunctionSin.lo FunctionSqrt.lo FunctionTan.lo \ FunctionSentences.lo FunctionStartsWith.lo \ FunctionStaticBaseURI.lo FunctionString.lo \ FunctionStringLength.lo FunctionStringToCodepoints.lo \ FunctionSubstring.lo FunctionTime.lo FunctionTokenize.lo \ FunctionTrace.lo FunctionHead.lo FunctionTail.lo \ FunctionUnordered.lo FunctionUnparsedText.lo \ FunctionUpperCase.lo FunctionWords.lo \ FunctionAdjustDateTimeToTimezone.lo \ FunctionAdjustDateToTimezone.lo \ FunctionAdjustTimeToTimezone.lo FunctionDayFromDate.lo \ FunctionDayFromDateTime.lo FunctionDaysFromDuration.lo \ FunctionHoursFromDateTime.lo FunctionHoursFromDuration.lo \ FunctionHoursFromTime.lo FunctionMinutesFromDateTime.lo \ FunctionMinutesFromDuration.lo FunctionMinutesFromTime.lo \ FunctionMonthFromDate.lo FunctionMonthFromDateTime.lo \ FunctionMonthsFromDuration.lo FunctionSecondsFromDateTime.lo \ FunctionSecondsFromDuration.lo FunctionSecondsFromTime.lo \ FunctionTimezoneFromDate.lo FunctionTimezoneFromDateTime.lo \ FunctionTimezoneFromTime.lo FunctionYearFromDate.lo \ FunctionYearFromDateTime.lo FunctionYearsFromDuration.lo \ FunctionParseJSON.lo FunctionSerializeJSON.lo \ FunctionParseHTML.lo FunctionExplain.lo \ FunctionAnalyzeString.lo RegExpFunction.lo XQUserFunction.lo \ FunctionSignature.lo BuiltInModules.lo ATAnySimpleTypeImpl.lo \ ATAnyURIOrDerivedImpl.lo ATBase64BinaryOrDerivedImpl.lo \ ATBooleanOrDerivedImpl.lo ATDateOrDerivedImpl.lo \ ATDateTimeOrDerivedImpl.lo ATDecimalOrDerivedImpl.lo \ ATDoubleOrDerivedImpl.lo ATDurationOrDerivedImpl.lo \ ATFloatOrDerivedImpl.lo ATGDayOrDerivedImpl.lo \ ATGMonthDayOrDerivedImpl.lo ATGMonthOrDerivedImpl.lo \ ATGYearMonthOrDerivedImpl.lo ATGYearOrDerivedImpl.lo \ ATHexBinaryOrDerivedImpl.lo ATNotationOrDerivedImpl.lo \ ATQNameOrDerivedImpl.lo ATStringOrDerivedImpl.lo \ ATTimeOrDerivedImpl.lo ATUntypedAtomicImpl.lo \ FunctionRefImpl.lo DatatypeFactory.lo DatatypeLookup.lo \ AnyAtomicType.lo ATDurationOrDerived.lo ATUntypedAtomic.lo \ DateOrTimeType.lo Item.lo Node.lo Numeric.lo Timezone.lo \ QName.lo XQParser.lo XQLexer.lo XQLexer2.lo XSLT2Lexer.lo \ mapm5sin.lo mapm_add.lo mapmasin.lo mapmasn0.lo mapmcbrt.lo \ mapmcnst.lo mapm_cpi.lo m_apm.lo mapm_div.lo mapm_exp.lo \ mapmfact.lo mapm_fam.lo mapm_fft.lo mapm_flr.lo mapmfmul.lo \ mapm_fpf.lo mapm_gcd.lo mapmgues.lo mapmhasn.lo mapmhsin.lo \ mapmipwr.lo mapmistr.lo mapm_lg2.lo mapm_lg3.lo mapm_log.lo \ mapm_mt.lo mapm_mul.lo mapm_pow.lo mapmpwr2.lo mapm_rcp.lo \ mapm_rnd.lo mapmrsin.lo mapm_set.lo mapm_sin.lo mapmsqrt.lo \ mapmstck.lo mapmutil.lo mapmutl2.lo NodeTest.lo And.lo \ ArithmeticOperator.lo ComparisonOperator.lo Divide.lo \ Equals.lo Except.lo GeneralComp.lo GreaterThan.lo \ GreaterThanEqual.lo IntegerDivide.lo Intersect.lo LessThan.lo \ LessThanEqual.lo Minus.lo Mod.lo Multiply.lo NodeComparison.lo \ NotEquals.lo Or.lo OrderComparison.lo Plus.lo UnaryMinus.lo \ Union.lo DocumentCacheImpl.lo SequenceType.lo \ AnyAtomicTypeDatatypeValidator.lo SchemaValidatorFilter.lo \ FaxppDocumentCacheImpl.lo ClosureResult.lo EmptyResult.lo \ ResultBuffer.lo ResultBufferImpl.lo Result.lo ResultImpl.lo \ SequenceResult.lo Sequence.lo FunctionPut.lo \ PendingUpdateList.lo UApplyUpdates.lo UDelete.lo URename.lo \ UReplace.lo UReplaceValueOf.lo UInsertAsFirst.lo \ UInsertAsLast.lo UInsertInto.lo UInsertAfter.lo \ UInsertBefore.lo UTransform.lo TestSuiteParser.lo \ TestSuiteResultListener.lo TestSuiteRunner.lo \ FastXDMUpdateFactory.lo FastXDMDocument.lo FastXDMNodeImpl.lo \ FastXDMConfiguration.lo FastXDMSequenceBuilder.lo \ AncestorAxis.lo AncestorOrSelfAxis.lo AttributeAxis.lo Axis.lo \ ChildAxis.lo DescendantAxis.lo DescendantOrSelfAxis.lo \ FollowingAxis.lo FollowingSiblingAxis.lo NamespaceAxis.lo \ ParentAxis.lo PrecedingAxis.lo PrecedingSiblingAxis.lo \ XercesConfiguration.lo XercesNodeImpl.lo \ XercesSequenceBuilder.lo XercesUpdateFactory.lo \ XercesURIResolver.lo Optimizer.lo ASTCopier.lo ASTReleaser.lo \ ASTVisitor.lo PartialEvaluator.lo StaticTyper.lo \ QueryPathNode.lo QueryPathTreeGenerator.lo ASTToXML.lo \ yajl_buf.lo yajl.lo yajl_encode.lo yajl_gen.lo yajl_lex.lo \ yajl_parser.lo XQillaXQCImplementation.lo \ XQillaXQCStaticContext.lo XQillaXQCDynamicContext.lo \ XQillaXQCExpression.lo XQillaXQCSequence.lo libxqilla_la_OBJECTS = $(am_libxqilla_la_OBJECTS) libxqilla_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(libxqilla_la_LDFLAGS) $(LDFLAGS) -o $@ @BUILD_DOM_SAMPLES_TRUE@am__EXEEXT_1 = dom-basic$(EXEEXT) \ @BUILD_DOM_SAMPLES_TRUE@ dom-context-item$(EXEEXT) \ @BUILD_DOM_SAMPLES_TRUE@ dom-resolver$(EXEEXT) PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) am_compile_delayed_module_OBJECTS = compile-delayed-module.$(OBJEXT) compile_delayed_module_OBJECTS = $(am_compile_delayed_module_OBJECTS) compile_delayed_module_LDADD = $(LDADD) compile_delayed_module_DEPENDENCIES = libxqilla.la am_dom_basic_OBJECTS = dom-basic.$(OBJEXT) dom_basic_OBJECTS = $(am_dom_basic_OBJECTS) dom_basic_LDADD = $(LDADD) dom_basic_DEPENDENCIES = libxqilla.la am_dom_context_item_OBJECTS = dom-context-item.$(OBJEXT) dom_context_item_OBJECTS = $(am_dom_context_item_OBJECTS) dom_context_item_LDADD = $(LDADD) dom_context_item_DEPENDENCIES = libxqilla.la am_dom_resolver_OBJECTS = dom-resolver.$(OBJEXT) dom_resolver_OBJECTS = $(am_dom_resolver_OBJECTS) dom_resolver_LDADD = $(LDADD) dom_resolver_DEPENDENCIES = libxqilla.la am_simple_basic_OBJECTS = simple-basic.$(OBJEXT) simple_basic_OBJECTS = $(am_simple_basic_OBJECTS) simple_basic_LDADD = $(LDADD) simple_basic_DEPENDENCIES = libxqilla.la am_simple_context_item_OBJECTS = simple-context-item.$(OBJEXT) simple_context_item_OBJECTS = $(am_simple_context_item_OBJECTS) simple_context_item_LDADD = $(LDADD) simple_context_item_DEPENDENCIES = libxqilla.la am_xmarkRunner_OBJECTS = xmark.$(OBJEXT) xmarkRunner_OBJECTS = $(am_xmarkRunner_OBJECTS) xmarkRunner_LDADD = $(LDADD) xmarkRunner_DEPENDENCIES = libxqilla.la am_xqc_basic_OBJECTS = xqc-basic.$(OBJEXT) xqc_basic_OBJECTS = $(am_xqc_basic_OBJECTS) xqc_basic_LDADD = $(LDADD) xqc_basic_DEPENDENCIES = libxqilla.la am_xqc_context_item_OBJECTS = xqc-context-item.$(OBJEXT) xqc_context_item_OBJECTS = $(am_xqc_context_item_OBJECTS) xqc_context_item_LDADD = $(LDADD) xqc_context_item_DEPENDENCIES = libxqilla.la am_xqilla_OBJECTS = xqilla-commandline.$(OBJEXT) xqilla_OBJECTS = $(am_xqilla_OBJECTS) xqilla_LDADD = $(LDADD) xqilla_DEPENDENCIES = libxqilla.la am_xqtsRunner_OBJECTS = runner.$(OBJEXT) xqtsRunner_OBJECTS = $(am_xqtsRunner_OBJECTS) xqtsRunner_LDADD = $(LDADD) xqtsRunner_DEPENDENCIES = libxqilla.la DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src/config depcomp = $(SHELL) $(top_srcdir)/autotools/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libxqilla_la_SOURCES) $(compile_delayed_module_SOURCES) \ $(dom_basic_SOURCES) $(dom_context_item_SOURCES) \ $(dom_resolver_SOURCES) $(simple_basic_SOURCES) \ $(simple_context_item_SOURCES) $(xmarkRunner_SOURCES) \ $(xqc_basic_SOURCES) $(nodist_EXTRA_xqc_basic_SOURCES) \ $(xqc_context_item_SOURCES) \ $(nodist_EXTRA_xqc_context_item_SOURCES) $(xqilla_SOURCES) \ $(xqtsRunner_SOURCES) DIST_SOURCES = $(libxqilla_la_SOURCES) \ $(compile_delayed_module_SOURCES) $(dom_basic_SOURCES) \ $(dom_context_item_SOURCES) $(dom_resolver_SOURCES) \ $(simple_basic_SOURCES) $(simple_context_item_SOURCES) \ $(xmarkRunner_SOURCES) $(xqc_basic_SOURCES) \ $(xqc_context_item_SOURCES) $(xqilla_SOURCES) \ $(xqtsRunner_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir dist dist-all distcheck ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d "$(distdir)" \ || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr "$(distdir)"; }; } am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz $(distdir).zip GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = -L$(xerces_lib) -R$(xerces_lib) $(faxpp_lib) $(tidy_lib) -lxerces-c $(faxpp_library) $(tidy_library) LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ YACC = @YACC@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ faxpp_include = @faxpp_include@ faxpp_lib = @faxpp_lib@ faxpp_library = @faxpp_library@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ tidy_include = @tidy_include@ tidy_lib = @tidy_lib@ tidy_library = @tidy_library@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ xerces_include = @xerces_include@ xerces_include_dir = @xerces_include_dir@ xerces_lib = @xerces_lib@ AUTOMAKE_OPTIONS = foreign dist-zip SUBDIRS = include INCLUDES = -I$(top_srcdir)/include/ $(xerces_include) -I$(top_srcdir)/src/lexer/ $(faxpp_include) $(tidy_include) LDADD = libxqilla.la ACLOCAL_AMFLAGS = -I autotools/m4 lib_LTLIBRARIES = libxqilla.la # Library version, see http://sourceware.org/autobook/autobook/autobook_91.html # -no-undefined for Cygwin (bug #1639669) libxqilla_la_LDFLAGS = -version-info 6:0:0 -no-undefined libxqilla_la_SOURCES = \ src/framework/ReferenceCounted.cpp \ src/framework/BaseMemoryManager.cpp \ src/framework/ProxyMemoryManager.cpp \ src/framework/StringPool.cpp \ src/framework/XPath2MemoryManagerImpl.cpp \ src/context/UpdateFactory.cpp \ src/context/impl/CollationImpl.cpp \ src/context/impl/CodepointCollation.cpp \ src/context/impl/VarStoreImpl.cpp \ src/context/impl/VarTypeStoreImpl.hpp \ src/context/impl/VarTypeStoreImpl.cpp \ src/context/impl/VarHashEntryImpl.cpp \ src/context/impl/XQContextImpl.cpp \ src/context/impl/XQDynamicContextImpl.cpp \ src/context/impl/ItemFactoryImpl.cpp \ src/ast/XQAtomize.cpp \ src/ast/XQEffectiveBooleanValue.cpp \ src/ast/XQMap.cpp \ src/ast/XQAnalyzeString.cpp \ src/ast/XQCastableAs.cpp \ src/ast/XQCastAs.cpp \ src/ast/XQContextItem.cpp \ src/ast/XQCopy.cpp \ src/ast/XQCopyOf.cpp \ src/ast/XQFunction.cpp \ src/ast/XQIf.cpp \ src/ast/ASTNodeImpl.cpp \ src/ast/XQInlineFunction.cpp \ src/ast/XQLiteral.cpp \ src/ast/XQNav.cpp \ src/ast/XQOperator.cpp \ src/ast/XQSequence.cpp \ src/ast/XQStep.cpp \ src/ast/XQTreatAs.cpp \ src/ast/XQFunctionCoercion.cpp \ src/ast/XQVariable.cpp \ src/ast/StaticAnalysis.cpp \ src/ast/StaticType.cpp \ src/ast/NumericFunction.cpp \ src/ast/XQDOMConstructor.cpp \ src/ast/XQDocumentConstructor.cpp \ src/ast/XQElementConstructor.cpp \ src/ast/XQAttributeConstructor.cpp \ src/ast/XQNamespaceConstructor.cpp \ src/ast/XQPIConstructor.cpp \ src/ast/XQCommentConstructor.cpp \ src/ast/XQTextConstructor.cpp \ src/ast/XQFunctionCall.cpp \ src/ast/XQFunctionConversion.cpp \ src/ast/XQFunctionDeref.cpp \ src/ast/XQPartialApply.cpp \ src/ast/XQFunctionRef.cpp \ src/ast/XQGlobalVariable.cpp \ src/ast/XQOrderingChange.cpp \ src/ast/XQQuantified.cpp \ src/ast/XQValidate.cpp \ src/ast/XQTypeswitch.cpp \ src/ast/ConvertFunctionArg.cpp \ src/ast/XQDocumentOrder.cpp \ src/ast/XQPredicate.cpp \ src/ast/XQReturn.cpp \ src/ast/TupleNode.cpp \ src/ast/ContextTuple.cpp \ src/ast/ForTuple.cpp \ src/ast/LetTuple.cpp \ src/ast/WhereTuple.cpp \ src/ast/CountTuple.cpp \ src/ast/OrderByTuple.cpp \ src/ast/XQNamespaceBinding.cpp \ src/ast/XQCallTemplate.cpp \ src/ast/XQApplyTemplates.cpp \ src/debug/ASTDebugHook.cpp \ src/debug/DebugHookDecorator.cpp \ src/debug/TupleDebugHook.cpp \ src/debug/InputParser.cpp \ src/debug/InteractiveDebugger.cpp \ src/debug/StackFrame.cpp \ src/events/ContentSequenceFilter.cpp \ src/events/EventGenerator.cpp \ src/events/EventSerializer.cpp \ src/events/NoInheritFilter.cpp \ src/events/NoInheritFilter.hpp \ src/events/NSFixupFilter.cpp \ src/events/QueryPathTreeFilter.cpp \ src/fulltext/FTContains.cpp \ src/fulltext/FTWords.cpp \ src/fulltext/FTOr.cpp \ src/fulltext/FTAnd.cpp \ src/fulltext/FTMildnot.cpp \ src/fulltext/FTUnaryNot.cpp \ src/fulltext/DefaultTokenizer.cpp \ src/fulltext/DefaultTokenStore.cpp \ src/fulltext/FTOrder.cpp \ src/fulltext/FTDistance.cpp \ src/fulltext/FTScope.cpp \ src/fulltext/FTContent.cpp \ src/fulltext/FTWindow.cpp \ src/dom-api/impl/XQillaBuilderImpl.cpp \ src/dom-api/impl/XQillaBuilderImpl.hpp \ src/dom-api/impl/XQillaDocumentImpl.cpp \ src/dom-api/impl/XQillaDocumentImpl.hpp \ src/dom-api/impl/XQillaExpressionImpl.cpp \ src/dom-api/impl/XQillaExpressionImpl.hpp \ src/dom-api/impl/XQillaNSResolverImpl.cpp \ src/dom-api/impl/XQillaXMLGrammarPoolImpl.cpp \ src/dom-api/impl/XQillaXMLGrammarPoolImpl.hpp \ src/dom-api/impl/XPathDocumentImpl.cpp \ src/dom-api/impl/XPathDocumentImpl.hpp \ src/dom-api/impl/XPathNamespaceImpl.cpp \ src/dom-api/impl/XPathNamespaceImpl.hpp \ src/dom-api/impl/XPath2ResultImpl.cpp \ src/dom-api/impl/XPath2ResultImpl.hpp \ src/dom-api/XQillaImplementation.cpp \ src/dom-api/XQillaImplementation.hpp \ src/dom-api/XPath2NodeSerializer.cpp \ src/dom-api/XPath2NodeSerializer.hpp \ src/simple-api/XQilla.cpp \ src/simple-api/XQQuery.cpp \ src/utils/UTF8Str.cpp \ src/utils/XMLChCompare.cpp \ src/utils/XStr.cpp \ src/utils/ContextUtils.cpp \ src/utils/DateUtils.cpp \ src/utils/DateUtils.hpp \ src/utils/NumUtils.cpp \ src/utils/XQillaPlatformUtils.cpp \ src/utils/XPath2NSUtils.cpp \ src/utils/XPath2Utils.cpp \ src/utils/UnicodeTransformer.cpp \ src/utils/utf8proc/utf8proc.c \ src/utils/utf8proc/utf8proc_data.h \ src/utils/DelayedModule.cpp \ src/exceptions/XQillaException.cpp \ src/exceptions/XQException.cpp \ src/exceptions/InvalidLexicalSpaceException.hpp \ src/exceptions/MiscException.hpp \ src/functions/EXSLTMathFunction.cpp \ src/functions/ExternalFunction.cpp \ src/functions/XQillaFunction.cpp \ src/functions/FunctionParseXML.cpp \ src/functions/FuncFactory.cpp \ src/functions/FunctionLookup.cpp \ src/functions/FunctionAbs.cpp \ src/functions/FunctionAcos.cpp \ src/functions/FunctionAsin.cpp \ src/functions/FunctionAtan.cpp \ src/functions/FunctionBaseURI.cpp \ src/functions/FunctionCaseFold.cpp \ src/functions/FunctionCeiling.cpp \ src/functions/FunctionCodepointsToString.cpp \ src/functions/FunctionCollection.cpp \ src/functions/FunctionCompare.cpp \ src/functions/FunctionConcat.cpp \ src/functions/FunctionContains.cpp \ src/functions/FunctionCount.cpp \ src/functions/FunctionCos.cpp \ src/functions/FunctionCurrentDate.cpp \ src/functions/FunctionCurrentDateTime.cpp \ src/functions/FunctionCurrentTime.cpp \ src/functions/FunctionDateTime.cpp \ src/functions/FunctionDefaultCollation.cpp \ src/functions/FunctionDistinctValues.cpp \ src/functions/FunctionDocAvailable.cpp \ src/functions/FunctionDoc.cpp \ src/functions/FunctionDocument.cpp \ src/functions/FunctionDocumentURI.cpp \ src/functions/FunctionEmpty.cpp \ src/functions/FunctionEndsWith.cpp \ src/functions/FunctionError.cpp \ src/functions/FunctionExp.cpp \ src/functions/FunctionFloor.cpp \ src/functions/FunctionFunctionArity.cpp \ src/functions/FunctionFunctionName.cpp \ src/functions/FunctionId.cpp \ src/functions/FunctionIdref.cpp \ src/functions/FunctionImplicitTimezone.cpp \ src/functions/FunctionLang.cpp \ src/functions/FunctionLast.cpp \ src/functions/FunctionLocalname.cpp \ src/functions/FunctionLocalNameFromQName.cpp \ src/functions/FunctionLog.cpp \ src/functions/FunctionLowerCase.cpp \ src/functions/FunctionMatches.cpp \ src/functions/FunctionName.cpp \ src/functions/FunctionNamespaceUri.cpp \ src/functions/FunctionNamespaceURIFromQName.cpp \ src/functions/FunctionNilled.cpp \ src/functions/FunctionNodeName.cpp \ src/functions/FunctionNormalizeSpace.cpp \ src/functions/FunctionNormalizeUnicode.cpp \ src/functions/FunctionNot.cpp \ src/functions/FunctionNumber.cpp \ src/functions/FunctionPosition.cpp \ src/functions/FunctionPower.cpp \ src/functions/FunctionPrefixFromQName.cpp \ src/functions/FunctionQName.cpp \ src/functions/FunctionRegexGroup.cpp \ src/functions/FunctionReplace.cpp \ src/functions/FunctionResolveURI.cpp \ src/functions/FunctionRoot.cpp \ src/functions/FunctionRound.cpp \ src/functions/FunctionRoundHalfToEven.cpp \ src/functions/FunctionSin.cpp \ src/functions/FunctionSqrt.cpp \ src/functions/FunctionTan.cpp \ src/functions/FunctionSentences.cpp \ src/functions/FunctionStartsWith.cpp \ src/functions/FunctionStaticBaseURI.cpp \ src/functions/FunctionString.cpp \ src/functions/FunctionStringLength.cpp \ src/functions/FunctionStringToCodepoints.cpp \ src/functions/FunctionSubstring.cpp \ src/functions/FunctionTime.cpp \ src/functions/FunctionTokenize.cpp \ src/functions/FunctionTrace.cpp \ src/functions/FunctionHead.cpp \ src/functions/FunctionTail.cpp \ src/functions/FunctionUnordered.cpp \ src/functions/FunctionUnparsedText.cpp \ src/functions/FunctionUpperCase.cpp \ src/functions/FunctionWords.cpp \ src/functions/FunctionAdjustDateTimeToTimezone.cpp \ src/functions/FunctionAdjustDateToTimezone.cpp \ src/functions/FunctionAdjustTimeToTimezone.cpp \ src/functions/FunctionDayFromDate.cpp \ src/functions/FunctionDayFromDateTime.cpp \ src/functions/FunctionDaysFromDuration.cpp \ src/functions/FunctionHoursFromDateTime.cpp \ src/functions/FunctionHoursFromDuration.cpp \ src/functions/FunctionHoursFromTime.cpp \ src/functions/FunctionMinutesFromDateTime.cpp \ src/functions/FunctionMinutesFromDuration.cpp \ src/functions/FunctionMinutesFromTime.cpp \ src/functions/FunctionMonthFromDate.cpp \ src/functions/FunctionMonthFromDateTime.cpp \ src/functions/FunctionMonthsFromDuration.cpp \ src/functions/FunctionSecondsFromDateTime.cpp \ src/functions/FunctionSecondsFromDuration.cpp \ src/functions/FunctionSecondsFromTime.cpp \ src/functions/FunctionTimezoneFromDate.cpp \ src/functions/FunctionTimezoneFromDateTime.cpp \ src/functions/FunctionTimezoneFromTime.cpp \ src/functions/FunctionYearFromDate.cpp \ src/functions/FunctionYearFromDateTime.cpp \ src/functions/FunctionYearsFromDuration.cpp \ src/functions/FunctionParseJSON.cpp \ src/functions/FunctionSerializeJSON.cpp \ src/functions/FunctionParseHTML.cpp \ src/functions/FunctionExplain.cpp \ src/functions/FunctionAnalyzeString.cpp \ src/functions/RegExpFunction.cpp \ src/functions/XQUserFunction.cpp \ src/functions/FunctionSignature.cpp \ src/functions/BuiltInModules.cpp \ src/functions/CoreModule.hpp \ src/functions/FnModule.hpp \ src/items/impl/ATAnySimpleTypeImpl.cpp \ src/items/impl/ATAnySimpleTypeImpl.hpp \ src/items/impl/ATAnyURIOrDerivedImpl.cpp \ src/items/impl/ATAnyURIOrDerivedImpl.hpp \ src/items/impl/ATBase64BinaryOrDerivedImpl.cpp \ src/items/impl/ATBase64BinaryOrDerivedImpl.hpp \ src/items/impl/ATBooleanOrDerivedImpl.cpp \ src/items/impl/ATDateOrDerivedImpl.cpp \ src/items/impl/ATDateTimeOrDerivedImpl.cpp \ src/items/impl/ATDecimalOrDerivedImpl.cpp \ src/items/impl/ATDoubleOrDerivedImpl.cpp \ src/items/impl/ATDurationOrDerivedImpl.cpp \ src/items/impl/ATFloatOrDerivedImpl.cpp \ src/items/impl/ATGDayOrDerivedImpl.cpp \ src/items/impl/ATGMonthDayOrDerivedImpl.cpp \ src/items/impl/ATGMonthOrDerivedImpl.cpp \ src/items/impl/ATGYearMonthOrDerivedImpl.cpp \ src/items/impl/ATGYearOrDerivedImpl.cpp \ src/items/impl/ATHexBinaryOrDerivedImpl.cpp \ src/items/impl/ATHexBinaryOrDerivedImpl.hpp \ src/items/impl/ATNotationOrDerivedImpl.cpp \ src/items/impl/ATNotationOrDerivedImpl.hpp \ src/items/impl/ATQNameOrDerivedImpl.cpp \ src/items/impl/ATStringOrDerivedImpl.cpp \ src/items/impl/ATStringOrDerivedImpl.hpp \ src/items/impl/ATTimeOrDerivedImpl.cpp \ src/items/impl/ATUntypedAtomicImpl.cpp \ src/items/impl/ATUntypedAtomicImpl.hpp \ src/items/impl/FunctionRefImpl.cpp \ src/items/impl/FunctionRefImpl.hpp \ src/items/DatatypeFactory.cpp \ src/items/DatatypeFactoryTemplate.hpp \ src/items/DatatypeLookup.cpp \ src/items/AnyAtomicType.cpp \ src/items/ATDurationOrDerived.cpp \ src/items/ATUntypedAtomic.cpp \ src/items/DateOrTimeType.cpp \ src/items/Item.cpp \ src/items/Node.cpp \ src/items/Numeric.cpp \ src/items/Timezone.cpp \ src/parser/QName.cpp \ src/parser/XQParser.cpp \ src/parser/XQParser.hpp \ src/lexer/FlexLexer.h \ src/lexer/XQLexer.cpp \ src/lexer/XQLexer2.cpp \ src/lexer/XQLexer.hpp \ src/lexer/XSLT2Lexer.cpp \ src/lexer/XSLT2Lexer.hpp \ src/mapm/mapm5sin.c \ src/mapm/mapm_add.c \ src/mapm/mapmasin.c \ src/mapm/mapmasn0.c \ src/mapm/mapmcbrt.c \ src/mapm/mapmcnst.c \ src/mapm/mapm_cpi.c \ src/mapm/m_apm.cpp \ src/mapm/mapm_div.c \ src/mapm/mapm_exp.c \ src/mapm/mapmfact.c \ src/mapm/mapm_fam.c \ src/mapm/mapm_fft.c \ src/mapm/mapm_flr.c \ src/mapm/mapmfmul.c \ src/mapm/mapm_fpf.c \ src/mapm/mapm_gcd.c \ src/mapm/mapmgues.c \ src/mapm/mapmhasn.c \ src/mapm/mapmhsin.c \ src/mapm/mapmipwr.c \ src/mapm/mapmistr.c \ src/mapm/m_apm_lc.h \ src/mapm/mapm_lg2.c \ src/mapm/mapm_lg3.c \ src/mapm/mapm_log.c \ src/mapm/mapm_mt.cpp \ src/mapm/mapm_mul.c \ src/mapm/mapm_pow.c \ src/mapm/mapmpwr2.c \ src/mapm/mapm_rcp.c \ src/mapm/mapm_rnd.c \ src/mapm/mapmrsin.c \ src/mapm/mapm_set.c \ src/mapm/mapm_sin.c \ src/mapm/mapmsqrt.c \ src/mapm/mapmstck.c \ src/mapm/mapmutil.c \ src/mapm/mapmutl2.c \ src/mapm/README \ src/axis/NodeTest.cpp \ src/operators/And.cpp \ src/operators/ArithmeticOperator.cpp \ src/operators/ComparisonOperator.cpp \ src/operators/Divide.cpp \ src/operators/Equals.cpp \ src/operators/Except.cpp \ src/operators/GeneralComp.cpp \ src/operators/GreaterThan.cpp \ src/operators/GreaterThanEqual.cpp \ src/operators/IntegerDivide.cpp \ src/operators/Intersect.cpp \ src/operators/LessThan.cpp \ src/operators/LessThanEqual.cpp \ src/operators/Minus.cpp \ src/operators/Mod.cpp \ src/operators/Multiply.cpp \ src/operators/NodeComparison.cpp \ src/operators/NotEquals.cpp \ src/operators/Or.cpp \ src/operators/OrderComparison.cpp \ src/operators/Plus.cpp \ src/operators/UnaryMinus.cpp \ src/operators/Union.cpp \ src/schema/DocumentCacheImpl.cpp \ src/schema/SequenceType.cpp \ src/schema/AnyAtomicTypeDatatypeValidator.cpp \ src/schema/SchemaValidatorFilter.cpp \ src/schema/FaxppDocumentCacheImpl.hpp \ src/schema/FaxppDocumentCacheImpl.cpp \ src/runtime/ClosureResult.cpp \ src/runtime/EmptyResult.cpp \ src/runtime/ResultBuffer.cpp \ src/runtime/ResultBufferImpl.cpp \ src/runtime/Result.cpp \ src/runtime/ResultImpl.cpp \ src/runtime/SequenceResult.cpp \ src/runtime/Sequence.cpp \ src/update/FunctionPut.cpp \ src/update/PendingUpdateList.cpp \ src/update/UApplyUpdates.cpp \ src/update/UDelete.cpp \ src/update/URename.cpp \ src/update/UReplace.cpp \ src/update/UReplaceValueOf.cpp \ src/update/UInsertAsFirst.cpp \ src/update/UInsertAsLast.cpp \ src/update/UInsertInto.cpp \ src/update/UInsertAfter.cpp \ src/update/UInsertBefore.cpp \ src/update/UTransform.cpp \ src/config/xqilla_config.h \ src/xqts/TestSuiteParser.cpp \ src/xqts/TestSuiteResultListener.cpp \ src/xqts/TestSuiteRunner.cpp \ src/fastxdm/FastXDMUpdateFactory.hpp \ src/fastxdm/FastXDMUpdateFactory.cpp \ src/fastxdm/FastXDMDocument.hpp \ src/fastxdm/FastXDMDocument.cpp \ src/fastxdm/FastXDMNodeImpl.hpp \ src/fastxdm/FastXDMNodeImpl.cpp \ src/fastxdm/FastXDMConfiguration.cpp \ src/fastxdm/FastXDMSequenceBuilder.hpp \ src/fastxdm/FastXDMSequenceBuilder.cpp \ src/xerces/AncestorAxis.hpp \ src/xerces/AncestorOrSelfAxis.hpp \ src/xerces/AttributeAxis.hpp \ src/xerces/Axis.hpp \ src/xerces/ChildAxis.hpp \ src/xerces/DescendantAxis.hpp \ src/xerces/DescendantOrSelfAxis.hpp \ src/xerces/FollowingAxis.hpp \ src/xerces/FollowingSiblingAxis.hpp \ src/xerces/NamespaceAxis.hpp \ src/xerces/ParentAxis.hpp \ src/xerces/PrecedingAxis.hpp \ src/xerces/PrecedingSiblingAxis.hpp \ src/xerces/AncestorAxis.cpp \ src/xerces/AncestorOrSelfAxis.cpp \ src/xerces/AttributeAxis.cpp \ src/xerces/Axis.cpp \ src/xerces/ChildAxis.cpp \ src/xerces/DescendantAxis.cpp \ src/xerces/DescendantOrSelfAxis.cpp \ src/xerces/FollowingAxis.cpp \ src/xerces/FollowingSiblingAxis.cpp \ src/xerces/NamespaceAxis.cpp \ src/xerces/ParentAxis.cpp \ src/xerces/PrecedingAxis.cpp \ src/xerces/PrecedingSiblingAxis.cpp \ src/xerces/XercesConfiguration.cpp \ src/xerces/XercesNodeImpl.hpp \ src/xerces/XercesNodeImpl.cpp \ src/xerces/XercesSequenceBuilder.hpp \ src/xerces/XercesSequenceBuilder.cpp \ src/xerces/XercesUpdateFactory.hpp \ src/xerces/XercesUpdateFactory.cpp \ src/xerces/XercesURIResolver.hpp \ src/xerces/XercesURIResolver.cpp \ src/optimizer/Optimizer.cpp \ src/optimizer/ASTCopier.cpp \ src/optimizer/ASTReleaser.cpp \ src/optimizer/ASTVisitor.cpp \ src/optimizer/PartialEvaluator.cpp \ src/optimizer/StaticTyper.cpp \ src/optimizer/QueryPathNode.cpp \ src/optimizer/QueryPathTreeGenerator.cpp \ src/optimizer/ASTToXML.cpp \ src/yajl/yajl_buf.c \ src/yajl/yajl_buf.h \ src/yajl/yajl.c \ src/yajl/yajl_encode.c \ src/yajl/yajl_encode.h \ src/yajl/yajl_gen.c \ src/yajl/yajl_lex.c \ src/yajl/yajl_lex.h \ src/yajl/yajl_parser.c \ src/yajl/yajl_parser.h \ src/yajl/yajl_common.h \ src/yajl/yajl_gen.h \ src/yajl/yajl_parse.h \ src/xqc/XQillaXQCImplementation.cpp \ src/xqc/XQillaXQCImplementation.hpp \ src/xqc/XQillaXQCStaticContext.cpp \ src/xqc/XQillaXQCStaticContext.hpp \ src/xqc/XQillaXQCDynamicContext.cpp \ src/xqc/XQillaXQCDynamicContext.hpp \ src/xqc/XQillaXQCExpression.cpp \ src/xqc/XQillaXQCExpression.hpp \ src/xqc/XQillaXQCSequence.cpp \ src/xqc/XQillaXQCSequence.hpp \ src/xqc/XQillaXQCInputStream.hpp EXTRA_DIST = \ src/lexer/flex.skl \ src/lexer/XQLexer.l \ src/parser/XQParser.y \ src/parser/XQParser.y \ src/samples/dom-api/data.xml \ src/samples/dom-api/data.xsd \ src/samples/dom-api/foo.xml \ src/samples/simple-api/foo.xml \ src/functions/CoreModule.xq \ src/functions/FnModule.xq \ LICENSE \ TODO \ README \ ChangeLog \ docs/Doxyfile.simpleapi.in \ docs/Doxyfile.dom3api.in \ docs/Doxyfile.devapi.in \ docs/Doxyfile.xqc.in \ docs/dom3_header.html \ docs/simple_header.html \ docs/xqc_header.html \ docs/simple-api \ docs/dom3-api \ docs/xqc-api \ Win32Projects/VC8/dom-basic.vcproj \ Win32Projects/VC8/dom-context-item.vcproj \ Win32Projects/VC8/dom-resolver.vcproj \ Win32Projects/VC8/simple-basic.vcproj \ Win32Projects/VC8/simple-context-item.vcproj \ Win32Projects/VC8/xmarkRunner.vcproj \ Win32Projects/VC8/xqc-basic.vcproj \ Win32Projects/VC8/xqc-context-item.vcproj \ Win32Projects/VC8/xqilla.vcproj \ Win32Projects/VC8/xqilla_cmd.vcproj \ Win32Projects/VC8/xqtsRunner.vcproj \ Win32Projects/VC8/XQilla.sln \ Win32Projects/VC7.1/dom-basic.vcproj \ Win32Projects/VC7.1/dom-context-item.vcproj \ Win32Projects/VC7.1/dom-resolver.vcproj \ Win32Projects/VC7.1/simple-basic.vcproj \ Win32Projects/VC7.1/simple-context-item.vcproj \ Win32Projects/VC7.1/xmarkRunner.vcproj \ Win32Projects/VC7.1/xqc-basic.vcproj \ Win32Projects/VC7.1/xqc-context-item.vcproj \ Win32Projects/VC7.1/xqilla.vcproj \ Win32Projects/VC7.1/xqilla_cmd.vcproj \ Win32Projects/VC7.1/XQilla.sln \ Win32Projects/VC7.1/xqtsRunner.vcproj \ tests/xqts/xqts_testsuite/errors.xml \ tests/xqts/xqts_testsuite/update_errors.xml \ tests/xqts/xqts_testsuite/xsl_errors.xml \ wintools/lib_paths.sed \ wintools/s_win32 \ wintools/README \ wintools/s_projects \ wintools/genproject.xq \ wintools/xqilla.template.xml \ wintools/xqilla.vs2010.xq \ wintools/xqilla.vs2010_filter.xq xqilla_SOURCES = \ src/samples/xqilla/xqilla-commandline.cpp xqtsRunner_SOURCES = \ tests/xqts/runner.cpp xmarkRunner_SOURCES = \ tests/xmark/xmark.cpp simple_basic_SOURCES = \ src/samples/simple-api/simple-basic.cpp simple_context_item_SOURCES = \ src/samples/simple-api/simple-context-item.cpp dom_basic_SOURCES = \ src/samples/dom-api/dom-basic.cpp dom_context_item_SOURCES = \ src/samples/dom-api/dom-context-item.cpp dom_resolver_SOURCES = \ src/samples/dom-api/dom-resolver.cpp # Dummy C++ source to cause C++ linking. nodist_EXTRA_xqc_basic_SOURCES = dummy.cpp xqc_basic_SOURCES = \ src/samples/xqc-api/xqc-basic.c # Dummy C++ source to cause C++ linking. nodist_EXTRA_xqc_context_item_SOURCES = dummy.cpp xqc_context_item_SOURCES = \ src/samples/xqc-api/xqc-context-item.c compile_delayed_module_SOURCES = \ src/tools/compile-delayed-module.cpp LEXERFILE = $(top_srcdir)/src/lexer/XQLexer.cpp LEXTEMPLATE = $(top_srcdir)/src/lexer/XQLexer.l LEXSKEL = $(top_srcdir)/src/lexer/flex.skl PARSERFILE = $(top_srcdir)/src/parser/XQParser.y PARSERCPP = $(top_srcdir)/src/parser/XQParser.cpp PARSERHPP = $(top_srcdir)/src/parser/XQParser.hpp all: all-recursive .SUFFIXES: .SUFFIXES: .c .cpp .lo .o .obj am--refresh: @: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): src/config/xqilla_config_unix.h: src/config/stamp-h1 @if test ! -f $@; then \ rm -f src/config/stamp-h1; \ $(MAKE) $(AM_MAKEFLAGS) src/config/stamp-h1; \ else :; fi src/config/stamp-h1: $(top_srcdir)/src/config/xqilla_config_unix.h.in $(top_builddir)/config.status @rm -f src/config/stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status src/config/xqilla_config_unix.h $(top_srcdir)/src/config/xqilla_config_unix.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f src/config/stamp-h1 touch $@ distclean-hdr: -rm -f src/config/xqilla_config_unix.h src/config/stamp-h1 install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libxqilla.la: $(libxqilla_la_OBJECTS) $(libxqilla_la_DEPENDENCIES) $(libxqilla_la_LINK) -rpath $(libdir) $(libxqilla_la_OBJECTS) $(libxqilla_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list compile-delayed-module$(EXEEXT): $(compile_delayed_module_OBJECTS) $(compile_delayed_module_DEPENDENCIES) @rm -f compile-delayed-module$(EXEEXT) $(CXXLINK) $(compile_delayed_module_OBJECTS) $(compile_delayed_module_LDADD) $(LIBS) dom-basic$(EXEEXT): $(dom_basic_OBJECTS) $(dom_basic_DEPENDENCIES) @rm -f dom-basic$(EXEEXT) $(CXXLINK) $(dom_basic_OBJECTS) $(dom_basic_LDADD) $(LIBS) dom-context-item$(EXEEXT): $(dom_context_item_OBJECTS) $(dom_context_item_DEPENDENCIES) @rm -f dom-context-item$(EXEEXT) $(CXXLINK) $(dom_context_item_OBJECTS) $(dom_context_item_LDADD) $(LIBS) dom-resolver$(EXEEXT): $(dom_resolver_OBJECTS) $(dom_resolver_DEPENDENCIES) @rm -f dom-resolver$(EXEEXT) $(CXXLINK) $(dom_resolver_OBJECTS) $(dom_resolver_LDADD) $(LIBS) simple-basic$(EXEEXT): $(simple_basic_OBJECTS) $(simple_basic_DEPENDENCIES) @rm -f simple-basic$(EXEEXT) $(CXXLINK) $(simple_basic_OBJECTS) $(simple_basic_LDADD) $(LIBS) simple-context-item$(EXEEXT): $(simple_context_item_OBJECTS) $(simple_context_item_DEPENDENCIES) @rm -f simple-context-item$(EXEEXT) $(CXXLINK) $(simple_context_item_OBJECTS) $(simple_context_item_LDADD) $(LIBS) xmarkRunner$(EXEEXT): $(xmarkRunner_OBJECTS) $(xmarkRunner_DEPENDENCIES) @rm -f xmarkRunner$(EXEEXT) $(CXXLINK) $(xmarkRunner_OBJECTS) $(xmarkRunner_LDADD) $(LIBS) xqc-basic$(EXEEXT): $(xqc_basic_OBJECTS) $(xqc_basic_DEPENDENCIES) @rm -f xqc-basic$(EXEEXT) $(CXXLINK) $(xqc_basic_OBJECTS) $(xqc_basic_LDADD) $(LIBS) xqc-context-item$(EXEEXT): $(xqc_context_item_OBJECTS) $(xqc_context_item_DEPENDENCIES) @rm -f xqc-context-item$(EXEEXT) $(CXXLINK) $(xqc_context_item_OBJECTS) $(xqc_context_item_LDADD) $(LIBS) xqilla$(EXEEXT): $(xqilla_OBJECTS) $(xqilla_DEPENDENCIES) @rm -f xqilla$(EXEEXT) $(CXXLINK) $(xqilla_OBJECTS) $(xqilla_LDADD) $(LIBS) xqtsRunner$(EXEEXT): $(xqtsRunner_OBJECTS) $(xqtsRunner_DEPENDENCIES) @rm -f xqtsRunner$(EXEEXT) $(CXXLINK) $(xqtsRunner_OBJECTS) $(xqtsRunner_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ASTCopier.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ASTDebugHook.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ASTNodeImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ASTReleaser.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ASTToXML.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ASTVisitor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATAnySimpleTypeImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATAnyURIOrDerivedImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATBase64BinaryOrDerivedImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATBooleanOrDerivedImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATDateOrDerivedImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATDateTimeOrDerivedImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATDecimalOrDerivedImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATDoubleOrDerivedImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATDurationOrDerived.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATDurationOrDerivedImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATFloatOrDerivedImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATGDayOrDerivedImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATGMonthDayOrDerivedImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATGMonthOrDerivedImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATGYearMonthOrDerivedImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATGYearOrDerivedImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATHexBinaryOrDerivedImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATNotationOrDerivedImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATQNameOrDerivedImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATStringOrDerivedImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATTimeOrDerivedImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATUntypedAtomic.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ATUntypedAtomicImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AncestorAxis.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AncestorOrSelfAxis.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/And.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AnyAtomicType.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AnyAtomicTypeDatatypeValidator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ArithmeticOperator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AttributeAxis.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Axis.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BaseMemoryManager.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BuiltInModules.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ChildAxis.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ClosureResult.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CodepointCollation.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CollationImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ComparisonOperator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ContentSequenceFilter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ContextTuple.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ContextUtils.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ConvertFunctionArg.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CountTuple.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DatatypeFactory.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DatatypeLookup.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DateOrTimeType.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DateUtils.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DebugHookDecorator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DefaultTokenStore.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DefaultTokenizer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DelayedModule.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DescendantAxis.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DescendantOrSelfAxis.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Divide.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DocumentCacheImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/EXSLTMathFunction.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/EmptyResult.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Equals.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/EventGenerator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/EventSerializer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Except.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ExternalFunction.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FTAnd.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FTContains.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FTContent.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FTDistance.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FTMildnot.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FTOr.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FTOrder.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FTScope.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FTUnaryNot.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FTWindow.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FTWords.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FastXDMConfiguration.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FastXDMDocument.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FastXDMNodeImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FastXDMSequenceBuilder.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FastXDMUpdateFactory.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FaxppDocumentCacheImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FollowingAxis.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FollowingSiblingAxis.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ForTuple.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FuncFactory.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionAbs.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionAcos.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionAdjustDateTimeToTimezone.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionAdjustDateToTimezone.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionAdjustTimeToTimezone.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionAnalyzeString.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionAsin.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionAtan.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionBaseURI.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionCaseFold.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionCeiling.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionCodepointsToString.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionCollection.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionCompare.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionConcat.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionContains.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionCos.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionCount.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionCurrentDate.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionCurrentDateTime.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionCurrentTime.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionDateTime.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionDayFromDate.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionDayFromDateTime.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionDaysFromDuration.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionDefaultCollation.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionDistinctValues.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionDoc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionDocAvailable.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionDocument.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionDocumentURI.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionEmpty.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionEndsWith.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionError.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionExp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionExplain.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionFloor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionFunctionArity.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionFunctionName.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionHead.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionHoursFromDateTime.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionHoursFromDuration.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionHoursFromTime.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionId.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionIdref.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionImplicitTimezone.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionLang.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionLast.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionLocalNameFromQName.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionLocalname.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionLog.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionLookup.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionLowerCase.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionMatches.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionMinutesFromDateTime.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionMinutesFromDuration.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionMinutesFromTime.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionMonthFromDate.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionMonthFromDateTime.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionMonthsFromDuration.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionName.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionNamespaceURIFromQName.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionNamespaceUri.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionNilled.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionNodeName.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionNormalizeSpace.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionNormalizeUnicode.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionNot.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionNumber.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionParseHTML.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionParseJSON.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionParseXML.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionPosition.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionPower.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionPrefixFromQName.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionPut.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionQName.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionRefImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionRegexGroup.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionReplace.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionResolveURI.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionRoot.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionRound.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionRoundHalfToEven.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionSecondsFromDateTime.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionSecondsFromDuration.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionSecondsFromTime.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionSentences.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionSerializeJSON.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionSignature.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionSin.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionSqrt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionStartsWith.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionStaticBaseURI.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionString.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionStringLength.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionStringToCodepoints.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionSubstring.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionTail.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionTan.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionTime.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionTimezoneFromDate.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionTimezoneFromDateTime.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionTimezoneFromTime.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionTokenize.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionTrace.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionUnordered.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionUnparsedText.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionUpperCase.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionWords.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionYearFromDate.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionYearFromDateTime.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FunctionYearsFromDuration.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GeneralComp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GreaterThan.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GreaterThanEqual.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/InputParser.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IntegerDivide.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/InteractiveDebugger.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Intersect.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Item.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ItemFactoryImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LessThan.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LessThanEqual.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LetTuple.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Minus.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Mod.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Multiply.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/NSFixupFilter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/NamespaceAxis.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/NoInheritFilter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Node.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/NodeComparison.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/NodeTest.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/NotEquals.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/NumUtils.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Numeric.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/NumericFunction.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Optimizer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Or.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/OrderByTuple.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/OrderComparison.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ParentAxis.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PartialEvaluator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PendingUpdateList.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Plus.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PrecedingAxis.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PrecedingSiblingAxis.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ProxyMemoryManager.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/QName.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/QueryPathNode.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/QueryPathTreeFilter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/QueryPathTreeGenerator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ReferenceCounted.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/RegExpFunction.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Result.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ResultBuffer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ResultBufferImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ResultImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SchemaValidatorFilter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Sequence.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SequenceResult.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SequenceType.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/StackFrame.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/StaticAnalysis.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/StaticType.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/StaticTyper.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/StringPool.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestSuiteParser.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestSuiteResultListener.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TestSuiteRunner.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Timezone.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TupleDebugHook.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TupleNode.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UApplyUpdates.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UDelete.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UInsertAfter.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UInsertAsFirst.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UInsertAsLast.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UInsertBefore.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UInsertInto.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/URename.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UReplace.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UReplaceValueOf.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UTF8Str.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UTransform.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UnaryMinus.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UnicodeTransformer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Union.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UpdateFactory.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/VarHashEntryImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/VarStoreImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/VarTypeStoreImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/WhereTuple.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XMLChCompare.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XPath2MemoryManagerImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XPath2NSUtils.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XPath2NodeSerializer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XPath2ResultImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XPath2Utils.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XPathDocumentImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XPathNamespaceImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQAnalyzeString.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQApplyTemplates.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQAtomize.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQAttributeConstructor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQCallTemplate.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQCastAs.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQCastableAs.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQCommentConstructor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQContextImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQContextItem.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQCopy.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQCopyOf.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQDOMConstructor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQDocumentConstructor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQDocumentOrder.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQDynamicContextImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQEffectiveBooleanValue.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQElementConstructor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQException.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQFunction.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQFunctionCall.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQFunctionCoercion.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQFunctionConversion.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQFunctionDeref.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQFunctionRef.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQGlobalVariable.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQIf.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQInlineFunction.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQLexer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQLexer2.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQLiteral.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQMap.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQNamespaceBinding.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQNamespaceConstructor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQNav.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQOperator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQOrderingChange.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQPIConstructor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQParser.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQPartialApply.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQPredicate.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQQuantified.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQQuery.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQReturn.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQSequence.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQStep.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQTextConstructor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQTreatAs.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQTypeswitch.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQUserFunction.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQValidate.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQVariable.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQilla.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQillaBuilderImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQillaDocumentImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQillaException.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQillaExpressionImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQillaFunction.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQillaImplementation.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQillaNSResolverImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQillaPlatformUtils.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQillaXMLGrammarPoolImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQillaXQCDynamicContext.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQillaXQCExpression.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQillaXQCImplementation.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQillaXQCSequence.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XQillaXQCStaticContext.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XSLT2Lexer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XStr.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XercesConfiguration.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XercesNodeImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XercesSequenceBuilder.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XercesURIResolver.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XercesUpdateFactory.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/compile-delayed-module.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dom-basic.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dom-context-item.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dom-resolver.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dummy.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m_apm.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapm5sin.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapm_add.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapm_cpi.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapm_div.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapm_exp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapm_fam.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapm_fft.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapm_flr.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapm_fpf.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapm_gcd.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapm_lg2.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapm_lg3.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapm_log.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapm_mt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapm_mul.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapm_pow.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapm_rcp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapm_rnd.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapm_set.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapm_sin.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapmasin.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapmasn0.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapmcbrt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapmcnst.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapmfact.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapmfmul.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapmgues.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapmhasn.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapmhsin.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapmipwr.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapmistr.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapmpwr2.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapmrsin.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapmsqrt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapmstck.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapmutil.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mapmutl2.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/runner.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple-basic.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple-context-item.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utf8proc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmark.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xqc-basic.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xqc-context-item.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xqilla-commandline.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/yajl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/yajl_buf.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/yajl_encode.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/yajl_gen.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/yajl_lex.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/yajl_parser.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< utf8proc.lo: src/utils/utf8proc/utf8proc.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT utf8proc.lo -MD -MP -MF $(DEPDIR)/utf8proc.Tpo -c -o utf8proc.lo `test -f 'src/utils/utf8proc/utf8proc.c' || echo '$(srcdir)/'`src/utils/utf8proc/utf8proc.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/utf8proc.Tpo $(DEPDIR)/utf8proc.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/utils/utf8proc/utf8proc.c' object='utf8proc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o utf8proc.lo `test -f 'src/utils/utf8proc/utf8proc.c' || echo '$(srcdir)/'`src/utils/utf8proc/utf8proc.c mapm5sin.lo: src/mapm/mapm5sin.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapm5sin.lo -MD -MP -MF $(DEPDIR)/mapm5sin.Tpo -c -o mapm5sin.lo `test -f 'src/mapm/mapm5sin.c' || echo '$(srcdir)/'`src/mapm/mapm5sin.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapm5sin.Tpo $(DEPDIR)/mapm5sin.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapm5sin.c' object='mapm5sin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapm5sin.lo `test -f 'src/mapm/mapm5sin.c' || echo '$(srcdir)/'`src/mapm/mapm5sin.c mapm_add.lo: src/mapm/mapm_add.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapm_add.lo -MD -MP -MF $(DEPDIR)/mapm_add.Tpo -c -o mapm_add.lo `test -f 'src/mapm/mapm_add.c' || echo '$(srcdir)/'`src/mapm/mapm_add.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapm_add.Tpo $(DEPDIR)/mapm_add.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapm_add.c' object='mapm_add.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapm_add.lo `test -f 'src/mapm/mapm_add.c' || echo '$(srcdir)/'`src/mapm/mapm_add.c mapmasin.lo: src/mapm/mapmasin.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapmasin.lo -MD -MP -MF $(DEPDIR)/mapmasin.Tpo -c -o mapmasin.lo `test -f 'src/mapm/mapmasin.c' || echo '$(srcdir)/'`src/mapm/mapmasin.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapmasin.Tpo $(DEPDIR)/mapmasin.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapmasin.c' object='mapmasin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapmasin.lo `test -f 'src/mapm/mapmasin.c' || echo '$(srcdir)/'`src/mapm/mapmasin.c mapmasn0.lo: src/mapm/mapmasn0.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapmasn0.lo -MD -MP -MF $(DEPDIR)/mapmasn0.Tpo -c -o mapmasn0.lo `test -f 'src/mapm/mapmasn0.c' || echo '$(srcdir)/'`src/mapm/mapmasn0.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapmasn0.Tpo $(DEPDIR)/mapmasn0.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapmasn0.c' object='mapmasn0.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapmasn0.lo `test -f 'src/mapm/mapmasn0.c' || echo '$(srcdir)/'`src/mapm/mapmasn0.c mapmcbrt.lo: src/mapm/mapmcbrt.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapmcbrt.lo -MD -MP -MF $(DEPDIR)/mapmcbrt.Tpo -c -o mapmcbrt.lo `test -f 'src/mapm/mapmcbrt.c' || echo '$(srcdir)/'`src/mapm/mapmcbrt.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapmcbrt.Tpo $(DEPDIR)/mapmcbrt.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapmcbrt.c' object='mapmcbrt.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapmcbrt.lo `test -f 'src/mapm/mapmcbrt.c' || echo '$(srcdir)/'`src/mapm/mapmcbrt.c mapmcnst.lo: src/mapm/mapmcnst.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapmcnst.lo -MD -MP -MF $(DEPDIR)/mapmcnst.Tpo -c -o mapmcnst.lo `test -f 'src/mapm/mapmcnst.c' || echo '$(srcdir)/'`src/mapm/mapmcnst.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapmcnst.Tpo $(DEPDIR)/mapmcnst.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapmcnst.c' object='mapmcnst.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapmcnst.lo `test -f 'src/mapm/mapmcnst.c' || echo '$(srcdir)/'`src/mapm/mapmcnst.c mapm_cpi.lo: src/mapm/mapm_cpi.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapm_cpi.lo -MD -MP -MF $(DEPDIR)/mapm_cpi.Tpo -c -o mapm_cpi.lo `test -f 'src/mapm/mapm_cpi.c' || echo '$(srcdir)/'`src/mapm/mapm_cpi.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapm_cpi.Tpo $(DEPDIR)/mapm_cpi.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapm_cpi.c' object='mapm_cpi.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapm_cpi.lo `test -f 'src/mapm/mapm_cpi.c' || echo '$(srcdir)/'`src/mapm/mapm_cpi.c mapm_div.lo: src/mapm/mapm_div.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapm_div.lo -MD -MP -MF $(DEPDIR)/mapm_div.Tpo -c -o mapm_div.lo `test -f 'src/mapm/mapm_div.c' || echo '$(srcdir)/'`src/mapm/mapm_div.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapm_div.Tpo $(DEPDIR)/mapm_div.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapm_div.c' object='mapm_div.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapm_div.lo `test -f 'src/mapm/mapm_div.c' || echo '$(srcdir)/'`src/mapm/mapm_div.c mapm_exp.lo: src/mapm/mapm_exp.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapm_exp.lo -MD -MP -MF $(DEPDIR)/mapm_exp.Tpo -c -o mapm_exp.lo `test -f 'src/mapm/mapm_exp.c' || echo '$(srcdir)/'`src/mapm/mapm_exp.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapm_exp.Tpo $(DEPDIR)/mapm_exp.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapm_exp.c' object='mapm_exp.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapm_exp.lo `test -f 'src/mapm/mapm_exp.c' || echo '$(srcdir)/'`src/mapm/mapm_exp.c mapmfact.lo: src/mapm/mapmfact.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapmfact.lo -MD -MP -MF $(DEPDIR)/mapmfact.Tpo -c -o mapmfact.lo `test -f 'src/mapm/mapmfact.c' || echo '$(srcdir)/'`src/mapm/mapmfact.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapmfact.Tpo $(DEPDIR)/mapmfact.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapmfact.c' object='mapmfact.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapmfact.lo `test -f 'src/mapm/mapmfact.c' || echo '$(srcdir)/'`src/mapm/mapmfact.c mapm_fam.lo: src/mapm/mapm_fam.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapm_fam.lo -MD -MP -MF $(DEPDIR)/mapm_fam.Tpo -c -o mapm_fam.lo `test -f 'src/mapm/mapm_fam.c' || echo '$(srcdir)/'`src/mapm/mapm_fam.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapm_fam.Tpo $(DEPDIR)/mapm_fam.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapm_fam.c' object='mapm_fam.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapm_fam.lo `test -f 'src/mapm/mapm_fam.c' || echo '$(srcdir)/'`src/mapm/mapm_fam.c mapm_fft.lo: src/mapm/mapm_fft.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapm_fft.lo -MD -MP -MF $(DEPDIR)/mapm_fft.Tpo -c -o mapm_fft.lo `test -f 'src/mapm/mapm_fft.c' || echo '$(srcdir)/'`src/mapm/mapm_fft.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapm_fft.Tpo $(DEPDIR)/mapm_fft.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapm_fft.c' object='mapm_fft.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapm_fft.lo `test -f 'src/mapm/mapm_fft.c' || echo '$(srcdir)/'`src/mapm/mapm_fft.c mapm_flr.lo: src/mapm/mapm_flr.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapm_flr.lo -MD -MP -MF $(DEPDIR)/mapm_flr.Tpo -c -o mapm_flr.lo `test -f 'src/mapm/mapm_flr.c' || echo '$(srcdir)/'`src/mapm/mapm_flr.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapm_flr.Tpo $(DEPDIR)/mapm_flr.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapm_flr.c' object='mapm_flr.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapm_flr.lo `test -f 'src/mapm/mapm_flr.c' || echo '$(srcdir)/'`src/mapm/mapm_flr.c mapmfmul.lo: src/mapm/mapmfmul.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapmfmul.lo -MD -MP -MF $(DEPDIR)/mapmfmul.Tpo -c -o mapmfmul.lo `test -f 'src/mapm/mapmfmul.c' || echo '$(srcdir)/'`src/mapm/mapmfmul.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapmfmul.Tpo $(DEPDIR)/mapmfmul.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapmfmul.c' object='mapmfmul.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapmfmul.lo `test -f 'src/mapm/mapmfmul.c' || echo '$(srcdir)/'`src/mapm/mapmfmul.c mapm_fpf.lo: src/mapm/mapm_fpf.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapm_fpf.lo -MD -MP -MF $(DEPDIR)/mapm_fpf.Tpo -c -o mapm_fpf.lo `test -f 'src/mapm/mapm_fpf.c' || echo '$(srcdir)/'`src/mapm/mapm_fpf.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapm_fpf.Tpo $(DEPDIR)/mapm_fpf.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapm_fpf.c' object='mapm_fpf.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapm_fpf.lo `test -f 'src/mapm/mapm_fpf.c' || echo '$(srcdir)/'`src/mapm/mapm_fpf.c mapm_gcd.lo: src/mapm/mapm_gcd.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapm_gcd.lo -MD -MP -MF $(DEPDIR)/mapm_gcd.Tpo -c -o mapm_gcd.lo `test -f 'src/mapm/mapm_gcd.c' || echo '$(srcdir)/'`src/mapm/mapm_gcd.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapm_gcd.Tpo $(DEPDIR)/mapm_gcd.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapm_gcd.c' object='mapm_gcd.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapm_gcd.lo `test -f 'src/mapm/mapm_gcd.c' || echo '$(srcdir)/'`src/mapm/mapm_gcd.c mapmgues.lo: src/mapm/mapmgues.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapmgues.lo -MD -MP -MF $(DEPDIR)/mapmgues.Tpo -c -o mapmgues.lo `test -f 'src/mapm/mapmgues.c' || echo '$(srcdir)/'`src/mapm/mapmgues.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapmgues.Tpo $(DEPDIR)/mapmgues.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapmgues.c' object='mapmgues.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapmgues.lo `test -f 'src/mapm/mapmgues.c' || echo '$(srcdir)/'`src/mapm/mapmgues.c mapmhasn.lo: src/mapm/mapmhasn.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapmhasn.lo -MD -MP -MF $(DEPDIR)/mapmhasn.Tpo -c -o mapmhasn.lo `test -f 'src/mapm/mapmhasn.c' || echo '$(srcdir)/'`src/mapm/mapmhasn.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapmhasn.Tpo $(DEPDIR)/mapmhasn.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapmhasn.c' object='mapmhasn.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapmhasn.lo `test -f 'src/mapm/mapmhasn.c' || echo '$(srcdir)/'`src/mapm/mapmhasn.c mapmhsin.lo: src/mapm/mapmhsin.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapmhsin.lo -MD -MP -MF $(DEPDIR)/mapmhsin.Tpo -c -o mapmhsin.lo `test -f 'src/mapm/mapmhsin.c' || echo '$(srcdir)/'`src/mapm/mapmhsin.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapmhsin.Tpo $(DEPDIR)/mapmhsin.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapmhsin.c' object='mapmhsin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapmhsin.lo `test -f 'src/mapm/mapmhsin.c' || echo '$(srcdir)/'`src/mapm/mapmhsin.c mapmipwr.lo: src/mapm/mapmipwr.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapmipwr.lo -MD -MP -MF $(DEPDIR)/mapmipwr.Tpo -c -o mapmipwr.lo `test -f 'src/mapm/mapmipwr.c' || echo '$(srcdir)/'`src/mapm/mapmipwr.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapmipwr.Tpo $(DEPDIR)/mapmipwr.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapmipwr.c' object='mapmipwr.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapmipwr.lo `test -f 'src/mapm/mapmipwr.c' || echo '$(srcdir)/'`src/mapm/mapmipwr.c mapmistr.lo: src/mapm/mapmistr.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapmistr.lo -MD -MP -MF $(DEPDIR)/mapmistr.Tpo -c -o mapmistr.lo `test -f 'src/mapm/mapmistr.c' || echo '$(srcdir)/'`src/mapm/mapmistr.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapmistr.Tpo $(DEPDIR)/mapmistr.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapmistr.c' object='mapmistr.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapmistr.lo `test -f 'src/mapm/mapmistr.c' || echo '$(srcdir)/'`src/mapm/mapmistr.c mapm_lg2.lo: src/mapm/mapm_lg2.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapm_lg2.lo -MD -MP -MF $(DEPDIR)/mapm_lg2.Tpo -c -o mapm_lg2.lo `test -f 'src/mapm/mapm_lg2.c' || echo '$(srcdir)/'`src/mapm/mapm_lg2.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapm_lg2.Tpo $(DEPDIR)/mapm_lg2.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapm_lg2.c' object='mapm_lg2.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapm_lg2.lo `test -f 'src/mapm/mapm_lg2.c' || echo '$(srcdir)/'`src/mapm/mapm_lg2.c mapm_lg3.lo: src/mapm/mapm_lg3.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapm_lg3.lo -MD -MP -MF $(DEPDIR)/mapm_lg3.Tpo -c -o mapm_lg3.lo `test -f 'src/mapm/mapm_lg3.c' || echo '$(srcdir)/'`src/mapm/mapm_lg3.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapm_lg3.Tpo $(DEPDIR)/mapm_lg3.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapm_lg3.c' object='mapm_lg3.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapm_lg3.lo `test -f 'src/mapm/mapm_lg3.c' || echo '$(srcdir)/'`src/mapm/mapm_lg3.c mapm_log.lo: src/mapm/mapm_log.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapm_log.lo -MD -MP -MF $(DEPDIR)/mapm_log.Tpo -c -o mapm_log.lo `test -f 'src/mapm/mapm_log.c' || echo '$(srcdir)/'`src/mapm/mapm_log.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapm_log.Tpo $(DEPDIR)/mapm_log.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapm_log.c' object='mapm_log.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapm_log.lo `test -f 'src/mapm/mapm_log.c' || echo '$(srcdir)/'`src/mapm/mapm_log.c mapm_mul.lo: src/mapm/mapm_mul.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapm_mul.lo -MD -MP -MF $(DEPDIR)/mapm_mul.Tpo -c -o mapm_mul.lo `test -f 'src/mapm/mapm_mul.c' || echo '$(srcdir)/'`src/mapm/mapm_mul.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapm_mul.Tpo $(DEPDIR)/mapm_mul.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapm_mul.c' object='mapm_mul.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapm_mul.lo `test -f 'src/mapm/mapm_mul.c' || echo '$(srcdir)/'`src/mapm/mapm_mul.c mapm_pow.lo: src/mapm/mapm_pow.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapm_pow.lo -MD -MP -MF $(DEPDIR)/mapm_pow.Tpo -c -o mapm_pow.lo `test -f 'src/mapm/mapm_pow.c' || echo '$(srcdir)/'`src/mapm/mapm_pow.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapm_pow.Tpo $(DEPDIR)/mapm_pow.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapm_pow.c' object='mapm_pow.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapm_pow.lo `test -f 'src/mapm/mapm_pow.c' || echo '$(srcdir)/'`src/mapm/mapm_pow.c mapmpwr2.lo: src/mapm/mapmpwr2.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapmpwr2.lo -MD -MP -MF $(DEPDIR)/mapmpwr2.Tpo -c -o mapmpwr2.lo `test -f 'src/mapm/mapmpwr2.c' || echo '$(srcdir)/'`src/mapm/mapmpwr2.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapmpwr2.Tpo $(DEPDIR)/mapmpwr2.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapmpwr2.c' object='mapmpwr2.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapmpwr2.lo `test -f 'src/mapm/mapmpwr2.c' || echo '$(srcdir)/'`src/mapm/mapmpwr2.c mapm_rcp.lo: src/mapm/mapm_rcp.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapm_rcp.lo -MD -MP -MF $(DEPDIR)/mapm_rcp.Tpo -c -o mapm_rcp.lo `test -f 'src/mapm/mapm_rcp.c' || echo '$(srcdir)/'`src/mapm/mapm_rcp.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapm_rcp.Tpo $(DEPDIR)/mapm_rcp.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapm_rcp.c' object='mapm_rcp.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapm_rcp.lo `test -f 'src/mapm/mapm_rcp.c' || echo '$(srcdir)/'`src/mapm/mapm_rcp.c mapm_rnd.lo: src/mapm/mapm_rnd.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapm_rnd.lo -MD -MP -MF $(DEPDIR)/mapm_rnd.Tpo -c -o mapm_rnd.lo `test -f 'src/mapm/mapm_rnd.c' || echo '$(srcdir)/'`src/mapm/mapm_rnd.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapm_rnd.Tpo $(DEPDIR)/mapm_rnd.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapm_rnd.c' object='mapm_rnd.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapm_rnd.lo `test -f 'src/mapm/mapm_rnd.c' || echo '$(srcdir)/'`src/mapm/mapm_rnd.c mapmrsin.lo: src/mapm/mapmrsin.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapmrsin.lo -MD -MP -MF $(DEPDIR)/mapmrsin.Tpo -c -o mapmrsin.lo `test -f 'src/mapm/mapmrsin.c' || echo '$(srcdir)/'`src/mapm/mapmrsin.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapmrsin.Tpo $(DEPDIR)/mapmrsin.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapmrsin.c' object='mapmrsin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapmrsin.lo `test -f 'src/mapm/mapmrsin.c' || echo '$(srcdir)/'`src/mapm/mapmrsin.c mapm_set.lo: src/mapm/mapm_set.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapm_set.lo -MD -MP -MF $(DEPDIR)/mapm_set.Tpo -c -o mapm_set.lo `test -f 'src/mapm/mapm_set.c' || echo '$(srcdir)/'`src/mapm/mapm_set.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapm_set.Tpo $(DEPDIR)/mapm_set.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapm_set.c' object='mapm_set.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapm_set.lo `test -f 'src/mapm/mapm_set.c' || echo '$(srcdir)/'`src/mapm/mapm_set.c mapm_sin.lo: src/mapm/mapm_sin.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapm_sin.lo -MD -MP -MF $(DEPDIR)/mapm_sin.Tpo -c -o mapm_sin.lo `test -f 'src/mapm/mapm_sin.c' || echo '$(srcdir)/'`src/mapm/mapm_sin.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapm_sin.Tpo $(DEPDIR)/mapm_sin.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapm_sin.c' object='mapm_sin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapm_sin.lo `test -f 'src/mapm/mapm_sin.c' || echo '$(srcdir)/'`src/mapm/mapm_sin.c mapmsqrt.lo: src/mapm/mapmsqrt.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapmsqrt.lo -MD -MP -MF $(DEPDIR)/mapmsqrt.Tpo -c -o mapmsqrt.lo `test -f 'src/mapm/mapmsqrt.c' || echo '$(srcdir)/'`src/mapm/mapmsqrt.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapmsqrt.Tpo $(DEPDIR)/mapmsqrt.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapmsqrt.c' object='mapmsqrt.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapmsqrt.lo `test -f 'src/mapm/mapmsqrt.c' || echo '$(srcdir)/'`src/mapm/mapmsqrt.c mapmstck.lo: src/mapm/mapmstck.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapmstck.lo -MD -MP -MF $(DEPDIR)/mapmstck.Tpo -c -o mapmstck.lo `test -f 'src/mapm/mapmstck.c' || echo '$(srcdir)/'`src/mapm/mapmstck.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapmstck.Tpo $(DEPDIR)/mapmstck.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapmstck.c' object='mapmstck.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapmstck.lo `test -f 'src/mapm/mapmstck.c' || echo '$(srcdir)/'`src/mapm/mapmstck.c mapmutil.lo: src/mapm/mapmutil.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapmutil.lo -MD -MP -MF $(DEPDIR)/mapmutil.Tpo -c -o mapmutil.lo `test -f 'src/mapm/mapmutil.c' || echo '$(srcdir)/'`src/mapm/mapmutil.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapmutil.Tpo $(DEPDIR)/mapmutil.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapmutil.c' object='mapmutil.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapmutil.lo `test -f 'src/mapm/mapmutil.c' || echo '$(srcdir)/'`src/mapm/mapmutil.c mapmutl2.lo: src/mapm/mapmutl2.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mapmutl2.lo -MD -MP -MF $(DEPDIR)/mapmutl2.Tpo -c -o mapmutl2.lo `test -f 'src/mapm/mapmutl2.c' || echo '$(srcdir)/'`src/mapm/mapmutl2.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mapmutl2.Tpo $(DEPDIR)/mapmutl2.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/mapm/mapmutl2.c' object='mapmutl2.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mapmutl2.lo `test -f 'src/mapm/mapmutl2.c' || echo '$(srcdir)/'`src/mapm/mapmutl2.c yajl_buf.lo: src/yajl/yajl_buf.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT yajl_buf.lo -MD -MP -MF $(DEPDIR)/yajl_buf.Tpo -c -o yajl_buf.lo `test -f 'src/yajl/yajl_buf.c' || echo '$(srcdir)/'`src/yajl/yajl_buf.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/yajl_buf.Tpo $(DEPDIR)/yajl_buf.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/yajl/yajl_buf.c' object='yajl_buf.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o yajl_buf.lo `test -f 'src/yajl/yajl_buf.c' || echo '$(srcdir)/'`src/yajl/yajl_buf.c yajl.lo: src/yajl/yajl.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT yajl.lo -MD -MP -MF $(DEPDIR)/yajl.Tpo -c -o yajl.lo `test -f 'src/yajl/yajl.c' || echo '$(srcdir)/'`src/yajl/yajl.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/yajl.Tpo $(DEPDIR)/yajl.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/yajl/yajl.c' object='yajl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o yajl.lo `test -f 'src/yajl/yajl.c' || echo '$(srcdir)/'`src/yajl/yajl.c yajl_encode.lo: src/yajl/yajl_encode.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT yajl_encode.lo -MD -MP -MF $(DEPDIR)/yajl_encode.Tpo -c -o yajl_encode.lo `test -f 'src/yajl/yajl_encode.c' || echo '$(srcdir)/'`src/yajl/yajl_encode.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/yajl_encode.Tpo $(DEPDIR)/yajl_encode.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/yajl/yajl_encode.c' object='yajl_encode.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o yajl_encode.lo `test -f 'src/yajl/yajl_encode.c' || echo '$(srcdir)/'`src/yajl/yajl_encode.c yajl_gen.lo: src/yajl/yajl_gen.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT yajl_gen.lo -MD -MP -MF $(DEPDIR)/yajl_gen.Tpo -c -o yajl_gen.lo `test -f 'src/yajl/yajl_gen.c' || echo '$(srcdir)/'`src/yajl/yajl_gen.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/yajl_gen.Tpo $(DEPDIR)/yajl_gen.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/yajl/yajl_gen.c' object='yajl_gen.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o yajl_gen.lo `test -f 'src/yajl/yajl_gen.c' || echo '$(srcdir)/'`src/yajl/yajl_gen.c yajl_lex.lo: src/yajl/yajl_lex.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT yajl_lex.lo -MD -MP -MF $(DEPDIR)/yajl_lex.Tpo -c -o yajl_lex.lo `test -f 'src/yajl/yajl_lex.c' || echo '$(srcdir)/'`src/yajl/yajl_lex.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/yajl_lex.Tpo $(DEPDIR)/yajl_lex.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/yajl/yajl_lex.c' object='yajl_lex.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o yajl_lex.lo `test -f 'src/yajl/yajl_lex.c' || echo '$(srcdir)/'`src/yajl/yajl_lex.c yajl_parser.lo: src/yajl/yajl_parser.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT yajl_parser.lo -MD -MP -MF $(DEPDIR)/yajl_parser.Tpo -c -o yajl_parser.lo `test -f 'src/yajl/yajl_parser.c' || echo '$(srcdir)/'`src/yajl/yajl_parser.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/yajl_parser.Tpo $(DEPDIR)/yajl_parser.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/yajl/yajl_parser.c' object='yajl_parser.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o yajl_parser.lo `test -f 'src/yajl/yajl_parser.c' || echo '$(srcdir)/'`src/yajl/yajl_parser.c xqc-basic.o: src/samples/xqc-api/xqc-basic.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xqc-basic.o -MD -MP -MF $(DEPDIR)/xqc-basic.Tpo -c -o xqc-basic.o `test -f 'src/samples/xqc-api/xqc-basic.c' || echo '$(srcdir)/'`src/samples/xqc-api/xqc-basic.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/xqc-basic.Tpo $(DEPDIR)/xqc-basic.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/samples/xqc-api/xqc-basic.c' object='xqc-basic.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xqc-basic.o `test -f 'src/samples/xqc-api/xqc-basic.c' || echo '$(srcdir)/'`src/samples/xqc-api/xqc-basic.c xqc-basic.obj: src/samples/xqc-api/xqc-basic.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xqc-basic.obj -MD -MP -MF $(DEPDIR)/xqc-basic.Tpo -c -o xqc-basic.obj `if test -f 'src/samples/xqc-api/xqc-basic.c'; then $(CYGPATH_W) 'src/samples/xqc-api/xqc-basic.c'; else $(CYGPATH_W) '$(srcdir)/src/samples/xqc-api/xqc-basic.c'; fi` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/xqc-basic.Tpo $(DEPDIR)/xqc-basic.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/samples/xqc-api/xqc-basic.c' object='xqc-basic.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xqc-basic.obj `if test -f 'src/samples/xqc-api/xqc-basic.c'; then $(CYGPATH_W) 'src/samples/xqc-api/xqc-basic.c'; else $(CYGPATH_W) '$(srcdir)/src/samples/xqc-api/xqc-basic.c'; fi` xqc-context-item.o: src/samples/xqc-api/xqc-context-item.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xqc-context-item.o -MD -MP -MF $(DEPDIR)/xqc-context-item.Tpo -c -o xqc-context-item.o `test -f 'src/samples/xqc-api/xqc-context-item.c' || echo '$(srcdir)/'`src/samples/xqc-api/xqc-context-item.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/xqc-context-item.Tpo $(DEPDIR)/xqc-context-item.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/samples/xqc-api/xqc-context-item.c' object='xqc-context-item.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xqc-context-item.o `test -f 'src/samples/xqc-api/xqc-context-item.c' || echo '$(srcdir)/'`src/samples/xqc-api/xqc-context-item.c xqc-context-item.obj: src/samples/xqc-api/xqc-context-item.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT xqc-context-item.obj -MD -MP -MF $(DEPDIR)/xqc-context-item.Tpo -c -o xqc-context-item.obj `if test -f 'src/samples/xqc-api/xqc-context-item.c'; then $(CYGPATH_W) 'src/samples/xqc-api/xqc-context-item.c'; else $(CYGPATH_W) '$(srcdir)/src/samples/xqc-api/xqc-context-item.c'; fi` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/xqc-context-item.Tpo $(DEPDIR)/xqc-context-item.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/samples/xqc-api/xqc-context-item.c' object='xqc-context-item.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o xqc-context-item.obj `if test -f 'src/samples/xqc-api/xqc-context-item.c'; then $(CYGPATH_W) 'src/samples/xqc-api/xqc-context-item.c'; else $(CYGPATH_W) '$(srcdir)/src/samples/xqc-api/xqc-context-item.c'; fi` .cpp.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.lo: @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< ReferenceCounted.lo: src/framework/ReferenceCounted.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ReferenceCounted.lo -MD -MP -MF $(DEPDIR)/ReferenceCounted.Tpo -c -o ReferenceCounted.lo `test -f 'src/framework/ReferenceCounted.cpp' || echo '$(srcdir)/'`src/framework/ReferenceCounted.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ReferenceCounted.Tpo $(DEPDIR)/ReferenceCounted.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/framework/ReferenceCounted.cpp' object='ReferenceCounted.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ReferenceCounted.lo `test -f 'src/framework/ReferenceCounted.cpp' || echo '$(srcdir)/'`src/framework/ReferenceCounted.cpp BaseMemoryManager.lo: src/framework/BaseMemoryManager.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT BaseMemoryManager.lo -MD -MP -MF $(DEPDIR)/BaseMemoryManager.Tpo -c -o BaseMemoryManager.lo `test -f 'src/framework/BaseMemoryManager.cpp' || echo '$(srcdir)/'`src/framework/BaseMemoryManager.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/BaseMemoryManager.Tpo $(DEPDIR)/BaseMemoryManager.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/framework/BaseMemoryManager.cpp' object='BaseMemoryManager.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o BaseMemoryManager.lo `test -f 'src/framework/BaseMemoryManager.cpp' || echo '$(srcdir)/'`src/framework/BaseMemoryManager.cpp ProxyMemoryManager.lo: src/framework/ProxyMemoryManager.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ProxyMemoryManager.lo -MD -MP -MF $(DEPDIR)/ProxyMemoryManager.Tpo -c -o ProxyMemoryManager.lo `test -f 'src/framework/ProxyMemoryManager.cpp' || echo '$(srcdir)/'`src/framework/ProxyMemoryManager.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ProxyMemoryManager.Tpo $(DEPDIR)/ProxyMemoryManager.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/framework/ProxyMemoryManager.cpp' object='ProxyMemoryManager.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ProxyMemoryManager.lo `test -f 'src/framework/ProxyMemoryManager.cpp' || echo '$(srcdir)/'`src/framework/ProxyMemoryManager.cpp StringPool.lo: src/framework/StringPool.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT StringPool.lo -MD -MP -MF $(DEPDIR)/StringPool.Tpo -c -o StringPool.lo `test -f 'src/framework/StringPool.cpp' || echo '$(srcdir)/'`src/framework/StringPool.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/StringPool.Tpo $(DEPDIR)/StringPool.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/framework/StringPool.cpp' object='StringPool.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o StringPool.lo `test -f 'src/framework/StringPool.cpp' || echo '$(srcdir)/'`src/framework/StringPool.cpp XPath2MemoryManagerImpl.lo: src/framework/XPath2MemoryManagerImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XPath2MemoryManagerImpl.lo -MD -MP -MF $(DEPDIR)/XPath2MemoryManagerImpl.Tpo -c -o XPath2MemoryManagerImpl.lo `test -f 'src/framework/XPath2MemoryManagerImpl.cpp' || echo '$(srcdir)/'`src/framework/XPath2MemoryManagerImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XPath2MemoryManagerImpl.Tpo $(DEPDIR)/XPath2MemoryManagerImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/framework/XPath2MemoryManagerImpl.cpp' object='XPath2MemoryManagerImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XPath2MemoryManagerImpl.lo `test -f 'src/framework/XPath2MemoryManagerImpl.cpp' || echo '$(srcdir)/'`src/framework/XPath2MemoryManagerImpl.cpp UpdateFactory.lo: src/context/UpdateFactory.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT UpdateFactory.lo -MD -MP -MF $(DEPDIR)/UpdateFactory.Tpo -c -o UpdateFactory.lo `test -f 'src/context/UpdateFactory.cpp' || echo '$(srcdir)/'`src/context/UpdateFactory.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/UpdateFactory.Tpo $(DEPDIR)/UpdateFactory.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/context/UpdateFactory.cpp' object='UpdateFactory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o UpdateFactory.lo `test -f 'src/context/UpdateFactory.cpp' || echo '$(srcdir)/'`src/context/UpdateFactory.cpp CollationImpl.lo: src/context/impl/CollationImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CollationImpl.lo -MD -MP -MF $(DEPDIR)/CollationImpl.Tpo -c -o CollationImpl.lo `test -f 'src/context/impl/CollationImpl.cpp' || echo '$(srcdir)/'`src/context/impl/CollationImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/CollationImpl.Tpo $(DEPDIR)/CollationImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/context/impl/CollationImpl.cpp' object='CollationImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CollationImpl.lo `test -f 'src/context/impl/CollationImpl.cpp' || echo '$(srcdir)/'`src/context/impl/CollationImpl.cpp CodepointCollation.lo: src/context/impl/CodepointCollation.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CodepointCollation.lo -MD -MP -MF $(DEPDIR)/CodepointCollation.Tpo -c -o CodepointCollation.lo `test -f 'src/context/impl/CodepointCollation.cpp' || echo '$(srcdir)/'`src/context/impl/CodepointCollation.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/CodepointCollation.Tpo $(DEPDIR)/CodepointCollation.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/context/impl/CodepointCollation.cpp' object='CodepointCollation.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CodepointCollation.lo `test -f 'src/context/impl/CodepointCollation.cpp' || echo '$(srcdir)/'`src/context/impl/CodepointCollation.cpp VarStoreImpl.lo: src/context/impl/VarStoreImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT VarStoreImpl.lo -MD -MP -MF $(DEPDIR)/VarStoreImpl.Tpo -c -o VarStoreImpl.lo `test -f 'src/context/impl/VarStoreImpl.cpp' || echo '$(srcdir)/'`src/context/impl/VarStoreImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/VarStoreImpl.Tpo $(DEPDIR)/VarStoreImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/context/impl/VarStoreImpl.cpp' object='VarStoreImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o VarStoreImpl.lo `test -f 'src/context/impl/VarStoreImpl.cpp' || echo '$(srcdir)/'`src/context/impl/VarStoreImpl.cpp VarTypeStoreImpl.lo: src/context/impl/VarTypeStoreImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT VarTypeStoreImpl.lo -MD -MP -MF $(DEPDIR)/VarTypeStoreImpl.Tpo -c -o VarTypeStoreImpl.lo `test -f 'src/context/impl/VarTypeStoreImpl.cpp' || echo '$(srcdir)/'`src/context/impl/VarTypeStoreImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/VarTypeStoreImpl.Tpo $(DEPDIR)/VarTypeStoreImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/context/impl/VarTypeStoreImpl.cpp' object='VarTypeStoreImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o VarTypeStoreImpl.lo `test -f 'src/context/impl/VarTypeStoreImpl.cpp' || echo '$(srcdir)/'`src/context/impl/VarTypeStoreImpl.cpp VarHashEntryImpl.lo: src/context/impl/VarHashEntryImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT VarHashEntryImpl.lo -MD -MP -MF $(DEPDIR)/VarHashEntryImpl.Tpo -c -o VarHashEntryImpl.lo `test -f 'src/context/impl/VarHashEntryImpl.cpp' || echo '$(srcdir)/'`src/context/impl/VarHashEntryImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/VarHashEntryImpl.Tpo $(DEPDIR)/VarHashEntryImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/context/impl/VarHashEntryImpl.cpp' object='VarHashEntryImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o VarHashEntryImpl.lo `test -f 'src/context/impl/VarHashEntryImpl.cpp' || echo '$(srcdir)/'`src/context/impl/VarHashEntryImpl.cpp XQContextImpl.lo: src/context/impl/XQContextImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQContextImpl.lo -MD -MP -MF $(DEPDIR)/XQContextImpl.Tpo -c -o XQContextImpl.lo `test -f 'src/context/impl/XQContextImpl.cpp' || echo '$(srcdir)/'`src/context/impl/XQContextImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQContextImpl.Tpo $(DEPDIR)/XQContextImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/context/impl/XQContextImpl.cpp' object='XQContextImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQContextImpl.lo `test -f 'src/context/impl/XQContextImpl.cpp' || echo '$(srcdir)/'`src/context/impl/XQContextImpl.cpp XQDynamicContextImpl.lo: src/context/impl/XQDynamicContextImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQDynamicContextImpl.lo -MD -MP -MF $(DEPDIR)/XQDynamicContextImpl.Tpo -c -o XQDynamicContextImpl.lo `test -f 'src/context/impl/XQDynamicContextImpl.cpp' || echo '$(srcdir)/'`src/context/impl/XQDynamicContextImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQDynamicContextImpl.Tpo $(DEPDIR)/XQDynamicContextImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/context/impl/XQDynamicContextImpl.cpp' object='XQDynamicContextImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQDynamicContextImpl.lo `test -f 'src/context/impl/XQDynamicContextImpl.cpp' || echo '$(srcdir)/'`src/context/impl/XQDynamicContextImpl.cpp ItemFactoryImpl.lo: src/context/impl/ItemFactoryImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ItemFactoryImpl.lo -MD -MP -MF $(DEPDIR)/ItemFactoryImpl.Tpo -c -o ItemFactoryImpl.lo `test -f 'src/context/impl/ItemFactoryImpl.cpp' || echo '$(srcdir)/'`src/context/impl/ItemFactoryImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ItemFactoryImpl.Tpo $(DEPDIR)/ItemFactoryImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/context/impl/ItemFactoryImpl.cpp' object='ItemFactoryImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ItemFactoryImpl.lo `test -f 'src/context/impl/ItemFactoryImpl.cpp' || echo '$(srcdir)/'`src/context/impl/ItemFactoryImpl.cpp XQAtomize.lo: src/ast/XQAtomize.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQAtomize.lo -MD -MP -MF $(DEPDIR)/XQAtomize.Tpo -c -o XQAtomize.lo `test -f 'src/ast/XQAtomize.cpp' || echo '$(srcdir)/'`src/ast/XQAtomize.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQAtomize.Tpo $(DEPDIR)/XQAtomize.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQAtomize.cpp' object='XQAtomize.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQAtomize.lo `test -f 'src/ast/XQAtomize.cpp' || echo '$(srcdir)/'`src/ast/XQAtomize.cpp XQEffectiveBooleanValue.lo: src/ast/XQEffectiveBooleanValue.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQEffectiveBooleanValue.lo -MD -MP -MF $(DEPDIR)/XQEffectiveBooleanValue.Tpo -c -o XQEffectiveBooleanValue.lo `test -f 'src/ast/XQEffectiveBooleanValue.cpp' || echo '$(srcdir)/'`src/ast/XQEffectiveBooleanValue.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQEffectiveBooleanValue.Tpo $(DEPDIR)/XQEffectiveBooleanValue.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQEffectiveBooleanValue.cpp' object='XQEffectiveBooleanValue.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQEffectiveBooleanValue.lo `test -f 'src/ast/XQEffectiveBooleanValue.cpp' || echo '$(srcdir)/'`src/ast/XQEffectiveBooleanValue.cpp XQMap.lo: src/ast/XQMap.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQMap.lo -MD -MP -MF $(DEPDIR)/XQMap.Tpo -c -o XQMap.lo `test -f 'src/ast/XQMap.cpp' || echo '$(srcdir)/'`src/ast/XQMap.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQMap.Tpo $(DEPDIR)/XQMap.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQMap.cpp' object='XQMap.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQMap.lo `test -f 'src/ast/XQMap.cpp' || echo '$(srcdir)/'`src/ast/XQMap.cpp XQAnalyzeString.lo: src/ast/XQAnalyzeString.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQAnalyzeString.lo -MD -MP -MF $(DEPDIR)/XQAnalyzeString.Tpo -c -o XQAnalyzeString.lo `test -f 'src/ast/XQAnalyzeString.cpp' || echo '$(srcdir)/'`src/ast/XQAnalyzeString.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQAnalyzeString.Tpo $(DEPDIR)/XQAnalyzeString.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQAnalyzeString.cpp' object='XQAnalyzeString.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQAnalyzeString.lo `test -f 'src/ast/XQAnalyzeString.cpp' || echo '$(srcdir)/'`src/ast/XQAnalyzeString.cpp XQCastableAs.lo: src/ast/XQCastableAs.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQCastableAs.lo -MD -MP -MF $(DEPDIR)/XQCastableAs.Tpo -c -o XQCastableAs.lo `test -f 'src/ast/XQCastableAs.cpp' || echo '$(srcdir)/'`src/ast/XQCastableAs.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQCastableAs.Tpo $(DEPDIR)/XQCastableAs.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQCastableAs.cpp' object='XQCastableAs.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQCastableAs.lo `test -f 'src/ast/XQCastableAs.cpp' || echo '$(srcdir)/'`src/ast/XQCastableAs.cpp XQCastAs.lo: src/ast/XQCastAs.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQCastAs.lo -MD -MP -MF $(DEPDIR)/XQCastAs.Tpo -c -o XQCastAs.lo `test -f 'src/ast/XQCastAs.cpp' || echo '$(srcdir)/'`src/ast/XQCastAs.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQCastAs.Tpo $(DEPDIR)/XQCastAs.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQCastAs.cpp' object='XQCastAs.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQCastAs.lo `test -f 'src/ast/XQCastAs.cpp' || echo '$(srcdir)/'`src/ast/XQCastAs.cpp XQContextItem.lo: src/ast/XQContextItem.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQContextItem.lo -MD -MP -MF $(DEPDIR)/XQContextItem.Tpo -c -o XQContextItem.lo `test -f 'src/ast/XQContextItem.cpp' || echo '$(srcdir)/'`src/ast/XQContextItem.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQContextItem.Tpo $(DEPDIR)/XQContextItem.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQContextItem.cpp' object='XQContextItem.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQContextItem.lo `test -f 'src/ast/XQContextItem.cpp' || echo '$(srcdir)/'`src/ast/XQContextItem.cpp XQCopy.lo: src/ast/XQCopy.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQCopy.lo -MD -MP -MF $(DEPDIR)/XQCopy.Tpo -c -o XQCopy.lo `test -f 'src/ast/XQCopy.cpp' || echo '$(srcdir)/'`src/ast/XQCopy.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQCopy.Tpo $(DEPDIR)/XQCopy.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQCopy.cpp' object='XQCopy.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQCopy.lo `test -f 'src/ast/XQCopy.cpp' || echo '$(srcdir)/'`src/ast/XQCopy.cpp XQCopyOf.lo: src/ast/XQCopyOf.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQCopyOf.lo -MD -MP -MF $(DEPDIR)/XQCopyOf.Tpo -c -o XQCopyOf.lo `test -f 'src/ast/XQCopyOf.cpp' || echo '$(srcdir)/'`src/ast/XQCopyOf.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQCopyOf.Tpo $(DEPDIR)/XQCopyOf.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQCopyOf.cpp' object='XQCopyOf.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQCopyOf.lo `test -f 'src/ast/XQCopyOf.cpp' || echo '$(srcdir)/'`src/ast/XQCopyOf.cpp XQFunction.lo: src/ast/XQFunction.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQFunction.lo -MD -MP -MF $(DEPDIR)/XQFunction.Tpo -c -o XQFunction.lo `test -f 'src/ast/XQFunction.cpp' || echo '$(srcdir)/'`src/ast/XQFunction.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQFunction.Tpo $(DEPDIR)/XQFunction.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQFunction.cpp' object='XQFunction.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQFunction.lo `test -f 'src/ast/XQFunction.cpp' || echo '$(srcdir)/'`src/ast/XQFunction.cpp XQIf.lo: src/ast/XQIf.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQIf.lo -MD -MP -MF $(DEPDIR)/XQIf.Tpo -c -o XQIf.lo `test -f 'src/ast/XQIf.cpp' || echo '$(srcdir)/'`src/ast/XQIf.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQIf.Tpo $(DEPDIR)/XQIf.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQIf.cpp' object='XQIf.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQIf.lo `test -f 'src/ast/XQIf.cpp' || echo '$(srcdir)/'`src/ast/XQIf.cpp ASTNodeImpl.lo: src/ast/ASTNodeImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ASTNodeImpl.lo -MD -MP -MF $(DEPDIR)/ASTNodeImpl.Tpo -c -o ASTNodeImpl.lo `test -f 'src/ast/ASTNodeImpl.cpp' || echo '$(srcdir)/'`src/ast/ASTNodeImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ASTNodeImpl.Tpo $(DEPDIR)/ASTNodeImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/ASTNodeImpl.cpp' object='ASTNodeImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ASTNodeImpl.lo `test -f 'src/ast/ASTNodeImpl.cpp' || echo '$(srcdir)/'`src/ast/ASTNodeImpl.cpp XQInlineFunction.lo: src/ast/XQInlineFunction.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQInlineFunction.lo -MD -MP -MF $(DEPDIR)/XQInlineFunction.Tpo -c -o XQInlineFunction.lo `test -f 'src/ast/XQInlineFunction.cpp' || echo '$(srcdir)/'`src/ast/XQInlineFunction.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQInlineFunction.Tpo $(DEPDIR)/XQInlineFunction.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQInlineFunction.cpp' object='XQInlineFunction.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQInlineFunction.lo `test -f 'src/ast/XQInlineFunction.cpp' || echo '$(srcdir)/'`src/ast/XQInlineFunction.cpp XQLiteral.lo: src/ast/XQLiteral.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQLiteral.lo -MD -MP -MF $(DEPDIR)/XQLiteral.Tpo -c -o XQLiteral.lo `test -f 'src/ast/XQLiteral.cpp' || echo '$(srcdir)/'`src/ast/XQLiteral.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQLiteral.Tpo $(DEPDIR)/XQLiteral.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQLiteral.cpp' object='XQLiteral.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQLiteral.lo `test -f 'src/ast/XQLiteral.cpp' || echo '$(srcdir)/'`src/ast/XQLiteral.cpp XQNav.lo: src/ast/XQNav.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQNav.lo -MD -MP -MF $(DEPDIR)/XQNav.Tpo -c -o XQNav.lo `test -f 'src/ast/XQNav.cpp' || echo '$(srcdir)/'`src/ast/XQNav.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQNav.Tpo $(DEPDIR)/XQNav.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQNav.cpp' object='XQNav.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQNav.lo `test -f 'src/ast/XQNav.cpp' || echo '$(srcdir)/'`src/ast/XQNav.cpp XQOperator.lo: src/ast/XQOperator.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQOperator.lo -MD -MP -MF $(DEPDIR)/XQOperator.Tpo -c -o XQOperator.lo `test -f 'src/ast/XQOperator.cpp' || echo '$(srcdir)/'`src/ast/XQOperator.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQOperator.Tpo $(DEPDIR)/XQOperator.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQOperator.cpp' object='XQOperator.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQOperator.lo `test -f 'src/ast/XQOperator.cpp' || echo '$(srcdir)/'`src/ast/XQOperator.cpp XQSequence.lo: src/ast/XQSequence.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQSequence.lo -MD -MP -MF $(DEPDIR)/XQSequence.Tpo -c -o XQSequence.lo `test -f 'src/ast/XQSequence.cpp' || echo '$(srcdir)/'`src/ast/XQSequence.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQSequence.Tpo $(DEPDIR)/XQSequence.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQSequence.cpp' object='XQSequence.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQSequence.lo `test -f 'src/ast/XQSequence.cpp' || echo '$(srcdir)/'`src/ast/XQSequence.cpp XQStep.lo: src/ast/XQStep.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQStep.lo -MD -MP -MF $(DEPDIR)/XQStep.Tpo -c -o XQStep.lo `test -f 'src/ast/XQStep.cpp' || echo '$(srcdir)/'`src/ast/XQStep.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQStep.Tpo $(DEPDIR)/XQStep.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQStep.cpp' object='XQStep.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQStep.lo `test -f 'src/ast/XQStep.cpp' || echo '$(srcdir)/'`src/ast/XQStep.cpp XQTreatAs.lo: src/ast/XQTreatAs.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQTreatAs.lo -MD -MP -MF $(DEPDIR)/XQTreatAs.Tpo -c -o XQTreatAs.lo `test -f 'src/ast/XQTreatAs.cpp' || echo '$(srcdir)/'`src/ast/XQTreatAs.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQTreatAs.Tpo $(DEPDIR)/XQTreatAs.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQTreatAs.cpp' object='XQTreatAs.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQTreatAs.lo `test -f 'src/ast/XQTreatAs.cpp' || echo '$(srcdir)/'`src/ast/XQTreatAs.cpp XQFunctionCoercion.lo: src/ast/XQFunctionCoercion.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQFunctionCoercion.lo -MD -MP -MF $(DEPDIR)/XQFunctionCoercion.Tpo -c -o XQFunctionCoercion.lo `test -f 'src/ast/XQFunctionCoercion.cpp' || echo '$(srcdir)/'`src/ast/XQFunctionCoercion.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQFunctionCoercion.Tpo $(DEPDIR)/XQFunctionCoercion.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQFunctionCoercion.cpp' object='XQFunctionCoercion.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQFunctionCoercion.lo `test -f 'src/ast/XQFunctionCoercion.cpp' || echo '$(srcdir)/'`src/ast/XQFunctionCoercion.cpp XQVariable.lo: src/ast/XQVariable.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQVariable.lo -MD -MP -MF $(DEPDIR)/XQVariable.Tpo -c -o XQVariable.lo `test -f 'src/ast/XQVariable.cpp' || echo '$(srcdir)/'`src/ast/XQVariable.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQVariable.Tpo $(DEPDIR)/XQVariable.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQVariable.cpp' object='XQVariable.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQVariable.lo `test -f 'src/ast/XQVariable.cpp' || echo '$(srcdir)/'`src/ast/XQVariable.cpp StaticAnalysis.lo: src/ast/StaticAnalysis.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT StaticAnalysis.lo -MD -MP -MF $(DEPDIR)/StaticAnalysis.Tpo -c -o StaticAnalysis.lo `test -f 'src/ast/StaticAnalysis.cpp' || echo '$(srcdir)/'`src/ast/StaticAnalysis.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/StaticAnalysis.Tpo $(DEPDIR)/StaticAnalysis.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/StaticAnalysis.cpp' object='StaticAnalysis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o StaticAnalysis.lo `test -f 'src/ast/StaticAnalysis.cpp' || echo '$(srcdir)/'`src/ast/StaticAnalysis.cpp StaticType.lo: src/ast/StaticType.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT StaticType.lo -MD -MP -MF $(DEPDIR)/StaticType.Tpo -c -o StaticType.lo `test -f 'src/ast/StaticType.cpp' || echo '$(srcdir)/'`src/ast/StaticType.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/StaticType.Tpo $(DEPDIR)/StaticType.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/StaticType.cpp' object='StaticType.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o StaticType.lo `test -f 'src/ast/StaticType.cpp' || echo '$(srcdir)/'`src/ast/StaticType.cpp NumericFunction.lo: src/ast/NumericFunction.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT NumericFunction.lo -MD -MP -MF $(DEPDIR)/NumericFunction.Tpo -c -o NumericFunction.lo `test -f 'src/ast/NumericFunction.cpp' || echo '$(srcdir)/'`src/ast/NumericFunction.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/NumericFunction.Tpo $(DEPDIR)/NumericFunction.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/NumericFunction.cpp' object='NumericFunction.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o NumericFunction.lo `test -f 'src/ast/NumericFunction.cpp' || echo '$(srcdir)/'`src/ast/NumericFunction.cpp XQDOMConstructor.lo: src/ast/XQDOMConstructor.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQDOMConstructor.lo -MD -MP -MF $(DEPDIR)/XQDOMConstructor.Tpo -c -o XQDOMConstructor.lo `test -f 'src/ast/XQDOMConstructor.cpp' || echo '$(srcdir)/'`src/ast/XQDOMConstructor.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQDOMConstructor.Tpo $(DEPDIR)/XQDOMConstructor.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQDOMConstructor.cpp' object='XQDOMConstructor.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQDOMConstructor.lo `test -f 'src/ast/XQDOMConstructor.cpp' || echo '$(srcdir)/'`src/ast/XQDOMConstructor.cpp XQDocumentConstructor.lo: src/ast/XQDocumentConstructor.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQDocumentConstructor.lo -MD -MP -MF $(DEPDIR)/XQDocumentConstructor.Tpo -c -o XQDocumentConstructor.lo `test -f 'src/ast/XQDocumentConstructor.cpp' || echo '$(srcdir)/'`src/ast/XQDocumentConstructor.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQDocumentConstructor.Tpo $(DEPDIR)/XQDocumentConstructor.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQDocumentConstructor.cpp' object='XQDocumentConstructor.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQDocumentConstructor.lo `test -f 'src/ast/XQDocumentConstructor.cpp' || echo '$(srcdir)/'`src/ast/XQDocumentConstructor.cpp XQElementConstructor.lo: src/ast/XQElementConstructor.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQElementConstructor.lo -MD -MP -MF $(DEPDIR)/XQElementConstructor.Tpo -c -o XQElementConstructor.lo `test -f 'src/ast/XQElementConstructor.cpp' || echo '$(srcdir)/'`src/ast/XQElementConstructor.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQElementConstructor.Tpo $(DEPDIR)/XQElementConstructor.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQElementConstructor.cpp' object='XQElementConstructor.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQElementConstructor.lo `test -f 'src/ast/XQElementConstructor.cpp' || echo '$(srcdir)/'`src/ast/XQElementConstructor.cpp XQAttributeConstructor.lo: src/ast/XQAttributeConstructor.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQAttributeConstructor.lo -MD -MP -MF $(DEPDIR)/XQAttributeConstructor.Tpo -c -o XQAttributeConstructor.lo `test -f 'src/ast/XQAttributeConstructor.cpp' || echo '$(srcdir)/'`src/ast/XQAttributeConstructor.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQAttributeConstructor.Tpo $(DEPDIR)/XQAttributeConstructor.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQAttributeConstructor.cpp' object='XQAttributeConstructor.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQAttributeConstructor.lo `test -f 'src/ast/XQAttributeConstructor.cpp' || echo '$(srcdir)/'`src/ast/XQAttributeConstructor.cpp XQNamespaceConstructor.lo: src/ast/XQNamespaceConstructor.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQNamespaceConstructor.lo -MD -MP -MF $(DEPDIR)/XQNamespaceConstructor.Tpo -c -o XQNamespaceConstructor.lo `test -f 'src/ast/XQNamespaceConstructor.cpp' || echo '$(srcdir)/'`src/ast/XQNamespaceConstructor.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQNamespaceConstructor.Tpo $(DEPDIR)/XQNamespaceConstructor.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQNamespaceConstructor.cpp' object='XQNamespaceConstructor.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQNamespaceConstructor.lo `test -f 'src/ast/XQNamespaceConstructor.cpp' || echo '$(srcdir)/'`src/ast/XQNamespaceConstructor.cpp XQPIConstructor.lo: src/ast/XQPIConstructor.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQPIConstructor.lo -MD -MP -MF $(DEPDIR)/XQPIConstructor.Tpo -c -o XQPIConstructor.lo `test -f 'src/ast/XQPIConstructor.cpp' || echo '$(srcdir)/'`src/ast/XQPIConstructor.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQPIConstructor.Tpo $(DEPDIR)/XQPIConstructor.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQPIConstructor.cpp' object='XQPIConstructor.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQPIConstructor.lo `test -f 'src/ast/XQPIConstructor.cpp' || echo '$(srcdir)/'`src/ast/XQPIConstructor.cpp XQCommentConstructor.lo: src/ast/XQCommentConstructor.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQCommentConstructor.lo -MD -MP -MF $(DEPDIR)/XQCommentConstructor.Tpo -c -o XQCommentConstructor.lo `test -f 'src/ast/XQCommentConstructor.cpp' || echo '$(srcdir)/'`src/ast/XQCommentConstructor.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQCommentConstructor.Tpo $(DEPDIR)/XQCommentConstructor.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQCommentConstructor.cpp' object='XQCommentConstructor.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQCommentConstructor.lo `test -f 'src/ast/XQCommentConstructor.cpp' || echo '$(srcdir)/'`src/ast/XQCommentConstructor.cpp XQTextConstructor.lo: src/ast/XQTextConstructor.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQTextConstructor.lo -MD -MP -MF $(DEPDIR)/XQTextConstructor.Tpo -c -o XQTextConstructor.lo `test -f 'src/ast/XQTextConstructor.cpp' || echo '$(srcdir)/'`src/ast/XQTextConstructor.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQTextConstructor.Tpo $(DEPDIR)/XQTextConstructor.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQTextConstructor.cpp' object='XQTextConstructor.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQTextConstructor.lo `test -f 'src/ast/XQTextConstructor.cpp' || echo '$(srcdir)/'`src/ast/XQTextConstructor.cpp XQFunctionCall.lo: src/ast/XQFunctionCall.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQFunctionCall.lo -MD -MP -MF $(DEPDIR)/XQFunctionCall.Tpo -c -o XQFunctionCall.lo `test -f 'src/ast/XQFunctionCall.cpp' || echo '$(srcdir)/'`src/ast/XQFunctionCall.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQFunctionCall.Tpo $(DEPDIR)/XQFunctionCall.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQFunctionCall.cpp' object='XQFunctionCall.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQFunctionCall.lo `test -f 'src/ast/XQFunctionCall.cpp' || echo '$(srcdir)/'`src/ast/XQFunctionCall.cpp XQFunctionConversion.lo: src/ast/XQFunctionConversion.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQFunctionConversion.lo -MD -MP -MF $(DEPDIR)/XQFunctionConversion.Tpo -c -o XQFunctionConversion.lo `test -f 'src/ast/XQFunctionConversion.cpp' || echo '$(srcdir)/'`src/ast/XQFunctionConversion.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQFunctionConversion.Tpo $(DEPDIR)/XQFunctionConversion.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQFunctionConversion.cpp' object='XQFunctionConversion.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQFunctionConversion.lo `test -f 'src/ast/XQFunctionConversion.cpp' || echo '$(srcdir)/'`src/ast/XQFunctionConversion.cpp XQFunctionDeref.lo: src/ast/XQFunctionDeref.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQFunctionDeref.lo -MD -MP -MF $(DEPDIR)/XQFunctionDeref.Tpo -c -o XQFunctionDeref.lo `test -f 'src/ast/XQFunctionDeref.cpp' || echo '$(srcdir)/'`src/ast/XQFunctionDeref.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQFunctionDeref.Tpo $(DEPDIR)/XQFunctionDeref.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQFunctionDeref.cpp' object='XQFunctionDeref.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQFunctionDeref.lo `test -f 'src/ast/XQFunctionDeref.cpp' || echo '$(srcdir)/'`src/ast/XQFunctionDeref.cpp XQPartialApply.lo: src/ast/XQPartialApply.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQPartialApply.lo -MD -MP -MF $(DEPDIR)/XQPartialApply.Tpo -c -o XQPartialApply.lo `test -f 'src/ast/XQPartialApply.cpp' || echo '$(srcdir)/'`src/ast/XQPartialApply.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQPartialApply.Tpo $(DEPDIR)/XQPartialApply.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQPartialApply.cpp' object='XQPartialApply.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQPartialApply.lo `test -f 'src/ast/XQPartialApply.cpp' || echo '$(srcdir)/'`src/ast/XQPartialApply.cpp XQFunctionRef.lo: src/ast/XQFunctionRef.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQFunctionRef.lo -MD -MP -MF $(DEPDIR)/XQFunctionRef.Tpo -c -o XQFunctionRef.lo `test -f 'src/ast/XQFunctionRef.cpp' || echo '$(srcdir)/'`src/ast/XQFunctionRef.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQFunctionRef.Tpo $(DEPDIR)/XQFunctionRef.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQFunctionRef.cpp' object='XQFunctionRef.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQFunctionRef.lo `test -f 'src/ast/XQFunctionRef.cpp' || echo '$(srcdir)/'`src/ast/XQFunctionRef.cpp XQGlobalVariable.lo: src/ast/XQGlobalVariable.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQGlobalVariable.lo -MD -MP -MF $(DEPDIR)/XQGlobalVariable.Tpo -c -o XQGlobalVariable.lo `test -f 'src/ast/XQGlobalVariable.cpp' || echo '$(srcdir)/'`src/ast/XQGlobalVariable.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQGlobalVariable.Tpo $(DEPDIR)/XQGlobalVariable.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQGlobalVariable.cpp' object='XQGlobalVariable.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQGlobalVariable.lo `test -f 'src/ast/XQGlobalVariable.cpp' || echo '$(srcdir)/'`src/ast/XQGlobalVariable.cpp XQOrderingChange.lo: src/ast/XQOrderingChange.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQOrderingChange.lo -MD -MP -MF $(DEPDIR)/XQOrderingChange.Tpo -c -o XQOrderingChange.lo `test -f 'src/ast/XQOrderingChange.cpp' || echo '$(srcdir)/'`src/ast/XQOrderingChange.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQOrderingChange.Tpo $(DEPDIR)/XQOrderingChange.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQOrderingChange.cpp' object='XQOrderingChange.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQOrderingChange.lo `test -f 'src/ast/XQOrderingChange.cpp' || echo '$(srcdir)/'`src/ast/XQOrderingChange.cpp XQQuantified.lo: src/ast/XQQuantified.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQQuantified.lo -MD -MP -MF $(DEPDIR)/XQQuantified.Tpo -c -o XQQuantified.lo `test -f 'src/ast/XQQuantified.cpp' || echo '$(srcdir)/'`src/ast/XQQuantified.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQQuantified.Tpo $(DEPDIR)/XQQuantified.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQQuantified.cpp' object='XQQuantified.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQQuantified.lo `test -f 'src/ast/XQQuantified.cpp' || echo '$(srcdir)/'`src/ast/XQQuantified.cpp XQValidate.lo: src/ast/XQValidate.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQValidate.lo -MD -MP -MF $(DEPDIR)/XQValidate.Tpo -c -o XQValidate.lo `test -f 'src/ast/XQValidate.cpp' || echo '$(srcdir)/'`src/ast/XQValidate.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQValidate.Tpo $(DEPDIR)/XQValidate.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQValidate.cpp' object='XQValidate.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQValidate.lo `test -f 'src/ast/XQValidate.cpp' || echo '$(srcdir)/'`src/ast/XQValidate.cpp XQTypeswitch.lo: src/ast/XQTypeswitch.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQTypeswitch.lo -MD -MP -MF $(DEPDIR)/XQTypeswitch.Tpo -c -o XQTypeswitch.lo `test -f 'src/ast/XQTypeswitch.cpp' || echo '$(srcdir)/'`src/ast/XQTypeswitch.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQTypeswitch.Tpo $(DEPDIR)/XQTypeswitch.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQTypeswitch.cpp' object='XQTypeswitch.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQTypeswitch.lo `test -f 'src/ast/XQTypeswitch.cpp' || echo '$(srcdir)/'`src/ast/XQTypeswitch.cpp ConvertFunctionArg.lo: src/ast/ConvertFunctionArg.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ConvertFunctionArg.lo -MD -MP -MF $(DEPDIR)/ConvertFunctionArg.Tpo -c -o ConvertFunctionArg.lo `test -f 'src/ast/ConvertFunctionArg.cpp' || echo '$(srcdir)/'`src/ast/ConvertFunctionArg.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ConvertFunctionArg.Tpo $(DEPDIR)/ConvertFunctionArg.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/ConvertFunctionArg.cpp' object='ConvertFunctionArg.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ConvertFunctionArg.lo `test -f 'src/ast/ConvertFunctionArg.cpp' || echo '$(srcdir)/'`src/ast/ConvertFunctionArg.cpp XQDocumentOrder.lo: src/ast/XQDocumentOrder.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQDocumentOrder.lo -MD -MP -MF $(DEPDIR)/XQDocumentOrder.Tpo -c -o XQDocumentOrder.lo `test -f 'src/ast/XQDocumentOrder.cpp' || echo '$(srcdir)/'`src/ast/XQDocumentOrder.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQDocumentOrder.Tpo $(DEPDIR)/XQDocumentOrder.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQDocumentOrder.cpp' object='XQDocumentOrder.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQDocumentOrder.lo `test -f 'src/ast/XQDocumentOrder.cpp' || echo '$(srcdir)/'`src/ast/XQDocumentOrder.cpp XQPredicate.lo: src/ast/XQPredicate.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQPredicate.lo -MD -MP -MF $(DEPDIR)/XQPredicate.Tpo -c -o XQPredicate.lo `test -f 'src/ast/XQPredicate.cpp' || echo '$(srcdir)/'`src/ast/XQPredicate.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQPredicate.Tpo $(DEPDIR)/XQPredicate.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQPredicate.cpp' object='XQPredicate.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQPredicate.lo `test -f 'src/ast/XQPredicate.cpp' || echo '$(srcdir)/'`src/ast/XQPredicate.cpp XQReturn.lo: src/ast/XQReturn.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQReturn.lo -MD -MP -MF $(DEPDIR)/XQReturn.Tpo -c -o XQReturn.lo `test -f 'src/ast/XQReturn.cpp' || echo '$(srcdir)/'`src/ast/XQReturn.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQReturn.Tpo $(DEPDIR)/XQReturn.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQReturn.cpp' object='XQReturn.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQReturn.lo `test -f 'src/ast/XQReturn.cpp' || echo '$(srcdir)/'`src/ast/XQReturn.cpp TupleNode.lo: src/ast/TupleNode.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT TupleNode.lo -MD -MP -MF $(DEPDIR)/TupleNode.Tpo -c -o TupleNode.lo `test -f 'src/ast/TupleNode.cpp' || echo '$(srcdir)/'`src/ast/TupleNode.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/TupleNode.Tpo $(DEPDIR)/TupleNode.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/TupleNode.cpp' object='TupleNode.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o TupleNode.lo `test -f 'src/ast/TupleNode.cpp' || echo '$(srcdir)/'`src/ast/TupleNode.cpp ContextTuple.lo: src/ast/ContextTuple.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ContextTuple.lo -MD -MP -MF $(DEPDIR)/ContextTuple.Tpo -c -o ContextTuple.lo `test -f 'src/ast/ContextTuple.cpp' || echo '$(srcdir)/'`src/ast/ContextTuple.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ContextTuple.Tpo $(DEPDIR)/ContextTuple.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/ContextTuple.cpp' object='ContextTuple.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ContextTuple.lo `test -f 'src/ast/ContextTuple.cpp' || echo '$(srcdir)/'`src/ast/ContextTuple.cpp ForTuple.lo: src/ast/ForTuple.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ForTuple.lo -MD -MP -MF $(DEPDIR)/ForTuple.Tpo -c -o ForTuple.lo `test -f 'src/ast/ForTuple.cpp' || echo '$(srcdir)/'`src/ast/ForTuple.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ForTuple.Tpo $(DEPDIR)/ForTuple.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/ForTuple.cpp' object='ForTuple.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ForTuple.lo `test -f 'src/ast/ForTuple.cpp' || echo '$(srcdir)/'`src/ast/ForTuple.cpp LetTuple.lo: src/ast/LetTuple.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT LetTuple.lo -MD -MP -MF $(DEPDIR)/LetTuple.Tpo -c -o LetTuple.lo `test -f 'src/ast/LetTuple.cpp' || echo '$(srcdir)/'`src/ast/LetTuple.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/LetTuple.Tpo $(DEPDIR)/LetTuple.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/LetTuple.cpp' object='LetTuple.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o LetTuple.lo `test -f 'src/ast/LetTuple.cpp' || echo '$(srcdir)/'`src/ast/LetTuple.cpp WhereTuple.lo: src/ast/WhereTuple.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT WhereTuple.lo -MD -MP -MF $(DEPDIR)/WhereTuple.Tpo -c -o WhereTuple.lo `test -f 'src/ast/WhereTuple.cpp' || echo '$(srcdir)/'`src/ast/WhereTuple.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/WhereTuple.Tpo $(DEPDIR)/WhereTuple.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/WhereTuple.cpp' object='WhereTuple.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o WhereTuple.lo `test -f 'src/ast/WhereTuple.cpp' || echo '$(srcdir)/'`src/ast/WhereTuple.cpp CountTuple.lo: src/ast/CountTuple.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT CountTuple.lo -MD -MP -MF $(DEPDIR)/CountTuple.Tpo -c -o CountTuple.lo `test -f 'src/ast/CountTuple.cpp' || echo '$(srcdir)/'`src/ast/CountTuple.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/CountTuple.Tpo $(DEPDIR)/CountTuple.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/CountTuple.cpp' object='CountTuple.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o CountTuple.lo `test -f 'src/ast/CountTuple.cpp' || echo '$(srcdir)/'`src/ast/CountTuple.cpp OrderByTuple.lo: src/ast/OrderByTuple.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT OrderByTuple.lo -MD -MP -MF $(DEPDIR)/OrderByTuple.Tpo -c -o OrderByTuple.lo `test -f 'src/ast/OrderByTuple.cpp' || echo '$(srcdir)/'`src/ast/OrderByTuple.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/OrderByTuple.Tpo $(DEPDIR)/OrderByTuple.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/OrderByTuple.cpp' object='OrderByTuple.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o OrderByTuple.lo `test -f 'src/ast/OrderByTuple.cpp' || echo '$(srcdir)/'`src/ast/OrderByTuple.cpp XQNamespaceBinding.lo: src/ast/XQNamespaceBinding.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQNamespaceBinding.lo -MD -MP -MF $(DEPDIR)/XQNamespaceBinding.Tpo -c -o XQNamespaceBinding.lo `test -f 'src/ast/XQNamespaceBinding.cpp' || echo '$(srcdir)/'`src/ast/XQNamespaceBinding.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQNamespaceBinding.Tpo $(DEPDIR)/XQNamespaceBinding.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQNamespaceBinding.cpp' object='XQNamespaceBinding.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQNamespaceBinding.lo `test -f 'src/ast/XQNamespaceBinding.cpp' || echo '$(srcdir)/'`src/ast/XQNamespaceBinding.cpp XQCallTemplate.lo: src/ast/XQCallTemplate.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQCallTemplate.lo -MD -MP -MF $(DEPDIR)/XQCallTemplate.Tpo -c -o XQCallTemplate.lo `test -f 'src/ast/XQCallTemplate.cpp' || echo '$(srcdir)/'`src/ast/XQCallTemplate.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQCallTemplate.Tpo $(DEPDIR)/XQCallTemplate.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQCallTemplate.cpp' object='XQCallTemplate.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQCallTemplate.lo `test -f 'src/ast/XQCallTemplate.cpp' || echo '$(srcdir)/'`src/ast/XQCallTemplate.cpp XQApplyTemplates.lo: src/ast/XQApplyTemplates.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQApplyTemplates.lo -MD -MP -MF $(DEPDIR)/XQApplyTemplates.Tpo -c -o XQApplyTemplates.lo `test -f 'src/ast/XQApplyTemplates.cpp' || echo '$(srcdir)/'`src/ast/XQApplyTemplates.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQApplyTemplates.Tpo $(DEPDIR)/XQApplyTemplates.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/ast/XQApplyTemplates.cpp' object='XQApplyTemplates.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQApplyTemplates.lo `test -f 'src/ast/XQApplyTemplates.cpp' || echo '$(srcdir)/'`src/ast/XQApplyTemplates.cpp ASTDebugHook.lo: src/debug/ASTDebugHook.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ASTDebugHook.lo -MD -MP -MF $(DEPDIR)/ASTDebugHook.Tpo -c -o ASTDebugHook.lo `test -f 'src/debug/ASTDebugHook.cpp' || echo '$(srcdir)/'`src/debug/ASTDebugHook.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ASTDebugHook.Tpo $(DEPDIR)/ASTDebugHook.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/debug/ASTDebugHook.cpp' object='ASTDebugHook.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ASTDebugHook.lo `test -f 'src/debug/ASTDebugHook.cpp' || echo '$(srcdir)/'`src/debug/ASTDebugHook.cpp DebugHookDecorator.lo: src/debug/DebugHookDecorator.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT DebugHookDecorator.lo -MD -MP -MF $(DEPDIR)/DebugHookDecorator.Tpo -c -o DebugHookDecorator.lo `test -f 'src/debug/DebugHookDecorator.cpp' || echo '$(srcdir)/'`src/debug/DebugHookDecorator.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/DebugHookDecorator.Tpo $(DEPDIR)/DebugHookDecorator.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/debug/DebugHookDecorator.cpp' object='DebugHookDecorator.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o DebugHookDecorator.lo `test -f 'src/debug/DebugHookDecorator.cpp' || echo '$(srcdir)/'`src/debug/DebugHookDecorator.cpp TupleDebugHook.lo: src/debug/TupleDebugHook.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT TupleDebugHook.lo -MD -MP -MF $(DEPDIR)/TupleDebugHook.Tpo -c -o TupleDebugHook.lo `test -f 'src/debug/TupleDebugHook.cpp' || echo '$(srcdir)/'`src/debug/TupleDebugHook.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/TupleDebugHook.Tpo $(DEPDIR)/TupleDebugHook.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/debug/TupleDebugHook.cpp' object='TupleDebugHook.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o TupleDebugHook.lo `test -f 'src/debug/TupleDebugHook.cpp' || echo '$(srcdir)/'`src/debug/TupleDebugHook.cpp InputParser.lo: src/debug/InputParser.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT InputParser.lo -MD -MP -MF $(DEPDIR)/InputParser.Tpo -c -o InputParser.lo `test -f 'src/debug/InputParser.cpp' || echo '$(srcdir)/'`src/debug/InputParser.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/InputParser.Tpo $(DEPDIR)/InputParser.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/debug/InputParser.cpp' object='InputParser.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o InputParser.lo `test -f 'src/debug/InputParser.cpp' || echo '$(srcdir)/'`src/debug/InputParser.cpp InteractiveDebugger.lo: src/debug/InteractiveDebugger.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT InteractiveDebugger.lo -MD -MP -MF $(DEPDIR)/InteractiveDebugger.Tpo -c -o InteractiveDebugger.lo `test -f 'src/debug/InteractiveDebugger.cpp' || echo '$(srcdir)/'`src/debug/InteractiveDebugger.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/InteractiveDebugger.Tpo $(DEPDIR)/InteractiveDebugger.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/debug/InteractiveDebugger.cpp' object='InteractiveDebugger.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o InteractiveDebugger.lo `test -f 'src/debug/InteractiveDebugger.cpp' || echo '$(srcdir)/'`src/debug/InteractiveDebugger.cpp StackFrame.lo: src/debug/StackFrame.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT StackFrame.lo -MD -MP -MF $(DEPDIR)/StackFrame.Tpo -c -o StackFrame.lo `test -f 'src/debug/StackFrame.cpp' || echo '$(srcdir)/'`src/debug/StackFrame.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/StackFrame.Tpo $(DEPDIR)/StackFrame.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/debug/StackFrame.cpp' object='StackFrame.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o StackFrame.lo `test -f 'src/debug/StackFrame.cpp' || echo '$(srcdir)/'`src/debug/StackFrame.cpp ContentSequenceFilter.lo: src/events/ContentSequenceFilter.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ContentSequenceFilter.lo -MD -MP -MF $(DEPDIR)/ContentSequenceFilter.Tpo -c -o ContentSequenceFilter.lo `test -f 'src/events/ContentSequenceFilter.cpp' || echo '$(srcdir)/'`src/events/ContentSequenceFilter.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ContentSequenceFilter.Tpo $(DEPDIR)/ContentSequenceFilter.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/events/ContentSequenceFilter.cpp' object='ContentSequenceFilter.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ContentSequenceFilter.lo `test -f 'src/events/ContentSequenceFilter.cpp' || echo '$(srcdir)/'`src/events/ContentSequenceFilter.cpp EventGenerator.lo: src/events/EventGenerator.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT EventGenerator.lo -MD -MP -MF $(DEPDIR)/EventGenerator.Tpo -c -o EventGenerator.lo `test -f 'src/events/EventGenerator.cpp' || echo '$(srcdir)/'`src/events/EventGenerator.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/EventGenerator.Tpo $(DEPDIR)/EventGenerator.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/events/EventGenerator.cpp' object='EventGenerator.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o EventGenerator.lo `test -f 'src/events/EventGenerator.cpp' || echo '$(srcdir)/'`src/events/EventGenerator.cpp EventSerializer.lo: src/events/EventSerializer.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT EventSerializer.lo -MD -MP -MF $(DEPDIR)/EventSerializer.Tpo -c -o EventSerializer.lo `test -f 'src/events/EventSerializer.cpp' || echo '$(srcdir)/'`src/events/EventSerializer.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/EventSerializer.Tpo $(DEPDIR)/EventSerializer.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/events/EventSerializer.cpp' object='EventSerializer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o EventSerializer.lo `test -f 'src/events/EventSerializer.cpp' || echo '$(srcdir)/'`src/events/EventSerializer.cpp NoInheritFilter.lo: src/events/NoInheritFilter.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT NoInheritFilter.lo -MD -MP -MF $(DEPDIR)/NoInheritFilter.Tpo -c -o NoInheritFilter.lo `test -f 'src/events/NoInheritFilter.cpp' || echo '$(srcdir)/'`src/events/NoInheritFilter.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/NoInheritFilter.Tpo $(DEPDIR)/NoInheritFilter.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/events/NoInheritFilter.cpp' object='NoInheritFilter.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o NoInheritFilter.lo `test -f 'src/events/NoInheritFilter.cpp' || echo '$(srcdir)/'`src/events/NoInheritFilter.cpp NSFixupFilter.lo: src/events/NSFixupFilter.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT NSFixupFilter.lo -MD -MP -MF $(DEPDIR)/NSFixupFilter.Tpo -c -o NSFixupFilter.lo `test -f 'src/events/NSFixupFilter.cpp' || echo '$(srcdir)/'`src/events/NSFixupFilter.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/NSFixupFilter.Tpo $(DEPDIR)/NSFixupFilter.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/events/NSFixupFilter.cpp' object='NSFixupFilter.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o NSFixupFilter.lo `test -f 'src/events/NSFixupFilter.cpp' || echo '$(srcdir)/'`src/events/NSFixupFilter.cpp QueryPathTreeFilter.lo: src/events/QueryPathTreeFilter.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT QueryPathTreeFilter.lo -MD -MP -MF $(DEPDIR)/QueryPathTreeFilter.Tpo -c -o QueryPathTreeFilter.lo `test -f 'src/events/QueryPathTreeFilter.cpp' || echo '$(srcdir)/'`src/events/QueryPathTreeFilter.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/QueryPathTreeFilter.Tpo $(DEPDIR)/QueryPathTreeFilter.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/events/QueryPathTreeFilter.cpp' object='QueryPathTreeFilter.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o QueryPathTreeFilter.lo `test -f 'src/events/QueryPathTreeFilter.cpp' || echo '$(srcdir)/'`src/events/QueryPathTreeFilter.cpp FTContains.lo: src/fulltext/FTContains.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FTContains.lo -MD -MP -MF $(DEPDIR)/FTContains.Tpo -c -o FTContains.lo `test -f 'src/fulltext/FTContains.cpp' || echo '$(srcdir)/'`src/fulltext/FTContains.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FTContains.Tpo $(DEPDIR)/FTContains.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/fulltext/FTContains.cpp' object='FTContains.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FTContains.lo `test -f 'src/fulltext/FTContains.cpp' || echo '$(srcdir)/'`src/fulltext/FTContains.cpp FTWords.lo: src/fulltext/FTWords.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FTWords.lo -MD -MP -MF $(DEPDIR)/FTWords.Tpo -c -o FTWords.lo `test -f 'src/fulltext/FTWords.cpp' || echo '$(srcdir)/'`src/fulltext/FTWords.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FTWords.Tpo $(DEPDIR)/FTWords.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/fulltext/FTWords.cpp' object='FTWords.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FTWords.lo `test -f 'src/fulltext/FTWords.cpp' || echo '$(srcdir)/'`src/fulltext/FTWords.cpp FTOr.lo: src/fulltext/FTOr.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FTOr.lo -MD -MP -MF $(DEPDIR)/FTOr.Tpo -c -o FTOr.lo `test -f 'src/fulltext/FTOr.cpp' || echo '$(srcdir)/'`src/fulltext/FTOr.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FTOr.Tpo $(DEPDIR)/FTOr.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/fulltext/FTOr.cpp' object='FTOr.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FTOr.lo `test -f 'src/fulltext/FTOr.cpp' || echo '$(srcdir)/'`src/fulltext/FTOr.cpp FTAnd.lo: src/fulltext/FTAnd.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FTAnd.lo -MD -MP -MF $(DEPDIR)/FTAnd.Tpo -c -o FTAnd.lo `test -f 'src/fulltext/FTAnd.cpp' || echo '$(srcdir)/'`src/fulltext/FTAnd.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FTAnd.Tpo $(DEPDIR)/FTAnd.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/fulltext/FTAnd.cpp' object='FTAnd.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FTAnd.lo `test -f 'src/fulltext/FTAnd.cpp' || echo '$(srcdir)/'`src/fulltext/FTAnd.cpp FTMildnot.lo: src/fulltext/FTMildnot.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FTMildnot.lo -MD -MP -MF $(DEPDIR)/FTMildnot.Tpo -c -o FTMildnot.lo `test -f 'src/fulltext/FTMildnot.cpp' || echo '$(srcdir)/'`src/fulltext/FTMildnot.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FTMildnot.Tpo $(DEPDIR)/FTMildnot.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/fulltext/FTMildnot.cpp' object='FTMildnot.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FTMildnot.lo `test -f 'src/fulltext/FTMildnot.cpp' || echo '$(srcdir)/'`src/fulltext/FTMildnot.cpp FTUnaryNot.lo: src/fulltext/FTUnaryNot.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FTUnaryNot.lo -MD -MP -MF $(DEPDIR)/FTUnaryNot.Tpo -c -o FTUnaryNot.lo `test -f 'src/fulltext/FTUnaryNot.cpp' || echo '$(srcdir)/'`src/fulltext/FTUnaryNot.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FTUnaryNot.Tpo $(DEPDIR)/FTUnaryNot.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/fulltext/FTUnaryNot.cpp' object='FTUnaryNot.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FTUnaryNot.lo `test -f 'src/fulltext/FTUnaryNot.cpp' || echo '$(srcdir)/'`src/fulltext/FTUnaryNot.cpp DefaultTokenizer.lo: src/fulltext/DefaultTokenizer.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT DefaultTokenizer.lo -MD -MP -MF $(DEPDIR)/DefaultTokenizer.Tpo -c -o DefaultTokenizer.lo `test -f 'src/fulltext/DefaultTokenizer.cpp' || echo '$(srcdir)/'`src/fulltext/DefaultTokenizer.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/DefaultTokenizer.Tpo $(DEPDIR)/DefaultTokenizer.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/fulltext/DefaultTokenizer.cpp' object='DefaultTokenizer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o DefaultTokenizer.lo `test -f 'src/fulltext/DefaultTokenizer.cpp' || echo '$(srcdir)/'`src/fulltext/DefaultTokenizer.cpp DefaultTokenStore.lo: src/fulltext/DefaultTokenStore.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT DefaultTokenStore.lo -MD -MP -MF $(DEPDIR)/DefaultTokenStore.Tpo -c -o DefaultTokenStore.lo `test -f 'src/fulltext/DefaultTokenStore.cpp' || echo '$(srcdir)/'`src/fulltext/DefaultTokenStore.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/DefaultTokenStore.Tpo $(DEPDIR)/DefaultTokenStore.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/fulltext/DefaultTokenStore.cpp' object='DefaultTokenStore.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o DefaultTokenStore.lo `test -f 'src/fulltext/DefaultTokenStore.cpp' || echo '$(srcdir)/'`src/fulltext/DefaultTokenStore.cpp FTOrder.lo: src/fulltext/FTOrder.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FTOrder.lo -MD -MP -MF $(DEPDIR)/FTOrder.Tpo -c -o FTOrder.lo `test -f 'src/fulltext/FTOrder.cpp' || echo '$(srcdir)/'`src/fulltext/FTOrder.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FTOrder.Tpo $(DEPDIR)/FTOrder.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/fulltext/FTOrder.cpp' object='FTOrder.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FTOrder.lo `test -f 'src/fulltext/FTOrder.cpp' || echo '$(srcdir)/'`src/fulltext/FTOrder.cpp FTDistance.lo: src/fulltext/FTDistance.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FTDistance.lo -MD -MP -MF $(DEPDIR)/FTDistance.Tpo -c -o FTDistance.lo `test -f 'src/fulltext/FTDistance.cpp' || echo '$(srcdir)/'`src/fulltext/FTDistance.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FTDistance.Tpo $(DEPDIR)/FTDistance.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/fulltext/FTDistance.cpp' object='FTDistance.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FTDistance.lo `test -f 'src/fulltext/FTDistance.cpp' || echo '$(srcdir)/'`src/fulltext/FTDistance.cpp FTScope.lo: src/fulltext/FTScope.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FTScope.lo -MD -MP -MF $(DEPDIR)/FTScope.Tpo -c -o FTScope.lo `test -f 'src/fulltext/FTScope.cpp' || echo '$(srcdir)/'`src/fulltext/FTScope.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FTScope.Tpo $(DEPDIR)/FTScope.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/fulltext/FTScope.cpp' object='FTScope.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FTScope.lo `test -f 'src/fulltext/FTScope.cpp' || echo '$(srcdir)/'`src/fulltext/FTScope.cpp FTContent.lo: src/fulltext/FTContent.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FTContent.lo -MD -MP -MF $(DEPDIR)/FTContent.Tpo -c -o FTContent.lo `test -f 'src/fulltext/FTContent.cpp' || echo '$(srcdir)/'`src/fulltext/FTContent.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FTContent.Tpo $(DEPDIR)/FTContent.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/fulltext/FTContent.cpp' object='FTContent.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FTContent.lo `test -f 'src/fulltext/FTContent.cpp' || echo '$(srcdir)/'`src/fulltext/FTContent.cpp FTWindow.lo: src/fulltext/FTWindow.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FTWindow.lo -MD -MP -MF $(DEPDIR)/FTWindow.Tpo -c -o FTWindow.lo `test -f 'src/fulltext/FTWindow.cpp' || echo '$(srcdir)/'`src/fulltext/FTWindow.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FTWindow.Tpo $(DEPDIR)/FTWindow.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/fulltext/FTWindow.cpp' object='FTWindow.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FTWindow.lo `test -f 'src/fulltext/FTWindow.cpp' || echo '$(srcdir)/'`src/fulltext/FTWindow.cpp XQillaBuilderImpl.lo: src/dom-api/impl/XQillaBuilderImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQillaBuilderImpl.lo -MD -MP -MF $(DEPDIR)/XQillaBuilderImpl.Tpo -c -o XQillaBuilderImpl.lo `test -f 'src/dom-api/impl/XQillaBuilderImpl.cpp' || echo '$(srcdir)/'`src/dom-api/impl/XQillaBuilderImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQillaBuilderImpl.Tpo $(DEPDIR)/XQillaBuilderImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/dom-api/impl/XQillaBuilderImpl.cpp' object='XQillaBuilderImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQillaBuilderImpl.lo `test -f 'src/dom-api/impl/XQillaBuilderImpl.cpp' || echo '$(srcdir)/'`src/dom-api/impl/XQillaBuilderImpl.cpp XQillaDocumentImpl.lo: src/dom-api/impl/XQillaDocumentImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQillaDocumentImpl.lo -MD -MP -MF $(DEPDIR)/XQillaDocumentImpl.Tpo -c -o XQillaDocumentImpl.lo `test -f 'src/dom-api/impl/XQillaDocumentImpl.cpp' || echo '$(srcdir)/'`src/dom-api/impl/XQillaDocumentImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQillaDocumentImpl.Tpo $(DEPDIR)/XQillaDocumentImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/dom-api/impl/XQillaDocumentImpl.cpp' object='XQillaDocumentImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQillaDocumentImpl.lo `test -f 'src/dom-api/impl/XQillaDocumentImpl.cpp' || echo '$(srcdir)/'`src/dom-api/impl/XQillaDocumentImpl.cpp XQillaExpressionImpl.lo: src/dom-api/impl/XQillaExpressionImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQillaExpressionImpl.lo -MD -MP -MF $(DEPDIR)/XQillaExpressionImpl.Tpo -c -o XQillaExpressionImpl.lo `test -f 'src/dom-api/impl/XQillaExpressionImpl.cpp' || echo '$(srcdir)/'`src/dom-api/impl/XQillaExpressionImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQillaExpressionImpl.Tpo $(DEPDIR)/XQillaExpressionImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/dom-api/impl/XQillaExpressionImpl.cpp' object='XQillaExpressionImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQillaExpressionImpl.lo `test -f 'src/dom-api/impl/XQillaExpressionImpl.cpp' || echo '$(srcdir)/'`src/dom-api/impl/XQillaExpressionImpl.cpp XQillaNSResolverImpl.lo: src/dom-api/impl/XQillaNSResolverImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQillaNSResolverImpl.lo -MD -MP -MF $(DEPDIR)/XQillaNSResolverImpl.Tpo -c -o XQillaNSResolverImpl.lo `test -f 'src/dom-api/impl/XQillaNSResolverImpl.cpp' || echo '$(srcdir)/'`src/dom-api/impl/XQillaNSResolverImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQillaNSResolverImpl.Tpo $(DEPDIR)/XQillaNSResolverImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/dom-api/impl/XQillaNSResolverImpl.cpp' object='XQillaNSResolverImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQillaNSResolverImpl.lo `test -f 'src/dom-api/impl/XQillaNSResolverImpl.cpp' || echo '$(srcdir)/'`src/dom-api/impl/XQillaNSResolverImpl.cpp XQillaXMLGrammarPoolImpl.lo: src/dom-api/impl/XQillaXMLGrammarPoolImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQillaXMLGrammarPoolImpl.lo -MD -MP -MF $(DEPDIR)/XQillaXMLGrammarPoolImpl.Tpo -c -o XQillaXMLGrammarPoolImpl.lo `test -f 'src/dom-api/impl/XQillaXMLGrammarPoolImpl.cpp' || echo '$(srcdir)/'`src/dom-api/impl/XQillaXMLGrammarPoolImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQillaXMLGrammarPoolImpl.Tpo $(DEPDIR)/XQillaXMLGrammarPoolImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/dom-api/impl/XQillaXMLGrammarPoolImpl.cpp' object='XQillaXMLGrammarPoolImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQillaXMLGrammarPoolImpl.lo `test -f 'src/dom-api/impl/XQillaXMLGrammarPoolImpl.cpp' || echo '$(srcdir)/'`src/dom-api/impl/XQillaXMLGrammarPoolImpl.cpp XPathDocumentImpl.lo: src/dom-api/impl/XPathDocumentImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XPathDocumentImpl.lo -MD -MP -MF $(DEPDIR)/XPathDocumentImpl.Tpo -c -o XPathDocumentImpl.lo `test -f 'src/dom-api/impl/XPathDocumentImpl.cpp' || echo '$(srcdir)/'`src/dom-api/impl/XPathDocumentImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XPathDocumentImpl.Tpo $(DEPDIR)/XPathDocumentImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/dom-api/impl/XPathDocumentImpl.cpp' object='XPathDocumentImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XPathDocumentImpl.lo `test -f 'src/dom-api/impl/XPathDocumentImpl.cpp' || echo '$(srcdir)/'`src/dom-api/impl/XPathDocumentImpl.cpp XPathNamespaceImpl.lo: src/dom-api/impl/XPathNamespaceImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XPathNamespaceImpl.lo -MD -MP -MF $(DEPDIR)/XPathNamespaceImpl.Tpo -c -o XPathNamespaceImpl.lo `test -f 'src/dom-api/impl/XPathNamespaceImpl.cpp' || echo '$(srcdir)/'`src/dom-api/impl/XPathNamespaceImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XPathNamespaceImpl.Tpo $(DEPDIR)/XPathNamespaceImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/dom-api/impl/XPathNamespaceImpl.cpp' object='XPathNamespaceImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XPathNamespaceImpl.lo `test -f 'src/dom-api/impl/XPathNamespaceImpl.cpp' || echo '$(srcdir)/'`src/dom-api/impl/XPathNamespaceImpl.cpp XPath2ResultImpl.lo: src/dom-api/impl/XPath2ResultImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XPath2ResultImpl.lo -MD -MP -MF $(DEPDIR)/XPath2ResultImpl.Tpo -c -o XPath2ResultImpl.lo `test -f 'src/dom-api/impl/XPath2ResultImpl.cpp' || echo '$(srcdir)/'`src/dom-api/impl/XPath2ResultImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XPath2ResultImpl.Tpo $(DEPDIR)/XPath2ResultImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/dom-api/impl/XPath2ResultImpl.cpp' object='XPath2ResultImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XPath2ResultImpl.lo `test -f 'src/dom-api/impl/XPath2ResultImpl.cpp' || echo '$(srcdir)/'`src/dom-api/impl/XPath2ResultImpl.cpp XQillaImplementation.lo: src/dom-api/XQillaImplementation.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQillaImplementation.lo -MD -MP -MF $(DEPDIR)/XQillaImplementation.Tpo -c -o XQillaImplementation.lo `test -f 'src/dom-api/XQillaImplementation.cpp' || echo '$(srcdir)/'`src/dom-api/XQillaImplementation.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQillaImplementation.Tpo $(DEPDIR)/XQillaImplementation.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/dom-api/XQillaImplementation.cpp' object='XQillaImplementation.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQillaImplementation.lo `test -f 'src/dom-api/XQillaImplementation.cpp' || echo '$(srcdir)/'`src/dom-api/XQillaImplementation.cpp XPath2NodeSerializer.lo: src/dom-api/XPath2NodeSerializer.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XPath2NodeSerializer.lo -MD -MP -MF $(DEPDIR)/XPath2NodeSerializer.Tpo -c -o XPath2NodeSerializer.lo `test -f 'src/dom-api/XPath2NodeSerializer.cpp' || echo '$(srcdir)/'`src/dom-api/XPath2NodeSerializer.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XPath2NodeSerializer.Tpo $(DEPDIR)/XPath2NodeSerializer.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/dom-api/XPath2NodeSerializer.cpp' object='XPath2NodeSerializer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XPath2NodeSerializer.lo `test -f 'src/dom-api/XPath2NodeSerializer.cpp' || echo '$(srcdir)/'`src/dom-api/XPath2NodeSerializer.cpp XQilla.lo: src/simple-api/XQilla.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQilla.lo -MD -MP -MF $(DEPDIR)/XQilla.Tpo -c -o XQilla.lo `test -f 'src/simple-api/XQilla.cpp' || echo '$(srcdir)/'`src/simple-api/XQilla.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQilla.Tpo $(DEPDIR)/XQilla.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/simple-api/XQilla.cpp' object='XQilla.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQilla.lo `test -f 'src/simple-api/XQilla.cpp' || echo '$(srcdir)/'`src/simple-api/XQilla.cpp XQQuery.lo: src/simple-api/XQQuery.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQQuery.lo -MD -MP -MF $(DEPDIR)/XQQuery.Tpo -c -o XQQuery.lo `test -f 'src/simple-api/XQQuery.cpp' || echo '$(srcdir)/'`src/simple-api/XQQuery.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQQuery.Tpo $(DEPDIR)/XQQuery.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/simple-api/XQQuery.cpp' object='XQQuery.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQQuery.lo `test -f 'src/simple-api/XQQuery.cpp' || echo '$(srcdir)/'`src/simple-api/XQQuery.cpp UTF8Str.lo: src/utils/UTF8Str.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT UTF8Str.lo -MD -MP -MF $(DEPDIR)/UTF8Str.Tpo -c -o UTF8Str.lo `test -f 'src/utils/UTF8Str.cpp' || echo '$(srcdir)/'`src/utils/UTF8Str.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/UTF8Str.Tpo $(DEPDIR)/UTF8Str.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/utils/UTF8Str.cpp' object='UTF8Str.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o UTF8Str.lo `test -f 'src/utils/UTF8Str.cpp' || echo '$(srcdir)/'`src/utils/UTF8Str.cpp XMLChCompare.lo: src/utils/XMLChCompare.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XMLChCompare.lo -MD -MP -MF $(DEPDIR)/XMLChCompare.Tpo -c -o XMLChCompare.lo `test -f 'src/utils/XMLChCompare.cpp' || echo '$(srcdir)/'`src/utils/XMLChCompare.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XMLChCompare.Tpo $(DEPDIR)/XMLChCompare.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/utils/XMLChCompare.cpp' object='XMLChCompare.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XMLChCompare.lo `test -f 'src/utils/XMLChCompare.cpp' || echo '$(srcdir)/'`src/utils/XMLChCompare.cpp XStr.lo: src/utils/XStr.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XStr.lo -MD -MP -MF $(DEPDIR)/XStr.Tpo -c -o XStr.lo `test -f 'src/utils/XStr.cpp' || echo '$(srcdir)/'`src/utils/XStr.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XStr.Tpo $(DEPDIR)/XStr.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/utils/XStr.cpp' object='XStr.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XStr.lo `test -f 'src/utils/XStr.cpp' || echo '$(srcdir)/'`src/utils/XStr.cpp ContextUtils.lo: src/utils/ContextUtils.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ContextUtils.lo -MD -MP -MF $(DEPDIR)/ContextUtils.Tpo -c -o ContextUtils.lo `test -f 'src/utils/ContextUtils.cpp' || echo '$(srcdir)/'`src/utils/ContextUtils.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ContextUtils.Tpo $(DEPDIR)/ContextUtils.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/utils/ContextUtils.cpp' object='ContextUtils.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ContextUtils.lo `test -f 'src/utils/ContextUtils.cpp' || echo '$(srcdir)/'`src/utils/ContextUtils.cpp DateUtils.lo: src/utils/DateUtils.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT DateUtils.lo -MD -MP -MF $(DEPDIR)/DateUtils.Tpo -c -o DateUtils.lo `test -f 'src/utils/DateUtils.cpp' || echo '$(srcdir)/'`src/utils/DateUtils.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/DateUtils.Tpo $(DEPDIR)/DateUtils.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/utils/DateUtils.cpp' object='DateUtils.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o DateUtils.lo `test -f 'src/utils/DateUtils.cpp' || echo '$(srcdir)/'`src/utils/DateUtils.cpp NumUtils.lo: src/utils/NumUtils.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT NumUtils.lo -MD -MP -MF $(DEPDIR)/NumUtils.Tpo -c -o NumUtils.lo `test -f 'src/utils/NumUtils.cpp' || echo '$(srcdir)/'`src/utils/NumUtils.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/NumUtils.Tpo $(DEPDIR)/NumUtils.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/utils/NumUtils.cpp' object='NumUtils.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o NumUtils.lo `test -f 'src/utils/NumUtils.cpp' || echo '$(srcdir)/'`src/utils/NumUtils.cpp XQillaPlatformUtils.lo: src/utils/XQillaPlatformUtils.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQillaPlatformUtils.lo -MD -MP -MF $(DEPDIR)/XQillaPlatformUtils.Tpo -c -o XQillaPlatformUtils.lo `test -f 'src/utils/XQillaPlatformUtils.cpp' || echo '$(srcdir)/'`src/utils/XQillaPlatformUtils.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQillaPlatformUtils.Tpo $(DEPDIR)/XQillaPlatformUtils.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/utils/XQillaPlatformUtils.cpp' object='XQillaPlatformUtils.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQillaPlatformUtils.lo `test -f 'src/utils/XQillaPlatformUtils.cpp' || echo '$(srcdir)/'`src/utils/XQillaPlatformUtils.cpp XPath2NSUtils.lo: src/utils/XPath2NSUtils.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XPath2NSUtils.lo -MD -MP -MF $(DEPDIR)/XPath2NSUtils.Tpo -c -o XPath2NSUtils.lo `test -f 'src/utils/XPath2NSUtils.cpp' || echo '$(srcdir)/'`src/utils/XPath2NSUtils.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XPath2NSUtils.Tpo $(DEPDIR)/XPath2NSUtils.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/utils/XPath2NSUtils.cpp' object='XPath2NSUtils.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XPath2NSUtils.lo `test -f 'src/utils/XPath2NSUtils.cpp' || echo '$(srcdir)/'`src/utils/XPath2NSUtils.cpp XPath2Utils.lo: src/utils/XPath2Utils.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XPath2Utils.lo -MD -MP -MF $(DEPDIR)/XPath2Utils.Tpo -c -o XPath2Utils.lo `test -f 'src/utils/XPath2Utils.cpp' || echo '$(srcdir)/'`src/utils/XPath2Utils.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XPath2Utils.Tpo $(DEPDIR)/XPath2Utils.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/utils/XPath2Utils.cpp' object='XPath2Utils.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XPath2Utils.lo `test -f 'src/utils/XPath2Utils.cpp' || echo '$(srcdir)/'`src/utils/XPath2Utils.cpp UnicodeTransformer.lo: src/utils/UnicodeTransformer.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT UnicodeTransformer.lo -MD -MP -MF $(DEPDIR)/UnicodeTransformer.Tpo -c -o UnicodeTransformer.lo `test -f 'src/utils/UnicodeTransformer.cpp' || echo '$(srcdir)/'`src/utils/UnicodeTransformer.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/UnicodeTransformer.Tpo $(DEPDIR)/UnicodeTransformer.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/utils/UnicodeTransformer.cpp' object='UnicodeTransformer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o UnicodeTransformer.lo `test -f 'src/utils/UnicodeTransformer.cpp' || echo '$(srcdir)/'`src/utils/UnicodeTransformer.cpp DelayedModule.lo: src/utils/DelayedModule.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT DelayedModule.lo -MD -MP -MF $(DEPDIR)/DelayedModule.Tpo -c -o DelayedModule.lo `test -f 'src/utils/DelayedModule.cpp' || echo '$(srcdir)/'`src/utils/DelayedModule.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/DelayedModule.Tpo $(DEPDIR)/DelayedModule.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/utils/DelayedModule.cpp' object='DelayedModule.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o DelayedModule.lo `test -f 'src/utils/DelayedModule.cpp' || echo '$(srcdir)/'`src/utils/DelayedModule.cpp XQillaException.lo: src/exceptions/XQillaException.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQillaException.lo -MD -MP -MF $(DEPDIR)/XQillaException.Tpo -c -o XQillaException.lo `test -f 'src/exceptions/XQillaException.cpp' || echo '$(srcdir)/'`src/exceptions/XQillaException.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQillaException.Tpo $(DEPDIR)/XQillaException.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/exceptions/XQillaException.cpp' object='XQillaException.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQillaException.lo `test -f 'src/exceptions/XQillaException.cpp' || echo '$(srcdir)/'`src/exceptions/XQillaException.cpp XQException.lo: src/exceptions/XQException.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQException.lo -MD -MP -MF $(DEPDIR)/XQException.Tpo -c -o XQException.lo `test -f 'src/exceptions/XQException.cpp' || echo '$(srcdir)/'`src/exceptions/XQException.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQException.Tpo $(DEPDIR)/XQException.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/exceptions/XQException.cpp' object='XQException.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQException.lo `test -f 'src/exceptions/XQException.cpp' || echo '$(srcdir)/'`src/exceptions/XQException.cpp EXSLTMathFunction.lo: src/functions/EXSLTMathFunction.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT EXSLTMathFunction.lo -MD -MP -MF $(DEPDIR)/EXSLTMathFunction.Tpo -c -o EXSLTMathFunction.lo `test -f 'src/functions/EXSLTMathFunction.cpp' || echo '$(srcdir)/'`src/functions/EXSLTMathFunction.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/EXSLTMathFunction.Tpo $(DEPDIR)/EXSLTMathFunction.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/EXSLTMathFunction.cpp' object='EXSLTMathFunction.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o EXSLTMathFunction.lo `test -f 'src/functions/EXSLTMathFunction.cpp' || echo '$(srcdir)/'`src/functions/EXSLTMathFunction.cpp ExternalFunction.lo: src/functions/ExternalFunction.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ExternalFunction.lo -MD -MP -MF $(DEPDIR)/ExternalFunction.Tpo -c -o ExternalFunction.lo `test -f 'src/functions/ExternalFunction.cpp' || echo '$(srcdir)/'`src/functions/ExternalFunction.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ExternalFunction.Tpo $(DEPDIR)/ExternalFunction.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/ExternalFunction.cpp' object='ExternalFunction.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ExternalFunction.lo `test -f 'src/functions/ExternalFunction.cpp' || echo '$(srcdir)/'`src/functions/ExternalFunction.cpp XQillaFunction.lo: src/functions/XQillaFunction.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQillaFunction.lo -MD -MP -MF $(DEPDIR)/XQillaFunction.Tpo -c -o XQillaFunction.lo `test -f 'src/functions/XQillaFunction.cpp' || echo '$(srcdir)/'`src/functions/XQillaFunction.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQillaFunction.Tpo $(DEPDIR)/XQillaFunction.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/XQillaFunction.cpp' object='XQillaFunction.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQillaFunction.lo `test -f 'src/functions/XQillaFunction.cpp' || echo '$(srcdir)/'`src/functions/XQillaFunction.cpp FunctionParseXML.lo: src/functions/FunctionParseXML.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionParseXML.lo -MD -MP -MF $(DEPDIR)/FunctionParseXML.Tpo -c -o FunctionParseXML.lo `test -f 'src/functions/FunctionParseXML.cpp' || echo '$(srcdir)/'`src/functions/FunctionParseXML.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionParseXML.Tpo $(DEPDIR)/FunctionParseXML.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionParseXML.cpp' object='FunctionParseXML.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionParseXML.lo `test -f 'src/functions/FunctionParseXML.cpp' || echo '$(srcdir)/'`src/functions/FunctionParseXML.cpp FuncFactory.lo: src/functions/FuncFactory.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FuncFactory.lo -MD -MP -MF $(DEPDIR)/FuncFactory.Tpo -c -o FuncFactory.lo `test -f 'src/functions/FuncFactory.cpp' || echo '$(srcdir)/'`src/functions/FuncFactory.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FuncFactory.Tpo $(DEPDIR)/FuncFactory.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FuncFactory.cpp' object='FuncFactory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FuncFactory.lo `test -f 'src/functions/FuncFactory.cpp' || echo '$(srcdir)/'`src/functions/FuncFactory.cpp FunctionLookup.lo: src/functions/FunctionLookup.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionLookup.lo -MD -MP -MF $(DEPDIR)/FunctionLookup.Tpo -c -o FunctionLookup.lo `test -f 'src/functions/FunctionLookup.cpp' || echo '$(srcdir)/'`src/functions/FunctionLookup.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionLookup.Tpo $(DEPDIR)/FunctionLookup.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionLookup.cpp' object='FunctionLookup.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionLookup.lo `test -f 'src/functions/FunctionLookup.cpp' || echo '$(srcdir)/'`src/functions/FunctionLookup.cpp FunctionAbs.lo: src/functions/FunctionAbs.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionAbs.lo -MD -MP -MF $(DEPDIR)/FunctionAbs.Tpo -c -o FunctionAbs.lo `test -f 'src/functions/FunctionAbs.cpp' || echo '$(srcdir)/'`src/functions/FunctionAbs.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionAbs.Tpo $(DEPDIR)/FunctionAbs.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionAbs.cpp' object='FunctionAbs.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionAbs.lo `test -f 'src/functions/FunctionAbs.cpp' || echo '$(srcdir)/'`src/functions/FunctionAbs.cpp FunctionAcos.lo: src/functions/FunctionAcos.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionAcos.lo -MD -MP -MF $(DEPDIR)/FunctionAcos.Tpo -c -o FunctionAcos.lo `test -f 'src/functions/FunctionAcos.cpp' || echo '$(srcdir)/'`src/functions/FunctionAcos.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionAcos.Tpo $(DEPDIR)/FunctionAcos.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionAcos.cpp' object='FunctionAcos.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionAcos.lo `test -f 'src/functions/FunctionAcos.cpp' || echo '$(srcdir)/'`src/functions/FunctionAcos.cpp FunctionAsin.lo: src/functions/FunctionAsin.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionAsin.lo -MD -MP -MF $(DEPDIR)/FunctionAsin.Tpo -c -o FunctionAsin.lo `test -f 'src/functions/FunctionAsin.cpp' || echo '$(srcdir)/'`src/functions/FunctionAsin.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionAsin.Tpo $(DEPDIR)/FunctionAsin.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionAsin.cpp' object='FunctionAsin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionAsin.lo `test -f 'src/functions/FunctionAsin.cpp' || echo '$(srcdir)/'`src/functions/FunctionAsin.cpp FunctionAtan.lo: src/functions/FunctionAtan.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionAtan.lo -MD -MP -MF $(DEPDIR)/FunctionAtan.Tpo -c -o FunctionAtan.lo `test -f 'src/functions/FunctionAtan.cpp' || echo '$(srcdir)/'`src/functions/FunctionAtan.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionAtan.Tpo $(DEPDIR)/FunctionAtan.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionAtan.cpp' object='FunctionAtan.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionAtan.lo `test -f 'src/functions/FunctionAtan.cpp' || echo '$(srcdir)/'`src/functions/FunctionAtan.cpp FunctionBaseURI.lo: src/functions/FunctionBaseURI.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionBaseURI.lo -MD -MP -MF $(DEPDIR)/FunctionBaseURI.Tpo -c -o FunctionBaseURI.lo `test -f 'src/functions/FunctionBaseURI.cpp' || echo '$(srcdir)/'`src/functions/FunctionBaseURI.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionBaseURI.Tpo $(DEPDIR)/FunctionBaseURI.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionBaseURI.cpp' object='FunctionBaseURI.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionBaseURI.lo `test -f 'src/functions/FunctionBaseURI.cpp' || echo '$(srcdir)/'`src/functions/FunctionBaseURI.cpp FunctionCaseFold.lo: src/functions/FunctionCaseFold.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionCaseFold.lo -MD -MP -MF $(DEPDIR)/FunctionCaseFold.Tpo -c -o FunctionCaseFold.lo `test -f 'src/functions/FunctionCaseFold.cpp' || echo '$(srcdir)/'`src/functions/FunctionCaseFold.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionCaseFold.Tpo $(DEPDIR)/FunctionCaseFold.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionCaseFold.cpp' object='FunctionCaseFold.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionCaseFold.lo `test -f 'src/functions/FunctionCaseFold.cpp' || echo '$(srcdir)/'`src/functions/FunctionCaseFold.cpp FunctionCeiling.lo: src/functions/FunctionCeiling.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionCeiling.lo -MD -MP -MF $(DEPDIR)/FunctionCeiling.Tpo -c -o FunctionCeiling.lo `test -f 'src/functions/FunctionCeiling.cpp' || echo '$(srcdir)/'`src/functions/FunctionCeiling.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionCeiling.Tpo $(DEPDIR)/FunctionCeiling.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionCeiling.cpp' object='FunctionCeiling.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionCeiling.lo `test -f 'src/functions/FunctionCeiling.cpp' || echo '$(srcdir)/'`src/functions/FunctionCeiling.cpp FunctionCodepointsToString.lo: src/functions/FunctionCodepointsToString.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionCodepointsToString.lo -MD -MP -MF $(DEPDIR)/FunctionCodepointsToString.Tpo -c -o FunctionCodepointsToString.lo `test -f 'src/functions/FunctionCodepointsToString.cpp' || echo '$(srcdir)/'`src/functions/FunctionCodepointsToString.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionCodepointsToString.Tpo $(DEPDIR)/FunctionCodepointsToString.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionCodepointsToString.cpp' object='FunctionCodepointsToString.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionCodepointsToString.lo `test -f 'src/functions/FunctionCodepointsToString.cpp' || echo '$(srcdir)/'`src/functions/FunctionCodepointsToString.cpp FunctionCollection.lo: src/functions/FunctionCollection.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionCollection.lo -MD -MP -MF $(DEPDIR)/FunctionCollection.Tpo -c -o FunctionCollection.lo `test -f 'src/functions/FunctionCollection.cpp' || echo '$(srcdir)/'`src/functions/FunctionCollection.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionCollection.Tpo $(DEPDIR)/FunctionCollection.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionCollection.cpp' object='FunctionCollection.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionCollection.lo `test -f 'src/functions/FunctionCollection.cpp' || echo '$(srcdir)/'`src/functions/FunctionCollection.cpp FunctionCompare.lo: src/functions/FunctionCompare.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionCompare.lo -MD -MP -MF $(DEPDIR)/FunctionCompare.Tpo -c -o FunctionCompare.lo `test -f 'src/functions/FunctionCompare.cpp' || echo '$(srcdir)/'`src/functions/FunctionCompare.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionCompare.Tpo $(DEPDIR)/FunctionCompare.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionCompare.cpp' object='FunctionCompare.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionCompare.lo `test -f 'src/functions/FunctionCompare.cpp' || echo '$(srcdir)/'`src/functions/FunctionCompare.cpp FunctionConcat.lo: src/functions/FunctionConcat.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionConcat.lo -MD -MP -MF $(DEPDIR)/FunctionConcat.Tpo -c -o FunctionConcat.lo `test -f 'src/functions/FunctionConcat.cpp' || echo '$(srcdir)/'`src/functions/FunctionConcat.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionConcat.Tpo $(DEPDIR)/FunctionConcat.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionConcat.cpp' object='FunctionConcat.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionConcat.lo `test -f 'src/functions/FunctionConcat.cpp' || echo '$(srcdir)/'`src/functions/FunctionConcat.cpp FunctionContains.lo: src/functions/FunctionContains.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionContains.lo -MD -MP -MF $(DEPDIR)/FunctionContains.Tpo -c -o FunctionContains.lo `test -f 'src/functions/FunctionContains.cpp' || echo '$(srcdir)/'`src/functions/FunctionContains.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionContains.Tpo $(DEPDIR)/FunctionContains.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionContains.cpp' object='FunctionContains.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionContains.lo `test -f 'src/functions/FunctionContains.cpp' || echo '$(srcdir)/'`src/functions/FunctionContains.cpp FunctionCount.lo: src/functions/FunctionCount.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionCount.lo -MD -MP -MF $(DEPDIR)/FunctionCount.Tpo -c -o FunctionCount.lo `test -f 'src/functions/FunctionCount.cpp' || echo '$(srcdir)/'`src/functions/FunctionCount.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionCount.Tpo $(DEPDIR)/FunctionCount.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionCount.cpp' object='FunctionCount.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionCount.lo `test -f 'src/functions/FunctionCount.cpp' || echo '$(srcdir)/'`src/functions/FunctionCount.cpp FunctionCos.lo: src/functions/FunctionCos.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionCos.lo -MD -MP -MF $(DEPDIR)/FunctionCos.Tpo -c -o FunctionCos.lo `test -f 'src/functions/FunctionCos.cpp' || echo '$(srcdir)/'`src/functions/FunctionCos.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionCos.Tpo $(DEPDIR)/FunctionCos.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionCos.cpp' object='FunctionCos.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionCos.lo `test -f 'src/functions/FunctionCos.cpp' || echo '$(srcdir)/'`src/functions/FunctionCos.cpp FunctionCurrentDate.lo: src/functions/FunctionCurrentDate.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionCurrentDate.lo -MD -MP -MF $(DEPDIR)/FunctionCurrentDate.Tpo -c -o FunctionCurrentDate.lo `test -f 'src/functions/FunctionCurrentDate.cpp' || echo '$(srcdir)/'`src/functions/FunctionCurrentDate.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionCurrentDate.Tpo $(DEPDIR)/FunctionCurrentDate.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionCurrentDate.cpp' object='FunctionCurrentDate.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionCurrentDate.lo `test -f 'src/functions/FunctionCurrentDate.cpp' || echo '$(srcdir)/'`src/functions/FunctionCurrentDate.cpp FunctionCurrentDateTime.lo: src/functions/FunctionCurrentDateTime.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionCurrentDateTime.lo -MD -MP -MF $(DEPDIR)/FunctionCurrentDateTime.Tpo -c -o FunctionCurrentDateTime.lo `test -f 'src/functions/FunctionCurrentDateTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionCurrentDateTime.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionCurrentDateTime.Tpo $(DEPDIR)/FunctionCurrentDateTime.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionCurrentDateTime.cpp' object='FunctionCurrentDateTime.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionCurrentDateTime.lo `test -f 'src/functions/FunctionCurrentDateTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionCurrentDateTime.cpp FunctionCurrentTime.lo: src/functions/FunctionCurrentTime.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionCurrentTime.lo -MD -MP -MF $(DEPDIR)/FunctionCurrentTime.Tpo -c -o FunctionCurrentTime.lo `test -f 'src/functions/FunctionCurrentTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionCurrentTime.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionCurrentTime.Tpo $(DEPDIR)/FunctionCurrentTime.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionCurrentTime.cpp' object='FunctionCurrentTime.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionCurrentTime.lo `test -f 'src/functions/FunctionCurrentTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionCurrentTime.cpp FunctionDateTime.lo: src/functions/FunctionDateTime.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionDateTime.lo -MD -MP -MF $(DEPDIR)/FunctionDateTime.Tpo -c -o FunctionDateTime.lo `test -f 'src/functions/FunctionDateTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionDateTime.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionDateTime.Tpo $(DEPDIR)/FunctionDateTime.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionDateTime.cpp' object='FunctionDateTime.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionDateTime.lo `test -f 'src/functions/FunctionDateTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionDateTime.cpp FunctionDefaultCollation.lo: src/functions/FunctionDefaultCollation.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionDefaultCollation.lo -MD -MP -MF $(DEPDIR)/FunctionDefaultCollation.Tpo -c -o FunctionDefaultCollation.lo `test -f 'src/functions/FunctionDefaultCollation.cpp' || echo '$(srcdir)/'`src/functions/FunctionDefaultCollation.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionDefaultCollation.Tpo $(DEPDIR)/FunctionDefaultCollation.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionDefaultCollation.cpp' object='FunctionDefaultCollation.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionDefaultCollation.lo `test -f 'src/functions/FunctionDefaultCollation.cpp' || echo '$(srcdir)/'`src/functions/FunctionDefaultCollation.cpp FunctionDistinctValues.lo: src/functions/FunctionDistinctValues.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionDistinctValues.lo -MD -MP -MF $(DEPDIR)/FunctionDistinctValues.Tpo -c -o FunctionDistinctValues.lo `test -f 'src/functions/FunctionDistinctValues.cpp' || echo '$(srcdir)/'`src/functions/FunctionDistinctValues.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionDistinctValues.Tpo $(DEPDIR)/FunctionDistinctValues.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionDistinctValues.cpp' object='FunctionDistinctValues.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionDistinctValues.lo `test -f 'src/functions/FunctionDistinctValues.cpp' || echo '$(srcdir)/'`src/functions/FunctionDistinctValues.cpp FunctionDocAvailable.lo: src/functions/FunctionDocAvailable.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionDocAvailable.lo -MD -MP -MF $(DEPDIR)/FunctionDocAvailable.Tpo -c -o FunctionDocAvailable.lo `test -f 'src/functions/FunctionDocAvailable.cpp' || echo '$(srcdir)/'`src/functions/FunctionDocAvailable.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionDocAvailable.Tpo $(DEPDIR)/FunctionDocAvailable.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionDocAvailable.cpp' object='FunctionDocAvailable.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionDocAvailable.lo `test -f 'src/functions/FunctionDocAvailable.cpp' || echo '$(srcdir)/'`src/functions/FunctionDocAvailable.cpp FunctionDoc.lo: src/functions/FunctionDoc.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionDoc.lo -MD -MP -MF $(DEPDIR)/FunctionDoc.Tpo -c -o FunctionDoc.lo `test -f 'src/functions/FunctionDoc.cpp' || echo '$(srcdir)/'`src/functions/FunctionDoc.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionDoc.Tpo $(DEPDIR)/FunctionDoc.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionDoc.cpp' object='FunctionDoc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionDoc.lo `test -f 'src/functions/FunctionDoc.cpp' || echo '$(srcdir)/'`src/functions/FunctionDoc.cpp FunctionDocument.lo: src/functions/FunctionDocument.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionDocument.lo -MD -MP -MF $(DEPDIR)/FunctionDocument.Tpo -c -o FunctionDocument.lo `test -f 'src/functions/FunctionDocument.cpp' || echo '$(srcdir)/'`src/functions/FunctionDocument.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionDocument.Tpo $(DEPDIR)/FunctionDocument.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionDocument.cpp' object='FunctionDocument.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionDocument.lo `test -f 'src/functions/FunctionDocument.cpp' || echo '$(srcdir)/'`src/functions/FunctionDocument.cpp FunctionDocumentURI.lo: src/functions/FunctionDocumentURI.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionDocumentURI.lo -MD -MP -MF $(DEPDIR)/FunctionDocumentURI.Tpo -c -o FunctionDocumentURI.lo `test -f 'src/functions/FunctionDocumentURI.cpp' || echo '$(srcdir)/'`src/functions/FunctionDocumentURI.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionDocumentURI.Tpo $(DEPDIR)/FunctionDocumentURI.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionDocumentURI.cpp' object='FunctionDocumentURI.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionDocumentURI.lo `test -f 'src/functions/FunctionDocumentURI.cpp' || echo '$(srcdir)/'`src/functions/FunctionDocumentURI.cpp FunctionEmpty.lo: src/functions/FunctionEmpty.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionEmpty.lo -MD -MP -MF $(DEPDIR)/FunctionEmpty.Tpo -c -o FunctionEmpty.lo `test -f 'src/functions/FunctionEmpty.cpp' || echo '$(srcdir)/'`src/functions/FunctionEmpty.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionEmpty.Tpo $(DEPDIR)/FunctionEmpty.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionEmpty.cpp' object='FunctionEmpty.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionEmpty.lo `test -f 'src/functions/FunctionEmpty.cpp' || echo '$(srcdir)/'`src/functions/FunctionEmpty.cpp FunctionEndsWith.lo: src/functions/FunctionEndsWith.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionEndsWith.lo -MD -MP -MF $(DEPDIR)/FunctionEndsWith.Tpo -c -o FunctionEndsWith.lo `test -f 'src/functions/FunctionEndsWith.cpp' || echo '$(srcdir)/'`src/functions/FunctionEndsWith.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionEndsWith.Tpo $(DEPDIR)/FunctionEndsWith.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionEndsWith.cpp' object='FunctionEndsWith.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionEndsWith.lo `test -f 'src/functions/FunctionEndsWith.cpp' || echo '$(srcdir)/'`src/functions/FunctionEndsWith.cpp FunctionError.lo: src/functions/FunctionError.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionError.lo -MD -MP -MF $(DEPDIR)/FunctionError.Tpo -c -o FunctionError.lo `test -f 'src/functions/FunctionError.cpp' || echo '$(srcdir)/'`src/functions/FunctionError.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionError.Tpo $(DEPDIR)/FunctionError.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionError.cpp' object='FunctionError.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionError.lo `test -f 'src/functions/FunctionError.cpp' || echo '$(srcdir)/'`src/functions/FunctionError.cpp FunctionExp.lo: src/functions/FunctionExp.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionExp.lo -MD -MP -MF $(DEPDIR)/FunctionExp.Tpo -c -o FunctionExp.lo `test -f 'src/functions/FunctionExp.cpp' || echo '$(srcdir)/'`src/functions/FunctionExp.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionExp.Tpo $(DEPDIR)/FunctionExp.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionExp.cpp' object='FunctionExp.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionExp.lo `test -f 'src/functions/FunctionExp.cpp' || echo '$(srcdir)/'`src/functions/FunctionExp.cpp FunctionFloor.lo: src/functions/FunctionFloor.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionFloor.lo -MD -MP -MF $(DEPDIR)/FunctionFloor.Tpo -c -o FunctionFloor.lo `test -f 'src/functions/FunctionFloor.cpp' || echo '$(srcdir)/'`src/functions/FunctionFloor.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionFloor.Tpo $(DEPDIR)/FunctionFloor.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionFloor.cpp' object='FunctionFloor.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionFloor.lo `test -f 'src/functions/FunctionFloor.cpp' || echo '$(srcdir)/'`src/functions/FunctionFloor.cpp FunctionFunctionArity.lo: src/functions/FunctionFunctionArity.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionFunctionArity.lo -MD -MP -MF $(DEPDIR)/FunctionFunctionArity.Tpo -c -o FunctionFunctionArity.lo `test -f 'src/functions/FunctionFunctionArity.cpp' || echo '$(srcdir)/'`src/functions/FunctionFunctionArity.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionFunctionArity.Tpo $(DEPDIR)/FunctionFunctionArity.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionFunctionArity.cpp' object='FunctionFunctionArity.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionFunctionArity.lo `test -f 'src/functions/FunctionFunctionArity.cpp' || echo '$(srcdir)/'`src/functions/FunctionFunctionArity.cpp FunctionFunctionName.lo: src/functions/FunctionFunctionName.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionFunctionName.lo -MD -MP -MF $(DEPDIR)/FunctionFunctionName.Tpo -c -o FunctionFunctionName.lo `test -f 'src/functions/FunctionFunctionName.cpp' || echo '$(srcdir)/'`src/functions/FunctionFunctionName.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionFunctionName.Tpo $(DEPDIR)/FunctionFunctionName.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionFunctionName.cpp' object='FunctionFunctionName.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionFunctionName.lo `test -f 'src/functions/FunctionFunctionName.cpp' || echo '$(srcdir)/'`src/functions/FunctionFunctionName.cpp FunctionId.lo: src/functions/FunctionId.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionId.lo -MD -MP -MF $(DEPDIR)/FunctionId.Tpo -c -o FunctionId.lo `test -f 'src/functions/FunctionId.cpp' || echo '$(srcdir)/'`src/functions/FunctionId.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionId.Tpo $(DEPDIR)/FunctionId.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionId.cpp' object='FunctionId.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionId.lo `test -f 'src/functions/FunctionId.cpp' || echo '$(srcdir)/'`src/functions/FunctionId.cpp FunctionIdref.lo: src/functions/FunctionIdref.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionIdref.lo -MD -MP -MF $(DEPDIR)/FunctionIdref.Tpo -c -o FunctionIdref.lo `test -f 'src/functions/FunctionIdref.cpp' || echo '$(srcdir)/'`src/functions/FunctionIdref.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionIdref.Tpo $(DEPDIR)/FunctionIdref.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionIdref.cpp' object='FunctionIdref.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionIdref.lo `test -f 'src/functions/FunctionIdref.cpp' || echo '$(srcdir)/'`src/functions/FunctionIdref.cpp FunctionImplicitTimezone.lo: src/functions/FunctionImplicitTimezone.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionImplicitTimezone.lo -MD -MP -MF $(DEPDIR)/FunctionImplicitTimezone.Tpo -c -o FunctionImplicitTimezone.lo `test -f 'src/functions/FunctionImplicitTimezone.cpp' || echo '$(srcdir)/'`src/functions/FunctionImplicitTimezone.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionImplicitTimezone.Tpo $(DEPDIR)/FunctionImplicitTimezone.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionImplicitTimezone.cpp' object='FunctionImplicitTimezone.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionImplicitTimezone.lo `test -f 'src/functions/FunctionImplicitTimezone.cpp' || echo '$(srcdir)/'`src/functions/FunctionImplicitTimezone.cpp FunctionLang.lo: src/functions/FunctionLang.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionLang.lo -MD -MP -MF $(DEPDIR)/FunctionLang.Tpo -c -o FunctionLang.lo `test -f 'src/functions/FunctionLang.cpp' || echo '$(srcdir)/'`src/functions/FunctionLang.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionLang.Tpo $(DEPDIR)/FunctionLang.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionLang.cpp' object='FunctionLang.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionLang.lo `test -f 'src/functions/FunctionLang.cpp' || echo '$(srcdir)/'`src/functions/FunctionLang.cpp FunctionLast.lo: src/functions/FunctionLast.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionLast.lo -MD -MP -MF $(DEPDIR)/FunctionLast.Tpo -c -o FunctionLast.lo `test -f 'src/functions/FunctionLast.cpp' || echo '$(srcdir)/'`src/functions/FunctionLast.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionLast.Tpo $(DEPDIR)/FunctionLast.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionLast.cpp' object='FunctionLast.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionLast.lo `test -f 'src/functions/FunctionLast.cpp' || echo '$(srcdir)/'`src/functions/FunctionLast.cpp FunctionLocalname.lo: src/functions/FunctionLocalname.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionLocalname.lo -MD -MP -MF $(DEPDIR)/FunctionLocalname.Tpo -c -o FunctionLocalname.lo `test -f 'src/functions/FunctionLocalname.cpp' || echo '$(srcdir)/'`src/functions/FunctionLocalname.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionLocalname.Tpo $(DEPDIR)/FunctionLocalname.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionLocalname.cpp' object='FunctionLocalname.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionLocalname.lo `test -f 'src/functions/FunctionLocalname.cpp' || echo '$(srcdir)/'`src/functions/FunctionLocalname.cpp FunctionLocalNameFromQName.lo: src/functions/FunctionLocalNameFromQName.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionLocalNameFromQName.lo -MD -MP -MF $(DEPDIR)/FunctionLocalNameFromQName.Tpo -c -o FunctionLocalNameFromQName.lo `test -f 'src/functions/FunctionLocalNameFromQName.cpp' || echo '$(srcdir)/'`src/functions/FunctionLocalNameFromQName.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionLocalNameFromQName.Tpo $(DEPDIR)/FunctionLocalNameFromQName.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionLocalNameFromQName.cpp' object='FunctionLocalNameFromQName.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionLocalNameFromQName.lo `test -f 'src/functions/FunctionLocalNameFromQName.cpp' || echo '$(srcdir)/'`src/functions/FunctionLocalNameFromQName.cpp FunctionLog.lo: src/functions/FunctionLog.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionLog.lo -MD -MP -MF $(DEPDIR)/FunctionLog.Tpo -c -o FunctionLog.lo `test -f 'src/functions/FunctionLog.cpp' || echo '$(srcdir)/'`src/functions/FunctionLog.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionLog.Tpo $(DEPDIR)/FunctionLog.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionLog.cpp' object='FunctionLog.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionLog.lo `test -f 'src/functions/FunctionLog.cpp' || echo '$(srcdir)/'`src/functions/FunctionLog.cpp FunctionLowerCase.lo: src/functions/FunctionLowerCase.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionLowerCase.lo -MD -MP -MF $(DEPDIR)/FunctionLowerCase.Tpo -c -o FunctionLowerCase.lo `test -f 'src/functions/FunctionLowerCase.cpp' || echo '$(srcdir)/'`src/functions/FunctionLowerCase.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionLowerCase.Tpo $(DEPDIR)/FunctionLowerCase.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionLowerCase.cpp' object='FunctionLowerCase.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionLowerCase.lo `test -f 'src/functions/FunctionLowerCase.cpp' || echo '$(srcdir)/'`src/functions/FunctionLowerCase.cpp FunctionMatches.lo: src/functions/FunctionMatches.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionMatches.lo -MD -MP -MF $(DEPDIR)/FunctionMatches.Tpo -c -o FunctionMatches.lo `test -f 'src/functions/FunctionMatches.cpp' || echo '$(srcdir)/'`src/functions/FunctionMatches.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionMatches.Tpo $(DEPDIR)/FunctionMatches.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionMatches.cpp' object='FunctionMatches.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionMatches.lo `test -f 'src/functions/FunctionMatches.cpp' || echo '$(srcdir)/'`src/functions/FunctionMatches.cpp FunctionName.lo: src/functions/FunctionName.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionName.lo -MD -MP -MF $(DEPDIR)/FunctionName.Tpo -c -o FunctionName.lo `test -f 'src/functions/FunctionName.cpp' || echo '$(srcdir)/'`src/functions/FunctionName.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionName.Tpo $(DEPDIR)/FunctionName.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionName.cpp' object='FunctionName.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionName.lo `test -f 'src/functions/FunctionName.cpp' || echo '$(srcdir)/'`src/functions/FunctionName.cpp FunctionNamespaceUri.lo: src/functions/FunctionNamespaceUri.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionNamespaceUri.lo -MD -MP -MF $(DEPDIR)/FunctionNamespaceUri.Tpo -c -o FunctionNamespaceUri.lo `test -f 'src/functions/FunctionNamespaceUri.cpp' || echo '$(srcdir)/'`src/functions/FunctionNamespaceUri.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionNamespaceUri.Tpo $(DEPDIR)/FunctionNamespaceUri.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionNamespaceUri.cpp' object='FunctionNamespaceUri.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionNamespaceUri.lo `test -f 'src/functions/FunctionNamespaceUri.cpp' || echo '$(srcdir)/'`src/functions/FunctionNamespaceUri.cpp FunctionNamespaceURIFromQName.lo: src/functions/FunctionNamespaceURIFromQName.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionNamespaceURIFromQName.lo -MD -MP -MF $(DEPDIR)/FunctionNamespaceURIFromQName.Tpo -c -o FunctionNamespaceURIFromQName.lo `test -f 'src/functions/FunctionNamespaceURIFromQName.cpp' || echo '$(srcdir)/'`src/functions/FunctionNamespaceURIFromQName.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionNamespaceURIFromQName.Tpo $(DEPDIR)/FunctionNamespaceURIFromQName.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionNamespaceURIFromQName.cpp' object='FunctionNamespaceURIFromQName.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionNamespaceURIFromQName.lo `test -f 'src/functions/FunctionNamespaceURIFromQName.cpp' || echo '$(srcdir)/'`src/functions/FunctionNamespaceURIFromQName.cpp FunctionNilled.lo: src/functions/FunctionNilled.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionNilled.lo -MD -MP -MF $(DEPDIR)/FunctionNilled.Tpo -c -o FunctionNilled.lo `test -f 'src/functions/FunctionNilled.cpp' || echo '$(srcdir)/'`src/functions/FunctionNilled.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionNilled.Tpo $(DEPDIR)/FunctionNilled.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionNilled.cpp' object='FunctionNilled.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionNilled.lo `test -f 'src/functions/FunctionNilled.cpp' || echo '$(srcdir)/'`src/functions/FunctionNilled.cpp FunctionNodeName.lo: src/functions/FunctionNodeName.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionNodeName.lo -MD -MP -MF $(DEPDIR)/FunctionNodeName.Tpo -c -o FunctionNodeName.lo `test -f 'src/functions/FunctionNodeName.cpp' || echo '$(srcdir)/'`src/functions/FunctionNodeName.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionNodeName.Tpo $(DEPDIR)/FunctionNodeName.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionNodeName.cpp' object='FunctionNodeName.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionNodeName.lo `test -f 'src/functions/FunctionNodeName.cpp' || echo '$(srcdir)/'`src/functions/FunctionNodeName.cpp FunctionNormalizeSpace.lo: src/functions/FunctionNormalizeSpace.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionNormalizeSpace.lo -MD -MP -MF $(DEPDIR)/FunctionNormalizeSpace.Tpo -c -o FunctionNormalizeSpace.lo `test -f 'src/functions/FunctionNormalizeSpace.cpp' || echo '$(srcdir)/'`src/functions/FunctionNormalizeSpace.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionNormalizeSpace.Tpo $(DEPDIR)/FunctionNormalizeSpace.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionNormalizeSpace.cpp' object='FunctionNormalizeSpace.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionNormalizeSpace.lo `test -f 'src/functions/FunctionNormalizeSpace.cpp' || echo '$(srcdir)/'`src/functions/FunctionNormalizeSpace.cpp FunctionNormalizeUnicode.lo: src/functions/FunctionNormalizeUnicode.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionNormalizeUnicode.lo -MD -MP -MF $(DEPDIR)/FunctionNormalizeUnicode.Tpo -c -o FunctionNormalizeUnicode.lo `test -f 'src/functions/FunctionNormalizeUnicode.cpp' || echo '$(srcdir)/'`src/functions/FunctionNormalizeUnicode.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionNormalizeUnicode.Tpo $(DEPDIR)/FunctionNormalizeUnicode.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionNormalizeUnicode.cpp' object='FunctionNormalizeUnicode.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionNormalizeUnicode.lo `test -f 'src/functions/FunctionNormalizeUnicode.cpp' || echo '$(srcdir)/'`src/functions/FunctionNormalizeUnicode.cpp FunctionNot.lo: src/functions/FunctionNot.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionNot.lo -MD -MP -MF $(DEPDIR)/FunctionNot.Tpo -c -o FunctionNot.lo `test -f 'src/functions/FunctionNot.cpp' || echo '$(srcdir)/'`src/functions/FunctionNot.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionNot.Tpo $(DEPDIR)/FunctionNot.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionNot.cpp' object='FunctionNot.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionNot.lo `test -f 'src/functions/FunctionNot.cpp' || echo '$(srcdir)/'`src/functions/FunctionNot.cpp FunctionNumber.lo: src/functions/FunctionNumber.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionNumber.lo -MD -MP -MF $(DEPDIR)/FunctionNumber.Tpo -c -o FunctionNumber.lo `test -f 'src/functions/FunctionNumber.cpp' || echo '$(srcdir)/'`src/functions/FunctionNumber.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionNumber.Tpo $(DEPDIR)/FunctionNumber.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionNumber.cpp' object='FunctionNumber.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionNumber.lo `test -f 'src/functions/FunctionNumber.cpp' || echo '$(srcdir)/'`src/functions/FunctionNumber.cpp FunctionPosition.lo: src/functions/FunctionPosition.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionPosition.lo -MD -MP -MF $(DEPDIR)/FunctionPosition.Tpo -c -o FunctionPosition.lo `test -f 'src/functions/FunctionPosition.cpp' || echo '$(srcdir)/'`src/functions/FunctionPosition.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionPosition.Tpo $(DEPDIR)/FunctionPosition.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionPosition.cpp' object='FunctionPosition.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionPosition.lo `test -f 'src/functions/FunctionPosition.cpp' || echo '$(srcdir)/'`src/functions/FunctionPosition.cpp FunctionPower.lo: src/functions/FunctionPower.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionPower.lo -MD -MP -MF $(DEPDIR)/FunctionPower.Tpo -c -o FunctionPower.lo `test -f 'src/functions/FunctionPower.cpp' || echo '$(srcdir)/'`src/functions/FunctionPower.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionPower.Tpo $(DEPDIR)/FunctionPower.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionPower.cpp' object='FunctionPower.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionPower.lo `test -f 'src/functions/FunctionPower.cpp' || echo '$(srcdir)/'`src/functions/FunctionPower.cpp FunctionPrefixFromQName.lo: src/functions/FunctionPrefixFromQName.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionPrefixFromQName.lo -MD -MP -MF $(DEPDIR)/FunctionPrefixFromQName.Tpo -c -o FunctionPrefixFromQName.lo `test -f 'src/functions/FunctionPrefixFromQName.cpp' || echo '$(srcdir)/'`src/functions/FunctionPrefixFromQName.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionPrefixFromQName.Tpo $(DEPDIR)/FunctionPrefixFromQName.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionPrefixFromQName.cpp' object='FunctionPrefixFromQName.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionPrefixFromQName.lo `test -f 'src/functions/FunctionPrefixFromQName.cpp' || echo '$(srcdir)/'`src/functions/FunctionPrefixFromQName.cpp FunctionQName.lo: src/functions/FunctionQName.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionQName.lo -MD -MP -MF $(DEPDIR)/FunctionQName.Tpo -c -o FunctionQName.lo `test -f 'src/functions/FunctionQName.cpp' || echo '$(srcdir)/'`src/functions/FunctionQName.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionQName.Tpo $(DEPDIR)/FunctionQName.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionQName.cpp' object='FunctionQName.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionQName.lo `test -f 'src/functions/FunctionQName.cpp' || echo '$(srcdir)/'`src/functions/FunctionQName.cpp FunctionRegexGroup.lo: src/functions/FunctionRegexGroup.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionRegexGroup.lo -MD -MP -MF $(DEPDIR)/FunctionRegexGroup.Tpo -c -o FunctionRegexGroup.lo `test -f 'src/functions/FunctionRegexGroup.cpp' || echo '$(srcdir)/'`src/functions/FunctionRegexGroup.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionRegexGroup.Tpo $(DEPDIR)/FunctionRegexGroup.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionRegexGroup.cpp' object='FunctionRegexGroup.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionRegexGroup.lo `test -f 'src/functions/FunctionRegexGroup.cpp' || echo '$(srcdir)/'`src/functions/FunctionRegexGroup.cpp FunctionReplace.lo: src/functions/FunctionReplace.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionReplace.lo -MD -MP -MF $(DEPDIR)/FunctionReplace.Tpo -c -o FunctionReplace.lo `test -f 'src/functions/FunctionReplace.cpp' || echo '$(srcdir)/'`src/functions/FunctionReplace.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionReplace.Tpo $(DEPDIR)/FunctionReplace.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionReplace.cpp' object='FunctionReplace.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionReplace.lo `test -f 'src/functions/FunctionReplace.cpp' || echo '$(srcdir)/'`src/functions/FunctionReplace.cpp FunctionResolveURI.lo: src/functions/FunctionResolveURI.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionResolveURI.lo -MD -MP -MF $(DEPDIR)/FunctionResolveURI.Tpo -c -o FunctionResolveURI.lo `test -f 'src/functions/FunctionResolveURI.cpp' || echo '$(srcdir)/'`src/functions/FunctionResolveURI.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionResolveURI.Tpo $(DEPDIR)/FunctionResolveURI.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionResolveURI.cpp' object='FunctionResolveURI.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionResolveURI.lo `test -f 'src/functions/FunctionResolveURI.cpp' || echo '$(srcdir)/'`src/functions/FunctionResolveURI.cpp FunctionRoot.lo: src/functions/FunctionRoot.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionRoot.lo -MD -MP -MF $(DEPDIR)/FunctionRoot.Tpo -c -o FunctionRoot.lo `test -f 'src/functions/FunctionRoot.cpp' || echo '$(srcdir)/'`src/functions/FunctionRoot.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionRoot.Tpo $(DEPDIR)/FunctionRoot.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionRoot.cpp' object='FunctionRoot.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionRoot.lo `test -f 'src/functions/FunctionRoot.cpp' || echo '$(srcdir)/'`src/functions/FunctionRoot.cpp FunctionRound.lo: src/functions/FunctionRound.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionRound.lo -MD -MP -MF $(DEPDIR)/FunctionRound.Tpo -c -o FunctionRound.lo `test -f 'src/functions/FunctionRound.cpp' || echo '$(srcdir)/'`src/functions/FunctionRound.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionRound.Tpo $(DEPDIR)/FunctionRound.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionRound.cpp' object='FunctionRound.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionRound.lo `test -f 'src/functions/FunctionRound.cpp' || echo '$(srcdir)/'`src/functions/FunctionRound.cpp FunctionRoundHalfToEven.lo: src/functions/FunctionRoundHalfToEven.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionRoundHalfToEven.lo -MD -MP -MF $(DEPDIR)/FunctionRoundHalfToEven.Tpo -c -o FunctionRoundHalfToEven.lo `test -f 'src/functions/FunctionRoundHalfToEven.cpp' || echo '$(srcdir)/'`src/functions/FunctionRoundHalfToEven.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionRoundHalfToEven.Tpo $(DEPDIR)/FunctionRoundHalfToEven.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionRoundHalfToEven.cpp' object='FunctionRoundHalfToEven.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionRoundHalfToEven.lo `test -f 'src/functions/FunctionRoundHalfToEven.cpp' || echo '$(srcdir)/'`src/functions/FunctionRoundHalfToEven.cpp FunctionSin.lo: src/functions/FunctionSin.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionSin.lo -MD -MP -MF $(DEPDIR)/FunctionSin.Tpo -c -o FunctionSin.lo `test -f 'src/functions/FunctionSin.cpp' || echo '$(srcdir)/'`src/functions/FunctionSin.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionSin.Tpo $(DEPDIR)/FunctionSin.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionSin.cpp' object='FunctionSin.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionSin.lo `test -f 'src/functions/FunctionSin.cpp' || echo '$(srcdir)/'`src/functions/FunctionSin.cpp FunctionSqrt.lo: src/functions/FunctionSqrt.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionSqrt.lo -MD -MP -MF $(DEPDIR)/FunctionSqrt.Tpo -c -o FunctionSqrt.lo `test -f 'src/functions/FunctionSqrt.cpp' || echo '$(srcdir)/'`src/functions/FunctionSqrt.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionSqrt.Tpo $(DEPDIR)/FunctionSqrt.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionSqrt.cpp' object='FunctionSqrt.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionSqrt.lo `test -f 'src/functions/FunctionSqrt.cpp' || echo '$(srcdir)/'`src/functions/FunctionSqrt.cpp FunctionTan.lo: src/functions/FunctionTan.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionTan.lo -MD -MP -MF $(DEPDIR)/FunctionTan.Tpo -c -o FunctionTan.lo `test -f 'src/functions/FunctionTan.cpp' || echo '$(srcdir)/'`src/functions/FunctionTan.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionTan.Tpo $(DEPDIR)/FunctionTan.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionTan.cpp' object='FunctionTan.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionTan.lo `test -f 'src/functions/FunctionTan.cpp' || echo '$(srcdir)/'`src/functions/FunctionTan.cpp FunctionSentences.lo: src/functions/FunctionSentences.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionSentences.lo -MD -MP -MF $(DEPDIR)/FunctionSentences.Tpo -c -o FunctionSentences.lo `test -f 'src/functions/FunctionSentences.cpp' || echo '$(srcdir)/'`src/functions/FunctionSentences.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionSentences.Tpo $(DEPDIR)/FunctionSentences.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionSentences.cpp' object='FunctionSentences.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionSentences.lo `test -f 'src/functions/FunctionSentences.cpp' || echo '$(srcdir)/'`src/functions/FunctionSentences.cpp FunctionStartsWith.lo: src/functions/FunctionStartsWith.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionStartsWith.lo -MD -MP -MF $(DEPDIR)/FunctionStartsWith.Tpo -c -o FunctionStartsWith.lo `test -f 'src/functions/FunctionStartsWith.cpp' || echo '$(srcdir)/'`src/functions/FunctionStartsWith.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionStartsWith.Tpo $(DEPDIR)/FunctionStartsWith.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionStartsWith.cpp' object='FunctionStartsWith.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionStartsWith.lo `test -f 'src/functions/FunctionStartsWith.cpp' || echo '$(srcdir)/'`src/functions/FunctionStartsWith.cpp FunctionStaticBaseURI.lo: src/functions/FunctionStaticBaseURI.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionStaticBaseURI.lo -MD -MP -MF $(DEPDIR)/FunctionStaticBaseURI.Tpo -c -o FunctionStaticBaseURI.lo `test -f 'src/functions/FunctionStaticBaseURI.cpp' || echo '$(srcdir)/'`src/functions/FunctionStaticBaseURI.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionStaticBaseURI.Tpo $(DEPDIR)/FunctionStaticBaseURI.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionStaticBaseURI.cpp' object='FunctionStaticBaseURI.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionStaticBaseURI.lo `test -f 'src/functions/FunctionStaticBaseURI.cpp' || echo '$(srcdir)/'`src/functions/FunctionStaticBaseURI.cpp FunctionString.lo: src/functions/FunctionString.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionString.lo -MD -MP -MF $(DEPDIR)/FunctionString.Tpo -c -o FunctionString.lo `test -f 'src/functions/FunctionString.cpp' || echo '$(srcdir)/'`src/functions/FunctionString.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionString.Tpo $(DEPDIR)/FunctionString.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionString.cpp' object='FunctionString.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionString.lo `test -f 'src/functions/FunctionString.cpp' || echo '$(srcdir)/'`src/functions/FunctionString.cpp FunctionStringLength.lo: src/functions/FunctionStringLength.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionStringLength.lo -MD -MP -MF $(DEPDIR)/FunctionStringLength.Tpo -c -o FunctionStringLength.lo `test -f 'src/functions/FunctionStringLength.cpp' || echo '$(srcdir)/'`src/functions/FunctionStringLength.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionStringLength.Tpo $(DEPDIR)/FunctionStringLength.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionStringLength.cpp' object='FunctionStringLength.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionStringLength.lo `test -f 'src/functions/FunctionStringLength.cpp' || echo '$(srcdir)/'`src/functions/FunctionStringLength.cpp FunctionStringToCodepoints.lo: src/functions/FunctionStringToCodepoints.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionStringToCodepoints.lo -MD -MP -MF $(DEPDIR)/FunctionStringToCodepoints.Tpo -c -o FunctionStringToCodepoints.lo `test -f 'src/functions/FunctionStringToCodepoints.cpp' || echo '$(srcdir)/'`src/functions/FunctionStringToCodepoints.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionStringToCodepoints.Tpo $(DEPDIR)/FunctionStringToCodepoints.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionStringToCodepoints.cpp' object='FunctionStringToCodepoints.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionStringToCodepoints.lo `test -f 'src/functions/FunctionStringToCodepoints.cpp' || echo '$(srcdir)/'`src/functions/FunctionStringToCodepoints.cpp FunctionSubstring.lo: src/functions/FunctionSubstring.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionSubstring.lo -MD -MP -MF $(DEPDIR)/FunctionSubstring.Tpo -c -o FunctionSubstring.lo `test -f 'src/functions/FunctionSubstring.cpp' || echo '$(srcdir)/'`src/functions/FunctionSubstring.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionSubstring.Tpo $(DEPDIR)/FunctionSubstring.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionSubstring.cpp' object='FunctionSubstring.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionSubstring.lo `test -f 'src/functions/FunctionSubstring.cpp' || echo '$(srcdir)/'`src/functions/FunctionSubstring.cpp FunctionTime.lo: src/functions/FunctionTime.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionTime.lo -MD -MP -MF $(DEPDIR)/FunctionTime.Tpo -c -o FunctionTime.lo `test -f 'src/functions/FunctionTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionTime.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionTime.Tpo $(DEPDIR)/FunctionTime.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionTime.cpp' object='FunctionTime.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionTime.lo `test -f 'src/functions/FunctionTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionTime.cpp FunctionTokenize.lo: src/functions/FunctionTokenize.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionTokenize.lo -MD -MP -MF $(DEPDIR)/FunctionTokenize.Tpo -c -o FunctionTokenize.lo `test -f 'src/functions/FunctionTokenize.cpp' || echo '$(srcdir)/'`src/functions/FunctionTokenize.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionTokenize.Tpo $(DEPDIR)/FunctionTokenize.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionTokenize.cpp' object='FunctionTokenize.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionTokenize.lo `test -f 'src/functions/FunctionTokenize.cpp' || echo '$(srcdir)/'`src/functions/FunctionTokenize.cpp FunctionTrace.lo: src/functions/FunctionTrace.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionTrace.lo -MD -MP -MF $(DEPDIR)/FunctionTrace.Tpo -c -o FunctionTrace.lo `test -f 'src/functions/FunctionTrace.cpp' || echo '$(srcdir)/'`src/functions/FunctionTrace.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionTrace.Tpo $(DEPDIR)/FunctionTrace.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionTrace.cpp' object='FunctionTrace.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionTrace.lo `test -f 'src/functions/FunctionTrace.cpp' || echo '$(srcdir)/'`src/functions/FunctionTrace.cpp FunctionHead.lo: src/functions/FunctionHead.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionHead.lo -MD -MP -MF $(DEPDIR)/FunctionHead.Tpo -c -o FunctionHead.lo `test -f 'src/functions/FunctionHead.cpp' || echo '$(srcdir)/'`src/functions/FunctionHead.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionHead.Tpo $(DEPDIR)/FunctionHead.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionHead.cpp' object='FunctionHead.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionHead.lo `test -f 'src/functions/FunctionHead.cpp' || echo '$(srcdir)/'`src/functions/FunctionHead.cpp FunctionTail.lo: src/functions/FunctionTail.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionTail.lo -MD -MP -MF $(DEPDIR)/FunctionTail.Tpo -c -o FunctionTail.lo `test -f 'src/functions/FunctionTail.cpp' || echo '$(srcdir)/'`src/functions/FunctionTail.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionTail.Tpo $(DEPDIR)/FunctionTail.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionTail.cpp' object='FunctionTail.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionTail.lo `test -f 'src/functions/FunctionTail.cpp' || echo '$(srcdir)/'`src/functions/FunctionTail.cpp FunctionUnordered.lo: src/functions/FunctionUnordered.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionUnordered.lo -MD -MP -MF $(DEPDIR)/FunctionUnordered.Tpo -c -o FunctionUnordered.lo `test -f 'src/functions/FunctionUnordered.cpp' || echo '$(srcdir)/'`src/functions/FunctionUnordered.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionUnordered.Tpo $(DEPDIR)/FunctionUnordered.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionUnordered.cpp' object='FunctionUnordered.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionUnordered.lo `test -f 'src/functions/FunctionUnordered.cpp' || echo '$(srcdir)/'`src/functions/FunctionUnordered.cpp FunctionUnparsedText.lo: src/functions/FunctionUnparsedText.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionUnparsedText.lo -MD -MP -MF $(DEPDIR)/FunctionUnparsedText.Tpo -c -o FunctionUnparsedText.lo `test -f 'src/functions/FunctionUnparsedText.cpp' || echo '$(srcdir)/'`src/functions/FunctionUnparsedText.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionUnparsedText.Tpo $(DEPDIR)/FunctionUnparsedText.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionUnparsedText.cpp' object='FunctionUnparsedText.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionUnparsedText.lo `test -f 'src/functions/FunctionUnparsedText.cpp' || echo '$(srcdir)/'`src/functions/FunctionUnparsedText.cpp FunctionUpperCase.lo: src/functions/FunctionUpperCase.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionUpperCase.lo -MD -MP -MF $(DEPDIR)/FunctionUpperCase.Tpo -c -o FunctionUpperCase.lo `test -f 'src/functions/FunctionUpperCase.cpp' || echo '$(srcdir)/'`src/functions/FunctionUpperCase.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionUpperCase.Tpo $(DEPDIR)/FunctionUpperCase.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionUpperCase.cpp' object='FunctionUpperCase.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionUpperCase.lo `test -f 'src/functions/FunctionUpperCase.cpp' || echo '$(srcdir)/'`src/functions/FunctionUpperCase.cpp FunctionWords.lo: src/functions/FunctionWords.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionWords.lo -MD -MP -MF $(DEPDIR)/FunctionWords.Tpo -c -o FunctionWords.lo `test -f 'src/functions/FunctionWords.cpp' || echo '$(srcdir)/'`src/functions/FunctionWords.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionWords.Tpo $(DEPDIR)/FunctionWords.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionWords.cpp' object='FunctionWords.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionWords.lo `test -f 'src/functions/FunctionWords.cpp' || echo '$(srcdir)/'`src/functions/FunctionWords.cpp FunctionAdjustDateTimeToTimezone.lo: src/functions/FunctionAdjustDateTimeToTimezone.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionAdjustDateTimeToTimezone.lo -MD -MP -MF $(DEPDIR)/FunctionAdjustDateTimeToTimezone.Tpo -c -o FunctionAdjustDateTimeToTimezone.lo `test -f 'src/functions/FunctionAdjustDateTimeToTimezone.cpp' || echo '$(srcdir)/'`src/functions/FunctionAdjustDateTimeToTimezone.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionAdjustDateTimeToTimezone.Tpo $(DEPDIR)/FunctionAdjustDateTimeToTimezone.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionAdjustDateTimeToTimezone.cpp' object='FunctionAdjustDateTimeToTimezone.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionAdjustDateTimeToTimezone.lo `test -f 'src/functions/FunctionAdjustDateTimeToTimezone.cpp' || echo '$(srcdir)/'`src/functions/FunctionAdjustDateTimeToTimezone.cpp FunctionAdjustDateToTimezone.lo: src/functions/FunctionAdjustDateToTimezone.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionAdjustDateToTimezone.lo -MD -MP -MF $(DEPDIR)/FunctionAdjustDateToTimezone.Tpo -c -o FunctionAdjustDateToTimezone.lo `test -f 'src/functions/FunctionAdjustDateToTimezone.cpp' || echo '$(srcdir)/'`src/functions/FunctionAdjustDateToTimezone.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionAdjustDateToTimezone.Tpo $(DEPDIR)/FunctionAdjustDateToTimezone.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionAdjustDateToTimezone.cpp' object='FunctionAdjustDateToTimezone.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionAdjustDateToTimezone.lo `test -f 'src/functions/FunctionAdjustDateToTimezone.cpp' || echo '$(srcdir)/'`src/functions/FunctionAdjustDateToTimezone.cpp FunctionAdjustTimeToTimezone.lo: src/functions/FunctionAdjustTimeToTimezone.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionAdjustTimeToTimezone.lo -MD -MP -MF $(DEPDIR)/FunctionAdjustTimeToTimezone.Tpo -c -o FunctionAdjustTimeToTimezone.lo `test -f 'src/functions/FunctionAdjustTimeToTimezone.cpp' || echo '$(srcdir)/'`src/functions/FunctionAdjustTimeToTimezone.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionAdjustTimeToTimezone.Tpo $(DEPDIR)/FunctionAdjustTimeToTimezone.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionAdjustTimeToTimezone.cpp' object='FunctionAdjustTimeToTimezone.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionAdjustTimeToTimezone.lo `test -f 'src/functions/FunctionAdjustTimeToTimezone.cpp' || echo '$(srcdir)/'`src/functions/FunctionAdjustTimeToTimezone.cpp FunctionDayFromDate.lo: src/functions/FunctionDayFromDate.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionDayFromDate.lo -MD -MP -MF $(DEPDIR)/FunctionDayFromDate.Tpo -c -o FunctionDayFromDate.lo `test -f 'src/functions/FunctionDayFromDate.cpp' || echo '$(srcdir)/'`src/functions/FunctionDayFromDate.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionDayFromDate.Tpo $(DEPDIR)/FunctionDayFromDate.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionDayFromDate.cpp' object='FunctionDayFromDate.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionDayFromDate.lo `test -f 'src/functions/FunctionDayFromDate.cpp' || echo '$(srcdir)/'`src/functions/FunctionDayFromDate.cpp FunctionDayFromDateTime.lo: src/functions/FunctionDayFromDateTime.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionDayFromDateTime.lo -MD -MP -MF $(DEPDIR)/FunctionDayFromDateTime.Tpo -c -o FunctionDayFromDateTime.lo `test -f 'src/functions/FunctionDayFromDateTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionDayFromDateTime.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionDayFromDateTime.Tpo $(DEPDIR)/FunctionDayFromDateTime.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionDayFromDateTime.cpp' object='FunctionDayFromDateTime.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionDayFromDateTime.lo `test -f 'src/functions/FunctionDayFromDateTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionDayFromDateTime.cpp FunctionDaysFromDuration.lo: src/functions/FunctionDaysFromDuration.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionDaysFromDuration.lo -MD -MP -MF $(DEPDIR)/FunctionDaysFromDuration.Tpo -c -o FunctionDaysFromDuration.lo `test -f 'src/functions/FunctionDaysFromDuration.cpp' || echo '$(srcdir)/'`src/functions/FunctionDaysFromDuration.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionDaysFromDuration.Tpo $(DEPDIR)/FunctionDaysFromDuration.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionDaysFromDuration.cpp' object='FunctionDaysFromDuration.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionDaysFromDuration.lo `test -f 'src/functions/FunctionDaysFromDuration.cpp' || echo '$(srcdir)/'`src/functions/FunctionDaysFromDuration.cpp FunctionHoursFromDateTime.lo: src/functions/FunctionHoursFromDateTime.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionHoursFromDateTime.lo -MD -MP -MF $(DEPDIR)/FunctionHoursFromDateTime.Tpo -c -o FunctionHoursFromDateTime.lo `test -f 'src/functions/FunctionHoursFromDateTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionHoursFromDateTime.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionHoursFromDateTime.Tpo $(DEPDIR)/FunctionHoursFromDateTime.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionHoursFromDateTime.cpp' object='FunctionHoursFromDateTime.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionHoursFromDateTime.lo `test -f 'src/functions/FunctionHoursFromDateTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionHoursFromDateTime.cpp FunctionHoursFromDuration.lo: src/functions/FunctionHoursFromDuration.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionHoursFromDuration.lo -MD -MP -MF $(DEPDIR)/FunctionHoursFromDuration.Tpo -c -o FunctionHoursFromDuration.lo `test -f 'src/functions/FunctionHoursFromDuration.cpp' || echo '$(srcdir)/'`src/functions/FunctionHoursFromDuration.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionHoursFromDuration.Tpo $(DEPDIR)/FunctionHoursFromDuration.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionHoursFromDuration.cpp' object='FunctionHoursFromDuration.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionHoursFromDuration.lo `test -f 'src/functions/FunctionHoursFromDuration.cpp' || echo '$(srcdir)/'`src/functions/FunctionHoursFromDuration.cpp FunctionHoursFromTime.lo: src/functions/FunctionHoursFromTime.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionHoursFromTime.lo -MD -MP -MF $(DEPDIR)/FunctionHoursFromTime.Tpo -c -o FunctionHoursFromTime.lo `test -f 'src/functions/FunctionHoursFromTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionHoursFromTime.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionHoursFromTime.Tpo $(DEPDIR)/FunctionHoursFromTime.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionHoursFromTime.cpp' object='FunctionHoursFromTime.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionHoursFromTime.lo `test -f 'src/functions/FunctionHoursFromTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionHoursFromTime.cpp FunctionMinutesFromDateTime.lo: src/functions/FunctionMinutesFromDateTime.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionMinutesFromDateTime.lo -MD -MP -MF $(DEPDIR)/FunctionMinutesFromDateTime.Tpo -c -o FunctionMinutesFromDateTime.lo `test -f 'src/functions/FunctionMinutesFromDateTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionMinutesFromDateTime.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionMinutesFromDateTime.Tpo $(DEPDIR)/FunctionMinutesFromDateTime.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionMinutesFromDateTime.cpp' object='FunctionMinutesFromDateTime.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionMinutesFromDateTime.lo `test -f 'src/functions/FunctionMinutesFromDateTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionMinutesFromDateTime.cpp FunctionMinutesFromDuration.lo: src/functions/FunctionMinutesFromDuration.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionMinutesFromDuration.lo -MD -MP -MF $(DEPDIR)/FunctionMinutesFromDuration.Tpo -c -o FunctionMinutesFromDuration.lo `test -f 'src/functions/FunctionMinutesFromDuration.cpp' || echo '$(srcdir)/'`src/functions/FunctionMinutesFromDuration.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionMinutesFromDuration.Tpo $(DEPDIR)/FunctionMinutesFromDuration.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionMinutesFromDuration.cpp' object='FunctionMinutesFromDuration.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionMinutesFromDuration.lo `test -f 'src/functions/FunctionMinutesFromDuration.cpp' || echo '$(srcdir)/'`src/functions/FunctionMinutesFromDuration.cpp FunctionMinutesFromTime.lo: src/functions/FunctionMinutesFromTime.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionMinutesFromTime.lo -MD -MP -MF $(DEPDIR)/FunctionMinutesFromTime.Tpo -c -o FunctionMinutesFromTime.lo `test -f 'src/functions/FunctionMinutesFromTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionMinutesFromTime.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionMinutesFromTime.Tpo $(DEPDIR)/FunctionMinutesFromTime.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionMinutesFromTime.cpp' object='FunctionMinutesFromTime.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionMinutesFromTime.lo `test -f 'src/functions/FunctionMinutesFromTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionMinutesFromTime.cpp FunctionMonthFromDate.lo: src/functions/FunctionMonthFromDate.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionMonthFromDate.lo -MD -MP -MF $(DEPDIR)/FunctionMonthFromDate.Tpo -c -o FunctionMonthFromDate.lo `test -f 'src/functions/FunctionMonthFromDate.cpp' || echo '$(srcdir)/'`src/functions/FunctionMonthFromDate.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionMonthFromDate.Tpo $(DEPDIR)/FunctionMonthFromDate.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionMonthFromDate.cpp' object='FunctionMonthFromDate.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionMonthFromDate.lo `test -f 'src/functions/FunctionMonthFromDate.cpp' || echo '$(srcdir)/'`src/functions/FunctionMonthFromDate.cpp FunctionMonthFromDateTime.lo: src/functions/FunctionMonthFromDateTime.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionMonthFromDateTime.lo -MD -MP -MF $(DEPDIR)/FunctionMonthFromDateTime.Tpo -c -o FunctionMonthFromDateTime.lo `test -f 'src/functions/FunctionMonthFromDateTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionMonthFromDateTime.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionMonthFromDateTime.Tpo $(DEPDIR)/FunctionMonthFromDateTime.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionMonthFromDateTime.cpp' object='FunctionMonthFromDateTime.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionMonthFromDateTime.lo `test -f 'src/functions/FunctionMonthFromDateTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionMonthFromDateTime.cpp FunctionMonthsFromDuration.lo: src/functions/FunctionMonthsFromDuration.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionMonthsFromDuration.lo -MD -MP -MF $(DEPDIR)/FunctionMonthsFromDuration.Tpo -c -o FunctionMonthsFromDuration.lo `test -f 'src/functions/FunctionMonthsFromDuration.cpp' || echo '$(srcdir)/'`src/functions/FunctionMonthsFromDuration.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionMonthsFromDuration.Tpo $(DEPDIR)/FunctionMonthsFromDuration.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionMonthsFromDuration.cpp' object='FunctionMonthsFromDuration.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionMonthsFromDuration.lo `test -f 'src/functions/FunctionMonthsFromDuration.cpp' || echo '$(srcdir)/'`src/functions/FunctionMonthsFromDuration.cpp FunctionSecondsFromDateTime.lo: src/functions/FunctionSecondsFromDateTime.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionSecondsFromDateTime.lo -MD -MP -MF $(DEPDIR)/FunctionSecondsFromDateTime.Tpo -c -o FunctionSecondsFromDateTime.lo `test -f 'src/functions/FunctionSecondsFromDateTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionSecondsFromDateTime.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionSecondsFromDateTime.Tpo $(DEPDIR)/FunctionSecondsFromDateTime.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionSecondsFromDateTime.cpp' object='FunctionSecondsFromDateTime.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionSecondsFromDateTime.lo `test -f 'src/functions/FunctionSecondsFromDateTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionSecondsFromDateTime.cpp FunctionSecondsFromDuration.lo: src/functions/FunctionSecondsFromDuration.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionSecondsFromDuration.lo -MD -MP -MF $(DEPDIR)/FunctionSecondsFromDuration.Tpo -c -o FunctionSecondsFromDuration.lo `test -f 'src/functions/FunctionSecondsFromDuration.cpp' || echo '$(srcdir)/'`src/functions/FunctionSecondsFromDuration.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionSecondsFromDuration.Tpo $(DEPDIR)/FunctionSecondsFromDuration.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionSecondsFromDuration.cpp' object='FunctionSecondsFromDuration.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionSecondsFromDuration.lo `test -f 'src/functions/FunctionSecondsFromDuration.cpp' || echo '$(srcdir)/'`src/functions/FunctionSecondsFromDuration.cpp FunctionSecondsFromTime.lo: src/functions/FunctionSecondsFromTime.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionSecondsFromTime.lo -MD -MP -MF $(DEPDIR)/FunctionSecondsFromTime.Tpo -c -o FunctionSecondsFromTime.lo `test -f 'src/functions/FunctionSecondsFromTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionSecondsFromTime.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionSecondsFromTime.Tpo $(DEPDIR)/FunctionSecondsFromTime.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionSecondsFromTime.cpp' object='FunctionSecondsFromTime.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionSecondsFromTime.lo `test -f 'src/functions/FunctionSecondsFromTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionSecondsFromTime.cpp FunctionTimezoneFromDate.lo: src/functions/FunctionTimezoneFromDate.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionTimezoneFromDate.lo -MD -MP -MF $(DEPDIR)/FunctionTimezoneFromDate.Tpo -c -o FunctionTimezoneFromDate.lo `test -f 'src/functions/FunctionTimezoneFromDate.cpp' || echo '$(srcdir)/'`src/functions/FunctionTimezoneFromDate.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionTimezoneFromDate.Tpo $(DEPDIR)/FunctionTimezoneFromDate.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionTimezoneFromDate.cpp' object='FunctionTimezoneFromDate.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionTimezoneFromDate.lo `test -f 'src/functions/FunctionTimezoneFromDate.cpp' || echo '$(srcdir)/'`src/functions/FunctionTimezoneFromDate.cpp FunctionTimezoneFromDateTime.lo: src/functions/FunctionTimezoneFromDateTime.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionTimezoneFromDateTime.lo -MD -MP -MF $(DEPDIR)/FunctionTimezoneFromDateTime.Tpo -c -o FunctionTimezoneFromDateTime.lo `test -f 'src/functions/FunctionTimezoneFromDateTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionTimezoneFromDateTime.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionTimezoneFromDateTime.Tpo $(DEPDIR)/FunctionTimezoneFromDateTime.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionTimezoneFromDateTime.cpp' object='FunctionTimezoneFromDateTime.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionTimezoneFromDateTime.lo `test -f 'src/functions/FunctionTimezoneFromDateTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionTimezoneFromDateTime.cpp FunctionTimezoneFromTime.lo: src/functions/FunctionTimezoneFromTime.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionTimezoneFromTime.lo -MD -MP -MF $(DEPDIR)/FunctionTimezoneFromTime.Tpo -c -o FunctionTimezoneFromTime.lo `test -f 'src/functions/FunctionTimezoneFromTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionTimezoneFromTime.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionTimezoneFromTime.Tpo $(DEPDIR)/FunctionTimezoneFromTime.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionTimezoneFromTime.cpp' object='FunctionTimezoneFromTime.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionTimezoneFromTime.lo `test -f 'src/functions/FunctionTimezoneFromTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionTimezoneFromTime.cpp FunctionYearFromDate.lo: src/functions/FunctionYearFromDate.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionYearFromDate.lo -MD -MP -MF $(DEPDIR)/FunctionYearFromDate.Tpo -c -o FunctionYearFromDate.lo `test -f 'src/functions/FunctionYearFromDate.cpp' || echo '$(srcdir)/'`src/functions/FunctionYearFromDate.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionYearFromDate.Tpo $(DEPDIR)/FunctionYearFromDate.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionYearFromDate.cpp' object='FunctionYearFromDate.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionYearFromDate.lo `test -f 'src/functions/FunctionYearFromDate.cpp' || echo '$(srcdir)/'`src/functions/FunctionYearFromDate.cpp FunctionYearFromDateTime.lo: src/functions/FunctionYearFromDateTime.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionYearFromDateTime.lo -MD -MP -MF $(DEPDIR)/FunctionYearFromDateTime.Tpo -c -o FunctionYearFromDateTime.lo `test -f 'src/functions/FunctionYearFromDateTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionYearFromDateTime.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionYearFromDateTime.Tpo $(DEPDIR)/FunctionYearFromDateTime.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionYearFromDateTime.cpp' object='FunctionYearFromDateTime.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionYearFromDateTime.lo `test -f 'src/functions/FunctionYearFromDateTime.cpp' || echo '$(srcdir)/'`src/functions/FunctionYearFromDateTime.cpp FunctionYearsFromDuration.lo: src/functions/FunctionYearsFromDuration.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionYearsFromDuration.lo -MD -MP -MF $(DEPDIR)/FunctionYearsFromDuration.Tpo -c -o FunctionYearsFromDuration.lo `test -f 'src/functions/FunctionYearsFromDuration.cpp' || echo '$(srcdir)/'`src/functions/FunctionYearsFromDuration.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionYearsFromDuration.Tpo $(DEPDIR)/FunctionYearsFromDuration.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionYearsFromDuration.cpp' object='FunctionYearsFromDuration.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionYearsFromDuration.lo `test -f 'src/functions/FunctionYearsFromDuration.cpp' || echo '$(srcdir)/'`src/functions/FunctionYearsFromDuration.cpp FunctionParseJSON.lo: src/functions/FunctionParseJSON.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionParseJSON.lo -MD -MP -MF $(DEPDIR)/FunctionParseJSON.Tpo -c -o FunctionParseJSON.lo `test -f 'src/functions/FunctionParseJSON.cpp' || echo '$(srcdir)/'`src/functions/FunctionParseJSON.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionParseJSON.Tpo $(DEPDIR)/FunctionParseJSON.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionParseJSON.cpp' object='FunctionParseJSON.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionParseJSON.lo `test -f 'src/functions/FunctionParseJSON.cpp' || echo '$(srcdir)/'`src/functions/FunctionParseJSON.cpp FunctionSerializeJSON.lo: src/functions/FunctionSerializeJSON.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionSerializeJSON.lo -MD -MP -MF $(DEPDIR)/FunctionSerializeJSON.Tpo -c -o FunctionSerializeJSON.lo `test -f 'src/functions/FunctionSerializeJSON.cpp' || echo '$(srcdir)/'`src/functions/FunctionSerializeJSON.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionSerializeJSON.Tpo $(DEPDIR)/FunctionSerializeJSON.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionSerializeJSON.cpp' object='FunctionSerializeJSON.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionSerializeJSON.lo `test -f 'src/functions/FunctionSerializeJSON.cpp' || echo '$(srcdir)/'`src/functions/FunctionSerializeJSON.cpp FunctionParseHTML.lo: src/functions/FunctionParseHTML.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionParseHTML.lo -MD -MP -MF $(DEPDIR)/FunctionParseHTML.Tpo -c -o FunctionParseHTML.lo `test -f 'src/functions/FunctionParseHTML.cpp' || echo '$(srcdir)/'`src/functions/FunctionParseHTML.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionParseHTML.Tpo $(DEPDIR)/FunctionParseHTML.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionParseHTML.cpp' object='FunctionParseHTML.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionParseHTML.lo `test -f 'src/functions/FunctionParseHTML.cpp' || echo '$(srcdir)/'`src/functions/FunctionParseHTML.cpp FunctionExplain.lo: src/functions/FunctionExplain.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionExplain.lo -MD -MP -MF $(DEPDIR)/FunctionExplain.Tpo -c -o FunctionExplain.lo `test -f 'src/functions/FunctionExplain.cpp' || echo '$(srcdir)/'`src/functions/FunctionExplain.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionExplain.Tpo $(DEPDIR)/FunctionExplain.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionExplain.cpp' object='FunctionExplain.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionExplain.lo `test -f 'src/functions/FunctionExplain.cpp' || echo '$(srcdir)/'`src/functions/FunctionExplain.cpp FunctionAnalyzeString.lo: src/functions/FunctionAnalyzeString.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionAnalyzeString.lo -MD -MP -MF $(DEPDIR)/FunctionAnalyzeString.Tpo -c -o FunctionAnalyzeString.lo `test -f 'src/functions/FunctionAnalyzeString.cpp' || echo '$(srcdir)/'`src/functions/FunctionAnalyzeString.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionAnalyzeString.Tpo $(DEPDIR)/FunctionAnalyzeString.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionAnalyzeString.cpp' object='FunctionAnalyzeString.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionAnalyzeString.lo `test -f 'src/functions/FunctionAnalyzeString.cpp' || echo '$(srcdir)/'`src/functions/FunctionAnalyzeString.cpp RegExpFunction.lo: src/functions/RegExpFunction.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT RegExpFunction.lo -MD -MP -MF $(DEPDIR)/RegExpFunction.Tpo -c -o RegExpFunction.lo `test -f 'src/functions/RegExpFunction.cpp' || echo '$(srcdir)/'`src/functions/RegExpFunction.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/RegExpFunction.Tpo $(DEPDIR)/RegExpFunction.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/RegExpFunction.cpp' object='RegExpFunction.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o RegExpFunction.lo `test -f 'src/functions/RegExpFunction.cpp' || echo '$(srcdir)/'`src/functions/RegExpFunction.cpp XQUserFunction.lo: src/functions/XQUserFunction.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQUserFunction.lo -MD -MP -MF $(DEPDIR)/XQUserFunction.Tpo -c -o XQUserFunction.lo `test -f 'src/functions/XQUserFunction.cpp' || echo '$(srcdir)/'`src/functions/XQUserFunction.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQUserFunction.Tpo $(DEPDIR)/XQUserFunction.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/XQUserFunction.cpp' object='XQUserFunction.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQUserFunction.lo `test -f 'src/functions/XQUserFunction.cpp' || echo '$(srcdir)/'`src/functions/XQUserFunction.cpp FunctionSignature.lo: src/functions/FunctionSignature.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionSignature.lo -MD -MP -MF $(DEPDIR)/FunctionSignature.Tpo -c -o FunctionSignature.lo `test -f 'src/functions/FunctionSignature.cpp' || echo '$(srcdir)/'`src/functions/FunctionSignature.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionSignature.Tpo $(DEPDIR)/FunctionSignature.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/FunctionSignature.cpp' object='FunctionSignature.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionSignature.lo `test -f 'src/functions/FunctionSignature.cpp' || echo '$(srcdir)/'`src/functions/FunctionSignature.cpp BuiltInModules.lo: src/functions/BuiltInModules.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT BuiltInModules.lo -MD -MP -MF $(DEPDIR)/BuiltInModules.Tpo -c -o BuiltInModules.lo `test -f 'src/functions/BuiltInModules.cpp' || echo '$(srcdir)/'`src/functions/BuiltInModules.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/BuiltInModules.Tpo $(DEPDIR)/BuiltInModules.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/functions/BuiltInModules.cpp' object='BuiltInModules.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o BuiltInModules.lo `test -f 'src/functions/BuiltInModules.cpp' || echo '$(srcdir)/'`src/functions/BuiltInModules.cpp ATAnySimpleTypeImpl.lo: src/items/impl/ATAnySimpleTypeImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATAnySimpleTypeImpl.lo -MD -MP -MF $(DEPDIR)/ATAnySimpleTypeImpl.Tpo -c -o ATAnySimpleTypeImpl.lo `test -f 'src/items/impl/ATAnySimpleTypeImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATAnySimpleTypeImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATAnySimpleTypeImpl.Tpo $(DEPDIR)/ATAnySimpleTypeImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/ATAnySimpleTypeImpl.cpp' object='ATAnySimpleTypeImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATAnySimpleTypeImpl.lo `test -f 'src/items/impl/ATAnySimpleTypeImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATAnySimpleTypeImpl.cpp ATAnyURIOrDerivedImpl.lo: src/items/impl/ATAnyURIOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATAnyURIOrDerivedImpl.lo -MD -MP -MF $(DEPDIR)/ATAnyURIOrDerivedImpl.Tpo -c -o ATAnyURIOrDerivedImpl.lo `test -f 'src/items/impl/ATAnyURIOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATAnyURIOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATAnyURIOrDerivedImpl.Tpo $(DEPDIR)/ATAnyURIOrDerivedImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/ATAnyURIOrDerivedImpl.cpp' object='ATAnyURIOrDerivedImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATAnyURIOrDerivedImpl.lo `test -f 'src/items/impl/ATAnyURIOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATAnyURIOrDerivedImpl.cpp ATBase64BinaryOrDerivedImpl.lo: src/items/impl/ATBase64BinaryOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATBase64BinaryOrDerivedImpl.lo -MD -MP -MF $(DEPDIR)/ATBase64BinaryOrDerivedImpl.Tpo -c -o ATBase64BinaryOrDerivedImpl.lo `test -f 'src/items/impl/ATBase64BinaryOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATBase64BinaryOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATBase64BinaryOrDerivedImpl.Tpo $(DEPDIR)/ATBase64BinaryOrDerivedImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/ATBase64BinaryOrDerivedImpl.cpp' object='ATBase64BinaryOrDerivedImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATBase64BinaryOrDerivedImpl.lo `test -f 'src/items/impl/ATBase64BinaryOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATBase64BinaryOrDerivedImpl.cpp ATBooleanOrDerivedImpl.lo: src/items/impl/ATBooleanOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATBooleanOrDerivedImpl.lo -MD -MP -MF $(DEPDIR)/ATBooleanOrDerivedImpl.Tpo -c -o ATBooleanOrDerivedImpl.lo `test -f 'src/items/impl/ATBooleanOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATBooleanOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATBooleanOrDerivedImpl.Tpo $(DEPDIR)/ATBooleanOrDerivedImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/ATBooleanOrDerivedImpl.cpp' object='ATBooleanOrDerivedImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATBooleanOrDerivedImpl.lo `test -f 'src/items/impl/ATBooleanOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATBooleanOrDerivedImpl.cpp ATDateOrDerivedImpl.lo: src/items/impl/ATDateOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATDateOrDerivedImpl.lo -MD -MP -MF $(DEPDIR)/ATDateOrDerivedImpl.Tpo -c -o ATDateOrDerivedImpl.lo `test -f 'src/items/impl/ATDateOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATDateOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATDateOrDerivedImpl.Tpo $(DEPDIR)/ATDateOrDerivedImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/ATDateOrDerivedImpl.cpp' object='ATDateOrDerivedImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATDateOrDerivedImpl.lo `test -f 'src/items/impl/ATDateOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATDateOrDerivedImpl.cpp ATDateTimeOrDerivedImpl.lo: src/items/impl/ATDateTimeOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATDateTimeOrDerivedImpl.lo -MD -MP -MF $(DEPDIR)/ATDateTimeOrDerivedImpl.Tpo -c -o ATDateTimeOrDerivedImpl.lo `test -f 'src/items/impl/ATDateTimeOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATDateTimeOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATDateTimeOrDerivedImpl.Tpo $(DEPDIR)/ATDateTimeOrDerivedImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/ATDateTimeOrDerivedImpl.cpp' object='ATDateTimeOrDerivedImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATDateTimeOrDerivedImpl.lo `test -f 'src/items/impl/ATDateTimeOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATDateTimeOrDerivedImpl.cpp ATDecimalOrDerivedImpl.lo: src/items/impl/ATDecimalOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATDecimalOrDerivedImpl.lo -MD -MP -MF $(DEPDIR)/ATDecimalOrDerivedImpl.Tpo -c -o ATDecimalOrDerivedImpl.lo `test -f 'src/items/impl/ATDecimalOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATDecimalOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATDecimalOrDerivedImpl.Tpo $(DEPDIR)/ATDecimalOrDerivedImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/ATDecimalOrDerivedImpl.cpp' object='ATDecimalOrDerivedImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATDecimalOrDerivedImpl.lo `test -f 'src/items/impl/ATDecimalOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATDecimalOrDerivedImpl.cpp ATDoubleOrDerivedImpl.lo: src/items/impl/ATDoubleOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATDoubleOrDerivedImpl.lo -MD -MP -MF $(DEPDIR)/ATDoubleOrDerivedImpl.Tpo -c -o ATDoubleOrDerivedImpl.lo `test -f 'src/items/impl/ATDoubleOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATDoubleOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATDoubleOrDerivedImpl.Tpo $(DEPDIR)/ATDoubleOrDerivedImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/ATDoubleOrDerivedImpl.cpp' object='ATDoubleOrDerivedImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATDoubleOrDerivedImpl.lo `test -f 'src/items/impl/ATDoubleOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATDoubleOrDerivedImpl.cpp ATDurationOrDerivedImpl.lo: src/items/impl/ATDurationOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATDurationOrDerivedImpl.lo -MD -MP -MF $(DEPDIR)/ATDurationOrDerivedImpl.Tpo -c -o ATDurationOrDerivedImpl.lo `test -f 'src/items/impl/ATDurationOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATDurationOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATDurationOrDerivedImpl.Tpo $(DEPDIR)/ATDurationOrDerivedImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/ATDurationOrDerivedImpl.cpp' object='ATDurationOrDerivedImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATDurationOrDerivedImpl.lo `test -f 'src/items/impl/ATDurationOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATDurationOrDerivedImpl.cpp ATFloatOrDerivedImpl.lo: src/items/impl/ATFloatOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATFloatOrDerivedImpl.lo -MD -MP -MF $(DEPDIR)/ATFloatOrDerivedImpl.Tpo -c -o ATFloatOrDerivedImpl.lo `test -f 'src/items/impl/ATFloatOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATFloatOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATFloatOrDerivedImpl.Tpo $(DEPDIR)/ATFloatOrDerivedImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/ATFloatOrDerivedImpl.cpp' object='ATFloatOrDerivedImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATFloatOrDerivedImpl.lo `test -f 'src/items/impl/ATFloatOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATFloatOrDerivedImpl.cpp ATGDayOrDerivedImpl.lo: src/items/impl/ATGDayOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATGDayOrDerivedImpl.lo -MD -MP -MF $(DEPDIR)/ATGDayOrDerivedImpl.Tpo -c -o ATGDayOrDerivedImpl.lo `test -f 'src/items/impl/ATGDayOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATGDayOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATGDayOrDerivedImpl.Tpo $(DEPDIR)/ATGDayOrDerivedImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/ATGDayOrDerivedImpl.cpp' object='ATGDayOrDerivedImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATGDayOrDerivedImpl.lo `test -f 'src/items/impl/ATGDayOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATGDayOrDerivedImpl.cpp ATGMonthDayOrDerivedImpl.lo: src/items/impl/ATGMonthDayOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATGMonthDayOrDerivedImpl.lo -MD -MP -MF $(DEPDIR)/ATGMonthDayOrDerivedImpl.Tpo -c -o ATGMonthDayOrDerivedImpl.lo `test -f 'src/items/impl/ATGMonthDayOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATGMonthDayOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATGMonthDayOrDerivedImpl.Tpo $(DEPDIR)/ATGMonthDayOrDerivedImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/ATGMonthDayOrDerivedImpl.cpp' object='ATGMonthDayOrDerivedImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATGMonthDayOrDerivedImpl.lo `test -f 'src/items/impl/ATGMonthDayOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATGMonthDayOrDerivedImpl.cpp ATGMonthOrDerivedImpl.lo: src/items/impl/ATGMonthOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATGMonthOrDerivedImpl.lo -MD -MP -MF $(DEPDIR)/ATGMonthOrDerivedImpl.Tpo -c -o ATGMonthOrDerivedImpl.lo `test -f 'src/items/impl/ATGMonthOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATGMonthOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATGMonthOrDerivedImpl.Tpo $(DEPDIR)/ATGMonthOrDerivedImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/ATGMonthOrDerivedImpl.cpp' object='ATGMonthOrDerivedImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATGMonthOrDerivedImpl.lo `test -f 'src/items/impl/ATGMonthOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATGMonthOrDerivedImpl.cpp ATGYearMonthOrDerivedImpl.lo: src/items/impl/ATGYearMonthOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATGYearMonthOrDerivedImpl.lo -MD -MP -MF $(DEPDIR)/ATGYearMonthOrDerivedImpl.Tpo -c -o ATGYearMonthOrDerivedImpl.lo `test -f 'src/items/impl/ATGYearMonthOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATGYearMonthOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATGYearMonthOrDerivedImpl.Tpo $(DEPDIR)/ATGYearMonthOrDerivedImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/ATGYearMonthOrDerivedImpl.cpp' object='ATGYearMonthOrDerivedImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATGYearMonthOrDerivedImpl.lo `test -f 'src/items/impl/ATGYearMonthOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATGYearMonthOrDerivedImpl.cpp ATGYearOrDerivedImpl.lo: src/items/impl/ATGYearOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATGYearOrDerivedImpl.lo -MD -MP -MF $(DEPDIR)/ATGYearOrDerivedImpl.Tpo -c -o ATGYearOrDerivedImpl.lo `test -f 'src/items/impl/ATGYearOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATGYearOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATGYearOrDerivedImpl.Tpo $(DEPDIR)/ATGYearOrDerivedImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/ATGYearOrDerivedImpl.cpp' object='ATGYearOrDerivedImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATGYearOrDerivedImpl.lo `test -f 'src/items/impl/ATGYearOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATGYearOrDerivedImpl.cpp ATHexBinaryOrDerivedImpl.lo: src/items/impl/ATHexBinaryOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATHexBinaryOrDerivedImpl.lo -MD -MP -MF $(DEPDIR)/ATHexBinaryOrDerivedImpl.Tpo -c -o ATHexBinaryOrDerivedImpl.lo `test -f 'src/items/impl/ATHexBinaryOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATHexBinaryOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATHexBinaryOrDerivedImpl.Tpo $(DEPDIR)/ATHexBinaryOrDerivedImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/ATHexBinaryOrDerivedImpl.cpp' object='ATHexBinaryOrDerivedImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATHexBinaryOrDerivedImpl.lo `test -f 'src/items/impl/ATHexBinaryOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATHexBinaryOrDerivedImpl.cpp ATNotationOrDerivedImpl.lo: src/items/impl/ATNotationOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATNotationOrDerivedImpl.lo -MD -MP -MF $(DEPDIR)/ATNotationOrDerivedImpl.Tpo -c -o ATNotationOrDerivedImpl.lo `test -f 'src/items/impl/ATNotationOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATNotationOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATNotationOrDerivedImpl.Tpo $(DEPDIR)/ATNotationOrDerivedImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/ATNotationOrDerivedImpl.cpp' object='ATNotationOrDerivedImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATNotationOrDerivedImpl.lo `test -f 'src/items/impl/ATNotationOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATNotationOrDerivedImpl.cpp ATQNameOrDerivedImpl.lo: src/items/impl/ATQNameOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATQNameOrDerivedImpl.lo -MD -MP -MF $(DEPDIR)/ATQNameOrDerivedImpl.Tpo -c -o ATQNameOrDerivedImpl.lo `test -f 'src/items/impl/ATQNameOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATQNameOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATQNameOrDerivedImpl.Tpo $(DEPDIR)/ATQNameOrDerivedImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/ATQNameOrDerivedImpl.cpp' object='ATQNameOrDerivedImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATQNameOrDerivedImpl.lo `test -f 'src/items/impl/ATQNameOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATQNameOrDerivedImpl.cpp ATStringOrDerivedImpl.lo: src/items/impl/ATStringOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATStringOrDerivedImpl.lo -MD -MP -MF $(DEPDIR)/ATStringOrDerivedImpl.Tpo -c -o ATStringOrDerivedImpl.lo `test -f 'src/items/impl/ATStringOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATStringOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATStringOrDerivedImpl.Tpo $(DEPDIR)/ATStringOrDerivedImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/ATStringOrDerivedImpl.cpp' object='ATStringOrDerivedImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATStringOrDerivedImpl.lo `test -f 'src/items/impl/ATStringOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATStringOrDerivedImpl.cpp ATTimeOrDerivedImpl.lo: src/items/impl/ATTimeOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATTimeOrDerivedImpl.lo -MD -MP -MF $(DEPDIR)/ATTimeOrDerivedImpl.Tpo -c -o ATTimeOrDerivedImpl.lo `test -f 'src/items/impl/ATTimeOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATTimeOrDerivedImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATTimeOrDerivedImpl.Tpo $(DEPDIR)/ATTimeOrDerivedImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/ATTimeOrDerivedImpl.cpp' object='ATTimeOrDerivedImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATTimeOrDerivedImpl.lo `test -f 'src/items/impl/ATTimeOrDerivedImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATTimeOrDerivedImpl.cpp ATUntypedAtomicImpl.lo: src/items/impl/ATUntypedAtomicImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATUntypedAtomicImpl.lo -MD -MP -MF $(DEPDIR)/ATUntypedAtomicImpl.Tpo -c -o ATUntypedAtomicImpl.lo `test -f 'src/items/impl/ATUntypedAtomicImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATUntypedAtomicImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATUntypedAtomicImpl.Tpo $(DEPDIR)/ATUntypedAtomicImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/ATUntypedAtomicImpl.cpp' object='ATUntypedAtomicImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATUntypedAtomicImpl.lo `test -f 'src/items/impl/ATUntypedAtomicImpl.cpp' || echo '$(srcdir)/'`src/items/impl/ATUntypedAtomicImpl.cpp FunctionRefImpl.lo: src/items/impl/FunctionRefImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionRefImpl.lo -MD -MP -MF $(DEPDIR)/FunctionRefImpl.Tpo -c -o FunctionRefImpl.lo `test -f 'src/items/impl/FunctionRefImpl.cpp' || echo '$(srcdir)/'`src/items/impl/FunctionRefImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionRefImpl.Tpo $(DEPDIR)/FunctionRefImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/impl/FunctionRefImpl.cpp' object='FunctionRefImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionRefImpl.lo `test -f 'src/items/impl/FunctionRefImpl.cpp' || echo '$(srcdir)/'`src/items/impl/FunctionRefImpl.cpp DatatypeFactory.lo: src/items/DatatypeFactory.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT DatatypeFactory.lo -MD -MP -MF $(DEPDIR)/DatatypeFactory.Tpo -c -o DatatypeFactory.lo `test -f 'src/items/DatatypeFactory.cpp' || echo '$(srcdir)/'`src/items/DatatypeFactory.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/DatatypeFactory.Tpo $(DEPDIR)/DatatypeFactory.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/DatatypeFactory.cpp' object='DatatypeFactory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o DatatypeFactory.lo `test -f 'src/items/DatatypeFactory.cpp' || echo '$(srcdir)/'`src/items/DatatypeFactory.cpp DatatypeLookup.lo: src/items/DatatypeLookup.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT DatatypeLookup.lo -MD -MP -MF $(DEPDIR)/DatatypeLookup.Tpo -c -o DatatypeLookup.lo `test -f 'src/items/DatatypeLookup.cpp' || echo '$(srcdir)/'`src/items/DatatypeLookup.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/DatatypeLookup.Tpo $(DEPDIR)/DatatypeLookup.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/DatatypeLookup.cpp' object='DatatypeLookup.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o DatatypeLookup.lo `test -f 'src/items/DatatypeLookup.cpp' || echo '$(srcdir)/'`src/items/DatatypeLookup.cpp AnyAtomicType.lo: src/items/AnyAtomicType.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT AnyAtomicType.lo -MD -MP -MF $(DEPDIR)/AnyAtomicType.Tpo -c -o AnyAtomicType.lo `test -f 'src/items/AnyAtomicType.cpp' || echo '$(srcdir)/'`src/items/AnyAtomicType.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/AnyAtomicType.Tpo $(DEPDIR)/AnyAtomicType.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/AnyAtomicType.cpp' object='AnyAtomicType.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o AnyAtomicType.lo `test -f 'src/items/AnyAtomicType.cpp' || echo '$(srcdir)/'`src/items/AnyAtomicType.cpp ATDurationOrDerived.lo: src/items/ATDurationOrDerived.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATDurationOrDerived.lo -MD -MP -MF $(DEPDIR)/ATDurationOrDerived.Tpo -c -o ATDurationOrDerived.lo `test -f 'src/items/ATDurationOrDerived.cpp' || echo '$(srcdir)/'`src/items/ATDurationOrDerived.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATDurationOrDerived.Tpo $(DEPDIR)/ATDurationOrDerived.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/ATDurationOrDerived.cpp' object='ATDurationOrDerived.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATDurationOrDerived.lo `test -f 'src/items/ATDurationOrDerived.cpp' || echo '$(srcdir)/'`src/items/ATDurationOrDerived.cpp ATUntypedAtomic.lo: src/items/ATUntypedAtomic.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ATUntypedAtomic.lo -MD -MP -MF $(DEPDIR)/ATUntypedAtomic.Tpo -c -o ATUntypedAtomic.lo `test -f 'src/items/ATUntypedAtomic.cpp' || echo '$(srcdir)/'`src/items/ATUntypedAtomic.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ATUntypedAtomic.Tpo $(DEPDIR)/ATUntypedAtomic.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/ATUntypedAtomic.cpp' object='ATUntypedAtomic.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ATUntypedAtomic.lo `test -f 'src/items/ATUntypedAtomic.cpp' || echo '$(srcdir)/'`src/items/ATUntypedAtomic.cpp DateOrTimeType.lo: src/items/DateOrTimeType.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT DateOrTimeType.lo -MD -MP -MF $(DEPDIR)/DateOrTimeType.Tpo -c -o DateOrTimeType.lo `test -f 'src/items/DateOrTimeType.cpp' || echo '$(srcdir)/'`src/items/DateOrTimeType.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/DateOrTimeType.Tpo $(DEPDIR)/DateOrTimeType.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/DateOrTimeType.cpp' object='DateOrTimeType.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o DateOrTimeType.lo `test -f 'src/items/DateOrTimeType.cpp' || echo '$(srcdir)/'`src/items/DateOrTimeType.cpp Item.lo: src/items/Item.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Item.lo -MD -MP -MF $(DEPDIR)/Item.Tpo -c -o Item.lo `test -f 'src/items/Item.cpp' || echo '$(srcdir)/'`src/items/Item.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Item.Tpo $(DEPDIR)/Item.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/Item.cpp' object='Item.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Item.lo `test -f 'src/items/Item.cpp' || echo '$(srcdir)/'`src/items/Item.cpp Node.lo: src/items/Node.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Node.lo -MD -MP -MF $(DEPDIR)/Node.Tpo -c -o Node.lo `test -f 'src/items/Node.cpp' || echo '$(srcdir)/'`src/items/Node.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Node.Tpo $(DEPDIR)/Node.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/Node.cpp' object='Node.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Node.lo `test -f 'src/items/Node.cpp' || echo '$(srcdir)/'`src/items/Node.cpp Numeric.lo: src/items/Numeric.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Numeric.lo -MD -MP -MF $(DEPDIR)/Numeric.Tpo -c -o Numeric.lo `test -f 'src/items/Numeric.cpp' || echo '$(srcdir)/'`src/items/Numeric.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Numeric.Tpo $(DEPDIR)/Numeric.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/Numeric.cpp' object='Numeric.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Numeric.lo `test -f 'src/items/Numeric.cpp' || echo '$(srcdir)/'`src/items/Numeric.cpp Timezone.lo: src/items/Timezone.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Timezone.lo -MD -MP -MF $(DEPDIR)/Timezone.Tpo -c -o Timezone.lo `test -f 'src/items/Timezone.cpp' || echo '$(srcdir)/'`src/items/Timezone.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Timezone.Tpo $(DEPDIR)/Timezone.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/items/Timezone.cpp' object='Timezone.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Timezone.lo `test -f 'src/items/Timezone.cpp' || echo '$(srcdir)/'`src/items/Timezone.cpp QName.lo: src/parser/QName.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT QName.lo -MD -MP -MF $(DEPDIR)/QName.Tpo -c -o QName.lo `test -f 'src/parser/QName.cpp' || echo '$(srcdir)/'`src/parser/QName.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/QName.Tpo $(DEPDIR)/QName.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/parser/QName.cpp' object='QName.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o QName.lo `test -f 'src/parser/QName.cpp' || echo '$(srcdir)/'`src/parser/QName.cpp XQParser.lo: src/parser/XQParser.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQParser.lo -MD -MP -MF $(DEPDIR)/XQParser.Tpo -c -o XQParser.lo `test -f 'src/parser/XQParser.cpp' || echo '$(srcdir)/'`src/parser/XQParser.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQParser.Tpo $(DEPDIR)/XQParser.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/parser/XQParser.cpp' object='XQParser.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQParser.lo `test -f 'src/parser/XQParser.cpp' || echo '$(srcdir)/'`src/parser/XQParser.cpp XQLexer.lo: src/lexer/XQLexer.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQLexer.lo -MD -MP -MF $(DEPDIR)/XQLexer.Tpo -c -o XQLexer.lo `test -f 'src/lexer/XQLexer.cpp' || echo '$(srcdir)/'`src/lexer/XQLexer.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQLexer.Tpo $(DEPDIR)/XQLexer.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/lexer/XQLexer.cpp' object='XQLexer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQLexer.lo `test -f 'src/lexer/XQLexer.cpp' || echo '$(srcdir)/'`src/lexer/XQLexer.cpp XQLexer2.lo: src/lexer/XQLexer2.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQLexer2.lo -MD -MP -MF $(DEPDIR)/XQLexer2.Tpo -c -o XQLexer2.lo `test -f 'src/lexer/XQLexer2.cpp' || echo '$(srcdir)/'`src/lexer/XQLexer2.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQLexer2.Tpo $(DEPDIR)/XQLexer2.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/lexer/XQLexer2.cpp' object='XQLexer2.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQLexer2.lo `test -f 'src/lexer/XQLexer2.cpp' || echo '$(srcdir)/'`src/lexer/XQLexer2.cpp XSLT2Lexer.lo: src/lexer/XSLT2Lexer.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XSLT2Lexer.lo -MD -MP -MF $(DEPDIR)/XSLT2Lexer.Tpo -c -o XSLT2Lexer.lo `test -f 'src/lexer/XSLT2Lexer.cpp' || echo '$(srcdir)/'`src/lexer/XSLT2Lexer.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XSLT2Lexer.Tpo $(DEPDIR)/XSLT2Lexer.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/lexer/XSLT2Lexer.cpp' object='XSLT2Lexer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XSLT2Lexer.lo `test -f 'src/lexer/XSLT2Lexer.cpp' || echo '$(srcdir)/'`src/lexer/XSLT2Lexer.cpp m_apm.lo: src/mapm/m_apm.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT m_apm.lo -MD -MP -MF $(DEPDIR)/m_apm.Tpo -c -o m_apm.lo `test -f 'src/mapm/m_apm.cpp' || echo '$(srcdir)/'`src/mapm/m_apm.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/m_apm.Tpo $(DEPDIR)/m_apm.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/mapm/m_apm.cpp' object='m_apm.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o m_apm.lo `test -f 'src/mapm/m_apm.cpp' || echo '$(srcdir)/'`src/mapm/m_apm.cpp mapm_mt.lo: src/mapm/mapm_mt.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT mapm_mt.lo -MD -MP -MF $(DEPDIR)/mapm_mt.Tpo -c -o mapm_mt.lo `test -f 'src/mapm/mapm_mt.cpp' || echo '$(srcdir)/'`src/mapm/mapm_mt.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/mapm_mt.Tpo $(DEPDIR)/mapm_mt.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/mapm/mapm_mt.cpp' object='mapm_mt.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o mapm_mt.lo `test -f 'src/mapm/mapm_mt.cpp' || echo '$(srcdir)/'`src/mapm/mapm_mt.cpp NodeTest.lo: src/axis/NodeTest.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT NodeTest.lo -MD -MP -MF $(DEPDIR)/NodeTest.Tpo -c -o NodeTest.lo `test -f 'src/axis/NodeTest.cpp' || echo '$(srcdir)/'`src/axis/NodeTest.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/NodeTest.Tpo $(DEPDIR)/NodeTest.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/axis/NodeTest.cpp' object='NodeTest.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o NodeTest.lo `test -f 'src/axis/NodeTest.cpp' || echo '$(srcdir)/'`src/axis/NodeTest.cpp And.lo: src/operators/And.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT And.lo -MD -MP -MF $(DEPDIR)/And.Tpo -c -o And.lo `test -f 'src/operators/And.cpp' || echo '$(srcdir)/'`src/operators/And.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/And.Tpo $(DEPDIR)/And.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/And.cpp' object='And.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o And.lo `test -f 'src/operators/And.cpp' || echo '$(srcdir)/'`src/operators/And.cpp ArithmeticOperator.lo: src/operators/ArithmeticOperator.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ArithmeticOperator.lo -MD -MP -MF $(DEPDIR)/ArithmeticOperator.Tpo -c -o ArithmeticOperator.lo `test -f 'src/operators/ArithmeticOperator.cpp' || echo '$(srcdir)/'`src/operators/ArithmeticOperator.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ArithmeticOperator.Tpo $(DEPDIR)/ArithmeticOperator.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/ArithmeticOperator.cpp' object='ArithmeticOperator.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ArithmeticOperator.lo `test -f 'src/operators/ArithmeticOperator.cpp' || echo '$(srcdir)/'`src/operators/ArithmeticOperator.cpp ComparisonOperator.lo: src/operators/ComparisonOperator.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ComparisonOperator.lo -MD -MP -MF $(DEPDIR)/ComparisonOperator.Tpo -c -o ComparisonOperator.lo `test -f 'src/operators/ComparisonOperator.cpp' || echo '$(srcdir)/'`src/operators/ComparisonOperator.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ComparisonOperator.Tpo $(DEPDIR)/ComparisonOperator.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/ComparisonOperator.cpp' object='ComparisonOperator.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ComparisonOperator.lo `test -f 'src/operators/ComparisonOperator.cpp' || echo '$(srcdir)/'`src/operators/ComparisonOperator.cpp Divide.lo: src/operators/Divide.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Divide.lo -MD -MP -MF $(DEPDIR)/Divide.Tpo -c -o Divide.lo `test -f 'src/operators/Divide.cpp' || echo '$(srcdir)/'`src/operators/Divide.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Divide.Tpo $(DEPDIR)/Divide.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/Divide.cpp' object='Divide.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Divide.lo `test -f 'src/operators/Divide.cpp' || echo '$(srcdir)/'`src/operators/Divide.cpp Equals.lo: src/operators/Equals.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Equals.lo -MD -MP -MF $(DEPDIR)/Equals.Tpo -c -o Equals.lo `test -f 'src/operators/Equals.cpp' || echo '$(srcdir)/'`src/operators/Equals.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Equals.Tpo $(DEPDIR)/Equals.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/Equals.cpp' object='Equals.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Equals.lo `test -f 'src/operators/Equals.cpp' || echo '$(srcdir)/'`src/operators/Equals.cpp Except.lo: src/operators/Except.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Except.lo -MD -MP -MF $(DEPDIR)/Except.Tpo -c -o Except.lo `test -f 'src/operators/Except.cpp' || echo '$(srcdir)/'`src/operators/Except.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Except.Tpo $(DEPDIR)/Except.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/Except.cpp' object='Except.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Except.lo `test -f 'src/operators/Except.cpp' || echo '$(srcdir)/'`src/operators/Except.cpp GeneralComp.lo: src/operators/GeneralComp.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GeneralComp.lo -MD -MP -MF $(DEPDIR)/GeneralComp.Tpo -c -o GeneralComp.lo `test -f 'src/operators/GeneralComp.cpp' || echo '$(srcdir)/'`src/operators/GeneralComp.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/GeneralComp.Tpo $(DEPDIR)/GeneralComp.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/GeneralComp.cpp' object='GeneralComp.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GeneralComp.lo `test -f 'src/operators/GeneralComp.cpp' || echo '$(srcdir)/'`src/operators/GeneralComp.cpp GreaterThan.lo: src/operators/GreaterThan.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GreaterThan.lo -MD -MP -MF $(DEPDIR)/GreaterThan.Tpo -c -o GreaterThan.lo `test -f 'src/operators/GreaterThan.cpp' || echo '$(srcdir)/'`src/operators/GreaterThan.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/GreaterThan.Tpo $(DEPDIR)/GreaterThan.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/GreaterThan.cpp' object='GreaterThan.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GreaterThan.lo `test -f 'src/operators/GreaterThan.cpp' || echo '$(srcdir)/'`src/operators/GreaterThan.cpp GreaterThanEqual.lo: src/operators/GreaterThanEqual.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT GreaterThanEqual.lo -MD -MP -MF $(DEPDIR)/GreaterThanEqual.Tpo -c -o GreaterThanEqual.lo `test -f 'src/operators/GreaterThanEqual.cpp' || echo '$(srcdir)/'`src/operators/GreaterThanEqual.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/GreaterThanEqual.Tpo $(DEPDIR)/GreaterThanEqual.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/GreaterThanEqual.cpp' object='GreaterThanEqual.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o GreaterThanEqual.lo `test -f 'src/operators/GreaterThanEqual.cpp' || echo '$(srcdir)/'`src/operators/GreaterThanEqual.cpp IntegerDivide.lo: src/operators/IntegerDivide.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT IntegerDivide.lo -MD -MP -MF $(DEPDIR)/IntegerDivide.Tpo -c -o IntegerDivide.lo `test -f 'src/operators/IntegerDivide.cpp' || echo '$(srcdir)/'`src/operators/IntegerDivide.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/IntegerDivide.Tpo $(DEPDIR)/IntegerDivide.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/IntegerDivide.cpp' object='IntegerDivide.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o IntegerDivide.lo `test -f 'src/operators/IntegerDivide.cpp' || echo '$(srcdir)/'`src/operators/IntegerDivide.cpp Intersect.lo: src/operators/Intersect.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Intersect.lo -MD -MP -MF $(DEPDIR)/Intersect.Tpo -c -o Intersect.lo `test -f 'src/operators/Intersect.cpp' || echo '$(srcdir)/'`src/operators/Intersect.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Intersect.Tpo $(DEPDIR)/Intersect.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/Intersect.cpp' object='Intersect.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Intersect.lo `test -f 'src/operators/Intersect.cpp' || echo '$(srcdir)/'`src/operators/Intersect.cpp LessThan.lo: src/operators/LessThan.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT LessThan.lo -MD -MP -MF $(DEPDIR)/LessThan.Tpo -c -o LessThan.lo `test -f 'src/operators/LessThan.cpp' || echo '$(srcdir)/'`src/operators/LessThan.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/LessThan.Tpo $(DEPDIR)/LessThan.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/LessThan.cpp' object='LessThan.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o LessThan.lo `test -f 'src/operators/LessThan.cpp' || echo '$(srcdir)/'`src/operators/LessThan.cpp LessThanEqual.lo: src/operators/LessThanEqual.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT LessThanEqual.lo -MD -MP -MF $(DEPDIR)/LessThanEqual.Tpo -c -o LessThanEqual.lo `test -f 'src/operators/LessThanEqual.cpp' || echo '$(srcdir)/'`src/operators/LessThanEqual.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/LessThanEqual.Tpo $(DEPDIR)/LessThanEqual.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/LessThanEqual.cpp' object='LessThanEqual.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o LessThanEqual.lo `test -f 'src/operators/LessThanEqual.cpp' || echo '$(srcdir)/'`src/operators/LessThanEqual.cpp Minus.lo: src/operators/Minus.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Minus.lo -MD -MP -MF $(DEPDIR)/Minus.Tpo -c -o Minus.lo `test -f 'src/operators/Minus.cpp' || echo '$(srcdir)/'`src/operators/Minus.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Minus.Tpo $(DEPDIR)/Minus.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/Minus.cpp' object='Minus.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Minus.lo `test -f 'src/operators/Minus.cpp' || echo '$(srcdir)/'`src/operators/Minus.cpp Mod.lo: src/operators/Mod.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Mod.lo -MD -MP -MF $(DEPDIR)/Mod.Tpo -c -o Mod.lo `test -f 'src/operators/Mod.cpp' || echo '$(srcdir)/'`src/operators/Mod.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Mod.Tpo $(DEPDIR)/Mod.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/Mod.cpp' object='Mod.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Mod.lo `test -f 'src/operators/Mod.cpp' || echo '$(srcdir)/'`src/operators/Mod.cpp Multiply.lo: src/operators/Multiply.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Multiply.lo -MD -MP -MF $(DEPDIR)/Multiply.Tpo -c -o Multiply.lo `test -f 'src/operators/Multiply.cpp' || echo '$(srcdir)/'`src/operators/Multiply.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Multiply.Tpo $(DEPDIR)/Multiply.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/Multiply.cpp' object='Multiply.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Multiply.lo `test -f 'src/operators/Multiply.cpp' || echo '$(srcdir)/'`src/operators/Multiply.cpp NodeComparison.lo: src/operators/NodeComparison.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT NodeComparison.lo -MD -MP -MF $(DEPDIR)/NodeComparison.Tpo -c -o NodeComparison.lo `test -f 'src/operators/NodeComparison.cpp' || echo '$(srcdir)/'`src/operators/NodeComparison.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/NodeComparison.Tpo $(DEPDIR)/NodeComparison.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/NodeComparison.cpp' object='NodeComparison.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o NodeComparison.lo `test -f 'src/operators/NodeComparison.cpp' || echo '$(srcdir)/'`src/operators/NodeComparison.cpp NotEquals.lo: src/operators/NotEquals.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT NotEquals.lo -MD -MP -MF $(DEPDIR)/NotEquals.Tpo -c -o NotEquals.lo `test -f 'src/operators/NotEquals.cpp' || echo '$(srcdir)/'`src/operators/NotEquals.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/NotEquals.Tpo $(DEPDIR)/NotEquals.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/NotEquals.cpp' object='NotEquals.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o NotEquals.lo `test -f 'src/operators/NotEquals.cpp' || echo '$(srcdir)/'`src/operators/NotEquals.cpp Or.lo: src/operators/Or.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Or.lo -MD -MP -MF $(DEPDIR)/Or.Tpo -c -o Or.lo `test -f 'src/operators/Or.cpp' || echo '$(srcdir)/'`src/operators/Or.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Or.Tpo $(DEPDIR)/Or.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/Or.cpp' object='Or.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Or.lo `test -f 'src/operators/Or.cpp' || echo '$(srcdir)/'`src/operators/Or.cpp OrderComparison.lo: src/operators/OrderComparison.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT OrderComparison.lo -MD -MP -MF $(DEPDIR)/OrderComparison.Tpo -c -o OrderComparison.lo `test -f 'src/operators/OrderComparison.cpp' || echo '$(srcdir)/'`src/operators/OrderComparison.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/OrderComparison.Tpo $(DEPDIR)/OrderComparison.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/OrderComparison.cpp' object='OrderComparison.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o OrderComparison.lo `test -f 'src/operators/OrderComparison.cpp' || echo '$(srcdir)/'`src/operators/OrderComparison.cpp Plus.lo: src/operators/Plus.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Plus.lo -MD -MP -MF $(DEPDIR)/Plus.Tpo -c -o Plus.lo `test -f 'src/operators/Plus.cpp' || echo '$(srcdir)/'`src/operators/Plus.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Plus.Tpo $(DEPDIR)/Plus.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/Plus.cpp' object='Plus.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Plus.lo `test -f 'src/operators/Plus.cpp' || echo '$(srcdir)/'`src/operators/Plus.cpp UnaryMinus.lo: src/operators/UnaryMinus.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT UnaryMinus.lo -MD -MP -MF $(DEPDIR)/UnaryMinus.Tpo -c -o UnaryMinus.lo `test -f 'src/operators/UnaryMinus.cpp' || echo '$(srcdir)/'`src/operators/UnaryMinus.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/UnaryMinus.Tpo $(DEPDIR)/UnaryMinus.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/UnaryMinus.cpp' object='UnaryMinus.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o UnaryMinus.lo `test -f 'src/operators/UnaryMinus.cpp' || echo '$(srcdir)/'`src/operators/UnaryMinus.cpp Union.lo: src/operators/Union.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Union.lo -MD -MP -MF $(DEPDIR)/Union.Tpo -c -o Union.lo `test -f 'src/operators/Union.cpp' || echo '$(srcdir)/'`src/operators/Union.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Union.Tpo $(DEPDIR)/Union.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/operators/Union.cpp' object='Union.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Union.lo `test -f 'src/operators/Union.cpp' || echo '$(srcdir)/'`src/operators/Union.cpp DocumentCacheImpl.lo: src/schema/DocumentCacheImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT DocumentCacheImpl.lo -MD -MP -MF $(DEPDIR)/DocumentCacheImpl.Tpo -c -o DocumentCacheImpl.lo `test -f 'src/schema/DocumentCacheImpl.cpp' || echo '$(srcdir)/'`src/schema/DocumentCacheImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/DocumentCacheImpl.Tpo $(DEPDIR)/DocumentCacheImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/schema/DocumentCacheImpl.cpp' object='DocumentCacheImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o DocumentCacheImpl.lo `test -f 'src/schema/DocumentCacheImpl.cpp' || echo '$(srcdir)/'`src/schema/DocumentCacheImpl.cpp SequenceType.lo: src/schema/SequenceType.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT SequenceType.lo -MD -MP -MF $(DEPDIR)/SequenceType.Tpo -c -o SequenceType.lo `test -f 'src/schema/SequenceType.cpp' || echo '$(srcdir)/'`src/schema/SequenceType.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SequenceType.Tpo $(DEPDIR)/SequenceType.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/schema/SequenceType.cpp' object='SequenceType.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o SequenceType.lo `test -f 'src/schema/SequenceType.cpp' || echo '$(srcdir)/'`src/schema/SequenceType.cpp AnyAtomicTypeDatatypeValidator.lo: src/schema/AnyAtomicTypeDatatypeValidator.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT AnyAtomicTypeDatatypeValidator.lo -MD -MP -MF $(DEPDIR)/AnyAtomicTypeDatatypeValidator.Tpo -c -o AnyAtomicTypeDatatypeValidator.lo `test -f 'src/schema/AnyAtomicTypeDatatypeValidator.cpp' || echo '$(srcdir)/'`src/schema/AnyAtomicTypeDatatypeValidator.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/AnyAtomicTypeDatatypeValidator.Tpo $(DEPDIR)/AnyAtomicTypeDatatypeValidator.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/schema/AnyAtomicTypeDatatypeValidator.cpp' object='AnyAtomicTypeDatatypeValidator.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o AnyAtomicTypeDatatypeValidator.lo `test -f 'src/schema/AnyAtomicTypeDatatypeValidator.cpp' || echo '$(srcdir)/'`src/schema/AnyAtomicTypeDatatypeValidator.cpp SchemaValidatorFilter.lo: src/schema/SchemaValidatorFilter.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT SchemaValidatorFilter.lo -MD -MP -MF $(DEPDIR)/SchemaValidatorFilter.Tpo -c -o SchemaValidatorFilter.lo `test -f 'src/schema/SchemaValidatorFilter.cpp' || echo '$(srcdir)/'`src/schema/SchemaValidatorFilter.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SchemaValidatorFilter.Tpo $(DEPDIR)/SchemaValidatorFilter.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/schema/SchemaValidatorFilter.cpp' object='SchemaValidatorFilter.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o SchemaValidatorFilter.lo `test -f 'src/schema/SchemaValidatorFilter.cpp' || echo '$(srcdir)/'`src/schema/SchemaValidatorFilter.cpp FaxppDocumentCacheImpl.lo: src/schema/FaxppDocumentCacheImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FaxppDocumentCacheImpl.lo -MD -MP -MF $(DEPDIR)/FaxppDocumentCacheImpl.Tpo -c -o FaxppDocumentCacheImpl.lo `test -f 'src/schema/FaxppDocumentCacheImpl.cpp' || echo '$(srcdir)/'`src/schema/FaxppDocumentCacheImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FaxppDocumentCacheImpl.Tpo $(DEPDIR)/FaxppDocumentCacheImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/schema/FaxppDocumentCacheImpl.cpp' object='FaxppDocumentCacheImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FaxppDocumentCacheImpl.lo `test -f 'src/schema/FaxppDocumentCacheImpl.cpp' || echo '$(srcdir)/'`src/schema/FaxppDocumentCacheImpl.cpp ClosureResult.lo: src/runtime/ClosureResult.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ClosureResult.lo -MD -MP -MF $(DEPDIR)/ClosureResult.Tpo -c -o ClosureResult.lo `test -f 'src/runtime/ClosureResult.cpp' || echo '$(srcdir)/'`src/runtime/ClosureResult.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ClosureResult.Tpo $(DEPDIR)/ClosureResult.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/runtime/ClosureResult.cpp' object='ClosureResult.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ClosureResult.lo `test -f 'src/runtime/ClosureResult.cpp' || echo '$(srcdir)/'`src/runtime/ClosureResult.cpp EmptyResult.lo: src/runtime/EmptyResult.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT EmptyResult.lo -MD -MP -MF $(DEPDIR)/EmptyResult.Tpo -c -o EmptyResult.lo `test -f 'src/runtime/EmptyResult.cpp' || echo '$(srcdir)/'`src/runtime/EmptyResult.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/EmptyResult.Tpo $(DEPDIR)/EmptyResult.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/runtime/EmptyResult.cpp' object='EmptyResult.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o EmptyResult.lo `test -f 'src/runtime/EmptyResult.cpp' || echo '$(srcdir)/'`src/runtime/EmptyResult.cpp ResultBuffer.lo: src/runtime/ResultBuffer.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ResultBuffer.lo -MD -MP -MF $(DEPDIR)/ResultBuffer.Tpo -c -o ResultBuffer.lo `test -f 'src/runtime/ResultBuffer.cpp' || echo '$(srcdir)/'`src/runtime/ResultBuffer.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ResultBuffer.Tpo $(DEPDIR)/ResultBuffer.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/runtime/ResultBuffer.cpp' object='ResultBuffer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ResultBuffer.lo `test -f 'src/runtime/ResultBuffer.cpp' || echo '$(srcdir)/'`src/runtime/ResultBuffer.cpp ResultBufferImpl.lo: src/runtime/ResultBufferImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ResultBufferImpl.lo -MD -MP -MF $(DEPDIR)/ResultBufferImpl.Tpo -c -o ResultBufferImpl.lo `test -f 'src/runtime/ResultBufferImpl.cpp' || echo '$(srcdir)/'`src/runtime/ResultBufferImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ResultBufferImpl.Tpo $(DEPDIR)/ResultBufferImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/runtime/ResultBufferImpl.cpp' object='ResultBufferImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ResultBufferImpl.lo `test -f 'src/runtime/ResultBufferImpl.cpp' || echo '$(srcdir)/'`src/runtime/ResultBufferImpl.cpp Result.lo: src/runtime/Result.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Result.lo -MD -MP -MF $(DEPDIR)/Result.Tpo -c -o Result.lo `test -f 'src/runtime/Result.cpp' || echo '$(srcdir)/'`src/runtime/Result.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Result.Tpo $(DEPDIR)/Result.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/runtime/Result.cpp' object='Result.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Result.lo `test -f 'src/runtime/Result.cpp' || echo '$(srcdir)/'`src/runtime/Result.cpp ResultImpl.lo: src/runtime/ResultImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ResultImpl.lo -MD -MP -MF $(DEPDIR)/ResultImpl.Tpo -c -o ResultImpl.lo `test -f 'src/runtime/ResultImpl.cpp' || echo '$(srcdir)/'`src/runtime/ResultImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ResultImpl.Tpo $(DEPDIR)/ResultImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/runtime/ResultImpl.cpp' object='ResultImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ResultImpl.lo `test -f 'src/runtime/ResultImpl.cpp' || echo '$(srcdir)/'`src/runtime/ResultImpl.cpp SequenceResult.lo: src/runtime/SequenceResult.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT SequenceResult.lo -MD -MP -MF $(DEPDIR)/SequenceResult.Tpo -c -o SequenceResult.lo `test -f 'src/runtime/SequenceResult.cpp' || echo '$(srcdir)/'`src/runtime/SequenceResult.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/SequenceResult.Tpo $(DEPDIR)/SequenceResult.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/runtime/SequenceResult.cpp' object='SequenceResult.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o SequenceResult.lo `test -f 'src/runtime/SequenceResult.cpp' || echo '$(srcdir)/'`src/runtime/SequenceResult.cpp Sequence.lo: src/runtime/Sequence.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Sequence.lo -MD -MP -MF $(DEPDIR)/Sequence.Tpo -c -o Sequence.lo `test -f 'src/runtime/Sequence.cpp' || echo '$(srcdir)/'`src/runtime/Sequence.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Sequence.Tpo $(DEPDIR)/Sequence.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/runtime/Sequence.cpp' object='Sequence.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Sequence.lo `test -f 'src/runtime/Sequence.cpp' || echo '$(srcdir)/'`src/runtime/Sequence.cpp FunctionPut.lo: src/update/FunctionPut.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FunctionPut.lo -MD -MP -MF $(DEPDIR)/FunctionPut.Tpo -c -o FunctionPut.lo `test -f 'src/update/FunctionPut.cpp' || echo '$(srcdir)/'`src/update/FunctionPut.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FunctionPut.Tpo $(DEPDIR)/FunctionPut.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/update/FunctionPut.cpp' object='FunctionPut.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FunctionPut.lo `test -f 'src/update/FunctionPut.cpp' || echo '$(srcdir)/'`src/update/FunctionPut.cpp PendingUpdateList.lo: src/update/PendingUpdateList.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT PendingUpdateList.lo -MD -MP -MF $(DEPDIR)/PendingUpdateList.Tpo -c -o PendingUpdateList.lo `test -f 'src/update/PendingUpdateList.cpp' || echo '$(srcdir)/'`src/update/PendingUpdateList.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/PendingUpdateList.Tpo $(DEPDIR)/PendingUpdateList.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/update/PendingUpdateList.cpp' object='PendingUpdateList.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o PendingUpdateList.lo `test -f 'src/update/PendingUpdateList.cpp' || echo '$(srcdir)/'`src/update/PendingUpdateList.cpp UApplyUpdates.lo: src/update/UApplyUpdates.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT UApplyUpdates.lo -MD -MP -MF $(DEPDIR)/UApplyUpdates.Tpo -c -o UApplyUpdates.lo `test -f 'src/update/UApplyUpdates.cpp' || echo '$(srcdir)/'`src/update/UApplyUpdates.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/UApplyUpdates.Tpo $(DEPDIR)/UApplyUpdates.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/update/UApplyUpdates.cpp' object='UApplyUpdates.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o UApplyUpdates.lo `test -f 'src/update/UApplyUpdates.cpp' || echo '$(srcdir)/'`src/update/UApplyUpdates.cpp UDelete.lo: src/update/UDelete.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT UDelete.lo -MD -MP -MF $(DEPDIR)/UDelete.Tpo -c -o UDelete.lo `test -f 'src/update/UDelete.cpp' || echo '$(srcdir)/'`src/update/UDelete.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/UDelete.Tpo $(DEPDIR)/UDelete.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/update/UDelete.cpp' object='UDelete.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o UDelete.lo `test -f 'src/update/UDelete.cpp' || echo '$(srcdir)/'`src/update/UDelete.cpp URename.lo: src/update/URename.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT URename.lo -MD -MP -MF $(DEPDIR)/URename.Tpo -c -o URename.lo `test -f 'src/update/URename.cpp' || echo '$(srcdir)/'`src/update/URename.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/URename.Tpo $(DEPDIR)/URename.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/update/URename.cpp' object='URename.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o URename.lo `test -f 'src/update/URename.cpp' || echo '$(srcdir)/'`src/update/URename.cpp UReplace.lo: src/update/UReplace.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT UReplace.lo -MD -MP -MF $(DEPDIR)/UReplace.Tpo -c -o UReplace.lo `test -f 'src/update/UReplace.cpp' || echo '$(srcdir)/'`src/update/UReplace.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/UReplace.Tpo $(DEPDIR)/UReplace.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/update/UReplace.cpp' object='UReplace.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o UReplace.lo `test -f 'src/update/UReplace.cpp' || echo '$(srcdir)/'`src/update/UReplace.cpp UReplaceValueOf.lo: src/update/UReplaceValueOf.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT UReplaceValueOf.lo -MD -MP -MF $(DEPDIR)/UReplaceValueOf.Tpo -c -o UReplaceValueOf.lo `test -f 'src/update/UReplaceValueOf.cpp' || echo '$(srcdir)/'`src/update/UReplaceValueOf.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/UReplaceValueOf.Tpo $(DEPDIR)/UReplaceValueOf.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/update/UReplaceValueOf.cpp' object='UReplaceValueOf.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o UReplaceValueOf.lo `test -f 'src/update/UReplaceValueOf.cpp' || echo '$(srcdir)/'`src/update/UReplaceValueOf.cpp UInsertAsFirst.lo: src/update/UInsertAsFirst.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT UInsertAsFirst.lo -MD -MP -MF $(DEPDIR)/UInsertAsFirst.Tpo -c -o UInsertAsFirst.lo `test -f 'src/update/UInsertAsFirst.cpp' || echo '$(srcdir)/'`src/update/UInsertAsFirst.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/UInsertAsFirst.Tpo $(DEPDIR)/UInsertAsFirst.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/update/UInsertAsFirst.cpp' object='UInsertAsFirst.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o UInsertAsFirst.lo `test -f 'src/update/UInsertAsFirst.cpp' || echo '$(srcdir)/'`src/update/UInsertAsFirst.cpp UInsertAsLast.lo: src/update/UInsertAsLast.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT UInsertAsLast.lo -MD -MP -MF $(DEPDIR)/UInsertAsLast.Tpo -c -o UInsertAsLast.lo `test -f 'src/update/UInsertAsLast.cpp' || echo '$(srcdir)/'`src/update/UInsertAsLast.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/UInsertAsLast.Tpo $(DEPDIR)/UInsertAsLast.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/update/UInsertAsLast.cpp' object='UInsertAsLast.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o UInsertAsLast.lo `test -f 'src/update/UInsertAsLast.cpp' || echo '$(srcdir)/'`src/update/UInsertAsLast.cpp UInsertInto.lo: src/update/UInsertInto.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT UInsertInto.lo -MD -MP -MF $(DEPDIR)/UInsertInto.Tpo -c -o UInsertInto.lo `test -f 'src/update/UInsertInto.cpp' || echo '$(srcdir)/'`src/update/UInsertInto.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/UInsertInto.Tpo $(DEPDIR)/UInsertInto.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/update/UInsertInto.cpp' object='UInsertInto.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o UInsertInto.lo `test -f 'src/update/UInsertInto.cpp' || echo '$(srcdir)/'`src/update/UInsertInto.cpp UInsertAfter.lo: src/update/UInsertAfter.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT UInsertAfter.lo -MD -MP -MF $(DEPDIR)/UInsertAfter.Tpo -c -o UInsertAfter.lo `test -f 'src/update/UInsertAfter.cpp' || echo '$(srcdir)/'`src/update/UInsertAfter.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/UInsertAfter.Tpo $(DEPDIR)/UInsertAfter.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/update/UInsertAfter.cpp' object='UInsertAfter.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o UInsertAfter.lo `test -f 'src/update/UInsertAfter.cpp' || echo '$(srcdir)/'`src/update/UInsertAfter.cpp UInsertBefore.lo: src/update/UInsertBefore.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT UInsertBefore.lo -MD -MP -MF $(DEPDIR)/UInsertBefore.Tpo -c -o UInsertBefore.lo `test -f 'src/update/UInsertBefore.cpp' || echo '$(srcdir)/'`src/update/UInsertBefore.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/UInsertBefore.Tpo $(DEPDIR)/UInsertBefore.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/update/UInsertBefore.cpp' object='UInsertBefore.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o UInsertBefore.lo `test -f 'src/update/UInsertBefore.cpp' || echo '$(srcdir)/'`src/update/UInsertBefore.cpp UTransform.lo: src/update/UTransform.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT UTransform.lo -MD -MP -MF $(DEPDIR)/UTransform.Tpo -c -o UTransform.lo `test -f 'src/update/UTransform.cpp' || echo '$(srcdir)/'`src/update/UTransform.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/UTransform.Tpo $(DEPDIR)/UTransform.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/update/UTransform.cpp' object='UTransform.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o UTransform.lo `test -f 'src/update/UTransform.cpp' || echo '$(srcdir)/'`src/update/UTransform.cpp TestSuiteParser.lo: src/xqts/TestSuiteParser.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT TestSuiteParser.lo -MD -MP -MF $(DEPDIR)/TestSuiteParser.Tpo -c -o TestSuiteParser.lo `test -f 'src/xqts/TestSuiteParser.cpp' || echo '$(srcdir)/'`src/xqts/TestSuiteParser.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/TestSuiteParser.Tpo $(DEPDIR)/TestSuiteParser.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xqts/TestSuiteParser.cpp' object='TestSuiteParser.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o TestSuiteParser.lo `test -f 'src/xqts/TestSuiteParser.cpp' || echo '$(srcdir)/'`src/xqts/TestSuiteParser.cpp TestSuiteResultListener.lo: src/xqts/TestSuiteResultListener.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT TestSuiteResultListener.lo -MD -MP -MF $(DEPDIR)/TestSuiteResultListener.Tpo -c -o TestSuiteResultListener.lo `test -f 'src/xqts/TestSuiteResultListener.cpp' || echo '$(srcdir)/'`src/xqts/TestSuiteResultListener.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/TestSuiteResultListener.Tpo $(DEPDIR)/TestSuiteResultListener.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xqts/TestSuiteResultListener.cpp' object='TestSuiteResultListener.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o TestSuiteResultListener.lo `test -f 'src/xqts/TestSuiteResultListener.cpp' || echo '$(srcdir)/'`src/xqts/TestSuiteResultListener.cpp TestSuiteRunner.lo: src/xqts/TestSuiteRunner.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT TestSuiteRunner.lo -MD -MP -MF $(DEPDIR)/TestSuiteRunner.Tpo -c -o TestSuiteRunner.lo `test -f 'src/xqts/TestSuiteRunner.cpp' || echo '$(srcdir)/'`src/xqts/TestSuiteRunner.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/TestSuiteRunner.Tpo $(DEPDIR)/TestSuiteRunner.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xqts/TestSuiteRunner.cpp' object='TestSuiteRunner.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o TestSuiteRunner.lo `test -f 'src/xqts/TestSuiteRunner.cpp' || echo '$(srcdir)/'`src/xqts/TestSuiteRunner.cpp FastXDMUpdateFactory.lo: src/fastxdm/FastXDMUpdateFactory.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FastXDMUpdateFactory.lo -MD -MP -MF $(DEPDIR)/FastXDMUpdateFactory.Tpo -c -o FastXDMUpdateFactory.lo `test -f 'src/fastxdm/FastXDMUpdateFactory.cpp' || echo '$(srcdir)/'`src/fastxdm/FastXDMUpdateFactory.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FastXDMUpdateFactory.Tpo $(DEPDIR)/FastXDMUpdateFactory.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/fastxdm/FastXDMUpdateFactory.cpp' object='FastXDMUpdateFactory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FastXDMUpdateFactory.lo `test -f 'src/fastxdm/FastXDMUpdateFactory.cpp' || echo '$(srcdir)/'`src/fastxdm/FastXDMUpdateFactory.cpp FastXDMDocument.lo: src/fastxdm/FastXDMDocument.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FastXDMDocument.lo -MD -MP -MF $(DEPDIR)/FastXDMDocument.Tpo -c -o FastXDMDocument.lo `test -f 'src/fastxdm/FastXDMDocument.cpp' || echo '$(srcdir)/'`src/fastxdm/FastXDMDocument.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FastXDMDocument.Tpo $(DEPDIR)/FastXDMDocument.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/fastxdm/FastXDMDocument.cpp' object='FastXDMDocument.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FastXDMDocument.lo `test -f 'src/fastxdm/FastXDMDocument.cpp' || echo '$(srcdir)/'`src/fastxdm/FastXDMDocument.cpp FastXDMNodeImpl.lo: src/fastxdm/FastXDMNodeImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FastXDMNodeImpl.lo -MD -MP -MF $(DEPDIR)/FastXDMNodeImpl.Tpo -c -o FastXDMNodeImpl.lo `test -f 'src/fastxdm/FastXDMNodeImpl.cpp' || echo '$(srcdir)/'`src/fastxdm/FastXDMNodeImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FastXDMNodeImpl.Tpo $(DEPDIR)/FastXDMNodeImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/fastxdm/FastXDMNodeImpl.cpp' object='FastXDMNodeImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FastXDMNodeImpl.lo `test -f 'src/fastxdm/FastXDMNodeImpl.cpp' || echo '$(srcdir)/'`src/fastxdm/FastXDMNodeImpl.cpp FastXDMConfiguration.lo: src/fastxdm/FastXDMConfiguration.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FastXDMConfiguration.lo -MD -MP -MF $(DEPDIR)/FastXDMConfiguration.Tpo -c -o FastXDMConfiguration.lo `test -f 'src/fastxdm/FastXDMConfiguration.cpp' || echo '$(srcdir)/'`src/fastxdm/FastXDMConfiguration.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FastXDMConfiguration.Tpo $(DEPDIR)/FastXDMConfiguration.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/fastxdm/FastXDMConfiguration.cpp' object='FastXDMConfiguration.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FastXDMConfiguration.lo `test -f 'src/fastxdm/FastXDMConfiguration.cpp' || echo '$(srcdir)/'`src/fastxdm/FastXDMConfiguration.cpp FastXDMSequenceBuilder.lo: src/fastxdm/FastXDMSequenceBuilder.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FastXDMSequenceBuilder.lo -MD -MP -MF $(DEPDIR)/FastXDMSequenceBuilder.Tpo -c -o FastXDMSequenceBuilder.lo `test -f 'src/fastxdm/FastXDMSequenceBuilder.cpp' || echo '$(srcdir)/'`src/fastxdm/FastXDMSequenceBuilder.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FastXDMSequenceBuilder.Tpo $(DEPDIR)/FastXDMSequenceBuilder.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/fastxdm/FastXDMSequenceBuilder.cpp' object='FastXDMSequenceBuilder.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FastXDMSequenceBuilder.lo `test -f 'src/fastxdm/FastXDMSequenceBuilder.cpp' || echo '$(srcdir)/'`src/fastxdm/FastXDMSequenceBuilder.cpp AncestorAxis.lo: src/xerces/AncestorAxis.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT AncestorAxis.lo -MD -MP -MF $(DEPDIR)/AncestorAxis.Tpo -c -o AncestorAxis.lo `test -f 'src/xerces/AncestorAxis.cpp' || echo '$(srcdir)/'`src/xerces/AncestorAxis.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/AncestorAxis.Tpo $(DEPDIR)/AncestorAxis.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xerces/AncestorAxis.cpp' object='AncestorAxis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o AncestorAxis.lo `test -f 'src/xerces/AncestorAxis.cpp' || echo '$(srcdir)/'`src/xerces/AncestorAxis.cpp AncestorOrSelfAxis.lo: src/xerces/AncestorOrSelfAxis.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT AncestorOrSelfAxis.lo -MD -MP -MF $(DEPDIR)/AncestorOrSelfAxis.Tpo -c -o AncestorOrSelfAxis.lo `test -f 'src/xerces/AncestorOrSelfAxis.cpp' || echo '$(srcdir)/'`src/xerces/AncestorOrSelfAxis.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/AncestorOrSelfAxis.Tpo $(DEPDIR)/AncestorOrSelfAxis.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xerces/AncestorOrSelfAxis.cpp' object='AncestorOrSelfAxis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o AncestorOrSelfAxis.lo `test -f 'src/xerces/AncestorOrSelfAxis.cpp' || echo '$(srcdir)/'`src/xerces/AncestorOrSelfAxis.cpp AttributeAxis.lo: src/xerces/AttributeAxis.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT AttributeAxis.lo -MD -MP -MF $(DEPDIR)/AttributeAxis.Tpo -c -o AttributeAxis.lo `test -f 'src/xerces/AttributeAxis.cpp' || echo '$(srcdir)/'`src/xerces/AttributeAxis.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/AttributeAxis.Tpo $(DEPDIR)/AttributeAxis.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xerces/AttributeAxis.cpp' object='AttributeAxis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o AttributeAxis.lo `test -f 'src/xerces/AttributeAxis.cpp' || echo '$(srcdir)/'`src/xerces/AttributeAxis.cpp Axis.lo: src/xerces/Axis.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Axis.lo -MD -MP -MF $(DEPDIR)/Axis.Tpo -c -o Axis.lo `test -f 'src/xerces/Axis.cpp' || echo '$(srcdir)/'`src/xerces/Axis.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Axis.Tpo $(DEPDIR)/Axis.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xerces/Axis.cpp' object='Axis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Axis.lo `test -f 'src/xerces/Axis.cpp' || echo '$(srcdir)/'`src/xerces/Axis.cpp ChildAxis.lo: src/xerces/ChildAxis.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ChildAxis.lo -MD -MP -MF $(DEPDIR)/ChildAxis.Tpo -c -o ChildAxis.lo `test -f 'src/xerces/ChildAxis.cpp' || echo '$(srcdir)/'`src/xerces/ChildAxis.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ChildAxis.Tpo $(DEPDIR)/ChildAxis.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xerces/ChildAxis.cpp' object='ChildAxis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ChildAxis.lo `test -f 'src/xerces/ChildAxis.cpp' || echo '$(srcdir)/'`src/xerces/ChildAxis.cpp DescendantAxis.lo: src/xerces/DescendantAxis.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT DescendantAxis.lo -MD -MP -MF $(DEPDIR)/DescendantAxis.Tpo -c -o DescendantAxis.lo `test -f 'src/xerces/DescendantAxis.cpp' || echo '$(srcdir)/'`src/xerces/DescendantAxis.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/DescendantAxis.Tpo $(DEPDIR)/DescendantAxis.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xerces/DescendantAxis.cpp' object='DescendantAxis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o DescendantAxis.lo `test -f 'src/xerces/DescendantAxis.cpp' || echo '$(srcdir)/'`src/xerces/DescendantAxis.cpp DescendantOrSelfAxis.lo: src/xerces/DescendantOrSelfAxis.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT DescendantOrSelfAxis.lo -MD -MP -MF $(DEPDIR)/DescendantOrSelfAxis.Tpo -c -o DescendantOrSelfAxis.lo `test -f 'src/xerces/DescendantOrSelfAxis.cpp' || echo '$(srcdir)/'`src/xerces/DescendantOrSelfAxis.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/DescendantOrSelfAxis.Tpo $(DEPDIR)/DescendantOrSelfAxis.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xerces/DescendantOrSelfAxis.cpp' object='DescendantOrSelfAxis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o DescendantOrSelfAxis.lo `test -f 'src/xerces/DescendantOrSelfAxis.cpp' || echo '$(srcdir)/'`src/xerces/DescendantOrSelfAxis.cpp FollowingAxis.lo: src/xerces/FollowingAxis.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FollowingAxis.lo -MD -MP -MF $(DEPDIR)/FollowingAxis.Tpo -c -o FollowingAxis.lo `test -f 'src/xerces/FollowingAxis.cpp' || echo '$(srcdir)/'`src/xerces/FollowingAxis.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FollowingAxis.Tpo $(DEPDIR)/FollowingAxis.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xerces/FollowingAxis.cpp' object='FollowingAxis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FollowingAxis.lo `test -f 'src/xerces/FollowingAxis.cpp' || echo '$(srcdir)/'`src/xerces/FollowingAxis.cpp FollowingSiblingAxis.lo: src/xerces/FollowingSiblingAxis.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT FollowingSiblingAxis.lo -MD -MP -MF $(DEPDIR)/FollowingSiblingAxis.Tpo -c -o FollowingSiblingAxis.lo `test -f 'src/xerces/FollowingSiblingAxis.cpp' || echo '$(srcdir)/'`src/xerces/FollowingSiblingAxis.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/FollowingSiblingAxis.Tpo $(DEPDIR)/FollowingSiblingAxis.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xerces/FollowingSiblingAxis.cpp' object='FollowingSiblingAxis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o FollowingSiblingAxis.lo `test -f 'src/xerces/FollowingSiblingAxis.cpp' || echo '$(srcdir)/'`src/xerces/FollowingSiblingAxis.cpp NamespaceAxis.lo: src/xerces/NamespaceAxis.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT NamespaceAxis.lo -MD -MP -MF $(DEPDIR)/NamespaceAxis.Tpo -c -o NamespaceAxis.lo `test -f 'src/xerces/NamespaceAxis.cpp' || echo '$(srcdir)/'`src/xerces/NamespaceAxis.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/NamespaceAxis.Tpo $(DEPDIR)/NamespaceAxis.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xerces/NamespaceAxis.cpp' object='NamespaceAxis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o NamespaceAxis.lo `test -f 'src/xerces/NamespaceAxis.cpp' || echo '$(srcdir)/'`src/xerces/NamespaceAxis.cpp ParentAxis.lo: src/xerces/ParentAxis.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ParentAxis.lo -MD -MP -MF $(DEPDIR)/ParentAxis.Tpo -c -o ParentAxis.lo `test -f 'src/xerces/ParentAxis.cpp' || echo '$(srcdir)/'`src/xerces/ParentAxis.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ParentAxis.Tpo $(DEPDIR)/ParentAxis.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xerces/ParentAxis.cpp' object='ParentAxis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ParentAxis.lo `test -f 'src/xerces/ParentAxis.cpp' || echo '$(srcdir)/'`src/xerces/ParentAxis.cpp PrecedingAxis.lo: src/xerces/PrecedingAxis.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT PrecedingAxis.lo -MD -MP -MF $(DEPDIR)/PrecedingAxis.Tpo -c -o PrecedingAxis.lo `test -f 'src/xerces/PrecedingAxis.cpp' || echo '$(srcdir)/'`src/xerces/PrecedingAxis.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/PrecedingAxis.Tpo $(DEPDIR)/PrecedingAxis.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xerces/PrecedingAxis.cpp' object='PrecedingAxis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o PrecedingAxis.lo `test -f 'src/xerces/PrecedingAxis.cpp' || echo '$(srcdir)/'`src/xerces/PrecedingAxis.cpp PrecedingSiblingAxis.lo: src/xerces/PrecedingSiblingAxis.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT PrecedingSiblingAxis.lo -MD -MP -MF $(DEPDIR)/PrecedingSiblingAxis.Tpo -c -o PrecedingSiblingAxis.lo `test -f 'src/xerces/PrecedingSiblingAxis.cpp' || echo '$(srcdir)/'`src/xerces/PrecedingSiblingAxis.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/PrecedingSiblingAxis.Tpo $(DEPDIR)/PrecedingSiblingAxis.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xerces/PrecedingSiblingAxis.cpp' object='PrecedingSiblingAxis.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o PrecedingSiblingAxis.lo `test -f 'src/xerces/PrecedingSiblingAxis.cpp' || echo '$(srcdir)/'`src/xerces/PrecedingSiblingAxis.cpp XercesConfiguration.lo: src/xerces/XercesConfiguration.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XercesConfiguration.lo -MD -MP -MF $(DEPDIR)/XercesConfiguration.Tpo -c -o XercesConfiguration.lo `test -f 'src/xerces/XercesConfiguration.cpp' || echo '$(srcdir)/'`src/xerces/XercesConfiguration.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XercesConfiguration.Tpo $(DEPDIR)/XercesConfiguration.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xerces/XercesConfiguration.cpp' object='XercesConfiguration.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XercesConfiguration.lo `test -f 'src/xerces/XercesConfiguration.cpp' || echo '$(srcdir)/'`src/xerces/XercesConfiguration.cpp XercesNodeImpl.lo: src/xerces/XercesNodeImpl.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XercesNodeImpl.lo -MD -MP -MF $(DEPDIR)/XercesNodeImpl.Tpo -c -o XercesNodeImpl.lo `test -f 'src/xerces/XercesNodeImpl.cpp' || echo '$(srcdir)/'`src/xerces/XercesNodeImpl.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XercesNodeImpl.Tpo $(DEPDIR)/XercesNodeImpl.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xerces/XercesNodeImpl.cpp' object='XercesNodeImpl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XercesNodeImpl.lo `test -f 'src/xerces/XercesNodeImpl.cpp' || echo '$(srcdir)/'`src/xerces/XercesNodeImpl.cpp XercesSequenceBuilder.lo: src/xerces/XercesSequenceBuilder.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XercesSequenceBuilder.lo -MD -MP -MF $(DEPDIR)/XercesSequenceBuilder.Tpo -c -o XercesSequenceBuilder.lo `test -f 'src/xerces/XercesSequenceBuilder.cpp' || echo '$(srcdir)/'`src/xerces/XercesSequenceBuilder.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XercesSequenceBuilder.Tpo $(DEPDIR)/XercesSequenceBuilder.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xerces/XercesSequenceBuilder.cpp' object='XercesSequenceBuilder.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XercesSequenceBuilder.lo `test -f 'src/xerces/XercesSequenceBuilder.cpp' || echo '$(srcdir)/'`src/xerces/XercesSequenceBuilder.cpp XercesUpdateFactory.lo: src/xerces/XercesUpdateFactory.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XercesUpdateFactory.lo -MD -MP -MF $(DEPDIR)/XercesUpdateFactory.Tpo -c -o XercesUpdateFactory.lo `test -f 'src/xerces/XercesUpdateFactory.cpp' || echo '$(srcdir)/'`src/xerces/XercesUpdateFactory.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XercesUpdateFactory.Tpo $(DEPDIR)/XercesUpdateFactory.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xerces/XercesUpdateFactory.cpp' object='XercesUpdateFactory.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XercesUpdateFactory.lo `test -f 'src/xerces/XercesUpdateFactory.cpp' || echo '$(srcdir)/'`src/xerces/XercesUpdateFactory.cpp XercesURIResolver.lo: src/xerces/XercesURIResolver.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XercesURIResolver.lo -MD -MP -MF $(DEPDIR)/XercesURIResolver.Tpo -c -o XercesURIResolver.lo `test -f 'src/xerces/XercesURIResolver.cpp' || echo '$(srcdir)/'`src/xerces/XercesURIResolver.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XercesURIResolver.Tpo $(DEPDIR)/XercesURIResolver.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xerces/XercesURIResolver.cpp' object='XercesURIResolver.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XercesURIResolver.lo `test -f 'src/xerces/XercesURIResolver.cpp' || echo '$(srcdir)/'`src/xerces/XercesURIResolver.cpp Optimizer.lo: src/optimizer/Optimizer.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT Optimizer.lo -MD -MP -MF $(DEPDIR)/Optimizer.Tpo -c -o Optimizer.lo `test -f 'src/optimizer/Optimizer.cpp' || echo '$(srcdir)/'`src/optimizer/Optimizer.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/Optimizer.Tpo $(DEPDIR)/Optimizer.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/optimizer/Optimizer.cpp' object='Optimizer.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o Optimizer.lo `test -f 'src/optimizer/Optimizer.cpp' || echo '$(srcdir)/'`src/optimizer/Optimizer.cpp ASTCopier.lo: src/optimizer/ASTCopier.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ASTCopier.lo -MD -MP -MF $(DEPDIR)/ASTCopier.Tpo -c -o ASTCopier.lo `test -f 'src/optimizer/ASTCopier.cpp' || echo '$(srcdir)/'`src/optimizer/ASTCopier.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ASTCopier.Tpo $(DEPDIR)/ASTCopier.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/optimizer/ASTCopier.cpp' object='ASTCopier.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ASTCopier.lo `test -f 'src/optimizer/ASTCopier.cpp' || echo '$(srcdir)/'`src/optimizer/ASTCopier.cpp ASTReleaser.lo: src/optimizer/ASTReleaser.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ASTReleaser.lo -MD -MP -MF $(DEPDIR)/ASTReleaser.Tpo -c -o ASTReleaser.lo `test -f 'src/optimizer/ASTReleaser.cpp' || echo '$(srcdir)/'`src/optimizer/ASTReleaser.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ASTReleaser.Tpo $(DEPDIR)/ASTReleaser.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/optimizer/ASTReleaser.cpp' object='ASTReleaser.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ASTReleaser.lo `test -f 'src/optimizer/ASTReleaser.cpp' || echo '$(srcdir)/'`src/optimizer/ASTReleaser.cpp ASTVisitor.lo: src/optimizer/ASTVisitor.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ASTVisitor.lo -MD -MP -MF $(DEPDIR)/ASTVisitor.Tpo -c -o ASTVisitor.lo `test -f 'src/optimizer/ASTVisitor.cpp' || echo '$(srcdir)/'`src/optimizer/ASTVisitor.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ASTVisitor.Tpo $(DEPDIR)/ASTVisitor.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/optimizer/ASTVisitor.cpp' object='ASTVisitor.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ASTVisitor.lo `test -f 'src/optimizer/ASTVisitor.cpp' || echo '$(srcdir)/'`src/optimizer/ASTVisitor.cpp PartialEvaluator.lo: src/optimizer/PartialEvaluator.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT PartialEvaluator.lo -MD -MP -MF $(DEPDIR)/PartialEvaluator.Tpo -c -o PartialEvaluator.lo `test -f 'src/optimizer/PartialEvaluator.cpp' || echo '$(srcdir)/'`src/optimizer/PartialEvaluator.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/PartialEvaluator.Tpo $(DEPDIR)/PartialEvaluator.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/optimizer/PartialEvaluator.cpp' object='PartialEvaluator.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o PartialEvaluator.lo `test -f 'src/optimizer/PartialEvaluator.cpp' || echo '$(srcdir)/'`src/optimizer/PartialEvaluator.cpp StaticTyper.lo: src/optimizer/StaticTyper.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT StaticTyper.lo -MD -MP -MF $(DEPDIR)/StaticTyper.Tpo -c -o StaticTyper.lo `test -f 'src/optimizer/StaticTyper.cpp' || echo '$(srcdir)/'`src/optimizer/StaticTyper.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/StaticTyper.Tpo $(DEPDIR)/StaticTyper.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/optimizer/StaticTyper.cpp' object='StaticTyper.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o StaticTyper.lo `test -f 'src/optimizer/StaticTyper.cpp' || echo '$(srcdir)/'`src/optimizer/StaticTyper.cpp QueryPathNode.lo: src/optimizer/QueryPathNode.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT QueryPathNode.lo -MD -MP -MF $(DEPDIR)/QueryPathNode.Tpo -c -o QueryPathNode.lo `test -f 'src/optimizer/QueryPathNode.cpp' || echo '$(srcdir)/'`src/optimizer/QueryPathNode.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/QueryPathNode.Tpo $(DEPDIR)/QueryPathNode.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/optimizer/QueryPathNode.cpp' object='QueryPathNode.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o QueryPathNode.lo `test -f 'src/optimizer/QueryPathNode.cpp' || echo '$(srcdir)/'`src/optimizer/QueryPathNode.cpp QueryPathTreeGenerator.lo: src/optimizer/QueryPathTreeGenerator.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT QueryPathTreeGenerator.lo -MD -MP -MF $(DEPDIR)/QueryPathTreeGenerator.Tpo -c -o QueryPathTreeGenerator.lo `test -f 'src/optimizer/QueryPathTreeGenerator.cpp' || echo '$(srcdir)/'`src/optimizer/QueryPathTreeGenerator.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/QueryPathTreeGenerator.Tpo $(DEPDIR)/QueryPathTreeGenerator.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/optimizer/QueryPathTreeGenerator.cpp' object='QueryPathTreeGenerator.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o QueryPathTreeGenerator.lo `test -f 'src/optimizer/QueryPathTreeGenerator.cpp' || echo '$(srcdir)/'`src/optimizer/QueryPathTreeGenerator.cpp ASTToXML.lo: src/optimizer/ASTToXML.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ASTToXML.lo -MD -MP -MF $(DEPDIR)/ASTToXML.Tpo -c -o ASTToXML.lo `test -f 'src/optimizer/ASTToXML.cpp' || echo '$(srcdir)/'`src/optimizer/ASTToXML.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/ASTToXML.Tpo $(DEPDIR)/ASTToXML.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/optimizer/ASTToXML.cpp' object='ASTToXML.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ASTToXML.lo `test -f 'src/optimizer/ASTToXML.cpp' || echo '$(srcdir)/'`src/optimizer/ASTToXML.cpp XQillaXQCImplementation.lo: src/xqc/XQillaXQCImplementation.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQillaXQCImplementation.lo -MD -MP -MF $(DEPDIR)/XQillaXQCImplementation.Tpo -c -o XQillaXQCImplementation.lo `test -f 'src/xqc/XQillaXQCImplementation.cpp' || echo '$(srcdir)/'`src/xqc/XQillaXQCImplementation.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQillaXQCImplementation.Tpo $(DEPDIR)/XQillaXQCImplementation.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xqc/XQillaXQCImplementation.cpp' object='XQillaXQCImplementation.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQillaXQCImplementation.lo `test -f 'src/xqc/XQillaXQCImplementation.cpp' || echo '$(srcdir)/'`src/xqc/XQillaXQCImplementation.cpp XQillaXQCStaticContext.lo: src/xqc/XQillaXQCStaticContext.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQillaXQCStaticContext.lo -MD -MP -MF $(DEPDIR)/XQillaXQCStaticContext.Tpo -c -o XQillaXQCStaticContext.lo `test -f 'src/xqc/XQillaXQCStaticContext.cpp' || echo '$(srcdir)/'`src/xqc/XQillaXQCStaticContext.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQillaXQCStaticContext.Tpo $(DEPDIR)/XQillaXQCStaticContext.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xqc/XQillaXQCStaticContext.cpp' object='XQillaXQCStaticContext.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQillaXQCStaticContext.lo `test -f 'src/xqc/XQillaXQCStaticContext.cpp' || echo '$(srcdir)/'`src/xqc/XQillaXQCStaticContext.cpp XQillaXQCDynamicContext.lo: src/xqc/XQillaXQCDynamicContext.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQillaXQCDynamicContext.lo -MD -MP -MF $(DEPDIR)/XQillaXQCDynamicContext.Tpo -c -o XQillaXQCDynamicContext.lo `test -f 'src/xqc/XQillaXQCDynamicContext.cpp' || echo '$(srcdir)/'`src/xqc/XQillaXQCDynamicContext.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQillaXQCDynamicContext.Tpo $(DEPDIR)/XQillaXQCDynamicContext.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xqc/XQillaXQCDynamicContext.cpp' object='XQillaXQCDynamicContext.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQillaXQCDynamicContext.lo `test -f 'src/xqc/XQillaXQCDynamicContext.cpp' || echo '$(srcdir)/'`src/xqc/XQillaXQCDynamicContext.cpp XQillaXQCExpression.lo: src/xqc/XQillaXQCExpression.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQillaXQCExpression.lo -MD -MP -MF $(DEPDIR)/XQillaXQCExpression.Tpo -c -o XQillaXQCExpression.lo `test -f 'src/xqc/XQillaXQCExpression.cpp' || echo '$(srcdir)/'`src/xqc/XQillaXQCExpression.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQillaXQCExpression.Tpo $(DEPDIR)/XQillaXQCExpression.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xqc/XQillaXQCExpression.cpp' object='XQillaXQCExpression.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQillaXQCExpression.lo `test -f 'src/xqc/XQillaXQCExpression.cpp' || echo '$(srcdir)/'`src/xqc/XQillaXQCExpression.cpp XQillaXQCSequence.lo: src/xqc/XQillaXQCSequence.cpp @am__fastdepCXX_TRUE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT XQillaXQCSequence.lo -MD -MP -MF $(DEPDIR)/XQillaXQCSequence.Tpo -c -o XQillaXQCSequence.lo `test -f 'src/xqc/XQillaXQCSequence.cpp' || echo '$(srcdir)/'`src/xqc/XQillaXQCSequence.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/XQillaXQCSequence.Tpo $(DEPDIR)/XQillaXQCSequence.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/xqc/XQillaXQCSequence.cpp' object='XQillaXQCSequence.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o XQillaXQCSequence.lo `test -f 'src/xqc/XQillaXQCSequence.cpp' || echo '$(srcdir)/'`src/xqc/XQillaXQCSequence.cpp compile-delayed-module.o: src/tools/compile-delayed-module.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT compile-delayed-module.o -MD -MP -MF $(DEPDIR)/compile-delayed-module.Tpo -c -o compile-delayed-module.o `test -f 'src/tools/compile-delayed-module.cpp' || echo '$(srcdir)/'`src/tools/compile-delayed-module.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/compile-delayed-module.Tpo $(DEPDIR)/compile-delayed-module.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/tools/compile-delayed-module.cpp' object='compile-delayed-module.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o compile-delayed-module.o `test -f 'src/tools/compile-delayed-module.cpp' || echo '$(srcdir)/'`src/tools/compile-delayed-module.cpp compile-delayed-module.obj: src/tools/compile-delayed-module.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT compile-delayed-module.obj -MD -MP -MF $(DEPDIR)/compile-delayed-module.Tpo -c -o compile-delayed-module.obj `if test -f 'src/tools/compile-delayed-module.cpp'; then $(CYGPATH_W) 'src/tools/compile-delayed-module.cpp'; else $(CYGPATH_W) '$(srcdir)/src/tools/compile-delayed-module.cpp'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/compile-delayed-module.Tpo $(DEPDIR)/compile-delayed-module.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/tools/compile-delayed-module.cpp' object='compile-delayed-module.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o compile-delayed-module.obj `if test -f 'src/tools/compile-delayed-module.cpp'; then $(CYGPATH_W) 'src/tools/compile-delayed-module.cpp'; else $(CYGPATH_W) '$(srcdir)/src/tools/compile-delayed-module.cpp'; fi` dom-basic.o: src/samples/dom-api/dom-basic.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT dom-basic.o -MD -MP -MF $(DEPDIR)/dom-basic.Tpo -c -o dom-basic.o `test -f 'src/samples/dom-api/dom-basic.cpp' || echo '$(srcdir)/'`src/samples/dom-api/dom-basic.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/dom-basic.Tpo $(DEPDIR)/dom-basic.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/samples/dom-api/dom-basic.cpp' object='dom-basic.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o dom-basic.o `test -f 'src/samples/dom-api/dom-basic.cpp' || echo '$(srcdir)/'`src/samples/dom-api/dom-basic.cpp dom-basic.obj: src/samples/dom-api/dom-basic.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT dom-basic.obj -MD -MP -MF $(DEPDIR)/dom-basic.Tpo -c -o dom-basic.obj `if test -f 'src/samples/dom-api/dom-basic.cpp'; then $(CYGPATH_W) 'src/samples/dom-api/dom-basic.cpp'; else $(CYGPATH_W) '$(srcdir)/src/samples/dom-api/dom-basic.cpp'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/dom-basic.Tpo $(DEPDIR)/dom-basic.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/samples/dom-api/dom-basic.cpp' object='dom-basic.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o dom-basic.obj `if test -f 'src/samples/dom-api/dom-basic.cpp'; then $(CYGPATH_W) 'src/samples/dom-api/dom-basic.cpp'; else $(CYGPATH_W) '$(srcdir)/src/samples/dom-api/dom-basic.cpp'; fi` dom-context-item.o: src/samples/dom-api/dom-context-item.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT dom-context-item.o -MD -MP -MF $(DEPDIR)/dom-context-item.Tpo -c -o dom-context-item.o `test -f 'src/samples/dom-api/dom-context-item.cpp' || echo '$(srcdir)/'`src/samples/dom-api/dom-context-item.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/dom-context-item.Tpo $(DEPDIR)/dom-context-item.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/samples/dom-api/dom-context-item.cpp' object='dom-context-item.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o dom-context-item.o `test -f 'src/samples/dom-api/dom-context-item.cpp' || echo '$(srcdir)/'`src/samples/dom-api/dom-context-item.cpp dom-context-item.obj: src/samples/dom-api/dom-context-item.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT dom-context-item.obj -MD -MP -MF $(DEPDIR)/dom-context-item.Tpo -c -o dom-context-item.obj `if test -f 'src/samples/dom-api/dom-context-item.cpp'; then $(CYGPATH_W) 'src/samples/dom-api/dom-context-item.cpp'; else $(CYGPATH_W) '$(srcdir)/src/samples/dom-api/dom-context-item.cpp'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/dom-context-item.Tpo $(DEPDIR)/dom-context-item.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/samples/dom-api/dom-context-item.cpp' object='dom-context-item.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o dom-context-item.obj `if test -f 'src/samples/dom-api/dom-context-item.cpp'; then $(CYGPATH_W) 'src/samples/dom-api/dom-context-item.cpp'; else $(CYGPATH_W) '$(srcdir)/src/samples/dom-api/dom-context-item.cpp'; fi` dom-resolver.o: src/samples/dom-api/dom-resolver.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT dom-resolver.o -MD -MP -MF $(DEPDIR)/dom-resolver.Tpo -c -o dom-resolver.o `test -f 'src/samples/dom-api/dom-resolver.cpp' || echo '$(srcdir)/'`src/samples/dom-api/dom-resolver.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/dom-resolver.Tpo $(DEPDIR)/dom-resolver.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/samples/dom-api/dom-resolver.cpp' object='dom-resolver.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o dom-resolver.o `test -f 'src/samples/dom-api/dom-resolver.cpp' || echo '$(srcdir)/'`src/samples/dom-api/dom-resolver.cpp dom-resolver.obj: src/samples/dom-api/dom-resolver.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT dom-resolver.obj -MD -MP -MF $(DEPDIR)/dom-resolver.Tpo -c -o dom-resolver.obj `if test -f 'src/samples/dom-api/dom-resolver.cpp'; then $(CYGPATH_W) 'src/samples/dom-api/dom-resolver.cpp'; else $(CYGPATH_W) '$(srcdir)/src/samples/dom-api/dom-resolver.cpp'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/dom-resolver.Tpo $(DEPDIR)/dom-resolver.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/samples/dom-api/dom-resolver.cpp' object='dom-resolver.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o dom-resolver.obj `if test -f 'src/samples/dom-api/dom-resolver.cpp'; then $(CYGPATH_W) 'src/samples/dom-api/dom-resolver.cpp'; else $(CYGPATH_W) '$(srcdir)/src/samples/dom-api/dom-resolver.cpp'; fi` simple-basic.o: src/samples/simple-api/simple-basic.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT simple-basic.o -MD -MP -MF $(DEPDIR)/simple-basic.Tpo -c -o simple-basic.o `test -f 'src/samples/simple-api/simple-basic.cpp' || echo '$(srcdir)/'`src/samples/simple-api/simple-basic.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/simple-basic.Tpo $(DEPDIR)/simple-basic.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/samples/simple-api/simple-basic.cpp' object='simple-basic.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o simple-basic.o `test -f 'src/samples/simple-api/simple-basic.cpp' || echo '$(srcdir)/'`src/samples/simple-api/simple-basic.cpp simple-basic.obj: src/samples/simple-api/simple-basic.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT simple-basic.obj -MD -MP -MF $(DEPDIR)/simple-basic.Tpo -c -o simple-basic.obj `if test -f 'src/samples/simple-api/simple-basic.cpp'; then $(CYGPATH_W) 'src/samples/simple-api/simple-basic.cpp'; else $(CYGPATH_W) '$(srcdir)/src/samples/simple-api/simple-basic.cpp'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/simple-basic.Tpo $(DEPDIR)/simple-basic.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/samples/simple-api/simple-basic.cpp' object='simple-basic.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o simple-basic.obj `if test -f 'src/samples/simple-api/simple-basic.cpp'; then $(CYGPATH_W) 'src/samples/simple-api/simple-basic.cpp'; else $(CYGPATH_W) '$(srcdir)/src/samples/simple-api/simple-basic.cpp'; fi` simple-context-item.o: src/samples/simple-api/simple-context-item.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT simple-context-item.o -MD -MP -MF $(DEPDIR)/simple-context-item.Tpo -c -o simple-context-item.o `test -f 'src/samples/simple-api/simple-context-item.cpp' || echo '$(srcdir)/'`src/samples/simple-api/simple-context-item.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/simple-context-item.Tpo $(DEPDIR)/simple-context-item.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/samples/simple-api/simple-context-item.cpp' object='simple-context-item.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o simple-context-item.o `test -f 'src/samples/simple-api/simple-context-item.cpp' || echo '$(srcdir)/'`src/samples/simple-api/simple-context-item.cpp simple-context-item.obj: src/samples/simple-api/simple-context-item.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT simple-context-item.obj -MD -MP -MF $(DEPDIR)/simple-context-item.Tpo -c -o simple-context-item.obj `if test -f 'src/samples/simple-api/simple-context-item.cpp'; then $(CYGPATH_W) 'src/samples/simple-api/simple-context-item.cpp'; else $(CYGPATH_W) '$(srcdir)/src/samples/simple-api/simple-context-item.cpp'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/simple-context-item.Tpo $(DEPDIR)/simple-context-item.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/samples/simple-api/simple-context-item.cpp' object='simple-context-item.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o simple-context-item.obj `if test -f 'src/samples/simple-api/simple-context-item.cpp'; then $(CYGPATH_W) 'src/samples/simple-api/simple-context-item.cpp'; else $(CYGPATH_W) '$(srcdir)/src/samples/simple-api/simple-context-item.cpp'; fi` xmark.o: tests/xmark/xmark.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT xmark.o -MD -MP -MF $(DEPDIR)/xmark.Tpo -c -o xmark.o `test -f 'tests/xmark/xmark.cpp' || echo '$(srcdir)/'`tests/xmark/xmark.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/xmark.Tpo $(DEPDIR)/xmark.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tests/xmark/xmark.cpp' object='xmark.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o xmark.o `test -f 'tests/xmark/xmark.cpp' || echo '$(srcdir)/'`tests/xmark/xmark.cpp xmark.obj: tests/xmark/xmark.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT xmark.obj -MD -MP -MF $(DEPDIR)/xmark.Tpo -c -o xmark.obj `if test -f 'tests/xmark/xmark.cpp'; then $(CYGPATH_W) 'tests/xmark/xmark.cpp'; else $(CYGPATH_W) '$(srcdir)/tests/xmark/xmark.cpp'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/xmark.Tpo $(DEPDIR)/xmark.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tests/xmark/xmark.cpp' object='xmark.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o xmark.obj `if test -f 'tests/xmark/xmark.cpp'; then $(CYGPATH_W) 'tests/xmark/xmark.cpp'; else $(CYGPATH_W) '$(srcdir)/tests/xmark/xmark.cpp'; fi` xqilla-commandline.o: src/samples/xqilla/xqilla-commandline.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT xqilla-commandline.o -MD -MP -MF $(DEPDIR)/xqilla-commandline.Tpo -c -o xqilla-commandline.o `test -f 'src/samples/xqilla/xqilla-commandline.cpp' || echo '$(srcdir)/'`src/samples/xqilla/xqilla-commandline.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/xqilla-commandline.Tpo $(DEPDIR)/xqilla-commandline.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/samples/xqilla/xqilla-commandline.cpp' object='xqilla-commandline.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o xqilla-commandline.o `test -f 'src/samples/xqilla/xqilla-commandline.cpp' || echo '$(srcdir)/'`src/samples/xqilla/xqilla-commandline.cpp xqilla-commandline.obj: src/samples/xqilla/xqilla-commandline.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT xqilla-commandline.obj -MD -MP -MF $(DEPDIR)/xqilla-commandline.Tpo -c -o xqilla-commandline.obj `if test -f 'src/samples/xqilla/xqilla-commandline.cpp'; then $(CYGPATH_W) 'src/samples/xqilla/xqilla-commandline.cpp'; else $(CYGPATH_W) '$(srcdir)/src/samples/xqilla/xqilla-commandline.cpp'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/xqilla-commandline.Tpo $(DEPDIR)/xqilla-commandline.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='src/samples/xqilla/xqilla-commandline.cpp' object='xqilla-commandline.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o xqilla-commandline.obj `if test -f 'src/samples/xqilla/xqilla-commandline.cpp'; then $(CYGPATH_W) 'src/samples/xqilla/xqilla-commandline.cpp'; else $(CYGPATH_W) '$(srcdir)/src/samples/xqilla/xqilla-commandline.cpp'; fi` runner.o: tests/xqts/runner.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT runner.o -MD -MP -MF $(DEPDIR)/runner.Tpo -c -o runner.o `test -f 'tests/xqts/runner.cpp' || echo '$(srcdir)/'`tests/xqts/runner.cpp @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/runner.Tpo $(DEPDIR)/runner.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tests/xqts/runner.cpp' object='runner.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o runner.o `test -f 'tests/xqts/runner.cpp' || echo '$(srcdir)/'`tests/xqts/runner.cpp runner.obj: tests/xqts/runner.cpp @am__fastdepCXX_TRUE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT runner.obj -MD -MP -MF $(DEPDIR)/runner.Tpo -c -o runner.obj `if test -f 'tests/xqts/runner.cpp'; then $(CYGPATH_W) 'tests/xqts/runner.cpp'; else $(CYGPATH_W) '$(srcdir)/tests/xqts/runner.cpp'; fi` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/runner.Tpo $(DEPDIR)/runner.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='tests/xqts/runner.cpp' object='runner.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o runner.obj `if test -f 'tests/xqts/runner.cpp'; then $(CYGPATH_W) 'tests/xqts/runner.cpp'; else $(CYGPATH_W) '$(srcdir)/tests/xqts/runner.cpp'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool config.lt # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-lzma: distdir tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma $(am__remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @$(am__cd) '$(distuninstallcheck_dir)' \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) install-binPROGRAMS: install-libLTLIBRARIES installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ clean-libtool clean-noinstPROGRAMS mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-hdr distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-binPROGRAMS install-libLTLIBRARIES install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-libLTLIBRARIES .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean clean-binPROGRAMS \ clean-generic clean-libLTLIBRARIES clean-libtool \ clean-noinstPROGRAMS ctags ctags-recursive dist dist-all \ dist-bzip2 dist-gzip dist-lzma dist-shar dist-tarZ dist-xz \ dist-zip distcheck distclean distclean-compile \ distclean-generic distclean-hdr distclean-libtool \ distclean-tags distcleancheck distdir distuninstallcheck dvi \ dvi-am html html-am info info-am install install-am \ install-binPROGRAMS install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am \ install-libLTLIBRARIES install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am \ uninstall-binPROGRAMS uninstall-libLTLIBRARIES $(top_srcdir)/src/functions/CoreModule.hpp: $(top_srcdir)/src/functions/CoreModule.xq ./compile-delayed-module $(top_srcdir)/src/functions/CoreModule.xq >$(top_srcdir)/src/functions/CoreModule.hpp $(top_srcdir)/src/functions/FnModule.hpp: $(top_srcdir)/src/functions/FnModule.xq ./compile-delayed-module $(top_srcdir)/src/functions/FnModule.xq >$(top_srcdir)/src/functions/FnModule.hpp $(LEXERFILE): $(LEXTEMPLATE) $(LEXSKEL) $(LEX) -BUs -Pxq -S$(LEXSKEL) -o$(LEXERFILE) $(LEXTEMPLATE) # This can take a long time $(PARSERCPP) $(PARSERHPP): $(PARSERFILE) $(YACC) -d -v -o $(PARSERCPP) $(PARSERFILE) .PHONY: test docs docs: $(MAKE) -C include docs docsclean: $(MAKE) -C include docsclean devdocs: $(MAKE) -C include devdocs devdocsclean: $(MAKE) -C include devdocsclean # Target to help keep the windows projects up-to-date winprojects: winprojects.xq xqilla $(MAKE) -C include winprojects ./xqilla winprojects.xq > winprojects_files.xml winprojects.xq: $(libxqilla_la_SOURCES) @echo "let \$$filedump := " >winprojects.xq @list='$(libxqilla_la_SOURCES)'; for f in $$list; do \ echo " " >>winprojects.xq; \ done @echo "" >>winprojects.xq @echo "for \$$dir in distinct-values(\$$filedump//file/@name/substring-before(substring-after(., '/'), '/'))" >>winprojects.xq @echo "order by \$$dir" >>winprojects.xq @echo "return document{' ', {" >>winprojects.xq @echo " for \$$f in \$$filedump/file[contains(@name, \$$dir)]" >>winprojects.xq @echo " order by \$$f/@name" >>winprojects.xq @echo " return (' ', \$$f)" >>winprojects.xq @echo "} }" >>winprojects.xq # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: XQilla-2.3.0/Win32Projects/0000755000151400015140000000000011653572442012330 500000000000000XQilla-2.3.0/Win32Projects/VC8/0000755000151400015140000000000011653572443012731 500000000000000XQilla-2.3.0/Win32Projects/VC8/XQilla.sln0000755000151400015140000003156311636377670014602 00000000000000Microsoft Visual Studio Solution File, Format Version 9.00 # Visual Studio 2005 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xqilla", "xqilla.vcproj", "{63E85107-41E0-4FC7-8083-40E85861B426}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xqilla_cmd", "xqilla_cmd.vcproj", "{44F4673C-C971-4085-8750-3BA0D7FE6FD2}" ProjectSection(ProjectDependencies) = postProject {63E85107-41E0-4FC7-8083-40E85861B426} = {63E85107-41E0-4FC7-8083-40E85861B426} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "simple-basic", "simple-basic.vcproj", "{C03914F5-AA13-4B1C-A4B0-8FD6560AB573}" ProjectSection(ProjectDependencies) = postProject {63E85107-41E0-4FC7-8083-40E85861B426} = {63E85107-41E0-4FC7-8083-40E85861B426} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "simple-context-item", "simple-context-item.vcproj", "{55BEA039-4B29-4909-902A-9DD4BEADBCD0}" ProjectSection(ProjectDependencies) = postProject {63E85107-41E0-4FC7-8083-40E85861B426} = {63E85107-41E0-4FC7-8083-40E85861B426} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dom-basic", "dom-basic.vcproj", "{6672DE96-EA92-44A2-900E-6868A86FB044}" ProjectSection(ProjectDependencies) = postProject {63E85107-41E0-4FC7-8083-40E85861B426} = {63E85107-41E0-4FC7-8083-40E85861B426} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dom-context-item", "dom-context-item.vcproj", "{E1A71F82-696D-4439-B647-CE04D75E49DC}" ProjectSection(ProjectDependencies) = postProject {63E85107-41E0-4FC7-8083-40E85861B426} = {63E85107-41E0-4FC7-8083-40E85861B426} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dom-resolver", "dom-resolver.vcproj", "{31B7B9AA-109C-4B71-ADA6-274A6420969E}" ProjectSection(ProjectDependencies) = postProject {63E85107-41E0-4FC7-8083-40E85861B426} = {63E85107-41E0-4FC7-8083-40E85861B426} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xmarkRunner", "xmarkRunner.vcproj", "{619264FA-3730-43C4-A903-0EAA453527AC}" ProjectSection(ProjectDependencies) = postProject {63E85107-41E0-4FC7-8083-40E85861B426} = {63E85107-41E0-4FC7-8083-40E85861B426} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xqtsRunner", "xqtsRunner.vcproj", "{E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}" ProjectSection(ProjectDependencies) = postProject {63E85107-41E0-4FC7-8083-40E85861B426} = {63E85107-41E0-4FC7-8083-40E85861B426} EndProjectSection EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Debug|x64 = Debug|x64 Release|Win32 = Release|Win32 Release|x64 = Release|x64 Static Debug|Win32 = Static Debug|Win32 Static Debug|x64 = Static Debug|x64 Static Release|Win32 = Static Release|Win32 Static Release|x64 = Static Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {63E85107-41E0-4FC7-8083-40E85861B426}.Debug|Win32.ActiveCfg = Debug|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Debug|Win32.Build.0 = Debug|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Debug|x64.ActiveCfg = Debug|x64 {63E85107-41E0-4FC7-8083-40E85861B426}.Debug|x64.Build.0 = Debug|x64 {63E85107-41E0-4FC7-8083-40E85861B426}.Release|Win32.ActiveCfg = Release|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Release|Win32.Build.0 = Release|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Release|x64.ActiveCfg = Release|x64 {63E85107-41E0-4FC7-8083-40E85861B426}.Release|x64.Build.0 = Release|x64 {63E85107-41E0-4FC7-8083-40E85861B426}.Static Debug|Win32.ActiveCfg = Static Debug|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Static Debug|Win32.Build.0 = Static Debug|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Static Debug|x64.ActiveCfg = Static Debug|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Static Release|Win32.ActiveCfg = Static Release|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Static Release|Win32.Build.0 = Static Release|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Static Release|x64.ActiveCfg = Static Release|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Debug|Win32.ActiveCfg = Debug|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Debug|Win32.Build.0 = Debug|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Debug|x64.ActiveCfg = Debug|x64 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Debug|x64.Build.0 = Debug|x64 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Release|Win32.ActiveCfg = Release|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Release|Win32.Build.0 = Release|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Release|x64.ActiveCfg = Release|x64 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Release|x64.Build.0 = Release|x64 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Static Debug|Win32.ActiveCfg = Static Debug|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Static Debug|Win32.Build.0 = Static Debug|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Static Debug|x64.ActiveCfg = Static Debug|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Static Release|Win32.ActiveCfg = Static Release|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Static Release|Win32.Build.0 = Static Release|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Static Release|x64.ActiveCfg = Static Release|Win32 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Debug|Win32.ActiveCfg = Debug|Win32 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Debug|Win32.Build.0 = Debug|Win32 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Debug|x64.ActiveCfg = Debug|x64 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Debug|x64.Build.0 = Debug|x64 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Release|Win32.ActiveCfg = Release|Win32 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Release|Win32.Build.0 = Release|Win32 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Release|x64.ActiveCfg = Release|x64 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Release|x64.Build.0 = Release|x64 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Static Debug|Win32.ActiveCfg = Debug|Win32 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Static Debug|x64.ActiveCfg = Debug|x64 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Static Debug|x64.Build.0 = Debug|x64 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Static Release|Win32.ActiveCfg = Release|Win32 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Static Release|x64.ActiveCfg = Release|x64 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Static Release|x64.Build.0 = Release|x64 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Debug|Win32.ActiveCfg = Debug|Win32 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Debug|Win32.Build.0 = Debug|Win32 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Debug|x64.ActiveCfg = Debug|x64 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Debug|x64.Build.0 = Debug|x64 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Release|Win32.ActiveCfg = Release|Win32 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Release|Win32.Build.0 = Release|Win32 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Release|x64.ActiveCfg = Release|x64 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Release|x64.Build.0 = Release|x64 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Static Debug|Win32.ActiveCfg = Debug|Win32 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Static Debug|x64.ActiveCfg = Debug|x64 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Static Debug|x64.Build.0 = Debug|x64 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Static Release|Win32.ActiveCfg = Release|Win32 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Static Release|x64.ActiveCfg = Release|x64 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Static Release|x64.Build.0 = Release|x64 {6672DE96-EA92-44A2-900E-6868A86FB044}.Debug|Win32.ActiveCfg = Debug|Win32 {6672DE96-EA92-44A2-900E-6868A86FB044}.Debug|Win32.Build.0 = Debug|Win32 {6672DE96-EA92-44A2-900E-6868A86FB044}.Debug|x64.ActiveCfg = Debug|x64 {6672DE96-EA92-44A2-900E-6868A86FB044}.Debug|x64.Build.0 = Debug|x64 {6672DE96-EA92-44A2-900E-6868A86FB044}.Release|Win32.ActiveCfg = Release|Win32 {6672DE96-EA92-44A2-900E-6868A86FB044}.Release|Win32.Build.0 = Release|Win32 {6672DE96-EA92-44A2-900E-6868A86FB044}.Release|x64.ActiveCfg = Release|x64 {6672DE96-EA92-44A2-900E-6868A86FB044}.Release|x64.Build.0 = Release|x64 {6672DE96-EA92-44A2-900E-6868A86FB044}.Static Debug|Win32.ActiveCfg = Debug|Win32 {6672DE96-EA92-44A2-900E-6868A86FB044}.Static Debug|x64.ActiveCfg = Debug|x64 {6672DE96-EA92-44A2-900E-6868A86FB044}.Static Debug|x64.Build.0 = Debug|x64 {6672DE96-EA92-44A2-900E-6868A86FB044}.Static Release|Win32.ActiveCfg = Release|Win32 {6672DE96-EA92-44A2-900E-6868A86FB044}.Static Release|x64.ActiveCfg = Release|x64 {6672DE96-EA92-44A2-900E-6868A86FB044}.Static Release|x64.Build.0 = Release|x64 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Debug|Win32.ActiveCfg = Debug|Win32 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Debug|Win32.Build.0 = Debug|Win32 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Debug|x64.ActiveCfg = Debug|x64 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Debug|x64.Build.0 = Debug|x64 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Release|Win32.ActiveCfg = Release|Win32 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Release|Win32.Build.0 = Release|Win32 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Release|x64.ActiveCfg = Release|x64 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Release|x64.Build.0 = Release|x64 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Static Debug|Win32.ActiveCfg = Debug|Win32 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Static Debug|x64.ActiveCfg = Debug|x64 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Static Debug|x64.Build.0 = Debug|x64 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Static Release|Win32.ActiveCfg = Release|Win32 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Static Release|x64.ActiveCfg = Release|x64 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Static Release|x64.Build.0 = Release|x64 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Debug|Win32.ActiveCfg = Debug|Win32 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Debug|Win32.Build.0 = Debug|Win32 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Debug|x64.ActiveCfg = Debug|x64 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Debug|x64.Build.0 = Debug|x64 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Release|Win32.ActiveCfg = Release|Win32 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Release|Win32.Build.0 = Release|Win32 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Release|x64.ActiveCfg = Release|x64 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Release|x64.Build.0 = Release|x64 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Static Debug|Win32.ActiveCfg = Debug|Win32 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Static Debug|x64.ActiveCfg = Debug|x64 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Static Debug|x64.Build.0 = Debug|x64 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Static Release|Win32.ActiveCfg = Release|Win32 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Static Release|x64.ActiveCfg = Release|x64 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Static Release|x64.Build.0 = Release|x64 {619264FA-3730-43C4-A903-0EAA453527AC}.Debug|Win32.ActiveCfg = Debug|Win32 {619264FA-3730-43C4-A903-0EAA453527AC}.Debug|Win32.Build.0 = Debug|Win32 {619264FA-3730-43C4-A903-0EAA453527AC}.Debug|x64.ActiveCfg = Debug|x64 {619264FA-3730-43C4-A903-0EAA453527AC}.Debug|x64.Build.0 = Debug|x64 {619264FA-3730-43C4-A903-0EAA453527AC}.Release|Win32.ActiveCfg = Release|Win32 {619264FA-3730-43C4-A903-0EAA453527AC}.Release|Win32.Build.0 = Release|Win32 {619264FA-3730-43C4-A903-0EAA453527AC}.Release|x64.ActiveCfg = Release|x64 {619264FA-3730-43C4-A903-0EAA453527AC}.Release|x64.Build.0 = Release|x64 {619264FA-3730-43C4-A903-0EAA453527AC}.Static Debug|Win32.ActiveCfg = Debug|Win32 {619264FA-3730-43C4-A903-0EAA453527AC}.Static Debug|x64.ActiveCfg = Debug|x64 {619264FA-3730-43C4-A903-0EAA453527AC}.Static Debug|x64.Build.0 = Debug|x64 {619264FA-3730-43C4-A903-0EAA453527AC}.Static Release|Win32.ActiveCfg = Release|Win32 {619264FA-3730-43C4-A903-0EAA453527AC}.Static Release|x64.ActiveCfg = Release|x64 {619264FA-3730-43C4-A903-0EAA453527AC}.Static Release|x64.Build.0 = Release|x64 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Debug|Win32.ActiveCfg = Debug|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Debug|Win32.Build.0 = Debug|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Debug|x64.ActiveCfg = Debug|x64 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Debug|x64.Build.0 = Debug|x64 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Release|Win32.ActiveCfg = Release|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Release|Win32.Build.0 = Release|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Release|x64.ActiveCfg = Release|x64 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Release|x64.Build.0 = Release|x64 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Static Debug|Win32.ActiveCfg = Debug|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Static Debug|x64.ActiveCfg = Debug|x64 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Static Debug|x64.Build.0 = Debug|x64 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Static Release|Win32.ActiveCfg = Release|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Static Release|x64.ActiveCfg = Release|x64 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Static Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal XQilla-2.3.0/Win32Projects/VC8/xqc-basic.vcproj0000644000151400015140000002355611636377670015771 00000000000000 XQilla-2.3.0/Win32Projects/VC8/xmarkRunner.vcproj0000644000151400015140000002362611636377670016431 00000000000000 XQilla-2.3.0/Win32Projects/VC8/xqilla.vcproj0000644000151400015140000023700711636377670015407 00000000000000 XQilla-2.3.0/Win32Projects/VC8/simple-basic.vcproj0000644000151400015140000002370111636377670016457 00000000000000 XQilla-2.3.0/Win32Projects/VC8/dom-resolver.vcproj0000644000151400015140000002367611636377670016540 00000000000000 XQilla-2.3.0/Win32Projects/VC8/xqc-context-item.vcproj0000644000151400015140000002404411636377670017321 00000000000000 XQilla-2.3.0/Win32Projects/VC8/xqilla_cmd.vcproj0000644000151400015140000004617411636377670016235 00000000000000 XQilla-2.3.0/Win32Projects/VC8/xqtsRunner.vcproj0000644000151400015140000002357511636377670016311 00000000000000 XQilla-2.3.0/Win32Projects/VC8/simple-context-item.vcproj0000644000151400015140000002416711636377670020025 00000000000000 XQilla-2.3.0/Win32Projects/VC8/dom-basic.vcproj0000644000151400015140000002356011636377670015750 00000000000000 XQilla-2.3.0/Win32Projects/VC8/dom-context-item.vcproj0000644000151400015140000002404611636377670017307 00000000000000 XQilla-2.3.0/Win32Projects/VC7.1/0000755000151400015140000000000011653572443013067 500000000000000XQilla-2.3.0/Win32Projects/VC7.1/XQilla.sln0000644000151400015140000002637611571227111014721 00000000000000Microsoft Visual Studio Solution File, Format Version 8.00 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xqilla", "XQilla.vcproj", "{63E85107-41E0-4FC7-8083-40E85861B426}" ProjectSection(ProjectDependencies) = postProject EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xqilla_cmd", "xqilla_cmd.vcproj", "{44F4673C-C971-4085-8750-3BA0D7FE6FD2}" ProjectSection(ProjectDependencies) = postProject {63E85107-41E0-4FC7-8083-40E85861B426} = {63E85107-41E0-4FC7-8083-40E85861B426} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "simple-basic", "simple-basic.vcproj", "{C03914F5-AA13-4B1C-A4B0-8FD6560AB573}" ProjectSection(ProjectDependencies) = postProject {63E85107-41E0-4FC7-8083-40E85861B426} = {63E85107-41E0-4FC7-8083-40E85861B426} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "simple-context-item", "simple-context-item.vcproj", "{55BEA039-4B29-4909-902A-9DD4BEADBCD0}" ProjectSection(ProjectDependencies) = postProject {63E85107-41E0-4FC7-8083-40E85861B426} = {63E85107-41E0-4FC7-8083-40E85861B426} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dom-basic", "dom-basic.vcproj", "{6672DE96-EA92-44A2-900E-6868A86FB044}" ProjectSection(ProjectDependencies) = postProject {63E85107-41E0-4FC7-8083-40E85861B426} = {63E85107-41E0-4FC7-8083-40E85861B426} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dom-context-item", "dom-context-item.vcproj", "{E1A71F82-696D-4439-B647-CE04D75E49DC}" ProjectSection(ProjectDependencies) = postProject {63E85107-41E0-4FC7-8083-40E85861B426} = {63E85107-41E0-4FC7-8083-40E85861B426} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dom-resolver", "dom-resolver.vcproj", "{31B7B9AA-109C-4B71-ADA6-274A6420969E}" ProjectSection(ProjectDependencies) = postProject {63E85107-41E0-4FC7-8083-40E85861B426} = {63E85107-41E0-4FC7-8083-40E85861B426} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xqtsRunner", "xqtsRunner.vcproj", "{E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}" ProjectSection(ProjectDependencies) = postProject {63E85107-41E0-4FC7-8083-40E85861B426} = {63E85107-41E0-4FC7-8083-40E85861B426} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xmarkRunner", "xmarkRunner.vcproj", "{619264FA-3730-43C4-A903-0EAA453527AC}" ProjectSection(ProjectDependencies) = postProject {63E85107-41E0-4FC7-8083-40E85861B426} = {63E85107-41E0-4FC7-8083-40E85861B426} EndProjectSection EndProject Global GlobalSection(SolutionConfiguration) = preSolution Debug = Debug Debug AMD64 = Debug AMD64 Debug IA64 = Debug IA64 Release = Release Release AMD64 = Release AMD64 Release IA64 = Release IA64 Static Debug = Static Debug Static Release = Static Release EndGlobalSection GlobalSection(ProjectConfiguration) = postSolution {63E85107-41E0-4FC7-8083-40E85861B426}.Debug.ActiveCfg = Debug|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Debug.Build.0 = Debug|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Debug AMD64.ActiveCfg = Debug AMD64|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Debug AMD64.Build.0 = Debug AMD64|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Debug IA64.ActiveCfg = Debug IA64|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Debug IA64.Build.0 = Debug IA64|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Release.ActiveCfg = Release|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Release.Build.0 = Release|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Release AMD64.ActiveCfg = Release AMD64|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Release AMD64.Build.0 = Release AMD64|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Release IA64.ActiveCfg = Release IA64|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Release IA64.Build.0 = Release IA64|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Static Debug.ActiveCfg = Static Debug|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Static Debug.Build.0 = Static Debug|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Static Release.ActiveCfg = Static Release|Win32 {63E85107-41E0-4FC7-8083-40E85861B426}.Static Release.Build.0 = Static Release|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Debug.ActiveCfg = Debug|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Debug.Build.0 = Debug|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Debug AMD64.ActiveCfg = Debug AMD64|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Debug AMD64.Build.0 = Debug AMD64|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Debug IA64.ActiveCfg = Debug IA64|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Debug IA64.Build.0 = Debug IA64|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Release.ActiveCfg = Release|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Release.Build.0 = Release|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Release AMD64.ActiveCfg = Release AMD64|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Release AMD64.Build.0 = Release AMD64|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Release IA64.ActiveCfg = Release IA64|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Release IA64.Build.0 = Release IA64|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Static Debug.ActiveCfg = Static Debug|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Static Debug.Build.0 = Static Debug|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Static Release.ActiveCfg = Static Release|Win32 {44F4673C-C971-4085-8750-3BA0D7FE6FD2}.Static Release.Build.0 = Static Release|Win32 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Debug.ActiveCfg = Debug|Win32 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Debug.Build.0 = Debug|Win32 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Debug AMD64.ActiveCfg = Debug|Win32 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Debug IA64.ActiveCfg = Debug|Win32 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Release.ActiveCfg = Release|Win32 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Release.Build.0 = Release|Win32 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Release AMD64.ActiveCfg = Release|Win32 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Release IA64.ActiveCfg = Release|Win32 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Static Debug.ActiveCfg = Debug|Win32 {C03914F5-AA13-4B1C-A4B0-8FD6560AB573}.Static Release.ActiveCfg = Release|Win32 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Debug.ActiveCfg = Debug|Win32 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Debug.Build.0 = Debug|Win32 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Debug AMD64.ActiveCfg = Debug|Win32 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Debug IA64.ActiveCfg = Debug|Win32 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Release.ActiveCfg = Release|Win32 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Release.Build.0 = Release|Win32 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Release AMD64.ActiveCfg = Release|Win32 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Release IA64.ActiveCfg = Release|Win32 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Static Debug.ActiveCfg = Debug|Win32 {55BEA039-4B29-4909-902A-9DD4BEADBCD0}.Static Release.ActiveCfg = Release|Win32 {6672DE96-EA92-44A2-900E-6868A86FB044}.Debug.ActiveCfg = Debug|Win32 {6672DE96-EA92-44A2-900E-6868A86FB044}.Debug.Build.0 = Debug|Win32 {6672DE96-EA92-44A2-900E-6868A86FB044}.Debug AMD64.ActiveCfg = Debug|Win32 {6672DE96-EA92-44A2-900E-6868A86FB044}.Debug IA64.ActiveCfg = Debug|Win32 {6672DE96-EA92-44A2-900E-6868A86FB044}.Release.ActiveCfg = Release|Win32 {6672DE96-EA92-44A2-900E-6868A86FB044}.Release.Build.0 = Release|Win32 {6672DE96-EA92-44A2-900E-6868A86FB044}.Release AMD64.ActiveCfg = Release|Win32 {6672DE96-EA92-44A2-900E-6868A86FB044}.Release IA64.ActiveCfg = Release|Win32 {6672DE96-EA92-44A2-900E-6868A86FB044}.Static Debug.ActiveCfg = Debug|Win32 {6672DE96-EA92-44A2-900E-6868A86FB044}.Static Release.ActiveCfg = Release|Win32 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Debug.ActiveCfg = Debug|Win32 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Debug.Build.0 = Debug|Win32 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Debug AMD64.ActiveCfg = Debug|Win32 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Debug IA64.ActiveCfg = Debug|Win32 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Release.ActiveCfg = Release|Win32 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Release.Build.0 = Release|Win32 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Release AMD64.ActiveCfg = Release|Win32 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Release IA64.ActiveCfg = Release|Win32 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Static Debug.ActiveCfg = Debug|Win32 {E1A71F82-696D-4439-B647-CE04D75E49DC}.Static Release.ActiveCfg = Release|Win32 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Debug.ActiveCfg = Debug|Win32 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Debug.Build.0 = Debug|Win32 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Debug AMD64.ActiveCfg = Debug|Win32 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Debug IA64.ActiveCfg = Debug|Win32 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Release.ActiveCfg = Release|Win32 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Release.Build.0 = Release|Win32 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Release AMD64.ActiveCfg = Release|Win32 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Release IA64.ActiveCfg = Release|Win32 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Static Debug.ActiveCfg = Debug|Win32 {31B7B9AA-109C-4B71-ADA6-274A6420969E}.Static Release.ActiveCfg = Release|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Debug.ActiveCfg = Debug|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Debug.Build.0 = Debug|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Debug AMD64.ActiveCfg = Debug|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Debug AMD64.Build.0 = Debug|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Debug IA64.ActiveCfg = Debug|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Debug IA64.Build.0 = Debug|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Release.ActiveCfg = Release|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Release.Build.0 = Release|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Release AMD64.ActiveCfg = Release|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Release AMD64.Build.0 = Release|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Release IA64.ActiveCfg = Release|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Release IA64.Build.0 = Release|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Static Debug.ActiveCfg = Static Debug|Win32 {E8F410F3-AA0A-4E73-97DC-B444C2CBDAA3}.Static Release.ActiveCfg = Release|Win32 {619264FA-3730-43C4-A903-0EAA453527AC}.Debug.ActiveCfg = Debug|Win32 {619264FA-3730-43C4-A903-0EAA453527AC}.Debug.Build.0 = Debug|Win32 {619264FA-3730-43C4-A903-0EAA453527AC}.Debug AMD64.ActiveCfg = Debug|Win32 {619264FA-3730-43C4-A903-0EAA453527AC}.Debug IA64.ActiveCfg = Debug|Win32 {619264FA-3730-43C4-A903-0EAA453527AC}.Release.ActiveCfg = Release|Win32 {619264FA-3730-43C4-A903-0EAA453527AC}.Release.Build.0 = Release|Win32 {619264FA-3730-43C4-A903-0EAA453527AC}.Release AMD64.ActiveCfg = Release|Win32 {619264FA-3730-43C4-A903-0EAA453527AC}.Release IA64.ActiveCfg = Release|Win32 {619264FA-3730-43C4-A903-0EAA453527AC}.Static Debug.ActiveCfg = Debug|Win32 {619264FA-3730-43C4-A903-0EAA453527AC}.Static Release.ActiveCfg = Release|Win32 EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution EndGlobalSection GlobalSection(ExtensibilityAddIns) = postSolution EndGlobalSection GlobalSection(DPCodeReviewSolutionGUID) = preSolution DPCodeReviewSolutionGUID = {00000000-0000-0000-0000-000000000000} EndGlobalSection EndGlobal XQilla-2.3.0/Win32Projects/VC7.1/xqc-basic.vcproj0000644000151400015140000000727211636377670016124 00000000000000 XQilla-2.3.0/Win32Projects/VC7.1/xmarkRunner.vcproj0000644000151400015140000000730211636377670016560 00000000000000 XQilla-2.3.0/Win32Projects/VC7.1/xqilla.vcproj0000644000151400015140000021057111636377670015542 00000000000000 XQilla-2.3.0/Win32Projects/VC7.1/simple-basic.vcproj0000644000151400015140000000733511636377670016622 00000000000000 XQilla-2.3.0/Win32Projects/VC7.1/dom-resolver.vcproj0000644000151400015140000000733211636377670016665 00000000000000 XQilla-2.3.0/Win32Projects/VC7.1/xqc-context-item.vcproj0000644000151400015140000000740011636377670017454 00000000000000 XQilla-2.3.0/Win32Projects/VC7.1/xqilla_cmd.vcproj0000644000151400015140000001563011636377670016364 00000000000000 XQilla-2.3.0/Win32Projects/VC7.1/xqtsRunner.vcproj0000644000151400015140000000727111636377670016442 00000000000000 XQilla-2.3.0/Win32Projects/VC7.1/simple-context-item.vcproj0000644000151400015140000000744311636377670020161 00000000000000 XQilla-2.3.0/Win32Projects/VC7.1/dom-basic.vcproj0000644000151400015140000000727411636377670016112 00000000000000 XQilla-2.3.0/Win32Projects/VC7.1/dom-context-item.vcproj0000644000151400015140000000740211636377670017442 00000000000000 XQilla-2.3.0/configure0000755000151400015140000220112511653565550011550 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.67 for XQilla 2.3.0. # # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software # Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$lt_ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','` ;; esac ECHO=${lt_ECHO-echo} if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then # Yippee, $ECHO works! : else # Restart under the correct shell. exec $SHELL "$0" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat <<_LT_EOF $* _LT_EOF exit 0 fi # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test -z "$lt_ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if { echo_test_string=`eval $cmd`; } 2>/dev/null && { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null then break fi done fi if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$ECHO" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. ECHO='print -r' elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} else # Try using printf. ECHO='printf %s\n' if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL ECHO="$CONFIG_SHELL $0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then ECHO="$CONFIG_SHELL $0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "$0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} else # Oops. We lost completely, so just stick with echo. ECHO=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. lt_ECHO=$ECHO if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" fi test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='XQilla' PACKAGE_TARNAME='xqilla' PACKAGE_VERSION='2.3.0' PACKAGE_STRING='XQilla 2.3.0' PACKAGE_BUGREPORT='' PACKAGE_URL='' ac_unique_file="src/runtime/Result.cpp" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_header_list= ac_func_list= ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS ALLOCA LEXLIB LEX_OUTPUT_ROOT LEX YACC CXXCPP CPP OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL lt_ECHO RANLIB AR OBJDUMP LN_S NM ac_ct_DUMPBIN DUMPBIN LD FGREP EGREP GREP SED LIBTOOL am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE ac_ct_CC CFLAGS CC tidy_library tidy_lib tidy_include faxpp_library faxpp_lib faxpp_include am__fastdepCXX_FALSE am__fastdepCXX_TRUE CXXDEPMODE AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CXX CPPFLAGS LDFLAGS CXXFLAGS CXX BUILD_DOM_SAMPLES_FALSE BUILD_DOM_SAMPLES_TRUE xerces_lib xerces_include_dir xerces_include MAINT MAINTAINER_MODE_FALSE MAINTAINER_MODE_TRUE am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_os target_vendor target_cpu target host_os host_vendor host_cpu host build_os build_vendor build_cpu build target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_maintainer_mode enable_debug enable_rpath with_xerces enable_dependency_tracking with_faxpp with_tidy enable_shared enable_static with_pic enable_fast_install with_gnu_ld enable_libtool_lock ' ac_precious_vars='build_alias host_alias target_alias CXX CXXFLAGS LDFLAGS LIBS CPPFLAGS CCC CC CFLAGS CPP CXXCPP' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used" >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures XQilla 2.3.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/xqilla] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] --target=TARGET configure for building compilers for TARGET [HOST] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of XQilla 2.3.0:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer --enable-debug Build a debugging version. --disable-rpath Patches libtool to not use rpath in the libraries produced. --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --enable-shared[=PKGS] build shared libraries [default=yes] --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-xerces=DIR Path of Xerces. DIR="/usr/local" --with-faxpp=DIR Path of FAXPP. DIR="/usr/local" --with-tidy=DIR Path of the HTML Tidy library. DIR="/usr" --with-pic try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] Some influential environment variables: CXX C++ compiler command CXXFLAGS C++ compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CC C compiler command CFLAGS C compiler flags CPP C preprocessor CXXCPP C++ preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to the package provider. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF XQilla configure 2.3.0 generated by GNU Autoconf 2.67 Copyright (C) 2010 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_cxx_try_compile LINENO # ---------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_cxx_try_compile # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_header_compile # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_func # ac_fn_cxx_try_cpp LINENO # ------------------------ # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_cxx_try_cpp # ac_fn_cxx_try_link LINENO # ------------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_cxx_try_link # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval "test \"\${$3+set}\"" = set; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_header_mongrel # ac_fn_c_check_type LINENO TYPE VAR INCLUDES # ------------------------------------------- # Tests whether TYPE exists after having included INCLUDES, setting cache # variable VAR accordingly. ac_fn_c_check_type () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval "test \"\${$3+set}\"" = set; then : $as_echo_n "(cached) " >&6 else eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else eval "$3=yes" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_type cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by XQilla $as_me 2.3.0, which was generated by GNU Autoconf 2.67. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5 ; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi as_fn_append ac_header_list " sys/time.h" as_fn_append ac_header_list " unistd.h" as_fn_append ac_func_list " alarm" # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_aux_dir= for ac_dir in autotools "$srcdir"/autotools; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in autotools \"$srcdir\"/autotools" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if test "${ac_cv_build+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if test "${ac_cv_host+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5 $as_echo_n "checking target system type... " >&6; } if test "${ac_cv_target+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "x$target_alias" = x; then ac_cv_target=$ac_cv_host else ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5 $as_echo "$ac_cv_target" >&6; } case $ac_cv_target in *-*-*) ;; *) as_fn_error $? "invalid value of canonical target" "$LINENO" 5 ;; esac target=$ac_cv_target ac_save_IFS=$IFS; IFS='-' set x $ac_cv_target shift target_cpu=$1 target_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: target_os=$* IFS=$ac_save_IFS case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac # The aliases save the names the user supplied, while $host etc. # will get canonicalized. test -n "$target_alias" && test "$program_prefix$program_suffix$program_transform_name" = \ NONENONEs,x,x, && program_prefix=${target_alias}- am__api_version='1.11' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5 ;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5 ;; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if test "${ac_cv_path_mkdir+set}" = set; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AWK+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE=XQilla VERSION=2.3.0 cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' ac_config_headers="$ac_config_headers src/config/xqilla_config_unix.h" # Turn off rebuilding of configure, Makefile.in etc. by default { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } # Check whether --enable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then : enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 $as_echo "$USE_MAINTAINER_MODE" >&6; } if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' else MAINTAINER_MODE_TRUE='#' MAINTAINER_MODE_FALSE= fi MAINT=$MAINTAINER_MODE_TRUE # Check debug option { $as_echo "$as_me:${as_lineno-$LINENO}: checking if --enable-debug option specified" >&5 $as_echo_n "checking if --enable-debug option specified... " >&6; } # Check whether --enable-debug was given. if test "${enable_debug+set}" = set; then : enableval=$enable_debug; xqilla_cv_debug="$enable_debug" else xqilla_cv_debug="no" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xqilla_cv_debug" >&5 $as_echo "$xqilla_cv_debug" >&6; } # Check if rpath is disabled { $as_echo "$as_me:${as_lineno-$LINENO}: checking if --enable-rpath option specified" >&5 $as_echo_n "checking if --enable-rpath option specified... " >&6; } # Check whether --enable-rpath was given. if test "${enable_rpath+set}" = set; then : enableval=$enable_rpath; xqilla_cv_rpath="$enable_rpath" else xqilla_cv_rpath="yes" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xqilla_cv_rpath" >&5 $as_echo "$xqilla_cv_rpath" >&6; } # Don't override anything if it's already set from the environment. optimize_def="-O" case $host_os in aix4.3.*|aix5*) optimize_def="-O2" CC=${CC-"xlc_r"} CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" LDFLAGS="$LDFLAGS -Wl,-brtl";; bsdi3*) CC=${CC-"shlicc2"} LIBS="$LIBS -lipc";; cygwin*) CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE -D_REENTRANT";; freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" LDFLAGS="$LDFLAGS -pthread";; gnu*|k*bsd*-gnu|linux*) optimize_def="-O2" CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE -D_REENTRANT";; hpux*) CPPFLAGS="$CPPFLAGS -D_REENTRANT";; irix*) optimize_def="-O2" CPPFLAGS="$CPPFLAGS -D_SGI_MP_SOURCE";; mpeix*) CPPFLAGS="$CPPFLAGS -D_POSIX_SOURCE -D_SOCKET_SOURCE" LIBS="$LIBS -lsocket -lsvipc";; osf*) CPPFLAGS="$CPPFLAGS -pthread";; *qnx*) $as_echo "#define HAVE_QNX 1" >>confdefs.h ;; solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" LIBS="$LIBS -lm";; esac # Set CFLAGS/CXXFLAGS. We MUST set the flags before we call autoconf # compiler configuration macros, because if we don't, they set CFLAGS # to no optimization and -g, which isn't what we want. if test "$xqilla_cv_debug" = "yes"; then $as_echo "#define DEBUG 1" >>confdefs.h CFLAGS="$CFLAGS -g" CXXFLAGS="$CXXFLAGS -g" else CFLAGS=${CFLAGS-$optimize_def} CXXFLAGS=${CXXFLAGS-"$CFLAGS"} fi # Check for the Xerces-C library { $as_echo "$as_me:${as_lineno-$LINENO}: checking if --with-xerces=DIR option specified" >&5 $as_echo_n "checking if --with-xerces=DIR option specified... " >&6; } # Check whether --with-xerces was given. if test "${with_xerces+set}" = set; then : withval=$with_xerces; with_xerces="$withval" else with_xerces="no" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_xerces" >&5 $as_echo "$with_xerces" >&6; } if test "$with_xerces" = "no"; then with_xerces="/usr/local" fi # Find the include directory if test `ls $with_xerces/src/xercesc/util/XercesVersion.hpp 2>/dev/null | wc -l` -gt 0 ; then xerces_include_dir="$with_xerces/src" xerces_include="-I$with_xerces/src" xerces_source_tree="yes" elif test `ls $with_xerces/include/xercesc/util/XercesVersion.hpp 2>/dev/null | wc -l` -gt 0 ; then xerces_include_dir="$with_xerces/include" xerces_include="-I$with_xerces/include" xerces_source_tree="no" elif test `ls $with_xerces/../src/xercesc/util/XercesVersion.hpp 2>/dev/null | wc -l` -gt 0 ; then xerces_include_dir="$with_xerces/../src" xerces_include="-I$with_xerces/../src -I$with_xerces/src" xerces_source_tree="yes" else as_fn_error $? "Unable to find the Xerces-C include directory." "$LINENO" 5 fi # Work out the Xerces-C version { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Xerces-C version" >&5 $as_echo_n "checking for Xerces-C version... " >&6; } xerces_version_major=`grep "^\#define XERCES_VERSION_MAJOR" "$xerces_include_dir"/xercesc/util/XercesVersion.hpp | sed -e 's/^\#define XERCES_VERSION_MAJOR \([0-9]*\)/\1/'` xerces_version_minor=`grep "^\#define XERCES_VERSION_MINOR" "$xerces_include_dir"/xercesc/util/XercesVersion.hpp | sed -e 's/^\#define XERCES_VERSION_MINOR \([0-9]*\)/\1/'` xerces_version=$xerces_version_major"."$xerces_version_minor { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xerces_version" >&5 $as_echo "$xerces_version" >&6; } if test "$xerces_version_major" -lt "3" -a "$xerces_source_tree" = "no"; then as_fn_error $? "For Xerces-C versions before 3.0 the source tree is required to build XQilla. You must specify the path to the Xerces-C source tree using --with-xerces." "$LINENO" 5 fi # Find the library if test `ls $with_xerces/lib/libxerces-c.* 2>/dev/null | wc -l` -gt 0 ; then xerces_lib="$with_xerces/lib" elif test `ls $with_xerces/src/libxerces-c.* 2>/dev/null | wc -l` -gt 0 ; then xerces_lib="$with_xerces/src" else if test "$xerces_source_tree" = "yes" -a "$xerces_version_major" -ge "3"; then xerces_lib="$with_xerces/src" else xerces_lib="$with_xerces/lib" fi { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to find the Xerces-C library. Guessed path is $xerces_lib." >&5 $as_echo "$as_me: WARNING: Unable to find the Xerces-C library. Guessed path is $xerces_lib." >&2;} fi # The DOM samples only build against Xerces-C 3.0 or newer if test "$xerces_version_major" -ge "3"; then BUILD_DOM_SAMPLES_TRUE= BUILD_DOM_SAMPLES_FALSE='#' else BUILD_DOM_SAMPLES_TRUE='#' BUILD_DOM_SAMPLES_FALSE= fi # Check for the BinInputStream::getContentType() method CPPFLAGS_BKUP="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $xerces_include" ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 $as_echo "$CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 $as_echo "$ac_ct_CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CXX" && break done if test "x$ac_ct_CXX" = x; then CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler works" >&5 $as_echo_n "checking whether the C++ compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C++ compiler cannot create executables See \`config.log' for more details" "$LINENO" 5 ; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler default output file name" >&5 $as_echo_n "checking for C++ compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5 ; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C++ compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5 ; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if test "${ac_cv_objext+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5 ; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } if test "${ac_cv_cxx_compiler_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 $as_echo "$ac_cv_cxx_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GXX=yes else GXX= fi ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 $as_echo_n "checking whether $CXX accepts -g... " >&6; } if test "${ac_cv_prog_cxx_g+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes else CXXFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : else ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 $as_echo "$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu depcc="$CXX" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 $as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { XERCES_CPP_NAMESPACE_QUALIFIER BinMemInputStream(0, 0).getContentType(); ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_found_getcontenttype="yes" else ac_found_getcontenttype="no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CPPFLAGS="$CPPFLAGS_BKUP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the Xerces-C library supports the BinInputStream::getContentType() method" >&5 $as_echo_n "checking if the Xerces-C library supports the BinInputStream::getContentType() method... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_found_getcontenttype" >&5 $as_echo "$ac_found_getcontenttype" >&6; } if test "$ac_found_getcontenttype" = yes then $as_echo "#define HAVE_GETCONTENTTYPE 1" >>confdefs.h else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: XQilla will build with reduced functionality. To change this, either use Xerces-C 3.0 or apply xqilla/src/xercesc_content_type.patch to Xerces-C 2.8." >&5 $as_echo "$as_me: WARNING: XQilla will build with reduced functionality. To change this, either use Xerces-C 3.0 or apply xqilla/src/xercesc_content_type.patch to Xerces-C 2.8." >&2;} fi # Check for the RegularExpression::allMatches() method CPPFLAGS_BKUP="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $xerces_include" ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { XERCES_CPP_NAMESPACE_QUALIFIER RegularExpression(".*").allMatches(0, 0, 0, 0); ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_found_allmatches="yes" else ac_found_allmatches="no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CPPFLAGS="$CPPFLAGS_BKUP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the Xerces-C library supports the RegularExpression::allMatches() method" >&5 $as_echo_n "checking if the Xerces-C library supports the RegularExpression::allMatches() method... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_found_allmatches" >&5 $as_echo "$ac_found_allmatches" >&6; } if test "$ac_found_allmatches" = yes then $as_echo "#define HAVE_ALLMATCHES 1" >>confdefs.h else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: XQilla will build with reduced functionality. To change this, either use Xerces-C 3.0 or apply xqilla/src/xercesc_regex.patch to Xerces-C 2.8." >&5 $as_echo "$as_me: WARNING: XQilla will build with reduced functionality. To change this, either use Xerces-C 3.0 or apply xqilla/src/xercesc_regex.patch to Xerces-C 2.8." >&2;} fi # Check if the FAXPP library is present { $as_echo "$as_me:${as_lineno-$LINENO}: checking if --with-faxpp=DIR option specified" >&5 $as_echo_n "checking if --with-faxpp=DIR option specified... " >&6; } # Check whether --with-faxpp was given. if test "${with_faxpp+set}" = set; then : withval=$with_faxpp; with_faxpp="$withval" else with_faxpp="/usr/local" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_faxpp" >&5 $as_echo "$with_faxpp" >&6; } if test "$with_faxpp" != "no"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the FAXPP library is present" >&5 $as_echo_n "checking if the FAXPP library is present... " >&6; } if test `ls $with_faxpp/lib/libfaxpp.* 2>/dev/null | wc -l` -gt 0 ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define HAVE_FAXPP 1" >>confdefs.h faxpp_lib="-L$with_faxpp/lib -R$with_faxpp/lib" faxpp_library="-lfaxpp" faxpp_include="-I$with_faxpp/include" elif test `ls $with_faxpp/libfaxpp.* 2>/dev/null | wc -l` -gt 0 ; then if test `ls $with_faxpp/include/faxpp/parser.h 2>/dev/null | wc -l` -gt 0 ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define HAVE_FAXPP 1" >>confdefs.h faxpp_lib="-L$with_faxpp -R$with_faxpp" faxpp_library="-lfaxpp" faxpp_include="-I$with_faxpp/include" elif test `ls $with_faxpp/../include/faxpp/parser.h 2>/dev/null | wc -l` -gt 0 ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define HAVE_FAXPP 1" >>confdefs.h faxpp_lib="-L$with_faxpp -R$with_faxpp" faxpp_library="-lfaxpp" faxpp_include="-I$with_faxpp/../include" fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } faxpp_lib="" faxpp_library="" faxpp_include="" fi fi # Check if the HTML Tidy library is present { $as_echo "$as_me:${as_lineno-$LINENO}: checking if --with-tidy=DIR option specified" >&5 $as_echo_n "checking if --with-tidy=DIR option specified... " >&6; } # Check whether --with-tidy was given. if test "${with_tidy+set}" = set; then : withval=$with_tidy; with_tidy="$withval" else with_tidy="/usr" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_tidy" >&5 $as_echo "$with_tidy" >&6; } if test "$with_tidy" != "no"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the HTML Tidy library is present" >&5 $as_echo_n "checking if the HTML Tidy library is present... " >&6; } if test `ls $with_tidy/lib/libtidy.* 2>/dev/null | wc -l` -gt 0 ; then if test `ls $with_tidy/include/tidy/tidy.h 2>/dev/null | wc -l` -gt 0 ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define HAVE_LIBTIDY 1" >>confdefs.h tidy_lib="-L$with_tidy/lib -R$with_tidy/lib" tidy_library="-ltidy" tidy_include="-I$with_tidy/include/tidy" elif test `ls $with_tidy/include/tidy.h 2>/dev/null | wc -l` -gt 0 ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } $as_echo "#define HAVE_LIBTIDY 1" >>confdefs.h tidy_lib="-L$with_tidy/lib -R$with_tidy/lib" tidy_library="-ltidy" tidy_include="-I$with_tidy/include" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } tidy_lib="" tidy_library="" tidy_include="" fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } tidy_lib="" tidy_library="" tidy_include="" fi fi # Checks for programs. ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 $as_echo "$CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 $as_echo "$ac_ct_CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CXX" && break done if test "x$ac_ct_CXX" = x; then CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } if test "${ac_cv_cxx_compiler_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 $as_echo "$ac_cv_cxx_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GXX=yes else GXX= fi ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 $as_echo_n "checking whether $CXX accepts -g... " >&6; } if test "${ac_cv_prog_cxx_g+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes else CXXFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : else ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 $as_echo "$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CXX" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 $as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5 ; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi case `pwd` in *\ * | *\ *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 $as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; esac macro_version='2.2.6' macro_revision='1.3012' ltmain="$ac_aux_dir/ltmain.sh" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } if test "${ac_cv_path_SED+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed { ac_script=; unset ac_script;} if test -z "$SED"; then ac_path_SED_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_SED_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_SED="$ac_path_SED" ac_path_SED_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_SED_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 fi else ac_cv_path_SED=$SED fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 $as_echo "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if test "${ac_cv_path_GREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if test "${ac_cv_path_EGREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 $as_echo_n "checking for fgrep... " >&6; } if test "${ac_cv_path_FGREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 then ac_cv_path_FGREP="$GREP -F" else if test -z "$FGREP"; then ac_path_FGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in fgrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP case `"$ac_path_FGREP" --version 2>&1` in *GNU*) ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'FGREP' >> "conftest.nl" "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_FGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_FGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_FGREP"; then as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_FGREP=$FGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 $as_echo "$ac_cv_path_FGREP" >&6; } FGREP="$ac_cv_path_FGREP" test -z "$GREP" && GREP=grep # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if test "${lt_cv_path_LD+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if test "${lt_cv_prog_gnu_ld+set}" = set; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } if test "${lt_cv_path_NM+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 $as_echo "$lt_cv_path_NM" >&6; } if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$ac_tool_prefix"; then for ac_prog in "dumpbin -symbols" "link -dump -symbols" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_DUMPBIN+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$DUMPBIN"; then ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DUMPBIN=$ac_cv_prog_DUMPBIN if test -n "$DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 $as_echo "$DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$DUMPBIN" && break done fi if test -z "$DUMPBIN"; then ac_ct_DUMPBIN=$DUMPBIN for ac_prog in "dumpbin -symbols" "link -dump -symbols" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DUMPBIN"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN if test -n "$ac_ct_DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 $as_echo "$ac_ct_DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_DUMPBIN" && break done if test "x$ac_ct_DUMPBIN" = x; then DUMPBIN=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DUMPBIN=$ac_ct_DUMPBIN fi fi if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 $as_echo_n "checking the name lister ($NM) interface... " >&6; } if test "${lt_cv_nm_interface+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:5889: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:5892: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:5895: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 $as_echo "$lt_cv_nm_interface" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi # find the maximum length of command line arguments { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 $as_echo_n "checking the maximum length of command line arguments... " >&6; } if test "${lt_cv_sys_max_cmd_len+set}" = set; then : $as_echo_n "(cached) " >&6 else i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ = "XX$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac fi if test -n $lt_cv_sys_max_cmd_len ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 $as_echo "$lt_cv_sys_max_cmd_len" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 $as_echo "none" >&6; } fi max_cmd_len=$lt_cv_sys_max_cmd_len : ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 $as_echo "$xsi_shell" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 $as_echo_n "checking whether the shell understands \"+=\"... " >&6; } lt_shell_append=no ( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 $as_echo "$lt_shell_append" >&6; } if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 $as_echo_n "checking for $LD option to reload object files... " >&6; } if test "${lt_cv_ld_reload_flag+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 $as_echo "$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OBJDUMP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi test -z "$OBJDUMP" && OBJDUMP=objdump { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 $as_echo_n "checking how to recognize dependent libraries... " >&6; } if test "${lt_cv_deplibs_check_method+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # `unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # which responds to the $file_magic_cmd with a given extended regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. case $host_os in aix[4-9]*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. if ( file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[3-9]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux* | k*bsd*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 $as_echo "$lt_cv_deplibs_check_method" >&6; } file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AR+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AR="${ac_tool_prefix}ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_AR="ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi else AR="$ac_cv_prog_AR" fi test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi test -z "$STRIP" && STRIP=: if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_RANLIB+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi test -z "$RANLIB" && RANLIB=: # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check for command to grab the raw symbol name followed by C symbol from nm. { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then : $as_echo_n "(cached) " >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[ABCDEGRST]' fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\""; } >&5 (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ const struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 $as_echo "failed" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } fi # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; fi test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '#line 7101 "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 $as_echo_n "checking whether the C compiler needs -belf... " >&6; } if test "${lt_cv_cc_needs_belf+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_cc_needs_belf=yes else lt_cv_cc_needs_belf=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 $as_echo "$lt_cv_cc_needs_belf" >&6; } if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" case $host_os in rhapsody* | darwin*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_DSYMUTIL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$DSYMUTIL"; then ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DSYMUTIL=$ac_cv_prog_DSYMUTIL if test -n "$DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 $as_echo "$DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DSYMUTIL"; then ac_ct_DSYMUTIL=$DSYMUTIL # Extract the first word of "dsymutil", so it can be a program name with args. set dummy dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DSYMUTIL"; then ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL if test -n "$ac_ct_DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 $as_echo "$ac_ct_DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DSYMUTIL" = x; then DSYMUTIL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DSYMUTIL=$ac_ct_DSYMUTIL fi else DSYMUTIL="$ac_cv_prog_DSYMUTIL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. set dummy ${ac_tool_prefix}nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_NMEDIT+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$NMEDIT"; then ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi NMEDIT=$ac_cv_prog_NMEDIT if test -n "$NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 $as_echo "$NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_NMEDIT"; then ac_ct_NMEDIT=$NMEDIT # Extract the first word of "nmedit", so it can be a program name with args. set dummy nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NMEDIT"; then ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_NMEDIT="nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT if test -n "$ac_ct_NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 $as_echo "$ac_ct_NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_NMEDIT" = x; then NMEDIT=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac NMEDIT=$ac_ct_NMEDIT fi else NMEDIT="$ac_cv_prog_NMEDIT" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. set dummy ${ac_tool_prefix}lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_LIPO+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then ac_cv_prog_LIPO="$LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LIPO=$ac_cv_prog_LIPO if test -n "$LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 $as_echo "$LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_LIPO"; then ac_ct_LIPO=$LIPO # Extract the first word of "lipo", so it can be a program name with args. set dummy lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_LIPO"; then ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_LIPO="lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO if test -n "$ac_ct_LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 $as_echo "$ac_ct_LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_LIPO" = x; then LIPO=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac LIPO=$ac_ct_LIPO fi else LIPO="$ac_cv_prog_LIPO" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. set dummy ${ac_tool_prefix}otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OTOOL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL"; then ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL=$ac_cv_prog_OTOOL if test -n "$OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 $as_echo "$OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL"; then ac_ct_OTOOL=$OTOOL # Extract the first word of "otool", so it can be a program name with args. set dummy otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL"; then ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL="otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL if test -n "$ac_ct_OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 $as_echo "$ac_ct_OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL" = x; then OTOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL=$ac_ct_OTOOL fi else OTOOL="$ac_cv_prog_OTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. set dummy ${ac_tool_prefix}otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OTOOL64+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL64"; then ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL64=$ac_cv_prog_OTOOL64 if test -n "$OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 $as_echo "$OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL64"; then ac_ct_OTOOL64=$OTOOL64 # Extract the first word of "otool64", so it can be a program name with args. set dummy otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL64"; then ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL64="otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 if test -n "$ac_ct_OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 $as_echo "$ac_ct_OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL64" = x; then OTOOL64=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL64=$ac_ct_OTOOL64 fi else OTOOL64="$ac_cv_prog_OTOOL64" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 $as_echo_n "checking for -single_module linker flag... " >&6; } if test "${lt_cv_apple_cc_single_mod+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&5 $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 fi rm -rf libconftest.dylib* rm -f conftest.* fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 $as_echo "$lt_cv_apple_cc_single_mod" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } if test "${lt_cv_ld_exported_symbols_list+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_ld_exported_symbols_list=yes else lt_cv_ld_exported_symbols_list=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[91]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[012]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5 ; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if test "${ac_cv_header_stdc+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in dlfcn.h do : ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default " if test "x$ac_cv_header_dlfcn_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLFCN_H 1 _ACEOF fi done ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 $as_echo "$CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 $as_echo "$ac_ct_CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CXX" && break done if test "x$ac_ct_CXX" = x; then CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } if test "${ac_cv_cxx_compiler_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 $as_echo "$ac_cv_cxx_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GXX=yes else GXX= fi ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 $as_echo_n "checking whether $CXX accepts -g... " >&6; } if test "${ac_cv_prog_cxx_g+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes else CXXFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : else ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 $as_echo "$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CXX" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 $as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 $as_echo_n "checking how to run the C++ preprocessor... " >&6; } if test -z "$CXXCPP"; then if test "${ac_cv_prog_CXXCPP+set}" = set; then : $as_echo_n "(cached) " >&6 else # Double quotes because CXXCPP needs to be expanded for CXXCPP in "$CXX -E" "/lib/cpp" do ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CXXCPP=$CXXCPP fi CXXCPP=$ac_cv_prog_CXXCPP else ac_cv_prog_CXXCPP=$CXXCPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5 $as_echo "$CXXCPP" >&6; } ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} _lt_caught_CXX_error=yes; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu else _lt_caught_CXX_error=yes fi # Set options enable_dlopen=no enable_win32_dll=no # Check whether --enable-shared was given. if test "${enable_shared+set}" = set; then : enableval=$enable_shared; p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac else enable_shared=yes fi # Check whether --enable-static was given. if test "${enable_static+set}" = set; then : enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac else enable_static=yes fi # Check whether --with-pic was given. if test "${with_pic+set}" = set; then : withval=$with_pic; pic_mode="$withval" else pic_mode=default fi test -z "$pic_mode" && pic_mode=default # Check whether --enable-fast-install was given. if test "${enable_fast_install+set}" = set; then : enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac else enable_fast_install=yes fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' test -z "$LN_S" && LN_S="ln -s" if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 $as_echo_n "checking for objdir... " >&6; } if test "${lt_cv_objdir+set}" = set; then : $as_echo_n "(cached) " >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 $as_echo "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir cat >>confdefs.h <<_ACEOF #define LT_OBJDIR "$lt_cv_objdir/" _ACEOF case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='s/\(["`$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/${ac_tool_prefix}file; then lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 $as_echo_n "checking for file... " >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/file; then lt_cv_path_MAGIC_CMD="$ac_dir/file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi else MAGIC_CMD=: fi fi fi ;; esac # Use C for the default configuration in the libtool script lt_save_CC="$CC" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag=' -fno-builtin' { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:9156: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:9160: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; *) lt_prog_compiler_pic='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; linux* | k*bsd*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # Lahey Fortran 8.1. lf95*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; xl*) # IBM XL C 8.0/Fortran 10.1 on PPC lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; *Sun\ F*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='' ;; esac ;; esac ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; rdos*) lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 $as_echo "$lt_prog_compiler_pic" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } if test "${lt_cv_prog_compiler_pic_works+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:9495: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:9499: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; } if test x"$lt_cv_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if test "${lt_cv_prog_compiler_static_works+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works=yes fi else lt_cv_prog_compiler_static_works=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 $as_echo "$lt_cv_prog_compiler_static_works" >&6; } if test x"$lt_cv_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:9600: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:9604: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:9655: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:9659: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag= always_export_symbols=no archive_cmds= archive_expsym_cmds= compiler_needs_object=no enable_shared_with_static_runtimes=no export_dynamic_flag_spec= export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' hardcode_automatic=no hardcode_direct=no hardcode_direct_absolute=no hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld= hardcode_libdir_separator= hardcode_minus_L=no hardcode_shlibpath_var=unsupported inherit_rpath=no link_all_deplibs=unknown module_cmds= module_expsym_cmds= old_archive_from_new_cmds= old_archive_from_expsyms_cmds= thread_safe_flag_spec= whole_archive_flag_spec= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; linux* | k*bsd*-gnu) link_all_deplibs=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.9.1, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to modify your PATH *** so that a non-GNU linker is found, and then restart. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag= tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld='-rpath $libdir' archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs=no fi ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_direct_absolute=yes hardcode_libdir_separator=':' link_all_deplibs=yes file_list_spec='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi link_all_deplibs=no else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi export_dynamic_flag_spec='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an # empty executable. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_from_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes=yes ;; darwin* | rhapsody*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported whole_archive_flag_spec='' link_all_deplibs=yes allow_undefined_flag="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=echo archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" else ld_shlibs=no fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; freebsd1*) ld_shlibs=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_flag_spec_ld='+b $libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo(void) {} _ACEOF if ac_fn_c_try_link "$LINENO"; then : archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: inherit_rpath=yes link_all_deplibs=yes ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes hardcode_shlibpath_var=no hardcode_direct_absolute=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-R$libdir' ;; *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi archive_cmds_need_lc='no' hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else whole_archive_flag_spec='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag='${wl}-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='${wl}-z,text' allow_undefined_flag='${wl}-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-R,$libdir' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) export_dynamic_flag_spec='${wl}-Blargedynsym' ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 $as_echo "$ld_shlibs" >&6; } test "$ld_shlibs" = no && can_build_shared=no with_gnu_ld=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then archive_cmds_need_lc=no else archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5 $as_echo "$archive_cmds_need_lc" >&6; } ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` else lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[lt_foo]++; } if (lt_freq[lt_foo] == 1) { print lt_foo; } }'` sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[4-9]*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix[3-9]*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || test -n "$runpath_var" || test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existent directories. if test "$hardcode_direct" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && test "$hardcode_minus_L" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 $as_echo "$hardcode_action" >&6; } if test "$hardcode_action" = relink || test "$inherit_rpath" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = x""yes; then : lt_cv_dlopen="shl_load" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } if test "${ac_cv_lib_dld_shl_load+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_shl_load=yes else ac_cv_lib_dld_shl_load=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = x""yes; then : lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" else ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" if test "x$ac_cv_func_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } if test "${ac_cv_lib_svld_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_svld_dlopen=yes else ac_cv_lib_svld_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } if test "${ac_cv_lib_dld_dld_link+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_dld_link=yes else ac_cv_lib_dld_dld_link=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } if test "x$ac_cv_lib_dld_dld_link" = x""yes; then : lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 $as_echo_n "checking whether a program can dlopen itself... " >&6; } if test "${lt_cv_dlopen_self+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line 12038 "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 $as_echo "$lt_cv_dlopen_self" >&6; } if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } if test "${lt_cv_dlopen_self_static+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line 12134 "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif void fnord() { int i=42;} int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 $as_echo "$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi striplib= old_striplib= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 $as_echo_n "checking whether stripping libraries is possible... " >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } ;; esac fi # Report which library types will actually be built { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 $as_echo_n "checking if libtool supports shared libraries... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 $as_echo "$can_build_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 $as_echo_n "checking whether to build shared libraries... " >&6; } test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[4-9]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 $as_echo "$enable_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 $as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 $as_echo "$enable_static" >&6; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu archive_cmds_need_lc_CXX=no allow_undefined_flag_CXX= always_export_symbols_CXX=no archive_expsym_cmds_CXX= compiler_needs_object_CXX=no export_dynamic_flag_spec_CXX= hardcode_direct_CXX=no hardcode_direct_absolute_CXX=no hardcode_libdir_flag_spec_CXX= hardcode_libdir_flag_spec_ld_CXX= hardcode_libdir_separator_CXX= hardcode_minus_L_CXX=no hardcode_shlibpath_var_CXX=unsupported hardcode_automatic_CXX=no inherit_rpath_CXX=no module_cmds_CXX= module_expsym_cmds_CXX= link_all_deplibs_CXX=unknown old_archive_cmds_CXX=$old_archive_cmds no_undefined_flag_CXX= whole_archive_flag_spec_CXX= enable_shared_with_static_runtimes_CXX=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o objext_CXX=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_caught_CXX_error" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} compiler=$CC compiler_CXX=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' else lt_prog_compiler_no_builtin_flag_CXX= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if test "${lt_cv_path_LD+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if test "${lt_cv_prog_gnu_ld+set}" = set; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_CXX= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } ld_shlibs_CXX=yes case $host_os in aix3*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_CXX='' hardcode_direct_CXX=yes hardcode_direct_absolute_CXX=yes hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes file_list_spec_CXX='${wl}-f,' if test "$GXX" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct_CXX=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_CXX=yes hardcode_libdir_flag_spec_CXX='-L$libdir' hardcode_libdir_separator_CXX= fi esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi export_dynamic_flag_spec_CXX='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. always_export_symbols_CXX=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_CXX='-berok' # Determine the default libpath from the value encoded in an empty # executable. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_CXX="-z nodefs" archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_CXX=' ${wl}-bernotok' allow_undefined_flag_CXX=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_CXX='$convenience' archive_cmds_need_lc_CXX=yes # This is similar to how AIX traditionally builds its shared # libraries. archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_CXX=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_CXX=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_CXX='-L$libdir' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=no enable_shared_with_static_runtimes_CXX=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_CXX=no fi ;; darwin* | rhapsody*) archive_cmds_need_lc_CXX=no hardcode_direct_CXX=no hardcode_automatic_CXX=yes hardcode_shlibpath_var_CXX=unsupported whole_archive_flag_spec_CXX='' link_all_deplibs_CXX=yes allow_undefined_flag_CXX="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=echo archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" if test "$lt_cv_apple_cc_single_mod" != "yes"; then archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" fi else ld_shlibs_CXX=no fi ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; freebsd[12]*) # C++ shared libraries reported to be fairly broken before # switch to ELF ld_shlibs_CXX=no ;; freebsd-elf*) archive_cmds_need_lc_CXX=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions ld_shlibs_CXX=yes ;; gnu*) ;; hpux9*) hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: export_dynamic_flag_spec_CXX='${wl}-E' hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: case $host_cpu in hppa*64*|ia64*) ;; *) export_dynamic_flag_spec_CXX='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no ;; *) hardcode_direct_CXX=yes hardcode_direct_absolute_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; interix[3-9]*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib' fi fi link_all_deplibs_CXX=yes ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: inherit_rpath_CXX=yes ;; linux* | k*bsd*-gnu) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac archive_cmds_need_lc_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [1-5]* | *pgcpp\ [1-5]*) prelink_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' old_archive_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ $RANLIB $oldlib' archive_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 will use weak symbols archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; esac hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; xl*) # IBM XL 8.0 on PPC, with GNU ld hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' hardcode_libdir_flag_spec_CXX='-R$libdir' whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object_CXX=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; m88k*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) ld_shlibs_CXX=yes ;; openbsd2*) # C++ shared libraries are fairly broken ld_shlibs_CXX=no ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no hardcode_direct_absolute_CXX=yes archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' export_dynamic_flag_spec_CXX='${wl}-E' whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd=echo else ld_shlibs_CXX=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) case $host in osf3*) allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' ;; *) allow_undefined_flag_CXX=' -expect_unresolved \*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' hardcode_libdir_flag_spec_CXX='-rpath $libdir' ;; esac hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ archive_cmds_need_lc_CXX=yes no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_shlibpath_var_CXX=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract' ;; esac link_all_deplibs_CXX=yes output_verbose_link_cmd='echo' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then no_undefined_flag_CXX=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' fi hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag_CXX='${wl}-z,text' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_CXX='${wl}-z,text' allow_undefined_flag_CXX='${wl}-z,nodefs' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-R,$libdir' hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes export_dynamic_flag_spec_CXX='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 $as_echo "$ld_shlibs_CXX" >&6; } test "$ld_shlibs_CXX" = no && can_build_shared=no GCC_CXX="$GXX" LD_CXX="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... # Dependencies to place before and after the object being linked: predep_objects_CXX= postdep_objects_CXX= predeps_CXX= postdeps_CXX= compiler_lib_search_path_CXX= cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case $p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" || test $p = "-R"; then prev=$p continue else prev= fi if test "$pre_test_object_deps_done" = no; then case $p in -L* | -R*) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$compiler_lib_search_path_CXX"; then compiler_lib_search_path_CXX="${prev}${p}" else compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$postdeps_CXX"; then postdeps_CXX="${prev}${p}" else postdeps_CXX="${postdeps_CXX} ${prev}${p}" fi fi ;; *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$predep_objects_CXX"; then predep_objects_CXX="$p" else predep_objects_CXX="$predep_objects_CXX $p" fi else if test -z "$postdep_objects_CXX"; then postdep_objects_CXX="$p" else postdep_objects_CXX="$postdep_objects_CXX $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling CXX test program" fi $RM -f confest.$objext # PORTME: override above test on systems where it is broken case $host_os in interix[3-9]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. predep_objects_CXX= postdep_objects_CXX= postdeps_CXX= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then postdeps_CXX='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then postdeps_CXX='-library=Cstd -library=Crun' fi ;; esac ;; esac case " $postdeps_CXX " in *" -lc "*) archive_cmds_need_lc_CXX=no ;; esac compiler_lib_search_dirs_CXX= if test -n "${compiler_lib_search_path_CXX}"; then compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi lt_prog_compiler_wl_CXX= lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX= { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic_CXX='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic_CXX='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_CXX='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all lt_prog_compiler_pic_CXX= ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_CXX=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_CXX='-fPIC -shared' ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac else case $host_os in aix[4-9]*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' else lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; dgux*) case $cc_basename in ec++*) lt_prog_compiler_pic_CXX='-KPIC' ;; ghcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then lt_prog_compiler_pic_CXX='+Z' fi ;; aCC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_CXX='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler lt_prog_compiler_wl_CXX='--backend -Wl,' lt_prog_compiler_pic_CXX='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64 which still supported -KPIC. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fPIC' lt_prog_compiler_static_CXX='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fpic' lt_prog_compiler_static_CXX='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; xlc* | xlC*) # IBM XL 8.0 on PPC lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-qpic' lt_prog_compiler_static_CXX='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) lt_prog_compiler_pic_CXX='-W c,exportall' ;; *) ;; esac ;; netbsd* | netbsdelf*-gnu) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_CXX='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) lt_prog_compiler_wl_CXX='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 lt_prog_compiler_pic_CXX='-pic' ;; cxx*) # Digital/Compaq C++ lt_prog_compiler_wl_CXX='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x lt_prog_compiler_pic_CXX='-pic' lt_prog_compiler_static_CXX='-Bstatic' ;; lcc*) # Lucid lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 lt_prog_compiler_pic_CXX='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) lt_prog_compiler_can_build_shared_CXX=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_CXX= ;; *) lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic_CXX" >&5 $as_echo "$lt_prog_compiler_pic_CXX" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; } if test "${lt_cv_prog_compiler_pic_works_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works_CXX=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:14090: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:14094: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works_CXX=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5 $as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; } if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then case $lt_prog_compiler_pic_CXX in "" | " "*) ;; *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; esac else lt_prog_compiler_pic_CXX= lt_prog_compiler_can_build_shared_CXX=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if test "${lt_cv_prog_compiler_static_works_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works_CXX=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works_CXX=yes fi else lt_cv_prog_compiler_static_works_CXX=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5 $as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; } if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then : else lt_prog_compiler_static_CXX= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:14189: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:14193: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 $as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:14241: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:14245: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 $as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix[4-9]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) export_symbols_cmds_CXX="$ltdll_cmds" ;; cygwin* | mingw* | cegcc*) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' ;; linux* | k*bsd*-gnu) link_all_deplibs_CXX=no ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 $as_echo "$ld_shlibs_CXX" >&6; } test "$ld_shlibs_CXX" = no && can_build_shared=no with_gnu_ld_CXX=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_CXX" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_CXX=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_CXX in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_CXX pic_flag=$lt_prog_compiler_pic_CXX compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_CXX allow_undefined_flag_CXX= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then archive_cmds_need_lc_CXX=no else archive_cmds_need_lc_CXX=yes fi allow_undefined_flag_CXX=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc_CXX" >&5 $as_echo "$archive_cmds_need_lc_CXX" >&6; } ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[4-9]*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; interix[3-9]*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action_CXX= if test -n "$hardcode_libdir_flag_spec_CXX" || test -n "$runpath_var_CXX" || test "X$hardcode_automatic_CXX" = "Xyes" ; then # We can hardcode non-existent directories. if test "$hardcode_direct_CXX" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" != no && test "$hardcode_minus_L_CXX" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_CXX=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_CXX=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_CXX=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5 $as_echo "$hardcode_action_CXX" >&6; } if test "$hardcode_action_CXX" = relink || test "$inherit_rpath_CXX" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi fi # test -n "$compiler" CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test "$_lt_caught_CXX_error" != yes ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_config_commands="$ac_config_commands libtool" # Only expand once: ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5 ; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi for ac_prog in 'bison -y' do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_YACC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$YACC"; then ac_cv_prog_YACC="$YACC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_YACC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi YACC=$ac_cv_prog_YACC if test -n "$YACC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $YACC" >&5 $as_echo "$YACC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$YACC" && break done test -n "$YACC" || YACC="${am_missing_run} bison" if test "$YACC" != "bison -y"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: XQilla requires bison if you need to rebuild the parser." >&5 $as_echo "$as_me: WARNING: XQilla requires bison if you need to rebuild the parser." >&2;} fi for ac_prog in flex lex do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_LEX+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$LEX"; then ac_cv_prog_LEX="$LEX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_LEX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LEX=$ac_cv_prog_LEX if test -n "$LEX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LEX" >&5 $as_echo "$LEX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$LEX" && break done test -n "$LEX" || LEX=":" if test "x$LEX" != "x:"; then cat >conftest.l <<_ACEOF %% a { ECHO; } b { REJECT; } c { yymore (); } d { yyless (1); } e { yyless (input () != 0); } f { unput (yytext[0]); } . { BEGIN INITIAL; } %% #ifdef YYTEXT_POINTER extern char *yytext; #endif int main (void) { return ! yylex () + ! yywrap (); } _ACEOF { { ac_try="$LEX conftest.l" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$LEX conftest.l") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking lex output file root" >&5 $as_echo_n "checking lex output file root... " >&6; } if test "${ac_cv_prog_lex_root+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -f lex.yy.c; then ac_cv_prog_lex_root=lex.yy elif test -f lexyy.c; then ac_cv_prog_lex_root=lexyy else as_fn_error $? "cannot find output from $LEX; giving up" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_root" >&5 $as_echo "$ac_cv_prog_lex_root" >&6; } LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root if test -z "${LEXLIB+set}"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking lex library" >&5 $as_echo_n "checking lex library... " >&6; } if test "${ac_cv_lib_lex+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_save_LIBS=$LIBS ac_cv_lib_lex='none needed' for ac_lib in '' -lfl -ll; do LIBS="$ac_lib $ac_save_LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ `cat $LEX_OUTPUT_ROOT.c` _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_lex=$ac_lib fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext test "$ac_cv_lib_lex" != 'none needed' && break done LIBS=$ac_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lex" >&5 $as_echo "$ac_cv_lib_lex" >&6; } test "$ac_cv_lib_lex" != 'none needed' && LEXLIB=$ac_cv_lib_lex fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether yytext is a pointer" >&5 $as_echo_n "checking whether yytext is a pointer... " >&6; } if test "${ac_cv_prog_lex_yytext_pointer+set}" = set; then : $as_echo_n "(cached) " >&6 else # POSIX says lex can declare yytext either as a pointer or an array; the # default is implementation-dependent. Figure out which it is, since # not all implementations provide the %pointer and %array declarations. ac_cv_prog_lex_yytext_pointer=no ac_save_LIBS=$LIBS LIBS="$LEXLIB $ac_save_LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define YYTEXT_POINTER 1 `cat $LEX_OUTPUT_ROOT.c` _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_prog_lex_yytext_pointer=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_yytext_pointer" >&5 $as_echo "$ac_cv_prog_lex_yytext_pointer" >&6; } if test $ac_cv_prog_lex_yytext_pointer = yes; then $as_echo "#define YYTEXT_POINTER 1" >>confdefs.h fi rm -f conftest.l $LEX_OUTPUT_ROOT.c fi if test "$LEX" = :; then LEX=${am_missing_run}flex fi # Check for unicode support in flex { $as_echo "$as_me:${as_lineno-$LINENO}: checking unicode support in flex" >&5 $as_echo_n "checking unicode support in flex... " >&6; } flex --help | grep "\-U" > /dev/null if test "$?" -eq "0"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5 $as_echo "found" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: XQilla requires a version of flex supporting the -U (16-bit unicode) flag if you need to rebuild the lexer." >&5 $as_echo "$as_me: WARNING: XQilla requires a version of flex supporting the -U (16-bit unicode) flag if you need to rebuild the lexer." >&2;} fi # Set up extra compiler flags for GCC if test "$GXX" = "yes"; then if test "$xqilla_cv_debug" = "yes"; then CXXFLAGS="$CXXFLAGS -Wall -ftemplate-depth-50 ${targetoptions}" CFLAGS="$CFLAGS -Wall ${targetoptions}" else CXXFLAGS="$CXXFLAGS -ftemplate-depth-50 ${targetoptions}" CFLAGS="$CFLAGS ${targetoptions}" fi fi # Patch libtool to not use rpath if required if test "$xqilla_cv_rpath" = "no"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: Patching libtool to not use rpath." >&5 $as_echo "Patching libtool to not use rpath." >&6; } sed < libtool > libtool-2 \ 's/^hardcode_libdir_flag_spec.*$'/'hardcode_libdir_flag_spec=" -D__LIBTOOL_NO_RPATH__ "/' mv libtool-2 libtool chmod 755 libtool fi # Checks for libraries. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lpthread" >&5 $as_echo_n "checking for pthread_create in -lpthread... " >&6; } if test "${ac_cv_lib_pthread_pthread_create+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lpthread $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pthread_create (); int main () { return pthread_create (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_pthread_pthread_create=yes else ac_cv_lib_pthread_pthread_create=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_create" >&5 $as_echo "$ac_cv_lib_pthread_pthread_create" >&6; } if test "x$ac_cv_lib_pthread_pthread_create" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBPTHREAD 1 _ACEOF LIBS="-lpthread $LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lsocket" >&5 $as_echo_n "checking for connect in -lsocket... " >&6; } if test "${ac_cv_lib_socket_connect+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsocket $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char connect (); int main () { return connect (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_socket_connect=yes else ac_cv_lib_socket_connect=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_connect" >&5 $as_echo "$ac_cv_lib_socket_connect" >&6; } if test "x$ac_cv_lib_socket_connect" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBSOCKET 1 _ACEOF LIBS="-lsocket $LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5 $as_echo_n "checking for gethostbyname in -lnsl... " >&6; } if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lnsl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gethostbyname (); int main () { return gethostbyname (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_nsl_gethostbyname=yes else ac_cv_lib_nsl_gethostbyname=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5 $as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; } if test "x$ac_cv_lib_nsl_gethostbyname" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBNSL 1 _ACEOF LIBS="-lnsl $LIBS" fi # Checks for header files. # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 $as_echo_n "checking for working alloca.h... " >&6; } if test "${ac_cv_working_alloca_h+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { char *p = (char *) alloca (2 * sizeof (int)); if (p) return 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_working_alloca_h=yes else ac_cv_working_alloca_h=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5 $as_echo "$ac_cv_working_alloca_h" >&6; } if test $ac_cv_working_alloca_h = yes; then $as_echo "#define HAVE_ALLOCA_H 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 $as_echo_n "checking for alloca... " >&6; } if test "${ac_cv_func_alloca_works+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __GNUC__ # define alloca __builtin_alloca #else # ifdef _MSC_VER # include # define alloca _alloca # else # ifdef HAVE_ALLOCA_H # include # else # ifdef _AIX #pragma alloca # else # ifndef alloca /* predefined by HP cc +Olibcalls */ char *alloca (); # endif # endif # endif # endif #endif int main () { char *p = (char *) alloca (1); if (p) return 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_func_alloca_works=yes else ac_cv_func_alloca_works=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5 $as_echo "$ac_cv_func_alloca_works" >&6; } if test $ac_cv_func_alloca_works = yes; then $as_echo "#define HAVE_ALLOCA 1" >>confdefs.h else # The SVR3 libPW and SVR4 libucb both contain incompatible functions # that cause trouble. Some versions do not even contain alloca or # contain a buggy version. If you still want to use their alloca, # use ar to extract alloca.o from them instead of compiling alloca.c. ALLOCA=\${LIBOBJDIR}alloca.$ac_objext $as_echo "#define C_ALLOCA 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5 $as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; } if test "${ac_cv_os_cray+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined CRAY && ! defined CRAY2 webecray #else wenotbecray #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "webecray" >/dev/null 2>&1; then : ac_cv_os_cray=yes else ac_cv_os_cray=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5 $as_echo "$ac_cv_os_cray" >&6; } if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define CRAY_STACKSEG_END $ac_func _ACEOF break fi done fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 $as_echo_n "checking stack direction for C alloca... " >&6; } if test "${ac_cv_c_stack_direction+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_c_stack_direction=0 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int find_stack_direction () { static char *addr = 0; auto char dummy; if (addr == 0) { addr = &dummy; return find_stack_direction (); } else return (&dummy > addr) ? 1 : -1; } int main () { return find_stack_direction () < 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_c_stack_direction=1 else ac_cv_c_stack_direction=-1 fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5 $as_echo "$ac_cv_c_stack_direction" >&6; } cat >>confdefs.h <<_ACEOF #define STACK_DIRECTION $ac_cv_c_stack_direction _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if test "${ac_cv_header_stdc+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi for ac_header in limits.h malloc.h stddef.h stdlib.h string.h sys/time.h sys/timeb.h wchar.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done # Checks for typedefs, structures, and compiler characteristics. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5 $as_echo_n "checking for stdbool.h that conforms to C99... " >&6; } if test "${ac_cv_header_stdbool_h+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifndef bool "error: bool is not defined" #endif #ifndef false "error: false is not defined" #endif #if false "error: false is not 0" #endif #ifndef true "error: true is not defined" #endif #if true != 1 "error: true is not 1" #endif #ifndef __bool_true_false_are_defined "error: __bool_true_false_are_defined is not defined" #endif struct s { _Bool s: 1; _Bool t; } s; char a[true == 1 ? 1 : -1]; char b[false == 0 ? 1 : -1]; char c[__bool_true_false_are_defined == 1 ? 1 : -1]; char d[(bool) 0.5 == true ? 1 : -1]; bool e = &s; char f[(_Bool) 0.0 == false ? 1 : -1]; char g[true]; char h[sizeof (_Bool)]; char i[sizeof s.t]; enum { j = false, k = true, l = false * true, m = true * 256 }; /* The following fails for HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */ _Bool n[m]; char o[sizeof n == m * sizeof n[0] ? 1 : -1]; char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1]; # if defined __xlc__ || defined __GNUC__ /* Catch a bug in IBM AIX xlc compiler version 6.0.0.0 reported by James Lemley on 2005-10-05; see http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html This test is not quite right, since xlc is allowed to reject this program, as the initializer for xlcbug is not one of the forms that C requires support for. However, doing the test right would require a runtime test, and that would make cross-compilation harder. Let us hope that IBM fixes the xlc bug, and also adds support for this kind of constant expression. In the meantime, this test will reject xlc, which is OK, since our stdbool.h substitute should suffice. We also test this with GCC, where it should work, to detect more quickly whether someone messes up the test in the future. */ char digs[] = "0123456789"; int xlcbug = 1 / (&(digs + 5)[-2 + (bool) 1] == &digs[4] ? 1 : -1); # endif /* Catch a bug in an HP-UX C compiler. See http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html */ _Bool q = true; _Bool *pq = &q; int main () { *pq |= q; *pq |= ! q; /* Refer to every declared value, to avoid compiler optimizations. */ return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l + !m + !n + !o + !p + !q + !pq); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdbool_h=yes else ac_cv_header_stdbool_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5 $as_echo "$ac_cv_header_stdbool_h" >&6; } ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default" if test "x$ac_cv_type__Bool" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE__BOOL 1 _ACEOF fi if test $ac_cv_header_stdbool_h = yes; then $as_echo "#define HAVE_STDBOOL_H 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 $as_echo_n "checking for an ANSI C-conforming const... " >&6; } if test "${ac_cv_c_const+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { /* FIXME: Include the comments suggested by Paul. */ #ifndef __cplusplus /* Ultrix mips cc rejects this. */ typedef int charset[2]; const charset cs; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; /* AIX XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; pcpcc = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; { /* SCO 3.2v4 cc rejects this. */ char *t; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; if (s) return 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; const int *foo = &x[0]; ++foo; } { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; iptr p = 0; ++p; } { /* AIX XL C 1.02.0.0 rejects this saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; }; struct s *b; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; if (!foo) return 0; } return !cs[0] && !zero.x; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_const=yes else ac_cv_c_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 $as_echo "$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then $as_echo "#define const /**/" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 $as_echo_n "checking for inline... " >&6; } if test "${ac_cv_c_inline+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __cplusplus typedef int foo_t; static $ac_kw foo_t static_foo () {return 0; } $ac_kw foo_t foo () {return 0; } #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_inline=$ac_kw fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$ac_cv_c_inline" != no && break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 $as_echo "$ac_cv_c_inline" >&6; } case $ac_cv_c_inline in inline | yes) ;; *) case $ac_cv_c_inline in no) ac_val=;; *) ac_val=$ac_cv_c_inline;; esac cat >>confdefs.h <<_ACEOF #ifndef __cplusplus #define inline $ac_val #endif _ACEOF ;; esac ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = x""yes; then : else cat >>confdefs.h <<_ACEOF #define size_t unsigned int _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5 $as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } if test "${ac_cv_header_time+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { if ((struct tm *) 0) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_time=yes else ac_cv_header_time=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5 $as_echo "$ac_cv_header_time" >&6; } if test $ac_cv_header_time = yes; then $as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; } if test "${ac_cv_struct_tm+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { struct tm tm; int *p = &tm.tm_sec; return !p; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_struct_tm=time.h else ac_cv_struct_tm=sys/time.h fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5 $as_echo "$ac_cv_struct_tm" >&6; } if test $ac_cv_struct_tm = sys/time.h; then $as_echo "#define TM_IN_SYS_TIME 1" >>confdefs.h fi ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default" if test "x$ac_cv_type_ptrdiff_t" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_PTRDIFF_T 1 _ACEOF fi # Checks for library functions. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for error_at_line" >&5 $as_echo_n "checking for error_at_line... " >&6; } if test "${ac_cv_lib_error_at_line+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { error_at_line (0, 0, "", 0, "an error occurred"); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_error_at_line=yes else ac_cv_lib_error_at_line=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_error_at_line" >&5 $as_echo "$ac_cv_lib_error_at_line" >&6; } if test $ac_cv_lib_error_at_line = no; then case " $LIBOBJS " in *" error.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS error.$ac_objext" ;; esac fi for ac_header in $ac_header_list do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_func in $ac_func_list do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mktime" >&5 $as_echo_n "checking for working mktime... " >&6; } if test "${ac_cv_func_working_mktime+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_working_mktime=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Test program from Paul Eggert and Tony Leneis. */ #ifdef TIME_WITH_SYS_TIME # include # include #else # ifdef HAVE_SYS_TIME_H # include # else # include # endif #endif #include #include #ifdef HAVE_UNISTD_H # include #endif #ifndef HAVE_ALARM # define alarm(X) /* empty */ #endif /* Work around redefinition to rpl_putenv by other config tests. */ #undef putenv static time_t time_t_max; static time_t time_t_min; /* Values we'll use to set the TZ environment variable. */ static const char *tz_strings[] = { (const char *) 0, "TZ=GMT0", "TZ=JST-9", "TZ=EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00" }; #define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0])) /* Return 0 if mktime fails to convert a date in the spring-forward gap. Based on a problem report from Andreas Jaeger. */ static int spring_forward_gap () { /* glibc (up to about 1998-10-07) failed this test. */ struct tm tm; /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0" instead of "TZ=America/Vancouver" in order to detect the bug even on systems that don't support the Olson extension, or don't have the full zoneinfo tables installed. */ putenv ((char*) "TZ=PST8PDT,M4.1.0,M10.5.0"); tm.tm_year = 98; tm.tm_mon = 3; tm.tm_mday = 5; tm.tm_hour = 2; tm.tm_min = 0; tm.tm_sec = 0; tm.tm_isdst = -1; return mktime (&tm) != (time_t) -1; } static int mktime_test1 (time_t now) { struct tm *lt; return ! (lt = localtime (&now)) || mktime (lt) == now; } static int mktime_test (time_t now) { return (mktime_test1 (now) && mktime_test1 ((time_t) (time_t_max - now)) && mktime_test1 ((time_t) (time_t_min + now))); } static int irix_6_4_bug () { /* Based on code from Ariel Faigon. */ struct tm tm; tm.tm_year = 96; tm.tm_mon = 3; tm.tm_mday = 0; tm.tm_hour = 0; tm.tm_min = 0; tm.tm_sec = 0; tm.tm_isdst = -1; mktime (&tm); return tm.tm_mon == 2 && tm.tm_mday == 31; } static int bigtime_test (int j) { struct tm tm; time_t now; tm.tm_year = tm.tm_mon = tm.tm_mday = tm.tm_hour = tm.tm_min = tm.tm_sec = j; now = mktime (&tm); if (now != (time_t) -1) { struct tm *lt = localtime (&now); if (! (lt && lt->tm_year == tm.tm_year && lt->tm_mon == tm.tm_mon && lt->tm_mday == tm.tm_mday && lt->tm_hour == tm.tm_hour && lt->tm_min == tm.tm_min && lt->tm_sec == tm.tm_sec && lt->tm_yday == tm.tm_yday && lt->tm_wday == tm.tm_wday && ((lt->tm_isdst < 0 ? -1 : 0 < lt->tm_isdst) == (tm.tm_isdst < 0 ? -1 : 0 < tm.tm_isdst)))) return 0; } return 1; } static int year_2050_test () { /* The correct answer for 2050-02-01 00:00:00 in Pacific time, ignoring leap seconds. */ unsigned long int answer = 2527315200UL; struct tm tm; time_t t; tm.tm_year = 2050 - 1900; tm.tm_mon = 2 - 1; tm.tm_mday = 1; tm.tm_hour = tm.tm_min = tm.tm_sec = 0; tm.tm_isdst = -1; /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0" instead of "TZ=America/Vancouver" in order to detect the bug even on systems that don't support the Olson extension, or don't have the full zoneinfo tables installed. */ putenv ((char*) "TZ=PST8PDT,M4.1.0,M10.5.0"); t = mktime (&tm); /* Check that the result is either a failure, or close enough to the correct answer that we can assume the discrepancy is due to leap seconds. */ return (t == (time_t) -1 || (0 < t && answer - 120 <= t && t <= answer + 120)); } int main () { time_t t, delta; int i, j; /* This test makes some buggy mktime implementations loop. Give up after 60 seconds; a mktime slower than that isn't worth using anyway. */ alarm (60); for (;;) { t = (time_t_max << 1) + 1; if (t <= time_t_max) break; time_t_max = t; } time_t_min = - ((time_t) ~ (time_t) 0 == (time_t) -1) - time_t_max; delta = time_t_max / 997; /* a suitable prime number */ for (i = 0; i < N_STRINGS; i++) { if (tz_strings[i]) putenv ((char*) tz_strings[i]); for (t = 0; t <= time_t_max - delta; t += delta) if (! mktime_test (t)) return 1; if (! (mktime_test ((time_t) 1) && mktime_test ((time_t) (60 * 60)) && mktime_test ((time_t) (60 * 60 * 24)))) return 1; for (j = 1; ; j <<= 1) if (! bigtime_test (j)) return 1; else if (INT_MAX / 2 < j) break; if (! bigtime_test (INT_MAX)) return 1; } return ! (irix_6_4_bug () && spring_forward_gap () && year_2050_test ()); } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_working_mktime=yes else ac_cv_func_working_mktime=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_working_mktime" >&5 $as_echo "$ac_cv_func_working_mktime" >&6; } if test $ac_cv_func_working_mktime = no; then case " $LIBOBJS " in *" mktime.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS mktime.$ac_objext" ;; esac fi for ac_func in floor ftime gettimeofday memmove memset pow sqrt strchr strstr tzset localtime_r do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done ac_config_files="$ac_config_files Makefile include/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${BUILD_DOM_SAMPLES_TRUE}" && test -z "${BUILD_DOM_SAMPLES_FALSE}"; then as_fn_error $? "conditional \"BUILD_DOM_SAMPLES\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : ${CONFIG_STATUS=./config.status} ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by XQilla $as_me 2.3.0, which was generated by GNU Autoconf 2.67. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to the package provider." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ XQilla config.status 2.3.0 configured by $0, generated by GNU Autoconf 2.67, with options \\"\$ac_cs_config\\" Copyright (C) 2010 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`' macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`' enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`' enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`' pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`' host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`' host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`' host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`' build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`' build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`' build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`' SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`' Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`' GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`' EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`' FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`' LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`' NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`' LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`' ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`' exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`' lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`' reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`' reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`' AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`' STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`' RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`' CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`' compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`' GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`' SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`' ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`' need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`' NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`' LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`' OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`' OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`' libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`' hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`' fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`' include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`' file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`' version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`' runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`' libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`' library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`' soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`' finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`' sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`' hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`' old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`' striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`' compiler_lib_search_dirs='`$ECHO "X$compiler_lib_search_dirs" | $Xsed -e "$delay_single_quote_subst"`' predep_objects='`$ECHO "X$predep_objects" | $Xsed -e "$delay_single_quote_subst"`' postdep_objects='`$ECHO "X$postdep_objects" | $Xsed -e "$delay_single_quote_subst"`' predeps='`$ECHO "X$predeps" | $Xsed -e "$delay_single_quote_subst"`' postdeps='`$ECHO "X$postdeps" | $Xsed -e "$delay_single_quote_subst"`' compiler_lib_search_path='`$ECHO "X$compiler_lib_search_path" | $Xsed -e "$delay_single_quote_subst"`' LD_CXX='`$ECHO "X$LD_CXX" | $Xsed -e "$delay_single_quote_subst"`' old_archive_cmds_CXX='`$ECHO "X$old_archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' compiler_CXX='`$ECHO "X$compiler_CXX" | $Xsed -e "$delay_single_quote_subst"`' GCC_CXX='`$ECHO "X$GCC_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "X$lt_prog_compiler_no_builtin_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_wl_CXX='`$ECHO "X$lt_prog_compiler_wl_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_pic_CXX='`$ECHO "X$lt_prog_compiler_pic_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_prog_compiler_static_CXX='`$ECHO "X$lt_prog_compiler_static_CXX" | $Xsed -e "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o_CXX='`$ECHO "X$lt_cv_prog_compiler_c_o_CXX" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds_need_lc_CXX='`$ECHO "X$archive_cmds_need_lc_CXX" | $Xsed -e "$delay_single_quote_subst"`' enable_shared_with_static_runtimes_CXX='`$ECHO "X$enable_shared_with_static_runtimes_CXX" | $Xsed -e "$delay_single_quote_subst"`' export_dynamic_flag_spec_CXX='`$ECHO "X$export_dynamic_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' whole_archive_flag_spec_CXX='`$ECHO "X$whole_archive_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' compiler_needs_object_CXX='`$ECHO "X$compiler_needs_object_CXX" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_new_cmds_CXX='`$ECHO "X$old_archive_from_new_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds_CXX='`$ECHO "X$old_archive_from_expsyms_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' archive_cmds_CXX='`$ECHO "X$archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' archive_expsym_cmds_CXX='`$ECHO "X$archive_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' module_cmds_CXX='`$ECHO "X$module_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' module_expsym_cmds_CXX='`$ECHO "X$module_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' with_gnu_ld_CXX='`$ECHO "X$with_gnu_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`' allow_undefined_flag_CXX='`$ECHO "X$allow_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`' no_undefined_flag_CXX='`$ECHO "X$no_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_CXX='`$ECHO "X$hardcode_libdir_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_ld_CXX='`$ECHO "X$hardcode_libdir_flag_spec_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_libdir_separator_CXX='`$ECHO "X$hardcode_libdir_separator_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct_CXX='`$ECHO "X$hardcode_direct_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_direct_absolute_CXX='`$ECHO "X$hardcode_direct_absolute_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_minus_L_CXX='`$ECHO "X$hardcode_minus_L_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_shlibpath_var_CXX='`$ECHO "X$hardcode_shlibpath_var_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_automatic_CXX='`$ECHO "X$hardcode_automatic_CXX" | $Xsed -e "$delay_single_quote_subst"`' inherit_rpath_CXX='`$ECHO "X$inherit_rpath_CXX" | $Xsed -e "$delay_single_quote_subst"`' link_all_deplibs_CXX='`$ECHO "X$link_all_deplibs_CXX" | $Xsed -e "$delay_single_quote_subst"`' fix_srcfile_path_CXX='`$ECHO "X$fix_srcfile_path_CXX" | $Xsed -e "$delay_single_quote_subst"`' always_export_symbols_CXX='`$ECHO "X$always_export_symbols_CXX" | $Xsed -e "$delay_single_quote_subst"`' export_symbols_cmds_CXX='`$ECHO "X$export_symbols_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' exclude_expsyms_CXX='`$ECHO "X$exclude_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`' include_expsyms_CXX='`$ECHO "X$include_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`' prelink_cmds_CXX='`$ECHO "X$prelink_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' file_list_spec_CXX='`$ECHO "X$file_list_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' hardcode_action_CXX='`$ECHO "X$hardcode_action_CXX" | $Xsed -e "$delay_single_quote_subst"`' compiler_lib_search_dirs_CXX='`$ECHO "X$compiler_lib_search_dirs_CXX" | $Xsed -e "$delay_single_quote_subst"`' predep_objects_CXX='`$ECHO "X$predep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`' postdep_objects_CXX='`$ECHO "X$postdep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`' predeps_CXX='`$ECHO "X$predeps_CXX" | $Xsed -e "$delay_single_quote_subst"`' postdeps_CXX='`$ECHO "X$postdeps_CXX" | $Xsed -e "$delay_single_quote_subst"`' compiler_lib_search_path_CXX='`$ECHO "X$compiler_lib_search_path_CXX" | $Xsed -e "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # Quote evaled strings. for var in SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ OBJDUMP \ deplibs_check_method \ file_magic_cmd \ AR \ AR_FLAGS \ STRIP \ RANLIB \ CC \ CFLAGS \ compiler \ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ SHELL \ ECHO \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_wl \ lt_prog_compiler_pic \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ DSYMUTIL \ NMEDIT \ LIPO \ OTOOL \ OTOOL64 \ shrext_cmds \ export_dynamic_flag_spec \ whole_archive_flag_spec \ compiler_needs_object \ with_gnu_ld \ allow_undefined_flag \ no_undefined_flag \ hardcode_libdir_flag_spec \ hardcode_libdir_flag_spec_ld \ hardcode_libdir_separator \ fix_srcfile_path \ exclude_expsyms \ include_expsyms \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ finish_eval \ old_striplib \ striplib \ compiler_lib_search_dirs \ predep_objects \ postdep_objects \ predeps \ postdeps \ compiler_lib_search_path \ LD_CXX \ compiler_CXX \ lt_prog_compiler_no_builtin_flag_CXX \ lt_prog_compiler_wl_CXX \ lt_prog_compiler_pic_CXX \ lt_prog_compiler_static_CXX \ lt_cv_prog_compiler_c_o_CXX \ export_dynamic_flag_spec_CXX \ whole_archive_flag_spec_CXX \ compiler_needs_object_CXX \ with_gnu_ld_CXX \ allow_undefined_flag_CXX \ no_undefined_flag_CXX \ hardcode_libdir_flag_spec_CXX \ hardcode_libdir_flag_spec_ld_CXX \ hardcode_libdir_separator_CXX \ fix_srcfile_path_CXX \ exclude_expsyms_CXX \ include_expsyms_CXX \ file_list_spec_CXX \ compiler_lib_search_dirs_CXX \ predep_objects_CXX \ postdep_objects_CXX \ predeps_CXX \ postdeps_CXX \ compiler_lib_search_path_CXX; do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in reload_cmds \ old_postinstall_cmds \ old_postuninstall_cmds \ old_archive_cmds \ extract_expsyms_cmds \ old_archive_from_new_cmds \ old_archive_from_expsyms_cmds \ archive_cmds \ archive_expsym_cmds \ module_cmds \ module_expsym_cmds \ export_symbols_cmds \ prelink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ sys_lib_dlsearch_path_spec \ old_archive_cmds_CXX \ old_archive_from_new_cmds_CXX \ old_archive_from_expsyms_cmds_CXX \ archive_cmds_CXX \ archive_expsym_cmds_CXX \ module_cmds_CXX \ module_expsym_cmds_CXX \ export_symbols_cmds_CXX \ prelink_cmds_CXX; do case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Fix-up fallback echo if it was mangled by the above quoting rules. case \$lt_ECHO in *'\\\$0 --fallback-echo"') lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\` ;; esac ac_aux_dir='$ac_aux_dir' xsi_shell='$xsi_shell' lt_shell_append='$lt_shell_append' # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "src/config/xqilla_config_unix.h") CONFIG_HEADERS="$CONFIG_HEADERS src/config/xqilla_config_unix.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_t=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_t"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out" && rm -f "$tmp/out";; *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" } >"$tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir=$dirpart/$fdir; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ;; "libtool":C) # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # The names of the tagged configurations supported by this script. available_tags="CXX " # ### BEGIN LIBTOOL CONFIG # Which release of libtool.m4 was used? macro_version=$macro_version macro_revision=$macro_revision # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # What type of objects to build. pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="\$SED -e 1s/^X//" # A grep program that handles long lines. GREP=$lt_GREP # An ERE matcher. EGREP=$lt_EGREP # A literal string matcher. FGREP=$lt_FGREP # A BSD- or MS-compatible name lister. NM=$lt_NM # Whether we need soft or hard links. LN_S=$lt_LN_S # What is the maximum length of a command? max_cmd_len=$max_cmd_len # Object file suffix (normally "o"). objext=$ac_objext # Executable file suffix (normally ""). exeext=$exeext # whether the shell understands "unset". lt_unset=$lt_unset # turn spaces into newlines. SP2NL=$lt_lt_SP2NL # turn newlines into spaces. NL2SP=$lt_lt_NL2SP # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # An object symbol dumper. OBJDUMP=$lt_OBJDUMP # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == "file_magic". file_magic_cmd=$lt_file_magic_cmd # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A symbol stripping program. STRIP=$lt_STRIP # Commands used to install an old-style archive. RANLIB=$lt_RANLIB old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # A C compiler. LTCC=$lt_CC # LTCC compiler flags. LTCFLAGS=$lt_CFLAGS # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration. global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair. global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix # The name of the directory that contains temporary libtool files. objdir=$objdir # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that does not interpret backslashes. ECHO=$lt_ECHO # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=$MAGIC_CMD # Must we lock files when doing compilation? need_locks=$lt_need_locks # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL=$lt_DSYMUTIL # Tool to change global to local symbols on Mac OS X. NMEDIT=$lt_NMEDIT # Tool to manipulate fat objects and archives on Mac OS X. LIPO=$lt_LIPO # ldd/readelf like tool for Mach-O binaries on Mac OS X. OTOOL=$lt_OTOOL # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. OTOOL64=$lt_OTOOL64 # Old archive suffix (normally "a"). libext=$libext # Shared library suffix (normally ".so"). shrext_cmds=$lt_shrext_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Variables whose values should be saved in libtool wrapper scripts and # restored at link time. variables_saved_for_relink=$lt_variables_saved_for_relink # Do we need the "lib" prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Library versioning type. version_type=$version_type # Shared library runtime path variable. runpath_var=$runpath_var # Shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Command to use after installation of a shared archive. postinstall_cmds=$lt_postinstall_cmds # Command to use after uninstallation of a shared archive. postuninstall_cmds=$lt_postuninstall_cmds # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # As "finish_cmds", except a single script fragment to be evaled but # not shown. finish_eval=$lt_finish_eval # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Compile-time system search path for libraries. sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries. sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # The linker used to build libraries. LD=$lt_LD # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds # A language specific compiler. CC=$lt_compiler # Is the compiler the GNU compiler? with_gcc=$GCC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # If ld is used when linking, flag to hardcode \$libdir into a binary # during linking. This must work even if \$libdir does not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path=$lt_fix_srcfile_path # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds # Specify filename containing input files. file_list_spec=$lt_file_list_spec # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # The directories searched by this compiler when creating a shared library. compiler_lib_search_dirs=$lt_compiler_lib_search_dirs # Dependencies to place before and after the objects being linked to # create a shared library. predep_objects=$lt_predep_objects postdep_objects=$lt_postdep_objects predeps=$lt_predeps postdeps=$lt_postdeps # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac ltmain="$ac_aux_dir/ltmain.sh" # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) case $xsi_shell in yes) cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac } # func_basename file func_basename () { func_basename_result="${1##*/}" } # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}" } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). func_stripname () { # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"} } # func_opt_split func_opt_split () { func_opt_split_opt=${1%%=*} func_opt_split_arg=${1#*=} } # func_lo2o object func_lo2o () { case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac } # func_xform libobj-or-source func_xform () { func_xform_result=${1%.*}.lo } # func_arith arithmetic-term... func_arith () { func_arith_result=$(( $* )) } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=${#1} } _LT_EOF ;; *) # Bourne compatible functions. cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_basename file func_basename () { func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "X${3}" \ | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; esac } # sed scripts: my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' my_sed_long_arg='1s/^-[^=]*=//' # func_opt_split func_opt_split () { func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` } # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` } # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'` } # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "$@"` } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` } _LT_EOF esac case $lt_shell_append in yes) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$1+=\$2" } _LT_EOF ;; *) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$1=\$$1\$2" } _LT_EOF ;; esac sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" cat <<_LT_EOF >> "$ofile" # ### BEGIN LIBTOOL TAG CONFIG: CXX # The linker used to build libraries. LD=$lt_LD_CXX # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds_CXX # A language specific compiler. CC=$lt_compiler_CXX # Is the compiler the GNU compiler? with_gcc=$GCC_CXX # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_CXX # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_CXX # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_CXX # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_CXX # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object_CXX # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds_CXX archive_expsym_cmds=$lt_archive_expsym_cmds_CXX # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds_CXX module_expsym_cmds=$lt_module_expsym_cmds_CXX # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld_CXX # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_CXX # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_CXX # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX # If ld is used when linking, flag to hardcode \$libdir into a binary # during linking. This must work even if \$libdir does not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct_CXX # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute_CXX # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L_CXX # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic_CXX # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath_CXX # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_CXX # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path=$lt_fix_srcfile_path_CXX # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols_CXX # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_CXX # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_CXX # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_CXX # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds_CXX # Specify filename containing input files. file_list_spec=$lt_file_list_spec_CXX # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_CXX # The directories searched by this compiler when creating a shared library. compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX # Dependencies to place before and after the objects being linked to # create a shared library. predep_objects=$lt_predep_objects_CXX postdep_objects=$lt_postdep_objects_CXX predeps=$lt_predeps_CXX postdeps=$lt_postdeps_CXX # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_CXX # ### END LIBTOOL TAG CONFIG: CXX _LT_EOF ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi